JPH08502392A - 改良されたベクトルの量子化のための前処理及び後処理 - Google Patents

改良されたベクトルの量子化のための前処理及び後処理

Info

Publication number
JPH08502392A
JPH08502392A JP6507162A JP50716294A JPH08502392A JP H08502392 A JPH08502392 A JP H08502392A JP 6507162 A JP6507162 A JP 6507162A JP 50716294 A JP50716294 A JP 50716294A JP H08502392 A JPH08502392 A JP H08502392A
Authority
JP
Japan
Prior art keywords
codebook
image
bit stream
index
vector
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.)
Granted
Application number
JP6507162A
Other languages
English (en)
Other versions
JP3681386B2 (ja
Inventor
ノーマイル,ジェイムズ・オリバー
ワング,キャサリン・シューウェイ
ウー,シージュン
Original Assignee
アプル・コンピュータ・インコーポレーテッド
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 アプル・コンピュータ・インコーポレーテッド filed Critical アプル・コンピュータ・インコーポレーテッド
Publication of JPH08502392A publication Critical patent/JPH08502392A/ja
Application granted granted Critical
Publication of JP3681386B2 publication Critical patent/JP3681386B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Color Television Systems (AREA)

Abstract

(57)【要約】 データの圧縮に関するコードブックを構築するベクトル量子化(VQ)のための改良された方法と装置。コードブック600又は「ツリー」は、N個の初期ノード(610)を設定し、残りのコードブックをバイナリ・コードブック(650)として生成することによって初期化される。子供の項目(670)が、最大歪、個体数等の様々な属性の決定に基づいて分割される。データから得られたベクトルは子供ノードと関連づけられ、次に代表的子供の項目が再計算される。この分割/再関連は、前の子供と現在の子供に関する誤差の差が閾値より小さくなるまでくり返し続けられる。この分割と再関連処理は、最大数のターミナル・ノードがツリー内に作成されたり、合計誤差又は歪が閾値に達する等の基準まで続けられる。データは次にコードブックとコードブックを参照するインデックスを含む圧縮されたビット・ストリームとして伝送される。

Description

【発明の詳細な説明】 改良されたベクトルの量子化 のための前処理及び後処理 発明の背景 1.発明の分野 本発明はビデオの圧縮、圧縮解除に関連し、特にイメージの事前処理及びベク トルの量子化(VQ)を用いた改良されたビデオ圧縮/圧縮解除に関連する。 2.関連技術の背景 マルチメディアや完全動画ビデオを必要とするその他のアプリケーションのよ うな近代的アプリケーションは、ビデオ情報の記憶、伝送及び表示に費やされる 処理帯域幅を低減するビデオ圧縮の標準の開発を必要とした。これは、高解像度 のフル・イメージのビデオ情報を表す伝送、記憶のための大量のデータのためで ある。一般に図1a、1b及び1cに示すような装置は、ベクトルの量子化技術 に基づく入力イメージの圧縮、圧縮解除を行うために用いられる。例えば、図1 aに示すように、イメージ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のようなイメージは、「ベクトル」として知られる20 1及び202のような一連の2×2画素ブロックに分割される。201のような 各ベクトルは4つの画素201a、201b、201c及び201dから成る。 イメージがこのようなベクトルに分解されると、ビット・ストリーム内の各ベク トルを使って、(a)コードブックの生成を含むイメージのコード化を行い、( b)イメージのデコードを行う。イメージ200における201、202のよう な各ベクトルは、イメージ200を表すのに用いられる。イメージに含まれるベ クト ルの近似であるコードブックのエレメントを参照することによって1つのイメー ジが表される。従って、201aから201dのような4つの別々の画素を用い てイメージを表す代わりに、ベクトル201に含まれる情報を近似するコードブ ック・インデックスを参照してイメージが表される。コードブック内の項目数に よって、イメージ・ベクトルを参照するコードブック・インデックスを使用する と、実際の画素値201a−201dを用いてイメージを表すのではないため、 ベクトルを表す記憶域を実質的に低減できる。 このような従来技術の装置は、図1aから1cを参照して論じたようにCOD EC(コード化/デコード)として知られる装置に実施されており、これは対応 するコードブックからの一連のイメージに対する圧縮されたビット・ストリーム を生成し、コードブックを用いて後でイメージの圧縮解除を行う。例えば、この ような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.による「ベクトルの量子化」−1IEEE ASSP Magazine 4−29(1984年4月) (「グレイ」)及びNasrabad i,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つの目的は、ベクトル量子化によってコードブックを効率的に生成 し、イメージの空間的、時間的冗長性を低減する装置と方法及び圧縮システムの 帯域幅を節約するためのイメージの関連処理を提供することである。 本発明の他の目的は、一般的従来技術のベクトル量子化技術に関連したエラー を低減するため、イメージを効率的に区画化し、処理する手段を提供することで ある。 本発明の他の目的は、一般的従来技術のベクトル量子化技術に関連した計算を 更に低減する手段を提供することである。 本発明の他の目的は、限定された帯域幅のチャネルでの円滑な再生に適合する ため、圧縮されたシーケンスの結果的データ・レートを効率的及び効果的に制御 する手段を提供することである。 本発明の他の目的は、圧縮されたデータのリアル・タイムのデコーディングを 可能にする単純なデコード構造を提供することである。 本発明のこれら及び他の目的は、事前処理されたブロックをベクトル量子化装 置へ送る、データをコード化する方法と装置によって提供される。ベクトル量子 化装置は、イメージ・ブロックをインデックスによって代表的ベクトルのテーブ ルに表現し(コードブックと呼ばれる)、忠実度の基準を最小にしている。1実 施例では、イメージ・ベクトルの輝度とクロミナンス(YUV)を用いて、コー ドブックとイメージ又はイメージのセットと関連するコードブックのインデック スを決定する。別の実施例では、どの程度の変化が起こるかに適合する時間的フ ィルタリングが行われ、動きの産物を低減する。別の実施例では、もし前のコー ド化されたフレームと現在のフレームの差が順応的閾値より小さければ、イメー ジ・ベクトルは送られない。実施例では、異なったコードブックを参照する異な ったイメージ領域及び可変サイズの領域を提供する。実施例ではまた、異なった コードブックを参照する異なったブロック・タイプを提供する。実施例が、ベク トル量子化に関して共用され、可変サイズのコードブックに関して提供される。 実施例が更にイメージの端を避けるプリ・フィルタリングに関して提供される。 実施例が更にレート制御体系に関して提供される。実施例が更に順応的空間的サ ブ・サンプリングによる、空間的冗長度の低減及び時間的サブ・サンプリングに よる時間的冗長度の低減に関して提供される。図面の簡単な説明 本発明は例示によって示され、付随する数値に限定されるものではなく、類似 の参照は類似のエレメントを示す。 図1a−1cは、ビデオ・イメージを圧縮/圧縮解除するために用いられる従 来技術のコード化/復号化装置を示す。 図2はイメージを2×2画素ブロックから成るベクトルに分割する従来技術の 体系を示す。 図3は従来技術のCODEC(コード化/デコード)の機能ブロック図を示す 。 図4は、無変化のブロックを識別するプリ・プロセシング技術を示す。 図5a及び5bは、望ましい実施例で用いられるサブ・サンプリングの例を示 す。 図6は望ましい実施例によって提供される改良したベクトルの量子化を用いて 作成されるベクトル量子化ツリーを示す。 図7及び図8は、図6に示すツリーを作成するために用いられる改良したベク トルの量子化処理を示す。 図9a及び図9bは、「ゼロ」セルを除去し、残りのノードで反復することに よって、ノードがベクトル・ツリー内でどのように更新されるかを示す。 図10は、望ましい実施例で用いられるビット・ストリームを示す。 図11−16は、図10を参照して論じられるビット・ストリームに含まれる データの詳細図を示す。詳細な説明 本発明はベクトル量子化の改良した方法に関する。以下の説明において、説明 の目的で、本発明の完全な理解を与えるために、特定タイプのデータ、アプリケ ーション、データ構造、ポインタ、インデックス及びフォーマットが述べられて いる。しかし当業者には、本発明がこれらの詳細事項なしに実行できることは明 白であろう。また、本発明を不必要にあいまいにしないため、既知の構造やデー タはブロック図の形で示されている。 本発明の望ましい実施例は、図3に300として示される従来技術のCODE Cと類似の態様で構成される。これらはディスプレイ、プロセッサ及び様々な静 的及び動的記憶装置を含む汎用のプログラムされたコンピュータ・システムで実 施できる。これはまた、特別目的のアプリケーション用に設計された特別目的の ビデオ用コード化又はデコード装置を含むことができる。もちろん、当業者には 、望ましい実施例の方法と装置は、アプリケーションの要件に適合するように独 立した論理装置、ファームウエア、アプリケーション固有の集積回路(ASIC ) 又はプログラム論理アレイで実施できることが分かるであろう。 望ましい実施例は「C」プログラム言語のようなハイレベル・プログラム言語 で実施され、汎用コンピュータ・システムで動作する。望ましい実施例を実施す るために書かれたルーチンは実行可能なオブジェクト・コードにコンパイル及び アセンブルされ、ランタイムにシステムのプロセッサにロードされ、実行される 。 本発明の議論は、ビデオ情報を参照して具体的に記載されているが、ここで論 じた技術と装置は、ベクトル量子化を利用したオーディオの分野等他の分野にも 同様の適応性があり、この出願のビデオ情報の議論が本発明を限定しているとみ るべきでない。 プリ・プロセミング CODECから出力されるデータ・レートは、プリ・プロセッサ320を通し てベクトル量子化処理に至る情報量を制御する。これは全体的及び局所的の2つ のレベルで行われる。空間的解像度に対する全体的変化は、イメージの帯域幅を 変える低域入力フィルタを入力イメージに対して適用することによって行われる 。このフィルタの通過帯域幅は必要なデータ・レートにおける誤差で変わる。誤 差が少なくなるにつれて、入力フィルタの帯域幅は増加し、CODECにより多 くの情報が到着できるようにする。逆に所望のデータ・レートでの誤差が増加す ると、入力フィルタの帯域幅が減少し、CODECに到達する情報を制限する。 時間的解像度に対する全体的変化は、現在と前のフレームの間の差を判定するこ とによって行われる。もし変化が閾値以下なら、現在のフレームはスキップされ る。閾値はデータ・レート誤差から決定される。時間的帯域幅が減少する別の全 体的メカニズムは2つのフレームの間の誤差の定義を拡張することによって、誤 差計算の前にフレームの変形を可能にすることである。このような変形はパン( pan)やズームの保償を含むが、それらに限定されるものではない。 ベクトル量子化処理に到達することを許される情報量の局所的制御は、空間的 サブ・サンプリングと時間的ブロック(又はより一般的には動きが保償されたブ ロックの局所的決定)を含む。望ましい実施例のシステムは、図3の330で示 す改良したベクトル量子化装置を実施し、コード化されるイメージのような非常 に大きなベクトルのセットから代表的イメージ・ベクトルの小さなセット、コー ドブックという、を生成するのに非常に効率的である。このようなベクトル量子 化装置によって生成されたコードブックからデコーダ351によって再構築され たイメージは、ある基準に関して元のものに近い。全体的圧縮/圧縮解除体系の 性能は望ましい実施例において、ベクトル量子化装置の前にプリ・プロセッサ3 20によってビット・ストリームの内容を制御することにより更に向上する。こ のプリ・プロセシングはベクトル量子化装置330に対して透明である。プリ・ プロセッサ320は、画質の損失を最小にしてイメージをコード化するのに用い られる情報量を実質的に低減する。望ましい実施例ではタグを用いて丁度その時 に変わらないベクトルをコード化する代わりに明示する。ある閾値に従って変わ らないため、「無変化」のブロックとして知られている。望ましい実施例では、 ブロックは更に空間的サブ・サンプリングを用いて処理され、より良好な圧縮を 達成する。更にプリ・プロセッサ320は、スピードを増大し又は画質を向上さ せるため、赤、緑、青(RGB)表すコード化から輝度とクロミナンス(YUV )を用いて表すコード化への変換等を行って、イメージ空間の特性を変えること ができる。 無変化ブロック 望ましい実施例において、イメージ・ベクトルをコード化するか「無変化」ブ ロックのタグを送るかを決めるために一連の決定が行われる。「無変化」ブロッ クの場合、そのイメージ・ブロックに関してインデックスは送られる必要がない ので、圧縮は殆ど常に向上する。コードブックを作成し、そのインデックスを見 つけるイメージ・ベクトルが少ないので、コード化速度は向上する。前のフレー ムからのデコードされたブロックの上にスクリーン上で新しいブロックを配置し なくて良いため、デコード時間も向上する。従って、コードブックのエレメント を参照するインデックスを送る代わりに、プリ・プロセッサ320によって無変 化タグが送られ、同一位置で、前のフレームのブロックからそのブロックが実質 的に変わっていないことを示してベクトル量子化装置330を素通りする。これ は図4を参照して示され、論じられる。処理400はステップ401で始まり、 ステップ402でフレームNの次のブロックを取り出す。ステップ403でフレ ームNのこのイメージ・ブロックは次にプリ・プロセッサ320によって、デコ ードされたフレームN−1からの同一位置のイメージ・ブロックと比較される( デコードされたフレームN−1はエンコーダのビット・ストリームの出力から抽 出されデコードされる。)。もしステップ404で検出されるように、2つのブ ロック間の誤差が閾値μより大きいと、ステップ406でそのブロックは変更さ れずにベクトル量子化装置330にコード化のために渡される。それ以外の場合 、そのブロックはVQ330に対して「無変化」のタグが付けられ、ステップ4 05に示すようにベクトル量子化は行われない。別の実施例では、無変化ブロッ クは前のフレームのブロックのうち、どれがサーチ領域内で良好な一致がとれた かを示す画素オフセットを持つことができることに留意されたい。 所望のデータ・レート及び画質が非常に高い場合、無変化のブロックとしてμ をパスするイメージ・ブロックは、無変化ブロックとしてタグを付ける前に、よ り厳しいテストをされる。ブロックが無変化のブロック、ブロックの「エージ( 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)に順応して初期値から変わり得る。望ましい実 施例に用いられるアプローチは、無変化の閾値及びμを次のように計算すること である。 改善されたレート制御メカニズム345の議論で以下に詳しく論ぜられるlong_t erm_error(長時間誤差)は、期間中の必要なデータ・レートを達成するベンチ マークを提供する。もしlong_term_errorが、データ・レートは高すぎることを 示す と、無変化のブロックはより頻繁にフラグが付けられる。逆に、もしlong_term_ errorが、生成されたデータ・レートは所望値より低いということを示すと、無 変化のブロックはそれほど頻繁にフラグを付けられない。瞬間的に反応する代わ りにμはβによってバッファされ、データ・レートを変える反応時間の時定数( 又は遅れ)を効果的に制御する。これは振動的データ・レートを防止し、完全に データ・レートで駆動されるのでなく、多くのビットを生成する多くのバリエー ションを有する複雑なイメージと、少ないビットを生成する少ないバリエーショ ンを有するあまり複雑でないイメージに対する公差を許す。所与のシーケンスに おける達成可能な画質幅があるため、無変化の閾値μはframe_mseを考慮してシ ーケンスの直前にコード化された部分の画質を維持する。frame_mseはレート制 御345によっても用いられ、これについてはレート制御の章で詳細に論ずる。 空間的サブ・サンプリング 望ましい実施例においてプリ・プロセッサ320によって行われる別の技術は 空間的サブ・サンプリングである。サブ・サンプリングはベクトル量子化装置3 30によってコード化される情報量を低減するのに用いられる。これによってい くらかの空間的画質の犠牲で高速のコード化と高度の圧縮が得られる。主なチャ レンジは高画質、高圧縮を維持することである。望ましい実施例で取り得る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)サブ・サンプリングされたブロック51 6(ブロック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つのlの代わりに4つのγで表され、γはブロック518の加重 平 均であることに留意されたい。別の実施例では、既存の画素の間の画素は良好な 結果を得るため、相隣れる画素から補完することができる。しかしこれはデコー ダの速度に有害な効果を与え得る。 「円滑性(smoothness)」が判定される方法は、もし1つのブロックがサブ・ サンプリングされる場合、どの程度2乗誤差が生ずるかに依存している。サブ・ サンプリング動作は次の誤差計算に示されるようにフィルタリングも含む。2乗 誤差εは図5bに示す560(画素a0−a3からなる)のような2×2ブロック のそれぞれとそれを囲む4×4ブロック555(画素a0−a3及びb0−b11か らなる)の平均γとの間で計算される。 ブロック518から計算されたγは2×2ブロック521の画素1の値の代わり に用いられる。もし560のような2×2ブロックがサブ・サンプリングされる と、それを囲む4×4γ(ブロック555)の平均が4つの個々の画素値a0− a3の代わりに送られる。平均γはブロッキネス(blockiness)を低減するのに 役立つ。従って図5を参照して示されるように、値γは、ブロック530の元の 4つの画素値a0−a3の代わりに送られる。次に2乗誤差εは加重係数κによっ てスケーリングされ、人間のシステム輝度に対する感度に近似される(MSEの 代わりにSNRをおおよその近似として用いることもできる)。従って、サブ・ サンプリング誤差が同じであると仮定して高輝度の領域は容易にサブサンプリン グすることができる。4つのスケーリングされた誤差は加算されて560のよう な各2×2ブロックに関連する誤差を生成する。 j:画素ajの量子化された輝度値 サブ・サンプリングのための候補として4×4ブロック500を順位づけるた め、4×4 500の角に配置された4つの2×2ブロックからのサブ・サンプ リング誤差εのそれぞれが加算される。レート制御が、所望のフレーム・サイズ に合うように十分なブロックがサブ・サンプリングされたことを判定するまで、 ブロックは最小の誤差ブロックから最大の誤差ブロックに向けてサブ・サンプリ ングのために選択される。別の実施例では、イメージの端がサブ・サンプリング されるのを防止するため、当業者には既知の端検出方法によってイメージの端が 抽出される。サブ・サンプリングの決定をサブ・サンプリング誤差に依存するこ とは、サブ・サンプリング及び端を越えるアップ・サンプリングが最大誤差を生 ずる傾向があるため、多くの端を保護する傾向がある。しかし、端検出で見つか った端をはっきり保護することは、ある場合には有用である。 純粋に誤差に基づいたサブ・サンプリングは、多くの場合うまく動作するがサ ブ・サンプリングされたブロックが必ずしも互いに隣接して発生しないイメージ がある。従って、サブ・サンプリングされないブロックの隣のサブ・サンプリン グされたブロックの出現は、可視的に見ている人を悩ます閃光効果を起こし得る 。いくつかのブロックはサブ・サンプリングされ、その他ブロックはサブ・サン プリングされないのでブロックが動いているように見える。第2に、もしサブ・ サンプリングされたブロックと標準的にコード化されたブロックが、空間的に混 在すると、プリ・プロセッサ320によって識別されるブロック・ヘッダによっ てブロック・タイプの変化を表さねばならないので、かなりの帯域幅(ビットに おける)が消費される(ブロック・ヘッダについては以下にビット・ストリーム のシンタックスを参照して詳しく論ずる)。このようなイメージにおいては、別 の実施例のコード化体系において、ゾーンを用いて誤差のみに基づくサブ・サン プリングする前述の2つの欠点を低減できる。イメージはプリ・プロセッサ32 0によって32の矩形ゾーン(水平8、垂直4)に分割され、それぞれは自らに 関連した重みを有する。明らかに、ゾーンの数とそのサイズは全く多様である。 1実施例では、中心のゾーンをサブ・サンプリングされにくいように境界ゾーン のイメージの重み付けが行われる。このことは、カメラは大旨対象物の中心に向 けられるため、見る人は端にあまり注意を払っていないと云うことを前提として いる。別の実施例では速い動きを使って、サブ・サンプリングの産物を隠してい る。もし当業者に既知の運動予測アルゴリズムによって、動きが速くないと判定 され ると、動きの領域をサブ・サンプリングすることを難しくすることは有用である 。このことは、見ている人は運動物体を追跡し、動きが速くなければサブ・サン プリングの産物に気付くということを前提としている。 望ましい実施例の第2のアプローチにおいて、ゾーンはゾーンの誤差、平均2 各ゾーンはその位置に従って重み付けされ、ゾーン誤差ZEを生成する。 サブ・サンプリングのためにタグを付けられたブロックはゾーン誤差に関して最 良ゾーンから最悪ゾーンの順にサブ・サンプリングされる。これはレート制御3 45によって要求されたサブ・サンプリングの数に達するまで行われる。改良さ れたデコーダ351は、入力ビット・ストリーム350から特定の基準で(画質 設定等)どのゾーンがサブ・サンプリングされたかを判定でき、ブロッキネス( blockiness)を柔らげるためにこれらのゾーンをポストフィルタ(処理375) にかけるかどうか決める。サブ・サンプリングは帯状であるので、デコーダ35 1はイメージ全体をポストフィルタにかけないで、どこに努力を集中すればよい かを知っている。この情報をデコーダに送るのにオーバーヘッドは最小であり、 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は次 のように計算される。 fh=ai・画素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)値からその再構 築が計算的に安価な単純な変換を通して計算できる。例えば乗算の代わりにビッ ト・シフトで実現できる次の変換である。 ベクトル量子化装置330においてYUVを用いてコードブックの生成を行うこ とは、成分間のきつい動的範囲と相対的非相関性によってクラスタリングを向上 させる。従って画質の向上は顕著である。コード化速度が重要である状況では、 クロミナンス(U.V)値は2又は4でサブ・サンプリングされ、ベクトル量子 化ステップ330において重み付け(例えばシフトで)られる。 望ましい実施例において、輝度及びクロミナンスは、入力イメージのベクトル のサブ・サンプリング又はフィルタリングのようなRGBの事前処理の後、プリ ・プロセッサ320によってベクトル量子化装置330に送られる。別の実施例 では、YUV変換は最初に行われ、サブ・サンプリングのような事前処理はYU V変換の後に行われる。如何なるレートにおいても、結果の事前処理データは改 良VQ330にYUVのフォーマットで送られる。 改良されたベクトル量子化装置 ベクトル量子化(VQ)はブロック又はデータのベクトルを表すのに効率的方 法である。一連のデータ、画素、オーディオ・サンプル又はセンサー・データは しばしば各データを独立して取り扱うことによって量子化される。これをスカラ ー量子化という。一方、VQはデータのブロック又はベクトルを量子化する。主 なVQの問題は、データ・セットの許容し得る近似であり、コードブックと呼ば れる代表的ベクトルのセットを見つける必要があることである。許容性は通常元 のデータ・セットと再生されたデータ・セットの間の平均2乗誤差を用いて測定 される。コードブック生成の一般的技術はLinde,Y、BuSO,A及びGray,Rに よる「An Algorithm for Vector Quantizer Design(ベクトル量子化装置設計の アルゴリズム)」COM−28IEEE Transactions on Communicationsl ( 1980年1月)(LGBアルゴリズムとして知られている)に記載されている 。コードブックを生成するためにLGBアルゴリズムを採用した技術は、コード ブックの初期予測を生成するためイメージからの入力ベクトルをサンプリングす ることで始まる。次に各入力ベクトルはコードブックの項目と比較され、最も近 いコードブックの項目と関連させられる。コードブックの項目は各コードブック の項目と関連する平均ベクトルを計算し、現在の項目を平均ベクトルで置き換え ることによって繰り返し更新される。次にコードブックが前回より大幅に向上し たかどうかの判定が行われ、もし向上していなければ、入力ベクトルをコードブ ックの項目と比較し、再関連させる等によって処理をくり返す。このコードブッ クの生成は大きなイメージ・シーケンスすなわちトレーニング・セットに対して 行われるか、又はコードブックは各フレームに対して再生される。更に、この技 術は効率向上のため、特定の従来技術のベクトル量子化システムに用いられるバ イナリ・ツリーに適用できる。 改良ベクトル量子化装置330はツリー構造に編成されている。特定の従来技 術の体系で用いられているバイナリ・ツリーではなく図6に示すようにツリーの ルートでN個の子供ノード610が初期に生成される。これはいろいろなテクニ ックを用いて行うことができる。例えば、1実施例では、セグメンター(segmen ter)を用いてイメージから代表的セントロイド(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からのノー ドと関連するベクトルから新しいセントロイドが計算され、これはステップ80 3からの全てのノードに対して行われる。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つのフレームから次のフレームに対 してツリーの最上層を再使用することによって得られる。この再使用はCODE Cで高いレベルからオーバーライドされる。例えば、場面変更の場合、これはC ODECで検出されるのであるが、ルート・ノードが再使用されるよりもむしろ 再生された方が高画質が達成できる。 第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に92 0のツリーを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圧縮を与える。もしイメージが1 6個の固定した初期領域に分割され、それ以上領域の分割がなければ、コード化 計算時間は大幅に短縮される。このテクニックは特に低画質、高圧縮、高速コー ド化モードに適応する。イメージの小片に対して、多くの小さなコードブックを 用いることとイメージ全体に対して1つの256項目のコードブックを用いるこ ととの間の妥協は、画質がそれ以上悪くならなければ画質を維持し、もっと多く の圧縮を得るのに効果的である。このような妥協では、非常に均一でわずかなコ ードブック・ベクトルしか必要としないイメージの部分にのみ小さなコードブッ クが用いられ、正規の256項目のコードブックは残りのイメージに用いられる 。もし小さなコードブックに関連するイメージの部分が矩形であると考えられれ ば、小さなコードブックにスイッチするとき、デコーダに知らせるのに殆どオー バーヘッドを要せず、小さなインデックス(16項目のコードブックには4ビッ ト又は64項目のコードブックには6ビット)となる。各コードブックに関連す る領域が矩形であると考えられなければ、類似の画素を1つの領域にグループ化 する当業者に知られた区画化テクニックで画質を向上できる。 レート制御 レート制御345は圧縮された素材が限定された帯域幅チャネルでデコードさ れると考えられるとき、改良ビデオ圧縮システムの重要なエレメントである。同 期体系又はネットワーク又は電話線においてNフレーム/秒を維持するため、デ コーダ351は1/N秒間に限定された帯域幅チャネルから1フレームのデータ を読み、情報をデコードし、イメージをスクリーン上に表示しなければならない 。レート制御345は最大フレーム・サイズを、ある数(アプリケーションによ って異なる)以下に維持し、限定された帯域幅チャネルからデータを読むのに要 する時間を短縮しようとする。これは2つのステップで行われる。すなわち、( 1)データ・レートの観点から望ましいデータ・レートは何かを決定する。(2 )画質の要件(ユーザによって定義されるか又はその他の方法で定義される)と 共にこの望ましいフレーム・サイズを用いてコード化処理のパラメータを制御す る。 レート制御体系は、望ましいフレーム・サイズが何であるかを過去のパフォー マンスと望ましいデータ・レートに基づいて決定する。target_frame_length( 目標フレーム長)は次のように計算される。 現在のフレームNに対するdesired_frame_length(望ましいフレーム長)は、目 標フレーム長から誤差項frame_errorを引いたものに等しく、あるフレーム数、 例えばビデオ・データの1秒分の、平均である。 desired_frame_length=target_frame_1ength+frame_error 許容されるオーバーシュート又はアンダーシュートであるframe_errorはIIR (無限インパルス応答)フィルタとして帰納的に平均されることに留意されたい 。これはまた、FIR(有限インパルス応答)フィルタとして別の実施例で実施 できる。αの値は、どれ位速く現在のフレーム誤差(target_frame_length_avg_ frame_length)が長期フレーム誤差に応答させるかに影響する。現在の誤差はta rget_frame_lengthといくつかのフレーム(例えば1秒分)の平均フレーム長(a vg frame length)として定義される。このレート制御体系は、望ましいデータ ・レートを超えない過去1秒の平均データ・レートを維持する。フレーム・サイ ズのばらつきはフレーム単位で起こるが、これらのばらつきは平均効果で低下す る。これらの関係は次のように決まる。 desired_frame_lengthがNに対して決まった後、それはコード化パラメータ( ncthreshfactor及びedge_mse)に影響を与えるために用いられ、時間的フイルタ リング及び空間的サブ・サンプリングが用いられる実施例において、そのパラメ ータはどれ位時間的処理と空間的サブ・サンプリングを適用するかを制御する。 これらのコード化パラメータはユーザによって決められる空間的、時間的画質の 好みによってセットされるが、それらは、システムがどの程度データ・レートの 要求を維持しているかに従って画質設定に関する変動が許される。短時間にこれ らのパラメータを大きく変動させることを許すよりも、それらは次のように計算 される長期誤差を追跡する。 (long_term_error)n=(1-β)(long_term_error)n-1+ β(target_frame_length)-(avg_frame_length)n 従って、lon_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×4 NC)、4×4変化(4×4C)、サブ・サンプリングされた(4×4SS)、 混合ブロックの異なった組み合わせ及び行画素ブロックは有用なブロック・タイ プの例である。デコーダ351は、各イメージ・ブロックに対してどのコードブ ック・ヘッダを用いるか及びアップ・サンプリングを行うかどうかを知って、イ メージを再構築することができる。ビット・ストリーム・シンタックスについて 以下に論ずる。 シーケンス・ヘッダ1001はシーケンス全体に対する情報を伝達する。これ らにはフレームの合計数、シーケンスがコードされたコーダのバージョン及びイ メージ・サイズが含まれる。シーケンスは例えば動画全体を含む。単一のシーケ ンス・ヘッダ1001は一連のイメージに先行し、シーケンスについての情報を 指定する。シーケンス・ヘッダ1001は殆どどんな長さでも良く、その長さを 1つのフィールドに持つ。シーケンス・ヘッダに現在定義されているいくつかの フィールドを図11に示す。シーケンス・ヘッダ1001はシーケンス・ヘッダ ID1101を含み、それによってデコーダがシーケンス・ヘッダであることを 識別することができる。これはユーザに対してランダム・アクセスの再生を可能 にするアプリケーションには有用である。更にシーケンス・ヘッダ1001は、 シーケンス・ヘッダ1001の長さを指定する長さフィールド1102を含む。 次のフィールドはシーケンス内のフレーム数を指定するフレーム数フィールド1 103である。これは整数値で符号なしの長語として格納され、シーケンスの長 さが232個のフレームまで可能にしている。シーケンス・ヘッダの次のフィール ド1104は、現在予備として確保されており、次の2つのフィールド、110 5及び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×2 Cブロックが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×4 SSブロックを参照するインデックス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の特定の実施例を参照して説明された。しかし、 添付請求の範囲に述べたように、本発明の広い精神と範囲から離れることなく様 々な修正や変更がなされ得ることは明らかであろう。従って、明細書及び図面は 、例示と考えるべきであり、限定と考えるべきでない。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI H04N 11/04 Z 9185−5C (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CZ,DE,DK,ES,FI,GB,H U,JP,KP,KR,KZ,LK,LU,MG,MN ,MW,NL,NO,NZ,PL,PT,RO,RU, SD,SE,SK,UA,VN (72)発明者 ワング,キャサリン・シューウェイ アメリカ合衆国 95129 カリフォルニア 州・サン ホゼ・ウィルミントン アヴェ ニュ・1072 (72)発明者 ウー,シージュン アメリカ合衆国 95014 カリフォルニア 州・カッパチーノ・ローズウッド ロー ド・1065エイ

Claims (1)

  1. 【特許請求の範囲】 1. a. 空間的冗長度を除去し、上記空間的冗長度から解放された第2のビ ット・ストリームを生成するために、イメージを表す第1のビット・ストリーム を事前処理するステップと、 b. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するために、上記第2のビット・ストリームに対してベ クトルの量子化を適用するステップと、 c. 上記コードブックにおけるベース・アドレスに対する参照と上記ベース・ アドレスからのオフセット値を含む第4のビット・ストリームを生成するため、 上記第3のビット・ストリームに対してインデックス・パッキングを行うステッ プと、 を含むイメージをコード化する方法。 2. 上記事前処理のステップが、上記イメージ内のベクトルをサブ・サンプリ ングして上記第2のビット・ストリームを生成するステップを含む請求項1に記 載のイメージをコード化する方法。 3. 上記サブ・サンプリングは、上記イメージ内のサブ・サンプリングされた ベクトルの位置に従って加重される請求項2に記載のイメージをコード化する方 法。 4. 上記イメージの中央領域は、サブ・サンプリングに関して上記イメージの 境界領域よりも少なく加重される請求項3に記載のイメージをコード化する方法 。 5. 上記サブ・サンプリングは、上記イメージ内のサブ・サンプリングされた ベクトルの輝度に従って加重される請求項2に記載のイメージをコード化する方 法。 6. 上記加重は、上記イメージ内のサブ・サンプリングされたベクトルの輝度 が増加するにつれて増加する請求項5に記載のイメージをコード化する方法。 7. 上記サブ・サンプリングは、第1の閾値より小さい端の遷移を有するベク トルに対して行われる請求項2に記載のイメージをコード化する方法。 8. 上記第1の閾値は、レート制御メカニズムによって生成される請求項5に 記載のイメージをコード化する方法。 9. 上記第1の閾値は、レート制御メカニズムによって生成される請求項6に 記載のイメージをコード化する方法。 10. 上記第1の閾値は、レート制御メカニズムによって生成される請求項7 に記載のイメージをコード化する方法。 11. 上記イメージ内でサブ・サンプリングのために選択されるベクトルの数 は、ベクトルの第1の数に限定されるように限定するステップを更に含む請求項 2に記載のイメージをコード化する方法。 12. ベクトルの上記第1の数は、ゼロから上記イメージ内のベクトルの数の 範囲である請求項11に記載のイメージをコード化する方法。 13. a. 時間的冗長度を除去し、上記時間的冗長度から解放された第2の ビット・ストリームを生成するために、イメージを表す第1のビット・ストリー ムを事前処理するステップと、 b. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するために、上記第2のビット・ストリームに対してベ クトルの量子化を適用するステップと、 c. 上記コードブックにおけるベース・アドレスに対する参照と上記ベース・ アドレスからのオフセット値を含む第4のビット・ストリームを生成するため、 上記第3のビット・ストリームに対してインデックス・パッキングを行うステッ プと、 を含むイメージをコード化する方法。 14. 上記事前処理のステップは上記第1の位置で、上記イメージの第1のベ クトルと前のイメージの第2のベクトル間の差が、第1の閾値より小さいかどう かを判定し、上記第1のベクトルに無変化ベクトルとしてタグを付け、上記タグ 付けは、上記ベクトルの量子化が第1のベクトルに対して行われるべきでないこ とを示すステップを含む請求項13に記載のイメージをコード化する方法。 15. 上記事前処理のステップは、上記イメージの上記第1のベクトルが、第 1の時間間隔に対して無変化ブロックとしてタグが付けられているかどうか判定 し、もしそうなら、上記差が上記第1の閾値より小さい第2の閾値より小さいか どうか判定し、もしそうなら、上記第1のベクトルに無変化ブロックとしてタグ を付けるステップを更に含む請求項14に記載のイメージをコード化する方法。 16. 上記第1の時間間隔は、上記第1のベクトルが無変化ブロックとしてタ グが付けられているフレームの数を含む請求項15に記載のイメージをコード化 する方法。 17. 上記時間間隔は、上記第1のベクトルに関連する第1のエージに基づい て決定され、上記第1のエージは、疑似ランダムに生成された初期値を有する請 求項15に記載のイメージをコード化する方法。 18. a. 空間的冗長度を除去するために、複数のフィルタリング方法のう ち、どのフィルタリング方法が上記イメージを表しているかを決定するステップ と、 b. 空間的冗長度から解放された第2のビット・ストリームを生成するため、 上記フィルタリング方法を用いて上記第1のビット・ストリームを事前処理する ステップと、 c. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するため、上記第2のビット・ストリームに対してベク トルの量子化を適用するステップと、 d. 上記コードブックにおけるベース・アドレスに対する参照と上記ベース・ アドレスからのオフセット値を含む第4のビット・ストリームを生成するため、 上記第3のビット・ストリームにインデックス・パッキングを行うステップと、 を含むイメージをコード化する方法。 19. 上記フィルタリング方法の第1のセットが、水平のフィルタリング方法 を含む請求項18に記載のイメージをコード化する方法。 20. 上記フィルタリング方法の第1のセットが、垂直のフィルタリング方法 を含む請求項18に記載のイメージをコード化する方法。 21. 上記フィルタリング方法の第1のセットが、上向き対角線のフィルタリ ング方法を含む請求項18に記載のイメージをコード化する方法。 22. 上記フィルタリング方法の第1のセットが、下向き対角線のフィルタリ ング方法を含む請求項18に記載のイメージをコード化する方法。 23. a. 空間的冗長度を除去し、上記空間的冗長度から解放された第2の ビット・ストリームを生成するために、イメージを表す第1のビット・ストリー ムを事前処理する手段と、 b. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するために、上記第2のビット・ストリームに対してベ クトルの量子化を適用する手段と、 c. 上記コードブックにおけるベース・アドレスに対する参照と上記ベース・ アドレスからのオフセット値を含む第4のビット・ストリームを生成するため、 上記第3のビット・ストリームに対してインデックス・パッキングを行う手段と 、を含むイメージをコード化する装置。 24. a. 時間的冗長度を除去し、上記時間的冗長度から解放された第2の ビット・ストリームを生成するために、イメージを表す第1のビット・ストリー ムを事前処理する手段と、 b. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するために、上記第2のビット・ストリームに対してベ クトルの量子化を適用する手段と、 c. 上記コードブックにおけるベース・アドレスに対する参照と上記ベース・ アドレスからのオフセット値を含む第4のビット・ストリームを生成するため、 上記第3のビット・ストリームに対してインデックス・パッキングを行う手段と 、を含むイメージをコード化する装置。 25. a. 空間的冗長度を除去するため、上記イメージを表す第1のビット ・ストリームのベクトルと比較した最小絶対誤差を生ずる第1のフィルタのセッ トの中のフィルタを決定する手段と、 b. 空間的冗長度から解放された第2のビット・ストリームを生成するため、 上記フィルタを用いて上記第1のビット・ストリームを事前処理する手段と、 c. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するため、上記第2のビット・ストリームに対してベク トルの量子化を適用する手段と、 d. 上記コードブックのベース・アドレスに対する参照と上記ベース・アドレ スからのオフセット値を含む第4のビット・ストリームを生成するため、上記第 3のビット・ストリームにインデックス・パッキングを行う手段と、 を含むイメージをコード化する装置。 26. a. 前のコードブックから現在のコードブックを作成する手段であっ て、 i. 前のコードブックで更新されるべき第1のコードブック項目に対する参 照を検出する手段と、 ii. 受け取ったコードブック項目から上記前のコードブックの上記第1の コードブック項目を更新し、上記前のコードブックを現在のコードブックに変換 する手段と、 b. 上記現在のコードブックの項目を参照する上記コードブック・インデック スを受け取る手段と、 c. 上記コードブック・インデックスを受け取る手段によって受け取られた上 記コードブック・インデックスに基づいて、上記現在のコードブックから項目を 検索する手段と、 d. 上記コードブック・インデックスが、サブ・サンプリングされたベクトル を参照しているかどうか判定する手段と、 e. 上記サブ・サンプリングを判定する手段によって、サブ・サンプリングさ れると判定された上記ベクトルに対する上記検索されたコードブック項目をアッ プ・サンプリングする手段と、 f. 上記検索する手段によって検索されたコードブック項目に含まれるベクト ルのそれぞれを表示装置上に表示する手段と、 を含むイメージをデコードする装置。 27. 上記前のコードブックの上記第1のコードブック項目に対する参照を検 出する手段が、前のコードブックの上記第1のコードブック項目を参照するビッ トマップを検出する手段を含む請求項26に記載のイメージをデコードする装置 。 28. コードブック項目をアップ・サンプリングする上記手段が、コードブッ ク項目から画素を模写する手段を含む請求項26に記載のイメージをデコードす る装置。 29. コードブック項目をアップ・サンプリングする上記手段が、コードブッ ク項目から画素を補完する手段を含む請求項26に記載のイメージをデコードす る装置。 30. 上記現在のコードブックから項目を検索する上記手段が、上記インデッ クスのうちの1つを用いて上記現在のコードブックを参照する手段を含む請求項 26に記載のイメージをデコードする装置。 31. 上記インデックスを用いて上記現在のコードブックを参照する手段が、 上記1つのインデックスをベース・アドレスに加えて実際のインデックスを計算 し、上記実際のインデックスを用いて上記現在のコードブックの上記項目を参照 する手段を含む請求項30に記載のイメージをデコードする装置。 32. a. 時間的冗長度を除去し、上記時間的冗長度から解放された第2の ビット・ストリームを生成するために、イメージを表す第1のビット・ストリー ムを事前処理する手段と、 b. コードブックと上記コードブックを参照するインデックスを含む第3のビ ット・ストリームを作成するために、上記第2のビット・ストリームに対してベ クトルの量子化を適用する手段と、 を含むイメージをコード化する装置。 33. a. コード化手段から送られたコードブックから現在のコードブック を作成する手段と、 b. 現在のコードブックの項目を参照するコードブック・インデックスを受け 取る手段と、 c. 上記コードブックを受け取る手段によって受け取られた上記コードブック ・インデックスに基づいて、上記現在のコードブックから項目を検索する手段と 、 d. 上記コードブック・インデックスが、サブ・サンプリングされたベクトル を参照しているかどうか判定する手段と、 e. 上記サブ・サンプリング判定手段によって、サブ・サンプリングされると 判定された上記ベクトルに対する上記検索されたコードブック項目をアップ・サ ンプリングする手段と、 を含むイメージをデコードする装置。 34. 上記現在のコードブックから検索された項目に基づいたイメージを含む ベクトルを表示する手段を更に含む請求項33に記載のイメージをデコードする 装置。 35. 上記アップ・サンプリングする手段が、上記現在のコードブックから検 索された上記項目から画素値を補完する手段を含む請求項33に記載のイメージ をデコードする装置。 36. 上記アップ・サンプリングする手段が、上記現在のコードブックから検 索された上記項目から画素値を模写する手段を含む請求項33に記載のイメージ をデコードする装置。 37. 上記ベクトルは、輝度とクロミナンス情報を用いて表される請求項33 に記載のイメージをデコードする装置。 38. 上記ベクトルは、輝度のブロックと単一のクロミナンス値を用いて表さ れる請求項33に記載のイメージをデコードする装置。 39. a. 前のコードブックから現在のコードブックを作成する手段であっ て、 i. 前のコードブックで更新されるべき第1のコードブック項目に対する参 照を検出する手段と、 ii. 受け取ったコードブック項目から上記前のコードブックの上記第1の コードブック項目を更新し、上記前のコードブックを現在のコードブックに変換 する手段と、 b. 上記現在のコードブックの項目を参照する上記コードブック・インデック スを受け取る手段と、 c. 上記コードブック・インデックスを受け取る手段によって受け取られた上 記コードブック・インデックスに基づいて、上記現在のコードブックから項目を 検索する手段と、 を含むイメージをデコードする装置。 40. 現在のコードブックを決定するため、前のイメージによって用いられた 前のコードブック全体に対する参照を検出する手段を更に含む請求項39に記載 のイメージをデコードする装置。 41. 現在のコードブックを決定するため、前のイメージによって用いられた 前のコードブックの区画に対する参照を検出する手段を更に含む請求項39に記 載のイメージをデコードする装置。 42. 上記区画は、上記イメージのゾーンを含む請求項41に記載のイメージ をデコーダする装置。
JP50716294A 1992-09-01 1993-06-14 改良されたベクトルの量子化のための前処理及び後処理 Expired - Lifetime JP3681386B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/938,942 US5596659A (en) 1992-09-01 1992-09-01 Preprocessing and postprocessing for vector quantization
US07/938,942 1992-09-01
PCT/US1993/005675 WO1994006098A1 (en) 1992-09-01 1993-06-14 Improved preprocessing and postprocessing for vector quantization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003381267A Division JP4264492B2 (ja) 1992-09-01 2003-11-11 イメージをデコードする装置

Publications (2)

Publication Number Publication Date
JPH08502392A true JPH08502392A (ja) 1996-03-12
JP3681386B2 JP3681386B2 (ja) 2005-08-10

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 After (1)

Application Number Title Priority Date Filing Date
JP2003381267A Expired - Lifetime JP4264492B2 (ja) 1992-09-01 2003-11-11 イメージをデコードする装置

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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013192255A (ja) * 2001-12-17 2013-09-26 Microsoft Corp スキップマクロブロックコード化
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251637B1 (en) 1993-09-20 2007-07-31 Fair Isaac Corporation Context vector generation and retrieval
US6173275B1 (en) * 1993-09-20 2001-01-09 Hnc Software, Inc. Representation and retrieval of images using context vectors derived from image information elements
US5805735A (en) * 1995-03-02 1998-09-08 Apple Computer, Inc. Method and apparatus for compression of digitized image data using variable color fidelity
WO1996039682A1 (en) * 1995-06-05 1996-12-12 Apple Computer, Inc. Block classification for accelerating image data compression
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
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
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
US5805228A (en) * 1996-08-09 1998-09-08 U.S. Robotics Access Corp. Video encoder/decoder system
US5831678A (en) * 1996-08-09 1998-11-03 U.S. Robotics Access Corp. Video encoder/decoder system
EP0929975B1 (de) * 1996-10-01 2003-04-09 Infineon Technologies AG Verfahren und anordnung zur vektorquantisierung und zur inversen vektorquantisierung eines digitalisierten bildes
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
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
US7295443B2 (en) 2000-07-06 2007-11-13 Onspec Electronic, Inc. Smartconnect universal flash media card adapters
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
US7599434B2 (en) * 2001-09-26 2009-10-06 Reynolds Jodie L System and method for compressing portions of a media signal using different codecs
WO2003027876A1 (en) 2001-09-26 2003-04-03 Jodie Lynn Reynolds 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
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
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
US7457438B2 (en) 2003-12-23 2008-11-25 Genesis Microchip Inc. Robust camera pan vector estimation using iterative center of mass
US7346109B2 (en) 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7499494B2 (en) 2003-12-23 2009-03-03 Genesis Microchip Inc. Vector selection decision for pixel interpolation
US7480334B2 (en) 2003-12-23 2009-01-20 Genesis Microchip Inc. Temporal motion vector filtering
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
US8160160B2 (en) * 2005-09-09 2012-04-17 Broadcast International, Inc. Bit-rate reduction for multimedia data streams
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
CN102378991B (zh) * 2008-06-23 2014-12-17 辛诺瓦媒体公司 用于编码的数据中的压缩增益的压缩域系统和方法
JP5470819B2 (ja) * 2008-11-28 2014-04-16 富士通株式会社 空間データの出力処理方法、そのプログラム及びデータ処理システム
US20100309975A1 (en) * 2009-06-05 2010-12-09 Apple Inc. Image acquisition and transcoding 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
CN105612736B (zh) 2013-09-30 2018-12-11 惠普发展公司,有限责任合伙企业 在图像的图形元素中编码信息
EP3869506A1 (en) * 2014-03-28 2021-08-25 Samsung Electronics Co., Ltd. Method and device for quantization of linear prediction coefficient and method and device for inverse quantization
CN112927702A (zh) 2014-05-07 2021-06-08 三星电子株式会社 对线性预测系数量化的方法和装置及解量化的方法和装置
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
DE112017002345T5 (de) * 2016-05-06 2019-01-17 Sony Corporation Anzeigesteuereinrichtung und Bildgebungseinrichtung
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
US5194950A (en) * 1988-02-29 1993-03-16 Mitsubishi Denki Kabushiki Kaisha 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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013192255A (ja) * 2001-12-17 2013-09-26 Microsoft Corp スキップマクロブロックコード化
US9088785B2 (en) 2001-12-17 2015-07-21 Microsoft Technology Licensing, Llc Skip macroblock coding
US9538189B2 (en) 2001-12-17 2017-01-03 Microsoft Technology Licensing, Llc Skip macroblock coding
US9774852B2 (en) 2001-12-17 2017-09-26 Microsoft Technology Licensing, Llc Skip macroblock coding
US10368065B2 (en) 2001-12-17 2019-07-30 Microsoft Technology Licensing, Llc Skip macroblock coding
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH08502392A (ja) 改良されたベクトルの量子化のための前処理及び後処理
JPH08502865A (ja) 改良されたベクトルの量子化
EP3354030B1 (en) Methods and apparatuses for encoding and decoding digital images through superpixels
RU2654200C1 (ru) Усовершенствованное кодирование содержимого экрана с улучшенными способами кодирования таблицы палитры и индексной карты
US10616576B2 (en) Error recovery using alternate reference frame
US6459732B2 (en) Chroma-key for efficient and low complexity shape representation of coded arbitrary video objects
US20010019630A1 (en) Method for transferring and displaying compressed images
US5892549A (en) Method and apparatus for compressing a digital signal using vector quantization
US6603814B2 (en) Video compression scheme using wavelets
WO1996002895A9 (en) Method and apparatus for compressing images
JPH03136595A (ja) デイジタル動画像の記憶または伝送に用いるビデオ画像データの処理方法
US20030133512A1 (en) Spatially transcoding a video stream
EP1324618A2 (en) Encoding method and arrangement
KR100574732B1 (ko) 영상코딩장치,영상코딩방법,영상디코딩방법,영상디코딩장치,영상데이터전송방법및기록매체
US8446299B2 (en) Method and device for encoding and decoding of data in unique number values
Gray et al. Image compression and tree-structured vector quantization
JPH0621828A (ja) ベクトル量子化復号化器
Kim et al. Two-stage multirate coding of color images
Saito et al. Self-organizing pattern-matching coding for picture signals
Hwang et al. Progressive image transmission using LOT with two-channel conjugate VQ
Eryurtlu et al. Predictive entropy coding of gain-shape VQ parameters
JPH0445663A (ja) 画像処理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050125

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: 20050419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050518

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: 20090527

Year of fee payment: 4

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20090527

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100527

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100527

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100527

Year of fee payment: 5

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

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

Free format text: PAYMENT UNTIL: 20110527

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110527

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120527

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130527

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130527

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term