(57)【要約】【課題】  直交変換、量子化後に得られる量子化変換係数を可変長符号化テーブルを用いて符号化する際の符号量を低減する。【解決手段】  ブロック単位に直交変換、量子化を行って得られる量子化変換係数１７を符号化する際に、ＶＬＣテーブルグループ選択部４ｃ６は、ブロックを複数の領域に分けた領域毎に、量子化の際の条件に応じて、ＶＬＣテーブル記憶部４Ｃ１から可変長符号化テーブルグループを選択し、ＶＬＣテーブル選択部４ｃ８は、その選択された可変長符号化テーブルグループの中から、領域内の量子化変換係数を符号化する際に用いる可変長符号化テーブルを選択し、領域データ符号化部４ｃ１０は、その選択された可変長符号化テーブルを用いて、量子化変換係数を符号化して、量子化変換係数データ１７として出力する。【選択図】        図５
2006333500.tif 000002
【特許請求の範囲】
【請求項１】
入力画像信号をブロック単位で変換および量子化して量子化変換係数を生成し、該量子化変換係数を前記ブロック内の所定領域毎に可変長符号化テーブルにより可変長符号化して符号化ビットストリームを生成する動画像符号化装置において、
予めグループ分けされた複数の可変長符号化テーブル群と、
前記複数の可変長符号化テーブル群のうちから１つの可変長符号化テーブルグループを選択する可変長符号化テーブルグループ選択手段と、
前記選択されたグループの可変長符号化テーブルを使用して前記量子化変換係数を可変長符号化し、前記選択されたグループの可変長符号化テーブルを示す情報を含む符号化ビットストリームを生成する符号化ビットストリーム生成手段と、
を備えたことを特徴とする動画像符号化装置。
【請求項２】
符号化ビットストリームを入力してその符号化ビットストリームに含まれているブロック毎に可変長符号化された符号化データを可変長復号して量子化変換係数を復元し、該量子化変換係数を逆量子化、逆変換して画像信号を復号する動画像復号装置において、
グループ分けされた複数の可変長復号テーブル群と、
前記符号化ビットストリームから符号化側で用いた可変長符号化テーブルグループを示す情報を復号し、前記可変長復号テーブル群の中から該可変長符号化テーブルグループ情報に基づいて可変長復号テーブルグループを選択する可変長復号テーブルグループ選択手段と、
前記選択されたグループの可変長復号テーブルを使用して前記符号化データを可変長復号して前記量子化変換係数を復元する量子化変換係数復元手段と、
を備えたことを特徴とする動画像復号装置。
【請求項３】
入力画像信号をブロック単位で変換および量子化して量子化変換係数を作成し、該量子化変換係数を前記ブロック内の所定領域毎に定められた可変長符号化テーブルにより可変長符号化して符号化ビットストリームを生成する動画像符号化方法において、
グループ分けされた複数の可変長符号化テーブル群の中から、可変長符号化テーブルグループを選択し、その選択したグループの可変長符号化テーブルを使用して、前記量子化変換係数を可変長符号化し、選択された可変長符号化テーブルを示す情報を含む符号化ビットストリームを生成することを特徴とする動画像符号化方法。
【請求項４】
符号化ビットストリームを入力してその符号化ビットストリームに含まれているブロック毎に可変長符号化された符号化データを可変長復号して量子化変換係数を復元し、該量子化変換係数を逆量子化、逆変換して画像信号を復号する動画像復号方法において、
前記量子化変換係数の復元の際、前記符号化ビットストリームから符号化側で用いた可変長符号化テーブルグループを示す情報を復号し、グループ分けされた複数の可変長復号テーブル群の中から前記可変長符号化テーブルグループ情報に基づいて可変長復号テーブルグループを選択し、その選択したグループの可変長復号テーブルを使用して前記符号化データを可変長復号して前記量子化変換係数を復元することを特徴とする動画像復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像信号をブロック単位で変換および量子化して量子化変換係数を生成し、該量子化変換係数を上記ブロック内の所定領域毎に可変長符号化テーブルにより可変長符号化して符号化ビットストリームを生成する動画像符号化装置および動画像符号化方法と、その符号化ビットストリームから画像信号を復号して、符号化前の入力画像信号を復元するようにした動画像復号装置および動画像復号方法に関する。
【背景技術】
【０００２】
従来、画像信号を効率的に符号化する手段として、例えば、ISO/IEC JTC11/SC29/WG111にて標準化作業が進められているMPEG-4(Moving Picture Experts Group Phase-4)のビデオ符号化参照方式(Verification Model 8.0 、以下VM8.0、ISO/IEC JTC11/SC29/WG11/N1796)で採用されているように、ブロック毎に、離散コサイン変換(ＤＣＴ) 、量子化後、得られた量子化変換係数を可変長符号化する方法が用いられてきた。
MPEG-4では、ブロック内の量子化変換係数を可変長符号化する手段としては、ブロック内を決められた順番にスキャンし、零でない係数がブロック内で最後かどうかを示すフラグ(LAST)、連続する零の数(RUN)とそれに続く零でない係数のレベル(LEVEL)を組にして、ブロック内で同一の可変長符号化テーブルを用いて、(LAST，RUN，LEVEL)を可変長符号化する方法が用いられている。このとき用いられる可変長符号化テーブルは、各(LAST，RUN，LEVEL)に対して、(LAST，RUN，LEVEL)の発生確率に基づいて、符号長を定められた符号語を割り当てている。
つまり、発生確率の低い(LAST，RUN，LEVEL)に対しては長い符号長の符号語を割り当て、これに対し、発生確率の高い(LAST，RUN，LEVEL)に対しては短い符号長の符号語を割り当てるようにしている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、前記の従来方式では、一つの可変長符号化テーブルにより、ブロック内の量子化変換係数を符号化していたため、例えば、符号化の際、量子化変換係数の値のばらつきを小さくするために、前後のブロックの変換係数との差分データを符号化する変換係数予測が行われた場合、変換係数予測が行われなかった場合と比較すると、変換係数のレベルが小さくなるなど、(RUN，LEVEL)の発生確率が異なる場合に、同一の可変長符号化テーブルを用いて符号化を行うと変換係数の符号化の際の冗長度が高くなる、という問題があった。
【０００４】
また、量子化を行った際の量子化ステップサイズによっても変換係数のレベルの発生頻度は異なるため、やはり同一の可変長符号化テーブルを用いて符号化することは、変換係数の符号化の際の冗長度を高める、という問題があった。
【０００５】
そこで、本発明は、上述したような問題を解決するためになされたもので、変換係数予測を行ったか否か、あるいは、量子化ステップサイズ等の各種の符号化の際の条件を適応的に切り替えた場合に、符号化効率を高めることのできる動画像符号化装置および動画像符号化方法を提供することを目的とする。
【０００６】
特に、本発明では、入力画像信号の符号化単位であるブロック内をいくつかの領域に分け、各領域内の変換係数を可変長符号化する際に用いる可変長符号化テーブルを適応的に切り替えることにより、符号化効率を向上させることのできる動画像符号化装置および動画像符号化方法を提供することを目的とする。
【０００７】
また、これらの動画像符号化装置および動画像符号化方法によって生成された符号化ビットストリームを正しく復号することのできる動画像復号装置および動画像復号方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するために、本発明では、入力画像信号をブロック単位で変換および量子化して量子化変換係数を生成し、該量子化変換係数を前記ブロック内の所定領域毎に可変長符号化テーブルにより可変長符号化して符号化ビットストリームを生成する動画像符号化装置において、予めグループ分けされた複数の可変長符号化テーブル群と、前記複数の可変長符号化テーブル群のうちから１つの可変長符号化テーブルグループを選択する可変長符号化テーブルグループ選択手段と、前記選択されたグループの可変長符号化テーブルを使用して前記量子化変換係数を可変長符号化し、前記選択されたグループの可変長符号化テーブルを示す情報を含む符号化ビットストリームを生成する符号化ビットストリーム生成手段と、を備えたことを特徴とするものである。
【０００９】
また、次の発明では、符号化ビットストリームを入力してその符号化ビットストリームに含まれているブロック毎に可変長符号化された符号化データを可変長復号して量子化変換係数を復元し、該量子化変換係数を逆量子化、逆変換して画像信号を復号する動画像復号装置において、グループ分けされた複数の可変長復号テーブル群と、前記符号化ビットストリームから符号化側で用いた可変長符号化テーブルグループを示す情報を復号し、前記可変長復号テーブル群の中から該可変長符号化テーブルグループ情報に基づいて可変長復号テーブルグループを選択する可変長復号テーブルグループ選択手段と、前記選択されたグループの可変長復号テーブルを使用して前記符号化データを可変長復号して前記量子化変換係数を復元する量子化変換係数復元手段と、を備えたことを特徴とするものである。
【００１０】
また、次の発明では、入力画像信号をブロック単位で変換および量子化して量子化変換係数を作成し、該量子化変換係数を前記ブロック内の所定領域毎に定められた可変長符号化テーブルにより可変長符号化して符号化ビットストリームを生成する動画像符号化方法において、グループ分けされた複数の可変長符号化テーブル群の中から、可変長符号化テーブルグループを選択し、その選択したグループの可変長符号化テーブルを使用して、前記量子化変換係数を可変長符号化し、選択された可変長符号化テーブルを示す情報を含む符号化ビットストリームを生成することを特徴とするものである。
【００１１】
また、次の発明では、符号化ビットストリームを入力してその符号化ビットストリームに含まれているブロック毎に可変長符号化された符号化データを可変長復号して量子化変換係数を復元し、該量子化変換係数を逆量子化、逆変換して画像信号を復号する動画像復号方法において、前記量子化変換係数の復元の際、前記符号化ビットストリームから符号化側で用いた可変長符号化テーブルグループを示す情報を復号し、グループ分けされた複数の可変長復号テーブル群の中から前記可変長符号化テーブルグループ情報に基づいて可変長復号テーブルグループを選択し、その選択したグループの可変長復号テーブルを使用して前記符号化データを可変長復号して前記量子化変換係数を復元することを特徴とするものである。
【発明の効果】
【００１２】
以上、説明したように本発明では、ブロックを複数の領域に分けて、領域毎に、ブロック内での領域の位置と量子化の際の符号化条件に応じて、ＶＬＣテーブルグループを選択し、さらにその選択されたＶＬＣテーブルグループの中からＶＬＣテーブルを選択して、変換係数を可変長符号化することができるため、より少ない符号量で変換係数を符号化することが可能となる。
【００１３】
また、領域の位置と量子化の際の符号化条件により、領域内で切り替えるＶＬＣテーブルグループを選択しておくことにより、切り替えるＶＬＣテーブルを示す情報を符号化するのに必要な符号量を削減することができる。
【００１４】
また、次の発明では、選択されたＶＬＣテーブルグループの中からＶＬＣテーブルを選択する際に、領域内のスキャン位置に応じて選択することにより、付加情報として、切り替えるＶＬＣテーブルを示す情報をビットストリームに多重化する必要がなく、ＶＬＣテーブルの切り替えに必要な付加情報の符号量を削減できるという効果が得られる。
【００１５】
さらに、次の発明では、領域毎に領域内の量子化変換係数が零であるかを判定し、領域内の係数がすべて零である領域については、その領域が無効であることの情報を符号化し、領域内に零ではない係数がある領域については、その係数を符号化するのに用いたＶＬＣテーブルを示す情報を符号化することにより、従来、符号化モードによって異なるビットストリームの構造を共通にすることができ、復号装置において、シンタックス解析のための回路を簡単にすることができるという効果が得られる。
【００１６】
また、次の発明では、ＡＣ係数データの可変長符号化を行う際に、符号化するＡＣ係数データに対応するデータがＶＬＣテーブルになかった場合、ＡＣ係数データを変換し、変換したＡＣ係数データをもとに再びＶＬＣテーブルを探索し、可変長符号化することにより、圧縮効率を高める効果が得られる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
本実施の形態１では、請求項１に記載の符号化装置による動画像符号化装置について説明する。
図１は、本実施の形態１における動画像符号化装置の構成を示すブロック図である。
同図において、１は入力形状データ、２は形状符号化部、３は形状符号化データ、４は可変長符号化部、５は多重化部、６は局所復号形状データ、７は入力テクスチャデータ、８はイントラ/インター判定部、９はモード指示フラグ、１０は動き検出部、１１は動きベクトル、１２は動き補償部、１３は予測画像信号、１４は予測誤差信号、１５は被符号化画像信号、１６はテクスチャ符号化部、１７は量子化変換係数データ、１８はテクスチャ局所復号部、１９は局所復号予測誤差信号、２０は局所復号画像信号、２１は切替部、２２は参照画像信号、２３はメモリ、２４は形状データ符号語、２５は付加情報符号語、２６はブロックデータ符号語、２７は動きベクトル符号語、２８は符号化ビットストリーム、２９は減算器、３０は加算器、３１はテクスチャ符号化の際の条件の１つである変換係数予測判定情報、３２はテクスチャ符号化の際の条件のもう１つである量子化ステップサイズ、である。
【００１８】
図２は、図１に示す実施の形態１の可変長符号化部４の内部構成を示す図である。
同図において、４ａは形状データ可変長符号化部、４ｂは付加情報可変長符号化部、４ｃは変換係数可変長符号化部、４ｄは動きベクトル可変長符号化部、である。
【００１９】
次に、図１および図２をもとに、装置全体の動作について説明する。
尚、本装置は、入力ディジタル画像系列を、MPEG-4でいう画像オブジェクト、すなわち動きや絵柄などの特徴を同じくする部分領域に分離して、画像オブジェクトを単位として符号化する装置である。ただし、１フレームを１画像オブジェクトとして定義すれば、画像フレームを単位として符号化することもできる。画像オブジェクトとは、それを取り囲むような外接四角形内のカラー濃淡レベルを表すテクスチャデータと、外接四角形内の有効画素を表す形状データと、から構成される。テクスチャデータは、輝度信号成分および色差信号成分のペアから構成され、入力画像信号に相当するものである。形状データは、オブジェクトの内部を１、オブジェクトの外部を０とする２値のマトリクスデータである。
【００２０】
動作を説明すると、まず、入力形状データ１は、形状符号化部２に渡され、符号化、局所復号が行われ、それぞれ形状符号化データ３と、局所復号形状データ６として出力される。
形状符号化データ３は、可変長符号化部４で可変長符号化され、その後、多重化部５にて、符号化ビットストリーム２８に多重化される。
また、局所復号形状データ６は、有効画素のみを対象にして、テクスチャデータの符号化、動き補償等を行うために用いられるように、テクスチャ符号化部１６、テクスチャ局所復号部１８、動き補償部１２、動き検出部１０に送られる。
【００２１】
一方、入力テクスチャデータ７は、マクロブロックと呼ばれるブロック毎に切り出され、マクロブロック単位で以下の動作を行う。
つまり、まず、テクスチャデータ７を画像オブジェクト内で符号化するか、画像オブジェクト間で符号化するかをイントラ/インター判定部８にて決定する。  ここで、イントラ（画像オブジェクト内）符号化に決定した場合、イントラ/インター判定部８は、入力テクスチャデータ７をそのまま被符号化画像信号１５としてテクスチャ符号化部１６へ渡す。
【００２２】
その一方、インター（画像オブジェクト間）符号化に決定した場合、イントラ/インター判定部８は、動き補償予測を行うため、入力テクスチャデータ７を動き検出部１０に送る。
動き検出部１０では、メモリ２３に記憶された参照画像信号２２の所定の範囲内で入力テクスチャデータ７の輝度信号成分に最も類似する領域を探索し、入力テクスチャデータ７の画面内位置からその最も類似する領域の位置までの位置の変化を動きベクトル１１として、動き補償部１２および可変長符号化部４に出力する。
【００２３】
可変長符号化部４に出力された動きベクトル１１は、可変長符号化部４の動きベクトル可変長符号化部４ｄにより冗長度を削減された後、多重化部５により符号化ビットストリーム２８に多重化される。
【００２４】
また、動き補償部１２では、動き検出部１０から得られた動きベクトル１１に基づいて、メモリ２３に記憶された参照画像信号２２から予測画像信号１３を抽出する。すると、減算器２９は、この予測画像信号１３と、入力テクスチャデータ７との差分である予測誤差信号１４を、被符号化画像信号１５としてテクスチャ符号化部１６へ渡す。
【００２５】
なお、イントラ/インター判定部８にて選択されたイントラ/インターのモードは、切替部２１へ出力されると共に、モード指示フラグ９として、可変長符号化部４で可変長符号化され、続いて多重化部５に渡されて、符号化ビットストリーム２８に多重化される。
【００２６】
そして、テクスチャ符号化部１６では、被符号化画像信号１５を直交変換および量子化して、量子化変換係数データ１７として出力する。量子化変換係数データ１７は、可変長符号化部４の変換係数可変長符号化部４ｃによって、冗長度を削減されて可変長符号化された後、多重化部５によって、符号化ビットストリーム２８に多重化される。
【００２７】
また、テクスチャ符号化部１６から出力された量子化変換係数データ１７は、テクスチャ局所復号部１８にも送信され、テクスチャ局所復号部１８により、逆量子化および逆直交変換されて局所復号予測誤差信号１９となる。
この局所復号予測誤差信号１９は、モード指示フラグ９がインターモードを示している場合、切替部２１から動き補償部１２からの予測画像信号１３が出力されているので、加算器３０にて、その予測画像信号１３と加算されて、局所復号画像信号２０として出力される。
【００２８】
これに対し、モード指示フラグ９がイントラモードを示している場合には、切替部２１にて、０信号が選択されるので、加算部３０にて、局所復号予測誤差信号１９と予測画像信号１３との加算は行われず、そのまま局所復号画像信号２０として出力される。
なお、加算部３０から出力された局所復号画像信号２０は、次フレーム以降の動き補償予測の参照画像信号２２として用いられるため、メモリ２３に書き込まれる。
【００２９】
次に、本実施の形態１の最も重要な要素であるテクスチャ符号化部１６および変換係数可変長符号化部４ｃの構成および動作について説明する。
【００３０】
図３は、図１に示す実施の形態１のテクスチャ符号化部１６の内部構成図である。
同図において、１６ａはブロックデータ抽出部、１６ｂはブロックデータ、１６ｃはＤＣＴ部、１６ｄはＤＣＴ係数、１６ｅは量子化部、１６ｆは量子化変換係数、１６ｇは変換係数予測部，である。
【００３１】
次にテクスチャ符号化部１６内の動作を説明する。
テクスチャ符号化部１６では、まず、被符号化画像信号１５より、直交変換の一つである離散コサイン変換(以下、ＤＣＴ)を行う単位となるブロック、例えば、通常８画素×８画素のブロックを、ブロックデータ抽出部１６ａにて抽出する。
【００３２】
抽出されたブロックデータ１６ｂは、ＤＣＴ部１６ｃに入力され、ＤＣＴが行われる。ＤＣＴ部１６ｃから出力されたＤＣＴ係数１６ｄは、量子化部１６ｅにて、量子化ステップサイズに基づき量子化され、量子化変換係数１６ｆとして変換係数予測部１６ｇに出力される。
【００３３】
変換係数予測部１６ｇでは、変換係数予測を行う。変換係数予測は、周囲のブロックの量子化変換係数より、符号化対象ブロックの量子化変換係数の予測値を求め、量子化変換係数と予測値との差分値を算出する。この差分値が変換係数可変長符号化部４ｃ（図２参照）にて符号化される。
【００３４】
ここで、符号化対象のブロックの量子化変換係数が、周囲のブロックの量子化変換係数と相関がある場合には、周囲のブロックの量子化変換係数との差分をとることにより、差分量子化変換係数は、もとの量子化変換係数と比べて値のばらつきが小さくなる。例えば、量子化変換係数の値が０から２５５の範囲に同じ出現頻度で分布しているとする。このような量子化変換係数に対するエントロピーは、８ビットになり、各レベルの値に対応する符号語の符号長は、いずれのレベルに対しても、８ビットになる。
【００３５】
また、符号化対象のブロックの量子化変換係数が、近隣のブロックの量子化変換係数と強い相関をもち、特に、近隣のブロックの量子化変換係数の値と大きく変わらないときには、近隣のブロックの量子化変換係数との差分値である差分量子化変換係数の出現頻度は零近辺に多くなる。このような出現頻度に偏りのある信号のエントロピーは、もとの量子化変換係数のエントロピーよりも小さくなるため、出現頻度に応じた符号長の割り当てを行えば、差分量子化変換係数の平均符号長を８ビットよりも小さくすることができる。このように、変換係数予測を行い、差分量子化変換係数を符号化することにより、変換係数可変長符号化部にて符号化されるときに発生する符号量を少なくすることができる。
【００３６】
次に、変換係数予測部１６ｇの動作の一例を説明する。
図４は、変換係数予測部１６ｇによる変換係数予測の説明図である。
以下に述べる動作は、ISO/IEC JTC１/SC29/WG11 MPEG-4 Video VM8.0 に開示されているイントラＡＣ/ＤＣ予測に相当する。
変換係数予測は、特に値のばらつきが大きくなるイントラモードのＤＣ係数や、図４の斜線部に位置する低周波成分の量子化変換係数（以下、変換係数と略する）に対して行う。
【００３７】
変換係数の予測値は、図４に示すように符号化対象のブロックをＸとしたとき、ブロックＸの周囲のブロック、例えばブロックＢまたはブロックＣの変換係数を用いる。求められた変換係数予測値と、量子化変換係数との差分をとり、差分量子化変換係数を出力する。
ただし、周囲のブロックとの相関がなく、差分量子化変換係数がもとの量子化変換係数より大きくなる場合には、変換係数予測を行わず、もとの量子化変換係数を出力する。
【００３８】
変換係数予測部１６ｇは、このようにして求めた差分量子化変換係数、または量子化変換係数を量子化変換係数データ１７として出力する。量子化変換係数データ１７は、変換係数可変長符号化部４ｃにて可変長符号化される。
また、変換係数予測部１６ｇは、変換係数予測が行われたか否かを示す情報を変換係数予測判定情報３１として出力する。
【００３９】
次に、変換係数可変長符号化部４ｃの詳細な構成および動作について説明する。
図５は、図２に示す変換係数可変長符号化部４ｃの内部構成図、図６はその動作の様子を示すフローチャートである。
図５において、４ｃ１はＶＬＣテーブル記憶部、４ｃ２は切替部、４ｃ３はＤＣ係数データ符号化部、４ｃ４はＡＣ係数データ、４ｃ５はＤＣ係数符号語、４ｃ６はＶＬＣテーブルグループ選択部、４ｃ７はＶＬＣテーブルグループ情報、４ｃ８はＶＬＣテーブル選択部、４ｃ９はＶＬＣテーブル選択情報、４ｃ１０は領域データ符号化部、４ｃ１１はＡＣ係数符号語である。
【００４０】
このように構成された本実施の形態１の変換係数可変長符号化部４ｃは、ブロック内を複数の領域に分けて、領域毎に、その領域内の変換係数の統計的特性に基づいて、複数の可変長符号化テーブルを設定する。領域内の変換係数を符号化する際には、これらの設定された複数の可変長符号化テーブルの中から用いる可変長符号化テーブルを適応的に切り替える。なお、領域毎に複数の可変長符号化テーブルを設定する際には、領域の位置とその領域内の変換係数に対して、変換係数予測が行われたか否かに基づいて設定する。
【００４１】
以下、図５および図６をもとに動作の詳細な説明を行う。
(１)ＤＣ係数データ符号化
まず、切替部４ｃ２にて、モード指示フラグ９を判定し(ステップＳ１)、イントラモードを示す場合には、量子化変換係数データ１７をＤＣ係数データ符号化部４ｃ３に渡し、ＤＣ係数データの符号化を行い(ステップＳ２)、ＤＣ係数符号語４ｃ５を出力する。一方、インターモードの場合には、ＤＣ係数は存在しないため、ＤＣ係数データ符号化部４ｃ３への切替は行わない。
【００４２】
(２)ＡＣ係数データ符号化
つぎに、量子化変換係数データ１７のうちのＡＣ係数データ４ｃ４の符号化について説明する。ＡＣ係数データ４ｃ４の符号化は、ブロック内を複数の領域に分けて、領域毎に行う。ブロック毎にＤＣＴを行った場合、ブロック内の位置によって、変換係数の値の発生確率が異なるため、画像データの統計的特性に基づいて、ブロック内を複数の領域に分割する。
【００４３】
例えば、図７に示すように、ブロック内のＡＣ係数領域を４つの領域１〜４に分割する。領域１は、スキャン方向と平行な垂直方向の低周波成分を含む領域であり、領域２は、スキャン方向と垂直な水平方向の低周波成分を含む領域である。このため、領域１および領域２は高い値のＡＣ係数が発生しやすい。これに対し、領域３または領域４は、高周波成分を含む領域で、零や小さい値のＡＣ係数が発生しやすい。
【００４４】
領域１〜４内のＡＣ係数データの符号化は、各領域１〜４内のＡＣ係数データを低周波成分から高周波成分へ決められた順番でスキャンし、得られた複数の(RUN，LEVEL)データを可変長符号化（以下、ＶＬＣ(Variable Length Coding)と略する）する。
【００４５】
そこで、まず領域１〜４毎に決められた順番で領域１〜４内をスキャンして、(RUN，LEVEL)データを求める(ステップＳ３)。ここで、RUNはスキャンしたときに、連続する零の数であり、LEVELはそれに続く零でない係数の絶対値である。
【００４６】
例えば、領域２を、図７に示す矢印Ａの方向にスキャンした場合、スキャンされた一番最初の係数は−８であるので、最初の(RUN，LEVEL)は、(０，−８)になる。次に、０が１つ続いた後で、−１が続くので、次の(RUN，LEVEL)データは、(１，−１)になる。以上の処理を領域内で零でない係数が最後になるまで繰り返す。
【００４７】
スキャンして得られた(RUN，LEVEL)データは、領域毎にその領域内の(RUN，LEVEL)データの発生確率に基づいて設定されたＶＬＣテーブルにより、可変長符号化する。
ＶＬＣテーブルは、シンボルの発生確率に応じて、発生確率の高いシンボルには、短い符号長を、発生確率の低いシンボルには、長い符号長を割り当て、シンボルとそれに対応する符号語を対にしたテーブルである。
ＡＣ係数データの符号化の際に用いるＶＬＣテーブルのシンボルは、(RUN，LEVEL)データに相当する。(RUN，LEVEL)の発生確率は領域毎に異なるため、領域毎に異なるＶＬＣテーブルを設定することにより、ＡＣ係数データの符号量を削減することができる。
【００４８】
また、ＡＣ係数の値は、ＤＣＴ、量子化が行われたときの各種の符号化条件によっても異なる。例えば、周囲のマクロブロックのＡＣ係数との差分をとる変換係数予測が行われた場合には、ＡＣ係数の値は、変換係数予測を行わなかった場合より、小さい値になる。また、量子化の際の量子化ステップサイズの大きさによっても異なる。
従って、これらの条件も考慮して、ＶＬＣテーブルを設定することにより、さらにＡＣ係数データの符号量を削減することができる。
【００４９】
以上の観点から、本実施の形態１では、領域１〜４毎にその領域１〜４内の(RUN，LEVEL)データの統計的特性に応じて、ＶＬＣテーブルグループを選択し、選択されたＶＬＣテーブルグループの中で、各(RUN，LEVEL)データを符号化する際に用いるＶＬＣテーブルを切り替える。
【００５０】
以下に、各領域１〜４毎にＶＬＣテーブルを選択する方法について述べる。
(２.１)ＶＬＣテーブルグループ選択
(RUN，LEVEL)の出現確率は、領域１〜４毎、あるいは領域１〜４内のスキャンされた位置によって異なるため、領域１〜４毎に異なる複数のＶＬＣテーブルを設定する。
また、量子化変換係数データを求めた際の符号化条件によっても、出現確率は異なる。
このため、本実施の形態１では、テクスチャ符号化の際の条件として、テクスチャ符号化部１６の変換係数予測部１６ｇから得られる変換係数予測判定情報３１（図３参照）に基づいて、ＶＬＣテーブルグループを選択する。
【００５１】
まず、ブロック内の各領域を符号化するのに選択可能なＶＬＣテーブルの組合わせであるＶＬＣテーブルグループをＶＬＣテーブルグループ選択部４ｃ６にて選択する(ステップＳ４)。
例えば、図７のように分割した場合、領域１から領域４のそれぞれに対して、ＶＬＣテーブルグループを選択する。このとき、低周波成分から高周波成分へスキャンするときに、低周波成分ほど大きいLEVELのデータの出現確率が高く、高周波成分になるほど小さいLEVELあるいは零が多くなるという特性に基づき選択する。
ここでは、領域１〜４毎に、変換係数予測判定情報３１により、ＶＬＣテーブルグループを選択する方法を図８を参照して、説明する。
【００５２】
図８は、ＶＬＣテーブル記憶部４Ｃ１に記憶される１組の(RUN，LEVEL)とその出現確率に応じた符号長を割り当てた符号語を対にしたＶＬＣテーブルグループを示している。
(RUN，LEVEL)の出現確率は、変換係数予測が行われたか、否か、或いは領域１〜４内における変換係数がスキャンされた位置によって異なるため、図８に示すように、変換係数予測が行われたか否か、および領域１〜４毎に、それぞれの場合に対応したＶＬＣテーブルを複数持つＶＬＣテーブルグループが用意されている。
【００５３】
例えば、図８に示すように、領域１と領域２に対しては、変換係数予測が行われなかった場合、ＶＬＣテーブルグループ選択部４ｃ６は、変換係数予測判定情報３１、および(RUN，LEVEL)の出現確率に基づき、小さいLEVELのシンボルを含むＶＬＣテーブル１Ａ、高いLEVELのシンボルと、短いRUNのシンボルを含むＶＬＣテーブル２Ａ，３Ａ等を有するテーブルグループＴ１を選択して、選択したテーブルグループＴ１を示すＶＬＣテーブルグループ情報４ｃ７をＶＬＣテーブル選択部４ｃ８へ出力するようにする。
【００５４】
これに対し、変換係数予測が行われた場合には、係数のレベルのばらつきが小さくなる効果が得られるため、変換係数予測が行われなかった場合と比べて、高いLEVELを含むＶＬＣテーブルの必要度は小さい。
従って、ＶＬＣテーブルグループ選択部４ｃ６は、変換係数予測判定情報３１、および変換係数予測が行われた場合の(RUN，LEVEL)の出現確率に基づき、小さいLEVELのシンボルを含むＶＬＣテーブル１Ｂと、中間のLEVELで、短いRUNのシンボルを含むＶＬＣテーブル２Ｂ等を有するテーブルグループＴ２を選択して、選択したテーブルグループＴ２を示すＶＬＣテーブルグループ情報４ｃ７をＶＬＣテーブル選択部４ｃ８へ出力するようにする。
【００５５】
また、領域３と領域４に対しては、高いLEVELのシンボルの出現確率は小さいので、その代わり長いRUNのシンボルを含むＶＬＣテーブル４，５等を有するテーブルグループＴ３を選択して、選択したテーブルグループＴ３を示すＶＬＣテーブルグループ情報４ｃ７をＶＬＣテーブル選択部４ｃ８へ出力するようにする。
【００５６】
なお、ＶＬＣテーブルグループは、この実施の形態１に対応する復号側では、この実施の形態１の符号化側と同様に、ブロック内の領域１〜４毎に、変換係数予測判定情報３１に応じて選択されるため、付加情報としてＶＬＣテーブルグループ情報４ｃ７をビットストリーム２８に多重化する必要がない。
つまり、図１や図２等に示すように、変換係数予測判定情報３１は、変換係数予測を行うかどうかを判定するために、復号側へ送信されるビットストリーム２８に付加情報符号語２５の一つとして多重化されているので、これを利用すればよい。
従って、ＶＬＣテーブルグループ情報４ｃ７を復号側へビットストリーム２８に多重化する必要がないので、新たに符号量の増加させることなく、各領域毎に用いられるＶＬＣテーブルグループを選択することができることになる。
【００５７】
(２.２)領域データ符号化
次に、各領域１〜４内のＡＣ係数データ４ｃ４の可変長符号化について説明する。
ＡＣ係数データ４ｃ４は、各領域１〜４内を決められた順番でスキャンして得られた複数の(RUN，LEVEL)データの組合せで表されており、各領域の(RUN，LEVEL)データであるＡＣ係数データ４ｃ４は、ＶＬＣテーブル選択部４ｃ８および領域データ符号化部４ｃ１０に出力されている。
【００５８】
ＶＬＣテーブル選択部４ｃ８では、ＶＬＣテーブルグループ選択部４ｃ６からのＶＬＣテーブルグループ情報４ｃ７に基づいて、入力された(RUN，LEVEL)データであるＡＣ係数データ４ｃ４を可変長符号化するのに用いるＶＬＣテーブルを、ＶＬＣテーブルグループ選択部４ｃ６で選択されたＶＬＣテーブルグループの中から適応的に選択する(ステップＳ５)。選択されたＶＬＣテーブルを示すＶＬＣテーブル選択情報４ｃ９は、領域データ符号化部４ｃ１０に出力される。
なお、ＶＬＣテーブル選択の基準は、例えば、(RUN，LEVEL)データであるＡＣ係数データ４ｃ４のLEVELの大きさによって決定するようにする。
【００５９】
次に領域データ符号化部４ｃ１０の動作を述べる。
領域データ符号化部４ｃ１０は、ＶＬＣテーブル選択部４ｃ８から出力されたＶＬＣテーブル選択情報４ｃ９に基づいて、ＶＬＣテーブル記憶部４ｃ１に記憶されたＶＬＣテーブルを選択して、(RUN，LEVEL)データを可変長符号化する(ステップＳ６)。
【００６０】
可変長符号化は、例えば、まず、選択したＶＬＣテーブルの中から、(RUN，LEVEL)に対応する符号語を探す。対応する符号語が見つかった場合には、それをＡＣ係数符号語４ｃ１１として出力する。対応する符号語が見つからなかった場合には、エスケープコードと呼ばれる決められた固定長の符号語を出力する。エスケープコードが出力された場合には、RUN，LEVELをそれぞれ固定長符号化し、エスケープコードの後にRUN，LEVELそれぞれの固定長符号語を続けたものをＡＣ係数符号語４ｃ１１として出力する。
【００６１】
このようにして、領域内のすべての(RUN，LEVEL)データを符号化し終えるまでステップＳ５〜ステップＳ６の処理を繰り返す(ステップＳ７“Ｎｏ”)。
【００６２】
さらに、ある領域内のすべての(RUN，LEVEL)データを可変長符号化した場合には（ステップＳ７“Ｙｅｓ”）、ブロック内の他の領域１〜４すべての(RUN，LEVEL)データを可変長符号化したかを判断して（ステップＳ８）、ブロック内の他の領域１〜４すべての(RUN，LEVEL)データを可変長符号化していないと判断した場合には（ステップＳ８“Ｎｏ”）、ステップＳ３〜ステップＳ７までの処理を繰り返すようにする(ステップＳ８)。
【００６３】
これに対し、ブロック内の各領域１〜４すべての(RUN，LEVEL)データを可変長符号化したと判断した場合には（ステップＳ８“Ｙｅｓ”）、変換係数可変長符号化部４ｃは、可変長符号化の処理を終了して、ＤＣ係数符号語４ｃ５、ＡＣ係数符号語４ｃ１１を、ブロックデータ符号語２６として多重化部５に渡し、多重化部５が符号化ビットストリーム２８に多重化する。
【００６４】
ここで、この実施の形態１では、選択したＶＬＣテーブルグループの中からのＶＬＣテーブルの選択を、各(RUN，LEVEL)データのLEVELの値を用いて行なうようにしているので、この場合、復号側では、LEVELを復号する前にＶＬＣテーブルを選択する必要がある。このため、ＶＬＣテーブル選択情報４ｃ９を付加情報可変長符号化部４ｂへ送り符号化させて、ＶＬＣテーブル選択符号語とし、付加情報符号語２５の１つとしてビットストリーム２８に多重化するようにする。
【００６５】
ここで、ＶＬＣテーブル選択情報４ｃ９の符号化の方法としては、現在の(RUN，LEVEL)データと、次の(RUN，LEVEL)データとを符号化するのに用いるＶＬＣテーブル選択情報４ｃ９(NEXT)を組にして、可変長符号化する方法がある。このとき用いる可変長符号化テーブルは、１組の(NEXT，RUN，LEVEL)に対して、その出現確率に応じて符号長を定められた符号語を格納したテーブルになる。
【００６６】
この方法では、領域内で最初の(RUN，LEVEL)を符号化するのに用いるＶＬＣテーブル選択情報４ｃ９は、ＶＬＣテーブル初期切替情報として別に符号化しておく必要がある。２番目以降の(RUN，LEVEL)の符号化の際に用いるＶＬＣテーブル選択情報４ｃ９は、１つ前の(RUN，LEVEL)データと組にして符号化されることになる。また、領域内で零でないLEVELが最後のときは、NEXTは、それと組になっている(RUN，LEVEL)が領域内で最後の(RUN，LEVEL)であることを示す情報となる。
【００６７】
このように、複数のＶＬＣテーブルを切り替えて、各領域を符号化する際には、上述したように、ＶＬＣテーブル選択情報４ｃ９を、付加情報として符号化する必要がある。例えば、図８に示すように変換係数予測を行った場合と、行わなかった場合とで用いるＶＬＣテーブルグループを切り替える場合には、変換係数予測を行った場合に切り替えるＶＬＣテーブルの数は、テーブルグループＴ２のテーブル１Ｂ、２Ｂの２つであるから、ＶＬＣテーブル選択情報４ｃ９を固定長で符号化した場合に必要な符号長は、１ビットになる。
【００６８】
しかしながら、変換係数予測を行った場合と、行わなかった場合でＶＬＣテーブルグループを切り替えない場合には、５種類のＶＬＣテーブルの中から切り替える必要があり、ＶＬＣテーブル選択情報４ｃ９を固定長で符号化した場合に必要な符号長は、３ビットになる。
ＶＬＣテーブル選択情報４ｃ９を上述したように、(RUN，LEVEL)と組にして可変長符号化する場合にも、NEXTの種類が増えれば、NEXT，RUN，LEVELの組合せが多くなるため、各(NEXT，RUN，LEVEL)に対応する符号語の符号量も大きくなる。  本実施の形態１で述べたように、領域毎にその領域内の(RUN，LEVEL)データの統計的特性に応じて、ＶＬＣテーブルグループを選択し、選択されたＶＬＣテーブルグループの中で、各(RUN，LEVEL)データを符号化する際に用いるＶＬＣテーブルを切り替えることにより、ＶＬＣテーブル選択情報４ｃ９を符号化するのに必要な符号量を削減することができる。
【００６９】
以上説明したように、本実施の形態１では、ブロックを複数の領域に分けて、領域毎に、ブロック内での各領域の位置と変換係数予測判定情報に応じて、ＶＬＣテーブルグループを選択し、さらに、その選択されたＶＬＣテーブルグループの中からＶＬＣテーブルを選択して、変換係数を可変長符号化するようにしたため、より少ない符号量で変換係数を符号化することが可能となる。
【００７０】
また、本実施の形態１では、各領域の位置と、変換係数予測判定情報３１とにより、各領域内で切り替えるＶＬＣテーブルグループを予め用意しておくことにより、切り替えるＶＬＣテーブルの種類を符号化するのに必要な符号量を削減することができる。
【００７１】
実施の形態２．
本実施の形態２は、変換係数可変長符号化部４ｃの構成を変えたことを特徴とするものである。このため、この実施の形態２の変換係数可変長符号化部４ｃの構成および動作を中心に説明する。
【００７２】
図９は、本実施の形態２における変換係数可変長符号化部４ｃの内部構成図である。同図において、３２は、図３に示すテクスチャ符号化部１６の量子化部１６ｅから出力される量子化の際の量子化ステップサイズである。
【００７３】
つまり、本実施の形態２における変換係数可変長符号化部４ｃでは、テクスチャ符号化の際の条件としてＶＬＣテーブルグループ選択部４ｃ６へ入力する変換係数予測判定情報３１の代わりに、量子化ステップサイズ３２を入力させるようにしたことが特徴であり、その他の動作は実施の形態１における変換係数可変長符号化部４ｃと同じである。
【００７４】
次に、本実施の形態２におけるＶＬＣテーブルグループ選択部４ｃ６の動作について述べる。
【００７５】
ＶＬＣテーブルグループ選択部４ｃ６では、ＶＬＣテーブルグループ選択部４ｃ６が予め認識している領域のブロック内での位置と、外部からテクスチャ符号化の際の条件として入力する量子化ステップサイズ３２とに基づいて、ブロック内の各領域を符号化するのに選択可能なＶＬＣテーブルグループを選択する。
【００７６】
例えば、大きい量子化ステップサイズ３２で量子化された領域は、小さいLEVELまたは零が多くなり、大きいLEVELのデータの出現確率は小さくなる。このように量子化ステップサイズ３２に応じて、(RUN，LEVEL)データの出現確率が異なるため、ＶＬＣテーブルグループ選択部４ｃ６は、量子化ステップサイズ３２に応じて、ＶＬＣテーブルグループを選択する。
【００７７】
なお、量子化ステップサイズ３２は、図１や図２に示すように、復号側で逆量子化を行う際の情報として、可変長符号化部４の付加情報可変長符号化部４ｂにより可変長符号化された後、付加情報符号後２５の１つとして多重化部５によりビットストリーム２８に多重化されているので、復号側では、これを利用して復号時に用いる可変長復号テーブルグループを符号化側と同様に選択することができる。
【００７８】
このため、この実施の形態２では、上記実施の形態１の場合と同様に、ＶＬＣテーブルグループを選択することによる新たな付加情報をビットストリーム２８に多重化する必要はない。ただし、実施の形態１の場合と同様に、選択したＶＬＣテーブルグループの中からのＶＬＣテーブルの選択を、各(RUN，LEVEL)データのLEVELの値を用いて行なうようにした場合、復号側では、LEVELを復号する前にＶＬＣテーブルを選択する必要があるため、ＶＬＣテーブル選択情報４ｃ９を付加情報可変長符号化部４ｂへ送り符号化させて、ＶＬＣテーブル選択符号語とし、付加情報符号語２５の１つとしてビットストリーム２８に多重化するようにする。
【００７９】
従って、本実施の形態２によれば、ブロックを複数の領域に分けて、領域毎に、ブロック内での領域の位置と、量子化ステップサイズとに応じて、ＶＬＣテーブルグループを選択し、さらにその選択されたＶＬＣテーブルグループの中からＶＬＣテーブルを選択して、各領域内のＡＣ係数データを可変長符号化するようにしたので、より少ない符号量で変換係数を符号化することができ、圧縮効率を高める効果が得られる。
【００８０】
また、本実施の形態２では、ＶＬＣテーブルグループ選択時に、量子化ステップサイズ３２を用いたが、実施の形態１で述べた変換係数予測判定情報３１と、量子化ステップサイズ３２との両方を用いて、ＶＬＣテーブルグループを選択するようにしてもよい。
【００８１】
実施の形態３．
本実施の形態３では、ＶＬＣテーブルグループ選択部にて選択されたＶＬＣテーブルグループの中から、領域内の各(RUN，LEVEL)データを符号化するのに用いるＶＬＣテーブルの選択を、領域内で低周波成分から高周波成分に向かうほど零または小さい値のLEVELの出現確率が高くなるといったLEVELの値の統計的特性に基づいて行うようにしたことを特徴とするものである。
【００８２】
例えば、低周波成分では、大きい値のレベルが発生しやすいため、符号化すべき(RUN，LEVEL)データが低周波成分でスキャンされたデータである場合には、大きい値のLEVELを含むＶＬＣテーブルを選択する。
【００８３】
これに対し、高周波成分でスキャンされたデータである場合には、小さい値のレベルと長いRUNのデータを含み、それらに短い符号長を割り当てたＶＬＣテーブルを選択する。
以下、領域内のスキャンされた位置に基づきＶＬＣテーブルの選択を行うＶＬＣテーブル選択部を含む変換係数可変長符号化部４ｃについて説明する。
【００８４】
図１０は、本実施の形態３における変換係数可変長符号化部４ｃの内部構成を示す。
【００８５】
切替部４ｃ２、ＤＣ係数データ符号化部４ｃ３、ＶＬＣテーブルグループ選択部４ｃ６の動作については、実施の形態１または実施の形態２と同様であり、異なるのは、ＶＬＣテーブル選択部４ｃ８の動作だけである。
【００８６】
つまり、ＶＬＣテーブルグループ選択部４ｃ６は、実施の形態１，２と同様に、ブロック内の各領域毎に、量子化ステップサイズ３２または変換係数予測判定情報３１等のテクスチャ符号化時の符号化条件に基づいて、選択可能なＶＬＣテーブルグループを選択し、ＶＬＣテーブルグループ選択情報４ｃ７として、ＶＬＣテーブル選択部４ｃ８へ出力する。
【００８７】
ＶＬＣテーブル選択部４ｃ８では、ＶＬＣテーブルグループ選択部４ｃ６で選択されたＶＬＣテーブルグループの中から、(RUN，LEVEL)データであるＡＣ係数データ４ｃ４を符号化するのに用いるＶＬＣテーブルを選択する。
【００８８】
ここで、(RUN，LEVEL)の出現確率は、領域内のスキャンされた位置によって異なる。同一領域内でも低周波成分から高周波成分に向かうほど、零または小さい値のLEVELが多くなる。つまり、LEVELがスキャンされた位置により、LEVELの値の出現確率は異なる。
【００８９】
そこで、この実施の形態３のＶＬＣテーブル選択部４ｃ８では、上記実施の形態１，２の場合とは異なり、ＡＣ係数データ４ｃ４である(RUN，LEVEL)データを入力することなく、領域内のスキャンの位置に応じてＶＬＣテーブルの選択を行なうようにする。つまり、各領域１〜４内をさらに複数の領域に分割して、符号化対象の(RUN，LEVEL)データがどの領域でスキャンされたかによってＶＬＣテーブルを選択するようにする。
【００９０】
なお、(RUN，LEVEL)データは、各領域１〜４内で予め決められた順番でスキャンされた順に符号化されているので、復号側では、復号対象の(RUN，LEVEL)のスキャン位置を、すでに復号された(RUN，LEVEL)をもとに符号化側のスキャン位置と一致させることができる。このため、復号側ではこのスキャン位置に基づいて復号時に用いる可変長復号テーブルを選択することができるため、本実施の形態３の符号化側では、ＶＬＣテーブル選択情報４ｃ９を付加情報としてビットストリームに多重化する必要がない。
【００９１】
その結果、上記実施の形態１，２では、符号化ビットストリーム２８にＶＬＣテーブル選択情報４ｃ９を多重化する必要があったが、本実施の形態３では、ＶＬＣテーブル選択情報４ｃ９をビットストリーム２８に多重化する必要がないため、実施の形態１，２の場合よりも、符号化ビットストリーム２８の符号量を削減できることになる。
【００９２】
そして、ＶＬＣテーブル選択部４ｃ８から領域データ符号化部４ｃ１０へＶＬＣテーブル選択情報４ｃ９が出力された後は、上記実施の形態１，２と同様で、領域データ符号化部４ｃ１０がＶＬＣテーブル選択部４ｃ８から出力されたＶＬＣテーブル選択情報４ｃ９に基づきＶＬＣテーブルを切り替え選択して、ＡＣ係数データ４ｃ４である(RUN，LEVEL)データを可変長符号化する。
領域データ符号化部４ｃ１０の動作は、実施の形態１，２と同様であり、以上の動作を領域内のすべての(RUN，LEVEL)データを符号化するまで繰り返す。
【００９３】
従って、本実施の形態３では、領域内のスキャン位置に応じて、ＶＬＣテーブルを選択するようにしたため、付加情報として、ＶＬＣテーブル選択情報４ｃ９をビットストリームに多重化する必要がなくなり、ＶＬＣテーブルの切り替えに必要な付加情報の符号量を削減できるという効果が得られる。
【００９４】
実施の形態４．
本実施の形態４では、変換係数可変長符号化部４ｃの構成を変えたことを特徴とするものである。
【００９５】
図１１に、本実施の形態４における変換係数可変長符号化部４ｃの内部構成図を示す。
同図において、４ｃ１２は領域データ有効／無効判定部、４ｃ１３は領域有効／無効情報、４ｃ１４は領域有効／無効情報符号化部、４ｃ１５は領域有効／無効情報符号語、である。
【００９６】
次に動作を説明するが、図１１において、動作が異なるのは、領域データ有効／無効判定部４ｃ１２と、領域有効／無効情報符号化部４ｃ１４であり、その他の構成及び動作は実施の形態１または実施の形態２と全く同じである。
よって、以下では、領域データ有効／無効判定部４ｃ１２の動作とそれに対応する領域有効／無効情報符号化部４ｃ１４の動作について説明する。
【００９７】
まず、本実施の形態４の変換係数可変長符号化部４ｃでは、領域データ有効／無効判定部４ｃ１２が、領域毎に領域内のＡＣ係数がすべて零であるか、否かを判定し、その判定結果を領域有効／無効情報４ｃ１３として出力する。領域有効／無効情報符号化部４ｃ１４は、その領域有効／無効情報４ｃ１３を符号化して、領域有効／無効情報符号語４ｃ１５として出力する。領域有効／無効情報４ｃ１３の符号化方法としては、例えば、ブロック内のすべての領域に関する領域有効／無効情報をまとめて可変長符号化すればよい。
【００９８】
なお、領域内のＡＣ係数データ４ｃ４がすべて零であった場合には、その領域は無効領域として、領域内のＡＣ係数データ４ｃ４の符号化は行わずに、次の領域の符号化へスキップする。従って、領域内のＡＣ係数データ４ｃ４がすべて零であった場合には、領域有効／無効情報４ｃ１３のみを符号化すればよく、ＡＣ係数データ４ｃ４の符号量を削減することができる。
【００９９】
なお、実施の形態１，２で述べた変換係数可変長符号化部４ｃの場合、各(RUN，LEVEL)データを符号化するのに用いるＶＬＣテーブルを示すＶＬＣテーブル選択情報４ｃ９を、付加情報可変長符号化部４ｂで符号化するようにしていた。
【０１００】
このため、この実施の形態４では、領域有効／無効情報４ｃ１３を、各領域１〜４内の最初の(RUN，LEVEL)データを符号化するのに用いたＶＬＣテーブルを示す最初のＶＬＣテーブル選択情報４ｃ９等に符号化するようにしてもよい。
例えば、付加情報可変長符号化部４ｂは、最初のＶＬＣテーブル選択情報４ｃ９は、領域内のＡＣ係数がすべて零でその領域の符号化を行わない場合には、“０”とし、ｎ種類のＶＬＣテーブルを切り替えて符号化したときのＶＬＣテーブルを示す情報を、“１”〜“ｎ”とすれば、ＶＬＣテーブル選択情報４ｃ９により領域有効／無効情報４ｃ１３を代用することができる。このようにすれば、領域有効／無効情報符号化部４ｃ１４自体が不要になる。
【０１０１】
次に、図４に示す本実施の形態４で述べた可変長符号化部４ｃを、MPEG-4におけるマクロブロックデータの符号化に適用した場合に得られる従来と比較して有利な効果、すなわち従来であれば符号化モードによって異なるビットストリームの構造を共通にすることができ、復号装置においてシンタックス解析のための回路を簡単にすることができるという効果について説明する。
【０１０２】
図１２に、従来のMPEG-4におけるマクロブロックデータを符号化した際の符号化ビットストリームの構造を示す。
従来、MPEG-4では、各ＶＯＰに対して、イントラ/インター符号化(I-VOP/P-VOP)を行う場合と、両方向予測符号化(B-VOP)を行う場合とで、異なるビットストリームの構造をもつ。イントラ符号化とは、ＶＯＰ内の情報のみを用いて符号化を行うモードである。インター符号化とは、１つ等前のＶＯＰを用いて動き補償予測を行うモードである。また、両方向予測符号化とは、１つ等前と後とのＶＯＰを用いて、動き補償予測を行うモードである。
【０１０３】
図１２(a)は、従来のI-VOP/P-VOPのときのビットストリームＢ１の構造である。
図において、形状属性情報Ｄ１は、形状データの動きベクトル等の形状の属性情報である。
有効マクロブロック情報Ｄ２は、マクロブロックの有効/無効を示す情報で、マクロブロックの変換係数データがすべて零で、動きベクトルが零の場合には、そのマクロブロックは無効マクロブロックとなり、以降の情報はビットストリームに多重化されない。
有効色差ブロック情報・マクロブロックタイプＤ３は、有効色差ブロック情報と、マクロブロックタイプとを組にした情報で、有効色差ブロック情報は、マクロブロック内の色差ブロックの有効／無効を示す。色差ブロック内の変換係数データがすべて零の場合には、その色差ブロックは無効となる。
ＡＣ予測指示情報Ｄ４は、マクロブロック内のＡＣ係数に対して、変換係数予測が行われたか否かを示す情報で、変換係数予測判定情報３１と同じである。
有効輝度ブロック情報Ｄ５は、マクロブロック内の輝度ブロックの有効/無効を示す。輝度ブロック内の変換係数データがすべて零の場合には、その輝度ブロックは無効となる。
差分量子化ステップサイズＤ６は、１つ前のマクロブロックデータとの量子化ステップサイズが異なる場合に、１つ前のマクロブロックデータの量子化ステップサイズとの差分を表す。
インタレース情報Ｄ７は、インタレース画像の場合に必要な情報である。
動きデータＤ８は、動き補償が行われたときに存在する動きに関するデータである。
形状データＤ９は、任意形状のＶＯＰを符号化する際に必要な情報である。
ブロックデータＤ１０は、有効色差ブロック情報または有効輝度ブロック情報Ｄ５により有効ブロックであることが示唆された場合にのみ存在する。
【０１０４】
図１２（ｂ）は、従来のB-VOPのときのビットストリームＢ２の構造である。  マクロブロックタイプＤ１０と、有効ブロック情報Ｄ１２の多重化方法のみが異なる。
具体的には、図１２（ａ）に示すI-VOP/P-VOPの場合には、有効ブロック情報について、色差ブロックと、輝度ブロックとについて、別々に多重化し、色差ブロックの有効情報については、マクロブロックタイプと組にして、有効色差ブロック情報・マクロブロックタイプＤ３として可変長符号化している。輝度ブロック情報は、４つの輝度ブロックの有効/無効情報を組にして、有効輝度ブロック情報Ｄ５として可変長符号化している。
【０１０５】
これに対し、図１２（ｂ）に示すB-VOPの場合には、マクロブロックタイプＤ１１と有効色差ブロック情報を別々に多重化し、かつ、輝度ブロック、色差ブロックそれぞれの有効/無効を示す情報を有効ブロック情報Ｄ１２として固定長符号化している。
【０１０６】
このように、従来のI-VOP/P-VOPと、B-VOPとでは、ブロック内の量子化変換係数(ＡＣ係数)が領域内ですべて零か否かを示す有効ブロック情報の多重化方法が異なり、ビットストリームの構造が異なっている。
【０１０７】
しかし、本実施の形態４で述べた可変長符号化部４ｃによれば、ブロック内の各領域毎に、領域データ有効／無効判定部４ｃ１２が量子化変換係数のＡＣ係数が零か否かを判定し、領域有効／無効情報符号化部４ｃ１４がその領域有効／無効情報４ｃ１３を符号化して領域有効／無効情報符号化部４ｃ１４としてビットストリーム２８に多重化するため、ブロック毎にブロック内での量子化変換係数ＡＣ係数が零か否かを判定して、それを有効ブロック情報として、ビットストリーム２８に多重化する必要はない。
【０１０８】
図１３は、この実施の形態４の可変長符号化部４ｃを、MPEG-4におけるマクロブロックデータの符号化に適用した場合に得られるビットストリームＢ３を示している。
有効ブロック情報をビットストリームＤ３に多重化しないため、I-VOP，P-VOP，B-VOPいずれの符号化モードの場合にも、図１３に示すビットストリームＢ３の共通の構造になる。
なお、本実施の形態４の場合、ブロックデータＤ１０の各領域のＡＣ係数データＤ１３毎に、領域有効／無効情報Ｄ１４が設定されることになる。
【０１０９】
以上のように、本実施の形態４で述べた可変長符号化手段をMPEG-4におけるマクロブロックデータの符号化に適用した場合には、イントラ、インター、両方向予測の符号化モードに関わらず、図１３に示すような共通のビットストリームＤ３の構造になる。
【０１１０】
従って、本実施の形態４の動画像符号化装置によれば、復号側では、ビットストリームの構造であるシンタックスを解析する手段を符号化モードに関わらず共通化できるため、復号装置において、シンタックス解析のための回路構成が簡単になるという効果が得られる。
【０１１１】
実施の形態５．
本実施の形態５は、変換係数可変長符号化部４ｃの領域データ符号化部４ｃ１０の構成を特徴とするものである。
【０１１２】
図１４は、本実施の形態における変換係数可変長符号化部４ｃの領域データ符号化部４ｃ１０の詳細な内部構成図である。同図において、４ｃ１０１はＶＬＣテーブル探索部、４ｃ１０２はエスケープコード、４ｃ１０３は変換係数変換部、４ｃ１０４は変換ＡＣ係数データ、４ｃ１０５は変換フラグ、４ｃ１０６は変換係数固定長復号部、である。
【０１１３】
次に動作を説明する。ＶＬＣテーブル探索部４ｃ１０１は、入力された変換係数データであるＡＣ係数データ(RUN，LEVEL)４ｃ４に対応する符号語を、ＶＬＣテーブル記憶部４ｃ１のＶＬＣテーブル内で探索する。ＡＣ係数データ(RUN，LEVEL)４ｃ４に対応する符号語が、ＶＬＣテーブル内に見つかった場合には、上記実施の形態１〜４と同様に、その符号語をＡＣ係数符号語４ｃ１１として出力する。
【０１１４】
ここでは、本実施の形態５の特徴である、ＶＬＣテーブルに見つからなかった場合の動作について詳細に説明する。
まず、ＶＬＣテーブル探索部４ｃ１０１は、入力されたＡＣ係数データ４ｃ４に対応する符号語がＶＬＣテーブルになかった場合、エスケープコード４ｃ１０２と呼ばれる固定長の符号語、およびＡＣ係数データ４ｃ４を変換係数変換部４ｃ１０３へ出力する。
【０１１５】
変換係数変換部４ｃ１０３では、ＡＣ係数データ４ｃ４のRUNまたはLEVELの値を変換する。
第１の変換は、ＡＣ係数データ４ｃ４のRUNまたはLEVELの値のうち、LEVELに対して行う。変換されたLEVEL*は、ＶＬＣテーブルに含まれているＡＣ係数データのLEVELの最大値(LMAX)を引くことによって得られる。具体的には、次の式１に示す。
【０１１６】
LEVEL*＝sign(LEVEL)×[abs(LEVEL−LMAX)]      ・・・（式１）
ただし、sign(LEVEL)は、LEVELが０以上ならば１、それ以外は−１である。また、abs(LEVEL)は、LEVELの絶対値である。
【０１１７】
そして、ＶＬＣテーブル探索部４ｃ１０１は、変換ＡＣ係数データ４ｃ１０４(RUN,LEVEL*)を用いて、再び、ＶＬＣテーブルを探索する。ここで、変換ＡＣ係数データ４ｃ１０４(RUN,LEVEL*)に対応する符号語がＶＬＣテーブルに見つかった場合には、エスケープコードの後に、LEVELの値が変換されたことを示すコードと、ＶＬＣテーブルより検出された符号語とを付けて、ＡＣ係数符号語４ｃ１１として出力する。
【０１１８】
これに対し、第１の変換が行われた変換ＡＣ係数データ４ｃ１０４(RUN,LEVEL*)に対応する符号語がＶＬＣテーブルに見つからなかった場合、変換係数変換部４ｃ１０３は、第２の変換を行なう。
第２の変換は、RUNに対して行う。変換されたRUN*は、ＶＬＣテーブルに含まれているＡＣ係数データのRUNの最大値(RMAX)+１を引くことによって得られる。具体的には、次の式２に示す。
【０１１９】
RUN*＝RUN−(RMAX+１)      ・・・（式２）
【０１２０】
そして、ＶＬＣテーブル探索部４ｃ１０１は、新たな変換ＡＣ係数データ４ｃ１０５(RUN*，LEVEL*)を用いて再びＶＬＣテーブルを探索する。ここで、この新たな変換ＡＣ係数データ４ｃ１０５(RUN*，LEVEL*)に対応する符号語がＶＬＣテーブルに見つかった場合には、エスケープコードの後に、RUNの値が変換されたことを示すコードと、ＶＬＣテーブルより検出された符号語とを付けて、ＡＣ係数符号語４ｃ１１として出力する。
【０１２１】
これに対し、第２の変換が行われた変換ＡＣ係数データ４ｃ１０５(RUN*，LEVEL*)に対応する符号語がＶＬＣテーブルに見つからなかった場合には、RUN，LEVELをそれぞれ固定長符号化し、エスケープコードの後に、ＡＣ係数データが固定長符号化されたことを示すコードとＡＣ係数データの固定長符号語を付けて、ＡＣ係数符号語４ｃ１１として出力する。
【０１２２】
なお、実施の形態１で述べたように、(RUN，LEVEL)と、次の(RUN，LEVEL)を符号化するのに用いるＶＬＣテーブル選択情報４ｃ９（NEXT）を組にして、可変長符号化する場合にも同様の処理を行うことができる。
【０１２３】
従って、本実施の形態５によれば、ＡＣ係数データの可変長符号化を行う際に、符号化するＡＣ係数データに対応するデータがＶＬＣテーブルになかった場合、ＡＣ係数データを変換し、変換したＡＣ係数データをもとに再びＶＬＣテーブルを探索し、可変長符号化するようにしたので、より圧縮効率を高める効果が得られる。
【０１２４】
実施の形態６．
本実施の形態６では、実施の形態１または実施の形態２で述べた動画像符号化装置によって生成される符号化ビットストリームを復号する動画像復号装置について説明する。
【０１２５】
図１５は、本実施の形態６における動画像復号装置の構成を示すブロック図である。
同図において、１０１は符号化ビットストリーム、１０２はシンタックス解析部、１０３は形状データ符号語、１０４はブロックデータ符号語、１０５は付加情報符号語、１０６は動きベクトル符号語、１０７は可変長復号部、１０８は形状符号化データ、１０９は量子化変換係数データ、１１０は付加情報、１１１は動きベクトル、１１２は形状復号部、１１３はテクスチャ復号部、１１４は動き補償部、１１５は復号形状データ、１１６は復号予測誤差信号、１１７はメモリ、１１８は参照画像、１１９は被復号マクロブロック画面内位置情報、１２０は予測画像、１２１は復号加算部、１２２は復号画像、１２３は切替部、である。なお、１１０ａは付加情報１１０中に含まれるモード指示フラグである。
【０１２６】
図１６は、図１５の可変長復号部１０７の内部構成を示す図である。
同図において、１０７ａは形状データ可変長復号部、１０７ｂは変換係数可変長復号部、１０７ｃは付加情報可変長復号部、１０７ｄは動きベクトル可変長復号部、である。なお、１１０ｂは、付加情報１１０中に含まれる符号化側の変換係数予測判定情報３１または量子化ステップサイズ３２であるテクスチャ符号化の際の符号化条件である。
【０１２７】
次に、図１５および図１６をもとに装置全体の動作について説明する。
まず、符号化ビットストリーム１０１は、シンタックス解析部１０２において、形状データ符号語１０３、ブロックデータ符号語１０４、付加情報符号語１０５、動きベクトル符号語１０６に分離され、それぞれ、形状データ可変長復号部１０７ａ、変換係数可変長復号部１０７ｂ、付加情報可変長復号部１０７ｃ、動きベクトル可変長復号部１０７ｄにて、可変長復号されたのち、形状符号化データ１０８は形状復号部１１２に、量子化変換係数データ１０９および各種の付加情報１１０はテクスチャ復号部１１３に、動きベクトル１１１は動き補償部１１４に送られる。なお、動き補償部１１４には、可変長復号部１０７から被復号マクロブロック画面内位置情報１１９に入力している。
【０１２８】
形状復号部１１２は、形状符号化データ１０８を復号し、復号形状データ１１５として出力する。復号形状データ１１５は、テクスチャ復号部１１３、動き補償部１１４において、有効画素のみを対象にして、テクスチャデータの復号や、動き補償を行うために用いられる。
【０１２９】
テクスチャ復号部１１３は、量子化変換係数データ１０９を付加情報１１０に含まれる量子化ステップサイズを用いて逆量子化後、逆直交変換して、復号予測誤差信号１１６を得る。復号予測誤差信号１１６は、復号加算部１２１に送られる。
【０１３０】
動き補償部１１４は、被復号マクロブロック画面内位置情報１１９と、符号化ビットストリーム１０１から復号した動きベクトル１１１とに従って、メモリ１１７中の参照画像１１８から予測画像１２０を取り出して、切替部１２３へ出力する。
【０１３１】
切替部１２３は、復号された付加情報１１０に含まれる符号化側における符号化モードを示すモード指示フラグ１１０ａに基づいて、イントラ符号化を示している場合には、復号画像の生成に予測画像１２０が不要なので、出力０の側へ切り替える一方、インター符号化の場合には、復号画像の生成に予測画像１２０が必要なので、予測画像１２０の出力側へ切り替えるようにする。
【０１３２】
復号加算部１２１は、付加情報１１０に含まれるモード指示フラグ１１０ａに基づいて、イントラ符号化ブロックの場合には、テクスチャ復号部１１３の出力である復号予測誤差信号１１６をそのまま復号画像１２２として出力する一方、インター符号化ブロックの場合には、テクスチャ復号部１１３の出力出力である復号予測誤差信号１１６に予測画像１２０を加算して復号画像１２２として出力する。なお、復号画像１２２は、以降のＶＯＰの復号処理において参照画像１１８として用いるために、メモリ１１７に書き込まれる。
【０１３３】
次に、本実施の形態６の最も重要な要素である変換係数可変長復号部１０７ｂおよびテクスチャ復号部１１３の動作について説明する。
【０１３４】
図１７は、図１６の変換係数可変長復号部１０７ｂの内部構成図である。
図１７において、１０７ｂ１は切替部、１０７ｂ２はＤＣ係数データ復号部、１０７ｂ３は復号ＤＣ係数、１０７ｂ４はＡＣ係数データ符号語、１０７ｂ５はＶＬＤ（Variable  Length  decoding；可変長復号化）テーブル記憶部、１０７ｂ６はＶＬＤテーブルグループ選択部、１０７ｂ７はＶＬＤテーブルグループ情報、１０７ｂ８は領域データ復号部、１０７ｂ９はＶＬＣテーブル選択情報、１０７ｂ１０はＶＬＤテーブル選択部、１０７ｂ１１はＶＬＤテーブル、１０７ｂ１２は復号ＡＣ係数、である。
尚、ＶＬＤテーブル記憶部１０７ｂ５には、符号化側の例えばＶＬＣテーブル記憶部４Ｃ１（図５等参照。）のＶＬＣテーブルグループおよびＶＬＣテーブルと対応して、同じ内容のＶＬＤテーブルグループおよびＶＬＤテーブルが記憶されている。
【０１３５】
図１８は、変換係数可変長復号部１０７ｂの動作を示すフローチャートである。
切替部１０７ｂ１は、付加情報１１０に含まれるモード指示フラグ１１０ａに基づいて、復号対象の符号化ブロックの符号化モードがイントラ符号化であるか、あるいはインター符号化であるかを判定し(ステップＳ１０１)、イントラ符号化ブロックの場合には(ステップＳ１０１“イントラ”)、ブロックデータ符号語１０４をＤＣ係数データ復号部１０７ｂ２に渡し、ブロックデータ符号語１０４に含まれるＤＣ係数データの復号を行わせ(ステップＳ１０２)、復号ＤＣ係数１０７ｂ３として出力させ、次にＡＣ係数データの復号を行う。
【０１３６】
一方、インターモードの場合には(ステップＳ１０１“インター”)、ステップＳ１０２のＤＣ係数データの復号処理は行わないので、ＡＣ係数データの復号のみを行う。ＡＣ係数データは、ブロック内を複数の領域に分けた領域毎に符号化されているので、復号の際も領域毎に行うようにする。
【０１３７】
つまり、まず、領域毎にその領域内のＡＣ係数データを復号するのに用いる可変長復号（以下、ＶＬＤ(Variable Length Decoding)と略する）テーブルグループを選択する(ステップＳ１０３)。
ＶＬＤテーブルグループの選択は、ＶＬＤテーブルグループ選択部１０７ｂ６が行い、領域のブロック内での位置と、符号化側の変換係数可変長符号化部４ｃにおいて使用した変換係数予測判定情報３１または量子化ステップサイズ３２のテクスチャ符号化の際の符号化条件１１０ｂに基づいて行う。
【０１３８】
変換係数予測判定情報３１あるいは量子化ステップサイズ３２は、テクスチャの復号時に必要なため、付加情報としてブロック毎にビットストリーム１０１に多重化されているので、これを復号して使用すればよい。ＶＬＤテーブルグループ選択部１０７ｂ６の動作は、実施の形態１または実施の形態２で述べたＶＬＣテーブルグループ選択部４ｃ６の動作と同じである。
【０１３９】
また、符号化側では、領域内を決められた順番でスキャンして得られた(RUN，LEVEL)データを可変長符号化することによりＡＣ係数データの符号化を行っている。このとき、各(RUN，LEVEL)データを符号化するのに用いる可変長符号化テーブルをＶＬＣテーブルグループ選択部４ｃ６で選択されたＶＬＣテーブルグループの中から選択している。実施の形態１または実施の形態２で述べた変換係数可変長符号化部４ｃでは、各(RUN，LEVEL)データを符号化するのに用いたＶＬＣテーブルの種類をＶＬＣテーブル選択情報４ｃ９として符号化している。
【０１４０】
そこで、本実施の形態６で述べる変換係数可変長復号部１０７ｂにおいては、領域データ復号部１０７ｂ８が、ブロックデータ符号語１０４に含まれる各(RUN，LEVEL)データを符号化するのに用いたＶＬＣテーブル選択情報１０７ｂ９を復号し、このＶＬＣテーブル選択情報１０７ｂ９をＶＬＤテーブル選択部１０７ｂ１０へ出力する。
【０１４１】
ＶＬＤテーブル選択部１０７ｂ１０では、そのＶＬＣテーブルグループ情報１０７ｂ９に基づいて、ＶＬＤテーブル記憶部１０７ｂ５から(RUN，LEVEL)データを復号するのに用いるＶＬＤテーブル１０７ｂ１１を選択して、領域データ復号部１０７ｂ８へ出力する(ステップＳ１０４)。
【０１４２】
領域データ復号部１０７ｂ８では、ＶＬＤテーブル選択部１０７ｂ１０からのＶＬＤテーブル１０７ｂ１１を用いて、領域内の(RUN，LEVEL)データを復号する。
【０１４３】
具体的には、まず、ブロックデータ符号語１０４に含まれるＡＣ係数データ符号語１０７ｂ４を、そのＶＬＤテーブル１０７ｂ１１内で探索し、対応する(RUN，LEVEL)データが見つかった場合には、これを復号ＡＣ係数データ１０７ｂ１２として出力する。
【０１４４】
これに対し、対応する(RUN，LEVEL)データが見つからず、エスケープコードが検出された場合には、次に続くRUN，LEVELの固定長符号語であるＡＣ係数データ符号語１０７ｂ４をそれぞれ固定長復号して、(RUN，LEVEL)データを得ることができるので、これを復号ＡＣ係数データ１０７ｂ１２として出力する。以上のステップＳ１０４〜S１０５の処理を領域内ですべての(RUN，LEVEL)データを復号するまで繰り返す(ステップＳ１０６“Ｎｏ”)。
【０１４５】
そして、ある領域内のすべての(RUN，LEVEL)データの復号が終了した場合には（ステップＳ１０６“Ｙｅｓ”）、ブロック内のすべての領域に対して、ステップＳ１０３〜ステップＳ１０６の処理を行ったか否かを判断し(ステップＳ１０７)、行っていない場合には（ステップＳ１０７“Ｎｏ”）、ステップＳ１０３〜ステップＳ１０６の処理を行なう一方、行った場合には（ステップＳ１０７“Ｙｅｓ”）、以上の処理を終了するようにする。
【０１４６】
そして、実施の形態１で述べたように、(RUN，LEVEL)データと、次に続く(RUN，LEVEL)データを符号化するのに用いるＶＬＣテーブル選択情報１０７ｂ９(NEXT)を組にした(NEXT，RUN，LEVEL)データを復号する場合も、(RUN，LEVEL)データと、次の(RUN，LEVEL)データを復号するのに用いるＶＬＣテーブル選択情報１０７ｂ９(NEXT)とが一緒に可変長復号されること以外の基本的な動作は同じである。
【０１４７】
ブロック内のすべての領域に対して、以上の復号処理を行い、得られた復号ＤＣ係数１０７ｂ３と、復号ＡＣ係数データ１０７ｂ１２の(RUN，LEVEL)に基づいて、符号化側のスキャンと逆の処理を行うことにより、量子化変換係数データ１０９を得る。なお、量子化変換係数データ１０９は、テクスチャ復号部１１３へ出力される。
【０１４８】
次に、テクスチャ復号部１１３の詳細構成および動作を述べる。
図１９は、テクスチャ復号部１１３の内部構成図である。同図において、１１３ａは切替部、１１０ｂ１は変換係数予測判定情報、１１３ｃは変換係数予測部、１１３ｄは差分量子化変換係数、１１３ｅは隣接ブロック量子化変換係数、１１３ｆは量子化変換係数、１１３ｇは逆量子化部、１１３ｈは量子化ステップ、１１３ｉはＤＣＴ係数、１１３ｊは逆ＤＣＴ部、である。また、１１０ｂ１は、付加情報１１０に含まれるテクスチャ符号化の際の符号化条件１１０ｂの１つである変換係数予測判定情報である。
【０１４９】
次に動作を説明する。まず、切替部１１３ａは、復号された付加情報１１０に含まれる変換係数予測判定情報１１０ｂ１が、変換係数予測を行うことを指示している場合には、変換係数予測部１１３ｃにて変換係数予測を行う。
【０１５０】
変換係数予測部１１３ｃは、差分量子化変換係数１１３ｄを受け取り、近傍ブロックの量子化変換係数１１３ｅを加え、量子化変換係数１１３ｆを得る。
ここで、量子化ＤＣ係数の予測は、近傍のブロックの量子化ＤＣ係数を予測値として、差分量子化ＤＣ係数に加算することによって行われる。予測に用いるブロックの選択は符号化側と同様に行う。
【０１５１】
また、量子化ＡＣ係数の予測は、まず、付加情報１１０に含まれる変換係数予測判定情報１１０ｂ１に基づいて変換係数予測が行われたか否かを判定し、量子化ＡＣ係数に対して変換係数予測が行われた場合には、符号化側と同様に近傍ブロックの量子化ＡＣ係数を予測値として、差分量子化ＡＣ係数に加算する。
【０１５２】
このようにして、変換係数予測部１１３ｃは、量子化ＤＣ係数と、量子化ＡＣ係数とを求め、得られた量子化ＤＣ係数と、量子化ＡＣ係数とを、量子化変換係数１１３ｆとして、逆量子化部１１３ｇに出力する。
【０１５３】
逆量子化部１１３ｇでは、付加情報１１０に含まれる量子化ステップサイズ１１３ｈを用いて量子化変換係数１１３ｆを逆量子化し、ＤＣＴ係数１１３ｉとして出力し、逆ＤＣＴ部１１３ｊは、そのＤＣＴ係数１１３ｉを逆ＤＣＴして、復号予測誤差信号１１６として出力するようにする。
【０１５４】
従って、本実施の形態６によれば、符号化側で、ブロックを複数の領域に分けて、領域毎にＡＣ係数データを符号化するのに用いるＶＬＣテーブルグループを各ブロックの変換係数予測判定情報あるいは量子化ステップサイズに基づいて選択し、さらにそのＶＬＣテーブルグループの中からＶＬＣテーブルを選択してＡＣ係数データ（(RUN，LEVEL)データ）を符号化して、ビットストリームを送信してきた場合でも、正しく復号することができる。
【０１５５】
実施の形態７．
本実施の形態７は、実施の形態６で述べた変換係数可変長復号部の別の実施の形態を示すものであり、実施の形態３で述べた変換係数可変長符号化部４ｃにより可変長符号化された変換係数を復号する変換係数可変長復号部について説明する。
【０１５６】
図２０は、本実施の形態７における変換係数可変長復号部１０７ｂの内部構成図である。同図において、１０７ｂ１３は位置情報であり、この実施の形態７の領域データ復号部１０７ｂ８では、実施の形態６のようにＶＬＣテーブル選択情報１０７ｂ９（図１７参照）をＶＬＤテーブル選択部１０７ｂ１０へ出力するのではなく、位置情報１０７ｂ１３を出力するようにしたことを特徴とするものである。
【０１５７】
次に動作を説明する。なお、切替部１０７ｂ１、ＤＣ係数データ復号部１０７ｂ２、ＶＬＤテーブルグループ選択部１０７ｂ６の動作は、実施の形態６と同様であり、ＶＬＤテーブルグループ選択部１０７ｂ６の動作は、実施の形態３で述べた符号化側のＶＬＣテーブルグループ選択部４ｃ６と同様の処理を行えばよい。
【０１５８】
次に、ＶＬＤテーブル選択部１０７ｂ１０は、領域内のスキャンの位置により、(RUN，LEVEL)データを復号するために用いるＶＬＤテーブルを選択する。領域内のスキャンの位置を示す位置情報１０７ｂ１３は、領域データ復号部１０７ｂ８より得られる。領域データ復号部１０７ｂ８では、符号化側でスキャンされた順番に(RUN，LEVEL)データを復号するので、復号された(RUN，LEVEL)データに基づき、次の復号対象の(RUN，LEVEL)データの位置を特定することができ、位置情報１０７ｂ１３として出力している。
【０１５９】
領域データ復号部１０７ｂ８では、ＶＬＤテーブル選択部１０７ｂ８で選択されたＶＬＤテーブル１０７ｂ１１を用いて、(RUN，LEVEL)データを復号する。復号された(RUN，LEVEL)データに基づき、次の復号対象の(RUN，LEVEL)データのスキャン位置を特定し、位置情報１０７ｂ１３として、ＶＬＤテーブル選択部１０７ｂ１０へ出力するようにする。
【０１６０】
従って、本実施の形態７では、ブロックを複数の領域に分けて、領域毎にＡＣ係数データを符号化するのに用いるＶＬＣテーブルグループを選択し、選択されたＶＬＣテーブルグループの中から、符号化すべきＡＣ係数データである(RUN，LEVEL)データのスキャン位置に基づいて、そのＡＣ係数データを復号するのに用いるＶＬＤテーブルを選択するようにしたので、実施の形態３の符号化側のように、各領域内のスキャン位置に応じてＶＬＣテーブルを選択して符号化したＡＣ係数データを多重化したビットストリームを送信してきた場合でも、正しく復号することができる。
【０１６１】
実施の形態８．
本実施の形態８は、実施の形態６または実施の形態７で述べた変換係数可変長復号部の別の実施の形態であり、実施の形態４で述べた変換係数可変長符号化部４ｃにより可変長符号化された変換係数を復号する変換係数可変長復号部について説明する。
【０１６２】
図２１に本実施の形態における変換係数可変長復号部１０７ｂの内部構成図を示す。
同図において、１０７ｂ１３は領域有効／無効情報符号語、１０７ｂ１４は領域有効／無効情報復号部、１０７ｂ１５は領域有効／無効情報、１０７ｂ１６は領域有効／無効判定部、１０７ｂ１７は領域データ零設定部、である。
【０１６３】
図２１において、動作が異なるのは、領域有効／無効情報復号部１０７ｂ１４、領域有効／無効判定部１０７ｂ１６、領域データ零設定部１０７ｂ１７であり、その他の構成及び動作は、実施の形態７等と同じであるので、以下では、領域有効／無効情報復号部１０７ｂ１４、領域有効／無効判定部１０７ｂ１６、領域内ＡＣ係数零設定部１０７ｂ１７の動作を中心に説明する。
【０１６４】
本実施の形態８では、まず、領域有効／無効情報復号部１０７ｂ１４が、ブロックデータ符号語１０４に含まれる領域有効／無効情報符号語１０７ｂ１３を入力して復号し、各領域内のＡＣ係数データが符号化されているか否かを示す領域有効／無効情報１０７ｂ１５として出力する。
領域有効／無効判定部１０７ｂ１６では、領域有効／無効情報復号部１０７ｂ１４で復号された領域有効／無効情報１０７ｂ１５に基づき、領域内のＡＣ係数データが符号化されているか否かを判定する。
【０１６５】
ここで、領域有効／無効情報１０７ｂ１５が領域内のＡＣ係数データが符号化されていることを示している場合、領域有効／無効判定部１０７ｂ１６は、ブロックデータ符号語１０４に含まれるＡＣ係数データ符号語１０７ｂ４を領域データ復号部１０７ｂ８に出力する。領域データ復号部１０７ｂ８では、実施の形態７等の場合と同様に、ＶＬＣテーブル選択情報１０７ｂ９に基づきＶＬＤテーブル選択部１０７ｂ１０によって選択されたＶＬＤテーブル１０７ｂ１１を用いて、領域内の(RUN，LEVEL)データを復号し、復号ＡＣ係数データ１０７ｂ１２として出力する。
【０１６６】
これに対し、領域有効／無効情報１０７ｂ１５が領域スキップ、すなわち領域内のＡＣ係数データが符号化されていないことを示している場合、領域有効／無効判定部１０７ｂ１６は、領域データ零設定部１０７ｂ１７に指令を送り、領域データ零設定部１０７ｂ１７は、領域内のＡＣ係数をすべて零に設定して、復号ＡＣ係数データ１０７ｂ１２として出力する。
【０１６７】
従って、本実施の形態８では、符号化側で、符号量を少なくするため、ある領域内のＡＣ係数データを符号化せず、それを示す領域有効／無効情報１０７ｂ１５を符号化ビットストリームに多重化するようにしてきた場合でも、受信した符号化ビットストリーム中の領域有効／無効情報１０７ｂ１５を復号すると共に、ブロック内の領域毎にＡＣ係数データが零か否かを判定し、領域内のＡＣ係数がすべて零を示している場合には、その領域内のＡＣ係数データの符号化を行わないようにしたため、実施の形態４の符号化側のように、領域有効／無効情報１０７ｂ１５を多重化した符号化ビットストリームを送信してた場合でも、正しく復号することができる。
【０１６８】
実施の形態９．
本実施の形態９は、実施の形態６〜８で述べた変換係数可変長復号部の領域データ復号部の別の実施の形態を示すものであり、実施の形態５で述べた変換係数可変長符号化部４ｃにより可変長符号化された変換係数を復号する変換係数可変長復号部について説明する。
【０１６９】
図２２は、本実施の形態９における領域データ復号部１０７ｂ８の内部構成図である。同図において、１０７ｂ８１はＶＬＤテーブル探索部、１０７ｂ８２はエスケープコード、１０７ｂ８３は変換フラグ判定部、１０７ｂ８４は復号変換ＡＣ係数、１０７ｂ８５は変換係数逆変換部、１０７ｂ８６は変換係数固定長復号部、１０７ｂ８７は変換ＡＣ係数符号語、である。
【０１７０】
次に動作を説明する。
この領域データ復号部１０７ｂ８では、ＶＬＤテーブル選択部１０７ｂ１０（図２１参照。）によって選択されたＶＬＤテーブル１０７ｂ１１を用いて、領域内の(RUN，LEVEL)データを復号する。
【０１７１】
その際、領域データ復号部１０７ｂ８では、まず、ＶＬＤテーブル探索部１０７ｂ８１がブロックデータ符号語１０４に含まれるＡＣ係数データ符号語１０７ｂ４に対応する(RUN，LEVEL)データを、ＶＬＤテーブル選択部１０７ｂ１０からのＶＬＤテーブル１０７ｂ１１内で探索し、対応する(RUN，LEVEL)データが見つかった場合には、これを復号ＡＣ係数データ１０７ｂ１２として出力する。
【０１７２】
これに対し、ＡＣ係数データ符号語１０７ｂ４に対応する(RUN，LEVEL)が見つからず、エスケープコード１０７ｂ８２が検出された場合、領域データ復号部１０７ｂ８のＶＬＤテーブル探索部１０７ｂ８１は、エスケープコード１０７ｂ８２と、その後に続くＡＣ係数データ符号語１０７ｂ４とを、変換フラグ判定部１０７ｂ８３に出力し、変換フラグ判定部１０７ｂ８３では、エスケープコード１０７ｂ８２の後に続く変換フラグを判定する。
【０１７３】
ここで、変換フラグがLEVELまたはRUNが変換されていることを示す場合、変換フラグ判定部１０７ｂ８３は、変換フラグの次に続く変換ＡＣ係数符号語１０７ｂ８７をＶＬＤテーブル探索部１０７ｂ８１に戻すようにする。
【０１７４】
ＶＬＤテーブル探索部１０７ｂ８１は、変換ＡＣ係数符号語１０７ｂ８７をＶＬＤテーブル１０７ｂ１１により可変長復号し、復号変換ＡＣ係数１０７ｂ８４として、変換係数逆変換部１０７ｂ８５へ出力する。変換係数逆変換部１０７ｂ８５では、復号変換ＡＣ係数１０７ｂ８４に対して、実施の形態４で述べた符号化装置の変換係数変換部４ｃ１０３（図１４参照。）の処理とは逆の処理を施して、復号ＡＣ係数データ１０７ｂ１２を得るようにする。
【０１７５】
また、変換フラグが、RUN，LEVELがそれぞれ固定長符号化されていることを示す場合、変換フラグ判定部１０７ｂ８３は、ＡＣ係数データ符号語１０７ｂ４を変換係数固定長復号部１０７ｂ８６へ出力する。変換係数固定長復号部１０７ｂ８６は、変換フラグの次に続くRUN，LEVELの固定長符号語を固定長復号して、復号ＡＣ係数データ１０７ｂ１２を得る。以下同様に、領域内のすべての(RUN，LEVEL)データを復号するまで、以上の処理を繰り返すようにする。
【０１７６】
そして、ブロック内のすべての領域に対して、以上の復号処理を行い、得られた復号ＤＣ係数１０７ｂ３と、復号ＡＣ係数データ１０７ｂ１２とに基づいて、符号化側のスキャンの順とは逆の順に並べて出力することにより、復号された量子化変換係数データ１０９となる。この復号量子化変換係数データは１０９は、テクスチャ復号部１１３（図１５参照。）へ出力される。
【０１７７】
なお、実施の形態６で述べたように、(RUN，LEVEL)データと次に続く(RUN，LEVEL)データを符号化するのに用いたＶＬＣテーブル選択情報１０７ｂ９(NEXT)を組にした(NEXT，RUN，LEVEL)データを復号する場合も基本的な動作は同じである。
【０１７８】
従って、本実施の形態９では、符号化側で、領域毎に選択されたＶＬＣテーブルを用いて領域内のＡＣ係数データを可変長符号化する際に、ＶＬＣテーブル内に符号化すべきＡＣ係数データに対応する符号語が存在しない場合、そのＡＣ係数データを変換して再びＶＬＣテーブルにより符号化したＡＣ係数データを含むビットストリームに多重化するようにしてきた場合でも、変換フラグ判定部１０７ｂ８３によりそのような符号化側のＡＣ係数データを変換を判定して、領域データ復号部１０７ｂ８では符号化側と逆の処理を行うようにしたため、実施の形態５の符号化側のように、エスケープコードによりＡＣ係数データを変換して多重化した符号化ビットストリームを送信してた場合でも、正しく復号することができる。
【図面の簡単な説明】
【０１７９】
【図１】この発明の実施の形態１による動画像符号化装置の構成を示すブロック図である。
【図２】この発明の実施の形態１による可変長符号化部の内部構成を示すブロック図である。
【図３】この発明の実施の形態１によるテクスチャ符号化部の内部構成を示すブロック図である。
【図４】この発明の実施の形態１による変数係数予測の説明図である。
【図５】この発明の実施の形態１による変換係数可変長符号化部４ｃの内部構成を示すブロック図である。
【図６】この発明の実施の形態１による変換係数可変長符号化部４ｃの動作の様子を示すフローチャートである。
【図７】この発明の実施の形態１によるＡＣ係数データを符号化する単位となる領域を説明する図である。
【図８】この発明の実施の形態１によるＶＬＣテーブルグループを説明する図である。
【図９】この発明の実施の形態２による変換係数可変長符号化部４ｃの内部構成を示すブロック図である。
【図１０】この発明の実施の形態３による変換係数可変長符号化部４ｃの内部構成を示すブロック図である。
【図１１】この発明の実施の形態４による変換係数可変長符号化部４ｃの内部構成を示すブロック図である。
【図１２】従来のMPEG-4におけるマクロブロックデータ構造を説明する図である。
【図１３】この発明の実施の形態４におけるマクロブロックデータ構造を説明する図である。
【図１４】この発明の実施の形態５による領域データ符号化部の内部構成を示すブロック図である。
【図１５】この発明の実施の形態６による動画像復号装置の構成を示すブロック図である。
【図１６】この発明の実施の形態６による可変長復号部の内部構成を示すブロック図である。
【図１７】この発明の実施の形態６による変換係数可変長復号部の内部構成を示すブロック図である。
【図１８】この発明の実施の形態６による変換係数可変長復号部の動作の様子を示すフローチャートである。
【図１９】この発明の実施の形態６によるテクスチャ復号部の内部構成を示すブロック図である。
【図２０】この発明の実施の形態７による変換係数可変長復号部の内部構成を示すブロック図である。
【図２１】この発明の実施の形態８による変換係数可変長復号部の内部構成を示すブロック図である。
【図２２】この発明の実施の形態９による領域データ復号部の内部構成を示すブロック図である。
【符号の説明】
【０１８０】
１  入力形状データ、２  形状符号化部、３  形状符号化データ、４  可変長符号化部、５  多重化部、６  局所復号形状データ、７  入力テクスチャデータ、８  イントラ／インター判定部、９  モード指示フラグ、１０  動き検出部、１１  動きベクトル、１２  動き補償部、１３  予測画像信号、１４  予測誤差信号、１５  被符号化画像信号、１６  テクスチャ符号化部、１７  量子化変換係数データ、１８  テクスチャ局所復号部、１９  局所復号予測誤差信号、２０  局所復号画像信号、２１  切替部、２２  参照画像信号、２３  メモリ、２４  形状データ符号語、２５  付加情報符号語、２６  ブロックデータ符号語、２７  動きベクトル符号語、２８  符号化ビットストリーム、２９  形状データ可変長符号化部、３０  付加情報可変長符号化部４ｃ  変換係数可変長符号化部４４２  動きベクトル可変長符号化部、１６ａ  ブロックデータ抽出部、１６ｂ  ブロックデータ、１６ｃ  ＤＣＴ部、１６ｄ  ＤＣＴ係数、１６ｅ  量子化部、１６ｆ  量子化変換係数、１６ｇ  変換係数予測部、４２  変換係数予測判定情報、４３  切替部、４４  ＤＣ係数データ符号化部、４５  ＡＣ係数データ、４ｃ５  ＤＣ係数符号語、４ｃ６  ＶＬＣテーブルグループ選択部、４ｃ７  ＶＬＣテーブルグループ情報、４ｃ８  ＶＬＣテーブル選択部、４ｃ９  ＶＬＣテーブル選択情報１０７ｂ９、４ｃ１０  領域データ符号化部、４ｃ１１  ＡＣ係数符号語、２６  ブロックデータ符号語、５４  量子化ステップサイズ、５５  符号化条件、４ｃ１２  領域データ有効／無効判定部、４ｃ１３  領域有効／無効情報、４ｃ１４  領域有効／無効情報符号化部、４ｃ１５  領域有効／無効情報符号語、６０  ＶＬＣテーブル探索部、４ｃ１０２  エスケープコード、４ｃ１０３  変換係数変換部、４ｃ１０４  変換ＡＣ係数データ、４ｃ１０５  変換フラグ、４ｃ１０６  変換係数固定長復号部、１０１  符号化ビットストリーム、１０２  シンタックス解析部、１０３  形状データ符号語、１０４  ブロックデータ符号語、１０５  付加情報符号語、１０６  動きベクトル符号語、１０７  可変長復号部、１０８  形状符号化データ、１０９  量子化変換係数データ、１１０  付加情報、１１１  動きベクトル、１１２  形状復号部、１１３  テクスチャ復号部、１１４  動き補償部、１１５  復号形状データ、１１６  復号予測誤差信号、１１７  メモリ、１１８  参照画像、１１９  被復号マクロブロック画面内位置情報、１２０  予測画像、１２１  復号加算部、１２２  復号画像、１２３  切替部、１１０ａ  モード指示フラグ、１０７ａ  形状データ可変長復号部、１０７ｂ  変換係数可変長復号部、１０７ｃ  付加情報可変長復号部、１０７ｄ  動きベクトル可変長復号部、１０７ｂ１  切替部、１０７ｂ２  ＤＣ係数データ復号部、１０７ｂ３  復号ＤＣ係数、１０７ｂ４  ＡＣ係数データ符号語、１１０ｂ  符号化条件、１０７ｂ６  ＶＬＤテーブルグループ選択部、１０７ｂ７  ＶＬＤテーブルグループ情報、１０７ｂ８  領域データ復号部、１０７ｂ９  ＶＬＣテーブル選択情報１０７ｂ９、１０７ｂ１０  ＶＬＤテーブル選択部、１０７ｂ１１  ＶＬＤテーブル、１０７ｂ１２  領域データ復号部、１０７ｂ１２  復号ＡＣ係数、１１３ａ  切替部、１１０ｂ１  変換係数予測判���情報、１１３ｃ  変換係数予測部、１１３ｄ  差分量子化変換係数、１１３ｅ  隣接ブロック量子化変換係数、１１３ｆ  量子化変換係数、１１３ｇ  逆量子化部、１１３ｈ  量子化ステップ、１１３ｉ  ＤＣＴ係数、１１３ｊ  逆ＤＣＴ部、１０７ｂ１３  位置情報、１０７ｂ  領域有効／無効情報符号語、１０７ｂ１４  領域有効／無効情報復号部、１０７ｂ１５  領域有効／無効情報、１０７ｂ１６  領域有効／無効判定部、１０７ｂ１７  領域データ零設定部、１０７ｂ８１  ＶＬＤテーブル探索部、１０７ｂ８２  エスケープコード、１０７ｂ８３  変換フラグ判定部、１０７ｂ８４  復号変換ＡＣ係数、１０７ｂ８５  変換係数逆変換部、１０７ｂ８６  変換係数固定長復号部、１０７ｂ８７  変換ＡＣ係数符号語。
【図１】
2006333500.tif 000003
【図２】
2006333500.tif 000004
【図３】
2006333500.tif 000005
【図４】
2006333500.tif 000006
【図５】
2006333500.tif 000007
【図６】
2006333500.tif 000008
【図７】
2006333500.tif 000009
【図８】
2006333500.tif 000010
【図９】
2006333500.tif 000011
【図１０】
2006333500.tif 000012
【図１１】
2006333500.tif 000013
【図１２】
2006333500.tif 000014
【図１３】
2006333500.tif 000015
【図１４】
2006333500.tif 000016
【図１５】
2006333500.tif 000017
【図１６】
2006333500.tif 000018
【図１７】
2006333500.tif 000019
【図１８】
2006333500.tif 000020
【図１９】
2006333500.tif 000021
【図２０】
2006333500.tif 000022
【図２１】
2006333500.tif 000023
【図２２】
2006333500.tif 000024