(57)【要約】【課題】マクロブロックの符号化で複数のモードが選択可能な符号化において、マクロブロックのモード選択に要する計算量を削減することを目的とする。【解決手段】本発明の方法によるマクロブロックモード選択方法は、予測画像を作成する予測ステップと、予測の誤差を求める誤差計算ステップと、予測の誤差としきい値を比較する比較ステップと、大きなサブマクロブロックから順に誤差としきい値を比較し、最初にしきい値以下になったサブマクロブロックをマクロブロックのエンコードモードとして選択する選択ステップとを備える。【選択図】図１
2005268879.tif 000002
【特許請求の範囲】
【請求項１】
マクロブロックを複数のモードで分割して予測することが可能な符号化方法において、マクロブロックの分割モードを選択する方法であって、
マクロブロックに対してインターあるいはイントラの予測を行って予測画像を作成する予測ステップと、
前記予測画像と原画像から予測誤差を求める誤差計算ステップと、
前記予測誤差としきい値とを比較する比較ステップと、
予測誤差がしきい値より小さい分割モードの中で最も大きい分割モードを選択する選択ステップと
を備えたマクロブロック符号化モード選択方法。
【請求項２】
マクロブロックのインター予測モードとして１６×１６、１６×８、８×１６、８×８を用いることが可能な
請求項１に記載のマクロブロック符号化モード選択方法。
【請求項３】
マクロブロックのインター予測モードとして８×８、８×４、４×８、４×４を用いることが可能な
請求項１に記載のマクロブロック符号化モード選択方法。
【請求項４】
マクロブロックのイントラ予測モードとして１６×１６、４×４を用いることが可能な
請求項１に記載のマクロブロック符号化モード選択方法。
【請求項５】
マクロブロック当りのビット量の割り当てが小さいとき、前記しきい値を大きくすることを特徴とする
請求項１に記載のマクロブロック符号化モード選択方法。
【請求項６】
マクロブロックを複数のモードで分割して予測することが可能な符号化方法において、マクロブロックの分割モードを選択するプログラムであって、
マクロブロックに対してインターあるいはイントラの予測を行って予測画像を作成する予測手順と、
前記予測画像と原画像から予測誤差を求める誤差計算手順と、
前記予測誤差としきい値とを比較する比較手順と、
予測誤差がしきい値より小さい分割モードの中で最も大きい分割モードを選択する選択手順と
をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを格納した媒体。
【請求項８】
マクロブロックを複数のモードで分割して予測することが可能な符号化方法において、マクロブロックの分割モードを選択するモード選択装置であって、
マクロブロックに対して動きベクトルを求める動きベクトル探索手段と、
マクロブロックに対して動きベクトルを用いて予測し、予測誤差を計算し、予測誤差としきい値とを比較し、予測誤差がしきい値より小さい分割モードの中で最も大きい分割モードを選択するモード選択手段
を備えたマクロブロック符号化モード選択装置。
【請求項９】
マクロブロック当りのビット量の割り当てが小さいとき、前記しきい値を大きくすることを特徴とする
請求項８に記載のマクロブロック符号化モード選択装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化において複数のブロックサイズによるインターあるいはイントラ予測が可能な画像符号化装置、画像符号化方法、画像符号化プログラムに関するものである。
【背景技術】
【０００２】
動画像の符号化方法として広く用いられているものにＭＰＥＧ２がある。ＭＰＥＧ２は動き補償と離散コサイン変換（ＤＣＴ）を基本とした符号化方法である。ＭＰＥＧ２は１６画素×１６画素のマクロブロック（ＭＢ）を単位として符号化される。１６×１６のマクロブロック単位で動き補償された後、８×８のブロック単位でＤＣＴが行われる。その後、ＤＣＴ係数が量子化され、ジグザグスキャンされ、可変長符号化される。
【０００３】
ＭＰＥＧ２よりもさらに圧縮率を向上させた符号化方法として、ＩＴＵによりＨ．２６４が標準化された。Ｈ．２６４の規格は非特許文献１に述べられている。Ｈ．２６４は動き補償とＤＣＴを近似した４×４の整数変換を基本とした符号化方法である。Ｈ．２６４もＭＰＥＧ２と同様に１６×１６のマクロブロックを基本単位として符号化する。
【０００４】
図２はＨ．２６４の符号化装置の基本構成図である。図を参照して符号化装置の動作を説明する。動き評価部１７は入力されたビデオ信号より動きベクトルを求める。イントラ予測部１８はエンコードするマクロブロックを含むフレームの既にエンコードされた領域から予測する。動き補償部１９は既にエンコードされた他のフレームから動きベクトルによって予測する。エンコーダはマクロブロック（１６×１６）ごとにイントラ予測あるいは動き補償予測（インター予測）のいずれかを選択する。
【０００５】
入力画像とイントラ予測あるいは動き補償予測された画像との差分が変換部１０により整数変換される。変換後の係数が量子化部１１により量子化される。量子化された変換係数は逆量子化部１３により逆量子化される。逆量子化後の係数は逆変換部１４により逆変換される。
【０００６】
逆変換部１４の出力は予測値と加算される。デブロッキングフィルタ１５はブロックの境界部にローパスフィルタを掛けてブロック歪みを軽減する。フィルタを掛けた後の画像はビデオメモリ１６に保存されて予測の参照画像として用いられる。
【０００７】
イントラ予測（フレーム内予測）は他のフレームを参照しないで、エンコードするマクロブロックを含むフレームの既にエンコードされた領域から予測する。イントラ予測にはイントラ１６×１６予測とイントラ４×４予測がある。イントラ４×４予測はマクロブロックを４×４の１６個のブロックに分割して予測する。図４はマクロブロックの４×４ブロックへの分割の説明図である。
【０００８】
図５はイントラ１６×１６予測の説明図である。符号化するマクロブロックＡの予測に用いるサンプルを黒丸”●”で示した。イントラ１６×１６予測ではこれらの３３個のサンプルからマクロブロックＡを予測する。イントラ１６×１６の予測方法は４種類あるが、本発明の本質と関係ないので、詳細は省く。
【０００９】
図６はイントラ４×４予測の説明図である。マクロブロックＡの中のブロックａの予測に用いるサンプルを黒丸”●”で示した。イントラ４×４予測ではこれらの１３個のサンプルからブロックａを予測する。イントラ４×４の予測方法は９種類あるが、本発明の本質と関係ないので、詳細は省く。
【００１０】
動き補償予測（フレーム間予測、インター予測）はエンコードされ、ローカルデコードされた他のフレームを用いて予測する。マクロブロックを分割したパーティションが動き補償に用いられる。図３はインター予測で用いられるパーティションを示す。
【００１１】
マクロブロックを分割する方法として、１６×１６の１個のサブマクロブロック、１６×８の２個のサブマクロブロック、８×１６の２個のサブマクロブロック、８×８の４個のサブマクロブロックがある。分割されたサブマクロブロックごとに異なる動きベクトル（ＭＶ）を持つことができる。８×８のサブマクロブロックはさらに分割することが可能で、分割方法として、８×８の１個のパーティション、８×４の２個のパーティション、４×８の２個のパーティション、４×４の４個のパーティションがある。分割されたパーティションごとに異なる動きベクトルを持つことができる。
【００１２】
以上説明したように、Ｈ．２６４ではマクロブロックのエンコード方法が多数存在する。多数のエンコード方法の中から適切な方法を選択することにより、圧縮率、画質を上げることができる。従来のマクロブロックのモード選択方法について、非特許文献２に基づいて説明する（非特許文献３にも同じ方法が述べられている。）。
【００１３】
非特許文献２のｐ．６９２からｐ．６９４に述べられている方法を説明する。モード選択のための”コスト関数”Ｊを次のように定義する。
【００１４】
Ｊ＝Ｄ＋λＲ
ここで、Ｄは歪み、Ｒは符号量である。λは”ラグランジュパラメタ”と呼ばれ、実験的に決められる。
【００１５】
歪みＤを求めるためにマクロブロックを実際にエンコード、デコードする。デコードしたマクロブロックと原画像マクロブロックの差分の２乗和を歪みＤとする。符号量Ｒはマクロブロックを実際に符号化して求める。符号量には変換係数の符号量以外に動きベクトル等の符号量も含まれる。
【００１６】
以下の手順によりマクロブロックのエンコードモードを選択する。
【００１７】
（１）可能な全てのモードでエンコード、デコードし、歪みＤと符号量Ｒを求める。
【００１８】
（２）全てのモードに対してコスト関数Ｊを求める。
【００１９】
（３）コスト関数Ｊが最小のモードを選択する。
【００２０】
以上のように、従来の方法では全てのモードで実際エンコード、デコードした結果を用いてモード選択を行うので、レート−歪みの特性に関して最適に近いモードを選択することができる。
【００２１】
図７は従来方法によって、Ｐピクチャ（Ｐスライス）のマクロブロックのモード選択の手順をフローチャートにしたものである。各モードに対する動きベクトルは予め求められているものとして、フローチャートには示していない。非特許文献２ではラグランジュパラメタを用いて動きベクトルを求めているが、動きベクトルの求め方の詳細は本発明とは関係ないので、動きベクトルの求め方については省略する。図は簡単のため、インター１６×１６、インター１６×８、インター８×１６、インター８×８の４種類の中から選択する場合の例を示した。用いるモードの種類が増えた場合も同様である。イントラモードも用いる場合はインターモードの選択の後にイントラとインターの選択を行う。
【非特許文献１】ITU-T H.264, Advanced Video Coding for Generic Audiovisual Services, 2003.
【非特許文献２】Thomas Wiegand, Heiko Schwarz, Anthony Joch, Faouzi Kossentini and Gary J. Sullivan: Rate-Constrained Coder Control and Comparison of Video Coding Standards, IEEE Transactions on Circuits and Systems for Video Technology, July, 2003,
【非特許文献３】Gary J. Sullivan and Thomas Wiegand: Rate-Distortion Optimization for Vido Compression, IEEE Signal Processing Magazine, Nov, 1998.
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかしながら、前記従来の方法では歪みと符号量を求めるために、マクロブロックの符号化において選択可能な全てのモードで実際にエンコード、デコードする必要がある。そのため、計算量が大きくなるという課題がある。
【００２３】
本発明は、前記従来の課題を解決するもので、マクロブロックのモード選択のための計算量が小さい画像符号化方法およびその装置を提供することを目的とする。
【課題を解決するための手段】
【００２４】
前記従来の課題を解決するために、本発明の画像符号化方法は、予測画像を作成する予測ステップと、予測の誤差を求める誤差計算ステップと、予測の誤差としきい値を比較する比較ステップと、大きなサブマクロブロックから順に誤差としきい値を比較し、最初にしきい値以下になったサブマクロブロックをマクロブロックのエンコードモードとして選択する選択ステップからなる。
【発明の効果】
【００２５】
本発明の画像符号化方法およびその装置によれば、マクロブロックの符号化モードの選択において、マクロブロックを実際にエンコード、デコードする必要がなく、マクロブロックのモード選択における計算量を削減することができる。また、全てのモードに対して動きベクトルを探索する必要がなくなり、動きベクトル探索の計算量を削減することができる。
【発明を実施するための最良の形態】
【００２６】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００２７】
（実施の形態１）
図１は本発明の実施の形態によるマクロブロックのエンコードモード選択方法のフローチャートである。図１はインター１６×１６、インター１６×８、インター８×１６、インター８×８の中から選択する場合について示したものである。本実施の形態ではマクロブロックに対する動きベクトル探索とエンコードモードの選択を同時に行う。
【００２８】
フローチャートに示されるように以下の手順に従ってエンコードモード選択が行われる（以下の説明では”インター”を省略する。）。
【００２９】
（１）１６×１６予測の動きベクトルを求める（ステップＳ１０）。
【００３０】
（２）１６×１６予測の誤差を求める（ステップＳ１１）。
【００３１】
（３）１６×１６の誤差をしきい値と比較し（ステップＳ１２）、しきい値より小さいときは、１６×１６を選択して（ステップＳ１３）、終了する。
【００３２】
（４）１６×１６の誤差がしきい値より大きいか等しいときは、１６×８予測の動きベクトルを求める（ステップＳ１４）。
【００３３】
（５）１６×８予測の誤差を求める（ステップＳ１５）。
【００３４】
（６）１６×８の誤差としきい値を比較し（ステップＳ１６）、しきい値より小さいときは、１６×８を選択して（ステップＳ１７）、終了する。
【００３５】
（７）１６×８の誤差がしきい値より大きいか等しいときは、８×１６予測の動きベクトルを求める（ステップＳ１８）。
【００３６】
（８）８×１６予測の誤差を求める（ステップＳ１９）。
【００３７】
（９）８×１６の誤差としきい値を比較し（ステップＳ２０）、しきい値より小さいときは、８×１６を選択して（ステップＳ２１）、終了する。
【００３８】
（１０）８×１６の誤差がしきい値より大きいか等しいときは、８×８を選択し（ステップＳ２２）、８×８予測の動きベクトルを求める（ステップＳ２３）。
【００３９】
上の説明で”動きベクトルを求める”とは複数のブロックがある場合は、全てのブロックに対して動きベクトルを求めることを意味する。例えば、８×８の場合は、４個のブロックに対して動きベクトルを求める。
【００４０】
動きベクトルを求める一つの方法としてフルサーチと呼ばれる方法を用いた場合について説明する。第１段階では、符号化ブロック（１６×１６、１６×８、８×１６あるいは８×８）と参照フレーム内の同じサイズのブロックの差分を求め、誤差を計算する。誤差として差分の絶対値の和を用いることができる。参照フレーム内の探索範囲内の整数サンプル位置の全てのブロックとの誤差を求め、誤差が最も小さいブロックを選択する。第２段階では、第１段階で選択されたブロックの位置から１／２サンプルの位置のブロックに対して同様に誤差を求めて、誤差が最も小さいブロックを選択する。第３段階では、第２段階で選択されたブロックの位置から１／４サンプルの位置のブロックに対して同様に誤差を求め、誤差が最も小さいブロックを選択する。このようにしてＨ．２６４で用いられる１／４サンプルの動きベクトルを求めることができる。
【００４１】
上の説明で”誤差を求める”とは、複数のブロックがある場合は全てのブロックの誤差の合計を求めることを意味する。例えば、１６×８の場合は２個のブロックが異なった動きベクトルを持つことができるので、２個のブロックに対して別々に誤差を求め、合計した値を上の説明中の”誤差”とする。個々のブロックに対する誤差として、符号化ブロックと予測ブロックの差分の絶対値の和（ＳＡＤ）、あるいは符号化ブロックと予測ブロックの差分の２乗の和（ＳＳＤ）を用いることができる。
【００４２】
ブロックの誤差１とそのブロックを複数のブロックに分割したときの誤差２（分割した複数のブロックの誤差の合計）を考える。動きベクトルの探索範囲は、基のブロックと分割したブロックで同じとする。このとき、必ず誤差２の方が誤差１より小さいか等しくなり、大きくなることはない。従って、ブロックを分割すると誤差が小さくなるので、変換係数の符号量は小さくなる可能性が高い。
【００４３】
一方、ブロックを分割するとブロックの数が多くなるので、動きベクトルの数が多くなり、動きベクトルの符号量が大きくなる。つまり、ブロックを小さく分割すると、変換係数の符号量では有利になるが、動きベクトルの符号量では不利になる。ブロックを小さく分割していくに従って、変換係数の符号量はしだいに減少し、動きベクトルの符号量はしだいに増加する。
【００４４】
本実施の形態のモード選択方法によれば、誤差がしきい値より小さいモードを選択するので、変換係数の符号量を抑えることができる。さらに、誤差がしきい値より小さい分割の中では最も大きいブロックを選択するので、動きベクトルの符号量を抑えることができる。その結果、全体の符号量を抑えることができる。
【００４５】
本実施の形態によれば、一部のモードに対して動きベクトルと誤差を求めることによりエンコードモードを選択することができる。従来方法のように全てのモードに対して動きベクトルを求め、エンコード、デコードして歪みと符号量を求める必要がない。従来方法より、計算量を大幅に削減することができるという効果がある。
【００４６】
本実施の形態によればエンコードモードが決定した後は、他のモードに対する動きベクトルを求める必要がない。一般に動きベクトル探索の計算量は大きいので、モードが決定したところで動きベクトル探索を打ち切ることにより、全てのモードで動きベクトルを探索する従来方法と比較して、動きベクトル探索の計算量を削減することができる。
【００４７】
本実施の形態の方法は、全てのモードでエンコード、デコードした結果から選択する従来方法と比較して、圧縮率がある程度低下する可能性があるが、計算量がはるかに小さいという利点がある。
【００４８】
なお、動きベクトルを求める方法は特定の方法に限定されない。動きベクトルを求める方法が他の方法であっても、本実施の形態のエンコードモード選択方法と組み合わせて、同様に実施可能である。
【００４９】
なお、本発明はモード選択における誤差の計算方法に依存しないので、誤差を計算する他の方法と組み合わせても同様に実施可能である。
【００５０】
なお、以上の説明では、インター１６×８の後にインター８×１６を調べたが、順序を逆にしても同様に実施可能である。
【００５１】
なお、イントラ予測も用いる場合は、本実施の形態の方法によりインター予測モードを選択したあとに、イントラモードとインターモードの選択を行う。
【００５２】
なお、本発明は、コンピュータとプログラムで実施されることがあり、そのプログラムは記録媒体に記録されることがある。このことは他の実施の形態にも共通する。
【００５３】
（実施の形態２）
実施の形態１では動きベクトル探索（動き評価）とマクロブロックのエンコードモード選択を同時に行ったが、本実施の形態では予め動きベクトルが求められている場合について説明する。以下、マクロブロックのモード選択に先だって動きベクトルが求められているとする。
【００５４】
図８は本実施の形態のフローチャートである。マクロブロックのエンコードモードとしてインター１６×１６、インター１６×８、インター８×１６、インター８×８のモードから選択する場合について説明する。
【００５５】
以下に処理手順を説明する。誤差の計算方法については実施の形態１と同様である。
【００５６】
（１）１６×１６予測の誤差を求める（ステップＳ５０）。
【００５７】
（２）１６×１６の誤差をしきい値と比較し（ステップＳ５１）、しきい値より小さいときは、１６×１６を選択して（ステップＳ５２）、終了する。
【００５８】
（３）１６×１６の誤差がしきい値より大きいか等しいときは、１６×８予測の誤差を求める（ステップＳ５３）。
【００５９】
（４）１６×８の誤差としきい値を比較し（ステップＳ５４）、しきい値より小さいときは、１６×８を選択して（ステップＳ５５）、終了する。
【００６０】
（５）１６×８の誤差がしきい値より大きいか等しいときは、８×１６予測の誤差を求める（ステップＳ５６）。
【００６１】
（６）８×１６の誤差としきい値を比較し（ステップＳ５７）、しきい値より小さいときは、８×１６を選択して（ステップＳ５８）、終了する。
【００６２】
（７）８×１６の誤差がしきい値より大きいか等しいときは、８×８を選択する（ステップＳ５９）。
【００６３】
上の方法により一部のモードについて誤差を求めるだけでマクロブロックのエンコードモードを選択することができる。全てのモードについてエンコード、デコードした結果からモードを選択する従来方法と比較して、本方法ははるかに小さい計算量でエンコードモードを選択することができる。
【００６４】
（実施の形態３）
Ｈ．２６４の規格では動き補償において、マクロブロックのエンコードモードがインター８×８であった場合、８×８のサブマクロブロックをさらに分割することができる。具体的には、８×８の１個のブロック、８×４の２個のブロック、４×８の２個のブロック、あるいは４×４の４個のブロックに分割して、分割した各ブロックごとに動き補償を行うことができる。
【００６５】
本実施の形態はインター８×８のサブマクロブロックの分割方法の選択に関するものである。８×８のサブマクロブロックを分割したブロックに対する動きベクトルは予め求められているものとする。８×８のサブマクロブロックは４個あるが、ここでは１個のサブマクロブロックについて説明する。他のサブマクロブロックに対しても同様である。
【００６６】
図９は本実施の形態の処理手順のフローチャートである。誤差の計算方法は実施の形態１と同様である。
【００６７】
（１）８×８予測の誤差を求める（ステップＳ７０）。
【００６８】
（２）８×８の誤差をしきい値と比較し（ステップＳ７１）、しきい値より小さいときは、８×８を選択して（ステップＳ７２）、終了する。
【００６９】
（３）８×８の誤差がしきい値より大きいか等しいときは、８×４予測の誤差を求める（ステップＳ７３）。
【００７０】
（４）８×４の誤差としきい値を比較し（ステップＳ７４）、しきい値より小さいときは、８×４を選択して（ステップＳ７５）、終了する。
【００７１】
（５）８×４の誤差がしきい値より大きいか等しいときは、４×８予測の誤差を求める（ステップＳ７６）。
【００７２】
（６）４×８の誤差としきい値を比較し（ステップＳ７７）、しきい値より小さいときは、４×８を選択して（ステップＳ７８）、終了する。
【００７３】
（７）４×８の誤差がしきい値より大きいか等しいときは、４×４を選択する（ステップＳ７９）。
【００７４】
なお、本実施の形態では８×４の誤差の比較の後に４×８の誤差を比較したが、比較の順序を逆にしても同様に実施可能である。
【００７５】
なお、８×８のサブマクロブロックを分割した各ブロックに対する動きベクトルが予め求められていない場合は、実施の形態１と同様にモード選択と動きベクトル探索を同時に行うことにより実施可能である。
【００７６】
（実施の形態４）
イントラ予測はイントラ１６×１６とイントラ４×４の２つのモードがある。イントラ１６×１６予測には３種類の予測モードがあり、vertical、horizontal、DC、planeと呼ばれる。イントラ４×４予測には９種類の予測モードがあり、vertical、horizontal、DC、diagonal down left、diagonal down right、vertical right、horizontal down、vertical left、horizontal upと呼ばれる。予測モードの詳細は本発明の本質とは関係ないので省略する。
【００７７】
図１０はイントラ１６×１６とイントラ４×４の２つのモードから一つを選択する方法のフローチャートである。図に従って処理手順を説明する。
【００７８】
（１）イントラ１６×１６予測の全てのモードに対して誤差を求める（ステップＳ９１）。
【００７９】
（２）最小の誤差を求め（ステップＳ９２）、それをイントラ１６×１６予測の誤差とする。
【００８０】
（３）イントラ１６×１６の誤差をしきい値と比較し（ステップＳ９３）、しきい値より小さいときはイントラ１６×１６を選択し（ステップＳ９４）、終了する。
【００８１】
（４）イントラ１６×１６の誤差がしきい値より大きいか等しいときは、イントラ４×４予測を選択する（ステップＳ９５）。
【００８２】
（５）１６個の小ブロックに対して、イントラ４×４予測の全てのモードに対して誤差を求める（ステップＳ９６）。
【００８３】
（６）各小ブロックに対して最小の誤差を求め（ステップＳ９７）、それを１６個の小ブロックの誤差の合計をイントラ４×４予測の誤差とする。
【００８４】
イントラ４×４予測の方が、小さなブロックごとに予測を行うので、誤差（１６個の小ブロックの誤差の合計）はイントラ１６×１６予測の誤差より小さくなる可能性が高い。しかし、イントラ４×４は１６個の小ブロックに対して予測モードの情報を送る必要があるので、予測モードの符号量が大きくなる。
【００８５】
つまり、イントラ１６×１６はイントラ４×４と比較して、予測モードの符号量が小さく、変換係数の符号量が大きくなる。イントラ１６×１６の誤差がしきい値よりも小さいときは、イントラ１６×１６の変換係数の符号量はある上限で抑えることができ、また、モード選択の符号量は小さい。このときは、イントラ４×４の誤差を調べなくても、イントラ１６×１６の方が符号量（変換係数の符号量とモードの符号量の和）が小さくなる可能性が高い。
【００８６】
また、イントラ４×４予測は小ブロックと予測モードの数が多いので、誤差が最小となる予測モードを求めるための計算量が大きくなる。本実施の形態では、イントラ１６×１６の誤差がしきい値より小さいときは、イントラ４×４の小ブロックの誤差を求める必要がないので、計算量が小さくなるという利点がある。
【００８７】
なお、インターモードも用いる場合は、本実施の形態の方法でイントラモードを選択した後に、イントラモードとインターモードの選択を行う。
【００８８】
（実施の形態５）
実施の形態１、２、３、４において、しきい値を固定としないで、符号化のビットレートに応じてしきい値を変更することが可能である。しきい値を変更する場合、以下の理由により、マクロブロック当りのビット量が小さいとき、しきい値が大きくなるように変更する。
【００８９】
実施の形態１、２、３では、与えられたビット量を使って画質を上げるためには動きベクトル（ＭＶ）の符号量と変換係数の符号量にビットを適切に配分する必要がある。ＭＶの符号量は分割されたブロックの個数によってほとんど決まり、符号化のビットレートには無関係である。変換係数の符号量は量子化ステップによって決まり、符号化のビットレートに影響される。
【００９０】
マクロブロック当りの符号量が小さい場合は、変換係数の符号量が小さくなる。そのとき、ＭＶの符号量が大きいと変換係数に割り当てられる符号量が極端に小さくなってしまい、画質が大きく低下する。それを防ぐために、マクロブロック当りの符号量が小さい場合は、変換係数の符号量を確保するためにＭＶの符号量を抑える必要がある。
【００９１】
しきい値が小さいと、小さいブロックが選択されやすくなるのでブロックの個数が多くなる。ブロックの個数が多いと、動きベクトルの符号量が大きくなる。マクロブロック当りのビット量が小さい場合は、しきい値を大きくすることにより、分割されたブロック数を減らし、ＭＶの符号量を抑えることができる。
【００９２】
実施の形態４ではイントラ予測のブロックの個数が多いとモード選択のための符号量が大きくなる。しきい値が小さいとブロックの個数が多くなり、変換係数の符号量が小さくなることは実施の形態１、２、３と同じである。従って、実施の形態１、２、３と同様に、実施の形態４においてもマクロブロック当りのビット量が小さいときはしきい値を大きくする。
【００９３】
（実施の形態６）
本実施の形態はマクロブロックモード選択部に関する。マクロブロックモード選択部は画像符号化装置を構成する一部として用いることができる。
【００９４】
図１１は本実施の形態におけるマクロブロックモード選択部の構成図である。図はマクロブロックのエンコードモードとして、インター１６×１６、インター１６×８、インター８×１６、インター８×８の中から選択する場合の例である。
【００９５】
以下、図に基づいて動作を説明する。入力ビデオデータが１６×１６動きベクトル探索部３０、１６×８動きベクトル探索部３１、８×１６動きベクトル探索部３２、８×８動きベクトル探索部３３に入力される。ビデオデータはビデオメモリ３５にも入力される。ビデオメモリ３５には過去の（符号化順で）フレームのデータが保存されている。
【００９６】
１６×１６動きベクトル探索部３０は１６×１６のサイズの１個のブロックに対する動きベクトルを出力する。１６×８動きベクトル探索部３１は１６×８のサイズの２個のブロックに対する動きベクトルを出力する。８×１６動きベクトル探索部３２は８×１６のサイズの２個のブロックに対する動きベクトルを出力する。８×８動きベクトル探索部３３は８×８のサイズの４個のブロックに対する動きベクトルを出力する。動きベクトルを求める方法はどのようなものであっても良い。一つの方法として実施の形態１で説明したフルサーチであっても良い。
【００９７】
参照フレームビデオメモリ３６には既にエンコードされローカルデコードされた参照フレームが保存されている。モード選択部３４は動きベクトルと参照フレームビデオメモリ３６から入力された参照フレームから、動き補償を行って予測画像を作成する。動きベクトルが４種類あるので、４種類の予測画像を作成する。
【００９８】
モード選択部３４は原画像と予測画像から差分を求める。差分の２乗の和を計算し、誤差の大きさとする。予測方法が４種類あるので、１６×１６、１６×８、８×１６、８×８の４種類の誤差を計算する。４種類の誤差としきい値を比較し、誤差がしきい値よりも小さいものの中で最も大きな動き補償サイズを選択する。全ての誤差がしきい値より大きいときは８×８を選択する。
【００９９】
本実施の形態によるマクロブロックモード選択部を用いることにより、大きいサイズの動き補償モードを優先的に選択することになるので、動きベクトルの個数を減らし、動きベクトルの符号量を抑えることができる。
【０１００】
なお、誤差の大きさとしては差分の２乗の和（ＳＳＤ）を用いた場合について説明したが、誤差として差分の絶対値の和（ＳＡＤ）あるいは他の値を用いた場合についても同様に実施可能である。
【０１０１】
なお、図１１は原画像どうしの比較によって動きベクトルを探索する場合について示している。探索に用いる画像として、原画像とローカルデコードされた画像を用いることも可能である。この場合、ビデオメモリ３５に代って、参照フレームビデオメモリ３６の画像が動きベクトル探索部に入力される。
【産業上の利用可能性】
【０１０２】
本発明にかかる画像符号化方法およびその装置はマクロブロックのモード選択における計算量が小さいという特徴を有し、ビデオカメラ、テレビ電話等の符号化装置として有用である。また、計算量が小さくなるので消費電力を抑えることができ、低消費電力という効果が必要な携帯用機器等の用途にも適用できる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の実施の形態１におけるモード選択方法のフローチャート
【図２】Ｈ．２６４符号化装置の基本構成図
【図３】動き補償のブロックの説明図
【図４】イントラ予測の説明図
【図５】イントラ１６×１６予測の説明図
【図６】イントラ４×４予測の説明図
【図７】非特許文献２による従来のモード選択方法のフローチャート
【図８】本発明の実施の形態２におけるモード選択方法のフローチャート
【図９】本発明の実施の形態３におけるモード選択方法のフローチャート
【図１０】本発明の実施の形態４におけるモード選択方法のフローチャート
【図１１】本発明の実施の形態６におけるモード選択部の構成図
【符号の説明】
【０１０４】
１０    変換部
１１    量子化部
１２    エントロピー符号化部
１３    逆量子化部
１４    逆変換部
１５    デブロッキングフィルタ部
１６    ビデオメモリ部
１７    動き評価部
１８    イントラ予測部
１９    動き補償部
３０    １６×１６動きベクトル探索部
３１    １６×８動きベクトル探索部
３２    ８×１６動きベクトル探索部
３３    ８×８動きベクトル探索部
３４    モード選択部
３５    ビデオメモリ
３６    参照フレームビデオメモリ
【図１】
2005268879.tif 000003
【図２】
2005268879.tif 000004
【図３】
2005268879.tif 000005
【図４】
2005268879.tif 000006
【図５】
2005268879.tif 000007
【図６】
2005268879.tif 000008
【図７】
2005268879.tif 000009
【図８】
2005268879.tif 000010
【図９】
2005268879.tif 000011
【図１０】
2005268879.tif 000012
【図１１】
2005268879.tif 000013