(57)【要約】【課題】本発明は、可変長復号処理を高速化することができる。【解決手段】本発明は、可変長符号化され相違する数の符号データである可変長符号データを判定数である「１」だけ復号するごとに終端判定及びエラー判定を実行し、終端又はエラーと判定された場合に処理対象となる処理対象ブロックに対する復号処理を終了する。また本発明は、無判定復号処理部３２によって可変長符号データを連続的に復号し、マクロブロックが有する最大数である「６４」だけ可変長符号データを復号した場合に処理対象ブロックに対する復号処理を終了する。そして本発明は、終端判定復号処理部３０及び無判定復号処理部３２のうち、最も速く処理対象ブロックに対する復号処理を終了し得る一の復号処理部によって復号された復号データを選択するようにする。【選択図】図４
2010141423.tif 000002
【特許請求の範囲】
【請求項１】
符号化単位ごとに相違する数の可変長符号データを判定数だけ復号するごとに終端判定／エラー判定を実行し、終端又はエラーと判定された場合に、処理対象となる符号化単位に対する復号処理を終了する終端判定復号処理部と、
上記可変長符号データを連続的に復号し、上記符号化単位が有する最大数だけ上記可変長符号データを復号した場合に、上記処理対象となる符号化単位に対する復号処理を終了する無判定復号処理部と、
上記終端判定復号処理部による復号処理及び上記無判定復号処理部による復号処理のうち、最も速く終了する復号処理によって生成された復号データを選択する復号データ選択部と
を有するデコーダ。
【請求項２】
上記終端判定復号処理部は、
異なる判定数で複数設けられている
請求項１に記載のデコーダ。
【請求項３】
上記終端判定復号処理部及び上記無判定復号処理部は、
同時並行して上記復号処理を実行する
請求項２に記載のデコーダ。
【請求項４】
上記可変長符号データから構成される符号化ストリームと当該符号化ストリームが生成された際に算出された復号情報とを受け取る受取部と、
上記受取部により受け取った復号情報に基づいて、上記終端判定復号処理部による復号処理及び上記無判定復号処理部による復号処理のうち、上記最も速く終了する復号処理を選択する処理選択部と、
上記処理選択部によって選択された復号処理部にのみ上記処理対象でなる符号化単位に対する復号処理を実行させる制御部と
を有する請求項２に記載のデコーダ。
【請求項５】
上記受取部は、
上記符号化ストリームから上記復号情報を抽出する
請求項４に記載のデコーダ。
【請求項６】
上記復号情報は、
上記復号データの数の傾向を示す符号化パラメータである
請求項４に記載のデコーダ。
【請求項７】
上記復号情報は、
上記復号情報に基づいて、上記最も速く終了する復号処理を実行する復号処理部を表す識別情報である
請求項４に記載のデコーダ。
【請求項８】
上記可変長符号データは、
直交変換された画像データが可変長符号化されてなる
請求項１に記載のデコーダ。
【請求項９】
画像データを可変長符号化することにより、相違する数の可変長符号データによって符号化単位が構成される符号化ストリームを生成する可変長符号化部と、
上記符号化単位が有する可変長符号データの数に基づく復号情報を埋め込む復号情報埋込部と
を有するエンコーダ。
【請求項１０】
上記復号情報は、
上記処理対象でなる符号化単位に対して最も速く復号処理を終了し得る一の復号処理部を表す識別情報である
請求項９に記載のエンコーダ。
【請求項１１】
符号化単位ごとに相違する数の可変長符号データを判定数だけ復号するごとに終端判定／エラー判定を実行し、終端又はエラーと判定された場合に、処理対象となる符号化単位に対する復号処理を終了する終端判定復号処理ステップと、
上記可変長符号データを連続的に復号し、上記符号化単位が有する最大数だけ上記可変長符号データを復号した場合に、上記処理対象となる符号化単位に対する復号処理を終了する無判定復号処理ステップと、
上記終端判定復号処理部による復号処理及び上記無判定復号処理部による復号処理のうち、最も速く終了する復号処理によって生成された復号データを選択する復号データ選択ステップと
を有する復号方法。
【請求項１２】
コンピュータに対して、
符号化単位ごとに相違する数の可変長符号データを判定数だけ復号するごとに終端判定／エラー判定を実行し、終端又はエラーと判定された場合に、処理対象となる符号化単位に対する復号処理を終了する終端判定復号処理ステップと、
上記可変長符号データを連続的に復号し、上記符号化単位が有する最大数だけ上記可変長符号データを復号した場合に、上記処理対象となる符号化単位に対する復号処理を終了する無判定復号処理ステップと、
上記終端判定復号処理部による復号処理及び上記無判定復号処理部による復号処理のうち、最も速く終了する復号処理によって生成された復号データを選択する復号データ選択ステップと
を実行させるプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は可変長符号データを復号するデコーダ及びエンコーダ、並びに復号方法及び記録媒体に関し、例えばＭＰＥＧ（Moving Picture Experts Group）−２などの各種符号方式で使用される可変長符号データのデコーダに適用して好適なものである。
【背景技術】
【０００２】
従来、ＭＰＥＧ−２などに準拠したエンコーダでは、フレーム間予測処理によって符号化された画像データに対してＤＣＴ（Discrete Cosine Transform）処理を施すと共に、生成したＤＣＴ係数を量子化して量子化係数を生成する。さらにエンコーダは、量子化係数をハフマン符号化方式などによって可変長符号化して符号化ストリームを生成する。
【０００３】
一方ＭＰＥＧ−２などに準拠したデコーダでは、符号化ストリームに含有する可変長符号データを可変長復号化することにより量子化係数を生成し、逆量子化によりＤＣＴ係数を生成する。デコーダは、ＤＣＴ係数を逆ＤＣＴ処理して画像データを生成するようになされている（例えば、特許文献１参照）。
【特許文献１】特開平６−３０２１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
かかる構成のデコーダにおける従来の可変長復号部１の構成を図１に示している。従来の可変長復号部１では、符号化ストリームから分離された可変長符号データを可変長復号処理によって８×８のブロックごとに表される量子化係数を生成する。このとき可変長復号部１は、可変長符号データが可変長でなるため、各可変長符号データが何ビットで表されているかを知ることができない。
【０００５】
このため可変長復号部１は、前の可変長符号データを復号した後にしか次の可変長符号データの始まりを特定することができず、前の可変長符号データを復号した後に次の可変長符号データを復号する逐次処理を行っている。
【０００６】
また量子化係数が「０」であった場合には可変長符号データが割り当てられない。このため可変長復号部１は、ブロックごとに含有する可変長符号データの総数を知ることができない。このため可変長復号部１は、ブロックの終端を表す終端符号の有無を判別し、ブロックの終端部分を特定するようになされている。
【０００７】
この従来の可変長復号処理について、図２の従来の可変長復号処理手順ＲＴ１を用いて説明する。復号化部５は、例えば３２［ｂｉｔ］のバッファメモリを有している。可変長復号部１は、制御部４の制御により復号化部５のバッファメモリの空き領域分だけデータ参照領域２から可変長符号データを読み出し、これを復号化部５に供給する（ステップＳＰ１）。
【０００８】
復号化部５は、バッファメモリに記憶された可変長符号データ（以下、これを復号対象ビットと呼ぶ）と符号テーブルとを照会し、復号対象ビットが表す固定長符号を特定することにより復号対象ビットを復号化して復号データを生成し、これをデータ保持部６へ供給する（ステップＳＰ２）。
【０００９】
この結果データ保持部６には、復号化された復号データが記憶される（ステップＳＰ３）。制御部４は、復号化に使用されたビット数だけ復号化部５のバッファメモリ及びデータ参照領域２に記憶された可変長符号データをシフトさせる（ステップＳＰ４）。
【００１０】
終端判定部７は、復号データが終端符号又はエラーであるか否かを判別する（ステップＳＰ５）。ここで否定結果が得られた場合、終端判定部７は、現在処理中のブロックにはさらなる可変長符号データが存在するため、その旨を表す非終端信号を制御部４に供給する。この結果、制御部４は、ステップＳＰ１に戻って処理を継続する。
【００１１】
これに対してステップＳＰ５で肯定結果が得られた場合、終端判定部７は、復号対象ビットが終端符号又はエラーであるため、その旨を表す終端信号を制御部４に供給する。このとき制御部４は、復号対象ビットが終端符号又はエラーであった場合には、ステップＳＰ３においてデータ保持部６に記憶されたデータを無効にする。そして制御部４は、現在処理中のブロックに対する可変長復号処理を終了する。
【００１２】
このように従来の可変長復号処理では、前の可変長符号データに対する復号が終了してから次の可変長符号データに対する処理を開始する逐次処理を実行しなければならず、高速化が困難であるという問題があった。
【００１３】
本発明は以上の点を考慮してなされたもので、可変長復号処理を高速化し得るデコーダ及びエンコーダ、並びに復号方法及び記録媒体を提案しようとするものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するため本発明のデコーダにおいては、符号化単位ごとに相違する数の可変長符号データを判定数だけ復号するごとに終端判定／エラー判定を実行し、終端又はエラーと判定された場合に、処理対象となる符号化単位に対する復号処理を終了する終端判定復号処理部と、可変長符号データを連続的に復号し、符号化単位が有する最大数だけ可変長符号データを復号した場合に、処理対象となる符号化単位に対する復号処理を終了する無判定復号処理部と、終端判定復号処理部による復号処理及び無判定復号処理部による復号処理のうち、最も速く終了する復号処理によって生成された復号データを選択する復号データ選択部とを設けるようにした。
【００１５】
これによりデコーダは、符号化単位が有する可変長符号データの数に応じて最も速く復号処理を終了する一の復号処理部からの復号データを選択することができる。
【００１６】
また本発明のエンコーダにおいては、画像データを可変長符号化することにより、相違する数の可変長符号データによって符号化単位が構成される符号化ストリームを生成する可変長符号化部と、符号化単位が有する可変長符号データの数に基づく復号情報を埋め込む復号情報埋込部とを設けるようにした。
【００１７】
これによりエンコーダは、可変長符号データが復号される際に、復号情報に応じた復号処理部によって復号データを生成させることができる。
【００１８】
また本発明の復号方法においては、符号化単位ごとに相違する数の可変長符号データを判定数だけ復号するごとに終端判定／エラー判定を実行し、終端又はエラーと判定された場合に、処理対象となる符号化単位に対する復号処理を終了する終端判定復号処理ステップと、可変長符号データを連続的に復号し、符号化単位が有する最大数だけ可変長符号データを復号した場合に、処理対象となる符号化単位に対する復号処理を終了する無判定復号処理ステップと、終端判定復号処理部による復号処理及び無判定復号処理部による復号処理のうち、最も速く終了する復号処理によって生成された復号データを選択する復号データ選択ステップとを設けるようにした。
【００１９】
これにより本発明の復号方法は、符号化単位が有する可変長符号データの数に応じて最も速く復号処理を終了する一の復号処理部からの復号データを選択することができる。
【００２０】
また本発明の記録媒体に記録されたプログラムは、コンピュータに対して符号化単位ごとに相違する数の可変長符号データを判定数だけ復号するごとに終端判定／エラー判定を実行し、終端又はエラーと判定された場合に、処理対象となる符号化単位に対する復号処理を終了する終端判定復号処理ステップと、可変長符号データを連続的に復号し、符号化単位が有する最大数だけ可変長符号データを復号した場合に、処理対象となる符号化単位に対する復号処理を終了する無判定復号処理ステップと、終端判定復号処理部による復号処理及び無判定復号処理部による復号処理のうち、最も速く終了する復号処理によって生成された復号データを選択する復号データ選択ステップとを実行させるようにした。
【００２１】
これにより本発明の記録されたプログラムは、コンピュータに符号化単位が有する可変長符号データの数に応じて最も速く復号処理を終了する一の復号処理部からの復号データを選択させることができる。
【発明の効果】
【００２２】
本発明によれば、符号化単位が有する可変長符号データの数に応じて最も速く復号処理を終了する一の復号処理部からの復号データを選択することができる。かくして本発明は、可変長復号処理を高速化し得るデコーダ、復号方法及び記録媒体を実現できる。
【００２３】
また本発明によれば、可変長符号データが復号される際に、復号情報に応じた復号処理部によって復号データを生成させることができる。かくして本発明は、可変長復号処理を高速化し得るエンコーダを実現できる。
【発明を実施するための最良の形態】
【００２４】
以下、図面について、本発明の実施の形態を詳述する。なお説明は以下の順序で行う。
１．第１の実施の形態（終端判定による復号データ生成処理部及び無判定による復号データ生成処理部の並列化）
２．第２の実施の形態（複数の終端判定による復号データ生成処理部の設置）
３．第３の実施の形態（稼働する復号処理部の特定）
４．他の実施の形態
【００２５】
＜１．第１の実施の形態＞
［１−１．デコーダの構成］
図３における１０は、全体としてデコーダとしてのデコーダを示しており、ＭＰＥＧ（Moving Picture Experts Group）−２方式によって符号化された符号化ストリームを復号化して画像データを生成するようになされている。なお本実施の形態では、図１〜図２に示した従来の構成と対応する箇所に同一符号を附して示している。
【００２６】
デコーダ１０は、入力端子１１から符号化ストリームが供給されると、これを多重分離部１２に送出する。多重分離部１２は、符号化ストリームから動きベクトル情報及び量子化係数が可変長符号化されてなる可変長符号データを分離する。多重分離部１２は、動きベクトル情報を動きベクトル復号部（以下、ＭＶ復号部と略す）１８に供給する一方、可変長符号データを可変長復号部１３に供給する。
【００２７】
可変長復号部１３は、可変長符号でなる可変長符号データを固定長符号でなる量子化係数に復号化（詳しくは後述する）し、逆量子化部１４に供給する。逆量子化部１４は、対応する代表量子化値に基づいて量子化係数を逆量子化してＤＣＴ（Discrete Cosine Transform）係数を生成し、これを逆ＤＣＴ部１５に供給する。
【００２８】
逆ＤＣＴ部１５は、ＤＣＴ係数に対してＤＣＴの逆変換処理を実行し、これを加算器１６に供給する。ＭＶ復号部１８は、動きベクトル情報を復号化して動きベクトル値を生成し、これを動き補償部１９に供給する。
【００２９】
ここで画像メモリ２０には、既に復号化された画像データが記憶されている。動き補償部１９は、画像メモリ２０からフレーム間予測に必要となる画像データを読出すと共に、ＭＶ復号部１８から供給される動きベクトル値に従って動き補償を行うことによりフレーム間予測データを生成し、加算器１６に供給する。
【００３０】
加算器１６は、動き補償部１９から供給されるフレーム間予測データ及び逆ＤＣＴ変換されたＤＣＴ係数を加算することにより画像データを生成し、画像メモリ２０に供給すると共に、出力端子２１を介して外部装置に出力するようになされている。
【００３１】
このようにデコーダ１０は、供給される符号化ストリームから画像データを生成するようになされている。
【００３２】
［１−２．可変長復号部の構成］
図４に示すように、第１の実施の形態による可変長復号部１３では、データ参照領域２に対応するデータ参照領域３１に対し、復号処理部として終端判定復号処理部３０及び無判定復号処理部３２が並列に設置されている。
【００３３】
可変長復号部１３は、可変長復号処理を開始すると、終端判定復号処理部３０によって終端判定による復号データ生成処理を実行すると共に、無判定復号処理部３２によって無判定による復号データ生成処理を実行し、速く処理が終了した一方の復号データを使用する。
【００３４】
ここで可変長符号データは、８×８＝６４個の量子化係数及び当該量子化係数に続く「ゼロ」の数を１ブロックとして符号化されている。すなわち１つのブロック当たり「６４」個でなる量子化係数の数から量子化係数に含まれている「ゼロ」の数だけ、可変長符号データの数が減少することになる。言い換えると、１つのブロックには、「０」個から「６４」個の可変長符号データが含まれている可能性がある。
【００３５】
すなわち終端判定復号処理部３０は、処理対象となるブロック（以下、これを処理対象ブロックと呼ぶ）の中に「１」個の可変長符号データが含まれていた場合には、当該可変長符号データの復号と終端符号の復号とで計２回のループにより、当該処理対象ブロックに対する復号データの生成処理を終了することができる。
【００３６】
なお終端判定復号処理部３０は、可変長符号データが「０」個である旨を表すフラグが立っていた場合には、処理対象ブロックに可変長符号データが存在しない（「０」個である）ため、可変長復号部１３は、次の処理対象ブロックに対する復号データ生成処理を開始する。
【００３７】
一方終端判定復号処理部３０は、処理対象ブロックの中に「６４」個の可変長符号データが含まれていた場合には、６５回に亘って終端判定による復号データ生成処理を実行するまで当該処理対象ブロックに対する復号データ生成処理を終了することができない。
【００３８】
終端判定復号処理部３０は、復号データが終端符号又はエラーであるか否かを判別する工程を含むため、１つの復号対象ビットを復号するのに合計８［ｃｙｃｌｅ］を要する。従って、処理対象ブロックに含まれる可変長符号データが「１」個の場合には、処理対象ブロックの復号データ生成処理に対する処理サイクル数が１６［ｃｙｃｌｅ］になるのに対し、処理対象ブロックに含まれる可変長符号データが「６４」個の場合には、処理サイクル数が５２０［ｃｙｃｌｅ］となる。
【００３９】
ここで無判定復号処理部３２は、復号データが終端符号又はエラーであるか否かを判別する工程を省略しているため、１つの復号対象ビットを復号するのに合計６［ｃｙｃｌｅ］の処理サイクル数で済む。従って、処理対象ブロックに対する復号データ生成処理として６４の復号対象ビットを復号するのに、６×６４＝３８４［ｃｙｃｌｅ］の処理サイクル数を要することになる。
【００４０】
すなわち処理対象ブロックに含まれる可変長符号データの数が「１」〜「４６」である場合には、終端判定復号処理部３０が無判定復号処理部３２よりも速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。また処理対象ブロックに含まれる可変長符号データの数が「４７」である場合には、終端判定復号処理部３０及び無判定復号処理部３２は同時に処理を終了する。
【００４１】
一方、処理対象ブロックに含まれる可変長符号データの数が「４８」〜「６４」であった場合には、無判定復号処理部３２が終端判定復号処理部３０よりも速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【００４２】
従って可変長復号部１３は、終端判定復号処理部３０及び無判定復号処理部３２のうち、先に処理を終了した一方によって復号された復号データを使用することにより、処理対象ブロックに対する可変長復号処理を高速化することが可能となる。
【００４３】
これにより可変長復号部１３は、処理対象ブロックに含まれる可変長符号データの数が「４８」以上と多い場合に従来の可変長処理よりも速く復号データを生成することができ、可変長処理の平均処理サイクル数を減少させ得、可変長処理を高速化し得るようになされている。
【００４４】
実際上、終端判定復号処理部３０は、従来の可変長復号部１が実行する従来の可変長復号処理と同様にして終端判定による復号データ生成処理を実行する。
【００４５】
すなわち終端判定復号処理部３０は、終端判定による復号データ生成処理を開始すると、制御部４の制御により復号化部５が有する例えば３２［ｂｉｔ］のバッファメモリ（図示しない）のうち、空き領域分だけデータ参照領域３１から可変長符号データを読み出し、これを復号化部５に供給する。
【００４６】
復号化部５は、バッファメモリに記憶された可変長符号データ（以下、これを復号対象ビットと呼ぶ）と予め記憶しているハフマン符号テーブルなどの符号テーブルとを照会し、復号対象ストリームが表す固定長符号を特定することにより復号対象ビットを復号化して復号データを生成すると、これをデータ保持部６及び終端判定部７へ供給する。
【００４７】
この結果データ保持部６には、復号化された復号データが記憶される。制御部４は、復号化に使用されたビット数だけ復号化部５のバッファメモリ及びデータ参照領域２に記憶された復号対象ビットをシフトさせる。
【００４８】
終端判定部７は、復号データが終端符号又はエラーであるか否かを判別し、復号データが終端符号又はエラーでない場合には、その旨を表す非終端信号を制御部４に供給する。そして制御部４は、処理対象ブロックに対する処理を継続し、次の復号対象ビットに対する処理を開始する。
【００４９】
一方終端判定部７は、復号データが終端符号又はエラーである場合には、復号データが可変長符号データでないため、その旨を表す終端信号を制御部４に供給する。このとき制御部４は、データ保持部６における記憶処理を無効にするレジスタをマスクすることにより、当該データ保持部６に記憶した復号データを無効にする。そして制御部４は、処理対象ブロックに対する可変長復号処理を終了する。
【００５０】
また無判定復号処理部３２は、無判定による復号データ生成処理を開始すると、制御部３３の制御により復号化部３４が有する例えば３２［ｂｉｔ］のバッファメモリ（図示しない）のうち、空き領域分だけデータ参照領域３１から可変長符号データを読み出し、これを復号化部３４に供給する。
【００５１】
復号化部３４は、バッファメモリに記憶された復号対象ビットと予め記憶している符号テーブルとを照会し、復号対象ビットが表す固定長符号を特定することにより復号対象ビットを復号化して復号データを生成すると、これをデータ保持部３５へ供給し、当該データ保持部３５に記憶させる。
【００５２】
制御部３３は、復号化に使用されたビット数だけ復号化部３４のバッファメモリに記憶された復号対象ビットをシフトさせる。なお無判定復号処理部３２は、データ参照領域３１からの可変長符号データの読出しタイミングが終端判定復号処理部３０よりも速いため、バッファメモリのシフト制御のみを実行し、データ参照領域３１のシフト制御を実行しないようになされている。
【００５３】
このとき制御部３３は、処理回数をカウントするカウンタ（図示しない）を「１」加算し、データ参照領域３１から可変長符号データを読出し、次の復号対象ビットに対する処理を実行する。
【００５４】
制御部３３は、カウンタが「６４」になるまで復号対象ビットに対する処理を継続し、カウンタが「６４」になると、無判定による復号データ生成処理を終了する。
【００５５】
復号データ選択部３７は、終端判定復号処理部３０及び無判定復号処理部３２を監視し、終端判定復号処理部３０が処理対象ブロックに対する終端判定による復号データ生成処理を終了したことを認識すると、終端判定復号処理部３０の制御部４に対して復号データの供給を要求する。
【００５６】
制御部４は、データ保持部６を制御することにより、復号データ記憶部３８に対して復号データ（すなわち量子化係数）を供給する。この結果、復号データ記憶部３８には、終端判定復号処理部３０によって復号された量子化係数が記憶される。
【００５７】
また復号データ選択部３７は、無判定復号処理部３２が処理対象ブロックに対する終端判定による復号データ生成処理を終了したことを認識すると、無判定復号処理部３２の制御部３３に対して復号データの供給を要求する。
【００５８】
制御部３３は、データ保持部３５を制御することにより、復号データ記憶部３８に対して復号データ（すなわち量子化係数）を供給する。この結果、復号データ記憶部３８には、無判定復号処理部３２によって復号された量子化係数が記憶されるようになされている。
【００５９】
なお上述した一連の可変長復号処理は、ハードウェアにより実行させることもでき、またソフトウェアにより実行させることも可能である。可変長復号処理をソフトウェアによって実現する場合、ＣＰＵ（Central Processing Unit）及びＲＡＭ（Random Access Memory）に仮想的に可変長復号部１３が形成される。そしてＲＯＭ（Read Only Memory）に格納された可変長復号プログラムをＲＡＭに展開することにより、可変長復号処理が実行される。
【００６０】
このように可変長復号部１３は、終端符号及びエラーの検出を実行する終端判定復号処理部３０と、終端符号及びエラーの検出を省略した無判定復号処理部３２とを並列に動作させ、先に処理が終了した方の復号データを使用する。
【００６１】
これにより可変長復号部１３は、処理対象ブロックに含まれる可変長符号データの数が多い場合に従来の可変長処理よりも速く量子化係数を生成することができ、可変長処理の平均処理サイクル数を減少させ得、可変長処理を高速化し得るようになされている。
【００６２】
［１−３．具体的な処理手順］
［１−３−１．可変長処理手順］
次に、可変長処理プログラムに従って実行される可変長処理手順ＲＴ２について、図５のフローチャートを用いて説明する。
【００６３】
可変長復号部１３は、可変長処理手順ＲＴ２の開始ステップにおいて、処理対象ブロックに対する可変長復号処理を開始すると、次のステップＳＰ２１及びステップＳＰ２２へ移り、終端判定による復号データ生成処理手順ＲＴ３及び無判定による復号データ生成処理手順ＲＴ４をそれぞれ開始すると、次のステップＳＰ２３へ移る。
【００６４】
ステップＳＰ２３において、可変長復号部１３は、終端判定による復号データ生成処理手順ＲＴ３及び無判定による復号データ生成処理手順ＲＴ４のいずれか一方の手順が終了したか否かについて判別し、否定結果が得られた場合には、一方の手順が終了するまで待ち受ける。
【００６５】
これに対してステップＳＰ２３において肯定結果が得られた場合、可変長復号部１３は、次のステップＳＰ２４へ移り、処理が終了した一方の復号データを選択すると、次のステップＳＰ２５へ移る。
【００６６】
ステップＳＰ２５において、可変長復号部１３は、選択された復号データ（すなわち量子化係数）を記憶すると、終了ステップへ移って処理対象ブロックに対する処理を終了する。
【００６７】
［１−３−２．終端判定による復号データ生成処理手順］
次に、可変長処理プログラムに従って実行される終端判定による復号データ生成処理手順ＲＴ３について、図６のフローチャートを用いて説明する。
【００６８】
可変長復号処理手順ＲＴ２のステップＳＰ２１において終端判定復号処理部３０は、終端判定による復号データ生成処理手順ＲＴ３を開始すると、ステップＳＰ３１へ移る。ステップＳＰ３１において、終端判定復号処理部３０は、復号化部５が有するバッファメモリの空領域に応じてデータ参照領域３１から可変長符号データを読み出し、これをバッファメモリに記憶すると、次のステップＳＰ３２に移る。
【００６９】
ステップＳＰ３２において、終端判定復号処理部３０は、バッファメモリに記憶された復号対象ビットを復号化して復号データを生成すると、次のステップＳＰ３３へ移る。
【００７０】
ステップＳＰ３３において、終端判定復号処理部３０は、データ保持部６に復号データを一時記憶すると、次のステップＳＰ３４へ移る。
【００７１】
ステップＳＰ３４において、終端判定復号処理部３０は、復号データの生成に使用した分だけデータ参照領域３１及びバッファメモリをシフトさせると、次のステップＳＰ３５へ移る。
【００７２】
ステップＳＰ３５において、終端判定復号処理部３０は、復号データが終端符号又はエラーであるか否かについて判別する。
【００７３】
ここで否定結果が得られた場合、このことは復号データが終端符号でないため、処理対象ブロック内にさらなる可変長符号データが含まれている可能性があることを表している。このとき終端判定復号処理部３０は、次のステップＳＰ３１へ戻り、現在の処理対象ブロックに対する処理を継続する。
【００７４】
これに対してステップＳＰ３５において肯定結果が得られた場合、このことは復号データが終端符号であり処理対象ブロックの全ての可変長符号データについての処理を終了した、又は復号データが無効であることを表している。このとき終端判定復号処理部３０は、終了ステップへ移り、現在の処理対象ブロックに対する終端判定による復号データ生成処理を終了する。
【００７５】
［１−３−３．無判定による復号データ生成処理手順］
次に、可変長処理プログラムに従って実行される無判定による復号データ生成処理手順ＲＴ４について、図７のフローチャートを用いて説明する。
【００７６】
可変長復号処理手順ＲＴ２のステップＳＰ２２において無判定復号処理部３２は、無判定による復号データ生成処理手順ＲＴ４を開始すると、ステップＳＰ４１へ移る。ステップＳＰ４１において、無判定復号処理部３２は、復号化部３４が有するバッファメモリの空領域に応じてデータ参照領域３１から可変長符号データを読み出し、これをバッファメモリに記憶すると、次のステップＳＰ４２に移る。
【００７７】
ステップＳＰ４２において、無判定復号処理部３２は、バッファメモリに記憶された復号対象ビットを復号化して復号データを生成すると、次のステップＳＰ４３へ移る。
【００７８】
ステップＳＰ４３において、無判定復号処理部３２は、データ保持部３５に復号データを一時記憶すると、次のステップＳＰ４４へ移る。
【００７９】
ステップＳＰ４４において、無判定復号処理部３２は、復号データの生成に使用した分だけバッファメモリをシフトさせると、次のステップＳＰ４５へ移る。
【００８０】
ステップＳＰ４５において、無判定復号処理部３２は、「６４」回に亘って復号対象ビットの復号化を実行したか否かについて判別し、否定結果が得られた場合には、ステップＳＰ４１へ戻り、現在の処理対象ブロックに対する無判定による復号データ生成処理を継続する。
【００８１】
これに対してステップＳＰ４５において肯定結果が得られた場合、このことは処理対象ブロックにおいて可変長符号データが最大の「６４」個含まれていた場合であっても、当該処理対象ブロックにおける全ての可変長符号データを復号化し終えたことを表している。このとき無判定復号処理部３２は、終了ステップへ移って無判定による復号データ生成処理を終了する。
【００８２】
［１−４．動作及び効果］
以上の構成において、デコーダ１０の可変長復号部１３は、終端判定復号処理部３０によって可変長符号データを判定数Ｎｊである「１」だけ復号するごとに終端判定及びエラー判定を実行する。
【００８３】
この終端判定復号処理部３０は、終端又はエラーと判定された場合に処理対象となる処理対象ブロックに対する復号処理（すなわち復号データ生成処理）を終了する。
【００８４】
また可変長復号部１３は、無判定復号処理部３２によって可変長符号データを連続的に復号し、マクロブロックが有する最大数である「６４」だけ可変長符号データを復号した場合に処理対象ブロックに対する復号処理（すなわち復号データ生成処理）を終了する。
【００８５】
そして可変長復号部１３は、終端判定復号処理部３０及び無判定復号処理部３２のうち、最も速く終了する復号処理（すなわち復号データ生成処理）によって生成された復号データを選択するようにした。
【００８６】
これにより可変長復号部１３は、処理対象ブロックが含有する可変長符号データの数が多い場合には、終端判定及びエラー判定を省略した無判定復号処理部３２によって迅速に生成された復号データを選択することができる。
【００８７】
この結果可変長復号部１３は、処理対象ブロックが最小の「１」だけ可変長符号データを含有していた場合と、処理対象ブロックが最大の「６４」だけ可変長符号データを含有していた場合との処理サイクル数の差異を小さくすることができる。
【００８８】
すなわち可変長復号部１３は、復号データ生成処理の最大処理サイクル数を低減することができるため、当該最大処理サイクル数を基準としてデコーダを設計した場合に生じる無駄を低減させることができる。
【００８９】
また可変長復号部１３は、終端判定復号処理部３０及び無判定復号処理部３２により、同時並行して処理対象ブロックに対する復号データ生成処理を実行する。これにより可変長復号部１３は、先に復号データ生成処理を終了した一方の復号データを、最も速く終了する復号データ生成処理によって生成された復号データとして選択すれば良い。
【００９０】
さらに可変長復号部１３は、ＤＣＴ処理により直交変換された画像データが可変長符号化されてなる可変長符号データを復号する。ここでＤＣＴ処理は、画像データを周波数成分で表すものであり、高周波成分ほどＤＣＴ係数の値が「ゼロ」の確率が高くなる。
【００９１】
従ってＤＣＴ処理を施したＤＣＴ係数は「ゼロ」を多く含む確率が高く、可変長符号データの数の変動が大きい。可変長復号部１３は、かかる可変長符号データを復号することにより、本発明の効果を存分に発揮することができる。
【００９２】
以上の構成によれば、可変長復号部１３は、終端判定／エラー判定を省略した無判定復号部３２によって可変長符号データの数が多い場合の処理サイクル数を減少させる。同時に可変長復号部１３は、終端判定／エラー判定を実行する終端判定復号部３０により可変長符号データの数が少ない場合の処理サイクル数の増大を防止する。
【００９３】
そして可変長復号部１３は、終端判定復号処理部３０及び無判定復号処理部３２のうち、最も速く復号データ生成処理を終了した復号処理部によって復号された復号データを選択する。
【００９４】
これにより可変長復号部１３は、可変長符号データの数に拘らず全体的な処理サイクル数を減少させることができ、かくして可変長復号処理を高速化し得るデコーダ、復号方法及び記録媒体を実現できる。
【００９５】
＜２．第２の実施の形態＞
［２−１．可変長復号部の構成］
図８〜図９は第２の実施の形態を示すもので、図３〜７に示す第１の実施の形態に対応する部分を同一符号で示している。第２の実施の形態の可変長復号部１３Ｘでは、終端判定復号処理部３０に対応する３つの終端判定復号処理部（第１の終端判定復号処理部３０ａ〜第３の終端判定復号処理部３０ｃ）を有している点が、第１の実施の形態と異なっている。
【００９６】
ここで、３つの終端判定復号処理部は、それぞれ異なる判定数Ｎｊの復号データを生成する度に復号データが終端符号又はエラーであるか否かを判別するようになされている。第１の終端判定復号処理部３０ａの判定数Ｎｊは「２」、第２の終端判定復号処理部３０ｂの判定数Ｎｊは「６」、第３の終端判定復号処理部３０ｃの判定数Ｎｊは「１６」である。
【００９７】
すなわち第１の終端判定復号処理部３０ａは、２つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って第１の終端判定復号処理部３０ａは、２つの復号対象ビットを復号するのに１２［ｃｙｃｌｅ］（６×２＝１２）、さらに終端符号又はエラーであるか否かを判別するために２［ｃｙｃｌｅ］を要し、１ループの処理に合計１４［ｃｙｃｌｅ］を要する。
【００９８】
従って、処理対象ブロックに含まれる可変長符号データが「１」個の場合には、１ループの処理で済むため処理サイクル数が１４［ｃｙｃｌｅ］になる。処理対象ブロックに含まれる可変長符号データが「２〜３」個の場合には、２ループの処理を要するため処理サイクル数が２８［ｃｙｃｌｅ］となる。また処理対象ブロックに含まれる可変長符号データが「４」個の場合には、３ループの処理を要するため処理サイクル数が４２［ｃｙｃｌｅ］となる。
【００９９】
一方第２の終端判定復号処理部３０ｂは、６つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って第２の終端判定復号処理部３０ｂは、６つの復号対象ビットを復号するのに３６［ｃｙｃｌｅ］（６×６＝３６）、さらに終端符号又はエラーであるか否かを判別するために２［ｃｙｃｌｅ］を要し、１ループに合計３８［ｃｙｃｌｅ］を要する。
【０１００】
従って、処理対象ブロックに含まれる可変長符号データが「１〜５」個の場合には、１ループの処理で済むため、処理サイクル数が３８［ｃｙｃｌｅ］になる。処理対象ブロックに含まれる可変長符号データが「６〜１１」個の場合には、２ループの処理で済むため、処理サイクル数が７６［ｃｙｃｌｅ］となる。また処理対象ブロックに含まれる可変長符号データが「１２〜１７」個の場合には、３ループの処理を要するため、処理サイクル数が１１４［ｃｙｃｌｅ］となる。
【０１０１】
他方第３の終端判定復号処理部３０ｃは、１６つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って第３の終端判定復号処理部３０ｃは、１６つの復号対象ビットを復号するのに９６［ｃｙｃｌｅ］（６×１６＝９６）、さらに終端符号又はエラーであるか否かを判別するために２［ｃｙｃｌｅ］を要し、１ループの処理に合計９８［ｃｙｃｌｅ］を要する。
【０１０２】
従って、処理対象ブロックに含まれる可変長符号データが「１〜１５」個の場合には、１ループの処理で済むため、処理サイクル数が９８［ｃｙｃｌｅ］になる。処理対象ブロックに含まれる可変長符号データが「１６〜３１」個の場合には、２ループの処理で済むため、１９６［ｃｙｃｌｅ］を要する。
【０１０３】
また処理対象ブロックに含まれる可変長符号データが「３２〜４７」個の場合には、３ループの処理を要するため、処理サイクル数が２９４［ｃｙｃｌｅ］となる。さらに処理対象ブロックに含まれる可変長符号データが「４８〜６３」個の場合には、４ループの処理を要するため、処理サイクル数が３９２［ｃｙｃｌｅ］となる。
【０１０４】
ここで無判定復号処理部３２は、復号データが終端符号又はエラーであるか否かを判別する工程を省略しているため、１つの復号対象ビットを復号する、すなわち１ループに合計６［ｃｙｃｌｅ］で済む。従って、６４の復号対象ビットを復号するのに、６×６４＝３８４［ｃｙｃｌｅ］の処理サイクル数を要することになる。
【０１０５】
すなわち処理対象ブロックに含まれる可変長符号データの数が「１〜３」、「６〜９」である場合には、第１の終端判定復号処理部３０ａが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１０６】
また処理対象ブロックに含まれる可変長符号データの数が「４〜５」、「１０〜１１」、「１６〜２９」などである場合には、第２の終端判定復号処理部３０ｂが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１０７】
さらに処理対象ブロックに含まれる可変長符号データの数が「１２〜１５」、「３０〜３１」などである場合には、第３の終端判定復号処理部３０ｃが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１０８】
一方、処理対象ブロックに含まれる可変長符号データの数が「５９〜６４」であった場合には、無判定復号処理部３２が最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１０９】
実際上、終端判定復号処理部３０ａ〜３０ｃ（第１の終端判定復号処理部３０ａ〜第３の終端判定復号処理部３０ｃ）は、第１の実施の形態による終端判定復号処理部３０とほぼ同一構成を有しており、終端判定復号処理部３０の対応する構成にそれぞれａ〜ｃを附して説明する。
【０１１０】
終端判定復号処理部３０ａ〜３０ｃの制御部４ａ〜４ｃ（図示せず）は、復号対象ビットから復号データを生成する。
【０１１１】
次いで制御部４ａ〜４ｃは、復号に使用した分だけ自身が有するバッファメモリをシフトさせる。ここで第１の終端判定復号処理部３０ａの制御部４ａは、最も小さい判定数Ｎｊでなるためデータ参照領域３１からの復号対象ビットの読出しタイミングが最も遅くなる。このため制御部４ａは、復号に使用した分だけデータ参照領域３１をシフトさせる。
【０１１２】
そして終端判定復号処理部３０ａ〜３０ｃの終端判定部７ａ〜７ｃは、バッファメモリ判定数Ｎｊだけ復号データを生成すると、復号データが終端符号又はエラーであるか否かを判定する。
【０１１３】
一方無判定復号処理部３２は、第１の実施の形態と同様にして無判定による復号データ生成処理を実行する。
【０１１４】
復号データ選択部３７は、各復号処理部（第１の終端判定復号処理部３０ａ〜第３の終端判定復号処理部３０ｃ及び無判定復号処理部３２）を監視し、処理対象ブロックに対する処理を最も速く終了した復号処理部の復号データを選択し、復号データ記憶部３８に記憶するようになされている。
【０１１５】
このように可変長復号部１３Ｘは、判定数Ｎｊを相違させた複数の終端判定復号処理部３０ａ〜３０ｃを設けたことにより、第１の実施の形態と比して処理対象ブロックに可変長符号データが少ない場合の処理サイクル数を減少させることができる。この結果可変復号部１３Ｘは、平均処理サイクル数を減少させることができるため、可変長復号処理を高速化し得るようになされている。
【０１１６】
［２−２．終端判定による復号データ生成処理手順］
次に、可変長処理プログラムに従って実行される終端判定による復号データ生成処理手順ＲＴ５について、図９のフローチャートを用いて説明する。
【０１１７】
可変長復号処理手順ＲＴ２のステップＳＰ２１において終端判定復号処理部３０ａ〜３０ｃは、終端判定による復号データ生成処理手順ＲＴ５を開始すると、終端判定による復号データ生成処理手順ＲＴ３と同様にステップＳＰ３１〜ステップＳＰ３３までの処理を実行し、次のステップＳＰ５１へ移る。
【０１１８】
ステップＳＰ５１において、第２及び第３の終端判定復号処理部３０ｂ及び３０ｃは、復号データの生成に使用した分だけバッファメモリをシフトさせると、次のステップＳＰ５２へ移る。また第１の終端判定復号処理部３０ａは、復号データの生成に使用した分だけバッファメモリ及びデータ参照領域３１をシフトさせると、次のステップＳＰ５２へ移る。
【０１１９】
ステップＳＰ５２において、終端判定復号処理部３０ａ〜３０ｃは、判定数Ｎｊだけ復号データを生成したか否かについて判別し、否定結果が得られた場合には、ステップＳＰ３１へ戻り、復号データの生成を継続する。
【０１２０】
これに対してステップＳＰ５２において肯定結果が得られた場合、終端判定復号処理部３０ａ〜３０ｃは、次のステップＳＰ３５へ移る。
【０１２１】
ステップＳＰ３５において、終端判定復号処理部３０は、復号データが終端符号又はエラーであるか否かについて判別する。
【０１２２】
ここで否定結果が得られた場合、このことは復号データが量子化係数であるため、処理対象ブロック内にさらなる可変長符号データが含まれている可能性があることを表している。このとき終端判定復号処理部３０ａ〜３０ｃは、次のステップＳＰ３１へ移り、処理対象ブロックに対する処理を継続する。
【０１２３】
これに対してステップＳＰ３５において肯定結果が得られた場合、このことは復号データが終端符号又はエラーであり処理対象ブロックの全ての可変長符号データについての処理を終了した、又は復号データが無効であることを表している。このとき終端判定復号処理部３０ａ〜３０ｃは、は、終了ステップへ移り、処理対象ブロックに対する終端判定による復号データ生成処理を終了する。
【０１２４】
［２−３．動作及び効果］
以上の構成において、可変長復号部１３Ｘは、異なる判定数Ｎｊを有する複数の終端判定復号処理部３０ａ〜３０ｃが設けられている。これにより可変長復号部１３Ｘは、第１の実施の形態と比して可変長符号データが「４７」個未満と少ない場合の終端判定／エラー判定の回数を減少させて平均処理サイクル数を減少させることができ、可変長復号処理を高速化し得る。
【０１２５】
以上の構成によれば、可変長復号部１３Ｘは、判定数Ｎｊを分散させてなる複数の終端判定復号処理部３０ａ〜３０ｃを有する。これにより可変長復号部１３Ｘは、最速で復号データ生成処理を終了し得る終端判定復号処理部３０ａ〜３０ｃを可変長符号データの数に応じて分散させることができ、平均処理サイクル数を減少させ得る。
【０１２６】
＜３．第３の実施の形態＞
図１０〜図１３は第３の実施の形態を示すもので、図８〜９に示す第２の実施の形態に対応する部分を同一符号で示している。第３の実施の形態における可変長復号部１３Ｙでは、復号処理部として、計５つの終端判定による復号データ生成処理部（第１の終端判定復号処理部３０ｐ〜第５の終端判定復号処理部３０ｔ）と、無判定復号処理部３２（とを有している。
【０１２７】
第３の実施の形態では、符号化処理の際、処理対象ブロックが有する可変長符号データの数から、当該処理対象ブロックに対する復号処理を最も速く終了する復号処理部を選択し、選択された復号処理部を示す識別情報ＩＤを符号化ストリームに埋め込んでおく。
【０１２８】
そして可変長復号部１３Ｘでは、識別情報ＩＤが示す復号処理部によって復号データを生成するようになされている。
【０１２９】
［３−１．可変長復号部の構成］
図１０に示すように、可変長復号部１３Ｘに対応する可変長復号部１３Ｙは、判定数Ｎｊがそれぞれ２、４、８、１６、３２と２のべき乗でなる５つの終端判定復号部と、終端符号又はエラーの判定を実行しない無判定復号処理部３２とを有している。
【０１３０】
可変長復号部１３Ｙは、全体を統括制御するコントローラ６１を有しており、コントローラ６１の制御により可変長復号処理が実行されるようになされている。
【０１３１】
すなわち第１の終端判定復号処理部３０ｐは、復号データ生成処理の際、２つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って、処理対象ブロックに含まれる可変長符号データが「１」個の場合には、１ループの処理で済むため処理サイクル数が１４［ｃｙｃｌｅ］になる。処理対象ブロックに含まれる可変長符号データが「２〜３」個の場合には、２ループの処理を要するため処理サイクル数が２８［ｃｙｃｌｅ］となる。また処理対象ブロックに含まれる可変長符号データが「４〜５」個の場合には、３ループの処理を要するため処理サイクル数が４２［ｃｙｃｌｅ］となる。
【０１３２】
第２の終端判定復号処理部３０ｑは、復号データ生成処理の際、４つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って、処理対象ブロックに含まれる可変長符号データが「１〜３」個の場合には、１ループの処理で済むため処理サイクル数が２６［ｃｙｃｌｅ］になる。また処理対象ブロックに含まれる可変長符号データが「４」個の場合には、２ループの処理を要するため処理サイクル数が５２［ｃｙｃｌｅ］となる。
【０１３３】
第３の終端判定復号処理部３０ｒは、復号データ生成処理の際、８つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って、処理対象ブロックに含まれる可変長符号データが「１〜７」個の場合には、１ループの処理で済むため処理サイクル数が５０［ｃｙｃｌｅ］になる。また処理対象ブロックに含まれる可変長符号データが「８〜１５」個の場合には、２ループの処理を要するため処理サイクル数が１００［ｃｙｃｌｅ］となる。
【０１３４】
第４の終端判定復号処理部３０ｓは、１６つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って、処理対象ブロックに含まれる可変長符号データが「１〜１５」個の場合には、１ループの処理で済むため処理サイクル数が９８［ｃｙｃｌｅ］になる。また処理対象ブロックに含まれる可変長符号データが「１６〜３１」個の場合には、２ループの処理を要するため処理サイクル数が１９６［ｃｙｃｌｅ］となる。
【０１３５】
第５の終端判定復号処理部３０ｔは、復号データ生成処理の際、３２つの復号データを生成する度に、復号データが終端符号又はエラーであるか否かを判別するようになされている。従って、処理対象ブロックに含まれる可変長符号データが「１〜３１」個の場合には、１ループの処理で済むため処理サイクル数が１９４［ｃｙｃｌｅ］になる。また処理対象ブロックに含まれる可変長符号データが「３２〜６３」個の場合には、２ループの処理を要するため処理サイクル数が３８８［ｃｙｃｌｅ］となる。
【０１３６】
ここで無判定復号処理部３２は、復号データ生成処理の際、復号データが終端符号又はエラーであるか否かを判別する工程を省略しているため、１つの復号対象ビットを復号するのに合計６［ｃｙｃｌｅ］で済む。従って、６４の復号データを生成するのに、６×６４＝３８４［ｃｙｃｌｅ］の処理サイクル数を要することになる。
【０１３７】
すなわち処理対象ブロックに含まれる可変長符号データの数が「１」、「４〜５」、「８〜９」などである場合には、第１の終端判定復号処理部３０ｐが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１３８】
また処理対象ブロックに含まれる可変長符号データの数が「２〜３」、「１０〜１１」などである場合には、第２の終端判定復号処理部３０ｑが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１３９】
さらに処理対象ブロックに含まれる可変長符号データの数が「６〜７」、「２０〜２３」などである場合には、第３の終端判定復号処理部３０ｒが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１４０】
また処理対象ブロックに含まれる可変長符号データの数が「１２〜１５」、「４４〜４７」などである場合には、第４の終端判定復号処理部３０ｓが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１４１】
さらに処理対象ブロックに含まれる可変長符号データの数が「２８〜３１」である場合には、第５の終端判定復号処理部３０ｔが最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１４２】
一方、処理対象ブロックに含まれる可変長符号データの数が「５６〜６４」であった場合には、無判定復号処理部３２が最も速く当該処理対象ブロックに対する復号データ生成処理を終了することになる。
【０１４３】
かかる構成に加えて、第３の実施の形態による可変長復号部１７Ｙでは、符号化ストリームに予め埋め込まれた復号情報に基づいて６つの復号処理部から復号データ生成処理を実行する一の復号処理部を選択し、復号データを生成するようになされている。
【０１４４】
図１１に、ＭＰＥＧ−２における符号化ストリームのデータ構造を示している。図１１（Ａ）に示すように、符号化ストリームは、シーケンス層、ＧＯＰ(Group Of Pictures)層、ピクチャ層、スライス層、マクロブロック層、ブロック層からなる階層構造となっている。各層（ブロック層を除く）の先頭部分にはそれぞれヘッダが設けられており、開始位置を示す開始コードなどの情報が含まれている。
【０１４５】
ピクチャ層のヘッダ（以下、これをピクチャヘッダと呼ぶ）ＨＤｐには、ピクチャ層の開始コードの他に、ピクチャタイプや量子化マトリクス、Ｑスケール、ビットレートなど、符号化に使用された符号化パラメータが含まれている。
【０１４６】
またピクチャヘッダＨＤｐには、任意の情報を埋め込めるユーザデータ領域ＺＮｕが設定されている。第３の実施の形態では、このユーザデータ領域ＺＮｕに予め復号データ生成処理を実行するべき一の復号処理部を表す復号情報が埋め込まれていることが想定されている。なおこの復号情報は、画像データを符号化する際にエンコーダ４０（詳しくは後述する）によって埋め込まれる。
【０１４７】
ピクチャ単位のデータは、さらにスライス層、マクロブロック層に分けられる。このマクロブロック層において、データがマクロブロックごとに記録され、当該マクロブロックの先頭にマクロヘッダが付加されている。可変長符号化された量子化係数に対応する可変長符号データは、このマクロヘッダの後部分に、ブロック層として記録されている。
【０１４８】
可変長復号部１３Ｙは、６つの復号処理部にそれぞれ識別情報ＩＤが附されている。例えば図１０に示したように、識別情報ＩＤとして、無判定処理部３２に「０」が、第１の終端判定復号処理部３０ｐ〜第５の終端判定復号処理部３０ｔにそれぞれ「１」〜「５」が附されている。
【０１４９】
図１１（Ｂ）に示すように、ユーザデータ領域ＺＮｕには、復号情報として、ブロックごとに使用すべき復号処理部の識別情報ＩＤが埋め込まれている。なおこの識別情報ＩＤは、３［ｂｉｔ］の情報として、ピクチャが有するブロックの数だけ連続して記載されている。
【０１５０】
例えばＮＴＳＣ（National Television System Committee）方式では、１ピクチャが７２０×４８０画素、すなわち３４５６００画素でなる。１マクロブロックは１６×１６画素でなるため、ＮＴＳＣ方式では１ピクチャ当たりに１３５０のマクロブロックが存在することになる。また、例えば４：２：２方式の場合、１マクロブロック当たり８個のブロックが存在する。従ってユーザデータ領域ＺＮｕには、１０８００ブロック分の復号情報が３２４００［ｂｉｔ］に亘って埋め込まれている。
【０１５１】
実際上、デコーダ１０（図３）の多重分離部１２は、符号化ストリームが供給されると、ピクチャヘッダＨＤｐから復号情報及び可変長符号データを抽出し、可変長復号部１３Ｙのコントローラ６１（図１０）に供給する。
【０１５２】
コントローラ６１は、処理対象となるピクチャ（以下、これを処理対象ピクチャと呼ぶ）に対する可変長復号処理を開始すると、多重分離部１２から供給される復号情報を図示しないＲＡＭに一時記憶する。またコントローラ６１は、多重分離部１２から供給される可変長符号データをデータ参照領域３１に順次記憶させる。
【０１５３】
さらにコントローラ６１は、１つめの処理対象ブロックに対応する復号情報を読出すと、当該復号情報が表す識別情報ＩＤに対応する復号処理部のみによって復号データ生成処理を実行させる。
【０１５４】
例えばコントローラ６１は、１つめの処理対象ブロックに対応する復号情報が「０」であった場合には、識別情報ＩＤが「０」でなる無判定復号処理部３２のみを稼働させ、当該無判定復号処理部３２によって復号データ生成処理を実行する。
【０１５５】
このときコントローラ６１は、復号データ選択部６２に復号情報を供給する。復号データ選択部６２は、復号情報が表す無判定復号処理部３２から復号データを取得し、当該復号データを復号データ記憶部３８に記憶させる。
【０１５６】
コントローラ６１は、１つめの処理対象ブロックに対する復号データ生成処理を終了すると、次の処理対象ブロックに対応する復号情報に従い、当該復号情報が表す復号処理部によって復号データ生成処理を実行する。
【０１５７】
そしてコントローラ６１は、順次処理対象ブロックに対応する復号情報に従い、当該復号情報が表す復号処理部によって復号データ生成処理を実行するようになされている。
【０１５８】
これにより可変長復号部１３Ｙは、第１及び第２の実施の形態と同様、平均処理サイクル数を減少させて可変長復号処理を高速化し得ると共に、一の復号処理部のみを稼働すればよい。このため可変長復号部１３Ｙは、第１及び第２の実施の形態と比較して、可変長復号処理に要する消費電力を低減し得るようになされている。
【０１５９】
［３−２．エンコーダの構成］
次に、エンコーダの構成について説明する。
【０１６０】
図１２に示すように、エンコーダ４０は、入力端子４１から画像データが供給されると、当該画像データを減算器４２及び動き補償部４８に供給する。
【０１６１】
減算器４２は、動き補償部４８から現在の参照画像データが供給された場合には、当該現在の参照画像データと画像データとの差分を表す差分情報を生成し、これをＤＣＴ部４３に供給する。一方減算器４２は、動き補償部４８から参照画像データが供給されない場合には、画像データをそのまま差分情報としてＤＣＴ部４３に供給する。
【０１６２】
ＤＣＴ部４３は、差分情報に対してＤＣＴ処理を施してＤＣＴ係数を生成し、これを量子化部４４に供給する。量子化部４４は、ＤＣＴ係数を量子化し、量子化係数を生成すると、これを逆量子化部４５及び可変長符号部５１に供給する一方、ブロックごとの量子化係数の数を表す係数情報を復号情報埋込部５２に供給する。
【０１６３】
逆量子化部４５は、量子化係数を逆量子化してローカルＤＣＴ係数を生成し、ＩＤＣＴ部４６に供給する。ＩＤＣＴ部４６は、ローカルＤＣＴ係数を逆ＤＣＴ処理し、ローカル差分情報を生成し、これを加算器４９に供給する。
【０１６４】
加算器４９は、動き補償部４８から供給される時間的に前の参照画像データと差分情報とを加算して加算画像データを生成し、画像メモリ４７に記憶する。
【０１６５】
動き補償部４８は、画像データと加算参照画像データとから動きベクトルを抽出すると共に、当該画像データに対して動き補償処理を施し、これを現在の参照画像データとして減算器４２に供給する。
【０１６６】
可変長符号部４８は、量子化部４４から供給される量子化係数を符号テーブルに従って可変長符号化して可変長符号データを生成し、これを復号情報埋込部５２に供給する。
【０１６７】
復号情報埋込部５２は、可変長符号データを符号化ストリームとして出力端子５３を介して出力する。ここで復号情報埋込部５２は、予め記憶された係数情報と復号データ生成処理を最も速く終了する復号処理部の識別情報ＩＤとが対応付けられた係数テーブルを予め記憶している。復号情報埋込部５２は、量子化部４４から供給される係数情報に対応する識別情報ＩＤを選択し、これを復号情報としてピクチャヘッダＨＤｐのユーザデータ領域ＺＮｕに埋め込むようになされている。
【０１６８】
このようにエンコーダ４０は、入力された画像データをＭＰＥＧ−２方式に従って符号化しながら、復号情報の埋め込まれた符号化ストリームを生成するようになされている。
【０１６９】
［３−３．可変長復号処理手順］
次に、可変長処理プログラムに従って実行される終端判定による復号データ生成処理手順ＲＴ５について、図１３のフローチャートを用いて説明する。
【０１７０】
可変長復号部１３Ｙは、可変長処理手順ＲＴ６の開始ステップにおいて、処理対象ブロックに対する可変長復号処理を開始すると、次のステップＳＰ６１へ移る。
【０１７１】
ステップＳＰ６１において、可変長復号部１３Ｙは、復号情報に従って処理対象ブロックに対して復号データ生成処理を実行する復号処理部を選択すると、次のステップＳＰ６２へ移る。
【０１７２】
ステップＳＰ６２において、可変長復号部１３Ｙは、選択されたのが無判定復号処理部３２以外の復号処理部であった場合には、次のステップＳＰ６３へ移る一方、選択されたのが無判定復号処理部３２であった場合には、次のステップＳＰ６４へ移る。
【０１７３】
ステップＳＰ６３において可変長復号部１３Ｙは、終端判定による復号データ生成処理手順ＲＴ５へ移り、第１の終端判定復号部３０ｐ〜第５の終端判定復号部３０ｔのうち、復号情報に対応する復号処理部によって復号データ生成処理を実行すると、次のステップＳＰ６５へ移る。
【０１７４】
ステップＳＰ６４において可変長復号部１３Ｙは、無判定による復号データ生成処理手順ＲＴ４へ移り、無判定復号処理部３２によって復号データ生成処理を実行すると、次のステップＳＰ６５へ移る。
【０１７５】
ステップＳＰ６５において、可変長復号部１３Ｙは、復号データの生成が終了したか否かについて判別する。ここで否定結果が得られた場合、可変長復号部１３Ｙは、復号データの生成が終了するまで待ち受ける。
【０１７６】
これに対してステップＳＰ６５において肯定結果が得られた場合、可変長復号部１３Ｙは、復号データを復号データ記憶部３８に記憶し、終了ステップに移って可変長復号処理手順ＲＴ６を終了する。
【０１７７】
［３−４．動作及び効果］
以上の構成において、可変長復号部１３Ｙは、符号化ストリームにおけるピクチャヘッダＨＤｐに埋め込まれた状態で、当該符号化ストリームが生成された際に算出された復号情報を受け取る。
【０１７８】
可変長復号部１３Ｙは、処理選択部としてのコントローラ６１によって復号情報に基づいて処理対象ブロックに対して最も速く復号処理である復号データ生成処理を終了する一の復号処理部を選択する。そして可変長復号部１３Ｙは、制御部としてのコントローラ６１によって選択された復号処理部にのみ処理対象ブロックに対する復号データ生成処理を実行させる。
【０１７９】
これにより可変長復号部１３Ｙは、最も速く復号データ生成処理を終了し得る一の復号処理部のみを稼働させて当該一の復号処理部により復号データ生成処理を実行させることができる。
【０１８０】
このため可変長復号部１３Ｙは、復号データ生成処理を選択された復号処理部によって高速で実行することにより可変長符号処理を高速化させ得る。同時に可変長復号部１３Ｙは、復号データ生成処理に時間を要する復号処理部を稼働させないため、第１及び第２の実施の形態と比較して、消費電力を低減させることができる。
【０１８１】
また復号情報は、復号情報に基づいて最も速く終了する復号データ生成処理を実行する復号処理部を表す識別情報ＩＤである。
【０１８２】
これにより可変長復号部１３Ｙは、識別情報ＩＤが表す復号処理部を選択するだけの簡易な処理により最も速く復号データ生成処理する復号処理部を選択することができる。
【０１８３】
またエンコーダ４０は、画像データとしての量子化係数を可変長符号化することにより、相違する数の可変長符号データによってブロックが構成される符号化ストリームを生成する。そしてエンコーダ４０は、ブロックが有する可変長符号データの数に基づく復号情報を埋め込む。
【０１８４】
これによりエンコーダ４０は、可変長符号データの数に基づいて復号情報を埋め込むことができるため、デコーダ１０の可変長復号部１３Ｙに対し、最も速く終了する復号データ生成処理を実行する復号処理部を確実に選択させることができる。
【０１８５】
以上の構成によれば、可変長復号部１３Ｙは、復号情報に基づいて選択された最も速く復号処理を終了する一の復号処理部のみを稼働させる。これにより可変長復号部１３Ｙは、同時並行的に複数の復号データ生成処理を実行する必要がなく、可変長復号処理の処理負荷を軽減し得るようになされている。
【０１８６】
＜４．他の実施の形態＞
なお上述した第１〜第３の実施の形態においては、画像データがＤＣＴ処理及び量子化処理された量子化係数が可変長符号化されてなる可変長符号データを受け取るようにした場合について述べた。本発明はこれに限らず、必ずしもＤＣＴ処理及び量子化処理が施されている必要はなく、可変長符号データとして、例えば画像データが単純に可変長符号化されたデータを受け取るようにしても良い。
【０１８７】
また上述した第１〜第３の実施の形態においては、終端判定復号処理部が終端判定及びエラー判定の両方を実行するようにした場合について述べた。本発明はこれに限らず、少なくともいずれか一方を実行するようにしても良い。
【０１８８】
さらに上述した第１〜第３の実施の形態においては、符号化単位が８×８の情報として表されるブロックでなるようにした場合について述べた。本発明はこれに限らず、そのサイズに制限はない。例えば１６×１６画素のマクロブロックや、４×４画素や８×８画素のサブマクロブロック、４×４のブロックなど、その他のサイズであっても良い。
【０１８９】
さらに上述した第１〜第３の実施の形態においては、各復号処理部が３２［ｂｉｔ］  のバッファメモリを有するようにした場合について述べた。本発明はこれに限らず、バッファメモリは可変長符号データの最大符号長に応じて設置され、可変長符号データの最大符号長以上の記憶容量であれば、そのビット数に制限はない。
【０１９０】
さらに上述した第１〜第３の実施の形態においては、可変長符号データがハフマン符号化により可変長符号されるようにした場合について述べた。本発明はこれに限らず、その他種々の方式でなる可変長符号方式に適用することができる。
【０１９１】
さらに上述した第３の実施の形態においては、エンコーダ４０による符号化処理の際に埋め込まれる識別情報ＩＤを復号情報として使用する場合について述べた。本発明はこれに限らず、例えば可変長符号データの数をそのまま復号情報として埋め込むようにしても良い。この場合、可変長符号化部１３Ｙは、例えば予め記憶しているテーブルを照会することにより、復号情報から最も速く復号データ生成処理を終了する復号化部を選択する。また復号情報として最も速く終了する復号データ処理そのものを表しても良い。この場合、復号情報として判定数Ｎｊを用いることができる。
【０１９２】
さらに上述した第３の実施の形態では、識別情報ＩＤをブロックに対応させて埋め込むようにした場合について述べた。本発明はこれに限らず、例えばマクロブロックに対応させて埋め込んでも良い。この場合、復号情報は、マクロブロック総体として最も速く復号データ生成処理を終了する復号化部を表すものとなる。
【０１９３】
また本発明は、ＭＰＥＧ−２の符号化方式で記述されることが定められている情報を復号情報として使用することも可能である。本発明では、例えばＱスケール、量子化マトリックス、マクロブロックタイプ（イントラマクロブロック又はインターマクロブロックなど）、動きベクトル情報、ビットレートなど、可変長符号データの数の傾向を表す符号化パラメータを復号情報として使用することができる。この場合、エンコーダに復号情報を埋め込む処理を別途行わせる必要がない。このためデコーダは、ＭＰＥＧ−２の符号化方式で通常通り符号化された符号化ストリームに対して第３の実施の形態による可変長復号処理を実行することができる。
【０１９４】
例えばＱスケールを復号情報として使用する場合、図１４に示すように、可変長復号部には、Ｑスケールと復号処理部の識別情報ＩＤとを対応付けたセレクタテーブルが予め記憶されている。可変長復号部は、符号化ストリームから抽出されたＱスケールに対応する識別情報ＩＤでなる復号処理部によって復号データ生成処理を実行する。
【０１９５】
さらに上述した第３の実施の形態においては、ピクチャヘッダＨＤｐに復号情報を埋め込むようにした場合について述べた。本発明はこれに限らず、その他種々の領域に復号情報を埋め込むようにしても良い。
【０１９６】
さらに上述した第１〜第３の実施の形態においては、可変長処理プログラム等をＲＯＭに予め格納するようにした場合について述べたが、本発明はこれに限らず、各種光ディスクやメモリースティック（ソニー株式会社の登録商標）などの外部記憶媒体からＲＯＭやハードディスクなどにインストールするようにしても良い。また、可変長復号プログラムなどをＵＳＢ（Universal Serial Bus）やＥｔｈｅｒｎｅｔ（登録商標）（Institute of Electrical and Electronics Engineers）８０２．１１ａ／ｂ／ｇなどの無線ＬＡＮ（Local Area Network）を介して外部から取得し、さらには地上ディジタルテレビジョン放送やＢＳディジタルテレビジョン放送により配信されるようにしても良い。
【０１９７】
さらに上述した第１〜第３の実施の形態においては、ＭＰＥＧ−２に準拠したデコーダ１０に本発明が適用されるようにした場合について述べた。本発明はこれに限らず、符号化単位ごとに相違する数の可変長符号データを有する符号化ストリームを復号する全てのデコーダに適用することができる。本発明は、例えばＭＰＥＧ−４やＡＶＣ（Advanced Video Coding）、Windows（登録商標） Media Video 9 を規格化したＶＣ−１、ＪＰＥＧ（Joint Photographic Experts Group）などに準拠したデコーダに適用することができる。
【０１９８】
さらに上述した第１〜第３の実施の形態を適宜組み合わせることも可能である。例えば復号情報から最も速く復号データ生成処理を実行し得る複数（例えば「２」）の復号処理部を選択して稼働させ、実際に最も速く復号データ生成処理を終了した一の復号処理部によって復号された復号データを選択しても良い。この方法は、例えば復号情報として符号化パラメータを使用し、最も速く復号データ生成処理を終了し得るか否かが確実でない場合に有効である。
【０１９９】
さらに上述した実施の形態においては、終端判定復号処理部としての終端判定復号処理部３０と、無判定復号処理部としての無判定復号処理３２とによってデコーダとしてのデコーダ１０を構成するようにした場合について述べた。本発明はこれに限らず、その他種々の構成でなる受取部と、終端判定復号処理部と、無判定復号処理部とによって本発明のデコーダを構成するようにしても良い。
【０２００】
さらに上述した実施の形態においては、可変長符号化部としての可変長符号化部５１と、復号情報埋込部としての復号情報埋込部５２とによってエンコーダとしてのエンコーダ４０を構成するようにした場合について述べた。本発明はこれに限らず、その他種々の構成でなる可変長符号化部と復号情報埋込部とによって本発明のエンコーダを構成するようにしても良い。
【産業上の利用可能性】
【０２０１】
本発明のデコーダは、例えばハードディスクレコーダやテレビジョンなどの画像処理装置に広く利用することができる。
【図面の簡単な説明】
【０２０２】
【図１】従来の可変長復号部の構成を示すブロック図である。
【図２】従来の可変長復号処理手順の説明に供するフローチャートである。
【図３】デコーダの全体構成を示すブロック図である。
【図４】第１の実施の形態による可変長復号部の構成を示すブロック図である。
【図５】第１の実施の形態による可変長復号処理の説明に供するフローチャートである。
【図６】第１の実施の形態における終端判定による復号データ生成処理の説明に供するフローチャートである。
【図７】第１の実施の形態における無判定による復号データ生成処理の説明に供するフローチャートである。
【図８】第２の実施の形態による可変長復号部の構成を示すブロック図である。
【図９】第２の実施の形態における終端判定による復号データ生成処理の説明に供するフローチャートである。
【図１０】第３の実施の形態による可変長復号部の構成を示すブロック図である。
【図１１】エンコーダの構成を示すブロック図である。
【図１２】符号化ストリームのデータ構造と復号情報の埋込を示す略線図である。
【図１３】第３の実施の形態による可変長復号処理手順を示す略線図である。
【図１４】他の実施の形態によるセレクタテーブルを示す略線図である。
【符号の説明】
【０２０３】
１、１３、１３Ｘ、１３Ｙ……可変長復号部、２、３１……データ参照領域、３、３０……終端判定復号処理部、４、３３……制御部、５、３４……復号化部、６、３５……データ保持部、７……終端判定部、３０ａ、３０ｐ……第１の終端判定復号処理部、３０ｂ、３０ｑ……第２の終端判定復号処理部、３０ｃ、３０ｒ……第３の終端判定復号処理部、３０ｓ……第４の終端判定復号処理部、３０ｔ……第５の終端判定復号処理部、Ｎｊ……判定数、ＩＤ……識別情報、ＨＤｐ……ピクチャヘッダ、ＺＮｕ……ユーザデータ領域。
【図１】
2010141423.tif 000003
【図２】
2010141423.tif 000004
【図３】
2010141423.tif 000005
【図４】
2010141423.tif 000006
【図５】
2010141423.tif 000007
【図６】
2010141423.tif 000008
【図７】
2010141423.tif 000009
【図８】
2010141423.tif 000010
【図９】
2010141423.tif 000011
【図１０】
2010141423.tif 000012
【図１１】
2010141423.tif 000013
【図１２】
2010141423.tif 000014
【図１３】
2010141423.tif 000015
【図１４】
2010141423.tif 000016