以下に、本技術を実施するための形態(以下、実施の形態という)について説明する。
図1は、本技術を適用した受信装置の一実施の形態の構成を示すブロック図である。図1に示した受信装置11は、制御部12および受信処理部13から構成される。制御部12は、受信処理部13を制御し、例えば、リモートコントローラなどのユーザ側の操作手段を含む構成とされている。
受信処理部13は、チューナ部14、復調処理部15、誤り訂正処理部16、ブロック処理部17、パケット処理部18から構成される。
チューナ部14は、外部の放送波受信手段、例えば、図1に示した例では、アンテナ1により受信された放送波から選局したチャンネルの信号(伝送路符号化信号)を復調処理部15に供給する。なお、外部の放送波受信手段は、所定のケーブルを介して放送波が供給される手段であっても良い。
復調処理部15は、チューナ部14から供給される伝送路符号化信号に対して復調処理(同期処理並びに等化処理)を施し、復調済みの信号を誤り訂正処理部16に供給する。また、伝送パラメータを取得し、ブロック処理部17に供給する。さらに、復調処理情報をパケット処理部18に供給する。
「伝送パラメータ」は、デジタル放送規格に依存する。「復調処理情報」は、伝送エラー率を含み、「伝送エラー率」は、受信状態を示す情報であり、例えば、信号雑音比(SNR: Signal-noise ratio)、変調誤差比(MER: Modulation Error Rate)などを示す。
誤り訂正処理部16は、復調処理部15から供給される復調済みの信号に対して誤り訂正処理を施し、誤り訂正処理済みの信号をブロック毎にブロック処理部17に供給する。また、ブロック毎の誤り訂正処理情報は、ブロック処理部17とパケット処理部18にそれぞれ供給される。
「ブロック」は、デジタル放送規格に依存する。また「誤り訂正処理情報」は、誤り訂正処理結果ならびに伝送エラー率を含む。また「誤り訂正処理結果」は、当該ブロックが誤り訂正OK(誤りが無かった、あるいは、誤りはあったが、訂正された)であったか、あるいは、誤り訂正NG(誤りがあり訂正されなかった)であったかを示す。
「伝送エラー率」は、受信状態を示す情報であり、例えば、ビット誤り率(BER: Bit Error Rate)、前方誤り訂正率(FER: FEC(Forward Error Correction)block Error Rate)などを示す。
ブロック処理部17は、復調処理部15から供給される伝送パラメータならびに誤り訂正処理部16から供給される誤り訂正処理情報(誤り訂正処理結果)に基づいて、誤り訂正処理部16から供給される誤り訂正処理済みブロックに対して処理を施し、処理済みのデータをパケット毎にパケット処理部18に供給する。また、ブロック処理部17は、ブロック毎のブロック処理情報を、パケット処理部18に供給する。
「パケット」は、デジタル放送規格に依存する。「ブロック処理情報」は、パケット単位の誤り訂正処理結果を含む。「パケット単位の誤り訂正処理結果」は、当該パケットが誤り訂正OK(誤り訂正OKのブロックに含まれていた)か、あるいは、誤り訂正NG(誤り訂正NGのブロックに含まれていた)かを示す。
パケット処理部18は、復調処理部15から供給される復調処理情報(伝送エラー率)、誤り訂正処理部16から供給される誤り訂正処理情報(伝送エラー率)、ブロック処理部17から供給されるブロック処理情報(パケット単位の誤り訂正処理結果)、ならびに外部の後段処理装置2(例えば、デコーダ)から供給される後段処理情報(例えば、復号エラー率)に基づいて、ブロック処理部17から供給されるパケットに対して処理を施し、処理済みのパケットを外部の後段処理(例えば、デコーダ)に出力する。
「復号エラー率」は、例えば、映像や音声の復号処理における単位時間当たりの復号エラー回数を示す。
ここで、受信処理部13で処理されるブロックやパケットについて、図2、図3を参照して説明する。
図2は、可変長パケットの一般的なデータ構造、および、それら複数個から構成される多重化ストリームの構造を示している。図2に示すように、各パケット(可変長)は、ヘッダ部とデータ部から構成され、その全長(パケット長)は、ヘッダ部に含まれる「データ長」パラメータに記載され、そのパラメータからわかるようになっている。
また、ヘッダ部は、パケットの同期を行うための「同期パターン」、パケットの内容を識別するための「パケット識別子」を含む。
なおここでは、「同期パターン」、「パケット識別子」といったパラメータを含むパケットを例に挙げて説明を続けるが、パケット形式によっては、これらのパラメータが存在しないものもある。本技術は、「同期パターン」、「パケット識別子」を含むパケット、「同期パターン」、「パケット識別子」を含まないパケットのどちらにも適用できる。
また、本実施の形態においては、可変長構造のパケット形式とし、例えば、TLV(Type Length Value)形式を例に挙げて説明を行うが、本技術は、GSE、GSE−Lite(DVB)、IPパケットなどを扱う場合にも適用できる。
なお、TLVに関しては、ARIB STD-B44 高度広帯域衛星デジタル放送の伝送方式 標準規格 2.0版(以下、適宜、非特許文献1と記載する)で、パケット形式などが規定されている。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、上記した「伝送パラメータ」は、TMCC(Transmission and Multiplexing Configuration Control)情報とすることができる。また、上記「ブロック」は、「スロットの主信号」とすることができる。また、上記した「パケット」は、「TLVパケット」とすることができる。
図3は、多重化ストリームの伝送について説明するための図である。送信側では、多重化ストリームを誤り訂正の処理単位のブロックに分割し、各ブロックに誤り訂正符号を付加して送信する。この際、ブロック境界とパケット境界は特に一致せず、1つのパケットが、複数のブロックを跨ぐことがある。また、1つのブロックが複数個のパケットを含むことがある。
例えば、図3を参照するに、ブロックm−1には、パケットn−4、パケットn−3、パケットn−2が含まれている。パケットn−4は、図示していない前のブロックm−2から継続するパケットであり、パケットn−2は、次のブロックmに継続するパケットである。
ブロックmには、パケットn−2、パケットn−1、パケットn、パケットn+1、パケットn+2が含まれている。パケットn−2は、前のブロックm−1から継続するパケットであり、パケットn+2は、次のブロックm+1に継続するパケットである。
ブロックm+1には、パケットn+2が含まれている。パケットn+2は、前のブロックmから継続するパケットであり、次のブロックm+2(不図示)に継続するパケットでもある。
このように、例えば、パケットn−2は、ブロックm−1とブロックmに跨るパケットであり、1つのパケットが複数のブロックに跨いでいるパケットである。またブロックmなどは、パケットn−2、パケットn−1、パケットn、パケットn+1、パケットn+2を含み、1つのブロックが複数個のパケットを含んでいる。
このような多重化ストリームが、送信側から受信側に対して送信される。受信側では、受信したブロック毎に誤り訂正処理を施して、その結果得られた誤り訂正済みのブロックを連結して、多重化ストリームを取得する。
非特許文献1では、受信側で、受信ブロックの誤り訂正処理がNGである(正しく行われなかった)場合、当該ブロックに含まれるパケットは、前後のブロックに跨るものを含め、全て無効化(ヌルパケットへ置換)されたり、破棄されたりすることが規定されている。
例えば、ブロックmにおいて、誤り訂正処理でNGが発生した場合、ブロックmに含まれるパケットn−2、パケットn−1、パケットn、パケットn+1、パケットn+2、ブロックmの前にあるブロックm−1に含まれるパケットn−2、およびブロックmの次にあるブロックm+1に含まれるパケットn+2は、全て無効化、または破棄される。
可変長パケット構造を有する多重化ストリームの解析においては、「データ長」パラメータ(図2)が正しくなければ、次のパケットの先頭の正しい位置がわからない。その結果、正しくパケットを無効化することができず、処理が破綻する可能性がある。
非特許文献1に開示されている方法では、「データ長」パラメータに誤りが含まれる場合についての規定はない。そこで、本技術を適用した受信処理部13においては、「データ長」パラメータに誤りが含まれる場合であっても、後段の処理が破綻することがないように、「データ長」パラメータを修正するように構成する。
詳細は、以下に明らかにするが、誤り訂正にNGが発生したブロックについて、伝送パラメータならびに当該ブロックを解析して得られるパケットのパラメータと特定パターンの位置情報に基づいて、当該ブロックに含まれるパケットの境界を検出できるようにする。その際、パケットの「データ長」パラメータと当該ブロックのブロック長の整合性を確認し、それらの間に矛盾がある場合には、矛盾を無くすように同パラメータを修正できるようにする。
また、本技術を適用した受信処理部13によれば、以下の点も改善できる。
上述したように、従来、誤り訂正NGの受信ブロックに含まれるパケットは、誤りを含むか否かに関わらず、全て無効化されていた。そのため、無効化されたブロック内のパケットに、正常な(誤りを含まない)パケットが含まれていても、その正常なパケットを処理、例えば、復号再生処理、記録処理、再配信処理などをすることはできなかった。
本技術を適用した受信処理部13においては、このような正常なパケットを可能な限り無効化せずに処理できる仕組みが設けられている。詳細は、以下に明らかにするが、誤り訂正NGのブロックに含まれるパケットであっても、そのまま(有効パケットのまま)出力できるようにする。但し、当該パケットの内容、受信状態ならびに後段の状況に応じて無効化して出力できるようにもする。
このような処理を行える受信処理部13についてさらに説明を加える。
<ブロック処理部の構成>
図4は、図1に示した受信処理部13を構成するブロック処理部17の構成例を示すブロック図である。図4に示したブロック処理部17は、バッファ21、ブロック情報取得部22、パケット情報取得部23、パターン情報取得部24、パケット分割部25を含む構成とされている。
バッファ21は、誤り訂正処理部16から供給される誤り訂正処理済みブロックを、一時的に記憶する。また、記憶したデータを、パケット分割部25に供給する。
ブロック情報取得部22は、復調処理部15から供給される伝送パラメータに基づいて当該ブロックに関する情報(以下、ブロック情報と称する)を取得し、パケット分割部25とパケット情報取得部23にそれぞれ供給する。
「ブロック情報」は、当該ブロックの全長(以下、ブロック長と称する)を含む情報である。
パケット情報取得部23は、誤り訂正処理部16から供給される誤り訂正処理済みのブロックを解析し、当該ブロックに含まれるパケットに関する情報(以下、パケット情報と称する)を取得し、パケット分割部25に供給する。
「パケット情報」は、当該ブロックに含まれるパケットの「データ長」パラメータを含む情報である。
なお、上記の処理に際して、復調処理部15から供給される伝送パラメータ、およびブロック情報取得部22から供給されるブロック情報を利用することができる。
パターン情報取得部24は、誤り訂正処理部16から供給される誤り訂正処理済みのブロックを解析し、当該ブロックに含まれるパターンの情報(以下、パターン情報と称する)を取得し、パケット分割部25に供給する。
「パターン情報」は、所定の値を有する入力データ(同期パターン)の位置情報を含む情報である。
パケット分割部25は、誤り訂正処理部16から供給される誤り訂正処理情報(誤り訂正処理結果)、ブロック情報取得部22から供給されるブロック情報、パケット情報取得部23から供給されるパケット情報、およびパターン情報取得部24から供給されるパターン情報に基づいて、バッファ21から供給されるデータを、パケット単位に分割して出力する。また、ブロック毎のブロック処理情報(パケット単位の誤り訂正処理結果)を、パケット処理部18に供給する。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、上記したブロック情報取得部22で取得するブロック長(=スロットの主信号長)は、TMCC情報に含まれる内符号符号化率から求めることができる(一意に定まる)。
例えば、内符号符号化率が41/120である場合、スロットの主信号長は14,960ビット(=1,870バイト)である。
また、パケット情報取得部23で取得する「データ長」パラメータを、例えば、TLVパケットの「データ長」パラメータ(16ビット)とすることができる。例えば、図2に示したパケットが、TLVパケットである場合、そのTLVパケットに含まれる「データ長」パラメータを、パケット情報取得部23が取得する「データ長」パラメータとすることができる。なお、TLVパケットの詳細については、図24を参照して後述する。
また、パターン情報取得部24で使用する同期パターンの値を、例えば、TLVパケットの先頭バイトの値(0x7F)とすることができる。例えば、図2に示したパケットが、TLVパケットである場合、そのTLVパケットにヘッダ部に含まれる先頭バイトは、(0x7F)であり、その値を、パターン情報取得部24で使用する同期パターンの値とすることができる。
<パケット処理部の構成>
図5は、図1に示した受信処理部13を構成するパケット処理部18の構成例を示すブロック図である。図5に示したパケット処理部18は、バッファ31、パケット情報取得部32、パケット書き換え部33を含む構成とされている。
バッファ31は、ブロック処理部17から供給されるパケットを一時的に記憶する。また、記憶したデータを、パケット単位でパケット書き換え部33に供給する。
パケット情報取得部32は、ブロック処理部17から供給されるパケットを解析し、当該パケットに含まれるパケットに関する情報(以下、パケット情報と称する)を取得し、パケット書き換え部33に供給する。
「パケット情報」は、当該パケットの「パケット識別子」パラメータを含む情報である。「パケット識別子」は、デジタル放送規格に依存する識別子である。
パケット書き換え部33は、復調処理部15から供給される復調処理情報(伝送エラー率)、誤り訂正処理部16から供給される誤り訂正処理情報(伝送エラー率)、ブロック処理部17から供給されるブロック処理情報(パケット単位の誤り訂正処理結果)、パケット情報取得部32から供給されるパケット情報、外部の後段処理装置2(図1)から供給される後段処理情報(例えば、復号エラー率)に基づいて、バッファ31から供給されるパケットの書き換えを行い、その結果得られたパケットを外部、例えば後段処理装置2に対して出力する。
受信処理部13を、非特許文献1のデジタル放送規格の信号(TLVパケット)を扱えるように構成した場合、上記したパケット情報取得部32で取得し、パケット書き換え部33で利用する「パケット識別子」は、以下のようにすることができる。
例えば、「パケット識別子」は、TLVパケットの「パケット識別(packet_type)」パラメータ(8ビット)とすることができる。この「パケット識別」パラメータは、当該TLVパケット内のデータ部に格納されるデータを識別するためのパラメータである。
なお、当該TLVパケット内のデータ部に格納されるデータは、IPv4(Internet Protocol version 4)パケット、IPv6(Internet Protocol version 6)パケット、ヌルパケット、その他のパケットが規定されている。これらのパケットを、適宜、サブパケットと称する。
また例えば、「パケット識別子」は、TLVパケットが含むサブパケットのパラメータ、例えば、IP(Internet Protocol)パケットの「送信元アドレス(source_address)」パラメータ(32ビット/IPv4、128ビット/IPv6)および「宛先アドレス(destination_address)」パラメータ(同様)とすることができる。これらのパラメータは、当該IPパケットの送信元アドレスおよび宛先アドレスを示すパラメータである。
また例えば、「パケット識別子」は、TLVパケットが含むサブパケットのパラメータ、例えば、UDP(User Datagram Protocol)パケットの「送信元ポート(source_port)」パラメータ(16ビット)および「宛先ポート(destination_port)」パラメータ(同様)とすることができる。これらのパラメータは、当該UDPパケットの送信元ポートおよび宛先ポートを示すパラメータである。
また例えば、「パケット識別子」は、TLVパケットが含むサブパケットのパラメータ、例えば、MMTP(MPEG Media Transport Protocol)パケットの「パケット識別子(packet_id)」パラメータ(16ビット)とすることができる。これらのパラメータは、当該MMTPパケット内のデータ部に格納されるデータを識別するパラメータである。このデータ部に格納されるデータは、映像、音声、字幕、文字スーパー、制御情報、その他に係わるデータである。
また例えば、「パケット識別子」は、上記したパラメータの2つ以上の組み合わせとすることができる。
どの「パケット識別子」を用いるかは、パケット書き換え部33が処理するパケットの種別に応じて設定される。
<パケット分割部での処理>
次に、受信処理部13の動作について説明する。まず、受信処理部13のブロック処理部17での処理、特に、パケット分割部25での処理について説明する。以下に説明する処理により、上記した“後段の処理が破綻することがないように、「データ長」パラメータを修正”するための処理が実行される。
図6に示したフローチャートを参照し、パケット分割部25での処理について説明する。図6に示したフローチャートの処理は、ブロック処理部17に対してブロックが入力される度に繰り返し実行される。
ステップS101において、当該ブロックでパケットが開始もしくは終了するか否かが判定される。図3を再度参照するに、処理対象とされているブロックが、ブロックmである場合、ブロックmには、例えば、当該ブロックでパケットが開始していると判定されるパケットn−1、パケットn、パケットn+1、およびパケットn+2が含まれている。
また、ブロックmには、例えば、当該ブロックでパケットが終了していると判定されるパケットn−2、パケットn−1、パケットn、およびパケットn+1が含まれている。よって、ブロックmが処理対象とされている場合には、ステップS101においては、当該ブロックでパケットが開始もしくは終了すると判定され、ステップS102に処理は進められる。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、当該ブロックでパケットは開始もしくは終了するか否かの判定には、TMCC情報に含まれるトップポインタとラストポインタを使用することができる。
図7に示すように、トップポインタは各スロットに収納されるパケットのうち、最初のパケット先頭バイト位置を示す。またラストポインタは各スロットに収納されるパケットのうち、最後のパケット末尾バイト位置+1を示す。
このトップポインタが非0xFFFFあるいはラストポインタが非0xFFFFである場合、当該ブロックでパケットは開始もしくは終了する判定することができる。
図6のフローチャートの説明に戻る。ステップS101において、当該ブロックでパケットが開始もしくは終了すると判定された場合、ステップS102に処理は進められる。ステップS102において、前ブロックから継続かつ当該ブロックで終了するパケットがある否かが判定される。
再度図3を参照するに、例えば、ブロックmが処理対象とされている場合、パケットn−2は、前のブロックm−1から継続しているパケットであり、かつ、ブロックmで終了しているパケットである。よって、ブロックmのようなブロックが処理対象とされている場合、ステップS102においては、前ブロックから継続かつ当該ブロックで終了するパケットがあると判定され、処理は、ステップS103に進められる。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、ステップS102における前ブロックから継続かつ当該ブロックで終了するパケットがあるか否かの判定には、TMCC情報に含まれるトップポインタを使用することができる。すなわち、トップポインタが非0x0000かつ非0xFFFFである場合、前ブロックからの継続パケットがあると判定することができ、それ以外の場合は無いと判定することができる。
ステップS103において、前ブロックから継続かつ当該ブロックで終了するパケットの処理が実行される。ステップS103において実行される前ブロックから継続かつ当該ブロックで終了するパケットの処理について、図8に示したフローチャートを参照して説明する。
ステップS201において、バッファデータと前ブロックからの継続パケットを連結し、1つのパケットが形成される。この場合、前ブロックから継続しているパケットが処理対象とされているため、前ブロックに含まれていたパケットはバッファリングされており、そのバッファリングされていたバッファデータと、処理対象とされているパケットが連結され、1つのパケットとされる。
ステップS202において、前ブロックと当該ブロックの誤り訂正処理結果が確認され、前ブロックと当該ブロックの誤り訂正処理結果が、どちらも誤り訂正OKである場合、ステップS206に処理が進められる。
この場合、前ブロックから継続かつ当該ブロックで終了するパケットの処理であるため、前ブロックと当該ブロックの誤り訂正処理結果のどちらかに、NGが発生しているような場合には、後述するような処理が実行される必要があるが、OKである場合、問題は無いため、ステップS206に処理は進められ、当該パケットは、パケット処理部18(図5)に出力される。
一方、ステップS202において、前ブロックと当該ブロックの誤り訂正処理結果のうちの、どちらか一方にでも誤り訂正NGがある場合、処理は、ステップS203に進められる。
ステップS203において、当該パケットの「同期パターン」パラメータが正しいか否かが判定される。この「同期パターン」の期待値は、デジタル放送規格に依存する。
ステップS203において、当該パケットの「同期パターン」パラメータが正しいと判定された場合、ステップS204の処理はスキップされ、ステップS205に処理は進められる。
一方、ステップS203において、当該パケットの「同期パターン」パラメータが正しくないと判定された場合、ステップS204に処理は進められる。ステップS204において、当該パケットの「同期パターン」パラメータが修正され、処理は、ステップS205に進められる。
ステップS205において、当該パケットの「データ長」パラメータの修正処理が実行される。この当該パケットの「データ長」パラメータの修正処理は、当該パケットの「データ長」パラメータに誤りがあった場合、その誤りを修正し、当該パケットの「データ長」パラメータに誤りが無かった場合、そのまま出力する処理である。
ステップS205において実行される、当該パケットの「データ長」パラメータの修正処理について、図9のフローチャートを参照して説明する。
ステップS301において、当該パケットのパケット長期待値が計算される。受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、パケット長期待値は、次式に基づき計算される。
パケット長期待値 = バッファデータ長 + トップポインタ
パケット長期待値が計算されると、ステップS302に処理は進められ、当該パケットの「データ長」パラメータが取得され、パケット長が計算される。受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、パケット長は、次式に基づき計算される。
パケット長 = 4 + 「データ長」パラメータ
パケット長が計算されると、ステップS303に処理は進められ、次パケットがあるか否かが判定される。ステップS303において、次パケットがあると判定された場合、ステップS304に処理が進められる。
ステップS304において、次パケットの同期パターンは、正しい値か否かが判定される。この判定は、ステップS302の処理で得られたパケット長に基づいて、次パケットの同期パターンが確認される。例えばパケットnが処理されているとき、そのパケットnの先頭からパケット長分だけ行った先には、次パケットの同期パターンがあるはずである。パケット長に基づいて移動した先にあるパターンを同期パターンであるとして読み取り、その読み取った同期パターンが、正しいか否かが判定される。
ステップS304において、次パケットの同期パターンは正しいと判定された場合、ステップS305に処理は進められる。ステップS305には、ステップS303において、次パケットは無いと判定された場合も来る。
ステップS305において、ステップS302の処理で得られたパケット長(パケット長計算値とする)と、ステップS301の処理で得られたパケット長期待値が等しいか否かが判定される。
ステップS305において、パケット長計算値とパケット長期待値は等しいと判定された場合、ステップS306に処理は進められる。ステップS306において、当該パケットの「データ長」パラメータは正しいと判定され、処理は、ステップS206(図8)に進められる。
この場合、図9に示したフローチャートの処理が実行されることで、当該パケットの「データ長」は、正しいと判定されたときであり、かつ、当該パケットの「同期パターン」パラメータは、正しいと判定された(または正しく修正された)ときであるため、当該パケットに問題は無い(問題は無くなった)ため、ステップS206において、当該パケットは、パケット処理部18(図5)に出力される。
一方、ステップS305において、パケット長計算値とパケット長期待値は等しくないと判定された場合、ステップS307に処理は進められる。ステップS307には、ステップS304において、次パケットの同期パターンは、正しくないと判定された場合も来る。
ステップS307において、当該パケットの「データ長」パラメータは、正しくないと判定され、ステップS308に処理が進められる。ステップS308において、ステップS301(図9)の処理で得られたパケット長期待値に基づいて、当該パケットの「データ長」パラメータが修正される。
「データ長」パラメータが修正された後、処理は、ステップS206(図8)に進められる。この場合、「データ長」パラメータに、誤りがあったが、修正されたため、当該パケットに問題は無くなったとされ、ステップS206において、当該パケットは、パケット処理部18(図5)に出力される。
このようにして、前ブロックから継続、かつ当該ブロックで終了するパケットの処理が実行される。この処理が実行されることで、仮に、「データ長」パラメータに誤りがあった場合であっても、その誤りを修正し、正しい「データ長」パラメータにすることができる。
図10を参照し、再度図8、図9を参照して説明した前ブロックから継続かつ当該ブロックで終了するパケットの処理について説明する。図10では、1個のパケットが2個のブロックを跨ぐ場合を例に挙げて説明する。
図10のAは、ブロック処理部17への入力(ブロック列)の一例を示す図である。この例では、2個のブロック(ブロックm−1とブロックm)が、ブロック処理部17へ入力される。
ここで、ブロックm−1とブロックmを跨ぐパケットnの「データ長」パラメータに伝送誤りがあった場合、上記したような処理が実行される。跨ぎ前後のパケットnのそれぞれ長さは、l1,l2であり、それらは伝送パラメータから計算することができる。
前パケットのパケットnの長さl1は、ブロック長(図7におけるBSに該当)と、ラストポインタ(図7においては、パケット0からパケットn−2のLPに該当)との差分値として求められ、後パケットのパケットnの長さl2は、トップポインタ(図7におけるパケット0のTPに該当)として求められる。
図10のBは、図10のAに示したブロックを入力とした場合のブロック処理部17からの出力(パケット列)を示す。図10のBに示したように、パケットnの「データ長」パラメータは、パケットnのパケット長(l1 + l2)に基づいて得られた値に修正されている。
このように、ブロックを跨ぐパケットの「データ長」パラメータに誤りがあった場合、伝送パラメータから計算できるパケットの長さが用いられて、「データ長」パラメータが修正される。そして、出力されるパケットの「データ長」パラメータは、修正済みのパラメータとされているため、後段の処理で、「データ長」パラメータの誤りにより処理が破綻するといったようなことが発生するようなことを防ぐことが可能となる。
ところで、上述した処理に、サブパケットに対する処理を含ませることも可能である。サブパケットに対しても処理を行うようにした場合についての説明は後述するが、例えば、TLVパケットが処理される場合であり、上記した処理が、TLVパケットに対して行われた後、TLVパケットに含まれるサブパケット、例えば、IPv4パケットに対しても基本的に同様の処理を行うようにしても良い。
サブパケットに対しても、同様の処理を行うようにすることで、サブパケットの所定のパラメータ(例えば、「データ長」パラメータ)に誤りがあった場合においても、その誤りを修正することが可能となる。
サブパケットに対しても処理を行うようにした場合、例えば、ステップS205とステップS206(図8)の間に、サブパケットに対する処理を実行するように構成することができる。
図6に示したフローチャートの説明に戻る。
ステップS103において、前ブロックから継続、かつ当該ブロックで終了するパケットの処理が実行された場合、または、ステップS102において、前ブロックから継続、かつ当該ブロックで終了するパケットは無いと判定された場合、ステップS104に処理は進められる。
ステップS104において、当該ブロック内で完結する(当該ブロックで開始かつ終了する)パケット(単数もしくは複数)があるか否かが判定される。当該ブロック内で完結するパケットとは、例えば、図3を再度参照するに、ブロックmに含まれるパケットn−1、パケットn、パケットn+1であり、これらのパケットは、ブロックm内で、開始し、終了しているパケットである。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、ステップS104における判定には、TMCC情報に含まれるトップポインタとラストポインタを使用することができる。すなわち、トップポインタが非0xFFFFかつラストポインタが非0xFFFFである場合、当該ブロック内で完結するパケットがあると判定することができる。また、それ以外の場合、当該ブロック内で完結するパケットは無いと判定することができる。
ステップS104において、当該ブロック内で完結するパケットがあると判定された場合、ステップS105に処理は進められる。ステップS105において、当該ブロック内で完結するパケットの処理が実行される。ステップS105において実行される当該ブロック内で完結するパケットの処理について、図11、図12のフローチャートを参照して説明する。
ステップS401において、当該ブロックの誤り訂正処理結果が正しいか否かが判定される。ステップS401において、当該ブロックの誤り訂正処理結果は正しくないと判定された場合、ステップS402に処理は進められる。
ステップS402において、先頭パケットが処理対象のパケットとしてセットされ、処理は、ステップS403に進められる。ステップS403において、当該パケットの「同期パターン」パラメータは正しいか否かが判定される。この「同期パターン」の期待値は、デジタル放送規格に依存する。
ステップS403において、当該パケットの「同期パターン」パラメータは正しいと判定された場合、ステップS404の処理はスキップされ、ステップS405に処理は進められる。
一方ステップS403において、当該パケットの「同期パターン」パラメータが正しくないと判定された場合、ステップS404に処理は進められる。ステップS404において、当該パケットの「同期パターン」パラメータが修正され、処理は、ステップS405に進められる。
ステップS405において、当該パケットの「データ長」パラメータの修正処理が実行される。この当該パケットの「データ長」パラメータの修正処理は、当該パケットの「データ長」パラメータに誤りがあった場合、その誤りを修正し、当該パケットの「データ長」パラメータに誤りが無かった場合、そのまま出力する処理である。
ステップS405において実行される、当該パケットの「データ長」パラメータの修正処理について、図12のフローチャートを参照して説明する。
ステップS501において、先頭パケットから最終パケットまでのパケット長総和期待値(当該パケットを含む)が計算される。受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、パケット長総和期待値は、次式に基づき計算することができる。
パケット長総和期待値 = ラストポインタ ― トップポインタ
図7においては、(LP―TP)の部分が、パケット長総和期待値に該当する。
パケット長総和期待値が計算されると、ステップS502に処理は進められ、先頭パケットから前パケットまでのパケット長総和(当該パケットを含まない)が計算される。パケット長総和は、先頭パケットから前パケットについて、各パケットの「データ長」パラメータから計算されるパケット長の総和である。
パケット長総和が計算されると、ステップS503に処理は進められ、当該パケットの「データ長」パラメータが取得され、パケット長が計算される。パケット長が計算されると、ステップS504に処理は進められ、次パケットがあるか否かが判定される。ステップS504において、次パケットがあると判定された場合、ステップS505に処理が進められる。
ステップS505において、次パケットの同期パターンは、正しい値か否かが判定される。ステップS505において、次パケットの同期パターンは正しいと判定された場合、ステップS506に処理は進められる。ステップS506には、ステップS504において、次パケットは無いと判定された場合も来る。
ステップS506において、ステップS502で得られたパケット長総和に、ステップS503の処理で得られたパケット長が加算される。
ステップS507において、ステップS506の処理で得られたパケット長総和(パケット長総和計算値とする)が、ステップS501の処理で得られたパケット長総和期待値以下であるか否かが判定される(パケット長総和計算値≦パケット長総和期待値を満たすか否かが判定される)。
ステップS507において、パケット長総和計算値≦パケット長総和期待値を満たすと判定された場合、ステップS508に処理は進められる。ステップS508において、当該パケットの「データ長」パラメータは正しいとの判定結果が出され、処理は、ステップS406(図8)に進められる。
この場合、図12に示したフローチャートの処理が実行されることで、当該パケットの「データ長」は、正しいと判定されたときであり、かつ、当該パケットの「同期パターン」パラメータは、正しいと判定された(または正しく修正された)ときであるため、当該パケットに問題は無い(無くなった)ため、ステップS406において、当該パケットは、パケット処理部18(図5)に出力される。
一方、ステップS505において、パケット長総和計算値≦パケット長総和期待値を満たさないと判定された場合、ステップS509に処理は進められる。ステップS509には、ステップS505において、次パケットの同期パターンは、正しくないと判定された場合も来る。
ステップS509において、当該パケットの「データ長」パラメータは、正しくないとの判定結果が出され、ステップS510に処理が進められる。ステップS510において、ステップS501の処理で得られたパケット長総和期待値に基づいて、当該パケットの「データ長」パラメータが修正される。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、
「データ長」パラメータ(修正用)は、以下のように計算できる。
「データ長」パラメータ(修正用)= パケット長(修正用)― 4
ここで、図13を参照して、パケット長(修正用)の決定方法について説明する。図13のAは、ブロック処理部17への入力(ブロック)の一例を示す図である。本例では、5つのパケット(パケット1からパケット5)が、当該ブロック内で完結するパケットとして存在している。また、パケット1およびパケット2の「データ長」パラメータは正しいが、パケット3の「データ長」パラメータは正しくないとする。
図13のBは、図13のAに示したブロックを入力とした際のパケット長の第1の決定方法を説明するための図である。第1の方法では、当該パケット(図13では、パケット3)の同期パターンから、次の同期パターン(図13では、パケット4の同期パターン)までの距離(バイト)を、当該パケットのパケット長(修正用)とする。但し、本例において、上記2つの「同期パターン」の間に、「同期パターン」と同値のパターンは存在しないとしている。
図13のCは、図13のAのブロックを入力とした際のパケット長の第2の決定方法を説明する図である。第2の方法では、当該パケット(図13では、パケット3)から当該ブロック内で完結するパケットの最後までの距離(バイト)(図13では、パケット5の最終バイト)を、当該パケットのパケット長(修正用)とする。
第1の方法、または第2の方法により、パケット長(修正用)が決定され、そのパケット長に基づき、「データ長」パラメータ(修正用)が計算される。
「データ長」パラメータが修正された後、処理は、ステップS406(図8)に進められる。この場合、「データ長」パラメータに、誤りがあったが、修正されたため、当該パケットに問題は無くなったとされ、ステップS406において、当該パケットは、パケット処理部18(図5)に出力される。
ステップS406において、当該パケットが、パケット処理部18に出力されると、処理は、ステップS407に進められる。ステップS407において、次パケットがあるか否かが判定される。
ステップS407において、次パケットがあると判定された場合、ステップS408に処理が進められ、次パケットが、新たな処理対象のパケットにセットされ、処理は、ステップS403に戻され、それ以降の処理が繰り返される。
一方で、ステップS407において、次パケットはないと判定された場合、図11に示した当該ブロック内で完結するパケットの処理は終了される。
一方、ステップS401において、当該ブロックの誤り訂正処理結果は正しいと判定された場合、ステップS409に処理は進められる。ステップS409において、先頭パケットが処理対象のパケットにセットされ、ステップS410に処理は進められる。
ステップS410において、当該パケットが、パケット処理部18(図5)に出力される。出力後、処理は、ステップS411に進められ、次パケットがあるか否かが判定される。ステップS411において、次パケットがあると判定された場合、ステップS412に処理が進められ、次パケットが、新たな処理対象のパケットにセットされ、処理は、ステップS410に戻され、それ以降の処理が繰り返される。
一方で、ステップS411において、次パケットはないと判定された場合、図11に示した当該ブロック内で完結するパケットの処理は終了される。
この場合、当該ブロックの誤り訂正処理結果がOKである場合であるため、ステップS410乃至S412の処理が繰り返されることで、順次ブロック内のパケットが出力される。
図14、図15を参照し、図11、図12を参照して説明した当該ブロック内で完結するパケットの処理について再度説明を加える。
図14は、図13を参照して説明したパケット長(修正用)の決定方法として、第1の決定方法を用いた場合について説明するための図である。図14のAは、ブロック処理部17への入力(ブロック)の一例を示す図である。本例では、5個のパケット(パケット1からパケット5)が当該ブロック内で完結するパケットとして存在している。また、パケット1およびパケット2の「データ長」パラメータは正しいが、パケット3の「データ長」パラメータは正しくないとする。
図14のBと図14のCは、どちらも図14のAのブロックを入力した場合のブロック処理部17からの出力(パケット列)を示す。但し、図14のBは、図14のAのパケット4の「同期パターン」パラメータが正しい値の場合を示し、図14のCは、パケット4の「同期パターン」パラメータが正しくない(伝送誤りがある)場合を示している。
図14のBでは、パケット3’の「データ長」パラメータは、パケット3とパケット4の「同期パターン」の距離に基づく値に修正されている。但し、本例では、上記2つの「同期パターン」の間に、「同期パターン」と同値のパターンは存在しないとしている。
この場合、パケット3の「同期パターン」からパケット4の「同期パターン」までが、パケット3のヘッダ部とデータ部(例えば、図2参照)を合わせた長さとなる。「データ長」パラメータが、ヘッダ部とデータ部を合わせた長さである場合、この長さが用いられ、ヘッダ部を除いたデータ部の長さである場合、この長さから、ヘッダ部の長さが減算された長さが用いられる。「データ長」パラメータとして、どこの部分の長さを記載するかは、扱うパケットの種別によるため、その種別に適した値が算出されるようにすればよい。
図14のCでは、パケット3’の「データ長」パラメータは、パケット3とパケット5の「同期パターン」の距離に基づく値に修正されている。但し、本例では、上記2つの「同期パターン」の間に、「同期パターン」と同値のパターンは存在しないとしている。
この場合、パケット4の「同期パターン」に誤りがあるため、パケット3の「同期パターン」とパケット4の「同期パターン」を用いて、パケット3のデータ長を計算すると、その計算値にも誤りが含まれる可能性がある。よって、パケット4の「同期パターン」は用いず、その次のパケット5の「同期パターン」を用いる。
新たなパケット3’は、パケット3とパケット4が結合されたパケットとされ、そのデータ長は、パケット3の「同期パターン」からパケット5の「同期パターン」までの距離とされている。なおこの場合も、図14のBを参照して説明した場合と同じく、パケットの種別に適したデータ長が計算される。
図15は、図13を参照して説明したパケット長(修正用)の決定方法として、第2の決定方法を用いた場合について説明するための図である。図15のAは、図14のAと同じく、ブロック処理部17への入力(ブロック)の一例を示す図である。
図15のBは、図15のAのブロックを入力した場合のブロック処理部17からの出力(パケット列)を示す図である。図15のBからわかるように、パケット3’は、パケット3からパケット5を、1個のパケットとして形成されたものであり、そのパケット長に基づいて「データ長」パラメータが決定されている。
この場合、パケット5が、ブロックm内で完結するパケットの中で、最後のパケットである。よって、パケット3からパケット5までの距離(パケット5の最終バイト)が、新たなパケット3’のデータ長とされる。新たなパケット3’は、パケット3、パケット4、およびパケット5が結合されたパケットである。なおこの場合も、図14のBを参照して説明した場合と同じく、パケットの種別に適したデータ長が計算される。
図16、図17のフローチャートを参照し、ステップS105(図6)において実行される当該ブロック内で完結するパケット(単数もしくは複数)の処理の変形例(当該ブロック内で完結するパケットの第2の処理とする)について説明する。
図11、図12を参照して説明した当該ブロック内で完結するパケットの処理においては、パケット毎に「データ長」パラメータを検査するのに対して、図16、図17を参照して説明する当該ブロック内で完結するパケットの第2の処理においては、まず全てのパケットの「データ長」パラメータについて検査する点が異なる。また、正しくない場合は、当該ブロック内で完結する全てのパケットを1つのパケットとして出力する点も異なる。
ステップS601において、当該ブロックの誤り訂正処理結果が確認され、誤り訂正処理結果は正しいか否かが判定される。ステップS601において、当該ブロックの誤り訂正処理結果は、正しくないと判定された場合、ステップS602に処理が進められる。
ステップS602において、パラメータの正しさの判定処理が実行される。図17のフローチャートを参照し、ステップS602において実行されるパラメータの正しさの判定処理について説明する。
ステップS701において、先頭パケットが処理対象のパケットとしてセットされる。ステップS702において、当該パケットの「同期パターン」パラメータは、正しいか否かが判定される。ステップS702において、当該パケットの「同期パターン」パラメータは、正しいと判定された場合、ステップS703に処理が進められる。
ステップS703において、「データ長」パラメータの正しさ判定処理が実行される。ステップS703において実行される「データ長」パラメータの正しさ判定処理について、図18のフローチャートを参照して説明する。
図18に示したフローチャートにおいて、ステップS801乃至S809の各処理は、図12に示したフローチャートにおけるステップS501乃至S509の各処理と同様である。換言すれば、図18に示したフローチャートに基づく処理は、図12に示したフローチャートに基づく処理から、「データ長」パラメータを修正するステップS510の処理を省略した処理とされている。
図12に示したフローチャートに基づく処理においては、処理対象としているパケットの「データ長」パラメータが正しくない場合には、修正されて出力されたが、図18に示したフローチャートに基づく処理においては、修正せずに、次の処理に進む。上記したように、まず、全てのパケットの「データ長」パラメータについて検査が行われ、誤りが含まれる場合には、後の処理で、一括して修正するために、個々のパケットにおける修正は行われない(ステップS510に該当する処理は行われない)。
図17のフローチャートの説明に戻り、ステップS703において、「データ長」パラメータの正しさ判定処理が実行され、その判定結果が出ると、ステップS704に処理が進められる。ステップS704において、「データ長」パラメータは正しいか否かが、ステップS703における判定結果が参照されて判定される。
ステップS704において、「データ長」パラメータは正しいと判定された場合、ステップS705に処理は進められ、次パケットがあるか否かが判定される。ステップS705において、次パケットがあると判定された場合、ステップS706に処理が進められ、次パケットが、新たな処理対象のパケットにセットされ、処理は、ステップS702に戻され、それ以降の処理が繰り返される。
一方で、ステップS705において、次パケットはないと判定された場合、ステップS707に処理は進められる。ステップS707において、全てのパケットの「同期パターン」パラメータと「データ長」パラメータは正しいとの判定結果が出され、ステップS603(図16)に処理は進められる。
一方、ステップ702において、当該パケットの「同期パターン」パラメータは正しくないと判断された場合、または、ステップS704において、「データ長」パラメータは正しくないと判定された場合、ステップS708に処理は進められる。
ステップS708において、「同期パターン」パラメータ、または「データ長」パラメータが不正なパケットが存在するとの判定結果が出され、ステップS603(図16)に処理は進められる。すなわち、処理対象としているブロック内のパケットに、「同期パターン」パラメータ、または「データ長」パラメータに不正が検出された場合、その時点で、ブロック内のパラメータに不正があるとして、修正するための処理に移行される。
ステップS603において、パラメータは正しいか否かが、ステップS602における処理で出された判定結果が参照されて判定される。ステップS603において、パラメータは正しくないと判定された場合、ステップS604に処理は進められる。
ステップS604において、全てのパケットが連結され、1つのパケットが形成される。ステップS605において、当該パケットの「データ長」パラメータが修正される。この場合、形成された1つのパケットのデータ長に、「データ長」パラメータが修正される。そして、ステップS606において、当該パケットは、パケット処理部18に出力され、図16に示した当該ブロック内で完結するパケットの第2の処理は終了される。
このように、全てのパケットの「データ長」パラメータが検査され、正しくない場合には、当該ブロック内で完結する全てのパケットが1つのパケットとされ、その1つのパケットにされたパケットのデータ長に「データ長」パラメータが修正されて出力される。
一方、ステップS603において、パラメータは正しいと判定された場合、ステップS607に処理は進められ、先頭パケットが処理対象のパケットにセットされる。
セットされたパケットに対して、ステップS608の処理が実行される。ステップS608において、当該パケットは、パケット処理部18に出力される。その後、処理は、ステップS609に進められる。ステップS609において、次パケットがあるか否かが判定される。
ステップS609において、次パケットがあると判定された場合、ステップS610に処理が進められ、次パケットが、新たな処理対象のパケットにセットされ、処理は、ステップS608に戻され、それ以降の処理が繰り返される。
一方、ステップS609において、次パケットはないと判定された場合、図16に示した当該ブロック内で完結するパケットの第2の処理は終了される。すなわちこの場合、パラメータは正しいため、ステップS608乃至S610の処理が繰り返されることで、処理対象とされているブロック内のパケットが、順次、パケット処理部18に出力される。
一方、ステップS601において、当該ブロックの誤り訂正処理結果は、正しいと判定された場合、ステップS611に処理が進められる。ステップS611において、先頭パケットが処理対象のパケットにセットされる。
セットされたパケットに対して、ステップS612の処理が実行される。ステップS612において、当該パケットは、パケット処理部18に出力される。その後、処理は、ステップS613に進められる。ステップS613において、次パケットがあるか否かが判定される。
ステップS613において、次パケットがあると判定された場合、ステップS614に処理が進められ、次パケットが、新たな処理対象のパケットにセットされ、処理は、ステップS612に戻され、それ以降の処理が繰り返される。すなわちこの場合、当該ブロックの誤り訂正処理結果は正しいため、ステップS612乃至S614の処理が繰り返されることで、処理対象とされているブロック内のパケットが、順次、パケット処理部18に出力される。
図19を参照し、図16乃至図18を参照して説明した当該ブロック内で完結するパケットの第2の処理について再度説明を加える。
図19のAは、ブロック処理部17への入力(ブロック)の一例を示す。本例では、5個のパケット(パケット1からパケット5)が、当該ブロック内で完結するパケットとして存在する。また、パケット1およびパケット2の「データ長」パラメータは正しいが、パケット3の「データ長」パラメータは正しくないとする。
図19のBは、図19のAのブロックを入力した場合のブロック処理部17からの出力(パケット列)を示す。図19のBからわかるように、パケット1’は、パケット1からパケット5を、1個のパケットとして形成されたものであり、そのパケット長に基づいて「データ長」パラメータが決定(修正)されている。
このようにして、当該ブロック内で完結するパケットの第2の処理が実行される。
ところで、上述した処理に、サブパケットに対する処理を含ませることも可能である。サブパケットに対しても処理を行うようにした場合についての説明は後述するが、例えば、TLVパケットが処理される場合であり、上記した処理が、TLVパケットに対して行われた後、TLVパケットに含まれるサブパケット、例えば、IPv4パケットに対しても同様の処理を行うようにしても良い。
サブパケットに対しても、同様の処理を行うようにすることで、サブパケットの所定のパラメータ(例えば、「データ長」パラメータ)に誤りがあった場合においても、その誤りを修正することが可能となる。
サブパケットに対しても処理を行うようにした場合、例えば、ステップS607とステップS608(図16)の間に、サブパケットに対する処理を実行するように構成することができる。
図6のフローチャートの説明に戻る。
ステップS104において、当該ブロック内で完結するパケットは無いと判定された場合、または、ステップS105において、当該ブロック内で完結するパケットの処理が終了された場合、処理は、ステップS106に進められる。
ステップS106において、当該ブロックで開始、かつ次ブロックへ継続するパケットがあるか否かが判定される。
再度図3を参照するに、例えば、ブロックmが処理対象とされている場合、パケットn+2は、ブロックmで開始しているパケットであり、かつ次のブロックm+1に継続しているパケットである。よって、ブロックmのようなブロックが処理対象とされている場合、ステップS106においては、前ブロックから継続かつ当該ブロックで終了するパケットがあると判定され、処理は、ステップS107に進められる。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、ステップS106における当該ブロックで開始、かつ次ブロックへ継続するパケットがあるか否かの判定は、TMCC情報に含まれるラストポインタを使用することができる。すなわち、ラストポインタが非0xFFFFである場合、次ブロックへの継続パケットがあると判断することができ、それ以外の場合には次ブロックへの継続パケットは無いと判断することができる。
ステップS106において、当該ブロックで開始、かつ次ブロックへ継続するパケットがあると判定された場合、ステップS107に処理は進められる。ステップS107において、当該ブロックで開始、かつ次ブロックへ継続するパケットの処理が実行される。図20に示したフローチャートを参照し、ステップS107において実行される当該ブロックで開始、かつ次ブロックへ継続するパケットの処理について説明する。
ステップS901において、次ブロックへ継続するパケットデータがバッファリングされる。例えば、上記した例では、ブロックmのパケットn+2のデータがバッファリングされる。
ステップS902において、バッファデータ長が計算され、得られた結果が保存される。受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、「バッファデータ長」は、次式により求めることができる。
バッファデータ長 = スロットの主信号長 ― ラストポインタ
このように、当該ブロックで開始、かつ次ブロックへ継続するパケットに対しては、バッファリングし、バッファデータ長を計算し、次ブロックに含まれるパケットと一緒に処理するための準備がされる。このような準備が行われると、図20に示したフローチャートの処理は終了される。また当該ブロックに対する処理は終了したため、図6に示したフローチャートの処理も終了され、次ブロックの処理に処理は移行される。
図6に示したフローチャートの処理の説明に戻る。
ステップS101において、当該ブロックでパケットは開始もしくは終了するかという判定において、当該ブロックでパケットは開始もせず、終了もしないとの判定がなされた場合、換言すれば、前ブロックから継続かつ次ブロックへ継続するパケットがあると判定された場合、処理は、ステップS108に進められる。
再度図3を参照するに、例えば、ブロックm+1が処理対象とされている場合、パケットn+2は、前のブロックmから継続しているパケットであり、かつ次のブロックm+2(不図示)に継続しているパケットである。よって、ブロックm+1のようなブロックが処理対象とされている場合、ステップS101においては、前ブロックから継続かつ次ブロックへ継続するパケットがあると判定され、処理は、ステップS108に進められる。
受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、ステップS101における判定には、TMCC情報に含まれるトップポインタとラストポインタを使用することができる。すなわち、トップポインタが非0xFFFFかつラストポインタが非0xFFFFでない場合、前ブロックから継続かつ次ブロックへ継続するパケットがあると判定することができる。
ステップS108において、前ブロックから継続かつ次ブロックへ継続するパケットの処理が実行される。ステップS108において実行される前ブロックから継続かつ次ブロックへ継続するパケットの処理について、図21のフローチャートを参照して説明する。
ステップS1001において、当該ブロックのデータがバッファリングされる。ステップS1002において、当該ブロックのブロック長が計算され、保存されているバッファデータ長に加算された後、得られた結果が保存される。
このように、前ブロックから継続かつ次ブロックへ継続するパケットに対しては、バッファリングし、ブロック長とバッファデータ長を加算した値を計算し、次ブロックに含まれるパケットと一緒に処理するための準備がされる。このような準備が行われると、図20に示したフローチャートの処理は終了される。また当該ブロックに対する処理は終了したため、図6に示したフローチャートの処理も終了され、次ブロックの処理に処理は移行される。
図22を参照し、ステップS108において実行される前ブロックから継続かつ次ブロックへ継続するパケットの処理(1個のパケットが複数個のブロックを跨ぐ場合の処理)について、再度説明を加える。
図22のAは、ブロック処理部17への入力(ブロック列)の一例を示す。本例では、m個のブロック(ブロック1からブロックm)が、ブロック処理部17に順次入力される。これらのブロックを跨ぐパケット(パケットn)の「データ長」パラメータに伝送誤りがあるとする。
なお、跨ぎ前後のパケットの長さは、各々l1, l2であり、それらは前述したように伝送パラメータから計算することができる。また、ブロック2からブロックm−1までのブロック長は、それぞれBS(2), …,BS(m−1)であり、受信処理部13を、非特許文献1のデジタル放送規格の信号を扱えるように構成した場合、これらの値も前述したように伝送パラメータ(スロットの主信号長、図7参照)から計算することができる。
図22のBは、図22のAを入力とした場合のブロック処理部17からの出力(パケット列)を示す。図22のBからわかるように、パケットnの「データ長」パラメータは、次式により求められる。
パケットnのパケット長PS(n)= (l1+l2+ΣBS(i)) ( i=2,…,m-1)
このような計算に基づいて算出された値に、パケットnの「データ長」パラメータは修正される。
上述したように、本技術によれば、「データ長」パラメータが誤りを含む場合でも、その「データ長」パラメータを修正することが可能となる。このようなことが可能となることで、「データ長」パラメータに誤りがあり、次パケットの先頭の正しい位置がわからず、例えば、正しくパケットを無効化することができず、処理が破綻してしまうといったようなことが発生することを防ぐことが可能となる。
<サブパケットに対する処理>
上記したブロック処理部17における処理において、サブパケットに対しても、上記した処理が実行されるようにしても良い。ここで、サブパケットについて、図23を参照して説明する。
受信処理部13がTLVパケットを扱えるように構成した場合、TLVパケットは、図23に示したような構成を有する。図23の最下段に示したように、TLVパケットは、ヘッダ部とデータ部から構成され、ヘッダ部には、「同期」パラメータ、「パケット識別子」パラメータ、および「データ長」パラメータが含まれる。
上記したブロック処理部17における処理において、「同期」パラメータとは、TLVパケットのヘッダ部に含まれるパラメータである。また、上記したブロック処理部17における処理において、「データ長」パラメータとは、TLVパケットのヘッダ部に含まれるパラメータである。これらの「同期」パラメータや、「データ長」パラメータに、誤りがあった場合、上記したような処理が実行されることで、修正される。
TLVパケットのヘッダ部に含まれる「データ長」パラメータには、TLVパケットのデータ部の長さが記載されている。データ部に含まれるパケットの種別が、ヘッダ部の「パケット識別子」のところに記載されている。
TLVパケットのデータ部には、IPv4パケット、IPv6パケット、圧縮IPパケット、ヌルパケット、その他のいずれかが含まれる。図23に示した例は、TLVパケットのデータ部に、IPv4パケットが含まれている場合である。IPv4パケットも、ヘッダ部とデータ部とから構成されている。
IPv4パケットのヘッダ部には、「バージョン」、「ヘッダ長」、「サービス種別」、「パケット長」、「識別子」、「フラグ」、「フラグメントオフセット」、「生存時間」、「プロトコル」、「ヘッダチェックサム」、「送信元アドレス」、「宛先アドレス」、「拡張情報」といったパラメータが含まれる。
IPv4パケットのヘッダ部に含まれる「パケット長」パラメータは、IPv4パケットのヘッダ部とデータ部を合わせた長さが記載されている。ブロック処理部17において、IPv4パケット(サブパケット)に対しても処理を施すようにした場合、この「パケット長」パラメータを、上記した「データ長」パラメータに該当するパラメータとして処理することができる。
IPv4パケットのデータ部には、例えば図23に示すようにUDPパケットが含まれる。UDPパケットも、ヘッダ部とデータ部とから構成されている。
UDPパケットのヘッダ部には、「送信元ポート」、「宛先ポート」、「データ長」、「チェックサム」といったパラメータが含まれる。UDPパケットのヘッダ部に含まれる「データ長」パラメータは、UDPパケットのヘッダ部とデータ部を合わせた長さが記載されている。
UDPパケットのデータ部には、例えば図23に示すようにMMTPパケットが含まれる。MMTPパケットも、ヘッダ部とデータ部とから構成されている。
MMTPパケットのヘッダ部には、「バージョン」、「パケットカウンタフラグ」、「FFCタイプ」、「拡張ヘッダフラグ」、「RAPフラグ」、「ペイロードタイプ」、「パケット識別子」、「配信タイムスタンプ」、「パケットシーケンス番号」、「オプション」といったパラメータが設けられている。
TLVパケットは、このような構成を有するため、TLVパケットにのみ上記した処理を施すようにしても良いし、TLVパケットに含まれるサブパケット、例えば、IPv4パケットに対しても以下に説明するサブパケットに対する処理が実行されるようにしても良い。
またサブパケットを、IPv4パケット、UDPパケット、MMTPパケットのいずれのパケットとしても良く、これらのパケットのうちの1つをサブパケットして、以下に説明するサブパケットに対する処理が実行されるようにしても良いし、これら全てをそれぞれサブパケットとし、以下に説明するサブパケットに対する処理が、それぞれのサブパケットに実行されるようにしても良い。
図24、図25のフローチャートを参照し、サブパケットに対する処理について説明する。なお、図24、図25を参照して説明する処理は、例えば、図8に示したフローチャートのステップS205とステップS206との間に行われる。また例えば、図11に示したフローチャートのステップS405とステップS406との間に行われる。また例えば、図16に示したフローチャートのステップS607とステップS608との間に行われる。
ステップS1101において、先頭サブパケットが処理対象のパケットとしてセットされ、処理は、ステップS1102に進められる。ステップS1102において、当該サブパケットの「同期パターン」パラメータは正しいか否かが判定される。この「同期パターン」の期待値は、デジタル放送規格に依存する。
ステップS1102において、当該サブパケットの「同期パターン」パラメータが正しいと判定された場合、ステップS1103の処理はスキップされ、ステップS1104に処理は進められる。
一方、ステップS1102において、当該サブパケットの「同期パターン」パラメータは正しくないと判定された場合、ステップS1103に処理は進められる。ステップS1103において、当該サブパケットの「同期パターン」パラメータが修正される。
なお、処理対象とされているサブパケットが、IPv4パケットやIPv6パケットなどのIPパケットである場合、「同期パターン」パラメータは、例えば、IPパケットのヘッダ部に含まれる「バージョン」パラメータ(4ビット)とすることができる。このように、サブパケットが処理される場合には、そのサブパケットに応じ、「同期パターン」パラメータに該当するパラメータが用いられて処理される。
ステップS1104において、当該サブパケットの「データ長」パラメータの修正処理が実行される。この当該サブパケットの「データ長」パラメータの修正処理は、当該サブパケットの「データ長」パラメータに誤りがあった場合、その誤りを修正し、当該サブパケットの「データ長」パラメータに誤りが無かった場合、そのまま出力する処理である。
ステップS1104において実行される、当該サブパケットの「データ長」パラメータの修正処理について、図25のフローチャートを参照して説明する。
なお、処理対象とされているサブパケットが、IPv4パケットやIPv6パケットなどのIPパケットである場合、「データ長」パラメータは、例えば、IPパケットのヘッダ部に含まれる「パケット長」パラメータ(図23)とすることができる。このように、サブパケットが処理される場合には、そのサブパケットに応じ、「データ長」パラメータに該当するパラメータが用いられて処理される。
なおここでは、「データ長」パラメータとの記載をして説明を続けるが、「パケット長」パラメータなど、処理対象とされているパケットの種別に応じたパラメータが、処理対象とされている。
図25は、ステップS1104において実行される当該サブパケットの「データ長」パラメータの修正処理について説明するためのフローチャートである。図25に示したフローチャートのステップS1201乃至S1210の各処理は、図12に示した当該パケットの「データ長」パラメータの修正処理のフローチャートのステップS501乃至S510の各処理と、基本的に同様である。
処理対象がサブパケットであるため、図12に示したフローチャートのステップS501乃至S510の各処理を、サブパケットに対して行う(図12に示したフローチャートのステップS501乃至S510の各処理のパケットをサブパケットに置き換える)ことで、図25に示したフローチャートのステップS1201乃至S1210の各処理は実行されるため、ここでは、その説明を省略する。
なお、ステップS1104における処理は、図25に示したフローチャートの処理に基づいて行われるのではなく、以下のように行われるようにしても良い。
図23を再度参照するに、TLVパケットに含まれるIPパケット(例えば、IPv4パケット)は1個である。また、TLVパケットのデータ部の長さは、IPパケットの長さに相当する(同等である)。よって、TLVパケットのデータ部の長さは、IPパケットの全長に等しいか否かを判定することで、IPパケットの「データ長」パラメータに該当する「パケット長」パラメータが正しいか否かを判定することができる。
TLVパケットのデータ部の長さは、TLVパケットのヘッダ部の「データ長」パラメータに記載されており、この値を用いることができる。また、IPパケットのパケットの長さ(全長)は、IPパケットのヘッダ部の「パケット長」パラメータに記載されており、この値を用いることができる。
TLVパケットのデータ部の長さとIPパケットの全長が等しくない場合、TLVパケットのデータ部の長さを、IPパケットの全長とし、IPパケットのヘッダ部の「パケット長」パラメータの値が修正されるようにしても良い。
図24に示したフローチャートの処理の説明に戻る。
ステップS1105において、次サブパケットがあるか否かが判定される。例えば、IPv4パケットが処理されている場合、UDPパケットがサブパケットとしてあるため、このような場合には、次サブパケットがあると判定される。
なお、UDPパケット以下は、処理しないと設定することも可能であり、換言すれば、どのサブパケットまで処理するかは、事前に設定しておくことも可能である。処理しないと設定されているサブパケットの場合には、サブパケットとして存在していても、ステップS1105においては、次サブパケットはないとして処理される。
ステップS1105において、次サブパケットがあると判定された場合、ステップS1106に処理が進められ、次サブパケットが、新たな処理対象のサブパケットにセットされ、処理は、ステップS1102に戻され、それ以降の処理が繰り返される。
一方で、ステップS1105において、次サブパケットはないと判定された場合、図24に示したサブパケットに対する処理は終了される。
このように、サブパケットに対しても、誤ったパラメータを修正するようにすることで、例えば「データ長」パラメータが正しくなく、次パケットの先頭の正しい位置がわからず、例えば、正しくパケットを無効化することができず、処理が破綻してしまうといったようなことが発生することを防ぐことが可能となる。
上述した説明は、図23に示したような、例えば、TLVパケットのデータ部にサブパケットとしてのIPv4パケットが含まれ、そのIPv4パケットのデータ部にサブパケットとしてのUDPパケットが含まれといったような、サブパケットが入れ子状態になっているパケット構造を例に挙げて説明した。この例の場合、パケット内に、1個のサブパケットが含まれている。
本技術は、図26に示すような構造のサブパケットに対しても適用できる。図26に示したサブパケットの例は、パケット内に複数のサブパケットが含まれている場合の1例である。
図26において、パケットnは、そのデータ部に、5個のサブパケット(サブパケット1からサブパケット5)を含んでいる。ここで、全てのサブパケットは、当該データ部内で完結(当該データ部で開始かつ終了)している。また、ここで、パケットnは、例えば、TLVパケットであり、サブパケット1からサブパケット5は、それぞれが、例えば、IPv4パケットである。
このようなパケットを扱う場合においても、ブロック処理部17(図4)は、前述したパケット中に1個のサブパケットを含む場合と同様、図24および図25に示したフローチャートに従って処理を行うことで、サブパケットを処理することができる。
図24に示したフローチャートのステップS1101乃至S1104およびステップS1106の各処理は、前述の説明と基本的に同様であるため、ここではその説明を省略する。
ステップS1105において、次サブパケットがあるか否かが判定される。例えば、処理対象とされているサブパケット(当該サブパケット)が、サブパケット1である場合、サブパケット2があるため、ステップS1105においては、次サブパケットがあると判定され、ステップS1106に処理が進められる。
当該サブパケットがサブパケット2乃至4のいずれかである場合も同様に、各々サブパケット3乃至5が次パケットとしてあるため、ステップS1105においては、次サブパケットがあると判定され、ステップS1106に処理が進められる。
一方、当該サブパケットがサブパケット5である場合、ステップS1105においては、次サブパケットがないと判定され、図24に示したサブパケットに対する処理は終了される。
図25に示したフローチャートのステップS1201乃至S1210の各処理は、前述の説明と基本的に同様であるため、ここではその説明を省略する。
このように、パケット中にサブパケットが複数個ある場合でも、各サブパケットに対して、誤ったパラメータを修正することで、例えば「データ長」パラメータが正しくなく、次パケットの先頭の正しい位置がわからず、例えば、正しくパケットを無効化することができず、処理が破たんしてしまうといったようなことが発生することを防ぐことが可能となる。
<パケット処理部での処理>
次に、パケット処理部18、特にパケット処理部18に含まれるパケット書き換え部33(図5)の処理について説明を加える。図27のフローチャートを参照し、パケット書き換え部33の処理について説明する。
ステップS1301において、処理対象とされているパケットは誤り訂正がNGのブロックに含まれているか否かが判定される。ステップS1301において、当該パケットは、誤り訂正がNGのブロックに含まれていると判定された場合、処理は、ステップS1302に進められる。
ステップS1302において、伝送エラー率は所定のしきい値を超えているか否かが判定される。伝送エラー率は、受信状態を示す情報であり、例えば、信号雑音比(SNR: Signal-noise ratio)、変調誤差比(MER: Modulation Error Rate)などを示す。また伝送エラー率は、復調処理情報に含まれ、復調処理情報は、復調処理部15(図1)から、パケット処理部18に供給される情報である。
また伝送エラー率は、例えば、ビット誤り率(BER: Bit Error Rate)、前方誤り訂正率(FER: FEC(Forward Error Correction)block Error Rate)などであっても良い。この場合、伝送エラー率は、誤り訂正処理情報に含まれ、誤り訂正処理情報は、誤り訂正処理部16(図1)からパケット処理部18に供給される。
ステップS1302において、伝送エラー率は、所定のしきい値を超えていないと判定された場合、ステップS1303に処理は進められる。ステップS1303において、復号エラー率は、所定のしきい値を超えているか否かが判定される。
復号エラー率は、映像や音声の復号処理における単位時間当たりの復号エラー回数を示す。復号エラー率は、例えばデコーダなどの外部の後段処理装置2から供給される情報である。
なお、復号エラー率といった情報が、後段処理装置2から得られない場合、ステップS1303の処理は省略しても良い。
ステップS1303において、復号エラー率は、所定のしきい値を超えていないと判定された場合、ステップS1304に、処理は進められる。ステップS1304において、「パケット識別子」パラメータは、所定の値であるか否かが判定される。
「パケット識別子」は、例えば、TLVパケットの「パケット識別(packet_type)」パラメータ(8ビット)とすることができる。この「パケット識別」パラメータは、当該TLVパケット内のデータ部に格納されるデータを識別するためのパラメータである。
また例えば、「パケット識別子」は、TLVパケットが含むサブパケットのパラメータ、例えば、IP(Internet Protocol)パケットの「送信元アドレス(source_address)」パラメータ(32ビット/IPv4、128ビット/IPv6)および「宛先アドレス(destination_address)」パラメータ(同様)とすることができる。これらのパラメータは、当該IPパケットの送信元アドレスおよび宛先アドレスを示すパラメータである。
また例えば、「パケット識別子」は、TLVパケットが含むサブパケットのパラメータ、例えば、UDP(User Datagram Protocol)パケットの「送信元ポート(source_port)」パラメータ(16ビット)および「宛先ポート(destination_port)」パラメータ(同様)とすることができる。これらのパラメータは、当該UDPパケットの送信元ポートおよび宛先ポートを示すパラメータである。
また例えば、「パケット識別子」は、TLVパケットが含むサブパケットのパラメータ、例えば、MMTP(MPEG Media Transport Protocol)パケットの「パケット識別子(packet_id)」パラメータ(16ビット)とすることができる。これらのパラメータは、当該MMTPパケット内のデータ部に格納されるデータを識別するパラメータである。このデータ部に格納されるデータは、映像、音声、字幕、文字スーパー、制御情報、その他に係わるデータである。
また例えば、「パケット識別子」は、上記したパラメータの2つ以上の組み合わせとすることができる。
どの「パケット識別子」を用いるかは、パケット書き換え部33が処理するパケットの種別に応じて設定される。
ステップS1304において、「パケット識別子」パラメータは、所定の値であると判定され場合、ステップS1305に、処理は進められる。ステップS1305には、ステップS1301において、当該パケットは、誤り訂正がNGのブロックに含まれていないと判定された場合も来る。
ステップS1305に処理が来るのは、誤り訂正がNGのブロックには含まれていないパケットか、伝送エラー率や復号エラー率が、所定のしきい値以下である場合、換言すれば、問題無い範囲内で伝送エラー率や復号エラー率が収まっている場合、および「パケット識別子」パラメータが所定の値である場合である。これらの場合、パケットは正常なパケットであると判定できる。
このような正常なパケットは、ステップS1305において、有効パケットとして、後段処理装置2(図1)に出力される。
一方、ステップS1302において、伝送エラー率は、所定のしきい値を超えていると判定された場合、ステップS1303において、復号エラー率は、所定のしきい値を超えていると判定された場合、またはステップS1304において、「パケット識別子」パラメータは、所定の値ではないと判定された場合、ステップS1306に処理は進められる。
ステップS1306に処理が来るのは、パケットは正常ではないと判定された場合である。よって、ステップS1306において、当該パケットは無効化されて、後段処理装置2に出力される。
このように、処理対象とされているパケットが、誤り訂正NGのブロックに含まれていても、例えば、伝送エラー率などに問題が無ければ、有効パケットして後段の処理において処理できるように出力される。
従来、誤り訂正NGのブロックに含まれていたパケットは、誤りを含まないパケットであっても、無効化されていた。しかしながら、本技術によれば、上記したように、誤り訂正NGのブロックに含まれていても、誤りを含まないパケットであれば、無効化されずに処理される。
ここで、図28を参照して、再度パケット処理部18の処理について説明を加える。図28のAは、パケット処理部18への入力(パケット列)の一例を示す。本例では、6個のパケット(パケット1からパケット6)がパケット処理部18に入力される。ここで、パケット1とパケット4の「パケット識別子」はA、パケット2とパケット5の「パケット識別子」はB、パケット3とパケット6の「パケット識別子」はCであるとする。
図28のB乃至Dは、図28のAのパケット列を入力した場合のパケット処理部18からの出力(パケット列)を示す。図28のB乃至D中、斜線を付したパケットは、無効パケットを表し、斜線を付していないパケットは、有効パケットを表す。
図28のBは、当該パケット列を含むブロックが誤り訂正OKである場合の出力である。ブロックが誤り訂正OKである、すなわち、正常なブロックであるため、図28のBに示すように、全てのパケットは、そのまま、有効パケットとして出力される。
図28のCは、当該パケット列を含むブロックが誤り訂正NGであり、伝送エラー率および復号エラー率が、パケット3までは各々しきい値以下であり、パケット4以降でいずれかのエラー率が、そのしきい値を超えた場合の出力を示している。
このような場合、図28のCに示したように、パケット1からパケット3は、そのまま(有効パケットとして)出力されるのに対して、パケット4からパケット6は無効化されて出力される。なお、本例においては、「パケット識別子」としてA,B,Cの全ての値を指定している場合を例示している。
図28のDは、当該パケット列を含むブロックが誤り訂正NGであり、伝送エラー率および復号エラー率が、全てのパケットにおいて各々しきい値以下であり、「パケット識別子」としてA,Bを指定している場合の出力を示している。
このような場合、図28のDに示したように、パケット1, 2, 4, 5は、そのまま、有効パケットとして出力されるのに対して、パケット3, 6は、「パケット識別子」が所定の値(この場合、AまたはBではない)ため、無効化されて出力される。
なお、図示しないが、当該パケット列を含むブロックが誤り訂正NGであった場合、従来は、パケット1乃至6の全てが無効化されて出力されていた。図28のCや図28のDに示したように、本技術によれば、誤り訂正NGのブロックに含まれていても、誤りを含まないパケットであれば、無効化されず、有効パケットとして出力される。
よって、受信されたブロックが、誤り訂正NGの場合でも、従来と比較して、より多くの正常なパケットを後段に渡すことが可能になる。その結果、受信側、例えば、デコーダなどの後段処理装置2(図1)において、より多くのデータを処理、例えば、復号再生、記録、再配信などの処理を行うことが可能となる。
具体的な効果として、例えば、デジタルテレビジョン受信機において、受信ブロック中に映像パケットのみに誤りがある場合、従来では、映像も音声も再生されないが、本技術を適用することで、映像は静止表示(フリーズ)して、音声は通常再生するといったような処理を行うことが可能となる。また、反対に、受信ブロック中に音声パケットのみに誤りがある場合、音声は消音(ミュート)して、映像は通常通り再生するといったような処理を行うことも可能となる。
上述した実施の形態においては、ブロック処理部17において、「データ長」パラメータなどのパラメータが修正(変更)する処理が実行され、パケット処理部18において、パケットの書き換え(無効化を有効化する)を行う処理が実行されるとして説明した。
ブロック処理部17におけるパラメータの修正処理と、パケット処理部18におけるパケットの書き換え処理は、それぞれ独立した処理として行うことができる。換言すれば、パラメータの修正をしなければ、パケットの書き換えが行えないといった処理関係ではない。よって、それぞれ独立して行うことが可能である。
上記した例では、パラメータの修正とパケットの書き換えの両方を行う受信処理部13を例に挙げて説明した。パラメータの修正のみを行い、パケットの書き換えを行わない、換言すれば、ブロック処理部17においては、上述した処理を実行するが、パケット処理部18は、一般的なパケット処理を行い、上述したパケットの書き換えは行わないように、受信処理部13を構成することも可能である。
また、パラメータの修正は行わず、パケットの書き換えは行う、換言すれば、ブロック処理部17においては、上述した処理を実行せず、一般的なブロックに対する処理を実行し、パケット処理部18は、上述した処理を行うように、受信処理部13を構成することも可能である。
<受信処理部の他の構成>
上述したように、本技術を適用した受信処理部13においては、例えば、「データ長」パラメータに誤りが生じていても、修正して出力することができる。例えば、「データ長」パラメータが正しくなければ、次のパケットの先頭の正しい位置がわからないが、本技術によれば、「データ長」パラメータが正しく修正されるため、次のパケットの先頭の正しい位置もわかるようになる。
次パケットの先頭の位置がわかることで、例えば、パケットの同期信号も正確な信号として生成することが可能となる。そこで、図29に、パケット同期信号などの信号を生成し、出力する構成を有する受信装置101の構成を示す。なお、図1に示した受信装置11と同様の部分には、同様の符号を付し、その説明は適宜省略する。
図29に示した受信装置101は、受信処理部102を含む構成とされている。受信処理部102は、図1に示した受信処理部13に、出力インタフェース部103を追加した構成とされている。その他の部分は、図1に示した受信処理部13と同様の構成とされている。
受信処理部102のパケット処理部18は、復調処理部15から供給される復調処理情報(伝送エラー率)、誤り訂正処理部16から供給される誤り訂正処理情報(伝送エラー率)、ブロック処理部17から供給されるブロック処理情報(パケット単位の誤り訂正処理結果)、ならびに外部の後段処理装置2(例えば、デコーダ)から供給される後段処理情報(例えば、復号エラー率)に基づいて、ブロック処理部17から供給されるパケットに対して処理を施し、出力インタフェース部103に供給する。
出力インタフェース部103は、パケット処理部18(に含まれるパケット書き換え部33(図5))から供給されるパケットの出力信号(パケット出力信号)を生成し、外部の後段処理装置2(例えば、デコーダ)に出力する。「パケット出力信号」は、例えば、伝送クロック信号、パケットデータ信号、パケット同期信号から構成される。
<出力インタフェース部の構成>
図30は、出力インタフェース部103の構成を示すブロック図である。出力インタフェース部103は、基準クロック生成部111、伝送クロック生成部112、パケット同期信号生成部113、フリップフロップ114、フリップフロップ115から構成される。
基準クロック生成部111は、伝送クロックの基準となる、所定の周波数のクロック信号(基準クロック信号)を生成し、伝送クロック生成部112に供給する。
伝送クロック生成部112は、基準クロック生成部111から供給された基準クロック信号に基づいて伝送クロック信号を生成し、同信号を外部、例えば、後段処理装置2に出力するとともに、フリップフロップ114とフリップフロップ115にも供給する。
パケット同期信号生成部113は、パケット処理部18(図29)(パケット書き換え部33(図5))から供給されるパケット列を入力として、各パケットに対応するパケット同期信号(パルス)を生成し、フリップフロップ115に供給する。この「パケット同期信号」は、本信号を受信した側の装置で、パケットの境界(例えば、パケットの先頭位置)を特定できる信号である。
フリップフロップ114は、伝送クロック生成部112から供給される伝送クロック信号の立ち上がりのタイミングで動作するフリップフロップであり、パケット処理部18(パケット書き換え部33(図5))から供給されるパケットを受信し、パケットデータ信号を外部へ送信する。
フリップフロップ115は、伝送クロック生成部112から供給される伝送クロック信号の立ち上がりのタイミングで動作するフリップフロップであり、パケット同期信号生成部113から供給されるパケット同期信号を受信し、外部へ送信する。
図30に示した出力インタフェース部103の動作について、図31に示した信号波形を参照しながら説明する。出力インタフェース部103は、パケットを入力として、パケット出力信号を生成し、外部に出力する。パケット出力信号は、伝送クロック信号、パケットデータ信号、およびパケット同期信号から構成されている。
図31のAは、伝送クロック信号の出力例を示している。図31のBは、パケットデータ信号(信号幅8ビット)の出力例を示している。図31のBからわかるように、パケットデータ信号は、伝送クロック信号(図31のA)に同期して、8ビットずつ出力される。
例えば、パケットnの場合、D1,D2,D3,・・・であり、パケットn+1の場合、E1,E2,E3・・・である。これにより、当該信号を受信した装置(例えば、後段処理装置2)は、伝送クロック信号の立ち上がりのタイミングで当該信号を受信することができる。
図31のCは、パケット同期信号(信号幅1ビット)の出力例を示している。図31のCからわかるように、パケット同期信号は、パケットデータ信号(図31のB)の先頭バイトの位置においてアサート(図31においては正論理)される。
例えば、パケットnの場合、D1の位置でアサートされ、パケットn+1の場合、E1の位置でアサートされる。パケット同期信号も、パケットデータ信号と同様、伝送クロック信号(図31のA)に同期している。これにより、当該信号の受信装置(例えば、後段処理装置2)は、伝送クロックの立ち上がりのタイミングで当該信号を受信することができ、同じタイミングで受信したパケットデータ信号(本例では、信号幅8ビット)が、パケットの先頭バイトであることを知ることができる。
なおここでは、パケットデータ信号の信号幅は、上記の例では、8ビットとしたが、それ以外のビット幅、例えば、1ビットなどでも、本技術を適用できる。
パケット同期信号のアサート位置は、上記の例では、パケットデータ信号の先頭バイトの位置でアサートされるが、パケットデータ信号の信号幅に応じて、適宜アサートの位置を変更することもできる。例えば、パケットデータ信号の信号幅が1ビットである場合、パケットデータ信号の先頭ビットの位置でアサートするように構成することも可能である。
このように、本技術によれば、各パケットの境界を特定できるパケット同期信号を生成する構成とすることができる。また、そのような信号をパケットデータ信号と同期して出力するインタフェース部として設けることができる。
<システム構成について>
上述した受信装置11を含むシステムについて図32を参照して説明する。なお、ここでは、受信装置11を例に挙げて説明するが、受信装置101(図29)であっても良い。
図32のAは、受信装置11を、放送された多重化ストリームを復号して再生する復号再生システムに応用した場合の構成例を示している。図32のAに示した復号再生システムは、後段処理装置2としてデコーダ部201が接続され、デコーダ部201には、さらに再生部202が接続されている。
図32のAに示した復号再生システムでは、受信装置11から出力されるパケットから構成される多重化ストリームが、デコーダ部201に供給され、その結果得られる復号済みの信号が、再生部202に供給され再生される。ここで、デコーダ部201は、例えば、MPEG(Moving Picture Experts Group)などの映像デコーダや音声デコーダなどからなる。また、再生部202は、例えば、ディスプレイ、スピーカなどからなる。なお、この復号再生システムでは、デコーダ部201で得られたエラー情報が、受信装置11にフィードバックされる。
ここでは、受信装置11、デコード部201、再生部202をそれぞれ別体として説明したが、一体化された装置であっても良い。
図32のBは、受信装置11を、放送された多重化ストリームを記録媒体に記録する記録システムに応用した場合の構成例を示している。図32のBに示した記録システムは、後段処理装置2として、記録フォーマット生成部211が、受信装置11に接続されている。
図32のBに示した記録システムでは、受信装置11から出力されるパケットから構成される多重化ストリームが、記録フォーマット生成部211供給され、その結果得られた記録フォーマットが、記録部212に供給され、記録媒体213に記録される。この記録媒体213は、例えば、DVD(Digital Versatile Disc)、Blu-ray(登録商標) Disc、ハードディスクドライブ、フラッシュメモリなどからなる。なお、この記録システムでは、記録フォーマット生成部211で得られたエラー情報が受信装置11にフィードバックされる。
ここでは、受信装置11、記録フォーマット生成部211、記録部212をそれぞれ別体として説明したが、一体化された装置であっても良い。
図32のCは、受信装置11を、放送された多重化ストリームをネットワークに配信する配信システムに応用した場合の構成例を示している。この配信システムでは、受信装置11から出力されるパケットから構成される多重化ストリームが、配信フォーマット生成部221に供給されてネットワーク配信に適したフォーマット(例えば、RTP(Real-time Transport Protocol)等)に変換された後にネットワークA配信部222に供給され、ネットワークA223経由で配信される。
デコーダ部225は、ネットワークA受信部224経由で配信フォーマットを受信する。その結果得られる復号済みの信号が、再生部226に供給され再生される。なお、本システムでは、配信フォーマット生成部221で得られたエラー情報Aが受信装置11にフィードバックされるようにしても良い。
また、デコーダ部225からのエラー情報Bが、ネットワークB配信部227、ネットワークB228、およびネットワークB受信部229を経由して受信装置11にフィードバックされるようにしても良い。ここで、ネットワークAとネットワークBは、同一のネットワークであっても良いし、異なるネットワークであっても良い。
ここでは、受信装置11、配信フォーマット生成部221、ネットワークA配信部222、ネットワークB受信部229をそれぞれ別体として説明したが、一体化された装置であっても良い。
このように、本技術を適用した受信装置11(受信装置101)を、復号再生システム、記録システム、配信システムなどをシステムの一部を構成する装置とすることができる。
<記録媒体について>
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図33は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303は、バス304により相互に接続されている。バス304には、さらに、入出力インタフェース305が接続されている。入出力インタフェース305には、入力部306、出力部307、記憶部308、通信部309、及びドライブ310が接続されている。
入力部306は、キーボード、マウス、マイクロフォンなどよりなる。出力部307は、ディスプレイ、スピーカなどよりなる。記憶部308は、ハードディスクや不揮発性のメモリなどよりなる。通信部309は、ネットワークインタフェースなどよりなる。ドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア311を駆動する。
以上のように構成されるコンピュータでは、CPU301が、例えば、記憶部308に記憶されているプログラムを、入出力インタフェース305及びバス304を介して、RAM303にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU301)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア311に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア311をドライブ310に装着することにより、入出力インタフェース305を介して、記憶部308にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部309で受信し、記憶部308にインストールすることができる。その他、プログラムは、ROM302や記憶部308に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
また本発明の実施の形態は、上述した放送規格に限定されるものではなく、本発明の要旨を逸脱しない範囲において、その他の種類のデジタル放送規格に適用することが可能である。
なお、本技術は以下のような構成も取ることができる。
(1)
ブロックが連なって構成される多重化ストリームの前記ブロックに付帯する伝送パラメータからブロック長を特定するブロック情報取得部と、
前記ブロックを解析してパケットパラメータを取得するパケット情報取得部と、
前記ブロックを解析して特定パターン位置情報を取得するパターン情報取得部と、
前記ブロック長、前記パケットパラメータ、および前記特定パターン位置情報に基づいて、前記ブロックに含まれるパケットの境界を特定するパケット分割部と
を備える信号処理装置。
(2)
前記パケット分割部は、前記パケットの所定のパラメータの誤りを検出し、修正する
前記(1)に記載の信号処理装置。
(3)
前記パケットパラメータは、前記パケットの同期パターンに関するパラメータである
前記(1)または(2)に記載の信号処理装置。
(4)
前記パケットパラメータは、前記パケットのデータ長に関するパラメータである
前記(1)乃至(3)のいずれかに記載の信号処理装置。
(5)
前記特定パターン位置情報は、所定の規格によって定められている値の位置情報である
前記(1)乃至(4)のいずれかに記載の信号処理装置。
(6)
前記パケットを解析して得られた前記パケットに含まれるサブパケットのパラメータと、パケット内部特定パターン位置情報に基づいて、前記サブパケットの境界をさらに特定する
前記(1)乃至(5)のいずれかに記載の信号処理装置。
(7)
前記サブパケットの所定のパラメータの誤りを検出し、修正する
前記(6)に記載の信号処理装置。
(8)
前記サブパケットのパラメータは、前記サブパケットの同期パターンに関するパラメータである
前記(6)または(7)に記載の信号処理装置。
(9)
前記サブパケットのパラメータは、前記サブパケットのデータ長に関するパラメータである
前記(6)乃至(8)のいずれかに記載の信号処理装置。
(10)
前記パケット内部特定パターン位置情報は、所定の規格によって定められている値の位置情報である
前記(6)乃至(9)のいずれかに記載の信号処理装置。
(11)
前記パケットはTLVパケットであり、前記ブロックはスロットの主信号であり、前記伝送パラメータは、TMCC情報である
前記(1)乃至(10)のいずれかに記載の信号処理装置。
(12)
ブロックが連なって構成される多重化ストリームの前記ブロックに付帯する伝送パラメータからブロック長を特定し、
前記ブロックを解析してパケットパラメータを取得し、
前記ブロックを解析して特定パターン位置情報を取得し、
前記ブロック長、前記パケットパラメータ、および前記特定パターン位置情報に基づいて、前記ブロックに含まれるパケットの境界を特定する
ステップを含む信号処理方法。
(13)
パケットが連なって構成される多重化ストリームのパケットを解析して前記パケットのパラメータを取得するパケット情報取得部と、
前記パケット情報取得部で取得された前記パラメータを用いて、前記パケットの内容を書き換えるパケット書き換え部と
を備える信号処理装置。
(14)
前記パケット書き換え部は、受信状況に基づいて前記パケットを無効化する
前記(13)に記載の信号処理装置。
(15)
前記パケット書き換え部は、後段の処理状況に基づいて前記パケットを無効化する
前記(13)または(14)に記載の信号処理装置。
(16)
前記パケット書き換え部は、前記パケットのパラメータに基づいて前記パケットを無効化する
前記(13)乃至(15)のいずれかに記載の信号処理装置。
(17)
前記パケットのパラメータは、前記パケットのパケット識別子に関するパラメータである
前記(13)乃至(16)のいずれかに記載の信号処理装置。
(18)
前記パケットは、TLVパケットである
前記(13)乃至(17)のいずれかに記載の信号処理装置。
(19)
前記パケット書き換え部からの出力を入力として、各パケットの境界を特定できるパケット同期信号を生成し、前記パケット同期信号をパケットデータ信号と同期して出力する出力インタフェース部をさらに備える
前記(13)乃至(18)のいずれかに記載の信号処理装置。
(20)
パケットが連なって構成される多重化ストリームのパケットを解析して前記パケットのパラメータを取得し、
取得された前記パラメータを用いて、前記パケットの内容を書き換える
ステップを含む信号処理方法。