(57)【要約】【課題】復号処理の遅延時間をより低減させることができるようにする。【解決手段】分析部１３２は、コードストリームを伝送中に分析する。分割位置決定部１３３は、分析結果に基づいてコードストリームの分割位置を決定する。分割部１３４は、記憶部１２２からコードストリームを、分割位置決定部１３３により決定された位置で分割しながら読み出す。復号制御部１３５は、分割されたコードストリームを複数の復号処理実行部に分配し、並列的に復号処理を実行させる。本発明は、例えば、復号装置に適用することができる。【選択図】図４
2010278597.tif 000002
【特許請求の範囲】
【請求項１】
画像データが符号化されたコードストリームを伝送中に分析する分析手段と、
前記分析手段による分析の結果に基づいて、前記画像データの画像のサイズに応じて前記コードストリームの分割位置を決定する分割位置決定手段と、
前記分割位置決定手段により決定された前記分割位置において前記コードストリームが分割されて得られる複数の分割単位のコードストリームを並列的に復号する復号手段と
を備える情報処理装置。
【請求項２】
前記分析手段は、前記コードストリームを分析して前記画像データの画像の１ラインを特定し、
前記分割単位決定手段は、前記画像データの画像の１ラインまたは複数ラインを単位として前記分割位置を決定する
請求項１に記載の情報処理装置。
【請求項３】
前記分析手段は、前記コードストリームのスライススタートコードを検出し、前記スライススタートコード直後のマクロブロック番号に基づいて、ライン先頭のマクロブロックを検索することにより、前記１ラインを特定し、
前記分割単位決定手段は、前記マクロブロックのライン数を単位として前記分割位置を決定する
請求項２に記載の情報処理装置。
【請求項４】
前記コードストリームを取得する取得手段と、
前記取得手段により取得された前記コードストリームを記憶する記憶手段と
をさらに備え、
前記分析手段は、前記取得手段により取得された前記コードストリームを、前記記憶手段に記憶させながら分析する
請求項１に記載の情報処理装置。
【請求項５】
前記分割位置決定手段は、前記記憶手段のバースト境界に合わせて前記分割位置を決定する
請求項４に記載の情報処理装置。
【請求項６】
前記復号手段による復号処理の結果を、バースト転送により前記記憶手段に供給して記憶させる制御手段と、
前記記憶手段により記憶されている前記復号処理の結果を、前記バースト転送により前記記憶手段から読み出し、出力する出力手段と
をさらに備える請求項５に記載の情報処理装置。
【請求項７】
分析手段は、画像データが符号化されたコードストリームを伝送中に分析し、
分割位置決定手段は、分析の結果に基づいて、前記画像データの画像のサイズに応じて前記コードストリームの分割位置を決定し、
復号手段は、前記分割位置において前記コードストリームが分割されて得られる複数の分割単位のコードストリームを並列的に復号する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、特に、復号処理の遅延時間をより低減させることができるようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
従来、MPEG（Moving Picture Experts Group）と呼ばれる符号化方式により動画像を符号化して得られた符号化ストリームを復号する復号装置がある。規格化されてきたMPEGシリーズの中ではMPEG2が一般的ではある。最近では圧縮率を高めたMPEG4や、AVC（Advanced Video Coding）といった圧符号化方式も規格化されている。
【０００３】
パーソナルコンピュータにおいてこのような符号化ストリームを復号する場合、例えば拡張ボード等によってパーソナルコンピュータに増設された、ハードウェアで構成される復号器を用いて復号する方法がある。
【０００４】
この様な場合、パーソナルコンピュータは、符号化ストリームを復号する必要が生じたときに、その符号化ストリームを復号器に供給する。復号器は、パーソナルコンピュータから符号化ストリームを取得するとそれを復号し、ベースバンドのデータをパーソナルコンピュータに返す。したがって、パーソナルコンピュータが復号器に符号化ストリームを供給してからその符号化結果を得るまでの遅延時間（レイテンシ）が大きいと、パーソナルコンピュータが実行する処理全体の処理時間が大きくなる問題があった。
【０００５】
特に一般的な変換、エフェクトを行うアプリケーションソフトのコーデックI/Fは、１フレームずつ復号する事を前提としているので、動画像データ全体のレイテンシがさらに大きくなることになる。
【０００６】
例えば映画製作などの非圧縮映像を扱ってきた分野では画像が4k x2kなど高精細化になる方向にあり、データの符号化はさらに重要になってきている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２９２４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、復号処理のレイテンシが大きくなると、編集時間が増大し、現実的に不可能となってしまう恐れがあった。
【０００９】
MPEG2ではデコードをより低レイテンシで行う手法もあるが、MPEG2はフレーム間圧縮のため、それでもレイテンシが大きかった。また、圧縮率が高くフレーム内圧縮のMPEG4 Simple Studio Profile(以下SStPと称する)がある（例えば、特許文献１参照）。
【００１０】
しかしながら、MPEG4 SStPを用いて低レイテンシな復号処理を行う方法は無かった。例えば、MPEG2ではストリーム中にラインの始まりを示す部分が存在するが、MPEG4では存在しないため、従来手法を適用することは困難であった。
【００１１】
本発明は、このような状況に鑑みて提案されたものであり、復号処理の遅延時間をより低減させることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一側面は、画像データが符号化されたコードストリームを伝送中に分析する分析手段と、前記分析手段による分析の結果に基づいて、前記画像データの画像のサイズに応じて前記コードストリームの分割位置を決定する分割位置決定手段と、前記分割位置決定手段により決定された前記分割位置において前記コードストリームが分割されて得られる複数の分割単位のコードストリームを並列的に復号する復号手段とを備える情報処理装置である。
【００１３】
前記分析手段は、前記コードストリームを分析して前記画像データの画像の１ラインを特定し、前記分割単位決定手段は、前記画像データの画像の１ラインまたは複数ラインを単位として前記分割位置を決定することができる。
【００１４】
前記分析手段は、前記コードストリームのスライススタートコードを検出し、前記スライススタートコード直後のマクロブロック番号に基づいて、ライン先頭のマクロブロックを検索することにより、前記１ラインを特定し、前記分割単位決定手段は、前記マクロブロックのライン数を単位として前記分割位置を決定することができる。
【００１５】
前記コードストリームを取得する取得手段と、前記取得手段により取得された前記コードストリームを記憶する記憶手段とをさらに備え、前記分析手段は、前記取得手段により取得された前記コードストリームを、前記記憶手段に記憶させながら分析することができる。
【００１６】
前記分割位置決定手段は、前記記憶手段のバースト境界に合わせて前記分割位置を決定することができる。
【００１７】
前記復号手段による復号処理の結果を、バースト転送により前記記憶手段に供給して記憶させる制御手段と、前記記憶手段により記憶されている前記復号処理の結果を、前記バースト転送により前記記憶手段から読み出し、出力する出力手段とをさらに備えることができる。
【００１８】
本発明の一側面は、また、分析手段は、画像データが符号化されたコードストリームを伝送中に分析し、分割位置決定手段は、分析の結果に基づいて、前記画像データの画像のサイズに応じて前記コードストリームの分割位置を決定し、復号手段は、前記分割位置において前記コードストリームが分割されて得られる複数の分割単位のコードストリームを並列的に復号する情報処理方法である。
【００１９】
本発明の一側面においては、画像データが符号化されたコードストリームが伝送中に分析され、分析の結果に基づいて、画像データの画像のサイズに応じてコードストリームの分割位置が決定され、分割位置においてコードストリームが分割されて得られる複数の分割単位のコードストリームが並列的に復号される。
【発明の効果】
【００２０】
本発明によれば、情報を処理することができる。特に、復号処理の遅延時間をより低減させることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図２】図１の復号処理ユニットの詳細な構成例を示すブロック図である。
【図３】コードストリーム取得処理の流れの例を説明するフローチャートである。
【図４】分割単位決定処理の流れの例を説明するフローチャートである。
【図５】データの構造例を示す図である。
【図６】復号制御処理の流れの例を説明するフローチャートである。
【図７】分割の様子の例を説明する図である。
【図８】転送処理の流れの例を説明するフローチャートである。
【図９】遅延の様子の例を説明する図である。
【図１０】本発明を適用したパーソナルコンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、発明を実施するための形態（以下実施の形態とする）について 説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（低遅延復号処理）
２．第２の実施の形態（パーソナルコンピュータ）
【００２３】
＜１．第１の実施の形態＞
［デバイスの構成］
図１は、本発明を適用した情報処理システムの構成例を示すブロック図である。
【００２４】
図１に示される情報処理システム１００は、パーソナルコンピュータ１０１が、画像データが符号化されたコードストリームを、バス１０３を介して復号処理ユニット１０２に供給して復号させ、バス１０３を介して復号結果を取得するシステムである。
【００２５】
コードストリームは、画像データが、MPEG4 Simple Studio Profile（以下SStPと称する）により符号化されたものである。すなわち、復号処理ユニット１０２は、コードストリームを、フレーム内圧縮（Intra）であるMPEG4 SStP方式で低レイテンシに復号する。
【００２６】
パーソナルコンピュータ１０１は、CPU（Central Processing Unit）１１１、主記憶部１１２、チップセット１１３、ホストバスアダプタ１１４、および補助記憶部１１５を有する。
【００２７】
CPU１１１は、補助記憶部１１５に記憶されているプログラムやデータを読み出して主記憶部１１２にロードして実行し、演算や制御処理を行う。主記憶部１１２は、例えばDRAM（Dynamic Random Access Memory）等の半導体メモリ等により構成され、各種情報を一時的に保持する。
【００２８】
チップセット１１３は、CPU１１１のバスインタフェース等の処理を行う。ホストバスアダプタ１１４は、補助記憶部１１５等の記憶媒体やドライブ等を接続するバスのインタフェースである。補助記憶部１１５は、例えば、ハードディスクやフラッシュメモリ等により構成される大容量の記憶媒体である。
【００２９】
復号処理ユニット１０２は、制御部１２１、記憶部１２２、および復号部１２３を有する。制御部１２１は、例えばCPU等により構成され、復号処理ユニット１０２の各部を制御する。記憶部１２２は、例えばDRAM等の半導体メモリ等により構成され、各種情報を一時的に保持する。復号部１２３は、符号化データをMPEG4 SStP方式で復号して動画像データを得る復号処理を行う。
【００３０】
パーソナルコンピュータ１０１の補助記憶部１１５は、動画像データがMPEG4 SStP方式で符号化されたコードストリームを記憶する。CPU１１１は、チップセット１１３およびホストバスアダプタ１１４を介して補助記憶部１１５からそのコードストリームを読み出し、主記憶部１１２に保持させる。
【００３１】
CPU１１１は、主記憶部１１２に保持させたコードストリームを読み出し、チップセット１１３、およびバス１０３を介して復号処理ユニット１０２に供給する。復号処理ユニット１０２の制御部１２１は、そのコードストリームを取得すると、それを記憶部１２２に一旦保持させる。
【００３２】
制御部１２１は、所定のタイミングで記憶部１２２からコードストリームを読み出し、復号部１２３に供給し、復号処理させる。制御部１２１は、復号部１２３から復号結果の画像データを得ると、それを記憶部１２２に一旦格納する。制御部１２１は、所定のタイミングで記憶部１２２から動画像データを読み出し、バス１０３を介してパーソナルコンピュータ１０１に供給する。
【００３３】
パーソナルコンピュータ１０１のCPU１１１は、チップセット１１３を介してその動画像データを取得すると、それを主記憶部１１２に保持させ、必要に応じて読み出して、変換処理や画像処理等を行う。また、CPU１１１は、必要に応じて主記憶部１１２に保持されている動画像データを補助記憶部１１５に供給し、記憶させる。
【００３４】
映画製作などの非圧縮映像を扱ってきた分野では画像が4k x2kなど高精細化になる方向であり、補助記憶部１１５の転送帯域が不足するため圧縮を用いる必要が出てくるが、復号処理ユニット１０２における復号処理のレイテンシ（遅延時間）を削減しないとその編集時間が膨大になり現実的でなくなってしまう。
【００３５】
MPEG2はフレーム間圧縮のためレイテンシが大きすぎる。そのため、パーソナルコンピュータ１０１は、圧縮率が高くフレーム内圧縮のMPEG 4SStPを用いる。ここで復号部１２３は、複数の復号処理を並行して実行することができる。
【００３６】
制御部１２１は、レイテンシの低減のために、コードストリームを所定のデータ単位で分割し、それぞれを復号部１２３に互いに並列的に復号させる。
【００３７】
ただし、MPEG 4SStPの場合、コードストリーム中にラインの始まりを示す部分が存在しないため、MPEG2に用いる手法を適用することができない。
【００３８】
また、コードストリームを分割して各コーデックでデコードした結果は、一旦記憶部１２２に格納し、所定のタイミングで読み出されてパーソナルコンピュータ１０１に転送される。このとき、記憶部１２２へのデータの入出力は、バースト転送で行うのが望ましい。そのためには、分割単位の画像データのデータ量が、記憶部１２２のバースト境界に対応する必要がある。分割単位の画像データのデータ量がバースト境界に一致しないと、バースト転送を行うことができないため、逆にレイテンシが増加してしまう恐れがあった。
【００３９】
そこで、復号処理ユニット１０２の制御部１２１は、MPEG 4SStPのコードストリームから、ラインの始まりを検出し、その１ラインを単位としてコードストリームの分割位置を決定する。また、制御部１２１は、バースト境界も考慮しながらコードストリームの分割位置を決定する。
【００４０】
図２は、図１の復号処理ユニットの詳細な構成例を示すブロック図である。
【００４１】
図２に示されるように、復号処理ユニット１０２の制御部１２１は、取得部１３１、分析部１３２、分割位置決定部１３３、分割部１３４、復号制御部１３５、および転送部１３６を有する。取得部１３１は、パーソナルコンピュータ１０１から供給されるコードストリームを取得し、それを分析部１３２に供給する。
【００４２】
分析部１３２は、コードストリームを分析し、例えば、そのコードストリームの画像の画サイズを示す画サイズ情報や、マクロブロックの位置や大きさ等の情報を含むマクロブロック情報等、各種情報を取得し、それらを分割位置決定部１３３に通知する。また、分析部１３２は、画像とマクロブロックのサイズからラインの先頭位置を特定し、それを分割位置決定部１３３に通知する。分析部１３２は、コードストリームを記憶部１２２に記憶させながらこの分析を行う。すなわち、分析部１３２は、コードストリームの伝送中にこの分析を行う。したがって、分析部１３２は、この分析処理による遅延時間の増大を抑制することができる。
【００４３】
分割位置決定部１３３は、分析部１３２から供給される各種情報に基づいて、コードストリームの分割位置（分割単位の大きさ）を決定する。このとき、分割位置決定部１３３は、さらに記憶部１２２のバースト境界も考慮して分割位置を決定する。分割位置決定部１３３は、決定した分割位置（分割単位）を分割部１３４に通知する。
【００４４】
分割部１３４は、分割位置決定部１３３から供給される情報に基づいて、記憶部１２２からコードストリームをその分割単位ごとに読み出す（分割位置で分割するように読み出す）ことにより、コードストリームを分割する。分割部１３４は、読み出したコードストリームを順次、復号制御部１３５に供給する。
【００４５】
復号制御部１３５は、分割部１３４により読み出された分割単位のコードストリームを、復号部１２３の復号処理実行部１５１乃至復号処理実行部１５３に分配し、それぞれにおいて復号させ、それぞれの復号結果を取得する。復号制御部１３５は、取得した各復号処理実行部の復号結果を、整列させるように記憶部１２２の所定のアドレスに記憶させる。また、復号制御部１３５は、復号結果を記憶部１２２に保持させたことを転送部１３６に通知する。
【００４６】
転送部１３６は、記憶部１２２から復号結果である画像データを分割単位ごとに読み出し、パーソナルコンピュータ１０１に転送する。
【００４７】
記憶部１２２は、パーソナルコンピュータ１０１から供給されたコードストリームを記憶する領域１４１と、復号制御部１３５から供給された復号結果である画像データを記憶する領域１４２とを有する。図２に示されるように、領域１４１には、パーソナルコンピュータ１０１から供給されるコードストリームがその供給順に並べられて格納される。また、領域１４２には、復号部１２３から供給された画像データが、分割前と同順に並べられて格納される。つまり、転送部１３６が領域１４２から各画像データをアドレス順に読み出すことにより分割単位の画像データが互いに合成される。
【００４８】
復号部１２３は、復号処理実行部１５１乃至復号処理実行部１５３を有する。復号処理実行部１５１乃至復号処理実行部１５３は、それぞれ、コードストリームをMPEG 4SStP方式で復号する。復号処理実行部１５１乃至復号処理実行部１５３は、互いに並行して（並列的に）復号処理を実行することができる。
【００４９】
ここで、「並行して」や「並列的に」とは、各復号処理実行部の復号処理実行期間が重複することを示す。例えば、あるタイミングにおいて複数の復号処理実行部において復号処理が実行されている場合があるということである。つまり、各復号処理実行部の復号処理の開始や終了のタイミングが互いに揃っているとは限らない。
【００５０】
以上のように最大３つの復号処理を並行して実行することができるので、復号部１２３は、復号処理実行部１つと比べて、最大３倍の処理能力を有する。したがって、復号部１２３は、より低遅延に復号処理を行うことができる。なお、復号部１２３が有する復号処理実行部の数は任意であり、２つ以下であってもよいし、４つ以上であっても良い。ただし、復号部１２３の復号処理能力は高いほど望ましい（より高速に動作するか、若しくは、より多くの復号処理を並列的に実行することができることが望ましい）。
【００５１】
また、復号部１２３が制御部１２１と異なるユニット（別体）として構成されるようにしてもよい。もちろん、復号処理実行部同士が互いに同一のユニットに構成される必要は無い。
【００５２】
［処理の流れ］
次に、以上のような構成の復号処理ユニット１０２により実行される各種処理について説明する。パーソナルコンピュータ１０１からコードストリームが供給されると、復号処理ユニット１０２の制御部１２１は、コードストリーム取得処理を実行し、上述したように、そのコードストリームを記憶部１２２に記憶させる。
【００５３】
図３のフローチャートを参照して、コードストリーム取得処理の流れの例を説明する。
【００５４】
コードストリーム取得処理が開始されると、制御部１２１の取得部１３１は、ステップＳ１０１において、記憶部１２２の領域１４１の空き容量を確認する。ステップＳ１０２において、取得部１３１は、確認した空き容量の分、パーソナルコンピュータ１０１からコードストリームを取得する。
【００５５】
ステップＳ１０３において、分析部１３２は、取得したコードストリームの分析を行い、画像のラインの先頭を特定する。ステップＳ１０４において、分割位置決定部１３３は、分析結果に基づいてコードストリームの分割単位を決定する。
【００５６】
より具体的には、分割位置決定部１３３は、データ量が記憶部１２２のバースト境界の整数倍となるライン数を算出し、それを分割単位としてコードストリームの分割位置を決定する。
【００５７】
分割位置決定部１３３は、ライン単位で分割位置を決定する。ただし、マクロブロックの垂直方向のサイズが１６pixelであるので、実際には、分析部１３２は、１６ラインを単位として分割位置を決定する。
【００５８】
一般的に、復号結果の画像データを格納する記憶部１２２には原画像の大きさからDIMM（Dual Inline Memory Module）などDRAMが用いられるが、DRAMへの入出力は、バースト転送で行わないと転送に時間がかかる。つまりデータ入出力のレイテンシ（遅延時間）が大きくなる。
【００５９】
記憶部１２２に対するデータの読み書きの単位（データ量）が、記憶部１２２のバースト境界に合っていない場合、同一バースト境界内部を次の書き込みで上書きしてしまう恐れがあるので、バーストアクセスを行うことができなくなり、レイテンシが増大する恐れがある。また、実現回路も複雑で高価なものになる恐れがある。
【００６０】
つまり、レイテンシの増大やコストの増大を抑制するために、この記憶部１２２への読み書きは、記憶部１２２のバースト境界に合わせた単位で行うのが望ましい。ところで、複数の復号処理実行部から出力された画像データは、一旦記憶部１２２に格納される。より具体的には、復号制御部１３５や転送部１３６は、分割単位の画像データを読み書きする。
【００６１】
したがって、分割位置決定部１３３は、この分割単位の画像データのデータ量が記憶部１２２のバースト境界に合うように分割位置を決定する。
【００６２】
例えば、記憶部１２２が１６バースト、データビット幅（Data bit幅）の合計が１２８bitとする。そのバースト境界は１２８［bit］／８×１６＝２５６［byte］となる。
【００６３】
また、復号結果として得られる画像データの画像が、例えば、画像水平サイズが２０４８［pixel］で、YCbCr＝４：４：４フォーマットで、階調が１０ビットの画像であるとする。
【００６４】
この場合、画像がYCbCr＝４：４：４フォーマット、かつ、１０ビット階調であることから、４［byte］中にYCbCr各１０［bit］を格納することになる。したがって、１ラインのデータ量は、２０４８［pixel］×４［byte/pixel］＝７６８０［byte］となり、バースト境界２５６［byte］の整数倍である。したがってこの場合、分割位置決定部１３３が、１６ラインを分割単位とすることができる。換言すれば、分割位置決定部１３３が１６ラインを分割単位とすることにより、復号制御部１３５および転送部１３６による記憶部１２２へのアクセスを全てバーストアクセスとすることができる。
【００６５】
これに対して、復号結果として得られる画像データの画像が、例えば、画像水平サイズが２０４８［pixel］で、YCbCr＝４：２：２フォーマットで、階調が１０ビットの画像であるとする。
【００６６】
この場合、画像がYCbCr＝４：２：２フォーマット、かつ、１０ビット階調であることから、８［byte］中にYCbCr合計２０［bit］を３［pixel］格納することになる。したがって、１ラインのデータ量は、２０４８［pixel］×８／３［byte/pixel］＝１６３８４／３［byte］となり、バースト境界２５６［byte］の整数倍とならない。この場合、１６ライン分でもバースト境界の整数倍とならない。したがって、分割位置決定部１３３が１６ラインを分割単位とすることにより、復号制御部１３５および転送部１３６による記憶部１２２へのアクセスを全てバーストアクセスとすることができなくなり、遅延時間が増大する恐れがある。
【００６７】
ただし、例えば１４４ライン分であれば、１４４＝４８×３であるので、データ量は、１６３８４／３×１４４［byte］＝７８６４３２［byte］となり、バースト境界２５６［byte］の整数倍となる。つまり、復号制御部１３５および転送部１３６による記憶部１２２へのアクセスを全てバーストアクセスとすることができる。
【００６８】
この場合、もちろん、分割位置決定部１３３は、４８（１６×３）ラインを分割単位とすることもできるし、９６（３２×３）ラインを分割単位とすることもできる。さらに、１９２（６４×３）ラインを分割単位とすることもできる。
【００６９】
以上のように、分割位置（分割単位）が決定されると、ステップＳ１０５に進む。
【００７０】
ステップＳ１０５において記憶部１２２は、分析部１３２から供給されるコードストリームを取得し、保持する。
【００７１】
以上のように、分析部１３２は、コードストリームを記憶部１２２に記憶させながら（伝送中に）分析する。分割位置決定部１３３は、必要な情報が得られ次第、分割位置を決定する。つまり、ステップＳ１０３乃至ステップＳ１０５の各処理は互いに並行して実行されることも可能である。また、既に分割位置（分割単位）が決定されており、その位置を更新する必要が無い場合、ステップＳ１０４の処理は省略される。
【００７２】
ステップＳ１０６において、分割位置決定部１３３は、分析部１３２から供給される分析結果に基づいて、分割単位分のコードストリームが記憶部１２２に保持されたか否かを判定する。分割単位分のコードストリームが記憶部１２２に保持されていないと判定された場合、ステップＳ１０１に戻り、それ以降の処理が繰り返される。ステップＳ１０６において、分割単位分のコードストリームが記憶部１２２に保持されたと判定された場合、ステップＳ１０７に進む。
【００７３】
ステップＳ１０７において、分割位置決定部１３３は、分割部１３４に対して、分割単位分のコードストリームが保持された旨を通知する。通知が終了すると、コードストリーム取得処理が終了する。
【００７４】
次に、図４のフローチャートを参照して、図３のステップＳ１０３において実行される分析処理の流れの例を説明する。必要に応じて図５を参照して説明する。
【００７５】
分析処理が開始されると、分析部１３２は、ステップＳ１２１において、コードストリームを分析し、その画像の画サイズ情報を取得し、分割位置決定部１３３に通知する。ステップＳ１２２において、分析部１３２は、コードストリームを分析し、そのマクロブロックサイズ情報を取得し、分割位置決定部１３３に通知する。
【００７６】
コードストリームは、原動画像の水平ライン単位で分割するが、MPEG4 SStPのコードストリーム内には、MPEG2の様なラインを示す部分は存在しない。そこで、マクロブロック番号（macro block number）を用いて各ラインを特定する（つまりラインの先頭位置を特定する）。
【００７７】
図５は、コードストリームの構造例を示す図である。図５に示されるように、コードストリーム（Visual Object Sequence）は、階層構造となっており、下から３段目に示されるStudio Video Object Planeが１画面分のデータに相当する。
【００７８】
このStudio Video Object Planeには、ヘッダ情報（Header）と、１つまたは複数のスライス（Studio Slice）が存在する。このヘッダ情報には、画像の画サイズを示す情報（vop_widthやvop_height）が含まれる。また、各スライスには、ヘッダ情報（Header）と、１つまたは複数のマクロブロック（Studio Macro Block）が含まれている。そのヘッダ情報には、スライスの先頭を意味するスライススタートコード（Slice_start_code）と、先頭のマクロブロックの識別番号を示すマクロブロック番号（macro block number）が含まれている。
【００７９】
ここでマクロブロックのサイズが１６［pixel］×１６［pixel］とする。このとき、１ラインのサイズ（画素数）／１６が１ライン当たりのマクロブロック数となる。もちろん、これは一例であり、マクロブロックのサイズは任意である。
【００８０】
ここで１ラインが１９２０［pixel］とすると、１ライン当たりのマクロブロック数は、１９２０／１６＝１２０個となる。MPEG4 SStPではスライス（Studio Slice）はラインをまたがないので、マクロブロック番号が１２０の整数倍であるスライスがラインの左端のスライスとなる。つまり、このスライスの先頭がラインの先頭となる。
【００８１】
そこでまず、分析部１３２は、ステップＳ１２３において、コードストリーム中からスライススタートコード（Slice_start_code）を検索することによりスライス（Studio Slice）の先頭（ヘッダ情報（Header））を検索する。スライススタートコードは予め定められている固定値であり、（000001B7 h）であるが、他の値に変更になってもそれに合わせれば良い。
【００８２】
ステップＳ１２４において分析部１３２は、スライススタートコードが検出されたか否かを判定する。スライススタートコードが検出されていないと判定した場合、処理はステップＳ１２３に戻る。つまり、スライススタートコードの検索が継続される。また、ステップＳ１２４において、スライススタートコードが検出されたと判定された場合、ステップＳ１２５に進む。分析部１３２は、ステップＳ１２５において、直後のマクロブロック番号（macro block number）が、「水平方向の画サイズ（vop_width）／マクロブロックサイズ（例えば１６pixel）」であるか否かを判定する。
【００８３】
マクロブロック番号が、「水平方向の画サイズ／マクロブロックサイズ」に一致しないと判定された場合、ステップＳ１２３に戻る。つまり、スライススタートコードの検索が継続される。また、ステップＳ１２５において、マクロブロック番号が、「水平方向の画サイズ／マクロブロックサイズ」に一致すると判定された場合、ステップＳ１２６に進む。
【００８４】
ステップＳ１２６において、分析部１３２は、その位置をラインの先頭であると特定し、その位置を分割位置決定部１３３に通知する。
【００８５】
以上のように、ラインの先頭位置が通知されると、分析処理が終了され、図３のステップＳ１０３に戻り、ステップＳ１０４以降の処理が実行される。つまり、分割位置決定部１３３は、分析部１３２からライン先頭の位置情報を分析結果として取得し、その位置情報に基づいて分割位置を決定する。
【００８６】
図３のステップＳ１０７の処理により、分割単位のコードストリームが保持された旨が通知されると、分割部１３４は、復号制御処理を開始する。
【００８７】
図６のフローチャートを参照して、分割部１３４および復号制御部１３５により実行される復号制御処理の流れの例を説明する。
【００８８】
復号制御処理が開始されると、分割部１３４は、ステップＳ１４１において、記憶部１２２に記憶されているコードストリームを、分割位置決定部１３３により決定された分割単位で読み出す。ステップＳ１４２において、分割部１３４は、読み出した分割単位のコードストリームにヘッダ情報を付加する。ステップＳ１４３において、復号制御部１３５は、分割単位のコードストリームに復号処理実行部の割り当てを行う。
【００８９】
ステップＳ１４４において、復号処理実行部１５１乃至復号処理実行部１５３は、それぞれ、割り当てられた分割単位のコードストリームを復号する。復号処理が終了すると、復号処理実行部１５１乃至復号処理実行部１５３は、得られた復号結果（画像データ）を、それぞれ、復号制御部１３５に返す。ステップＳ１４５において、復号制御部１３５は、供給された各分割単位の画像データに対して、記憶部１２２の格納先のアドレスを指定し、所定順に整列させて記憶部１２２に保持させる。このとき復号制御部１３５は、バースト転送により、分割単位の画像データを記憶部１２２に供給し、格納させる。
【００９０】
ステップＳ１４５の処理が終了すると、復号制御処理が終了される。
【００９１】
図７は、分割の様子の例を説明する図である。図７に示されるように１フレーム分のコードストリーム２０１は、上述したように、バースト境界に合わせた分割位置で分割される。図７は、上述した計算例に対応しており１４４ラインを分割単位としてコードストリーム２０１が分割されている。
【００９２】
分割された各コードストリームには、１フレーム分のコードストリームのときと同じように、Visual Object SequenceからStudio Video Object Planeまでの全てのヘッダ情報が付加される。そして、そのヘッダ情報が付加された分割単位の各コードストリームは、それぞれ、順に復号処理実行部１５１乃至復号処理実行部１５３のいずれかに割り当てられる。
【００９３】
図７の例の場合、最初のコードストリーム２１１が復号処理実行部１５１に割り当てられ、次のコードストリーム２１２が復号処理実行部１５２に割り当てられ、その次のコードストリーム２１３が復号処理実行部１５３に割り当てられている。また、さらにその次のコードストリーム２１４は、また復号処理実行部１５１に割り当てられる。このように、各コードストリームは、所定順に復号処理実行部１５１乃至復号処理実行部１５３に割り当てられる。
【００９４】
したがって、復号処理実行部１５１乃至復号処理実行部１５３は、それぞれ、供給されたコードストリームを、Visual Object Sequenceとして取り扱い、復号処理を行う。
【００９５】
以上のような復号制御処理を実行することにより、制御部１２１は、コードストリームをより低遅延に復号することができる。
【００９６】
以上のような各処理と並行して、転送部１３６は転送処理を実行し、記憶部１２２に格納される画像データをパーソナルコンピュータ１０１に転送する。
【００９７】
図８のフローチャートを参照して、転送処理の流れの例を説明する。
【００９８】
転送処理が開始されると、転送部１３６は、ステップＳ１６１において時系列順に次の分割単位の画像データ（次に転送すべき画像データ）が記憶部１２２に保持されたか否かを判定し、保持されたと判定されるまで待機する。次に転送すべき画像データが保持されたと判定された場合、ステップＳ１６２に進む。
【００９９】
ステップＳ１６２において、転送部１３６は、処理対象とする画像データ、すなわち、次に転送すべき画像データを記憶部１２２から読み出して、パーソナルコンピュータ１０１に転送する。このとき、転送部１３６は、記憶部１２２から画像データをバースト転送で読み出す。
【０１００】
転送が終了すると、転送処理が終了される。転送処理が終了すると、再度、転送処理が新たに実行される。この転送処理は、パーソナルコンピュータ１０１からのコードストリームの供給が停止されるまで繰り返し実行される。
【０１０１】
以上のようにすることにより、転送部１３６は、記憶部１２２に保持される画像データを順次パーソナルコンピュータに提供することができる。
【０１０２】
図９は、１フレーム分のデータ処理における遅延の様子の例を説明する図である。
【０１０３】
この図９には、原動画像が、画像サイズが１９２０［pixel］×１０８０［pixel］で、YCbCr＝４：２：２フォーマットで、階調が１０［bit］で、フレームレートが３０［fps］のプログレッシブ画像であるときの、遅延の様子の例が示されている。
【０１０４】
なお、復号処理実行部１５１乃至復号処理実行部１５３がプログレッシブ方式６０［fps］の復号能力を有し、パーソナルコンピュータ１０１との間のバス１０３にはPCI Express x8が用いられている。この場合、パーソナルコンピュータ１０１から復号処理ユニット１０２への１フレーム分のコードストリーム転送３０１、記憶部１２２から復号部１２３へのコードストリームの分割転送３０２乃至分割転送３０４、復号処理３０５、復号部１２３から記憶部１２２への画像データの分割転送３０６乃至分割転送３０８、並びに、復号処理ユニット１０２からパーソナルコンピュータ１０１への画像データ転送３０９の各処理は、図９に示される様に実行される。つまり、１フレームを約７［ms］という低レインテンシで復号することができる。
【０１０５】
なお、復号処理実行処理部の数を増やせば、レイテンシをさらに抑制することができる。例えば、上述した復号処理実行部を６つ用い、バス１０３として、帯域を合わせたバス（PCI Express x16）などを用いた場合、約３．５［ms］のレイテンシになる。
【０１０６】
以上においては、１フレームだけを復号する場合について説明したが、これに限らず、ストリームを連続的にコンピュータから供給するパイプライン的なI/Fをもつアプリケーションを用いるなどして、原動画像の実時間の６倍速など、n倍速で復号するようにすることも、情報処理システム１００の復号処理ユニット１０２は、容易に実現することができる。
【０１０７】
以上のように、汎用の符号化・復号方式であるMPEG4 SStP方式の復号処理実行部を複数個用い、また、MPEG4 SStPのストリームの仕組みを用いてストリームをパースし、複数に分割してデコード制御することで、低レイテンシで復号処理を行うことができる。
【０１０８】
またこの仕組みを用いて、低レイテンシと共に、実時間のｎ倍などリアルタイム以上の速度で復号することができる。
【０１０９】
＜２．第２の実施の形態＞
［パーソナルコンピュータ］
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図１０に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０１１０】
図１０において、パーソナルコンピュータ４００のCPU４０１は、ROM（Read Only Memory）４０２に記憶されているプログラム、または記憶部４１３からRAM（Random Access Memory）４０３にロードされたプログラムに従って各種の処理を実行する。RAM４０３にはまた、CPU４０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１１１】
CPU４０１、ROM４０２、およびRAM４０３は、バス４０４を介して相互に接続されている。このバス４０４にはまた、入出力インタフェース４１０も接続されている。
【０１１２】
入出力インタフェース４１０には、キーボード、マウスなどよりなる入力部４１１、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部４１２、ハードディスクなどより構成される記憶部４１３、モデムなどより構成される通信部４１４が接続されている。通信部４１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０１１３】
入出力インタフェース４１０にはまた、必要に応じてドライブ４１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア４２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部４１３にインストールされる。
【０１１４】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０１１５】
この記録媒体は、例えば、図１０に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア４２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM４０２や、記憶部４１３に含まれるハードディスクなどで構成される。
【０１１６】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１１７】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１１８】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０１１９】
また、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１２０】
１００  情報処理システム，  １０１  パーソナルコンピュータ，  １０２  復号処理ユニット，  １２１  制御部，  １２２  記憶部，  １２３  復号部，  １３１  取得部，  １３２  分析部，  １３３  分割位置決定部，  １３４  分割部，  １３５  復号制御部，  １３６  転送部，  １５１乃至１５３  復号処理実行部
【図１】
2010278597.tif 000003
【図２】
2010278597.tif 000004
【図３】
2010278597.tif 000005
【図４】
2010278597.tif 000006
【図５】
2010278597.tif 000007
【図６】
2010278597.tif 000008
【図７】
2010278597.tif 000009
【図８】
2010278597.tif 000010
【図９】
2010278597.tif 000011
【図１０】
2010278597.tif 000012