(57)【要約】【課題】パケット抜けなく同期データの有無の検出を行うことができる同期データ検出装置を提供する。【解決手段】同期バイト検出部５は、所定の同期データを含むTSデータを記憶するメモリからTSデータを所定の単位で順次読み込み、所定の同期バイトを検出する０ｘ４７検出器２２と、０ｘ４７検出器２２において所定の同期バイトを検出した回数をカウントするカウンタ２５と、０ｘ４７検出器２２が、最初の所定の同期バイトを検出した後、所定の周期でTSデータを読み込ませ、０ｘ４７検出器２２が所定の周期で所定の同期バイトを連続して所定の回数検出しない場合は、０ｘ４７検出器２２に対して、最初の所定の同期バイトの次のTSデータから順番に読み込ませる判定指示部２４とを有する。【選択図】図５
2011188310.tif 000002
【特許請求の範囲】
【請求項１】
所定の同期データを含むトランスポートストリームデータを記憶するメモリから前記トランスポートストリームデータを順次読み込み、前記所定の同期データを検出する検出部と、
前記検出部が前記所定の同期データを検出した回数をカウントする検出回数カウント部と、
前記検出部が、最初の所定の同期データを検出した後、前記検出部に、所定の周期で前記トランスポートストリームデータを読み込ませ、前記検出部が前記所定の周期で前記所定の同期データを連続して所定回数検出しない場合には、前記トランスポートストリームデータの前記最初の所定の同期データの次のデータから前記検出部に読み込ませる制御部と、
を備えることを特徴とする同期データ検出装置。
【請求項２】
前記制御部は、前記最初の所定の同期データの前記メモリのアドレスを保持するアドレス保持部をさらに有し、
前記制御部は、前記検出部が前記所定の周期で前記所定の同期データを連続して所定回数検出しない場合には、前記アドレス保持部に保持されたアドレスに基づいて、前記最初の所定の同期データの次のアドレスのデータから前記検出部に読み込ませることを特徴とする請求項１に記載の同期データ検出装置。
【請求項３】
前記制御部は、前記検出部が前記所定の周期で前記所定の同期データを連続して所定回数検出した後に、前記所定の同期データが検出されない場合は、前記トランスポートストリームデータの前記検出部が最後に検出した所定の同期データの次のデータから前記検出部に読み込ませることを特徴とする請求項１または２に記載の同期データ検出装置。
【請求項４】
所定の同期データを含むトランスポートストリームデータを記憶するメモリから前記トランスポートストリームデータを順次読み込み、前記所定の同期データを検出し、
前記所定の同期データを検出した回数をカウントし、
最初の所定の同期データを検出した後、所定の周期で前記トランスポートストリームデータを読み込み、前記所定の周期で前記所定の同期データを連続して所定回数検出しない場合には、前記トランスポートストリームデータの前記最初の所定の同期データの次のデータから読み込む、
ことを備えることを特徴とする同期データ検出方法。
【請求項５】
所定の同期データを含むトランスポートストリームデータから前記所定の同期データを検出するプログラムであって、コンピュータを、
所定の同期データを含むトランスポートストリームデータを記憶するメモリから前記トランスポートストリームデータを順次読み込ませ、前記所定の同期データを検出させる手段と、
前記所定の同期データを検出した回数をカウントさせる手段と、
最初の所定の同期データを検出した後、所定の周期で前記トランスポートストリームデータを読み込み、前記所定の周期で前記所定の同期データを連続して所定回数検出しない場合には、前記トランスポートストリームデータの前記最初の所定の同期データの次のデータから読み込ませる手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期データ検出装置、同期データ検出方法及びプログラムに関し、特に、複数のパケットからなるトランスポートデータに含まれる所定の同期データの有無を検出する同期データ検出装置、同期データ検出方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、デジタル放送受信機において受信されるコンテンツデータは、複数のパケットに分けて送信される。例えば、MPEG2（Moving Picture Expert Group 2）規格に準拠するトランスポートストリーム（以下、TSと略す場合がある）は、各パケットが188バイト長である複数のパケットから構成されている。そして、188バイト毎に同期バイトが、具体的には「0x47」のビット列が、各パケットのヘッダ部に含まれる。デジタル放送受信機は、その同期バイトを検出することによって、各パケットを特定して、データの復号化処理を行うことができるように構成されている。
【０００３】
例えば、MPEG2のTSの場合は、「0x47」（16進数）のバイトが、同期データとして規定されている。従って、デジタル放送受信機においては、受信したTSデータ中に、「0x47」のデータが、188バイト毎に所定の回数以上現れたことが確認された後に、TSデータの復号化処理を行うようになっている（例えば、特許文献１参照）。  
しかし、「0x47」のデータが188バイト毎に、所定の回数、検出されたか否かを判定するので、MPEG2のTSにおける同期バイトである「0x47」とたまたま同じビット列のバイトデータが、TSデータ中に含まれていれば、同期バイトが検出されたと誤判定される場合がある。
【０００４】
上述したような従来の方法では、TSデータの先頭からバイトデータを順番に読み出して、「0x47」のビット列と一致するか否かが判定される。そして、あるバイトが「0x47」のビット列であると、そのバイトのアドレスの位置から、188バイトだけ先のアドレスの位置にも「0x47」のビット列があるか否かが判定される。すなわち、188バイト毎に「0x47」のバイトが所定の回数現れなければ、同期バイト検出回路は、その検出処理の対象となったTSデータ中には同期バイトがなかったと判定することになる。
【０００５】
そのため、あるバイトが「0x47」のビット列と誤判定された場合は、たとえ、そのバイトとそのバイトから188バイト先のバイトとの間に、正しい同期バイトがあったとしても、その正しい同期バイトのデータは、飛ばされてすなわち無視されて、同期バイトの判定には使用されない。
【０００６】
その後に、同期バイト検出回路は、同期バイトの検出を再度開始するが、前に判定に使用されたTSデータは、検出処理の対象とならない。すなわち、前に判定に使用したTSデータ中に、正しい同期バイトを含むパケットがあっても、そのパケットは、廃棄されていた。  
上述したコンテンツデータは、放送されたデータであるが、記憶媒体に記録されたコンテンツデータ、インターネット等を介して配信されたデータでも、同様に、同期バイト検出回路は、たとえ、先に判定で使用した188バイト毎のバイト間に正しい同期バイトを含むパケットがあっても、そのパケットは、廃棄されていた。
【０００７】
以上のように、従来は、同期バイト検出のための判定に使用したTSデータ中に正しい同期バイトを含むパケットがあっても、そのパケットはその後の同期バイトの検出処理に使用されていなかった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１１−７３７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、上述した問題に鑑みてなされたもので、パケット抜けなく同期データの有無の検出を行うことができる同期データ検出装置、同期データ検出方法及びそのためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、所定の同期データを含むトランスポートストリームデータを記憶するメモリから前記トランスポートストリームデータを順次読み込み、前記所定の同期データを検出する検出部と、前記検出部が前記所定の同期データを検出した回数をカウントする検出回数カウント部と、前記検出部が、最初の所定の同期データを検出した後、前記検出部に、所定の周期で前記トランスポートストリームデータを読み込ませ、前記検出部が前記所定の周期で前記所定の同期データを連続して所定回数検出しない場合には、前記トランスポートストリームデータの前記最初の所定の同期データの次のデータから前記検出部に読み込ませる制御部と、を有する同期データ検出装置を提供することができる。
【発明の効果】
【００１１】
本発明によれば、パケット抜けなく同期データの有無の検出を行うことができる同期データ検出装置、同期データ検出方法及びそのためのプログラムを実現することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態に係わるデジタル放送受信機の構成を示す構成図である。
【図２】本実施の形態に係わる、同期バイト検出部５が同期バイト検出動作を開始した場合の処理を説明するための図である。
【図３】本実施の形態に係わる、同期バイト検出部５において同期バイト検出のためにTSデータが格納されるメモリのメモリマップを示す図である。
【図４】本実施の形態に係わる、正しい同期バイトが検出されなくなったときの同期バイト検出部５の処理を説明するための図である。
【図５】本実施の形態に係わる同期バイト検出部５の構成を示すブロック図である。
【図６】本実施の形態に係わる同期バイト検出処理の流れの例を示すフローチャートである。
【図７】本実施の形態に係わるメモリ１２のメモリマップを示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。  
まず図１に基づき、本実施の形態に係わるデジタル放送受信機の構成を説明する。図１は、本実施の形態に係わるデジタル放送受信機の構成を示す構成図である。  
図１に示すデジタル放送受信機１は、テレビジョン受像機であり、アンテナ２と、チューナ３と、復調器４と、同期バイト検出部５と、システムデコーダ６と、ホストプロセッサ７と、再生同期制御部８と、ビデオデコーダ９と、オーディオデコーダ１０と、データバス１１と、メモリ１２と、バック・エンド・プロセッサ(以下、BEPという)１３と、表示部１４と、スピーカ１５とを備えている。
【００１４】
同期バイト検出部５と、システムデコーダ６と、ホストプロセッサ７と、ビデオデコーダ９と、オーディオデコーダ１０と、データバス１１により、MPEGデコーダ１６が構成される。なお、同期データ検出装置としての同期バイト検出部５は、MPEGデコーダ１６に含まれず、MPEGデコーダ１６の入力段に設けられてもよい。
【００１５】
図１に示すように、放送波のストリームデータがアンテナ２を介してチューナ３に入力される。チューナ３は、入力された無線周波数の信号をベースバンド信号に変換して復調器４に出力する。復調器４は、入力されたベースバンド信号を復調処理してTSデータを復元し、同期バイト検出部５に出力する。同期バイト検出部５は、パケットを特定して、TSデータをシステムデコーダ６に出力する。復調器４による復調処理には、例えば、アナログ信号からデジタル信号への変換、受信信号が多重変調されている場合は多重復調、その他誤り訂正処理等の少なくともいずれかが含まれる。なお、ここでは、１つのチューナのみを示しているが、複数のチューナが搭載されていてもよい。複数のチューナの場合、復調器４と同期バイト検出部５もチューナの数にあわせて必要となるが、１つで２つ以上のベースバンド信号に対応できるマルチ復調器を用いてもよい。  
システムデコーダ６は、予めホストプロセッサ７から設定されているフィルタ条件を満たす、例えば、設定されているパケット識別子（PID）を有しているTSパケットを選別し、必要なデータ（情報）をその中から抽出し、予めホストプロセッサ７から設定されているメモリ１２内のバッファにデータバス１１を経由して出力する（或いは、書き込む）。バッファは、DRAM等のメモリ１２内にバッファ領域として設定される。システムデコーダ６によって映像データと音声データとに選別される。
【００１６】
映像データは、メモリ１２内のビデオ向けSTDバッファに、音声データはメモリ１２内のオーディオ向けSTDバッファに、それぞれ出力される。そして、システムデコーダ６にて選別された映像及び音声データはそれぞれ、メモリ１２に設けられた専用のバッファを介して、ビデオデコーダ９、オーディオデコーダ１０に供給される。  
ビデオデコーダ９は、メモリ１２から供給された（或いは読み込んだ）ビデオデータを再生同期制御部８から供給される垂直同期信号(以下、VSYNCという)に合わせてデコードし、その結果得られる映像情報をＢＥＰ１３に出力する。BEP１３は、この映像情報に色補正などの各種画像処理を施して表示部１４にて表示させる。なお、表示部１４は、例えば、液晶ディスプレイ（LCD：Liquid Crystal Display）、プラズマディスプレイ（PDP：Plasma Display Panel）、ブラウン管（CRT：Cathode Ray Tube）などの様々なディスプレイ装置のいずれかに対応する。  
オーディオデコーダ１０はメモリ１２から供給された（或いは、読み込んだ）オーディオデータをデコードし、その結果得られる音声情報をスピーカ１５に音声出力する。
【００１７】
同期データ検出装置としての同期バイト検出部５には、復調されたTSが入力される。同期バイト検出部５は、TSデータの中から同期バイトを検出し、検出結果を、TSデータと共にシステムデコータ６に供給する。本実施の形態では、MPEG2におけるTSデータの同期バイト「0x47」を、同期データの例として説明する。  
なお、同期バイト検出部５は、システムデコーダ６の内部にあってもよい。
【００１８】
まず、本実施の形態の同期バイト検出部５の検出動作の全体の流れについて、説明する。図２は、同期バイト検出部５が同期バイト検出動作を開始した場合の処理を説明するための図である。なお、ここでは、同期バイトが、連続して所定の回数以上、ここでは５回以上検出されたときには、その検出された同期バイトは、正しい同期バイトであると判定される例で説明する。図３は、同期バイト検出部５において同期バイト検出のためにTSデータが格納されるメモリのメモリマップを示す図である。
【００１９】
図２に示すように、複数のパケットからなるTSデータを記憶するメモリのアドレスの先頭から順番に所定の単位、ここではバイト単位で、TSデータが読み出される。
【００２０】
TSデータを順番に読み出しながら、TSデータが、所定の同期バイト、ここでは「0x47」のデータであるとき、それ以降は、所定の周期で、すなわち188バイト毎に、「0x47」のデータがあるか否かが判定される。  
図２では、データDT1が最初の「0x47」のデータであり、その後は、188バイト先のデータDT2が「0x47」のデータであるか否かが判定される。図３では、斜線で示すように、メモリマップ上のアドレスRA(DT1)にデータDT1が格納されている。データDT1の後には、188バイト先のアドレスRA(DT2)のデータDT2が読み出されて、「0x47」のデータであるか否かの判定に用いられる。アドレスRA(DT1)とRA(DT2)間のTSデータは、飛ばされて読まれない。各アドレスRAのデータは、１バイトデータである。  
図２では、その後、データDT2も「0x47」のデータであり、さらに188バイト先のデータDT3、及びさらに先のデータDT4も「0x47」のデータである。
【００２１】
しかし、図２では、データDT4の次の188バイト先のデータDT5が「0x47」のデータでない。よって、同期バイト検出部５は、「0x47」のデータを連続して５回以上所定の周期で検出していないので、これまで検出したデータDT1からDT4の「0x47」のデータは、同期バイトではないとされる。そして、同期バイト検出部５は、最初に検出されたデータDT1の次のデータから、再度、同様に同期バイトの検出処理を実行する。図２では、矢印A1で示すように、アドレスRD(DT1)の次のアドレスの位置P1まで戻り、位置P1から再度同期バイトの検出処理が実行される。
【００２２】
２回目の同期バイトの検出処理では、データDT2が「0x47」のデータであるので、その後は、188バイト先のデータDT3が「0x47」のデータであるか否かが判定される。図２では、その後、データDT4も「0x47」のデータである。
【００２３】
しかし、２回目の同期バイト検出処理でも、データDT4の次の188バイト先のデータDT5が「0x47」のデータでない。よって、同期バイト検出部５は、「0x47」を連続して５回以上所定の周期間隔で検出していないので、これまで検出した「0x47」のデータは、同期バイトではないとされ、２回目の同期バイト検出処理において、最初に検出されたデータDT2の次のデータから、再度、同様に同期バイトの検出処理を実行する。図２では、矢印A2で示すように、アドレスRD(DT2)の次のアドレスの位置P2まで戻り、位置P2から再度同期バイトの検出処理が実行される。
【００２４】
３回目の同期バイトの検出処理では、データDT11が「0x47」のデータであるので、その後は、188バイト先のデータDT12が「0x47」のデータであるか否かが判定される。図２では、その後、データDT12も「0x47」のデータである。
【００２５】
以下同様にして、同期バイト検出部５は、同期バイト検出処理を行うが、図２の場合では、「0x47」のデータが、188バイト毎に連続して５個ある。よって、３回目の同期バイト検出処理において、５回目に検出された「0x47」のデータが「0x47」のデータであったときに、同期バイトが検出されたと判定される。
【００２６】
すなわち、１回目と２回目の同期バイト検出処理では、アドレスRA(DT1)のデータDT1、アドレスRA(DT2)のデータDT2、アドレスRA(DT3)のデータDT3、及びアドレスRA(DT4)のデータDT4は、各パケットに含まれる所定の同期バイトではない、別のデータであった。それらのデータは、その値が、たまたま「0x47」である別のデータFBである。
【００２７】
しかし、３回目のデータの同期バイト検出処理では、アドレスRA(DT11)のデータDT11、アドレスRA(DT12)のデータDT12、アドレスRA(DT13)のデータDT13、及びアドレスRA(DT4) のデータDT14及びアドレスRA(DT15)のデータDT15は、正しい同期バイトSBである。  
以上のように、上述した本実施の形態においては、同期バイト検出処理において、従来は読み飛ばされていたTSデータも同期バイト検出処理対象となり、パケット抜けのない同期バイト検出を行うことができる。
【００２８】
また、連続する同期バイトが検出されなくなったときにも、パケット抜けなく同期バイトの検出が行われる。  
図４は、正しい同期バイトが検出されなくなったときの同期バイト検出部５の処理を説明するための図である。  
図４は、正しい同期バイトが検出された後に、同期バイト検出部５が、188バイト毎のTSデータが「0x47」のデータであるか否かを判定しているときに、読み出したTSデータが「0x47」でないデータの場合を示す。図４では、最後に読み出したデータDT21は、「0x47」であったが、188バイト先の次のデータDT22が「0x47」でなかったことが示されている。
【００２９】
そのような場合、同期バイト検出部５は、最後に「0x47」であったデータDT21の次のデータから、同期バイトの検出処理を実行する。図４では、矢印A11で示すように、アドレスRD(DT21)の次のアドレスの位置P11まで戻り、位置P11から、上述した同期バイト検出処理が実行される。
【００３０】
その結果、同期バイト検出部５は、アドレスRA（DT31）のデータが、「0x47」であることを検出し、その後は、図２で説明したと同様に、188バイト毎に「0x47」のデータがあるか否かの判定を行う。
【００３１】
以上のように、従来では、正しい同期バイトが検出された後に、正しい同期バイトが検出されなくなった場合には、その後のTSデータの中から同期バイトの検出を行っていた。しかし、上述した本実施の形態においては、正しい同期バイトが検出された後に、正しい同期バイトが検出されなくなった場合には、最後の同期バイトの次のデータから、同期バイト検出処理を行うようにした。よって、図４に示すように、データDT21の直後に、正しい同期バイトのデータDT31があるような場合に、その正しい同期バイトのデータDT31を含むパケットが取り逃がされることなく、同期バイトの検出処理に利用される。
【００３２】
なお、図２の場合、矢印A1あるいはA2で示すように、同期バイト検出処理対象のアドレスが位置P1あるいはP2に戻った場合に、既に、同期バイトでないと判定されたデータFBについては、対象データから外して、同期バイト検出処理を行うようにしてもよい。
【００３３】
次に、同期バイト検出部５の構成について説明する。  
図５は、同期バイト検出部５の構成を示すブロック図である。同期バイト検出部５は、RAM２１、０ｘ４７検出器２２、初回検出部２３、判定指示部２４、カウンタ２５、比較器２６、ラッチ回路（以下、単にラッチという）２７，２８、２９、セレクタ３０，３１、加算器３２，３３，３４、及びデータ出力制御部３５を含んで構成される回路である。
【００３４】
復調器４から復調処理して復元されたTSデータが、RAM２１に入力される。  
０ｘ４７検出器２２は、RAM２１から読み出されたバイトデータが、「0x47」のデータであることを検出する回路である。読み出されたバイトデータが「0x47」のデータであることを検出すると、「１」の検出信号DSを出力する。０ｘ４７検出器２２は、所定の同期データを含むTSデータを記憶するメモリであるRAM２１からTSデータを所定の単位で順次読み込み、所定の同期データを検出する検出部を構成する。
【００３５】
初回検出部２３は、同期バイトの検出を開始してから、「0x47」のデータを初めて検出したことを検出する回路である。「0x47」のデータの検出が初回であるとき、初回検出部２３は、初回検出信号DS1を出力する。
【００３６】
判定指示部２４は、「0x47」のデータが、所定の回数、検出されたか否かに応じて、指示信号SS1とSS2を出力する回路である。また、判定指示部２４は、加算器３２への制御信号SS3を出力する。  
指示信号SS1は、後述する比較結果信号CSが「０」で、かつ検出信号DSが出力されていない場合には、「１」であり、比較結果信号CSが「１」で、かつ検出信号DSが出力されていない場合、すなわち「０」の場合には、「０」である。判定指示部２４は、比較結果信号CSと検出信号DSに応じて、このような判定信号SS1を出力する。  
指示信号SS2は、ラッチ２９のラッチタイミングの信号である。
【００３７】
カウンタ２５は、「0x47」のデータが検出された回数をカウントするカウンタである。カウンタ２５が、０ｘ４７検出器２２が所定の同期データを検出した回数をカウントする検出回数カウント部を構成する。  
比較器２６は、カウンタ２５のカウント値CNが予め設定された設定値CNSを超えたか否かを判定するための比較回路である。比較器２６は、カウント値CNが設定値CNSを超えると、「１」の比較結果信号CSを出力する。ここでは、設定値CNSは、「４」である。従って、比較器２６は、カウント値CNが５以上になると、比較結果信号CSを出力する。
【００３８】
ラッチ２７は、初回検出部２３からの初回検出信号DS1に基づいて、最初の「0x47」のデータが検出されたときバイトデータのRAM２１のリードアドレスを保持する回路である。ラッチ２７は、最初に検出された同期データのRAM２１のアドレスを保持するアドレス保持部を構成する。  
ラッチ２８は、０ｘ４７検出器２２からの検出信号DSに基づいて、「0x47」のデータが検出されたときのRAM２１のリードアドレスを保持する回路である。ラッチ２８は、０ｘ４７検出器２２が所定の同期データを検出したときの最新の同期データのRAM２１のアドレスを保持するアドレス保持部を構成する。  
ラッチ２９は、アドレスRAを保持して、加算器３４を介してRAM２１へそのリードアドレスを供給するための回路である。
【００３９】
セレクタ３０は、判定指示部２４からの指示信号SS1に基づいて、ラッチ２７と２８のいずれか一方に保持されているアドレスを選択して出力する回路である。セレクタ３０は、指示信号SS1が「１」の場合は、ラッチ２７の値を選択して出力し、指示信号SS1が「０」の場合は、ラッチ２８の値を選択して出力する。  
セレクタ３１は、初回検出部２３からの初回検出信号DS1に基づいて、「１」又は「188」のいずれか一方を選択して出力する回路である。セレクタ３１は、「１」と所定の周期に対応する値としての「188」のいずれかを選択する選択部である。セレクタ３１は、初回検出部２３が所定の同期データを最初に検出するまでは「１」を選択して出力し、初回検出部２３が所定の同期データを最初に検出した後は「所定の周期に対応する値」を選択して出力する選択部を構成する。
【００４０】
加算器３２は、制御信号SS3に応じて、セレクタ３０からの出力されたアドレスに「１」を加算して、ラッチ２９に出力する回路である。  
加算器３３は、所定の初期値が入力される回路であり、さらに、データを保持し、その保持されたデータにセレクタ３１の出力である「１」又は「188」を加算して出力する回路である。
【００４１】
加算器３４は、加算器３３の出力にラッチ２９の出力を加算して出力する回路である。  
データ出力制御部３５は、比較器２６の比較結果信号CSに基づき、RAM２１に対してデータ出力のためのリードアドレスRAaを出力して、RAM２１からTSデータを取得して、TSデータを出力する回路である。出力されたTSデータは、システムデコーダ６においてデコードされる。
【００４２】
次に、図５の同期バイト検出部５の動作を説明する。  
デジタル放送の受信が開始されると、復調されたTSデータが復調器４から同期バイト検出部５に入力される。各ラッチ２７，２８，２９及びカウンタ２５は、初期化信号CLRの入力により初期化されている。TSデータは、図３に示すように、受信した順に所定のアドレスから順次バイト単位でRAM２１に格納される。図３では、RAM２１の先頭からバイト単位でTSデータが記憶されている。
【００４３】
TSデータは、RAM２１に順次格納されていくので、RAM２１に所定の量のTSデータが格納されると、加算器３３は、初期値、例えば「０」を出力する。加算器３４でその出力「１」に「０」が加算された値が、RAM２１にリードアドレスとしてのアドレスRA(1)として出力される。
【００４４】
所定のタイミングで、RAM２１にアドレスRA(1)が入力され、RAM２１は、リードアドレスRAに対応する１バイトのデータを、０ｘ４７検出器２２に出力する。  
その結果、アドレスRA(1)のTSデータが読み出され、０ｘ４７検出器２２は、入力されたTSデータが「0x47」であるか否かを判定し、「0x47」でないときは、何も出力しない。
【００４５】
上記の動作は、０ｘ４７検出器２２が「0x47」のデータを検出するまで繰り返される。すなわち、セレクタ３１からの出力「１」の出力が、ラッチ３３において保持されたデータに加算され、その加算値がRAM２１に供給されることにより、リードアドレスRAが「１」ずつインクリメントされる。RAM２１からのアドレスRA(2)、RA(3)、・・・の各データの読み出しが、「0x47」になるまで繰り返される。
【００４６】
０ｘ４７検出器２２は、入力されたデータが「0x47」であるとき、「１」の検出信号DSを初回検出部２３，カウンタ２５及びラッチ２８に出力する。１回目の検出信号DSなので、カウンタ２５のカウント値は「１」となる。初回の「0x47」が検出されると、その後は、188バイト毎に「0x47」のデータがあるか否かの判定処理が開始される。
【００４７】
ラッチ２８は、RAM２１が「0x47」のデータを出力したときのアドレスRAを保持する。図２の例では、データDT1のアドレスRA(DT1)がラッチ２８にラッチされる。
【００４８】
０ｘ４７検出器２２は、RAM２１からのデータが「0x47」であると、検出信号DSを出力するので、初回検出部２３は、０ｘ４７検出器２２からの検出信号DSが、同期バイト検出を開始してから最初の信号であるかを判定し、最初の検出信号DSであるときは、判定指示部２４、ラッチ２７及びセレクタ３１に初回検出信号DS1を出力する。
【００４９】
ラッチ２７は、初回検出信号DS1の入力に基づき、RAM２１が「0x47」のデータを最初に出力したときのアドレスデータを保持する。すなわち、初回の検出信号DSが出力されると、初回検出信号DS1がラッチ２７に供給され、ラッチ２７は、最初の「0x47」のデータが検出されたときのアドレスをラッチする。図２の例では、データDT1のアドレスRA(DT1)がラッチ２７にラッチされる。
【００５０】
判定指示部２４は、比較結果信号CSと検出信号DSと初回検出信号DS1の入力に基づき、選択信号としての指示信号SS1をセレクタ３０に出力し、かつホールド信号としての指示信号SS2をラッチ２９に出力する。このとき、指示信号SS1は、「０」で、ホールド信号としての指示信号SS2は、「１」である。このとき、加算器３２は、制御信号SS3に基づいて、「１」を加算せず、ラッチ２８の出力をラッチ２９に出力する。ラッチ２９は、判定指示部２４からの指示信号SS2に基づき、ラッチ２８の出力を保持し、出力する。
【００５１】
セレクタ３１は、初回検出部２３から初回検出信号DS1に基づき、「188」を選択して、出力する。
【００５２】
その結果、加算器３４は、ラッチ２９の出力にセレクタ３１からの「188」を加算して、その加算値をリードアドレスRAとしてRAM２１に出力する。図２の例では、アドレスRA(DT2)が、RAM２１に供給される。
【００５３】
次に、０ｘ４７検出器２２は、「0x47」のデータを検出すると、検出信号DSを出力し、検出信号DSを初回検出部２３，カウンタ２５及びラッチ２８に出力する。
【００５４】
初回検出部２３は、検出信号DSは初回ではないので、初回検出信号DS1を出力しない。
【００５５】
２回目の検出信号DSなので、カウンタ２５のカウント値は「２」となる。
【００５６】
ラッチ２８は、RAM２１が「0x47」のデータを出力したときのアドレスRAを保持する。図２の例では、データDT2のアドレスRA(DT2)が、ラッチ２８にラッチされる。
【００５７】
図２の例では、データDT2からデータDT4までは、上記と同様の動作になる。すなわち、判定指示部２４は、比較結果信号CSと検出信号DSの入力に基づき、選択信号としての指示信号SS1をセレクタ３０に出力し、かつホールド信号としての指示信号SS2をラッチ２９に出力する。セレクタ３０は、ラッチ２８の出力を選択してラッチ２９に出力する。ラッチ２９は、保持しているデータを加算器３４に出力する。加算器３４は、ラッチ２９の出力にセレクタ３１の出力「188」を加算して、その加算値をリードアドレスRAとしてRAM２１に出力する。図２の例では、アドレスRA(DT3)、RA(DT4)及びRA(DT5)が、順番にRAM２１に供給される。
【００５８】
しかし、図２の場合、データDT5は、「0x47」のデータではない。データDT5が「0x47」のデータでないと、０ｘ４７検出器２２は、「０」の検出信号DSを出力する。判定指示部２４は、検出信号DSが「０」であり、比較結果信号CSが「０」であるので、「１」の指示信号SS1をセレクタ３０に出力する。
【００５９】
セレクタ３０は、「１」の指示信号SS1が入力されると、ラッチ２７の出力（すなわち「0x47」を検出した最初のアドレスRA(DT1)）を選択して、加算器３２に出力する。加算器３２では、制御信号SS3に基づいて、「１」を加算して、ラッチ２９に出力する。ラッチ２９は、指示信号SS2に基づき、加算器３２の出力をラッチして出力する。
【００６０】
この場合、加算器３４は、ラッチ２９の出力に初期値の「０」を加算し、その加算値をリードアドレスとしてRAM２１に供給する。図２の例では、矢印A1で示すように、最初のデータDT1の次のアドレスが、RAM２１に供給される。そして、カウンタ２５のカウント値は、クリアされる。
【００６１】
以上のように、判定指示部２４は、０ｘ４７検出器２２が、最初の所定の同期データを検出した後、０ｘ４７検出器２２に、所定の周期でTSデータを読み込ませ、０ｘ４７検出器２２が所定の周期で所定の同期データを連続して所定回数検出しない場合には、TSデータの最初の所定の同期データの次のデータから０ｘ４７検出器２２に読み込ませる制御部を構成する。この制御部は、図５において、RAM２１、データ出力制御部３５、０ｘ４７検出器２２及び比較器２６を除く回路から構成される。
【００６２】
その後の動作は、上述したデータDT1からDT4についての動作と同様である。そして、「0x47」のデータが検出されると、188バイト毎に「0x47」のデータがあるか否かの２回目の処理が開始される。  
図２の例では、この２回目の処理においても、データDT5は、「ox47」のデータではないので、判定指示部２４は、セレクタ３０に、「１」の指示信号SS1を供給する。そして、図２の例では、矢印A2で示すように、最初のデータDT2の次のアドレスが、RAM２１に供給される。そして、カウンタ２５のカウント値は、クリアされる。ここでは、カウンタ２５のカウンタ値は、「３」になってからクリアされる。
【００６３】
そして、その後の動作は、上述したデータDT1からDT4についての動作と同様である。そして、「0x47」のデータが検出されると、188バイト毎に「0x47」のデータがあるか否かの３回目の処理が開始される。図２に示すように、データDT11からDT15まで、上述したデータDT1からDT4についての動作と同様である。しかし、データDT15は、「0x47」のデータであるので、カウンタ２５のカウント値は「５」となり、比較器２６は、比較結果信号CSは、「１」となる。
【００６４】
データ出力制御部３５は、「１」の比較結果信号CS を受信して、RAM２１へリードアドレスRAａを出力して、RAM２１からTSデータを取得することができる。
【００６５】
データ出力制御部３５は、例えば、「１」の比較結果信号CSを受信したタイミングで、読み出されたTSデータから、５つ前の「0x47」のデータから、TSデータを読み出すように、リードアドレスRAａを生成して出力する。データ出力制御部３５は、リードアドレスRAaから連続的にTSデータを読み出し、システムデコーダ６に出力する。
【００６６】
なお、比較器２６が「１」の比較結果信号CSを出力した後も、同期バイト検出部５は動作を継続する。188バイト毎に「0x47」のデータが出現するか否かが判定される。
【００６７】
さらに、比較器２６が「１」の比較結果信号CSを出力した後に、188バイト毎のデータが「0x47」のデータなくなると、０ｘ４７検出器２２は、「１」の検出信号DSを出力しない。判定指示部２４は、「０」の検出信号DSが入力されると、比較結果信号CSが「１」であるので、「０」の指示信号SS1をセレクタ３０に出力する。
【００６８】
セレクタ３０は、「０」の指示信号SS1が入力されると、ラッチ２８の出力を選択して、加算器３２に出力する。図４の例では、「0x47」を検出した最後のアドレスRA(DT21)が選択される。加算器３２では、「１」を加算して、ラッチ２９に出力する。ラッチ２９は、指示信号SS2に応じて、加算器３２の出力をラッチして出力する。図４の例では、矢印A11で示すように、TSデータが最後に「0x47」のデータであったデータDT21の次のアドレスが、RAM２１に供給される。
【００６９】
以上のように、判定指示部２４は、所定の同期データを所定の回数検出された後に、所定の同期データが所定の周期で検出されない場合は、同期データ検出部に対して、最後に検出された所定の同期データの次のトランスポートストリームデータから順番に読み込ませて所定の同期データの有無を検出するように指示する制御部を構成する。
【００７０】
そして、カウンタ２５，ラッチ２７，２８は、クリアされる。その後の動作は、上述した動作と同様であるが、「0x47」データの検出は、最後に「0x47」のデータが検出されたアドレスの次のアドレスから行われるので、図４に示すように、最後に「0x47」のデータが検出されたアドレスの直後に、正しい同期バイトのデータSBがあるような場合に、その正しい同期バイトのデータが取り逃がすことがなくなる。
【００７１】
なお、同期バイト検出部５は、ソフトウエアプログラム（以下、プログラムという）で実現することができる。プログラムで実現される場合、同期バイト検出部５は、ホストプロセッサ７とメモリ１２とにより構成される。図６は、同期バイト検出処理の流れの例を示すフローチャートである。図７は、メモリ１２のメモリマップを示す図である。図６に示すプログラムは、ホストプロセッサ内のROM等に記憶され、DRAM等のメモリ１２の所定の記憶領域R1に展開されて、実行される。
【００７２】
ホストプロセッサ７は、復調器４からTSデータが出力されると、メモリ１２の所定の記憶領域R3に、一旦TSデータを順番に格納する。  
TSデータが所定量以上格納されると、図６の処理が実行される。ホストプロセッサ（以下、単にCPUともいう）７は、記憶領域R3の先頭からTSデータを、バイト単位で読み出す（ステップ（以下Sと略す）１）。そして、CPU７は、読み出したTSデータが「0x47」のデータであるか否かを判定する（S2）。S2が、複数のパケットからなるTSデータを記憶するメモリからTSデータを所定の単位で順番に読み出し、所定の同期データの有無を検出する同期データ検出部を構成する。
【００７３】
読み出したTSデータが「0x47」のデータでない場合は（S2,NO）、CPU７は、それまで「0x47」は未検出であったか否かを判定する（S3）。「0x47」が未検出であった場合（S3,YES）、CPU７は、リードアドレスRAをインクリメントし（S4）、処理は、S1に戻る。
【００７４】
CPU７は、読み出したTSデータが「0x47」のデータであると（S2,YES）、「0x47」データの検出が初回であるか否かを判定する（S5）。S5が、所定の同期データを最初に検出したことを検出する初回検出部を構成する。
【００７５】
「0x47」データの検出が初回であると（S5,YES）、検出した「0x47」のデータのアドレス、すなわちリードアドレスRAを、メモリ１２中の所定の第１のアドレスの記憶領域ADFに、書き込む（S6）。記憶領域ADFが、最初に検出された同期データのメモリのアドレスを保持するアドレス保持部を構成する。さらに、CPU７は、そのリードアドレスRAを、メモリ１２中の所定の第２のアドレスの記憶領域ADLに、書き込む（S7）。
【００７６】
.  このリードアドレスを書き込む記憶領域ADF,ADL及び後述するカウンタ値を書き込む記憶領域CNTは、図７に示すように、メモリ１２中の記憶領域R2に予め確保されている。
【００７７】
また、CPU７は、「0x47」データの検出が初回でないと（S5,NO）、検出した「0x47」のデータのアドレス、すなわちリードアドレスRAを、メモリ１２中の所定の第２のアドレスの記憶領域ADLに、書き込む（S7）。記憶領域ADLは、所定の同期データを検出したときの最新の同期データのメモリのアドレスを保持するアドレス保持部を構成する。
【００７８】
CPU７は、カウンタ値をインクリメントする（S8）。カウンタ値は最初にクリアされているので、初回の検出時は、記憶領域CNTのカウンタ値は、「１」になる。S8は、所定の同期データが所定の周期で連続して検出されたときに、所定の同期データが最初に検出されたときからの所定の同期データの検出回数をカウントする検出回数カウント部を構成する。
【００７９】
CPU７は、記憶領域CNTのカウンタ値が４以下であるか否かを判定する（S9）。カウンタ値が４以下であるとき（S9,NO）、CPU７は、リードアドレスRAを「188」バイト分ジャンプする（S10）。すなわち、S10では、リードアドレスRAは、188バイト分だけ先のアドレスに変更され、処理は、S1に戻る。
【００８０】
カウンタ値が５以上であるとき（S9,YES）、CPU７は、TSデータを読み出して、システムデコーダ６に対してデータ出力制御処理を実行させ（S11）、処理はS10に移行する。
【００８１】
読み出したTSデータが「0x47」のデータでなく（S2,NO）、かつ、それまで「0x47」を検出したことがあるとき（S3,NO）、CPU７は、カウンタ値が４以下であるか否かを判定する（S12）。
【００８２】
カウンタ値が所定の回数である４以下である場合（S12,YES）は、記憶領域ADFのアドレス（すなわち、最初に「0x47」のデータを読み出したときのアドレス）をリードする（S13）。
【００８３】
また、カウンタ値が所定の回数である５以上である場合（S12,NO）は、記憶領域ADLのアドレス（すなわち、最後に「0x47」のデータを読み出したときのアドレス）をリードする（S14）。  
そして、CPU７は、記憶領域ADF,ADLのデータをクリアし（S15）、S13あるいはS14でリードしたデータインクメントして（S4）、処理は、S1に戻る。
【００８４】
S3,S12,S13,S4が、所定の同期データを、所定の回数、検出したか否かを判定し、所定の同期データを所定の回数検出しない場合は、同期データ検出部に対して、最初に検出された所定の同期データの次のトランスポートストリームデータから順番に読み出して所定の同期データの有無を検出するように指示する判定指示部を構成する。
【００８５】
S3,S12,S14,S4が、所定の同期データを、所定の回数、検出された後に、所定の同期データが所定の周期で検出されない場合は、同期データ検出部に対して、最後に検出された所定の同期データの次のトランスポートストリームデータから順番に読み出して所定の同期データの有無を検出するように指示する判定指示部を構成する。
【００８６】
以上のように、同期バイト検出部５の処理を、プログラムによって実現してもよく、上述したハードウエアで実現した場合と同様の効果を得ることができる。  
なお、上述した例は、プログラムがホストプロセッサ７により実行される例であるが、他のプロセッサにより実行されるようにしてもよい。
【００８７】
以上のように、上述した本実施の形態によれば、パケット抜けなく同期データの有無の検出を行うことができる同期データ検出装置、その方法及びそのためのプログラムを実現することができる。
【００８８】
上述した例は、テレビジョン受像機の例であるが、上述した本実施の形態の同期データ検出装置は、複数のパケットからなるトランスポートストリームを処理するHDDレコーダ、PC等にも適用できるものである。  
特に、コンテンツデータを、ネットワークを介して提供される画像データのTSは、パケット単位で、連続的に整然と繋がれていない。そのようなデータを再生等する場合に、パケット抜けがあると、再生に必要なデータが欠け、復号化処理の開始が遅れる等の問題が発生する。  
具体的には、映画のコンテンツのように、分割されたデータをTSデータのパケットの188バイト単位で繋いで作成されたコンテンツであれば、パケット抜けは少ないが、ネットワーク例えば、インターネットにより提供されるコンテンツの場合は、TSデータのパケット単位で編集されて作成されていない場合も多い。このような場合にも、上述した本実施の形態の同期データ検出装置は、有効である。
【００８９】
なお、上述した同期データ検出装置は、例えば１つの半導体チップとして形成することもできるし、MPEGデコーダ等のデコーダの半導体チップの一部の回路として形成することもできる。
【００９０】
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、CD-ROM等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部のプログラムコードが記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムのコードの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明の同期データ検出装置を実現することができる。  
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００９１】
１  デジタル放送受信機、２  アンテナ、３  チューナ、４  復調器、５  同期バイト検出部、６  システムデコーダ、７  ホストプロセッサ、８  再生同期制御部、９  ビデオデコーダ、１０  オーディオデコーダ、１１  データバス、１２  メモリ、１３  バック・エンド・プロセッサ、１４  表示部、１５  スピーカ、１６  MPEGデコーダ、２１  RAM、２２  ０ｘ４７検出器、２３  初回検出部、２４  判定指示部、２５  カウンタ、２６  比較器、２７、２８，２９  ラッチ回路、３０、３１  セレクタ、３２，３３，３４  加算器、３５  データ出力制御部
【図１】
2011188310.tif 000003
【図２】
2011188310.tif 000004
【図３】
2011188310.tif 000005
【図４】
2011188310.tif 000006
【図５】
2011188310.tif 000007
【図６】
2011188310.tif 000008
【図７】
2011188310.tif 000009