(57)【要約】【課題】復号画像の画質を向上できる画質信号の符号化方法及びその装置を提供する。【解決手段】画像信号を量子化する量子化装置であって、複数の量子化ステップを用いて発生符号量をそれぞれ算出し、該複数の量子化ステップの中から、目標符号量に最も近い２つの発生符号量を得られた２つの量子化ステップをそれぞれ示す量子化インデックスを取得する量子化インデックス取得手段と、量子化インデックス取得手段により取得された２つの量子化インデックスに示される量子化ステップの間で目標符号量以下となる最小の目標量子化ステップを探索し、探索して得られた目標量子化ステップを示す目標量子化インデックスを決定する目標量子化インデックス決定手段と、目標量子化インデックス決定手段により決定された目標量子化インデックスに示される目標量子化ステップで画像信号を量子化する量子化手段とを有する。【選択図】図１
2007037184.tif 000002
【特許請求の範囲】
【請求項１】
画像信号を量子化する量子化装置であって、
複数の量子化ステップを用いて発生符号量をそれぞれ算出し、該複数の量子化ステップの中から、目標符号量に最も近い２つの発生符号量を得られた２つの量子化ステップをそれぞれ示す量子化インデックスを取得する量子化インデックス取得手段と、
上記量子化インデックス取得手段により取得された２つの量子化インデックスに示される量子化ステップの間で上記目標符号量以下となる最小の目標量子化ステップを探索し、探索して得られた目標量子化ステップを示す目標量子化インデックスを決定する目標量子化インデックス決定手段と、
上記目標量子化インデックス決定手段により決定された目標量子化インデックスに示される目標量子化ステップで上記画像信号を量子化する量子化手段と、
を有する量子化装置。
【請求項２】
上記目標量子化インデックス決定手段は、上記量子化インデックス取得手段により取得された２つの量子化インデックスに示される量子化ステップを用いて直線近似によるバイナリサーチを行うことにより、上記目標量子化ステップを決定する
請求項１に記載の量子化装置。
【請求項３】
上記目標量子化インデックスを決定するのに必要な時間分、上記画像信号を遅延させる遅延手段を更に有し、
上記量子化手段は、上記遅延手段により遅延された画像信号を量子化する
請求項１に記載の量子化装置。
【請求項４】
上記量子化ステップ及び上記目標量子化ステップは、マクロブロック単位の量子化ステップである
請求項１に記載の量子化装置。
【請求項５】
画像信号を量子化する量子化方法であって、
複数の量子化ステップを用いて発生符号量をそれぞれ算出し、該複数の量子化ステップの中から、目標符号量に最も近い２つの発生符号量を得られた２つの量子化ステップをそれぞれ示す量子化インデックスを取得する量子化インデックス取得ステップと、
上記量子化インデックス取得ステップにより取得された２つの量子化インデックスに示される量子化ステップの間で上記目標符号量以下となる最小の目標量子化ステップを探索し、探索して得られた目標量子化ステップを示す目標量子化インデックスを決定する目標量子化インデックス決定ステップと、
上記目標量子化インデックスステップ手段により決定された目標量子化インデックスに示される目標量子化ステップで上記画像信号を量子化する量子化ステップと、
を有する量子化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動き補償とＤＣＴとを組み合わせた符号化に対して適用できる画像信号の符号化方法及びその装置に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Ｍｏｖｉｎｇ ＰｉｃｔｕｒｅｓＥｘｐｅｒｔ Ｇｒｏｕｐ）規格に代表される動き補償とＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）を組み合わせる画像圧縮方式では、伝送路に送出されるビットストリームが所望のレートになるように、符号量制御を行なっている。従来の符号量制御は、以前の量子化ステップと符号量の関係と現在の平均レートに基づいて、量子化ステップをフィードバック制御するものである。
【０００３】
図７は、動き補償とＤＣＴを組み合わせた画像圧縮符号化装置の一例を示す。ディジタル入力映像信号が入力端子Ｔ１を介して走査変換回路１に供給され、１フレームの画像が多数のマクロブロックに分割される。ＭＰＥＧでは、輝度信号に関して、４個のＤＣＴブロックから構成される（１６×１６）のサイズのブロックが構成される。色差信号Ｃｒ、Ｃｂに関して、（４：２：２）の場合、２個のＤＣＴブロックから構成される（８×８）のサイズのブロックが夫々構成される。これらの合計８個のＤＣＴブロックをまとめて一つのマクロブロックが構成される。
【０００４】
走査変換回路１でマクロブロック化されたデータは、減算回路２と動きベクトルを求めるための動き検出部３に供給される。動き検出部３では、現マクロブロックに対する参照画像からの動きベクトルを算出する。この動きベクトルが動き補償部４に供給され、動きベクトルを用いた動き補償がなされる。動き補償では、デコーダ側と同じ動き補償を行なうために、参照画像として後述のように、ローカルコードしたものを用いる。
【０００５】
減算回路２において、マクロブロックのデータがイントラ処理の場合では、減算処理がされずに、そのままＤＣＴ処理部５に供給される。一方、インター処理の場合では、動き補償部４からの画像データとの差分が算出され、この差分がＤＣＴ処理部５に供給される。
【０００６】
ＤＣＴ処理部５では、（８×８）のＤＣＴブロック毎にＤＣＴが施され、ＤＣＴ係数データが発生する。この係数データが量子化器６において量子化ステップにより量子化される。量子化器６によって量子化されたデータ（量子化レベルと称する）が可変長符号のエンコーダ７で可変長符号化される。可変長符号のエンコーダ７の出力がバッファ８に供給される。バッファ８からのビットストリームが出力端子Ｔ２を介して伝送路に送出される。バッファ８の出力のビットレートを伝送路のビットレートに応じて一定のものとするために、量子化器６の量子化ステップが制御される。
【０００７】
量子化器６の出力が逆量子化器９にも供給される。逆量子化器９の出力（代表値）が逆ＤＣＴ処理部１０に供給され、サンプル面の復号画像データが得られる。この画像データは、イントラ画像のときは、そのままローカル復号画像となる。一方、インター画像のときは、差分信号が復号されるので、動き補償部４からの動き補償された画像と加算回路１１で加算されることによって、復号画像データが得られる。
【０００８】
符号量制御は、量子化器５における量子化ステップを表す量子化インデックスを制御することでなされる。ＭＰＥＧ２でテストモデルとして提案されている符号量制御では、仮想バッファの残量と、以前エンコーダした際の量子化インデックスと発生符号量の関係を用いてフィードバック制御することによって、符号量制御を行なっている。
【０００９】
上述の従来の符号量制御は、以下のような問題点を有する。
第１に、フィードバック制御であるため、ダンピングを小さくすると反応は速いが振動的となり、ダンピングを大きくすると振動が減少するが、反応が遅くなってしまう。
第２にシーンチェンジのような箇所では瞬間的にレートが大きくなり、アプリケーションによっては再生画像に破綻を来したり、極端な画質劣化が生じる。
第３にある決められた枚数のフレームをある決められたビットレートに押さえ込むように制御するのが困難である。
【００１０】
この問題を解決するために、フィードフォワード方式で符号量を制御する方式が考えられている。これは、等長化単位において発生する符号量を、複数の量子化ステップについて予め計算し、発生符号量が目標符号量を超えない範囲で、適切な量子化ステップを決定するものである。
【００１１】
このようなフィードフォワード方式の符号量制御において、等長化単位としては、ＧＯＰ（Ｇｒｏｕｐ Ｏｆ Ｐｉｃｔｕｒｅ）、フレーム、マクロブロック等が考えられる。ＧＯＰは、１フレーム以上の画像データであり、ＭＰＥＧ２の場合では、ＧＯＰ単位で符号量を制御することが考えられる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述のように、符号量を制御する時に、複数の量子化ステップが互いに異なる固定値であり、その中の一つの量子化ステップがＧＯＰに対して選択されるために、マクロブロック毎に復号画像の画質の良否が異なる問題を生じる。例えば細かい絵柄のマクロブロックについては、画質が劣化し、逆に、平坦な絵柄のマクロブロックについては、画質が良好となる。隣接するマクロブロック間で、このような画質の差が大きい場合には、ブロック歪が生じる。
【００１３】
従って、この発明の目的は、フィードフォワード方式の符号量制御を採用し、画質信号の局所的性質に適応した制御を可能とすることによって、復号画像の画質を向上できる画質信号の符号化方法及びその装置を提供することになる。
【課題を解決するための手段】
【００１４】
本発明は、画像信号を量子化する量子化装置であって、
複数の量子化ステップを用いて発生符号量をそれぞれ算出し、該複数の量子化ステップの中から、目標符号量に最も近い２つの発生符号量を得られた２つの量子化ステップをそれぞれ示す量子化インデックスを取得する量子化インデックス取得手段と、
上記量子化インデックス取得手段により取得された２つの量子化インデックスに示される量子化ステップの間で上記目標符号量以下となる最小の目標量子化ステップを探索し、探索して得られた目標量子化ステップを示す目標量子化インデックスを決定する目標量子化インデックス決定手段と、
上記目標量子化インデックス決定手段により決定された目標量子化インデックスに示される目標量子化ステップで上記画像信号を量子化する量子化手段と、
を有する量子化装置としたものである。
【００１５】
また本発明は、画像信号を量子化する量子化方法であって、
複数の量子化ステップを用いて発生符号量をそれぞれ算出し、該複数の量子化ステップの中から、目標符号量に最も近い２つの発生符号量を得られた２つの量子化ステップをそれぞれ示す量子化インデックスを取得する量子化インデックス取得ステップと、
上記量子化インデックス取得ステップにより取得された２つの量子化インデックスに示される量子化ステップの間で上記目標符号量以下となる最小の目標量子化ステップを探索し、探索して得られた目標量子化ステップを示す目標量子化インデックスを決定する目標量子化インデックス決定ステップと、
上記目標量子化インデックスステップ手段により決定された目標量子化インデックスに示される目標量子化ステップで上記画像信号を量子化する量子化ステップと、
を有する量子化方法としたものである。
【発明の効果】
【００１６】
本発明によれば、復号画像の画質を向上できる。また、構成を簡略化することができる。
【発明を実施するための最良の形態】
【００１７】
以下、この発明を実施するための最良の形態について図面を参照して説明する。図１は、一形態としてのエンコーダの構成を示す。上述した図７のエンコーダの構成と同様に、図１に示すエンコーダは、動き補償およびＤＣＴを組み合わせて画像データを圧縮するものである。図７と対応する部分には、同一符号を付して示す。
【００１８】
処理される順に並べられた入力画像データが走査変換回路１においてマクロブロックに分割される。マクロブロック化されたデータが本線系と、動きベクトルを求めるための動き検出部３に向かう。動き検出部３では、現マクロブロックに対する、参照画像からの動きベクトルを算出する。この動きベクトルを用いて動き補償部２１が動き補償を行なう。この動き補償部２１は、入力画像データそのものを使用する。
【００１９】
本線系に向かったマクロブロックデータは、ＦＩＦＯ（Ｆｉｒｓｔ Ｉｎ Ｆｉｒｓｔ Ｏｕｔ）メモリ２２を介して減算回路２に供給される。イントラ処理の場合では、減算処理がされず、インター処理の場合では、動き補償部４からの予測画像を使用した減算処理がされる。減算回路２に対してＤＣＴ処理部５が接続される。この減算回路２およびＤＣＴ処理部５を含む本線系の符号化処理は、図７に示す構成と同様である。
【００２０】
図７の構成と異なるのは、動き補償部４に対して動きベクトルがＦＩＦＯ２３を介して供給されること、また、量子化器６の量子化ステップが後述するように決定された量子化ステップ（あるいは目標符号長）によりＤＣＴ係数データを量子化することである。
【００２１】
符号量制御は、複数の量子化ステップによって量子化を行い、その符号量をもとに実際の処理時の符号量を見積り、目標符号量を超えない範囲で最適な量子化ステップを決定することによって行われる。
【００２２】
動き補償部２１からの出力画像データが減算回路２４に供給される。減算回路２４では、イントラ処理の場合に減算処理が行なわれず、インター処理の場合に減算処理が行なわれる。減算回路２４の出力がＤＣＴ処理部２５に供給される。
【００２３】
ＤＣＴ処理部２５は、ＤＣＴ処理部５と同様に、ＤＣＴブロック毎にＤＣＴを施す。ＤＣＴ処理部２５からの係数データが複数の量子化器２６−１〜２６−ｎに供給され、異なる量子化インデックスが夫々示す量子化ステップで係数データが量子化される。量子化器２６−１〜２６−ｎからの量子化レベルが変換回路２７−１〜２７−ｎに供給される。量子化器２６−１〜２６−ｎの量子化インデックスは、マクロブロック毎に検出回路２９の出力によって制御される。この場合における量子化インデックスは、ｎ個の量子化器を識別するためのコード信号であり、一つの量子化インデックスによって、ＧＯＰ内のマクロブロック毎に決定された量子化ステップが指示される。
【００２４】
検出回路２９は、マクロブロックのアクティビティーを検出し、検出結果に応じて量子化ステップを変更するものである。ここで、アクティビティーは、画像の情報の複雑さを意味する。
【００２５】
ＤＣＴ処理部２５からのＤＣＴ係数データが検出回路２９に供給され、ＤＣＴ係数に基づいてマクロブロックのアクティビティーが検出される。一例として、ＤＣＴ係数の低域成分とその高域成分の分布を調べて、マクロブロックの画像が細かいものか、平坦なものかを検出する。
【００２６】
他の例として、色の飽和度をマクロブロック毎に調べ、飽和度が高い場合には、アクティビディーが高いと検出する。さらに、他の例として、マクロブロックの画像とチェッカーフラッグのパターンとのマッチングをとることによって、どの程度そのマクロブロックの画像が細かいかを調べるものがある。この場合では、係数データを使用しないで、画像データ自身でアクティビティーが検出される。検出回路２９によって、マクロブロックのアクティビティーが高いと検出されると、量子化器２６−１〜２６−ｎで使用する量子化ステップの全体をより小さいものとし、アクティビティーが低いと検出されると、量子化ステップの全体をより大きいものとする。
【００２７】
変換回路２７−１〜２７−ｎは、可変長符号化のエンコーダ７でなされる可変長符号化を行なった時に、符号化出力の符号長を示すデータを発生する。この符号長のデータが量子化インデックス決定回路２８に供給される。量子化インデックス決定回路２８によって決定された量子化インデックスが本線系の量子化器６に供給される。この決定された量子化インデックスによって、本線系の量子化器６が係数データを量子化する。この量子化インデックスには、マクロブロック毎に決定された量子化インデックスが含まれ、この量子化インデックスも量子化インデックス決定回路２８から出力され、ビットストリーム出力とともに伝送される。量子化インデックスを決定するのに必要な時間分、データおよび動きベクトルを遅らせる必要がある。ＦＩＦＯ２２及び２３は、この遅延用のものである。
【００２８】
次に、符号量制御について、より詳細に説明する。この形態では、ＧＯＰ単位で等長化し（すなわち、発生符号量を目標符号量Ｍ以下に制御し）、また、マクロブロック毎に量子化ステップを制御する。このＧＯＰ内のマクロブロックの個数をｍとする。
【００２９】
ＤＣＴ処理部２５において、マクロブロックの各ＤＣＴブロックのＤＣＴ係数Ｆ（ｉ）（ｉ＝１〜ｍ）が計算される。次に、ｎ個の量子化器２６−１〜２６−ｎ（ｊ＝１〜ｎ）によって量子化レベルＱＦ（ｉ、ｊ）が求められる。
ＱＦ（ｉ、ｊ）＝Ｆ（ｉ）／Δ（ｊ）
但し、Δ（ｊ）は、量子化器２６−１〜２６−ｎのそれぞれの量子化ステップであり、マクロブロック毎に検出回路２９によって制御される、可変の値である。例えば検出回路２９により検出されたマクロブロックのアクティビティーに応じた重み係数がｎ個の固定の量子化ステップに乗算されることによって、Δ（ｊ）が形成される。また、ｉ＜ｊならば、Δ（ｉ）＞Δ（ｊ）を満たすように、Δ（ｊ）が設定されている。
【００３０】
変換回路２７−１〜２７−ｎでは、量子化レベルＱＦ（ｉ、ｊ）のそれぞれが符号長へ変換され、マクロブロックｉの符号長Ｌ（ｉ、ｊ）が求められる。この符号長Ｌ（ｉ、ｊ）とＧＯＰの目標符号量Ｍから量子化インデックスを量子化インデックス決定回路２８が決定する。
【００３１】
まず、ｎ個の量子化インデックス（ｊ＝１〜ｎ）毎にＧＯＰ単位の総符号長を計算する。
ＳＵＭ（ｊ）＝Σ Ｌ（ｉ、ｊ）
Σは、ｉを１からｍまで変化させたときの合計を意味する。
【００３２】
次に、Ｍ＞ＳＵＭ（ｋ）’（ｋ＝１〜ｎ）を満たす最小のｋ値ＭＩＮＫを求める。ＭＩＮＫが求める量子化インデックスである。この量子化インデックスＭＩＮＫによって、そのＧＯＰのｍ個の量子化ステップΔ（１）〜Δ（ｎ）が指示される。量子化器の個数ｎは、ハードウエアの規模からそれほど多くすることができないので、Ｍ−ＳＵＭ（ＭＩＮＫ）の符号量のロスが発生する。
【００３３】
上述の形態では、入力画像を動き補償して減算回路２４において差分を形成し、この差分を量子化し、量子化レベルを符号長に変換している。一方、本線系の信号処理では、減算回路２に対してローカルデコードした予測画像を供給し、減算回路２からの差分値をＤＣＴ処理部５において処理している。このように、符号量を見積もる時に、入力画像を使用するので、ローカルデコードのために必要とされる構成（逆量子化器、逆ＤＣＴ処理部）をｎ個ではなく１個設ければ良い。すなわち、ハードウエアの簡略化を図ることができる。
【００３４】
一般的に、原画像を使用する動き補償の方がローカルデコードした画像を使用する動き補償と比して、発生符号量が少なくなる。この符号量の相違を考慮することによって、符号量制御での発生符号量の計算の精度を向上することができる。すなわち、マクロブロックの修正符号長Ｌ′を Ｌ′（ｉ、ｊ）＝Ｌ（ｉ、ｊ）×α（αは、α＞１の固定値）
とする。この修正のための係数αを伝送する必要がある。
【００３５】
さらに、量子化ステップを決定するのではなく、各マクロブロックの目標符号長Ｔ（ｉ）（ｉ＝１〜ｍ）を決定し、ＧＯＰの符号量を制御するようにしても良い。図２は、マクロブロックの目標符号長の計算を説明するものである。図２において、横軸がＧＯＰ内のｍ個のマクロブロックの番号を示し、縦軸がマクロブロックの符号長Ｌ（ｉ、ｊ）を示す。ｎ個の量子化器２６−１〜２６−ｎのそれぞれと対応して、ｎ個の変化（一部省略）が図２に示されている。
【００３６】
各マクロブロックの目標符号長Ｔ（ｉ）を下記のように求める。
Ｍ＞ＳＵＭ（ｋ）（ｋ＝１〜ｎ）を満たす最小のｋの値をＡとし、
Ｍ＜ＳＵＭ（ｋ）（ｋ＝１〜ｎ）を満たす最大のｋの値をＢとすると、
Ｔ（ｉ）＝｛（ＳＵＭ（Ｂ）−Ｍ）×（ｉ、Ａ）＋（Ｍ−ＳＵＭ（Ａ）×Ｌ（ｉ、Ｂ）｝／（ＳＵＭ（Ｂ）−ＳＵＭ（Ａ））
上述のように、各マクロブロックの符号長を定めると、
Σ Ｔ（ｉ、ｊ）＝Ｍ
（但し、Σは、ｉ＝１からｉ＝ｍまでのＴ（ｉ、ｊ）の合計を意味する。）
となり、基本的に符号量の損が発生しない効率の良い符号量制御が可能である。
【００３７】
上述のように目標符号長を決定する処理は、図１中の量子化インデックス決定回路２８に代わるブロックによりなされる。そして、目標符号長が量子化器６に供給される。量子化器６では、マクロブロックの発生符号長が目標符号長に収まるように、量子化ステップが決定される。この方法としては、先に特願平４−１１０８５８号により提案した方法を採用できる。すなわち、量子化ステップ数が２のｎ乗としたときに、発生符号長が量子化ステップの増大に対して単調減少なことを利用して、二分木探索法によって量子化ステップを決定する。この決定された量子化ステップによって量子化器６における量子化がなされる。従って、量子化インデックスは、この場合、量子化器６から出力される。
【００３８】
なお、変換符号化としてＤＣＴに限られず、ウェーブレット変換、Ｈａａｒ変換、Ｋ−Ｌ変換等に対しても、この発明を適用することができる。
また、この発明は、圧縮符号化されたデータを磁気テープに記録したり、ハードディスク、光磁気ディスクに記録する場合に対して適用できる。
さらに、マクロブロックの構造としては、（４：２：２）に限らず、（４：２：０）、（４：４：４）、（４：１：１）等の構造であっても良い。マクロブロック内に含まれるＤＣＴブロックの個数も限定されるものではない。
【００３９】
以上説明した形態における効果としては次のような効果がある。即ち、フィードフォワード制御であるので、フィードバック制御における問題を回避することができる。すなわち、シーンチェンジ時のデータ量の急変による再生画像の破綻を来すことなく、ある決められた枚数のフレームをある決められたビットレートに押さえ込むように制御することができる。
また、量子化ステップが画像の局所的性質により可変されるので、復号画像の画質を向上することができる。
【００４０】
〔他の形態〕
ところで、図１に示したエンコーダの量子化インデックス決定回路２８において、２分探索法を用いた場合においては、量子化インデックスのビット数に等しい数のバイナリサーチ回路が必要となる。例えば量子化インデックスのビット数が５ビットの場合には、５個のバイナリサーチ回路が必要となる。そこで、このバイナリサーチ回路の個数を減らすことにより、ハードの規模を小とすることを検討する。
【００４１】
説明を分かりやすくするために、図１に示したエンコーダで２分探索法を採用した場合のより詳しい構成を図３に示す。図１に示した量子化インデックス決定回路２８は、この図３に示されているところの、積算回路５１−１〜５１−ｎ、ＦＩＦＯ５２−１〜５２−ｎ、目標符号長決定回路５４並びに二分探索回路５３からなる。以下、図３に示す積算回路５１−１〜５１−ｎ、ＦＩＦＯ５２−１〜５２−ｎ、目標符号長決定回路５４並びに二分探索回路５３により、通常の２分探索法で目標符号長を決定する場合について説明する。一例として、直線近似を用いて割り当てる場合について説明する。ここで、積算回路５１−１〜５１−ｎは、夫々変換回路２７−１〜２７−ｎからの各符号長データを、例えば１フレーム分だけ積算する。ＦＩＦＯ５２−１〜５２−ｎは、夫々上記積算回路５１−１〜５１−ｎで費やされる処理時間分だけ、各量子化インデックスに対応する符号長データを遅延させるためのものである。
【００４２】
条件は、量子化ステップの総数は“０”〜“３１”まで合計で３２個あり、図３において、量子化器２６−１〜２６−ｎ、変換回路２７−１〜２７−ｎ、積算回路５１−１〜５１−ｎ並びにＦＩＦＯ５２−１〜５２−ｎの各符号の“ｎ”が、夫々“５”、即ち、上記各要素が夫々５個ずつあるものとする。
【００４３】
上記条件を設定した場合においては、各量子化器５１−ｊ（ｊ＝１、２、３、４、５）の量子化インデックスｑ［ｊ］を、表１に示される通りとする。
【００４４】
［表１］
量子化器ｊ      量子化インデックスｑ［ｊ］
１                    ０
２                    ７
３                  １５
４                  ２３
５                  ３１            ・・・（表１）
【００４５】
そして、量子化器ｊによるｉ番目のマクロブロックの符号長を、ｌｌ（ｉ、ｑ［ｊ］）とする。そして、Σiｌｌ（ｉ、ｑ［ｊ］）をプロットすると、量子化器ｊによる１フレーム分の符号長の積算値は、図４に示すようになる。図４において、縦軸は符号長を示し、横軸は量子化器ｊを示す。また、ｔｇｔは、目標とする符号長を示し、入力端子５４ａを介して外部から入力される。
【００４６】
この図４から分かるように、ＤＣＴ処理部２５からの係数データは、図３に示されている量子化器２６−１〜２６−５においては、各固定の量子化インデックスにより量子化される。各量子化器２６−１〜２６−５で量子化された結果得られる符号長は、図４から分かるように、夫々、Σiｌｌ（ｉ、ｑ［１］）〜Σiｌｌ（ｉ、ｑ［５］）となる。そして、目標符号長ｔｇｔは、量子化器２６−３により量子化されたときの符号長であるところの符号長Σiｌｌ（ｉ、ｑ［３］）と、量子化器２６−４により量子化されたときの符号長であるところの符号長Σiｌｌ（ｉ、ｑ［４］）の間にあることは、図４から容易に分かる。
尚、上記［］内の数値は、表１における量子化器の番号を示すものとする。
【００４７】
つまり、目標符号長ｔｇｔを得ることのできる量子化インデックスｑ［ｊ］は、量子化器２６−３の持つ量子化インデックスｑ［１５］と、量子化器２６−４の持つ量子化インデックスｑ［２３］との間にあることが分かる。よって、図４において、符号長Σiｌｌ（ｉ、ｑ［３］）及び符号長Σiｌｌ（ｉ、ｑ［４］）間を直線近似すれば、上記目標符号長ｔｇｔを満足するマクロブロック毎の目標符号長を求めることができることは明かである。
【００４８】
ここで、マクロブロックｊの目標符号長データをｌｌ（ｉ）とすると、この目標符号長ｌｌ（ｉ）は、次に示す式１で求めることができる。
ll(i)＝｛(Σkll(k、q[3])−tgt)・ll(i、q[4])＋(tgt−Σkll(k、q[4]))・ll(i、q[3])｝／｛Σkll(k、q[3])−Σkll(k、q[4])｝
・・・（式１）
【００４９】
ここで、（Σkｌｌ（ｋ、ｑ［３］）−ｔｇｔ）は、量子化器２６−３によるｋ番目のマクロブロックの符号長−ターゲットの符号長を意味し、 ｌｌ（ｉ、ｑ［４］）は、量子化器２６−４による１番目のマクロブロックの符号長を意味し、 （ｔｇｔ−Σkｌｌ（ｋ、ｑ［４］）は、ターゲットの符号長−量子化器２６−４によるｋ番目のマクロブロックの符号長を意味し、 ｌｌ（ｉ、ｑ［３］）は、量子化器２６−３によるｉ番目のマクロブロックの符号長を意味し、 Σkｌｌ（ｋ、ｑ［３］）は、量子化器２６−３によるｋ番目のマクロブロックの符号長を意味し、 Σkｌｌ（ｋ、ｑ［４］）は、量子化器２６−４によるｋ番目のマクロブロックの符号長を意味する。
【００５０】
上記式１で示されるように、マクロブロックｊの目標符号長データｌｌ（ｉ）は、図３に示した目標符号長決定回路５４により決定される。この目標符号長データｌｌ（ｉ）は、図３に示した二分探索回路５３に供給される。一方、目標符号長決定回路５４は、目標符号長ｔｇｔを得ることのできる量子化インデックスは、量子化器２６−３の持つ量子化インデックスｑ［１５］と、量子化器２６−４の持つ量子化インデックスｑ［２３］との間にあることが分かっている。
【００５１】
即ち、目標符号長決定回路５４は、ｍｉｎj（ｌｌ（ｉ、ｑ［ｊ］）≦ｌｌ（ｉ））を満足する量子化インデックスｑ［ｊ］が、ｑ［１５］とｑ［２３］であることを検出している。
そして、上記目標符号長決定回路５４からの目標符号長データｌｌ（ｉ）を満足する最小の量子化インデックスを決定する。
【００５２】
ここで、図５を参照して、二分探索法について詳しく説明する。図５において、横軸は量子化インデックスを、縦軸は符号長を夫々示す。この図５に示すグラフは、ｑ０〜ｑ３１までの３２個の量子化インデックスによりマクロブロックｉを量子化し、更にこれを可変長符号化したときの符号長をプロットしたものである。ここで、目標符号長データｌｌ（ｉ）を満足する最小の量子化インデックスデータｑ、即ち、ｑｉ＝ｍｉｎj（ｌｌ（ｉ、ｑ［ｊ］）≦ｌｌ（ｉ））の解を求めることについて検討する。
【００５３】
この場合、量子化インデックスのビット数が５ビットであるから、５ビットの最上位ビットから最下位ビットまでの各ビットを、順次、５つのステップで求めることになる。この５つのステップにおいて量子化インデックスの上位から下位までの各ビットを求める処理は、次の通りである。
【００５４】
〔ステップ１：最上位ビットの検出処理〕
最初のステップであるところのステップ１では、解がｑ０〜ｑ３１までの範囲内に存在することしか分からない。そこで、その解の範囲を二分する点、即ち、量子化インデックスｑ１５における符号長データであるところのｌｌ（ｉ、ｑ１５）を求める。この符号長データｌｌ（ｉ、ｑ１５）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値よりも大きい。即ち、ｌｌ（ｉ、ｑ１５）＞ｌｌ（ｉ）である。従って、解の存在範囲は、ｑ１６〜ｑ３１の範囲内に存在することが分かる。よって、ステップ１においては、量子化インデックスの最上位ビットが、“１”とされる。“１６”〜“３１”を５ビットで表す場合、最上位ビットは“１”であることから容易に理解できよう。ステップ１における上記結果であるところの“１ｘｘｘｘ”（“ｘ”は分かっていないことを示す）は、次のステップ２で用いられる。
【００５５】
〔ステップ２：２番目のビットの検出処理〕
２番目のステップであるところのステップ２では、上記ステップ１の処理により、解がｑ１６〜ｑ３１までの範囲内に存在することが分かっている。そこで、ステップ２では、その解の範囲を二分する点、即ち、量子化インデックスｑ２３における符号長データであるところのｌｌ（ｉ、ｑ２３）が求められる。この符号長データｌｌ（ｉ、ｑ２３）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値よりも小さい。即ち、ｌｌ（ｉ、ｑ２３）＜ｌｌ（ｉ）である。従って、解の存在範囲は、ｑ１６〜ｑ２３の範囲内に存在することが分かる。よって、ステップ２では、量子化インデックスの２番目のビットが、“０”とされる。“１６”〜“２３”を５ビットで表す場合、上位から２番目のビットは“０”であることから容易に理解できよう。ステップ２における上記結果であるところの“１０ｘｘｘ”（“ｘ”は分かっていないことを示す）は、ステップ３で用いられる。
【００５６】
〔ステップ３：３番目のビットの検出処理〕
３番目のステップであるところのステップ３では、上記ステップ２の処理により、解がｑ１６〜ｑ２３までの範囲内に存在することが分かっている。そこで、その解の範囲を二分する点、即ち、量子化インデックスｑ１９における符号長データであるところのｌｌ（ｉ、ｑ１９）を求める。この符号長データｌｌ（ｉ、ｑ１９）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値以下である。即ち、ｌｌ（ｉ、ｑ１９）≦ｌｌ（ｉ）である。より正確にいえば、符号長データｌｌ（ｉ、ｑ１９）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値と同じである。即ち、ｌｌ（ｉ、ｑ１９）＝ｌｌ（ｉ）である。従って、解の存在範囲は、ｑ１６〜ｑ１９の範囲内に存在することが分かる。よって、ステップ３では、量子化インデックスの３番目のビットが、“０”とされる。“１６”〜“１９”を５ビットで表す場合、上位から３番目のビットは“０”であることから容易に理解できよう。ステップ３における上記結果であるところの“１００ｘｘ”（“ｘ”は分かっていないことを示す）は、ステップ４において用いられる。
【００５７】
〔ステップ４：４番目のビットの検出処理〕
４番目のステップであるところのステップ４では、上記ステップ３の処理により、解がｑ１６〜ｑ１９までの範囲内に存在することが分かっている。そこで、その解の範囲を二分する点、即ち、量子化インデックスｑ１７における符号長データであるところのｌｌ（ｉ、ｑ１７）を求める。この符号長データｌｌ（ｉ、ｑ１７）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値より大きい。即ち、ｌｌ（ｉ、ｑ１７）＞ｌｌ（ｉ）である。従って、解の存在範囲は、ｑ１８〜ｑ１９の範囲内に存在することが分かる。よって、ステップ４においては、量子化インデックスの４番目のビットが、“１”とされる。“１８”〜“１９”を５ビットで表す場合、上位から４番目のビットは“１”であることから容易に理解できよう。ステップ４における上記結果であるところの“１０００ｘ”（“ｘ”は分かっていないことを示す）は、ステップ５において用いられる。
【００５８】
〔ステップ５：第５バイナリサーチ回路による５番目のビットの検出処理〕
５番目のステップであるところのステップ５では、上記ステップ４の処理により、解がｑ１８〜ｑ１９までの範囲内に存在することが分かっている。そこで、その解の範囲を二分する点、即ち、量子化インデックスｑ１８における符号長データであるところのｌｌ（ｉ、ｑ１８）を求める。この符号長データｌｌ（ｉ、ｑ１８）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値以下である。即ち、ｌｌ（ｉ、ｑ１８）≦ｌｌ（ｉ）である。より正確にいえば、符号長データｌｌ（ｉ、ｑ１８）の値は、図５を見ると分かるように、目標符号長データｌｌ（ｉ）の値と同じである。即ち、ｌｌ（ｉ、ｑ１８）＝ｌｌ（ｉ）である。従って、解の存在範囲は、ｑ１８〜ｑ１８の範囲内に存在すること、即ち、解がｑ１８であることが分かる。よって、ステップ５では、量子化インデックスの最下位ビットが、“０”とされる。“１８”を５ビットで表す場合、最下位ビットは“０”であることから容易に理解できよう。ステップ５における上記結果であるところの“１００１０”は、量子化器６における量子化インデックスとして用いられる。
【００５９】
以上説明したように、二分探索法を用いた場合には、５つの処理ステップを用いることにより、確実に量子化インデックスを求めることができる。しかしながら、５つの処理ステップを用いなければならないので、図３に示した二分探索回路５３を、５つのバイナリサーチ回路で構成しなければならなくなり、ハード規模が大となる。そこで、本形態においては、バイナリサーチ回路の数を最小限にすることを検討する。
【００６０】
既に説明したように、目標符号長決定回路５４は、目標符号長ｔｇｔを得ることのできる量子化インデックスは、量子化器２６−３の持つ量子化インデックスｑ［１５］と、量子化器２６−４の持つ量子化インデックスｑ［２３］との間にあることが分かっている。即ち、目標符号長決定回路５４は、ｍｉｎj（ｌｌ（ｉ、ｑ［ｊ］）≦ｌｌ（ｉ））を満足する量子化インデックスｑ［ｊ］が、ｑ［１５］とｑ［２３］であることを検出している。そこで、本形態においては、目標符号長決定回路５４が、上記量子化インデックスｑ［１５］とｑ［２３］を、二分探索回路５３に供給するようにすると共に、目標符号長ｔｇｔを得ることのできる量子化インデックスｑ［Ｊ］が、上記量子化インデックスｑ［１５］とｑ［２３］の間にあるという情報を、積極的に利用するようにする。
【００６１】
即ち、目標符号長決定回路５４において、マクロブロックｉの目標符号長ｌｌ（ｉ）と、ｍｉｎj（ｌｌ（ｉ、ｑ［ｊ］≦ｌｌ（ｉ））であるところの量子化インデックスｑ［ｊ］が求められているので、この情報を積極的に用いることにより、解の範囲が、ｑ［ｊ−１］からｑ［ｊ］であることが最初から分かるのである。上記表１の例から言えば、解の範囲は、通常の二分探索法では“０”〜“３１”までの３２個の範囲だったのが、本形態においては、“１５”〜“２３”までの８個の範囲とすることができる。つまり、この例では、解の範囲は、ｑ［３］（＝ｑ１５）より大きくｑ［４］（＝ｑ２３）以下の範囲にあることになる。よって、本形態によれば、従来の二分探索法のステップ３から処理を行えば良いことになる。
【００６２】
つまり、目標符号長決定回路５４において、既に解の範囲が、ｑ［３］（＝ｑ１５）からｑ［４］（＝ｑ２３）の範囲内にあることが分かっているのであるから、二分探索回路５３においては、ステップ１とステップ２の処理を省略し、ステップ３から二分探索を開始すれば良いことになる。そして、このことは、図３に示した二分探索回路５３を構成するバイナリサーチ回路を５つから３つにすることができることを意味する。二分探索のステップ数は、次の式２で表すことができる。
二分探索のステップ数 ＝ｌｏｇ2量子化器の量子化インデックスの差分 ・・・（式２）
実際には、検出回路５０によって求められたアクティビティデータにより、量子化器２６−１〜２６−ｎに与えられる量子化インデックスを変化させることができる。しかしながら、この場合においても、量子化器２６−１〜２６−ｎの量子化インデックスの差分の最大値を、上記式２に代入したときに得ることのできる二分探索のステップ数により、二分探索を行うことができる。
【００６３】
次に、図６を参照して、図３に示したエンコーダの動作について説明する。
図６Ａは、アクティビティーの検出出力を示し、図６Ｂは、ＤＣＴ出力を示し、図６Ｃは、量子化出力を示し、図６Ｄは、変換出力を示し、図６Ｅは、積算出力を示し、図６Ｆは、ＦＩＦＯ出力を示し、図６Ｇは、目標符号長決定出力を示し、図６Ｈは、ＦＩＦＯ出力を示し、図６Ｉは、二分探索出力を示し、図６Ｊは、量子化出力を示し、図６Ｋは、可変長符号化出力を示す。また、図６Ａ〜図６Ｋの各括弧内には、フレーム番号と、そのフレーム番号におけるマクロブロックの番号を夫々示す。例えば、“（ｎ＋１、１４３９）”は、“ｎ＋１”フレームの、“１４３９”番のマクロブロックであることを意味する。この例においては、１フレーム分の全マクロブロックの個数は、０番〜１４３９番までの合計１４４０個の場合を想定している。
【００６４】
図３に示す入力端子Ｔ１に映像信号が入力される。この映像信号は、走査変換回路１においてフレーム単位にされた後にブロック化される。ブロック化された映像信号は、検出回路５０に供給され、ここでアクティビティーが検出される。
【００６５】
また、ブロック化された映像信号は、ＤＣＴ処理部２５において直流成分から高次交流成分までの係数データに変換される。図６Ａに示されるアクティビティー検出出力は、量子化器２６−１〜２６−ｎに夫々供給される。一方、図６Ｂに示されるＤＣＴ処理部２５からのＤＣＴ出力は、量子化器２６−１〜２６−ｎに夫々供給され、夫々量子化される。
【００６６】
図６Ｃに示す各量子化器２６−１〜２６−ｎの量子化出力は、変換回路２７−１〜２７−ｎに夫々供給される。各変換回路２７−１〜２７−ｎにおいては、量子化器２６−１〜２６−ｎからの量子化出力が、符号長データに変換される。
【００６７】
図６Ｄに示す変換出力は、積算回路５１−１〜５１−ｎ並びにＦＩＦＯ５２−１〜５２−ｎに夫々供給される。積算回路５１−１〜５１−ｎにおいては、図６Ｅに示されるように、フレーム毎の符号長データの積算が行われる。図６Ｅに示す積算出力と、図６Ｆに示すＦＩＦＯ出力は、目標符号長決定回路５４に夫々供給される。
【００６８】
目標符号長決定回路５４においては、既に説明したように、目標符号長データｌｌ（ｉ）と、これを得ることのできる量子化インデックスに最も近い量子化インデックスが求められる。図６Ｇに示す目標符号長決定回路５４からの目標符号長決定出力は、二分探索回路５３に供給される。一方、ＤＣＴ処理部２５からのＤＣＴ出力は、ＦＩＦＯ２２に供給され、ここで一旦遅延される。二分探索回路５３においては、既に説明したように、目標符号長決定回路５４からの情報により、目標符号長を得ることのできる量子化インデックスに最もその値の近い２つの量子化インデックス間でのみ二分探索処理を行う。図６Ｈに示すＦＩＦＯ出力は、二分探索が終了して量子化インデックスが求められた時点に合わせられて出力される。従って、図６Ｈに示すＦＩＦＯ出力と、図６Ｉに示す二分探索出力は、共に量子化器６に供給される。
【００６９】
量子化器６に供給されたＦＩＦＯ出力は、図６Ｉに示す二分探索出力であるところの量子化インデックスにより量子化される。図６Ｊに示す量子化出力は、可変長符号化回路７に供給され、符号化される。図６Ｋに示す可変長符号化出力は、バッファ８を介して出力端子Ｔ３からビットストリーム出力として出力される。
【００７０】
〔変形例〕
１．上記形態では、変換符号化としてＤＣＴを用いた場合について説明したが、ウエーブレット変換、Ｈａａｒ変換、Ｋ−Ｌ変換等を用いても良い。
２．上記形態では、ＶＴＲを用いた場合について説明したが、記録媒体としてはテープである必要はなく、光磁気記録ディスクやハードディスクでも良い。また、記録メディアを用いないもの、例えば通信系のようなものでも良い。
３．上記形態では、４：２：２フォーマットのマクロブロック構造を採用した場合について説明したが、４：２：０、４：４：４、４：４：１フォーマットのマクロブロックの構造を採用しても良い。また、マクロブロックを構成するＤＣＴブロックの個数に制限はない。
４．上記形態では、１フレームでビットレートを維持するように制御した場合について説明したが、これよりも大きい単位、或いは小さい単位であっても良い。
５．上記形態では、静止画のビットリダクションについで説明したが、図３に示したＤＣＴ２５を、動き検出回路とＤＣＴとで構成し、動画のビットリダクションに応用することもできる。
６．上記形態では、量子化器（固定量子化器）に符号量からマクロブロック毎の目標符号長の予測方法として、直線近似による補間を用いる場合について説明したが、より多くの点を用いる高次関数による近似を行っても良い。
７．上記形態では、アクティビティーを求める方法としてＤＣＴを行う前のデータを用いた場合について説明したが、ＤＣＴを行った後のデータを用いてアクティビティーを求めるようにしても良い。
【００７１】
〔実施の形態における効果〕
以上説明したように、本形態においては、目標符号長決定回路５４で求められた、２つの量子化インデックスの間に限って二分探索処理を行うようにしたので、従来の方法と比較して、二分探索回路５３を構成するバイナリサーチ回路の数を少なくすることができるといった絶大なる効果がある。しかも、画像信号の局所的な性質を考慮しつつ、ＶＴＲのようなアプリケーションでも画像の破綻を招くことがないフィードフォワード方式の符号画制御を達成することができるといった効果をも維持できる。
【産業上の利用可能性】
【００７２】
本発明による画像信号の符号化方法及びその装置は、例えばＶＴＲ、光磁気ディスクドライブ、ハードディスクドライブ、シリコンディスクドライブ、データ伝送装置、通信システム等に適しており、マクロブロックの絵柄の細かさのような画像の局所的性質に応じて量子化ステップを変更することによって、復号画像の画質を向上できる。また、符号量を見積もる時に、入力画像信号に対して動き補償を行なうことによって、複数の量子化ステップに対応してローカルデコードのための構成を設ける必要がなく、また、符号量制御における処理ステップを減らすことにより、構成を簡略化することができるものである。
【図面の簡単な説明】
【００７３】
【図１】符号化のエンコーダの一形態を示すブロック図である。
【図２】マクロブロック符号長とマクロブロック番号との関係を示すグラフである。
【図３】符号化のエンコーダの他の形態を示すブロック図である。
【図４】各量子化器（固定量子化器）の１フレーム分の積算値を示すグラフである。
【図５】二分探索法を説明するためのグラフである。
【図６】図３に示した符号化のエンコーダの動作を説明するためのタイミングチャートである。  図６Ａは、アクティビティーの検出出力を示すタイミングチャートである。  図６Ｂは、ＤＣＴ出力を示すタイミングチャートである。  図６Ｃは、量子化出力を示すタイミングチャートである。  図６Ｄは、変換出力を示すタイミングチャートである。  図６Ｅは、積算出力を示すタイミングチャートである。  図６Ｆは、ＦＩＦＯ出力を示すタイミングチャートである。  図６Ｇは、目標符号長決定出力を示すタイミングチャートである。  図６Ｈは、ＦＩＦＯ出力を示すタイミングチャートである。  図６Ｉは、二分探索出力を示すタイミングチャートである。  図６Ｊは、量子化出力を示すタイミングチャートである。  図６Ｋは、可変長符号化出力を示すタイミングチャートである。
【図７】従来の符号化のエンコーダの一例のブロック図である。
【符号の説明】
【００７４】
１…走査変換回路、２，１１，２４…加算回路、３…動き補償回路、５，２１…動き検出回路、２５…ＤＣＴ処理部、２５−１〜２６−ｎ…量子化器、７…可変長符号化回路、８…バッファ、９…逆量子化器、１０…ＩＤＣＴ処理部、２２，２３，５２−１〜５２−ｎ…ＦＩＦＯ、２７−１〜２７−ｎ…変換回路、２８…量子化インデックス決定回路、２９，５０…検出回路、５１−１〜５１−ｎ…積算回路、５３…二分探索回路、５４…目標符号長決定回路
【図１】
2007037184.tif 000003
【図２】
2007037184.tif 000004
【図３】
2007037184.tif 000005
【図４】
2007037184.tif 000006
【図５】
2007037184.tif 000007
【図６】
2007037184.tif 000008
【図７】
2007037184.tif 000009