(57)【特許請求の範囲】
【請求項１】
入力画像を複数のブロックに分割して符号化する符号化装置であって、
前記複数のブロックのそれぞれについて画像の特徴を判定し、視覚的劣化が目立ちやすいブロックであるか否かを検出する検出手段と、
前記検出手段による検出結果に基づいて、前記ブロックごとの量子化パラメータを決定する決定手段と、
前記ブロックの直交変換と、決定された前記量子化パラメータを用いた量子化とを行う変換手段と、
前記変換手段による変換結果を、可変長符号化する符号化手段と、
前記変換手段による変換結果を逆変換して局所復号画像を生成する逆変換手段と、
前記画像の特徴を判定するための判定基準を変化させるための参照値を算出する算出手段と、
を備え、
前記算出手段は、前記入力画像と前記局所復号画像とに基づいてＰＳＮＲを演算し、演算された前記ＰＳＮＲの値に基づく画像の劣化度合いを示す前記参照値を出力し、
前記検出手段は、
画像の特徴毎に設定された閾値を前記判定基準として用いて判定を行って前記視覚的劣化が目立ちやすいブロックを検出し、
前記閾値の値は画像の特徴毎に前記参照値がとりえる各値と対応づけて設定され、前記算出された参照値に応じた閾値が前記判定基準として用いられることを特徴とする符号化装置。
【請求項２】
前記視覚的劣化が目立ちやすいブロックが、前記入力画像において平坦部を構成するブロックである場合に、
前記検出手段は、前記ブロック内の画素の分散値を算出し、該分散値の大きさに基づいて、該ブロックが平坦部を構成するブロックであるかを判定して、前記視覚的劣化が目立ちやすいブロックの検出を行うことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記検出手段は、前記判定基準として第１の閾値を用いて、該第１の閾値と前記分散値との比較により前記ブロックが平坦部を構成するブロックであるかを判定することを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記視覚的劣化が目立ちやすいブロックが、前記入力画像においてエッジを構成するブロックである場合に、
前記検出手段は、前記ブロックをサブブロックに更に分割して、該サブブロック間での画素の分散値の差分値を算出し、該差分値の大きさに基づいて、該ブロックがエッジを構成するブロックであるかを判定して、前記視覚的劣化が目立ちやすいブロックの検出を行うことを特徴とする請求項１に記載の符号化装置。
【請求項５】
前記検出手段は、前記判定基準として第２の閾値を用いて、該第２の閾値と前記差分値との比較により前記ブロックがエッジを構成するブロックであるかを判定し、
前記参照値が示す度合いが予め定めた度合いよりも高くなる場合には、前記第２の閾値の値を増加させることを特徴とする請求項４に記載の符号化装置。
【請求項６】
前記視覚的劣化が目立ちやすいブロックが、前記入力画像において肌色部分を構成するブロックである場合に、
前記検出手段は、前記ブロック内の肌色画素の個数を算出し、該個数の大きさに基づいて、該ブロックが肌色部分を構成するブロックであるかを判定して、前記視覚的劣化が目立ちやすいブロックの検出を行うことを特徴とする請求項１に記載の符号化装置。
【請求項７】
前記検出手段は、前記判定基準として第３の閾値を用いて、該第３の閾値と前記個数との比較により前記ブロックが肌色部分を構成するブロックであるかを判定し、
前記参照値が前記画像の劣化度合いを示す場合に、該劣化度合いが予め定めた度合いよりも高くなる場合には前記第３の閾値の値を減少させることを特徴とする請求項６に記載の符号化装置。
【請求項８】
入力画像を複数のブロックに分割して符号化する符号化装置の制御方法であって、
検出手段が、前記複数のブロックのそれぞれについて画像の特徴を判定し、視覚的劣化が目立ちやすいブロックであるか否かを検出する検出工程と、
決定手段が、前記検出工程における検出結果に基づいて、前記ブロックごとの量子化パラメータを決定する決定工程と、
変換手段が、前記ブロックの直交変換と、決定された前記量子化パラメータを用いた量子化とを行う変換工程と、
符号化手段が、前記変換工程における変換結果を、可変長符号化する符号化工程と、
逆変換手段が、前記変換工程における変換結果を逆変換して局所復号画像を生成する逆変換工程と、
算出手段が、前記画像の特徴を判定するための判定基準を変化させるための参照値を算出する算出工程と、
を備え、
前記算出工程では、前記入力画像と前記局所復号画像とに基づいてＰＳＮＲを演算し、演算された前記ＰＳＮＲの値に基づく画像の劣化度合いを示す前記参照値を出力し、
前記検出工程では、
画像の特徴毎に設定された閾値を前記判定基準として用いて判定を行って前記視覚的劣化が目立ちやすいブロックを検出し、
前記閾値の値は画像の特徴毎に前記参照値がとりえる各値と対応づけて設定され、前記算出された参照値に応じた閾値が前記判定基準として用いられる
ことを特徴とする符号化装置の制御方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載の符号化装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化装置の制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年のマルティメディアの発展に伴い様々な動画像圧縮符号化方式が提案されている。その代表的なものに、ＭＰＥＧ−１，２，４やＨ．２６４といったものがある。これらの圧縮符号化の処理は、動画像に含まれる原画像（画像）をブロックと呼ばれる所定の領域に分割し、この分割したブロックを単位にして動き補償予測やＤＣＴ変換処理を施すものである。また、動き補償予測を行う場合、既に符号化済みの画像データを局所復号化して得られた画像を参照画像としていることで、符号化を行う際にも復号化処理が必要となる。
【０００３】
また、ＭＰＥＧ方式に準拠して画像の圧縮、符号化を行う場合、その符号量は、画像自体の特性である空間周波数特性やシーン及び量子化スケール値に応じて大きく異なる場合が多い。このような符号化特性を有する符号化装置を実現する上で良好な画質の復号画像を得ることができるようにするための重要な技術が符号量制御である。
【０００４】
この符号量制御アルゴリズムの１つとして、ＴＭ５（Test Model 5）が一般的に使用されている。このＴＭ５による符号量制御アルゴリズムは、以下に説明する３つのステップから構成される。ＴＭ５では、ＧＯＰ（Group Of Picture）毎にビットレートが一定になるように、以下に挙げる３ステップで符号量が制御される。
【０００５】
（ＳＴＥＰ１）
今から符号化を行うピクチャの目標符号量を決定する。現在のＧＯＰにおいて利用可能な符号量であるＲgopが以下の（１）式により演算される。
Ｒgop = (ni+np+nb)*(bits_rate/picture_rate)   ・・・（１）
ここで、ni,np,nbはそれぞれI、P、Bピクチャの現GOPにおける残りのピクチャ数であり、bits_rateは目標ビットレート、picture_rateはピクチャレートを表す。
【０００６】
更に、I、P、Bピクチャ毎に符号化結果からピクチャの複雑度を以下の（２）式で求めている。
Ｘi  =  Ｒi*Ｑi 
Ｘp  =  Ｒp*Ｑp    ・・・（２）
Ｘb  =  Ｒb*Ｑb   
ここで、Ｘi、Ｘｐ、Ｘｂはコンプレキシティ（Complexity）とも呼ばれる。また、Ｒi、Ｒp及びＲbはそれぞれＩ、Ｐ、Ｂピクチャを符号化した結果得られる符号量である。さらに、Ｑi、Ｑp及びＱbはそれぞれI、P、Bピクチャ内のすべてのマクロブロックにおけるＱスケールの平均値である。式(1)及び式(2)から、I、P、Bピクチャそれぞれについての目標符号量Ｔi、Ｔp及びＴbは、以下の（３）式で求めることができる。
【０００７】
Ｔi= max{(Ｒgop/(1+ ((Ｎp*Ｘp)/(Ｘi*Ｋp)) + ((Ｎb*Ｘb)/(Ｘi*Ｋb)))) , (bit_rate/(8*picture_rate))}
Ｔp=max{(Ｒgop/(Ｎp+ (Ｎb*Ｋp*Ｘb)/(Ｋb*Ｘp))) , (bit_rate/(8*picture_rate))}
Ｔb=max{(Ｒgop/(Ｎb+ (Ｎp*Ｋb*Ｘp)/(Ｋp*Ｘb))) , (bit_rate/(8*picture_rate))}
・・・（３）
ただし、Ｎp及びＮbは現GOP内のそれぞれP及びBピクチャの残りの枚数、また定数Ｋp=1.0及びＫb=1.4である。
【０００８】
（ＳＴＥＰ２）
I、P及びBピクチャ毎に３つの仮想バッファを使用し、式（３）で求めた目標符号量と発生符号量との差分を管理する。仮想バッファのデータ蓄積量をフィードバックし、そのデータ蓄積量に基づいて実際の発生符号量が目標符号量に近づくように、次にエンコードするマクロブロックについて、Ｑスケールの参照値が設定される。例えば、現在のピクチャタイプがPピクチャの場合には、目標符号量と発生符号量との差分は、次の（４）式に従う演算処理により求めることができる。
【０００９】
ｄp,j = ｄp,0  +  Ｂp,j-1  −((Ｔp*(j-1))/ＭＢ_cnt) ・・・（４）
ここで、添字jはピクチャ内のマクロブロックの番号であり、ｄp,0は仮想バッファの初期フルネスを示し、Ｂp，jはj番目のマクロブロックまでの総符号量、ＭＢ_cntはピクチャ内のマクロブロック数を示す。次にdp,j(以後、「dj」と記載する。) を用いて、j番目のマクロブロックにおけるＱスケールの参照値を求めると、（５）式のようになる。
【００１０】
Ｑj  = (dj*31) / r       ・・・（５）
ここで、r = 2*bits_rate/picture_rate       ・・・（６）
である。
【００１１】
（ＳＴＥＰ３）
視覚特性、即ち、復号画像の画質が良好になるように、エンコード対象のマクロブロックの空間アクティビティに基づいて、量子化スケールを最終的に決定する処理を実行する。
【００１２】
ACTj =  1+ min(vblk1, vblk2,……,vblk8)    ・・・（７）
（７）式中において、vblk1〜vblk4はフレーム構造のマクロブロックにおける8ｘ8のサブブロックにおける空間アクティビティを示す。また、vblk5〜vblk8はフィールド構造のマクロブロックにおける8x8サブブロックの空間アクティビティを示す。ここで、空間アクティビティの演算は次の（８）、（９）式により求めることが可能である。
【００１３】
vblk = Σ(Ｐi−Ｐbar)2      ・・・（８）
Pbar = (1/64 )* ΣＰi                  ・・・（９）
ここで、Ｐiはｉ番目のマクロブロックにおける画素値であり、式（８）、（９）中のΣはi=1〜64の演算である。次に（７）式で求めたACTjを以下の（１０）式によって正規化を行う。
【００１４】
N_ACTj = (2*ACTj +AVG_ACT)/ (ACTj + AVG_ACT)      ・・・（１０）
ここで、AVG_ACTは以前に符号化したピクチャにおけるACTjの参照値であり、最終的に量子化スケール（Ｑスケール値）MQUANTjは以下の（１１）式により求められる。
【００１５】
MQUANTj  =  Qj *  N_ACTj              ・・・（１１）
以上のＴＭ５のアルゴリズムによれば、ＳＴＥＰ１の処理によりＩピクチャに対して多くの符号量を割り当ており、更にピクチャ内においては視覚的に劣化の目立ちやすい平坦部(空間アクティビティが低い)に符号量が多く配分されるようになる。よって、予め定めたビットレート内で、画質の劣化を抑えた符号量制御ならびに量子化制御を行うことが可能となる。
【００１６】
また、ＴＭ５と同様に画像の特徴に応じて量子化制御を行う手法は他にも提案されており、視覚的向上を実現できている（特許文献１参照）。
【特許文献１】特開平１１−１９６４１７号
【発明の開示】
【発明が解決しようとする課題】
【００１７】
前述したＴＭ５方式は、マクロブロック単位で特徴を抽出し、その特徴に基づいて量子化パラメータを変化させる適応量子化を行うことで、あらかじめ定められた目標符号量になるような量子化制御を行っている。
【００１８】
また特許文献１では、複雑度が大きく量子化パラメータを上げるブロックの数が少ない場合、発生符号量が増大するにもかかわらず複雑度が高いブロックの劣化が目立つので、適応量子化を行わないという制御を行っている。複雑度が小さく量子化パラメータを下げるブロックが多い場合も同様である。
【００１９】
しかしながら、上記アルゴリズムではフレーム間での適応量子化の有り無しがあるため画質がばたつく問題があった。
【００２０】
また、量子化パラメータを下げるブロックが多い画像でも、ブロックの持つ特徴によっては平坦部のように量子化パラメータを下げても符号量が増大しないブロックも存在する。従って、本来適応量子化を行うべき画像に対して適応量子化が行えないという問題も存在する。
【００２１】
本発明は、上述した問題点に鑑みたものであり、符号化画像の劣化度合いとブロックが持つ特徴を考慮した適応量子化を行うことで、画質劣化を抑えることを可能にした符号化技術を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上記課題を解決するための本発明は、入力画像を複数のブロックに分割して符号化する符号化装置であって、
前記複数のブロックのそれぞれについて画像の特徴を判定し、視覚的劣化が目立ちやすいブロックであるか否かを検出する検出手段と、
前記検出手段による検出結果に基づいて、前記ブロックごとの量子化パラメータを決定する決定手段と、
前記ブロックの直交変換と、決定された前記量子化パラメータを用いた量子化とを行う変換手段と、
前記変換手段による変換結果を、可変長符号化する符号化手段と、
前記変換手段による変換結果を逆変換して局所復号画像を生成する逆変換手段と、
前記画像の特徴を判定するための判定基準を変化させるための参照値を算出する算出手段と、
を備え、
前記算出手段は、前記入力画像と前記局所復号画像とに基づいてＰＳＮＲを演算し、演算された前記ＰＳＮＲの値に基づく画像の劣化度合いを示す前記参照値を出力し、
前記検出手段は、
画像の特徴毎に設定された閾値を前記判定基準として用いて判定を行って前記視覚的劣化が目立ちやすいブロックを検出し、
前記閾値の値は画像の特徴毎に前記参照値がとりえる各値と対応づけて設定され、前記算出された参照値に応じた閾値が前記判定基準として用いられることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、符号化画像の劣化度合いとブロックが持つ特徴を考慮した適応量子化を行うことで、画質劣化を抑えることを可能にした符号化技術を提供できる。
【発明を実施するための最良の形態】
【００２４】
以下、添付する図面を参照して発明の実施形態を説明する。
【００２５】
第１の実施形態を図１から図３に基づいて説明する。図１は、本実施形態に対応する符号化装置の全体構成の一例を示すブロック図である。図２、図３は、本実施形態に対応する特徴抽出を説明するための図である。図４は、ＰＳＮＲについて説明するための図である。図５Ａ乃至図５Ｃは、ＰＳＮＲと検出閾値の関係を表した図である。
【００２６】
図１は、発明の実施形態に対応する符号化装置を示すが、該装置は、例えばディジタルビデオカメラのような映像音声信号記録装置として実現できる。また、符号化方式としては、例えばＭＰＥＧ（Moving Pictures of Experts Group）やH.264/AVC（Advanced  Video  Coding）に対応する。
【００２７】
図１において、入力信号１００は本符号化装置への入力信号であり、動画像が所定のブロックに分割された状態で入力される。該ブロックは、例えばＭＰＥＧでは１６×１６、８×８を始めとしたブロックであり、符号化方式に応じてサイズが決まる。なお今後説明の中では当該ブロックのことを「マクロブロック」と呼ぶこととする。
【００２８】
符号化装置は、フレーム並べ替え部１０１、加減算部１０２、直交変換（ＤＣＴ）部１０３、量子化部１０４、逆量子化部１０５、逆直交変換（逆ＤＣＴ）部１０６、動き予測・動き補償部１０７を含む。また、加減算部１０８、フレームメモリであるビデオバッファ１０９、可変長符号化部１１０、符号量制御部１１１、量子化制御部１１２、特徴抽出部１１３、本符号化装置からのストリームを一時的に保持するバッファ１１４を含む。更に、入力画像と局所復号画像からＰＳＮＲ（Peak Signal to Noise Ratio）を算出するＰＳＮＲ算出部１１５、本符号化装置からの出力信号１１６を含む。ＰＳＮＲとは、符号化による画像の劣化度合いを示す指標であり、ｄＢ（デシベル）と呼ばれる単位で表現される。その算出方法は、入力画像と局所復号画像との差分の二乗和を用いて行われ、算出結果であるＰＳＮＲ値が大きいときは符号化劣化が少なく、ＰＳＮＲ値が小さいときは符号化劣化が多いことを意味する。なお、本実施形態ではマクロブロック単位にＰＳＮＲを算出しており、画像内に含まれる全マクロブロックの合計値を観測ＰＳＮＲとして用いている。
【００２９】
以下、本実施形態に対応する符号化装置の動作を説明する。入力信号１００は、フレーム並べ替え部１０１において符号化ピクチャタイプに応じた並べ替えが行われる。並べ替えが終わった画像はブロックに分割された後、符号化ピクチャがフレーム内符号化（イントラ符号化）方式の時は、直交変換部１０３においてマクロブロック内の信号に対して直交変換処理を行う。量子化部１０４では、直交変換結果として得られたＤＣＴ係数を量子化する。
【００３０】
また、符号化ピクチャがフレーム間符号化ピクチャ（インター符号化）方式の時は、すでに符号化されたピクチャに対して、逆量子化部１０５で逆量子化、逆直交変換部１０６で逆直交変換処理を行う。このような逆変換を施すことでローカルデコード（局所復号画像）画像を生成する。更に、符号化しようとするピクチャとの動き予測ならびに動き補償を動き予測、動き補償部１０７で行い、ローカルデコード画像との差分値を加減算部１０２で算出する。差分値には、直交変換部１０３において直交変換処理が施され、量子化部１０４でＤＣＴ係数が量子化される。
【００３１】
フレーム内符号化、フレーム間符号化に関わらず量子化部１０４で量子化された量子化信号は、可変長符号化部１１０で符号化され、符号化された信号が出力信号１１６として出力される。
【００３２】
次に、符号量制御部１１１、量子化制御部１１２について説明する。符号量制御部１１１は、ＧＯＰ内の各ピクチャに対する割り当てビット量を、割り当て対象ピクチャを含めＧＯＰ内でまだ符号化されていないピクチャに対するビット量を基に配分する。この配分をＧＯＰ内の符号化ピクチャ順に繰り返し、ピクチャごとにピクチャ目標符号量を設定する。符号量制御部１１１はまた、特徴抽出部１１３に対して、特徴毎の検出閾値を提供する。
【００３３】
次に、量子化制御部１１２は、量子化パラメータを決定する。その際、各ピクチャに対する目標符号量と実際の発生符号量とを一致させるため、仮想バッファの容量を基に量子化スケールの参照値を、可変長符号化部１１０から出力されるマクロブロック単位の発生符号量としてフィードバック制御で求める。量子化部１０４で使用する量子化パラメータは、量子化スケールの参照値に対して特徴抽出部１１３で算出するアクティビティを基に式（１１）を用いて決定される。なお以上の動作は背景技術で述べたステップ１〜３に相当する。
【００３４】
これ以降、特徴抽出部１１３における処理について、図２及び図３を参照して説明する。特徴抽出部１１３は、符号量制御部１１１から提供された検出閾値（画像の特徴を判定するための判定基準に相当）に基づいて画像の特徴を判定し、各マクロブロックが視覚的劣化が目立ちやすいブロックであるか否かを検出する。本実施形態では、視覚的劣化が目立ちやすいブロックとして、平坦部、エッジ部、肌色部を例として説明する。なお、以下では、平坦部、エッジ部、肌色部の全てについて説明するが、いずれか１つ、或いは、複数の組み合わせにおいて発明を実施してもよい。
【００３５】
図２に示すように、特徴抽出部１１３は、平坦検出部２０１、エッジ検出部２０３及び肌色検出部２０５を備える。各検出部には平坦検出用閾値２０２（ｔｈ１Ｆ、ｔｈ２Ｆ）、エッジ検出用閾値２０４（ｔｈ１Ｅ、ｔｈ２Ｅ）及び肌色検出用閾値２０６（ｔｈ１Ｓ、ｔｈ２Ｓ）がそれぞれ符号量制御部１１１から入力される。各閾値は、マクロブロックが平坦部、エッジ部或いは肌色部に属するかを判断するための判定基準となる。また、最小値算出部２０７は、各検出部で算出されたレベルに応じて正規化前アクティビティを算出する。正規化部２０８は、正規化前アクティビティに対して所定の制御感度（リアクションパラメータ）を用いて正規化アクティビティを算出する。各閾値は変動可能である。
【００３６】
また、図３は各検出部の強さをレベル化するための関数を説明するための図であり、図３（ａ）は平坦検出部用の関数３０１、図３（ｂ）はエッジ検出部用の関数３０２、図３（ｃ）は肌色検出部用の関数３０３を示している。
【００３７】
ブロック単位に特徴抽出部１１３に入力される画像信号は各検出部に入力され閾値に応じてレベル化される。各検出部の処理は以下の通りである。
【００３８】
まず、平坦検出部２０１は、ブロック信号に対して分散値を算出し、その分散値を閾値と比較し、ｔｈ１Ｆ以下であればレベルを１とし、ｔｈ２Ｆ以上であればレベルを無限大とする。ここで、分散値は、ブロック内における画素値のバラツキ度合いを示す値である。また、レベルが低い値を取るほど、ブロック内の画素値の分散が少なく、該ブロックが平坦画像の傾向が高いことを示す。分散値が閾値ｔｈ１Ｆからｔｈ２Ｆの間の値であれば（ｔｈ１Ｆ，１）と（ｔｈ２Ｆ，pre_avg）を結ぶ関数からレベルを算出する。なお「pre_avg」とは１フレーム前に符号化したピクチャにおけるアクティビティの平均値である。また、第１の閾値であるｔｈ１Ｆ及びｔｈ２Ｆはフレーム単位にＣＰＵである符号量制御部１１１からセットされた平坦検出用閾値２０２（第１の閾値）である。
【００３９】
エッジ検出部２０３はブロック信号をさらに８×８のサブブロックに分割して、サブブロック毎に分散値を算出する。次に、分散値の最大値と最小値との差分を算出し、その値を閾値と比較しｔｈ２Ｅ以上であればレベルを１とし、ｔｈ１Ｅ以下であればレベルを無限大とする。ここで、レベルが低い値を取るほど、サブブロック間での分散値の差分が大きく、該ブロックがエッジ画像の傾向が高いことを示す。差分が閾値ｔｈ１Ｅからｔｈ２Ｅの値をとれば（ｔｈ１Ｅ，pre_avg）と（ｔｈ２，１）を結ぶ関数からレベルを算出する。なお「pre_avg」とは、１フレーム前に符号化したピクチャにおけるアクティビティの平均値である。また、閾値ｔｈ１Ｅ及びｔｈ２Ｅは、フレーム単位にＣＰＵである符号量制御部１１１からセットされたエッジ検出用閾値２０４（第２の閾値）である。
【００４０】
肌色検出部２０５はブロック信号に対して輝度成分と色差成分から肌色画素の個数をカウントする。その個数を閾値と比較し、ｔｈ２Ｓ以上であればレベルを１とし、ｔｈ１Ｓ以下であれば無限大とする。ここで、レベルが低い値を取るほど、肌色の画素数が多く、該ブロックが肌色画像の傾向が高いことを示す。個数が閾値ｔｈ１Ｓからｔｈ２Ｓの間の値であれば（ｔｈ１Ｓ，pre_avg）と（ｔｈ２Ｓ，１）を結ぶ関数からレベルを算出する。なお「pre_avg」とは１フレーム前に符号化したピクチャにおけるアクティビティの平均値である。また、閾値ｔｈ１Ｓ及びｔｈ２Ｓは、フレーム単位にＣＰＵである符号量制御部１１１からセットされた肌色検出用閾値２０６（第３の閾値）である。
【００４１】
最後に最小値算出部２０７で、各検出部２０１、２０３及び２０５で算出されたレベルの中で、最小のものを正規化前アクティビティとし、正規化部２０８で正規化してアクティビティとして算出する。また、各検出部からのレベルがすべて無限大の場合はブロックの分散値を正規化前アクティビティとする。
【００４２】
本実施形態では、判定基準としての検出用閾値をＰＳＮＲ算出部１１５で算出されたＰＳＮＲに基づいて、以下のように変化させることができる。この処理について図４及び図５Ａ乃至図５Ｃを参照して説明する。
【００４３】
図４は、横軸に時間、縦軸にＰＳＮＲを示した図である。点線が予め定められた目標となるＰＳＮＲ（目標ＰＳＮＲ）であり、実線がＰＳＮＲ算出部１１５で算出したＰＳＮＲ（観測ＰＳＮＲ）である。観測ＰＳＮＲが目標ＰＳＮＲより高ければ画質が良いと判断でき、低ければ画質が良くないと判断できる。
【００４４】
ＰＳＮＲはまた、符号量的な側面から次のような解釈も可能である。観測ＰＳＮＲが目標ＰＳＮＲより高い場合は、符号化する画像に対して十分な符号量が割り当てられていると同時に符号量的に安定しているので、特徴抽出でより多くのエッジや肌色ブロックを検出してさらに符号量を与えることが可能である。
【００４５】
一方、観測ＰＳＮＲが目標ＰＳＮＲよりも低い場合は、符号化する画像に対して十分な符号量を割り当てられていないと同時に、符号量的に不安定な状態であると言える。そのため、特徴抽出でエッジや肌色のブロックを多く検出し過ぎると、エッジや肌色ブロックに多くの符号量が割り当てられ、高周波を含むブロックへ符号量が割り当てられなくなってしまう。高周波を含むブロックは多少荒く量子化を行っても視覚的劣化は目立ちにくいとされているが、割り当てる符号量が少なすぎると高周波を含むブロックにおいて画質が大幅に低下してしまう。また、バッファ破綻が発生する可能性もある。
【００４６】
そこで、本実施形態では、目標ＰＳＮＲと観測ＰＳＮＲとの差分に応じて各検出部に与えられる閾値を制御することを特徴とする。図５は、横軸に目標ＰＳＮＲから観測ＰＳＮＲを引いた差分（ＰＳＮＲの差分）、縦軸に各検出部の閾値を取ったグラフである。
【００４７】
図５（ａ）は、ＰＳＮＲの差分に対する平坦検出用閾値２０２の変化の様子を表すグラフ５０１を示す。ここで横軸はＰＳＮＲの差分、縦軸は図３（ａ）の関数３０１におけるｔｈ１Ｆ、ｔｈ２Ｆに対応する平坦検出用閾値である。即ち、閾値ｔｈ１Ｆやｔｈ２Ｆは、ＰＳＮＲの差分に応じてグラフ５０１に対応するように変化する。
【００４８】
図５（ｂ）はエッジ検出用閾値２０４の変化の様子を表すグラフ５０２を示す。ここで横軸はＰＳＮＲの差分、縦軸は図３の関数３０２におけるｔｈ１Ｅ、ｔｈ２Ｅに対応するエッジ検出用閾値である。即ち、閾値ｔｈ１Ｅやｔｈ２Ｅは、ＰＳＮＲの差分に応じてグラフ５０２に対応するように変化する。
【００４９】
図５（ｃ）は肌色検出用閾値２０６の変化の様子を表すグラフ５０３を示す。ここで横軸はＰＳＮＲの差分、縦軸は図３の関数３０３におけるｔｈ１Ｓ、ｔｈ２Ｓに対応する肌色検出用閾値である。即ち、閾値ｔｈ１Ｓやｔｈ２Ｓは、ＰＳＮＲの差分に応じてグラフ５０３に対応するように変化する。
【００５０】
図４の領域４０１のように、ＰＳＮＲ算出部１１５で算出された観測ＰＳＮＲが目標ＰＳＮＲより高い場合、画質は安定しているがより高画質化を行える。そこで、エッジ部及び肌色部では、より多く検出するように閾値を変動させる。なお、閾値の変動は図５に示しているように目標ＰＳＮＲと観測ＰＳＮＲの離れ具合（劣化度合い）を考慮して連続的に変化させることが望ましい。また、平坦部に関しては量子化パラメータを変動させたとしても符号量が大きく増加することはないので閾値の変動は行わないようにする。
【００５１】
一方、図４の領域４０２のように、観測ＰＳＮＲが目標ＰＳＮＲより低く、劣化度合いが高い場合、全体的な画質が良くないためエッジのようなブロックに多くの符号量を与えても画質の向上は見込めない。そこで、エッジ部では検出閾値（Ｔｈ１ＥとＴｈ２Ｅ）を上げて強いエッジ、すなわち視覚的に特に目立つエッジのみを検出するようにする。また肌色部に対しては、人間の顔など重要領域が含まれることが多い。そこで、観測ＰＳＮＲが目標ＰＳＮＲより特に低く、劣化度合いが所定の度合いを超えて高い場合でも、閾値（Ｔｈ１ＳとＴｈ２Ｓ）を減少させて肌色部分を多く検出するようにする。この場合、顔以外の部分は劣化が起こっても、肌色部分の画質が向上することで全体的な視覚的印象は良くなる。
【００５２】
なお、閾値の変動は図５に示しているように目標ＰＳＮＲと観測ＰＳＮＲの離れ具合を考慮して連続的に変化させることが望ましい。また、各検出部の方法はここで述べた方法に限ったものではなく、検出を行うための要素となる分散値は周波数変換などで代用可能である。
【００５３】
以上のように、本実施形態に対応する符号化装置によれば、符号化画像の劣化度合いに応じて抽出するブロック数を変化させることで、発生符号量が安定した状態で視覚的劣化の目立ちやすいブロックに対する画質向上を行うことが可能となる。また、符号化画像の劣化度合いが大きい場合でも、特に劣化を抑えたいブロックにより多くの符号量を与えるので画質が良いという印象を与えることができる。
【００５４】
［第２の実施形態］
第１の実施形態は、特徴抽出部１１３において、各マクロブロックが視覚的劣化の目立ちやすいブロックであるか否かを判断する基準を画像の劣化度合いであるPSNRを用いていた。これに対して第２の実施形態では、再生時にフリッカが発生しそうな画像であるかに応じて各検出部に与えられる閾値を制御することを特徴とする。
【００５５】
図６は、第２の実施形態に対応する符号化装置の全体構成の一例を示すブロック図であり、基本的構成は図１と同じであるが、図１に対して、フリッカを検出するための機構が付加されている。なお、特徴抽出部６１３の構成は図１の特徴抽出部１１３と同じであるので図２を代用する。
【００５６】
図６において、フレーム並べ替え部６０１、加減算部６０２、直交変換（ＤＣＴ）部６０３、量子化部６０４、逆量子化部６０５、逆直交変換（逆ＤＣＴ）部６０６、動き予測・動き補償部６０７を含む。また、加減算部６０８、フレームメモリであるビデオバッファ６０９、可変長符号化部６１０、符号量制御部６１１、量子化制御部６１２、特徴抽出部６１３、本符号化装置からのストリームを一時的に保持するバッファ６１４を含む。更に、入力画像と局所復号画像からＰＳＮＲ（Peak Signal to Noise Ratio）を算出するＰＳＮＲ算出部６１５、本符号化装置からの出力信号１１６を含む。以上は図１と同じ構成である。それに加えて、フレーム特徴検出部６２０、フレーム動き検出部６２１、フリッカ検出部６２２を設けた。なお、特徴抽出部６１３はマクロブロック単位で特徴を抽出するのに対して、フレーム特徴検出部６２０はフレーム単位で特徴を検出するものであり表現を分けておく。これらの作用を説明する。
【００５７】
フレーム特徴検出部６２０は、フレームアクティビティとして、入力端子６００からの画像データから今から符号化する画像の複雑度を算出する。第２の実施形態では、複雑度として、画像データの交流成分量、好ましくは高周波成分量を採用する。具体的には、１画面の画像データを所定サイズのブロックに分割し、各ブロックに対して分散を算出する。そして、各ブロックで算出した分散を画像の全ブロック数分加算した結果を、高周波成分量とする。なお、分散でなく、ＤＣＴ（離散コサイン変換）やアダマール変換といった周波数変換を行い、その周波数成分で代用しても良い。
【００５８】
フレーム動き検出部６２１は、入力端子６００からの画像データを隣接するフレーム間で相関をとり、今から符号化する画像全体がどれだけ動いたかを算出する。具体的には、１画面の画像を所定サイズのブロックに分割し、そのブロック毎に、隣接する画面間で一方の画像の座標をずらしながら相関が最も高くなる座標ずれ量を算出する。そして、各ブロックで算出した動きベクトル量の画面内の総和をフレーム間動き量とする。なお、このフレーム間動き量は、大局的な動き（グローバルベクトル）を示すものであり、ここで示す方法以外の方法でも算出できる。
【００５９】
また、第１の実施形態と同様に、入力画像と局所復号画像とから符号化歪み量を算出するためのＰＳＮＲ算出部６１５が存在する。ＰＳＮＲ算出部６１５は、先ず、入力端子６００からの画像データと局所復号画像データ（加減算部６０８の出力画像データ）とから、マクロブロック単位のＰＳＮＲを算出する。そして、ＰＳＮＲ算出部６１５は、マクロブロック毎のＰＳＮＲの画面内の総和を、最終的なＰＳＮＲとして出力する。ここで算出するＰＳＮＲは、符号化済みの画像に対するもの、即ち、今から符号化する画像に対して少なくとも１つ以上前に入力された画像に対するものである。
【００６０】
フリッカ検出部６２２には、フレーム特徴検出部６２０からのフレームアクティビティ、フレーム動き検出部６２１からのフレーム間動き量、及びＰＳＮＲ算出部６１５からのＰＳＮＲが入力する。フリッカ検出部６２２は、これらの３つのパラメータ値に従い、今から符号化する画像にフリッカが発生しそうかどうかを検出する。
【００６１】
ここで、フリッカの発生のメカニズムについて図７を用いて以下に述べる。図７は、本実施形態に対応する、フリッカの発生のメカニズムを説明するための図であり、フレーム内符号化とフレーム間符号化を併用する符号化方式における符号化後の輝度信号を示す。図７のグラフ７０１は、Ｉピクチャの再生信号レベルの時間変化を示す。横軸は時間（又はフレーム）を示し、縦軸は、再生映像信号レベルを示す。輝度平均で示す点線は映像信号の平均値を示している。これはグラフ７０２、７０３も同様である。ピーク輝度で示す点線は映像信号の輝度のピーク値を示している。これはグラフ７０２、７０３も同様である。フラットな映像信号に重畳するノイズ成分のピーク輝度は、フレーム内符号化によりある程度、再構成可能である。これは、上述した符号量制御アルゴリズムで、Ｉピクチャに対する符号量割り当てが、他のピクチャタイプに比べて多いことに起因する。
【００６２】
図７のグラフ７０２は、Ｐピクチャ及びＢピクチャのようなフレーム間符号化されたピクチャの再生信号レベルの時間変化を示す。横軸は時間（又はフレーム）を示し、縦軸は、再生映像信号レベルを示す。複雑度の高い画像はフレーム間の相関が低くなるので、通常の符号化ではＰピクチャ及びＢピクチャのフレーム間差分情報量が増加する。その結果、符号化による映像信号の劣化が生じ、輝度のピークを再構成できなくなる。グラフ７０２では、グラフ７０１に示すＩピクチャに比べ、ピーク輝度に差が生じている。これにより、グラフ７０３に示すように、動画再生時に輝度フリッカが発生する。横軸は時間（又はフレーム）を示し、縦軸は、再生映像信号レベルを示す。
【００６３】
ただし、ピーク輝度差が大きいもの全てが、フリッカとして感じられるわけではない。人間の視覚特性は、動きの大きい画像の劣化よりも動きの小さい画像の劣化を検知しやすい。静止画で平坦部がざわざわしているのが気になるのはそのためである。そのため、動きの大きい画像ではピーク輝度差は検知できず、フリッカとして感じることが少ない。動きのある画像よりも動きの小さい画像でピーク輝度差が生じると、フリッカとして目立ってしまう。
【００６４】
以上がフリッカ発生のメカニズムである。フリッカが発生する条件として、符号化後の輝度ピーク値がピクチャタイプ毎に異なること、動きの少ない画像であることは上述した。符号化後の輝度ピーク値が生じる画像の条件は、１）画像の複雑さが高いこと、及び、２）符号化画像が劣化していることの二つの条件を満たしていることである。一つ目の条件は、フレーム特徴検出部６２０で算出した高周波成分量が高いことを意味する。二つ目の条件は、ＰＳＮＲ算出部６１５で算出したＰＳＮＲが低いことを意味する。
【００６５】
なお、どちらか一方の条件を満たしていなければ、輝度ピーク差が生じるとは言えない。例えば、高周波を多く含んだ画像は画像の複雑さが高く、一つ目の条件は満たす。しかし、ビットレートが高い場合には、符号化画像は劣化していないので輝度ピーク差は生じない。一方、符号化画像が劣化していると、二つ目の条件は満たす。しかし、ビットレートが低い場合、画像の複雑さが低くても符号化画像が劣化する。この場合、輝度ピーク差は生じない。動きの少ない画像の条件は、画像全体の動き量が小さいことであり、フレーム動き検出部６２１で算出したフレーム間動き量が少ないことを意味する。
【００６６】
フリッカ検出部６２２は、高周波成分量、フレーム間動き量、PSNRの値からフリッカ発生度合いを算出することができる。高周波成分量がその基準値より高く、ＰＳＮＲがその基準値より低く、フレーム動き量がその基準値より少ない場合、今から符号化しようとする画像でフリッカが発生する可能性が高いので、フリッカ発生度合いは高くなる。一方、その条件に合致しない場合、フリッカ発生度合いは低くなる。フリッカ発生度合いについて計算方法は問わないが、離散的な値であり、値が大きくなればフリッカ発生度合いが大きくなるものとする。
【００６７】
図８は、本実施形態に対応する、フリッカの発生度合いと検出閾値の関係を説明するための図である。図８は、横軸にフリッカ発生度合い、縦軸に各検出部の閾値を取ったグラフを示す。図８（ａ）は、フリッカ発生度合いに対する平坦検出用閾値２０２の変化の様子を表すグラフ８０１を示す。ここで横軸はフリッカ発生度合い、縦軸は図３の関数３０１におけるｔｈ１Ｆ、ｔｈ２Ｆに対応する平坦検出用閾値である。即ち、閾値ｔｈ１Ｆやｔｈ２Ｆは、フリッカの発生度合いに応じてグラフ５０１に対応するように変化する。
【００６８】
図８（ｂ）はフリッカ発生度合いに対するエッジ検出用閾値２０４の変化の様子を表すグラフ８０２を示す。ここで横軸はフリッカ発生度合い、縦軸は図３の関数３０２におけるｔｈ１Ｅ、ｔｈ２Ｅに対応するエッジ検出用閾値である。即ち、閾値ｔｈ１Ｅやｔｈ２Ｅは、フリッカの発生度合いに応じてグラフ５０２に対応するように変化する。
【００６９】
図８（ｃ）はフリッカ発生度合いに対する肌色検出用閾値２０６の変化の様子を表すグラフ８０３を示す。ここで横軸はフリッカ発生度合い、縦軸は図３の関数３０３におけるｔｈ１Ｓ、ｔｈ２Ｓに対応する肌色検出用閾値である。即ち、閾値ｔｈ１Ｓやｔｈ２Ｓは、フリッカの発生度合いに応じてグラフ５０３に対応するように変化する。
【００７０】
フリッカ検出部６２２の検出結果から、フリッカ発生度合いが高い場合、劣化が目立つ領域に対して符号量を与え過ぎてしまうと、その反動で高周波成分を含む領域に対する符号量が少なくなってしまい、フリッカが強く発生してしまう。そこで、エッジ部では検出閾値（Ｔｈ１ＥとＴｈ２Ｅ）を上げて強いエッジ、すなわち視覚的に特に目立つエッジのみを検出するようにする。また肌色部では、検出閾値（Ｔｈ１ＳとＴｈ２Ｓ）を上げて強い肌色、すなわち視覚的に特に目立つ肌色のみを検出するようにする。
【００７１】
一方、フリッカ検出部６２２の検出結果から、フリッカ発生度合いが低い場合、画像に含まれる高周波成分が少なく、ＰＳＮＲも十分高いため、劣化が目立つ領域に対して更に符号量を与えることが可能である。そこで、エッジ部では検出閾値（Ｔｈ１ＥとＴｈ２Ｅ）を下げてエッジを多く検出するようにする。また肌色部では、検出閾値（Ｔｈ１ＳとＴｈ２Ｓ）を下げて肌色を多く検出するようにする。なお平坦部に関しては、量子化パラメータを変動させたとしても符号量が大きく増加することはないのでフリッカの発生度合いによっては平坦閾値（Ｔｈ１ＦとＴｈ２Ｆ）を変化させない。
【００７２】
以上のように、本実施形態に対応する符号化装置によれば、符号化画像のフリッカの発生度合いに応じて抽出するブロック数を変化させることで、発生符号量が安定した状態で視覚的劣化の目立ちやすいブロックに対する画質向上を行うことが可能となる。また、符号化画像のフリッカの発生度合いが大きい場合でも、特に劣化を抑えたいブロックにより多くの符号量を与えるので画質が良いという印象を与えることができる。
【００７３】
［その他の実施形態］
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００７４】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００７５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図面の簡単な説明】
【００７６】
【図１】発明の第１の実施形態に対応する、符号化装置の構成の一例を示すブロック図である。
【図２】発明の第１の実施形態に対応する、特徴抽出部の処理を説明するための図である。
【図３】発明の第１の実施形態に対応する、各検出部の強さをレベル化するための関数を示す図である。
【図４】発明の第１の実施形態に対応する、ＰＳＮＲについて説明するための図である。
【図５】発明の第１の実施形態に対応する、ＰＳＮＲと検出閾値の関係を説明するための図である。
【図６】発明の第２の実施形態に対応する、符号化装置の構成の一例を示すブロック図である。
【図７】発明の第２の実施形態に対応する、フリッカの発生のメカニズムを説明するための図である。
【図８】発明の第２の実施形態に対応する、フリッカの発生度合いと検出閾値の関係を説明するための図である。
【符号の説明】
【００７７】
１００・・・入力部（入力信号）
１０１・・・フレーム並べ替え部
１０２・・・加減算部
１０３・・・直交変換部
１０４・・・量子化部
１０５・・・逆量子化部
１０６・・・逆直交変換部
１０７・・・動き予測・動き補償部
１０８・・・加減算部
１０９・・・ビデオバッファ（フレームメモリ）
１１０・・・可変長符号化部
１１１・・・符号量制御部
１１２・・・量子化制御部
１１３・・・特徴抽出部
１１４・・・バッファ
１１５・・・ＰＳＮＲ算出部
１１６・・・出力部（出力信号、ストリーム）
【図１】
0005078837.tif 000002
【図２】
0005078837.tif 000003
【図３】
0005078837.tif 000004
【図４】
0005078837.tif 000005
【図５】
0005078837.tif 000006
【図６】
0005078837.tif 000007
【図７】
0005078837.tif 000008
【図８】
0005078837.tif 000009