JPH08502865A - 改良されたベクトルの量子化 - Google Patents

改良されたベクトルの量子化

Info

Publication number
JPH08502865A
JPH08502865A JP6507421A JP50742194A JPH08502865A JP H08502865 A JPH08502865 A JP H08502865A JP 6507421 A JP6507421 A JP 6507421A JP 50742194 A JP50742194 A JP 50742194A JP H08502865 A JPH08502865 A JP H08502865A
Authority
JP
Japan
Prior art keywords
image
vector
codebook
node
encoding
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.)
Pending
Application number
JP6507421A
Other languages
English (en)
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 JPH08502865A publication Critical patent/JPH08502865A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • H04N7/54Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal the signals being synchronous
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (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「C OMM−36 IEEE Transaction on Communication,957−971(1 988年8月)(「ナスラバディ」)、このようなベクトルの量子化はツリー・ サーチ(tree searched)のベクトル量子化装置の作成を含み、グレイの記事1 6−17頁及びナスラバディの記事75頁に記載されている。 コードブックの生成は反復的であり、計算機的に高価である。従って、フレー ム毎にコードブックを必要とするいくつかの従来技術の方法では、コード化は低 速となる。更に、トレーニング・シーケンスを用いる従来技術のシステムの欠点 は画質であり、トレーニング・シーケンスのイメージと同様でない多くのシーケ ンスは受容できないであろう。全体的性能もまた気がかりである。いくつかの従 来技術のテクニックは法外な処理を要し、リアル・タイムの圧縮を行うことがで きない上に許容可能な圧縮も達成されない。高速のデコード能力に対する需要は 切迫しており、さもなくば、リアル・タイムの再生は不可能である。多くの従来 技術システムは計算機的に高価なデコーダを有する。発明の概要及び目的 本発明の1つの目的は、ベクトル量子化によってコードブックを効率的に生成 し、イメージの空間的、時間的冗長性を低減する装置と方法及び圧縮システムの 帯域幅を節約するためのイメージの関連処理を提供することである。 本発明の他の目的は、一般的従来技術のベクトル量子化技術に関連したエラー を低減するため、イメージを効率的に区画化し、処理する手段を提供することで ある。 本発明の他の目的は、一般的従来技術のベクトル量子化技術に関連した計算を 更に低減する手段を提供することである。 本発明の他の目的は、限定された帯域幅のチャネルでの円滑な再生に適合する ため、圧縮されたシーケンスの結果的データ・レートを効率的及び効果的に制御 する手段を提供することである。 本発明の他の目的は、圧縮されたデータのリアル・タイムのデコーディングを 可能にする単純なデコード構造を提供することである。 本発明のこれらの目的は、ベクトルの量子化(VQ)の改良した方法と装置を 提供し、データの圧縮のためのコードブックを構築することである。1実施例に おいて、データはイメージ・データを含む。コードブック「ツリー」はN個の初 期ノードを設定し、残りのコードブックをバイナリのコードブックとして作成す ることによって初期化される。子供のエントリ項目は最大歪、個体数等のような 様々な属性の決定によって分割される。データから得られたベクトルは子供のノ ードに関連づけられ、次に代表的子供のエントリ項目が再計算される。この分割 /再関連は反復して続けられ、前の子供と現在の子供の誤差の差が閾値より小さ くなるまで行われる。この分割及び再関連は、ツリー内に最大数のターミナル・ ノードが作成されるまで続けられ、合計誤差又は歪が閾値に達するまで又はその 他の基準になるまで行われる。データは次にコードブックとコードブックを参照 するインデックスから成る圧縮されたビット・ストリームとして伝送される。図面の簡単な説明 本発明は例示によって示され、付随する数値に限定されるものではなく、類似 の参照は類似のエレメントを示す。 図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にコード化のために渡される。それ以外の場合 、そのブロックはVQ33Oに対して「無変化」のタグが付けられ、ステップ 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)に順応して初期値から変わり得る。望ましい実施 例に用いられるアプローチは、無変化の閾値及びμを次のように計算することで ある。 改善されたレート制御メカニズム345の議論で以下に詳しく論ぜられるlong-t erm-error(長時間誤差)は、期間中の必要なデータ・レートを達成するベンチ マークを提供する。もしlong-term-errorが、データ・レートは高すぎることを 示すと、無変化のブロックはより頻繁にフラグが付けられる。逆に、もしlong-t erm-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及び1 7−23から成るブロック518)サブ・サンプリングされたブロック516( ブロック518の場合画素1、2、5及び6のブロック)を表す。別の実施例で は、図示のように単一の画素(例えば1、3、9及び11)がサンプリングされ 、より簡単なサブ・サンプリングの体系でサブ・サンプリングされたブロック5 10の代わりに用いられる。もしイメージ全体がこれらの技術の何れかを用いて サブ・サンプリングされると、改良されたベクトル量子化装置330に入るベク トルの数は4のファクタで低減し、よって、最終ビット・ストリームのコードブ ック・インヂックスの数もまた4のファクタで低減する。別の実施例では、サブ ・サンプリングは水平方向にのみ又は垂直方向にのみ或いは、2以上のファクタ で4×4画素以上のブロックを2×2画素ブロックにサンプリングすることによ って各方向に行うこともできる。デコード中、改良されたデコーダ351は、イ ンデックスに先行するヘッダにおいて、510のようなブロックの含まれるイン デックスはサブ・サンプリングされたブロックを指示していることを検出し、5 20のような完全な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か らなる)の平均γとの間で計算される。 ブロック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-mesの値はレート制御によって制御 されるので、所望の圧縮フレーム・サイズが大きければ多くのブロックがサブ・ サンプリングから保護される。 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=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)値からその再構 築が計算的に安価な単純な変換を通して計算できる。例えば乗算の代わりにビッ ト・シフトで実現できる次の変換である。 ベクトル量子化装置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(19 80年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: // このノードに関する平均歪 nsigned 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-ength+frame-error 許容されるオーバーシュート又はアンダーシュートであるframe-errorはIIR (無限インパルス応答)フィルタとして帰納的に平均されることに留意されたい 。これはまた、FIR(有限インパルス応答)フィルタとして別の実施例で実施 できる。αの値は、どれ位速く現在のフレーム誤差(target-frame-length-avg- frame-length)が長期フレーム誤差に応答させるかに影響する。現在の誤差はta rgct-frame-lengthといくつかのフレーム(例えば1秒分)の平均フレーム長(a vgframe 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 従って、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×4 NC)、4×4変化(4×4C)、サブ・サンプリングされた(4×4SS)、 混合ブロックの異なった組み合わせ及び行画素ブロックは有用なブロック・タイ プの例である。デコーダ351は、各イメージ・ブロックに対してどのコードブ ック・ヘッダを用いるか及びアップ・サンプリングを行うかどうかを知って、イ メージを再構築することができる。ビット・ストリーム・シンタックスについて 以下に論ずる。 シーケンス・ヘッダ1001はシーケンス全体に対する情報を伝達する。これ らにはフレームの合計数、シーケンスがコードされたコーダのバージョン及びイ メージ・サイズが含まれる。シーケンスは例えば動画全体を含む。単一のシーケ ンス・ヘッダ1001は一連のイメージに先行し、シーケンスについての情報を 指定する。シーケンス・ヘッダ1001は殆どどんな長さでも良く、その長さを 1つのフィールドに持つ。シーケンス・ヘッダに現在定義されているいくつかの フィールドを図11に示す。シーケンス・ヘッダ1001はシーケンス・ヘッダ ID1101を含み、それによってデコーダがシーケンス・ヘッダであることを 識別することができる。これはユーザに対してランダム・アクセスの再生を可能 にするアプリケーションには有用である。更にシーケンス・ヘッダ1001は、 シーケンス・ヘッダ1001の長さを指定する長さフィールド1102を含む。 次のフィールドはシーケンス内のフレーム数を指定するフレーム数フィールド1 103である。これは整数値で符号なしの長語として格納され、シーケンスの長 さが232個のフレームまで可能にしている。シーケンス・ヘッダの次のフィー ルド1104は、現在予備として確保されており、次の2つのフィールド、11 05及び1106はシーケンス内のイメージの幅と高さを指定する。シーケンス ・ヘッダ1001の最後のフィールドはバージョン・フィールドで、使用される エンコード/デコード装置の現在のバージョンを指定する整数フィールドである 。これは特定の特性を持っていたり、持っていなかったりする新しいシーケンス と古いシーケンスを区別するためのものである。これはシーケンスとエンコード /デコード体系の上位及び下位の互換性を可能にする。シーケンス・ヘッダはま た、イメージのシーケンスを指定するASCII又は文字列を含む(図示せず) 。 図10に戻って、チャンク・ヘッダ1011は、共用コードブックが用いられ ているかどうかの、フレームの次のチャンク(chunk)についての情報を伝達す るチャンク・タイプを持つ。チャンク・ヘッダはフレームのチャンクに対してい くつのコードブックが用いられているかを指定することができる。チャンク・ヘ ッダ1011はフレームの「チャンク」に先行する。望ましい実施例において、 チャンクは1つ又は多くのフレームで場面変化検出アルゴリズムのような装置に よって他の「チャンク」から区別できるものである。別の実施例ではフレームの グループは、レート制御メカニズムのような別の技術を用いて関連づけられる。 2つのコードブック・ヘッダが図10のシーケンス例1000に示されており 、これによって1フレーム当たり2つのコードブックの使用が可能となる。2つ のコードブックを使用する例は、固定コードブック(フレームの「チャンク」に 対して静的)と順応性コードブック(フレーム毎に変わる)の使用である。コー ドブックのタイプとサイズは図13aに示すようにコードブック・ヘッダ101 2と1014に含まれる。図10の1012又は1014のような各コードブッ ク・ヘッダは、コードブック・タイプ・フィールド1301を有し、コードブッ ク・タイプ、例えば固定か順応か、を指定する。コードブック・タイプはYUV (サブ・サンプリングされたUV又はサブ・サンプリングされないUV)、RG B及びYUV更新コードブックを含む。その他のタイプは、本発明の精神と範囲 の中で考慮されている。コードブックの「更新」については、コードブックに対 する更新はコードブック・ヘッダに続いて送られる。コードブックのサイズはフ ィールド1302にバイト数で指定され、デコーダは、いつ次のフィールドが始 まるかを検出できる。もしコードブック・タイプが「更新」コードブック(すな わち共用コードブック)なら、図13bに示す情報1013(又は1015)が コードブック・ヘッダ1012(又は1014)に続いて期待できる。この更新 コードブックは、更新が必要なコードブック項目を識別するビットマップ137 0を有する。このフィールドの後に、更新される各ベクトルに対するベクトル更 新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,US,VN (72)発明者 ワング,キャサリン・シューウェイ アメリカ合衆国 95129 カリフォルニア 州・サン ホゼ・ウィルミントン アヴェ ニュ・1072

Claims (1)

  1. 【特許請求の範囲】 1. a. ベクトル量子化ツリーのN個の初期ノードを初期化するステップと 、 b. イメージからベクトルをサンプリングするステップと、 c. 上記イメージからサンプリングされた最良の代表サンプルである上記ベク トル量子化ツリーのノードを決定するステップと、 d. 上記ベクトルを上記ベクトル量子化ツリーの上記ノードに関連づけるステ ップと、 e. 上記イメージから次のベクトルをサンプリングするステップと、 f. 上記イメージからサンプリングするベクトルがなくなるまでc−fをくり 返し、上記次のベクトルが上記ベクトルになるステップと、 g. 上記ツリーのどのノードが上記ツリー内で最も歪んでいるかを決定するス テップと、 h. 上記最も歪んだノードを2つの子供ノードに分割するステップと、 i. 上記最も歪んだノードと関連するベクトルの第1の部分を上記子供ノード の第1と関連づけ、上記最も歪んだノードと関連するベクトルの第2の部分を上 記子供ノードの第2と関連づけるステップと、 j. 上記ベクトルの第1及び第2の部分と比較した2つの子供ノードの現在の 誤差を決定するステップと、 k. 現在の誤差と前の誤差の間の誤差の変化が誤差の閾値より小さいとき、ス テップ1に進み、その他の場合は上記第1及び第2の子供の新しい値を決定し、 ステップiに進み、現在の誤差が前の誤差になるステップと、 l. 上記ベクトル量子化ツリー内のターミナル・ノードの数が所望の個体数に 達するまでステップg−1をくり返すステップと、 m. インデックスを上記ベクトル量子化ツリーのターミナル・ノードのそれぞ れに関連づけるステップと、 から成るイメージのベクトル量子化方法。 2. 上記入力イメージの上記サンプリングされたベクトルのそれぞれと関連す る上記ベクトル量子化ツリーのターミナル・ノードのインデックスを表す上記ベ クトル量子化ツリーからの一連のインデックスを伝送するステップを更に含む請 求項1に記載のイメージのベクトル量子化方法。 3. 最も歪んだノードを決定するステップが、そのノードと関連した上記入力 イメージからサンプリングされたベクトルのそれぞれと比較されたノードの平均 歪が、閾値を超えたかどうか判定するステップを含む請求項1に記載のイメージ のベクトル量子化方法。 4. 最も歪んだノードを決定するステップが、そのノードと関連した上記入力 イメージからサンプリングされたベクトルのそれぞれと比較されたノードの合計 歪が、閾値を超えたかどうか判定するステップを含む請求項1に記載のイメージ のベクトル量子化方法。 5. 最も歪んだノードを決定するステップが、上記ノードと関連した入力イメ ージからのサンプリングされた個体数が閾値を超えたかどうか判定するステップ を含む請求項1に記載のイメージのベクトル量子化方法。 6. 最も歪んだノードを決定するステップが、そのノードと関連した上記入力 イメージからサンプリングされたベクトルのそれぞれと比較されたノードのパー センテージ歪が、閾値を超えたかどうか判定するステップを含む請求項1に記載 のイメージのベクトル量子化方法。 7. 最も歪んだノードを決定するステップが、そのノードと関連した上記入力 イメージからサンプリングされたベクトルのそれぞれと比較されたノードの最大 歪が、閾値を超えたかどうか判定するステップを含む請求項1に記載のイメージ のベクトル量子化方法。 8. 最も歪んだノードを決定するステップが、そのノードと関連した上記入力 イメージからサンプリングされたベクトルのそれぞれと比較されたノードの最大 歪の最小歪に対する比が、閾値を超えたかどうか判定するステップを含む請求項 1に記載のイメージのベクトル量子化方法。 9. 上記イメージからサンプリングされたベクトルの最良の代表サンプルであ るノード決定するステップがサンプリングされたベクトルとそのノードの間の平 均2乗誤差を決定することを含む請求項1に記載のイメージのベクトル量子化方 法。 10. 平均2乗誤差を決定するステップが、上記ベクトル量子化の初期の部分 では大きな誤差ほど重く加重され、上記ベクトル量子化の後の部分では大きな誤 差ほど軽く加重される請求項9に記載のイメージのベクトル量子化方法。 11. N個の初期ノードを作成するステップが前のイメージについて行われた 前のベクトル量子化からのN個の初期ノードを用いることを含む請求項1に記載 のイメージのベクトル量子化方法。 12. 上記最も歪んだノードを分割する前に、上記入力イメージからのベクト ル・サンプルに対して疑似ランダムに生成された値を加えるステップを更に含む 請求項1に記載のイメージのベクトル量子化方法。 13. 上記イメージからサンプリングされたベクトルの最良の代表サンプルで あるノードを決定するステップが、そのイメージからサンプリングされたベクト ルに最も近い輝度とクロミナンス(YUV)値を有するノードを決定することを 含む請求項1に記載のイメージのベクトル量子化方法。 14. 上記イメージの異なったゾーンに対して別々のベクトル量子化ツリーを 生成するステップを更に含む請求項1に記載のイメージのベクトル量子化方法。 15. 可変サイズを有する上記イメージの異なったゾーンを決定するステップ を更に含む請求項14に記載のイメージのベクトル量子化方法。 16. 一連のイメージに対して適用され、上記一連のイメージ内で場面変化が 検出されたとき、新しいベクトル量子化ツリーの作成が行われる請求項1に記載 のイメージのベクトル量子化方法。 17. a. ベクトル量子化ツリーのN個の初期ノードを初期化する手段と、 b. イメージからベクトルをサンプリングする手段と、 c. 上記イメージからサンプリングされた最良の代表サンプルである上記ベク トル量子化・ツリーのノードを決定する手段と、 d. 上記ベクトルを上記ベクトル量子化ツリーの上記ノードに関連づける手段 と、 e. 上記イメージから次のベクトルをサンプリングする手段と、 f. 構成要素c−eを上記イメージからサンプリングされるべきベクトルがな くなるまで活性化し、上記次のベクトルが上記ベクトルとなる手段と、 g. 上記ツリーのどのノードが上記ツリー内で最も歪んでいるかを決定する手 段と、 h. 上記最も歪んだノードを2つの子供ノードに分割する手段と、 i. 上記最も歪んだノードと関連するベクトルの第1の部分を上記子供ノード の第1と関連づけ、上記最も歪んだノードと関連するベクトルの第2の部分を上 記子供ノードの第2と関連づける手段と、 j. 上記ベクトルの第1及び第2の部分と関連した2つの子供ノードの現在の 誤差を決定する手段と、 k. 上記第1及び上記第2の子供ノードの新しい値を決定し、継続的に構成要 素i−jを活性化し、もし現在の誤差と前の誤差の間の誤差の変化が誤差の閾値 より大きければ現在の誤差が上記前の誤差となる手段と、 l. 上記ベクトル量子化ツリーのターミナル・ノードの数が所望の個体数に達 するまで継続的に構成要素g−1を活性化する手段と、 m. インデックスを上記ベクトル量子化ツリーのターミナル・ノードのそれぞ れに関連づける手段と、 を備えたイメージのベクトル量子化装置。 18. a. ベクトル量子化ツリーのN個の初期ノードを初期化する手段と、 b. イメージからベクトルをサンプリングする手段と、 c. 上記イメージからサンプリングされた最良の代表サンプルである上記ベク トル量子化ツリーのノードを決定する手段と、 d. 上記ベクトルを上記ベクトル量子化ツリーの上記ノードに関連づける手段 と、 e. 上記ツリーのターミナル・ノードの数が所望の個体数に達するまでくり返 し、上記ツリ一内の最悪のノードを決定することによってベクトル量子化ツリー 内に新しいノードを作成し、上記ノードを分割し、上記ベクトルを上記ベクトル 量子化ツリーの上記ノードと再度関連づける手段と、 を備えたイメージのベクトル量子化装置。 19. a. ベクトル量子化ツリーのN個の初期ノードを初期化する手段と、 b. イメージからベクトルをサンプリングする手段と、 c. 上記イメージからサンプリングされた最良の代表サンプルである上記ベク トル量子化ツリーのノードを決定する手段と、 d. 上記ベクトルを上記ベクトル量子化ツリーの上記ノードに関連づける手段 と、 e. 上記ツリーが上記ベクトルと比較して所望の歪に達するまでくり返し、上 記ツリー内の最悪のノードを決定することによってベクトル量子化ツリー内に新 しいノードを作成し、上記ノードを分割し、上記ベクトルを上記ベクトル量子化 ツリーの上記ノードと再度関連づける手段と、 を備えたイメージのベクトル量子化装置。 20. a. ベクトル量子化ツリーのN個の初期ノードを初期化する手段と、 b. イメージからベクトルをサンプリングする手段と、 c. 上記イメージからサンプリングされた最良の代表サンプルである上記ベク トル量子化ツリーのノードを決定する手段と、 d. 上記ベクトルを上記ベクトル量子化ツリーの上記ノードに関連づける手段 と、 e. 上記ツリーのターミナル・ノードの数が所望の個体数に達するまでくり返 し、上記ツリー内の最悪のノードを決定することによってベクトル量子化ツリー 内に新しいノードを作成し、上記ノードを2つ以上の子供ノードに分割し、上記 ベクトルを上記ベクトル量子化ツリー内の上記子供ノードと再度関連づける手段 と、 を備えたイメージのベクトル量子化装置。 21. a. イメージの異なった領域が閾値に基づいてコード化されるべきか どうかを決定し、上記閾値は、上記領域内のブロックがコード化時に類似のタイ プであるかどうかを含む手段と、 b. 上記イメージの上記別々の領域を別々にコード化する手段と、 c. 上記イメージの上記別々の領域が別々にコード化されたことを示し、上記 別々の領域のそれぞれに対する別々のコードブックを参照する手段を含み、更に 上記別々の領域の位置を示す手段と、 を備えたイメージをコード化する装置。 22. 上記類似のタイプは、上記領域のブロックが上記イメージの変化ブロッ クを含むかどうかを含む請求項21に記載のイメージをコード化する装置。 23. 上記類似のタイプは、上記領域のブロックが上記イメージの無変化ブロ ックを含むかどうかを含む請求項21に記載のイメージをコード化する装置。 24. 上記イメージの上記無変化ブロックは上記イメージ内に空間的無変化ブ ロックを含む請求項23に記載のイメージをコード化する装置。 25. 上記イメージの上記無変化ブロックは、上記イメージと比較された前の イメージからの時間的無変化ブロックを含む請求項23に記載のイメージをコー ド化する装置。 26. 上記類似のタイプは、上記別々の領域の1つが見かけ上空間的にスムー ズであり、上記別々の領域の第2が見かけ上空間的にディテイルであるかどうか を含む請求項21に記載のイメージをコード化する装置。 27. 上記コード化の手段がベクトル量子化手段を含む請求項26に記載のイ メージをコード化する装置。 28. 上記別々の領域が、複数のイメージにおいて別々にコード化され、上記 領域に対する別々のコードブックが上記複数のイメージで共用される請求項21 に記載のイメージをコード化する装置。 29. a. イメージの異なった領域が、閾値に基づいてコード化されるべき かどうかを決定し、上記閾値は、上記領域内のブロックがコード化時に類似のタ イプであるかどうかを含む手段と、 b. 上記イメージの上記別々の領域を別々にコード化する手段と、 c. 上記イメージの上記別々の領域が別々にコード化されたことを示し、上記 別々の領域のそれぞれに対するコードブックを参照する手段を含み、更に上記別 々の領域の位置を示す手段と、 を備えたイメージをコード化する装置。 30. 上記コードブックは上記複数の別々の領域に対して共用される請求項2 9に記載のイメージをコード化する装置。 31. 上記別々の領域のいくらかは、上記別々の領域のいくらかをコード化す る誤差が上記閾値を超えるとき下位領域に更に分割され、上記下位領域のそれぞ れの別々のコード化となる請求項29に記載のイメージをコード化する装置。 32. 上記誤差が平均2乗誤差を含む請求項31に記載のイメージをコード化 する装置。 33. もし上記別々の領域をコード化する誤差が閾値を超えれば、上記別々の 領域は帰納的に他の別々の領域に分割される請求項29に記載のイメージをコー ド化する装置。 34. 上記別々の領域のそれぞれに対するコードブックはサイズが異なる請求 項29に記載のイメージをコード化する装置。 35. a. 前のイメージからの前のコードブックを用いて現在のイメージを 第1のコード化されたイメージとしてコード化する手段と、 b. 上記前のコードブックを用いる第1のコード化されたイメージが上記現在 のイメージの良好な近似であるかどうか判定する手段と、 c. 上記前のコードブックを更新して上記現在のイメージに対する現在のコー ドブックを作成し、上記決定する手段に応答して上記第1のコード化されたイメ ージが上記現在の良好な近似でないことを判定する手段と、 d. 上記現在のイメージを上記現在のコードブックを用いて第2のコード化さ れたイメージとしてコード化し、上記決定する手段に応答して上記第1のコード 化されたイメージが上記現在のイメージの良好な近似でないことを判定する手段 と、 を備えた現在のイメージをコード化する装置。 36. 上記第1のコード化されたイメージが上記現在のイメージの良好な近似 でないことを判定する手段が、上記第1のコード化されたイメージから生成され たコード化された第1のイメージと上記現在のイメージとの間の平均2乗誤差が 閾値より大きいかどうか判定する手段を含む請求項35に記載の現在のイメージ をコード化する装置。 37. 上記閾値が、前のコード化されたイメージから生成された第2のコード 化されたイメージと前のコード化されていないイメージとの間の平均2乗誤差を 含む請求項36に記載の現在のイメージをコード化する装置。 38. 上記閾値が現在のフレームの前のN個のコード化されたフレームと関連 するN個のコード化されないフレームの平均2乗誤差の平均値を含む請求項36 に記載の現在のイメージをコード化する装置。 39. 上記閾値が、上記現在のイメージからのベクトルと比較して大きな平均 2乗誤差を有する上記第1のコード化されたイメージから生成されたデコードさ れたベクトル数を含む請求項36に記載の現在のイメージをコード化する装置。 40. もし上記第1のコード化されたイメージから生成されたデコードされた ベクトルが上記現在のイメージと比較して大きな平均2乗誤差を有するならば、 上記更新する手段が、上記前のコードブックの特定項目を更新して上記現在のコ ードブックを生成する手段を含む請求項36に記載の現在のイメージをコード化 する装置。 41. もし、上記第1のコード化されたイメージから生成された上記デコード されたベクトルが、上記現在のイメージと比較して大きな平均2乗誤差を有し、 上記前のコードブックの項目を更新する手段が動作可能であれば、上記更新する 手段は上記現在のコードブックとして用いられる新しいコードブックを生成する 手段を更に含む請求項40に記載の現在のイメージをコード化する装置。 42. もし、上記項目更新手段が少なくともN個のイメージを順番にコード化 するように動作可能であれば、上記新しいコードブックを生成する手段が活性化 される請求項41に記載の現在のイメージをコード化する装置。 43. 上記更新手段が、上記前のコードブックに対するベクトルを表すツリー のノードをたどって行き、上記コードブックの最良の項目を決定し、現在のコー ドブックで用いる手段を含む請求項35に記載の現在のイメージをコード化する 装置。 44. 上記現在のイメージのベクトルと比較して、最悪の誤差を有する上記ツ リー内の項目を除去する手段を更に含む請求項43に記載の現在のイメージをコ ード化する装置。 45. 上記ツリー内で最良の項目を決定する上記手段が、現在のイメージのベ クトルと上記ツリーの間の平均2乗誤差を決定する手段を含む請求項43に記載 の現在のイメージをコード化する装置。 46. 上記ツリー内に追加の項目を作成し、現在のイメージをより良く表す手 段を更に含む請求項43に記載の現在のイメージをコード化する装置。 47. 追加の項目を作成する上記手段が上記ツリー内でノードを分割し上記現 在のコードブックに対する2つの新しい項目を作成する手段を含む請求項46に 記載の現在のイメージをコード化する装置。 48. 上記ツリー内でノードを分割する手段が、上記ノードがそのノードに関 連する現在のイメージからのベクトルの閾値より大きい個体数を有するという判 定によって動作状態となる請求項47に記載の現在のイメージをコード化する装 置。 49. 上記ツリー内でノードを分割する手段が、上記ノードが閾値より大きい ベクトル歪を有するという判定によって動作状態となる請求項47に記載の現在 のイメージをコード化する装置。 50. 関連する現在のイメージからのベクトルを持たない項目を上記ツリーか ら除去する手段を更に有する請求項44に記載の現在のイメージをコード化する 装置。 51. a. n個のイメージから生成されたN個のイメージをN個のコード化 されたイメージとしてコード化する手段であって、nはNと等しいか又は小さい 上記コード化する手段と、 b. 上記N個のイメージのコード化されたイメージが上記N個のイメージのそ れぞれの良好な近似であるかどうかに基づいてNを決定する手段と、 を備えたN個のイメージをコード化する装置。 52. nが1である請求項51に記載のN個のイメージをコード化する装置。 53. nがNと等しい請求項51に記載のN個のイメージをコード化する装置 。 54. 上記決定する手段が、上記コード化されたイメージのそれぞれから生成 された各デコードされたイメージとそれに関連するコード化されないイメージの 間の平均2乗誤差が閾値より大であるかどうか判定する手段を含む請求項51に 記載のN個のイメージをコード化する装置。 55. 上記閾値が、前のイメージと関連するコード化されないイメージの平均 2乗誤差を含む請求項54に記載のN個のイメージをコード化する装置。 56. 上記前のイメージが、前のコード化されないイメージのフィルタリング された表現である請求項55に記載のN個のイメージをコード化する装置。 57. 上記前のコード化されないイメージの上記フィルタリングされた表現が フィルタ手段によって生成され、上記フィルタ手段はレート制御メカニズムの制 御下にあり、上記レート制御メカニズムは適合的に上記フィルタ手段を調整し、 所望のレートでコード化されたビット・ストリームを生成する請求項56に記載 のN個のイメージをコード化する装置。 58. 平均のブロック平均2乗誤差より大きい平均2乗誤差を有するN個のコ ード化されたイメージに対する第1のブロック数が、誤差ブロックの閾値より大 であるかどうか判定する手段と、更に上記判定する手段に応答してN+1番目の イメージに対して新しいコードブックを生成する手段を含む請求項55に記載の N個のイメージをコード化する装置。 59. 上記コードブックを更新する手段であって、上記更新する手段は、上記 N個のイメージの現在のイメージからブロックを計算し、上記コードブックの項 目を更新して上記現在のコードブックを生成する手段を含む請求項51に記載の N個のイメージをコード化する装置。 60. 上記現在のコードブックを用いて、上記現在のイメージのコード化され たイメージから生成された、デコードされたイメージがフレームの閾値より大き い平均2乗誤差を有するかどうか判定する手段を有する請求項59に記載のN個 のイメージをコード化する装置。 61. 上記判定する手段の活性化に応答して現在のイメージから置き換えコー ドブックを生成する手段を更に含む請求項60に記載のN個のイメージをコード 化する装置。 62. a. 初期のイメージから生成されたベクトルを表すベクトルを有する コードブックを受け取るステップと、 b. 上記一連のイメージの次のイメージを検索し、上記コードブックを用いて 上記次のイメージを次のコード化されたイメージとしてコード化するステップと 、 c. 上記次のコード化されたイメージから生成された次のデコードされたイメ ージと上記次のイメージとの間のフレームの平均2乗誤差が上記初期のイメージ から生成された初期のコード化されたイメージから生成されたデコードされた初 期イメージに対する前のフレームの平均2乗誤差より大であるかを判定し、もし そうなら、上記次のイメージから新しい現在のコードブック全体を生成し、上記 新しい現在のコードブックを用いて上記次のイメージをコード化するステップと 、 d. そうでない場合、上記次のイメージの関連するコード化されないブロック より大きな平均2乗誤差を有する上記次のデコードされたイメージのデコードさ れたブロックのピーク数がブロックの閾値を超えれば、上記次のイメージから新 しい現在のコードブック全体を生成し、上記新しい現在のコードブックを用いて 上記次のイメージをコード化するステップと、 e. そうでない場合、上記コードブック内で最悪の項目を決定し、更新された コードブックの項目を生成し、上記次のイメージから新しい現在のコードブック を生成し、上記現在のコードブックを用いて上記次のイメージをコード化するス テップと、 から成る一連のイメージをコード化する方法。 63. 上記コード化するステップが、上記次のイメージからのベクトルを上記 コードブックの項目に関連づける請求項62に記載の一連のイメージをコード化 する方法。 64. 上記コードブックが、上記次のイメージから生成されたコードブック・ ベクトルを有するツリーを含む請求項63に記載の一連のイメージをコード化す る方法。 65. 上記更新するステップが、上記次のイメージからのベクトルを持たない 上記コードブックから、項目を除去するステップを含む請求項64に記載の一連 のイメージをコード化する方法。 66. 上記更新するステップが、上記コードブック内で最も歪んだ項目を決定 するステップを更に含み、上記最も歪んだ項目のそれぞれに対して: a. 上記歪んだ項目のそれぞれに対して子供の項目を作成し、 b. 上記最も歪んだ項目のそれぞれに関連するベクトルを上記子供項目に関連 づけるステップを含む請求項65に記載の一連のイメージをコード化する方法。 67. 上記コードブックから、上記最も歪んだ項目のそれぞれを除去するステ ップを更に含む請求項66に記載の一連のイメージをコード化する方法。 68. 変更された上記コードブックの項目をデコード手段に伝送するステップ を更に含む請求項67に記載の一連のイメージをコード化する方法。 69. 上記項目がn個の項目を有し、更新された上記現在のコードブックがN 個の項目を有し、nはNより小さく、上記コードブックのn個の項目は、コード 化された次のイメージから生成されたデコードされた次のイメージと上記次のイ メージの間の平均2乗誤差に従って導かれる請求項62に記載の一連のイメージ をコード化する方法。 70. a. イメージから生成されたベクトルを表すベクトルを有するコード ブックを受け取るステップと、 b. 上記一連のイメージの第1のイメージを検索し、更新されたコードブック を生成して現在のコードブックを生成し、上記現在のコードブックを用いて上記 第1のイメージを第1のコード化されたイメージとしてコード化するステップと 、 c. 上記第1のコード化されたイメージと上記第1のイメージの間の平均2乗 誤差が、前のコード化されたイメージと関連するコード化されないイメージに対 する前の平均2乗誤差より大であるかを判定し、もしそうなら、現在のコードブ ック全体を生成し、上記現在のコードブックを用いて上記第1のイメージを第2 のコード化されたイメージとしてコード化するステップと、 から成る一連のイメージをコード化する方法。 71. 上記コード化するステップは、上記第1のイメージからのベクトルを上 記コードブックの項目に関連づける請求項70に記載の一連のイメージをコード 化する方法。 72. 上記コードブックは、上記イメージから生成されたコードブック・ベク トルを有するツリーを含む請求項71に記載の一連のイメージをコード化する方 法。 73. 上記更新するステップは、関連する上記第1のイメージからのベクトル を持たない上記コードブックの項目を除去するステップを含む請求項72に記載 の一連のイメージをコード化する方法。 74. 上記更新するステップが、上記コードブック内で最も歪んだ項目を決定 するステップを更に含み、上記最も歪んだ項目に対して: a. 上記歪んだ項目のそれぞれに対して子供の項目を作成し、 b. 上記最も歪んだ項目のそれぞれに関連するベクトルを上記子供項目に関連 づけるステップを含む請求項73に記載の一連のイメージをコード化する方法。 75. 上記コードブックから上記最も歪んだ項目のそれぞれを除去するステッ プを更に含む請求項74に記載の一連のイメージをコード化する方法。 76. 変更された上記コードブックの項目をデコード手段に伝送するステップ を更に含む請求項75に記載の一連のイメージをコード化する方法。 77. 上記項目がn個の項目を有し、更新された上記現在のコードブックがN 個の項目を有し、nはNより小さく、上記コードブックのn個の項目は、コード 化されたイメージと上記イメージの間の平均2乗誤差に従って導かれる請求項7 0に記載の一連のイメージをコード化する方法。
JP6507421A 1992-09-01 1993-08-31 改良されたベクトルの量子化 Pending JPH08502865A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US93895992A 1992-09-01 1992-09-01
US07/938,959 1992-09-01
PCT/US1993/008235 WO1994006099A1 (en) 1992-09-01 1993-08-31 Improved vector quantization

Publications (1)

Publication Number Publication Date
JPH08502865A true JPH08502865A (ja) 1996-03-26

Family

ID=25472287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6507421A Pending JPH08502865A (ja) 1992-09-01 1993-08-31 改良されたベクトルの量子化

Country Status (7)

Country Link
US (2) US5649030A (ja)
EP (3) EP0658263B1 (ja)
JP (1) JPH08502865A (ja)
AU (1) AU5099593A (ja)
CA (1) CA2143633A1 (ja)
DE (2) DE69333288T2 (ja)
WO (1) WO1994006099A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999055093A1 (en) * 1998-04-17 1999-10-28 Ultraclean Technology Research Institute, Co., Ltd. Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and vector quantizing device and method
KR101064845B1 (ko) * 2002-10-31 2011-09-14 마이크로소프트 코포레이션 문서 이미지 인코딩 시스템, 코드북 생성 시스템 및 방법, 코드북 탐색 시스템, 및 정보 인코딩 방법
JP2013518464A (ja) * 2010-01-22 2013-05-20 トムソン ライセンシング Example−based超解像を用いたビデオ圧縮のためのデータプルーニング

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69628083T2 (de) * 1995-03-31 2003-12-04 Canon Kk Bildverarbeitungsgerät und Methode
US5832131A (en) * 1995-05-03 1998-11-03 National Semiconductor Corporation Hashing-based vector quantization
AU727706B2 (en) * 1995-10-20 2000-12-21 Facebook, Inc. Repetitive sound compression system
US6678311B2 (en) 1996-05-28 2004-01-13 Qualcomm Incorporated High data CDMA wireless communication system using variable sized channel codes
US6144771A (en) 1996-06-28 2000-11-07 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding images
US5926226A (en) * 1996-08-09 1999-07-20 U.S. Robotics Access Corp. Method for adjusting the quality of a video coder
US5946454A (en) * 1996-08-15 1999-08-31 Seiko Epson Corporation Image enhancement during half-toning using low-pass and high-pass filtering
JP2001501406A (ja) * 1996-10-01 2001-01-30 シーメンス アクチエンゲゼルシヤフト ディジタル画像をベクトル量子化および逆ベクトル量子化する方法および装置
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
EP1010315A4 (en) * 1996-10-31 2002-12-04 Sensormatic Electronics Corp INTELLIGENT SYSTEM FOR MANAGING VIDEO INFORMATION
FR2757296B1 (fr) * 1996-12-13 2001-10-12 Sgs Thomson Microelectronics Procede et dispositif d'estimation de mouvement de portions d'images pour circuit de compression d'images mobiles
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
JPH10285603A (ja) * 1997-02-10 1998-10-23 Kokusai Electric Co Ltd 画像符号化方法
US6786420B1 (en) 1997-07-15 2004-09-07 Silverbrook Research Pty. Ltd. Data distribution mechanism in the form of ink dots on cards
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
KR100232098B1 (ko) * 1997-03-26 1999-12-01 서평원 퍼지 제어를 이용한 mpeg 영상 신호의 전송율 제어 장치
US6459433B1 (en) * 1997-04-30 2002-10-01 Ati Technologies, Inc. Method and apparatus for compression of a two dimensional video object
US6266419B1 (en) * 1997-07-03 2001-07-24 At&T Corp. Custom character-coding compression for encoding and watermarking media content
US6618117B2 (en) 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US7551201B2 (en) 1997-07-15 2009-06-23 Silverbrook Research Pty Ltd Image capture and processing device for a print on demand digital camera system
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
US6161086A (en) * 1997-07-29 2000-12-12 Texas Instruments Incorporated Low-complexity speech coding with backward and inverse filtered target matching and a tree structured mutitap adaptive codebook search
US5930393A (en) * 1997-08-11 1999-07-27 Lucent Technologies Inc. Method and apparatus for enhancing degraded document images
US6775417B2 (en) * 1997-10-02 2004-08-10 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
US6683978B1 (en) 1997-10-02 2004-01-27 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
US6658146B1 (en) 1997-10-02 2003-12-02 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
US5956431A (en) * 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JP3556447B2 (ja) * 1997-11-07 2004-08-18 シャープ株式会社 カラー固体撮像カメラシステム
DE69735262D1 (de) 1997-11-24 2006-04-20 St Microelectronics Srl MPEG-2 Dekodierung mit reduziertem Speicherbedarf durch Rekomprimierung mit adaptiver baumstrukturierter Vektorquantisierung
JP3421700B2 (ja) * 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6345126B1 (en) * 1998-01-29 2002-02-05 Xerox Corporation Method for transmitting data using an embedded bit stream produced in a hierarchical table-lookup vector quantizer
US6396956B1 (en) * 1998-03-31 2002-05-28 Sharp Laboratories Of America, Inc. Method and apparatus for selecting image data to skip when encoding digital video
US6377706B1 (en) * 1998-05-12 2002-04-23 Xerox Corporation Compression framework incorporating decoding commands
GB2339300B (en) 1998-07-06 2002-10-16 Bookham Technology Ltd A hermetically sealed optic fibre package and method of assembly
AUPP702098A0 (en) 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART73)
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
AUPQ056099A0 (en) * 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (pprint01)
US6594627B1 (en) * 2000-03-23 2003-07-15 Lucent Technologies Inc. Methods and apparatus for lattice-structured multiple description vector quantization coding
AU5235501A (en) * 2000-05-03 2001-11-12 Clearstream Technologies Limited Video data transmission
KR20030051435A (ko) 2000-06-19 2003-06-25 코렐로직 시스템즈, 인크. 분류화의 발견적 방법
BR0112667A (pt) * 2000-07-18 2006-05-09 Correlogic Systems Inc processo de distinção entre estados biológicos baseados em padrões ocultos de dados biológicos
US20020090140A1 (en) * 2000-08-04 2002-07-11 Graham Thirsk Method and apparatus for providing clinically adaptive compression of imaging data
US7069545B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Quantization and compression for computation reuse
WO2002054780A1 (en) * 2001-01-04 2002-07-11 Northshore Laboratories, Inc. Apparatus for artifacts reduction in the display of decompressed motion pictures
US7209519B2 (en) * 2001-04-16 2007-04-24 Mitsubishi Electric Research Laboratories, Inc. Encoding a video with a variable frame-rate while minimizing total average distortion
US7035459B2 (en) * 2001-05-14 2006-04-25 Nikon Corporation Image compression apparatus and image compression program
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
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
CA2669171C (en) * 2001-09-26 2012-05-01 Interact Devices System and method for communicating media signals
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
US7203635B2 (en) * 2002-06-27 2007-04-10 Microsoft Corporation Layered models for context awareness
US7395160B2 (en) * 2002-07-29 2008-07-01 Correlogic Systems, Inc. Quality assurance/quality control for electrospray ionization processes
US7903892B2 (en) * 2002-10-29 2011-03-08 Ati Technologies Ulc Image analysis for image compression suitability and real-time selection
US7116840B2 (en) * 2002-10-31 2006-10-03 Microsoft Corporation Decoding and error correction in 2-D arrays
US7009594B2 (en) * 2002-10-31 2006-03-07 Microsoft Corporation Universal computing device
US7502507B2 (en) * 2002-10-31 2009-03-10 Microsoft Corporation Active embedded interaction code
US7430497B2 (en) * 2002-10-31 2008-09-30 Microsoft Corporation Statistical model for global localization
US20040140962A1 (en) * 2003-01-21 2004-07-22 Microsoft Corporation Inertial sensors integration
US7643679B2 (en) * 2003-02-13 2010-01-05 Ati Technologies Ulc Method and apparatus for block based image compression with multiple non-uniform block encodings
US7764833B2 (en) 2003-02-13 2010-07-27 Ati Technologies Ulc Method and apparatus for anti-aliasing using floating point subpixel color values and compression of same
US8111928B2 (en) 2003-02-13 2012-02-07 Ati Technologies Ulc Method and apparatus for compression of multi-sampled anti-aliasing color data
US7274831B2 (en) * 2003-04-03 2007-09-25 Microsoft Corporation High quality anti-aliasing
GB2400291A (en) * 2003-04-05 2004-10-06 Autodesk Canada Inc Image processing using switch nodes
US6798360B1 (en) * 2003-06-27 2004-09-28 Canadian Space Agency Method and system for compressing a continuous data flow in real-time using recursive hierarchical self-organizing cluster vector quantization (HSOCVQ)
US7551785B2 (en) * 2003-07-03 2009-06-23 Canadian Space Agency Method and system for compressing a continuous data flow in real-time using cluster successive approximation multi-stage vector quantization (SAMVQ)
AU2004261222A1 (en) * 2003-08-01 2005-02-10 Correlogic Systems, Inc. Multiple high-resolution serum proteomic features for ovarian cancer detection
US7761239B2 (en) * 2003-12-11 2010-07-20 Correlogic Systems, Inc. Method of diagnosing biological states through the use of a centralized, adaptive model, and remote sample processing
US7583842B2 (en) 2004-01-06 2009-09-01 Microsoft Corporation Enhanced approach of m-array decoding and error correction
US7263224B2 (en) 2004-01-16 2007-08-28 Microsoft Corporation Strokes localization by m-array decoding and fast image matching
US7502505B2 (en) * 2004-03-15 2009-03-10 Microsoft Corporation High-quality gradient-corrected linear interpolation for demosaicing of color images
US7751483B1 (en) * 2004-04-16 2010-07-06 Majesco Entertainment Company Video codec for embedded handheld devices
US20060158677A1 (en) * 2005-01-18 2006-07-20 Atousa Soroushi Enhanced image data processing method and apparatus
EP1861704A2 (en) * 2005-02-09 2007-12-05 Correlogic Systems, Inc. Identification of bacteria and spores
US7607076B2 (en) 2005-02-18 2009-10-20 Microsoft Corporation Embedded interaction code document
US7826074B1 (en) 2005-02-25 2010-11-02 Microsoft Corporation Fast embedded interaction code printing with custom postscript commands
JP4215014B2 (ja) * 2005-03-17 2009-01-28 ソニー株式会社 画像処理装置および画像処理プログラム
US7606429B2 (en) * 2005-03-25 2009-10-20 Ati Technologies Ulc Block-based image compression method and apparatus
US7421439B2 (en) 2005-04-22 2008-09-02 Microsoft Corporation Global metadata embedding and decoding
US7599560B2 (en) 2005-04-22 2009-10-06 Microsoft Corporation Embedded interaction code recognition
WO2006124628A2 (en) * 2005-05-12 2006-11-23 Correlogic Systems, Inc. A model for classifying a biological sample in relation to breast cancer based on mass spectral data
US7400777B2 (en) 2005-05-25 2008-07-15 Microsoft Corporation Preprocessing for information pattern analysis
US7505624B2 (en) * 2005-05-27 2009-03-17 Ati Technologies Ulc Block-based image compression method and apparatus
US7729539B2 (en) 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US7580576B2 (en) 2005-06-02 2009-08-25 Microsoft Corporation Stroke localization and binding to electronic document
US7619607B2 (en) 2005-06-30 2009-11-17 Microsoft Corporation Embedding a pattern design onto a liquid crystal display
US7622182B2 (en) 2005-08-17 2009-11-24 Microsoft Corporation Embedded interaction code enabled display
US7817816B2 (en) 2005-08-17 2010-10-19 Microsoft Corporation Embedded interaction code enabled surface type identification
US8160160B2 (en) * 2005-09-09 2012-04-17 Broadcast International, Inc. Bit-rate reduction for multimedia data streams
JP4844449B2 (ja) * 2006-04-17 2011-12-28 日本ビクター株式会社 動画像符号化装置、方法、プログラム、動画像復号化装置、方法、およびプログラム
WO2008100941A2 (en) * 2007-02-12 2008-08-21 Correlogic Systems Inc. A method for calibrating an analytical instrument
US8411777B2 (en) * 2007-06-22 2013-04-02 Alcatel Lucent Complex vector quantization codebook for use in downlink multi-user MIMO mobile broadcast systems
CN101855553B (zh) 2007-06-29 2014-06-11 韩国安国药品株式会社 卵巢癌的预测标记
WO2009143120A2 (en) * 2008-05-19 2009-11-26 Citrix Systems, Inc. Systems and methods for enhanced image encoding
US9253505B2 (en) * 2009-04-08 2016-02-02 Newrow, Inc. System and method for image compression
RU2546616C2 (ru) 2009-04-08 2015-04-10 Уотчиту, Инк. Система и способ сжатия изображения
CN101577551A (zh) * 2009-05-27 2009-11-11 华为技术有限公司 一种生成格型矢量量化码书的方法及装置
US8860781B2 (en) * 2009-06-30 2014-10-14 Qualcomm Incorporated Texture compression in a video decoder for efficient 2D-3D rendering
WO2011022043A1 (en) * 2009-08-20 2011-02-24 Thomson Licensing Method and apparatus for reusing tree structures to encode and decode binary sets
US8259198B2 (en) * 2009-10-20 2012-09-04 Apple Inc. System and method for detecting and correcting defective pixels in an image sensor
US8472712B2 (en) * 2009-10-20 2013-06-25 Apple Inc. System and method for applying lens shading correction during image processing
US8593483B2 (en) * 2009-10-20 2013-11-26 Apple Inc. Temporal filtering techniques for image signal processing
US8294781B2 (en) * 2009-10-20 2012-10-23 Apple Inc. System and method for sharpening image data
US8638342B2 (en) * 2009-10-20 2014-01-28 Apple Inc. System and method for demosaicing image data using weighted gradients
CN102823242B (zh) 2010-01-22 2016-08-10 汤姆森特许公司 基于取样超分辨率视频编码和解码的方法和装置
US8525895B2 (en) 2010-07-29 2013-09-03 Apple Inc. Binning compensation filtering techniques for image signal processing
US8493482B2 (en) 2010-08-18 2013-07-23 Apple Inc. Dual image sensor image processing system and method
EP2477363A4 (en) * 2010-08-24 2012-08-22 Huawei Tech Co Ltd METHOD AND DEVICES FOR CONSTRUCTION, COMPRESSION AND SEARCH BINARY HIERARCHIES
US9398205B2 (en) 2010-09-01 2016-07-19 Apple Inc. Auto-focus control using image statistics data with coarse and fine auto-focus scores
US8605167B2 (en) 2010-09-01 2013-12-10 Apple Inc. Flexible color space selection for auto-white balance processing
US8922704B2 (en) 2010-09-01 2014-12-30 Apple Inc. Techniques for collection of auto-focus statistics
US8531542B2 (en) 2010-09-01 2013-09-10 Apple Inc. Techniques for acquiring and processing statistics data in an image signal processor
EP2614645A1 (en) * 2010-09-10 2013-07-17 Thomson Licensing Video decoding using example - based data pruning
US9544598B2 (en) 2010-09-10 2017-01-10 Thomson Licensing Methods and apparatus for pruning decision optimization in example-based data pruning compression
WO2012033970A1 (en) 2010-09-10 2012-03-15 Thomson Licensing Encoding of a picture in a video sequence by example - based data pruning using intra- frame patch similarity
WO2012050832A1 (en) * 2010-09-28 2012-04-19 Google Inc. Systems and methods utilizing efficient video compression techniques for providing static image data
US8736700B2 (en) 2010-09-30 2014-05-27 Apple Inc. Techniques for synchronizing audio and video data in an image signal processing system
US8508621B2 (en) 2010-09-30 2013-08-13 Apple Inc. Image sensor data formats and memory addressing techniques for image signal processing
US8508612B2 (en) 2010-09-30 2013-08-13 Apple Inc. Image signal processor line buffer configuration for processing ram image data
US8629913B2 (en) 2010-09-30 2014-01-14 Apple Inc. Overflow control techniques for image signal processing
US8786625B2 (en) 2010-09-30 2014-07-22 Apple Inc. System and method for processing image data using an image signal processor having back-end processing logic
US8488055B2 (en) 2010-09-30 2013-07-16 Apple Inc. Flash synchronization using image sensor interface timing signal
US8471932B2 (en) 2010-09-30 2013-06-25 Apple Inc. Spatial filtering for image signal processing
CN101990104A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 视频图像编码方法及装置
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
WO2013118216A1 (ja) * 2012-02-07 2013-08-15 パナソニック株式会社 画像処理装置および画像処理方法
US9077943B2 (en) 2012-05-31 2015-07-07 Apple Inc. Local image statistics collection
US9031319B2 (en) 2012-05-31 2015-05-12 Apple Inc. Systems and methods for luma sharpening
US8917336B2 (en) 2012-05-31 2014-12-23 Apple Inc. Image signal processing involving geometric distortion correction
US8872946B2 (en) 2012-05-31 2014-10-28 Apple Inc. Systems and methods for raw image processing
US8953882B2 (en) 2012-05-31 2015-02-10 Apple Inc. Systems and methods for determining noise statistics of image data
US9105078B2 (en) 2012-05-31 2015-08-11 Apple Inc. Systems and methods for local tone mapping
US9332239B2 (en) 2012-05-31 2016-05-03 Apple Inc. Systems and methods for RGB image processing
US9743057B2 (en) 2012-05-31 2017-08-22 Apple Inc. Systems and methods for lens shading correction
US9014504B2 (en) 2012-05-31 2015-04-21 Apple Inc. Systems and methods for highlight recovery in an image signal processor
US8817120B2 (en) 2012-05-31 2014-08-26 Apple Inc. Systems and methods for collecting fixed pattern noise statistics of image data
US9142012B2 (en) 2012-05-31 2015-09-22 Apple Inc. Systems and methods for chroma noise reduction
US11089247B2 (en) 2012-05-31 2021-08-10 Apple Inc. Systems and method for reducing fixed pattern noise in image data
US9025867B2 (en) 2012-05-31 2015-05-05 Apple Inc. Systems and methods for YCC image processing
US9157743B2 (en) 2012-07-18 2015-10-13 Honeywell International Inc. Systems and methods for correlating reduced evidence grids
KR101348959B1 (ko) * 2013-06-04 2014-01-14 한국항공우주연구원 4 행로 나무구조 벡터 양자화 방법
US10515646B2 (en) 2014-03-28 2019-12-24 Samsung Electronics Co., Ltd. Method and device for quantization of linear prediction coefficient and method and device for inverse quantization
CN112927703A (zh) 2014-05-07 2021-06-08 三星电子株式会社 对线性预测系数量化的方法和装置及解量化的方法和装置
KR20160030701A (ko) * 2014-09-11 2016-03-21 삼성전자주식회사 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 렌더링하는 방법
US9456075B2 (en) * 2014-10-13 2016-09-27 Avaya Inc. Codec sequence detection
US10349064B2 (en) * 2015-03-10 2019-07-09 Apple Inc. Adaptive chroma downsampling and color space conversion techniques
US20220156982A1 (en) * 2020-11-19 2022-05-19 Nvidia Corporation Calculating data compression parameters

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60158788A (ja) * 1984-01-30 1985-08-20 Mitsubishi Electric Corp 動き補償ベクトル量子化器
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
JPS6480187A (en) * 1987-09-21 1989-03-27 Nec Corp Coding method and its apparatus
CA1333420C (en) * 1988-02-29 1994-12-06 Tokumichi Murakami Vector quantizer
US5086439A (en) * 1989-04-18 1992-02-04 Mitsubishi Denki Kabushiki Kaisha Encoding/decoding system utilizing local properties
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
US5063444A (en) 1990-03-19 1991-11-05 At&T Bell Laboratories High definition television arrangement with signal selections adapted to the available transmission capacity
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999055093A1 (en) * 1998-04-17 1999-10-28 Ultraclean Technology Research Institute, Co., Ltd. Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and vector quantizing device and method
KR101064845B1 (ko) * 2002-10-31 2011-09-14 마이크로소프트 코포레이션 문서 이미지 인코딩 시스템, 코드북 생성 시스템 및 방법, 코드북 탐색 시스템, 및 정보 인코딩 방법
JP2013518464A (ja) * 2010-01-22 2013-05-20 トムソン ライセンシング Example−based超解像を用いたビデオ圧縮のためのデータプルーニング
US9813707B2 (en) 2010-01-22 2017-11-07 Thomson Licensing Dtv Data pruning for video compression using example-based super-resolution

Also Published As

Publication number Publication date
EP1139289A3 (en) 2006-06-28
AU5099593A (en) 1994-03-29
EP0658263A4 (en) 1996-03-06
EP0658263A1 (en) 1995-06-21
EP1341126A3 (en) 2004-02-04
WO1994006099A1 (en) 1994-03-17
US5822465A (en) 1998-10-13
DE69333288T2 (de) 2004-08-26
DE69334349D1 (de) 2011-04-21
CA2143633A1 (en) 1994-03-17
EP0658263B1 (en) 2003-11-05
DE69333288D1 (de) 2003-12-11
EP1341126A2 (en) 2003-09-03
US5649030A (en) 1997-07-15
EP1139289A2 (en) 2001-10-04
EP1139289B1 (en) 2011-03-09

Similar Documents

Publication Publication Date Title
JPH08502865A (ja) 改良されたベクトルの量子化
JP3681386B2 (ja) 改良されたベクトルの量子化のための前処理及び後処理
RU2654200C1 (ru) Усовершенствованное кодирование содержимого экрана с улучшенными способами кодирования таблицы палитры и индексной карты
JP3017380B2 (ja) データ圧縮方法及び装置並びにデータ伸長方法及び装置
US5903676A (en) Context-based, adaptive, lossless image codec
Aravind et al. Image compression based on vector quantization with finite memory
JP2823770B2 (ja) マルチレベル信号の符号化方法
US5724451A (en) Image compression method and apparatus using conditional quadtree split sysyem
US5892549A (en) Method and apparatus for compressing a digital signal using vector quantization
US6614939B1 (en) Image compression apparatus and decoding apparatus suited to lossless image compression
US5124791A (en) Frame-to-frame compression of vector quantized signals and other post-processing
KR20200024154A (ko) 디지털 데이터 압축을 위한 방법 및 디바이스
EP1324618A2 (en) Encoding method and arrangement
US8446299B2 (en) Method and device for encoding and decoding of data in unique number values
US5978513A (en) Picture encoding method and apparatus and picture decoding method and apparatus
Chao et al. Image compression using modified block truncation coding algorithm
JPH0795851B2 (ja) デイジタル画像信号のデ−タ整理および再構成方法
JP3642158B2 (ja) 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに伝送方法
Kim et al. Two-stage multirate coding of color images
JPH07112243B2 (ja) ブロック分割順次再生符号化方式
Maragos et al. Multichannel linear predictive coding of color images
Virtamo et al. Vector quantization with hierarchical classification of sub-blocks
JPH02238776A (ja) 符号化装置