(57)【特許請求の範囲】
【請求項１】
入力画像データを複数のブロックに分割し、分割されたブロック単位で変換符号化して、変換係数データを出力する変換符号化手段と、
前記ブロック内の局所的な領域のダイナミックレンジの最大値を前記ブロックの代表値として、前記入力画像データの画面全体を構成する全ての前記ブロックの代表値の最大値、最小値、および平均値を算出する全画面特徴抽出手段と、
目標符号量と実際の発生符号量の差分に基づいて、前記ブロックの量子化スケールの参照値を計算する量子化スケール計算手段と、
前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロックのダイナミックレンジの最大値を計算し、計算した前記特徴量に応じた前記量子化スケールのオフセットを算出する特徴量抽出手段と、
前記特徴量抽出手段により算出された前記量子化スケールのオフセットに基づいて、前記量子化スケール計算手段により計算された前記量子化スケールの参照値を調整する量子化スケール調整手段と、
前記量子化スケール調整手段により調整された前記量子化スケールの参照値に従い、前記変換符号化手段から出力された前記変換係数データを前記ブロック単位で量子化する量子化手段と
を備え、
前記特徴量抽出手段は、前記全画面特徴抽出手段により算出された前記ブロックの代表値の前記最小値から前記最大値までの範囲を複数の範囲に分割し、前記ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて前記量子化スケールのオフセットを算出する
符号化装置。
【請求項２】
前記特徴量抽出手段は、前記ブロックのダイナミックレンジの最大値を、前記ブロック内の局所的な領域のダイナミックレンジの最大値により算出する
請求項１に記載の符号化装置。
【請求項３】
前記ブロック内の局所的な領域は、水平方向または垂直方向に隣接する２画素である
請求項２に記載の符号化装置。
【請求項４】
前記特徴量抽出手段は、前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロック内のエッジの有無を検出し、前記ブロック内のエッジの有無に応じた前記量子化スケールのオフセットも算出する
請求項１乃至３のいずれかに記載の符号化装置。
【請求項５】
前記特徴量抽出手段は、前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロック内の所定の色の有無を検出し、前記ブロック内の所定の色の有無に応じた前記量子化スケールのオフセットも算出する
請求項１乃至４のいずれかに記載の符号化装置。
【請求項６】
前記特徴量抽出手段は、全ての前記ブロックの代表値の前記平均値を含む前記範囲を前記量子化スケールのオフセットの基準として、全ての前記ブロックの代表値の前記最小値に近くなる前記範囲ほど前記オフセットをマイナスし、全ての前記ブロックの代表値の前記最大値に近くなる前記範囲ほど前記オフセットをプラスする
請求項１乃至５のいずれかに記載の符号化装置。
【請求項７】
前記特徴量抽出手段は、プラス側の振り幅を、マイナス側の振り幅と比較して小さい値に設定する
請求項６に記載の符号化装置。
【請求項８】
入力画像データを符号化する符号化装置が、
前記入力画像データを複数のブロックに分割し、分割されたブロック単位で変換符号化して、変換係数データを出力し、
前記ブロック内の局所的な領域のダイナミックレンジの最大値を前記ブロックの代表値として、前記入力画像データの画面全体を構成する全ての前記ブロックの代表値の最大値、最小値、および平均値を算出し、
目標符号量と実際の発生符号量の差分に基づいて、前記ブロックの量子化スケールの参照値を計算し、
前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロックのダイナミックレンジの最大値を計算し、計算した前記特徴量に応じた前記量子化スケールのオフセットを算出し、
算出された前記量子化スケールのオフセットに基づいて、計算された前記量子化スケールの参照値を調整し、
調整された前記量子化スケールの参照値に従い、前記変換係数データを前記ブロック単位で量子化する
ステップを含み、
前記量子化スケールのオフセットの算出では、算出された前記ブロックの代表値の前記最小値から前記最大値までの範囲を複数の範囲に分割し、前記ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて前記量子化スケールのオフセットが算出される
符号化方法。
【請求項９】
コンピュータに、
入力画像データを複数のブロックに分割し、分割されたブロック単位で変換符号化して、変換係数データを出力し、
前記ブロック内の局所的な領域のダイナミックレンジの最大値を前記ブロックの代表値として、前記入力画像データの画面全体を構成する全ての前記ブロックの代表値の最大値、最小値、および平均値を算出し、
目標符号量と実際の発生符号量の差分に基づいて、前記ブロックの量子化スケールの参照値を計算し、
前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロックのダイナミックレンジの最大値を計算し、計算した前記特徴量に応じた前記量子化スケールのオフセットを算出し、
算出された前記量子化スケールのオフセットに基づいて、計算された前記量子化スケールの参照値を調整し、
調整された前記量子化スケールの参照値に従い、前記変換係数データを前記ブロック単位で量子化する
ステップを含み、
前記量子化スケールのオフセットの算出では、算出された前記ブロックの代表値の前記最小値から前記最大値までの範囲を複数の範囲に分割し、前記ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて前記量子化スケールのオフセットが算出される
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化方法、およびプログラムに関し、特に、視覚的に劣化が目立ちやすいブロックの画質を改善することができるようにする符号化装置、符号化方法、およびプログラムに関する。
【背景技術】
【０００２】
近年のマルチメディアの発展に伴い、様々な動画像圧縮符号化方式が提案されている。動画像圧縮符号化方式の代表的なものに、MPEG(Moving Picture Expert Group)-1,2,4やH.264(ITU-T Q6/16 VCEG)といったものがある。これらの圧縮符号化の処理は、原画像をブロックと呼ばれる所定の領域に分割し、このブロックを単位にして、動き補償予測及びDCT変換処理などの符号化処理を施すものである。なお、動き補償予測を行う場合には、既に符号化済みの画像データを局所復号化して得られた画像を参照画像とすることから、復号化処理が必要となる。
【０００３】
MPEG方式に準拠して画像の圧縮符号化を行う場合、その符号量は画像自体の特性である空間周波数特性、シーン、及び量子化スケール値に応じて大きく異なる場合が多い。このような符号化特性を有する符号化装置を実現する上で、良好な画質に復号化するために重要な技術が符号量制御である。
【０００４】
符号量制御のアルゴリズムの一つとして、TM5(Test Model 5)が一般的に使用されている。TM5アルゴリズムは、画像の複雑度を表す特徴量として空間アクティビティを用いている。TM5アルゴリズムによれば、GOP（Group of picture）のうちIピクチャに対して多くの符号量を割り当て、ピクチャ内においては視覚的に劣化の目立ちやすい平坦部（空間アクティビティが低い部分）に符号量が多く配分される。これにより、予め定めたビットレート内で、画質の劣化を抑えた符号量制御と量子化制御を行うことが可能になる。
【０００５】
また、TM5と同様に画像の特徴に応じて量子化制御を行う手法は、他にも提案されている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１９６４１７号公報
【特許文献２】特開２００９−２００８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の量子化制御では、視覚的に劣化の目立ちやすいブロックを抽出する手段として、空間アクティビティが用いられている。空間アクティビティそのものは、波形の振幅と回数をかけあわせた特徴量となっているため、必ずしも、視覚的に劣化が目立ちやすいブロックと一致していないことがあった。即ち、従来の空間アクティビティを用いた量子化制御では、高域成分（エッジ）があるブロックを抽出できないことがあった。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、視覚的に劣化が目立ちやすいブロックの画質を改善することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の第１の側面の符号化装置は、入力画像データを複数のブロックに分割し、分割されたブロック単位で変換符号化して、変換係数データを出力する変換符号化手段と、前記ブロック内の局所的な領域のダイナミックレンジの最大値を前記ブロックの代表値として、前記入力画像データの画面全体を構成する全ての前記ブロックの代表値の最大値、最小値、および平均値を算出する全画面特徴抽出手段と、目標符号量と実際の発生符号量の差分に基づいて、前記ブロックの量子化スケールの参照値を計算する量子化スケール計算手段と、前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロックのダイナミックレンジの最大値を計算し、計算した前記特徴量に応じた前記量子化スケールのオフセットを算出する特徴量抽出手段と、前記特徴量抽出手段により算出された前記量子化スケールのオフセットに基づいて、前記量子化スケール計算手段により計算された前記量子化スケールの参照値を調整する量子化スケール調整手段と、前記量子化スケール調整手段により調整された前記量子化スケールの参照値に従い、前記変換符号化手段から出力された前記変換係数データを前記ブロック単位で量子化する量子化手段とを備え、前記特徴量抽出手段は、前記全画面特徴抽出手段により算出された前記ブロックの代表値の前記最小値から前記最大値までの範囲を複数の範囲に分割し、前記ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて前記量子化スケールのオフセットを算出する。
【００１０】
本発明の第１の側面の符号化方法は、入力画像データを符号化する符号化装置が、前記入力画像データを複数のブロックに分割し、分割されたブロック単位で変換符号化して、変換係数データを出力し、前記ブロック内の局所的な領域のダイナミックレンジの最大値を前記ブロックの代表値として、前記入力画像データの画面全体を構成する全ての前記ブロックの代表値の最大値、最小値、および平均値を算出し、目標符号量と実際の発生符号量の差分に基づいて、前記ブロックの量子化スケールの参照値を計算し、前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロックのダイナミックレンジの最大値を計算し、計算した前記特徴量に応じた前記量子化スケールのオフセットを算出し、算出された前記量子化スケールのオフセットに基づいて、計算された前記量子化スケールの参照値を調整し、調整された前記量子化スケールの参照値に従い、前記変換符号化手段から出力された前記変換係数データを前記ブロック単位で量子化するステップを含み、前記量子化スケールのオフセットの算出では、算出された前記ブロックの代表値の前記最小値から前記最大値までの範囲を複数の範囲に分割し、前記ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて前記量子化スケールのオフセットが算出される。
【００１１】
本発明の第１の側面のプログラムは、コンピュータに、入力画像データを複数のブロックに分割し、分割されたブロック単位で変換符号化して、変換係数データを出力し、前記ブロック内の局所的な領域のダイナミックレンジの最大値を前記ブロックの代表値として、前記入力画像データの画面全体を構成する全ての前記ブロックの代表値の最大値、最小値、および平均値を算出し、目標符号量と実際の発生符号量の差分に基づいて、前記ブロックの量子化スケールの参照値を計算し、前記ブロックの視覚的劣化の目立ちやすさを表す特徴量として、前記ブロックのダイナミックレンジの最大値を計算し、計算した前記特徴量に応じた前記量子化スケールのオフセットを算出し、算出された前記量子化スケールのオフセットに基づいて、計算された前記量子化スケールの参照値を調整し、調整された前記量子化スケールの参照値に従い、前記変換符号化手段から出力された前記変換係数データを前記ブロック単位で量子化するステップを含み、前記量子化スケールのオフセットの算出では、算出された前記ブロックの代表値の前記最小値から前記最大値までの範囲を複数の範囲に分割し、前記ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて前記量子化スケールのオフセットが算出される処理を実行させるためのものである。
【００１２】
本発明の第１の側面においては、入力画像データが複数のブロックに分割され、分割されたブロック単位で変換符号化されて、変換係数データが出力され、ブロック内の局所的な領域のダイナミックレンジの最大値をブロックの代表値として、入力画像データの画面全体を構成する全てのブロックの代表値の最大値、最小値、および平均値が算出され、目標符号量と実際の発生符号量の差分に基づいて、ブロックの量子化スケールの参照値が計算され、ブロックの視覚的劣化の目立ちやすさを表す特徴量として、ブロックのダイナミックレンジの最大値が計算され、計算された特徴量に応じた量子化スケールのオフセットが算出され、算出された量子化スケールのオフセットに基づいて、計算された量子化スケールの参照値が調整され、調整された量子化スケールの参照値に従い、出力された変換係数データがブロック単位で量子化される。量子化スケールのオフセットの算出では、算出されたブロックの代表値の最小値から最大値までの範囲を複数の範囲に分割し、ブロックのダイナミックレンジの最大値が、分割された複数の範囲のどこに属するかに応じて量子化スケールのオフセットが算出される。
【００１５】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【００１６】
符号化装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【００１７】
本発明の第１および第２の側面によれば、視覚的に劣化が目立ちやすいブロックの画質を改善することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
【図２】全画面特徴抽出部の詳細な構成例を示すブロック図である。
【図３】１画面の画像をマクロブロックMB単位に分割した例を示す図である。
【図４】１つのマクロブロックMBを示す図である。
【図５】サブブロックSB内で設定される局所領域LBの例を示す図である。
【図６】サブブロックSB内で設定される局所領域LBの例を示す図である。
【図７】マクロブロックMBのダイナミックレンジMDRの計算を説明する図である。
【図８】特徴抽出部の詳細構成例を示すブロック図である。
【図９】振り幅算出部の処理を説明する図である。
【図１０】量子化パラメータ決定処理を説明するフローチャートである。
【図１１】オフセット算出処理を説明するフローチャートである。
【図１２】本発明の効果を説明する図である。
【図１３】局所的なダイナミックレンジDRのその他の例を示す図である。
【図１４】本発明の効果を説明する図である。
【図１５】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
［符号化装置の構成例］
図１は、本発明を適用した符号化装置の一実施の形態の構成例を示している。
【００２０】
符号化装置１の入力端子１１には、入力画像データとして、符号化対象の画像のデータが入力される。入力画像データは、例えば、インターレースまたはプログレッシブなどの一般的なビデオ画像フォーマットの信号である。
【００２１】
並べ替え部１２は、入力画像データを一時記憶し、必要に応じて読み出すことで、符号化ピクチャタイプに応じたフレーム（フィールド）順に並べ替えて、並び替えたフレーム（フィールド）の画像データをマクロブロックMB単位で減算器１３に出力する。マクロブロックMBのサイズは、符号化方式により決定され、例えば、MPEGでは１６×１６画素又は８×８画素等である。本実施の形態では、マクロブロックMBのサイズは１６×１６画素であるとする。
【００２２】
減算器１３は、符号化ピクチャタイプがフレーム内符号化（イントラ符号化）方式である場合、並べ替え部１２からの画像データをそのまま直交変換部１４に出力する。一方、符号化ピクチャタイプがフレーム間符号化（インター符号化）方式である場合、減算器１３は、並べ替え部１２からの画像データから、動き予測動き補償部２３から供給される予測画像データを減算して得られる差分画像データを直交変換部１４に出力する。
【００２３】
直交変換部１４は、減算器１３からのマクロブロックMB単位の出力データ（画像データ又は差分画像データ）を直交変換し、その結果得られる変換係数データを量子化部１５に出力する。
【００２４】
量子化部１５は、量子化スケール調整部２７から供給される量子化パラメータに従って、直交変換部１４から供給される変換係数データを量子化する。
【００２５】
可変長符号化部１６は、量子化部１５から供給される、量子化された変換係数データを可変長符号化する。そして、可変長符号化部１６は、可変長符号化で得られた符号データに、動き予測動き補償部２３から供給される、動き補償のための動きベクトルデータ等を多重化し、バッファ１７に供給する。バッファ１７は、可変長符号化部１６からの多重化符号化データを一時蓄積し、順次読み出して出力端子１８に出力する。
【００２６】
逆量子化部１９は、量子化部１５からの出力データ（量子化された変換係数データ）を逆量子化する。逆直交変換部２０は、逆量子化部１９から供給される変換係数データを逆直交変換し、加算器２１に供給する。加算器２１は、符号化ピクチャタイプがイントラ符号化である場合、逆直交変換部２０からの出力データをそのまま出力する。一方、符号化ピクチャタイプがインター符号化である場合、加算器２１は、動き予測動き補償部２３から供給される、先の復号化で得られた予測データと、逆直交変換部２０からの出力データ（差分画像データ）とを加算する。予測データの加算により、差分画像データから画像データが復元される。即ち、加算器２１の出力データが、ローカルで復号化された画像データ（ローカル復号化画像データ）に相当する。
【００２７】
フレームメモリ２２は、加算器２１から供給されるローカル復号化画像データを複数フレーム分記憶する。動き予測動き補償部２３は、フレームメモリ２２に記憶されているローカル復号化画像データの画像を参照画像として、並べ替え部１２からの現在の画像と比較して動きを予測し、動き補償された予測画像データを算出する。そして、動き予測動き補償部２３は、算出した予測画像データを減算器１３に供給するとともに、予測画像データの動きベクトルデータを可変長符号化部１６に出力する。
【００２８】
また、動き予測動き補償部２３は、算出した予測画像データを、必要に応じて加算器２１にも供給する。即ち、スイッチ２３ａは、符号化ピクチャタイプに応じて動き予測動き補償部２３によって制御され、符号化ピクチャタイプがインター符号化である場合に、算出した予測画像データが加算器２１に供給される。
【００２９】
全画面特徴抽出部２４は、画面全体の平坦度を示す特徴量（全画面特徴量）として、画面全体に対し所定の方法で計算された画素値のダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveを算出する。全画面特徴抽出部２４は、算出した全画面特徴量を一時的に蓄積し、並べ替え部１２が並び替えて出力するフレームに対応する全画面特徴量を、特徴抽出部２６に順次供給する。全画面特徴抽出部２４が計算する全画面特徴量の詳細な計算方法については、図２乃至図７を参照して後述する。
【００３０】
量子化スケール計算部２５は、バッファ１７の蓄積データ量等を参照して、フレーム発生符号量を取得する。そして、量子化スケール計算部２５は、取得したフレーム発生符号量に従い、目標符号量を決定する。より具体的には、量子化スケール計算部２５は、割り当て対象ピクチャを含めGOP内でまだ符号化されていないピクチャに対するビット量を基に、GOP内の各ピクチャに対する割り当てビット量を配分する。量子化スケール計算部２５は、ビット量の配分を、GOP内の符号化ピクチャ順に繰り返し、ピクチャごとにピクチャ目標符号量を設定する。
【００３１】
また、量子化スケール計算部２５は、可変長符号化部１６からバッファ１７に入力されるデータを参照して、マクロブロックMB単位の発生符号量（ブロック発生符号量）を取得する。そして、量子化スケール計算部２５は、各ピクチャに対する目標符号量と実際の発生符号量とを一致させるため、最初に、各ピクチャに対する目標符号量と実際の発生符号量の差分を演算する。そして、量子化スケール計算部２５は、得られた目標符号量と実際の発生符号量の差分から各ピクチャのマクロブロックMBごとに量子化スケールの参照値（以下、Qスケールの参照値という。）を算出する。ここで、現在のピクチャのｊ番目のマクロブロックMBにおけるQスケールの参照値をQjで表す。算出されたQスケールの参照値Qjは、特徴抽出部２６および量子化スケール調整部２７に供給される。
【００３２】
特徴抽出部２６には、量子化パラメータとしてのQスケールの参照値Qjが、量子化スケール計算部２５から供給される。また、特徴抽出部２６には、画面全体における画素値のダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveが、全画面特徴抽出部２４から供給される。さらに、特徴抽出部２６には、並べ替え部１２から、全画面特徴抽出部２４から供給される全画面特徴量に対応する画像（画面）のマクロブロックMB単位のデータ（マクロブロックデータ）も供給される。
【００３３】
特徴抽出部２６は、量子化スケール計算部２５から供給されるQスケールの参照値Qjに対するオフセットOFFSETを算出し、量子化スケール調整部２７に供給する。より具体的には、特徴抽出部２６は、画面全体の平坦度を考慮し、かつ、マクロブロックMB単位の画像の特徴にも対応するオフセットOFFSETを算出し、量子化スケール調整部２７に供給する。特徴抽出部２６の処理の詳細については、図８等を参照して後述する。
【００３４】
量子化スケール調整部２７は、量子化スケール計算部２５からの量子化スケールの参照値Qjを、特徴抽出部２６から供給されるオフセットOFFSETに基づいて調整する。量子化スケール調整部２７は、調整後の量子化スケールの参照値Qj’を量子化パラメータとして量子化部１５に供給する。
【００３５】
特徴抽出部２６からは、画面全体、および、マクロブロックMB内の画像が平坦であるほど、量子化スケールの参照値Qjを下げるようなオフセットOFFSETが供給される。そして、調整後の量子化スケールの参照値Qj’（量子化パラメータ）が小さいほど、より多くの符号量が割り当てられる。
【００３６】
以上のように構成される符号化装置１では、画面全体、および、マクロブロックMB内の画像の平坦の度合い（画像の複雑度）に応じて、量子化パラメータが調整されて、符号化される。
【００３７】
［全画面特徴抽出部２４の構成例］
次に、全画面特徴抽出部２４の詳細について説明する。
【００３８】
図２は、全画面特徴抽出部２４の詳細な構成例を示すブロック図である。
【００３９】
全画面特徴抽出部２４は、ブロック平坦検出部４１、最大・最小・平均値算出部４２、およびバッファ４３により構成されている。
【００４０】
ブロック平坦検出部４１は、１画面の画像を、マクロブロックMB単位、即ち、１６×１６画素単位に分割する。そして、ブロック平坦検出部４１は、分割したマクロブロックMBのそれぞれについて、そのマクロブロックMBを代表するダイナミックレンジMDRを算出し、最大・最小・平均値算出部４２に供給する。ダイナミックレンジとは所定の領域内の画素の画素値の最大値と最小値の差（最大値-最小値）である。
【００４１】
最大・最小・平均値算出部４２は、ブロック平坦検出部４１から供給される各マクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveを計算し、バッファ４３に供給する。
【００４２】
バッファ４３は、最大・最小・平均値算出部４２からの１画面を構成する各マクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveを、複数フレーム分記憶する。そして、バッファ４３は、並べ替え部１２が出力するマクロブロックMBのデータに対応するフレームの、マクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveを、特徴抽出部２６に供給する。
【００４３】
［全画面特徴抽出部２４の処理］
図３乃至図７を参照して、全画面特徴抽出部２４の処理についてさらに詳しく説明する。
【００４４】
図３は、ブロック平坦検出部４１が、１画面の画像を、マクロブロックMB単位に分割した例を示している。なお、図３において、全画面特徴抽出部２４に供給される入力画像データの解像度は１０８０／６０ｐである。
【００４５】
入力画像データの解像度が１０８０／６０ｐである場合、ブロック平坦検出部４１は、１画面の画像を、８７０４（＝１２８×６８）個のマクロブロックMB１乃至MB８７０４に分割する。
【００４６】
図４は、マクロブロックMB１乃至MB８７０４のうちの１つのマクロブロックMBを示している。なお、マクロブロックMB１乃至MB８７０４のいずれのマクロブロックMBも同様の処理が行われるため、１画面内のマクロブロックMBを区別する添え字は省略する。
【００４７】
ブロック平坦検出部４１は、マクロブロックMBを、さらに、４つのサブブロックSB１乃至SB４に分割する。
【００４８】
そして、ブロック平坦検出部４１は、サブブロックSBよりも小さい所定の領域LB（以下、局所領域LBという。）をサブブロックSB内で複数設定し、サブブロックSB内で設定された複数の局所領域LBそれぞれのダイナミックレンジLDRを検出する。
【００４９】
図５は、サブブロックSB内で、３×３画素を局所領域LBとした例を示している。
【００５０】
３×３画素を局所領域LBとした場合、垂直方向および水平方向に１画素ずつ順次ずらすことにより、サブブロックSB内で、全部で３６個の局所領域LB１乃至LB３６を設定することができる。
【００５１】
ブロック平坦検出部４１は、図６に示すように、３６個の局所領域LB１乃至LB３６それぞれについて、ダイナミックレンジLDR１乃至LDR３６を検出する。そして、ブロック平坦検出部４１は、ダイナミックレンジLDR１乃至LDR３６のなかの最大値を、そのサブブロックSBのダイナミックレンジの代表値BDRとする。即ち、ブロック平坦検出部４１は、サブブロックSBのダイナミックレンジの代表値BDRを、BDR＝max（LDR１，LDR２，・・・，LDR３６）により計算する。
【００５２】
４つのサブブロックSB１乃至SB４について上述の処理を行うことにより、サブブロックSB１乃至SB４の代表値BDR１乃至BDR４が得られる。
【００５３】
さらに、ブロック平坦検出部４１は、図７に示すように、４つのサブブロックSB１乃至SB４それぞれの代表値BDR１乃至BDR４の最大値を検出し、マクロブロックMBのダイナミックレンジMDRとする。
【００５４】
ブロック平坦検出部４１は、以上のようにして計算した８７０４個のマクロブロックMB１乃至MB８７０４それぞれのダイナミックレンジMDR１乃至MDR８７０４を、最大・最小・平均値算出部４２に供給する。
【００５５】
最大・最小・平均値算出部４２は、８７０４個のマクロブロックMB１乃至MB８７０４それぞれのダイナミックレンジMDR１乃至MDR８７０４から、その最大値、最小値、および平均値を計算し、それぞれ、最大値ldrMax、最小値ldrMin、および平均値ldrAveとする。
【００５６】
なお、全画面特徴抽出部２４の処理は、１画面全ての画素値が得られるまで最終的な結果は確定しない。従って、全画面特徴抽出部２４の処理を行うために、１画面分の遅れが生じる。そのため、全画面特徴抽出部２４は、現フレームの最大値ldrMax、最小値ldrMin、および平均値ldrAveに代えて、1フレーム前の画像の最大値ldrMax、最小値ldrMin、および平均値ldrAveで代用してもよい。これにより、全画面特徴量算出のための遅れをなくすことができる。
【００５７】
［特徴抽出部２６の詳細構成例］
図８は、特徴抽出部２６の詳細構成例を示すブロック図である。
【００５８】
特徴抽出部２６は、平坦検出部５１、エッジ検出部５２、色検出部５３、オフセット計算部５４、および振り幅算出部５５により構成されている。
【００５９】
全画面特徴抽出部２４から供給される、全画面特徴量としての、符号化対象のフレームを構成する各マクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveは、振り幅算出部５５に入力される。
【００６０】
全画面特徴抽出部２４からの全画面特徴量と同一フレームの各マクロブロックMBのマクロブロックデータは、並べ替え部１２から、平坦検出部５１、エッジ検出部５２、および色検出部５３に入力される。
【００６１】
平坦検出部５１は、マクロブロックMBの平坦度を表す特徴量を算出する。具体的には、平坦検出部５１は、上述した全画面特徴抽出部２４がマクロブロックMBのそれぞれについて算出したダイナミックレンジMDRと同一のものを、入力されるマクロブロックデータについて算出する。以下では、平坦検出部５１で計算される所定のマクロブロックMBのダイナミックレンジMDRを、全画面特徴抽出部２４が算出するものと区別して、ダイナミックレンジMdrと記載する。平坦検出部５１は、算出したマクロブロックMBのダイナミックレンジMdrをオフセット計算部５４に供給する。
【００６２】
エッジ検出部５２は、マクロブロックMBのエッジの有無を検出し、その検出結果をオフセット計算部５４に供給する。
【００６３】
具体的には、エッジ検出部５２は、マクロブロックMBを、全画面特徴抽出部２４と同様に４つのサブブロックSB１乃至SB４に分割する。そして、エッジ検出部５２は、マクロブロックMB内の各サブブロックSBについて、図５を参照して説明したように局所領域LB１乃至LB３６を設定し、ダイナミックレンジLDR１乃至LDR３６を検出する。また、エッジ検出部５２は、マクロブロックMB内の各サブブロックSBについて、全画面特徴抽出部２４と同様、ダイナミックレンジBDR＝max（LDR１，LDR２，・・・，LDR３６）を検出する。
【００６４】
なお、以下では、エッジ検出部５２が検出するサブブロックSB内のダイナミックレンジLDR１乃至LDR３６およびBDRを、全画面特徴抽出部２４のものと区別して、ダイナミックレンジLdr１乃至Ldr３６およびBdrと記載する。
【００６５】
エッジ検出部５２は、マクロブロックMBを構成する各サブブロックSBについて、Ldrｉ＞ka×Bdr(kaは１以下の係数、ｉ＝１乃至３６)を満たす局所領域の数ｅｎをカウントする。そして、エッジ検出部５２は、カウントした数ｅｎが予め決定された閾値th_en（例えば、６など）を超えているかを判定する。数ｅｎが所定の閾値th_enを超えている場合、エッジ検出部５２は、そのサブブロックSBにはエッジがあると判定する。
【００６６】
エッジ検出部５２は、マクロブロックMBを構成する４つのサブブロックSBのうち、１つでもエッジありと判定された場合、そのマクロブロックMBにはエッジがあると判定する。エッジ検出部５２は、マクロブロックMBのエッジの有無を表す判定結果を、オフセット計算部５４に供給する。
【００６７】
色検出部５３は、マクロブロックMBの、視覚的に目立つ色の有無を検出し、その検出結果をオフセット計算部５４に供給する。視覚的に目立つ色として、どのような色を検出するかは予め決定される。例えば、赤や肌色が視覚的に目立つ色として採用され、その色の画素の画素数がカウントされる。色検出部５３は、カウントした所定の色の画素数が、予め決定した閾値th_c以上であれば、そのマクロブロックMBには、視覚的に目立つ色があると判定する。色検出部５３は、マクロブロックMBの視覚的に目立つ色の有無を表す判定結果を、オフセット計算部５４に供給する。
【００６８】
オフセット計算部５４には、平坦検出部５１から、マクロブロックMBのダイナミックレンジMdrが供給される。また、オフセット計算部５４には、ダイナミックレンジMdrの平坦度に対応するオフセットTfを決定するための、ｎ個のオフセット閾値TH_ldr（n）が、振り幅算出部５５から供給される。ｎ個のオフセット閾値TH_ldr（n）は、最大値ldrMaxと最小値ldrMinの範囲を（ｎ＋１）個に分割するための閾値である。
【００６９】
オフセット計算部５４は、平坦検出部５１から供給される、マクロブロックMBのダイナミックレンジMdrが、ｎ個のオフセット閾値TH_ldr（n）によって分割された（ｎ＋１）個の範囲のどこに属するかに応じてオフセットTfを決定する。そして、オフセット計算部５４は、決定したオフセットTfを、画像の平坦度に対応するオフセット量として、オフセットOFFSETに加算または減算する。オフセットTfの決定方法の詳細については、図９を参照して説明する振り幅算出部５５の処理とともに後述する。
【００７０】
また、オフセット計算部５４は、エッジ検出部５２から、エッジありの判定結果が供給された場合には、予め決定した一定のオフセットTcを、画像のエッジに対応するオフセット量として、オフセットOFFSETから減算する。一方、エッジなしの判定結果が供給された場合には、オフセットOFFSETに対する演算は行われない。
【００７１】
さらに、オフセット計算部５４は、色検出部５３から、色検出ありの判定結果が供給された場合には、予め決定した一定の値Tmを、画像の色検出に対応するオフセット量として、オフセットOFFSETから減算する。一方、色検出なしの判定結果が供給された場合には、オフセットOFFSETに対する演算は行われない。
【００７２】
即ち、オフセット計算部５４は、マクロブロックMBのダイナミックレンジMdr、エッジの有無、および色検出の有無に応じて、オフセットOFFSET＝（Tf−Tc-Tm）を演算し、その演算結果を、量子化スケール調整部２７に供給する。ただし、エッジなし、色検出なしの場合には、オフセットTcとオフセットTmの項が省略される。
【００７３】
振り幅算出部５５には、符号化対象のフレームを構成する各マクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveが供給される。
【００７４】
最初に、振り幅算出部５５では、最大値ldrMax、最小値ldrMin、および平均値ldrAveを用いて、平坦度の特徴量に対応するオフセットTfを決定するためのマイナス側の振り幅DS１と閾値間隔SP１、およびプラス側の振り幅DS２と閾値間隔SP２が決定される。
【００７５】
具体的には、振り幅算出部５５は、マイナス側の振り幅DS１と閾値間隔SP１を、次式（１）により計算する。
DS１＝ldrAve／Ks      ただし、α≦DS１≦β
SP１＝（ldrAve-ldrMin）／（DS１＋0.5）    ・・・・（１）
【００７６】
また、振り幅算出部５５は、プラス側の振り幅DS２と閾値間隔SP２を、次式（２）により計算する。
DS２＝ldrAve／Ks      ただし、0≦DS２≦γ
SP２＝（ldrMax-ldrAve）／（DS２＋η＋0.5）    ・・・・（２）
【００７７】
式（１）および式（２）において、Ksは、振り幅の所定の係数である。また、α，β，γ，ηは、所定の定数である。ただし、量子化パラメータが大きくなりすぎると、量子化誤差による画質の劣化が目立つため、プラス側の振り幅DS２は、マイナス側の振り幅DS１と比較して小さい値に設定されるように、定数γは定数βよりも小さい値とされる。
【００７８】
例えば、α＝３，β＝１２，γ＝３，η＝３とする。この場合、式（１）によれば、ldrAve／Ksの計算結果が、DS１＜３である場合には「３」が、３≦DS１≦１２である場合にはその計算結果が、１２＞DS１である場合には「１２」が、マイナス側の振り幅DS１とされる。
【００７９】
また、式（２）によれば、ldrAve／Ksの計算結果が、０≦DS２≦３である場合にはその計算結果が、３＜DS２である場合には「３」が、プラス側の振り幅DS２とされる。
【００８０】
次に、振り幅算出部５５では、ダイナミックレンジMDRの最小値ldrMin、並びに、振り幅DS１、閾値間隔SP１、振り幅DS２、および閾値間隔SP２を用いて、ｎ個のオフセット閾値TH_ldr（n）が算出される。
【００８１】
即ち、振り幅算出部５５は、式（３）および式（４）により、ｎ個のオフセット閾値TH_ldr（n）を算出する。ここで、オフセット閾値TH_ldrの個数ｎは、マイナス側の振り幅DS１とプラス側の振り幅DS２の和（n＝DS１＋DS２）に等しい。
【００８２】
TH_ldr(n)＝ldrMin＋n×SP１ 
但し、n＝１乃至DS１      ・・・・（３）
TH_ldr(n)＝ldrMin＋DS１×SP１＋(n−DS１)×SP２
但し、n＝（DS１＋１）乃至(DS１＋DS２)      ・・・・（４）
【００８３】
図９は、式（１）によりマイナス側の振り幅DS１が「６」であり、式（２）によりプラス側の振り幅DS２が「３」とされた場合に、振り幅算出部５５により決定されるｎ個のオフセット閾値TH_ldr（n）の例を示している。
【００８４】
式（３）により、ダイナミックレンジMDRの最小値ldrMinから、閾値間隔SP１ごとに、マイナス側の振り幅DS１＝「６」個のオフセット閾値TH_ldr(1)乃至TH_ldr(6)が設定される。
【００８５】
また、式（４）により、オフセット閾値TH_ldr(6)から、閾値間隔SP２ごとに、プラス側の振り幅DS２＝「３」個のオフセット閾値TH_ldr(7)乃至TH_ldr(9)が設定される。
【００８６】
以上のようにして算出されるｎ個のオフセット閾値TH_ldr（n）が、振り幅算出部５５からオフセット計算部５４に供給される。
【００８７】
オフセット計算部５４は、ｎ個のオフセット閾値TH_ldr（n）に基づいて、ダイナミックレンジMDRの最大値ldrMaxと最小値ldrMinの範囲を、（ｎ＋１）個の範囲に分割する。  
【００８８】
例えば、あるフレームのダイナミックレンジMdrの度数分布は、図９に示されるような平均値ldrAve付近を凸とする分布となっている。そして、平坦検出部５１から供給される各マクロブロックMBのダイナミックレンジMdrは、最大値ldrMaxと最小値ldrMinの範囲に必ず含まれる。
【００８９】
オフセット計算部５４は、平坦検出部５１から供給される、マクロブロックMBの平坦度を表す特徴量としてのダイナミックレンジMdrが（ｎ＋１）個の範囲のどこに属するかに応じてオフセットTfを決定する。
【００９０】
例えば、平坦検出部５１からのダイナミックレンジMdrが、平均値ldrAveを含む範囲であるオフセット閾値TH_ldr(6)以上TH_ldr(7)未満である場合、オフセット計算部５４は、オフセットTfを「０」とする（Tf=0）。
【００９１】
また例えば、ダイナミックレンジMdrがオフセット閾値TH_ldr(5)以上TH_ldr(6)未満である場合、オフセット計算部５４は、オフセットTfを「−１」とする（Tf=-1）。また、ダイナミックレンジMdrがオフセット閾値TH_ldr(7)以上TH_ldr(8)である場合、オフセット計算部５４は、オフセットTfを「＋１」とする（Tf=+1）。
【００９２】
また例えば、ダイナミックレンジMdrがオフセット閾値TH_ldr(1)未満である場合には、オフセットTfが「−６」に、ダイナミックレンジMdrがオフセット閾値TH_ldr(9)以上である場合には、オフセットTfが「＋３」に設定される。その他についても同様である。
【００９３】
なお、本実施の形態では、上述したように、ダイナミックレンジMDRの最小値ldrMinを基準に、（ｎ＋１）個の範囲に分割するようにしたが、最大値ldrMaxや平均値ldrAveを基準に分割するようにしてもよい。
【００９４】
［量子化パラメータ決定処理］
図１０のフローチャートを参照して、符号化装置１による量子化パラメータ決定処理について説明する。
【００９５】
１画面分の入力画像データが符号化装置１に入力されると、ステップＳ１において、全画面特徴抽出部２４は、全画面特徴量を計算し、特徴抽出部２６に供給する。即ち、全画面特徴抽出部２４は、１画面を構成するマクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveを計算し、特徴抽出部２６に供給する。
【００９６】
ステップＳ２において、量子化スケール計算部２５は、全画面特徴抽出部２４からの全画面特徴量に対応するフレームの所定のマクロブロックMBを、注目マクロブロックに設定する。ここで設定される注目マクロブロックは、全画面特徴抽出部２４からの全画面特徴量に対応するフレームを構成するマクロブロックMBのうちの、並べ替え部１２が出力するマクロブロックMBに対応するブロックである。
【００９７】
ステップＳ３において、量子化スケール計算部２５は、現在のGOPにおいて利用可能な符号量Rgopを、次式（５）により演算する。
Rgop=(ni+np+nb)×(bit_rate/picture_rate)・・・・（５）
ここで、ni,np、及びnbは、それぞれ、I、P、及びBピクチャの現GOPにおける残りのピクチャ数を表す。また、bit_rateは、目標ビットレートを、picture_rateは、ピクチャレートを表す。
【００９８】
ステップＳ４において、量子化スケール計算部２５は、I、P、及びBピクチャ毎に符号化結果からピクチャの複雑度(Complexity) Xi、Xp、及びXbを、以下の式（６）により求める。
Xi=Ri×Qi
Xp=Rp×Qp
Xb=Rb×Qb                              ・・・（６）
ここで、Ri、Rp、及びRbは、それぞれ、I、P、及びBピクチャを符号化した結果得られる符号量を表す。また、Qi、Qp、及びQbは、それぞれ、I、P、及びBピクチャ内の全マクロブロックにおけるQスケールの平均値である。
【００９９】
ステップＳ５において、量子化スケール計算部２５は、式（５）及び式（６）の演算結果を用いて、I、P、及びBピクチャのそれぞれについての目標符号量Ti、Tp、及びTbを、以下の式（７）で求める。
Ti=max{(Rgop/(1+((Np×Xp)/(Xi×Kp))+((Nb×Xb)/(Xi×Kb)))),(bit_rate/(8×picture))}
Tp=max{(Rgop/(Np+(Nb×Kp×Xb)/(Kb×Xp))),(bit_rate/(8×picture))}
Tb=max{(Rgop/(Nb+(Np×Kb×Xp)/(Kp×Xb))),(bit_rate/(8×picture))}
・・・（７）
ここで、Np及びNbは、現GOP内のP及びBピクチャそれぞれの残りの枚数を表す。また、Kp及びKbは定数であり、例えば、Kp=1.0，Kb=1.4である。
【０１００】
ステップＳ６において、I、P、及びBピクチャ毎に３つの仮想バッファが使用され、式（７）で求められた目標符号量と発生符号量との差分が管理される。即ち、仮想バッファのデータ蓄積量をフィードバックし、そのデータ蓄積量に基づいて実際の符号発生量が目標符号量に近づくように、注目マクロブロックについてQスケールの参照値Qjが量子化スケール計算部２５により設定される。
【０１０１】
例えば、現在のピクチャタイプがPピクチャの場合、Pピクチャ内の注目マクロブロックの番号をｊとして、目標符号量と発生符号量との差分dp,jは、次の式（８）より求めることができる。
dp,j = dp,0 + Bp,j-1 ((Tp×(j-1))/MB_cnt)        ・・・（８）
ここで、dp,0は、仮想バッファの初期フルネスを示す。Bp,j-1は、j-1番目のマクロブロックMBまでの総符号量を示す。MB_cntは、ピクチャ内のマクロブロック数を示す。
【０１０２】
次に、ステップＳ７において、量子化スケール計算部２５は、dp,j（以後、djと記載する）を用いて、式（９）により、注目マクロブロックにおけるQスケールの参照値Qjを求める。
Qj = ( dj ×31)/r                              ・・・（９）
ここで、r=2×bit_rate/picture_rateである。
【０１０３】
ステップＳ８において、特徴抽出部２６は、注目マクロブロックのオフセットOFFSETを算出するオフセット算出処理を実行する。オフセット算出処理により得られた注目マクロブロックのオフセットOFFSETは、特徴抽出部２６から量子化スケール調整部２７に供給される。
【０１０４】
ステップＳ９において、量子化スケール調整部２７は、注目マクロブロックの量子化スケールの参照値Qjに対し、オフセットOFFSETを演算して、注目マクロブロックの量子化パラメータを調整する。即ち、量子化スケール調整部２７は、Qj’＝Qj＋OFFSETを演算して、調整後の量子化スケールの参照値Qj’を算出し、量子化部１５に供給する。
【０１０５】
ステップＳ１０において、量子化スケール計算部２５は、全画面特徴抽出部２４からの全画面特徴量に対応するフレームの全てのマクロブロックMBを、注目マクロブロックに設定したかを判定する。
【０１０６】
ステップＳ１０で、フレームの全てのマクロブロックMBが、まだ注目マクロブロックに設定されていないと判定された場合、量子化スケール計算部２５は、処理をステップＳ２に戻す。これにより、全画面特徴抽出部２４からの全画面特徴量に対応するフレームの、まだ注目マクロブロックに設定されていないマクロブロックMBが注目マクロブロックとされ、それ以降の処理が繰り返される。
【０１０７】
一方、ステップＳ１０で、フレームの全てのマクロブロックMBが注目マクロブロックに設定されたと判定された場合、処理は終了する。
【０１０８】
図１１は、特徴抽出部２６が、図１０のステップＳ８で実行する、注目マクロブロックのオフセット算出処理のフローチャートである。
【０１０９】
ステップＳ２１において、振り幅算出部５５は、オフセットTfを決定するためのｎ個のオフセット閾値TH_ldr（n）を算出する。即ち、振り幅算出部５５は、式（１）および式（２）により、マイナス側の振り幅DS１と閾値間隔SP１、およびプラス側の振り幅DS２と閾値間隔SP２を決定する。そして、振り幅算出部５５は、式（３）および式（４）により、ｎ個のオフセット閾値TH_ldr（n）を算出する。
【０１１０】
ステップＳ２２において、平坦検出部５１は、特徴抽出部２６で設定されるオフセットOFFSETにゼロを代入し、初期化する。
【０１１１】
ステップＳ２３において、平坦検出部５１は、注目マクロブロックのダイナミックレンジMdrを算出し、オフセット計算部５４に供給する。
【０１１２】
具体的には、平坦検出部５１は、注目マクロブロックを４つのサブブロックSB１乃至SB４に分割し、サブブロックSBそれぞれについて、局所領域LB１乃至LB３６を設定し、ダイナミックレンジLdr１乃至Ldr３６を検出する。そして、平坦検出部５１は、サブブロックSBのダイナミックレンジの代表値Bdrを、Bdr＝max（Ldr１，Ldr２，・・・，Ldr３６）により計算する。そして、４つのサブブロックSB１乃至SB４のダイナミックレンジの代表値Bdr１乃至Bdr４の最大値を検出し、注目マクロブロックのダイナミックレンジMdrとする。
【０１１３】
ステップＳ２４において、エッジ検出部５２は、注目マクロブロックのエッジの有無を検出し、検出結果をオフセット計算部５４に供給する。
【０１１４】
具体的には、エッジ検出部５２は、注目マクロブロックを４つのサブブロックSB１乃至SB４に分割する。そして、エッジ検出部５２は、４つのサブブロックSBそれぞれについて、局所領域LB１乃至LB３６を設定し、ダイナミックレンジLdr１乃至Ldr３６を検出する。サブブロックSBについて、Ldrｉ＞ka×Bdrを満たす局所領域の数enがカウントされ、カウントされた数enが予め決定された閾値th_enを超えている場合、そのサブブロックSBにはエッジがあると判定される。そして、マクロブロックMBを構成する４つのサブブロックSBのうち、１つでもエッジありと判定された場合、注目マクロブロックにはエッジがあると判定される。
【０１１５】
ステップＳ２５において、色検出部５３は、注目マクロブロックの、視覚的に目立つ色の有無を検出し、検出結果をオフセット計算部５４に供給する。具体的には、視覚的に目立つ色として予め決定された所定の色の画素数が注目マクロブロック内でカウントされ、カウントされた画素数が閾値th_c以上であれば、その注目マクロブロックには、視覚的に目立つ色があると判定される。
【０１１６】
ステップＳ２３乃至Ｓ２５のそれぞれは、並行して実行することが可能である。
【０１１７】
ステップＳ２６において、オフセット計算部５４は、注目マクロブロックのダイナミックレンジMdr、エッジの有無、および、色検出の有無に応じて、オフセットOFFSETを求め、量子化スケール調整部２７に供給する。
【０１１８】
具体的には、オフセット計算部５４は、マクロブロックMBのダイナミックレンジMdrがｎ個のオフセット閾値TH_ldr（n）により分割された（ｎ＋１）個の範囲のどこに属するかに応じてオフセットTfを決定する。また、オフセット計算部５４は、マクロブロックMBのエッジ検出および色検出の有無に応じてオフセットTcおよびTmをオフセットOFFSETから減算するかを決定する。そして、オフセット計算部５４は、オフセットTfに、オフセットTcおよびTmを、必要に応じて減算した結果を、オフセットOFFSETとする。
【０１１９】
ステップＳ２６で、演算結果のオフセットOFFSETが量子化スケール調整部２７に供給されると、図１０のステップＳ８が終了し、処理は図１０のステップＳ９に進む。
【０１２０】
以上説明した量子化パラメータ決定処理によれば、Iピクチャに対して多くの符号量を割り当てられるとともに、ピクチャ内においては視覚的に劣化の目立ちやすい平坦部に符号量が多く配分される。これにより、予め定めたビットレート内で、画質の劣化を抑えた符号量制御と量子化制御を行うことが可能になる。
【０１２１】
また、量子化パラメータ決定処理によれば、背景技術に記載の特許文献２で特徴量として用いていた分散の代わりに、局所領域LBのダイナミックレンジDRの最大値（ダイナミックレンジMdr）を用いて、マクロブロックMB内の高域成分が抽出される。これにより、量子化パラメータを調整する特徴量を、人間の実際の視覚にあった特徴量とすることができる。
【０１２２】
［本発明の効果］
図１２を参照して、量子化パラメータの調整に用いる特徴量として、分散を用いた場合と、局所領域LBのダイナミックレンジDRの最大値を用いた場合との違いについて説明する。
【０１２３】
図１２のグラフ６１A乃至６１Cは、マクロブロックMB内の水平方向の１ラインの入力波形（画素値）を示している。グラフ６１Aは、画素値がなだらかに変化している波形の例であり、グラフ６１Bは、水平方向のある位置で、画素値が一方向に変化している例であり、グラフ６１Cは、水平方向の一部で画素値が上下に振れている例である。
【０１２４】
図１２のグラフ６２A乃至６２Cは、グラフ６１A乃至６１Cの波形に対し、従来の分散を特徴量として用いた場合に計算される評価量を示している。
【０１２５】
分散という特徴量は(エッジの大きさ)×(エッジの回数)を表す特徴量であるため、図中黒の塗りつぶし部分の面積が評価量となってしまう。そのため、分散という特徴量では、図１２に示されるように、グラフ６１Cの波形に対する評価量が、急峻なエッジが含まれているのにも関わらず小さな値となってしまう。従って、量子化パラメータの調整に用いる特徴量として分散を用いた場合には、必ずしも視覚的に目立つエッジの大きさを表さず、視覚的な評価量と逆転してしまうケースがある。
【０１２６】
これに対して、図１２のグラフ６３A乃至６３Cは、グラフ６１A乃至６１Cの波形に対し、符号化装置１が採用する、局所領域LBのダイナミックレンジDRの最大値を、特徴量として用いた場合に計算される評価量を示している。
【０１２７】
局所領域LBのダイナミックレンジDRの最大値を用いることにより、分散という特徴量が表す意味の（エッジの大きさ)×(エッジの回数)のうちの、(エッジの回数)の部分を敢えてなくし、（エッジの大きさ)のみを表す特徴量とすることができる。
【０１２８】
その結果、図１２に示されるように、グラフ６１Bと６１Cのいずれの波形に対しても、計算される評価量が大となる。即ち、視覚的に目立つエッジに対して、評価量を大きくすることができ、人間の実際の視覚にあった特徴量とすることができる。
【０１２９】
［局所的なダイナミックレンジDRのその他の例］
上述した実施の形態では、マクロブロックMBを分割したサブブロックSB内で設定する局所領域LBを、３×３画素としたが、局所領域LBはこれに限定されるものではない。例えば、最も小さなものとして、局所領域LBを２画素に設定することができる。即ち、隣接画素差分の最大値をサブブロックSB内で検出することにより、ダイナミックレンジLDR（Ldr）を検出することも可能である。
【０１３０】
図１３は、局所領域LBが隣接する２画素である場合の、図５に対応する図である。
【０１３１】
サブブロックSBに対し、水平方向に隣接する隣接画素を局所領域LBに設定することで、局所領域LB１乃至LB５６が得られる。また、サブブロックSBに対し、垂直方向に隣接する隣接画素を局所領域LBに設定することで、局所領域LB１’乃至LB５６’が得られる。
【０１３２】
そして、局所領域LB１乃至LB５６と局所領域LB１’乃至LB５６’で構成される隣接画素の差分値の最大値が、サブブロックSBのダイナミックレンジの代表値BDRまたはBdrとされる。
【０１３３】
図１４は、量子化パラメータの調整に用いる特徴量として、隣接画素差分の最大値を採用した場合の、図１２と同様の評価量の違いを説明する図である。
【０１３４】
図１４において、図１２のグラフ６３A乃至６３Cに代えて、隣接画素差分の最大値に対応する評価量であるグラフ６４A乃至６４Cが示されている以外は図１２と同様である。
【０１３５】
図１４のグラフ６４Bおよび６４Cを参照して分かるように、隣接画素差分の最大値を採用した場合でも、グラフ６１Bと６１Cのいずれの波形に対しても、計算される評価量が大となる。即ち、視覚的に目立つエッジに対して、評価量を大きくすることができ、人間の実際の視覚にあった特徴量とすることができる。
【０１３６】
以上のように、符号化装置１の量子化パラメータ決定処理によれば、従来の分散を特徴量として用いた場合と同じ発生符号量でも、視覚的劣化の目立ちやすいマクロブロックMBに対する画質を改善することができる。
【０１３７】
さらに、符号化装置１の量子化パラメータ決定処理によれば、一画面を構成する全てのマクロブロックMBのダイナミックレンジMDRの最大値ldrMax、最小値ldrMin、および平均値ldrAveが算出される。そして、最大値ldrMax、最小値ldrMin、および平均値ldrAveを用いて、マクロブロックMBの平坦度の特徴量に対応するオフセットTfを決定するためのｎ個のオフセット閾値TH_ldr（n）が算出される。これにより、画面内の各マクロブロックMBの平坦度の、画面全体における相対的な度合いに応じて、適応的に量子化パラメータを変化させることができる。
【０１３８】
これにより、画像依存性の問題を軽減することができる。即ち、従来、一画面で全体的に高域成分が多く分布している画像の場合には、画面全体での量子化パラメータの平均値が上昇してしまう。そのため、分散等の特徴量を用いて視覚的に劣化の目立ちやすい平坦部を抽出しても十分な画質改善効果をあげることが出来ないという問題があった。符号化装置１の量子化パラメータ決定処理によれば、このような問題を軽減することができる。
【０１３９】
なお、符号化装置１において、全画面特徴抽出部２４は省略することができる。この場合、特徴抽出部２６の振り幅算出部５５も省略され、平坦検出部５１では、固定の閾値TH_ldr(n)に基づいてオフセットTfが決定される。
【０１４０】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１４１】
図１５は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０１４２】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３は、バス１０４により相互に接続されている。
【０１４３】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、及びドライブ１１０が接続されている。
【０１４４】
入力部１０６は、キーボード、マウス、マイクロホンなどよりなる。出力部１０７は、ディスプレイ、スピーカなどよりなる。記憶部１０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１０９は、ネットワークインタフェースなどよりなる。ドライブ１１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体１１１を駆動する。
【０１４５】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５及びバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【０１４６】
コンピュータ（CPU１０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体１１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０１４７】
コンピュータでは、プログラムは、リムーバブル記録媒体１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【０１４８】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１４９】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１５０】
１  符号化装置，  １４  直交変換部，  １５  量子化部，  ２４  全画面特徴抽出部，  ２５  量子化スケール計算部，  ２６  特徴抽出部，  ２７  量子化スケール調整部，  ４１  ブロック平坦検出部，  ４２  最大・最小・平均値算出部，  ５１  平坦検出部，  ５２  エッジ検出部，  ５４  オフセット計算部
【図１】
0005618128.tif 000002
【図２】
0005618128.tif 000003
【図３】
0005618128.tif 000004
【図４】
0005618128.tif 000005
【図５】
0005618128.tif 000006
【図６】
0005618128.tif 000007
【図７】
0005618128.tif 000008
【図８】
0005618128.tif 000009
【図９】
0005618128.tif 000010
【図１０】
0005618128.tif 000011
【図１１】
0005618128.tif 000012
【図１２】
0005618128.tif 000013
【図１３】
0005618128.tif 000014
【図１４】
0005618128.tif 000015
【図１５】
0005618128.tif 000016