(57)【要約】【課題】時間的に輝度変化が大きい動画像を符号化するにあたって、動き補償モードを適切に選択することができる符号化装置を提供する。【解決手段】動き補償を施すにあたっての各補償方式についての評価値を算出し、算出された評価値に基づき補償方式を選択する。この評価値は、各動き補償モードにて予測されるマクロブロックについての誤差の交流成分、誤差の直流成分をパラメータとした値であり、符号化装置は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値を算出する。【選択図】　図１
2004072732.tif 000002
【特許請求の範囲】
【請求項１】
動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する符号化装置であって、
各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、
算出された誤差の直流成分、及び、誤差の交流成分を用いて各補償方式についての評価値を算出する第２算出手段と、
算出された評価値に基づき補償方式を選択する選択手段とを備え、
前記第２算出手段は、
個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行う
ことを特徴とする符号化装置。
【請求項２】
前記誤差の直流成分の減衰は、係数α（０＜α＜１）を、誤差の直流成分に乗ずることによりなされる
ことを特徴とする請求項１記載の符号化装置。
【請求項３】
前記係数αは、１／６４である
ことを特徴とする請求項２記載の符号化装置。
【請求項４】
前記第１算出手段は、
前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、
当該残差の平均を、２乗することで算出され、
前記誤差の交流成分は、当該平均二乗誤差から、誤差の直流成分を引くことで算出される
ことを特徴とする請求項１記載の符号化装置。
【請求項５】
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段を備え、
決定手段による変換方式の決定は、選択手段による補償方式の選択に先立ち行われ、
前記第１算出手段は、
決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての誤差の交流成分、及び、誤差の直流成分を算出する
ことを特徴とする請求項１又は４記載の符号化装置。
【請求項６】
決定手段により決定される変換方式には、フレーム方式と、フィールド方式とがあり、
決定手段により決定された変換方式がフレーム方式なら、
マクロブロックを構成するフレームに対し、誤差の交流成分、誤差の直流成分を算出し、
決定手段により決定された変換方式がフィールド方式なら、
マクロブロックを構成する各フィールド毎に誤差の交流成分、及び、誤差の直流成分を算出し、算出された誤差の交流成分、及び、誤差の直流成分の平均値を、誤差の交流成分、及び、誤差の直流成分とする
ことを特徴とする請求項５記載の符号化装置。
【請求項７】
前記符号化装置は、
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段と、
決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出手段と、
選択手段により選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出手段により算出された分散値と比較する比較手段とを備え、
選択手段により選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、
符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合である
ことを特徴とする請求項１記載の符号化装置。
【請求項８】
前記所定の閾値は、４である
ことを特徴とする請求項７記載の符号化装置。
【請求項９】
決定手段により決定される変換方式には、フレーム方式と、フィールド方式とがあり、
前記第３算出手段は、
決定手段により決定された変換方式がフレーム方式なら、
符号化対象たるマクロブロックを構成するフレームについての分散値を算出し、
第２決定手段により決定された変換方式がフィールド方式なら、
マクロブロックを構成する各フィールド毎に分散値を算出し、算出された分散値の平均値を算出する
ことを特徴とする請求項７記載の符号化装置。
【請求項１０】
前記第１算出手段は、前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、
当該残差の平均を、２乗することで算出され、
前記分散値は、符号化マクロブロックの平均と、符号化マクロブロックの画素値の差の２乗の平均として算出される
ことを特徴とする請求項７記載の符号化装置。
【請求項１１】
マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、
参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、
算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出手段と、
算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択手段とを備え、
前記第２算出手段は、
個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行う
ことを特徴とする符号化装置。
【請求項１２】
前記誤差の直流成分は、
前記符号化対象たるマクロブロックに属する画素の値の合計から、候補マクロブロックに属する画素の値の合計を差し引いて、絶対値をとることにより得られる値であり、
前記誤差の交流成分は、
前記符号化対象たるマクロブロックに属する個々の画素の値から、その符号化対象たるマクロブロックにおける画素の値の平均値を差し引いた値と、
前記参照マクロブロックに属する個々の画素の値から、その参照マクロブロックにおける画素の値の平均値を差し引いた値とに基づき、算出される値である
ことを特徴とする請求項１１記載の符号化装置。
【請求項１３】
動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する処理を、コンピュータに実行させるコンピュータ読取可能なプログラムであって、
各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップと、
算出された誤差の直流成分、及び、誤差の交流成分を用いて各補償方式についての評価値を算出する第２算出ステップと、
算出された評価値に基づき補償方式を選択する選択ステップとをコンピュータに実行させ、
前記第２算出ステップは、
個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行う
ことを特徴とするコンピュータ読取可能なプログラム。
【請求項１４】
前記誤差の直流成分の減衰は、係数α（０＜α＜１）を、誤差の直流成分に乗ずることによりなされる
ことを特徴とする請求項１３記載のコンピュータ読取可能なプログラム。
【請求項１５】
前記係数αは、１／６４である
ことを特徴とする請求項１４記載のコンピュータ読取可能なプログラム。
【請求項１６】
前記第１算出ステップは、
前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、
残差の平均を、２乗することで算出され、
前記誤差の交流成分は、当該平均二乗誤差から、誤差の直流成分を引くことで算出される
ことを特徴とする請求項１３記載のコンピュータ読取可能なプログラム。
【請求項１７】
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定ステップを備え、
決定ステップによる変換方式の決定は、選択ステップによる補償方式の選択に先立ち行われ、
前記第１算出ステップは、
決定ステップにより決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての誤差の交流成分、及び、誤差の直流成分を算出する
ことを特徴とする請求項１３又は１６記載のコンピュータ読取可能なプログラム。
【請求項１８】
決定ステップにより決定される変換方式には、フレーム方式と、フィールド方式とがあり、
決定ステップにより決定された変換方式がフレーム方式なら、
マクロブロックを構成するフレームに対し、誤差の交流成分、誤差の直流成分を算出し、
決定ステップにより決定された変換方式がフィールド方式なら、
マクロブロックを構成する各フィールド毎に誤差の交流成分、及び、誤差の直流成分を算出し、算出された誤差の交流成分、及び、誤差の直流成分の平均値を、誤差の交流成分、及び、誤差の直流成分とする
ことを特徴とする請求項１７記載のコンピュータ読取可能なプログラム。
【請求項１９】
前記コンピュータ読取可能なプログラムは、
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定ステップと、
決定ステップにより決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出ステップと、
選択ステップにより選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出ステップにより算出された分散値と比較する比較ステップとを備え、
選択ステップにより選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、
符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合である
ことを特徴とする請求項１３記載のコンピュータ読取可能なプログラム。
【請求項２０】
前記所定の閾値は、４である
ことを特徴とする請求項１９記載のコンピュータ読取可能なプログラム。
【請求項２１】
決定ステップにより決定される変換方式には、フレーム方式と、フィールド方式とがあり、
前記第３算出ステップは、
決定ステップにより決定された変換方式がフレーム方式なら、
符号化対象たるマクロブロックを構成するフレームについての分散値を算出し、
第２決定ステップにより決定された変換方式がフィールド方式なら、
マクロブロックを構成する各フィールド毎に分散値を算出し、算出された分散値の平均値を算出する
ことを特徴とする請求項１９記載のコンピュータ読取可能なプログラム。
【請求項２２】
前記第１算出ステップは、前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、
当該残差の平均を、２乗することで算出され、
前記分散値は、符号化マクロブロックの平均と、符号化マクロブロックの画素値の差の２乗の平均として算出される
ことを特徴とする請求項１９記載のコンピュータ読取可能なプログラム。
【請求項２３】
マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出するコンピュータ読取可能なプログラムであって、
参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップ、
算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出ステップとをコンピュータに実行させ、
算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択ステップとを備え、
前記第２算出ステップは、
個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行う
ことを特徴とするコンピュータ読取可能なプログラム。
【請求項２４】
前記誤差の直流成分は、
前記符号化対象たるマクロブロックに属する画素の値の合計から、候補マクロブロックに属する画素の値の合計を差し引いて、絶対値をとることにより得られる値であり、
前記誤差の交流成分は、
前記符号化対象たるマクロブロックに属する個々の画素の値から、その符号化対象たるマクロブロックにおける画素の値の平均値を差し引いた値と、
前記参照マクロブロックに属する個々の画素の値から、その参照マクロブロックにおける画素の値の平均値を差し引いた値とに基づき、算出される値である
ことを特徴とする請求項２３記載のコンピュータ読取可能なプログラム。
【請求項２５】
動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する符号化方法であって、
各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップと、
算出された誤差の直流成分、及び、誤差の交流成分を用いて各補償方式についての評価値を算出する第２算出ステップと、
算出された評価値に基づき補償方式を選択する選択ステップとを有し、
前記第２算出ステップは、
個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行う
ことを特徴とする符号化方法。
【請求項２６】
前記符号化方法は、
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定ステップと、
決定ステップにより決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出ステップと、
選択ステップにより選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出ステップにより算出された分散値と比較する比較ステップとを備え、
選択ステップにより選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、
符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合である
ことを特徴とする請求項２５記載の符号化方法。
【請求項２７】
マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、
参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップ、
算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出ステップと、
算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択ステップとを有し、
前記第２算出ステップは、
個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行う
ことを特徴とする符号化方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、動画像の符号化対象を行う符号化装置に関し、特に動きベクトルの検出や、動き補償方式の選択を行うにあたっての改良に関する。
【０００２】
【従来の技術】
ＭＰＥＧ２ビデオの規格（ＩＳＯ／ＩＥＣ　１３８１８−２，　”Ｉｎｆｏｒｍａｔｉｏｎ　ｔｅｃｈｎｏｌｏｇｙ　−　Ｇｅｎｅｒｉｃ　ｃｏｄｉｎｇ　ｏｆ　ｍｏｖｉｎｇ　ｐｉｃｔｕｒｅｓ　ａｎｄ　ａｓｓｏｃｉａｔｅｄ　ａｕｄｉｏ　ｉｎｆｏｒｍａｔｉｏｎ：　Ｖｉｄｅｏ”）を応用した応用製品が、近年の民生機器市場を席巻している。ＭＰＥＧ２ビデオ規格は復号方法を規定したにすぎず、符号化方法は規定されていないので、かかる応用製品の開発では、実装にあたって適当な符号化方法を選択せねばならない。ＭＰＥＧ２ビデオの符号化方法として広く知られているのは、”Ｔｅｓｔ　Ｍｏｄｅｌ　５”（ＩＳＯ／ＩＥＣ　ＪＴＣ／ＳＣ２９／ＷＧ１１／Ｎ０４００，　Ａｐｒ　１９９３，　ＴＭ５と略す）である。
【０００３】
Ｔｅｓｔ　Ｍｏｄｅｌ５による符号化処理は、動きベクトル探索（１）　動き補償モードの選択（２）、ＤＣＴタイプ選択（３）、ＤＣＴ、量子化、可変長符号化（４）という工程からなる。これらの工程のうち、動きベクトルをどのように探索するか、動き補償モードをどのように選択するかは、画質を大きく左右する。
ここでＰピクチャに対する動き補償モードの選択について説明する。Ｐピクチャにおける動き補償モードには、前方フレーム予測、前方フィールド予測、ＮｏＭＣ（動きベクトルを０とした動き補償）、イントラ（動き補償を行わない）という４つのものがある。これらの動き補償モードで予測されるマクロブロックは、動き補償モード毎に異なる。
【０００４】
最も良い動き補償モードを選択するため、Ｔｅｓｔ　Ｍｏｄｅｌ５では各モードで予測されるマクロブロック（予測ＭＢ）について平均二乗誤差（Ｍｅａｎ　Ｓｑｕａｒｅ　Ｅｒｒｏｒ（ＭＳＥ））を算出し、予測ＭＢのＭＳＥを評価値として、動き補償モードを選択するという考えをとっている。Ｔｅｓｔ　Ｍｏｄｅｌ５による符号化技術は、以下の非特許文献１に記載されている。
【０００５】
また、動きベクトル探索については、以下の特許文献１に記載された技術が知られている。動きベクトルとは、符号化対象たるマクロブロックを基準とした参照マクロブロックの相対位置を示す情報である。動きベクトル探索は、候補になり得る複数マクロブロックのそれぞれについて、評価値を算出し、この評価値が最小のマクロブロックを参照マクロブロックに選ぶという手順でなされる。
【０００６】
特許文献１に記載の符号化装置は、この評価値の算出に特徴がある。つまりマクロブロックが有する誤差の直流成分、誤差の交流成分のうち、誤差の直流成分を完全に除去して誤差の交流成分のみを用いて評価値を算出する。
また、符号化技術に関しては、以下の特許文献２に記載された技術も知られている。
【０００７】
【特許文献１】
特許第２６２５４２４号公報
【０００８】
【特許文献２】
特開昭６３−１９３７８４号公報
【０００９】
【非特許文献１】
Ｔｅｓｔ　Ｍｏｄｅｌ５，ＩＳＯ／ＩＥＣ　ＪＴＣ／ＳＣ２９／ＷＧ１１／ＮＯ４００，１９９３
【００１０】
【発明が解決しようとする課題】
しかしながら従来の動き補償モード選択、及び動きベクトル探索は、以下のような３つの問題点を有する。
第１に、Ｔｅｓｔ　Ｍｏｄｅｌ５による動き補償モードの選択は、時間的に輝度変化が大きい動画像では適切な動き補償モードを選択することができない場合がある。そのような動画像には、暗いコンサート会場で、ライトが激しく明滅しているような動画像がある。かかる動画像は、輝度変化が大きく、ＭＳＥにおいて誤差の直流成分が大きな割合を占める。各動き補償モードについての予測ＭＢのＭＳＥを算出しようとすると、どの動き補償モードについてのＭＳＥも誤差の直流成分が大きな割合を占めることになる。かかるＭＳＥを評価値としてインター型の動き補償モード（インターモード）を選べば、絵柄が全く異なるけれど、輝度はたまたま同じになっているようなマクロブロックを予測ＭＢに選んでしまう。そのような予測ＭＢの誤選択にて、画質低下が生じる場合がある。
【００１１】
第２に、Ｔｅｓｔ　Ｍｏｄｅｌ５による動き補償モード選択は、輝度変化が大きいインターレス画像では適切な動き補償モードを選択することができない場合がある。インターレス画像は、絵柄そのものは平坦であっても、フィールド間の時間的変化が大きいことがある。フィールド間の時間的変化が大きいと、マクロブロックの分散値は大きな値に算出される。マクロブロックの分散値とは、符号化をイントラモードで行うか、インターモードで行うかの決定時に参照されるパラメータである。この分散値が大きな値になれば、イントラモード／インターモードの選択にあたってインターモードが選択される。しかしインターレス動画像とはいえ、絵柄そのものの変化は平坦なので、イントラモードでフィールドＤＣＴによる符号化を行えば符号量が小さくなることは客観的に明らかであり、それにも拘らずインターモードを選択すると、最適な符号量が得られない可能性が生ずる。輝度変化が大きいインターレス画像を例にとって説明したが、水平方向に物体が動くようなインターレス画像でも同様の問題が生じ得る。
【００１２】
第３に、特許文献１に記載の技術は、誤差の直流成分を除外し、誤差の交流成分のみで評価している。そのため、時間的に輝度変化が激しい動画像においても適切に動きベクトルを探索することができる。しかし、輝度変化が小さく、絵柄の変化にも乏しい動画像については、動きベクトルの探索を誤ることがある。つまり、符号化対象たるマクロブロックの周辺に、空の絵等、平坦な絵柄のマクロブロックが位置している場合、周辺のどのマクロブロックについても誤差の交流成分は小さくなる。しかし空の画像は、一見は平坦であっても、広い範囲では、微妙な変化が存在していることが多い。このような大きな範囲での微妙な変化は誤差の直流成分に現れる。特許文献１による動きベクトル探索は、この変化を無視して参照マクロブロックを選んでいるので、誤差の直流成分が大きなマクロブロックを選択し、画質劣化を招来することがある。
【００１３】
本発明の第１の目的は、時間的に輝度変化が大きい動画像を符号化するにあたって、動き補償モードを適切に選択することができる符号化装置を提供することである。
本発明の第２の目的は、時間的に輝度変化が大きい動画像を符号化するにあたって、動き補償モードを行うか、イントラモードで符号化するかの選択を適切に行うことができる符号化装置を提供することである。
【００１４】
本発明の第３の目的は、時間的な輝度変化が大きくても小さくても、かつ、絵柄が平坦であっても複雑であっても、動きベクトルを適切に探索することができる符号化装置を提供することである。
【００１５】
【課題を解決するための手段】
上記第１の目的を達成するため、本発明に係る符号化装置は、動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する符号化装置であって、各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、算出された誤差の直流成分、及び、誤差の交流成分を用いて各補償方式についての評価値を算出する第２算出手段と、算出された評価値に基づき補償方式を選択する選択手段とを備え、前記第２算出手段は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行うことを特徴としている。
【００１６】
上記第２の目的を達成するため、本発明に係る符号化装置は、マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段と、決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出手段と、選択手段により選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出手段により算出された分散値と比較する比較手段とを備え、
選択手段により選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合であることを特徴としている。
【００１７】
上記第３の目的を達成するため、本発明に係る符号化装置は、マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出手段と、算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択手段とを備え、前記第２算出手段は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値を算出することを特徴としている。
【００１８】
【発明の実施の形態】
本発明に係る符号化装置の実施形態について説明する。本発明に係る符号化装置は、図１に示すハードウェア構成に基づき工業的に生産される。図１に示すように符号化装置は、Ａ／Ｄコンバータ１、フォーマット変換部２、画面並替部３、フレームメモリ４、減算器５、動き補償予測部６、ＤＣＴ部７、量子化部８、可変長符号化部９、バッファ１０、レート制御部１１、逆量子化部１２、逆ＤＣＴ部１３、加算器１４、Ｄ／Ａコンバータ１５を備える。
【００１９】
Ａ／Ｄコンバータ１は、Ａ／Ｄ変換を実施する回路からなり、アナログ信号形式のビデオフレームを輝度信号（Ｙ）と色差信号（Ｃｂ、Ｃｒ）とに分離して、それぞれの信号をデジタル形式に変換する。この変換によりデジタルデータ形式のビデオフレームが得られることになる。こうして得られたビデオフレームは、順次フォーマット変換部２に出力される。
【００２０】
フォーマット変換部２は、Ａ／Ｄコンバータ１により得られたビデオフレームを、空間解像度形式に変換し、変換後のビデオフレームを画面並替部３に出力する。
画面並替部３は、フォーマット変換部２から出力されたビデオフレームを並べ替える。つまりアナログ信号形式においてビデオフレームは、表示順序と呼ばれる順序になっており、これを並べ替えることにより、符号化順序に配されたビデオフレーム列を得る。符号化順序に並べ替えられたビデオフレーム列のうち個々のビデオフレームを、画面並替部３は、符号化対象たるフレームとして、減算器５及び動き補償予測部６に出力する。
【００２１】
フレームメモリ４は、動き補償を行うにあたって、符号化対象たるフレームの参照フレームになりうるフレームが格納される。具体的にいうと、符号化対象たるフレームの前方に位置するビデオフレーム、後方に位置するビデオフレームがこのフレームメモリ４に格納されることになる。
減算器５は、符号化対象たるビデオフレームと、フレームメモリ４に格納された参照フレームとの残差を算出して動き補償予測部６及びＤＣＴ部７に出力する。
【００２２】
動き補償予測部６は、減算器５から出力された残差と、符号化対象たるマクロブロック（以降、符号化ＭＢという）とに基づき、動き補償モードの選択を行い、動き補償を行って動きベクトルと、予測モードとを可変長符号化部９に出力する。予測モードとは、イントラモードで符号化を行うか、複数のインターモードのうち何れのインターモードで符号化を行うかを可変長符号化部９に指示する情報である。
【００２３】
ＤＣＴ部７は、減算器５から出力された残差や符号化ＭＢに対してＤＣＴを実施し、その結果得られるＤＣＴ係数を量子化部８に出力する。これにより、複数のＤＣＴ係数が格納されたマトリクスが生成されることとなる。
量子化部８は、ＤＣＴ係数を１６倍して、（量子化係数×２×量子化スケール）の値で割り、さらに、小数点以下四捨五入することで量子化を行う。
【００２４】
可変長符号化部９は、ＤＣＴ係数、動きベクトル及び予測モードそれぞれについて、出現頻度がより高いデータにより短いコードを割り当てるように符号化を行う。
バッファ１０は、ＦＩＦＯメモリであり、可変長符号化部９から入力されたデータを、入力順に逐次格納する。
【００２５】
レート制御部１１は、バッファ１０がアンダーフロー及びオーバーフローを起こさないように、バッファ１０内のデータ量を監視する機能を有する。この監視は、バッファ１０のデータ量を参照し、量子化部８にそのデータ量を示す情報をフィードバックすることでなされる。この情報にもとづいて、量子化部８が可変長符号化部９への出力速度を調整すれば、バッファ１０からの出力を一定のレートに保つことができる。
【００２６】
逆量子化部１２は、量子化部８により量子化されたＤＣＴ係数に、（量子化係数×２×量子化スケール）の値を乗じ、更に１６で割ることにより、逆量子化を実施して逆ＤＣＴ部１３に出力する。
逆ＤＣＴ部１３は、逆量子化部１２からＤＣＴ係数の値を受信し、この値に逆ＤＣＴを実行することで符号化前の残差を得て加算器１４に出力する。
【００２７】
加算器１４は、加算回路であって、逆ＤＣＴ部１３から出力された残差を、フレームメモリ４に格納されている参照フレームに足し合わせ、その加算した結果をフレームメモリ４に出力する。
以上が符号化装置の全体構成である。
続いて、符号化装置の中核となる動き補償予測部６について説明する。動き補償予測部６は、ＣＰＵ、プログラムを格納したＲＯＭ、ＲＡＭからなる典型的なコンピュータシステムとして符号化装置に実装される。ＲＯＭに格納されたプログラムがＣＰＵに読み込まれ、プログラムと、ハードウェア資源とが協動することにより、動き補償予測部６はその機能を果たす。動き補償予測部６を示す枠内は、ＲＯＭに格納されたプログラムと、ハードウェア資源とが協動した具体的手段を示す。
【００２８】
この枠内に示すように動き補償予測部６は、動きベクトルの探索を行う動きベクトル探索部１６、ＤＣＴタイプを決定するＤＣＴタイプ決定部１７、複数のインター型の動き補償モード（インターモード）のうち、最善のものを選択するインター選択部１８、最善のインターモードと、イントラモードとを比較し、何れか一方を選択するインター／イントラ選択部１９を備える。
【００２９】
本実施形態ではこのうちＤＣＴタイプ決定部１７、インター選択部１８について詳しく説明し、動きベクトル探索部１６、インター／イントラ選択部１９については第２実施形態、第３実施形態に説明を譲る。
ＤＣＴタイプ決定部１７は、動きベクトルと、フレームメモリ４中にあるマクロブロックとに基づき、ＤＣＴタイプを決定する。残差のマクロブロックにおいて、隣接するライン間の輝度差の２乗和と１ライン置きのライン間の輝度差の２乗和を比較し、前者の方が小さければフレームＤＣＴとし、後者の方が小さければフィールドＤＣＴとする。
【００３０】
インター選択部１８は、各モードで予測されるマクロブロック（予測ＭＢ）についてＭＳＥを算出し、予測ＭＢのＭＳＥを評価値として、動き補償モードを選択する。インター選択部１８によるモード選択がＴｅｓｔ　Ｍｏｄｅｌ５のそれと異なるのは、誤差の直流成分、誤差の交流成分の算出手順をＤＣＴタイプに応じて変化させていること（１）、ＭＳＥに修正を施した値を評価値に用いていること（２）である。
【００３１】
誤差の直流成分、誤差の交流成分の算出手法をどのように変化させているかを、フレーム、フィールドのそれぞれについて説明する。先ず始めに、直流成分の平均二乗誤差、交流成分の平均二乗誤差がどのように算出されるかについて説明する。符号化ＭＢにおいて座標（ｉ，ｊ）に位置する輝度をＸｉｊとし、参照マクロブロックにおいて座標（ｉ，ｊ）に位置する輝度をＹｉｊとする。この２つのマクロブロックにおけるＭＳＥは、以下の数１の式で算出される。
【００３２】
【数１】
2004072732.tif 000003
誤差の直流成分（ＤＣＥ）は、誤差の平均値ｍの２乗として以下の数２に示すように算出される。
【００３３】
【数２】
2004072732.tif 000004
一方、誤差の交流成分（ＡＣＥ）は、上述した平均値ｍを基準とした分散値として算出される。以下の数３は、分散値の算出式を示す。
【００３４】
【数３】
2004072732.tif 000005
ここで分散値の算出式は、
分散値＝（２乗の平均）−（平均の２乗）
という形式に展開できる。展開後の式において、（２乗の平均）の項、（平均の２乗）の項をそれぞれＭＳＥ，ＤＣＥに置き換えれば、ＡＣＥ＝ＭＳＥ−ＤＣＥという関係が成立する。
【００３５】
ＭＳＥと、ＤＣＥ、ＡＣＥとの関係は、以下のようになる。
ＭＳＥ＝ＤＣＥ＋ＡＣＥ
数３の展開については、以下の説明を参照されたい。
【００３６】
ｎ個の数値ｘ１，ｘ２，ｘ３・・・・・ｘｎにおける平均値ｍを用いて数３における分散値の計算式を表現する。ここで、ｎ個の数値ｘ１，ｘ２，ｘ３・・・・・ｘｎにおける平均値ｍは、以下の数４の式で表現される。
【００３７】
【数４】
2004072732.tif 000006
この数４の式を用いて数３の計算式を表すと、数５のようになる。
【００３８】
【数５】
2004072732.tif 000007
数６は、分散値の計算式の展開の過程を示す。
【００３９】
【数６】
2004072732.tif 000008
かかる展開を経て、分散値＝（２乗の平均）−（平均の２乗）という式が成立していることがわかる。
以上がフレーム予測時におけるＤＣＥ、ＡＣＥの算出式である。フィールド予測時に１つのフィールドに対するおけるＤＣＥ、ＡＣＥの算出式を以下の数７に示す。
【００４０】
【数７】
2004072732.tif 000009
以上がＤＣＥ、ＡＣＥの算出手法である。インター選択部１８の１つ目の特徴は、以上のような計算手法をＤＣＴタイプに応じて変化させる点である。
ＤＣＴタイプがフレームの場合はフレームマクロブロック（１６×１６）に対して、符号化ＭＢとの残差から上述した計算を行ってＤＣＥ、ＡＣＥを得る。
【００４１】
ＤＣＴタイプがフィールドの場合は、２つのフィールド（８×１６）に対してそれぞれＤＣＥを求め、それを平均した値をマクロブロックのＤＣＥとする。ＡＣＥについても同様に、２つのフィールドに対してそれぞれＡＣＥを求め、それを平均した値をマクロブロックのＡＣＥとする。
インター選択部１８の２つ目の特徴は、モード選択にあたっての評価値として修正されたＭＳＥを用いる点である。修正されたＭＳＥとは、ＤＣＥを減衰させたものであり、ｍｏｄＭＳＥで表す。式に表すと、ｍｏｄＭＳＥは以下のようになる。
ｍｏｄＭＳＥ　＝　α×ＤＣＥ　＋　ＡＣＥ
ここで、αは減衰率で、０＜α＜１　である。
このαの値は、デフォルト値として１／６４に設定するのが望ましい。何故なら、各種シミュレーションによると、αを１／６４とした場合に圧縮率やＳ／Ｎ比が最適になったことがわかっているからである。またαの値は、ユーザインターフェイスよりユーザからの指示が通知されたとき、この指示にもとづいて変更できるように構成することが望ましい。このようにαの値を変更すれば、ユーザはモニタで符号化後の画質を確認し、納得の行く画質が確保できるよう、αの値を調整できるからである。
【００４２】
以降、フローチャートを参照しながら、動き補償予測部６及びインター選択部１８の処理手順について説明する。図２は、動き補償予測部６全体における大きな処理の流れを示すフローチャートである。動きベクトル探索部１６に動きベクトルを探索させ（ステップＳ１０１）、ＤＣＴタイプ決定部１７にＤＣＴタイプを決定させてから（ステップＳ１０２）、動き補償モードを選択し（ステップＳ１０３）、その後、ＤＣＴ部７、量子化部８、可変長符号化部９にＤＣＴ，量子化、可変符号長符号化を行わせる（ステップＳ１０４）というものである。動き補償モードの選択は、インター選択部１８に最善のインターモードを選択させるという処理（ステップＳ１０５）と、最善のインターモード、イントラモードのうち何れかをインター／イントラ選択部１９に選択させるという処理（ステップＳ１０６）とを含む。
【００４３】
インター選択部１８を構成するには、コンピュータ記述言語を用いて図３のフローチャートに示す処理手順を記述することでプログラムを作成し、コンピュータに実行させればよい。以降、図３を参照しながら、インター選択部１８の処理手順について説明する。尚、簡略を期するため、本フローチャートでは、”マクロブロック”をＭＢと略記している。
【００４４】
ステップＳ１〜ステップＳ２は、インターモードのそれぞれについてステップＳ３〜ステップＳ８の処理を繰り返すループ処理を形成している。Ｐピクチャであれば、前方フレーム予測（１）、前方フィールド予測（２）、ＮｏＭＣ（３）のそれぞれが、ステップＳ３〜ステップＳ８の対象となる。Ｂピクチャであれば、前方フレーム予測（１）、前方フィールド予測（２）、後方フレーム予測（３）、後方フィールド予測（４）、両方向フレーム予測（５）、両方向フィールド予測（６）のそれぞれが、ステップＳ３〜ステップＳ８の処理の対象となる。
【００４５】
このループ処理において、対象となる動き補償モードを動き補償モードｐとし、この動き補償モードｐにて予測されるマクロブロックをマクロブロックｐとする。ステップＳ３は、ＤＣＴタイプ決定部により決定されたＤＣＴタイプにより、処理手順を切り換える。
ＤＣＴタイプがフレームなら、予測ＭＢｐのうち、１６×１６のフレームについての残差に基づきＤＣＥ，ＡＣＥを算出する（ステップＳ４）。
【００４６】
ＤＣＴタイプがフィールドなら、予測ＭＢｐのうち、１６×８，１６×８の２つのフィールドについてＤＣＥ、ＡＣＥを、マクロブロックｐと、符号化ＭＢとの残差に基づき算出する（ステップＳ５）。そして２つのフィールドにおけるＤＣＥの平均をＤＣＥに設定し（ステップＳ６）、２つのフィールドにおけるＡＣＥの平均をＡＣＥに設定する（ステップＳ７）。
【００４７】
ステップＳ４、及び、ステップＳ５〜ステップＳ７の何れか一方で、ＤＣＥ、ＡＣＥが計算されれば、ＤＣＥに係数αを乗じ、ＡＣＥを足し合わせて、ｍｏｄＭＳＥ（ｐ）を得る（ステップＳ８）。このｍｏｄＭＳＥ（ｐ）が、モードｐにおける評価値となる。ステップＳ３〜ステップＳ８の処理を、インターモードのそれぞれについて繰り返せば、インターモードのそれぞれについて、評価値が算出されることになる。こうして各インターモードについてのｍｏｄＭＳＥが算出されれば、算出されたインターモードのうち、予測ＭＢにおけるｍｏｄＭＳＥが最小になったものを選択する（ステップＳ９）。
ＤＣＥ，　ＡＣＥ，　ｍｏｄＭＳＥの計算例を交えて、インター選択部１８の動作例について説明する。
【００４８】
この動作例の対象となる画像は輝度変化が大きいインターレース画像であり、ピクチャタイプは、Ｐピクチャであるものとする。このＰピクチャのうち、符号化対象となるマクロブロック（符号化ＭＢ）は、以下の１６×１６の輝度を持つものとする。
【００４９】
2004072732.tif 000010
【００５０】
インター選択部１８は、前方フレーム予測（１）、前方フィールド予測（２）、ＮｏＭＣ（３）のうち、どの動き補償モードが最善であるかの選択を行う。そのため、これらインター型の動き補償モードのそれぞれについて、評価値を算出する。前方フレーム予測（１）がインターモードｐである場合、以下の１６×１６の輝度を持つマクロブロックが予測されるものとする。
【００５１】
2004072732.tif 000011
【００５２】
この予測ＭＢと、符号化ＭＢとの画素毎の残差は以下のようになる。
2004072732.tif 000012
【００５３】
ステップＳ４においてこの残差からＤＣＥを算出するとＤＣＥ＝２３９になり、またＡＣＥを算出すると、ＡＣＥ＝５になる。ステップＳ８において係数αを１／６４にしてｍｏｄＭＳＥを算出すると、９になる。
【００５４】
ＭＳＥ＿ｆｒａｍｅ　９　（ＡＣＥ　５，　ＤＣＥ　２３９）
前方フィールド予測（２）がインターモードｐである場合、以下の１６×１６の輝度を持つマクロブロックが予測されるものとする。
2004072732.tif 000013
【００５５】
この予測ＭＢと、符号化ＭＢとの画素毎の残差は以下のようになる。
2004072732.tif 000014
ステップＳ５〜ステップＳ７において、残差からＤＣＥを算出するとＤＣＥ＝２４２になり、またＡＣＥを算出すると、ＡＣＥ＝５になる。ステップＳ８において係数αを１／６４にしてｍｏｄＭＳＥを算出すると、９になる。
【００５６】
ＭＳＥ＿ｆｉｅｌｄ　９　（ＡＣＥ　５，　ＤＣＥ　２４２）
ＮｏＭＣ（３）がインターモードｐである場合、以下の１６×１６の輝度を持つマクロブロックが予測されるものとする。
2004072732.tif 000015
【００５７】
この予測ＭＢと、符号化ＭＢとの画素毎の残差は以下のようになる。
2004072732.tif 000016
【００５８】
ステップＳ４においてこの残差からＤＣＥを算出するとＤＣＥ＝４３５になり、またＡＣＥを算出すると、ＡＣＥ＝５になる。ステップＳ８において係数αを１／６４にしてｍｏｄＭＳＥを算出すると、１２になる。
ＭＳＥ＿ｎｏＭＣ　１２　（ＡＣＥ　５，　ＤＣＥ　４３５）
【００５９】
以上の過程で、以下の３つのｍｏｄＭＳＥが算出されたので、ステップＳ９においてこのｍｏｄＭＳＥが最も小さいインターモードを選択すれば、それが最善のインターモードになる。尚、今回の計算例では、前方フレームモード、前方フィールドモードの双方でｍｏｄＭＳＥが等しい。
ＭＳＥ＿ｆｒａｍｅ　９　（ＡＣＥ　５，　ＤＣＥ　２３９）
ＭＳＥ＿ｆｉｅｌｄ　９　（ＡＣＥ　５，　ＤＣＥ　２４２）
ＭＳＥ＿ｎｏＭＣ　１２　（ＡＣＥ　５，　ＤＣＥ　４３５）
【００６０】
以上のように本実施形態によれば、ＤＣＥを減衰した上で評価値を算出しているので、暗いコンサート会場でライトが激しく点滅しているような動画像においても、動き補償モードの選択が適切になり、画質を向上させることができる。
（第２実施形態）
第２実施形態は、インター／イントラ選択部１９における改良をより詳しく示す実施形態である。インター／イントラ選択部１９は、インター選択部１８により最善と判定されたインターモードを、イントラモードと比較してどちらを採用するかを決定するものである。この比較は、イントラモードについて分散値を算出して、この分散値を最善モードのＭＳＥと比較し、尚且つ最善モードのＭＳＥが所定の閾値を上回るか否かを判定することでなされる。
【００６１】
本実施形態におけるインター／イントラ選択部１９の特徴は、ＤＣＴタイプに応じて、分散値の計算手法を変えている点である。つまり、ＤＣＴタイプがフレームなら、符号化ＭＢにおける１６×１６のフレームについて分散値を算出する。ＤＣＴタイプがフィールドなら、符号化ＭＢのうち、１６×８，１６×８の２つのフィールド毎に分散値を算出し、そして２つのフィールドにおける分散値の平均を分散値に設定するのである。
【００６２】
以上のインター／イントラ選択部１９を構成するには、コンピュータ記述言語を用いて図４のフローチャートに示す処理手順を記述することでプログラムを作成し、コンピュータに実行させればよい。以降、図４のフローチャートを参照しながら、インター／イントラ選択部１９の処理手順について説明する。
ステップＳ２１は、ＤＣＴタイプ決定部により決定されたＤＣＴタイプにより、処理手順を切り換えを実現する。ＤＣＴタイプがフレームなら、符号化ＭＢにおける１６×１６のフレームについて分散値を算出する（ステップＳ２２）。ＤＣＴタイプがフィールドなら、符号化ＭＢのうち、１６×８，１６×８の２つのフィールドについて分散値を算出する（ステップＳ２３）。そして２つのフィールドにおける分散値の平均を分散値に設定する（ステップＳ２４）。
【００６３】
ステップＳ２５は、算出されたＶＡＲが最善モードのＭＳＥより小さく、且つ最善モードのＭＳＥが６４より大きいかという条件の成立を判定する判定ステップである。この判定において分散値と対比されるのは、ＭＳＥであり、ｍｏｄＭＳＥではない。つまりＤＣＥが減衰されない状態のままのＭＳＥが比較の対象となる。もしこの条件が成立すればイントラモードを選択する（ステップＳ２６）。もしこの条件が不成立であれば、モードｐのインターモードを選択する（ステップＳ２７）。
【００６４】
以降、第２実施形態に係るインター／イントラ選択部１９の動作例について説明する。この動作例は、第１実施形態に示した示した計算例において、インター／イントラ選択部１９がどのように選択を行うかを述べるものである。
第１実施形態のインターモードの選択にあたって、前方フレームモードと前方フィールドとでｍｏｄＭＳＥが同じになった。ここで判定の順序のためにフレーム予測が選択されるものとする。
【００６５】
このようにして選択された前方フレームモードと、イントラモードのどちらがよいかを上述した手順に基づき判定する。
第１実施形態において前方フレームモードのＤＣＴタイプはフィールドと決定されている。イントラのＤＣＴタイプがフィールドなので、インター／イントラ選択部１９はステップＳ１３、ステップＳ１４においてフィールド毎に分散値ＶＡＲを算出する。そうして算出された分散値ＶＡＲは、「７」になったものとする。
【００６６】
こうして算出された分散値ＶＡＲを、前方フレームモードのＭＳＥと比較する（ステップＳ１５）。前方フレームモードのＭＳＥは２４４（＝５＋２３９）であり、ＶＡＲ＜ＭＳＥの関係を満たす。またＭＳＥは２４４であり、ＭＳＥ＞６４という関係を満たすので、イントラモードが選択されることになる。
以上のように本実施形態によれば、ＤＣＴタイプに応じて、分散値の計算手法を変化させることで、輝度変化が大きな画像でマクロブロックについての分散値が小さな値に算出される。これとＭＳＥとの比較にあたっては、「分散値＜ＭＳＥ」の関係が満たされ易くなり、輝度変化が大きい画像に対してＴｅｓｔ　Ｍｏｄｅｌ５の方法よりもイントラモードが選択されることが多くなり、画質を向上させることができる。
【００６７】
尚、ＭＳＥとの比較に用いる閾値を６４としたが、これを４としてもよい。閾値を４とすると、平坦な画像において、矩形状のノイズが出現するというブロックノイズを、抑制することができる。
（第３実施形態）
第３実施形態は、動きベクトル探索部１６における改良をより詳しく説明する実施形態である。
【００６８】
動きベクトル探索部１６は、参照フレーム／フィールド内に位置するマクロブロックのそれぞれについて、評価値を算出して、この評価値が最小のマクロブロックを参照マクロブロックにする。そして、符号化ＭＢを基準とした参照マクロブロック（以降、参照ＭＢ）の相対位置を動きベクトルとして算出する。第１実施形態における評価値は、二乗誤差に基づいた交流成分、及び、直流成分から導かれたが、本実施形態における評価値は、絶対誤差に基づいた交流成分、及び、直流成分から導かれる。
【００６９】
交流成分の算出式を数８に示す。
【００７０】
【数８】
2004072732.tif 000017
直流成分の算出式を数９に示す。
【００７１】
【数９】
2004072732.tif 000018
参照ＭＢ毎の評価値は、これら誤差の直流成分、誤差の交流成分を用いた式で算出される。以下の数１０がその式である。
【００７２】
【数１０】
2004072732.tif 000019
この数１０からも分かるように、直流成分の絶対誤差は係数ｋが乗られて減衰させられていることがわかる。
直流成分、交流成分の計算は、数１１、数１２のように行っても良い。
【００７３】
【数１１】
2004072732.tif 000020
【００７４】
【数１２】
2004072732.tif 000021
ここで、符号化ＭＢ内の座標（ｉ，ｊ）に位置する画素の輝度値をＸｉｊとし、また、参照フレーム／フィールド内のマクロブロックにおいて、座標（ｉ，ｊ）に位置する画素の輝度値をＹｉｊとしている。
【００７５】
第３実施形態において直流成分が評価値に用いられているものの、係数ｋが乗じられ減衰させられている点は、第１実施形態と共通であるといえる。
このｋの値は、デフォルト値として１／１６〜１／４に設定するのが望ましい。何故なら、ｋをこの範囲に設定すれば、絵柄の変化よりも輝度変化が大きい画像（１）、絵柄の変化及び輝度変化が共に小さい画像（２）の双方において、視覚的な問題が生じず、かつ符号量が小さくなることが確認できるからである。
【００７６】
またｋの値は、ユーザインターフェイスよりユーザからの指示が通知されたとき、この指示にもとづいて変更できるように構成することが望ましい。このようにｋの値を変更すれば、ユーザはモニタで符号化後の画質を確認し、納得の行く画質が確保できるよう、ｋの値を調整できるからである。
以上の動きベクトル探索部１６を構成するには、コンピュータ記述言語を用いて図５のフローチャートに示す処理手順を記述することでプログラムを作成し、コンピュータに実行させればよい。以降、図５のフローチャートを参照しながら、動きベクトル探索部１６の処理手順について説明する。ステップＳ３１において、符号化ＭＢをＭＢｘとする。
【００７７】
ステップＳ３２〜ステップＳ３３は、各動き補償モードの参照フレーム／フィールドについて、ステップＳ３４〜ステップＳ３８の処理を繰り返すループ処理を形成している。Ｐピクチャの参照フレーム／フィールドには、前方フレーム（ｉ）、前方フィールド（ｉｉ）があるので、これらについてステップＳ３４〜ステップＳ３８の処理が行われる。またＢピクチャの参照フレーム／フィールドには、前方フレーム（ｉ）、前方フィールド（ｉｉ）、後方フレーム（ｉｉｉ）、後方フィールド（ｉｖ）があるので、これらについてステップＳ３４〜ステップＳ３８の処理が行われる。
【００７８】
ステップＳ３１〜ステップＳ３８のループ処理にあたって、処理の対象となる個々の参照フレーム／フィールドを参照フレーム／フィールド（ｒ）という。
ステップＳ３４〜ステップＳ３６は、参照フレーム／フィールド（ｒ）に属するマクロブロックであって、候補になり得る全てのものについて、ステップＳ３６の処理を繰り返すループ処理を形成している。符号化ＭＢにおいて、探索範囲内の全てのマクロブロックが、ここでの候補になりうる。これは、フルサーチと呼ばれる。
【００７９】
このループ処理において対象となるマクロブロックをマクロブロックｙとする。ステップＳ３６は、上述した数１０の式に基づきマクロブロックｙについての評価値ｆ（ｙ）を求める。
このステップＳ３６の繰り返しにより、参照フレーム／フィールド（ｒ）において候補になり得る全てのマクロブロックについて、評価値が算出されることになる。
【００８０】
ステップＳ３７は、参照フレーム／フィールド（ｒ）において候補となり得るマクロブロックのうち、ｆ（ｙ）が最小のものを、参照フレーム／フィールド（ｒ）についての参照ＭＢにする。続くステップＳ３８では、マクロブロックｘを基準とした参照ＭＢの相対位置を動きベクトル（ｒ）に設定する。動きベクトル（ｒ）とは、参照フレーム／フィールド（ｒ）についての動きベクトルである。以上のステップＳ３２〜ステップＳ３８の繰り返しにより、参照フレーム／フィールドのそれぞれについて、動きベクトルが算出される。
【００８１】
本発明と、特許文献１とで、参照ＭＢの探索が適切かどうかの比較を行う。この比較は、非可逆変換の前後で、参照ＭＢの直流成分がどれだけ変わるかを算出することでなされる。不可逆変換前の直流成分の平均値と、不可逆変換後の直流成分の平均値とが等しく、差が０ならば参照ＭＢの探索が最適であることを示す。一方、平均値の差が大きければ大きい程参照ＭＢの探索が不適であることを示す。比較の対象となる画像は、図６のような空の画像である。図６において、各画素の値は、４６，４７，４８というように微妙に変化する。この変化はランダムな変化であり、交流成分として現される。一方、大きな範囲での画素の変化を観察すれば、かかる画素の集まりでも、変化が観察される。この変化は、マクロブロックの直流成分の変化となる。図７は、図６における輝度の表記を、１０進数に置き換えて示した図である。
【００８２】
図８を参照しながら、本発明の手順で探索された参照ＭＢと、特許文献１で探索された参照ＭＢとを比較する。マクロブロック１とは本発明の手順で探索した参照ＭＢであり、マクロブロック２とは特許文献１の手順で探索した参照ＭＢである。
特許文献１においては、輝度の直流成分を無視し、交流成分のみを用いた評価値で参照ＭＢを探索している。数１３の式は、特許文献１におけるマクロブロックの評価値の算出式である。
【００８３】
【数１３】
2004072732.tif 000022
特許文献１では、空のような平坦な画像であっても、直流成分が大きくなるような参照ＭＢを選んでしまう可能性がある。図８のｍｘ１，ｍｘ２は、マクロブロック１とマクロブロック２に対する残差を、マトリックス状に示している。平坦な画像から選んだ参照ＭＢなのに、特許文献１では直流成分が無視されたため、ｍｘ２に示すように画素毎の残差が３，４，５になるような参照ＭＢが選ばれている。画素毎の残差が３，４，５であるため、残差の平均値が３．８と大きく算出されている。
【００８４】
本発明に係る符号化装置においては、直流成分を減衰した上で、評価値を算出し参照ＭＢを選んでいるため、空のような平坦な画像においては矢印ｍｘ１に示すように画素毎の残差が−１，０，１になるような参照ＭＢが選ばれている。画素毎の残差が−１，０，１なので、残差の平均値は−０．２５と小さな値になっている。
図中の＜ＤＣＴ＞、＜量子化＞、＜逆量子化＞、＜逆ＤＣＴ＞は、非可逆変換の過程である。
【００８５】
先ず始めに参照ＭＢ１における非可逆変換前後の残差の平均値の差を説明する。
ＤＣＴ化において参照ＭＢ１の平均値「−０．２５」は矢印ｍｙ１に示すように８倍されて「−２．０」になる。続く量子化にて、ＤＣ係数「−２．０」は１６倍され、（量子化係数×２×量子化スケール）の値で割られ、小数点以下四捨五入されることで矢印ｍｙ２に示すように「０．００」になる。
【００８６】
逆量子化部１２にて、ＤＣ係数「０．００」は、（量子化係数×２×量子化スケール）の値が乗じられ、更に１６で割られることにより矢印ｍｙ３に示すように「０．００」になる。
逆ＤＣＴにてＤＣ係数は８で割られて矢印ｍｙ８に示すように平均が「０．００」になる。この「０．００」が非可逆変換後の残差の平均値である。非可逆変換前と非可逆変換後とでは、残差の平均値に「０．２５」の差がある。
【００８７】
続いて、参照ＭＢ２における非可逆変換前後の平均値の差を説明する。
ＤＣＴ化において参照ＭＢ２の平均値「３．８０」は８倍されて矢印ｍｙ４に示すように「３０．３８」になる。続く量子化にて、ＤＣ係数「３０．２８」は１６倍され、（量子化係数×２×量子化スケール）の値で割られ、小数点以下四捨五入されることで矢印ｍｙ５に示すように「２」になる。
【００８８】
逆量子化部１２にて、ＤＣ係数「２」は、（量子化係数×２×量子化スケール）の値が乗じられ、更に１６で割られることにより矢印ｍｙ６に示すように「４０．００」になる。
逆ＤＣＴにてＤＣ係数は８で割られて矢印ｍｙ７に示すように平均が「５．００」になる。この「５．００」が非可逆変換後の残差の平均値である。非可逆変換前と非可逆変換後とでは、平均値に「１．２０」の差がある。
【００８９】
参照ＭＢ１と、参照ＭＢ２とで非可逆変換前後の平均値の差を比較すると、参照ＭＢ１の方が、よい結果になっていることがわかる。
＜画質の比較＞
Ｔｅｓｔ　Ｍｏｄｅｌ５を用いる符号化装置、特許文献１に記載の符号化装置、ｋの値を１／１６〜１／４とした本発明の符号化装置の３つを用いて求めた動きベクトルを用いて符号化するシミュレーションを行った結果、以下のことが明らかとなった。
【００９０】
時間的に輝度変化が小さい比較的複雑な画像（以下、「第１の画像」という。）では、上述の３つの符号化装置全において良い画質となった。
時間的に輝度変化が大きい画像（以下、「第２の画像」という。）では、ＴｅｓｔＭｏｄｅｌ５を用いる符号化装置は画質が劣り、特許文献１に記載の符号化装置と本発明の符号化装置とでは良い画質となった。
【００９１】
時間的な輝度変化が非常に小さく位置による輝度変化が多少ある画像（以下、「第３の画像」という。）では、Ｔｅｓｔ　Ｍｏｄｅｌ５を用いる符号化装置と本発明の符号化装置では良い画質となり、特許文献１に記載の符号化装置では画質が劣る。
より具体的には第３の画像（例えば空の画像）では、前記特許文献１の方法で求めた動きベクトルを用いて符号化すると本来は静止の領域でブロックが動いて見えて画質が低下する。
【００９２】
以下、第１、第２、第３それぞれの画像に対し、本発明の符号化装置を用いて動きベクトルを検出する場合について詳細に説明する。
第１の画像、即ち、時間的な輝度変化が小さく比較的複雑な画像に対しては、各参照ＭＢ群の各マクロブロックの交流成分は本来の動きを表わすマクロブロックに近い値となり、それ以外のマクロブロックで差が大きい値となる。
【００９３】
従って、各マクロブロック間の輝度値における誤差の評価値の差は主として交流成分の差によって決まり、誤差の交流成分が最も小さい動きベクトルが選択されることになり、本発明の符号化装置において、本来の動きを示す動きベクトルが選択される。
第２の画像、即ち、時間的な輝度変化が大きい画像に対しては、時間的な輝度の変化により直流成分が大きくなるが、直流成分は１／１６〜１／４に減衰されるので、誤差の交流成分の影響が相対的に大きくなる。
【００９４】
その結果、絵柄の影響が強くなるため、輝度変化の影響が小さくなり、適切な動きベクトルが求められる。
第３の画像（時間的な輝度変化が小さい平坦な画像）に対しては、平坦な画像なのでどの参照ＭＢであっても交流成分はごく小さい。
例えば、図６、図７に示すように、狭い範囲では変化はランダム状であるが、広い範囲ではランダムでない意味のある変化があり、直流成分が動きを反映している。
【００９５】
本発明の符号化装置によれば、直流成分の１／１６〜１／４が誤差の評価値に反映され、直流成分と交流成分とが適度な割合で評価されるため、符号化ＭＢの直流成分及び交流成分が共に近い値となっている参照ＭＢを検出することができる。
一方、特許文献１に記載の符号化装置は、交流成分のみによって誤差を評価して動きベクトルを求めるため、交流成分は動きを反映しないので不適切な動きベクトルを求めてしまう。
【００９６】
特許文献１に記載の符号化装置において、不適切な動きベクトルを求めてしまうケースは、第３の画像以外にも存在する。それは画像の左端で輝度が高く、画像の右端で輝度が低く、輝度の変化が一様な画像などである。このような輝度の変化率が一定の画像では、交流成分は画像中のどこでも同じになる。そのため、交流成分は意味のある動きを反映せず、交流成分のみによって誤差を評価すると誤差の直流成分が大きい動きベクトルを求めてしまうことがあり得る。
【００９７】
本発明の符号化装置によれば、先に述べたように、直流成分の絶対誤差の一部（１／１６〜１／４）が評価値に反映され、直流成分と交流成分とが適度な割合で評価されるため、符号化ＭＢの直流成分及び交流成分が共に近い値となっている参照ＭＢを検出することができる。
以上のように本実施形態によれば、特許文献１に示されるように、直流成分の絶対誤差を”０”にするのではなく、減衰した上で参照ＭＢについての評価値を算出しているので、輝度変化が小さい平坦な画像であっても、ライトが激しく点滅しているような画像が符号化対象であっても、動きベクトルを適切に探索することができる。
【００９８】
（備考）
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明はその要旨を逸脱しない範囲で変更実施することができる。代表的な変更実施の形態として、以下（Ａ）（Ｂ）（Ｃ）・・・・のものがある。
【００９９】
（Ａ）第３実施形態では、減衰のための係数ｆのデフォルト値を１／１６〜１／４としたが、この値に限定されるものではなく、０よりも大きく、１よりも小さい値で画質に問題が生じない範囲であればよい。
（Ｂ）第３実施形態では、参照ＭＢの評価値として、絶対誤差を用いたが、これに限らず２乗誤差を用いてもよい。
【０１００】
その場合、２乗誤差を求める式は、
【０１０１】
【数１４】
2004072732.tif 000023
となる。
また、２乗誤差の求め方として、上述の式の各項をｎの２乗で除した平均二乗誤差を用いてもよい。
【０１０２】
（Ｃ）第３実施形態に係る符号化装置に、画像の特性を検出する機能部を追加し、画像の特性によって係数ｋの値を自動的に変更してもよい。また、第３実施形態における動き補償予測部６は、輝度値にもとづいて誤差の直流成分、誤差の交流成分を算出したが、色差の値にもとづいて算出してもよく、又は、画素を示すＲＧＢ成分の任意の成分の値にもとづいて算出してもよい。
【０１０３】
（Ｄ）第３実施形態に係る動き補償予測部６は、符号化ＭＢと探索範囲内の全てのマクロブロックを比較する、いわゆるフルサーチを実施するとしたが、他のサーチ方法を用いてもよい。このようなサーチ方法の一例として、縮小した画像を用いてサーチする方法が挙げられる。
（Ｅ）図３〜図５に示したプログラムによる情報処理は、ＣＰＵ、フレームメモリといったハードウェア資源を具体的に利用していることから、このプログラムは、単体で発明として成立する。第１実施形態〜第３実施形態は、符号化装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、符号化装置から分離して、第１実施形態〜第３実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為（１）や、有償・無償によりプログラムを譲渡する行為（２）、貸与する行為（３）、輸入する行為（４）、双方向の電子通信回線を介して公衆に提供する行為（５）、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為（６）がある。
【０１０４】
双方向の電子通信回線を介した提供行為（５）の類型には、提供者が、プログラムをユーザに送り、ユーザに使用させる行為や（プログラムダウンロードサービス）、プログラムを提供者の手元に残したまま、そのプログラムの機能のみを電子通信回線を通じて、ユーザに提供する行為（機能提供型ＡＳＰサービス）がある。
（Ｆ）図３〜図５のフロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、符号化方法の使用形態を開示していることがわかる。これらのフロ−チャ−トこそ、本発明に係る符号化方法の使用行為についての実施形態である。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る符号化方法の実施行為に該当することはいうまでもない。
【０１０５】
【発明の効果】
以上説明したように、本発明に係る符号化装置は「クレーム１」であるので、暗いコンサート会場でライトが激しく点滅しているような動画像においては、評価値（ＭＳＥ）の大部分を占める誤差の直流成分が係数にて減衰させられることになる。誤差の直流成分を減衰した上で評価値を算出しているので、動き補償モードの選択が適切になり、符号化効率を高めることができる。
【０１０６】
誤差の直流成分を減衰させて動き補償モード選択を行うことで他の効果が奏される。それは以下の通りである。ＤＣＴを行った後、可変長符号化を行うときに、各ブロック（８×８）に対して直流係数は１個であるが、交流係数は複数個になる可能性がある。仮に、マクロブロックにおけるＤＣＥとＡＣＥの値が等しいとしても、直流係数の符号量より交流係数の符号量の方が大きくなる可能性が高い。これは、符号量に与える影響はＤＣＥよりＡＣＥの方が大きいことを意味する。ＴＭ５のＭＳＥに対してはＤＣＥとＡＣＥとが同じ重みで反映されるので、ＭＳＥで比較するとＤＣＥとＡＣＥの符号量に対する影響が適切に反映されない。本発明では、ＤＣＥを減衰させることで、ＡＣＥを重視することができ、輝度より絵柄を重視した動き補償モードの選択を行うことができる。これにより輝度が変化する画像では、本来の動きを反映したモード選択を行う可能性が高くなる。
【０１０７】
ここで前記符号化装置は、マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段と、決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出手段と、選択手段により選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出手段により算出された分散値と比較する比較手段とを備え、
選択手段により選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合としてもよい。
【０１０８】
離散コサイン変換のタイプに応じて、分散値の計算方法を変えているので輝度変化が激しいインターレス画像においては、マクロブロックについての分散値がＴｅｓｔ　Ｍｏｄｅｌ５の方法により小さな値に算出される。これとＭＳＥとの比較にあたっては、「分散値＜ＭＳＥ」の関係が満たされ易くなり、イントラモードが選択されることが多くなる。これにより、符号化効率を高めることができる。
【０１０９】
ここで前記所定の閾値は、４としてもよい。閾値を４とすると、平坦な画像において、矩形状のノイズが出現するというブロックノイズを、抑制することができる。
ここでマクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出手段と、算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択手段とを備え、
前記第２算出手段は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値を算出してもよい。特許文献１に示されるように、直流成分を”０”にするのではなく、減衰した上で参照ＭＢについての評価値を算出しているので、輝度変化が小さい平坦な画像であっても、ライトが激しく点滅しているような画像が符号化対象であっても、動きベクトルを適切に探索することができ、符号化効率を高めることができる。
【図面の簡単な説明】
【図１】符号化装置のハードウェア構成を示す図である。
【図２】動き補償予測部６全体における大きな処理の流れを示すフローチャートである。
【図３】インター選択部１８の処理手順を示すフローチャートである。
【図４】インター／イントラ選択部１９の処理手順を示すフローチャートである。
【図５】動きベクトル探索部１６の処理手順を示すフローチャートである。
【図６】空の風景のような絵柄の変化及び輝度変化が共に小さい画像において、符号化ＭＢ及び参照ＭＢ内の輝度値を示す図である。
【図７】空の画像の輝度値（１０進数表示）を示す図である。
【図８】残差の直流成分の値と、この残差の直流成分の値に対し、ＤＣＴ、量子化、逆量子化及び逆ＤＣＴを順に実施して得られる残差の直流成分の値との差における、各動きベクトル探索の違いについて説明する図である。
【符号の説明】
１　　Ｄ／Ａコンバータ
２　　フォーマット変換部
３　　画面並替部
４　　フレームメモリ
５　　減算器
６　　動き補償予測部
７　　ＤＣＴ部
８　　量子化部
９　　可変長符号化部
１０　　バッファ
１１　　レート制御部
１２　　逆量子化部
１３　　逆ＤＣＴ部
１４　　加算器
１６　　動きベクトル探索部
１７　　ＤＣＴタイプ決定部
１８　　インター選択部
１９　　インター／イントラ選択部
【図１】
2004072732.tif 000024
【図２】
2004072732.tif 000025
【図３】
2004072732.tif 000026
【図４】
2004072732.tif 000027
【図５】
2004072732.tif 000028
【図６】
2004072732.tif 000029
【図７】
2004072732.tif 000030
【図８】
2004072732.tif 000031