(57)【要約】【課題】１ピクチャの目標符号量に発生符号量を合わせ込むことを容易に可能とする。【解決手段】プレエンコード部２０は、離散的に選択した量子化パラメータで発生符号量の算出を並列して行う。符号量制御部４０は、選択されていない量子化パラメータの位置に応じて補間方法を切り替えて、プレエンコード部２０で得られた発生符号量を用いて補間処理を行う。各量子化パラメータについて得られた発生符号量を目標符号量と比較して仮量子化パラメータを決定する。プレエンコード部３０は、仮量子化パラメータを基準とした第２の範囲の量子化パラメータにおける発生符号量の算出を並列して行う。符号量制御部４０は、プレエンコード部３０で算出された発生符号量を目標符号量と比較して最適量子化パラメータを決定する。エンコーダ５０は、最適量子化パラメータを用いて画像を符号化する。【選択図】        図１
2010252083.tif 000002
【特許請求の範囲】
【請求項１】
第１の範囲内の量子化パラメータを離散的に選択して、該選択した量子化パラメータにおける発生符号量の算出を並列して行う第１の符号化部と、
前記第１の範囲よりも狭い範囲であって、仮量子化パラメータを基準とした第２の範囲内の量子化パラメータにおける発生符号量の算出を並列して行う第２の符号化部と、
前記第１の符号化部で選択されていない量子化パラメータについて補間処理により発生符号量を算出して、前記選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する前記仮量子化パラメータを決定する処理と、前記第２の符号化部で算出された発生符号量を目標符号量と比較して目標符号量に対応する最適量子化パラメータを決定する符号量制御部と、
前記決定された最適量子化パラメータを用いて画像を符号化する第３の符号化部とを備え、
前記符号量制御部は、前記補間処理によって発生符号量を算出する量子化パラメータの位置に応じて、補間方法を切り替える画像符号化装置。
【請求項２】
前記符号量制御部は、選択された量子化パラメータでの発生符号量と目標符号量を比較して、補間処理によって発生符号量を算出する量子化パラメータを判別する
請求項１記載の画像符号化装置。
【請求項３】
前記符号量制御部は、前記補間処理によって発生符号量を算出する量子化パラメータが、前記第１の符号化部で選択した量子化パラメータで挟まれた位置であるか否かに応じて補間方法を切り替える
請求項２記載の画像符号化装置。
【請求項４】
前記符号量制御部は、前記補間処理によって発生符号量を算出する量子化パラメータが、前記第１の符号化部で選択した量子化パラメータで挟まれた位置であるとき、二次曲線を用いて補間を行う
請求項３記載の画像符号化装置。
【請求項５】
前記画像におけるブロック毎のアクティビティを算出するアクティビティ算出部をさらに備え、
前記符号量制御部は、前記アクティビティに応じたオフセットを前記量子化パラメータに加えて発生符号量の算出を行うとき、前記目標符号量に対応する前記仮量子化パラメータが、前記オフセットを加算したときに予め設定されている範囲に制限される量子化パラメータの領域内である場合、前記量子化パラメータを平均量子化パラメータに変換して、平均量子化パラメータにおける発生符号量を算出する
請求項４記載の画像符号化装置。
【請求項６】
前記符号量制御部は、前記補間処理によって発生符号量を算出する量子化パラメータが、前記第１の符号化部で選択した量子化パラメータで挟まれた位置でないとき、前記第１の符号化部で算出された発生符号量の変化率を用いて補間を行う
請求項３記載の画像符号化装置。
【請求項７】
前記発生符号量の変化率を用いた補間では、選択した量子化パラメータの発生符号量から変化率を算出して、該算出した変化率を用いて該変化率の算出に用いた量子化パラメータの間隔で補間を行う
請求項６記載の画像符号化装置。
【請求項８】
前記発生符号量の変化率を用いた補間では、前記変化率の算出に用いた量子化パラメータの間隔が１よりも大きいとき、前記変化率の算出に用いた量子化パラメータの間隔で補間を行って得られた発生符号量を用いて、前記変化率の算出に用いた量子化パラメータの間隔内に位置する量子化パラメータの発生符号量を直線補間でもとめる
請求項７記載の画像符号化装置。
【請求項９】
第１の符号化部において、第１の範囲内の量子化パラメータを離散的に選択して、該選択した量子化パラメータにおける発生符号量の算出を並列して行うステップと、
符号量制御部において、前記第１の符号化部で選択されていない量子化パラメータについて補間処理により発生符号量を算出して、前記選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する仮量子化パラメータを決定するステップと、
第２の符号化部において、前記第１の範囲よりも狭い範囲であって、前記仮量子化パラメータを基準とした第２の範囲の量子化パラメータにおける発生符号量の算出を並列して行うステップと、
前記符号量制御部において、前記第２の符号化部で算出された発生符号量を目標符号量と比較して目標符号量に対応する最適量子化パラメータを決定するステップと、
第３の符号化部において、前記最適量子化パラメータを用いて画像を符号化するステップを有し、
前記符号量制御部における前記補間処理では、前記補間処理によって発生符号量を算出する量子化パラメータの位置に応じて、補間方法を切り替える画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像符号化装置と画像符号化方法に関する。詳しくは、１ピクチャに与えられた目標符号量に画面内フィードバック制御を行わずに発生符号量を合わせ込む技術に関する。
【背景技術】
【０００２】
従来、動画のビットストリームを伝送したり記録メディアに記録したりするシステム等において、伝送路あるいは記録容量を効率良く利用するために、高能率符号化が実施されている。
【０００３】
これを実現する画像符号化装置では、エンコーダで発生するビットストリームの符号化ビットレートが伝送メディアの転送レートに合わせて一定となるように量子化ステップが制御されている。例えば、画像符号化装置は、絵柄が複雑な画像が連続するとき量子化ステップを大きくしてデータ発生量を抑圧し、単純な絵柄が連続するときは量子化ステップを小さくしてデータ発生量を増加させる。画像符号化装置は、このように量子化ステップを制御することで、バッファメモリのオーバーフロー又はアンダーフローを生じさせないようにして固定レートを保持している。
【０００４】
したがって、このような従来技術に係る画像符号化装置では、複雑な画像が連続するときは量子化ステップが大きくなり画質が劣化し、単純な画像が連続するときは量子化ステップが小さくなり全体を通じて均等な画質を得ることができなかった。
【０００５】
この問題に鑑（かんが）みて、例えば特許文献１では、ＧＯＰ（Group Of Pictures）毎の符号化の難易度と複数のＧＯＰに関する符号化の難易度の総和との比にしたがって、各ＧＯＰ自身に割り当てられる割当符号量を調整することが開示されている。例えば、絵柄が複雑な画像を含むＧＯＰに対しては符号量を多く割り当て、絵柄が単純な画像を含むＧＯＰに対しては少なく符号量を割り当てている。
【０００６】
一方、１ピクチャに与えられた目標符号量に発生符号量を合わせ込む方法として、例えばＴＭ５（test model 5）のステップ２が良く知られている。これは、ピクチャに割り当てられた符号量をマクロブロック（ＭＢ；Macro Block）に均等に配分したものをマクロブロックの目標符号量とし、ピクチャ内でフィードバック制御をかけることで、目標符号量に合わせ込む手法である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３３５８６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、１ピクチャに与えられた目標符号量に発生符号量を合わせ込む方法を用いる場合、全ての量子化パラメータで発生符号量を算出すれば、最適量子化パラメータを容易に決定できる。しかし、全ての量子化パラメータで発生符号量を算出すると、回路規模や処理量の増大を招くことになり、安価な構成で容易に符号化を行うことができない。
【０００９】
また、量子化パラメータを離散的に選択して発生符号量の算出を行うようにすれば、回路規模を小さくできる。この場合、選択されていない量子化パラメータの発生符号量は補間処理によって算出する。しかし、補間による発生符号量の予測精度が高くないと、目標符号量に対するピクチャの最適量子化パラメータを精度よく設定することができなくなってしまう。
【００１０】
そこで、この発明は、１ピクチャに与えられた目標符号量に、画面内フィードバック制御を行わずに発生符号量を合わせ込むことを容易に可能とする画像符号化装置と画像符号化方法を提供する。
【課題を解決するための手段】
【００１１】
この発明の第１の側面は、第１の範囲内の量子化パラメータを離散的に選択して、該選択した量子化パラメータにおける発生符号量の算出を並列して行う第１の符号化部と、前記第１の範囲よりも狭い範囲であって、仮量子化パラメータを基準とした第２の範囲内の量子化パラメータにおける発生符号量の算出を並列して行う第２の符号化部と、前記第１の符号化部で選択されていない量子化パラメータについて補間処理により発生符号量を算出して、前記選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する前記仮量子化パラメータを決定する処理と、前記第２の符号化部で算出された発生符号量を目標符号量と比較して目標符号量に対応する最適量子化パラメータを決定する符号量制御部と、前記決定された最適量子化パラメータを用いて画像を符号化する第３の符号化部とを備え、前記符号量制御部は、前記補間処理によって発生符号量を算出する量子化パラメータの位置に応じて、補間方法を切り替える画像符号化装置にある。
【００１２】
この発明においては、第１の符号化部で第１の範囲内の量子化パラメータを離散的に選択して、この選択した量子化パラメータにおける発生符号量の算出が並列して行われる。また、符号量制御部では、選択されていない量子化パラメータについて補間処理により発生符号量を算出して、選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する仮量子化パラメータが決定される。
【００１３】
補間処理では、選択された量子化パラメータでの発生符号量と目標符号量を比較して、補間処理によって発生符号量を算出する量子化パラメータを判別する。さらに、判別した量子化パラメータの位置に応じて補間方法が切り替えられる。例えば、補間処理によって発生符号量を算出する量子化パラメータが、第１の符号化部で選択した量子化パラメータで挟まれた位置であるか否かに応じて補間方法が切り替えられて、選択した量子化パラメータで挟まれた位置であるとき二次曲線を用いて補間が行われる。二次曲線を用いた補間では、目標符号量に対応する仮量子化パラメータが、アクティビティに応じたオフセットを加算したときに予め設定されている範囲に制限される量子化パラメータの領域内である場合、量子化パラメータを平均量子化パラメータに変換して、平均量子化パラメータにおける発生符号量が補間によって算出される。
【００１４】
また、補間処理によって発生符号量を算出する量子化パラメータが、選択した量子化パラメータで挟まれた位置でないとき変化率を用いて補間が行われる。変化率を用いた補間では、選択した量子化パラメータの発生符号量から変化率が算出されて、この算出した変化率を用いて。変化率の算出に用いた量子化パラメータの間隔で補間が行われる。また、変化率の算出に用いた量子化パラメータの間隔が１よりも大きいとき、変化率の算出に用いた量子化パラメータの間隔で補間を行って得られた発生符号量を用いて、変化率の算出に用いた量子化パラメータの間隔内に位置する量子化パラメータの発生符号量が直線補間によって算出される。
【００１５】
第２の符号化部では、第１の範囲よりも狭い範囲であって、仮量子化パラメータを基準とした第２の範囲の量子化パラメータにおける発生符号量の算出が並列して行われる。符号量制御部では、第２の範囲の量子化パラメータにおける発生符号量と目標符号量との比較から目標符号量に対応する最適量子化パラメータが決定される。この最適量子化パラメータを用いて画像の符号化が第３の符号化部で行われる。
【００１６】
この発明の第２の側面は、第１の符号化部において、第１の範囲内の量子化パラメータを離散的に選択して、該選択した量子化パラメータにおける発生符号量の算出を並列して行うステップと、符号量制御部において、前記第１の符号化部で選択されていない量子化パラメータについて補間処理により発生符号量を算出して、前記選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する仮量子化パラメータを決定するステップと、第２の符号化部において、前記第１の範囲よりも狭い範囲であって、前記仮量子化パラメータを基準とした第２の範囲の量子化パラメータにおける発生符号量の算出を並列して行うステップと、前記符号量制御部において、前記第２の符号化部で算出された発生符号量を目標符号量と比較して目標符号量に対応する最適量子化パラメータを決定するステップと、第３の符号化部において、前記最適量子化パラメータを用いて画像を符号化するステップを有し、前記符号量制御部における前記補間処理では、前記補間処理によって発生符号量を算出する量子化パラメータの位置に応じて、補間方法を切り替える画像符号化方法にある。
【発明の効果】
【００１７】
この発明によれば、第１の範囲内の量子化パラメータを離散的に選択して、この選択した量子化パラメータにおける発生符号量の算出が並列して行われる。また、選択されていない量子化パラメータについて補間処理により発生符号量を算出して、選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する仮量子化パラメータが決定される。この補間処理では、補間処理によって発生符号量を算出する量子化パラメータの位置に応じて補間方法が切り替えられる。さらに、第１の範囲よりも狭い範囲であって、仮量子化パラメータを基準とした第２の範囲の量子化パラメータにおける発生符号量の算出が並列して行われて、第２の範囲の量子化パラメータにおける発生符号量と目標符号量との比較から目標符号量に対応する最適量子化パラメータが決定される。この最適量子化パラメータを用いて画像を符号化が行われる。
【００１８】
このように、補間処理によって発生符号量を算出する量子化パラメータの位置に応じて補間方法が切り替えられることから、補間による発生符号量の予測精度を高めることが可能となり、１ピクチャに与えられた目標符号量に、画面内フィードバック制御を行わずに発生符号量を合わせ込むことを容易に可能とする画像符号化装置と画像符号化方法を提供できる。
【図面の簡単な説明】
【００１９】
【図１】画像符号化装置の構成を示す図である。
【図２】画像符号化装置による符号化の処理手順を示すフローチャートである。
【図３】適応的なＱマトリックスの切り替え処理を示すフローチャートである。
【図４】仮量子化パラメータの決定処理を示すフローチャートである。
【図５】仮量子化パラメータの決定処理を説明するための図である。
【図６】補間処理の切り換えを示すフローチャートである。
【図７】量子化パラメータと発生符号量の関係を例示した図である。
【図８】発生符号量を算出する量子化パラメータの位置と補間方法の関係を示す図である。
【図９】二次曲線を用いた補間による発生符号量の算出方法を説明するための図である。
【図１０】平均量子化パラメータを用いた仮量子化パラメータの決定処理を示すフローチャートである。
【図１１】平均量子化パラメータを用いた仮量子化パラメータの決定処理を説明するための図である。
【図１２】再エンコード素材を用いたときの発生符号量を例示した図である。
【図１３】直線補間と二次曲線を用いた補間の比較図である。
【図１４】増加率を用いた補間方法を示す図である。
【図１５】増加率を用いた他の補間方法を示す図である。
【図１６】量子化パラメータ間の差が１以外の場合における増加率を用いた補間方法を示す図である。
【図１７】量子化パラメータ間の差が１以外の場合における増加率を用いた他の補間方法を示す図である。
【発明を実施するための形態】
【００２０】
以下、この発明の画像符号化装置及び画像符号化方法について説明する。この画像符号化装置及び画像符号化方法は、ＭＰＥＧ４  ＡＶＣ（Advanced Video Coding）等に代表される算術符号化を用いた画像圧縮方式で符号量制御を行う際に第１のプレエンコードと第２のプレエンコードを行う。第１のプレエンコードでは、並列プレエンコードを行い、広い範囲の量子化パラメータ（ＱＰ:Quantization Parameter）から目標符号量を実現する基本量子化パラメータを粗く見積もる。また、第２のプレエンコードでは、第１のプレエンコードの見積もり結果に基づいた狭い範囲で並列プレエンコードを行い、本エンコードで使用する最適な基本量子化パラメータを決定する。さらに、第１のプレエンコードで目標符号量を実現する基本量子化パラメータを粗く見積もる際に、選択されていない量子化パラメータの発生符号量は補間処理により算出する。また、発生符号量を算出する量子化パラメータの位置に応じて補間方法を切り替える。
【００２１】
このように、画像符号化装置及び画像符号化方法は、画像符号化の精度を上げつつ処理負荷を軽減させてピクチャ内で良好な符号量分布を実現できるようにする。また、画像符号化装置及び画像符号化方法は、第１のプレエンコードで基本量子化パラメータを粗く見積もる際の精度を向上させることで、最適な基本量子化パラメータを容易に決定できるようにする。なお、説明は以下の順序で行う。
１．画像符号装置の構成
２．符号化処理手順
３．Ｑマトリックスの切り替え処理
４．仮量子化パラメータの決定処理
５．補間処理
６．二次曲線を用いた補間
７．変化率を用いた補間
８．最適量子化パラメータの決定処理
【００２２】
＜１．画像符号化装置の構成＞
図１には、画像符号化装置の構成を示している。画像符号化装置１０は、並列プレエンコードを行う第１プレエンコード部２０と第２プレエンコード部３０、符号量制御部４０、本エンコードを行うエンコード部５０、およびディレイバッファ１５，１６を有している。
【００２３】
第１の符号化部である第１プレエンコード部２０は、第１のプレエンコードを行うモジュールである。第１プレエンコード部２０は、画面内予測モード決定部２１、画面内予測処理部２２、ＤＣＴ（Discrete Cosine Transform；離散コサイン変換）部２３を有している。また、第１プレエンコード部２０は、量子化部２４、符号長計算部２５、アクティビティ（Activity）計算部２６を有している。さらに、量子化部２４は、複数の量子化部２４-1〜２４-nで構成されており、符号長計算部２５は複数の符号長計算部２５-1〜２５-nで構成されている。
【００２４】
第２の符号化部である第２プレエンコード部３０は、第２のプレエンコードを行うモジュールである。第２プレエンコード部３０は、画面内予測処理部３１、ＤＣＴ部３２、量子化部３３、符号長計算部３４、逆量子化部３５、ＩＤＣＴ（Inverse DCT）部３６、バッファ３７を有している。また、量子化部３３は、例えば量子化部３３-1〜３３-3で構成されており、符号長計算部３４は例えば符号長計算部３４-1〜３４-3で構成されている。
【００２５】
符号量制御部４０は、符号量制御を行うモジュールである。
【００２６】
第３の符号化部であるエンコード部５０は、本エンコードを行うモジュールである。エンコード部５０は、画面内予測処理部５１、ＤＣＴ部５２、量子化部５３、エントロピー符号化部５４、逆量子化部５５、ＩＤＣＴ部５６、バッファ５７を備えている。
【００２７】
このような構成において、入力画像の画像信号は、第１プレエンコード部２０とディレイバッファ１５，１６に供給される。
【００２８】
第１プレエンコード部２０に入力された画像信号は、画面内予測モード決定部２１とアクティビティ計算部２６に入力される。画面内予測モード決定部２１は、画像信号に基づいて画面内予測モードを決定する。一般的には、予測モード（予測方向）は、４×４画素単位で９通りの予測モードの中から決定することになる。
【００２９】
この決定された画面内予測モードは、第２プレエンコード部３０やエンコード部５０にも送出されて、第２プレエンコード部３０における第２のプレエンコード、エンコード部５０における本エンコードで使用される。
【００３０】
画面内予測処理部２２は、予測画像と入力画像との差分を示す差分画像の画像信号を生成する。ここで、予測画像は処理を削減するため入力画像から作られる。このように入力画像の画像信号を用いて画面内予測処理を行えば、逆量子化部、ＩＤＣＴ部、バッファを削減することができ、回路規模を削減することが可能となる。
【００３１】
ＤＣＴ部２３は、整数精度ＤＣＴがなされたＤＣＴ係数を量子化部２４-1〜２４-nに送出する。量子化部２４は、このＤＣＴ係数について量子化を行い、符号長計算部２５に送出する。符号長計算部２５は、コンテキスト適応型可変長符号化方式ＣＡＶＬＣ（Context-Adaptive Variable Length Coding）を行うことにより符号量を計算する。ＣＡＶＬＣによれば、周囲の状況に応じて高効率の符号化方式を適応的に選択できる。
【００３２】
このように第１のプレエンコードでは、エントロピー符号化方式としてＣＡＢＡＣ（Context-Adaptive Binary Arithmetic Coding）を用いる場合でも、符号量計算にＣＡＶＬＣを用いる。なお、ＣＡＢＡＣとは、コンテキスト適応型２値算術符号化方式である。
【００３３】
量子化部２４は、並列に設けられた量子化部２４-1，・・・，２４-n（ｎ＝１，２，３・・・）により構成され、符号長計算部２５は、並列に設けられた符号長計算部２５-1，・・・，２５-n（ｎ＝１，２，３・・・）により構成されている。
【００３４】
第１のプレエンコードでは、第１の範囲内の量子化パラメータから量子化部２４と符号長計算部２５の並列数だけ離散的に選択する。また、第１のプレエンコードでは、選択した量子化パラメータに対して量子化と符号長の計算を並列に実行して、それぞれの発生符号量を第１プレエンコード部２０から符号量制御部４０に出力する。
【００３５】
すなわち、第１プレエンコード部２０では、量子化部２４、符号長計算部２５による回路規模を抑えた並列プレエンコード部分により、第１の範囲内の量子化パラメータＱＰで第１のプリエンコードを行う。また、符号量制御部４０は、第１プレエンコード部２０で算出された発生符号量を用いて、目標符号量を実現する基本量子化パラメータを粗く見積もることができるようにする。なお、以下の説明では、粗く見積もった基本量子化パラメータを仮量子化パラメータＱＰ_precode1という。
【００３６】
量子化パラメータＱＰとは、ＡＶＣにおいて量子化値を指定するための値である。量子化パラメータＱＰが大きくなると、量子化値も大きな値となる。
【００３７】
画面内予測モード決定部２１による画面内予測モードの決定と同時に、アクティビティ計算部２６は、アクティビティ（Activity）を計算し、該アクティビティによりマクロブロックをグループ分けする。各マクロブロックに対して決定されたアクティビティグループ（Activity Group）番号は、量子化部２４に入力される。
【００３８】
アクティビティとは、画面内の局所的な画像の性質を表すものである。マクロブロックのアクティビティとしては、従来から知られているように例えばマクロブロック内における画素信号の平均値に対する各画素信号の誤差の絶対値和や、マクロブロック内における各画素信号の分散等を用いる。
【００３９】
符号量制御部４０は、第１プレエンコード部２０による第１のプリエンコードの結果から、次のステップで使用する仮量子化パラメータと量子化行列Ｑマトリックスを求める。
【００４０】
すなわち、第１のプレエンコードでは、取り得る範囲（第１の範囲）の量子化パラメータＱＰを離散的に選択して、選択した量子化パラメータＱＰで並列プレエンコードを行い、発生符号量を取得する。符号量制御部４０は、取得した発生符号量を用いて、間引かれている量子化パラメータＱＰの発生符号量を補間処理によって算出する。符号量制御部４０は、発生符号量を算出する量子化パラメータの位置に応じて、補間方法を切り替えて補間処理を行う。さらに、符号量制御部４０は、取得した発生符号量と補間処理によって算出した発生符号量と目標符号量を比較して仮量子化パラメータＱＰ_precode1を決定する。
【００４１】
符号量制御部４０は、仮量子化パラメータＱＰ_precode1、Ｑマトリックス、各マクロブロックのアクティビティグループから、量子化の情報（Ｑマトリックス、各マクロブロックのＱＰ等）を得て、第２プレエンコード部３０に供給する。第２プレエンコード部３０は、これらの値に基づいて第２のプレエンコードを行う。
【００４２】
すなわち、第２プレエンコード部３０では、入力画像の画像信号が、ディレイバッファ１５を介して遅延処理された後に画面内予測処理部３１に入力される。画面内予測処理部３１は、予測画像と入力画像との差分を示す差分画像の画像信号を生成する。そして、ＤＣＴ部３２によるＤＣＴ、量子化部３３によるＤＣＴ係数の量子化を行い、符号長計算部３４は発生符号量を計算する。
【００４３】
なお、以上の処理の過程において、量子化部３３の出力は逆量子化部３５に送られる。逆量子化部３５は、逆量子化してＤＣＴ係数を再生する。そして、ＩＤＣＴ部３６はＤＣＴ係数をＩＤＣＴ変換し、入力画像を再生し、バッファ３７に保存することになる。
【００４４】
ここで、量子化部３３は、この例では３段の量子化部３３-1，３３-2，２３-3により構成され、符号長計算部３４は、この例では３段の符号長計算部３４-1，３４-2，３４-3により構成されている。３段としているのは、既に第１のプレエンコードで量子化パラメータＱＰが広い範囲で粗く見積もられているからである。
【００４５】
量子化部３３と符号長計算部３４は、仮量子化パラメータＱＰ_precode1を基準とした第２の範囲内の量子化パラメータＱＰでの発生符号量を算出する。例えば、量子化部３３と符号長計算部３４が３段とされているとき、仮量子化パラメータＱＰ_precode1を中心として、「ＱＰ_precode1＋１」，「ＱＰ_precode1−１」の量子化パラメータを含む範囲を第２の範囲とする。このとき、符号長計算部３４は、エンコード部５０による本エンコードのエントロピー符号化方式と同じ方式を、ＣＡＢＡＣ／ＣＡＶＬＣのいずれかから選択する。
【００４６】
符号量制御部４０は、第２のプレエンコードにより得られた発生符号量から、本エンコードで使用する基本量子化パラメータを決定する。そして、符号量制御部４０は、この決定された基本量子化パラメータやＱマトリックス、各マクロブロックのアクティビティグループから、量子化の情報（Ｑマトリックス、各マクロブロックのＱＰ等）をエンコード部５０に送出する。
【００４７】
エンコード部５０は、この基本量子化パラメータ、Ｑマトリックス、アクティビティグループ等を使用して本エンコードを行う。すなわち、ディレイバッファ１６を介して遅延処理された入力画像の画像信号を受けると、画面内予測処理部５１は、第１のプレエンコード時に決定された予測モードで、予測画像と入力画像との差分を示す差分画像の画像信号を生成する。ＤＣＴ部５２はＤＣＴを行い、量子化部５３はＤＣＴ係数の量子化を行う。量子化部５３の出力は逆量子化部５５にも送られる。
【００４８】
逆量子化部５５は、逆量子化してＤＣＴ係数を再生する。そして、ＩＤＣＴ部５６はＤＣＴ係数をＩＤＣＴ変換し、入力画像を再生し、バッファ５７に保存する。
【００４９】
こうして、ＤＣＴ部５２によるＤＣＴ、量子化部５３によるＤＣＴ係数の量子化を経て、エントロピー符号化部５４によりエントロピー符号化がなされ、目標符号量とされた出力ストリームが出力される。
【００５０】
このように、画像符号化装置１０は、第１プレエンコード部２０による第１のプレエンコードにおいて、離散的に選択した量子化パラメータでエンコードした時の発生符号量を計算する。また画像符号化装置１０は、算出した発生符号量を用いて、目標とする発生符号量になる基本量子化パラメータを粗く見積もった仮量子化パラメータＱＰ_precode1を決定する。
【００５１】
このとき、第１プレエンコード部２０は、離散的に選択した量子化パラメータでエンコードした場合の発生符号量を計算するために並列にエンコードを行う。
【００５２】
一般的に、並列にエンコードを行うためには、回路規模が非常に大きくなってしまう。しかし、第１プレエンコード部２０は、量子化部２４と符号長計算部２５のみ並列に設け他部は共用して用い、間引き後の量子化パラメータＱＰについて発生符号量の算出を行う。したがって、回路規模を削減して並列エンコードを行うことができる。また、第１プレエンコード部２０は、入力画像を用いて画面内予測処理を行う構成であることから、逆量子化部、ＩＤＣＴ部、バッファが用いられていない。このため、回路規模をさらに削減して並列エンコードを行うことができる。
【００５３】
なお、エントロピー符号化でＣＡＢＡＣを用いる場合、高いビットレートでは、処理できないことである。すなわち、符号量予測のために、ある量子化パラメータＱＰで符号量計算を行おうとしたとき、その量子化パラメータＱＰでの発生量が大きい場合、符号量を予測することができない。
【００５４】
ＣＡＢＡＣは１ｂｉｔ毎に確率計算を行ってデータを圧縮していくエントロピー符号化方式である。１ｂｉｔずつ処理するということは、符号量が多くなると処理時間が長くなることを意味し、一定の時間内（例えば１フレームの時間）に処理が終了しなくなる。よって、符号量が多い場合は、発生符号量を計算することができないため、高いビットレートでは符号量を予測することができない。このため、第１プレエンコード部２０では、符号量計算にＣＡＶＬＣを用いる。
【００５５】
このように、第１プレエンコード部２０を構成して符号量計算を行えば、回路規模を削減し、処理を削減し、簡略化した並列プレエンコードを行うことができる。さらに、符号量制御部４０は、第１プレエンコード部２０で取得した発生符号量を用いて、間引かれている量子化パラメータＱＰの発生符号量を補間処理によって算出する。さらに、符号量制御部４０は、取得した発生符号量と補間処理によって算出した発生符号量と目標符号量を比較して仮量子化パラメータＱＰ_precode1を決定する。
【００５６】
第２プレエンコード部３０は、第１のプレエンコード結果を用いた仮量子化パラメータＱＰ_precode1が誤差を持っていることに鑑（かんが）み、再度プレエンコードを行うことで、本エンコードで用いる基本量子化パラメータの精度を上げる。すなわち、第２プレエンコード部３０は、第１のプレエンコード結果により粗く見積もった仮量子化パラメータＱＰ_precode1の周辺の量子化パラメータＱＰで、再度プレエンコードすることにより発生符号量を算出する。さらに、第２プレエンコード部３０は、発生符号量が目標符号量以下であって最も目標符号量に近い最適量子化パラメータＱＰ_precode2を求める。なお、第２プレエンコード部３０におけるエントロピー符号長計算は、本エンコードと同じ方式（ＣＡＢＡＣ又はＣＡＶＬＣ）を用いる。
【００５７】
第２のプレエンコードは、第１のプレエンコードを行って決定された仮量子化パラメータＱＰ_precode1と、例えばひとつ大きい量子化パラメータＱＰ_precode1＋１，ひとつ小さい量子化パラメータＱＰ_precode1−１でプレエンコードを行う。ここで、回路規模削減のため、前述したように、量子化部３３と符号長計算部３４のみ並列化し、その他の処理は共用する。
【００５８】
このとき、画面内予測処理で使用するローカルデコード（Local Decode）画は、第１のプレエンコードにより決定された仮量子化パラメータＱＰ_precode1で量子化したデータとする。つまり、逆量子化とＩＤＣＴで処理されるデータは、仮量子化パラメータＱＰ_precode1の量子化の出力である。これは、量子化パラメータＱＰ_precode1＋１，ＱＰ_precode1−１を使うプレエンコードの画面内予測処理の入力を、自分自身のローカルデコード画ではなく、仮量子化パラメータＱＰ_precode1のローカルデコード画で代用することを意味する。
【００５９】
なお、画面内予測処理の入力が異なることによる誤差は存在するが、基本量子化パラメータが略同じ値であり、エンコードによる歪も略同じ量であるので、無視できるものとする。
【００６０】
＜２．符号化処理手順＞
次に、図２のフローチャートを参照して、画像符号化装置による符号化の処理手順について説明する。
【００６１】
ステップＳＴ１で第１プレエンコード部２０は、アクティビティグループ分けを行う。第１プレエンコード部２０は、マクロブロック毎にアクティビティを計算し、その値に応じてアクティビティグループに分ける。
【００６２】
つまり、NumOfActivityGroupのグループに分ける場合を想定すると、アクティビティ計算部２６は、ActivityThreshold［０］〜ActivityThreshold[NumOfActivityGroup−２]とアクティビティを比較することにより、アクティビティグループを決定する。なお、後述するマクロブロックの量子化パラメータＭＢ_ＱＰは、式（１）に示すように、ピクチャの基本量子化パラメータ（BaseQP）に対して、アクティビティグループに依存したオフセット（AdaptQpDelta[activity_group]）を加えることで求められる。
ＭＢ_ＱＰ＝BaseQP＋AdaptQpDelta[activity_group]    ・・・（１）
【００６３】
例えば、NumOfActivityGroupを１３としたとき、AdaptQpDeltaの各値は、AdaptQpDelta[13]＝｛−６，−５，−４，−３，−２，−１，０，１，２，３，４，５，６｝とすることができる。なお、アクティビティは、上述のようにマクロブロック内における画素信号の平均値に対する各画素信号の誤差の絶対値和や、マクロブロック内における各画素信号の分散等が用いられており、アクティビティによってマクロブロックにおける画像の平坦度が示される。ここで、アクティビティが大きいときはマクロブロックの画像の平坦度が低いことから、量子化パラメータが小さくなるようにオフセットを行い、量子化ステップを小さくする。また、アクティビティが小さいときはマクロブロックの画像の平坦度が高いことから、量子化パラメータが大きくなるようにオフセットを行い、量子化ステップを大きくする。
【００６４】
ステップＳＴ２で第１プレエンコード部２０は画面内予測モードを決定する。第１プレエンコード部２０の画面内予測モード決定部２１は、入力画像に基づいて画面内予測モードを決定する。画面内予測モードは、第２プレエンコード部２０による第２のプレエンコード、エンコード部５０による本エンコードでも使用される。
【００６５】
ステップＳＴ３で第１プレエンコード部２０は、差分画像の生成とＤＣＴ演算を行う。第１プレエンコード部２０の画面内予測処理部２２は、予測画像と入力画像との差分を示す差分画像の画像信号を生成する。予測画像は、例えば処理を削減するため入力画像から生成する。次いで、ＤＣＴ部２３は、整数精度ＤＣＴを行い、ＤＣＴ係数を量子化部２４に送出する。
【００６６】
ステップＳＴ４で第１プレエンコード部２０は、第１のプレエンコードによる符号量を算出する。量子化部２４は、ＤＣＴ係数値を、離散的に選択された量子化パラメータＱＰで量子化する。符号長計算部２５は、符号長計算を行うことで、それぞれの１ピクチャの発生符号量を取得する。この時、マクロブロックの量子化パラメータＭＢ_ＱＰは、前述したようにアクティビティを考慮した値が与えられてエンコードされる。すなわち、前述したように、マクロブロックの量子化パラメータＭＢ_ＱＰは、ピクチャの基本量子化パラメータに対して、アクティビティグループに依存したオフセットを加えることで求められる。
【００６７】
なお、適応的なＱマトリックス切り替え処理に対応させる場合には、上述の処理をＱマトリックス毎に行う。つまり、Ｑマトリックス毎に、離散的に選択された量子化パラメータＱＰでプレエンコードを行って、量子化パラメータＱＰ毎に１ピクチャの発生符号量を取得する。この時、Ｑマトリックス毎に量子化パラメータＱＰの取り得る範囲をカバーするように量子化パラメータＱＰを選択する。
【００６８】
ステップＳＴ５で符号量制御部４０は、第１のプレエンコードによる発生符号量の補正を行う。符号量制御部４０は、プレエンコードを簡略化したことによる誤差の補正を行う。誤差の補正は、誤差がある程度の傾向を持っていることを利用して行う。
【００６９】
誤差要因の一つ目は、画面内予測処理にローカルデコード画ではなく入力画像を用いていることである。この場合、画面内予測に使う画にコーデック（Codec）による歪がのっていないので、実際のエンコードより符号化効率が良くなり、符号量が少なめに出る傾向がある。この誤差の大きさは、歪の大きさに依存するので、発生符号量と誤差の関係では、ビットレート（Bit rate）が小さくなると誤差が大きくなる傾向がある。また、量子化パラメータＱＰと誤差の関係では、量子化パラメータＱＰが大きくなると誤差が大きくなる傾向にある。よって、予め誤差の大きさの統計データを取得して、ビットレートによる平均的な誤差のモデル、量子化パラメータＱＰによる平均的な誤差のモデルを作成しておくことで補正する。
【００７０】
誤差要因の二つ目は、エントロピー符号化方式でＣＡＢＡＣを選択したときのみ発生するものである。ＣＡＢＡＣはＣＡＶＬＣより符号化効率が良いので、ＣＡＶＬＣでプレエンコードした発生符号量は、実際の符号量より多めに出る傾向がある。例えば、発生符号量と誤差の関係では、この誤差の大きさは統計的に見てビットレートが小さくなるとＣＡＢＡＣの効率が良くなることに起因して、大きくなる傾向にある。これも同様に、予め誤差の大きさの統計データを取得して、平均的な誤差のモデルを作成しておくことで補正する。
【００７１】
なお、入力画による画面内予測処理による誤差に比べると、ＣＡＢＡＣに起因する誤差は反対側に変化し、その変化量は小さいことが明らかとなっている。そこで、補正量をビットレート“ｒ”と量子化パラメータＱＰ“ｑ”の関数として定義する。いま、補正比をＣ（ｒ，ｑ）とすると、式（２）により補正した符号量を得ることができる。
補正した符号量＝Pre-Encode符号量×Ｃ（ｒ，ｑ）  ・・・（２）
【００７２】
ステップＳＴ６で符号量制御部４０は、目標符号量に対応する仮量子化パラメータＱＰ_precode1を決定する。符号量制御部４０は、選択された量子化パラメータＱＰでプレエンコードを行って発生符号量が取得されているので、間引きされている量子化パラメータＱＰに関して、補間処理により発生符号量を算出する。さらに、符号量制御部４０は、プレエンコードを行って発生符号量と、補間処理によって算出された符号量を目標符号量と比較して、符号量が目標符号量以下で最も近い量子化パラメータＱＰを、仮量子化パラメータＱＰ_precode1とする。符号量制御部４０は、補間処理による発生符号量の予測精度を高くするため、発生符号量を算出する量子化パラメータの位置に応じて補間方法を切り替える。
【００７３】
なお、適応的なＱマトリックス切り替え処理に対応させる場合には、上記の処理をＱマトリックス毎に行う。つまり、Ｑマトリックス毎に、符号量が目標符号量以下で最も目標符号量に近い量子化パラメータＱＰを仮量子化パラメータＱＰ_precode1とする。すなわち、第１プレエンコード部２０では、適応的なＱマトリックスの選択に対応させるため、該Ｑマトリックス毎に、取り得る範囲の量子化パラメータＱＰを離散的に選択し、並列回路部分で並列処理を行う。また、並列処理を行って得られた発生符号量と補間処理によって算出した符号量と目標符号量を比較して、Ｑマトリックス毎に、符号量が目標符号量以下で最も目標符号量に近い量子化パラメータＱＰを、仮量子化パラメータＱＰ_precode1とする。
【００７４】
ここで、図３のフローチャートを参照して、適応的なＱマトリックスの切り替え処理についてさらに説明する。
【００７５】
適応的なＱマトリックス切り替えを行う場合には、符号化難易度に応じて適応的に、Ｑマトリックスの選択を行う。符号化難易度としては、Ｑマトリックス毎に決定された仮量子化パラメータＱＰ_precode1を使用する。
【００７６】
ここで、切り替えて使うＱマトリックスの数をNumOfQMatrixIdとする。また、傾斜の緩やかなＱマトリックスから昇順にＩｄを付け、各Ｑマトリックスの取り得る最大の量子化パラメータＱＰをＱMatrixThreshold［０］〜ＱMatrixThreshold［NumOfQMatrixId−２］とする。
【００７７】
ステップＳＴ２１で符号量制御部４０は、Ｉｄの初期化を行い「Ｉｄ＝０」とする。ステップＳＴ２２で符号量制御部４０は、Ｉｄの値の小さいＱマトリックスから、仮量子化パラメータＱＰ_precode1とＱMatrixThresholdを比較する。Ｉｄ番目のＱマトリックスで仮量子化パラメータＱＰ_precode1ＱＰがＱMatrixThreshold［Ｉｄ］より小さければ、ステップＳＴ２５に進み、現在のＱマトリックスに決定して処理を終了する。
【００７８】
ステップＳＴ２２において符号量制御部４０は、Ｉｄ番目のＱマトリックスで仮量子化パラメータＱＰ_precode1がＱMatrixThreshold［Ｉｄ］以上であれば、ステップＳＴ２３でＩｄをインクリメントしてステップＳＴ２４に進む。
【００７９】
ステップＳＴ２４で符号量制御部４０は、Ｉｄが切り替えて用いるＱマトリックスの数NumOfQMatrixIdであるか否かを判断する。ここで、Ｉｄ＝NumOfQMatrixIdでなければステップＳＴ２２に戻り、次のＱマトリックスをチェックする。また、Ｉｄ＝NumOfQMatrixId−１であれば、ステップＳＴ２５に進み、一番急峻なＱマトリックス（ＩＤがNumOfQMatrixId−１のＱマトリックス）を選択して処理を終了する。
【００８０】
このような処理により、符号量制御部４０は、Ｑマトリックス毎に、取り得る最大の量子化パラメータＱＰを設定して、傾斜の緩やかなＱマトリックスから順に、仮量子化パラメータＱＰ_precode1が範囲内であるか否かを判断する。そして、範囲内であればその仮量子化パラメータＱＰ_precode1用いるものとする。
【００８１】
図２のステップＳＴ７で、符号量制御部４０は、Ｑマトリックスと仮量子化パラメータＱＰ_precode1を決定する。符号量制御部４０は、上述の処理によりＱマトリックスを決定し、このＱマトリックスが決定されたことで、仮量子化パラメータＱＰ_precode1を決定する。このようにＱマトリックスを選択することで、取り得る量子化パラメータＱＰの範囲を限定することになり、第１のプレエンコードで発生符号量を調べる量子化パラメータＱＰの範囲を減らすことが可能になる。これが、第１のプレエンコードにて決定されたＱマトリックスと仮量子化パラメータＱＰ_precode1となる。
【００８２】
続いて、ステップＳＴ８〜ステップＳＴ１０で第２のプレエンコードを行う。第２のプレエンコードの目的は、第１のプレエンコードによる仮量子化パラメータＱＰ_precode1が誤差を生じていることが考えられるので、再度プレエンコードすることで、基本量子化パラメータの推定精度を上げることにある。
【００８３】
すなわち、第１のプレエンコードによって粗く見積もった基本量子化パラメータである仮量子化パラメータＱＰ_precode1の周辺の量子化パラメータＱＰで、再度プレエンコードすることにより発生符号量を算出する。また、算出した発生符号量と目標符号量を比較して、発生符号量が目標符号量以下で最も目標符号量に近い量子化パラメータＱＰを最適量子化パラメータＱＰ_precode2とする。エントロピー符号長計算は、本エンコードと同じ方式（ＣＡＢＡＣ又はＣＡＶＬＣ）を用いる。
【００８４】
ステップＳＴ８で第２プレエンコード部３０は、画面内予測とＤＣＴ演算を行う。第２プレエンコード部３０の画面内予測処理部３１は、第１のプレエンコード等を行って決定された仮量子化パラメータＱＰ_precode1、Ｑマトリックス、アクティビティグループを用いて画面内予測処理を行う。また、第２プレエンコード部３０のＤＣＴ部３２はＤＣＴ演算を行う。この第２のプレエンコードにおいて、画面内予測で使用するローカルデコード画は、第１のプレエンコード等を行うことにより決定された仮量子化パラメータＱＰ_precode1で量子化したデータを共用する。
【００８５】
ステップＳＴ９で第２プレエンコード部３０は、第２のプレエンコードによる符号量を算出する。第２プレエンコード部３０は、仮量子化パラメータＱＰ_precode1を基準とした第２の範囲内の各量子化パラメータＱＰで符号量を算出する。すなわち、量子化部３３-1には仮量子化パラメータＱＰ_precode1を与えて量子化パラメータＱＰ_precode1の発生符号量を算出する。また、量子化３３-2には量子化パラメータＱＰ_precode1−１、量子化３３-3には量子化パラメータＱＰ_precode1＋１を与えて、量子化パラメータＱＰ_precode1−１，ＱＰ_precode1＋１の発生符号量を算出する。
【００８６】
ステップＳＴ１０で符号量制御部４０は、最適量子化パラメータＱＰ_precode2を決定する。符号量制御部４０は、第２プレエンコード部３０で得られた発生符号量と目標符号量を比較して最適量子化パラメータＱＰ_precode2を決定する。すなわち、第２プレエンコード部３０は、仮量子化パラメータＱＰ_precode1，ＱＰ_precode1−１，ＱＰ_precode1＋１のなかで、発生符号量が目標符号量以下で最も目標符号量に近い量子化パラメータを最適量子化パラメータＱＰ_precode2とする。
【００８７】
ステップＳＴ１１でエンコード部５０は本エンコードを行う。エンコード部５０は、第２のプレエンコードにより決定された最適量子化パラメータＱＰ_precode2、第１のプレエンコードにより決定されたＱマトリックス、アクティビティグループを使用してエンコードを行う。こうして符号化にかかわる一連の処理を終了する。
【００８８】
＜４．仮量子化パラメータの決定処理＞
符号量制御部４０は、第１プレエンコード部２０で離散的に選択した量子化パラメータＱＰでプレエンコードを行って得られている発生符号量を用いて補間処理を行い、選択されていない量子化パラメータＱＰにおける発生符号量を算出する。さらに、符号量制御部４０は、選択した量子化パラメータにおける発生符号量と補間処理により算出した発生符号量を目標符号量と比較して、目標符号量に対応する仮量子化パラメータＱＰ_precode1を決定する。
【００８９】
図４は、仮量子化パラメータの決定処理を示すフローチャートである。また、図５は、仮量子化パラメータの決定処理を説明するための図である。図４のステップＳＴ３１で第１プレエンコード部２０は、発生符号量の算出を行う。第１プレエンコード部２０は。離散的に選択した量子化パラメータＱＰ毎にプレエンコードを行い、発生符号量を計算してステップＳＴ３２に進む。例えば図５の（Ａ）において、黒丸印で示すように、離散的に選択した量子化パラメータＱＰについて発生符号量を算出する。
【００９０】
ステップＳＴ３２で符号量制御部４０は、量子化パラメータ範囲ＷＱを判別してステップＳＴ３３に進む。符号量制御部４０は、目標符号量「Target_bits」とステップＳＴ３１で算出した発生符号量を比較して、目標とする基本量子化パラメータが、発生符号量を算出した量子化パラメータＱＰによって示されるいずれの範囲内であるかにあるか判別する。
【００９１】
符号量制御部４０は、例えばステップＳＴ３１で算出した符号量と目標符号量を比較して、図５の（Ｂ）に示すように、算出した発生符号量が目標符号量「Target_bits」以上であって最も目標符号量に近い量子化パラメータである「ＱＰ-a」を判別する。また、符号量制御部４０は、算出した発生符号量が目標符号量「Target_bits」未満であって最も目標符号量に近い量子化パラメータである「ＱＰ-b」を判別する。さらに、符号量制御部４０は、判別した量子化パラメータ「ＱＰ-a」〜「ＱＰ-b」の範囲を目標とする量子化パラメータが含まれる量子化パラメータ範囲ＷＱとする。
【００９２】
ステップＳＴ３３で符号量制御部４０は、量子化パラメータ範囲ＷＱにおいて、間引きされている量子化パラメータＱＰについて、補間処理によって発生符号量を算出する。符号量制御部４０は、量子化パラメータ範囲ＷＱ、すなわち図５の（Ｃ）に示すように「ＱＰ-a」〜「ＱＰ-b」の範囲内の各量子化パラメータＱＰについて、発生符号量を補間処理によって算出する。ここで、符号量制御部４０は、補間処理によって発生符号量を算出する量子化パラメータの位置に応じて補間方法を切り替える。なお、補間処理の詳細については後述する。
【００９３】
ステップＳＴ３４で符号量制御部４０は、仮量子化パラメータＱＰ_precode1を決定する。符号量制御部４０は、ステップＳＴ３１で算出された発生符号量とステップＳＴ３３で補間処理によって得られた発生符号量を目標符号量と比較する。また、符号量制御部４０は、図５の（Ｄ）に示すように、発生符号量が目標符号量以下であって最も目標符号量に近い量子化パラメータＱＰを、仮量子化パラメータＱＰ_precode1とする。
【００９４】
＜５．補間処理＞
次に、補間処理について説明する。符号量制御部４０は、選択された量子化パラメータでの発生符号量と目標符号量を比較して、補間処理によって発生符号量を算出する量子化パラメータを判別する。また、符号量制御部４０は、補間処理によって発生符号量を算出する量子化パラメータの位置に応じて補間方法を切り替える。符号量制御部４０は量子化パラメータの位置に応じて、例えば二次曲線を用いた補間と発生符号量の変化率を用いた補間のいずれかを行う。また二次曲線を用いた補間では、量子化パラメータＱＰまたは平均量子化パラメータＡＶＧ_ＱＰを用いた補間を行う。図６は、補間処理の切り換え動作を示すフローチャートを示している。
【００９５】
ステップＳＴ４１で符号量制御部４０は、補間する量子化パラメータを判別する。符号量制御部４０は、選択された量子化パラメータの発生符号量と目標符号量を比較して、発生符号量が目標符号量を挟み込んでいる２つの選択された量子化パラメータＱＰ間の量子化パラメータを、補間する量子化パラメータと判別する。また、符号量制御部４０は、最小の選択された量子化パラメータＱＰにおける発生符号量よりも目標符号量が大きいとき、最小の選択された量子化パラメータＱＰよりも小さい量子化パラメータを、補間する量子化パラメータと判別する。さらに、符号量制御部４０は、最大の選択された量子化パラメータＱＰにおける発生符号量よりも目標符号量が小さいとき、最大の選択された量子化パラメータＱＰよりも大きい量子化パラメータを、補間する量子化パラメータと判別する。符号量制御部４０は、このような処理を行うことで、補間する量子化パラメータを効率よく選択することが可能となり、選択されていない全ての量子化パラメータＱＰについて補間を行う必要がない。
【００９６】
ステップＳＴ４２で符号量制御部４０は、補間する量子化パラメータの位置が選択された量子化パラメータＱＰで挟まれた位置であるか否か判別する。符号量制御部４０は、補間処理によって発生符号量を算出する量子化パラメータの位置が、第１プレエンコード部２０で選択された量子化パラメータＱＰで挟まれた位置であるとき、ステップＳＴ４３に進む。また、符号量制御部４０は、補間処理によって発生符号量を算出する量子化パラメータの位置が、第１プレエンコード部２０で選択された量子化パラメータＱＰで挟まれた位置でないとき、ステップＳＴ４６に進む。
【００９７】
ステップＳＴ４３で符号量制御部４０は、補間する量子化パラメータの位置が、アクティビティに応じたオフセットを加算したときに予め設定されている範囲に制限される量子化パラメータの領域内であるか否か判別する。符号量制御部４０は、補間する量子化パラメータの位置が予め設定されている範囲に制限される領域内でないときステップＳＴ４４に進み、制限される領域内であるときステップＳＴ４５に進む。
【００９８】
ここで、ピクチャの基本量子化パラメータ（BaseQP）に対して、アクティビティグループに依存したオフセット（AdaptQpDelta[activity_group]）を加えて、マクロブロックの量子化パラメータＭＢ_ＱＰを求める場合、オフセットを加えることで、量子化パラメータが予め設定されている範囲に制限される場合が生じる。例えば、基本量子化パラメータ（BaseQP）に対して、例えば上述のようにNumOfActivityGroupを「１３」として、オフセットを「−６，−５，−４，−３，−２，−１，０，１，２，３，４，５，６」とする。また、量子化パラメータの範囲を「０〜５１」とする。この場合、基本量子化パラメータ（BaseQP）が「０〜６」「４５〜５１」の範囲では、オフセットを加算したとき量子化パラメータが予め設定されている「０〜５１」の範囲に制限される。したがって、補間する量子化パラメータの位置が「０〜６」「４５〜５１」の領域内でないときはステップＳＴ４４に進み、「０〜６」「４５〜５１」の領域内であるときはステップＳＴ４５に進む。
【００９９】
ステップＳＴ４４で符号量制御部４０は、二次曲線を用いた補間を行い、量子化パラメータＱＰにおける発生符号量を算出する。符号量制御部４０は、補間する量子化パラメータの位置を挟む２つの選択された量子化パラメータＱＰと、２つの選択された量子化パラメータＱＰの次に値の大きい（または次に値の小さい）選択された量子化パラメータＱＰを判別する。次に、符号量制御部４０は、判別した３つの量子化パラメータＱＰの値と、この値における発生符号量から二次曲線を決定する。さらに、符号量制御部４０は、決定した二次曲線を用いて、補間する量子化パラメータにおける発生符号量を算出して補間処理を終了する。
【０１００】
ステップＳＴ４５で符号量制御部４０は、二次曲線を用いた補間を行い、平均量子化パラメータＡＶＧ_ＱＰにおける発生符号量の算出を行う。符号量制御部４０は、補間する量子化パラメータの位置を挟む２つの選択された量子化パラメータＱＰと、２つの選択された量子化パラメータＱＰの次に値の大きい（または次に値の小さい）選択された量子化パラメータＱＰを平均量子化パラメータＡＶＧ_ＱＰに変換する。また、補間する量子化パラメータを平均量子化パラメータＡＶＧ_ＱＰに変換する。次に、符号量制御部４０は、３つの平均量子化パラメータＡＶＧ_ＱＰの値と、この値における発生符号量から二次曲線を決定する。さらに、符号量制御部４０は、決定した二次曲線を用いて、補間する平均量子化パラメータＡＶＧ_ＱＰにおける発生符号量を算出して補間処理を終了する。
【０１０１】
平均量子化パラメータＡＶＧ_ＱＰへの変換では、各アクティビティグループにおけるマクロブロックの量子化パラメータＭＢ_ＱＰを上述の式（１）に基づいて算出する。
なお、量子化パラメータＭＢ_ＱＰは「０≦ＭＢ_ＱＰ≦５１」の範囲として、式（１）から算出した値が「０≦ＭＢ_ＱＰ≦５１」の範囲を超えるときは、この範囲にクリップする。
【０１０２】
次に、マクロブロックの量子化パラメータＭＢ_ＱＰに対して式（３）に示すようにアクティビティグループに属するマクロブロック数ＭＢ_Ｎagを乗算して、アクティビティグループ毎にマクロブロック量子化パラメータ積算値ＳＵＭ_ＱＰ_agを算出する。
ＳＵＭ_ＱＰ_ag＝ＭＢ_ＱＰ×ＭＢ_Ｎag      ・・・（３）
【０１０３】
さらに、アクティビティグループ毎のマクロブロック量子化パラメータ積算値ＳＵＭ_ＱＰ_agの総和をピクチャ内の総マクロブロック数で除算することにより平均値量子化パラメータＡＶＧ_ＱＰを算出できる。
【０１０４】
このようにすれば、量子化パラメータＱＰを平均量子化パラメータＡＶＧ_ＱＰに変換できる。なお、平均値量子化パラメータは、アクティビティによるオフセット処理を行ったマクロブロック毎の量子化パラメータの平均値を示すものとなる。
【０１０５】
図７は、量子化パラメータと発生符号量の関係を種々の素材について例示している。なお、図７の（Ａ）は、基本量子化パラメータと発生符号量の関係、図７の（Ｂ）は、平均量子化パラメータと発生符号量の関係を示している。基本量子化パラメータと発生符号量の関係において、例えば量子化パラメータの位置が「０〜６」の領域ＷＲであるとき、オフセットを加算しても量子化パラメータが「０〜５１」の範囲に制限されてしまう場合が生じる。このため、この領域ＷＲの特性は、図７の（Ａ）に示すように素材によって異なる場合が生じる。例えば、オフセットを加算しても量子化パラメータが「０〜５１」の範囲に制限されて、量子化パラメータが小さくても発生符号量が変化しない場合等が生じる。しかし、平均量子化パラメータを用いるものとすれば、オフセットを加算したときの量子化パラメータが飽和するような領域でも、図７の（Ｂ）に示すように、いずれの素材においても同様な特性を示す。したがって、オフセットを加算したときの量子化パラメータが飽和するような領域に対して二次曲線を用いた補間を行う場合、平均量子化パラメータを用いることで補間精度を高めることができる。
【０１０６】
ステップＳＴ４６で符号量制御部４０は、変化率を用いた補間を行う。符号量制御部４０は、選択した量子化パラメータの発生符号量から変化率を算出して、この算出した変化率を用いて変化率の算出に用いた量子化パラメータの間隔で補間を行う。符号量制御部４０は、例えば選択した量子化パラメータの間隔が「１」であるとき、この変化率と、選択した量子化パラメータと補間する量子化パラメータとの間隔から、補間する量子化パラメータにおける発生符号量を算出して補間処理を終了する。符号量制御部４０は、間隔が「１」より大きいとき、変化率の算出に用いた量子化パラメータの間隔で補間を行って得られた発生符号量を用いて、変化率の算出に用いた量子化パラメータの間隔内に位置する量子化パラメータの発生符号量を直線補間で算出する。
【０１０７】
図８は、補間処理によって発生符号量を算出する量子化パラメータの位置と、補間方法の関係を示している。なお、図８における黒丸印は、第１プレエンコード部２０で選択された量子化パラメータの発生符号量を示している。
【０１０８】
補間処理によって発生符号量を算出する量子化パラメータの位置が、第１プレエンコード部２０で選択された量子化パラメータで挟まれた位置であるとき、二次曲線を用いた補間を行う。また、符号量制御部４０は、目標とする基本量子化パラメータが含まれる量子化パラメータ範囲ＷＱが、第１プレエンコード部２０で選択された最小の量子化パラメータ以下の範囲であるとき変化率を用いた補間を行う。また、符号量制御部４０は、第１プレエンコード部２０で選択された最大の量子化パラメータ以上の範囲であるとき変化率を用いた補間を行う。
【０１０９】
第１プレエンコード部２０において選択された量子化パラメータＱＰを、例えば図８に示すように、「ＱＰ-pa」，「ＱＰ-pb」，「ＱＰ-pc」，「ＱＰ-pd」，「ＱＰ-pe」，「ＱＰ-pf」とする。符号量制御部４０は、目標とする基本量子化パラメータが含まれる量子化パラメータ範囲ＷＱが「ＱＰ-pa」〜「ＱＰ-pb」であるとき、間引きされている量子化パラメータの発生符号量を、二次曲線を用いた補間によって発生符号量を算出する。また、量子化パラメータ範囲ＷＱが「ＱＰ-pb」〜「ＱＰ-pc」，「ＱＰ-pc」〜「ＱＰ-pd」，「ＱＰ-pd」〜「ＱＰ-pe」，「ＱＰ-pe」〜「ＱＰ-pf」のとき、符号量制御部４０は二次曲線を用いた補間によって発生符号量を算出する。符号量制御部４０は、目標とする基本量子化パラメータが含まれる量子化パラメータ範囲ＷＱが「ＱＰ-pa」以下の範囲であるとき、間引きされている量子化パラメータの発生符号量を、変化率を用いた補間によって算出する。符号量制御部４０は、目標とする基本量子化パラメータが含まれる量子化パラメータ範囲ＷＱが「ＱＰ-pf」以上の範囲であるといき、間引きされている量子化パラメータの発生符号量を、変化率を用いた補間によって算出する。
【０１１０】
＜６．二次曲線を用いた補間＞
図９は、二次曲線を用いた補間による発生符号量の算出方法を説明するための図である。二次曲線を用いた補間では、第１プレエンコード部２０で選択された３つの量子化パラメータＱＰを順に用いて補間を行う。例えば量子化パラメータＱＰ（または平均値量子化パラメータＡＶＧ_ＱＰ）の値が「Ｘa」のときの発生符号量を「Ｙa」、「Ｘb」のときの発生符号量を「Ｙb」、「Ｘc」のときの発生符号量を「Ｙc」とする。このとき、符号量制御部４０は、式（４）を用いて、量子化パラメータＱＰ（または平均値量子化パラメータＡＶＧ＿ＱＰ）が「Ｘm」であるときの発生符号量「Ｙm」を算出する。
Ｙm＝Ｙa×（Ｘm−Ｘb）×（Ｘm−Ｘc）／（Ｘa−Ｘb）／（Ｘa−Ｘc）＋
Ｙb×（Ｘm−Ｘa）×（Ｘm−Ｘc）／（Ｘb−Ｘa）／（Ｘb−Ｘc）＋
Ｙc×（Ｘm−Ｘa）×（Ｘm−Ｘb）／（Ｘc−Ｘa）／（Ｘc−Ｘb）
・・・（４）
【０１１１】
その後、目標符号量以下で最も目標符号量に近い発生符号量を判別して、この判別された発生符号量に対応する量子化パラメータＱＰを仮量子化パラメータＱＰ_precode1とする。
【０１１２】
また、平均量子化パラメータＡＶＧ_ＱＰを用いる場合、目標符号量以下で最も目標符号量に近い発生符号量を判別して、この判別された発生符号量に対応する平均量子化パラメータを選択する。さらに、選択された平均量子化パラメータがいずれの量子化パラメータＱＰを変換したパラメータであるか判別して、判別した量子化パラメータＱＰを仮量子化パラメータＱＰ_precode1とする。
【０１１３】
なお、図１０は、平均量子化パラメータを用いた仮量子化パラメータの決定処理を示すフローチャートを示している。また、図１１は、平均量子化パラメータを用いた仮量子化パラメータの決定処理を説明するための図である。図１０のステップＳＴ５１で第１プレエンコード部２０は、発生符号量の算出を行う。第１プレエンコード部２０は。離散的に選択した量子化パラメータＱＰ毎にプレエンコードを行い、発生符号量を計算してステップＳＴ３２に進む。例えば図１１の（Ａ）において、黒丸印で示すように、離散的に選択した量子化パラメータＱＰについて発生符号量を算出する。
【０１１４】
ステップＳＴ５２で符号量制御部４０は、量子化パラメータ範囲ＷＱを判別してステップＳＴ５３に進む。符号量制御部４０は、目標符号量「Target_bits」とステップＳＴ５１で算出した発生符号量を比較して、目標とする量子化パラメータＱＰが、発生符号量を算出した量子化パラメータＱＰによって示されるいずれの範囲内であるかにあるか判別する。
【０１１５】
符号量制御部４０は、例えばステップＳＴ５１で算出した符号量と目標符号量を比較して、図１１の（Ｂ）に示すように、算出した発生符号量が目標符号量「Target_bits」以上であって最も目標符号量に近い量子化パラメータである「ＱＰ-a」を判別する。また、符号量制御部４０は、算出した発生符号量が目標符号量「Target_bits」未満であって最も目標符号量に近い量子化パラメータである「ＱＰ-b」を判別する。さらに、符号量制御部４０は、判別した量子化パラメータ「ＱＰ-a」〜「ＱＰ-b」の範囲を目標とする量子化パラメータが含まれる量子化パラメータ範囲ＷＱとする。
【０１１６】
ステップＳＴ５３で符号量制御部４０は、量子化パラメータ範囲ＷＱにおいて、間引きされている量子化パラメータＱＰについて、図６のステップＳＴ４５で示すように、平均量子化パラメータを用いた補間処理によって発生符号量を算出する。符号量制御部４０は、量子化パラメータ範囲ＷＱの量子化パラメータおよび補間に用いる量子化パラメータを平均量子化パラメータに変換する。例えば、量子化パラメータＱＰ-a，ＱＰ-bと、「ＱＰ-a」〜「ＱＰ-b」の範囲内の量子化パラメータＱＰを平均量子化パラメータＡＶＧ_ＱＰに変換する。また、「ＱＰ-a」〜「ＱＰ-b」の範囲内の変換後の平均量子化パラメータＡＶＧ_ＱＰについて、図１１の（ｃ）の白丸印で示すように発生符号量を補間処理によって算出する。
【０１１７】
ステップＳＴ５４で符号量制御部４０は、仮量子化パラメータＱＰ_precode1を決定する。符号量制御部４０は、ステップＳＴ５１で算出された発生符号量とステップＳＴ５３で補間処理によって得られた発生符号量を目標符号量と比較する。また、符号量制御部４０は、図１１の（Ｄ）に示すように、発生符号量が目標符号量以下であって最も目標符号量に近い平均量子化パラメータＡＶＧ_ＱＰを、仮平均量子化パラメータＡＣＶ_ＱＰ_precode1とする。さらに、仮平均量子化パラメータＡＣＶ_ＱＰ_precode1は、いずれの量子化パラメータＱＰが変換されたパラメータであるか判別して、判別した量子化パラメータを仮量子化パラメータＱＰ_precode1とする。
【０１１８】
このように二次曲線を用いた補間を行えば、従来の直線補間に比べて精度を高めることができる。すなわち、プレエンコードで符号量予測する素材は、原画に限られるものではなく、エンコードおよびデコードが行われた画像（以下「再エンコード素材」という）も用いられる。一般に、ＭＰＥＧやＡＶＣでエンコードおよびデコードが行われた再エンコード素材等の場合、量子化パラメータＱＰと符号量の関係は滑らかな変化とならず、図１２に示すように曲線が段々状となった特性を示すことが知られている。
【０１１９】
図１３は、再エンコード素材等の符号化において、直線補間と二次曲線を用いた補間を示している。なお、図１３において、直線補間は破線で、二次曲線は実線で示している。直線補間によって発生符号量を算出すると、実際の発生符号量に対する誤差が大きくなってしまうおそれがある。しかし、二次曲線を用いれば実際の発生符号量に対する誤差が小さくなり、直線補間を行う場合に比べて精度を高めることができる。
【０１２０】
＜８．変化率による補間＞
符号量制御部４０は、発生符号量の変化率を用いた補間において、選択した量子化パラメータの発生符号量から変化率を算出して、この算出した変化率を用いて変化率の算出に用いた量子化パラメータの間隔で補間を行う。
【０１２１】
図１４は、増加率を用いた補間方法を示している。この補間処理は、第１プレエンコード部２０で算出された符号量よりも目標符号量が小さく、補間処理の基準点として用いるＱＰ間の差が１の場合に用いられる処理である。また、例えば量子化パラメータＱＰが「Ｘ0」のときの符号量を「Ｙ0」、量子化パラメータＱＰが「Ｘ1」のときの符号量を「Ｙ1」とする。符号量制御部４０は、第１プレエンコード部２０で算出された符号量から変化率ＲＴを式（５）に基づいて算出する。
ＲＴ＝（Ｙ1−Ｙ0）／Ｙ0      ・・・（５）
【０１２２】
符号量制御部４０は、算出されている発生符号量と、式（５）で求めた変化率ＲＴから、この発生符号量が算出されている量子化パラメータＱＰよりも「１」だけ大きい量子化パラメータＱＰの発生符号量を式（６）に基づいて算出する。なお、式（６）において、発生符号量が算出されている量子化パラメータＱＰが「Ｘp」であるときの発生符号量を「Ｙp」、量子化パラメータＱＰが「Ｘp」よりも「１」だけ大きい「Ｘp+1」のときの符号量を「Ｙp+1」とする。
Ｙp+1＝Ｙp×（１＋ＲＴ）    ・・・（６）
【０１２３】
このようにして、発生符号量が算出されている量子化パラメータＱＰよりも値の大きい量子化パラメータＱＰに対して式（６）に基づき順次符号量の算出を行う。例えば、量子化パラメータＱＰが「Ｘ1」よりも「１」だけ大きい「Ｘ2」であるときの発生符号量「Ｙ2」は、式（６）から「Ｙ2＝Ｙ1×Ｙ1／Ｙ0」となる。また、量子化パラメータＱＰが「Ｘ1」よりも「２」だけ大きい「Ｘ3」であるときの発生符号量「Ｙ3」は、式（６）から「Ｙ3＝Ｙ2×Ｙ1／Ｙ0」となる。
【０１２４】
その後、算出した符号量が目標符号量以下となったとき、このときの量子化パラメータＱＰを仮量子化パラメータＱＰ_precode1とする。例えば図１４では、量子化パラメータＱＰが「Ｘ4」のとき、算出した発生符号量が目標符号量以下となることから、このときの量子化パラメータＱＰである「Ｘ4」を仮量子化パラメータＱＰ_precode1に決定する。
【０１２５】
図１５は、増加率を用いた他の補間方法を示している。この補間処理は、第１プレエンコード部２０で算出された発生符号量よりも目標符号量が大きく、補間処理の基準点として用いる量子化パラメータＱＰ間の差が１の場合に用いられる処理である。また、例えば量子化パラメータＱＰが「Ｘ0」のときの発生符号量を「Ｙ0」、量子化パラメータＱＰが「Ｘ1」のときの発生符号量を「Ｙ1」とする。符号量制御部４０は、第１プレエンコード部２０で算出された発生符号量から変化率ＲＴを式（７）に基づいて算出する。
ＲＴ＝（Ｙ0−Ｙ1）／Ｙ1      ・・・（７）
【０１２６】
符号量制御部４０は、算出されている発生符号量と、式（７）で求めた変化率ＲＴから、この発生符号量が算出されている量子化パラメータＱＰよりも「１」だけ小さい量子化パラメータＱＰの発生符号量を式（８）に基づいて算出する。なお、式（８）において、発生符号量が算出されている量子化パラメータＱＰが「Ｘq」であるときの発生符号量を「Ｙq」、量子化パラメータＱＰが「Ｘq」よりも「１」だけ小さい「Ｘq-1」のときの発生符号量を「Ｙq-1」とする。
Ｙq-1＝Ｙq×（１＋ＲＴ）    ・・・（８）
【０１２７】
このようにして、発生符号量が算出されている量子化パラメータＱＰよりも値の小さい量子化パラメータＱＰに対して式（８）に基づき順次発生符号量の算出を行う。例えば、量子化パラメータＱＰが「Ｘ0」よりも「１」だけ小さい「Ｘ-1」であるときの発生符号量「Ｙ-1」は、式（８）から「Ｙ-1＝Ｙ0×Ｙ0／Ｙ1」となる。また、量子化パラメータＱＰが「Ｘ0」よりも「２」だけ小さい「Ｘ-2」であるときの発生符号量「Ｙ-2」は、式（８）から「Ｙ-2＝Ｙ-1×Ｙ0／Ｙ1」となる。
【０１２８】
その後、算出した発生符号量が目標符号量を超えて大きくなったとき、このときの量子化パラメータＱＰよりも「１」大きい値を仮量子化パラメータＱＰ_precode1とする。例えば図１５では、量子化パラメータＱＰが「Ｘ-3」のとき、算出した発生符号量が目標符号量を超えて大きくなることから、このときの量子化パラメータＱＰよりも「１」大きい値「Ｘ-2」を仮量子化パラメータＱＰ_precode1とする。
【０１２９】
次に、変化率の算出に用いた量子化パラメータの間隔が「１」よりも大きい場合について説明する。この場合、符号量制御部４０は、変化率の算出に用いた量子化パラメータの間隔で補間を行って得られた発生符号量を用いて、変化率の算出に用いた量子化パラメータの間隔内に位置する量子化パラメータの発生符号量を直線補間でもとめる。
【０１３０】
図１６は、量子化パラメータ間の差が１以外の場合における増加率を用いた補間方法を示す図である。なお、図１６では、第１プレエンコード部２０で算出された発生符号量よりも目標符号量が小さく、補間処理の基準点として用いる量子化パラメータ間の差が例えば「３」の場合を示している。
【０１３１】
ここで、量子化パラメータＱＰが「Ｘ0」のときの発生符号量を「Ｙ0」、量子化パラメータＱＰが「Ｘ3」のときの発生符号量を「Ｙ3」とする。符号量制御部４０は、第１プレエンコード部２０で算出された発生符号量から変化率ＲＴを式（９）に基づいて算出する。
ＲＴ＝（Ｙ3−Ｙ0）／Ｙ0      ・・・（９）
【０１３２】
符号量制御部４０は、算出されている発生符号量と、式（９）で求めた変化率ＲＴから、この発生符号量が算出されている量子化パラメータＱＰよりも「３」だけ大きい量子化パラメータＱＰの発生符号量を式（１０）に基づいて算出する。なお、式（１０）において、発生符号量が算出されている量子化パラメータＱＰが「Ｘp」であるときの発生符号量を「Ｙp」、量子化パラメータＱＰが「Ｘp」よりも「３」だけ大きい「Ｘp+3」であるときの発生符号量を「Ｙp+3」とする。
Ｙp+3＝Ｙp×（１＋ＲＴ）    ・・・（１０）
【０１３３】
このようにして、発生符号量が算出されている量子化パラメータＱＰよりも値の大きい量子化パラメータＱＰに対して式（１０）に基づき順次符号量の算出を、変化率の算出に用いた量子化パラメータの間隔で行う。例えば、量子化パラメータＱＰが「Ｘ3」よりも「３」だけ大きい「Ｘ6」であるのときの発生符号量「Ｙ6」は、式（１０）から「Ｙ6＝Ｙ3×Ｙ3／Ｙ0」となる。また、量子化パラメータＱＰが「Ｘ3」よりも「６」だけ大きい「Ｘ9」であるときの発生符号量「Ｙ9」は、式（１０）から「Ｙ9＝Ｙ6×Ｙ3／Ｙ0」となる。
【０１３４】
その後、算出した発生符号量が目標符号量以下となったとき、量子化パラメータＱＰが「Ｘr」と「３」だけ前の「Ｘr-3」であるときの発生符号量を用いて直線補間を行う。この直線補間によって、変化率の算出に用いた量子化パラメータの間隔内に位置する量子化パラメータＱＰが「Ｘr-1」「Ｘr-2」であるときの発生符号量「Ｙr-1」「Ｙr-2」を式（１１）（１２）によって算出する。
Ｙr-1＝（Ｙr−Ｙr-3）／（Ｘr−Ｘr-3）
×（Ｘr-1−Ｘr-3）＋Ｙr-3        ・・・（１１）
Ｙr-2＝（Ｙr−Ｙr-3）／（Ｘr−Ｘr-3）
×（Ｘr-2−Ｘr-3）＋Ｙr-3        ・・・（１２）
【０１３５】
符号量制御部４０は、算出した発生符号量「Ｙr-3」〜「Ｙr」の中で、目標符号量以下で最も目標符号量に近い発生符号量を判別して、この判別された発生符号量に対応する量子化パラメータＱＰを仮量子化パラメータＱＰ_precode1とする。例えば図１６において、発生符号量「Ｙr-3」は「Ｙ6」，「Ｙr」は「Ｙ9」に相当しており、符号量制御部４０は、「Ｘ8」を仮量子化パラメータＱＰ_precode1に決定する。
【０１３６】
図１７は、量子化パラメータ間の差が１以外の場合における増加率を用いた他の補間方法を示す図である。なお、図１７では、第１プレエンコード部２０で算出された発生符号量よりも目標符号量が大きく、補間処理の基準点として用いる量子化パラメータ間の差が例えば「３」の場合を示している。
【０１３７】
ここで、量子化パラメータＱＰが「Ｘ0」のときの発生符号量を「Ｙ0」、量子化パラメータＱＰが「Ｘ3」のときの発生符号量を「Ｙ3」とする。符号量制御部４０は、第１プレエンコード部２０で算出された発生符号量から変化率ＲＴを式（１３）に基づいて算出する。
ＲＴ＝（Ｙ0−Ｙ3）／Ｙ3      ・・・（１３）
【０１３８】
符号量制御部４０は、算出されている発生符号量と、式（１３）で求めた変化率ＲＴから、この発生符号量が算出されている量子化パラメータＱＰよりも「３」だけ小さい量子化パラメータＱＰの発生符号量を式（１４）に基づいて算出する。なお、式（１４）において、発生符号量が算出されている量子化パラメータＱＰが「Ｘq」であるときの発生符号量を「Ｙq」、量子化パラメータＱＰが「Ｘq」よりも「３」だけ小さい「Ｘq-3」であるときの発生符号量を「Ｙq-3」とする。
Ｙq-3＝Ｙq×（１＋ＲＴ）    ・・・（１４）
【０１３９】
このようにして、発生符号量が算出されている量子化パラメータＱＰよりも値の小さい量子化パラメータＱＰに対して式（１４）に基づき順次発生符号量の算出を、変化率の算出に用いた量子化パラメータの間隔で行う。例えば、量子化パラメータＱＰが「Ｘ0」よりも「３」だけ小さい「Ｘ-3」であるときの発生符号量「Ｙ-3」は、式（１４）から「Ｙ-3＝Ｙ0×Ｙ0／Ｙ3」となる。また、量子化パラメータＱＰが「Ｘ0」よりも「６」だけ小さい「Ｘ-6」であるときの発生符号量「Ｙ-6」は、式（１４）から「Ｙ-6＝Ｙ-3×Ｙ0／Ｙ3」となる。
【０１４０】
その後、算出した発生符号量が目標符号量を超えたとき、量子化パラメータＱＰが「Ｘs」と「３」だけ後の「Ｘs+3」であるときの発生符号量を用いて直線補間を行う。この直線補間によって、変化率の算出に用いた量子化パラメータの間隔内に位置する量子化パラメータＱＰが「Ｘs+1」「Ｘs+2」であるといきの発生符号量「Ｙs+1」「Ｙs+2」を式（１５）（１６）によって算出する。
Ｙs+1＝（Ｙs+3−Ｙs）／（Ｘs+3−Ｘs）
×（Ｘs+1−Ｘs）＋Ｙs          ・・・（１５）
Ｙs+2＝（Ｙs+3−Ｙs）／（Ｘs+3−Ｘs）
×（Ｘs+2−Ｘs）＋Ｙs          ・・・（１６）
【０１４１】
符号量制御部４０は、算出した発生符号量「Ｙs」〜「Ｙs+3」の中で、目標符号量以下で最も目標符号量に近い発生符号量を判別する。さらに、符号量制御部４０は、判別された発生符号量に対応する量子化パラメータＱＰを仮量子化パラメータＱＰ_precode1とする。例えば図１７において、発生符号量「Ｙs」は「Ｙ-3」、発生符号量「Ｙs+3」は「Ｙ0」に相当しており、符号量制御部４０は、「Ｘ-1」を仮量子化パラメータＱＰ_precode1に決定する。
【０１４２】
なお、量子化パラメータＱＰは、値が小さいとき量子化ステップの間隔が狭く、値が大きくなるとき量子化ステップの間隔が広くなる。また、画質の劣化を少なくするため転送レートが高められて目標符号量が大きくされると、所望の目標符号量とする符号化では量子化パラメータＱＰの値が小さくなる。したがって、第１プレエンコード部２０は、量子化パラメータＱＰの最小値を選択する量子化パラメータのなかに含めるようにする。例えば図５の黒丸印で示すように量子化パラメータを選択する。このようにすれば、量子化パラメータＱＰの値が大きい場合にのみ変化率を用いた補間が行われて、他の場合には二次曲線を用いた補間が行われる。したがって、従来の直線補間に比べて、仮量子化パラメータＱＰ_precode1を精度よく決定することが可能となる。
【０１４３】
＜８．最適量子化パラメータの決定処理＞
符号量制御部４０は、第２プレエンコード部２０でプレエンコードを行って得られた発生符号量を目標符号量と比較して、目標符号量に対応する最適量子化パラメータＱＰ_precode2を決定する。
【０１４４】
ここで、仮量子化パラメータＱＰ_precode1の発生符号量を「Generated_bits（ＱＰ_precode1）」、ＱＰ_precode1−１の発生符号量を「Generated_bits（ＱＰ_precode1−１）」，ＱＰ_precode1＋１の発生符号量を「Generated_bits（ＱＰ_precode1＋１）」とする。また、目標符号量を「Target_bits」とする。
【０１４５】
Generated_bits（ＱＰ_precode1＋１）＜＝Target_bits＜＝Generated_bits（ＱＰ_precode1−１）の場合、発生符号量が目標符号量以下で最も目標符号量に近くなる量子化パラメータＱＰを、最適量子化パラメータＱＰ_precode2とする。
【０１４６】
そうでない場合、以下のように、符号量制御部４０は、量子化パラメータＱＰの変化に対する発生符合量の変化率を、第２のプレエンコードの結果から求める。ここで、量子化パラメータＱＰの値が近い場合、変化率は略一定であると考え、各量子化パラメータＱＰでの発生符号量を予測し、発生符号量が目標符号量以下で最も目標符号量に近くなる量子化パラメータＱＰを、最適量子化パラメータＱＰ_precode2に決定する。
【０１４７】
まず、量子化パラメータＱＰが「１」変わる毎に、発生符号量が何％変わるかを第２のプレエンコードの結果から式（１７）（１８）（１９）のようにして求める。
DiffRatio_1＝(Generated_bits(QP_precode1−１)−Generated_bits(QP_precode1))
／Generated_bits(QP_precode1)        ・・・（１７）
DiffRatio_2＝(Generated_bits(QP_precode1)−Generated_bits(QP_precode1＋１))
／Generated_bits(QP_precode1＋１)    ・・・（１８）
DiffRatio  ＝(DiffRatio_1＋DiffRatio_2)／2           ・・・（１９）
【０１４８】
次に、発生符号量の変化率  DiffRatioを用いて、発生符号量を求める。ここで、DeltaQpを、求める量子化パラメータＱＰと仮量子化パラメータＱＰ_precode1との差の絶対値とすると、量子化パラメータＱＰが仮量子化パラメータＱＰ_precode1より小さいとき、発生符号量は式（２０）から求める。
Generated_bits(QP)＝Generated_bits(QP_precode1−１)
×(1.0＋DiffRatio)^(DeltaQp-1)  ・・・（２０）
【０１４９】
量子化パラメータＱＰが仮量子化パラメータＱＰ_precode1より大きいとき、発生符号量は式（２１）から求める。
Generated_bits(QP)＝Generated_bits(QP_precode1＋１)
×(1.0−DiffRatio)^(DeltaQp-1)  ・・・（２１）
【０１５０】
このようにして、符号量制御部４０は、目標符号量に最も近い量子化パラメータＱＰを本エンコードで使う最適量子化パラメータＱＰ_precode2に決定する。
【０１５１】
以上のように、この発明では、第１及び第２プレエンコード部で量子化と符号長計算部のみ並列に行い、他の処理要素は共用することで、回路規模を削減できる。また、第１のプレエンコードでは、精度を落として回路規模並びに処理負荷を抑えた並列プレエンコードを広い範囲の量子化パラメータＱＰで行い、目標符号量を実現する基本量子化パラメータを粗く見積もる。第２のプレエンコードでは、精度を上げた並列プレエンコードを狭い範囲で行い、本エンコードで使用する基本量子化パラメータを決定する。このようにすれば、画像符号化の精度を上げつつ処理負荷を軽減できる。
【０１５２】
さらに、基本量子化パラメータを粗く見積もる処理では、第１のプレエンコードで選択された量子化パラメータにおける発生符号量から、間引かれている量子化パラメータにおける発生符号量が補間処理によって算出される。また、補間処理で用いる補間方法が発生符号量を算出する量子化パラメータの位置に応じて切り替えられる。このため、一つの補間方法で補間処理を行う場合に比べて補間処理の精度が高めることができる。すなわち、粗く見積もった基本量子化パラメータである仮量子化パラメータＱＰ_precode1の精度が高くなり、本エンコードに用いる基本量子化パラメータを最適な量子化パラメータとすることができる。
【０１５３】
したがって、１ピクチャに与えられた目標符号量に、画面内フィードバック制御を行わずに発生符号量を合わせ込むことが可能になる。これにより、フィードバックパラメータの不適切な初期値による弊害や、不適切な目標符号量配分など、フィードバック制御の問題を取り除くことが可能になる。その結果、目標符合量に発生符号量を一致させ、視覚特性を考慮した符号量配分、つまり量子化パラメータの決定が可能となる。
【０１５４】
また、この発明の画像符号化装置及び画像符号化方法を、コンピュータ装置で実現するようにしてもよい。この場合、コンピュータ装置を画像符号化装置のように機能させるコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供できるようにする。例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によってコンピュータ・プログラムと提供できるようにする。このようにコンピュータ・プログラムをコンピュータ可読な形式で提供することにより、コンピュータ装置上でコンピュータ・プログラムに応じた処理が行われて、上述した画像符号化装置の動作や画像符号化方法を実現することが可能となる。
【０１５５】
さらに、この発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態でこの発明を開示しており、この発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、この発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【０１５６】
この発明の画像符号化装置と画像符号化方法では、第１の範囲内の量子化パラメータを離散的に選択して、この選択した量子化パラメータにおける発生符号量の算出が並列して行われる。また、選択されていない量子化パラメータについて補間処理により発生符号量を算出して、選択した量子化パラメータにおける発生符号量と補間により算出した発生符号量を目標符号量と比較して目標符号量に対応する仮量子化パラメータが決定される。この補間処理では、補間処理によって発生符号量を算出する量子化パラメータの位置に応じて補間方法が切り替えられる。さらに、第１の範囲よりも狭い範囲であって、仮量子化パラメータを基準とした第２の範囲の量子化パラメータにおける発生符号量の算出が並列して行われて、第２の範囲の量子化パラメータにおける発生符号量と目標符号量との比較から目標符号量に対応する最適量子化パラメータが決定される。この最適量子化パラメータを用いて画像を符号化が行われる。
【０１５７】
このように、補間処理によって発生符号量を算出する量子化パラメータの位置に応じて補間方法が切り替えられることから、補間による発生符号量の予測精度を高めることが可能となり、１ピクチャに与えられた目標符号量に、画面内フィードバック制御を行わずに発生符号量を合わせ込むことを容易に行うことができる。したがって、画像を記録する電子機器例えばビデオカメラやレコーダ、画像編集装置等に好適である。
【符号の説明】
【０１５８】
１０・・・画像符号化装置、１５，１６・・・ディレイバッファ、２０・・・第１プレエンコード部、２１・・・画面内予測モード決定部、２２，５１・・・画面内予測処理部、２３，３２，５２・・・ＤＣＴ部、２４，２４-1〜２４-n，３３，３３-1〜３３-3，５３・・・量子化部、２５，２５-1〜２５-n，３４，３４-1〜３４-3・・・符号長計算部、２６・・・アクティビティ計算部、３０・・・第２プレエンコード部、３１・・・画面内予測処理部、３５，５５・・・逆量子化部、３６，５６・・・ＩＤＣＴ部、３７，５７・・・バッファ、４０・・・符号量制御部、５０・・・エンコード部、５４・・・エントロピー符号化部
【図１】
2010252083.tif 000003
【図２】
2010252083.tif 000004
【図３】
2010252083.tif 000005
【図４】
2010252083.tif 000006
【図５】
2010252083.tif 000007
【図６】
2010252083.tif 000008
【図８】
2010252083.tif 000009
【図９】
2010252083.tif 000010
【図１０】
2010252083.tif 000011
【図１１】
2010252083.tif 000012
【図１２】
2010252083.tif 000013
【図１３】
2010252083.tif 000014
【図１４】
2010252083.tif 000015
【図１５】
2010252083.tif 000016
【図１６】
2010252083.tif 000017
【図１７】
2010252083.tif 000018
【図７】
2010252083.tif 000019