(57)【特許請求の範囲】
【請求項１】
データを記憶するメモリおよびデータを解析するデータ解析装置に接続されたスタートコード検出装置であって、
前記メモリからＰＥＳデータを読み出し、当該ＰＥＳデータを入力するデータ入力部と、
前記データ入力部によって入力されたＰＥＳデータに含まれる所定バイトのコードを検索するスタートコード検索部と、
前記スタートコード検索部によって検索された所定バイトのコードの次に位置するストリームＩＤを参照し、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断するスタートコード分断判断部と、を備え、
前記スタートコード検索部は、検索結果および前記スタートコード分断判断部の判断結果に基づいて、前記ＰＥＳスタートコードまたは前記ＥＳスタートコードの位置を示す位置データを前記データ解析装置に出力することを特徴とするスタートコード検出装置。
【請求項２】
データを記憶するメモリおよびデータを解析するデータ解析装置に接続されたスタートコード検出装置であって、
前記メモリからＰＥＳデータを読み出し、当該ＰＥＳデータを入力するデータ入力部と、
前記データ入力部によって入力されたＰＥＳデータに含まれる所定バイトのコードを検索するスタートコード検索部と、
分断されたＥＳスタートコードの位置を示す情報を格納するフラグレジスタと、
前記スタートコード検索部によって検索された所定バイトの検索コードの次に位置するストリームＩＤを参照し、参照結果に基づいて前記検索コードがＰＥＳスタートコード、ＥＳスタートコード、および分断されたＥＳスタートコードのいずれであるかを判断し、前記検索コードが前記分断されたＥＳスタートコードである場合に、ＥＳスタートコードが分断された分断位置を示すフラグを前記フラグレジスタに設定するスタートコード分断判断部と、を備え、
前記スタートコード検索部は、検索結果と、前記スタートコード分断判断部の判断結果と、前記フラグレジスタに設定された情報と、に基づいて、前記ＰＥＳスタートコードまたは前記ＥＳスタートコードの位置を示す位置データを前記データ解析装置に出力することを特徴とするスタートコード検出装置。
【請求項３】
前記ＰＥＳデータを保持するバッファと、
前記バッファを制御するバッファコントローラと、をさらに備え、
前記データ入力部は、前記ＰＥＳデータを前記バッファに書き込み、
前記スタートコード検索部は、前記バッファに保持されたＰＥＳデータに含まれる所定バイトのコードを検索する請求項１又は２に記載のスタートコード検出装置。
【請求項４】
前記スタートコード検索部は、前記ＰＥＳスタートコードが検出されたときに、前記バッファに保持されたＰＥＳデータにＰＥＳヘッダ長データが存在する場合には、当該ＰＥＳヘッダ長データに基づいて前記ＰＥＳデータを読み飛ばし、前記バッファに保持されたＰＥＳデータにＰＥＳヘッダ長データが存在しない場合には、前記メモリに記憶されたＰＥＳヘッダ長データに基づいて前記ＰＥＳデータを読み飛ばす請求項３に記載のスタートコード検出装置。
【請求項５】
前記バッファは、第１および第２保持領域を有し、
前記バッファコントローラは、前記第１保持領域に前記ＰＥＳデータを書き込み、当該第１保持領域に前記ＰＥＳデータが保持できなくなった後で、前記第２保持領域に前記ＰＥＳデータを書き込む請求項３に記載のスタートコード検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スタートコード検出装置に関し、特に、ビットストリームに含まれるスタートコードを検出するスタートコード検出装置に関する。
【背景技術】
【０００２】
一般的に、検索対象データから特定のパターンを検索する場合には、検索対象パターンについてパターンマッチングが行われている。パターンマッチングでは、検索対象データがメモリから読み出され、当該検索対象データと検索対象パターンとの比較が行われ、一致した場合には、一致したときの読み出し位置情報がメモリに書き込まれる。
【０００３】
たとえば、映像データまたは音声データのデコーダに設けられるスタートコード検出装置では、ＰＥＳ（Packetized Elementary Stream）スタートコード“0x000001”およびＥＳ（Elementary Stream）スタートコード“0x000001”が検索対象データである場合には、ＰＥＳスタートコードを検出するＰＥＳスタートコード検出装置と、ＥＳスタートコードを検出するＥＳスタートコード検出装置の２つが必要となる。
【０００４】
この場合には、ＰＥＳスタートコード検出装置とＥＳスタートコード検出装置の間にＰＥＳヘッダを解析するＰＥＳヘッダ解析部が設けられている。ＰＥＳスタートコード検出装置によってＰＥＳスタートコードが検出された後に、ＰＥＳヘッダ解析部によってＰＥＳヘッダを除いたデータ（すなわち、ＥＳデータ）が生成され、ＥＳスタートコード検出装置によってＥＳデータからＥＳスタートコードが検出される。ＰＥＳスタートコード検出装置は、ＰＥＳスタートコード“0x000001”の次に位置するストリームＩＤを含むパターンについてのパターンマッチングを行い、ＥＳスタートコード検出装置は、ＥＳスタートコード“0x000001”のみについてのパターンマッチングを行う。
【０００５】
しかし、この場合には、ＰＥＳスタートコードについてパターンマッチングが行われた後に、ＥＳスタートコードについてパターンマッチングが行われるので、ＰＥＳスタートコードおよびＥＳスタートコードを検出するために、２回のパターンマッチング（すなわち検索）を要する。その結果、スタートコード検出装置の処理時間が長くなる。特に、映像データおよび音楽データはデータ量が多いため、２回の検索を行うことによってデコーダの処理速度が遅くなることの影響は大きい。
【特許文献１】特開２００４−２６６３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、検索の回数を減らし、スタートコード検出装置の処理時間を短縮することである。
【課題を解決するための手段】
【０００７】
本発明の第１態様によれば、データを記憶するメモリおよびデータを解析するデータ解析装置に接続されたスタートコード検出装置であって、
前記メモリからＰＥＳデータを読み出し、当該ＰＥＳデータを入力するデータ入力部と、
前記データ入力部によって入力されたＰＥＳデータに含まれる所定バイトのコードを検索するスタートコード検索部と、
前記スタートコード検索部によって検索された所定バイトのコードの次に位置するストリームＩＤを参照し、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断するスタートコード分断判断部と、を備え、
前記スタートコード検索部は、検索結果および前記スタートコード分断判断部の判断結果に基づいて、前記ＰＥＳスタートコードまたは前記ＥＳスタートコードの位置を示す位置データを前記データ解析装置に出力することを特徴とするスタートコード検出装置が提供される。
【発明の効果】
【０００８】
本発明によれば、検索の回数を減らすことができ、ひいては、スタートコード検出装置の処理時間を短縮することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
【実施例１】
【００１０】
はじめに、本発明の実施例１について説明する。本発明の実施例１は、メモリから読み出されたＰＥＳデータのスタートコードが検出される例である。
【００１１】
図１は、本発明の実施例１に係るスタートコード検出装置１００を含むシステム構成を示すブロック図である。
【００１２】
スタートコード検出装置１００は、メモリ１１０およびデータ解析装置１２０に接続されている。スタートコード検出装置１００は、メモリ１１０に記憶されたＰＥＳ（Packetized Elementary Stream）データのヘッダ（以下、「ＰＥＳヘッダ」という）やＥＳ（Elementary Stream）データのヘッダ（以下、「ＥＳヘッダ」という）の位置を示す位置データをデータ解析装置１２０に出力する。
【００１３】
メモリ１１０は、スタートコード検出装置１００の処理に用いられるデータを記憶する。たとえば、メモリ１１０に記憶されるデータは、映像信号もしくは音声信号のＰＥＳデータやＥＳデータである。
【００１４】
データ解析装置１２０は、スタートコード検出装置１００から出力された位置データに基づいてＰＥＳデータまたはＥＳデータを解析する。
【００１５】
図２は、本発明の実施例１に係るスタートコード検出装置１００の構成を示すブロック図である。
【００１６】
スタートコード検出装置１００は、データ入力部１０１、スタートコード検索部１０２、スタートコード分断判断部１０３、データ出力部１０４およびレジスタ１０５を備えている。
【００１７】
データ入力部１０１は、メモリ１１０からＰＥＳデータを読み出し、当該ＰＥＳデータをスタートコード検索部１０２に送る。
【００１８】
スタートコード検索部１０２は、データ入力部１０１によって入力されたＰＥＳデータに含まれる所定バイトのコードを検索する。スタートコード検索部１０２は、検索結果とスタートコード分断判断部１０３の判断結果に基づいて、ＰＥＳスタートコードまたはＥＳスタートコードの位置を示す位置データを生成し、当該位置データをデータ出力部１０４に送る。位置データは、スタートコードの位置を示すアドレス情報およびＰＥＳスタートコードまたはＥＳスタートコードであることを示す識別情報を含む。
【００１９】
スタートコード分断判断部１０３は、スタートコード検索部１０２によって検索されたスタートコードの次に位置するストリームＩＤを参照し、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断し、判断結果をスタートコード検索部１０２に送る。また、スタートコード分断判断部１０３は、レジスタ１０５の読み出し位置を制御することによってレジスタ１０５に格納されたデータを読み出す。
【００２０】
データ出力部１０４は、スタートコード検索部１０２から送られた位置データをデータ解析装置１２０に出力する。
【００２１】
レジスタ１０５は、メモリ１１０からデータが読み出されるときにデータ入力部１０１によってアクセスされるメモリ１１０の読み出しアドレスを格納する。
【００２２】
図３は、本発明の実施例１に係るスタートコード検出処理の処理手順を示すフローチャートである。
【００２３】
はじめに、スタートコード検索部１０２によって、データ入力部１０１によって入力されたＰＥＳデータに含まれる所定のバイトのコードを検索するためのスタートコード検索処理（図４）が行われる（Ｓ３０１）。
【００２４】
次に、スタートコード検索部１０２によって、ストリームＩＤがメモリ１１０から読み出され、当該ストリームＩＤが参照される（Ｓ３０２）。
【００２５】
Ｓ３０２の参照結果がＰＥＳスタートコードを示す場合には（Ｓ３０３−ＹＥＳ）、データ出力部１０４によって、ＰＥＳスタートコードの位置を示すＰＥＳスタートコード位置データが出力される（Ｓ３０４）。
【００２６】
次に、スタートコード検索部１０２によって、メモリ１１０に記憶されたＰＥＳデータのうち所定のヘッダ長を有するＰＥＳヘッダが読み飛ばされる（Ｓ３０５）。
【００２７】
次に、スタートコード分断判断部１０３によって、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断するためのスタートコード分断判断処理（図５）が行われる（Ｓ３０６）。
【００２８】
一方、Ｓ３０２の参照結果がＥＳスタートコードを示す場合には（Ｓ３０３−ＮＯ）、データ出力部１０４によって、ＥＳスタートコードの位置を示すＥＳスタートコード位置データが出力される（Ｓ３０８）。
【００２９】
Ｓ３０１〜Ｓ３０７は、スタートコード検出処理の終了指示が行われるまで繰り返され（Ｓ３０８−ＮＯ）、スタートコード検出処理の終了指示が行われた場合には（Ｓ３０８−ＹＥＳ）、本発明の実施例１に係るスタートコード検出処理が終了する。
【００３０】
図４は、本発明の実施例１に係るスタートコード検索処理（図３のＳ３０１）の処理手順を示すフローチャートである。
【００３１】
はじめに、メモリ１１０に記憶されたＰＥＳデータが１バイトずつ読み出される（Ｓ４０１）。Ｓ４０１は、所定のコード（たとえば、“0x0000”）が検索されるまで繰り返される（Ｓ４０２−ＮＯ）。
【００３２】
Ｓ４０１において読み出されたＰＥＳデータが所定のコードである場合には（Ｓ４０２−ＹＥＳ）、Ｓ４０１において読み出されたＰＥＳデータの次に位置するＰＥＳデータが１バイト読み出される（Ｓ４０３）。
【００３３】
Ｓ４０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ４０４−ＹＥＳ）、Ｓ４０３に戻る。
【００３４】
一方、Ｓ４０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”または“0x01”）でない場合には（Ｓ４０４−ＮＯ，Ｓ４０５−ＮＯ）、Ｓ４０１に戻る。
【００３５】
他方、Ｓ４０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）である場合には（Ｓ４０４−ＮＯ，Ｓ４０５−ＹＥＳ）、図３のＳ３０２へ進む。
【００３６】
図５は、図３のＥＳスタートコード分断判断処理（Ｓ３０６）の処理手順を示すフローチャートである。
【００３７】
はじめに、ＰＥＳヘッダの次に位置するＰＥＳデータが１バイト読み出される（Ｓ５０１）。
【００３８】
Ｓ５０１において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ５０２−ＹＥＳ）、Ｓ５０１において読み出されたＰＥＳデータの次に位置するＰＥＳデータが１バイト読み出される（Ｓ５０３）。
【００３９】
Ｓ５０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）である場合には（Ｓ５０４−ＹＥＳ）、読み出し位置がＰＥＳヘッダの前（すなわち、スタートコードの１バイト前）に戻される（Ｓ５０５）。
【００４０】
次に、ＰＥＳスタートコードの１バイト前に位置するＰＥＳデータが１バイト読み出される（Ｓ５０６）。
【００４１】
Ｓ５０６において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ５０７−ＹＥＳ）、ＥＳスタートコードが分断されていると判断され、ＥＳスタートコードが検出される（Ｓ５０８）。
【００４２】
一方、Ｓ５０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）でない場合（Ｓ５０４−ＮＯ）またはＳ５０６において読み出されたＰＥＳスタートコードが所定のコード（たとえば、“0x00”）でない場合（Ｓ５０７−ＮＯ）には、読み出し位置がＰＥＳヘッダの最後に戻される（Ｓ５０９）。
【００４３】
他方、Ｓ５０１において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）でない場合であって（Ｓ５０２−ＮＯ）、所定のコード（たとえば、“0x01”）である場合には（Ｓ５１０−ＹＥＳ）、読み出し位置がＰＥＳヘッダの前（すなわち、スタートコードの１バイト前）に戻される（Ｓ５１１）。
【００４４】
次に、ＰＥＳデータが１バイト読み出される（Ｓ５１２）。
【００４５】
Ｓ５１２において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ５１３−ＹＥＳ）、ＰＥＳスタートコードの２バイト前に位置するＰＥＳデータが１バイト読み出される（Ｓ５１４）。
【００４６】
Ｓ５１２において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）でない場合（Ｓ５１３−ＮＯ）またはＳ５１４において読み出されたＰＥＳスタートコードが所定のコード（たとえば、“0x00”）でない場合（Ｓ５１５−ＮＯ）には、読み出し位置がＰＥＳヘッダの最後に戻される（Ｓ５１６）。
【００４７】
一方、Ｓ５１４において読み出されたＰＥＳスタートコードが所定のコード（たとえば、“0x00”）である場合（Ｓ５１５−ＹＥＳ）には、ＥＳスタートコードが分断されていると判断され、ＥＳスタートコードが検出される（Ｓ５０８）。
【００４８】
Ｓ５０９，Ｓ５０８またはＳ５１６の後は、図３のＳ３０８へ進む。
【００４９】
本発明の実施例１によれば、スタートコード検索部１０２およびスタートコード分断判断部１０３によってＰＥＳスタートコードおよびＥＳスタートコードが検索されるので、検索の回数を減らすことができ、ひいては、スタートコード検出装置１００の処理時間を短縮することできる。
【実施例２】
【００５０】
次に、本発明の実施例２について説明する。本発明の実施例２は、メモリから読み出されたＰＥＳデータがバッファに保持される例である。なお、本発明の実施例１と同様の内容についての説明は省略する。
【００５１】
図６は、本発明の実施例２に係るスタートコード検出装置２００の構成を示すブロック図である。
【００５２】
スタートコード検出装置２００は、データ入力部２０１、スタートコード検索部２０２、スタートコード分断判断部２０３、データ出力部２０４、バッファ２０５、バッファコントローラ２０６およびレジスタ２０７を備えている。
【００５３】
データ入力部２０１は、メモリ１１０からＰＥＳデータを読み出し、当該ＰＥＳデータをバッファ２０５に書き込む。
【００５４】
スタートコード検索部２０２は、バッファ２０５に保持されたＰＥＳデータに含まれる所定バイトのコードを検索する。スタートコード検索部２０２は、検索結果とスタートコード分断判断部２０３の判断結果に基づいて、ＰＥＳスタートコードまたはＥＳスタートコードの位置を示す位置データ生成し、当該位置データをデータ出力部２０４に送る。位置データは、スタートコードの位置を示すアドレス情報およびＰＥＳスタートコードまたはＥＳスタートコードであることを示す識別情報を含む。
【００５５】
スタートコード分断判断部２０３は、スタートコード検索部２０２によって検索された所定バイトのコードの次に位置するストリームＩＤを参照し、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断し、判断結果をスタートコード検索部２０２に送る。また、スタートコード分断判断部２０３は、レジスタ２０７の読み出し位置を制御することによってレジスタ２０７に格納されたデータを読み出す。
【００５６】
データ出力部２０４は、スタートコード検索部２０２から送られた位置データをデータ解析装置１２０に出力する。
【００５７】
バッファ２０５は、データ入力部２０１によって書き込まれたＰＥＳデータを保持する。
【００５８】
バッファコントローラ２０６は、バッファ２０５に保持されたデータの書き込みおよび読み出しを制御する。
【００５９】
アドレスレジスタ２０７は、メモリ１１０からデータが読み出されるときにデータ入力部２０１によってアクセスされるメモリ１１０の読み出しアドレスを格納する。
【００６０】
図７は、本発明の実施例２に係るスタートコード検出処理の処理手順を示すフローチャートである。
【００６１】
はじめに、スタートコード検索部２０２によって、バッファ２０５に保持されたＰＥＳデータに含まれる所定のバイトのコードを検索するためのスタートコード検索処理（図４）が行われる（Ｓ７０１）。
【００６２】
次に、スタートコード検索部２０２によって、ストリームＩＤがバッファ２０５から読み出され、当該ストリームＩＤが参照される（Ｓ７０２）。
【００６３】
Ｓ７０２の参照結果がＰＥＳスタートコードを示す場合には（Ｓ７０３−ＹＥＳ）、データ出力部２０４によって、ＰＥＳスタートコードの位置を示すＰＥＳスタートコード位置データが出力される（Ｓ７０４）。
【００６４】
バッファ２０５にＰＥＳヘッダのヘッダ長を示すデータ（以下、「ＰＥＳヘッダ長データ」という）が存在する場合には（Ｓ７０５−ＹＥＳ）、バッファアクセスが行われ、バッファ２０５に保持されたＰＥＳヘッダ長データが参照される（Ｓ７０６）。一方、バッファ２０５にＰＥＳヘッダ長データが存在しない場合には（Ｓ７０５−ＮＯ）、メモリアクセスが行われ、メモリ１１０に記憶されたＰＥＳヘッダ長データ参照される（Ｓ７０７）。
【００６５】
次に、Ｓ７０６またはＳ７０７において参照されたＰＥＳヘッダ長データに基づいてＰＥＳヘッダが読み飛ばされる（Ｓ７０８）。
【００６６】
次に、スタートコード分断判断部２０３によって、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断するためのスタートコード分断判断処理（図５）が行われる（Ｓ７０９）。
【００６７】
一方、Ｓ７０２の参照結果がＥＳスタートコードを示す場合には（Ｓ７０３−ＮＯ）、データ出力部２０４によって、ＥＳスタートコードの位置を示すＥＳスタートコード位置データが出力される（Ｓ７１０）。
【００６８】
Ｓ７０１〜Ｓ７１０は、スタートコード検出処理の終了指示が行われるまで繰り返され（Ｓ７１１−ＮＯ）、スタートコード検出処理の終了指示が行われた場合には（Ｓ７１１−ＹＥＳ）、本発明の実施例２に係るスタートコード検出処理が終了する。
【００６９】
次に、本発明の実施例２の変形例１について説明する。本発明の実施例２の変形例１は、バッファが複数の保持領域（第１および第２保持領域）を有する例である。
【００７０】
図８は、本発明の実施例２の変形例１に係るバッファ２０５の構造を示す概略図である。
【００７１】
本発明の実施例２の変形例１に係るバッファ２０５は、第１保持領域２０５Ａおよび第２保持領域２０５Ｂを有する。
【００７２】
バッファコントローラ２０６は、はじめは第１保持領域２０５ＡにＰＥＳデータを書き込む。バッファコントローラ２０６は、第１保持領域２０５ＡがＰＥＳデータを保持できなくなった後（すなわち、第１保持領域の容量がフルになった後）で、第２保持領域２０５ＢにＰＥＳデータを書き込む。バッファコントローラ２０６は、第１保持領域２０５ＡへのＰＥＳデータの書き込みと第２保持領域２０５ＢへのＰＥＳデータの書き込みを交互に行う。また、バッファコントローラ２０６は、一方の保持領域（たとえば、第１保持領域２０５Ａ）にデータを書き込んでいる間に、他方の保持領域（たとえば、第２保持領域２０５Ｂ）に保持されたデータを検索する。
【００７３】
本発明の実施例２によれば、バッファ２０５にＰＥＳデータが書き込まれるので、本発明の実施例１に比べてメモリアクセスの回数を低減することができる。
【００７４】
また、本発明の実施例２の変形例１によれば、第１保持領域２０５Ａおよび第２保持領域２０５Ｂに交互にＰＥＳデータが書き込まれるので、ＰＥＳデータまたはＰＥＳヘッダ長データがバッファ２０５に存在しない場合のメモリアクセスを回避することができ、ひいては、本発明の実施例２に比べてメモリアクセスの回数を低減することができる。
【００７５】
また、本発明の実施例２の変形例１によれば、一方の保持領域にデータが書き込まれている間に、他方の保持領域に保持されたデータが検索されるので、本発明の実施例２に比べてスタートコード検出装置２００の処理時間を短縮することができる。
【実施例３】
【００７６】
次に、本発明の実施例３について説明する。本発明の実施例３は、レジスタにゼロフラグが設定される例である。なお、本発明の実施例１，２と同様の内容についての説明は省略する。
【００７７】
図９は、本発明の実施例３に係るスタートコード検出装置３００の構成を示すブロック図である。
【００７８】
スタートコード検出装置３００は、データ入力部３０１、スタートコード検索部３０２、スタートコード分断判断部３０３、データ出力部３０４およびレジスタ３０５を備えている。
【００７９】
データ入力部３０１は、メモリ１１０からＰＥＳデータを読み出し、当該ＰＥＳデータをスタートコード検索部３０２に送る。
【００８０】
スタートコード検索部３０２は、データ入力部３０１によって入力されたＰＥＳデータに含まれる所定バイトのコードを検索する。スタートコード検索部３０２は、検索結果とスタートコード分断判断部３０３の判断結果に基づいて、ＰＥＳスタートコードまたはＥＳスタートコードの位置を示す位置データを生成し、当該位置データをデータ出力部３０４に送る。位置データは、スタートコードの位置を示すアドレス情報およびＰＥＳスタートコードまたはＥＳスタートコードであることを示す識別情報を含む。スタートコード検索部３０２は、検索結果に基づいてＥＳスタートコードが分断されている可能性がある位置を示すフラグをレジスタ３０５に設定する。
【００８１】
スタートコード分断判断部３０３は、スタートコード検索部３０２によって検索された所定バイトのコードの次に位置するストリームＩＤを参照し、参照結果に基づいて当該コードがＰＥＳスタートコードであるか、ＥＳスタートコードであるかまたは分断されたＥＳスタートコードであるかを判断し、判断結果をスタートコード検索部３０２に送る。
【００８２】
データ出力部３０４は、スタートコード検索部３０２から送られた位置データをデータ解析装置１２０に出力する。
【００８３】
レジスタ３０５は、ＥＳスタートコードが分断されている可能性がある位置を示すフラグおよびメモリ１１０からデータが読み出されるときにデータ入力部３０１によってアクセスされるメモリ１１０の読み出しアドレスを格納する。
【００８４】
図１０は、本発明の実施例３に係るスタートコード検索処理の処理手順を示すフローチャートである。
【００８５】
はじめに、メモリ１１０に記憶されたＰＥＳデータが１バイトずつ読み出される（Ｓ１００１）。Ｓ１００１は、所定のコード（たとえば、“0x0000”）が検索されるまで繰り返される（Ｓ１００２−ＮＯ）。
【００８６】
Ｓ１００１において読み出されたＰＥＳデータが所定のコードである場合には（Ｓ１００２−ＹＥＳ）、Ｓ１００１において読み出されたＰＥＳデータの次に位置するＰＥＳデータが１バイト読み出される（Ｓ１００３）。
【００８７】
Ｓ１００３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ１００４−ＹＥＳ）、ＥＳスタートコード（たとえば、“0x000001”）が“00”と“00 01”に分断されている可能性があることを示すフラグ（たとえば、“zeroFlag1”）をレジスタ３０５に設定する（Ｓ１００５）。たとえば、図１１（Ａ）に示されるように、ＰＥＳヘッダによってＥＳスタートコードが前方に１バイトのコードと後方に２バイトのコードとに分断されている場合である。
【００８８】
次に、Ｓ１００３において読み出されたＰＥＳデータの次に位置するＰＥＳデータが１バイト読み出される（Ｓ１００６）。
【００８９】
Ｓ１００６において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ１００７−ＹＥＳ）、ＥＳスタートコード（たとえば、“0x000001”）が“00 00”と“01”に分断されている可能性があることを示すフラグ（たとえば、“zeroFlag2”）をレジスタ３０５に設定する（Ｓ１００８）。たとえば、図１１（Ｂ）に示されるように、ＰＥＳヘッダによってＥＳスタートコードが前方に２バイトのコードと後方に１バイトのコードとに分断されている場合である。
【００９０】
次に、Ｓ１００６において読み出されたＰＥＳデータの次に位置するＰＥＳデータが１バイト読み出される（Ｓ１００９）。Ｓ１００９は、所定のコード（たとえば、“0x00”）以外のコードが検索されるまで繰り返される（Ｓ１０１０−ＹＥＳ）。
【００９１】
一方、Ｓ１００３またはＳ１００６において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”かつ“0x01”）でない場合には（Ｓ１００４−ＮＯまたはＳ１００７−ＮＯかつＳ１０１１−ＮＯ）、レジスタ３０５をリセットする（Ｓ１０１２）。
【００９２】
また、Ｓ１００９において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”かつ“0x01”）でない場合にも（Ｓ１０１０−ＮＯ，Ｓ１０１１−ＮＯ）、レジスタ３０５をリセットする（Ｓ１０１２）。
【００９３】
一方、Ｓ１００３またはＳ１００６において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）である場合には（Ｓ１００４−ＮＯまたはＳ１００７−ＮＯかつＳ１０１１−ＹＥＳ）、図３のＳ３０２へ進む。
【００９４】
また、Ｓ１００９において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）である場合にも（Ｓ１０１０−ＮＯ，Ｓ１０１１−ＹＥＳ）、図３のＳ３０２へ進む。
【００９５】
図１２は、本発明の実施例３に係るスタートコード分断判断処理の処理手順を示すフローチャートである。
【００９６】
はじめに、ＰＥＳヘッダの次に位置するＰＥＳデータが１バイト読み出される（Ｓ１２０１）。
【００９７】
Ｓ１２０１において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）である場合には（Ｓ１２０２−ＹＥＳ）、Ｓ１２０１において読み出されたＰＥＳデータの次に位置するＰＥＳデータが１バイト読み出される（Ｓ１２０３）。
【００９８】
Ｓ１２０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）である場合であって（Ｓ１２０４−ＹＥＳ）、レジスタ３０５に“zeroFlag1”が設定されている場合には（Ｓ１２０５−ＹＥＳ）、分断されたＥＳスタートコードが検出され（Ｓ１２０６）、図３のＳ３０８へ進む。
【００９９】
一方、Ｓ１２０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）でない場合（Ｓ１２０４−ＮＯ）またはＳ１２０３において読み出されたＰＥＳデータが所定のコード（たとえば、“0x01”）である場合であって（Ｓ１２０４−ＹＥＳ）、レジスタ３０５に“zeroFlag1”が設定されていない場合には（Ｓ１２０５−ＮＯ）、レジスタ３０５がリセットされる（Ｓ１２０７）。
【０１００】
次に、読み出し位置がＰＥＳヘッダの最後に戻され（Ｓ１２０８）、図３のＳ３０８へ進む。
【０１０１】
他方、Ｓ１２０１において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）でない場合（Ｓ１２０２−ＮＯ）、所定のコード（たとえば、“0x01”）である場合（Ｓ１２０９−ＹＥＳ）かつレジスタ３０５に“zeroFlag2”が設定されている場合には（Ｓ１２１０−ＹＥＳ）、Ｓ１２０６へ進む。
【０１０２】
他方、Ｓ１２０１において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）でない場合（Ｓ１２０２−ＮＯ）、所定のコード（たとえば、“0x01”）でない場合（Ｓ１２０９−ＮＯ）またはＳ１２０１において読み出されたＰＥＳデータが所定のコード（たとえば、“0x00”）でない場合（Ｓ１２０２−ＮＯ）、所定のコード（たとえば、“0x01”）である場合（Ｓ１２０９−ＹＥＳ）かつレジスタ３０５に“zeroFlag2”が設定されていない場合には（Ｓ１２１０−ＮＯ）、Ｓ１２０７へ進む。
【０１０３】
なお、本発明の実施例３では、本発明の実施例２と同様に、スタートコード検出装置３００はバッファおよびバッファコントローラを備えても良い。
【０１０４】
本発明の実施例３によれば、レジスタ３０５にＥＳスタートコードが分断されている可能性がある位置を示すフラグが設定されるので、ＥＳスタートコードが分断されていることを確実に検出することができ、かつ本発明の実施例１，２に比べてスタートコード検出装置３００の処理速度を向上させることができる。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施例１に係るスタートコード検出装置１００を含むシステム構成を示すブロック図である。
【図２】本発明の実施例１に係るスタートコード検出装置１００の構成を示すブロック図である。
【図３】本発明の実施例１に係るスタートコード検出処理の処理手順を示すフローチャートである。
【図４】本発明の実施例１に係るスタートコード検索処理（図３のＳ３０１）の処理手順を示すフローチャートである。
【図５】図３のＥＳスタートコード分断判断処理（Ｓ３０６）の処理手順を示すフローチャートである。
【図６】本発明の実施例２に係るスタートコード検出装置２００の構成を示すブロック図である。
【図７】本発明の実施例２に係るスタートコード検出処理の処理手順を示すフローチャートである。
【図８】本発明の実施例２の変形例１に係るバッファ２０５の構造を示す概略図である。
【図９】本発明の実施例３に係るスタートコード検出装置３００の構成を示すブロック図である。
【図１０】本発明の実施例３に係るスタートコード検索処理の処理手順を示すフローチャートである。
【図１１】本発明の実施例３に係るＥＳスタートコードが分断されている様子を示す概略図である。
【図１２】本発明の実施例３に係るスタートコード分断判断処理の処理手順を示すフローチャートである。
【符号の説明】
【０１０６】
１００〜３００  スタートコード検出装置
１０１〜３０１  データ入力部
１０２〜３０２  スタートコード検索部
１０３〜３０３  スタートコード分断判断部
１０４〜３０４  データ出力部
１０５，２０７，３０５  レジスタ
２０５  バッファ
２０５Ａ  第１保持領域
２０５Ｂ  第２保持領域
２０６  バッファコントローラ
【図１】
0004871322.tif 000002
【図２】
0004871322.tif 000003
【図３】
0004871322.tif 000004
【図４】
0004871322.tif 000005
【図５】
0004871322.tif 000006
【図６】
0004871322.tif 000007
【図７】
0004871322.tif 000008
【図８】
0004871322.tif 000009
【図９】
0004871322.tif 000010
【図１０】
0004871322.tif 000011
【図１１】
0004871322.tif 000012
【図１２】
0004871322.tif 000013