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