JPH1075181A - ハフマン・デコーダ - Google Patents
ハフマン・デコーダInfo
- Publication number
- JPH1075181A JPH1075181A JP9136722A JP13672297A JPH1075181A JP H1075181 A JPH1075181 A JP H1075181A JP 9136722 A JP9136722 A JP 9136722A JP 13672297 A JP13672297 A JP 13672297A JP H1075181 A JPH1075181 A JP H1075181A
- Authority
- JP
- Japan
- Prior art keywords
- coefficient
- data
- register
- bit
- codeword
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000003550 marker Substances 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 abstract description 3
- 238000000034 method Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003339 best practice Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000499 effect on compression Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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)
- Signal Processing (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
張に適したデコーダ。 【解決手段】 データ・ストリーム中の係数のランレン
グス、係数のサイズ、及び係数の長さと符号語の長さの
和が得られるようにし、この値により、次の符号語に着
手するためにレジスタ内のビットをシフトするシフト量
を求められる。これにより、新しいデータを受け取りな
がら復号動作を行うようにして、デコーダはハフマン符
号化ビット・ストリームを高速に復号することができ
る。また、RLL検出器203及びヘッダ/マーカ検出
器205が、デコーダ201でのデータ処理を同じクロ
ック・サイクルで模倣することによって、バイト境界お
よびヘッダ/マーカが適切に追従するので、1クロック
・サイクルで復号することができる。
Description
号化を使用するデータ圧縮および伸張に関し、特に静止
画像(JPEG)への応用例およびビデオ画像(MPEG)への
応用例でのハフマン符号化に関し、具体的には高ビット
伝送速度ハフマン復号に関する。
データのコンパクト化はデータ圧縮とも呼ばれ、可変長
符号化技法を使用して行うことができる。固定長のデー
タ・ビット・ストリングが可変長のビット・ストリング
として符号化され、より頻繁に発生するデータ・ビット
・ストリングまたは文字がより短い長さの符号語で表さ
れ、それによって伝送時間が短縮され、あるいはその記
憶機構に対する要件が低減される。データ・プロセッサ
では、圧縮済みデータをこの圧縮形で使用することはで
きない。したがってこのデータは、固定長形式に復号さ
れる。これはデータ伸張とも呼ばれる。
「A Method for the Construction ofMinimum Redundan
cy Codes」(Proceedings of the IEEE、IRE、第40(9)
巻、1098ページないし1101ページ、1952年)と題する論
文でD.A. Huffmanによって提案されている。ハフマン符
号化および復号では、発生率の高い記号はより短いビッ
ト長符号を有する。ハフマン符号化は、簡単な順方向の
2分木構造と最適符号化(平均符号長が最小となる符号
化)手順を備えているので、広く使用されている。
されている。基本的にハフマン符号のストリームの復号
は、2分デコーダ木(binary decoder tree)に従うこと
によって行われる。一般に、このようなデータ伸張エン
ジンは、順次論理を使用して一度に1ビットまたは2ビ
ットずつハフマン符号を反復的に復号するか、あるいは
組合せ論理を使用して符号全体を1クロック・サイクル
で並行して復号する。
は、データ圧縮にハフマン符号を使用する規格が採用さ
れている。この規格はANSI X3L2.8委員会のJoint Pictu
re Expert Group(JPEG)によって提案され、「JPEG Di
gital Compression and Coding of Continuous-tone St
ill Images」(Draft ISO 10918、1991年)として発表
された。同様な規格がMoving Picture Expert Group
(「MPEG」)によって提案され、ISO/IEC JTC1 CD 1117
2「Coding of Moving Pictures and AssociatedAudio f
or Digital Storage Media Up to 1.5 Mbits/second」
(InternationalOrganization for Standardization、1
992年(「MPEG-1」とも呼ばれる))として発表され
た。
や、ファックスでのカラー画像伝送や、ディジタル・ビ
デオ伝送などの高ビット伝送速度応用例では、適当なハ
フマン・デコーダの設計が重大である。ビット・ストリ
ームを再位置合わせするために必要なフィードバック・
ループが必要であるため、パイプラインとそれと並列し
て行う復号化は共に困難なものになる。可変長符号は、
プログラム可能な符号参照テーブルを使用して固定長の
最初のデータストリングに復号しなければならない。こ
の操作を好ましくは1サイクルで完了しておかないかぎ
り、次の符号語を復号することはできない。このタスク
は、各連続符号語の可変長の性質により複雑になってし
まう。その上、高クロック周波数で動作するには、クリ
ティカル・パスにおけるロジックの数を最小限に抑えな
ければならない。
際のハフマン復号操作だけでなく他の複雑な問題があ
る。ハフマン符号語は、JPEG規格では最大で16ビット
に限られ、「ランレングス制限(RLL: run-length limi
ted)/係数」データ対を表すために使用される。RLL
は、現係数の直前の連続する零係数の数を表し、実際の
係数データを符号化するために使用されるビットの数を
表すサイズを有する。したがって、図1に示したよう
に、各ハフマン可変長符号語103の後に可変長符号化
係数値105が続き、この場合、ハフマン符号語103
は、係数値を符号化するためにいくつのビットが使用さ
れるかを示す。たとえば、表されるデータは、符号付き
12ビット係数値、たとえば8ビット×8ビットの画素
の色変換のための、赤、または緑、または青(「RG
B」)の色刺激値ベクトル、あるいはシアン色、マゼン
タ色、黄色、黒(「CMYK」)の色刺激値ベクトルで
あってもよい。各符号語は、画像中の画素から変換され
た1つの係数である(RGBまたはその他の三色システ
ムに関する三次元構造の基本は、「Principles of Colo
rTechnology」(BillmeyerおよびSaltzman著、John Wil
ey & Sons発行、NY、1981年(第2版))、「Color Sci
ence: Concepts and Methods, Quantitative Dataand F
ormulae」(WyszeckiおよびStiles著、John Wiley & So
ns発行、NY、1982年(第2版))において論じられてい
る。しかし、当業者が本発明を理解するうえでこれ以上
の説明は不要である)。
ととして、圧縮済みJPEG/MPEGデータ・ストリームには
一般に、ヘッダおよび制御マーカ107が埋め込まれ
る。このようなマーカは、予約データ・パターンであ
り、すなわちデータ・ストリーム中のバイト境界に埋め
込まれた、1と0からなる特定の予約ストリングであ
る。この例には、START OF SCANマーカ、START OF IMAG
Eマーカ、END OF IMAGEマーカ、RESTARTマーカがある。
したがって、JPEGハフマン・デコーダは、マーカの存在
を検出し、そのマーカとともに、そのマーカをバイト境
界に整列させるために付加されたパディング・ビットも
削除しなければならない。
照テーブルを使用する標準JPEGハフマン・デコーダで
は、受け取った特定の符号語のランおよびサイズを与え
る参照テーブルのアドレスとして、最大16ビットが使
用される。しかし、これには大型で低速のメモリが必要
である。言い換えれば、ハフマン符号の位置および長さ
を求め、その後、参照テーブルまたは復号操作によっ
て、その後に続く係数のランレングスおよびサイズを求
め、その後、そのデータを抽出し、それに続いてシフト
を行い、次の符号語を見つけてこの操作を繰り返さなけ
ればならない。
は米国特許第5,208,593号において開示されているよう
に、符号語中の一連の先頭の1を使用してより小型のメ
モリにインデックスさせる方法を開発した。しかし、ビ
ットを付加すると圧縮効率に悪影響を受けるので、Rett
er等は圧縮効率を高めるために、米国特許第5,379,070
号に開示された並列処理方法を開発した。しかしこの方
法では、高価なハードウェア構成要素が付加される。
したビット・データ・ストリームのような、JPEG/MPEG
方式で圧縮されたデータの伸張に適した高ビット伝送速
度ハフマン復号方法およびアーキテクチャが必要であ
る。
において、最大長「Q」の符号語−係数対を有するハフ
マン符号化データ・ストリームを復号する方法を提供す
る。基本的にこの方法は、データ容量が少なくともQの
2倍であるデータ・レジスタに、係数とハフマン符号語
の第1の対を備える、いくつかのビットを有する第1の
入力データ・セットを記憶するステップと、ストリーム
の第2の係数−ハフマン符号語対を備える次の逐次入力
データ・セットをシフト・レジスタにおいて受け取るス
テップと、前記次の逐次入力データ・セットを第1の入
力データ・セット内のビットの数だけ右シフトするステ
ップと、前記第1の入力データ・セットと前記次の逐次
入力データ・セットの論理和を実行し、結果をデータ・
レジスタに入れるステップと、データ・レジスタの
「N」個の上位ビットを復号済み係数値として抽出し、
データ・レジスタの次の上位ビット「M」個をハフマン
符号語として抽出するステップとを含む。
ストリームを復号するハフマン復号化装置が提供され
る。該JPEG標準データ・ストリームは、ハフマン符号語
−係数対データ・フォーマットの最大16ビットのハフ
マン符号語を有しており、さらにバイト境界情報符号と
ヘッダ/マーカ情報符号とを含んでいる。この装置は、
入力バスと、少なくとも2つの符号語−係数対を入力バ
スから受け取るために入力バスに接続された右シフト・
レジスタと、右シフト・レジスタから右シフト・レジス
タ・データ出力を受け取るためのビットOR演算機構
と、前記ビットOR演算機構から出力データを受け取る
ために前記ビットOR演算機構に接続された入力データ
・レジスタと、前記入力データ・レジスタから出力デー
タを受け取るために前記入力データ・レジスタに接続さ
れた左シフト・レジスタと、係数のランレングスと、可
変長符号化係数の長さと、符号語の長さと符号化係数の
長さの和が得られるような符号語−係数対から復号され
る現符号語および係数を、左シフト・レジスタから抽出
する機構と、前記入力データ・レジスタを前記和の量だ
け左シフトさせ、復号される次の現符号語および係数を
得るためのフィードバック機構とを含む。
で必要とされるロジックの数が最小限に抑えられること
である。
ルごとに1つの符号−係数対が復号されることである。
ンダム・アクセス・メモリに対する要件が受け入れられ
るものであることである。
規格に適合する必要に応じて、制御マーカが適切に検出
され処理されることである。
説明および添付の図面を検討したときに明らかになろ
う。図面全体にわたって同じ参照符号のものは同じ構成
要素である。
って現在企図されている最良の態様を示す本発明の特定
の実施形態を詳細に参照する。必要に応じて代替実施形
態も簡単に説明する。ここでは、JPEG規格に適用した場
合の例示的な実施形態を与える。しかし、当業者には、
本発明をMPEGまたはその他のデータ復号にも適用できる
ことが認識されよう。この例示的な実施態様を使用する
ことによって特許請求の範囲に記載された本発明の範囲
が制限されるようなことは企図しておらず、またそのよ
うな制限を暗示するわけでもない。
示す。
JPEGデータ・ストリームがバス200を介して32ビッ
ト・ストリング符号、すなわち単一の最大長ハフマン符
号語−係数対として係数デコーダ201に入力される。
バイト境界情報、すなわち4ビット・ストリング語が、
バス202を介してRLL検出器203に入力される。マ
ーカ検出器205で復号されるヘッダ/マーカ符号4ビ
ット・ストリング語がバス204を介して入力される。
入力データストリングに対して入力シフト・レジスタは
概して1つだけ使用される。
の32ビットの入力語がロードされる。シフトすべきビ
ット数は始めに零にクリアされ、したがって第1のサイ
クルではシフト動作は実行されない。その後は各クロッ
ク・サイクルごとに、ひとつ前のハフマン符号語−係数
対中のビットの数だけデータがシフトされる。
れは、データ・サブセットにおいて次の符号語がどこか
ら始まるかを指し示すことを不要にし、それによりクリ
ティカル・パスを短縮するので比較的高速な演算であ
る。しかし、既存の入力データを用いたシフト演算およ
びOR演算が実行されるときはいつでもバイト境界情報
の位置が失われるので、このバイト境界情報をどのよう
に保持するかが問題になる。RESTARTやEND_OF_IMAGE JP
EGマーカなどのデータ・ストリーム・ヘッダ/マーカに
出会ったときにバイト境界情報が重大であることは明ら
かである。したがって、これは並列RLL検出器202お
よびマーカ検出器204を使った実施態様で対処され
る。
図3を参照すると、バイト境界情報とデータ・ストリー
ム・マーカ情報を的確な記録でもって維持する際の問題
の解決策を含む、本発明による高速ハフマン・デコーダ
300の特定の実施形態が示されている。ここでは、当
業者に認識されるであろう標準的なロジックが示されて
いる。ハフマン復号技術自体は、ハフマン符号語中の先
頭の1の数に基づいて参照テーブルにアクセスする方式
を使用する。この復号方法は、米国特許第4,899,149号
(Kahan)および米国特許第5,208,593号(Tong)におい
て開示されている。したがって、下記の説明では、本明
細書の特許請求の範囲に記載された本発明の説明に焦点
を当てる。
データ語は、データ・レジスタ「Q」301、すなわち
現在復号中の入力データ・ストリームのセグメント用の
75ビット・データ・レジスタにロードされる。75ビ
ットが必要であるのは、シフト後に一つ前の符号語−係
数対から得た符号なし係数(ここでの「符号」は正負を
表すコード(sign)のことを表す)を保持する最も左側
の11ビットと、現入力データ・ストリームから得た2
つのフルの32ビットを必要とするからである。「次
の」ハフマン符号語を復号する場合、Q_レジスタ30
1内のデータ・ストリームから符号語を抽出する必要が
ある。JPEG規格では、この符号語の長さは最大16ビッ
トでよい。前の符号語−係数対の長さは最大27ビット
でよい(すなわち、符号語用の16ビットおよび符号化
係数用の11ビット)。したがって、所与のサイクルで
は、Q_レジスタ301内で最小で43ビット(16ビ
ット+27ビット)を有する必要がある。43ビット
は、32ビット入力データ語長よりも長いので、2つの
32ビット語をキューにした、高速実施態様として決定
されている。
−ロード〕入力データ・ストリーム中の32ビット語間
のヘッダ/マーカおよびバイト境界情報は、当技術分野
で知られているように標準的に検出され、それぞれ、バ
ス204、202上に4ビット語として分離される。次
いで、RLL検出器203およびヘッダ/マーカ検出器2
05はそれぞれ、「ゼロ挿入」ハードウェア303、3
05によって、4つのビットの各ビット間に7つの0
(ゼロ)を挿入することによって、それぞれの4ビット
入力語を32ビットに拡張させる。
ストリームのバイト境界に、JPEG規格で定義されたREST
ARTマーカおよびEND_OF_IMAGE(「EOI」)マーカが挿入
される。これらのJPEGマーカはマーカ検出器205によ
って検出され、32ビット入力語中のどのバイト境界で
マーカが検出されたかを示す4ビットが出力される。こ
のマーカ自体は、入力データ・ストリームから除去され
る。この4ビット・マーカIDは、4つのビットの各ビ
ット間に7つの零を挿入することによって、入力データ
語に合致するようにフルの32ビットに拡張される。し
たがって、マーカ識別子ビットのビット位置は、マーカ
が検出され削除された入力データ語中のその位置と正確
に一致する。
スタR307にロードされる。拡張された32ビットRE
STARTマーカ語またはEOIマーカ語はレジスタ「E」
309にロードされる。次に、バイト境界位置およびヘ
ッダ・マーカ位置が、最初に入力データとして符号化さ
れたときと同じ順序で保存されるように、Q_レジスタ
301、R_レジスタ307、E_レジスタ309を同
期的にシフトすることができる。すなわち、下記で説明
するその後のシフト演算が行われたときに、Q_レジス
タ301内の入力データ・ストリーム、R_レジスタ3
07内のRLL語、E_レジスタ309内のRESTARTまたは
EOIマーカ語がまとめてシフトされ、互いに同期した
ままになる。
入力データ・ストリームの「次の」32ビット・データ
語が、「現在の」左シフト演算が処理された後に75ビ
ット・データ・レジスタ301に存在しているデータ・
ビットの数に等しい量だけ右シフトされる(313)。
これは、Q_レジスタ301へのビットOR演算(31
5)に備えて行われる。右シフト313演算とビットO
R演算(315)は、現在Q_レジスタ301内に存在
するデータ・ビットのすぐ右側の適切な位置に新しい3
2ビット・データ語をロードするという効果を有する。
315が施され、結果がQ_レジスタ301に入れられ
る。
トが、レジスタ317内で、第1の符号語と係数の和の
サイズだけ左シフトされる。
ム中の最も左の27ビットが調べられる。この27ビッ
トのうちで、レジスタ319中の最も左側の11ビット
は、第1の符号語−係数対の係数である。レジスタの最
も左側のビットがビット74であり、最も右側のビット
がビット0であると仮定すると、ビット63〜48は、
JPEG規格当たりの長さが最大16ビットまで許される可
変長ハフマン符号を含んでいる。
号すると、ハフマン符号語と符号なし係数の組み合わせ
の長さが生成される。次のクロック・サイクルでは、Q
_レジスタ301がこの長さ分だけ左シフトされる。
左側の11ビットは、前の符号語−係数部から得た可変
長の符号なし係数を含む。可変長の符号なし係数は、0
〜11ビットの任意の長さであってよく、係数サイズA
レジスタ327はこの係数の長さを含む。係数復号装置
331は、符号なし係数および係数長を取り出し、CODE
_DECODE_HUFFMAN装置333への12ビット符号付き数
量出力として、復元済み係数値を生成する。
情報がQ_レジスタ301の最も左側の11ビットのう
ちの最も右側のビットに含まれることに留意されたい。
したがって、標準のブール論理を介して、符号化係数お
よび係数サイズ・データを使用してこの符号化係数が1
2ビット符号付き数量331として復元され、この数量
331がJPEGデコーダ(図示せず)の次の段に出力され
る(333)。
であり、アドレス生成装置321へ送られ、ハフマン参
照テーブル323においてアクセスすべきアドレスが算
出される。参照テーブル323は次いで、ゼロ・ランレ
ングス325(復号済みデータに再挿入しなければなら
ない係数に挿入されているゼロの数)および係数サイズ
・データ327と、次の左シフト量329に等しい現符
号語−係数対の全体的な長さ、すなわち、次の検査サイ
クルで左シフト・レジスタ317をシフトすべき位置の
数を与える。
からハフマン符号語を復号し、下記の3つの値を与え
る。 (1)ゼロ係数のランレングス (2)可変長符号化係数の長さ (3)ハフマン符号語の長さと符号化係数の長さの和 ただちに、最後の値を使用してQ_レジスタ301が左
シフトされる。可変長符号化係数の長さを使用して、係
数がその12ビット符号付き値に復元される。パイプラ
イン式実施態様では、CODE_DECODE_HUFFMANレジスタ3
33からの正しい係数に合致するようにランレングス情
報と係数サイズ情報を遅延させなければならないので、
ランレングス情報は、ランレングスAレジスタ325お
よびランレングスBレジスタ326によって遅延される
ランレングス・デコーダ363に直接出力される。
ジスタ301のデータ、R_レジスタ307のバイト境
界情報、およびE_レジスタ309のヘッダ/マーカの
それぞれにいくつの有効ビットが存在するかを追跡する
ために、有効ビット・レジスタ311を使用する。レジ
スタ301、307、309からビットがシフトされる
につれて、各サイクルで参照テーブルから与えられるシ
フトの値を有効ビット・レジスタのカウントから減じな
ければならない。
されると、312によって有効ビット・カウントに32
が加えられる。ロード制御機構314は、Q_レジスタ
301内の有効データ・ビットの数と、次のクロック・
サイクルで適用される左シフトの量をモニタする。ロー
ド制御機構314は、Q_レジスタ301内の有効デー
タ・ビットの数が43よりも小さくなると判定すると、
Q_レジスタに新しいデータ語をロードすることを求め
る信号を発する(すなわち、有効データ・ビットの数か
らシフトの量を減じた値が43よりも小さい場合は、新
しいデータ語をロードする)。
−復号〕次に、前の説明から、拡張された32ビットの
ヘッダ/マーカおよびバイト境界語がそれぞれ、E_レ
ジスタ309およびR_レジスタ307に作成されたこ
とを想起されたい。これらの32ビットはそれぞれ、Q
_レジスタ301内の関連する入力データ語と全く同様
にかつ同じクロック・サイクルで、シフト・レジスタ3
45、343によって右シフトされ、ビットOR演算回
路347、349によってビットOR演算される。次い
で317で、データが左シフトされると、ヘッダ/制御
マーカおよびバイト境界語がそれぞれのレジスタ35
1、353内で同時に左シフトされ、これらの相対位置
が維持される。これらのレジスタ351、353の最も
左側のビットを調べることによって、E_レジスタ30
9およびR_レジスタ307に挿入されたゼロを検出し
(355)、データ・ストリームから左シフトして抜き
出す(357)ことができ、ヘッダ/マーカ365およ
び境界語363を出力することができる。
を以下に示す。
データ・フォーマット(103、105)の最大16ビ
ットのハフマン符号語(103)とバイト境界情報符号
(107)とヘッダ/マーカ情報符号(107)とを含
むJPEG標準データ・ストリーム(103、105、10
7)を復号するハフマン・デコーダであって、入力バス
(200)と、少なくとも2つの符号語−係数対を入力
バスから受け取るために入力バスに接続された右シフト
・レジスタ(313)と、右シフト・レジスタから出力
データを受け取るビットOR演算手段(315)と、前
記ビットOR演算手段から出力データを受け取るために
前記ビットOR演算手段に接続された入力データ・レジ
スタ(301)と、前記入力データ・レジスタから出力
データを受け取るために前記入力データ・レジスタに接
続された左シフト・レジスタ(317)と、係数のラン
レングスや、可変長符号化係数の長さや、符号語の長さ
と符号化係数の長さの和を得られるように、符号語−係
数対から復号すべき現符号語および係数を左シフト・レ
ジスタから抽出する手段(331、333、363)
と、前記入力データ・レジスタを前記和の量だけ左シフ
トさせ、復号すべき次の現符号語および係数を得るフィ
ードバック手段とを備えることを特徴とするハフマン・
デコーダ。
号語−係数対と同じビット長になるまでパディングする
手段(303)を含む、バイト境界情報符号を受け取り
追跡する手段(203)と、符号語−係数対と同期させ
てバイト境界情報符号をシフトさせる手段(353)と
をさらに含むことを特徴とする、実施態様1に記載のデ
コーダ。
を符号語−係数対と同じビット長になるまでパディング
する手段(305)を含む、ヘッダ/マーカ情報符号を
受け取り追跡する手段(205)と、符号語−係数対と
同期的にヘッダ/マーカ情報符号をシフトさせる手段
(351)とをさらに含むことを特徴とする、実施態様
1または実施態様2に記載のデコーダ。
ータ容量が入力バスのビット幅の少なくとも2倍である
レジスタを備えることを特徴とする、実施態様1ないし
実施態様3のいずれかに記載のデコーダ。
係数対を有する符号化データ・ストリームを復号する方
法であって、データ容量が少なくともQの2倍であるデ
ータ・レジスタに、係数とハフマン符号語の第1の対を
備えるいくつかのビットを有する第1の入力データ・セ
ットを記憶するステップと、ストリームの第2の係数−
ハフマン符号語対を備える次の逐次入力データ・セット
をシフト・レジスタで受け取るステップと、前記次の逐
次入力データ・セットを前記第1のデータ・セット内の
ビットの数だけ右シフトするステップと、前記第1の入
力データ・セットと前記次の逐次入力データ・セットの
論理和を実行し、結果をデータ・レジスタに入れるステ
ップと、データ・レジスタの最上位ビットN個を復号済
み係数値として抽出し、データ・レジスタの次の上位ビ
ットM個を符号語として抽出するステップとを含むこと
を特徴とする方法。
で、データ・ストリームの次の各逐次入力データ・セッ
トごとに実施態様5のステップを繰り返すステップをさ
らに備えることを特徴とする、実施態様5に記載の方
法。
と共にデータ・ストリームに埋め込まれたバイト境界情
報を受け取るステップと、バイト境界情報が、入力デー
タ・セット長に等しいビット長を有するように、バイト
境界情報の各ビット間に零のストリングをパディングす
るステップと、関連するデータ・セットと同時にバイト
境界情報を右シフトさせるステップと、各零ストリング
を抽出し、バイト境界情報を復号済みデータ・セットに
整列するように再形成するステップとをさらに含むこと
を特徴とする、実施態様5または実施態様6に記載の方
法。
め込まれた制御マーカ情報を関連するデータ・セットと
共に受け取るステップと、前記制御マーカ情報が入力デ
ータ・セット長に等しいビット長を有するように、前記
制御マーカ情報の各ビット間に零のストリングをパディ
ングするステップと、前記制御マーカ情報を、関連する
データ・セットと同時に右シフトさせるステップと、各
零ストリングを抽出し、前記制御マーカ情報を復号済み
データ・セットに整列するように再形成するステップと
をさらに含むことを特徴とする、実施態様5ないし実施
態様7のいずれか一項に記載の方法。
で、データが前の符号語−係数対中のビットの総数だけ
シフトされることを特徴とする、実施態様5ないし実施
態様8のいずれか一項に記載の方法。
ズ、及び係数と符号語長の和を符号化する。この値は、
次の符号語に着手するためのシフトの量を示すシフト量
として与えられる。これは、新しいデータを受け取りな
がら復号動作を行うようにして、JPEGハフマン符号化ビ
ット・ストリームを高速に復号する方法を与える。同時
に、回路203、205がハフマン・デコーダ201で
のデータ処理を模倣することによってバイト境界および
ヘッダ/マーカが適切に追跡される。EOIマーカが検
出された後、デコーダは受け取ったデータがなくなるま
で処理を継続する。
演算を使用しており、これによって入力における次の符
号語がデータ・サブセット中のどこから始まるのかを指
し示すことを不要にしている。従って、クリティカル・
パスを短縮することができるので、比較的高速な演算を
実現することができる。
は、例示および説明のために与えたものである。上記の
説明は、網羅的なものでも、あるいは開示した厳密な形
態に本発明を制限するものでもない。当業者には多数の
修正形態および変形形態が明らかになろう。同様に、説
明したプロセス・ステップを他のステップと相互交換し
て同じ結果を達成することができる。実施形態は、本発
明の原則および最適な態様の実用例を最もうまく説明
し、それによって当業者が本発明を様々な実施形態に関
して、かつ企図される特定の用途に適した様々な修正形
態と共に理解することができるように選択され記載され
ている。本発明の範囲は、添付の請求の範囲およびその
等価物によって定義されるものである。
る。
ック図である。
ダの詳細な概略論理図である。
Claims (1)
- 【請求項1】 ハフマン符号語−係数対データ・フォー
マットの最大16ビットのハフマン符号語とバイト境界
情報符号とヘッダ/マーカ情報符号とを含むJPEG標準デ
ータ・ストリーム復号するハフマン・デコーダであっ
て、 入力バスと、 少なくとも2つの符号語−係数対を入力バスから受け取
るために入力バスに接続された右シフト・レジスタと、 右シフト・レジスタから出力データを受け取るビットO
R演算手段と、 前記ビットOR演算手段から出力データを受け取るため
に前記ビットOR演算手段に接続された入力データ・レ
ジスタと、 前記入力データ・レジスタから出力データを受け取るた
めに前記入力データ・レジスタに接続された左シフト・
レジスタと、 係数のランレングスや、可変長符号化係数の長さや、符
号語の長さと符号化係数の長さの和を得られるように、
符号語−係数対から復号すべき現符号語および係数を左
シフト・レジスタから抽出する手段と、 前記入力データ・レジスタを前記和の量だけ左シフトさ
せ、復号すべき次の現符号語および係数を得るフィード
バック手段とを備えることを特徴とするハフマン・デコ
ーダ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/666,964 US5818364A (en) | 1996-06-19 | 1996-06-19 | High bit-rate huffman decoding |
| US666,964 | 1996-06-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1075181A true JPH1075181A (ja) | 1998-03-17 |
| JPH1075181A5 JPH1075181A5 (ja) | 2005-02-17 |
Family
ID=24676264
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9136722A Pending JPH1075181A (ja) | 1996-06-19 | 1997-05-27 | ハフマン・デコーダ |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5818364A (ja) |
| EP (1) | EP0814614B1 (ja) |
| JP (1) | JPH1075181A (ja) |
| DE (1) | DE69732271T2 (ja) |
| ES (1) | ES2231844T3 (ja) |
| SG (1) | SG73441A1 (ja) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6507898B1 (en) * | 1997-04-30 | 2003-01-14 | Canon Kabushiki Kaisha | Reconfigurable data cache controller |
| US6219457B1 (en) | 1998-05-26 | 2001-04-17 | Silicon Graphics, Inc. | Method and system for decoding data encoded in a variable length code word |
| US6697525B1 (en) | 1998-10-02 | 2004-02-24 | Parthusceva Ltd. | System method and apparatus for performing a transform on a digital image |
| US6192157B1 (en) | 1998-10-27 | 2001-02-20 | Hewlett-Packard Company | Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors |
| US6385342B1 (en) * | 1998-11-13 | 2002-05-07 | Xerox Corporation | Blocking signature detection for identification of JPEG images |
| US6771824B1 (en) * | 1999-12-28 | 2004-08-03 | Lucent Technologies Inc. | Adaptive variable length decoding method |
| US6868186B1 (en) | 2000-07-13 | 2005-03-15 | Ceva D.S.P. Ltd. | Visual lossless image compression |
| US6834337B1 (en) | 2000-09-29 | 2004-12-21 | International Business Machines Corporation | System and method for enabling multiple signed independent data elements per register |
| US7039906B1 (en) | 2000-09-29 | 2006-05-02 | International Business Machines Corporation | Compiler for enabling multiple signed independent data elements per register |
| US7581027B2 (en) * | 2001-06-27 | 2009-08-25 | Ricoh Co., Ltd. | JPEG 2000 for efficent imaging in a client/server environment |
| US7574363B2 (en) * | 2001-08-23 | 2009-08-11 | International Business Machines Corporation | Intelligent merchandise indicator |
| US7394346B2 (en) * | 2002-01-15 | 2008-07-01 | International Business Machines Corporation | Free-space gesture recognition for transaction security and command processing |
| JP4247961B2 (ja) * | 2003-02-25 | 2009-04-02 | 船井電機株式会社 | Dvdプレイヤ、および光ディスク再生装置 |
| US6903668B1 (en) * | 2003-11-18 | 2005-06-07 | M-Systems Flash Disk Pioneers Ltd. | Decompression accelerator for flash memory |
| US6956511B2 (en) * | 2004-01-06 | 2005-10-18 | Sharp Laboratories Of America, Inc. | Multi-symbol/coefficient decode operation for Huffman codes |
| US20050174269A1 (en) * | 2004-02-05 | 2005-08-11 | Broadcom Corporation | Huffman decoder used for decoding both advanced audio coding (AAC) and MP3 audio |
| KR100847077B1 (ko) | 2006-08-02 | 2008-07-17 | 엠텍비젼 주식회사 | 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체 |
| TWI349894B (en) * | 2007-12-05 | 2011-10-01 | Quanta Comp Inc | Method for transmitting image bit stream and image encoder |
| TWI376959B (en) * | 2008-05-02 | 2012-11-11 | Novatek Microelectronics Corp | Entropy decoding circuit, entropy decoding method, and entropy decoding method using a pipeline manner |
| TWI343192B (en) * | 2009-06-12 | 2011-06-01 | Ind Tech Res Inst | Decoding method |
| FR2958429B1 (fr) * | 2010-04-02 | 2012-11-30 | Lead Tech Design | Dispositif de traitement permettant d'extraire un ensemble de donnees d'un mot de donnees, circuit electronique et procede d'extraction de donnees correspondants |
| US9002122B2 (en) | 2012-07-19 | 2015-04-07 | Omnivision Technologies, Inc. | System and method for improving decoder performance using quantization control |
| CN110233627B (zh) * | 2019-05-22 | 2023-05-12 | 深圳大学 | 一种基于流水式的硬件压缩的系统及方法 |
| CN113824449B (zh) * | 2021-09-18 | 2024-08-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种静态霍夫曼并行编码方法、系统、存储介质及设备 |
| CN115695822B (zh) * | 2022-06-09 | 2026-04-10 | 珠海市杰理科技股份有限公司 | 哈夫曼编码图像的解码方法、装置及显示设备 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3701980A (en) * | 1970-08-03 | 1972-10-31 | Gen Electric | High density four-transistor mos content addressed memory |
| US4899149A (en) * | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
| US4780845A (en) * | 1986-07-23 | 1988-10-25 | Advanced Micro Devices, Inc. | High density, dynamic, content-addressable memory cell |
| US5208593A (en) * | 1991-07-30 | 1993-05-04 | Lsi Logic Corporation | Method and structure for decoding Huffman codes using leading ones detection |
| US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
| US5325092A (en) * | 1992-07-07 | 1994-06-28 | Ricoh Company, Ltd. | Huffman decoder architecture for high speed operation and reduced memory |
| US5343195A (en) * | 1992-12-18 | 1994-08-30 | Thomson Consumer Electronics, Inc. | Variable length codeword decoding apparatus |
| JP3292221B2 (ja) * | 1993-09-14 | 2002-06-17 | ソニー株式会社 | 画像圧縮符号化方法 |
| EP0649224B1 (en) * | 1993-09-23 | 1999-03-03 | Lg Electronics Inc. | Variable length coder and variable length decoder |
| US5550542A (en) * | 1994-05-04 | 1996-08-27 | Matsushita Electric Corporation Of America | Variable length code look-up table having separate code length determination |
| KR0141298B1 (ko) * | 1994-11-17 | 1998-06-15 | 배순훈 | 가변 길이 복호화 장치 |
-
1996
- 1996-06-19 US US08/666,964 patent/US5818364A/en not_active Expired - Lifetime
-
1997
- 1997-01-13 SG SG9700070A patent/SG73441A1/en unknown
- 1997-05-27 JP JP9136722A patent/JPH1075181A/ja active Pending
- 1997-06-11 ES ES97304069T patent/ES2231844T3/es not_active Expired - Lifetime
- 1997-06-11 EP EP97304069A patent/EP0814614B1/en not_active Expired - Lifetime
- 1997-06-11 DE DE69732271T patent/DE69732271T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0814614A3 (en) | 2000-01-05 |
| DE69732271D1 (de) | 2005-02-24 |
| EP0814614A2 (en) | 1997-12-29 |
| DE69732271T2 (de) | 2006-01-05 |
| US5818364A (en) | 1998-10-06 |
| ES2231844T3 (es) | 2005-05-16 |
| SG73441A1 (en) | 2003-11-27 |
| EP0814614B1 (en) | 2005-01-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1075181A (ja) | ハフマン・デコーダ | |
| US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
| US6285796B1 (en) | Pseudo-fixed length image compression scheme | |
| US6008745A (en) | Variable length decoding using lookup tables | |
| US5220325A (en) | Hierarchical variable length decoder for digital video data | |
| US7061410B1 (en) | Method and/or apparatus for transcoding between H.264 CABAC and CAVLC entropy coding modes | |
| EP0665653B1 (en) | Apparatus and method for decoding variable-length code | |
| JPH07212242A (ja) | 可変長復号化器 | |
| US10887616B2 (en) | Image processing devices having enhanced frame buffer compressors therein | |
| JPH1065549A (ja) | 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法 | |
| JPH07123407A (ja) | Hdtv復号化器 | |
| CN102752590A (zh) | 转换成中间格式的两步算术解码 | |
| US6653953B2 (en) | Variable length coding packing architecture | |
| JP3224060B2 (ja) | 可変長デコーダのための2段バッファを有するデコーダ装置および方法 | |
| JPH05115010A (ja) | 画像復号化装置 | |
| US6687410B1 (en) | Method and apparatus for compression and decompression of data | |
| CN1333575C (zh) | 图像编码设备及其方法,编码图像解码设备及其方法 | |
| JP3213387B2 (ja) | 画像符号化方法及び画像復号化方法 | |
| JP3832797B2 (ja) | 符号化装置及び符号化方法 | |
| CN112055223A (zh) | 一种图像编解码方法及编解码器 | |
| JP3434088B2 (ja) | 画像データ変換装置およびその逆変換装置 | |
| US20020006228A1 (en) | Data decoding apparatus and method of same | |
| TW447195B (en) | A run-length decoder with error concealment capability | |
| JPH0879754A (ja) | 画像符号化装置及び画像復号化装置 | |
| JP4731972B2 (ja) | 画像符号化方法及び画像符号化装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040121 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040311 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040311 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040316 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050622 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050916 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051011 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050916 |