(57)【要約】【課題】削除可能な保有アンカーフレームを検出する。【解決手段】１０フレーム分の保有アンカーバンクが設けられ、バンク１乃至バンク９にGOP(N-1)、GOP(N)、GOP(N＋1)にそれぞれ対応する保有アンカーフレームのベースバンド画像データが格納されている状態で、GOP(N−3)が供給された場合、I2ピクチャのデコード時に、空きバンクであるバンク１０が確保され、対応するベースバンド画像データが格納される。このとき、GOP(N＋1)のP5ピクチャおよびB10ピクチャが表示指令待ちであり、GOP(N-1)のP8ピクチャが既にデコードスケジュールに含まれているので、GOP(N＋1)およびGOP(N-1)の保有アンカーフレームに対応するベースバンド画像データは削除されず、GOP(N)の保有アンカーフレームに対応するベースバンド画像データが削除される。本発明は、再生装置に適用できる。【選択図】図８５
2007336069.tif 000002
【特許請求の範囲】
【請求項１】
符号化ストリームをデコードする情報処理装置において、
デコードされて生成されたデータを複数フレーム分保持する保持手段を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段と、
前記デコード手段へ前記符号化ストリームを供給する供給手段と、
前記供給手段および前記デコード手段が実行する処理を制御する制御手段と
を備え、
前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームを前記デコード手段へ供給し、
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たなデータの記憶領域がなく、前記保持手段により保持されている前記参照フレームに対応するデータに、デコード手段によりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコード手段によりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除する
情報処理装置。
【請求項２】
前記符号化ストリームはＧＯＰ構造を有しており、
前記保持手段は、１ＧＯＰ中の前記参照フレームのうち、連続しない所定のフレームに対応するデータを保持する
請求項１に記載の情報処理装置。
【請求項３】
前記保持手段は、前記参照フレームがデコードされて生成されたデータを保持するためのＸフレーム分の記憶領域と、前記所定のフレーム以外のＰピクチャまたはＢピクチャをデコードして出力する場合に用いられる２フレーム分の記憶領域とを含む
請求項２に記載の情報処理装置。
【請求項４】
前記Ｘフレーム分の記憶領域は、
前記所定のフレームをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための１フレーム分の第１の記憶領域と、
前記Ｂピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための１フレーム分の第２の記憶領域と、
前記所定のフレームがデコードされて生成されたデータを保持するためのＸ−２フレーム分の第３の記憶領域と
により構成されている
請求項３に記載の情報処理装置。
【請求項５】
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段のうち、前記第３の記憶領域に新たなデータの記憶領域がなく、前記第３の記憶領域により保持されているデータに、前記第５のフレームが存在する場合、前記第３の記憶領域から前記第５のフレームを削除する
請求項４に記載の情報処理装置。
【請求項６】
前記Ｘフレーム分の記憶領域は、
前記所定のフレームに含まれる前記Ｉピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための１フレーム分の第１の記憶領域と、
前記所定のフレーム以外の前記Ｐピクチャまたは前記Ｂピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための２フレーム分の第２の記憶領域と、
前記所定のフレーム、および、前記所定のフレームに含まれるＰピクチャをデコードするために用いられる前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するためのＸ−３フレーム分の第３の記憶領域と
により構成されている
請求項３に記載の情報処理装置。
【請求項７】
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段のうち、前記第３の記憶領域に新たなデータの記憶領域がなく、前記第３の記憶領域により保持されているデータに、前記第５のフレームが存在する場合、前記第３の記憶領域から前記第５のフレームを削除する
請求項６に記載の情報処理装置。
【請求項８】
符号化ストリームをデコードする情報処理装置の情報処理方法において、
所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームをデコーダに供給し、
前記参照フレームのデコード処理をスケジュールし、
デコードされて生成されたデータを複数フレーム分保持する保持部に、新たなデータの記憶領域があるかを判断し、
前記保持部に新たなデータの記憶領域がなく、前記保持部により保持されている前記参照フレームに対応するデータに、デコーダによりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコーダによりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除し、
前記保持部に新たなデータの記憶領域があるか、または、前記保持部から前記第５のデータが削除された場合、スケジュールに基づいて、前記所定のフレームをデコードするための参照フレームをデコードし、
前記所定のフレームに対応するデータの出力が要求された場合、デコードされて生成された前記参照フレームに対応するデータを用いて、前記所定のフレームをデコードする
ステップを含む情報処理方法。
【請求項９】
符号化ストリームをデコードする処理をコンピュータに実行させるためのプログラムであって、
所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームをデコーダに供給し、
前記参照フレームのデコード処理をスケジュールし、
デコードされて生成されたデータを複数フレーム分保持する保持部に、新たなデータの記憶領域があるかを判断し、
前記保持部に新たなデータの記憶領域がなく、前記保持部により保持されている前記参照フレームに対応するデータに、デコーダによりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコーダによりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除し、
前記保持部に新たなデータの記憶領域があるか、または、前記保持部から前記第５のデータが削除された場合、スケジュールに基づいて、前記所定のフレームをデコードするための参照フレームをデコードし、
前記所定のフレームに対応するデータの出力が要求された場合、デコードされて生成された前記参照フレームに対応するデータを用いて、前記所定のフレームをデコードする
ステップを含む処理をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムが記録されている記録媒体。
【請求項１１】
符号化ストリームをデコードする情報処理装置において、
デコードされて生成されたデータを複数フレーム分保持する保持手段を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段と、
前記デコード手段へ前記符号化ストリームを供給する供給手段と、
前記供給手段および前記デコード手段が実行する処理を制御する制御手段と
を備え、
前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームを前記デコード手段へ供給し、
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たな前記参照フレームに対応するデータの記憶領域がなく、前記保持手段により保持されているデータに、デコード手段によりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、前記第３のフレームに対応するデータを削除する
情報処理装置。
【請求項１２】
符号化ストリームをデコードする情報処理装置において、
デコードされて生成されたデータを複数フレーム分保持する保持手段を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段と、
前記デコード手段へ前記符号化ストリームを供給する供給手段と、
前記供給手段および前記デコード手段が実行する処理を制御する制御手段と
を備え、
前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームを前記デコード手段へ供給し、
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たな前記参照フレームに対応するデータの記憶領域がなく、前記保持手段により保持されているデータに、デコード手段によりデコードされることが決定している第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、前記第３のフレームに対応するデータを削除する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関し、特に、複雑なフレームメモリの制御を行うことなく、圧縮符号化データを再生することができるようにした、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関する。
【背景技術】
【０００２】
映像圧縮技術として、ＭＰＥＧ（Moving Picture Coding Experts Group／Moving Picture Experts Group）が広く用いられている。
【０００３】
ＭＰＥＧで圧縮符号化されたストリームデータをデコードして再生する場合に、通常の再生以外に、高速再生を実行したり、逆方向に再生する技術がある。
【０００４】
例えば、１５ピクチャで１ＧＯＰを構成するMPEG LongGOPでは、デコーダへの入力においてＢピクチャを間引くことで、−３乃至３倍（速度のマイナスは、逆方向の再生であることを示す、以下同様）で高速再生を行うことが可能である（例えば、特許文献１参照）。また、再生スピードごとに、表示したいピクチャ情報のテーブルを持つことで、用意したテーブル分のスピードの再生を行うことができる。
【０００５】
【特許文献１】特開平８−９８１４２号公報
【０００６】
また、例えば、５フレーム間隔で、間欠的に１０フレーム分ずつ圧縮符号化信号を取得し、取得した圧縮符号化信号をすべて復調した後、２つの復号部に５フレーム分ずつ交互に供給して、それぞれ復号処理を実行させた後、復号後のデータをメモリに書き込んで、１フレームおきに読み出すことにより、２倍速の再生信号を得ることができるようにした技術がある（例えば、特許文献２参照）。
【０００７】
【特許文献２】特開平８−５６３３４号公報
【０００８】
また、ＭＰＥＧのストリームは、正方向に再生するのに都合よくできている。例えば、１５ピクチャで１ＧＯＰを構成するMPEG LongGOPにおける１ＧＯＰのコーディングオーダのピクチャの並びは、Ｉ（２）Ｂ（０）Ｂ（１）、Ｐ（５）、Ｂ（３）、Ｂ（４）、Ｐ（８）、Ｂ（６）、Ｂ（７）、Ｐ（１１）、Ｂ（９）、Ｂ（１０）、Ｐ（１４）、Ｂ（１２）、Ｂ（１３）（ただし、カッコ内の数字は、コーディングオーダをディスプレイオーダに並べ替えた場合の順番を示す）となっていて、Ｐピクチャの参照する画像は、一つ前のＩピクチャまたはＰピクチャであり、Ｂピクチャの参照する画像は、コーディングオーダで１つ前のＩピクチャまたはＰピクチャと、２つ前のＩピクチャまたはＰピクチャである。これにより、参照画像用のメモリを２面（２バンク）分予約することで、Ｐピクチャ、Ｂピクチャとも、デコードすることができ、メモリを効率よく使用することができるようになっている。
【０００９】
このように、正方向に再生するのに都合よいＭＰＥＧのストリームを逆転再生するために、複数のデコーダを用いて復号処理を実行し、それぞれ、復号対象となるＧＯＰの直前のＧＯＰを付加してデコーダに供給するようにすることにより、逆方向再生であっても、再生されるピクチャの参照画像を正しく用いることができるようにした技術がある（たとえば、特許文献３）。
【００１０】
【特許文献３】特開平１０−１５０６３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
例えば、１５ピクチャで１ＧＯＰを構成するMPEG LongGOPでは、デコーダへの入力においてＢピクチャを間引くことで、−３乃至３倍（速度のマイナスは、逆方向の再生であることを示す、以下同様）で高速再生を行うことが可能であるが、ピクチャの表示間隔が不規則となってしまうため、不自然な表示になる。
【００１２】
また、複数のデコーダチップを用いてデコードを実行するようになされている場合では、表示対象でないＢピクチャを入力段で間引く処理と組み合わせることにより、等間隔の間引きで、更に高速の再生（例えば、２チップで２倍、３チップで４倍、４チップで５倍、５チップで７倍）を実現することができるが、出力処理において、ＩピクチャまたはＰピクチャを間引く処理を行う必要があり、ベースバンドメモリの制御や、デコード済みのデータの中から表示するデータを選択する処理が複雑となってしまう。このため、従来の技術を用いて、動的にスピードを変更させて再生表示させるのは、困難であった。
【００１３】
また、上述したように、再生スピードごとに、表示したいピクチャ情報のテーブルを持つことで、用意したテーブル分のスピードの再生を行うことができる。しかしながら、このような処理では、スピードの切り変わり目はテーブルの単位となり、更に、切り替え時の表示を滞りなく行うためには複雑な制御が必要となる。
【００１４】
そして、ＭＰＥＧのストリームは、上述したように、正方向に再生するのに都合よくできている。しかしながら、逆方向の再生をストリームの入力順に行う場合、１ＧＯＰ分のデコードが終了した後に逆方向に再生を行うようにすると、少なくとも１ＧＯＰ分（例えば、１５フレーム）のデータを記録することができるフレームメモリを備え、参照画像データ用のバンクを多数予約しなければならないため、多くのメモリ容量が必要となってしまう。
【００１５】
本発明はこのような状況に鑑みてなされたものであり、圧縮符号化データの高速再生、逆転再生、高速逆転再生を行うことができるようにするものである。
【課題を解決するための手段】
【００１６】
本発明の第1の側面の情報処理装置は、符号化ストリームをデコードする情報処理装置であって、デコードされて生成されたデータを複数フレーム分保持する保持手段を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段と、前記デコード手段へ前記符号化ストリームを供給する供給手段と、前記供給手段および前記デコード手段が実行する処理を制御する制御手段とを備え、前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームを前記デコード手段へ供給し、前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たなデータの記憶領域がなく、前記保持手段により保持されている前記参照フレームに対応するデータに、デコード手段によりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコード手段によりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除する。
【００１７】
前記符号化ストリームはＧＯＰ構造を有しており、前記保持手段には、１ＧＯＰ中の前記参照フレームのうち、連続しない所定のフレームに対応するデータを保持させるようにすることができる。
【００１８】
前記保持手段には、前記参照フレームがデコードされて生成されたデータを保持するためのＸフレーム分の記憶領域と、前記所定のフレーム以外のＰピクチャまたはＢピクチャをデコードして出力する場合に用いられる２フレーム分の記憶領域とを含ませるようにすることができる。
【００１９】
前記Ｘフレーム分の記憶領域は、前記所定のフレームをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための１フレーム分の第１の記憶領域と、前記Ｂピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための１フレーム分の第２の記憶領域と、前記所定のフレームがデコードされて生成されたデータを保持するためのＸ−２フレーム分の第３の記憶領域とにより構成されているものとすることができる。
【００２０】
前記デコード手段には、いずれかの参照フレームをデコードするとき、前記保持手段のうち、前記第３の記憶領域に新たなデータの記憶領域がなく、前記第３の記憶領域により保持されているデータに、前記第５のフレームが存在する場合、前記第３の記憶領域から前記第５のフレームを削除させるようにすることができる。
【００２１】
前記Ｘフレーム分の記憶領域は、前記所定のフレームに含まれる前記Ｉピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための１フレーム分の第１の記憶領域と、前記所定のフレーム以外の前記Ｐピクチャまたは前記Ｂピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するための２フレーム分の第２の記憶領域と、前記所定のフレーム、および、前記所定のフレームに含まれるＰピクチャをデコードするために用いられる前記所定のフレーム以外の前記Ｐピクチャがデコードされて生成されたデータを保持するためのＸ−３フレーム分の第３の記憶領域とにより構成されているものとすることができる。
【００２２】
前記デコード手段には、いずれかの参照フレームをデコードするとき、前記保持手段のうち、前記第３の記憶領域に新たなデータの記憶領域がなく、前記第３の記憶領域により保持されているデータに、前記第５のフレームが存在する場合、前記第３の記憶領域から前記第５のフレームを削除させるようにすることができる。
【００２３】
本発明の第1の側面の情報処理方法またはプログラムは、所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームをデコーダに供給し、前記参照フレームのデコード処理をスケジュールし、デコードされて生成されたデータを複数フレーム分保持する保持部に、新たなデータの記憶領域があるかを判断し、前記保持部に新たなデータの記憶領域がなく、前記保持部により保持されている前記参照フレームに対応するデータに、デコーダによりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコーダによりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除し、前記保持部に新たなデータの記憶領域があるか、または、前記保持部から前記第５のデータが削除された場合、スケジュールに基づいて、前記所定のフレームをデコードするための参照フレームをデコードし、前記所定のフレームに対応するデータの出力が要求された場合、デコードされて生成された前記参照フレームに対応するデータを用いて、前記所定のフレームをデコードするステップを含む。
【００２４】
本発明の第1の側面においては、所定のフレームがデコードされるタイミングよりも先行して、符号化ストリームのうちの所定のフレームをデコードするために参照される参照フレームがデコーダに供給され、参照フレームのデコード処理がスケジュールされ、デコードされて生成されたデータを複数フレーム分保持する保持部に、新たなデータの記憶領域があるかが判断され、保持部に新たなデータの記憶領域がなく、保持部により保持されている参照フレームに対応するデータに、デコーダによりデコードされているが出力されていない第１のフレームまたは第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコーダによりデコードされることが決定している第３のフレームまたは第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、第５のフレームに対応するデータが削除されて、参照フレームがデコードされ、これを用いて、所定のフレームがデコードされる。
【００２５】
本発明の第２の側面の情報処理装置は、符号化ストリームをデコードする情報処理装置であって、デコードされて生成されたデータを複数フレーム分保持する保持手段を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段と、前記デコード手段へ前記符号化ストリームを供給する供給手段と、前記供給手段および前記デコード手段が実行する処理を制御する制御手段とを備え、前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームを前記デコード手段へ供給し、前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たな前記参照フレームに対応するデータの記憶領域がなく、前記保持手段により保持されているデータに、デコード手段によりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、前記第３のフレームに対応するデータを削除する。
【００２６】
本発明の第２の側面においては、所定のフレームがデコードされるタイミングよりも先行して、符号化ストリームのうちの所定のフレームをデコードするために参照される参照フレームがデコーダに供給され、参照フレームのデコード処理がスケジュールされ、デコードされて生成されたデータを複数フレーム分保持する保持部に、新たなデータの記憶領域があるかが判断され、保持部に新たなデータの記憶領域がなく、保持部により保持されている参照フレームに対応するデータに、デコーダによりデコードされているが出力されていない第１のフレームまたは第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、第３のフレームに対応するデータが削除されて、参照フレームがデコードされ、これを用いて、所定のフレームがデコードされる。
【００２７】
本発明の第３の側面の情報処理装置は、符号化ストリームをデコードする情報処理装置であって、デコードされて生成されたデータを複数フレーム分保持する保持手段を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段と、前記デコード手段へ前記符号化ストリームを供給する供給手段と、前記供給手段および前記デコード手段が実行する処理を制御する制御手段とを備え、前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレームを前記デコード手段へ供給し、前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たな前記参照フレームに対応するデータの記憶領域がなく、前記保持手段により保持されているデータに、デコード手段によりデコードされることが決定している第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、前記第３のフレームに対応するデータを削除する。
【００２８】
本発明の第３の側面においては、所定のフレームがデコードされるタイミングよりも先行して、符号化ストリームのうちの所定のフレームをデコードするために参照される参照フレームがデコーダに供給され、参照フレームのデコード処理がスケジュールされ、デコードされて生成されたデータを複数フレーム分保持する保持部に、新たなデータの記憶領域があるかが判断され、保持部に新たなデータの記憶領域がなく、保持部により保持されている参照フレームに対応するデータに、デコーダによりデコードされされることが決定している第１のフレームまたは第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、第３のフレームに対応するデータが削除されて、参照フレームがデコードされ、これを用いて、所定のフレームがデコードされる。
【００２９】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００３０】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【００３１】
再生装置は、独立した装置であっても良いし、記録再生装置の再生処理を行うブロックであっても良い。
【発明の効果】
【００３２】
以上のように、本発明によれば、符号化ストリームをデコードすることができ、特に、所定のフレームがデコードされるタイミングよりも先行して、参照フレームがデコードされ、更に、フレームメモリにおいて削除可能なデータがある場合にのみ、新たな参照フレームのデコードを実行するようにしたので、フレームメモリの容量を削減しつつ、表示または出力のエラーの発生を抑制することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３４】
本発明の第1の側面の情報処理装置は、符号化ストリームをデコードする情報処理装置（例えば、図４４の再生装置１０１）であって、デコードされて生成されたデータを複数フレーム分保持する保持手段（例えば、図４５のフレームメモリ１３１−３）を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段（例えば、図４４のデコーダ１２２）と、前記デコード手段へ前記符号化ストリームを供給する供給手段（例えば、図４４のＰＣＩブリッジ１７）と、前記供給手段および前記デコード手段が実行する処理を制御する制御手段（例えば、図４４のＣＰＵ１２１）とを備え、前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレーム（例えば、アンカーフレーム）を前記デコード手段へ供給し、前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たなデータの記憶領域がなく、前記保持手段により保持されている前記参照フレームに対応するデータに、デコード手段によりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコード手段によりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除する。
【００３５】
前記符号化ストリームはＧＯＰ構造を有しており、前記保持手段は、１ＧＯＰ中の前記参照フレーム（例えば、ＩピクチャまたはＰピクチャ）のうち、連続しない所定のフレーム（例えば、保有アンカーフレーム）に対応するデータを保持することができる。
【００３６】
前記保持手段は、前記参照フレーム（例えば、アンカーフレーム）がデコードされて生成されたデータを保持するためのＸフレーム分の記憶領域（例えば、図５１または図７６の参照バンク）と、前記所定のフレーム以外のＰピクチャ（例えば、非保有アンカーフレーム）またはＢピクチャをデコードして出力する場合に用いられる２フレーム分の記憶領域（例えば、図５１または図７６のＢ・非保有アンカー表示バンク）とを含むことができる。
【００３７】
前記Ｘフレーム分の記憶領域は、前記所定のフレームをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャ（例えば、非保有アンカーフレーム）がデコードされて生成されたデータを保持するための１フレーム分の第１の記憶領域（例えば、図５１の非保有アンカーバンク）と、前記Ｂピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャ（例えば、非保有アンカーフレーム）がデコードされて生成されたデータを保持するための１フレーム分の第２の記憶領域（例えば、図５１のＢピクチャ表示用非保有アンカーバンク）と、前記所定のフレーム（例えば、保有アンカーフレーム）がデコードされて生成されたデータを保持するためのＸ−２フレーム分の第３の記憶領域（例えば、図５１の保有アンカーバンク）とにより構成されているものとすることができる。
【００３８】
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段のうち、前記第３の記憶領域（例えば、図５１の保有アンカーバンク）に新たなデータの記憶領域がなく、前記第３の記憶領域により保持されているデータに、前記第５のフレームが存在する場合、前記第３の記憶領域から前記第５のフレームを削除することができる。
【００３９】
前記Ｘフレーム分の記憶領域は、前記所定のフレームに含まれる前記Ｉピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャ（例えば、非保有アンカーフレーム）がデコードされて生成されたデータを保持するための１フレーム分の第１の記憶領域（例えば、図７６の非保有アンカーバンク）と、前記所定のフレーム以外の前記Ｐピクチャまたは前記Ｂピクチャをデコードするために用いられる、前記所定のフレーム以外の前記Ｐピクチャ（例えば、非保有アンカーフレーム）がデコードされて生成されたデータを保持するための２フレーム分の第２の記憶領域（例えば、図７６の表示用非保有アンカーバンク）と、前記所定のフレーム（例えば、保有アンカーフレーム）、および、前記所定のフレームに含まれるＰピクチャをデコードするために用いられる前記所定のフレーム以外の前記Ｐピクチャ（例えば、非保有アンカーフレーム）がデコードされて生成されたデータを保持するためのＸ−３フレーム分の第３の記憶領域（例えば、図７６の保有・非保有アンカー兼用バンク）とにより構成されているものとすることができる。
【００４０】
前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段のうち、前記第３の記憶領域（例えば、図５１の保有アンカーバンク）に新たなデータの記憶領域がなく、前記第３の記憶領域により保持されているデータに、前記第５のフレームが存在する場合、前記第３の記憶領域から前記第５のフレームを削除することができる。
【００４１】
本発明の一側面の情報処理方法またはプログラムは、所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレーム（例えば、アンカーフレーム）をデコーダ（例えば、図４４のデコーダ１２２）に供給し（例えば、図８９のステップＳ９０１の処理）、前記参照フレームのデコード処理をスケジュールし（例えば、図９０のステップＳ９３２の処理）、デコードされて生成されたデータを複数フレーム分保持する保持部（例えば、図４５のフレームメモリ１３１−３）に、新たなデータの記憶領域があるかを判断し（例えば、図９１のステップＳ９５１）、前記保持部に新たなデータの記憶領域がなく、前記保持部により保持されている前記参照フレームに対応するデータに、デコーダによりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレーム、もしくは、デコーダによりデコードされることが決定している第３のフレームまたは前記第３のフレームをデコードするために必要となる第４のフレームのうちのいずれとも異なる第５のフレームに対応するデータが存在する場合、前記第５のフレームに対応するデータを削除し（例えば、図９１のステップＳ９５９の処理）、前記保持部に新たなデータの記憶領域があるか、または、前記保持部から前記第５のデータが削除された場合、スケジュールに基づいて、前記所定のフレームをデコードするための参照フレームをデコードし（例えば、図９１のステップＳ９６１の処理）、前記所定のフレームに対応するデータの出力が要求された場合、デコードされて生成された前記参照フレームに対応するデータを用いて、前記所定のフレームをデコードする（例えば、図８９のステップＳ９０８の処理）ステップを含む。
【００４２】
本発明の第２の側面の情報処理装置は、符号化ストリームをデコードする情報処理装置（例えば、図４４の再生装置１０１）であって、デコードされて生成されたデータを複数フレーム分保持する保持手段（例えば、図４５のフレームメモリ１３１−３）を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段（例えば、図４４のデコーダ１２２）と、前記デコード手段へ前記符号化ストリームを供給する供給手段（例えば、図４４のＰＣＩブリッジ１７）と、前記供給手段および前記デコード手段が実行する処理を制御する制御手段（例えば、図４４のＣＰＵ１２１）とを備え、前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレーム（例えば、アンカーフレーム）を前記デコード手段へ供給し、前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たな前記参照フレームに対応するデータの記憶領域がなく、前記保持手段により保持されているデータに、デコード手段によりデコードされているが出力されていない第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、前記第３のフレームに対応するデータを削除する。
【００４３】
本発明の第３の側面の情報処理装置は、符号化ストリームをデコードする情報処理装置（例えば、図４４の再生装置１０１）であって、デコードされて生成されたデータを複数フレーム分保持する保持手段（例えば、図４５のフレームメモリ１３１−３）を備え、前記保持手段を利用して、前記符号化ストリームをデコードするデコード手段（例えば、図４４のデコーダ１２２）と、前記デコード手段へ前記符号化ストリームを供給する供給手段（例えば、図４４のＰＣＩブリッジ１７）と、前記供給手段および前記デコード手段が実行する処理を制御する制御手段（例えば、図４４のＣＰＵ１２１）とを備え、前記供給手段は、前記デコード手段により所定のフレームがデコードされるタイミングよりも先行して、前記符号化ストリームのうちの前記所定のフレームをデコードするために参照される参照フレーム（例えば、アンカーフレーム）を前記デコード手段へ供給し、前記デコード手段は、いずれかの参照フレームをデコードするとき、前記保持手段に新たな前記参照フレームに対応するデータの記憶領域がなく、前記保持手段により保持されているデータに、デコード手段によりデコードされることが決定している第１のフレームまたは前記第１のフレームをデコードするために必要となる第２のフレームのうちのいずれとも異なる第３のフレームに対応するデータが存在する場合、前記第３のフレームに対応するデータを削除する。
【００４４】
以下、図を参照して、本発明の実施の形態について説明する。
【００４５】
図１乃至図４３を用いて、第１の実施の形態について説明する。
【００４６】
図１は、再生装置１のハードウェア構成を示すブロック図である。
【００４７】
ＣＰＵ（Central Processing Unit）１１は、ノースブリッジ１２に接続され、例えば、ＨＤＤ（Hard disk Drive）１６に記憶されているデータの読み出しなどの処理を制御したり、ＣＰＵ２０が実行するデコードのスケジューリング、デコードおよび表示出力の制御などの処理の開始、変更、または終了を指令するためのコマンドを生成し、出力する。ノースブリッジ１２は、ＰＣＩバス（Peripheral Component Interconnect/Interface）１４に接続され、例えば、ＣＰＵ１１の制御に基づいて、サウスブリッジ１５を介して、ＨＤＤ１６に記憶されているデータの供給を受けて、ＰＣＩバス１４、ＰＣＩブリッジ１７を介して、メモリ１８に供給する。また、ノースブリッジ１２は、メモリ１３とも接続されており、ＣＰＵ１１の処理に必要なデータを授受する。
【００４８】
メモリ１３は、ＣＰＵ１１が実行する処理に必要なデータを保存することが可能な、例えば、ＤＤＲ（Double Data Rate）等の高速アクセス可能な記憶用のメモリである。サウスブリッジ１５は、ＨＤＤ１６のデータの書き込みおよび読み出しを制御する。ＨＤＤ１６には、圧縮符号化されたストリームデータが記憶されている。
【００４９】
ＰＣＩブリッジ１７は、コマンドバッファ３１およびリザルトバッファ３２を内部に備えるとともに、ＣＰＵ１１の制御に基づいてＨＤＤ１６から読み出されたストリームデータをバッファリングするメモリ１８が接続されている。ＰＣＩブリッジ１７は、ＣＰＵ１１の制御に基づいてＨＤＤ１６から読み出されたストリームデータを、メモリ１８に供給して保存させることができるとともに、ＣＰＵ２０の制御に基づいて、メモリ１８に保存されているストリームデータを読み出して、デコーダ２２乃至デコーダ２４に供給する。また、ＰＣＩブリッジ１７は、ＰＣＩバス１４またはコントロールバス１９を介したコマンドまたはリザルトに対応する制御信号の授受を制御する。
【００５０】
コマンドバッファ３１は、ＣＰＵ１１から、ノースブリッジ１２およびＰＣＩバス１４を介してコマンドの書き込みを受けるとともに、ＣＰＵ２０から、コントロールバス１９を介して、書き込まれているコマンドが読み出されるようになされている。また、リザルトバッファ３２は、コントロールバス１９を介して、ＣＰＵ２０によりコマンドに対するリザルトの書き込みを受けるとともに、ＣＰＵ１１から、ノースブリッジ１２およびＰＣＩバス１４を介して、書き込まれているリザルトが読み取られるようになされている。
【００５１】
メモリ１８は、ＰＣＩブリッジ１７の制御に基づいて、ＨＤＤ１６により読み出された、圧縮符号化されたストリームデータを記憶するものであり、例えば、SDRAM（Synchronous Dynamic Random Access Memory）等で構成されている。
【００５２】
ＣＰＵ２０は、コントロールバス１９を介して、ＣＰＵ１１によりＰＣＩブリッジ１７のコマンドバッファ３１に書き込まれたコマンドを読み取り、このコマンドにしたがって、ＰＣＩブリッジ１７、デコーダ２２乃至デコーダ２４、および、セレクタ２５が実行する処理を制御する。メモリ２１は、ＣＰＵ２０の処理に必要なデータを記憶する。
【００５３】
デコーダ２２乃至デコーダ２４は、ＣＰＵ２０の制御に基づいて、供給された圧縮符号化されたストリームデータをデコードし、非圧縮の映像信号を出力する。デコーダ２２は、その内部にメモリ４１を、デコーダ２３は、その内部にメモリ４２を、デコーダ２４は、その内部にメモリ４３を有し、必要に応じて、供給された圧縮符号化されたストリームデータ、または、デコードされた非圧縮の映像信号を保持することが可能なようになされている。また、デコーダ２２乃至デコーダ２４は、再生装置１に含まれない独立した装置として設けられていても良い。
【００５４】
セレクタ２５は、ＣＰＵ２０による設定に基づいて、デコーダ２２乃至デコーダ２４により出力された非圧縮のＳＤＩ（Serial Digital Interface）データの出力をフレーム精度で切り替えることができる。
【００５５】
なお、図１の再生装置１は、１つの装置として構成されていても良いし、複数の装置によって構成されるようにしても良い。例えば、図１の再生装置のうち、ＣＰＵ１１、ノースブリッジ１２、メモリ１３、サウスブリッジ１５、および、ＨＤＤ１６の部分が、パーソナルコンピュータの構成のうちの一部であるとし、PCIカード、PCI−Expressカードなどの拡張カード、または、拡張ボードに、ＰＣＩバス１４、ＰＣＩブリッジ１７、メモリ１８、コントロールバス１９、ＣＰＵ２０、メモリ２１、デコーダ２２乃至デコーダ２４、および、セレクタ２５の機能を備えさせ、パーソナルコンピュータに拡張カードを装着して再生装置１として機能するようにしても良い。また、これらを、さらに複数の装置に分割して、再生装置１を構成するようにしても良い。
【００５６】
次に、再生装置１の動作について説明する。
【００５７】
ＨＤＤ１６には、ＭＰＥＧのLong GOP方式で圧縮された圧縮映像のデータが記憶されている。
【００５８】
ＣＰＵ１１は、ノースブリッジ１２を介して、サウスブリッジ１５を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、ＨＤＤ１６から、圧縮符号化されたストリームデータを読み出させ、ノースブリッジ１２、ＰＣＩバス１４、および、ＰＣＩブリッジ１７を介して、メモリ１８に供給させて記憶させるとともに、再生スピード（再生方向を示す情報を含む）を示す情報、デコード開始コマンド、または、表示開始コマンドなどを、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に書き込む。
【００５９】
ＣＰＵ２０は、ＰＣＩブリッジ１７のコマンドバッファ３１に書き込まれたＣＰＵ１１からのコマンドを基に、圧縮符号化されたストリームデータのデコードおよび表示のスケジュールを決定する。具体的には、ＣＰＵ２０は、デコードに利用されるデコーダ２２乃至デコーダ２４の選択、圧縮符号化されたストリームデータのデコーダ２２乃至デコーダ２４への入力のタイミング、フレームごとのデコードのタイミング、参照画像のバンク位置の設定、デコード時のバンクメモリの割り当て、および、デコードされたピクチャの出力、すなわち、表示のタイミングを決定する。
【００６０】
そして、ＣＰＵ２０は、ＰＣＩブリッジ１７を制御して、メモリ１８に記憶されている圧縮符号化されたストリームデータを、決定されたスケジュールに基づいて、デコーダ２２乃至デコーダ２４のうちのいずれか対応するものに供給させる。
【００６１】
ＣＰＵ２０は、デコーダ２２乃至デコーダ２４を制御して、供給された圧縮符号化されたデータをデコードさせる。デコーダ２２乃至デコーダ２４は、供給された圧縮符号化されたストリームデータをデコードして、非圧縮のＳＤＩデータを生成して、セレクタ２５に出力する。
【００６２】
そして、ＣＰＵ２０は、セレクタ２５を制御して、デコーダ２２乃至デコーダ２４より出力された非圧縮のＳＤＩデータの出力を切り替えさせる。
【００６３】
図２は、デコーダ２２乃至デコーダ２４の更に詳細な構成を示すブロック図である。
【００６４】
入力処理部７１は、ＰＣＩブリッジ１７から供給された圧縮符号化されたストリームデータをメモリコントローラ７４に供給して入力バッファ７５に保存させるとともに、供給されたストリームデータから、ピクチャ単位で、先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどを取得して、アドレス管理テーブル７２に供給する。
【００６５】
アドレス管理テーブル７２は、入力処理部７１から供給された、ピクチャ単位の先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどの情報を、テーブルＩＤにより区別可能なテーブル情報として、それぞれ、ピクチャ別に保持する。
【００６６】
エレメンタリストリームアドレス決定部７３は、ＣＰＵ２０からコントロールバス１９を介して供給される制御信号を基に、入力バッファ７５に保存されたストリームデータを、ピクチャ単位でデコード処理部７７に供給させることができるように、アドレス管理テーブル７２に保持されている所定のテーブルＩＤで示されるテーブル情報から、対応するピクチャの先頭番地およびピクチャサイズ情報を読み出して、メモリコントローラ７４に供給する。
【００６７】
メモリコントローラ７４は、入力バッファ７５へのストリームデータの書き込みおよび読み出しを制御する。すなわち、メモリコントローラ７４は、入力処理部７１から供給されたストリームデータを入力バッファ７５に書き込むとともに、エレメンタリストリームアドレス決定部７３から供給される、対応するピクチャの先頭番地およびピクチャサイズ情報を基に、所定のピクチャを読み出して、デコード処理部７７に供給する。
【００６８】
入力バッファ７５は、SDRAMなどの記憶用のメモリで構成された図１のメモリ４１乃至メモリ４３の記録領域のうちの一部に相当し、メモリコントローラ７４の制御に基づいて、ストリームデータを保存する。
【００６９】
コントロールバス７６は、データバス１９を介してＣＰＵ２０から供給される制御信号を、エレメンタリストリームアドレス決定部７３、デコード処理部７７、書き込み画アドレス決定部７８、参照画アドレス決定部７９、および、出力アドレス決定部８０に供給するとともに、デコーダ２２乃至デコーダ２４の内部において実行される処理に関する情報を、データバス１９を介して、ＣＰＵ２０に供給する。
【００７０】
デコード処理部７７は、メモリコントローラ７４により入力バッファ７５から読み出されたＭＰＥＧビデオストリームを、参照画アドレス決定部７９から供給された参照画を必要に応じて参照してデコードし、デコードされたベースバンド（非圧縮）の映像信号を、書き込み画アドレス決定部７８に供給する。
【００７１】
書き込み画アドレス決定部７８は、データバス１９を介してＣＰＵ２０から供給される制御信号を、コントロールバス７６を介して取得し、この制御信号に基づいて、デコード処理部７７によりデコードされて供給されたベースバンドの映像信号のビデオバンクメモリ８２における記録位置、すなわち、保存されるバンク位置を決定し、ベースバンドの映像信号を、メモリコントローラ８１を介して、ビデオバンクメモリ８２の所定のバンク位置に保存させる。
【００７２】
参照画アドレス決定部７９は、データバス１９を介してＣＰＵ２０から供給される制御信号を、コントロールバス７６を介して取得し、この制御信号に基づいて、ビデオバンクメモリ８２のうち、Ｐピクチャの前方向（forward）の参照画像バンクとして指定されたバンクに保持されているフレーム画像データや、Ｂピクチャの前方向および後ろ方向（backward）の参照画像バンクとして指定されたバンクに保持されているフレーム画像データを、メモリコントローラ８１を制御して読み出させ、デコード処理部７７に供給する。
【００７３】
出力アドレス決定部８０は、データバス１９を介してＣＰＵ２０から供給される制御信号を、コントロールバス７６を介して取得し、この制御信号に基づいて、ビデオバンクメモリ８２に保持されているフレーム画像データのうちの出力画像、すなわち、表示させるフレームのバンクを指定して、メモリコントローラ８１を制御して読み出させ、出力する。
【００７４】
メモリコントローラ８１は、ビデオバンクメモリ８２へのフレーム画像の書き込みおよび読み出しを制御する。ビデオバンクメモリ８２は、SDRAMなどの記憶用のメモリで構成された図１のメモリ４１乃至メモリ４３の記録領域のうちの一部に相当する、８バンク（８面）のフレーム画像用のバンクメモリであり、メモリコントローラ８１の制御に基づいて、１フレームのフレーム画像データを設定されたバンクに保持する。
【００７５】
次に、図３のフローチャートを参照して、ＣＰＵ１１が実行する制御処理について説明する。
【００７６】
ステップＳ１において、ＣＰＵ１１は、ノースブリッジ１２およびサウスブリッジ１５を制御して、ユーザによりデコードして出力するストリームデータとして指定された、圧縮符号化されたストリームデータのうちの複数ＧＯＰをＨＤＤ１６から読み出す。
【００７７】
ステップＳ２において、ＣＰＵ１１は、読み出した複数ＧＯＰのストリームデータを、ＰＣＩバス１４を介してＰＣＩブリッジ１７に供給し、メモリ１８に転送する。
【００７８】
ステップＳ３において、ＣＰＵ１１は、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、データ転送完了と、メモリ１８に転送されたＧＯＰに含まれるピクチャのピクチャ情報を供給することにより、ＣＰＵ２０に対して、データ転送完了と、ピクチャ情報とを通知する。ピクチャ情報には、例えば、ピクチャタイプ、ピクチャ単位のヘッダ情報、ピクチャサイズなどの情報が含まれる。
【００７９】
ステップＳ４において、ＣＰＵ１１は、ＣＰＵ２０およびメモリ１８から、準備完了の通知を受ける。具体的には、ＣＰＵ１１は、ＣＰＵ２０がコントロールバス１９を介してＰＣＩブリッジ１７のリザルトバッファ３２に供給した、データ転送完了とピクチャ情報の通知に対するリザルトを、ノースブリッジ１２およびＰＣＩバス１４を介して読み込むとともに、メモリ１８から、ＰＣＩブリッジ１７、ＰＣＩバス１４およびノースブリッジ１２を介して、複数ＧＯＰのストリームデータの保存終了の通知を受ける。
【００８０】
ステップＳ５において、ＣＰＵ１１は、図示しない操作入力部から、ユーザによる再生出力処理の開始の指令を受け、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、デコード開始コマンドを送信し、デコーダ２２乃至デコーダ２４により、デコード処理を開始させる。デコード開始コマンドには、表示スピード情報が含まれる。
【００８１】
ＣＰＵ１１は、ステップＳ６において、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、表示開始コマンドを送信し、ステップＳ７において、デコーダによりデコードされて得られたＳＤＩ信号、すなわち、ベースバンドの画像信号の、１ＧＯＰ分の表示を開始させる。
【００８２】
ステップＳ８において、ＣＰＵ１１は、ＣＰＵ２０がコントロールバス１９を介してＰＣＩブリッジ１７のリザルトバッファ３２に供給した表示開始コマンドに対するリザルト、すなわち、後述する図１８のステップＳ１９４において、ＣＰＵ２０がＰＣＩブリッジ１７のリザルトバッファ３２に書き込んだフレームごとの表示完了の通知を、ノースブリッジ１２およびＰＣＩバス１４を介して読み込んで、いずれのピクチャの表示が終了したかを常にチェックしておくことにより、１ＧＯＰの表示完了を検出する。
【００８３】
ステップＳ９において、ＣＰＵ１１は、表示されたＧＯＰは、表示されるストリームデータの最後であるか否かを判断する。ステップＳ９において、表示されたＧＯＰは、表示されるストリームデータの最後であると判断された場合、処理は終了される。
【００８４】
ステップＳ９において、表示されたＧＯＰは、表示されるストリームデータの最後ではないと判断された場合、ステップＳ１０において、ＣＰＵ１１は、図示しない操作入力部から供給される信号を基に、例えば、ストリームデータの再生終了、再生されているストリームデータの変更、もしくは、再生速度または方向の変更指令など、入力ストリーム状態の変更を伴う指令がユーザから入力されたか否かを判断する。
【００８５】
ステップＳ１０において、入力ストリーム状態の変更を伴う指令がユーザから入力されたと判断された場合、ステップＳ１１において、ＣＰＵ１１は、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、ユーザの操作入力に対応するコマンドを送信する。
【００８６】
ステップＳ１０において、入力ストリーム状態の変更を伴う指令がユーザから入力されていないと判断された場合、または、ステップＳ１１の処理の終了後、ステップＳ１２において、ＣＰＵ１１は、ＨＤＤ１６に、表示させるストリームデータが残っているか否かを判断する。ステップＳ１２において、ＨＤＤ１６に、表示させるストリームデータが残っていないと判断された場合、処理は、ステップＳ７に戻り、メモリ１８に転送され、まだ表示されていないストリームデータにおいて、ステップＳ７以降の処理が繰り返される。
【００８７】
ステップＳ１２において、ＨＤＤ１６に、表示させるストリームデータが残っていると判断された場合、ステップＳ１３において、ＣＰＵ１１は、ノースブリッジ１２およびサウスブリッジ１５を制御して、デコードして出力するストリームデータのうち、メモリ１８へ転送済みのＧＯＰに続く１ＧＯＰをＨＤＤ１６から読み出す。
【００８８】
ステップＳ１４において、ＣＰＵ１１は、読み出した１ＧＯＰのストリームデータを、ＰＣＩバス１４を介してＰＣＩブリッジ１７に供給し、メモリ１８に転送する。すなわち、メモリ１８には、再生されるストリームデータの終了部分付近が保持されている場合を除いて、基本的には、所定数のＧＯＰが保持されているようになされている。
【００８９】
ステップＳ１５において、ＣＰＵ１１は、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、データ転送完了と、メモリ１８に転送されたＧＯＰに含まれるピクチャのピクチャ情報を供給することにより、ＣＰＵ２０に対して、データ転送完了と、ピクチャ情報とを通知する。ピクチャ情報には、例えば、ピクチャタイプ、ピクチャ単位のサイズなどの情報が含まれる。
【００９０】
ステップＳ１６において、ＣＰＵ１１は、ＣＰＵ２０およびメモリ１８から、準備完了の通知を受ける。具体的には、ＣＰＵ１１は、ＣＰＵ２０がコントロールバス１９を介してＰＣＩブリッジのリザルトバッファ３２に供給した、データ転送完了とピクチャ情報の通知に対するリザルトを、ノースブリッジ１２およびＰＣＩバス１４を介して読み込むとともに、メモリ１８から、ＰＣＩブリッジ１７、ＰＣＩバス１４およびノースブリッジ１２を介して、複数ＧＯＰのストリームデータの保存終了の通知を受ける。
【００９１】
ステップＳ１６の処理の終了後、処理は、ステップＳ７に進み、それ以降の処理が繰り返される。
【００９２】
このような処理により、ＣＰＵ１１は、ＣＰＵ２０にコマンドを供給し、供給したコマンドに対するリザルトを受けて、ストリームデータのデコードと、デコードされたデータの表示を制御することができる。
【００９３】
ここでは、デコードされたデータを１ＧＯＰずつ表示させる場合について説明したが、デコードされて生成されたＳＤＩ信号を外部に出力する場合にも、同様の処理を実行することにより、ＣＰＵ１１は、ＣＰＵ２０にコマンドを供給し、供給したコマンドに対するリザルトを受けて、ストリームデータのデコードと、デコードされたデータの外部への出力を制御することができることは言うまでもない。
【００９４】
そして、ＣＰＵ２０は、ＣＰＵ１１から供給されるコマンドに基づいて、複数のデコーダ（図１においては、デコーダ２２乃至デコーダ２４）によるデコード処理を制御する。具体的には、ＣＰＵ２０は、デコードに利用されるデコーダ２２乃至デコーダ２４の選択、換言すれば、圧縮符号化されたストリームデータの供給先を、デコーダ２２乃至デコーダ２４のうちのいずれにするのかを選択する処理を実行する。更に、ＣＰＵ２０は、圧縮符号化されたストリームデータのデコーダ２２乃至デコーダ２４のうち対応するものへの入力のタイミング、ピクチャごとのデコードのタイミング、参照画像のバンク位置の設定、デコード時のバンクメモリの割り当て、および、デコードされたピクチャの出力、すなわち、表示のタイミングを決定し、これらのタイミングを基に、ＰＣＩブリッジ１７、デコーダ２２乃至デコーダ２４、および、セレクタ２５を制御する。以下、図４乃至図３８を参照して、ＣＰＵ２０によるデコードおよび表示出力の制御について説明する。
【００９５】
ＣＰＵ２０は、デコーダ２２乃至デコーダ２４によるデコード処理と、セレクタ２５により出力されるＳＤＩ信号のセレクト処理とを制御するために、メモリ２１に、各種情報を保持可能な複数のレジスタおよび情報キューを有するようになされている。情報キューは、ＦＩＦＯ（First In First Out）のキュー（queue）構造で、ＣＰＵ１１により供給されたコマンドや、ピクチャタイプ情報が対応付けられたピクチャＩＤおよびピクチャＩＤに付随する情報（例えば、時間情報）などを、デコードタイミングのスケジューリングや、デコードおよび表示の制御の用途ごとに、それぞれ所定の深さで蓄積することができるようになされている。
【００９６】
ＣＰＵ２０は、対応する情報キューに蓄積された情報を用いて、デコードおよび表示のタイミングを制御する。すなわち、メモリ２１にピクチャがキューされるのではなく、ＣＰＵ２０の制御に基づいて、ピクチャＩＤがそれぞれの情報キューに設定されることにより、ＣＰＵ２０は、デコードおよび表示のタイミングを制御するための演算処理を実行することができる。
【００９７】
各種情報を蓄積する情報キューとして、例えば、コントロールバス１９を介して、ＰＣＩブリッジ１７のコマンドバッファ３１から取得したコマンドを蓄積するコマンドキューをはじめとして、処理待ち行列に対応する入力ピクチャのピクチャＩＤがコーディングオーダで蓄積される入力ピクチャキュー、入力ピクチャキューに蓄積されたピクチャＩＤをリオーダしてディスプレイオーダに並べ替えて蓄積する表示順情報キュー、表示順情報キューに蓄積されたピクチャＩＤから、ＩピクチャおよびＰピクチャを抽出してデコード順に並べ替えて蓄積するＩ／Ｐピクチャデコードキュー、Ｉ／Ｐピクチャデコードキューに設定されたピクチャＩＤに加えて、これらのピクチャＩＤに対応する時間情報が更に蓄積される時間情報付きＩ／Ｐピクチャデコードキュー、表示順にピクチャＩＤが設定される表示順設定キュー、表示順設定キューに設定されたピクチャＩＤに加えて、これらのピクチャＩＤに対応する時間情報が更に蓄積される時間情報付き表示順設定キュー、次に表示されるピクチャのピクチャＩＤを保持する表示キューなどが、ＣＰＵ２０による各種制御に用いられている。各キューに蓄積される情報、各キューの深さ、その情報を用いて実行される処理の詳細については、それぞれ後述する。
【００９８】
次に、図４のフローチャートを参照して、フレームごとに行う処理１について説明する。この処理ルーチンは、表示が指令されたストリームデータが終了するまで、または、表示の終了が指令されるまで、１フレームごとに繰り返して実行される。
【００９９】
ステップＳ３１において、図５を用いて後述する入力ストリーム状態変更処理が実行される。入力ストリーム状態変更処理は、ＣＰＵ１１から新たなコマンドが発行されているか否かを確認する処理である。
【０１００】
ステップＳ３２において、図６を用いて後述するデコードスケジュール処理１が実行される。デコードスケジュール処理１において、デコードタイミングがスケジュールされる。
【０１０１】
ステップＳ３３において、ＣＰＵ２０は、１フレーム単位で処理の時間を表すカウンタである時間カウンタを参照することにより、処理の対象となっているのは、デコード順において、再生されるストリームデータの最初のフレームから６番目のフレームのうちのいずれかのフレームであるか否かを判断する。
【０１０２】
ステップＳ３３において、処理の対象となっているのは、デコード順において、再生されるストリームデータの最初のフレームから６番目のフレームのうちのいずれかのフレームではないと判断された場合、ステップＳ３４において、図３８を用いて後述する１フレームディレイ表示設定処理が実行される。１フレームディレイ表示設定処理によって、１つ前の処理ルーチンにおけるステップＳ３５のフレーム制御処理１においてデコードされて生成されたベースバンドのフレーム画像の表示が設定される。
【０１０３】
ステップＳ３３において、処理の対象となっているのは、デコード順において、再生されるストリームデータの最初のフレームから６番目のフレームのうちのいずれかのフレームであると判断された場合、または、ステップＳ３４の処理の終了後、ステップＳ３５において、図１８を用いて後述するフレーム制御処理１が実行される。フレーム制御処理１において、処理対象となっているフレームがデコードされる。
【０１０４】
ステップＳ３６において、ＣＰＵ２０は、すべてのフレームの処理が終了したか否かを判断する。ステップＳ３６において、すべてのフレームの処理が終了していないと判断された場合、ステップＳ３７において、ＣＰＵ２０は、１フレームを単位とする時間カウンタをインクリメントする。
【０１０５】
ステップＳ３７の処理の終了後、処理は、ステップＳ３１に戻り、それ以降の処理が繰り返される。ステップＳ３６において、すべてのフレームの処理が終了したと判断された場合、処理は終了される。
【０１０６】
このようにして、ＣＰＵ２０は、１フレームの処理ごとに、時間カウンタをカウントアップし、ユーザの指令した再生速度に応じて、デコードをスケジュールして、１フレームごとに、デコードを行わせ、表示を設定することができる。
【０１０７】
次に、図５のフローチャートを参照して、図４のステップＳ３１において実行される、入力ストリーム状態変更処理について説明する。
【０１０８】
ステップＳ５１において、ＣＰＵ２０は、ＰＣＩブリッジ１７のコマンドバッファ３１から取得したコマンドを蓄積するコマンドキューをチェックする。
【０１０９】
ステップＳ５２において、ＣＰＵ２０は、コマンドキューに、例えば、再生速度（再生方向を含む）の変更、または、再生終了の指令など、入力ストリーム状態を変更させる新たなコマンドが保存されているか否かを判断する。
【０１１０】
ステップＳ５２において、コマンドキューに新たなコマンドが保存されていると判断された場合、ステップＳ５３において、ＣＰＵ２０は、コマンドキューに最も早い時刻に保存されたコマンドに基づいて、再生速度および再生方向の設定に基づいたストリーム入力状態を変更する。ステップＳ５２において、コマンドキューに新たなコマンドが保存されていないと判断された場合、または、ステップＳ５３の処理の終了後、処理は、図４のステップＳ３１に戻り、ステップＳ３２に進む。
【０１１１】
このような処理により、ＰＣＩブリッジ１７のコマンドバッファ３１から取得したコマンドを蓄積するコマンドキューに最も早い時刻に保存されたコマンドが参照され、そのコマンドに基づいて、ストリームの入力状態が変更される。
【０１１２】
次に、図６のフローチャートを参照して、図４のステップＳ３２において実行される、デコードスケジュール処理１について説明する。
【０１１３】
ステップＳ７１において、ＣＰＵ２０は、入力ピクチャキューを参照して、入力ピクチャキューが空であるか否かを判断する。入力ピクチャキューは、後述する入力処理（ステップＳ７２）において設定される情報キューであり、デコードのスケジュールが次に決定される入力ピクチャと、そのスケジューリングに必要なピクチャのピクチャＩＤが設定される。
【０１１４】
再生装置１が取り扱うストリームデータが、図７に示されるように、１ＧＯＰが１５ピクチャで構成されているＭＰＥＧのLONG GOPのストリームデータである場合、１ＧＯＰ相当の１５ピクチャごとにデコード処理を行うデコーダ２２乃至デコーダ２４のそれぞれには、それぞれのＧＯＰにおいて、表示順で先頭となる２つのＢピクチャを除いた１３ピクチャと、正方向の再生の場合は、その前のＧＯＰにおいて、表示順で先頭となるＩＢＢの３ピクチャ、逆方向の場合は、その後ろのＧＯＰにおいて、表示順で先頭となるＩＢＢの３ピクチャとの１６ピクチャが供給される。
【０１１５】
図８を用いて、デコーダ２２乃至デコーダ２４のそれぞれが担当するデコードの単位について説明する。図８では、デコーダ２２乃至デコーダ２４に供給されるピクチャの並びを、ディスプレイオーダで示している。再生装置１においては、１ＧＯＰ相当（１５ピクチャ）ごとに、デコード処理がデコーダ２２乃至デコーダ２４のうちの１つのデコーダにおいてそれぞれ実行されるが、上述したように、デコーダ２２乃至デコーダ２４のそれぞれには、１ＧＯＰにおいて表示順で先頭となる２つのＢピクチャを除いた１３ピクチャと、その前またはその後ろのＧＯＰにおいて表示順で先頭から３つのピクチャとの１６ピクチャが供給される。したがって、再生方向が正方向の場合は、図８Ａに示されるように、デコーダ２２乃至デコーダ２４のうちの第１のデコーダに、第１ＧＯＰの先頭の２つのＢピクチャを除いた１３ピクチャと第２のＧＯＰの先頭の３ピクチャが供給され、第２のデコーダに、第２ＧＯＰの先頭の２つのＢピクチャを除いた１３ピクチャと第３ＧＯＰの先頭の３ピクチャが供給され、同様にして、第３のデコーダに、第３ＧＯＰの先頭の２つのＢピクチャを除いた１３ピクチャと第４ＧＯＰの先頭の３ピクチャが供給される。また、再生方向が逆方向の場合は、図８Ｂに示されるように、デコーダ２２乃至デコーダ２４のうちの第１のデコーダに、第２ＧＯＰの先頭の２つのＢピクチャを除いた１３ピクチャと第３のＧＯＰの先頭の３ピクチャが供給され、第２のデコーダに、第１ＧＯＰの先頭の２つのＢピクチャを除いた１３ピクチャと第２ＧＯＰの先頭の３ピクチャが供給される。
【０１１６】
そして、入力ピクチャキューには、デコーダ２２乃至デコーダ２４に入力されるピクチャのうち、デコードタイミングのスケジュール待ちである入力ピクチャと、そのスケジューリングに必要なピクチャとのピクチャＩＤが設定される。すなわち、入力ピクチャキューには、LONG GOPのストリームデータのうち、１ＧＯＰの１５ピクチャと、その前またはその後ろのＧＯＰの先頭のＩＢＢの３ピクチャとの１８ピクチャのピクチャＩＤが保持される。
【０１１７】
図９Ａに、正方向の再生のために、ＭＰＥＧのLONG GOPのストリームデータのうち、第１のＧＯＰの１５ピクチャと、その後ろの第２のＧＯＰの先頭のＩＢＢの３ピクチャのピクチャＩＤが入力ピクチャキューに設定されている状態を示し、図９Ｂに、逆方向の再生のために、MPEGのLONG GOPのストリームデータのうち、第２のＧＯＰの１５ピクチャと、逆の表示順においてその前に表示される第３のＧＯＰの先頭のＩＢＢの３ピクチャのピクチャＩＤが入力ピクチャキューに設定されている状態を示す。
【０１１８】
ステップＳ７１において、入力ピクチャキューが空ではないと判断された場合、処理は、図４のステップＳ３２に戻り、ステップＳ３３に進む。すなわち、デコードのスケジュール処理は、LONG GOPの１５ピクチャとは２ピクチャ分ずれた位置から設定される１３ピクチャと次の３つのピクチャとの１６ピクチャ分の処理単位ごとにまとめて実行される。
【０１１９】
ステップＳ７１において、入力ピクチャキューが空であると判断された場合、ステップＳ７２において、図１５のフローチャートを用いて後述する入力処理が実行される。
【０１２０】
ステップＳ７３において、ＣＰＵ２０は、次のデータを供給するデコーダを示すレジスタの値を基に、次にデータの供給を受けるデコーダに対応して設定される時間情報付き表示順設定キューが空であるか否かを判断する。時間情報付き表示順設定キューとは、後述するステップＳ８０の時間情報付きスケジュール決定処理において設定されるキューであり、複数のデコーダのそれぞれ（図１を用いて説明した場合においては、デコーダ２２乃至デコーダ２４の３つのデコーダのそれぞれ）に対応して設定される。時間情報付き表示順設定キューの詳細については、図１７のフローチャートを参照して後述する。
【０１２１】
ステップＳ７３において、次にデータの供給を受けるデコーダに対応する時間情報付き表示順設定キューが空ではないと判断された場合、すなわち、スケジュール済みの１ＧＯＰ相当のピクチャに対して、フレームごとにデコード処理または表示処理が実行されている途中である場合、処理は、図４のステップＳ３２に戻り、ステップＳ３３に進む。
【０１２２】
ステップＳ７３において、次にデータの供給を受けるデコーダに対応する時間情報付き表示順設定キューが空であると判断された場合、ステップＳ７４において、ＣＰＵ２０は、リオーダ処理を実行する。リオーダ処理とは、入力ピクチャキューに設定されているコーディングオーダに並べられている１８ピクチャに対応するピクチャＩＤを、ディスプレイオーダに入れ替えて表示順情報キューに設定する処理である。
【０１２３】
したがって、再生方向が正方向である場合、表示順情報キューには、図１０Ａに示されるように、図９Ａを用いて説明した入力ピクチャキューに設定されているピクチャＩＤが、ディスプレイオーダに並べ替えられて設定され、再生方向が逆方向である場合、表示順情報キューには、図１０Ｂに示されるように、図９Ｂを用いて説明した入力ピクチャキューに設定されているピクチャＩＤが、ディスプレイオーダに並べ替えられて設定される。
【０１２４】
ステップＳ７４において、リオーダ処理が実行されて、表示順情報キューにピクチャＩＤがセットされたとき、入力ピクチャキューにキューされているピクチャＩＤはすべて出力され、入力ピクチャキューは空となる。すなわち、上述したステップＳ７１において、入力ピクチャキューが空であると判断される場合とは、入力ピクチャキューにキューされたピクチャＩＤに対するリオーダ処理が実行された場合であり、入力ピクチャキューが空ではないと判断される場合とは、この処理以前に実行されたデコードスケジュール処理１のステップＳ７２において入力処理が実行された後、次にデータの供給を受けるデコーダに対応する時間情報付き表示順設定キューが空ではないため、ステップＳ７４においてリオーダ処理が実行されていない場合である。
【０１２５】
ステップＳ７５において、ＣＰＵ２０は、ステップＳ７４において設定された表示順情報キューを参照し、Ｉ／Ｐピクチャデコードキューに、デコードするＧＯＰのうちのＩピクチャおよびＰピクチャのピクチャＩＤを、デコード順に設定する。Ｉ／Ｐピクチャデコードキューとは、Ｂピクチャに先行してデコードされるＩピクチャおよびＰピクチャのピクチャＩＤをデコード順に設定するキューである。
【０１２６】
図１１に、正方向再生および逆方向再生におけるＩ／Ｐピクチャデコードキューを示す。正方向再生の場合のＩ／Ｐピクチャデコードキューには、図１１Ａに示されるように、図１０Ａを用いて説明した表示順情報キューに設定されているピクチャＩＤのうち、ＩピクチャおよびＰピクチャに対応する６つのピクチャのピクチャＩＤが設定され、逆方向再生の場合のＩ／Ｐピクチャデコードキューには、図１１Ｂに示されるように、図１０Ｂを用いて説明した表示順情報キューに設定されているピクチャＩＤのうち、ＩピクチャおよびＰピクチャに対応する６つのピクチャのピクチャＩＤが設定される。
【０１２７】
ステップＳ７６において、ＣＰＵ２０は、ＩピクチャおよびＰピクチャを格納するバンク位置、および、Ｐピクチャのデコードにおける参照画像バンクを指定する。ＩピクチャおよびＰピクチャは、図２のビデオバンクメモリ８２において、８つのバンクのうち、固定の６つのバンクを使用するようになされている。
【０１２８】
ＩピクチャおよびＰピクチャ（アンカーフレームとも称する）を先にデコードし、デコード後に保持されるバンク位置を固定しておくことにより、正方向、逆方向、頭だしなどの、どのピクチャからの再生も、即時に行えるようにすることができる。また、ＩピクチャおよびＰピクチャを先にデコードしておくことにより、先にデコードする６枚のＩピクチャおよびＰピクチャの処理時間が短いほど、ユーザによる再生開始や、再生速度または再生方向の変更の指示から、指示を反映した表示開始までの時間を、表示開始フレームのＧＯＰ内の位置に関わらず短縮することや、スクラブ再生で任意のピクチャを表示する場合の表示時間を短縮することなどが可能となり、高速再生時のパフォーマンスが向上する。
【０１２９】
ステップＳ７７において、ＣＰＵ２０は、ステップＳ７６の処理により指定された、ＩピクチャおよびＰピクチャがそれぞれ格納されるバンク位置を基に、Ｂピクチャのデコードにおける参照画像バンクの位置を指定する。なお、Ｂピクチャが格納されるバンク位置は、後述するフレーム制御処理１において指定される。
【０１３０】
ステップＳ７８において、ＣＰＵ２０は、表示順設定キューを設定する。
【０１３１】
図１２に、正方向再生および逆方向再生における表示順設定キューを示す。正方向再生の場合の表示順設定キューには、図１２Ａに示されるように、図１０Ａを用いて説明した表示順情報キューにキューされている１８個のピクチャＩＤのうち、先頭の２つのＢピクチャと、最後のＩピクチャを除いた１５個のピクチャＩＤ、すなわち、図８Ａを用いて説明した正方向再生の場合にデコーダ２２乃至デコーダ２４のうちのいずれかに供給されるピクチャのうち、最後のＩピクチャを除いた１５ピクチャのピクチャＩＤが、表示される順番に設定される。
【０１３２】
そして、逆方向再生の場合の表示順設定キューには、図１２Ｂに示されるように、図１０Ｂを用いて説明した表示順情報キューにキューされている１８個のピクチャＩＤのうち、先頭の２つのＢピクチャと、最後のＩピクチャを除いた１５個のピクチャＩＤ、すなわち、図８Ｂを用いて説明した逆方向再生の場合にデコーダ２２乃至デコーダ２４のうちのいずれかに供給されるピクチャのうち、最後のＩピクチャを除いた１５ピクチャのピクチャＩＤが、実際に表示される順番に設定される。
【０１３３】
ステップＳ７８において表示順設定キューが設定されるときに、表示順情報キューにキューされているピクチャＩＤは、すべて出力され、表示順情報キューは空となる。
【０１３４】
ステップＳ７９において、図１６のフローチャートを用いて後述する表示位相決定処理が実行される。表示位相決定処理は、１ＧＯＰ相当の１５フレーム＋１フレームの処理単位におけるデコードの開始と表示の開始のタイミングのずれを決定する処理である。
【０１３５】
ステップＳ８０において、図１７のフローチャートを用いて後述する時間情報付きスケジュール決定処理が実行される。時間情報付きスケジュール決定処理は、フレームごとのデコードのタイミングを制御するために、デコードのスケジューリングを実行して、所定の情報キューに、ピクチャＩＤに対応付けて時間情報を設定する処理である。
【０１３６】
ステップＳ７９およびステップＳ８０の処理によって、デコードと表示のタイミングがスケジュールされる。具体的には、例えば、再生方向が正方向で通常速度の再生である場合など、表示の先頭がＩピクチャまたはＰピクチャである場合、図１３に示されるように、先にＩピクチャおよびＰピクチャがデコードされた後、Ｂピクチャがデコードされ、表示開始のタイミングは、デコード開始から６ピクチャ分ずれることにより、Ｂピクチャのデコードのタイミングと表示のタイミングが、１フレーム分ずれるように、デコードと表示のタイミングのスケジュールが行われる。また、再生の方向が逆方向の場合、換言すれば、スピード設定が負の値である場合など、表示の先頭がＢピクチャである場合、図１４に示されるように、先にＩピクチャおよびＰピクチャがデコードされた後、Ｂピクチャがデコードされ、表示開始のタイミングは、デコード開始から７ピクチャ分ずれることにより、Ｂピクチャのデコードのタイミングと表示のタイミングが、１フレーム分ずれるように、デコードと表示のタイミングのスケジュールが行われる。
【０１３７】
ステップＳ８１において、ＣＰＵ２０は、次にデコードされるデータを供給するデコーダの設定を切り替える処理を実行する。具体的には、ＣＰＵ２０は、次のデータを供給するデコーダを示すレジスタの値がデコーダの数（図１を用いて説明した再生装置１においては、デコーダ２２乃至デコーダ２４の３つ）より１少ない値（図１を用いて説明した再生装置１においては、２）と等しい場合、レジスタの値を０とし、レジスタの値が、デコーダの数より２以上少ない場合、レジスタの値を１インクリメントする。ステップＳ８１の処理の終了後、処理は、図４のステップＳ３２に戻り、ステップＳ３３に進む。
【０１３８】
このような処理により、デコードと表示のタイミングがスケジュールされる。
【０１３９】
次に、図１５のフローチャートを参照して、図６のステップＳ７２において実行される、入力処理について説明する。
【０１４０】
ステップＳ１０１において、ＣＰＵ２０は、図３を用いて説明した制御処理のステップＳ５においてＣＰＵ１１がコマンドバッファ３１に送信したデコード開始コマンドに含まれている表示スピード情報、または、図３を用いて説明した制御処理のステップＳ１１においてＣＰＵ１１がコマンドバッファ３１に送信したユーザの操作入力に対応するコマンドから、スピード設定値を取得し、メモリ２１に保持する。スピード設定値が正の値であるとき、再生処理は正方向再生であり、負の値であるとき、再生処理は、逆方向再生であるものとすることができる。
【０１４１】
例えば、スピード設定値が１であるとき、通常再生であるものとし、スピード設定値が１以上の値であるとき、高速再生であるものとし、スピード設定値が１未満の正の値であるとき、低速再生であるものとし、スピード設定値が−１であるとき、通常速度の逆方向再生であるものとし、スピード設定値が−１以下の値であるとき、高速の逆方向再生であるものとし、スピード設定値が絶対値１未満の負の値であるとき、低速の逆方向再生であるものとすることができる。
【０１４２】
ステップＳ１０２において、ＣＰＵ２０は、ステップＳ１０１において取得したスピード設定値が正の値であるか負の値であるかを基に、実行される処理は正方向の再生処理であるか否かを判断する。
【０１４３】
ステップＳ１０２において、正方向の再生処理であると判断された場合、ステップＳ１０３において、ＣＰＵ２０は、次にデコードする１５フレームのうちの先頭から１３フレームを含む１ＧＯＰと、その次のＧＯＰのＩ，Ｂ，ＢピクチャのピクチャＩＤを、図９Ａを用いて説明した入力ピクチャキューに設定する。
【０１４４】
ステップＳ１０２において、正方向の再生処理ではない、すなわち、逆方向の再生処理であると判断された場合、ステップＳ１０４において、ＣＰＵ２０は、次にデコードする１５フレームのうちの後ろから１３フレームを含む１ＧＯＰと、その前のＧＯＰのＩ，Ｂ，ＢピクチャのピクチャＩＤを、図９Ｂを用いて説明した入力ピクチャキューに設定する。
【０１４５】
ステップＳ１０３またはステップＳ１０４の処理の終了後、ステップＳ１０５において、ＣＰＵ２０は、ＰＣＩブリッジ１７を制御して、入力ピクチャキューの設定、および、次のデータを供給するデコーダを示すレジスタの値（再生されるストリームの最初のＧＯＰにおいては、初期設定によって定められる値であり、２番目以降のＧＯＰにおいては、図６のステップＳ８１の処理により定められる値である）に基づいて、メモリ１８に保存されているストリームデータのうち、図８を用いて説明した１６フレームの圧縮画像データの、デコーダ２２乃至デコーダ２４のうちの所定のデコーダへの転送を制御する。
【０１４６】
デコーダ２２乃至デコーダ２４の入力処理部７１は、供給された１６フレームのデータをメモリコントローラ７４に供給して、入力バッファ７５に保存させるとともに、アドレス管理テーブル７２に、ピクチャ単位の先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどの情報を供給し、それぞれ、ピクチャ別に、テーブルＩＤにより区別可能なテーブル情報として保持させる。
【０１４７】
ステップＳ１０６において、ＣＰＵ２０は、コントロールバス１９を介して、ＰＣＩブリッジ１７のリザルトバッファ３２に、デコーダ２２乃至デコーダ２４のうちの所定のデコーダへの１ＧＯＰ相当のストリームの転送処理の終了を示すリザルトを供給することにより、ＣＰＵ１１に対してストリームの転送処理の終了を通知し、処理は、図６のステップＳ７２に戻り、ステップＳ７３に進む。
【０１４８】
このような処理により、デコーダ２２乃至デコーダ２４に、図８を用いて説明したデコード処理単位となる１６フレームのデータが供給される。
【０１４９】
次に、図１６のフローチャートを参照して、図６のステップＳ７９において実行される、デコード開始タイミングに対して表示開始タイミングをディレイさせる位相を設定するための、表示位相決定処理について説明する。
【０１５０】
ステップＳ１３１において、ＣＰＵ２０は、図１２を用いて説明した表示順設定キューに設定されている、表示するピクチャの数の情報を、表示ピクチャ数レジスタに保持する。図１２においては、表示順設定キューに１５ピクチャ分のピクチャＩＤが設定されているので、表示ピクチャ数レジスタには、値１５が保存される。
【０１５１】
ステップＳ１３２において、ＣＰＵ２０は、図１１を用いて説明したＩ／Ｐピクチャデコードキューに保持されている、デコードされるＩピクチャおよびＰピクチャの総数を、Ｉ／Ｐピクチャ数レジスタに保持する。図１１においては、Ｉ／Ｐピクチャデコードキューに、６ピクチャ分のピクチャＩＤが設定されているので、Ｉ／Ｐピクチャ数レジスタには、値６が保存される。
【０１５２】
ステップＳ１３３において、ＣＰＵ２０は、表示順設定キューの先頭に設定されているピクチャＩＤに対応するピクチャのピクチャタイプはＢピクチャであるか否かを判断する。これは、通常速度再生または逆方向の通常速度再生における位相のずれ量を算出している場合、再生方向は正方向か逆方向かを判断しているのと同義である。なお、後述する間引き処理１が実行された後では、表示順設定キューの先頭に設定されているピクチャＩＤに対応するピクチャのピクチャタイプがＢピクチャであっても、その再生速度の設定値によっては、再生方向が正方向であることもあり、逆方向であることもある。
【０１５３】
ステップＳ１３３において、表示順設定キューの先頭に設定されているピクチャＩＤに対応するピクチャのピクチャタイプはＢピクチャであると判断された場合、ステップＳ１３４において、ＣＰＵ２０は、デコードされるＩピクチャおよびＰピクチャの総数に１を加えた数を、Ｉ／Ｐピクチャデコードキューに保持されているピクチャＩＤに対応するＩピクチャおよびＰピクチャのデコード開始タイミングに対する、表示順設定キューに保持されるピクチャＩＤに対応するピクチャの表示開始タイミングの時間的な位相のずれ量disp_phaseとする。
【０１５４】
例えば、上述した図１４に示されるように、再生速度が−１倍である場合、表示順設定キューの先頭に設定されているピクチャＩＤに対応するピクチャのピクチャタイプはＢピクチャであるので、先にＩピクチャおよびＰピクチャがデコードされた後、表示開始のタイミングが、デコード開始から７ピクチャ分ずらされて、Ｂピクチャのデコードのタイミングと表示のタイミングが１フレーム分ずれるように、Ｂピクチャがデコードされる。
【０１５５】
ステップＳ１３３において、表示順設定キューの先頭に設定されているピクチャＩＤに対応するピクチャのピクチャタイプはＢピクチャではないと判断された場合、ステップＳ１３５において、ＣＰＵ２０は、デコードされるＩピクチャおよびＰピクチャの総数を、Ｉ／Ｐピクチャデコードキューに保持されているピクチャＩＤに対応するＩピクチャおよびＰピクチャのデコードタイミングに対する、表示順設定キューに保持されるピクチャＩＤに対応するピクチャの表示開始タイミングの時間的な位相のずれ量disp_phaseとする。
【０１５６】
例えば、上述した図１３に示されるように、再生速度が１倍である場合、表示順設定キューの先頭に設定されているピクチャＩＤに対応するピクチャのピクチャタイプはＩピクチャであり、Ｂピクチャではないので、先にＩピクチャおよびＰピクチャがデコードされた後、表示開始のタイミングが、デコード開始から６ピクチャ分ずらされて、Ｂピクチャのデコードのタイミングと表示のタイミングが１フレーム分ずれるように、Ｂピクチャがデコードされる。
【０１５７】
ステップＳ１３４またはステップＳ１３５の処理の終了後、ステップＳ１３６において、ＣＰＵ２０は、ステップＳ１３４またはステップＳ１３５において決定された表示の位相のずれ量disp_phaseを、内部のレジスタに記憶する。
【０１５８】
ステップＳ１３７において、ＣＰＵ２０は、処理中のＧＯＰは、表示開始ＧＯＰ（再生スピードが変更されたときの、対応するスピードでの再生開始部分を含む）であるか否かを判断する。
【０１５９】
ステップＳ１３７において、処理中のＧＯＰは表示開始ＧＯＰではないと判断された場合、ステップＳ１３８において、ＣＰＵ２０は、ステップＳ１３４またはステップＳ１３５において決定された表示位相のずれ量disp_phaseから、前回の処理、すなわち、１つ前に表示されるＧＯＰにおける表示位相のずれ量prev_disp_phaseを減算し、その結果をずれ量補正値disp_zeroとして内部のレジスタに記憶するとともに、ステップＳ１３４またはステップＳ１３５において決定された表示位相のずれ量disp_phaseを１つ前に表示されるＧＯＰにおける表示位相のずれ量prev_disp_phaseに代入して、処理は、図６のステップＳ７９に戻り、ステップＳ８０に進む。
【０１６０】
ステップＳ１３７において、処理中のＧＯＰは表示開始ＧＯＰであると判断された場合、ステップＳ１３９において、ＣＰＵ２０は、ずれ量補正値disp_zeroとして、初期値０を設定して内部のレジスタに記憶し、処理は、図６のステップＳ７９に戻り、ステップＳ８０に進む。
【０１６１】
このような処理により、デコード開始タイミングに対して表示開始タイミングをディレイさせる位相が決定される。
【０１６２】
次に、図１７のフローチャートを参照して、図６のステップＳ８０において実行される、時間情報付きスケジュール決定処理について説明する。
【０１６３】
ステップＳ１６１において、ＣＰＵ２０は、処理対象は、入力ストリーム状態が変更されてから最初の１ＧＯＰ相当のデコード処理単位であるか否かを判断する。間引きの前後でピクチャタイプが変更されるのは、少なくとも２番目以降のデコード処理単位の場合であるので、ステップＳ１６１において、処理対象が、最初の１ＧＯＰ相当のデコード処理単位であると判断された場合、処理は、後述するステップＳ１６６に進む。
【０１６４】
ステップＳ１６１において、処理対象が、最初の１ＧＯＰ相当のデコード処理単位ではないと判断された場合、ステップＳ１６２において、ＣＰＵ２０は、間引きの前後で先頭ピクチャがＩピクチャまたはＰピクチャからＢピクチャに変更されているか否かを判断する。
【０１６５】
ステップＳ１６２において、間引きの前後で先頭ピクチャがＩピクチャまたはＰピクチャからＢピクチャに変更されていると判断された場合、ステップＳ１６３において、ＣＰＵ２０は、位相調整値を１とし、処理は、後述するステップＳ１６７に進む。
【０１６６】
ステップＳ１６２において、間引きの前後で先頭ピクチャがＩピクチャまたはＰピクチャからＢピクチャに変更されていないと判断された場合、ステップＳ１６４において、ＣＰＵ２０は、間引きの前後で先頭ピクチャがＢピクチャからＩまたはＰピクチャに変更されているか否かを判断する。
【０１６７】
ステップＳ１６４において、間引きの前後で先頭ピクチャがＢピクチャからＩまたはＰピクチャに変更されていると判断された場合、ステップＳ１６５において、ＣＰＵ２０は、位相調整値を−１とし、処理は、後述するステップＳ１６７に進む。
【０１６８】
ステップＳ１６１において、処理対象が、最初のデコード処理単位であると判断された場合、または、ステップＳ１６４において、間引きの前後で先頭ピクチャがＢピクチャからＩまたはＰピクチャに変更されていないと判断された場合、ステップＳ１６６において、ＣＰＵ２０は、位相調整値を０とする。
【０１６９】
ステップＳ１６３、ステップＳ１６５、または、ステップＳ１６６の処理の終了後、ステップＳ１６７において、ＣＰＵ２０は、デコーダ２２乃至デコーダ２４のうちのいずれかのデコーダにおいてデコードされるデコード処理単位の１６枚のピクチャにおいて、先頭のフレームがデコードされるタイミングを示すデコード開始時刻情報time_baseの値を、１つ前のデコード処理単位のデコード開始時刻情報であるprev_time_base、表示位相のずれ量補正値を示すdisp_zero、後述する間引き処理１において算出された時間情報調整値added_count、および、ステップＳ１６１乃至ステップＳ１６６の処理によって求められた位相調整値を用いて算出する（式（１））。
【０１７０】
デコード開始時刻情報time_base＝前ＧＯＰのデコード開始時刻情報prev_time_base−表示位相のずれ量補正値disp_zero＋時間情報調整値added_count＋位相調整値                                              ・・・（１）
【０１７１】
なお、表示開始ＧＯＰに対して、式（１）の演算処理が実行される場合、前ＧＯＰのデコード開始時刻情報を示すprev_time_base、および、前ＧＯＰの間引き処理１において算出される時間情報調整値added_countは、０として演算される。
【０１７２】
ステップＳ１６８において、ＣＰＵ２０は、次にデータが供給されるデコーダに対応する時間情報付きＩ／Ｐピクチャデコードキューを設定する。
【０１７３】
時間情報付きＩ／Ｐピクチャデコードキューは、図１１を用いて説明したＩ／Ｐピクチャデコードキューに設定されているピクチャＩＤに対応付けて、先頭にデコードされるピクチャのデコード開始時刻time_baseの情報、および、１フレームを単位とする時間カウンタのカウント値が設定されるものであり、再生装置１に備えられているデコーダごと（ここでは、デコーダ２２乃至デコーダ２４のそれぞれ）に対応して設けられている。
【０１７４】
具体的には、ＣＰＵ２０は、次のデータを供給するデコーダを示すレジスタの値を参照し、次にデータが供給されるデコーダに対応する時間情報付きＩ／Ｐピクチャデコードキューを設定する。ＣＰＵ２０は、Ｉ／ＰピクチャデコードキューにキューされているピクチャＩＤのうち、先頭のピクチャＩＤに対応するフレームがデコードされるタイミングを示す情報として、上述したデコード開始時刻情報time_baseの情報を用いるとともに、各ピクチャＩＤに対応するそれぞれのフレームがデコードされるタイミングを示す情報としては、１フレームを単位とする時間カウンタのカウント値を用いる。
【０１７５】
ステップＳ１６８において、時間情報付きＩ／Ｐピクチャデコードキューが設定されたとき、Ｉ／ＰピクチャデコードキューにキューされているピクチャＩＤはすべて出力されて、Ｉ／Ｐピクチャデコードキューは空となる。
【０１７６】
ステップＳ１６９において、ＣＰＵ２０は、次にデータが供給されるデコーダに対応する時間情報付き表示順設定キューを設定する。
【０１７７】
時間情報付き表示順設定キューは、図１２を用いて説明した表示順設定キューに設定されているピクチャＩＤに対応付けて、先頭に表示されるピクチャのデコード開始時刻に対する表示タイミングの位相のずれ量から１を減算した値、および、１フレームを単位とする時間カウンタのカウント値が設定されるものであり、再生装置１に備えられているデコーダごと（ここでは、デコーダ２２乃至デコーダ２４のそれぞれ）に対応して設けられている。
【０１７８】
具体的には、ＣＰＵ２０は、次のデータを供給するデコーダを示すレジスタの値を参照し、次にデータが供給されるデコーダに対応する時間情報付き表示順設定キューを設定する。ＣＰＵ２０は、表示順設定キューにキューされているピクチャＩＤのうち、実際の表示順において先頭となるフレームに対応するフレームの表示タイミングを示す、上述した表示位相決定処理において決定された位相のずれ量disp_phaseから１を減算した値を、Ｂピクチャのデコードタイミングにあわせた基準時刻情報として用いるとともに、各ピクチャＩＤに対応するそれぞれのフレームがデコードされるタイミングを示す情報としては、１フレームを単位とする時間カウンタのカウント値を用いる。
【０１７９】
ステップＳ１６９において時間情報付き表示順設定キューが設定されたとき、表示順設定キューにキューされているピクチャＩＤはすべて出力されて、表示順設定キューは空となる。
【０１８０】
ステップＳ１７０において、ＣＰＵ２０は、デコード開始時刻情報time_baseに、上述した図１６のステップＳ１３１において表示ピクチャ数レジスタに保持された値を加えた値を、前のＧＯＰのデコード開始時刻情報prev_time_baseとして、レジスタに保存し、処理は、図６のステップＳ８０に戻り、ステップＳ８１に進む。
【０１８１】
このような処理により、デコードの処理単位となる１６フレーム分のデコード処理タイミングが設定される。
【０１８２】
図１６および図１７を用いて説明した処理により、デコードの位相と表示の位相が、ＩピクチャおよびＰピクチャの枚数、表示する枚数、先頭に表示するピクチャがＢピクチャであるか否かなどを基に決定されて、時間情報として設定される。これにより、複数のデコーダを用いて正逆方向の高速再生を行うときに発生する、それぞれのデコーダにおいてデコードされたり出力されて表示されるピクチャの枚数の変化に追従して、動的にスピードを変更して、連続的にデコード済みの画像を表示させることが可能となる。更に、再生スピードの変更が指令されて、任意の位置のピクチャから間引き間隔の変更が行なわれた場合でも、表示する数の増減を反映することで、対応しているスピード範囲において、再生スピードをフレーム単位で変更させて、連続的にスピードを変更させることが可能となる。
【０１８３】
図６乃至図１７を用いて説明した処理により、図４のステップＳ３２においてデコードスケジュール処理１が実行される。
【０１８４】
そして、図４のステップＳ３３において、最初のフレームから６フレーム目までのいずれかのフレームであるか否かが判断され、最初のフレームから６フレーム目までのいずれかのフレームであると判断された場合、ステップＳ３４の１フレームディレイ表示設定処理はスキップされ、ステップＳ３５において、フレーム制御処理１が実行される。
【０１８５】
次に、図１８のフローチャートを参照して、図４のステップＳ３５において実行される、フレーム制御処理１について説明する。
【０１８６】
ステップＳ１９１において、ＣＰＵ２０は、再生装置１内で実行される各処理のタイミングを管理するためのカウンタである時間管理カウンタと、時間情報付きＩ／Ｐピクチャデコードキューを参照し、表示時刻が過ぎてしまったストリームデータがあるか否かを判断する。ステップＳ１９１において、表示時刻が過ぎてしまったストリームデータがあると判断された場合、処理は、後述するステップＳ１９７に進む。
【０１８７】
ステップＳ１９１において、表示時刻が過ぎてしまったストリームデータがないと判断された場合、ステップＳ１９２において、図１９を用いて後述するＩピクチャおよびＰピクチャデコード処理が実行される。
【０１８８】
ステップＳ１９３において、図２０を用いて後述するＢピクチャデコード処理が実行される。
【０１８９】
ステップＳ１９４において、ＣＰＵ２０は、ＣＰＵ１１に、表示ピクチャ情報を通知する。具体的には、ＣＰＵ２０は、コントロールバス１９を介して、ＰＣＩブリッジ１７のリザルトバッファ３２に、図３のステップＳ６において、ＣＰＵ１１から送信された表示開始コマンドに対するリザルトとして表示ピクチャ情報を書き込むことにより、ＣＰＵ１１に対して、表示ピクチャ情報を通知する。ＣＰＵ１１は、ＰＣＩブリッジ１７のリザルトバッファ３２に書き込まれる表示ピクチャ情報を参照することにより、表示されるピクチャがいずれのＧＯＰのいずれのピクチャであるかを知ることができる。
【０１９０】
ステップＳ１９５において、ＣＰＵ２０は、時間管理カウンタをインクリメントする。
【０１９１】
ステップＳ１９６において、図２３を用いて後述する間引き処理１が実行されて、処理は、図４のステップＳ３５に戻り、ステップＳ３６に進む。
【０１９２】
ステップＳ１９１において、表示時刻が過ぎてしまったストリームデータがあると判断された場合、ステップＳ１９７において、図３５を用いて後述するアンダーフロー処理が実行されて、処理は、図４のステップＳ３５に戻り、ステップＳ３６に進む。
【０１９３】
このような処理により、表示が遅れていなければ、設定されたデコードスケジュールに基づいて、１フレーム分のデコードが実行されて、表示ピクチャ情報が、ＣＰＵ１１に通知され、間引き処理１が実行される。そして、表示が遅れているとき、後述するアンダーフロー処理が実行される。
【０１９４】
次に、図１９のフローチャートを参照して、図１８のステップＳ１９２において実行されるＩピクチャおよびＰピクチャデコード処理について説明する。
【０１９５】
ステップＳ２２１において、ＣＰＵ２０は、時間管理カウンタの値と、時間情報付きＩ／Ｐピクチャデコードキューに設定された、次にデコードされるピクチャのピクチャＩＤに対応付けられている時間情報とが一致したか否かを判断する。ステップＳ２２１において、時間管理カウンタの値は、時間情報付きＩ／Ｐピクチャデコードキューに設定された時間情報と一致していないと判断された場合、処理は、図１８のステップＳ１９２に戻り、ステップＳ１９３に進む。
【０１９６】
ステップＳ２２１において、時間管理カウンタの値と、時間情報付きＩ／Ｐピクチャデコードキューに設定された時間情報とが一致したと判断された場合、ステップＳ２２２において、ＣＰＵ２０は、デコードを実行するデコーダとして設定されているデコーダ２２乃至デコーダ２４のうちのいずれかを、コントロールバス１９を介して制御し、Ｉピクチャ、または、Ｐピクチャをデコードさせ、時間情報付きＩ／Ｐピクチャデコードキューから、デコードコマンドが実行されたピクチャに対応するピクチャＩＤを削除する。
【０１９７】
具体的には、ＣＰＵ２０は、次のデータを供給するデコーダを示すレジスタに保持されている値を参照し、デコーダ２２乃至デコーダ２４のうちデコードを実行するデコーダとして設定されているもののエレメンタリストリームアドレス決定部７３を制御して、時間情報付きＩ／Ｐピクチャデコードキューに設定されたピクチャＩＤに対応するピクチャのデータを、メモリコントローラ７４により、入力バッファ７５から読み出させて、デコード処理部７７に供給させる。
【０１９８】
デコードされるピクチャがＩピクチャである場合、ＣＰＵ２０は、デコード処理部７７を制御して、メモリコントローラ７４から供給されたＩピクチャをデコードさせるとともに、書き込み画アドレス決定部７８を制御して、デコードされたフレームデータをメモリコントローラ８１に供給させて、ビデオバンクメモリ８２のうち、図６のステップＳ７６においてＩピクチャの格納用に指定されたバンクに保存させる。また、デコードされるピクチャがＰピクチャである場合、ＣＰＵ２０は、参照画アドレス決定部７９を制御して、図６のステップＳ７６において設定されたＰピクチャの参照バンク位置を基に、メモリコントローラ８１により、ビデオバンクメモリ８２に格納されている参照画を読み出させて、デコード処理部７７に供給させ、デコード処理部７７を制御して、メモリコントローラ７４から供給されたＰピクチャをデコードさせるとともに、書き込み画アドレス決定部７８を制御して、デコードされたフレームデータをメモリコントローラ８１に供給させて、ビデオバンクメモリ８２のうち、図６のステップＳ７６においてＰピクチャの格納用に指定されたバンクに保存させる。
【０１９９】
ステップＳ２２２の処理の終了後、処理は、図１８のステップＳ１９２に戻り、ステップＳ１９３に進む。
【０２００】
このような処理により、設定されたスケジュールに基づいて、Ｉピクチャ、または、Ｐピクチャがデコードされる。
【０２０１】
次に、図２０のフローチャートを参照して、図１８のステップＳ１９３において実行されるＢピクチャデコード処理について説明する。
【０２０２】
ステップＳ２４１において、ＣＰＵ２０は、時間管理カウンタの設定と、時間情報付き表示順設定キューに設定された現在の先頭のピクチャＩＤに対応する時間情報が一致したか否かを判断する。時間情報付き表示順設定キューに設定された時間情報とは、スケジュール時の１５フレームのうち、実際の表示順において先頭となるフレームに対応するフレームの表示タイミングを示す、上述した表示位相決定処理において決定された位相のずれ量disp_phaseから１を減算した値（Ｂピクチャのデコードタイミングにあわせた基準時刻情報）、または、１５フレームのうち、実際の表示順において先頭となるフレーム以外の各ピクチャＩＤに対応する、１フレームを単位とする時間カウンタのカウント値である。ステップＳ２４１において、時間管理カウンタの設定は、時間情報付き表示順設定キューに設定された時間情報と一致しないと判断された場合、処理は、図１８のステップＳ１９３に戻り、ステップＳ１９４に進む。
【０２０３】
ステップＳ２４１において、時間管理カウンタの設定は、時間情報付き表示順設定キューに設定された時間情報と一致すると判断された場合、ステップＳ２４２において、ＣＰＵ２０は、時間情報と一致すると判断されたのは、Ｂピクチャに対応するピクチャＩＤであるか否かを判断する。
【０２０４】
ステップＳ２４２において、時間情報と一致すると判断されたのは、Ｂピクチャに対応するピクチャＩＤであると判断された場合、ステップＳ２４３において、ＣＰＵ２０は、デコードを実行するデコーダとして設定されているデコーダ２２乃至デコーダ２４のうちのいずれかを、コントロールバス１９を介して制御し、このピクチャＩＤで示されるＢピクチャをデコードさせる。
【０２０５】
具体的には、ＣＰＵ２０は、次のデータを供給するデコーダを示すレジスタに保持されている値を参照し、デコーダ２２乃至デコーダ２４のうちデコードを実行するデコーダとして設定されているもののエレメンタリストリームアドレス決定部７３を制御して、時間情報付き表示順設定キューに設定されたピクチャＩＤに対応するピクチャのデータを、メモリコントローラ７４により、入力バッファ７５から読み出させて、デコード処理部７７に供給させる。そして、ＣＰＵ２０は、参照画アドレス決定部７９を制御して、図６のステップＳ７７において設定されたＢピクチャの参照バンク位置を基に、メモリコントローラ８１により、ビデオバンクメモリ８２に格納されている参照画を読み出させて、デコード処理部７７に供給させ、デコード処理部７７を制御して、メモリコントローラ７４から供給されたＢピクチャをデコードさせる。
【０２０６】
ステップＳ２４４において、ＣＰＵ２０は、Ｂピクチャを格納するバンク位置を設定する。すなわち、ＣＰＵ２０は、ビデオバンクメモリ８２のうち、ＩピクチャまたはＰピクチャの格納用に指定されていない２つのバンクに対してＢピクチャが交互に格納されるように、書き込み画アドレス決定部７８を制御する。ＣＰＵ２０は、書き込み画アドレス決定部７８を制御して、デコード処理部７７によりデコードされたフレームデータをメモリコントローラ８１に供給させて、ビデオバンクメモリ８２の設定されたバンク位置にデコードされたフレームデータを記憶させる。
【０２０７】
ステップＳ２４２において、時間情報と一致すると判断されたのは、Ｂピクチャに対応するピクチャＩＤではないと判断された場合、または、ステップＳ２４４の処理の終了後、ステップＳ２４５において、ＣＰＵ２０は、時間情報付き表示順設定キューに設定された現在の先頭のピクチャＩＤを、表示キューに設定する。表示キューは、１つのピクチャＩＤのみが保持される深さ１のキューである。
【０２０８】
具体的には、ＣＰＵ２０は、ステップＳ２４２において、時間情報と一致すると判断されたのは、Ｂピクチャに対応するピクチャＩＤではないと判断された場合、上述した図１９のステップＳ２２２において、時間情報付き表示順設定キューに設定された現在の先頭のピクチャＩＤに対応するＩピクチャまたはＰピクチャのデコードが制御されているので、ＣＰＵ２０は、そのＩピクチャまたはＰピクチャに対応するピクチャＩＤを表示キューに設定する。また、ステップＳ２４２において、時間情報と一致すると判断されたのは、Ｂピクチャに対応するピクチャＩＤであると判断されて、ステップＳ２４３においてＢピクチャのデコードが制御された場合、ＣＰＵ２０は、時間情報付き表示順設定キューに設定された現在の先頭のピクチャＩＤ、すなわち、デコードされたＢピクチャに対応するピクチャＩＤを、表示キューに設定する。
【０２０９】
そして、時間情報付き表示順設定キューに設定された現在の先頭のピクチャＩＤは、時間情報付き表示順設定キューから出力され、表示キューに設定されたピクチャＩＤに対応するピクチャの次に表示されるピクチャに対応するピクチャＩＤが、時間情報付き表示順設定キューの先頭となるか、または、時間情報付き表示設定キューが空となる。ステップＳ２４５の処理の終了後、処理は、図１８のステップＳ１９３に戻り、ステップＳ１９４に進む。
【０２１０】
このようにして、時間情報付きＩ／Ｐピクチャデコードキューおよび時間情報付き表示順設定キューに設定されている時間情報を基に、デコードが実行される。正方向再生の場合は、図２１に示されるように、時間情報付きＩ／Ｐピクチャデコードキューに設定されている時間情報を基に、ＩピクチャおよびＰピクチャがデコードされ、時間情報付き表示順設定キューに設定されている時間情報を基に、Ｂピクチャがデコードされる。また、逆方向再生の場合は、図２２に示されるように、時間情報付きＩ／Ｐピクチャデコードキューに設定されている時間情報を基に、ＩピクチャおよびＰピクチャがデコードされ、時間情報付き表示順設定キューに設定されている時間情報を基に、Ｂピクチャがデコードされる。
【０２１１】
また、Ｂピクチャのデコードのタイミングは、図２１および図２２に示されるように、正方向再生、逆方向再生のいずれの場合であっても、後述する１フレームディレイ表示設定処理により、Ｂピクチャのデコードのタイミングが表示されるタイミングと１フレームずれるようになされている。
【０２１２】
なお、図２１および図２２においては、１倍速およびー１倍速における場合のデコードタイミングと表示タイミングについてそれぞれ図示されているが、高速再生が実行される場合、後述する間引き処理１により、時間情報付き表示順設定キューの設定が変更されて、次の処理ルーチンにおいて、間引き処理１後の時間情報付き表示順設定キューの設定を基に、デコードが実行されるようになされている。高速再生が実行される場合、Ｂピクチャはすべてデコードされるのではなく、間引かれてデコードされるが、ＩピクチャおよびＰピクチャのデコードは、高速再生が実行される場合も、同様に全ピクチャにおいて実行される。
【０２１３】
次に、図２３のフローチャートを参照して、図１８のステップＳ１９５において実行される、間引き処理１について説明する。
【０２１４】
ステップＳ２７１において、ＣＰＵ２０は、図５を用いて説明した入力ストリーム状態変更処理において設定されたストリーム入力状態を基に、ユーザの設定に基づいた再生速度は、正方向、または、逆方向の高速再生であるか否かを判断する。ステップＳ２７１において、高速再生ではないと判断された場合、処理は、図１８のステップＳ１９６に戻り、図４のステップＳ３６に進む。
【０２１５】
ステップＳ２７１において、高速再生であると判断された場合、ステップＳ２７２において、ＣＰＵ２０は、処理中のフレームは、スピード設定が変更された後の最初のＧＯＰの最初のフレームであるか否かを判断する。
【０２１６】
ステップＳ２７２において、処理中のフレームは、入力ストリーム状態が変更された後の最初のＧＯＰの最初のフレームであると判断された場合、ステップＳ２７３において、ＣＰＵ２０は、スピード設定値を基に、間引き周期を決定して、レジスタに保存する。
【０２１７】
具体的には、ＣＰＵ２０は、例えば、２倍速または−２倍速で再生が行われる場合、間引き周期を１／２としてレジスタに保存し、３倍速または−３倍速で再生が行われる場合、間引き周期を１／３としてレジスタに保存する。
【０２１８】
ステップＳ２７４において、ＣＰＵ２０は、間引き処理１においてデコード処理単位にかかわらずフレームの数をカウントするフレームカウンタをリセットする。
【０２１９】
ステップＳ２７２において、処理中のフレームは、入力ストリーム状態が変更された後の最初のＧＯＰの最初のフレームではないと判断された場合、または、ステップＳ２７４の処理の終了後、ステップＳ２７５において、ＣＰＵ２０は、時間情報付き表示順設定キューに保持されているピクチャＩＤに対応付けられて、確認済みフラグが設定されているか否かを基に、時間情報付き表示順設定キューはすべて確認済みであるか否かを判断する。確認済みフラグは、後述するステップＳ２８０の処理により、時間情報付き表示順設定キューに設定されるフラグである。ステップＳ２７５において、時間情報付き表示順設定キューはすべて確認済みであると判断された場合、処理は、図１８のステップＳ１９６に戻り、図４のステップＳ３６に進む。
【０２２０】
ステップＳ２７５において、時間情報付き表示順設定キューはすべて確認済みではない、換言すれば、時間情報付き表示順設定キューに確認済みフラグが設定されていないピクチャＩＤが残っていると判断された場合、ステップＳ２７６において、ＣＰＵ２０は、フレームカウンタを１インクリメントする。
【０２２１】
ステップＳ２７７において、ＣＰＵ２０は、間引き周期の決定の結果、レジスタに保持されている間引き周期と、フレームカウンタの値を参照し、フレームカウンタに示されるフレームは表示されるか否かを判断する。具体的には、ＣＰＵ２０は、間引き周期が１／２である場合、フレーム数をカウントするフレームカウンタの値が２ｎ（ｎは正の整数）であれば、表示を行い、それ以外の場合は、表示を行わないようにしたり、間引き周期が１／３である場合、フレーム数をカウントするフレームカウンタの値が３ｎ（ｎは正の整数）であれば、表示を行い、それ以外の場合は、表示を行わないようにする。ステップＳ２７７において、表示が行われると判断された場合、すなわち、間引かれないフレームであると判断された場合、処理は、後述するステップＳ２８０に進む。
【０２２２】
ステップＳ２７７において、表示されないと判断された場合、すなわち、間引かれるフレームであると判断された場合、ステップＳ２７８において、ＣＰＵ２０は、処理対象のフレームに対応するピクチャＩＤを、時間情報付き表示順設定キューから削除するか、または、時間情報付き表示順設定キューの対応するピクチャＩＤに対して、非表示であることを示すフラグを対応付ける。
【０２２３】
ステップＳ２７９において、図２４を用いて説明する、時間情報再設定処理が実行される。
【０２２４】
ステップＳ２７７において、フレームカウンタに示されるフレームの表示が行われると判断された場合、または、ステップＳ２７９の処理の終了後、ステップＳ２８０において、ＣＰＵ２０は、時間情報付き表示順設定キューのフレームカウンタに示されるフレームに対応するピクチャＩＤに対応付けて確認済みフラグを設定し、処理は、ステップＳ２７５に戻り、それ以降の処理が繰り返される。
【０２２５】
このような処理により、表示されないフレームのピクチャＩＤが、時間情報付き表示順設定キューから削除されるか、または、時間情報付き表示順設定キューの対応するピクチャＩＤに対して、非表示であることを示すフラグが対応付けられる。Ｂピクチャのデコード処理と、１フレームディレイ表示設定処理（後述）は、時間情報付き表示順設定キューを参照して実行される。高速再生の設定に基づいて、時間情報付き表示順設定キューの設定が更新されるため、この処理ルーチン以降にデコードされるＢピクチャは、表示されるもののみとなり（間引かれるＢピクチャは、デコード処理部７７に供給されない）、間引かれるＩピクチャまたはＰピクチャは、デコードはされるが、表示されないようになされる。
【０２２６】
また、フレームカウンタは、スピード設定が変更されるまで、すなわち、入力ストリーム状態が変更されるまで、ＧＯＰにかかわらず、リセットされずに連続してインクリメントされるので、例えば、１ＧＯＰが１５フレームで構成されている場合の２倍速、４倍速、または、−２倍速、−４倍速など、間引き周期の分母が１ＧＯＰを構成するフレームの数を割り切ることができない値となってしまうため、ＧＯＰによって、表示されないピクチャの位置が変更される場合であっても、入力ストリームにおけるフレームの順番を示すフレームカウンタの値を用いて、間引き周期を基に、表示が行われるか否かを容易に決定することができる。
【０２２７】
このようにして、Ｂピクチャはデコーダへのストリーム入力で間引き、ＩピクチャおよびＰピクチャはデコード後の表示を止めることで、等間隔で間引きが施され、スピードの動的な変更に追従可能なように高速再生を行うことが可能となる。ＩピクチャおよびＰピクチャは、デコード時に他のピクチャからの参照画像として用いられる場合があるので、この方法は、できるだけバンクメモリの面数を少なくして等間隔で間引きを施して高速再生を実行するために、有効な方法である。
【０２２８】
これにより、等間隔の間引きを行いつつ、デコーダを２つ用いる場合には、−３倍乃至３倍の範囲で速度設定が可能となり、デコーダを３つ用いる場合には、−６倍乃至６倍の範囲で速度設定が可能となり、更に、２個以上のデコーダにおいて、同様の間引き処理１の制御を適用して、高速再生を実現することができる。
【０２２９】
次に、図２４のフローチャートを参照して、図２３のステップＳ２７９において実行される時間情報再設定処理について説明する。
【０２３０】
ステップＳ３０１において、ＣＰＵ２０は、スピード設定値の変更により発生した間引き処理１によるピクチャの変更数（削除数または追加数）を検出する。
【０２３１】
ステップＳ３０２において、ＣＰＵ２０は、ピクチャの変更数（削除数または追加数）を、時間情報調整値added_countとする。
【０２３２】
ステップＳ３０３において、ＣＰＵ２０は、時間情報付き表示順設定キューの時間情報を、連続となるように再設定し、処理は、図２３のステップＳ２７９に戻り、ステップＳ２８０に進む。
【０２３３】
このような処理により、再生速度の設定値に対応して、間引き後の時間情報付き表示順設定キューの設定が変更され、これ以降の処理ルーチンにおいては、変更された時間情報付き表示順設定キューを基に、Ｂピクチャのデコードタイミングとすべてのフレームの表示設定が制御される。
【０２３４】
間引き処理１における時間情報付き表示順設定キューの設定について、図２５乃至図３０を用いて説明する。図２５乃至図３０においては、上部に、間引き前のスケジューリングの状態が、間引きされるフレームを点線で記載することによって示されており、その下部に、間引き処理１後のスケジューリングの状態が示されている。また、図２５乃至図３０において、カッコ内の数字の０，１，２は、デコーダ２２乃至デコーダ２４のうちのいずれかに対応してそれぞれ設定されている情報キューに蓄積される情報、または、デコーダ２２乃至デコーダ２４のうちのいずれかにおいてそれぞれ実行される処理であることを示すものである。
【０２３５】
例えば、＋２倍速の高速再生における場合、図２５に示されるように、間引き前後におけるデコード単位内の表示ピクチャ数の変更は−７であり、時間情報調整値added_countは、−７となる。そして、次のデコード単位の先頭のピクチャのピクチャタイプがIピクチャから変更されてＢピクチャとなるので、位相調整値は−１となるため、time_baseの調整量は、表示位相のずれ量補正値disp_zeroが０であるとき、−８となる。そして、２つ目のＧＯＰの表示開始タイミングは、先頭がＢピクチャであることからＩピクチャのデコード開始タイミングより７フレーム分遅れる。
【０２３６】
また、例えば、−２倍速の高速再生における場合、図２６に示されるように、間引き前後におけるデコード単位内の表示ピクチャ数の変更は−７であり、時間情報調整値added_countは、−７となる。そして、次のデコード単位の先頭のピクチャのピクチャタイプは、Ｂピクチャのまま変更されないので、位相調整値は０となるため、time_baseの調整量は、表示位相のずれ量補正値disp_zeroが０であるとき、−７となる。そして、２つ目のＧＯＰの表示開始タイミングは、先頭がＢピクチャであることからＩピクチャのデコード開始タイミングより７フレーム分遅れる。
【０２３７】
例えば、＋４倍速の高速再生における場合、図２７に示されるように、間引き前後におけるデコード単位内の表示ピクチャ数の変更は−１１であり、時間情報調整値added_countは、−１１となる。そして、次のデコード単位の先頭のピクチャのピクチャタイプがＩピクチャから変更されてＢピクチャとなるので、位相調整値は−１となるため、time_baseの調整量は、表示位相のずれ量補正値disp_zeroが０であるとき、−１２となる。そして、２つ目のＧＯＰの表示開始タイミングは、先頭がＢピクチャであることからＩピクチャのデコード開始タイミングより７フレーム分遅れる。
【０２３８】
例えば、−４倍速の高速再生における場合、図２８に示されるように、間引き前後におけるデコード単位内の表示ピクチャ数の変更は−１１であり、時間情報調整値added_countは、−１１となる。そして、次のデコード単位の先頭のピクチャのピクチャタイプは、Ｂピクチャのまま変更されないので、位相調整値は０となるため、time_baseの調整量は、表示位相のずれ量補正値disp_zeroが０であるとき、−１１となる。そして、２つ目のＧＯＰの表示開始タイミングは、先頭がＢピクチャであることからＩピクチャのデコード開始タイミングより７フレーム分遅れる。
【０２３９】
例えば、＋５倍速の高速再生における場合、図２９に示されるように、間引き前後におけるデコード単位内の表示ピクチャ数の変更は−１２であり、時間情報調整値added_countは、−１２となる。そして、次のデコード単位の先頭のピクチャのピクチャタイプは、Ｉピクチャのまま変更されないので、位相調整値は０となるため、time_baseの調整量は、表示位相のずれ量補正値disp_zeroが０であるとき、−１２となる。そして、２つ目のＧＯＰの表示開始タイミングは、先頭がＩピクチャであることからＩピクチャのデコード開始タイミングより６フレーム分遅れる。
【０２４０】
例えば、−５倍速の高速再生における場合、図３０に示されるように、間引き前後におけるデコード単位内の表示ピクチャ数の変更は−１２であり、時間情報調整値added_countは、−１２となる。そして、次のデコード単位の先頭のピクチャのピクチャタイプは、Ｂピクチャのまま変更されないので、位相調整値は０となるため、time_baseの調整量は、表示位相のずれ量補正値disp_zeroが０であるとき、−１２となる。そして、２つ目のＧＯＰの表示開始タイミングは、先頭がＢピクチャであることからＩピクチャのデコード開始タイミングより７フレーム分遅れる。
【０２４１】
そして、図２５乃至図３０に示されるように、次に繰り返して実行される、図１７を用いて説明した時間情報付きスケジュール決定処理のステップＳ１６７において、デコード開始時刻情報time_baseが、上述した式（１）を基に算出される。そして、図２５乃至図３０に示されるように、算出されたデコード開始時刻情報time_baseを基に、時間情報付きＩ／Ｐピクチャデコードキューに設定されたピクチャＩＤに対応するＩピクチャおよびＰピクチャのデコード開始タイミングが決定され、算出されたデコード開始時刻情報time_baseと、表示されないフレームが削除された時刻情報付き表示順設定キューを基に、間引き処理１後のＢピクチャのデコードおよび表示のスケジュールが決定される。
【０２４２】
例えば、Ｎ＝１５，Ｍ＝３のLONG GOPのＭＰＥＧストリームを再生装置１でデコードする場合、図２のビデオバンクメモリ８２の８つのバンクのうちのバンクＮｏ．０乃至５の６つのバンクに、固定的に、Ｉ,Ｐ，Ｐ，Ｐ，Ｐ，Ｉのアンカーフレームが格納され、Ｂピクチャが、表示の１フレーム前にデコードされるように、残りのバンクＮｏ．６および７に交互に格納されるようにすることで、ビデオバンクメモリ８２に備えられているバンクが８面のみであっても、正方向、逆方向で、デコーダの数（本実施例の再生装置１では３つ）に対応して定められるスピード範囲内の表示を実行させることが可能である。
【０２４３】
図３１乃至図３４を用いて、図２のビデオバンクメモリ８２の設定について説明する。
【０２４４】
図３１は、１倍速再生時に各ピクチャが図２のビデオバンクメモリ８２の８つのバンクに格納される状態を表す図である。
【０２４５】
バンクＮｏ．０乃至５は、ＩピクチャおよびＰピクチャに占有され、デコード済みのＩピクチャおよびＰピクチャが、デコード順に格納されるようになされている。そして、最初のＩ２ピクチャの表示タイミングと同時に、バンクＮｏ．６にＢ３ピクチャが格納され、Ｂ３ピクチャが表示されるタイミングと同時に、バンクＮｏ．７にＢ４ピクチャが格納され、Ｂ３ピクチャが表示されるタイミングには、表示が終了されたＢ３ピクチャが格納されていたバンクＮｏ．６と、参照画像としての利用が終了したＩ２ピクチャが格納されていたバンクＮｏ．０とが開放される。その後、バンクＮｏ．６および７には、Ｂピクチャが、Ｂピクチャの表示タイミングがデコードタイミングに対して１フレーム遅れるように交互に格納され、表示後に開放される。また、バンクＮｏ．１乃至５は、格納されていたＰピクチャの参照画像としての利用が終了した時点で開放される。すなわち、バンクＮｏ．０乃至５は、ピクチャの表示によって開放されるのではなく、格納されていたＩピクチャまたはＰピクチャの参照画像としての利用とピクチャの表示とがいずれも終了した時点で開放される。
【０２４６】
図３２は、２倍速再生時に各ピクチャが図２のビデオバンクメモリ８２の８つのバンクに格納される状態を表す図である。
【０２４７】
バンクＮｏ．０乃至５は、ＩピクチャおよびＰピクチャに占有され、デコード済みのＩピクチャおよびＰピクチャが、デコード順に格納されるようになされている。そして、最初のＩ２ピクチャの表示タイミングと同時に、バンクＮｏ．６にＢ４ピクチャが格納され、Ｂ４ピクチャが表示されるタイミングと同時に、バンクＮｏ．７にＢ６ピクチャが格納され、Ｂ６ピクチャが表示されるタイミングには、表示が終了されたＢ４ピクチャが格納されていたバンクＮｏ．６と、参照画像としての利用が終了したＩ２ピクチャが格納されていたバンクＮｏ．０とが開放される。その後、バンクＮｏ．６および７には、間引かれていないＢピクチャが、Ｂピクチャの表示タイミングがデコードタイミングに対して１フレーム遅れるように交互に格納され、表示後に開放される。また、バンクＮｏ．０乃至５は、ピクチャの表示によって開放されるのではなく、格納されていたＩピクチャまたはＰピクチャの参照画像としての利用とピクチャの表示とがいずれも終了した時点で開放されるので、バンクＮｏ．１乃至５は、格納されていたＰピクチャの参照画像としての利用とピクチャの表示とがいずれも終了した時点で開放される。
【０２４８】
図３３は、−１倍速再生時に各ピクチャが図２のビデオバンクメモリ８２の８つのバンクに格納される状態を表す図である。
【０２４９】
バンクＮｏ．０乃至５は、ＩピクチャおよびＰピクチャに占有され、デコード済みのＩピクチャおよびＰピクチャが、デコード順に格納されるようになされている。そして、バンクＮｏ．５にＩ２ピクチャが格納された次のタイミングで、バンクＮｏ．６にＢ１ピクチャが格納され、Ｂ１ピクチャが表示されるタイミングと同時に、バンクＮｏ．７にＢ０ピクチャが格納され、Ｂ１ピクチャが表示されるタイミングには、表示が終了されたＢ１ピクチャが格納されていたバンクＮｏ．６が開放される。その後、バンクＮｏ．６および７には、Ｂピクチャが、Ｂピクチャの表示タイミングがデコードタイミングに対して１フレーム遅れるように、交互に格納され、表示後に開放される。バンクＮｏ．０乃至５は、ピクチャの表示か、格納されていたＩピクチャまたはＰピクチャの参照画像としての利用が終了した時点のうちのいずれか遅いタイミングで開放される。すなわち、図３３における場合は、逆方向再生であるので、最初にバンクＮｏ．０に格納されたＩ２ピクチャは、最後に表示されるため、このＧＯＰの表示が終了するまで開放されない。
【０２５０】
図３４は、−２倍速再生時に各ピクチャが図２のビデオバンクメモリ８２の８つのバンクに格納される状態を表す図である。
【０２５１】
バンクＮｏ．０乃至５は、ＩピクチャおよびＰピクチャに占有され、デコード済みのＩピクチャおよびＰピクチャが、デコード順に格納されるようになされている。そして、バンクＮｏ．５にＩ２ピクチャが格納された次のタイミングで、バンクＮｏ．６にＢ１ピクチャが格納され、Ｂ１ピクチャが表示されるタイミングの次のタイミングで、バンクＮｏ．７にＢ１２ピクチャが格納され、表示が終了されたＢ１ピクチャが格納されていたバンクＮｏ．６が開放される。その後、バンクＮｏ．６および７には、間引かれていないＢピクチャが、Ｂピクチャの表示タイミングがデコードタイミングに対して１フレーム遅れるように交互に格納され、表示後に開放される。バンクＮｏ．０乃至５は、ピクチャの表示か、格納されていたＩピクチャまたはＰピクチャの参照画像としての利用が終了した時点のうちのいずれか遅いタイミングで開放される。すなわち、図３４における場合も、逆方向再生であるので、最初にバンクＮｏ．０に格納されたＩ２ピクチャは、最後に表示されるため、このＧＯＰの表示が終了するまで開放されない。
【０２５２】
このように、ＭＰＥＧなどに代表される画像圧縮方式で一般的な双方向のフレーム間予測を用いて圧縮した映像データを逆転再生、高速再生するような場合において、ＩピクチャおよびＰピクチャを先にデコードし、Ｂピクチャのデコードを表示の１フレーム前のタイミングとなるようにスケジュールすることにより、ＩピクチャおよびＰピクチャを、フレームを保持しておくバンクの固定位置に格納し、複雑なバンク面制御を行うことなく、バンクの面数をできるだけ少なくして、効率よく逆方向再生、逆方向高速再生を実現することができる。
【０２５３】
具体的には、フレームを保持しておくバンクの数が、デコードの処理単位に含まれるＩピクチャおよびＰピクチャの数と、Ｂピクチャ格納分の２面との合計数であれば、アンカーフレームであるＩピクチャおよびＰピクチャを、バンクの固定位置に格納して、複雑なバンク面制御を行わずに、高速再生、逆方向再生を実現することができる。
【０２５４】
例えば、本実施例のように、Ｎ＝１５，Ｍ＝３の、MPEG LONG GOPストリームでは、Ｉ，Ｐ，Ｐ，Ｐ，Ｐピクチャの５面＋次のＩピクチャの１面＋Ｂピクチャの２面の合計で、８面のビデオバンクメモリを用意することにより、ＩピクチャおよびＰピクチャを、バンクの固定位置に格納して、複雑なバンク面制御を行わずに、高速再生、逆方向再生、逆方向高速再生を実現することができる。
【０２５５】
また、ユーザからの操作によるスピード変更レスポンスを向上するために、フレーム単位でスピードを変更する目的で、Ｂピクチャのデコードおよび、表示を止める処理を行おうとしたとき、Ｂピクチャのデコードと、表示のタイミングの制御を別に管理しているにもかかわらず、バンクを管理するための処理が煩雑となることを防いで、バンク管理をシンプルにすることができ、例えば、入力ストリームの過渡状態で不正な参照処理などが行われたとしても容易に復帰することができ（後述するアンダーフロー処理）、スピード変更をフレーム単位に行うことができる。
【０２５６】
次に、図３５のフローチャートを参照して、図１８のステップＳ１９７において実行されるアンダーフロー処理について説明する。
【０２５７】
ステップＳ３６１において、ＣＰＵ２０は、時間管理カウンタおよび時間カウンタを参照し、表示処理に対してストリームデータの供給が間に合っていない状態、すなわち、アンダーフローが発生したか否かを判断する。ステップＳ３６１において、アンダーフローが発生していないと判断された場合、処理は、図１８のステップＳ１９７に戻り、図４のステップＳ３６に進む。
【０２５８】
ステップＳ３６１において、アンダーフローが発生していると判断された場合、ステップＳ３６２において、ＣＰＵ２０は、時間を示すカウンタである時間カウンタの値を、時間情報付きＩ／Ｐピクチャデコードキューの先頭の時刻にあわせて修正し、処理は、図１８のステップＳ１９７に戻り、図４のステップＳ３６に進む。
【０２５９】
図３６および図３７を用いて、アンダーフロー発生時の時間カウンタの値の補正について説明する。なお、図３６および図３７において、カッコ内の数字の０，１，２は、デコーダ２２乃至デコーダ２４のうちのいずれかに対応してそれぞれ設定されている情報キューに蓄積される情報、または、デコーダ２２乃至デコーダ２４のうちのいずれかにおいてそれぞれ実行される処理であることを示すものである。
【０２６０】
図３６には、図２９を用いて説明した場合と同様に、−５倍速再生でアンダーフローが発生していない場合の時間カウンタに対して、情報キューに蓄積される情報、および、デコードと表示のタイミングが図示されている。図３６においては、あるＧＯＰのＩピクチャのデコード開始タイミングの時間カウンタの値が７である場合を例としている。
【０２６１】
そして、例えば、２フレーム分アンダーフローが発生した場合、図３７に示されるように、時間カウンタを２フレーム分遅延させ、その時間カウンタを参照して処理を再開させることにより、それ以降のスケジューリングとデコードおよび表示の制御を、滞りなく実行させることが可能となる。
【０２６２】
このような処理により、例えば、高速再生時のＨＤＤ１６のスループット不足などにより、ストリームの供給が滞った場合であっても、ストリームの供給が滞ったことによるアンダーフロー状態を検出し、時間情報計数をアンダーフローした時間分戻すことにより、破綻無く再生処理を再開することが可能である。
【０２６３】
そして、図４のステップＳ３６において、すべてのフレームの処理が終了されていないと判断された場合、ステップＳ３７において、時間カウンタがインクリメントされ、処理は、ステップＳ３１に戻り、次のフレームに対して、それ以降の処理が繰り返される。
【０２６４】
７フレーム目以降、ステップＳ３３においては、最初のフレームから６番目のフレームまでのいずれかのフレームではないと判断されるので、ステップＳ３４において、１フレームディレイ表示設定処理が実行される。
【０２６５】
次に、図３８のフローチャートを参照して、７フレーム目以降で、図４のステップＳ３４において実行される、１フレームディレイ表示処理について説明する。
【０２６６】
ステップＳ３６１において、ＣＰＵ２０は、表示キューに保持されている情報を基に、デコーダ２２乃至デコーダ２４のうちの、設定されているデコーダによるデコード処理から１フレーム遅れで表示が行われるように、表示命令を、デコーダ２２デコーダ２４のうちの、設定されているデコーダに、コントロールバス１９を介して通知し、表示キューの対応するピクチャＩＤを削除する。このとき、デコーダ２２乃至デコーダ２４のうちの、設定されているデコーダの出力アドレス決定部８０は、コントロールバス７６を介して、ＣＰＵ２０からの制御信号を受け、メモリコントローラ８０を制御して、ビデオバンクメモリ８２から、対応するピクチャを読み出させて、セレクタ２５に供給する。
【０２６７】
ステップＳ３６２において、ＣＰＵ２０は、図６のステップＳ８１において設定される次のデータを供給するデコーダを示すレジスタに保持されている値を基に、セレクタ２５を制御して、デコード済みのフレームの出力を制御し、処理は、図４のステップＳ３４に戻り、ステップＳ３５に進む。
【０２６８】
例えば、再生速度が１倍である場合、図２１を用いて説明したように、時間情報付き表示順設定キューに設定されている時間情報を基に実行されるＢピクチャのデコードタイミングに対して、１フレーム分Ｂピクチャの表示が遅れて実行されるように、時間情報付き表示順設定キューに設定されているピクチャの順に、表示が設定される。
【０２６９】
また、再生速度が−１倍である場合も、図２２を用いて説明したように、時間情報付き表示順設定キューに設定されている時間情報を基に実行されるＢピクチャのデコードタイミングに対して、１フレーム分Ｂピクチャの表示が遅れて実行されるように、時間情報付き表示順設定キューに設定されているピクチャの順に、表示が設定される。
【０２７０】
また、＋２倍速の高速再生における場合は図２５、−２倍速の高速再生における場合は図２６、＋４倍速の高速再生における場合は図２７、−４倍速の高速再生における場合は図２８、＋５倍速の高速再生における場合は図２９、そして、−５倍速の高速再生における場合は図３０を用いて説明したように、時間情報付き表示順設定キューに設定されている時間情報を基に実行されるＢピクチャのデコードタイミングに対して、１フレーム分Ｂピクチャの表示が遅れて実行されるように、時間情報付き表示順設定キューに設定されているピクチャの順に、表示が設定される。
【０２７１】
このような処理により、フレームを保持しておくバンクの数が、デコードの処理単位に含まれるＩピクチャおよびＰピクチャの数と、Ｂピクチャ格納分の２面との合計数であれば、アンカーフレームであるＩピクチャおよびＰピクチャを、バンクの固定位置に格納して、複雑なバンク面制御を行わずに、高速再生、逆方向再生、および、逆方向高速再生を実現することができる。
【０２７２】
なお、デコードと表示の開始タイミングの位相のずれは、デコード処理単位に含まれるＩピクチャおよびＰピクチャの数に基づいて求められるものとして説明したが、例えば、デコード処理単位に含まれるフレームのうち、表示されるフレーム数を基にデコードと表示の開始タイミングの位相のずれを求めることができるようにしても良い。
【０２７３】
なお、正方向または逆方向の高速再生が実行される場合、例えば、２番目以降のデコード処理単位におけるデコードのスケジューリングにおいて、表示されるフレームと表示されないフレームとの判断、すなわち、間引きが行われるのに先立って、例えば、デコード処理単位の先頭で表示されるピクチャのピクチャタイプなどの符号化パラメータを予め検出するようにしても良い。
【０２７４】
例えば、表示されるフレームと表示されないフレームとの判断が行われる前に、前のデコード処理単位のデコードのスケジュールにおいて計数されたフレームカウンタと、算出された間引き周期とに基づいて、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出するようにしても良いし、他の方法で、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出することができるようにしても良い。
【０２７５】
このようにすることにより、デコードのスケジュール処理を、更に、正確に高速に実行することが可能となる。
【０２７６】
デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出するための具体的な処理の一例について、以下に説明する。
【０２７７】
図３９のフローチャートを参照して、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出する処理をスケジューリングに先立って行うことができるようにした、フレームごとに行う処理２について説明する。この処理ルーチンは、表示が指令されたストリームデータが終了するまで、または、表示の終了が指令されるまで、１フレームごとに繰り返して実行される。
【０２７８】
ステップＳ４３１において、図５を用いて説明した入力ストリーム状態変更処理が実行される。
【０２７９】
ステップＳ４３２において、図４０を用いて後述するデコードスケジュール処理２が実行される。デコードスケジュール処理２において、デコードタイミングがスケジュールされる。そして、デコードタイミングのスケジュール処理に先立って、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出するための処理が実行されるようになされている。
【０２８０】
ステップＳ４３３において、ＣＰＵ２０は、１フレーム単位で処理の時間を表すカウンタである時間カウンタを参照することにより、処理の対象となっているのは、デコード順において、再生されるストリームデータの最初のフレームから６番目のフレームのうちのいずれかのフレームであるか否かを判断する。
【０２８１】
ステップＳ４３３において、処理の対象となっているのは、デコード順において、再生されるストリームデータの最初のフレームから６番目のフレームのうちのいずれかのフレームではないと判断された場合、ステップＳ４３４において、図３８を用いて説明した１フレームディレイ表示設定処理が実行される。
【０２８２】
ステップＳ４３３において、処理の対象となっているのは、デコード順において、再生されるストリームデータの最初のフレームから６番目のフレームのうちのいずれかのフレームであると判断された場合、または、ステップＳ４３４の処理の終了後、ステップＳ４３５において、図４２を用いて後述するフレーム制御処理２が実行される。フレーム制御処理２において、処理対象となっているフレームがデコードされる。
【０２８３】
ステップＳ４３６において、ＣＰＵ２０は、すべてのフレームの処理が終了したか否かを判断する。ステップＳ４３６において、すべてのフレームの処理が終了していないと判断された場合、ステップＳ４３７において、ＣＰＵ２０は、１フレームを単位とする時間カウンタをインクリメントする。
【０２８４】
ステップＳ４３７の処理の終了後、処理は、ステップＳ４３１に戻り、それ以降の処理が繰り返される。ステップＳ４３６において、すべてのフレームの処理が終了したと判断された場合、処理は終了される。
【０２８５】
このようにして、ＣＰＵ２０は、１フレームの処理ごとに、時間カウンタをカウントアップし、ユーザの指令した再生速度に応じて、デコードをスケジュールして、１フレームごとに、デコードを行わせ、表示を設定するが、この処理においては、デコードタイミングのスケジュール処理に先立って、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出するための処理を実行するようになされている。
【０２８６】
次に、図４０のフローチャートを参照して、図３９のステップＳ４３２において実行される、デコードスケジュール処理１について説明する。
【０２８７】
ステップＳ４７１乃至ステップＳ４７８において、図６のステップＳ７１乃至ステップＳ７８と基本的に同様の処理が実行される。
【０２８８】
すなわち、入力ピクチャキューを参照して、入力ピクチャキューが空であるか否かが判断され、入力ピクチャキューが空ではないと判断された場合、処理は、図３９のステップＳ４３２に戻り、ステップＳ４３３に進む。入力ピクチャキューが空であると判断された場合、図１５のフローチャートを用いて説明した入力処理が実行される。
【０２８９】
そして、次にデータの供給を受けるデコーダに対応して設定される時間情報付き表示順設定キューが空であるか否かが判断され、時間情報付き表示順設定キューが空ではないと判断された場合、すなわち、スケジュール済みの１ＧＯＰ相当のピクチャに対して、フレームごとにデコード処理または表示処理が実行されている途中である場合、処理は、図３９のステップＳ４３２に戻り、ステップＳ４３３に進む。
【０２９０】
時間情報付き表示順設定キューが空であると判断された場合、リオーダ処理が実行され、Ｉ／Ｐピクチャデコードキューに、デコードするＧＯＰのうちのＩピクチャおよびＰピクチャのピクチャＩＤが、デコード順に設定される。そして、ＩピクチャおよびＰピクチャを格納するバンク位置、および、Ｐピクチャのデコードにおける参照画像バンクが指定され、ＩピクチャおよびＰピクチャがそれぞれ格納されるバンク位置を基に、Ｂピクチャのデコードにおける参照画像バンクの位置が指定され、図１２を用いて説明した表示順設定キューが設定される。
【０２９１】
そして、ステップＳ４７９において、図４１を用いて後述する間引き処理２が実行される。この間引き処理２は、デコードタイミングのスケジュール処理に先立って、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出するための処理である。
【０２９２】
そして、ステップＳ４８０乃至ステップＳ４８２において、図６のステップＳ７９乃至ステップＳ８１において実行された処理と基本的に同等の処理が実行される。すなわち、図１６のフローチャートを用いて説明した表示位相決定処理が実行され、図１７のフローチャートを用いて説明した時間情報付きスケジュール決定処理が実行され、デコードと表示のタイミングがスケジュールされる。
【０２９３】
具体的には、ステップＳ４７９において実行された間引き処理２により、デコードタイミングのスケジュール処理に先立って、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを予め検出することができるので、例えば、表示の先頭がＩピクチャまたはＰピクチャである場合、図１３を用いて説明した様に、先にＩピクチャおよびＰピクチャがデコードされた後、Ｂピクチャがデコードされ、表示開始のタイミングは、デコード開始から６ピクチャ分ずれることにより、Ｂピクチャのデコードのタイミングと表示のタイミングが、１フレーム分ずれるように、デコードと表示のタイミングのスケジュールが行われる。また、表示の先頭がＢピクチャである場合、図１４を用いて説明した様に、先にＩピクチャおよびＰピクチャがデコードされた後、Ｂピクチャがデコードされ、表示開始のタイミングは、デコード開始から７ピクチャ分ずれることにより、Ｂピクチャのデコードのタイミングと表示のタイミングが、１フレーム分ずれるように、デコードと表示のタイミングのスケジュールが行われる。
【０２９４】
そして、次にデコードされるデータを供給するデコーダの設定を切り替える処理が実行されて、処理は、図３９のステップＳ４３２に戻り、ステップＳ４３３に進む。
【０２９５】
このような処理により、デコードと表示のタイミングがスケジュールされる。
【０２９６】
次に、図４１のフローチャートを参照して、図４０のステップＳ４７９において実行される間引き処理２について説明する。
【０２９７】
ステップＳ５０１において、ＣＰＵ２０は、図５を用いて説明した入力ストリーム状態変更処理において設定されたストリーム入力状態を基に、ユーザの設定に基づいた再生速度は、正方向、または、逆方向の高速再生であるか否かを判断する。ステップＳ５０１において、高速再生ではないと判断された場合、処理は、後述するステップＳ５１０に進む。
【０２９８】
ステップＳ５０１において、高速再生であると判断された場合、ステップＳ５０２において、ＣＰＵ２０は、処理中のフレームは、スピード設定が変更された後の最初のＧＯＰの最初のフレームであるか否かを判断する。
【０２９９】
ステップＳ５０２において、処理中のフレームは、入力ストリーム状態が変更された後の最初のＧＯＰの最初のフレームであると判断された場合、ステップＳ５０３において、ＣＰＵ２０は、スピード設定値GOP_Speedを基に、間引き周期を決定して、レジスタに保存する。
【０３００】
具体的には、ＣＰＵ２０は、例えば、２倍速または−２倍速で再生が行われる場合、間引き周期を１／２としてレジスタに保存し、３倍速または−３倍速で再生が行われる場合、間引き周期を１／３としてレジスタに保存する。
【０３０１】
ステップＳ５０４において、ＣＰＵ２０は、間引き処理２においてデコード処理単位にかかわらずフレームの数をカウントするフレームカウンタをリセットする。
【０３０２】
ステップＳ５０２において、処理中のフレームは、入力ストリーム状態が変更された後の最初のＧＯＰの最初のフレームではないと判断された場合、または、ステップＳ５０４の処理の終了後、ステップＳ５０５において、ＣＰＵ２０は、表示順設定キューに保持されているピクチャＩＤに対応付けられて、確認済みフラグが設定されているか否かを基に、表示順設定キューはすべて確認済みであるか否かを判断する。確認済みフラグは、後述するステップＳ５０９の処理により、表示順設定キューに設定されるフラグである。ステップＳ５０５において、表示順設定キューはすべて確認済みであると判断された場合、処理は、後述するステップＳ５１０に進む。
【０３０３】
ステップＳ５０５において、表示順設定キューはすべて確認済みではない、換言すれば、表示順設定キューに確認済みフラグが設定されていないピクチャＩＤが残っていると判断された場合、ステップＳ５０６において、ＣＰＵ２０は、フレームカウンタを１インクリメントする。
【０３０４】
ステップＳ５０７において、ＣＰＵ２０は、間引き周期の決定の結果、レジスタに保持されている間引き周期と、フレームカウンタの値を参照し、フレームカウンタに示されるフレームは表示されるか否かを判断する。具体的には、ＣＰＵ２０は、間引き周期が１／２である場合、フレーム数をカウントするフレームカウンタの値が２ｎ（ｎは正の整数）であれば、表示を行い、それ以外の場合は、表示を行わないようにしたり、間引き周期が１／３である場合、フレーム数をカウントするフレームカウンタの値が３ｎ（ｎは正の整数）であれば、表示を行い、それ以外の場合は、表示を行わないようにする。ステップＳ５０７において、表示が行われると判断された場合、すなわち、間引かれないフレームであると判断された場合、処理は、後述するステップＳ５０９に進む。
【０３０５】
ステップＳ５０７において、表示されないと判断された場合、すなわち、間引かれるフレームであると判断された場合、ステップＳ５０８において、ＣＰＵ２０は、表示順設定キューの処理対象のフレームに、非表示であることを示す削除フラグを設定する。
【０３０６】
ステップＳ５０７において、フレームカウンタに示されるフレームの表示が行われると判断された場合、または、ステップＳ５０８の処理の終了後、ステップＳ５０９において、ＣＰＵ２０は、表示順設定キューのフレームカウンタに示されるフレームに対応するピクチャＩＤに対応付けて確認済みフラグを設定し、処理は、ステップＳ５０５に戻り、それ以降の処理が繰り返される。
【０３０７】
ステップＳ５０１において、高速再生ではないと判断された場合、または、ステップＳ５０５において、表示順設定キューはすべて確認済みであると判断された場合、ステップＳ５１０において、ＣＰＵ２０は、表示順設定キューに、間引き処理２の実行時のスピード設定値であるGOP_Speedを設定し、図４０のステップＳ４７９に戻り、ステップＳ４８０に進む。
【０３０８】
このような処理により、表示順設定キューにおいて、デコードのスケジューリングに先立って、表示されないフレームに非表示であることを示す削除フラグが対応付けられるので、デコードのスケジュール時には、デコード処理単位の先頭で表示されるピクチャのピクチャタイプを検出することができる。そして、この処理ルーチン以降にデコードされるＢピクチャは、表示されるもののみとなり（間引かれるＢピクチャは、デコード処理部７７に供給されない）、間引かれるＩピクチャまたはＰピクチャは、デコードはされるが、表示されないようになされる。
【０３０９】
次に、図４２のフローチャートを参照して、図３９のステップＳ４３５において実行される、フレーム制御処理２について説明する。
【０３１０】
ステップＳ５４１において、ＣＰＵ２０は、再生装置１内で実行される各処理のタイミングを管理するためのカウンタである時間管理カウンタと、時間情報付きＩ／Ｐピクチャデコードキューを参照し、表示時刻が過ぎてしまったストリームデータがあるか否かを判断する。ステップＳ５４１において、表示時刻が過ぎてしまったストリームデータがあると判断された場合、処理は、後述するステップＳ５４７に進み、図３５を用いて説明したアンダーフロー処理が実行されて、処理は、図３９のステップＳ４３５に戻り、ステップＳ４３６に進む。
【０３１１】
ステップＳ５４１において、表示時刻が過ぎてしまったストリームデータがないと判断された場合、ステップＳ５４２乃至ステップＳ５４５において、図１８のステップＳ１９２乃至ステップＳ１９５と基本的に同様の処理が実行される。
【０３１２】
すなわち、図１９を用いて説明したＩピクチャおよびＰピクチャデコード処理が実行され、図２０を用いて説明したＢピクチャデコード処理が実行される。そして、ＣＰＵ２０から、ＣＰＵ１１に、表示ピクチャ情報が通知され、ＣＰＵ２０は、時間管理カウンタをインクリメントする。これらの処理は、図４１のステップＳ５０８において削除フラグが設定されなかった（間引かれなかった）フレームに対して実行される。
【０３１３】
そして、ステップＳ５４６において、図４３を用いて後述する間引き処理３が実行されて、処理は、図３９のステップＳ４３５に戻り、ステップＳ４３６に進む。
【０３１４】
このような処理により、表示が遅れていなければ、設定されたデコードスケジュールに基づいて、１フレーム分のデコードが実行されて、表示ピクチャ情報が、ＣＰＵ１１に通知され、間引き処理３が実行される。そして、表示が遅れているとき、図３５を用いて説明したアンダーフロー処理が実行される。
【０３１５】
次に、図４３のフローチャートを参照して、図４２のステップＳ５４６において実行される間引き処理３について説明する。
【０３１６】
ステップＳ５７１において、ＣＰＵ２０は、１つ前に実行された間引き処理（デコードスケジュール処理２において、間引き処理２が実行された場合は、間引き処理２）の実行時と比較して、再生のスピード設定が同方向で高速になったか否かを判断する。具体的には、ＣＰＵ２０は、現在のスピード設定値speedと、表示順設定キューに設定されているGOP_speedとを基に、speed／GOP_speed＞１が成立するか否かを判断することにより、１つ前に実行された間引き処理の実行時と比較して、再生のスピード設定が同方向で高速になったか否かを判断する。ステップＳ５７１において、１つ前に実行された間引き処理の実行時と比較して、再生のスピード設定が、同方向で高速になっていない、すなわち、前の間引き処理と速度が変更されていないか、遅くなったか、または、逆方向になったと判断された場合、処理は、図４２のステップＳ５４６に戻り、処理は、図３９のステップＳ４３６に進む。
【０３１７】
ステップＳ５７１において、１つ前に実行された間引き処理の実行時と比較して、再生のスピード設定が、同方向で高速になったと判断された場合、ステップＳ５７２において、ＣＰＵ２０は、間引き処理２の実行時と現在のそれぞれのスピード設定値を基に、間引き周期を決定して、レジスタに保存する。
【０３１８】
具体的には、ＣＰＵ２０は、speed／GOP_speedの絶対値の逆数を基に間引き周期を設定し、例えば、間引き処理２の実行時にスピード設定が２倍速であったが、現在のスピード設定値が４倍速であった場合、間引き周期を１／２として、間引き周期を保持するレジスタに保存する。
【０３１９】
ステップＳ５７３において、ＣＰＵ２０は、間引き処理３においてデコード処理単位にかかわらずフレームの数をカウントするフレームカウンタをリセットする。
【０３２０】
ステップＳ５７４において、ＣＰＵ２０は、時間情報付き表示順設定キューに保持されているピクチャＩＤに対応付けられて、確認済みフラグが設定されているか否かを基に、時間情報付き表示順設定キューはすべて確認済みであるか否かを判断する。確認済みフラグは、後述するステップＳ５７９の処理により、時間情報付き表示順設定キューに設定されるフラグである。ステップＳ５７４において、時間情報付き表示順設定キューはすべて確認済みであると判断された場合、処理は、図４２のステップＳ５４６に戻り、処理は、図３９のステップＳ４３６に進む。
【０３２１】
ステップＳ５７４において、時間情報付き表示順設定キューはすべて確認済みではない、換言すれば、時間情報付き表示順設定キューに確認済みフラグが設定されていないピクチャＩＤが残っていると判断された場合、ステップＳ５７５において、ＣＰＵ２０は、フレームカウンタを１インクリメントする。
【０３２２】
ステップＳ５７６において、ＣＰＵ２０は、間引き周期の決定の結果、レジスタに保持されている間引き周期と、フレームカウンタの値を参照し、フレームカウンタに示されるフレームは表示されるか否かを判断する。具体的には、ＣＰＵ２０は、間引き周期が１／２である場合、フレーム数をカウントするフレームカウンタの値が２ｎ（ｎは正の整数）であれば、表示を行い、それ以外の場合は、表示を行わないようにしたり、間引き周期が１／３である場合、フレーム数をカウントするフレームカウンタの値が３ｎ（ｎは正の整数）であれば、表示を行い、それ以外の場合は、表示を行わないようにする。ステップＳ５７６において、表示が行われると判断された場合、すなわち、間引かれないフレームであると判断された場合、処理は、後述するステップＳ５７９に進む。
【０３２３】
ステップＳ５７６において、表示されないと判断された場合、すなわち、間引かれるフレームであると判断された場合、ステップＳ５７７において、ＣＰＵ２０は、処理対象のフレームに対応するピクチャＩＤを、時間情報付き表示順設定キューから削除するか、または、時間情報付き表示順設定キューの対応するピクチャＩＤに対して、非表示であることを示すフラグを対応付ける。
【０３２４】
ステップＳ５７８において、図２４を用いて説明した、時間情報再設定処理が実行される。このとき、ステップＳ３０２において算出される時間情報調整値added_countは、一つ前の間引き処理と比較してスピード設定が変化した場合の、ステップＳ５７６およびステップＳ５７７の処理による間引きによって変更されたピクチャの数である。
【０３２５】
ステップＳ５７６において、フレームカウンタに示されるフレームの表示が行われると判断された場合、または、ステップＳ５７８の処理の終了後、ステップＳ５７９において、ＣＰＵ２０は、時間情報付き表示順設定キューのフレームカウンタに示されるフレームに対応するピクチャＩＤに対応付けて確認済みフラグを設定し、処理は、ステップＳ５７４に戻り、それ以降の処理が繰り返される。
【０３２６】
このような処理により、間引き処理２から速度設定が変更されて、同方向で、かつ、高速になった場合には、表示されないフレームのピクチャＩＤが、時間情報付き表示順設定キューから削除されるか、または、時間情報付き表示順設定キューの対応するピクチャＩＤに対して、非表示であることを示すフラグが対応付けられる。Ｂピクチャのデコード処理と、１フレームディレイ表示設定処理は、再設定された時間情報付き表示順設定キューを参照して実行される。間引き処理２から速度設定が変更されて、同方向で、かつ、高速になった場合には、その速度設定に基づいて、時間情報付き表示順設定キューの設定が更新されるため、この処理ルーチン以降にデコードされるＢピクチャは、表示されるもののみとなり（間引かれるＢピクチャは、デコード処理部７７に供給されない）、間引かれるＩピクチャまたはＰピクチャは、デコードはされるが、表示されないようになされる。
【０３２７】
したがって、デコードのスケジューリングが終了した後でも、１フレームごとに、速度設定の変更があるか否かが検出されて、間引き処理２から速度設定が変更されて、同方向で、かつ、高速になった場合には、時間情報付き表示順設定キューが再設定されるので、速度変更にすばやく追従して、ストリームが再生されるようにデコードをスケジューリングすることが可能となる。
【０３２８】
ところで、上述した処理では、デコーダ２２乃至デコーダ２４のそれぞれに８フレームのベースバンド画像データを保持可能なビデオバンクメモリ８３を備え、デコーダ２２乃至デコーダ２４のそれぞれは、MPEG Long GOP圧縮映像を１GOPずつ取得して、Bピクチャをデコードする以前にアンカーフレームをデコードすることにより、正逆の高速再生を実現するようになされていた。
【０３２９】
これに対して、例えば、デコーダの性能がデコーダ２２乃至デコーダ２４と比較して高く、１フレームの表示時間に対して１フレームのデコードにかかる時間が充分に短い場合、デコーダを３つ用意しなくても、１つのデコーダで同様のスケジューリング処理やデコード処理を行うことにより、正逆の高速再生に加えて、例えば、ランダム再生やスクラブ再生を実施することが可能である。しかしながら、１フレームのデコードにかかる時間が充分に短い１つのデコーダに、上述したスケジューリング処理やデコード処理を適用して実行させる場合、数GOP分のアンカーフレームを一時保持し、更に、表示されるBピクチャを一時保持するために、大きな容量のフレームメモリを備える必要があった。
【０３３０】
例えば、スクラブ再生で、任意のピクチャからの表示の開始が指令可能なようになされ、特に、アンカーフレームがデコード済みでないＧＯＰのＢピクチャが再生開始位置として指定された場合、そのＢピクチャをデコードするための参照画像をすべてデコードした後でなければ、表示開始位置のＢピクチャをデコードすることができないため、画像をすばやく出力することができない。すなわち、予めデコードされたアンカーフレームを保持するためのフレームメモリの容量が少ないと、スクラブ再生において再生開始位置のピクチャを高速に再生出力することができる範囲が少なくなってしまう。
【０３３１】
具体的には、例えば、３GOP分のアンカーフレームを予めデコードして保持しておくことができれば、その３GOP分のいずれかの位置がスクラブ再生の再生位置として指定された場合、迅速に指定されたフレームを再生出力することができる。しかしながら、それ以外の位置がスクラブ再生の再生開始位置として指定され、指定されたフレームがPピクチャまたはBピクチャであった場合、参照画像となるアンカーフレームのデコードを行う必要があるので、指定されたフレームの再生出力が遅くなってしまう。これに対して、例えば、５GOP分のアンカーフレームを予めデコードして保持しておくことができれば、迅速に指定されたフレームを再生出力することができる範囲は５GOP分となる。換言すれば、スクラブ再生において迅速に指定されたフレームを再生出力することができる範囲を広げるためには、できるだけ多くのGOPのアンカーフレームを予めデコードして、フレームメモリに蓄積しておくと有利である。
【０３３２】
すなわち、特に、１フレームの表示時間に対して１フレームのデコードにかかる時間が充分に短いデコーダが用いられて、正逆の高速再生に加えて、例えば、ランダム再生やスクラブ再生、または、短い区間で正方向と逆方向の再生を連続して指令するトランジェント再生が行われる場合、フレームメモリを有効に利用して、スクラブ再生やランダム再生において再生開始位置のピクチャを高速に再生出力することができる範囲をできるだけ広い範囲とすると好適である。
【０３３３】
しかしながら、できるだけ多くのGOPのアンカーフレームを予めデコードしておくためには、多くのメモリ容量が必要となってしまう。
【０３３４】
次に、第２の実施の形態として、広範囲のＧＯＰのI、Ｐピクチャを予めデコードしてフレームメモリに保存することによって、１つのデコーダによっても、正逆反転再生、ランダム再生、または、スクラブ再生などにおける再生開始フレームをできるだけ広範囲に高速に再生することができるようにするために、アンカーフレーム（ＩまたはＰピクチャ）のベースバンド画像を数枚おきにフレームメモリに保存するようにした場合のフレームメモリ（ビデオバンクメモリ）の管理について説明する。
【０３３５】
図４４は、再生装置１０１のハードウェア構成を示すブロック図である。
【０３３６】
なお、図１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０３３７】
すなわち、図４４の再生装置１０１は、ＣＰＵ２０に代わって、ＣＰＵ１２１が設けられ、デコーダ２２に代わって、メモリ１３１を有するデコーダ１２２が設けられ、デコーダ２３、デコーダ２４、および、セレクタ２５が省略されている以外は、図１の再生装置１と基本的に同様の構成を有するものである。
【０３３８】
すなわち、ＰＣＩブリッジ１７は、ＣＰＵ１１の制御に基づいてＨＤＤ１６から読み出されたストリームデータを、メモリ１８に供給して保存させることができるとともに、ＣＰＵ１２１の制御に基づいて、メモリ１８に保存されているストリームデータを読み出して、デコーダ１２２に供給する。ＨＤＤ１６から読み出されたストリームデータのそれぞれのＧＯＰには、GOP IDとフレーム数およびアンカーフレーム数の情報を含むＧＯＰのヘッダ情報が付与されていると好適である。また、ＰＣＩブリッジ１７は、ＰＣＩバス１４またはコントロールバス１９を介したコマンドまたはリザルトに対応する制御信号の授受を制御する。
【０３３９】
ＣＰＵ１２１は、コントロールバス１９を介して、ＣＰＵ１１によりＰＣＩブリッジ１７のコマンドバッファ３１に書き込まれたコマンドを読み取り、このコマンドにしたがって、ＰＣＩブリッジ１７、および、デコーダ１２２が実行する処理を制御する。メモリ２１は、ＣＰＵ１２１の処理に必要なデータを記憶する。
【０３４０】
また、ＣＰＵ１２１は、ＨＤＤ１６から読み出されたストリームデータのそれぞれのＧＯＰが、GOP IDとフレーム数およびアンカーフレーム数を含む情報であるＧＯＰのヘッダ情報を有していない場合、ＨＤＤ１６から読み出されたストリームデータのそれぞれのＧＯＰを区別するとともにその並び順を認識することができるようなGOP IDと、ＧＯＰに含まれるフレーム数およびアンカーフレーム数を含む情報であるＧＯＰヘッダ情報を生成し、ストリームデータを構成するそれぞれのＧＯＰに付加する。
【０３４１】
デコーダ１２２は、ＣＰＵ１２１の制御に基づいて、供給された圧縮符号化されたストリームデータをデコードし、非圧縮の映像信号を出力する。デコーダ１２２は、１フレームの表示時間に対して充分に短い持間（例えば、１フレームの表示時間の１／３乃至１／４程度）で、１フレームをデコードすることが可能なデコード処理部を有している。また、デコーダ１２２は、その内部にメモリ１３１を有し、必要に応じて、ＰＣＩブリッジ１７から供給された圧縮符号化されたストリームデータ、または、デコーダ１２２自身によりデコードされた非圧縮の映像信号を保持することが可能なようになされている。また、デコーダ１２２は、再生装置１０１に含まれない独立した装置として設けられていても良い。
【０３４２】
なお、図４４の再生装置１０１は、１つの装置として構成されていても良いし、複数の装置によって構成されるようにしても良い。例えば、図４４の再生装置のうち、ＣＰＵ１１、ノースブリッジ１２、メモリ１３、サウスブリッジ１５、および、ＨＤＤ１６の部分が、パーソナルコンピュータの構成のうちの一部であるとし、PCIカード、PCI−Expressカードなどの拡張カード、または、拡張ボードに、ＰＣＩバス１４、ＰＣＩブリッジ１７、メモリ１８、コントロールバス１９、ＣＰＵ１２１、メモリ２１、および、デコーダ１２２の機能を備えさせ、パーソナルコンピュータに拡張カードを装着して再生装置１０１として機能するようにしても良い。また、これらを、さらに複数の装置に分割して、再生装置１０１を構成するようにしても良い。
【０３４３】
次に、再生装置１０１の動作について説明する。
【０３４４】
ＨＤＤ１６には、ＭＰＥＧのLong GOP方式で圧縮された圧縮映像のデータが記憶されている。
【０３４５】
ＣＰＵ１１は、ノースブリッジ１２を介して、サウスブリッジ１５を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、ＨＤＤ１６から、圧縮符号化されたストリームデータを読み出させ、ノースブリッジ１２、ＰＣＩバス１４、および、ＰＣＩブリッジ１７を介して、メモリ１８に供給させて記憶させるとともに、再生スピード（再生方向を示す情報を含む）を示す情報、デコード開始コマンド、または、表示開始コマンドなどを、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に書き込む。
【０３４６】
ＣＰＵ１２１は、ＰＣＩブリッジ１７のコマンドバッファ３１に書き込まれたＣＰＵ１１からのコマンドを基に、圧縮符号化されたストリームデータのデコードおよび表示のスケジュールを決定する。具体的には、ＣＰＵ１２１は、圧縮符号化されたストリームデータのデコーダ１２２への入力のタイミング、フレームごとのデコードのタイミング、参照画像のバンク位置の設定、デコード時のバンクメモリの割り当て、および、デコードされたピクチャの出力、すなわち、表示のタイミングを決定する。
【０３４７】
そして、ＣＰＵ１２１は、ＰＣＩブリッジ１７を制御して、メモリ１８に記憶されている圧縮符号化されたストリームデータを、決定されたスケジュールに基づいて、デコーダ１２２に供給させる。
【０３４８】
このとき、ＣＰＵ１２１は、ＨＤＤ１６から読み出されてメモリ１８に記憶されるストリームデータのそれぞれのＧＯＰが、GOP IDとフレーム数およびアンカーフレーム数を含む情報であるＧＯＰのヘッダ情報を有していない場合、ＨＤＤ１６から読み出されたストリームデータのそれぞれのＧＯＰを区別するとともにその並び順を認識することができるようなGOP IDと、ＧＯＰに含まれるフレーム数およびアンカーフレーム数を含む情報であるＧＯＰヘッダ情報を生成し、ストリームデータを構成するそれぞれのＧＯＰに付加する。
【０３４９】
ＣＰＵ１２１は、デコーダ１２２を制御して、供給された圧縮符号化されたデータをデコードさせる。デコーダ１２２は、供給された圧縮符号化されたストリームデータをデコードして、例えば、図示しない表示装置や、デコードされたデータを所定の記録媒体に記録するための記録装置などに出力する。
【０３５０】
すなわち、図４４に示される再生装置１０１においても、ＣＰＵ１１が実行する制御処理については、図３のフローチャートを参照して説明した処理と基本的に同一である。
【０３５１】
具体的には、ＣＰＵ１１は、ノースブリッジ１２およびサウスブリッジ１５を制御して、ユーザによりデコードして出力するストリームデータとして指定された、圧縮符号化されたストリームデータのうちの複数ＧＯＰをＨＤＤ１６から読み出して、読み出した複数ＧＯＰのストリームデータを、ＰＣＩバス１４を介してＰＣＩブリッジ１７に供給し、メモリ１８に転送する。
【０３５２】
そして、ＣＰＵ１１は、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、データ転送完了と、メモリ１８に転送されたＧＯＰに含まれるピクチャのピクチャ情報を供給することにより、ＣＰＵ１２１に対して、データ転送完了と、ピクチャ情報とを通知した後、ＣＰＵ１２１およびメモリ１８から、準備完了の通知を受ける。ピクチャ情報には、例えば、ピクチャタイプ、ピクチャ単位のヘッダ情報、ピクチャサイズなどの情報が含まれる。
【０３５３】
そして、ＣＰＵ１１は、図示しない操作入力部から、ユーザによる再生出力処理の開始の指令を受け、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、デコード開始コマンドを送信してデコーダ１２２にデコード処理を開始させ、続いて、表示開始コマンドを送信し、デコーダによりデコードされて得られたＳＤＩ信号、すなわち、ベースバンドの画像信号の表示または出力を開始させる。
【０３５４】
そして、ＣＰＵ１１は、ＣＰＵ１２１がコントロールバス１９を介してＰＣＩブリッジ１７のリザルトバッファ３２に供給した表示開始コマンドに対するリザルト、すなわち、フレームごとの表示完了の通知を、ノースブリッジ１２およびＰＣＩバス１４を介して読み込んで、いずれのピクチャの表示が終了したかを常にチェックしておくことにより、１ＧＯＰの表示完了を検出し、表示されたＧＯＰは、表示されるストリームデータの最後であるか否かを判断する。
【０３５５】
表示されたＧＯＰは、表示されるストリームデータの最後ではないと判断された場合、ＣＰＵ１１は、図示しない操作入力部から供給される信号を基に、例えば、ストリームデータの再生終了、再生されているストリームデータの変更、もしくは、再生速度または方向の変更指令など、入力ストリーム状態の変更を伴う指令がユーザから入力されたか否かを判断する。
【０３５６】
入力ストリーム状態の変更を伴う指令がユーザから入力されたと判断された場合、ＣＰＵ１１は、ノースブリッジ１２およびＰＣＩバス１４を介して、ＰＣＩブリッジ１７のコマンドバッファ３１に、ユーザの操作入力に対応するコマンドを送信する。
【０３５７】
入力ストリーム状態の変更を伴う指令がユーザから入力されていないと判断された場合、または、ユーザの操作入力に対応するコマンドの送信後、ＣＰＵ１１は、ＨＤＤ１６に、表示させるストリームデータが残っているか否かを判断する。表示させるストリームデータが残っていないと判断された場合、メモリ１８に転送されているが、まだ表示されていないストリームデータの再生処理が繰り返される。
【０３５８】
ＨＤＤ１６に、表示させるストリームデータが残っていると判断された場合、ＣＰＵ１１は、ノースブリッジ１２およびサウスブリッジ１５を制御して、デコードして出力するストリームデータのうち、メモリ１８へ転送済みのＧＯＰに続く１ＧＯＰをＨＤＤ１６から読み出し、読み出した１ＧＯＰのストリームデータを、ＰＣＩバス１４を介してＰＣＩブリッジ１７に供給し、メモリ１８に転送し、ＰＣＩブリッジ１７のコマンドバッファ３１に、データ転送完了と、メモリ１８に転送されたＧＯＰに含まれるピクチャのピクチャ情報を供給することにより、ＣＰＵ１２１に対して、データ転送完了と、ピクチャ情報とを通知する。
【０３５９】
そして、ＣＰＵ１１は、ＣＰＵ１２１およびメモリ１８から、準備完了の通知を受ける。具体的には、ＣＰＵ１１は、ＣＰＵ１２１がコントロールバス１９を介してＰＣＩブリッジのリザルトバッファ３２に供給した、データ転送完了とピクチャ情報の通知に対するリザルトを、ノースブリッジ１２およびＰＣＩバス１４を介して読み込むとともに、メモリ１８から、ＰＣＩブリッジ１７、ＰＣＩバス１４およびノースブリッジ１２を介して、複数ＧＯＰのストリームデータの保存終了の通知を受ける。
【０３６０】
そして、デコーダ１２２によりデコードされて得られたＳＤＩ信号、すなわち、ベースバンドの画像信号の表示または出力が開始され、１ＧＯＰの表示完了が検出されて、表示または出力されたＧＯＰは、表示または出力されるストリームデータの最後であると判断された場合、処理は終了される。
【０３６１】
このような処理により、ＣＰＵ１１は、ＣＰＵ１２１にコマンドを供給し、供給したコマンドに対するリザルトを受けて、ストリームデータのデコードと、デコードされたデータの表示を制御することができる。
【０３６２】
更に、ＣＰＵ１１は、デコーダ１２２により、表示出力のためのデコード処理が実行されない期間を利用して、予めＩピクチャおよびＰピクチャがデコードされて蓄積されるように、メモリ１８に供給されたＧＯＰデータが、デコーダ１２２のメモリ１３１に先行して供給されるように、GOPの先送り転送指令コマンドを生成して、ＣＰＵ１２１に供給する。先送り転送のタイミングは、再生方向および再生速度、並びに、メモリ１３１に蓄積可能なGOPの数などによって異なる。先送り転送のタイミングの具体的な例については、図６３乃至図７２を用いて後述する。
【０３６３】
メモリ１３１は、メモリ１８から供給された圧縮符号化ストリームを蓄積するためのストリームバッファと、デコーダ１３１によりデコードされて生成されたベースバンド画像データを蓄積するフレームメモリと、デコード処理に必要な各種情報を保持するメモリとの各種記憶領域を含むものである。
【０３６４】
そして、ＣＰＵ１２１は、ＣＰＵ１１から供給されるコマンドに基づいて、デコーダ１２２によるデコード処理を制御する。具体的には、ＣＰＵ１２１は、圧縮符号化されたストリームデータのデコーダ１２２のメモリ１３１への入力のタイミング、ピクチャごとのデコードのタイミング、および、デコードされたピクチャの出力、すなわち、表示のタイミングを決定し、これらのタイミングを基に、ＰＣＩブリッジ１７、および、デコーダ１２２を制御する。
【０３６５】
ＣＰＵ１２１は、メモリ１３１のうち、デコード処理前の圧縮符号化ストリームがバッファリングされるストリームバッファに、何GOPのデータを蓄積することが可能かを認識しており、いずれのGOPが保持されているかを、GOP_IDなどを基に管理する。これは、ストリームバッファに、あるGOP_IDのGOPが貯まっているときに、同じGOP_IDのGOPを転送してしまうような、ストリームバッファへのストリームの無駄な転送を避けるためである。
【０３６６】
ＣＰＵ１２１は、ＣＰＵ１１から供給されるGOPの先送り転送指令コマンドに基づいて、ピクチャ出力に間に合うように、メモリ１３１（のストリームバッファ）にGOPを先送り転送する。先送り転送のタイミングについては、図６３乃至図７２を用いて後述する。そして、ＣＰＵ１２１は、メモリ１３１（のストリームバッファ）に転送されたＧＯＰに対するアンカーフレームデコード開始コマンドを、デコーダ１２２に供給して、アンカーフレームを先行してデコードさせる。
【０３６７】
図４５のフローチャートを参照して、ＣＰＵ１２１のＧＯＰ転送制御処理について説明する。
【０３６８】
ステップＳ５９１において、ＣＰＵ１２１は、ＣＰＵ１１の処理によりＰＣＩブリッジ１７のコマンドバッファ３１に、GOP ID xのGOPの先送り転送指令コマンドの供給を受ける。
【０３６９】
ステップＳ５９２において、ＣＰＵ１２１は、デコーダ１２２のメモリ１３１のストリームバッファ（図４６を用いて後述するストリームバッファ１３１-１）に、GOP ID xのデータが存在するか否かを判断する。
【０３７０】
ステップＳ５９２において、ストリームバッファにGOP ID xのデータが存在しないと判断された場合、ステップＳ５９３において、ＣＰＵ１２１は、メモリ１８に蓄積されているGOP ID xのメモリ１３１への先送り転送処理を制御して、処理が終了される。
【０３７１】
ステップＳ５９２において、ストリームバッファにGOP ID xのデータが存在すると判断された場合、ステップＳ５９４において、ＣＰＵ１２１は、デコーダ１２２に、GOP ID xのアンカーフレームデコード開始コマンドを送信して、処理が終了される。
【０３７２】
このような処理により、ＣＰＵ１２１は、デコーダ１２２のメモリ１３１のストリームバッファ（図４６を用いて後述するストリームバッファ１３１-１）に、GOPの先送り転送指令コマンドに対応するＧＯＰのデータが存在しない場合は、コマンドに基づいて、指定されたＧＯＰの先送り転送処理を制御するが、対応するＧＯＰのデータが既に存在した場合、同一のＧＯＰの転送を繰り返すことなく、アンカーフレームのデコード処理を開始させる。
【０３７３】
そして、図４６は、デコーダ１２２の更に詳細な構成を示すブロック図である。
【０３７４】
入力処理部１５１は、ＰＣＩブリッジ１７から供給された圧縮符号化されたストリームデータをストリームバッファ１３１−１に保存させるとともに、供給されたストリームデータから、ピクチャ単位で、先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどを取得して、ストリーム情報バッファ１３１−２に供給する。
【０３７５】
ストリームバッファ１３１−１は、SDRAMなどの記憶用のメモリで構成された図４４のメモリ１３１のうちの所定の記憶領域であり、入力処理部１５１から供給されたストリームデータをバッファリングし、セレクタ１５２に供給する。ストリームバッファ１３１−１には、少なくとも、後述するフレームメモリ１３１−３に保持可能なアンカーフレームのGOP数と同数のGOP数のストリームデータが保持可能なようになされている。また、ストリームバッファ１３１−１が、後述するフレームメモリ１３１−３に保持可能なアンカーフレームのGOP数以上の数のＧＯＰを保持することができるようになされていると、例えば、再生方向が逆転したり、再生開始位置が変更した場合に、ストリームバッファ１３１−１に新たなＧＯＰを供給しなくても対応することができる可能性が高くなるため、好適である。
【０３７６】
ストリーム情報バッファ１３１−２は、図４４のメモリ１３１のうちの所定の記憶領域であり、入力処理部１５１から供給された、ピクチャ単位の先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどの情報を、それぞれ、ピクチャ別に保持する。
【０３７７】
デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号に基づいて、ストリームバッファ１３１−１に保持されている各ピクチャのアドレスやストリーム情報をストリーム情報バッファ１３１−２から読み込んで、デコーダ１２２の各部の処理を制御する。具体的には、デコードコントローラ１５３は、セレクタ１５２を制御することにより、デコード処理部１５４に供給されるピクチャそれぞれのピクチャのデコードタイミングを制御する。また、デコードコントローラ１５３は、セレクタ１５５を制御して、デコード処理部１５４によりデコードされて得られたベースバンド画像信号のフレームメモリ１３１−３における格納位置を制御する。そして、デコードコントローラ１５３は、セレクタ１５６を制御することにより、フレームメモリ１３１−３から参照画像としてデコード処理部１５４に供給されるベースバンド画像信号、すなわち、デコード処理部１５４において実行されるＰピクチャまたはＢピクチャのデコードにおける参照画像の供給を制御する。そして、デコードコントローラ１５３は、フレームメモリ１３１−３からセレクタ１５７が読み出して出力するベースバンド画像信号を制御することにより、表示などのために出力されるデコード済みのベースバンド画像信号の出力、すなわち、再生画像の表示のタイミングを制御する。
【０３７８】
セレクタ１５２は、デコードコントローラ１５３の制御に基づいて、ストリームバッファ１３１−１に保存されたストリームデータを、ピクチャ単位でデコード処理部１５４に供給する。
【０３７９】
デコード処理部１５４は、セレクタ１５２から供給されたＭＰＥＧビデオストリームを、セレクタ１５６から供給された参照画を必要に応じて参照してデコードし、デコードされたベースバンド（非圧縮）の画像信号を、セレクタ１５５に供給する。
【０３８０】
セレクタ１５５は、デコードコントローラ１５３の制御に基づいて、デコード処理部１５４によりデコードされて供給されたベースバンドの画像信号のフレームメモリ１３１−３における記録位置、すなわち、ベースバンドの画像信号が保存されるバンク位置を決定し、デコード処理部１５４から供給されたベースバンドの画像信号を、フレームメモリ１３１−３の所定のバンク位置に保存させる。換言すれば、デコードコントローラ１５３は、デコード処理部１５４によりデコードされて得られるベースバンドの画像信号のフレームメモリ１３１−３におけるバンク位置を決定し、その位置にベースバンドの画像信号が記録されるように、セレクタ１５５を制御する。
【０３８１】
フレームメモリ１３１−３は、図４４のメモリ１３１のうちの所定の記憶領域であり、他のピクチャの参照画像として用いられるIピクチャ、および、Ｐピクチャを格納する参照バンクとＢピクチャなどを表示するために用意された表示専用バンクから構成され、参照バンクには、予めデコードされて保有されるアンカーフレームのための参照バンクと、再生出力されるタイミングに応じてデコードされるアンカーフレームのための参照バンクとが、それぞれ別に用意されている。フレームメモリ１３１−３におけるバンク構成の例については、図５１または図７６を用いて後述する。
【０３８２】
セレクタ１５６は、デコードコントローラ１５３の制御に基づいて、フレームメモリ１３１−３のうち、Ｐピクチャの前方向（forward）の参照画像バンクとして指定されたバンクに保持されているフレーム画像データや、Ｂピクチャの前方向および後ろ方向（backward）の参照画像バンクとして指定されたバンクに保持されているフレーム画像データを読み出し、デコード処理部１５４に供給する。
【０３８３】
セレクタ１５７は、デコードコントローラ１５３の制御に基づいて、フレームメモリ１３１−３に保持されているフレーム画像データのうちの出力画像、すなわち、表示させるフレームのバンクを指定して読み出し、出力する。
【０３８４】
次に、デコーダ１２２の動作について説明する。ここでは、その一例として、Ｎ１５、Ｍ３のMPEG LongGOPをデコードする場合について説明する。
【０３８５】
入力処理部１５１に供給されるそれぞれのＧＯＰは、図４７に示されるように、Ｉ，Ｐ，Ｂピクチャにより構成されるそれぞれのピクチャのデータ以外に、ＧＯＰのヘッダ情報を含んでいる。ＧＯＰのヘッダ情報は、ＨＤＤ１６に保持されているストリームデータを構成するそれぞれのＧＯＰに予め付与されているか、または、ＣＰＵ１２１の処理によりＧＯＰのヘッダ情報が生成されて、ＨＤＤ１６から読み出されてデコーダ１２２に供給されるストリームデータを構成するそれぞれのＧＯＰに付与されるようになされている。
【０３８６】
ＧＯＰのヘッダ情報には、例えば、GOP ID、そのGOPに含まれるフレームの数、および、そのフレームに含まれるアンカーフレームの数などが含まれる。
【０３８７】
入力処理部１５１は、ピクチャデータをストリームバッファ１３１−１に供給するとともに、ＧＯＰのヘッダ情報と、ピクチャ単位の先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどの情報を、ストリーム情報バッファ１３１−２に供給する。
【０３８８】
ストリーム情報バッファ１３１−２は、上述したＧＯＰのヘッダ情報と、ピクチャ単位の先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどの情報を保持する。
【０３８９】
デコードコントローラ１５３は、ストリーム情報バッファ１３１−２に保存されている、上述したＧＯＰのヘッダ情報とピクチャ単位の先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどの情報とを基に、デコード対象のGOPのそれぞれのピクチャのデコード関連情報を生成し、そのGOPのヘッダ情報と表示順にリオーダした表示順のデコード関連情報により構成される、図４８に示されるストリームバッファGOPキューを管理する。
【０３９０】
デコード関連情報は、ピクチャ出力要求時のデコード処理において必要になる情報であり、例えば、該当するピクチャが、保有アンカーフレームであるか、非保有アンカーフレームであるか、GOPの先頭のBピクチャであるか、GOPの先頭以外のBピクチャであるかを示すタイプ情報、デコード済みのベースバンド画像の格納先を示す情報であるデコード画格納先バンク、該当するピクチャをデコードするために必要である参照画像のうちの前方向の参照画を示す前方参照画Index番号、および、該当するピクチャをデコードするために必要である参照画像のうちの後ろ方向の参照画を示す後方参照画Index番号のうちの、必要なもので構成される。
【０３９１】
ストリームバッファGOPキューにおいては、１GOP分のデコード関連情報が１つのデータ単位として管理されるようになされており、例えば、FIFO(First in First Out)で構成されるか、または、新たなデータがPUSHされた場合に、現在再生中のGOPから最も離れたGOPの情報がPOPされるようになされている。
【０３９２】
上述した第１の実施の形態の再生装置１においては、すべてのアンカーフレームをＢピクチャの前に予めデコードしておくようになされていたが、これに対して、デコーダ１２２においては、すべてのアンカーフレームではなく、数枚おきに選択されたアンカーフレームのみをＢピクチャの前に予めデコードするようになされる。
【０３９３】
具体的には、例えば、デコーダ１２２においては、図４９に示されるように、ＧＯＰ内のアンカーフレームを、Iピクチャから１つおきに予めデコードしておくようにしてもよい。以下、予めデコードされ、バンクに保持されるアンカーフレームを保有アンカーフレーム、予めデコードされない、すなわち、予めバンクに保持されないアンカーフレームを非保有アンカーフレームと称するものとする。
【０３９４】
具体的には、例えば、N:15、M:3、GOP ID 1のGOPが入力され、GOP ID 1のGOPの保有アンカーフレームが使用している先頭バンクが“1”である場合（図５２を用いて後述するGOP保有アンカー情報に記載される）、図５０に示されるように、ストリームバッファＧＯＰキューに情報が蓄積される。
【０３９５】
すなわち、該当するＧＯＰのＧＯＰヘッダ情報には、GOP ID１、フレーム数１５、および、アンカーフレーム数５が記載される。そして、デコード関連情報には、ピクチャの表示順にリオーダリングされたそれぞれのピクチャのピクチャタイプ、デコード画格納先バンク、前方参照画インデックス番号および後方参照画インデックス番号が記載される。ここでは、ピクチャタイプは、Ｉ，Ｂ，Ｐの分類ではなく、保有アンカーフレームであるか、非保有アンカーフレームであるか、ＧＯＰの先頭の２枚のＢピクチャのうちのいずれかであるか（先頭Ｂピクチャ）、または、ＧＯＰの先頭以外のＢピクチャのうちのいずれかであるか（非先頭Ｂピクチャ）の分類で示される。そして、インデックス２のＩピクチャ、インデックス８のＰピクチャ、および、インデックス１４のＰピクチャが保有アンカーフレームとされ、インデックス５のＰピクチャ、および、インデックス１１のＰピクチャが非保有アンカーフレームとされる。
【０３９６】
そして、デコード画格納先バンクは、保有アンカーフレームのみ予め確定され、バンクナンバーが記載されるが、非保有アンカーフレームおよびＢピクチャにおいては、デコード関連情報が生成される時点においては、まだ確定されていないため、不定値となる。また、インデックス番号が0、1である先頭Ｂピクチャ（前GOPのIピクチャまたはPピクチャを参照画像とするＢピクチャ）の前方参照画インデックス番号は、初期設定時にストリームバッファに前GOPが存在していない可能性があるため、この時点では設定されず、デコード時に前GOPの最後のIピクチャまたはPピクチャを検索して、検索されたときに設定される。そして、それ以外のＢピクチャの前方参照画インデックス番号および後方参照画インデックス番号、および、Ｐピクチャの前方参照画インデックス番号が、それぞれ設定される。
【０３９７】
デコードコントローラ１５３によるストリームバッファGOPキューを利用したピクチャの管理処理の詳細については、図５９のフローチャートを用いて後述する。
【０３９８】
そして、デコードコントローラ１５３は、ストリームバッファGOPキューによって管理されているデコード関連情報を基に、供給されたストリームデータにおけるそれぞれのフレームのデコードのタイミングを制御する。
【０３９９】
すなわち、デコードコントローラ１５３は、すべてのアンカーフレームではなく、例えば、図４９を用いて説明した場合のように、Iピクチャから１枚おきとなるアンカーフレームか、または、数枚おきに選択されたアンカーフレームのみを、保有アンカーフレームとして設定し、Ｂピクチャがデコードされる前のデコード処理の空き時間に、デコード処理部１５４によって予めデコードさせるように、セレクタ１５２を制御する。
【０４００】
上述したように、デコード処理部１５４は、１フレームの表示時間に対して充分に短い持間（例えば、１フレームの表示時間の１／３乃至１／４程度）で、１フレームをデコードすることが可能である。したがって、デコードコントローラ１５３は、フレームメモリ１３１−３に保持可能な数の保有アンカーフレームが、１GOP単位で予めデコードされて、フレームメモリ１３１−３の所定のバンクに供給されて、保持されるよう、セレクタ１５２、セレクタ１５５、および、セレクタ１５６をそれぞれ制御する。
【０４０１】
ＧＯＰ内の１つおきのアンカーフレームが保有アンカーフレームとされ、フレームメモリ１３１−３として、Ｘフレームのベースバンド画像データを一時保持する領域、および、２フレーム分の表示用画像データを一時保持する領域を確保することができた場合、すなわち、Ｘ＋２バンクのバンクメモリが確保された場合のバンク構成図を、図５１に示す。
【０４０２】
フレームメモリ１３１−３のＸ＋２フレーム分のバンクのうち、２バンクは、Ｂピクチャまたは非保有アンカーフレームの表示専用バンクに用いられる。そして、それ以外のバンク、すなわち、Ｘフレーム分のバンクは、参照画像用に用いられる。Ｘフレーム分の参照画像用バンクのうち、１つは、保有アンカーフレームが予めデコードされるときに参照画像として用いる非保有アンカーフレームのベースバンド画像を格納するための非保有アンカーバンクとして用いられる。そして、他の１つは、表示されるＢピクチャがデコードされるときに参照画像として用いる非保有アンカーフレームのベースバンド画像を格納するためのＢピクチャ表示用非保有アンカーバンクとして用いられる。そして、それ以外のＸ−２フレーム分のバンクが、デコードされた保有アンカーフレームを格納する保有アンカーバンクとして用いられる。
【０４０３】
具体的には、保有アンカーフレームであるＩピクチャがデコードされる場合、Ｉピクチャは単独でデコードされ、保有アンカーバンクに格納される。また、保有アンカーフレームであるＰピクチャがデコードされる場合、一つ前のアンカーフレームである非保有アンカーフレームが、更に一つ前のアンカーフレームである、保有アンカーバンクに格納されている保有アンカーフレームのベースバンド画像を参照してデコードされて、非保有アンカーバンクに格納されるので、これを参照して、保有アンカーフレームであるＰピクチャがデコードされて、保有アンカーバンクに格納される。
【０４０４】
そして、保有アンカーバンクにアンカーフレームが予め保有されているGOPにおけるいずれかのフレームの表示が指令された場合、表示されるのが保有アンカーフレームであれば、保有アンカーバンクに格納されている保有アンカーフレームのベースバンド画像が読み出されて表示される。また、表示されるのが非保有アンカーフレームであれば、保有アンカーバンクに格納されている保有アンカーフレームのベースバンド画像が参照画像に用いられて、表示される非保有アンカーフレームがデコードされて、表示専用バンクである、Ｂ・非保有アンカー表示バンクに格納されて表示される。そして、表示されるのがＢピクチャであれば、非保有アンカーフレームが、その一つ前のアンカーフレームである、保有アンカーバンクに格納されている保有アンカーフレームのベースバンド画像が参照されてデコードされて、Ｂピクチャ表示用非保有アンカーバンクに格納され、保有アンカーバンクに格納されている保有アンカーフレームのベースバンド画像とともに参照されて、表示されるＢピクチャがデコードされて、表示専用バンクに格納されて表示される。
【０４０５】
すなわち、GOPに含まれる保有アンカーフレームと、保有アンカーフレームをデコードするための参照画として必要となる非保有アンカーフレームが、予めデコードされ、フレームメモリ１３１−３に保持される。非保有アンカーフレームのうち、保有アンカーフレームをデコードするための参照画として必要とならないもの（例えば、GOP内の時間的に最後のアンカーフレームが非保有アンカーフレームである場合）は、表示が指令されるまで、デコード処理を実行しなくてもよい。
【０４０６】
図５２を参照して、デコードコントローラ１５３による、フレームメモリ１３１−３の管理について説明する。
【０４０７】
デコードコントローラ１５３は、図５２に示されるように、保有アンカー情報と、ＧＯＰ保有アンカーキューに保持される複数フレーム分のＧＯＰ保有アンカー情報とを用いて、保有アンカーフレームのデコード処理のタイミングを制御する。保有アンカー情報はGOP保有アンカーキューを作成するために必要な情報であり、使用している先頭バンクおよび後尾バンク、並びに、使用しているバンク数に関する情報が含まれている。GOP保有アンカーキューは先頭と後尾の両方にPushできる双方向キューであり、保有アンカー情報に記載されている、使用している先頭バンクから後尾バンクの間に保持されている保有アンカーフレームに関する情報であるGOP保有アンカー情報をGOPごとに保持する。GOP保有アンカー情報は、各GOPの保有アンカーフレームのベースバンド画像のバンク格納先を決定する際に必要となる情報であり、GOP保有アンカー情報には、対応するGOPのGOP ID、そのGOPの保有アンカーフレームが使用している先頭バンク、および、そのGOPの保有アンカーフレームが使用しているバンク数が含まれている。
【０４０８】
デコードコントローラ１５３は、表示される非保有アンカーフレームまたはBピクチャのデコードが行われていないタイミングを利用して、保有アンカーフレームを優先的にデコードさせるようなデコード順のスケジューリングを行い、セレクタ１５６を制御して、保有アンカーフレームをデコード処理部１５４に供給させてデコード処理を実行させるとともに、保有アンカー情報と、ＧＯＰ保有アンカーキューに保持される複数フレーム分のＧＯＰ保有アンカー情報とを参照しながら、デコード済みの保有アンカーフレームのベースバンド画像データがフレームメモリ１３１−３のうちのいずれの参照バンクに格納されるかを決定し、セレクタ１５５を制御して、フレームメモリ１３１−３の参照バンクの所定の位置にデコード済みの保有アンカーフレームのベースバンド画像データを格納する。
【０４０９】
予めデコードされる保有アンカーフレームがIピクチャである場合、セレクタ１５２が制御されて、Iピクチャがデコード処理部１５４に供給されて、デコードされた後、セレクタ１５５が制御されて、フレームメモリ１３１−３の参照バンクのうちの保有アンカーバンクのいずれかに格納される。
【０４１０】
また、予めデコードされる保有アンカーフレームがＰピクチャである場合、先に、その直前の非保有アンカーフレームがデコード処理部１５４に供給されて、デコードされた後、セレクタ１５５が制御されて、フレームメモリ１３１−３の参照バンクの非保有アンカーバンクに格納される。そして、セレクタ１５２が制御されて、保有アンカーフレームであるPピクチャがデコード処理部１５４に供給されるとともに、セレクタ１５６が制御されて、非保有アンカーバンクに格納されたベースバンド画像データが参照されて、Pピクチャのデコード処理が実行され、セレクタ１５５が制御されて、フレームメモリ１３１−３の参照バンクのうちの保有アンカーバンクのいずれかに格納される。
【０４１１】
デコードコントローラ１５３は、供給されたGOPに含まれるアンカーフレームのうち、予めデコード処理が実行される、保有アンカーフレーム、および、保有アンカーフレームをデコードするための参照画として必要となる非保有アンカーフレームのデコードのスケジュールと、デコード後の参照バンクのバンク位置を、アンカーフレームデコードキューを用いて管理する。すなわち、デコードコントローラ１５３は、GOPの先頭から、それぞれのピクチャが、保有アンカーフレーム、または、保有アンカーフレームをデコードするための参照画として必要となる非保有アンカーフレームであるかを判断し、これらの予めデコードされるピクチャにおいて、それぞれのデコード後のベースバンド画像データが保持されるバンク位置を設定し、アンカーフレームデコードキューにPUSHする。
【０４１２】
図５３および図５４を参照して、保有アンカーバンクの管理の具体的な処理の一例について説明する。ここでは、保有アンカーバンクとして、１０バンク利用可能である場合、すなわち、フレームメモリ１３１−３に、１４フレーム分のベースバンド画像データを保持することができる場合について説明する。
【０４１３】
まず、図５３Ａの状態において、予めデコードされたGOP ID 1、2、3の保有アンカーフレームのベースバンド画像が、それぞれ、フレームメモリ１３１−３の１０バンクの保有アンカーバンクのうちのバンク0乃至3、バンク4乃至6、バンク7乃至9に格納されている。このときデコードコントローラ１５３が管理している保有アンカー情報およびＧＯＰ保有アンカーキューは、図５３Ｂの状態となる。すなわち、保有アンカー情報により、使用している先頭バンクは１、使用している後尾バンクは９、使用しているバンク数は９であることが管理され、ＧＯＰ保有アンカーキューにより、GOP ID1の保有アンカーバンクが、バンク１から３つのバンクを利用しており、GOP ID２の保有アンカーバンクが、バンク４から３つのバンクを利用しており、GOP ID３の保有アンカーバンクが、バンク７から３つのバンクを利用していることが管理されている。
【０４１４】
次に、アンカーフレーム数5のGOP ID 4のストリームデータが供給された場合、GOP ID 4のGOPの保有アンカーフレーム数は３となり、現在空いているバンクは、バンク１０のみであって、GOP ID 4のGOPの保有アンカーフレームのすべてを格納することができないため、現在格納されているいずれかのGOPの保有アンカーフレームを保有アンカーバンクから削除する必要が生じる。
【０４１５】
そこで、デコードコントローラ１５３は、現在GOP保有アンカーキューに保持されている情報のうち、GOP ID 4に最も遠いGOPに関する情報であるGOP ID 1のGOP保有アンカー情報をGOP保有アンカーキューからPOPし、GOP ID 4のGOP保有アンカー情報をGOP保有アンカーキューの後尾にPUSHする。
【０４１６】
そのときのフレームメモリ１３１−３の１０バンクの保有アンカーバンクの状態を図５４Ａに、保有アンカー情報およびGOP保有アンカーキューの状態を図５４Ｂに示す。すなわち、フレームメモリ１３１−３の１０バンクの保有アンカーバンクのうちのバンク4乃至6にはGOP ID２の保有アンカーフレームが、バンク7乃至9にはGOP ID３の保有アンカーフレームが、図５３を用いて説明した場合と同様にしてそれぞれ格納されており、新たに供給されたGOP ID４の保有アンカーフレームが、バンク１０、バンク１、およびバンク２に格納される。そして、保有アンカー情報により、使用している先頭バンクは４、使用している後尾バンクは２、使用しているバンク数は９であることが管理され、ＧＯＰ保有アンカーキューにより、GOP ID２の保有アンカーバンクが、バンク４から３つのバンクを利用しており、GOP ID３の保有アンカーバンクが、バンク７から３つのバンクを利用しており、GOP ID４の保有アンカーバンクが、バンク１０から３つのバンクを利用していることが管理されている。
【０４１７】
次に、図５５のフローチャートを参照して、デコーダ１２２が実行するストリーム再生処理１について説明する。
【０４１８】
ステップＳ６０１において、デコーダ１２２のデコードコントローラ１５３は、入力処理部１５１に新たなＧＯＰが供給されたか否かを判断する。ステップＳ６０１において、新たなＧＯＰが供給されていないと判断された場合、処理は、ステップＳ６０４に進む。
【０４１９】
ステップＳ６０２において、図５６のフローチャートを用いて後述するストリーム入力時の処理１が実行される。
【０４２０】
ステップＳ６０３において、デコードコントローラ１５３は、図４８を用いて説明したストリームバッファＧＯＰキューの情報に基づいて、ストリームバッファ１３１−１へのストリームデータの入力を制御する。
【０４２１】
ステップＳ６０１において、新たなＧＯＰが供給されていないと判断された場合、または、ステップＳ６０３の処理の終了後、ステップＳ６０４において、デコードコントローラ１５３は、表示のためのデコード処理のタイミング以外のタイミングであるか否かを基に、アンカーフレームデコード開始コマンドが供給されることにより、デコード開始が指令されたＧＯＰのアンカーフレームのデコード処理が可能であるか否かを判断する。
【０４２２】
ステップＳ６０４において、アンカーフレームのデコード処理が可能であると判断された場合、ステップＳ６０５において、デコードコントローラ１５３は、フレームメモリ１３１−３の保有アンカーバンクに、デコード開始が指令されたＧＯＰのアンカーフレームが保持されているか否かを判断する。
【０４２３】
ステップＳ６０５において、デコード開始が指令されたＧＯＰのアンカーフレームが保持されていないと判断された場合、ステップＳ６０６において、デコードコントローラ１５３は、ステップＳ６０２のストリーム入力時の処理１において実行されるアンカーフレームデコードスケジュール処理（図５８を用いて後述する）によるスケジューリングに基づいて、セレクタ１５２、セレクタ１５５、セレクタ１５６、および、デコード処理部１５４を制御して、ストリームバッファ１３１-１に供給されていてまだデコードされていないアンカーフレームのデコードを制御する。デコード処理部１５４は、セレクタ１５６から供給される参照画像を用いて、セレクタ１５２から供給されたアンカーフレームのデコード処理を実行し、セレクタ１５５に供給する。セレクタ１５５は、デコードされて得られたアンカーフレームのベースバンド画像データを、フレームメモリ１３１-３の所定のバンク位置に格納する。
【０４２４】
ステップＳ６０４において、アンカーフレームのデコード処理が可能ではないと判断された場合、ステップＳ６０５において、デコード開始が指令されたＧＯＰのアンカーフレームが保持されていると判断された場合、または、ステップＳ６０６の処理の終了後、ステップＳ６０７において、デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号に基づいて、いずれかのフレームの出力が要求されたか否かを判断する。
【０４２５】
ステップＳ６０７において、いずれかのフレームの出力が要求されたと判断された場合、ステップＳ６０８において、図６０乃至図６２または図６８乃至図７０を用いて後述する出力処理が実行される。
【０４２６】
ステップＳ６０７において、いずれかのフレームの出力が要求されなかったと判断された場合、または、ステップＳ６０８の処理の終了後、ステップＳ６０９において、デコードコントローラ１５３は、入力処理部１５１へのストリームの供給が終了されたか否かを判断する。ステップＳ６０９において、ストリームの供給が終了されていないと判断された場合、処理は、ステップＳ６０１に戻り、それ以降の処理が繰り返される。
【０４２７】
ステップＳ６０９において、ストリームの供給が終了されたと判断された場合、ステップＳ６１０において、デコードコントローラ１５３は、供給されたストリームの再生処理が終了されたか否かを判断する。ステップＳ６１０において、供給されたストリームの再生処理が終了されていないと判断された場合、処理は、ステップＳ６０４に戻り、それ以降の処理が繰り返される。ステップＳ６１０において、供給されたストリームの再生処理が終了されたと判断された場合、処理は終了される。
【０４２８】
このような処理により、デコーダ１２２において、転送されたＧＯＰに含まれるアンカーフレームが優先的にデコードされ、そのうちの少なくとも一部である保有アンカーフレームがフレームメモリ１３１−３の保有アンカーバンクに保持されるので、いずれかのフレームの出力が指令された場合に必要なデコード枚数を減少することができ、レスポンスが向上するとともに、全てのアンカーフレームを予めデコードしてメモリバンクに保持しておく場合と比較して、少ないメモリ容量で、できるだけ広い範囲のランダム再生やスクラブ再生、または、短い区間で正方向と逆方向の再生を連続して指令するトランジェント再生などの表示レスポンスを向上させるようにすることができる。
【０４２９】
次に、図５６のフローチャートを参照して、図５５のステップＳ６０２において実行される、ストリーム入力時の処理１について説明する。
【０４３０】
ステップＳ６３１において、デコーダ１２２のデコードコントローラ１５３は、入力処理部１５１に入力されたピクチャはＩピクチャであるか否かを判断する。ステップＳ６３１において、入力されたピクチャはＩピクチャであると判断された場合、処理は、後述するステップＳ６３３に進む。
【０４３１】
ステップＳ６３１において、入力されたピクチャはＩピクチャではないと判断された場合、ステップＳ６３２において、デコードコントローラ１５３は、入力処理部１５１に入力されたピクチャはＰピクチャであるか否かを判断する。
【０４３２】
ステップＳ６３２において、入力されたピクチャはＰピクチャであると判断された場合、処理は、後述するステップＳ６３５に進む。ステップＳ６３２において、入力されたピクチャはＰピクチャではないと判断された場合、すなわち、入力されたピクチャはＢピクチャであると判断された場合、処理は、後述するステップＳ６３６に進む。
【０４３３】
ステップＳ６３１において、入力されたピクチャはＩピクチャであると判断された場合、ステップＳ６３３において、デコードコントローラ１５３は、図４８を用いて説明したＧＯＰのヘッダ情報から、ＧＯＰ  ＩＤと、アンカーフレームの数を取得する。
【０４３４】
ステップＳ６３４において、図５７を用いて後述する保有アンカーバンク管理処理が実行される。
【０４３５】
ステップＳ６３２において、入力されたピクチャはＰピクチャであると判断された場合、または、ステップ６３４の処理の終了後、ステップＳ６３５において、図５８を用いて後述するアンカーフレームデコードスケジュール処理が実行される。
【０４３６】
ステップＳ６３２において、入力されたピクチャはＰピクチャではない、すなわち、入力されたピクチャはＢピクチャであると判断された場合、または、ステップ６３５の処理の終了後、ステップＳ６３６において、図５９を用いて後述するストリームバッファGOPキューを利用したピクチャの管理処理が実行される。
【０４３７】
そして、ステップＳ６３７において、デコードコントローラ１５３は、入力処理部１５１に入力されたピクチャはＧＯＰの最後のピクチャであるか否かを判断する。ステップＳ６３７において、入力されたピクチャはＧＯＰの最後のピクチャではないと判断された場合、処理は、ステップＳ６３１に戻り、それ以降の処理が繰り返される。ステップＳ６３７において、入力されたピクチャはＧＯＰの最後のピクチャであると判断された場合、処理は、図５５のステップＳ６０２に戻り、ステップＳ６０３に進む。
【０４３８】
このような処理により、保有アンカーバンクが管理され、アンカーフレームのデコード順がスケジュールされるとともに、入力されるピクチャが管理される。
【０４３９】
次に、図５７のフローチャートを参照して、図５６のステップＳ６３４において実行される、保有アンカーバンク管理処理について説明する。
【０４４０】
ステップＳ６６１において、デコードコントローラ１５３は、図４８を用いて説明したＧＯＰのヘッダ情報から、入力されたＧＯＰに必要な保有アンカーバンクの数を求める。
【０４４１】
具体的には、保有アンカーバンクを、Ｉピクチャから１ピクチャおきのアンカーバンクに設定するものとされている場合、入力されたＧＯＰに必要な保有アンカーバンクの数は、そのＧＯＰのアンカーバンク数の１／２以上となる最も小さな整数であり、例えば、そのＧＯＰのアンカーバンク数が５であるとき、３フレーム分の保有アンカーバンクが必要となる。
【０４４２】
ステップＳ６６２において、デコードコントローラ１５３は、フレームメモリ１３１−３において現在使用中の保有アンカーバンク数と、入力されたＧＯＰに必要な保有アンカーバンク数の合計は、フレームメモリ１３１−３に用意された保有アンカーバンク数よりも少ないか否かを判断する。ステップＳ６６２において、現在使用中の保有アンカーバンク数と、入力されたＧＯＰに必要なアンカーバンク数の合計は、フレームメモリ１３１−３に用意された保有アンカーバンク数よりも少ないと判断された場合、すなわち、フレームメモリ１３１−３において現在使用されていない保有アンカーバンクの数は、入力されたＧＯＰに必要な保有アンカーバンクの数よりも多いので、現在保有アンカーバンクに保持されているいずれかの保有アンカーフレームを削除する必要はないと判断された場合、処理は、後述するステップＳ６６７に進む。
【０４４３】
ステップＳ６６２において、現在使用中の保有アンカーバンク数と、入力されたＧＯＰに必要なアンカーバンク数の合計は、フレームメモリ１３１−３に用意された保有アンカーバンク数よりも多いと判断された場合、すなわち、フレームメモリ１３１−３において現在使用されていない保有アンカーバンクの数は、入力されたＧＯＰに必要な保有アンカーバンクの数よりも少ないので、現在保有アンカーバンクに保持されているいずれかの保有アンカーフレームを削除する必要があると判断された場合、ステップＳ６６３において、デコードコントローラ１５３は、入力されたＧＯＰのGOP IDは、図５２を用いて説明したGOP保有アンカーキューの先頭にキューされている情報のGOP IDよりも、後尾にキューされている情報のGOP IDに近い値であるか否かを判断する。
【０４４４】
ステップＳ６６３において、入力されたＧＯＰのGOP IDは、GOP保有アンカーキューの先頭にキューされている情報のGOP IDよりも、後尾にキューされている情報のGOP IDに近い値であると判断された場合、ステップＳ６６４において、デコードコントローラ１５３は、GOP保有アンカーキューの先頭にキューされている情報をＰＯＰする。
【０４４５】
ステップＳ６６３において、入力されたＧＯＰのGOP IDは、GOP保有アンカーキューの先頭にキューされている情報のGOP IDよりも、後尾にキューされている情報のGOP IDに近い値ではない、すなわち、GOP保有アンカーキューの先頭にキューされている情報のGOP IDに近い値であると判断された場合、ステップＳ６６５において、デコードコントローラ１５３は、GOP保有アンカーキューの後尾にキューされている情報をＰＯＰする。
【０４４６】
ステップＳ６６４またはステップＳ６６５の処理の終了後、ステップＳ６６６において、デコードコントローラ１５３は、図５２を用いて説明した保有アンカー情報を更新し、処理は、ステップＳ６６２に戻り、それ以降の処理が繰り返される。
【０４４７】
ステップＳ６６２において、現在使用中の保有アンカーバンク数と、入力されたＧＯＰに必要なアンカーバンク数の合計は、フレームメモリ１３１−３に用意された保有アンカーバンク数よりも少ないと判断された場合、すなわち、フレームメモリ１３１−３において現在使用されていない保有アンカーバンクの数は、入力されたＧＯＰに必要な保有アンカーバンクの数よりも多いので、現在保有アンカーバンクに保持されているいずれかの保有アンカーフレームを削除する必要はないと判断された場合、ステップＳ６６７において、デコードコントローラ１５３は、入力されたＧＯＰのGOP保有アンカー情報を生成する。
【０４４８】
ステップＳ６６８において、デコードコントローラ１５３は、現在使用中の保有アンカーバンク数は０であるか否かを判断する。
【０４４９】
ステップＳ６６８において、現在使用中の保有アンカーバンク数は０であると判断された場合、ステップＳ６６９において、デコードコントローラ１５３は、GOP保有アンカーキューに、入力されたＧＯＰのGOP保有アンカー情報をPUSHする。
【０４５０】
ステップＳ６６８において、現在使用中の保有アンカーバンク数は０ではないと判断された場合、ステップＳ６７０において、デコードコントローラ１５３は、入力されたＧＯＰのGOP IDは、GOP保有アンカーキューの先頭にキューされている情報のGOP IDよりも、後尾にキューされている情報のGOP IDに近い値であるか否かを判断する。
【０４５１】
ステップＳ６７０において、入力されたＧＯＰのGOP IDは、GOP保有アンカーキューの先頭にキューされている情報のGOP IDよりも、後尾にキューされている情報のGOP IDに近い値であると判断された場合、ステップＳ６７１において、デコードコントローラ１５３は、GOP保有アンカーキューの先頭に、入力されたＧＯＰのGOP保有アンカー情報をPUSHする。
【０４５２】
ステップＳ６７０において、入力されたＧＯＰのGOP IDは、GOP保有アンカーキューの先頭にキューされている情報のGOP IDよりも、後尾にキューされている情報のGOP IDに近い値ではないと判断された場合、ステップＳ６７２において、デコードコントローラ１５３は、GOP保有アンカーキューの後尾に、入力されたＧＯＰのGOP保有アンカー情報をPUSHする。
【０４５３】
ステップＳ６６９、ステップＳ６７１、または、ステップＳ６７２の処理の終了後、ステップＳ６７３において、デコードコントローラ１５３は、図５２を用いて説明した保有アンカー情報を更新し、処理は、図５６のステップＳ６３４に戻り、ステップＳ６３５に進む。
【０４５４】
このような処理により、できるだけ広い範囲のＧＯＰにおいて、スクラブ再生やトランジェント再生などのレスポンスを向上することができるように、所定数設けられている保有アンカーバンクに格納されるフレームが管理される。
【０４５５】
すなわち、この処理においては、シームレスなGOP入力の場合は、これから表示しようとしているGOPのための保有アンカーバンクを確保する際に、最も遠いGOPのための保有アンカーバンクが解放され、新たなＧＯＰの保有アンカーフレームが上書きされる。これにより、簡単な管理方法で、シームレスなGOP入力の場合は、現在表示しているGOPの保有アンカーフレームがなくならないことが保証され、可変速再生で滑らかな再生が可能になる。また、入力されるそれぞれのGOPのアンカーフレーム数が異なっても保有アンカーバンクをできるだけ有効に使用することができる。これにより、より多くのGOPの保有アンカーフレームを保有アンカーバンクに格納することができるので、簡単な管理方法で、できるだけ広い範囲のＧＯＰにおいて、スクラブ再生やトランジェント再生などのレスポンスを向上することができる。
【０４５６】
次に、図５８のフローチャートを参照して、図５６のステップＳ６３５において実行される、アンカーフレームデコードスケジュール処理について説明する。
【０４５７】
ステップＳ７０１において、デコードコントローラ１５３は、入力されたピクチャは、保有アンカーフレームであるか否かを判断する。
【０４５８】
ステップＳ７０１において、入力されたピクチャは、保有アンカーフレームではない、すなわち、非保有アンカーフレームであると判断された場合、ステップＳ７０２において、デコードコントローラ１５３は、入力された非保有アンカーフレームの同一ＧＯＰ内の時間的に後ろに、保有アンカーフレームが存在するか否か、換言すれば、入力された非保有アンカーフレームは、同一ＧＯＰ内の保有アンカーフレームをデコードするための参照画像として必要であるか否かを判断する。
【０４５９】
ステップＳ７０２において、入力された非保有アンカーフレームの同一ＧＯＰ内の時間的に後ろに、保有アンカーフレームが存在しない、すなわち、入力された非保有アンカーフレームは、同一ＧＯＰ内の保有アンカーフレームをデコードするための参照画像として必要ではないと判断された場合、処理は、図５６のステップＳ６３５に戻り、ステップＳ６３６に進む。
【０４６０】
ステップＳ７０１において、入力されたピクチャは、保有アンカーフレームであると判断された場合、または、ステップＳ７０２において、入力された非保有アンカーフレームの同一ＧＯＰ内の時間的に後ろに、保有アンカーフレームが存在する、すなわち、入力された非保有アンカーフレームは、同一ＧＯＰ内の保有アンカーフレームをデコードするための参照画像として必要であると判断された場合、ステップＳ７０３において、デコードコントローラ１５３は、入力されたピクチャの、デコード後のベースバンド画像データの、フレームメモリ１３１−３における参照バンクのバンク位置を設定する。
【０４６１】
具体的には、デコードコントローラ１５３は、保有アンカーフレームについては、図５７を用いて説明した保有アンカーバンク管理処理において設定されたGOP保有アンカーキューのGOP保有アンカー情報に基づいて、フレームメモリ１３１−３のうちの保有アンカーバンクの対応する位置を、デコード後のベースバンド画像データの格納先として設定し、非保有アンカーフレームについては、非保有アンカーバンクを、デコード後のベースバンド画像データの格納先として設定する。
【０４６２】
ステップＳ７０４において、デコードコントローラ１５３は、設定した情報を、アンカーフレームデコードキューにＰＵＳＨし、処理は、図５６のステップＳ６３５に戻り、ステップＳ６３６に進む。
【０４６３】
このような処理により、アンカーフレームのデコードがスケジューリングされる。
【０４６４】
次に、図５９のフローチャートを参照して、図５６のステップＳ６３６において実行される、ストリームバッファGOPキューを利用したピクチャの管理処理について説明する。
【０４６５】
ステップＳ７３１において、デコードコントローラ１５３は、ストリームバッファに入力されるピクチャは、Ｉピクチャであるか否かを判断する。ステップＳ７３１において、Ｉピクチャではないと判断された場合、処理は、後述するステップＳ７３６に進む。
【０４６６】
ステップＳ７３１において、Ｉピクチャであると判断された場合、ステップＳ７３２において、デコードコントローラ１５３は、ストリームバッファＧＯＰキューには、空きがあるか否かを判断する。
【０４６７】
ステップＳ７３２において、ストリームバッファＧＯＰキューに空きがないと判断された場合、ステップＳ７３３において、デコードコントローラ１５３は、ストリームバッファＧＯＰキューに保持されているＧＯＰ情報のうち、最初に削除されるべき所定のＧＯＰ情報をＰＯＰする。具体的には、例えば、ストリームバッファＧＯＰキューが、FIFOで構成されている場合、PUSHされた時刻が最も早かったＧＯＰ情報がPOPされるようになされており、ストリームバッファＧＯＰキューが、新たなデータがPUSHされた場合に、現在再生中のGOPから最も離れたGOPの情報がPOPされるようになされている場合、在再生中のGOPのGOP IDから最も離れたGOP IDを有するGOPがPOPされる。
【０４６８】
ステップＳ７３２において、ストリームバッファＧＯＰキューに空きがあると判断された場合、または、ステップＳ７３３の処理の終了後、ステップＳ７３４において、デコードコントローラ１５３は、ストリームバッファＧＯＰキューに、ストリームバッファに入力されるＧＯＰのＧＯＰ情報をＰＵＳＨする。
【０４６９】
ステップＳ７３５において、デコードコントローラ１５３は、ＧＯＰのヘッダ情報を取得し、ストリームバッファＧＯＰキューにＧＯＰ情報として記載する。
【０４７０】
ステップＳ７３１において、Ｉピクチャではないと判断された場合、または、ステップＳ７３５の処理の終了後、ステップＳ７３６において、デコードコントローラ１５３は、取得されたピクチャに対応する、図５０を用いて説明したデコード関連情報を生成して、ＧＯＰ情報に記載する。
【０４７１】
ステップＳ７３７において、デコードコントローラ１５３は、必要に応じて、デコード関連情報をリオーダする。具体的には、ストリームバッファには、それぞれのピクチャがストリームオーダ、すなわち、ＩＢＢＰＢＢＰ・・・の順番で供給されるが、ストリームバッファＧＯＰキューにおいては、ＧＯＰ内のピクチャの並びが、ＢＢＩＢＢＰ・・・の表示順となるように、リオーダ処理が実行される。
【０４７２】
ステップＳ７３７の処理の終了後、処理は、図５６のステップＳ６３６に戻り、ステップＳ６３７に進む。
【０４７３】
このような処理により、ストリームバッファ１３１−１に供給されるそれぞれのＧＯＰと、それらのＧＯＰに含まれるピクチャデータが管理される。
【０４７４】
次に、図６０乃至図６２のフローチャートを参照して、図５５のステップＳ６０８において実行される、出力処理１について説明する。
【０４７５】
ステップＳ７６１において、デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号を基に、出力が要求されたのは、保有アンカーフレームがすでにデコードされているＧＯＰの範囲内のピクチャであるか否かを判断する。
【０４７６】
ステップＳ７６１において、出力が要求されたのは、保有アンカーフレームがすでにデコードされているＧＯＰの範囲内のピクチャではないと判断された場合、すなわち、保有アンカーフレームがすでにデコードされているＧＯＰの範囲外の再生開始位置が指令された場合、ステップＳ７６２において、デコードコントローラ１５３は、参照画像から順番に、通常のデコード処理を実行し、出力して、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０４７７】
具体的には、出力が要求されたフレームを含むＧＯＰは、入力処理部１５１を介して、ストリームバッファ１３１-１に供給されているので、デコードコントローラ１５３は、出力が要求されたフレームがＩピクチャであるか、Ｐピクチャであるか、または、Ｂピクチャであるかに基づいて、セレクタ１５２、デコード処理部１５４、セレクタ１５５、および、セレクタ１５６を制御して、デコード処理を実行するとともに、セレクタ１５７を制御して、デコードされたベースバンド画像データを出力する。
【０４７８】
すなわち、出力が要求されたフレームがＩピクチャである場合、デコードコントローラ１５３は、セレクタ１５２を制御して、出力が要求されたＩピクチャをストリームバッファ１３１−１からデコード処理部１５４に供給してデコードさせ、セレクタ１５５を介してフレームメモリ１３１−３に供給するとともに、セレクタ１５７を制御して、デコードされたベースバンド画像データを出力させる。また、出力が要求されたフレームがＰピクチャまたはＢピクチャである場合、デコードコントローラ１５３は、セレクタ１５２およびセレクタ１５６を制御して、デコード処理部１５４により、まず、必要な参照画像データをデコードさせ、セレクタ１５５を制御して、参照画像データをフレームメモリ１３１-３の所定のバンクに格納させた後、セレクタ１５２およびセレクタ１５６を制御して、デコード処理部１５４により出力が要求されたフレームを、参照画像を参照してデコードさせて、セレクタ１５５を介してフレームメモリ１３１−３に供給するとともに、セレクタ１５７を制御して、デコードされたベースバンド画像データを出力させる。
【０４７９】
ステップＳ７６１において、出力が要求されたのは、保有アンカーフレームがすでにデコードされているＧＯＰの範囲内のピクチャであると判断された場合、ステップＳ７６３において、デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号を基に、出力が要求されたのは、保有アンカーフレームであるか否かを判断する。
【０４８０】
ステップＳ７６３において、出力が要求されたのは、保有アンカーフレームであると判断された場合、ステップＳ７６４において、デコードコントローラ１５３は、セレクタ１５５を制御して、フレームメモリ１３１−３の保有アンカーバンクから、該当する保有アンカーフレームを読み出して、出力し、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０４８１】
ステップＳ７６３において、出力が要求されたのは、保有アンカーフレームではないと判断された場合、ステップＳ７６５において、デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号を基に、出力が要求されたのは、非保有アンカーフレームであるか否かを判断する。ステップＳ７６５において、出力が要求されたのは、非保有アンカーフレームではないと判断された場合、処理は、後述するステップＳ７７０に進む。
【０４８２】
ステップＳ７６５において、出力が要求されたのは、非保有アンカーフレームであると判断された場合、ステップＳ７６６において、デコードコントローラ１５３は、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクに、出力が要求された非保有アンカーフレームが格納されているか否かを判断する。
【０４８３】
ステップＳ７６６において、Ｂ・非保有アンカー表示バンクに、出力が要求された非保有アンカーフレームが格納されていないと判断された場合、ステップＳ７６７において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクを、該当する非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０４８４】
ステップＳ７６８において、デコードコントローラ１５３は、ストリームバッファＧＯＰキューの該当する非保有アンカーフレームのデコード関連情報を参照して、前方参照Index番号に示される参照画像を参照して、該当する非保有アンカーフレームをデコードし、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクに格納する。
【０４８５】
ステップＳ７６６において、Ｂ・非保有アンカー表示バンクに、出力が要求された非保有アンカーフレームが格納されていると判断された場合、または、ステップＳ７６８の処理の終了後、ステップＳ７６９において、デコードコントローラ１５３は、セレクタ１５５を制御して、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクから、該当する非保有アンカーフレームを読み出して、出力し、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０４８６】
ステップＳ７６５において、出力が要求されたのは、非保有アンカーフレームではないと判断された場合、ステップＳ７７０において、デコードコントローラ１５３は、出力が要求されたのは、ＧＯＰの先頭のＢピクチャであるか否かを判断する。ステップＳ７７０において、出力が要求されたのは、ＧＯＰの先頭のＢピクチャではない、すなわち、ＧＯＰの先頭以外の、ＧＯＰ内に参照画像が存在するＢピクチャであると判断された場合、処理は、後述するステップＳ７７９に進む。
【０４８７】
ステップＳ７７０において、出力が要求されたのは、ＧＯＰの先頭のＢピクチャであると判断された場合、ステップＳ７７１において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されているか否かを判断する。ステップＳ７７１において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていると判断された場合、処理は、後述するステップＳ７７８に進む。
【０４８８】
ステップＳ７７１において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていないと判断された場合、ステップＳ７７２において、デコードコントローラ１５３は、保有アンカーバンクに、該当するＢピクチャの両方の参照画像が格納されているか否かを判断する。ステップＳ７７２において、保有アンカーバンクに、該当するＢピクチャの両方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ７７６に進む。
【０４８９】
ステップＳ７７２において、保有アンカーバンクに、該当するＢピクチャの両方の参照画像が格納されていないと判断された場合、ステップＳ７７３において、デコードコントローラ１５３は、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されているか否かを判断する。ステップＳ７７３において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ７７６に進む。
【０４９０】
ステップＳ７７３において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていないと判断された場合、ステップＳ７７４において、デコードコントローラ１５３は、Ｂピクチャ表示用非保有アンカーバンクを、該当するＢピクチャの参照画像となる非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０４９１】
ステップＳ７７５において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、参照画像となる非保有アンカーフレームを、デコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている保有アンカーフレームに対応するベースバンド画像データを、デコード処理部１５４に供給させる。デコード処理部１５４は、参照画像となる非保有アンカーフレームをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされた参照画像となる非保有アンカーフレームを、Ｂピクチャ表示用非保有アンカーバンクに格納する。
【０４９２】
ステップＳ７７２において、保有アンカーバンクに、該当するＢピクチャの両方の参照画像が格納されていると判断された場合、ステップＳ７７３において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、または、ステップＳ７７５の処理の終了後、ステップＳ７７６において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクを、該当するＢピクチャのデコード後のベースバンド画像の格納先として設定する。
【０４９３】
ステップＳ７７７において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、該当するＢピクチャをデコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている該当するＢピクチャの参照画像となる保有アンカーフレーム、または、フレームメモリ１３１−３のＢピクチャ表示用非保有アンカーバンクに格納されている、ステップＳ７７５においてデコードされた非保有アンカーバンクをデコード処理部１５４に供給させる。デコード処理部１５４は、該当するＢピクチャをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされたＢピクチャを、Ｂ・非保有アンカー表示バンクに格納する。
【０４９４】
ステップＳ７７１において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていると判断された場合、または、ステップＳ７７７の処理の終了後、ステップＳ７７８において、デコードコントローラ１５３は、セレクタ１５７を制御して、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクから、該当するＢピクチャを読み出させて、出力させ、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０４９５】
ステップＳ７７０において、出力が要求されたのは、ＧＯＰの先頭のＢピクチャではない、すなわち、ＧＯＰの先頭以外の、ＧＯＰ内に参照画像が存在するＢピクチャであると判断された場合、ステップＳ７７９において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されているか否かを判断する。ステップＳ７７９において、出力が要求されたＢピクチャが格納されていると判断された場合、処理は、後述するステップＳ７８５に進む。
【０４９６】
ステップＳ７７９において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていないと判断された場合、ステップＳ７８０において、デコードコントローラ１５３は、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されているか否かを判断する。ステップＳ７８０において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ７８３に進む。
【０４９７】
ステップＳ７８０において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていないと判断された場合、ステップＳ７８１において、デコードコントローラ１５３は、Ｂピクチャ表示用非保有アンカーバンクを、該当するＢピクチャの参照画像となる非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０４９８】
ステップＳ７８２において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、参照画像となる非保有アンカーフレームを、デコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている保有アンカーフレームを、デコード処理部１５４に供給させる。デコード処理部１５４は、参照画像となる非保有アンカーフレームをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされた参照画像となる非保有アンカーフレームを、Ｂピクチャ表示用非保有アンカーバンクに格納する。
【０４９９】
ステップＳ７８０において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、または、ステップＳ７８２の処理の終了後、ステップＳ７８３において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクを、該当するＢピクチャのデコード後のベースバンド画像の格納先として設定する。
【０５００】
ステップＳ７８４において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、該当するＢピクチャをデコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている該当するＢピクチャの参照画像となる保有アンカーフレーム、または、フレームメモリ１３１−３のＢピクチャ表示用非保有アンカーバンクに格納されている、ステップＳ７８２においてデコードされた非保有アンカーバンクをデコード処理部１５４に供給させる。デコード処理部１５４は、該当するＢピクチャをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされたＢピクチャを、Ｂ・非保有アンカー表示バンクに格納する。
【０５０１】
ステップＳ７７９において、出力が要求されたＢピクチャが格納されていると判断された場合、または、ステップＳ７８４の処理の終了後、ステップＳ７８５において、デコードコントローラ１５３は、セレクタ１５７を制御して、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクから、該当するＢピクチャを読み出して、出力させ、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０５０２】
このような処理により、フレームメモリ１３１−３に予め格納されているベースバンド画像データを利用して、デコード処理が実行されるので、再生出力の指令から、再生出力されるまでのレスポンスを向上することができる。
【０５０３】
ところで、上述した先送り転送のタイミングについては、再生方向および再生速度、並びに、メモリ１３１に蓄積可能なGOPの数などによって異なる。
【０５０４】
図６３乃至図７２を参照して、先送り転送のタイミングの具体例について説明する。
【０５０５】
ここでは、I または P ピクチャの現れる周期Ｍ＝３、GOP内のピクチャ数Ｎ＝１５のLongGOPにおける場合であり、ストリームバッファへ１３１−１への１GOPのデータ転送にかかる時間が、２フレーム表示するために必要となる時間に等しく、デコーダ１２２は、Iピクチャ、Pピクチャ、Bピクチャに関わらず、１フレーム表示するために必要となる時間に３ピクチャをデコードできるものとして説明する。また、ここでは、ストリームデータまたはクリップファイルの連続した再生処理が実行される場合の先送り転送のタイミングについて説明する。
【０５０６】
デコード処理において、あるGOPの先頭のB0ピクチャまたはB1ピクチャのうちの少なくともいずれかをデコードするためには、正方向再生の並び順で、その一つ前のGOPのアンカーフレームが必要である。したがって、正方向の再生時においては、それぞれのGOPの最初に表示されるフレームの再生タイミングに対して、何フレーム先に転送する必要があるかが、先送り転送のタイミングとして制御されるが、これに対して、逆方向の再生時においては、その前に再生されるGOP(正方向再生の並び順で、１つ後ろのGOP)のB0ピクチャまたはB1ピクチャのうちの先に再生されるピクチャが再生されるタイミングに対して、または、B0ピクチャおよびB1ピクチャが再生されない場合は、それぞれのGOPの最初に表示されるフレームの再生タイミングに対して、何フレーム先に転送する必要があるかが、先送り転送のタイミングとして制御される。
【０５０７】
図６３乃至図６８を参照して、ストリームファイルの再生処理における再生方向および再生速度と、先送り転送のタイミングについて説明する。
【０５０８】
まず、図６３を参照して、正方向１倍速再生が行われる場合について説明する。
【０５０９】
例えば、表示３フレーム分の先送り転送が実行された場合、GOP_ID1のB12ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、B0ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB０ピクチャの出力要求の前に、GOP_ ID2に含まれる保有アンカーフレームのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５１０】
また、例えば、表示２フレーム分の先送り転送が実行された場合、GOP_ID1のB13ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、B0ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB０ピクチャの出力要求の前に、GOP_ID2に含まれる保有アンカーフレームのうち、B０ピクチャのデコードの参照画像として用いられるI2ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５１１】
また、例えば、表示１フレーム分の先送り転送が実行された場合、GOP_ID1のP14ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、B0ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB０ピクチャの出力要求の前に、GOP_ID2に含まれる保有アンカーフレームのうち、B0ピクチャのデコードの参照画像として用いられるI2ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５１２】
そして、先送り転送が実行されない場合、GOP_ID2の先頭のB0ピクチャの出力要求から表示1フレームの期間内に、GOP_ID2に含まれる保有アンカーフレームのうち、B0ピクチャのデコードの参照画像として用いられるI2ピクチャおよび表示されるB0ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５１３】
したがって、正方向１倍速再生が行われる場合においては、先送り転送は必ずしも必要ではない。また、この場合において、トランジェント再生を考慮すると、必要な保有アンカーバンク数は、最低３つとなる。
【０５１４】
次に、図６４を参照して、逆方向１倍速、すなわち、−１倍速再生が行われる場合について説明する。
【０５１５】
例えば、表示２フレーム分の先送り転送が実行された(具体的には、例えば、GOP_ID1が、GOP_ID2のB1ピクチャを基準として、2フレーム分の先送り転送が実行された)場合、GOP_ID2のB3ピクチャの出力要求のタイミングで、GOP_ID1のデータが先送り転送される。このとき、GOP_ID1において最初に表示されるP14ピクチャの出力要求の前に、GOP_ID1に含まれる保有アンカーフレームのデコードが終了されるとともに、GOP_ID2のB1ピクチャの出力要求のタイミングよりも早く、GOP_ID2のB1ピクチャの参照画像であるGOP_ID1のP14ピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。
【０５１６】
しかしながら、例えば、表示１フレーム分の先送り転送が実行された場合、GOP_ID2のI2ピクチャの出力要求のタイミングで、GOP_ID1のデータが先送り転送される。このとき、GOP_ID1において最初に表示されるP14ピクチャの出力要求の前に、GOP_ID1に含まれる保有アンカーフレームのデコードは終了されるが、GOP_ID2のB1ピクチャの出力要求のタイミングから表示1フレーム以内に、GOP_ID2のB1ピクチャの参照画像であるGOP_ID1のP14ピクチャがデコードされないので、シームレスに再生処理を実行することができない。
【０５１７】
したがって、逆方向１倍速(−1倍速)再生が行われる場合においては、GOPの境目でシームレスに表示を行うために、先送り転送は、１つ前に再生されるGOP(正方向再生の並び順で、１つ後ろのGOP)のB1ピクチャが再生されるタイミングに対して、表示２フレーム分必要となる。また、この場合において、トランジェント再生を考慮すると、必要な保有アンカーバンク数は、最低６つとなる。
【０５１８】
したがって、例えば、−１乃至＋１倍速のトランジェント再生がシームレスに実行されるためには、必要な保有アンカーバンク数は、最低６つとなり、正方向再生時には、先送り転送の必要がないが、逆方向再生時には、表示４フレーム分の先送り転送が必要となる。
【０５１９】
次に、図６５を参照して、正方向２倍速が行われる場合について説明する。
【０５２０】
正方向２倍速で、表示ピクチャがGOP_ID1においてB1,B3,P5・・・である場合においては、先送り転送が実行されなくても、このとき、B0ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB0ピクチャの出力要求から表示1フレームの期間内に、GOP_ID2に含まれる保有アンカーフレームのうち、B0ピクチャのデコードの参照画像として用いられるI2ピクチャおよび表示されるB0ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５２１】
そして、正方向２倍速で、表示ピクチャがGOP_ID1においてI2,B4,B6・・・である場合においても、先送り転送が実行されなくても、このとき、B1ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB1ピクチャの出力要求から表示1フレームの期間内に、GOP_ID2に含まれる保有アンカーフレームのうち、B1ピクチャのデコードの参照画像として用いられるI2ピクチャおよび表示されるB1ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５２２】
したがって、正方向２倍速再生が行われる場合においては、先送り転送は必ずしも必要ではない。また、この場合において、トランジェント再生を考慮すると、必要な保有アンカーバンク数は、最低３つとなる。
【０５２３】
次に、図６６を参照して、逆方向２倍速、すなわち、−２倍速再生が行われる場合について説明する。
【０５２４】
例えば、−２倍速表示で、表示ピクチャがGOP_ID3においてB13,P11,B9・・・であり、１つ前に再生されるGOPのB0ピクチャまたはB1ピクチャが再生されるタイミングに対して、表示２フレーム分の先送り転送が実行された場合、GOP_ID3のP5ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、GOP_ID2において最初に表示されるP14ピクチャの出力要求の前に、GOP_ID3に含まれる保有アンカーフレームのデコードが終了されるとともに、GOP_ID3のB1ピクチャの出力要求から表示1フレーム以内に、GOP_ID3のB1ピクチャの参照画像であるGOP_ID2のP14ピクチャがデコードされて、GOP_ID3のB1ピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。
【０５２５】
そして、例えば、−２倍速表示で、表示ピクチャがGOP_ID3においてB12,B10,P8・・・であり、１つ前に再生されるGOPのB0ピクチャまたはB1ピクチャが再生されるタイミングに対して、表示２フレーム分の先送り転送が実行された場合、GOP_ID3のP4ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、GOP_ID2において最初に表示されるB13ピクチャの出力要求の前に、GOP_ID3に含まれる保有アンカーフレームのデコードが終了されるとともに、GOP_ID3のB0ピクチャの出力要求のタイミングよりも早く、GOP_ID3のB0ピクチャの参照画像であるGOP_ID2のP14ピクチャがデコードされ、GOP_ID3のB0ピクチャの出力要求から表示1フレーム以内にGOP_ID3のB0ピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。
【０５２６】
しかしながら、いずれの場合においても、表示１フレーム分の先送り転送が実行された場合、GOP_ID3のB0ピクチャまたはB1ピクチャのデコードが間に合わないので、シームレスに再生処理を実行することができない。
【０５２７】
したがって、逆方向２倍速(−２倍速)再生が行われる場合においては、GOPの境目でシームレスに表示を行うために、先送り転送は、１つ前に再生されるGOP(正方向再生の並び順で、１つ後ろのGOP)のB0ピクチャまたはB1ピクチャが再生されるタイミングに対して、表示３フレーム分必要となる。また、この場合において、トランジェント再生を考慮すると、必要な保有アンカーバンク数は、最低６つとなる。
【０５２８】
したがって、例えば、−２乃至＋２倍速のトランジェント再生がシームレスに実行されるためには、必要な保有アンカーバンク数は、最低６つとなり、正方向再生時には、先送り転送の必要がないが、逆方向再生時には、１つ前に再生されるGOPのB0ピクチャまたはB1ピクチャが再生されるタイミングに対して、表示２フレーム分の先送り転送が必要となる。
【０５２９】
次に、図６７を参照して、正方向３倍速が行われる場合について説明する。
【０５３０】
正方向３倍速で、表示ピクチャがGOP_ID2においてB0,B3,B6・・・である場合においては、先送り転送が実行されなくても、このとき、B0ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB0ピクチャの出力要求から表示1フレームの期間内に、GOP_ID2に含まれる保有アンカーフレームのうち、B0ピクチャのデコードの参照画像として用いられるI2ピクチャおよび表示されるB0ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５３１】
そして、正方向３倍速で、表示ピクチャがGOP_ID2においてB1,B4,B7・・・である場合においても、先送り転送が実行されなくても、このとき、B1ピクチャのデコードの参照画像として用いられる前のGOPのP14ピクチャは、保有アンカーフレームに格納されており、GOP_ID2の先頭のB1ピクチャの出力要求から表示1フレームの期間内に、GOP_ID2に含まれる保有アンカーフレームのうち、B1ピクチャのデコードの参照画像として用いられるI2ピクチャおよび表示されるB1ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５３２】
そして、正方向３倍速で、表示ピクチャがGOP_ID2においてI2,P5,P8・・・である場合においても、先送り転送が実行されなくても、GOP_ID2の先頭のI2ピクチャの出力要求から表示1フレームの期間内に、GOP_ID2に含まれる保有アンカーフレームであるI2ピクチャのデコードが終了されるので、シームレスに再生処理を実行することが可能である。
【０５３３】
したがって、正方向３倍速再生が行われる場合においても、先送り転送は必ずしも必要ではない。また、この場合において、トランジェント再生を考慮すると、必要な保有アンカーバンク数は、最低３つとなる。
【０５３４】
なお、図示されたデコード順において、P11ピクチャのデコードが連続して行われている。このうち、はじめのデコードは、保有アンカーフレームであるP14ピクチャをデコードするためにスケジューリングされたデコード処理であり、表示処理のためにデコード処理が行われないタイミングにおいて、P14ピクチャがデコードされるのに先立って実行され、デコードされて生成されたP11ピクチャに対応するベースバンド画像データは、非保有アンカーバンクに格納される。これに対して、後のデコードは、表示が指令されたBピクチャをデコードするために実行されるものであり、Bピクチャの出力要求に伴って実行され、デコードされて生成されたP11ピクチャに対応するベースバンド画像データは、Bピクチャ表示用非保有アンカーバンクに格納される。
【０５３５】
次に、図６８を参照して、逆方向３倍速、すなわち、−３倍速再生が行われる場合について説明する。
【０５３６】
例えば、−３倍速表示で、表示ピクチャがGOP_ID3においてB12,B9,B6・・・であり、１つ前に再生されるGOPのB0ピクチャが再生されるタイミングに対して、表示２フレーム分の先送り転送が実行された場合、GOP_ID3のB6ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、GOP_ID2において最初に表示されるB12ピクチャの出力要求の前に、GOP_ID2に含まれる保有アンカーフレームのデコードが終了されるとともに、GOP_ID3のB0ピクチャの出力要求から表示1フレーム以内に、GOP_ID3のB0ピクチャの参照画像であるGOP_ID2のP14ピクチャがデコードされ、GOP_ID3のB0ピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。
【０５３７】
しかしながら、この条件において、表示１フレーム分の先送り転送が実行された場合、GOP_ID3のB0ピクチャのデコードが間に合わないので、シームレスに再生処理を実行することができない。
【０５３８】
そして、例えば、−３倍速表示で、表示ピクチャがGOP_ID3においてB13,B10,B7・・・であり、１つ前に再生されるGOPのB1ピクチャが再生されるタイミングに対して、表示２フレーム分の先送り転送が実行された場合、GOP_ID3のB7ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、GOP_ID2において最初に表示されるB13ピクチャの出力要求の前に、GOP_ID2に含まれる保有アンカーフレームのデコードが終了されるとともに、GOP_ID3のB1ピクチャの出力要求から表示1フレーム以内に、GOP_ID3のB1ピクチャの参照画像であるGOP_ID2のP14ピクチャがデコードされ、GOP_ID3のB1ピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。
【０５３９】
しかしながら、このときも、表示１フレーム分の先送り転送が実行された場合、GOP_ID3のB1ピクチャのデコードが間に合わないので、シームレスに再生処理を実行することができない。
【０５４０】
これらに対して、例えば、−３倍速表示で、表示ピクチャがGOP_ID3においてP14,P11,P8・・・である場合においては、B0ピクチャまたはB1ピクチャはいずれも表示されないので、表示１フレーム分の先送り転送が実行されれば、GOP_ID3のP5ピクチャの出力要求のタイミングで、GOP_ID2のデータが先送り転送される。このとき、GOP_ID2において最初に表示されるP14ピクチャの出力要求の前に、GOP_ID2に含まれる保有アンカーフレームのデコードが終了されるので、GOP_ID3の保有アンカーバンクが削除されない場合、シームレスに再生処理を実行することが可能である。
【０５４１】
しかしながら、この条件において、先送り転送が実行されない場合には、GOP_ID2のP14ピクチャのデコードが間に合わないので、シームレスに再生処理を実行することができない。
【０５４２】
したがって、逆方向３倍速(−３倍速)再生が行われる場合においては、GOPの境目でシームレスに表示を行うために、先送り転送は、その１つ前に再生されるGOP(正方向再生の並び順で、１つ後ろのGOP)のB0ピクチャまたはB1ピクチャのうちのいずれか先に再生されるピクチャの再生が指令されるタイミングに対して、表示２フレーム分必要となるか、もしくは、B0ピクチャまたはB1ピクチャがいずれも再生されない場合は、そのGOPで最初に表示されるP14ピクチャの再生が指令されるタイミングに対して、表示1フレーム分必要となる。また、この場合において、トランジェント再生を考慮すると、必要な保有アンカーバンク数は、最低６つとなる。
【０５４３】
したがって、例えば、−３乃至＋３倍速のトランジェント再生がシームレスに実行されるためには、必要な保有アンカーバンク数は、最低６つとなり、正方向再生時には、先送り転送の必要がないが、逆方向再生時には、その１つ前に再生されるGOP(正方向再生の並び順で、１つ後ろのGOP)のB0ピクチャまたはB1ピクチャのうちのいずれか先に再生されるピクチャの再生が指令されるタイミングに対して、もしくは、B0ピクチャまたはB1ピクチャがいずれも再生されない場合は、そのGOPで最初に表示されるピクチャの再生が指令されるタイミングに対して、表示１フレーム分または２フレーム分の先送り転送が必要となる。
【０５４４】
次に、図６９乃至図７２を参照して、クリップファイルの再生処理における再生方向および再生速度と、先送り転送のタイミングについて説明する。
【０５４５】
クリップファイルの再生においては、クリップファイルの構成により必要な保有アンカーバンク数、および、最低限必要となる先送り転送のタイミングが異なる。
【０５４６】
例えば、図６９に示されるように、それぞれのクリップが、GOPの最初から６フレームで構成されているクリップストリームが１倍速再生される場合、２フレーム分の先送り転送が実行されれば、クリップBおよびクリップCにおいて最初に表示が指令されるB0ピクチャの出力要求から表示1フレーム以内に、それぞれのクリップのB0ピクチャの参照画像である一つ前のGOP（GOP_ID3またはGOP_ID5）のP14ピクチャがデコードされ、それらを参照してB0ピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。
【０５４７】
しかしながら、例えば、図７０に示されるように、それぞれのクリップが、あるGOPの最後の２フレーム、すなわち、B13およびP14ピクチャと、次のGOPの最初から４フレーム、すなわち、B0,B1,I2,B3ピクチャで構成されているクリップストリームが１倍速再生される場合、２フレーム分の先送り転送が実行されても、シームレスな再生処理を実行することができない。具体的には、２フレーム分の先送り転送が実行された場合、クリップBにおいては、最初に表示が指令されるB13ピクチャの出力要求から表示1フレーム以内に、B13ピクチャの参照画像であるP11ピクチャおよびP14ピクチャがデコードされ、それらを参照してB13ピクチャがデコードされるが、クリップCにおいては、最初に表示が指令されるB13ピクチャの出力要求からB13ピクチャの参照画像であるP11ピクチャおよびP14ピクチャがデコードされるまでに表示1フレーム分の時間がかかってしまうので、B13ピクチャのデコードが間に合わず、シームレスに再生処理を実行することができない。すなわち、この場合においては、3フレーム分の先送り転送が必要となる。
【０５４８】
そして、例えば、図７１に示されるように、クリップAが、GOP_ID１に続くGOP_ID2の最初から６フレームで構成され、クリップBが、GOP_ID３の最後のP14ピクチャとGOP_ID4の最初から５フレームで構成され、クリップCが、GOP_ID5に続くGOP_ID6の最初から６フレームで構成されている場合のクリップA、クリップB、クリップCからなるクリップストリームが１倍速再生される場合、３フレーム分の先送り転送が実行されれば、それぞれのクリップにおいて最初に表示が指令されるピクチャの出力要求から表示1フレーム以内に、必要なピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。これに対して、２フレーム分の先送り転送が実行された場合、クリップCにおいて最初に表示が指令されるB0ピクチャの出力要求から表示1フレーム以内に、クリップCのB0ピクチャをデコードすることができないので、シームレスに再生処理を実行することができない。
【０５４９】
そして、例えば、図７２に示されるように、クリップAが、GOP_ID１の最後の４フレームとGOP_ID2の最初から２フレームで構成され、クリップBが、GOP_ID３に続くGOP_ID4の最初から６フレームで構成され、クリップCが、GOP_ID5に続くGOP_ID6の最初から６フレームで構成されている場合のクリップA、クリップB、クリップCからなるクリップストリームがー１倍速再生される場合、３フレーム分の先送り転送が実行されれば、それぞれのクリップにおいて最初に表示が指令されるピクチャの出力要求から表示1フレーム以内に、必要なピクチャがデコードされるので、シームレスに再生処理を実行することが可能である。これに対して、２フレーム分の先送り転送が実行された場合、それぞれのクリップにおいて最初に表示が指令されるピクチャの出力要求から表示1フレーム以内に、それぞれのクリップクリップにおいて最初に表示が指令されるピクチャをデコードすることができないので、シームレスに再生処理を実行することができない。
【０５５０】
このように、クリップ再生においては、クリップのパターンによって、必要な先送り転送量が異なる。すなわち、先送り転送量が多ければ多いほどデコードを遅滞なく実行することができる確率が増すが、その場合、ストリームバッファ１３１-１の記憶容量を増加させる必要が生じる。すなわち、メモリ容量とデコードを遅滞なく実行することができる確率とのトレードオフとなる。例えば、最小クリップ長６フレームのクリップにより構成されるクリップファイルの−１乃至＋１倍速再生においては、表示3フレーム分程度の先送り転送が実行されると好適である。
【０５５１】
次に、図７３および図７４を参照して、デコード、表示、フレームメモリの各バンクの状態について説明する。
【０５５２】
図７３は、ストリームのー２倍速再生における場合のデコード、表示、フレームメモリの各バンクの状態を示す図である。ストリームのー２倍速再生において、最低限必要な保有アンカーバンクの数は６つである。ここでは、デコーダ１２２は、１フレーム表の間に、３乃至４フレームのデコード処理を実行することができ、表示３フレーム分の先送り転送が実行されているものとして説明する。
【０５５３】
GOP_ID6のP5ピクチャの出力要求時には、GOP_ID6の保有アンカーフレームであるI2,P8,P14ピクチャをデコードして生成されたベースバンド画像データは、保有アンカーバンク１乃至３に格納されている。そして、GOP_ID6のP５ピクチャの出力要求とともに、GOP_ID5のストリーム入力が開始される。このとき、上述した保有アンカーバンク管理処理により、保有アンカーバンク４乃至６に格納されているデータがないことが確認されるので、GOP_ID6の最後のB1ピクチャの出力要求の前に、GOP_ID5の保有アンカーフレームであるI2,P8,P14ピクチャが全てデコードされて、対応するベースバンド画像データが、保有アンカーバンク４乃至６に格納される。そのとき、非保有アンカーフレームであるP５ピクチャおよびP11ピクチャは、参照画像として用いられるためにデコードされて、対応するベースバンド画像データが、非保有アンカーバンクに格納される。
【０５５４】
そして、ピクチャ出力要求により出力が要求されたフレームは、それぞれのピクチャタイプに応じて、デコード処理が実行される。例えば、保有アンカーフレームの表示時には、保有アンカーバンクに格納されているベースバンド画像データがそのまま出力される。非保有アンカーフレームの表示時には、保有アンカーバンクに格納されているベースバンド画像データを参照画像として用いて表示フレームのデコード処理が実行され、Bピクチャの表示時には、必要に応じて、Bピクチャ表示用非保有アンカーバンクに、デコードされた非保有アンカーフレームが格納されて参照画像として用いられて表示フレームのデコード処理が実行され、Bピクチャおよび非保有アンカーバンクの表示用のベースバンド画像データが、B・非保有アンカー表示バンクに格納されて、出力される。このようにして、GOP_ID6の最後のB1ピクチャ、および、GOP_ID5の各ピクチャは、表示に間に合うようにデコードされて、出力される。
【０５５５】
次に、GOP_ID5のB4ピクチャの出力要求とともに、GOP_ID4のストリーム入力が開始される。このとき、保有アンカーバンク管理処理により、保有アンカーバンク１乃至６には、全てデータが格納されており、格納されているのは、GOP_ID6およびGOP_ID5のデータであることが確認され、入力されるGOP_ID4とGOPのIDナンバーが離れているのは、GOP_ID6であることが検出される。したがって、GOP_ID4のストリーム入力により、保有アンカーバンク１乃至３に格納されているGOP_ID6のデータが削除され、GOP_ID4の保有アンカーフレームであるI2,P8,P14ピクチャが全てデコードされて、GOP_ID5の最後のB0ピクチャの出力要求の前に、対応するベースバンド画像データが、保有アンカーバンク１乃至３に格納される。
【０５５６】
そして、上述したGOP_ID6の最後のB1ピクチャ、および、GOP_ID5の各ピクチャにおける場合と同様のデコード処理が実行されるので、GOP_ID5の最後のB0ピクチャ、および、GOP_ID5の各ピクチャは、表示に間に合うようにデコードされて、出力される。
【０５５７】
このように、ストリームのー２倍速再生においては、フレームメモリ１３１−３に2GOP分のアンカーフレームのベースバンド画像データを格納することにより、トランジェント再生にも対応することができる。例えば、全てのアンカーフレーム5フレームをフレームメモリ１３１−３に格納するようにした場合、アンカーフレーム用の参照バンク10フレーム分とBピクチャの表示のためのバンク2フレーム分の計12フレーム分が必要となってしまう。これに対して、1枚おきにアンカーフレームを保有する場合は、保有アンカーバンク6フレーム分、非保有アンカーバンク1フレーム分、Bピクチャ表示用非保有アンカーバンク1フレーム分、B・非保有アンカー表示バンク2フレーム分の計10フレーム分を設けるようにすればよいので、全てのアンカーフレームを格納する場合に比べて、フレームメモリ１３１−３に設けるバンク数を２フレーム分削減することができる。
【０５５８】
図７４は、クリップストリームの±２倍速トランジェント再生における場合のデコード、表示、フレームメモリの各バンクの状態を示す図である。
【０５５９】
図４７においては、GOP_ID1のP8ピクチャ乃至GOP_ID2のB4ピクチャでクリップファイルAが構成され、GOP_ID3に続くGOP_ID4のB0ピクチャ乃至GOP_ID2のP11ピクチャでクリップファイルBが構成され、クリップファイルAに続いてクリップファイルBが再生されるようなクリップストリームの再生について説明する。ただし、クリップファイルの再生に不必要なGOP_ID2およびGOP_ID4のGOP後半部分は、メモリ１３１に入力されないものとする。
【０５６０】
このようなクリップにより構成されたクリップストリームの±２倍速トランジェント再生において、最低限必要な保有アンカーバンクの数は９つである。ここでも、デコーダ１２２は、１フレーム表の間に、３乃至４フレームのデコード処理を実行することができ、表示３フレーム分の先送り転送が実行されているものとして説明する。
【０５６１】
クリップファイルAに対応する部分において、＋２倍速（正方向）に再生が行われているとき、GOP_ID1のP１４ピクチャの出力要求時には、GOP_ID1の保有アンカーフレームであるI2,P8,P14ピクチャおよびGOP_ID2の保有アンカーフレームであるI2ピクチャをデコードして生成されたベースバンド画像データは、保有アンカーバンク１乃至４に格納されている。
【０５６２】
そして、GOP_ID1のP14ピクチャの出力要求とともに、クリップファイルBのGOP_ID3およびGOP_ID4のストリーム入力が開始される。このとき、上述した保有アンカーバンク管理処理により、保有アンカーバンク５乃至９に格納されているデータがないことが確認されるので、クリップファイルBの最初に表示されるピクチャであるGOP_ID4のB0ピクチャの出力要求の前に、GOP_ID3の保有アンカーフレームであるI2,P8,P14ピクチャおよびGOP_ID4の保有アンカーフレームであるI2,P8ピクチャが全てデコードされて、対応するベースバンド画像データが、保有アンカーバンク５乃至９に格納される。そのとき、非保有アンカーフレームであるそれぞれのP５ピクチャおよびP11ピクチャは、参照画像として用いられるためにデコードされて、対応するベースバンド画像データが、非保有アンカーバンクに格納される。そして、ピクチャ出力要求により出力が要求されたフレームは、上述した場合と同様にして、それぞれのピクチャタイプに応じて、デコードされる。
【０５６３】
そして、クリップBのB４ピクチャの表示が指令された時点で、再生方向が逆転された場合、次に表示されるGOPは、GOP_ID2となるが、クリップAのGOP_ID1およびGOP_ID2の保有アンカーフレームは、保有アンカーバンク１乃至４に格納されているので、新たなストリームの入力は必要ない。そして、クリップBのI2ピクチャおよびB0ピクチャが表示された後、続いて、クリップAのGOP_ID2のB3ピクチャおよびB1ピクチャが表示され、再び、再生方向が逆転された。このとき、次に表示されるGOPは、GOP_ID4となるが、クリップBのGOP_ID3およびGOP_ID4の保有アンカーフレームは、保有アンカーバンク５乃至９に格納されているので、新たなストリームの入力は必要ない。
【０５６４】
なお、トランジェント再生において、再生方向が逆転されるときに、表示指令されているフレームのベースバンド画像データがB・非保有アンカー表示バンクに存在する場合、再度デコード処理を行わずに、そのベースバンド画像データが出力される。具体的には、図７４を用いて説明した１回目の反転の後のGOP_ID4のB0ピクチャ出力要求時には、B0ピクチャに対応するベースバンド画像データがB・非保有アンカー表示バンク１に格納されているので、デコードを行う必要がない。
【０５６５】
クリップファイルの再生では、クリップストリームの構成により、含まれるアンカーフレーム数が異なるので、トランジェント再生に対応するために必要となる保有アンカーフレームが異なる。基本的には、それぞれのクリップを構成するGOPのアンカーフレーム数が異なっても、いずれの再生位置においても保有アンカーバンクに4GOP分のアンカーフレームを格納することができるだけの保有アンカーバンク数を確保し、保有アンカーバンク管理処理により、各GOPのための保有アンカーバンクを詰めて設定するようにした場合、滑らかなトランジェント再生を実行することが可能となる。
【０５６６】
また、以上においては、保有アンカーフレームをIピクチャから１ピクチャおきに設定した場合について説明したが、保有アンカーフレームは、異なる数のピクチャおきに設定するものとしても良い。
【０５６７】
図７５に、保有アンカーフレームを2ピクチャ、3ピクチャ、または、4ピクチャおきとする場合のGOPの保有・非保有アンカーフレーム構成図を示す。
【０５６８】
そして、図７６は、保有アンカーフレームを2ピクチャ、3ピクチャ、または、4ピクチャおきとし、フレームメモリ１３１−３において、Xフレーム分の参照バンクと２フレーム分の表示用バンク、すなわち、Ｘ＋２フレーム分のフレームバンクにおけるバンク割り当て図である。
【０５６９】
保有・非保有アンカー兼用バンクである参照バンク１乃至Ｘ−３は、保有アンカーバンクと非保有アンカーバンクを兼用し、保有アンカーフレームと、非保有アンカーフレームのデコードの参照画として用いられる非保有アンカーフレームとに対応するベースバンド画像データを格納する。保有・非保有アンカー兼用バンクに格納されている保有アンカーフレームに対応するベースバンド画像データは、そのＧＯＰのデータが削除されない限り、削除または上書きされないが、保有・非保有アンカー兼用バンクに格納されている非保有アンカーフレームに対応するベースバンド画像データは、参照画像としての役割が終了した後、他の保有アンカーフレームに対応するベースバンド画像データにより上書きされても良い。そして、非保有アンカーバンクは、図５１を用いて説明した場合と同様に、保有アンカーフレームをデコードするための参照画として用いられる非保有アンカーフレームに対応するベースバンド画像データを格納する。そして、表示されるＢピクチャまたはＰピクチャがデコードされるときに参照画像として用いる非保有アンカーフレームのベースバンド画像を格納するための表示用非保有アンカーバンクは、２フレーム分必要となる。また、表示専用バンクである、Ｂ・非保有アンカー表示バンクについては、図５１を用いて説明した場合と同様である。
【０５７０】
なお、アンカーフレームを2ピクチャ、3ピクチャ、または、4ピクチャおきに保有する場合においては、図５７を用いて説明した保有アンカーバンク管理処理のステップＳ６６１において、入力されたＧＯＰに必要な保有アンカーバンク数の数が異なる。
【０５７１】
次に、図７７を参照して、アンカーフレームを２ピクチャおきに保有する場合のアンカーフレームのデコード手順について説明する。
【０５７２】
保有アンカーフレームであるＩ２ピクチャがデコードされて生成されたベースバンド画像データは、保有・非保有アンカー兼用バンクに格納され、次に、非保有アンカーフレームであるＰ５ピクチャがデコードされて生成されたベースバンド画像データは、非保有アンカーフレームの参照画像となるものであるので、保有・非保有アンカー兼用バンクに格納される。そして、次に、非保有アンカーフレームであるＰ８ピクチャがデコードされて生成されたベースバンド画像データは、保有アンカーフレームの参照画像となるものであるので、非保有アンカーバンクに格納される。そして、次に、保有アンカーフレームであるＰ１１ピクチャがデコードされて生成されたベースバンド画像データは、保有・非保有アンカー兼用バンクに格納される。ここで、既に格納されている非保有アンカーフレームであるＰ8ピクチャの参照画像であるＰ5ピクチャに対応するベースバンド画像データは、既に参照画像としての役割を終了しているので、P11ピクチャに対応するベースバンド画像データは、保有・非保有アンカー兼用バンクのＰ5ピクチャに対応するベースバンド画像データに対して上書き保存される。
【０５７３】
このようにすることにより、参照バンク数を無駄にすることなく、できるだけ多くのＧＯＰの保有アンカーフレームに対応するベースバンド画像データを保持することが可能となる。
【０５７４】
次に、図７７を用いて説明したように保有アンカーバンクに格納された保有アンカーフレームに対応するベースバンド画像データを用いて実行されるデコード処理手順について、図７８を用いて説明する。
【０５７５】
例えば、非保有アンカーフレームを参照画像としてデコードされるＢ７ピクチャがデコードされる場合、非保有アンカーフレームであるＰ５ピクチャが、保有・非保有アンカー兼用バンクに格納されているＩ２ピクチャに対応するベースバンド画像データを参照してデコードされて、表示用非保有アンカーバンクに格納される。そして、次に、非保有アンカーフレームであるＰ８ピクチャが、表示用非保有アンカーバンクに格納されているＰ５ピクチャに対応するベースバンド画像データを参照してデコードされて、表示用非保有アンカーバンクに格納される。そして、Ｂ７ピクチャが、表示用非保有アンカーバンクに格納されているＰ５ピクチャおよびＰ８ピクチャに対応するベースバンド画像データを参照してデコードされて、Ｂ・非保有アンカー表示バンクに格納されて、出力される。
【０５７６】
なお、アンカーフレームを3ピクチャまたは4ピクチャおきに保有する場合においても、図７７および図７８を用いて説明した場合と基本的に同様にして、デコード処理が実行される。
【０５７７】
次に、図７９乃至図８１のフローチャートを参照して、アンカーフレームを２ピクチャ、3ピクチャまたは4ピクチャおきに保有する場合に、図５５のステップＳ６０８において実行される出力処理２について説明する。
【０５７８】
ステップＳ８１１乃至ステップＳ８１３において、図６０のステップＳ７６１乃至ステップＳ７６３と同様の処理が実行される。
【０５７９】
すなわち、出力が要求されたのは、保有アンカーフレームがすでにデコードされているＧＯＰの範囲内のピクチャであるか否かが判断され、保有アンカーフレームがすでにデコードされているＧＯＰの範囲内のピクチャでない場合には、参照画像から順番に、通常のデコード処理が実行される。
【０５８０】
保有アンカーフレームがすでにデコードされているＧＯＰの範囲内のピクチャである場合、出力が要求されたのは、保有アンカーフレームであるか否かが判断される。
【０５８１】
ステップＳ８１３において、出力が要求されたのは、保有アンカーフレームであると判断された場合、ステップＳ８１４において、デコードコントローラ１５３は、セレクタ１５５を制御して、フレームメモリ１３１−３の保有・非保有アンカー兼用バンクから、該当する保有アンカーフレームを読み出して、出力し、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０５８２】
ステップＳ８１３において、出力が要求されたのは、保有アンカーフレームではないと判断された場合、ステップＳ８１５において、デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号を基に、出力が要求されたのは、非保有アンカーフレームであるか否かを判断する。ステップＳ８１５において、出力が要求されたのは、非保有アンカーフレームではないと判断された場合、処理は、後述するステップＳ８２３に進む。
【０５８３】
ステップＳ８１５において、出力が要求されたのは、非保有アンカーフレームであると判断された場合、ステップＳ８１６において、デコードコントローラ１５３は、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクに、出力が要求された非保有アンカーフレームが格納されているか否かを判断する。
【０５８４】
ステップＳ８１６において、Ｂ・非保有アンカー表示バンクに、出力が要求された非保有アンカーフレームが格納されていないと判断された場合、ステップＳ８１７において、デコードコントローラ１５３は、出力が要求された非保有アンカーフレームの参照画像は、保有アンカーフレームのみであるか否かを判断する。
【０５８５】
ステップＳ８１７において、出力が要求された非保有アンカーフレームの参照画像は、保有アンカーフレームのみではないと判断された場合、ステップＳ８１８において、デコードコントローラ１５３は、表示用非保有アンカーバンクのうちの１つを、該当する非保有アンカーフレームの参照画像となる非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０５８６】
ステップＳ８１９において、デコードコントローラ１５３は、デコード関連情報を参照して、参照画像となる非保有アンカーフレームのデコードを制御するとともに、デコードされて生成されたベースバンド画像データの表示用非保有アンカーバンクへの格納を制御する。すなわち、デコードコントローラ１５３は、セレクタ１５２を制御して、参照画像となる非保有アンカーフレームを、デコード処理部１５４に供給させるとともに、セレクタ１５６を制御して、フレームメモリ１３１−３の保有・非保有アンカー兼用バンクに格納されている保有アンカーフレームに対応するベースバンド画像データを、デコード処理部１５４に供給させる。デコード処理部１５４は、保有アンカーフレームに対応するベースバンド画像データを用いて、参照画像となる非保有アンカーフレームをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされた参照画像となる非保有アンカーフレームを、フレームメモリ１３１−３の表示用非保有アンカーバンクに格納する。
【０５８７】
ステップＳ８１７において、出力が要求された非保有アンカーフレームの参照画像は、保有アンカーフレームのみではあると判断された場合、または、ステップＳ８１９の処理の終了後、ステップＳ８２０において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクを、該当する非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０５８８】
ステップＳ８２１において、デコードコントローラ１５３は、ストリームバッファＧＯＰキューの該当する非保有アンカーフレームのデコード関連情報を参照して、前方参照Index番号に示される参照画像を参照して、該当する非保有アンカーフレームをデコードし、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクに格納する。
【０５８９】
ステップＳ８１６において、Ｂ・非保有アンカー表示バンクに、出力が要求された非保有アンカーフレームが格納されていると判断された場合、または、ステップＳ８２１の処理の終了後、ステップＳ８２２において、デコードコントローラ１５３は、セレクタ１５５を制御して、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクから、該当する非保有アンカーフレームを読み出して、出力し、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０５９０】
ステップＳ８１５において、出力が要求されたのは、非保有アンカーフレームではないと判断された場合、ステップＳ８２３において、デコードコントローラ１５３は、出力が要求されたのは、ＧＯＰの先頭のＢピクチャであるか否かを判断する。ステップＳ８２３において、出力が要求されたのは、ＧＯＰの先頭のＢピクチャではない、すなわち、ＧＯＰの先頭以外の、ＧＯＰ内に参照画像が存在するＢピクチャであると判断された場合、処理は、後述するステップＳ８３２に進む。
【０５９１】
ステップＳ８２３において、出力が要求されたのは、ＧＯＰの先頭のＢピクチャであると判断された場合、ステップＳ８２４において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されているか否かを判断する。ステップＳ８２４において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていると判断された場合、処理は、後述するステップＳ８３１に進む。
【０５９２】
ステップＳ８２４において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていないと判断された場合、ステップＳ８２５において、デコードコントローラ１５３は、保有・非保有アンカー兼用バンクに、該当するＢピクチャの両方の参照画像が格納されているか否かを判断する。ステップＳ８２５において、保有アンカーバンクに、該当するＢピクチャの両方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ８２９に進む。
【０５９３】
ステップＳ８２５において、保有・非保有アンカー兼用バンクに、該当するＢピクチャの両方の参照画像が格納されていないと判断された場合、ステップＳ８２６において、デコードコントローラ１５３は、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されているか否かを判断する。ステップＳ８２６において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ８２９に進む。
【０５９４】
ステップＳ８２６において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていないと判断された場合、ステップＳ８２７において、デコードコントローラ１５３は、表示用非保有アンカーバンクを、該当するＢピクチャの参照画像となる非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０５９５】
ステップＳ８２８において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、参照画像となる非保有アンカーフレームを、デコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有・非保有アンカー兼用バンクに格納されている保有アンカーフレームまたは非保有アンカーフレームに対応するベースバンド画像データを、デコード処理部１５４に供給させる。デコード処理部１５４は、供給された参照画像を用いて参照画像となる非保有アンカーフレームをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされた参照画像となる非保有アンカーフレームを、表示用非保有アンカーバンクに格納する。
【０５９６】
ステップＳ８２５において、保有・非保有アンカー兼用バンクに、該当するＢピクチャの両方の参照画像が格納されていると判断された場合、ステップＳ８２６において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、または、ステップＳ８２８の処理の終了後、ステップＳ８２９において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクを、該当するＢピクチャのデコード後のベースバンド画像の格納先として設定する。
【０５９７】
ステップＳ８３０において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、該当するＢピクチャをデコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有・非保有アンカー兼用バンクに格納されている該当するＢピクチャの参照画像となる保有アンカーフレーム、または、フレームメモリ１３１−３の表示用非保有アンカーバンクに格納されている、ステップＳ８２８においてデコードされた非保有アンカーバンクをデコード処理部１５４に供給させる。デコード処理部１５４は、供給された参照画像を用いて該当するＢピクチャをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされたＢピクチャを、Ｂ・非保有アンカー表示バンクに格納する。
【０５９８】
ステップＳ８２４において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていると判断された場合、または、ステップＳ８３０の処理の終了後、ステップＳ８３１において、デコードコントローラ１５３は、セレクタ１５７を制御して、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクから、該当するＢピクチャを読み出させて、出力させ、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０５９９】
ステップＳ８２３において、出力が要求されたのは、ＧＯＰの先頭のＢピクチャではない、すなわち、ＧＯＰの先頭以外の、ＧＯＰ内に参照画像が存在するＢピクチャであると判断された場合、ステップＳ８３２において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されているか否かを判断する。ステップＳ８３２において、出力が要求されたＢピクチャが格納されていると判断された場合、処理は、後述するステップＳ８４３に進む。
【０６００】
ステップＳ８３２において、Ｂ・非保有アンカー表示バンクに、出力が要求されたＢピクチャが格納されていないと判断された場合、ステップＳ８３３において、デコードコントローラ１５３は、出力が要求されたＢピクチャの一方の参照画は、保有アンカーフレームであるか否かを判断する。ステップＳ８３３において、出力が要求されたＢピクチャの一方の参照画は、保有アンカーフレームであると判断された場合、処理は、後述するステップＳ８３８に進む。
【０６０１】
ステップＳ８３３において、出力が要求されたＢピクチャの参照画は、いずれも保有アンカーフレームではないと判断された場合、ステップＳ８３４において、デコードコントローラ１５３は、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの両方の参照画像が格納されているか否かを判断する。ステップＳ８３４において、Ｂピクチャ表示用非保有アンカーバンクに、出力が要求されたＢピクチャの両方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ８４１に進む。
【０６０２】
ステップＳ８３４において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの両方の参照画像は格納されていないと判断された場合、ステップＳ８３５において、デコードコントローラ１５３は、表示用非保有アンカーバンクに出力が要求されたＢピクチャの一方の参照画像が格納されているか否かを判断する。ステップＳ８３５において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ８３９に進む。
【０６０３】
ステップＳ８３５において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの参照画像がいずれも格納されていないと判断された場合、ステップＳ８３６において、デコードコントローラ１５３は、２箇所の表示用非保有アンカーバンクを、該当するＢピクチャの参照画像となる２枚の非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０６０４】
ステップＳ８３７において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、参照画像となる非保有アンカーフレームを、デコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている保有アンカーフレームなどの参照画像データを、デコード処理部１５４に供給させる。デコード処理部１５４は、供給された参照画像データを用いて参照画像となる２枚の非保有アンカーフレームをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされた参照画像となる非保有アンカーフレームを、Ｂピクチャ表示用非保有アンカーバンクに格納して、処理は、後述するステップＳ８４１に進む。
【０６０５】
ステップＳ８３３において、出力が要求されたＢピクチャの一方の参照画は、保有アンカーフレームであると判断された場合、ステップＳ８３８において、デコードコントローラ１５３は、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されているか否かを判断する。ステップＳ８３５において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、処理は、後述するステップＳ８４１に進む。
【０６０６】
ステップＳ８３５において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、または、ステップＳ８３８において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていないと判断された場合、ステップＳ８３９において、デコードコントローラ１５３は、表示用非保有アンカーバンクを、該当するＢピクチャの参照画像となる１枚の非保有アンカーフレームのデコード後のベースバンド画像の格納先として設定する。
【０６０７】
ステップＳ８４０において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、参照画像となる非保有アンカーフレームを、デコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている保有アンカーフレームなどの参照画像データを、デコード処理部１５４に供給させる。デコード処理部１５４は、供給された参照画像データを用いて参照画像となる非保有アンカーフレームをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされた参照画像となる非保有アンカーフレームを、Ｂピクチャ表示用非保有アンカーバンクに格納する。
【０６０８】
ステップＳ８３４において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの両方の参照画像が格納されていると判断された場合、ステップＳ８３８において、表示用非保有アンカーバンクに、出力が要求されたＢピクチャの一方の参照画像が格納されていると判断された場合、もしくは、ステップＳ８３７またはステップＳ８４０の処理の終了後、ステップＳ８４１において、デコードコントローラ１５３は、Ｂ・非保有アンカー表示バンクを、該当するＢピクチャのデコード後のベースバンド画像の格納先として設定する。
【０６０９】
ステップＳ８４２において、デコードコントローラ１５３は、デコード関連情報を参照して、セレクタ１５２を制御して、該当するＢピクチャをデコード処理部１５４に供給させるとともに、必要に応じて、セレクタ１５６を制御して、フレームメモリ１３１−３の保有アンカーバンクに格納されている該当するＢピクチャの参照画像となる保有アンカーフレーム、または、フレームメモリ１３１−３の表示用非保有アンカーバンクに格納されている非保有アンカーバンクをデコード処理部１５４に供給させる。デコード処理部１５４は、供給された参照画像データを用いて、該当するＢピクチャをデコードし、セレクタ１５５に供給する。デコードコントローラ１５３は、セレクタ１５５を制御して、デコードされたＢピクチャを、Ｂ・非保有アンカー表示バンクに格納する。
【０６１０】
ステップＳ８３２において、出力が要求されたＢピクチャが格納されていると判断された場合、または、ステップＳ８４２の処理の終了後、ステップＳ８４３において、デコードコントローラ１５３は、セレクタ１５７を制御して、フレームメモリ１３１−３のＢ・非保有アンカー表示バンクから、該当するＢピクチャを読み出して、出力させ、処理は、図５５のステップＳ６０８に戻り、ステップＳ６０９に進む。
【０６１１】
このような処理により、アンカーフレームを２ピクチャ、3ピクチャまたは4ピクチャおきに保有する場合であっても、フレームメモリ１３１−３に予め格納されているベースバンド画像データを利用して、デコード処理が実行されるので、フレームメモリを有効に利用して、できるだけ多くのＧＯＰの保有アンカーフレームを蓄積しておき、通常のストリーム再生やクリップ再生の変速再生やトランジェント再生において、再生出力の指令から再生出力されるまでのレスポンスを向上させるのみならず、スクラブ再生などにおいても、再生出力の指令から、再生出力されるまでのレスポンスが高くなるような再生開始位置の範囲をできるだけ広くすることができる。
【０６１２】
また、アンカーフレームを２ピクチャ、3ピクチャまたは4ピクチャおきに保有する場合は、アンカーフレームを１ピクチャおきに保有する場合と比較して、１つのフレームを表示するために必要なデコードの回数が多い可能性が高い。このため、デコーダ１２２は、アンカーフレームを１ピクチャおきに保有する場合よりも、アンカーフレームを２ピクチャ、3ピクチャまたは4ピクチャおきに保有する場合のほうが、性能が高い、すなわち、１フレームを表示している間にデコード可能なフレーム数が多いと、より好適である。
【０６１３】
このように、全てのアンカーフレームを保持することなく、アンカーフレームのうちの一部を優先的にデコードして保持するものとすることにより、フレームメモリを有効に利用して、できるだけ多くのＧＯＰの保有アンカーフレームを蓄積しておくことができる。また、上述したように、デコードスケジューリングやバンク管理を行うことにより、再生出力の指令から再生出力されるまでのレスポンスを向上させるようにすることができる。
【０６１４】
一方、全てのアンカーフレームを保持するようにした場合、アンカーフレームのうちの一部を優先的にデコードして保持する場合と比較して、フレームメモリが多く必要になる。例えば、同一の保有アンカーフレーム数であれば、全てのアンカーフレームを保持するようにした場合、アンカーフレームのうちの一部を優先的にデコードして保持する場合と比較して、保有アンカーバンクに少ないＧＯＰの保有アンカーフレームしか保持しておくことができないため、再生出力の指令から、再生出力されるまでのレスポンスが高くなるような再生開始位置の範囲が狭くなってしまう。スクラブ再生時は、保有アンカーバンクに多くのGOPのアンカーフレームを格納できた方が、再生出力されるまでのレスポンスが高くなるような再生開始位置の範囲を広くすることができ、実質的なフレームレートを向上させることができる。
【０６１５】
また、全てのアンカーフレームを保持するようにした場合、例えば、クリップ再生においては、クリップストリームの構成によって、トランジェント再生を可能なようにするために必要な保有アンカーフレーム数は異なり、充分な保有アンカーフレーム数が用意できないとき、トランジェント再生において、再生が間に合わず、表示画像がフリーズしてしまう恐れがある。
【０６１６】
すなわち、クリップストリームのトランジェント再生で表示がフリーズしないようにするためには、できるだけ、保有アンカーバンクを上書きせずに残して置くようにすると好適である。そのため、保有アンカーバンクを全てのアンカーフレームに設定してしまった場合、保有アンカーバンクのバンク数によっては、±２倍速や、±３倍速などのクリップストリームのトランジェント再生において、アンカーフレームの上書きが発生してしまう。
【０６１７】
したがって、特に、クリップストリームのトランジェント再生においては、保有アンカーバンクが少なくても、できるだけアンカーフレームの上書きが発生しないように、アンカーフレームの一部のみを保有アンカーフレームとして設定すると好適である。
【０６１８】
特に、デコード能力が、１フレーム表示の期間に、３乃至４フレーム程度のデコード処理が可能なレベルであるとき、１つおきのアンカーフレームを保有アンカーフレームとして設定すると、デコードのレスポンスと保有アンカーバンク数の抑制とを両立することができ、好適である。
【０６１９】
図８２を参照して、図７４を用いて説明した場合と同様のクリップストリームにおいて全てのアンカーフレームを保有アンカーフレームとし、±２倍速トランジェント再生した場合における、デコード、表示、フレームメモリの各バンクの状態について説明する。
【０６２０】
すなわち、図８２においては、図４７における場合と同様に、GOP_ID1のP8ピクチャ乃至GOP_ID2のB4ピクチャでクリップファイルAが構成され、GOP_ID3に続くGOP_ID4のB0ピクチャ乃至GOP_ID2のP11ピクチャでクリップファイルBが構成され、クリップファイルAに続いてクリップファイルBが再生されるようなクリップストリームの再生について説明する。ただし、クリップファイルの再生に不必要なGOP_ID2およびGOP_ID4のGOP後半部分は、メモリ１３１に入力されないものとする。
【０６２１】
ここでは、フレームメモリに格納可能なフレーム数は、図４７における場合と同様であるとするが、Bピクチャ表示用非保有アンカーバンクは不要となるので、保有アンカーバンクの数は、図４７における場合よりも２フレーム多い１１フレーム分であるものとする。ここでも、デコーダ１２２は、１フレーム表の間に、３乃至４フレームのデコード処理を実行することができ、表示３フレーム分の先送り転送が実行されているものとして説明する。
【０６２２】
クリップファイルAに対応する部分において、＋２倍速（正方向）に再生が行われているとき、GOP_ID1のP１４ピクチャの出力要求時には、GOP_ID1の保有アンカーフレームであるI2,P5,P8,P11,P14ピクチャおよびGOP_ID2の保有アンカーフレームであるI2,P5ピクチャをデコードして生成されたベースバンド画像データは、保有アンカーバンク１乃至７に格納されている。
【０６２３】
そして、GOP_ID1のP14ピクチャの出力要求とともに、クリップファイルBのGOP_ID3およびGOP_ID4のストリーム入力が開始される。このとき、上述した保有アンカーバンク管理処理により、保有アンカーバンク８乃至１１に格納されているデータがないことが確認されるが、GOP_ID3の保有アンカーフレームであるI2,P5,P8,P11,P14ピクチャに対応するベースバンド画像データを全て格納するためには、バンク数が足らないので、GOP_ID1の保有アンカーフレームに対応するベースバンド画像データが保有アンカーバンク1乃至５から削除され、GOP_ID3の保有アンカーフレームであるI2,P5,P8,P11,P14ピクチャがデコードされて、これらに対応するベースバンド画像データが、保有アンカーバンク８乃至１１および保有アンカーバンク1に格納される。
【０６２４】
そして、続いて、GOP_ID4の保有アンカーフレームであるI2,P5,P8,P11ピクチャがデコードされて、これらに対応するベースバンド画像データが、保有アンカーバンク２乃至５に格納される。
【０６２５】
そして、クリップBのB４ピクチャの表示が指令された時点で、再生方向が逆転された場合、次に表示されるGOPは、GOP_ID2となるが、GOP_ID2のフレームをデコードするために必要なGOP_ID1の保有アンカーフレームに対応するベースバンド画像データは保有アンカーバンク1乃至５から削除されているので、GOP_ID1の保有アンカーフレームのデコードと保有アンカーバンクへの格納を行わなければならない。保有アンカーバンクを確保する必要があるGOP_ID1とGOPのIDナンバーが離れているのは、GOP_ID４であり、その次にGOP_ID1とGOPのIDナンバーが離れているのは、GOP_ID３であることが検出される。したがって、保有アンカーバンク２乃至５に格納されているGOP_ID4のデータと、保有アンカーバンク８乃至１に格納されているGOP_ID3のデータとが削除され、GOP_ID4の保有アンカーフレームのデコードが開始される。しかしながら、この次に表示されるフレームは、GOP_ID４のI2ピクチャであるので、GOP_ID4のデータが保有アンカーバンクから削除されることにより、GOP_ID４のI2ピクチャが表示できなくなってしまう。
【０６２６】
これに対して、１GOP あたりに必要な保有アンカーフレーム数を節約するために、アンカーフレームの一部のみを保有アンカーバンクとしたフレームメモリバンク管理では、上書きによるアンカーフレームの削除が発生してしまう機会が少ないため、トランジェント再生などにおいても、再生画像がフリーズしてしまうことを防止することが可能となる。
【０６２７】
このように、アンカーフレームの一部のみを保有アンカーフレームとし、広範囲のＧＯＰのアンカーフレームをフレームメモリに保存することによって、同様のデコード能力である場合、フレームメモリを削減することができる。また、アンカーフレームの一部のみを保有アンカーフレームとし、広範囲のＧＯＰのアンカーフレームをフレームメモリに保存することによって、より高倍速な再生を、再生画像のフリーズを起こすことなく行うことができるとともに、より高速な再生での滑らかな正逆反転再生（トランジェント再生）を行うことができ、更に、スクラブ再生では、より広範囲の画像をすばやく出力することができる。
【０６２８】
更に、再生装置１０１においては、デコーダ１２２のデコード能力に合わせて、フレームメモリ１３１−３に保存するアンカーフレームの間隔を可変にするようにしても良いことはいうまでもない。
【０６２９】
ところで、図４４乃至図８２を用いて説明した処理では、新たなGOPのデータがストリームバッファ１３１−１に供給された場合、または、既にストリームバッファ１３１−１に供給されているが、保有アンカーバンクに対応する保有アンカーフレームが格納されていないGOPのデコード処理が開始される場合に、保有アンカーバンクに空きがあるか否かが検出され、必要数の空きバンクがないとき、入力したGOPのGOP_ID番号から最もGOP_ID番号が遠いGOPの保有アンカーフレームが、必要なフレーム数の空きが確保できるまで削除されて、新たなGOPの保有アンカーフレームがデコードされて、対応するベースバンド画像データが保有アンカーバンクに格納されるようになされていた。
【０６３０】
この処理では、ストリームのあるGOPの先頭が入力した時点でのアンカーバンクの状況をもとに消去されるアンカーフレームに対応するGOPとアンカーバンクが決定するため、例えば、図８２を用いて説明したように、次に表示するために必要なGOPの保有アンカーフレームに対応するベースバンド画像データを保有アンカーバンクから消去してしまい、その表示が出来なかったり、そのGOPのアンカーフレームの再デコードのため、レスポンスが悪化してしまう可能性があった。
【０６３１】
すなわち、図４４乃至図８２を用いて説明した処理において、デコードコントローラ１５３は、ストリームバッファGOPキューにおいて、新たなデータがPUSHされた場合に、現在再生中のGOPのGOP_ID番号から最も離れたGOP_ID番号を有するGOPの情報がPOPされるものとして説明した。この場合、PUSHされたデータの先頭に付加されたデコード関連情報を取得したとき、その情報を元にスケジュールが行なわれるため、GOPデータの先頭が入力された時点でアンカーバンクの管理がGOP単位で実行される。そして、アンカーフレームが入力されたら、確保された保有アンカーバンクが割り当てられ、所定のタイミング（表示のためのデコード処理が実行されていない期間）でデコード処理が実行された後、得られたベースバンド画像データが、割り当てられた保有アンカーバンクに格納される。
【０６３２】
例えば、図８３に示されるように、保有アンカーバンクが１０フレーム分設けられ、バンク１乃至バンク３には、GOP(N-1)の保有アンカーフレームに対応するベースバンド画像データが格納され、バンク４乃至バンク６には、GOP(N)の保有アンカーフレームに対応するベースバンド画像データが格納され、バンク７乃至バンク９には、GOP(N＋1)の保有アンカーフレームに対応するベースバンド画像データが格納されている状態において、新たなGOPのデータが供給された場合について説明する。例えば、GOP(N＋3)が供給された場合、GOP(N-1)の保有アンカーフレームに対応するベースバンド画像データが削除されて、バンク１乃至バンク３にGOP(N＋3)の保有アンカーフレームに対応するベースバンド画像データが格納される。これに対して、GOP(N−3)が供給された場合、GOP(N＋1)の保有アンカーフレームに対応するベースバンド画像データが削除されて、バンク１０乃至バンク２にGOP(N−3)の保有アンカーフレームに対応するベースバンド画像データが格納される。
【０６３３】
ところで、図８４に示されるように、例えば、表示エラーが発生した場合など、デコードコントローラ１５３の制御により、GOP(N+1)の5フレーム目や10フレーム目が表示待ちのフレームとして存在し、次に、GOP(N-１)の8フレーム目がデコードされて表示待ちとなる予定である状態において、GOP(N-3)が入力されてGOP(N+1) の保有アンカーフレームに対応するベースバンド画像データが保有アンカーバンクから消去されたとき、表示待ちのGOP(N+1)の5フレーム目や10フレーム目が表示できないか、または、GOP(N+1)の保有アンカーフレームの再デコードにかかる時間のため、表示が遅くなってしまう恐れがある。
【０６３４】
これに対して、新たなデータがPUSHされた場合に、現在再生中のGOPのみならず、アンカーフレームのデコードが終了して表示指令を待っている状態のGOPや、既にデコードスケジュールに含まれているGOPについては、現在再生中のGOPのGOP_ID番号から最も離れたGOP_ID番号を有するGOPであっても、POPされることがないように制御すると、表示するべきフレームが表示できない状況を防ぐようにすることができ、更に好適である。
【０６３５】
図８５乃至図９１を参照して、新たなデータがPUSHされた場合に、現在再生中のGOPのみならず、アンカーフレームのデコードが終了して表示指令を待っている状態のGOPや、既にデコードスケジュールに含まれているGOPについては、現在再生中のGOPのGOP_ID番号から最も離れたGOP_ID番号を有するGOPであっても、POPされることがないように制御する場合について説明する。
【０６３６】
ここでも、デコードコントローラ１５３は、すべてのアンカーフレームではなく、例えば、図４９を用いて説明した場合のように、Iピクチャから１枚おきとなるアンカーフレームか、または、数枚おきに選択されたアンカーフレームのみを、保有アンカーフレームとして設定し、Ｂピクチャがデコードされる前のデコード処理の空き時間に、デコード処理部１５４によって予めデコードさせるように、セレクタ１５２を制御する。
【０６３７】
上述したように、デコード処理部１５４は、１フレームの表示時間に対して充分に短い持間（例えば、１フレームの表示時間の１／３乃至１／４程度）で、１フレームをデコードすることが可能である。したがって、デコードコントローラ１５３は、フレームメモリ１３１−３に保持可能な数の保有アンカーフレームが予めデコードされるように、１GOP単位ではなく、１フレーム単位でデコードタイミングをスケジュールする。そして、デコードされたアンカーフレームが、フレームメモリ１３１−３の所定のバンクに供給されて、保持されるよう、セレクタ１５２、セレクタ１５５、および、セレクタ１５６がそれぞれ制御される。
【０６３８】
新たなデータがPUSHされた場合に、現在再生中のGOPのみならず、アンカーフレームのデコードが終了して表示指令を待っている状態のGOPや、既にデコードスケジュールに含まれているGOPについては、現在再生中のGOPのGOP_ID番号から最も離れたGOP_ID番号を有するGOPであっても、POPされることがないように制御する場合、図４４乃至図８２を用いて説明した場合と比較して、保有アンカーバンクからの情報の消去方法、および、情報の消去のタイミング、並びに、アンカーバンク情報の追加のタイミングが異なる。
【０６３９】
このような制御を実現させるためには、保有アンカーバンクから削除される情報に対応するGOPが表示スケジュールにあるフレームを含むGOPであるか否かと、そのGOPがデコードスケジュールにあるGOPであるか否かを判断する必要がある。
【０６４０】
そこで、保有アンカーフレームが入力された時点でデコードスケジュールは行うが、予め保有アンカーバンクに空きを作るために格納済みのデータの一部を消去しないようにして、その保有アンカーフレームのデコード時に、保有アンカーバンクの空きバンクを確保するものとする。
【０６４１】
すなわち、図８５に示されるように、保有アンカーバンクが１０フレーム分設けられ、バンク１乃至バンク３には、GOP(N-1)の保有アンカーフレームに対応するベースバンド画像データが格納され、バンク４乃至バンク６には、GOP(N)の保有アンカーフレームに対応するベースバンド画像データが格納され、バンク７乃至バンク９には、GOP(N＋1)の保有アンカーフレームに対応するベースバンド画像データが格納されている状態において、GOP(N−3)が供給された場合、まず、最初にデコードされる保有アンカーフレームであるI2ピクチャのデコード時に、保有アンカーバンクの空きバンクであるバンク１０が確保され、デコードされて得られたI2ピクチャに対応するベースバンド画像データが格納される。
【０６４２】
このとき、GOP(N＋1)に含まれているフレームであるP5ピクチャおよびB10ピクチャが表示指令を待っている状態であり、GOP(N-1)に含まれているフレームであるP8ピクチャが既にデコードスケジュールに含まれているので、GOP(N＋1)および、GOP(N-1)の保有アンカーフレームに対応するベースバンド画像データは削除されない。すなわち、この状態において保有アンカーバンクから削除可能なのは、GOP(N)の保有アンカーフレームに対応するベースバンド画像データである。
【０６４３】
そこで、GOP(N−3)においてI2ピクチャの次にデコードされる保有アンカーフレームであるP8ピクチャのデコード時に、保有アンカーバンクの空きバンクが確保されるので、図８６に示されるように、GOP(N)の保有アンカーフレームに対応するベースバンド画像データが削除されて、バンク４乃至バンク６が空きバンクとなる。そして、デコードされて得られたP8ピクチャおよびP14ピクチャに対応するベースバンド画像データが、バンク４およびバンク５に格納される。
【０６４４】
このように、GOP(N+1) に含まれている保有アンカーフレームに対応するベースバンド画像データを保護して削除されないようにすることにより、GOP(N+1)に含まれる表示待ちのフレームをすぐに表示することが可能になる。
【０６４５】
また、図８７に示されるように、保有アンカーバンクが１０フレーム分設けられ、バンク１乃至バンク３には、GOP(N-1)の保有アンカーフレームに対応するベースバンド画像データが格納され、バンク４乃至バンク６には、GOP(N)の保有アンカーフレームに対応するベースバンド画像データが格納され、バンク７乃至バンク９には、GOP(N＋1)の保有アンカーフレームに対応するベースバンド画像データが格納されている状態（保有アンカーバンクは上述した図８５における場合と同じ状態）において、GOP(N−3)が供給された場合、まず、最初にデコードされる保有アンカーフレームであるI2ピクチャのデコード時に、保有アンカーバンクの空きバンクであるバンク１０が確保され、デコードされて得られたI2ピクチャに対応するベースバンド画像データが格納される。
【０６４６】
I2ピクチャに対応するベースバンド画像データが格納されるとき、GOP(N＋1)に含まれているフレームであるP5ピクチャが表示指令を待ち、GOP(N-1)に含まれているフレームであるP8ピクチャが既にデコードスケジュールに含まれている状態から、GOP(N＋1)に含まれているフレームであるP5ピクチャが表示され、GOP(N-1)に含まれているフレームであるP8ピクチャが表示待ち状態となった場合、GOP(N-1)の保有アンカーフレームに対応するベースバンド画像データは削除することはできないが、GOP(N)の保有アンカーフレームに対応するベースバンド画像データのみならず、GOP(N＋1)の保有アンカーフレームに対応するベースバンド画像データも削除可能な状態となる。したがって、この状態において保有アンカーバンクから削除されるのは、新たに供給されたGOP(N−3)から離れたGOP_ID番号を有するGOP(N＋1)である。
【０６４７】
すなわち、保有アンカーバンクの空きを確保するタイミングが、デコード処理の直前となったため、削除可能な保有アンカーバンクを多く検出することができる可能性が高くなり、必要なフレームの表示ができなくなってしまう可能性を削減するとともに、新たに入力されたGOPの付近のGOPの保有アンカーフレームに対応するベースバンド画像データを、できるだけ保有アンカーバンクに残しておくことができるようになる。
【０６４８】
そこで、GOP(N−3)においてI2ピクチャの次にデコードされる保有アンカーフレームであるP8ピクチャのデコード時に、保有アンカーバンクの空きバンクが確保されるので、図８８に示されるように、GOP(N＋1)の保有アンカーフレームに対応するベースバンド画像データが削除されて、バンク７乃至バンク９が空きバンクとなるので、デコードされて得られたP8ピクチャおよびP14ピクチャに対応するベースバンド画像データが、バンク７およびバンク８に格納される。
【０６４９】
このように、削除可能な保有アンカーフレームに対応するGOPが複数存在した場合、図４４乃至図８２を用いて説明した処理と同様にして、新たに供給されたGOP(N−3)から離れたGOP_ID番号を有するGOPに含まれる保有アンカーフレームのベースバンド画像データが、保有アンカーバンクから優先的に消去されるようになされている。
【０６５０】
また、図４４乃至図８２を用いて説明した処理においては、保有アンカーフレームをGOP単位で保有アンカーバンクに書き込むため、デコード関連情報として、そのGOPに含まれるアンカーフレーム数の情報が必要であった。この場合と比較して、図８５乃至図８８を用いて説明した処理においては、保有アンカーフレームをGOP単位ではなくフレームごとに保有アンカーバンクに書き込むため、デコード関連情報として、そのGOPに含まれるアンカーフレーム数の情報が必要ではない。
【０６５１】
すなわち、図８５乃至図８８を用いて説明した処理においては、アンカーフレーム数の情報がないストリームをデコードする場合であっても、簡単な制御で、保有アンカーバンクの管理を行い、表示レスポンスを向上させるとともに、表示ができない状況が発生する可能性を低くすることが可能となる。
【０６５２】
次に、図８９のフローチャートを参照して、保有アンカーフレームが入力された時点ではデコードスケジュールを行うのみとして、予め保有アンカーバンクに空きを作るために格納済みのデータの一部を消去しないようにして、その保有アンカーフレームのデコード時に、保有アンカーバンクの空きバンクを確保するようになされている場合に、デコーダ１２２が実行するストリーム再生処理２について説明する。
【０６５３】
ステップＳ９０１において、デコーダ１２２のデコードコントローラ１５３は、入力処理部１５１に新たなＧＯＰが供給されたか否かを判断する。ステップＳ９０１において、新たなＧＯＰが供給されていないと判断された場合、処理は、ステップＳ９０４に進む。
【０６５４】
ステップＳ９０２において、図９０のフローチャートを用いて後述するストリーム入力時の処理２が実行される。
【０６５５】
ステップＳ９０３において、デコードコントローラ１５３は、図４８を用いて説明したストリームバッファＧＯＰキューの情報に基づいて、ストリームバッファ１３１−１へのストリームデータの入力を制御する。
【０６５６】
ステップＳ９０１において、新たなＧＯＰが供給されていないと判断された場合、または、ステップＳ９０３の処理の終了後、ステップＳ９０４において、デコードコントローラ１５３は、表示のためのデコード処理のタイミング以外のタイミングであるか否かを基に、アンカーフレームデコード開始コマンドが供給されることにより、デコード開始が指令されたＧＯＰのアンカーフレームのデコード処理が可能であるか否かを判断する。
【０６５７】
ステップＳ９０４において、アンカーフレームのデコード処理が可能であると判断された場合、ステップＳ９０５において、デコードコントローラ１５３は、フレームメモリ１３１−３の保有アンカーバンクに、デコード開始が指令されたＧＯＰのアンカーフレームが保持されているか否かを判断する。
【０６５８】
ステップＳ９０５において、デコード開始が指令されたＧＯＰのアンカーフレームが保持されていないと判断された場合、ステップＳ９０６において、デコードコントローラ１５３は、図９１を用いて後述するアンカーフレームデコード処理を実行する。
【０６５９】
ステップＳ９０４において、アンカーフレームのデコード処理が可能ではないと判断された場合、ステップＳ９０５において、デコード開始が指令されたＧＯＰのアンカーフレームが保持されていると判断された場合、または、ステップＳ９０６の処理の終了後、ステップＳ９０７において、デコードコントローラ１５３は、ＣＰＵ１２１から供給される制御信号に基づいて、いずれかのフレームの出力が要求されたか否かを判断する。
【０６６０】
ステップＳ９０７において、いずれかのフレームの出力が要求されたと判断された場合、ステップＳ９０８において、図６０乃至図６２または図６８乃至図７０を用いて説明した出力処理が実行される。
【０６６１】
ステップＳ９０７において、いずれかのフレームの出力が要求されなかったと判断された場合、または、ステップＳ９０８の処理の終了後、ステップＳ９０９において、デコードコントローラ１５３は、入力処理部１５１へのストリームの供給が終了されたか否かを判断する。ステップＳ９０９において、ストリームの供給が終了されていないと判断された場合、処理は、ステップＳ９０１に戻り、それ以降の処理が繰り返される。
【０６６２】
ステップＳ９０９において、ストリームの供給が終了されたと判断された場合、ステップＳ９１０において、デコードコントローラ１５３は、供給されたストリームの再生処理が終了されたか否かを判断する。ステップＳ９１０において、供給されたストリームの再生処理が終了されていないと判断された場合、処理は、ステップＳ９０４に戻り、それ以降の処理が繰り返される。ステップＳ９１０において、供給されたストリームの再生処理が終了されたと判断された場合、処理は終了される。
【０６６３】
このような処理により、デコーダ１２２において、転送されたＧＯＰに含まれるアンカーフレームのうちの少なくとも一部である保有アンカーフレームが優先的にデコードされるので、いずれかのフレームの出力が指令された場合に必要なデコード枚数を減少することができ、レスポンスが向上するとともに、全てのアンカーフレームを予めデコードしてメモリバンクに保持しておく場合と比較して、少ないメモリ容量で、できるだけ広い範囲のランダム再生やスクラブ再生、または、短い区間で正方向と逆方向の再生を連続して指令するトランジェント再生などの表示レスポンスを向上させるようにすることができ、更に、表示ができない状況が発生する可能性を低くすることが可能となる。また、デコード関連情報にアンカーバンク数が含まれていない場合においても、このような制御を実行することが可能となる。
【０６６４】
次に、図９０のフローチャートを参照して、図８９のステップＳ９０２において実行されるストリーム入力時の処理２について説明する。
【０６６５】
ステップＳ９３１において、デコーダ１２２のデコードコントローラ１５３は、入力処理部１５１に入力されたピクチャはＩピクチャまたはＰピクチャであるか否かを判断する。ステップＳ９３１において、入力されたピクチャはＩピクチャまたはＰピクチャではないと判断された場合、処理は、後述するステップＳ９３３に進む。
【０６６６】
ステップＳ９３１において、入力されたピクチャはＩピクチャまたはＰピクチャではあると判断された場合、ステップＳ９３２において、図５８を用いて説明したアンカーフレームデコードスケジュール処理が実行される。
【０６６７】
ステップＳ９３１において、入力されたピクチャはＩピクチャまたはＰピクチャではない、すなわち、入力されたピクチャはＢピクチャであると判断された場合、または、ステップ６３２の処理の終了後、ステップＳ９３３において、図５９を用いて説明したストリームバッファGOPキューを利用したピクチャの管理処理が実行される。
【０６６８】
そして、ステップＳ９３４において、デコードコントローラ１５３は、入力処理部１５１に入力されたピクチャはＧＯＰの最後のピクチャであるか否かを判断する。ステップＳ９３５において、入力されたピクチャはＧＯＰの最後のピクチャではないと判断された場合、処理は、ステップＳ９３１に戻り、それ以降の処理が繰り返される。ステップＳ９３４において、入力されたピクチャはＧＯＰの最後のピクチャであると判断された場合、処理は、図８９のステップＳ９０２に戻り、ステップＳ９０３に進む。
【０６６９】
このようにして、ストリームの入力時においては、アンカーフレームのデコード処理と、ストリームバッファＧＯＰキューによるピクチャの管理処理のみが実行され、保有アンカーバンク管理処理は実行されない。
【０６７０】
次に、図９１のフローチャートを参照して、図８９のステップＳ９０６において実行される、アンカーフレームデコード処理について説明する。
【０６７１】
ステップＳ９５１において、デコードコントローラ１５３は、保有アンカーバンクに空きがあるか否かを判断する。ステップＳ９５１において、保有アンカーバンクに空きがあると判断された場合、処理は、後述するステップＳ９６０に進む。
【０６７２】
ステップＳ９５１において、保有アンカーバンクに空きがないと判断された場合、ステップＳ９５２において、デコードコントローラ１５３は、保有アンカーバンクに保持されているGOPを全て調べたか否かを判断する。ステップＳ９５２において、保有アンカーバンクに保持されているGOPを全て調べたと判断された場合、処理は、後述するステップＳ９５８に進む。
【０６７３】
ステップＳ９５２において、保有アンカーバンクに保持されているGOPを全て調べていないと判断された場合、ステップＳ９５３において、デコードコントローラ１５３は、保有アンカーバンクに保持されているGOPのうち、まだ削除可能か否かを調べていないGOPを1つ抽出する。
【０６７４】
ステップＳ９５４において、デコードコントローラ１５３は、そのＧＯＰは、デコードスケジュールに含まれているフレームを含むGOPであるか否かを判断する。ステップＳ９５４において、デコードスケジュールに含まれているフレームを含むGOPであると判断された場合、処理は、ステップＳ９５２に戻り、それ以降の処理が繰り返される。
【０６７５】
ステップＳ９５４において、デコードスケジュールに含まれているフレームを含むGOPではないと判断された場合、ステップＳ９５５において、デコードコントローラ１５３は、そのＧＯＰは、表示予定のフレームを含むGOPであるか否かを判断する。ステップＳ９５５において、表示予定のフレームを含むGOPであると判断された場合、処理は、ステップＳ９５２に戻り、それ以降の処理が繰り返される。
【０６７６】
ステップＳ９５５において、表示予定のフレームを含むGOPではないと判断された場合、ステップＳ９５６において、デコードコントローラ１５３は、そのＧＯＰは、デコードスケジュールに含まれているフレームを含むGOPおよび表示予定のフレームを含むGOPを除いたうち、次に供給されるGOPと最も遠い位置に配置されているGOPであるか否かを判断する。ステップＳ９５６において、次に供給されるGOPと最も遠い位置に配置されているGOPではないと判断された場合、処理は、ステップＳ９５２に戻り、それ以降の処理が繰り返される。
【０６７７】
ステップＳ９５６において、次に供給されるGOPと最も遠い位置に配置されているGOPであると判断された場合、ステップＳ９５７において、デコードコントローラ１５３は、そのＧＯＰを、保有アンカーバンクから削除されるベースバンド画像データに対応するGOPとして決定する。
【０６７８】
ステップＳ９５２において、保有アンカーバンクに保持されているGOPを全て調べたと判断された場合、ステップＳ９５８において、デコードコントローラ１５３は、削除されるGOPが存在したか否かを判断する。ステップＳ９５８において、削除されるGOPが存在しなかったと判断された場合、処理は、図８９のステップＳ９０６に戻り、ステップＳ９０７に進む。
【０６７９】
すなわち、デコードスケジュールに含まれているフレームを含むGOPおよび表示予定のフレームを含むGOPに含まれる保有アンカーフレームに対応するベースバンド画像データが保有アンカーバンクから削除された場合、すぐに再生出力がフリーズしてしまう可能性が発生するが、保有アンカーフレームのデコード処理は、予め実行されるものであるので、このタイミングではデコード処理を実行することなく、次のタイミングで実行するものとしても、再生出力に影響を及ぼさない可能性がある。そこで、削除可能なアンカーバンクが存在しなかった場合、保有アンカーフレームのデコード処理は実行されないようになされている。
【０６８０】
ステップＳ９５８において、削除されるGOPが存在したと判断された場合、ステップＳ９５９において、デコードコントローラ１５３は、削除されるGOPとして決定されたGOPに含まれる保有アンカーフレームに対応するベースバンド画像データを保有アンカーバンクから削除する。
【０６８１】
ステップＳ９５１において、保有アンカーバンクに空きがあると判断された場合、または、ステップＳ９５９の処理の終了後、ステップＳ９６０において、デコードコントローラ１５３は、保有アンカーバンクの空き領域を1バンク確保する。
【０６８２】
ステップＳ９６１において、デコードコントローラ１５３は、確保されたアンカーバンクを割り当て、アンカーフレームをデコードし、処理は、図８９のステップＳ９０６に戻り、ステップＳ９０７に進む。
【０６８３】
このようにして、保有アンカーフレームのデコード処理の直前に、１フレームごとに保有アンカーバンクを確保する処理が実行され、デコードスケジュールに含まれているフレームを含むGOPおよび表示予定のフレームを含むGOP以外のGOPが存在した場合、そのＧＯＰに含まれる保有アンカーフレームに対応するベースバンド画像データが削除されるようになされている。
【０６８４】
したがって、デコード処理において表示レスポンスが向上するとともに、表示ができない状況が発生する可能性が低くなる。また、デコードされるストリームに付随される情報はGOP_IDのみでよいため、デコードされるストリームに対して付加情報を取得するための解析処理を削減することが可能となる。
【０６８５】
以上説明した処理においては、ＨＤＤ１６に記録されている圧縮符号化データに対して、ＨＤＤ１６から読み出すデータとして有効であるか否かを示す読み出し用のフラグ群、デコードのスケジューリングにおいて有効であるか否かを示すデコード用のフラグ群、デコードされたデータを表示するスケジューリングにおいて有効であるか否かを示す表示用のフラグ群等をメタデータとして適宜設け、一連のフラグ群を再生速度・方向に応じて自動的に更新することによりスケジューリングを管理することも可能である。
【０６８６】
このとき、過去の可変速再生処理に用いた一連のスケジューリング、フラグ群の更新情報を、別途スケジューリングのメタデータ（履歴情報）として管理することも可能であり、必要に応じて、圧縮符号化データ中にシンタックスとして記述したり、記録媒体であるＨＤＤ１６等に別途記録したりしても良い。
【０６８７】
また、デコーダ数、バンク数、デコーダＩＤ等をメタデータ（構成履歴情報）として管理することも可能である。さらに、再生速度、再生方向等をメタデータ（再生履歴情報）として管理することも可能である。このとき、これらメタデータを、必要に応じて圧縮符号化データ中にシンタックスとして記述したり、記録媒体であるＨＤＤ１６等に別途記録したりしても良い。
【０６８８】
このようなメタデータ（履歴情報）を参照することにより、過去に行われたスケジューリング処理を再利用することができ、更に正確に高速にスケジューリング処理を実行することが可能となる。
【０６８９】
なお、このようなメタデータは、例えば、データベースとして外部装置で管理するような構成にしてもよい。
【０６９０】
なお、上述の実施の形態においては、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、ＨＤＤ１６に記録されている圧縮符号化データを、完全にデコードしない（中途段階までデコードする）場合においても、本発明は適用可能である。
【０６９１】
具体的には、例えば、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、可変長符号に対する復号および逆量子化のみを行い、逆DCT変換を実行しない場合や、逆量子化を行うが可変長符号に対する復号を行わない場合などにおいても、本発明を適用することができる。このような場合、例えば、デコーダ２２乃至デコーダ２４、または、デコーダ１２２は、例えば、符号化処理および復号処理においてどの段階（例えば逆量子化の段階）まで処理が行われたかを示す履歴情報を必要に応じて生成し、不完全に復号されたデータに対応付けて出力することができるようにしても良い。
【０６９２】
さらに、上述の実施の形態においては、ＨＤＤ１６に、不完全に符号化されたデータ（例えば、DCT変換および量子化が行われているが、可変長符号化処理が行われていないデータなど）と、必要に応じて、符号化処理および復号処理の履歴情報が記憶されており、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、ＣＰＵ２０またはＣＰＵ１２１の制御に基づいて、供給された不完全に符号化されたデータをデコードし、ベースバンド信号に変換することができるような場合においても、本発明は適用可能である。
【０６９３】
具体的には、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、例えば、DCT変換および量子化が行われているが、可変長符号化処理が行われていない不完全に符号化されたデータに対して、逆DCT変換および逆量子化のみを行い、可変長符号に対する復号は実行しない場合などにおいても、本発明を適用することができる。
【０６９４】
また、このような場合、例えば、ＣＰＵ２０またはＣＰＵ１２１は、不完全に符号化されたデータに対応付けられてＨＤＤ１６に記憶されている符号化処理および復号処理の履歴情報を取得し、これらの情報に基づいて、デコーダ２２乃至デコーダ２４、または、デコーダ１２２によるデコードのスケジューリングを行うことができるようにしても良い。
【０６９５】
さらに、上述の実施の形態においては、ＨＤＤ１６に、不完全に符号化されたデータと、必要に応じて、符号化処理および復号処理の履歴情報が記憶されており、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、ＣＰＵ２０またはＣＰＵ１２１の制御に基づいて、供給された不完全に符号化されたデータを完全にデコードしない（中途段階までデコードする）場合においても、本発明は適用可能である。
【０６９６】
また、このような場合も、例えば、ＣＰＵ２０またはＣＰＵ１２１は、不完全に符号化されたデータに対応付けられてＨＤＤ１６に記憶されている符号化処理および復号処理の履歴情報を取得し、これらの情報に基づいて、デコーダ２２乃至デコーダ２４、または、デコーダ１２２によるデコードのスケジューリングを行うことができるようにしても良い。更に、この場合においても、デコーダ２２乃至デコーダ２４、または、デコーダ１２２は、符号化処理および復号処理の履歴情報を必要に応じて生成し、不完全に復号されたデータに対応付けて出力することができるようにしても良い。
【０６９７】
換言すれば、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、ＣＰＵ２０またはＣＰＵ１２１の制御に基づいて、部分的な復号を行う（復号処理の工程のうちの一部を実行する）場合においても、本発明は適用可能であり、ＣＰＵ２０またはＣＰＵ１２１は、不完全に符号化されたデータに対応付けてＨＤＤ１６に記憶されている符号化処理および復号処理の履歴情報を取得し、これらの情報に基づいて、デコーダ２２乃至デコーダ２４、または、デコーダ１２２によるデコードのスケジューリングを行うことができ、デコーダ２２乃至デコーダ２４、または、デコーダ１２２は、符号化処理および復号処理の履歴情報を必要に応じて生成し、不完全に復号されたデータに対応付けて出力することができるようにしても良い。
【０６９８】
更に、ＨＤＤ１６には、圧縮符号化されたストリームデータに対応付けて、更に、符号化処理および復号処理の履歴情報を記録するようにしても良く、ＣＰＵ２０またはＣＰＵ１２１は、圧縮符号化されたストリームデータのデコードのスケジューリングを、符号化処理および復号処理の履歴情報に基づいて行うようにしても良い。さらに、デコーダ２２乃至デコーダ２４、または、デコーダ１２２が、ＣＰＵ２０またはＣＰＵ１２１の制御に基づいて、圧縮符号化されたストリームデータをデコードして、ベースバンド信号に変換することができるような場合においても、符号化処理および復号処理の履歴情報を必要に応じて生成し、ベースバンド信号に対応付けて出力することができるようにしても良い。
【０６９９】
なお、上述の実施の形態においては、再生装置が、それぞれ、複数または１つのデコーダを有しているものとして説明したが、デコーダが、それぞれ、独立した装置として構成されている場合においても、本発明は適用可能である。
【０７００】
このとき、独立した装置として構成されているデコーダは、圧縮符号化データの供給を受けてこれを復号し、表示または出力するのみならず、上述した場合と同様にして、圧縮符号化データの供給を受け、中途段階まで部分的に復号して、符号化および復号の履歴情報とともに外部に出力したり、部分的に符号化されたデータの供給を受け、復号処理を行い、ベースバンド信号に変換して外部に出力したり、部分的に符号化されたデータの供給を受け、中途段階まで部分的に復号して、符号化および復号の履歴情報とともに外部に出力するようにしても良い。
【０７０１】
さらに、上述の実施の形態においては、ＣＰＵ１１およびＣＰＵ２０またはＣＰＵ１２１がそれぞれ別の形態で構成されているが、ＣＰＵの構成は、これに限らず、例えば、ＣＰＵ１１およびＣＰＵ２０またはＣＰＵ１２１を、再生装置１または再生装置１０１全体を制御する１つのＣＰＵとして構成する形態も考えられる。また、ＣＰＵ１１およびＣＰＵ２０またはＣＰＵ１２１がそれぞれ独立して構成されている場合であっても、ＣＰＵ１１およびＣＰＵ２０またはＣＰＵ１２１を１つのチップとして構成するようにしてもよい。
【０７０２】
更に、ＣＰＵ１１およびＣＰＵ２０またはＣＰＵ１２１がそれぞれ独立して構成されている場合、上述の実施の形態においてＣＰＵ１１が実行した処理の少なくとも一部を、例えば、時分割で、ＣＰＵ２０またはＣＰＵ１２１が実行することができるようにしたり、ＣＰＵ２０またはＣＰＵ１２１が実行した処理の少なくとも一部を、例えば、時分割で、ＣＰＵ１１が実行することができるようにしてもよい。すなわち、ＣＰＵ１１およびＣＰＵ２０またはＣＰＵ１２１には、分散処理が可能なプロセッサを用いるようにしても良い。
【０７０３】
また、例えば、再生装置１をネットワークに接続可能な構成とし、上述の実施の形態において、ＣＰＵ１１またはＣＰＵ２０またはＣＰＵ１２１が実行した処理の少なくとも一部を、ネットワークを介して接続されている他の装置のＣＰＵにおいて実行させることができるようにしても良い。
【０７０４】
同様に、上述の実施の形態においては、メモリ１３およびメモリ２１がそれぞれ別の形態で構成されているが、これに限らず、メモリ１３およびメモリ２１を、再生装置１において１つのメモリとして構成する形態も考えられる。
【０７０５】
さらに、上述の実施の形態においては、ＨＤＤ１６、デコーダ２２乃至デコーダ２４、または、デコーダ１２２などのモジュールを、それぞれ、ブリッジおよびバスを介して接続し、再生装置として一体化されている場合について述べたが、本発明はこれに限らず、例えば、これらの構成要素のうちの一部が、外部から有線または無線で接続される場合や、これらの構成要素が、この他、種々の接続形態で相互に接続される場合にも適用することができる。
【０７０６】
なお、ここでは、コーディックの方式としてＭＰＥＧを用いた場合を例として説明しているが、フレーム相関を伴うコーディック処理を行う場合においても、本発明は適用可能であることはいうまでもない。例えば、ＡＶＣ（Advanced Video Coding）／Ｈ．２６４などにおいて、本発明は適用可能である。
【０７０７】
なお、ＡＶＣ/Ｈ.２６４のＢピクチャは、必ずしも、前方向および後ろ方向の双方向の参照画像を用いるとは限らず、過去から２枚の参照画像を用いて予測しても、未来から２枚の参照画像を用いて予測してもよいが、このような場合を考慮して、本発明を適用することは可能である。
【０７０８】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図９２に示されるようなパーソナルコンピュータ２０１により実行される。
【０７０９】
図９２において、CPU（Central Processing Unit）２１１は、ROM(Read Only Memory)２１２に記憶されているプログラム、または、記憶部２１８からRAM(Random Access Memory)２１３にロードされたプログラムに従って各種の処理を実行する。RAM２１３にはまた、CPU２１１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０７１０】
CPU２１１、ROM２１２、およびRAM２１３は、内部バス２１４を介して相互に接続されている。この内部バス２１４にはまた、入出力インターフェース２１５も接続されている。
【０７１１】
入出力インターフェース２１５には、キーボード、マウスなどよりなる入力部２１６、CRT，LCDなどよりなるディスプレイ、スピーカなどよりなる出力部２１７、ハードディスクなどより構成される記憶部２１８、並びに、モデム、ターミナルアダプタなどより構成される通信部２１９が接続されている。通信部２１９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
【０７１２】
入出力インターフェース２１５にはまた、必要に応じてドライブ２２０が接続され、磁気ディスク２３１（フレキシブルディスクを含む）、光ディスク２３２（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク２３３（ＭＤ(Mini-Disk)（商標）を含む）、もまたは、半導体メモリ２３４などが適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部２１８にインストールされる。
【０７１３】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０７１４】
この記録媒体は、図９２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２３１、光ディスク２３２、光磁気ディスク２３３、または、半導体メモリ２３４などよりなるパッケージメディアなどにより構成される。
【０７１５】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０７１６】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０７１７】
さらに、上述の実施の形態においては、圧縮されたストリームデータがＨＤＤ１６に記憶されている場合について述べたが、本発明はこれに限らず、例えば、光ディスク、光磁気ディスク、半導体メモリ、磁気ディスク等の種々の記録媒体に記録されたストリームデータをデコードする場合にも適用することができる。
【０７１８】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０７１９】
【図１】再生装置の構成を示すブロック図である。
【図２】図１のデコーダの詳細な構成を示すブロック図である。
【図３】制御処理について説明するためのフローチャートである。
【図４】フレームごとに行う処理１について説明するためのフローチャートである。
【図５】入力ストリーム状態変更処理について説明するためのフローチャートである。
【図６】デコードスケジュール処理１について説明するためのフローチャートである。
【図７】MPEG LONG GOPについて説明するための図である。
【図８】１つのデコーダでデコードが行われる処理単位について説明するための図である。
【図９】入力ピクチャキューに蓄積される情報について説明するための図である。
【図１０】表示順情報キューに蓄積される情報について説明するための図である。
【図１１】Ｉ／Ｐピクチャデコードキューに蓄積される情報について説明するための図である。
【図１２】表示順設定キューに蓄積される情報について説明するための図である。
【図１３】デコードと表示のタイミングについて説明するための図である。
【図１４】デコードと表示のタイミングについて説明するための図である。
【図１５】入力処理について説明するためのフローチャートである。
【図１６】表示位相決定処理について説明するためのフローチャートである。
【図１７】時間情報付きスケジュール決定処理について説明するためのフローチャートである。
【図１８】フレーム制御処理１について説明するためのフローチャートである。
【図１９】ＩピクチャおよびＰピクチャデコード処理について説明するためのフローチャートである。
【図２０】Ｂピクチャデコード処理について説明するためのフローチャートである。
【図２１】デコードと表示のスケジュールについて説明するための図である。
【図２２】デコードと表示のスケジュールについて説明するための図である。
【図２３】間引き処理１について説明するためのフローチャートである。
【図２４】時間情報再設定処理について説明するためのフローチャートである。
【図２５】２倍速の場合の間引き後のデコードと表示のスケジュールについて説明するための図である。
【図２６】−２倍速の場合の間引き後のデコードと表示のスケジュールについて説明するための図である。
【図２７】４倍速の場合の間引き後のデコードと表示のスケジュールについて説明するための図である。
【図２８】−４倍速の場合の間引き後のデコードと表示のスケジュールについて説明するための図である。
【図２９】５倍速の場合の間引き後のデコードと表示のスケジュールについて説明するための図である。
【図３０】−５倍速の場合の間引き後のデコードと表示のスケジュールについて説明するための図である。
【図３１】通常再生時のバンク管理について説明するための図である。
【図３２】２倍速再生時のバンク管理について説明するための図である。
【図３３】−１倍速再生時のバンク管理について説明するための図である。
【図３４】−２倍速再生時のバンク管理について説明するための図である。
【図３５】アンダーフロー処理について説明するためのフローチャートである。
【図３６】アンダーフローが発生していない場合の時間カウンタについて説明するための図である。
【図３７】アンダーフローが発生した場合の時間カウンタの修正について説明するための図である。
【図３８】１フレームディレイ処理について説明するためのフローチャートである。
【図３９】フレームごとに行う処理２について説明するためのフローチャートである。
【図４０】デコードスケジュール処理２について説明するためのフローチャートである。
【図４１】間引き処理２について説明するためのフローチャートである。
【図４２】フレーム制御処理２について説明するためのフローチャートである。
【図４３】間引き処理３について説明するためのフローチャートである。
【図４４】再生装置の異なる構成を示すブロック図である。
【図４５】ＣＰＵ１２１のＧＯＰ転送制御処理について説明するためのフローチャートである。
【図４６】図４４のデコーダの構成を示すブロック図である。
【図４７】ＧＯＰのヘッダ情報について説明するための図である。
【図４８】ストリームバッファGOPキューについて説明するための図である。
【図４９】保有アンカーフレームと非保有アンカーフレームについて説明するための図である。
【図５０】ストリームバッファＧＯＰキューについて説明するための図である。
【図５１】バンク構成について説明するための図である。
【図５２】GOP保有アンカーキューについて説明するための図である。
【図５３】保有アンカーバンクの管理について説明するための図である。
【図５４】保有アンカーバンクの管理について説明するための図である。
【図５５】ストリーム再生処理１について説明するためのフローチャートである。
【図５６】ストリーム入力時の処理１について説明するためのフローチャートである。
【図５７】保有アンカーバンク管理処理について説明するためのフローチャートである。
【図５８】アンカーフレームデコードスケジュール処理について説明するためのフローチャートである。
【図５９】ストリームバッファＧＯＰキューを利用したピクチャの管理処理について説明するためのフローチャートである。
【図６０】出力処理１について説明するためのフローチャートである。
【図６１】出力処理１について説明するためのフローチャートである。
【図６２】出力処理１について説明するためのフローチャートである。
【図６３】先送り転送のタイミングの具体例について説明するための図である。
【図６４】先送り転送のタイミングの具体例について説明するための図である。
【図６５】先送り転送のタイミングの具体例について説明するための図である。
【図６６】先送り転送のタイミングの具体例について説明するための図である。
【図６７】先送り転送のタイミングの具体例について説明するための図である。
【図６８】先送り転送のタイミングの具体例について説明するための図である。
【図６９】先送り転送のタイミングの具体例について説明するための図である。
【図７０】先送り転送のタイミングの具体例について説明するための図である。
【図７１】先送り転送のタイミングの具体例について説明するための図である。
【図７２】先送り転送のタイミングの具体例について説明するための図である。
【図７３】デコード、表示、フレームメモリの各バンクの状態について説明するための図である。
【図７４】デコード、表示、フレームメモリの各バンクの状態について説明するための図である。
【図７５】保有アンカーフレームを2ピクチャ、3ピクチャ、または、4ピクチャおきとする場合のGOPの保有・非保有アンカーフレーム構成図である。
【図７６】保有アンカーフレームを2ピクチャ、3ピクチャ、または、4ピクチャおきとした場合のバンク割り当てを説明するための図である。
【図７７】保有アンカーフレームを2ピクチャとした場合の保有アンカーフレームのデコードについて説明するための図である。
【図７８】保有アンカーフレームを2ピクチャとした場合のＢピクチャのデコードについて説明するための図である。
【図７９】出力処理２について説明するためのフローチャートである。
【図８０】出力処理２について説明するためのフローチャートである。
【図８１】出力処理２について説明するためのフローチャートである。
【図８２】全てのアンカーフレームを保有アンカーフレームとした場合について説明するための図である。
【図８３】新たなＧＯＰが供給された場合の処理について説明するための図である。
【図８４】表示待ちのフレームが存在した場合に発生する障害について説明するための図である。
【図８５】表示待ちのフレームおよびデコードスケジュール済みのフレームが存在した場合の処理について説明するための図である。
【図８６】表示待ちのフレームおよびデコードスケジュール済みのフレームが存在した場合の処理について説明するための図である。
【図８７】表示待ちのフレームおよびデコードスケジュール済みのフレームが存在した場合の処理について説明するための図である。
【図８８】表示待ちのフレームおよびデコードスケジュール済みのフレームが存在した場合の処理について説明するための図である。
【図８９】ストリーム再生処理２について説明するためのフローチャートである。
【図９０】ストリーム入力時の処理２について説明するためのフローチャートである。
【図９１】アンカーフレームデコード処理について説明するためのフローチャートである。
【図９２】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
【０７２０】
１１  ＣＰＵ，  １６  ＨＤＤ，  １０１  再生装置，  １２１  ＣＰＵ，  １２２  デコーダ，  １３１  メモリ，  １３１−１  ストリームバッファ，  １３１−３  フレームメモリ，  １５２  セレクタ，  １５３  デコードコントローラ，  １５４  デコード処理部，  １５５，１５６，１５７  セレクタ
【図１】
2007336069.tif 000003
【図２】
2007336069.tif 000004
【図３】
2007336069.tif 000005
【図４】
2007336069.tif 000006
【図５】
2007336069.tif 000007
【図６】
2007336069.tif 000008
【図７】
2007336069.tif 000009
【図８】
2007336069.tif 000010
【図９】
2007336069.tif 000011
【図１０】
2007336069.tif 000012
【図１１】
2007336069.tif 000013
【図１２】
2007336069.tif 000014
【図１３】
2007336069.tif 000015
【図１４】
2007336069.tif 000016
【図１５】
2007336069.tif 000017
【図１６】
2007336069.tif 000018
【図１７】
2007336069.tif 000019
【図１８】
2007336069.tif 000020
【図１９】
2007336069.tif 000021
【図２０】
2007336069.tif 000022
【図２１】
2007336069.tif 000023
【図２２】
2007336069.tif 000024
【図２３】
2007336069.tif 000025
【図２４】
2007336069.tif 000026
【図２５】
2007336069.tif 000027
【図２６】
2007336069.tif 000028
【図２７】
2007336069.tif 000029
【図２８】
2007336069.tif 000030
【図２９】
2007336069.tif 000031
【図３０】
2007336069.tif 000032
【図３１】
2007336069.tif 000033
【図３２】
2007336069.tif 000034
【図３３】
2007336069.tif 000035
【図３４】
2007336069.tif 000036
【図３５】
2007336069.tif 000037
【図３６】
2007336069.tif 000038
【図３７】
2007336069.tif 000039
【図３８】
2007336069.tif 000040
【図３９】
2007336069.tif 000041
【図４０】
2007336069.tif 000042
【図４１】
2007336069.tif 000043
【図４２】
2007336069.tif 000044
【図４３】
2007336069.tif 000045
【図４４】
2007336069.tif 000046
【図４５】
2007336069.tif 000047
【図４６】
2007336069.tif 000048
【図４７】
2007336069.tif 000049
【図４８】
2007336069.tif 000050
【図４９】
2007336069.tif 000051
【図５０】
2007336069.tif 000052
【図５１】
2007336069.tif 000053
【図５２】
2007336069.tif 000054
【図５３】
2007336069.tif 000055
【図５４】
2007336069.tif 000056
【図５５】
2007336069.tif 000057
【図５６】
2007336069.tif 000058
【図５７】
2007336069.tif 000059
【図５８】
2007336069.tif 000060
【図５９】
2007336069.tif 000061
【図６０】
2007336069.tif 000062
【図６１】
2007336069.tif 000063
【図６２】
2007336069.tif 000064
【図６３】
2007336069.tif 000065
【図６４】
2007336069.tif 000066
【図６５】
2007336069.tif 000067
【図６６】
2007336069.tif 000068
【図６７】
2007336069.tif 000069
【図６８】
2007336069.tif 000070
【図６９】
2007336069.tif 000071
【図７０】
2007336069.tif 000072
【図７１】
2007336069.tif 000073
【図７２】
2007336069.tif 000074
【図７３】
2007336069.tif 000075
【図７４】
2007336069.tif 000076
【図７５】
2007336069.tif 000077
【図７６】
2007336069.tif 000078
【図７７】
2007336069.tif 000079
【図７８】
2007336069.tif 000080
【図７９】
2007336069.tif 000081
【図８０】
2007336069.tif 000082
【図８１】
2007336069.tif 000083
【図８２】
2007336069.tif 000084
【図８３】
2007336069.tif 000085
【図８４】
2007336069.tif 000086
【図８５】
2007336069.tif 000087
【図８６】
2007336069.tif 000088
【図８７】
2007336069.tif 000089
【図８８】
2007336069.tif 000090
【図８９】
2007336069.tif 000091
【図９０】
2007336069.tif 000092
【図９１】
2007336069.tif 000093
【図９２】
2007336069.tif 000094