(57)【要約】【課題】セクションによって伝送されてくるデータブロックを効率よく取得することができるようにする。【解決手段】ペイロードＰ1を有するTSパケットが放送波から取得されたとき、ペイロードＰ1に格納されているセクションヘッダの「section_number」に基づいて、ペイロードＰ1乃至ＰNにデータが格納されるデータブロックのブロック番号が８であることが判別される。複数のTSパケットにまたがって伝送されてきたブロック番号が８のデータブロックを構成するそれぞれのデータは、ブロック番号８が対応付けられたブロック領域に格納される。本発明は、放送波によって伝送されるDIIメッセージ、DDBメッセージを受信し、処理を行う受信装置に適用することができる。【選択図】図１０
2007329834.tif 000002
【特許請求の範囲】
【請求項１】
１つのデータモジュールをブロック化して得られたそれぞれのデータブロックを伝送するセクションをTSパケットから取得し、処理を行う受信装置において、
１つのデータブロックのデータ量と同じ量のデータを記憶可能なブロック領域毎に区切られ、連続して配置されるそれぞれの前記ブロック領域が、それぞれのデータブロックの格納領域としてデータブロックの番号順に割り当てられたメモリと、
取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させる制御手段と
を備える受信装置。
【請求項２】
前記データモジュールを構成する全てのデータブロックが前記メモリに格納されたとき、前記メモリに格納された全てのデータブロックをひとまとまりのデータとして処理を行う処理手段をさらに備える
請求項１に記載の受信装置。
【請求項３】
１つのデータモジュールをブロック化して得られた１つのデータブロックのデータ量と同じ量のデータを記憶可能なブロック領域毎に区切られ、連続して配置されるそれぞれの前記ブロック領域が、それぞれのデータブロックの格納領域としてデータブロックの番号順に割り当てられたメモリを備え、それぞれのデータブロックを伝送するセクションをTSパケットから取得し、処理を行う受信装置の受信方法において、
取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させるステップを含む
情報処理方法。
【請求項４】
１つのデータモジュールをブロック化して得られた１つのデータブロックのデータ量と同じ量のデータを記憶可能なブロック領域毎に区切られ、連続して配置されるそれぞれの前記ブロック領域が、それぞれのデータブロックの格納領域としてデータブロックの番号順に割り当てられたメモリを備える受信装置における処理をコンピュータに実行させるプログラムにおいて、
取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させるステップを含む
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置、情報処理方法、およびプログラムに関し、特に、セクションによって伝送されてくるデータブロックを効率よく取得することができるようにした受信装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年普及してきているディジタル放送においては、番組の映像や音声は所定の符号化方式で符号化された後、PES(Packetized Elementary Stream)形式のデータとして伝送される。
【０００３】
一方、番組に関する情報であるPSI(Program Specific Information)、SI(Service Information)は、セクション形式のデータとして伝送される。セクション形式のデータの伝送方式にはカルーセル伝送とイベントメッセージ伝送の２つの方式がある。カルーセル伝送は、同じデータを所定の周期で繰り返し伝送する伝送方式であり、イベントメッセージ伝送は、カルーセル伝送によって伝送されるデータに較べてデータ量の少ないデータを、受信機に対して単発的に伝送するときなどに用いられる伝送方式である。
【０００４】
図１は、カルーセル伝送について示す図である。
【０００５】
図１に示されるように、伝送の対象となるリソースとしてBML(Broadcasting Markup Language)文書、静止画データ、図形データの３つのデータが用意されている場合、これらの３つのデータが繰り返し伝送されることになるが、その伝送は、白抜き矢印Ａ1の先に示されるように、モジュールと呼ばれる単位にまとめられた後、白抜き矢印Ａ2の先に示されるように、固定長のデータブロックに分割され、TS(Transport Stream)パケットに格納する形で行われる。それぞれのデータブロックは、DDB(Download Data Block)メッセージによって伝送される。
【０００６】
図１の例においては、BML文書と静止画データから１つのモジュールが構成され、図形データからもう１つのモジュールが構成されている。また、２つのモジュールを構成するデータブロックがDDBメッセージ＃０乃至＃ｎによって伝送されている。
【０００７】
カルーセル伝送においては、リソースから得られたデータブロックを伝送するDDBメッセージと、DII(DownloadInfoIndicator)メッセージを１単位としてその伝送が繰り返し行われる。DIIメッセージは、モジュールの構成を表す情報であり、受信機においては、DDBメッセージより前に取得され、解析が行われる。
【０００８】
また、受信機においては、DDBメッセージを解析することによって得られたデータブロックがメモリに順次格納され、DDBメッセージ＃０乃至＃ｎの全てのDDBメッセージによって伝送されたデータブロックがそろったとき、DIIメッセージの記述などに従ってBML文書、静止画データ、図形データが生成される。
【０００９】
DSMCC(Digital Storage Media Command and Control)カルーセル伝送については、ARIB(Association of Radio Industries and Businesses) STD-B24に規定されている。DIIメッセージ、DDBメッセージについても、同様にARIB STD-B24に規定されている。
【００１０】
ここで、DIIメッセージ、DDBメッセージなどを伝送するDSMCCセクションのデータをTSから分離抽出する機能を有するDEMUX（デマルチプレクサ）について説明する。
【００１１】
図２は、従来の受信機に設けられるDEMUX１の構成例を示すブロック図である。
【００１２】
TSヘッダ解析部１１は、チューナから供給されたTSを構成するTSパケットの先頭バイトを検出し、検出したTSパケットが規格通りのものであるかを確認した後、そのヘッダに記述されているPID（パケットID）と、ホストCPU I/F１７を介してホストCPU(Central Processing Unit)２により設定されたPIDを比較する。
【００１３】
TSヘッダ解析部１１は、DEMUX１に現在到達している処理対象のTSパケットが、データを分離抽出する対象のパケットであるとPIDの比較結果から判断した場合、そのTSパケットがビデオPESのパケット、またはオーディオPESのパケットであるときには、処理対象のTSパケットをPES解析部１２に出力し、セクションデータのパケットであるときには、処理対象のTSパケットをセクションデータ解析部１３に出力する。
【００１４】
PES解析部１２は、TSヘッダ解析部１１から供給されたTSパケットのヘッダを解析し、PES、ES(Elementary Stream)のビデオデータをビデオデコーダI/F１４を介してビデオデコーダに出力し、また、PES、ESのオーディオデータをオーディオデコーダI/F１５を介してオーディオデコーダに出力する。
【００１５】
セクションデータ解析部１３は、TSヘッダ解析部１１から供給されたTSパケットに格納されているセクションデータが所望のセクションデータであると判断した場合、TSパケットを解析することによって得られたデータをメモリI/F１６に出力する。上述したデータブロックのデータなどがメモリI/F１６に出力される。
【００１６】
メモリI/F１６は、DRAM(Dynamic Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)などよりなるメモリの所定の領域に、セクションデータ解析部１３から供給されたデータブロックを格納させる。メモリには、TSパケットのPID毎にデータブロックの格納領域が用意されており、同じPIDが設定されているTSパケットから取得されたデータブロックが同じ領域に格納されるようになされている。例えば、図１のDDBメッセージ＃０乃至＃ｎによって伝送されるデータブロックを格納させるための領域が用意されており、その領域の先頭のアドレスから、取得された順に、データブロックが格納される。DDBメッセージ＃０乃至＃ｎを格納するTSパケットには、同じPIDが設定されている。
【００１７】
DSMCCカルーセル伝送については特許文献１に開示されている。
【特許文献１】特開２００２−７７７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
このように、従来のDEMUXにおいては、TSパケットから取得されたデータブロックが、取得された順にメモリに格納されるようになされていることから、取得されたデータブロックから意味のあるデータを取得し、その後の処理を行うためには、ホストCPU２などが、データブロックに欠落がないかを確認したり、データブロックの並べ替えなどを行う必要がある。
【００１９】
例えば、DDBメッセージ＃０乃至＃ｎによって伝送されるデータブロックの全体がその順序で並んではじめて意味のあるデータとなる場合、あるデータブロックだけが欠落していたり、並び順が異なるときには、解析処理などの、伝送対象のデータを用いた後の処理を行うことができない。
【００２０】
データブロックの欠落の確認や並べ替えなどの前処理が必要な理由としては次のようなものがある。
１．モジュールを構成する先頭のデータブロックから順に取得することができるように、先頭のDDBメッセージの伝送が開始されるまで待機し、先頭のDDBメッセージの伝送が開始されたときにDDBメッセージの解析、データブロックの取得を始めるとした場合、全てのデータブロックを取得し終えるまでに時間がかかることがあり、取得することができるデータブロックから取得を始めなければならない。カルーセル伝送における再送の周期が長い場合、先頭のDDBメッセージの伝送が開始されるまで待機したときには全てのデータブロックの取得が完了するまでに時間がかかってしまう。
２．最初に取得されたDDBメッセージが、先頭のDDBメッセージであるとは限らない。
３．受信中にエラーが発生し、正常なデータブロックを取得することができなかった場合、そのデータブロックは破棄されるため、正常に取得することができなかったデータブロックを伝送するDDBメッセージを判別して、再送されてきたときに、判別したDDBメッセージをもう一度受信しなければならない。
【００２１】
このように、取得済みのデータブロックをチェックするための一覧表を用意して欠落しているデータブロックを把握したり、データブロック全体のデータ量と同じ容量のメモリ領域を、取得済みのデータブロックを格納させる領域とは別に確保した上で、確保した領域を用いてデータブロックの並べ替えを行ったりする処理をホストCPU２は行うことになるが、このことが、ホストCPU２にとって大きな負担になる。また、十分なメモリを用意する必要がある。
【００２２】
本発明はこのような状況に鑑みてなされたものであり、セクションによって伝送されてくるデータブロックを効率よく取得することができるようにするものである。
【課題を解決するための手段】
【００２３】
本発明の一側面の受信装置は、１つのデータモジュールをブロック化して得られたそれぞれのデータブロックを伝送するセクションをTSパケットから取得し、処理を行う受信装置において、１つのデータブロックのデータ量と同じ量のデータを記憶可能なブロック領域毎に区切られ、連続して配置されるそれぞれの前記ブロック領域が、それぞれのデータブロックの格納領域としてデータブロックの番号順に割り当てられたメモリと、取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させる制御手段とを備える。
【００２４】
前記データモジュールを構成する全てのデータブロックが前記メモリに格納されたとき、前記メモリに格納された全てのデータブロックをひとまとまりのデータとして処理を行う処理手段をさらに設けることができる。
【００２５】
本発明の一側面の情報処理方法またはプログラムは、取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させるステップを含む。
【００２６】
本発明の一側面においては、取得したセクションで伝送されるデータブロックに設定されている番号が、セクションヘッダに記述されるsection_numberに基づいて算出され、算出された番号に応じたブロック領域に、取得されたセクションで伝送されるデータブロックが格納される。
【発明の効果】
【００２７】
本発明の一側面によれば、セクションによって伝送されてくるデータブロックを効率よく取得することができる。
【発明を実施するための最良の形態】
【００２８】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外には対応しないものであることを意味するものでもない。
【００２９】
本発明の一側面の受信装置（例えば、図３の受信装置２１）は、１つのデータモジュールをブロック化して得られたそれぞれのデータブロックを伝送するセクションをTSパケットから取得し、処理を行う受信装置において、１つのデータブロックのデータ量と同じ量のデータを記憶可能なブロック領域毎に区切られ、連続して配置されるそれぞれの前記ブロック領域が、それぞれのデータブロックの格納領域としてデータブロックの番号順に割り当てられたメモリ（例えば、図３のメモリ３８）と、取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させる制御手段（例えば、図４のセクションデータ解析部５３）とを備える。
【００３０】
この受信装置には、前記データモジュールを構成する全てのデータブロックが前記メモリに格納されたとき、前記メモリに格納された全てのデータブロックをひとまとまりのデータとして処理を行う処理手段（例えば、図３のホストCPU４５）をさらに設けることができる。
【００３１】
本発明の一側面の情報処理方法またはプログラムは、取得したセクションで伝送されるデータブロックに設定されている番号を、セクションヘッダに記述されるsection_numberに基づいて算出し、算出した番号に応じた前記ブロック領域に、取得したセクションで伝送されるデータブロックを格納させるステップ（例えば、図１１のステップＳ７）を含む。
【００３２】
以下、本発明の実施の形態について図を参照して説明する。
【００３３】
図３は、本発明の一実施形態に係る受信装置２１の構成例を示すブロック図である。
【００３４】
チューナ３１は、バス４１を介して行われるホストCPU４５による制御に従って、アンテナで受信されたRF信号を選局、検波、復調し、所定のチャンネルで放送されるTSをデスクランブラ３２に出力する。
【００３５】
デスクランブラ３２は、カードI/F４２によりICカード４３から読み出されたデータを用いてスクランブルを解くキーを生成し、チューナ３１から供給されてきたTSに施されているスクランブルを解除する。スクランブルが解除されたTSはDEMUX３３に出力される。
【００３６】
DEMUX３３は、ホストCPU４５による制御に従って、デスクランブラ３２から供給されたTSを構成するTSパケットを解析し、PES、ESのビデオデータをビデオデコーダ３４に出力し、PES、ESのオーディオデータをオーディオデコーダ３６に出力する。また、DEMUX３３は、TSパケットを解析することによって得られたセクションデータをメモリ３８に出力し、格納させる。
【００３７】
DEMUX３３は、番組を録画する場合、デスクランブラ３２から供給されたTSをバス４１上に出力することなども行う。バス４１上に出力されたTSはホストCPU４５による制御に従ってI/F３９を介してHDD(Hard Disk Drive)４０に供給され、記録される。番組に対しては、HDDに記録する前に暗号化ブロックが配置され、暗号化された形でHDDに記録される場合もある。
【００３８】
ビデオデコーダ３４は、DEMUX３３から供給されたPES、ESのビデオデータをデコードし、得られたデータに基づいて番組の映像を映像表示装置３５に表示させる。
【００３９】
映像表示装置３５はLCD(Liquid Crystal Display)などよりなり、ビデオデコーダ３４によりデコードされることによって得られた番組の映像を表示する。
【００４０】
オーディオデコーダ３６は、DEMUX３３から供給されたPES、ESのオーディオデータをデコードし、得られた音声を音声出力装置３７から出力させる。
【００４１】
音声出力装置３７はスピーカであり、オーディオデコーダ３６によりデコードされることによって得られた番組の音声を出力する。なお、映像表示装置３５と音声出力装置３７は、受信装置２１と同じ筐体に設けられるようにしてもよいし、受信装置２１とケーブルなどを介して接続される別筐体の装置に設けられるようにしてもよい。
【００４２】
メモリ３８はDRAMやSDRAMなどよりなり、DEMUX３３から供給されたセクションデータを格納する。メモリ３８に格納されたセクションデータはホストCPU４５によって適宜読み出され、各種の処理に用いられる。
【００４３】
I/F３９は、HDD４０から読み出したTSをバス４１を介してビデオデコーダ３４、オーディオデコーダ３６に出力したり、DEMUX３３からバス４１を介して供給されたTSをHDD４０に供給したりする。
【００４４】
HDD４０は、I/F３９を介して供給されたTSを記憶する。HDD４０に記憶されているTSはI/F３９により適宜読み出される。
【００４５】
カードI/F４２は、ICカード４３から読み出したデータをデスクランブラ３２に供給する。
【００４６】
ホストCPU４５は、メモリ４４に記憶されているプログラムを実行し、バス４１に接続されている各部の動作を制御する。メモリ４４には、ホストCPU４５が各種処理を実行する上で必要なプログラムやデータなどが適宜記憶されている。
【００４７】
例えば、ホストCPU４５は、伝送対象のリソースから生成された全てのデータブロックがメモリ３８に格納されたとき、メモリ３８に格納されているデータブロック全体をひとまとまりのデータとしてBML文書、静止画データ、図形データなどの伝送対象のデータを生成し、生成したデータを用いて各種の処理を行う。
【００４８】
図４は、DEMUX３３の構成例を示すブロック図である。DEMUX３３も、図２に示されるDEMUX１の構成と同様の構成を有している。
【００４９】
TSヘッダ解析部５１は、チューナ３１から供給されたTSを構成するTSパケットの先頭バイトを検出し、検出したTSパケットが規格通りのものであるかを確認した後、そのヘッダに記述されているPIDと、ホストCPU I/F５７を介してホストCPU４５により設定されたPIDを比較する。
【００５０】
TSヘッダ解析部５１は、DEMUX３３に現在到達している処理対象のTSパケットが、データを分離抽出する対象のパケットであるとPIDの比較結果から判断した場合、そのTSパケットがビデオPESのパケット、またはオーディオPESのパケットであるときには、処理対象のTSパケットをPES解析部５２に出力し、セクションデータのパケットであるときには、処理対象のTSパケットをセクションデータ解析部５３に出力する。
【００５１】
PES解析部５２は、TSヘッダ解析部５１から供給されたTSパケットのヘッダを解析し、PES、ESのビデオデータをビデオデコーダI/F５４を介してビデオデコーダ３４に出力し、また、PES、ESのオーディオデータをオーディオデコーダI/F５５を介してオーディオデコーダ３６に出力する。
【００５２】
セクションデータ解析部５３は、TSヘッダ解析部５１から供給されたTSパケットに格納されているセクションデータが所望のセクションデータであると判断した場合、TSパケットを解析することによって得られたデータをメモリI/F５６に出力する。
【００５３】
例えば、ホストCPU I/F５７を介してホストCPU４５により設定されたフィルタリングのための値と、セクションデータに所定の処理を施して得られた値との比較が行われることによって、対象のTSパケットが所望のセクションデータを格納するパケットであるのかが判断される。
【００５４】
メモリI/F５６は、ホストCPU４５による制御に従って、セクションデータ解析部５３から供給されたデータをメモリ３８の所定の領域に格納させる。
【００５５】
例えば、メモリI/F５６は、ブロック番号が０のデータブロックのデータが供給された場合、ブロック番号が０のデータブロックを格納する専用の領域としてメモリ３８に設定されているブロック領域にセクションデータ解析部５３から供給されたデータを格納させる。また、ブロック番号が１０のデータブロックのデータが供給された場合、ブロック番号が１０のデータブロックを格納する専用の領域としてメモリ３８にあらかじめ設定されているブロック領域にセクションデータ解析部５３から供給されたデータを格納させる。
【００５６】
図４に太線で囲んで示すように、メモリ３８には、同じPIDのTSパケットに格納されて伝送されてきたデータブロックを格納するための領域が形成されており、その領域は、ブロック番号が０のデータブロックを格納させるためのブロック領域であるBlock No.0、ブロック番号が１のデータブロックを格納させるためのブロック領域であるBlock No.1、ブロック番号が２のデータブロックを格納させるためのブロック領域であるBlock No.2、・・・といったように、所定の数の領域に区切られる。
【００５７】
データブロックを格納するための領域全体の容量は、例えば、伝送されてくるデータブロックの数と、データブロックのデータ量から設定される。１つのモジュールを構成するものとして伝送されてくるデータブロックの数は最大２５６であり、図４に太線で囲んで示す領域は最大２５６の領域に区切られる。また、１つのデータブロックは、最後のブロック番号のデータブロックを除いて４０６６バイトのデータであり、図４に示されるブロック領域（Block No.0、Block No.1、Block No.2）は、それぞれ４０６６バイトの容量を有する領域となる。
【００５８】
DDBメッセージの前に取得され、受信装置２１において解析が行われるDIIメッセージには、「numberOfModules」、「moduleSize」、「blockSize」などのデータが記述されており、例えば、これらの記述に基づいて、データブロックを格納するために確保しておく必要のある領域の容量などが、DDBメッセージの取得が行われる前に決定される。
【００５９】
「numberOfModules」は、後続のループ中に記述されるモジュールの数を表し、「moduleSize」は、伝送されてくるデータブロックにより構成されるモジュールのデータ量を表す。また、「blockSize」は、最後のデータブロックを除く、１つのデータブロックのデータ量である４０６６バイトを表す。
【００６０】
なお、データブロックを格納するために確保しておく必要のある領域の容量がDIIメッセージから決定することができない場合であっても、１つのモジュールのデータ量は最大１MBとされているため、それだけの容量を有する領域が、データブロックを格納するための領域として決定される。以下、適宜、データブロックを格納するための領域をデータブロック格納領域という。
【００６１】
ここで、DDBメッセージ、DIIメッセージを伝送するDSMCCセクションの伝送について説明する。
【００６２】
図５は、TSパケットのデータ構造を示す図である。
【００６３】
１つのTSパケットは１８８バイトのデータからなり、その全体は、図５に示されるように、４バイトのTSヘッダと１８４バイトのペイロードからなる。ペイロードに代えてアダプテーションフィールドが設けられることもある。
【００６４】
TSヘッダは、その先頭の位置から順に、８ビットの同期バイト、１ビットの誤り表示（TEI(TransportErrorIndicator)）、１ビットのユニット開始表示（PUSI(Payload Unit Start Indicator)）、１ビットのトランスポートパケットプライオリティー（TP(Transport Priority)）、１３ビットのPID、２ビットのスクランブル制御（TSC(Transport Scrambling Control)）、２ビットのアダプテーションフィールド制御（AFC(Adaptation Field Control)）、および巡回カウンタ（CC(Continuity Counter)）からなる。
【００６５】
ユニット開始表示（PUSI）の値が１であることは、その値が設定されているTSパケットのペイロードには、DSMCCセクションの１バイト目のデータが格納されていることを表す。
【００６６】
図６は、DSMCCセクションとTSパケットの対応を示す図である。
【００６７】
図６に示されるように、１つのDSMCCセクションは所定の量のデータ毎にTSパケットのペイロードに格納され、複数のTSパケットにまたがって伝送される。
【００６８】
図６の例においては、TSパケットＰ1はDSMCCセクション＃１の先頭のバイトを含むデータをペイロードに格納するパケットであり、TSヘッダのPUSIの値として１が設定される。また、TSパケットＰ1のペイロードの１バイト目はポインタフィールド（pointer_field）とされ、ポインタフィールドの直後の位置を基準としてペイロードのどの位置からDSMCCセクションのデータが格納されているのかを表す値が設定される。図６の例においては、TSパケットＰ1のポインタフィールドに設定されている値は０とされている。
【００６９】
TSパケット全体は１８８バイトであり、ペイロードはそのうちの１８４バイトであるから、ポインタフィールドが１バイトの領域であるとすると、TSパケットＰ1には１８３バイト分のDSMCCセクション＃１のデータが格納される。
【００７０】
TSパケットＰ2は、TSパケットＰ1のペイロードに格納されたデータに続くDSMCCセクション＃１のデータをペイロードに格納するパケットであり、DSMCCセクション＃１の先頭のバイトをペイロードに格納するパケットではないから、TSヘッダのPUSIの値として０が設定される。また、ペイロードにポインタフィールドも設けられない。
【００７１】
TSパケット全体は１８８バイトであり、ペイロードは１８４バイトであるから、TSパケットＰ2には１８４バイト分のDSMCCセクション＃１のデータが格納される。
【００７２】
同様に、DSMCCセクション＃１は複数のTSパケットにまたがって伝送されることになる。
【００７３】
また、図６の例においては、TSパケットＰ3はDSMCCセクション＃２の先頭のバイトを含むデータをペイロードに格納するパケットであり、TSヘッダのPUSIの値として１が設定される。また、TSパケットＰ3のペイロードの１バイト目はポインタフィールドとされ、ポインタフィールドに設定されている値はＮとされている。ポインタフィールドに設定されている値がＮであることは、例えば、ポインタフィールドの直後の位置を基準としてＮバイト目の位置からDSMCCセクション＃２のデータが格納されていることを表す。
【００７４】
TSパケットＰ4は、TSパケットＰ3のペイロードに格納されたデータに続くDSMCCセクション＃２のデータをペイロードに格納するパケットであり、DSMCCセクション＃２の先頭のバイトをペイロードに格納するパケットではないから、TSヘッダのPUSIの値として０が設定される。また、ペイロードにポインタフィールドも設けられない。
【００７５】
次に、DSMCCセクションのデータ構造について説明する。
【００７６】
図７は、DSMCCセクションのデータ構造を示す図である。主な記述について説明する。
【００７７】
図７において、左側に示される数字と「：」は、行番号を表すものとして説明の便宜上示しているものであり、DSMCCセクションのデータを構成するものではない。図８、図９においても同様である。
【００７８】
セクションには、先頭から順に、８ビットの「table_id」、１ビットの「section_syntax_indicator」、１ビットの「private_indicator」、２ビットの「reserved」、１２ビットの「dsmcc_section_length」、１６ビットの「table_id_extension」、２ビットの「reserved」、５ビットの「version_number」、１ビットの「current_next_indicator」、８ビットの「section_number」、および、８ビットの「last_section_number」のそれぞれのフィールドが設けられる。
【００７９】
これらのフィールドのうちの２行目の「table_id」はDSMCCセクションの識別子として用いられる。「table_id」の値が「0x3B」であることは、DSMCCセクションがDIIメッセージを伝送するものであることを表し、「table_id」の値が「0x3C」であることは、DSMCCセクションがDDBメッセージを伝送するものであることを表す。
【００８０】
６行目の「dsmcc_section_length」はこのフィールドの直後からセクションの末尾までのバイト数を表す。
【００８１】
１１行目の「section_number」はDSMCCセクションの番号を表し、このDSMCCセクションがDDBメッセージを伝送するものである場合には、データブロックのブロック番号の下位８ビットをも表す。８ビットのデータであるから、「section_number」によって、このDSMCCセクションにより伝送されるDDBメッセージが、どのブロック番号のデータブロックのものであるのかが表される。上述したように、１つのモジュールを構成するデータブロックの数は最大で２５６である。
【００８２】
１２行目の「last_section_number」は、あるデータブロックのDDBメッセージを伝送する最後のDSMCCセクションの番号を表す。「last_section_number」によって、モジュールを構成する最後のデータブロックのブロック番号、すなわち、伝送されてくるブロックの数が表される。
【００８３】
２行目の「table_id」から１２行目の「last_section_number」までのデータにより、セクションヘッダが構成される。セクションヘッダは８バイト（６４ビット）のデータとなる。
【００８４】
また、「table_id」の値が「0x3C」であり、DSMCCセクションによってDDBメッセージが伝送される場合、１７行目の「downloadDataMessage」の内容が、DDBメッセージの内容を表す。２８行目の「CRC_32」はCRC(Cyclic Redundancy Check)である。
【００８５】
図８は、図７の１７行目にある「downloadDataMessage」のデータ構造を示す図である。
【００８６】
「downloadDataMessage」には、先頭から順に、「dsmccDownloadDataHeader()」、１６ビットの「moduleID」、８ビットの「moduleVersion」、８ビットの「reserved」、および、１６ビットの「blockNumber」のそれぞれのフィールドが設けられる。「blockNumber」以降のフィールドは、データブロックのデータが記述されるフィールドとなる。なお、図８の１行目には「DownloadDataBlock()」が記載されているが、これは、ARIBの規定においては「downloadDataMessage」と同じである。
【００８７】
２行目の「dsmccDownloadDataHeader()」を構成するデータについては図９を参照して後述する。
【００８８】
３行目の「moduleID」は、データブロックが属するモジュールの識別子として用いられる。
【００８９】
４行目の「moduleVersion」は、データブロックが属するモジュールのバージョンを表す。
【００９０】
６行目の「blockNumber」は、モジュールを構成するデータブロック全体における、このDDBメッセージによって伝送されるデータブロックのブロック番号を表す。モジュールの先頭のデータブロックのブロック番号は０とされる。
【００９１】
２行目の「dsmccDownloadDataHeader()」から６行目の「blockNumber」までのデータによりDDBヘッダが構成される。「dsmccDownloadDataHeader()」は図９を参照して説明するように１２バイトのデータであるから、DDBヘッダは１８バイト（１４４ビット）のデータとなる。
【００９２】
図９は、図８の２行目にある「dsmccDownloadDataHeader()」のデータ構造を示す図である。
【００９３】
「dsmccDownloadDataHeader()」には、先頭から順に、８ビットの「protocolDiscriminator」、８ビットの「dsmccType」、１６ビットの「messageID」、３２ビットの「downloadId」、８ビットの「reserved」、８ビットの「adaptationLength」、および１６ビットの「messageLength」のそれぞれのフィールドが設けられる。
【００９４】
７行目の「adaptationLength」は、ARIBの運用では０として設定される。したがって、１０行目の「dsmccAdaptationHeader」は記述されず、「dsmccDownloadDataHeader()」全体は１２バイト（９６ビット）のデータとなる。
【００９５】
図７を参照して説明したセクションヘッダのデータ量は８バイトとして、また、図８を参照して説明したDDBヘッダのデータ量は１８バイトとしてそれぞれ固定的に定まるから、受信装置２１は、DSMCCセクションを構成するデータのうちの先頭から２６バイト目以降にあるデータが、データブロックのデータであるとハードウエアによっても検出することができる。
【００９６】
図１０は、データブロックの格納の例を示す図である。
【００９７】
図１０に示されるように、DSMCCセクションは、８バイトのセクションヘッダ、４０８４バイトのセクションデータ、および４バイトのCRCからなる。セクションデータは、１８バイトのDDBヘッダと、４０６６バイトのモジュールブロックデータ（データブロックのデータ）からなる。ここで、図１０に示されるTSパケットのペイロードに格納されるデータブロックのデータは、ブロック番号が８のデータブロックのデータであるものとする。
【００９８】
図１０の例においては、セクションヘッダと、セクションデータのうちのDDBヘッダと、ブロック番号が８のデータブロックの一部であるデータＤ1が１番目のTSパケットのペイロードＰ1に格納されている。また、ペイロードＰ1に格納されたデータＤ1に続く、ブロック番号が８のデータブロックの一部であるデータＤ2が２番目のTSパケットのペイロードＰ2に格納されている。
【００９９】
同様にしてデータブロックの一部がTSパケットのペイロードにそれぞれ格納され、ブロック番号が８のデータブロックの最後のデータを含むデータＤNが、Ｎ番目のTSパケットのペイロードＰNに格納されている。
【０１００】
このように、１つのデータブロック全体は、それを構成する先頭のデータから順に、続けて伝送されるTSパケットのペイロードに格納される。従って、取得されたTSパケットのペイロードに格納されている順にデータを並べることによって１つのデータブロックが得られる。
【０１０１】
受信装置２１においては、ペイロードＰ1を有するTSパケットが放送波から取得されたとき、例えば、ペイロードＰ1に格納されているセクションヘッダの「section_number」に基づいて、ペイロードＰ1乃至ＰNにデータが格納されるデータブロックのブロック番号が８であることが判別され、複数のTSパケットにまたがって伝送されてきたブロック番号が８のデータブロックを構成するそれぞれのデータが、図１０に示されるようにブロック番号８が対応付けられたブロック領域に格納される。
【０１０２】
従って、ブロック番号が０のデータブロックからブロック番号順にカルーセル伝送が行われている場合において、受信装置２１がDDBメッセージの取得を開始したときに伝送されていたDDBメッセージがブロック番号が８のデータブロックを伝送するものであり、最初に取得されたデータブロックがそのデータブロックであっても、ブロック番号が８のデータブロックのデータが、データブロック格納領域の先頭に格納されることはなく、ブロック番号８が対応付けられたブロック領域に格納されることになる。
【０１０３】
このように、伝送されてきたデータブロックは、連続して配置されるそれぞれのブロック領域にブロック番号順に格納されるから、ホストCPU４５は、モジュールを構成する全てのデータブロックが格納されたときに、先頭のブロック領域に格納されているものから、格納されている順に、データブロックをメモリ３８から読み出すことで、容易に、伝送対象のデータを取得することができる。
【０１０４】
すなわち、伝送対象のデータを取得するために、取得されたデータブロックをブロック番号順に並べ替えるなどの前処理をホストCPU４５に行わせる必要はなく、ホストCPU４５の処理負担を軽減することができ、また、ホストCPU４５が処理を行う時間を減らすことができる。全てのデータブロックがそろったときに例えばセクションデータ解析部５３からホストCPU４５にそのことが通知されるようにすることによって、セクションデータ解析部５３からの通知があるまでは、ホストCPU４５に他の処理を行わせたりすることができる。
【０１０５】
また、データブロックの並べ替えに使われるメモリの領域を用意する必要がない。
【０１０６】
さらに、あるデータブロックの取得時にエラーなどが発生した場合、後述するように、途中まで取得されていたそのデータブロックのデータは破棄され、後に続けて伝送され、正常に取得することができたデータブロックを格納することが続けられることになるが、このような場合でも、エラーによって取得することができなかったデータブロックが再送されてきたときに、再送されてきたデータブロックを空き領域となっているブロック領域に格納するだけで、容易に、伝送対象のデータを取得することができる。
【０１０７】
例えば、ブロック番号が８のデータブロックの取得中にエラーが発生した場合、ブロック番号が８のデータブロックは飛ばして、他のデータブロックをそれぞれのブロック領域に格納することが続けられるが、ブロック番号８が対応付けられたブロック領域は空き領域とされ続けるため、ブロック番号が８のデータブロックが再送され、正常に取得することができたときに、空き領域となっているブロック領域に正常に取得することができたブロック番号が８のデータブロックを格納することによって、ブロック番号順に並んだ状態でデータブロックをメモリ３８に格納することができる。
【０１０８】
また、DDBメッセージの解析の前に解析が行われるDIIメッセージから、全てのデータブロックを格納するために確保しておく必要のあるデータブロック格納領域の容量がわかるため、伝送されてくるデータブロックを格納するのに必要な分の領域だけをデータブロック格納領域として確保することができる。例えば、必要以上に多い容量の領域をデータブロック格納領域として確保してしまった場合、データブロックが格納されていない、余ってしまった領域にスタッフィングバイト（無効データ）を書き込んだりする必要があるが、そのようなことをホストCPU４５は行う必要がない。
【０１０９】
次に、図１１のフローチャートを参照して、TSパケットを解析し、データブロックをメモリ３８に転送するDEMUX３３の処理について説明する。なお、ここでは、データブロックをメモリ３８に転送するときに行われるDEMUX３３の全ての処理ではなく、主な処理についてのみ説明する。
【０１１０】
この処理は、DDBメッセージ用のPIDが設定された１つのTSパケットが処理対象のTSパケットとしてTSヘッダ解析部５１に供給されたときに開始される。
【０１１１】
TSヘッダ解析部５１は、処理対象のTSパケットに記述されているPUSI（図５）の値を確認し、ステップＳ１において、その値が１であるか否かを判定する。
【０１１２】
TSヘッダ解析部５１は、ステップＳ１において、PUSIの値が１であり、処理対象のTSパケットによって伝送されるデータがDSMCCセクションの先頭を含むものであると判定した場合、処理対象のTSパケットをセクションデータ解析部５３に出力し、ステップＳ２に進む。
【０１１３】
セクションデータ解析部５３は、TSパケットのペイロードの先頭に記述されるポインタフィールドの値を確認し、ステップＳ２において、ポインタフィールドの値がＮ（０以外の値）であるか否かを判定する。
【０１１４】
セクションデータ解析部５３は、ステップＳ２において、ポインタフィールドの値がＮであり、DSMCCセクションのデータがペイロードの先頭の位置には格納されていないから、読み出し位置を所定の位置に補正する必要があると判定した場合、ステップＳ３に進み、ポインタフィールドの値に従って、読み出し位置をペイロードの所定の位置に補正する。
【０１１５】
ステップＳ２において、ポインタフィールドの値が０であり、DSMCCセクションのデータがペイロードの先頭の位置から格納されていると判定された場合、このステップＳ３の処理はスキップされる。
【０１１６】
ステップＳ４において、セクションデータ解析部５３は、ホストCPU４５により設定された条件に従ってDSMCCセクションのフィルタリングを行う。
【０１１７】
ここでは、DSMCCセクションの８バイト毎のデータ、あるいは、１６バイト毎のデータを対象としてフィルタリングが行われる。８バイト毎のデータを対象とする場合、DSMCCセクションの先頭から８バイト、あるいは、DSMCCセクションの１バイト、２バイト目を除いた先頭から８バイトのデータを対象としてフィルタリングが行われる。また、１６バイト毎のデータを対象とする場合、DSMCCセクションの先頭から１６バイト、あるいは、DSMCCセクションの１バイト、２バイト目を除いた先頭から１６バイトのデータを対象としてフィルタリングが行われる。
【０１１８】
例えば、フィルタリング対象のデータと、ホストCPU４５により設定されたフィルタ条件のAND計算が行われ、AND計算の結果と、ホストCPU４５により設定されたValue値を比較することがフィルタリングとして行われる。Value値と同じ値がAND計算の結果として得られたフィルタリング対象のデータが、探しているデータであるとして判断される。
【０１１９】
具体的には、第１乃至第４のフィルタリング対象のデータがそれぞれ「００」、「０１」、「１０」、「１１」、ホストCPU４５により設定されたフィルタ条件が「０１」、Value値が「００」で表される場合、第１のフィルタリング対象のデータとフィルタ条件のAND計算の結果は「００」で表され、第２のフィルタリング対象のデータとフィルタ条件のAND計算の結果は「０１」で表され、第３のフィルタリング対象のデータとフィルタ条件のAND計算の結果は「００」で表され、第４のフィルタリング対象のデータとフィルタ条件のAND計算の結果は「０１」で表されるから、Value値の「００」と同じ値がAND計算の結果として得られたデータである第１と第３のフィルタリング対象のデータが、探しているデータであるとして判断される。
【０１２０】
図１１の説明に戻り、ステップＳ５において、セクションデータ解析部５３は、ホストCPU４５により設定されたValue値とAND計算の結果が一致するか否かを判定する。
【０１２１】
セクションデータ解析部５３は、ステップＳ５において、Value値とAND計算の結果が一致しないと判定した場合、処理を終了させ、一方、Value値とAND計算の結果が一致すると判定した場合、ステップＳ６に進む。
【０１２２】
ステップＳ６において、セクションデータ解析部５３は、セクションヘッダに記述されている「section_number」から、処理対象のTSパケットに一部のデータが格納されているデータブロックのブロック番号を求める。上述したように、８ビットのデータである「section_number」は、データブロックのブロック番号をも表す。
【０１２３】
また、セクションデータ解析部５３は、ステップＳ６において、「section_number」から求めたデータブロックのブロック番号に応じて、データブロックの転送先となるブロック領域のアドレスを求める。メモリ３８には、例えば、DIIメッセージが取得されたときに、DIIメッセージの記述に従ってデータブロック格納領域が確保され、データブロック格納領域が複数のブロック領域に区切られている。
【０１２４】
セクションデータ解析部５３は、処理対象のTSパケットに格納されているデータブロックのデータをメモリI/F５６に出力し、ステップＳ７において、ステップＳ５で求めたブロック領域にデータブロックのデータを転送させる。
【０１２５】
ステップＳ８において、セクションデータ解析部５３は、セクションヘッダに記述されている「dsmcc_section_length」の値から、DSMCCセクションの長さが正常であるか否かを判定する。
【０１２６】
セクションデータ解析部５３は、ステップＳ８において、DSMCCセクションの長さが正常ではなく、DSMCCセクションによって伝送されてきた全てのデータブロックをメモリ３８に転送していないと判定した場合、処理を終了させる。その後、それまで処理の対象になっていたTSパケットに続くTSパケットが新たに処理の対象として供給されてきた場合、ステップＳ１以降の処理が続けられることになる。
【０１２７】
一方、セクションデータ解析部５３は、DSMCCセクションの長さが正常であることから、DSMCCセクションによって伝送されてきた全てのデータブロックをメモリ３８に転送したと判定した場合、ステップＳ９に進む。
【０１２８】
ステップＳ９において、セクションデータ解析部５３は、CRC演算を行い、ステップＳ１０において、演算結果が正常であるか否かを判定する。
【０１２９】
ステップＳ１０において、セクションデータ解析部５３は、CRC演算の結果に基づいて、取得したDSMCCセクションが正常ではないと判定した場合、ステップＳ１１に進み、メモリI/F５６を制御して、転送済みのデータを無効とする。
【０１３０】
セクションデータ解析部５３は、ステップＳ１０において、取得したDSMCCセクションが正常であると判定した場合、処理を終了させる。
【０１３１】
一方、TSヘッダ解析部５１は、ステップＳ１において、PUSIの値が１ではなく、処理対象のTSパケットによって伝送されるデータがDSMCCセクションの先頭を含まないものであると判定した場合、処理対象のTSパケットをセクションデータ解析部５３に出力し、ステップＳ１２に進む。
【０１３２】
ステップＳ１２において、セクションデータ解析部５３は、処理対象のTSパケットのペイロードに格納されているデータブロックのデータをメモリ３８に出力し、直近に格納させたデータに連結させる。このときデータの転送先となるブロック領域は、例えば、PUSIの値が１であると直近に判定されたTSパケットに格納されたデータブロックのデータの転送先となったブロック領域と同じ領域となる。その後、上述したステップＳ８以降の処理が繰り返される。
【０１３３】
このような一連の処理が行われることにより、メモリ３８にはブロック番号順にデータブロックが並んで格納されるため、ホストCPU４５は、格納されている順に読み出すことで、データブロックの並べ替えなどを行うことなく、容易に、伝送対象のデータを取得することができる。
【０１３４】
なお、セクションデータ解析部５３が管理する情報として、取得済みのデータブロックの一覧を示す表を用意し、それにより、全てのデータブロックがそろったか否かが判定されるようにしてもよい。この表は、例えば２５６種類のデータブロックの取得済み／取得済みでないを管理することができる表とされる。これにより、全てのデータブロックがそろったか否かを「dsmcc_section_length」の値から判定するのではなく、表から判定することができる。全てのデータブロックがそろったか否かを表から判定する処理は、例えば、図１１のステップＳ８の処理に代えて行われる。
【０１３５】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ファームウエアにより実行させることもできる。また、ハードウエアとファームウエアを組み合わせることによっても実行させることもできる。
【０１３６】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１３７】
【図１】カルーセル伝送について示す図である。
【図２】従来の受信機に設けられるDEMUXの構成例を示すブロック図である。
【図３】本発明の一実施形態に係る受信装置の構成例を示すブロック図である。
【図４】図３の受信装置に設けられるDEMUXの構成例を示すブロック図である。
【図５】TSパケットのデータ構造を示す図である。
【図６】DSMCCセクションとTSパケットの対応を示す図である。
【図７】DSMCCセクションのデータ構造を示す図である。
【図８】図７のdownloadDataMessageのデータ構造を示す図である。
【図９】図８のdsmccDownloadDataHeader()のデータ構造を示す図である。
【図１０】データブロックの格納の例を示す図である。
【図１１】DEMUXの転送処理について説明するフローチャートである。
【符号の説明】
【０１３８】
２１  受信装置，  ３３  DEMUX，  ３８  メモリ，  ４５  ホストCPU，  ５１  TSヘッダ解析部，  ５２  PES解析部，  ５３  セクションデータ解析部
【図１】
2007329834.tif 000003
【図２】
2007329834.tif 000004
【図３】
2007329834.tif 000005
【図４】
2007329834.tif 000006
【図５】
2007329834.tif 000007
【図６】
2007329834.tif 000008
【図７】
2007329834.tif 000009
【図８】
2007329834.tif 000010
【図９】
2007329834.tif 000011
【図１０】
2007329834.tif 000012
【図１１】
2007329834.tif 000013