(57)【要約】【課題】複数のパケットからなるストリームデータ（ＰＥＳ）のパケット分解及び復号化を行う場合又は符号化及びパケット化を行ってＰＥＳデータを生成する場合に、バッファメモリへのアクセスによる処理効率の低下を防止する。【解決手段】ストリームデータ処理装置１は、ＰＥＳデータを格納するＰＥＳバッファ１１、ＰＥＳバッファ１１からＰＥＳデータを取得し復号化する復号化部１２、ＰＥＳデータ中のＰＥＳパケットの境界を検出する境界検出部１５及びＰＥＳヘッダの解析を行うパケット解析部１７を備える。パケット解析部１７は、境界検出部１５によるＰＥＳパケット境界の検出に応じてヘッダ解析を行う。復号化部１２は、境界検出部１５によるＰＥＳパケット境界の検出に応じてＰＥＳバッファ１１からのＰＥＳデータの取得を中断し、パケット解析部１７による解析処理結果に基づいて、ＰＥＳバッファ１１からのデータ取得を再開する。【選択図】図１
2007124495.tif 000002
【特許請求の範囲】
【請求項１】
複数のパケットからなるストリームデータを格納するバッファと、
前記バッファから前記ストリームデータを取得して復号化する復号化部と、
前記ストリームデータのパケット境界を検出する境界検出部と、
前記ストリームデータに付与されたパケットヘッダの解析処理を行うパケット処理部とを備え、
前記パケット境界の検出に応じて、前記復号化部は前記バッファからの前記ストリームデータの取得を中断するとともに、前記パケット処理部は前記パケットヘッダの解析処理を実行し、
前記復号化部は、前記パケットヘッダの解析処理の結果に基づいて、前記バッファからのデータ取得を再開するストリームデータ処理装置。
【請求項２】
前記パケット処理部は、パケットヘッダに付与された情報に基づいて、前記復号化部による復号化の対象となるデータ長を決定し、
前記境界検出部による前記パケット境界の検出は、前記復号化部によって前記バッファから取得されたデータ長をカウントし、カウント値が前記復号化の対象となるデータ長に達したことを判定することによって行う請求項１に記載のストリームデータ処理装置。
【請求項３】
前記パケット処理部は、前記復号化部がデータ取得を再開する際に前記パケットヘッダを読み飛ばしてデータ取得を行うように、前記復号化部による前記バッファの読み出しアドレスを更新する請求項１に記載のストリームデータ処理装置。
【請求項４】
複数のパケットからなるストリームデータを格納するバッファと、
前記バッファから前記ストリームデータを取得して復号化する処理を記述した第１の命令プログラム及び前記ストリームデータに付与されたパケットヘッダの解析処理を記述した第２の命令プログラムを実行可能な命令実行部と、
前記バッファから読み出される前記ストリームデータのパケット境界を検出する境界検出部とを備えるストリームデータ処理装置であって、
前記境界検出部は、前記パケット境界の検出に応じて、前記命令実行部に対する割り込み要求を行い、
前記命令実行部は、前記割り込み要求に応じて前記第１の命令プログラムから前記第２の命令プログラムに分岐し、前記第２の命令プログラムの終了後、前記パケットヘッダの解析処理の結果に基づいて、前記第１の命令プログラムを再開するストリームデータ処理装置。
【請求項５】
前記第２の命令プログラムにより記述される前記パケットヘッダの解析処理は、前記第１の命令プログラムにより記述される復号化処理の再開時に実行される前記バッファからのデータ取得が前記パケットヘッダをスキップして行うように、解析を行った前記パケットヘッダのデータ長に基づいて、前記第１の命令プログラムにより参照される前記バッファの読み出しアドレスを更新する処理を含む請求項４に記載のストリームデータ処理装置。
【請求項６】
複数のパケットからなるストリームデータを格納するバッファと、
入力信号を符号化したストリームデータを前記バッファに出力する符号化部と、
前記ストリームデータに挿入するパケットヘッダを生成するパケット処理部と、
前記ストリームデータに対する前記パケットヘッダの挿入位置を検出する境界検出部とを備え、
前記パケットヘッダの挿入位置の検出に応じて、前記符号化部は前記バッファへの前記ストリームデータの出力を中断するとともに、前記パケット処理部は、前記パケットヘッダを前記バッファに出力し、
前記符号化部は、前記パケット処理部による前記パケットヘッダの出力の終了後に、前記バッファへの前記ストリームデータの出力を再開するストリームデータ処理装置。
【請求項７】
前記パケット処理部は、前記符号化部から取得した情報に基づいて、自身が挿入する前記パケットヘッダによって規定される１つのパケットに含まれる前記ストリームデータのデータ長を決定し、
前記境界検出部による前記パケットヘッダの挿入位置の検出は、前記符号化部によって前記バッファに出力されたデータ長をカウントし、カウント値が前記パケット処理部により決定された前記ストリームデータのデータ長に達したことを判定することによって行う請求項６に記載のストリームデータ処理装置。
【請求項８】
複数のパケットからなるストリームデータを格納するバッファと、
入力信号を符号化したストリームデータを前記バッファに出力する処理を記述した第１の命令プログラム及び前記ストリームデータに挿入するパケットヘッダを生成して前記ストリームデータに挿入する処理を記述した第２のプログラムを実行可能な命令実行部と、
前記ストリームデータに対する前記パケットヘッダの挿入位置を検出する境界検出部とを備えるストリームデータ処理装置であって、
前記境界検出部は、前記パケットヘッダの挿入位置の検出に応じて、前記命令実行部に対する割り込み要求を行い、
前記命令実行部は、前記割り込み要求に応じて前記第１の命令プログラムから前記第２の命令プログラムに分岐し、前記第２の命令プログラムの終了後、前記第１の命令プログラムに復帰するストリームデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータをパケット化する技術及びパケット化されたストリームデータに対するパケット分解を行う技術に関する。
に関する。
【背景技術】
【０００２】
ＭＰＥＧ−２（Moving Picture Coding Experts Group - 2）標準に準拠したＭＰＥＧ−２プログラムストリーム（ＰＳ）では、オーディオデータやビデオデータを符号化したエレメンタリストリーム（ＥＳ）をパケット化してパケット化されたエレメンタリ・ストリーム（ＰＥＳ）を生成し、複数のＰＥＳを多重化してプログラムストリームを形成している。同様に、ＭＰＥＧ−１ ＰＳやＭＰＥＧ−２トランスポートストリーム（ＴＳ）等も、パケット化されたストリームデータを多重化して構成される。このように動画像ストリームデータを蓄積、伝送等する際は、符号化されたストリームデータをパケット化して取り扱うことが一般的に行われている。
【０００３】
従来のＭＰＥＧ−２ ＰＳの符号化及び復号化を行うストリームデータ処理装置８の構成を図８に示す。ＰＥＳバッファ８１１、パケット分解部８１２、ＥＳバッファ８１３及び復号化部８１４は、ＰＥＳのストリームデータ（以下、ＰＥＳデータと呼ぶ）を入力して、復号化したオーディオデータ又はビデオデータを出力する機能を担う。
【０００４】
ＰＥＳバッファ８１１は、ＰＥＳデータを格納するバッファメモリである。ＰＥＳバッファ８１１に対するデータ書込みは、ＭＰＥＧ−２ ＰＳからＰＥＳパケットを分離するＰＥＳパケット分離器（ＤＥＭＵＸ）等によって行われる。パケット分解部８１２は、ＰＥＳバッファ８１１からＰＥＳデータを入力し、入力データからＰＥＳのパケットヘッダ（以下、ＰＥＳヘッダと呼ぶ）を除去して得られるＥＳのストリームデータ（以下、ＥＳデータと呼ぶ）をＥＳバッファ８１３に出力する。ここで、パケット分解部８１２は、ＰＥＳバッファ８１１からＰＥＳデータを入力し、入力したＰＥＳデータを１ビットずつシフトしながらＰＥＳパケットの先頭を示すスタートコードとの一致判定を行い、スタートコードとの一致によってＰＥＳパケットの先頭を検出する。ＥＳバッファ８１３は、それぞれ独立に動作するパケット分解部８１２と復号化部８１４の間でＥＳデータを保存しておくバッファメモリである。復号化部８１４は、ＥＳバッファ８１３からＥＳデータを入力してこれを復号し、復号化後のオーディオデータ又はビデオデータを出力する。
【０００５】
一方、符号化部８２１、ＥＳバッファ８２２、パケット化部８２３及びＰＥＳバッファ８２４は、オーディオデータまたはビデオデータを入力して、パケット化されたＰＥＳデータを出力する機能を担う。符号化部８２１は、オーディオデータまたはビデオデータを入力してこれを符号化し、ＥＳデータとしてＥＳバッファ８２２に保存する。ＥＳバッファ８２２は、それぞれ独立に動作する符号化部８２１とパケット化部８２３の間でＥＳデータを保存しておくバッファメモリである。パケット化部８２３は、ＥＳバッファ８２１からＥＳデータを入力し、ＰＥＳパケットの境界となる位置にＰＥＳヘッダを挿入してＰＥＳデータを生成し、生成したＰＥＳデータをＰＥＳバッファ８２４に出力する。なお、ＰＥＳヘッダの挿入位置は、ＥＳバッファ８２２から入力したデータが、ヘッダ挿入位置を特定するためにＥＳデータに埋め込まれた特殊コードと一致するか否かの判定を行うことにより特定する。ＰＥＳバッファ８２４に格納されたＰＥＳデータは、他のストリームをパケット化したＰＥＳデータと多重化され、ＭＰＥＧ−２ ＰＳとして出力される。
【０００６】
上述したようなストリームデータ処理装置において、ストリームデータをパケット化する処理及びパケット化されたストリームデータを分解する処理を効率化する技術が従来から提案されている（例えば特許文献１を参照）。
【０００７】
特許文献１には、ストリームデータを符号化し、さらにそれをパケット化するパケット化装置が開示されている。当該パケット化装置は、符号化装置、ストリーム長算出装置及びヘッダ付加装置を備えている。符号化装置は、ビデオデータ又はオーディオデータを入力してこれを符号化し、符号化されたストリームデータを出力する。さらに符号化装置は、パケットヘッダの挿入位置を示すフラグビットを符号化されたストリームデータに付随して出力する。ストリーム長算出装置は、符号化されたストリームデータに付随するフラグビットの値によってパケットヘッダの挿入位置を特定し、フラグビットの間隔からストリームデータの長さ（ストリーム長）を算出する。さらに、ストリーム長算出装置は、得られたストリーム長をヘッダ付加装置に出力し、符号化されたストリームデータと付随するフラグビットは、そのまま記憶装置に出力する。ヘッダ付加装置は、記憶装置から符号化されたストリームデータを読み込み、フラグビットによって特定したパケットヘッダの挿入位置にパケットヘッダを挿入してパケット化されたストリームデータを出力する。なお、挿入されるパケットヘッダは、ストリーム長算出装置が算出したストリーム長等を参照して生成される。このように、当該パケット化装置は、ストリームデータにフラグビットを付随させ、フラグビットによってヘッダ挿入位置を特定できるものである。これにより、ストリームデータに埋め込まれた特殊コードを検出するための一致判定が不要となるため、パケット化に必要な処理を簡素化することができる。
【０００８】
また、特許文献２には、ＭＰＥＧー２ ＰＳのＰＥＳパケット分離器が開示されている。当該ＰＥＳパケット分離器は、ＭＰＥＧ−２ ＰＳからストリームを分離するために必要なヘッダ解析の処理を効率化するものである。具体的には、まず、受信したストリームデータとパケット先頭を示すスタートコードとの一致判定を行ってパケット先頭、つまり、ヘッダ先頭を検出する。次に、ヘッダ長、パケット長及びストリームＩＤ等の情報を得るためのパケットヘッダの解析をすぐに開始するのではなく、スタートコードの検出後に所定バイト数のデータの受信を完了するまでパケットヘッダ解析処理の開始を遅延させる。これにより、ヘッダを構成する主要データがデータ用バッファに格納された状態で解析を開始できるため、バッファに対する無駄なアクセスを軽減し、解析処理を効率化するものである。最後に、パケットヘッダ解析によってＰＥＳパケットのデータがビデオストリームと判断した場合は、ＰＥＳパケットをビデオデコーダ用のＰＥＳバッファに格納し、オーディオストリームと判断した場合は、ＰＥＳパケットをオーディオデコーダ用のＰＥＳバッファに格納する。
【特許文献１】特開平１１−３１７７６５号公報
【特許文献２】特開２００４−１２０６３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したストリームデータ処理装置８及び特許文献１乃至２に開示されたストリームデータ処理装置は、パケット分解を行う処理部と復号化を行う処理部との間、又は、符号化を行う処理部とパケット化を行う処理部との間にバッファメモリ（ＥＳバッファ８１３、８２２等）を設け、当該バッファに一時的にＥＳデータを格納している。
【００１０】
パケット分解を行う処理部と復号化を行う処理部との間、又は、符号化を行う処理部とパケット化を行う処理部との間にバッファメモリを設けることは、メモリアクセスの回数の増加を招くため、ストリームデータ処理装置の処理効率の向上の妨げとなるという課題がある。
【課題を解決するための手段】
【００１１】
本発明の第１の態様にかかるストリームデータ処理装置は、複数のパケットからなるストリームデータを格納するバッファと、前記バッファから前記ストリームデータを取得して復号化する復号化部と、前記ストリームデータのパケット境界を検出する境界検出部と、前記ストリームデータに付与されたパケットヘッダの解析処理を行うパケット処理部とを備える。さらに、前記パケット境界の検出に応じて、前記復号化部は前記バッファからの前記ストリームデータの取得を中断するとともに、前記パケット処理部は前記パケットヘッダの解析処理を実行する。またさらに、前記復号化部は、前記パケットヘッダの解析処理の結果に基づいて、前記バッファからのデータ取得を再開する。
【００１２】
これにより、例えば、パケット化したストリームデータが、ＭＰＥＧ−２標準に従ったＰＥＳデータである場合は、ＰＥＳデータを順次読み出して直接復号化を行うとともに、読み出しデータがパケット境界に到達した場合に復号化処理のためのＰＥＳデータの取得を中断して、ＰＥＳデータからＰＥＳヘッダを分離するためのパケット解析処理を行うことができる。パケット解析処理の終了後は、引き続きＰＥＳデータを順次読み出して直接復号化を行うことができる。
【００１３】
つまり、従来のように、ＰＥＳデータからＰＥＳヘッダを分離してＥＳデータを得るパケット分解処理と、ＥＳデータを復号化する復号化処理とを独立に実施するのではなく、２つの処理を同期的あるいは連携させて実行することができる。これによって、従来のストリーム処理装置８においてパケット分解部８１２と復号化部８１４との間にストリームデータを一次保存するために設けていたＥＳバッファ８１３が不要となり、これに対するアクセスも不要となるため、ＰＥＳデータのパケット分解処理及び復号化処理を効率よく行うことができる。
【００１４】
本発明の第２の態様にかかるストリームデータ処理装置は、複数のパケットからなるストリームデータを格納するバッファと、前記バッファから前記ストリームデータを取得して復号化する処理を記述した第１の命令プログラム及び前記ストリームデータに付与されたパケットヘッダの解析処理を記述した第２の命令プログラムを実行可能な命令実行部と、前記バッファから読み出される前記パケット化されたストリームデータのパケット境界を検出する境界検出部とを備える。ここで、前記境界検出部は、前記パケット境界の検出に応じて、前記命令実行部に対する割り込み要求を行う。前記命令実行部は、前記割り込み要求に応じて前記第１の命令プログラムから前記第２の命令プログラムに分岐し、前記第２の命令プログラムの終了後、前記パケットヘッダの解析処理の結果に基づいて、前記第１の命令プログラムを再開する。
【００１５】
このような構成によっても、従来のように、ＰＥＳデータからＰＥＳヘッダを分離してＥＳデータを得るパケット分解処理と、ＥＳデータを復号化する復号化処理とを独立に実施するのではなく、２つの処理を同期的あるいは連携させて実行することができる。これによって、パケット分解処理と復号化処理との間のバッファメモリが不要となるため、ＰＥＳデータのパケット分解処理及び復号化処理を効率よく行うことができる。
【００１６】
本発明の第３の態様にかかるストリームデータ処理装置は、複数のパケットからなるストリームデータを格納するバッファと、入力信号を符号化したストリームデータを前記バッファに出力する符号化部と、前記ストリームデータに挿入するパケットヘッダを生成するパケット処理部と、前記ストリームデータに対する前記パケットヘッダの挿入位置を検出する境界検出部とを備える。さらに、前記パケットヘッダの挿入位置の検出に応じて、前記符号化部は前記バッファへの前記ストリームデータの出力を中断するとともに、前記パケット処理部は、前記パケットヘッダを前記バッファに出力する。またさらに、前記符号化部は、前記パケット処理部による前記パケットヘッダの出力の終了後に、前記バッファへの前記ストリームデータの出力を再開する。
【００１７】
これにより、例えば、パケット化したストリームデータが、ＭＰＥＧ−２標準に従ったＰＥＳデータである場合は、入力信号を符号化して直接ＰＥＳバッファに出力するとともに、書込みデータをＰＥＳヘッダ挿入位置に到達した場合に符号化処理を中断して、ＰＥＳヘッダを挿入する、つまりＰＥＳバッファにＰＥＳヘッダの出力を行うことができる。ＰＥＳヘッダの挿入が終了すると、引き続き符号化したＥＳデータを直接ＰＥＳバッファに出力することができる。
【００１８】
つまり、従来のように、ＥＳデータを生成する符号化処理とＥＳデータにＰＥＳヘッダを挿入してＰＥＳデータを得るパケット化処理とを独立に実施するのではなく、２つの処理を同期的あるいは連携させて実行することができる。このような構成により、従来のストリーム処理装置８において符号化部８２１とパケット化部８２３との間にストリームデータを一次保存するために設けていたＥＳバッファ８２２が不要となり、これに対するアクセスも不要となるため、ＰＥＳデータのパケット分解処理及び復号化処理を効率よく行うことができる。
【００１９】
本発明の第４の態様にかかるストリームデータ処理装置は、複数のパケットからなるストリームデータを格納するバッファと、入力信号を符号化したストリームデータを前記バッファに出力する処理を記述した第１の命令プログラム及び前記ストリームデータに挿入するパケットヘッダを生成して前記ストリームデータに挿入する処理を記述した第２のプログラムを実行可能な命令実行部と、前記ストリームデータに対する前記パケットヘッダの挿入位置を検出する境界検出部とを備える。ここで、前記境界検出部は、前記パケットヘッダの挿入位置の検出に応じて、前記命令実行部に対する割り込み要求を行う。前記命令実行部は、前記割り込み要求に応じて前記第１の命令プログラムから前記第２の命令プログラムに分岐し、前記第２の命令プログラムの終了後、前記第１の命令プログラムに復帰する。
【００２０】
このような構成によっても、従来のように、ＥＳデータを生成する符号化処理とＥＳデータにＰＥＳヘッダを挿入してＰＥＳデータを得るパケット化処理とを独立に実施するのではなく、２つの処理を同期的あるいは連携させて実行することができる。これによって、符号化処理とパケット化処理との間のバッファメモリが不要となるため、ＰＥＳデータのパケット分解処理及び復号化処理を効率よく行うことができる。
【発明の効果】
【００２１】
本発明により、パケット化されたストリームデータのパケット分解及び復号化を行う場合、又は、符号化及びパケット化を行ってパケット化されたストリームデータを生成する場合に、バッファメモリへのアクセスによる処理効率の低下を防止することができる。
【発明を実施するための最良の形態】
【００２２】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。なお、以下に説明する実施の形態は、ＭＰＥＧ−２標準に準拠したＰＥＳパケットを分離するストリームデータ処理装置及びＰＥＳパケットを生成するストリームデータ処理装置に対して本発明を適用したものである。
【００２３】
発明の実施の形態１．
図1は、本実施の形態にかかるストリームデータ処理装置１の機能ブロック図である。ストリームデータ処理装置１は、ＭＰＥＧ−２ ＰＳに多重化された複数のＰＥＳデータをオーディオデータ、ビデオデータ等のストリームごとに分離するＰＥＳパケット分離器（図示せず）等からＰＥＳデータを入力し、パケット分解処理及び復号化処理を行って、復号後のオーディオデータ又はビデオデータを出力するものである。
【００２４】
ＰＥＳバッファ１１は、外部のＰＥＳパケット分離器（不図示）等から入力されたＰＥＳデータを格納するバッファメモリである。復号化部１２は、データ取得処理部１３及び復号化実行部１４を備えている。このうち、データ取得処理部１３は、ＰＥＳデータをＰＥＳバッファ１１から順次取得し、復号化実行部１４に出力する。復号化実行部１４は、ＭＰＥＧ−２標準に準拠した復号化処理を行って、ビデオデータ又はオーディオデータを出力する。
【００２５】
ここで、データ取得処理部１３は、ＰＥＳヘッダを除くＰＥＳパケットのペイロード部分、つまりＥＳデータのみを復号化実行部１４に対して出力する必要がある。このため、ストリームデータ処理装置１は、データ取得処理部１３によるＰＥＳバッファ１１からのＰＥＳデータの順次読み出しがＰＥＳパケットのペイロードの終端に到達したことを境界検出部１６によって検出し、この検出に応じてデータ取得処理部１３による復号化実行部１４への出力を中断することにより、データ取得処理部１３がＰＥＳヘッダをスキップしてペイロード部分のみを復号化実行部１４へ出力できるよう構成している。
【００２６】
まず、データ取得処理部１３は、ＰＥＳバッファ１１からＰＥＳデータを取得すると、取得したデータ長に相当する値だけＰＥＳカウンタ１６の値を減少又は増加する。境界検出部１５は、ＰＥＳカウンタ１６の値を監視しており、ＰＥＳカウンタ１６が所定の値になるとデータ取得処理部１３の読み出し処理を中断させる。
【００２７】
具体的には、ＰＥＳカウンタ１６に読み出しを開始するＰＥＳパケットのペイロード長に相当する値を保持しておき、データ取得処理部１３は、ＰＥＳパケットのペイロードの先頭データの取得時からＰＥＳカウンタ１６のカウンタ値の減少を開始すればよい。このような動作によれば、ＰＥＳカウンタ１６の値がゼロになったことにより、データ取得処理部１３による１つのＰＥＳパケットのペイロード部分の読み出しが終了し、ＰＥＳパケットの境界に到達したことを判定することができる。
【００２８】
さらに、境界検出部１５は、データ取得処理部１３によるデータ読み出しがＰＥＳパケットの境界に到達したことをＰＥＳカウンタ１６の値によって判定すると、パケット解析部１７に対してパケット分解処理の実行を指示する。
【００２９】
パケット解析部１７は、ＰＥＳパケット長およびＰＥＳヘッダ長の取得を含むＰＥＳヘッダの解析処理を行うものである。パケット解析部１７は、データ取得処理部１３が読み出しを中断した位置に引き続くＰＥＳデータをＰＥＳバッファ１１から読み出し、読み出したデータがＰＥＳヘッダであることをスタートコードとの一致により判定し、読み出したＰＥＳヘッダから少なくともＰＥＳパケット長およびＰＥＳヘッダ長の情報を取得する。このとき、ＰＴＳ（Presentation Time Stamp）やＤＴＳ（Decoding Time Stamp）等のその他のＰＥＳヘッダ情報を合わせて取得しても良い。
【００３０】
また、パケット解析部１７は、ＰＥＳパケット長及びＰＥＳヘッダ長から、ＰＥＳパケットのペイロードサイズを算出し、算出した値をＰＥＳカウンタ１６に設定する。さらに、パケット分離部１７は、データ取得処理部１３がＰＥＳパケットのペイロードの先頭から読み出しを再開できるよう、データ取得処理部１３の読み出しアドレスを更新する。例えば、データ取得処理部１３の読み出しアドレスを格納するレジスタ（不図示）の値をＰＥＳヘッダ長に相当する数だけ進めることとすればよい。
【００３１】
パケット分離部１７は、上述した処理の完了後、データ取得処理部１３に対して、ＰＥＳデータの読み出し及び復号化実行部１４へのデータ出力の再開を通知する。このような構成により、データ取得処理部１３は、ＥＳデータのみを復号化実行部１４に出力することができる。
【００３２】
図１に示したストリームデータ処理装置１は、プログラムを実行するプロセッサ及びＲＡＭ等を有するプロセッサ・システムにより構成することが可能である。図２は、プロセッサ・システムにより構成したストリームデータ処理装置１の例を示している。命令実行部１０１は、ＲＯＭ１０４又はＲＡＭ１０５から命令をフェッチして実行する処理部である。プログラムカウンタ１０２は、命令実行部１０１で実行されている命令のアドレスを格納するカウンタであり、プログラムカウンタ１０２の値は命令実行部１０１によって更新される。命令が逐次実行されている場合には、プログラムカウンタ１０２の値は命令長に相当する値ずつ更新されるが、割り込みが発生した場合は、割り込み処理の命令によって不連続に更新されることになる。
【００３３】
汎用レジスタ１０３は、命令実行部１０１の演算処理に使用するレジスタ群である。図３の構成では、汎用レジスタ１０３の一部をＰＥＳカウンタ１６として使用することとしている。また、ＲＡＭ１０５の一部をＰＥＳバッファ１１として使用する。なお、他の演算によってＰＥＳカウンタ１６が不用意に書き換えられることを防止するため、ＰＥＳカウンタ１６として汎用レジスタ１０３を割り当てるのではなく、専用のレジスタを設けることとしても良い。
【００３４】
命令実行部１０１は、割り込みが発生していない状態においては、データ取得処理部１３が行うＰＥＳバッファ１１からのデータ読み出し処理に相当する読み出し命令（ＬＯＡＤ命令）を順次行うプログラムを実行する。このＬＯＡＤ命令の実行時には、読み出したデータのデータ長に応じてＰＥＳカウンタ１６の値を減少させる。境界検出部１５は、ＰＥＳカウンタ１６の値を監視しており、ＰＥＳカウンタ１６がゼロになると命令実行部１０１に対する割り込み要求を行い、割り込み要求を受け付けた命令実行部１０１は、パケット解析部１７が行う一連の処理を実行するプログラムに分岐する。
【００３５】
図３は、境界検出部１５によるパケット境界の検出を割り込み要因として、命令実行部１０１の処理がデータ取得処理からパケット分解処理に分岐する割り込み処理の概念を示す図である。図３に示すように、データ取得処理におけるＬＯＡＤ命令を順次実行している最中に、ＰＥカウンタ１６の値を参照している境界検出部１５がパケット境界を検出すると（境界検出３０１）、境界検出部１５が命令実行部１０１に対して割り込みを発生し、命令実行部１０１はデータ取得処理を中断してパケット分解処理に分岐する。
【００３６】
分岐後のパケット解析処理では、上述したように、ＰＥＳスタートコードを検出してＰＥＳヘッダの先頭を認識し、ＰＥＳヘッダ長及びＰＥＳパケット長等のＰＥＳヘッダ情報を取得し、ＰＥＳカウンタ１６の値を次のＰＥＳパケットのペイロード長に設定する。また、復帰後のＬＯＡＤ命令が読み出しアドレスの格納場所として参照するアドレスレジスタの値をＰＥＳヘッダ長に相当するデータ長だけ進める。例えば、パケット解析処理に移る前のアドレスレジスタの値がＸであり、スタートコードを含むパケットヘッダ長が６４ビットであった場合は、アドレスレジスタの値をＸ＋６４に更新する。パケット解析処理が終了すると、上記のアドレスレジスタを除くプログラムカウンタ１０２及び汎用レジスタ１０３の値を中断前の値に復元して、データ取得処理に復帰する。
【００３７】
なお、上述した図２及び図３は、説明の簡略化のため、復号化実行部１４の処理を省略したが、復号化処理も命令実行部１０１で行うことができる。また、復号化処理用の専用ハードウェアを備えることとしてもよい。
【００３８】
図３に示したように、ストリームデータ処理装置１をプロセッサ・システムによって構成し、境界検出部１５によるパケット境界の検出によって命令実行部１０１に割り込みを発生し、パケット分解処理を割り込み処理として実行することができる。これにより、命令実行部１０１においてパケット境界の検出処理を行う必要がなくなるため、命令実行部１０１の処理負荷を軽減し、データ取得処理その他の処理を効率よく実行することができる。
【００３９】
図４は、上述したストリームデータ処理装置１が行うＰＥＳデータの取得及びパケット分解の処理を示すフローチャートである。ステップＳ１０１では、ＰＥＳカウンタ１６を初期化する。ここで、初期化とは、ＰＥＳカウンタ１６の値を境界検出部１５がＰＥＳパケットの境界と判断する値に設定することを意味する。以下の説明では、パケット境界に対応するＰＥＳカウンタ１６の値はゼロとし、初期化ではカウンタ値をゼロに設定するものとする。なお、ＰＥＳカウンタ１６の初期化を行う理由は、ＰＥＳデータの取得を新たに開始した場合は、最初にヘッダ解析部１７においてＰＥＳヘッダを認識する必要があるためである。ＰＥＳカウンタ１６の初期化を行うことにより、後述するステップＳ１０７及びＳ１０８を無条件に実行してスタートコードとの一致によりＰＥＳヘッダを判定することが可能となる。
【００４０】
ステップＳ１０２では、上述したＬＯＡＤ命令等のデータ取得処理部１３の処理を実行するための命令（以下、データ取得命令と呼ぶ）が発行されたか否かを判定する。データ取得命令が発行されるとステップＳ１０３以降を実行する。
【００４１】
ステップＳ１０３では、ＰＥＳカウンタ１６の値がゼロか否かを判定する。ステップＳ１０３の判定は、境界検出部１５の処理に対応する。ステップＳ１０３において、ＰＥＳカウンタ１６がゼロでない場合は、ステップＳ１０４乃至Ｓ１０６を実行する。
【００４２】
ステップＳ１０４では、ＰＥＳバッファ１１からＰＥＳデータを読み込む。データ読み込み単位は、1ビット単位又は1バイト単位など所定の単位で行えばよい。ステップＳ１０５では、読み込んだＰＥＳデータのサイズに応じてＰＥＳカウンタ１６の値を減少する。ステップＳ１０６では、ステップＳ１０２で発行されたデータ取得命令で指定されたデータ数の読み込みが終了したか否かを判定する。指定されたデータ数の読み込みが終了するとステップＳ１０２へ戻る。読み込みが終了していなければ、ステップＳ１０３へ戻る。
【００４３】
ステップＳ１０３の判定においてＰＥＳカウンタ１６の値がゼロであった場合は、ステップＳ１０７乃至Ｓ１０９の処理を実行する。これらは、パケット解析部１７の処理に対応するものである。ステップＳ１０７では、ＰＥＳバッファ１１からの読み出しデータがＰＥＳパケットの先頭を示すスタートコードと一致するか否かを判定する。スタートコードと一致しない場合は、ＰＥＳバッファ１１から次の１ビットデータを読み出して（ステップＳ１０８）、スタートコードとの一致判定を繰り返す。スタートコードを検出した場合、ＰＥＳバッファ１１からＰＥＳヘッダに相当するデータを読み出して、ＰＥＳヘッダ長及びＰＥＳパケット長を含むＰＥＳヘッダの情報を取得する（ステップＳ１０９）。ステップＳ１１０では、ＰＥＳヘッダ長及びＰＥＳパケット長より算出したＰＥＳパケットのペイロード長によってＰＥＳカウンタ１６の値を更新し、ステップＳ１０３へ戻る。
【００４４】
以上に説明したように、本実施の形態にかかるストリームデータ処理装置１は、ＰＥＳデータを格納するＰＥＳバッファ１１からＰＥＳデータを順次読み出して復号化処理を行う復号化実行部１４に出力する。ここで、読み出したＰＥＳデータがＰＥＳヘッダとなる場合には、復号化実行部１４に対する出力を中断し、パケット解析部１７においてＰＥＳヘッダを解析することにより、ＰＥＳヘッダを除くＰＥＳパケットのペイロード部分のみを復号化実行部１４に出力するよう動作するものである。
【００４５】
つまり、ストリームデータ処理装置１は、パケット解析部１７がＰＥＳヘッダの解析処理によって取得したペイロード長の情報を用いて、復号化部１２がＰＥＳデータのペイロード部分の読み出し及び復号化の処理を行うものである。このように、ストリームデータ処理装置１は、ヘッダ解析部１７によるヘッダ処理と復号化部１２による復号化処理を関係付けて実行することを特徴とする。このような構成により、従来のストリーム処理装置８のパケット分解部８１２と復号化部８１４との間に設けていたＥＳバッファ８１３のように、パケット分解処理と復号化処理とを独立に実施するために必要であったバッファメモリが不要となる。これにより、本実施の形態のストリームデータ処理装置１は、ＥＳバッファに対するメモリアクセスが不要となるため、ＰＥＳデータのパケット処理及び復号化処理を効率よく行うことができる。
【００４６】
また、ストリームデータ処理装置１は、ＰＥＳヘッダに含まれるＰＥＳパケット長及びＰＥＳヘッダ長から算出したＰＥＳパケットのペイロードサイズを保持しておき、データ取得処理部１３が1パケット分のＰＥＳデータを読み出したことを検出することによって、ＰＥＳバッファ１１から読み出すデータがＰＥＳパケットの境界に到達したか否かの判定を行う。つまり、ストリームデータ処理装置１は、ＰＥＳヘッダから取得したＰＥＳパケット長の情報とデータ取得処理部１３の読み出しデータ数に基づいてパケット境界の検出を行うものである。これにより、ＰＥＳデータの取得を開始して最初にＰＥＳヘッダを認識するまでの処理を除いて、パケット境界を検出するためにＰＥＳヘッダの先頭を示すスタートコードとの一致判定を行う必要がなくなる。このため、パケット分解に要する処理量を削減することができる。
【００４７】
発明の実施の形態２．
図５は、本実施の形態にかかるストリームデータ処理装置２の機能ブロック図である。ストリームデータ処理装置２は、オーディオデータまたはビデオデータを入力してこれを符号化し、さらに符号化したＥＳデータをパケット化してＰＥＳデータを出力するものである。
【００４８】
符号化部２１は、符号化実行部２２及びデータ書込み処理部２３を備えている。このうち、符号化実行部２２は、ビデオデータ又はオーディオデータを入力し、ＭＰＥＧ−２標準に準拠した符号化処理を行う。データ書込み処理部２３は、符号化実行部２２によって符号化されたＥＳデータを入力し、１ビット単位又は１バイト単位等の所定単位でＰＥＳバッファ２４に格納する。
【００４９】
ここで、データ書込み処理部２３によってＰＥＳバッファ２４に出力されるＥＳデータの所定の位置にＰＥＳヘッダを挿入し、ＰＥＳデータとしてＰＥＳバッファ２４に格納する必要がある。このため、ストリームデータ処理装置２は、データ書込み処理部２３からＰＥＳバッファ２４に格納するデータにＰＥＳヘッダを挿入すべきタイミングを境界検出部２５によって検出し、この検出結果に応じて符号化実行部２２によるＥＳデータの出力及びデータ書込み処理部２３によるＰＥＳパケットバッファ２４への出力を中断することにより、ＰＥＳパケットバッファ２４に対するＰＥＳヘッダの出力ができるよう構成している。
【００５０】
データ書込み処理部２３は、符号化実行部２２から受信したＥＳデータのデータ長又はＰＥＳバッファ２４に出力したデータ長に相当する値だけＰＥＳカウンタ２６の値を減少又は増加する。境界検出部２５は、ＰＥＳカウンタ２６の値を監視しており、ＰＥＳカウンタ２６が所定の値になると符号化実行部２２及びデータ書込み処理部２３の処理を中断させる。
【００５１】
具体的には、データ書込み処理部２３によってＰＥＳバッファ２４に出力されるＰＥＳパケットのペイロードのサイズをＰＥＳカウンタ２６に格納しておき、データ書込み処理部２３がＰＥＳパケットのペイロードの先頭データにあたるＥＳデータの書込みを開始するタイミングに合わせてＰＥＳカウンタ２６の値の減少を開始すればよい。このような動作によれば、ＰＥＳカウンタ２６の値がゼロになったことによって、データ書込み処理部２３によるＰＥＳパケットのペイロード部分の書込みが終了して、ＰＥＳヘッダを挿入すべきパケット境界に到達したことを判定することができる。
【００５２】
さらに、境界検出部２５は、データ書込み処理部２３によるデータ書込みがＰＥＳパケットの境界に到達したことをＰＥＳカウンタ２６の値によって判定すると、パケット化部２７に対してＰＥＳヘッダの挿入を指示する。
【００５３】
パケット化部２７は、境界検出部２５による指示に応答して、ＰＥＳバッファ２４にＰＥＳヘッダの書込み指示を行う。ＰＥＳヘッダに含まれるＰＥＳパケット長は、符号化実行部２２によって算出されるか又はユーザ指定値等の所定値として与えられる。また、ＤＴＳ、ＰＴＳ等の情報は、符号化実行部２２によって算出される。さらに、パケット化部２７は、ＰＥＳカウンタ２６にＰＥＳペイロードサイズを設定する。
【００５４】
パケット化部２７は、上述した処理の完了後、符号化実行部２２及びデータ書込み処理部２３に対して、処理の再開を指示する。
【００５５】
図６は、上述したストリームデータ処理装置２が行うパケット化の処理を示すフローチャートである。ステップＳ２０１では、ＰＥＳカウンタ２６を初期化する。ここで、初期化とは、ＰＥＳカウンタ２６の値を境界検出部２５がＰＥＳパケットの境界と判断する値に設定することを意味する。以下の説明では、パケット境界に対応するＰＥＳカウンタ２６の値はゼロとし、初期化ではカウンタ値をゼロに設定するものとする。ステップＳ２０２では、データ書込み処理部２３の処理を実行するための命令（以下、データ書込み命令と呼ぶ）が発行されたか否かを判定する。データ書込み命令が発行されるとステップＳ２０３以降を実行する。
【００５６】
ステップＳ２０３では、ＰＥＳカウンタ２６の値がゼロか否かを判定する。ステップＳ２０３の判定は、境界検出部２５の処理に対応する。ステップＳ２０３において、ＰＥＳカウンタ２６がゼロでない場合は、ステップＳ２０４乃至Ｓ２０６を実行する。
【００５７】
ステップＳ２０４では、データ書込み処理部２３が符号化実行部２２によって生成されたＥＳデータをＰＥＳバッファ２４に出力する。データ書込み単位は、１ビット単位又は1バイト単位など所定の単位で行えばよい。ステップＳ２０５では、ＰＥＳバッファ２４に格納したデータのデータ長に応じてＰＥＳカウンタ２６の値を減少する。ステップＳ２０６では、ステップＳ２０２で発行されたデータ書込み命令で指定されたデータ長の書込みが終了したか否かを判定する。指定されたデータ長の書込みが終了するとステップＳ２０２へ戻る。指定されたデータ長の書き込み終了していなければ、ステップＳ２０３へ戻る。
【００５８】
ステップＳ２０３の判定においてＰＥＳカウンタ２６の値がゼロであった場合は、ステップＳ２０７及びＳ２０８の処理を実行する。これらは、パケット化部２７の処理に対応するものである。ステップＳ２０７では、ＰＥＳヘッダをＰＥＳバッファ２４に出力する。ステップＳ２０８では、ＰＥＳカウンタ２６の値をＰＥＳパケットのペイロードのデータ長に設定し、ステップＳ２０３へ戻る。
【００５９】
本実施の形態にかかるストリームデータ処理装置２は、符号化部２１によって符号化されたＥＳデータを順次ＰＥＳバッファ２４に格納するが、ＰＥＳバッファ２４への書込みデータ長からＰＥＳパケットを挿入すべきタイミングであることを判定すると、符号化部２１の処理を中断し、パケット化部２５によってＰＥＣヘッダをＰＥＳバッファ２４に格納するものである。
【００６０】
このように、符号化処理とパケット化処理を関係付けて実行することにより、従来のストリーム処理装置８において符号化部８２１とパケット化部８２３との間に設けていたＥＳバッファ８２２が不要となる。このため、メモリアクセス回数を削減し、ＰＥＳデータを生成するための符号化処理及びパケット化処理を効率よく行うことができる。
【００６１】
また、ストリームデータ処理装置２は、ＰＥＳパケットのペイロードサイズを保持しておき、データ書込み処理部２３が1パケット分のペイロードに格納可能なＥＳデータを出力したこと、又は、符号化実行部２２が1パケット分のペイロードに格納可能なＥＳデータを生成したことを検出することによって、ＰＥＳヘッダを挿入すべきパケット境界に到達したか否かを判定する。つまり、ストリームデータ処理装置２は、符号化実行部２２等から取得したＰＥＳパケット長の情報とデータ書込み処理部２３の書き込みデータ長に基づいてパケット境界の検出を行うものである。
【００６２】
これにより、パケット境界を検出するために、ＥＳデータに含まれる特殊コードとの一致判定等の処理を行ってＰＥＳヘッダ挿入位置を判定する必要がないため、パケット化に要する処理量を削減することができる。また、特許文献１に開示されたパケット化装置のようにＥＳデータに付随するフラグビットを転送する必要もないため、フラグビットの転送に伴うビットレートの上昇やフラグビットを保持に伴うメモリ領域の消費は発生しない。
【００６３】
またさらに、ストリームデータ処理装置２は、ストリームデータ処理装置１と同様にプロセッサ・システムによって構成し、境界検出部２５によるパケット境界の検出によって命令実行部１０１に割り込みを発生し、パケット化処理を符号化処理に対する割り込み処理として実行することができる。これにより、命令実行部１０１においてパケット境界の検出処理を行う必要がなくなるため、命令実行部１０１の処理負荷を軽減し、データ書き込みを含む符号化処理を効率よく実行することができる。
【００６４】
発明の実施の形態３．
図７は、本実施の形態にかかるストリームデータ処理装置３の機能ブロック図である。ストリームデータ処理装置３は、発明の実施の形態１のストリームデータ処理装置１が行うＰＥＳパケットの境界を検出する処理に加えて、別の境界を検出する処理を行うものである。図７では、別の境界検出の一例としてバッファ境界を検出してバッファ管理を行う場合の構成を示している。
【００６５】
バッファの管理方法にはいくつかの手法があるが、以下では、複数の有限長バッファをリンクリストによって管理することにより１つのＰＥＳバッファ１１として使用する場合を説明する。リンクリストでは、有限長バッファの間をポインタによって関係付けている。
【００６６】
バッファカウンタ３８は、現在の処理対象となっている有限長バッファの残データ数を格納するカウンタである。バッファカウンタ２８の初期値を、処理対象である有限長バッファが格納可能な最大データ数とすれば、バッファカウンタ３８の値がゼロであれば、現在の有限長バッファの終端まで到達したことを判断することができる。このため、境界検出部３５は、バッファカウンタ３８がゼロになったことを検出すると、データ取得処理部１３の処理を中断させ、バッファ管理部３９に対してバッファ管理処理の実行を指示する。
【００６７】
バッファ管理部３９は、終端部に到達した有限長バッファにアクセスし、最終データとして格納されている次の有限長バッファに対するポインタを読み出す。ポインタには、次の有限長バッファの先頭アドレス、格納可能なデータサイズが示されている。バッファ管理部３９は、ポインタの情報を参照して、次の有限長バッファが格納可能なデータ数をバッファカウンタ３８に設定する。バッファ管理部３９は、上述した処理の完了後、データ取得処理部１３に対して、ＰＥＳデータの読み出し及び復号化実行部１４へのデータ出力の再開を通知する。
【００６８】
ストリームデータ処理装置３は、上述したストリームデータ処理装置１と同様にプロセッサ・システムによって構成でき、バッファ管理部３９の処理はパケット解析処理と同様にデータ取得処理に対する割り込み処理として行うことができる。なお、バッファ管理部３９の処理を割り込み要因とする割り込み要求とパケット解析処理を割り込み要因とする割り込み要求が同時に発生する場合が想定されるが、この場合は、従来から知られている多重割り込み技術を適用すればよい。具体的には、より優先度の高い割り込み処理、本実施の形態ではバッファ管理部３９の処理をパケット解析処理に優先して実行するよう割り込みの制御を行えば良い。
【００６９】
このように、ストリームデータ処理装置３は、ＰＥＳデータの取得処理を行っている途中に、処理データ数に応じて複数の別の処理（パケット分解、バッファ管理等）を実行する必要がある場合に、ＰＥＳデータの取得処理を中断して、これらの別の処理を実行することができる。
【００７０】
上述した実施の形態では、ＰＥＳパケットの境界及びバッファ境界をストリームデータの境界点として示した。しかしながら、これら以外のデータ位置を境界検出部で検出することとしてもよい。ビット単位、バイト単位など所定の単位でストリームデータの処理を行っている途中で、処理データ数に応じて別の処理を実行する必要がある場合には、別の処理に移行する契機となるデータ位置を境界検出部で検出すればよい。
【００７１】
また上述した実施の形態では、ＭＰＥＧ−２のＰＥＳデータに対する処理を行う装置を説明した。しかしながら、本発明の適用先はＭＰＥＧ−２に限られるものではなく、パケット化されたストリームデータの処理に広く有効である。
【図面の簡単な説明】
【００７２】
【図１】本発明にかかるストリームデータ処理装置の機能ブロック図である。
【図２】本発明にかかるストリームデータ処理装置の構成例を示す図である。
【図３】割り込み処理によってパケット解析処理を行う動作を説明する模式図である。
【図４】本発明のデータ処理装置の動作を示すフローチャートである。
【図５】本発明にかかるストリームデータ処理装置の機能ブロック図である。
【図６】本発明のデータ処理装置の動作を示すフローチャートである。
【図７】本発明にかかるストリームデータ処理装置の機能ブロック図である。
【図８】従来のストリームデータ処理装置の機能ブロック図である。
【符号の説明】
【００７３】
１、２、３  ストリームデータ処理装置
１１  ＰＥＳバッファ
１２  復号化部
１３  データ取得処理部
１４  復号化実行部
１５  境界検出部
１６  ＰＥＳカウンタ
１７  パケット解析部
１０１  命令実行部
１０２  プログラムカウンタ（ＰＣ）
１０３  汎用レジスタ
１０４  ＲＯＭ
１０５  ＲＡＭ
２１  符号化部
２２  符号化実行部
２３  データ書込み処理部
２４  ＰＥＳバッファ
２５  境界検出部
２６  ＰＥＳカウンタ
２７  パケット化部
３５  境界検出部
３８  バッファカウンタ
３９  バッファ管理部
【図１】
2007124495.tif 000003
【図２】
2007124495.tif 000004
【図３】
2007124495.tif 000005
【図４】
2007124495.tif 000006
【図５】
2007124495.tif 000007
【図６】
2007124495.tif 000008
【図７】
2007124495.tif 000009
【図８】
2007124495.tif 000010