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
Application number
JP9136722A
Other languages
English (en)
Other versions
JPH1075181A5 (ja
Inventor
Jeffrey A Hintzman
ジェフリー・エー・ハインツマン
Brian R Jung
ブライアン・アール・ヤン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH1075181A publication Critical patent/JPH1075181A/ja
Publication of JPH1075181A5 publication Critical patent/JPH1075181A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy 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

(57)【要約】 【課題】 ハフマン符号化により圧縮されたデータの伸
張に適したデコーダ。 【解決手段】 データ・ストリーム中の係数のランレン
グス、係数のサイズ、及び係数の長さと符号語の長さの
和が得られるようにし、この値により、次の符号語に着
手するためにレジスタ内のビットをシフトするシフト量
を求められる。これにより、新しいデータを受け取りな
がら復号動作を行うようにして、デコーダはハフマン符
号化ビット・ストリームを高速に復号することができ
る。また、RLL検出器203及びヘッダ/マーカ検出
器205が、デコーダ201でのデータ処理を同じクロ
ック・サイクルで模倣することによって、バイト境界お
よびヘッダ/マーカが適切に追従するので、1クロック
・サイクルで復号することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、ハフマン符
号化を使用するデータ圧縮および伸張に関し、特に静止
画像(JPEG)への応用例およびビデオ画像(MPEG)への
応用例でのハフマン符号化に関し、具体的には高ビット
伝送速度ハフマン復号に関する。
【0002】
【従来の技術】伝送や長期間にわたる記憶を行う場合の
データのコンパクト化はデータ圧縮とも呼ばれ、可変長
符号化技法を使用して行うことができる。固定長のデー
タ・ビット・ストリングが可変長のビット・ストリング
として符号化され、より頻繁に発生するデータ・ビット
・ストリングまたは文字がより短い長さの符号語で表さ
れ、それによって伝送時間が短縮され、あるいはその記
憶機構に対する要件が低減される。データ・プロセッサ
では、圧縮済みデータをこの圧縮形で使用することはで
きない。したがってこのデータは、固定長形式に復号さ
れる。これはデータ伸張とも呼ばれる。
【0003】冗長度が最小の可変長符号の一形態は、
「A Method for the Construction ofMinimum Redundan
cy Codes」(Proceedings of the IEEE、IRE、第40(9)
巻、1098ページないし1101ページ、1952年)と題する論
文でD.A. Huffmanによって提案されている。ハフマン符
号化および復号では、発生率の高い記号はより短いビッ
ト長符号を有する。ハフマン符号化は、簡単な順方向の
2分木構造と最適符号化(平均符号長が最小となる符号
化)手順を備えているので、広く使用されている。
【0004】ハフマン符号を復号する様々な技法が開発
されている。基本的にハフマン符号のストリームの復号
は、2分デコーダ木(binary decoder tree)に従うこと
によって行われる。一般に、このようなデータ伸張エン
ジンは、順次論理を使用して一度に1ビットまたは2ビ
ットずつハフマン符号を反復的に復号するか、あるいは
組合せ論理を使用して符号全体を1クロック・サイクル
で並行して復号する。
【0005】ディジタル・ハード・コピー再生の分野で
は、データ圧縮にハフマン符号を使用する規格が採用さ
れている。この規格は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」とも呼ばれる))として発表され
た。
【0006】フル・カラー・ハード・コピー・プリンタ
や、ファックスでのカラー画像伝送や、ディジタル・ビ
デオ伝送などの高ビット伝送速度応用例では、適当なハ
フマン・デコーダの設計が重大である。ビット・ストリ
ームを再位置合わせするために必要なフィードバック・
ループが必要であるため、パイプラインとそれと並列し
て行う復号化は共に困難なものになる。可変長符号は、
プログラム可能な符号参照テーブルを使用して固定長の
最初のデータストリングに復号しなければならない。こ
の操作を好ましくは1サイクルで完了しておかないかぎ
り、次の符号語を復号することはできない。このタスク
は、各連続符号語の可変長の性質により複雑になってし
まう。その上、高クロック周波数で動作するには、クリ
ティカル・パスにおけるロジックの数を最小限に抑えな
ければならない。
【0007】JPEG/MPEGデータの特定の応用例では、実
際のハフマン復号操作だけでなく他の複雑な問題があ
る。ハフマン符号語は、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版))において論じられてい
る。しかし、当業者が本発明を理解するうえでこれ以上
の説明は不要である)。
【0008】場合によってはさらに問題を複雑にするこ
ととして、圧縮済みJPEG/MPEGデータ・ストリームには
一般に、ヘッダおよび制御マーカ107が埋め込まれ
る。このようなマーカは、予約データ・パターンであ
り、すなわちデータ・ストリーム中のバイト境界に埋め
込まれた、1と0からなる特定の予約ストリングであ
る。この例には、START OF SCANマーカ、START OF IMAG
Eマーカ、END OF IMAGEマーカ、RESTARTマーカがある。
したがって、JPEGハフマン・デコーダは、マーカの存在
を検出し、そのマーカとともに、そのマーカをバイト境
界に整列させるために付加されたパディング・ビットも
削除しなければならない。
【0009】216個のメモリ・ロケーションからなる参
照テーブルを使用する標準JPEGハフマン・デコーダで
は、受け取った特定の符号語のランおよびサイズを与え
る参照テーブルのアドレスとして、最大16ビットが使
用される。しかし、これには大型で低速のメモリが必要
である。言い換えれば、ハフマン符号の位置および長さ
を求め、その後、参照テーブルまたは復号操作によっ
て、その後に続く係数のランレングスおよびサイズを求
め、その後、そのデータを抽出し、それに続いてシフト
を行い、次の符号語を見つけてこの操作を繰り返さなけ
ればならない。
【0010】アドレス空間を減少させるために、Tong等
は米国特許第5,208,593号において開示されているよう
に、符号語中の一連の先頭の1を使用してより小型のメ
モリにインデックスさせる方法を開発した。しかし、ビ
ットを付加すると圧縮効率に悪影響を受けるので、Rett
er等は圧縮効率を高めるために、米国特許第5,379,070
号に開示された並列処理方法を開発した。しかしこの方
法では、高価なハードウェア構成要素が付加される。
【0011】
【発明が解決しようとする課題】したがって、図1に示
したビット・データ・ストリームのような、JPEG/MPEG
方式で圧縮されたデータの伸張に適した高ビット伝送速
度ハフマン復号方法およびアーキテクチャが必要であ
る。
【0012】
【課題を解決するための手段】本発明は、その基本態様
において、最大長「Q」の符号語−係数対を有するハフ
マン符号化データ・ストリームを復号する方法を提供す
る。基本的にこの方法は、データ容量が少なくともQの
2倍であるデータ・レジスタに、係数とハフマン符号語
の第1の対を備える、いくつかのビットを有する第1の
入力データ・セットを記憶するステップと、ストリーム
の第2の係数−ハフマン符号語対を備える次の逐次入力
データ・セットをシフト・レジスタにおいて受け取るス
テップと、前記次の逐次入力データ・セットを第1の入
力データ・セット内のビットの数だけ右シフトするステ
ップと、前記第1の入力データ・セットと前記次の逐次
入力データ・セットの論理和を実行し、結果をデータ・
レジスタに入れるステップと、データ・レジスタの
「N」個の上位ビットを復号済み係数値として抽出し、
データ・レジスタの次の上位ビット「M」個をハフマン
符号語として抽出するステップとを含む。
【0013】本発明の他の態様では、JPEG標準データ・
ストリームを復号するハフマン復号化装置が提供され
る。該JPEG標準データ・ストリームは、ハフマン符号語
−係数対データ・フォーマットの最大16ビットのハフ
マン符号語を有しており、さらにバイト境界情報符号と
ヘッダ/マーカ情報符号とを含んでいる。この装置は、
入力バスと、少なくとも2つの符号語−係数対を入力バ
スから受け取るために入力バスに接続された右シフト・
レジスタと、右シフト・レジスタから右シフト・レジス
タ・データ出力を受け取るためのビットOR演算機構
と、前記ビットOR演算機構から出力データを受け取る
ために前記ビットOR演算機構に接続された入力データ
・レジスタと、前記入力データ・レジスタから出力デー
タを受け取るために前記入力データ・レジスタに接続さ
れた左シフト・レジスタと、係数のランレングスと、可
変長符号化係数の長さと、符号語の長さと符号化係数の
長さの和が得られるような符号語−係数対から復号され
る現符号語および係数を、左シフト・レジスタから抽出
する機構と、前記入力データ・レジスタを前記和の量だ
け左シフトさせ、復号される次の現符号語および係数を
得るためのフィードバック機構とを含む。
【0014】本発明の利点は、復号クリティカル・パス
で必要とされるロジックの数が最小限に抑えられること
である。
【0015】本発明の他の利点は、1クロック・サイク
ルごとに1つの符号−係数対が復号されることである。
【0016】本発明の他の利点は、商用の実施態様のラ
ンダム・アクセス・メモリに対する要件が受け入れられ
るものであることである。
【0017】本発明の他の利点は、JPEG規格およびMPEG
規格に適合する必要に応じて、制御マーカが適切に検出
され処理されることである。
【0018】本発明の他の目的、特徴、利点は、下記の
説明および添付の図面を検討したときに明らかになろ
う。図面全体にわたって同じ参照符号のものは同じ構成
要素である。
【0019】
【実施例】次に、本発明を実施するために本発明者によ
って現在企図されている最良の態様を示す本発明の特定
の実施形態を詳細に参照する。必要に応じて代替実施形
態も簡単に説明する。ここでは、JPEG規格に適用した場
合の例示的な実施形態を与える。しかし、当業者には、
本発明をMPEGまたはその他のデータ復号にも適用できる
ことが認識されよう。この例示的な実施態様を使用する
ことによって特許請求の範囲に記載された本発明の範囲
が制限されるようなことは企図しておらず、またそのよ
うな制限を暗示するわけでもない。
【0020】本発明の特定の例示的な実施形態を図2に
示す。
【0021】〔動作の概要〕概略的に言えば、圧縮済み
JPEGデータ・ストリームがバス200を介して32ビッ
ト・ストリング符号、すなわち単一の最大長ハフマン符
号語−係数対として係数デコーダ201に入力される。
バイト境界情報、すなわち4ビット・ストリング語が、
バス202を介してRLL検出器203に入力される。マ
ーカ検出器205で復号されるヘッダ/マーカ符号4ビ
ット・ストリング語がバス204を介して入力される。
入力データストリングに対して入力シフト・レジスタは
概して1つだけ使用される。
【0022】1つの画像情報の入力の始めに、まず2つ
の32ビットの入力語がロードされる。シフトすべきビ
ット数は始めに零にクリアされ、したがって第1のサイ
クルではシフト動作は実行されない。その後は各クロッ
ク・サイクルごとに、ひとつ前のハフマン符号語−係数
対中のビットの数だけデータがシフトされる。
【0023】次いで、復号にOR演算が使用される。こ
れは、データ・サブセットにおいて次の符号語がどこか
ら始まるかを指し示すことを不要にし、それによりクリ
ティカル・パスを短縮するので比較的高速な演算であ
る。しかし、既存の入力データを用いたシフト演算およ
びOR演算が実行されるときはいつでもバイト境界情報
の位置が失われるので、このバイト境界情報をどのよう
に保持するかが問題になる。RESTARTやEND_OF_IMAGE JP
EGマーカなどのデータ・ストリーム・ヘッダ/マーカに
出会ったときにバイト境界情報が重大であることは明ら
かである。したがって、これは並列RLL検出器202お
よびマーカ検出器204を使った実施態様で対処され
る。
【0024】〔入力データ−ローディング〕図3および
図3を参照すると、バイト境界情報とデータ・ストリー
ム・マーカ情報を的確な記録でもって維持する際の問題
の解決策を含む、本発明による高速ハフマン・デコーダ
300の特定の実施形態が示されている。ここでは、当
業者に認識されるであろう標準的なロジックが示されて
いる。ハフマン復号技術自体は、ハフマン符号語中の先
頭の1の数に基づいて参照テーブルにアクセスする方式
を使用する。この復号方法は、米国特許第4,899,149号
(Kahan)および米国特許第5,208,593号(Tong)におい
て開示されている。したがって、下記の説明では、本明
細書の特許請求の範囲に記載された本発明の説明に焦点
を当てる。
【0025】バス200上で受け取った32ビット入力
データ語は、データ・レジスタ「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ビット語をキューにした、高速実施態様として決定
されている。
【0026】〔ヘッダ/マーカ/バイト境界情報ビット
−ロード〕入力データ・ストリーム中の32ビット語間
のヘッダ/マーカおよびバイト境界情報は、当技術分野
で知られているように標準的に検出され、それぞれ、バ
ス204、202上に4ビット語として分離される。次
いで、RLL検出器203およびヘッダ/マーカ検出器2
05はそれぞれ、「ゼロ挿入」ハードウェア303、3
05によって、4つのビットの各ビット間に7つの0
(ゼロ)を挿入することによって、それぞれの4ビット
入力語を32ビットに拡張させる。
【0027】例示的な実施形態では、圧縮JPEGデータ・
ストリームのバイト境界に、JPEG規格で定義されたREST
ARTマーカおよびEND_OF_IMAGE(「EOI」)マーカが挿入
される。これらのJPEGマーカはマーカ検出器205によ
って検出され、32ビット入力語中のどのバイト境界で
マーカが検出されたかを示す4ビットが出力される。こ
のマーカ自体は、入力データ・ストリームから除去され
る。この4ビット・マーカIDは、4つのビットの各ビ
ット間に7つの零を挿入することによって、入力データ
語に合致するようにフルの32ビットに拡張される。し
たがって、マーカ識別子ビットのビット位置は、マーカ
が検出され削除された入力データ語中のその位置と正確
に一致する。
【0028】同様に拡張された32ビットRLL語がレジ
スタR307にロードされる。拡張された32ビットRE
STARTマーカ語またはEOIマーカ語はレジスタ「E」
309にロードされる。次に、バイト境界位置およびヘ
ッダ・マーカ位置が、最初に入力データとして符号化さ
れたときと同じ順序で保存されるように、Q_レジスタ
301、R_レジスタ307、E_レジスタ309を同
期的にシフトすることができる。すなわち、下記で説明
するその後のシフト演算が行われたときに、Q_レジス
タ301内の入力データ・ストリーム、R_レジスタ3
07内のRLL語、E_レジスタ309内のRESTARTまたは
EOIマーカ語がまとめてシフトされ、互いに同期した
ままになる。
【0029】〔入力データ−復号〕バス200から得た
入力データ・ストリームの「次の」32ビット・データ
語が、「現在の」左シフト演算が処理された後に75ビ
ット・データ・レジスタ301に存在しているデータ・
ビットの数に等しい量だけ右シフトされる(313)。
これは、Q_レジスタ301へのビットOR演算(31
5)に備えて行われる。右シフト313演算とビットO
R演算(315)は、現在Q_レジスタ301内に存在
するデータ・ビットのすぐ右側の適切な位置に新しい3
2ビット・データ語をロードするという効果を有する。
【0030】次いで、その「次の」語にビットOR演算
315が施され、結果がQ_レジスタ301に入れられ
る。
【0031】Q_レジスタ301を占めていた75ビッ
トが、レジスタ317内で、第1の符号語と係数の和の
サイズだけ左シフトされる。
【0032】次いで、左シフトされたデータ・ストリー
ム中の最も左の27ビットが調べられる。この27ビッ
トのうちで、レジスタ319中の最も左側の11ビット
は、第1の符号語−係数対の係数である。レジスタの最
も左側のビットがビット74であり、最も右側のビット
がビット0であると仮定すると、ビット63〜48は、
JPEG規格当たりの長さが最大16ビットまで許される可
変長ハフマン符号を含んでいる。
【0033】参照テーブルを使用してハフマン符号を復
号すると、ハフマン符号語と符号なし係数の組み合わせ
の長さが生成される。次のクロック・サイクルでは、Q
_レジスタ301がこの長さ分だけ左シフトされる。
【0034】左シフトの後、Q_レジスタ301の最も
左側の11ビットは、前の符号語−係数部から得た可変
長の符号なし係数を含む。可変長の符号なし係数は、0
〜11ビットの任意の長さであってよく、係数サイズA
レジスタ327はこの係数の長さを含む。係数復号装置
331は、符号なし係数および係数長を取り出し、CODE
_DECODE_HUFFMAN装置333への12ビット符号付き数
量出力として、復元済み係数値を生成する。
【0035】係数の長さが11ビットよりも短い場合、
情報がQ_レジスタ301の最も左側の11ビットのう
ちの最も右側のビットに含まれることに留意されたい。
したがって、標準のブール論理を介して、符号化係数お
よび係数サイズ・データを使用してこの符号化係数が1
2ビット符号付き数量331として復元され、この数量
331がJPEGデコーダ(図示せず)の次の段に出力され
る(333)。
【0036】最も右側の16ビットは現ハフマン符号語
であり、アドレス生成装置321へ送られ、ハフマン参
照テーブル323においてアクセスすべきアドレスが算
出される。参照テーブル323は次いで、ゼロ・ランレ
ングス325(復号済みデータに再挿入しなければなら
ない係数に挿入されているゼロの数)および係数サイズ
・データ327と、次の左シフト量329に等しい現符
号語−係数対の全体的な長さ、すなわち、次の検査サイ
クルで左シフト・レジスタ317をシフトすべき位置の
数を与える。
【0037】参照テーブルは、入力データ・ストリーム
からハフマン符号語を復号し、下記の3つの値を与え
る。 (1)ゼロ係数のランレングス (2)可変長符号化係数の長さ (3)ハフマン符号語の長さと符号化係数の長さの和 ただちに、最後の値を使用してQ_レジスタ301が左
シフトされる。可変長符号化係数の長さを使用して、係
数がその12ビット符号付き値に復元される。パイプラ
イン式実施態様では、CODE_DECODE_HUFFMANレジスタ3
33からの正しい係数に合致するようにランレングス情
報と係数サイズ情報を遅延させなければならないので、
ランレングス情報は、ランレングスAレジスタ325お
よびランレングスBレジスタ326によって遅延される
ランレングス・デコーダ363に直接出力される。
【0038】入力データが可変長のものなので、Q_レ
ジスタ301のデータ、R_レジスタ307のバイト境
界情報、およびE_レジスタ309のヘッダ/マーカの
それぞれにいくつの有効ビットが存在するかを追跡する
ために、有効ビット・レジスタ311を使用する。レジ
スタ301、307、309からビットがシフトされる
につれて、各サイクルで参照テーブルから与えられるシ
フトの値を有効ビット・レジスタのカウントから減じな
ければならない。
【0039】新しい32ビット語の入力データがロード
されると、312によって有効ビット・カウントに32
が加えられる。ロード制御機構314は、Q_レジスタ
301内の有効データ・ビットの数と、次のクロック・
サイクルで適用される左シフトの量をモニタする。ロー
ド制御機構314は、Q_レジスタ301内の有効デー
タ・ビットの数が43よりも小さくなると判定すると、
Q_レジスタに新しいデータ語をロードすることを求め
る信号を発する(すなわち、有効データ・ビットの数か
らシフトの量を減じた値が43よりも小さい場合は、新
しいデータ語をロードする)。
【0040】〔ヘッダ/マーカ/バイト境界情報ビット
−復号〕次に、前の説明から、拡張された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を出力することができる。
【0041】〔実施態様〕なお、本発明の実施態様の例
を以下に示す。
【0042】〔実施態様1〕 ハフマン符号語−係数対
データ・フォーマット(103、105)の最大16ビ
ットのハフマン符号語(103)とバイト境界情報符号
(107)とヘッダ/マーカ情報符号(107)とを含
むJPEG標準データ・ストリーム(103、105、10
7)を復号するハフマン・デコーダであって、入力バス
(200)と、少なくとも2つの符号語−係数対を入力
バスから受け取るために入力バスに接続された右シフト
・レジスタ(313)と、右シフト・レジスタから出力
データを受け取るビットOR演算手段(315)と、前
記ビットOR演算手段から出力データを受け取るために
前記ビットOR演算手段に接続された入力データ・レジ
スタ(301)と、前記入力データ・レジスタから出力
データを受け取るために前記入力データ・レジスタに接
続された左シフト・レジスタ(317)と、係数のラン
レングスや、可変長符号化係数の長さや、符号語の長さ
と符号化係数の長さの和を得られるように、符号語−係
数対から復号すべき現符号語および係数を左シフト・レ
ジスタから抽出する手段(331、333、363)
と、前記入力データ・レジスタを前記和の量だけ左シフ
トさせ、復号すべき次の現符号語および係数を得るフィ
ードバック手段とを備えることを特徴とするハフマン・
デコーダ。
【0043】〔実施態様2〕 バイト境界情報符号を符
号語−係数対と同じビット長になるまでパディングする
手段(303)を含む、バイト境界情報符号を受け取り
追跡する手段(203)と、符号語−係数対と同期させ
てバイト境界情報符号をシフトさせる手段(353)と
をさらに含むことを特徴とする、実施態様1に記載のデ
コーダ。
【0044】〔実施態様3〕 ヘッダ/マーカ情報符号
を符号語−係数対と同じビット長になるまでパディング
する手段(305)を含む、ヘッダ/マーカ情報符号を
受け取り追跡する手段(205)と、符号語−係数対と
同期的にヘッダ/マーカ情報符号をシフトさせる手段
(351)とをさらに含むことを特徴とする、実施態様
1または実施態様2に記載のデコーダ。
【0045】〔実施態様4〕 前記入力レジスタは、デ
ータ容量が入力バスのビット幅の少なくとも2倍である
レジスタを備えることを特徴とする、実施態様1ないし
実施態様3のいずれかに記載のデコーダ。
【0046】〔実施態様5〕 最大長「Q」の符号語−
係数対を有する符号化データ・ストリームを復号する方
法であって、データ容量が少なくともQの2倍であるデ
ータ・レジスタに、係数とハフマン符号語の第1の対を
備えるいくつかのビットを有する第1の入力データ・セ
ットを記憶するステップと、ストリームの第2の係数−
ハフマン符号語対を備える次の逐次入力データ・セット
をシフト・レジスタで受け取るステップと、前記次の逐
次入力データ・セットを前記第1のデータ・セット内の
ビットの数だけ右シフトするステップと、前記第1の入
力データ・セットと前記次の逐次入力データ・セットの
論理和を実行し、結果をデータ・レジスタに入れるステ
ップと、データ・レジスタの最上位ビットN個を復号済
み係数値として抽出し、データ・レジスタの次の上位ビ
ットM個を符号語として抽出するステップとを含むこと
を特徴とする方法。
【0047】〔実施態様6〕 ストリームが終了するま
で、データ・ストリームの次の各逐次入力データ・セッ
トごとに実施態様5のステップを繰り返すステップをさ
らに備えることを特徴とする、実施態様5に記載の方
法。
【0048】〔実施態様7〕 関連するデータ・セット
と共にデータ・ストリームに埋め込まれたバイト境界情
報を受け取るステップと、バイト境界情報が、入力デー
タ・セット長に等しいビット長を有するように、バイト
境界情報の各ビット間に零のストリングをパディングす
るステップと、関連するデータ・セットと同時にバイト
境界情報を右シフトさせるステップと、各零ストリング
を抽出し、バイト境界情報を復号済みデータ・セットに
整列するように再形成するステップとをさらに含むこと
を特徴とする、実施態様5または実施態様6に記載の方
法。
【0049】〔実施態様8〕 データ・ストリームに埋
め込まれた制御マーカ情報を関連するデータ・セットと
共に受け取るステップと、前記制御マーカ情報が入力デ
ータ・セット長に等しいビット長を有するように、前記
制御マーカ情報の各ビット間に零のストリングをパディ
ングするステップと、前記制御マーカ情報を、関連する
データ・セットと同時に右シフトさせるステップと、各
零ストリングを抽出し、前記制御マーカ情報を復号済み
データ・セットに整列するように再形成するステップと
をさらに含むことを特徴とする、実施態様5ないし実施
態様7のいずれか一項に記載の方法。
【0050】〔実施態様9〕 各クロック・サイクル
で、データが前の符号語−係数対中のビットの総数だけ
シフトされることを特徴とする、実施態様5ないし実施
態様8のいずれか一項に記載の方法。
【0051】
【発明の効果】要するに本発明は、ラン、係数のサイ
ズ、及び係数と符号語長の和を符号化する。この値は、
次の符号語に着手するためのシフトの量を示すシフト量
として与えられる。これは、新しいデータを受け取りな
がら復号動作を行うようにして、JPEGハフマン符号化ビ
ット・ストリームを高速に復号する方法を与える。同時
に、回路203、205がハフマン・デコーダ201で
のデータ処理を模倣することによってバイト境界および
ヘッダ/マーカが適切に追跡される。EOIマーカが検
出された後、デコーダは受け取ったデータがなくなるま
で処理を継続する。
【0052】また、上記したように本発明は復号にOR
演算を使用しており、これによって入力における次の符
号語がデータ・サブセット中のどこから始まるのかを指
し示すことを不要にしている。従って、クリティカル・
パスを短縮することができるので、比較的高速な演算を
実現することができる。
【0053】本発明の好ましい実施形態の上記の説明
は、例示および説明のために与えたものである。上記の
説明は、網羅的なものでも、あるいは開示した厳密な形
態に本発明を制限するものでもない。当業者には多数の
修正形態および変形形態が明らかになろう。同様に、説
明したプロセス・ステップを他のステップと相互交換し
て同じ結果を達成することができる。実施形態は、本発
明の原則および最適な態様の実用例を最もうまく説明
し、それによって当業者が本発明を様々な実施形態に関
して、かつ企図される特定の用途に適した様々な修正形
態と共に理解することができるように選択され記載され
ている。本発明の範囲は、添付の請求の範囲およびその
等価物によって定義されるものである。
【図面の簡単な説明】
【図1】 圧縮JPEGデータ・ストリームの概略図であ
る。
【図2】 本発明によるハフマン・デコーダの概略ブロ
ック図である。
【図3】 図2に示した本発明によるハフマン・デコー
ダの詳細な概略論理図である。
【符号の説明】
200:バス 201:デコーダ 202:バス 203:RLL検出器 204:バス 205:ヘッダ/マーカ検出器 303:ゼロ挿入ハードウェア 305:ゼロ挿入ハードウェア 311:有効ビット・レジスタ 313:右シフト・レジスタ 314:ロード制御機構 315:ビットOR演算器 321:アドレス生成装置 323:参照テーブル 355:ゼロ検出器 357:左シフト・レジスタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ハフマン符号語−係数対データ・フォー
    マットの最大16ビットのハフマン符号語とバイト境界
    情報符号とヘッダ/マーカ情報符号とを含むJPEG標準デ
    ータ・ストリーム復号するハフマン・デコーダであっ
    て、 入力バスと、 少なくとも2つの符号語−係数対を入力バスから受け取
    るために入力バスに接続された右シフト・レジスタと、 右シフト・レジスタから出力データを受け取るビットO
    R演算手段と、 前記ビットOR演算手段から出力データを受け取るため
    に前記ビットOR演算手段に接続された入力データ・レ
    ジスタと、 前記入力データ・レジスタから出力データを受け取るた
    めに前記入力データ・レジスタに接続された左シフト・
    レジスタと、 係数のランレングスや、可変長符号化係数の長さや、符
    号語の長さと符号化係数の長さの和を得られるように、
    符号語−係数対から復号すべき現符号語および係数を左
    シフト・レジスタから抽出する手段と、 前記入力データ・レジスタを前記和の量だけ左シフトさ
    せ、復号すべき次の現符号語および係数を得るフィード
    バック手段とを備えることを特徴とするハフマン・デコ
    ーダ。
JP9136722A 1996-06-19 1997-05-27 ハフマン・デコーダ Pending JPH1075181A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 배순훈 가변 길이 복호화 장치

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