(57)【要約】【課題】  動きのある人物の周囲等に発生するモスキートノイズを軽減する。【解決手段】  本発明が適用されたＭＰＥＧ-２のエンコーダの量子化係数制御回路は、ＴＭ５のステップ１、２，３に基づき、量子化対象のマクロブロックのアクティビティが低ければ量子化係数を小さくし、アクティビティが高ければ量子化係数を大きくするような係数制御を行う。さらに、量子化係数制御回路は、量子化対象のマクロブロックのアクティビティとその周囲のマクロブロックのアクティビティとを比較し、量子化対象マクロブロックがアクティビティが低い領域と高い領域との境界に位置するマクロブロックであるか否かを判断し、境界部分のマクロブロックであると判断した場合には、量子化係数の値を小さくする。【選択図】図６
2006129067.tif 000002
【特許請求の範囲】
【請求項１】
所定数の画素から構成されるブロック（マクロブロック）単位で画面内をマトリクス状に分割し、分割したマクロブロック単位で動画像信号を符号化する動画像符号化装置において、
量子化係数に基づき動画像信号を量子化する量子化手段と、
マクロブロック毎に量子化係数を制御する係数制御手段とを備え、
上記係数制御手段は
量子化対象のマクロブロックのアクティビティと、周囲のマクロブロックのアクティビティとを比較し、比較結果に基づき量子化対象のマクロブロックに対する量子化係数を算出すること
を特徴とする動画像符号化装置。
【請求項２】
所定数の画素から構成されるブロック（マクロブロック）単位で画面内をマトリクス状に分割し、分割したマクロブロック単位で動画像信号を符号化する動画像符号化装置において、
マクロブロック単位で設定された量子化係数に基づき動画像信号を量子化する量子化手段と、
量子化対象のマクロブロックのアクティビティが低ければ量子化係数を小さくし、アクティビティが高ければ量子化係数を大きくするような所定の演算式に基づき、上記量子化係数をマクロブロック毎に制御する係数制御手段とを備え、
上記係数制御手段は、
量子化対象のマクロブロックのアクティビティと周囲のマクロブロックのアクティビティとを比較し、アクティビティが低い領域とアクティビティが高い領域との境界部分のマクロブロックであるか否かを判断し、境界部分のマクロブロックであると判断したならば、上記所定の演算式に基づき算出された量子化係数の値を小さくすること
を特徴とする動画像符号化装置。
【請求項３】
上記係数制御手段は、
動き推定による残差成分が所定量以下である場合には、境界部分のマクロブロックであっても、量子化係数を小さくしないこと
を特徴とする請求項２記載の動画像符号化装置。
【請求項４】
所定数の画素から構成されるブロック（マクロブロック）単位で画面内をマトリクス状に分割し、分割したマクロブロック毎に量子化係数を算出して量子化することにより、動画像信号を符号化する動画像符号化方法において、
量子化対象のマクロブロックのアクティビティと、周囲のマクロブロックのアクティビティとを比較し、比較結果に基づき量子化対象のマクロブロックに対する量子化係数を算出すること
を特徴とする動画像符号化方法。
【請求項５】
所定数の画素から構成されるブロック（マクロブロック）単位で画面内をマトリクス状に分割し、分割したマクロブロック毎に量子化係数を算出して量子化することにより、動画像信号を符号化する動画像符号化方法において、
量子化対象のマクロブロックのアクティビティが低ければ量子化係数を小さくし、アクティビティが高ければ量子化係数を大きくするような所定の演算式に基づき、上記量子化係数をマクロブロック毎に制御するとともに、
量子化対象のマクロブロックのアクティビティと周囲のマクロブロックのアクティビティとを比較し、アクティビティが低い領域とアクティビティが高い領域との境界部分のマクロブロックであるか否かを判断し、境界部分のマクロブロックであると判断した場合には、上記所定の演算式に基づき算出された量子化係数の値を小さくすること
を特徴とする動画像符号化方法。
【請求項６】
動き推定による残差成分が所定量以下である場合には、境界部分のマクロブロックであっても、量子化係数を小さくしないこと
を特徴とする請求項５記載の動画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マクロブロック単位で量子化係数を制御して動画像信号の符号化を行う動画像符号化装置及び方法に関するものである。
【背景技術】
【０００２】
ＭＰＥＧ-２のＴＭ５（Test Model 5 ;ISO/IEC JTC/SC29/WG11 (1993)）では、高画質化を図るための量子化係数の制御方法が提案されている。具体的に、ＴＭ５には、各ピクチャへ最適な符号配分を行う階層（ステップ１）と、仮想バッファの容量を元に量子化係数のフィードバックコントロールを行う階層（ステップ２）と、視覚特性に応じてマクロブロック単位で量子化係数をコントロールを行う階層（ステップ３）とが規定されている。
【０００３】
ここで、ステップ３では、視覚的に劣化の目立ちやすい平坦な画像部分（アクティビティが小さい部分）でより細かく量子化し、劣化の目立ちにくい絵柄の複雑な画像部分（アクティビティが大きい部分）でより粗く量子化するように、ステップ２で求められた量子化係数を変化させている。具体的には、ステップ３では、アクティビティにより絵柄の複雑さを指標化して、ステップ２で求められた量子化係数を変化させている。
【０００４】
【特許文献１】特開平１０−６６０６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ＴＭ５のステップ３では、平坦部分と絵柄の複雑な部分との境界に位置するマクロブロックについては、絵柄が複雑であると判断する傾向にあり、粗く量子化していた。そのため、例えば白い壁上で例えばスポーツをしている人物が表示されているような画面、つまり、平坦な背景画像の上で動きの大きいオブジェクト画像が表示されている画面では、その背景画像とオブジェクト画像との境界部分にモスキートノイズが発生しやすかった。
【０００６】
本発明は、以上のような問題を解決するものであり、量子化による画質劣化を小さくした動画像符号化装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る動画像符号化装置及び方法では、量子化対象のマクロブロックのアクティビティと、周囲のマクロブロックのアクティビティとを比較し、比較結果に基づき量子化対象のマクロブロックに対する量子化係数を算出する。
【０００８】
さらに、本発明に係る動画像符号化装置及び方法では、量子化対象のマクロブロックのアクティビティが低ければ量子化係数を小さくし、アクティビティが高ければ量子化係数を大きくするような所定の演算式に基づき、上記量子化係数をマクロブロック毎に制御するとともに、量子化対象のマクロブロックのアクティビティと周囲のマクロブロックのアクティビティとを比較し、アクティビティが低い領域とアクティビティが高い領域との境界部分のマクロブロックであるか否かを判断し、境界部分のマクロブロックであると判断したならば、上記所定の演算式に基づき算出された量子化係数の値を小さくする。
【発明の効果】
【０００９】
以上のような本発明に係る動画像符号化装置及び方法では、量子化による画質劣化を小さくすることができる。
【００１０】
さらに、本願発明に係る動画像符号化装置及び方法では、画像平坦部分では細かく、絵柄の複雑部分では粗く量子化をするとともに、動きのあるオブジェクト画像の境界部分では細かく量子化するので、視覚特性に応じて効率的に量子化を行うとともに、モスキートノイズの発生を低減することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明が適用されたＭＰＥＧ-２（ISO/IEC13818-2 Information Technology-Generic Coding of moving pictures and associated audio information: Video）方式のビデオエンコーダについて説明をする。
【００１２】
（全体のブロック構成）
図１は、本発明が適用されたビデオエンコーダ１０の構成図である。
【００１３】
ビデオエンコーダ１０は、図１に示すように、空間領域の画像データ（画素データ（Pixel））が入力され、ＭＰＥＧ-２規格に対応した符号化処理を行い、符号化ストリーム（Stream）を出力する。
【００１４】
ビデオエンコーダ１０は、動きベクトルを算出する動き推定部１１と、減算部１２と、離散コサイン変換（ＤＣＴ）部１３と、量子化部１４と、可変長符号化（ＶＬＣ）処理を行うＶＬＣ部１５と、量子化係数を制御する量子化係数制御部１６と、逆量子化部１７と、逆離散コサイン変換（ＩＤＣＴ）部１８と、加算部１９と、メモリ２０と、動き補償部２１とを備えている。
【００１５】
動き推定部１１には、画素データ（Pixel）がマクロブロック単位で入力され、各マクロブロックの動きベクトルを算出する。動き推定部１１は、動きベクトルの算出の際に、マクロブロックのアクティビティ及びＭＥ残差を算出し、これらを利用して動きベクトルを算出する。
【００１６】
アクティビティは、絵柄の複雑さを表す指標であり、分散に基づき表される。すなわち、アクティビティが大きいマクロブロックは各画素のレベルのばらつきが大きく、アクティビティが小さいマクロブロックは各画素のレベルのばらつきが小さく、平坦化している。なお、アクティビティを算出する具体的な演算式については、後述する。
【００１７】
ＭＥ残差は、動き推定をした後に残存するレベルの総量を示す指標である。ＭＥ残差は、例えば、圧縮符号化時の動きベクトルによる動き補償処理後に、入力画像と参照画像との差分値の絶対値和若しくは自乗値和として定義される。入力画像と参照画像との相関がない場合にはＭＥ残差が大きくなり、入力画像と参照画像との相関がある場合には、ＭＥ残差が小さくなる。
【００１８】
減算部１２には、画像データ（pixel）がマクロブロック単位で入力される。また、減算部１２には、符号化対象となるマクロブロック（画素データ（pixel））に対して、フレーム間の相関を利用した符号化処理を行う場合には、動き補償部２１から予測ブロックも入力される。減算部１２は、インターマクロブロックに対して処理を行う場合には、入力された画像データから予測ブロックを減算する。減算部１２は、イントラマクロブロックに対して処理を行う場合には、入力された画像データをそのまま出力する。
【００１９】
ＤＣＴ部１３は、減算部１２から出力されたマクロブロック（画像データ（pixel））に対して離散コサイン変換を行い、周波数領域の画像データであるＤＣＴの係数データ（coef）を生成する。ＤＣＴ部１３は、生成した係数データ（coef）を量子化部１４に出力する。
【００２０】
量子化部１４は、入力された係数データ（coef）に対して、量子化係数Ｑを用いて、量子化処理を行う。すなわち、量子化部１４は、入力された係数データ（coef）を量子化係数Ｑにより除算して商を求め、その商を出力する。量子化部１４により量子化されることにより、係数データ（coef）は非可逆圧縮される。量子化係数Ｑが大きければ、出力される符号量は少なくなるので圧縮率が高くなり、反対に、量子化係数Ｑが小さければ、出力される符号量が多くなるので圧縮率が低くなる。
【００２１】
ＶＬＣ部１５は、量子化部１４により量子化されたマクロブロック単位の係数データ（coef）を所定のスキャン方式で読み出し、ランレングス符号化により符号化を行う。それとともに、ＶＬＣ部１５は、動きベクトル及びその他のシステム情報を固定長符号化等をする。ＶＬＣ部１５は、これらのデータをＭＰＥＧ-２方式に従って多重化し、１本のビット列からなる符号化ストリーム（Stream）を生成する。ＶＬＣ部１５は、生成した符号化ストリーム（Stream）を外部に出力する。
【００２２】
量子化係数制御部１６は、量子化部１４の量子化処理で用いる量子化係数Ｑを算出して、量子化部１４に供給する。量子化係数制御部１６は、ＶＬＣ部１５から出力された符号化ストリーム（stream）のビットレート、動き推定部１１で算出されたアクティビティ及びＭＥ残差を参照して、量子化係数Ｑを決定する。量子化係数制御部１６の詳細な処理内容については、後述する。
【００２３】
逆量子化部１７には、量子化部１４から出力された係数データのうち、フレーム間予測の参照画像となり得るフレームのマクロブロックの係数データが入力される。逆量子化部１７は、入力されたデータに対して、量子化した際に用いられた量子化係数により、逆量子化処理を行う。
【００２４】
ＩＤＣＴ部１８は、逆量子化部１７から出力された係数データ（coef）に対して、逆離散コサイン変換を行い、空間領域の画像データ（pixel）を生成する。
【００２５】
加算部１９には、ＩＤＣＴ部１８から出力された画像データ（pixel）が入力される。また、加算部１９には、入力された画像データがフレーム間の相関を利用した符号化がされたマクロブロックである場合、その予測ブロックが動き補償部２１から入力される。加算部１９は、インターマクロブロックに対して処理を行う場合には、入力された画像データに対して予測ブロックを加算する。加算部１９は、イントラマクロブロックに対して処理を行う場合には、入力された画像データをそのまま出力する。加算部１９は、出力した画像データを参照画像としてメモリ２０に格納される。
【００２６】
動き補償部２１は、メモリ２０に格納された参照画像に対して動きベクトルを用いて動き補償を行い、予測ブロックを生成する。なお、動き補償部２１は、イントラマクロブロックが格納されている場合には、動き補償を行わずに画像データをそのまま予測ブロックとして出力する。動き補償部２１は、予測ブロックを減算部１２に供給する。また、予測ブロックのうち、参照画像となる予測ブロックは、加算部１９にも供給される。
【００２７】
以上のようなＭＰＥＧ-２方式のビデオエンコーダ１０では、１つのマクロブロックが入力されると、まず、そのマクロブロックのタイプを判断し、イントラマクロブロックであれば、そのまま入力されたマクロブロックをＤＣＴ部１３に供給し、インターマクロブロックであれば、予測ブロックを生成して、入力されたマクロブロックから予測ブロックを減算して、ＤＣＴ部１３に供給する。
【００２８】
続いて、ビデオエンコーダ１０では、入力されたマクロブロック単位の画素データに対してＤＣＴ部１３でＤＣＴ演算による直交変換を行って周波数領域の係数データとし、その後、量子化部１４で量子化係数Ｑにより量子化処理を行う。ＤＣＴ演算及び量子化がされたマクロブロック単位のデータ（係数データ）は、ＶＬＣ部１５に供給される。
【００２９】
そして、ビデオエンコーダ１０では、ＶＬＣ部１５によって係数データの可変長符号化を行うとともに、符号化ストリームの多重化を行い、符号化ストリームを生成して出力する。
【００３０】
（量子化係数制御部）
つぎに、量子化係数制御部１６の処理内容について説明をする。
【００３１】
量子化係数制御部１６は、量子化部１４の量子化処理で用いる量子化係数Ｑを算出して、量子化部１４に供給する部である。ビデオエンコーダ１０では、量子化係数Ｑにより、出力する符号化ストリーム（stream）のビットレートを制御する。つまり、量子化係数Ｑが大きくなればビットレートが小さくなる方向に制御され、量子化係数Ｑが小さくなればビットレートが大きくなる方向に制御される。
【００３２】
--ＴＭ５について--
量子化係数制御部１６では、ＴＭ５のステップ１、ステップ２及びステップ３を利用して、量子化係数Ｑを算出している。
【００３３】
まず、ＴＭ５のステップ１、ステップ２及びステップ３について説明をする。
【００３４】
ＭＰＥＧ-２の量子化の特徴として、次の２点が挙げられる。
【００３５】
（１）ＭＰＥＧ-２では、ピクチャタイプ（Ｉ，Ｐ，Ｂ）毎に発生符号量が大幅に異なる。また、量子化係数Ｑの変化に応じた発生符号量の変化の割合も、ピクチャタイプ毎に大幅に異なる。
【００３６】
（２）Ｉピクチャ及びＰピクチャの量子化ノイズは、これを参照するＰピクチャ及びＢピクチャに伝搬するが、Ｂピクチャの量子化ノイズは他のピクチャには伝搬しない。従って、全てのピクチャの量子化係数Ｑを均一とすることが必ずしも全体の画質を最適化することにならない。
【００３７】
ＭＰＥＧ-２のＴＭ５では、以上の２つの特徴を利用して、画質劣化をより少なくしながら、最適なビット配分、レート制御及び適応量子化が行えるように、ステップ１→ステップ２→ステップ３という順序で階層的に量子化係数の算出を行うことが規定されている。
【００３８】
ＴＭ５のステップ１では、各ピクチャへのビット配分を行う。具体的には、ステップ１では、ＧＯＰ内の各ピクチャに対する割り当てビット量を、割り当て対象となるピクチャを含めＧＯＰ内でまだ符号化されていないピクチャに対して割り当てられるビット量Ｒを基にして配分する。
【００３９】
ＴＭ５のステップ２では、ステップ１で求められた各ピクチャに対するターゲットビット量に、実際の発生符号量を一致させるために、各ピクチャタイプ毎に独立に設定した３種類の仮想バッファ（ＶＢＶバッファ）を設定し、そのＶＢＶバッファの容量を基に量子化スケールコードＱｊをマクロブロック単位のフィードバック制御で求める。
【００４０】
ＴＭ５のステップ３では、視覚的に劣化の目立ちやすい平坦部でより細かく量子化し、劣化が視覚的に目立ちにくい絵柄の複雑な部分でより粗く量子化するように、ステップ２で求められた量子化スケールコードＱｊを、そのマクロブロックのアクティビティによって変化させ、視覚特性を考慮した量子化スケールコードｍｑｕａｎｔｊを算出する。
【００４１】
--ＴＭ５のステップ３について--
ＴＭ５のステップ３の処理についてさらに説明する。
【００４２】
あるマクロブロックｊのアクティビティの算出には、マクロブロックｊのフレームＤＣＴ符号化モードにおける輝度成分の４つのブロックと、フィールドＤＣＴ符号化モードにおける輝度成分の４つのブロックが用いられる。
【００４３】
まず、ＴＭ５のステップ３では、以上の８つのブロックに対して、式（１１）に示すように、それぞれ分散Ｖａｒｓｂｌｋを求める。
【００４４】
【数１】
2006129067.tif 000003
【００４５】
【数２】
2006129067.tif 000004
【００４６】
式（１１）のＰ（バー）は、式（１２）に示すように、各ブロック（８×８＝６４画素）の平均値である。Ｐｋは、各画素の画素値である。
【００４７】
続いて、ステップ３では、式（１３）に示すように、８つのブロックの各分散のうち最小値を選択し、選択した最小値に１を加える。
【００４８】
【数３】
2006129067.tif 000005
【００４９】
式（１３）で求められた値が、マクロブロックｊのアクティビティａｃｔｊである。式（１３）において、ｍｉｎ（  ）は、最小値を選択する式である。最小値を選択するのは、マクロブロック内の一部分だけでも平坦性が高い部分が存在した場合には、量子化を細かく行うようにするためである。
【００５０】
アクティビティａｃｔｊが求められると、続いて、ＴＭ５のステップ３では、式（１４）に示す演算式に基づき、その値が０．５以上２．０以下の値をとる正規化アクティビティＮａｃｔｊを算出する。
【００５１】
【数４】
2006129067.tif 000006
【００５２】
式（１４）のａｖｇ_ａｃｔは、直前に符号化したピクチャの平均のアクティビティである。すなわち、式（１４）では、アクティビティａｃｔｊが、前のピクチャの平均アクティビティａｖｇ_ａｃｔと同じであれば、１となるように正規化がされている。
【００５３】
最後に、ステップ３では、式（１５）に示すように、ステップ２で求めた量子化スケールコードＱｊに、正規化したアクティビティＮａｃｔｊを乗算し、マクロブロックｊに対する最終的な量子化スケールコードｍｑｕａｎｔｊを求める。
【００５４】
【数５】
2006129067.tif 000007
【００５５】
ＴＭ５では、以上のステップ３で求められた量子化スケールコードｍｑｕａｎｔｊで、ＤＣＴした後の係数データを量子化する。
【００５６】
その結果、図２の領域Ａで示すように視覚的に劣化の目立ちやすい、すなわちアクティビティが小さいマクロブロック（平坦部）で量子化係数を小さくし、図２の領域Ｂに示すように劣化が視覚的に目立ちにくいアクティビティが大きいマクロブロック（絵柄の複雑な部分）で量子化係数を大きくするように、ステップ２で求められた量子化スケールコードを変化させ、このことにより、視覚特性の考慮がされた量子化スケールコードｍｑｕａｎｔｊを算出することができる。
【００５７】
--具体的な量子化フロー--
つぎに、量子化係数制御部１６の具体的な処理手順について、図３のフローチャートを参照して説明をする。
【００５８】
量子化係数制御部１６は、ピクチャ内の最初のマクロブロック（画面の左上のマクロブロック）が入力されると、以下のステップＳ１１から処理を開始する。
【００５９】
まず、ステップＳ１１において、量子化係数制御部１６は、ＴＭ５のステップ１に基づき、そのピクチャに対する符号量の割当を行う。
【００６０】
続いて、ステップＳ１２において、量子化係数制御部１６は、ＴＭ５のステップ２に基づき、量子化対象となっているマクロブロック（以下、対象マクロブロックという。）に対する量子化スケールコードＱｊを算出し、その後、ＴＭ５のステップ３に基づき、対象マクロブロックに対する視覚特性の考慮がされた量子化スケールコードｍｑｕａｎｔｊを算出する。
【００６１】
続いて、ステップＳ１３において、量子化係数制御部１６は、対象マクロブロックが、画面の上端又は左端のマクロブロックであるか否かを判断する。すなわち、量子化係数制御部１６は、図４のＣに示すような画面の上端の行のマクロブロックであるか、又は、図４のＤに示すような画面の左端の列のマクロブロックであるかを判断する。
【００６２】
量子化係数制御部１６は、対象マクロブロックが画面上端又は左端のマクロブロックであれば（ステップＳ１３のＹＥＳ）、ステップＳ１４（動的オブジェクトの境界処理）を行わずにステップＳ１５に進み、対象マクロブロックが画面の上端又は左端のマクロブロックでなければ（ステップＳ１３のＮＯ）、ステップＳ１４（動的オブジェクトの境界処理）に進む。
【００６３】
続いて、ステップＳ１４において、量子化係数制御部１６は、動的オブジェクトの境界処理を行う。動的オブジェクトの境界処理では、対象マクロブロックが、動きのあるオブジェクト画像と平坦な背景画像の境界部に位置するマクロブロックであるか否かを判断し、境界部に位置するマクロブロックであればＴＭ５のステップ３で求めた量子化係数が小さくなるように修正する処理を行う。なお、この動的オブジェクトの境界処理の詳細については後述する。
【００６４】
続いて、ステップＳ１５において、量子化係数制御部１６は、対象マクロブロックが、そのピクチャの最終のマクロブロック（すなわち、画面の右下のマクロブロック）であるか否かを判断する。
【００６５】
量子化係数制御部１６は、対象マクロブロックがそのピクチャの最終のマクロブロックであれば、当該フローを終了し、最終のマクロブロックでなければ、ステップ１２に戻り、次のマクロブロックに対してステップＳ１２〜Ｓ１５の処理を行う。
【００６６】
つぎに、ステップＳ１４の動的オブジェクトの境界処理について、さらに詳細に説明をする。
【００６７】
ステップＳ１４の動的オブジェクトの境界処理では、図５のＥに示すような、例えばスポーツをしている人物等の動きの大きいオブジェクト画像（以下、動的オブジェクトという。）と、例えば空や白い壁等の平坦な背景画像（以下、平坦背景画像）との境界部分のマクロブロックであるか否かの判断をし、境界部分のマクロブロックであれば、ＴＭ５のステップ３で求めた量子化係数を小さくするように調整を行う処理である。
【００６８】
図６に、ステップＳ１４の動的オブジェクトの境界処理の更に詳細なフローチャートを示す。
【００６９】
まず、ステップＳ２１において、量子化係数制御部１６は、ＴＭ５のステップ３の処理で求めたる正規化アクティビティＮａｃｔｊが１より小さいか否かを判断する。正規化アクティビティＮａｃｔｊが１より小さいか否かを判断する理由は、１より小さければ、ＴＭ５のステップ３までの処理で既に量子化係数が小さくされているために、新たに量子化係数を小さくするような修正は不要であるからである。
【００７０】
正規化アクティビティＮａｃｔｊが１より小さい場合には、ステップＳ３１に進む。正規化アクティビティＮａｃｔｊが１より小さくない場合には、続くステップＳ２２に進む。
【００７１】
続いて、ステップＳ２２において、量子化係数制御部１６は、対象マクロブロックのアクティビティと、対象マクロブロックの周囲にあるマクロブロック（以下、周囲マクロブロックという。）とを比較して、対象マクロブロックが、平坦背景画像と、絵柄が複雑なオブジェクト画像との境界部分に位置しているか否かを比較判断する。
【００７２】
比較判断の手法としては、例えば、対象マクロブロックのアクティビティから、周囲マクロブロックのアクティビティを減算し、その減算結果が所定の閾値以上となっていれば、その対象マクロブロックは、平坦背景画像と絵柄が複雑なオブジェクト画像との境界部分に位置していると判断する。
【００７３】
なお、周囲マクロブロックを、対象マクロブロックの８方向（上下左右、左上、右上、左下、右下）の全ての周囲のマクロブロックとし、それぞれの方向について比較判断をしてもよいが、本例では、一般に量子化処理は画面左上のマクロブロックから始まり行方向にラスタスキャンがされて順次処理がされていくので、図７に示すように、既にエンコード処理が終了している上位置及び左位置のマクロブロックのみを周囲マクロブロックとしている。つまり、本例では、対象マクロブロックのアクティビティから左隣のマクロブロックのアクティビティを減算し、その減算結果が所定の閾値以上であるか、又は、対象マクロブロックのアクティビティから上隣のマクロブロックのアクティビティを減算し、その減算結果が所定の閾値以上であるかを判断している。
【００７４】
また、１つのマクロブロックに含まれている４つの輝度ブロック（８×８画素）のうち、境界部分を検出するために利用するアクティビティは、４つの輝度ブロックのうち最も大きい値を比較判断に用いている。その理由としては、ＴＭ５では、対象マクロブロック内の８つのブロックのうちの最小のアクティビティを利用し、マクロブロック内の一部だけでも平坦部分があるかを検出していることで画質を救っている。それに対して、周囲マクロブロックの最大アクティビティ及び対象マクロブロックの最大アクティビティを利用すると、対象マクロブロック内の一部だけでも絵柄が複雑な部分が含まれていることを検出することができる。すなわち、ステップＳ２１では、対象マクロブロックの最大アクティビティから、周囲マクロブロックの最大アクティビティを減算して、その減算結果が所定の閾値以上である場合は、対象マクロブロックが平坦背景画像とオブジェクト画像との境界部分と判断する。
【００７５】
また、上述したステップＳ１２において、対象マクロブロックが画面の上端の行又は左端の列である場合には、当該動的オブジェクトの境界処理を行っていないが、これは、このステップＳ２１において、エンコード処理が完了しているマクロブロックのアクティビティを参照するために、１行目（画面の上端）及び１列目（画面の左端）のマクロブロックでは、周囲マクロブロックのアクティビティが参照できないためである。
【００７６】
量子化係数制御部１６は、当該ステップＳ２２において、対象マクロブロックが平坦背景画像と絵柄が複雑なオブジェクト画像との境界に位置していないと判断した場合には、ステップＳ３１に進む。一方、対象マクロブロックが平坦背景画像と絵柄が複雑なオブジェクト画像との境界に位置していると判断した場合には、続くステップＳ２３に進む。
【００７７】
続いて、ステップＳ２３において、量子化係数制御部１６は、現在符号化しているピクチャが、Ｉピクチャであるか否かを判断する。Ｉピクチャでなければ、つまり、Ｐピクチャ又はＢピクチャであればステップＳ２４に進み、ＩピクチャであればステップＳ３３に進む。
【００７８】
続いて、ステップＳ２４において、量子化係数制御部１６は、対象マクロブロックに含まれているオブジェクト画像が、動きの大きい動的な画像であるか、動きの小さい静的な画像であるかを判断する。すなわち、対象マクロブロックは、既にステップＳ２２で平坦背景画像と絵柄が複雑なオブジェクト画像との境界に位置していると判断されているが、当該絵柄が複雑なオブジェクト画像が、さらに、動きのあるオブジェクト画像であるかを判断している。
【００７９】
具体的な判断手法としては、例えば、対象マクロブロックのＭＥ残差が所定の閾値以上であるか否かを判断する。動いているオブジェクトと平坦背景画像の境界は、動きベクトルが外れやすく、ＭＥ残差が大きくなる傾向がある。逆に、平坦背景画像と絵柄が複雑なオブジェクト画像との境界であっても動きがない場合は、ＭＥ残差が小さくなる。モスキートノイズは、動きのある画像と平坦な部分画像の境界に多く発生するので、ここでは、このような判断を行っている。
【００８０】
なお、ＭＥ残差は、Ｉピクチャでは算出されない。そのため、前段のステップＳ２３において、Ｐピクチャ及びＢピクチャを選択して、Ｐピクチャ及びＢピクチャの場合にのみ、当該動きの判断処理を行っている。
【００８１】
量子化係数制御部１６は、当該ステップＳ２１において、対象マクロブロックが動きの大きなオブジェクト画像の境界部分に位置していない判断した場合には、ステップＳ３１に進む。一方、対象マクロブロックが動きの大きなオブジェクト画像の境界部分に位置していると判断した場合には、ステップＳ３２に進む。
【００８２】
ステップＳ３１では、ＴＭ５のステップ３に基づき算出された量子化スケールコードｍｑｕａｎｔｊを、そのまま量子化係数Ｑとして用いると決定する処理を行う。
【００８３】
すなわち、正規化アクティビティＮａｃｔｊが１より小さいと判断した場合（ステップＳ２１のＹＥＳ）、対象マクロブロックが平坦背景画像と絵柄が複雑なオブジェクト画像との境界部分に位置していないと判断した場合（ステップ２２のＮＯ）、並びに、絵柄が複雑なオブジェクトの動きが大きくないと判断した場合（ステップ２４のＮＯ）には、ＴＭ５のステップ３で求められた量子化スケールコードｍｑｕａｎｔｊをそのまま量子化係数Ｑとして用いる。すなわち、量子化係数をより小さくする処理は行わない。
【００８４】
なお、正規化アクティビティＮａｃｔｊが１より小さいということは、そのマクロブロックが平坦部に位置していると判断されているので、そのままＴＭ５のステップ３で求めた量子化係数を用いている。
【００８５】
ステップＳ３２では、ＴＭ５のステップ２に基づき算出された量子化スケールコードＱｊを、量子化係数Ｑとして用いると決定する。つまり、ステップＳ３２では、ＴＭ５のステップ３の処理は用いずに量子化を行う。
【００８６】
すなわち、正規化アクティビティＮａｃｔｊが１以上である場合（ステップＳ２１のＮＯ）であって、且つ、対象マクロブロックが絵柄が複雑なオブジェクト画像と平坦背景画像との境界に位置しており（ステップＳ２２のＹＥＳ）、且つ、その絵柄が複雑なオブジェクトが大きく動いている（ステップＳ２４のＹＥＳ）場合には、ＴＭ５のステップ３で求められた量子化スケールコードｍｑｕａｎｔｊよりも小さい値である、ＴＭ５のステップ２に基づき算出された量子化スケールコードＱｊを、量子化係数Ｑとする。
【００８７】
このように設定することにより、量子化係数ＱがＴＭ５の場合よりも小さい値となるので、モスキートノイズが発生しづらくなる。
【００８８】
ステップＳ３３では、正規化アクティビティＮａｃｔｊの算出演算式を、下記式（１６）に変更し、続いて、上記式（１５）に基づき量子化スケールコードｍｑｕａｎｔｊを求め、量子化係数Ｑをこの量子化スケールコードｍｑｕａｎｔｊに設定する。
【００８９】
【数６】
2006129067.tif 000008
【００９０】
ＴＭ５で用いられる式（１４）の正規化アクティビティでは、０．５以上２以下の範囲をとるＮａｃｔとなるが、式（１６）では２／３以上３／２以下という小さい範囲をとる正規化アクティビティとなる。このように小さい範囲を取ることによって、マクロブロック毎の量子化係数の差分値が小さくなり、量子化係数Ｑのばらつきが小さくなり、モスキートノイズの発生防ぐことが可能になる。
【００９１】
ステップＳ３１、ステップＳ３２又はステップＳ３３の処理を終えると、量子化スケール制御部１６は、続くステップＳ３４の処理を行う。
【００９２】
ステップＳ３４では、決定した量子化係数Ｑを、量子化部１４に送信する。
【００９３】
量子化スケール制御部１６では、以上のように処理が行われることによって、動いている絵柄が複雑なオブジェクト画像の周囲に発生するモスキートノイズを軽減することができる。さらに、絵柄が複雑なオブジェクト画像の境界部分以外では、ＴＭ５のステップ３本来の効果を維持することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明が適用されたＭＰＥＧ-２方式のビデオエンコーダのブロック構成図である。
【図２】視覚的に劣化の目立ちやすい、すなわちアクティビティが小さい画像部分（Ａ）と、劣化が視覚的に目立ちにくいアクティビティが大きい画像部分（Ｂ）を示す図である。
【図３】量子化係数制御処理の処理内容を示すフローチャートである。
【図４】画面の上端の行のマクロブロック（Ｃ）、及び、画面の左端の列のマクロブロック（Ｄ）を示す図である。
【図５】平坦な背景画像と、動きのある絵柄が複雑なオブジェクト画像との境界に位置するマクロブロック（Ｅ）を示す図である。
【図６】動的オブジェクトの境界処理の処理内容を示すフローチャートである。
【図７】周囲マクロブロックを示す図である。
【符号の説明】
【００９５】
１０  ビデオエンコーダ、  １１  動き推定部、  １２  減算部、  １３  ＤＣＴ部、  １４  量子化部、  １５  ＶＬＣ部、  １６  量子化係数制御部、  １７  逆量子化部、  １８  ＩＤＣＴ部、  １９  加算部、  ２０  メモリ、  ２１  動き補償部
【図１】
2006129067.tif 000009
【図２】
2006129067.tif 000010
【図３】
2006129067.tif 000011
【図４】
2006129067.tif 000012
【図５】
2006129067.tif 000013
【図６】
2006129067.tif 000014
【図７】
2006129067.tif 000015