JP4559631B2 - 可変長から可変長へのエントロピー符号化のためのコードブック構成 - Google Patents
可変長から可変長へのエントロピー符号化のためのコードブック構成 Download PDFInfo
- Publication number
- JP4559631B2 JP4559631B2 JP2000588899A JP2000588899A JP4559631B2 JP 4559631 B2 JP4559631 B2 JP 4559631B2 JP 2000588899 A JP2000588899 A JP 2000588899A JP 2000588899 A JP2000588899 A JP 2000588899A JP 4559631 B2 JP4559631 B2 JP 4559631B2
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- group
- groups
- symbols
- high probability
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
(発明の分野)
本発明は、概してデータ圧縮に関し、より詳細には、一形式のエントロピー符号化に関する。
【0002】
(背景)
通常の符号化環境では、入力データが、エンコーダによって符号化されて、通信チャネルを介して伝送され(または単に記憶され)、デコーダによって復号化される。符号化中、入力信号は、通常、事前処理され、サンプリングされ、変換され、圧縮され、または別様に操作されて、伝送または記憶のための形式にされる。伝送または記憶の後、デコーダが、元の入力を再構成しようとする。
【0003】
この単純なモデルの1つの根本的な限界は、所与の通信チャネルが、所定の容量または帯域幅を有することである。したがって、それが通信チャネルを介して、伝送されるとすれば、確実に伝送されるようにするために、入力データの情報内容を縮小することがしばしば必要である。入力信号が、同等の発生確率を有する記号で構成されているときには、最適符号化は、nビット符号の各ビットが2n個の等確率入力可能性の間での区別を行えるようにする等長符号ワードを使用することである。したがって、単一ビット(すなわち、単一エントリコードブック)は、2つの可能性を区別でき、2ビットは、4つの可能性を区別できるなど、である。
【0004】
しかし、入力ストリームが、任意の特定のメッセージを受信するのに等確率を有することは通常ではない。実際には、入力内の意味構造または構文構造のために、あるメッセージが、他のものよりも確率が高い。エントロピー符号化の目的は、そのようなデータ相関を利用して、ある高い確率の入力を有する予期される入力のなかで、符号ワードの平均長を最小限に抑えることである。あるメッセージが別のものよりも確率が高いとき、より短いコードブックエントリを確率の高いメッセージに対して使用して、より長いエントリをそれほど確率の高くないものに対して使用する。
【0005】
時の経過とともに、相当な努力が、伝送または記憶するデータのサイズを縮小するための可逆的圧縮と不可逆的圧縮の技法を開発するのに注がれてきた。1つの一般的な可逆技法は、ハフマン符号化として知られており、これは、特定の形式のエントロピー符号化である。エントロピー符号化は、可変長符号(例えば、コードブックエントリ)を固定サイズブロックの入力に割り当てることによって動作する。つまり、対応する確率p1..pmを有する値x1..xmを取ることが知られているランダム変数Xが、符号ワード{Y}のセット内のエントリにマップされる。長さkの{Y}内の各符号ワードyi kの方は、有限シーケンスの符号アルファベットエントリ{A}={a1..ad}から成る。簡単にするため、yi kは、単にyiとして参照し、kを含意するものとする。デジタルの適用形態の場合、符号アルファベットは、ビットで符号長が測定されるシリーズ(series)の2進数{0,1}である確率が高い。適切な出力を再構成するのに、圧縮表現の単一走査だけを検査する必要があるように、符号ワードが構成されているものと想定する。ソース信号をエントロピー符号化することの難しさは、Xが取り得る可能な値の数mに依存する。小さなmの場合、可能なメッセージがあまり存在せず、したがって、それらのメッセージに対するコードブックは、非常に小さいものであり得る(例えば、すべての可能なメッセージを明確に表すのに、いくつかのビットのみを使用する必要がある)。
【0006】
送信側が、1/2、1/4、1/8、1/16というそれぞれの確率p1..p4を有する4つのメッセージx1..x4のうちの1つを含んだソース信号を提供することが既知である場合、その4つの可能なメッセージを2ビットだけを使用して非効率的に表すことができる。ただし、これは、帯域幅を浪費する。というのは、その不等な確率が、利用可能なデータ特性を示しているからである。スカラーハフマン符号化として知られている、より効率的な方法は、平均で2ビットまで必要とせずに、各メッセージを符号化する。短いコードブックエントリがx1に割り当てられる。というのは、それが最も確率が高いからであり、また、次第に長くなる符号が、それほど確率の高くない入力に対して割り当てられる。コードブックエントリの1つの可能なセットは、メッセージx1を表すのに、「1」を、メッセージx2に対して「01」を、メッセージx3に対して「000」を、メッセージx4に対して「001」を割り当てることである。これは、ランダム変数Xを符号化するために、2ではなく、1.56ビットの平均符号長を与え、かなりの節約である。
【0007】
この手法の圧縮効率は、各ソース記号に整数のビットを有する符号ワードが割り当てられるために、限られている。この限界を克服する従来の方法には、算術符号化およびベクトルハフマン符号化が含まれる。これらの方法は、Xをまとめてブロックまたはベクトルにグループ化し、これは、それ自体、別のソース記号として扱われる。つまり、各個別メッセージXを単に符号化する代わりに、代わりに、複数のXのシーケンスを符号化する。個別記号符号化の方法が入力ストリーム内での記号の発生頻度を利用するのと同様に、記号をグループ化するこの後者の手法も、エンコーダが入力記号間の依存関係を利用することを可能にする。コヒーレントシリーズX1..Xnのエントロピーは、各個別Xのエントロピーの合計に等しい、またはそれより低いことが情報理論で知られているので、Xの符号化シーケンスは、さらなる節約をもたらす。
【0008】
理論的には、ベクトルハフマン符号化は、コヒーレントソースをスカラーハフマン符号化よりもずっと効率的に圧縮することができる。ベクトルハフマン符号化の効率は、実際的な問題によってのみ制限される。より高い圧縮比を得るため、より大きなベクトル次元が必要とされる。しかし、より高い次元は、現実的な限界を越えてコードブックサイズを増大させる。例えば、30個の可能な値を有するソース記号に対して、たった6個の次元が、7億2千9百万エントリのコードブックに対応する。
【0009】
エントロピー符号化の上記の例は、ソース記号が固定長を有し、符号ワードが、対応するソース記号の確率に依存する可変長を有するので、固定長から可変長への符号化として特徴付けられることにも留意されたい。エントロピー符号化の別の方法も試みられており、これは、ソース記号の可変数を一緒にグループ化した後、等長を有する符号ワードに変換する反対の手法を試みる。ソースが、独立のXで構成され、記号グループが等確率を得ているとき、こうした逆方式が最適であることは、証明済みである。ただし、大きな次元のベクトルハフマン符号化の場合と同様に、こうした解決法は、現実的に利用可能なリソース(利用可能であったとしても)を超過するリソースを必要とする。さらに、オーディオまたはビジュアルのデータストリームなど、データコヒーレンスを有するソースの場合、この可変長から固定長への手法は、役に立たない。
【0010】
(概要)
本発明は、可変長符号を可変長入力シーケンスに割り当てる方法に関する。詳細には、エントロピー型符号を確率の高い入力シーケンスに割り当て、これによって、特定の入力ストリームを圧縮形式に符号化できるようにする。リソースの限られている環境で本発明を実現するとき、符号化および復号化を実行するために必要なコードブックのサイズを縮小するように、それを構成することが可能である。例えば、可変長符号ワードを非常に高確率の入力にだけ割り当て、デフォルト符号をそれほど確率の高くないシーケンスに割り当てることが可能である。特定の入力に対して特定の符号を割り当てるのに必要な確率の程度は、所望のコードブックサイズに応じて調整する。
【0011】
符号化する入力ストリームは、オーディオ、ビデオ、または他の型のデータを符号化する、数字、文字、または2進データストリームなど、任意のデータ型のものであり得る。簡単にするため、入力ストリームは、本明細書では、各「記号」が特定の入力に対する適切な測定単位を指す、シリーズの記号として参照する。
【0012】
詳細には、コードブックは、記号の可変サイズグループのそれぞれに記号グループの発生確率に基づく可変長符号が割り当てられた記号のグループに対して構成する。コードブックを構成するため、記号の可能なグループを生成し、コードブックを生成するのに使用する例示的な入力内でその生成したグループが発生する確率に対してそれを比較する。こうした例示的な入力は、受信される確率が高く、符号化を必要とする任意の入力を近似するものと想定する。この入力は、グループの生成を駆動するのに使用できる、またはすべての可能なグループをこの例示的な入力に対してテストし、比較し得ることに留意されたい。本明細書では、グループ化は、入力駆動のものであることを想定している。
【0013】
データ構造(または等価物)を、記号の結合(例えば、グループ化)を追跡するのに使用することが可能である。この構造は、新しい記号を前に受信済みの記号と関連付けるのに使用して、前に受信済みの記号の恣意的に長いグループを追跡するようにする。データ構造の1つの可能な構成は、連続する記号グループが新しいリーフノードを形成するツリー型データ構造である。これらのノードは、グループ全体を含む、または前の親ノードに対する単一の記号の拡張だけを含むことが可能である。この後者の構成では、ツリーのルートからのパスが、特定のグループに対応する。
【0014】
グループ化および確率の割当てを開始するため、好ましくは、入力アルファベットからの記号を含んだ単一記号「グループ」などの、1つ以上の単純グループ化を選択する。これらの初期グループの確率を上げて、入力として最も発生する確率の高いグループを判定する。ここで、そのような確率は、必然的に、例示的な入力に対して計算される。次に、最高確率グループをアルファベットからの記号で拡張して、試験的グループを形成する。次に、これらの試験的グループの確率を評価して、最高確率の試験的拡張、ならびに単一グループに結合された最低確率のグループを識別する。
【0015】
コードブックの概念は、符号ワードを記号グループに割り当てることである。リソースの限られた環境では、コードブックサイズが制限されるように本発明を構成することができる。それを行う1つの方法は、符号をすべての入力シーケンスに割り当てるのを回避することである。代わりに、可能性の高い入力シーケンスだけをコードブック内に記憶して、それにエントロピー型符号を割り当てる。確率の低いシーケンスは、コードブック内で、入力シーケンスプレフィックスとして表され、特定拡張文字サフィックスがその後に続く。このサフィックス文字は、そのプレフィックスに対するすべての可能な入力シーケンス拡張を表す。プレフィックス−サフィックスの対合は、コードブック内にエントリを有さないプレフィックスで開始するすべての可能な入力シーケンスを表す。したがって、この試験的拡張を評価した後、2つのコードブックエントリがもたらされ、その1つは最高確率の拡張に対するものであり、もう1つは、他のすべての拡張を表す(この場合も、1つの最高確率の拡張だけを保存することを想定する)。
【0016】
グループを拡張して、グループをつぶすこの処理は、データ構造が所定の容量まで埋められるまで繰り返す。ただし、コードブックがその容量まで埋められた場合でも、入力内のより高い確率のエントリがそれほど確率の高くない現行のエントリを置き換えるように、入力を継続して走査できることに留意されたい。この符号化技法の効率は、選択したブックサイズおよび例示的な入力の一般性によってのみ制限される。コードブックを作成した後、各ブックエントリにエントロピー型符号、すなわち、そのエントリの確率に反比例する長さを有する符号を割り当てる。
【0017】
(詳細な説明)
本発明は、オーディオ/ビジュアルコーデック内で実現されてきた。これは、どのように本発明を実現できるかの一例に過ぎない。本発明は、エントロピー型符号化が利用できる場合にはいつでも利用できるように設計しており、どの型のデータの圧縮にも適用可能である。簡単に説明すれば、最適エントロピー符号化は、過大なリソースを必要とし、例示する実施形態は、はるかに少ないリソースを必要とするほぼ最適の符号化解決法を提供する。
【0018】
(例示的な動作環境)
図1および下記の議論は、そこで本発明を実現することが可能である適切なコンピュータ環境の簡単な一般的説明を提供することを目的とする。パーソナルコンピュータ上で動作するコンピュータプログラムのコンピュータ実行可能命令の一般的文脈で本発明を説明するが、当分野の技術者には、他のプログラムモジュールとの組合せでも、本発明を実現できることが理解されよう。一般的に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実現する、ルーチン、プログラム、構成要素、データ構造などが含まれる。さらに、当分野の技術者には、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成を使用しても本発明を実行できることが理解されよう。本発明の例示する実施形態は、通信ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピュータ環境でも実行される。ただし、本発明のいくつかの実施形態は、独立型コンピュータ上でも実行することが可能である。分散コンピュータ環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置することが可能である。
【0019】
図1を参照すると、本発明を実現するための例示的なシステムが、コンピュータ20を含み、これが、処理装置21、システムメモリ22、および処理装置21に対するシステムメモリを含んだ様々なシステム構成要素を結合するシステムバス23を含んでいる。処理装置は、Intel x86、Pentium、Intelおよび他社からの互換マイクロプロセッサ、DigitalによるAlphaプロセッサ、ならびにIBMおよびMotorolaからのPowerPCを含む、様々な市販のプロセッサのうちの任意のものであり得る。デュアルマイクロプロセッサおよび他のマルチプロセッサのアーキテクチャも、処理装置21として使用することができる。
【0020】
システムバスは、メモリバスまたはメモリコントローラ、周辺バス、ならびに、そのいくつかを挙げれば、PCI、AGP、VESA、Microchannel、ISA、EISAなどの様々な従来バスアーキテクチャのうちの任意のものを使用するローカルバスを含んだ、いくつかの型のバス構造のうちの任意のものであり得る。システムメモリは、読取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。始動時などに、コンピュータ20内の要素間で情報を転送するのを助ける基本ルーチンを含んだ基本入力/出力システム(BIOS)は、ROM24内に記憶されている。
【0021】
コンピュータ20は、ハードディスクドライブ27、例えば取外し可能ディスク29から読み取り、またはそれに書き込むための磁気ディスクドライブ28、および例えばCD−ROMディスク31を読み取るための、あるいは他の光学式媒体から読み取り、またはそれに書き込むための光ディスクドライブ30をさらに含む。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれ、ハードディスクドライブインタフェース32、磁気ディスクドライブインタフェース33、および光ディスクドライブインタフェース34によって、システムバス23に接続されている。これらのドライブおよびその関連するコンピュータ可読媒体は、コンピュータ20のためのデータ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。前記のコンピュータ可読媒体の説明は、ハードディスク、取外し可能磁気ディスク、およびCDに関連するが、当分野の技術者には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータによって読取り可能な他の型の媒体も、例示的な動作環境内で使用できることが理解されよう。
【0022】
オペレーティングシステム35、1つ以上のアプリケーションプログラム(例えば、インターネットブラウザソフトウェア)36、他のプログラムモジュール37、およびプログラムデータ38を含む、いくつかのプログラムモジュールをドライブおよびRAM25内に記憶することが可能である。
【0023】
ユーザは、キーボード40、およびマウス42などのポインティングデバイスを介して、コマンドおよび情報をコンピュータ20に入力することができる。他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、またはそれらに類するものが含まれ得る。これらの入力装置および他の入力装置は、しばしば、システムバスに結合されたシリアルポートインタフェース46を介して処理装置21に接続するが、パラレルポート、ゲームポート、または汎用シリアルバス(USB)などの、他のインタフェースによって接続することも可能である。モニタ47または他の型の表示装置も、ビデオアダプタ48などのインタフェースを介してシステムバス23に接続されている。モニタに加えて、パーソナルコンピュータは、通常、スピーカまたはプリンタなどの、他の周辺出力装置(図示せず)を含む。
【0024】
コンピュータ20は、リモートコンピュータ49などの、1つ以上のリモートコンピュータに対する論理接続を使用するネットワークされた環境内で動作するものと予期する。リモートコンピュータ49は、ウェブサーバ、ルータ、ピア装置、または他の一般のネットワークノードであることが可能であり、図1ではメモリ記憶装置50だけを図示しているが、通常、コンピュータ20に関して記載した多くのまたはすべての要素を含む。コンピュータ20は、ゲートウェイ55(例えば、ルータ、専用回線、または他のネットワークリンク)、モデム54リンクを介して、あるいはオフィス内ローカルエリアネットワーク(LAN)51またはワイドエリアネットワーク(WAN)52によって確立されたインターネット接続を介して、リモートコンピュータ49に接触することができる。図示したネットワーク接続は、例示的なものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることが理解されよう。
【0025】
コンピュータプログラミング分野の技術者の慣行により、本発明は、そうでないことを示さない限り、コンピュータ20によって実行される動作およびオペレーションの記号表現を参照して下記に説明する。そのような動作およびオペレーションは、時として、コンピュータ実行されていると呼ばれる。この動作および記号で表されるオペレーションには、処理装置21による、データビットを表す電気信号の操作が含まれることが理解され、これは、電気信号表現の結果としての変換および縮小を引き起こし、またメモリシステム(システムメモリ22、ハードドライブ27、フロッピーディスク29、CD−ROM31を含む)内のメモリロケーションでのデータビットの維持を、これによって、再構成させる、または別様にコンピュータシステムのオペレーションならびに信号の他の処理を変更させる。そこにデータビットが維持されているメモリロケーションは、そのデータビットに対応する特定の電気特性、磁気特性、または光特性を有する物理ロケーションである。
【0026】
図2は、基本通信モデルを示している。基本通信モデルでは、データソースまたはセンダ200、通信チャネル204、およびデータレシーバ208が存在する。このソースは、電話機上で電話回線を介して他の人と話している人物であり得る。または、ソースは、無線方法によってテレビジョンまたはラジオ受信機に対して送信されるテレビジョン放送またはラジオ放送であり得る。または、ソースは、オーディオであれ、ビジュアルであれ、または他のものであれ、その情報のための対応するデコーダに配線式または無線の通信リンク(例えば、LANまたはインターネット)を介して伝送される、何らかのデータのデジタル符号化であり得る。
【0027】
データの送信および受信を円滑にするため、エンコーダ202を使用して、通信チャネル204を介する伝送に対してデータソースを準備する。このエンコーダは、ソースデータをチャネル204に対して適切な形式に変換することを担う。例えば、通常の電話コールの文脈で、自身の音声は、通常、電話機のハンドセットによって、音声サウンドから、ローカル電話受信装置に対するアナログデータとして送信されるアナログインパルスに変換される。このアナログ信号は、次に、デジタル形式に変換され、同様に符号化された他の多くの会話とともに多重化されて、共通回線を介して受信側に伝送される。したがって、図2で、チャネル204は、複数の送信側と受信側によって共用される共通経路にだいたい対応する。受信端208で、デコーダ206が、受信側にとって理解できるデータを提示するように、符号化プロセスを元に戻す必要がある。
【0028】
データ伝送を最適化するため、エンコーダ202は、しばしば、データの伝送のために圧縮方式を利用するように設計される。圧縮は望ましい。というのは、通常ではない状況を除き、通信帯域幅は、限られているからである。したがって、オーディオデータまたはビデオデータなどの複雑なデータソースの場合、従来の伝送パスを介してその伝送ができるようにするために、ソースデータを圧縮する必要がある。
【0029】
特に有効な符号化方法の1つが、エントロピー符号化として知られており、これは、非常に確率の高い入力データに事前割り当てされている短い符号ワードを含んだ「コードブック」を利用する。
【0030】
有効な符号化方法の1つは、エントロピー符号化である。そのようなエンコーダは、データコヒーレンシーを十分に利用することができ、また、記号が一様でない確率分布を有するとき、特に有効である。
【0031】
図3は、コードブックを生成するための好ましい方法を示している流れ図である。詳細には、従来技術の技法とは対照的に、図3は、どのように、可変長記号グループに対する可変長符号割当てを有するコードブックを作成するかを図示している。前述のとおり、従来技術の技法は、固定長符号の入力または固定ブロックの入力のいずれかを必要とする。好ましい実施態様は、可変長Xシーケンスを符号化するのに可変長符号ワードを使用するエントロピーベースの可変から可変への符号を提供することによって、大きい次元のベクトル符号化のリソース要件、および等長のワードへの符号化の非実用性を克服する。
【0032】
1≦j≦Niについて、入力ストリーム(図2のチャネル204)内で発生する確率Piを有する各ソース記号グループ{xj}をyiが表すものとして、各グループにLiビットを有する対応する符号ワードを割り当てるものとする。各xjは、所定サイズの固定アルファベットから得られるものと想定する。この目的は、以下の数式を最小化することである。
【0033】
【数1】
【0034】
この問題に対する一般的な解を見つけ出す代わりに、問題を2つの異なるタスクに分離する。第1タスクは、後述の経験的手法を介して入力記号{xi}のセットの(部分最適)グループの識別である。第2タスクは、グループ化された記号{yi}に対してエントロピー型符号を割り当てることである。ソースがコヒーレントではない(すなわち、入力が独立である、またはメモリが無い)場合、{Nj}という同一構成を有するどのグループも同一の符号化効率を達することができるのが知られていることに留意されたい。この状況では、第1タスクは、重要ではなくなる。
【0035】
第1タスクを実行するため、{yi}={xi}などの、初期の単純記号グループ300が準備される。この初期構成は、コードブックの作成を慣らすために、例示的な入力ストリームが使用されていることを想定している。コンピュータは、入力からの各記号の受信を追跡するために、データ構造などのソフトウェア構造体を使用してプログラムすることができるものと理解する。そのようなデータ構造は、2進型ツリー構造、ハッシュテーブル、またはこの2つの何らかの組合せとして実現することが可能である。他の等価の構造を使用することも可能である。
【0036】
単純グループを決定した後、各yiごとの発生確率を計算する302。そのような確率は、コードブック生成を慣らすために使用する任意の例示的な入力に対して判定する。さらなる記号が記号データ構造に追加されるのにつれて、この確率は、動的に調整される。
【0037】
次に、最高確率のグループyi(ympと表す)を識別する304。最高確率の記号が、前により低い確率であった記号のグループである場合306には、そのグループをそれを構成する記号に分割して308、ステップ302から処理を再開する。(記号を結合することはできるものの、記号を抽出することができるように、グループは、その中にあるすべての記号の記憶を保持する。)
【0038】
その記号がグループではない場合には、処理は、ステップ310で継続し、そこで、最高確率のグループを単一記号拡張xiで試験的に拡張する310。好ましくは、ympは、使用されるXアルファベットからの各記号で拡張する。ただし、アルファベットが非常に大きく、多くの拡張は確率が低いことが既知である場合、プレディクタ(predictor)を使用して、確率の高い拡張だけを含んだ拡張セットのみを生成することが可能である。例えば、そのようなプレディクタは、アプリオリに非常に確率の低い拡張を無視できるように、意味構造上の意味または文脈的意味に基づいたものであり得る。
【0039】
次に、ympの各試験的拡張に関する確率を計算して312、最高確率の拡張だけを保持する314。残りのより低い確率の拡張はつぶして、結合グループとしてまとめ316、結合グループを示す特定記号を付けて、コードブック内に記憶する。このワイルドカード記号は、ympをプレフィックスとして有する任意の記号グループを表すが、最高確率の拡張とは異なる拡張(サフィックス)が付いている。つまり、ymp+xmpが最高確率のルートと拡張である場合には、他のそれほど確率の高くない拡張は、ymp*、*≠xmpとして表される。(この議論は、明確にするために、単一記号拡張の逐次処理を想定するが、複数の記号拡張の並列実行が考慮されることに留意されたい。)
【0040】
コードブック構成は、すべての拡張が作成されるまで、またはコードブックエントリの数が所定の限界に達するまで、ステップ302〜316を繰り返す318によって完了する。前記のオペレーションを繰り返し適用することの効果は、高い相関を有する記号グループを自動的に集めて、グループ間相関が最小化されるようにすることである。これは、以下に示すLの分子を最小化する一方で、同時に、Lの分母が最大化されるように、最高確率のyiの長さを最大化する。
【0041】
【数2】
【0042】
コードブックを記憶し、操作するために使用できる様々な技法が存在する。コードブックのための1つの構造は、記号グループがツリー構造の走査をガイドするN進(例えば、2進、3進など)ツリーの走査およびストレージである。このツリーのリーフノードは、エントロピー型符号がシーケンスと関連付けられている認識済みの記号シーケンスの終了を表す。ノードは、ソフトウェア内で、そのノードと関連付けられた1つ以上の記号のストレージを可能にする構造、クラス定義、または他の構造として符号化することが可能である。
【0043】
別法では、コードブックは、発生確率によって分類した入力記号の各ストリングを有するテーブルとして構造化することができ、非常に確率の高い入力が、そのテーブルの一番上にある。大きなテーブルの場合、テーブルは、第1記号によって分類する、すなわち、「A」で開始するすべての記号シリーズがグループにまとめられ、それに「B」で開始するシリーズが続くといったことが可能である。この構成を使用すると、グループ内のすべてのエントリが、その発生確率に応じて分類される。各セクションの開始の位置は、ハッシュ型関数(例えば、第1記号に基づくルックアップ)を使用してコードブックテーブルの正しい部分を探し出せるように、マーク付け/追跡される。コードブックの記憶に対するこのルックアップテーブル手法では、第1記号をハッシュした後、ルックアップは、合致するエントリが探し出されるまで、対応するテーブルセクションの検索だけを必要する。
【0044】
図4〜10は、アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を図示する。この論議のため、コードブックは、例示的な入力ストリーム「A A A B B A A C A B A B B A B」に対して定義される。前述のとおり、1つ以上の例示的な入力を使用して、コードブックを生成することが可能であり、これが、次に、エンコーダおよびデコーダによって使用されて、任意の入力を処理する。明確にするため、このコードブックは、ツリー構造として提示する。ただし、これは、実際には、リニアテーブル、ハッシュテーブル、データベースなどとして実現することが可能である。図示するとおり、ツリーは、左から右に向いており、そこで左列(例えば、「A」および「X0」)は、ツリー型構造の一番上の行を表し、順次、字下げされている行が、前の行のノードの「子」を表す(例えば、図5のトップダウンツリー内で、ノード「A」は、第2行の中間子ノード「B」に対する第1行の親ノードである。)。
【0045】
コードブックを準備する上で、一般的規則は、最高確率のリーフノードを選出し、それを拡張し、最高確率のリーフノードを判定するために確率を再計算し、次に、残りの兄弟ノードを単一Xnノード(n=0..N、ノードが結合されるたびに毎回、追跡する)に縮小することである。最高確率ノードがグループノードであると判明した場合には、そのグループを分割し、確率を再計算して、最高確率のメンバノードを保持する(すなわち、残りのグループメンバは、再グループ化する)。処理は、所定サイズを有するコードブックなど、ストップ状態に達するまで、循環する。
【0046】
図4は、入力ストリーム「A A A B B A A C A B A B B A B」に対する初期グループを図示している。この入力の初期解析は、A=8/15、B=6/15、C=1/15の発生確率を示す。この初期単純グループは、異なる基準に基づいて作成することが可能であり、その最も単純なものは、アルファベット内の各文字に対する第1レベルノードを有する。ただし、入力アルファベットが大きい場合、単純グループは、最高確率を有する記号の何らかのサブセットに制限することが可能であり、残りの記号はXグループに結合される。図4は、2つの初期グループだけで開始することによってこの技法を図示し、グループA 400は、確率8/15を有し、グループX0 402は、確率7/15を有し、ここで、X0は、アルファベット内のすべての残りの低確率の記号、例えば、BおよびCを表す。
【0047】
初期単純グループを準備した後、最高確率を有するリーフノードを拡張のために選択する(処理シーケンスに関する図3の議論も参照)。したがって、図5で示すとおり、グループA 400は、アルファベット内の各文字によって試験的に拡張される(または、初期グループの作成に関して述べたとおり、その何らかのサブセットにこの拡張を制限することも可能である)。次に、入力ストリーム「A A A B B A A C A B A B B A B」に関して確率を再計算して、試験的拡張A 406、B 408、およびC 410に対する値を判定する。この結果は、9つの解析グループであり、ここで「A A」は2/9出現し、「A B」は4/9出現し、「A C」は0/9出現する。したがって、最高確率の拡張「A B」を保持し、他の拡張をつぶしてX1=A,Cにする。この議論では、すべての確率を再計算するが、より効率的な手法は、ノード内の各ノードに対する確率と記号関連を保持して、必要となる情報だけを計算することである。
【0048】
図6は、図5について、X1 412につぶすことを示す。処理は、最高確率を有するノード、例えば、確率4/9のノードB 408の識別で繰り返す。
【0049】
図7に示すとおり、このノード408は、前述のとおり、記号A 414、B 416、C 418で試験的に拡張され、最高確率を有する試験的グループが保持される。確率を再計算した後、その結果は、8つの解析グループであり、そこでは、記号シーケンス「A B A」414が一度、出現し、「A B B」416が一度、出現し、「A B C」418は全く出現しない。試験的拡張A 414と試験的拡張B 416は、同一の発生確率を有するので、どちらの記号を保持するかを選択する規則を定義する必要がある。この議論の場合、等確率が存在するときはいつでも、一番高い行のノード(例えば、トップダウンツリー内の一番左の子ノード)が保持される。同様に、ツリーの行の間に競合が存在する場合、一番左の行のノード(例えば、トップダウンツリーのルートに一番近いノード)が保持される。
【0050】
上述の例示的な入力の解析は、その入力の末尾の2つの記号「A B」を考慮しないことに留意されたい。図7に図示するとおり、その構成が「A B A」、「A B B」、「A B C」に拡張されているので、「A B」に対応するリーフは、存在しない。これを補正するため、コードブックエントリを作成して、入力シーケンスのそのような終端を考慮に入れることができる、あるいはエントリを有さない入力を、特定文字を使用して回避して、符号化済み出力ストリームに挿入することが可能である。例えば、特定記号を使用して、入力の終了を示すことができ、したがって、復号化時に、末尾の文字をどのように扱うかを暗黙指定する。
【0051】
したがって、図8に示すとおり、ノードA 414が保持され、ノードB 416とノードC 418が結合されて、1/8+0/8という結合確率を有するノードX2=B,C 420になる。ここで、次のステップは、入力ストリームに関して現行で最高確率を有するノードを拡張することである。図示するとおり、ノードX1=A,C 412とX0=B,C 402は、同一の発生確率(3/8)を有する。前述のとおり、ツリー内の最高ノード(X0 402)が拡張される。(整合的であることだけが必要であるが、より高いレベルのノードを拡張することが望ましい。というのは、そうすることが、長い符号ワードの数を増加させることによって、符号化効率を向上させ得るからである。)
【0052】
ただし、X0 402は、結合ノードであり、したがって、これは拡張するのではなく、分割しなければならない。図9は、ノードX0をその構成記号B 422とC 424に分割することの結果を図示している。確率を再計算することが、記号シーケンス「A B A」は1/8出現し、「A B X2」は1/8出現し、「A X1」は3/8出現し、「B」 422は2/8出現し、「C」は1/8出現することを示す。これは、分割オペレーションであるので、最高確率を有する分割ノード、例えば、ノードB 422が保持され、残りのノードは、再結合されてX0=C 424に戻る。
【0053】
図10は、高確率ノードB 422を保持することの結果を示している。グループX0は、この場合、単一記号「C」だけを表すことに留意されたい。確率を改訂した後、最高確率を有するノードを識別して、分割または拡張しなければならない。図示するとおり、記号シーケンス「A B A」は1/8出現し、「A B X2」は1/8出現し、「A X1」は3/8出現し、「B」は2/8出現し、「X0」は1/8出現する。したがって、ノードX1 412は、結合ノードであるので、分割しなければならない。
【0054】
分割は、前述の手順で行われ、コードブックの処理は、最高確率ノードが拡張または分割されて、図3で図示するとおり、停止状態が達せられる(例えば、コードブックが最大サイズに達する)まで、循環する。図10の構成の場合、入力記号当たりの平均ビットは、リーフノードの理想ハフマン符号化の下でのフラクショナルビットを想定すると、およそ0.8ビット/記号(これは、末尾の入力「A B」がどのように扱われるかに依存して変化する)である。これは、理想スカラーハフマン符号化など、前の可逆的圧縮技法に対する相当な(およそ10%)節約を表している。
【0055】
私の発明の原理を図示した実施形態との関連で説明し、図示してきたが、そのような原理を逸脱することなく、この図示した実施形態の構成および詳細を変更できることが理解されよう。したがって、頭記の特許請求の範囲およびそれと等価のものの範囲および趣旨内に入る得るすべてのそのような変更は、本発明として請求されるものである。
【図面の簡単な説明】
【図1】 可変から可変へのエントロピー符号化を実現するのに使用することが可能なコンピュータシステムのブロック図である。
【図2】 基本通信モデルを示す図である。
【図3】 可変長記号グループに対する可変長エントリを有するコードブックの作成を示す流れ図である。
【図4】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
【図5】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
【図6】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
【図7】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
【図8】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
【図9】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
【図10】 アルファベット{A,B,C}に対する、図3に準拠するコードブックの作成を示す図である。
Claims (12)
- コンピュータにおいてアルファベットから得られる複数の記号グループに対するコードブックを構成する方法であって、
入力から一連の記号を受信するステップと、
データ構造内に可変サイズの複数の記号グループを記憶するステップであって、前記可変サイズの複数の記号グループの各記号グループは、1つ以上の隣接記号によって定義され、
複数の第1の記号グループの各々の発生確率を計算するステップと、
前記複数の第1の記号グループから第1の高確率記号グループを識別するステップと、
前記複数の第1の記号グループのうち前記第1の高確率記号グループ以外の第1の記号グループを結合して、第1の結合グループにするステップと、
前記アルファベットからの記号である複数の拡張記号をそれぞれ前記第1の高確記号率グループに追加することによって、前記第1の高確率記号グループを複数の第2の記号グループに拡張するステップと、
前記複数の第2の記号グループの各々の発生確率を計算するステップと、
前記複数の第2の記号グループから第2の高確率記号グループを識別するステップと、
前記複数の第2の記号グループのうち前記第2の高確率記号グループ以外の第2の記号グループを結合して、第2の結合グループにするステップと、
前記データ構造内に前記第2の高確率記号グループ、前記第1の結合グループ、および前記第2の結合グループを記憶するステップであって、前記データ構造内の前記可変サイズの複数の記号グループは、前記第2の高確率記号グループ、前記第1の結合グループ、および前記第2の結合グループを含む、ステップと、
前記可変サイズの複数の記号グループの各々の発生確率を計算するステップと、
前記可変サイズの複数の記号グループの各記号グループに対して、その記号グループの発生確率に基づいて可変長符号を割り当てるステップと、
次に続く可変サイズの記号グループから可変長符号への圧縮のために、前記可変サイズの複数の記号グループを、対応する割り当てられた可変長符号と関連付けるコードブックを出力するステップと
を備えることを特徴とする方法。 - 請求項1に記載の方法において、前記可変サイズの複数の記号グループについて所定数のエントリを有するコードブックが得られるまで前記記憶するステップを繰り返すステップをさらに備えることを特徴とする方法。
- 請求項2に記載の方法において、受信した前記一連の記号は、例示的な入力からのものであることを特徴とする方法。
- 請求項1に記載の方法において、前記データ構造は、n個の可変サイズの記号グループを記憶し、前記データ構造内で表されていない記号グループは、特定の記号を使用して符号化されることを特徴とする方法。
- 請求項1に記載の方法において、前記データ構造は、前記可変サイズの複数の記号グループの各記号グループを記憶するための複数のエントリを有するテーブルとして構成されることを特徴とする方法。
- 請求項1に記載の方法において、前記データ構造は、複数の記号を含む複数のノードを有するツリーとして構成され、前記可変サイズの複数の記号グループの各記号グループは、前記ツリーにおける走査パスによって識別されることを特徴とする方法。
- 請求項1に記載の方法において、
前に結合された結合グループを、前記第1の高確率記号グループが識別された前記複数の第1の記号グループに分割するステップ
をさらに備えることを特徴とする方法。 - 請求項1に記載の方法において、前記一連の記号は、不揮発性記憶媒体から取り出されるストリーミングデータを含むことを特徴とする方法。
- 請求項1に記載の方法において、前記第2の高確率記号グループは、前記複数の拡張記号のうち追加された特定の拡張記号が後ろに続く、前記第1の高確率記号グループにより形成され、前記第2の結合グループは、前記複数の追加の拡張記号のうち前記第2の高確率記号グループに追加された前記特定の拡張記号以外のいずれかの拡張記号が後ろに続く、前記第1の高確率記号グループにより形成されることを特徴とする方法。
- アルファベットから得られる複数の記号グループに対するコードブックを構成するためのシステムであって、
一連の記号を受信するための入力手段と、
各記号グループが1つ以上の隣接記号によって定義される複数の第1の記号グループそれぞれの発生確率を計算する手段と、
前記複数の第1の記号グループから第1の高確率記号グループを識別する手段と、
前記複数の第1の記号グループのうち前記第1の高確率記号グループ以外の第1の記号グループを結合して、第1の結合グループにする手段と、
前記アルファベットからの記号である複数の拡張記号をそれぞれ前記第1の高確率記号グループに追加することによって、前記第1の高確率記号グループを複数の第2の記号グループに拡張する手段と、
前記複数の第2の記号グループの各々の発生確率を計算する手段と、
前記複数の第2の記号グループから第2の高確率記号グループを識別する手段と、
前記複数の第2の記号グループのうち前記第2の高確率記号グループ以外の第2の記号グループを結合して、第2の結合グループにする手段と、
前記第2の高確率記号グループ、前記第1の結合グループ、および前記第2の結合グループをデータ構造内に記憶する手段と、
前記第2の高確率記号グループ、前記第1の結合グループ、および前記第2の結合グループを含む可変サイズの複数の記号グループを記憶するための前記データ構造を含むように構成されたメモリと、
前記可変サイズの複数の記号グループの各々の発生確率を計算する手段と、
前記可変サイズの複数の記号グループの各記号グループに対して、その記号グループの発生確率に基づいて可変長符号を割り当てる手段と、
次に続く可変サイズの記号グループから可変長符号への圧縮のために、前記可変サイズの複数の記号グループを、対応する割り当てられた可変長符号と関連付けるコードブックを出力する手段と
を備えたことを特徴とするシステム。 - 請求項10に記載のシステムにおいて、前記第1の結合グループおよび前記第2の結合グループを構成記号グループに分割する手段をさらに備えたことを特徴とするシステム。
- 請求項10に記載のシステムにおいて、前記データ構造は、n個の可変サイズの記号グループを記憶し、かつ前記データ構造は、前記データ構造内で表されていない記号グループを符号化するために使用される特定の記号を記憶することを特徴とするシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/211,532 US6404931B1 (en) | 1998-12-14 | 1998-12-14 | Code book construction for variable to variable length entropy encoding |
US09/211,532 | 1998-12-14 | ||
PCT/US1999/029003 WO2000036751A1 (en) | 1998-12-14 | 1999-12-07 | Code book construction for variable to variable length entropy encoding |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002533005A JP2002533005A (ja) | 2002-10-02 |
JP2002533005A5 JP2002533005A5 (ja) | 2007-02-08 |
JP4559631B2 true JP4559631B2 (ja) | 2010-10-13 |
Family
ID=22787319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000588899A Expired - Lifetime JP4559631B2 (ja) | 1998-12-14 | 1999-12-07 | 可変長から可変長へのエントロピー符号化のためのコードブック構成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6404931B1 (ja) |
EP (1) | EP1147612B1 (ja) |
JP (1) | JP4559631B2 (ja) |
AT (1) | ATE265106T1 (ja) |
DE (1) | DE69916661T2 (ja) |
WO (1) | WO2000036751A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6624761B2 (en) | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US6601104B1 (en) | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US20030191876A1 (en) * | 2000-02-03 | 2003-10-09 | Fallon James J. | Data storewidth accelerator |
US7181608B2 (en) * | 2000-02-03 | 2007-02-20 | Realtime Data Llc | Systems and methods for accelerated loading of operating systems and application programs |
GB2367459A (en) * | 2000-09-28 | 2002-04-03 | Roke Manor Research | Method of compressing data packets |
US7417568B2 (en) | 2000-10-03 | 2008-08-26 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US9143546B2 (en) | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US6735339B1 (en) * | 2000-10-27 | 2004-05-11 | Dolby Laboratories Licensing Corporation | Multi-stage encoding of signal components that are classified according to component value |
US7386046B2 (en) | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
US7016547B1 (en) * | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
ATE543178T1 (de) | 2002-09-04 | 2012-02-15 | Microsoft Corp | Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus |
US7313817B2 (en) * | 2003-06-17 | 2007-12-25 | Lockheed Martin Corporation | Data transmission system utilizing efficient complexity estimation of the kolmogorov complexity for data transmission |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
US7782954B2 (en) * | 2003-09-07 | 2010-08-24 | Microsoft Corporation | Scan patterns for progressive video content |
US7941311B2 (en) * | 2003-10-22 | 2011-05-10 | Microsoft Corporation | System and method for linguistic collation |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7684981B2 (en) * | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7693709B2 (en) | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US7565018B2 (en) * | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
US8184710B2 (en) * | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
KR20110011357A (ko) * | 2009-07-28 | 2011-02-08 | 삼성전자주식회사 | 비트의 순서를 변경한 데이터의 부호화, 복호화 방법 및 장치 |
DE102010009263B4 (de) | 2010-02-25 | 2012-04-12 | Knorr-Bremse Systeme für Nutzfahrzeuge GmbH | Verfahren zur Datenübertragung zu einem elektronischen Steuergerät |
DE102012211031B3 (de) * | 2012-06-27 | 2013-11-28 | Siemens Aktiengesellschaft | Verfahren zur Codierung eines Datenstroms |
US10044405B2 (en) * | 2015-11-06 | 2018-08-07 | Cable Television Laboratories, Inc | Signal power reduction systems and methods |
SE542507C2 (en) | 2016-03-31 | 2020-05-26 | Zeropoint Tech Ab | Variable-sized symbol entropy-based data compression |
US9673836B1 (en) * | 2016-09-23 | 2017-06-06 | International Business Machines Corporation | System level testing of entropy encoding |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4122440A (en) | 1977-03-04 | 1978-10-24 | International Business Machines Corporation | Method and means for arithmetic string coding |
US4464650A (en) | 1981-08-10 | 1984-08-07 | Sperry Corporation | Apparatus and method for compressing data signals and restoring the compressed data signals |
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
JPS61107818A (ja) | 1984-10-30 | 1986-05-26 | Nec Corp | エントロピ−符号化方式とその装置 |
JPH0821863B2 (ja) | 1985-04-13 | 1996-03-04 | キヤノン株式会社 | データ処理方法 |
JPS62247626A (ja) | 1986-04-19 | 1987-10-28 | Fuji Photo Film Co Ltd | 符号化方法 |
US4862167A (en) | 1987-02-24 | 1989-08-29 | Hayes Microcomputer Products, Inc. | Adaptive data compression method and apparatus |
US5532694A (en) | 1989-01-13 | 1996-07-02 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US5003307A (en) | 1989-01-13 | 1991-03-26 | Stac, Inc. | Data compression apparatus with shift register search means |
US5479562A (en) * | 1989-01-27 | 1995-12-26 | Dolby Laboratories Licensing Corporation | Method and apparatus for encoding and decoding audio information |
DE3943881B4 (de) | 1989-04-17 | 2008-07-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Digitales Codierverfahren |
US5254990A (en) | 1990-02-26 | 1993-10-19 | Fujitsu Limited | Method and apparatus for compression and decompression of data |
US5049881A (en) | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
US5227789A (en) | 1991-09-30 | 1993-07-13 | Eastman Kodak Company | Modified huffman encode/decode system with simplified decoding for imaging systems |
JP3134424B2 (ja) | 1991-10-31 | 2001-02-13 | ソニー株式会社 | 可変長符号化方法及び装置 |
US5229768A (en) | 1992-01-29 | 1993-07-20 | Traveling Software, Inc. | Adaptive data compression system |
US5227788A (en) | 1992-03-02 | 1993-07-13 | At&T Bell Laboratories | Method and apparatus for two-component signal compression |
US5406279A (en) | 1992-09-02 | 1995-04-11 | Cirrus Logic, Inc. | General purpose, hash-based technique for single-pass lossless data compression |
US5442350A (en) | 1992-10-29 | 1995-08-15 | International Business Machines Corporation | Method and means providing static dictionary structures for compressing character data and expanding compressed data |
US5400075A (en) | 1993-01-13 | 1995-03-21 | Thomson Consumer Electronics, Inc. | Adaptive variable length encoder/decoder |
JP2505980B2 (ja) | 1993-04-16 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 静的辞書作成方法及びコンピュ―タ実行システム |
JP3210996B2 (ja) | 1993-07-30 | 2001-09-25 | 三菱電機株式会社 | 高能率符号化装置及び高能率復号化装置 |
US5550541A (en) | 1994-04-01 | 1996-08-27 | Dolby Laboratories Licensing Corporation | Compact source coding tables for encoder/decoder system |
JP3278297B2 (ja) | 1994-07-20 | 2002-04-30 | 富士通株式会社 | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 |
JPH08116263A (ja) * | 1994-10-17 | 1996-05-07 | Fujitsu Ltd | データ処理装置及びデータ処理方法 |
JPH08167852A (ja) * | 1994-12-13 | 1996-06-25 | Fujitsu Ltd | データ圧縮方法及び装置 |
JPH08205169A (ja) * | 1995-01-20 | 1996-08-09 | Matsushita Electric Ind Co Ltd | 動画像符号化装置及び復号装置 |
DE69619002T2 (de) * | 1995-03-10 | 2002-11-21 | Toshiba Kawasaki Kk | Bildkodierungs-/-dekodierungsvorrichtung |
US5884269A (en) | 1995-04-17 | 1999-03-16 | Merging Technologies | Lossless compression/decompression of digital audio data |
JP3181809B2 (ja) | 1995-05-31 | 2001-07-03 | シャープ株式会社 | データ圧縮のための圧縮コードの復元回路 |
US5825830A (en) | 1995-08-17 | 1998-10-20 | Kopf; David A. | Method and apparatus for the compression of audio, video or other data |
US5819215A (en) | 1995-10-13 | 1998-10-06 | Dobson; Kurt | Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data |
US5933104A (en) | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
US5831559A (en) | 1996-01-24 | 1998-11-03 | Intel Corporation | Encoding/decoding video signals using multiple run-val mapping tables |
JP3566441B2 (ja) | 1996-01-30 | 2004-09-15 | シャープ株式会社 | テキスト圧縮用辞書作成装置 |
JP3277792B2 (ja) | 1996-01-31 | 2002-04-22 | 株式会社日立製作所 | データ圧縮方法および装置 |
JP3267142B2 (ja) | 1996-02-23 | 2002-03-18 | ケイディーディーアイ株式会社 | 可変長符号生成装置 |
US5790706A (en) | 1996-07-03 | 1998-08-04 | Motorola, Inc. | Method and apparatus for scanning of transform coefficients |
DE19637522A1 (de) | 1996-09-13 | 1998-03-19 | Bosch Gmbh Robert | Verfahren zur Reduzierung von Daten in Videosignalen |
US5959560A (en) | 1997-02-07 | 1999-09-28 | Said; Amir | Data compression via alphabet partitioning and group partitioning |
US5999949A (en) | 1997-03-14 | 1999-12-07 | Crandall; Gary E. | Text file compression system utilizing word terminators |
US5946043A (en) | 1997-12-31 | 1999-08-31 | Microsoft Corporation | Video coding using adaptive coding of block parameters for coded/uncoded blocks |
US6100824A (en) | 1998-04-06 | 2000-08-08 | National Dispatch Center, Inc. | System and method for data compression |
US6029126A (en) | 1998-06-30 | 2000-02-22 | Microsoft Corporation | Scalable audio coder and decoder |
-
1998
- 1998-12-14 US US09/211,532 patent/US6404931B1/en not_active Expired - Lifetime
-
1999
- 1999-12-07 JP JP2000588899A patent/JP4559631B2/ja not_active Expired - Lifetime
- 1999-12-07 DE DE69916661T patent/DE69916661T2/de not_active Expired - Lifetime
- 1999-12-07 AT AT99968085T patent/ATE265106T1/de not_active IP Right Cessation
- 1999-12-07 EP EP99968085A patent/EP1147612B1/en not_active Expired - Lifetime
- 1999-12-07 WO PCT/US1999/029003 patent/WO2000036751A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
DE69916661T2 (de) | 2004-08-19 |
JP2002533005A (ja) | 2002-10-02 |
EP1147612A1 (en) | 2001-10-24 |
US6404931B1 (en) | 2002-06-11 |
WO2000036751A1 (en) | 2000-06-22 |
EP1147612B1 (en) | 2004-04-21 |
ATE265106T1 (de) | 2004-05-15 |
DE69916661D1 (de) | 2004-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4559631B2 (ja) | 可変長から可変長へのエントロピー符号化のためのコードブック構成 | |
JP4559632B2 (ja) | 可変長対可変長エントロピー符号化 | |
JP4786796B2 (ja) | 周波数領域オーディオ符号化のためのエントロピー符号モード切替え | |
JP3278297B2 (ja) | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 | |
Ziv et al. | A universal algorithm for sequential data compression | |
US9223765B1 (en) | Encoding and decoding data using context model grouping | |
EP1320832B1 (en) | Method of compressing data packets | |
US7064489B2 (en) | Huffman data compression method | |
JPH06224777A (ja) | 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法 | |
JPH05300027A (ja) | 可逆可変長符号化方式 | |
Al-Okaily et al. | Toward a better compression for DNA sequences using Huffman encoding | |
CN111510156A (zh) | 一种基于分段的哈夫曼动态压缩及解压大文件的方法 | |
JPS6356726B2 (ja) | ||
JP2020077969A (ja) | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム | |
Kieffer et al. | Survey of grammar-based data structure compression | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
JP3425143B2 (ja) | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 | |
WO2019021552A1 (ja) | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム | |
Yin et al. | On the Applications and Parallelization of Multichannel Source Coding | |
Chen et al. | Alphabet partitioning techniques for semiadaptive huffman coding of large alphabets | |
Sabuj et al. | A Modified Approach to Huffman Algorithm for Unequal Bit Costs | |
Sriman et al. | Efficient Text Compression Algorithms: Principles, Performance, and Applications | |
JP3425142B2 (ja) | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 | |
JPH1155125A (ja) | 文字データの圧縮・復元方法 | |
Abdullah-Al-Amin | Memory efficient data structure for static huffman tree |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061207 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061207 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20061207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091009 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100107 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100115 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100209 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100217 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100309 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100409 |
|
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: 20100716 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100723 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4559631 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |