JP2002271208A - ハフマン符号化・復号化法 - Google Patents
ハフマン符号化・復号化法Info
- Publication number
- JP2002271208A JP2002271208A JP2001375518A JP2001375518A JP2002271208A JP 2002271208 A JP2002271208 A JP 2002271208A JP 2001375518 A JP2001375518 A JP 2001375518A JP 2001375518 A JP2001375518 A JP 2001375518A JP 2002271208 A JP2002271208 A JP 2002271208A
- Authority
- JP
- Japan
- Prior art keywords
- huffman
- bits
- code
- value
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012360 testing method Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 23
- 238000007906 compression Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 239000003550 marker Substances 0.000 description 19
- 230000006835 compression Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 10
- 238000013144 data compression Methods 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 101100366711 Arabidopsis thaliana SSL13 gene Proteins 0.000 description 1
- 240000002795 Guizotia abyssinica Species 0.000 description 1
- 101100366561 Panax ginseng SS11 gene Proteins 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Discrete Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
短時間で達成できるハフマン符号化と復号化の方法を提
供する。 【解決手段】 特にパックしたデータ形式から行なうハ
フマン符号化は、符号長によって異なる2つのテーブル
形式を使うと簡単化することができる。これにより、ハ
フマン・テーブルのサイズを小さくすることもできる。
ハフマン復号化法は、圧縮したデータ・ストリーム中の
有効なハフマン符号の長さに対して試験を行なうと共
に、試験基準に対応するオフセットを使うことにより、
実行時間を短縮することができる。これにより、ハフマ
ン・テーブルの記号値への直接索引を生成する特定の試
験結果が得られる一方、このような目的に使う参照テー
ブルのサイズを大幅に小さくすることができる。
Description
用の画像圧縮に関し、特に、パックした形式で離散コサ
イン変換(Discrete Cosine Transform:DCT) ブロッ
クを格納するための構造と組み合わせた、JPEG(Jo
int Photographic Experts Group)標準に従うハフマン
(Huffman)エントロピー符号化と復号化に関する。
めて大量のデータが含まれている。したがって、ディジ
タル・データ・プロセッサで伝送したり処理したりする
ことができるようにディジタル化する場合、これらの画
像を構成している画素を忠実度良く表現するには、数メ
ガ・バイトを必要とする場合が多い。画像圧縮の目的
は、記憶のコストや伝送の時間とコストを節約するため
に、より少ないデータで画像を表現することである。最
も効率的な圧縮は、元の画像を正確に再現するのではな
く、それを近似することにより達成される。JPEG標
準を使うと、様々な用途の間で画像を交換するのが可能
になると共に、マルチメディア用途においてディジタル
連続色調カラー画像を提供する機能を実現することがで
きる。JPEG標準については、ペネベーカーとミッチ
ェル著『JPEG静止画像データ圧縮標準』("JPEG St
ill Image Data Compression Standard" by Pennebaker
and Mitchell, published by Van Nostrand, 1993.)に
詳細に説明されている。
ー・スケール(白黒の階調)または色情報を備え、時間
に依存しない画像を主として扱う。この点で、MPEG
(Moving Picture Experts Group)と区別される。JP
EG圧縮を使うと、必要な記憶容量を1/10以下にす
ることができると共に、プロセスにおけるシステムの応
答時間を改善することができる。JPEG標準の主目的
は、所定量のデータ、および/または、利用可能な伝送
時間もしくは処理時間、に対して最大の画像忠実度を実
現することである(「Aおよび/またはB」は「Aおよ
びB、A、またはB」を表わす)。そして、これらデー
タ圧縮の尺度は、すべて達成されている。データを1/
20以下に圧縮しても(したがって伝送時間または処理
時間を1/20以下に減らしても)平均的な視聴者は気
付かない、ということは多くの場合に正しい。
コサイン変換(DCT) がある。この離散コサイン変換
の重要な側面として、非相関係数を生成する点が挙げら
れる。係数が相関しないということは、圧縮にとって極
めて重要である。なぜなら、各係数を独立に扱うことが
できるので、圧縮効率を損なうことがないからでる。D
CTの別の重要な側面は、視覚的に重み付けられた量子
化値を使ってDCT係数を量子化できる点である。人間
の視覚系の応答は空間周波数に強く依存しているので、
画像を、各々が特定の空間周波数を有する1組の波形に
分解することにより、目で見える画像構造と認識できな
い画像構造とを分離することが可能になる。したがっ
て、DCTを使うと、この分解にとって良好な近似を実
現することができる。この結果、視聴者が認識する画像
の忠実度に重大な影響を与えることなく、データを切り
捨てるすなわち省略することが可能になる。
まず、目に見えるエイリアシング(曲線や斜線に生じる
ギザギザ)が生じないと思われる程度に高い任意の解像
度で、8×8の格子中の64画素から成るブロック群に
分解する。(カラー画像は、まず各色素を8×8画素の
ブロックに別々に分解することにより、圧縮する)。こ
の量子化した画像データに極めて迅速にDCTを施し
て、64個のDCT係数を得ることのできる手法とハー
ドウェアは、公知である。これらのDCT係数の多く
は、零またはほぼ零である。零のDCT係数は、画像に
全く影響しない。ほぼ零のDCT係数は、比較的目に感
じない空間周波数に対応させる場合、無視すなわち省略
することができる。人間の目は極めて高い空間周波数と
極めて低い空間周波数に対して感度が低いから、JPE
G標準の一部として、水平方向と垂直方向の空間周波数
の累積値にほぼ対応するいわゆるジグザグ・パターンで
DCT係数を提供すると、重要度の低い空間周波数に対
応するDCT係数をDCT係数のデータ・ストリームの
最後にグループ化するようになる。これにより、多くの
場合、これら重要度の低い空間周波数に対応するDCT
係数を1つのグループとして効率的に圧縮することがで
きる。
号化は実務で扱う大部分の画像に対して意味のあるデー
タ圧縮を実現しているけれども、実際のデータ削減量は
保証されておらず、圧縮の程度は最適化されていない。
これは、特に各DCT係数の表現の精度が等しい場合に
は、同数のビットを伝送する必要があるからである(た
だし、JPEG標準は、1つのテーブルで符号化されて
いる複数の範囲によってDCT値を量子化するのを許し
ている)。すなわち、DCT符号化によって得られる圧
縮利得は、主に、DCT係数の零値とほぼ零値を処理す
ることにより効率が増大することに由来する。ただし、
精度を落とす量子化によっても圧縮を達成することがで
きる。以上の点から、JPEG標準は、エントロピー符
号化と呼ばれている第2段階の圧縮と符号化を規定して
いる。
じみのある熱力学の分野におけるエントロピーの概念に
類似している。熱力学では、エントロピーとは、物理系
における「無秩序」の程度を数量化したものである。情
報理論の分野では、エントロピーとは、任意の大きさの
1団のデータから成る環境における任意の所定の情報量
子(例えば記号)の内容の予測可能性の尺度のことであ
る。この場合、エントロピーは、任意の所定の情報量子
(例えば記号)の意味とは無関係である。この概念によ
って、所定のアルファベット記号に対して行ないうる圧
縮の程度の達成可能な下限を決めることができる。より
基礎的には、この概念によって、「予測可能の程度が比
較的高いデータ(あるいは記号)は、予測可能の程度が
低いデータ(あるいは記号)よりも情報量が少ない」と
いう前提と、「予測可能の程度が比較的低いデータ(あ
るいは記号)は、予測可能の程度が高いデータ(あるい
は記号)よりも情報量が多い」という換位命題とに基づ
いた圧縮手法が得られる(換位命題とは、ある命題の主
部と述部の中の語を入れ替えた命題のことである)。し
たがって、説明のために適切な符号を1つ仮定すると、
予測可能の程度が高い(すなわちデータ本体における出
現頻度が高いが、情報量は少ない)記号(あるいは値)
にはより少ないビット数を割り当てる一方、予測可能の
程度が比較的低い記号(あるいは値)にはより長い符号
(すなわちより多いビット数)を割り当てることによ
り、最適化された効率的な圧縮を行なうことができる。
号化は、エントロピー符号化に適している。そして、J
PEG標準は、両者に適合している。JPEG標準にお
ける対象の操作に関する相違点の1つは、両符号化手法
にとって符号に対応する値のテーブルが必要であるにも
かかわらず、デフォルトのテーブルが算術符号化には用
意されているが、ハフマン符号化には用意されていな
い、という点である。しかし、特定のハフマン・テーブ
ルの中には、最大の符号化効率と再構成時における最大
の画像忠実度とが得られるようにJPEG標準の下で自
由に指定できるものがある。けれども、それらは、特製
のハフマン・テーブルを計算・作成する計算上のオーバ
ーヘッドを避けようとして画像忠実度が過度に劣化しな
い限り、デフォルトのテーブルであるかのように見境な
く使われる場合が多い。
なわち、符号化テーブルあるいは条件付けテーブルが画
像に合理的に良好に適している場合、特にハフマン符号
化を使うエントロピー符号化がデータ圧縮を保証する程
度は極めて大きい。けれども、符号化それ自体は、統計
に基づいていると共に多数の画像値あるいは画像値を表
わす多数の値に関する一団の統計情報を必要とするの
で、極めて多くの計算を必要とする、という点である。
逆に、テーブルを作成する元になった画像において出現
するのが比較的稀(まれ)である多くの値を符号化する
ことを符号化中の画像が必要としている場合(たとえこ
のような環境が出現するのが稀であっても)、当該符号
化中の画像を表していない確率を搭載したテーブルを使
うと、圧縮ではなく展開が行なわれる可能性がある。
圧縮および/または最適忠実度が達成されなくとも、あ
る種のハフマン・テーブルが事実上標準的に使用される
ようになったのは、この理由による。逆に、ハフマン符
号化の圧縮効率は、通常、顕著に向上しうる。そして、
問題の画像に対応する特製のハフマン・テーブルによっ
て、所定ビット数のデータに対して画像忠実度を最適に
維持しうる。しかし、これは、符号化するのに多大な計
算負荷を負担しないかぎり達成できない。
手法の階層的性質と、最も出現頻度が高く最も予測可能
性の高い値(たとえそこに含まれている情報が理想的に
は余り意味がないとしても)を表わすのに少なくとも1
ビットを使う必要があるという事実とに起因して、符号
化すべき特定の値すべての発生頻度が50%に上昇する
と、ハフマン符号化らしく別の非効率が発生する。例え
ば、ある単一の値の発生頻度が75%に上昇すると、ハ
フマン符号化の効率は86%に低下する。実際問題とし
て、大多数のDCT係数は零である(あるいは零に量子
化されている)。したがって、DCT係数あるいはDC
T係数の差分をハフマン符号化する際に、多大な非効率
がしばしば発生する。AC係数の場合、JPEG委員会
は、零値の係数群を1つにまとめて個々の零値の係数を
符号化しないことにより、この問題を解決した。したが
って、ハフマン記号が50%以上発生する可能性は、著
しく低い。
を検出するのに余分の処理が必要な可変長符号によって
主として決まる。したがって、ハフマン復号化も、多大
な計算負荷を必要とする。さらに、このハフマン復号化
処理は、エントロピー符号化した画像データと一緒に伝
送する必要があると共に画像ごとに変化しうる符号化テ
ーブルを使って行なう。テーブル中のデータにアクセス
する複雑さは、ハフマン符号が可変長であるという事実
によって累増する。ハフマン符号化では、特定の記号
(あるいは値)に含まれている単一のデータあるいはあ
る量のデータの予測可能性に従って異なった数のビット
を割り当てる。したがって、ハフマン符号は可変長であ
る。応答速度を速めるために、復号化時に使用可能なハ
フマン・テーブルから参照用テーブルを計算してそれを
格納しておくのが実務になっいる。したがって、1つの
符号語当り少なくとも2バイトのテーブル・データにア
クセスする必要のあの場合が多い。
が許されているから、従来の復号化方法では、記号値ご
とに216個のエントリと符号長ごとに216個のエントリ
を備えたハフマン・テーブルにアクセスすることにな
る。これらのエントリは、ハフマン・テーブルを指定す
るあるいは変更するごとに計算する必要がある。復号化
のためには、最大4つのDCテーブルおよび4つのAC
テーブルと交互に配置した最低限4要素の画像とが必要
になる可能性がある。小さなオンチップのキャッシュ
(あるいはRAM)を備えたハードウェアの場合、この
ようなテーブルを使うと、キャッシュ・ミスあるいはR
AMアクセスごとに余分の処理サイクルを必要とするの
で、性能が劣化することになる。
い処理資源とハードウェアを使い極めて短時間で達成で
きるハフマン符号化と復号化の方法を提供することであ
る。
タ形式を使って増強したハフマン符号化と復号化の方法
を提供することである。
号化法は、次のように構成する。記号をハフマン符号化
するハフマン符号化法であって、1つのテーブルにおけ
る所定長の符号の最初の出現に対するシード値を定義す
るステップと、1つの符号語の長さを格納するステップ
と、前記数および前記符号語のビット数が所定ビット数
以下の場合、前記長さおよび前記符号語を第1の形式で
格納するステップと、前記数および前記画像データが前
記所定ビット数を超えるビット数から成る場合、前記シ
ード値への索引、オフセット、および前記符号語を第2
の形式で格納するステップとを備える。
うに構成する。圧縮データをハフマン復号化するハフマ
ン復号化法であって、有効なハフマン符号の長さを判断
する複数の試験基準の各々を使ってデータ・ストリーム
のビットを試験するステップと、前記長さに対応する複
数のオフセットのうちの1つと前記有効なハフマン符号
とを組み合わせて、索引を生成するステップと、前記索
引を使って、ハフマン・テーブル中の記号値にアクセス
するステップとを備える。
実施形態を説明する。図1は、ペネベーカーらの上掲書
の393頁に記載されているJPEG標準に従う、ハフ
マン・テーブル仕様の構文を示す図である。図1に示す
構文は、マーカー・セグメントと呼ばれており、以下で
ハフマン・エントロピー符号化または復号化を実行する
のに使用する少なくとも1つのハフマン符号化テーブル
を定義するのに使う。新たなパラメータすなわちテーブ
ル値を変更すべきときはいつでも、これと同じ構文を使
う。マーカー・セグメントは、常に、累積バイト数を含
んでいる(これは、セグメントの終わりに所定の論理値
のビットを付加することにより行なう場合がある)。そ
して、符号のフレーム開始(start of frame: SOF)
ブロックと走査開始(start of scan:SOS)ブロック
に適用されたマーカー・セグメントは、ヘッダと呼ばれ
ている。
は、図1に示すように常に、2バイト符号で始まる。こ
の2バイト符号は、16進数の「FF」バイトで始ま
り、当該マーカー・セグメントの機能を指定する非零の
1バイトが続く。例えば、「FFDB」は「量子化テー
ブルを定義する(define quantization table:DQ
T)」を表し、「FFC4」は「ハフマン・テーブルを
定義する(define Huffman table: DHT)」を表わ
す。特に、「ハフマン・テーブルを定義する(DH
T)」機能に適用する場合、続く2バイトは、マーカー
・セグメントに設けられたパラメータ・フィールドの長
さLh を指定している。続く1バイトのうちの第1のニ
ブル中の1ビットTcは、DCまたはAC(「0」また
は「1」)として直ぐに続くテーブルを指定している。
(1ニブル=1バイトの半分=4ビット)。次に続くニ
ブル中のビット群Thは、当該テーブルの名前を指定し
ている。DCテーブルとACテーブルの各々に対して最
大4つのテーブルが許される。そして、これらのテーブ
ルのうちの任意のものあるいは全部を定義または再定義
するのに、マーカー・セグメントを使うことができる。
号の個数を指定している。これらの符号は、JPEG標
準下で許される最大ビット長(あるいは任意のビット
長)に対応する引き続くテーブル中に含まれることにな
る。表記規則によると、1ビット符号の個数はL1であ
り、16ビット符号の個数はL16である。画像の精度
が8ビットであると、量子化後に得られる係数は高々1
1ビットである。したがって、特に画像の精度が8ビッ
トである場合には、すべてのビット長が表現されるわけ
ではない。画像データ中で表現されない符号長は、すべ
て、16進数の「00」として符号化することになる。
続くバイト群V1,1 〜V1,L16 は、出現頻度(例えば所
定の長さの符号が提示される回数など)の順に並べた各
ハフマン符号に対応する実際の値である。
なわち、ハフマン符号化などのエントロピー符号化で
は、出現頻度すなわち出現可能性の高い値にはより少な
いビットを割り当てる。そして、DCT係数の多くは、
零である可能性がある、という点である。したがって、
JPEG標準は、各々が256ものエントリを有する8
つものハフマン・テーブルを用意している(そして、特
定のハフマン符号の特定のDCT係数へのマッピングは
常に定義されている、ということを保証している)。こ
のプロセスを速めるために、参照テーブルを用意して、
ハフマン・テーブルのVi,j フィールドを検索すること
もできる。これにより、特定のVi,j 値を捜し出す操作
の回数を減らすことができる。しかし、余分のメモリ資
源を必要とする。そして、上述したように、より多数の
テーブル・エントリを展開するのに余分の計算負荷をも
たらす。
を用いて、マーカー・セグメントの応用を説明する。導
入として、次の点を理解する必要がある。すなわち、圧
縮プロセスにおける量子化と離散コサイン変換(DC
T)の結果は、ラスター走査順に並べた一連のDCT係
数になっている(ラスター走査とは、CRTディスプレ
イの水平方向に左から右に走査しながら順次下方へ移動
する走査方式のことである)。零値の係数は、それらに
ジクザク順にアクセスすることにより大雑把にグループ
化されている。そして、さらなる圧縮(およびエントロ
ピー符号化など他の変換プロセスから成る強化)は、本
願の関連出願に開示されているラン・アンド・サイズ
(R/S)データに従ってデータをパックすることによ
り得られる。ランとは、零値のAC DCT係数から成
る連続列の長さのことである。サイズとは、非零のDC
T係数を指定するのに必要なビット数のことである。ラ
ンすなわちR値は、R/Sバイトの上位ニブル(=4ビ
ット)として符号化される。サイズすなわちS値は、R
/Sバイトの下位ニブルとして符号化される。
CT係数値は、R/S値によって完全には指定できな
い、という点を認識すべきである。しかし、JPEG標
準に従ってR/S値だけを符号化し、かつ、図2に示す
ように、各符号に、正のACDCT係数またはDC D
CT係数差分値から成る実際のビット、および負のAC
DCT係数またはDC DCT係数差分値から成る実
際のビットを付加すれば、後述するように極めて膨大な
データ圧縮をしながら、かつ、すべての細部にわたって
JPEG標準に準拠しながら、元のDCT係数の情報を
すべて含めるのに十分である。
トのマーカーが左方に伸びるように、ちょうど16列に
示してある。各バイトは、当該各バイトの2ニブルを表
わす2つの16進数化ディジットによって表されてい
る。
art of image: SOI)を表わす「FFD8」である。
第2のマーカーは、量子化テーブルの仕様を表わす「F
FDB」である。ここで、次の点を理解すべきである。
すなわち、量子化したDCT係数の値は、大きさが固定
された範囲の値を表わす必要はない。正確には、量子化
したDCT係数の値は、各々、大きさが他のもの異なる
範囲の値を表わすことができる、という点である。この
テーブルは、元の画像に対応するDCT係数を、本発明
を理解するのに重要でない方法で分析することにより得
られる。そして、このテーブルは、後で画像を再構成す
る間にDCT係数を「逆量子化(dequantize)」するの
に使う。
マン・テーブルを指定しているマーカー・セグメントの
開始を表わす「FFC4」である。次の2バイト「01
A2」は10進数「418」の16進符号である。10
進数「418」は、走査開始(SOS)を表わす次のマ
ーカー「FFDA」までのバイト数である。「FFD
A」では、構成要素(例えばR、G、B、グレースケー
ル〔白黒の階調〕、輝度/クロミナンス〔参照色との色
質の違い〕など)の個数で始まるパラメータ・リストの
長さが指定されている。そして、模式的に「・・・」で
表してある圧縮データが続く。
Thを表わす2ニブルから成る。両ニブルとも零である
から、このテーブルをDCテーブル0として定義してい
る。これらはDCテーブルであり、かつ、ブロック当り
1つのDC DCT係数しか用意されていないから、ラ
ン長は存在しない。そして、各バイトの第1のニブルが
零である一方、第2のニブルは各サイズの余分のビット
数(圧縮データ・ストリーム中で次に続く余分のビット
数)を指定している。符号中の特定の数は、図4に示す
ハフマン符号に対応している。これらのものは、3ビッ
ト長の符号5個を含めて12個しかない。これら12個
の値は、次の12バイトで指定されている。これで、D
Cテーブル0は完了する。
い。すなわち、Tc、Thに1バイト、Liに16バイ
ト、Vi,j に12バイトである。この29バイトという
値は、マーカーの直後に指定されているパラメータ長の
418バイトよりもはるかに小さい。したがって、次の
1バイトの2ニブルは、このマーカー・セグメントで指
定される第2のハフマン・テーブルのクラスと名前を定
義している。この場合、Tc値とTh値がそれぞれ
「1」と「0」であるから、第2のハフマン・テーブル
は、ACテーブル0である。次の16バイトは、各長さ
の符号数を示すLi 値である。そして、次のバイト群
(その数はLi 中で列挙されている符号の合計数〔最大
64〕に等しい)は、出現頻度の降順のハフマン符号の
各々に対するVi, j 記号値である。これで、ACテーブ
ル0は完了する。
式で記載すると共に符号化したさらに2つのテーブル、
DCテーブル1とACテーブル1から成る。DCテーブ
ル1用のハフマン符号を、図5に表として示す。
の特徴がいくつか分かる。第1に、上述したように、ハ
フマン符号は可変長である。そして、その「カテゴリ」
は、ビット数すなわちサイズすなわちS値である。この
S値は、上述したR/Sバイトに含まれていると共に、
図3などのハフマン・テーブルにVi,j として記録され
ている。第2に、すべて「1」値のビットから成る符号
は、許されない。第3に、所定長の複数の符号は、許さ
れる。上記「複数」は、当該所定長の符号によって表し
うる値の個数よりも小さい。第4に、そして本発明を理
解するのに最も重要なものとして、JPEGハフマン符
号を構築して、階層的に区別した値を表わしている。こ
の制約すなわち特質は、より長い他の符号と接頭辞が同
じになる符号は許されない、という特徴に現れている。
ーブルの構造を使うことにより、特定のハフマン符号群
と、それらにそれぞれ割り当てたR/S値との間の対応
関係を再構築することができる、ということが想起され
る。しかし、上述したように、このような再構築は、複
雑であると共に時間をくう。したがって、参照テーブル
を使ってハフマン・テーブルの検索する方がずっと普通
である。このプロセスは、ハフマン符号は可変長である
ので、有効なハフマン符号に対応する連続ビット数(1
6以下)をも認識している必要がある、という事実によ
って複雑になっている。
テーブルを検索する公知の方法は、圧縮データ中で(次
に)続く16ビットを取り上げ、(216個のエントリを
有するテーブルで)検索対象符号のビット数を見つけ、
(同様のサイズの)別のテーブルで検索対象符号に対応
するR/Sバイトを捜し出すものであろう。しかし、こ
の方法は、記憶空間の観点から無駄が多いと共に、メモ
リに多大な負荷をかける。例えば、検索対象符号が調べ
るべき16ビットのうちの始めの1ビット符号であると
すると、各テーブルの半分は、同数ビット(16ビッ
ト)が「1」であり、検索対象記号に対するR/S値バ
イトが同一になるであろう。公知の別の方法では、複数
のテーブルを使うが、それに対応して多数の検索操作を
必要とする。
ビットに対応する数値を有するものと考えることができ
ると共に、所定数の2進ビットに対応する数値が大きす
ぎてもそれを算出できる、というハフマン符号の特徴を
利用している。圧縮データのうちのnビットが論理的に
この最大値(以下、max(n)、ただしn=ビット
数)以上である場合、追加のビットを調べ、max(n
+1)と比較する必要がある。また、本発明は、ハード
ウェア・アーキテクチャの観点から、正しいビット数を
考察し、それより多いビット数に対する残りの試験が失
敗するまで、すべての試験が合格するから(例えば論理
値が有効なハフマン符号に対して大きすぎる)、これら
の試験は並行して実行できる、という事実も利用してい
る。
16個の比較器を使って並行に実行することができる。
図6では、16個の比較器は、C[0・・・n]≧ma
x(n)なる数式で表されている。各比較器は、バレル
・シフタなどのCレジスタの連続するステージに接続さ
れた1個から16個の入力端子を備えている。これらの
比較器は、ディジタルであり、論理ゲートアレイとして
構成することができる。
現在の最上位ビットMSB(C[0])と1ビット値で
あるmax(1)とを比較する。1ビット符号がない場
合、max(1)=0である。1ビット符号がある場
合、max(1)=1である。(すべて「1」から成る
符号は不許可であるから、1ビット符号がある場合、そ
の1ビット符号は「0」である)。max(n)の値
は、max(n)がnビットのうちの第1の符号であ
り、より長い符号語の接頭辞であるように構築されてい
るから、いくつかの符号を有する第1のLn に対する非
零のmax(n)が存在することになる。(例えば、m
ax(2)=“10”であり、これは、図4のカテゴリ
5の接頭辞である)。
7では、圧縮データのだんだん多くなるビットとmax
(n)の値とを比較している。nの値は、比較が失敗す
る(すなわち「0」を生成する)最初の値に成るように
決めてある。
算術演算装置)への入力の1つとしてCレジスタのn個
のMSBに付加した先行する「0」を示す図である。残
りの入力は、事前算出したoffset(n)である。
加算後に得られる低位の結果は、参照テーブル(LU
T)/ハフマン・テーブルへの索引である(この索引
は、AC符号化用の8ビットのうちのDC差分用の4ビ
ットから成っている)。参照テーブル(LUT)/ハフ
マン・テーブルは、「ハフマン・テーブルを定義(Defi
ne Huffman Table: DHT)」マーカー・セグメントで
渡されたVi,j 記号値を含んでいる。このテーブルの出
力は、R/Sバイトである。
フローチャートを示す図である。この方法論は、図3の
DHTマーカー・セグメントで指定されているR/Sバ
イトへのオフセット(offset)も構築する。ただ
し、offset(0)は、R/SリストまたはR/S
リストへのポインタの第1バイトから成る索引(例えば
「0」)である。ステップ71におけるmax(n)と
offset(n)の初期化は、i、max(0)、o
ffset(0)を「0」に設定することにより開始す
る(ステップ72)。次いで、ステップ73で、iをイ
ンクリメントし、offsetをmax(i−1)未満
の最後のoffsetに設定する。max(i)の値
は、Li +max(i−1)として計算する。したがっ
て、Li が非零になるまで、offset(n)とma
x(n)は「0」のままである。それゆえ、図6または
図7の最初の比較C[0・・・n]は、常に合格する。
なぜなら、(当該長さの少なくとも1つの符号が存在す
ることを示す)非零のLi が出現するまで、第1ビット
の論理値/数値は、常に「0」以上であるからである。
ステップ73に示すように、非零(すなわち「1」)の
Li が出現した場合、それを「0」に付加すると、ma
x(i)は、より大きな符号の接頭辞をなす第1の符号
に設定されることになる。このプロセスをi<16の間
繰り返して、すべてのLn に対するすべてのmax
(n)を生成する。したがって、例えば、5個の3ビッ
ト符号(例えば0、1、2、3、4)が存在する場合、
max(3)は5に設定される。この値5(2進数で
「101」)は、より長い符号の一部である。ただし、
これ以上符号が存在しなければ、この特定の符号は必ず
しも使用されない。それゆえ、max(i)は、大きす
ぎるiビットの第1の符号(すなわちiビットの最大符
号よりも1つの値だけ大きい符号)を指し示している。
L(i+1)がヌルでない(例えば1ビットだけ大きい
符号が存在する)場合、当該符号の値は、max(i)
の2倍である。(i+1)符号は、2*max(i)で
始まり、順番に番号付けされる。そして、max(i+
1)は、この順番のの後の次の数(すなわち2*max
(i)+L(i+1))である。L(i+1)=0の場
合、max(i+1)は2*max(i)に等しい。そ
して、次の非零のLi が出現する前に、このような2倍
項がいくつか存在しうる。
(i)は、次に示すように、Li の項で計算する。 (i=0 (max(0)=0 (offset(0)=0 (i=1 (max(1)=L1 +2*0 (offset(1)=0−0=0 (i=2 (max(2)=L2 +2*L1 (offset(2)=0−L1 ・ ・ ・
応する復号化した値がR/S値のリスト中のどこに位置
しているかを判断するのに使う。すなわち、offse
t(i)にハフマン符号のiビットを付加して得られる
値は、対応するR/Sバイトが存在する、ハフマン・テ
ーブル中のアドレスになる。これにより、本発明の文脈
において極めて重要な利点がいくつか得られる。特に、
各々が216個のエントリを有する複数の参照テーブルか
ら成る関数群は、16個のエントリに限られているma
x(n)値とoffset(n)から成るテーブル群で
置き換えることができる。このテーブルは、極めて迅速
に計算して効率的に格納することができる。このテーブ
ルは特異であると共に小さいから、その中のデータを極
めて迅速に取り出して、JPEG標準構文によるデータ
・ストリーム中にハフマン符号と共に含まれているDC
T係数データとDCT係数差分データを評価するのに使
うR/Sデータを取得するための、ハフマン・テーブル
への直接索引を作成することができる(これは、他の処
理手法と一緒に利用できると共に、他の型のデータに対
しても利用できる)。
0を用いて説明し、その好適で完全な機能を図11〜図
13と共に後述する。プロセスがステップ81で開始す
ると、復号化するAC係数の個数kを零に初期化した
後、ループに入って非零のAC係数を各々順番に処理す
る。上述すると共にステップ83に示すように、圧縮デ
ータの16ビットの列を(例えば図6または図7の)C
レジスタにロードし、並列比較または逐次比較によっ
て、有効なハフマン符号のビット数nを判断する。いっ
たんnが判明すると、ステップ84に示すように、対応
するoffset(n)も判明し、ハフマン・テーブル
・アドレスへのポインタC[0・・・n−1]+off
set(n)を計算した後(例えば図8)、R/S値を
4ビット右にシフトすることにより、ハフマン・テーブ
ルのR/SバイトからS値を抽出する。次いで、ステッ
プ85に示すように、圧縮データを(ハフマン符号の長
さに対応する)nビットだけ(左に)シフトしてデータ
・ストリーム中にAC係数値を供給する。
データを図14の形式で供給するために、R/S値群の
ビット群と16進の「0F」バイトとをANDしてR/
S値からRを取り除き、2つの追加のバイトにR/Sバ
イトを格納すると共に余分なSビット群を格納する。そ
して、圧縮データを(左に)Sビットだけシフトして、
Cレジスタの先頭に次のハフマン符号を供給する。次い
で、次の非零のAC係数を復号化するために、k値をR
+1だけインクリメントする(ステップ87)。パック
したデータ形式を完了させるために、ステップ88でR
/S値を試験する。R/S値が0である場合、ステップ
90に示すように、ブロックの終わり(end-of-block:
EOB)を示した後、当該長さバイトを格納する。R/
S値が0でない場合、インクリメントしたk値を試験す
る(ステップ89)。k値が1つのブロック中のAC係
数の最大数である63である場合、0のR/S値を格納
してEOBを示した後、当該長さバイトを格納する。k
値が63未満の場合、プロセスはステップ83にループ
して、AC係数をさらに処理する。
図13に示す。本発明のこの機能は、max(n)値群
を5個のxC_max<0・・・4>なる32ビット語
にパックするものである。これらは、レジスタに格納し
て操作することができる。これにより、例えば図6また
は図7のハードウェア構成に従う比較のために、頻繁に
メモリ・アクセスして値を取得する必要がなくなる。
に密にパックされている。 xC_max<0>=max(1),max(2),max(3),max(4),max(5),max
(6),max(7),0000=32ビット; xC_max<1>=max(8),max(9),max(10),00000=32 ビット; xC_max<2>=max(11),max(12),000000000=32 ビット; xC_max<3>=max(13),max(14),00000=32 ビット; xC_max<4>=max(15),max(16),0=32 ビット. これらの値は、図10のステップ83を実行する際に、
図11〜図13に示すように操作する。特に、ハフマン
符号中のビット数nを判断するために、nの値を1に初
期化した後、圧縮データの次の32ビットと共にレジス
タすなわち変数compをロードする。compは、xC
_max<0>の最上位ビットと論理比較する。compが論
理的にxC_max<0>の最上位ビット以上の場合、ハフマン
符号は1ビットではないので、nを2にインクリメント
する。次のmax(n)値をレジスタの最上位ビットに
シフトした後、もう1ビットとcomp値とを比較する
手順を繰り返す。この際、アクセスするごとにnをイン
クリメントする。compの比較が失敗したとき、求め
るビット数が見つかっているので、比較の手順を完了す
る。RISCアーキテクチャの中には、レジスタへの複
写、マスク、およびシフト命令を1サイクルで行なうも
のがある。この場合、n値、comp値、xC_max
値がレジスタ中に存在するものと仮定すると、n値がも
っと大きい必要があるか否か、そして、記憶装置(メモ
リ)アクセスは必要ないか否かを判断するのに3サイク
ルしかかからない。したがって、特に、短いハフマン符
号は長いものよりも出現頻度が高いから、上記比較試験
は、極めて迅速に実行することができる。
る以上の説明から、JPEG標準に従って圧縮した画像
データの再構成において、速度と応答性が顕著に向上し
ているのが分かる。その上、データ処理用のハードウェ
アおよび/またはソフトウェアに対する要件が顕著に低
減していることも分かる。また、上掲した本願の関連出
願に開示したパックしたデータの形式と組み合わせる
と、符号化プロセスにおいても顕著な利点が得られる。
ここに開示した中間データ形式を、図14に示す。
ントロピー符号化したデータに符号化するフローチャー
トを示す図である。まず、ステップ1001でDCT係
数を符号化する。次いで、ループ1002に入る。ルー
プ1002では、次のように各々実行する。すなわち、
ステップ1003でR/Sバイトの符号化を実行し、ス
テップ1004でS値に従って余分のビットの符号化を
実行し、ステップ1005で両者の格納を実行する。次
いで、ステップ1006でEOB符号があるか否かを判
断する。NOならば、ステップ1003に戻ってループ
1002を繰り返す。YESならば、ステップ1007
に進む。ステップ1007でk=63であるか否かを試
験する。YESならば、プロセスは完了する。なぜな
ら、k=63は供給されうる値の最大数を表わしている
と共に、EOB記号は、これだけを取り出して符号化す
る必要がないからである。NOすなわちk<63なら
ば、ステップ1008でEOBを符号化し、ステップ1
009で格納した後、プロセスを完了する。ここで、次
の点に留意する必要がある。すなわち、各エントリはハ
フマン符号化したデータに必要な粗い形で既に存在して
いるので、プロセスは、EOBマーカーが出現するま
で、最高速で各R/Sビットと余分のビットとの対を順
番に符号化することができる。
号に変換する必要がある。R/S値にハフマン符号を割
り当てる際に依拠する統計データを集めるのに、図14
のパックしたデータ形式は特に都合がよい。すなわち、
データ・ブロックを走査する1回のパスで、各R/S値
とハフマン符号の割り当てと伝送すべきLi 値とが出現
する回数を計数することができる。データ・ブロックを
走査する2回目のパスの前に、伝送に使用する実際のR
/S値は、図1の形式の一部としての伝送用のVi,j 記
号値として組み立てる。各ハフマン符号長n内のカテゴ
リは任意に割り当てることができるから、max(n)
を格納する代わりに、長さnの第1のハフマン符号用に
seed(n)なる値を定義する。seed(n)は、
数値的に2*max(n−1)に等しい。
ffsetテーブル、H_seedテーブルを初期化す
るフローチャートを示す図である。まず、開始シード
(seed)(すなわち所定のビット数に対応する数値
が最小である最初の符号語)を零(0)に初期化する。
当該符号語のビット数(すなわち符号語長)を零に初期
化する。
だけインクリメントした後、seedを2倍にしてH_
seed(i)に格納する。次いで、codeをsee
dに設定した後、seedをiビット符号の数だけイン
クリメントする。次いで、jを零に初期化する。
フマン・テーブルを定義(DHT)」マーカー・セグメ
ントにおいて、R/Sを次のVi,j 記号値に設定する。
当該符号のビット数(i)が6未満の場合、当該ビット
数と当該符号をH_code(RS)にパックする。こ
のとき、当該バイトの上位3ビットを当該符号の当該ビ
ット数を設定し、下位5ビットに当該符号を設定する。
iが5よりも大きい場合、H_code(RS)を当該
ビット数に設定する。次いで、H_offset(R
S)をjに設定する。なぜなら、これはiビット符号の
うちのj+1番目の符号だからである。次いで、両経路
について、jとcodeの双方をインクリメントする。
edが16ビットだから、H_seedテーブルは、お
そらく少なくとも16ビットの整数として実現される。
ハードウェアの場合、n番目のエントリがnビットの符
号用のseedだから、n番目のエントリしかnビット
である必要がない。説明を簡明にするために、図16で
は、H_seedテーブルを17エントリ(0〜16)
用に初期化している。図17に示すフローチャートで
は、6番目から16番目のエントリしか使うことができ
ない。ここでも、ハードウェアによる実施形態では、こ
れを利用してロード可能なレジスタの数を減らしてい
る。
テーブルは、各々、H_seedテーブル、H_cod
eテーブル、およびH_offsetテーブルを1組必
要とする。幸い、最低限の実現方法の場合、R=0であ
り、Sの最大値が11だから、DC H_codeテー
ブルとDC H_offsetテーブルは、12エント
リしか必要としない。一般的な実現方法の場合、Sの最
大値が16であるから、これらのテーブル用に最大17
エントリ作成する。
トを使うことができるから、H_codeテーブルとH
_offsetテーブルは、各々、おそらく256エン
トリ備えることになる。これらのテーブルのエントリ
は、高々1バイトである。したがって、16ビット符号
語のビット数を表わすのに当該符号語のエントリに加え
余分のビットを必要とする代わりに、より長い符号語用
に小さなH_seedテーブルを使う。それゆえ、当該
サイズの最後の符号語を算出するのに、余分バイトは1
バイトしか必要としない。短い符号(すなわち5ビット
未満)は、すべて、H_codeバイトに含める。出現
頻度の高い記号ほど符号が短いから、記憶装置に対する
1バイト分のアクセスで、最も普通に符号化した記号に
必要なものをすべて取得することができる。
を実行するステップ1003をより詳細に示す図であ
る。まず、一時変数または一時レジスタtemをH_c
ode(RS)の内容に設定する。nの値を当該バイト
の上位3ビットに設定する。nが零の場合、nをtem
に設定する。そして、H_seed(n)にH_off
set(RS)を加算して当該符号を生成する。nが零
でない場合、codeをtemの下位5ビットに設定す
る。次いで、圧縮データを左にnビットシフトさせた
後、その下位nビットに当該符号を入れる。comp
は、連続バレル・シフタのように取り扱う。そして、3
2ビット語を出力するプロセスは、当業者にとって周知
である。
用に、nと最大16ビットのビット・パターンを格納し
ている。しかし、本発明によると、nと当該符号語は、
合計8ビット以下の中に両者を格納できるときには、1
バイトの中に格納する。これにより、ハフマン・テーブ
ルを顕著に短くすることができる。そして、出現する符
号の大部分はこの形式を使うのに十分なほどに短いか
ら、このことは特に好都合である。この形式を使ってい
ることは、当該バイトの上位3ビットの位置を非零値に
することにより示す。
は、長さの表示だけをSとして格納する。そして、上位
ニブルを「0000」に設定して異なった形式であるこ
とを表示する。これら長い符号の場合、seed(すな
わち特定ビット長の最初の符号値)への索引として当該
長さを使う。次いで、参照テーブルから対応するオフセ
ットを決定し、それを当該seedに付加して当該符号
値を生成することができる(最大オフセットが255で
あるから、上記オフセットは1バイトの中に納まる)。
R/Sバイトを符号化して格納した後、余分のSビット
を符号化する。この符号化は、図14の中間データ形式
の各AC係数値の2バイトから可変長を展開するように
シフトして行なうのが望ましい。
用のデータ処理の効率が向上すると共に、ハフマン・テ
ーブルを検索ためのテーブルを計算して格納する効率が
顕著に向上する。これらの利点は、JPEG標準に完全
に準拠した方法でもたらされると共に、ハフマン符号化
のすべての用途に適用可能である。
観点から本発明を説明したけれども、本発明は特許請求
の範囲の本旨と範囲の内で変更して実施することができ
る、ということを当業者は認識できる。例えば、これら
高速符号化法と高速復号化法は、昇順に並んだ各長さの
多くの符号から構築されるすべてのハフマン・テーブル
に適用できる。さらに、当業者は、本発明の上の説明か
ら、上述した手法を降順に並べて構築したハフマン・テ
ーブルに適用することができる。
って、1つのテーブルにおける所定長の符号の最初の出
現に対するシード値を定義するステップと、1つの符号
語の長さを格納するステップと、前記数および前記符号
語のビット数が所定ビット数以下の場合、前記長さおよ
び前記符号語を第1の形式で格納するステップと、前記
数および前記画像データが前記所定ビット数を超えるビ
ット数から成る場合、前記シード値への索引、オフセッ
ト、および前記符号語を第2の形式で格納するステップ
とを備えたハフマン符号化法。 (2)前記記号がJPEG R/Sバイトである、上記
(1)に記載のハフマン符号化法。 (3)前記符号語が画像データである、上記(1)に記
載のハフマン符号化法。 (4)前記画像データがJPEG画像データである、上
記(3)に記載のハフマン符号化法。 (5)圧縮データをハフマン復号化するハフマン復号化
法であって、複数の試験基準の各々を使ってデータ・ス
トリームのビットを試験して有効なハフマン符号の長さ
を判断するステップと、前記長さに対応する複数のオフ
セットのうちの1つと前記有効なハフマン符号とを組み
合わせて、索引を生成するステップと、前記索引を使っ
て、ハフマン・テーブル中の記号値にアクセスするステ
ップとを備えたハフマン復号化法。 (6)さらに、前記試験基準および前記複数のオフセッ
トを、ハフマン・テーブルのデータから計算するステッ
プを備えた、上記(5)に記載のハフマン復号化法。 (7)前記圧縮データが画像データである、上記(5)
に記載のハフマン復号化法。 (8)前記画像データがJPEG画像データである、上
記(7)に記載のハフマン復号化法。
の構文を示す図である。
分のハフマン符号化を示す図である。
ブル仕様とエントロピー符号化した画像データを示す図
である。
ン符号の典型的なテーブルを示す図である。
たハフマン符号の典型的なテーブルを示す図である。
の実施形態の概念図である。
の実施形態の概念図である。
施形態を幾分詳細に示す概念図である。
ポインタ・データの計算の好適な形態を示すフローチャ
ートを示す図である。
ータの復号化における本発明の方法論を示すフローチャ
ートを示す図である。
ーチャートを示す図である。
ーチャートを示す図である。
ーチャートを示す図である。
るパックした中間データ形式を示す図である。
す図である。
ャートを示す図である。
ある。
Claims (8)
- 【請求項1】記号をハフマン符号化するハフマン符号化
法であって、 1つのテーブルにおける所定長の符号の最初の出現に対
するシード値を定義するステップと、 1つの符号語の長さを格納するステップと、 前記数および前記符号語のビット数が所定ビット数以下
の場合、前記長さおよび前記符号語を第1の形式で格納
するステップと、 前記数および前記画像データが前記所定ビット数を超え
るビット数から成る場合、前記シード値への索引、オフ
セット、および前記符号語を第2の形式で格納するステ
ップとを備えたハフマン符号化法。 - 【請求項2】前記記号がJPEG R/Sバイトであ
る、請求項1に記載のハフマン符号化法。 - 【請求項3】前記符号語が画像データである、請求項1
に記載のハフマン符号化法。 - 【請求項4】前記画像データがJPEG画像データであ
る、請求項3に記載のハフマン符号化法。 - 【請求項5】圧縮データをハフマン復号化するハフマン
復号化法であって、 複数の試験基準の各々を使ってデータ・ストリームのビ
ットを試験して有効なハフマン符号の長さを判断するス
テップと、 前記長さに対応する複数のオフセットのうちの1つと前
記有効なハフマン符号とを組み合わせて、索引を生成す
るステップと、 前記索引を使って、ハフマン・テーブル中の記号値にア
クセスするステップとを備えたハフマン復号化法。 - 【請求項6】 さらに、 前記試験基準および前記複数のオフセットを、ハフマン
・テーブルのデータから計算するステップを備えた、請
求項5に記載のハフマン復号化法。 - 【請求項7】前記圧縮データが画像データである、請求
項5に記載のハフマン復号化法。 - 【請求項8】前記画像データがJPEG画像データであ
る、請求項7に記載のハフマン復号化法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/736,445 US6373412B1 (en) | 2000-12-15 | 2000-12-15 | Fast JPEG huffman encoding and decoding |
US09/736445 | 2000-12-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002271208A true JP2002271208A (ja) | 2002-09-20 |
JP3627016B2 JP3627016B2 (ja) | 2005-03-09 |
Family
ID=24959886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001375518A Expired - Fee Related JP3627016B2 (ja) | 2000-12-15 | 2001-12-10 | ハフマン符号化・復号化法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US6373412B1 (ja) |
JP (1) | JP3627016B2 (ja) |
CN (1) | CN1148005C (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010258532A (ja) * | 2009-04-21 | 2010-11-11 | Internatl Business Mach Corp <Ibm> | ビット長を符号に変換する回路及び方法 |
US9374594B2 (en) | 2014-06-11 | 2016-06-21 | Brother Kogyo Kabushiki Kaisha | Converting apparatus |
JPWO2019189433A1 (ja) * | 2018-03-28 | 2021-03-11 | 日本電気株式会社 | 処理装置、システム、処理方法、およびコンピュータプログラム |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE512613C2 (sv) * | 1996-12-30 | 2000-04-10 | Ericsson Telefon Ab L M | Metod och organ för informationshantering |
US6819803B2 (en) * | 2001-07-02 | 2004-11-16 | International Business Machines Corporation | Faster lossless rotation of JPEG images |
US20030093451A1 (en) * | 2001-09-21 | 2003-05-15 | International Business Machines Corporation | Reversible arithmetic coding for quantum data compression |
US6985529B1 (en) * | 2002-01-07 | 2006-01-10 | Apple Computer, Inc. | Generation and use of masks in MPEG video encoding to indicate non-zero entries in transformed macroblocks |
US7149360B2 (en) * | 2002-01-09 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Method for using a JPEG engine to assist in efficiently constructing MPEG I-frames |
ES2297083T3 (es) | 2002-09-04 | 2008-05-01 | Microsoft Corporation | Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel. |
US6956511B2 (en) * | 2004-01-06 | 2005-10-18 | Sharp Laboratories Of America, Inc. | Multi-symbol/coefficient decode operation for Huffman codes |
US20060044576A1 (en) * | 2004-07-30 | 2006-03-02 | Kabushiki Kaisha Toshiba | Apparatus for image processing |
KR20060051812A (ko) * | 2004-09-29 | 2006-05-19 | 후지 샤신 필름 가부시기가이샤 | 런 렝스 압축 데이터의 위치 특정 방법 및 장치 |
US7333037B2 (en) * | 2006-02-14 | 2008-02-19 | Broadcom Corporation | Method and system for improved lookup table (LUT) mechanism for Huffman decoding |
JP4745865B2 (ja) * | 2006-02-28 | 2011-08-10 | 富士通セミコンダクター株式会社 | 符号化装置および方法 |
JP4958466B2 (ja) * | 2006-04-05 | 2012-06-20 | グローバル・オーエルイーディー・テクノロジー・リミテッド・ライアビリティ・カンパニー | 表示装置 |
US8260070B1 (en) | 2006-10-03 | 2012-09-04 | Adobe Systems Incorporated | Method and system to generate a compressed image utilizing custom probability tables |
US7394411B1 (en) | 2007-01-09 | 2008-07-01 | International Business Machines Corporation | Fast implementation of decoding function for variable length encoding |
US8305244B2 (en) * | 2007-04-16 | 2012-11-06 | Hewlett-Packard Development Company, L.P. | Coding data using different coding alphabets |
US8031959B2 (en) * | 2008-02-22 | 2011-10-04 | Himax Technologies Limited | Compression system for a bit-plane |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8073270B2 (en) * | 2008-09-16 | 2011-12-06 | Silicon Motion, Inc. | Image decoding apparatus and method |
CN101741392B (zh) * | 2008-11-27 | 2013-01-09 | 安凯(广州)微电子技术有限公司 | 一种快速解析码长的哈夫曼解码方法 |
TWI343192B (en) * | 2009-06-12 | 2011-06-01 | Ind Tech Res Inst | Decoding method |
GB201014347D0 (en) * | 2010-08-28 | 2010-10-13 | Lu Mingying | Huffman code table transform and parrallel Huffman decoding |
CN106850504B (zh) * | 2015-12-04 | 2019-11-15 | 北京航空航天大学 | 基于http静态压缩数据流的有害代码检测方法和装置 |
US10243668B2 (en) | 2016-04-27 | 2019-03-26 | Industrial Technology Research Institute | Positioning measurement device and the method thereof |
US9712830B1 (en) * | 2016-09-15 | 2017-07-18 | Dropbox, Inc. | Techniques for image recompression |
US9787323B1 (en) | 2016-12-11 | 2017-10-10 | Microsoft Technology Licensing, Llc | Huffman tree decompression |
US10613797B2 (en) * | 2017-06-13 | 2020-04-07 | ScaleFlux, Inc. | Storage infrastructure that employs a low complexity encoder |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4396906A (en) * | 1980-10-31 | 1983-08-02 | Sri International | Method and apparatus for digital Huffman encoding |
US5227789A (en) * | 1991-09-30 | 1993-07-13 | Eastman Kodak Company | Modified huffman encode/decode system with simplified decoding for imaging systems |
US5550541A (en) * | 1994-04-01 | 1996-08-27 | Dolby Laboratories Licensing Corporation | Compact source coding tables for encoder/decoder system |
US5686915A (en) * | 1995-12-27 | 1997-11-11 | Xerox Corporation | Interleaved Huffman encoding and decoding method |
US5652582A (en) * | 1995-12-29 | 1997-07-29 | Xerox Corporation | Method of high speed Huffman coding and decoding of lab color images |
US5808570A (en) * | 1996-06-28 | 1998-09-15 | Philips Electronics North America Corp. | Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same |
US6040790A (en) * | 1998-05-29 | 2000-03-21 | Xerox Corporation | Method of building an adaptive huffman codeword tree |
US6130630A (en) * | 1998-10-27 | 2000-10-10 | Hewlett-Packard Company | Apparatus and method for compressing Huffman encoded data |
-
2000
- 2000-12-15 US US09/736,445 patent/US6373412B1/en not_active Ceased
-
2001
- 2001-12-10 JP JP2001375518A patent/JP3627016B2/ja not_active Expired - Fee Related
- 2001-12-14 CN CNB011436271A patent/CN1148005C/zh not_active Expired - Fee Related
-
2004
- 2004-04-15 US US10/824,613 patent/USRE39925E1/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010258532A (ja) * | 2009-04-21 | 2010-11-11 | Internatl Business Mach Corp <Ibm> | ビット長を符号に変換する回路及び方法 |
US8018359B2 (en) | 2009-04-21 | 2011-09-13 | International Business Machines Corporation | Conversion of bit lengths into codes |
US9374594B2 (en) | 2014-06-11 | 2016-06-21 | Brother Kogyo Kabushiki Kaisha | Converting apparatus |
JPWO2019189433A1 (ja) * | 2018-03-28 | 2021-03-11 | 日本電気株式会社 | 処理装置、システム、処理方法、およびコンピュータプログラム |
US11586749B2 (en) | 2018-03-28 | 2023-02-21 | Nec Corporation | Processing apparatus, system, processing method, and computer program |
JP7375744B2 (ja) | 2018-03-28 | 2023-11-08 | 日本電気株式会社 | 処理装置、システム、処理方法、およびコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
US6373412B1 (en) | 2002-04-16 |
JP3627016B2 (ja) | 2005-03-09 |
CN1359196A (zh) | 2002-07-17 |
USRE39925E1 (en) | 2007-11-27 |
CN1148005C (zh) | 2004-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002271208A (ja) | ハフマン符号化・復号化法 | |
US11817885B2 (en) | Guaranteed data compression | |
US6166664A (en) | Efficient data structure for entropy encoding used in a DWT-based high performance image compression | |
US6195026B1 (en) | MMX optimized data packing methodology for zero run length and variable length entropy encoding | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
US5218431A (en) | Raster image lossless compression and decompression with dynamic color lookup and two dimensional area encoding | |
US11509330B2 (en) | Guaranteed data compression | |
US6292114B1 (en) | Efficient memory mapping of a huffman coded list suitable for bit-serial decoding | |
US7119723B1 (en) | Decoding variable length codes while using optimal resources | |
US11677415B2 (en) | Guaranteed data compression using reduced bit depth data | |
US20010054973A1 (en) | Variable length decoder | |
US11374590B2 (en) | Guaranteed data compression using intermediate compressed data | |
US12034934B2 (en) | Guaranteed data compression | |
US11831342B2 (en) | Guaranteed data compression | |
US6737993B2 (en) | Method and apparatus for run-length encoding data values | |
JP4061104B2 (ja) | コンテキストモデルによるラン・スキップカウントに基づくメモリアクセス及びスキッピング | |
TW202013969A (zh) | 在顯示介面壓縮技術中形成熵編碼組的方法和系統 | |
JPH0918350A (ja) | 符号化復号化装置及び符号化復号化方法 | |
JPH0936749A (ja) | 符号化復号化装置およびこれに用いられる符号化方法 | |
JP2934603B2 (ja) | 可変長さコードの復号化方法及びその装置 | |
Midtvik et al. | Reversible compression of MR images | |
Zandi et al. | Optimizing bit-plane context-dependent entropy coding for palettized images | |
Salomon | Approaches to Compression | |
JPH0583562A (ja) | 画像データ符号化装置 | |
JPH07147678A (ja) | 可変長符号化回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040420 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040521 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041019 |
|
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: 20041109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041111 |
|
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: 20071217 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |