(57)【特許請求の範囲】
【請求項１】
各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、各ピクチャの目標符号量を記憶する目標符号量記憶手段とを備え、映像符号化において映像を構成する各ピクチャの前記目標符号量を算出する符号量算出装置が行う符号量算出方法であって、
前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算ステップと、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算ステップと、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算ステップと、
前記第１のコストと、前記第２のコストとを加算して合計コストを求める合計コスト算出ステップと、
前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作ステップと、
先頭ピクチャから最終ピクチャまでのピクチャに対して、前記加減操作ステップの動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御ステップと、
前記修正制御ステップにより、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出ステップにより求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力ステップと
を有する符号量算出方法。
【請求項２】
各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、各ピクチャの目標符号量を記憶する目標符号量記憶手段とを備え、映像符号化において映像を構成する各ピクチャの前記目標符号量を算出する符号量算出装置が行う符号量算出方法であって、
前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算ステップと、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算ステップと、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算ステップと、
前記第１のコストに対して第１の係数を乗算した結果と、前記第２のコストに対して第２の係数を乗算した結果とを加算して合計コストを求める合計コスト算出ステップと、
前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作ステップと、
先頭ピクチャから最終ピクチャまでのピクチャに対して、前記第１の係数と前記第２の係数の値を変化させるとともに、前記加減操作ステップの動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御ステップと、
前記修正制御ステップにより、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出ステップにより求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力ステップと
を有する符号量算出方法。
【請求項３】
映像符号化において映像を構成する各ピクチャの目標符号量を算出する符号量算出装置であって、
各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、
各ピクチャの目標符号量を記憶する目標符号量記憶手段と、
前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算手段と、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算手段と、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算手段と、
前記第１のコストと、前記第２のコストとを加算して合計コストを求める合計コスト算出手段と、
前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作手段と、
先頭ピクチャから最終ピクチャまでのピクチャに対して、前記加減操作手段の動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御手段と、
前記修正制御手段により、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出手段により求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力手段と
を備える符号量算出装置。
【請求項４】
映像符号化において映像を構成する各ピクチャの目標符号量を算出する符号量算出装置であって、
各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、
各ピクチャの目標符号量を記憶する目標符号量記憶手段と、
前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算手段と、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算手段と、
前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算手段と、
前記第１のコストに対して第１の係数を乗算した結果と、前記第２のコストに対して第２の係数を乗算した結果とを加算して合計コストを求める合計コスト算出手段と、
前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作手段と、
先頭ピクチャから最終ピクチャまでのピクチャに対して、前記第１の係数と前記第２の係数の値を変化させるとともに、前記加減操作手段の動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御手段と、
前記修正制御手段により、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出手段により求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力手段と
を備える符号量算出装置。
【請求項５】
請求項１または２に記載の符号量算出方法をコンピュータに実行させるための符号量算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化の符号量割り当てにおいて、目標となる符号量を算出する符号量算出方法、符号量算出装置及び符号量算出プログラムに関する。
【背景技術】
【０００２】
映像の符号化では、映像を２回符号化する「２パス符号化」と呼ばれる技術が存在する。これは、１回目の符号化（１パス）で符号化対象である映像の複雑さを計測し、各ピクチャへの符号量配分を適切に決定した後に２回目の符号化（２パス）を行うことで高品位な符号化を実現する手法である。
【０００３】
非特許文献１では、２パス符号化の目標符号量算出の際、まず複雑度に比例させる形で各ピクチャに目標符号量を割り当てた後、その目標符号量からバッファの占有量推移を推定し、占有量がオーバーフロー又はアンダーフローを起こす場合には補正する方法を提案している。
【０００４】
非特許文献１におけるバッファはデコーダの受信バッファを指しており、ｊ（ｊは自然数）番目ピクチャ復号時点のバッファ占有量Ｂ［ｊ］を以下の式で表している。
Ｂ［ｊ］＝Ｂ［ｊ−１］−Ｔ［ｊ］＋Ｒｆｒａｍｅ
ここでＴ［ｊ］はｊ番目ピクチャの目標符号量、ＲｆｒａｍｅはビットレートＲから計算される１ピクチャ当たりの割り当て符号量である。
【０００５】
例えば固定ビットレートの場合はビットレートＲをフレームレートｆｒａｍｅ＿ｒａｔｅで割った固定値であり、
Ｒｆｒａｍｅ＝Ｒ／ｆｒａｍｅ＿ｒａｔｅ
で求められる。バッファは、１ピクチャ復号する度にその符号量Ｔ［ｊ］分だけ占有量が下降し、Ｒｆｒａｍｅだけ上昇することになる。
【０００６】
なお、バッファ占有量の初期値はＢ［０］＝Ｂ＿ｉｎｉｔとする。バッファには上限値があり、これをＢ＿ｓｉｚｅとすると、全てのｊについてＢ［ｊ］は
０≦Ｂ［ｊ］≦Ｂ＿ｓｉｚｅ
を満たす必要がある。
【０００７】
Ｂ［ｊ］がこの制約を逸脱した場合はバッファ制約違反となり、もしＢ［ｊ］＜０となった場合はアンダーフロー、Ｂ＿ｓｉｚｅ＜Ｂ［ｊ］となった場合はオーバーフローと呼ばれる。アンダーフローは、それまでの各ピクチャの目標符号量累積値が多かったことに起因する。これを是正するには、アンダーフロー以前のピクチャの目標符号量を減らす必要がある。オーバーフローはこの逆となる。
【０００８】
非特許文献１では、各ピクチャに目標符号量を割り当てた後、その割り当てた目標符号量に対してバッファの占有量推移Ｂ［ｊ］を算出し、アンダーフロー又はオーバーフローがあった場合は以下のような方法によって修正している。
【０００９】
まずアンダーフローの場合、バッファ占有量が最小値Ｂ＿ｍｉｎを取るピクチャｊ＿ｍｉｎを探し、このピクチャｊ＿ｍｉｎより前のピクチャの目標符号量を削減し、削減した分の符号量をピクチャｊ＿ｍｉｎより後ろのピクチャへと割り当てる。
【００１０】
一方オーバーフローの場合はその逆で、バッファ占有量が最大値Ｂ＿ｍａｘを取るピクチャｊ＿ｍａｘを探し、このピクチャｊ＿ｍａｘより前のピクチャの目標符号量を増やし、増やした分の符号量をピクチャｊ＿ｍａｘより後ろのピクチャの目標符号量から削減する。
【００１１】
この操作によって他のピクチャがオーバーフローもしくはアンダーフローとなった場合は前述の処理を再度適用していくことで、バッファ制約に準拠した割り当て符号量を求めることができる。
【００１２】
ここで、可変ビットレートに関して、予め全ピクチャの割り当て符号量を決定するケースを考える。この場合、前述の固定ビットレートとはバッファの制約条件が異なってくる。可変ビットレートの場合、１ピクチャ当たりの割り当て符号量Ｒｆｒａｍｅが可変となる。例えば最大ビットレートをＲ＿ｍａｘとすると、Ｒｆｒａｍｅの値域は以下の範囲となる。
０≦Ｒｆｒａｍｅ≦Ｒ＿ｍａｘ／ｆｒａｍｅ＿ｒａｔｅ
Ｒｆｒａｍｅは０も取り得るため、可変ビットレートの場合はオーバーフローを考慮しなくてよい。
【００１３】
このことから、ｊ番目ピクチャ符号化時点のバッファ占有量Ｂ［ｊ］は、
Ｒｆｒａｍｅ＿ｍａｘ＝Ｒ＿ｍａｘ／ｆｒａｍｅ＿ｒａｔｅ
と置くと以下のような式から推定できる。
Ｂ［ｊ］＝ＣＬＩＰ（Ｂ［ｊ−１］−Ｔ［ｊ］＋Ｒｆｒａｍｅ＿ｍａｘ，Ｂ＿ｓｉｚｅ） …（式Ａ）
ここでＣＬＩＰ（Ａ，Ｂ）はＡをＢ以下でクリップする関数である。
【００１４】
以上のことから、可変ビットレートではバッファの制約条件としてアンダーフローだけを是正すればよい。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】Yutaka Yokoyama他, "A Rate Control Method with Pre-Analysis for Real-Time MPEG-2 Video Coding," IEEE CNF, vol.3, pp.514-517, 7-10 Oct. 2001
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、従来技術にあっては、適切に是正することが困難となるケースがある。例えば、（式Ａ）に従ってバッファ占有量推移を求めた結果、ｋ番目ピクチャでアンダーフローが起こったとする。固定ビットレートと同様、可変ビットレートにおいても、アンダーフローの発生要因はアンダーフロー発生個所より前に位置する各ピクチャの目標符号量累積値が多いことによる。
【００１７】
従って従来技術にならえば、ｋ番目ピクチャ以前のピクチャの目標符号量を削減し、この削減分をｋ＋１番目以降のピクチャの目標符号量に加算することで是正できる。しかし、この結果、ｋ＋１番目以降のピクチャについて、目標符号量の割り当てが増えたことで新たにアンダーフローが発生する可能性がある。
【００１８】
仮に新たなアンダーフロー発生個所をｍ番目ピクチャ（ｋ＜ｍ）とすると、ｋ番目と同様、ｍ番目ピクチャ以前の目標符号量を削ってアンダーフローを是正し、削減分をｍ＋１番目以降のピクチャの目標符号量に加算することになる。しかし、この操作により、ｍ＋１番目以降のピクチャの目標符号量が更に加算されるため、ｍ＋１番目以降のピクチャで新たなアンダーフローが発生する可能性が更に高まる。
【００１９】
この操作を反復していくと、映像の前半に位置するピクチャでは目標符号量が削減され続ける一方、映像の後半に位置するピクチャでは是正の度に目標符号量が加算され続ける。その結果、いずれは後半のピクチャにおいて１ピクチャ当たりの目標符号量がバッファサイズＢ＿ｓｉｚｅを超えるようになり、それ以上是正することができなくなる問題が発生する可能性がある。
【００２０】
このように可変ビットレートの割り当て符号量を予め算出する場合、目標のファイルサイズを満たしつつ、バッファの制約条件を守るような目標符号量の割り当てを行うことが非常に困難という問題がある。
【００２１】
本発明は、このような事情に鑑みてなされたもので、与えられた複数の制約条件に適合した符号量を算出することができる符号量算出方法、符号量算出装置及び符号量算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明の一態様は、各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、各ピクチャの目標符号量を記憶する目標符号量記憶手段とを備え、映像符号化において映像を構成する各ピクチャの前記目標符号量を算出する符号量算出装置が行う符号量算出方法であって、前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算ステップと、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算ステップと、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算ステップと、前記第１のコストと、前記第２のコストとを加算して合計コストを求める合計コスト算出ステップと、前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作ステップと、先頭ピクチャから最終ピクチャまでのピクチャに対して、前記加減操作ステップの動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御ステップと、前記修正制御ステップにより、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出ステップにより求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力ステップとを有する符号量算出方法である。
【００２３】
本発明の一態様は、各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、各ピクチャの目標符号量を記憶する目標符号量記憶手段とを備え、映像符号化において映像を構成する各ピクチャの前記目標符号量を算出する符号量算出装置が行う符号量算出方法であって、前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算ステップと、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算ステップと、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算ステップと、前記第１のコストに対して第１の係数を乗算した結果と、前記第２のコストに対して第２の係数を乗算した結果とを加算して合計コストを求める合計コスト算出ステップと、前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作ステップと、先頭ピクチャから最終ピクチャまでのピクチャに対して、前記第１の係数と前記第２の係数の値を変化させるとともに、前記加減操作ステップの動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御ステップと、前記修正制御ステップにより、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出ステップにより求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力ステップとを有する符号量算出方法である。
【００２４】
本発明の一態様は、映像符号化において映像を構成する各ピクチャの目標符号量を算出する符号量算出装置であって、各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、各ピクチャの目標符号量を記憶する目標符号量記憶手段と、前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算手段と、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算手段と、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算手段と、前記第１のコストと、前記第２のコストとを加算して合計コストを求める合計コスト算出手段と、前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作手段と、先頭ピクチャから最終ピクチャまでのピクチャに対して、前記加減操作手段の動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御手段と、前記修正制御手段により、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出手段により求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力手段とを備える符号量算出装置である。
【００２５】
本発明の一態様は、映像符号化において映像を構成する各ピクチャの目標符号量を算出する符号量算出装置であって、各ピクチャの量子化パラメータを記憶する量子化幅記憶手段と、各ピクチャの目標符号量を記憶する目標符号量記憶手段と、前記量子化幅記憶手段に記憶されている前記量子化パラメータと、符号化結果の情報とに基づいて、前記目標符号量を計算し、前記目標符号量記憶手段に記憶する符号量計算手段と、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量の合計値と、外部から与えられた目標ファイルサイズとから第１のコストを計算する第１コスト計算手段と、前記目標符号量記憶手段に記憶されている各ピクチャの前記目標符号量と外部から与えられるバッファサイズとから算出した各ピクチャのバッファ占有量と、所定の閾値とから第２のコストを計算する第２コスト計算手段と、前記第１のコストに対して第１の係数を乗算した結果と、前記第２のコストに対して第２の係数を乗算した結果とを加算して合計コストを求める合計コスト算出手段と、前記量子化幅記憶手段に記憶されている前記量子化パラメータの加算操作または減算操作を行う加減操作手段と、先頭ピクチャから最終ピクチャまでのピクチャに対して、前記第１の係数と前記第２の係数の値を変化させるとともに、前記加減操作手段の動作を制御して、前記量子化パラメータを増加させた場合の第１の合計コストと前記量子化パラメータを減少させた場合の第２の合計コストを求め、前記量子化パラメータを増減させていない場合の第３の合計コストとの比較を行い、前記第１の合計コスト、前記第２の合計コスト及び前記第３の合計コストのうち、合計コストが最小となる量子化パラメータを対象ピクチャの量子化パラメータに設定する修正制御手段と、前記修正制御手段により、繰り返し各ピクチャの量子化パラメータの設定を行い、前記合計コスト算出手段により求められた前記合計コストが所定の値になった時点の前記目標符号量記憶手段に記憶されている前記目標符号量を出力する符号量出力手段とを備える符号量算出装置である。
【００２６】
本発明の一態様は、前記符号量算出方法をコンピュータに実行させるための符号量算出プログラムである。
【発明の効果】
【００２７】
本発明によれば、各ピクチャについて、与えられた複数の制約条件に適合した目標符号量を算出することができるという効果が得られる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示す符号量算出装置における符号量割り当て処理の動作を示すフローチャートである。
【図３】図２に示すステップＳ３（合計コストを計算するステップ）の詳細な処理動作を示すフローチャートである。
【図４】合計コストを算出する処理動作を示すフローチャートである。
【図５】図１に示す符号量算出装置の変形例の構成を示すブロック図である。
【図６】図５に示す符号量算出装置の処理動作を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、図面を参照して、本発明の一実施形態による符号量算出装置を説明する。始めに本発明の動作原理について説明する。本実施形態による符号量算出装置は、１パス目符号化結果から求まる統計量である各ピクチャの量子化幅と発生符号量を用いて量子化幅を調整しながら各ピクチャの目標符号量を与えられた初期値から変更する。そして、各ピクチャの目標符号量に関連する制約条件との乖離度と各ピクチャのバッファ占有量に関する制約条件との乖離度をコストとして用いた所定のコストの増減を確認しながら各ピクチャの量子化幅もしくは目標符号量を調整する。
【００３０】
２つのコストはいずれも、制約条件からの乖離が大きいほど値が大きくなり、逆に制約条件を満たしている時は０となるものである。各ピクチャの割り当て符号量に関連する制約条件との乖離度をコストとして計算する手段としては、例えば各ピクチャに割り当てた目標符号量の総和Ｔｓｕｍ  と、目標ファイルサイズＴｔａｒの差分絶対値｜Ｔｓｕｍ−Ｔｔａｒ｜をコストとしてもよい。その際、例えば当該差分絶対値が予め定められた閾値Ｔｈ１以下であれば当該コストを０にクリップする機構を設けてもよい。
【００３１】
各ピクチャのバッファ占有量に関する制約条件との乖離度をコストとして計算する手段としては、例えば各ピクチャのバッファ占有量推定値のうち、その値が閾値Ｔｈ２以下となっているものについて、閾値を下回った占有量推定値のシーケンス総和
ΣＣＬＩＰ０（Ｔｈ２−Ｂ［ｊ］）…（式Ｂ）
をコストとしてもよい。ここでＣＬＩＰ０（ｘ）はｘを０以上にクリップする関数とする。
【００３２】
また、固定ビットレートへの適用を鑑み、オーバーフローの回避もコストに加味してもよい。この場合は、各ピクチャのバッファ占有量推定値のうち、その値が閾値Ｔｈ３以上となっているものについて、その閾値を超えた占有量推定値のシーケンス総和
ΣＣＬＩＰ０（Ｂ［ｊ］−Ｔｈ３）
を上記の（式Ｂ）に加算したものをコストとしてもよい。
【００３３】
次に、図１を参照して、前述した動作原理に基づく符号量算出装置の構成を説明する。図１は同実施形態の構成を示すブロック図である。符号量算出装置は、統計量保存メモリ１、初期値設定部２、量子化幅保存メモリ３、符号量計算部４、目標符号量保存メモリ５、総符号量計算部６、Ｃｏｓｔ１計算部７、バッファ計算部８、バッファ占有量保存メモリ９、Ｃｏｓｔ２計算部１０、２つの乗算部１１、１２、加算部１３、修正制御部１４、量子化幅加算操作部１５、量子化幅減算操作部１６、終了判定部１７、スイッチ１８から構成される。
【００３４】
統計量保存メモリ１は、１パス目の符号化結果のうち、各ピクチャの量子化ステップと発生符号量を保持する。初期値設定部２は、統計量が保存されたことをトリガとし、全フレームの量子化幅の初期値を決定して量子化幅保存メモリ３に格納する。
【００３５】
量子化幅保存メモリ３は、各ピクチャの量子化パラメータＱＰを保持する。また、量子化幅加算操作部１５からの指示に従い、指定されたピクチャのＱＰを加算する。もしくは量子化幅減算操作部１６からの指示に従い、指定されたピクチャのＱＰを減算する。
【００３６】
符号量計算部４は、量子化幅保存メモリ３から送られる量子化パラメータと、統計量保存メモリ１に保存されている１パス目符号化結果を元に、所定の計算に従って各ピクチャの目標符号量を計算し、目標符号量保存メモリ５に格納する。
【００３７】
目標符号量保存メモリ５は、符号量計算部４から送られる各ピクチャの符号量を保持し、また保持している値をスイッチ１８、総符号量計算部６、バッファ計算部８に送る。総符号量計算部６は、目標符号量保存メモリ５に格納されている各ピクチャの目標符号量の合計値を算出し、総符号量としてＣｏｓｔ１計算部７に送る。
【００３８】
Ｃｏｓｔ１計算部７は、総符号量計算部６から送られる総符号量と、外部から与えられる目標ファイルサイズを元にＣｏｓｔ１を計算し、乗算部１１に送る。バッファ計算部８は、目標符号量保存メモリ５で保持している各ピクチャの目標符号量と、外部から与えられるバッファサイズとから各ピクチャのバッファ占有量を計算する。
【００３９】
バッファ占有量保存メモリ９は、バッファ計算部８から送られる全ピクチャのバッファ占有量を保持し、Ｃｏｓｔ２計算部１０に送る。Ｃｏｓｔ２計算部１０は、バッファ占有量保存メモリ９から送られる各ピクチャのバッファ占有量と予め定められた閾値Ｔｈから後述する式２に従ってＣｏｓｔ２を計算し、乗算部１２に送る。
【００４０】
２つの乗算部１１、１２では、それぞれＣｏｓｔ１と固定値Ａ１の積、およびＣｏｓｔ２と固定値Ａ２の積を計算し、加算部１３に送る。加算部１３は、２つの乗算部１１、１２から送られる結果の和を取って合計コストＣｏｓｔを求め、修正制御部１４と終了判定部１７に送る。
【００４１】
修正制御部１４は、先頭ピクチャから順に量子化幅加算操作部１５および量子化幅減算操作部１６に量子化パラメータＱＰの加算、減算を指示して当該ピクチャの量子化パラメータＱＰを±１した時のＣｏｓｔ（０）、Ｃｏｓｔ（−１）、Ｃｏｓｔ（＋１）を求め、合計コストが最小となる量子化パラメータＱＰに更新する、という処理を最終ピクチャまで行う。もし最終ピクチャ処理終了時点で合計コストが０にならなかった場合には、また先頭ピクチャから順に量子化パラメータＱＰを調整する処理を繰り返す。
【００４２】
量子化幅加算操作部１５は、修正制御部１４から送られる制御信号に従い、処理対象ピクチャの量子化パラメータＱＰを加算して量子化幅保存メモリ３に保存する。量子化幅減算操作部１６は、修正制御部１４から送られる制御信号に従い、処理対象ピクチャの量子化パラメータＱＰを減算して量子化幅保存メモリ３に保存する。
【００４３】
終了判定部１７は、加算部１３から送られる合計コストをチェックし、合計コストが０になったらスイッチ１８に対してＯＮするよう指示を送る。スイッチ１８は、処理開始状態ではＯＦＦとし、終了判定部１７からの指示が来たらＯＮにして目標符号量保存メモリ５に保存されている目標符号量を出力する。
【００４４】
本実施形態では、可変ビットレートの符号化において、目標ファイルサイズとバッファ制約条件を守るように各ピクチャの目標符号量を定めるものとする。なお、フレームレートをｆｒａｍｅ＿ｒａｔｅ、バッファサイズをＢ＿ｓｉｚｅ、最大ビットレートをＲ＿ｍａｘと置く。
【００４５】
次に、コストの算出方法を説明する。まず目標ファイルサイズに関するコストＣｏｓｔ１を定義する。制約として目標ファイルサイズがＴｔａｒ、誤差が±Ｔｍｉｎ以下とするならば、Ｃｏｓｔ１は各ピクチャの目標符号量の総和Ｔｓｕｍと目標ファイルサイズＴｔａｒの差分絶対値と置き、またその差分絶対値が閾値Ｔｍｉｎ以下の場合にはＣｏｓｔ１は０とみなすものとする。
Ｃｏｓｔ１＝｜Ｔｓｕｍ−Ｔｔａｒ｜（ｉｆ  ｜Ｔｓｕｍ−Ｔｔａｒ｜＞Ｔｍｉｎ）
Ｃｏｓｔ１＝０（ｉｆ  ｜Ｔｓｕｍ−Ｔｔａｒ｜≦Ｔｍｉｎ）  …（式１）
【００４６】
次に２つ目のバッファアンダーフローに関するコストＣｏｓｔ２の定義は、閾値Ｔｈを用いて以下の通りとする。ここでＢ［ｊ］はj番目ピクチャのバッファ占有量を意味する。
Ｃｏｓｔ２＝ΣＣＬＩＰ０（Ｔｈ−Ｂ［ｊ］）  …（式２）
【００４７】
本実施形態では、これら２つのコストＣｏｓｔ１、Ｃｏｓｔ２に予め定めた正の定数Ａ１、Ａ２を掛けて線形結合した合計コストＣｏｓｔ＝Ａ１×Ｃｏｓｔ１＋Ａ２×Ｃｏｓｔ２を求め、この合計コストＣｏｓｔの増減を評価する。
【００４８】
次に、目標符号量と量子化幅の関係を説明する。１パス目の符号化で取得する統計量は各ピクチャの量子化幅と発生符号量の２つとし、両者には反比例の関係があるものとする。即ち、ｉ番目ピクチャの１パス目の量子化幅をＱｓｔｅｐ１（ｉ）、その時の発生符号量をＧ１（ｉ）と置くと、当該ピクチャの量子化幅をＱｓｔｅｐ０とした場合の目標符号量Ｇ０（ｉ）は、Ｇ０（ｉ）＝Ｑｓｔｅｐ１（ｉ）×Ｇ１（ｉ）÷Ｑｓｔｅｐ０で求まる。勿論、符号化規格の性質などによってはこの関係式について非線形関数などを用いてもよい。
【００４９】
なお、量子化幅については予め規格によって定められた離散的な有限個の値のみが取れるものとし、以降ではこの有限個の離散値に対して小さいものから順に０、１、…と番号を振った「量子化パラメータ」（＝ＱＰ）で説明する。また、本実施形態における各ピクチャの目標符号量の調整は、各ピクチャの量子化パラメータＱＰを調整することで間接的に行う。
【００５０】
次に、図２を参照して、符号量割り当て処理の動作を説明する。図２は、図１に示す符号量算出装置における符号量割り当て処理の動作を示すフローチャートである。
【００５１】
まず、処理が始まると、まず図示しない符号化部が１パス目の符号化を行い、各ピクチャに関して符号化に使用した量子化パラメータＱＰと発生符号量Ｇを統計量として求め、統計量保存メモリ１に保存する（ステップＳ１）。次に、初期値設定部２は、予め定めた量子化パラメータの固定値ＱＰ０を全ピクチャの初期ＱＰとして量子化幅保存メモリ３に保存する（ステップＳ２）。
【００５２】
次に、修正制御部１４が全ピクチャの量子化パラメータＱＰを調整しながら、加算部１３によって合計コストＣｏｓｔを計算する（ステップＳ３）。終了判定部１７は、最終ピクチャまで処理が終わった時点での合計コストＣｏｓｔが０になっているか判定する（ステップＳ４）。
【００５３】
この判定の結果、０になっていない場合、もう一度最初のピクチャから量子化パラメータＱＰを±１して合計コストＣｏｓｔを算出する処理を反復して行う（ステップＳ３）。そして、終了判定部１７は、合計コストＣｏｓｔが０になった時点で、スイッチ１８をＯＮにして、その時に目標符号量保存メモリ５に保持していた目標符号量Ｇ０（ｊ）を出力して終了する（ステップＳ５）。
【００５４】
次に、図３を参照して、図２に示すステップＳ３（合計コストを計算するステップ）の詳細な処理動作を説明する。図３は、図２に示すステップＳ３（合計コストを計算するステップ）の詳細な処理動作を示すフローチャートである。
【００５５】
まず、処理対象ピクチャｉを０と置く（ステップＳ３１）。続いて、修正制御部１４は、加算部１３において算出した現時点の合計コストを変数Ｃｏｓｔ（０）に格納する（ステップＳ３２）。合計コストは、後述する処理に従って全ピクチャの目標符号量計算、Ｃｏｓｔ１計算、全ピクチャのバッファ占有量計算、Ｃｏｓｔ２計算を行って、加算部１３が計算する。
【００５６】
次に、修正制御部１４は、量子化幅減算操作部１６に対して、i番目ピクチャの量子化パラメータＱＰを−１にする指示を出す。これを受けて、量子化幅減算操作部１６は、ｉ番目ピクチャの量子化パラメータＱＰを−１にして量子化幅保存メモリ３に保存する。加算部１３は、このときの合計コストを算出する（ステップＳ３３）。これは、ｉ番目ピクチャの量子化パラメータＱＰだけ現時点で保持している値から−１し、それ以外のピクチャの量子化パラメータはそのままの状態で、後述する処理に従って全ピクチャの目標符号量計算、Ｃｏｓｔ１計算、全ピクチャのバッファ占有量計算、Ｃｏｓｔ２計算を行って、加算部１３は、合計コストＣｏｓｔを算出する。修正制御部１４は、この合計コストＣｏｓｔを変数Ｃｏｓｔ（−１）に格納する。Ｃｏｓｔ（−１）計算後、i番目ピクチャの量子化パラメータを−１した値から元に戻す。
【００５７】
次に、ｉ番目ピクチャの量子化パラメータＱＰを＋１した場合についても−１する場合と同様に加算部１３は、合計コストＣｏｓｔの計算を行う。修正制御部１４は、この合計Ｃｏｓｔを、変数Ｃｏｓｔ（＋１）に保管する（ステップＳ３４）。Ｃｏｓｔ（＋１）計算後、i番目ピクチャの量子化パラメータを＋１した値から元に戻す。
【００５８】
次に、修正制御部１４は、求めた合計コストＣｏｓｔを格納した変数Ｃｏｓｔ（０）、Ｃｏｓｔ（−１）、Ｃｏｓｔ（＋１）について比較を行い、最も小さいパターンを選択する（ステップＳ３５）。ここで、もし、最小となる合計コストが複数存在する場合には、i番目ピクチャのＱＰがより小さいものを選択する。この比較の結果、変数Ｃｏｓｔ（−１）の合計コストが最小だった場合には、現在保持しているｉ番目ピクチャに関する量子化パラメータＱＰを現在保持している値から−１したものを新たにｉ番目ピクチャの量子化パラメータとする（ステップＳ３６−１）。同様に、変数Ｃｏｓｔ（＋１）の合計コストが最小だった場合にはＱＰを保持値から＋１した値で更新する（ステップＳ３６−３）。一方、変数Ｃｏｓｔ（０）が最小だった場合にはｉ番目フレームのＱＰは変更しない（ステップＳ３６−２）。
【００５９】
次に、修正制御部１４は、ｉ番目のフレームが最終フレームであるか否かを判定し（ステップＳ３７）、最終フレームでなければ、ｉを１増加させて（ステップＳ３８）ステップＳ３２に戻って処理を繰り返す。そして、ｉ番目のフレームが最終フレームであれば処理を終了する。
【００６０】
次に、図４を参照して、図３に示すステップＳ３２、Ｓ３３、Ｓ３４の処理（合計コストを算出する処理）の詳細な処理動作を説明する。図４は、合計コストを算出する処理動作を示すフローチャートである。
【００６１】
まず、符号量計算部４は、各ピクチャに与えられたＱＰに対応する目標符号量の算出を、全ピクチャに関して行う（ステップＳ３２１）。この算出は１パス目の符号化で取得した各ピクチャの量子化パラメータＱＰと発生符号量Ｇから前述した目標符号量の算出方法によって行う。
【００６２】
次に、全ピクチャの目標符号量が計算できたら、Ｃｏｓｔ１計算部７は、目標ファイルサイズＴｔａｒを用いて前述の計算式（式１）に従いＣｏｓｔ１を算出する（ステップＳ３２２）。ここで、Ｔｓｕｍは、総符号量計算部６において、各ピクチャの目標符号量Ｇ０（ｊ）の総和として算出される値である。
【００６３】
次に、バッファ計算部８は、全ピクチャの目標符号量をもとに全ピクチャのバッファ占有量Ｂ［ｊ］を算出する（ステップＳ３２３）。この計算はバッファモデルに従って行われる。まず、バッファ占有量の初期値Ｂ［０］はＢ＿ｉｎｉｔとする。そして、ｊ番目ピクチャのバッファ占有量Ｂ［ｊ］は、上記の目標符号量Ｇ０（ｊ）を用いて、次の漸化式から求められる。
Ｂ［ｊ］＝ＣＬＩＰ（Ｂ［ｊ−１］−Ｇ０（ｊ）＋Ｒｆｒａｍｅ＿ｍａｘ，Ｂ＿ｓｉｚｅ）
ここで、Ｂｆｒａｍｅ＿ｍａｘ＝Ｒ＿ｍａｘ／ｆｒａｍｅ＿ｒａｔｅである。
【００６４】
次に、全ピクチャのバッファ占有量が計算できたら、Ｃｏｓｔ２計算部１０は、前述の計算式（式２）を用いてＣｏｓｔ２を算出する（ステップＳ３２４）。続いて、乗算部１１は、Ｃｏｓｔ２に対して予め定められた正の定数Ａ１を乗算する。また、乗算部１２は、Ｃｏｓｔ２に対して、予め定められた正の定数Ａ２を乗算する。そして、加算部１３は、線形結合（２つの乗算部１１、１２の出力を加算する）から合計コストＣｏｓｔを求める（ステップＳ３２５）。
【００６５】
以上の処理動作により算出された合計ＣｏｓｔをＣｏｓｔ（０）、Ｃｏｓｔ（＋１）、Ｃｏｓｔ（−１）のそれぞれに格納する。
【００６６】
なお、前述した説明では、可変ビットレートの符号化を念頭に説明したが、固定ビットレートへ適用することも可能である。この場合、オーバーフローを回避するために、各ピクチャのバッファ占有量Ｂ［ｊ］のうち、その値が閾値Ｔｈ３以上となっているものについて、その閾値を上回ったバッファ占有量のシーケンス総和
ΣＣＬＩＰ０（Ｂ［ｊ］−Ｔｈ３）
を前述の（式２）に加算したものをＣｏｓｔ２とすればよい。
【００６７】
図１に示す符号量算出装置では２つのコストＣｏｓｔ１及びＣｏｓｔ２の線形和を確認しながら各ピクチャの量子化幅もしくは目標符号量を調整していた。すなわち、考慮すべき２つのコストがいずれも０になるまで各ピクチャの量子化幅もしくは目標符号量を調整していた。
【００６８】
別の調整方法としては、ある１つのコストのみに着目し、そのコストが小さくなる方向に各ピクチャの量子化幅あるいは目標符号量を調整することを繰り返してもよい。また、その際には着目していない別のコストが大きくならないことを確認しながら調整してもよい。以下、一例として、最初にＣｏｓｔ１のみ、次にＣｏｓｔ２のみ、最後にＣｏｓｔ２を確認しながらＣｏｓｔ１のみに着目して量子化パラメータＱＰを調整する処理動作を説明する。
【００６９】
まず、図５を参照して、図１に示す符号量算出装置の変形例を説明する。図５は、図１に示す符号量算出装置の変形例の構成を示すブロック図である。この図において、図１に示す装置と同一の部分には同一の符号を付し、その説明を省略する。この図に示す装置が図１に示す装置と異なる点は、終了判定部１７に代えて、係数制御付き終了判定部１９が設けられている点である。
【００７０】
係数制御付き終了判定部１９は、係数Ａ１、Ａ２を出力する。この係数Ａ１、Ａ２は、乗算部１１、１２に入力し、乗算が行われる。また、修正制御部１４には係数制御付き終了判定部１９から出力する開始信号が入力される。図５に示す修正制御部１４は、図１に示す修正制御部１４と同等の動きをする。但し、係数制御付き終了判定部１９から開始信号の受信機能が備わっており、開始信号を受けると先頭ピクチャから順にＱＰの加算・減算指示を出す操作をもう一度実行する。
【００７１】
係数制御付き終了判定部１９は、まず係数としてＡ１＝１、Ａ２＝０を出力する。そして加算部１３から出力される合計コストをチェックし、０になったら係数をＡ１＝０、Ａ２＝１に変更して修正制御部１４に開始信号を出力する。その後、加算部１３からの合計コストをチェックし０になったら係数をＡ１＝１、Ａ２＝１に変更して再度修正制御部１４に開始信号を出力する。そして加算部１３からの合計コストが０になったらスイッチ１８に対してＯＮするように指示する。
【００７２】
次に、図６を参照して、図５に示す符号量算出装置の処理動作について説明する。図６は、図５に示す符号量算出装置の処理動作を示すフローチャートである。まず処理を開始すると、図２に示すステップＳ１、Ｓ２同様、１パス目の符号化を行って統計量を統計量保存メモリに保存し（ステップＳ１００１）、初期値設定部２が量子化幅の初期値を計算して量子化幅保存メモリ３に格納する（ステップＳ１００２）。
【００７３】
次に、修正制御部１４は、Ｃｏｓｔ１のみに着目して、それが０になるよう全ピクチャの量子化幅を調整する（ステップＳ１００３、Ｓ１００４）。これは、例えば、前述した合計コストＣｏｓｔ＝Ａ１×Ｃｏｓｔ１＋Ａ２×Ｃｏｓｔ２において、係数Ａ１とＡ２をそれぞれＡ１＝１、Ａ２＝０に設定したとして図３、図４に示す処理動作によって計算すればよい。
【００７４】
次に、修正制御部１４は、同様にＣｏｓｔ２のみに着目してそれが０になるよう全ピクチャの量子化幅を調整する（ステップＳ１００５、Ｓ１００６）。これは、例えば、前述した合計コストＣｏｓｔ＝Ａ１×Ｃｏｓｔ１＋Ａ２×Ｃｏｓｔ２において、係数Ａ１とＡ２をそれぞれＡ１＝０、Ａ２＝１に設定したとして図３、図４に示す処理動作によって計算すればよい。
【００７５】
次に、修正制御部１４は、Ｃｏｓｔ２を確認しながらＣｏｓｔ１が０になるよう全ピクチャの量子化幅を調整する（ステップＳ１００７、Ｓ１００８）。これは、例えば、前述した合計コストＣｏｓｔ＝Ａ１×Ｃｏｓｔ１＋Ａ２×Ｃｏｓｔ２において、係数Ａ１とＡ２をそれぞれＡ１＝１、Ａ２＝１に設定したとして図３、図４に示す処理動作によって計算すればよい。
【００７６】
ステップＳ１００５〜Ｓ１００６の処理により、ステップＳ１００７の開始時点ではＣｏｓｔ２の値は０になっているため、Ａ１＝１、Ａ２＝１とした合計コストＣｏｓｔ＝Ｃｏｓｔ１＋Ｃｏｓｔ２は、事実上合計コストＣｏｓｔ＝Ｃｏｓｔ１となる。そのため、Ｃｏｓｔ＝Ｃｏｓｔ１＋Ｃｏｓｔ２が減少して０となるように全ピクチャの量子化幅を調整することで、Ｃｏｓｔ２を確認しながらＣｏｓｔ１が０になるように調整したことになる。
【００７７】
そして、係数制御付き終了判定部１９は、終了判定結果に基づいて、スイッチ１８を制御して、各ピクチャの目標符号量を出力する（ステップＳ１００９）。
【００７８】
なお、前述した説明において、各ピクチャの量子化幅あるいは目標符号量を調整するに際して、先頭のピクチャから順番に調整してもよいし、任意のピクチャから順に調整してもよいし、あるいは複数のピクチャをまとめて調整してもよい。
【００７９】
以上説明したように、与えられた複数の制約条件に適合した符号量割り当てを行う際に、合計コストＣｏｓｔが０になるように各ピクチャの量子化幅あるいは目標符号量を調整することで、与えられた制約条件を全て満たす目標符号量割り当てを実現することができる。すなわち、可変ビットレートの符号化においてバッファアンダーフローが起こらないようにしつつ（固定ビットレートの符号化の場合はバッファアンダーフローに加えてバッファオーバーフローも起こらないようにしつつ）目標ファイルサイズの符号化を実現することができる。その際、各ピクチャは合計コストＣｏｓｔの増減のみを見ながら目標符号量の調整をするため、オーバーフローやアンダーフローの発生位置によらない調整が可能となり、従来方法の問題を回避することが可能となる。
【００８０】
前述した実施形態における符号量算出装置の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００８１】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【産業上の利用可能性】
【００８２】
与えられた複数の制約条件に適合した符号量を算出することが不可欠な用途にも適用できる。
【符号の説明】
【００８３】
１・・・統計量保存メモリ、２・・・初期値設定部、３・・・量子化幅保存メモリ、４・・・符号量計算部、５・・・目標符号量保存メモリ、６・・・総符号量計算部、７・・・Ｃｏｓｔ１計算部、８・・・バッファ計算部、９・・・バッファ占有量保存メモリ、１０・・・Ｃｏｓｔ２計算部、１１、１２・・・乗算部、１３・・・加算部、１４・・・修正制御部、１５・・・量子化幅加算操作部、１６・・・量子化幅減算操作部、１７・・・終了判定部、１８・・・スイッチ、１９・・・係数制御付き終了判定部
【図１】
0006046761.tif 000002
【図２】
0006046761.tif 000003
【図３】
0006046761.tif 000004
【図４】
0006046761.tif 000005
【図５】
0006046761.tif 000006
【図６】
0006046761.tif 000007