(57)【要約】【課題】  パケット分離処理において必要なメモリ量を削減できるパケット処理装置、パケット処理方法及びプログラムを提供すること。【解決手段】  本発明にかかるパケット処理装置は、第１の転送速度で入力されるパケットストリームから前記パケットストリームを構成する各パケットを抽出する受信ブロック１１と、第１の転送速度よりも速い第２の転送速度でパケットを出力するＤＭＡ制御部１４とを有し、第１の転送速度と、ＤＭＡ制御部１４がパケットを出力する平均的な転送速度とが、ほぼ等しいものである。【選択図】  図２
2006128907.tif 000002
【特許請求の範囲】
【請求項１】
第１の転送速度で入力されるパケットストリームから前記パケットストリームを構成する各パケットのそれぞれを抽出する抽出部と、
前記第１の転送速度よりも速い第２の転送速度で前記抽出した各パケットのそれぞれを出力する出力部とを有し、
前記第１の転送速度と、前記出力部が前記各パケットのそれぞれを出力する平均的な転送速度とが、ほぼ等しい、
パケット処理装置。
【請求項２】
前記抽出部は、第１の期間毎に、前記第１の速度で前記パケットストリームから各パケットのそれぞれを抽出し、
前記出力部は、前記第１の期間毎に、前記第１の期間よりも短い第２の期間に前記第２の速度で前記抽出した各パケットのそれぞれを出力する、
請求項１に記載のパケット処理装置。
【請求項３】
前記出力部は、前記抽出部が前記各パケットの１つを抽出完了してから第４の期間経過後に、前記抽出した前記各パケットの１つを出力する、
請求項１又は２に記載のパケット処理装置。
【請求項４】
前記抽出した各パケットのそれぞれを解析する解析部をさらに有し、
前記第４の期間は、前記解析部が前記抽出した各パケットの１つを解析する解析期間とほぼ等しい期間、もしくは、前記解析期間よりも長い期間である、
請求項３に記載のパケット処理装置。
【請求項５】
前記抽出した各パケットのそれぞれを抽出した順に格納する格納部をさらに備え、
前記格納部は、前記抽出した各パケットの第１のパケットを第１のメモリ領域に格納し、前記第１のパケットの出力が完了した後、前記第１のパケットよりも後に抽出した第２のパケットを、前記第１のメモリ領域に格納する、
請求項１乃至４のいずれか一つに記載のパケット処理装置。
【請求項６】
前記抽出した各パケットのそれぞれを前記出力部から出力する前記第１の出力端子と、
前記第１の出力端子から出力した各パケットのそれぞれのスクランブルを解除するデスクランブル部と、
前記デスクランブル部がスクランブルを解除した各パケットのそれぞれを前記出力部から出力する第２の出力端子とをさらに有する、
請求項１乃至５のいずれか一つに記載のパケット処理装置。
【請求項７】
第１の速度で入力されるパケットストリームから第１の期間毎に、前記パケットストリームを構成する各パケットのそれぞれを抽出し、
前記第１の期間毎に、前記第１の期間よりも短い第２の期間に前記第１の速度よりも速い第２の速度で前記抽出したパケットのそれぞれを出力する、
パケット処理方法。
【請求項８】
パケットストリームからパケットを抽出する処理をコンピュータに実行させるためのプログラムであって、
第１の速度で入力されるパケットストリームから第１の期間毎に、前記パケットストリームを構成する各パケットのそれぞれを抽出し、
前記第１の期間毎に、前記第１の期間よりも短い第２の期間に前記第１の速度よりも速い第２の速度で前記抽出したパケットのそれぞれを出力する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット処理装置、パケット処理方法及びプログラムに関し、特に、パケットストリームを構成する各パケットを抽出するパケット処理装置、パケット処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、衛星や地上波及びケーブルによるデジタル放送が開始され、本格化し始めている。デジタル放送システムでは、例えば、ＭＰＥＧ２方式で圧縮された映像や音声、番組情報等をトランスポートストリーム（以下、ＴＳという）というビットストリームで多重化し伝送している。
【０００３】
図６は、ＴＳのフォーマットを示している。図に示されるように、ＴＳは、複数のＴＳパケットから構成されている。ＴＳパケットは、１８８バイトの固定長パケットであり、４バイトのヘッダ部３０１と１８４バイトのデータ部３０２を有している。ヘッダ部３０１には、１バイトの同期バイト３１１、３ビットのフラグ３１２、ＰＩＤ（Ｐａｃｋｅｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）３１３、１バイトのフラグ３１４が格納される。フラグ３１４は、このＴＳパケットで伝送される伝送データのスクランブルの有無を示すスクランブル制御フラグを含んでいる。データ部３０２には、例えば、ＭＰＥＧ２方式で圧縮され必要に応じてスクランブルされた映像や音声等の伝送データが格納される。この伝送データをＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｔｙ  Ｓｔｒｅａｍ）といい、複数のＴＳパケットに含まれるＰＥＳを連結することで、１つの映像データ等となる。
【０００４】
例えば、ＴＳの受信側では、受信したＴＳを複数のＴＳパケットへ分離し、スクランブル制御フラグに従ってデータ部３０２のスクランブル解除（デスクランブル）等を行った後、データを復号して映像の表示等を行う。
【０００５】
一方、デジタルＡＶ機器等を相互接続するインタフェースとしてＩＥＥＥ１３９４等のＨＳＤ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄａｔａ）が知られている。例えば、ＴＳを受信する受信装置とデジタルＡＶ機器とをＨＳＤによって接続することで、受信装置で受信したＴＳをデジタルＡＶ機器に転送し、デジタルＡＶ機器で所望の処理を行うことができる。
【０００６】
図７のブロック図は、従来の受信装置の構成を示しており、例えば、特許文献１に記載されているものである。この従来の受信装置７００は、受信したＴＳをＴＳパケットに分離してメモリに格納し、必要に応じてＨＳＤを介して外部の装置へ出力する。
【０００７】
従来の受信装置７００は、図に示されるように、ＴＳ  Ｄｅｍｕｘ（ＴＳ分離装置）７１、外部メモリ７２、外部ＣＰＵ７３を備えている。ＴＳ分離装置７１は、ＴＳパケット受信ブロック（以下、受信ブロックとする）７１１、ＴＳ  Ｄｅｍｕｘ  内部ＣＰＵ（以下、内部ＣＰＵとする）７１２、デスクランブラ７１３、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）制御部７１４、内部メモリ７１６、ホストインタフェース７１０を備えている。
【０００８】
ホストインタフェース７１０は、ホストバス７４を介して外部ＣＰＵ７３と接続されている。ＤＭＡ制御部７１４は、メモリバス７５を介して外部メモリ７２と接続されるとともに、ＨＳＤ７６を介してデジタルＡＶ機器等と接続されている。また、ＴＳ分離装置７１内の各ブロックは、それぞれ内部バス７１７に接続されている。尚、受信ブロック７１１にＴＳが入力される入力レートは、例えば、３２Ｍｂｐｓであり、ＤＭＡ制御部７１４がＨＳＤ７６へ出力する出力レートも同じ３２Ｍｂｐｓである。
【０００９】
内部メモリ７１６は、バッファ領域７１６ａとプログラム領域７１６ｂを有している。バッファ領域７１６ａには、受信したＴＳパケットが格納され、プログラム領域７１６ｂには、内部ＣＰＵ７１２で実行されるファームウェア（プログラム）が格納される。内部メモリ７１６には、その他、ＴＳ分離装置７１内の各ブロックが動作するために必要な設定データ等が格納されている。
【００１０】
バッファ領域７１６ａには、図８に示すように、４つのＴＳパケットバッファの領域が設けられている。従来のＴＳ分離装置７１では、後述の算出例（式（８））に示すように、１つのＴＳパケットの処理に４つのＴＳパケットバッファが必要なため、４つのＴＳパケットバッファの領域が設けられている。ＴＳパケットバッファとは、ＴＳパケットを一時的に格納しておくための一時格納領域である。７６１〜７６４は、それぞれＴＳパケットバッファ＃１の領域〜ＴＳパケットバッファ＃４の領域である。各ＴＳパケットバッファは、ステータスが格納されるステータス部８０１、ＴＳパケットが格納されるＴＳパケット部８０２が設けられている。
【００１１】
次に、図９及び図１０を用いて、従来のＴＳ分離装置７１の動作について説明する。図９は、従来のＴＳ分離装置７１の動作を示すフローチャート、図１０は、ｎ＝１としたときの従来のＴＳ分離装置７１の動作を示すタイミングチャートである。この処理は、スクランブルされたデータを含むＴＳパケットを受信し、ＨＳＤ７６及び外部メモリ７２へ出力する場合の処理である。ＨＳＤ７６へは、デジタルＡＶ機器等でデスクランブルすることが前提であるため、ＴＳパケットをスクランブルされた状態のまま転送する。外部メモリ７２へは、例えば、受信装置７００に接続される表示装置（不図示）等で映像の表示等を行うため、デスクランブルしたデータを出力する。
【００１２】
まず、受信ブロック７１１が、ＴＳパケット＃ｎをバッファに書き込む（Ｓ１１）。処理Ｓ１１は、ＴＳパケット＃ｎを受信したときに実行開始し、期間（ｏ）（ＴＳパケットの入力時間）の後、すなわち図１０のタイミングｔ１１において実行終了する。受信ブロック７１１は、ＴＳパケット＃ｎを受信すると、ＴＳパケットバッファ＃１（７６１）を取得し、ＴＳパケットバッファ＃１（７６１）にＴＳパケット＃ｎを書き込む。受信ブロック７１１は、ＴＳパケット＃ｎの書き込みが完了すると、内部ＣＰＵ７１２に内部バス７１７を介して割込みを出力する。さらに、受信ブロック７１１は、ＴＳパケット＃ｎ＋１を受信すると、ＴＳパケットバッファ＃２（７６２）にＴＳパケット＃ｎ＋１の書き込みを開始する。
【００１３】
次いで、内部ＣＰＵ７１２が、ＴＳパケット＃ｎのヘッダを解析する（Ｓ１２）。処理Ｓ１２は、図１０のタイミングｔ１２において実行開始し、期間（ｔ）（１つ目のＴＳパケットのヘッダ解析処理時間）の後、実行終了する。内部ＣＰＵ７１２は、受信ブロック７１１から書き込み完了の割込みを受けると、書き込まれたＴＳパケット＃ｎに対してヘッダ部３０１の解析処理を行う。内部ＣＰＵ７１２は、ヘッダ部３０１に含まれるフラグ３１４のスクランブル制御フラグに基づいて、スクランブルの有無を決定する。また、内部ＣＰＵ７１２は、外部ＣＰＵ７３から設定された設定データ等に基づいて、ＨＳＤ７６への出力の有無を決定する。ＨＳＤ７６へ出力する場合、内部ＣＰＵ７１２は、ＤＭＡ制御部７１４に対しＴＳパケット＃ｎをＨＳＤ７６へ出力する指示を出す。
【００１４】
次いで、ＤＭＡ制御部７１４が、ＴＳパケット＃ｎをＨＳＤに出力する（Ｓ１３）。処理Ｓ１３は、図１０のタイミングｔ１３において実行開始し、期間（ｐ）（ＨＳＤへの出力時間）の後、実行終了する。ＤＭＡ制御部７１４は、内部ＣＰＵ７１２からＨＳＤ７６へ出力する指示を受け、ＴＳパケットバッファ＃１（７６１）に格納されているＴＳパケット＃ｎを読み出し、ＨＳＤ７６へ出力する。ＤＭＡ制御部７１４は、ＴＳパケット＃ｎの出力が終了すると、内部ＣＰＵ７１２に内部バス７１７を介して転送完了の割込みを出力する。
【００１５】
処理Ｓ１３の間、内部ＣＰＵ７１２が、ＴＳパケット＃ｎ＋１のヘッダを解析する（Ｓ１４）。処理Ｓ１４は、図１０のタイミングｔ１４において実行開始し、期間（ｕ）（２つ目のＴＳパケットのヘッダ解析処理時間）の後、実行終了する。ＴＳパケット＃ｎのＨＳＤ７６への出力の間、受信ブロック７１１はＴＳパケットバッファ＃２（７６２）にＴＳパケット＃ｎ＋１の書き込みを完了すると、内部ＣＰＵ７１２に内部バス７１７を介して割込みを出力する。また、受信ブロック７１１は、ＴＳパケット＃ｎ＋２を受信するとＴＳパケットバッファ＃３（７６３）にＴＳパケット＃ｎ＋２の書き込みを行う。さらに、内部ＣＰＵ７１２は、ＴＳパケット＃ｎ＋１に対し処理Ｓ１２と同様にして、ヘッダ解析処理を行う。
【００１６】
次いで、ＴＳパケット＃ｎのＨＳＤ転送終了後、ＤＭＡ制御部７１４がＴＳパケット＃ｎ＋１をＨＳＤに出力する（Ｓ１５）。処理Ｓ１５は、図１０のタイミングｔ１５において実行開始し、期間（ｐ）の後、実行終了する。ＤＭＡ制御部７１４は、ＨＳＤ７６へＴＳパケット＃ｎの出力を完了すると、内部ＣＰＵ７１２へ転送終了の割り込みを出力する。内部ＣＰＵ７１２は、ＤＭＡ制御部７１４からＴＳパケット＃ｎのＨＳＤ転送終了の割込みを受け、ＤＭＡ制御部７１４を起動し、ＴＳパケット＃ｎ＋１をＨＳＤ７６へ出力する指示を出す。ＤＭＡ制御部７１４は、内部ＣＰＵ７１２から指示を受け、ＴＳパケットバッファ＃２（７６２）に格納されているＴＳパケット＃ｎ＋１を読み出し、ＨＳＤ７６へ出力する。
【００１７】
次いで、デスクランブラ７１３が、ＴＳパケット＃ｎをデスクランブルする（Ｓ１６）。処理Ｓ１６は、図１０のタイミングｔ１６において実行開始し、期間（ｑ）（デスクランブル処理時間）の後、実行終了する。デスクランブラ７１３は、内部ＣＰＵ７１２の指示を受け、ＴＳパケット＃ｎをＴＳパケットバッファ＃１（７６１）から読み出し、データ部３０２に対しデスクランブルを行う。デスクランブルされたデータ部３０２は、ＴＳパケットバッファ＃１（７６１）に上書きされる。デスクランブルが終了するとデスクランブラ７１３は、内部バス７１７を介して内部ＣＰＵ７１２に対してデスクランブル終了の割込みを出力する。
【００１８】
処理Ｓ１５の間、内部ＣＰＵ７１２が、ＴＳパケット＃ｎ＋２のヘッダを解析する（Ｓ１７）。処理Ｓ１７は、タイミングｔ１７において実行開始し、期間（ｐ）の後、実行終了する。ＴＳパケット＃ｎ＋１のＨＳＤ７６への出力処理の間、受信ブロック７１１は、ＴＳパケットバッファ＃３（７６３）にＴＳパケット＃ｎ＋２の書き込みが完了すると、内部ＣＰＵ７１２に内部バス７１７を介して割込みを出力する。受信ブロック７１１は、ＴＳパケットバッファ＃４（７６４）にＴＳパケット＃ｎ＋３の書き込みを行う。さらに、内部ＣＰＵ７１２は、ＴＳパケット＃ｎ＋２に対し処理Ｓ１４と同様にして、ヘッダ解析処理を行う。
【００１９】
次いで、ＤＭＡ制御部７１４が、ＴＳパケット＃ｎ＋２をＨＳＤに出力する（Ｓ１８）。処理Ｓ１８は、図１０のタイミングｔ１８において実行開始し、期間（ｐ）の後、実行終了する。内部ＣＰＵ７１２は、ＤＭＡ制御部７１４からＴＳパケット＃ｎ＋１のＨＳＤ転送終了の割込みを受けると、ＤＭＡ制御部７１４を起動し、ＴＳパケット＃ｎ＋２をＨＳＤ７６へ出力する指示を出す。ＤＭＡ制御部７１４は、内部ＣＰＵ７１２から指示を受け、ＴＳパケットバッファ＃３（７６３）に格納されているＴＳパケット＃ｎ＋２を読み出し、ＨＳＤ７６へ出力する。
【００２０】
次いで、デスクランブラ７１３が、ＴＳパケット＃ｎ＋１をデスクランブルする（Ｓ１９）。処理Ｓ１９は、図１０のタイミングｔ１９において実行開始し、期間（ｑ）の後、実行終了する。デスクランブラ７１３は、内部ＣＰＵ７１２の指示を受け、ＴＳパケット＃ｎ＋１をＴＳパケットバッファ＃２（７６２）から読み出し、デスクランブルを行う。デスクランブルされたデータ部３０２は、ＴＳパケットバッファ＃２（７６２）に上書きされる。デスクランブルが終了するとデスクランブラ７１３は、内部バス７１７を介して内部ＣＰＵ７１２に対してデスクランブル終了の割込みを出力する。
【００２１】
次いで、内部ＣＰＵ７１２が、ＴＳパケット＃ｎのデータを解析し、ＤＭＡ制御部７１４が、外部メモリへ出力する（Ｓ２０）。処理Ｓ２０は、図１０のタイミングｔ２０において実行開始し、期間（ｒ）（ＴＳパケットのデータ解析処理時間）と期間（ｓ）（外部メモリへの出力時間）の後、実行終了する。内部ＣＰＵ７１２は、デスクランブラ７１３からＴＳパケット＃ｎのデスクランブル終了の割込みを受けると、ＴＳパケット＃ｎのデータ部３０２の解析を行う。解析の結果、データ部３０２を出力する場合、内部ＣＰＵ７１２は、ＤＭＡ制御部７１４に対しデータ部３０２を外部メモリ７２へ出力するよう指示を行う。ＤＭＡ制御部７１４は、外部メモリ７２へデータ部３０２を出力し、この出力が終了したとき、内部バス７１７を介して内部ＣＰＵ７１２に転送終了の割込みを出力する。処理Ｓ２０は、内部ＣＰＵ７１２により処理が行われ、処理Ｓ１９はデスクランブラ７１３により処理が行われるため、２つの処理は並列に実行される。
【００２２】
次いで、ＴＳパケット＃ｎのデータの転送終了後、ＤＭＡ制御部７１４がバッファを解放する（Ｓ２１）。すなわち、処理Ｓ２１は、図１０のタイミングｔ２１において実行される。内部ＣＰＵ７１２は、ＤＭＡ制御部７１４からＴＳパケット＃ｎのデータ部３０２の転送終了の割込みを受け、ＴＳパケットバッファ＃１（７６１）を解放する。ここでＴＳパケットバッファ＃１（７６１）が解放されたことにより、ＴＳパケット＃ｎの処理が終了する。以上の処理を１つのＴＳパケット毎に行う。
【００２３】
ここで、上記従来例における、１つのＴＳパケットの処理時間と、処理に必要なＴＳパケットバッファの数を算出する例について説明する。尚、以下の式で用いる処理のクロック数やステップ数は、一例であり、シミュレータによって測定した値である。
【００２４】
以下、図１０に示す、ＴＳパケットの入力時間（ｏ）、ＨＳＤへの出力時間（ｐ）、デスクランブル処理時間（ｑ）、外部メモリへの出力時間（ｓ）、ＴＳパケットのデータ解析処理時間（ｒ）、１つ目のＴＳパケットのヘッダ解析処理時間（ｔ）、２つ目のＴＳパケットのヘッダ解析処理時間（ｕ）を求める。
【００２５】
１ＴＳパケットあたりの入力時間（ｏ）は、ＴＳパケットのパケット長をＴＳの入力データレートで徐した値となる。例えば、ＴＳの入力データレートを３２Ｍｂｐｓとして、１ＴＳパケットは１８８バイトであるため、１ＴＳパケットあたりの入力時間（ｏ）は、以下の式（１）で表すことができ、４７μｓとなる。
【００２６】
ｏ＝１８８［Ｂｙｔｅ］÷（３２÷８×１０＾６）［Ｂｙｔｅ／Ｓｅｃ］＝４７μｓ      （１）
【００２７】
一般に、ＨＳＤ７６の出力データレートは、入力データレートと同様に設定される。これは、放送局等から受信したレートと異なるレートで、ＨＳＤ７６に接続されるデジタルＡＶ機器等にデータを転送してしまうと、デジタルＡＶ機器等で映像の表示等に問題が生じるからである。したがって、１ＴＳパケットの出力時間（ｐ）は、１ＴＳパケットあたりの入力時間と同様に、式（１）より４７μｓとなる。
【００２８】
１ＴＳパケットあたりのデスクランブルにかかる処理時間（ｑ）は、デスクランブルにかかるクロック数に１クロックの時間を乗じた値となる。例えば、シミュレーションの結果、デスクランブル処理には１７８２クロックかかり、デスクランブラ７１３がベースクロック１０８ＭＨｚで動作するとしたとき、１クロックは９．２５ｎｓであるため、１ＴＳパケットあたりのデスクランブルにかかる処理時間（ｑ）は、以下の式（２）で表すことができ、１６．５μｓとなる。
【００２９】
ｑ＝１７８２［クロック］×９．２５［ｎｓ］＝約１６．５μｓ      （２）
【００３０】
ＤＭＡ制御部７１４による外部メモリ７２へデータ部３０２を出力する出力時間（ｓ）は、出力にかかるクロック数に１クロックの時間を乗じた値となる。１パケット当たりのデータ部３０２をすべて出力する場合、シミュレーションの結果、出力処理には３３４クロックかかり、ＤＭＡ制御部７１４がベースクロック１０８ＭＨｚで動作するとしたとき、出力時間（ｓ）は以下の式（３）で表すことができ、３．１μｓとなる。
【００３１】
ｓ＝３３４［クロック］×９．２５［ｎｓ］＝約３．１μｓ      （３）
【００３２】
内部ＣＰＵ７１２におけるデータ部３０２の解析処理の時間（ｒ）は、解析処理にかかるプログラムのステップ数と、プログラムの１命令の実行に必要なクロック数と、１クロックの時間とを乗じた値となる。シミュレーションの結果、解析処理には４７８ステップかかり、３クロックで１命令が実行され、内部ＣＰＵ７１２はベースクロック１０８ＭＨｚで動作するとしたとき、データ部３０２の解析処理の時間（ｒ）は、以下の式（４）で表すことができ、１３．３μｓとなる。
【００３３】
ｒ＝４７８×３［クロック］×９．２５［ｎｓ］＝約１３．３μｓ      （４）
【００３４】
内部ＣＰＵ７１２におけるヘッダ部３０１の解析処理の時間（ｔ）、すなわち、ＴＳパケットの受信完了してから、ＨＳＤ７６への出力を開始するまでの処理の時間は、解析処理にかかるプログラムのステップ数と、プログラムの１命令の実行に必要なクロック数と、１クロックの時間とを乗じた値となる。シミュレーションの結果、解析処理には、１０２２ステップかかり、式（４）と同じ条件とすると、ヘッダ部３０１の解析処理の時間（ｔ）は、以下の式（５）で表すことができ、処理時間（ｔ）は２８．４μｓとなる。
【００３５】
ｔ＝１０２２×３［クロック］×９．２５［ｎｓ］＝約２８．４μｓ      （５）
【００３６】
２ＴＳパケット目以降では、ヘッダ部３０１の内容により１ＴＳパケット目の処理のみに必要であった処理が省かれることが多い。２ＴＳパケット目以降のヘッダ部３０１の解析処理に８２８ステップかかるため、ヘッダ部３０１の解析処理の時間（ｕ）は、以下の式（６）で表すことができ、２３μｓとなる。
【００３７】
ｕ＝８２８×３［クロック］×９．２５［ｎｓ］＝約２３μｓ      （６）
【００３８】
図１０より、１ＴＳパケット処理の処理時間は、上記の式（１）〜式（６）で求めた全ての値と、デスクランブル処理が完了してからＴＳパケットのデータ解析が開始されるまでの処理待ち時間（ｗ＝ｐ−ｑ）とを合計した値となる。したがって、１ＴＳパケットの処理時間は、以下の式（７）で表すことができ、１８５．９μｓとなる。
【００３９】
ｏ＋ｔ＋ｐ＋ｑ＋（ｐ−ｑ）＋ｒ＋ｓ＝１８５．９μｓ      （７）
【００４０】
１ＴＳパケットの処理に必要なＴＳパケットバッファは、１ＴＳパケットの処理時間の間に、入力されるＴＳパケットの数により求まる。式（１）より、３ＴＳパケットの入力時間は１４１μｓ、４ＴＳパケットの入力時間は１８８μｓであるから式（８）の関係が成り立つ。
【００４１】
１４１μｓ（３ＴＳパケットの入力時間）＜１８５．９μｓ（１ＴＳパケットの処理時間）＜１８８μｓ（４ＴＳパケットの入力時間）      （８）
【００４２】
よって、従来の処理における１ＴＳパケット当りの処理時間は３ＴＳパケット分入力される時間以上、４ＴＳパケット分未満であるから、ＴＳパケットバッファが４ＴＳパケット分必要となる。
【特許文献１】特開２００３−２９９０４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００４３】
上記のように、スクランブルされたＴＳパケットをＨＳＤ７６へ出力し、かつそのＴＳパケットをデスクランブラ７１３にてデスクランブルし、デスクランブルした結果（ビデオやオーディオなど）のデータ部３０２を外部メモリ７２へ出力する場合、ＨＳＤ７６への出力完了を待ってからデスクランブルを行い、データ部３０２の解析処理が行われる。このため、取得したＴＳパケットバッファ＃１（７６１）を解放するまでに、式（７）、式（８）より、処理中のＴＳパケットに加えて、さらに３ＴＳパケットが入力されてしまう。したがって、１ＴＳパケット処理の間に受信されるＴＳパケットを格納するためのＴＳパケットバッファ＃２（７６２）、ＴＳパケットバッファ＃３（７６３）、ＴＳパケットバッファ＃４（７６４）が必要となってしまう。
【００４４】
スクランブルなし、かつＨＳＤの出力がない場合のＴＳパケット処理では、ＨＳＤ７６２の出力待ち時間や、デスクランブラ処理時間がないことから、１ＴＳパケット入力時間内に１ＴＳパケットの処理が終了するので、２ＴＳパケット分のＴＳパケットバッファを用意すれば済む。
【００４５】
ところが、本条件の処理においては、４ＴＳパケット分のＴＳパケットバッファを用意する必要があった。バッファ領域７１６ａとプログラム領域７１６ｂは内部メモリ７１６内でシェアされているため、バッファ領域１６ａによって多くの領域が確保されると、その分、プログラム領域１６ｂが確保できないということになる。そのため、顧客からの変更要求などに対応するためのプログラムメモリが不足してしまう可能性があるという問題があった。
【課題を解決するための手段】
【００４６】
本発明にかかるパケット処理装置は、第１の転送速度で入力されるパケットストリームから前記パケットストリームを構成する各パケットのそれぞれを抽出する抽出部と、前記第１の転送速度よりも速い第２の転送速度で前記抽出した各パケットのそれぞれを出力する出力部とを有し、前記第１の転送速度と、前記出力部が前記各パケットのそれぞれを出力する平均的な転送速度とが、ほぼ等しいものである。これにより、１つのパケットの処理時間を短縮することができるため、必要なメモリ量を削減することができる。
【００４７】
本発明にかかるパケット処理方法は、第１の速度で入力されるパケットストリームから第１の期間毎に、前記パケットストリームを構成する各パケットのそれぞれを抽出し、前記第１の期間毎に、前記第１の期間よりも短い第２の期間に前記第１の速度よりも速い第２の速度で前記抽出したパケットのそれぞれを出力するものである。これにより、１つのパケットの処理時間を短縮することができるため、必要なメモリ量を削減することができる。
【００４８】
本発明にかかるプログラムは、パケットストリームからパケットを抽出する処理をコンピュータに実行させるためのプログラムであって、第１の速度で入力されるパケットストリームから第１の期間毎に、前記パケットストリームを構成する各パケットのそれぞれを抽出し、前記第１の期間毎に、前記第１の期間よりも短い第２の期間に前記第１の速度よりも速い第２の速度で前記抽出したパケットのそれぞれを出力するものである。これにより、１つのパケットの処理時間を短縮することができるため、必要なメモリ量を削減することができる。
【発明の効果】
【００４９】
本発明によれば、必要なメモリ量を削減できるパケット処理装置、パケット処理方法及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００５０】
以下、図面を用いて、本発明の実施の形態について説明する。本実施形態は、ＴＳ分離装置からＨＳＤへ出力する平均的なレート（転送速度）を変更せずに、瞬間的なレートを上げることを特徴としている。
【００５１】
まず、図１を用いて、本実施形態にかかる受信システムの構成について説明する。この受信システムは、デジタル放送を受信するためのシステムであり、放送局等からＴＳを受信し、映像の表示等を行う。
【００５２】
図に示されるように、この受信システムは、受信装置１００と映像データ処理装置２００を備えており、受信装置１００と映像データ処理装置２００との間は、ＨＳＤ２０１により接続されている。ＨＳＤ２０１は、ＩＥＥＥ１３９４等の高速インタフェースである。ＩＥＥＥ１３９４では、例えば、最大４００Ｍｂｐｓのデータ転送が可能である。
【００５３】
受信装置１００は、放送局等からＴＳを受信し、受信したＴＳに含まれるＴＳパケットを映像データ処理装置２００へ転送する。ＴＳは、放送局等から受信装置１００へ有線もしくは無線により伝送される。ＴＳの具体的な伝送手段は、特に限定されず、例えば、衛星や地上波、ケーブル等により伝送される。例えば、ＴＳを衛星から受信する場合、受信装置１００は、アンテナにて電波を受信し、この電波を特定の周波数帯に変換する。さらに、変換した受信信号を復調して、復調した信号に対して符号誤り訂正等を行って、ＴＳを抽出する。受信装置１００は、ＴＳ分離装置１を有しており、抽出したＴＳをＴＳ分離装置１によって、複数のＴＳパケットに分離する。
【００５４】
ＴＳ分離装置１には、放送局等からの伝送されるレートでＴＳが入力される。ＴＳ分離装置１は、ＴＳをＴＳパケットに分離するとともに、設定やＴＳパケットに基づいて、ＴＳパケットをＨＳＤ２０１を介して映像データ処理装置２００へ転送したり、ＴＳパケットの伝送データをデスクランブルする。ＴＳ分離装置１は、放送局等からの受信レート（入力レート）と同じレートでＨＳＤ２０１へ出力する。本実施形態では、入力レートと平均的な出力レートとをほぼ等しくし、瞬間的（一時的）な出力レートを入力レートよりも速くしている。尚、平均的なレートとは、第１の期間（後述する図５（ａ）＋（ｂ））のデータ転送速度、すなわち、第１の期間において転送されるデータ量である。瞬間的なレートとは、第１の期間より短い第２の期間（後述する図５（ａ））のデータ転送速度、すなわち、第２の期間において転送されるデータ量である。
【００５５】
映像データ処理装置２００は、デジタルＡＶ機器等の電子機器であり、受信装置１００から受信したＴＳパケットを解析し、映像の表示等を行う。映像データ処理装置２００は、受信したＴＳパケットをデスクランブルし、デスクランブルしたデータを組み立て、復号等行い映像の表示等を行う。尚、映像データ処理装置２００が処理するデータは、映像に限らず、音声や番組情報等でもよい。
【００５６】
映像データ処理装置２００は、放送局等からの伝送されるレートと同じレートでＴＳパケットを受信する。例えば、映像データ処理装置２００は、受信したＴＳパケットを一時的にバッファリングしながら、所定の処理を行う。すなわち、伝送レートで規定されるＴＳパケットの到着タイミングで、ＴＳパケットをバッファリングし所定の処理を行う。
【００５７】
次に、図２のブロック図を用いて、本実施形態にかかる受信装置の構成について説明する。
【００５８】
この受信装置１００は、図に示されるように、ＴＳ  Ｄｅｍｕｘ（ＴＳ分離装置）１、外部メモリ２、外部ＣＰＵ３を備えている。ＴＳ分離装置１は、ＴＳパケットが多重化されたＴＳ（パケットストリーム）を分離するパケット分離装置（パケット処理装置）であり、分離したＴＳパケットのデータ部３０２を外部メモリ２へ格納するとともに、設定等にしたがいＴＳパケットを映像データ処理装置２００へ転送する。
【００５９】
ＴＳ分離装置１は、受信したＴＳパケットのデータ部３０２がスクランブルされていない場合、映像データ処理装置２００及び外部メモリ２へ、受信したＴＳパケットもしくはデータ部３０２をそのまま出力する。また、ＴＳ分離装置１は、受信したＴＳパケットのデータ部３０２がスクランブルされている場合、映像データ処理装置２００へは、ＴＳパケットをスクランブルされた状態のまま転送し、外部メモリ２へは、デスクランブルしたデータ部３０２を出力する。本実施形態は、特に、このスクランブルされたデータ部３０２を受信した場合において、ＴＳパケットの処理時間を短縮するものである。
【００６０】
外部ＣＰＵ３は、ＴＳ分離装置１の設定等を行う。また、外部メモリ２へ格納されたデータ部３０２は、外部ＣＰＵ３等によって処理し、映像の表示等を行うことが可能である。
【００６１】
ＴＳ分離装置１は、ＴＳパケット受信ブロック（以下、受信ブロックとする）１１、ＴＳ  Ｄｅｍｕｘ  内部ＣＰＵ（以下、内部ＣＰＵとする）１２、デスクランブラ１３、ＤＭＡ制御部１４、内部メモリ１６、ホストインタフェース１０を備えている。
【００６２】
ホストインタフェース１０は、ホストバス４を介して外部ＣＰＵ３と接続されている。ＤＭＡ制御部１４は、メモリバス５を介して外部メモリ２と接続されるとともに、ＨＳＤ２０１を介して映像データ処理装置２００と接続されている。また、ＴＳ分離装置１内の各ブロックは、それぞれ内部バス１７に接続されている。
【００６３】
ホストインタフェース１０は、ホストバス４を介して、外部ＣＰＵ３と設定データ等をやり取りする入出力部である。例えば、外部ＣＰＵ３から設定される設定データは、ホストインタフェース１０を介して、内部ＣＰＵ１２に入力され、内部ＣＰＵ１２によって、内部メモリに書き込まれる。
【００６４】
受信ブロック１１は、ＴＳを受信し、内部メモリ１６のバッファ領域１６ａにＴＳパケット単位で格納する受信部（入力部）である。また、受信ブロック１１は、抽出部であり、入力レートにしたがい所定の周期（第１の期間毎）に、受信したＴＳからＴＳパケットを抽出する。受信ブロック１１にＴＳが入力される入力レートは、例えば、３２Ｍｂｐｓである。
【００６５】
内部ＣＰＵ１２は、内部バス１７を介して各ブロックの動作を制御する制御部であるとともに、ＴＳパケットのヘッダ部３０１やデータ部３０２の解析を行う解析部である。内部ＣＰＵ１２は、内部メモリ１６のプログラム領域１６ｂに格納されているプログラムを実行することで、各種処理を実現する。内部ＣＰＵ１２は、プログラム領域１６ｂから命令を読み出し、読み出した命令にしたがって、各ブロックへ各種処理の指示を出力したり、ＴＳパケットの解析を行う。また、内部ＣＰＵ１２は、設定されたタイマ値の時刻にタイマ割り込みを発生させるタイマ１２１を有している。
【００６６】
デスクランブラ１３は、スクランブルされたＴＳパケットをデスクランブル（スクランブル解除：平文化処理）するデスクランブル部である。
【００６７】
ＤＭＡ制御部１４は、メモリ制御部であり、バッファ領域１６ａに格納されたＴＳパケットのデータ部３０２をメモリバス５を介して外部メモリ２へ出力し、外部メモリ２へデータ部３０２の書き込みを行う。さらに、ＤＭＡ制御部１４は、出力部であり、内部メモリ１６のバッファ領域１６ａに格納されたＴＳパケットをＨＳＤ２０１を介して映像データ処理装置２００へ出力する。ＤＭＡ制御部１４が、ＨＳＤ２０１へ出力する出力レートは、受信ブロック１１の入力レートよりも速く、例えば、１０８Ｍｂｐｓである。
【００６８】
内部メモリ１６は、各種のデータを記憶（格納）する記憶部（格納部）であり、バッファ領域１６ａとプログラム領域１６ｂを有している。バッファ領域１６ａには、受信したＴＳパケットが格納され、プログラム領域１６ｂには、内部ＣＰＵ１２で実行されるファームウェア（プログラム）が格納される。内部メモリ１６には、その他、ＴＳ分離装置１内の各ブロックが動作するために必要な設定データ等が格納されている。
【００６９】
バッファ領域１６ａには、図３に示すように、３つのＴＳパケットバッファの領域が設けられている。１６１〜１６３は、それぞれＴＳパケットバッファ＃１の領域〜ＴＳパケットバッファ＃３の領域である。
【００７０】
ＴＳパケットは、受信した順にしたがって、ＴＳパケットバッファに格納される。例えば、ある時点に受信したＴＳパケット＃ｎは、ＴＳパケットバッファ＃１（１６１）に格納され、次に受信したＴＳパケット＃ｎ＋１は、ＴＳパケットバッファ＃２（１６２）に格納され、次に受信したＴＳパケット＃ｎ＋２は、ＴＳパケットバッファ＃３（１６３）に格納される。さらに次に受信したＴＳパケット＃ｎ＋３は、ＴＳパケットバッファ＃１（１６１）に格納され、ＴＳパケットバッファ＃１〜３に前に格納されたＴＳパケットに上書きされて順次格納されていく。
【００７１】
各ＴＳパケットバッファは、ステータスが格納されるステータス部４０１、受信したＴＳパケットが格納されるＴＳパケット部４０２が設けられている。例えば、ステータス部４０１には、ステータスとして、ＴＳパケットバッファの状態（使用中、未使用等）が格納される。ＴＳパケットバッファの許可信号が取得されると、ステータスが使用中となり、処理中のＴＳパケットの書き込みが可能となる、ＴＳパケットバッファが解放されると、ステータスは未使用となる。
【００７２】
次に、図４及び図５を用いて、本実施形態にかかるＴＳ分離装置の動作について説明する。図４は、ＴＳ分離装置１の動作を示すフローチャート、図５は、ｎ＝１としたときのＴＳ分離装置１の動作を示すタイミングチャートである。図４及び図５は、ＴＳ分離装置１で実行されるパケット分離するための処理を示しており、内部ＣＰＵにおいてプログラム領域１６ｂのプログラムにより実行される。また、この処理は、従来例の図９及び図１０と同様に、スクランブルされたデータ部３０２を含むＴＳパケットを受信し、ＴＳパケットをそのまま映像データ処理装置２００へ出力し、デスクランブルしたデータ部３０２を外部メモリ２へ出力する場合の処理である。
【００７３】
まず、受信ブロック１１が、ＴＳパケット＃ｎをバッファに書き込む（Ｓ１）。処理Ｓ１は、ＴＳパケット＃ｎを受信したときに実行開始し、期間（ｏ）（ＴＳパケットの入力時間）の後、すなわち図５のタイミングｔ１において実行終了する。受信ブロック１１は、ＴＳパケット＃ｎを受信すると、ＴＳパケットバッファ＃１（１６１）を取得し、ＴＳパケットバッファ＃１（１６１）にＴＳパケット＃ｎを書き込む。受信ブロック１１は、ＴＳパケット＃ｎの書き込みが完了すると、内部ＣＰＵ１２に内部バス１７を介して割込みを出力する。さらに、受信ブロック１１は、ＴＳパケット＃ｎ＋１を受信すると、ＴＳパケットバッファ＃２（１６２）にＴＳパケット＃ｎ＋１の書き込みを開始する。
【００７４】
次いで、内部ＣＰＵ１２が、ＴＳパケット＃ｎのヘッダを解析する（Ｓ２）。処理Ｓ２は、図５のタイミングｔ２において実行開始し、（ｔ）（１つ目のＴＳパケットのヘッダ解析処理時間）の後、実行終了する。内部ＣＰＵ１２は、受信ブロック１１から書き込み完了の割込みを受けると、書き込まれたＴＳパケット＃ｎに対してヘッダ部３０１の解析処理を行う。内部ＣＰＵ１２は、ヘッダ部３０１に含まれるフラグ３１４のスクランブル制御フラグに基づいて、スクランブルの有無を決定する。また、内部ＣＰＵ１２は、外部ＣＰＵ３から設定された設定データ等に基づいて、ＨＳＤ２０１への出力の有無を決定する。ＨＳＤ２０１へ出力する場合、内部ＣＰＵ１２は、ＤＭＡ制御部１４に対しＴＳパケット＃ｎをＨＳＤ２０１へ出力する指示を出す。
【００７５】
次いで、ＤＭＡ制御部１４がＴＳパケット＃ｎをＨＳＤに出力し、内部ＣＰＵ１２がタイマ値を設定する（Ｓ３）。処理Ｓ３は、図５のタイミングｔ３において実行開始し、期間（ｐ’）（ＨＳＤへの出力時間）の後、実行終了する。ＤＭＡ制御部１４は、内部ＣＰＵ１２からＨＳＤ２０１へ出力する指示を受け、ＴＳパケットバッファ＃１（１６１）に格納されているＴＳパケット＃ｎを読み出し、ＨＳＤ２０１へ出力する。ＤＭＡ制御部１４は、ＴＳパケット＃ｎの出力が終了すると、内部ＣＰＵ１２に内部バス１７を介して転送完了の割込みを出力する。
【００７６】
さらに、本実施形態では、従来の処理Ｓ１３に加えて、ＴＳパケットのヘッダ部３０１の解析処理の時間（ｔ）、すなわち、受信したＴＳパケット＃ｎの内部メモリ１６への書き込みが完了してからＨＳＤ２０１へ出力を開始するまでの時間（図５のｔ２〜ｔ３の時間）を処理Ｓ５で使用するタイマのタイマ値として設定する。このタイマは、内部ＣＰＵ１２のタイマ１２１で動作するタイマである。
【００７７】
また、従来処理ではＨＳＤへの出力レートとＴＳパケットの入力レートは同等であったが、本実施形態における処理では、ＴＳパケットの入力レート３２Ｍｂｐｓより速い出力レート１０８Ｍｂｐｓを瞬間的な出力レートとしてＨＳＤ２０１へ出力する。このＨＳＤ２０１の出力レートの最適値は後述する式（１４）により求めることができる。
【００７８】
次いで、デスクランブラ１３がＴＳパケット＃ｎをデスクランブルする（Ｓ４）。処理Ｓ４は、図５のタイミングｔ４において実行開始し、期間（ｑ）（デスクランブル処理時間）の後、実行終了する。内部ＣＰＵ１２は、ＤＭＡ制御部１４からＴＳパケット＃ｎのＨＳＤ転送終了の割込みを受けると、デスクランブルを行うため、デスクランブラ１３にデスクランブルの指示を出力する。デスクランブラ１３は、内部ＣＰＵ１２の指示を受け、ＴＳパケット＃ｎを、ＴＳパケットバッファ＃１（１６１）から読み出し、データ部３０２に対しデスクランブルを行う。デスクランブルされたデータ部３０２は、ＴＳパケットバッファ＃１（１６１）に上書きされる。デスクランブルが終了するとデスクランブラ１３は、内部バス１７を介して内部ＣＰＵ１２に対してデスクランブル終了の割込みを出力する。
【００７９】
処理Ｓ４の間、内部ＣＰＵ１２がＴＳパケット＃ｎ＋１のヘッダを解析する（Ｓ５）。処理Ｓ５は、図５のタイミングｔ５において実行開始し、期間（ｕ）（２つ目のＴＳパケットのヘッダ解析処理時間）の後、実行終了する。ＴＳパケット＃ｎのデスクランブル処理の間、受信ブロック１１は、ＴＳパケットバッファ＃２（１６２）にＴＳパケット＃ｎ＋１の書き込みを完了し、内部ＣＰＵ１２に内部バス１７を介して割込みを出力する。内部ＣＰＵ１２は、ＴＳパケット＃ｎ＋１に対し処理Ｓ２と同様にして、ヘッダ解析処理を行う。ただし、処理Ｓ２と比較して処理Ｓ５は処理時間が短縮される。ＴＳパケット＃ｎのデスクランブル（処理Ｓ４）は、デスクランブラ１３で処理が行われ、処理Ｓ５は、内部ＣＰＵ１２で処理が行われるため、処理Ｓ４、処理Ｓ５は並列に実行される。また、内部ＣＰＵ１２のタイマ１２１は、図５のタイミングｔ５において、処理Ｓ３で設定されたタイマ値のタイマを開始する。
【００８０】
次いで、内部ＣＰＵ１２がＴＳパケット＃ｎのデータを解析し、ＤＭＡ制御部１４が外部メモリへ出力する（Ｓ６）。処理Ｓ６は、図５のタイミングｔ６において実行開始し、期間（ｒ）（ＴＳパケットのデータ解析処理時間）と期間（ｓ）（外部メモリへの出力時間）の後、実行終了する。内部ＣＰＵ１２は、デスクランブラ１３からＴＳパケット＃ｎのデスクランブル終了の割込みを受ると、ＴＳパケット＃ｎのデータ部３０２の解析を行う。解析の結果、データ部３０２を出力する場合、ＤＭＡ制御部１４に対しデータ部３０２を外部メモリ２へ出力するよう指示を行う。ＤＭＡ制御部１４は、外部メモリ２へデータ部３０２を出力し、この出力が終了したとき、内部バス１７を介して内部ＣＰＵ１２に転送終了の割込みを出力する。ただし、処理Ｓ６は、処理Ｓ５が終了されるのを待ってから処理が開始される。これは、処理Ｓ６と処理Ｓ５が、両方とも内部ＣＰＵ１２を使用しての処理となるため、平行に処理することが不可能だからである。そのため、先に処理が行われている処理Ｓ５が優先して実行された後、処理Ｓ６が実行される。したがって、図５に示すように、ＴＳパケット＃ｎの処理としては、処理Ｓ４が実行終了してから、処理Ｓ６が実行開始するまで、処理待ち時間（ｗ’）が発生する。
【００８１】
次いで、内部ＣＰＵ１２がタイマ割り込みを受け、ＤＭＡ制御部１４がＴＳパケット＃ｎ＋１をＨＳＤに出力する（Ｓ７）。処理Ｓ７は、図５のタイミングｔ７において実行開始し、期間（ｐ’）の後、実行終了する。処理Ｓ５にて開始したタイマがタイムアウトすると、内部ＣＰＵ１２は、タイマ１２１によってタイマ割込みを受け、ＤＭＡ制御部１４に対しＴＳパケットバッファ＃２（１６２）をＨＳＤ２０１へ出力するよう指示を行う。ＤＭＡ制御部１４は、ＴＳパケットバッファ＃２（１６２）よりＴＳパケット＃ｎ＋１を読み出し、ＨＳＤ２０１へ出力する。処理Ｓ７は、処理Ｓ６のデータ部３０２の出力が行われている間に処理される。データ部３０２の出力は、ＤＭＡ制御部１４が使用され、タイマ処理は、内部ＣＰＵ１２を使用して処理が行われるため、処理Ｓ７と処理Ｓ６は平行して処理が行われる。
【００８２】
次いで、ＴＳパケット＃ｎのデータの転送終了後、ＤＭＡ制御部１４がバッファを解放する（Ｓ８）。すなわち、処理Ｓ８は、図５のタイミングｔ８において実行される。内部ＣＰＵ１２は、ＤＭＡ制御部１４からＴＳパケット＃ｎのデータ部３０２の転送終了の割込みを受け、ＴＳパケットバッファ＃１（１６１）を解放する。ここでＴＳパケットバッファ＃１（１６１）が解放されたことにより、ＴＳパケット＃ｎの処理が終了する。以上の処理を１つの１ＴＳパケット毎に行う。
【００８３】
本実施形態では、ＨＳＤへの出力レートは、平均的な出力レートをＴＳの入力レートと同等にしつつ、瞬間的な出力レートを速める。すなわち、図５の（ａ）の期間（第２の期間：ＴＳパケットを出力する期間）に、入力レートよりも速いレートでＴＳパケットを出力し、図５（ｂ）の期間（第３の期間：ＴＳパケットを出力しない期間）に、ＴＳパケットを出力しない。そうすると、図５（ａ）の期間における瞬間的な出力レートが速くなり、図５（ａ）及び図５（ｂ）における平均的な出力レートが入力レートとほぼ等しくすることができる。
【００８４】
図５（ａ）の期間は、ＤＭＡ制御部１４の出力レートによって規定される。ＤＭＡ制御部１４のＨＳＤへの出力は、ＴＳの入力レートに依存せず、常に１０８Ｍｂｐｓにて出力する。このとき、ＨＳＤへの出力にかかる処理時間（ｐ’）は、１ＴＳパケットが１８８バイトであるため、以下の式（９）で表すことができ、１３．９μｓとなる。
【００８５】
ｐ’＝１８８［Ｂｙｔｅ］÷（１０８÷８×１０＾（−６））［Ｂｙｔｅ／Ｓｅｃ］＝約１３．９μｓ      （９）
【００８６】
式（９）より図５（ａ）の期間は常にｐ’となり、この図５（ａ）のＨＳＤ出力処理を第１の期間（図５（ａ）＋（ｂ））毎に繰り返すことで、ＴＳパケットをＨＳＤへ出力開始するタイミングと出力するデータ量を一定にし、平均的な出力レートを一定にする。また、処理時間（ｔ）や（ｕ）のように、ＴＳパケットの内容によって、ヘッダ部３０１の解析処理の時間が変動することがあるため、図５（ｂ）の期間を処理時間（ｔ）及び（ｕ）に依存しない一定の期間とする必要がある。
【００８７】
そこで、本実施形態では、図５（ｂ）の期間を一定にする手法として、タイマを使用している。このタイマによって、ＴＳパケットをＨＳＤへ出力開始するタイミングを規定し、図５（ｂ）の期間を一定にすることで、第１の期間（図５（ａ）＋（ｂ））を一定にし、平均的な出力レートを保っている。この例では、第２の期間（図５（a））にＤＭＡ制御部１２から１０８Ｍｂｐｓ（瞬間的なレート）でＴＳパケットを出力し、タイマで規定される図５（ｂ）の期間には、ＴＳパケットを出力せずに、第１の期間（図５（ａ）＋（ｂ））の平均的なレートを３２Ｍｂｐｓとしている。入力レートと同じレート（３２Ｍｂｐｓ）でＨＳＤへ出力することにより、映像データ処理装置において、放送局等から送信されるレートと同じレートで、ＴＳパケットを受信し、映像の表示等を正しく行うことができる。すなわち、本実施形態では、瞬間的な出力レートは高速であるが平均的な出力レートは従来例と同じレートとなるため、従来のＴＳ分離装置７１に接続される映像データ処理装置を、本実施形態のＴＳ分離装置１にそのまま接続しても、映像データ処理装置で正常にＴＳパケットを受信することが可能となる。
【００８８】
特に、本実施形態では、内部ＣＰＵ１２がヘッダ部３０１の解析を開始してから、つまり、受信ブロックがＴＳパケットを分離してから、ＨＳＤへの出力を開始するまでの期間（図５のｔ２〜ｔ３もしくはｔ５〜ｔ７：第４の期間）をタイマで規定している。また、１つ目のＴＳパケットのヘッダ解析処理時間（ｔ）が１つ目のＴＳパケットのヘッダ解析処理時間（ｕ）よりも長いことから、処理時間（ｔ）をタイマ値としている。尚、その他のＴＳパケットのヘッダ解析処理時間をタイマ値としてもよい。
【００８９】
ここで、本実施形態における、１つのＴＳパケットの処理時間と、処理に必要なＴＳパケットバッファの数を算出する例について説明する。尚、以下の式で用いる処理のクロック数やステップ数は、一例であり、シミュレータによって測定した値である。
【００９０】
図５より、本実施形態における１ＴＳパケットの処理時間は、ＴＳパケットの入力時間（ｏ）と、１つ目のＴＳパケットのヘッダ解析処理時間（ｔ）と、ＨＳＤへの出力時間（ｐ’）と、デスクランブル処理時間（ｑ）と、外部メモリへの出力時間（ｓ）と、ＴＳパケットのデータ解析処理時間（ｒ）と、さらに、デスクランブル処理が完了してからＴＳパケットのデータ解析が開始されるまでの処理待ち時間（ｗ’）とを合計した値となる。図５より、この待ち時間（ｗ’）は、２つ目のＴＳパケットのヘッダ解析処理時間（ｕ）から、（ｕ）と（ｑ）が重なる部分を引いた値である。したがって、１ＴＳパケットの処理時間は、以下の式（１０）で表すことができ、１３３．４μｓとなる。
【００９１】
ｏ＋ｔ＋ｐ’＋ｑ＋（ｕ−（ｑ−（ｏ−（ｔ＋ｐ’））））＋ｒ＋ｓ＝１３３．４μｓ      （１０）
【００９２】
上記の式（８）と同様に、１ＴＳパケットの処理に必要なＴＳパケットバッファは、１ＴＳパケットの処理時間の間に、入力されるＴＳパケットの数により求まる。式（１）より、２ＴＳパケットの入力時間は９４μｓ、３ＴＳパケットの入力時間は１４１μｓであるから式（１１）の関係が成り立つ。
【００９３】
９４μｓ（２ＴＳパケットの入力時間）＜１３３．４μｓ（１ＴＳパケットの処理時間）＜１４１μｓ（３ＴＳパケットの入力時間）      （１１）
【００９４】
よって、本実施形態における１ＴＳパケット当りの処理時間は２ＴＳパケット分入力される時間以上、３ＴＳパケット分未満であるから、ＴＳパケットバッファが３ＴＳパケット分必要となる。
【００９５】
つまり、本実施形態において必要となるＴＳパケットを格納しておくＴＳパケットバッファが、従来例では４つ必要なのに対して、本実施形態では３つ必要となるので１つ削減可能となる。
【表１】
2006128907.tif 000003
表１は、従来例と本実施形態の処理時間を示している。表１より、従来例の処理と本実施形態における処理で異なる点は、ＨＳＤの出力処理（ａ）と処理待ち時間（ｂ）である。ＨＳＤの出力処理（ａ）は、ＨＳＤの出力レートを上げたことにより処理時間を短縮することができた。処理待ち時間（ｂ）は、ＨＳＤの出力処理が短縮されることにより、従来例ではＨＳＤの出力終了を待っていた時間に、他の処理（デスクランブル、データ部３０２の解析処理など）が行われるため、待ち時間を短縮することができた。
【００９６】
従来例では、式（８）より、１ＴＳパケットの処理時間が、３ＴＳパケットの入力時間よりも４５μｓ多いため、ＴＳパケットバッファが４つ必要だった。本実施形態では、ＨＳＤの出力レートを早めることで、式（７）と式（１０）より、従来例よりも５２．４μｓの処理時間を短縮することができ、ＴＳパケットバッファを一つ削減することができた。
【００９７】
ここで、ＨＳＤ２０１への出力レートの最適値の算出例について説明する。ＨＳＤ２０１への出力レートの最適値とは、ＴＳパケットバッファが削減可能なＨＳＤ２０１への出力レートの最小値のことをいう。この例では、処理に必要なＴＳパケットバッファが３つとなる場合の出力レートを求める。
【００９８】
処理に必要なＴＳパケットバッファが３つとなるためには、式（１１）が成り立つ範囲であればよい。すなわち、式（１０）で表される１ＴＳパケットの処理時間が、２ＴＳパケット分の入力時間〜３ＴＳパケット分の入力時間の範囲であればよい。また、式（１０）に含まれている処理の待ち時間は、図５より、ＴＳパケットバッファが解放される時間に影響しない。以上のことを考慮して、ＴＳパケットバッファが３つとなるための１ＴＳパケットの処理時間は、以下の式（１２）で表される。ただし、ＴＳパケットの入力レートをＲ（Ｍｂｐｓ）とする。
【００９９】
２×（１８８÷（Ｒ÷８×１０＾６））＜（１８８÷（Ｒ÷８×１０＾６））＋ｔ＋ｐ’＋ｑ＋ｒ＋ｓ（μｓ）＜３×（１８８÷（Ｒ÷８×１０＾６））＝３００８÷Ｒ＜１５０４÷Ｒ＋ｔ＋ｐ’＋ｑ＋ｒ＋ｓ（μｓ）＜４５１２÷Ｒ      （１２）
【０１００】
式（１２）より、ｐ’の取り得る範囲は以下の式（１３）で表される。ただし、ｐ’＞０の関係が成り立つものとする。
【０１０１】
３００８÷Ｒ−（１５０４÷Ｒ＋ｔ＋ｑ＋ｒ＋ｓ）＜ｐ’（μｓ）＜４５１２÷Ｒ−（１５０４÷Ｒ＋ｔ＋ｑ＋ｒ＋ｓ）＝１５０４÷Ｒ−（ｔ＋ｑ＋ｒ＋ｓ）＜ｐ’（μｓ）＜３００８÷Ｒ−（ｔ＋ｑ＋ｒ＋ｓ）      （１３）
【０１０２】
式（１３）より、ＨＳＤ２０１への出力レートの最適値は以下の式（１４）で表される。
【０１０３】
ＨＳＤ１０２の出力レートの最適値［Ｍｂｐｓ］＝１８８×８÷（３００８÷Ｒ−（ｔ＋ｑ＋ｒ＋ｓ））      （１４）
【０１０４】
式（１４）より、例えば、Ｒ＝３２Ｍｂｐｓとすると、最適値は約４６Ｍｂｐｓとなる。
【０１０５】
以上説明したように、本実施形態では、ＴＳ分離装置にスクランブルされたＴＳが入力され、ＨＳＤへの出力が必要とされる場合、ＨＳＤへの平均的な出力レートをＴＳの入力レートと同等にしつつ、瞬間的なＨＳＤへの出力レートを速めることにより、１ＴＳパケットの処理時間を短縮することができる。したがって、ＴＳパケットバッファが解放されない時間も短くなり、処理に必要とされるＴＳパケットバッファ数を減らし使用する内部メモリを削減することができる。
【０１０６】
また、タイマにより、ＴＳパケットに分離してから所定の期間経過後、ＨＳＤへの出力を行うことにより、ＴＳパケットのヘッダ部の解析処理が変動した場合でも、ＨＳＤへの平均的な出力レートを一定に保つことできる。
【０１０７】
また、１ＴＳパケットの処理時間が短縮することから、処理の結果である音声や映像データ等を外部メモリへ出力する際の出力遅延が少なくすることができる。したがって、出力された映像データ等を表示する装置において、映像データ等のデコード処理の遅延を短縮することができる。
【０１０８】
尚、上述の例では、受信したＴＳパケットのデータをデスクランブルする場合について説明したが、これに限らず、デスクランブルしない場合であっても、１つのＴＳパケット処理を短縮することができる。例えば、スクランブルされていないデータを含むＴＳパケットを受信し場合は、受信データをそのまま、ＨＳＤと外部メモリへ同時に出力するが、本発明ではＨＳＤ出力時間が短縮されるため、１つのＴＳパケット処理も短縮し、ＴＳパケットバッファを早いタイミングで解放することができる。
【０１０９】
また、上述の例では、デジタル放送において、ＴＳをＴＳパケットに分離する装置として説明したが、これに限らず、その他のパケットストリームからパケットを抽出し所定のレートで転送する装置にも適用することができる。
【０１１０】
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。
【図面の簡単な説明】
【０１１１】
【図１】本発明にかかる受信システムの構成図である。
【図２】本発明にかかるＴＳ分離装置を含む受信装置の構成を示すブロック図である。
【図３】本発明にかかるＴＳ分離装置に格納されるバッファ領域のデータ構造を示す図である。
【図４】本発明にかかるＴＳ分離装置の動作を示すフローチャートである。
【図５】本発明にかかるＴＳ分離装置の動作を示すタイミングチャートである。
【図６】ＴＳ及びＴＳパケットのフォーマットを示す図である。
【図７】従来のＴＳ分離装置を含む受信装置の構成を示すブロック図である。
【図８】従来のＴＳ分離装置に格納されるバッファ領域のデータ構造を示す図である。
【図９】従来のＴＳ分離装置の動作を示すフローチャートである。
【図１０】従来のＴＳ分離装置の動作を示すタイミングチャートである。
【符号の説明】
【０１１２】
１  ＴＳ  Ｄｅｍｕｘ（ＴＳ分離装置）
２  外部メモリ
３  外部ＣＰＵ
４  ホストバス
５  メモリバス
１０  ホストインタフェース
１１  ＴＳパケット受信ブロック
１２  ＴＳ  Ｄｅｍｕｘ  内部ＣＰＵ
１３  デスクランブラ
１４  ＤＭＡ制御部
１６  内部メモリ
１６ａ  バッファ領域
１６ｂ  プログラム領域
１７  内部バス
１００  受信装置
１２１  タイマ
２００  映像データ処理装置
２０１  ＨＳＤ
【図１】
2006128907.tif 000004
【図２】
2006128907.tif 000005
【図３】
2006128907.tif 000006
【図４】
2006128907.tif 000007
【図５】
2006128907.tif 000008
【図６】
2006128907.tif 000009
【図７】
2006128907.tif 000010
【図８】
2006128907.tif 000011
【図９】
2006128907.tif 000012
【図１０】
2006128907.tif 000013