(57)【特許請求の範囲】
【請求項１】
予測符号化方式で符号化されている符号化データの中から、最初に表示されるカットアウト符号化データと、次に表示されるカットイン符号化データとを時分割を用いて並列的に復号し、表示させる動画像復号装置において、
カットアウト符号化データを記憶する第１符号化データ記憶部と、
カットイン符号化データを記憶する第２符号化データ記憶部と、
前記第１符号化データ記憶部又は前記第２符号化データ記憶部に記憶されている符号化データのうち、一つを選択するスイッチと、
前記スイッチにより選択された符号化データを、表示速度よりも速い速度で復号画像データとして復号する復号部と、
前記復号部で復号された復号画像データを一旦保存し、所定の表示順番に復号画像データを１画像表示単位ごとに出力する復号データ出力部と、
１画像表示単位を表示する時間である表示単位時間毎に同期信号を出力する同期信号出力部と、
各部を制御する制御部と、
を備えており、
前記制御部は、前記復号部によりカットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記スイッチに第２符号化データ記憶部に記憶された符号化データを次の同期信号が入力されるまで選択させる制御を行うことを特徴とする動画像復号装置。
【請求項２】
次に出力するカットイン符号化データが第２符号化データ記憶部上のどの位置にあるかを管理する出力ポインタを記憶する出力ポインタ記憶部を更に備え、
前記制御部は、
前記出力ポインタの値を前記第２符号化データ記憶部から読み出して一旦前記出力ポインタ記憶部に記憶させる手段と、
前記出力ポインタ記憶部に記憶した前記出力ポインタを前記第２符号化データ記憶部に書き込む手段と、
を備えたことを特徴とする請求項１に記載の動画像復号装置。
【請求項３】
次に出力するカットイン符号化データが第２符号化データ記憶部上のどの位置にあるかを管理する出力ポインタを記憶する出力ポインタ記憶部を更に備え、
前記制御部は、前記復号部によりカットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記スイッチに第２符号化データ記憶部に記憶された符号化データのうち、前記出力ポインタ記憶部に記憶された出力ポインタの位置から符号化データを読み出すように、次の同期信号が入力されるまで選択させる制御を行うことを特徴とする請求項１に記載の動画像復号装置。
【請求項４】
前記制御部は、前記第２符号化データ記憶部上に符号化データの入力停止位置を示す入力停止位置ポインタを設定し、前記第２符号化データ記憶部に書き込む手段を備えたことを特徴とする請求項１から３のいずれか一項に記載の動画像復号装置。
【請求項５】
予測符号化方式で符号化されている符号化データの中から、最初に表示されるカットアウト符号化データと、次に表示されるカットイン符号化データとを時分割を用いて並列的に復号し、表示させる動画像復号方法において、
カットアウト符号化データを記憶する第１符号化データ記憶部又はカットイン符号化データを記憶する第２符号化データ記憶部のうち、いずれかから符号化データを一つ選択するステップと、
前記選択された符号化データを、表示速度よりも速い速度で復号画像データとして復号するステップと、
前記復号された復号画像データを一旦保存し、所定の表示順番に復号画像データを１画像表示単位ごとに出力するステップと、
を備え、
前記カットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記スイッチに第２符号化データ記憶部に記憶された符号化データを、１画像表示単位を表示する時間である表示単位時間毎に出力される同期信号が入力されるまで選択させるステップを有する動画像復号方法。
【請求項６】
請求項５に記載の動画復号方法をコンピュータに実行させるプログラムが記録されている記録媒体。
【請求項７】
カットアウト符号化データを記憶する第１符号化データ記憶部と、カットイン符号化データを記憶する第２符号化データ記憶部と、を備えたコンピュータに、
予測符号化方式で符号化されている符号化データの中から、最初に表示されるカットアウト符号化データと、次に表示されるカットイン符号化データとを時分割を用いて並列的に復号し、表示させるプログラムにおいて、
前記第１符号化データ記憶部又は前記第２符号化データ記憶部に記憶されている符号化データのうち、一つを選択する選択機能と、
前記選択機能により選択された符号化データを、表示速度よりも速い速度で復号画像データとして復号する復号機能と、
前記復号機能で復号された復号画像データを一旦保存し、所定の表示順番に復号画像データを１画像表示単位ごとに出力する復号データ出力機能と、
１画像表示単位を表示する時間である表示単位時間毎に同期信号を出力する同期信号出力機能と、
を実現させるためのプログラムであって、
前記復号機能によりカットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記選択機能に第２符号化データ記憶部に記憶された符号化データを次の同期信号が入力されるまで選択させる制御を実現させる為のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、予測符号化方式を用いた動画像符号化データを復号する動画像復号装置、動画像復号方法、その方法をコンピュータに実行させるプログラムが記録されている記録媒体及びプログラムに関する。
【０００２】
【従来の技術】
デジタル画像を記録したり、転送したりする場合、データ量を削減するために符号化を行なうのが一般的である。デジタル動画像の場合、符号化の方法としては時間的、空間的冗長を利用してデータの削減を行なう方法がある。
時間的冗長を利用する方法としては、動画像を構成する各画像を複数のブロックに分けて、各ブロックの画像間における動きを検出して、該当する画像間のブロックの差分を取り、ブロックの動きの情報と画像間のブロックの差分だけをデータとして取り扱うことにより、データ量を削減する手法がある。
空間的冗長を利用する方法としては、動画像を構成する各画像を複数のブロックに分けて、ブロック内の画素データを直交変換し量子化する方法がある。
ＭＰＥＧ２（ＩＳＯ／ＩＥＣ１３８１８−２）動画像符号化方式は、前記時間的冗長と空間的冗長の両方を併用した符号化方式であり、映像を扱う機器、例えば、デジタル衛星放送、ＤＶＤビデオプレーヤーなど、広く一般に使われるようになってきている。
【０００３】
ＭＰＥＧ方式において、動画像を構成する個々の画像は、それぞれ、１６×１６画素の大きさの規則正しく並べられた複数のブロックに分けられ、表示位置の左上の隅のブロックから、右方向へ順次符号化される。右の隅まで到達すると、符号化したブロック列の一段下の左隅まで移動し、順次画面全体が符号化される。符号化する画像を構成する各ブロック（以降符号化ブロックと呼ぶ）は、前後の画像を参照し、参照画像内の任意の位置のなるべく似通ったブロック（以降予測ブロックと呼ぶ）を対象として、符号化ブロックと予測ブロックとの表示画像上の相対的な位置関係を表す動きベクトルと、符号化ブロックと予測ブロックの差分情報だけを符号化データとする。符号化ブロックには、他のブロックを参照しないタイプ、時間的に過去の画像又は未来の画像のみを参照するタイプ、時間的に過去と未来の両方の画像を参照するタイプがある。符号化ブロックは、後述する画像の種類の制約と、データの圧縮の効率の良い方法を選択して符号化されている。
【０００４】
ＭＰＥＧ２の場合には、インターレース画像方式を考慮して、画像（以降ピクチャと呼ぶ）はフレーム又はフィールドとして扱うことができる。フレーム単位で扱う場合には、符号化ブロックはフィールドに分けて、それぞれ、別のフィールドのブロックを参照することもできる。
ピクチャを構成する各符号化ブロックは、予測ブロックが存在する場合、符号化ブロックと予測ブロックの差分を取り、参照する予測ブロックが存在しない場合には、符号化ブロックのデータがそのまま扱われる。符号化ブロックと予測ブロックの差分データ、または、符号化ブロックのデータは、さらに直交変換され、量子化された後、例えば周波数成分順に並べられ、可変長符号化され、データの量を削減したＭＰＥＧ符号化データとなる。復号の際には、この手順を逆に順次行なっていけば、符号化データを元の画像データに戻すことができ、動画像として表示することができる。
【０００５】
ＭＰＥＧ２のピクチャには、ピクチャを構成する各ブロックの参照方法により、Ｉ、Ｐ、Ｂの３種類のタイプが定義されている。Ｉピクチャは、参照を行なわないブロックのみで構成される。Ｐピクチャは、参照を行なわないブロックと、過去のピクチャを参照するブロックとで構成される。Ｂピクチャは、参照を行なわないブロックと、過去のピクチャを参照するブロックと、未来のピクチャを参照するブロックと、過去と未来のピクチャ両方を参照するブロックから構成される。参照を行なうＰピクチャとＢピクチャは、参照するピクチャがあらかじめ復号されていなければ復号ができない性質がある。
【０００６】
ここで、図を用いて、ＭＰＥＧ２のピクチャのタイプについて説明する。図１４は、ＭＰＥＧ２で符号化された動画像のフレーム構成例である。図におけるＢ０は、Ｂピクチャであり、動画像の表示順で０番目、すなわち最初に表示するフレームであることを意味する。Ｂ１は、Ｂピクチャであり、動画像の表示順で１番目、すなわちＢ０に続けて表示するフレームである。Ｉ２は、Ｉピクチャであり、Ｂ１に続けて表示するフレームである。
【０００７】
このように、今後、説明と図の中で、ピクチャタイプと表示順の組み合わせにより、各ピクチャを識別する表現をする。Ｉ２から、矢印がＢ０、Ｂ１、Ｂ３、Ｂ４、Ｐ５に向かって出ているが、これは、Ｉ２がそれぞれの矢印の先のピクチャに参照されていることを意味する。この図から分かるように、ＭＰＥＧにおいて参照をされるピクチャは、Ｉピクチャ、Ｐピクチャのみであり、Ｂピクチャは参照されない。Ｐピクチャは、表示順で直前のＩピクチャ又はＰピクチャを参照することができる。Ｂピクチャは、表示順で直前と直後のＩピクチャ、又はＰピクチャを参照することができる。
【０００８】
ところで、図１４に示したような符号化データを復号することを考えた場合、例えば、Ｂ３を復号するには、Ｂ３が参照するＩ２とＰ５をあらかじめ復号する必要がある。しかし、Ｐ５は、表示順ではＢ３よりも後なので、符号化データが、表示順になっていた場合、例えば、Ｂ３、Ｂ４の符号化データを一旦蓄積して、Ｐ５を復号してから、Ｂ３、Ｂ４の符号化データを復号するというような複雑な復号手法をとる必要が生じる。ＭＰＥＧにおいては、上のような事情を考え、符号化データのピクチャの順番の並びを入れ替えて、常に参照するピクチャが先に符号化されている構造になっている。これをリオーダリングと呼んでいる。
【０００９】
その結果、前記例では、Ｐ５がＢ３よりも先に符号化されているので、復号処理においては、たとえ、表示順で後のピクチャを参照していたとしても符号化データを順次復号することができる。但し、符号化データ内のピクチャの順番が表示順になっていないので、復号後、画像データの表示順を適切に操作して、正しい順序で表示されるようにする必要がある。
【００１０】
図１５に実際の符号化データの復号と、表示方法についてタイミングの一例を示す。図１５の中に、フレームパルスを示しているが、通常の復号再生において、１フレーム時間毎に１フレームの表示を行なうので、復号処理もフレームパルスに合わせて１フレーム時間に１フレーム行なうことにより、適切な復号速度を保つ。
【００１１】
まず、Ｉ２の復号を行なうが、先にＢ０、Ｂ１を表示しなければならないので、Ｉ２は一旦メモリに保存しておく。次に、Ｂ０を復号するが、Ｂ０は、先に復号したＩ２を参照しながら復号する。Ｂピクチャは、通常、過去と未来両方のピクチャを参照できるが、符号化データの先頭では、時間的に過去のＩピクチャ、又はＰピクチャが存在しないので、未来のピクチャのみ参照する。Ｂ０は、表示順で先頭の画像なので、復号後、直ちに表示することができる。続いて、Ｂ１を復号するが、Ｂ０と同様に、Ｉ２を参照して復号する。Ｂ１は、表示順でＢ０の次に表示する。次にＰ５を復号するが、Ｉ２と同様に表示するタイミングまでは一旦メモリに保存する。Ｂ１の後には、復号済みのＩ２を表示する。この作業を繰り返すことにより、動画像を適切に復号し、タイミングよく表示することにより、正常な連続的な動画像を出力することができる。
【００１２】
ここで、さらに、ＭＰＥＧ方式の動画像符号化データの構造について説明をする。ＭＰＥＧ方式の動画像符号化データは、図１６に示すように、階層的な構造をもっており、各階層の先頭に、その下位階層の復号に必要なデータと、それに続いて、下位階層構造が１つ以上並んでいる構造を取る。
【００１３】
最上位層は、シーケンス層であり、シーケンスヘッダと、それに続いて、１つ以上のＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）から構成される。シーケンスヘッダ部の先頭には、スタートコードが存在する。スタートコードは、通常、符号化データの中では、他には現れないパターンのデータであり、符号化データ内でこのパターンを検索することにより、ヘッダの先頭位置を見つけられるようになっている。スタートコードは、シーケンスヘッダだけでなく、以下に述べるシーケンス以下の各ヘッダ内の先頭にも存在する。
【００１４】
シーケンスヘッダ部には例えば、画像のサイズなどの情報が含まれている。ＧＯＰ層は、ＧＯＰヘッダと、１つ以上のピクチャで構成される。また、符号化順でＧＯＰ先頭のデータはＩピクチャであり、表示順でＧＯＰの最後は、Ｉピクチャ又は、Ｐピクチャである。ピクチャは、ピクチャヘッダと、１つ以上のスライスから構成される。ピクチャヘッダには、例えば、ピクチャタイプの情報が含まれている。スライスには、スライスヘッダと、１つ以上のブロックの情報が含まれている。各ブロックの情報には、スタートコードが存在しないので、符号化データ内のスタートコード検索で見つけられる復号開始のエントリ位置は、スライスヘッダである。ＭＰＥＧ２の場合、スライスは、ピクチャを構成するブロックの横一列に最低１つはあることとしている。
【００１５】
ＧＯＰは、符号化順でＩピクチャから開始されるので、ＧＯＰの上位層にあたる、シーケンスヘッダ内の復号に必要なデータが保存されていれば、復号処理の開始位置とすることが可能である。しかし、図１７の例に示すＧＯＰ２のＢ０、Ｂ１のように、ＧＯＰの先頭で表示順でＩピクチャよりも前のＢピクチャは、一つ前のＧＯＰに属するＩピクチャ、又はＰピクチャを参照することがある。この場合、ＧＯＰ２のＢ０、Ｂ１は正しく復号するには、一つ前のＧＯＰ１の先頭から復号を開始する必要がある。
ＭＰＥＧでは、ＧＯＰヘッダ内に、Ｃｌｏｓｅｄ＿ＧＯＰとＢｒｏｋｅｎ＿Ｌｉｎｋという２つの情報をもっている。
【００１６】
Ｃｌｏｓｅｄ＿ＧＯＰが１の場合、図１７の例に示すＧＯＰ４のＧＯＰのＢ０、Ｂ１のように先頭で表示順でＩピクチャよりも前のＢピクチャは、前のＧＯＰのピクチャを参照しない。従って、この場合、ＧＯＰ４の先頭から復号を開始してもＧＯＰの先頭で表示順でＩピクチャよりも前のＢピクチャは、正常に復号することが可能である。
【００１７】
Ｂｒｏｋｅｎ＿Ｌｉｎｋは、ＧＯＰの先頭で表示順でＩピクチャよりも前のＢピクチャの参照が不適当な場合に１とする。これは、例えば、関連性のないＧＯＰ同士を接続した場合に、Ｂｒｏｋｅｎ＿Ｌｉｎｋを１にすることにより、正常に復号できないＧＯＰの先頭で表示順でＩピクチャよりも前のＢピクチャの復号や表示をスキップするのに利用できる。
図１７の例に示す、ＧＯＰ６は、Ｂｒｏｋｅｎ＿Ｌｉｎｋが１であり、Ｃｌｏｓｅｄ＿ＧＯＰが０の場合であり、この時ＧＯＰ６のＢ０、Ｂ１は、復号開始位置に関らず、正常に復号することができないので、復号や表示のスキップをするといった対応が可能である。
【００１８】
媒体に動画像を記録する場合、単純な復号再生表示だけではなく、早送り、巻き戻し、サーチ、静止画表示、スロー再生などといった特殊再生機能も提供するのが一般的である。特に光磁気ディスクや、ハードディスク、半導体メモリなどの媒体に記録する場合、その特徴であるランダムアクセス性を用いて、任意の動画像の全部又は一部を自在に選択して、繋いで表示する編集再生、あるいは動画像の中で不必要な一部分だけを切り取ったスキップ再生の実現が考えられる。動画像の中で表示を行なう一部分をカットと呼ぶが、編集再生は、任意の複数のカットを連続して表示することによって実現される。また、スキップ再生は、一つの動画像の任意の複数のカットを連続して表示することによって、複数のカットの間の部分がスキップされたように表示されることによって実現される。従って、スキップ再生は、編集再生の一種として扱うことができ、同一の技術で実現が可能である。今後、スキップ再生も編集再生として説明をする。
【００１９】
図１８に一般的なＭＰＥＧ２復号装置のブロック図を示す。ディスクなどの記録媒体から読み出された符号化データは、ビデオバッファ１０１に蓄積される。ビデオバッファ１０１に蓄積された符号化データは、ビデオバッファ１０１に入力された順番に復号器１０２に供給される。復号器１０２は、符号化データを復号し、フレームメモリ１０３へフレーム画像データを出力する。フレームメモリ１０３は、フレーム画像データを蓄積し、適切な順番に入れ替えて、表示回路へ画像データを出力する。
【００２０】
図１８の復号装置を使用して、編集再生を行なおうとした場合、次の方法が考えられる。
まず、最初に表示するカットの符号化データ（以降カットアウト符号化データと呼ぶ）をビデオバッファ１０１に供給する。最後に表示したいフレームのカットアウト符号化データをビデオバッファ１０１に供給完了した時点で、次に表示するカットのデータ（以降カットイン符号化データと呼ぶ）を供給する。
さらに、別のカットを表示する場合には、先ほどカットイン符号化データとしていた符号化データをカットアウト符号化データとし、新たに表示予定の符号化データをカットイン符号化データとして、ビデオバッファ１０１への供給を切り替えていけばよい。
【００２１】
しかし、前記ＭＰＥＧの階層構造で説明したように、正常な動画像を得るためには、適切なエントリーポイントから復号を開始する必要がある。もっとも適当なエントリーポイントは、シーケンスヘッダの先頭であるが、シーケンスヘッダ内の復号に必要な情報が保存されているのであれば、ＧＯＰの先頭から復号開始が可能である。カットイン符号化データの先頭を任意の画像としたいのであれば、エントリーポイントから、復号を開始して、復号を進めて目的の画像を表示できる位置まで復号を進めた後に表示を開始する必要がある。一般的に、目的の画像の復号できるまでのピクチャの枚数は、数枚以上になり、復号器の復号速度も十分に速くないので、１フレーム時間内に処理を終了させるのは、通常は不可能であるケースが多い。
【００２２】
図１９に、図１８に示す構成の復号器を使用して、編集再生を行なった場合のカット間の復号と、表示について例を示す。図１９の（ａ）では、カットイン符号化データの表示開始がＧＯＰ２のＢ０である場合の例を示す。この時は、前記エントリーポイントと、表示開始位置が一致するので、１フレーム時間に複数ピクチャの復号を進める必要がなく、連続的に表示することが可能である。
【００２３】
図１９の（ｂ）では、カットイン符号化データの表示開始がＧＯＰ４のＩ２の例を示す。この場合、Ｉ２を復号した後に、Ｂ０、Ｂ１のデータをスキップする必要があり、カットイン画像を次のフレームに表示ができないため、スキップ処理が遅い場合には、カットアウト符号化データの最終表示画像ＧＯＰ３のＰ８を静止画表示する必要がある。図１９の（ｃ）では、ＧＯＰ６のＢ７をカットイン符号化データの表示開始としている。ＧＯＰ６のＩ２、Ｐ５、Ｐ８、Ｂ７の順に復号する必要があり、この復号を行なっている期間、カットイン画像を次のフレームに表示ができないため、カットアウト符号化データの最終画像ＧＯＰ５のＢ４を静止画表示する必要があり、動画像を連続的に編集再生できなくなっていた。
【００２４】
この問題点を解決するための従来技術として、動画像を連続的に編集再生するために、特開平１１−２２０６９５号公報に公開されている方法がある。その実施例として掲げている方法の概略について、図２０、図２１、図２２、図２３を用いて説明する。
【００２５】
図２０は、この従来の復号装置を表すブロック図である。第１のビデオバッファ１０４は、符号化データを入力し、蓄積して、第１の復号器１０５に出力する。第１の復号器１０５は、第１のビデオバッファ１０４から入力された符号化データを復号して、復号画像データを第１のフレームメモリ１０６に出力する。フレームメモリ１０６は、第１の復号器１０５から復号画像データを入力し、蓄積して、スイッチ１１０に出力する。
第２のビデオバッファ１０７は、符号化データを入力し、蓄積して、第２の復号器１０８に出力する。第２の復号器１０８は、第２のビデオバッファ１０７から入力された符号化データを復号して、復号画像データを第２のフレームメモリ１０９に出力する。フレームメモリ１０９は、第２の復号器１０８から復号画像データを入力し、蓄積して、スイッチ１１０に出力する。
スイッチ１１０は、第１のフレームメモリと第２のフレームメモリからの復号画像データのいずれかを選択して、表示部へ出力する。
【００２６】
図２１に、図２０の復号装置に基づく復号、表示のタイミング例を示す。カットアウト符号化データは、第１のビデオバッファ１０４に供給される。第１の復号器１０５は、復号装置が管理する時間情報に基づいて第１のビデオバッファ１０４より、符号化データを入力し、復号し、復号画像データを、第１のフレームメモリに出力する。スイッチ１１０は、第１のフレームメモリ１０４からの出力を選択しており、第１のフレームメモリ１０４からの出力信号を表示部へ出力する。
一方、表示が編集点に到達する時間よりも前に、カットイン符号化データは、第２のビデオバッファ１０７に供給される。第２の復号器１０８は、第２のビデオバッファ１０７から符号化データを入力し復号し、復号画像データを第２のフレームメモリ１０９に出力する。
【００２７】
カットイン符号化データの復号が所定の位置まで達したならば、第２の復号器は一時停止する。表示が編集点に到達したならば、スイッチ１１０は、第２のフレームメモリ１０９からの出力を選択し、表示部に出力する。また、同時に第２の復号器は復号を再開する。その結果、編集点前後の連続性を保ちながら編集再生表示が行なわれる。
【００２８】
図２２は、別の復号装置を表すブロック図である。
第１のビデオバッファ１１１は、符号化データを入力し、蓄積して、スイッチ１１２に出力する。第２のビデオバッファ１１５は、符号化データを入力し、蓄積して、スイッチ１１２に出力する。スイッチ１１２は、第１のビデオバッファ１１１と第２のビデオバッファ１１５からの符号化データのいずれかを選択して、復号器１１３に供給する。復号器１１３は、スイッチ１１２で選択された符号化データを入力し、復号する。復号した画像データは、フレームメモリ１１４に出力する。フレームメモリ１１４は、復号器１１３から復号画像データを入力し、蓄積した後、連続した動画像となるように、順次、表示部に出力する。
【００２９】
図２３に、図２２の復号装置に基づく復号、表示のタイミング例を示す。カットアウト符号化データは、第１のビデオバッファ１１１に供給される。スイッチ１１２は、第１のビデオバッファ１１１からのデータを選択しており、復号器１１３は、復号装置が管理する時間情報に基づいてカットアウト符号化データを復号し、フレームメモリ１１４に出力する。フレームメモリ１１４は、復号器１１３から復号画像データを入力し、蓄積した後、表示時間管理情報に基づいて適切に表示部に出力する。
【００３０】
次に、表示が編集点に到達するよりも前に、カットイン符号化データの復号が適切な位置まで進められるように、並列復号を開始する。並列復号は、復号器１１３が、例えば、１フレーム時間に２フレーム分の復号能力を有する場合、まず、スイッチ１１２により、第１のビデオバッファ１１１を選択し、カットアウト符号化データを１フレーム行なう。
【００３１】
次にスイッチ１１２により、第２のビデオバッファ１１５を選択し、カットアウト符号化データを１フレーム復号するという具合に交互にカットアウト符号化データとカットイン符号化データの復号を行なうことによって、時分割によって異なる複数の符号化データを並列的に復号する。なお、交互に復号する時の切り替えの単位は、ピクチャ単位、あるいはブロック単位でもどんな量でもよいとしている。カットイン符号化データが所定の位置まで達したならば、カットイン符号化データの復号は一時停止する。表示出力が、切り替え点に達したならば、表示する復号画像データをカットイン側にし、スイッチ１１２を第２のビデオバッファ１１５側に切り替えて、カットイン符号化データの復号を再開する。その結果、編集点前後の連続性を保ちながら編集再生表示が行なわれる。
【００３２】
【発明が解決しようとする課題】
しかしながら、図２０に示す復号装置は、回路の大部分を占める復号器が複数必要であり、回路規模の増大により、コスト、消発電力の増加してしまう問題がある。
【００３３】
図２２に示す復号装置による復号方法は、時分割による並列復号の際、切り替えをピクチャ毎、あるいは、ブロック毎というように、どのようなデータ量であっても良いと規定している。しかし、例えば、符号化データにエラーが発生した場合や、記録媒体からのデータの供給の遅延により、復号予定のデータが壊れていて判別ができない、あるいは、データが来るのを待つ必要が生じるような不測の事態において、適切に切り替えが行なわれない可能性がある。この結果、時分割復号を行なっている際にカットアウト符号化データの復号処理が、表示よりも遅れてしまい、一時静止画表示をしなければならない問題が発生する恐れがある。
【００３４】
また、図２２に示す復号装置による復号方法は、符号化データによって異なる符号化データの各階層のヘッダ部分に含まれている復号に必要な情報を、符号化データの切り替え単位に応じて複数保持し、スイッチの切り替えと連動して切り替える必要がある。
１フレーム時間に２フレーム以上の復号能力がある復号器の場合、フレーム単位の切り替えが可能である。この場合、複数個保持しなければならない復号に必要な情報は、ピクチャ層よりも上の階層、すなわち、ＧＯＰヘッダとシーケンスヘッダに含まれる情報だけである。
【００３５】
従って、１フレーム時間に２フレームよりも遅い復号能力しか有しない復号器の場合には、フレーム単位の切り替えを行なうことができない問題がある。このため、切り替えが、例えばブロック単位など小さな単位になり、シーケンスヘッダ、ＧＯＰヘッダ、ピクチャヘッダ、スライスヘッダに含まれる情報と、さらに、各ブロックの動きベクトルといった、差分情報しか符号化されていない情報も、保持する必要があり、フレーム単位の切り替えと比べると格段に多くの情報を符号化データ毎に保持する必要が生じる。
【００３６】
本発明の目的は、回路規模の増加を最小限にとどめながら、符号化データの並列復号処理を、時間により適切に処理タイミング管理ができ、復号情報を保持するデータ量を大幅に削減することが可能な連続的動画像の表示を行なう動画像復号装置、動画像復号方法、その方法をコンピュータに実行させるプログラムが記録されている記録媒体及びプログラムを提供することにある。
【００３７】
【課題を解決するための手段】
本発明は、予測符号化方式で符号化されている符号化データの中から、最初に表示されるカットアウト符号化データと、次に表示されるカットイン符号化データとを時分割を用いて並列的に復号し、表示させる動画像復号装置において、カットアウト符号化データを記憶する第１符号化データ記憶部と、カットイン符号化データを記憶する第２符号化データ記憶部と、前記第１符号化データ記憶部又は前記第２符号化データ記憶部に記憶されている符号化データのうち、一つを選択するスイッチと、前記スイッチにより選択された符号化データを、表示速度よりも速い速度で復号画像データとして復号する復号部と、前記復号部で復号された復号画像データを一旦保存し、所定の表示順番に復号画像データを１画像表示単位ごとに出力する復号データ出力部と、１画像表示単位を表示する時間である表示単位時間毎に同期信号を出力する同期信号出力部と、各部を制御する制御部と、を備えており、前記制御部は、前記復号部によりカットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記スイッチに第２符号化データ記憶部に記憶された符号化データを次の同期信号が入力されるまで選択させる制御を行うことを特徴とする動画像復号装置である。ここで、画像表示単位とは、例えばフレームやフィールドに該当する画像データであり、ＭＰＥＧ２でいうピクチャ単位である。
【００３８】
また、本発明は、  次に出力するカットイン符号化データが第２符号化データ記憶部上のどの位置にあるかを管理する出力ポインタを記憶する出力ポインタ記憶部を更に備え、前記制御部は、前記出力ポインタの値を前記第２符号化データ記憶部から読み出して一旦前記出力ポインタ記憶部に記憶させる手段と、前記出力ポインタ記憶部に記憶した前記出力ポインタを前記第２符号化データ記憶部に書き込む手段と、を備えたことを特徴とする動画像復号装置である。
【００３９】
また、本発明は、次に出力するカットイン符号化データが第２符号化データ記憶部上のどの位置にあるかを管理する出力ポインタを記憶する出力ポインタ記憶部を更に備え、前記制御部は、前記復号部によりカットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記スイッチに第２符号化データ記憶部に記憶された符号化データのうち、前記出力ポインタ記憶部に記憶された出力ポインタの位置から符号化データを読み出すように、次の同期信号が入力されるまで選択させる制御を行うことを特徴とする動画像復号装置である。
【００４０】
また、本発明は、前記制御部は、前記第２符号化データ記憶部上に符号化データの入力停止位置を示す入力停止位置ポインタを設定し、前記第２符号化データ記憶部に書き込む手段を備えたことを特徴とする動画像復号装置である。
【００４１】
また、本発明は、予測符号化方式で符号化されている符号化データの中から、最初に表示されるカットアウト符号化データと、次に表示されるカットイン符号化データとを時分割を用いて並列的に復号し、表示させる動画像復号方法において、カットアウト符号化データを記憶する第１符号化データ記憶部又はカットイン符号化データを記憶する第２符号化データ記憶部のうち、いずれかから符号化データを一つ選択するステップと、前記選択された符号化データを、表示速度よりも速い速度で復号画像データとして復号するステップと、前記復号された復号画像データを一旦保存し、所定の表示順番に復号画像データを１画像表示単位ごとに出力するステップと、を備え、前記カットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記スイッチに第２符号化データ記憶部に記憶された符号化データを、１画像表示単位を表示する時間である表示単位時間毎に出力される同期信号が入力されるまで選択させるステップを有する動画像復号方法である。
【００４２】
また、本発明は、上述した動画像復号方法をコンピュータに実行させるプログラムが記録されている記録媒体である。
【００４３】
また、本発明は、カットアウト符号化データを記憶する第１符号化データ記憶部と、カットイン符号化データを記憶する第２符号化データ記憶部と、を備えたコンピュータに、予測符号化方式で符号化されている符号化データの中から、最初に表示されるカットアウト符号化データと、次に表示されるカットイン符号化データとを時分割を用いて並列的に復号し、表示させるプログラムにおいて、前記第１符号化データ記憶部又は前記第２符号化データ記憶部に記憶されている符号化データのうち、一つを選択する選択機能と、前記選択機能により選択された符号化データを、表示速度よりも速い速度で復号画像データとして復号する復号機能と、前記復号機能で復号された復号画像データを一旦保存し、所定の表示順番に復号画像データを１画像表示単位ごとに出力する復号データ出力機能と、１画像表示単位を表示する時間である表示単位時間毎に同期信号を出力する同期信号出力機能と、を実現させるためのプログラムであって、前記復号機能によりカットアウト符号化データが復号された後に、前記カットイン符号化データを復号するために、前記選択機能に第２符号化データ記憶部に記憶された符号化データを次の同期信号が入力されるまで選択させる制御を実現させる為のプログラムである。
【００４４】
＜第１実施形態＞
図１は、本発明を適用した動画像復号装置の第１実施形態を示すブロック図である。この動画像復号装置は、光ディスク等の記録媒体から入力される符号化データを蓄積する第１のビデオバッファ１と、第２のビデオバッファ７と、該ビデオバッファ１，７に蓄積された符号化データを選択するスイッチ４と、フレーム時間をカウントしてパルスを出力するタイマー３と、符号化データを復号する復号器５と、復号データを蓄積して所定の順番で表示部（図示せず）へ出力するフレームメモリ６と、各部を制御情報に基づいて制御する制御部８とを備える。
【００４５】
以下に、動画像復号装置の動作概略を述べる。
まず、光磁気ディスク等の記録媒体から画像データである符号化データを一旦メインバッファ（図示せず）に蓄積する。また、記録媒体から読み出した画像に関する制御情報（ピクチャの再生表示順等）が制御部８に入力される。制御部８は、制御情報に基づいて符号化データを、例えば編集再生を行うためのカットアウト符号化データとカットイン符号化データに分割してメインバッファに出力させ、第１のビデオバッファ１及び第２のビデオバッファ７のそれぞれに入力させる。第１のビデオバッファ１及び第２のビデオバッファ７は、符号化データを蓄積して、スイッチ４に出力する。スイッチ４は、制御部８から制御を受け、第１のビデオバッファ１と第２のビデオバッファ７からの符号化データのいずれかを選択して、復号器５に供給する。
【００４６】
復号器５は、スイッチ４から入力された符号化データを復号し、復号データをフレームメモリ６へ出力する。タイマー３は、１画面を表示するためのフレーム時間間隔で、制御部８に時間になったことを知らせるパルス信号を出力する。制御部８は、タイマー３からの信号を受け取り、スイッチ４の切り替えと、表示部に出力するフレームメモリ６内の画像データの選択制御を行なう。フレームメモリ６は、復号器５から、復号画像データを入力し、制御部８からの制御により、表示部に対して所定の順番で復号画像データを出力する。
【００４７】
次に、復号処理について詳しく述べる。
カットアウト符号化データは、第１のビデオバッファ１に供給され、スイッチ４を経て、復号器５に供給される。制御部８は、タイマー３から、フレーム時間ごとに合図を示すパルス信号を受け、フレームメモリ６内に表示するべき画像データが存在する場合には、フレームメモリ６に対して、表示すべきデータを指示し、また復号器５に１フレームの符号化データを復号させる。こうして、制御部８による繰り返しフレームメモリ６に対する表示すべきデータの指示と、復号器５による１フレームの復号とを行なうことによって、フレームメモリ６から、表示部に対して、順次フレーム画像データが出力され、動画像として表示ができる。
【００４８】
編集再生を行なう場合には、カットアウト符号化データを第１のビデオバッファ１に供給するのと並行して、カットイン符号化データを第２のビデオバッファ７に供給する。制御部８は、タイマー３から、フレーム時間の合図（パルス）を受けとると、フレームメモリ６に対して、表示すべきデータを指示する。次に、スイッチ４を制御して、第１のビデオバッファ１側を選択し、復号器５にカットアウト符号化データの１フレームを復号させる。
【００４９】
次に、制御部８は、スイッチ４を制御して、第２のビデオバッファ７側を選択し、復号器５にカットイン符号化データを復号させる。制御部８は、タイマー３から次のフレーム時間の合図（パルス）を受けとると、カットイン符号化データの復号を中断し、フレームメモリ６に対して、表示すべきデータを指示し、スイッチ４を制御して、第１のビデオバッファ１側を選択し、復号器５にカットアウト符号化データの１フレームの復号を行なわせる。
【００５０】
その後、制御部８はスイッチ４を制御して、第２のビデオバッファ７側を選択し、前回中断したカットイン符号化データの復号を再開する。制御部８は、タイマー３から合図（パルス）を受けて、フレームメモリ６の制御と、復号器５にカットアウト符号化データの１フレーム復号を行なわせる。その後、制御部８は、タイマー３から次の合図が来るまで、復号部５にカットイン符号化データの復号を行なわせることによって、カットアウト符号化データの復号を、１フレーム時間毎に、１フレーム復号しながら、時分割を用いて並列的に、カットイン符号化データの復号をすることができる。
【００５１】
カットイン符号化データの復号が、先頭の画像を表示できる位置まで進んだところで、カットイン符号化データ側の復号を、一旦停止して、カットアウト符号化データのみを復号する状態に移行する。すなわち、制御部８が、タイマー３から合図（パルス）を受けて、繰り返しフレームメモリ６の制御と、復号部５にカットアウト符号化データの１フレームの復号を行なわせる状態に移行する。
【００５２】
その後、カットアウト符号化データの復号が、最終表示画像まで到達したところで、制御部８では、タイマー３から、フレーム時間の合図（パルス）を受け、フレームメモリ６に対して、表示する画像データを指示し、スイッチ４を制御して、第２のビデオバッファ７側を選択し、復号部５にカットイン符号化データを復号させる。さらに、制御部８は、フレームメモリ６に対して、カットアウト符号化データの最終表示画像を指示したところで、その次に表示する画像データは、カットイン符号化データの先頭画像となるように制御する。そして、以降は、カットイン符号化データの復号画像データを順次表示するように制御する。
【００５３】
制御部８が、タイマー３から合図を受けて、繰り返しフレームメモリ６の制御と、復号部５にカットイン符号化データを１フレームの復号を繰り返し行なわせることによって、フレームメモリ６から、表示部に対して、フレーム画像データが順次出力され連続した動画像として表示ができる。
【００５４】
図２は、第１実施形態における復号処理を示すタイミング図である。
タイマー３の出力は、通常フレーム同期信号期間ごとに発生する。最初、期間Ａに示すようにカットアウト符号化データは、フレーム同期信号に合わせて、１フレームの復号と１フレームの表示を繰り返し、通常の復号再生状態にある。
【００５５】
次に、期間Ｂに示すように、カットアウト符号化データに対して、フレーム同期信号に合わせて、１フレームの復号と１フレームの表示を行いながら、カットアウト符号化データを１フレーム復号してから次のフレーム同期信号までの時間に、カットイン符号化データの復号を進める。これを、カットイン符号化データが、その先頭のフレームを表示できるようになるまで復号を繰り返す。カットイン符号化データが、先頭のフレームを表示できるデータまで復号されたならば、カットイン符号化データの復号は、一旦中断する。そして、期間Ｃで示すように、カットアウト符号化データをフレーム同期信号に合わせて、１フレームの復号と１フレームの表示を繰り返す通常の復号再生状態となる。
【００５６】
復号が、カットアウト符号化データの最終画像に到達したならば、期間Ｄに示すように、カットアウト符号化データの復号は停止して、代わりにあらかじめ復号を進めてあるカットイン符号化データの復号を開始する。カットアウト符号化データの最終画像を表示した後に、期間Ｅに示すように、カットイン符号化データの先頭画像を表示するように表示部への出力を制御し、その後、カットイン例の符号化データをフレーム毎に順次出力していくことにより、連続的な動画の切り替えを行なう。
【００５７】
次に、制御部８が各部を制御して画像の編集再生処理を行う手順について説明する。
図３は、制御部８がカットイン符号化データによる編集再生処理を行う場合の制御処理手順を示すフローチャートである。
まず、ステップＳ１１（以降Ｓ１１と記載する）で示しているように、カットイン符号化データがビデオバッファ７に入力開始されるまで、カットアウト符号化データの復号及び表示制御を行なう。次に、Ｓ１２で示すように、カットイン符号化データがビデオバッファ７に入力された時点で、時分割復号を用いて、カットアウト符号化データの復号及び表示制御を行ないながら、並行してカットイン符号化データの復号を行なう。そして、Ｓ１３で示すように、カットアウト符号化データとカットイン符号化データの復号及び表示の制御の切り替えを行なう。
【００５８】
ここで、図４、図５、図６を用いて、図３で示したフローチャートのより詳細なフローについて説明をする。
図４は、図３のＳ１１のカットアウト復号データの復号及び表示制御の詳細を示すフローチャートである。
まず、Ｓ２１において、制御部８はタイマー３からのフレームパルスが入力されると、Ｓ２２以降の処理を行う。これは、Ｓ２１よりも後段に続くステップの実行が、１フレーム時間に一回になるように調整するためである。次にＳ２２において、制御部８はフレームメモリ６に対して表示する画像データ（カットアウト符号化データを復号した画像データ）を制御して表示部へ出力させる。これは、画像データを動画像として表示するために行なう。
【００５９】
次にＳ２３において、カットアウト符号化データが、カットアウト符号化データの最終表示画像データまで復号が完了しており、カットイン符号化データがないならば、この復号処理を終了し、それ以外ならば、Ｓ２４を実行する。Ｓ２４において、制御部８からの制御信号を受けて、復号器５がカットアウト符号化データを１フレームだけ復号し、フレームメモリ６に出力する。次にＳ２５において、制御部８は、カットイン符号化データがビデオバッファ７に入力されたかを確認し、入力されていれば、Ｓ１２に進み、入力されていなければ、Ｓ２１に戻る。
【００６０】
図５は、時分割復号を用いてカットアウト符号化データの復号と表示制御を行ないながら、並行してカットイン符号化データの復号を行なう時の図３のＳ１２の詳細を説明するフローチャートである。
まず最初に、Ｓ３１において、制御部８はタイマー３からのフレームパルスが入力されると、Ｓ３２以降の処理を行う。これは、Ｓ３１よりも後段に続くステップの実行が、１フレーム時間に一回になるように調整するためである。次にＳ３２において、制御部８は、フレームメモリ６に対して表示する画像データ（カットアウト符号化データを復号した画像データ）を制御して表示部へ出力させる。これは、画像データを、動画像として表示するために行なう。
【００６１】
次にＳ３３において、カットアウト符号化データが、カットアウト符号化データの最終表示画像データまで復号が完了しているならば、Ｓ４７を実行し、それ以外ならば、Ｓ３４を実行する。Ｓ３４において、制御部８からの制御信号を受けて、復号器５がカットアウト符号化データを１フレームだけ復号し、フレームメモリ６に出力する。次にＳ３５において、復号器５がカットイン符号化データの復号を行なう。Ｓ３６で、タイマー３から次のフレームパルスが入力されているかを確認する。次のフレームパルスであればＳ３２に戻り、まだ1フレーム時間内であれば、Ｓ３７に進む。Ｓ３７において、カットイン符号化データが復号完了したかを確認する。カットイン符号化データが復号完了していなければ、Ｓ３５に戻り、処理を続ける。すなわち、カットイン符号化データの復号を１フレーム時間が完了するまで、続行する。カットイン符号化データが復号完了していればＳ１３へ進む。
【００６２】
図６は、図３のＳ１３のカットアウト符号化データとカットイン符号化データの復号及び、表示の切り替えの詳細を示すフローチャートである。
まず、最初に、Ｓ４１において、制御部８はタイマー３からのフレームパルスが入力されると、Ｓ４２以降の処理を行う。これは、Ｓ４１よりも後段に続くステップの実行が、１フレーム時間に一回になるように調整するためである。
【００６３】
次にＳ４２において、フレームメモリ６に蓄積されたカットアウト符号化データの表示が完了したかを確認する。カットアウト符号化データの最終表示画像データがフレームメモリ６から出力されているならば、Ｓ４４を実行し、それ以外、すなわちカットアウト符号化データの最終表示画像データがフレームメモリ６から出力されていないならば、Ｓ４３を実行する。Ｓ４３は、カットアウト符号化データを復号した画像データを出力するように、フレームメモリ６を制御する。Ｓ４４は、カットイン符号化データを復号した画像データを出力するようにフレームメモリを制御する。
【００６４】
次にＳ４５において、カットアウト符号化データが、カットアウト符号化データの最終表示画像データまで復号が完了しているならば、Ｓ４７を実行し、それ以外ならば、Ｓ４６を実行する。また、前述のＳ３３でカットアウト符号化データの復号が完了した場合も、Ｓ４７を実行する。Ｓ４６は、カットアウト符号化データを１フレーム復号し、Ｓ４７は、カットイン符号化データを１フレーム復号する。こうして、復号処理すべき符号化データが、どちらか一方になった場合には、それを１フレーム処理を行うことになる。
【００６５】
次にＳ４８において、カットイン符号化データの最終表示画像の復号に達しているかどうかを判断し、そうである場合は、Ｓ４９において、フレームメモリ６に蓄積された復号データ（Ｓ４６，４７で復号されたデータ）を出力制御し、このタスクを終了する。カットイン符号化データの最終表示画像の復号に達していない場合は、Ｓ４１に戻って、繰り返し、１フレームの表示制御と復号を行なう。
【００６６】
このように、カットアウト符号化データと、カットイン符号化データを時分割を用いて、並列的に復号する際、カットアウト符号化データに対して、表示との同期を取るため、フレームの同期信号を開始基準として、１フレーム時間毎に１フレームの復号が行なわれる。一方、カットイン符号化データの復号は、カットアウト符号化データの復号とは異なり、１フレームというような復号量を基準としてではなく、カットアウト符号化データを復号して、次のフレームの開始基準信号が来るまでの時間によって動作が管理される。復号装置の復号能力が、１フレーム時間内に２フレームの速度よりも遅い場合、カットイン符号化データの復号は、図２に示すように、複数のフレーム時間を要する。
【００６７】
また、復号装置の復号能力が、１フレーム時間内に２フレームの速度よりも速い場合、カットイン符号化データの復号は、１フレーム時間毎に、１フレーム以上の復号が可能である。また、符号化データのエラーといった不測の事態により、カットイン符号化データの復号に時間を要する場合においても、適切な時間にこれを中断して、カットアウト符号化データの復号処理を行なうことができ、表示時間に対して復号が遅れてしまうことを回避できるので、動画像の連続的な表示を保つことができる。
【００６８】
＜第２の実施形態＞
図７は、本発明を適用した動画像復号装置の第２実施形態を示すブロック図である。この動画像復号装置は、図１のものとほぼ同じ構成なので、同一部分には同一符号を付す。図１の動画像復号装置と異なるのは、ビデオバッファ１，７のポインタ位置を記憶する記憶部９を備えたことである。制御部８は、ビデオバッファ１，７の出力ポインタ位置や、入力停止ポインタ位置等を一旦記憶部９に保存し、それをまたビデオバッファ１，７のポインタレジスタ（図示せず）に書き込む処理を行う。
【００６９】
（第１の処理例）
図７の動画像復号装置により、編集再生処理を行う場合の第１の処理例を次に述べる。
まず、カットアウト符号化データが、第１のビデオバッファ１に供給され、スイッチ４を経て、復号器５に供給される。制御部８は、タイマー３から、フレーム時間ごとに合図（パルス信号）を受ける。フレームメモリ６内に表示するべき画像データが存在する場合には、制御部８は、フレームメモリ６に対して、表示すべきデータを指示し、復号部５に１フレームの符号化データを復号させる。制御部８が、タイマー３からフレームパルスを受けて、繰り返しフレームメモリ６の制御と、１フレームの復号を行なう。このことによって、フレームメモリ６から、表示部に対して、フレーム画像データが順次出力され、動画像として表示ができる。
【００７０】
次に、カットイン符号化データが、第２のビデオバッファ７に供給開始される。制御部８は、タイマー３からフレーム時間ごとに合図を受け、フレームメモリ６に対して、表示すべきデータを指示し、スイッチ４を制御して、第１のビデオバッファ１側を選択し、復号器５にカットアウト符号化データの１フレームを復号させる。続いて、スイッチ４を制御して、第２のビデオバッファ７側を選択し、復号器５にカットイン符号化データを復号させる。
【００７１】
ここで、制御部８は、第２のビデオバッファ７からのデータを復号する際、符号化データ内の特定のスタートコードを検出したならば、第２のビデオバッファ７のメモリの出力ポインタ位置を読み出し記憶部９に保存する。ここで、特定のスタートコードは、例えば、ピクチャヘッダの先頭のスタートコードや、スライスヘッダの先頭のスタートコードなどでもよい。
【００７２】
さらに制御部８は、タイマー３から次のフレームパルスを受けたところで、カットイン符号化データの復号を中断し、フレームメモリ６に対して、表示すべきデータを指示し、スイッチ４を制御して、第１のビデオバッファ１側を選択し、カットアウト符号化データの１フレームを復号する。その後、制御部８は、スイッチ４を制御して、第２のビデオバッファ７側を選択し、前記保存した第２のビデオバッファ７のメモリの出力ポインタ位置を、第２のビデオバッファ７のメモリの出力ポインタレジスタに書き込む。第２のビデオバッファ７は、メモリの出力バッファポインタレジスタが書き替えられたことにより、符号化データを遡って出力する。これにより、復号器５は、カットイン符号化データの復号を、前回中断した位置よりも、手前から復号を再開する。
【００７３】
制御部８が、タイマー３からフレームパルスを受けて、フレームメモリ１５の制御をして画像データを出力し、復号器５を制御してカットアウト符号化データの１フレーム復号する。その後、タイマー３から次のフレームパルスが来るまで、カットイン符号化データを前回の復号中断よりも一部データを遡って復号を行なわせる。このことによって、カットアウト符号化データの復号を、１フレーム時間毎に、１フレーム復号しながら、時分割を用いて並列的に、カットイン符号化データの復号をすることができる。
【００７４】
そして、カットイン符号化データの復号が、先頭の画像を表示できる位置まで進んだならば、カットイン側の復号は、一旦停止して、カットアウト符号化データのみを復号する状態、すなわち、制御部８が、タイマー１３から合図を受け、フレームメモリ１５の制御をして画像データを出力し、復号器５の制御をしてカットアウト符号化データを１フレームの復号を繰り返し行なう状態に移行する。
【００７５】
そして、カットアウト符号化データの復号が、最終表示画像まで到達したならば、復号器５では、タイマー３から、フレームパルスを受け、フレームメモリ６に対して、表示する画像データを指示し、スイッチ４を制御して、第２のビデオバッファ７側を選択し、カットイン符号化データを復号する。
制御部８が、タイマー３からフレームパルスを受けて、繰り返しフレームメモリ６の制御して画像データを出力し、復号器５を制御してカットイン符号化データを１フレームの復号を行なう。このことによって、フレームメモリ６から、表示部に対して、フレーム画像データが順次出力され動画像として表示ができる。
【００７６】
ここで、カットアウト符号化データの復号とカットイン符号化データの復号を時分割を用いて並列的に復号する動作において、メモリの出力ポインタを保存するスタートコードをピクチャヘッダ先頭のスタートコードとした場合、そのピクチャにおいて復号完了したスライスを制御部８が記憶部９に記憶しておくことにより、ピクチャヘッダまで遡って復号を再開したときに、復号済みのスライスをスキップしてから、復号を再開することができる。
【００７７】
図８に、カットアウト符号化データの復号とカットイン符号化データの復号を時分割を用いて並列的に復号する際の、カットイン符号化データの復号の例を示す。カットイン符号化データがピクチャの復号の途中で中断された場合、次の復号開始時は、そのピクチャの先頭の位置まで遡る場合である。
【００７８】
まず、１回目の復号においては、ピクチャの上部分が復号され、タイマー３からのフレームパルスにより、ＳＬＩＣＥ３の途中のブロックの復号で中断される。
２回目の復号においては、符号化データが、ピクチャの先頭位置まで遡っており、復号器は、ピクチャヘッダ部分の情報を取り込んで、その後、すでに復号済みのＳＬＩＣＥ１、ＳＬＩＣＥ２をスキップしてから復号を開始する。しかし、再び、タイマー３からの合図により、ピクチャの復号途中で中断される。
３回目の復号では、２回目の復号と同様に、符号化データが、ピクチャの先頭位置まで遡っており、復号器は、ピクチャヘッダ部分の情報を取り込んで、その後、すでに復号済みのスライスをスキップしてから復号を開始し、１ピクチャの復号が完了する。
【００７９】
図９は、時分割復号を用いてカットアウト符号化データの復号と表示制御を行ないながら、並行してカットイン符号化データの復号を行なう時の詳細を説明するフローチャートである。この復号処理は、基本的には図３におけるフローチャートに沿って処理されるものであるが、Ｓ１２の内容が異なる。したがって、第１の処理例におけるＳ１２に該当する部分をＳ１２ａとして以下説明を行う。
【００８０】
まず最初に、Ｓ５１において、タイマーからフレームパルスを受ける。これは、Ｓ５１よりも後段に続くステップの実行が、１フレーム時間に一回になるように調整するためである。次にＳ５２において、フレームメモリ６に対して表示する画像データを制御する。これは画像データを動画像として表示するために行なう。
【００８１】
次にＳ５３において、カットアウト符号化データが復号完了していれば、図６に示すＳ４７に進む。カットアウト符号化データが復号完了していなければ、Ｓ５４に進む。Ｓ５４において、復号器５は、カットアウト符号化データを１フレームだけ復号し、フレームメモリ６に出力する。次にＳ５５において、制御部８は、前回のカットイン符号化データを復号した際に、タイマー３からのフレームパルスによってカットイン符号化データの復号を中断したかどうかを判断し、中断した場合はＳ５６に、していない場合はＳ５９を実行する。Ｓ５６では、以前のカットイン符号化データにおいて、すでに記憶部９に保存してあるスタートコード検出位置（出力ポインタ位置）をカットイン符号化データを蓄積しているビデオバッファ７の出力ポインタレジスタにセットする。こうして、カットイン符号化データの供給を遡り、例えば、ピクチャヘッダの先頭から開始するようにする。次にＳ５７において、ピクチャヘッダ内に含まれる、復号に必要なデータを取得する。次にＳ５８において、すでに復号済みのスライスをスキップする。
【００８２】
Ｓ５９において、カットイン符号化データの復号を行なう。Ｓ６０において、復号器５が復号中に例えばピクチャスタートコードを検出した場合、Ｓ６１で、制御部８はそのときの出力ポインタ位置を記憶部９に保存する。Ｓ５６において、ビデオバッファ７の出力ポインタレジスタにセットする値である。Ｓ６２において、タイマー３からのフレームパルスを受け取った場合、Ｓ５２からの処理を繰り返す。Ｓ６３において、カットイン符号化データが復号完了したかを確認し、カットイン符号化データが復号完了していなければ、Ｓ５９に戻り、処理を続ける。すなわち、カットイン符号化データの復号を１フレーム時間が完了するまで、続行する。カットイン符号化データが復号完了していればＳ１３へ進む。
【００８３】
本処理例においては、カットイン符号化データの復号が中断され、次に復号を再開する時に、符号化データをピクチャの先頭まで遡りピクチャヘッダの復号を再度行なうので、符号化データのピクチャヘッダよりも下の階層に含まれる復号情報は記憶しておく必要がなく、復号情報を記憶しておくメモリを少なく抑えることが可能である。
【００８４】
（第２の処理例）
図７の動画像復号装置により、編集再生処理を行う場合の第２の処理例を次に述べる。
図１０に、カットアウト符号化データの復号とカットイン符号化データの復号を時分割を用いて並列的に復号する動作の際の、カットイン符号化データの復号の別の例を示す。図１０においては、カットイン符号化データがピクチャの復号の途中で中断された場合、次の復号開始時には、そのスライスの先頭の位置まで遡るようになっている。
【００８５】
まず、１回目の復号においては、ピクチャの上部分が復号され、タイマー３の合図（パルス）により、ＳＬＩＣＥ３途中のブロックの復号で中断される。２回目の復号においては、符号化データが、スライスの先頭位置まで遡っており、復号器５は、ＳＬＩＣＥ３の先頭位置から復号を開始する。しかし、再び、次のタイマ１３からの合図（パルス）により、ＳＬＩＣＥ６の途中のブロックの復号で中断される。３回目の復号では、２回目の復号と同様に、符号化データが、ＳＬＩＣＥ６の先頭位置まで遡っており、復号器５は、ＳＬＩＣＥ６の先頭から復号を開始し、１ピクチャの復号が完了する。
【００８６】
図１１は、時分割復号を用いてカットアウト符号化データの復号と表示制御を行ないながら、並行してカットイン符号化データの復号を行なう時の詳細を説明するフローチャートである。この復号処理は、基本的には図３におけるフローチャートに沿って処理されるものであるが、Ｓ１２の内容が異なる。したがって、第２の処理例におけるＳ１２に該当する部分をＳ１２ｂとして以下説明を行う。
【００８７】
まず最初に、Ｓ７１において、制御部８は、タイマー３からフレームパルスを受ける。これは、Ｓ７１よりも後段に続くステップの実行が、１フレーム時間に一回になるように調整するためである。次にＳ７２において、フレームメモリ６に対して表示する画像データを制御する。これは、画像データを動画像として表示するために行なう。
【００８８】
次に、Ｓ７３において、カットアウト符号化データが復号完了しているのが確認できれば、図６に示すＳ４７に進む。カットアウト符号化データが復号完了していなければ、Ｓ７４に進む。Ｓ７４において、復号器５はカットアウト符号化データを１フレームだけ復号し、フレームメモリ６に出力する。次にＳ７５において、前回のカットイン符号化データを復号した除に、タイマー３からのパルスによって、カットイン符号化データの復号を中断したかどうかを判断し、中断した場合はＳ７６に、していない場合はＳ７９を実行する。Ｓ７６では、以前のカットイン符号化データにおいて、すでに記憶部９に保存してあるスタートコード検出位置（出力ポイント位置）をカットイン符号化データを蓄積しているビデオバッファ７の出力ポインタレジスタにセットする。こうして、カットイン符号化データの供給を遡り、例えば、ピクチャヘッダの先頭から開始するようにする。次にＳ７７において、ピクチャヘッダ内に含まれる、復号に必要なデータを取得する。次にＳ７８において、すでに復号済みのスライスをスキップする。
【００８９】
Ｓ７９において、カットイン符号化データの復号を行なう。Ｓ８０において、復号中に例えばピクチャスタートコードを検出した場合、Ｓ８１で、制御部８は、そのときの出力ポインタ位置を記憶部９に保存する。これは、Ｓ７６において、出力ポインタにセットする値である。さらに、Ｓ８２において、出力ポインタ位置を、ビデオバッファ７に対する入力ポインタ停止位置としてレジスタにセットする。
【００９０】
ビデオバッファ７は、入力ポインタが入力ポインタ停止位置まで来た場合、符号化データの入力を停止し、符号化データを遡るのに必要なデータを保存する。Ｓ８３において、制御部８がタイマー３からのフレームパルスを受け取った場合、Ｓ７２からの処理を繰り返す。受け取っていない場合、Ｓ８４において、カットイン符号化データが復号完了したかを確認する。カットイン符号化データが復号完了していなければ、Ｓ７９に戻り、処理を続ける。すなわち、カットイン符号化データの復号を１フレーム時間が完了するまで、続行する。カットイン符号化データが復号完了していればＳ１３へ進む。
【００９１】
本処理例においてはカットイン符号化データの復号を中断した場合、次に復号を再開するにあたって、符号化データをスライスの先頭まで遡り、スライスの先頭から再度復号するので、符号化データのスライスヘッダよりも下の階層に含まれる復号情報は記憶しておく必要がない。第１の処理例のようにピクチャヘッダまで遡る例に比べて、復号情報を記憶しておくメモリを多く取らなければならないが、符号化データを遡るデータ量が少なく、スライスをスキップする処理も必要がなくなるので、より高速に復号処理を行なうことができる。
【００９２】
さて、第２の処理例では、制御部８が第１のビデオバッファ１と第２のビデオバッファ７それぞれに対して、入力停止位置ポインタレジスタをセットできるようになっている。ビデオバッファ１，７には、メモリの位置を指し示す入力ポインタと出力ポインタがあり、それぞれ、符号化データの入力と出力位置を管理している。メモリは、通常、一定のリニアな空間を循環的に使用している。データを入力して、入力ポインタが移動していき、循環して出力ポインタ位置まで到達すると、メモリ内は、すべて蓄積された符号化データになってしまい、これ以上データを蓄積できない状態（フル）になる。逆に、データを出力して、出力ポインタが移動していき、循環して入力ポインタ位置まで到達してしまうと、メモリ内には、データが蓄積されていない状態（エンプティ）になる。
【００９３】
ところで、ここで示すような循環的なメモリ管理を使用した場合、フル状態になるときに、符号化データを遡るために出力ポインタ位置を移動しようとしても、遡りたい符号化データが、新しくビデオバッファに入力されるデータにより破壊されている。この問題を回避するために、入力停止位置ポインタを定義し、復号器５は、復号の際、符号化データ内の特定のスタートコードを検出したならば、ビデオバッファのメモリの出力ポインタ位置を読み出し保存すると同時に、この位置をビデオバッファの入力停止位置ポインタレジスタにセットする。入力ポインタは、入力停止位置ポインタ位置に達すると、入力を停止し、遡りたい符号化データが、新しくビデオバッファに入力されるデータにより破壊されることを回避する。
【００９４】
図１２にビデオバッファのデータの管理の様子の例を示す。図１２の（ａ）では、ビデオバッファの初期状態を示している。入力ポインタ、出力ポインタ共に同一位置を指しており、エンプティ状態である。次に、（ｂ）では、データが入力されて、符号化データが蓄積されている状態を示している。（ｃ）では、通常の復号状態におけるビデオバッファの例を示している。入力ポインタ、出力ポインタが共に移動しており、ビデオバッファにデータが入力と出力がされている状態である。この例では、出力ポインタ位置に近くなってきて、メモリバッファがほぼ、フルの状態になっている。（ｄ）では、入力停止位置ポインタレジスタをセットしたことにより、入力ポインタが停止した状態になっている様子を示している。（ｅ）では、さらに出力を進めた結果、メモリバッファ内の蓄積されているデータの容量が減った様子を示している。しかし、入力が停止して、入力ポインタが移動していないので、入力停止位置ポインタから、出力ポインタ位置までのデータは、メモリ内に凍っている。（ｆ）では、出力ポインタを移動して、符号化データを遡った状態を示している。
【００９５】
図１３は、ビデオバッファ内の制御を示すフローチャートである。
まず、Ｓ９１において、制御部８が、ビデオバッファ内に符号化データがフルの状態であるかを判定し、フルの場合はＳ９４にジャンプする。フルではない場合は、Ｓ９２において、入力ポインタ位置が、入力ポインタ停止位置にあるかどうかを判定し、入力ポインタ停止位置の場合は、Ｓ９４にジャンプする。入力ポインタ停止位置のではない場合は、Ｓ９３において、制御部８がビデオバッファ１，７に符号化データを入力する。
【００９６】
次に、Ｓ９４において、制御部８が出力ポインタ位置を書き替えたか否かを判定し、書き替えた場合は、Ｓ９５へ、書き替えなかった場合は、Ｓ９６にジャンプする。Ｓ９５において、出力位置ポインタを移動する。次にＳ９６において、ビデオバッファがエンプティ状態かを判定し、エンプティの場合は、Ｓ９１に、エンプティではない場合はＳ９７にジャンプする。Ｓ９７において、制御部８からデータを要求されているかを判定し、要求されていないならば、Ｓ９１にジャンプし、そうでない場合は、Ｓ９８において、符号化データを復号器５に出力し、Ｓ９１にジャンプする。
【００９７】
こうして、復号の際、符号化データ内の特定のスタートコードを検出したならば、ビデオバッファのメモリの出力ポインタ位置を読み出し保存すると同時に、この位置をビデオバッファの入力停止位置ポインタレジスタにセットするので、入力ポインタは、入力停止位置ポインタ位置に達すると、入力を停止し、遡りたい符号化データが、新しくビデオバッファに入力されるデータにより破壊されないようにする。
【００９８】
なお、本発明は上記実施形態に限定させるものではなく、例えば、フレーム単位で処理を行っているが、フィールド単位でも構わない。また、符号化データはカットアウトとカットインの２種類であったが、これに限らず複数であってもよい。その場合は、それぞれの符号化データを蓄積するビデオバッファが必要となる。
また、上記復号処理は、コンピュータに実行させるプログラムにより実現される場合もあり、該プログラムは記録媒体に記録され提供される。
【００９９】
【発明の効果】
本発明によれば、一つの復号器を、時分割復号により、並列的に複数の復号に利用することができるため回路規模の増加を最小限にとどめ、コスト、消費電力の増加を少なく抑えながら、連続的な動画像の表示を行なう編集再生ができる。
また、並列復号処理の際、一つの符号化データの復号処理を、時間により適切に処理タイミング管理ができるので、エラーが発生した場合や、記録媒体からのデータの供給の遅延により、復号予定のデータが壊れていて判別ができない、あるいは、データが来るのを待つ必要が生じる場合にも、適切な時間内に切り替えを行なうことができる。
また、中断した符号化データを遡って復号を再開する機能により、符号化データごとの情報を再復号によって得ることができるため、復号情報を保持するデータ量を大幅に削減することが可能である。
【図面の簡単な説明】
【図１】本発明を適用した動画像復号装置の第１実施形態を示すブロック図である。
【図２】第１実施形態における復号処理を示すタイミング図である。
【図３】第１実施形態におけるカットイン符号化データによる編集再生処理を行う場合の制御処理手順を示すフローチャートである。
【図４】第１実施形態における図３のＳ１１の処理を詳細に表すフローチャートである。
【図５】第１の実施形態における図３のＳ１２の処理を詳細に表すフローチャートである。
【図６】第１の実施形態における図３のＳ５１の処理を詳細に表すフローチャートである。
【図７】本発明を適用した動画像復号装置の第２実施形態を示すブロック図である。
【図８】符号化データをピクチャの先頭まで遡って復号するときの復号手順の第１の処理例を説明する図である。
【図９】第１の処理例の復号手順を示すフローチャートである。
【図１０】符号化データをピクチャの先頭まで遡って復号するときの復号手順の第２の処理例を説明する図である。
【図１１】第２の処理例の復号手順を示すフローチャートである。
【図１２】ビデオバッファ部のデータ管理動作を説明する図である。
【図１３】ビデオバッファ部のデータ管理動作を示すフローチャートである。
【図１４】ＭＰＥＧのピクチャタイプ構成と参照の仕組みを説明する図である。
【図１５】ＭＰＥＧの符号化データのリオーグリングを説明する図である。
【図１６】ＭＰＥＧの符号化データの階層構造を説明する図である。
【図１７】ＭＰＥＧのＧＯＰ間の参照について説明する図である。
【図１８】従来の一般的な復号装置の構成を表すブロック図である。
【図１９】従来の一般的な復号装置における編集再生のタイミング図である。
【図２０】複数の復号器を用いて、連続的な編集再生を実現する動画像復号装置の構成を表すブロック図である。
【図２１】複数の復号器を用いて、連続的な編集再生を実現する動画像復号装置の編集再生のタイミング図である。
【図２２】時分割復号を用いて、連続的な編集再生を実現する動画像復号装置の構成を表すブロック図である。
【図２３】時分割復号を用いて、連続的な編集再生を実現する動画蝕復号装置の編集再生のタイミング図である。
【符号の説明】
１，７  ビデオバッファ、
３  タイマー
４  スイッチ
５  復号器
６  フレームメモリ
８  制御部
９  記憶部
【図２】
0004046496.tif 000002
【図３】
0004046496.tif 000003
【図４】
0004046496.tif 000004
【図５】
0004046496.tif 000005
【図６】
0004046496.tif 000006
【図７】
0004046496.tif 000007
【図８】
0004046496.tif 000008
【図９】
0004046496.tif 000009
【図１０】
0004046496.tif 000010
【図１１】
0004046496.tif 000011
【図１２】
0004046496.tif 000012
【図１３】
0004046496.tif 000013
【図１４】
0004046496.tif 000014
【図１５】
0004046496.tif 000015
【図１６】
0004046496.tif 000016
【図１７】
0004046496.tif 000017
【図１８】
0004046496.tif 000018
【図１９】
0004046496.tif 000019
【図２０】
0004046496.tif 000020
【図２１】
0004046496.tif 000021
【図２２】
0004046496.tif 000022
【図２３】
0004046496.tif 000023
【図１】
0004046496.tif 000024