(57)【特許請求の範囲】
【請求項１】
動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する符号化装置であって、
各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、
各マクロブロックについての誤差の直流成分に、係数α（０＜α＜１）を乗ずることにより、当該誤差の直流成分を減衰させた上で、当該マクロブロックについての誤差の交流成分を加算することにより、各補償方式についての評価値を算出する第２算出手段と、
算出された評価値に基づき補償方式を選択する選択手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記係数αは、１／６４である
ことを特徴とする請求項１記載の符号化装置。
【請求項３】
前記第１算出手段は、前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、当該残差の平均を、２乗することで算出され、
前記誤差の交流成分は、当該平均二乗誤差から、誤差の直流成分を引くことで算出される
ことを特徴とする請求項１記載の符号化装置。
【請求項４】
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段を備え、
決定手段による変換方式の決定は、選択手段による補償方式の選択に先立ち行われ、
前記第１算出手段は、決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての誤差の交流成分、及び、誤差の直流成分を算出する
ことを特徴とする請求項１又は３記載の符号化装置。
【請求項５】
決定手段により決定される変換方式には、フレーム方式と、フィールド方式とがあり、
決定手段により決定された変換方式がフレーム方式なら、マクロブロックを構成するフレームに対し、誤差の交流成分、誤差の直流成分を算出し、
決定手段により決定された変換方式がフィールド方式なら、マクロブロックを構成する各フィールド毎に誤差の交流成分、及び、誤差の直流成分を算出し、算出された誤差の交流成分、及び、誤差の直流成分の平均値を、誤差の交流成分、及び、誤差の直流成分とする
ことを特徴とする請求項４記載の符号化装置。
【請求項６】
前記符号化装置は、
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段と、
決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出手段と、
選択手段により選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出手段により算出された分散値と比較する比較手段とを備え、
選択手段により選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合である
ことを特徴とする請求項１記載の符号化装置。
【請求項７】
前記所定の閾値は、４である
ことを特徴とする請求項６記載の符号化装置。
【請求項８】
決定手段により決定される変換方式には、フレーム方式と、フィールド方式とがあり、
前記第３算出手段は、
決定手段により決定された変換方式がフレーム方式なら、符号化対象たるマクロブロックを構成するフレームについての分散値を算出し、
決定手段により決定された変換方式がフィールド方式なら、マクロブロックを構成する各フィールド毎に分散値を算出し、算出された分散値の平均値を算出する
ことを特徴とする請求項６記載の符号化装置。
【請求項９】
前記第１算出手段は、前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、当該残差の平均を、２乗することで算出され、
前記分散値は、符号化マクロブロックの平均と、符号化マクロブロックの画素値の差の２乗の平均として算出される
ことを特徴とする請求項６記載の符号化装置。
【請求項１０】
マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、
参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、
各マクロブロックについての誤差の直流成分に、係数α（０＜α＜１）を乗ずることにより、当該誤差の直流成分を減衰させた上で、当該マクロブロックについての誤差の交流成分を加算することにより、前記参照マクロブロックの候補となる個々のマクロブロックについての評価値を算出する第２算出手段と、
算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択手段と
を備えることを特徴とする符号化装置。
【請求項１１】
前記誤差の直流成分は、前記符号化対象たるマクロブロックに属する画素の値の合計から、候補マクロブロックに属する画素の値の合計を差し引いて、絶対値をとることにより得られる値であり、
前記誤差の交流成分は、前記符号化対象たるマクロブロックに属する個々の画素の値から、その符号化対象たるマクロブロックにおける画素の値の平均値を差し引いた値と、前記参照マクロブロックに属する個々の画素の値から、その参照マクロブロックにおける画素の値の平均値を差し引いた値とに基づき、算出される値である
ことを特徴とする請求項１０記載の符号化装置。
【請求項１２】
動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する処理を、コンピュータに実行させるコンピュータ読取可能なプログラムであって、
各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップと、
各マクロブロックについての誤差の直流成分に、係数α（０＜α＜１）を乗ずることにより、当該誤差の直流成分を減衰させた上で、当該マクロブロックについての誤差の交流成分を加算することにより、各補償方式についての評価値を算出する第２算出ステップと、
算出された評価値に基づき補償方式を選択する選択ステップと
をコンピュータに実行させることを特徴とするコンピュータ読取可能なプログラム。
【請求項１３】
前記係数αは、１／６４である
ことを特徴とする請求項１２記載のコンピュータ読取可能なプログラム。
【請求項１４】
前記第１算出ステップは、前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、残差の平均を、２乗することで算出され、
前記誤差の交流成分は、当該平均二乗誤差から、誤差の直流成分を引くことで算出される
ことを特徴とする請求項１２記載のコンピュータ読取可能なプログラム。
【請求項１５】
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定ステップを備え、
決定ステップによる変換方式の決定は、選択ステップによる補償方式の選択に先立ち行われ、
前記第１算出ステップは、決定ステップにより決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての誤差の交流成分、及び、誤差の直流成分を算出する
ことを特徴とする請求項１２又は１４記載のコンピュータ読取可能なプログラム。
【請求項１６】
決定ステップにより決定される変換方式には、フレーム方式と、フィールド方式とがあり、
決定ステップにより決定された変換方式がフレーム方式なら、マクロブロックを構成するフレームに対し、誤差の交流成分、誤差の直流成分を算出し、
決定ステップにより決定された変換方式がフィールド方式なら、マクロブロックを構成する各フィールド毎に誤差の交流成分、及び、誤差の直流成分を算出し、算出された誤差の交流成分、及び、誤差の直流成分の平均値を、誤差の交流成分、及び、誤差の直流成分とする
ことを特徴とする請求項１５記載のコンピュータ読取可能なプログラム。
【請求項１７】
前記コンピュータ読取可能なプログラムは、
マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定ステップと、
決定ステップにより決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出ステップと、
選択ステップにより選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出ステップにより算出された分散値と比較する比較ステップとを備え、
選択ステップにより選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、
符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合である
ことを特徴とする請求項１２記載のコンピュータ読取可能なプログラム。
【請求項１８】
前記所定の閾値は、４である
ことを特徴とする請求項１７記載のコンピュータ読取可能なプログラム。
【請求項１９】
決定ステップにより決定される変換方式には、フレーム方式と、フィールド方式とがあり、
前記第３算出ステップは、決定ステップにより決定された変換方式がフレーム方式なら、
符号化対象たるマクロブロックを構成するフレームについての分散値を算出し、
決定ステップにより決定された変換方式がフィールド方式なら、マクロブロックを構成する各フィールド毎に分散値を算出し、算出された分散値の平均値を算出する
ことを特徴とする請求項１７記載のコンピュータ読取可能なプログラム。
【請求項２０】
前記第１算出ステップは、前記符号化対象たるマクロブロックに属する画素の値と、予測マクロブロックに属する画素の値との画素毎の残差を算出し、その２乗値を合計して、マクロブロックにおける総画素数で割ることによりマクロブロック間の平均二乗誤差を算出し、
前記誤差の直流成分は、当該残差の平均を、２乗することで算出され、
前記分散値は、符号化マクロブロックの平均と、符号化マクロブロックの画素値の差の２乗の平均として算出される
ことを特徴とする請求項１７記載のコンピュータ読取可能なプログラム。
【請求項２１】
マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する処理を、コンピュータに実行させるコンピュータ読取可能なプログラムであって、
参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップと、
各マクロブロックについての誤差の直流成分に、係数α（０＜α＜１）を乗ずることにより、当該誤差の直流成分を減衰させた上で、当該マクロブロックについての誤差の交流成分を加算することにより、前記参照マクロブロックの候補となる個々のマクロブロックについての評価値を算出する第２算出ステップと、
算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択ステップと
をコンピュータに実行させることを特徴とするコンピュータ読取可能なプログラム。
【請求項２２】
前記誤差の直流成分は、前記符号化対象たるマクロブロックに属する画素の値の合計から、候補マクロブロックに属する画素の値の合計を差し引いて、絶対値をとることにより得られる値であり、
前記誤差の交流成分は、前記符号化対象たるマクロブロックに属する個々の画素の値から、その符号化対象たるマクロブロックにおける画素の値の平均値を差し引いた値と、前記参照マクロブロックに属する個々の画素の値から、その参照マクロブロックにおける画素の値の平均値を差し引いた値とに基づき、算出される値である
ことを特徴とする請求項２１記載のコンピュータ読取可能なプログラム。
【請求項２３】
動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する符号化方法であって、
各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップと、
各マクロブロックについての誤差の直流成分に、係数α（０＜α＜１）を乗ずることにより、当該誤差の直流成分を減衰させた上で、当該マクロブロックについての誤差の交流成分を加算することにより、各補償方式についての評価値を算出する第２算出ステップと、
算出された評価値に基づき補償方式を選択する選択ステップと
を有することを特徴とする符号化方法。
【請求項２４】
前記符号化方法は、マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定ステップと、
決定ステップにより決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出ステップと、
選択ステップにより選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出ステップにより算出された分散値と比較する比較ステップとを備え、
選択ステップにより選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合である
ことを特徴とする請求項２３記載の符号化方法。
【請求項２５】
マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化方法であって、
参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出ステップと、
各マクロブロックについての誤差の直流成分に、係数α（０＜α＜１）を乗ずることにより、当該誤差の直流成分を減衰させた上で、当該マクロブロックについての誤差の交流成分を加算することにより、前記参照マクロブロックの候補となる個々のマクロブロックについての評価値を算出する第２算出ステップと、
算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択ステップと
を有することを特徴とする符号化方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、動画像の符号化対象を行う符号化装置に関し、特に動きベクトルの検出や、動き補償方式の選択を行うにあたっての改良に関する。
【０００２】
【従来の技術】
MPEG2ビデオの規格（ISO/IEC 13818-2, "Information technology - Generic coding of moving pictures and associated audio information: Video"）を応用した応用製品が、近年の民生機器市場を席巻している。MPEG2ビデオ規格は復号方法を規定したにすぎず、符号化方法は規定されていないので、かかる応用製品の開発では、実装にあたって適当な符号化方法を選択せねばならない。MPEG2ビデオの符号化方法として広く知られているのは、"Test Model 5"(ISO/IEC JTC/SC29/WG11/N0400, Apr 1993, TM5と略す)である。
【０００３】
Test Model5による符号化処理は、動きベクトル探索(1)  動き補償モードの選択(2)、DCTタイプ選択(3)、DCT、量子化、可変長符号化(4)という工程からなる。これらの工程のうち、動きベクトルをどのように探索するか、動き補償モードをどのように選択するかは、画質を大きく左右する。
ここでPピクチャに対する動き補償モードの選択について説明する。Pピクチャにおける動き補償モードには、前方フレーム予測、前方フィールド予測、NoMC（動きベクトルを0とした動き補償）、イントラ（動き補償を行わない）という4つのものがある。これらの動き補償モードで予測されるマクロブロックは、動き補償モード毎に異なる。
【０００４】
最も良い動き補償モードを選択するため、Test Model5では各モードで予測されるマクロブロック(予測MB)について平均二乗誤差(Mean Square Error(MSE))を算出し、予測MBのMSEを評価値として、動き補償モードを選択するという考えをとっている。Test Model5による符号化技術は、以下の非特許文献1に記載されている。
【０００５】
また、動きベクトル探索については、以下の特許文献1に記載された技術が知られている。動きベクトルとは、符号化対象たるマクロブロックを基準とした参照マクロブロックの相対位置を示す情報である。動きベクトル探索は、候補になり得る複数マクロブロックのそれぞれについて、評価値を算出し、この評価値が最小のマクロブロックを参照マクロブロックに選ぶという手順でなされる。
【０００６】
特許文献1に記載の符号化装置は、この評価値の算出に特徴がある。つまりマクロブロックが有する誤差の直流成分、誤差の交流成分のうち、誤差の直流成分を完全に除去して誤差の交流成分のみを用いて評価値を算出する。
また、符号化技術に関しては、以下の特許文献2に記載された技術も知られている。
【０００７】
【特許文献１】
特許第2625424号公報
【０００８】
【特許文献２】
特開昭63-193784号公報
【０００９】
【非特許文献１】
Test Model5,ISO/IEC JTC/SC29/WG11/NO400,1993
【００１０】
【発明が解決しようとする課題】
しかしながら従来の動き補償モード選択、及び動きベクトル探索は、以下のような3つの問題点を有する。
第１に、Test Model5による動き補償モードの選択は、時間的に輝度変化が大きい動画像では適切な動き補償モードを選択することができない場合がある。そのような動画像には、暗いコンサート会場で、ライトが激しく明滅しているような動画像がある。かかる動画像は、輝度変化が大きく、MSEにおいて誤差の直流成分が大きな割合を占める。各動き補償モードについての予測MBのMSEを算出しようとすると、どの動き補償モードについてのMSEも誤差の直流成分が大きな割合を占めることになる。かかるMSEを評価値としてインター型の動き補償モード(インターモード)を選べば、絵柄が全く異なるけれど、輝度はたまたま同じになっているようなマクロブロックを予測MBに選んでしまう。そのような予測MBの誤選択にて、画質低下が生じる場合がある。
【００１１】
第２に、Test Model5による動き補償モード選択は、輝度変化が大きいインターレス画像では適切な動き補償モードを選択することができない場合がある。インターレス画像は、絵柄そのものは平坦であっても、フィールド間の時間的変化が大きいことがある。フィールド間の時間的変化が大きいと、マクロブロックの分散値は大きな値に算出される。マクロブロックの分散値とは、符号化をイントラモードで行うか、インターモードで行うかの決定時に参照されるパラメータである。この分散値が大きな値になれば、イントラモード／インターモードの選択にあたってインターモードが選択される。しかしインターレス動画像とはいえ、絵柄そのものの変化は平坦なので、イントラモードでフィールドDCTによる符号化を行えば符号量が小さくなることは客観的に明らかであり、それにも拘らずインターモードを選択すると、最適な符号量が得られない可能性が生ずる。輝度変化が大きいインターレス画像を例にとって説明したが、水平方向に物体が動くようなインターレス画像でも同様の問題が生じ得る。
【００１２】
第３に、特許文献1に記載の技術は、誤差の直流成分を除外し、誤差の交流成分のみで評価している。そのため、時間的に輝度変化が激しい動画像においても適切に動きベクトルを探索することができる。しかし、輝度変化が小さく、絵柄の変化にも乏しい動画像については、動きベクトルの探索を誤ることがある。つまり、符号化対象たるマクロブロックの周辺に、空の絵等、平坦な絵柄のマクロブロックが位置している場合、周辺のどのマクロブロックについても誤差の交流成分は小さくなる。しかし空の画像は、一見は平坦であっても、広い範囲では、微妙な変化が存在していることが多い。このような大きな範囲での微妙な変化は誤差の直流成分に現れる。特許文献1による動きベクトル探索は、この変化を無視して参照マクロブロックを選んでいるので、誤差の直流成分が大きなマクロブロックを選択し、画質劣化を招来することがある。
【００１３】
本発明の第１の目的は、時間的に輝度変化が大きい動画像を符号化するにあたって、動き補償モードを適切に選択することができる符号化装置を提供することである。
本発明の第２の目的は、時間的に輝度変化が大きい動画像を符号化するにあたって、動き補償モードを行うか、イントラモードで符号化するかの選択を適切に行うことができる符号化装置を提供することである。
【００１４】
本発明の第３の目的は、時間的な輝度変化が大きくても小さくても、かつ、絵柄が平坦であっても複雑であっても、動きベクトルを適切に探索することができる符号化装置を提供することである。
【００１５】
【課題を解決するための手段】
上記第１の目的を達成するため、本発明に係る符号化装置は、動き補償を施すにあたっての補償方式を、複数方式の中から選択し、選択された補償方式にてマクロブロックを符号化する符号化装置であって、各動き補償方式にて予測されるマクロブロックについて、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、算出された誤差の直流成分、及び、誤差の交流成分を用いて各補償方式についての評価値を算出する第２算出手段と、算出された評価値に基づき補償方式を選択する選択手段とを備え、前記第２算出手段は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値の算出を行うことを特徴としている。
【００１６】
上記第２の目的を達成するため、本発明に係る符号化装置は、マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段と、決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出手段と、選択手段により選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出手段により算出された分散値と比較する比較手段とを備え、
選択手段により選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合であることを特徴としている。
【００１７】
上記第３の目的を達成するため、本発明に係る符号化装置は、マクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出手段と、算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択手段とを備え、前記第２算出手段は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値を算出することを特徴としている。
【００１８】
【発明の実施の形態】
本発明に係る符号化装置の実施形態について説明する。本発明に係る符号化装置は、図１に示すハードウェア構成に基づき工業的に生産される。図１に示すように符号化装置は、A/Dコンバータ１、フォーマット変換部２、画面並替部３、フレームメモリ４、減算器５、動き補償予測部６、DCT部７、量子化部８、可変長符号化部９、バッファ１０、レート制御部１１、逆量子化部１２、逆DCT部１３、加算器１４、D/Aコンバータ１５を備える。
【００１９】
A／Dコンバータ１は、A／D変換を実施する回路からなり、アナログ信号形式のビデオフレームを輝度信号（Y）と色差信号（Cb、Cr）とに分離して、それぞれの信号をデジタル形式に変換する。この変換によりデジタルデータ形式のビデオフレームが得られることになる。こうして得られたビデオフレームは、順次フォーマット変換部２に出力される。
【００２０】
フォーマット変換部２は、A/Dコンバータ１により得られたビデオフレームを、空間解像度形式に変換し、変換後のビデオフレームを画面並替部３に出力する。
画面並替部３は、フォーマット変換部２から出力されたビデオフレームを並べ替える。つまりアナログ信号形式においてビデオフレームは、表示順序と呼ばれる順序になっており、これを並べ替えることにより、符号化順序に配されたビデオフレーム列を得る。符号化順序に並べ替えられたビデオフレーム列のうち個々のビデオフレームを、画面並替部３は、符号化対象たるフレームとして、減算器５及び動き補償予測部６に出力する。
【００２１】
フレームメモリ４は、動き補償を行うにあたって、符号化対象たるフレームの参照フレームになりうるフレームが格納される。具体的にいうと、符号化対象たるフレームの前方に位置するビデオフレーム、後方に位置するビデオフレームがこのフレームメモリ４に格納されることになる。
減算器５は、符号化対象たるビデオフレームと、フレームメモリ４に格納された参照フレームとの残差を算出して動き補償予測部６及びDCT部７に出力する。
【００２２】
動き補償予測部６は、減算器５から出力された残差と、符号化対象たるマクロブロック(以降、符号化MBという)とに基づき、動き補償モードの選択を行い、動き補償を行って動きベクトルと、予測モードとを可変長符号化部９に出力する。予測モードとは、イントラモードで符号化を行うか、複数のインターモードのうち何れのインターモードで符号化を行うかを可変長符号化部９に指示する情報である。
【００２３】
DCT部７は、減算器５から出力された残差や符号化MBに対してDCTを実施し、その結果得られるDCT係数を量子化部８に出力する。これにより、複数のDCT係数が格納されたマトリクスが生成されることとなる。
量子化部８は、DCT係数を16倍して、(量子化係数×２×量子化スケール)の値で割り、さらに、小数点以下四捨五入することで量子化を行う。
【００２４】
可変長符号化部９は、DCT係数、動きベクトル及び予測モードそれぞれについて、出現頻度がより高いデータにより短いコードを割り当てるように符号化を行う。
バッファ１０は、FIFOメモリであり、可変長符号化部９から入力されたデータを、入力順に逐次格納する。
【００２５】
レート制御部１１は、バッファ１０がアンダーフロー及びオーバーフローを起こさないように、バッファ１０内のデータ量を監視する機能を有する。この監視は、バッファ１０のデータ量を参照し、量子化部８にそのデータ量を示す情報をフィードバックすることでなされる。この情報にもとづいて、量子化部８が可変長符号化部９への出力速度を調整すれば、バッファ１０からの出力を一定のレートに保つことができる。
【００２６】
逆量子化部１２は、量子化部８により量子化されたDCT係数に、(量子化係数×２×量子化スケール)の値を乗じ、更に16で割ることにより、逆量子化を実施して逆DCT部１３に出力する。
逆DCT部１３は、逆量子化部１２からDCT係数の値を受信し、この値に逆DCTを実行することで符号化前の残差を得て加算器１４に出力する。
【００２７】
加算器１４は、加算回路であって、逆DCT部１３から出力された残差を、フレームメモリ４に格納されている参照フレームに足し合わせ、その加算した結果をフレームメモリ４に出力する。
以上が符号化装置の全体構成である。
続いて、符号化装置の中核となる動き補償予測部６について説明する。動き補償予測部６は、CPU、プログラムを格納したROM、RAMからなる典型的なコンピュータシステムとして符号化装置に実装される。ROMに格納されたプログラムがCPUに読み込まれ、プログラムと、ハードウェア資源とが協動することにより、動き補償予測部６はその機能を果たす。動き補償予測部６を示す枠内は、ROMに格納されたプログラムと、ハードウェア資源とが協動した具体的手段を示す。
【００２８】
この枠内に示すように動き補償予測部６は、動きベクトルの探索を行う動きベクトル探索部１６、DCTタイプを決定するDCTタイプ決定部１７、複数のインター型の動き補償モード(インターモード)のうち、最善のものを選択するインター選択部１８、最善のインターモードと、イントラモードとを比較し、何れか一方を選択するインター／イントラ選択部１９を備える。
【００２９】
本実施形態ではこのうちDCTタイプ決定部１７、インター選択部１８について詳しく説明し、動きベクトル探索部１６、インター／イントラ選択部１９については第２実施形態、第３実施形態に説明を譲る。
DCTタイプ決定部１７は、動きベクトルと、フレームメモリ４中にあるマクロブロックとに基づき、DCTタイプを決定する。残差のマクロブロックにおいて、隣接するライン間の輝度差の2乗和と1ライン置きのライン間の輝度差の2乗和を比較し、前者の方が小さければフレームDCTとし、後者の方が小さければフィールドDCTとする。
【００３０】
インター選択部１８は、各モードで予測されるマクロブロック(予測MB)についてMSEを算出し、予測MBのMSEを評価値として、動き補償モードを選択する。インター選択部１８によるモード選択がTest Model5のそれと異なるのは、誤差の直流成分、誤差の交流成分の算出手順をDCTタイプに応じて変化させていること(1)、MSEに修正を施した値を評価値に用いていること(2)である。
【００３１】
誤差の直流成分、誤差の交流成分の算出手法をどのように変化させているかを、フレーム、フィールドのそれぞれについて説明する。先ず始めに、直流成分の平均二乗誤差、交流成分の平均二乗誤差がどのように算出されるかについて説明する。符号化MBにおいて座標(i,j)に位置する輝度をＸijとし、参照マクロブロックにおいて座標(i,j)に位置する輝度をＹijとする。この2つのマクロブロックにおけるMSEは、以下の数１の式で算出される。
【００３２】
【数１】
0004088205.tif 000002
誤差の直流成分(DCE)は、誤差の平均値mの2乗として以下の数２に示すように算出される。
【００３３】
【数２】
0004088205.tif 000003
一方、誤差の交流成分(ACE)は、上述した平均値mを基準とした分散値として算出される。以下の数３は、分散値の算出式を示す。
【００３４】
【数３】
0004088205.tif 000004
ここで分散値の算出式は、
分散値＝(２乗の平均)−(平均の２乗)
という形式に展開できる。展開後の式において、(２乗の平均)の項、(平均の２乗)の項をそれぞれMSE,DCEに置き換えれば、ACE＝MSE−DCEという関係が成立する。
【００３５】
MSEと、DCE、ACEとの関係は、以下のようになる。
MSE＝DCE＋ACE
数３の展開については、以下の説明を参照されたい。
【００３６】
n個の数値x1,x2,x3・・・・・xnにおける平均値mを用いて数３における分散値の計算式を表現する。ここで、n個の数値x1,x2,x3・・・・・xnにおける平均値mは、以下の数４の式で表現される。
【００３７】
【数４】
0004088205.tif 000005
この数４の式を用いて数３の計算式を表すと、数５のようになる。
【００３８】
【数５】
0004088205.tif 000006
数６は、分散値の計算式の展開の過程を示す。
【００３９】
【数６】
0004088205.tif 000007
かかる展開を経て、分散値＝(２乗の平均)−(平均の２乗)という式が成立していることがわかる。
以上がフレーム予測時におけるDCE、ACEの算出式である。フィールド予測時に1つのフィールドに対するおけるDCE、ACEの算出式を以下の数７に示す。
【００４０】
【数７】
0004088205.tif 000008
以上がDCE、ACEの算出手法である。インター選択部１８の1つ目の特徴は、以上のような計算手法をDCTタイプに応じて変化させる点である。
DCTタイプがフレームの場合はフレームマクロブロック（16×16）に対して、符号化MBとの残差から上述した計算を行ってDCE、ACEを得る。
【００４１】
DCTタイプがフィールドの場合は、２つのフィールド（8×16）に対してそれぞれDCEを求め、それを平均した値をマクロブロックのDCEとする。ACEについても同様に、２つのフィールドに対してそれぞれACEを求め、それを平均した値をマクロブロックのACEとする。
インター選択部１８の2つ目の特徴は、モード選択にあたっての評価値として修正されたMSEを用いる点である。修正されたMSEとは、DCEを減衰させたものであり、modMSEで表す。式に表すと、modMSEは以下のようになる。
modMSE = α×DCE + ACE
ここで、αは減衰率で、0<α<1 である。
このαの値は、デフォルト値として1/64に設定するのが望ましい。何故なら、各種シミュレーションによると、αを1/64とした場合に圧縮率やS/N比が最適になったことがわかっているからである。またαの値は、ユーザインターフェイスよりユーザからの指示が通知されたとき、この指示にもとづいて変更できるように構成することが望ましい。このようにαの値を変更すれば、ユーザはモニタで符号化後の画質を確認し、納得の行く画質が確保できるよう、αの値を調整できるからである。
【００４２】
以降、フローチャートを参照しながら、動き補償予測部６及びインター選択部１８の処理手順について説明する。図２は、動き補償予測部６全体における大きな処理の流れを示すフローチャートである。動きベクトル探索部１６に動きベクトルを探索させ(ステップＳ１０１)、DCTタイプ決定部１７にDCTタイプを決定させてから(ステップＳ１０２)、動き補償モードを選択し(ステップＳ１０３)、その後、DCT部７、量子化部８、可変長符号化部９にDCT,量子化、可変符号長符号化を行わせる(ステップＳ１０４)というものである。動き補償モードの選択は、インター選択部１８に最善のインターモードを選択させるという処理(ステップＳ１０５)と、最善のインターモード、イントラモードのうち何れかをインター／イントラ選択部１９に選択させるという処理(ステップＳ１０６)とを含む。
【００４３】
インター選択部１８を構成するには、コンピュータ記述言語を用いて図３のフローチャートに示す処理手順を記述することでプログラムを作成し、コンピュータに実行させればよい。以降、図３を参照しながら、インター選択部１８の処理手順について説明する。尚、簡略を期するため、本フローチャートでは、”マクロブロック”をMBと略記している。
【００４４】
ステップＳ１〜ステップＳ２は、インターモードのそれぞれについてステップＳ３〜ステップＳ８の処理を繰り返すループ処理を形成している。Ｐピクチャであれば、前方フレーム予測(1)、前方フィールド予測(2)、NoMC(3)のそれぞれが、ステップＳ３〜ステップＳ８の対象となる。Ｂピクチャであれば、前方フレーム予測(1)、前方フィールド予測(2)、後方フレーム予測(3)、後方フィールド予測(4)、両方向フレーム予測(5)、両方向フィールド予測(6)のそれぞれが、ステップＳ３〜ステップＳ８の処理の対象となる。
【００４５】
このループ処理において、対象となる動き補償モードを動き補償モードpとし、この動き補償モードpにて予測されるマクロブロックをマクロブロックpとする。ステップＳ３は、DCTタイプ決定部により決定されたDCTタイプにより、処理手順を切り換える。
DCTタイプがフレームなら、予測MBpのうち、16×16のフレームについての残差に基づきDCE,ACEを算出する(ステップＳ４)。
【００４６】
DCTタイプがフィールドなら、予測MBpのうち、16×8,16×8の2つのフィールドについてDCE、ACEを、マクロブロックpと、符号化MBとの残差に基づき算出する(ステップＳ５)。そして2つのフィールドにおけるDCEの平均をDCEに設定し(ステップＳ６)、2つのフィールドにおけるACEの平均をACEに設定する(ステップＳ７)。
【００４７】
ステップＳ４、及び、ステップＳ５〜ステップＳ７の何れか一方で、DCE、ACEが計算されれば、DCEに係数αを乗じ、ACEを足し合わせて、modMSE(p)を得る(ステップＳ８)。このmodMSE(p)が、モードpにおける評価値となる。ステップＳ３〜ステップＳ８の処理を、インターモードのそれぞれについて繰り返せば、インターモードのそれぞれについて、評価値が算出されることになる。こうして各インターモードについてのmodMSEが算出されれば、算出されたインターモードのうち、予測MBにおけるmodMSEが最小になったものを選択する(ステップＳ９)。
DCE, ACE, modMSEの計算例を交えて、インター選択部１８の動作例について説明する。
【００４８】
この動作例の対象となる画像は輝度変化が大きいインターレース画像であり、ピクチャタイプは、Pピクチャであるものとする。このPピクチャのうち、符号化対象となるマクロブロック(符号化MB)は、以下の16×16の輝度を持つものとする。
【００４９】
符号化MB
48 59 57 50 52 56 54 51 56 60 56 52 57 60 55 56
72 66 67 74 75 71 70 75 73 69 71 74 73 71 76 77
55 50 55 58 56 59 62 60 58 59 61 60 59 62 62 60
70 74 72 73 76 74 70 72 74 73 73 75 75 73 73 77
53 55 54 55 54 51 55 57 57 59 60 59 58 58 55 56
73 72 73 75 74 72 73 74 72 74 75 76 76 74 76 78
56 54 57 57 54 51 54 58 58 59 59 57 58 57 55 59
65 69 73 75 74 73 75 76 75 75 76 75 76 76 77 78
50 56 57 58 56 52 55 58 58 58 60 58 58 58 57 59
71 68 74 75 72 71 69 71 74 75 74 75 77 75 74 76
56 54 56 56 55 54 55 58 57 57 59 57 57 57 57 60
67 71 70 70 71 71 71 74 74 73 73 73 74 74 77 76
50 56 55 56 57 56 58 58 57 57 58 58 58 59 60 61
70 67 71 71 73 73 72 74 73 72 73 73 74 73 72 74
54 51 55 56 56 57 57 56 55 57 59 59 59 57 59 61
69 71 70 69 72 74 74 73 73 74 74 73 74 76 76 76
【００５０】
インター選択部１８は、前方フレーム予測(1)、前方フィールド予測(2)、NoMC(3)のうち、どの動き補償モードが最善であるかの選択を行う。そのため、これらインター型の動き補償モードのそれぞれについて、評価値を算出する。前方フレーム予測(1)がインターモードpである場合、以下の16×16の輝度を持つマクロブロックが予測されるものとする。
【００５１】
前方フレームモードで予測されたマクロブロック
49 47 47 48 49 49 50 50 51 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
49 47 47 48 49 50 50 50 51 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
49 47 48 48 49 50 51 51 52 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
49 48 48 49 50 51 51 51 52 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
50 49 50 50 51 51 52 52 52 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
50 50 50 51 51 52 52 53 53 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
50 50 51 51 52 52 53 53 53 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
50 50 51 51 52 53 53 53 53 52 52 52 52 52 52 52
51 51 51 51 51 51 51 51 52 53 53 53 53 53 53 53
【００５２】
この予測MBと、符号化MBとの画素毎の残差は以下のようになる。
前方フレームモードにより予測されるマクロブロックとの残差
-1 12 10  2  3  7  4  1  5  8  4  0  5  8  3  4
21 15 16 23 24 20 19 24 21 16 18 21 20 18 23 24
6  3  8 10  7  9 12 10  7  7  9  8  7 10 10  8
19 23 21 22 25 23 19 21 22 20 20 22 22 20 20 24
4  8  6  7  5  1  4  6  5  7  8  7  6  6  3  4
22 21 22 24 23 21 22 23 20 21 22 23 23 21 23 25
7  6  9  8  4  0  3  7  6  7  7  5  6  5  3  7
14 18 22 24 23 22 24 25 23 22 23 22 23 23 24 25
0  7  7  8  5  1  3  6  6  6  8  6  6  6  5  7
20 17 23 24 21 20 18 20 22 22 21 22 24 22 21 23
6  4  6  5  4  2  3  5  4  5  7  5  5  5  5  8
16 20 19 19 20 20 20 23 22 20 20 20 21 21 24 23
0  6  4  5  5  4  5  5  4  5  6  6  6  7  8  9
19 16 20 20 22 22 21 23 21 19 20 20 21 20 19 21
4  1  4  5  4  4  4  3  2  5  7  7  7  5  7  9
18 20 19 18 21 23 23 22 21 21 21 20 21 23 23 23
【００５３】
ステップＳ４においてこの残差からDCEを算出するとDCE=239になり、またACEを算出すると、ACE=5になる。ステップＳ８において係数αを1/64にしてmodMSEを算出すると、9になる。
【００５４】
MSE_frame 9 (ACE 5, DCE 239)
前方フィールド予測(2)がインターモードpである場合、以下の16×16の輝度を持つマクロブロックが予測されるものとする。
前方フィールドモードで予測されるマクロブロック
47 48 48 49 49 50 50 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 50 50 51 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 50 50 51 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 50 50 51 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 50 50 51 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 49 50 51 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 49 50 51 51 51 51 51 51 51 51 51 51
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
47 48 48 49 49 50 50 51 52 52 52 52 52 52 52 52
52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 53
【００５５】
この予測MBと、符号化MBとの画素毎の残差は以下のようになる。
前方フィールドモードにより予測されるマクロブロックとの残差
1 11  9  1  3  6  4  0  5  9  5  1  6  9  4  5
20 14 15 22 23 19 18 23 21 17 19 22 21 19 24 24
8  2  7  9  6  9 11  9  7  8 10  9  8 11 11  9
18 22 20 21 24 22 18 20 22 21 21 23 23 21 21 24
6  7  6  6  4  1  4  6  6  8  9  8  7  7  4  5
21 20 21 23 22 20 21 22 20 22 23 24 24 22 24 25
9  6  9  8  4  1  3  7  7  8  8  6  7  6  4  8
13 17 21 23 22 21 23 24 23 23 24 23 24 24 25 25
3  8  9  9  6  2  4  7  7  7  9  7  7  7  6  8
19 16 22 23 20 19 17 19 22 23 22 23 25 23 22 23
9  6  8  7  6  4  4  7  6  6  8  6  6  6  6  9
15 19 18 18 19 19 19 22 22 21 21 21 22 22 25 23
3  8  7  7  8  6  7  7  6  6  7  7  7  8  9 10
18 15 19 19 21 21 20 22 21 20 21 21 22 21 20 21
7  3  7  7  7  7  7  5  3  5  7  7  7  5  7  9
17 19 18 17 20 22 22 21 21 22 22 21 22 24 24 23
ステップＳ５〜ステップＳ７において、残差からDCEを算出するとDCE=242になり、またACEを算出すると、ACE=5になる。ステップＳ８において係数αを1/64にしてmodMSEを算出すると、9になる。
【００５６】
MSE_field 9 (ACE 5, DCE 242)
NoMC(3)がインターモードpである場合、以下の16×16の輝度を持つマクロブロックが予測されるものとする。
noMCモードで予測されるマクロブロック
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 47 47 48 48 49 49 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 47 47 48 48 49 49 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 46 47 47 49 49 50 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 47 47 48 48 49 49 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 46 47 47 49 49 50 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 47 47 48 48 49 49 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 46 47 48 48 49 50 50
44 44 44 44 44 44 44 44 46 46 46 46 46 46 46 46
44 44 44 44 44 44 44 44 46 47 47 48 48 49 49 50
【００５７】
この予測MBと、符号化MBとの画素毎の残差は以下のようになる。
noMCモードにより予測されるマクロブロックとの残差
4 15 13  6  8 12 10  7 10 14 10  6 11 14  9 10
28 22 23 30 31 27 26 31 27 22 24 26 25 22 27 27
11  6 11 14 12 15 18 16 12 13 15 14 13 16 16 14
26 30 28 29 32 30 26 28 28 26 26 27 27 24 24 27
9 11 10 11 10  7 11 13 11 13 14 13 12 12  9 10
29 28 29 31 30 28 29 30 26 28 28 29 27 25 26 28
12 10 13 13 10  7 10 14 12 13 13 11 12 11  9 13
21 25 29 31 30 29 31 32 29 28 29 27 28 27 28 28
6 12 13 14 12  8 11 14 12 12 14 12 12 12 11 13
27 24 30 31 28 27 25 27 28 29 27 28 28 26 24 26
12 10 12 12 11 10 11 14 11 11 13 11 11 11 11 14
23 27 26 26 27 27 27 30 28 26 26 25 26 25 28 26
6 12 11 12 13 12 14 14 11 11 12 12 12 13 14 15
26 23 27 27 29 29 28 30 27 26 26 25 26 24 22 24
10  7 11 12 12 13 13 12  9 11 13 13 13 11 13 15
25 27 26 25 28 30 30 29 27 27 27 25 26 27 27 26
【００５８】
ステップＳ４においてこの残差からDCEを算出するとDCE=435になり、またACEを算出すると、ACE=5になる。ステップＳ８において係数αを1/64にしてmodMSEを算出すると、12になる。
MSE_noMC 12 (ACE 5, DCE 435)
【００５９】
以上の過程で、以下の3つのmodMSEが算出されたので、ステップＳ９においてこのmodMSEが最も小さいインターモードを選択すれば、それが最善のインターモードになる。尚、今回の計算例では、前方フレームモード、前方フィールドモードの双方でmodMSEが等しい。
MSE_frame 9 (ACE 5, DCE 239)
MSE_field 9 (ACE 5, DCE 242)
MSE_noMC 12 (ACE 5, DCE 435)
【００６０】
以上のように本実施形態によれば、DCEを減衰した上で評価値を算出しているので、暗いコンサート会場でライトが激しく点滅しているような動画像においても、動き補償モードの選択が適切になり、画質を向上させることができる。
(第２実施形態)
第２実施形態は、インター／イントラ選択部１９における改良をより詳しく示す実施形態である。インター／イントラ選択部１９は、インター選択部１８により最善と判定されたインターモードを、イントラモードと比較してどちらを採用するかを決定するものである。この比較は、イントラモードについて分散値を算出して、この分散値を最善モードのMSEと比較し、尚且つ最善モードのMSEが所定の閾値を上回るか否かを判定することでなされる。
【００６１】
本実施形態におけるインター／イントラ選択部１９の特徴は、DCTタイプに応じて、分散値の計算手法を変えている点である。つまり、DCTタイプがフレームなら、符号化MBにおける16×16のフレームについて分散値を算出する。DCTタイプがフィールドなら、符号化MBのうち、16×8,16×8の2つのフィールド毎に分散値を算出し、そして2つのフィールドにおける分散値の平均を分散値に設定するのである。
【００６２】
以上のインター／イントラ選択部１９を構成するには、コンピュータ記述言語を用いて図４のフローチャートに示す処理手順を記述することでプログラムを作成し、コンピュータに実行させればよい。以降、図４のフローチャートを参照しながら、インター／イントラ選択部１９の処理手順について説明する。
ステップＳ２１は、DCTタイプ決定部により決定されたDCTタイプにより、処理手順を切り換えを実現する。DCTタイプがフレームなら、符号化MBにおける16×16のフレームについて分散値を算出する(ステップＳ２２)。DCTタイプがフィールドなら、符号化MBのうち、16×8,16×8の2つのフィールドについて分散値を算出する(ステップＳ２３)。そして2つのフィールドにおける分散値の平均を分散値に設定する(ステップＳ２４)。
【００６３】
ステップＳ２５は、算出されたVARが最善モードのMSEより小さく、且つ最善モードのMSEが64より大きいかという条件の成立を判定する判定ステップである。この判定において分散値と対比されるのは、MSEであり、modMSEではない。つまりDCEが減衰されない状態のままのMSEが比較の対象となる。もしこの条件が成立すればイントラモードを選択する(ステップＳ２６)。もしこの条件が不成立であれば、モードpのインターモードを選択する(ステップＳ２７)。
【００６４】
以降、第２実施形態に係るインター／イントラ選択部１９の動作例について説明する。この動作例は、第１実施形態に示した示した計算例において、インター／イントラ選択部１９がどのように選択を行うかを述べるものである。
第１実施形態のインターモードの選択にあたって、前方フレームモードと前方フィールドとでmodMSEが同じになった。ここで判定の順序のためにフレーム予測が選択されるものとする。
【００６５】
このようにして選択された前方フレームモードと、イントラモードのどちらがよいかを上述した手順に基づき判定する。
第１実施形態において前方フレームモードのDCTタイプはフィールドと決定されている。イントラのDCTタイプがフィールドなので、インター／イントラ選択部１９はステップＳ１３、ステップＳ１４においてフィールド毎に分散値VARを算出する。そうして算出された分散値VARは、「7」になったものとする。
【００６６】
こうして算出された分散値VARを、前方フレームモードのMSEと比較する(ステップＳ１５)。前方フレームモードのMSEは244(=5+239)であり、VAR<MSEの関係を満たす。またMSEは244であり、MSE>64という関係を満たすので、イントラモードが選択されることになる。
以上のように本実施形態によれば、DCTタイプに応じて、分散値の計算手法を変化させることで、輝度変化が大きな画像でマクロブロックについての分散値が小さな値に算出される。これとMSEとの比較にあたっては、「分散値＜MSE」の関係が満たされ易くなり、輝度変化が大きい画像に対してTest Model5の方法よりもイントラモードが選択されることが多くなり、画質を向上させることができる。
【００６７】
尚、MSEとの比較に用いる閾値を64としたが、これを4としてもよい。閾値を4とすると、平坦な画像において、矩形状のノイズが出現するというブロックノイズを、抑制することができる。
(第３実施形態)
第３実施形態は、動きベクトル探索部１６における改良をより詳しく説明する実施形態である。
【００６８】
動きベクトル探索部１６は、参照フレーム／フィールド内に位置するマクロブロックのそれぞれについて、評価値を算出して、この評価値が最小のマクロブロックを参照マクロブロックにする。そして、符号化MBを基準とした参照マクロブロック(以降、参照MB)の相対位置を動きベクトルとして算出する。第１実施形態における評価値は、二乗誤差に基づいた交流成分、及び、直流成分から導かれたが、本実施形態における評価値は、絶対誤差に基づいた交流成分、及び、直流成分から導かれる。
【００６９】
交流成分の算出式を数８に示す。
【００７０】
【数８】
0004088205.tif 000009
直流成分の算出式を数９に示す。
【００７１】
【数９】
0004088205.tif 000010
参照MB毎の評価値は、これら誤差の直流成分、誤差の交流成分を用いた式で算出される。以下の数１０がその式である。
【００７２】
【数１０】
0004088205.tif 000011
この数１０からも分かるように、直流成分の絶対誤差は係数kが乗られて減衰させられていることがわかる。
直流成分、交流成分の計算は、数１１、数１２のように行っても良い。
【００７３】
【数１１】
0004088205.tif 000012
【００７４】
【数１２】
0004088205.tif 000013
ここで、符号化MB内の座標(i,j)に位置する画素の輝度値をＸijとし、また、参照フレーム／フィールド内のマクロブロックにおいて、座標(i,j)に位置する画素の輝度値をＹijとしている。
【００７５】
第３実施形態において直流成分が評価値に用いられているものの、係数kが乗じられ減衰させられている点は、第１実施形態と共通であるといえる。
このkの値は、デフォルト値として1/16〜1/4に設定するのが望ましい。何故なら、kをこの範囲に設定すれば、絵柄の変化よりも輝度変化が大きい画像(1)、絵柄の変化及び輝度変化が共に小さい画像(2)の双方において、視覚的な問題が生じず、かつ符号量が小さくなることが確認できるからである。
【００７６】
またkの値は、ユーザインターフェイスよりユーザからの指示が通知されたとき、この指示にもとづいて変更できるように構成することが望ましい。このようにkの値を変更すれば、ユーザはモニタで符号化後の画質を確認し、納得の行く画質が確保できるよう、kの値を調整できるからである。
以上の動きベクトル探索部１６を構成するには、コンピュータ記述言語を用いて図５のフローチャートに示す処理手順を記述することでプログラムを作成し、コンピュータに実行させればよい。以降、図５のフローチャートを参照しながら、動きベクトル探索部１６の処理手順について説明する。ステップＳ３１において、符号化MBをMBxとする。
【００７７】
ステップＳ３２〜ステップＳ３３は、各動き補償モードの参照フレーム／フィールドについて、ステップＳ３４〜ステップＳ３８の処理を繰り返すループ処理を形成している。Ｐピクチャの参照フレーム／フィールドには、前方フレーム(i)、前方フィールド(ii)があるので、これらについてステップＳ３４〜ステップＳ３８の処理が行われる。またＢピクチャの参照フレーム／フィールドには、前方フレーム(i)、前方フィールド(ii)、後方フレーム(iii)、後方フィールド(iv)があるので、これらについてステップＳ３４〜ステップＳ３８の処理が行われる。
【００７８】
ステップＳ３１〜ステップＳ３８のループ処理にあたって、処理の対象となる個々の参照フレーム／フィールドを参照フレーム／フィールド(r)という。
ステップＳ３４〜ステップＳ３６は、参照フレーム／フィールド(r)に属するマクロブロックであって、候補になり得る全てのものについて、ステップＳ３６の処理を繰り返すループ処理を形成している。符号化MBにおいて、探索範囲内の全てのマクロブロックが、ここでの候補になりうる。これは、フルサーチと呼ばれる。
【００７９】
このループ処理において対象となるマクロブロックをマクロブロックyとする。ステップＳ３６は、上述した数１０の式に基づきマクロブロックyについての評価値f(y)を求める。
このステップＳ３６の繰り返しにより、参照フレーム／フィールド(r)において候補になり得る全てのマクロブロックについて、評価値が算出されることになる。
【００８０】
ステップＳ３７は、参照フレーム／フィールド(r)において候補となり得るマクロブロックのうち、f(y)が最小のものを、参照フレーム／フィールド(r)についての参照MBにする。続くステップＳ３８では、マクロブロックxを基準とした参照MBの相対位置を動きベクトル(r)に設定する。動きベクトル(r)とは、参照フレーム／フィールド(r)についての動きベクトルである。以上のステップＳ３２〜ステップＳ３８の繰り返しにより、参照フレーム／フィールドのそれぞれについて、動きベクトルが算出される。
【００８１】
本発明と、特許文献1とで、参照MBの探索が適切かどうかの比較を行う。この比較は、非可逆変換の前後で、参照MBの直流成分がどれだけ変わるかを算出することでなされる。不可逆変換前の直流成分の平均値と、不可逆変換後の直流成分の平均値とが等しく、差が0ならば参照MBの探索が最適であることを示す。一方、平均値の差が大きければ大きい程参照MBの探索が不適であることを示す。比較の対象となる画像は、図６のような空の画像である。図６において、各画素の値は、46,47,48というように微妙に変化する。この変化はランダムな変化であり、交流成分として現される。一方、大きな範囲での画素の変化を観察すれば、かかる画素の集まりでも、変化が観察される。この変化は、マクロブロックの直流成分の変化となる。図７は、図６における輝度の表記を、10進数に置き換えて示した図である。
【００８２】
図８を参照しながら、本発明の手順で探索された参照MBと、特許文献1で探索された参照MBとを比較する。マクロブロック1とは本発明の手順で探索した参照MBであり、マクロブロック2とは特許文献1の手順で探索した参照MBである。
特許文献1においては、輝度の直流成分を無視し、交流成分のみを用いた評価値で参照MBを探索している。数１３の式は、特許文献1におけるマクロブロックの評価値の算出式である。
【００８３】
【数１３】
0004088205.tif 000014
特許文献1では、空のような平坦な画像であっても、直流成分が大きくなるような参照MBを選んでしまう可能性がある。図８のmx1,mx2は、マクロブロック1とマクロブロック2に対する残差を、マトリックス状に示している。平坦な画像から選んだ参照MBなのに、特許文献1では直流成分が無視されたため、mx2に示すように画素毎の残差が3,4,5になるような参照MBが選ばれている。画素毎の残差が3,4,5であるため、残差の平均値が3.8と大きく算出されている。
【００８４】
本発明に係る符号化装置においては、直流成分を減衰した上で、評価値を算出し参照MBを選んでいるため、空のような平坦な画像においては矢印mx1に示すように画素毎の残差が-1,0,1になるような参照MBが選ばれている。画素毎の残差が-1,0,1なので、残差の平均値は-0.25と小さな値になっている。
図中の<DCT>、<量子化>、<逆量子化>、<逆DCT>は、非可逆変換の過程である。
【００８５】
先ず始めに参照MB１における非可逆変換前後の残差の平均値の差を説明する。  DCT化において参照MB１の平均値「-0.25」は矢印my1に示すように8倍されて「-2.0」になる。続く量子化にて、DC係数「-2.0」は16倍され、(量子化係数×２×量子化スケール)の値で割られ、小数点以下四捨五入されることで矢印my2に示すように「0.00」になる。
【００８６】
逆量子化部１２にて、DC係数「0.00」は、(量子化係数×２×量子化スケール)の値が乗じられ、更に16で割られることにより矢印my3に示すように「0.00」になる。
逆DCTにてDC係数は8で割られて矢印my8に示すように平均が「0.00」になる。この「0.00」が非可逆変換後の残差の平均値である。非可逆変換前と非可逆変換後とでは、残差の平均値に「0.25」の差がある。
【００８７】
続いて、参照MB２における非可逆変換前後の平均値の差を説明する。
DCT化において参照MB２の平均値「3.80」は8倍されて矢印my4に示すように「30.38」になる。続く量子化にて、DC係数「30.28」は16倍され、(量子化係数×２×量子化スケール)の値で割られ、小数点以下四捨五入されることで矢印my5に示すように「2」になる。
【００８８】
逆量子化部１２にて、DC係数「2」は、(量子化係数×２×量子化スケール)の値が乗じられ、更に16で割られることにより矢印my6に示すように「40.00」になる。
逆DCTにてDC係数は8で割られて矢印my7に示すように平均が「5.00」になる。この「5.00」が非可逆変換後の残差の平均値である。非可逆変換前と非可逆変換後とでは、平均値に「1.20」の差がある。
【００８９】
参照MB１と、参照MB２とで非可逆変換前後の平均値の差を比較すると、参照MB１の方が、よい結果になっていることがわかる。
＜画質の比較＞
Test Model5を用いる符号化装置、特許文献1に記載の符号化装置、kの値を1/16〜1/4とした本発明の符号化装置の３つを用いて求めた動きベクトルを用いて符号化するシミュレーションを行った結果、以下のことが明らかとなった。
【００９０】
時間的に輝度変化が小さい比較的複雑な画像（以下、「第１の画像」という。）では、上述の３つの符号化装置全において良い画質となった。
時間的に輝度変化が大きい画像（以下、「第２の画像」という。）では、Test Model5を用いる符号化装置は画質が劣り、特許文献1に記載の符号化装置と本発明の符号化装置とでは良い画質となった。
【００９１】
時間的な輝度変化が非常に小さく位置による輝度変化が多少ある画像（以下、「第３の画像」という。）では、Test Model5を用いる符号化装置と本発明の符号化装置では良い画質となり、特許文献1に記載の符号化装置では画質が劣る。より具体的には第３の画像（例えば空の画像）では、前記特許文献1の方法で求めた動きベクトルを用いて符号化すると本来は静止の領域でブロックが動いて見えて画質が低下する。
【００９２】
以下、第１、第２、第３それぞれの画像に対し、本発明の符号化装置を用いて動きベクトルを検出する場合について詳細に説明する。
第１の画像、即ち、時間的な輝度変化が小さく比較的複雑な画像に対しては、各参照MB群の各マクロブロックの交流成分は本来の動きを表わすマクロブロックに近い値となり、それ以外のマクロブロックで差が大きい値となる。
【００９３】
従って、各マクロブロック間の輝度値における誤差の評価値の差は主として交流成分の差によって決まり、誤差の交流成分が最も小さい動きベクトルが選択されることになり、本発明の符号化装置において、本来の動きを示す動きベクトルが選択される。
第２の画像、即ち、時間的な輝度変化が大きい画像に対しては、時間的な輝度の変化により直流成分が大きくなるが、直流成分は1/16〜1/4に減衰されるので、誤差の交流成分の影響が相対的に大きくなる。
【００９４】
その結果、絵柄の影響が強くなるため、輝度変化の影響が小さくなり、適切な動きベクトルが求められる。
第３の画像（時間的な輝度変化が小さい平坦な画像）に対しては、平坦な画像なのでどの参照MBであっても交流成分はごく小さい。
例えば、図６、図７に示すように、狭い範囲では変化はランダム状であるが、広い範囲ではランダムでない意味のある変化があり、直流成分が動きを反映している。
【００９５】
本発明の符号化装置によれば、直流成分の1/16〜1/4が誤差の評価値に反映され、直流成分と交流成分とが適度な割合で評価されるため、符号化MBの直流成分及び交流成分が共に近い値となっている参照MBを検出することができる。
一方、特許文献1に記載の符号化装置は、交流成分のみによって誤差を評価して動きベクトルを求めるため、交流成分は動きを反映しないので不適切な動きベクトルを求めてしまう。
【００９６】
特許文献1に記載の符号化装置において、不適切な動きベクトルを求めてしまうケースは、第３の画像以外にも存在する。それは画像の左端で輝度が高く、画像の右端で輝度が低く、輝度の変化が一様な画像などである。このような輝度の変化率が一定の画像では、交流成分は画像中のどこでも同じになる。そのため、交流成分は意味のある動きを反映せず、交流成分のみによって誤差を評価すると誤差の直流成分が大きい動きベクトルを求めてしまうことがあり得る。
【００９７】
本発明の符号化装置によれば、先に述べたように、直流成分の絶対誤差の一部（1/16〜1/4）が評価値に反映され、直流成分と交流成分とが適度な割合で評価されるため、符号化MBの直流成分及び交流成分が共に近い値となっている参照MBを検出することができる。
以上のように本実施形態によれば、特許文献1に示されるように、直流成分の絶対誤差を”0”にするのではなく、減衰した上で参照MBについての評価値を算出しているので、輝度変化が小さい平坦な画像であっても、ライトが激しく点滅しているような画像が符号化対象であっても、動きベクトルを適切に探索することができる。
【００９８】
(備考)
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明はその要旨を逸脱しない範囲で変更実施することができる。代表的な変更実施の形態として、以下(A)(B)(C)・・・・のものがある。
【００９９】
(A)第３実施形態では、減衰のための係数fのデフォルト値を1/16〜1/4としたが、この値に限定されるものではなく、0よりも大きく、１よりも小さい値で画質に問題が生じない範囲であればよい。
(B)第３実施形態では、参照MBの評価値として、絶対誤差を用いたが、これに限らず2乗誤差を用いてもよい。
【０１００】
その場合、2乗誤差を求める式は、
【０１０１】
【数１４】
0004088205.tif 000015
となる。
また、2乗誤差の求め方として、上述の式の各項をnの2乗で除した平均二乗誤差を用いてもよい。
【０１０２】
(C)第３実施形態に係る符号化装置に、画像の特性を検出する機能部を追加し、画像の特性によって係数kの値を自動的に変更してもよい。また、第３実施形態における動き補償予測部６は、輝度値にもとづいて誤差の直流成分、誤差の交流成分を算出したが、色差の値にもとづいて算出してもよく、又は、画素を示すRGB成分の任意の成分の値にもとづいて算出してもよい。
【０１０３】
(D)第３実施形態に係る動き補償予測部６は、符号化MBと探索範囲内の全てのマクロブロックを比較する、いわゆるフルサーチを実施するとしたが、他のサーチ方法を用いてもよい。このようなサーチ方法の一例として、縮小した画像を用いてサーチする方法が挙げられる。
(E)図３〜図５に示したプログラムによる情報処理は、CPU、フレームメモリといったハードウェア資源を具体的に利用していることから、このプログラムは、単体で発明として成立する。第１実施形態〜第３実施形態は、符号化装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、符号化装置から分離して、第１実施形態〜第３実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。
【０１０４】
双方向の電子通信回線を介した提供行為(5)の類型には、提供者が、プログラムをユーザに送り、ユーザに使用させる行為や(プログラムダウンロードサービス)、プログラムを提供者の手元に残したまま、そのプログラムの機能のみを電子通信回線を通じて、ユーザに提供する行為(機能提供型ASPサービス)がある。
(F)図３〜図５のフロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、符号化方法の使用形態を開示していることがわかる。これらのフロ−チャ−トこそ、本発明に係る符号化方法の使用行為についての実施形態である。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る符号化方法の実施行為に該当することはいうまでもない。
【０１０５】
【発明の効果】
以上説明したように、本発明に係る符号化装置は「クレーム１」であるので、暗いコンサート会場でライトが激しく点滅しているような動画像においては、評価値(MSE)の大部分を占める誤差の直流成分が係数にて減衰させられることになる。誤差の直流成分を減衰した上で評価値を算出しているので、動き補償モードの選択が適切になり、符号化効率を高めることができる。
【０１０６】
誤差の直流成分を減衰させて動き補償モード選択を行うことで他の効果が奏される。それは以下の通りである。DCTを行った後、可変長符号化を行うときに、各ブロック（8×8）に対して直流係数は1個であるが、交流係数は複数個になる可能性がある。仮に、マクロブロックにおけるDCEとACEの値が等しいとしても、直流係数の符号量より交流係数の符号量の方が大きくなる可能性が高い。これは、符号量に与える影響はDCEよりACEの方が大きいことを意味する。TM5のMSEに対してはDCEとACEとが同じ重みで反映されるので、MSEで比較するとDCEとACEの符号量に対する影響が適切に反映されない。本発明では、DCEを減衰させることで、ACEを重視することができ、輝度より絵柄を重視した動き補償モードの選択を行うことができる。これにより輝度が変化する画像では、本来の動きを反映したモード選択を行う可能性が高くなる。
【０１０７】
ここで前記符号化装置は、マクロブロックに対し離散コサイン変換を施すにあたっての変換方式を、複数方式の中から決定する決定手段と、決定手段により決定された変換方式に応じて、異なる計算を実行することにより、符号化対象たるマクロブロックについての分散値を算出する第３算出手段と、選択手段により選択された補償方式において予測されるマクロブロックと、符号化対象たるマクロブロックとの平均二乗誤差を、第３算出手段により算出された分散値と比較する比較手段とを備え、
選択手段により選択された補償方式にて、符号化対象たるマクロブロックの符号化が行われるのは、符号化対象たるマクロブロックとの平均二乗誤差が、分散値より小さいか、又は、前記平均二乗誤差が所定の閾値より小さい場合としてもよい。
【０１０８】
離散コサイン変換のタイプに応じて、分散値の計算方法を変えているので輝度変化が激しいインターレス画像においては、マクロブロックについての分散値がTest Model5の方法により小さな値に算出される。これとMSEとの比較にあたっては、「分散値＜MSE」の関係が満たされ易くなり、イントラモードが選択されることが多くなる。これにより、符号化効率を高めることができる。
【０１０９】
ここで前記所定の閾値は、4としてもよい。閾値を4とすると、平坦な画像において、矩形状のノイズが出現するというブロックノイズを、抑制することができる。
ここでマクロブロックに対し動き補償を施すにあたっての参照マクロブロックを、前方又は後方のフレームに属する複数マクロブロックの中から選択し、選択された参照マクロブロックに対する動きベクトルを算出する符号化装置であって、参照マクロブロックの候補となるマクロブロック毎に、誤差の交流成分、及び、誤差の直流成分を算出する第１算出手段と、算出された誤差の交流成分、及び、誤差の直流成分を用いて、候補となる個々のマクロブロックについての評価値を算出する第２算出手段と、算出された評価値に基づき、動き補償方式にあたっての参照マクロブロックを選択する選択手段とを備え、
前記第２算出手段は、個々のマクロブロックについての誤差の直流成分を、所定の係数に基づき減衰させた上で、評価値を算出してもよい。特許文献1に示されるように、直流成分を”0”にするのではなく、減衰した上で参照MBについての評価値を算出しているので、輝度変化が小さい平坦な画像であっても、ライトが激しく点滅しているような画像が符号化対象であっても、動きベクトルを適切に探索することができ、符号化効率を高めることができる。
【図面の簡単な説明】
【図１】  符号化装置のハードウェア構成を示す図である。
【図２】  動き補償予測部６全体における大きな処理の流れを示すフローチャートである。
【図３】  インター選択部１８の処理手順を示すフローチャートである。
【図４】  インター／イントラ選択部１９の処理手順を示すフローチャートである。
【図５】  動きベクトル探索部１６の処理手順を示すフローチャートである。
【図６】空の風景のような絵柄の変化及び輝度変化が共に小さい画像において、符号化MB及び参照MB内の輝度値を示す図である。
【図７】空の画像の輝度値（１０進数表示）を示す図である。
【図８】残差の直流成分の値と、この残差の直流成分の値に対し、DCT、量子化、逆量子化及び逆DCTを順に実施して得られる残差の直流成分の値との差における、各動きベクトル探索の違いについて説明する図である。
【符号の説明】
１    D/Aコンバータ
２    フォーマット変換部
３    画面並替部
４    フレームメモリ
５    減算器
６    動き補償予測部
７    DCT部
８    量子化部
９    可変長符号化部
１０    バッファ
１１    レート制御部
１２    逆量子化部
１３    逆DCT部
１４    加算器
１６    動きベクトル探索部
１７    DCTタイプ決定部
１８    インター選択部
１９    インター／イントラ選択部
【図１】
0004088205.tif 000016
【図２】
0004088205.tif 000017
【図３】
0004088205.tif 000018
【図４】
0004088205.tif 000019
【図５】
0004088205.tif 000020
【図６】
0004088205.tif 000021
【図７】
0004088205.tif 000022
【図８】
0004088205.tif 000023