近年、衛星や地上波及びケーブルによるデジタル放送が開始され、本格化し始めている。デジタル放送システムでは、例えば、MPEG2方式で圧縮された映像や音声、番組情報等をトランスポートストリーム(以下、TSという)というビットストリームで多重化し伝送している。
図6は、TSのフォーマットを示している。図に示されるように、TSは、複数のTSパケットから構成されている。TSパケットは、188バイトの固定長パケットであり、4バイトのヘッダ部301と184バイトのデータ部302を有している。ヘッダ部301には、1バイトの同期バイト311、3ビットのフラグ312、PID(Packet Identification)313、1バイトのフラグ314が格納される。フラグ314は、このTSパケットで伝送される伝送データのスクランブルの有無を示すスクランブル制御フラグを含んでいる。データ部302には、例えば、MPEG2方式で圧縮され必要に応じてスクランブルされた映像や音声等の伝送データが格納される。この伝送データをPES(Packetized Elementarty Stream)といい、複数のTSパケットに含まれるPESを連結することで、1つの映像データ等となる。
例えば、TSの受信側では、受信したTSを複数のTSパケットへ分離し、スクランブル制御フラグに従ってデータ部302のスクランブル解除(デスクランブル)等を行った後、データを復号して映像の表示等を行う。
一方、デジタルAV機器等を相互接続するインタフェースとしてIEEE1394等のHSD(High Speed Data)が知られている。例えば、TSを受信する受信装置とデジタルAV機器とをHSDによって接続することで、受信装置で受信したTSをデジタルAV機器に転送し、デジタルAV機器で所望の処理を行うことができる。
図7のブロック図は、従来の受信装置の構成を示しており、例えば、特許文献1に記載されているものである。この従来の受信装置700は、受信したTSをTSパケットに分離してメモリに格納し、必要に応じてHSDを介して外部の装置へ出力する。
従来の受信装置700は、図に示されるように、TS Demux(TS分離装置)71、外部メモリ72、外部CPU73を備えている。TS分離装置71は、TSパケット受信ブロック(以下、受信ブロックとする)711、TS Demux 内部CPU(以下、内部CPUとする)712、デスクランブラ713、DMA(Direct Memory Access)制御部714、内部メモリ716、ホストインタフェース710を備えている。
ホストインタフェース710は、ホストバス74を介して外部CPU73と接続されている。DMA制御部714は、メモリバス75を介して外部メモリ72と接続されるとともに、HSD76を介してデジタルAV機器等と接続されている。また、TS分離装置71内の各ブロックは、それぞれ内部バス717に接続されている。尚、受信ブロック711にTSが入力される入力レートは、例えば、32Mbpsであり、DMA制御部714がHSD76へ出力する出力レートも同じ32Mbpsである。
内部メモリ716は、バッファ領域716aとプログラム領域716bを有している。バッファ領域716aには、受信したTSパケットが格納され、プログラム領域716bには、内部CPU712で実行されるファームウェア(プログラム)が格納される。内部メモリ716には、その他、TS分離装置71内の各ブロックが動作するために必要な設定データ等が格納されている。
バッファ領域716aには、図8に示すように、4つのTSパケットバッファの領域が設けられている。従来のTS分離装置71では、後述の算出例(式(8))に示すように、1つのTSパケットの処理に4つのTSパケットバッファが必要なため、4つのTSパケットバッファの領域が設けられている。TSパケットバッファとは、TSパケットを一時的に格納しておくための一時格納領域である。761〜764は、それぞれTSパケットバッファ#1の領域〜TSパケットバッファ#4の領域である。各TSパケットバッファは、ステータスが格納されるステータス部801、TSパケットが格納されるTSパケット部802が設けられている。
次に、図9及び図10を用いて、従来のTS分離装置71の動作について説明する。図9は、従来のTS分離装置71の動作を示すフローチャート、図10は、n=1としたときの従来のTS分離装置71の動作を示すタイミングチャートである。この処理は、スクランブルされたデータを含むTSパケットを受信し、HSD76及び外部メモリ72へ出力する場合の処理である。HSD76へは、デジタルAV機器等でデスクランブルすることが前提であるため、TSパケットをスクランブルされた状態のまま転送する。外部メモリ72へは、例えば、受信装置700に接続される表示装置(不図示)等で映像の表示等を行うため、デスクランブルしたデータを出力する。
まず、受信ブロック711が、TSパケット#nをバッファに書き込む(S11)。処理S11は、TSパケット#nを受信したときに実行開始し、期間(o)(TSパケットの入力時間)の後、すなわち図10のタイミングt11において実行終了する。受信ブロック711は、TSパケット#nを受信すると、TSパケットバッファ#1(761)を取得し、TSパケットバッファ#1(761)にTSパケット#nを書き込む。受信ブロック711は、TSパケット#nの書き込みが完了すると、内部CPU712に内部バス717を介して割込みを出力する。さらに、受信ブロック711は、TSパケット#n+1を受信すると、TSパケットバッファ#2(762)にTSパケット#n+1の書き込みを開始する。
次いで、内部CPU712が、TSパケット#nのヘッダを解析する(S12)。処理S12は、図10のタイミングt12において実行開始し、期間(t)(1つ目のTSパケットのヘッダ解析処理時間)の後、実行終了する。内部CPU712は、受信ブロック711から書き込み完了の割込みを受けると、書き込まれたTSパケット#nに対してヘッダ部301の解析処理を行う。内部CPU712は、ヘッダ部301に含まれるフラグ314のスクランブル制御フラグに基づいて、スクランブルの有無を決定する。また、内部CPU712は、外部CPU73から設定された設定データ等に基づいて、HSD76への出力の有無を決定する。HSD76へ出力する場合、内部CPU712は、DMA制御部714に対しTSパケット#nをHSD76へ出力する指示を出す。
次いで、DMA制御部714が、TSパケット#nをHSDに出力する(S13)。処理S13は、図10のタイミングt13において実行開始し、期間(p)(HSDへの出力時間)の後、実行終了する。DMA制御部714は、内部CPU712からHSD76へ出力する指示を受け、TSパケットバッファ#1(761)に格納されているTSパケット#nを読み出し、HSD76へ出力する。DMA制御部714は、TSパケット#nの出力が終了すると、内部CPU712に内部バス717を介して転送完了の割込みを出力する。
処理S13の間、内部CPU712が、TSパケット#n+1のヘッダを解析する(S14)。処理S14は、図10のタイミングt14において実行開始し、期間(u)(2つ目のTSパケットのヘッダ解析処理時間)の後、実行終了する。TSパケット#nのHSD76への出力の間、受信ブロック711はTSパケットバッファ#2(762)にTSパケット#n+1の書き込みを完了すると、内部CPU712に内部バス717を介して割込みを出力する。また、受信ブロック711は、TSパケット#n+2を受信するとTSパケットバッファ#3(763)にTSパケット#n+2の書き込みを行う。さらに、内部CPU712は、TSパケット#n+1に対し処理S12と同様にして、ヘッダ解析処理を行う。
次いで、TSパケット#nのHSD転送終了後、DMA制御部714がTSパケット#n+1をHSDに出力する(S15)。処理S15は、図10のタイミングt15において実行開始し、期間(p)の後、実行終了する。DMA制御部714は、HSD76へTSパケット#nの出力を完了すると、内部CPU712へ転送終了の割り込みを出力する。内部CPU712は、DMA制御部714からTSパケット#nのHSD転送終了の割込みを受け、DMA制御部714を起動し、TSパケット#n+1をHSD76へ出力する指示を出す。DMA制御部714は、内部CPU712から指示を受け、TSパケットバッファ#2(762)に格納されているTSパケット#n+1を読み出し、HSD76へ出力する。
次いで、デスクランブラ713が、TSパケット#nをデスクランブルする(S16)。処理S16は、図10のタイミングt16において実行開始し、期間(q)(デスクランブル処理時間)の後、実行終了する。デスクランブラ713は、内部CPU712の指示を受け、TSパケット#nをTSパケットバッファ#1(761)から読み出し、データ部302に対しデスクランブルを行う。デスクランブルされたデータ部302は、TSパケットバッファ#1(761)に上書きされる。デスクランブルが終了するとデスクランブラ713は、内部バス717を介して内部CPU712に対してデスクランブル終了の割込みを出力する。
処理S15の間、内部CPU712が、TSパケット#n+2のヘッダを解析する(S17)。処理S17は、タイミングt17において実行開始し、期間(p)の後、実行終了する。TSパケット#n+1のHSD76への出力処理の間、受信ブロック711は、TSパケットバッファ#3(763)にTSパケット#n+2の書き込みが完了すると、内部CPU712に内部バス717を介して割込みを出力する。受信ブロック711は、TSパケットバッファ#4(764)にTSパケット#n+3の書き込みを行う。さらに、内部CPU712は、TSパケット#n+2に対し処理S14と同様にして、ヘッダ解析処理を行う。
次いで、DMA制御部714が、TSパケット#n+2をHSDに出力する(S18)。処理S18は、図10のタイミングt18において実行開始し、期間(p)の後、実行終了する。内部CPU712は、DMA制御部714からTSパケット#n+1のHSD転送終了の割込みを受けると、DMA制御部714を起動し、TSパケット#n+2をHSD76へ出力する指示を出す。DMA制御部714は、内部CPU712から指示を受け、TSパケットバッファ#3(763)に格納されているTSパケット#n+2を読み出し、HSD76へ出力する。
次いで、デスクランブラ713が、TSパケット#n+1をデスクランブルする(S19)。処理S19は、図10のタイミングt19において実行開始し、期間(q)の後、実行終了する。デスクランブラ713は、内部CPU712の指示を受け、TSパケット#n+1をTSパケットバッファ#2(762)から読み出し、デスクランブルを行う。デスクランブルされたデータ部302は、TSパケットバッファ#2(762)に上書きされる。デスクランブルが終了するとデスクランブラ713は、内部バス717を介して内部CPU712に対してデスクランブル終了の割込みを出力する。
次いで、内部CPU712が、TSパケット#nのデータを解析し、DMA制御部714が、外部メモリへ出力する(S20)。処理S20は、図10のタイミングt20において実行開始し、期間(r)(TSパケットのデータ解析処理時間)と期間(s)(外部メモリへの出力時間)の後、実行終了する。内部CPU712は、デスクランブラ713からTSパケット#nのデスクランブル終了の割込みを受けると、TSパケット#nのデータ部302の解析を行う。解析の結果、データ部302を出力する場合、内部CPU712は、DMA制御部714に対しデータ部302を外部メモリ72へ出力するよう指示を行う。DMA制御部714は、外部メモリ72へデータ部302を出力し、この出力が終了したとき、内部バス717を介して内部CPU712に転送終了の割込みを出力する。処理S20は、内部CPU712により処理が行われ、処理S19はデスクランブラ713により処理が行われるため、2つの処理は並列に実行される。
次いで、TSパケット#nのデータの転送終了後、DMA制御部714がバッファを解放する(S21)。すなわち、処理S21は、図10のタイミングt21において実行される。内部CPU712は、DMA制御部714からTSパケット#nのデータ部302の転送終了の割込みを受け、TSパケットバッファ#1(761)を解放する。ここでTSパケットバッファ#1(761)が解放されたことにより、TSパケット#nの処理が終了する。以上の処理を1つのTSパケット毎に行う。
ここで、上記従来例における、1つのTSパケットの処理時間と、処理に必要なTSパケットバッファの数を算出する例について説明する。尚、以下の式で用いる処理のクロック数やステップ数は、一例であり、シミュレータによって測定した値である。
以下、図10に示す、TSパケットの入力時間(o)、HSDへの出力時間(p)、デスクランブル処理時間(q)、外部メモリへの出力時間(s)、TSパケットのデータ解析処理時間(r)、1つ目のTSパケットのヘッダ解析処理時間(t)、2つ目のTSパケットのヘッダ解析処理時間(u)を求める。
1TSパケットあたりの入力時間(o)は、TSパケットのパケット長をTSの入力データレートで徐した値となる。例えば、TSの入力データレートを32Mbpsとして、1TSパケットは188バイトであるため、1TSパケットあたりの入力時間(o)は、以下の式(1)で表すことができ、47μsとなる。
o=188[Byte]÷(32÷8×10^6)[Byte/Sec]=47μs (1)
一般に、HSD76の出力データレートは、入力データレートと同様に設定される。これは、放送局等から受信したレートと異なるレートで、HSD76に接続されるデジタルAV機器等にデータを転送してしまうと、デジタルAV機器等で映像の表示等に問題が生じるからである。したがって、1TSパケットの出力時間(p)は、1TSパケットあたりの入力時間と同様に、式(1)より47μsとなる。
1TSパケットあたりのデスクランブルにかかる処理時間(q)は、デスクランブルにかかるクロック数に1クロックの時間を乗じた値となる。例えば、シミュレーションの結果、デスクランブル処理には1782クロックかかり、デスクランブラ713がベースクロック108MHzで動作するとしたとき、1クロックは9.25nsであるため、1TSパケットあたりのデスクランブルにかかる処理時間(q)は、以下の式(2)で表すことができ、16.5μsとなる。
q=1782[クロック]×9.25[ns]=約16.5μs (2)
DMA制御部714による外部メモリ72へデータ部302を出力する出力時間(s)は、出力にかかるクロック数に1クロックの時間を乗じた値となる。1パケット当たりのデータ部302をすべて出力する場合、シミュレーションの結果、出力処理には334クロックかかり、DMA制御部714がベースクロック108MHzで動作するとしたとき、出力時間(s)は以下の式(3)で表すことができ、3.1μsとなる。
s=334[クロック]×9.25[ns]=約3.1μs (3)
内部CPU712におけるデータ部302の解析処理の時間(r)は、解析処理にかかるプログラムのステップ数と、プログラムの1命令の実行に必要なクロック数と、1クロックの時間とを乗じた値となる。シミュレーションの結果、解析処理には478ステップかかり、3クロックで1命令が実行され、内部CPU712はベースクロック108MHzで動作するとしたとき、データ部302の解析処理の時間(r)は、以下の式(4)で表すことができ、13.3μsとなる。
r=478×3[クロック]×9.25[ns]=約13.3μs (4)
内部CPU712におけるヘッダ部301の解析処理の時間(t)、すなわち、TSパケットの受信完了してから、HSD76への出力を開始するまでの処理の時間は、解析処理にかかるプログラムのステップ数と、プログラムの1命令の実行に必要なクロック数と、1クロックの時間とを乗じた値となる。シミュレーションの結果、解析処理には、1022ステップかかり、式(4)と同じ条件とすると、ヘッダ部301の解析処理の時間(t)は、以下の式(5)で表すことができ、処理時間(t)は28.4μsとなる。
t=1022×3[クロック]×9.25[ns]=約28.4μs (5)
2TSパケット目以降では、ヘッダ部301の内容により1TSパケット目の処理のみに必要であった処理が省かれることが多い。2TSパケット目以降のヘッダ部301の解析処理に828ステップかかるため、ヘッダ部301の解析処理の時間(u)は、以下の式(6)で表すことができ、23μsとなる。
u=828×3[クロック]×9.25[ns]=約23μs (6)
図10より、1TSパケット処理の処理時間は、上記の式(1)〜式(6)で求めた全ての値と、デスクランブル処理が完了してからTSパケットのデータ解析が開始されるまでの処理待ち時間(w=p−q)とを合計した値となる。したがって、1TSパケットの処理時間は、以下の式(7)で表すことができ、185.9μsとなる。
o+t+p+q+(p−q)+r+s=185.9μs (7)
1TSパケットの処理に必要なTSパケットバッファは、1TSパケットの処理時間の間に、入力されるTSパケットの数により求まる。式(1)より、3TSパケットの入力時間は141μs、4TSパケットの入力時間は188μsであるから式(8)の関係が成り立つ。
141μs(3TSパケットの入力時間)<185.9μs(1TSパケットの処理時間)<188μs(4TSパケットの入力時間) (8)
よって、従来の処理における1TSパケット当りの処理時間は3TSパケット分入力される時間以上、4TSパケット分未満であるから、TSパケットバッファが4TSパケット分必要となる。
特開2003−299045号公報
以下、図面を用いて、本発明の実施の形態について説明する。本実施形態は、TS分離装置からHSDへ出力する平均的なレート(転送速度)を変更せずに、瞬間的なレートを上げることを特徴としている。
まず、図1を用いて、本実施形態にかかる受信システムの構成について説明する。この受信システムは、デジタル放送を受信するためのシステムであり、放送局等からTSを受信し、映像の表示等を行う。
図に示されるように、この受信システムは、受信装置100と映像データ処理装置200を備えており、受信装置100と映像データ処理装置200との間は、HSD201により接続されている。HSD201は、IEEE1394等の高速インタフェースである。IEEE1394では、例えば、最大400Mbpsのデータ転送が可能である。
受信装置100は、放送局等からTSを受信し、受信したTSに含まれるTSパケットを映像データ処理装置200へ転送する。TSは、放送局等から受信装置100へ有線もしくは無線により伝送される。TSの具体的な伝送手段は、特に限定されず、例えば、衛星や地上波、ケーブル等により伝送される。例えば、TSを衛星から受信する場合、受信装置100は、アンテナにて電波を受信し、この電波を特定の周波数帯に変換する。さらに、変換した受信信号を復調して、復調した信号に対して符号誤り訂正等を行って、TSを抽出する。受信装置100は、TS分離装置1を有しており、抽出したTSをTS分離装置1によって、複数のTSパケットに分離する。
TS分離装置1には、放送局等からの伝送されるレートでTSが入力される。TS分離装置1は、TSをTSパケットに分離するとともに、設定やTSパケットに基づいて、TSパケットをHSD201を介して映像データ処理装置200へ転送したり、TSパケットの伝送データをデスクランブルする。TS分離装置1は、放送局等からの受信レート(入力レート)と同じレートでHSD201へ出力する。本実施形態では、入力レートと平均的な出力レートとをほぼ等しくし、瞬間的(一時的)な出力レートを入力レートよりも速くしている。尚、平均的なレートとは、第1の期間(後述する図5(a)+(b))のデータ転送速度、すなわち、第1の期間において転送されるデータ量である。瞬間的なレートとは、第1の期間より短い第2の期間(後述する図5(a))のデータ転送速度、すなわち、第2の期間において転送されるデータ量である。
映像データ処理装置200は、デジタルAV機器等の電子機器であり、受信装置100から受信したTSパケットを解析し、映像の表示等を行う。映像データ処理装置200は、受信したTSパケットをデスクランブルし、デスクランブルしたデータを組み立て、復号等行い映像の表示等を行う。尚、映像データ処理装置200が処理するデータは、映像に限らず、音声や番組情報等でもよい。
映像データ処理装置200は、放送局等からの伝送されるレートと同じレートでTSパケットを受信する。例えば、映像データ処理装置200は、受信したTSパケットを一時的にバッファリングしながら、所定の処理を行う。すなわち、伝送レートで規定されるTSパケットの到着タイミングで、TSパケットをバッファリングし所定の処理を行う。
次に、図2のブロック図を用いて、本実施形態にかかる受信装置の構成について説明する。
この受信装置100は、図に示されるように、TS Demux(TS分離装置)1、外部メモリ2、外部CPU3を備えている。TS分離装置1は、TSパケットが多重化されたTS(パケットストリーム)を分離するパケット分離装置(パケット処理装置)であり、分離したTSパケットのデータ部302を外部メモリ2へ格納するとともに、設定等にしたがいTSパケットを映像データ処理装置200へ転送する。
TS分離装置1は、受信したTSパケットのデータ部302がスクランブルされていない場合、映像データ処理装置200及び外部メモリ2へ、受信したTSパケットもしくはデータ部302をそのまま出力する。また、TS分離装置1は、受信したTSパケットのデータ部302がスクランブルされている場合、映像データ処理装置200へは、TSパケットをスクランブルされた状態のまま転送し、外部メモリ2へは、デスクランブルしたデータ部302を出力する。本実施形態は、特に、このスクランブルされたデータ部302を受信した場合において、TSパケットの処理時間を短縮するものである。
外部CPU3は、TS分離装置1の設定等を行う。また、外部メモリ2へ格納されたデータ部302は、外部CPU3等によって処理し、映像の表示等を行うことが可能である。
TS分離装置1は、TSパケット受信ブロック(以下、受信ブロックとする)11、TS Demux 内部CPU(以下、内部CPUとする)12、デスクランブラ13、DMA制御部14、内部メモリ16、ホストインタフェース10を備えている。
ホストインタフェース10は、ホストバス4を介して外部CPU3と接続されている。DMA制御部14は、メモリバス5を介して外部メモリ2と接続されるとともに、HSD201を介して映像データ処理装置200と接続されている。また、TS分離装置1内の各ブロックは、それぞれ内部バス17に接続されている。
ホストインタフェース10は、ホストバス4を介して、外部CPU3と設定データ等をやり取りする入出力部である。例えば、外部CPU3から設定される設定データは、ホストインタフェース10を介して、内部CPU12に入力され、内部CPU12によって、内部メモリに書き込まれる。
受信ブロック11は、TSを受信し、内部メモリ16のバッファ領域16aにTSパケット単位で格納する受信部(入力部)である。また、受信ブロック11は、抽出部であり、入力レートにしたがい所定の周期(第1の期間毎)に、受信したTSからTSパケットを抽出する。受信ブロック11にTSが入力される入力レートは、例えば、32Mbpsである。
内部CPU12は、内部バス17を介して各ブロックの動作を制御する制御部であるとともに、TSパケットのヘッダ部301やデータ部302の解析を行う解析部である。内部CPU12は、内部メモリ16のプログラム領域16bに格納されているプログラムを実行することで、各種処理を実現する。内部CPU12は、プログラム領域16bから命令を読み出し、読み出した命令にしたがって、各ブロックへ各種処理の指示を出力したり、TSパケットの解析を行う。また、内部CPU12は、設定されたタイマ値の時刻にタイマ割り込みを発生させるタイマ121を有している。
デスクランブラ13は、スクランブルされたTSパケットをデスクランブル(スクランブル解除:平文化処理)するデスクランブル部である。
DMA制御部14は、メモリ制御部であり、バッファ領域16aに格納されたTSパケットのデータ部302をメモリバス5を介して外部メモリ2へ出力し、外部メモリ2へデータ部302の書き込みを行う。さらに、DMA制御部14は、出力部であり、内部メモリ16のバッファ領域16aに格納されたTSパケットをHSD201を介して映像データ処理装置200へ出力する。DMA制御部14が、HSD201へ出力する出力レートは、受信ブロック11の入力レートよりも速く、例えば、108Mbpsである。
内部メモリ16は、各種のデータを記憶(格納)する記憶部(格納部)であり、バッファ領域16aとプログラム領域16bを有している。バッファ領域16aには、受信したTSパケットが格納され、プログラム領域16bには、内部CPU12で実行されるファームウェア(プログラム)が格納される。内部メモリ16には、その他、TS分離装置1内の各ブロックが動作するために必要な設定データ等が格納されている。
バッファ領域16aには、図3に示すように、3つのTSパケットバッファの領域が設けられている。161〜163は、それぞれTSパケットバッファ#1の領域〜TSパケットバッファ#3の領域である。
TSパケットは、受信した順にしたがって、TSパケットバッファに格納される。例えば、ある時点に受信したTSパケット#nは、TSパケットバッファ#1(161)に格納され、次に受信したTSパケット#n+1は、TSパケットバッファ#2(162)に格納され、次に受信したTSパケット#n+2は、TSパケットバッファ#3(163)に格納される。さらに次に受信したTSパケット#n+3は、TSパケットバッファ#1(161)に格納され、TSパケットバッファ#1〜3に前に格納されたTSパケットに上書きされて順次格納されていく。
各TSパケットバッファは、ステータスが格納されるステータス部401、受信したTSパケットが格納されるTSパケット部402が設けられている。例えば、ステータス部401には、ステータスとして、TSパケットバッファの状態(使用中、未使用等)が格納される。TSパケットバッファの許可信号が取得されると、ステータスが使用中となり、処理中のTSパケットの書き込みが可能となる、TSパケットバッファが解放されると、ステータスは未使用となる。
次に、図4及び図5を用いて、本実施形態にかかるTS分離装置の動作について説明する。図4は、TS分離装置1の動作を示すフローチャート、図5は、n=1としたときのTS分離装置1の動作を示すタイミングチャートである。図4及び図5は、TS分離装置1で実行されるパケット分離するための処理を示しており、内部CPUにおいてプログラム領域16bのプログラムにより実行される。また、この処理は、従来例の図9及び図10と同様に、スクランブルされたデータ部302を含むTSパケットを受信し、TSパケットをそのまま映像データ処理装置200へ出力し、デスクランブルしたデータ部302を外部メモリ2へ出力する場合の処理である。
まず、受信ブロック11が、TSパケット#nをバッファに書き込む(S1)。処理S1は、TSパケット#nを受信したときに実行開始し、期間(o)(TSパケットの入力時間)の後、すなわち図5のタイミングt1において実行終了する。受信ブロック11は、TSパケット#nを受信すると、TSパケットバッファ#1(161)を取得し、TSパケットバッファ#1(161)にTSパケット#nを書き込む。受信ブロック11は、TSパケット#nの書き込みが完了すると、内部CPU12に内部バス17を介して割込みを出力する。さらに、受信ブロック11は、TSパケット#n+1を受信すると、TSパケットバッファ#2(162)にTSパケット#n+1の書き込みを開始する。
次いで、内部CPU12が、TSパケット#nのヘッダを解析する(S2)。処理S2は、図5のタイミングt2において実行開始し、(t)(1つ目のTSパケットのヘッダ解析処理時間)の後、実行終了する。内部CPU12は、受信ブロック11から書き込み完了の割込みを受けると、書き込まれたTSパケット#nに対してヘッダ部301の解析処理を行う。内部CPU12は、ヘッダ部301に含まれるフラグ314のスクランブル制御フラグに基づいて、スクランブルの有無を決定する。また、内部CPU12は、外部CPU3から設定された設定データ等に基づいて、HSD201への出力の有無を決定する。HSD201へ出力する場合、内部CPU12は、DMA制御部14に対しTSパケット#nをHSD201へ出力する指示を出す。
次いで、DMA制御部14がTSパケット#nをHSDに出力し、内部CPU12がタイマ値を設定する(S3)。処理S3は、図5のタイミングt3において実行開始し、期間(p’)(HSDへの出力時間)の後、実行終了する。DMA制御部14は、内部CPU12からHSD201へ出力する指示を受け、TSパケットバッファ#1(161)に格納されているTSパケット#nを読み出し、HSD201へ出力する。DMA制御部14は、TSパケット#nの出力が終了すると、内部CPU12に内部バス17を介して転送完了の割込みを出力する。
さらに、本実施形態では、従来の処理S13に加えて、TSパケットのヘッダ部301の解析処理の時間(t)、すなわち、受信したTSパケット#nの内部メモリ16への書き込みが完了してからHSD201へ出力を開始するまでの時間(図5のt2〜t3の時間)を処理S5で使用するタイマのタイマ値として設定する。このタイマは、内部CPU12のタイマ121で動作するタイマである。
また、従来処理ではHSDへの出力レートとTSパケットの入力レートは同等であったが、本実施形態における処理では、TSパケットの入力レート32Mbpsより速い出力レート108Mbpsを瞬間的な出力レートとしてHSD201へ出力する。このHSD201の出力レートの最適値は後述する式(14)により求めることができる。
次いで、デスクランブラ13がTSパケット#nをデスクランブルする(S4)。処理S4は、図5のタイミングt4において実行開始し、期間(q)(デスクランブル処理時間)の後、実行終了する。内部CPU12は、DMA制御部14からTSパケット#nのHSD転送終了の割込みを受けると、デスクランブルを行うため、デスクランブラ13にデスクランブルの指示を出力する。デスクランブラ13は、内部CPU12の指示を受け、TSパケット#nを、TSパケットバッファ#1(161)から読み出し、データ部302に対しデスクランブルを行う。デスクランブルされたデータ部302は、TSパケットバッファ#1(161)に上書きされる。デスクランブルが終了するとデスクランブラ13は、内部バス17を介して内部CPU12に対してデスクランブル終了の割込みを出力する。
処理S4の間、内部CPU12がTSパケット#n+1のヘッダを解析する(S5)。処理S5は、図5のタイミングt5において実行開始し、期間(u)(2つ目のTSパケットのヘッダ解析処理時間)の後、実行終了する。TSパケット#nのデスクランブル処理の間、受信ブロック11は、TSパケットバッファ#2(162)にTSパケット#n+1の書き込みを完了し、内部CPU12に内部バス17を介して割込みを出力する。内部CPU12は、TSパケット#n+1に対し処理S2と同様にして、ヘッダ解析処理を行う。ただし、処理S2と比較して処理S5は処理時間が短縮される。TSパケット#nのデスクランブル(処理S4)は、デスクランブラ13で処理が行われ、処理S5は、内部CPU12で処理が行われるため、処理S4、処理S5は並列に実行される。また、内部CPU12のタイマ121は、図5のタイミングt5において、処理S3で設定されたタイマ値のタイマを開始する。
次いで、内部CPU12がTSパケット#nのデータを解析し、DMA制御部14が外部メモリへ出力する(S6)。処理S6は、図5のタイミングt6において実行開始し、期間(r)(TSパケットのデータ解析処理時間)と期間(s)(外部メモリへの出力時間)の後、実行終了する。内部CPU12は、デスクランブラ13からTSパケット#nのデスクランブル終了の割込みを受ると、TSパケット#nのデータ部302の解析を行う。解析の結果、データ部302を出力する場合、DMA制御部14に対しデータ部302を外部メモリ2へ出力するよう指示を行う。DMA制御部14は、外部メモリ2へデータ部302を出力し、この出力が終了したとき、内部バス17を介して内部CPU12に転送終了の割込みを出力する。ただし、処理S6は、処理S5が終了されるのを待ってから処理が開始される。これは、処理S6と処理S5が、両方とも内部CPU12を使用しての処理となるため、平行に処理することが不可能だからである。そのため、先に処理が行われている処理S5が優先して実行された後、処理S6が実行される。したがって、図5に示すように、TSパケット#nの処理としては、処理S4が実行終了してから、処理S6が実行開始するまで、処理待ち時間(w’)が発生する。
次いで、内部CPU12がタイマ割り込みを受け、DMA制御部14がTSパケット#n+1をHSDに出力する(S7)。処理S7は、図5のタイミングt7において実行開始し、期間(p’)の後、実行終了する。処理S5にて開始したタイマがタイムアウトすると、内部CPU12は、タイマ121によってタイマ割込みを受け、DMA制御部14に対しTSパケットバッファ#2(162)をHSD201へ出力するよう指示を行う。DMA制御部14は、TSパケットバッファ#2(162)よりTSパケット#n+1を読み出し、HSD201へ出力する。処理S7は、処理S6のデータ部302の出力が行われている間に処理される。データ部302の出力は、DMA制御部14が使用され、タイマ処理は、内部CPU12を使用して処理が行われるため、処理S7と処理S6は平行して処理が行われる。
次いで、TSパケット#nのデータの転送終了後、DMA制御部14がバッファを解放する(S8)。すなわち、処理S8は、図5のタイミングt8において実行される。内部CPU12は、DMA制御部14からTSパケット#nのデータ部302の転送終了の割込みを受け、TSパケットバッファ#1(161)を解放する。ここでTSパケットバッファ#1(161)が解放されたことにより、TSパケット#nの処理が終了する。以上の処理を1つの1TSパケット毎に行う。
本実施形態では、HSDへの出力レートは、平均的な出力レートをTSの入力レートと同等にしつつ、瞬間的な出力レートを速める。すなわち、図5の(a)の期間(第2の期間:TSパケットを出力する期間)に、入力レートよりも速いレートでTSパケットを出力し、図5(b)の期間(第3の期間:TSパケットを出力しない期間)に、TSパケットを出力しない。そうすると、図5(a)の期間における瞬間的な出力レートが速くなり、図5(a)及び図5(b)における平均的な出力レートが入力レートとほぼ等しくすることができる。
図5(a)の期間は、DMA制御部14の出力レートによって規定される。DMA制御部14のHSDへの出力は、TSの入力レートに依存せず、常に108Mbpsにて出力する。このとき、HSDへの出力にかかる処理時間(p’)は、1TSパケットが188バイトであるため、以下の式(9)で表すことができ、13.9μsとなる。
p’=188[Byte]÷(108÷8×10^(−6))[Byte/Sec]=約13.9μs (9)
式(9)より図5(a)の期間は常にp’となり、この図5(a)のHSD出力処理を第1の期間(図5(a)+(b))毎に繰り返すことで、TSパケットをHSDへ出力開始するタイミングと出力するデータ量を一定にし、平均的な出力レートを一定にする。また、処理時間(t)や(u)のように、TSパケットの内容によって、ヘッダ部301の解析処理の時間が変動することがあるため、図5(b)の期間を処理時間(t)及び(u)に依存しない一定の期間とする必要がある。
そこで、本実施形態では、図5(b)の期間を一定にする手法として、タイマを使用している。このタイマによって、TSパケットをHSDへ出力開始するタイミングを規定し、図5(b)の期間を一定にすることで、第1の期間(図5(a)+(b))を一定にし、平均的な出力レートを保っている。この例では、第2の期間(図5(a))にDMA制御部12から108Mbps(瞬間的なレート)でTSパケットを出力し、タイマで規定される図5(b)の期間には、TSパケットを出力せずに、第1の期間(図5(a)+(b))の平均的なレートを32Mbpsとしている。入力レートと同じレート(32Mbps)でHSDへ出力することにより、映像データ処理装置において、放送局等から送信されるレートと同じレートで、TSパケットを受信し、映像の表示等を正しく行うことができる。すなわち、本実施形態では、瞬間的な出力レートは高速であるが平均的な出力レートは従来例と同じレートとなるため、従来のTS分離装置71に接続される映像データ処理装置を、本実施形態のTS分離装置1にそのまま接続しても、映像データ処理装置で正常にTSパケットを受信することが可能となる。
特に、本実施形態では、内部CPU12がヘッダ部301の解析を開始してから、つまり、受信ブロックがTSパケットを分離してから、HSDへの出力を開始するまでの期間(図5のt2〜t3もしくはt5〜t7:第4の期間)をタイマで規定している。また、1つ目のTSパケットのヘッダ解析処理時間(t)が1つ目のTSパケットのヘッダ解析処理時間(u)よりも長いことから、処理時間(t)をタイマ値としている。尚、その他のTSパケットのヘッダ解析処理時間をタイマ値としてもよい。
ここで、本実施形態における、1つのTSパケットの処理時間と、処理に必要なTSパケットバッファの数を算出する例について説明する。尚、以下の式で用いる処理のクロック数やステップ数は、一例であり、シミュレータによって測定した値である。
図5より、本実施形態における1TSパケットの処理時間は、TSパケットの入力時間(o)と、1つ目のTSパケットのヘッダ解析処理時間(t)と、HSDへの出力時間(p’)と、デスクランブル処理時間(q)と、外部メモリへの出力時間(s)と、TSパケットのデータ解析処理時間(r)と、さらに、デスクランブル処理が完了してからTSパケットのデータ解析が開始されるまでの処理待ち時間(w’)とを合計した値となる。図5より、この待ち時間(w’)は、2つ目のTSパケットのヘッダ解析処理時間(u)から、(u)と(q)が重なる部分を引いた値である。したがって、1TSパケットの処理時間は、以下の式(10)で表すことができ、133.4μsとなる。
o+t+p’+q+(u−(q−(o−(t+p’))))+r+s=133.4μs (10)
上記の式(8)と同様に、1TSパケットの処理に必要なTSパケットバッファは、1TSパケットの処理時間の間に、入力されるTSパケットの数により求まる。式(1)より、2TSパケットの入力時間は94μs、3TSパケットの入力時間は141μsであるから式(11)の関係が成り立つ。
94μs(2TSパケットの入力時間)<133.4μs(1TSパケットの処理時間)<141μs(3TSパケットの入力時間) (11)
よって、本実施形態における1TSパケット当りの処理時間は2TSパケット分入力される時間以上、3TSパケット分未満であるから、TSパケットバッファが3TSパケット分必要となる。
つまり、本実施形態において必要となるTSパケットを格納しておくTSパケットバッファが、従来例では4つ必要なのに対して、本実施形態では3つ必要となるので1つ削減可能となる。
表1は、従来例と本実施形態の処理時間を示している。表1より、従来例の処理と本実施形態における処理で異なる点は、HSDの出力処理(a)と処理待ち時間(b)である。HSDの出力処理(a)は、HSDの出力レートを上げたことにより処理時間を短縮することができた。処理待ち時間(b)は、HSDの出力処理が短縮されることにより、従来例ではHSDの出力終了を待っていた時間に、他の処理(デスクランブル、データ部302の解析処理など)が行われるため、待ち時間を短縮することができた。
従来例では、式(8)より、1TSパケットの処理時間が、3TSパケットの入力時間よりも45μs多いため、TSパケットバッファが4つ必要だった。本実施形態では、HSDの出力レートを早めることで、式(7)と式(10)より、従来例よりも52.4μsの処理時間を短縮することができ、TSパケットバッファを一つ削減することができた。
ここで、HSD201への出力レートの最適値の算出例について説明する。HSD201への出力レートの最適値とは、TSパケットバッファが削減可能なHSD201への出力レートの最小値のことをいう。この例では、処理に必要なTSパケットバッファが3つとなる場合の出力レートを求める。
処理に必要なTSパケットバッファが3つとなるためには、式(11)が成り立つ範囲であればよい。すなわち、式(10)で表される1TSパケットの処理時間が、2TSパケット分の入力時間〜3TSパケット分の入力時間の範囲であればよい。また、式(10)に含まれている処理の待ち時間は、図5より、TSパケットバッファが解放される時間に影響しない。以上のことを考慮して、TSパケットバッファが3つとなるための1TSパケットの処理時間は、以下の式(12)で表される。ただし、TSパケットの入力レートをR(Mbps)とする。
2×(188÷(R÷8×10^6))<(188÷(R÷8×10^6))+t+p’+q+r+s(μs)<3×(188÷(R÷8×10^6))=3008÷R<1504÷R+t+p’+q+r+s(μs)<4512÷R (12)
式(12)より、p’の取り得る範囲は以下の式(13)で表される。ただし、p’>0の関係が成り立つものとする。
3008÷R−(1504÷R+t+q+r+s)<p’(μs)<4512÷R−(1504÷R+t+q+r+s)=1504÷R−(t+q+r+s)<p’(μs)<3008÷R−(t+q+r+s) (13)
式(13)より、HSD201への出力レートの最適値は以下の式(14)で表される。
HSD102の出力レートの最適値[Mbps]=188×8÷(3008÷R−(t+q+r+s)) (14)
式(14)より、例えば、R=32Mbpsとすると、最適値は約46Mbpsとなる。
以上説明したように、本実施形態では、TS分離装置にスクランブルされたTSが入力され、HSDへの出力が必要とされる場合、HSDへの平均的な出力レートをTSの入力レートと同等にしつつ、瞬間的なHSDへの出力レートを速めることにより、1TSパケットの処理時間を短縮することができる。したがって、TSパケットバッファが解放されない時間も短くなり、処理に必要とされるTSパケットバッファ数を減らし使用する内部メモリを削減することができる。
また、タイマにより、TSパケットに分離してから所定の期間経過後、HSDへの出力を行うことにより、TSパケットのヘッダ部の解析処理が変動した場合でも、HSDへの平均的な出力レートを一定に保つことできる。
また、1TSパケットの処理時間が短縮することから、処理の結果である音声や映像データ等を外部メモリへ出力する際の出力遅延が少なくすることができる。したがって、出力された映像データ等を表示する装置において、映像データ等のデコード処理の遅延を短縮することができる。
尚、上述の例では、受信したTSパケットのデータをデスクランブルする場合について説明したが、これに限らず、デスクランブルしない場合であっても、1つのTSパケット処理を短縮することができる。例えば、スクランブルされていないデータを含むTSパケットを受信し場合は、受信データをそのまま、HSDと外部メモリへ同時に出力するが、本発明ではHSD出力時間が短縮されるため、1つのTSパケット処理も短縮し、TSパケットバッファを早いタイミングで解放することができる。
また、上述の例では、デジタル放送において、TSをTSパケットに分離する装置として説明したが、これに限らず、その他のパケットストリームからパケットを抽出し所定のレートで転送する装置にも適用することができる。
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。