(57)【要約】【課題】推定された符号量に基づいてレート制御を行った場合でも、推定誤差の影響を最小限に抑えた画像情報符号化装置を提供すること。【解決手段】本発明に係る画像情報符号化装置は、動画像圧縮手段と算術符号化手段を備える画像情報符号化装置であって、前記算術符号化手段による算術符号化前の動画像に関するデータを用いて、前記算術符号化手段による算術符号化後の実符号量を推定して推定符号量を生成する符号量推定手段と、前記符号量推定手段によって生成された推定符号量の累積値の一部または全部を前記算術符号化後の実符号量に置き換えて推定誤差を軽減する推定符号量置き換え手段と、前記推定符号量置き換え手段によって置き換えられた前記推定符号量の累積値を基に前記動画像圧縮手段から出力される符号量の目標値である目標符号量を設定するレート制御手段とを備え、前記動画像圧縮手段は、前記目標符号量に基づいて動画像を圧縮する。【選択図】図１
2009038746.tif 000002
【特許請求の範囲】
【請求項１】
データ変換手段と可逆圧縮手段を備える情報圧縮装置であって、
前記可逆圧縮手段による可逆圧縮前のデータに基づいて、前記可逆圧縮手段による可逆圧縮後の実符号量を推定して推定符号量を生成する符号量推定手段と、
前記符号量推定手段によって生成された推定符号量を累積して累積推定符号量を生成する推定符号量累積手段と、
前記可逆圧縮後の実符号量を累積して累積実符号量を生成する実符号量累積手段と、
前記推定符号量累積手段によって生成された累積推定符号量を前記実符号量累積手段によって生成された累積実符号量で補正する累積推定符号量補正手段と、
前記可逆圧縮後の実符号量が確定していない前記可逆圧縮前のデータに対する未確定推定符号量を累積して累積未確定推定符号量を生成する未確定推定符号量累積手段と、
前記推定符号量補正手段によって補正された累積推定符号量と前記未確定推定符号量累積手段によって生成された累積未確定推定符号量とに基づいて、前記データ変換手段から出力される符号量の目標値である目標符号量を設定するレート制御手段とを備え、
前記データ変換手段は、前記目標符号量に基づいてデータを変換することによって、当該データ変換手段から出力される符号量を増減させる
ことを特徴とする情報圧縮装置。
【請求項２】
前記可逆圧縮手段は、データを可変長符号化する
ことを特徴とする請求項１記載の情報圧縮装置。
【請求項３】
前記可逆圧縮手段は、データを算術符号化する
ことを特徴とする請求項１記載の情報圧縮装置。
【請求項４】
動画像圧縮手段と算術符号化手段を備える画像情報符号化装置であって、
前記算術符号化手段による算術符号化前の動画像に関するデータを用いて、前記算術符号化手段による算術符号化後の実符号量を推定して推定符号量を生成する符号量推定手段と、
前記符号量推定手段によって生成された推定符号量の累積値の一部または全部を前記算術符号化後の実符号量に置き換えて推定誤差を軽減する推定符号量置き換え手段と、
前記推定符号量置き換え手段によって置き換えられた前記推定符号量の累積値を基に前記動画像圧縮手段から出力される符号量の目標値である目標符号量を設定するレート制御手段とを備え、
前記動画像圧縮手段は、前記目標符号量に基づいて動画像を圧縮する
ことを特徴とする画像情報符号化装置。
【請求項５】
動画像圧縮ステップと算術符号化ステップを含む画像情報符号化方法であって、
前記算術符号化ステップにおける算術符号化前の動画像に関するデータを用いて、前記算術符号化ステップにおける算術符号化後の実符号量を推定して推定符号量を生成する符号量推定ステップと、
前記符号量推定ステップにおいて生成された推定符号量の累積値の一部または全部を前記算術符号化後の実符号量に置き換えて推定誤差を軽減する推定符号量置き換えステップと、
前記推定符号量置き換えステップにおいて置き換えられた前記推定符号量の累積値を基に前記動画像圧縮ステップにおいて出力される符号量の目標値である目標符号量を設定するレート制御ステップとを含み、
前記動画像圧縮ステップにおいて前記目標符号量に基づいて動画像を圧縮する
ことを特徴とする画像情報符号化方法。
【請求項６】
動画像圧縮手段と算術符号化手段を備える集積回路であって、
前記算術符号化手段による算術符号化前の動画像に関するデータを用いて、前記算術符号化手段による算術符号化後の実符号量を推定して推定符号量を生成する符号量推定手段と、
前記符号量推定手段によって生成された推定符号量の累積値の一部または全部を前記算術符号化後の実符号量に置き換えて推定誤差を軽減する推定符号量置き換え手段と、
前記推定符号量置き換え手段によって置き換えられた前記推定符号量の累積値を基に前記動画像圧縮手段から出力される符号量の目標値である目標符号量を設定するレート制御手段とを備え、
前記動画像圧縮手段は、前記目標符号量に基づいて動画像を圧縮する
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の画像情報を符号化する画像情報符号化装置に関し、特に量子化されたDCT（Discrete Cosine Transform）係数などを可変長符号化して出力する画像情報符号化装置に関する。また、オーディオ情報の符号化装置に関係する。
【背景技術】
【０００２】
動画像の符号化技術において、符号化効率の向上が図られている。これにより、携帯電話機で滑らかな動きのテレビ電話を実現したり、高画質な動画像を撮影したりすることも可能になりつつある。このような符号化技術の進展において、最新の動画像圧縮符号化技術の国際基準であるH.264/AVCでは、DCT係数や動きベクトルなど、シンタックスで伝送することが定められているシンタックス要素のエントロピー符号化方式として、単純な表による変換に代わってさらに符号化効率の高い符号化方式が用意されている。すなわち、CAVLC(Context-Adaptive Variable Length Coding)と呼ばれる可変長符号化方式や、CABAC(Context-Adaptive Binary Arithmetic Coding)と呼ばれる算術符号化方式である。これらのうち、CABACのような算術符号化方式は、定常的な信号を理論上、限界まで圧縮することが可能であるといわれている。
【０００３】
一方、CABACは、上記のように符号化効率のよさがメリットであるが、処理が終わるまで発生符号量がわからないという欠点がある。
【０００４】
HDサイズ（1920ｘ1080）画像に対応したCABACをハードウエア実装した場合、リアルタイム処理を実現するのは難しい。そこで算術符号化の前段にバッファを設け、非同期処理にする手法が考えられる。その場合、処理中の１枚の画像の最後にデータ量の多いマクロブロック（以下、MB）が集中したとすると、算術符号化の符号量が確定するのに最悪ケースでは１枚の画像分の遅延が生じてしまうような場合がある。
【０００５】
このように、算術符号化の符号量が確定してから符号化画像のレート制御を行なうとすると、例えば、ピクチャごとにレート制御を行なうことは可能だが、マクロブロックごとに量子化ステップを変更するなどのような細やかなレート制御を行なうことが困難である。ピクチャごとにレート制御を行なう場合と、マクロブロックごとにレート制御を行なう場合とを比較すると、ピクチャごとにレート制御を行なう場合の方がレートの変動が大きくなってしまう可能性が高く、従って動画像の画質の劣化を招く可能性が高いという課題がある。
【０００６】
また、MPEG-2などの従来の画像符号化のレート制御では、目標符号量とリアルタイムに出力される符号量との差を基に量子化ステップを決定しレート制御する（例えば、特許文献２参照）。しかし、CABAC（算術符号化）を採用したH.264では、CABAC符号化で発生する符号量をリアルタイムで取得するのが難しく遅延が生じ、最悪ビットオーバでレート制御が破綻する。このため、CABACへの入力データ量を事前に監視し制限することで、リアルタイム符号化を確保する方法が開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−１３５２５１号公報
【特許文献２】特開２００４−３５７０７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来例では、CABACへの入力データ量を制限する必要がある。そのため、粗く量子化して再符号化するなどの処理が不可欠であり、急激な画質劣化を引きおこすという課題がある。
【０００８】
上記課題に鑑みて、推定された発生符号量に基づいてレート制御する画像符号化方法が考えられる。この方法では、推定された符号量を用いるため、算術符号化処理の完了を待つ必要がない。また、前述のようにCABACへの入力データ量を制限する必要がないので、画質劣化を起こすことはない。
【０００９】
しかしながら、推定された符号量を基にレート制御を行うため、実際の符号量と推定符号量との誤差が発生し、蓄積する。そのため、実際に割り当て可能な符号量より多い符号量を割り当る可能性があり、最悪の場合レート破綻を引き起こす。また、実際に割り当て可能な符号量より少ない符号量を割り当てた場合、想定した画質が維持できず、画質が劣化することがある。
【００１０】
そこで、本発明は、推定された符号量に基づいてレート制御を行った場合でも、推定誤差の影響を最小限に抑えた画像情報符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明に係る情報圧縮装置は、データ変換手段と可逆圧縮手段を備える情報圧縮装置であって、前記可逆圧縮手段による可逆圧縮前のデータに基づいて、前記可逆圧縮手段による可逆圧縮後の実符号量を推定して推定符号量を生成する符号量推定手段と、前記符号量推定手段によって生成された推定符号量を累積して累積推定符号量を生成する推定符号量累積手段と、前記可逆圧縮後の実符号量を累積して累積実符号量を生成する実符号量累積手段と、前記推定符号量累積手段によって生成された累積推定符号量を前記実符号量累積手段によって生成された累積実符号量で補正する累積推定符号量補正手段と、前記可逆圧縮後の実符号量が確定していない前記可逆圧縮前のデータに対する未確定推定符号量を累積して累積未確定推定符号量を生成する未確定推定符号量累積手段と、前記推定符号量補正手段によって補正された累積推定符号量と前記未確定推定符号量累積手段によって生成された累積未確定推定符号量とに基づいて、前記データ変換手段から出力される符号量の目標値である目標符号量を設定するレート制御手段とを備え、前記データ変換手段は、前記目標符号量に基づいてデータを変換することによって、当該データ変換手段から出力される符号量を増減させることを特徴とする。これにより、推定された符号量に基づいてレート制御を行った場合でも、推定された符号量が実際の符号量で補正され、推定誤差の影響を最小限に抑えることができる。
【００１２】
また、本発明に係る画像情報符号化装置は、動画像圧縮手段と算術符号化手段を備える画像情報符号化装置であって、前記算術符号化手段による算術符号化前の動画像に関するデータを用いて、前記算術符号化手段による算術符号化後の実符号量を推定して推定符号量を生成する符号量推定手段と、前記符号量推定手段によって生成された推定符号量の累積値の一部または全部を前記算術符号化後の実符号量に置き換えて推定誤差を軽減する推定符号量置き換え手段と、前記推定符号量置き換え手段によって置き換えられた前記推定符号量の累積値を基に前記動画像圧縮手段から出力される符号量の目標値である目標符号量を設定するレート制御手段とを備え、前記動画像圧縮手段は、前記目標符号量に基づいて動画像を圧縮することを特徴とする。これにより、推定された符号量に基づいてレート制御を行った場合でも、推定された符号量が実際の符号量に置き換えられ、推定誤差の影響を最小限に抑えることができる。
【００１３】
なお、本発明は、このような画像情報符号化装置として実現することができるだけでなく、このような画像情報符号化装置に備えられるコンテキスト適応型２値算術符号化装置として実現したり、このような画像情報符号化装置が備える特徴的な手段をステップとする画像情報符号化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００１４】
以上のように、本発明によれば、推定された符号量に基づいてレート制御を行った場合でも、推定された符号量が実際の符号量で補正され、推定誤差の影響を最小限に抑えることができる。これにより、CABAC処理が終了する前に、レート制御に必要な算術符号化後の符号量を推定することができ、遅延がなくかつ精度よくレート制御を実現することが可能となる。
【発明を実施するための最良の形態】
【００１５】
（実施の形態）
図１は、本実施の形態の画像情報符号化装置の構成を示すブロック図である。本実施の形態の画像情報符号化装置は、マクロブロックごとに、残差信号、DCT係数、量子化係数及び２値データのいずれかに基づいて、CABAC処理部で発生する符号量を予測し、その予測結果に基づいて量子化部での量子化ステップを調整することにより、符号化レートを制御する画像情報符号化装置であって、予測処理部100、DCT変換部101、量子化部102、CABAC処理部103、バッファ104、符号量推定部105及びレート制御判定部106を備える。なお、同図では、予測処理部100からの残差信号、DCT変換部101からのDCT係数、量子化部102からの量子化係数、及びCABAC処理部103からの２値データのいずれもが符号量推定部105に入力されているが、実際には、これらのうちのいずれかでよい。以下では、まず、量子化係数に基づいて符号量を予測する場合について説明する。予測処理部100は、画像情報符号化処理対象の画像領域であるマクロブロック（以下、「MB」と表記する。）に対し、そのピクチャタイプ及びスライスタイプを検出し、検出したピクチャタイプ（Ｉ、Ｐ、Ｂ）及びスライスタイプ（Ｉ、Ｐ、Ｂ）を符号量推定部105に出力する。また、予測処理部100は、面内予測や面間予測により生成した予測画像と原画像の差分値である残差信号、および、予測方法などの符号化条件（以下、「予測情報」という。）を出力する。予測情報の一例を示すと、MBの符号化モード、マクロブロックタイプ、符号化ブロックパターン及び直前のMBからの量子化パラメータの差分などである。DCT変換部101は、予測処理部100の出力である残差信号を離散コサイン変換した係数を出力する。量子化部102では、DCT変換部101の出力であるDCT係数を量子化した係数を出力する。CABAC処理部103では量子化部の出力である量子化係数および、予測情報を２値化し、算術符号化を行い、ビットストリームをバッファ104に出力する。符号量推定部105では、量子化部の出力である量子化係数および予測処理部１００の出力である予測情報を、それぞれの“算術符号化結果の発生符号量の実測値を基に作成されたテーブル”を用いて推定符号量に変換することで、CABAC処理部103から出力される符号量を推定する。すなわち、予測情報の符号量を推定するテーブルは、量子化係数の符号量を推定するテーブルとは別途、予測情報を符号化して得られる実測値に基づいて作成される。符号量推定部105では、符号化対象MBのピクチャタイプまたはスライスタイプに応じて、量子化係数に対応する推定符号量を示した変換テーブルを複数保持している。符号量推定部105は、予測処理部100から入力されるピクチャタイプまたはスライスタイプに従って、保持している中で最適な変換テーブルを選択し、参照する。レート制御判定部106では、符号量推定部105の出力である推定符号量を基に以降の符号化条件を決定する。レート制御を行なうための符号化条件は、例えば、量子化部102における量子化ステップの値である。レート制御判定部106は、決定した符号化条件を量子化部102に戻し、以降のMBの符号化条件とする。
【００１６】
図２は、図１に示したCABAC処理部103のより詳細な構成を示すブロック図である。CABAC処理部103は、量子化部102から入力される量子化係数を２値化し、２値化により得られた２値データを算術符号化する処理部であって、２値化処理部200、算術符号化部201及びCONTEXT計算部203を備える。
【００１７】
２値化処理部200は、量子化部102の出力である量子化係数を定められた変換法則にしたがって、２値データに変換する。算術符号化部201は前記２値データの入力に応じて、CONTEXT計算部203から出力される0/1の生起確率を用いて算術符号化を行い、バッファ104へ出力する。CONTEXT計算部203は、内部に0/1の生起確率を示すテーブルを格納しており、そのテーブルを参照して、次のビットの0/1の生起確率を算術符号化部201に出力する。CONTEXT計算部203は、ビットの値が予測どおりでなかった場合、内部のテーブルの0/1の生起確率を更新する。
【００１８】
図３は、図１に示したレート制御判定部106によるレート制御方法の一例を示すグラフである。レート制御判定部106は、例えば、（１）MBごとの一定の目標発生符号量（例えば、３Mbit／MB）と、（２）同一ピクチャ内の各MBの推定符号量を現在のMBまで累積して得られる累積推定符号量と、現在のMBまでの累積目標発生符号量との差分の上限及び下限の閾値と、（３）現在のMBまでの累積推定符号量が累積目標発生符号量と比較して閾値を超えて増加または減少した場合、量子化ステップをどれだけ増加または減少させるかを記憶している。そして、符号量推定部105から得られる推定符号量を１MBごとに集計し、集計した推定符号量が累積目標発生符号量から閾値を超えて増加した場合、量子化ステップの増加量を量子化部102に出力する。これにより、量子化部102は、より大きな値の量子化ステップでDCT係数を量子化するので、量子化係数がより小さな値となり、発生符号量が低減される。
【００１９】
図４は、画像情報符号化装置全体における各処理部のレート制御の手順を示すフローチャートである。まず、量子化部102は、ピクチャの先頭のMBを対象MBとして順次、量子化を行なう。各MBに対して、画素と同数の輝度及び色差のDCT係数が算出されており、量子化部102はこのDCT係数を量子化ステップで除算し、量子化係数を出力する（Ｓ９０１）。符号量推定部105は、量子化部102から出力された量子化係数をキーとして、内部に保持している変換テーブルを参照し、その量子化係数に対応する推定符号量を取得する（Ｓ９０２）。符号量推定部105は、取得した推定符号量を、例えば、（符号量）というレジスタに加算していき、対象MBのすべての量子化係数の推定符号量が取得されたか否かを判定する（Ｓ９０４）。まだ対象MBのすべての量子化係数の推定符号量が取得されていないときは、ステップＳ９０２に戻り、新たな量子化係数を取得する。対象MBのすべての量子化係数について推定符号量を取得した場合、（符号量）というレジスタに累積加算されていた量子化係数ごとの推定符号量を、例えば、（累積符号量）というレジスタに加算する（Ｓ９０５）。これにより、対象MBまでの累積推定符号量が得られる。レート制御判定部106は、MBごとに保持している目標符号量から、当該MBまでの目標符号量を算出する。例えば、目標符号量として3000bit/MBという値を保持している場合、ピクチャ内の５個のMBの量子化が完了している場合、3000×５＝15000という計算を行い、対象MBまでの目標符号量を算出する。なお、レート制御判定部106は、目標符号量として3000bit/MBのように、必ずしも一定値を記憶している必要はなく、一定でない目標符号量をテーブルにして保持していてもよい。例えば、０番目のMBは2500bit、1番目のMBまでは合計5500bit、・・・、k番目のMBまでは合計32000bit、・・・などのように保持しておいてもよい。
【００２０】
次いで、レート制御判定部106は、ステップＳ９０５で算出された（累積符号量）と、計算またはテーブルから求めた目標符号量とから、対象MBを含む対象MBまでの累積符号量が目標符号量を超えており、かつ、その差があらかじめ定められた上限の閾値を超えているか否かを判定する（Ｓ９０６）。レート制御判定部106は、累積符号量が目標符号量を超えており、かつ、その差が上限の閾値を超えている場合、量子化ステップの値を大きくして（Ｓ９０７）、次のMBの符号化を開始する（Ｓ９０１）。累積符号量が目標符号量を超えており、かつ、その差が上限の閾値を超えている以外の場合、レート制御判定部106はさらに、累積符号量が目標符号量以下で、かつ、その差が予め定められた下限の閾値を超えているか否かを判定する（Ｓ９０８）。累積符号量が目標符号量以下で、かつ、その差が予め定められた下限の閾値を超えている場合、量子化ステップの値を小さくして（Ｓ９０９）、次のMBの符号化を開始する（Ｓ９０１）。それ以外の場合、レート制御判定部106は量子化ステップの値を変更することなく、次のMBの量子化を開始する（Ｓ９０１）。なおここで、それ以外の場合とは、累積符号量が目標符号量以下で、かつ、累積符号量と目標符号量との差が下限の閾値以下であるか、または、累積符号量が目標符号量を超えており、かつ、上限の閾値以下である場合である。このように、推定符号量に基づいてMBごとに量子化ステップを調整することにより、算術符号化による発生符号量を、より精度よく目標符号量に近づけることができる。ここでは、MBを符号化単位として、説明したがMBライン単位、スライス単位、ピクチャ単位などとしてもよい。
【００２１】
次に符号量推定部105の符号量推定手法について述べる。
【００２２】
図５は、各量子化係数値に対応してCABAC処理部で発生する推定符号量を示す変換テーブルである。符号量推定部105は、量子化部102により出力された量子化係数を基にCABAC処理後の符号量を推定する。推定には図５に示すような変換テーブルを利用する。符号量推定部105は、入力された量子化係数値に対応する推定符号量を、変換テーブルを参照して取得する。図５の変換テーブルによれば、例えば、量子化係数値が1のとき推定符号量は1.2ビット、量子化係数値が2のとき推定符号量は1.4ビットである。推定符号量が整数ではなく実数であるのは、実測された符号量の平均値から作成されたものであるからである。このように、変換テーブルを参照することによって、各量子化係数値から推定符号量が一意に決定される。符号量推定部105は、このような変換テーブルを内部のメモリ上に格納しており、入力された量子化係数値を基に変換テーブルを参照する。当該変換テーブルは、符号量推定部104の外部に持つとしてもよい。また、変換テーブルは1枚である必要はなく、複数枚のテーブルの中から選択して、参照してもよい。例えば、符号化対象の画像を面内予測した場合と面間予測した場合で参照するテーブルを切り替え、量子化ステップに応じた推定符号量を取得するとしてもよい。さらに、変換テーブルは、MBの符号化タイプにより切り替えるとしてもよい。また、ピクチャタイプ、スライスタイプまたは予測情報の種類毎に切り替えるとしてもよい。さらに、変換テーブルは固定値を用いた静的なテーブルとしてもよい。また、変換テーブルは更新可能な動的なテーブルとしてもよい。
【００２３】
図６は、図５に示した変換テーブルのより具体的な一例を示す図である。同図において、abs＿level[i]のiは1から384の係数番号を示している。図６（ａ）は、量子化値が1から14までの値をとる場合の推定bit値を示すテーブルである。このテーブルでは、量子化値と推定符号量が１対１に対応している。このテーブルでは量子化値が1から14までの推定符号量を得ることができる。例えば、量子化係数abs＿levelが1のとき推定符号量は1.56bitであり、量子化係数abs＿levelが8のとき推定符号量は5.20bitである。図６（ｂ）は、量子化値が15以上の値をとる場合の推定bit値を示すテーブルである。このテーブルでは、量子化値が15から60までと、61から250と、251以上とがそれぞれ同一推定符号量に定められている。このテーブルを参照することにより、量子化値が15以上の値をとる場合の推定bit値を一意に定めることができる。例えば、量子化係数abs＿levelが125のとき推定符号量は0.82bitであり、量子化係数abs＿levelが61のとき推定符号量は0.82bitである。このように、符号量推定部105は、このテーブルを参照することによって、量子化係数384個（輝度Y256、色差Cb64、色差Cr64）すべての値に対応する推定符号量を求めることが出来る。
【００２４】
なお、図６（ａ）及び（ｂ）に示した変換テーブルは、量子化係数に基づいて推定符号量を求める場合だけでなく、２値データに基づいて推定符号量を求める場合にも用いることができる。理由は、２値データが量子化係数値から一意に決まるからである。例えば、量子化係数Coeff＿abs＿level＿minus1=10のとき、２値データは、２値データ=1111 1111 110のように、一意に求められる。
【００２５】
ここでは、量子化係数のみについて言及したが、量子化係数以外のCABAC処理の対象となる予測情報を符号量推定部105の対象とすることもできる。
【００２６】
さらに、符号量推定部105の推定に利用するデータを、量子化係数だけでなく２値化処理部200で生成される2値データ値または2値データ量、DCT係数、予測処理部100の出力である予測画像と入力画像の差分である残差信号として、変換テーブルを生成することも可能である。
【００２７】
図７は、DCT係数の値に対応して算術符号化による推定符号量を示す変換テーブルの一例を示す図である。DCT係数に基づいて符号量を推定する場合には、後段の量子化によって推定符号量が変わってくるため、量子化変数QP（H.264で規定される値で、0〜51の値を取り得る）ごとに変換テーブルを作成し、各MBに量子化変数QPが決定される都度、変換テーブルを切り替えて用いるものとする。図７（ａ）は、量子化変数QPごとに作成された変換テーブルの一例を示す図である。図７（ｂ）は、DCT係数を用いて符号量を推定しレート制御を行なう場合のデータおよび手順の流れを示す図である。符号量推定部105は、量子化部102から現在量子化されているMBの量子化変数QPを受け取り、受け取った量子化変数QPに基づいて、図７（ａ）に示した変換テーブルを選択する。符号量推定部105は、DCT係数ごとに選択したテーブルを参照して各DCT係数の算術符号量を推定し、推定符号量を現MB内のDCT係数全部について集計することにより、現MBの推定符号量を算出する。符号量推定部105は、図３のグラフに示したように、先頭MBから現MBまでの累積符号量を算出してレート制御判定部106に出力する。レート制御判定部106は、符号量推定部105から入力された累積符号量を、先頭MBから現MBまでの累積目標発生符号量と比較し、次のMBの量子化変数QPを決定する。
【００２８】
上記実施の形態では、図７を用いて量子化前のDCT係数から符号量を推定する方法について説明したが、以下では、周波数変換を行う前の残差信号から符号量を推定する方法について説明する。図８は、MB内の各画素の残差信号と、その残差信号から当該MBの符号量を推定するためのテーブルである。図８（ａ）は、ピクチャ内の各MBとその残差信号の絶対差分値和（SAD）の一例を示す図である。なお、予測誤差には、絶対差分値和や差分自乗和（SSD）を用いるのが一般的である。ここでは、絶対差分値和について説明する。また、図８（ｂ）は、MBごとの絶対差分値和（SAD）に対応する当該MBの推定符号量を示すテーブルである。残差信号も後段で量子化を施されるので、量子化変数QPごとに変換テーブルが作成されている。また、残差信号は、空間上の信号成分を表しているのに対し、DCT係数はそれらの周波数成分を表している。従って画素ごとの予測誤差の値は、量子化係数や２値データと１対１に対応しない。このため、符号量推定部105は、MBごとに絶対差分値和を集計し、集計した絶対差分値和を用いて図８（ｂ）の変換テーブルを参照し、当該MBに対する推定符号量を得る。
【００２９】
次に動的な変換テーブルの作成手法を述べる。
【００３０】
第一の手法を述べる。図９は、算術符号化により実際に発生した符号量を参照して、変換テーブルを更新する方法を説明する図である。この場合、符号量推定部105は、例えば、変換テーブル生成部を備える。
【００３１】
符号量推定部105は、量子化部102より出力された量子化係数を内部メモリに格納する。次に変換テーブル生成部は、CABAC処理部103で符号化された符号から、符号量を計測し内部メモリに格納する。具体的には、CABAC処理部103から出力される符号が0であるか、1であるか、あるいは未定であるかをカウントすることによって符号量を計測する。出力される符号が未定である場合、変換テーブル生成部は、CABAC処理部103に備えられ、どの桁の符号値が確定していないのかをカウントするカウンタBits＿Outstandingの値を用いて符号量を計測する。
【００３２】
次いで、変換テーブル生成部は、内部メモリ内の量子化値と実際に計測された符号量とを既存の変換テーブルに一旦、記入する。変換テーブル生成部は、変換テーブルに記入されている、同じ量子化値に対応する符号量同士を平均した値で既存の変換テーブルを更新する。なお、変換テーブルの更新は、全ての量子化係数毎に行うことも、一部の量子化係数のみ行うとしてもよい。
【００３３】
第二の手法を述べる。
【００３４】
図２に示したCABAC処理部103は、入力に応じて、CONTEXT計算部203から出力される“事前に決められた0/1の生起確率”を用いて、区間分割を行うため、推定符号量は0/1の生起確率により変化する。符号量推定部105で、2値データの0/1系列の実際の0/1の生起確率を計測し、事前に決められた0/1の生起確率と比較する。符号量推定部105は、実際の生起確率と事前に決められた生起確率の差に応じて、変換テーブルを更新する。例えば、符号量推定部105は、優性シンボルの生起確率の実測値がCABACのテーブルと比べて大きく下がった場合（具体的には、優性シンボルの生起確率の実測値がCABACのテーブルと比べて予め定めた閾値よりも下がった場合）、変換テーブルを更新する。また、例えば、前記二つの生起確率が等しいときは、テーブル更新を行わない。前記二つの生起確率に差があるときは、算術符号化による圧縮率が変化するので変換テーブルの推定符号量の値を変更する。変更量は、前記二つの生起確率の差と圧縮率の差をメモリに格納し、それを用いて変更量を決定することも可能である。また、0/1のパターンにより、生起確率を推定し、テーブルを更新することも可能である。例えば、一定の個数より１が連続した場合、または0が連続した場合はCONTEXT計算部203の計算による事前の生起確率から実際の生起確率が変動するので、そのようなパターンを検出した場合は、変換テーブルを更新するとしてもよい。すなわち、符号量推定部105は、２値データの0と1との出現パターンを解析して、一定以上の個数の0または1が連続したとき、算術符号化による圧縮率が高くなるので、量子化係数、２値データ、DCT係数及び残差信号のいずれかの同一値に対して、変換テーブルの推定符号量を低減するように更新する。また、一定以上の個数の0と1とが交互に出現したとき、前記同一値に対して、変換テーブルの推定符号量を増加するように更新する。
【００３５】
また、前記事前に決められた0/1の生起確率が変動した場合に変換テーブルを更新するとしてもよいし、前記実際の生起確率と事前に決められた生起確率が変動した場合に変換テーブルを更新するとしてもよいし、これらの組み合わせなどとしてもよい。
【００３６】
さらに前記事前に決められた0/1の生起確率は、動画像圧縮符号化標準H.264のエントロピー符号化CABACでは、pStateIdxに対応し、これに応じて、変換テーブルを更新するとしてもよい。また、変換テーブルを更新するのではなく、最初から、高圧縮率用と低圧縮率用の２種類の変換テーブルを保持しておき、pStateIdxの値に応じて、いずれかを選択して使用するとしてもよい。すなわち、MBの算術符号化開始時にはCONTEXT計算部203が２値データの発生確率を計算する。この発生確率は、発生確率テーブルの番号pStateIdx(0-63)で与えられる。符号量推定部105は、このpStateIdxが予め定めた閾値と比較して大きいときは圧縮率が高いと判断して高圧縮率用変換テーブル（すなわち、量子化係数、２値データ、DCT係数及び残差信号のいずれかの同一の値に対して、標準の変換テーブルよりも推定符号量を低減したもの）を使用する。なお、標準の変換テーブルとは、高圧縮率用と低圧縮率用とを切り替えて用いる場合ではなく、１つの変換テーブルのみを使用して推定符号量を参照する場合の変換テーブルのことをいう。また、逆に、pStateIdxの値が、閾値と比較して小さいときは圧縮率が低いと判断して低圧縮率用変換テーブル（すなわち、量子化係数、２値データ、DCT係数及び残差信号のいずれかの同一の値に対して、標準の変換テーブルよりも推定符号量を増加したもの）を使用する。具体的には、pStateIdxの値が50でMBの算術符号化を開始したが、途中でpStateIdxの値が40になった場合、符号量推定部105は、それをトリガに低圧縮率用変換テーブルに切り替えて、符号量を推定するとしてもよい。
【００３７】
なお、変換テーブルを更新したり、高圧縮率用変換テーブルと低圧縮率用変換テーブルとを切り替えたりするタイミングは、pStateIdxが更新される都度であってもよいし、pStateIdxの更新の一定回数ごと（例えば、pStateIdxの更新の５回おき）などであってもよい。また、pStateIdxの移動平均に応じて、変換テーブルを更新したり、高圧縮率用変換テーブルと低圧縮率用変換テーブルとを切り替えたりするとしてもよい。例えば、pStateIdxが３回更新されるごとに３回分の平均値を求め、求められた平均値が予め定めた閾値より大きいとき高圧縮率用変換テーブルを用いる、または推定符号量を小さい値に更新する。逆に、求められた平均値が予め定めた閾値より小さいとき低圧縮率用変換テーブルを用いる、または推定符号量を大きい値に更新するなどとしてもよい。なお、移動平均の求め方は、pStateIdxの３回更新ごとである必要はなく、何回ごとであってもよい。
【００３８】
さらに、ここでは変換テーブルとしたが、一つないしは、複数の関数により、推定符号量を決定してもよい。すなわち、符号量推定部105は、量子化係数、２値データ、DCT係数、及び残差信号のいずれかと、推定符号量との関係を表した１または複数の関数を用いて、演算によって推定符号量を算出するとしてもよい。
【００３９】
なお、上記実施の形態では、符号化条件を量子化ステップとして説明したが、例えば、予測処理部100におけるMBの予測処理のタイプをスキップモードとしてしまってもよい。スキップモードとは、予測に基づいて残差信号を算出することなく、当該MBに対して所定の位置にある画像データをコピーする意味のフラグだけを送るモードをいう。このスキップモードは、１MBにつき１ビットのデータしか符号化しないので、累積された推定符号量が非常に大きい場合には、符号量の低減に有効である。この場合レート制御判定部106は、スキップモードと決定した符号化条件を予測処理部100にフィードバックする。
【００４０】
また、逆に、符号量推定部105において推定された累積推定符号量が、目標発生符号量よりも非常に小さかった場合には、レート制御判定部106は、それ以降のMBの符号化条件をI＿PCMデータとしてもよい。I＿PCMデータとは、動き予測や面内予測がされる前の各MBの生のデータであって、輝度信号及び2つの色差信号からなる。すなわち、符号化条件をI＿PCMデータとするということは、動き予測や面内予測や符号化も行なわず、そのピクチャの生のデータをそのまま出力するということである。このようにすることによって、累積推定符号量が目標発生符号量に満たない場合には、データ量は大きいが符号化が行なわれないため画質が損なわれない画像データを出力することができる。
【００４１】
図１０は、本発明の要部の詳細な構成を示すブロック図である。具体的には、動画像圧縮部４００と、ＣＡＢＡＣ処理部１０３と、符号量推定部１０５と、推定符号量置き換え部３５と、レート制御判定部１０６の詳細な構成を示している。動画像圧縮部４００は、請求項１記載のデータ変換手段または請求項４記載の動画像圧縮手段の一例である。ＣＡＢＡＣ処理部１０３には算術符号化部１２が含まれる構成を例示しているが、この算術符号化部１２に代えて可変長符号化部０２（図示せず）を採用することも可能である。算術符号化部１２も可変長符号化部０２も、請求項１記載の可逆圧縮手段の一例である。
【００４２】
ＣＡＢＡＣ処理部１０３で可変長符号化された符号化列のbit量を累積符号量計算部３０に入力する。累積符号量計算部３０では、符号化列のbit量を累積加算する。このとき、図示しない記憶領域で累積されたbit量がどの符号化単位からどの符号化単位までのbit量であるかを同時に記録する。ここでの符号化単位とは、ピクチャ単位、スライス単位、マクロブロックライン単位、マクロブロック単位などを指す。なお、符号化単位を識別する識別子とともにbit量を管理記録するとしてもよい。ピクチャの識別子には、符号化順序を示すピクチャ番号、マクロブロックの識別子にはマクロブロックアドレスなどを利用することができる。
【００４３】
また、可変長符号化部０２は、回路実装において入力に対して非同期で動作するため、所定の符号化単位可変長符号化が完了したことを累積符号量計算部３０に通知し、可変長符号化された符号化列のbit量を入力する。このとき、どの符号化単位の符号量であるかを同時に通知する。
【００４４】
同様に符号量推定部１０５（図１の符号量推定部１０５に相当）で推定された符号量を累積推定符号量計算部３１で累積加算する。この累積加算された値を累積符号量と呼ぶ。このとき、図示しない記憶領域で累積された符号量がどの符号化単位からどの符号化単位までの符号量であるかを同時に記録する。さらに、後述するように、どの符号化単位の可変長符号化が完了しているかをここで記録してもよい。なお、符号化単位を識別する識別子とともにbit量を管理記録するとしてもよい。
【００４５】
さらに、累積目標符号量計算部３２で符号量の目標値である目標符号量を累積加算する。このとき、図示しない記憶領域で累積された目標符号量がどの符号化単位からどの符号化単位までの目標符号量であるかを同時に記録する。なお、符号化単位を識別する識別子とともにbit量を管理記録するとしてもよい。
【００４６】
次に、累積推定符号量計算部３１で計算された所定の符号化単位から所定の符号化単位までの推定符号量の累積値と、累積目標符号量計算部３２で計算された所定の符号化単位から所定の符号化単位までの目標符号量の累積値との差分値（以下、累積差分値）を目標符号量計算部３３へ出力する。ここでは、便宜上、累積差分値は、目標符号量の累積値から推定符号量の累積値を減算した値とする。目標符号量計算部３３では、累積差分値を累積加算する。この累積加算された値を余剰符号量と呼ぶ。目標符号量計算部３３では、余剰符号量と累積差分値を基に、次の符号化単位の目標符号量を決定する。決定方法の一例としては、符号化時に設定されたビットレートより求まる平均符号量を目標符号量計算部３３で算出する方法がある。
【００４７】
累積差分値が正のとき、つまり、符号量に余裕があるときは、目標符号量を平均目標符号量より多く割り当てる。逆に負のときは、目標符号量を平均符号量より少なく割り当てる。また、図示しない画像特徴量計算部で計算された入力画像の画像特徴量、例えば、画像の平坦度を示す隣接画素差分などに応じて、割り当て量を制御することも可能である。ここで、隣接画素差分とは、特定の符号化単位内の画素であって、隣り合う画素同士の画素値の差分絶対値を加算した総和を示す。これにより、割り当て可能な符号量が十分ある場合である余剰符号量が所定の閾値より多い場合、かつ符号化領域の画像の平坦度が高い場合である隣接画素差分の絶対値和や二乗総和が所定の閾値より小さい場合、平均符号量より大きい目標符号量を設定することで、平坦部の微妙な画素値の変化を保存することが可能となり、画像の精細感を維持できる。
【００４８】
次に動画像圧縮部４００が備える量子化パラメータ算出部３４は、目標符号量計算部３３で決定された目標符号量から、符号化の制御情報の一つである量子化ステップを決定する。ここでは、量子化ステップを決定するとしたが、決定するものは符号量を増減させるパラメータ（符号化の制御情報）であればよい。例えば、量子化する際の量子化ステップを係数位置に応じて変化させる量子化マトリクスでもよい。また、余剰符号量が負のときは、符号量を制限するために、量子化ステップを大きくするだけでなく、面間予測が選択され易くなるように制御してもよい。例えば、符号化手段の面間予測と面内予測の判定処理において、評価関数にオフセットを設定し、面内予測が選択されやすくする。
【００４９】
また、量子化ステップの算出方法の一例としては、以前に符号化した符号化単位の量子化ステップ（過去の量子化ステップ）と実際に発生した符号量（過去の符号量）の比から、目標符号量に対する量子化ステップを決定する方法がある。
【００５０】
具体的には、以下の等式を満たすように量子化ステップを決定する。
過去の符号量：過去の量子化ステップ＝目標符号量：量子化ステップ
【００５１】
算出された量子化ステップに基づいて、量子化部１０２で量子化を行う。
【００５２】
上記に加えて推定符号量置き換え部３５では、累積推定符号量計算部３１で算出した推定符号量の一部または全部を累積符号量計算部３０で算出した累積符号量に置き換える。ＣＡＢＡＣの符号化が完了した符号化単位が更新されたとき以降に、前回置き換えが完了した符号化単位から今回ＣＡＢＡＣの符号化が完了した符号化単位までの推定符号量の累積値を実際の累積符号量に置き換える。図示しない記憶領域でどの符号化単位まで置き換えが完了したかを同時に記録する。推定符号量の累積値の一部を実際の累積符号量に置き換えることで、推定誤差の伝搬を最小限にする。置き換えられた累積推定符号量をレート制御判定部１０６に出力する。
【００５３】
ここに示す累積推定符号量計算部３１と推定符号量置き換え部３５は、請求項１記載の未確定推定符号量累積手段と推定符号量累積手段と累積推定符号量補正手段に相当する。
【００５４】
図１１に置き換えの具体例を示す。
【００５５】
図に示す各ブロックそれぞれが図示しない記憶領域の一つのレジスタに対応する。格納されている情報の種別（符号量、推定符号量とその該当するピクチャ番号）を各ブロックに記載する。図では、ＣＡＢＡＣの符号化がピクチャ番号０から２まで完了していることを示す。また、推定符号量の算出処理がピクチャ番号０から４まで完了していることを示す。ここでは、ＣＡＢＡＣの符号化が３ピクチャ完了する毎に置き換え処理を行う。
【００５６】
「置き換え前」の置き換えが完了したピクチャ位置は、初期状態のピクチャ番号０の位置とする。ここでは、置き換えが一度も発生していないことを示す。次に「置き換え後」の置き換えが完了したピクチャ位置は、ピクチャ番号３に更新される。上記の要領で、ＣＡＢＡＣの符号化が３ピクチャ完了する毎に置き換え処理を行う。目標符号量計算部３３は、図示しない記憶領域を介して、前述のどのピクチャまで符号化が完了したか（符号化完了ピクチャ位置）、どのピクチャまで推定符号量を完了したか（推定完了ピクチャ位置）、どのピクチャまで置き換えが完了したか（置き換え完了ピクチャ位置）を判断する。なお、記憶領域を介して各種の完了ピクチャ位置を管理しているが、各ブロックが直接完了通知を目標符号量計算部３３に通知する構成を採用しても同様の効果が得られることは言うまでもない。
【００５７】
以上のように、本発明によれば、推定された符号量に基づいてレート制御を行った場合でも、推定された符号量が実際の符号量で補正され、推定誤差の影響を最小限に抑えることができる。これにより、CABAC処理が終了する前に、レート制御に必要な算術符号化後の符号量を推定することができ、遅延がなくかつ精度よくレート制御を実現することが可能となる。
【００５８】
ここでは、推定符号量を符号量に置き換える方法を示したが、このような単純な置き換えだけに限定されるものではない。すなわち、推定符号量と符号量の比率に応じた係数を推定符号量または符号量に乗算するなどの方法で推定符号量を補正するとしてもよい。
【００５９】
なお、ＣＡＢＡＣの符号化が完了した符号化単位と推定している符号化単位とが同じであれば、置き換えをせず、符号量をそのままレート制御に出力するとしてもよいのは言うまでもない。
【００６０】
なお、図１と図１０の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）。
【００６１】
ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００６２】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【００６３】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【００６４】
また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ１チップ化せずに別構成としても良い。
【００６５】
また、ここでは画像符号化を例に説明したが、オーディオ信号の符号化やその他の信号符号化に適用できることは言うまでもない。
【産業上の利用可能性】
【００６６】
本発明に係る画像情報符号化装置は、通信機能を備えるパーソナルコンピュータ、ＰＤＡ、ディジタル放送の放送局および携帯電話機などに備えられる画像情報符号化装置として有用である（図１２参照）。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態の構成を示すブロック図である。
【図２】図１に示したCABAC処理部のより詳細な構成を示すブロック図である。
【図３】図１に示したレート制御判定部によるレート制御方法の一例を示すグラフである。
【図４】本実施の形態の画像情報符号化装置における各処理部のレート制御の手順を示すフローチャートである。
【図５】各量子化係数値に対応してCABAC処理部で発生する推定符号量を示す変換テーブルである。
【図６】図５に示した変換テーブルのより具体的な一例を示す図である。（ａ）は、量子化値が1から14までの値をとる場合の推定bit値を示すテーブルである。（ｂ）は、量子化値が15以上の値をとる場合の推定bit値を示すテーブルである。
【図７】DCT係数の値に対応して算術符号化による推定符号量を示す変換テーブルの一例を示す図である。（ａ）は、量子化変数QPごとに作成された変換テーブルの一例を示す図である。（ｂ）は、DCT係数を用いて符号量を推定しレート制御を行なう場合のデータおよび手順の流れを示す図である。
【図８】MB内の各画素の残差信号と、その残差信号から当該MBの符号量を推定するためのテーブルである。（ａ）は、ピクチャ内の各MBとその残差信号の絶対差分値和の一例を示す図である。（ｂ）は、MBごとの絶対差分値和に対応する当該MBの推定符号量を示すテーブルである。
【図９】算術符号化により実際に発生した符号量を参照して、変換テーブルを更新する方法を説明する図である。
【図１０】レート制御判定部の詳細な構成を示すブロック図である。
【図１１】目標符号量計算部の符号量の置き換えを説明する図である。
【図１２】本発明に係る画像情報符号化装置の一例の概観図である。
【符号の説明】
【００６８】
１００    予測処理部
１０１    DCT変換部
１０２    量子化部
１０３    CABAC処理部
１０４    バッファ
１０５    符号量推定部
１０６    レート制御判定部
２００    ２値化処理部
２０１    算術符号化部
２０３    CONTEXT計算部
４００    動画像圧縮部
１１      ２値化部
１２      算術符号化部
３０      累積符号量計算部
３１      累積推定符号量計算部
３２      累積目標符号量計算部
３３      目標符号量計算部
３４      量子化パラメータ算出部
３５      推定符号量置き換え部
【図１】
2009038746.tif 000003
【図２】
2009038746.tif 000004
【図３】
2009038746.tif 000005
【図４】
2009038746.tif 000006
【図５】
2009038746.tif 000007
【図６】
2009038746.tif 000008
【図７】
2009038746.tif 000009
【図８】
2009038746.tif 000010
【図９】
2009038746.tif 000011
【図１０】
2009038746.tif 000012
【図１１】
2009038746.tif 000013
【図１２】
2009038746.tif 000014