(57)【特許請求の範囲】
【請求項１】
入力された画像データを符号化する符号化装置において、
前記画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかを判定し、判定された前記画像データをブロックに分割する分割手段と、
前記画像データを、前記分割手段より出力されたブロックおよび前記分割の結果を示すブロック情報を含むデータとして符号化する符号化手段とを備え、
前記分割手段は、
前記画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、前記注目ブロックに隣接する隣接ブロックの分散の和を演算して前記演算結果を閾値と比較することにより前記ブロックの大きさを決定し、
前記画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して前記動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する前記演算結果に基づいて前記ブロックの大きさを決定し、
決定された前記ブロックの大きさを前記ブロック情報とする
ことを特徴とする画像符号化装置。
【請求項２】
入力された画像データを符号化する符号化装置の符号化方法において、
前記画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかを判定し、判定された前記画像データをブロックに分割し、
前記画像データを、前記分割手段より出力されたブロックおよび前記分割の結果を示すブロック情報を含むデータとして符号化し、
前記画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、前記注目ブロックに隣接する隣接ブロックの分散の和を演算して前記演算結果を閾値と比較することにより前記ブロックの大きさを決定し、
前記画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して前記動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する前記演算結果に基づいて前記ブロックの大きさを決定し、
決定された前記ブロックの大きさが前記ブロック情報として符号化される
ことを特徴とする画像符号化方法。
【請求項３】
画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、前記注目ブロックに隣接する隣接ブロックの分散の和を演算して前記演算結果を閾値と比較することにより決定され、前記画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して前記動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する前記演算結果に基づいて決定される大きさのブロックに分割された前記画像データ、および前記分割結果を示すブロック情報とが符号化された符号化データを、少なくとも含む伝送データを復号する画像復号化装置であって、
前記ブロック情報に基づいて、前記符号化データを復号する復号化手段
を備えることを特徴とする画像復号化装置。
【請求項４】
画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、前記注目ブロックに隣接する隣接ブロックの分散の和を演算して前記演算結果を閾値と比較することにより決定され、前記画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して前記動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する前記演算結果に基づいて決定される大きさのブロックに分割された前記画像データ、および前記分割結果を示すブロック情報とが符号化された符号化データを、少なくとも含む伝送データを復号する画像復号化方法であって、
前記ブロック情報に基づいて、前記符号化データを復号する
ことを特徴とする画像復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録媒体に関する。特に、例えば動画像信号を、光磁気ディスクや磁気テープなどの記録媒体に記録し、これを再生してディスプレイなどに表示したり、テレビ会議システム、テレビ電話システム、放送用機器、マルチメディアデータベース検索システムなど、動画像信号を伝送路を介して送信側から受信側に伝送し、受信側において、これを受信し、表示する場合や動画像信号を編集し記録する場合などに用いて好適な画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
例えば、テレビ会議システム、テレビ電話システムなどのように、動画像信号（画像信号）を遠隔地に伝送するシステムにおいては、伝送路を効率良く利用するため、映像信号のライン相関やフレーム間相関を利用して、画像信号を圧縮符号化するようになされている。
【０００３】
ライン相関を利用すると、画像信号を、例えばＤＣＴ（離散コサイン変換）処理やウェーブレット変換処理するなどして圧縮することができる。
【０００４】
また、フレーム間相関を利用すると、画像信号をさらに圧縮して符号化することが可能となる。例えば図２３に示すように、時刻ｔ１，ｔ２，ｔ３において、フレーム画像ＰＣ１，ＰＣ２，ＰＣ３がそれぞれ発生しているとき、フレーム画像ＰＣ１とＰＣ２の画像信号の差を演算して、ＰＣ１２を生成し、また、フレーム画像ＰＣ２とＰＣ３の差を演算して、ＰＣ２３を生成する。通常、時間的に隣接するフレームの画像は、それ程大きな変化を有していないため、両者の差を演算すると、その差分信号は小さな値のものとなる。そこで、この差分信号を符号化すれば、符号量を圧縮することができる。
【０００５】
しかしながら、差分信号のみを伝送したのでは、元の画像を復元することができない。そこで、各フレームの画像を、Ｉピクチャ、ＰピクチャまたはＢピクチャの３種類のピクチャのいずれかのピクチャとし、画像信号を圧縮符号化するようにしている。
【０００６】
即ち、例えば図２４に示すように、フレームＦ１乃至Ｆ１７までの１７フレームの画像信号をグループオブピクチャ（ＧＯＰ）とし、処理の１単位とする。そして、その先頭のフレームＦ１の画像信号はＩピクチャとして符号化し、第２番目のフレームＦ２はＢピクチャとして、また第３番目のフレームＦ３はＰピクチャとして、それぞれ処理する。以下、第４番目以降のフレームＦ４乃至Ｆ１７は、ＢピクチャまたはＰピクチャとして交互に処理する。
【０００７】
Ｉピクチャの画像信号としては、その１フレーム分の画像信号をそのまま伝送する。これに対して、Ｐピクチャの画像信号としては、基本的には、図２４（Ａ）に示すように、それより時間的に先行するＩピクチャまたはＰピクチャの画像信号からの差分を伝送する。さらにＢピクチャの画像信号としては、基本的には、図２４（Ｂ）に示すように、時間的に先行するフレームまたは後行するフレームの両方の平均値からの差分を求め、その差分を符号化する。
【０００８】
図２５は、このようにして、動画像信号を符号化する方法の原理を示している。同図に示すように、最初のフレームＦ１はＩピクチャとして処理されるため、そのまま伝送データＦ１Ｘとして伝送路に伝送される（画像内符号化）。これに対して、第２のフレームＦ２は、Ｂピクチャとして処理されるため、時間的に先行するフレームＦ１と、時間的に後行するフレームＦ３の平均値との差分が演算され、その差分が伝送データＦ２Ｘとして伝送される。
【０００９】
但し、このＢピクチャとしての処理は、さらに細かく説明すると、４種類存在する。その第１の処理は、元のフレームＦ２のデータをそのまま伝送データＦ２Ｘとして伝送するものであり（ＳＰ１）（イントラ符号化）、Ｉピクチャにおける場合と同様の処理となる。第２の処理は、時間的に後のフレームＦ３からの差分を演算し、その差分（ＳＰ２）を伝送するものである（後方予測符号化）。第３の処理は、時間的に先行するフレームＦ１との差分（ＳＰ３）を伝送するものである（前方予測符号化）。さらに第４の処理は、時間的に先行するフレームＦ１と後行するフレームＦ３の平均値との差分（ＳＰ４）を生成し、これを伝送データＦ２Ｘとして伝送するものである（両方向予測符号化）。
【００１０】
この４つの方法のうち、伝送データが最も少なくなる方法が採用される。
【００１１】
尚、差分データを伝送するとき、差分を演算する対象となるフレームの画像（予測画像）との間の動きベクトルｘ１（フレームＦ１とＦ２の間の動きベクトル）（前方予測の場合）、もしくはｘ２（フレームＦ３とＦ２の間の動きベクトル）（後方予測の場合）、またはｘ１とｘ２の両方（両方向予測の場合）が、差分データとともに伝送される。
【００１２】
また、ＰピクチャのフレームＦ３は、時間的に先行するフレームＦ１を予測画像として、このフレームとの差分信号（ＳＰ３）と、動きベクトルｘ３が演算され、これが伝送データＦ３Ｘとして伝送される（前方予測符号化）。あるいはまた、元のフレームＦ３のデータがそのまま伝送データＦ３Ｘとして伝送される（ＳＰ１）（イントラ符号化）。いずれの方法により伝送されるかは、Ｂピクチャにおける場合と同様に、伝送データがより少なくなる方が選択される。
【００１３】
図２６は、上述した原理に基づいて、動画像信号を符号化して伝送し、これを復号化する装置の構成例を示している。符号化装置１は、入力された映像信号を符号化し、伝送路または記録媒体３に伝送するようになされている。そして、復号化装置２は、伝送路または記録媒体３からの信号を再生し、これを復号して出力するようになされている。
【００１４】
符号化装置１においては、入力された画像信号が前処理回路１１に入力され、そこで輝度信号と色信号（この例の場合、色差信号）とに分離され、それぞれＡ／Ｄ変換器１２，１３でＡ／Ｄ変換される。Ａ／Ｄ変換器１２，１３によりＡ／Ｄ変換されてディジタル信号となった画像信号（画像データ）は、プリフィルタ１９でフィルタリングされた後、フレームメモリ１４に供給され、記憶される。フレームメモリ１４は、輝度信号を輝度信号フレームメモリ１５に、また、色差信号を色差信号フレームメモリ１６に、それぞれ記憶させる。エンコーダ１７はフレームメモリ１４に記憶された動画像信号（画像データ）を読み出し、エンコード（符号化）を行なう。その詳細は図２７を用いて後述する。
【００１５】
エンコーダ１７によりエンコードされた信号は、ビットストリームとして伝送路３を介して伝送され、または記録媒体３に記録される。
【００１６】
伝送路または記録媒体３からのデータは、復号化装置２のデコーダ３１に供給され、デコードされる。デコーダ３１の詳細については、図３１を参照して後述する。
【００１７】
デコーダ３１によりデコードされたデータは、フレームメモリ３３に供給される。この時、輝度信号は、フレームメモリ３３の輝度信号フレームメモリ３４に供給されて記憶され、色差信号は色差信号フレームメモリ３５に供給されて記憶される。輝度信号フレームメモリ３４と色差信号フレームメモリ３５より読み出された輝度信号と色差信号は、ポストフィルタ３９でフィルタリングされた後、Ｄ／Ａ変換器３６と３７によりそれぞれＤ／Ａ変換され、後処理回路３８に供給され、合成される。そして、図示せぬ例えばＣＲＴ（Cathode Ray Tube）などのディスプレイに出力され、表示される。
【００１８】
次にエンコーダ１７についてＭＰＥＧ（Moving Picture Experts Group）２方式を例に説明する。これはＩＳＯ−ＩＥＣ／ＪＴＣ１／ＳＣ２９／ＷＧ１１にて議論され標準案として提案されたものであり、動き補償予測符号化とＤＣＴ（Discrete Cosine Transform）符号化を組み合わせたハイブリッド方式の規格である。この動画像信号符号化方式の規格の詳細については、ＩＳ１３８１８−２に記載されている。
【００１９】
図２７は、ＭＰＥＧ２方式に準拠して、動画像を符号化するエンコーダ１７の構成例を示している。
【００２０】
符号化されるべき画像データは、動きベクトル検出回路５０に入力される。動きベクトル検出回路５０は、予め設定されている所定のシーケンスに従って、各フレームの画像データを、Ｉピクチャ、Ｐピクチャ、またはＢピクチャとして処理する。シーケンシャルに入力される各フレームの画像を、Ｉ，Ｐ，Ｂのいずれのピクチャとして処理するかは、予め定められている（例えば、図２４に示したように、フレームＦ１乃至Ｆ１７により構成されるグループオブピクチャが、Ｉ，Ｂ，Ｐ，Ｂ，Ｐ，・・・Ｂ，Ｐとして処理される）。
【００２１】
Ｉピクチャとして処理されるフレーム（例えばフレームＦ１）の画像データは、動きベクトル検出回路５０からフレームメモリ５１の前方原画像部５１ａに転送、記憶され、Ｂピクチャとして処理されるフレーム（例えばフレームＦ２）の画像データは、原画像部５１ｂに転送、記憶され、Ｐピクチャとして処理されるフレーム（例えばフレームＦ３）の画像データは、後方原画像部５１ｃに転送、記憶される。
【００２２】
また、次のタイミングにおいて、さらにＢピクチャ（フレームＦ４）またはＰピクチャ（フレームＦ５）として処理すべきフレームの画像が入力されたとき、それまで後方原画像部５１ｃに記憶されていた最初のＰピクチャ（フレームＦ３）の画像データが、前方原画像部５１ａに転送され、次のＢピクチャ（フレームＦ４）の画像データが、原画像部５１ｂに記憶（上書き）され、次のＰピクチャ（フレームＦ５）の画像データが、後方原画像部５１ｃに記憶（上書き）される。このような動作が順次繰り返される。
【００２３】
フレームメモリ５１に記憶された各ピクチャの信号は、動きベクトル検出回路５０により、固定の大きさのマクロブロックで、そこから読み出される。ここで、従来のマクロブロックについて説明する。図２８に示すように、フレームメモリ１４に記憶された画像信号は、１ライン当りＨドットのラインがＶライン集められたフレームフォーマットのデータとされている（図２８（Ａ））。この１フレームの信号は、１６ラインを単位としてＭ個のスライスに区分され（図２８（Ｂ））、さらに、各スライスは、Ｍ個のマクロブロックに分割される（図２８（Ｃ））。各マクロブロックは、１６×１６個の画素（ドット）に対応する輝度信号により構成され、この輝度信号は、さらに８×８ドットを単位とするブロックＹ［１］乃至Ｙ［４］に区分される。そして、この１６×１６ドットの輝度信号には、８×８ドットのＣｂ信号と、８×８ドットのＣｒ信号が対応される。以上のようなマクロブロックが、動きベクトル検出回路５０に入力される。
【００２４】
図２７に戻り、フレームメモリ５１から読み出されたマクロブロックに対しては、予測モード切り替え回路５２において、フレーム予測モード処理、またはフィールド予測モード処理が行なわれる。さらにまた予測判定回路５４の制御の下に、演算部５３において、画像内予測、前方予測、後方予測、または両方向予測の演算が行なわれる。これらの処理のうち、いずれの処理を行なうかは、予測誤差信号（処理の対象とされている参照画像と、これに対する予測画像との差分）に対応して決定される。このため、動きベクトル検出回路５０は、この判定に用いられる予測誤差信号の絶対値和（自乗和でもよい）を生成する。
【００２５】
ここで、予測モード切り替え回路５２におけるフレーム予測モードとフィールド予測モードについて説明する。
【００２６】
フレーム予測モードが設定された場合においては、予測モード切り替え回路５２は、動きベクトル検出回路５０より供給される４個の輝度ブロックＹ［１］乃至Ｙ［４］を、そのまま後段の演算部５３に出力する。即ち、この場合においては、図２９（Ａ）に示すように、各輝度ブロックに奇数フィールド（第１フィールド）のラインのデータと、偶数フィールド（第２フィールド）のラインのデータとが混在した状態となっている。このフレーム予測モードにおいては、４個の輝度ブロック（マクロブロック）を単位として予測が行われ、４個の輝度ブロックに対して１個の動きベクトルが対応される。
【００２７】
これに対して、予測モード切り替え回路５２は、フィールド予測モードにおいては、図２９（Ａ）に示す構成で動きベクトル検出回路５０より入力される信号を、図２９（Ｂ）に示すように、４個の輝度ブロックのうち、輝度ブロックＹ［１］とＹ［２］を、例えば奇数フィールドのラインのドットによりのみ構成させ、他の２個の輝度ブロックＹ［３］とＹ［４］を、偶数フィールドのラインのデータにより構成させて、演算部５３に出力する。この場合においては、２個の輝度ブロックＹ［１］とＹ［２］に対して、１個の動きベクトルが対応され、他の２個の輝度ブロックＹ［３］とＹ［４］に対して、他の１個の動きベクトルが対応される。
【００２８】
動きベクトル検出回路５０は、フレーム予測モードにおける予測誤差の絶対値和と、フィールド予測モードにおける予測誤差の絶対値和を、予測モード切り替え回路５２に出力する。予測モード切り替え回路５２は、フレーム予測モードとフィールド予測モードにおける予測誤差の絶対値和を比較し、その値が小さい予測モードに対応する処理を施して、データを演算部５３に出力する。さらに、予測モード切り替え回路５２は、施した処理に対応するモードを示すフラグ（予測Ｆｌａｇ）を、可変長符号化回路５８および動き補償回路６４に出力する。
【００２９】
但し、予測モードに対応する処理は、実際には動きベクトル検出回路５０で行われる。即ち、動きベクトル検出回路５０は、決定されたモードに対応する構成の信号を予測モード切り替え回路５２に出力し、予測モード切り替え回路５２は、その信号を、そのまま後段の演算部５３に出力する。
【００３０】
尚、色差信号は、フレーム予測モードの場合、図２９（Ａ）に示すように、奇数フィールドのラインのデータと偶数フィールドのラインのデータとが混在する状態で、演算部５３に供給される。また、フィールド予測モードの場合、図２９（Ｂ）に示すように、各色差ブロックＣｂ，Ｃｒの上半分（４ライン）が、輝度ブロックＹ［１］，Ｙ［２］に対応する奇数フィールドの色差信号とされ、下半分（４ライン）が、輝度ブロックＹ［３］，Ｙ［４］に対応する偶数フィールドの色差信号とされる。
【００３１】
また、動きベクトル検出回路５０は、次のようにして、予測判定回路５４において、画像内予測、前方予測、後方予測、または両方向予測のいずれの予測を行なうかを決定するための予測誤差の絶対値和を生成する。
【００３２】
即ち、画像内予測の予測誤差の絶対値和として、参照画像のマクロブロックの信号Ａijの和ΣＡijの絶対値|ΣＡij|と（（i，j）は、マクロブロックを構成する画素の座標）、マクロブロックの信号Ａijの絶対値|Ａij|の和Σ|Ａij|の差を求める。また、前方予測の予測誤差の絶対値和として、参照画像のマクロブロックの信号Ａijと、予測画像のマクロブロックの信号Ｂijの差Ａij−Ｂijの絶対値|Ａij−Ｂij|の和Σ|Ａij−Ｂij|を求める。また、後方予測と両方向予測の予測誤差の絶対値和も、前方予測における場合と同様に（その予測画像を前方予測における場合と異なる予測画像に変更して）求める。
【００３３】
これらの絶対値和（ＭＥ残差の絶対値和）は、予測判定回路５４に供給される。予測判定回路５４は、前方予測、後方予測および両方向予測の予測誤差の絶対値和のうち、最も小さいものを、インター予測の予測誤差の絶対値和として選択する。さらに、このインター予測の予測誤差の絶対値和と、画像内予測の予測誤差の絶対値和とを比較し、その小さい方を選択し、この選択した絶対値和に対応するモードを予測モードとして選択する。即ち、画像内予測の予測誤差の絶対値和の方が小さければ、画像内予測モードが設定される。インター予測の予測誤差の絶対値和の方が小さければ、前方予測、後方予測または両方向予測モードのうち、対応する絶対値和が最も小さかったモードが設定される。
【００３４】
このように、動きベクトル検出回路５０は、参照画像のマクロブロックの信号を、フレームまたはフィールド予測モードのうち、予測モード切り替え回路５２により選択されたモードに対応する構成で、予測モード切り替え回路５２を介して演算部５３に供給するとともに、４つの予測モードのうち、予測判定回路５４により選択された予測モードに対応する予測画像と参照画像の間の動きベクトルを検出し、可変長符号化回路５８と動き補償回路６４に出力する。上述したように、この動きベクトルとしては、対応する予測誤差の絶対値和が最小となるものが選択される。
【００３５】
予測判定回路５４は、動きベクトル検出回路５０が前方原画像部５１ａよりＩピクチャの画像データを読み出しているとき、予測モードとして、フレーム（画像）内予測モード（動き補償を行わないモード）を設定し、演算部５３のスイッチ５３ｄを接点ａ側に切り替える。これにより、Ｉピクチャの画像データがＤＣＴモード切り替え回路５５に入力される。
【００３６】
このＤＣＴモード切り替え回路５５は、図３０（Ａ）または（Ｂ）に示すように、４個の輝度ブロックのデータを、奇数フィールド（第１フィールド）のラインと偶数フィールド（第２フィールド）のラインが混在する状態（フレームＤＣＴモード）、または、分離された状態（フィールドＤＣＴモード）、のいずれかの状態にして、ＤＣＴ回路５６に出力する。
【００３７】
即ち、ＤＣＴモード切り替え回路５５は、奇数フィールドと偶数フィールドのデータを混在してＤＣＴ処理した場合における符号化効率と、分離した状態においてＤＣＴ処理した場合の符号化効率とを比較し、符号化効率の良好なモードを選択する。
【００３８】
例えば、入力された信号を、図３０（Ａ）に示すように、奇数フィールドと偶数フィールドのラインが混在する構成とし、上下に隣接する奇数フィールドのラインの信号と偶数フィールドのラインの信号の差を演算し、さらにその絶対値の和（または自乗和）を求める。また、入力された信号を、図３０（Ｂ）に示すように、奇数フィールドと偶数フィールドのラインが分離した構成とし、上下に隣接する奇数フィールドのライン同士の信号の差と、偶数フィールドのライン同士の信号の差を演算し、それぞれの絶対値の和（または自乗和）を求める。さらに、両者（絶対値和）を比較し、小さい値に対応するＤＣＴモードを設定する。即ち、前者の方が小さければ、フレームＤＣＴモードを設定し、後者の方が小さければ、フィールドＤＣＴモードを設定する。
【００３９】
そして、選択したＤＣＴモードに対応する構成のデータをＤＣＴ回路５６に出力するとともに、選択したＤＣＴモードを示すＤＣＴフラグを、可変長符号化回路５８とＤＣＴブロック並び替え回路６５に出力する。
【００４０】
予測モード切り替え回路５２における予測モード（図２９）と、このＤＣＴモード切り替え回路５５におけるＤＣＴモード（図３０）を比較して明らかなように、輝度ブロックに関しては、両者の各モードにおけるデータ構造は実質的に同一である。
【００４１】
予測モード切り替え回路５２において、フレーム予測モード（奇数ラインと偶数ラインが混在するモード）が選択された場合、ＤＣＴモード切り替え回路５５においても、フレームＤＣＴモード（奇数ラインと偶数ラインが混在するモード）が選択される可能性が高く、また予測モード切り替え回路５２において、フィールド予測モード（奇数フィールドと偶数フィールドのデータが分離されたモード）が選択された場合、ＤＣＴモード切り替え回路５５において、フィールドＤＣＴモード（奇数フィールドと偶数フィールドのデータが分離されたモード）が選択される可能性が高い。
【００４２】
しかしながら、必ずしも常にそのようになされるわけではなく、予測モード切り替え回路５２においては、予測誤差の絶対値和が小さくなるようにモードが決定され、ＤＣＴモード切り替え回路５５においては、符号化効率が良好となるようにモードが決定される。
【００４３】
ＤＣＴモード切り替え回路５５より出力されたＩピクチャの画像データは、ＤＣＴ回路５６に入力され、ＤＣＴ（離散コサイン変換）処理され、ＤＣＴ係数に変換される。このＤＣＴ係数は、量子化回路５７に入力され、送信バッファ５９のデータ蓄積量（バッファ蓄積量）に対応した量子化ステップで量子化された後、可変長符号化回路５８に入力される。
【００４４】
可変長符号化回路５８は、量子化回路５７より供給される量子化ステップ（スケール）に対応して、量子化回路５７より供給される画像データ（いまの場合、Ｉピクチャのデータ）を、例えばハフマン符号などの可変長符号に変換し、送信バッファ５９に出力する。
【００４５】
可変長符号化回路５８にはまた、量子化回路５７より量子化ステップ（スケール）、予測判定回路５４より予測モード（画像内予測、前方予測、後方予測、または両方向予測のいずれが設定されたかを示すモード）、動きベクトル検出回路５０より動きベクトル、予測モード切り替え回路５２より予測フラグ（フレーム予測モードまたはフィールド予測モードのいずれが設定されたかを示すフラグ）、およびＤＣＴモード切り替え回路５５が出力するＤＣＴフラグ（フレームＤＣＴモードまたはフィールドＤＣＴモードのいずれが設定されたかを示すフラグ）が入力されており、これらも可変長符号化される。
【００４６】
送信バッファ５９は、入力されたデータを一時蓄積し、蓄積量に対応するデータを量子化回路５７に出力する。
【００４７】
送信バッファ５９は、そのデータ残量が許容上限値まで増量すると、量子化制御信号（バッファフィードバック）によって量子化回路５７の量子化スケールを大きくすることにより、量子化データのデータ量を低下させる。また、これとは逆に、データ残量が許容下限値まで減少すると、送信バッファ５９は、量子化制御信号によって量子化回路５７の量子化スケールを小さくすることにより、量子化データのデータ量を増大させる。このようにして、送信バッファ５９のオーバフローまたはアンダフローが防止される。
【００４８】
そして、送信バッファ５９に蓄積されたデータは、所定のタイミングで読み出され、伝送路に出力され、例えば記録媒体３に記録される。
【００４９】
一方、量子化回路５７より出力されたＩピクチャのデータは、逆量子化回路６０に入力され、量子化回路５７より供給される量子化ステップに対応して逆量子化される。逆量子化回路６０の出力は、ＩＤＣＴ（逆ＤＣＴ）回路６１に入力され、逆ＤＣＴ処理された後、ＤＣＴブロック並び替え回路６５において、ＤＣＴモード切り替え回路５５からのＤＣＴフラグに対応して、データの並びが元に戻される。そして、演算器６２を介してフレームメモリ６３の前方予測画像部６３ａに供給され、記憶される。
【００５０】
動きベクトル検出回路５０は、シーケンシャルに入力される各フレームの画像データを、たとえば、Ｉ，Ｂ，Ｐ，Ｂ，Ｐ，Ｂ・・・のピクチャとしてそれぞれ処理する場合、最初に入力されたフレームの画像データをＩピクチャとして処理した後、次に入力されたフレームの画像をＢピクチャとして処理する前に、さらにその次に入力されたフレームの画像データをＰピクチャとして処理する。
【００５１】
即ち、Ｂピクチャは、後方予測を伴うため、後方予測画像としてのＰピクチャが先に用意されていないと、復号することができない。そこで、動きベクトル検出回路５０は、Ｉピクチャの処理の次に、後方原画像部５１ｃに記憶されているＰピクチャの画像データの処理を開始する。そして、上述した場合と同様に、マクロブロック単位でのフレーム間差分（予測誤差）の絶対値和が、動きベクトル検出回路５０から予測モード切り替え回路５２と予測判定回路５４に供給される。予測モード切り替え回路５２と予測判定回路５４は、このＰピクチャのマクロブロックの予測誤差の絶対値和に対応して、フレーム／フィールド予測モード、または画像内予測、前方予測、後方予測、もしくは両方向予測の予測モードを設定する。
【００５２】
演算部５３はフレーム内予測モードが設定されたとき、スイッチ５３ｄを上述したように接点ａ側に切り替える。従って、このデータは、Ｉピクチャのデータと同様に、ＤＣＴモード切り替え回路５５、ＤＣＴ回路５６、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。また、このデータは、逆量子化回路６０、ＩＤＣＴ回路６１、ＤＣＴブロック並び替え回路６５、演算器６２を介してフレームメモリ６３の後方予測画像部６３ｂに供給され、記憶される。
【００５３】
前方予測モードの時、スイッチ５３ｄが接点ｂに切り替えられるとともに、フレームメモリ６３の前方予測画像部６３ａに記憶されている画像（いまの場合Ｉピクチャの画像）データが読み出され、動き補償回路６４により、動きベクトル検出回路５０が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路６４は、予測判定回路５４より前方予測モードの設定が指令されたとき、前方予測画像部６３ａの読み出しアドレスを、動きベクトル検出回路５０がいま出力しているマクロブロックの位置に対応する位置から動きベクトルに対応する分だけずらしてデータを読み出し、予測画像データを生成する。
【００５４】
動き補償回路６４より出力された予測画像データは、演算器５３ａに供給される。演算器５３ａは、予測モード切り替え回路５２より供給された参照画像のマクロブロックのデータから、動き補償回路６４より供給された、このマクロブロックに対応する予測画像データを減算し、その差分（予測誤差）を出力する。この差分データは、ＤＣＴモード切り替え回路５５、ＤＣＴ回路５６、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。また、この差分データは、逆量子化回路６０、ＩＤＣＴ回路６１、ＤＣＴブロック並び替え回路６５により局所的に復号され、演算器６２に入力される。
【００５５】
この演算器６２にはまた、演算器５３ａに供給されている予測画像データと同一のデータが供給されている。演算器６２は、ＤＣＴブロック並び替え回路６５が出力する差分データに、動き補償回路６４が出力する予測画像データを加算する。これにより、元の（復号した）Ｐピクチャの画像データが得られる。このＰピクチャの画像データは、フレームメモリ６３の後方予測画像部６３ｂに供給され、記憶される。
【００５６】
動きベクトル検出回路５０は、このように、ＩピクチャとＰピクチャのデータが前方予測画像部６３ａと後方予測画像部６３ｂにそれぞれ記憶された後、次にＢピクチャの処理を実行する。予測モード切り替え回路５２と予測判定回路５４は、マクロブロック単位でのフレーム間差分の絶対値和の大きさに対応して、フレーム／フィールドモードを設定し、また、予測モードをフレーム内予測モード、前方予測モード、後方予測モード、または両方向予測モードのいずれかに設定する。
【００５７】
上述したように、フレーム内予測モードまたは前方予測モードの時、スイッチ５３ｄは接点ａまたはｂに切り替えられる。このとき、Ｐピクチャにおける場合と同様の処理が行われ、データが出力される。
【００５８】
これに対して、後方予測モードまたは両方向予測モードが設定された時、スイッチ５３ｄは、接点ｃまたはｄにそれぞれ切り替えられる。
【００５９】
スイッチ５３ｄが接点ｃに切り替えられる後方予測モードの時、後方予測画像部６３ｂに記憶されている画像（いまの場合、Ｐピクチャの画像）データが読み出され、動き補償回路６４により、動きベクトル検出回路５０が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路６４は、予測判定回路５４より後方予測モードの設定が指令されたとき、後方予測画像部６３ｂの読み出しアドレスを、動きベクトル検出回路５０がいま出力しているマクロブロックの位置に対応する位置から動きベクトルに対応する分だけずらしてデータを読み出し、予測画像データを生成する。
【００６０】
動き補償回路６４より出力された予測画像データは、演算器５３ｂに供給される。演算器５３ｂは、予測モード切り替え回路５２より供給された参照画像のマクロブロックのデータから、動き補償回路６４より供給された予測画像データを減算し、その差分を出力する。この差分データは、ＤＣＴモード切り替え回路５５、ＤＣＴ回路５６、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。
【００６１】
スイッチ５３ｄが接点ｄに切り替えられる両方向予測モードの時、前方予測画像部６３ａに記憶されている画像（いまの場合、Ｉピクチャの画像）データと、後方予測画像部６３ｂに記憶されている画像（いまの場合、Ｐピクチャの画像）データの両方が読み出され、動き補償回路６４により、動きベクトル検出回路５０が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路６４は、予測判定回路５４より両方向予測モードの設定が指令されたとき、前方予測画像部６３ａと後方予測画像部６３ｂの読み出しアドレスを、動きベクトル検出回路５０がいま出力しているマクロブロックの位置に対応する位置から動きベクトル（この場合の動きベクトルは、前方予測画像用と後方予測画像用の２つとなる）に対応する分だけずらしてデータを読み出し、予測画像データを生成する。
【００６２】
動き補償回路６４より出力された予測画像データは、演算器５３ｃに供給される。演算器５３ｃは、動きベクトル検出回路５０より供給された参照画像のマクロブロックのデータから、動き補償回路６４より供給された予測画像データの平均値を減算し、その差分を出力する。この差分データは、ＤＣＴモード切り替え回路５５、ＤＣＴ回路５６、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。
【００６３】
Ｂピクチャの画像は、他の画像の予測画像とされることがないため、フレームメモリ６３には記憶されない。
【００６４】
尚、フレームメモリ６３において、前方予測画像部６３ａと後方予測画像部６３ｂは、必要に応じてバンク切り替えが行われ、所定の参照画像に対して、一方または他方に記憶されているものを、前方予測画像あるいは後方予測画像として切り替えて出力することができるようになされている。
【００６５】
以上においては、輝度ブロックを中心として説明をしたが、色差ブロックについても同様に、図２９および図３０に示すマクロブロックを単位として処理される。尚、色差ブロックを処理する場合の動きベクトルは、対応する輝度ブロックの動きベクトルを垂直方向と水平方向に、それぞれ１／２にしたものが用いられる。
【００６６】
次に、図３１は、図２６のデコーダ３１の一例の構成を示すブロック図である。伝送路３を介して伝送され、または記録媒体３に記録された、符号化された画像データは、図示せぬ受信回路で受信されたり、再生装置で再生され、受信バッファ８１に一時記憶された後、復号回路９０の可変長復号化回路８２に供給される。可変長復号化回路８２は、受信バッファ８１より供給されたデータを可変長復号化し、動きベクトル、予測モード、および予測フラグを動き補償回路８７に、また、量子化ステップを逆量子化回路８３に、それぞれ出力するとともに、復号された画像データを逆量子化回路８３に出力する。さらに、ＤＣＴフラグは、ＤＣＴブロック並び替え回路８８に供給される。
【００６７】
逆量子化回路８３は、可変長復号化回路８２より供給された画像データを、同じく可変長復号化回路８２より供給された量子化ステップに従って逆量子化し、ＩＤＣＴ回路８４に出力する。逆量子化回路８３より出力されたデータ（ＤＣＴ係数）は、ＩＤＣＴ回路８４で、逆ＤＣＴ処理され、さらに、ＤＣＴブロック並び替え回路８８において、ＤＣＴフラグに基づき、図２７のＤＣＴブロック並び替え回路６５における場合と同様の並び替えが行われた後、演算器８５に供給される。
【００６８】
ＤＣＴブロック並び替え回路８８より供給された画像データが、Ｉピクチャのデータである場合、そのデータは演算器８５より出力され、演算器８５に後に入力される画像データ（ＰまたはＢピクチャのデータ）の予測画像データ生成のために、フレームメモリ８６の前方予測画像部８６ａに供給されて記憶される。また、このデータは、フレームメモリ３３（図２６）に出力される。
【００６９】
ＤＣＴブロック並び替え回路８８より供給された画像データが、その１フレーム前の画像データを予測画像データとするＰピクチャのデータであって、前方予測モードのデータである場合、フレームメモリ８６の前方予測画像部８６ａに記憶されている、１フレーム前の画像データ（Ｉピクチャのデータ）が読み出され、動き補償回路８７で可変長復号化回路８２より出力された動きベクトルに対応する動き補償が施される。そして、演算器８５において、ＤＣＴブロック並び替え回路８８より供給された画像データ（差分のデータ）と加算され、出力される。この加算されたデータ、即ち、復号されたＰピクチャのデータは、演算器８５に後に入力される画像データ（ＢピクチャまたはＰピクチャのデータ）の予測画像データ生成のために、フレームメモリ８６の後方予測画像部８６ｂに供給されて記憶される。
【００７０】
Ｐピクチャのデータであっても、画像内予測モードのデータについては、Ｉピクチャのデータと同様に、演算器８５で特に処理は行わず、そのまま後方予測画像部８６ｂに記憶される。
【００７１】
このＰピクチャは、次のＢピクチャの次に表示されるべき画像であるため、この時点では、まだフレームメモリ３３へ出力されない（上述したように、Ｂピクチャの後に入力されたＰピクチャが、Ｂピクチャより先に処理され、伝送されている）。
【００７２】
ＤＣＴブロック並び替え回路８８より供給された画像データが、Ｂピクチャのデータである場合、可変長復号化回路８２より供給された予測モードに対応して、フレームメモリ８６の前方予測画像部８６ａに記憶されているＩピクチャの画像データ（前方予測モードの場合）、後方予測画像部８６ｂに記憶されているＰピクチャの画像データ（後方予測モードの場合）、または、その両方の画像データ（両方向予測モードの場合）が読み出され、動き補償回路８７において、可変長復号化回路８２より出力された動きベクトルに対応する動き補償が施されて、予測画像が生成される。但し、動き補償を必要としない場合（画像内予測モードの場合）、予測画像は生成されない。
【００７３】
このようにして、動き補償回路８７で動き補償が施されたデータは、演算器８５において、ＤＣＴブロック並び替え回路８８の出力と加算される。この加算出力は、フレームメモリ３３に出力される。
【００７４】
但し、この加算出力はＢピクチャのデータであり、他の画像の予測画像生成のために利用されることがないため、フレームメモリ８６には記憶されない。
【００７５】
Ｂピクチャの画像が出力された後、後方予測画像部８６ｂに記憶されているＰピクチャの画像データが読み出され、動き補償回路８７を介して演算器８５に供給され、そのまま、フレームメモリ３３に出力される。
【００７６】
尚、このデコーダ３１には、図１９のエンコーダ１７における予測モード切り替え回路５２に対応する回路が図示されていないが、この回路に対応する処理、即ち、奇数フィールドと偶数フィールドのラインの信号が分離された構成を、元の混在する構成に必要に応じて戻す処理は、動き補償回路８７が実行する（エンコーダ１７においても同様に、動き補償回路６４が行う）。
【００７７】
また、以上においては、輝度信号の処理について説明したが、色差信号の処理も同様に行われる。但し、この場合、動きベクトルは、エンコーダ１７における場合と同様に、輝度信号用のものを、垂直方向および水平方向に１／２にしたものが用いられる。
【００７８】
【発明が解決しようとする課題】
ところで、ＭＰＥＧ２などの従来の画像信号符号化方式では、ＤＣＴ変換を行うことで、大きな電力を持つ信号（低周波成分）に多くのビットを割り当て、小さな電力を持つ信号（高周波成分）ほど少ないビットを割り当てることにより情報の圧縮が行われるようになされている。
【００７９】
しかしながら、従来においては、固定の大きさのマクロブロックに分割された画像データをそれぞれに対し、ＤＣＴ変換処理が施されるようになされていたため、次の２つの問題があった。
（１）ブロック歪み
（２）モスキートノイズ
【００８０】
（１）のブロック歪みは、符号化ビットレート（量子化に割り当てるビット数）が十分でない場合に生じ、隣接するマクロブロック境界が視認される現象である。これは、画像信号を隣接するブロック間における信号の連続性を考慮せずにブロック分割することに原因がある。
【００８１】
（２）のモスキートノイズはエッジの近傍に生じる劣化である。これはエッジを含むブロックをＤＣＴ変換して符号化する場合、高周波成分が失われるために生じる折り返し歪みが原因となって生じる。マクロブロックについて、このような折り返し歪みが生じた場合、そのマクロブロック全体に劣化が生じる。さらに、この劣化には、時間軸方向の相関がないために、復号画像が不自然に見える。
【００８２】
この劣化の影響は、短いタップ数の基底を持つ変換処理を行なうことにより緩和できる。これは上述の折り返し歪みが拡散する範囲を狭くすることに相当する。しかしながら、短いタップ数の基底の変換を行うと、その変換により、電力集中の効率が悪くなり符号化効率劣化する課題があった。そこで、各周波数成分ごとに基底のタップ数を変化させる方法があるが、ＤＣＴ変換を用いる場合にタップ数を変化させることは困難であった。
【００８３】
また、信号電力を集中させるために用いる変換としてはウェーブレット変換が存在する。ウェーブレット変換はフィルタを用いて各周波数成分に分解するフィルタバンクの１種である（ＤＣＴも１種のフィルタバンクと解釈することもできる）。ここで、図３２は、ウェーブレット変換を用いて画像の符号化／復号化を行うシステムの構成例を示している。このシステムは、帯域分割フィルタバンクおよび帯域合成フィルタバンクの２種類のフィルタバンクから構成され、帯域分割フィルタバンクは、ディジタルフィルタであるローパスフィルタおよびハイパスフィルタ、ダウンサンプリング回路から、帯域合成フィルタバンクは、アップサンプリング回路、ディジタルフィルタであるローパスフィルタおよびハイパスフィルタ、並びに合成回路から構成される。
【００８４】
帯域分割フィルタバンクでは、ローパスフィルタおよびハイパスフィルタで画像をフィルタリングし、それらの出力をダウンサンプリング回路で間引くことにより、画像をＭ個の周波数帯域（バンド）に分割する。また、帯域合成フィルタバンクでは、各周波数帯域の画像がアップサンプリング回路で補間され、ローパスフィルタおよびハイパスフィルタでフィルタリングされる。さらに、フィルタリング結果が合成回路で合成されることにより、再び元の信号に復元される。この帯域分割フィルタバンクおよび帯域合成フィルタバンクを用いて画像信号を符号化／復号化する方式はサブバンド符号化／復号化と呼ばれる。
【００８５】
通常、帯域分割フィルタバンク（帯域合成フィルタバンクについても同様）は複数個を組合せてツリー状に構成される。ウェーブレット変換はこうしたツリー状のフィルタバンク実現することができ、上位階層のフィルタバンクで帯域分割した後の低域成分を次々に下位階層のフィルタバンクで帯域分割していく手法は、オクターブ分割と呼ばれる。
【００８６】
例えば図３３のように、最上位のフィルタバンクで、画像を４つのバンドに帯域分割した場合に、そのフィルタバンクの出力をレイヤ０と呼ぶことにすると、同図における場合、レイヤ０には４つのバンドＬＬ，ＬＨ，ＨＬ，ＨＨが存在する。オクターブ分割によれば、レイヤ０の低域成分ＬＬが、フィルタバンクによってさらに４分割され、以下、必要な回数だけ、前回得られた低域成分が分割されていく。ここで、以下、適宜、ｎ回目の分割により得られる出力を、レイヤ（ｎ−１）と呼ぶこととする。
【００８７】
こうしたウェーブレット変換などの新しい変換方式を用いることにより、ＤＣＴ変換では解決できない問題を解決することが出来る可能性がある。しかしながら、ウェーブレット変換を用いる場合には、ＤＣＴ変換の場合とは別な劣化である（３）リンギングが生じることが知られている（ただし、リンギングも本質的にはモスキートノイズなどと同様の原因（高域成分が失われること）によって生じる）。また、ウェーブレット変換を時間軸方向にどのように適用するかは依然未解決な課題として存在する。
【００８８】
さらに、ウェーブレット変換により得られる、帯域分割されたデータをどのように符号化するのが効率良いかも未解決な問題である。
【００８９】
本発明はこのような状況に鑑みてなされたものであり、ブロック歪みやモスキートノイズといった従来の動画像符号化方式では避けられなかった劣化を緩和するとともに、符号化効率を改善して、より低ビットレートでの画像の符号化を行うことができるようにするものである。
【００９０】
【課題を解決するための手段】
【００９５】
本発明の画像符号化装置は、入力された画像データを符号化する符号化装置において、画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかを判定し、判定された画像データをブロックに分割する分割手段と、画像データを、分割手段より出力されたブロックおよび分割の結果を示すブロック情報を含むデータとして符号化する符号化手段とを備え、分割手段は、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することによりブロックの大きさを決定し、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいてブロックの大きさを決定し、決定されたブロックの大きさをブロック情報とすることを特徴とする。
【００９６】
本発明の画像符号化方法は、入力された画像データを符号化する符号化装置の符号化方法において、画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかを判定し、判定された画像データをブロックに分割し、画像データを、分割手段より出力されたブロックおよび分割の結果を示すブロック情報を含むデータとして符号化し、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することによりブロックの大きさを決定し、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいてブロックの大きさを決定し、決定されたブロックの大きさがブロック情報として符号化されることを特徴とする。
【００９７】
本発明の画像復号化装置は、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することにより決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいて決定される大きさのブロックに分割された画像データ、および分割結果を示すブロック情報とが符号化された符号化データを、少なくとも含む伝送データを復号する画像復号化装置であって、ブロック情報に基づいて、符号化データを復号する復号化手段を備えることを特徴とする。
【００９８】
本発明の画像復号化方法は、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することにより決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいて決定される大きさのブロックに分割された画像データ、および分割結果を示すブロック情報とが符号化された符号化データを、少なくとも含む伝送データを復号する画像復号化方法であって、ブロック情報に基づいて、符号化データを復号することを特徴とする。
【０１０５】
本発明の画像符号化装置においては、画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかが判定され、判定された画像データがブロックに分割され、画像データが、ブロックおよび分割の結果を示すブロック情報を含むデータとして符号化され、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することによりブロックの大きさが決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいてブロックの大きさが決定され、決定されたブロックの大きさがブロック情報とされる。
【０１０６】
本発明の画像符号化方法においては、画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかが判定され、判定された画像データをブロックに分割し、画像データが、分割手段より出力されたブロックおよび分割の結果を示すブロック情報を含むデータとして符号化され、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することによりブロックの大きさが決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいてブロックの大きさが決定され、決定されたブロックの大きさがブロック情報として符号化される。
【０１０７】
本発明の画像復号化装置においては、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することにより決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいて決定される大きさのブロックに分割された画像データ、および分割結果を示すブロック情報とが符号されて生成される符号化データがブロック情報に基づいて、復号される。
【０１０８】
本発明の画像復号化方法においては、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することにより決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいて決定される大きさのブロックに分割された画像データ、および分割結果を示すブロック情報とが符号されて生成される符号化データがブロック情報に基づいて、復号される。
【０１１０】
【発明の実施の形態】
【０１２４】
図１は、本発明を適用したエンコーダの一実施例の構成を示している。なお、図中、図２７における場合と基本的構成が同様のものについては同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０１２５】
符号化されるべき画像データは、例えば、図２７における場合と同様に、図２４で説明したようなシーケンスで動きベクトル検出回路５０に入力される。そして、動きベクトル検出回路５０に入力された画像データは、例えば、やはり図２７における場合と同様にフレームメモリ５１に転送されて記憶される。
【０１２６】
フレームメモリ５１に記憶された各ピクチャの信号は、そこから読み出され、予測判定回路５４の制御の下に、演算部５３において、画像内予測、前方予測、後方予測、または両方向予測の演算が行なわれる。これらの処理のうち、いずれの処理を行なうかは、予測誤差信号（処理の対象とされている参照画像と、これに対する予測画像との差分）に対応して決定される。このため、動きベクトル検出回路５０は、この判定に用いられる予測誤差信号の絶対値和（自乗和でもよい）を生成する。
【０１２７】
また符号化される画像データは、ブロック分割回路１０２にも入力される。ブロック分割回路１０２は入力画像信号をその特性（性質）に応じた大きさのマクロブロックに分割する。前述したＭＰＥＧ２方式においては（ＭＰＥＧ１方式においても同様）、マクロブロックは１６画素×１６画素の固定の大きさであるが、本実施例では、マクロブロック（符号化ブロック）の大きさは可変とされている。また動き補償の単位（動き補償ブロック）も同様に可変とされている。
【０１２８】
即ち、本実施例では、例えば以下の３タイプに、マクロブロックおよび動き補償の単位の大きさが設定されるようになされている。
0003855286.tif 000002
【０１２９】
なお、タイプ１およびタイプ２のマクロブロックでは動きベクトルは１組（ｘ方向とｙ方向の１組）であるのに対してタイプ３のマクロブロックでは４組の動きベクトルが存在する。
【０１３０】
ここで、図２を参照して、上述の３タイプのマクロブロック（動き補償の単位）の構成を説明する。マクロブロックはいずれのタイプの場合においても４つの輝度ブロックＹ［１］乃至Ｙ［４］および２個の色差信号のブロックＣｂ［５］、Ｃr［６］から構成される。タイプ１の場合、各輝度ブロックは１６画素×１６画素の大きさであり、色差信号のブロックも同様に１６画素×１６画素の大きさである。そして、この場合、動き補償は４個の輝度ブロックをまとめて１つの単位として行なわれる。即ち、４個の輝度ブロックに対して１個（１組）の動きベクトルが対応される。色差信号についても同じ動きベクトルが用いられる。
【０１３１】
タイプ２のマクロブロックの場合、４個の輝度ブロックは、それぞれ８画素×８画素の大きさであり、色差信号のブロックも同様に８画素×８画素の大きさである。そして、この場合、動き補償は４個の輝度ブロックをまとめて１つの単位として行なわれる。即ち、４個の輝度ブロックに対して１個の動きベクトルが対応される。色差信号についても同じ動きベクトルが用いられる。
【０１３２】
タイプ３のマクロブロックの場合、各輝度ブロックは８画素×８画素の大きさであり、色差信号のブロックも同様に８画素×８画素の大きさである。動き補償は各輝度ブロックをそれぞれ１単位として行なわれる。即ち、４個の輝度ブロック各々に対して１個の動きベクトルが対応され、従って、１つのマクロブロックには合計４個の動きベクトルが対応する。色差信号は８画素×８画素のブロックを４つの４画素×４画素のサブブロックに分割し、（Ｃｂ［５−１］乃至Ｃｂ［５−４］、Ｃr［６−１］乃至Ｃr［６−４］）それぞれのサブブロックに対し、対応する輝度ブロックの動きベクトルが用いられる。例えばＣｂ［５−１］およびＣｒ［６−１］に対してはＹ［１］の動きベクトルが用いられる。
【０１３３】
なお、本実施例では、上記３タイプのみを用いて説明するが、マクロブロックの大きさ、動き補償の単位は任意の値をとり得る。
【０１３４】
ブロック分割回路１０２は、入力画像信号の性質に応じて入力画像信号を上記３つのタイプのいずれかマクロブロックに分割する。ここで、ブロック分割回路１０２におけるブロック分割方法について説明する。本実施例では、例えば、符号化するフレームがフレーム内符号化フレーム（Ｉピクチャ）の場合とそれ以外のフレーム間符号化フレーム（Ｐ，Ｂピクチャ）の場合とで、異なる分割方法を用いる。
【０１３５】
まずＩピクチャの場合について、図３のフローチャートを参照して説明する。Ｉピクチャではフレーム内符号化を行なうため入力フレームそのものの性質を用いて分割を行なう。またＩピクチャではタイプ１またはタイプ２の２通りのみとり得る。これは、Ｉピクチャの場合、動き補償は行われないため、動き補償の単位は処理に無関係となることから、タイプ２と３とは同一の構成として扱われることとなるからである。
【０１３６】
まず入力フレーム全体を、例えば、１６画素×１６画素の固定サイズのブロック（以下、適宜、固定ブロックという）に分割し（ステップＳ１）、各１６画素×１６画素ブロックについて、画像の性質を表す物理量としての、例えばその分散を計算する（ステップＳ２）。
【０１３７】
そして、注目固定ブロックと、それに隣接する３つの固定ブロック（例えば、注目固定ブロックの右、下、および右下に隣接する固定ブロックなど）の４つの分散の和を求め（ステップＳ３）、その和が所定の閾値以下である場合、注目固定ブロックを含む、その４つの固定ブロックを統合し、１つの３２画素×３２画素のマクロブロック（タイプ１のマクロブロック）とする（ステップＳ４）。この統合処理（ステップＳ３およびＳ４）は、フレーム中の全ての固定ブロックについて例えば、いわゆるラインスキャン順、即ち、フレームの左上から右下に向かって順時行なっていく。但し、すでに統合された固定ブロックは無視して行う。さらに、統合しようとする固定ブロックが、既に他の固定ブロックと統合されている場合には、統合処理は行わないようにする。そして、フレーム中の全ての固定ブロックについて上記の統合処理が終った後に残っている固定ブロックは１６画素×１６画素のマクロブロック（タイプ２のマクロブロック）とする。
【０１３８】
次にフレーム間符号化フレーム、すなわち、ＰピクチャまたはＢピクチャの場合についてブロック分割方法について、図４のフローチャートを参照して説明する。フレーム間符号化フレームではフレーム間差分信号が符号化される。従ってブロック分割もこのフレーム間差分信号の性質に基づいて行なう。なお、フレーム間符号化フレームの場合、上記タイプ１、２、３のいずれのマクロブロックにも分割され得る。
【０１３９】
まず、入力フレーム全体を３２画素×３２画素の固定サイズのブロック（これも、以下適宜、固定ブロックという）に分割する（ステップＳ１４）。そして、この固定ブロックを４等分した４つの８画素×８画素のブロックについて動きベクトルを検出し、その予測誤差（ＭＥ残差）の絶対値和を計算する（ステップＳ１５）。
【０１４０】
同時に、入力フレーム全体を１６画素×１６画素の固定ブロックに分割し（ステップＳ１１）、それぞれについて動きベクトルを検出し、さらに、そのＭＥ残差の絶対値和を計算する（ステップＳ１２）。
【０１４１】
そして、注目固定ブロックと、それに隣接する３つの１６画素×１６画素の固定ブロックのＭＥ残差の絶対値和の合計を求め（ステップＳ１３）、その合計値が、対応する３２画素×３２画素ブロックのＭＥ残差の絶対値和よりも大きい場合、４つの１６画素×１６画素ブロックを統合し１つの３２画素×３２画素のマクロブロック（タイプ１のマクロブロック）とする（ステップＳ１６）。この統合処理（ステップＳ１６）は、例えばＩピクチャの場合と同様に、ラインスキャン順に順時行う。そして、１フレームの全ての１６画素×１６画素の固定ブロックについてステップＳ１３の統合処理が終了した後に残っている１６画素×１６画素の固定ブロックは、大きさが１６画素×１６画素の１つのマクロブロックとする。
【０１４２】
フレーム間符号化フレームの場合、大きさが１６画素×１６画素のマクロブロックは、図２に示したタイプ２と３の２種類存在する。そこで、次に各１６画素×１６画素マクロブロックがタイプ２またはタイプ３のいずれのマクロブロックであるか決定する。
【０１４３】
まず１６画素×１６画素のマクロブロックを４つの８画素×８画素のブロックに分割する（ステップＳ１７）。各８画素×８画素のブロックそれぞれについて動きベクトルを検出し、そのＭＥ残差の絶対値和を計算する（ステップＳ１８）。
【０１４４】
そして、４つの８画素×８画素のブロックのＭＥ残差の和の合計が、それに対応する１６画素×１６画素のマクロブロックのＭＥ残差の和より小さい場合、このマクロブロックをタイプ３のマクロブロックとする（ステップＳ１９）。従って、この場合動き補償の単位の大きさは８画素×８画素となる。それ以外の場合、そのマクロブロックはタイプ２のマクロブロックとする。
【０１４５】
なお、図３および図４におけるブロック分割および動きベクトル検出は、通常は輝度信号のみを用いて行われるが、さらに色差信号も用いて行うようにしても良い。
【０１４６】
ブロック分割回路１０２は、例えば上記のように符号化するフレームを３つのタイプのうちのいずれかのマクロブロックに分割する。この分割により、符号化するフレームの全ての画素はいずれかのマクロブロックに必ず含まれ、また、ある画素が、２つ以上のマクロブロックに重複して含まれることはない。
【０１４７】
図１に戻り、マクロブロックアドレス発生回路１０６は符号化するマクロブロックのマクロブロックアドレスmb_addressを発生する。本実施例では、マクロブロックアドレスは、例えば、フレームの最も左上のマクロブロックが１とされ、以下、符号化される順番に（即ち、例えばラインスキャン順に）１づつ増加する連続する番号とされている。
【０１４８】
ここで、マクロブロックアドレスの割り当て方法（各マクロブロックの符号化順の決定方法）について図５を用いて説明する。
【０１４９】
フレームが、例えば図５のようにマクロブロックに分割されているものとする。ただし、図５においてはフレームの上部のみを図示してある。フレームの最も左上のマクロブロックは必ず最初に符号化され、そのマクロブロックアドレスは１とされる。つぎにフレームを左から右にスキャンしていく。このとき最初に検出される、まだ符号化されていないマクロブロックが次に符号化するマクロブロックであり、前回検出されたマクロブロックのアドレスに１を加算したものが、今回検出されたマクロブロックのマクロブロックアドレスとなる。以下、同様にして全てのマクロブロックについて、マクロブロックアドレスが決定される。図５ではマクロブロックアドレスが２６まで示されている。
【０１５０】
マクロブロックアドレスmb_addressはアドレス発生回路１０３、マクロブロックサイズ発生回路１０４、動き補償モード発生回路１０５、および可変長符号化回路５８に出力される。
【０１５１】
マクロブロックサイズ発生回路１０４はブロック分割回路１０２によって決定されたマクロブロックのタイプに応じて符号化するマクロブロックの大きさを示すマクロブロックサイズmb_sizeを発生する。タイプ１のマクロブロックの場合、mb_sizeは３２であり、タイプ２またはタイプ３のマクロブロックの場合、mb_sizeは１６となる。マクロブロックサイズ発生回路１０４はマクロブロックアドレスmb_addressそれぞれについて、上記マクロブロックの大きさが１６または３２のいずれかであるかを示す信号mb_sizeを発生し、動きベクトル検出回路５０、予測モード判定回路５４、演算部５３、動き補償回路６４、量子化スケール発生回路１０１、および可変長符号化回路５８に出力する。
【０１５２】
動き補償モード発生回路１０５はブロック分割回路１０２によって決定されたマクロブロックのタイプに応じて符号化するマクロブロックの動き補償の単位となる大きさを示す動き補償モードを発生する。なお、本実施例の場合、符号化するマクロブロックに対応する動きベクトルの組数は、そのマクロブロックを構成する動き補償の単位の数に一致する。即ち、タイプ１および２のマクロブロックの場合、動きベクトルは水平、垂直方向に１本ずつの１組である。この場合の動き補償モードは、モード１とされる。また、タイプ３のマクロブロックの場合、動きベクトルは４組となる。この場合、動き補償モードは、モード２とされる。動き補償モード発生回路１０５はマクロブロックアドレスmb_addressそれぞれについて上記のいずれのモードであるかを示す信号mc_modeを発生する。mc_modeは動きベクトル検出回路５０、予測判定回路５４、演算部５３、動き補償回路６４および可変長符号化回路５８に出力される。
【０１５３】
アドレス発生回路１０３は、符号化するマクロブロックのデータをフレームメモリ５１から読み出すために、ブロック分割回路１０２によって決定されたマクロブロックのタイプおよびマクロブロックアドレスmb_addressに対応して、読み出しアドレスを発生し、フレームメモリ５１および動きベクトル検出回路５０に出力する。
【０１５４】
動きベクトル検出回路５０は、符号化するマクロブロックについての動きベクトルを、マクロブロックサイズmb_sizeおよび動き補償モードmc_modeに従って検出する。動きベクトル検出回路はまた、アドレス発生回路１０３からの読み出しアドレスに従って符号化するマクロブロックのデータをフレームメモリ５１から読み出し、演算部５３に出力する。
【０１５５】
また、動きベクトル検出回路５０は、予測判定回路５４において、画像内予測、前方予測、後方予測、または両方向予測のいずれの予測を行なうかを決定するための予測誤差（ＭＥ残差）の絶対値和を、図２７における場合と同様にして生成し、予測判定回路５４に出力する。
【０１５６】
予測判定回路５４は、やはり、図２７における場合と同様にして、予測モードを設定する。
【０１５７】
このように、動きベクトル検出回路５０は、参照画像のマクロブロック（符号化するマクロブロック）の信号を、演算部５３に供給するとともに、４つの予測モードのうち、予測判定回路５４により選択された予測モードに対応する予測画像と参照画像の間の動きベクトルを検出し、可変長符号化回路５８と動き補償回路６４に出力する。なお、演算部５３に供給する画像信号は、タイプ１乃至３のうちのいずれかのマクロブロック単位である。
【０１５８】
予測判定回路５４は、動きベクトル検出回路５０が前方原画像部５１ａよりＩピクチャの画像データを読み出しているとき、予測モードとして、フレーム（画像）内予測モード（動き補償を行わないモード）を設定し、演算部５３のスイッチ５３ｄを接点ａ側に切り替える。これにより、Ｉピクチャの画像データは、ＤＣ差分検出回路１００、接点ａ、およびメモリ１０７を介してウェーブレット変換回路１２１に出力される。
【０１５９】
演算部５３より出力されたＩピクチャの画像データは、ウェーブレット変換回路１２１においてウェーブレット変換処理され、オクターブ分割され、各レイヤ、バンドのウェーブレット係数に変換される。このウェーブレット係数は、量子化回路５７に入力され、量子化スケール発生回路１０１によって決定された量子化ステップとあらかじめ設定された各レイヤ、バンドに対する重み係数を用いて量子化された後、可変長符号化回路５８に出力される。
【０１６０】
ここで、図６を用いてウェーブレット変換回路１２１について説明する。ウェーブレット変換回路１２１では、複数のマクロブロックに対し、ウェーブレット変換処理が施されるようになされている。
【０１６１】
即ち、本実施例では、ウェーブレット変換は例えば１フレームを構成するマクロブロック全体に対して行なわれるようになされている。このため演算部５３から出力されたマクロブロックは、順次メモリ１０７に蓄えられ、そこに１フレーム分のマクロブロックが記憶されると、その１フレーム分の画像データが、ウェーブレット変換回路１２１に供給されるようになされている。
【０１６２】
ウェーブレット変換回路１２１では、入力画像信号は、まず水平方向ローパスフィルタ６−２および水平方向ハイパスフィルタ６−３に入力される。なお、フィルタ６−２および６−３のフィルタ係数はフィルタ係数算出回路６−１から供給され、あらかじめ設定されている（後述する他のフィルタについても同様）。フィルタ６−２または６−３では、画像の水平方向についての低域または広域成分が取り出され（フィルタリングされ）、その出力はダウンサンプリング回路６−４または６−５によって水平方向に１／２に間引かれる。ダウンサンプリング回路６−４および６−５の出力の時点で画像は、水平方向に２つのバンドに分割される。以下、適宜、ローパスフィルタ、ハイパスフィルタ、およびそれらの出力を間引く２つのダウンサンプル回路の組合せを帯域分割フィルタバンクという。
【０１６３】
ダウンサンプリング回路６−４および６−５の出力はそれぞれ同様に垂直方向に帯域分割を行う帯域分割フィルタバンクに入力され処理される。即ち、ダウンサンプリング回路６−４の出力は垂直方向ローパスフィルタ６−６および垂直方向ハイパスフィルタ６−７に入力されてフィルタリングされる。フィルタ６−６と６−７の出力はダウンサンプリング回路６−１０と６−１１に入力され、垂直方向に１／２に間引かれる。これにより、ダウンサンプリング回路６−４の出力は、垂直方向に帯域分割される。ダウンサンプリング回路６−５の出力も、フィルタ６−８，６−９、ダウンサンプリング回路６−１２，６−１３で構成される帯域分割フィルタバンクに入力され、同様に処理されることで垂直方向に帯域分割される。この２つの帯域分割フィルタバンク（垂直方向、帯域分割フィルタバンク）の出力の時点（レイヤ０）で、入力画像は４つのバンド（ＬＬ、ＬＨ、ＨＬ、ＨＨ）に分割される。この４つのバンドはレイヤ０のバンドということになる。
【０１６４】
ここで、以下、適宜、以上の３つの帯域分割フィルタバンクの組合せを４分割フィルタバンクという。
【０１６５】
ダウンサンプリング回路６−１０の出力（ＬＬ）は後段の４分割帯域分割フィルタバンクに入力され、上述のようにして４つのバンドに分割される。即ち、この時点（レイヤ１）で、ＬＬバンドは４つのバンド（ＬＬＬＬ、ＬＬＬＨ、ＬＬＨＬ、ＬＬＨＨ）に分割される。従って、入力画像は合計７つのバンドに分割されたことになる。
【０１６６】
２つの４分割フィルタバンクにより得られた信号のうち、最も低域の成分（ダウンサンプリング回路６−２２の出力（ＬＬＬＬ））は、さらに後段の４分割帯域分割フィルタバンクに入力され、やはり４つのバンドに分割される。この時（レイヤ２）でＬＬＬＬバンドは、４つのバンド（ＬＬＬＬＬＬ、ＬＬＬＬＬＨ、ＬＬＬＬＨＬ、ＬＬＬＬＨＨ）に分割されるので、入力画像は合計１０個のバンドに分割されたことになる。
【０１６７】
即ち、以上のウェーブレット変換の結果、画像は図７に示すように帯域分割される。
【０１６８】
なお、図６の実施例では４分割帯域分割フィルタバンクを３個用いて、画像を、１０バンドに分割するウェーブレット変換回路１２１を示したが、４分割帯域分割フィルタバンクを設ける数は特に限定されるものではない。
【０１６９】
また、ウェーブレット変換回路１２１はローパスフィルタおよびハイパスフィルタを多数用いて構成されるが、それぞれのフィルタ係数は必ずしも同じでなくて良い。さらに、ウェーブレット変換回路１２１で用いるフィルタ係数は、フィルタ係数算出回路６−１で求められるが、このフィルタ係数が決まれば逆ウェーブレット変換で用いるフィルタ係数（以下、適宜、逆フィルタ係数という）も一意に決定される。そこで、フィルタ係数算出回路６−１では、フィルタ係数とともに、逆フィルタ係数も求められるようになされている。逆ウェーブレット変換で用いられる逆フィルタ係数は逆ウェーブレット変換回路１２２、および可変長符号化回路５８に出力される。また、４分割帯域分割フィルタバンクの個数（レイヤの数）も、ウェーブレット変換回路１２１から、逆ウェーブレット変換回路６１、および可変長符号化回路５８に出力される。
【０１７０】
符号化、即ち、ここでは、量子化および可変長符号化はマクロブロック単位で行なわれるため、１フレームの画像に対するウェーブレット変換を行った後、マクロブロックを再構成する必要がある。この再構成処理はマクロブロック構成回路１０９で行なわれる。マクロブロック構成回路１０９ではマクロブロックアドレスmb_address、マクロブロックサイズmb_sizeを用いてウェーブレット変換回路１２１の出力からマクロブロックを、ラインスキャン順（従って、アドレスmb_addressの昇順）に、再構成し、量子化回路５７に出力する。
【０１７１】
ここで、ウェーブレット変換後のマクロブロックの構造を図８に示す。図８（Ａ）は輝度信号のウェーブレット変換結果を示し、図８（Ｂ）は色差信号のウェーブレット変換結果を示している。また図８ではマクロブロックの大きさが１６画素×１６画素の場合（従って、タイプ２または３の場合）を示している。３２画素×３２画素ブロックの場合（タイプ１の場合）も同様である。各マクロブロックのデータは各レイヤ、バンドで対応する位置のウェーブレット変換係数から構成される。レイヤｎで各マクロブロックに対応する変換係数の大きさはマクロブロックサイズmb_sizeを用いて、mb_size/2(n+1)で与えられる。例えばマクロブロックサイズが１６である場合、レイヤ０での各バンドで対応するデータは、輝度信号については、対応する位置の８×８個のウェーブレット変換係数となる。またこの時マクロブロック中の４つの輝度ブロックはそれぞれ４×４個のウェーブレット変換係数となる。
【０１７２】
色差信号についても同様である。このようにマクロブロックは１０個の各バンドの対応する変換係数（ウェーブレット変換係数）から構成されるようになる。
【０１７３】
量子化スケール発生回路１０１は送信バッファ５９のデータ蓄積量（バッファ蓄積量）および原画像の性質に対応して量子化ステップを決定し、量子化スケールを量子化回路５７、逆量子化回路６０および可変長符号化回路５８に出力する。量子化スケールはマクロブロックサイズに基づき、マクロブロック単位で設定される。
【０１７４】
量子化回路５７ではウェーブレット変換された信号が、量子化スケール発生回路１０１で決定された量子化スケールを用いて量子化される。なお、量子化スケールには、必要に応じて、重み係数が乗算される。
【０１７５】
ここで、重み係数について説明する。本実施例ではウェーブレット変換により、画像が１０個のバンドに帯域分割される。一般的な画像信号について、このような帯域分割を行なうと低周波成分に電力が集中する。またこの低周波成分は視覚的にも重要であり、低周波成分の劣化は復号画像の画質に悪影響を与える。これに対して高周波成分の電力はあまり集中せず、さらに、高周波成分を落しても視覚的にはあまり目立たない。
【０１７６】
このようなことから低周波成分により多くのビットを割り当てることが視覚的に有効である。そこで、ある量子化スケールに対して各レイヤ、バンドに対応して重み係数ｗをかけて量子化する。各レイヤ、バンドに対する重み係数の例を図９に示す。重み係数は、あらかじめ量子化回路５７に供給されるようになされており、さらに量子化回路５７を介して、逆量子化回路６０および可変長符号化回路５８にも供給されるようになされている。但し、重み係数は符号化の途中で変更するようにすることも可能である。なお、この場合、変更した重み係数は、逆量子化回路６０および可変長符号化回路５８に供給するようにする必要がある。
【０１７７】
量子化回路５７では、次式で示される演算に対応する量子化処理が行われることにより、量子化係数Ｓが出力される。
【０１７８】
Ｑ＝（Ｓ×ｗ）//ｑ
但し、Ｓはウェーブレット変換係数、Ｗは重み係数、ｑは量子化スケールを表す。また、Ａ／／Ｂは、Ａ／Ｂの少数点以下を四捨五入する演算を意味する。
【０１７９】
可変長符号化回路５８は、量子化回路５７より供給される量子化ステップ（スケール）に対応して、量子化回路５７より供給される画像データ（いまの場合、Ｉピクチャのデータ）を、必要に応じてテーブルを参照しながら、例えばハフマン符号化や算術符号化などすることにより可変長符号に変換し、送信バッファ５９に出力する。
【０１８０】
可変長符号化回路５８にはまた、量子化回路５７より量子化ステップ（スケール）および重み係数、予測判定回路５４より予測モード（画像内予測、前方予測、後方予測、または両方向予測のいずれが設定されたかを示すモード）、動きベクトル検出回路５０より動きベクトル、マクロブロックサイズ発生回路１０４よりマクロブロックサイズ、動き補償モード発生回路１０５より動き補償モード（マクロブロック中の動きベクトルの個数（即ち、マクロブロックを構成する動き補償単位の数）を示す）、マクロブロックアドレス発生回路１０６よりマクロブロックアドレス、ウェーブレット変換回路１０７よりウェーブレット変換係数（逆フィルタ係数）およびウェーブレットレイヤ数が入力されており、これらも可変長符号化される。
【０１８１】
なお、マクロブロックアドレスについては、前回符号化、伝送したマクロブロックのマクロブロックアドレスとの差分（マクロブロックアドレスインクリメント）が符号化されて出力される。
【０１８２】
可変長符号化回路５８から出力されるビットストリームのシンタクス（フォーマット）については後述する（図１４乃至図２２）。
【０１８３】
送信バッファ５９は、入力されたデータを一時蓄積し、蓄積量に対応するデータを量子化回路５７に出力する。これにより、前述したように、このようにして、送信バッファ５９のオーバフローまたはアンダフローを防止するようになされている。
【０１８４】
送信バッファ５９に蓄積されたデータは、所定のタイミングで読み出され、伝送路に出力され、または記録媒体３に記録される。
【０１８５】
一方、量子化回路５７より出力されたＩピクチャのデータは、可変長符号化回路５８だけでなく、逆量子化回路６０にも入力され、量子化回路５７より供給される量子化スケールおよび重み係数に対応して逆量子化される。即ち、逆量子化回路６０では、次式に示す演算に対応する処理が行われることで逆量子化係数（この場合ウェーブレット変換係数）Ｓ’が出力される。
【０１８６】
Ｓ’＝（Ｑ×ｑ）／ｗ
【０１８７】
逆量子化回路６０の出力は、メモリ１０８を介して逆ウェーブレット変換回路１２２に入力される。ここで、逆ウェーブレット変換回路１２２の構成例を図１０に示す。
【０１８８】
逆ウェーブレット変換はウェーブレット変換回路１２１における単位と同一単位、従って本実施例ではフレーム単位で行なわれる。このため逆量子化回路６０の出力は、メモリ１０８に蓄えられ、そこに１フレーム分のウェーブレット変換係数が記憶されると、逆ウェーブレット変換回路１２２に供給される。
【０１８９】
逆ウェーブレット変換ではウェーブレット変換とは逆にレイヤ２から帯域合成が行なわれる。即ち、レイヤ２のＬＬＬＬＬＬバンドは垂直方向アップサンプリング回路１０−１に入力され垂直方向に２倍にアップサンプリング（補間）された後、垂直方向ローパスフィルタ１０−５に入力される。またレイヤ２のＬＬＬＬＬＨバンドは垂直方向アップサンプリング回路１０−２に入力され垂直方向に２倍にアップサンプルされた後、垂直方向ハイパスフィルタ１０−６に入力されて垂直方向にフィルタリングされる。フィルタ１０−５および１０−６の出力は加算器（合成回路）１０−９に入力され加算される。これにより２つのバンドＬＬＬＬＬＬおよびＬＬＬＬＬＨが１つのバンドに合成される。ここで、以下、適宜、垂直方向アップサンプリング回路１０−１，１０−２、垂直方向ローパスフィルタ１０−５、垂直方向ハイパスフィルタ１０−６、加算器１０−９のような組合せを垂直方向帯域合成フィルタバンクとよぶ。
【０１９０】
同様にレイヤ２のＬＬＬＬＨＬバンドおよびＬＬＬＬＨＨバンドは、垂直方向アップサンプリング回路１０−３，１０−４、垂直方向ハイパスフィルタ１０−７、垂直方向ローパスフィルタ１０−８、および加算器１０−１０で構成される垂直方向帯域合成フィルタバンクに供給され、１つのバンドに合成される。
【０１９１】
加算器１０−９の出力は水平方向アップサンプリング回路１０−１１に入力され水平方向に２倍にアップサンプルされた後、水平方向ローパスフィルタ１０−１３に入力されて水平方向にフィルタリングされる。同時に、加算器１０−１０の出力は水平方向アップサンプリング回路１０−１２に入力され水平方向に２倍にアップサンプルされた後、水平方向ハイパスフィルタ１４に入力されて水平方向にフィルタリングされる。フィルタ１０−１３および１０−１４の出力は加算器１０−１５に出力され加算される。これによりレイヤ２の４バンドは１つのバンドに合成され、これによりＬＬＬＬバンドが再構成される。以下、適宜、水平方向アップサンプリング回路１０−１１，１０−１２、水平方向ローパスフィルタ１０−１３、水平方向ハイパスフィルタ１０−１４、加算器１０−１５のような組合せを水平方向帯域合成フィルタバンクと呼ぶ。また、垂直方向帯域合成フィルタバンクおよび水平方向帯域合成フィルタバンクを組合せた、４つのバンドから１つのバンドを合成するフィルタバンクを４バンド合成帯域合成フィルタバンクと呼ぶ。
【０１９２】
加算器１０−１５の出力（ＬＬＬＬ）およびレイヤ１の３つのバンド（ＬＬＬＨ、ＬＬＨＬ、ＬＬＨＨ）は、後段の４バンド合成帯域合成フィルタバンクに供給され、上述の場合と同様にして１つのバンドに再構成される。これによりＬＬバンドが再構成されることになる。
【０１９３】
再構成されたバンドＬＬ（加算器１０−３０の出力）およびレイヤ０の３つのバンド（ＬＨ、ＨＬ、ＨＨ）は、さらに後段の４バンド合成帯域合成フィルタバンクに供給され帯域合成される。この４バンド合成帯域合成フィルタバンクの出力（加算器１０−４５の出力）が逆ウェーブレット変換回路１２２の出力となる。
【０１９４】
逆ウェーブレット変換回路１２２では多数のフィルタが用いられているが、これらで用いられるフィルタ係数（逆フィルタ係数）は、上述したように、ウェーブレット変換回路１２１（フィルタ係数算出回路６−１）で決定され供給される。逆ウェーブレット変換回路１２２はウェーブレット変換回路１２２から供給される変換係数およびレイヤ数に従って逆ウェーブレット変換が行われる。
【０１９５】
次に、予測画像を生成するための動き補償はマクロブロック単位で行なわれるため、逆ウェーブレット変換後、マクロブロックを再構成する必要がある。そこで、逆ウェーブレット変換回路１２２から出力される逆ウェーブレット変換係数（画像データ）は、マクロブロック構成回路１１０に供給され、マクロブロックに再構成される。即ち、マクロブロック構成回路１１０は、マクロブロックアドレスmb_address、マクロブロックサイズmb_sizeに基づいて、逆ウェーブレット変換回路１２２の出力からマクロブロックを構成し、加算器６２を介してフレームメモリ６３の前方予測画像部６３ａに供給して、記憶させる。
【０１９６】
以上のようにＩピクチャが処理された後、動きベクトル検出回路５０は、前述したように、後方原画像部５１ｃに記憶されているＰピクチャの画像データの処理を開始する。そして、上述した場合と同様に、マクロブロック単位でのフレーム間差分（予測誤差）の絶対値和が、動きベクトル検出回路５０から予測判定回路５４に供給される。予測判定回路５４は、このＰピクチャのマクロブロックの予測誤差の絶対値和に対応して、画像内予測、もしくは前方予測の予測モードを設定する。
【０１９７】
演算部５３はＩピクチャ以外の場合にフレーム内予測モードが設定されたとき、スイッチ５３ｄを接点ａ側に切り替える。このとき演算部５３に入力されてくる信号はイントラＤＣ検出差分回路１００に入力される。イントラＤＣ検出差分回路１００は、この場合（Ｉピクチャ以外の画像データについて、フレーム内予測モードが設定された場合）マクロブロック中の６つのブロックＹ［１］乃至Ｙ［４］、Ｃｂ［５］、Ｃｒ［６］の各ブロックそれぞれについての平均値ＤＣ［１］乃至ＤＣ［６］を計算する。さらにイントラＤＣ検出差分回路１００は各ブロックＹ［１］乃至Ｙ［４］、Ｃｂ［５］、Ｃr［６］の各画素値からそれぞれの平均値ＤＣ［１］乃至ＤＣ［６］を減算し、その差分値をＩピクチャの場合と同様にメモリ１０７を介してウェーブレット変換回路１２１に出力する。
【０１９８】
ここで、ウェーブレット変換回路１２１におけるウェーブレット変換はマクロブロック単位ではなくフレーム単位で行なわれる。また、フレーム間差分信号（予測誤差）は、動き検出がほぼ正確になされていれば、一般に画像信号そのものより振幅の小さい信号となる（平均値は０近傍となる）。従って、１フレームにフレーム内符号化およびフレーム間符号化されるマクロブロックが混在する場合、フレーム内符号化されるマクロブロックをそのまま扱うと、図１１（Ａ）に示すように、フレーム間符号化されるマクロブロックとの境界で大きな不連続を生じることになる。その結果、このようなフレームをウェーブレット変換すると、境界部分に余分な大きな電力が発生し、圧縮効率が劣化する。そこで、これを避けるため、Ｉピクチャ以外のフレーム内符号化されるマクロブロックについては、その平均値を減算することで、図１１（Ｂ）に示すように、信号振幅を小さくするようになされている。
【０１９９】
イントラＤＣ検出差分回路１００で計算された平均値ＤＣ［１］乃至ＤＣ［６］（以下、適宜、イントラＤＣという）は可変長符号化回路５８に出力され可変長符号化された後、出力される。なお、イントラＤＣについては、直前に符号化されたイントラＤＣとの差分が計算され、その差分値が可変長符号化される。
【０２００】
また、平均値からの差分が計算されたマクロブロックは、メモリ１０７、ウェーブレット変換回路１２１、マクロブロック構成回路１０９、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。さらに、このデータは、逆量子化回路６０、メモリ１０８、逆ウェーブレット変換回路１２２、マクロブロック構成回路１１０を介して局所復号され、加算器６２を介してフレームメモリ６３の後方予測画像部６３ｂに供給され、記憶される。ただし、加算器６２ではマクロブロック中の各ブロックに対し平均値ＤＣ［１］乃至ＤＣ［６］が加算される。
【０２０１】
前方予測モードの時、スイッチ５３ｄは接点ｂに切り替えられるとともに、フレームメモリ６３の前方予測画像部６３ａに記憶されている画像（いまの場合Ｉピクチャの画像）データが読み出され、動き補償回路６４により、動きベクトル検出回路５０が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路６４は、予測判定回路５４より前方予測モードの設定が指令されたとき、前方予測画像部６３ａの読み出しアドレスを、動きベクトル検出回路５０がいま出力しているマクロブロックの位置に対応する位置から動きベクトルに対応する分だけずらしてデータを読み出し、予測画像データを生成する。なお、このとき読み出すデータ量はマクロブロックサイズによって決定される。またタイプ３のマクロブロックの場合、４本の動きベクトルを用いて予測画像データが生成される。
【０２０２】
動き補償回路６４より出力された予測画像データは、演算器５３ａに供給される。演算器５３ａは、参照画像のマクロブロックのデータから、動き補償回路６４より供給された、このマクロブロックに対応する予測画像データを減算し、その差分（予測誤差）を出力する。なお、このときの各マクロブロックのデータ数はマクロブロックサイズによって示される。
【０２０３】
この差分データは同様にメモリ１０７を介してウェーブレット変換回路１２１に供給される。そして、ウェーブレット変換回路１２１によりウェーブレット変換された後、マクロブロック構成回路１０９、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。また、このデータは、逆量子化回路６０、メモリ１０８、逆ウェーブレット変換回路１２２、マクロブロック構成回路１１０を介して局所復号され加算器６２に入力される。
【０２０４】
この演算器６２にはまた、演算器５３ａに供給されている予測画像データと同一のデータが供給されている。演算器６２は、マクロブロック構成回路１１０が出力する差分データに、動き補償回路６４が出力する予測画像データを加算する。これにより、元の（復号した）Ｐピクチャの画像データが得られる。このＰピクチャの画像データは、フレームメモリ６３の後方予測画像部６３ｂに供給され、記憶される。
【０２０５】
動きベクトル検出回路５０は、ＩピクチャとＰピクチャのデータが前方予測画像部６３ａと後方予測画像部６３ｂにそれぞれ記憶されると、前述したように、Ｂピクチャの処理を実行する。即ち、まず予測判定回路５４においては、マクロブロック単位でのフレーム間差分の絶対値和の大きさに対応して、予測モードがフレーム内予測モード、前方予測モード、後方予測モード、または両方向予測モードのいずれかに設定される。
【０２０６】
前述したように、フレーム内予測モードまたは前方予測モードの時、スイッチ５３ｄは接点ａまたはｂに切り替えられる。この場合、Ｐピクチャにおける場合と同様の処理が行われる。
【０２０７】
また、後方予測モードまたは両方向予測モードが設定された時、スイッチ５３ｄは、接点ｃまたはｄにそれぞれ切り替えられる。
【０２０８】
スイッチ５３ｄが接点ｃに切り替えられる後方予測モードの時、後方予測画像部６３ｂに記憶されている画像（いまの場合、Ｐピクチャの画像）データが読み出され、動き補償回路６４により、動きベクトル検出回路５０が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路６４は、予測判定回路５４より後方予測モードの設定が指令されたとき、後方予測画像部６３ｂの読み出しアドレスを、動きベクトル検出回路５０がいま出力しているマクロブロックの位置に対応する位置から動きベクトルに対応する分だけずらしてデータを読み出し、予測画像データを生成する。なお、このとき読み出すデータ量はマクロブロックサイズによって決定される。またタイプ３のマクロブロックの場合、４本の動きベクトルを用いて予測画像データが生成される。
【０２０９】
動き補償回路６４より出力された予測画像データは、演算器５３ｂに供給される。演算器５３ｂは、参照画像のマクロブロックのデータから、動き補償回路６４より供給された、このマクロブロックに対応する予測画像データを減算し、その差分（予測誤差）を出力する。なお、このとき各マクロブロックのデータ数はマクロブロックサイズによって示される。
【０２１０】
この差分データはメモリ１０７を介して、ウェーブレット変換回路１２１に供給される。そして、ウェーブレット変換回路１２１においてウェーブレット変換された後マクロブロック構成回路１０９、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。
【０２１１】
スイッチ５３ｄが接点ｄに切り替えられている両方向予測モードの時、前方予測画像部６３ａに記憶されている画像（いまの場合、Ｉピクチャの画像）データと、後方予測画像部６３ｂに記憶されている画像（いまの場合、Ｐピクチャの画像）データが読み出され、動き補償回路６４により、動きベクトル検出回路５０が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路６４は、予測判定回路５４より両方向予測モードの設定が指令されたとき、前方予測画像部６３ａと後方予測画像部６３ｂの読み出しアドレスを、動きベクトル検出回路５０がいま出力しているマクロブロックの位置に対応する位置から動きベクトル（この場合の動きベクトルは、前方予測画像用と後方予測画像用の２つとなる）に対応する分だけずらしてデータを読み出し、予測画像データを生成する。なお、このとき読み出すデータ量はマクロブロックサイズによって示される。またタイプ３のマクロブロックの場合、４本の動きベクトルを用いて予測画像データが生成される。
【０２１２】
動き補償回路６４より出力された予測画像データは、演算器５３ｃに供給される。演算器５３ｃは、動きベクトル検出回路５０より供給された参照画像のマクロブロックのデータから、動き補償回路６４より供給された予測画像データの平均値を減算し、その差分を出力する。なお、このとき各マクロブロックのデータ数はマクロブロックサイズによって示される。
【０２１３】
この差分データはやはりメモリ１０７、ウェーブレット変換回路１２１、マクロブロック構成回路１０９、量子化回路５７、可変長符号化回路５８、送信バッファ５９を介して出力される。
【０２１４】
Ｂピクチャの画像は、前述したように他の画像の予測画像とされることがないため、フレームメモリ６３には記憶されない。
【０２１５】
以上においては、輝度ブロックを中心として説明をしたが、色差ブロックについても同様に、図２に示すマクロブロックを単位として処理され、伝送される。尚、色差ブロックを処理する場合の動きベクトルは、対応する輝度ブロックの動きベクトルを垂直方向と水平方向に、それぞれ１／２にしたものが用いられる。
【０２１６】
次に、可変長符号化回路５８では、可変長符号化すべきマクロブロックがスキップマクロブロックである場合、そのマクロブロックについては可変長符号化させず、従って可変長符号化回路５８からはそのマクロブロックのデータは出力されないようになされている。スキップマクロブロックの詳細については後述する。
【０２１７】
次にマクロブロックアドレスの符号化方法について説明する。マクロブロックアドレスは、上述したように、１から始まる連続した整数である。可変長符号化回路５８はマクロブロックのデータを符号化して伝送する場合（従って、スキップマクロブロックは含まれない）、前回符号化したマクロブロックのマクロブロックアドレスと現在のマクロブロックアドレスの差分macroblock_address_incrementを計算し、これを可変長符号する。従って、macroblock_address_incrementが２以上の場合、スキップマクロブロックが存在することを意味する。
【０２１８】
次にスキップマクロブロックについて説明する。Ｉピクチャを構成するマクロブロックにはスキップマクロブロックは存在しない。Ｐピクチャを構成するマクロブロックの場合、マクロブロックが、以下の４つの条件を満たすときに、スキップマクロブロックとされる。可変長符号化回路５８では、符号化対象のマクロブロックがスキップマクロブロックである場合、動きベクトルの保持値が０にリセットされる。即ち、動きベクトルは、前回符号化された動きベクトルとの差分値が伝送される。このため、可変長符号化回路５８には、前回符号化された動きベクトルが保持されるが、マクロブロックがスキップマクロブロックである場合、その保持値が０にリセットされる。
【０２１９】
・マクロブロックが前方向予測マクロブロックである。
・動きベクトルが０である。
・マクロブロックサイズmb_sizeが前回符号化対象となったマクロブロックと同一である。
・マクロブロックについての全てのウェーブレット係数が０である。
【０２２０】
また、Ｂピクチャについては、以下の７つの条件を満たす場合、マクロブロックがスキップマクロブロックとされる。このとき動きベクトルの保持値はそのままの値が保持される（スキップマクロブロックに対応する動きベクトルによる保持値の更新は保持されない）。
【０２２１】
・マクロブロックがイントラマクロブロックではない。
・マクロブロックサイズが前のマクロブロックと同一である。
・予測モード（前方向、後方向、両方向）が、前回符号化対象となったマクロブロックと同一である。
・動き補償モード（動きベクトルの本数）が前回符号化対象となったマクロブロックと同一である。
・動きベクトルが前回符号化対象となったマクロブロックと同一である。
・前回符号化が対象となったマクロブロックはイントラマクロブロックではない。
・マクロブロックについての全てのウェーブレット係数が０である。
【０２２２】
次に、図１２は、本発明を適用したデコーダの一実施例の構成を示している。なお、図中、図３１における場合と基本的構成が同様の部分については、同一の符号を付してあり、以下では、その説明は、適宜、省略する。
【０２２３】
符号化された画像データは、前述したように、受信バッファ８１に一時記憶された後、復号回路９０の可変長復号化回路８２に供給される。可変長復号化回路８２は、受信バッファ８１より供給されたデータを可変長復号化し、動きベクトル、予測モード、マクロブロックサイズ、および動き補償モードを動き補償回路８７およびマクロブロック構成回路２０２に、また、量子化スケール、重み係数を逆量子化回路８３に、またイントラＤＣ（ＤＣ［１］乃至ＤＣ［６］）を加算器８５に、逆ウェーブレット変換係数およびウェーブレットレイヤ数を逆ウェーブレット変換回路２０３に、それぞれ出力するとともに、復号された画像データを逆量子化回路８３に出力する。さらに、マクロブロックアドレスとマクロブロックサイズは、書き込みアドレス発生回路２０１にも供給される。
【０２２４】
ここで、マクロブロックアドレスの復号について説明する。上述したように、マクロブロックアドレスはビットストリーム中にそのままは符号化されてはいない。即ち、前回復号したマクロブロックのマクロブロックアドレスと、現在復号しようとするマクロブロックのマクロブロックアドレスの差分macroblock_address_incrementが符号化されている。そこで、可変長復号回路８２は、このmacroblock_address_incrementを復号し、前回復号したマクロブロックアドレスに加算することによって現在のマクロブロックのマクロブロックアドレスを求めるようになされている。ＭＰＥＧ２方式に適合させる場合、macroblock_address_incrementの最大値は３３となり、これより大きい値についてはmacroblock_escapeとの組合せで表現することになる。
【０２２５】
macroblock_address_incrementが２以上の場合、スキップマクロブロックが存在することを示しており、macroblock_address_increment−１がスキップマクロブロックの数となる。
【０２２６】
スキップマクロブロックは、次のように復号される。
【０２２７】
即ち、復号する画像がＰピクチャの場合、スキップマクロブロックは、上述の４つの条件を満たすものと解釈され、前回復号化されたマクロブロックに基づいて復号される。なお、この場合、動きベクトルの保持値は０にリセットされる。
【０２２８】
また、復号する画像がＢピクチャの場合、スキップマクロブロックは上述の７つの条件を満たすものと解釈され、やはり、前回復号化されたマクロブロックに基づいて復号される。なお、この場合、動きベクトルの保持値はそのまま保持される。
【０２２９】
逆量子化回路８３は、可変長復号化回路８２より供給された画像データを、同じく可変長復号化回路８２より供給された量子化スケールおよび重み係数に従って逆量子化し、メモリ２００を介して逆ウェーブレット変換回路２０３に出力する。
【０２３０】
逆ウェーブレット変換回路２０３における逆ウェーブレット変換は、図１の逆ウェーブレット変換回路１２２における場合と同様にフレーム単位で行なわれる。このため、各マクロブロックのデータは一時メモリ２００に記憶され、そこに１フレーム分のデータが記憶された後、逆ウェーブレット変換処理される。
【０２３１】
これに対して動き補償はマクロブロックに含まれる動き補償の単位で行なわれるため逆ウェーブレット変換回路２０３の出力は、マクロブロック構成回路２０２に供給され、そこでマクロブロックに再構成される。即ち、マクロブロック構成回路２０２ではマクロブロックアドレスab_address、マクロブロックサイズmb_sizeを用いて逆ウェーブレット変換回路２０３の出力からマクロブロックが再構成され加算器８５に供給される。
【０２３２】
マクロブロック構成回路２０２より供給された画像データが、Ｉピクチャのデータである場合、そのデータは演算器８５より出力され、演算器８５に後に入力される画像データ（ＰまたはＢピクチャのデータ）の予測画像データ生成のために、フレームメモリ８６の前方予測画像部８６ａに供給されて記憶される。また、このデータは、所定のタイミングで出力再生画像として図示せぬ外部出力装置に出力される。
【０２３３】
このように、復号されたマクロブロックのデータはフレームメモリ８６に記憶される。ここで、従来のＭＰＥＧ１やＭＰＥＧ２などの方式では固定サイズのマクロブロックを用いるためにマクロブロックアドレスがわかれば、そのマクロブロックがフレーム中のどの部分に位置するかが特定することができる。しかしながら、本実施例では、可変サイズのマクロブロックを扱うため、マクロブロックアドレスのみからでは、そのマクロブロックのフレーム中での位置を決定することができない。そこで、各マクロブロックがフレーム中のどの位置のデータであるかは、マクロブロックアドレスおよびマクロブロックサイズに基づいて、アドレス発生回路２０１で算出される。
【０２３４】
即ち、書き込みアドレス発生回路２０１では、可変長復号回路８２からのマクロブロックアドレスおよびマクロブロックサイズを用いてマクロブロックのデータをフレームメモリ８６に書き込む際のアドレスを発生する。
【０２３５】
ここで、図１３を参照して、例えば、上述の図５に示したようにブロック分割がされている場合に、マクロブロックアドレスとマクロブロックサイズを用いて、マクロブロックのフレーム中での位置を特定する方法について説明する。マクロブロックアドレスはエンコーダにおいて図５に示したようにラインスキャン順に増加するように付されている。また、マクロブロックサイズは、本実施例では、１６または３２のうちのいずれかである。
【０２３６】
そこで、アドレス発生回路２０１は、図１３に示すようなマップを作成するようになされている。即ち、このマップは１フレーム分のマクロブロックの位置を記憶するメモリなどでなり、その縦横の大きさは復号画像の輝度の画枠の縦と横それぞれを１／１６にしたものとされている。また、その深さは１ビットとされており、従って、各点では、０または１を記憶することができるようになされている。
【０２３７】
このマップは、各フレームのデータを復号する前に（即ち、ピクチャヘッダ（図１７）を復号した時に）、全て０に初期化される。
【０２３８】
そして、いまマクロブロックアドレス１のマクロブロックが復号されたとすると、このマクロブロックのフレーム中での位置はフレームの最も左上である。ここでマップポインタというパラメータを導入する。マップポインタは復号されるマクロブロックの左上隅のマップ上での位置を指すポインタで、マクロブロックアドレス１の場合、マップポインタはマップの最も左上隅を指す（図１３（Ａ））。
【０２３９】
マクロブロックが復号されると、このマップポインタが指す点を先頭として、マクロブロックサイズに従ってマップの所定の位置（点）を０から１に変更する。即ち、復号されたマクロブロックのマクロブロックサイズが１６である場合、マップポインタが示す点だけが１に変更される。また、マクロブロックサイズが３２の場合、マップポインタが示す位置を左上とする２×２個の点がすべて１にされる。
【０２４０】
１つのマクロブロックについての復号が終了すると、マップがラインスキャン順にスキャンされ、このとき、値が最初に０になる点にマップポインタが移動され、その位置が次に復号されるマクロブロックの位置とされる。従って、マクロブロックアドレス１のマクロブロックの復号後、マップポインタは、図１３（Ｂ）に示す位置に移動されることとなる。マップは復号画像の画枠を縦横それぞれ１／１６した大きさであるから、マップポインタが位置する点の座標について所定の換算を行なうことにより、マクロブロックのフレーム中での位置を特定することができ、さらに、フレームメモリ８６に対する書き込みアドレスを得ることができる。
【０２４１】
図１３（Ｃ）に、図５においてマクロブロックアドレスが１５とされているマクロブロックを復号した後のマップの状態およびマップポインタの位置を示す。
【０２４２】
なお、上記方法は一例であり、アドレス（フレーム中でのマクロブロックの位置）はマクロブロックアドレスおよびマクロブロックサイズが与えられれば一意に決定されることから、他の方法を用いてもアドレスを計算することは可能である。
【０２４３】
図１２に戻り、マクロブロック構成回路２０２より供給された画像データが、その１フレーム前の画像データを予測画像データとするＰピクチャのデータであって、前方予測モードのデータである場合、フレームメモリ８６の前方予測画像部８６ａに記憶されている、１フレーム前の画像データ（Ｉピクチャのデータ）が読み出され、動き補償回路８７で可変長復号化回路８２より出力された動きベクトルに対応する動き補償が施される。そして、演算器８５において、マクロブロック構成回路２０２より供給された画像データ（差分のデータ）と加算され、出力される。この加算されたデータ、即ち、復号されたＰピクチャのデータは、演算器８５に後に入力される画像データ（ＢピクチャまたはＰピクチャのデータ）の予測画像データ生成のために、フレームメモリ８６の後方予測画像部８６ｂに供給されて記憶される。
【０２４４】
なお、Ｐピクチャのデータであって、画像内予測モードのデータは、演算器８５において、可変長復号回路８２より供給されるイントラＤＣ（ＤＣ［１］乃至ＤＣ［６］）と加算される。その結果得られるＰピクチャの復号画像は、上記前方予測モードの場合と同様に、後方予測画像部８６ｂに記憶される。
【０２４５】
このＰピクチャは、次のＢピクチャの次に表示されるべき画像であるため、この時点では、まだ再生画像として、図示せぬ外部出力装置へ出力されない（上述したように、Ｂピクチャの後に入力されたＰピクチャが、Ｂピクチャより先に処理され、伝送されている）。
【０２４６】
マクロブロック構成回路２０２より供給された画像データが、Ｂピクチャのデータである場合、可変長復号化回路８２より供給された予測モードに対応して、フレームメモリ８６の前方予測画像部８６ａに記憶されているＩピクチャの画像データ（前方予測モードの場合）、後方予測画像部８６ｂに記憶されているＰピクチャの画像データ（後方予測モードの場合）、または、その両方の画像データ（両方向予測モードの場合）が読み出され、動き補償回路８７において、可変長復号化回路８２より出力された動きベクトルに対応する動き補償が施されて、予測画像が生成される。但し、動き補償を必要としない場合（画像内予測モードの場合）、予測画像は生成されない。
【０２４７】
このようにして、動き補償回路８７で動き補償が施されたデータは、演算器８５において、マクロブロック構成回路２０２の出力と加算される。ただし、フレーム内予測モードの場合は、上述したＰピクチャにおける場合と同様に、マクロブロック構成回路２０２の出力と、イントラＤＣとが加算される。この加算出力は、再生画像として直ちに、図示せぬ外部の出力装置に出力される。
【０２４８】
但し、この加算出力はＢピクチャのデータであり、他の画像の予測画像生成のために利用されることがないため、フレームメモリ８６には記憶されない。
【０２４９】
Ｂピクチャの画像が出力された後、後方予測画像部８６ｂに記憶されているＰピクチャの画像データが読み出され、動き補償回路８７を介して演算器８５に供給される。但し、このとき、動き補償は行われない。
【０２５０】
また、以上においては、輝度信号の処理について説明したが、色差信号の処理も同様に行われる。但し、この場合、動きベクトルは、輝度信号用のものを、垂直方向および水平方向に１／２にしたものが用いられる。
【０２５１】
次に、図１のエンコーダより出力されるビットストリームのフォーマットについて、図１４乃至図２２を参照して説明する。図１４乃至図２２は、ISO-IEC/JTC1/SC29/WG11 IS 13818-2で用いられている書式で本実施例のビットストリームのフォーマットを示したものである。なお、No of bits Mnemonicの欄に記載がある部分が実際に伝送されるフラグ（データ）である。
【０２５２】
図１４はシーケンスヘッダのフォーマットを示している。シーケンスヘッダは、ビットストリームの先頭に付加される。sequence_start_codeは３２ビットのコードでシーケンスヘッダの開始を示す。このsequence_start_codeの他、各種のヘッダ（例えば、図１６のグループオブピクチャのヘッダなど）のスタートコードは固有のビット列であり、ビットストリームの他の部分では発生することがないコードである。従って何らかの原因でビットストリームの一部が失われるなどして、その復号をすることが出来なくなった場合でも、いずれかのスタートコードは検出することができ、これにより再び復号を再開することが可能となる。
【０２５３】
wavelet_layer_numberは逆ウェーブレット変換回路２０３を幾つのレイヤ（４バンド合成帯域合成フィルタバンクの数）で構成することが必要であるかを示す４ビットのフラグである。またwavelet_coefficients()は逆ウェーブレット変換回路２０３の各レイヤのフィルタで用いられるフィルタ係数（逆フィルタ係数）である。逆ウェーブレット変換回路２０３では、この逆フィルタ係数wavelet_coefficients()を用いて、図１の逆ウェーブレット変換回路１２２における場合と同様のフィルタリングが行われる。
【０２５４】
ここで、逆ウェーブレット変換に用いる逆フィルタ係数を伝送する方法としては、例えば図１５に示すような２通りの方法がある。即ち、図１５（ａ）は、各レイヤの各フィルタで用いる逆フィルタ係数をあらかじめ何組（セット）か決めておき、そのどれを用いるかを示すフラグを伝送する場合のフォーマットを示している。ハイパスおよびローパスフィルタの組合せはどちらか一方が定まれば決定される。このため各レイヤについて、１つのインデクスを伝送すれば十分である。図１５（ａ）では、インデクスwavelet_coeff_indexは８ビットのフラグであり、２５６通りのフィルタ係数の組合せを指定することが可能とされている。本実施例では８ビットであるが、そのビット数は特に限定されるものではない。
【０２５５】
なお、この場合、図１におけるウェーブレット変換回路１２１のフィルタ係数算出回路６−１では、２５６通りのフィルタ係数の組み合わせのうちのいずれかが選択され、各フィルタに設定される。さらに、この場合、可変長符号化回路５８には、選択したフィルタ係数の組み合わせに対応するwavelet_coeff_indexが供給される。
【０２５６】
図１５（ｂ）は、各レイヤで用いるフィルタ係数を直接伝送する場合のフォーマットを示している。この場合、ローパスフィルタおよびハイパスフィルタのタップ数とそのタップ数に応じたフィルタ係数が伝送される。
【０２５７】
図１４に戻り、load_intra_weighting_matrixとload_non_intra_weighting_matrixはＩピクチャと、ＰおよびＢピクチャで用いる重み係数をダウンロードするかどうかを示すフラグである。重み係数を、ダウンロードする場合、それぞれのフラグのあとに重み係数が記述される。これは８ビット×(wavelet_layer_numer×3+1)のデータサイズになる。なお、バンドの数はwavelet_layer_number（レイヤ数）から式（wavelet_layer_numer×3+1）に従って求めることができる。ＩピクチャとＰおよびＢピクチャとについては、通常、異なる重み係数が用いられるが、同一の重み係数を用いるようにすることも可能である。
【０２５８】
図１６は、グループオブピクチャのヘッダのフォーマットを示している。これは、通常のＭＰＥＧ方式の場合と同様である。
【０２５９】
図１７はピクチャヘッダのフォーマットを示している。number_of_macroblockはそのフレームに存在するマクロブロックの数を示す１６ビットのフラグである。
【０２６０】
図１８はマクロブロックヘッダのフォーマットを示している。macroblock_sizeはマクロブロックの大きさを示す２ビットのフラグである。mc_modeはそのマクロブロックの動き補償の単位を示す。すなわち、１個の動きベクトルが存在するかまたは４個の動きベクトルが存在するかを示すフラグである。１個の場合、number_of_motion_vectorsは１となりまた４個の場合はnumber_of_motion_vectorsは４となる。この数だけforward_motion_vectorまたはbackward_motion_vectorがそれぞれ伝送される。このmc_modeは、図１９乃至図２１に示すＶＬＣコードテーブルのmacroblock_typeにおいてmacroblock_motion_forwardまたはmacroblock_motion_backwardのうちのいずれが１に設定されており、且つmacroblock_sizeが、マクロブロックのサイズが１６であることを示している場合のみ伝送される。動きベクトルは、図２２に示す伝送フォーマットで伝送される。
【０２６１】
マクロブロックが、Ｉピクチャ以外のイントラマクロブロックの場合、そのイントラマクロブロックの平均値（イントラＤＣ）が伝送される。
【０２６２】
ＭＰＥＧ２などの従来の画像信号符号化方式では、動き補償は、固定の大きさのマクロブロック単位で行われる。即ち、符号化する画像信号の性質とは無関係に行われる。しかしながら、複雑な動きをする部分については、動き補償の単位は小さくすることで、細かな動きを再現することが可能となる。また、一様で動きが少ない部分については、動き補償の単位を大きくすることで、動きベクトルなどのデータ量を低減することができる。即ち、動き補償の単位は、符号化する画像信号の性質に応じて変化させる方が効率を向上させることができる。
【０２６３】
フレーム内符号化を行なう場合においても、一様な領域は大きなマクロブロックを用いた方が、可変長符号化（ランレングス符号化など）の効率を向上させることができる。また、複雑なテクスチャやエッジなどが存在する領域ではマクロブロックの大きさを小さくして、マクロブロック内の信号ができるだけ一様になるようにした方が効率を向上させることができる。即ち、フレーム内符号化という側面からみても、マクロブロックの大きさを符号化する画像の性質に応じて変化させることが望ましい。
【０２６４】
そこで、本実施例では、入力画像信号の性質に応じて適応的にマクロブロック、および動き補償の単位を変化させるようにし、これにより、符号化効率を向上させるとともに、上記（１）のブロック歪みを低減するようにしている。
【０２６５】
また、ＭＰＥＧ２などの従来の符号化方式においては、ＤＣＴ変換が、前述したように、信号電力の集中のために用いられるが、ＤＣＴ変換では、上記（２）のモスキートノイズを軽減することは難しい。またＤＣＴ変換は、基本的に、ブロック単位の処理であるため、上記（１）のブロック歪みをなくすことは困難である。
【０２６６】
そこで、本実施例では、上述したように、ウエーブレット変換を用い、フレーム単位などで変換処理を行うようにしている。これにより、ＤＣＴ変換におけるブロック単位の処理が原因で生じるブロック歪みをなくし、また、モスキートノイズを低減することができる。
【０２６７】
また、本実施例では、ウエーブレット変換した後、各バンドの対応する位置のウエーブレット変換係数によって、マクロブロックを再構成し、量子化や可変長符号化を行うようにしているが、逆ウエーブレット変換がフレーム単位で行なわれるため、上記（１）のブロック歪みは、それほど問題とならない。
【０２６８】
さらに、ウエーブレット変換では、各周波数帯域に応じた長さの基底（フィルタのタップ数）を用いることができるので、上記（２）のモスキートノイズや（３）のリンギングを軽減することができる。
【０２６９】
なお、ウエーブレット変換において、各フィルタバンクで用いるローパスフィルタおよびハイパスフィルタのタップ数は必ずしも同一でなくても良い。
【０２７０】
また、同様にツリー構造の関係にある各フィルタバンク間で必ずしも同一のフィルタを用いる必要もない。即ち、フィルタ係数（基底長）は、周波数成分に応じて変化させることができる（各レイヤで最適なフィルタ係数（基底）を用いることができる）。例えば、高周波成分に対しては、短いタップのフィルタを用い、低周波成分に対しては、長いタップのフィルタを用いることにより、上記（２）のモスキートノイズや（３）のリンギングを軽減することができる。
【０２７１】
さらに、本実施例では、動き補償の単位の大きさを可変とし、動き補償と、ウエーブレット変換と組み合わせるようにしたが、動き補償の単位の大きさは、ＭＰＥＧ２方式などの従来における場合と同様に固定にしても良い。このようにしても、ウエーブレット変換は、動き補償の単位とは、無関係に行なわれるため、上記（１）のブロック歪みはそれほど問題とならない。
【０２７２】
また、本実施例では、所定の変換処理として、ウェーブレット変換を行うようにしたが、所定の変換処理としては、ウェーブレット変換以外の、基底長を適応的に変化させることのできる直交変換処理その他を用いることができる。
【０２７３】
さらに、本実施例では、フレーム単位でのみの処理を行うようにしたが、この他、例えば図２７で説明したようなフレーム／フィールドの切り換えを行うようにすることも可能である。
【０２７４】
【発明の効果】
【０２７７】
本発明の画像符号化装置および画像符号化方法によれば、画像データがイントラ予測モードまたはインター予測モードのうちのいずれのモードのデータであるかが判定され、判定された画像データをブロックに分割し、画像データが、分割手段より出力されたブロックおよび分割の結果を示すブロック情報を含むデータとして符号化され、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することによりブロックの大きさが決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいてブロックの大きさが決定され、決定されたブロックの大きさがブロック情報として符号化される。従って、符号化効率を向上させることができる。
【０２７８】
本発明の画像復号化装置および画像復号化方法によれば、画像データがイントラ予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、注目ブロックに隣接する隣接ブロックの分散の和を演算して演算結果を閾値と比較することにより決定され、画像データがインター予測モードのデータである場合、複数の大きさの注目ブロックのそれぞれについて、動きベクトルを検出して動きベクトルに基づく予測誤差を演算し、それぞれの大きさのブロックに対応する演算結果に基づいて決定される大きさのブロックに分割された画像データ、および分割結果を示すブロック情報とが符号されて生成される符号化データがブロック情報に基づいて、復号される。従って、効率良く符号化されたデータを復号することができる。
【図面の簡単な説明】
【図１】本発明を適用したエンコーダの一実施例の構成を示すブロック図である。
【図２】図１のエンコーダで用いられるマクロブロックを示す図である。
【図３】図１のブロック分割回路１０２におけるブロック分割方法を説明するためのフローチャートである。
【図４】図１のブロック分割回路１０２におけるブロック分割方法を説明するためのフローチャートである。
【図５】図１のブロック分割回路１０２でブロック分割された画像を示す図である。
【図６】図１のウェーブレット変換回路１２１の構成例を示すブロック図である。
【図７】ウェーブレット変換により帯域分割された画像を示す図である。
【図８】図１のマクロブロック構成回路１０９の処理を説明するための図である。
【図９】図１の量子化回路５７で用いられる重み係数を示す図である。
【図１０】図１の逆ウェーブレット変換回路１２２の構成例を示すブロック図である。
【図１１】図１のＤＣ検出差分回路１００の処理を説明するための図である。
【図１２】本発明を適用したデコーダの一例の構成を示すブロック図である。
【図１３】図１２の書き込みアドレス発生回路２０１におけるアドレスの算出方法を説明するための図である。
【図１４】図１のエンコーダより出力されるビットストリームにおけるシーケンスヘッダのフォーマットを示す図である。
【図１５】図１５のwavelet_coefficients()のフォーマットを示す図である。
【図１６】図１のエンコーダより出力されるビットストリームにおけるグループオブピクチャヘッダのフォーマットを示す図である。
【図１７】図１のエンコーダより出力されるビットストリームにおけるピクチャヘッダのフォーマットを示す図である。
【図１８】図１のエンコーダより出力されるビットストリームにおけるマクロブロックのフォーマットを示す図である。
【図１９】Ｉピクチャにおけるマクロブロックのマクロブロックタイプ（macroblock_type）のテーブルを示す図である。
【図２０】Ｐピクチャにおけるマクロブロックのマクロブロックタイプ（macroblock_type）のテーブルを示す図である。
【図２１】Ｂピクチャにおけるマクロブロックのマクロブロックタイプ（macroblock_type）のテーブルを示す図である。
【図２２】図１のエンコーダより出力されるビットストリームにおける動きベクトルのフォーマットを示す図である。
【図２３】高能率符号化の原理を説明するための図である。
【図２４】画像データを圧縮する場合におけるピクチャのタイプを説明するための図である。
【図２５】動画像を符号化する原理を説明するための図である。
【図２６】従来の動画像符号化装置と復号化装置の一例の構成を示すブロック図である。
【図２７】図２６のエンコーダ１７の構成例を示すブロック図である。
【図２８】従来のブロック分割方法を説明するための図である。
【図２９】図２７における予測モード切り換え回路５２の動作を説明するための図である。
【図３０】図２７におけるＤＣＴモード切り換え回路５５の動作を説明するための図である。
【図３１】図２６のデコーダ３１の構成例を示すブロック図である。
【図３２】サブバンド符号化を説明するためのブロック図である。
【図３３】ウェーブレット変換により４つの周波数帯域に帯域分割された画像を示す図である。
【符号の説明】
３  記録媒体／伝送路
６−１  フィルタ係数算出回路
６−２  水平方向ローパスフィルタ
６−３  水平方向ハイパスフィルタ
６−４，６−５  ダウンサンプリング回路
６−６  垂直方向ローパスフィルタ
６−７  垂直方向ハイパスフィルタ
６−８  垂直方向ローパスフィルタ
６−９  垂直方向ハイパスフィルタ
６−１０乃至６−１３  ダウンサンプリング回路
１０−１乃至１０−４  アップサンプリング回路
１０−５  垂直方向ローパスフィルタ
１０−６  垂直方向ハイパスフィルタ
１０−７  垂直方向ローパスフィルタ
１０−８  垂直方向ハイパスフィルタ
１０−９，１０−１０  加算器（合成回路）
１０−１１，１０−１２  アップサンプリング回路
１０−１３  水平方向ローパスフィルタ
１０−１４  水平方向ハイパスフィルタ
１７  エンコーダ
３１  デコーダ
５０  動きベクトル検出回路
５１  フレームメモリ
５１ａ  前方原画像
５１ｂ  参照原画像
５１ｃ  後方原画像
５２  Ｆｒａｍｅ／Ｆｉｅｌｄ予測モード切り替え回路
５３  演算部
５４  画像内／前方／両方向／予測判定回路
５６  ＤＣＴ回路
５７  量子化回路
５８  可変長符号化回路
５９  送信バッファ
６０  逆量子化回路
６１  ＩＤＣＴ回路
６２  演算器
６３  フレームメモリ
６４  動き補償回路
８１  受信バッファ
８２  可変長復号化回路
８３  逆量子化回路
８６  フレームメモリ
８７  動き補償回路
９０  復号回路
１００  ＤＣ検出差分回路
１０１  量子化スケール発生回路
１０２  ブロック分割回路
１０３  アドレス発生回路
１０４  マクロブロックサイズ発生回路
１０５  動き補償モード発生回路
１０６  マクロブロックアドレス発生回路
１０９  マクロブロック構成回路
１１０  マクロブロック構成回路
１２１  ウェーブレット変換回路
１２２  逆ウェーブレット変換回路
２０１  書き込みアドレス発生回路
２０３  逆ウェーブレット変換回路
２０２  マクロブロック構成回路
【図１】
0003855286.tif 000003
【図２】
0003855286.tif 000004
【図３】
0003855286.tif 000005
【図４】
0003855286.tif 000006
【図５】
0003855286.tif 000007
【図６】
0003855286.tif 000008
【図７】
0003855286.tif 000009
【図８】
0003855286.tif 000010
【図９】
0003855286.tif 000011
【図１０】
0003855286.tif 000012
【図１１】
0003855286.tif 000013
【図１２】
0003855286.tif 000014
【図１３】
0003855286.tif 000015
【図１４】
0003855286.tif 000016
【図１５】
0003855286.tif 000017
【図１６】
0003855286.tif 000018
【図１７】
0003855286.tif 000019
【図１８】
0003855286.tif 000020
【図１９】
0003855286.tif 000021
【図２０】
0003855286.tif 000022
【図２１】
0003855286.tif 000023
【図２２】
0003855286.tif 000024
【図２３】
0003855286.tif 000025
【図２４】
0003855286.tif 000026
【図２５】
0003855286.tif 000027
【図２６】
0003855286.tif 000028
【図２７】
0003855286.tif 000029
【図２８】
0003855286.tif 000030
【図２９】
0003855286.tif 000031
【図３０】
0003855286.tif 000032
【図３１】
0003855286.tif 000033
【図３２】
0003855286.tif 000034
【図３３】
0003855286.tif 000035