(57)【特許請求の範囲】
【請求項１】
入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基本量子化パラメータを決定する量子化パラメータ決定部と、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチ部と、
上記入力画像を符号化単位毎に符号化する符号化部と、
上記符号化部によって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基本量子化パラメータを増大させるフィードバック制御部と、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化部を制御する符号化制御部とを備え、
上記符号化制御部は、
上記バックサーチ検出が成功しているとき、
上記符号量抑制が必要でないと判定する場合、上記検出量子化パラメータを使用するように上記符号化部を制御し、
上記符号量抑制が必要であると判定する場合、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さくないとき、該検出量子化パラメータを使用するように上記符号化部を制御すると共に、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さいとき、該フィードバック制御された基本量子化パラメータを使用するように上記符号化部を制御し、
上記符号化制御部は、
直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、上記符号量抑制が必要であると判定する
画像処理装置。
【請求項２】
入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基本量子化パラメータを決定する量子化パラメータ決定ステップと、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチステップと、
上記入力画像を符号化単位毎に符号化する符号化ステップと、
上記符号化ステップによって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基本量子化パラメータを増大させるフィードバック制御ステップと、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化ステップにおける符号化を制御する符号化制御ステップとを備え、
上記符号化制御ステップでは、
上記バックサーチ検出が成功しているとき、
上記符号量抑制が必要でないと判定する場合、上記検出量子化パラメータを使用するように上記符号化ステップにおける符号化を制御し、
上記符号量抑制が必要であると判定する場合、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さくないとき、該検出量子化パラメータを使用するように上記符号化ステップにおける符号化を制御すると共に、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さいとき、該フィードバック制御された基本量子化パラメータを使用するように上記符号化ステップにおける符号化を制御し、
上記符号化制御ステップでは、
直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、上記符号量抑制が必要であると判定する
画像処理方法。
【請求項３】
コンピュータを、
入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基本量子化パラメータを決定する量子化パラメータ決定手段と、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチ手段と、
上記入力画像を符号化単位毎に符号化する符号化手段と、
上記符号化手段によって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基本量子化パラメータを増大させるフィードバック制御手段と、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化手段を制御する符号化制御手段として機能させ、
上記符号化制御手段は、
上記バックサーチ検出が成功しているとき、
上記符号量抑制が必要でないと判定する場合、上記検出量子化パラメータを使用するように上記符号化手段を制御し、
上記符号量抑制が必要であると判定する場合、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さくないとき、該検出量子化パラメータを使用するように上記符号化手段を制御すると共に、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さいとき、該フィードバック制御された基本量子化パラメータを使用するように上記符号化手段を制御し、
上記符号化制御手段は、
直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、上記符号量抑制が必要であると判定する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、画像処理装置、画像処理方法およびプログラムに関し、特に、固定長符号化とダビング画質の向上を実現する画像処理装置等に関する。
【背景技術】
【０００２】
制作用途の画像符号化では編集性を重視して、オールイントラ（All Intra）のピクチャ（Picture）符号量固定のエンコードの要求が強く、符号量を厳密に一定量以下に抑える制御（量子化値制御）、つまりピクチャ固定長符号化が要求される。例えば、古くからはビデオテープレコーダ（ＶＴＲ）に記録するシステム等が挙げられる。また、ハードディスクやフラッシュメモリ等に画像を記録するファイルベースのシステムにおいても、各ピクチャへのランダムなアクセスの容易さなどからピクチャ固定長符号化の要求は強い。
【０００３】
同時に編集過程でのエンコード（Encode）／デコード（Decode）の繰り返しによる画質劣化を抑える事も要求される。ピクチャ固定長符号化において、ダビング画質を維持する方法として、従来は、バイナリサーチ（二分探索）等により、多数回のプレコード（Precode）を行い、条件を満たす最適な量子化値を見つけ、それより大きい量子化値の中からバックサーチ（BackSearch）で前回のエンコード時の量子化パラメータを推定し、それを採用するか、また、バックサーチ後に再度、プレコードにより符号量を確認するかして、符号量を一定値以下に抑えていた（特許文献１参照）。
【０００４】
しかし、多数回のプレコードは処理量の増加につながるため、処理量（回路規模）／消費電力／価格の観点から減らす事が望まれる。また、ＡＶＣ（Advanced Video Coding）等の様に画面内の相関を使用して圧縮を行う符号化方式では、ＬＳＩ（Large Scale Integration）等のハードウェアで実現する際に、マクロブロック（ＭＢ）単位に並列化やパイプライン処理する事ができず、従来のバイナリサーチを行う事は難しい。
【０００５】
そこで、本出願人は、先に、特許文献２および特許文献３で示されるように、ＡＶＣを想定した簡易符号量推定による符号量制御とダビング画質維持技術を提案した。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３５６１９６２号公報
【特許文献２】国際公開第２００９／１５７５７７号
【特許文献３】国際公開第２００９／１５７５７９号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の特許文献２および特許文献３に記載される技術では、ピクチャ単位で、バックサーチによる前回のエンコード時の量子化パラメータ推定結果を採用するか否かを決定している。そのため、採用条件を満たすピクチャと満たさないピクチャが交互に現れた場合、フリッカを引き起こす場合があった。
【０００８】
本技術の目的は、固定長符号化とダビング画質の向上を良好に実現する。
【課題を解決するための手段】
【０００９】
本技術の概念は、
入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基本量子化パラメータを決定する量子化パラメータ決定部と、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチ部と、
上記入力画像を符号化単位毎に符号化する符号化部と、
上記符号化部によって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基本量子化パラメータを増大させるフィードバック制御部と、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化部を制御する符号化制御部とを備え、
上記符号化制御部は、
上記バックサーチ検出が成功しているとき、
上記符号量抑制が必要でないと判定する場合、上記検出量子化パラメータを使用するように上記符号化部を制御し、
上記符号量抑制が必要であると判定する場合、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さくないとき、該検出量子化パラメータを使用するように上記符号化部を制御すると共に、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さいとき、該フィードバック制御された基本量子化パラメータを使用するように上記符号化部を制御し、
上記符号化制御部は、
直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、上記符号量抑制が必要であると判定する
画像処理装置にある。
【００１０】
本技術において、量子化パラメータ決定部により、入力画像を符号化したときの画像単位毎の発生符号量が画像単位毎の目標符号量の近傍になると予測される基準量子化パラメータが決定される。また、バックサーチ部により、入力画像が前回符号化されたときに使用された量子化パラメータが検出量子化パラメータとして符号化単位毎に検出される。また、符号化部により、入力画像が符号化単位毎に符号化される。
【００１１】
フィードバック制御部により、符号化部によって符号化された入力画像の発生符号量がフィードバック制御単位毎に確認され、画像単位毎の発生符号量が画像単位毎の目標符号量を超えると予測される場合に、決定された基準量子化パラメータが増大するように制御される。
【００１２】
また、符号化制御部により、ダビング時に、符号化単位毎に、符号化部が、以下のように制御される。すなわち、バックサーチ検出が成功していないとき、フィードバック制御された基本量子化パラメータを使用するように制御される。また、バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、フィードバック制御された基本量子化パラメータまたはバックサーチ検出で得られた検出量子化パラメータを選択的に使用するように制御される。
【００１３】
例えば、符号化制御部は、バックサーチ検出が成功しているとき、符号量抑制が必要でないと判定する場合、検出量子化パラメータを使用するように符号化部を制御し、符号量抑制が必要であると判定する場合、検出量子化パラメータがフィードバック制御された基本量子化パラメータより小さくないとき、検出量子化パラメータを使用するように符号化部を制御すると共に、検出量子化パラメータがフィードバック制御された基本量子化パラメータより小さいとき、フィードバック制御された基本量子化パラメータを使用するように符号化部を制御する、ようにされてもよい。
【００１４】
この場合、例えば、符号化制御部は、直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、符号量抑制が必要であると判定する、ようにされてもよい。
【００１５】
このように本技術においては、バックサーチ検出で得られた検出量子化パラメータの採用を符号化単位で判定しているので、ピクチャ単位で判定する場合におけるフリッカ発生を回避できる。また、本技術においては、符号量抑制が必要である場合に、使用可能な範囲で、バックサーチ検出で得られた検出量子化パラメータを使用するので、単純にフィードバック制御された基本量子化パラメータを使用する場合に比べて、不要な歪みを付加することが減り、画質劣化を低減させることができる。
【発明の効果】
【００１６】
本技術によれば、固定長符号化とダビング画質の向上を良好に実現できる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態としての画像処理装置の基本機能ブロック図を示す図である。
【図２】画像処理装置の具体的な構成例を示す図である。
【図３】離散的な値のＱＰの補正を行って、さらに間のＱＰについて補間により符号量を計算することを説明するための図である。
【図４】フィードバック制御の処理手順の一例を示すフローチャート（１／２）である。
【図５】フィードバック制御の処理手順の一例を示すフローチャート（２／２）である。
【図６】画像処理装置による符号化の処理手順の一例を示すフローチャートである。
【図７】Ｑ Matrix 決定処理を説明するためのフローチャートである。
【図８】前モードの推定処理を説明するためのフローチャートである。
【図９】原画モード／ダビングモードの判定処理を説明するためのフローチャートである。
【図１０】ダビングモードで本エンコードを行う際における量子化パラメータＱＰの決定処理を説明するための図である。
【図１１】ダビングモードにおいてバックサーチ検出で得られた検出量子化パラメータＱＰｅの採用範囲を示す図である。
【図１２】画像処理を実行するプログラムがインストールされるコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、発明を実施するための形態（以下、「実施の形態」とする）について説明する。なお、説明を以下の順序で行う。
１．実施の形態
２．変形例
【００１９】
＜１．実施の形態＞
［１−１．画像処理装置の構成］
図１は、実施の形態としての画像処理装置１００の基本機能ブロック図を示している。この画像処理装置１００は、簡易符号量予測部１１０と、バックサーチ部１２０と、エンコード部１３０を有している。
【００２０】
簡易符号量予測部１１０は、入力画像から、簡易プレコード（符号量推定）により、おおよその量子化パラメータを推定する。バックサーチ部１２０は、簡易符号量予測部１１０で推定された量子化パラメータを起点にして、バックサーチを行って、前回のエンコード時の量子化パラメータを推定する。エンコード部１３０は、簡易符号量予測部１１０で推定された量子化パラメータおよびバックサーチ部１２０で得られた量子化パラメータに基づいて、実際にエンコードに使う量子化パラメータを決定して、エンコード（符号化）を行って、出力ストリームを得る。
【００２１】
図２は、画像処理装置１００の具体的な構成例を示している。画像処理装置１００は、Ｈ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ ＶｉｄｅｏＣｏｄｉｎｇ；高度動画像圧縮符号化標準）等に代表される算術符号化を用いた画像圧縮方式で、符号量制御を行う。その際に、ピクチャ内で良好な符号量分布を実現し、同時にダビング特性を向上させるために、第１のプレエンコード部１で求めたパラメータを用いて、第２のプレエンコード部と前モード推定プレエンコード部４０によるプレエンコードを並列に行い、ダビングモードでエンコードをするか、原画モードでエンコードをするかを決定する。本エンコード部３では、原画モードかダビングモードであるかにより、エンコードに使うパラメータを切り替えて本エンコードを行う。
【００２２】
画像処理装置１００は、第１のプレエンコード部１および第２のプレエンコード部２により、量子化と符号長計算部のみ並列に行い、他の処理要素は共用することで、回路共通化による回路規模の削減を図る。つまり、本来であれば、並列プレエンコードを行う場合には、全ての処理要素を並列に設ける必要がある。この画像処理装置１００では、精度に影響なく共通化できる処理要素を的確に特定して共通化し、回路規模と遅延時間（Latency）の増加を抑える。
【００２３】
第１のプレエンコード部１では、少し精度を落とし回路規模並びに処理負荷を抑えた並列プレエンコードを広い範囲の量子化パラメータ（ＱＰ）で行い、目標符号量を実現するＱＰを粗く見積もる。第２のプレエンコード部２では、精度を上げた並列プレエンコードを狭い範囲で行い、本エンコード部３で使用する基本量子化パラメータＱＰMBを決定する。以上により、画像処理装置１００は、画像符号化の精度を上げつつ処理負荷を軽減する。さらに、プレエンコードを簡略化したことによる誤差がビットレートや量子化パラメータＱＰと相関を持つことから、詳細は後述するような統計モデルを予め作成しておき、ビットレートや量子化パラメータＱＰから誤差の補正を行うこととしている。
【００２４】
画像処理装置１００は、第１のプレエンコード部１、第２のプレエンコード部２、本エンコード部３、符号量制御部４、ディレイバッファ５，６、前モード推定プレエンコード部４０を有している。
【００２５】
第１のプレエンコード部１は、第１のプレエンコードを行うモジュールであり、画面内予測モード決定部１１、画面内予測処理部１２、ＤＣＴ（Discrete Cosine Transform；離散コサイン変換）部１３、量子化部１４、エントロピー符号長計算部１５、アクティビティ（Activity）計算部１６を備えている。第２のプレエンコード部２は、第２のプレエンコードを行うモジュールであり、画面内予測処理部２１、ＤＣＴ部２２、量子化部２３、エントロピー符号長計算部２４、バッファ２５、ＩＤＣＴ（Inverse DCT）部２６、逆量子化部２７を備えている。
【００２６】
前モード推定プレエンコード部４０は、バックサーチを行うモジュールであり、画面内予測処理部４１、ＤＣＴ部４２、バックサーチ部４３、バッファ４４、量子化部４５、エントロピー符号長計算部４６を備えている。本エンコード部３は、本エンコードを行うモジュールであり、画面内予測処理部３１、ＤＣＴ部３２、量子化部３３、エントロピー符号化部３４、バッファ３５、ＩＤＣＴ部３６、逆量子化部３７を備えている。符号量制御部４は、符号量制御を行うモジュールである。
【００２７】
［１−２．量子化パラメータおよび量子化行列の予測］
［１−２−１．低精度発生符号量の算出］
画像処理装置１００は、符号化難易度に応じて例えば３つの量子化行列 Ｑ Matrixを適用的に選択して使用する（詳しくは後述する）。画像処理装置１００は、量子化行列Ｑ Matrixを設定すると共に、この量子化行列Ｑ Matrixの取り得る範囲の量子化パラメータＱＰについて、第１のプレエンコード部１による簡易な処理によって発生符号量を粗く見積もる。以下、このプレエンコード部１で見積もられた発生符号量を低精度発生符号量と呼ぶ。
【００２８】
画像処理装置１００は、全ての量子化行列Ｑ Matrixについて同様の処理を実行し、量子化行列Ｑ Matrixおよび量子化パラメータＱＰを変更したときの低精度発生符号量を算出する。そして、画像処理装置１００は、低精度発生符号量が目標符号量に最も近くなる量子化パラメータＱＰおよび量子化行列ＱMatrixを、次のステップである第２のプレエンコード部２で使用する。この場合、量子化パラメータＱＰを第２のプレエンコード部２でピクチャの平均量子化パラメータBaseＱＰとして使用する予測量子化パラメータＱＰｄとし、量子化行列 Ｑ Matrixを第２のプレエンコード部２で使用するピクチャの量子化行列Ｑ Matrix（以下、「予測量子化行列 Ｑ MatrixD 」と呼ぶ）とする。
【００２９】
このとき、画像処理装置１００は、離散的に選択された一部の量子化パラメータＱＰ（以下、「選択量子化パラメータＱＰｌ」と呼ぶ）を用いて入力画像９１における低精度発生符号量を算出する。画像処理装置１００は、選択量子化パラメータＱＰｌ間の低精度発生符号量を補間によって算出することにより、量子化行列Ｑ Matrixが取り得る範囲の量子化パラメータＱＰの全てについて、低精度発生符号量を算出する。
【００３０】
実際上、入力画像９１は、最初に第１のプレエンコード部１の画面内予測モード決定部１１に入力される。画面内予測モード決定部１１は、この入力画像９１に基づいて、全ての画面内予測モードによって差分画像データを生成すると共に、当該差分画像データの発生符号量の予測に基づいて画面内予測モードを決定する。予測モード（予測方向）は、最小４×４画素単位で９通りの予測モードの中から決定される。
【００３１】
この決定された画面内予測モードは、画面内予測処理部１２に送出されると共に、第２のプレエンコード部２や本エンコード部３にも送出される。この画面内予測モードは、第２のプレエンコード部２による第２のプレエンコード、本エンコード部３による本エンコードでも使用される。
【００３２】
画面内予測処理部１２は、予測画像と入力画像９１との差分画像を計算し、差分画像データを生成する。ここでの予測画像は、処理を削減するため入力画像９１から作られる。このように、第１のプレエンコード部１は、入力画像を用いて画面内予測処理を行うことで、逆量子化部、ＩＤＣＴ部、バッファを削減することができ、回路規模を削減することが可能となる。
【００３３】
ＤＣＴ部１３は、差分画像データに対して整数精度ＤＣＴ処理を実行し、ＤＣＴ係数を生成すると、これを量子化部１４に送出する。量子化部１４は、このＤＣＴ係数について量子化を行い、量子化係数を生成すると、これをエントロピー符号長計算部１５に送出する。エントロピー符号長計算部１５は、量子化係数に対し、コンテキスト適応型可変長符号化方式（ＣＡＶＬＣ；Context-Adaptive Variable Length Coding）を行うことにより符号量を計算する。ＣＡＶＬＣによれば、周囲の状況に応じて高効率の符号化方式を適応的に選択できる。
【００３４】
このように、第１のプレエンコードでは、本エンコードにおいてエントロピー符号化方式としてＣＡＢＡＣ（ Context-Adaptive Binary Arithmetic Coding ）を用いる場合でも、符号量計算にＣＡＶＬＣを用いることを特徴の一つとしている。なお、ＣＡＢＡＣとは、コンテキスト適応型２値算術符号化方式である。
【００３５】
ここで、量子化部１４は、並列に設けられた量子化部１４−１，・・・，１４−ｎ（ｎ＝１，２，３・・）により構成され、エントロピー符号長計算部１５は、並列に設けられたエントロピー符号長計算部１５−１，・・・，１５−ｎ（ｎ＝１，２，３・・）により構成されている。ｎの値は、例えば１５に設定されている。量子化部１４は、０〜５１でなる量子化パラメータＱＰのうち、設定されている量子化行列ＱMatrixに対応した選択量子化パラメータＱＰｌを各量子化部１４−１，・・・，１４−ｎに設定する。
【００３６】
この選択量子化パラメータＱＰｌは、量子化行列Ｑ Matrixが取り得る量子化パラメータＱＰの範囲から、任意の間隔で離散的に選択される。なお、選択量子化パラメータＱＰｌは、例えば一定間隔で選択されても良く、量子化パラメータＱＰの値に応じて変化する間隔で選択されても良い。このような構成の下、第１のプレエンコード部１は、量子化と符号長計算を、上記並列数と同数の複数の量子化パラメータＱＰに対して並列に実行し、それぞれの発生符号量を符号量制御部４に出力する。
【００３７】
すなわち、第１のプレエンコード部１は、量子化部１４、エントロピー符号長計算部１５による回路規模を抑えた並列プレエンコードにより、広い範囲の量子化パラメータＱＰで第１のプレエンコードを行うことで、広い範囲の量子化パラメータＱＰに対する発生符号量を算出する。
【００３８】
アクティビティ計算部１６は、画面内予測モード決定部１１による画面内予測モードの決定と同時並行して、アクティビティ（Activity）を計算し、このアクティビティによりマクロブロック（ＭＢ；Macro Block）をグループ分けする。つまり、NumOfActivityGroup のグループに分ける場合を想定すると、アクティビティ計算部１６は、ActivityThreshold[0]〜ActivityThreshold[NumOfActivityGroup-2]とアクティビティの値とを比較することにより、アクティビティグループを決定する。
【００３９】
なお、量子化処理において実際に使用される量子化パラメータＱＰは、以下の数式（１）に示すように、ピクチャの平均量子化パラメータＱＰ（BaseＱＰ）に対して、アクティビティグループに依存したオフセット（AdaptＱＰDelta）を加えることで求められる。
ＭＢ_ＱＰ＝BaseＱＰ＋AdaptＱＰDelta[Activity_group]      ・・・（１）
【００４０】
例えば、NumOfActivityGroup を１３とするなら、AdaptＱＰDelta の各値は、ADAPTＱＰDELTA[13]＝{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6} とすることができる。各ＭＢに対して決定されたアクティビティグループ（Activity Group）番号は、量子化部１４に入力される。量子化部１４は、選択量子化パラメータＱＰｌに対し、アクティビティグループに応じたオフセットを付加して適応量子化パラメータＱＰｔを算出する。量子化部１４は、適応量子化パラメータＱＰｔに基づいて、ＤＣＴ係数に対する量子化処理を実行する。
【００４１】
第１のプレエンコード部１は、次の量子化行列 Ｑ Matrix およびこの量子化行列Ｑ Matrix に対応する選択量子化パラメータＱＰｌを設定することにより、同様にして発生符号量を算出する。この結果、第１のプレエンコード部１は、量子化行列Ｑ Matrix およびこの量子化行列 Ｑ Matrix に対応する選択量子化パラメータＱＰｌについて、発生符号量をそれぞれ算出することになる。
【００４２】
［１−２−２．発生符号量の誤差の補正］
符号量制御部４は、第１のプレエンコード部１において算出された発生符号量に対して補正を行う。ここでの補正は、誤差が、ある程度の傾向を持っている事を利用して行う。第１の誤差要因は、画面内予測処理にローカルデコード（Local Decode）画ではなく入力画像９１を用いている事である。
【００４３】
この場合、画面内予測に使う画にコーデック（Codec）による歪がのっていないので、実際のエンコードより符号化効率が良くなり、符号量が少なめに出る傾向がある。この誤差の大きさは、歪の大きさに依存するので、発生符号量と誤差の関係では、ビットレート（Bit rate）が小さくなると誤差が大きくなる傾向がある。また、量子化パラメータＱＰと誤差の関係では、量子化パラメータＱＰが大きくなると誤差が大きくなる傾向にある。よって、予め誤差の大きさの統計データを取り、ビットレート“ｒ”とＱＰ“ｑ”の関数として定義する。
【００４４】
具体的に、符号量制御部４は、ＣＡＶＬＣによって符号化されたときの発生符号量について、ビットレートによる平均的な誤差のモデル、量子化パラメータＱＰによる平均的な誤差のモデルをそれぞれ作成しておく。この誤差モデルは、量子化パラメータＱＰおよびビットレートにそれぞれ対応する例えば数式やテーブルとして予め記憶される。
【００４５】
符号量制御部４は、量子化パラメータＱＰおよびビットレートから補正すべき誤差を表す補正量Ｃ_rate、Ｃ_qpを、対応する誤差モデルからそれぞれ算出する。符号量制御部４は、量子化パラメータＱＰおよびビットレートに対応する補正量Ｃ_rate、Ｃ_qp のうち、以下の数式（２）に従って、小さい値を補正量Ｃｖとして選択する。
補正量Ｃｖ＝min(Ｃ_rate、Ｃ_qp)      ・・・（２）
【００４６】
これにより、誤差の補正量が大きくなり過ぎてしまい、補正された発生符号量が第２のプレエンコード部２において算出される高精度発生符号量よりも大きくなってしまうことを防止し得るようになされている。なお、この補正量Ｃ_rate、Ｃ_qp は、第１のプレエンコード部１によって算出された発生符号量（Pre-Encode 符号量）に対する補正量の割合（％）を表している。
【００４７】
符号量制御部４は、第１のプレエンコード部１によって算出された発生符号量に対し、以下の数式（３）に従って、補正量Ｃｖを乗算することにより、発生符号量に対する補正量（以下、「ＣＡＶＬＣ補正符号量」と呼ぶ）を算出する。符号量制御部４は、発生符号量に対してＣＡＶＬＣ補正符号量を加算することにより、ＣＡＶＬＣについての低精度発生符号量を算出する。
ＣＡＶＬＣ補正符号量＝Pre-Encode符号量 × Ｃｖ      ・・・（３）
【００４８】
第２の誤差要因は、エントロピー符号化方式でＣＡＢＡＣを選択したときのみ発生するものである。第１のプレエンコード部１では、ＣＡＢＡＣによる符号化を実行せず、ＣＡＶＬＣの符号量からＣＡＢＡＣによって符号化したときの低精度発生符号量を予測する。ＣＡＢＡＣはＣＡＶＬＣより符号化効率が良いので、ＣＡＶＬＣでプレエンコードした発生符号量は、実際の符号量より多めに出る傾向がある。
【００４９】
例えば、発生符号量と誤差の関係では、この誤差の大きさは統計的に見てビットレート（Bitrate）が小さくなるとＣＡＢＡＣの効率が良くなることに起因して、大きくなる傾向にある。これも同様に、予め誤差の大きさの統計データを取り、平均的な誤差のモデルを作成しておくことで補正する。
【００５０】
ＣＡＢＡＣに起因する誤差は、ＣＡＶＬＣの符号量による符号化において生じる誤差と比較して、量子化パラメータＱＰおよびビットレートに関し反対側に変化し、その変化量は小さいことが明らかになった。そこで、ＣＡＢＡＣについての補正量（以下、「ＣＡＢＡＣ補正量」と呼ぶ）をビットレート“ｒ”とＱＰ“ｑ”の関数として定義する。このとき、補正量Ｃｂは、以下の数式（４）によって、算出される。
補正量Ｃｂ＝min（ｒ，ｑ）      ・・・（４）
【００５１】
符号量制御部４は、第１のプレエンコード部１によって算出された発生符号量（Pre-Encode符号量）に対し、以下の数式（５）に従って、補正量Ｃｖを乗算することにより、発生符号量に対する補正量（以下、「ＣＡＢＡＣ補正符号量」と呼ぶ）を算出する。
ＣＡＢＡＣ補正符号量＝ Pre-Encode 符号量 × Ｃｂ      ・・・（５）
【００５２】
符号量制御部４は、低精度発生符号量に対してＣＡＢＡＣ補正符号量を加算することにより、ＣＡＢＡＣについての低精度発生符号量を算出する。符号量制御部４は、図３に示すように、第１のプレエンコード部１によって算出された発生符号量（四角で表す）に対して補正されたＣＡＶＬＣ補正量およびＣＡＢＡＣ補正符号量（黒丸で表す）をそれぞれ算出することができる。
【００５３】
次に、符号量制御部４は、量子化パラメータ（ＱＰ）の推定処理を行う。上述したように、第１のプレエンコード部１は、任意の間隔で、離散的な値の選択量子化パラメータＱＰｌでプレエンコードを行って発生符号量を取得している。符号量制御部４は、量子化行列Ｑ Matrixの取り得る量子化パラメータＱＰの範囲のうち、選択量子化パラメータＱＰｌ以外の量子化パラメータＱＰに関して、補間により発生符号量を計算する（白丸で示す）。
【００５４】
補間処理としては、線形補間など一般的な補間処理を用いることができる。すなわち、図３に示すように、第１のプレエンコード部１で得た離散的な値の量子化パラメータＱＰ（四角で示す）ついて、補正を行い補正後の量子化パラメータＱＰ（黒丸で示す）を得て、更に、その間の量子化パラメータＱＰ（白に丸で示す）について補間により符号量を計算することになる。
【００５５】
このように、符号量制御部４は、第１のプレエンコード部１によって算出された発生符号量に対し、この第１のプレエンコード部１において簡易化した処理に応じて発生する発生符号量の誤差を補正してＣＡＶＬＣについての低精度発生符号量を算出する。これにより、符号量制御部４は、簡易化された符号化処理による発生符号量の予測精度を向上させ得る。
【００５６】
符号量制御部４は、ＣＡＶＬＣについての低精度発生符号量を用いてＣＡＢＡＣによる発生符号量の予測量である低精度発生符号量を算出する。これにより、符号量制御部４は、処理の複雑なＣＡＢＡＣを行うことなく、ＣＡＢＡＣによる低精度発生符号量を見積もることができる。
【００５７】
符号量制御部４は、離散的に選択された選択量子化パラメータＱＰｌによって予測された低精度発生符号量から、補間処理により、この選択量子化パラメータＱＰｌ以外の量子化パラメータＱＰについての低精度発生符号量を予測する。これにより、符号量制御部４は、わざわざ全ての量子化パラメータＱＰを用いて入力画像９１を符号化せずに済み、第１のプレエンコード部１の構成を簡易にすることができる。
【００５８】
［１−２−３．予測量子化行列の決定］
上述したように、量子化行列 Ｑ Matrix が取り得る全ての量子化パラメータＱＰについて、低精度発生符号量が算出された。符号量制御部４は、符号化難易度に応じて量子化行列 Ｑ Matrixを変更し、変更された量子化行列 Ｑ Matrix に対応する低精度発生符号量に基づいて、目標符号量に最も近い量子化パラメータＱＰを基本量子化パラメータＱＰMBとして選択するようになされている。
【００５９】
符号量制御部４は、量子化行列 Ｑ Matrix毎に、目標符号量に一番近い低精度発生符号量が生成されたときに使用された量子化パラメータＱＰを近傍量子化パラメータＱＰｎとして選択する。符号量制御部４は、符号化難易度として、例えば各量子化行列Ｑ Matrix 毎に選択された近傍量子化パラメータＱＰｎを使用する。もちろん、アクティビティなど別の指標を用いることも可能である。
【００６０】
ここでは、切り替えて使う量子化行列 Ｑ Matrix の数を NumOfQMatrixId とし、傾斜の緩やかな量子化行列 Ｑ Matrixから昇順にＩｄ（識別子）を付け、各量子化行列 ＱMatrixの取り得る範囲における最大の量子化パラメータＱＰを QMatrixThreshold[Id］とする。
【００６１】
符号量制御部４は、Ｉｄの値の小さい量子化行列 Ｑ Matrix から近傍量子化パラメータＱＰｎとQMatrixThreshold とを比較する。符号量制御部４は、近傍量子化パラメータＱＰｎが QMatrixThreshold[Id]より小さい量子化行列 Ｑ Matrix のうち、最小のＩｄを有する量子化行列 Ｑ Matrixを予測量子化行列 Ｑ MatrixD として決定する。符号量制御部４は、当該予測量子化行列 Ｑ MatrixD における近傍量子化パラメータＱＰｎを予測量子化パラメータＱＰｄとして決定する。
【００６２】
すなわち、符号量制御部４は、低精度発生符号量が目標符号量に近い量子化パラメータＱＰを取り得る量子化行列 Ｑ Matrix のうち、最小の傾斜を有する量子化行列 Ｑ Matrix を予測量子化行列 Ｑ MatrixD として決定する。この予測量子化行列 Ｑ MatrixD は本エンコード部３による本エンコードにも使用されることになる。符号量制御部４は、低精度発生符号量の条件を満たす中で最小の傾斜を有する量子化行列Ｑ Matrix を用いることができるため、画質の劣化を極力防止することができる。
【００６３】
なお、符号量制御部４は、第１のプレエンコード部１によってＩｄの小さい量子化行列Ｑ Matrixから順に当該量子化行列 Ｑ Matrix の取り得る範囲の選択量子化パラメータＱＰｌについて低精度発生符号量を算出する。そして符号量制御部４は、近傍量子化パラメータＱＰｎがQMatrixThreshold[Id] より小さい量子化行列 Ｑ Matrixを検出した場合には、当該量子化行列 Ｑ Matrix および近傍量子化パラメータＱＰｎを予測量子化行列 Ｑ MatrixD および予測量子化パラメータＱＰｄとして決定する。
【００６４】
このとき、符号量制御部４は、第１のプレエンコード部１に、次のピクチャに対する処理を開始させる。すなわち、符号量制御部４は、第１のプレエンコード部１に処理中のピクチャに関する次のＩｄの量子化行列 Ｑ Matrix についての低精度発生符号量を算出させない。これにより、符号量制御部４は、予測量子化パラメータＱＰｄ及び予測量子化行列 Ｑ MatrixD を決定するのに要する処理時間を短縮し得る。
【００６５】
このように、符号量制御部４は、低精度発生符号量が目標符号量に近くなる量子化パラメータＱＰを取り得る量子化行列 Ｑ Matrix のうち、画質の低下を防止するために最も傾斜の小さい量子化行列 Ｑ Matrixを予測量子化行列 Ｑ MatrixD として選択する。
【００６６】
符号量制御部４は、予測量子化行列 Ｑ MatrixD において低精度発生符号量が目標符号量に最も近くなる量子化パラメータＱＰを予測量子化パラメータＱＰｄとして選択する。これにより、符号量制御部４は、画質を極力低下させないように適応的に量子化行列 Ｑ Matrix を変更しつつ、低精度発生符号量が目標符号量に最も近くなる量子化パラメータＱＰを予測量子化パラメータＱＰｄとして選択することができる。
【００６７】
［１−３．基本量子化パラメータの決定］
第２のプレエンコード部２は、予測量子化パラメータＱＰｄおよび予測量子化行列 Ｑ MatrixD を用いて実際にエンコーダ３と同様の符号化を実行することにより、高精度発生符号量を高い精度で算出する。以下、この第２のプレエンコード部２によって算出された発生符号量を高精度発生符号量と呼ぶ。このとき第２のプレエンコード部２は、予測量子化パラメータＱＰｄだけでなく、この予測量子化パラメータＱＰｄの前後の量子化パラメータＱＰを用いて高精度発生符号量を算出し、その変動率を用いて予測量子化パラメータＱＰｄ近傍の高精度発生符号量を予測する。
【００６８】
符号量制御部４は、予測量子化パラメータＱＰｄ、予測量子化行列 Ｑ MatrixD および各ＭＢのアクティビティグループを第２のプレエンコード部２に供給する。第２のプレエンコード部２は、これらの値に基づいて第２のプレエンコードを行う。第２のプレエンコード部２では、入力画像９１が、ディレイバッファ５を介して遅延処理された後に画面内予測処理部２１に入力される。
【００６９】
画面内予測処理部２１は、予測画像と入力画像９１との差分を計算し、差分画像データを生成する。そして、ＤＣＴ部２２は、差分画像データに対してＤＣＴ処理を実行しＤＣＴ係数を生成する。量子化部２３は、ＤＣＴ係数に対して量子化処理を実行し、量子化係数を生成する。エントロピー符号長計算部２４は、ＣＡＶＬＣまたはＣＡＢＡＣを用いて量子化係数をそれぞれエントロピー符号化し、高精度発生符号量を計算する。
【００７０】
なお、第２のプレエンコード部２における処理の過程において、量子化部２３は量子化係数を逆量子化部２７に送出する。逆量子化部２７は、量子化係数を逆量子化して、ＤＣＴ係数を再生する。そして、ＩＤＣＴ部２６は、ＤＣＴ係数をＩＤＣＴ変換し、ローカルデコード画像を生成し、バッファ２５に保存する。
【００７１】
ここで、量子化部２３は、この例では３段の量子化部２３−１，２３−２，２３−３により構成され、エントロピー符号長計算部２４は、この例では３段のエントロピー符号長計算部２４−１，２４−２，２４−３により構成されている。３段と少なくしているのは、既に第１のプレエンコードで量子化パラメータＱＰが広い範囲で粗く見積もられているからである。
【００７２】
このような構成の下、量子化部２３、エントロピー符号長計算部２４は、並列に処理を実行し、予測量子化パラメータＱＰｄおよびこの予測量子化パラメータＱＰｄの前後の量子化パラメータＱＰでの高精度発生符号量を得ることになる。このとき、エントロピー符号長計算部２４は、本エンコード部３による本エンコードのエントロピー符号化方式と同じ方式をＣＡＢＡＣ／ＣＡＶＬＣのいずれかから選択する。
【００７３】
続いて、符号量制御部４は、第２のプレエンコードにより得られた高精度発生符号量から、本エンコードで使用するピクチャの基本量子化パラメータＱＰMBを決定する。そして、符号量制御部４は、この決定されたピクチャの基本量子化パラメータＱＰMB や予測量子化行列 Ｑ MatrixD 、各ＭＢのアクティビティグループから、量子化の情報（Ｑ Matrix、各ＭＢのＱＰ等）を本エンコード部３に送出する。
【００７４】
この場合、目標符号量が、第２のプレエンコードで得られた高精度発生符号量に挟まれている場合、つまり、以下の数式（６）で表される場合には、目標符号量に最も近い量子化パラメータＱＰを基本量子化パラメータＱＰMB として選択する。
Generated_bits(QP_precode 1 + 1) ≦ Target_bits 
≦ Generated_bits(QP_precode 1 - 1)      ・・・（６）
【００７５】
そうでない場合、符号量制御部４は、量子化パラメータＱＰの変化に対する高精度発生符号量の変動率を、第２のプレエンコードの結果から求める。測量子化パラメータＱＰｄは、第１のプレエンコード部１による低精度発生符号量に基づいて算出されている。このため、目標符号量に最も近い量子化パラメータＱＰは、予測量子化パラメータＱＰｄの近傍に存在する。量子化パラメータＱＰの値が近い場合、発生符号量の変動率は略一定である。
【００７６】
そこで、符号量制御部４は、予測量子化パラメータＱＰｄおよび当該予測量子化パラメータＱＰｄの前後の量子化パラメータＱＰにおける高精度発生符号量の変動率から各量子化パラメータＱＰでの高精度発生符号量を予測し、目標符号量に最も近い量子化パラメータＱＰを基本量子化パラメータＱＰMBとして選択する。
【００７７】
まず、量子化パラメータＱＰが「１」減算されたときに、高精度発生符号量が何％変わるかを表す DiffRatio_1 を、第２のプレエンコード２の結果から、以下の数式（７）に示すようにして、求める。なお、Generated_bits は第２のプレエンコード２における発生符号量を表しており、ＱＰ_precode1 は、予測量子化パラメータＱＰｄを、ＱＰ_precode1-1 は予測量子化パラメータＱＰｄより「１」小さい量子化パラメータＱＰを表している。
【００７８】
DiffRatio_1 ＝
Generated_bits(QP_precode1 - 1)
− Generated_bits(QP_precode 1 ))
/ Generated_bits(QP_precode 1 )    ・・・（７）
【００７９】
量子化パラメータＱＰが「１」加算されたときに、高精度発生符号量が何％変わるかを表すDiffRatio_2を、第２のプレエンコード２の結果から以下の数式（８）に示すようにして、求める。ＱＰ_precode1+1 は予測量子化パラメータＱＰｄより「１」大きい量子化パラメータＱＰを表している。
【００８０】
DiffRatio_2 ＝ 
Generated_bits(QP_precode 1 ) 
− Generated_bits(QP_precode 1 + 1))
/ Generated_bits(QP_precode 1 + 1)    ・・・（８）
【００８１】
予測量子化パラメータＱＰｄの近傍における高精度発生符号量の変動率 DiffRatioを、以下の数式（９）のようにして、求める。すなわち、予測量子化パラメータＱＰｄから正負の方向にそれぞれ「１」だけ変化したときの発生符号量の変動の平均値として、DiffRatio を算出する。
DiffRatio=(DiffRatio_1 + DiffRatio_2) / 2      ・・・（９）
【００８２】
DeltaＱＰを、高精度発生符号量が目標符号量に最も近い量子化パラメータＱＰと予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）との差の絶対値とする。このとき、目標符号量に最も近い高精度発生符号量に対応する量子化パラメータＱＰが、予測量子化パラメータＱＰｄより１だけ小さい量子化パラメータＱＰ（ＱＰ_precode1-1 ）より小さいときには、高精度発生符号量が目標符号量に最も近い量子化パラメータＱＰの高精度発生符号量（Generated_bits（ＱＰ））を、以下の数式（１０）に示すように、算出する。
【００８３】
Generated_bits(ＱＰ)
＝Generated_bits(ＱＰ_precode1 - 1) × (1.0 + DiffRatio) ＾ (DeltaＱＰ-1)
・・・（１０）
【００８４】
目標符号量に最も近い高精度発生符号量に対応する量子化パラメータＱＰが予測量子化パラメータＱＰｄより１だけ大きい量子化パラメータＱＰ（ＱＰ_precode1+1 ）より大きいときには、高精度発生符号量が目標符号量に最も近い量子化パラメータＱＰの高精度発生符号量（Generated_bits（ＱＰ））を、以下の数式（１１）に示すように、算出する。
【００８５】
Generated_bits(ＱＰ)
＝Generated_bits(ＱＰ_precode1 + 1) × (1.0 + DiffRatio) ＾(DeltaＱＰ-1)
・・・（１１）
【００８６】
すなわち、符号量制御部４は、予測量子化パラメータＱＰｄの前後の量子化パラメータＱＰを用いたときの高精度発生符号量に対し、予測量子化パラメータＱＰｄを中心に量子化パラメータＱＰの値が「１」だけ変化したときの変動率に応じた符号量だけ増減させる。符号量制御部４は、予測量子化パラメータＱＰｄの近傍の量子化パラメータＱＰを用いた場合の高精度発生符号量を高い精度で算出することができる。
【００８７】
以上のようにして、符号量制御部４は、目標符号量に最も近い量子化パラメータＱＰを本エンコードにおいて平均量子化パラメータ（BaseＱＰ）として使用する基本量子化パラメータＱＰMB として選択することになる。
【００８８】
上述したように、第２のプレエンコード部２では、第１のプレエンコード部１により推定された予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）と、ひとつ大きい量子化パラメータＱＰ（ＱＰ_precode1+1 ）、ひとつ小さい量子化パラメータＱＰ（ＱＰ_precode1-1 ）でプレエンコードする。ここで、回路規模削減のため、前述したように、量子化部２３とエントロピー符号長計算部２４のみ並列化し、その他の処理は共用する。
【００８９】
このとき、画面内予測処理で使用するローカルデコード（Local Decode ）画は、第１のプレエンコード部１の結果に基づいて推定された予測量子化パラメータＱＰｄ（ＱＰ_precode１）で量子化したデータとする。つまり、逆量子化とＩＤＣＴで処理されるデータは、予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）の量子化の出力である。
【００９０】
これは、予測量子化パラメータＱＰｄの前後の量子化パラメータＱＰ（ＱＰ_precode1+1、ＱＰ_precode1-1 ）を使うプレエンコードの画面内予測処理の入力を、自分自身のローカルデコード（Local Decode ）画ではなく、予測量子化パラメータＱＰｄ（ＱＰ_precode1）のローカルデコード（Local Decode ）画で代用することを意味する。
【００９１】
このように、符号量制御部４は、第１のプレエンコード部１の結果に基づく低精度発生符号量の予測により、低精度発生符号量が目標符号量に最も近くなる可能性が極めて高い予測量子化パラメータＱＰｄおよびその前後の量子化パラメータＱＰによって本エンコードと同様の符号化によって高精度発生符号量を算出する。これにより、符号量制御部４は、予測量子化パラメータＱＰｄ及びその前後の量子化パラメータＱＰを用いた場合の高精度発生符号量をほぼ正確に算出することができる。
【００９２】
さらに本技術は、狭い範囲内では量子化パラメータＱＰの変化に伴う高精度発生符号量の変動率がほぼ一定であることに着目した。符号量制御部４は、予測量子化パラメータＱＰｄおよびその前後の量子化パラメータＱＰにおける高精度発生符号量の変動率に基づいて、予測量子化パラメータＱＰｄの近傍の量子化パラメータＱＰを用いたときの高精度発生符号量を算出する。これにより、符号量制御部４は、予測量子化パラメータＱＰｄの近傍の量子化パラメータＱＰについても、ほぼ正確に高精度発生符号量を算出することができる。
【００９３】
［１−４．バックサーチ処理］
前モード推定プレエンコード部４０は、バックサーチ処理を行って、前回の符号化に使用された量子化パラメータＱＰを求める。この際、第１のプレエンコード部１で求めた予測量子化行列 Ｑ MatrixD を用い、また第１のプレエンコード部１で求めた予測量子化パラメータＱＰｄを起点として、上下の一定の範囲の量子化パラメータＱＰに対して推定処理を行うことで、バックサーチ処理のサーチ範囲を限定し回路規模を削減する。
【００９４】
ここで、「バックサーチ」とは、以前の圧縮符号化で使用された量子化ステップ、あるいは、その倍数関係にある量子化ステップを用いると、離散余弦変換（ＤＣＴ；discrete cosine transfer ）係数の剰余の総和が極小となるという性質を利用して、最小値に係る量子化ステップを最適な量子化ステップとして求める手法である。
【００９５】
バックサーチ部４３は、量子化パラメータＱＰ検出機能、並びに画面内予測モードの検出機能を備える。バックサーチ部４３は、量子化パラメータＱＰ検出機能により、前回のエンコードの過程で得られるＤＣＴ係数に基づいて、前回のエンコードにおいて使われた量子化パラメータＱＰを検出する。以下、検出された量子化パラメータＱＰを検出量子化パラメータＱＰｅと呼ぶ。
【００９６】
具体的に、バックサーチ部４３は、ＭＢ毎にＤＣＴ係数を複数の量子化パラメータＱＰによるリスケーリングファクターＲＦで除算したときの剰余を用いて、検出量子化パラメータＱＰｅを検出する。そして、バックサーチ部４３は、画面内予測モード検出機能により、検出された検出量子化パラメータＱＰｅに基づいて前回の符号化に使用された画面内予測モードを検出する。なお、本実施の形態においては、処理の軽減化のため、バックサーチとして検出量子化パラメータＱＰｅと画面内予測モードの検出のみを実行する。
【００９７】
エントロピー符号長計算部４６は、本エンコード部３による本エンコードのエントロピー符号化と同じ方式をＣＡＢＡＣ／ＣＡＶＬＣから選択する。前モード推定プレエンコード部４０は、検出量子化パラメータＱＰｅおよび検出された画面内予測モードに基づいて、バックサーチ発生符号量を算出する。符号量制御部４は、こうして得られたバックサーチ発生符号量から、目標符号量を満たすかを判断する。
【００９８】
符号量制御部４は、第２のプレエンコード部２と前モード推定プレエンコード部４０の結果から、原画モードでエンコードするか、ダビングモードでエンコードするかを決定し、最終的なエンコードのパラメータを決定する。符号量制御部４は、原画モード／ダビングモードの判定結果と、基本量子化パラメータＱＰMB 、予測量子化行列 Ｑ MatrixD 、および画面内予測モード、並びに各ＭＢのアクティビティグループ（以下、これらをまとめて「本エンコード情報」と呼ぶ）を本エンコード部３に渡す。
【００９９】
この結果、本エンコード部３は、原画モードおよびダビングモードのいずれかに移行し、原画モードおよびダビングモードに応じた本エンコード情報を用いてエンコードを行う。本エンコード部３は、ディレイバッファ６を介して遅延処理された入力画像９１を受け取ると、第１のプレエンコード部１によって決定された画面内予測モードを用い、画面内予測処理部３１によって予測画像と入力画像との差分画像データを生成する。ＤＣＴ部３２はＤＣＴ処理を行い、量子化部３３はＤＣＴ係数の量子化を行う。
【０１００】
量子化部３３の出力は逆量子化部３７にも送られる。逆量子化部３７は、逆量子化してＤＣＴ係数を再生する。そして、ＩＤＣＴ部３６はＤＣＴ係数をＩＤＣＴ変換し、入力画像を再生し、バッファ３５に保存する。こうして、前述したようなＤＣＴ部３２によるＤＣＴ、量子化部３３によるＤＣＴ係数の量子化を経て、エントロピー符号化部３４によりエントロピー符号化がなされ、目標符号量とされた出力ストリーム９２が出力される。
【０１０１】
［１−５．非原画に対するモードの選択］
原画モード／ダビングモードの判定処理について説明する。上述したように、バックサーチ部４３によって、処理対象となるＭＢから検出量子化パラメータＱＰｅが検出されている。このとき、入力画像９１が原画あっても、偶発的にバックサーチが成功し、検出量子化パラメータＱＰｅが検出される場合がある。逆に、入力画像９１が非原画であっても、偶発的にバックサーチが不成功となり、検出量子化パラメータＱＰｅが検出されない場合がある。
【０１０２】
そこで、符号量制御部４は、バックサーチの成功率が閾値以上であるか否かにより、現在処理中の入力画像９１におけるピクチャが原画であるか非原画であるかを判定する。ここで、原則として、ピクチャが非原画であるときに使用されるダビングモードでは、バックサーチが成功したＭＢに対しては検出量子化パラメータＱＰｅを用いるのに対し、バックサーチが不成功のＭＢに対して基本量子化パラメータＱＰMB およびアクティビティによるオフセットを用いる。
【０１０３】
このとき、これらの組み合わせによっては、ピクチャのバックサーチ発生符号量が目標符号量を超えてしまう場合がある。このため、符号量制御部４は、ピクチャが非原画であると判定した場合には、ダビングモードにおけるバックサーチ発生符号量を算出し、バックサーチ発生符号量が目標符号量内に収まる場合には、ダビングモードを選択し、バックサーチ発生符号量が目標符号量内に収まらない場合には、原画モードを選択するようになされている。
【０１０４】
具体的に、符号量制御部４は、バックサーチが成功したＭＢ（以下、[成功ＭＢ]と呼ぶ）の発生符号量の和（ GenBits_success ）を算出する。成功ＭＢでは、アクティビティを考慮することなく、検出量子化パラメータＱＰｅをそのまま使用する。そのため符号量制御部４は、成功ＭＢについて、前モード推定プレエンコード部４０によって算出された発生符号量を使用し、発生符号量の和（GenBits_success ）を算出する。
【０１０５】
符号量制御部４は、バックサーチが不成功のＭＢ（以下、「不成功ＭＢ」と呼ぶ）について、第２のプレエンコード部２において算出された高精度発生符号量に基づいて、基本量子化パラメータＱＰMBを用いたときの発生符号量の和（ GenBits_not_success ）を算出する。上述したように、第２のプレエンコード部２では、量子化パラメータＱＰが「１」だけ変化したときの変動率（Diffratio ）、および基本量子化パラメータＱＰMBを算出している。
【０１０６】
符号量制御部４は、発生符号量の和（ GenBits_not_success ）に対し、予測量子化パラメータＱＰｅと基本量子化パラメータＱＰMBとの差分値（Diff_ＱＰ）の回数だけ変動率（ Diffratio ）を乗算することにより、不成功ＭＢについて基本量子化パラメータＱＰMBを用いたときの発生符号量（GenBits_not_success_rev ）を算出する。
【０１０７】
すなわち、基本量子化パラメータＱＰMBが予測量子化パラメータＱＰｄより大きいとき、以下の数式（１２）に示すように、発生符号量（GenBits_not_success_rev ）を求める。一方、基本量子化パラメータＱＰMBが予測量子化バラメータＱＰｄより小さいとき、以下の数式（１３）に示すように、発生符号量（ GenBits_not_success_rev ）を求める。
【０１０８】
GenBits_not_success_rev 
＝ GenBits_not_success × (1.0 + Diffratio) ^ Diff_ＱＰ      ・・・（１２）
GenBits_not_success_rev 
＝ GenBits_not_success × (1.0 - Diffratio) ^ Diff_ＱＰ      ・・・（１３）
【０１０９】
符号量制御部４は、成功ＭＢの発生符号量（ GenBits_success ）と不成功ＭＢの発生符号量（GenBits_not_success_rev ）を加算することにより、ダビングモードを使用した場合のピクチャのバックサーチ発生符号量（GenBits_rev ）を、以下の数式（１４）に示すように、算出する。
GenBits_rev 
＝ GenBits_success ＋ GenBits_not_success_rev      ・・・（１４）
【０１１０】
次に、符号量制御部４は、ピクチャのバックサーチ発生符号量（ GenBits_rev ）が目標符号量内に収まるか否かについて判別する。
符号量制御部４は、以下の数式（１５）に従って、ピクチャのバックサーチ発生符号量（ GenBits_rev ）と目標符号量（TargetBit ）とを比較する。なお、α は、符号量の揺れがどの程度まで許容されるかによって決定される加算符号量である。
GenBits_rev ≦ （ TargetBits＋α）      ・・・（１５）
【０１１１】
符号量制御部４は、ピクチャのバックサーチ発生符号量（ GenBits_rev ）が目標符号量内に収まる場合、ダビングモードを選択する。一方、符号量制御部４は、ピクチャのバックサーチ発生符号量（GenBits_rev ）が目標符号量内に収まらない場合、不成功ＭＢの発生符号量（ GenBits_not_success_rev）が計算によって算出されたことによる誤差によって目標符号量内に収まらない可能性があるため、この可能性について検証する。
【０１１２】
符号量制御部４は、成功ＭＢの発生符号量（ GenBits_success ）と不成功ＭＢの予測量子化パラメータＱＰｄを用いたときの発生符号量（GenBits_not_success ）とを加算したピクチャの修正前発生符号量（ GenBits ）と目標符号量（ TargetBit ）とを、以下の数式（１６）に従って、比較する。
GenBits ≦ （ TargetBits＋α）      （１６）
【０１１３】
符号量制御部４は、ピクチャの修正前発生符号量（ GenBits ）が目標符号量（TargetBit ）を超えている場合、計算によって算出されたことによる誤差がない状態であっても、発生符号量が目標符号量（TargetBit ）を超えているため、原画モードを選択する。
【０１１４】
なお、前モード推定プレエンコード部４０は、画面内予測処理部４１で予測画像として入力画像９１を使用しているが、一度エンコードされた画に対して、同じパラメータでエンコードした場合、歪は乗らない。ゆえに、入力画像９１とローカルデコード（Local Decode ）画像は同じになり、符号量に誤差は乗らない。よって、検出率が高い場合、予測画像として入力画像９１を用いたことによる誤差は非常に小さく無視できる。
【０１１５】
このように、符号量制御部４は、ピクチャが非原画であった場合には、ダビングモードを使用した場合におけるピクチャのバックサーチ発生符号量を予測し、ピクチャのバックサーチ発生符号量が目標符号量に収まる場合には、ダビングモードを選択する。一方、符号量制御部４は、ピクチャのバックサーチ発生符号量が目標符号量に収まらない場合には、原画モードを選択するようになされている。
【０１１６】
［１−６．本エンコード］
本エンコード部３の画面内予測処理部３１は、原画モードであれば、画面内予測モード決定部１１で決定された画面内予測モードを処理対象となるＭＢに対して使用する。そして、量子化部３３は、第２のプレエンコード部２の結果に応じて決定された基本量子化パラメータＱＰMB を使用する。
【０１１７】
画面内予測処理部３１は、ダビングモードであれば、処理対象となるＭＢごとに使用する画面内予測モードを変更する。すなわち、画面内予測処理部３１は、処理対象となるＭＢにおいてバックサーチが成功した場合には、バンクサーチ部４３によって検出された画面内予測モードを使用する。画面内予測処理部３１は、処理対象となるＭＢにおいてバックサーチが不成功であった場合には、第１のプレエンコード部１によって検出された第１位の画面内予測モードを使用する。
【０１１８】
このとき、量子化部３３は、処理対象となるＭＢごとに使用する量子化パラメータＱＰを変更する。すなわち、画面内予測処理部３１は、処理対象となるＭＢにおいてバックサーチが成功した場合には、符号量抑制の必要性の判定結果に応じて、第２のプレエンコード部２の結果に応じて決定された基本量子化パラメータＱＰMB 、またはバックサーチ部４３によって検出された検出量子化パラメータＱＰｅを選択的に使用する。
【０１１９】
すなわち、符号量制御部４は、符号量抑制が必要でないと判定する場合、検出量子化パラメータＱＰｅを使用するように、量子化部３３を制御する。また、符号量制御部４は、符号量抑制が必要であると判定する場合、検出量子化パラメータＱＰｅが基本量子化パラメータＱＰMB より小さくないとき、この検出量子化パラメータＱＰｅを使用するように、量子化部３３を制御する。さらに、符号量制御部４は、符号量抑制が必要であると判定する場合、検出量子化パラメータＱＰｅが基本量子化パラメータＱＰMB より小さいとき、基本量子化パラメータＱＰMB を使用するように、量子化部３３を制御する。
【０１２０】
なお、後述するように、検出量子化パラメータＱＰｅは、ピクチャ発生符号量がピクチャ目標符号量を超えないようにフィードバック制御が行われる。符号量制御部４は、直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、符号量抑制が必要であると判定する。
【０１２１】
なお、基本量子化パラメータＱＰMBは、平均量子化パラメータ（ BaseＱＰ ）として用いられ、第１のプレエンコード部１によって決定されたアクティビティグループに応じたオフセットが付加される。量子化部３３は、バックサーチの成功の有無に拘らず、量子化行列 Ｑ Matrixとして第１のプレエンコード部１によって決定された予測量子化行列 Ｑ  MatrixDを用いる。
【０１２２】
［１−７．本エンコードにおけるフィードバック制御］
画像処理装置１００は、上述したように、本エンコード発生符号量が目標符号量に最も近くなると予測される基本量子化パラメータＱＰMB を用いたフィードフォワード制御により、本エンコードを実行する。そのため、画像処理装置１００は、ほとんどの場合、本エンコード発生符号量を目標符号量に抑えることができる。
【０１２３】
しかし、画像処理装置１００は、ごく稀に高精度発生符号量の算出を失敗し、不適切な基本量子化パラメータＱＰMB を選択してしまう場合がある。そこで、画像処理装置１００は、かかる場合に対処するべく、本エンコード発生符号量のフィードバック制御により、本エンコード発生符号量を目標符号量に確実に抑えるようになされている。
【０１２４】
なお、符号量制御部４は、高精度発生符号量が目標符号量を超えず、かつ高精度発生符号量が目標符号量に最も近い量子化パラメータＱＰを基本量子化パラメータＱＰMB に決定する。これにより、符号量制御部４は、本エンコード発生符号量が目標符号量より少し小さくなるように基本量子化パラメータＱＰMB を決定している。
【０１２５】
画像処理装置１００は、３パス（pass）エンコードの本エンコードにおいて、画面内フィードバック（Feed Back）によるレート制御を行い、符号量を一定値以下に抑える。画像処理装置１００は、フィードバック制御による量子化パラメータＱＰの不要な変動を抑えるため、ピクチャごとの発生符号量が目標符号量を超えないと予測される場合には、視覚特性（アクティビティ)によってのみ、使用量子化パラメータＱＰを、基本量子化パラメータＱＰMB から変更する。すなわち、画像処理装置１００は、基本量子化パラメータＱＰMB をピクチャの平均量子化パラメータBaseＱＰとしたときの適応量子化パラメータＱＰｔを、使用量子化パラメータＱＰとする。
【０１２６】
画像処理装置１００は、フィードバック制御により、本エンコード発生符号量が目標符号量を超えてしまうと予測される場合、平均量子化パラメータBaseＱＰ を基本量子化パラメータＱＰMB から変更する。このとき、画像処理装置１００は、平均量子化パラメータBaseＱＰの不要な変動を抑えるため、量子化パラメータＱＰが大きくなる方向にのみ、従って発生符号量が小さくなる方向にのみ、平均量子化パラメータBaseＱＰを変更する。この結果、画像処理装置１００は、変更された平均量子化パラメータ BaseＱＰに基づく適応量子化パラメータＱＰｔ を使用量子化パラメータＱＰ とする。なお、一旦大きい方向に変更された平均量子化パラメータBaseＱＰは、小さくなる方向に戻ることはない。
【０１２７】
具体的に、画像処理装置１００の本エンコード部３は、第２のプレエンコード部２の結果に基づいて決定された基本量子化パラメータＱＰMB を平均量子化パラメータ BaseＱＰとし、第１のプレエンコード部１により決定された量子化行列Ｑ Matrix、 Activity Group を使用してエンコードを行う。このとき、画像処理装置１００は、目標符号量を越えることが無いように、平均量子化パラメータBaseＱＰをフィードバック制御する。
【０１２８】
画像処理装置１００の符号量制御部４は、複数のＭＢからなるフィードバック制御単位（ FeedBackUnit）ごとに、フィードバック制御を実行する。符号量制御部４には、エントロピー符号化部３４から出力ストリーム９２の発生符号量が供給される。符号量制御部４は、第２のプレエンコードの予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）でのＭＢ毎の発生符号量（つまり、量子化部２３−１、エントロピー符号長計算部２４−１の出力）を用い、ピクチャごとの目標符号量（以下、「ピクチャ目標符号量」と呼ぶ）から、フィードバック制御単位毎の目標符号量（以下、「フィードバック目標符号量」と呼ぶ）を算出する。
【０１２９】
いま、第２のプレエンコード部２の結果に基づくフィードバック制御単位の高精度発生符号量を PrecodeGeneratedBits_FeedBackUnit[no] 、第２のプレエンコード部２の結果に基づくピクチャごとの高精度発生符号量をPrecodeGeneratedBits とすると、フィードバック制御単位のフィードバック目標符号量（ TargetBit_FeedBackUnit[no] ）は、以下の数式（１７）で求められる。なお、「ｎｏ」はフィードバック制御単位の番号（0〜FeedBackUnit個数-1 ）、「 TargetBit 」はピクチャ目標符号量である。
【０１３０】
TargetBit_FeedBackUnit[no]
＝TargetBit × PrecodeGeneratedBits_FeedBackUnit[no]
/ PrecodeGeneratedBits      ・・・（１７）
【０１３１】
すなわち、符号量制御部４は、フィードバック制御単位の高精度発生符号量（ PrecodeGeneratedBits_FeedBackUnit[no]）のピクチャの高精度発生符号量（ PrecodeGeneratedBits ）に対する割合に対し、ピクチャ目標符号量TargetBit を乗算することにより、フィードバック目標符号量（ TargetBit_FeedBackUnit[no]）を算出する。
【０１３２】
具体的に、画像処理装置１００の符号量制御部４は、以下の様な処理を行う。
【０１３３】
（１）符号量制御部４は、エンコードを前半処理、後半処理に分け、前半処理ではフィードバック制御を行わない。符号量制御部４は、プレエンコードのフィードバック制御単位（FeedBackUnit ）の符号量比によりフィードバック制御単位（ FeedBackUnit）の目標符号量を決定している。
【０１３４】
この符号量比は、量子化パラメータＱＰの変動により変化する。よって、画像処理装置１００は、エンコード前半の発生符号量が少ない時点でフィードバック制御を行うと、不必要な平均量子化パラメータBaseＱＰの変更を行ってしまう可能性がある。言い換えると、画像処理装置１００は、本エンコード発生符号量がピクチャ目標符号量に近くなるよう、基本量子化パラメータＱＰMBを選定している。したがって、ピクチャの早い段階で平均量子化パラメータ BaseＱＰを変動させてしまうと、本エンコード発生符号量とピクチャ目標符号量とが乖離してしまう可能性が生じてしまうためである。
【０１３５】
（２）符号量制御部４は、量子化パラメータＱＰの安定化と、本エンコード発生符号量を目標符号量以下に抑えることの両面から前半処理、後半処理の切り替えタイミングを判定する。すなわち、符号量制御部４は、（ａ）および（ｂ）に示す以下に示す条件のうちのいずれか一方を満たす場合に、後半処理に移行する。
【０１３６】
（ａ）符号量制御部４は、ピクチャを一定割合以上エンコードしている、換言すれば、一定数以上のＭＢをエンコードし終えとき、後半処理に移行する。量子化パラメータＱＰを安定化させるためである。
【０１３７】
（ｂ）符号量制御部４は、エンコードしていない部分（ＭＢ）で使用できる残り符号量（ピクチャ目標符号量からその時点までの本エンコード発生符号量を減算した値）と、エンコードしていない部分（ＭＢ）の目標符号量（ピクチャ目標符号量からその時点までのフィードバック目標符号量を減算した値）とを比較する。残り符号量が一定割合以下になると、後半処理に移行する。本エンコード発生符号量を目標符号量以下に抑えるためである。
【０１３８】
この（２）の（ｂ）の条件は、以下の数式（１８）に示すようになる。
(TargetBit - GeneratedBits_Accum)
＜ (TargetBit - TargetBits_Accum) × ThresholdRatio      ・・・（１８）
【０１３９】
ここで、TargetBit_Accum、GeneratedBits_Accum は、それぞれ、この時点までのフィードバック目標符号量（ TargetBit_FeedBackUnit[no] ）、フィードバック制御単位の本エンコード発生符号量（ GeneratedBits_FeedBackUnit[no] ）の積算値である。また、ThresholdRatioは、許容できるずれの割合である。
【０１４０】
本エンコード発生符号量が目標符号量になっている場合、残り符号量とエンコードしていない部分の目標符号量がイコールとなる。一方、本エンコード発生符号量が目標符号量をオーバーしている場合、残り符号量がエンコードしていない部分の目標符号量よりも小さくなる。
【０１４１】
例えば、符号量制御部４は、残り符号量がエンコードしていない部分の目標符号量のThresholdRatio倍未満になったとき、後半処理に移行する。符号量制御部４は、発生符号量が目標符号量を必ず下回るように制御する場合、ThresholdRatio を１未満に設定する。これにより、符号量制御部４は、エンコードが終了した部分の発生符号量が目標符号量を下回り、かつ当該目標符号量に近づいてきたときに後半処理に移行することができる。
【０１４２】
また、符号量制御部４は、発生符号量が目標符号量の近傍になるように制御する場合、この ThresholdRatioを１超に設定する。これにより、符号量制御部４は、エンコードが終了した部分の発生符号量が目標符号量を一定の比率以上で上回ったときに後半処理に移行することができる。もちろん、ThresholdRatio を「１」に設定することも可能である。これにより、符号量制御部４は、目標符号量と実際の本エンコード発生符号量が乖離する前に、フィードバック制御に入ることができ、残り符号量が少なすぎて本エンコード発生符号量が制御できなくなることを確実に防止することができる。
【０１４３】
言い換えると、符号量制御部４は、本エンコード発生符号量の少ないうちは、残り符号量の絶対量が大きいため、目標符号量と本エンコード発生符号量が極めて大きく乖離しない限り、条件を満たすことはなく、後半処理に移行してフィードバック制御に入ることはない。符号量制御部４は、本エンコード発生符号量が大きくなってきたら、残り符号量の絶対量が小さいため、目標符号量と本エンコード発生符号量が小さく乖離しただけでも条件を満たすことになり、後半処理に移行して、フィードバック制御に入ることになる。
【０１４４】
（３）符号量制御部４は、後半処理において、ピクチャごとの本エンコード発生符号量がピクチャ目標符号量を超えると予想した場合にのみ、平均量子化パラメータBaseＱＰを基本量子化パラメータＱＰMB より大きくする方向に変更する。符号量制御部４は、平均量子化パラメータBaseＱＰを大きくする場合には、一回のフィードバック処理（すなわちフィードバック制御単位ごと）で、平均量子化パラメータBaseＱＰを「１」のみ変化させる。これにより、符号量制御部４は、過剰な平均量子化パラメータ BaseＱＰの変化を抑えるようになされている。
【０１４５】
符号量制御部４は、以下の（ａ）または（ｂ）のいずれかの条件に当て嵌まる場合、ピクチャごとの本エンコード発生符号量がピクチャ目標符号量を超えると予想し、平均量子化パラメータBaseＱＰを大きくする。
【０１４６】
（ａ）符号量制御部４は、フィードバック制御単位のエンコードが終了した時点で直前（処理を終えた直後）のフィードバック発生符号量を確認し、フィードバック発生符号量（GeneratedBits_FeedBackUnit[cur] ）とフィードバック目標符号量（ TargetBit_FeedBackUnit[cur] ）とを、以下の数式（１９）に従って、比較する。
GeneratedBits_FeedBackUnit[cur] > TargetBit_FeedBackUnit[cur]  ・・・（１９）
【０１４７】
フィードバック発生符号量（ GeneratedBits_FeedBackUnit[cur]）がフィードバック目標符号量（ TargetBit_FeedBackUnit[cur] ）より大きいことは、発生符号量が増大する傾向にあるため、以降のエンコードにおいて生じる本エンコード発生符号量が目標符号量を超える可能性があることを示唆している。このとき、符号量制御部４は、平均量子化パラメータBaseＱＰを大きくするか否かを判別する。このときの条件を以下に示す。
【０１４８】
符号量制御部４は、この時点でエンコードが終了した部分についての目標符号量から発生符号量を減算することにより、発生符号量の余りSurplusBits を、以下の数式（２０）に示すように、計算する。
SurplusBits ＝Target_Accum - GeneratedBits_Accum      ・・・（２０）
【０１４９】
符号量制御部４は、次のフィードバック制御単位において、本エンコード発生符号量が目標符号量を超えると予測した場合にのみ、平均量子化パラメータBaseＱＰを大きくする。
【０１５０】
符号量制御部４は、次のフィードバック制御単位の目標符号量に対して次のフィードバック制御単位でオーバーすると予測される最大の符号量（以下、「過剰最大符号量」と呼ぶ）を、次のフィードバック制御単位の目標符号量から、以下の数式（２１）に示すように、求める。
TargetBit_FeedBackUnit[next] × MaxErrorRatio      ・・・（２１）
【０１５１】
ここで、MaxErrorRatio は、フィードバック発生符号量がフィードバック目標符号量に対する誤差として取り得る最大比率である。そして、これを元に、以下の数式（２２）の判定を行う。
SurplusBits ＜TargetBit_FeedBackUnit[next] × MaxErrorRatio  ・・・（２２）
【０１５２】
符号量制御部４は、発生符号量の余り SurplusBits と次のフィードバック制御単位の過剰最大符号量とを比較する。符号量制御部４は、発生符号量の余りSurplusBits よりも過剰最大符号量が大きい場合、次のフィードバック制御単位においてエンコードが終了した部分の本エンコード発生符号量が目標符号量を超える可能性があると判別し、平均量子化パラメータBaseＱＰを「１」だけ増加するする。
【０１５３】
すなわち、符号量制御部４は、「直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きい」、かつ、「この時点での符号量の余りSurplusBits が、次のフィードバック制御単位でオーバーする可能性のある過剰最大符号量より小さい」とき、平均量子化パラメータBaseＱＰを「１」だけ増加する。発生符号量が増大する傾向にあり、かつ符号量の余りに余裕がないため、最終的なピクチャ発生符号量がピクチャ目標符号量を超えてしまうと予測されるからである。
【０１５４】
言い換えると、符号量制御部４は、現状維持でも次のフィードバック制御単位でエンコードが終了した部分の本エンコード発生符号量が目標符号量を超えないと判断されれば、平均量子化パラメータBaseＱＰを「１」だけ増加することをしない。これにより、符号量制御部４は、エンコードが終了した部分の本エンコード発生符号量が目標符号量を超えそうな兆候が見られた時でも、過度に反応することを避け、平均量子化パラメータBaseＱＰを不要に大きくし過ぎることを防止し、平均量子化パラメータ BaseＱＰを安定化させ得る。
【０１５５】
（ｂ）符号量制御部４は、（ａ）に当て嵌まらない場合、すなわち「直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より小さい」または「この時点での符号量の余りSurplusBits が、次のフィードバック制御単位でオーバーする可能性のある過剰最大符号量より大きい」とき、発生符号量の余りSurplusBits が負であるかを確認する。
【０１５６】
SurplusBits が負である場合、エンコードが終了した時点での本エンコード発生符号量が目標符号量を超えてしまっていることを意味している。このとき、符号量制御部４は、以下の様に、直前のフィードバック制御単位の目標符号量と発生符号量の比から、残りの符号化部分での発生符号量の、目標からのずれを予測する。
【０１５７】
符号量制御部４は、直前のフィードバック制御単位の目標符号量と発生符号量の比 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      ・・・（２５）
【０１６１】
符号量制御部４は、符号化した部分と符号化してない部分のずれを足したものが、正であり、以下の数式（２６）の条件を満たす場合、平均量子化パラメータBaseＱＰを「１」だけ増加する。
(TargetBit_Rem × Diff_Ratio) - SurplusBits ＞ 0      ・・・（２６）
【０１６２】
符号量制御部４は、「エンコードした部分の発生符号量が、目標符号量を超えている」かつ、「直前のフィードバック制御単位の目標符号量と発生符号量の比から求めたピクチャの予測発生符号量が、ピクチャ目標符号量を超えている」とき、平均量子化パラメータBaseＱＰを「１」だけ増加する。すなわち、符号量制御部４は、ある時点で発生符号量が目標符号量を超えていても、目標符号量に対して発生符号量が減少傾向にあるため最終的にはピクチャ発生符号量がピクチャ目標符号量以下に収まると判断されれば、平均量子化パラメータBaseＱＰを「１」だけ増加することをしない。
【０１６３】
このように、画像処理装置１００は、入力画像９１を本エンコードする際、ピクチャに対する本エンコードを開始した時点ではフィードバック制御を実行せず、一定条件を満たしたときのみ後半処理としてフィードバック制御を実行する。すなわち、画像処理装置１００は、原則的にピクチャの後半部分に対してのみフィードバック制御を実行する。画像処理装置１００は、ピクチャの前半部分であっても、エンコードした部分の発生符号量と目標符号量との比率が一定以上となる場合には、以降の発生符号量が目標符号量から乖離する可能性があるため、フィードバック制御を実行する。
【０１６４】
画像処理装置１００は、フィードバック制御として、平均量子化パラメータ BaseＱＰの変動を最小限に抑制するため、ピクチャごとの本エンコード発生符号量をピクチャ目標符号量以下に抑えることができないと予測したときのみ、平均量子化パラメータBaseＱＰを「１」だけ増加する。
【０１６５】
すなわち、画像処理装置１００は、フィードバック発生符号量がフィードバック目標符号量よりも大きく、発生符号量が目標符号量よりも増大する傾向があり、かつ次のフィードバック制御単位でエンコードした部分の発生符号量が目標符号量を超える可能性がある場合、最終的なピクチャ発生符号量がピクチャ目標符号量を超えると予測されるため、平均量子化パラメータBaseＱＰを「１」だけ増加する。
【０１６６】
これにより、画像処理装置１００は、発生符号量が目標符号量よりも増大する傾向がある場合であっても、残り符号量に余裕がある場合には、平均量子化パラメータBaseＱＰを「１」だけ増加することを行わないようにでき、平均量子化パラメータ BaseＱＰを不要に増大させずに済む。
【０１６７】
さらに、画像処理装置１００は、平均量子化パラメータ BaseＱＰを「１」だけ増加することを行わない場合において、エンコードした部分の発生符号量が目標符号量を超えており、最終的なピクチャの発生符号量がピクチャ目標符号量を超えると予測される場合には、平均量子化パラメータBaseＱＰを「１」だけ増加する。これにより、画像処理装置１００は、エンコードした部分の発生符号量が目標符号量を超えている場合であっても、発生符号量が減少傾向にあり、ピクチャの発生符号量がピクチャ目標符号量を超えないと予測される場合には、最終的な平均量子化パラメータBaseＱＰを「１」だけ増加することを行わないようにでき、平均量子化パラメータ BaseＱＰを不要に増大させずに済む。
【０１６８】
図４、図５のフローチャートを参照して、フィードバック制御の処理手順について説明する。この処理を開始すると、符号量制御部４は、プレエンコードで決定された基本量子化パラメータＱＰMB を平均量子化パラメータ BaseＱＰとしてセットする（ステップＳ３１）。続いて、符号量制御部４は、フィードバック制御単位( FeedBackUnit )毎に、入力画像９１をエンコードする（ステップＳ３２）。
【０１６９】
続いて、符号量制御部４は、ピクチャにおける全てのＭＢをエンコードしたか否かを判断する（ステップＳ３３）。ここで、符号量制御部４は、全てのＭＢをエンコードした場合には、終了ステップに移って処理を終了する。一方、符号量制御部４は、全てのＭＢをエンコードしていない場合には、次のステップＳ３４へ移る。符号量制御部４は、一定数以上のＭＢをエンコードしたか否かを判断する（ステップＳ３４）。これは、上述したように、エンコード前半の発生符号量が少ない時点で、フィードバック制御を行うと平均量子化パラメータBaseＱＰを不必要に変更する可能性があるからである。
【０１７０】
ここで、符号量制御部４は、一定数以上のＭＢをエンコードしたと判断した場合には、ステップＳ３６に移行する。一方、符号量制御部４は、一定数以上のＭＢをエンコードしていないと判断した場合には、ステップＳ３５に移る。そして、エンコードしていない部分（ＭＢ）で使用できる残り符号量（目標符号量からその時点までの発生符号量を引いたもの）と、エンコードしていない部分（ＭＢ）の目標符号量とを比較する。そして、残り符号量とエンコードしていない部分の目標符号量との比率が一定割合以下か否かを判断する（ステップＳ３５）。
【０１７１】
ここで、符号量制御部４は、残り符号量とエンコードしていない部分の目標符号量との比率が一定割合以下でないと判断した場合には、現在エンコード処理しているＭＢが後半部分ではなく、かつエンコードした部分の発生符号量が目標符号量から乖離もしていないため、ステップＳ３２に戻り、上述の処理を繰り返す。一方、使用できる符号量が一定割合以下であると判断した場合には、ステップＳ３６に移行し、フィードバック制御を実行する。
【０１７２】
続いて、符号量制御部４は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きいか否かを判断する（ステップＳ３６）。ここで、符号量制御部４は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より大きいと判断した場合には、この時点での符号量の余りが、次のフィードバック制御単位でオーバーする可能性があるか否かを判断する（ステップＳ３７）。
【０１７３】
符号量制御部４は、直前のフィードバック制御単位の発生符号量が、直前のフィードバック制御単位の目標符号量より小さい場合には、ステップＳ３９へ移る。符号量制御部４は、この時点での符号量の余りが、次のフィードバック制御単位でオーバーする可能性があると判断した場合、平均量子化パラメータBaseＱＰを「１」だけ増加し（ステップＳ３８）、ステップＳ３２に戻る。一方、符号量制御部４は、この時点での符号量の余りが、次のフィードバック制御単位でオーバーする可能性がないと判断した場合、ステップＳ３９に進む。
【０１７４】
そして、ステップＳ３９において、符号量制御部４は、エンコードした部分の発生符号量が、目標符号量を超えているか否かを判断する（ステップＳ３９）。ここで、符号量制御部４は、エンコードした部分の発生符号量が、目標符号量を超えていないと判断した場合には、ステップＳ３２に戻り、上述の処理を繰り返す。
【０１７５】
一方、符号量制御部４は、エンコードした部分の発生符号量が、目標符号量を超えていると判断した場合には、直前のフィードバック制御単位の目標符号量と発生符号量の比から求めたピクチャの予測発生符号量がピクチャ目標符号量を超えているか否かを判断する（ステップＳ４０）。そして、符号量制御部４は、ピクチャの予測発生符号量がピクチャ目標符号量を超えていないと判断した場合には、ステップＳ３２に戻り、上述の処理を繰り返す。
【０１７６】
符号量制御部４は、ピクチャの予測発生符号量がピクチャ目標符号量を超えていると判断した場合には、平均量子化パラメータ BaseＱＰを「１」だけ増加し（ステップＳ３８）、ステップＳ３２に戻り、上述の処理を繰り返す。こうして、符号量制御部４は、ステップＳ３３において、全てのＭＢをエンコードしたと判断するまで、この処理を継続する。
【０１７７】
［１−８．画像処理装置による符号化の処理手順］
図６のフローチャートを参照して、画像処理装置１００による符号化の処理手順の一例を説明する。まず、アクティビティ計算部１６は、ＭＢ毎にアクティビティを計算し、その値に応じてＭＢをアクティビティグループに分ける（ステップＳ１）。
【０１７８】
続いて、画面内予測モード決定部１１は、入力画像９１に基づいて画面内予測モードを決定する（ステップＳ２）。この画面内予測モードは、第２のプレエンコード部２による第２のプレエンコード、本エンコード部３による本エンコードでも使用される。
【０１７９】
次に、画面内予測処理部１２は、予測画像と入力画像との差分画像データを計算する。ここでの予測画像は、処理を削減するため入力画像９１が用いられる。次いで、ＤＣＴ部１３は、整数精度ＤＣＴを行い、ＤＣＴ係数を量子化部１４に送出する（ステップＳ３）。
【０１８０】
量子化部１４は、任意の間隔の複数の選択量子化パラメータＱＰｌをピクチャの平均量子化パラメータ（ BaseＱＰ）としてＤＣＴ係数値を量子化する。エントロピー符号長計算部１５は、量子化係数を可変長符号化し、符号長計算を行うことで、選択量子化パラメータＱＰｌごとの発生符号量を取得する（ステップＳ４）。
【０１８１】
このとき、ＭＢの量子化パラメータＱＰは、上述したようにアクティビティを考慮した値が与えられて、エンコードされる。すなわち、上述したように、ＭＢの量子化パラメータＱＰは、ピクチャの平均量子化パラメータ（BaseＱＰ）に対して、アクティビティグループに依存したオフセットを加えることで求められる。
【０１８２】
なお、適応的な量子化行列 Ｑ Matrix 切り替え処理に対応させる場合には、上述の処理を量子化行列 Ｑ Matrix毎に行う。つまり、量子化行列 Ｑ Matrix 毎に、離散的な（飛び飛びの）値の選択量子化パラメータＱＰｌでプレエンコードを行って、１ピクチャ分の発生符号量を取得する。このとき、量子化行列Ｑ Matrix毎に量子化パラメータＱＰの取り得る範囲をカバーするように選択量子化パラメータＱＰｌを選択する。
【０１８３】
次に、符号量制御部４が、第１のプレエンコード部１によって算出された発生符号量の補正処理を行い、低精度発生符号量を算出する。符号量制御部４は、プレエンコードを簡略化したことによる誤差の補正を行うと共に、補間処理により、選択量子化パラメータＱＰｌ以外の量子化パラメータＱＰに対応する低精度発生符号量を算出する（ステップＳ５）。そして、符号量制御部４は、各量子化行列 Ｑ Matrix に対し、ステップＳ５の処理を実行し、量子化行列 Ｑ Matrix ごとの低精度発生符号量を算出する（ステップＳ６）。
【０１８４】
以上の処理で、必要となる全ての量子化パラメータＱＰに対する低精度発生符号量が求められるので、その中で目標符号量に最も近い低精度発生符号量を生成し得る量子化パラメータＱＰのうち、傾斜の最も小さい量子化行列 Ｑ Matrix 予測量子化行列 Ｑ MatrixD として選択する。さらに、符号量制御部４は、予測量子化行列 Ｑ MatrixD に対応する目標符号量に最も近い低精度発生符号量を生成し得る量子化パラメータＱＰを予測量子化パラメータＱＰｄとして選択する（ステップＳ７）。
【０１８５】
上述のように量子化行列 Ｑ Matrix を選択することで、取り得る量子化パラメータＱＰの範囲を限定することになり、第１のプレエンコード部１で低精度発生符号量を算出する際の選択量子化パラメータＱＰｌの範囲を減らすことが可能になる。これが、第１のプレエンコード部１にて決定された予測量子化行列 Ｑ MatrixD と予測量子化パラメータＱＰｄとなる。
【０１８６】
ここで、図７のフローチャートを参照して、上述のステップＳ７において実行される ＱMatrix 決定処理の手順についてさらに説明する。この処理を開始すると、符号量制御部４は、まず、ＩｄをＩｄ＝０にイニシャライズした後（ステップＳ２１）、Ｉｄの値の小さい量子化行列 Ｑ Matrix から、低精度発生符号量が目標符号量に最も近い量子化パラメータ（ＱＰ）と、量子化行列 Ｑ Matrix において取り得る最大の量子化パラメータＱＰ（ QMatrixThreshold[Id]）とを比較する（ステップＳ２２）。
【０１８７】
そして、符号量制御部４は、Ｉｄ番目の量子化行列 Ｑ Matrix での低精度発生符号量が目標符号量に最も近い量子化パラメータ（ＱＰ）がQMatrixThreshold[Id] より小さければ、現在の量子化行列 Ｑ Matrix を予測量子化行列 Ｑ MatrixD に決定する。さらに符号量制御部４は、予測量子化行列 Ｑ MatrixD における低精度発生符号量が目標符号量に最も近い量子化パラメータ（ＱＰ）を予測量子化パラメータＱＰｄに決定すると（ステップＳ２３）、Ｑ Matrix 決定処理手順を終了する。
【０１８８】
一方、ステップＳ２２において、符号量制御部４は、Ｉｄ番目の量子化行列 Ｑ Matrixでの低精度発生符号量が目標符号量に最も近い量子化パラメータ（ＱＰ）が QMatrixThreshold[Id]以上であれば、Ｉｄをインクリメント（ステップＳ２４）する。符号量制御部４は、Ｉｄ＝量子化行列 Ｑ Matrixの総数よりも「１」だけ小さい値、つまり NumOfQMatrixId-1 か否かを判断する（ステップＳ２５）。
【０１８９】
そして、Id=NumOfQMatrixId-1 でなければ、ステップＳ２２に戻り、次の量子化行列Ｑ Matrixをチェックする。一方、Id=NumOfQMatrixId-1 であれば、一番急峻な傾斜を有する量子化行列 Ｑ Matrix（Ｉｄが NumOfQMatrixId の量子化行列 Ｑ Matrix ）が選択され（ステップＳ２３）、Ｑ Matrix 決定処理手順を終了する。
【０１９０】
この図７のフローチャートの Ｑ Matrix 決定処理手順により、符号量制御部４は、量子化行列Ｑ Matrix 毎に、取り得る最大の量子化パラメータＱＰを設定する。そして、傾斜の緩やかな量子化行列 Ｑ Matrix から順に、低精度発生符号量が目標符号量に最も近いと推定された量子化パラメータＱＰに対応する低精度発生符号量が目標符号量に本当に近い値を示すか否かを判断する。そして、近い値であれば対応する量子化行列 Ｑ Matrix を本エンコードで用いる予測量子化行列 Ｑ MatrixD として決定することになる。
【０１９１】
図６のフローチャートに戻って、ステップＳ７の処理に続き、第２のプレエンコード部２による発生符号量取得処理を行う（ステップＳ８〜Ｓ１０）。この第２のプレエンコード部２の目的は、第１のプレエンコード部１による予測量子化パラメータＱＰｄの推定が誤差を持っていることに鑑みて、再度プレエンコードすることで、基本量子化パラメータＱＰMBの推定精度を上げることにある。
【０１９２】
すなわち、第１のプレエンコード部１の結果により大まかに見積もった予測量子化パラメータＱＰｄの周辺の量子化パラメータＱＰで、再度プレエンコードすることにより高精度発生符号量を取得し、目標符号量に一番近い量子化パラメータＱＰを再度求める。エントロピー符号長計算は、本エンコードと同じ方式（ＣＡＢＡＣまたはＣＡＶＬＣ）が用いられる。
【０１９３】
具体的には、第１のプレエンコード部１の結果により決定された画面内予測モードを用いて画面内予測処理部２１による画面内予測処理およびＤＣＴ部２２によるＤＣＴを行う（ステップＳ８）。第２のプレエンコード部２は、画面内予測で使用するローカルデコード画像（予測画像）として、第１のプレエンコード部１の結果により推定された予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）で量子化したローカルデコード画像を共用する。
【０１９４】
量子化に際しては、第１のプレエンコード部１の結果により決定された予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）、量子化行列 Ｑ Matrix およびアクティビティグループ（Activity Group ）が用いられる。量子化部２３−１には予測量子化パラメータＱＰｄ（ＱＰ_precode1 ）が設定され、量子化部２３−２には予測量子化パラメータＱＰｄよりも「１」だけ小さい量子化パラメータＱＰ（ＱＰ_precode1-1 ）が設定され、量子化部２３−３には予測量子化パラメータＱＰｄよりも「１」だけ大きい量子化パラメータ（ＱＰ_precode1+1 ）が設定される。
【０１９５】
さらに、ＭＢの量子化パラメータ（ＱＰ）には、アクティビティを考慮した値が与えられてエンコードされる。以上の第２のプレエンコードにより、１ピクチャの高精度発生符号量を取得することができる（ステップＳ９）。続いて、符号量制御部４は、第２のプレエンコード部２に基づいて得られた高精度発生符号量から基本量子化パラメータＱＰMBを決定する（ステップＳ１０）。
【０１９６】
次に、画像処理装置１００は、前モード推定プレエンコード部４０による前モード推定プレエンコードを行う（ステップＳ４１−Ｓ４３）。この前モード推定プレエンコードにおいて、前モード推定プレエンコード部４０は、前回の符号化パラメータ（量子化パラメータＱＰおよび画面内予測モード）を推定し、推定された符号化パラメータで符号化した場合のバックサーチ発生符号量を取得する。
【０１９７】
画像処理装置１００は、画面内予測処理部４１によって予測画像と入力画像９１との差分画像データを生成する。このとき、画面内予測処理部４１は、画面内予測モード決定部１１で決定された第１候補から第Ｍ候補まで各々で差分画像データを計算する。画面内予測処理では、本来、ローカルデコード（Local Decode ）画像を使用して処理を行う。しかし、ここでは、入力画像９１を用いて行う。
【０１９８】
次に、画像処理装置１００は、ＤＣＴ部４２によるＤＣＴ変換を行い、その出力を、バックサーチ部４３、バッファ４４に供給する（ステップＳ４１）。続いて、前モード推定プレエンコード部４０は、前回のパラメータ推定処理を行う（ステップＳ４２）。
【０１９９】
ここで、図８のフローチャートを参照して、上述のステップＳ４２において実行される前モードの推定処理を説明する。まず、第１のプレエンコード結果により算出された予測量子化パラメータＱＰｄおよび各ＭＢのアクティビティグループから、推定の起点となる初期の量子化パラメータＱＰを設定する。（ステップＳ１０１）。
【０２００】
続いて、検出量子化パラメータＱＰｅの推定処理を行う（ステップＳ１０２）。検出量子化パラメータＱＰｅの推定処理は、ステップＳ１０１において設定された値に対して、一定の範囲の量子化パラメータＱＰに対して行われる。つまり、０〜５１でなる量子化パラメータＱＰのうち、上限値（ QP UpperQPRange ）から下限値（ QP LowerQPRange ）の範囲の量子化パラメータＱＰに対して推定処理を行う。なお、この範囲は例えば「１０」程度に設定される。
【０２０１】
換言すれば、前モード推定プレエンコード部４０は、第１のプレエンコード部１で求めた予測量子化行列 Ｑ MatrixD を用い、第１のプレエンコード部１の結果に基づいて算出された予測量子化パラメータＱＰｄを起点として、所定の範囲の量子化パラメータＱＰに対して推定処理を行うことになる。
【０２０２】
そして、バックサーチ部４３は、検出量子化パラメータＱＰｅの推定が成功したか否かを判断する（ステップＳ１０３）。推定が不成功の場合は、予測量子化パラメータＱＰｄと画面内予測モード決定部１１で決定された第１候補の画面内予測モードを出力する（ステップＳ１０４）。一方、バックサーチ部４３は、推定が成功した場合は、推定された検出量子化パラメータＱＰｅを出力し（ステップＳ１０５）、画面内予測モードの推定処理を行う（ステップＳ１０６）。
【０２０３】
この画面内予測モードの推定処理は、第１候補から第Ｍ候補に対して行われる。バックサーチ部４３は、画面内予測モードの推定が成功したか否かを判断する（ステップＳ１０７）。成功した場合は、推定された画面内予測モードを出力し（ステップＳ１０８）、不成功の場合は、画面内予測モード決定部１１で決定された第１候補の画面内予測モードを出力する（ステップＳ１０９）。
【０２０４】
バックサーチ部４３は、画面内予測を行うブロック数を処理したか否かを判断する（ステップＳ１１０）。処理が完了していなければステップＳ１０６に戻り、上述の処理を繰り返す。一方、バックサーチ部４３は、処理が完了していると判断した場合には、前モードの推定処理を終了する。
【０２０５】
図６のフローチャートに戻って、ステップＳ４２の処理に続き、画像処理装置１００は、量子化部４５によって量子化を行い、エントロピー符号長計算部４６によって符号量計算処理を行う（ステップＳ４３）。
【０２０６】
すなわち、量子化部４５は、バックサーチ部４３から出力された画面内予測モードに応じて、バッファ４４に格納されているデータから指定された画面内予測モードに該当するデータを選択し、量子化を行う。このとき、量子化部４５は、バックサーチ部４３から出力された検出量子化パラメータＱＰｅに基づいて量子化を行う。
【０２０７】
その後、画像符号化装置２００は、エントロピー符号長計算部４６によってＭＢごとの発生符号量を計算する。エントロピー符号長計算は、本エンコードのエントロピー符号化と同じ方式（ＣＡＢＡＣ／ＣＡＶＬＣ）で行われる。そして、符号量制御部４は、バックサーチの成功の有無に応じて、ダビングモードを使用したときのピクチャのバックサーチ発生符号量を推定する。
【０２０８】
次に、画像処理装置１００は、エンコードモード（原画モード／ダビングモード）判定を行う（ステップＳ４４）。ここで、図９のフローチャートを参照して、このステップＳ４４において実行される原画モード／ダビングモードの判定処理にについて説明する。
【０２０９】
この処理に入ると、まず、符号量制御部４は、原画／非原画（符号化された画）の判定を行う（ステップＳ１１１）。すなわち、符号量制御部４は、前回の符号化に使用された量子化パラメータＱＰの推定処理で検出量子化パラメータＱＰｅが検出されたＭＢの数と、ＭＢ総数から、検出率を求め、この検出率が一定以上であるとき非原画と判定する。
【０２１０】
ここで、符号量制御部４は、処理対象であるピクチャが原画であると判定した場合には（ステップＳ１１２をＹｅｓに分岐）、原画モードに決定し（ステップＳ１１７）、判定処理を終了する。一方、符号量制御部４は、処理対象であるピクチャが非原画であると判定した場合（ステップＳ１１２をＮｏに分岐）、ダビングモードで処理対象のピクチャを符号化した場合のバックサーチ発生符号量を予測する（ステップＳ１１３）。
【０２１１】
ここでは、符号量制御部４は、不成功ＭＢについては、第２のプレエンコード部２の結果により求めた基本量子化パラメータＱＰＭＢを使った場合の符号量を予測する。そして、推定されたパラメータでエンコードした場合にビットレートの条件を満たすか判定する（ステップＳ１１４）。
【０２１２】
符号量制御部４は、ビットレート（発生符号量）の条件を満たす場合には（ステップＳ１１５をＹｅｓに分岐）、本エンコード部３におけるエンコードモードをダビングモードに決定し（ステップＳ１１６）、判定処理を終了する。一方、符号量制御部４は、ビットレートの条件を満たさない場合、本エンコード部３におけるエンコードモードを原画モードに決定し（ステップＳ１１７）、判定処理を終了する。
【０２１３】
図６のフローチャートに戻って、ステップＳ４４の処理に続き、原画モードであると判定した場合（ステップＳ４５をＹＥＳに分岐）、画像処理装置１００は、本エンコード部３において、原画モードの本エンコードを行う（ステップＳ４６）。この原画モードの本エンコードでは、フィードバック制御された平均量子化パラメータBaseＱＰが使用されてエンコードが行われる。
【０２１４】
一方、非原画モード、つまりダビングモードであると判定した場合（ステップＳ４５をＮＯに分岐）、画像処理装置１００は、本エンコード部３において、ダビングモードの本エンコードを行う（ステップＳ４７）。このダビングモードの本エンコードでは、処理対象となるＭＢにおいてバックサーチが不成功であった場合には、フィードバック制御された平均量子化パラメータBaseＱＰが使用される。
【０２１５】
また、このダビングモードの本エンコードでは、処理対象となるＭＢにおいてバックサーチが成功であった場合には、符号量抑制の必要性の判定結果に応じて、フィードバック制御された平均量子化パラメータBaseＱＰ、またはバックサーチ部４３によって検出された検出量子化パラメータＱＰｅが選択的に使用される。
【０２１６】
すなわち、符号量制御部４は、符号量抑制が必要でないと判定する場合、検出量子化パラメータＱＰｅを使用するように、量子化部３３を制御する。また、符号量制御部４は、符号量抑制が必要であると判定する場合、検出量子化パラメータＱＰｅが平均量子化パラメータBaseＱＰより小さくないとき、この検出量子化パラメータＱＰｅを使用するように、量子化部３３を制御する。さらに、符号量制御部４は、符号量抑制が必要であると判定する場合、検出量子化パラメータＱＰｅが平均量子化パラメータBaseＱＰより小さいとき、フィードバック制御された平均量子化パラメータ BaseＱＰを使用するように、量子化部３３を制御する。
【０２１７】
ここで、図１０のフローチャートを参照して、ダビングモードで本エンコードを行う際における量子化パラメータＱＰの決定処理の手順を説明する。符号量制御部４は、まず、フィードバック制御された平均量子化パラメータBaseＱＰを求める（ステップＳ３０１）。この平均量子化パラメータ BaseＱＰは、上述したフィードバック制御制御が実行されることで得られる（図４、図５のフローチャート参照）。
【０２１８】
符号量制御部４は、バックサーチ検出が成功していない場合には（ステップＳ３０２をＮＯに分岐）、ステップＳ３０１で求められたフィードバック制御された平均量子化パラメータ BaseＱＰを使用することに決定し（ステップＳ３０３）、処理を終了する。一方、符号量制御部４は、バックサーチ検出が成功している場合には（ステップＳ３０２をＹＥＳに分岐）、ステップＳ３０４の処理に移る。
【０２１９】
符号量制御部４は、直前のフィードバック制御単位までの目標符号量の積算値を求め（ステップＳ３０４）、さらに、直前のフィードバック制御単位までの発生符号量の積算値を求める（ステップＳ３０５）。そして、符号量制御部４は、これらの積算値を比較して、符号量抑制が必要か否かを判定する（ステップＳ３０６）。
【０２２０】
すなわち、符号量制御部４は、目標符号量の積算値が発生符号量の積算値より大きいときは、通常モードと判定し、そうでないとき、符号量抑制モードと判定する。以下の数式（２７）は、通常モードの判定条件を表している。
「直前までの目標符号積算値」 ＞ 
「直前までの発生符号量積算値」 ＋ margin      ・・・（２７）
【０２２１】
符号量制御部４は、符号量抑制が必要でないと判定するとき、バックサーチ検出で得られた検出量子化パラメータＱＰｅを使用することに決定し（ステップＳ３０７）、処理を終了する。一方、符号量制御部４は、符号量抑制が必要であると判定するとき、ステップＳ３０８の処理に移る。そして、符号量制御部４は、バックサーチ検出で得られた検出量子化パラメータＱＰｅが、ステップＳ３０１で求められたフィードバック制御された平均量子化パラメータBaseＱＰより小さいか判定する。
【０２２２】
ここで、検出量子化パラメータＱＰｅが平均量子化パラメータBaseＱＰより小さくないとき、符号量制御部４は、バックサーチ検出で得られた検出量子化パラメータＱＰｅを使用することに決定し（ステップＳ３０７）、処理を終了する。一方、検出量子化パラメータＱＰｅが平均量子化パラメータBaseＱＰより小さいとき、符号量制御部４は、フィードバック制御された平均量子化パラメータ BaseＱＰを使用することに決定し（ステップＳ３０３）、処理を終了する。
【０２２３】
図１１は、ダビングモードにおいて、バックサーチ検出で得られた検出量子化パラメータＱＰｅの採用範囲を示している。範囲Ｄａは通常モードにおける採用範囲を示し、範囲Ｄｂは符号量抑制モードにおける採用範囲を示している。符号量抑制モードにおいては、フィードバック制御された平均量子化パラメータBaseＱＰより大きい場合のみ採用される。
【０２２４】
上述したように、図１、図２に示す画像処理装置１００においては、ダビングモードにおいて、バックサーチ検出で得られた検出量子化パラメータＱＰｅの採用をＭＢ単位（符号化単位）で判定している。したがって、ピクチャ単位で判定する場合におけるフリッカ発生を回避できる。
【０２２５】
また、図１、図２に示す画像処理装置１００においては、符号量抑制が必要である場合に、使用可能な範囲で、バックサーチ検出で得られた検出量子化パラメータＱＰｅを使用するものである。そのため、単純にフィードバック制御された平均量子化パラメータBaseＱＰを使用する場合に比べて、不要な歪みを付加することが減り、画質劣化を低減して、高画質化を図ることができる。
【０２２６】
［本技術を適用したコンピュータの説明］
上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアで行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０２２７】
図１２は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの構成例を示している。プログラムは、コンピュータに内蔵されている記録媒体としての記憶部２０８やＲＯＭ（Read Only Memory）２０２に予め記録しておくことができる。
【０２２８】
また、プログラムは、リムーバブルメディア２１１に格納（記録）しておくことができる。このようにリムーバブルメディア２１１は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブルメディア２１１としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magneto Optical）ディスク、ＤＶＤ（Digital Versatile Disc）、磁気ディスク、半導体メモリなどがある。
【０２２９】
なお、プログラムは、上述したようなリムーバブルメディア２１１からドライブ２１０を介してコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵する記憶部２０８にインストールすることもできる。すなわち、プログラムは、例えば、ダウンロードサイトから、デジタル衛星放送用の人工衛星を介してコンピュータに無線で転送したり、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【０２３０】
コンピュータは、ＣＰＵ（Central Processing Unit）２０１を内蔵しており、ＣＰＵ２０１には、バス２０４を介して、入出力インタフェース２０５が接続されている。ＣＰＵ２０１は、入出力インタフェース２０５を介して、ユーザによって、入力部２０６が操作等されることにより指令が入力されると、それに従って、ＲＯＭ２０２に格納されているプログラムを実行する。あるいは、ＣＰＵ２０１は、記憶部２０８に格納されたプログラムを、ＲＡＭ（Random Access Memory）２０３にロードして実行する。
【０２３１】
これにより、ＣＰＵ２０１は、上述したフローチャートに従った処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、ＣＰＵ２０１は、その処理結果を、必要に応じて、例えば、入出力インタフェース２０５を介して、出力部２０７から出力、あるいは、通信部２０９から送信、さらには、記憶部２０８に記録等させる。なお、入力部２０６は、キーボードや、マウス、マイク等で構成される。また、出力部２０７は、ＬＣＤ（Liquid Crystal Display）やスピーカ等で構成される。
【０２３２】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に従って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトにより処理）も含む。また、プログラムは、一のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
【０２３３】
＜２．変形例＞
なお、上述実施の形態においては、画像処理装置１００が第１のプレエンコード部１の結果に基づいて予測量子化パラメータＱＰｄを決定し、第２のプレエンコード部２の結果に基づいて基本量子化パラメータＱＰMBを決定する３パス構成でなるようにした場合について述べた。本技術は、これに限らず、例えば第１のエンコード部１が基本量子化パラメータＱＰMB を決定する２パス構成や、４パス以上の構成でなる画像処理装置にも適用することができる。
【０２３４】
また、上述実施の形態においては、入力画像９１を画面内予測、ＤＣＴによる直交変換、量子化、およびＣＡＶＬＣまたはＣＡＢＡＣによる符号化によって符号化するようにした場合について述べた。本技術は、これに限らず、いずれを省略しても良く、少なくとも入力画像９１を量子化すれば良い。また、これら以外の符号化方法を用いて入力画像９１を符号化してもよい。
【０２３５】
また、上述実施の形態においては、複数のＭＢでなるフィードバック制御単位ごとにフィードバック発生符号量を確認するようにした場合について述べた。本技術は、これに限らず、フィードバック制御単位のサイズに制限はなく、例えばフィードバック制御単位をＭＢやスライスに設定するようにしても良い。
【０２３６】
また、上述実施の形態においては、画像単位としてピクチャごとの発生符号量を目標符号量以下に抑制するようにした場合について述べた。本技術は、これに限らず、例えば画像単位としてスライスごとや複数のピクチャごとに発生符号量を目標符号量以下に抑制するようにしても良い。
【０２３７】
また、上述実施の形態においては、１のフィードバック制御単位に対するフィードバック制御につき、平均量子化パラメータ BaseＱＰを「１」だけ増大させるようにした場合について述べた。本発明はこれに限らず、条件に応じて「２」以上増大させるようにしても良い。
【０２３８】
また、上述実施の形態においては、直前のフィードバック発生符号量がフィードバック目標符号量を超えた場合に、フィードバック制御単位ごとの発生符号量が増大する傾向にあると判別するようにした場合について述べた。本技術は、これに限らず、例えば直前の複数のフィードバック制御単位ごとに発生符号量が目標符号量を超えるか否かにより、フィードバック制御単位ごとの発生符号量が増大する傾向にあると判別するようにしても良い。
【０２３９】
このように、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において、種々の変更が可能である。
【０２４０】
また、本技術は、以下のような構成をとることもできる。
（１）入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基準量子化パラメータを決定する量子化パラメータ決定部と、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチ部と、
上記入力画像を符号化単位毎に符号化する符号化部と、
上記符号化部によって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基準量子化パラメータを増大させるフィードバック制御部と、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化部を制御する符号化制御部とを備える
画像処理装置。
（２）上記符号化制御部は、上記バックサーチ検出が成功しているとき、
上記符号量抑制が必要でないと判定する場合、上記検出量子化パラメータを使用するように上記符号化部を制御し、
上記符号量抑制が必要であると判定する場合、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さくないとき、該検出量子化パラメータを使用するように上記符号化部を制御すると共に、上記検出量子化パラメータが上記フィードバック制御された基本量子化パラメータより小さいとき、該フィードバック制御された基本量子化パラメータを使用するように上記符号化部を制御する
前記（１）に記載の画像処理装置。
（３）上記符号化制御部は、
直前のフィードバック制御単位までの発生符号量積算値が直前のフィードバック制御単位までの目標符号量積算値より大きいとき、上記符号量抑制が必要であると判定する
前記（１）または（２）に記載の画像処理装置。
（４）入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基準量子化パラメータを決定する基準量子化パラメータ決定ステップと、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチステップと、
上記入力画像を符号化単位毎に符号化する符号化ステップと、
上記符号化ステップによって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基準量子化パラメータを増大させるフィードバック制御ステップと、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化ステップにおける符号化を制御する符号化制御ステップとを備える
画像処理方法。
（５）コンピュータを、
入力画像を符号化したときの画像単位毎の発生符号量が上記画像単位毎の目標符号量の近傍になると予測される基準量子化パラメータを決定する基準量子化パラメータ決定手段と、
上記入力画像が前回符号化されたときに使用された量子化パラメータを検出量子化パラメータとして符号化単位毎に検出するバックサーチ手段と、
上記入力画像を符号化単位毎に符号化する符号化手段と、
上記符号化手段によって符号化された上記入力画像の発生符号量をフィードバック制御単位毎に確認し、上記画像単位毎の発生符号量が上記画像単位毎の目標符号量を超えると予測する場合に、上記決定された基準量子化パラメータを増大させるフィードバック制御手段と、
ダビング時に、上記符号化単位毎に、上記バックサーチ検出が成功していないとき、上記フィードバック制御された基本量子化パラメータを使用し、上記バックサーチ検出が成功しているとき、符号量抑制の必要性の判定結果に応じて、上記フィードバック制御された基本量子化パラメータまたは上記バックサーチ検出で得られた検出量子化パラメータを選択的に使用するように上記符号化手段を制御する符号化制御手段と
して機能させるプログラム。
【符号の説明】
【０２４１】
１・・・第１のプレエンコード部
２・・・第２のプレエンコード部
３・・・本エンコード部
４・・・符号量制御部
５，６・・・ディレイバッファ
１１・・・画面内予測モード決定部
１２・・・画面内予測処理部
１３・・・ＤＣＴ部
１４・・・量子化部
１５・・・エントロピー符号長計算部
１６・・・アクティビティ計算部
２１・・・画面内予測処理部
２２・・・ＤＣＴ部
２３・・・量子化部
２４・・・エントロピー符号長計算部
２５・・・バッファ
２６・・・ＩＤＣＴ部
２７・・・逆量子化部
３１・・・画面内予測処理部
３２・・・ＤＣＴ部
３３・・・量子化部
３４・・・エントロピー符号化部
３５・・・バッファ
３６・・・ＩＤＣＴ部
３７・・・逆量子化部
４０・・・前モード推定プレエンコード部
４１・・・画面内予測処理部
４２・・・ＤＣＴ部
４３・・・バックサーチ部
４４・・・バッファ
４５・・・量子化部
４６・・・エントロピー符号長計算部
１００・・・画像処理装置
１１０・・・簡易符号量予測部
１２０・・・バックサーチ部
１３０・・・エンコード部
【図１】
0005900163.tif 000002
【図２】
0005900163.tif 000003
【図３】
0005900163.tif 000004
【図４】
0005900163.tif 000005
【図５】
0005900163.tif 000006
【図６】
0005900163.tif 000007
【図７】
0005900163.tif 000008
【図８】
0005900163.tif 000009
【図９】
0005900163.tif 000010
【図１０】
0005900163.tif 000011
【図１１】
0005900163.tif 000012
【図１２】
0005900163.tif 000013