JP4264492B2 - イメージをデコードする装置 - Google Patents

イメージをデコードする装置 Download PDF

Info

Publication number
JP4264492B2
JP4264492B2 JP2003381267A JP2003381267A JP4264492B2 JP 4264492 B2 JP4264492 B2 JP 4264492B2 JP 2003381267 A JP2003381267 A JP 2003381267A JP 2003381267 A JP2003381267 A JP 2003381267A JP 4264492 B2 JP4264492 B2 JP 4264492B2
Authority
JP
Japan
Prior art keywords
codebook
image
vector
sub
bit stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003381267A
Other languages
English (en)
Other versions
JP2004120785A (ja
Inventor
ノーマイル,ジェイムズ・オリバー
ワング,キャサリン・シューウェイ
ウー,シージュン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2004120785A publication Critical patent/JP2004120785A/ja
Application granted granted Critical
Publication of JP4264492B2 publication Critical patent/JP4264492B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Description

本発明はビデオの圧縮、圧縮解除に関連し、特にイメージの事前処理及びベクトルの量子化(VQ)を用いた改良されたビデオ圧縮/圧縮解除に関連する。
マルチメディアや完全動画ビデオを必要とするその他のアプリケーションのような近代的アプリケーションは、ビデオ情報の記憶、伝送及び表示に費やされる処理帯域幅を低減するビデオ圧縮の標準の開発を必要とした。これは、高解像度のフル・イメージのビデオ情報を表す伝送、記憶のための大量のデータのためである。一般に図1a、1b、1cに示すような装置は、ベクトルの量子化技術に基づく入力イメージの圧縮、圧縮解除を行うために用いられる。例えば、図1aに示すように、イメージ100は、冗長度を低減するため、あるいは入力イメージ100に含まれるデータ量を低減するため、入力イメージ又は一連のイメージに対する空間的又は時間的事前処理を適用するエンコーダ101に入力される。エンコーダ101は元のイメージ100よりも実質的に小さい圧縮されたイメージ102を生成する。ある種の従来技術システムでは、エンコーダ101は入力イメージ100の画素パターンをマッチングさせるために用いられるコードブック105を用い、画素パターンが圧縮されたイメージ102の中で別の画素パターンにマップされるようにする。このようにして、特定の色やグラフィックの情報を送らずに、イメージ内の各領域は、インデックスでコードブックのエレメントを参照することによってアドレスされる。ある種の従来技術のアプリケーションでは、圧縮イメージでの画質は損なわれるが、イメージ100から圧縮イメージ102へのイメージ・サイズの低減によって実質的節約が得られている。他の圧縮技術は「無損失(ロス・レス)」であり、追加の計算時間や大きなビット・ストリームというコストはかかるが、一般にデコードされたイメージに画質の低下はない。
逆に、圧縮解除されたイメージ132を生成するため、図1bに示すように圧縮されたイメージ102がデコーダ131に加えられる。再び、デコーダ131はコードブック105を用いて圧縮されたイメージ102に含まれるインデックスから、イメージ132に現れる画素パターンを決定する。デコーダ131はイメージをコード化するのに用いられた同じコードブック105を用いる必要がある。一般に、従来技術のシステムではコードブックはコンピュータ・システムで表示するために圧縮又は圧縮解除されるイメージ又はイメージのセットに関連して固有である。
一般に105のようなコードブックはコードブック発生器152に加えられるイメージ又はイメージのトレーニング・セット151から生成される。コードブックは圧縮される1つ又は多くのイメージに対して特に生成され、そのコードブックは生成されたイメージをデコードするのに用いられる。コードブックは更に、将来コード化される一連のイメージの妥当な統計的表現である長いトレーニング・シーケンスに対して最適化することによって生成できる。このトレーニング・コードブックは大きな範囲のイメージ特性を表すと考えられる。このトレーニング・コードブックはしばしばエンコーダ及びデコーダで固定化されるが、コードブックの部分部分は順応して改良され得る。ある種の従来技術の体系では、コードブック発生器152及びエンコーダ101は一体となっている。コード化はコードブックの生成と同時に行われ、コードブックはトレーニング・イメージからでなくコード化されたイメージから導かれる。
図2はイメージのコード化及びデコードに対するベクトルとして知られる別々の領域にイメージ200がどのように区画化されるかを示す。1つの従来技術のアプローチでは、200のようなイメージは、「ベクトル」として知られる201及び202のような一連の2×2画素ブロックに分割される。201のような各ベクトルは4つの画素201a、201b、201c 及び201d から成る。イメージがこのようなベクトルに分解されると、ビット・ストリーム内の各ベクトルを使って、(a)コードブックの生成を含むイメージのコード化を行い、(b)イメージのデコードを行う。イメージ200における201、202のような各ベクトルは、イメージ200を表すのに用いられる。イメージに含まれるベクトルの近似であるコードブックのエレメントを参照することによって1つのイメージが表される。従って、201a から201d のような4つの別々の画素を用いてイメージを表す代わりに、ベクトル201に含まれる情報を近似するコードブック・インデックスを参照してイメージが表される。コードブック内の項目数によって、イメージ・ベクトルを参照するコードブック・インデックスを使用すると、実際の画素値201a - 201d を用いてイメージを表すのではないため、ベクトルを表す記憶域を実質的に低減できる。
このような従来技術の装置は、図1a から1c を参照して論じたようにCODEC(コード化/デコード)として知られる装置に実施されており、これは対応するコードブックからの一連のイメージに対する圧縮されたビット・ストリームを生成し、コードブックを用いて後でイメージの圧縮解除を行う。例えば、このようなCODECは図3に装置300として示されている。CODEC300は2つの部分から成る。すなわちエンコーダ301とデコーダ351である。エンコーダ301は入力データ310としてビデオ、音声その他圧縮したいデータを受け取る。しかし、ビデオのコード化/デコードを論ずるこの出願の残余のために、同様の体系が他のタイプのデータにも適用できることを当業者は理解されたい。このような入力データはプリ・プロセッサ320に与えられ、コード化/デコードをより簡単なタスクにするために特定のパラメータが調整されてデータを事前処理する。プリ・プロセッサ320は、イメージをある方法でコード化するためにベクトルの量子化を用いるベクトル量子化装置330に供給し、冗長度を等しく低減する。次にベクトル量子化装置330はパック/コード化処理340に出力し、更にビット・ストリームを圧縮する。レート制御メカニズム345は圧縮されたビット・ストリーム350のサイズに関する情報を受け取り、所望のデータ・レートを達成するため、様々なパラメータがプリ・プロセッサ320内で調整される。更に、プリ・プロセッサ320はコード化されたビット・ストリームをサンプリングし、画質のセッティングを調整する。
CODEC300は更に、コードブック再生器360を用いて圧縮されたビット・ストリーム350を受け取り、デコードするデコーダ351を含む。エンコーダ内のデコーダは、イメージをデコードするためにパッキング340又はアンパッキング370の処理を行う必要はない。デコーダでは、コードブック再生器360はアンパッキング処理370に供給され、完全なビット・ストリームに戻す。この処理の結果はポスト・フィルタ375に送られ、ディザリング380がイメージに対して行われ、最終的にイメージが表示される(390)。
従来技術の量子化処理の例は、次の文献に見られる:Gray,R.M.「Vector Quantization 」(グレイ,R.M.による「ベクトルの量子化」−1IEEEASSP Magazine 4−29(1984年4月)(「グレイ」)及びNasrabadi,N.M.「Image Coding Using Vector Quantization」(ナスラバディ,N.M.による「ベクトル量子化を使ったイメージのコード化」)−A Review「COMM−36 IEEE Transaction on Communication, 957ー971(1988年8月)(「ナスラバディ」)、このようなベクトルの量子化はツリー・サーチ(tree searched)のベクトル量子化装置の作成を含み、グレイの記事16−17頁及びナスラバディの記事75頁に記載されている。
コードブックの生成は反復的であり、計算機的に高価である。従って、フレーム毎にコードブックを必要とするいくつかの従来技術の方法では、コード化は低速となる。更に、トレーニング・シーケンスを用いる従来技術のシステムの欠点は画質であり、トレーニング・シーケンスのイメージと同様でない多くのシーケンスは受容できないであろう。全体的性能もまた気がかりである。いくつかの従来技術のテクニックは法外な処理を要し、リアル・タイムの圧縮を行うことができない上に許容可能な圧縮も達成されない。高速のデコード能力に対する需要は切迫しており、さもなくば、リアル・タイムの再生は不可能である。多くの従来技術システムは計算機的に高価なデコーダを有する。
発明の概要及び目的
本発明の1つの目的は、ベクトル量子化によってコードブックを効率的に生成し、イメージの空間的、時間的冗長性を低減する装置と方法及び圧縮システムの帯域幅を節約するためのイメージの関連処理を提供することである。
本発明の他の目的は、一般的従来技術のベクトル量子化技術に関連したエラーを低減するため、イメージを効率的に区画化し、処理する手段を提供することである。
本発明の他の目的は、一般的従来技術のベクトル量子化技術に関連した計算を更に低減する手段を提供することである。
本発明の他の目的は、限定された帯域幅のチャネルでの円滑な再生に適合するため、圧縮されたシーケンスの結果的データ・レートを効率的及び効果的に制御する手段を提供することである。
本発明の他の目的は、圧縮されたデータのリアル・タイムのデコーディングを可能にする単純なデコード構造を提供することである。
本発明のこれら及び他の目的は、事前処理されたブロックをベクトル量子化装置へ送る、データをコード化する方法と装置によって提供される。ベクトル量子化装置は、イメージ・ブロックをインデックスによって代表的ベクトルのテーブルに表現し(コードブックと呼ばれる)、忠実度の基準を最小にしている。一実施例では、イメージ・ベクトルの輝度とクロミナンス(YUV)を用いて、コードブックとイメージ又はイメージのセットと関連するコードブックのインデックスを決定する。別の実施例では、どの程度の変化が起こるかに適合する時間的フィルタリングが行われ、動きの産物を低減する。別の実施例では、もし前のコード化されたフレームと現在のフレームの差が順応的閾値より小さければ、イメージ・ベクトルは送られない。実施例では、異なったコードブックを参照する異なったイメージ領域及び可変サイズの領域を提供する。実施例では、また、異なったコードブックを参照する異なったブロック・タイプを提供する。実施例が、ベクトル量子化に関して共用され、可変サイズのコードブックに関して提供される。実施例が更にイメージの端を避けるプリ・フィルタリングに関して提供される。実施例が更にレート制御体系に関して提供される。実施例が更に順応的空間的サブ・サンプリングによる、空間的冗長度の低減及び時間的サブ・サンプリングによる時間的冗長度の低減に関して提供される。
詳細な説明
本発明はベクトル量子化の改良した方法に関する。以下の説明において、説明の目的で、本発明の完全な理解を与えるために、特定タイプのデータ、アプリケーション、データ構造、ポインタ、インデックス及びフォーマットが述べられている。しかし当業者には、本発明がこれらの詳細事項なしに実行できることは明白であろう。また、本発明を不必要にあいまいにしないため、既知の構造やデータはブロック図の形で示されている。
本発明の望ましい実施例は、図3に300として示される従来技術のCODECと類似の態様で構成される。これらはディスプレイ、プロセッサ及び様々な静的及び動的記憶装置を含む汎用のプログラムされたコンピュータ・システムで実施できる。これはまた、特別目的のアプリケーション用に設計された特別目的のビデオ用コード化又はデコード装置を含むことができる。もちろん、当業者には、望ましい実施例の方法と装置は、アプリケーションの要件に適合するように独立した論理装置、ファームウエア、アプリケーション固有の集積回路(ASIC)又はプログラム論理アレイで実施できることが分かるであろう。
望ましい実施例は「C」プログラム言語のようなハイレベル・プログラム言語で実施され、汎用コンピュータ・システムで動作する。望ましい実施例を実施するために書かれたルーチンは実行可能なオブジェクト・コードにコンパイル及びアセンブルされ、ランタイムにシステムのプロセッサにロードされ、実行される。
本発明の議論は、ビデオ情報を参照して具体的に記載されているが、ここで論じた技術と装置は、ベクトル量子化を利用したオーディオの分野等他の分野にも同様の適応性があり、この出願のビデオ情報の議論が本発明を限定しているとみるべきでない。
プリ・プロセシング
CODECから出力されるデータ・レートは、プリ・プロセッサ320を通してベクトル量子化処理に至る情報量を制御する。これは全体的及び局所的の2つのレベルで行われる。空間的解像度に対する全体的変化は、イメージの帯域幅を変える低域入力フィルタを入力イメージに対して適用することによって行われる。このフィルタの通過帯域幅は必要なデータ・レートにおける誤差で変わる。誤差が少なくなるにつれて、入力フィルタの帯域幅は増加し、CODECにより多くの情報が到着できるようにする。逆に所望のデータ・レートでの誤差が増加すると、入力フィルタの帯域幅が減少し、CODECに到達する情報を制限する。時間的解像度に対する全体的変化は、現在と前のフレームの間の差を判定することによって行われる。もし変化が閾値以下なら、現在のフレームはスキップされる。閾値はデータ・レート誤差から決定される。時間的帯域幅が減少する別の全体的メカニズムは2つのフレームの間の誤差の定義を拡張することによって、誤差計算の前にフレームの変形を可能にすることである。このような変形はパン(pan)やズームの補償を含むが、それらに限定されるものではない。
ベクトル量子化処理に到達することを許される情報量の局所的制御は、空間的サブ・サンプリングと時間的ブロック(又はより一般的には動きが補償されたブロックの局所的決定)を含む。望ましい実施例のシステムは、図3の330で示す改良したベクトル量子化装置を実施し、コード化されるイメージのような非常に大きなベクトルのセットから代表的イメージ・ベクトルの小さなセット、コードブックという、を生成するのに非常に効率的である。このようなベクトル量子化装置によって生成されたコードブックからデコーダ351によって再構築されたイメージは、ある基準に関して元のものに近い。全体的圧縮/圧縮解除体系の性能は望ましい実施例において、ベクトル量子化装置の前にプリ・プロセッサ320によってビット・ストリームの内容を制御することにより更に向上する。このプリ・プロセシングはベクトル量子化装置330に対して透明である。プリ・プロセッサ320は、画質の損失を最小にしてイメージをコード化するのに用いられる情報量を実質的に低減する。望ましい実施例ではタグを用いて丁度その時に変わらないベクトルをコード化する代わりに明示する。ある閾値に従って変わらないため、「無変化」のブロックとして知られている。望ましい実施例では、ブロックは更に空間的サブ・サンプリングを用いて処理され、より良好な圧縮を達成する。更にプリ・プロセッサ320は、スピードを増大し又は画質を向上させるため、赤、緑、青(RGB)表すコード化から輝度とクロミナンス(YUV)を用いて表すコード化への変換等を行って、イメージ空間の特性を変えることができる。
無変化ブロック
望ましい実施例において、イメージ・ベクトルをコード化するか「無変化」ブロックのタグを送るかを決めるために一連の決定が行われる。「無変化」ブロックの場合、そのイメージ・ブロックに関してインデックスは送られる必要がないので、圧縮は殆ど常に向上する。コードブックを作成し、そのインデックスを見つけるイメージ・ベクトルが少ないので、コード化速度は向上する。前のフレームからのデコードされたブロックの上にスクリーン上で新しいブロックを配置しなくて良いため、デコード時間も向上する。従って、コードブックのエレメントを参照するインデックスを送る代わりに、プリ・プロセッサ320によって無変化タグが送られ、同一位置で、前のフレームのブロックからそのブロックが実質的に変わっていないことを示してベクトル量子化装置330を素通りする。これは図4を参照して示され、論じられる。処理400はステップ401で始まり、ステップ402でフレームNの次のブロックを取り出す。ステップ403でフレームNのこのイメージ・ブロックは次にプリ・プロセッサ320によって、デコードされたフレームN−1からの同一位置のイメージ・ブロックと比較される(デコードされたフレームN−1はエンコーダのビット・ストリームの出力から抽出されデコードされる。)。もしステップ404で検出されるように、2つのブロック間の誤差が閾値μより大きいと、ステップ406でそのブロックは変更されずにベクトル量子化装置330にコード化のために渡される。それ以外の場合、そのブロックはVQ330に対して「無変化」のタグが付けられ、ステップ405に示すようにベクトル量子化は行われない。別の実施例では、無変化ブロックは前のフレームのブロックのうち、どれがサーチ領域内で良好な一致がとれたかを示す画素オフセットを持つことができることに留意されたい。
所望のデータ・レート及び画質が非常に高い場合、無変化のブロックとしてμをパスするイメージ・ブロックは、無変化ブロックとしてタグを付ける前に、より厳しいテストをされる。ブロックが無変化のブロック、ブロックの「エージ(age)」という、であるフレームの数は、チェックされ、最大許容エージを超えていないことが確かめられる。もし最大許容エージを超えていなければ、そのブロックは「無変化」ブロックとしてとどまる。もし最大許容エージを超えていれば、そのブロックと前のデコードされたフレームの同位置のブロックとの間の誤差がよりきつい閾値、例えばμ/2と比較される。これは無変化ブロックが所定の位置に長時間残っており、見る人から気付かれるのを防止するために行われる。ブロック・エージを用いる副作用は、多くのブロックがエージ化し、一緒に最大エージとなるときに起きる。これによって突然データ・レートが増大し、イメージの内容に無関係なデータ・レートの変動を起こすきっかけとなる。これを防止するため、望ましい実施例では各ブロックは様々な開始エージに初期化され周期的にリセットするようにしている。これはランダムに行うことができるが、もし連続したイメージの区画で行われた場合、エージ化はブロック・ヘッダでビット・ストリームをくずすことはあまりない。無変化ブロックのエージ化する主な欠点は、データ・レートが高いことである。従って、所望のデータ・レートが非常に高い圧縮を要求せず、高い画質を要求するとき使用するのに適している。処理400は、ステップ407で決まるように、フレームが完全に処理されたときステップ408で終わる。
ブロックに「無変化」としてタグを付ける決定は、一旦空間的サブ・サンプリングが行われると覆ることがある(例えばブロック・データが送られる)。もしデコーダに対して後続のブロックは「無変化」であることを知らせるためのブロック・ヘッダのオーバーヘッドによって、「無変化」のブロックを有する圧縮の正味の利益がなくなれば、「無変化」のブロックは先行するか後続するブロック・タイプに変更される。現在の実施例でこれが起こる例は、サブ・サンプルされたブロックの流れの中間で単一の4×4NC(4ー2×2無変化)ブロックがあるときである。単一の4×4NCブロックは先行する1つのヘッダと後続する1つのヘッダを必要とし、サブ・サンプルされたブロックの流れから分離し、ブロック・ヘッダ毎に1バイトとして16ビットを生ずる。もし単一の4×4NCブロックがサブ・サンプルされたブロックに変えられたとすれば、単に8ビットのインデックス(256のエントリ項目のコードブックに対して)を要し、伝送ビット数について云えば4×4NCブロックにしておくよりも少ない犠牲で済む。
処理400において無変化ブロック選択の決定に対して有用な様々な誤差と閾値の計算がある。望ましい実施例においてブロック比較に用いる誤差の基準は2乗誤差計算である。SNR(信号電力対ノイズ電力比)も別の実施例で用いることができ、高い輝度の領域に対する大きな誤差が許されるので有用である。これは人間の目が高輝度の領域における輝度の変化に鈍感であるという事実と関連する(ウェーバーの法則)。閾値μは望ましい実施例ではユーザの画質設定によって初期に決定されるが、レート制御要求と前の一連のフレームの平均2乗誤差(frame_mse)に順応して初期値から変わり得る。望ましい実施例に用いられるアプローチは、無変化の閾値及びμを次のように計算することである。
Figure 0004264492
改善されたレート制御メカニズム345の議論で以下に詳しく論ぜられるlong_term_error(長時間誤差)は、期間中の必要なデータ・レートを達成するベンチマークを提供する。もしlong_term_errorが、データ・レートは高すぎることを示すと、無変化のブロックはより頻繁にフラグが付けられる。逆に、もしlong_term_errorが、生成されたデータ・レートは所望値より低いということを示すと、無変化のブロックはそれほど頻繁にフラグを付けられない。瞬間的に反応する代わりにμはβによってバッファされ、データ・レートを変える反応時間の時定数(又は遅れ)を効果的に制御する。これは振動的データ・レートを防止し、完全にデータ・レートで駆動されるのでなく、多くのビットを生成する多くのバリエーションを有する複雑なイメージと、少ないビットを生成する少ないバリエーションを有するあまり複雑でないイメージに対する公差を許す。所与のシーケンスにおける達成可能な画質幅があるため、無変化の閾値μはframe_mse を考慮してシーケンスの直前にコード化された部分の画質を維持する。frame_mse はレート制御345によっても用いられ、これについてはレート制御の章で詳細に論ずる。
空間的サブ・サンプリング
望ましい実施例においてプリ・プロセッサ320によって行われる別の技術は空間的サブ・サンプリングである。サブ・サンプリングはベクトル量子化装置330によってコード化される情報量を低減するのに用いられる。これによっていくらかの空間的画質の犠牲で高速のコード化と高度の圧縮が得られる。主なチャレンジは高画質、高圧縮を維持することである。望ましい実施例で取り得る2つのアプローチがあり、それぞれ異なった利点がある。第1のアプローチでは、イメージは「スムーズ」と「ディテイル」の領域に分けられ、「スムーズ」のブロックはデータ・レートの要求に従ってサブ・サンプリングされる。例えば、「スムーズ」領域は元のブロックと対応するサブ・サンプリング及びアップ・サンプリング(upsampling)されたブロックの間で平均2乗誤差を比較することによって決まる。これはサブ・サンプリングされた「スムーズ」領域は、通常最小の産物すなわち誤差を生成するので有利である。このアプローチに対する別の利点は、2つの別々のコードブックがサブ・サンプリングされた2×2C(「変化」)ブロックに関して生成され、各コードブックが数フレームに亘って共有されるときに発生する。「円滑性(smoothness)」に完全に依存するサブ・サンプリングによって、2つのコードブックは「スムーズ」及び「ディテイル」の領域を多くのフレームに亘って表すことができる。これは「スムーズ」領域のイメージ・ベクトルは通常多くのフレーム間で類似しており、また同じことが「ディテイル」領域についても云えるためである。ゾーン(zone)が用いられる第2のアプローチでは、イメージ内のブロックの位置もサブ・サンプリングの決定に影響を与える。第2のアプローチの利点はイメージのどの領域がポスト・フィルタに行くのかをデコーダに対して効率的に通信する(ビットに関して)能力を有することであり、サブ・サンプリングのブロックを集めることによって、より効率的ブロック・ヘッダのコード化の能力を有することである。
サブ・サンプリングの処理は図5aを参照して論ぜられる。サブ・サンプリングに関して、イメージは図5aに示すように4×4のブロックに分割される。各4×4ブロックは、サブ・サンプリングとして選択されると510のような2×2ブロックに縮小される。望ましい実施例で行われるフィルタ・サブ・サンプリング動作は、4つの4×4画素ブロックのそれぞれの加重平均を用いて(例えば画素1−3、5−7、9−11及び17−23から成るブロック518)サブ・サンプリングされたブロック516(ブロック518の場合画素1、2、5及び6のブロック)を表す。別の実施例では、図示のように単一の画素(例えば1、3、9及び11)がサンプリングされ、より簡単なサブ・サンプリングの体系でサブ・サンプリングされたブロック510の代わりに用いられる。もしイメージ全体がこれらの技術の何れかを用いてサブ・サンプリングされると、改良されたベクトル量子化装置330に入るベクトルの数は4のファクタで低減し、よって、最終ビット・ストリームのコードブック・インデックスの数もまた4のファクタで低減する。別の実施例では、サブ・サンプリングは水平方向にのみ又は垂直方向にのみ或いは、2以上のファクタで4×4画素以上のブロックを2×2画素ブロックにサンプリングすることによって各方向に行うこともできる。デコード中、改良されたデコーダ351は、インデックスに先行するヘッダにおいて、510のようなブロックの含まれるインデックスはサブ・サンプリングされたブロックを指示していることを検出し、520のような完全な4×4ブロックを再生するために各画素を水平、垂直の両方向に1つずつ模写する(例えば、4画素から成るブロック521を見ると、それぞれは単純サブ・サンプリングの場合における画素1と同じである)。ブロック521は4つの1の代わりに4つのγで表され、γはブロック518の加重平均であることに留意されたい。別の実施例では、既存の画素の間の画素は良好な結果を得るため、相隣れる画素から補完することができる。しかしこれはデコーダの速度に有害な効果を与え得る。
「円滑性(smoothness)」が判定される方法は、もし1つのブロックがサブ・サンプリングされる場合、どの程度2乗誤差が生ずるかに依存している。サブ・サンプリング動作は次の誤差計算に示されるようにフィルタリングも含む。2乗誤差εは図5bに示す560(画素a0−a3からなる)のような2×2ブロックのそれぞれとそれを囲む4×4ブロック555(画素a0−a3及びb0−b11からなる)の平均γとの間で計算される。
Figure 0004264492
ブロック518から計算されたγは2×2ブロック521の画素1の値の代わりに用いられる。もし560のような2×2ブロックがサブ・サンプリングされると、それを囲む4×4γ(ブロック555)の平均が4つの個々の画素値a0
3の代わりに送られる。平均γはブロッキネス(blockiness)を低減するのに役立つ。従って図5を参照して示されるように、値γは、ブロック530の元の4つの画素値a0−a3の代わりに送られる。次に2乗誤差εは加重係数κによってスケーリングされ、人間のシステム輝度に対する感度に近似される(MSEの代わりにSNRをおおよその近似として用いることもできる)。従って、サブ・サンプリング誤差が同じであると仮定して高輝度の領域は容易にサブサンプリングすることができる。4つのスケーリングされた誤差は加算されて560のような各2×2ブロックに関連する誤差を生成する。
Figure 0004264492
j:画素ajの量子化された輝度値
サブ・サンプリングのための候補として4×4ブロック500を順位づけるため、4×4 500の角に配置された4つの2×2ブロックからのサブ・サンプリング誤差εのそれぞれが加算される。レート制御が、所望のフレーム・サイズに合うように十分なブロックがサブ・サンプリングされたことを判定するまで、ブロックは最小の誤差ブロックから最大の誤差ブロックに向けてサブ・サンプリングのために選択される。別の実施例では、イメージの端がサブ・サンプリングされるのを防止するため、当業者には既知の端検出方法によってイメージの端が抽出される。サブ・サンプリングの決定をサブ・サンプリング誤差に依存することは、サブ・サンプリング及び端を越えるアップ・サンプリングが最大誤差を生ずる傾向があるため、多くの端を保護する傾向がある。しかし、端検出で見つかった端をはっきり保護することは、ある場合には有用である。
純粋に誤差に基づいたサブ・サンプリングは、多くの場合うまく動作するがサブ・サンプリングされたブロックが必ずしも互いに隣接して発生しないイメージがある。従って、サブ・サンプリングされないブロックの隣のサブ・サンプリングされたブロックの出現は、可視的に見ている人を悩ます閃光効果を起こし得る。いくつかのブロックはサブ・サンプリングされ、その他ブロックはサブ・サンプリングされないのでブロックが動いているように見える。第2に、もしサブ・サンプリングされたブロックと標準的にコード化されたブロックが、空間的に混在すると、プリ・プロセッサ320によって識別されるブロック・ヘッダによってブロック・タイプの変化を表さねばならないので、かなりの帯域幅(ビットにおける)が消費される(ブロック・ヘッダについては以下にビット・ストリームのシンタックスを参照して詳しく論ずる)。このようなイメージにおいては、別の実施例のコード化体系において、ゾーンを用いて誤差のみに基づくサブ・サンプリングする前述の2つの欠点を低減できる。イメージはプリ・プロセッサ320によって32の矩形ゾーン(水平8、垂直4)に分割され、それぞれは自らに関連した重みを有する。明らかに、ゾーンの数とそのサイズは全く多様である。1実施例では、中心のゾーンをサブ・サンプリングされにくいように境界ゾーンのイメージの重み付けが行われる。このことは、カメラは大旨対象物の中心に向けられるため、見る人は端にあまり注意を払っていないと云うことを前提としている。別の実施例では速い動きを使って、サブ・サンプリングの産物を隠している。もし当業者に既知の運動予測アルゴリズムによって、動きが速くないと判定されると、動きの領域をサブ・サンプリングすることを難しくすることは有用である。このことは、見ている人は運動物体を追跡し、動きが速くなければサブ・サンプリングの産物に気付くということを前提としている。
望ましい実施例の第2のアプローチにおいて、ゾーンはゾーンの誤差、平均2乗誤差εに従って分類される。
Figure 0004264492
各ゾーンはその位置に従って重み付けされ、ゾーン誤差ZEを生成する。
Figure 0004264492
サブ・サンプリングのためにタグを付けられたブロックはゾーン誤差に関して最良ゾーンから最悪ゾーンの順にサブ・サンプリングされる。これはレート制御345によって要求されたサブ・サンプリングの数に達するまで行われる。改良されたデコーダ351は、入力ビット・ストリーム350から特定の基準で(画質設定等)どのゾーンがサブ・サンプリングされたかを判定でき、ブロッキネス(blockiness)を柔らげるためにこれらのゾーンをポストフィルタ(処理375)にかけるかどうか決める。サブ・サンプリングは帯状であるので、デコーダ351はイメージ全体をポストフィルタにかけないで、どこに努力を集中すればよいかを知っている。この情報をデコーダに送るのにオーバーヘッドは最小であり、32の矩形ゾーンの場合わずか32ビットである。
ゾーン全体がサブ・サンプリングされるのを防止するため、edge_mseより小さい誤差を有するブロックだけがゾーン内でサブ・サンプリングされる。edge_mseの値はレート制御によって制御されるので、所望の圧縮フレーム・サイズが大きければ多くのブロックがサブ・サンプリングから保護される。
edge_msen=edge_mse(n−1)+x*long_term_error
別の実施例ではedge_mseは重み付けることができ、当業者に既知の端検出方法で抽出されたイメージの端は、サブ・サンプリングから保護される。
方向性フィルタリング
空間的冗長度も、別の実施例における「方向性」フィルタリングを行うことによって端とディテール(detail)の最少の損傷で低減することができる。この処理は、画素を囲む領域に対して水平、垂直、上向き対角線、下向き対角線のフィルタを実行し、最小誤差を生成するフィルタを選択する。もしフィルタの長さが3タップ(tap) 、(フィルタ係数)であれば、図5aの画素6のフィルタをかけた値を計算することは、画素6に関するフィルタをかけた値を生成するため、画素5、6及び7に対して水平フィルタを適用し、画素2、6及び10に対して垂直フィルタを適用し、画素1、6及び11に対して下向き対角線フィルタを適用し、画素9、6及び3に対して上向き対角線フィルタを適用することを意味する。例えば、「水平フィルタ」を実行するために値はfhであらわされ、fhは次のように計算される。
h=a1・画素5+a2・画素6+a3・画素7
ここで、a1、a2及びa3は重み係数であり、それぞれ0.25、0.5及び0.25であり、3×3ブロックの中央画素に多くの重みが与えられ、結果のfhは計算的に安価なシフト演算で計算される。これらのフィルタは3次元空間に適用でき、追加の次元は、別の実施例では、時間であることに留意されたい。
方向性フィルタの結果を比較することによって、イメージの端の方向付けも得られる。端の方向付けは、直交方向の対に関連する誤差の比を比較することによって抽出される。第1のステップは最小誤差min_directional_errerを生成した方向を選択することであり、この誤差を他の3方向のフィルタに関する誤差と比較することである。最小誤差のフィルタの方向に方向性の端があることを示す特徴は次の事項を含む。
・最小誤差を生成した最小誤差フィルタの方向と直交する方向
・最大誤差のフィルタは特にそれ自身と直交する方向と比較したとき、他の3方向よりも格別に大きな誤差を有する。フィルタをかけた領域が互いに他と非常に近い方向性誤差を有する場合、その領域は「無方向」である。「無方向」のブロックの領域は、再びその領域に対してフィルタをかけることができる。最小誤差のフィルタは、画素の周囲の特徴に従ってどの画素に対してもその特性を変えるので、非常に順応性がある。
YUV変換
望ましい実施例はまた、コードブックの生成とベクトル量子化装置330に関してベクトルの輝度とクロミナンス値(YUV)を用いて速度や画質を向上させる。YUV値は、ベクトルにおける画素の赤、緑、青(RGB)値からその再構築が計算的に安価な単純な変換を通して計算できる。例えば乗算の代わりにビット・シフトで実現できる次の変換である。
Figure 0004264492
ベクトル量子化装置330においてYUVを用いてコードブックの生成を行うことは、成分間のきつい動的範囲と相対的非相関性によってクラスタリングを向上させる。従って画質の向上は顕著である。コード化速度が重要である状況では、クロミナンス(U.V)値は2又は4でサブ・サンプリングされ、ベクトル量子化ステップ330において重み付け(例えばシフトで)られる。
望ましい実施例において、輝度及びクロミナンスは、入力イメージのベクトルのサブ・サンプリング又はフィルタリングのようなRGBの事前処理の後、プリ・プロセッサ320によってベクトル量子化装置330に送られる。別の実施例では、YUV変換は最初に行われ、サブ・サンプリングのような事前処理はYUV変換の後に行われる。如何なるレートにおいても、結果の事前処理データは改良VQ330にYUVのフォーマットで送られる。
改良されたベクトル量子化装置
ベクトル量子化(VQ)はブロック又はデータのベクトルを表すのに効率的方法である。一連のデータ、画素、オーディオ・サンプル又はセンサー・データはしばしば各データを独立して取り扱うことによって量子化される。これをスカラー量子化という。一方、VQはデータのブロック又はベクトルを量子化する。主なVQの問題は、データ・セットの許容し得る近似であり、コードブックと呼ばれる代表的ベクトルのセットを見つける必要があることである。許容性は通常元のデータ・セットと再生されたデータ・セットの間の平均2乗誤差を用いて測定される。コードブック生成の一般的技術はLinde,Y、BuSO,A及びGray,Rによる「An Algorithm for Vector Quantizer Design(ベクトル量子化装置設計のアルゴリズム)」COM−28IEEE Transactions on Communications1(1980年1月)(LGBアルゴリズムとして知られている)に記載されている。コードブックを生成するためにLGBアルゴリズムを採用した技術は、コードブックの初期予測を生成するためイメージからの入力ベクトルをサンプリングすることで始まる。次に各入力ベクトルはコードブックの項目と比較され、最も近いコードブックの項目と関連させられる。コードブックの項目は各コードブックの項目と関連する平均ベクトルを計算し、現在の項目を平均ベクトルで置き換えることによって繰り返し更新される。次にコードブックが前回より大幅に向上したかどうかの判定が行われ、もし向上していなければ、入力ベクトルをコードブックの項目と比較し、再関連させる等によって処理をくり返す。このコードブックの生成は大きなイメージ・シーケンスすなわちトレーニング・セットに対して行われるか、又はコードブックは各フレームに対して再生される。更に、この技術は効率向上のため、特定の従来技術のベクトル量子化システムに用いられるバイナリ・ツリーに適用できる。
改良ベクトル量子化装置330はツリー構造に編成されている。特定の従来技術の体系で用いられているバイナリ・ツリーではなく図6に示すようにツリーのルートでN個の子供ノード610が初期に生成される。これはいろいろなテクニックを用いて行うことができる。例えば、1実施例では、セグメンター(segmenter)を用いてイメージから代表的セントロイド(centroid)を抽出し、中心値を有するN個の初期ノードを生成する。別の実施例では、初期のセントロイドは、そのイメージ自身からN個のベクトルを抽出することによって、1つのイメージから決定される。従来技術のバイナリ・ツリーは単に2つの初期ノードの設定に依存している。バイナリ・ツリーには、2つの初期ノードにおける誤差がツリー内の残りのノードに伝搬するという欠点の悩みがある。望ましい実施例では、N個のノードが用いられ、値Nはイメージの特性によって変わる。これの利点は、多くの初期ノードがルート・レベルでの間違ったビンニング(binning)のチャンスを低減するという事実に関連している。良好な画質と速い収束は、ツリー作成においてN個の初期ノードを用いることから達成され、Nはイメージに適合し、通常2よりも大きい。
イメージに対して行われる改善されたベクトル量子化処理700は図6、7及び8を参照して示され、論ぜられる。N個の初期ノードの作成は図7のステップ702で行われる。ツリーの最上層610は、ステップ703で初期ノードの値をくり返し調整し、ベクトルをそれらに関連させることによりN個の初期ノードから改善される。この繰り返し処理は、繰り返しのノード・ビンニング/再計算処理を示す図8を参照して以下に記載されている。ステップ704で、最悪の歪を有するノードが決定され、その歪はノードのセントロイド値とその関連ベクトルの間の比較から計算される。望ましい実施例において、ノードに関連するベクトルとノードのセントロイド値の間の平均2乗誤差は歪の尺度として用いられる。どのノードが最も歪んでいるかの判定は、別の実施例で多くの尺度を用いて行われることに留意されたい。これらの尺度は、個体数、ノードに関する合計歪、ノードに関する平均歪あるいはノードに関するピーク歪が含まれる。どのレートにおいても、ステップ704で一度最大歪ノードが決定されると、ステップ705でこのノードは2つの子供ノードに分割される。もちろん、望ましい実施例では2つの子供ノードが記述され、用いられるが、別の実施例では2つ以上の子供ノードが作成されても良い。最良の代表ベクトルを得るため、ステップ706で子供ノードに対する繰り返し処理が行われる。この処理は、図8を参照してより詳しく説明されている。
最も歪んだノードから作られた子供ノードに適用されたステップ703又はステップ706のような繰り返し処理は図8に示されている。この処理はステップ801で始まる。ステップ802で、親ノードと関連するベクトルのグループから図6の670に示す子供ノードに、代表的セントロイドを割り当てる。ルート・ノードの場合は、イメージの全ベクトルを用いて代表的セントロイドを作成する。次に各ベクトルは最も近いセントロイドを有するノードと関連づけられる(ビンニング)。次にステップ804で、各セントロイドと関連するベクトルとセントロイド自身との間の誤差が決定される。誤差計算は色々なテクニックを用いて行われるが、望ましい実施例においては平均2乗計算が用いられる。ステップ805で1度誤差計算が決まると、誤差の変化が特定の閾値以下になったかどうか判定される。ステップ806で、ステップ803からのノードと関連するベクトルから新しいセントロイドが計算され、これはステップ803からの全てのノードに対して行われる。706に示す処理の最初の繰り返しでは、誤差の変化は非常に大きく、大きなプリセットの値から、計算された誤差値に進んでいく。しかしステップ803から806のループの次の繰り返しでは、誤差の変化は小さくなり、最終的に閾値より小さくなる。もし現在分割されているノードに関する誤差の合計が、ステップ805で決まるように、閾値より小さくなければ、ステップ806で新しいセントロイドが再計算され、処理703(706)が続いて行われ、ステップ803から806が必要に応じて再びくり返される。これは、ステップ805で検出されるように、誤差の変化が所定の閾値より小さくなるまで行われる。ステップ805で検出されるように、誤差の変化が閾値より小さくなると、処理703(706)はステップ807で終了し、図7の処理700に戻る。
この反復処理が図7のステップ707で完了すると、ツリー内で所望の数のターミナル・ノードが作られたかどうか判定される。ノードが分割される度に、2つ又はそれ以上の子供ノードがVQツリー600に生成される。従って望ましい実施例では、要求されるターミナル・ノードの合計数は、VQツリー600のノードが何回分割されるかを決定する。処理700は、必要なターミナル・ノードの数がツリー内に作られるまでステップ704から707を続ける。一度必要な数のターミナル・ノードが作られると処理700はステップ708で完了し、コードブックは出力ビット・ストリーム上に伝送され、図3に示すパック/コード化装置340に送られる。
望ましい実施例でノードに対して用いられるタイプ構成は次のような「C」プログラム言語で定義される。
typedef struct model{
unsigned long *centroid: // このノードに関するセントロイドに対するポインタ

unsigned long *vert_index_list: // このノードに関するベクトル・インデックスのリストに対するポインタ
unsigned long *num_vect: // このノードに関するベクトル数
unsigned long distortion: // このノードに関する合計歪
unsigned long avg_dist: // このノードに関する平均歪
unsigned long peak_dist: // このノードに関するピーク歪
unsigned long percent_dist: // このノードに関する歪のパーセンテージ
unsigned long num_children: // 子供の数
unsigned long ic_method: // このノードの初期化方法
struct mode **children: // このノードの子供ノードに関する構造のリストに対するポインタ
struct mode *parent: // このノードの親に対するポインタ
unsigned char terminal: // これがターミナル・ノードかどうかを示すフラグ
unsigned long *childrencptrs: // 次に対するポインタのアレイに対するポインタ
// 子供のセントロイド(歪計算を単純化し高速化するために用いられる)
}
600のようなツリーVQを構成するノードは、それぞれが上で定義したようなデータを有し、色々な歪尺度、ビンニングされたベクトル数、子供の数などのノードに関する特定の情報を維持する。この情報は上で論じたツリーの生成に役立つ。
600のようなVQツリーの生成に対する望ましい実施例のベクトル量子化処理700は多くの新しい技術を用いて実行される。
第1に、順応収束閾値(805で使用)は繰り返しの数を制御し、コードブック・ツリーを生成するのに用いられる。これは2つの方法のうちの1つで動作する。
1.もし完全なツリーが更新されることになれば、ゆるい収束基準が初期のN個のノードに適用される。完全なツリーは場面の変更が起こったか又はイメージが前のイメージから著しく変わった場合に更新される必要がある。
2.もし前のツリーからのルート・ノードが現在のツリー構築に用いられるとすれば、そのルート・ノードには繰り返しは行われない。ルート・ノードは類似のイメージ・シーケンスがコード化され、場面変化が検出されない場合再使用できる。従って610のようなN個の初期ノードは、前のフレームのVQから再使用できる。
第2に、望ましい実施例では、再生イメージの画質向上のため、修正距離尺度が用いられる。通常イメージ・ベクトルとコードブック項目の間の平均2乗誤差(mse)が用いられて所与のベクトルに対して一番近く一致するコードブック項目を決定する(例えば、図8のステップ803)。ツリー生成の初期の段階では、望ましい実施例はこの計算を修正して大きな誤差には2乗誤差より重い重み付けを行う。このようにして、大きな誤差には小さな誤差よりも多く重み付けがなされる。
第3に、複数の基準を使ってどのノードが分割されるべきかを決定する。採用される尺度には次のものが含まれるが、これらに限定されない。
1.特定のノードに関する合計歪。
2.特定のノードに関する平均歪。
3.特定のノードに関する個体数。
4.特定のノードに関する歪のパーセンテージ。
5.特定のノードに関する最大歪。
6.特定のノードに関する最大歪と最小歪の比。
ノードに関する合計歪は望ましい実施例で用いられる。しかし、別の実施例のツリー生成の最終段階では、もし個体数を尺度として用いれば良好な画質の結果が達成できる。もし平均2乗誤差が歪尺度として用いられれば、歪の合計は平均2乗誤差の合計である。他の歪尺度又はそれらの組み合わせの使用は、他の実施例で用いることができ、それぞれは、イメージの内容や所望の画質に応じて特定の利点を有する。
第4に、ノードを分割するのに複数の試行が行われる。たまに特定のノードを分割する試行が失敗する。この場合、多くの他の初期条件が生成され分割がうまく行くように支援する。例えば、これが行われる1つの方法は、初期の分割に対してノイズを加えることである。平坦な、又は非常に滑らかに変化するカラー又は輝度の領域で特徴づけられる特定のイメージについては、ノードの分割は難しい。少量のノイズが分割に先立ってイメージ・ベクトルに加えられる。ノイズは疑似ランダムであり、入力イメージ・データのゼロと2つの最下位ビットの間の範囲を有する。ノイズ生成の1つの態様は、疑似ランダム・ノイズ発生器を用いることである。この値がコード化される各ベクトルの各画素のRGB成分のそれぞれに加えられる。各画素のRGB成分のそれぞれに加えられたランダム・ノイズは分割を成功させるのに十分それらを区別させる。一般にどのノードを分割するかの決定が行われたと仮定して、アルゴリズムは次のことを行う。
1.そのノードに関するベクトルのリストをサブ・サンプリングすることによって初期ノードのK個の候補を生成する。
2.これらの初期ノードを用いてベクトル・リストをクラスタリングする。
3.もしクラスタリングが失敗すれば(すなわち、全てのベクトルが1つのノードに集中する)、このノードをこの方法でクラスタリングするのに失敗したとして識別する。
4.このノードを分割する次の試行が行われるとき、ノード・セントロイドに対する異なった初期予測を用いる。この予測を生成するテクニックには次のものが含まれるが、これに限定されない。
a.親ノードのセントロイドを乱れさす。
b.ノード・ベクトル・リストの中の最も歪んだベクトルを初期セントロイドとして捕らえる。
5.これらの初期ノードを用いてクラスタリングの試行が更に行われる。もし全ての方法がベクトル・リスト中で分割を生成するのに失敗すると、そのノードはターミナル・ノードとしてタグが付けられ、更に分割の試行が行われることはない。
第5に、コードブックの第1の層を複数フレームの間で再使用する。多くのイメージ・シーケンスにおいて、主なイメージの特徴は時間と共にゆっくり変わる(例えば、背景イメージは変わるかゆっくり動きがちである)。N個の初期ノードから成るコードブックのツリー610の最上層はこれらの特徴を捕らえる。計算速度と高画質に関する向上した性能は、1つのフレームから次のフレームに対してツリーの最上層を再使用することによって得られる。この再使用はCODECで高いレベルからオーバーライドされる。例えば、場面変更の場合、これはCODECで検出されるのであるが、ルート・ノードが再使用されるよりもむしろ再生された方が高画質が達成できる。
第6に、コードブックの利用可能な項目を最高に使用するため、コード化の前にベクトルの平均値を除去するのが一般的である。これは良好な再生イメージの画質をもたらす一方、デコーダで追加の複雑さが発生する。望ましい実施例はデコーダの複雑さなしに平均剰余VQの多くの利点を与える技術を利用する。この技術は次のように動作する。平均値が大きなイメージ又は「ゾーン」に対して計算され、この平均値は大きなゾーンの全てのベクトルから減算される。残りのベクトルは通常のやり方でコード化される。デコーダでは大きなゾーンのそれぞれに対するコードブックは再構築される。これは、大きなゾーンの平均値を残りのコードブックに加えることによって行われる。この結果は、エンコーダでの大きなゾーンの数と同じ数のコードブックの生成となる。
可変サイズ、共用化、イメージに対する複数のコードブック
固定コードブックと適合性コードブックの組み合わせも別の実施例では可能であるが、望ましい実施例では各イメージはそのイメージの特性に適合したコードブックに関連しており、訓練された普遍的コードブックではない。別の実施例では、各イメージは正確に1個のコードブックまたはある固定サイズのコードブックを有するように限定される必要はない。別の実施例は可変サイズであり、複数のフレーム又は一連のフレームの間で共用でき、イメージをコード化する複数のコードブックを使用することを含む。これら全ての別の実施例において、利点は画質の損失を最小にして圧縮度を増大できることである。
可変サイズのコードブック
可変サイズのコードブックに関して、ツリー内のノードはある基準に達するまで分割され、これは指定した数のターミナル・ノードが存在する以前に起こる。1実施例ではコードブック・ベクトルの数は前のフレームから変化するブロックの数と共に増加する。言い換えれば、無変化ブロックの数が多ければ多いほどコードブックは小さい。この実施例では、コードブックのサイズは明らかに絵のサイズに関係する。望ましい実施例で用いられる確固とした基準はフレームの平均2乗誤差(無変化ブロックは含まない)の維持に依存する。もし256個でなく128個の2×2コードブック・ベクトルが用いられれば、正味節約はそのフレームで768バイトである。この節約は、各2×2ブロックが輝度情報に関して画素毎に1バイトを含み、UとVのクロミナンス情報(YUV4:1:1の場合)に対しては2×2ブロック毎に1バイトであるので達成される。コードブック・ベクトルの数を256から128に減らすことによって128・6=768バイトの合計節約を生ずる。128のコードブック・ベクトルがMSEについて適切な画質を与えるイメージに関して、節約された768バイトはサブ・サンプリングされるブロックの数を低減するのに用いられ、従って見る人に対して画質を向上させる。
共用コードブック
望ましい実施例によって与えられる別の特徴は、共用コードブックの使用である。1つのコードブックを1つ又は多くのフレームに共用させることは、コードブックのオーバーヘッドを低減するために類似の内容を有するフレームを利用できる。共用コードブックの使用は、無変化のブロックを用いて効率的にコード化できない時間的相関関係を利用する。このような場合の例はパン(pan)されたシーケンスである。もし2つのフレームが1つの256エレメントのコードブックを共用するとすれば、節約は各フレームに128エレメントのコードブックを別々に使用させるのと等しい。しかし、もしフレームが完全に異なっていなければ画質は向上する。明らかに、別々に128エレメントのコードブックを用いる場合は、8ビットでなく7ビットのインデックスを用いることができるが、バイトの不整合によってビット・ストリームのパック/アンパックが扱いにくくなる。コードブックのオーバーヘッドの低減だけが共用コードブックの利点ではない。例えば、同一のコードブックを用いてイメージ間の時間的相関を増加することによって、時間的フリッカを低減できる。全く新しいコードブックがビット・ストリームからアンパックされなくても良く、また各フレームに関してRGBに逆変換されなくても良いので、デコード速度の利益もある。
前のフレームから構築された共用コードブックがコード化しようとするフレームを良く表していることを確かめるため、共用コードブックは1つずつ新しいコードブックで置き換えることもできるし又は更新することもできる。第1に、フレームは共用コードブックを用いてコード化され、frame_mse(元のフレームとコード化されたフレームの間の平均2乗誤差)が計算される。もしframe_mseが前のフレームからのframe_mse又は前のフレームからの平均frame_mseよりもあるパーセンテージで大きければ、共用コードブックは新しいコードブックで置き換えられる。frame_mseがこのテストをパスしても、もしフレーム全体に関する平均MSEに対して、ある割合以上のMSEを有するブロックの数が、ある数以上(最悪のブロック)であれば、共用コードブックは置き換えることができる。この場合、エンコーダはコードブックに対する更新だけで最悪誤差のブロックを修復するのは難しいと仮定し、コードブック全体を再生する。別のやり方では、エンコーダは先ずコードブック更新リストの生成を選択し、最悪誤差のブロックがいくつあるかチェックし、もしある閾値以上の悪いブロックがあれば全く新しいコードブックを生成する。
ベクトル量子化の章で述べたように望ましい実施例は、共用コードブックの生成に用いたツリー構造を用いて共用コードブックを更新する。新しいフレームからの各イメージ・ベクトルはツリーのターミナル・ノードの1つと関連している(コードブックのベクトルと共に)。これは、ツリーのルートで始まり、どの子供が2乗誤差について近いか選択し、どの子供の子供が良く一致するかを選択する等によって達成される。イメージ・ベクトルは、このようにしてツリーのルート・ノードからターミナル・ノードへたどって行く。網羅的サーチを行えるけれども、網羅的サーチでなくツリー構造を用いてイメージ・ベクトルとコードブック・ベクトルとのマッチングをさせることによってコード化時間が向上する。更にツリー構造は、共用コードブックを更新するために、新しいノードを生成するのに役立つ。
コードブックの更新処理は数ステップを要する。先ず、901(イメージ・ベクトルと関連しないコードブック・ベクトル)のようなゼロ・セルが見つけられ、ツリー900から除去される。このブランチは図9aに示す。ゼロ・セルに関連するターミナル・ノード番号(コードブック・インデックス)が記録され、コードブックの更新は、ゼロ・セルであったコードブックの項目を置き換える。ツリー・ポインタは902が子供912及び913を指すように変えられる。これは図9aに変形されたツリーとして示されている。ツリーは次に、改良ベクトル量子化装置330に関して上で述べたように、ある基準で選択されたノード(図9b)(最悪の全体歪を有するn個のノード)を分割する。これは図9bに920のツリーを930のツリーに変形して示されている。ゼロ・セルのために捨てられ(901)、又は分割によって親になったターミナル・ノードは、新しい更新されたベクトルで上書きされるようにタグが付けられる。最後に、ノード分割からの新しい子供は、上書きのためタグを付けたこれらのコードブックを上書きする。実際の上書きはデコーダで発生し、上書き情報はビット・ストリームを通して与えられる(以下を参照)。もしゼロ・セルがなければ、各ノード分割は2コードブック・ベクトル・スロットを要し、そのうちの1つは分割前のそのノードの親のものである。残りの子供は捨てたコードブック・ベクトルに対する単なる置き換えでなく追加のコードブック・ベクトルとして伝送される。
コードブックの共用によって、1つのフレーム又はフレームのセットから全体的に生成されたコードブックは、最大のコードブック・サイズ(例えば256)より小さいサイズ(例えば50%)にセットされ、追加のコードブック・ベクトルを共用コードブックを用いて追加できる。
別の分割及び置き換え方法は、前にターミナル・ノードであった親を置き換える必要がない。その代わり、2つの子供のうち1つが親と等しいと制約することによって、その親は置き換えられなくて良い。他の子供はゼロ・セルを置き換えるか又は追加のコードブック・ベクトルとして送られる。
複数コードブック
別の実施例では、別々のコードブックを各ブロック・タイプに対して生成することによって、又はそのイメージの異なった領域に対して別々のコードブックを生成することによって、複数のコードブックを1つのイメージと関連づけることができる。前者は、圧縮の損失を最小(コードブックが共用の場合損失なし)にして画質を向上するのに効果的であり、後者は画質の損失を最小にして圧縮比を増大させるのに非常に効果的である。
別々のコードブックを用いてサブ・サンプリングされ及びサブ・サンプリングされていないイメージ・ベクトルをコード化することによって、従来技術のテクニックに比べていくつかの利点が得られる。独立したツリーが2つの異なったタイプのブロックの特性に対して特別に調整される。そのブロックはサブ・サンプリングされた領域には「スムーズ」となり、サブ・サンプリングされないブロックに対しては「ディテイル」となる。ブロック・タイプは空間的サブ・サンプリングの章で説明した誤差計算によって分けられる。「スムーズ」と「ディテイル」の領域の分離は、所望の圧縮がサブ・サンプリングを必要としないときに発生する。これは、「スムーズ」及び「ディテイル」のブロックが別々にコード化されているとき、別々のコードブックは非常によく動作するためである。各インデックスはブロック・タイプを通してコードブックと関連づけられており、コードブック・ベクトルの数はインデックス毎のビットを変えずに、又はVQのクラスタリング時間を増加せずに2倍にすることができることに留意されたい。これは、画質の顕著な向上をもたらす。更に、サブ・サンプリングされたブロックのコードブックと2×2Cブロックのコードブックは同じタイプの前のフレームのコードブックと共用できる。この場合、「スムーズ」領域と「ディテイル」領域を別々に維持し、数フレームに亘って各コードブックで一貫性があることが重要である。スムーズ及びディテイル領域への分離は、イメージのカテゴリに対して別々のツリーを定義するという一般的アイデアの特別の場合であることに留意されたい。カテゴリは、類似属性を有するイメージ内の領域を識別する分類子によって決められる。上で述べた簡単な場合には、2つのカテゴリ、スムーズ及びディテイルが用いられている。その他のカテゴリとしては端領域、テクスチャ及び平均値や偏差値など類似の統計を有する領域がある。
簡単に述べたように、複数のツリーがイメージ内の異なった領域と関連づけられる。これはコード化時間の短縮や圧縮比の増大に効果的である。例えば、粗いグリッド(等しいサイズの8個の矩形)は8個の16エレメント・ツリーでコード化される。最悪誤差の矩形領域は、次に再び分割され、各矩形領域の各半分が16エレメント・ツリーを用いる。これは16個の矩形、従って合計256のコードブック・ベクトルになるまで続けられる。各インデックスは8ビットでなく4ビットを用いてコード化され、追加の2:1圧縮を与える。もしイメージが16個の固定した初期領域に分割され、それ以上領域の分割がなければ、コード化計算時間は大幅に短縮される。このテクニックは特に低画質、高圧縮、高速コード化モードに適応する。イメージの小片に対して、多くの小さなコードブックを用いることとイメージ全体に対して1つの256項目のコードブックを用いることとの間の妥協は、画質がそれ以上悪くならなければ画質を維持し、もっと多くの圧縮を得るのに効果的である。このような妥協では、非常に均一でわずかなコードブック・ベクトルしか必要としないイメージの部分にのみ小さなコードブックが用いられ、正規の256項目のコードブックは残りのイメージに用いられる。もし小さなコードブックに関連するイメージの部分が矩形であると考えられれば、小さなコードブックにスイッチするとき、デコーダに知らせるのに殆どオーバーヘッドを要せず、小さなインデックス(16項目のコードブックには4ビット又は64項目のコードブックには6ビット)となる。各コードブックに関連する領域が矩形であると考えられなければ、類似の画素を1つの領域にグループ化する当業者に知られた区画化テクニックで画質を向上できる。
レート制御
レート制御345は圧縮された素材が限定された帯域幅チャネルでデコードされると考えられるとき、改良ビデオ圧縮システムの重要なエレメントである。同期体系又はネットワーク又は電話線においてNフレーム/秒を維持するため、デコーダ351は1/N秒間に限定された帯域幅チャネルから1フレームのデータを読み、情報をデコードし、イメージをスクリーン上に表示しなければならない。レート制御345は最大フレーム・サイズを、ある数(アプリケーションによって異なる)以下に維持し、限定された帯域幅チャネルからデータを読むのに要する時間を短縮しようとする。これは2つのステップで行われる。すなわち、(1)データ・レートの観点から望ましいデータ・レートは何かを決定する。(2)画質の要件(ユーザによって定義されるか又はその他の方法で定義される)と共にこの望ましいフレーム・サイズを用いてコード化処理のパラメータを制御する。
レート制御体系は、望ましいフレーム・サイズが何であるかを過去のパフォーマンスと望ましいデータ・レートに基づいて決定する。target_frame_length(目標フレーム長)は次のように計算される。
Figure 0004264492
現在のフレームNに対するdesired_frame_length(望ましいフレーム長)は、目標フレーム長から誤差項frame_errorを引いたものに等しく、あるフレーム数、例えばビデオ・データの1秒分の、平均である。
desired_frame_length=target_frame_length+frame_error
許容されるオーバーシュート又はアンダーシュートであるframe_errorはIIR(無限インパルス応答)フィルタとして帰納的に平均されることに留意されたい。これはまた、FIR(有限インパルス応答)フィルタとして別の実施例で実施できる。αの値は、どれ位速く現在のフレーム誤差(target_frame_length-avg_frame_length)が長期フレーム誤差に応答させるかに影響する。現在の誤差はtarget_frame_lengthといくつかのフレーム(例えば1秒分)の平均フレーム長(avg frame length)として定義される。このレート制御体系は、望ましいデータ・レートを超えない過去1秒の平均データ・レートを維持する。フレーム・サイズのばらつきはフレーム単位で起こるが、これらのばらつきは平均効果で低下する。これらの関係は次のように決まる。
Figure 0004264492
desired_frame_lengthがNに対して決まった後、それはコード化パラメータ(ncthreshfactor及びedge_mse)に影響を与えるために用いられ、時間的フィルタリング及び空間的サブ・サンプリングが用いられる実施例において、そのパラメータはどれ位時間的処理と空間的サブ・サンプリングを適用するかを制御する。これらのコード化パラメータはユーザによって決められる空間的、時間的画質の好みによってセットされるが、それらは、システムがどの程度データ・レートの要求を維持しているかに従って画質設定に関する変動が許される。短時間にこれらのパラメータを大きく変動させることを許すよりも、それらは次のように計算される長期誤差を追跡する。
(long_term_error)n=(1-β)(long_term_error)n−1+
β(target_frame_length)-(avg_frame_length)n
従って、long_term_error(長期誤差)に対する計算とフレーム誤差に対する計算の差異はαとβの差である。効果的であると決められた値は、α=0.20でβ=0.02で、これらは望ましい実施例で用いられる。当業者は他のα、βの加重値が使えることが分かるであろう。
もしlong_term_errorが空間的サブ・サンプリング及び無変化ブロックに対するコード化パラメータ値を制御するのに用いられなければ、望ましいフレーム長が、どの程度データ・レートが維持されているかを追跡するのに用いられる。この場合無変化及びサブ・サンプリングの閾値はユーザの画質設定によってのみ決まることを前提としている。しかし、これはサブ・サンプリングと無変化のブロックがフレーム・サイズをdesired_frame_size(望ましいフレーム長)に短縮することを保証するものではない。この場合long_term_errorの値は、サブ・サンプリング及び無変化ブロックのパラメータ(ncthreshfactor及びedge_mse)を変えることによって画質を低下させるのに用いられ、従ってデータ・レートを下げる。
コードブック・インデックスの伝送
イメージが改良された処理330によって、ベクトル量子化を通してコードブックに対するインデックスと関連づけられた後、ビット・ストリームは従来技術より効果的にパックされ、将来の変化と両立する柔軟性を可能にし、余分なコード化オーバーヘッドを生成することなしに、イメージをデコードするのに必要な情報を通信する。インデックスは、それぞれコードブックに対するインデックス又はコードブックのベース・インデックスからのオフセットとして伝送される。前者の場合、256項目のコードブックのどのベクトルが最も良くマッチするかを示すのに、イメージ・ベクトル当たり8ビットを必要とする。後者の場合、インデックス間の差は一般に256よりも大幅に小さいので、インデックス間に多くの相関があればより少ないビットでよい。イメージのある部分は互いに大きく離れたインデックスを有し、他の部分は強く相関するインデックスを有するので、通常2つの組み合わせが必要である。
図10を参照して示すように、ビット・ストリーム・シンタックスはシーケンス・ヘッダ1001、チャンク・ヘッダ1011、フレーム・ヘッダ1021及びコードブック・ヘッダ1012、1014を含む。コードブック・インデックスがこれらに続く。コードブック・インデックスは続くインデックスがどのブロック・タイプを参照するかを示すブロック・タイプ・ヘッダによって表される。2×2変化(2×2C)、2×2無変化(2×2NC)、4×4無変化(4×4NC)、4×4変化(4×4C)、サブ・サンプリングされた(4×4SS)、混合ブロックの異なった組み合わせ及び行画素ブロックは有用なブロック・タイプの例である。デコーダ351は、各イメージ・ブロックに対してどのコードブック・ヘッダを用いるか及びアップ・サンプリングを行うかどうかを知って、イメージを再構築することができる。ビット・ストリーム・シンタックスについて以下に論ずる。
シーケンス・ヘッダ1001はシーケンス全体に対する情報を伝達する。これらにはフレームの合計数、シーケンスがコードされたコーダのバージョン及びイメージ・サイズが含まれる。シーケンスは例えば動画全体を含む。単一のシーケンス・ヘッダ1001は一連のイメージに先行し、シーケンスについての情報を指定する。シーケンス・ヘッダ1001は殆どどんな長さでも良く、その長さを1つのフィールドに持つ。シーケンス・ヘッダに現在定義されているいくつかのフィールドを図11に示す。シーケンス・ヘッダ1001はシーケンス・ヘッダID1101を含み、それによってデコーダがシーケンス・ヘッダであることを識別することができる。これはユーザに対してランダム・アクセスの再生を可能にするアプリケーションには有用である。更にシーケンス・ヘッダ1001は、シーケンス・ヘッダ1001の長さを指定する長さフィールド1102を含む。次のフィールドはシーケンス内のフレーム数を指定するフレーム数フィールド1103である。これは整数値で符号なしの長語として格納され、シーケンスの長さが232個のフレームまで可能にしている。シーケンス・ヘッダの次のフィールド1104は、現在予備として確保されており、次の2つのフィールド、1105及び1106はシーケンス内のイメージの幅と高さを指定する。シーケンス・ヘッダ1001の最後のフィールドはバージョン・フィールドで、使用されるエンコード/デコード装置の現在のバージョンを指定する整数フィールドである。これは特定の特性を持っていたり、持っていなかったりする新しいシーケンスと古いシーケンスを区別するためのものである。これはシーケンスとエンコード/デコード体系の上位及び下位の互換性を可能にする。シーケンス・ヘッダはまた、イメージのシーケンスを指定するASCII又は文字列を含む(図示せず)。
図10に戻って、チャンク・ヘッダ1011は、共用コードブックが用いられているかどうかの、フレームの次のチャンク(chunk)についての情報を伝達するチャンク・タイプを持つ。チャンク・ヘッダはフレームのチャンクに対していくつのコードブックが用いられているかを指定することができる。チャンク・ヘッダ1011はフレームの「チャンク」に先行する。望ましい実施例において、チャンクは1つ又は多くのフレームで場面変化検出アルゴリズムのような装置によって他の「チャンク」から区別できるものである。別の実施例ではフレームのグループは、レート制御メカニズムのような別の技術を用いて関連づけられる。
2つのコードブック・ヘッダが図10のシーケンス例1000に示されており、これによって1フレーム当たり2つのコードブックの使用が可能となる。2つのコードブックを使用する例は、固定コードブック(フレームの「チャンク」に対して静的)と順応性コードブック(フレーム毎に変わる)の使用である。コードブックのタイプとサイズは図13aに示すようにコードブック・ヘッダ1012と1014に含まれる。図10の1012又は1014のような各コードブック・ヘッダは、コードブック・タイプ・フィールド1301を有し、コードブック・タイプ、例えば固定か順応か、を指定する。コードブック・タイプはYUV(サブ・サンプリングされたUV又はサブ・サンプリングされないUV)、RGB及びYUV更新コードブックを含む。その他のタイプは、本発明の精神と範囲の中で考慮されている。コードブックの「更新」については、コードブックに対する更新はコードブック・ヘッダに続いて送られる。コードブックのサイズはフィールド1302にバイト数で指定され、デコーダは、いつ次のフィールドが始まるかを検出できる。もしコードブック・タイプが「更新」コードブック(すなわち共用コードブック)なら、図13bに示す情報1013(又は1015)がコードブック・ヘッダ1012(又は1014)に続いて期待できる。この更新コードブックは、更新が必要なコードブック項目を識別するビットマップ1370を有する。このフィールドの後に、更新される各ベクトルに対するベクトル更新1371−1373が続く。このようにコードブック全体が再生成されるのではなく、選択された部分だけが更新され、更にデータ・レートの低減が行われる。もしサブ・サンプリングされたU及びVと共にYUVが用いられると、更新ベクトル1371−1373のそれぞれは6バイトから成り、4バイトはブロック内の各画素の輝度のためであり、1バイトずつがそれぞれUとVのためである。コードブックの更新について図9a及び9bを参照して説明した。
更にコードブックのオーバーヘッドを低減するために、1013及び1015のようなコードブックはYUV(輝度とクロミナンス)フォーマットに変形され、UとVは水平及び垂直方向(YUV4:1:1)に、ファクタ2でサブ・サンプリングされる。従って、コードブックはサブ・サンプリングされた情報を伝送することによりサイズが更に小さくなり、コードブックのサイズを2のファクタで低減する。
図12を参照して示すように、フレーム・ヘッダ1021はイメージ・サイズを幅フィールド1201と高さフィールド1202とに有し、フレーム・サイズの変動をいつでも可能にする。フレーム・ヘッダ1021はフレーム・タイプ・フィールド1203を有し、そのビット・パターンは、スキップ・フレームに対するヌル(null)フレームであるか、全体がサブ・サンプリングされたフレームであるか、キー・フレームであるか、又はフレームが他のフレームとコードブックを共用しているかを示す。他のタイプのフレームは、本発明の精神の中で考慮されている。サブ・サンプリングされたゾーン・フィールド1204は32ビットのビット・マップ・パターンであり、どのゾーンが(もしあれば)サブ・サンプリングされたかを示し、望ましい実施例では最大232ゾーンまで可能にしている。
図14の部分1022に示すブロック・ヘッダは、デコーダ351に対してどのタイプのブロックがインデックスのセットと関連しているか及びいくつのインデックスがそのセットにあるかを知らせる。これは図14を参照して示される。ヘッダ1401の最初の3ビットは、続くインデックスのセットが2×2Cブロック(変化ブロック)であるか、4×4NCブロック(無変化ブロック)であるか、4×4SSブロック(サブ・サンプリングされたブロック)であるか、混合ブロックであるか又は行画素値であるかを示す。もし最初の3ビットが、ブロック・タイプは混合でないことを指定すると、ヘッダ1401の最後の5ビットはいくつのインデックス1402がブロック・ヘッダ1401に続くかを示す整数である。これは「ランレングス(runlength)」ブロック・ヘッダと呼ばれる。ブロック・ヘッダは2×2Cと2×2NCブロックの混合のような混合ブロックを指定する。この場合、長さのために確保されたヘッダの5ビットは、2×2Cと2×2NCブロックの混合のうち、いくつの4×4がコード化されたかを指定する。別のやり方では、5ビットのうち1ビットは、もっと多くの混合の可能性を許すために用いられる。ビット・マップが続き、一番近いバイトにパッドされる。2×2C−2×2NC混合の例において、ビット・マップは「1」でブロック・タイプが2×2Cであることを、「0」でブロック・タイプが2×2NCであることを示す。ブロックは4×4の単位でも混合できる。もしビット・マップ・ヘッダがビット数をランレングス・ヘッダよりも少なくすれば、計算が簡単になる。「10010110101」のような一連の交互のブロック・タイプは、ビット・マップ・ブロック・ヘッダでうまくコード化され、1つのヘッダ・タイプが長く続くようなもの(例えば111111111000000000)はランレングス・ヘッダ・タイプでうまくコード化される。ブロックをより効率的にコード化するブロック・ヘッダが選択される。ビット・マップ・ヘッダは、頻繁に発生する短く続くブロックの効率的コーディンタを可能にする。
「変化」ブロックの流れの中間において、「無変化」ブロックとタグを付けられたブロックの前後におかれるブロック・タイプ・ヘッダ1401の2バイトのオーバーヘッドのために、もし1行に少なくとも4個の2×2無変化ブロックがあれば、望ましい実施例のランレングス・ブロック・ヘッダは、ヘッダを有するインデックスの構造を乱すだけである。1410のようなヘッダを有するビット・ストリームにおいて区別するために、望ましい実施例のランレングス・ヘッダは4個の2×2NC(無変化)ブロックが一緒に発生し、1つの4×4NC(無変化)を作ることを要する。同じ位置の、前のフレームのブロックが代わりに用いられるので、次に続くN個のブロックが4×4NC(無変化)タイプであることを示す1410のようなブロック・ヘッダは、インデックスについてバイトを浪費する必要ない。デコーダ351は新しいイメージに対して、いくつのブロックをスキップするかを知る必要があるだけである。実際の画素値又は特異な2×2ブロックが用いられるので、1402のような2×2Cブロックのインデックスは、4個のセットで発生する必要がない。もしある実施例で、実際の画素値又は特異な2×2C及び2×2NCブロックがサポートされていなければ、2×2Cブロックが4個のセットで発生することを仮定することは、1401のような2×2Cブロック・ヘッダと関連するブロック数を増加し、従ってブロック・ヘッダによる効果的オーバーヘッドを減少させる。例えば、もし2×2Cブロックがサポートされなければ、1つのブロックは8個の2×2C(変化)ブロックを識別し、それを8グループの4−2×2Cブロックの意味として解釈する。(2−2×2Cブロックが2セットの4−2×2Cブロックとして解釈される図15、16の例を参照)。
更に、2×2Cブロックを参照する図14のインデックス1402は、4×4SSブロックを参照するインデックス1421と同じコードブックからである必要はない。このビット・ストリームの柔軟性は、256以上のコードブックを有し、バイト整合されないインデックス・サイズ(512のコードブック・ベクトルに対する扱いにくい9ビットのような)にジャンプすることなしに、非常に少ない圧縮の低下で高い画質のサポートを可能にする。
インデックス・パッキング
もしイメージ・ブロックがコードブック内で近接しており、類似のRGBカラー空間にあれば、ビット・ストリームに単にリストするのでなく、インデックスをコード化するとき、ベース・アドレスを用いるのが有利である。コードブック・ベクトルは「最悪」誤差のノードを分割して生成されるので、類似のイメージ・ベクトルがコードブック内に近く集まる傾向がある。似たイメージ・ブロックがイメージ空間で発生する傾向があるので(すなわちブロック間で空間的相関がある)、互いに近いインデックス値が一緒に発生する傾向がある。コードブック・インデックスの割り当てもまた、空間でのインデックスの差が最小となる方法で行うことができる。どのようにこれを用いてロスなしにビット数を減らすかの例が図15及び16に示され、説明されている。このパッキング処理は、図3のエンコーダ301の340で行われ、アンパックはデコーダ351の処理370で行われる。
図15で、もしコードブックが256の項目を持っていれば、ビット・ストリーム1500のコードブック・インデックスは、それぞれ8ビットを必要とする。言い換えれば、各インデックスはコードブックのエレメントに対して完全な参照を有する。上で論じたように、空間的相関のため、これらのインデックス値はベース・アドレスからのオフセットを用いることによって、もっと低減できる。これは図16に示されている。図16において、コードブック・インデックスのそれぞれは、もしインデックスが伝送されたベース・アドレスから、−8から+7であるオフセットとして表されれば、わずか4ビットを要する。これはビット・ストリーム1600の1601に示される。ベース・アドレス1601は開始点として用いられ、1604のような現在のブロックのオフセット値は、現在ブロック1603に先行するインデックスにおける変化を参照することができる。ベース・アドレス・ヘッダ1601はベース・アドレスを定義して送られることを要し、差のコードが用いられる。大きく、可変であるコードブック・インデックス(コードブックの一端から他端)のセットを有する領域は、図15に示す完全なインデックスの伝送を用いて効率的にコード化され、ブロック・レベルで類似の領域は、図16に示す1600のようなビット・ストリームを用いてより効率的にコード化される。図16に示すように、ベース・アドレスからのオフセットを用いることは、元のインデックス値がベース・アドレスにオフセット値を加えることによって計算できるので、図15に示すテクニックと同様無損失である。
ビデオ・データを圧縮、圧縮解除する発明について記載した。この明細書において、本発明は図1から図16の特定の実施例を参照して説明された。しかし、添付請求の範囲に述べたように、本発明の広い精神と範囲から離れることなく様々な修正や変更がなされ得ることは明らかであろう。従って、明細書及び図面は、例示と考えるべきであり、限定と考えるべきでない。
本発明は例示によって示され、付随する数値に限定されるものではなく、類似の参照は類似のエレメントを示す。
ビデオ・イメージを圧縮/圧縮解除するために用いられる従来技術のコード化/復号化装置を示す。 イメージを2×2画素ブロックから成るベクトルに分割する従来技術の体系を示す。 従来技術のCODEC(コード化/デコード)の機能ブロック図を示す。
無変化のブロックを識別するプリ・プロセシング技術を示す。 望ましい実施例で用いられるサブ・サンプリングの例を示す。 望ましい実施例によって提供される改良したベクトルの量子化を用いて作成されるベクトル量子化ツリーを示す。 図6に示すツリーを作成するために用いられる改良したベクトルの量子化処理を示す。 図6に示すツリーを作成するために用いられる改良したベクトルの量子化処理を示す。 「ゼロ」セルを除去し、残りのノードで反復することによって、ノードがベクトル・ツリー内でどのように更新されるかを示す。 望ましい実施例で用いられるビット・ストリームを示す。 図10を参照して論じられるビット・ストリームに含まれるデータの詳細図を示す。 図10を参照して論じられるビット・ストリームに含まれるデータの詳細図を示す。 図10を参照して論じられるビット・ストリームに含まれるデータの詳細図を示す。 図10を参照して論じられるビット・ストリームに含まれるデータの詳細図を示す。 図10を参照して論じられるビット・ストリームに含まれるデータの詳細図を示す。 図10を参照して論じられるビット・ストリームに含まれるデータの詳細図を示す。
符号の説明
100:入力イメージ、101、301:エンコーダ、102:圧縮されたイメージ、
105:コードブック、131、351:デコーダ、132:圧縮解除されたイメージ、
151:イメージのトレーニング・セット、152:コードブック生成器、
200:イメージ、201、202:ベクトル、300:CODEC、
320:プリ・プロセッサ、330:ベクトル量子化装置、
340:パック/コード化装置、345:レート制御、360:コードブック再生器、
370:アンパッカー、375:ポスト・フィルタ、380:ディザリング、
390:ディスプレイ、
500、510、516、518、520、521、555、560:ブロック、
600:VQツリー、610:子供ノード、900、910、920、930:ツリー、
1000:シーケンス、1402、1421:インデックス、
1500、1600:ビット・ストリーム

Claims (5)

  1. コードブックを作成するベクトル量子化処理ならびにこのベクトル量子化処理に先行する空間的サブ・サンプリング処理に従ってコード化されたイメージをデコードする装置であって、
    a. 下記のi.とii.の手段を含み、ベクトル量子化処理によって作成された前のコードブックから現在のコードブックを作成する手段と、
    i. イメージをコード化するときに作成され、かつ受け取ったビット・ストリームの、前のコードブックで更新されるべき第1のコードブック項目に対する参照を検出する手段
    ii. 受け取ったビット・ストリームの、受け取ったコードブック項目から上記前のコードブックの上記第1のコードブック項目を更新し、上記前のコードブックを現在のコードブックに変換する手段
    b. 受け取ったビット・ストリームのコードブック・インデックスであって、ベクトル量子化処理に従ってイメージをコード化する現在のコードブックの項目を参照するコードブック・インデックスを受け取る手段と、
    c. 上記コードブック・インデックスを受け取る手段によって受け取られた上記コードブック・インデックスに基づいて、上記現在のコードブックから項目を検索する手段と、
    d. イメージをコード化すると共に、上記コードブック・インデックスが、ベクトル量子化処理の前にサブ・サンプリングされたイメージのイメージ・ブロックのベクトルを参照しているかどうか判定する手段と、
    e. 上記判定する手段によって、サブ・サンプリングされると判定された上記ベクトルに対する上記検索されたコードブック項目を、即ち、そのベクトルをアップ・サンプリングする手段と、
    f. 上記検索する手段によって検索された上記コードブック項目に含まれるベクトルのそれぞれを表示装置上に表示する手段とを、含むイメージをデコードする装置。
  2. コードブックを作成するベクトル量子化処理ならびにこのベクトル量子化処理に先行する空間的サブ・サンプリング処理に従ってコード化されたイメージをデコードする装置であって、
    a. コード化手段から送られ、かつイメージをコード化するときに作成されたビット・ストリームに受け取った、前のコードブックのコードブック項目から上記イメージをデコードするための現在のコードブックを作成する手段と、
    b. ビット・ストリームのコードブック・インデックスであって、現在のコードブックの項目を参照するコードブック・インデックスを受け取る手段と、
    c. 上記コードブック・インデックスを受け取る手段によって受け取られた上記コードブック・インデックスに基づいて、上記現在のコードブックから項目を検索する手段と、
    d. イメージをコード化すると共に、上記コードブック・インデックスが、ベクトル量子化処理の前にサブ・サンプリングされたイメージのイメージ・ブロックのベクトルを参照しているかどうか判定する手段と、
    e. 上記判定する手段によって、サブ・サンプリングされると判定された上記ベクトルに対する上記検索されたコードブック項目を、即ち、そのベクトルをアップ・サンプリングする手段とを含むイメージをデコードする装置。
  3. コードブックを作成するベクトル量子化処理ならびにこのベクトル量子化処理に先行する空間的サブ・サンプリング処理に従ってコード化されたイメージをデコードする装置であって、
    a. 下記のi.とii.の手段を含み、ベクトル量子化処理の一部として作成された前のコードブックから現在のコードブックを作成する手段と、
    i. イメージをコード化するときに作成され、かつ受け取ったビット・ストリームの、前のコードブックで更新されるべき第1のコードブック項目に対する参照を検出する手段
    ii. 受け取ったビット・ストリームの、受け取ったコードブック項目から上記前のコードブックの上記第1のコードブック項目を更新し、上記前のコードブックを現在のコードブックに変換する手段
    b.イメージをコード化するときに作成され、それぞれが下記のi.、ii.、iii.のいずれか1つを含む複数のブロック・ヘッダ識別子を含むコード化されたビット・ストリームを受け取る手段と、
    i. 上記コード化されたビット・ストリームの後続のブロックが前のイメージから変化しなかったことを示す第1の値
    ii. 上記コード化されたビット・ストリームの後続のブロックがベクトル量子化される前にサブ・サンプルされたことを示す第2の値
    iii.上記コード化されたビット・ストリームの後続のブロックがベクトル量子化されたことを示す第3の値
    c. 上記コード化されたビット・ストリームの、上記現在のコードブックの項目を参照するコードブック・インデックスを受け取る手段と、
    d. 上記コードブック・インデックスを受け取る手段によって受け取られた上記コードブック・インデックスに基づいて、上記現在のコードブックから項目を検索する手段と、
    e. 上記コードブック・インデックスが、上記ブロック・ヘッダ識別子によってサブ・サンプリングされたイメージのイメージ・ブロックのベクトルを参照しているかどうか判定する手段と、
    f. 上記判定する手段によって、サブ・サンプリングされと判定された上記ベクトルに対する上記検索されたコードブック項目を、即ち、そのベクトルをアップ・サンプリングする手段と、
    g. 上記検索する手段によって検索された上記コードブック項目に含まれるベクトルのそれぞれを表示装置上に表示する手段と、を含むイメージをデコードする装置。
  4. コードブックを作成するベクトル量子化処理ならびにこのベクトル量子化処理に先行する空間的サブ・サンプリング処理に従ってコード化されたイメージをデコードする装置であって、
    a. コード化手段から送られたコードブック項目から現在のコードブックを作成する手段と、
    b.イメージをコード化するときに作成され、それぞれが下記のi.、ii.、iii.のいずれか1つを含む複数のブロック・ヘッダ識別子を含むコード化されたビット・ストリームを受け取る手段と、
    i. 上記コード化されたビット・ストリームの後続のブロックが前のイメージから変化しなかったことを示す第1の値
    ii. 上記コード化されたビット・ストリームの後続のブロックがサブ・サンプルされ、かつ、ベクトル量子化されたことを示す第2の値
    iii.上記コード化されたビット・ストリームの後続のブロックがサブ・サンプリングはされずにベクトル量子化だけされたことを示す第3の値
    c. 上記コード化されたビット・ストリームの、上記現在のコードブックの項目を参照するコードブック・インデックスを受け取る手段と、
    d. 上記コードブック・インデックスを受け取る手段によって受け取られた上記コードブック・インデックスに基づいて、上記現在のコードブックから項目を検索する手段と、
    e. 上記コードブック・インデックスが、上記ブロック・ヘッダ識別子によってサブ・サンプリングされたイメージのイメージ・ブロックのベクトルを参照しているかどうか判定する手段と、
    f. 上記判定する手段によって、サブ・サンプリングされと判定された上記ベクトルに対する上記検索されたコードブック項目を、即ち、そのベクトルをアップ・サンプリングする手段と、を含むイメージをデコードする装置。
  5. イメージの複数の異なる領域をコード化するコード化処理中にそのイメージに対して個別のコードブックが作成される該イメージをデコードする装置であって、
    a. コード化処理によって作成された、前のコードブックに対する参照、ここで、この前のコードブックに対する参照は前記装置において複数のコードブックのうちの1つを参照し、複数のコードブックのそれぞれは前記イメージの異なる空間領域をデコードするために使われる、を受け取る手段と、
    b. 下記のi.とii.の手段を含み、上記前のコードブックから現在のコードブックを作成する手段と、
    i. コード化処理によって作成された、前のコードブックで更新されるべき第1のコードブック項目に対する参照を検出する手段
    ii.受け取ったコードブック項目から上記前のコードブックの上記第1のコードブック項目を更新し、上記前のコードブックを上記現在のコードブックに変換する手段
    c. コード化処理によって作成された、上記現在のコードブックの項目を参照するコードブック・インデックスを受け取る手段と、
    d. 上記コードブック・インデックスを受け取る手段によって受け取られた上記コードブック・インデックスに基づいて、上記現在のコードブックから項目を検索する手段と、を含むイメージをデコードする装置。
JP2003381267A 1992-09-01 2003-11-11 イメージをデコードする装置 Expired - Lifetime JP4264492B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/938,942 US5596659A (en) 1992-09-01 1992-09-01 Preprocessing and postprocessing for vector quantization

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP50716294A Division JP3681386B2 (ja) 1992-09-01 1993-06-14 改良されたベクトルの量子化のための前処理及び後処理

Publications (2)

Publication Number Publication Date
JP2004120785A JP2004120785A (ja) 2004-04-15
JP4264492B2 true JP4264492B2 (ja) 2009-05-20

Family

ID=25472256

Family Applications (2)

Application Number Title Priority Date Filing Date
JP50716294A Expired - Lifetime JP3681386B2 (ja) 1992-09-01 1993-06-14 改良されたベクトルの量子化のための前処理及び後処理
JP2003381267A Expired - Lifetime JP4264492B2 (ja) 1992-09-01 2003-11-11 イメージをデコードする装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP50716294A Expired - Lifetime JP3681386B2 (ja) 1992-09-01 1993-06-14 改良されたベクトルの量子化のための前処理及び後処理

Country Status (6)

Country Link
US (1) US5596659A (ja)
EP (1) EP0663093B1 (ja)
JP (2) JP3681386B2 (ja)
AU (1) AU4634493A (ja)
DE (1) DE69332584T2 (ja)
WO (1) WO1994006098A1 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173275B1 (en) * 1993-09-20 2001-01-09 Hnc Software, Inc. Representation and retrieval of images using context vectors derived from image information elements
US7251637B1 (en) 1993-09-20 2007-07-31 Fair Isaac Corporation Context vector generation and retrieval
US5805735A (en) * 1995-03-02 1998-09-08 Apple Computer, Inc. Method and apparatus for compression of digitized image data using variable color fidelity
AU6251496A (en) * 1995-06-05 1996-12-24 Apple Computer, Inc. Block classification for accelerating image data compression
US5686963A (en) * 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
US5764293A (en) * 1995-12-26 1998-06-09 C-Cube Microsystems, Inc. Method of encoding video using master and slave encoders wherein bit budgets for frames to be encoded are based on encoded frames
US5682204A (en) * 1995-12-26 1997-10-28 C Cube Microsystems, Inc. Video encoder which uses intra-coding when an activity level of a current macro-block is smaller than a threshold level
US6324301B1 (en) * 1996-01-24 2001-11-27 Lucent Technologies Inc. Adaptive postfilter for low bitrate visual telephony noise removal
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
US6678311B2 (en) 1996-05-28 2004-01-13 Qualcomm Incorporated High data CDMA wireless communication system using variable sized channel codes
US5831678A (en) * 1996-08-09 1998-11-03 U.S. Robotics Access Corp. Video encoder/decoder system
US5805228A (en) * 1996-08-09 1998-09-08 U.S. Robotics Access Corp. Video encoder/decoder system
CN1135849C (zh) * 1996-10-01 2004-01-21 西门子公司 一个数字化图像的向量量化和逆向量量化的方法和设备
US6088484A (en) * 1996-11-08 2000-07-11 Hughes Electronics Corporation Downloading of personalization layers for symbolically compressed objects
US5974175A (en) * 1997-01-22 1999-10-26 Fujitsu Limited Image processing apparatus and method for detecting a contour of an object from images of a motion picture and extracting the object therefrom
US6161089A (en) * 1997-03-14 2000-12-12 Digital Voice Systems, Inc. Multi-subframe quantization of spectral parameters
US6131084A (en) * 1997-03-14 2000-10-10 Digital Voice Systems, Inc. Dual subframe quantization of spectral magnitudes
US6633611B2 (en) * 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
JPH1115911A (ja) * 1997-04-28 1999-01-22 Olympus Optical Co Ltd 情報再生システム
US7239755B1 (en) 1997-07-30 2007-07-03 Lg Electronics Inc. Method of reducing a blocking artifact when coding moving picture
JP3512988B2 (ja) * 1997-08-12 2004-03-31 株式会社東芝 画像処理装置
KR100244290B1 (ko) * 1997-09-09 2000-02-01 구자홍 저속 전송에서의 동영상을 위한 디블록킹 필터링 방법
US6058405A (en) * 1997-11-06 2000-05-02 Motorola Inc. SIMD computation of rank based filters for M×N grids
JPH11234668A (ja) * 1998-02-13 1999-08-27 Sony Corp 映像符号化装置
GB2335126B (en) * 1998-03-06 2002-05-29 Advanced Risc Mach Ltd Image data processing apparatus and a method
US6192263B1 (en) * 1998-09-01 2001-02-20 General Electric Company Phase-sensitive inversion recovery method of MR imaging
US6731807B1 (en) * 1998-09-11 2004-05-04 Intel Corporation Method of compressing and/or decompressing a data set using significance mapping
US6195394B1 (en) * 1998-11-30 2001-02-27 North Shore Laboratories, Inc. Processing apparatus for use in reducing visible artifacts in the display of statistically compressed and then decompressed digital motion pictures
JP2000305822A (ja) * 1999-04-26 2000-11-02 Denso Corp データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法
US6496798B1 (en) * 1999-09-30 2002-12-17 Motorola, Inc. Method and apparatus for encoding and decoding frames of voice model parameters into a low bit rate digital voice message
US6912250B1 (en) 1999-11-12 2005-06-28 Cornell Research Foundation Inc. System and methods for precursor cancellation of intersymbol interference in a receiver
EP1133166A3 (en) * 2000-01-06 2003-08-06 Hewlett-Packard Company, A Delaware Corporation Using hardware to double the X-dimension in a video frame
US7295443B2 (en) 2000-07-06 2007-11-13 Onspec Electronic, Inc. Smartconnect universal flash media card adapters
US6438638B1 (en) 2000-07-06 2002-08-20 Onspec Electronic, Inc. Flashtoaster for reading several types of flash-memory cards with or without a PC
CA2316610A1 (en) * 2000-08-21 2002-02-21 Finn Uredenhagen System and method for interpolating a target image from a source image
US7069545B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Quantization and compression for computation reuse
US6807312B2 (en) 2001-07-13 2004-10-19 Sharp Laboratories Of America, Inc. Robust codebooks for vector quantization
AU2002334720B8 (en) * 2001-09-26 2006-08-10 Interact Devices, Inc. System and method for communicating media signals
US7302102B2 (en) * 2001-09-26 2007-11-27 Reynolds Jodie L System and method for dynamically switching quality settings of a codec to maintain a target data rate
US7599434B2 (en) * 2001-09-26 2009-10-06 Reynolds Jodie L System and method for compressing portions of a media signal using different codecs
US7457359B2 (en) * 2001-09-26 2008-11-25 Mabey Danny L Systems, devices and methods for securely distributing highly-compressed multimedia content
US7457358B2 (en) * 2001-09-26 2008-11-25 Interact Devices, Inc. Polymorphic codec system and method
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US7305032B2 (en) * 2002-08-02 2007-12-04 Kddi Corporation Image matching device and method for motion pictures
US7346226B2 (en) 2003-12-16 2008-03-18 Genesis Microchip Inc. Method and apparatus for MPEG artifacts reduction
US7499494B2 (en) 2003-12-23 2009-03-03 Genesis Microchip Inc. Vector selection decision for pixel interpolation
US7346109B2 (en) 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7480334B2 (en) 2003-12-23 2009-01-20 Genesis Microchip Inc. Temporal motion vector filtering
US7457438B2 (en) 2003-12-23 2008-11-25 Genesis Microchip Inc. Robust camera pan vector estimation using iterative center of mass
US20060158677A1 (en) * 2005-01-18 2006-07-20 Atousa Soroushi Enhanced image data processing method and apparatus
US20060248163A1 (en) * 2005-04-28 2006-11-02 Macinnis Alexander Systems, methods, and apparatus for video frame repeat indication & processing
US20070034545A1 (en) * 2005-08-04 2007-02-15 Sabalaskey John P Customizable gift wrap
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US8160160B2 (en) * 2005-09-09 2012-04-17 Broadcast International, Inc. Bit-rate reduction for multimedia data streams
WO2010008808A2 (en) * 2008-06-23 2010-01-21 Pixsense, Inc. Compressed domain system and method for compression gains in encoded data
US8077990B2 (en) * 2006-04-28 2011-12-13 Pixsense Inc. Efficient content compression and decompression system and method
US20080085055A1 (en) * 2006-10-06 2008-04-10 Cerosaletti Cathleen D Differential cluster ranking for image record access
US20080181298A1 (en) * 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
JP5470819B2 (ja) * 2008-11-28 2014-04-16 富士通株式会社 空間データの出力処理方法、そのプログラム及びデータ処理システム
US20100309987A1 (en) * 2009-06-05 2010-12-09 Apple Inc. Image acquisition and encoding system
US8855911B2 (en) 2010-12-09 2014-10-07 Honeywell International Inc. Systems and methods for navigation using cross correlation on evidence grids
US8818722B2 (en) 2011-11-22 2014-08-26 Honeywell International Inc. Rapid lidar image correlation for ground navigation
JP5176066B1 (ja) * 2011-12-20 2013-04-03 株式会社アクセル 画像処理装置及び画像処理方法
US8639057B1 (en) * 2012-03-19 2014-01-28 The Modern Video Company Artifact removal method and system for contoured images and video
US9157743B2 (en) 2012-07-18 2015-10-13 Honeywell International Inc. Systems and methods for correlating reduced evidence grids
US10015506B2 (en) 2013-05-20 2018-07-03 Cinova Media Frequency reduction and restoration system and method in video and image compression
BR112016006928A2 (pt) 2013-09-30 2017-08-01 Hewlett Packard Development Co codificação de informações em um elemento gráfico de uma imagem
KR20240010550A (ko) 2014-03-28 2024-01-23 삼성전자주식회사 선형예측계수 양자화방법 및 장치와 역양자화 방법 및 장치
WO2015170899A1 (ko) 2014-05-07 2015-11-12 삼성전자 주식회사 선형예측계수 양자화방법 및 장치와 역양자화 방법 및 장치
US10462477B2 (en) 2015-02-25 2019-10-29 Cinova Media Partial evaluator system and method
US10460700B1 (en) 2015-10-12 2019-10-29 Cinova Media Method and apparatus for improving quality of experience and bandwidth in virtual reality streaming systems
JPWO2017191716A1 (ja) * 2016-05-06 2019-04-04 ソニー株式会社 表示制御装置および撮像装置
US10944971B1 (en) 2017-05-22 2021-03-09 Cinova Media Method and apparatus for frame accurate field of view switching for virtual reality
US12067482B1 (en) * 2018-02-05 2024-08-20 Amazon Technologies, Inc. Intelligent input adaptation from disparate data sources for heterogeneous machine learning model execution
US11308152B2 (en) * 2018-06-07 2022-04-19 Canon Kabushiki Kaisha Quantization method for feature vector, search method, apparatus and storage medium

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61118085A (ja) * 1984-11-14 1986-06-05 Nec Corp 画像信号の符号化方式およびその装置
JPS62181576A (ja) * 1986-02-05 1987-08-08 Fuji Photo Film Co Ltd 放射線画像情報圧縮方法
IT1190565B (it) * 1986-04-07 1988-02-16 Cselt Centro Studi Lab Telecom Procedimento e dispositivo di codifica di segnali numerizati mediante quantizzazione vettoriale
CA1333420C (en) * 1988-02-29 1994-12-06 Tokumichi Murakami Vector quantizer
KR930004311B1 (ko) * 1989-04-18 1993-05-22 미쯔비시덴끼 가부시끼가이샤 동화상 부호화 복호화장치
US5068723A (en) * 1989-05-19 1991-11-26 Gte Laboratories Incorporated Frame or sub-frame rate adaptive vector quantizer for moving images
US5124791A (en) * 1989-05-31 1992-06-23 Utah State University Foundation Frame-to-frame compression of vector quantized signals and other post-processing
US4987480A (en) * 1989-07-11 1991-01-22 Massachusetts Institute Of Technology Multiscale coding of images
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
IT1241184B (it) * 1990-03-02 1993-12-29 Cselt Centro Studi Lab Telecom Perfezionamenti ai sistemi ibridi di codifica di segnali video.
US5046119A (en) * 1990-03-16 1991-09-03 Apple Computer, Inc. Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode
US5121191A (en) * 1991-03-15 1992-06-09 Aware, Inc. Method and apparatus for coding motion pictures
FR2681750A1 (fr) * 1991-09-20 1993-03-26 Thomson Csf Procede de compression d'images.
US5231485A (en) * 1991-11-19 1993-07-27 Scientific-Atlanta, Inc. Method and apparatus for transforming between fixed-rate vector quantized data and variable rate vector quantized data
US5278647A (en) * 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals

Also Published As

Publication number Publication date
DE69332584D1 (de) 2003-01-30
WO1994006098A1 (en) 1994-03-17
AU4634493A (en) 1994-03-29
JP2004120785A (ja) 2004-04-15
EP0663093A1 (en) 1995-07-19
JPH08502392A (ja) 1996-03-12
US5596659A (en) 1997-01-21
EP0663093B1 (en) 2002-12-18
JP3681386B2 (ja) 2005-08-10
DE69332584T2 (de) 2003-11-20
EP0663093A4 (en) 1995-09-06

Similar Documents

Publication Publication Date Title
JP4264492B2 (ja) イメージをデコードする装置
US5822465A (en) Image encoding by vector quantization of regions of an image and codebook updates
US20220132116A1 (en) Independently coding frame areas
RU2654200C1 (ru) Усовершенствованное кодирование содержимого экрана с улучшенными способами кодирования таблицы палитры и индексной карты
US5300949A (en) Scalable digital video decompressor
JP3978478B2 (ja) 推定画素値により固定速度のブロック単位の画像圧縮を行うための装置及び方法
US5903676A (en) Context-based, adaptive, lossless image codec
US6353684B1 (en) Video coding and video decoding apparatus
JPH09507347A (ja) 4分木構造walsh変換ビデオ/イメージ符号化
KR100574702B1 (ko) 화상부호/복호방법 및 그 프로그램을 기록한 기록매체
US5124791A (en) Frame-to-frame compression of vector quantized signals and other post-processing
WO1996008929A1 (en) Improved method and apparatus for compressing a digital signal using vector quantization
US6438267B1 (en) Image compression method
KR20030036021A (ko) 인코딩 방법 및 배열
JPH07177502A (ja) 画像情報圧縮方法、圧縮画像情報記録媒体、圧縮画像情報再生装置
EP1156679A2 (en) Image encoding and decoding method and apparatus, and recording medium in which program therefor is recorded
JPH0621828A (ja) ベクトル量子化復号化器
KR100216600B1 (ko) 영상 신호 벡터 양자화기를 위한 다중 부호어 전송 방법
KR100495001B1 (ko) 이미지 압축 부호화 방법 및 시스템
US20020094126A1 (en) Fractal image compression
JPH11272843A (ja) カラー画像の符号化装置およびその方法並びにカラー画像の復号化装置およびその方法
JP2003284073A (ja) 画像符号/復号方法及び装置並びにプログラム及び記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060704

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061004

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080827

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080901

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080929

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081027

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

EXPY Cancellation because of completion of term