(57)【特許請求の範囲】
【請求項１】
入力画像を符号化したときの画像単位ごとの発生符号量が上記画像単位ごとの目標符号量に最も近い量子化因子を基本量子化因子として決定する基本量子化因子決定部と、
上記画像単位ごとに決定される上記基本量子化因子である平均量子化因子に対してアクティビティに応じたオフセットが付加された使用量子化因子を用いて量子化することにより、上記入力画像をフィードバック制御単位ごとに符号化する符号化部と、
上記符号化部によって符号化された上記入力画像の発生符号量を上記フィードバック制御単位ごとに確認し、上記フィードバック制御単位ごとの発生符号量が増大する傾向にあり、かつ上記画像単位において符号化された部分の目標符号量から符号化された部分の発生符号量を減算した符号量の余りに余裕がない場合、上記画像単位ごとの発生符号量が上記画像単位ごとの目標符号量を超えると予測し、上記使用量子化因子を増大させるフィードバック制御部と
を有する画像処理装置。
【請求項２】
上記フィードバック制御部は、
直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きいとき、上記フィードバック制御単位ごとの発生符号量が増大する傾向にあると判別する
請求項１に記載の画像処理装置。
【請求項３】
上記フィードバック制御部は、
上記フィードバック制御単位ごとの発生符号量が増大する傾向にないか、又は上記画像単位において符号化された部分の目標符号量から符号化された部分の発生符号量を減算した符号量の余りに余裕がある場合において、上記画像単位において符号化された部分の発生符号量が当該符号化された部分の上記目標符号量を超えており、かつ直前のフィードバック制御単位の目標符号量と発生符号量との比を符号化されていない部分の目標符号量に乗算した値から、上記符号量の余りを減算した値が０より大きい場合に、上記画像単位ごとの発生符号量が上記画像単位ごとの目標符号量を超えると予測する
請求項１に記載の画像処理装置。
【請求項４】
上記フィードバック制御部は、
上記画像単位ごとの発生符号量が上記画像単位ごとの目標符号量を超えると予測する場合に、上記使用量子化因子を１だけ増大させる
請求項１に記載の画像処理装置。
【請求項５】
上記フィードバック制御部は、
上記平均量子化因子を増大させることにより、上記使用量子化因子を増大させる
請求項１に記載の画像処理装置。
【請求項６】
入力画像を符号化したときの画像単位ごとの発生符号量が上記画像単位ごとの目標符号量に最も近い量子化因子を基本量子化因子として決定する基本量子化因子決定ステップと、
上記画像単位ごとに決定される上記基本量子化因子である平均量子化因子に対してアクティビティに応じたオフセットが付加された使用量子化因子を用いて量子化することにより、上記入力画像をフィードバック制御単位ごとに符号化して符号化ストリームを生成する符号化ステップと、
上記符号化ステップにおいて符号化された上記入力画像の発生符号量を上記フィードバック制御単位ごとに確認し、上記フィードバック制御単位ごとの発生符号量が増大する傾向にあり、かつ上記画像単位において符号化された部分の目標符号量から符号化された部分の発生符号量を減算した符号量の余りに余裕がない場合、上記画像単位ごとの発生符号量が上記画像単位ごとの目標符号量を超えると予測し、上記使用量子化因子を増大させるフィードバック制御ステップと
を有する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば画像符号化装置等に係り、特に1ピクチャに与えられた目標符号量に画面内フィードバック制御を行わずに発生符号量を合わせ込む技術分野に関する。
【背景技術】
【０００２】
従来、動画のビットストリームを伝送したり記録メディアに記録したりするシステム等においては、伝送路或いは記録容量を効率良く利用するために、高能率符号化が実施されている。これを実現する画像符号化装置では、エンコーダで発生するビットストリームの符号化ビットレートは伝送メディアの転送レートに合わせて一定とされており、この制限の下でデータ発生量、つまり、エンコーダにおける量子化の量子化ステップが制御されている。すなわち、画像符号化装置は、例えば絵柄が複雑な画像が連続するときは量子化ステップを大きくしてデータ発生量を抑圧し、これとは逆に単純な絵柄が連続するときは量子化ステップを小さくしてデータ発生量を増加させることで、バッファメモリのオーバーフロー又はアンダーフローを生じさせないようにして固定レートを保持している。
【０００３】
従って、このような従来技術に係る画像符号化装置は、複雑な画像が連続するときは量子化ステップが大きくなり画質を劣化させ、単純な画像が連続するときは量子化ステップが小さくなり全体を通じて均等な画質を得ることができなかった。この問題に鑑みて、例えば特許文献１では、ＧＯＰ(Group Of Pictures)毎の符号化の難易度と複数のＧＯＰの符号化の難易度の総和の比に従って各ＧＯＰ自身に割り当てられる割当符号量を、絵柄が複雑な画像を含むＧＯＰに対しては多く割り当て、絵柄が単純な画像を含むＧＯＰに対しては少なく割り当てるように算出する画像符号化装置が開示されている。
【０００４】
一方、１ピクチャに与えられた目標符号量に発生符号量を合わせ込む方法として、例えばTM5（test model 5）のstep2が良く知られている。これは、ピクチャに割り当てられた符号量をマクロブロック（MB；Macro block）に均等に配分したものをMBの目標符号量とし、ピクチャ内でフィードバック（feed back）制御をかける事で、目標符号量に合わせ込む手法である。
【０００５】
また、MPEG等の冗長圧縮方式の符号化処理において、画像符号化装置はDCT（Discrete Cosine Transform；離散コサイン変換）等の直行変換を施した後、量子化処理を行うことで情報量を減らす処理を行う。そして、画像符号化装置は、この量子化の値を制御して、符号量の制御を行う。このとき、量子化パラメータと発生符号量との間には単調な減少関係が成立する。このため、画像符号化装置は、適当な間隔の量子化値で実際に符号量を計算して、その中間に位置する符号量の予測値については直線的な補間を行う等すれば、発生符号量を予測することができる（DV等のイントラVTRで行われるバイナリサーチ等）。
【０００６】
この方法は、MPEG2等の固定テーブルを使用した符号化方式だけでなく、AVC等で用いられる適応型（Context Adaptive）な符号化方式においても適用可能である。
【特許文献１】特許第３３５８６２０号公報。
【０００７】
しかしながら、前述したTM5のstep2の方法では、シーケンス先頭ピクチャやシーンチェンジ直後ピクチャのエンコードにおいて、量子化ステップの初期値が、そのピクチャの絵柄に合ったものではないため、画質が劣化する場合があった。
【０００８】
例えばTM5のstep2の方法において、画像符号化装置は、フォードバックが絵柄に追従するまでの部分の量子化ステップが大きすぎる場合は、その部分の画質が他の部分に比べて劣化してしまい、量子化値が小さすぎる場合は、その部分で符号量を使いすぎてしまい、他の部分にその影響が及ぶおそれがある。
【０００９】
また、画像符号化装置は、MBの目標符号量を常に一定にしているため、画面内で画の難しさに偏りがある時などは、不適切な符号量配分になっていた。
【００１０】
そこで、本発明は、量子化ステップの基になる使用量子化因子を大きく変動させることなく、画像単位ごとの発生符号量を目標符号量以下に確実に抑制することを課題とする。
【発明の開示】
【００１１】
かかる課題を解決するため本発明の画像処理装置においては、入力画像を符号化したときの画像単位ごとの発生符号量が画像単位ごとの目標符号量に最も近い量子化因子を基本量子化因子として決定する基本量子化因子決定部と、画像単位ごとに決定される基本量子化因子である平均量子化因子に対してアクティビティに応じたオフセットが付加された使用量子化因子を用いて量子化することにより、入力画像をフィードバック制御単位ごとに符号化する符号化部と、符号化部によって符号化された入力画像の発生符号量をフィードバック制御単位ごとに確認し、フィードバック制御単位ごとの発生符号量が増大する傾向にあり、かつ画像単位において符号化された部分の目標符号量から符号化された部分の発生符号量を減算した符号量の余りに余裕がない場合、画像単位ごとの発生符号量が画像単位ごとの目標符号量を超えると予測し、使用量子化因子を増大させるフィードバック制御部とを設けるようにした。
【００１２】
これにより、画像処理装置は、限定的な条件において、使用量子化因子を増大のみさせるため、使用量子化因子の変動を最小限に抑制することができる。
【００１３】
また、本発明の画像処理方法では、入力画像を符号化したときの画像単位ごとの発生符号量が画像単位ごとの目標符号量に最も近い量子化因子を基本量子化因子として決定する基本量子化因子決定ステップと、画像単位ごとに決定される基本量子化因子である平均量子化因子に対してアクティビティに応じたオフセットが付加された使用量子化因子を用いて量子化することにより、入力画像をフィードバック制御単位ごとに符号化して符号化ストリームを生成する符号化ステップと、符号化ステップにおいて符号化された入力画像の発生符号量をフィードバック制御単位ごとに確認し、フィードバック制御単位ごとの発生符号量が増大する傾向にあり、かつ画像単位において符号化された部分の目標符号量から符号化された部分の発生符号量を減算した符号量の余りに余裕がない場合、画像単位ごとの発生符号量が画像単位ごとの目標符号量を超えると予測し、使用量子化因子を増大させるフィードバック制御ステップとを設けるようにした。
【００１４】
これにより、画像処理方法は、限定的な条件において、使用量子化因子を増大のみさせるため、使用量子化因子の変動を最小限に抑制することができる。
【００１５】
本発明によれば、限定的な条件において、使用量子化因子を増大のみさせるため、使用量子化因子の変動を最小限に抑制することができる。かくして使用量子化因子を大きく変動させることなく、画像単位ごとの発生符号量を目標符号量以下に確実に抑制することができる画像処理装置及び画像処理方法を実現できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の第１の形態に係る画像符号化装置の構成図。
【図２】図２は、本発明の第１の実施の形態に係る画像符号化装置による符号化の処理手順を詳細に説明するフローチャート。
【図３】図３は、適応的なQ Matrixの切り替え処理について更に説明するフローチャート。
【図４】図４は、離散的な値のQPの補正を行い、間のQPについて補間により符号量を計算することを説明する概念図。
【図５】図５は、本発明の第２の形態に係る画像符号化装置の構成図。
【図６】図６は、フィードバック制御での基本QPの決定処理について、その処理手順を説明するフローチャート。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明を実施するための最良の形態（以下、単に実施の形態と称する）について詳細に説明する。なお説明は以下の順序で行う。
１．第１の実施の形態（離散的な選択量子化パラメータを用いた発生符号量の推測）
２．第２の実施の形態（フィードバック制御）
３．他の実施の形態
【００１８】
＜１．第１の実施の形態＞
［１−１．本発明の特徴］
この実施の形態に係る画像符号化装置１００及び画像符号化方法は、以下などを特徴とする。
【００１９】
画像符号化装置１００は、Ｈ．２６４／AVC（Advanced Video Coding;高度動画像圧縮符号化標準）等に代表される算術符号化を用いた画像圧縮方式でなる。画像符号化装置１００は、符号量制御を行う際に、ピクチャ内で良好な符号量分布を実現するために、並列プレエンコード（Pre Encode）と直列プレエンコードを組み合わせる。これにより、画像符号化装置１００は、回路規模とLatency（遅延時間）の増加を抑えつつ、精度のよい予測を行う。
【００２０】
より詳細には、画像符号化装置１００は、第１及び第２のプレエンコード部１及び２により、量子化と符号長計算部のみ並列に行い、他の処理要素は共用することで、回路共通化による回路規模の削減を図る。
【００２１】
つまり、本来であれば、並列プレエンコードを行う場合には、全ての処理要素を並列に設ける必要があるところ、この実施の形態に係る画像符号化装置１００では、精度に影響なく共通化できる処理要素を的確に特定し、該処理要素につき回路を共通化する。これにより、第１及び第２のプレエンコード部１及び２自体の回路規模とlatency（遅延時間）の増加を抑える。
【００２２】
そして、第１のプレエンコード部１では、少し精度を落とし回路規模並びに処理負荷を抑えた並列プレエンコードを広い範囲の量子化パラメータ（QP）で行い、目標符号量を実現するQPを粗く見積もる。第２のプレエンコード部２では、精度を上げた並列プレエンコードを狭い範囲で行い、本エンコード部３で使用する基本量子化パラメータQPＭＢを決定する。以上により、画像符号化装置１００は、画像符号化の精度を上げつつ処理負荷を軽減する。さらに、プレエンコードを簡略化したことによる誤差がビットレートや量子化パラメータQPと相関を持つことから、詳細は後述するような統計モデルを予め作成しておき、ビットレートや量子化パラメータQPから誤差の補正を行うこととしている。
【００２３】
図１には、本発明の一実施の形態に係る画像符号化装置１００の構成を示し説明する。
【００２４】
この画像符号化装置１００は、第１のプレエンコード部１、第２のプレエンコード部２、本エンコード部３、符号量制御部４、ディレイバッファ５，６を有している。
【００２５】
第１のプレエンコード部１は、第１のプレエンコードを行うモジュールであり、画面内予測モード決定部１１、画面内予測処理部１２、DCT（Discrete Cosine Transform；離散コサイン変換）部１３、量子化部１４、エントロピー符号長計算部１５、アクティビティ（Activity）計算部１６を備えている。
【００２６】
第２のプレエンコード部２は、第２のプレエンコードを行うモジュールであり、画面内予測処理部２１、DCT部２２、量子化部２３、エントロピー符号長計算部２４、バッファ２５、IDCT（Inverse DCT）部２６、逆量子化部２７を備えている。
【００２７】
そして、本エンコード部３は、本エンコードを行うモジュールであり、画面内予測処理部３１、DCT部３２、量子化部３３、エントロピー符号化部３４、バッファ３５、IDCT部３６、逆量子化部３７を備えている。
【００２８】
符号量制御部４は、符号量制御を行うモジュールである。
【００２９】
［１−２．量子化パラメータ及び量子化行列の予測］
［１−２−１．低精度発生符号量の算出］
画像符号化装置１００は、符号化難易度に応じて例えば３つの量子化行列Q Matrixを適用的に選択して使用する（詳しくは後述する）。画像符号化装置１００は、一の量子化行列Q Matrixを設定すると共に、当該設定された量子化行列Q Matrixの取り得る範囲の量子化パラメータQPについて、第１のプレエンコード部１による簡易な処理によって発生符号量を粗く見積もる。以下、当該プレエンコード部１の結果により見積もられた発生符号量を低精度発生符号量と呼ぶ。画像符号化装置１００は、全ての量子化行列Q Matrixについて同様の処理を実行し、量子化行列Q Matrix及び量子化パラメータQPを変更したときの低精度発生符号量を算出する。そして画像符号化装置１００は、低精度発生符号量が目標符号量に最も近くなる量子化パラメータQP及び量子化行列Q Matrixを次のステップ（第２のプレエンコード部２）でピクチャの平均量子化パラメータBase QPとして使用する予測量子化パラメータQPｄ、次のステップで使用するピクチャの量子化行列Q Matrix（以下、これを予測量子化行列Q MatrixDと呼ぶ）とする。
【００３０】
このとき画像符号化装置１００は、離散的に選択された一部の量子化パラメータQP（以下、これを選択量子化パラメータQPlと呼ぶ）を用いて入力画像９１における低精度発生符号量を算出する。画像符号化装置１００は、選択量子化パラメータQPl間の低精度発生符号量を補間によって算出することにより、量子化行列Q Matrixが取り得る範囲の量子化パラメータQPの全てについて、低精度発生符号量を算出するようになされている。
【００３１】
実際上、入力画像９１は、最初に第１のプレエンコード部１の画面内予測モード決定部１１に入力される。画面内予測モード決定部１１は、この入力画像９１に基づいて、全ての画面内予測モードによって差分画像データを生成すると共に、当該差分画像データの発生符号量の予測に基づいて画面内予測モードを決定する。予測モード（予測方向）は、最小４×４画素単位で９通りの予測モードの中から決定されることになる。
【００３２】
この決定された画面内予測モードは、画面内予測処理部１２に送出されると共に、第２のプレエンコード部２や本エンコード部３にも送出される。この画面内予測モードは、第２のプレエンコード部２による第２のプレエンコード、本エンコード部３による本エンコードでも使用される。
【００３３】
次に画面内予測処理部１２は、予測画像と入力画像９１との差分画像を計算し、差分画像データを生成する。ここでの予測画像は、処理を削減するため入力画像９１から作られる。このように、第１のプレエンコード部１は、入力画像を用いて画面内予測処理を行うことで、逆量子化部、IDCT部、バッファを削減することができ、回路規模を削減することが可能となる。
【００３４】
DCT部１３は、差分画像データに対して整数精度DCT処理を実行し、DCT係数を生成すると、これを量子化部１４に送出する。量子化部１４は、このDCT係数について量子化を行い、量子化係数を生成すると、これをエントロピー符号長計算部１５に送出する。エントロピー符号長計算部１５は、量子化係数に対し、コンテキスト適応型可変長符号化方式（CAVLC； Context-Adaptive Variable Length Coding）を行うことにより符号量を計算する。CAVLCによれば、周囲の状況に応じて高効率の符号化方式を適応的に選択できる。
【００３５】
このように第１のプレエンコードでは、本エンコードにおいてエントロピー符号化方式としてCABAC（Context-Adaptive Binary Arithmetic Coding）を用いる場合でも、符号量計算にCAVLCを用いることを特徴の一つとしている。尚、CABACとは、コンテキスト適応型２値算術符号化方式である。
【００３６】
ここで、量子化部１４は、並列に設けられた量子化部１４−１，…，１４−ｎ（ｎ＝１，２，３・・）により構成され、エントロピー符号長計算部１５は、並列に設けられたエントロピー符号長計算部１５−１，…，１５−ｎ（ｎ＝１，２，３・・）により構成されている。ｎの値は、例えば１５に設定されている。量子化部１４は、０〜５１でなる量子化パラメータQPのうち、設定されている量子化行列Q Matrixに対応した選択量子化パラメータQPlを各量子化部１４−１，…，１４−ｎに設定する。この選択量子化パラメータQPlは、量子化行列Q Matrixが取り得る量子化パラメータQPの範囲から、任意の間隔で離散的に選択される。なお選択量子化パラメータQPlは、例えば一定間隔で選択されても良く、量子化パラメータQPの値に応じて変化する間隔で選択されても良い。このような構成の下、第１のプレエンコード部１は、量子化と符号長計算を、上記並列数と同数の複数の量子化パラメータQPに対して並列に実行し、それぞれの発生符号量を符号量制御部４に出力する。
【００３７】
即ち、第１のプレエンコード部１は、量子化部１４、エントロピー符号長計算部１５による回路規模を抑えた並列プレエンコードにより、広い範囲の量子化パラメータQPで第１のプレエンコードを行うことで、広い範囲の量子化パラメータQPに対する発生符号量を算出する。
【００３８】
ここで、アクティビティ計算部１６は、画面内予測モード決定部１１による画面内予測モードの決定と同時並行して、アクティビティ（Activity）を計算し、該アクティビティによりマクロブロック（MB；Macro Block）をグループ分けする。つまり、NumOfActivityGroupのグループに分ける場合を想定すると、アクティビティ計算部１６は、ActivityTheshold[0] 〜 ActivityTheshold[NumOfActivityGroup - 2] とアクティビティの値とを比較することにより、アクティビティグループを決定する。
【００３９】
尚、量子化処理において実際に使用される量子化パラメータQPは、ピクチャの平均量子化パラメータQP (BaseQP)に対して、アクティビティグループに依存したオフセット(AdaptQPDelta)を加えることで求められる。
【００４０】
MB_QP＝BaseQP＋AdaptQPDelta[activity_group]
【００４１】
例えば、NumOfActivityGroupを13とするなら、AdaptQPDeltaの各値は、
【００４２】
AdaptQPDelta[13]＝{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
【００４３】
とすることができる。
【００４４】
各MBに対して決定されたアクティビティグループ（Activity Group）番号は、量子化部１４に入力される。量子化部１４は、選択量子化パラメータQPlに対し、アクティビティグループに応じたオフセットを付加して適応量子化パラメータＱＰｔを算出する。量子化部１４は、適応量子化パラメータＱＰｔに基づいて、DCT係数に対する量子化処理を実行する。
【００４５】
第１のプレエンコード部１は、次の量子化行列Q Matrix及び当該量子化行列Q Matrixに対応する選択量子化パラメータQPlを設定することにより、同様にして発生符号量を算出する。この結果、第１のプレエンコード部１は、量子化行列Q Matrix及び当該量子化行列Q Matrixに対応する選択量子化パラメータQPlについて、発生符号量をそれぞれ算出することになる。
【００４６】
［１−２−２．発生符号量の誤差の補正］
符号量制御部４は、第１のプレエンコード部１において算出された発生符号量に対して補正を行う。
【００４７】
ここでの補正は、誤差が、ある程度の傾向を持っている事を利用して行う。
【００４８】
一つ目の誤差要因は、画面内予測処理にローカルデコード（Local Decode）画ではなく入力画像９１を用いている事である。この場合、画面内予測に使う画にコーデック（Codec）による歪がのっていないので、実際のエンコードより符号化効率が良くなり、符号量が少なめに出る傾向がある。この誤差の大きさは、歪の大きさに依存するので、発生符号量と誤差の関係では、ビットレート（Bit rate）が小さくなると誤差が大きくなる傾向がある。また、量子化パラメータQPと誤差の関係では、量子化パラメータQPが大きくなると誤差が大きくなる傾向にある。よって、予め誤差の大きさの統計データを取り、ビットレート“r”とQP“q”の関数として定義する。
【００４９】
具体的に、符号量制御部４は、CAVLCによって符号化されたときの発生符号量について、ビットレートによる平均的な誤差のモデル、量子化パラメータQPによる平均的な誤差のモデルをそれぞれ作成しておく。この誤差モデルは、量子化パラメータQP及びビットレートにそれぞれ対応する例えば数式やテーブルとして予め記憶される。符号量制御部４は、量子化パラメータQP及びビットレートから補正すべき誤差を表す補正量C_rate、C_qpを、対応する誤差モデルからそれぞれ算出する。符号量制御部４は、量子化パラメータQP及びビットレートに対応する補正量C_rate、C_qpのうち、次式に従って小さい値を補正量Cｖとして選択する。
【００５０】
補正量Cｖ＝min（C_rate、C_qp）
【００５１】
これにより、誤差の補正量が大きくなり過ぎてしまい、補正された発生符号量が第２のプレエンコード部２において算出される高精度発生符号量よりも大きくなってしまうことを防止し得るようになされている。なおこの補正量C_rate、C_qpは、第１のプレエンコード部１によって算出された発生符号量（Pre-Encode符号量）に対する補正量の割合（％）を表している。
【００５２】
符号量制御部４は、第１のプレエンコード部１によって算出された発生符号量に対し、次式に従って補正量Cｖを乗算することにより、発生符号量に対する補正量（以下、これをCAVLC補正符号量と呼ぶ）を算出する。
【００５３】
CAVLC補正符号量＝Pre-Encode符号量×Ｃｖ
【００５４】
符号量制御部４は、発生符号量に対してCAVLC補正符号量を加算することにより、CAVLCについての低精度発生符号量を算出する。
【００５５】
二つ目の誤差要因は、エントロピー符号化方式でCABACを選択したときのみ発生するものである。第１のプレエンコード部１では、CABACによる符号化を実行せず、CAVLCの符号量からCABACによって符号化したときの低精度発生符号量を予測する。CABACはCAVLCより符号化効率が良いので、CAVLCでプレエンコードした発生符号量は、実際の符号量より多めに出る傾向がある。例えば、発生符号量と誤差の関係では、この誤差の大きさは統計的に見てビットレート（Bit rate）が小さくなるとCABACの効率が良くなることに起因して、大きくなる傾向にある。これも同様に、予め誤差の大きさの統計データを取り、平均的な誤差のモデルを作成しておくことで補正する。
【００５６】
CABACに起因する誤差は、CAVLCの符号量による符号化において生じる誤差と比較して、量子化パラメータQP及びビットレートに関し反対側に変化し、その変化量は小さいことが明らかになった。
【００５７】
そこで、CABACについての補正量（以下、これをCABAC補正量と呼ぶ）をビットレート“r”とQP“q”の関数として定義する。このとき、補正量Cｂは、次式によって算出される。
【００５８】
補正量Cｂ＝min（ｒ,ｑ）
【００５９】
符号量制御部４は、第１のプレエンコード部１によって算出された発生符号量（Pre-Encode符号量）に対し、次式に従って補正量Cｖを乗算することにより、発生符号量に対する補正量（以下、これをCABAC補正符号量と呼ぶ）を算出する。
【００６０】
CABAC補正符号量＝Pre-Encode符号量×Ｃｂ
【００６１】
符号量制御部４は、低精度発生符号量に対してCABAC補正符号量を加算することにより、CABACについての低精度発生符号量を算出する。符号量制御部４は、図２に示すように、第１のプレエンコード部１によって算出された発生符号量（四角で表す）に対して補正されたCAVLC補正量及びCABAC補正符号量（黒丸で表す）をそれぞれ算出することができる。
【００６２】
次に、符号量制御部４は、量子化パラメータ(QP)の推定処理を行う。上述したように、第１のプレエンコード部１は、任意の間隔で、離散的な値の選択量子化パラメータQPlでプレエンコードを行って発生符号量を取得している。符号量制御部４は、量子化行列Q Matrixの取り得る量子化パラメータQPの範囲のうち、選択量子化パラメータQPl以外の量子化パラメータQPに関して、補間により発生符号量を計算する（白丸で示す）。補間処理としては、線形補間など一般的な補間処理を用いることができる。
【００６３】
即ち、図２に示されるように、第１のプレエンコード部１で得た離散的な値の量子化パラメータQP（四角で示す）ついて、補正を行い補正後の量子化パラメータQP（黒丸で示す）を得て、更に、その間の量子化パラメータQP（白に丸で示す）について補間により符号量を計算することになる。
【００６４】
このように、符号量制御部４は、第１のプレエンコード部１によって算出された発生符号量に対し、当該第１のプレエンコード部１において簡易化した処理に応じて発生する発生符号量の誤差を補正してCAVLCについての低精度発生符号量を算出する。これにより、符号量制御部４は、簡易化された符号化処理による発生符号量の予測精度を向上させ得る。符号量制御部４は、CAVLCについての低精度発生符号量を用いてCABACによる発生符号量の予測量である低精度発生符号量を算出する。これにより、符号量制御部４は、処理の複雑なCABACを行うことなく、CABACによる低精度発生符号量を見積もることができる。符号量制御部４は、離散的に選択された選択量子化パラメータQPlによって予測された低精度発生符号量から、補間処理により、当該選択量子化パラメータQPl以外の量子化パラメータQPについての低精度発生符号量を予測する。これにより、符号量制御部４は、わざわざ全ての量子化パラメータQPを用いて入力画像９１を符号化せずに済み、第１のプレエンコード部１の構成を簡易にすることができる。
【００６５】
［１−２−３．予測量子化行列の決定］
上述したように、量子化行列Q Matrixが取り得る全ての量子化パラメータQPについて、低精度発生符号量が算出された。符号量制御部４は、符号化難易度に応じて量子化行列Q Matrixを変更し、変更された量子化行列Q Matrixに対応する低精度発生符号量に基づいて、目標符号量に最も近い量子化パラメータQPを基本量子化パラメータQPＭＢとして選択するようになされている。
【００６６】
符号量制御部４は、量子化行列Q Matrix毎に、目標符号量に一番近い低精度発生符号量が生成されたときに使用された量子化パラメータQPを近傍量子化パラメータQPnとして選択する。符号量制御部４は、符号化難易度として、例えば各量子化行列Q Matrix毎に選択された近傍量子化パラメータQPnを使用する。もちろん、アクティビティなど別の指標を用いることも可能である。ここでは、切り替えて使う量子化行列Q Matrixの数をNumOfQMatrixIdとし、傾斜の緩やかな量子化行列Q Matrixから昇順にId（識別子）を付け、各量子化行列Q Matrixの取り得る範囲における最大の量子化パラメータQPをQMatrixTheshold[Id]とする。
【００６７】
符号量制御部４は、Idの値の小さい量子化行列Q Matrixから近傍量子化パラメータQPnとQMatrixThesholdとを比較する。符号量制御部４は、近傍量子化パラメータQPnがQMatrixTheshold[Id]より小さい量子化行列Q Matrixのうち、最小のIdを有する量子化行列Q Matrixを予測量子化行列Q MatrixDとして決定する。符号量制御部４は、当該予測量子化行列Q MatrixＤにおける近傍量子化パラメータQPnを予測量子化パラメータQPdとして決定する。
【００６８】
すなわち符号量制御部４は、低精度発生符号量が目標符号量に近い量子化パラメータQPを取り得る量子化行列Q Matrixのうち、最小の傾斜を有する量子化行列Q Matrixを予測量子化行列Q MatrixDとして決定する。この予測量子化行列Q MatrixDは本エンコード部３による本エンコードにも使用されることになる。符号量制御部４は、低精度発生符号量の条件を満たす中で最小の傾斜を有する量子化行列Q Matrixを用いることができるため、画質の劣化を極力防止することができる。
【００６９】
なお、符号量制御部４は、第１のプレエンコード部１によってIdの小さい量子化行列Q Matrixから順に当該量子化行列Q Matrixの取り得る範囲の選択量子化パラメータQPlについて低精度発生符号量を算出する。そして符号量制御部４は、近傍量子化パラメータQPnがQMatrixTheshold[Id]より小さい量子化行列Q Matrixを検出した場合には、当該量子化行列Q Matrix及び近傍量子化パラメータQPnを予測量子化行列Q MatrixD及び予測量子化パラメータQPdとして決定する。このとき符号量制御部４は、第１のプレエンコード部１に次のピクチャに対する処理を開始させる。すなわち符号量制御部４は、第１のプレエンコード部１に処理中のピクチャに関する次のIdでなる量子化行列Q Matrixについての低精度発生符号量を算出させない。これにより、符号量制御部４は、予測量子化パラメータQPd及び予測量子化行列Q MatrixDを決定するのに要する処理時間を短縮し得る。
【００７０】
このように、符号量制御部４は、低精度発生符号量が目標符号量に近くなる量子化パラメータQPを取り得る量子化行列Q Matrixのうち、画質の低下を防止するために最も傾斜の小さい量子化行列Q Matrixを予測量子化行列Q MatrixDとして選択する。符号量制御部４は、予測量子化行列Q MatrixDにおいて低精度発生符号量が目標符号量に最も近くなる量子化パラメータQPを予測量子化パラメータQPdとして選択する。これにより、符号量制御部４は、画質を極力低下させないように適応的に量子化行列Q Matrixを変更しつつ、低精度発生符号量が目標符号量に最も近くなる量子化パラメータQPを予測量子化パラメータQPdとして選択することができる。
【００７１】
［１−３．基本量子化パラメータの決定］
第２のプレエンコード部２は、予測量子化パラメータQPd及び予測量子化行列Q MatrixDを用いて実際にエンコーダ３と同様の符号化を実行することにより、高精度発生符号量を高い精度で算出する。以下、この第２のプレエンコード部２によって算出された発生符号量を高精度発生符号量と呼ぶ。このとき第２のプレエンコード部２は、予測量子化パラメータQPdだけでなく、当該予測量子化パラメータQPdの前後の量子化パラメータQPを用いて高精度発生符号量を算出し、その変動率を用いて予測量子化パラメータQPd近傍の高精度発生符号量を予測する。
【００７２】
符号量制御部４は、予測量子化パラメータQPｄ、予測量子化行列Q MatrixD及び各MBのアクティビティグループを第２のプレエンコード部２に供給する。第２のプレエンコード部２は、これらの値に基づいて第２のプレエンコードを行う。
【００７３】
第２のプレエンコード部２では、入力画像９１が、ディレイバッファ５を介して遅延処理された後に画面内予測処理部２１に入力される。画面内予測処理部２１は、予測画像と入力画像９１との差分を計算し、差分画像データを生成する。そして、DCT部２２は、差分画像データに対してDCT処理を実行しDCT係数を生成する。量子化部２３は、DCT係数に対して量子化処理を実行し、量子化係数を生成する。エントロピー符号長計算部２４は、CAVLC又はCABACを用いて量子化係数をそれぞれエントロピー符号化し、高精度発生符号量を計算する。
【００７４】
尚、第２のプレエンコード部２における処理の過程において、量子化部２３は量子化係数を逆量子化部２７に送出する。逆量子化部２７は、量子化係数を逆量子化してDCT係数を再生する。そして、IDCT部２６はDCT係数をIDCT変換し、ローカルデコード画像を生成し、バッファ２５に保存することになる。
【００７５】
ここで、量子化部２３は、この例では３段の量子化部２３−１，２３−２，２３−３により構成され、エントロピー符号長計算部２４は、この例では３段のエントロピー符号長計算部２４−１，２４−２，２４−３により構成されている。３段と少なくしているのは、既に第１のプレエンコードで量子化パラメータQPが広い範囲で粗く見積もられているからである。
【００７６】
このような構成の下、量子化部２３、エントロピー符号長計算部２４は、並列に処理を実行し、予測量子化パラメータQPd及び当該予測量子化パラメータQPdの前後の量子化パラメータQPでの高精度発生符号量を得ることになる。このとき、エントロピー符号長計算部２４は、本エンコード部３による本エンコードのエントロピー符号化方式と同じ方式をCABAC/CAVLCのいずれかから選択する。
【００７７】
続いて、符号量制御部４は、第２のプレエンコードにより得られた高精度発生符号量から、本エンコードで使用するピクチャの基本量子化パラメータQPMBを決定する。そして、符号量制御部４は、この決定されたピクチャの基本量子化パラメータQPMBや予測量子化行列Q MatrixD、各MBのアクティビティグループから、量子化の情報（Q Matrix、各MBのQP等）を本エンコード部３に送出する。
【００７８】
より詳細には、目標符号量が、第２のプレエンコードで得られた高精度発生符号量に挟まれている場合、つまり、
【００７９】
Generated_bits(QP_precode1+1)  <=Target_bits
<=Generated_bits(QP_precode1-1)
【００８０】
の場合には、目標符号量に最も近い量子化パラメータQPを基本量子化パラメータQPMBとして選択する。
【００８１】
そうでない場合、符号量制御部４は、量子化パラメータQPの変化に対する高精度発生符号量の変動率を、第２のプレエンコードの結果から求める。予測量子化パラメータQPdは、第１のプレエンコード部１による低精度発生符号量に基づいて算出されている。このため目標符号量に最も近い量子化パラメータQPは、予測量子化パラメータQPdの近傍に存在する。量子化パラメータQPの値が近い場合、発生符号量の変動率は略一定である。そこで、符号量制御部４は、予測量子化パラメータQPd及び当該予測量子化パラメータQPdの前後の量子化パラメータQPにおける高精度発生符号量の変動率から各量子化パラメータQPでの高精度発生符号量を予測し、目標符号量に最も近い量子化パラメータQPを基本量子化パラメータQPMBとして選択する。
【００８２】
まず、量子化パラメータQPが「１」減算されたときに、高精度発生符号量が何％変わるかを表すDiffRatio_1を、第２のプレエンコード２の結果から以下のようにして求める。なお、Generated_bitsは第２のプレエンコード２における発生符号量を表しており、QP_precode1は、予測量子化パラメータQPｄを、QP_precode1-1は予測量子化パラメータQPdより「１」小さい量子化パラメータQPを表している。
【００８３】
DiffRatio_1=(Generated_bits(QP_precode1-1)-
Generated_bits(QP_precode1))/Generated_bits(QP_precode1)
【００８４】
量子化パラメータQPが「１」加算されたときに、高精度発生符号量が何％変わるかを表すDiffRatio_２を、第２のプレエンコード２の結果から以下のようにして求める。QP_precode1+1は予測量子化パラメータQPdより「１」大きい量子化パラメータQPを表している。
【００８５】
DiffRatio_2=(Generated_bits(QP_precode1)-
Generated_bits(QP_precode1+1))/Generated_bits(QP_precode1+1)
【００８６】
予測量子化パラメータQPdの近傍における高精度発生符号量の変動率DiffRatioを、以下のようにして求める。
【００８７】
DiffRatio=(DiffRatio_1+DiffRatio_2)/2
【００８８】
すなわち、予測量子化パラメータQPdから正負の方向にそれぞれ「１」だけ変化したときの発生符号量の変動の平均値としてDiffRatioを算出する。
【００８９】
DeltaQPを、高精度発生符号量が目標符号量に最も近い量子化パラメータQPと予測量子化パラメータQPd（QP_precode1）との差の絶対値とすると、目標符号量に最も近い高精度発生符号量に対応する量子化パラメータQPが予測量子化パラメータQPdより１だけ小さい量子化パラメータQP（QP_precode1-1）より小さいときには、高精度発生符号量が目標符号量に最も近い量子化パラメータQPの高精度発生符号量（Generated_bits(QP) ）を以下のように算出する。
【００９０】
Generated_bits(QP)
=Generated_bits(QP_precode1-1)×(1.0+DiffRatio)^(DeltaQP-1)
【００９１】
目標符号量に最も近い高精度発生符号量に対応する量子化パラメータQPが予測量子化パラメータQPdより１だけ大きい量子化パラメータQP（QP_precode1+1）より大きいときには、高精度発生符号量が目標符号量に最も近い量子化パラメータQPの高精度発生符号量（Generated_bits(QP) ）を以下のように算出する。
【００９２】
Generated_bits(QP)
=Generated_bits(QP_precode1+1)×(1.0-DiffRatio)^(DeltaQP-1)
【００９３】
すなわち、符号量制御部４は、予測量子化パラメータQPdの前後の量子化パラメータQPを用いたときの高精度発生符号量に対し、予測量子化パラメータQPdを中心に量子化パラメータQPの値が「１」だけ変化したときの変動率に応じた符号量だけ増減させる。符号量制御部４は、予測量子化パラメータQPdの近傍の量子化パラメータQPを用いた場合の高精度発生符号量を高い精度で算出することができる。
【００９４】
以上のようにして、符号量制御部４は、目標符号量に最も近い量子化パラメータQPを本エンコードにおいて平均量子化パラメータ（BaseQP）として使用する基本量子化パラメータQPMBとして選択することになる。
【００９５】
上述したように、第２のプレエンコード部２では、第１のプレエンコード部１により推定された予測量子化パラメータQPd（QP_precode1）と、ひとつ大きい量子化パラメータQP（QP_precode1+1）, ひとつ小さい量子化パラメータQP（QP_precode1-1）でプレエンコードする。ここで、回路規模削減のため、前述したように、量子化部２３とエントロピー符号長計算部２４のみ並列化し、その他の処理は共用する。
【００９６】
このとき、画面内予測処理で使用するローカルデコード（Local Decode）画は、第１のプレエンコード部１の結果に基づいて推定された予測量子化パラメータQPd（QP_precode1）で量子化したデータとする。つまり、逆量子化とIDCTで処理されるデータは、予測量子化パラメータQPd（QP_precode1）の量子化の出力である。これは、予測量子化パラメータQPdの前後の量子化パラメータQP（QP_precode1+1、QP_precode1-1）を使うプレエンコードの画面内予測処理の入力を、自分自身のローカルデコード（Local Decode）画ではなく、予測量子化パラメータQPd（QP_precode1）のローカルデコード（Local Decode）画で代用することを意味する。
【００９７】
このように、符号量制御部４は、第1のプレエンコード部１の結果に基づく低精度発生符号量の予測により、低精度発生符号量が目標符号量に最も近くなる可能性が極めて高い予測量子化パラメータQPd及びその前後の量子化パラメータQPによって本エンコードと同様の符号化によって高精度発生符号量を算出する。これにより、符号量制御部４は、予測量子化パラメータQPd及びその前後の量子化パラメータQPを用いた場合の高精度発生符号量をほぼ正確に算出することができる。さらに本発明は、狭い範囲内では量子化パラメータQPの変化に伴う高精度発生符号量の変動率がほぼ一定であることに着目した。符号量制御部４は、予測量子化パラメータQPd及びその前後の量子化パラメータQPにおける高精度発生符号量の変動率に基づいて、予測量子化パラメータQPdの近傍の量子化パラメータQPを用いたときの高精度発生符号量を算出する。これにより符号量制御部４は、予測量子化パラメータQPdの近傍の量子化パラメータQPについても、ほぼ正確に高精度発生符号量を算出することができる。
【００９８】
［１−４．本エンコード］
本エンコード部３は、第２のプレエンコード部２の結果に基づいて得られる基本量子化パラメータQPMB、並びに第１のプレエンコード部１の結果に基づいて得られる予測量子化行列Q Matrix、アクティビティグループ、画面内予測モード等を使用して本エンコードを行う。即ち、本エンコード部３は、ディレイバッファ６を介して遅延処理された入力画像９１を受けると、画面内予測処理部３１では第１のプレエンコード時に決定された画面内予測モードで、予測画像と入力画像９１との差分画像データが計算される。DCT部３２はDCT処理を行い、量子化部３３はDCT係数の量子化を行う。量子化部３３の出力（量子化係数）は逆量子化部３７にも送られる。逆量子化部３７は、量子化係数を逆量子化してDCT係数を再生する。そして、IDCT部３６はDCT係数をIDCT変換し、予測画像を生成し、バッファ３５に保存する。
【００９９】
こうして、前述したようなDCT部３２によるDCT、量子化部３３によるDCT係数の量子化を経て、エントロピー符号化部３４によりエントロピー符号化がなされ、目標符号量とされた出力ストリーム９２が出力される。
【０１００】
［１−５．まとめ］
このように、この実施の形態に係る画像符号化装置１００では、第１のプレエンコード部１による第１のプレエンコードにおいて、複数の選択量子化パラメータQPlでエンコードした時の低精度発生符号量を粗く計算することにより、目標符号量になる予測量子化パラメータQPdを見積もる。
【０１０１】
このとき、第１のプレエンコード部１は、任意の間隔の選択量子化パラメータQPlでエンコードした場合の発生符号量を計算するために、並列にエンコードを行うこととしている。
【０１０２】
一般的には、並列にエンコードを行うためには、回路規模が非常に大きくなってしまうが、この実施の形態では、回路規模削減のために並列エンコードを実現しつつ、出来るだけ共通に処理を行うようにして問題を解消している。
【０１０３】
即ち、より具体的に、第１のプレエンコード部１は、先に説明したように、量子化部１４とエントロピー符号長計算部１５のみ並列に設け、他の処理は共用する。また、逆量子化部、IDCT部、バッファを削減するために、予測画像として入力画像を用いて、画面内予測処理を行うこととしている。
【０１０４】
一方、エントロピー符号化でCABACを用いる場合、高いビットレートでは、処理できない事である。即ち、第１のプレエンコード部１は、仮にエントロピー符号化でCABACを用いる場合、符号量予測のために、ある量子化パラメータQPで符号量計算を行おうとしたとき、その量子化パラメータQPでの符号量が大きい場合（すなわち量子化係数における各値が大きい場合）、発生符号量を予測することが出来ない。
【０１０５】
CABACは１bit毎に確率計算を行ってデータを圧縮していくエントロピー符号化方式である。１bitずつ処理するということは、符号量が多くなると処理時間が長くなることを意味し、一定の時間内（例えば１フレームの時間）に処理が終了しなくなる。よって、第１のプレエンコード部１は、仮にエントロピー符号化でCABACを用いる場合、符号量が多い場合は、エントロピー符号化後の発生符号量を計算することができなくなり、高いビットレートにおいて発生符号量を予測することができないのである。
【０１０６】
この点、第１の実施の形態において、第１のプレエンコード部１は、符号量計算にCAVLCを用いる。このように、第１のプレエンコード部１では、回路規模を削減し、処理を削減し、簡略化したプレエンコードを行うことで、低精度発生符号量を粗く見積もる。そして符号量制御部４は、目標符号量に近い低精度発生符号量を有する量子化パラメータQPを予測量子化パラメータQPdとして選択する。
【０１０７】
第２のプレエンコード部２では、第１のプレエンコード部１による予測量子化パラメータQPdの推定が誤差を持っていることに鑑み、再度プレエンコードすることで、量子化パラメータQP推定の精度を上げる。即ち、第１のプレエンコード部１により大まかに見積もった予測量子化パラメータQPdの周辺の量子化パラメータQPで、再度プレエンコードすることにより高精度発生符号量を取得し、目標とする高精度発生符号量に一番近い量子化パラメータQPを再度求める。エントロピー符号長計算は、本エンコードと同じ方式(CABAC又はCAVLC)を用いる。
【０１０８】
尚、画面内予測処理の入力（ローカルデコード画像）が異なる事による誤差は存在するが、量子化パラメータQPが略同じ値であり、エンコードによる歪も略同じ量であるので、無視できるものとする。
【０１０９】
［１−６．処理手順］
以下、図３のフローチャートを参照して、本発明の一実施の形態に係る画像符号化装置１００による符号化の処理手順ＲＴ１を詳細に説明する。この処理手順の一部または全部は、一実施の形態に係る画像符号化方法にも相当する。
【０１１０】
先ず、アクティビティ計算部１６は、MB毎にアクティビティを計算し、その値に応じてMBをアクティビティグループに分ける（ステップＳ１）。
【０１１１】
続いて、画面内予測モード決定部１１は、入力画像９１に基づいて画面内予測モードを決定する（ステップＳ２）。この画面内予測モードは、第２のプレエンコード部２による第２のプレエンコード、本エンコード部３による本エンコードでも使用される。
【０１１２】
次に画面内予測処理部１２は、予測画像と入力画像との差分画像データを計算する。ここでの予測画像は、処理を削減するため入力画像９１が用いられる。次いで、DCT部１３は、整数精度DCTを行い、DCT係数を量子化部１４に送出する（ステップＳ３）。
【０１１３】
量子化部１４は、任意の間隔の複数の選択量子化パラメータQPｌをピクチャの平均量子化パラメータ（BaseQP）としてDCT係数値を量子化する。エントロピー符号長計算部１５は、量子化係数を可変長符号化し、符号長計算を行うことで、選択量子化パラメータＱＰｌごとの発生符号量を取得する（ステップＳ４）。この時、MBの量子化パラメータQPは、前述したようにアクティビティを考慮した値が与えられて、エンコードされる。即ち、前述したように、MBの量子化パラメータQPは、ピクチャの平均量子化パラメータ（BaseQP）に対して、アクティビティグループに依存したオフセットを加えることで求められる。
【０１１４】
尚、適応的な量子化行列Q Matrix切り替え処理に対応させる場合には、上記の処理を量子化行列Q Matrix毎に行う。つまり、量子化行列Q Matrix毎に、離散的な（飛び飛びの）値の選択量子化パラメータQPlでプレエンコードを行って、１ピクチャ分の発生符号量を取得する。この時、量子化行列Q Matrix毎に量子化パラメータQPの取り得る範囲をカバーするように選択量子化パラメータQPlを選択する。
【０１１５】
次に符号量制御部４が、第１のプレエンコード部１によって算出された発生符号量の補正処理を行い、低精度発生符号量を算出する。符号量制御部４は、プレエンコードを簡略化したことによる誤差の補正を行うと共に、補間処理により、選択量子化パラメータQPl以外の量子化パラメータQPに対応する低精度発生符号量を算出する（ステップＳ５）。
【０１１６】
符号量制御部４は、各量子化行列Q Matrixに対し、ステップＳ５の処理を実行し、量子化行列Q Matrixごとの低精度発生符号量を算出する（ステップＳ６）。以上の処理で、必要となる全ての量子化パラメータQPに対する低精度発生符号量が求められるので、その中で目標符号量に最も近い低精度発生符号量を生成し得る量子化パラメータQPのうち、傾斜の最も小さい量子化行列Q Matrixを予測量子化行列Q MatrixDとして選択する。さらに符号量制御部４は、予測量子化行列Q MatrixDに対応する目標符号量に最も近い低精度発生符号量を生成し得る量子化パラメータQPを予測量子化パラメータQPdとして選択する。（ステップＳ７）。また、上記の様に量子化行列Q Matrixを選択することで、取り得る量子化パラメータQPの範囲を限定することになり、第１のプレエンコード部１で低精度発生符号量を算出する際の選択量子化パラメータQPlの範囲を減らすことが可能になる。これが、第１のプレエンコード部１にて決定された予測量子化行列Q MatrixDと予測量子化パラメータQPdとなる。
【０１１７】
続いて、第２のプレエンコード部２による発生符号量取得処理を行う（ステップＳ８〜Ｓ１０）。この第２のプレエンコード部２の目的は、第１のプレエンコード部１による予測量子化パラメータQPdの推定が誤差を持っていることに鑑みて、再度プレエンコードすることで、基本量子化パラメータQPMB推定の精度を上げることにある。
【０１１８】
即ち、第１のプレエンコード部１の結果により大まかに見積もった予測量子化パラメータQPdの周辺の量子化パラメータQPで、再度プレエンコードすることにより高精度発生符号量を取得し、目標符号量に一番近い量子化パラメータQPを再度求める。エントロピー符号長計算は、本エンコードと同じ方式(CABAC又はCAVLC)が用いられる。
【０１１９】
具体的には、第１のプレエンコード部１の結果により決定された画面内予測モードを用いて画面内予測処理部２１による画面内予測処理及びDCT部２２によるDCTを行う（ステップＳ８）。第２のプレエンコード部２は、画面内予測で使用するローカルデコード画像（予測画像）として、第１のプレエンコード部１の結果により推定された予測量子化パラメータQPd（QP_precode1）で量子化したローカルデコード画像を共用する。
【０１２０】
量子化に際しては、第１のプレエンコード部１の結果により決定された予測量子化パラメータQPd（QP_precode1）、量子化行列Q Matrix及びアクティビティグループ（Activity Group）が用いられる。量子化部２３−１には予測量子化パラメータQPd（QP_precode1）が設定され、量子化部２３−２には予測量子化パラメータQPdよりも「1」だけ小さい量子化パラメータQP（QP_precode1-1）が設定され、量子化部２３−３には予測量子化パラメータQPdよりも「１」だけ大きい量子化パラメータ（QP_precode1+1）が設定される。
【０１２１】
さらに、MBの量子化パラメータ（QP）には、アクティビティを考慮した値が与えられてエンコードされる。以上の第２のプレエンコードにより、１ピクチャの高精度発生符号量を取得することができる（ステップＳ９）。
【０１２２】
続いて、符号量制御部４は、第２のプレエンコード部２に基づいて得られた高精度発生符号量から基本量子化パラメータQPMBを決定する（ステップＳ１０）。
【０１２３】
続いて、本エンコード部３が本エンコードを行う（ステップＳ１１）。本エンコードでは、第２のプレエンコード部２の結果により決定されたピクチャの基本量子化パラメータQPMB、第１のプレエンコード部１の結果により決定された予測量子化行列Q MatrixD、Activity Groupを使用してエンコードを行う。こうして符号化に関わる一連の処理を終了する。
【０１２４】
以下、図４のフローチャートを参照して、画像符号化装置１００による符号化の処理手順ＲＴ１のステップＳ７において実行されるQ Matrix決定処理手順ＲＴ２について更に説明する。
【０１２５】
この処理を開始すると、符号量制御部４は、先ずIdをId=0にイニシャライズした後（ステップＳ２１）、Idの値の小さい量子化行列Q-Matrixから、低精度発生符号量が目標符号量に最も近い量子化パラメータ（QP）と、量子化行列Q-Matrixにおいて取り得る最大の量子化パラメータQP（QMatrixTheshold［Id］）とを比較する（ステップＳ２２）。そして、符号量制御部４は、Id番目の量子化行列Q-Matrixでの低精度発生符号量が目標符号量に最も近い量子化パラメータ（QP）がQMatrixTheshold[Id]より小さければ、現在の量子化行列Q-Matrixを予測量子化行列Q MatrixDに決定する。さらに符号量制御部４は、予測量子化行列Q MatrixDにおける低精度発生符号量が目標符号量に最も近い量子化パラメータ（QP）を予測量子化パラメータQPdに決定すると（ステップＳ２３）、Q Matrix決定処理手順ＲＴ２を終了する。
【０１２６】
一方、ステップＳ２２において、符号量制御部４は、Id番目の量子化行列Q-Matrixでの低精度発生符号量が目標符号量に最も近い量子化パラメータ（QP）がQMatrixTheshold[Id]以上であれば、Idをインクリメント（ステップＳ２４）する。符号量制御部４は、Id＝量子化行列Q-Matrixの総数よりも「１」小さい（NumOfQMatrixId-1）であるか否かを判断する（ステップＳ２５）。そして、Id＝NumOfQMatrixId-1でなければステップＳ２２に戻り、次の量子化行列Q-Matrixをチェックする。一方、Id＝NumOfQMatrixId-1であれば、一番急峻な傾斜を有する量子化行列Q-Matrix（IDが NumOfQMatrixIdの量子化行列Q-Matrix）が選択され（ステップＳ２３）、Q Matrix決定処理手順ＲＴ２を終了する。
【０１２７】
この図４のQ Matrix決定処理手順ＲＴ２により、符号量制御部４は、量子化行列Q-Matrix毎に、取り得る最大の量子化パラメータQPを設定して、傾斜の緩やかな量子化行列Q-Matrixから順に、低精度発生符号量が目標符号量に最も近いと推定された量子化パラメータQPに対応する低精度発生符号量が目標符号量に本当に近い値を示すか否かを判断する。そして、近い値であれば対応する量子化行列Q-Matrixを本エンコードで用いる予測量子化行列Q MatrixDとして決定することになる。
【０１２８】
以上説明したように、本発明の一実施の形態では、ピクチャ単位の２回のプレエンコードを実施する。そして、画像符号化装置１００は、効率向上のためには、処理量が増大し、それに起因してエンコードの回路規模が増大するとの問題を解消するために、回路一部共有化による部分的並列構成を採用する。これにより、プレエンコーダの構成を簡略化しつつ、該簡略化に伴う誤差を統計データで補正する。
【０１２９】
従って、画像符号化装置１００は、１ピクチャに与えられた目標符号量に、画面内Feed Back制御を行わずに本エンコードにおいて発生する本エンコード発生符号量を合わせ込むことが可能になる。これにより、画像符号化装置１００は、Feed Backパラメータの不適切な初期値による弊害や、不適切な目標符号量配分など、Feed Back制御の問題を取り除くことが可能になる。その結果、画像符号化装置１００は、目標符号量に本エンコード発生符号量を一致させ、視覚特性を考慮した符号量配分、つまり適切な量子化パラメータの決定が可能となる。
【０１３０】
なお、本発明は前述した実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲で種々の改良や変更が可能である。
【０１３１】
たとえば、上記画像符号化装置１００及び画像符号化方法は、該装置に実装されるコンピュータプログラム或いは該プログラムを記録した記録媒体、該方法を実施するコンピュータプログラム或いは該プログラムを記録した記録媒体としての実施も可能である。
【０１３２】
［１−７．動作及び効果］
以上の構成によれば、画像処理装置としての画像符号化装置１００は、入力画像９１が簡易な処理により符号化されてなる簡易符号化データであるDCT係数を、量子化因子である量子化パラメータQPから離散的に選択された選択量子化パラメータQPlに基づいて入力画像である入力画像９１を少なくとも量子化することにより入力画像９１を符号化し、符号化による入力画像９１の発生符号量を算出する。
【０１３３】
画像符号化装置１００は、符号化による入力画像の発生符号量における簡易な処理に応じて発生する誤差を補正し、低精度発生符号量を算出する。
【０１３４】
画像符号化装置１００は、選択量子化パラメータQPlに基づいて入力画像９１が符号化されたときの低精度発生符号量に対する補間処理により、選択量子化パラメータQPl以外の量子化パラメータQPに基づいて入力画像９１が符号化されたときの低精度発生符号量を算出する。
【０１３５】
これにより、画像符号化装置１００は、全ての量子化パラメータQPを符号化しなくても、当該全ての量子化パラメータQPに基づく低精度発生符号量を算出することができ、低精度発生符号量の算出を簡易にすると共に、算出回路を削減することができる。
【０１３６】
画像符号化装置１００は、選択量子化パラメータQPlに基づく符号化及び補間処理により算出された低精度発生符号量に基づいて、入力画像９１を符号化したときの本エンコード発生符号量が目標符号量に最も近いと予測される量子化パラメータQPを基本量子化パラメータQPMBとして決定する。画像符号化装置１００は、本エンコード部３により基本量子化パラメータQPMBに基づいて入力画像９１を符号化（本エンコード）する。
【０１３７】
これにより、画像符号化装置１００は、簡易な処理により生成された低精度発生符号量に基づいて基本量子化パラメータQPMBを決定することができるため、基本量子化パラメータQPMBを決定するための処理を簡易化することができる。
【０１３８】
＜２．第２の実施の形態＞
図５〜図６に示す第２の実施の形態においては、図１〜図４に示した第１の実施の形態と対応する箇所に同一符号を附して示すように、画像符号化装置２００における本エンコード部３が、実際に発生した本エンコード発生符号量に応じてフィードバック制御を行う点が、第１の実施の形態と異なっている。
【０１３９】
［２−１．本エンコードにおけるフィードバック制御］
画像符号化装置２００は、第１の実施の形態と同様、本エンコード発生符号量が目標符号量に最も近くなると予測される基本量子化パラメータQPMBを用いたフィードフォワード制御により、本エンコードを実行する。このため、画像符号化装置２００は、殆どの場合、本エンコード発生符号量を目標符号量に抑えることができる。しかしながら、画像符号化装置２００は、ごく稀に高精度発生符号量の算出を失敗し、不適切な基本量子化パラメータQPMBを選択してしまう場合がある。そこで、画像符号化装置２００は、かかる場合に対処するべく、本エンコード発生符号量のフィードバック制御により、本エンコード発生符号量を目標符号量に確実に抑えるようになされている。なお、第２の実施の形態において、符号量制御部４は、例えば高精度発生符号量が目標符号量を超えず、かつ高精度発生符号量が目標符号量に最も近い量子化パラメータQPを基本量子化パラメータQPMBに決定する。これにより、符号量制御部４は、本エンコード発生符号量が目標符号量より少し小さくなるように基本量子化パラメータQPMBを決定している。
【０１４０】
図５に示すように、画像符号化装置２００は、H.264/AVC（Advanced Video Coding;高度動画像圧縮符号化標準）などに代表される画像圧縮方式に従い、符号量制御を行う際に、ピクチャ内で良好な符号量分布を実現し、且つ、Picture固定長符号化を実現するために、以下の処理を実施する。
【０１４１】
・  画像符号化装置２００は、3passエンコードの本エンコードにおいて、画面内フィードバック（Feed Back）によるレート制御を行い、符号量を一定値以下に抑える。
・  画像符号化装置２００は、フィードバック制御による量子化パラメータQPの不要な変動を抑えるため、ピクチャごとの発生符号量が目標符号量を超えないと予測される場合には、視覚特性（アクティビティ）によってのみ、使用する量子化パラメータQP（使用量子化因子）を基本量子化パラメータＱＰＭＢから変更する。すなわち、画像符号化装置２００は、基本量子化パラメータＱＰＭＢを平均ピクチャBaseQPとしたときの適応量子化パラメータQPｔを、使用する量子化パラメータQPとする。
・  画像符号化装置２００は、フィードバック制御により、本エンコード発生符号量が目標符号量を超えてしまうと予測される場合、平均量子化パラメータBaseQPを基本量子化パラメータQPMBから変更する。このとき、画像符号化装置２００は、平均量子化パラメータBaseQPの不要な変動を抑えるため、量子化パラメータQPが大きくなる方向にのみ（すなわち発生符号量が小さくなる方向にのみ）平均量子化パラメータBaseQPを変更する。この結果、画像符号化装置２００は、変更された平均量子化パラメータBaseQPに基づく適応量子化パラメータQPtを使用する量子化パラメータQPとする。なお一旦大きい方向に変更された平均量子化パラメータBaseQPは、小さくなる方向に戻ることはない。
【０１４２】
具体的に、画像符号化装置２００の本エンコード部３は、第２のプレエンコード部２の結果に基づいて決定された基本量子化パラメータQPMBを平均量子化パラメータBaseQPとし、第１のプレエンコード部１により決定された量子化行列Q Matrix、Activity Groupを使用してエンコードを行う。この時、画像符号化装置２００は、目標符号量を越えることが無い様に平均量子化パラメータBaseQPをフィードバック制御する。
【０１４３】
画像符号化装置２００の符号量制御部４は、複数のMBからなるフィードバック制御単位FeedBackUnitごとに、フィードバック制御を実行する。符号量制御部４には、エントロピー符号化部３４から出力ストリーム９２の発生符号量が供給される。符号量制御部４は、第２のプレエンコードの予測量子化パラメータQPd（QP_precode1）でのMB毎の発生符号量（つまり、量子化部２３−１、エントロピー符号長計算部２４−１の出力）を用い、ピクチャごとの目標符号量（以下、これをピクチャ目標符号量と呼ぶ）から、フィードバック制御単位FeedBackUnit毎の目標符号量（以下、これをフィードバック目標符号量と呼ぶ）を算出する。
【０１４４】
いま、第２のプレエンコード部２の結果に基づくフィードバック制御単位（FeedBackUnit）の高精度発生符号量をPrecodeGeneratedBits_FeedBackUnit[no]、第２のプレエンコード部２の結果に基づくピクチャごとの高精度発生符号量をPrecodeGeneratedBitsとすると、フィードバック制御単位FeedBackUnitのフィードバック目標符号量（TargetBit_FeedBackUnit[no]）は次式で求められる。なお、noはFeedBackUnitの番号(0 〜 FeedBackUnit個数-1)、TargetBitはピクチャ目標符号量である。
【０１４５】
TargetBit_FeedBackUnit[no]
=TargetBit×PrecodeGeneratedBits_FeedBackUnit[no]
/PrecodeGeneratedBits
【０１４６】
すなわち、符号量制御部４は、フィードバック制御単位の高精度発生符号量（PrecodeGeneratedBits_FeedBackUnit[no]）のピクチャの高精度発生符号量 （PrecodeGeneratedBits）に対する割合に対し、ピクチャ目標符号量TargetBitを乗算することにより、フィードバック目標符号量（TargetBit_FeedBackUnit[no]）を算出する。
【０１４７】
具体的に、画像符号化装置２００の符号量制御部４は、以下の様な処理を行う。
【０１４８】
（１）符号量制御部４は、エンコードを前半処理、後半処理に分け、前半処理ではフィードバック制御を行わない。符号量制御部４は、プレエンコードのフィードバック制御単位（FeedBackUnit）の符号量比によりフィードバック制御単位（FeedBackUnit）の目標符号量を決定している。この符号量比は、量子化パラメータQPの変動により変化する。よって、画像符号化装置２００は、エンコード前半の発生符号量が少ない時点でフィードバック制御を行うと、不必要な平均量子化パラメータBaseQPの変更を行ってしまう可能性がある。言い換えると、画像符号化装置２００は、本エンコード発生符号量がピクチャ目標符号量に近くなるよう、基本量子化パラメータＱＰＭＢを選定している。従って、ピクチャの早い段階で平均量子化パラメータBaseQPを変動させてしまうと、本エンコード発生符号量とピクチャ目標符号量とが乖離してしまう可能性が生じてしまうためである。
【０１４９】
（２）符号量制御部４は、量子化パラメータQPの安定化と、本エンコード発生符号量を目標符号量以下に抑えることの両面から前半処理、後半処理の切り替えタイミングを判定する。すなわち、符号量制御部４は、（ａ）及び（ｂ）に示す以下に示す条件のうちのいずれか一方を満たす場合に、後半処理に移行する。
（ａ）符号量制御部４は、ピクチャを一定割合以上エンコードしている、換言すれば、一定数以上のMBをエンコードし終えとき、後半処理に移行する。量子化パラメータQPを安定化させるためである。
（ｂ）符号量制御部４は、エンコードしていない部分（MB）で使用できる残り符号量（ピクチャ目標符号量からその時点までの本エンコード発生符号量を減算した値）と、エンコードしていない部分（MB）の目標符号量（ピクチャ目標符号量からその時点までのフィードバック目標符号量を減算した値）とを比較する。残り符号量が一定割合以下になると、後半処理に移行する。本エンコード発生符号量を目標符号量以下に抑えるためである。
【０１５０】
この（２）（ｂ）の条件を式で表すと以下のようになる。
【０１５１】
(TargetBit−GeneratedBits_Accum)
＜(TargetBit−TargetBit_Accum)×ThresholdRatio
【０１５２】
ここで、TargetBit_Accum、GeneratedBits_Accumは、それぞれこの時点までのフィードバック目標符号量（TargetBit_FeedBackUnit[no]）、フィードバック制御単位の本エンコード発生符号量（GeneratedBits_FeedBackUnit[no]）の積算値である。また、ThresholdRatioは、許容できるずれの割合である。本エンコード発生符号量が目標符号量になっている場合、残り符号量とエンコードしていない部分の目標符号量がイコールとなる。一方、本エンコード発生符号量が目標符号量をオーバーしている場合、残り符号量がエンコードしていない部分の目標符号量よりも小さくなる。例えば、符号量制御部４は、残り符号量がエンコードしていない部分の目標符号量のThresholdRatio倍未満になったとき、後半処理に移行する。符号量制御部４は、発生符号量が目標符号量を必ず下回るように制御する場合、ThresholdRatioを１未満に設定する。これにより、符号量制御部４は、エンコードが終了した部分の発生符号量が目標符号量を下回り、かつ当該目標符号量に近づいてきたときに後半処理に移行することができる。また、符号量制御部４は、発生符号量が目標符号量の近傍になるよう制御する場合、このThresholdRatioを１超に設定する。これにより、符号量制御部４は、エンコードが終了した部分の発生符号量が目標符号量を一定の比率以上で上回ったときに後半処理に移行することができる。もちろん、ThresholdRatioを「１」に設定することも可能である。
【０１５３】
これにより、符号量制御部４は、目標符号量と実際の本エンコード発生符号量が乖離する前に、フィードバック制御に入ることができ、残り符号量が少なすぎて本エンコード発生符号量が制御できなくなることを確実に防止することができる。
【０１５４】
言い換えると、符号量制御部４は、本エンコード発生符号量の少ないうちは、残り符号量の絶対量が大きいため、目標符号量と本エンコード発生符号量が極めて大きく乖離しない限り、条件を満たすことはなく、後半処理に移行してフィードバック制御に入ることはない。符号量制御部４は、本エンコード発生符号量が大きくなってきたら、残り符号量の絶対量が小さいため、目標符号量と本エンコード発生符号量が小さく乖離しただけでも条件を満たすことになり、後半処理に移行して、フィードバック制御に入ることになる。
【０１５５】
（３）符号量制御部４は、後半処理において、ピクチャごとの本エンコード発生符号量がピクチャ目標符号量を超えると予想した場合にのみ、平均量子化パラメータBaseQPを基本量子化パラメータQPMBより大きくする方向に変更する。符号量制御部４は、平均量子化パラメータBaseQPを大きくする場合には、一回のフィードバック処理（すなわちフィードバック制御単位ごと）で、平均量子化パラメータBaseQPを「１」のみ変化させる。これにより、符号量制御部４は、過剰な平均量子化パラメータBaseQPの変化を抑えるようになされている。
【０１５６】
符号量制御部４は、以下の（ａ）又は（ｂ）のいずれかの条件に当て嵌まる場合、ピクチャごとの本エンコード発生符号量がピクチャ目標符号量を超えると予想し、平均量子化パラメータBaseQPを大きくする。
（ａ）符号量制御部４は、フィードバック制御単位のエンコードが終了した時点で直前（処理を終えた直後）のフィードバック発生符号量を確認し、フィードバック発生符号量（GeneratedBits_FeedBackUnit[cur]）とフィードバック目標符号量（TargetBit_FeedBackUnit[cur]）とを次式に従って比較する。
【０１５７】
GeneratedBits_FeedBackUnit[cur]>TargetBit_FeedBackUnit[cur]
【０１５８】
フィードバック発生符号量（GeneratedBits_FeedBackUnit[cur]）がフィードバック目標符号量（TargetBit_FeedBackUnit[cur]）より大きいことは、発生符号量が増大する傾向にあるため、以降のエンコードにおいて生じる本エンコード発生符号量が目標符号量を超える可能性があることを示唆している。このとき、符号量制御部４は、平均量子化パラメータBaseQPを大きくするか否かを判別する。このときの条件を以下に示す。
【０１５９】
符号量制御部４は、この時点でエンコードが終了した部分についての目標符号量から発生符号量を減算することにより、発生符号量の余り  SurplusBitsを以下の様に計算する。
【０１６０】
SurplusBits＝TargetBit_Accum−GeneratedBits_Accum
【０１６１】
符号量制御部４は、次のフィードバック制御単位において本エンコード発生符号量が目標符号量を超えると予測した場合にのみ、平均量子化パラメータBaseQPを大きくする。
【０１６２】
符号量制御部４は、次のフィードバック制御単位の目標符号量に対して次のフィードバック制御単位でオーバーすると予測される最大の符号量（以下、これを過剰最大符号量と呼ぶ）を、次のフィードバック制御単位の目標符号量から以下の様に求める。ここで、MaxErrorRatioは、フィードバック発生符号量がフィードバック目標符号量に対する誤差として取り得る最大比率である。
【０１６３】
TargetBit_FeedBackUnit[next]×MaxErrorRatio
【０１６４】
これを元に、以下の判定を行う。
【０１６５】
SurplusBits<TargetBit_FeedBackUnit[next]  x  MaxErrorRatio
【０１６６】
符号量制御部４は、発生符号量の余り  SurplusBitsと次のフィードバック制御単位の過剰最大符号量とを比較する。符号量制御部４は、発生符号量の余り  SurplusBitsよりも過剰最大符号量が大きい場合、次のフィードバック制御単位においてエンコードが終了した部分の本エンコード発生符号量が目標符号量を超える可能性があると判別し、平均量子化パラメータBaseQPを＋１する。
【０１６７】
すなわち、符号量制御部４は、「直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きい」且つ、「この時点での符号量の余りSurplusBitsが、次のフィードバック制御単位でオーバーする可能性のある過剰最大符号量より小さい」とき、平均量子化パラメータBaseQPを＋１する。発生符号量が増大する傾向にあり、かつ符号量の余りに余裕がないため、最終的なピクチャ発生符号量がピクチャ目標符号量を超えてしまうと予測されるからである。
【０１６８】
言い換えると、符号量制御部４は、現状維持でも次のフィードバック制御単位でエンコードが終了した部分の本エンコード発生符号量が目標符号量を超えないと判断されれば、平均量子化パラメータBaseQPを＋１しない。これにより、符号量制御部４は、エンコードが終了した部分の本エンコード発生符号量が目標符号量を超えそうな兆候が見られた時でも、過度に反応することを避け、平均量子化パラメータBaseQPを不要に大きくし過ぎることを防止し、平均量子化パラメータBaseQPを安定化させ得る。
（ｂ）符号量制御部４は、（ａ）に当て嵌まらない場合、すなわち「直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より小さい」又は「この時点での符号量の余りSurplusBitsが、次のフィードバック制御単位でオーバーする可能性のある過剰最大符号量より大きい」とき、発生符号量の余り SurplusBitsが負であるかを確認する。SurplusBitsが負である場合、エンコードが終了した時点での本エンコード発生符号量が目標符号量を超えてしまっていることを意味している。このとき、符号量制御部４は、以下の様に、直前のフィードバック制御単位の目標符号量と発生符号量の比から、残りの符号化部分での発生符号量の、目標からのずれを予測する。
【０１６９】
符号量制御部４は、直前のFeed Back制御単位の目標符号量と発生符号量の比Diff_Ratioを以下のように算出する。
【０１７０】
Diff_Ratio=
(GeneratedBits_FeedBackUnit[cur]-TargetBit_FeedBackUnit[cur])
/TargetBit_FeedBackUnit[cur]
【０１７１】
符号量制御部４は、残りの符号化部分の目標符号量TargetBit_Remを以下のように算出する。
【０１７２】
TargetBit_Rem=TargetBit-TargetBit_Accum
【０１７３】
符号量制御部４は、残りの符号化部分での発生符号量が、直前のフィードバック制御単位の目標符号量と発生符号量の比Diff_Ratioと同一比率でずれると仮定し、目標からのずれを、以下のように算出する。
【０１７４】
TargetBit_Rem*Diff_Ratio
【０１７５】
符号量制御部４は、符号化した部分と符号化してない部分のずれを足したものが、正であり、以下の条件を満たす場合、平均量子化パラメータBaseQPを+1する。
【０１７６】
(TargetBit_Rem*Diff_Ratio)−SurplusBits>0
【０１７７】
符号量制御部４は、「エンコードした部分の発生符号量が、目標符号量を超えている」且つ、「直前のフィードバック制御単位の目標符号量と発生符号量の比から求めたピクチャの予測発生符号量が、ピクチャ目標符号量を超えている」時、平均量子化パラメータBaseQPを＋１する。
【０１７８】
すなわち、符号量制御部４は、ある時点で発生符号量が目標符号量を超えていても、目標符号量に対して発生符号量が減少傾向にあるため最終的にはピクチャ発生符号量がピクチャ目標符号量以下に収まると判断されれば、平均量子化パラメータBaseQPを＋１しない。
【０１７９】
このように、画像符号化装置２００は、入力画像９１を本エンコードする際、ピクチャに対する本エンコードを開始した時点ではフィードバック制御を実行せず、一定条件を満たしたときのみ後半処理としてフィードバック制御を実行する。
【０１８０】
すなわち、画像符号化装置２００は、原則的にピクチャの後半部分に対してのみフィードバック制御を実行する。画像符号化装置２００は、ピクチャの前半部分であっても、エンコードした部分の発生符号量と目標符号量との比率が一定以上となる場合には、以降の発生符号量が目標符号量から乖離する可能性があるため、フィードバック制御を実行する。
【０１８１】
画像符号化装置２００は、フィードバック制御として、平均量子化パラメータBaseQPの変動を最小限に抑制するため、ピクチャごとの本エンコード発生符号量をピクチャ目標符号量以下に抑えることができないと予測したときのみ、平均量子化パラメータBaseQPを「１」だけ増大させる。
【０１８２】
すなわち、画像符号化装置２００は、フィードバック発生符号量がフィードバック目標符号量よりも大きく、発生符号量が目標符号量よりも増大する傾向があり、かつ次のフィードバック制御単位でエンコードした部分の発生符号量が目標符号量を超える可能性がある場合、最終的なピクチャ発生符号量がピクチャ目標符号量を超えると予測されるため、平均量子化パラメータBaseQPを＋１する。
【０１８３】
これにより、画像符号化装置２００は、発生符号量が目標符号量よりも増大する傾向がある場合であっても、残り符号量に余裕がある場合には、平均量子化パラメータBaseQPを＋１しないようにでき、平均量子化パラメータBaseQPを不要に増大させずに済む。
【０１８４】
さらに、画像符号化装置２００は、平均量子化パラメータBaseQPを＋１していない場合において、エンコードした部分の発生符号量が目標符号量を超えており、最終的なピクチャの発生符号量がピクチャ目標符号量を超えると予測される場合には、平均量子化パラメータBaseQPを＋１する。
【０１８５】
これにより、画像符号化装置２００は、エンコードした部分の発生符号量が目標符号量を超えている場合であっても、発生符号量が減少傾向にあり、ピクチャの発生符号量がピクチャ目標符号量を超えないと予測される場合には、最終的な平均量子化パラメータBaseQPを＋１しないようにでき、平均量子化パラメータBaseQPを不要に増大させずに済む。
【０１８６】
［２−２．処理手順］
以下、図６のフローチャートを参照して、フィードバック制御処理手順RT４について説明する。この処理を開始すると、符号量制御部４は、プレエンコードで決定された基本量子化パラメータQPMBを平均量子化パラメータBaseQPにセットする（ステップＳ３１）。続いて、符号量制御部４は、フィードバック制御単位FeedBackUnitごとに入力画像９１をエンコードする（ステップＳ３２）。
【０１８７】
続いて、符号量制御部４は、ピクチャにおける全てのMBをエンコードしたか否かを判断する（ステップＳ３３）。ここで、符号量制御部４は、全てのMBをエンコードした場合には、終了ステップへ移って処理を終了する。一方、符号量制御部４は、全てのMBをエンコードしていない場合には、次のステップＳ３４へ移る。符号量制御部４は、一定数以上のMBをエンコードしたか否かを判断する（ステップＳ３４）。これは、前述したように、エンコード前半の発生符号量が少ない時点で、フィードバック制御を行うと平均量子化パラメータBaseQPを不必要に変更する可能性があるからである。
【０１８８】
ここで、符号量制御部４は、一定数以上のMBをエンコードしたと判断した場合には、ステップＳ３６に移行する。一方、符号量制御部４は、一定数以上のMBをエンコードしていないと判断した場合には、ステップ３５に移り、エンコードしていない部分（MB）で使用できる残り符号量（目標符号量からその時点までの発生符号量を引いたもの）と、エンコードしていない部分（MB）の目標符号量とを比較し、残り符号量とエンコードしていない部分の目標符号量との比率が一定割合以下か否かを判断する（ステップＳ３５）。ここで、符号量制御部４は、残り符号量とエンコードしていない部分の目標符号量との比率が一定割合以下でないと判断した場合には、現在エンコード処理しているＭＢが後半部分ではなく、かつエンコードした部分の発生符号量が目標符号量から乖離もしていないため、ステップＳ３２に戻り上記処理を繰り返す。一方、使用できる符号量が一定割合以下であると判断した場合にはステップＳ３６に移行し、フィードバック制御を実行する。
【０１８９】
続いて、符号量制御部４は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きいか否かを判断する（ステップＳ３６）。ここで、符号量制御部４は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きいと判断した場合には、この時点での符号量の余りが、次のフィードバック制御単位でオーバーする可能性があるか否かを判断する（ステップＳ３７）。符号量制御部４は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より小さい場合には、ステップＳ３９へ移る。
【０１９０】
符号量制御部４は、この時点での符号量の余りが、次のフィードバック制御単位でオーバーする可能性があると判断した場合、平均量子化パラメータBaseQPを＋１し（ステップＳ３８）、ステップＳ３２に戻る。一方、符号量制御部４は、この時点での符号量の余りが、次のフィードバック制御単位でオーバーする可能性がないと判断した場合、ステップＳ３９に進む。
【０１９１】
そして、ステップＳ３９において、符号量制御部４は、エンコードした部分の発生符号量が、目標符号量を超えているか否かを判断する（ステップＳ３９）。ここで、符号量制御部４は、エンコードした部分の発生符号量が、目標符号量を超えていないと判断した場合には、ステップＳ３２に戻り、上記処理を繰り返す。
【０１９２】
一方、符号量制御部４は、エンコードした部分の発生符号量が、目標符号量を超えていると判断した場合には、直前のフィードバック制御単位の目標符号量と発生符号量の比から求めたピクチャの予測発生符号量がピクチャ目標符号量を超えているか否かを判断する（ステップＳ４０）。そして、符号量制御部４は、ピクチャの予測発生符号量がピクチャ目標符号量を超えていないと判断した場合には、ステップＳ３２に戻り、上記処理を繰り返す。
【０１９３】
符号量制御部４は、ピクチャの予測発生符号量がピクチャ目標符号量を超えていると判断した場合には、平均量子化パラメータBaseQPを＋１し（ステップＳ３８）、ステップＳ３２に戻り、上記処理を繰り返す。こうして、符号量制御部４は、ステップＳ３３において、全てのMBをエンコードしたと判断するまで、この処理を継続する。
【０１９４】
以上説明したように、本実施の形態によれば、画像符号化装置２００は、二分探索法を用いることなく、ピクチャをほぼ固定長にして符号化する事が可能になるため、回路規模、消費電力を小さくすることができ、符号化遅延も短く出来る。この際、画像符号化装置２００は、フィードバック制御による平均量子化パラメータBaseQPの不要な変動が抑えられるため、フィードバック制御を導入していても、最適な符号量配分つまり、ピクチャ目標符号量にピクチャ発生符号量を一致させ、視覚特性を考慮した符号量配分が可能になる。
【０１９５】
なお、本発明は前述した実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲で種々の改良や変更が可能である。
【０１９６】
たとえば、上記画像符号化装置及び画像符号化方法は、該装置に実装されるコンピュータプログラム或いは該プログラムを記録した記録媒体、該方法を実施するコンピュータプログラム或いは該プログラムを記録した記録媒体としての実施も可能である。
【０１９７】
上述した一連の符号化処理は、ハードウェアにより実行させることもでき、また、ソフトウェアにより実行させることも可能である。符号化処理をソフトウェアによって実現する場合、ＣＰＵ及びＲＡＭに仮想的に画像符号化装置１００が形成される。そして、ＲＯＭに格納された符号化プログラムをＲＡＭに展開することにより、符号化処理が実行される。
【０１９８】
［２−３．動作及び効果］
以上の構成において、画像符号化装置２００は、入力画像９１を符号化したときのピクチャごとの本エンコード発生符号量がピクチャ目標符号量の近傍になると予測される基本量子化因子としての基本量子化パラメータQPMBを決定する。
【０１９９】
画像符号化装置２００は、少なくとも基本量子化パラメータQPMBに基づいて決定された使用量子化因子としての平均量子化パラメータBaseQPに基づく適応量子化パラメータQPtを用いて量子化することにより、入力画像９１をフィードバック制御単位ごとに符号化する。
【０２００】
画像符号化装置２００は、符号化された入力画像９１の発生符号量をフィードバック制御単位ごとに確認し、画像単位ごとの発生符号量が画像単位ごとの目標符号量を超えると予測する場合に、平均量子化パラメータBaseQPを増大させることにより、適応量子化パラメータQPtの値を増大させる。
【０２０１】
これにより、画像符号化装置２００は、ピクチャごとの本エンコード発生符号量がピクチャ目標符号量の近傍になるよう予め調整された状態において、限定的に平均量子化パラメータBaseQPを増大させるため、使用する量子化パラメータQP（適応量子化パラメータQPt）の値が不要に変動することを防止することができる。
【０２０２】
AVCなどの量子化を伴う符号化方式では、複数回に亘って符号化を実行することによる画質の劣化が確認されている。この画質の劣化を防止するため、前回の符号化の際に使用された量子化パラメータQPを検出して再度使用するバックサーチと呼ばれる手法が提案されている（例えば特許文献２参照）。
【特許文献２】国際出願番号ＰＣＴ／ＪＰ２００８／０６６９１７。
【０２０３】
このバックサーチでは、予測量子化パラメータQPdに基づいてバックサーチの検索範囲を設定することにより、バックサーチの検索範囲を限定して処理を簡易にすることができる。
【０２０４】
画像符号化装置２００は、使用する量子化パラメータQPの変動を極力抑制することができるため、使用する量子化パラメータQPがバックサーチの検索範囲から外れてしまうことを抑制でき、バックサーチの検出率を低下させずに済む。
【０２０５】
画像符号化装置２００は、フィードバック制御単位ごとのフィードバック発生符号量が増大する傾向にあり、かつ画像単位であるピクチャにおいて符号化された部分の目標符号量から符号化された部分の発生符号量を減算した符号量の余りに余裕がない場合、ピクチャ発生符号量がピクチャ目標符号量を超えると予測する。
【０２０６】
画像符号化装置２００は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きいとき、フィードバック制御単位ごとの発生符号量が増大する傾向にあると判別する。
【０２０７】
画像符号化装置２００は、次のフィードバック制御単位における発生符号量が目標符号量を超える可能性のある過剰最大符号量より小さいとき、符号量の余りに余裕がないと判別する。
【０２０８】
これにより、画像符号化装置２００は、フィードバック発生符号量が増大する傾向にあり、符号量の余りに余裕がないといった限定的な場合にのみ平均量子化パラメータBaseQPを増大させるため、平均量子化パラメータBaseQPの不要な変動を防止することができる。
【０２０９】
画像符号化装置２００は、ピクチャにおいて符号化された部分の発生符号量が当該符号化された部分の目標符号量を超えており、かつ目標符号量と発生符号量の比率が変化しないと仮定したときにピクチャ発生符号量がピクチャ目標符号量を超える場合に、ピクチャ発生符号量がピクチャ目標符号量を超えると予測する。
【０２１０】
画像符号化装置２００は、直前のフィードバック制御単位のフィードバック目標符号量とフィードバック発生符号量の比から求めたピクチャ発生符号量の予測値（ピクチャ予測発生符号量）が目標符号量を超えた場合に、目標符号量と発生符号量の比率が変化しないと仮定したときにピクチャ発生符号量がピクチャ目標符号量を超えると判別する。
【０２１１】
これにより、画像符号化装置２００は、フィードバック発生符号量とフィードバック目標符号量の比率が現状維持された場合にピクチャ発生符号量がピクチャ目標符号量を超えるといった限定的な場合にのみ平均量子化パラメータBaseQPを増大させるため、平均量子化パラメータBaseQPの不要な変動を防止することができる。
【０２１２】
画像符号化装置２００は、ピクチャにおける後半部分において、ピクチャ発生符号量がピクチャ目標符号量を超えるか否かを予測する。
【０２１３】
これにより、画像符号化装置２００は、これからエンコードされる残り部分が多く、平均量子化パラメータBaseQPの変動がピクチャ発生符号量に大きな影響を与える前半部分において極力フィードバック制御を実行しない。この結果、画像符号化装置２００は、前半部分において不要に平均量子化パラメータBaseQPが変動したことによりピクチャ発生符号量のバランスが崩れることを防止できる。
【０２１４】
画像符号化装置２００は、ピクチャにおいて符号化された部分の発生符号量が当該符号化された部分の目標符号量と乖離する場合には、ピクチャにおける位置に拘らず、ピクチャ発生符号量がピクチャ目標符号量を超えかるか否かを予測する。
【０２１５】
画像符号化装置２００は、ピクチャにおいて符号化された部分の発生符号量が、当該符号化された部分の目標符号量に対して許容されるずれ量ThresholdRatioを乗算した値よりも小さい場合に、ピクチャにおいて符号化された部分の発生符号量が当該符号化された部分の目標符号量と乖離すると判別する。
【０２１６】
これにより、画像符号化装置２００は、例えば基本量子化パラメータQPMBの推測に失敗した場合には、ピクチャの早い段階でもフィードバック制御を実行でき、不測の事態にも対応することができる。
【０２１７】
画像符号化装置２００は、ピクチャ発生符号量がピクチャ目標符号量を超えると予測する場合に、平均量子化パラメータBaseQPを１だけ増大させる。
【０２１８】
これにより、画像符号化装置２００は、平均量子化パラメータBaseQPの変動を最小限に抑制でき、ピクチャ内における画質を安定させ得る。
【０２１９】
画像符号化装置２００は、入力画像９１を符号化したときの発生符号量が目標符号量よりも小さくなるよう、基本量子化パラメータQPMBを決定する。
【０２２０】
これにより、画像符号化装置２００は、ピクチャ発生符号量を抑制できるため、ピクチャ発生符号量がピクチャ目標符号量を超えないように一段と制御し易くなる。
【０２２１】
画像符号化装置２００は、許容されるずれ量ThresholdRatioとして、１未満の値を設定する。これにより、画像符号化装置２００は、符号化された部分の発生符号量が、当該符号化された部分の目標符号量より小さいものの近接してきた場合に、フィードバック制御を実行できるため、ピクチャ発生符号量がピクチャ目標符号量を超えないように確実に制御することができる。
【０２２２】
画像符号化装置２００は、広範囲に亘る量子化パラメータQP（選択量子化パラメータQPl）を用いて入力画像９１を符号化することにより算出された低精度発生符号量に基づいて、基本量子化パラメータQPMBの近傍であると予測される予測量子化パラメータQPdを決定し、当該予測量子化パラメータQPd及び当該予測量子化パラメータQPdの近傍の量子化パラメータQPを用いて入力画像９１を符号化することにより算出された高精度発生符号量に基づいて、基本量子化パラメータQPMBを決定する。
【０２２３】
これにより、画像符号化装置２００は、高い精度で基本量子化パラメータQPMBを決定しているため、当該基本量子化パラメータQPMBを用いることによりピクチャごとの本エンコード発生符号量をピクチャ目標符号量に近くできる。従って、画像符号化装置２００は、極稀にフィードバック制御による平均量子化パラメータBaseQPを変動させるだけで済み、平均量子化パラメータBaseQPの変動を極力抑制できる。
【０２２４】
以上の構成によれば、画像符号化装置２００は、符号化された部分の発生符号量及び当該符号化された部分の目標符号量から、ピクチャ発生符号量がピクチャ目標符号量を超えると予測された場合にのみ平均量子化パラメータBaseQPを増大させるよう、フィードバック制御を実行する。
【０２２５】
これにより、画像符号化装置２００は、平均量子化パラメータBaseQPの変動を最小限に抑制しつつ確実にピクチャ発生符号量をピクチャ目標符号量以下にすることができる。かくして本発明は、均質な画質を維持しつつ確実にピクチャ発生符号量をピクチャ目標符号量以下にすることができる画像処理装置及び画像処理方法を実現できる。
【０２２６】
＜３．他の実施の形態＞
なお上述した第２の実施の形態においては、画像符号化装置２００が第1のプレエンコード部１の結果に基づいて予測量子化パラメータQPdを決定し、第２のプレエンコード部２の結果に基づいて基本量子化パラメータQPMBを決定する３パス構成でなるようにした場合について述べた。本発明はこれに限らず、例えば第１のエンコード部１が基本量子化パラメータQPMBを決定する２パス構成や、４パス以上の構成でなる画像符号化装置に本発明を適用するようにしても良い。
【０２２７】
また上述した第１及び第２の実施の形態においては、入力画像９１を画面内予測、DCTによる直交変換、量子化及びCAVLC又はCABACによる符号化によって符号化するようにした場合について述べた。本発明はこれに限らず、いずれを省略しても良く、少なくとも入力画像９１を量子化すれば良い。また、これら以外の符号化方法を用いて入力画像９１を符号化することもできる。
【０２２８】
さらに上述した第２の実施の形態においては、複数のMBでなるフィードバック制御単位ごとにフィードバック発生符号量を確認するようにした場合について述べた。本発明はこれに限らず、フィードバック制御単位のサイズに制限はなく、例えばフィードバック制御単位をMBやスライスに設定するようにしても良い。
【０２２９】
さらに上述した第２の実施の形態においては、画像単位としてピクチャごとの発生符号量を目標符号量以下に抑制するようにした場合について述べた。本発明はこれに限らず、例えば画像単位としてスライスごとや複数のピクチャごとに発生符号量を目標符号量以下に抑制するようにしても良い。
【０２３０】
さらに上述した第２の実施の形態においては、１のフィードバック制御単位に対するフィードバック制御につき、平均量子化パラメータBaseQPを１だけ増大させるようにした場合について述べた。本発明はこれに限らず、条件に応じて２以上増大させるようにしても良い。
【０２３１】
さらに上述した第１及び第２の実施の形態においては、直前のフィードバック発生符号量がフィードバック目標符号量を超えた場合に、フィードバック制御単位ごとの発生符号量が増大する傾向にあると判別するようにした場合について述べた。本発明はこれに限らず、例えば直前の複数のフィードバック制御単位ごとに発生符号量が目標符号量を超えるか否かにより、フィードバック制御単位ごとの発生符号量が増大する傾向にあると判別するようにしても良い。
【０２３２】
さらに、上述した第２の実施の形態においては、（３）（ａ）及び（３）（ｂ）のいずれかに該当するときに、画像単位ごとの発生符号量が上記画像単位ごとの目標符号量を超えると予測するようにした場合について述べた。本発明はこれに限らず、いずれか一方に該当する場合や、他の手法により画像単位ごとの発生符号量が上記画像単位ごとの目標符号量を超えると予測するようにしても良い。
【０２３３】
さらに上述した第２の実施の形態においては、直前のフィードバック発生符号量とフィードバック目標符号量の比率からピクチャ発生符号量がピクチャの目標符号量を超えるか否かを予測するようにした場合について述べた。本発明はこれに限らず、例えば複数のフィードバック制御単位ごとやＭＢごとの目標符号量と発生符号量の比率からピクチャ発生符号量がピクチャの目標符号量を超えるか否かを予測するようにしても良い。
【０２３４】
さらに上述した第２の実施の形態においては、ピクチャの後半部分に入ると、自動的にフィードバック制御を実行するようにした場合について述べた。本発明はこれに限らず、例えばエンコードした部分の発生符号量が目標符号量を超えた場合にのみフィードバック制御を実行するようにしても良い。
【０２３５】
さらに上述した第２の実施の形態においては、エンコードした部分の発生符号量が目標符号量を超えた場合にフィードバック制御を実行するようにした場合について述べた。本発明はこれに限らず、その他種々の条件に応じてフィードバック制御を実行するようにしても良い。
【０２３６】
さらに上述した第２の実施の形態においては、本エンコード発生符号量がピクチャ目標符号量を少し下回るように基本量子化パラメータQPMBを決定するようにした場合について述べた。本発明はこれに限らず、本エンコード発生符号量がピクチャ目標符号量に最も近くなるよう基本量子化パラメータQPMBを決定しても良い。
【０２３７】
さらに、上述した第１及び第２の実施の形態においては、AVCに本発明を適用するようにした場合について述べた。本発明はこれに限らず、適応的にVLCテーブルを選択する種々の符号化方式に本発明を適用することが可能である。例えばMPEG-2に本発明を適用する場合、量子化因子として量子化スケールが用いられる。
【０２３８】
さらに上述した第２の実施の形態においては、基本量子化因子決定部としての第１のプレコード部１、第２のプレコード部２及び符号量制御部４と、符号化部としての本エンコード部３と、フィードバック制御部としての符号量制御部４とによって画像処理装置としての画像符号化装置２００を構成するようにした場合について述べた。本発明はこれに限らず、その他種々の構成による基本量子化因子決定部と、符号化部と、フィードバック制御部とによって本発明の画像処理装置を構成するようにしても良い。
【符号の説明】
【０２３９】
１…第１のプレエンコード部、２…第２のプレエンコード部、３…エンコード部、４…符号量制御部、５，６…ディレイバッファ、１１…画面内予測モード決定部、１２…画面内予測処理部、１３…DCT部、１４…量子化部、１５…エントロピー符号長計算部、２１…画面内予測処理部、２２……DCT部、２３……量子化部、２４…エントロピー符号長計算部、２５…バッファ、２６…IDCT部、２７…逆量子化部、３１…画面内予測処理部、３２…DCT部、３３…量子化部、３４…エントロピー符号化部、３５…バッファ、３６…IDCT部、３７…逆量子化部
【図１】
0005472106.tif 000002
【図２】
0005472106.tif 000003
【図３】
0005472106.tif 000004
【図４】
0005472106.tif 000005
【図５】
0005472106.tif 000006
【図６】
0005472106.tif 000007