[go: up one dir, main page]

JP3974036B2 - ハフマン・デコーディングを実施する方法 - Google Patents

ハフマン・デコーディングを実施する方法 Download PDF

Info

Publication number
JP3974036B2
JP3974036B2 JP2002540317A JP2002540317A JP3974036B2 JP 3974036 B2 JP3974036 B2 JP 3974036B2 JP 2002540317 A JP2002540317 A JP 2002540317A JP 2002540317 A JP2002540317 A JP 2002540317A JP 3974036 B2 JP3974036 B2 JP 3974036B2
Authority
JP
Japan
Prior art keywords
code
binary digital
digital signal
huffman
length
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 - Fee Related
Application number
JP2002540317A
Other languages
English (en)
Other versions
JP2004515096A5 (ja
JP2004515096A (ja
Inventor
アチャリャ,ティンク
ツァイ,ピン−シン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2004515096A publication Critical patent/JP2004515096A/ja
Publication of JP2004515096A5 publication Critical patent/JP2004515096A5/ja
Application granted granted Critical
Publication of JP3974036B2 publication Critical patent/JP3974036B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion 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

【0001】
(関連出願)
本特許出願は、Acharyaらによる、同時出願された米国特許出願第09/704,392号、「A Method of Generating Huffman Code Length Information」(代理人整理番号第042390号、P9804)に関するものであり、本発明の譲受人に譲受され、かつ参照により、本明細書に組み込んである。
【0002】
(背景)
本開示は、ハフマン・デコーディングに関する。
【0003】
周知のように、ハフマン・コーディングは、普及している可変長統計エンコーディング・スキームである。またこれも周知のように、ハフマン・コードの生成は、それぞれの個々のシンボルに対する統計的確率に依拠する。たとえば、D.A.Huffmanによる、「A Method for the Reconstruction of Minimum Redundancy Codes」(Proceedings of the IRE、Volume 40、No.9、pages 1098〜1101,1952)を参照されたい。従来のテーブル・ルックアップ・ベースのエンコーディング・スキームが、少なくとも部分的に、効率性がよく、かつ比較的実装が簡単であるために、ハフマン・エンコーディングに広く使用されている。しかし、テーブル・サーチ・ベースのデコーディングは、通常、ソフトウェアとハードウェアの両方の実装の点において非効率的である。これは、実用的な応用例に典型的であるように、テーブル内のエントリの数がかなり高い場合に、特にそうである。ハフマン・デコーディングに用いられる別のアプローチが、「木をトラバースする技術」を用いるハフマン木の生成である。しかし、このデコーディング技術はまた欠点も有する。この特定の技術はビット・シーケンシャルであり、ハフマン木生成プロセスのためおよびデコーディング・プロセスのためのメモリ割当および計算の実行の両方で、余分な「オーバヘッド」を導入する。
【0004】
本発明と考えられる主題については、本明細書の結論部分において、詳細に記載しかつ明確に特許請求することとする。しかし、本発明は、構成およびオペレーションの方法と、その目的、特徴、利点の両方に関して、以下の詳細な説明を添付図面と合わせて参照することにより、最も良く理解されるであろう。
【0005】
(詳細な説明)
以下の詳細な説明において、本発明を完全に理解するために、多数の具体的な詳細事項を記載する。しかし、これらの具体的な詳細事項なしに本発明を実践できることを、当業者なら理解するであろう。他の例においては、本発明の意味が不明確とならないように、周知の方法、手順、構成要素、回路について詳細に記述していない。
【0006】
上記に表示したように、1組のシンボルのハフマン・コードの生成が、ソース・シンボルの出現確率に基づく。通常、本状況下でハフマン木と呼ぶ2分木の構築が用いられる。上述の文書で、D.A.Huffmanは、このようにプロセスを記述している。
・すべての可能なシンボルを、その確率とともに列挙する。
・最小の確率を有する2つのシンボルを見つける。
・これらを、その確率が個々の確率の合計である、両方のシンボルを含む単一の集合と置き換える。
・リストがただ1つのメンバしか含まなくなるまで繰り返す。
この手順により、複数の集合の再帰的に構造化された集合が作成され、そのそれぞれが正確に2つのメンバを含む。したがって、それは、「葉」としてのシンボルを有する2分木(「ハフマン木」)として表すことができる。次いで、特定のシンボルのコード(「ハフマン・コード」)を形成するために、2分木をルートからそのシンボルまでトラバースし、左の枝には「0」を、右の枝には「1」を記録する。しかし、この手順についての1つの問題点は、得られるハフマン木が一意ではないことである。このようなコードの応用例の一例が、GZIPなどのテキスト圧縮である。GZIPは、「無料の」または自由に使用可能なUNIX(登録商標)のようなオペレーション・システムを開発するという目標を有するGNU(Gnu’s Not Unix)プロジェクトの下で開発されたテキスト圧縮ユーティリティであり、UNIXオペレーション・システム上で「compress」テキスト圧縮ユーティリティを置き換えるためのものである。たとえば、ウェブサイト「http://www.gzip.orh/」のgzip−1.2.4.tarとして使用可能なGailly,J.L.およびAdler,M.による「GZIP documentation and sources」を参照されたい。
【0007】
周知のように、結果として生じるハフマン・コードはプリフィックス・コードであり、より頻繁に現れるシンボルに、より少ない数のビットが割り当てられて、可変長ハフマン・コードを形成する。その結果、シンボルの出現頻度を利用することから、最終的に平均コード長が減少される。
【0008】
図1は、3つのソース・シンボルを有するハフマン木の簡単な一例を示す図である。異なる2値シンボルを木の縁に割り当てることにより、いくつかの2進コードを使用して、同じハフマン木を表すことができる。
【0009】
このハフマン木のための可能な集合のハフマン・コードが、図2に例示してある。図2から、ハフマン・コードは一意ではないことが示されているが、この例からは、それぞれのシンボルの個々のコード長が一意であるように見える。
【0010】
対応するハフマン木を構築することにより、ハフマン・コードの長さ情報を生成できる。しかし、上記に表示したように、ハフマン・コードはこの方式で生成された場合は一意ではない。しかし、2つの制約を課すことにより、ハフマン木を用いて作成されたハフマン・コードが一意であると保証できることが分かる。
これらの制約とは、
1.所与のビット長のすべてのコードが、それらが表すシンボルと同じ順序で、辞書式順序で連続した値を有する。
2.より短いコードが、より長いコードより辞書式順序で先行する。
【0011】
これらの制約に基づいて、ハフマン・コードが一意的に判断できる。図3は、たとえば、これらの制約を用いる19シンボルのハフマン・コード集合を示す図であり、ここで、コード長はハフマン木を使用して事前に判断されている。図3の表については、ハフマン・コード・テーブル内のエントリ内のダッシュが、シンボルおよび現在のソース・アルファベットによるコードが存在せず、その長さ情報がゼロであることを示している。
【0012】
本発明の範囲がこの点に限定されるものではないが、上述した制約は、たとえば上記に記述したユーティリティ、GZIPなどのさまざまな圧縮アプローチおよび標準において用いられてきた。通常このような応用例では、ハフマン木情報は、圧縮されたテキスト・データとともに1組のコード長情報で通過する。したがって、その集合のコード長情報は、一意のハフマン木を再構築するのに十分である。たとえば、図3に例示されているハフマン・コード・テーブルを、GZIPで実施されるような以下のプロセスを使用して生成できる。
【0013】
コード長は、最初、長さ[l]である。
1)それぞれのコード長のためのコードの数をカウントする。
長さN(N>=1)のコードの数を「カウント[N]」とする。
2)それぞれのコード長のための最小コードの数値を見つける。
Figure 0003974036
3)2で判断された連続した値を使用して、すべてのコードに数値を割り当てる。
【0014】
上記に表示したように、ハフマン・エンコーディングが、テーブル・ルックアップ技術を使用して比較的簡単に達成できる。しかし、ハフマン・コードのデコーディングは、通常はより計算集約的である。なぜなら、コード・ワードがデコードすべき圧縮されたビット・ストリーム内で受け取られた場合、コード・ワード間には定義済み境界がないからである。上記に記述したように、ハフマン・コードは可変長コードである。
【0015】
一定入力レート・デコーダと呼ぶ1つのアプローチまたは技術が入力ビット・ストリームを一度に1ビットずつシリアルに処理する。この方法は、デコーディングまたはハフマン木の構築を用いる。したがって、ルートから開始し、その技術には、終端ノードに到達するまで、デコーディング木の枝をトラバースすることが必要となる。終端ノードでは、コード・ワードは完全にデコードされ、したがって、対応するシンボルを所望のように作成または出力できる。次いで、このプロセスは、再び木のルートから開始する。たとえば、B.BhaskarinおよびK.Konstantinidesによる「Image and Video Compressions Standards:Algorithms and Architectures」(Kluwer Academic Publishers、1995)を参照されたい。
【0016】
図4は、対応するデコーディング木を有するハフマン・エンコーディング・テーブルの一例を示す図である。ハードウェアまたはソフトウェアにおけるこのようなデコーダに関連する1つの問題が、どのようにしてデコーディング木をメモリに効率的にマッピングするかである。たとえば、図5は、図4のデコーディング木を使用するビット・シリアル・ハフマン・デコーディングのための読取専用メモリ(ROM)エントリのテーブルを示す図である。メモリを効率的にマッピングするための1つのアプローチが、たとえば、Mukherjeeらによる「MARVLE:a VLSI chip for data compression using tree based codes」(IEEE Transactions on Very Large Scale Integration(VLSI)System、1(2):203−214、June 1993)に提案されている。
【0017】
特に効率的というわけではないが、ハフマン・コードをデコードするための別のアプローチが、ハフマン・テーブルのそれぞれのエントリを入力バッファ内の入力ビットと比較することである。このアプローチでは、最悪の場合、エンコーディング・テーブル内のNエントリが比較される。ここで、Nとはシンボルの総数である。その上、そのエントリのためのコード長情報は周知である。
【0018】
データ構造を使用して一連のバイナリ・デジタル信号をデコードする方法の一実施形態では、以下のアプローチを用いることができる。データ構造を、デコードされているサブグループのバイナリ・デジタル信号の長さに少なくとも部分的に基づいてサーチできる。この特定の実施形態では、エンコードされるハフマンなどの一連のバイナリ・デジタル信号がエンコードされるが、本発明の範囲は、ハフマン・コーディングまたはデコーディングに限定されるものではない。この特定の実施形態では、本発明の範囲がこの点に限定されるものではないが、サーチする前に、系列内の第1のNバイナリ・デジタル信号はサブグループとして選択される。ここで、Nとは最短コードの長さである。さらに、サブグループの長さが、長さNを有するデータ構造内のコードがそのサブグループに一致しない場合は、系列内の次のバイナリ・デジタル信号によって増加される。同様に、このアプローチが用いられるこの特定の実施形態では、サブグループと同じ長さを有するデータ構造内の全コードが、一致するかどうかチェックされる。以下にさらに詳細に記述するが、データ構造は、少なくとも部分的に、コード長に基づいて構成されることに留意されたい。さらに、データ構造は、同じコード長を有するコードが順次に格納されるように構成される。
【0019】
本発明の範囲がデータ構造のこの特定の実施形態に限定されるものではないが、この特定の実施形態は、テーブル内に冗長を示すためにいくつかのシンボルを再配置した後の、図3のハフマン・コード・テーブルに関係することがある。このことは、たとえば、図6に例示してある。たとえば、ハフマン・コード長ゼロを有するシンボルとは、これらのシンボルが用いられないということである。同様に、上記の第1の制約に基づき、所与のビット長のすべてのコードが、辞書式順序で連続した値を有する。したがって、長さ情報を追跡することにより、この長さのハフマン・コードを有する辞書式順序の第1のシンボルのハフマン・コード、および同じ長さを有する最後のシンボルまでのハフマン・コードの数のハフマン・コードが情報の冗長がほとんどない情報を提供する。
【0020】
データ構造のこの特定の実施形態が、図7に示してある。図7は図6と同じ情報を有するが、話を簡単にするためおよび使用しやすくするために再配置してあることに留意されたい。したがって、図7はより少ないメモリを用いており、以下にさらに詳細に記述するように、ビット・パラレル・デコーディング・スキームが適用できる。
【0021】
図7に例示したデータ構造の実施形態では、図7の実施形態で示したように、ハフマン・コードのデコーディングを、それぞれのコード長のためのハフマン・コードのコード長および範囲についての情報に少なくとも部分的に基づいて、ビット・パラレル・アプローチで実施できる。このことは、擬似コードの実施を使用して以下に例示し記述する。繰り返すが、本発明の範囲が提供される特定の擬似コードに限定されるものではない。
【0022】
この状況では、合成データ構造をNDS(NDC)と呼ぶ。これは、プログラミング言語Cのための合成データ構造の定義に対応するが、本発明の範囲がこのプログラミング言語または特定のプログラミング言語に限定されるものではない。この特定の実施形態では、繰り返すが、本発明の範囲がこの点に限定されるものではないが、この特定の実施形態では、NDSのそれぞれのエントリが、図7に示されているように、4つのフィールド、つまりそれぞれ、指定された長さ、開始コード、終了コード、ベース・インデックスを有する。もちろん、開始コードおよび終了コードではなく、開始コードおよび開始コードと終了コードとの差を用いることなどの、多くの均等データ構造が可能であることが理解されよう。
【0023】
しかし、この特定の実施形態では、NDCは、互いに異なったコード長を有するエントリの数である。それぞれのエントリが、同じコード長を有する1グループの連続したハフマン・コードを表す。開始コードはこのグループの第1のハフマン・コードであり、終了コードはこのグループの最後のハフマン・コードである。図6に示されているように、ベース・インデックスは、対応するシンボルのためのハフマン・テーブル内の第1のハフマン・コードのインデックス値である。上記に表示したように、本発明の範囲は、この特定のデータ構造に限定されるものではないことに留意されたい。この特定のデータ構造に対する多くの修正形態が可能であり、上記に記述してきた内容の趣旨および範囲内に含まれることは明らかである。
【0024】
図7に例示したデータ構造の実施形態を用いて、一連のバイナリ・デジタル信号をデコードするための本発明による一実施形態の擬似コード表示を以下に示す。
Figure 0003974036
【0025】
この特定の実施形態では、本発明の範囲がこの点に限定されるものではないが、データ構造をサーチする前に、系列内の第1のNバイナリ・デジタル信号がサブグループとして選択されるが、ここでNとは最短コードの長さである。次いで、その長さを有するすべてのコードを一致するかどうかチェックする。一致が出現しなかった場合は、サブグループの長さを系列内の次のバイナリ・デジタル信号によって増加させ、次いで、増加した長さを有するコードを一致するかどうかチェックする。このプロセスを一致が出現するまで続行する。上記に注記したように、データ構造が少なくとも部分的にコード長に基づいて構成され、データ構造は、同じコード長を有するコードが辞書式順序で順次格納されるよう構成される。このことにより、所望のままに効率的なオペレーションが可能となる。
【0026】
一代替実施形態では、最長コードでサーチを開始し、一致が出現しなかった場合は、サブグループの長さを減少させることが可能であることに留意されたい。しかし、通常、より短いハフマン・コードがより高い出現確率を有するために、このような状況では最短コードからサーチを開始することがより効率的である。
【0027】
一連のバイナリ・デジタル信号をデコードする方法のこの特定の実施形態は、メモリの利用、計算の複雑さおよび実施の面で、いくつかの利点を有する。上記に提案したように、データ構造のためのエントリの数は、シンボルの数ではなく、ハフマン・コードのための最大コード長に依存する。したがって、このことによりメモリが削減される。たとえば、GZIPなどの固定限度コード長を用いる応用例の場合、代表的なハフマン木が285シンボルを有し、コード長は15ビットに制限される。それと対称的に、この実施形態のために用いるエントリの数は、データによって異なるが、せいぜい15エントリを有し、その結果この例では、19xメモリ利用の削減が生じる。
【0028】
同様に、ビット・シリアル・サーチ・プロセスではなく、ビット・パラレル・サーチ・プロセスを使用することにより、計算の複雑さが減少される。ここで、この実施形態は、少なくとも部分的にデータ構造内のコード長情報に基づく。そのコード長を有するグループのための開始および終了コードの範囲をチェックすることにより、既存アプローチに比べてサーチ手順が向上する。19シンボルおよび7ビットの最大コード長を用いるこの実施形態の実験結果から、ハフマン・コード・テーブルのサーチを用いるデコーディングと比較して、複雑さの点で5.5倍削減される。同様に、ハフマン木が構築される場合に生じるような2分木の構築が起きないために、かつ動的なメモリ割当がほとんどまたは全くないために、ハードウェアとソフトウェアの両方で、本発明によるデコーディングの実施が比較的簡単となる。
【0029】
特定の実施形態のみを記述してきたが、本発明の範囲が特定の実施形態または実装形態に限定されるものではないことが、もちろん、理解されるであろう。たとえば、一実施形態はハードウェアでなされ、別の実施形態はソフトウェアでなされるてもよい。同様に、一実施形態が、たとえば、ファームウェア、あるいはハードウェア、ソフトウェア、またはファームウェアの組合せでもよい。同様に、本発明の範囲がこの点に限定されるものではないが、一実施形態が、記憶媒体などの製品を備えることができる。たとえば、CD−ROMやディスクなどの記憶媒体が、それに命令を格納していることがあり、コンピュータ・システムやプラットフォームまたは画像作成システムなどのシステムによって実行された場合、その結果、たとえば、上記に記述したようなハフマン・デコーディングを実施する方法などの、本発明による方法の一実施形態を実行できる。同様に、データ構造を作成する方法の実施形態を、本発明に従って実行できる。
【0030】
本発明のある特徴について、本明細書に例示し記述してきたが、当業者には、多くの修正形態、置換形態、変更形態、均等物が考えられるであろう。したがって、頭記の特許請求の範囲は、すべてのこのような修正形態および変更形態を、本発明の真の趣旨内に入るものとして、包含することを意図することを理解されるであろう。
【図面の簡単な説明】
【図1】 ハフマン木構築および関連するハフマン木の一例を示す図である。
【図2】 図1のハフマン木のための可能なハフマン・コードを示す表である。
【図3】 選択されたルールを適用して、一意的にハフマン・コードを判断するハフマン・コードの一例を示す表である。
【図4】 対応するデコーディング木を有するハフマン・エンコーディング・テーブルの一例を示す図である。
【図5】 ビット・シリアル・ハフマン・デコーディングのための読取専用メモリ(ROM)エントリを示す表である。
【図6】 異なる構成が適用されている、図3の表からの情報を使用する表である。
【図7】 本発明によるデータ構造の一実施形態を示す表である。

Claims (2)

  1. コード長、開始コードと終了コードとを表す値及びベース・インデックスをそれぞれ保持するフィールドを有したテーブルを備えたデータ構造を使用して、エンコードされている第1のバイナリ・デジタル信号をデコードする方法であって、
    (a)前記テーブルの最短のコード長に関する、開始コードと終了コードとを表す値から得られる開始コードから終了コードまでの複数の第2のバイナリ・デジタル信号のいずれかと前記第1のバイナリ・デジタル信号とが一致するか否か判定し、
    (b)前記第1のバイナリ・デジタル信号と一致する第2のバイナリ・デジタル信号が存在する場合には、その一致した第2のバイナリ・デジタル信号とそれに対応するベース・インデックスとから決定されるメモリ場所に格納されているデータを前記第1のバイナリ・デジタル信号の復号値として取り出して出力し、
    (c)前記第2のバイナリ・デジタル信号のいずれも前記第1のバイナリ・デジタル信号と一致しない場合には、次に短いコード長に関してステップ(a)〜(c)を繰り返し、この繰り返しのステップでマッチが見つかった場合に前記第1のバイナリ・デジタル信号の復号値を出力する
    方法。
  2. コード長、開始コードと終了コードとを表す値及びベース・インデックスをそれぞれ保持するフィールドを有したテーブルを備えたデータ構造を使用して、エンコードされている第1のバイナリ・デジタル信号をデコードする命令を格納した記憶媒体であって、
    その命令が実行されたときにコンピュータに、
    (a)前記テーブルの最短のコード長に関する、開始コードと終了コードとを表す値から得られる開始コードから終了コードまでの複数の第2のバイナリ・デジタル信号のいずれかと前記第1のバイナリ・デジタル信号とが一致するか否か判定させ、
    (b)前記第1のバイナリ・デジタル信号と一致する第2のバイナリ・デジタル信号が存在する場合には、その一致した第2のバイナリ・デジタル信号とそれに対応するベース・インデックスとから決定されるメモリ場所に格納されているデータを前記第1のバイナリ・デジタル信号の復号値として取り出して出力させ、
    (c)前記第2のバイナリ・デジタル信号のいずれも前記第1のバイナリ・デジタル信号と一致しない場合には、次に短いコード長に関してプロセス(a)〜(c)を繰り返させ、この繰り返しのプロセスでマッチが見つかった場合に前記第1のバイナリ・デジタル信号の復号値を出力させる
    ための命令を格納した記憶媒体
JP2002540317A 2000-10-31 2001-10-09 ハフマン・デコーディングを実施する方法 Expired - Fee Related JP3974036B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/704,380 US6563439B1 (en) 2000-10-31 2000-10-31 Method of performing Huffman decoding
PCT/US2001/031532 WO2002037687A2 (en) 2000-10-31 2001-10-09 Method of performing huffman decoding

Publications (3)

Publication Number Publication Date
JP2004515096A JP2004515096A (ja) 2004-05-20
JP2004515096A5 JP2004515096A5 (ja) 2005-12-22
JP3974036B2 true JP3974036B2 (ja) 2007-09-12

Family

ID=24829232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002540317A Expired - Fee Related JP3974036B2 (ja) 2000-10-31 2001-10-09 ハフマン・デコーディングを実施する方法

Country Status (9)

Country Link
US (3) US6563439B1 (ja)
JP (1) JP3974036B2 (ja)
KR (1) KR100527891B1 (ja)
CN (1) CN100417028C (ja)
AU (1) AU2002211558A1 (ja)
DE (1) DE10196890B4 (ja)
GB (1) GB2385759B (ja)
TW (1) TW538599B (ja)
WO (1) WO2002037687A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6636167B1 (en) * 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US7274671B2 (en) * 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US7129863B1 (en) * 2001-06-01 2006-10-31 California Institute Of Technology Interval modulation coding
US6778107B2 (en) * 2001-08-30 2004-08-17 Intel Corporation Method and apparatus for huffman decoding technique
US6573847B1 (en) 2002-01-08 2003-06-03 Intel Corporation Multi-table mapping for huffman code decoding
US20050111556A1 (en) * 2003-11-26 2005-05-26 Endress William B. System and method for real-time decompression and display of Huffman compressed video data
US8407239B2 (en) 2004-08-13 2013-03-26 Google Inc. Multi-stage query processing system and method for use with tokenspace repository
US7068192B1 (en) * 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US7917480B2 (en) 2004-08-13 2011-03-29 Google Inc. Document compression system and method for use with tokenspace repository
EP1908287A4 (en) * 2005-07-20 2011-02-16 Humax Co Ltd CODIER AND DECODER
JP4958466B2 (ja) * 2006-04-05 2012-06-20 グローバル・オーエルイーディー・テクノロジー・リミテッド・ライアビリティ・カンパニー 表示装置
TWI330473B (en) * 2006-11-24 2010-09-11 Primax Electronics Ltd Huffman decoding method
CN100581258C (zh) * 2006-12-01 2010-01-13 致伸科技股份有限公司 霍夫曼解码方法和霍夫曼解码装置
CN101282121B (zh) * 2007-04-05 2010-10-06 安凯(广州)微电子技术有限公司 一种基于条件概率的哈夫曼解码的方法
US20090006399A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Compression method for relational tables based on combined column and row coding
US8902873B2 (en) * 2009-10-08 2014-12-02 Qualcomm Incorporated Efficient signaling for closed-loop transmit diversity
CN102237878B (zh) * 2010-04-20 2015-09-02 慧荣科技股份有限公司 一种霍夫曼解码方法
US8442988B2 (en) 2010-11-04 2013-05-14 International Business Machines Corporation Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data
KR101725223B1 (ko) * 2011-03-25 2017-04-11 삼성전자 주식회사 저장 장치에서의 데이터 압축 방법
US8593308B1 (en) * 2012-05-31 2013-11-26 International Business Machines Corporation Method of accelerating dynamic Huffman decompaction within the inflate algorithm
KR101853148B1 (ko) * 2013-05-20 2018-04-27 엘에스산전 주식회사 데이터 저장방법
CN105988777B (zh) * 2015-01-27 2019-03-15 深圳市腾讯计算机系统有限公司 一种规则匹配方法及装置
US9564917B1 (en) * 2015-12-18 2017-02-07 Intel Corporation Instruction and logic for accelerated compressed data decoding
CN107483059B (zh) * 2017-07-31 2020-06-12 广东工业大学 一种基于动态霍夫曼树的多路数据编解码方法及装置

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
FR2612025B1 (fr) * 1987-03-06 1989-05-26 Labo Electronique Physique Dispositif de decodage de signaux codes en duobinaire
US4813056A (en) 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
DE3943880B4 (de) * 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
KR0138971B1 (ko) * 1992-10-13 1998-06-15 세끼모또 다다히로 허프만 부호 복호회로
US5778371A (en) * 1994-09-13 1998-07-07 Kabushiki Kaisha Toshiba Code string processing system and method using intervals
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US5821887A (en) * 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
US5875122A (en) 1996-12-17 1999-02-23 Intel Corporation Integrated systolic architecture for decomposition and reconstruction of signals using wavelet transforms
FI102426B (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
US6009201A (en) 1997-06-30 1999-12-28 Intel Corporation Efficient table-lookup based visually-lossless image compression scheme
US5973627A (en) * 1997-08-28 1999-10-26 Philips Electronics North America Corporation Variable length decoder with adaptive acceleration optimized by sub-grouping and cross-grouping the symbols having the highest probability of occurrence
US6009206A (en) 1997-09-30 1999-12-28 Intel Corporation Companding algorithm to transform an image to a lower bit resolution
US6160918A (en) 1997-10-02 2000-12-12 At&T Corp. Method and apparatus for fast image compression
US6285796B1 (en) 1997-11-03 2001-09-04 Intel Corporation Pseudo-fixed length image compression scheme
US6091851A (en) 1997-11-03 2000-07-18 Intel Corporation Efficient algorithm for color recovery from 8-bit to 24-bit color pixels
US6151069A (en) * 1997-11-03 2000-11-21 Intel Corporation Dual mode digital camera for video and still operation
US6130960A (en) * 1997-11-03 2000-10-10 Intel Corporation Block-matching algorithm for color interpolation
US6351555B1 (en) 1997-11-26 2002-02-26 Intel Corporation Efficient companding algorithm suitable for color imaging
US6094508A (en) 1997-12-08 2000-07-25 Intel Corporation Perceptual thresholding for gradient-based local edge detection
US6229578B1 (en) 1997-12-08 2001-05-08 Intel Corporation Edge-detection based noise removal algorithm
US6348929B1 (en) 1998-01-16 2002-02-19 Intel Corporation Scaling algorithm and architecture for integer scaling in video
US6215916B1 (en) 1998-02-04 2001-04-10 Intel Corporation Efficient algorithm and architecture for image scaling using discrete wavelet transforms
US6075470A (en) 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
US6392699B1 (en) * 1998-03-04 2002-05-21 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6211521B1 (en) 1998-03-13 2001-04-03 Intel Corporation Infrared pixel sensor and infrared signal correction
US6356276B1 (en) 1998-03-18 2002-03-12 Intel Corporation Median computation-based integrated color interpolation and color space conversion methodology from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6366694B1 (en) 1998-03-26 2002-04-02 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit Bayer pattern RGB color space to 24-bit CIE XYZ color space
US6366692B1 (en) 1998-03-30 2002-04-02 Intel Corporation Median computation-based integrated color interpolation and color space conversion methodology from 8-bit bayer pattern RGB color space to 24-bit CIE XYZ color space
US6154493A (en) 1998-05-21 2000-11-28 Intel Corporation Compression of color images based on a 2-dimensional discrete wavelet transform yielding a perceptually lossless image
US6040790A (en) * 1998-05-29 2000-03-21 Xerox Corporation Method of building an adaptive huffman codeword tree
US6124811A (en) 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6233358B1 (en) 1998-07-13 2001-05-15 Intel Corporation Image compression using directional predictive coding of the wavelet coefficients
US6236765B1 (en) 1998-08-05 2001-05-22 Intel Corporation DWT-based up-sampling algorithm suitable for image display in an LCD panel
US6047303A (en) 1998-08-06 2000-04-04 Intel Corporation Systolic architecture for computing an inverse discrete wavelet transforms
US5995210A (en) 1998-08-06 1999-11-30 Intel Corporation Integrated architecture for computing a forward and inverse discrete wavelet transforms
US6178269B1 (en) 1998-08-06 2001-01-23 Intel Corporation Architecture for computing a two-dimensional discrete wavelet transform
US6166664A (en) 1998-08-26 2000-12-26 Intel Corporation Efficient data structure for entropy encoding used in a DWT-based high performance image compression
US6301392B1 (en) 1998-09-03 2001-10-09 Intel Corporation Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
US6731807B1 (en) * 1998-09-11 2004-05-04 Intel Corporation Method of compressing and/or decompressing a data set using significance mapping
US6195026B1 (en) 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding
US6108453A (en) 1998-09-16 2000-08-22 Intel Corporation General image enhancement framework
US6236433B1 (en) 1998-09-29 2001-05-22 Intel Corporation Scaling algorithm for efficient color representation/recovery in video
US6625318B1 (en) * 1998-11-13 2003-09-23 Yap-Peng Tan Robust sequential approach in detecting defective pixels within an image sensor
US6759646B1 (en) * 1998-11-24 2004-07-06 Intel Corporation Color interpolation for a four color mosaic pattern
US6151415A (en) 1998-12-14 2000-11-21 Intel Corporation Auto-focusing algorithm using discrete wavelet transform
US6215908B1 (en) 1999-02-24 2001-04-10 Intel Corporation Symmetric filtering based VLSI architecture for image compression
US6381357B1 (en) 1999-02-26 2002-04-30 Intel Corporation Hi-speed deterministic approach in detecting defective pixels within an image sensor
US6275206B1 (en) 1999-03-17 2001-08-14 Intel Corporation Block mapping based up-sampling method and apparatus for converting color images
US6377280B1 (en) 1999-04-14 2002-04-23 Intel Corporation Edge enhanced image up-sampling algorithm using discrete wavelet transform
US6574374B1 (en) * 1999-04-14 2003-06-03 Intel Corporation Enhancing image compression performance by morphological processing
US6563948B2 (en) * 1999-04-29 2003-05-13 Intel Corporation Using an electronic camera to build a file containing text
US6640017B1 (en) * 1999-05-26 2003-10-28 Intel Corporation Method and apparatus for adaptively sharpening an image
US6697534B1 (en) * 1999-06-09 2004-02-24 Intel Corporation Method and apparatus for adaptively sharpening local image content of an image
US6292114B1 (en) 1999-06-10 2001-09-18 Intel Corporation Efficient memory mapping of a huffman coded list suitable for bit-serial decoding
US6628716B1 (en) * 1999-06-29 2003-09-30 Intel Corporation Hardware efficient wavelet-based video compression scheme
US6600833B1 (en) * 1999-07-23 2003-07-29 Intel Corporation Methodology for color correction with noise regulation
US6373481B1 (en) 1999-08-25 2002-04-16 Intel Corporation Method and apparatus for automatic focusing in an image capture system using symmetric FIR filters
US7065253B2 (en) * 1999-09-03 2006-06-20 Intel Corporation Wavelet zerotree coding of ordered bits
US6658399B1 (en) 1999-09-10 2003-12-02 Intel Corporation Fuzzy based thresholding technique for image segmentation
US6625308B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Fuzzy distinction based thresholding technique for image segmentation
US6633610B2 (en) * 1999-09-27 2003-10-14 Intel Corporation Video motion estimation
US6956903B2 (en) 2001-05-29 2005-10-18 Intel Corporation Method and apparatus for three-dimensional wavelet transform
US6798901B1 (en) * 1999-10-01 2004-09-28 Intel Corporation Method of compressing a color image
US6834123B2 (en) 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
US7106910B2 (en) * 1999-10-01 2006-09-12 Intel Corporation Color video coding scheme
US6731706B1 (en) * 1999-10-29 2004-05-04 Intel Corporation Square root raised cosine symmetric filter for mobile telecommunications
US6813384B1 (en) 1999-11-10 2004-11-02 Intel Corporation Indexing wavelet compressed video for efficient data handling
US6628827B1 (en) * 1999-12-14 2003-09-30 Intel Corporation Method of upscaling a color image
US6650688B1 (en) 1999-12-20 2003-11-18 Intel Corporation Chip rate selectable square root raised cosine filter for mobile telecommunications
US6757430B2 (en) * 1999-12-28 2004-06-29 Intel Corporation Image processing architecture
US6748118B1 (en) * 2000-02-18 2004-06-08 Intel Corporation Method of quantizing signal samples of an image during same
US6449380B1 (en) * 2000-03-06 2002-09-10 Intel Corporation Method of integrating a watermark into a compressed image
US6654501B1 (en) 2000-03-06 2003-11-25 Intel Corporation Method of integrating a watermark into an image
US6738520B1 (en) * 2000-06-19 2004-05-18 Intel Corporation Method of compressing an image
US6775413B1 (en) * 2000-09-18 2004-08-10 Intel Corporation Techniques to implement one-dimensional compression
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6636167B1 (en) * 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US6690306B1 (en) * 2000-11-03 2004-02-10 Intel Corporation Method of generating a length-constrained huffman code
US6678708B1 (en) * 2000-11-15 2004-01-13 Intel Corporation Method and apparatus for two-dimensional separable symmetric filtering
US6751640B1 (en) * 2000-11-20 2004-06-15 Intel Corporation Method and apparatus for multiply-accumulate two-dimensional separable symmetric filtering
US20020063899A1 (en) * 2000-11-29 2002-05-30 Tinku Acharya Imaging device connected to processor-based system using high-bandwidth bus
US6707928B2 (en) * 2000-11-29 2004-03-16 Intel Corporation Method for block-based digital image watermarking
US6917381B2 (en) * 2000-11-30 2005-07-12 Intel Corporation Color filter array and color interpolation algorithm
US20020118746A1 (en) * 2001-01-03 2002-08-29 Kim Hyun Mun Method of performing video encoding rate control using motion estimation
US20020122482A1 (en) * 2001-01-03 2002-09-05 Kim Hyun Mun Method of performing video encoding rate control using bit budget
US6662200B2 (en) 2001-01-03 2003-12-09 Intel Corporation Multiplierless pyramid filter
US6681060B2 (en) * 2001-03-23 2004-01-20 Intel Corporation Image retrieval using distance measure
US20020174154A1 (en) 2001-03-26 2002-11-21 Tinku Acharya Two-dimensional pyramid filter architecture
US6766286B2 (en) * 2001-03-28 2004-07-20 Intel Corporation Pyramid filter
US20020184276A1 (en) 2001-03-30 2002-12-05 Tinku Acharya Two-dimensional pyramid filter architecture
US6889237B2 (en) * 2001-03-30 2005-05-03 Intel Corporation Two-dimensional pyramid filter architecture
US6725247B2 (en) * 2001-04-30 2004-04-20 Intel Corporation Two-dimensional pyramid filter architecture
US20030021486A1 (en) * 2001-07-27 2003-01-30 Tinku Acharya Method and apparatus for image scaling
US6653953B2 (en) 2001-08-22 2003-11-25 Intel Corporation Variable length coding packing architecture
US6996180B2 (en) * 2001-09-05 2006-02-07 Intel Corporation Fast half-pixel motion estimation using steepest descent
US6891889B2 (en) * 2001-09-05 2005-05-10 Intel Corporation Signal to noise ratio optimization for video compression bit-rate control
US7136515B2 (en) * 2001-09-13 2006-11-14 Intel Corporation Method and apparatus for providing a binary fingerprint image
US6795592B2 (en) * 2001-09-13 2004-09-21 Intel Corporation Architecture for processing fingerprint images
US20030063782A1 (en) * 2001-09-13 2003-04-03 Tinku Acharya Method and apparatus to reduce false minutiae in a binary fingerprint image
US6944640B2 (en) * 2001-12-28 2005-09-13 Intel Corporation Progressive two-dimensional (2D) pyramid filter
US20030123539A1 (en) * 2001-12-28 2003-07-03 Hyung-Suk Kim Method and apparatus for video bit-rate control
US20030194008A1 (en) * 2002-04-11 2003-10-16 Tinku Acharya Computationally fast and efficient DV to DVD transcoding
US20030198387A1 (en) * 2002-04-22 2003-10-23 Tinku Acharya Method and apparatus for image retrieval
US7133555B2 (en) * 2002-08-02 2006-11-07 Intel Corporation Image color matching scheme
US7266151B2 (en) * 2002-09-04 2007-09-04 Intel Corporation Method and system for performing motion estimation using logarithmic search
US20040042551A1 (en) * 2002-09-04 2004-03-04 Tinku Acharya Motion estimation
US20040057626A1 (en) * 2002-09-23 2004-03-25 Tinku Acharya Motion estimation using a context adaptive search
US7075987B2 (en) * 2002-09-23 2006-07-11 Intel Corporation Adaptive video bit-rate control

Also Published As

Publication number Publication date
WO2002037687A3 (en) 2002-08-29
US6982661B2 (en) 2006-01-03
KR20030040567A (ko) 2003-05-22
US20030174077A1 (en) 2003-09-18
GB2385759B (en) 2004-11-03
US20030085821A1 (en) 2003-05-08
WO2002037687A2 (en) 2002-05-10
KR100527891B1 (ko) 2005-11-15
TW538599B (en) 2003-06-21
AU2002211558A1 (en) 2002-05-15
US6563439B1 (en) 2003-05-13
GB2385759A (en) 2003-08-27
US6646577B2 (en) 2003-11-11
DE10196890B4 (de) 2008-02-07
JP2004515096A (ja) 2004-05-20
GB0311329D0 (en) 2003-06-25
CN1547805A (zh) 2004-11-17
DE10196890T1 (de) 2003-12-18
CN100417028C (zh) 2008-09-03

Similar Documents

Publication Publication Date Title
JP3974036B2 (ja) ハフマン・デコーディングを実施する方法
US6563956B1 (en) Method and apparatus for compressing data string
JP4501288B2 (ja) ハフマン符号の復号方法、復号装置、ハフマン符号復号用テーブルおよびその作成方法
JP4012065B2 (ja) ハフマン・コード長情報を生成する方法
JPH0682370B2 (ja) 文字処理装置
US6741191B2 (en) Huffman decoding method and apparatus
US8976048B2 (en) Efficient processing of Huffman encoded data
US6778107B2 (en) Method and apparatus for huffman decoding technique
JPH07107303A (ja) ハフマン符号の復号化方法
RU2473960C2 (ru) Способ нахождения максимальных повторяющихся участков последовательности символов конечного алфавита и способ вычисления вспомогательного массива
JP3565147B2 (ja) 復号装置
US6765513B2 (en) Decoding bit streams compressed with compression techniques employing variable length codes
GB2402584A (en) Method of performing Huffman decoding
JP7584579B2 (ja) 受信したデータを処理する装置
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JP3332630B2 (ja) 復号装置及びデコードテーブルの生成方法
JP2005175926A (ja) 復号装置及び方法
JP3236747B2 (ja) データ伸長方式
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
JPH05341953A (ja) データ圧縮方法及び装置
KR20050037307A (ko) N-트리 검색에 기초한 허프만 디코딩 방법 및 장치
JPH0993138A (ja) データ圧縮装置及びデータ復元装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060913

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070613

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100622

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100622

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees