(57)【要約】【課題】量子化ノイズを低減すること。【解決手段】量子化制御回路１３は、所定サイズのピクチャを分割したマクロブロック毎に、マクロブロックに含まれ隣接する画素値の差に応じて非線形検出値を算出し、その非線形検出値に応じてマクロブロックを量子化する量子化部１２ｂの量子化ステップを制御する量子化パラメータを変更する【選択図】図１
2011135269.tif 000002
【特許請求の範囲】
【請求項１】
所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する、ことを特徴とする量子化制御回路。
【請求項２】
前記サブブロック毎に、前記サブブロック内の画素列における画素値の差に応じて非線形検出値をカウントアップ算出する非線形値算出部と、
前記非線形検出値に基づいて前記量子化ステップを制御する量子化パラメータを算出するパラメータ算出部と、
を有することを特徴とする請求項１に記載の量子化制御回路。
【請求項３】
前記非線形検出値を累積加算する第１の累積加算部と、
前記第１の累積加算部の累積値と、前記ブロックのサイズに基づいて、当該ブロックにおける非線形検出値の平均値を算出する平均値算出部と、
を含み、
前記パラメータ算出部は、前記平均値と前記非線形検出値とに基づいて前記量子化ステップを制御する量子化パラメータを算出する、
ことを特徴とする請求項２に記載の量子化制御回路。
【請求項４】
前記非線形検出値に応じて短波長のブロックを検出し、その検出結果に基づいて、前記ブロックに対して量子化ステップを変更するか否かを示すための判定フラグを設定する判定部を有し、
前記判定部の判定結果に応じて、算出値又は所定値を量子化パラメータとして出力する、
ことを特徴とする請求項１〜３のうちの何れか一項に記載の量子化制御回路。
【請求項５】
所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する、ことを特徴とする量子化パラメータ変更方法。
【請求項６】
所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する量子化制御回路と、
前記量子化パラメータに応じて量子化ステップを設定し、該量子化ステップにて画像データを量子化し、量子化後のデータを符号データに変換する符号化回路と、
を有する符号化回路。
【発明の詳細な説明】
【技術分野】
【０００１】
量子化制御回路、量子化パラメータ変更方法、及び符号化回路に関する。
【背景技術】
【０００２】
従来、画像信号の符号化に、離散コサイン変換（ＤＣＴ:Discrete Cosine Transform）が用いられている。このような装置は、入力画像信号に対してブロック毎にＤＣＴ演算を行い、演算結果の値を量子化し、量子化後の値を符号化する。
【０００３】
上記のＤＣＴ演算を用いた画像圧縮方法では、色の変化が少ない背景に例えば黒い線等のようにシャープな輪郭が表現された部分では、視覚的に、蚊の大群のような細かいもやもやとしたノイズ、所謂モスキートノイズ（Mosquito Noise）が発生する。これは、ＤＣＴ演算により、高周波成分の情報が減少することに起因する。
【０００４】
したがって、表示された画像の品質低下を抑制するため、画像データを復号する際に、フィルタを用いてモスキートノイズを除去する方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２９５６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、復号時にノイズを除去する方法では、この方法を用いていない装置では表示画像の品質低下が発生する。このため、装置にかかわらず画像の品質低下を抑制することが要求されている。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する。
【発明の効果】
【０００８】
本発明の一観点によれば、量子化ノイズが低減される。
【図面の簡単な説明】
【０００９】
【図１】一実施形態の符号化装置のブロック図である。
【図２】マクロブロックの説明図である。
【図３】量子化制御回路のブロック図である。
【図４】（ａ）（ｂ）は非線形検出処理の説明図である。
【図５】非線形検出処理の説明図である。
【図６】非線形検出処理の説明図である。
【図７】符号化処理のフローチャートである。
【図８】（ａ）（ｂ）は非線形検出処理の説明図である。
【発明を実施するための形態】
【００１０】
以下、一実施形態を図１〜図７に従って説明する。
図１に示すように、符号化装置は、画像メモリ１１に格納された画像データを符号化する符号化回路１２を含む。
【００１１】
画像メモリ１１は、複数枚の画面の画像データ（画素値）を記憶する容量のメモリである。画像メモリ１１には、画像信号Ｓｉに応じた画像データを記憶する。画像メモリ１１に記憶された画像データは、マクロブロック単位で読み出される。
【００１２】
符号化回路１２は、直交変換部１２ａ、量子化部１２ｂ、符号化部１２ｃを含む。直交変換部１２ａは、画像メモリ１１から読み出されたマクロブロック単位の画像データを離散コサイン変換（ＤＣＴ:Discrete Cosine Transform）し、変換後のデータ（ＤＣＴ係数値）を出力する。量子化部１２ｂは、直交変換部１２ａの出力データを量子化し、量子化後のデータ（量子化係数値）を出力する。符号化部１２ｃは、量子化部１２ｂの出力データを可変長符号化変換し、変換後のデータ（符号化データＳｏ）を出力する。
【００１３】
また、符号化装置は、量子化制御回路１３を含む。量子化制御回路１３には、画像信号Ｓｉが入力される。量子化制御回路１３は、画像信号Ｓｉに基づく１画面（１ピクチャ）分の画像データに基づいて、量子化部１２ｂにおける量子化ステップを制御する制御情報を生成する。そして、量子化制御回路１３は、その制御情報を出力する。
【００１４】
量子化部１２ｂは、量子化制御回路１３にて生成された制御情報に応じた量子化ステップでＤＣＴ係数値を量子化したデータを生成する。
詳しくは、量子化制御回路１３は、１つのピクチャに含まれるエッジを検出し、その検出結果に応じて制御情報を生成する。エッジは、複数の画素から構成される画素列において、隣接する２つの画素の画素値の差が大きい部分、即ち画素列において、画素値が線形に変化しない非線形な部分である。このような画素値の非線形は、色の変化が少ない背景に例えば黒い線等のようにシャープな輪郭が表現された部分で発生する。そして、このような輪郭が表現された部分では、量子化ステップが粗いと量子化ノイズ（モスキートノイズ）が発生する。
【００１５】
量子化制御回路１３は、１つのピクチャに含まれるエッジを検出し、その検出結果に応じて、輪郭が含まれるピクチャに対する量子化ステップを細かくするように、制御情報を生成する。同じ画像データを用いた場合、量子化部１２ｂにおいて、細かい量子化ステップにて量子化されたデータは、粗い量子化ステップにて量子化されたデータに比べて、高周波成分がより多く保持されている。従って、量子化ステップを細かくすることにより、画質の劣化を抑制することができる。
【００１６】
本実施形態では、図２に示すように、１６×１６個の画素を１つのマクロブロックＭＢとする。個々の画素を示す場合、二次元配列された画素の配列方向のうち、１つの方向（図において左右方向）をＸ方向とし、Ｘ方向と異なる方向（図において上下方向）をＹ方向とし、各方向について左上から右下に向って０から１５の番号を付し、それぞれの方向における番号を用いて画素ａx,yとする。例えば、図面左上の画素は、画素ａ0,0とし、図面右上の画素は、画素ａ15,0とし、図面右下の画素は、画素ａ15,15とする。
【００１７】
図３に示すように、量子化制御回路１３は設定レジスタ２１を有している。設定レジスタ２１には、量子化制御回路１３に含まれる部に供給される各種情報が記憶されている。これらの情報は、例えば図示しないＣＰＵにより設定される。従って、設定レジスタ２１は、符号化装置と外部装置（ＣＰＵ）とを接続するインタフェースの機能を有している、又はインタフェースが設定レジスタを含む構成としてもよい。
【００１８】
設定レジスタ２１に記憶された情報は、しきい値情報、サイズ情報、パラメータセットを含む。
しきい値情報は、垂直用しきい値Ｖｔｈ、水平用しきい値Ｈｔｈ、斜め用しきい値ＶＨｔｈ、マクロブロック判定用しきい値ＭＢｔｈ、ピクチャ判定用しきい値Ｑｔｈを含む。しきい値Ｖｔｈ，Ｈｔｈ，ＶＨｔｈは、マクロブロックの非線形性を判定するために用いられる。しきい値ＭＢｔｈは、非線形値に基づいてマクロブロックの短波長性を判定するために用いられる。しきい値Ｑｔｈは、１つのピクチャに含まれるマクロブロックの短波長性に基づいて、当該ピクチャに対して量子化ステップの制御を行うか否かを判定するために用いられる。垂直用しきい値Ｖｔｈ、水平用しきい値Ｈｔｈ、斜め用しきい値ＶＨｔｈは、非線形値算出部２２に供給される。マクロブロック判定用しきい値ＭＢｔｈは、ＭＢ短波長検出部３０に供給される。ピクチャ判定用しきい値Ｑｔｈは、細分化判定部３２に供給される。
【００１９】
サイズ情報は、画面サイズ設定値Ｓｚ、マクロブロック数Ｐを含む。画面サイズ設定値Ｓｚは、入力される画像信号Ｓｉに従って符号化回路１２及び量子化制御回路１３の供給される１つのピクチャに含まれる画素数、つまり画像信号Ｓｉを出力する撮像素子（図示略）の画素数に応じた設定値である。画面サイズ設定値Ｓｚは、画面終端検出部２５に供給される。マクロブロック数Ｐは、１つのピクチャに含まれるマクロブロックの数である。マクロブロックＭＢは、１６×１６個の画素ａを含む。従って、マクロブロック数Ｓｐは、画面サイズ設定値Ｓｚと、マクロブロックに含める画素ａの数に基づいて設定される。マクロブロック数Ｐは、平均値算出部２７、細分化判定部３２に供給される。
【００２０】
パラメータセットＰｓは、パラメータQpBdOffsety 、定数ｋ、等を含む。パラメータQpBdOffsetyは、１画素当りのビット幅に対応するパラメータであり、QpBdOffsety＝6×bit＿depth＿luma＿minus8 により算出される。なお、bit＿depth＿luma＿minus8は、１画素当りのビット幅から「８」を引いた値である。パラメータセットＰｓは、差分値算出部３３に供給される。
【００２１】
非線形値算出部２２は、マクロブロック単位の画素値としきい値Ｖｔｈ，Ｈｔｈ，ＶＨｔｈに基づいて、マクロブロックに対する非線形検出値Ｇを算出する。非線形検出値Ｇは、マクロブロックに含まれる画素の値（以下、単に画素値という）が線形的に変化しないポイント、即ち非線形なポイントの数に対応する。つまり、非線形値算出部２２は、非線形ポイントをカウントし、そのカウント値を当該マクロブロックＭＢに対応する非線形検出値Ｇとして出力する。
【００２２】
詳述すると、非線形値算出部２２は、マクロブロックＭＢに含まれる各画素について、その画素を含む画素列が非線形ポイントを含むか否かを判定する。画素列は、二次元配列された画素ａ（図２参照）について、所定の方向（縦方向（Ｙ軸方向），横方向（Ｘ軸方向），斜め方向）に連続する３つの画素を含む。３つの画素の画素値を、画素の配列方向に従って、第１の画素値、第２の画素値、第３の画素値とする。
【００２３】
非線形値算出部２２は、画素列に含まれる３つの画素値のうち、中央の画素値（第２の画素値）と、その画素値に隣接する２つの画素値の内の一方（第１の画素値）に基づいて線形予測値を算出する。つまり、第１の画素値と第２の画素値に基づいて、第２の画素値から線形的に変化した場合の画素値（線形予測値）を算出する。詳しくは、第１の画素値と第２の画素値の差分を算出し、その差分値を第２の画素値に加算して線形予測値を算出する。第２の画素値に隣接する画素値のうち、第１の画素値と異なる方向に隣接する画素値（第３の画素値）は、この画素列の画素値が線形的に変化していれば、算出した線形予測値に基づく予測範囲内の値となる。この予測範囲はしきい値Ｖｔｈ，Ｈｔｈ，ＶＨｔｈにより設定される。従って、非線形値算出部２２は、線形予測値と第３の画素値との差分の絶対値を算出し、この絶対値がしきい値より小さい場合には、第１〜第３の画素値が線形であると判定する。一方、非線形値算出部２２は、絶対値がしきい値より大きい場合には、第１〜第３の画素値が非線形であると判定し、この画素列に非線形ポイントが含まれるとして、カウント値をカウントアップする。
【００２４】
画素値の第１の例を図４（ａ）に示す。画素列に含まれ横方向に隣接する３つの画素Ａ，Ｂ，Ｃの画素値を、「５」，「２０」，「３」とする。非線形値算出部２２は、画素Ａ，Ｂの画素値に基づいて線形予測値を算出する。図４（ｂ）は、各画素Ａ〜Ｃの画素値と線形予測値Ｅが棒グラフとして示す。この時、線形予測値Ｅは「３５」となる。非線形値算出部２２は、この線形予測値Ｅと画素値Ｃとの差分を算出し、この差分の絶対値としきい値（例えば水平用しきい値Ｈｔｈ）とを比較する。例えば、水平用しきい値Ｈｔｈを「５」とすると、この場合、差分値（絶対値）は「３２」であり、しきい値Ｈｔｈ（＝５）よりも大きい。従って、非線形値算出部２２は、この画素列に非線形ポイントが含まれると判定し、カウント値をカウントアップする。
【００２５】
画素値の第２の例を図５に示す。今、非線形値算出部２２は、画素列を斜めに隣接する３つの画素ａ0,0，ａ1,1，ａ2,2とする。これらの画素値は図に示す通りであり、線形予測値は「０」となる。このとき、斜め用しきい値ＶＨｔｈを「５」とすると、線形予測値と画素ａ2,2の画素値の差分は、しきい値ＶＨｔｈより大きい。従って、非線形値算出部２２は、この画素列に非線形ポイントが含まれると判定し、カウント値をカウントアップする。次に、画素列を画素ａ1,1，ａ2,2，ａ3,3とした場合、線形予測値は「１９７」となり、この線形予測値と画素ａ3,3の画素値の差分は、しきい値ＶＨｔｈより小さい。従って、非線形値算出部２２は、この画素列に非線形ポイントが含まれないと判定し、カウント値を保持する。
【００２６】
そして、非線形値算出部２２は、上記の判定を、各マクロブロックについて、マクロブロックに含まれる全ての画素値ついて行う。即ち、非線形値算出部２２は、次式に従って、マクロブロックに対する非線形検出値Ｇを算出する。
【００２７】
【数１】
2011135269.tif 000003
つまり、非線形値算出部２２は、線形予測値がしきい値越える画素列の判定値を「１」とし、線形予測値がしきい値以下の画素列の判定値を「０」とする。そして、非線形値算出部２２は、マクロブロックＭＢについて、画素列の判定値を累積加算し、その累積的な加算結果を非線形検出値Ｇとして出力する。
【００２８】
非線形検出値Ｇは、隣接する画素値の差がしきい値以上である非線形ポイントの数に対応し、マクロブロックにおける画素値変化の度合いを示す。つまり、大きな非線形検出値Ｇのマクロブロックは、小さな非線形検出値Ｇのマクロブロックに比べ、多くのエッジを含む、つまり直交変換したデータに高周波成分が多いことを示す。従って、非線形検出値Ｇを算出することは、マクロブロック単位で高周波度（画素値変化の激しさ）、つまり短波長度を算出していることと等しい。
【００２９】
尚、上記の式（１）において、右辺第１項は、図２に示すマクロブロックに含まれる画素ａについて、縦方向に隣接する３つの画素を含む画素列に対する判定及びカウントを示す。同様に、右辺第２項は、横方向に隣接する３つの画素を含む画素列に対する判定及びカウントを示す。また、右辺第３項は、図２に示すマクロブロックに含まれる画素ａについて、左上から右下に向う斜め方向に隣接する３つの画素を含む画素列に対する判定及びカウントを示し、右辺第４項は、右上から左下に向う斜め方向に隣接する３つの画素を含む画素列に対する判定及びカウントを示す。
【００３０】
このように、非線形値算出部２２は、４つの方向に隣接する３つの画素値により非線形検出値Ｇを算出することにより、マクロブロックＭＢに含まれる任意の方向に沿って延びるエッジを検出することができる。
【００３１】
画面先頭検出部２３は、画像信号Ｓｉに基づいて、各ピクチャにおいて最初の画素データが入力されるタイミング、即ち画素値の入力開始タイミングを検出し、先頭検出信号Ｓｓとクリア信号Ｓｃｌを出力する。入力開始タイミングは、信号読み出しパルス、垂直同期信号、転送開始パルス信号、等により検出される。先頭検出信号Ｓｓは書き込み制御部２４に供給され、クリア信号Ｓｃは累積加算部２６に供給される。
【００３２】
書き込み制御部２４は、画面先頭検出部２３から出力される先頭検出信号Ｓｓに応答して、非線形値算出部２２から出力される非線形検出値Ｇを、その非線形検出値Ｇを算出したマクロブロックＭＢに対応するメモリ２８の領域（メモリアドレス）に書き込む制御を行う。例えば、書き込み制御部２４は、非線形値算出部２２から非線形検出値Ｇが出力される毎に、マクロブロックに対応するアドレス信号を含む書き込み制御信号ＷＣをメモリ２８に供給する。メモリ２８は、その書き込み制御信号ＷＣに応答し、制御信号ＷＣに含まれるアドレス信号により指定されるメモリアドレスに、非線形値算出部２２から出力される非線形検出値Ｇを記憶する。
【００３３】
画面終端検出部２５は、画像信号Ｓｉに基づいて、各ピクチャにおいて最後の画素データが入力されるタイミング、即ち画素値の入力終了タイミングを検出し、終端検出信号Ｓｅを出力する。入力終了タイミングは、画素値のカウント結果、水平同期信号のカウント結果、転送終了パルス信号、等により検出される。終端検出信号Ｓｅは、読み出し制御部２９、ピクチャ平均値算出部２７、細分化判定部３２に供給される。
【００３４】
累積加算部２６は、非線形値算出部２２から出力される非線形検出値Ｇを累積加算し、その加算結果の値を出力する。つまり、累積加算部２６は、値を記憶するレジスタを有し、そのレジスタに記憶した記憶値に非線形値算出部２２から出力される非線形検出値Ｇを加算し、記憶値（＝累積値）を出力する。また、累積加算部２６は、画面先頭検出部２３から出力されるクリア信号Ｓｃに応答して記憶値をクリア（＝０）する。クリア信号Ｓｃは、ピクチャの先頭に応じて画面先頭検出部２３から出力される。従って、累積加算値は、ピクチャの先頭でクリアされる。従って、累積加算部２６は、非線形値算出部２２から出力される非線形検出値Ｇを、ピクチャ単位で累積加算する。
【００３５】
平均値算出部２７は、累積加算部２６から出力される累積値ＳＧを１つのピクチャに含まれるマクロブロックの数（総マクロブロック数）Ｐで除算し、その演算結果を出力する。累積値は、１つのピクチャに含まれるマクロブロックに対応する非線形検出値Ｇの合計値であり、その合計値を総マクロブロック数で除算した結果は、１つのピクチャに含まれる全てのマクロブロックにおける非線形検出値Ｇの平均値（EdgeAverage ）である。この平均値ＥＡは、差分値算出部３３に供給される。
【００３６】
読み出し制御部２９は、終端検出信号Ｓｅに応答して、メモリ２８に記憶された非線形検出値Ｇを読み出すための読み出し制御信号ＲＣを生成する。終端検出信号Ｓｅは、１つのピクチャの最終画素のデータに対応して出力される。読み出し制御部２９は、例えば要望か回路１２において処理されるマクロブロックＭＢに対応する非線形検出値Ｇを読み出すようにアドレス信号を含む読み出し制御信号ＲＣを生成する。従って、メモリ２８には１つのピクチャに対応する数の非線形検出値Ｇが記憶され、それらの非線形検出値Ｇが読み出し制御部２９によって順次読み出される。メモリ２８から出力される非線形検出値ＲＧは、差分値算出部３３に供給される。尚、各マクロブロックＭＢの非線形検出値ＲＧを区別する場合に、マクロブロックＭＢの番号ｍｂを付した符号Ｇｍｂを用いるものとする。
【００３７】
短波長検出部３０は、非線形値算出部２２から出力される非線形検出値Ｇｍｂと、設定レジスタ２１から供給されるマクロブロック判定用しきい値ＭＢｔｈとを比較し、その比較結果に応じた検出値ＭＭを出力する。短波長検出部３０は、非線形検出値Ｇｍｂがしきい値ＭＢｔｈより大きい場合に第１の所定値（例えば「１」）の検出値ＭＭを出力し、非線形検出値Ｇｍｂがしきい値ＭＢｔｈ以下の場合に第２の所定値（例えば「０」）の検出値ＭＭを出力する。
【００３８】
マクロブロック判定用しきい値ＭＢｔｈは、マクロブロックにおける非線形ポイントのカウント値に対するしきい値であり、マクロブロックに対応する画像に含まれる周波数成分について、量子化ステップの変更が必要か否かを判定するための設定値である。短波長成分は、高周波成分であり、非線形ポイントによって生じる。従って、しきい値ＭＢｔｈは、多くの短波長成分を含むマクロブロックについて量子化ステップの変更が必要であると判定するように設定される。従って、検出値ＭＭが第１の所定値「１」の場合、当該検出値ＭＭに対応するマクロブロックＭＢについて、量子化ステップの変更が必要であることを示し、検出値ＭＭが第２の所定値「０」の場合に量子化ステップの変更が必要ないことを示す。
【００３９】
累積加算部３１は、短波長検出部３０から出力される検出値ＭＭを累積加算し、その加算結果の累積値Ｈを出力する。つまり、累積加算部３１は、値を記憶するレジスタを有し、そのレジスタに記憶した記憶値に、短波長検出部３０から出力される検出値ＭＭを加算し、その加算結果をレジスタに記憶する。そして、累積加算部３１は、レジスタに記憶した累積値Ｈを出力する。この累積値Ｈは、細分化判定部３２に供給される。
【００４０】
尚、累積加算部３１は、画面先頭検出部２３から出力されるクリア信号Ｓｃに応答して記憶値をクリア（＝０）する。従って、累積加算部３１は、短波長検出部３０から出力される検出値ＭＭを、ピクチャ単位で累積加算する。
【００４１】
即ち、短波長検出部３０と累積加算部３１は、ピクチャ単位、つまり１つのピクチャに含まれるマクロブロックＭＢのうち、量子化ステップの変更が必要なマクロブロックＭＢの数を検出する。つまり、短波長検出部３０と累積加算部３１は、次式に対応する処理を実行し、累積値Ｈを出力する。
【００４２】
【数２】
2011135269.tif 000004
細分化判定部３２は、累積加算部３１から供給される累積値Ｈと、設定レジスタ２１から供給されるピクチャ判定用しきい値Ｑｔｈ，総マクロブロック数Ｐに基づいて、量子化ステップの変更に対する判定フラグＦＩを設定する。この判定フラグＦＩは、差分値算出部３３に供給される。
【００４３】
ピクチャ判定用しきい値Ｑｔｈは、１つのピクチャに対して量子化ステップの変更を行うか否かを判定するためのしきい値であり、１つのピクチャに含まれる総マクロブロック数Ｐに対する量子化ステップが必要と判定されたマクロブロック数の比率として設定されている。これにより、ピクチャサイズの異なる画像についても、同じしきい値Ｑｔｈを用いることができる。
【００４４】
即ち、細分化判定部３２は、累積加算部３１から供給される累積値Ｈを設定レジスタ２１から供給される総マクロブロック数Ｐで除算し、その演算結果と設定レジスタ２１から供給されるしきい値Ｑｔｈを比較する。そして、細分化判定部３２は、演算結果がしきい値Ｑｔｈより大きい場合に、当該ピクチャに対して量子化ステップの変更が必要と判定し、その旨を示す値（例えば、「１」、）の判定フラグＦＩを出力する。一方、細分化判定部３２は、演算結果がしきい値Ｑｔｈ以下の場合に、当該ピクチャに対して量子化ステップの変更が必要ないと判定し、その旨を示す値（例えば、「０」、）の判定フラグＦＩを出力する。
【００４５】
即ち、図６に示すように、１つのピクチャＩｐは、量子化ステップの変更を必要とする第１のマクロブロックＭＢａと、量子化ステップの変更を必要とする第２のマクロブロックＭＢｂを含む。
【００４６】
ピクチャＩｐに対する第２のマクロブロックＭＢｂの比率が小さい場合、その第２のマクロブロックＭＢｂに発生する量子化ノイズは、ピクチャＩｐ全体に対して目立ち難い。つまり、視覚的に、表示された画像の品質低下は少ない。一方、ピクチャＩｐに対する第２のマクロブロックＭＢｂの比率が大きい場合、その第２のマクロブロックＭＢｂに発生する量子化ノイズは、ピクチャＩｐ全体に対して目立ち易い。つまり、視覚的に、表示された画像の品質が低下する。つまり、細分化判定部３２は、量子化ノイズが目立ち易いか否かにより、判定フラグＦＩを設定するということもできる。この場合、ピクチャＩｐに対する量子化ノイズの目立ち易いマクロブロックＭＢの比率によりしきい値Ｑｔｈが設定されるとすることもできる。
【００４７】
差分値算出部３３は、細分化判定部３２から供給されるフラグＦＩに基づいて、量子化ステップの変更が必要な場合に、平均値算出部２７から供給される平均値ＥＡと、メモリ２８から読み出された非線形検出値Ｇと、設定レジスタ２１から供給されるパラメータセットＰｓに基づいて、次式により、差分値mb＿qp＿delta （以下、差分値ＭＤとする）を算出する。一方、差分値算出部３３は、フラグＦＩに基づいて、量子化ステップの変更が必要ない場合に、演算処理を行うことなく値が「０」の差分値ＭＤを出力する。
【００４８】
【数３】
2011135269.tif 000005
上記式において、「Ｃｌｉｐ３」は、値を設定された範囲内の値に制限する処理を示す。例えば、「Ｒ＝Ｃｌｐｉ３（ｘ、ｙ、ｚ）」は、ｘが範囲の下限値を、ｙが範囲の上限値を、ｚが対象の値（演算結果）を、Ｒが処理結果を示す。値ｚが下限値以下の場合には処理結果Ｒ＝ｘとし、値ｚが上限値ｙ以上の場合には処理結果Ｒ＝ｙとし、値ｚが下限値ｘと上限値ｙとの間の値の場合には処理結果Ｒ＝ｚとする。
【００４９】
差分値ＭＤは、符号化回路１２の量子化部１２ｂ（図１参照）において用いられる量子化パラメータＱＰに対応する値である。さらに詳しくは、差分値ＭＤは、量子化部１２ｂにおいて処理されるマクロブロックの量子化パラメータＱＰと、その直前に処理されたマクロブロックの量子化パラメータＱＰの差分値である。量子化パラメータＱＰ（Quantization Parameter）は量子化ステップと対応する。例えば、Ｈ．２６４／ＡＶＣ符号化規格では、量子化パラメータＱＰと量子化ステップの対数が比例する。従って、差分値ＭＤの値を変更することは、量子化パラメータＱＰを変更すること、即ち量子化ステップを変更することである。そして、差分値ＭＤが「０」の場合、直前のマクロブロックに対する量子化ステップが維持され、差分値ＭＤが「０」以外の場合、量子化ステップが変更される。
【００５０】
上記したように、差分値ＭＤは、１つのピクチャにおける非線形検出値Ｇの平均値ＥＡと、各マクロブロックの非線形検出値Ｇに基づいて算出される。従って、量子化制御回路１３は、マクロブロックの非線形検出値Ｇに応じて、そのマクロブロックに対する量子化ステップを制御する。また、量子化制御回路１３は、１つのピクチャに含まれる非線形なマクロブロックの数に応じて、量子化ステップの制御／非制御を判定する。
【００５１】
各マクロブロックの非線形検出値Ｇを平均値ＥＡから減算することは、非線形検出値Ｇと平均値ＥＡから算出する差分値ＭＤを、上記設定範囲内において、非線形検出値Ｇと反比例するように生成することである。これにより、非線形検出値Ｇが大きいほど、差分値ＭＤが小さくなり、量子化ステップが細かくなる。即ち、非線形ポイントが多いマクロブロックＭＢ、つまり短波長性（高周波性）の高いマクロブロックＭＢほど量子化ステップを細かくする。
【００５２】
差分値ＭＤは、非線形検出値Ｇが平均値ＥＡと等しいときにゼロ（０）になり、量子化部１２ｂにおいて量子化ステップは変更されない。そして、非線形検出値Ｇが平均値ＥＡより小さいとき、差分値ＭＤは「０」より大きな値となり、量子化部１２ｂにおける量子化ステップは、平均値ＥＡと等しい非線形検出値Ｇによる量子化ステップよりも粗くなる。
【００５３】
量子化ステップを細かくすることは、可変長符号化変換により生成された符号データのデータ量を多くし、量子化ステップを粗くすることは、可変長符号化変換により生成された符号データのデータ量を少なくする。従って、量子化ステップを粗くすることにより、可変長符号化変換により生成された符号データの量の増加を抑制することができる。
【００５４】
次に、上記のように構成された符号化装置の動作を説明する。
図７に示すステップ５１〜６７は、符号化装置が実行する処理を示す。そして、ステップ５１〜５９は図１に示す量子化制御回路１３が実行する処理を示し、ステップ６０〜６７は図１に示す符号化回路１２が実行する処理を示す。従って、各ステップに対応する回路の動作として説明する。
【００５５】
ステップ５１において、量子化制御回路１３は、入力画像の受信を開始を検出すると、非線形検出値Ｇに対する累積値ＳＧと、短波長検出値ＭＭに対する累積値Ｈをクリアする。
【００５６】
ステップ５２において、量子化制御回路１３は、入力画像のマクロブロックＭＢ毎に、非線形ポイントをカウントし、そのカウント値を非線形検出値Ｇとする。そして、量子化制御回路１３は、非線形検出値Ｇを累積加算し、加算結果を累積値ＳＧとする。また、量子化制御回路１３は、非線形検出値Ｇとしきい値ＭＢｔｈとを比較してマクロブロックＭＢの短波長性を検出し、その検出値ＭＭを累積加算し、加算結果を累積値Ｈとする。
【００５７】
そして、ステップ５３において、量子化制御回路１３は、算出した非線形検出値Ｇを、メモリ２８のマクロブロックＭＢに対応する領域に格納する。
ステップ５４において、量子化制御回路１３は、１ピクチャ分の入力画像の受信を終了したか否かを判断し、受信が終了していない場合にステップ５２に移行し、受信が終了した場合に次のステップに移行する。
【００５８】
ステップ５５において、量子化制御回路１３は、１つのピクチャに対する累積値Ｈと総マクロブロック数Ｐに基づいて、１つのピクチャにおいて短波長と判定されたマクロブロックの比率を算出し、その比率値としきい値Ｑｔｈとを比較して、その比較結果に応じて判定フラグＦＩを設定する。つまり、量子化制御回路１３は、１つのピクチャに対する量子化ステップ変更の要否を判定し、判定フラグＦＩを設定する。
【００５９】
ステップ５６において、量子化制御回路１３は、判定フラグＦＩに基づいて、その判定フラグが眞（＝ｔｒｕｅ：１）の場合に次のステップ５７に移行し、判定フラグＦＩが偽（＝ｆａｌｓｅ：０）の場合にステップ６０に移行する。即ち、量子化制御回路１３は、１つのピクチャに対して量子化ステップの変更が必要と判定した場合にステップ５７〜５９の処理を実行し、量子化ステップの変更が必要ないと判定した場合にステップ５７〜５９の処理をスキップする。
【００６０】
ステップ５７において、量子化制御回路１３は、累積値ＳＧに基づいて、１つのピクチャにおける非線形検出値Ｇの平均値ＥＡ（EdgeAverage ）を算出する。
ステップ５８において、量子化制御回路１３は、メモリ２８から非線形検出値Ｇを読み出す。そして、ステップ５９において、量子化制御回路１３は、読み出した非線形検出値Ｇに基づいて差分値ＭＤを算出する。
【００６１】
ステップ６０において、符号化回路１２は、マクロブロック単位の画像データを直交変換（離散コサイン変換：ＤＣＴ）し、その変換後のデータを差分値ＭＤに基づく量子化ステップにて量子化する。なお、図７に示すステップの実行開始時において、差分値ＭＤがクリアされている。従って、量子化制御回路１３がステップ５８〜５９をスキップした場合、符号化回路１２には、クリアされた差分値ＭＤ（＝０）が入力される。従って、符号化回路１２は、そのクリアされた差分値ＭＤに基づいて、先に処理したのマクロブロックＭＢに対する量子化ステップにて、今のマクロブロックＭＢの画像データを量子化する。
【００６２】
ステップ６１において、符号化回路１２は、ステップ６０における変換処理により生成された画像データを、可変長符号化変換し、変換後のデータ（符号化データＳｏ）を出力する。
【００６３】
ステップ６２において、符号化回路１２は、ステップ６０における変換処理により生成された画像データ（量子化係数）を、逆量子化して変換係数を再生する。更に、符号化回路１２は、再生された変換係数を逆直交変換（逆離散コサイン変換：逆ＤＣＴ）する。つまり、符号化回路１２は、量子化により生成した量子化係数を復号する。
【００６４】
ステップ６３において、符号化回路１２は、デブロッキングフィルタによる処理を行い、復号後の画像データ中のブロック歪みを除去する。
ステップ６４において、符号化回路１２は、画面内予測処理を行い、図示しないフレームメモリに格納されている参照フレームを参照してブロック単位の予測画像を生成する。
【００６５】
ステップ６５において、符号化回路１２は、動き補償処理を行い、図示しないフレームメモリに格納されている参照フレームを参照して動きベクトルを生成する。
ステップ６６において、符号化回路１２は、ステップ６４，６５の処理結果に基づき、ローカルデコード画（予測フレーム）を生成する。
【００６６】
ステップ６７において、符号化回路１２は、ローカルデコード画と入力画像との差分を取得する。符号化回路１２は、ステップ６０における処理について、ステップ６７において取得した差分を含めて直交変換及び量子化を行う。
【００６７】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）量子化制御回路１３は、所定サイズのピクチャＩｐを分割したマクロブロックＭＢ毎に、マクロブロックＭＢに含まれ隣接する画素値の差に応じて非線形検出値Ｇを算出し、その非線形検出値Ｇに応じてマクロブロックＭＢを量子化する際の量子化ステップを制御する量子化パラメータを変更するようにした。
【００６８】
非線形検出値Ｇは、マクロブロックに含まれる画素の値（以下、単に画素値という）が線形的に変化しないポイント、即ち非線形なポイントの数に対応する。大きな非線形検出値Ｇのマクロブロックは、小さな非線形検出値Ｇのマクロブロックに比べ、多くのエッジを含む、つまり直交変換したデータに高周波成分が多いことを示す。従って、非線形ポイントが多いマクロブロックＭＢ、つまり短波長性（高周波性）の高いマクロブロックＭＢほど量子化ステップを細かくすることで、量子化ノイズを低減することができる。
【００６９】
（２）量子化制御回路１３の非線形値算出部２２は、マクロブロックＭＢ毎に、マクロブロックＭＢ内の画素列における画素値の差に応じて非線形検出値Ｇをカウントアップ算出する。差分値算出部３３は、非線形検出値に基づいて量子化ステップを制御する差分値を算出する。従って、非線形検出値Ｇに応じた量子化パラメータ（差分値）を容易に算出することができる。
【００７０】
（３）量子化制御回路１３の累積加算部２６は、非線形検出値を累積加算する。平均値算出部２７は、累積値ＳＧと、ピクチャＩｐの画面サイズ設定値Ｓｚに基づいて、当該ピクチャＩｐにおける非線形検出値Ｇの平均値ＥＡを算出する。そして、差分値算出部３３は、平均値ＥＡと非線形検出値ＲＧとに基づいて量子化ステップを制御するための差分値ＭＤを算出する。従って、非線形検出値Ｇが大きいほど、差分値ＭＤが小さくなり、量子化ステップが細かくすることができる。
【００７１】
（４）量子化制御回路１３は、非線形検出値に応じて短波長のピクチャＩｐを検出し、その検出結果に基づいて、ピクチャＩｐに対して量子化ステップを変更するか否かを示すための判定フラグを設定し、判定フラグに応じて、量子化ステップの変更が必要と判定したピクチャに対して算出した差分値を出力し、量子化ステップの変更が不要と判定したピクチャに対して所定値の差分値を出力するようにした。従って、量子化ステップの制御／非制御を容易に判定することができる。
【００７２】
（５）短波長検出部３０は、非線形検出値Ｇとしきい値ＭＢｔｈとを比較して短波長のマクロブロックＭＢを検出した旨の検出値ＭＭを生成する。累積加算部３１は検出値ＭＭを累積加算する。細分化判定部３２は、累積値ＨとピクチャＩｐに含まれるマクロブロックＭＢの数Ｐに基づいて、ピクチャＩｐに含まれる短波長と判定したマクロブロックＭＢの比率を算出し、その比率としきい値Ｑｔｈとを比較して判定フラグＦＩを設定する。従って、各ピクチャＩｐに対する量子化ステップの制御／非制御を容易に判定することができる。
【００７３】
（６）非線形値算出部２２は、３つの画素値のうちの２つから線形予測値を算出し、線形予測値の算出に用いなかった画素値と線形予測値との差を算出し、その差分値としきい値とを比較して非線形検出値Ｇを算出するようにした。その結果、マクロブロックＭＢに含まれるエッジなどの非線形なポイントを検出し、マクロブロックＭＢにおける非線形ポイントの数を容易に算出することができる。
【００７４】
尚、上記実施形態は、以下の態様で実施してもよい。
・非線形値算出部２２において、３つの画素値を含む画素列において、その画素列に含まれる両端の第１の画素値と第３の画素値から線形予測値を算出し、その線形算出値と画素列の中央の第２の画素値との差分値を算出し、その差分値としきい値とを比較して線形ポイントを判定する。
【００７５】
・非線形値算出部２２における画素列に含まれる画素の数を適宜変更する。例えば、２つの画素を含む画素列について、非線形ポイントの判定を行う。非線形値算出部２２は、２つの画素値の差分値の絶対値を算出し、その絶対値と画素列の方向に対応するしきい値とを比較し、絶対値がしきい値より大きい場合に、当該画素列が非線形ポイントを含むと判定する。従って、非線形値算出部２２は、以下の式により、マクロブロックＭＢに対する非線形検出値Ｇを算出する。
【００７６】
【数４】
2011135269.tif 000006
上記の構成により、マクロブロック単位での高周波度（画素値変化の激しさ）を算出することができる。
【００７７】
例えば、図８（ａ）に示すように、３つの画素Ａ，Ｂ，Ｃの画素値を、「５」，「６」，「３０」とする。図８（ｂ）は、各画素Ａ〜Ｃの画素値を棒グラフとして示す。
非線形値算出部２２は、画素Ａ，Ｂの画素値の差分値Ｄ（＝１）を算出し、その差分値Ｄとしきい値（例えば水平用しきい値Ｈｔｈ）と比較する。例えば、水平用しきい値Ｈｔｈを「５」とすると、差分値Ｄはしきい値Ｈｔｈより小さいため、非線形値算出部２２は、この画素Ａ，Ｂ間は、非線形ポイントではない、と判定する。
【００７８】
次に、非線形値算出部２２は、画素Ｂ，Ｃの画素値の差分値Ｄ（＝２６）を算出し、その差分値Ｄとしきい値（例えば水平用しきい値Ｈｔｈ）と比較する。この場合、差分値Ｄはしきい値Ｈｔｈより大きいため、非線形値算出部２２は、この画素Ｂ，Ｃ間は、非線形ポイントである、と判定する。このように、非線形ポイントをカウントすることにより、マクロブロックＭＢ単位での高周波度（画素値変化の激しさ）を検出することができる。
【００７９】
・マクロブロックのサイズを１６×１６画素以外の画素数、例えば、８×８画素，４×４画素などのように、サイズを適宜変更する。また、例えば８×１６画素のように、縦の画素数と横の画素数を異なる値に設定したマクロブロック毎に非線形検出値Ｇを算出する。
【００８０】
・量子化制御回路１３が画像メモリ１１に記憶された画像データをマクロブロック単位で読み出して制御情報を生成する、即ち画像メモリ１１に記憶されたピクチャについて量子化ステップの細分化を判定する。このように、画像メモリ１１に記憶された画像データを読み出す場合、画面先頭検出部２３は、画像データの読み出し開始時にクリア信号Ｓｃと先頭検出信号Ｓｓを出力し、画面終端検出部２５は、読み出し終了時に終端検出信号Ｓｅを出力するように変更されればよい。また、読み出し開始を示す信号をクリア信号Ｓｃと先頭検出信号Ｓｓとして用い、読み出し終了を示す信号を終端検出信号Ｓｅとして用いることで、両検出部２３，２５を省略してもよい。
【００８１】
・図３に示す短波長検出部３０、累積加算部３１、細分化判定部３２を省略し、全てのピクチャについて、差分値ＭＤを算出する。
・図７に示すステップ５５，５６を省略し、全てのピクチャについて、差分値ＭＤを算出する。
【００８２】
・画像のコード変換（例えば、規格ＭＰＥＧ２から規格Ｈ．２６４へ）を行う画像処理装置の符号化回路に適用する。
・設定レジスタ２１に記憶した各種パラメータのうちの少なくとも１つを固定値としてそのパラメータを用いる処理部に設定する。
【００８３】
・符号化回路１２と量子化制御回路１３とを１つの回路として実施する。また、符号化回路１２と量子化制御回路１３のうちの少なくとも一方を、図７に示すステップを含むプログラムを実行するプロセッサ（例えばＣＰＵ）とすること。
【００８４】
上記各実施形態に関し、以下の付記を開示する。
（付記１）
所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する、ことを特徴とする量子化制御回路。
（付記２）
前記サブブロック毎に、前記サブブロック内の画素列における画素値の差に応じて非線形検出値をカウントアップ算出する非線形値算出部と、
前記非線形検出値に基づいて前記量子化ステップを制御する量子化パラメータを算出するパラメータ算出部と、
を有することを特徴とする付記１に記載の量子化制御回路。
（付記３）
前記非線形検出値を累積加算する第１の累積加算部と、
前記第１の累積加算部の累積値と、前記ブロックのサイズに基づいて、当該ブロックにおける非線形検出値の平均値を算出する平均値算出部と、
を含み、
前記パラメータ算出部は、前記平均値と前記非線形検出値とに基づいて前記量子化ステップを制御する量子化パラメータを算出する、
ことを特徴とする付記２に記載の量子化制御回路。
（付記４）
前記非線形検出値に応じて短波長のブロックを検出し、その検出結果に基づいて、前記ブロックに対して量子化ステップを変更するか否かを示すための判定フラグを設定する判定部を有し、
前記判定部の判定結果に応じて、算出値又は所定値を量子化パラメータとして出力する、
ことを特徴とする付記１〜３のうちの何れか一項に記載の量子化制御回路。
（付記５）
前記判定部は、
前記非線形検出値としきい値とを比較して短波長のサブブロックを検出した旨の検出値を生成する短波長検出部と、
前記検出値を累積加算する第２の累積加算部と、
前記第２の累積加算部の累積値とブロックに含まれるサブブロックの数に基づいて、ブロックに含まれる短波長と判定したサブブロックの比率を算出し、その比率としきい値とを比較して前記判定フラグを設定する細分化判定部と、
を含むことを特徴とする付記４に記載の量子化制御回路。
（付記６）
前記非線形値算出部は、３つの画素値のうちの２つから線形予測値を算出し、前記線形予測値の算出に用いなかった画素値と前記線形予測値との差を算出し、その差分値としきい値とを比較し、比較結果に応じて非線形検出値をカウントアップする、ことを特徴とする付記２に記載の量子化制御回路。
（付記７）
前記非線形値算出部は、隣接する２つの画素値の差を算出し、その差分値としきい値とを比較し、比較結果に応じて非線形検出値をカウントアップする、ことを特徴とする付記２に記載の量子化制御回路。
（付記８）
前記ブロックの画像データの先頭を検出して先頭検出信号を生成する先頭検出部と、
前記ブロックの画像の終端を検出して終端検出信号を生成する終端検出部と、
前記先頭検出信号に応答して前記非線形検出値をメモリに書き込む制御を行う書き込み制御部と、
前記終端検出信号に応答して前記メモリから非線形検出値を読み出す制御を行う読み出し制御部と、
を有し、
前記パラメータ算出部は、前記メモリから読み出された非線形検出値に基づき前記量子化パラメータを算出する、
ことを特徴とする付記２又は３に記載の量子化制御回路。
（付記９）
所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する、ことを特徴とする量子化パラメータ変更方法。
（付記１０）
所定サイズのブロックを分割したサブブロック毎に、サブブロックに含まれ隣接する画素値の差に応じて算出した非線形検出値に応じて前記サブブロックを量子化する際の量子化ステップを制御する量子化パラメータを変更する量子化制御回路と、
前記量子化パラメータに応じて量子化ステップを設定し、該量子化ステップにて画像データを量子化し、量子化後のデータを符号データに変換する符号化回路と、
を有する符号化回路。
【符号の説明】
【００８５】
１２  符号化回路
１２ｂ  量子化部
１３  量子化制御回路
２２  非線形値算出部
３３  差分値算出部（量子化パラメータ算出部）
Ｇ，Ｇｍｂ  非線形検出値
Ｈ  累積値
ＭＤ  差分値（量子化パラメータ：mb＿qp＿delta）
Ｉｐ  ピクチャ（ブロック）
ＭＢ  マクロブロック（サブブロック）
ａx,y  画素，画素値
【図１】
2011135269.tif 000007
【図２】
2011135269.tif 000008
【図３】
2011135269.tif 000009
【図４】
2011135269.tif 000010
【図５】
2011135269.tif 000011
【図６】
2011135269.tif 000012
【図７】
2011135269.tif 000013
【図８】
2011135269.tif 000014