(57)【特許請求の範囲】
【請求項１】
圧縮されたイメージピクセルブロックのデータストリームを受信するデジタルイメージ処理システムであって、
イメージピクセルブロックを提供するために、前記圧縮されたイメージピクセルブロックを圧縮解除する手段と、
圧縮されたルミナンスピクセル表現の平均ビット数が、圧縮されたクロミナンスピクセル表現より少なくとも１ビット多くなるように、前記イメージピクセルブロックそれぞれを再圧縮してピクセル表現を提供する回路と、
前記再圧縮されたピクセル表現を格納するメモリと
を備え、
前記再圧縮する回路は、
前記イメージピクセルブロック内のピクセル表現から当該イメージピクセルブロック内の予測誤差値を生成する予測器と、
各前記イメージピクセルブロックからクロミナンスピクセル表現用のブロックパラメータを導出する第２の回路であって、イメージピクセルブロック中のピクセル値の実際の範囲を、事前定義範囲のセットと照合して、実際の範囲よりも大きい事前定義範囲を選択し、前記選択される事前定義範囲は、当該事前定義範囲に合わせてカスタマイズされた量子化テーブルのセットにアクセスするために使用される、第２の回路と、
再圧縮の前に負の予測誤差値に、前記事前定義範囲を加えることでバイアスをかけて正の値を生成する予測誤差プロセッサと、
個々のブロックパラメータを有する再圧縮されたピクセルブロックの平均ビット数が所定のビット数と等しくなることを保証するコントローラと
を含み、
前記ピクセルブロックの前記ブロックパラメータは、前記事前定義範囲と、少なくとも１つの基準ピクセル値または最小ピクセル値とを有することを特徴とするシステム。
【請求項２】
前記量子化テーブルのセットは、最もアクセスされる可能性があるレベルに、他のレベルよりも短いコードワードを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記量子化テーブルのセットは対称形であることを特徴とする請求項１に記載のシステム。
【請求項４】
前記ブロックパラメータは、前記再圧縮されたピクセルブロックのパラメータフィールドとして符号化および構成され、前記パラメータフィールドと前記圧縮されたピクセルブロックは、データパケットを形成することを特徴とする請求項１に記載のシステム。
【請求項５】
前記データストリームはＭＰＥＧ符号化データストリームであることを特徴とする請求項１に記載のシステム。
【請求項６】
ルミナンスデータおよびクロミナンスデータを含むＭＰＥＧ符号化イメージピクセルブロックを処理するデジタルイメージ処理システムであって、前記ルミナンスデータは、前記クロミナンスデータより多いピクセルによって表され、
前記システムは、
ＭＰＥＧ符号化イメージピクセルブロックを圧縮解除して、ルミナンスデータおよびクロミナンスデータを含むイメージピクセルブロックを提供する圧縮解除器と、
前記ルミナンスデータおよびクロミナンスデータが所定の平均ビット数に圧縮されるように、前記イメージピクセルブロックからのピクセル表現を再圧縮して再圧縮されたピクセル表現にする回路と、
前記再圧縮されたピクセル表現を格納するフレームメモリと、
前記再圧縮されたピクセル表現を圧縮解除して再構成されたピクセルにする圧縮解除器と、
前記メモリから、イメージ表示装置へのピクセル情報を受け取るディスプレイプロセッサと、
を備え、
前記回路は、予測誤差値を処理する予測ネットワークと、
各前記イメージピクセルブロックからクロミナンスピクセル表現用のブロックパラメータを導出する第２の回路であって、イメージピクセルブロック中のピクセル値の実際の範囲を、事前定義範囲のセットと照合して、実際の範囲が含まれる事前定義範囲を選択し、前記選択される事前定義範囲は、当該事前定義範囲に合わせてカスタマイズされた量子化テーブルのセットにアクセスするために使用される、第２の回路とを含み、
前記再圧縮されたピクセル表現は、前記予測誤差値であり、
前記予測誤差値は、差分パルス符号変調値であり、
前記再圧縮は、正の予測誤差になるように負の予測誤差に事前定義範囲を加えてバイアスをかけることによって容易にされる
ことを特徴とするシステム。
【発明の詳細な説明】
本発明は、ディジタルビデオ・プロセッサの必要メモリ量を低減させる装置に関する。特に、本発明はメモリに記憶する前にピクセル情報を正確に圧縮する装置に関する。
メモリの効率的利用はイメージ・プロセッサの設計と動作において重要になっている。例えば、テレビジョン・システムなどのコンシューマ製品は、ＭＰＥＧ−２信号処理を含むイメージ・プロセッサを使用している場合がある。ＭＰＥＧ（Motion Picture Experts Group）信号圧縮標準（ISO/IEC  13181-2、1994年5月10日）は広く認められたイメージ処理標準であり、他の形態のイメージ処理の中でも、特に、高精細テレビジョン（high definition television-HDTV）を採用している衛星、ケーブルおよび地上ブロードキャスト・システムで使用するのに魅力的な標準になっている。高精細ディスプレイを使用する製品は、表示の前にＭＰＥＧ復号化（デコード化）フレームを一時的にストアしておくために、96メガビット（Ｍビット）またはそれ以上のメモリを必要としている。ＭＰＥＧプロセッサは、動き予測と動き補償のためにこれらのフレームを使用し、正確なイメージを再構築して表示するようにしている。
ＭＰＥＧ復号化画素（ピクセルまたはペル）からイメージを再構築するシステムは差分パルス符号変調（Differential Pulse Coded Modulation-DPCM）を採用している。ＤＰＣＭ処理では、プロセッサは次のピクセル値を予想する予測値（prediction value）を生成している。総合（summation）ネットワークは実際のピクセル値から予測値を減算し、その結果の差分はビデオデータを表すために使用されている。この差分は予測誤差（prediction error）と呼ばれ、一般にデータ値より小さいため、オリジナルのピクセル値ではなくこの差分を処理することによって、システムが必要とするバンド幅を低減化している。この予測誤差は正の値をもつ場合と負の値をもつ場合とがある。ＭＰＥＧ符号器（encoder：エンコーダ）と復号器（decoder：デコーダ）はAng他著「ビデオ圧縮は大きな利益をもたらす（Video Compression Makes Big Gains）」、IEEE Spectrum,Oct.1991に記載されている。
メモリ効率化イメージ・プロセッサでは、ブロックデータを再符号化（再圧縮）してからストアするようにして、イメージフレームをストアするために使用するメモリを低減している。空間ドメインでは、イメージフレームをストアするために使用されるピクセル当たりのビット数を少なくすると、ピクセルがオリジナル値に正確に再構築できない場合には、ピクチャ（画像）品質に悪い影響を与える。特にイメージのスムーズなエリアでは、アーティファクト（artifact）が発生する可能性がある。メモリ低減イメージ・プロセッサはＭＰＥＧ復号化信号を、可能な限り効率的かつ経済的な方法で、正確に量子化（quantize）し、逆量子化（dequantize）することが要求されている。
人間の光学的感知能力の制限を利用し、ルミナンスデータとクロミナンスデータを別々に処理することは知られている。データに含まれるエネルギと周波数成分だけでなく、人間の目が見ることができるものも考慮に入れて、圧縮法則をデータのタイプ別に最適化することは、米国特許第4,575,749号（Acampora、他）に記載されている。Acampora特許では、テレビジョン信号に含まれるノイズを低減してから送信するようにした振幅圧縮の問題を取り上げている。4:2:2や4:2:0といった、ディスプレイフォーマットはビデオデータの圧縮についても述べており、そこでは、ルミナンスデータとクロミナンスデータが別々に処理される。フォーマット比が4:2:2および4:2:0であることは、クロミナンスデータブロックが、ルミナンスデータブロックが収容している情報量の1/2または1/4を収容していることを示している。しかし、ビデオデータがディスプレイプロセッサで受信されたあとは、そのデータはｎビットのピクセルデータとして表されている。上記の公知圧縮手法では、ディスプレイプロセッサに関する圧縮は取り上げられていない。
ディスプレイプロセッサでは、ルミナンスデータとクロミナンスデータは別々に処理されることがあっても、再圧縮に関してはそうでない。ディスプレイプロセッサがルミナンスデータとクロミナンスデータを別々に処理している例では、4:2:2または4:2:0比のデータをラスタライン・データに変換しているが、これは、すべてのピクセルがクロミナンス情報で定義されているとは限らないためである。しかし、このことは、データを圧縮または再圧縮することとは無関係である。ＭＰＥＧフォーマットが出現するまでは、ディスプレイ・プロセッサのためのメモリ割り振りがほとんど配慮されていなかったのは、動きベクトルまたは動き構成（motion composition）情報からピクチャフレームを計算する必要がなかったためである。ＭＰＥＧフォーマットの出現と共に、ピクチャフレームを復元（reconstruct）するためにピクセルデータの複数のフレームをディスプレイ関連メモリにストアしておく必要が起こっている。係属中の特許出願第08/579,129号には、ディスプレイ・プロセッサによる受信の前に、ビデオピクセルデータを再圧縮してからフレームメモリにストアしておくことが記載されている。
より具体的に説明すると、クロミナンスデータはルミナンスデータに比べて少ないピクセル（ビット制限された）で定義されているのが普通であるので（例えば、4:2:2または4:2:0フォーマットで）、クロミナンスデータをさらに圧縮（compression）または再圧縮（recompression）することは適用不能になっている。量子化などによってクロミナンスデータを圧縮または再圧縮すると、現在では、オリジナル・クロミナンスデータを正確に復元して表示する能力が損なわれるために、ピクチャ品質が低下するという重大な問題が起こっている。ルミナンスデータとクロミナンスデータを再圧縮してからフレームメモリにストアするといったように、ディプレイ・プロセッサの必要メモリ量を低減することと、イメージデータを正確に復元してから表示する必要性は相互に矛盾するする関心事になっている。このことは、ＨＤＴＶのように、ディーテルが鮮明に表示される高精細システムの場合に特に妥当する。
本願の発明者は、最小限のハードウェアとソフトウェアを採用してメモリを節減し、プロセッサの物理的サイズを縮小すると同時に、復元イメージに持ち込まれるアーティファクトを最小限にするような、効率的なデータ縮減システムを提供することが望ましいと認識した。開示したシステムは、ルミナンスデータとクロミナンスデータを本発明の原理に従って別々に処理することによって上記問題を解決している。
本発明によるメモリ効率化イメージ・プロセッサは、ＭＰＥＧフォーマットのビデオデータのディジタルデータストリームを受信する。このＭＰＥＧデータは復号化（decoded）され、圧縮解除（decompressed）されたあと、ルミナンスデータとクロミナンスデータのイメージピクセルブロックとしてプロセッサに渡される。ルミナンスデータとクロミナンスデータはピクセルブロック当たりの、予め決められた数のビットに再圧縮され、そこでは、各ピクセル表現（pixelrepresentation）に平均ビット数が割り振られてから、フレームメモリにストアされる。1ピクセル表現当たりの平均ビット数は、クロミナンスデータではルミナンスデータの場合よりも、少なくとも１ビットだけ少なくなっている。
【図面の簡単な説明】
図１は、本発明の原理に従ったシステムを含むピクセルブロック・プロセッサを示すブロック図である。
図２は、図１のシステムの圧縮部分の詳細を示す図である。
図３は、本発明を取り入れているシステムで使用するのに適したパケット化データフォーマット（packetized data format）を示す図である。
図４は、図１に示したシステムにおける圧縮解除（decompression）部分の詳細を示す図である。
図５Ａは、図２に示した量子化マッパ部分の詳細を示す図である。
図５Ｂは、図５Ａに示したセレクト（選択）ブロックの真理値表を示す図である。
図６Ａ、図６Ｂおよび図６Ｃは、それぞれ３ビット、４ビットおよび５ビット量子化／逆量子化（dequantization）テーブルを示す図である。
図７は、シンメトリカル（対称）逆量子化テーブルを作成する装置を示す図である。
図８は、オーバヘッド量子化ビットを示すテーブルである。
図９Ａ、図９Ｂおよび図９Ｃは、本発明の原理による符号化コントローラ（coding controller）のフローチャートを示す図である。
図１０は、本発明を採用したＭＰＥＧ準拠（compatible）テレビジョン・システムを示すブロック図である。
序論として、本発明の実施例について簡単に説明してから、本発明の各エレメントについて詳しく説明することにする。この実施例では、クロミナンスデータについて画素（ピクセル）データを８ビット値から４ビット値に変換することを可能にしている。これは解像度を非可逆（lossy）に１６対１に低下させるため、ビデオ画像品質を大幅に低下させるのが普通である。本発明を採用する手法によれば、正確なデータ復元（data reconstruction）が可能になる。
メモリ効率化イメージ・プロセッサは、ピクセルブロックのルミナンスデータコンポーネントとクロミナンスデータコンポーネントについて量子化すべきＤＰＣＭ予測誤差値を決定する。ルミナンスデータは６ビットの６４レベル量子化テーブルによって圧縮されるのに対し、クロミナンスデータは３ビット、４ビットおよび５ビットの量子化テーブルのセットを使用して圧縮され、これらの３テーブルは予め決められた範囲（以下、「事前定義範囲」という）のセットから選択された範囲に合わせてカストマイズされ、その範囲からアクセスされるようになっている。各ピクセルブロックからの基準（参照）ピクセルは、他のピクセルとは別の方法で圧縮され、予測ネットワークにおける初期正確度（initialaccuracy）を達成している。ブロックパラメータは圧縮ピクセルブロックと共に決定され、符号化され、ストアされて、復元を容易化している。量子化テーブルは、統計的にアクセスされる可能性のあるレベルで短コードワードシンボルを出力し、これによって固定メモリスペースに置かれるブロックパラメータのストレージを埋め合わせている。ピクセルは、解像度を最大限にし、ブロックパラメータを含むピクセル当たりの総ビット平均が４ビットになるように個別的に処理される。
量子化を行う前に、負の予測誤差値は量子化器の枠内で正の値が得られるようにバイアスが与えられる。従って、量子化器は正の値を受信し、テーブルは正の決定ポイント（decision point）だけを含んでいる。テーブルはシンメトリ（左右対称）であるため、テーブルのミッドポイントとテーブルの半分をＲＯＭに置いておき、残りの半分を回路でマッピングすることができる。
実際には、テレビジョン受信機はＭＰＥＧ復号器（デコーダ）を含んでいる場合がある。データ縮減ネットワークはイメージブロックを表す、復号化および圧縮解除されたＭＰＥＧ信号を量子化してからフレームメモリにストアしておき、イメージディスプレイのために必要時にブロックを復元する。ディスプレイデバイスはフレームメモリから取り出したイメージデータを表示する。ネットワークによって受信され、処理されたデータは1920×1080ピクセルで4:2:2または4:2:0の高精細ビデオ信号になっている。ルミナンスデータは空間ドメインで8×8ピクセルブロックに分割され、クロミナンスデータは特定のフォーマットに従って分割される。
ネットワークはピクセルブロックデータを上述したように処理する。ルミナンスデータの各ピクセルブロックごとに、最初のピクセルは７ビットにシフトされ、最下位ビットは捨てられる。最後のピクセルは範囲が256として用意されている５ビット量子化テーブルを使用して量子化される。他のビットはすべて６ビット量子化テーブルを使用して量子化される。その全体結果はピクセル当たり６ビットに再圧縮されている。
クロミナンスデータについては、ネットワークはピクセルブロックをスキャンし、そのブロックの範囲、最小ピクセル値および最大ピクセル値を決定する。代表的な事前定義値が範囲および最小ピクセル値の代わりに使用され、基準ピクセル値をデータへのヘッダとしてストアされる。この基準ピクセルは、例えば、ブロックの最初のピクセルにすることができる。コントローラは各クロミナンス・ピクセルブロックごとにレジスタを使用し、３ビット、４ビットまたは５ビット量子化テーブルを選択して各ピクセルを処理し、圧縮後のピクセル当たりの平均ビット数を４ビットに保つ。４ビットと５ビットのテーブルの選択レベルにある３ビットシンボルは、ヘッダをストアするために必要なビット数を埋め合わせている。３ビットシンボルは入力データが統計的に最も現れるレベルで置かれており、圧縮解像度に与える影響を最小限にしている。３ビットシンボルの出力によって余剰ビットが節減されるのであれば、高解像度５ビットシンボルが出力される。節減される余剰ビットがなければ、３ビットテーブルがアクセスされて、ヘッダを含む各ピクセルの平均ビット数が４ビットに保たれることになる。ルミナンス（ルマ）データは、受信データが受信トランスポートストリームから圧縮解除された後利用できるピクセルブロックに対して２５％だけ縮減され、クロミナンス（クロマ）データは５０％だけ縮減される。開示システムによれば、ビット制限のクロマデータは、ピクチャ品質に不利な影響を与えることなく、再圧縮ルミナンスデータよりも少ないビットで再圧縮することができる。上記システムによれば、ピクセル復元（pixel reconstruction）のとき正確性が容易に得られる。
以下では、本発明の理解を容易にするために、ＭＰＥＧ−２準拠の高精細テレビジョン受信機を例にして説明する。ここで説明するシステムによれば、ある圧縮比が与えられているか、あるいは選択されているとき固定長の圧縮をデータブロック単位で行うことができる。固定長データブロックをストアすると、ブロックをランダムにアクセスすることができる。固定長データブロックは、本明細書に説明されている特徴を任意に組み合わせて実現される。本発明の原理によるシステムを使用すると、任意のソースからのブロックデータの圧縮と圧縮解除が効率化されるが、このシステムはテレビジョン受信機に限定されない。
図１に示すように、復号器（デコーダ）、例えば、ＭＰＥＧ復号器はＭＰＥＧ復号化ピクセルデータのブロックを、圧縮器１２を含むメモリ縮減プロセッサの入力端１０に与える。圧縮器１２は予測器（predictor）1８、量子化器（quantizer）２０および結合器（combiner）２２を含んでいる。予測器１８は周知の原理を採用し、例えば、Jain著「ディジタルイメージ処理の基本（Fundamentals of Digital ImageProcessing）」、Prentice-Hall、p.484（1989）に記載されているタイプのものが使用可能である。
量子化器２０はデータ縮減ピクセルブロックをメモリ１４に与える。ディスプレイプロセッサ（図示せず）がイメージを表示するためにメモリ１４内の縮減データブロックにアクセスすると、圧縮解除器（decompressor）１６はオリジナル・データブロックを復元する。圧縮解除器１６は予測器２４と逆量子化器（dequantizer）２６を含み、縮減データをメモリ１４から検索し、縮減されたデータブロックを復元する。量子化器２０と逆量子化器２６は以下で説明するように、本発明の原理に従った構成になっている。予測器２４は予測器１８と同じである。
圧縮器１２の入力端１０はＭＰＥＧ復号器からピクセルブロックを受信する。これについては、図１０を参照して以下で説明する。ピクセルブロックは空間ドメインにあり、例えば、ルミナンス（ルマ）データを表す8×8ブロックのイメージピクセルを含んでいる。4:2:2データを処理するシステムでは、クロミナンス（クロマ）データは8×4ブロックのイメージピクセルを含み、4:2:0データを処理するシステムでは、クロミナンス（クロマ）データは、例えば、4×4ブロックのイメージピクセルを含んでいる。入力端１０からは、ピクセルデータブロックが結合器２２の非反転入力端と量子化器２０に与えられる。予測器１８からは、ピクセル予測データが結合器２２の反転入力端と量子化器２０に与えられる。結合器２２は反転入力端と非反転入力端からの信号を結合し、その差分を量子化器２０に出力する。量子化器２０は量子化イメージ値を予測器１８に、量子化予測誤差値をストアのためにメモリ１４に出力する。
ルミナンスデータはクロミナンスデータとは異なる方法で処理される。ルミナンスピクセルブロックの各ピクセルには、平均でメモリ１４内の６ビット記憶スペースが割り振られている。量子化器２０は受信したピクセルブロックから基準ピクセルを選択する。この基準ピクセルは、例えば、ブロックの最初のピクセルにすることができる。基準ピクセルは右に１ビットだけビットシフトされ、メモリ１４内のブロックの残余量子化ピクセルと一緒に、予め決められたロケーションにストアされる。ブロックからの他の１ピクセルは基準ピクセルおよびピクセルブロックからの他のすべての残余ピクセルとは異なる方法で処理される。この他のピクセルは、例えば、ピクセルブロックの最後のピクセルにすることができる。これは、図６Ｃに示すように、２６レベルの、５ビット量子化テーブルを使用して処理される。このピクセルを５ビットで圧縮すると、基準ピクセルの処理が埋め合わせられるのは、最終ビット位置の１ビットが節減され、最初のピクセルに７ビットを使用すると犠牲になっていた６ビット平均が保たれるからである。５ビットテーブル内のアクセスされたレベルが短コードワードを収めていれば、このコードワードは５ビットまでゼロが詰め込まれる。ルミナンスピクセルブロックの他のすべてのピクセルは、６４レベルの、６ビット量子化テーブルを使用して圧縮される。この量子化テーブルは正のＤＰＣＭ予測誤差値だけを受け付ける設計になっている。このテーブルの設計の詳細はこのシステムのすべての量子化テーブルの場合と同じであり、これについては後述する。負の予測誤差値にバイアスを与えて、正の入力値が量子化テーブルに入るようにすることも後述するが、これはルマデータとクロマデータのどちらの場合も同じである。
クロマデータはルマデータとは異なった方法で処理され、圧縮される。図２は量子化器２０をクロマデータと関連づけて示す詳細図である。図１と図２で共通するエレメントは同じ参照番号を付けて示されている。具体的に説明すると、量子化器２０は予測誤差プロセッサ２７、量子化マッパ（mapper）２８、符号化コントローラ２９、最小−最大−範囲プロセッサ（min-max-range processor-MMRP）３０、第１ピクセルプロセッサ３１、およびマルチプレクサ３２を含んでいる。入力端１０からブロックピクセルデータがＭＭＲＰ３０に与えられると、ＭＭＲＰはピクセルブロックをスキャンし、そのブロックの最小ピクセル値、最大ピクセル値、および範囲を決定する。ＭＭＲＰ３０は事前定義範囲のセットから予め決められた値を、実際範囲の関数として選択し、ネットワークでの以後の使用に備えて、予め決められた選択範囲を実際の範囲と入れ替える。ＭＭＲＰ３０は最小値、最大値および事前定義範囲ブロックパラメータを圧縮し、これらをマルチプレクサ３２に転送する。
最小ピクセル値と範囲は第１ピクセル・プロセッサ３１にも転送され、事前定義範囲は予測誤差プロセッサ２７に転送される。これについては後述する。予測誤差プロセッサ２７は予測誤差データを結合器２２から受信し、選択された事前定義範囲をもつ負の値にバイアスを与える。量子化マッパ２８は、バイアスが与えられた予測誤差値とバイアスが与えられていない予測誤差値を予測誤差プロセッサ２７から受信する。これらの値は量子化され、マルチプレクサ３２に送られる。量子化マッパ２８は量子化予測誤差値を予測器１８にも送り、予測器１８はその量子化予測誤差値を使用して予測データを計算する。マルチプレクサ３２はブロックパラメータと量子化データをタイミングと制御の下で、メモリ１４に送付する。これについては後述する。ブロックパラメータは、メモリ１４内で、量子化ピクセルブロックに関連するパラメータフィールドに入っているオーバヘッドデータを表している。パラメータフィールドと量子化データは一緒になってパケットを形成し、このパケットには、適切な逆量子化テーブルにアクセスし、ピクセルブロックを復元するために圧縮解除器１６が必要とする情報のすべてが集約されている。符号化コントローラ２９はブロックパラメータと圧縮データの転送を監視すると共に、個別ピクセルブロックの量子化テーブルの選択を監視している。これについては後述する。
第１ピクセル・プロセッサ３１はピクセルブロックを入力端１０から受信し、予め決められた基準ピクセル値を決定する。ＭＭＲＰ３０から受信したブロック最小ピクセル値は基準ピクセルの圧縮を、他のブロック・ピクセルから独立して行うことを可能にする。圧縮された基準ピクセルは、逆量子化器２６が可逆的（lossless）にまたはほぼ可逆的にそのオリジナル値を復元するのに十分なビット数で表されている。第１ピクセル・プロセッサ３１は圧縮基準ピクセル値をブロックパラメータとしてマルチプレクサ３２に引き渡し、そこから基準ピクセル値を含むブロックパラメータと量子化データがメモリ１４に転送される。逆量子化器２６は、ピクセル圧縮解除期間に基準ピクセルを量子化ブロックピクセルの予測値として使用する。圧縮解除期間に予測ネットワークで使用される第１値（基準ピクセル値）は独立しているので、ある与えられたピクセルブロックは他のピクセルブロックからの情報なしで圧縮解除が可能になっている。この値は正確でもあるので、復元データからの伝播予測誤差が除去されている。
基準ピクセルはピクセルブロックの最小値を、圧縮値を導き出すための予測値として使用して圧縮されている。この最小値は基準値から減算され、その差分は２で除算される。その結果はメモリ１４にストアされ、事前定義範囲をバイナリで表現するために必要なビット数より１ビットだけ少なくなっている。圧縮された基準ピクセル値をストアするために使用されるビット数がこの事前定義範囲によって決まるのは、ブロックピクセル値を同じピクセルブロック内の他の値の予測値として使用するとき、基準ピクセル値と最小ピクセル値といったように、任意の２つのブロックピクセル値の差分がその範囲のドメイン内にあるためである。圧縮された基準値が範囲を表すために必要なものよりも１ビットだけ少ないビット数を使用するのは、差分が２で除算されるため、バイナリ表現のために必要なビット数が１ビットだけ少なくなるからである。
量子化器２０と逆量子化器２６はそれぞれ、各ブロックに合わせて最適化されている量子化テーブルと逆量子化テーブルにアクセスする。量子化テーブルと逆量子化テーブルはピクセルブロックの概算範囲に基づく値を収めている。最小−最大−範囲ＭＭＲＰ３０は入力データブロックを受け取り、そのブロックをスキャンして最小ピクセル値と最大ピクセル値を決定する。そのあと、ＭＭＲＰ３０は最大ピクセル値から最小ピクセル値を減算し、１（最大値−最小値＋１）を加えてピクセルブロックの範囲を計算する。
量子化器２０は計算で求めた範囲を、少なくとも１つがその計算範囲より大か等しくなっている、事前定義範囲のセットと比較して、事前定義範囲を選択し、その選択事前定義範囲から導き出された量子化テーブルにアクセスする。事前定義範囲は、セットの中で最小値であって実際の計算範囲より大か等しくなっている事前定義範囲を、最良適合分析法で判別することによって選択される。量子化テーブルと逆量子化テーブルは、その選択事前定義範囲のドメイン内の値を含むように、従って、実際の範囲全体の値を含むようにカスタマイズされている。量子化器２０はＤＰＣＭ処理を採用し、予測誤差である差分値を出力する。これらの予測誤差は、予測器１８に与えられたピクセル値が、予測器１８がいま予測値を生成しようとしてるピクセルと同じピクセルブロックからのものであれば、実際範囲のドメインに置かれている。圧縮器１２はこのパラメータに従い、それを残しておく。あるピクセルブロックが与えられているとき、その実際範囲は256（８ビットピクセル値の最大値）より大幅に少ないことがよくあり、事前定義範囲から導き出されたテーブルレベルから得られる解像度が256から導き出されたテーブルレベルから得られるものよりも良好になっているのは、その選択事前定義範囲が実際範囲に値が近似しているのが一般的であるためである。テーブルレベルをその範囲に合わせてカスタマイズするとシステムの正確性と効率性が向上するのは、以上の理由によるものである。
入力ブロックデータを復元するためには、逆量子化器２６は、量子化器２０がピクセルブロックを量子化するとき使用した量子化テーブルにアクセスするためにどの事前定義範囲を使用したかを知っていなければならない。範囲とその他のピクセルブロックパラメータの表現はパラメータフィールドに入って、量子化されたピクセルブロックと一緒にメモリ１４にストアされている。ブロックパラメータ表現を量子化されたピクセルブロックと一緒にメモリ１４にストアしておくと、逆量子化器１６は正しい逆量子化テーブルにアクセスし、ピクセルブロックを効率的にかつ正確に復元することができる。パラメータフィールドに含まれる、他のピクセルブロックパラメータとしては、例えば、最小ピクセルブロック値または基準ピクセルブロック値がある。図３はパラメータフィールドと圧縮データが取り得る１つの構成を示している。パラメータフィールドは図３に破線ボックス内に入っているブロックパラメータからなっている。この実施例では、パラメータフィールドは圧縮データペイロードを収めているデータパケットのヘッダとして配置されている。
表示されるイメージの品質を大幅に低下させることなくフレームメモリの縮減を最大限にするために、パラメータフィールド内にブロックパラメータで表されているオーバヘッド情報はメモリ１４にストアされている。パラメータフィールドをストアするために使用されるすべてのビットは、量子化ピクセルをストアするために利用できるメモリを減少させている。従って、本発明を使用するシステムはブロックパラメータの２つ、つまり、範囲と最小値をストアするために必要なビット数を、ほとんどの場合、各パラメータごとに８ビットから３ビットに減少する。このプロセスの働きは以下に説明する通りである。
実際範囲は事前定義範囲のセットと比較され、最良適合範囲が決定される。その事前定義範囲は、そのとき処理されているピクセルブロックの範囲を表現するために使用される値となる。事前定義範囲は、ピクセルブロック内のすべてのピクセル値が確実に表現されるように実際範囲よりも大きくなっている。事前定義範囲のセットは７個の値を含んでいる。すなわち、16、32、64、96、128、192および256である。このセットは量子化器２０と逆量子化器２６の両方で使用できるので、事前定義範囲はパラメータフィールド内で１つのインデックス値で表すことができる。このインデックスがバイナリ表現のために３ビットだけを必要としているのは、表現する事前定義範囲が７つしかないためである。
システムは最小ピクセル値も同じように取り扱う。７つの事前定義範囲のうち５つについては、システムは選択された事前定義範囲に固有の、あらかじめ決められた８個の最大ピクセル値のセットにアクセスする。量子化器２０は実際最小ピクセル値を事前定義セットと比較し、実際最小値より大か等しい最大事前定義最小値を選択する。この事前定義最小値は処理されているピクセルブロックの最小ピクセルを表現するために使用される値となる。このセットは量子化器２０と逆量子化器２６の両方で使用可能であるので、事前定義最小値はパラメータフィール内で１つのインデックス値で表すことができる。このインデックスもバイナリ表現のために３ビットを必要とするのは、表現する事前定義最小ピクセル値が８つしかないためである。
７つの範囲のうちの５つに対する８個の事前定義最小ピクセル値のセットは、以下に示す式（１ａ）によって定義されている。式（１）が適用される５つの範囲は32、64、96、128および192である。この式は各範囲の最小値が０から始まるときの一定のリニアステップとなっている。
下の式（１）は、実際の最小ピクセルブロック値に置き換えられる事前定義最小ピクセル値を集合Qmin（Rs,i）（式（1a））から選択する。MAXi｛f（x）｝は、ブラケット内の条件を満足するｉの最大値がQminを生成するために使用されることを示している。
Qmin=MAXi｛Qmin（Rs,i）｜Qmin（Rs,i）<=Xmin;0<=i<=7｝，  （1）
ここで
Qmin（Rs,i）=INT｛i（（256-Rs）/7）｝;0<=i<=7．          （1a）
上記の式において、ｉはオーバヘッドパラメータフィールドに３ビットで表されたインデックス値である。INT｛f（x）｝は結果の値の整数部分だけが使用されることを示している。ブラケット内の式f（x）は、式（１）に示すように、関数INTが演算する任意の式を表している。事前定義範囲が256であるとき、最小値がストアされないのは、256の最小値が８ビットワードではゼロ（0）になるからである。事前定義範囲が16であるとき、オリジナルの８ビット最小値が使用されるのは、この範囲の解像度が式（１）から得られる最小値に比べて小さいからである。範囲が16であるときの最小値を生成するために式（１）を使用すると、実際のピクセル値は復元時に復元データの範囲から出ることになる。最小値はゼロと最小ブロックピクセル値の間の距離を示すオフセットである。
式（１）は、事前定義最小値が実際最小値よりも小さいために、量子化されたピクセルブロックが復元されるとき実際のピクセルブロック値をカバーするのに十分でない事前定義範囲を選択することがある。例えば、あるピクセルブロックが与えられているとき、最小ピクセル値が100で、最大ピクセル値が140であれば、選択される事前定義範囲は64である。式（１）から得られる選択事前定義最小ピクセル値は82である。選択最小値を選択範囲に加えると、その結果は146になり、これは実際最大ピクセル値より大になっている。従って、ピクセルブロックの値はすべて選択事前定義値で表されることになる。しかし、最大ピクセルブロック値が160であれば、選択事前定義値は同じままであるが、ピクセルブロックのドメイン（160>146）を完全に表していない。この場合には、次に高い事前定義範囲である96が選択され、新しい選択事前定義最小値は91である。91と事前定義範囲の96を加えると、187になり、これは実際最大ピクセル値160より大になっている。従って、この範囲から選択された量子化テーブルと逆量子化テーブルには、ブロック内の全ピクセルのレベルが入っている。量子化マッパ２８は上述した分析を行って、事前定義範囲と最小ピクセル値の最初の選択が有効であるかどうか、つまり、次に大きい事前定義範囲が必要であるかどうかを決定する。
前述したように、予測ネットワークがその予測値を同一ブロック内のピクセル値から導き出す場合は、実際ピクセル値と予測ピクセル値との差分は次の範囲内になっている。
-Range<E<Range，ここで        （２）
Range=Xmax-Xmin+1             （３）
式（２）において、Ｅは予測誤差である。式（３）において、XmaxとXminはそれぞれ実際最大ブロックピクセル値と最小ブロックピクセル値である。従って、ブロックからのピクセルデータの範囲は量子化テーブルと逆量子化テーブルが受け取る値と、これらのテーブルがその特定ブロックに対して与えなければならない限界を定義している。範囲がワードサイズ（８ビットワードでは256）の最大値より小であれば、量子化テーブルと逆量子化テーブルの解像度が増加される。
ルマデータとクロマデータはどちらも、負の予測誤差にバイアスが与えられて処理される。従って、ルマデータとクロマデータの量子化テーブルと逆量子化テーブルは、正の入力値だけを受け付ける設計になっている。バイアスが与えられた負の予測誤差値を採用する量子化テーブルと逆量子化テーブルはピクセルブロックの範囲だけを受け付ける設計になっているテーブルよりも２倍の解像度になっている。この解像度が２倍になっているのは、これらのテーブルはゼロから正の範囲値だけをカバーするだけでよく、負の範囲と正の範囲の間のすべての値をカバーする必要がないためである。図６Ａ、図６Ｂおよび図６Ｃは、それぞれ事前定義範囲が64であるときの３ビット、４ビットおよび５ビット・テーブルを示している。量子化に先立って、予測誤差プロセッサ２７（図２）は結合器２からの予測誤差が正であるか、負であるかを検出する。値が正であれば、未変更のまま量子化マッパ２８に渡される。値が負であれば、予測誤差プロセッサ２７は値が量子化マッパ２８に渡される前に、事前定義範囲を負の予測誤差値に加える。負の予測誤差値は負の範囲値のドメイン内にあるので、正の範囲値を負の予測誤差値に加えると、バイアスが与えられた誤差値になる。このバイアスが与えられた誤差値は正であり（ゼロより大）、正の範囲値より小である。量子化マッパ２８はバイアスが与えられ予測誤差値とバイアスが与えられなかった予測誤差値の両方を受け取り、正の事前定義範囲に合った量子化テーブルを使用してこれらを量子化する。量子化された誤差値はマルチプレクサ３２に渡され、そのあとシステムコントローラ（図示せず）の制御のもとでメモリ１４にストアされる。テーブルは負の範囲値から正の範囲値までの値ではなく、ゼロから範囲−１までの値を量子化するので、テーブルの解像度は２倍になる。
図４は図１の逆量子化器２６を示すブロック図である。システム・マイクロプロセッサの制御のもとで、デマルチプレクサ３４はパラメータフィールドと量子化データを収めているデータパケットを受け取る。デマルチプレクサ３４は最小ピクセル値インデックスと事前定義範囲インデックスを最小−最大−範囲デコーダ（min-max-range decoder-MMRD）３８に送信する。デマルチプレクサ３４は圧縮された第１ピクセル値を第１ピクセルデコーダ３７に送信し、このデコーダは事前定義復元範囲と最小ピクセル値もＭＭＲＤ３８から受け取る。第１ピクセルデコーダ３７はこれらの３つの値を使用して、基準ピクセルを復元し、それを予測器２４に送信する。逆量子化時に、デマルチプレクサ３４は量子化値を逆量子化マッパ３６に送信し、予測誤差値がそこで逆量子化され、加算器３９に渡される。加算器３９は予測値を逆量子化値に加え、その結果を予測誤差プロセッサ３５に渡し、そこでその結果が復元最大ピクセルブロック値と比較される。量子化の前に負の値を正の値に変換するために、誤差値にバイアスが与えられていれば、その結果は復元最大ピクセル値により大になっている。バイアスが与えられていなければ、結果は復元最大ピクセル値より小か、等しくなっている。誤差値にバイアスが与えられていたと予測誤差プロセッサ３５が決定すると、事前定義範囲値は結果から減算され、ネットワークの量子化側で導入されたバイアスが補正される。予測誤差プロセッサ３５と第１ピクセルデコーダ３７は基準ピクセルを含む復元データを正しい順序で出力ネットワーク（図示せず）に渡す。
逆量子化器２６に渡される値は量子化および／または符号化値である。復元量子化最小ピクセル値（Qmin）は、実際最小ピクセル値より小か等しくなっていなければならない。また、復元量子化最大ピクセル値（Qmax）と復元量子化範囲値はそれぞれの実際値より大か等しくなっていなければならない。ＭＭＲＰ３０は、前述したように、これらの条件が満足されているか否かを確かめる。どのピクセル値も、Qminより大か等しくなっていなければならないので、事前定義範囲をバイアスを含んでいる復元ピクセル値に加えると、少なくとも１だけQmaxより大きい値が得られるのが一般である。
しかし、量子化ノイズＮqがあると、量子化器２０が負の予測誤差値を検出して、値にバイアスを与えたかどうかの決定が不正確になるおそれがある。量子化ノイズは実際ピクセル値と復元値との差分であり、これは非可逆（lossy）量子化テーブルの解像度が原因で起こるものである。予測誤差プロセッサ３５は最高値データを事前定義範囲に加算し、その結果をQmaxと比較する。結果がQmaxより大であれば、事前定義範囲はその結果から減算され、正しい復元ピクセル値が得られる。しかし、Ｎqが正であれば、結果はQmaxより大になることがあるために、予測誤差プロセッサ３５はバイアスが与えられた予測誤差を誤って判別することになる。同様に、Ｎqが負であれば、結果はQmaxより小になることがあるために、予測誤差プロセッサ３５はバイアスが与えられなかった予測誤差を誤って判別することになる。
図５Ａは、その出力が量子化ノイズのために誤判断されないことを量子化マッパ２８（図２）がどのように確かめるかを示している。量子化器８０は量子化される各ピクセル値ごとに３つの出力を与える。この３つの値は量子化テーブル（Ｉ）の決定ポイントの最良復元レベルと、最良レベルの両側（I+1,I-1）にある復元レベルである。結合器８４は最良復元値の復元ピクセル値を計算し、その結果は結合器８６によってQmaxと比較される。予測誤差にバイアスが与えられていて（S2は負である）、結合器８６からの結果がQmaxより小であれば（S1は負である）、復元時に予測誤差プロセッサ３５は、逆量子化予測誤差がバイアスされていなかったと誤って決定する可能性がある。この問題を避けるために、予測誤差の次に大きい復元レベルに対応するコードワードがマルチプレクサ３２に送信される。予測後がバイアスされていないで（S2は正である）、結合器８６からの結果がQmaxより大であれば（S1は正である）、復元時に予測誤差プロセッサ３５は、逆量子化予測誤差がバイアスされていたと誤って決定する可能性がある。この問題を避けるために、予測誤差の次に小さい復元レベルに対応するコードワードがマルチプレクサ３２に送信される。その他の場合は、いずれも最良レベルが選択され、マルチプレクサ３２に送信される。
量子化テーブル内の最初または最後のレベルが最良であるときは、次に大きいまたは小さい量子化レベルに最良レベルが与えられる。図５Ｂは真理値表を示しており、量子化器８０から与えられ、量子化マッパ２８が出力するとき、および選択ユニットがその選択値の各々を使用するとき利用できるできる選択値を示している。量子化ノイズはバイアス誤差補正の分析を誤ったものにする原因となるので、反対符号をもつ量子化ノイズの値を選択すると、Qmaxと復元ピクセル値との関係に影響することがない。
Ｎqの絶対値は大でないのが一般であるので、量子化器２８は最良量子化レベルを選択するのが通常である。量子化器２８が次に大きいまたは小さいレベルを選択するときは、その選択は追加誤差を復元ピクセルに挿入することになる。しかし、この誤差は最も近いレベルを選択すると最小限になるので、テーブルの問題は公知のＤＰＣＭ量子化テーブルよりもはるかに良好な解像度で訂正されることになる。一般に、この訂正を行っても、表示されるイメージに目立った品質低下が起こることはない。
量子化解像度は２のファクタだけ以上に向上することがよくあり、これは負の予測誤差にバイアスを与えて正の値を得ると行われる。事前定義範囲を選択しても、量子化解像度が向上する。例えば、あるピクセルブロックが与えられているとき、選択した事前選択範囲が16であれば、４ビットテーブルは予測誤差値を非可逆的に正確に量子化する。解像度は、256の範囲（８ビットの場合）から16（256/16）に16のファクタだけ向上する。同じ正の範囲に対して量子化／逆量子化テーブルで必要とするものが正の範囲値だけであれば、解像度はさらに２のファクタだけ向上するので、総ファクタは32になる。
ＭＭＲＰ３０（図２）がクロマピクセルブロックをスキャンして７つのセットから事前定義範囲を選択するとき、データはデータ圧縮のために必要な実際の量子化テーブルを縮減するためにスケーリングすることが可能である。事前定義範囲が32、192、および256であるときは、３つのカスタマイズされたテーブルのセットが存在する。これらは、前述したように、３ビット、４ビットおよび５ビット・テーブルである。データが他の事前定義範囲の３つに合致すると、そのデータは２のファクタだけスケーリングアップされる。32である事前定義範囲に合致するピクセルブロックは、64の範囲によってアクセスされる量子化テーブルを利用するようにスケーリングされる。ピクセルブロックが96の事前定義範囲に合致するときは、192の量子化テーブルが利用される。同様に、ピクセルブロックが128の事前定義範囲に合致するときは、256の量子化テーブルが利用される。データをスケーリングすると、ハードウェアとソフトウェアの複雑性が低減され、ネットワーク内で要求されるリードオンリメモリ（ＲＯＭ）の量が減少する。復元時に、スケーリングされたピクセルブロックは逆量子化の後２で除算されてデータの正確性が保たれる。
ルマデータとクロマデータのどちらの場合も、すべての量子化テーブルはミッドポイントを中心にシンメトリ（対称）になるように作られている。図６Ａ、図６Ｂおよび図６Ｃは、事前定義範囲が64であるときの、３ビット、４ビットおよび５ビット量子化テーブルを示している。シンメトリにすると、各テーブルの半分だけをＲＯＭにストアしておくことができ、各テーブルの残り半分は単純なハードウェア回路により実現することができる。このようにすると、ＲＯＭのサイズが縮減するので、製造コストが低減化される。
量子化テーブルは以下に示すように、テーブルのミッドポイントを中心にシンメトリになる単純な関係の集合に設計されている。これらの関係において、Ｉは量子化レベルインデックス、ＤIはＩ番目の決定ポイント、ＱIは復元レベル、Ｍはテーブル内のレベルの総数、Ｒdは量子化範囲である。決定ポイントは量子化テーブルへのピクセル値入力がテーブル内であるレベルから別のレベルへ移るときの値である。その関係は次のようになっている。
Ｍは偶数        （４）
DI+DM-1-I=Rd-1  0<=I<=（M/2）-1のとき；  （５）
QO=0;                                    （６）
QM/2=Rd/2;                               （７）
QI+QM-I=Rd  1<=I<=M/2          のとき．  （８）
図６Ａ、図６Ｂおよび図６Ｃに示すテーブルは、ネットワーク内で使用されるすべての量子化テーブルと同じようにこれらの関係に準拠している。バイアスが与えられていない予測誤差値をテーブルが受け付けると、つまり、正値と負値の両方を受け付けると、Ｍは奇数になる。
テーブルの出力コードワードも、テーブルの半分だけがＲＯＭにストアされるようにするシンメトリを保証する関係をもっている。これらの関係でのシンボルはすべて上記関係のそれと同じである。追加されているのは、Ｉ番目のレベルのコードワードであるＣIと、コードワード内のビット数であるｎだけである。
これらの関係は次のようになっている。
Ｃ1＝０およびＣM-1＝１  短コードワードのとき      （９）
C0=（2n）-2;                                      （１０）
CM/2=（2n）-1;                                    （１１）
CI=2I  2<=I<=（M/2）-1  のとき；                  （１２）
C（M/2）+I=C（M/2）-I+1  1<=I<=（M/2）-1  のとき．（１３）
関係（９）から（１３）までは、テーブル内ではバイナリ形式で表されている。バイアスが与えられていない予測誤差値をテーブルが受け付けると、つまり、正値と負値の両方を受け付けると、３ビットコードワードも奇数になる。
関係（９）は量子化テーブルがＤＰＣＭ予測誤差値を受け入れるときの、３ビットコードワードの統計的に最適な配置を定義している。短コードワードを最もアクセスされる可能性のある復元レベルに置くと、システムは記憶ビットを他の目的にセーブしておくように最適化される。短コードワードを使用すると、量子化テーブルで利用できるレベル数が減少するが、オーバヘッド情報を収容し、コードワード当たりの平均ビット数を４ビットに保つだけの、十分なビットがメモリに残されるのが一般であるので、ビットセービング（節約）は解像度損失（lost resolution）を上回ることになる。
テーブルはそのミッドポイントを中心にシンメトリであるので、実際にメモリにストアしておく必要があるのは、ミッドポイントレベルを含めて半分のテーブルレベルだけである。残りのレベルは回路でマッピングすることができる。図７は逆量子化時に残りのテーブル復元値をマッピングし、テーブルの両半分のすべての８ビット復元ピクセル値を出力するための１つの単純なハードウェア実現例を示している。
符号化（coding）コントローラ２９（図２）と復号化（decoding）コントローーラ３３（図４）は、クロマピクセルブロックに対して相互に類似しているが、逆の演算を実行する。両コントローラ共、各ブロックごとに処理されたピクセルの数と、オーバヘッド情報用に残しておくか、必要とされるビットの数をカウントする４つのレジスタを含んでいる。１つのレジスタは範囲レジスタであり、これは現在処理されているピクセルブロックを、どの事前定義範囲が表しているかを判別するフラグレジスタである。これらのレジスタを利用して、コントローラ２９と３３は、処理される各ピクセルごとに、３ビット、４ビットまたは５ビット・テーブルのどれかを選択し、すべてのオーバヘッド情報を含むピクセルブロックが事前定義サイズに圧縮されてメモリ１４にストアされ、そのあと圧縮解除されて、オリジナル・ピクセルブロックに復元されているかを確かめる。
クロマデータ用に含まれているオーバヘッド情報は、どのブロックパラメータがストアされるかに応じて、事前に決められたビット数を必要とする。図８は各事前定義範囲の各ブロックパラメータ用に必要なオーバヘッドビットの数を示している。各ピクセルは、基準ピクセルを含めて、平均４ビットがメモリ１４に予約されている。コントローラ２９はオーバヘッド用に使用される総ビット数よりも４だけ少ないビット数を埋め合わせている。各事前定義範囲のオーバヘッドビットの埋め合わせ（compensation）として必要になるビット数は図８の最終行に示されている。
コントローラ２９の主目的は４ビットまたは５ビット・テーブルのどちらかを使用して各ピクセルを符号化し、すべてのブロックピクセルが予約スペースに収まるかを確かめる必要があるときだけ３ビット・テーブルを使用することである。４ビットと５ビット・テーブル内の短３ビットコードワードはこの目標を達成する最良の機会を提供している。短コードワードは、統計的に、ＤＰＣＭデータを得るために最もアクセスされる可能性のあるレベルで、テーブルに置かれるので、各ブロックは３ビット量子化テーブルを使用しないで圧縮されることがよくある。さらに、任意の与えられたピクセルブロック内のいくつかのピクセルは、５ビットコードワードで量子化されるので、解像度と表示品質が向上するのが一般的である。しかし、ピクセルブロックが必要とするオーバヘッドビット数を埋め合わせるのに十分であることがよくある、４ビットと５ビットの量子化テーブルにアクセスしなければ、コントローラ２９は３ビット量子化テーブルにアクセスする。コントローラ２９は、各ピクセルブロック内の最後のＮビットを低プライオリティピクセル（low priority pixel-LPP）と判断する。ここで、Ｎはそのピクセルブロックの埋め合わされた（compensated）オーバヘッドビットの数である。ＬＰＰがいつ処理され、いくつのオーバヘッドビットが未埋め合わせ（uncompensated）のまま残っているかを示すカウンタに基づいて、コントローラ２９はＬＰＰに対して３ビット量子化テーブルを選択する。コントローラ２９は、未圧縮のまま残っているピクセルの数が未埋め合わせのまま残っているオーバヘッドビットの数に等しくなるまで３ビット量子化テーブルを使用しない。
図９Ａ、図９Ｂ、および図９Ｃはコントローラ２９と３３のフローチャートを示す図である。どちらのコントローラも同じように動作し、同じステップを実行してピクセル値を圧縮または圧縮解除する。コントローラ２９と３３の説明を簡単にするために、以下では圧縮コントローラ２９だけについて説明する。
スタート時に、４つのレジスタは各クロマピクセルブロックの先頭で初期化される。範囲レジスタは現ピクセルブロックの事前定義範囲に従ってコード化される。オーバヘッドレジスタは、図８に示すように、コントローラ２９に埋め合わせさせようとするオーバヘッドビットの数にセットされる。このレジスタはＬＰＰが処理されるたびに１だけデクリメントされる。ビットセービング・レジスタはオーバヘッド・レジスタの負値に初期化され、短コードワードが使用されるたびにインクリメントされる。ピクセルカウント・レジスタは現ピクセルブロック内のピクセル数の負値に初期化される。このレジスタはピクセルが処理されるたびにインクリメントされる。ピクセルカウントは処理されるピクセルがＬＰＰであるかどうかを識別するために使用される。
図９Ａのスタート時に、８ビット・ピクセル値はステップ１００に渡され、これは、そのピクセルが低プライオリティピクセル（ＬＰＰ）であるかどうかを示している。そうであれば、ステップ１０２はビットセービングとオーバヘッドを加算し、その結果をゼロと比較する。これが重要なステップであるのは、この時点で十分なビットがセーブされていないと、３ビット量子化テーブルがアクセスされ、ステップ１０４で３ビットコードワードがピクセルを圧縮するために使用されるからである。現ピクセルはＬＬＰであるので、処理された、すべての先行ピクセルは、そのピクセルブロック内のすべてのオーバヘッドビットを埋め合わせるのに十分な回数、４ビット・テーブル内の短３ビットコードワードで圧縮されていない可能性がある。従って、レジスタ値がビットセービング＋オーバヘッド＞０であれば、ここでビットがセーブされていなければならないので、３ビット低解像度テーブルがピクセルを圧縮するために使用される。これと同時に、ビットセービング・レジスタとビットカウント・レジスタがインクリメントされ、オーバヘッド・レジスタがデクリメントされる。この時点で、ピクセルは圧縮され、次のピクセルがスタートから処理される。
ステップ１０２で結果がゼロより大であれば、ステップ１０６はビットセービングがゼロより大であるかどうかを決定する。そうでなければ、十分なビットがその時点までにオーバヘッドを埋め合わせるためにセーブされており、埋め合わされていないオーバヘッドビットと同数のＬＰＰが残っている。そのあと、ステップ１０４はビットセービングとピクセルカウントをインクリメントし、オーバヘッドをデクリメントし、３ビット・テーブルから３ビットコードワードを出力する。ステップ１０６でビットセービングがゼロより大であれば、ステップ１０８はビットセービング＝０、範囲＝１６になっているかをチェックする。そうであれば、ステップ１１０は短コードワードのない１６レベルの、４ビット量子化テーブルにアクセスするが、これは、このピクセルのためにビットをセーブする必要がないからである。ピクセルカウントがインクリメントされ、オーバヘッドがデクリメントされ、次のピクセルが圧縮のために検索される。ステップ１０８の結果が“ＮＯ”であれば、現事前定義範囲の４ビット・テーブルがステップ１１２でアクセスされる。ステップ１１４は、ピクセルが４ビット・テーブルの短コードワードレベルに属しているかをチェックする。そうであれば、ステップ１１６はビットセービングとピクセルカウントをインクリメントし、オーバヘッドをデクリメントし、３ビットコードワードを出力する。そうでなければ、ステップ１１８はピクセルカウントをインクリメントし、オーバヘッドをデクリメントし、４ビットコードワードを出力する。ステップ１１６と１１８のどちらも、そのあと、次のピクセルが検索され、スタートから処理が開始される。
ステップ１０６に戻って説明すると、そこでは、ピクセルはステップ１００でＬＰＰであると決定されているので、ビットセービングがゼロより大であれば、プロセスは図９Ｂから続けられる。ビットセービングはゼロより大であるので、ピクセルブロックでその時点までにセーブされたビット数は十分以上になっている。従って、高解像度５ビット・テーブルがステップ１２０で使用される。５ビット・テーブルは短コードワードを収めているので、ステップ１２２はピクセル値がテーブルの短コードワードレベルに属しているかを決定する。そうでなければ、ステップ１３２はピクセルカウントをインクリメントし、ビットセービングとオーバヘッドをデクリメントし、５ビットコードワードを出力する。そうであれば、ステップ１２４はビットセービングとオーバヘッドを加算し、セーブされたビット数が多過ぎるか否かを決定する。セーブされたビット数が余りに多くなると、システム同期が保たれなくなる。これを防止し、システムが追いつくまで圧縮データをバッファに置いておかないで済むようにするには、３ビットコードワードをゼロで詰めることができる。ステップ１２４の結果によって、ピクセル圧縮がたどっていく通路が決まる。結果がゼロ未満であれば、セーブされたビット数が十分でないので、ゼロ詰めはステップ１２６で行われない。ビットセービングとオーバヘッドとピクセルカウントがインクリメントされ、オーバヘッドがデクリメントされ、３ビットコードワードが出力される。結果がゼロに等しければ、３ビットコードワードは１つだけ多過ぎるビットをセーブする。
従って、ステップ１２８でコードワードは１個のゼロが詰められ、ピクセルカウントがインクリメントされ、オーバヘッドがデクリメントされ、詰め込まれた４ビットコードワードが出力される。ステップ１２４の結果が１に等しければ、３ビットコードワードは２つだけ多過ぎるビットをセーブする。従って、ステップ１３０でコードワードは２個のゼロが詰められ、ピクセルカウントがインクリメントされ、ビットセービングとオーバヘッドがデクリメントされ、詰め込まれた５ビットコードワードが出力される。ステップ１２６、１２８、１３０および１３２の後、ピクセルの圧縮は完了し、次のピクセルが検索されてスタートから処理される。
ステップ１００でピクセルがＬＰＰでないと決定されていれば、プロセスはステップ１３４に移り、そこでビットセービングはゼロと比較される。ビットセービングがゼロより大でなければ、ステップ１０８から１１８までがステップ１３０から１４６までによって繰り返されるが、１つだけ異なる。ステップ１１０、１１６および１１８がオーバヘッドをデクリメントするのは、これらの通路では、処理されるピクセルがＬＰＰであるためであり、これに対してステップ１３８、１４４および１４６では、処理されるピクセルがＬＰＰでないため、オーバヘッドはデクリメントされない。
ビットセービングがステップ１３４でゼロより大であれば、ステップ１４８から１６０までは５ビット・テーブルとゼロ詰め込み分析を採用するステップ１２０から１３２までを繰り返す。この場合も、ステップ１４８から１６０までで処理されるピクセルはＬＰＰではないので、オーバヘッドはステップ１５４、１５６、１５８、および１６０でデクリメントされない。ステップ１３８、１４４、１４６、１５４、１５６、１５８、および１６０のすべての後、圧縮は完了し、次のピクセルが検索されてスタートから処理が開始される。
コントローラ２９の目的は、各クロマデータを可能な限り最高解像度の量子化テーブルを使用して処理することである。ピクセルデータ値は空間表現であるので、各ピクセル値はブロックの先頭にその情報の大部分を収めている変形ブロックデータとは異なり、ディスプレイに重要な情報を収めている。ピクセルブロック内の相対位置と、コントローラ２９に埋め合わせようとするビットの数を考慮して各ピクセルが処理されるのは、そのためである。
図１に戻って説明すると、メモリ１４は量子化されたピクセルブロックとパラメータフィールドを、これらがピクセル復元と表示のために必要でなくなるまでストアしている。データがメモリ１４に置かれている時間の間、これらは、共通データバスを使用するマイクロプロセッサの制御下に置かれている圧縮解除器１６を通して後続のディスプレイプロセッサによってアクセスして復号化することができる。圧縮器１２と圧縮解除器１６は共通集積回路で実現されており、集積回路を単純化するために設計と構造が類似している。メモリ１４は集積回路の外に置いておくと、メモリ１４のサイズを特定システムの信号処理要件に見合うように選択できるという利点がある。その結果、例えば、ＭＰＥＧ復号器用に少ないフレームメモリを必要とする低解像度ディスプレイを使用する低コストのコンシューマ・テレビジョン受信機の場合に製造コストが節減されることになる。さらに、メモリ１４を集積回路の外に置いておく場合であっても、従来技術のメモリ一体化アーキテクチャによれば、メモリ１４内の未使用記憶エリアを他のシステムコンポーネントで使用することが可能になる。このようにすると、総システムコストがさらに低減され、総システム能力が向上することになる。また、節減された記憶エリアは他のシステムコンポーネントで使用できるのが一般的であるので、総システム能力が向上することになる。
図１０は、前述したように本発明による装置を内蔵している、テレビジョン受信機内の実際のディジタル信号処理システムの一部の例を示す図である。図１０のディジタルテレビジョン受信機は、図面が複雑化するのを避けるために簡略化されている。例えば、図示されていないものとして、種々エレメントに関連づけられたＦＩＦＯ入出力バッファ、読み書きコントロール、クロックジェネレータ・ネットワーク、および外部メモリとのインタフェースとなる制御信号があり、この外部メモリは拡張データアウト（extended data out-EDO）型または同期型（SDRAM）、Rambus DRAM（RDRAM）または他の種類のＲＡＭにすることができる。
図１および図１０の共通エレメントは同じ符号を付けて示されている。信号プロセッサ７２内のエレメントは、ユニット７０を除き、SGS-Thomson Microelectronics社から市販されているSTi 3500A MPEG-2/CCIR 600ビデオデコーダ集積回路に実装されているエレメントに対応している。
要約して説明すると、図１０のシステムはマイクロプロセッサ４０、バスインタフェース・ユニット４２および内部コントロールバス４６に結合されているコントローラ４４を含んでいる。この例では、マイクロプロセッサ４０はＭＰＥＧデコーダ７２を内蔵している集積回路の外に置かれている。192ビット幅の内部メモリバス４８は圧縮器１２、類似の圧縮解除器１６、５０および外部フレームメモリ１４との間でデータがやりとりされる通路である。ユニット１２、１６および５０は圧縮および圧縮解除ファクタ制御信号を、イネーブル制御信号と一緒にコントローラ４４を経由してマイクロプロセッサ４０から受信する。また、Request入力を受信し、Acknowledge出力を、メモリAddress出力、Read EnableおよびWrite Enable出力と共に出力するローカルメモリ制御ユニット５２も含まれている。メモリ制御ユニット５２はリアルタイム・アドレスおよびメモリ１４を制御する制御信号を生成する。また、メモリ制御ユニット５２はローカルクロック・ジェネレータ（図示せず）からの入力クロック信号Clock Inに応答して、出力クロック信号Clock Outも出力する。マイクロプロセッサ４０はメモリ１４を、ＭＰＥＧ復号化、およびディスプレイ処理とオンスクリーン表示マップのためのビットバッファ、ビデオフレーム記憶セクションおよびフレーム記憶バッファに分割する。
ディスプレイ・プロセッサ５４は、圧縮解除イメージフォーマットを事前定義の共通フォーマットに変換して、イメージ再現ディスプレイデバイス５６から表示するために必要になる、水平および垂直再サンプリングフィルタを含んでいる。例えば、システムは525ラインインターレース、1125ラインインターレースまたは720ライン順次走査などの、フォーマットに対応するイメージシーケンスを受信して復号化することができる。テレビジョン受信機は、すべての受信機フォーマットに共通ディスプレイフォーマットを使用することが見込まれている。
外部インタフェースネットワーク５８は、ＭＰＥＧ復号器による処理のための入力圧縮ビデオデータのほかに、制御情報と構成情報をＭＰＥＧ復号器と外部マイクロプロセッサ４０との間で伝達する。ＭＰＥＧ復号器はマイクロプロセッサ４０のコプロセッサ−プロセッサに類似している。例えば、マイクロプロセッサ４０は復号化される各フレームごとにデコードコマンドをＭＰＥＧ復号器に対して出す。復号器は関連のヘッダ情報を見つけ、それをマイクロプロセッサ４０が読み取る。この情報を使用して、マイクロプロセッサ４０は、例えば、フレームタイプ、量子化マトリックスなどに関する、復号器を構成するためのデータを出し、そのあと復号器は適切なデコードコマンドを出力する。上記のSGS-Thomson STi 3500A集積回路デバイスに関する技術仕様書には、ＭＰＥＧ復号器オペレーションの仕方に関する詳細情報が記載されている。
マイクロプロセッサ４０は受信機メーカによってプログラムされたモード制御データをメモリコントローラ５２に伝達してマルチプレクサ３２（図２）とデマルチプレクサ３４（図４）のオペレーションを制御すると共に、ユニット１２、１６、および５０の圧縮／圧縮解除ファクタを必要に応じて設定する。開示システムは、例えば、地上放送、ケーブルおよび衛星伝送システムと関連づけられているような、種々のディジタルデータ処理方式を規定しているＭＰＥＧ規格のすべてのプロファイルとレベルで使用することができる。
図１０は入力の高精細ビデオ信号を処理するためにテレビジョン受信機に実装されているような、ディジタルビデオ信号プロセッサ７２の一部も示している。信号プロセッサ７２はアナログチャネル（図示せず）を介して標準精細ビデオ信号を受信し、処理する機能を備えている集積回路に実装させることができる。信号プロセッサ７２はフレームメモリ１４を含めてブロック６０、６２、６４、６６、６８および７０で構成されている、従来のＭＰＥＧ復号器を含んでいる。例えばAng他著「ビデオ圧縮は大きな利益をもたらす（Video Compression Makes Big Gains）」、IEEE Spectrum,October 1991には、ＭＰＥＧ符号器と復号器のオペレーションが記載されている。
信号プロセッサ７２はＭＰＥＧ符号化データの制御されたデータストリームを前段の入力プロセッサ（図示せず）、例えば、入力信号の復調後データパケットを分離するトランスポード・デコーダから受信する。この例では、受信入力データストリームは、米国高精細地上テレビジョン放送システムに関するGrand Alliance規格に規定されている、高精細イメージマテリアル（1920×1088ピクセル）を表している。入力データストリームはＭＰＥＧ圧縮標準を使用して圧縮されたイメージ・シーケンスを表している階層データストリームの形になっている。周期的に、データブロックは圧縮され、符号化されたイントラフレーム（フレーム内）およびインタフレーム（フレーム間）情報を表している。イントラフレーム情報はＩフレーム・アンカフレームを含んでいる。一般的には、インタフレーム情報は予測動き符号化残余情報を含み、これは隣接ピクチャフレーム間のイメージ差分を表している。インタフレーム動き符号化は、処理される現ブロックと先行復元イメージ内のブロックとの間のオフセットを表している動きベクトルを生成することで行われる。現ブロックと先行ブロックの間の最良合致を表している動きベクトルは符号化され、伝送される。また、各動き補償8×8ブロックと先行復元ブロック間の差分（残余）は離散コサイン変換（ＤＣＴ）され、量子化され、可変長符号化（ＶＬＣ）されてから伝送される。動き補償符号化プロセスについては、上記のAng他著の文献を含む、種々の文献に詳しく説明されている。
バッファ６０は可変長符号器（ＶＬＤ）６２によって可変長符号化される前に入力圧縮ピクセルデータブロックを受け入れる。バッファ６０の記憶容量は、メインレベルでメインプロファイルのＭＰＥＧデータストリームの場合には1.75Ｍビットになっている。逆量子化器６４と逆離散コサイン変換器（ＩＤＣＴ）６６はＶＬＤ６２からの圧縮データを圧縮解除する。ＩＤＣＴ６６からの出力データは加算器６８の一方の入力に結合されている。
バッファ６０からの信号は逆量子化器６４の量子化ステップサイズを制御してデータフローがスムーズになるようにする。ＶＬＤ６２は、以下で説明するように、復号化動きベクトルを動き補償ユニット７０に与える。ＶＬＤ６２は公知のようにインタ／イントラフレーム・モード選択制御信号も出力する（簡略化のため図示せず）。ユニット６２、６４、および６６によって実行されるオペレーションは送信側に置かれている符号器のオペレーションとは逆である。
ユニット６６からの残余イメージデータをユニット７０の出力から与えられた予測イメージデータと加算することによって、加算器６８はビデオフレームメモリ１４の内容に基づいて復元ピクセルを出力する。信号プロセッサ７２がピクセルブロックのフレーム全体の処理を終えると、フレームメモリ１４はその結果の復元イメージをストアする。インタフレーム・モードでは、ＶＬＤ６２から得られた動きベクトルはユニット７０からの予測ブロックのロケーションを示している。
加算器６８、メモリ１４および動き補償ユニット７０が介入して行われるイメージ復元プロセスによれば、ブロック圧縮器１２で圧縮してからデータをフレームメモリ１４にストアするので、必要メモリ量が大幅に低減されるという利点がある。フレームメモリ１４のサイズは、例えば、圧縮率が５０％であるときは５０％まで低減することができる。ユニット５０はユニット１２とは逆の機能を実行し、上述した圧縮解除器１６に類似している。圧縮解除器５０はイメージブロックを復元して、動き補償器７０が上述したように機能できるようにする。圧縮器１２と圧縮解除器１６、５０は本発明の原理に従って作られている。図１、図２、図４、図５Ａおよび図７はユニット１２、１６および５０内部の詳細を示している。
【図１】
0004216341.tif 000002
【図２】
0004216341.tif 000003
【図３】
0004216341.tif 000004
【図４】
0004216341.tif 000005
【図５Ａ】
0004216341.tif 000006
【図５Ｂ】
0004216341.tif 000007
【図６Ｂ】
0004216341.tif 000008
【図６Ｃ】
0004216341.tif 000009
【図６Ａ】
0004216341.tif 000010
【図７】
0004216341.tif 000011
【図８】
0004216341.tif 000012
【図９Ａ】
0004216341.tif 000013
【図９Ｂ】
0004216341.tif 000014
【図９Ｃ】
0004216341.tif 000015
【図１０】
0004216341.tif 000016