(57)【要約】【課題】より高速に映像ストリームを復号する。【解決手段】  ストリーム解析部２６２は、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を映像ストリームから抽出する。スタート位置検出部２７１は、スライス位置情報に基づいて、デコーダ２６５がデコードを開始するスライスの開始位置を検出する。デコード制御部２６４は、デコーダ２６５がスタート位置検出部２７１により検出された位置からデコードを開始するように制御する。本発明は、映像ストリームを記録および再生する映像記録再生装置に適用することができる。【選択図】図８
2006319943.tif 000002
【特許請求の範囲】
【請求項１】
映像ストリームのフレームの位置を示す情報であるフレーム位置情報の記録を制御するフレーム位置記録制御ステップと、
前記映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御する単位領域位置記録制御ステップと
を含む符号化処理をコンピュータに実行させるプログラム。
【請求項２】
前記フレーム位置記録制御ステップにおいて、符号化された前記映像ストリーム内に前記フレーム位置情報を記録するように制御され、
前記単位領域位置記録制御ステップにおいて、符号化された前記映像ストリーム内に前記単位領域位置情報を記録するように制御される
請求項１に記載のプログラム。
【請求項３】
前記フレーム位置記録制御ステップにおいて、前記映像ストリームとは異なるファイルに前記フレーム位置情報を記録するように制御され、
前記単位領域位置記録制御ステップにおいて、前記ファイルに前記単位領域位置情報を記録するように制御される
請求項１に記載のプログラム。
【請求項４】
前記映像ストリームはMPEG（Moving Picture Experts Group）方式により符号化され、前記単位領域はスライスである
請求項１に記載のプログラム。
【請求項５】
前記フレーム位置記録制御ステップにおいて、符号化された前記映像ストリームのシーケンス層のユーザデータ領域またはGOP（Group Of Pictures）層のユーザデータ領域に前記フレーム位置情報を記録するように制御され、
前記単位領域位置記録制御ステップにおいて、符号化された前記映像ストリームのピクチャ層のユーザデータ領域に前記単位領域位置情報を記録するように制御される
請求項４に記載のプログラム。
【請求項６】
前記フレーム位置情報は、前記映像ストリームの先頭からの前記フレームの相対位置を示す情報を含み、
前記単位領域位置情報は、前記映像ストリームの先頭からの前記単位領域の相対位置を示す情報を含む
請求項１に記載のプログラム。
【請求項７】
前記フレーム位置情報は、さらに、前記フレームの番号および前記フレームのデータ長を示す情報を含み、
前記単位領域位置情報は、さらに、前記フレーム内における前記単位領域の番号および前記単位領域のデータ長を示す情報を含む
請求項６に記載のプログラム。
【請求項８】
前記フレーム位置情報は、データ記録媒体に前記フレームを記録する位置を示す情報を含み、
前記単位領域位置情報は、前記データ記録媒体に前記単位領域を記録する位置を示す情報を含む
請求項１に記載のプログラム。
【請求項９】
前記フレーム位置情報は、さらに、前記フレームの番号および前記フレームのデータ長を示す情報を含み、
前記単位領域位置情報は、さらに、前記フレーム内における前記単位領域の番号および前記単位領域のデータ長を示す情報を含む
請求項８に記載のプログラム。
【請求項１０】
映像ストリームを符号化する符号化方法であって、
前記映像ストリームのフレームの位置を示す情報であるフレーム位置情報の記録を制御するフレーム位置記録制御ステップと、
前記映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御する単位領域位置記録制御ステップと
を含む符号化方法。
【請求項１１】
映像ストリームを符号化する符号化手段と、
前記映像ストリームのフレームの位置を示す情報であるフレーム位置情報、および、前記映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御する記録制御手段と
を含む符号化装置。
【請求項１２】
映像ストリームのフレームの位置を示すフレーム位置情報、および、前記映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、前記映像ストリームの復号を開始する復号開始位置を検出する検出ステップと、
前記復号開始位置から復号を開始するように前記映像ストリームの復号を制御する復号制御ステップと
を含む復号処理をコンピュータに実行させるプログラム。
【請求項１３】
前記映像ストリームに記録されている前記フレーム位置情報を抽出するフレーム位置情報抽出ステップと、
前記映像ストリームに記録されている前記単位領域位置情報を抽出する単位領域位置情報抽出ステップと
をさらに含む請求項１２に記載のプログラム。
【請求項１４】
前記映像ストリームとは異なるファイルからの、前記フレーム位置情報および前記単位領域位置情報の取得を制御する取得制御ステップを
さらに含む請求項１２に記載のプログラム。
【請求項１５】
前記映像ストリームはMPEG（Moving Picture Experts Group）方式により符号化された映像ストリームであり、
前記単位領域はスライスである
請求項１２に記載のプログラム。
【請求項１６】
前記復号装置は、前記映像ストリームを並列して復号する複数の復号手段を備え、
前記検出ステップにおいて、前記フレーム位置情報および前記単位領域位置情報に基づいて、複数の前記復号手段に対応する前記復号開始位置が検出され、
前記復号制御ステップにおいて、複数の前記復号手段が前記復号開始位置から復号を開始するように前記映像ストリームの復号が制御される
請求項１２に記載のプログラム。
【請求項１７】
複数の前記単位領域を含み、前記映像ストリームの１フレームの画像に対応する領域を前記復号手段の数に応じて分割した分割領域を設定する設定ステップを
さらに含み、
復号制御ステップにおいて、前記フレーム内のそれぞれの前記分割領域を前記復号手段が並列して復号するように前記映像ストリームの復号が制御される
請求項１６に記載のプログラム。
【請求項１８】
前記フレーム位置情報は、前記映像ストリームの先頭からの前記フレームの相対位置を示す情報を含み、
前記単位領域位置情報は、前記映像ストリームの先頭からの前記単位領域の相対位置を示す情報を含む
請求項１２に記載のプログラム。
【請求項１９】
前記フレーム位置情報は、さらに、前記フレームの番号および前記フレームのデータ長を示す情報を含み、
前記単位領域位置情報は、さらに、前記フレーム内における前記単位領域の番号および前記単位領域のデータ長を示す情報を含む
請求項１８に記載のプログラム。
【請求項２０】
前記フレーム位置情報は、データ記録媒体に前記フレームを記録する位置を示す情報を含み、
前記単位領域位置情報は、前記データ記録媒体に前記単位領域を記録する位置を示す情報を含む
請求項１２に記載のプログラム。
【請求項２１】
前記フレーム位置情報は、さらに、前記フレームの番号および前記フレームのデータ長を示す情報を含み、
前記単位領域位置情報は、さらに、前記フレーム内における前記単位領域の番号および前記単位領域のデータ長を示す情報を含む
請求項２０に記載のプログラム。
【請求項２２】
映像ストリームを復号する復号方法であって、
前記映像ストリームのフレームの位置を示すフレーム位置情報、および、前記映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、前記映像ストリームの復号を開始する復号開始位置を検出する検出ステップと、
前記復号開始位置から復号を開始するように前記映像ストリームの復号を制御する復号制御ステップと
を含む復号方法。
【請求項２３】
映像ストリームを復号する復号装置において、
前記映像ストリームのフレームの位置を示すフレーム位置情報、および、前記映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、前記映像ストリームの復号を開始する復号開始位置を検出する検出手段と、
前記復号開始位置から復号を開始するように前記映像ストリームの復号を制御する復号制御手段と
を含む復号装置。
【請求項２４】
請求項１乃至８または請求項１２乃至２１のいずれかのプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および方法、復号装置および方法、記録媒体、並びに、プログラムに関し、特に、映像ストリームの復号の高速化を実現するようにした符号化装置および方法、復号装置および方法、記録媒体、並びに、プログラムに関する。
【背景技術】
【０００２】
従来、映像ストリームのデコードを迅速に開始するために、エンコード時に、ユーザにより指定されたフレームの記録位置をインデックスデータとして記録し、デコード時に、インデックスデータを用いてデコードを開始する位置を検出することが提案されている（例えば、特許文献１参照）。
【０００３】
また、映像ストリームのデコードを高速化するために、デコード処理を複数のスレッドに分割して、複数のプロセッサで並列してデコードすることが考えられる。例えば、MPEG（Moving Picture Experts Group）２方式によりエンコードされた映像ストリームの場合、ピクチャ内のスライスを１単位として、デコード処理が分割される。具体的には、４つのプロセッサによりデコード処理を分割して行う場合、図１の左側に示されるように、１つのピクチャ内に１６のスライスが含まれるとき、ピクチャ内のいちばん上のスライスから順番に１つずつ各プロセッサが並列してデコードする。すなわち、各プロセッサは、図１の右側に示される、スライス１−１乃至１−４、スライス２−１乃至２−４、スライス３−１乃至３−４、および、スライス４−１乃至４−４の４組のうちいずれかの組のスライスをデコードする。
【０００４】
【特許文献１】特開平１１−３４１４３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、図１に示されるように処理を分割した場合、各プロセッサは１つのスライスをデコードする毎に、次にデコードするスライスの位置を検出する必要があり、各プロセッサのデコード位置の検出処理に要する時間が増大する。さらに、特許文献１に記載した発明を適用したとしても、スライスの位置の検出時間は短縮されないため、各プロセッサのデコード位置の検出処理に要する時間はほとんど短縮されない。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、より高速に映像ストリームを復号することができるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の第１のプログラムは、映像ストリームのフレームの位置を示す情報であるフレーム位置情報の記録を制御するフレーム位置記録制御ステップと、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御する単位領域位置記録制御ステップとを含む符号化処理をコンピュータに実行させる。
【０００８】
フレーム位置記録制御ステップにおいて、符号化された映像ストリーム内にフレーム位置情報を記録するように制御され、単位領域位置記録制御ステップにおいて、符号化された映像ストリーム内に単位領域位置情報を記録するように制御されるようにすることができる。
【０００９】
フレーム位置記録制御ステップにおいて、映像ストリームとは異なるファイルにフレーム位置情報を記録するように制御され、単位領域位置記録制御ステップにおいて、ファイルに単位領域位置情報を記録するように制御されるようにすることができる。
【００１０】
映像ストリームはMPEG（Moving Picture Experts Group）方式により符号化され、単位領域はスライスであるようにすることができる。
【００１１】
フレーム位置記録制御ステップにおいて、符号化された映像ストリームのシーケンス層のユーザデータ領域またはGOP（Group Of Pictures）層のユーザデータ領域にフレーム位置情報を記録するように制御され、単位領域位置記録制御ステップにおいて、符号化された映像ストリームのピクチャ層のユーザデータ領域に単位領域位置情報を記録するように制御されるようにすることができる。
【００１２】
フレーム位置情報は、映像ストリームの先頭からのフレームの相対位置を示す情報を含み、単位領域位置情報は、映像ストリームの先頭からの単位領域の相対位置を示す情報を含むようにすることができる。
【００１３】
フレーム位置情報は、さらに、フレームの番号およびフレームのデータ長を示す情報を含み、単位領域位置情報は、さらに、フレーム内における単位領域の番号および単位領域のデータ長を示す情報を含むようにすることができる。
【００１４】
フレーム位置情報は、データ記録媒体にフレームを記録する位置を示す情報を含み、単位領域位置情報は、データ記録媒体に単位領域を記録する位置を示す情報を含むようにすることができる。
【００１５】
フレーム位置情報は、さらに、フレームの番号およびフレームのデータ長を示す情報を含み、単位領域位置情報は、さらに、フレーム内における単位領域の番号および単位領域のデータ長を示す情報を含むようにすることができる。
【００１６】
本発明の符号化方法は、映像ストリームを符号化する符号化方法であって、映像ストリームのフレームの位置を示す情報であるフレーム位置情報の記録を制御するフレーム位置記録制御ステップと、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御する単位領域位置記録制御ステップとを含む。
【００１７】
本発明の符号化装置は、映像ストリームを符号化する符号化手段と、映像ストリームのフレームの位置を示す情報であるフレーム位置情報、および、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御する記録制御手段とを含む。
【００１８】
本発明の第２のプログラムは、映像ストリームのフレームの位置を示すフレーム位置情報、および、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、映像ストリームの復号を開始する復号開始位置を検出する検出ステップと、復号開始位置から復号を開始するように映像ストリームの復号を制御する復号制御ステップとを含む復号処理をコンピュータに実行させる。
【００１９】
映像ストリームに記録されているフレーム位置情報を抽出するフレーム位置情報抽出ステップと、映像ストリームに記録されている単位領域位置情報を抽出する単位領域位置情報抽出ステップとをさらに含むようにすることができる。
【００２０】
映像ストリームとは異なるファイルからの、フレーム位置情報および単位領域位置情報の取得を制御する取得制御ステップをさらに含むようにすることができる。
【００２１】
映像ストリームはMPEG（Moving Picture Experts Group）方式により符号化された映像ストリームであり、単位領域はスライスであるようにすることができる。
【００２２】
復号装置は、映像ストリームを並列して復号する複数の復号手段を備え、検出ステップにおいて、フレーム位置情報および単位領域位置情報に基づいて、複数の復号手段に対応する復号開始位置が検出され、復号制御ステップにおいて、複数の復号手段が復号開始位置から復号を開始するように映像ストリームの復号が制御されるようにすることができる。
【００２３】
複数の単位領域を含み、映像ストリームの１フレームの画像に対応する領域を復号手段の数に応じて分割した分割領域を設定する設定ステップをさらに含み、復号制御ステップにおいて、フレーム内のそれぞれの分割領域を復号手段が並列して復号するように映像ストリームの復号が制御されるようにすることができる。
【００２４】
フレーム位置情報は、映像ストリームの先頭からのフレームの相対位置を示す情報を含み、単位領域位置情報は、映像ストリームの先頭からの単位領域の相対位置を示す情報を含むようにすることができる。
【００２５】
フレーム位置情報は、さらに、フレームの番号およびフレームのデータ長を示す情報を含み、単位領域位置情報は、さらに、フレーム内における単位領域の番号および単位領域のデータ長を示す情報を含むようにすることができる。
【００２６】
フレーム位置情報は、データ記録媒体にフレームを記録する位置を示す情報を含み、単位領域位置情報は、データ記録媒体に単位領域を記録する位置を示す情報を含むようにすることができる。
【００２７】
フレーム位置情報は、さらに、フレームの番号およびフレームのデータ長を示す情報を含み、単位領域位置情報は、さらに、フレーム内における単位領域の番号および単位領域のデータ長を示す情報を含むようにすることができる。
【００２８】
本発明の復号方法は、映像ストリームを復号する復号方法であって、映像ストリームのフレームの位置を示すフレーム位置情報、および、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、映像ストリームの復号を開始する復号開始位置を検出する検出ステップと、復号開始位置から復号を開始するように映像ストリームの復号を制御する復号制御ステップとを含む。
【００２９】
本発明の復号装置は、映像ストリームを復号する復号装置であって、映像ストリームのフレームの位置を示すフレーム位置情報、および、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、映像ストリームの復号を開始する復号開始位置を検出する検出手段と、復号開始位置から復号を開始するように映像ストリームの復号を制御する復号制御手段とを含む。
【００３０】
本発明の第１のプログラム、記録媒体に記録されている第１のプログラム、符号化方法、および、符号化装置においては、映像ストリームのフレームの位置を示す情報であるフレーム位置情報の記録が制御され、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録が制御される。
【００３１】
本発明の第２のプログラム、記録媒体に記録されている第２のプログラム、復号方法、および、復号装置においては、映像ストリームのフレームの位置を示すフレーム位置情報、および、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、映像ストリームの復号を開始する復号開始位置が検出され、復号開始位置から復号を開始するように映像ストリームの復号が制御される。
【発明の効果】
【００３２】
本発明によれば、映像ストリームの復号の開始位置の検出に要する時間を短縮することができる。また、本発明によれば、より高速に映像ストリームを復号することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３４】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００３５】
請求項１に記載のプログラムは、映像ストリームのフレーム（例えば、ピクチャ）の位置を示す情報であるフレーム位置情報（例えば、図９または図１９のピクチャ位置情報）の記録を制御するフレーム位置記録制御ステップ（例えば、図１０または図２０のスライス位置情報）と、前記映像ストリームを復号する場合の処理単位である単位領域（例えば、スライス）の位置を示す単位領域位置情報（例えば、図１０または図２０のスライス位置情報）の記録を制御する単位領域位置記録制御ステップ（例えば、図１２のステップＳ１２９）とを含む符号化処理をコンピュータ（例えば、図２のCPU１２１）に実行させる。
【００３６】
また、請求項１０に記載の復号方法においても、各ステップが対応する実施の形態（但し一例）は、請求項１に記載のプログラムと同様である。
【００３７】
請求項１１に記載の符号化装置（例えば、図７のエンコード部２０１または図１６のエンコード部３０１）は、映像ストリームを符号化する符号化手段（例えば、図７のエンコーダ２１１または図１６のエンコーダ３１１）と、前記映像ストリームのフレーム（例えば、ピクチャ）の位置を示す情報であるフレーム位置情報（例えば、図９または図１９のピクチャ位置情報）、および、前記映像ストリームを復号する場合の処理単位である単位領域（例えば、スライス）の位置を示す単位領域位置情報（例えば、図１０または図２０のスライス位置情報）の記録を制御する記録制御手段（例えば、図７のスタート位置記録制御部２１５または図１６のスタート位置記録制御部３１５）とを含む。
【００３８】
請求項１２に記載のプログラムは、映像ストリームのフレーム（例えば、ピクチャ）の位置を示すフレーム位置情報（例えば、図９または図１９のピクチャ位置情報）、および、前記映像ストリームを復号する場合の処理単位である単位領域（例えば、スライス）の位置を示す単位領域位置情報（例えば、図１０または図２０のスライス位置情報）に基づいて、前記映像ストリームの復号を開始する復号開始位置を検出する検出ステップ（例えば、図１３のステップＳ１６０、図１５のステップＳ１８１、図２２のステップＳ２５９、または、図２６のステップＳ２６２）と、前記復号開始位置から復号を開始するように前記映像ストリームの復号を制御する復号制御ステップ（例えば、図１３のステップＳ１６１、図１５のステップＳ１８９、図２２のステップＳ２６０、または、図２６のステップＳ２６３）とを含む復号処理をコンピュータ（例えば、図２のCPU１２１）に実行させる。
【００３９】
請求項１３に記載のプログラムは、前記映像ストリームに記録されている前記フレーム位置情報を抽出するフレーム位置情報抽出ステップ（例えば、図１３のステップＳ１５５、図１５のステップＳ１８４、または、図２５のステップＳ２５７）と、前記映像ストリームに記録されている前記単位領域位置情報を抽出する単位領域位置情報抽出ステップ（例えば、図１３のステップＳ１５９、図１５のステップＳ１８７、または、図２５のステップＳ２６１）とをさらに含む。
【００４０】
請求項１４に記載のプログラムは、前記映像ストリームとは異なるファイルからの、前記フレーム位置情報および前記単位領域位置情報の取得を制御する取得制御ステップ（例えば、図２２のステップＳ２５１）をさらに含む。
【００４１】
請求項１６に記載のプログラムにおいては、前記復号装置は、前記映像ストリームを並列して復号する複数の復号手段（例えば、図８のデコーダ２６５−１乃至２６５−４、図１７のデコーダ３６５−１乃至３６５−４、または、図２４のデコーダ４６５−１乃至４６５−４）を備え、前記検出ステップにおいて、前記フレーム位置情報および前記単位領域位置情報に基づいて、複数の前記復号手段に対応する前記復号開始位置が検出され、前記復号制御ステップにおいて、複数の前記復号手段が前記復号開始位置から復号を開始するように前記映像ストリームの復号が制御される。
【００４２】
請求項１７に記載のプログラムにおいては、複数の前記単位領域を含み、前記映像ストリームの１フレームの画像に対応する領域を前記復号手段の数に応じて分割した分割領域（例えば、分割デコード領域）を設定する設定ステップ（例えば、図２５のステップＳ２５４）をさらに含み、復号制御ステップにおいて、前記フレーム内のそれぞれの前記分割領域を前記復号手段が並列して復号するように前記映像ストリームの復号が制御される。
【００４３】
また、請求項２２に記載の復号方法においても、各ステップが対応する実施の形態（但し一例）は、請求項１２に記載のプログラムと同様である。
【００４４】
請求項２３に記載の復号装置（例えば、図８のデコード部２５１、図１７のデコード部２５１、または、図２４のデコード部２５１）は、映像ストリームを復号する復号装置であって、前記映像ストリームのフレーム（例えば、ピクチャ）の位置を示すフレーム位置情報（例えば、図９または図１９のピクチャ位置情報）、および、前記映像ストリームを復号する場合の処理単位である単位領域（例えば、スライス）の位置を示す単位領域位置情報（例えば、図１０または図２０のスライス位置情報）に基づいて、前記映像ストリームの復号を開始する復号開始位置を検出する検出手段（例えば、図８のスタート位置検出部２７１、図１７のスタート位置検出部３７１、または、図２４のスタート位置検出部４７１）と、前記復号開始位置から復号を開始するように前記映像ストリームの復号を制御する復号制御手段（例えば、図８のデコード制御部２６４、図１７のデコード制御部３６４、または、図２４のデコード制御部４６４）とを含む。
【００４５】
請求項２４に記載の記録媒体（例えば、図２のリムーバブルメディア１１７）は、請求項１乃至８または請求項１２乃至２１のいずれかのプログラムが記録されている。
【００４６】
以下、図を参照して、本発明の実施の形態について説明する。
【００４７】
図２は、本発明を適用したAV（Audio/Visual）処理システム１０１の一実施の形態を示す図である。AV処理システム１０１は、AV（Audio/Visual）処理装置１１１、ドライブ１１２、外部映像記録再生装置１１３−１乃至１１３−ｎ、マウス１１４、および、キーボード１１５を含むように構成される。
【００４８】
AV処理装置１１１は、映像ストリーム、音声ストリーム、映像ストリームおよび音声ストリームが多重化されたAV（Audio/Visual）ストリーム、静止画像データなどのAV（Audio/Visual）データの再生、記録、表示、出力、デコード、エンコードなどの処理を行う。
【００４９】
ドライブ１１２は、AV処理装置１１１のインタフェース１２９−３に接続される。ドライブ１１２は、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア１１６が適宜接続され、リムーバブルメディア１１６から読み出した各種のデータをAV処理装置１１１に入力したり、AV処理装置１１１から出力される各種のデータをリムーバブルメディア１１６に記録させる。また、ドライブ１１２は、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア１１７が適宜接続され、そこから読み出されプログラムが、HDD１２４にインストールされる。
【００５０】
外部映像記録再生装置１１３−１乃至１１３−ｎは、AV処理装置１１１のインタフェース１２９−２に接続される。外部映像記録再生装置１１３−１乃至１１３−ｎは、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータを再生し、再生したストリームをAV処理装置１１１に入力する。また、外部映像記録再生装置１１３−１乃至１１３−ｎは、AV処理装置１１１から出力されるAVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータを記録する。
【００５１】
また、外部映像記録再生装置１１３−１乃至１１３−ｎは、AV処理装置１１１の映像特殊効果音声ミキシング処理部１２６に接続される。外部映像記録再生装置１１３−１乃至１１３−ｎは、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータを映像特殊効果音声ミキシング処理部１２６に入力し、各種の特殊効果またはミキシングが施されたAVデータを映像特殊効果音声ミキシング処理部１２６から取得する。
【００５２】
なお、以下、外部映像記録再生装置１１３−１乃至１１３−ｎを個々に区別する必要がない場合、単に外部映像記録再生装置１１３と称する。
【００５３】
マウス１１４およびキーボード１１５は、AV処理装置１１１のインタフェース１２９−１に接続される。
【００５４】
AV処理装置１１１は、CPU（Central Processing Unit）１２１、ROM（Read Only Memory）１２２、RAM（Random Access Memory）１２３、ハードディスク（HDD）１２４、信号処理部１２５、映像特殊効果音声ミキシング処理部１２６、ディスプレイ１２７、スピーカ１２８、および、インタフェース（I/F）１２９−１乃至１２９−３を含むように構成される。CPU１２１、ROM１２２、RAM１２３、HDD１２４、信号処理部１２５、映像特殊効果音声ミキシング処理部１２６、および、インタフェース１２９−１乃至１２９−３は、バス１３０を介して相互に接続される。
【００５５】
CPU１２１は、インタフェース１２９−１およびバス１３０を介して、ユーザがマウス１１４またはキーボード１１５を用いて入力した処理の指示やデータの入力を受け、入力された処理の指示などに基づいて、ROM１２２に記憶されているプログラム、または、HDD１２４からRAM１２３にロードされたプログラムに従って各種の処理を実行する。
【００５６】
また、CPU１２１は、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータの各種の処理（例えば、多重化、分離、エンコード、デコードなど）を行う。例えば、CPU１２１は、マルチコアプロセッサにより構成され、図４などを参照して後述するように、所定のプログラムを実行することにより、所定の方式（例えば、MPEG２方式）によりエンコード（符号化）された映像ストリームのデコード（復号）処理を複数のスレッドに分割して、複数のプロセッサコアにより並列して映像ストリームをデコードする。さらに、CPU１２１は、図１１などを参照して後述するように、エンコード前のベースバンド信号である映像ストリームを、所定の方式（例えば、MPEG２方式）によりエンコード（符号化）する。
【００５７】
ROM１２２は、CPU１２１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。
【００５８】
RAM１２３は、CPU１２１の実行において使用するプログラムや、その実行において適宜変化するパラメータやデータを格納する。
【００５９】
HDD１２４は、例えば、CPU１２１によって実行するプログラムや情報を記録または再生させる。
【００６０】
信号処理部１２５は、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータの各種の処理（例えば、多重化、分離、エンコード、デコードなど）を、ハードウェアにより実行する。また、信号処理部１２５は、入力された映像ストリームから、ディスプレイ１２７の規格に適応した映像信号を生成し、ディスプレイ１２７に供給する。また、信号処理部１２５は、入力された音声ストリームから、スピーカ１２８の規格に適応した音声信号を生成し、スピーカ１２８に供給する。
【００６１】
映像特殊効果音声ミキシング処理部１２６は、CPU１２１、信号処理部１２５、または、外部映像記録再生装置１１３から供給されるAVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータに、各種の特殊効果（例えば、画像の合成、分割、変換など）またはミキシング（例えば、音声の合成など）を施す。映像特殊効果音声ミキシング処理部１２６は、各種の特殊効果またはミキシングを施したAVデータを、CPU１２１、信号処理部１２５、または、外部映像記録再生装置１１３に供給する。
【００６２】
ディスプレイ１２７は、例えば、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）などにより構成され、信号処理部１２５から供給される映像信号に基づく映像を表示する。
【００６３】
スピーカ１２８は、信号処理部１２５から供給される音声信号に基づく音声を出力する。
【００６４】
なお、以下、AV処理装置１１１が、MPEG２方式により映像ストリームをエンコードまたはデコードする場合の処理の例を説明する。
【００６５】
図３は、所定のプログラムを実行するCPU１２１により実現されるデコード部１５１の機能の構成の例を示す図である。デコード部１５１は、ストリーム読出し制御部１６１、ストリーム解析部１６２、デコード領域設定部１６３、デコード制御部１６４、デコーダ１６５−１乃至１６５−４、および、ベースバンド出力制御部１６６を含むように構成される。
【００６６】
ストリーム読出し制御部１６１は、ドライブ１１２を制御して、リムーバブルメディア１１６に記録されている映像ストリームを読み出させる。ストリーム読出し制御部１６１は、ドライブ１１２により読み出された映像ストリームを、インタフェース１２９−３およびバス１３０を介して取得する。また、ストリーム読出し制御部１６１は、バス１３０を介して、HDD１２４に記録されている映像ストリームを読み出す。ストリーム読出し制御部１６１は、必要に応じて、取得した映像ストリームを、CPU１２１内の図示せぬキャッシュメモリなどにより構成されるストリーム用メモリ１５２に一時的に記憶させる。また、ストリーム読出し制御部１６１は、必要に応じて、取得した映像ストリームを、ストリーム解析部１６２またはデコーダ１６５−１乃至１６５−４に供給する。
【００６７】
ストリーム解析部１６２は、映像ストリームのピクチャ層までの層をデコードし、デコードすることにより得られた情報をデコード制御部１６４に供給する。また、ストリーム解析部１６２は、映像ストリームのシーケンス層をデコードすることにより得られた映像ストリームの画像サイズ（画像の縦横の画素数）を示す情報をデコード領域設定部１６３に供給する。
【００６８】
デコード領域設定部１６３は、図４および図５を参照して後述するように、映像ストリームの映像サイズおよびデコード部１５１のデコーダの数に基づいて、映像ストリームの各フレームに対して、デコーダ１６５−１乃至１６５−４により分割してデコードする領域（以下、分割デコード領域と称する）を設定する。デコード領域設定部１６３は、設定した分割デコード領域を示す情報をデコード制御部１６４に供給する。
【００６９】
デコード制御部１６４は、ユーザがマウス１１４またはキーボード１１５を用いて入力したデコードの指示、または、AV処理装置１１１の各部、あるいは、CPU１２１により実現されるデコード部１５１と異なる機能ブロックから入力されるデコードの指示に基づいて、デコード部１５１の処理を制御する。デコード制御部１６４は、ストリーム解析部１６２またはデコーダ１６５−１乃至１６５−４への映像ストリームの供給を指示する情報をストリーム読出し制御部１６１に供給する。また、デコード制御部１６４は、デコードの開始を指示する情報をデコーダ１６５−１乃至１６５−４に供給する。
【００７０】
さらに、デコード制御部１６４は、デコーダ１６５−１乃至１６５−４から、デコードの終了またはエラーの発生を通知する情報を取得する。デコード制御部１６４は、デコードのエラーの発生を通知する情報を取得した場合、デコードを再開する位置を決定し、決定した位置からのデコードの再開を指示する情報を、エラーが発生したデコーダに供給する。さらに、デコード制御部１６４は、映像ストリームをデコードすることにより得られたベースバンド信号である映像ストリームの出力を指示する情報をベースバンド出力制御部１６６に供給する。
【００７１】
デコーダ１６５−１乃至１６５−４は、映像ストリームの各フレーム内の各デコーダに割り当てられた分割デコード領域を並列してデコードする。すなわち、デコーダ１６５−１乃至１６５−４は、映像ストリームのスライス層以下のデコードを行う。デコーダ１６５−１乃至１６５−４は、デコードしたデータをベースバンド出力制御部１６６に供給する。なお、以下、デコーダ１６５−１乃至１６５−４を個々に区別する必要がない場合、単にデコーダ１６５と称する。
【００７２】
ベースバンド出力制御部１６６は、デコーダ１６５−１乃至１６５−４から供給されたデータを合成して、デコード後のベースバンド信号である映像ストリームを生成する。ベースバンド出力制御部１６６は、必要に応じて、例えば、CPU１２１内の図示せぬキャッシュメモリなどにより構成されるベースバンド用メモリ１５３に、生成した映像ストリームを一時的に記憶させる。ベースバンド出力制御部１６６は、デコード制御部１６４の指示に基づいて、映像ストリームを外部（例えば、バス１３０を介して信号処理部１２５）に出力する。
【００７３】
次に、図４および図５のフローチャートを参照して、デコード部１５１により実行されるデコード処理を説明する。なお、この処理は、例えば、デコード制御部１６４が、ユーザがマウス１１４またはキーボード１１５を用いて入力したデコードの指示を、インタフェース１２９−１およびバス１３０を介して取得した場合、開始される。また、以下、リムーバブルメディア１１６に記録されている映像ストリームをデコードする場合の例を説明する。
【００７４】
ステップＳ１において、デコード制御部１６４は、映像ストリームを全てデコードしたか否かを判定する。デコード制御部１６４は、ユーザによりデコードが指示された範囲の映像ストリームをまだ全てデコードしていない場合、まだ映像ストリームを全てデコードしていないと判定し、処理はステップＳ２に進む。
【００７５】
ステップＳ２において、ストリーム解析部１６２は、シーケンス層をデコードする。具体的には、デコード制御部１６４は、デコードする映像ストリームのシーケンス層の読出しを指示する情報をストリーム読出し制御部１６１に供給する。ドライブ１１２は、ストリーム読出し制御部１６１の制御の基に、デコードする映像ストリームのシーケンス層をリムーバブルメディア１１６から読み出し、読み出したデータを、インタフェース１２９−３およびバス１３０を介して、ストリーム読出し制御部１６１に供給する。ストリーム読出し制御部１６１は、映像ストリームのシーケンス層をストリーム解析部１６２に供給する。ストリーム解析部１６２は、シーケンス層をデコードし、デコードすることにより得られた情報をデコード制御部１６４に供給する。
【００７６】
ステップＳ３において、ストリーム解析部１６２は、映像ストリームの画像サイズを検出する。具体的には、ストリーム解析部１６２は、映像ストリームのシーケンス層の情報に基づいて、映像ストリームの画像サイズを検出する。ストリーム解析部１６２は、検出した画像サイズを示す情報をデコード領域設定部１６３に供給する。
【００７７】
ステップＳ４において、デコード領域設定部１６３は、各デコーダ１６５がデコードする領域を設定する。具体的には、まず、デコード領域設定部１６３は、各デコーダ１６５が１フレームあたりにデコードするスライス数（以下、分割スライス数とも称する）を算出する。なお、以下、各スライスの横方向の幅はフレーム（ピクチャ）の幅と等しく、１つのスライスは行間をまたがないものとする。
【００７８】
デコード領域設定部１６３は、映像ストリームの画像サイズに基づいて、映像ストリームの１フレーム（ピクチャ）内に含まれるスライス数を検出する。例えば、映像ストリームの縦方向の画像サイズをSpv、スライスの縦方向のサイズをSsvとすると、１フレーム当たりのスライス数Nsfは、以下の式（１）により検出される。
【００７９】
Nsf＝Spv÷Ssv  ・・・（１）
【００８０】
デコード領域設定部１６３は、検出した１フレーム当たりのスライス数をデコーダ１６５の数で割ることにより、分割スライス数を算出する。例えば、デコーダ１６５の数をNdとすると、分割スライス数をXは、式（２）により算出される。
【００８１】
X＝Nsf÷Nd  ・・・（２）
【００８２】
従って、各デコーダ１６５が、デコードするスライス数は等しくなり、１フレーム当たりにデコードするデータ量はほぼ等しくなる。
【００８３】
例えば、映像ストリームの縦方向の画像サイズを１０８８画素、スライスの縦方向のサイズを１６画素とした場合、いまの場合、デコーダ１６５の数が４つなので、分割スライス数Xは、以下のとおり１７となる。
【００８４】
Nsf＝１０８８÷１６＝６８
X＝６８÷４＝１７
【００８５】
次に、デコード領域設定部１６３は、フレーム内のスライスを上から順番に、分割スライス数ごとに分割することにより、分割デコード領域を設定する。例えば、図６の左側の図のように、１フレーム内に１６のスライスが含まれ、４つのデコーダにより並行してデコードする場合、分割スライス数は４となるので、フレーム内のスライスを上から順番に４つごとに分割した領域、すなわち、スライス１８１−１乃至１８１−４を含む領域、スライス１８２−１乃至１８２−４を含む領域、スライス１８３−１乃至１８３−４を含む領域、および、スライス１８４−１乃至１８４−４を含む領域の４つの領域が分割デコード領域に設定される。
【００８６】
なお、MPEG２方式でエンコードされた映像ストリームにおいて、スライス（スライス層）は、先頭にスタートコードが付加されることにより映像ストリームの解析を行わなくても開始位置を検出することができる層の最下層であり、映像ストリームを復号する場合の最小の処理単位となる。従って、分割デコード領域は、デコーダ１６５の処理単位である複数のスライスを含み、映像ストリームのピクチャに対応する領域をデコーダ１６５の数に応じて分割した領域となる。また、映像ストリーム上で連続するスライスが、フレーム（ピクチャ）内でいちばん上から順に配列されるので、分割デコード領域内のスライスは、分割デコード領域のいちばん上から下方向の順に映像ストリーム上において連続する。
【００８７】
デコード領域設定部１６３は、設定した分割デコード領域を示す情報をデコード制御部１６４に供給する。
【００８８】
ステップＳ５において、デコード制御部１６４は、全てのGOP（Group Of Pictures）をデコードしたか否かを判定する。デコード制御部１６４は、ステップＳ２においてデコードされたシーケンス層より下に含まれる全てのGOPがデコードされたか否かを判定し、まだ全てのGOPがデコードされていないと判定された場合、処理はステップＳ６に進む。
【００８９】
ステップＳ６において、ストリーム解析部１６２は、GOP層をデコードする。具体的には、デコード制御部１６４は、次にデコードするGOPの読出しを指示する情報をストリーム読出し制御部１６１に供給する。ドライブ１１２は、ストリーム読出し制御部１６１の制御の基に、次にデコードするGOPをリムーバブルメディア１１６から読み出し、読み出したGOPを、インタフェース１２９−３およびバス１３０を介して、ストリーム読出し制御部１６１に供給する。ストリーム読出し制御部１６１は、取得したGOPをストリーム用メモリ１５２に一時的に記憶させる。ストリーム読出し制御部１６１は、取得したGOPのGOP層をストリーム解析部１６２に供給する。ストリーム解析部１６２は、GOP層をデコードし、デコードすることにより得られた情報をデコード制御部１６４に供給する。
【００９０】
なお、ステップＳ６において、複数のGOPを一度にリムーバブルメディア１１６から読み出し、ストリーム用メモリ１５２に記憶させるようにしてもよい。
【００９１】
ステップＳ７において、デコード制御部１６４は、GOP内の全てのピクチャをデコードしたか否かを判定する。まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップＳ８に進む。
【００９２】
ステップＳ８において、ストリーム読出し制御部１６１は、次にデコードするピクチャのピクチャ層を読み出す。具体的には、デコード制御部１６４は、次にデコードするピクチャのピクチャ層の読出しを指示する情報をストリーム読出し制御部１６１に供給する。ストリーム読出し制御部１６１は、ストリーム用メモリ１５２に記憶されているGOPについて、次にデコードするピクチャの開始位置（ピクチャスタートコード）をGOPの先頭から検索していき、検出した開始位置から次にデコードするピクチャのピクチャ層を読み出す。ストリーム読出し制御部１６１は、読み出したピクチャ層をストリーム解析部１６２に供給する。
【００９３】
ステップＳ９において、ストリーム解析部１６２は、ピクチャ層をデコードする。ストリーム解析部１６２は、ピクチャ層をデコードすることにより得られた情報をデコード制御部１６４に供給する。
【００９４】
ステップＳ１０において、デコード制御部１６４は、デコードの開始を指示する。具体的には、デコード制御部１６４は、各デコーダ１６５に割り当てられた分割デコード領域に含まれるスライスの各デコーダ１６５への供給を指示する情報をストリーム読出し制御部１６１に供給する。また、デコード制御部１６４は、デコードの開始を指示する情報を各デコーダ１６５に供給する。
【００９５】
ステップＳ１１において、ストリーム読出し制御部１６１は、分割デコード領域の開始位置を検出する。具体的には、ストリーム読出し制御部１６１は、ストリーム用メモリ１５２に記憶されているGOPについて、次にデコードするピクチャのスライス層の開始位置（スライススタートコード）を順に検索していき、各デコーダ１６５に割り当てられている分割デコード領域の先頭のスライスの開始位置、すなわち、各デコーダ１６５がデコードを開始する位置を検出する。
【００９６】
ステップＳ１２において、デコーダ１６５は、デコードを開始する。具体的には、ストリーム読出し制御部１６１は、ステップＳ１１において検出した各分割デコード領域の開始位置から始まる分割スライス数のスライス、すなわち、各分割デコード領域に含まれるスライスをストリーム用メモリ１５２から順に読み出す。ストリーム読出し制御部１６１は、読み出したスライスを、分割デコード領域ごとに、その分割デコード領域のデコードが割り当てられたデコーダ１６５に供給する。デコーダ１６５は、分割デコード領域内の先頭のスライスからデコードを開始する。デコーダ１６５は、デコードしたデータを順次ベースバンド出力制御部１６６に供給する。ベースバンド出力制御部１６６は、取得したデータをベースバンド用メモリ１５３に記憶させる。
【００９７】
ステップＳ１３において、デコード制御部１６４は、エラーが発生したか否かを判定する。具体的には、デコード制御部１６４は、デコーダ１６５からエラーの発生を通知する情報が供給されている場合、エラーが発生していると判定し、処理はステップＳ１４に進む。
【００９８】
ステップＳ１４において、デコード制御部１６４は、デコードを再開する位置を決定する。デコード制御部１６４は、例えば、デコードを失敗したスライスの次のスライスをデコードを再開する位置に決定する。
【００９９】
ステップＳ１５において、デコーダ１６５は、デコードを再開する。具体的には、デコード制御部１６４は、エラーが発生したスライスの次のスライスからのデコードの再開を指示する情報を、エラーが発生したデコーダ１６５に供給する。デコーダ１６５は、指定されたスライスからデコードを再開する。
【０１００】
ステップＳ１３において、デコード制御部１６４は、デコーダ１６５からエラーの発生を通知する情報が供給されていない場合、エラーが発生していないと判定し、ステップＳ１４およびＳ１５の処理はスキップされ、処理はステップＳ１６に進む。
【０１０１】
ステップＳ１６において、デコード制御部１６４は、全てのデコーダ１６５の処理が終了したか否かを判定する。具体的には、デコード制御部１６４は、各デコーダ１６５に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、全てのデコーダ１６５から供給されているか否かを検出する。デコード制御部１６４は、各デコーダ１６５に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、まだ全てのデコーダ１６５から供給されていない場合、まだ全てのデコーダ１６５の処理がまだ終了していないと判定し、処理はステップＳ１３に戻り、ステップＳ１６において、全てのデコーダ１６５の処理が終了したと判定されるまで、ステップＳ１３乃至Ｓ１６の処理が繰り返し実行される。
【０１０２】
ステップＳ１６において、全てのデコーダ１６５の処理が終了したと判定された場合、すなわち、各デコーダ１６５に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、全てのデコーダ１６５からデコード制御部１６４に供給されている場合、処理はステップＳ１７に進む。
【０１０３】
ステップＳ１７において、ベースバンド出力制御部１６６は、１フレーム分のデータを出力する。具体的には、デコード制御部１６４は、１フレーム分のデータの出力を指示する情報をベースバンド出力制御部１６６に供給する。ベースバンド出力制御部１６６は、ベースバンド用メモリ１５３に記憶されている１フレーム分のデータを外部（例えば、バス１３０を介して信号処理部１２５）に出力する。その後、処理はステップＳ７に戻る。
【０１０４】
ステップＳ７において、まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップＳ８に進み、上述したステップＳ８以降の処理が実行される。すなわち、次のピクチャがデコードされる。
【０１０５】
ステップＳ７において、GOP内の全てのピクチャがデコードされたと判定された場合、処理はステップＳ５に戻る。
【０１０６】
ステップＳ５において、まだ全てのGOPがデコードされていないと判定された場合、処理はステップＳ６に進み、上述したステップＳ６以降の処理が実行される。すなわち、次のGOPがデコードされる。
【０１０７】
ステップＳ５において、全てのGOPがデコードされたと判定された場合、処理はステップＳ１に戻る。
【０１０８】
ステップＳ１において、まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップＳ２に進み、上述したステップＳ２以降の処理が実行される。すなわち、映像ストリームの次のシーケンス層がデコードされる。
【０１０９】
ステップＳ１において、映像ストリームが全てデコードされたと判定された場合、デコード処理は終了する。
【０１１０】
このように、各フレーム（ピクチャ）について、各デコーダ１６５がデコードを開始する位置として各分割デコード領域の開始位置を検出するだけでよいため、各デコーダ１６５がデコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。
【０１１１】
次に、図７乃至図１５を参照して、映像ストリームのデコードを高速化する他の実施の形態について説明する。
【０１１２】
図７は、所定のプログラムを実行するCPU１２１により実現されるエンコード部２０１の機能の構成の例を示す図である。エンコード部２０１は、エンコーダ２１１、ピクチャカウント部２１２、スライスカウント部２１３、スタート位置メモリ２１４、スタート位置記録制御部２１５、および、ストリーム出力制御部２１６を含むように構成される。
【０１１３】
エンコーダ２１１は、ユーザがマウス１１４またはキーボード１１５を用いて入力したエンコードの指示、または、AV処理装置１１１の各部、あるいは、CPU１２１に実現されるエンコード部２０１と異なる機能ブロックから入力されるエンコードの指示に基づいて、外部から入力されるエンコード前のベースバンド信号である映像ストリームを、MPEG２方式に基づいてエンコード（符号化）し、エンコードしたデータをストリーム出力制御部２１６に供給する。
【０１１４】
また、エンコーダ２１１は、ピクチャ（ピクチャ層）のエンコードを開始する度に、ピクチャのエンコードの開始を通知する情報をピクチャカウント部２１２およびスタート位置記録制御部２１５に供給する。さらに、エンコーダ２１１は、エンコードした映像ストリームの各フレーム（ピクチャ）の開始位置を示す情報（以下、ピクチャ開始位置情報と称する）を、スタート位置メモリ２１４に記録させる。また、エンコーダ２１１は、各ピクチャのエンコードが終了する度に、ピクチャのエンコードの終了を通知する情報をスライスカウント部２１３、および、スタート位置記録制御部２１５に供給する。さらに、エンコーダ２１１は、エンコードしたピクチャのデータ長を示す情報（以下、ピクチャデータ長情報と称する）を、スタート位置メモリ２１４に記録させる。
【０１１５】
さらに、エンコーダ２１１は、スライス（スライス層）のエンコードを開始する度に、スライスのエンコードの開始を通知する情報をスライスカウント部２１３およびスタート位置記録制御部２１５に供給する。さらに、エンコーダ２１１は、エンコードした映像ストリームの開始位置を示す情報（以下、スライス開始位置情報と称する）を、スタート位置メモリ２１４に記録させる。また、エンコーダ２１１は、各スライスのエンコードが終了する度に、スライスのエンコードの終了を通知する情報をスタート位置記録制御部２１５に供給する。さらに、エンコーダ２１１は、エンコードしたスライスのデータ長を示す情報（以下、スライスデータ長情報と称する）を、スタート位置メモリ２１４に記録させる。
【０１１６】
ピクチャカウント部２１２は、映像ストリームを記録媒体上で管理する単位であるクリップ内のピクチャの数をカウントする。具体的には、ピクチャカウント部２１２は、ピクチャカウンタを管理し、エンコーダ２１１からピクチャのエンコードの開始を通知する情報が供給される毎に、ピクチャカウンタの値をインクリメントする。ピクチャカウント部２１２は、ピクチャカウンタの値を示す情報をスタート位置記録制御部２１５に供給する。
【０１１７】
スライスカウント部２１３は、ピクチャ内のスライスの数をカウントする。具体的には、スライスカウント部２１３は、スライスカウンタを管理し、エンコーダ２１１からスライスのエンコードの開始を通知する情報が供給される毎に、スライスカウンタの値をインクリメントする。また、スライスカウント部２１３は、エンコーダ２１１からピクチャのエンコードの終了を通知する情報が供給された場合、スライスカウンタの値をリセットする。
【０１１８】
スタート位置記録制御部２１５は、スタート位置メモリ２１４に記録されているピクチャ開始位置情報、スライス開始位置情報、ピクチャデータ長情報、または、スライスデータ長情報を読み出す。また、スタート位置記録制御部２１５は、ピクチャカウンタの値を示す情報をピクチャカウント部２１２から取得する。さらに、スタート位置記録制御部２１５は、スライスカウンタの値を示す情報をスライスカウント部２１３から取得する。
【０１１９】
スタート位置記録制御部２１５は、ピクチャカウンタの値、ピクチャ開始位置情報、および、ピクチャデータ長情報に基づく、各ピクチャの位置を示す情報（以下、ピクチャ位置情報と称する）の映像ストリームへの記録を指示する情報をストリーム出力制御部２１６に供給することにより、ピクチャ位置情報の記録を制御する。また、スタート位置記録制御部２１５は、スライスカウンタの値、スライス開始位置情報、および、スライスデータ長情報に基づく、各スライスの位置を示す情報（以下、スライス位置情報と称する）の映像ストリームへの記録を指示する情報をストリーム出力制御部２１６に供給することにより、スライス位置情報の記録を制御する。
【０１２０】
ストリーム出力制御部２１６は、エンコーダ２１１によりエンコードされた映像ストリームを、例えば、CPU１２１内のキャッシュメモリなどにより構成されるストリーム用メモリ２０２に一時的に記憶させる。ストリーム出力制御部２１６は、スタート位置記録制御部２１５の指示に基づいて、例えば、エンコードされた映像ストリームの各GOPに対応するGOP層のユーザデータ（User Data）領域にピクチャ位置情報を記録する。なお、シーケンス層以下に含まれる全てのGOPに対応するピクチャ位置情報を、映像ストリームのシーケンス層のエクステンション・アンド・ユーザ（Extension and User）領域のユーザデータ（User Data）領域に記録するようにしてもよい。また、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の指示に基づいて、例えば、エンコードされた映像ストリームの各ピクチャに対応するピクチャ層のエクステンション・アンド・ユーザ（Extension and User）領域のユーザデータ（User Data）領域にスライス位置情報を記録する。
【０１２１】
ストリーム出力制御部２１６は、ストリーム用メモリ２０２に記憶されている映像ストリームを読み出し、読み出した映像ストリームを外部（例えば、バス１３０を介して、ドライブ１１２またはHDD１２４）に出力する。
【０１２２】
図８は、所定のプログラムを実行するCPU１２１により実現されるデコード部２５１の機能の構成の例を示す図である。デコード部２５１は、図３のデコード部１５１と比較して、デコード領域設定部１６３の代わりにスタート位置検出部２７１が設けられている点が異なる。なお、図中、図３と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０１２３】
デコード部２５１は、ストリーム読出し制御部２６１、ストリーム解析部２６２、デコード制御部２６４、デコーダ２６５−１乃至２６５−４、ベースバンド出力制御部２６６、および、スタート位置検出部２７１を含むように構成される。
【０１２４】
ストリーム解析部２６２は、図３のストリーム解析部１６２の処理に加えて、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を抽出し、抽出したピクチャ位置情報およびスライス位置情報をスタート位置検出部２７１に供給する。
【０１２５】
デコード制御部２６４は、図３のデコード制御部１６４の処理に加えて、ピクチャNo.（図９）により指定したピクチャの開始位置の検出を指示する情報（以下、開始位置検出指示情報と称する）、または、スライスNo.（図１０）により指定したスライスの開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部２７１に供給する。
【０１２６】
スタート位置検出部２７１は、ピクチャ位置情報またはスライス位置情報に基づいて、開始位置検出指示情報により指定されたピクチャまたはスライスの開始位置を検出する。スタート位置検出部２７１は、検出したピクチャまたはスライスの開始位置を示す情報をデコード制御部２６４に供給する。
【０１２７】
なお、以下、デコーダ２６５−１乃至２６５−４を個々に区別する必要がない場合、単に、デコーダ２６５と称する。
【０１２８】
図９は、ピクチャ位置情報のデータの構成の例を示す図である。ピクチャ位置情報は、映像ストリーム内のGOPごとに記録され、ピクチャ開始アドレス、および、GOPに含まれる各ピクチャに対応する個別情報を含むように構成される。
【０１２９】
ピクチャ開始アドレスは、GOP内の先頭のピクチャの開始位置のクリップの先頭からの相対位置（相対アドレス）を示す。なお、映像ストリームを記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）に記録する場合、ピクチャ開始アドレスを、GOP内の先頭のピクチャが記録媒体に記録される位置の先頭のアドレスとするようにしてもよい。
【０１３０】
個別情報は、ピクチャNo.、データ長、および、オフセットを含むように構成される。
【０１３１】
ピクチャNo.は、クリップ内の先頭のピクチャを起点にしてカウントしたシリアルNo.である。ピクチャNo.は、１つのクリップ内でリセットされないため、クリップの先頭から何番目のピクチャであるかを示す。
【０１３２】
データ長は、ピクチャのデータ長を示す。
【０１３３】
オフセットは、ピクチャ開始アドレスからのオフセット（相対アドレス）を示す。従って、ピクチャ開始アドレスとオフセットに基づいて、各ピクチャの開始位置のクリップの先頭からの相対アドレスを求めることができる。なお、映像ストリームを記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）に記録する場合、映像ストリームを記録媒体に記録する場合、各ピクチャについて、オフセットの代わりに、ピクチャが記録媒体に記録される位置の先頭のアドレスを記録するようにしてもよい。
【０１３４】
図１０は、スライス位置情報のデータの構成の例を示す図である。スライス位置情報は、映像ストリーム内のピクチャごとに記録され、スライス開始アドレス、および、ピクチャに含まれる各スライスに対応する個別情報を含むように構成される。
【０１３５】
スライス開始アドレスは、ピクチャ内の先頭のスライスの開始位置のクリップの先頭からの相対アドレスを示す。なお、スライス開始アドレスを、ピクチャ内の先頭のスライスが記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）に記録される位置の先頭のアドレスとするようにしてもよい。
【０１３６】
個別情報は、スライスNo.、データ長、および、オフセットを含むように構成される。
【０１３７】
スライスNo.は、ピクチャ内の先頭のスライスを起点にしてカウントしたシリアルNo.である。スライスNo.は、ピクチャが変わるごとにリセットされるため、ピクチャ内において先頭から何番目のスライスであるかを示す。
【０１３８】
データ長は、スライスのデータ長を示す。
【０１３９】
オフセットは、スライス開始アドレスからのオフセット（相対アドレス）を示す。従って、スライス開始アドレスとオフセットに基づいて、各スライスの開始位置のクリップの先頭からの相対アドレスを求めることができる。なお、映像ストリームを記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）に記録する場合、各スライスについて、オフセットの代わりに、スライスが記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）に記録される位置のアドレスを記録するようにしてもよい。
【０１４０】
次に、図１１のフローチャートを参照して、エンコード部２０１により実行されるエンコード処理を説明する。なお、この処理は、例えば、エンコーダ２１１が、ユーザがマウス１１４またはキーボード１１５を用いて入力したエンコードの指示を、インタフェース１２９−１およびバス１３０を介して取得した場合、開始される。また、以下、外部映像記録装置１１３−１からエンコード前のベースバンド信号である映像ストリームが、インタフェース１２９−２およびバス１３０を介してエンコーダ２１１に入力され、エンコードされた映像ストリームがリムーバブルメディア１１６に記録される場合の例を説明する。
【０１４１】
ステップＳ１０１において、エンコーダ２１１は、全ての映像ストリームをエンコードしたか否かを判定する。まだ全ての映像ストリームがエンコードされていないと判定された場合、例えば、外部映像記録装置１１３−１からの映像ストリームの入力が継続している場合、処理はステップＳ１０２に進む。
【０１４２】
ステップＳ１０２において、エンコーダ２１１は、シーケンス層を変更するか否かを判定する。シーケンス層を変更すると判定された場合、例えば、映像ストリームの画像サイズが変更されたり、外部からエンコーダ２１１にシーケンス層の変更を指示する情報が入力された場合、処理はステップＳ１０３に進む。
【０１４３】
ステップＳ１０３において、エンコーダ２１１は、映像ストリームのシーケンス層をエンコードする。エンコーダ２１１は、エンコードしたデータをストリーム出力制御部２１６に供給する。ストリーム出力制御部２１６は、取得したデータをストリーム用メモリ２０２に記憶させる。
【０１４４】
ステップＳ１０２において、シーケンス層を変更しないと判定された場合、ステップＳ１０３の処理はスキップされ、処理はステップＳ１０４に進む。
【０１４５】
ステップＳ１０４において、エンコーダ２１１は、GOP層をエンコードする。このとき、エンコーダ２１１は、GOP層のユーザデータ領域にピクチャ位置情報を後から記録するための領域を確保する。エンコーダ２１１は、エンコードしたデータをストリーム出力制御部２１６に供給する。ストリーム出力制御部２１６は、取得したデータをストリーム用メモリ２０２に記憶させる。
【０１４６】
ステップＳ１０５において、エンコード部２０１は、ピクチャ層以下エンコード処理を行う。ピクチャ層以下エンコード処理の詳細は、図１２を参照して後述するが、この処理により、ピクチャ層以下がエンコードされる。その後、処理はステップＳ１０１に戻り、ステップＳ１０１において、映像ストリームが全てエンコードされたと判定されるまで、ステップＳ１０１乃至Ｓ１０５の処理が繰り返し実行され、映像ストリームがエンコードされる。
【０１４７】
ステップＳ１０１において、映像ストリームが全てエンコードされたと判定された場合、例えば、外部映像記録装置１１３−１からの映像ストリームの入力が終了し、入力された映像ストリームのエンコードが全て終了している場合、エンコード処理は終了する。
【０１４８】
次に、図１２のフローチャートを参照して、図１１のステップＳ１０５のピクチャ層以下エンコード処理の詳細を説明する。
【０１４９】
ステップＳ１２１において、エンコーダ２１１は、GOP内の全てのピクチャをエンコードしたか否かを判定する。エンコーダ２１１は、現在エンコード中のGOPに含める予定の数のピクチャをエンコードしたか否かを確認し、まだ現在エンコード中のGOPに含める予定の数のピクチャをエンコードしていない場合、まだGOP内の全てのピクチャをエンコードしていないと判定し、処理はステップＳ１２２に進む。
【０１５０】
ステップＳ１２２において、ピクチャカウント部２１２は、ピクチャカウンタをインクリメントする。具体的には、エンコーダ２１１は、次のピクチャのエンコードの開始を通知する情報をピクチャカウント部２１２に供給する。ピクチャカウント部２１２は、ピクチャカウンタをインクリメントする。
【０１５１】
ステップＳ１２３において、エンコーダ２１１は、ピクチャの開始位置を決定する。具体的には、エンコーダ２１１は、次にエンコードするピクチャの記録を開始する位置を決定する。エンコーダ２１１は、次にエンコードするピクチャがGOPの先頭のピクチャである場合、決定した開始位置のクリップの先頭からの相対アドレスを示すピクチャ開始位置情報をスタート位置メモリ２１４に記憶させる。また、エンコーダ２１１は、次にエンコードするピクチャがGOPの先頭のピクチャでない場合、決定した開始位置のGOPの先頭のピクチャからのオフセットを示すピクチャ開始位置情報をスタート位置メモリ２１４に記憶させる。
【０１５２】
ステップＳ１２４において、ストリーム出力制御部２１６は、ピクチャの開始位置を記録する。具体的には、エンコーダ２１１は、次のピクチャのエンコードの開始を通知する情報をスタート位置記録制御部２１５に供給する。スタート位置記録制御部２１５は、ピクチャカウント部２１２から、ピクチャカウンタの値を示す情報を取得し、スタート位置メモリ２１４から、ピクチャ開始位置情報を取得する。
【０１５３】
次にエンコードするピクチャがGOPの先頭のピクチャである場合、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、ストリーム用メモリ２０２に記憶されているエンコード中のGOPに対応するピクチャ位置情報について、ピクチャ開始アドレスにピクチャ開始位置情報の値を記録する。また、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、エンコード中のGOPに対応するピクチャ位置情報の先頭の個別情報について、ピクチャNo.にピクチャカウンタの値を記録し、オフセットに０を記録する。
【０１５４】
また、次にエンコードするピクチャがGOPの先頭のピクチャでない場合、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、エンコード中のGOPに対応するピクチャ位置情報の次にエンコードするピクチャに対応する個別情報について、ピクチャNo.にピクチャカウンタの値を記録し、オフセットにピクチャ開始位置情報の値を記録する。
【０１５５】
ステップＳ１２５において、エンコーダ２１１は、ピクチャ層をエンコードする。このとき、エンコーダ２１１は、ピクチャ層のユーザデータ領域にスライス位置情報を後から記録するための領域を確保する。エンコーダ２１１は、エンコードしたデータをストリーム出力制御部２１６に供給する。ストリーム出力制御部２１６は、取得したデータをストリーム用メモリ２０２に記憶させる。
【０１５６】
ステップＳ１２６において、エンコーダ２１１は、ピクチャ内の全てのスライスをエンコードしたか否かを判定する。エンコーダ２１１は、ピクチャ内に含まれる所定の数のスライスをエンコードしたか否かを確認し、まだピクチャ内に含まれる所定の数のスライスをエンコードしていない場合、まだピクチャ内の全てのスライスをエンコードしていないと判定し、処理はステップＳ１２７に進む。
【０１５７】
ステップＳ１２７において、スライスカウント部２１３は、スライスカウンタをインクリメントする。具体的には、エンコーダ２１１は、次のスライスのエンコードの開始を通知する情報をスライスカウント部２１３に供給する。スライスカウント部２１３は、スライスカウンタをインクリメントする。
【０１５８】
ステップＳ１２８において、エンコーダ２１１は、スライスの開始位置を決定する。具体的には、エンコーダ２１１は、次にエンコードするスライスの記録を開始する位置を決定する。エンコーダ２１１は、次にエンコードするスライスがピクチャの先頭のスライスである場合、決定した開始位置のクリップの先頭からの相対アドレスを示すスライス開始位置情報をスタート位置メモリ２１４に記憶させる。また、エンコーダ２１１は、次にエンコードするスライスがピクチャの先頭のスライスでない場合、決定した開始位置のピクチャの先頭のスライスからのオフセットを示すスライス開始位置情報をスタート位置メモリ２１４に記憶させる。
【０１５９】
ステップＳ１２９において、ストリーム出力制御部２１６は、スライスの開始位置を記録する。具体的には、エンコーダ２１１は、次のスライスのエンコードの開始を通知する情報をスタート位置記録制御部２１５に供給する。スタート位置記録制御部２１５は、スライスカウント部２１３から、スライスカウンタの値を示す情報を取得し、スタート位置メモリ２１４から、スライス開始位置情報を取得する。
【０１６０】
次にエンコードするスライスがピクチャの先頭のスライスである場合、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、ストリーム用メモリ２０２に記憶されているエンコード中のピクチャに対応するスライス位置情報について、スライス開始アドレスにスライス開始位置情報の値を記録する。また、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、エンコード中のピクチャに対応するスライス位置情報内の先頭の個別情報について、スライスNo.にスライスカウンタの値を記録し、オフセットに０を記録する。
【０１６１】
また、次にエンコードするスライスがピクチャの先頭のスライスでない場合、ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、エンコード中のピクチャに対応するスライス位置情報内の次にエンコードするスライスに対応する個別情報について、スライスNo.にスライスカウンタの値を記録し、オフセットにスライス開始位置情報の値を記録する。
【０１６２】
ステップＳ１３０において、エンコーダ２１１は、スライス層以下の層をエンコードする。エンコーダ２１１は、エンコードしたデータをストリーム出力制御部２１６に供給する。ストリーム出力制御部２１６は、取得したデータをストリーム用メモリ２０２に記憶させる。
【０１６３】
ステップＳ１３１において、ストリーム出力制御部２１６は、スライスのデータ長を記録する。具体的には、エンコーダ２１１は、エンコードが終了したスライスのデータ長を示すスライスデータ長情報をスタート位置メモリ２１４に記憶させる。また、エンコーダ２１１は、スライスのエンコードが終了したことを示す情報をスタート位置記録制御部２１５に供給する。スタート位置記録制御部２１５は、スタート位置メモリ２１４から、スライスデータ長情報を取得する。ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、ストリーム用メモリ２０２に記憶されているエンコード中のピクチャに対応するスライス位置情報内のエンコードが終了したスライスに対応する個別情報について、データ長にスライスデータ長情報の値を記録する。
【０１６４】
その後、処理はステップＳ１２６に戻り、ステップＳ１２６において、ピクチャ内の全てのスライスがエンコードされたと判定されるまで、ステップＳ１２６乃至Ｓ１３１の処理が繰り返し実行され、ピクチャ内の全てのスライスがエンコードされる。
【０１６５】
ステップＳ１２６において、エンコーダ２１１は、ピクチャ内に含まれる所定の数のスライスのエンコードが終了している場合、ピクチャ内の全てのスライスをエンコードしたと判定し、処理はステップＳ１３２に進む。
【０１６６】
ステップＳ１３２において、ストリーム出力制御部２１６は、ピクチャのデータ長を記録する。具体的には、エンコーダ２１１は、エンコードが終了したピクチャのデータ長を示すピクチャデータ長情報をスタート位置メモリ２１４に記憶させる。また、エンコーダ２１１は、ピクチャのエンコードが終了したことを示す情報をスタート位置記録制御部２１５に供給する。スタート位置記録制御部２１５は、スタート位置メモリ２１４から、ピクチャデータ長情報を取得する。ストリーム出力制御部２１６は、スタート位置記録制御部２１５の制御の基に、ストリーム用メモリ２０２に記憶されているエンコード中のGOPに対応するピクチャ位置情報内のエンコードが終了したピクチャに対応する個別情報について、データ長にピクチャデータ長情報の値を記録する。
【０１６７】
ステップＳ１３３において、スライスカウント部２１３は、スライスカウンタをリセットする。具体的には、エンコーダ２１１は、ピクチャのエンコードが終了したことを示す情報をスライスカウント部２１３に供給する。スライスカウント部２１３は、スライスカウンタをリセットする。
【０１６８】
その後、処理はステップＳ１２１に戻り、ステップＳ１２１において、GOP内の全てのピクチャがエンコードされたと判定されるまで、ステップＳ１２１乃至Ｓ１３３の処理が繰り返し実行され、GOP内の全てのピクチャがエンコードされる。
【０１６９】
ステップＳ１２１において、エンコーダ２１１は、現在エンコード中のGOPに含める予定の数のピクチャのエンコードが終了している場合、GOP内の全てのピクチャをエンコードしたと判定し、処理はステップＳ１３４に進む。
【０１７０】
ステップＳ１３４において、ストリーム出力制御部２１６は、映像ストリームを出力し、ピクチャ層以下エンコード処理は終了する。具体的には、例えば、ストリーム出力制御部２１６は、ストリーム用メモリ２０２のデータ量が所定の閾値を超えている場合、ストリーム用メモリ２０２に記憶されているエンコードされた映像ストリームを、バス１３０およびインタフェース１２９−３を介して、ドライブ１１２に供給する。ドライブ１１２は、リムーバブルメディア１１６に映像ストリームを記録する。
【０１７１】
次に、図１３および図１４のフローチャートを参照して、エンコード部２０１によりエンコードされた映像ストリームをデコード部２５１によりデコードする場合のデコード処理を説明する。なお、この処理は、例えば、デコード制御部２６４が、ユーザがマウス１１４またはキーボード１１５を用いて入力したデコードの指示を、インタフェース１２９−１およびバス１３０を介して取得した場合、開始される。また、以下、リムーバブルメディア１１６に記録されている映像ストリームをデコードする場合の例を説明する。さらに、以下、上述した図１の右側に示されるように、各ピクチャについて、ピクチャ内のいちばん上のスライスから順番に１つずつ各デコーダ２６５が並列してスライスをデコードするものとする。
【０１７２】
ステップＳ１５１において、上述した図４のステップＳ１と同様の処理により、映像ストリームが全てデコードされたか否かが判定される。まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップＳ１５２に進む。
【０１７３】
ステップＳ１５２において、上述した図４のステップＳ２と同様の処理により、デコードする映像ストリームのシーケンス層がリムーバブルメディア１１６から読み出され、シーケンス層がデコードされる。
【０１７４】
ステップＳ１５３において、上述した図４のステップＳ５と同様の処理により、全てのGOPがデコードされたか否かが判定される。まだ全てのGOPがデコードされていないと判定された場合、処理はステップＳ１５４に進む
【０１７５】
ステップＳ１５４において、上述した図４のステップＳ６と同様の処理により、次にデコードするGOPがリムーバブルメディア１１６から読み出され、読み出されたGOPのGOP層がデコードされる。
【０１７６】
ステップＳ１５５において、ストリーム解析部２６２は、ピクチャ位置情報を抽出する。具体的には、ストリーム解析部２６２は、ステップＳ１５４においてデコードしたGOP層のユーザデータ領域に記録されているピクチャ位置情報を抽出する。ストリーム解析部２６２は、抽出したピクチャ位置情報をスタート位置検出部２７１に供給する。
【０１７７】
ステップＳ１５６において、上述した図４のステップＳ７と同様の処理により、GOP内の全てのピクチャがデコードされたか否かが判定される。まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップＳ１５７に進む。
【０１７８】
ステップＳ１５７において、ストリーム読出し制御部２６１は、次にデコードするピクチャのピクチャ層を読み出す。具体的には、デコード制御部２６４は、ピクチャNo.を指定することにより次にデコードするピクチャの開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部２７１に供給する。スタート位置検出部２７１は、ピクチャ位置情報に基づいて、指定されたピクチャNo.のピクチャの開始位置を検出する。スタート位置検出部２７１は、検出したピクチャの開始位置を示す情報をデコード制御部２６４に供給する。デコード制御部２６４は、スタート位置検出部２７１により検出されたピクチャの開始位置からのピクチャ層の読出しを指示する情報をストリーム読出し制御部２６１に供給する。ストリーム読出し制御部２６１は、指定された開始位置から始まる、次にデコードするピクチャのピクチャ層をストリーム用メモリ１５２に記憶されているGOPから読み出す。ストリーム読出し制御部２６１は、読み出したピクチャ層をストリーム解析部２６２に供給する。
【０１７９】
ステップＳ１５８において、上述した図４のステップＳ９と同様の処理により、ピクチャ層がデコードされる。
【０１８０】
ステップＳ１５９において、ストリーム解析部２６２は、スライス位置情報を抽出する。具体的には、ストリーム解析部２６２は、ステップＳ１５８においてデコードしたピクチャ層のユーザデータ領域に記録されているスライス位置情報を抽出する。ストリーム解析部２６２は、抽出したスライス位置情報をスタート位置検出部２７１に供給する。
【０１８１】
ステップＳ１６０において、スタート位置検出部２７１は、デコードを開始する位置を検出する。具体的には、デコード制御部２６４は、スライスNo.を指定することにより次に各デコーダ２６５がデコードする各スライスの開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部２７１に供給する。スタート位置検出部２７１は、スライス位置情報に基づいて、指定されたスライスNo.のスライスの開始位置を検出する。デコード制御部２６４は、検出した各スライスの開始位置を示す情報をデコード制御部２６４に供給する。
【０１８２】
ステップＳ１６１において、デコード制御部２６４は、デコードの開始を指示する。具体的には、デコード制御部２６４は、ステップＳ１６０において検出された開始位置から始まる各スライスの各デコーダ２６５への供給を指示する情報をストリーム読出し制御部２６１に供給する。また、デコード制御部２６４は、次のスライスのデコードの開始を指示する情報を各デコーダ２６５に供給する。
【０１８３】
ステップＳ１６２において、デコーダ２６５は、デコードを開始する。具体的には、ストリーム読出し制御部２６１は、デコード制御部２６４により指示された開始位置から始まるスライスをストリーム用メモリ１５２から読み出し、読み出したスライスを各デコーダ２６５に供給する。デコーダ２６５は、取得したスライスのデコードを開始する。デコーダ２６５は、ステップＳ１６２において開始したスライスのデコードが終了した場合、デコードが終了したことを示す情報をデコード制御部２６４に供給し、デコードしたデータをベースバンド出力制御部２６６に供給する。ベースバンド出力制御部２６６は、取得したデータをベースバンド用メモリ１５３に記憶させる。
【０１８４】
ステップＳ１６３において、上述した図５のステップＳ１３と同様の処理により、エラーが発生したか否かが判定される。エラーが発生していないと判定された場合、処理はステップＳ１６４に進む。
【０１８５】
ステップＳ１６４において、デコード制御部２６４は、デコードが終了したデコーダ２６５があるか否かを判定する。デコード制御部２６４は、デコードが終了したことを示す情報をどのデコーダ１６５からも取得していない場合、デコードが終了したデコーダ２６５がないと判定し、処理はステップＳ１６３に戻り、ステップＳ１６３において、エラーが発生したと判定されるか、または、ステップＳ１６４において、デコードが終了したデコーダ２６５があると判定されるまで、ステップＳ１６３およびＳ１６４の判定処理が繰り返し実行される。
【０１８６】
ステップＳ１６４において、デコード制御部２６４は、デコードが終了したことを示す情報を１つ以上のデコーダ１６５から取得している場合、デコードが終了したデコーダ２６５があると判定し、処理はステップＳ１６５に進む。
【０１８７】
ステップＳ１６５において、デコード制御部２６４は、デコードが終了したデコーダ２６５が、デコード中のピクチャにおいて割り当てられたスライスを全てデコードしたか否かを判定する。デコード中のピクチャにおいて割り当てられているスライスがまだ全てデコードされていないと判定された場合、処理はステップＳ１６０に戻り、ステップＳ１６０以降の処理が実行される。すなわち、デコードが終了したデコーダ２６５は、デコード中のピクチャにおいて割り当てられている次のスライスをデコードする。
【０１８８】
ステップＳ１６３において、エラーが発生したと判定された場合、処理はステップＳ１６６に進む。
【０１８９】
ステップＳ１６６において、デコード制御部２６４は、デコードを再開する位置を決定する。デコード制御部２６４は、例えば、デコードを失敗したスライスの次のスライスをデコードの再開位置に決定する。その後、処理はステップＳ１６０に戻り、ステップＳ１６０以降の処理が実行される。すなわち、エラーが発生したデコーダ２６５は、エラーが発生したスライスの次のスライスをデコードする。
【０１９０】
ステップＳ１６５において、デコードが終了したデコーダ２６５が、デコード中のピクチャにおいて割り当てられたスライスを全てデコードしたと判定された場合、処理はステップＳ１６７に進む。
【０１９１】
ステップＳ１６７において、デコード制御部２６４は、全てのデコーダ２６５の処理が終了したか否かを判定する。具体的には、デコード制御部２６４は、デコード中のピクチャにおいてそれぞれ割り当てられたスライスのデコードが終了していないデコーダ２６５があるか否かを検出し、割り当てられたスライスのデコードが終了していないデコーダ２６５がある場合、まだ全てのデコーダ２６５の処理が終了していないと判定し、処理はステップＳ１６３に戻り、ステップＳ１６３以降の処理が実行される。すなわち、デコード中のピクチャにおいて割り当てられたスライスのデコードが終了したデコーダ２６５は待機したまま、割り当てられたスライスのデコードが終了していないデコーダ２６５の処理が継続して実行される。
【０１９２】
ステップＳ１６７において、全てのデコーダ２６５の処理が終了したと判定された場合、処理はステップＳ１６８に進む。
【０１９３】
ステップＳ１６８において、上述した図５のステップＳ１７と同様の処理により、１フレーム分のデータが出力され、処理はステップＳ１５６に戻る。
【０１９４】
ステップＳ１５６において、まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップＳ１５７に進み、上述したステップＳ１５７以降の処理が実行される。すなわち、次のピクチャがデコードされる。
【０１９５】
ステップＳ１５６において、GOP内の全てのピクチャがデコードされたと判定された場合、処理はステップＳ１５３に戻る。
【０１９６】
ステップＳ１５３において、まだ全てのGOPがデコードされていないと判定された場合、処理はステップＳ１５４に進み、上述したステップＳ１５４以降の処理が実行される。すなわち、次のGOPがデコードされる。
【０１９７】
ステップＳ１５３において、全てのGOPがデコードされたと判定された場合、処理はステップＳ１５１に戻る。
【０１９８】
ステップＳ１５１において、まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップＳ１５２に進み、上述したステップＳ１５２以降の処理が実行される。すなわち、映像ストリームの次のシーケンス層がデコードされる。
【０１９９】
ステップＳ１５１において、映像ストリームが全てデコードされたと判定された場合、デコード処理は終了する。
【０２００】
次に、図１５のフローチャートを参照して、映像ストリームを先頭からデコードせずに、ユーザの指示などにより指定されてピクチャからデコードを開始する場合、デコード部２５１により実行されるデコード開始位置検出処理を説明する。
【０２０１】
ステップＳ１８１において、デコード制御部１６４は、デコードを開始する位置を検出する。具体的には、デコード制御部１６４は、ユーザにより指示されたデコードの開始位置のピクチャのピクチャNo.を検出する。
【０２０２】
ステップＳ１８２において、上述した図４のステップＳ２と同様の処理により、シーケンス層がデコードされる。
【０２０３】
ステップＳ１８３において、上述した図４のステップＳ６と同様の処理により、デコードを開始するピクチャを含むGOPのGOP層がデコードされる。
【０２０４】
ステップＳ１８４において、上述した図１３のステップＳ１５５と同様の処理により、デコードを開始するピクチャを含むGOPのピクチャ位置情報が抽出される。
【０２０５】
ステップＳ１８５において、上述した図１３のステップＳ１５７と同様の処理により、ピクチャ位置情報に基づいて、デコードを開始するピクチャのピクチャ層が読み出される。
【０２０６】
ステップＳ１８６において、上述した図１３のステップＳ１５８と同様の処理により、デコードを開始するピクチャのピクチャ層がデコードされる。
【０２０７】
ステップＳ１８７において、上述した図１３のステップＳ１５９と同様の処理により、デコードを開始するピクチャのスライス情報が抽出される。
【０２０８】
ステップＳ１８８において、上述した図１３のステップＳ１６０と同様の処理により、スライス位置情報に基づいて、各デコーダ２６５がデコードを開始するスライスの位置が検出される。
【０２０９】
ステップＳ１８９において、上述した図１３のステップＳ１６１と同様の処理により、ステップＳ１８８において検出された開始位置から始まる各スライスの各デコーダ２６５への供給を指示する情報がストリーム読出し制御部２６１に供給され、ステップＳ１８８に検出された開始位置から始まるスライスのデコードの開始が各デコーダ２６５に指示され、デコード開始位置検出処理は終了する。
【０２１０】
このように、ストリーム解析部２６２がピクチャ層をデコードする場合、映像ストリーム上のピクチャ層の開始位置（スタートコード）を検索することなく、ピクチャ位置情報に基づいて、迅速にデコードの開始位置が検出される。また、各デコーダ４６５がスライスをデコードする場合、映像ストリーム上のスライス層の開始位置（スタートコード）を検索することなく、スライス位置情報に基づいて、迅速にデコードの開始位置が検出される。従って、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。なお、デコード処理を分割せずに１つのデコーダによりデコードする場合も同様に、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。
【０２１１】
なお、ピクチャ位置情報およびスライス位置情報を、映像ストリーム内に記録せずに、映像ストリームとは異なるファイルに記録することも可能である。図１６乃至図２３を参照して、ピクチャ位置情報およびスライス位置情報を映像ストリームとは異なるファイルに記録する場合の実施の形態を説明する。
【０２１２】
図１６は、所定のプログラムを実行するCPU１２１により実現されるエンコード部３０１の機能の構成の例を示す図である。エンコード部３０１は、図７のエンコード部２０１と比較して、GOPカウント部３２１が設けられている点が異なる。なお、図中、図７と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０２１３】
エンコード部３０１は、エンコーダ３１１、ピクチャカウント部３１２、スライスカウント部３１３、スタート位置メモリ３１４、スタート位置記録制御部３１５、ストリーム出力制御部３１６、および、GOPカウント部３２１を含むように構成される。
【０２１４】
エンコーダ３１１は、図７のエンコーダ２１１の処理に加えて、映像ストリームのエンコードを開始する前に、エンコードすることにより生成される映像ストリームのクリップの記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）への記録を開始する位置を示す情報（以下、クリップ開始位置情報と称する）を、スタート位置メモリ３１４に記憶させる。また、エンコーダ３１１は、映像ストリームのエンコードを開始するとき、映像ストリームのエンコードの開始を通知する情報をスタート位置記録制御部３１５に供給する。さらに、エンコーダ３１１は、GOP（GOP層）のエンコードを開始する度に、GOPのエンコードの開始を通知する情報をGOPカウント部３２１およびスタート位置記録制御部３１５に供給する。
【０２１５】
GOPカウント部３２１は、クリップ内のGOPの数をカウントする。具体的には、GOPカウント部３２１は、GOPカウンタを管理し、エンコーダ３１１からGOPのエンコードの開始を通知する情報が供給される毎に、GOPカウンタの値をインクリメントする。
【０２１６】
スタート位置記録制御部３１５は、スタート位置メモリ３１４に記録されているピクチャ開始位置情報、スライス開始位置情報、ピクチャデータ長情報、スライスデータ長情報、または、クリップ開始位置情報を読み出す。また、スタート位置記録制御部３１５は、ピクチャカウンタの値を示す情報をピクチャカウント部３１２から取得する。さらに、スタート位置記録制御部３１５は、スライスカウンタの値を示す情報をスライスカウント部３１３から取得する。また、スタート位置記録制御部３１５は、GOPカウンタの値を示す情報をGOPカウント部３２１から取得する。
【０２１７】
スタート位置記録制御部３１５は、クリップ内の各ピクチャおよび各スライスの位置を示す情報（以下、クリップ位置情報と称する）を生成する。スタート位置記録制御部３１５は、ストリーム用メモリ２０２にクリップ位置情報を一時的に記憶させ、クリップ位置情報を適宜更新する。
【０２１８】
ストリーム出力制御部３１６は、エンコーダ３１１によりエンコードされた映像ストリームをストリーム用メモリ２０２に一時的に記憶させる。ストリーム出力制御部３１６は、トリーム用メモリ２０２に記憶されている映像ストリームまたはクリップ位置情報を読み出し、読み出した映像ストリームまたはクリップ位置情報を外部（例えば、バス１３０を介して、ドライブ１１２またはHDD１２４）に出力する。
【０２１９】
図１７は、所定のプログラムを実行するCPU１２１により実現されるデコード部３５１の機能の構成の例を示す図である。なお、図中、図８と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０２２０】
デコード部３５１は、ストリーム読出し制御部３６１、ストリーム解析部３６２、デコード制御部３６４、デコーダ３６５−１乃至３６５−４、および、ベースバンド出力制御部３６６、および、スタート位置検出部３７１を含むように構成される。
【０２２１】
デコード制御部３６４は、図８のデコード制御部２６４の処理に加えて、デコードする映像ストリームのクリップに対応するクリップ位置情報の取得を指示する情報をスタート位置検出部３７１に供給する。
【０２２２】
スタート位置検出部３７１は、デコードする映像ストリームのクリップに対応するクリップ位置情報を、クリップが記録されている記録媒体から読み出す。スタート位置検出部３７１は、クリップ位置情報に基づいて、デコード制御部３６４からの開始位置検出指示情報により指定されたピクチャまたはスライスの開始位置を検出する。スタート位置検出部３７１は、検出したピクチャまたはスライスの開始位置を示す情報をデコード制御部３６４に供給する。
【０２２３】
なお、以下、デコーダ３６５−１乃至３６５−４を個々に区別する必要がない場合、単にデコーダ３６５と称する。
【０２２４】
図１８は、クリップ位置情報のデータの構成の例を示す図である。クリップ位置情報は、映像ストリームのクリップごとに記録され、クリップNo.、クリップ開始アドレス、ピクチャ位置情報、および、スライス位置情報を含むように構成される。
【０２２５】
クリップNo.は、クリップ位置情報に対応するクリップを識別するための番号であって、記録媒体に記録されている映像ストリームのクリップを一意に識別するために割り当てられた番号である。
【０２２６】
クリップ開始アドレスは、クリップが記録媒体（例えば、リムーバブルメディア１１６またはHDD１２４）に記録される位置の先頭のアドレスを示す。
【０２２７】
ピクチャ位置情報は、図１９を参照して後述するように、クリップに含まれる各GOPについて、GOP内の各ピクチャの位置を示す情報が記録される。
【０２２８】
スライス位置情報は、図２０を参照して後述するように、クリップに含まれる各ピクチャについて、ピクチャ内の各スライスの位置を示す情報が記録される。
【０２２９】
図１９は、図１８のクリップ位置情報に含まれるピクチャ位置情報のデータの構成の例を示す図である。クリップ位置情報のピクチャ位置情報は、図１０のピクチャ位置情報と比較して、GOP No.が追加されている点が異なる。GOP No.は、クリップ内のGOPを一意に識別するために割り当てられた番号であり、ピクチャ位置情報に対応するGOPのGOP No.を示す。
【０２３０】
図２０は、図１８のクリップ位置情報に含まれるスライス位置情報のデータの構成の例を示す図である。クリップ位置情報のスライス位置情報は、図１１のスライス位置情報と比較して、ピクチャ No.が追加されている点が異なる。ピクチャ No.は、スライス位置情報に対応するピクチャのピクチャ No.を示す。
【０２３１】
次に、図２１のフローチャートを参照して、エンコード部３０１により実行されるエンコード処理を説明する。なお、この処理は、例えば、エンコーダ３１１が、ユーザがマウス１１４またはキーボード１１５を用いて入力したエンコードの指示を、インタフェース１２９−１およびバス１３０を介して取得した場合、開始される。また、以下、外部映像記録装置１１３−１からエンコード前のベースバンド信号である映像ストリームが、インタフェース１２９−２およびバス１３０を介してエンコーダ３１１に入力され、エンコードされた映像ストリームがリムーバブルメディア１１６に記録される場合の例を説明する。
【０２３２】
ステップＳ２０１において、エンコーダ３１１は、クリップの開始位置を決定する。具体的には、エンコーダ３１１は、エンコードする映像ストリームのクリップのリムーバブルメディア１１６への記録を開始する位置を決定する。エンコーダ３１１は、決定した開始位置を示すクリップ開始位置情報をスタート位置メモリ３１４に記憶させる。
【０２３３】
ステップＳ２０２において、スタート位置記録制御部３１５は、クリップの開始位置を記録する。具体的には、エンコーダ３１１は、映像ストリームのエンコードの開始を通知する情報をスタート位置記録制御部３１５に供給する。スタート位置記録制御部３１５は、スタート位置メモリ３１４からクリップ開始位置情報を取得する。スタート位置記録制御部３１５は、クリップ位置情報を生成する。スタート位置記録制御部３１５は、エンコードを開始する映像ストリームのクリップのクリップNo.をクリップ位置情報に記録する。また、スタート位置記録制御部３１５は、クリップ位置情報のクリップ開始アドレスに、クリップ開始位置情報の値を記録する。スタート位置記録制御部３１５は、クリップ位置情報をストリーム用メモリ１５２に記憶させる。
【０２３４】
ステップＳ２０３において、上述した図１１のステップＳ１０１と同様の処理により、映像ストリームが全てエンコードされたか否かが判定される。まだ全ての映像ストリームがエンコードされていないと判定された場合、処理はステップＳ２０４に進む。
【０２３５】
ステップＳ２０４において、上述した図１１のステップＳ１０２と同様の処理により、シーケンス層を変更するか否かが判定される。シーケンス層を変更すると判定された場合、処理はステップＳ２０５に進む。
【０２３６】
ステップＳ２０５において、上述した図１１のステップＳ１０３と同様の処理により、シーケンス層がエンコードされる。
【０２３７】
ステップＳ２０４において、シーケンス層を変更しないと判定された場合、ステップＳ２０５の処理はスキップされ、処理はステップＳ２０６に進む。
【０２３８】
ステップＳ２０６において、GOPカウント部３２１は、GOPカウンタをインクリメントする。具体的には、エンコーダ３１１は、次のGOPのエンコードの開始を通知する情報をGOPカウント部３２１に供給する。GOPカウント部３２１は、GOPカウンタをインクリメントする。
【０２３９】
ステップＳ２０７において、スタート位置記録制御部３１５は、GOP No.を記録する。具体的には、エンコーダ３１１は、次のGOPのエンコードの開始を通知する情報をスタート位置記録制御部３１５に供給する。スタート位置記録制御部３１５は、GOPカウント部３２１から、GOPカウンタの値を示す情報を取得する。スタート位置記録制御部３１５は、ストリーム用メモリ２０２に記憶されているクリップ位置情報の次にエンコードするGOPに対応するピクチャ位置情報について、GOP No.にGOPカウンタの値を記録する。
【０２４０】
ステップＳ２０８において、上述した図１１のステップＳ１０４と同様の処理により、GOP層がエンコードされる。
【０２４１】
ステップＳ２０９において、図１２を参照して上述したピクチャ層以下エンコード処理が行われる。なお、図７のエンコーダ２１１により実行されるピクチャ層以下エンコード処理と異なり、ピクチャ位置情報およびスライス位置情報が、ストリーム用メモリ２０２に記憶されているクリップ位置情報に記録される。
【０２４２】
その後、処理はステップＳ２０３に戻り、ステップＳ２０３において、映像ストリームを全てエンコードしたと判定されるまで、ステップＳ２０３乃至Ｓ２０９の処理が繰り返し実行される。
【０２４３】
ステップＳ２０３において、映像ストリームが全てエンコードされたと判定された場合、処理はステップＳ２１０に進む。
【０２４４】
ステップＳ２１０において、ストリーム出力制御部３１６は、クリップ位置情報を出力し、エンコード処理は終了する。具体的には、ストリーム出力制御部３１６は、ストリーム用メモリ２０２に記憶されているクリップ位置情報を読出し、読み出したクリップ位置情報を、バス１３０およびインタフェース１２９−３を介して、ドライブ１１２に供給する。ドライブ１１２は、リムーバブルメディア１１６に、対応するクリップとは別のファイルとしてクリップ位置情報を記録する。
【０２４５】
次に、図２２および図２３のフローチャートを参照して、デコード部３５１により実行されるデコード処理を説明する。図２２および図２３のフローチャートは、上述した図１３および図１４のフローチャートと比較して、ステップＳ２５１の処理が追加されている。
【０２４６】
すなわち、ステップＳ２５１において、スタート位置検出部３７１は、クリップ位置情報を取得する。具体的には、デコード制御部３６４は、デコードする映像ストリームのクリップに対応するクリップ位置情報の取得を指示する情報をスタート位置検出部３７１に供給する。ドライブ１１２は、スタート位置検出部３７１の制御の基に、クリップ位置情報をリムーバブルメディア１１６から読み出し、読み出したクリップ位置情報を、インタフェース１２９−３およびバス１３０を介して、スタート位置検出部３７１に供給する。
【０２４７】
また、図２２および図２３のフローチャートは、上述した図１３および図１４のフローチャートと比較して、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を抽出する必要がないため、図１３のステップＳ１５５およびＳ１５９に相当する処理が削除される。従って、ピクチャ位置情報およびスライス位置情報の抽出に要する時間が短縮される。
【０２４８】
その他のステップの処理は、図１３および図１４を参照して上述した処理と同様であり、その説明は繰り返しになるので省略する。なお、ピクチャ層のデコードの開始位置、および、各デコーダ３６５のデコードの開始位置が、クリップ位置情報に基づいて検出される。
【０２４９】
なお、図３乃至図６を参照して上述した処理と、図７乃至図１５または図１６乃至図２１を参照して上述した処理とを組み合わせることにより、すなわち、映像ストリーム上で連続したスライスを含むように分割デコード領域を設定するとともに、ピクチャ位置情報およびスライス位置情報を記録するようにした場合、さらに映像ストリームのデコードを高速化することかできる。以下、図３乃至図６を参照して上述した処理と、図７乃至図１５を参照して上述した処理とを組み合わせた場合の実施の形態を説明する。なお、映像ストリームのエンコードについては、図７、図１１および図１２を参照して上述した処理と同様であり、その説明は繰り返しになるので省略する。
【０２５０】
図２４は、所定のプログラムを実行するCPU１２１により実現されるデコード部４５１の機能の構成の例を示す図である。デコード部４５１は、図８のデコード部２５１と比較して、デコード領域設定部４６３が設けられている点が異なる。なお、図中、図８と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０２５１】
デコード部４５１は、ストリーム読出し制御部４６１、ストリーム解析部４６２、デコード領域設定部４６３、デコード制御部４６４、デコーダ４６５−１乃至４６５−４、ベースバンド出力制御部４６６、および、スタート位置検出部４７１を含むように構成される。
【０２５２】
ストリーム解析部４６２は、映像ストリームのピクチャ層までの層をデコードし、デコードすることに得られた情報をデコード制御部４６４に供給する。また、ストリーム解析部４６２は、映像ストリームのシーケンス層をデコードすることにより得られた映像ストリームの画像サイズを示す情報をデコード領域設定部４６３に供給する。さらに、ストリーム解析部４６２は、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を抽出し、抽出したピクチャ位置情報およびスライス位置情報をスタート位置検出部４７１に供給する。
【０２５３】
デコード領域設定部４６３は、図３のデコード領域設定部１６３と同様に、分割デコード領域を設定する。デコード領域設定部１６３は、設定した分割デコード領域を示す情報を、デコード制御部４６４に供給する。
【０２５４】
デコード制御部４６４は、図８のデコード制御部２６４の処理に加えて、分割デコード領域に基づいて、デコーダ４６５−１乃至４６５−４がデコードするスライスを決定する。
【０２５５】
なお、以下、デコーダ４６５−１乃至４６５−４を個々に区別する必要がない場合、単にデコーダ４６５と称する。
【０２５６】
次に、図２５および図２６のフローチャートを参照して、デコード部４５１により実行されるデコード処理を説明する。
【０２５７】
ステップＳ３５１において、上述した図４のステップＳ１と同様の処理により、映像ストリームが全てデコードされたか否かが判定される。まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップＳ３５２に進む。
【０２５８】
ステップＳ３５２において、上述した図４のステップＳ２と同様の処理により、デコードする映像ストリームのシーケンス層がリムーバブルメディア１１６から読み出され、シーケンス層がデコードされる。
【０２５９】
ステップＳ３５３において、上述した図４のステップＳ３と同様の処理により、映像ストリームの画像サイズが検出される。
【０２６０】
ステップＳ３５４において、上述した図４のステップＳ４と同様の処理により、各デコーダ４６５がデコードする分割デコード領域が設定され、分割デコード領域を示す情報がデコード制御部４６４に供給される。
【０２６１】
ステップＳ３５５において、上述した図４のステップＳ５と同様の処理により、全てのGOPがデコードされたか否かが判定される。まだ全てのGOPがデコードされていないと判定された場合、処理はステップＳ３５６に進む
【０２６２】
ステップＳ３５６において、上述した図４のステップＳ６と同様の処理により、次にデコードするGOPがリムーバブルメディア１１６から読み出され、読み出されたGOPのGOP層がデコードされる。
【０２６３】
ステップＳ３５７において、上述した図１３のステップＳ１５５と同様の処理により、ピクチャ位置情報が抽出され、ピクチャ位置情報がスタート位置検出部４７１に供給される。
【０２６４】
ステップＳ３５８において、上述した図４のステップＳ７と同様の処理により、GOP内の全てのピクチャがデコードされたか否かが判定される。まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップＳ３５９に進む。
【０２６５】
ステップＳ３５９において、上述した図１３のステップＳ１５７と同様の処理により、次にデコードするピクチャのピクチャ層が読み出され、ピクチャ層がストリーム解析部４６２に供給される。
【０２６６】
ステップＳ３６０において、上述した図４のステップＳ９と同様の処理により、ピクチャ層がデコードされる。
【０２６７】
ステップＳ３６１において、上述した図１３のステップＳ１５９と同様の処理により、スライス位置情報が取得され、スライス位置情報がスタート位置検出部４７１に供給される。
【０２６８】
ステップＳ３６２において、スタート位置検出部４７１は、分割デコード領域の開始位置を検出する。具体的には、デコード制御部４６４は、次にデコードするピクチャにおいて、各デコーダ４６５がデコードする分割デコード領域の先頭のスライスのスライスNo.を指定することにより、各分割デコード領域の開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部４７１に供給する。スタート位置検出部４７１は、スライス位置情報に基づいて、指定されたスライスNo.のスライスの開始位置、すなわち、各分割デコード領域の開始位置を検出する。スタート位置検出部４７１は、検出した開始位置を示す情報をデコード制御部４６４に供給する。
【０２６９】
ステップＳ３６３において、デコード制御部４６４は、デコードの開始を指示する。具体的には、デコード制御部４６４は、ステップＳ３６２において検出された開始位置から始まる各分割デコード領域に含まれるスライスの各デコーダ４６５への供給を指示する情報をストリーム読出し制御部４６１に供給する。また、デコード制御部４６４は、次のピクチャのデコードの開始を指示する情報を各デコーダ４６５に供給する。
【０２７０】
ステップＳ３６４において、デコーダ４６５は、デコードを開始する。具体的には、ストリーム読出し制御部４６１は、デコード制御部４６４により指示された開始位置から始まる各分割デコード領域に含まれるスライスをストリーム用メモリ１５２から読出す。ストリーム読出し制御部４６１は、読み出したスライスを、分割デコード領域ごとに、その分割デコード領域のデコードが割り当てられたデコーダ４６５に供給する。デコーダ４６５は、分割デコード領域内の先頭のスライスからデコードを開始する。デコーダ４６５は、デコードしたデータを順次ベースバンド出力制御部４６６に供給する。ベースバンド出力制御部４６６は、取得したデータをベースバンド用メモリ１５３に記憶させる。
【０２７１】
ステップＳ３６５において、上述した図５のステップＳ１３と同様の処理により、エラーが発生したか否かが判定される。エラーが発生したと判定された場合、処理はステップＳ３６６に進む。
【０２７２】
ステップＳ３６６において、デコード制御部４６４は、デコードを再開する位置を決定する。デコード制御部４６４は、例えば、デコードを失敗したスライスの次のスライスをデコードを再開する位置に決定する。
【０２７３】
ステップＳ３６７において、デコーダ４６５は、デコードを再開する。具体的には、デコード制御部４６４は、エラーが発生したスライスの次のスライスからのデコードの再開を指示する情報を、エラーが発生したデコーダ４６５に供給する。デコーダ４６５は、指定されたスライスからデコードを再開する。
【０２７４】
ステップＳ３６５において、エラーが発生していないと判定された場合、ステップＳ３６６およびＳ３６７の処理はスキップされ、処理はステップＳ３６８に進む。
【０２７５】
ステップＳ３６８において、上述した図５のステップＳ１６と同様の処理により、全てのデコーダ４６５の処理が終了したか否かが判定される。まだ全てのデコーダ４６５の処理がまだ終了していないと判定された場合、処理はステップＳ３６５に戻り、ステップＳ３６８において、全てのデコーダ４６５の処理が終了したと判定されるまで、ステップＳ３６５乃至Ｓ３６８の処理が繰り返し実行される。
【０２７６】
ステップＳ３６８において、全てのデコーダ４６５の処理が終了したと判定された場合、処理はステップＳ３６９に進む。
【０２７７】
ステップＳ３６９において、上述した図５のステップＳ１７と同様の処理により、１フレーム分のデータが出力される。その後、処理はステップＳ３５８に戻る。
【０２７８】
ステップＳ３５８において、まだGOP内の全てのピクチャをデコードしてないと判定された場合、処理はステップＳ３５９に進み、上述したステップＳ３５９以降の処理が実行される。すなわち、次のピクチャがデコードされる。
【０２７９】
ステップＳ３５８において、GOP内の全てのピクチャがデコードされたと判定された場合、処理はステップＳ３５５に戻る。
【０２８０】
ステップＳ３５５において、まだ全てのGOPがデコードされていないと判定された場合、処理はステップＳ３５６に進み、上述したステップＳ３５６以降の処理が実行される。すなわち、次のGOPがデコードされる。
【０２８１】
ステップＳ３５５において、全てのGOPがデコードされたと判定された場合、処理はステップＳ３５１に戻る。
【０２８２】
ステップＳ３５１において、まだ映像ストリームを全てデコードしていないと判定された場合、処理はステップＳ３５２に進み、上述したステップＳ３５２以降の処理が実行される。すなわち、映像ストリームの次のシーケンス層がデコードされる。
【０２８３】
ステップＳ３５１において、映像ストリームを全てデコードしたと判定された場合、デコード処理は終了する。
【０２８４】
このように、ストリーム解析部４６２がピクチャ層をデコードする場合、映像ストリーム上のピクチャ層の開始位置（スタートコード）を検索することなく、ピクチャ位置情報に基づいて、迅速にデコードの開始位置が検出される。また、各デコーダ４６５がデコードする場合、各フレーム（ピクチャ）について、各デコーダ４６５がデコードを開始する位置として各分割デコード領域の開始位置を検出するだけでよく、かつ、映像ストリーム上のスライス層の開始位置（スタートコード）を検索することなく、スライス位置情報に基づいて、迅速に各分割デコード領域の開始位置が検出される。従って、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。なお、デコード処理を分割せずに１つのデコーダによりデコードする場合も同様に、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。
【０２８５】
なお、図３乃至図６を参照して上述した処理と、図１６乃至図２３を参照して上述した処理とを組み合わせた場合も、ピクチャ位置情報およびスライス位置情報がクリップ位置情報に記録されていることを除いて、図２４乃至図２６を参照して上述した処理とほぼ同様の処理となるため、その説明は省略する。
【０２８６】
また、映像ストリームのデコード処理をさらに複数の段階に分割し、分割した各段階のデコード処理を複数のハードウェアにより並行して行うことにより、さらにデコード処理を高速化することが可能である。図２７乃至図３７を参照して、デコード処理を複数の段階に分割し、分割した各段階のデコード処理を複数のハードウェアにより並行して行う場合の実施の形態を説明する。
【０２８７】
図２７は、デコード処理を複数の段階に分割し、分割した各段階のデコード処理を複数のハードウェアにより並行して行うAV処理システム５０１の一実施の形態を示す図である。なお、図中、図２と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０２８８】
AV処理システム５０１は、図２のAV処理システム１０１と比較して、ドライブ１１２、外部映像記録再生装置１１３−１乃至１１３−ｎ、マウス１１４、および、キーボード１１５を含む点が共通し、AV処理装置１１１の代わりにAV処理装置５１１が設けられている点が異なる。
【０２８９】
また、AV処理装置５１１は、図２のAV処理装置１１１と比較して、CPU１２１、ROM１２２、RAM１２３、ハードディスク１２４、信号処理部１２５、映像特殊効果音声ミキシング処理部１２６、ディスプレイ１２７、スピーカ１２８、および、インタフェース１２９−１乃至１２９−３を含む点が共通し、GPU（Graphics Processing Unit）５２１が設けられている点が異なる。なお、CPU１２１、ROM１２２、RAM１２３、HDD１２４、信号処理部１２５、映像特殊効果音声ミキシング処理部１２６、インタフェース１２９−１乃至１２９−３、および、GPU５２１は、バス１３０を介して相互に接続される。
【０２９０】
GPU５２１は、主にグラフィックス処理を行うプロセッサである。AV処理装置５１１においては、後述するように、CPU１２１およびGPU５２１の２つのハードウェア（プロセッサ）が、映像ストリームのデコード処理を２つの段階に分割し、分割した各段階のデコード処理を並行して実行する。
【０２９１】
図２８は、所定のプログラムを実行するCPU１２１により実現されるデコード部５５１の機能の構成の例を示す図である。なお、図中、図２４と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【０２９２】
デコード部５５１は、ストリーム読出し制御部５６１、ストリーム解析部５６２、デコード領域設定部５６３、デコード制御部５６４、デコーダ５６５−１乃至５６５−４、スタート位置検出部５７１、スライスデータ蓄積メモリ５７２、転送用メモリ５７３、および、メモリ転送制御部５７４を含むように構成される。
【０２９３】
ストリーム読出し制御部５６１は、ドライブ１１２を制御して、リムーバブルメディア１１６に記録されている映像ストリームを読み出させる。ストリーム読出し制御部５６１は、ドライブ１１２により読み出された映像ストリームを、インタフェース１２９−３およびバス１３０を介して取得する。また、ストリーム読出し制御部５６１は、バス１３０を介して、HDD１２４に記録されている映像ストリームを読み出す。ストリーム読出し制御部５６１は、必要に応じて、取得した映像ストリームを、CPU１２１内の図示せぬキャッシュメモリなどにより構成されるストリーム用メモリ１５２に一時的に記憶させる。また、ストリーム読出し制御部５６１は、必要に応じて、取得した映像ストリームを、ストリーム解析部５６２またはデコーダ５６５−１乃至５６５−４に供給する
【０２９４】
デコード制御部５６４は、図２４のデコード制御部４６４の処理に加えて、分割デコード領域内のスライスの所定の途中の段階までのデコード処理（図３２を参照して後述するデコード前半処理）を実行させるためのスレッドを生成し、各デコーダに割り当てた分割デコード領域に対する前半デコード処理を他のデコーダと並行して実行するようにデコーダ５６５−１乃至５６５−４を制御する。また、デコード制御部５６４は、デコーダ５６５−１乃至５６５−４により途中の段階までデコードされたスライスの残りの段階のデコード処理（図３３および図３４を参照して後述するデコード後半処理）を実行させるためのスレッドを生成し、デコーダ５６５−１乃至５６５−４によるデコード前半処理と並行してデコード後半処理を実行するようにメモリ転送制御部５７４およびGPU５２１を制御する。
【０２９５】
さらに、デコード制御部５６４は、GPU５２１の処理が終了したことを通知する情報を、バス１３０を介してGPU５２１から取得する。また、デコード制御部５６４は、GPU５２１が処理を実行中であるか否かを示す情報を、デコーダ５６５−１乃至５６５−４に供給する。さらに、デコード制御部５６４は、デコード前半処理の開始を指示する情報をデコーダ５６５−１乃至５６５−４に供給する（デコード前半処理を実行させるスレッドを呼び出し、呼び出したスレッドにデコード前半処理に必要な情報を与える）。
【０２９６】
また、デコード制御部５６４は、デコード後半処理の開始を指示する情報をメモリ転送制御部５７４およびGPU５２１に供給する（デコード後半処理を実行させるスレッドを呼び出し、呼び出したスレッドにデコード後半処理に必要な情報を与える）。このデコード後半処理の開始を指示する情報には、例えば、デコードする対象となるスライスがどの段階までデコードされているかを示す履歴情報が含まれる。
【０２９７】
デコーダ５６５−１乃至５６５−４は、各デコーダに割り当てられた映像ストリームの各フレーム内の分割デコード領域を並列してデコード（可変長復号および逆量子化）する。デコーダ５６５−１乃至５６５−４は、VLD（可変長復号）部５８１−１乃至５８１−４およびIQ（逆量子化）部５８２−１乃至５８２−４をそれぞれ１組ずつ含むように構成される。なお、以下、デコーダ５６５−１乃至５６５−４を個々に区別する必要がない場合、単にデコーダ５６５と称し、VLD部５８１−１乃至５８１−４を個々に区別する必要がない場合、単にVLD部５８１と称し、IQ部５８２−１乃至５８２−４を個々に区別する必要がない場合、単にIQ部５８２と称する。
【０２９８】
VLD部５８１は、ストリーム読出し制御部５６１から供給されたデータ（映像ストリーム）を可変長復号し、可変長復号したデータをIQ部５８２に供給する。また、VLD部５８１は、復号したデータに含まれる予測モード、動きベクトル、および、フレーム／フィールド予測フラグを示す情報を、バス１３０を介してGPU５２１に供給する。さらに、VLD部５８１は、復号したデータに含まれる量子化スケールを示す情報をIQ部５８２に供給する。
【０２９９】
IQ部５８２は、VLD部５８１より供給された量子化スケールに従って、VLD部５８１より供給されたデータを逆量子化し、逆量子化したデータをスライスデータ蓄積メモリ５７２に記憶させる。また、IQ部５８２は、自分が逆量子化したデータがスライスデータ蓄積メモリ５７２に１スライス分蓄積された場合、その１スライス分のデータをスライスデータ蓄積メモリ５７２から転送用メモリ５７３に転送する。
【０３００】
メモリ転送制御部５７４は、転送用メモリ５７３に記憶されているデータを、バス１３０を介してGPU５２１に転送する。
【０３０１】
図２９は、所定のプログラムを実行するGPU５２１により実現されるデコード部６０１の機能の構成の例を示す図である。デコード部６０１は、スライスデータメモリ６１１、IDCT（逆離散コサイン変換）部６１２、動き補償部６１３、フレームデータ生成部６１４、および、フレームメモリ６１５を含むように構成される。
【０３０２】
スライスデータメモリ６１１は、バス１３０を介して、メモリ転送制御部５７４から供給される１スライス分の逆量子化されたデータを記憶する。
【０３０３】
IDCT部６１２は、デコード制御部５６４の制御の基に、スライスデータメモリ６１１に記憶されているスライスに対して、図３４を参照して後述するIDCT処理を行う。IDCT部６１２は、IDCT処理を行うことにより得られた画像データをフレームデータ生成部６１４に供給する。なお、IDCT部６１２は、例えば、Fast IDCTのアルゴリズムに基づいて、映像ストリームのマクロブロックのIDCTを行う。Fast IDCTのアルゴリズムの詳細については、例えば、「Yukihiro Arai他２名、尿 Fast DCT-SQ Scheme for Images   THE TRANSACTIONS OF THE IEICE, VOL.E 71, NO.11 NOBEMBER 1988，pp.1095-1097」に、その詳細が開示されている。
【０３０４】
動き補償部６１３は、バス１３０を介して、VLD部５８１から供給される予測モード、動きベクトル、および、フレーム／フィールド予測フラグを示す情報を取得する。動き補償部６１３は、次にフレームデータ生成部６１４が生成する画像データが順方向予測モードのPピクチャである場合、フレームメモリ６１５の過去参照画像部６１５ａに記憶されている１フレーム前の画像データに、VLD部５８１より供給された動きベクトルに対応する動き補償を施して、予測画像データを生成する。動き補償部６１３は、生成した予測画像データをフレームデータ生成部６１４に供給する。
【０３０５】
また、動き補償部６１３は、次にフレームデータ生成部６１４が生成する画像データがBピクチャである場合、VLD部５８１より供給された予測モードに対応して、フレームメモリ６１５の過去参照画像部６１５ａに記憶されている画像データ（順方向予測モードの場合）、未来参照画像部６１５ｂに記憶されている画像データ（逆方向予測モードの場合）、または、その両方の画像データ（双方向予測モードの場合）に、VLD部５８１より供給された動きベクトルに対応する動き補償を施して、予測画像データを生成する。動き補償部６１３は、生成した予測画像データをフレームデータ生成部６１４に供給する。
【０３０６】
さらに、動き補償部６１３は、未来画像参照部６１５ｂに記憶されている画像データがPピクチャである場合、そのPピクチャより時系列で前に位置するBピクチャのデコードが全て終了したとき、未来画像参照部６１５ｂに記憶されているPピクチャを読出し、動き補償を施さずに、フレームデータ生成部６１４に供給する。
【０３０７】
フレームデータ生成部６１４は、デコード制御部５６４の制御の基に、IDCT部６１２から供給された画像データを蓄積するとともに、１フレーム分の画像データを生成し、生成した画像データを出力する。具体的には、IDCT部６１２から供給された画像データがIピクチャ、または、フレーム内予測モードのPピクチャもしくはBピクチャである場合、フレームデータ生成部６１４は、IDCT部６１２から供給された画像データに基づいて生成した１フレーム分の画像データを生成する。また、IDCT部６１２から供給された画像データがフレーム内予測モードでないPピクチャまたはBピクチャである場合、フレームデータ生成部６１４は、IDCT部６１２から供給された画像データに基づいて生成した画像データに、動き補償部６１３から供給される予測画像データを加算して、１フレーム分の画像データを生成する。
【０３０８】
フレームデータ生成部６１４は、生成した画像データがIピクチャである場合、生成した画像データを、デコード部６０１の外部（例えば、バス１３０を介して信号処理部１２５）に出力するとともに、フレームメモリ６１５の過去参照画像部６１５ａまたは未来参照画像部６１５ｂに記憶させる。また、フレームデータ生成部６１４は、生成した画像データがPピクチャである場合、生成した画像データを、デコード部６０１の外部に出力せずに、フレームメモリ６１５の未来参照画像部６１５ｂに記憶させる。さらに、フレームデータ生成部６１４は、生成した画像データがBピクチャである場合、生成した画像データを、デコード部６０１の外部に出力する。
【０３０９】
また、フレームデータ生成部６１４は、未来画像参照部６１５ｂに記憶されている画像データ（Pピクチャ）が動き補償部６１３から供給された場合、供給された画像データをデコード部６０１の外部に出力する。
【０３１０】
さらに、フレームデータ生成部６１４は、デコード後半処理が終了したことを通知する情報を、バス１３０を介してデコード制御部５６４に供給する。
【０３１１】
フレームメモリ６１５は、上述したように、予測画像データを生成するために用いる画像データ（IピクチャまたはPピクチャ）を過去参照画像部６１５ａまたは未来参照画像部６１５ｂに記憶させる。また、必要に応じて、過去参照画像部６１５ａおよび未来参照画像部６１５ｂの間で、画像データの転送を行う（バンク切替えを行う）。
【０３１２】
次に、図３０および図３１のフローチャートを参照して、デコード部５５１により実行されるデコード処理を説明する。なお、以下、説明を簡単にするために、各マクロブロックのブロックタイプはイントラ（フレーム内符号化）タイプであるものとする。また、説明を簡単にするために、上述したエラー発生時の対応処理（例えば、図２６のステップＳ３６５乃至Ｓ３６７）に関するステップは、図３０および図３１のフローチャートにおいて省略されている。
【０３１３】
ステップＳ４５１およびステップＳ４６２の処理は、上述した図２５および図２６のステップＳ３５１乃至Ｓ３６２の処理と同様であり、その説明は繰り返しになるので省略する。
【０３１４】
ステップＳ４６３において、デコード制御部５６４は、デコード前半処理の開始を指示する。具体的には、デコード制御部５６４は、ステップＳ４６２において検出された開始位置から始まる各分割デコード領域に含まれるスライスの各デコーダ４６５への供給を指示する情報をストリーム読出し制御部４６１に供給する。また、デコード制御部４６４は、次のピクチャのデコード前半処理の開始を指示する情報を各デコーダ５６５に供給する。
【０３１５】
ステップＳ４６４において、各デコーダ５６５は、デコード前半処理を行う。デコード前半処理の詳細は、図３２を参照して後述する。
【０３１６】
ステップＳ４６５において、デコード制御部５６４は、全てのデコーダ５６５の処理が終了したか否かを判定する。具体的には、デコード制御部５６４は、各デコーダ５６５に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、全てのデコーダ５６５から供給されているか否かを検出する。デコード制御部５６４は、デコードの終了を通知する情報が全てのデコーダから供給されるまで、ステップＳ４６５の判定処理を繰返し行い、デコードの終了を通知する情報が全てのデコーダから供給された場合、全てのデコーダ５６５の処理が終了したと判定され、処理はステップＳ４５８に戻る。その後、ステップＳ４５８以降の処理が実行される。
【０３１７】
次に、図３２のフローチャートを参照して、図３１のステップＳ４６４のデコード前半処理の詳細を説明する。
【０３１８】
ステップＳ５０１において、VLD部５８１は、可変長復号する。具体的には、VLD部５８１は、ストリーム読出し制御部５６１から供給されたスライスの先頭のマクロブロックを可変長復号する。VLD部５８１は、可変長復号したマクロブロックをIQ部５８２に供給する。また、VLD部５８１は、マクロブロックの逆量子化に用いる量子化スケールを示す情報をIQ部５８２に供給する。
【０３１９】
ステップＳ５０２において、IQ部５８２は、逆量子化する。具体的には、IQ部５８２は、VLD部５８１から供給された量子化スケールに従って、VLD部５８１から供給されたマクロブロックを逆量子化する。
【０３２０】
ステップＳ５０３において、IQ部５８２は、ステップＳ５０２において逆量子化したデータをスライスデータ蓄積メモリ５７２に記憶させる。
【０３２１】
ステップＳ５０４において、IQ部５８２は、１スライス分のデータが蓄積されたか否かを判定する。具体的には、IQ部５８２は、スライスデータ蓄積メモリ５７２に蓄積されている、自分が逆量子化したデータが１スライス分に達していない場合、１スライス分のデータが蓄積されていないと判定し、処理はステップＳ５０１に戻り、ステップＳ５０４において、１スライス分のデータが蓄積されたと判定されるまで、ステップＳ５０１乃至Ｓ５０４の処理が繰り返し実行される。すなわち、スライスの先頭から２番目以降のマクロブロックが順に可変長復号および逆量子化される。
【０３２２】
ステップＳ５０４において、IQ部５８２は、スライスデータ蓄積メモリ５７２に蓄積されている、自分が逆量子化したデータが１スライス分に達している場合、１スライス分のデータが蓄積されていると判定し、処理はステップＳ５０５に進む。
【０３２３】
ステップＳ５０５において、IQ部５８２は、GPU５２１の処理が終了しているか否かを判定する。具体的には、IQ部５８２は、GPU５２１が処理を実行中であるか否かを示す情報をデコード制御部５６４から取得する。GPU５２１がIDCT処理を実行中である場合、IQ部５８２は、GPU５２１の処理が終了していないと判定し、処理はステップＳ５０６に進む。
【０３２４】
ステップＳ５０６において、IQ部５８２は、分割デコード領域内の全てのマクロブロックを処理したか否かを判定する。IQ部５８２は、分割デコード領域内のマクロブロックをまだ全て処理していない、すなわち、まだ可変長復号および逆量子化されていないマクロブロックが自分に割り当てられた分割デコード領域内にある場合、処理はステップＳ５０１に戻り、分割デコード領域内のマクロブロックの可変長復号および逆量子化が継続して行われる。
【０３２５】
ステップＳ５０６において、分割デコード領域内のマクロブロックを全て処理していると判定された場合、すなわち、自分に割り当てられた分割デコード領域内の全てのマクロブロックを可変長復号および逆量子化している場合、処理はステップＳ５０７に進む。
【０３２６】
ステップＳ５０７において、ステップＳ５０５の処理と同様に、GPU５２１の処理が終了しているか否かが判定される。GPU５２１の処理が終了していると判定されるまで、ステップＳ５０７の処理は繰り返し実行され、GPU５２１の処理が終了していると判定された場合、すなわち、GPU５２１がアイドル状態である場合、処理はステップＳ５０８に進む。
【０３２７】
ステップＳ５０８において、IQ部５８２は、逆量子化したデータを転送する。具体的には、IQ部５８２は、スライスデータ蓄積メモリ５７２に蓄積されている自分が逆量子化したデータのうち、先頭の１スライス分のデータを転送用メモリ５７３に転送する。
【０３２８】
ステップＳ５０９において、デコード制御部５６４は、後半デコード処理の開始を指示する。デコード制御部５６４は、転送用メモリ５７３に蓄積されたスライスに対するデコード後半処理の開始を指示する情報を、メモリ転送制御部５７４およびデコード部６０１に供給する。これにより、図３３を参照して後述するデコード後半処理が開始される。その後、処理はステップＳ５１３に進む。
【０３２９】
ステップＳ５０５において、GPU５２１の処理が終了していると判定された場合、処理はステップＳ５１０に進む。
【０３３０】
ステップＳ５１０において、ステップＳ５０７の処理と同様に、１スライス分の逆量子化したデータが転送用メモリ５７３に転送される。
【０３３１】
ステップＳ５１１において、上述したステップＳ５０９の処理と同様に、デコード後半処理の開始が指示される。
【０３３２】
ステップＳ５１２において、ステップＳ５０６の処理と同様に、分割デコード領域内の全てのマクロブロックを処理したか否かが判定される。分割デコード領域内のマクロブロックをまだ全て処理していないと判定された場合、処理はステップＳ５０１に戻り、分割デコード領域内のマクロブロックの可変長復号および逆量子化が継続して行われる。
【０３３３】
ステップＳ５１２において、分割デコード領域内の全てのマクロブロックを処理したと判定された場合、処理はステップＳ５１３に進む。
【０３３４】
ステップＳ５１３において、IQ部５８２は、逆量子化したデータを全て転送したか否かを判定する。IQ部５８２は、自分が逆量子化したデータのうちまだ転送用メモリ５７３に転送していないデータがスライスデータ蓄積メモリ５７２に残っている場合、逆量子化したデータをまだ全て転送していないと判定し、処理はステップＳ５０７に戻る。その後、ステップＳ５１３において、逆量子化したデータを全て転送したと判定されるまで、ステップＳ５０７、Ｓ５０８およびＳ５１３の処理が繰り返し実行される。
【０３３５】
ステップＳ５１３において、逆量子化したデータを全て転送したと判定された場合、処理はステップＳ５１４に進む。
【０３３６】
ステップＳ５１４において、デコーダ５６５は、デコード前半処理の終了を通知し、デコード前半処理は終了する。具体的には、デコーダ５６５は、デコード前半処理の終了を通知する情報をデコード制御部５６４に供給する。
【０３３７】
なお、以上では、１つのデコーダに注目してデコード前半処理を説明したが、実際には、このデコード前半処理はデコーダ５６５−１乃至５６５−４により並行して実行される。
【０３３８】
次に、図３３のフローチャートを参照して、図３２のデコード前半処理に対応して、デコード部５５１およびデコード部６０１により実行されるデコード後半処理を説明する。なお、この処理は、図３２を参照して上述した各デコーダ５６５により実行されるデコード前半処理と並行して実行される。
【０３３９】
ステップＳ５２１において、メモリ転送制御部５７４は、デコード後半処理の開始が指示されたか否かを判定する。デコード後半処理の開始が指示されたと判定されるまで、ステップＳ５２１の判定処理は繰り返し実行され、上述した図３２のステップＳ５０９またはＳ５１１において、デコード後半処理の開始を指示する情報がデコード制御部５６４からメモリ転送制御部５７４に供給された場合、デコード後半処理の開始が指示されたと判定され、処理はステップＳ５２２に進む。
【０３４０】
ステップＳ５２２において、メモリ転送制御部５７４は、データを転送する。具体的には、メモリ転送制御部５７４は、転送用メモリ５７３に蓄積されている１スライス分の逆量子化されたデータを、バス１３０を介して、デコード部６０１のスライスデータメモリ６１１に転送し、記憶させる。
【０３４１】
ステップＳ５２３において、IDCT部６１２は、IDCT（逆離散コサイン変換）処理を行う。なお、IDCT処理の詳細は、図３４を参照して後述する。
【０３４２】
ステップＳ５２４において、フレームデータ生成部６１４は、１フレーム分の画像データがデコードされたか否かを判定する。１フレーム分の画像データがデコードされていないと判定された場合、処理はステップＳ５２５に進む。
【０３４３】
ステップＳ５２５において、フレームデータ生成部６１４は、１フレーム分の画像データを出力する。具体的には、フレームデータ生成部６１４は、デコードが完了した１フレーム分の画像データを外部（例えば、バス１３０を介して信号処理部１２５）に出力する。
【０３４４】
ステップＳ５２４において、１フレーム分の画像データがデコードされていないと判定された場合、ステップＳ５２５の処理はスキップされ、処理はステップＳ５２６に進む。
【０３４５】
ステップＳ５２６において、フレームデータ生成部６１４は、デコード後半処理の終了を通知する。具体的には、フレームデータ生成部６１４は、デコード後半処理が終了したことを通知する情報を、バス１３０を介してデコード制御部５６４に供給する。その後、処理はステップＳ５２１に戻り、上述したステップＳ５２１以降の処理が実行される。
【０３４６】
次に、図３４のフローチャートを参照して、図３３のステップＳ５２３のIDCT処理の詳細を説明する。
【０３４７】
ステップＳ５４１において、IDCT部６１２は、テクスチャを生成する。具体的には、IDCT部６１２は、スライスデータメモリ６１１に蓄積されている１スライス分のデータを読出す。
【０３４８】
なお、以下、１スライス分のデータが、図３５のスライス６５１に示されるフォーマットにより構成されるものとして説明する。スライス６５１は、ｎ個のマクロブロック（MB）により構成される。１つのマクロブロックは、１６×１６個の輝度情報Ｙ、それぞれ１６×８個の色差情報Ｃｂ，Ｃｒにより構成される。すなわち、輝度情報Ｙと色差情報Ｃｂ，Ｃｒの３つの成分の比率は４：２：２である。また、縦１６×横１６個の輝度情報Ｙ、縦１６×横８個の色差情報Ｃｂ、縦１６×横８個の色差情報Ｃｒ、縦１６×横８個の色差情報Ｃｂ、縦１６×横８個の色差情報Ｃｒという順にマクロブロックの先頭から各情報が配置される。
【０３４９】
IDCT部６１２は、スライス６５１に含まれる各マクロブロックについて、１マクロブロックあたり、輝度情報Ｙ×６４個、色差情報Ｃｂ×１６個、色差情報Ｃｒ×１６個、色差情報Ｃｂ×１６個、色差情報Ｃｒ×１６個の順に配列した４つの情報の列を生成する。IDCT部６１２は、各マクロブロックから生成した４つの情報の列を、各列ごとに順に整列した４つのテクスチャ６６１乃至６６４を生成する。従って、１つのテクスチャは、縦ｎ×横１２８個の情報により構成される。
【０３５０】
ステップＳ５４２において、IDCT部６１２は、行変換を行う。具体的には、IDCT部６１２は、テクスチャ６６１乃至６６４の先頭の行（横方向の列）に配列されている情報、すなわち、スライス６５１の先頭のマクロブロックに含まれる情報から、縦８個×横８個×奥行き８個の情報により構成される３次元のブロック６７１−１を生成する。
【０３５１】
なお、３次元ブロック６７１−１を構成する各情報は、所定の規則に従って、テクスチャ６６１乃至６６４の先頭の行（横方向の列）の各情報に所定の係数を乗じ、係数を乗じた情報を足し合わせることにより生成される。また、ブロック６７１−１の上から１行目乃至４行目に、輝度情報Ｙが配置され、上から５行目および６行目に色差情報Ｃｂが配置され、上から７行目および８行目に色差情報Ｃｒが配置される。
【０３５２】
ステップＳ５４３において、IDCT部６１２は、行変換が全て終了したか否かを判定する。行変換がまだ全て終了していないと判定された場合、処理はステップＳ５４２に戻り、ステップＳ５４３において、行変換が全て終了したと判定されるまで、ステップＳ５４２およびＳ５４３の処理が繰り返し実行される。すなわち、テクスチャ６６１乃至６６４の各行に対して、上述した行変換が順次行われ、その結果、３次元ブロック６７１−１乃至６７１−ｎが生成される。
【０３５３】
なお、以下、３次元ブロック６７１−ｍ（ｍ＝1，２，３，…ｎ）を構成する縦８個×横８個の情報からなる８個の２次元のブロックを２次元ブロック６７１−ｍ1乃至６７１−ｍ8（ｍ＝1，２，３，…ｎ）と称する。
【０３５４】
ステップＳ５４３において、行変換が全て終了した判定された場合、処理はステップＳ５４４に進む。
【０３５５】
ステップＳ５４４において、IDCT部６１２は、列変換を行う。具体的には、IDCT部６１２は、所定の規則に従って、スライス６５１の先頭のマクロブロックから生成された３次元ブロック６７１−１から、縦８個×横８個×奥行き８個の情報からなる３次元ブロック６８１−１を生成する。
【０３５６】
なお、３次元ブロック６８１−１の奥行き方向の各列の情報は、所定の規則により各列に対応づけられている３次元ブロック６７１−１の横方向の行の情報に所定の係数を乗じたり、係数を乗じた情報を足し合わせることにより生成される。例えば、３次元ブロック６８１−１のいちばん上の面の図内左端の奥行き方向の列の情報は、その列に対応する３次元ブロック６７１−１を構成する２次元ブロック６７１−１1の図内横方向の１行目の情報に所定の係数を乗じたり、係数を乗じた情報を足し合わせることにより生成される。また、ブロック６８１−１の上から１行目乃至４行目に、輝度情報Ｙが配置され、上から５行目および６行目に色差情報Ｃｂが配置され、上から７行目および８行目に色差情報Ｃｒが配置される。
【０３５７】
ステップＳ５４５において、IDCT部６１２は、列変換が全て終了したか否かを判定する。列変換がまだ全て終わっていないと判定された場合、処理はステップＳ５４４に戻り、ステップＳ５４５において、列変換が全て終了したと判定されるまで、ステップＳ５４４およびＳ５４５の処理が繰り返し実行される。すなわち、３次元ブロック６７１−１乃至６７１−ｎに対して、上述した列変換が順次行われ、その結果、３次元ブロック６８１−１乃至６８１−ｎが生成される。
【０３５８】
なお、以下、３次元ブロック６８１−ｍ（ｍ＝1，２，３，…ｎ）を構成する縦８個×横８個の情報からなる８個の２次元のブロックを２次元ブロック６８１−ｍ1乃至６８１−ｍ8（ｍ＝1，２，３，…ｎ）と称する。
【０３５９】
ステップＳ５４５において、列変換が全て終了したと判定された場合、処理はステップＳ５４６に進む。
【０３６０】
ステップＳ５４６において、IDCT部６１２は、情報を並び替える。具体的には、IDCT部６１２は、図３６に示すように、３次元ブロック６８１−１のいちばん上の面（２次元ブロック６８１−１1乃至６８１−１8のいちばん上の行）に含まれる輝度情報Ｙから８×８のマクロブロック７１１−１を生成する。同様に、IDCT部６１２は、ブロック６８１−１の上から２番目の面に含まれる輝度情報Ｙからマクロブロック７１１−２を生成し、上から３番目の面に含まれる輝度情報Ｙからマクロブロック７１１−３を生成し、上から４番目の面に含まれる輝度情報Ｙからマクロブロック７１１−４を生成する。
【０３６１】
さらに、デコード中のスライスを含むピクチャがフィールド構造である場合、IDCT部６１２は、マクロブロック７１１−１および７１１−３の各行を交互に配列したマクロブロック７１２−１および７１２−２を生成し、マクロブロック７１１−２および７１１−４の各行を交互に配列したマクロブロック７１２−３および７１２−４を生成する。IDCT部６１２は、図中、マクロブロック７１２−１を左上、マクロブロック７１２−２を左下、マクロブロック７１２−３を右上、マクロブロック７１２−４を右下に配列した１６×１６のマクロブロック７１３を生成する。
【０３６２】
また、デコード中のスライスを含むピクチャがフレーム構造である場合、IDCT部６１２は、図中、マクロブロック７１１−１を左上、マクロブロック７１１−２を右上、マクロブロック７１１−３を左下、マクロブロック７１１−４を右下に配列した１６×１６のマクロブロック７１４を生成する。
【０３６３】
IDCT部６１２は、３次元ブロック６８１−２乃至６８１−ｎに含まれる輝度情報Ｙについても同様の並び替えを行う。また、３次元ブロック６８１−１乃至６８１−ｎに含まれる色差情報Ｃｒ，Ｃｂについても同様の並び替えを行う。また、IDCT部６１２は、情報を並び替えたマクロブロックを先頭から順に配列したスライス６９１を生成する。例えば、デコード中のスライスを含むピクチャがフィールド構造である場合、図３７に示されるように、３次元ブロック６８１−１から生成されたマクロブロック７１２−１乃至７１２−４がスライス６９１の先頭（図内、左端）に配置され、以降、同様に、３次元ブロック６８１−２乃至６８８−ｎから生成されたマクロブロックが順番に配列される。
【０３６４】
ステップＳ５４７において、IDCT部６１２は、RGB変換を行い、IDCT処理は終了する。具体的には、スライス６９１を構成する輝度情報Ｙ、色差情報Ｃｂ，Ｃｒを、RGB方式のR信号、G信号、B信号に変換することにより画像データ７０１を生成する。IDCT部６１２は、生成した画像データ７０１をフレーム生成部６１４に供給する。また、IDCT部６１２は、IDCT処理が終了したことを通知する情報を、バス１３０を介してデコード制御部５６４に供給する。
【０３６５】
このように、スライス層以下のデコード処理をCPU１２１とGPU５２１により分割かつ並行して実行することにより、デコード処理に要する時間を短縮することができるとともに、CPU１２１の負荷を軽減することができる。また、CPUなどの高性能なプロセッサと比較して安価なGPU５２１を用いることにより、コストを削減することができる。
【０３６６】
以上のように、映像ストリームのフレームの位置を示す情報であるフレーム位置情報の記録を制御し、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報の記録を制御し、映像ストリームのフレームの位置を示すフレーム位置情報、および、映像ストリームを復号する場合の処理単位である単位領域の位置を示す単位領域位置情報に基づいて、映像ストリームの復号を開始する復号開始位置を検出し、復号開始位置から復号を開始するように映像ストリームの復号を制御する場合には、映像ストリームの復号の開始位置の検出に要する時間を短縮することができ、より高速に映像ストリームを復号することができる。
【０３６７】
なお、以上の説明では、CPUにより実現されるデコーダの数を４つとする例を示したが、４以外の数とするようにしてもよい。
【０３６８】
また、以上の説明では、GPUにより実現されるデコーダの数を１つとする例を説明したが、１つのGPUにより複数のデコーダを実現するようにしたり、複数のデコーダを設けるようにしたりして、デコード後半処理を複数のデコーダにより並行して実行するようにしてもよい。
【０３６９】
さらに、以上の説明では、CPU１２１をマルチコアプロセッサにより構成するようにしたが、CPU等のプロセッサを複数設けて、CPU１２１により実現される各デコーダの処理を複数のプロセッサにより並列して行うようにしてもよい。
【０３７０】
また、以上の説明では、MPEG2方式により映像ストリームをエンコードまたはデコードする場合の例を示したが、本発明は、例えば、映像ストリームのフレームの位置（例えば、映像ストリームの先頭からの相対位置、記録媒体に記録する位置など）、または、映像ストリームをデコードする場合の処理単位の位置（例えば、映像ストリームの先頭からの相対位置、記録媒体に記録する位置など）を示す情報を記録しない方式により映像ストリームをエンコードまたはデコードする場合に適用することができる。また、本発明は、例えば、映像ストリームの１フレームの画像に対応する映像ストリーム上の領域に処理単位が複数含まれる方式でエンコードされた映像ストリームを、複数のデコーダにより並列してデコードする場合に適用することができる。
【０３７１】
さらに、図３０のステップＳ５０９またはＳ５１１において、デコード制御部５６４が、転送用メモリ５７３に記憶されているスライスがどの段階までデコードされているかを示す履歴情報を、スライスと関連づけて転送用メモリ５７３に記憶させるようにしてもよい。これにより、各デコーダが転送用メモリ５７３に記憶されているスライスがどの段階までデコードされているかが明確になるので、例えば、デコード処理を３段階以上に分けてデコードする場合、転送用メモリ５７３に記憶されているスライスを次にどのデコーダがデコードするかを決定するための情報として用いることができる。
【０３７２】
上述した一連の処理は、ハードウェア（例えば、図２または図２７の信号処理部１２５）により実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、例えばAV処理装置１１１などに、ネットワークや記録媒体からインストールされる。
【０３７３】
この記録媒体は、図２または図２７に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア１１７により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM１２２、または、HDD１２４などで構成される。
【０３７４】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３７５】
また、本明細書において、システムの用語は、複数の装置、手段などにより構成される全体的な装置を意味するものである。
【図面の簡単な説明】
【０３７６】
【図１】従来、複数のプロセッサにより並列して映像ストリームをデコードする場合の処理の分割の例を説明する図である。
【図２】本発明を適用したAV処理システムの一実施の形態を示すブロック図である。
【図３】図２のCPUにより実現されるデコード部の機能の構成の例を示すブロック図である。
【図４】図３のデコード部により実行されるデコード処理を説明するフローチャートである。
【図５】図３のデコード部により実行されるデコード処理を説明するフローチャートである。
【図６】図３のデコード部により並列して映像ストリームをデコードする場合の処理の分割の例を説明する図である。
【図７】図２のCPUにより実現されるエンコード部の機能の構成の例を示すブロック図である。
【図８】図２のCPUにより実現されるデコード部の機能の構成の他の例を示すブロック図である。
【図９】ピクチャ位置情報のデータの構成の例を示す図である。
【図１０】スライス位置情報のデータの構成の例を示す図である。
【図１１】図７のエンコード部により実行されるエンコード処理を説明するフローチャートである。
【図１２】図１１のステップＳ１０５のピクチャ層以下エンコード処理の詳細を説明するフローチャートである。
【図１３】図８のデコード部により実行されるデコード処理を説明するフローチャートである。
【図１４】図８のデコード部により実行されるデコード処理を説明するフローチャートである。
【図１５】図８のデコード部により実行されるデコード開始位置検出処理を説明するフローチャートである。
【図１６】図２のCPUにより実現されるエンコード部の機能の構成の他の例を示すブロック図である。
【図１７】図２のCPUにより実現されるデコード部の機能の構成のさらに他の例を示すブロック図である。
【図１８】クリップ位置情報のデータの構成の例を示す図である。
【図１９】図１８のクリップ位置情報に含まれるピクチャ位置情報のデータの構成の例を示す図である。
【図２０】図１８のクリップ位置情報に含まれるスライス位置情報のデータの構成の例を示す図である。
【図２１】図１６のエンコード部により実行されるエンコード処理を説明するフローチャートである。
【図２２】図１７のデコード部により実行されるデコード処理を説明するフローチャートである。
【図２３】図１７のデコード部により実行されるデコード処理を説明するフローチャートである。
【図２４】図２のCPUにより実現されるデコード部の機能の構成のさらに他の例を示すブロック図である。
【図２５】図２４のデコード部により実行されるデコード処理を説明するフローチャートである。
【図２６】図２４のデコード部により実行されるデコード処理を説明するフローチャートである。
【図２７】本発明を適用したAV処理システムの他の実施の形態を示すブロック図である。
【図２８】図２７のCPUにより実現されるデコード部の機能の構成の例を示すブロック図である。
【図２９】図２７のGPUにより実現されるデコード部の機能の構成の例を示すブロック図である。
【図３０】図２８のデコード部により実行されるデコード処理を説明するフローチャートである。
【図３１】図２８のデコード部により実行されるデコード処理を説明するフローチャートである。
【図３２】図３１のステップＳ４６４のデコード前半処理の詳細を説明するフローチャートである。
【図３３】図２８のデコード部および図２９のデコード部により実行されるデコード後半処理を説明するフローチャートである。
【図３４】図３３のステップＳ４２３のIDCT処理の詳細を説明するフローチャートである。
【図３５】IDCT処理により生成されるデータの遷移を説明する図である。
【図３６】マクロブロックを構成する情報の並び替えを説明する図である。
【図３７】スライス内の情報の配列を説明するための図である。
【符号の説明】
【０３７７】
１０１  AV処理システム，  １１１  AV処理装置，  １１２  ドライブ，  １１６，１１７  リムーバブルメディア，  １２１  CPU，  １２２  ROM，  １２４  HDD，  １２５  信号処理部，  １５１  デコード部，  １６１  ストリーム読出し制御部，  １６２  ストリーム解析部，  １６３  デコード領域設定部，  １６４  デコード制御部，  １６５  デコーダ，  １６６  ベースバンド出力制御部，  ２０１  エンコード部，  ２１１  エンコーダ，  ２１２  ピクチャカウント部，  ２１３  スライスカウント部，  ２１４  スタート位置メモリ，  ２１５  スタート位置記録制御部，  ２１６  ストリーム出力制御部，  ２５１  デコード部，  ２６１  ストリーム読出し制御部，  ２６２  ストリーム解析部，  ２６４  デコード制御部，  ２６５  デコーダ，  ２６６  ベースバンド出力制御部，  ２７１  スタート位置検出部，  ３０１  エンコード部，  ３１１  エンコーダ，  ３１２  ピクチャカウント部，  ３１３  スライスカウント部，  ３１４  スタート位置メモリ，  ３１５  スタート位置記録制御部，  ３１６  ストリーム出力制御部，  ３２１  GOPカウンタ，  ３５１  デコード部，  ３６１  ストリーム読出し制御部，  ３６２  ストリーム解析部，  ３６４  デコード制御部，  ３６５  デコーダ，  ３６６  ベースバンド出力制御部，  ３７１  スタート位置検出部，  ４５１  デコード部，  ４６１  ストリーム読出し制御部，  ４６２  ストリーム解析部，  ４６３  デコード領域設定部，  ４６４  デコード制御部，  ４６５  デコーダ，  ４６６  ベースバンド出力制御部，  ４７１  スタート位置検出部，  ５０１  AV処理システム，  ５１１  AV処理装置，  ５２１  GPU，  ５５１  デコード部，  ５６１  ストリーム読出し制御部，  ５６２  ストリーム解析部，  ５６３  デコード領域設定部，  ５６４  デコード制御部，  ５６５  デコーダ,   ５７１  スタート位置検出部，  ５７２  スライスデータ蓄積メモリ，  ５７４  メモリ転送制御部，  ６０１  デコード部，  ６１２  IDCT部，  ６１３  動き補償部，  ６１４  フレームデータ生成部，  ６５１  スライス，  ６７１  ３次元ブロック，  ６８１  ３次元ブロック，  ６９１  スライス，  ７０１  画像データ
【図１】
2006319943.tif 000003
【図２】
2006319943.tif 000004
【図３】
2006319943.tif 000005
【図４】
2006319943.tif 000006
【図５】
2006319943.tif 000007
【図６】
2006319943.tif 000008
【図７】
2006319943.tif 000009
【図８】
2006319943.tif 000010
【図９】
2006319943.tif 000011
【図１０】
2006319943.tif 000012
【図１１】
2006319943.tif 000013
【図１２】
2006319943.tif 000014
【図１３】
2006319943.tif 000015
【図１４】
2006319943.tif 000016
【図１５】
2006319943.tif 000017
【図１６】
2006319943.tif 000018
【図１７】
2006319943.tif 000019
【図１８】
2006319943.tif 000020
【図１９】
2006319943.tif 000021
【図２０】
2006319943.tif 000022
【図２１】
2006319943.tif 000023
【図２２】
2006319943.tif 000024
【図２３】
2006319943.tif 000025
【図２４】
2006319943.tif 000026
【図２５】
2006319943.tif 000027
【図２６】
2006319943.tif 000028
【図２７】
2006319943.tif 000029
【図２８】
2006319943.tif 000030
【図２９】
2006319943.tif 000031
【図３０】
2006319943.tif 000032
【図３１】
2006319943.tif 000033
【図３２】
2006319943.tif 000034
【図３３】
2006319943.tif 000035
【図３４】
2006319943.tif 000036
【図３５】
2006319943.tif 000037
【図３６】
2006319943.tif 000038
【図３７】
2006319943.tif 000039