(57)【特許請求の範囲】
【請求項１】
複数の符号ワードのブロックにそれぞれのフレームを分離してフレームで発生するビデオ信号を量子化する量子化装置であって、
符号ワードのブロックの源と、
前記符号ワードのブロックのそれぞれについて符号化されたデータの量を決定する手段であって、該符号化されたデータは、予め定められた量子化係数をもって量子化される前記符号ワードのブロックに対応する手段と、
前記複数のブロックについての符号化されたデータの量の平均または平均値の関数である閾値を発生する閾値発生手段と、
前記符号ワードのブロックのそれぞれにおいて符号化されたデータの量が前記閾値より大きいか小さいかを決定する比較手段と、
データの量が前記閾値より小さい前記符号化されたデータに対応する符号ワードのブロックを、予め定められた画像品質で再生させるために選定される更に予め定められた量子化係数に従って量子化し、且つデータの量が前記閾値より大きい前記符号化されたデータに対応する符号ワードのブロックを前記更に予め定められた量子化係数より大きい量子化を与えるように設定された更なる量子化係数で量子化する手段であって、前記更に予め定められた量子化係数は前記予め定められた量子化係数と同一とすることができる手段とを具えた量子化装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ビデオ信号圧縮システムにおける量子化装置に関する。
【０００２】
【発明の背景】
ビデオ信号の圧縮装置は、通常、部分的に圧縮された信号から成る符号のワードを量子化する回路を含んでおり、その結果、量子化された多くの符号ワードが同じような値をとり、この状態はランレングス（ｒｕｎ  ｌｅｎｇｔｈ）符号化に通じる。次に、量子化された符号ワードは、典型的には、ラン／可変長符号化され、圧縮されたフォーマットの信号を発生する。“部分的に圧縮された信号”という用語は、例えば、離散的余弦変換（ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｆｏｒｍ：ＤＣＴ）プロセッサにより供給される信号に関連している。ＤＣＴプロセッサにより与えられるビデオデータは、例えば、８×８の隣接ピクセルのマトリックスを表わす８×８の係数から成るブロックにおいても生じる。ブロック中の各係数は、典型的には、各係数の相対的重要度に依存して個々の量で量子化される。このような係数のブロックを量子化する場合、量子化マトリックスが使用される。この量子化マトリックスは、ブロック中の各係数に供給される量子化値を含んでいる。ビデオデータの量子化は、係数（符号ワード）から成るすべてのブロックに対して量子化値から成る同一のマトリックスもしくはテーブルを適用することにより実行される。この量子化法は、マトリックス中の量子化値が異なるものであるけれども、ここでは固定の量子化法と呼ぶことにする。ビデオ信号の個々のフレームは個々の画像を表わすので、固定量子化法によって得られる圧縮ビデオデータの量はフレーム毎に可変であり、可変ビットレート（ｖａｒｉａｂｌｅ  ｂｉｔ  ｒａｔｅ：ＶＢＲ）の圧縮を生じさせる。
【０００３】
或る種の信号伝送システムは、可変ビットレートの圧縮信号を効率的に処理することができない。従って、一定ビットレート（ｃｏｎｓｔａｎｔ  ｂｉｔ  ｒａｔｅ：ＣＢＲ）の圧縮システムが開発されている。一定ビットレートの圧縮システムにおいて、符号ワードの量子化は、圧縮データの数を制御するために適応的に行なわれる。典型的には、圧縮データの量が監視され、フレーム当たりの圧縮ビット数をほぼ一定にするために、量子化値は圧縮データの量に反比例して変えられる。また、適応形量子化システムは、係数から成るブロックを量子化するための量子化値のテーブルを使用する。適応性は、典型的には、ブロックの各係数に供給するために量子化値がテーブルから読み出されるとき、量子化値をスケーリングするだけで実現される。通常、量子化テーブルから供給されるすべての量子化値は、同じ因数でスケール化されるが、スケール因数はブロック毎に変わる。
【０００４】
一定ビットレートの圧縮システムでは、画像品質がフレームからフレームで変わる傾向にあるが、伝送するために圧縮信号が他の信号と多重化されるような場合には一定ビットレートは都合がよい。一方、可変ビットレートの圧縮信号はフレームからフレームでほぼ一定の画像品質を与える傾向にあるが、多重化信号状況で伝送することにより困難である。
【０００５】
【発明の概要】
本発明は、圧縮データの量に制限を与える量子化システムであるが、フレームからフレームで画像品質をほぼ一定に保つものである。本発明のシステムは、符号化されたビデオデータを量子化する量子化器を含んでおり、さらに出力データの量を監視する装置を含んでいる。出力データの量が所定値より小さいかもしくは大きいかに依存して、量子化器は、個別のモードで動作するように制御される。
発明の構成
符号ワードのブロックとして発生するビデオデータを量子化する量子化装置であって、
符号ワードから成るブロックの源（１３）と、
閾値を発生する閾値発生手段（２７）と、
各ブロックにおけるデータの量が前記閾値より大きいか小さいかを決定する比較手段（２７，２８）と、
データの量が前記閾値より小さい符号ワードのブロックを予め定められる量子化値に従って符号ワードのブロックを量子化し、且つデータの量が前記閾値より大きい符号ワードのブロックを前記予め定められる量子化値より大きい量子化を与えるように設定された量子化値で符号ワードのブロックを量子化する手段（１４）とを具えた、前記量子化装置。
【０００６】
【実施例】
本発明は、例えば、ＭＰＥＧと類似の圧縮システムのようなブロックもしくはマクロブロック形式の信号圧縮／処理を行う形式のビデオ信号圧縮システムを背景にして説明が行われる。ＭＰＥＧは国際標準化機構（ＩＳＯ）の動画専門家委員会（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｃｏｍｍｉｔｔｅｅ）により開発されたシステム標準である。ＭＰＥＧと類似のシステムの一例は、米国特許第５，１２２，８７５号明細書に開示されている。ＭＰＥＧと類似のシステムでは、連続するフレームの各グループ、画像のグループ（ｇｒｏｕｐｓ  ｏｆ  ｐｉｃｔｕｒｅｓ：ＧＯＰ）について動きが補償された予測圧縮が実行される。圧縮された画像のグループ内において、フレームがフレーム内処理により圧縮されたか、順方向フレーム間処理により圧縮されたか、両方向のフレーム間処理により圧縮されたかどうかに依り、フレームは、Ｉ、Ｐ、もしくはＢと呼ばれる。個々のフレーム形式は個別に圧縮され、異なるフレーム形式についての圧縮データの量は、同じ画像についてさえ異なったものとなる。従って、個別に圧縮されたフレーム形式については個別の量子化値が適当である。
【０００７】
ＭＰＥＧと類似のシステムにおける圧縮画像データは、例えば、１６×１６の隣接ピクセルから成るマトリックスを表すマクロブロックで構成される。各マクロブロックは、ルミナンスデータから成る８×８ブロックが４個と、クロミナンスデータから成る８×８ブロックが２個とから成る。クロミナンスデータの８×８の各ブロックは、全体として１６×１６のピクセル・マトリックスを表す。マクロブロックは、スライス（ｓｌｉｃｅ）で構成され、各スライスは、例えば、ビデオ信号の１６本の水平ラインを表す。従って、４９６本の有効ラインから成る１フレームは、３１個のスライスで表すことができる。ＭＰＥＧと類似のシステムでは、マクロブロックを基にしてデータを量子化するのが普通である。
【０００８】
本発明における量子化は、符号化データの総量が所定量を越えない限り、固定の量子化値を使って通常行われる。１つの実施例において、もし符号化データの総量が所定量を越えると、或る限界を越えるデータのマクロブロックだけが適応的に量子化され、残りのマクロブロックについてはすべて固定の量子化が行われる。ＭＰＥＧと類似の圧縮状況では、最大の符号ワード目標値は、画像のグループについて設定される。この最大の目標値ＲＧＯＰは、各フレームについて使用される圧縮方法に従って画像のグループ中の各フレーム中に分配される。このＲＧＯＰは、各量子化マトリックス中の量子化値を変更するために使われる全体の量子化因数ＱＩ，ＱＰ，ＱＢの反映される。
【０００９】
選択した画像品質で画像のグループを符号化するために使用されるビット総数Ｒは、次式から推定される。
【００１０】
【数１】
0003688730.tif 000002
【００１１】
ここで、ｒＩ，ｒＰ，ｒＢは、それぞれ可変ビットレートのフレーム内符号化、順方向および双方向フレーム間予測フレーム符号化についての平均ビットレートであり、Ｎは画像のグループ中のフレーム数、Ｍは２つのＰフレーム間のＢフレーム数である。システムの開始時、最初の画像のグループにおけるｒＩ，ｒＰ，ｒＢについて公称値が使われ、その後最初のＩ、Ｐ、Ｂのフレームが現画像のグループについて符号化されるまでの前の画像のグループからの値が使われる。もし推定値ＴがＲＧＯＰより小さいと、画像のグループは固定の量子化値で量子化され、所定の画像品質を発生する。推定値ＲがＲＧＯＰより小さくなければ、目標ビット割り当てＲｊが次式に従って各フレーム形式について計算される。
【００１２】
【数２】
0003688730.tif 000003
【００１３】
各フレームは最初固定量子化値で圧縮され、そのフレームについて符号化ビットの総数ｒｊが計数される。この最初の圧縮終了後、過剰レート分数（ｅｘｃｅｓｓ  ｒａｔｅ  ｆｒａｃｔｉｏｎ）ｘｓ−ｆｒａｃが次式により計算される。
【００１４】
【数３】
0003688730.tif 000004
【００１５】
また、閾値ＴｈＶは次式により計算される。
【００１６】
ＴｈＶ＝Ｅ［ｍｂｓｉｚｅ］＋ＳｔＤ［ｍｂｓｉｚｅ］
【００１７】
ここで、Ｅ［ｍｂｓｉｚｅ］はフレームにおけるマクロブロック当りに圧縮ビットの平均数であり、ＳｔＤ［ｍｂｓｉｚｅ］はマクロブロック当りのビット数における標準偏差である。閾値ＴｈＶは、量子化の前後の何れかにおいて各マクロブロック中のデータ量を使って計算される。すなわち、ＴｈＶは、量子化されていないデータもしくは量子化データの関数でよい。
【００１８】
ｘｓ−ｆｒａｃの値が零より小さいと、符号化ビット数は設定された限度内にあり、最初の圧縮パス（ｐａｓｓ）で使われた固定量子化値を使うことによりフレームは通常の可変ビットレートのモードで符号化される。ｘｓ−ｆｒａｃの値が零より小さくなれば、第２の圧縮パスが呼び出される。第２の圧縮パスにおいて、その大きさがＴｈＶより小さいマクロブロックのすべてについて固定の量子化値が使われる。残りのマクロブロックについては、より大きい量子化係数が選択される。この大きい方の量子化係数は、ある公式に従って選定され、および／または、例えばｍｂｓｉｚｅ（ｉ）とＴｈＶの差に依存して選択される。この場合、起り得る差の値は幾つかの範囲に区分され、量子化係数の増分が各範囲に割り当てられる。取り得る差の値は３つの範囲に分けられるものとする。この３つの範囲は、起り得る値の５０％、３０％、２０％を含み、この５０％、３０％、２０％の範囲は、それぞれ最も小さい値から最も大きい値を含む。５０％、３０％、２０％の範囲は、それぞれ１、２、３の増分値が割り当てられる。従って、ｍｂｓｉｚｅ（ｉ）が第２番目の範囲によって表される量だけＴｈＶの値を越えると、そのブロックについての現量子化係数は２で増加される。
【００１９】
別の方法として、閾値を越えるマクロブロックについて経験に基づいた量子化係数のルックアップ（ｌｏｏｋｕｐ）テーブルを使用すると、良い結果の得られることが分っている。図４、図５、図６は、このような経験に基づいて得られたルックアップテーブルを表す。より大きな量子化係数を選択する場合、経験によって得られたルックアップ・テーブルに入るために２つの量が用いられる。この２つの量は、現量子化係数と可変ｘｓ−ｆｒａｃである。ルックアップテーブルからの出力は、現マクロブロックを量子化するために使われる更新された量子化係数である。種々のテーブルが個別の符号化フレーム形式に対して使用される。図４、図５、図６に示す量子化テーブルは、それぞれＩフレーム、Ｂフレーム、Ｐフレームで使用するために求められた値に対応する。ＰおよびＢの符号化フレーム中のマクロブロックの或るものはフレーム内符号化されたものであることに注目されたい。この場合、ＰもしくはＢフレーム中に見い出されるＩ形式のマクロブロックについてはＩ量子化テーブルが使用される。これらの量子化テーブルにおいて、Ｏｌｄ  ｑｉと名づけられた値は、量子化テーブルをアドレス指定するために使用される現量子化係数であり、Ｎｅｗ  ｑｉという名称の値は、量子化テーブルから出力される新しい量子化係数があり、量子化テーブルの中に示される値は、所定の値、例えば１００を掛けたｘｓ−ｆｒａｃの値であり、このｘｓ−ｆｒａｃの値も各量子化テーブルをアドレス指定するために使われる。
【００２０】
マクロブロックを基にしてマクロブロックについての閾値ＴｈＶを更新することの有利であることが分っている。このため、各マクロブロックが処理されるについて、継続変数αが計数される。連続する閾値ＴｈＶｎは次式により計算される。
【００２１】
ＴｈＶｎ＝αｎ（ＴｈＶ）                          （６）
【００２２】
変数αｎは次式により計算される。
【００２３】
αｎ＋１＝αｎ−γｎｋｎ                        （７）
【００２４】
αの逐次の値はγｎｋｎの量だけ減少される。係数γｎは、γｎｋｎの量が余り急速に大きくならないことを確実にするため、すなわちαが余り急速に減少しないことを確実にするために使われる。γｎとｋｎの両因数は、前マクロブロックにおいて生じる累積ビット数の関数である。
【００２５】
0003688730.tif 000005
【００２６】
ここで、ｓは０．１のような定数であり、変数Ｃｕｔ−ｆｒａｃは次式により計算される。
【００２７】
【数４】
0003688730.tif 000006
【００２８】
ｂｉｔｓ−ｃｕｔという用語は、ＴｈＶを越えるマクロブロックの適応的量子化の結果として前のマクロブロックが減少される符号化ビット数を表す。
変数γｎは次式を使って計算される。
【００２９】
【数５】
0003688730.tif 000007
【００３０】
この変数γｎは、フレーム中のよりビジイなマクロブロックが相当数処理されるまで、非常に小さい値をとる。また、γｎは、マクロブロックから成る個々のグループについて固定の値が割り当てられてもよい。この値は、それぞれ最初に生じるマクロブロックの１／３については零、次に生じるマクロブロックの１／３については０．１、第３番目に生じる１／３のマクロブロックについては０．２５でよい。ｎ番目のマクロブロックを処理した後、（６）式〜（１０）式で計算される値は（ｎ＋１）番目のマクロブロックを処理するのに適用される。
【００３１】
以上説明した処理は、符号化ビットの総数が（５）式を満足するまでに何回か繰り返えされる。連続的な反復のために、変数ｘｓ−ｆｒａｃは経験から得られた量子化テーブルからより大きい量子化係数を発生する方向に重み付けされる。量子化係数の作業量子化テーブルが保持され、各マクロブロックについての量子化係数が貯えられる。各マクロブロックについての量子化係数が変わると、量子化テーブル中の対応する量子化係数が更新される。必要な反復が完了すると、各クレームは、各マクロブロックを量子化するための量子化テーブル中に貯えられた量子化係数を使って記録される。
【００３２】
図１は、本発明を実施するシステムの全体を示す。この特定のシステムでは、ＭＰＥＧ符号化を採用しているが、ブロックをベースにして動作する任意のエンコーダが本発明を具体化するために使えることは容易に理解し得ることである。符号化しようとするビデオ信号は、ＭＰＥＧエンコーダ４およびメモリ７の入力に結合される母線に供給される。エンコーダ４は順方向解析器６に結合され、解析器６に符号化方法に関する情報を伝える。この情報には、主として現フレームの形式、現マクロブロックの形式、各マクロブロックについての現量子化係数、および符号化されたビット数が含まれている。これらのデータに基づいて、順方向解析器６は（１）式〜（１０）式の計算を実行し、先に説明した作業量子化テーブルにロード（ｌｏａｄ）される新しい量子化係数を発生する。順方向解析器６は、（５）式が満足されるように、各フレームの符号化の十分な反復により量子化係数を適合化させる。
【００３３】
メモリ７に貯えられたビデオデータは、対応するフレームについての量子化係数が順方向解析器６により決められた後、一時に１フレーム、第２のＭＰＥＧエンコーダ８に結合される。貯えられたフレームが第２のＭＰＥＧエンコーダ８に結合されるのと同時に、順方向解析器６は、対応するフレームに対して選定された量子化係数の作業量子化テーブルからの量子化係数を第２のＭＰＥＧエンコーダ８に結合させる。ＭＰＥＧエンコーダ８は、ビデオデータから成る対応フレームを符号化するためにこれらの量子化係数を利用する。
【００３４】
図１に示すようなシステムは単位時間当たりより多いデータを処理することができるが、ハードウェアが集中する傾向にある。図１に示すシステム程ハードウェアが集中しないシステムが図２に示されている。図２のシステムでは、システムの或る部分が時分割多重形式で動作し、順方向の分析および符号化の各動作が行われる。
【００３５】
図２において、要素１０〜２０は、典型的な動き補償形式の予測エンコーダを構成する。３つの並列な処理経路が示されており、各処理経路は、ルミナンス成分と２つのクロミナンス成分を処理する。動き補償装置２０は、ルミナンス信号で動作して動きベクトルを発生し、この動きベクトルは３つの処理経路において使用される。共通のコントロール２１は各処理回路と連絡し、エンコーダの全体的な動作を指令する。動き補償形式の予測エンコーダの動作は良く知られているので、ここでは詳しく説明しない。
【００３６】
また、図２のシステムは、メモリ２６、プロセッサ２７、カウンタ２８から成る順方向解析器２５を含んでいる。プロセッサ２７は、メモリ２６、カウンタ２８を制御し、コントローラ２１と連絡し合って処理を中断し、量子化の適合を繰り返えす。図２において、ビデオ信号の１フレームが母線１０に供給され、固定量子化法を用いて圧縮（符号化）される。部分的に圧縮されたデータの各ブロックが離散的余弦変換プロセッサ１３により発生されると、これらのブロックは、メモリ２６に貯えられ、続いて起こる量子化係数の発生の繰り返しのために使用される。量子化要素１４からの量子化データは、ランレングスおよび可変長エンコーダ１５（Ｒｕｎ−Ｌｅｎｇｔｈ  ａｎｄ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｅｎｃｏｄｅｒ：ＲＬＣ＆ＶＬＣ）に供給される。エンコーダ１５からのランレングスおよび可変長符号化データと構成要素２０からの動きベクトルは、フォーマット形成回路２２に結合される。フォーマット形成回路２２はヘッダデータを発生し、エンコーダ１５からのブロック・データ、動きベクトル、およびヘッダデータをマクロブロック、スライス、フレーム、画像のグループ等に配列する。
【００３７】
エンコーダもしくはフォーマット形成回路２２から符号化データは、符号化されたフレームについてはデータｒｊを決定するためにカウンタ２８により計数される。フォーマット形成回路２２あるいはエンコーダ１５からのデータが計数されるかどうかは、動きベクトルおよび／またはヘッダデータに対応するデータ量が、それぞれのフレーム形式について比較的一定であり且つ予測可能であるかどうかに依存する。もしそうであれば、データは何れかのデバイスの出力において計数され、もしそうでなければ、計数されるデータはフォーマット形成回路２２の出力から得られなければならない。
【００３８】
プロセッサ２７は、ビットレートＲＧＯＰを受け取り、各符号化パスの終りにカウンタ２８からの符号化ビットの計数値を受け取るために、システム・コントローラ２１と通信連絡するようにプログラムされている。プロセッサ２７は、これらのデータを使って量子化係数の適合化を行う。このプロセスについては、図３のフローチャートを使って説明する。このシステムは、ユーザーのパラメータをシステム・コントローラ２１に与えることにより初期化される［５０］。これらのパラメータは、例えば、ビデオ源素材の形式、所望の符号化解像度、所望の画像品質などを示す。システム・コントローラ２１は、実質上状態装置であり、これらのパラメータにより開始状態と選択された状態が設定される。ユーザーによりこの種のパラメータが入力されなければ、システム・コントローラ２１は一組のデフォルト・パラメータをロードする。その１つはＲＧＯＰである。ＲＧＯＰの値はプロセッサ２７に伝達され、ｒＩ，ｒＰ，ｒＢについての公称値が、例えば、読み出し専用メモリから読み出される。これらの値を使って、プロセッサ２７はＲｊの各値を計算する。
【００３９】
次に、システム・コントローラ２１は、第１のフレームデータを読み出す［５１］。各フレームは、個々のフレームが生じる一連の入力フレームにおける相対位置に応じてコントローラ２１により、Ｉ、Ｐ、Ｂで示される。フレームは、量子化テーブルと選択された全体的量子化係数Ｑｊを使って符号化され［５２］、所定の画像品質を与える。この処理の間、離散的余弦変換装置から供給されるブロックデータはメモリ２６に貯えられる。各マクロブロックが符号化されるにつれて、そのマクロブロックに関連するカウンタ２８からの計数値も貯えられる。この計数値は、フレームの始めからの累積計数値であるか、もしくは各マクロブロックの符号化データの量を示す値である。後者の値は、カウンタ２８からの出力を１マクロブロックの期間の間貯え、次に続くマクロブロックに関連する累積計数値から貯えられた各値を引くことにより得られる。
【００４０】
フレームが圧縮された後、符号化されたフレームについての全データｒｊがカウンタ２８から得られ、（５）式に従って可変ｘｓ−ｆｒａｃが計算される［５３］。また、閾値ＴｈＶも計算される。変数ｘｓ−ｆｒａｃは、それが正であるかどうかを決定するために検査される［５４］。変数ｘｓ−ｆｒａｃが正確であるならば、フレームについての符号化データはＲｊより小さく、量子化調整は必要でない。全体の量子化係数がプロセッサ２７中の作業量子化テーブル（ｑ  ＭＥＭ）のすべてのロケーションにロードされる［５５］。
【００４１】
この時点で、システムが取り得る少なくとも２つの選択の道がある。全体の量子化係数を使用してフレームを再復号化し、レートバッファ（図示せず）のような別の回路に符号化データを出力するようシステムに指令を出すことができる。この場合、この種の別の回路は、ステップ［５４］で行なわれる決定後まで、フォーマット形成回路２２からのデータを受け取ることができない。別のシステムにおいて、フォーマット形成回路２２は符号化データの最後のフレームを貯えるメモリに結合される。それから、ステップ［５４］の条件が真あるならば、メモリ中の符号化データは出力され、フレームの再復号化を不要とする。
【００４２】
ｘｓ−ｆｒａｃがゼロより小さいならば［５４］、量子化適応処理が開始される［５６］。変数αとβが１にセットされ［５７］、変数ｘｓ−ｆｒａｃにβが掛けられる［６０］。最初の反復パスにおいて、βが１に等しいから、ｘｓ−ｆｒａｃは変わらない。しかしながら、逐次の反復において、βが増大し、従ってｘｓ−ｆｒａｃは増大し、２つの結果をもたらす。第１の結果は、各量子化テーブルから選択された量子化値がより大きくなるだろう。第２の結果は、変数αが更に急速に変化することである。
【００４３】
ｘｓ−ｆｒａｃがスケール化された後、フレーム中の最初のマクロブロックがメモリ２６から読み出され［６６］、そのマクロブロックについての符号化データの量が現閾値を越えるかどうかを決定するために、そのマクロブロックが検査される。現閾値は変数αｎが掛けられた元の閾値ＴｈＶである。源マクロブロックについての符号化データの量が現閾値を越えると、現量子化係数と値ｃｓ−ｆｒａｃを使用して適当な経験上の量子化テーブルが求められ、その特定のマクロブロックについての新しい量子化係数を確保する。この量子化係数は、作業量子化テーブル（プロセッサ２７中のｑ  ＭＥＭ）中の各マクロブロックに関連するアドレスロケーションにロードされる［７７］。変数ビット−カットは更新され［６９］、変数Ｃｕｔ−ｆｒａｃは、メモリ２６に貯えられたデータおよびカウンタ２８から供給されるデータにより更新される［７０］。変数γｎＧｎとαｎは、ステップ［７１］において式（７），（８）、（１０）により更新される。最後のマクロブロックが処理されてしまったかどうかを決定するために、検査が行なわれる［７２］。最後のマクロブロックが処理されてしまわなければ、マクロブロックのアドレスが増加され［７３］、次のマクロブロックのデータがメモリ２６から読み出される。
【００４４】
最後のマクロブロックが処理されてしまったならば［７２］、十分なデータの低減が得られたかどうかを決定するために、変数ｘｓ−ｆｒａｃが変数ｃｕｔ−ｆｒａｃと比較される［７４］。もし変数ｘｓ−ｆｒａｃが変数ｃｕｔ−ｆｒａｃより大きいならば、作業用量子化テーブル中の量子化係数を用いてフレームを再復号化し、次いで次のフレームを読み出してくる［５１］ようにシステムは指令される。
【００４５】
必要な量子化係数を設定する為に、１回もしくはそれ以上の反復が必要であるならば、量子化係数を変えると予測器１９から供給される予測フレームに影響を与えるから、対応するフレームのデータを再復号化する必要がある。しかしながら、フレームの再復号化の間、動きベクトルは影響を受けないはずであるから、動きベクトルを再計算する必要はない。この場合、フォーマット形成回路２２が動きベクトルを貯えるのに十分なメモリを含んでおり、その結果動きベクトルは再計算する必要がないものとする。
【００４６】
ステップ［６７］に戻ると、検査が真でなければ、検査されたマクロブロックに関して何の処理も行わず、処理はステップ［７０］に飛び、Ｃｕｔ−ｆｒａｃを更新し、次のマクロブロックを検査するための準備をする。ステップ［７４］において、検査が真であるならば、さらに反復が開始される。βが（小さい値、例えば、０．１）増加されると［７５］、マクロブロックのアドレスは１フレームの最初のマクロブロックにリセットされ［７６］、αは１にリセットされる。
【００４７】
各量子化反復の間、フレームのデータを再復号化する必要はない。これらの計算に必要なデータは、最初の符号化パスからのマクロブロックのデータであり、そのデータはメモリ２６に貯えられている。しかしながら、余分のメモリ２６を省き、時間とパワーの制約が許すならば、各反復においてすべてのデータを再復号化することが可能である。
【００４８】
図７を参照しながら、実際の量子化処理について説明する。図７において、ブロック８３は、所定のマクロブロックからの係数データのブロックを表わす。各係数ｃｉ（例えば、離散的余弦変換係数に対応する）は、大きくなる指標ｉに従うような所定の順序で配列される。８０が付されたブロックは、量子化値ｑｉのマトリックスを表す。これらの量子化値は、ブロック８３中の係数より大きな量子化とより小さな量子化を与えるように選定される。より大きな量子化とより小さな量子化は、画像の再生に対してそれぞれより小さな重要性となり大きな重要性を有する。従って、係数ｃ１，ｃ２，…ｃ８などが量子化器８１に供給されると、量子化を実行するために量子化値ｑ１，ｑ２，…ｑ８などが同時に取り出され、供給される。しかしながら、量子化値ｑ１は可変スケーリング回路８２を介して量子化器８１に間接的に供給される。各量子化値には、作業用量子化メモリ８４に貯えられた重み係数が掛けられる。
【００４９】
メモリ８４中の各ブロックはフレーム中の個々のマクロブロックに供給される量子化係数に対応する。固定量子化法の場合、メモリ８４には、個々のフレーム形式、例えば、ＱＩ，ＱＰ，ＱＢに関連した全体的な量子化係数に等しい１つの値がロードされる。メモリ８４の各ブロック中のＱは全体的量子化係数を表す。Ｘは、前の量子化適応処理の結果得られる更新された量子化係数を表す。これらの更新された値は、図３のステップ［７７］においてメモリ８４に貯えられる。
【００５０】
係数のブロック８０が量子化器８１に供給されるとき、メモリ８４からの対応する量子化係数がスケーリング回路８２に供給され、量子化器８１に供給される量子化値Ｑｊ（ｑｉ）もしくはＸ（ｑｉ）を発生する。量子化器８１は、次式に従って各係数を量子化する形式のものでよい。
【００５１】
ＱＣｉ＝（１６×Ｃｉ＋８）／／（２×Ｘｑｉ）；ｃｉ＞０
ＱＣｉ＝（１６×Ｃｉ−８）／／（２×Ｘｑｉ）；ｃｉ＜０
ＱＣｉ＝０；                                  ｃｉ＝０
【００５２】
ここで、ＱＣｉは量子化された係数であり、Ｘｑｉはスケーリング回路８２から供給される量子化値を表し、×は乗算を表し、／／はインター（ｉｎｔｅｒ）分割を特定する。
【００５３】
先の説明において、変数ｘｓ−ｆｒａｃはフレームをベースとして変更もしくは更新された。この変数ｘｓ−ｆｒａｃは、スライス毎あるいはＷマクロブロック毎のような更に小さいベースで更新してもよい。
【００５４】
図８は、簡単化した適応型量子化システムのフローチャートを示す。このシステムでは、閾値ＴｈＶｎはマクロブックをベースとしてではなくてフレームをベースとして変えられる。フレームをベースとして閾値を変えると、より精確な初期閾値の推定が必要とされるが、より均一な画像品質が得られる。図８のシステムは、（８）式と（１０）式で定義される変数の計算をする必要がないことに注目されたい。この例においては、αは反復毎に一定の値だけ減少される。図８において、ＢＩＴＳ−ＣＵＴの値は次式で与えられる。
【００５５】
【数６】
0003688730.tif 000008
【００５６】
ここで、ｂｉｔｓ−ｃｕｔ（ｉ）は、初期復号化パスから減じられる個々のマスロブロックのビット数に等しい。
【００５７】
本発明の主たる特徴は、適応的量子化が各フレームにおける或るブロック（マクロブロック）だけについて行なわれる。これらのブロックは、各フレーム内の平均ブロックより多い画像デテールの量を含むブロックである傾向にある。これらの“ビジヤー（ｂｕｓｉｅｒ）”なブロックを適応的に量子化することは画像品質に最小の画質低下を与え、従って主観的な画像品質はこの処理により実質的に影響を受けない。
【００５８】
現時点において、圧縮ビデオデータに関する十分な統計が、発明者らに利用可能な状態になっていないから、本発明は最適化されたものではない。しかしながら、そのような統計が利用可能な場合、各マクロブロックにおけるデータ量に関連した閾値関数が決まり、それにより固定量子化による第１の圧縮パスの間に発生されるデータから量子化係数の決定が行なわれるだろう。
【図面の簡単な説明】
【図１】本発明を具体化する量子化装置を含んでいるビデオ信号圧縮システムのブロック図である。
【図２】本発明を具体化する量子化装置を含んでいるビデオ信号圧縮システムのブロック図である。
【図３】図２に示す順方向解析器の動作のフローチャートである。
【図４】フレーム内処理に従って圧縮されたビデオ信号のフレームについての典型的な量子化値のテーブルを示す。
【図５】順方向フレーム間処理に従って圧縮されたビデオ信号のフレームについての典型的な量子化値テーブルを示す。
【図６】両方向フレーム間処理に従って圧縮されたビデオ信号のフレームに関する典型的な量子化値のテーブルを示す。
【図７】量子化システムを絵画で示したものである。
【図８】閾値がフレーム／フィールドのベースで変更される適応型量子化システムのフローチャートである。
【符号の説明】
１３    離散的余弦変換（ＤＣＴ）
１４    量子化器
１５    ランレングスおよび可変長エンコーダ（ＲＬＣ＆ＶＬＣ）
１６    Ｉ量子化器
１７    Ｉ離散的余弦変換（ＩＤＣＴ）
１９    予測器
２０    動きベクトル
２１    システム・コントローラ
２２    フォーマット形成回路
２６    メモリ
２７    プロセッサ
２８    カウンタ
【図１】
0003688730.tif 000009
【図２】
0003688730.tif 000010
【図３】
0003688730.tif 000011
【図４】
0003688730.tif 000012
【図５】
0003688730.tif 000013
【図６】
0003688730.tif 000014
【図７】
0003688730.tif 000015
【図８】
0003688730.tif 000016