JPH0685689A - デコーダ - Google Patents

デコーダ

Info

Publication number
JPH0685689A
JPH0685689A JP5148120A JP14812093A JPH0685689A JP H0685689 A JPH0685689 A JP H0685689A JP 5148120 A JP5148120 A JP 5148120A JP 14812093 A JP14812093 A JP 14812093A JP H0685689 A JPH0685689 A JP H0685689A
Authority
JP
Japan
Prior art keywords
unit
decoder
bit
look
memory
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
Application number
JP5148120A
Other languages
English (en)
Other versions
JP3224164B2 (ja
Inventor
Aren Jieemusu
アレン ジェームス
Booritsuku Maatein
ボーリック マーティン
Eru Shiyuwaru Edowaado
エル.シュワル エドワード
Bedonatsushi Deibitsudo
ベドナッシ ディビッド
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPH0685689A publication Critical patent/JPH0685689A/ja
Application granted granted Critical
Publication of JP3224164B2 publication Critical patent/JP3224164B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • 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
    • H03M7/425Conversion 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 for the decoding process only
    • 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/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/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)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 【目的】 様々な用途に好適な高速ハフマンデコーダを
実現する。 【構成】 ワイドテーブルアーキテクチャにあっては、
ハフマン符号化データユニットを受け取るビットシフタ
24のセルに接続されたメモリ30が、ワイドなルック
アップテーブルとして働き、複数のトークンと制御ビッ
トを同時に生成する。この制御ビットにより指定される
ビット数分だけビットシフタはデータをシフトし、次の
復号動作に備える。 【効果】 平均して、1サイクルで一つより多い符号語
が復号される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハフマン符号化データ
を伸長するためのデコーダに係り、特に、ハフマン符号
化データの高速デコーダに関する。
【0002】
【従来の技術】ハフマン符号化においては、オリジナル
データのユニットが、可変長の符号語(codewords)とオ
プションの非ハフマン符号化語(non-Huffman coded w
ords)からなる符号化ユニットに圧縮される。符号語
は、最高頻度のオリジナルデータのユニットが最短の符
号語、すなわち最小のビット数を持ち、最低頻度のオリ
ジナルデータのユニットが最長の符号語を持つように選
ばれる。このようにして、オリジナルデータは符号化デ
ータに圧縮される。これはハフマン符号化の一般的な説
明であるから、当然のことながら、特定の用途のための
ハフマン符号の選択及び生成について、これより遥かに
正確に説明できる。
【0003】ハフマン符号化の代表的な用途は、デジタ
ル画像処理のような、処理または伝送を要する大量のデ
ータが存在する場合である。例えば、JPEG(Joint
Photographic Experts Group)標準及び該標準のハ
フマン符号化により符号化されたカラー画像は、一般的
に、多数のデータユニットを扱う。ハフマン符号化は現
在及び将来のデジタル映像処理標準に見られる。
【0004】これらの標準中に、静止画像用標準である
上述のJPEG標準がある。既存及び将来の動画用標
準、例えばCCITT映像遠隔会議標準のH.261や
MPEG(Motion Picture Experts Group)I等
は、JPEG標準に非常に類似した符号化方式を持って
いる。さて、MPEG標準は初期の高解像度テレビジョ
ン(HDTV)技術に関連している。HDTV,MPE
G,H.261とJPEGの間の共通として、ハフマン
符号化を含むことが予想される。
【0005】ハフマン符号化が用いられる場合には、当
然にハフマン符号化ユニットの復号がなされる必要があ
る。各符号化ユニットの復号において、各符号語から一
つのトークンが生成される。各トークンは、それがユニ
ークであるので、符号化ユニット(及びオリジナルデー
タユニット)に関し、該符号化ユニットをそのオリジナ
ルデータに組み立てる、すなわち伸長するための制御情
報として利用されるに十分な情報を含む。
【0006】重要かつ基本的な問題は、符号語から各ト
ークンを生成する復号動作において見出される。この問
題は、符号化ユニットの高速復号が要求される時に生じ
る。典型的なハフマンデコーダでハフマン符号化ユニッ
トのストリームを復号する場合、各ユニットは一つの符
号語とオプションの可変長の非コード語を含むが、この
ことが高速復号を難しくする。
【0007】このようなハフマン符号化データの高速復
号の難しさが、今後の技術の非常な障害となる。上述の
ように、将来のデジタルHDTV標準はハフマン符号化
を取り入れることになりそうである。HDTVの必要条
件の推定によると、1億データユニット/秒の速度の画
素成分処理が導き出される。
【0008】
【発明が解決しようとする課題】このような問題を解決
するために、本発明は符号化ユニットが並列的に復号さ
れる新規なハフマン復号のアーキテクチャを提供する。
【0009】本発明はまた、ハフマンデコーダの用途に
応じた様々なデコーダアーキテクチャを提供する。
【0010】
【課題を解決するための手段】本発明の一態様はワイド
テーブル(wide table)デコーダ・アーキテクチャであ
る。ハフマン符号化データのユニットはビットシフタユ
ニットを介して受け取られる。大きなルックアップテー
ブルとして働く大きなメモリユニットが、前記ビットシ
フタユニットに接続される。前記メモリユニットは、ト
ークンと、完全な符号語のそれぞれの入力の入力長に対
応した制御ビットとを同時に生成する。これらの制御ビ
ットは前記ビットシフタユニットにフィードバックさ
れ、このビットシフタユニットは次の復号動作のために
符号化ユニットの合計長だけシフトする。かくして、平
均的にみて、1ルックアップサイクル当たり一つより多
いトークンが得られる。
【0011】本発明の他の態様はスタガー(staggere
d)デコーダ・アーキテクチャを提供する。前記ワイド
テーブルアーキテクチャの場合と同様に、ビットシフタ
ユニットがハフマン符号化データのビットを保持する。
いくつかのルックアップテーブルが、それぞれ異なった
オフセットをもって前記ビットシフタユニットに接続さ
れる。各テーブルは、それが有効なトークンを生成する
か否かは別にして、符号化入力の別々の部分を検索す
る。前記ルックアップテーブルユニットに組み合わせ論
理が接続され、これがルックアップテーブルユニットの
いずれのユニットが有効なトークンを生成したかを判定
する。繰り返すが、平均的に1ルックアップサイクルあ
たり一つより多いトークンが得られる。
【0012】この態様の一変形は、復号動作毎に所定数
のビットをビットシフタユニットにシフトさせる。復号
は一定速度で行なわれる。ルックアップテーブルユニッ
トから出力されるトークンの有効性は、パイプライン方
式で判定される。前記スタガー式デコーダアーキテクチ
ャのもう一つの変形は、予め選ばれた符号語のサブセッ
トだけを復号可能な一つ以上のルックアップテーブルを
最初の位置の後に備える。これらの符号語は特定の応用
で発生頻度が最高のものとすることができる。このよう
すれば、一つのテーブルだけで全てのトークンルックア
ップ動作が可能となるので、必要なメモリ量が減る。
【0013】本発明の他の態様は制御メモリアーキテク
チャである。前述のように、ビットシフタユニットがハ
フマン符号化データのユニットを受け取る。制御メモリ
が前記ビットシフタユニットに接続される。この制御メ
モリは、完全な符号語を持つ符号化ユニットの合計長に
対応した制御ビットをアドレス端子に含むだけである。
これらの制御ビットは前記ビットシフタユニットへフィ
ードバックされ、このビットシフタユニットは次の復号
動作のために符号化データの合計長分だけ符号化データ
をシフトする。符号化ユニット中の符号語の復号は、い
くつかのルックアップテーブルユニットによりシーケン
シャルに行なわれるが、各ユニットは符号語からトーク
ンを得るためのルックアップテーブルで、パイプライン
接続される。このパイプライン接続のために、一つのラ
ッチと一つのシフタが前記ルックアップテーブルのそれ
ぞれと組み合わされる。
【0014】この制御メモリデコーダアーキテクチャの
JPEGデータ向けの一つの変形は、第1のルックアッ
プテーブルにより、可能な符号語のサブセットであるD
C係数のための符号語だけを復号させる。その他のルッ
クアップテーブルは、可能な符号語のサブセットである
AC係数のための符号語だけを復号する。かくして、メ
モリスペースが最小になる。
【0015】本発明はまた、ハフマンデコーダのための
効率的なメモリ構成を提供する。このメモリ構成は、い
くつかの、より小さなメモリユニットを用いる。これら
メモリユニットのそれぞれは、インタリーブ法によりア
ドレス指定される。組み合わせ論理が復号化デジタル画
像データのためのメモリユニットを選択する。このよう
な別々のメモリユニットのインタリーブ接続によって、
ハフマン符号化データの復号に必要なメモリスペース量
が相当に削減される。
【0016】
【作用】上述の如く、本発明によれば、ハフマンデコー
ダの様々なアーキテクチャが提供されるが、その全ての
アーキテクチャにおいて、符号化ユニットが並列的に復
号され、平均的に、単一の復号動作中にハフマン符号化
データユニットのストリーム中の一つより多い符号語を
一つより多いトークンに復号されるため高速復号が可能
である。また、上述のようにルックアップテーブル用メ
モリのスペースを削減できる。
【0017】また、上述のように、本発明によれば、使
用するメモリ量および論理量の異なる様々なハフマンデ
コーダアーキテクチャが提供されるが、メモリと論理を
どのような割合にするかによって、集積回路設計者によ
り特定技術を実現する場合のスペース/速度の兼ね合い
が異なる。よって、本発明によれば、アーキテクチャの
選択によって、様々な用途に最適なデコーダを実現可能
となる。
【0018】
【実施例】本発明は、符号化ユニットのストリーム中の
ハフマン符号語の高速復号に関する一般的問題に向けら
れている。したがって、ハフマン符号化の特定の応用で
あるJPEGの例に関し本発明の説明がなされることが
多いが、しかし本発明はJPEGハフマンデコーダより
広範な用途を有するものである。
【0019】図1はJPEG標準による符号化ユニット
のストリームの一例である。各楕円形ユニットは一つの
符号化データユニットで、これは一つのハフマン符号語
を含み、時には非符号化語も含む。本例において、非符
号化語は、JPEGの下で定義された輝度及び色度のた
めのDC係数及びAC係数の仮数ビットである。他の符
号化単位は、符号語(JPEGのEOB(End of Bloc
k)やエスケープコントロールを含む)だけからなる。
符号化データユニットの殆どが短く1バイト長未満であ
って、長いユニットは稀であることに注意されたい。当
該デジタル画像はJPEG標準の下で圧縮されている。
【0020】図2(a)乃至図2(c)はJPEG環境
でのハフマン符号化を説明する。JPEGでは、デジタ
ル画像の画素の成分は、8x8画素ブロックの離散コサ
イン変換の係数に変換される。図2(a)に示されるよ
うに、一つのランレングスビットフィールドが、一つの
ランのゼロ値係数の個数(ジクザグ順)を記録する各非
ゼロ係数に付加される。係数フィールドは、係数のサイ
ズを表わす。図2(b)に示される各係数は、次に仮数
フィールドと指数フィールドに分けられる。このオリジ
ナルデータユニットの符号化は、図2(c)に示される
ように、ランレングスフィールド及び指数フィールド
(このケースではトークン)を一つの所定のハフマン符
号語に置き換えることによってなされる。このハフマン
符号語と仮数ビットフィールドをあわせたものが符号化
ユニットである。仮数を持たない係数の場合、符号語だ
けで符号化ユニットである。
【0021】JPEG符号化プロセスの詳細の多くを、
ここでは省略する。本発明の説明のためには、符号化ユ
ニットが可変長であることが分かれば十分である。前述
のとおり、この可変長であるということが、符号化デー
タのオリジナルデータユニットへの伸長に用いられるト
ークンを生成するための符号化ユニットの復号を難しく
している。
【0022】このようなハフマンデコーダに関する一般
的な問題を、図3に示したハフマンデコーダの一般的構
成を用いて具体的に説明する。このデコーダは一つのビ
ットシフタユニット10を有する。これは基本的にバレ
ルシフタ(barrel shifter)で、符号化ユニットの並列
ストリームを受け取る。このビットシフタユニット10
は、符号化ユニットのストリーム中の符号語からトーク
ンを生成するためのルックアップテーブル11に接続さ
れる。(ビットシフタユニット10より出力される)並
列のビットは、ルックアップテーブル10がメモリユニ
ットのときにはそのロケーションのアドレスを指定し、
ルックアップテーブル11が組み合わせ論理ブロックの
ときにはその入力信号となる。いずれにしても、トーク
ンがルックアップテーブル11の出力に生成される。こ
の一つの符合語のルックアップ動作によって、この符号
語が属するデータユニットの長さが決定される。この長
さ情報はビットシフタユニット10へ制御信号としてフ
ィードバックされ、その結果、次のデータユニットの符
号語がルックアップの位置へシフトされる。このよう
に、各符号語のルックアップあるいは復号は、ハフマン
符号語及び符号化データユニットの長さが様々であるた
めにシーケンシャルに進行する。
【0023】本発明は、このようなシーケンシャルな復
号を避ける。本発明による各デコーダアーキテクチャに
おいて、図5,図8及び図13に示されるように、ビッ
トシフタユニット24が存在する。
【0024】ビットシフタユニット24の各セルは、一
つの以上のメモリユニットのアドレス端子に後に説明す
るような様々な形式で接続される。このメモリユニット
は、ビットシフタユニット24のセルへシフト済みの符
号語のためにルックアップテーブルとして働く。このル
ックアップテーブルは、符号語毎に一つのトークンを生
成する。JPEGの例(図1及び図2)の場合、メモリ
ユニットから出力信号として、ランレングス用の4ビッ
トと、指数用の4ビットと、ビットストリームをシフト
させるための長さと呼ばれる制御語用の5ビットの合計
13ビットが生成される。この制御の5ビットが必要と
されるのは、一つのJPEG符号化ユニットの最大長が
27ビットであるからである。無効なトークンを表わす
ために、例えばゼロの制御語を使用できるが、他の方法
を用いることもできる。
【0025】前記メモリユニットは、特定のハフマン符
号のトークンを、そのハフマン符号が決まった時に柔軟
にロード可能なランダムアクセスメモリ(RAM)であ
り、あるいはハフマン符号が既に分かっているならばリ
ードオンリメモリ(ROM)である。勿論、このROM
ユニットに代えて、組み合わせ論理のユニットを用いる
こともできる。
【0026】本発明は多様な実施態様があるが、その全
てにおいて、複数のトークンを同時に生成する。これら
のトークンは、順序付けられたデータストリーム中に置
かれなければならない。図4は、この機能のための多重
化操作を処理するための回路を示す。各レジスタ21は
ハフマンデコーダが1サイクルを終了するたびにロード
される。レジスタ21のそれぞれは、復号されたトーク
ンと、オプションの非符号化語(図1及び図2のJPE
Gの例では仮数ビット)があるときには、これと、復号
データユニットの合計長を示すビットがロードされる。
このトークン及び長さを示すビットは、後述の様々なハ
フマンデコーダのそれぞれにより作成され、またオプシ
ョンの非符号化語は復号データより作られる。
【0027】システム制御論理(図示されず)から出る
スタート信号が、多重化をすべきことを指示する。制御
論理ブロック23は、このスタート信号と、レジスタ2
1から出るデータユニットの長さを示す信号とを受け
る。この制御論理ブロック23は、有効なトークンを保
持する特定のレジスタ21を(デコーダ22経由で)シ
ーケンシャルに選択する。制御論理ブロック23はま
た、図示されないFIFO(先入れ、先出し)レジスタ
に対し信号を与え、FIFOレジスタの入力が有効であ
ることを指示する。選択された各レジスタ21からのト
ークン及び仮数ビットはFIFOレジスタにロードさ
れ、そして、このFIFOレジスタの出力後にオリジナ
ルデータが再構成される。データの再構成は周知の動作
である。制御論理ブロック23の構成は、デコーダのア
ーキテクチャによって決まるが、これについては後述す
る。
【0028】トークンをFIFOレジスタに多重化する
ために要する時間は、1復号サイクルの実行に要する時
間より十分に短い。全体的制御論理はデコーダにより用
いられるクロックよりm倍高速のクロックを持ついる。
mは1サイクルあたりの最大復号数である。
【0029】ワイドテーブル(Wide Table)アーキテ
クチャ 本発明による高速デコーダの一実施例は、図5に示され
るワイドテーブルアーキテクチャである。単一のメモリ
ユニット30は、符号語のルックアップテーブルである
が、その入力端子はビットシフタユニット24の各セル
と接続され、上述のようにビットシフタユニット24の
内容によってメモリユニット30のロケーションをアド
レス指定する。しかしながら、メモリユニット30は複
数の可能なトークンを一度に生成するワイドなものであ
る。図1及び図2のJPEGの例では、符号語の最大長
は16ビットで、各符号化ユニットの代表的なサイズは
1バイトつまり8ビットより小さい。ゆえにJPEGの
場合、メモリユニット30は少なくとも16個の入力端
子を持たなければならない。他の応用の場合、メモリユ
ニット30の入力端子の代表的な個数は例えば20であ
る。言い換えれば、メモリユニット30は、1回の復号
動作で正しいトークンを並列に生成する。メモリユニッ
ト30のアドレス端子に位置するビットシフタユニット
24内の各符号語に対して一つのトークンが生成され
る。
【0030】メモリユニット30はまた、ビットシフタ
ユニット24のための次の復号動作でシフトする合計ビ
ット数に関する制御情報を記憶している。例えば、長さ
が4ビットと5ビットの二つのデータユニットに対応し
た二つの符号語のトークンが復号されるときは、9ビッ
トシフトの制御情報が制御線15を通じてビットシフタ
ユニット24へ返される。復号されたデータユニットの
合計長が27ビットになるときは、27ビットシフトの
信号がビットシフタユニット24へ送られる。このワイ
ドテーブルデコーダアーキテクチャの動作ステップのシ
ーケンスが図6に示される。二つの基本的ステップがあ
る。最初に、メモリユニット30の入力端子でルックア
ップ動作が行なわれ、一つあるいはそれ以上のトークン
がアドレスされメモリユニット30の出力端子に生成さ
れるか判定する。メモリユニット30の出力には、ビッ
トシフタユニット24内の全復号データユニットの合計
長も含まれる。この情報は、そのビット数分のシフトの
ためにビットシフタユニット24へフィードバックさ
れ、そして復号動作が繰り返される。
【0031】ワイドルックアップテーブルアーキテクチ
ャの場合、図4中のマルチプレクサ制御論理ブロック2
3はカウンタと小量の組み合わせ論理を有する。このブ
ロック23の動作は図7のフローチャートに従う。この
カウンタは、メモリユニット30の入力端子にある一つ
の符号語の位置を示すが、最初はゼロである。スタート
信号が発生した時に、カウンタは値がゼロであるので、
位置0のレジスタ21の出力をイネーブルする。当該レ
ジスタ内のトークンの有効性が、レジスタ21内のトー
クンに対応した非符号化データユニットの長さがゼロで
あるか否かを調べることによってチェックされる。その
トークンが有効である(長さがゼロでない)場合、制御
論理ブロック23はFIFO入力イネーブル信号を出
し、その結果としてレジスタ24の内容がFIFOレジ
スタにロードされる。トークンが無効である(長さがゼ
ロ)場合、制御論理ブロック23はカウンタのクリア
後、次の復号サイクル及びスタート信号を待つ状態に戻
る。トークンが有効であるとすると、カウンタはインク
リメントして、次のレジスタの位置を示す。この位置が
有効であるか否かのチェックのために、最大カウント値
に達したかチェックされる。最大カウント値でなけれ
ば、制御論理ブロック23はカウンタにより指定された
位置にある次のレジスタ24をイネーブルする。当該次
のレジスタ内のトークンの有効性のチェックが行なわ
れ、最大カウント値に達するか、あるいは無効なトーク
ンが見つかるまで前記ステップが繰り返される。そし
て、次の復号サイクル及びスタート信号のためにカウン
タがクリアされる。
【0032】メモリユニット30が多数の入出力端子を
持つ非常に大きなものになることは明かである。このワ
イドメモリアーキテクチャの短所は、入力端子数nの増
加に対してメモリサイズが2n で増加することである。
ある環境では、メモリユニット30のサイズを縮小して
も効率的な並列復号動作が可能である。この場合、初め
のトークン出力すなわちビットシフタユニット24内の
最初の位置にある符号語は、上述したとおりである。こ
の符号語のための出力は全ての可能なトークンを記述で
きるだけのビット数(図1及び図2のJPEG例では1
3ビット)を持たなければならない。しかし、それ以降
のトークンのための他の並列出力が使用するビット数は
それより少ないであろう。符号化データの確率的特性か
ら、後続の符号語位置において復号可能なトークンのサ
ブセットが決まる。これらのトークン出力は再高頻度の
トークンが選ばれる。例えば、JPEGの例(図1及び
図2)の場合、メモリユニット30の1ビットの特別の
出力ビットを、後続符号語の一つがEOB(End of B
lock)符号語であることを示すために用いることができ
る。もう一つの例は、ゼロのランレングスを持たないJ
PEGのAC係数のトークン用に出力の9ビットを用い
ることができる。
【0033】JPEGの4つのハフマン符号を処理する
ように前述のメモリを様々な構成とすることができる。
AC及びDCすなわち輝度及び色度のハフマン符号を処
理するために、4つの独立した並列のメモリユニット3
0を用いることができる。制御論理が、EOL及び復号
された係数の個数に応じて、制御信号により適切なメモ
リユニットの管理及びイネーブルを行なう。もう一つの
構成は、ルックアップテーブルの内容を4つのコード全
てについて保持するために、単一のメモリユニットのサ
イズを増加させる。制御論理が同様に、どの符号を復号
すべきかをメモリへの2本の特別のアドレス線を用いて
決定する。
【0034】これらの二つのメモリ構成は、後述の他の
デコーダアーキテクチャにおけるルックアップテーブル
用のメモリユニットについても適用できる。
【0035】スタガー式テーブルアーキテクチャ 本発明によるもう一つのデコーダアーキテクチャは、図
8に示すように、いくつかのLUT(ルックアップテー
ブル)ユニットを40を、ビットシフタユニット24に
スタガー接続する。各LUTユニット40は、ビットシ
フタユニット24内の符号化データビットストリーム中
の符号語及び符号語長並びにオプションの非符号化語
(JPEGの例では仮数ビット)のためのルックアップ
テーブルである。第1のLUTユニット40-0は、ビッ
トシフタユニット24のセルと最初の位置にて接続され
る。換言すれば、第1のLUTユニット40-0は最初の
位置0から始まるビットシフタセルに接続される。図8
に示されるように、LUTユニット40-0は、JPEG
標準で最大の符号語を収容できるように16ビット幅で
ある(他のLUTユニット40も同様)。(なお、図1
6及び図17で説明されるように、LUTユニットのメ
モリサイズを削減可能である。) ゆえに、LUTユニ
ット40-0はビットシフタユニット24のセル0−15
に接続される。次のLUTユニット40-1は、セル1個
分だけスタガーされる(staggered)、つまりオフセッ
トされるので、同ユニットはビットシフタユニット24
のセル1−16によってアドレス指定される。その次の
LUTユニット40-2はセル2−17に接続され、以下
同様である。
【0036】各LUTユニット40の位置オフセット量
は、用途及び用いるハフマン符号によって決められる。
スタガーLUTユニット40のオフセット量は、メモリ
スペースの利用率が最高となるように確率的方法によっ
て決められる。例えば、非符号化データユニットの最高
頻度の長さが4ビットのときは、第2のLUTユニット
40-1はビットシフタユニット24に、次の非符号化デ
ータユニットの最高頻度の位置であるビット4から接続
される。通常、最初のオフセット量は可能な最短符号化
ユニットに基づく。図8に示した例では、次のLUTユ
ニット40-1は最初の位置から1ビット分オフセットし
た位置にある。すなわち、可能な最短符号化ユニットは
1ビットである。各LUTユニット40は有効な符号語
によりアドレス指定される可能性がある。勿論、ハフマ
ン符号に1の長さの符号語がなければ、位置1にLUT
ユニット40が存在する必要はない。
【0037】通常、符号化ユニットはある最小値から最
大値までの任意の長さを持つので、最初のオフセット位
置は、その最小値に基づいて選ばれる。それ以降の位置
は連続的に選ばれる。仮に、例えば、ある用途で偶数の
長さのほうが奇数の長さよりも出現確率が非常に高い符
号化ユニットを用いるとすると、偶数位置にのみLUT
ユニットを配置するのが最適といえよう。
【0038】図8の例に戻って説明する。最初のLUT
ユニット40-0は常に有効な出力を生じる。他のLUT
ユニット40は、その入力端子が符号語の先頭に位置し
ていれば有効な結果を生じる。第1のLUTユニット4
0-0は次の有効な結果を持つLUTユニット40を指示
し、このLUTユニット40は有効な結果を持つ次のL
UTユニット40を指示し、最終的に全ての有効な結果
が見つかる。
【0039】図10は、このスタガーテーブルアーキテ
クチャによる復号サイクルを実行するためのステップを
説明するものである。まず、全部のLUTテーブル40
についてルックアップ動作が並列に実行される。次に、
符号語を有効なトークンに復号されたデータユニットの
合計長が計算され、そして、計算値分だけビットシフタ
ユニット24がシフトされる。動作は、次の復号サイク
ルのため最初のステップに戻る。
【0040】このようなビットシフタユニット24のシ
フトビット数を決めるためのシーケンシャルな動作は、
デコーダ動作の速度を低下させるように見える。しか
し、次の復号動作のためにビットシフタユニット24を
動作させるためのフィードバック情報は多数の入力信号
の5ビット出力関数に過ぎない。この関数は用いられる
ハフマン符号と独立であるので、計算をシーケンシャル
に行なう代わりに、ビットシフト量の決定を、図9に概
念的に示したような布線論理(ワイヤードロジック)で
行なうこともできる。
【0041】実施例説明の末尾にある<表1>から<表
18>に示したテーブルA(その1〜その18)と、<
表19>から<表36>に示したテーブルb(その1〜
その18)はそれぞれ、図8のスタガールックアップテ
ーブルデコーダアーキテクチャのための布線論理ブロッ
ク20を生成するために用い得る真理値表である。いず
れの真理値表においても、8個のLUTユニット40を
用い、それぞのユニットを1ビットずつオフセットさせ
るものと仮定している。また、JPEGハフマン符号を
用い、最大長の符号化データは27ビットであると仮定
している。
【0042】テーブルAにリストされた入力の数字はス
タガー位置(staggered location)毎の符号化データユ
ニットの長さを示す。出力の数字はビットシフタユニッ
ト24をシフトさせる合計長さである。
【0043】テーブルBは同様の情報を異なったやり方
で表わしている。このテーブルBにリストされた入力の
数字は、スタガー位置毎の符号化データユニットの長さ
に、そのスタガー位置を加えた値を示している。出力の
数字はテーブルAの場合と同じである。この二つの真理
値表から様々な組み合わせ論理の具体的構成が得られ
る。
【0044】また、組み合わせ論理ブロック20への出
力信号はLUTユニット40からのものであるので、こ
の信号は任意である。したがって、この論理ブロック2
0を簡単にするように、サイズ情報のエンコーディング
を選ぶことができる。
【0045】スタガーテーブルアーキテクチャの場合、
図4のマルチプレクサ制御論理ブロック23はアキュム
レータと小量の論理を有する。動作は、ワイドテーブル
アーキテクチャの動作に極めて近く、これも図7のフロ
ーチャートによって示される。アキュムレータは、一つ
の符号語のスタガーされた位置を示すが、初めはゼロで
ある。スタート信号の発生時に、アキュムレータは、値
がゼロであり、位置0の最初のトークンを持つレジスタ
21をイネーブルする。当該レジスタ中のトークンの有
効性をチェックするために、当該レジスタ21中のトー
クンに対応した非符号化データユニットの長さがゼロで
あるか否かが調べられる。当該トークンが有効(長さが
ゼロでない)のときは、ブロック23がFIFO入力イ
ネーブル信号を出す結果、当該レジスタ21の内容はF
IFOレジスタにロードされる。当該トークンが無効
(長さがゼロ)のときは、ブロック23はアキュムレー
タのクリア後、次の復号サイクル及びスタート信号を待
つ状態に戻る。トークンが有効であると仮定すると、ア
キュムレータは今現在、次の符号語のスタガー位置を保
有している。この位置が有効であるか否かをチェックす
るため、最大カウント値に達したかチェックされる。最
大カウント値でなければ、論理ブロック23はアキュム
レータにより示される位置にある次のレジスタ21をイ
ネーブルする。次のレジスタ中のトークンの有効性チェ
ックが行なわれ、最大カウント値に達するか、あるいは
無効なトークンが見つかるまでステップが繰り返され
る。ついで、アキュムレータは次の復号サイクル及びス
タート信号のためにクリアされる。また、各レジスタ2
1内の長さデータが、付録Bの場合のように、長さにス
タガー位置を加えた入力で置き換えられた場合には、ア
キュムレータをラッチに置き換えることができる。動作
は同じである。
【0046】このスタガールックアップテーブルデコー
ダアーキテクチャの一変形によれば、ビットシフタユニ
ット24をシフトする合計ビットの決定のための時間的
な不利益が回避される。このデコーダアーキテクチャに
おいて、ビットシフタユニット24はLUTユニット4
0の個数に等しい定数分だけ一定速度でシフトする。ス
タガールックアップテーブルメモリユニット40のどれ
が有効な符号語でアドレス指定されるかを、ビットシフ
タユニット24をシフトするためのフィードバック信号
で判定する必要がない。この判定はパイプライン化され
る。
【0047】この変形例のための復号サイクルの動作ス
テップは図11に示される。この場合、全LUTユニッ
ト40についてルックアップが並列に行なわれる。そし
て、ビットシフタユニット24は、次の復号サイクルの
前に、LUTユニット40の個数と等しいビット数だけ
シフトさせられる。
【0048】このアーキテクチャは、図8に関連して述
べたように、スタガー位置毎に一つのルックアップテー
ブルメモリユニットを有する。しかし、前の説明とは違
って、複数のハフマン符号を持つアプリケーションで
は、各ルックアップテーブルメモリユニットは複数の出
力トークンを並列に生ずる。このようなアプリケーショ
ンの一つは前記JPEGの例である。AC輝度ハフマン
符号、DC輝度ハフマン符号、AC色度ハフマンコー
ド、DC色度ハフマンコードのそれぞれのために一つず
つ、計4個の出力トークンが並列に出される。各復号サ
イクルの後、ビットシフタユニット24はメモリユニッ
トとのスタガー接続数分だけシフトされるので、入力ス
トリーム中のあらゆるビット位置が、あらゆるハフマン
符号に関し復号される。可能な全ての結果が得られるた
め、さらなる復号は不要である。各復号サイクル後に全
ての可能な結果から正しい結果が選択される。制御論理
は、ストリーム中の各ビット位置より復号されたトーク
ンを考慮する。そのビット位置が有効な符号語を含む時
にのみ、制御論理は対応したトークンを現ハフマン符号
語のために選択し、そして次の有効な符号語までの無視
すべきビット位置のカウント値を更新する。この時に制
御論理はまた、次の符号語の属するハフマン符号つまり
AC輝度、DC輝度、AC色度及びDC色度を判定す
る。各復号サイクルの前のビットシフタユニット24に
おけるシフト量は常に一定であるため、ビットシフタユ
ニット24内にバレルシフタが不要であるので、ハード
ウエアが大幅に削減される。
【0049】この格別のデコーダアーキテクチャは、H
DTVに特に好適であろう。このデコーダアーキテクチ
ャは、それが処理可能な1画像領域あたりのトークン数
に制限されるのではなく、1画像領域あたりの入力ビッ
ト数によって制限される。HDTV伝送データは、トー
クンレートよりむしろ最高ビットレートを規定すると思
われるので、特定の符号化標準に必要とされるスタガー
式メモリユニットの個数の決定は容易であろう。この変
形例の短所は、4つの符号全てについて、すべてのビッ
ト位置を復号しなければならないことである。このた
め、すべてのスタガー位置に、ルックアップテーブル4
0として大きなメモリユニットが必要となる。
【0050】このデコーダアーキテクチャのもう一つの
変形例も、スタガー式LUTユニット40と同数の一定
ビット数だけビットシフタユニット24をシフトさせ
る。ルックアップテーブルユニット40に要するメモリ
量も削減される。ハフマン符号語は均等な頻度では出現
しないので、最初のビット位置のためのLUTユニット
40-0だけは、可能性のあるあらゆる符号語を処理しな
ければならない。他の位置のLUTユニット40-i(i
>0)は普通の符号語、あるいは短い符号語を処理する
だけでよい。普通の符号語がビットストリーム中の他の
スタガー位置に出現する限り、この変形例は前変形例と
同様に動作する。長い符号語、あるいは普通でない符号
語が、それを処理できない位置に出現した時にはエラー
信号が発生する。このエラー信号は、ビットシフタユニ
ット24内のバレルシフタを利用して、最初の位置を障
害ビット位置としてデコーダを再スタートさせる。この
ように、稀に出現する符号語はエラー状態として処理さ
れる。これに続く”エラー”処理動作は、いくつかのビ
ット位置が2度以上復号されるので、時間遅れを生じ
る。
【0051】図12は、このアーキテクチャ変形例のた
めの復号サイクルの動作ステップを示す。最初のステッ
プによって、全てのルックアップテーブル40によって
並列のルックアップ動作が行なわれる。次に、ビットシ
フタユニット24がLUTユニット40と同数のビット
数分シフトさせられる。次に、本デコーダアーキテクチ
ャに関連したマルチプレクサ制御論理ブロック23によ
って、エラー信号が出されたか判定される。図4の回路
及び制御論理ブロック23の動作は図7に関連して述べ
たとおりである。全部のLUTユニット40がそれに関
連した符号語の処理つまりルックアップをすることがで
きるときは、エラー信号は発生せず(長さがゼロでな
く、トークンは有効)、図12に示したように、復号動
作は次の復号サイクルのためスタートに戻る。縮小され
たLUT40-i(i>0)のいずれかがその符号語をル
ックアップすることができずエラー信号が発生した場合
(長さが0、トークンは無効)、ビットシフタユニット
24内のバレルシフタは、ビットをエラーのある位置ま
でシフトさせるために逆動作させられる。障害となって
いる符号語は、全ての可能な符号語を処理できるlUT
40-0に処理させるため最初のビット位置に置かれる。
再度復号するため動作は最初のステップに戻される。
【0052】制御メモリアーキテクチャ 図13は、制御メモリアーキテクチャを示す。このアー
キテクチャにおいては、制御メモリユニット50がビッ
トシフタユニット24のセルに接続される。制御メモリ
ユニット50は多数のアドレスロケーションを有する
が、各ロケーションの出力ビット数は小さい。この少な
い出力ビットは、ビットシフタユニット24へフィード
バックされる情報、すなわち次復号サイクルのためにシ
フトすべき合計ビット数及びEOB信号を指定する。
【0053】実際の復号は多重パイプライン化された復
号ステージにより実行される。この復号ステージは、各
ステージの入力シフトレジスタが前ステージにより駆動
されるようにパイプライン化される。したがって、ビッ
トシフタユニット24内のビットは、ビットシフタユニ
ット24の第1位置における符号語の出力トークンを生
成させるため、第1ステージ部分を構成する第1のLU
Tユニット51-0をアドレス指定する。この出力には、
第1位置における符号化係数の長さを指定するビットが
含まれる。
【0054】同時に、ビットシフタユニット24内のビ
ットはまた、第1パイプラインステージのラッチ52-0
にロードされる。ラッチ52-0内のビットは第1ステー
ジのシフトレジスタ53-0に送られる。第1ステージL
UTユニット51-0の出力ビットに制御されて、シフト
レジスタ53-0は符号化データユニットの長さ分シフト
する。シフトされたレジスタ23-0のセルの内容は、第
2パイプライン用LUTユニット51-1をアドレス指定
する。このLUTユニット51-1は、ビットシフタユニ
ット24を通過したビットストリーム中の次の符号化デ
ータユニットのために、長さ指定ビットを含むトークン
を発生する。
【0055】次のステージで、第1ステージのシフトレ
ジスタ53−0の内容が第2ステージのラッチ52-1に
ロードされ、このラッチはこれらビットを第2ステージ
のシフトレジスタ53-1へ渡す。第2ステージLUTユ
ニット51-1から出力された長さ指定ビットに応答し
て、第2ステージのシフトレジスタ53-1はその内容を
シフトし、該シフトレジスタ53-1の内容は第3ステー
ジ用LUT51-2をアドレス指定する。このLUTユニ
ット51-2は次に符号化データ中の次のデータユニット
のためのトークンを生成する。このようなパイプライン
化復号動作は、ビットシフタユニット24からの全ての
有効な符号語が復号されるまで続く。この間に、ビット
シフタユニット24からシフトされたビットの次のセッ
トがパイプライン化復号動作により復号中である。
【0056】この制御メモリアーキテクチャの動作ステ
ップが図15に示されている。多くのステップが並列に
行なわれる。最初のルックアップ動作がメモリユニット
50によって行なわれることにより、ビットシフタユニ
ット24内の符号データの合計長が(JPEGの例では
EOBトークンも)得られる。ビットシフタユニット2
4は次に、この合計長分だけシフトされ、動作は最初の
ステップに戻る。これらの二つのステップは、図15の
左側に二つの動作ブロックによって示されている。この
間に、この左側の動作ブロックの右側の全ての動作ブロ
ックによって示されるように、パイプライン化復号ステ
ージの動作が実行される。ルックアップが初めに一つの
ルックアップテーブルユニット51-iによって実行され
る。一つのトークンが、当該トークンに関連した復号デ
ータユニットの長さとともに生成される。当該ステージ
のシフトレジスタ53-iはデータを復号データユニット
長分だけシフトし、動作は次ステージのルックアップテ
ーブルユニット51-i+1のためのルックアップステップ
に戻る。このようなパイプライン化動作は、最終ステー
ジに達して、最後のルックアップテーブルユニット53
-mでルックアップ動作が実行されるまで続く。ここで、
mはルックアップテーブルユニット53の個数である。
【0057】この制御メモリアーキテクチャの場合、図
4のマルチプレクサ制御論理ブロック23は、図7に関
連して説明したと同じ動作をする前記ワイドテーブルデ
コーダアーキテクチャ用のものと同じものにすることが
できる。
【0058】この制御メモリアーキテクチャにおいて
は、無用な推論的ルックアップが避けられる。LUTユ
ニット51-iのそれぞれを二つのメモリユニットに置き
換えることによって、メモリスペースの削減を図ること
ができる。LUT51-iは、一つのトークン(JPEG
の例では指数ビットとランレングスビットからなる)と
符号化データユニットの合計長を生成する。図14に示
されるように、各LUUTは、トークンを発生する第1
部分51Aと、符号化データ長を発生する第2部分51
Bに分割される。2段階のルックアップが行なわれる
が、トークン及び長さの両方を生成する単一のLUTに
比べ、メモリスペースのかなりの節約を図れる。
【0059】注目すべきもうひとつの点は、以上の説明
では、速度のために、LUTがトークンと符号化データ
ユニット長の両方を生成するものと仮定していた。これ
らの例においては、長さゼロを無効トークンを示すため
に用いるのが都合がよい。この長さ情報を使えないとき
には、無効トークンをトークンそれ自体あるいは他の制
御ビットから認識できる。
【0060】このアーキテクチャの一変形例は、第1の
LUTユニット51-0を、DC符号だけのためのルック
アップテーブルとして働かせる。係数ブロックの始まり
の係数によってLUT51-0がアドレス指定されないと
きは、LUT51-0の出力はスキップされる。残りのパ
イプラインステージはAC符号を扱う。その結果、LU
Tユニット全体は仮定された最小サイズより小さくな
る。
【0061】メモリユニットの最小サイズ 以上の各種デコーダアーキテクチャの説明において、選
んだアーキテクチャを実現するための集積回路スペース
の多くがルックアップテーブル用メモリによって占めら
れることは明白である。本発明はまた、RAMまたはR
OMのメモリユニットの占有スペースを最小するための
メモリユニット構成を提案する。
【0062】このメモリ構成は図16に示されている。
前述のような単一メモリユニットに代えて、各メモリユ
ニットは3個の分離したメモリユニット60A,60
B,60Cに分割される。前に述べた如く、メモリ全体
はビットシフタユニット24の各セルに接続される。図
16において、ビットシフタユニット24の第1の16
ビットセルは、その8セルがメモリ60A,60B,6
0Cのそれぞれを重複した形でアドレス指定するように
メモリと接続される。セル0〜7はメモリ60Aをアド
レス指定し、セル4〜11はメモリ60Bをアドレス指
定し、またセル8〜15はメモリ60Cをアドレス指定
する。
【0063】メモリユニット60A,60B,60Cは
それぞれ、短い符号語、中間の長さの符号語、長い符号
語を復号するるルックアップテーブルである。ブロック
61で示される組み合わせ論理は メモリ60A〜60
Cの一つをイネーブルする。第1の8セルの内容が全て
論理”1”のときは、長い符号語用のメモリ60Cがイ
ネーブルされる。他方、第1の4セルの内容が全て論
理”1”のときは、中間的長さの符号語用メモリ60B
がイネーブルされる。これ以外の場合には短い符号語用
メモリ60Aがイネーブルされる。
【0064】このイネーブル動作を行なう組み合わせ論
理は図17に示されている。2レベル論理を用いる4入
力ゲートが5個使用される。この組み合わせ論理の占有
スペースは非常に小さい。さらに、メモリユニット60
A〜60Cの一つを選択するイネーブル動作は非常に高
速で行なわれる。このイネーブル動作はビットシフタユ
ニット24内ビットストリームのデータをもとに起こる
ので、選択に先立って復デコード動作を行なう必要がな
い。
【0065】動作が図18のフローチャートに示されて
いる。初めに4つの動作ステップが並列に実行される。
短符号語のメモリ60Aのルックアップ動作、中間長符
号語のメモリ60Bのルックアップ動作、長符号語のメ
モリ60Cのルックアップ動作がそれぞれ実行される。
また、適当なメモリを選択するための制御信号も生成さ
れる。次に、選択されたメモリの出力がイネーブルされ
る。
【0066】このメモリ構成はメモリスペースを最小化
する。単一の大きなメモリに代え、3個の8入力メモリ
が用いられるだけである。比較のために述べれば、AC
ハフマン符号を扱うための16入力メモリは852,0
00ビットのメモリを必要とする。この場合、本メモリ
構成では9984ビットしか使用されない。
【0067】考えられる一つの短所は、このメモリ構成
が可能なハフマン符号の全ては扱うことができないこと
である。9ビットから12ビットの符号語は少なくとも
4つの”1”で始まらなければならず、それより長い符
号語は少なくとも8つの”1”で始まらなければならな
い。しかし、JPEG標準で用いられる正規フォームに
より指定される符号の殆どを処理可能である。任意のユ
ニークなプレフィッククスのセット、例えば8個または
4個の”0”を用いることができる。
【0068】この省メモリ構成は、ワイドテーブルアー
キテクチャ以外の前述のデコーダアーキテクチャの全て
に適用可能である。当然、ワイドテーブルアーキテクチ
ャのメモリユニットは分割できない。しかし、ワイドテ
ーブルルックアップの概念は本発明の改良のために利用
できる。例えば、短符号語用メモリ60Aそのものは、
セル0〜7のいくつかの短符号語から2つ以上のトーク
ンを同時に生成可能な”ワイド”テーブルとすることが
できる。この場合、メモリ60Aはいくつかのトークン
を一度に生成することが期待されるので、さらにセル8
〜11もメモリ60Aに接続することができる。
【0069】以上のデコーダアーキテクチャについての
記述においては、説明の都合から各種デコーダアーキテ
クチャの特徴は分けて述べたが、これら特徴の多くは、
用途または要求条件に適したハフマンデコーダのために
組み合わせることができる。たとえば、JPEG用ハフ
マンデコーダの多くは、MPEGやHDTV等の今後の
デジタル画像処理用標準の多くに適用可能である。した
がって、以上に説明した本発明の様々な実施例に関する
説明中の”JPEG”なる用語は厳密にとらえるべきで
はなく、より広義に”JPEG風”ととらえるべきであ
る。
【0070】なお、以下に列挙する方法も、本発明の範
囲に含まれるものである。
【0071】(1) ビットストリーム中のそれぞれ符
号語を持つハフマン符号化データユニットの復号方法で
あって、以下のステップからなる復号方法。 a) 該符号化データユニットのビット・セットをメモ
リユニットの入力端子に与える。ただし該メモリユニッ
トは、該ビット中の符号語から複数のトークンを同時に
生成することが可能で、かつ該符号語から生成された該
トークンを持つ該データユニットの合計ビット数を生成
することが可能である。 b) 該ビットストリーム中のビットを該合計ビット数
分シフトし、次の復号サイクルのために該メモリユニッ
トの該入力端子に次のビット・セットを与える。
【0072】(2) ビットストリーム中のそれぞれ符
号語を持つハフマン符号化データユニットの復号方法で
あって、以下のステップからなる復号方法。 c) 該符号化データの複数のビット・セットを複数の
ルックアップテーブルユニットの入力端子に同時に与え
る。ただし該ビットストリーム中の該各ビット・セット
は他のセットからスタガーされている。 d) 該各ルックアップテーブルユニットより該ルック
アップテーブルユニットの該入力端子の各ビット・セッ
トに応じてトークンを同時に生成する。 e) 該ビット・セット内の符号語から生成されたトー
クンを持つ該データユニットの合計ビット数を判定す
る。 f) 該ビットストリーム中の該ビットを該合計ビット
数分だけシフトして、次の復号サイクルのために該ルッ
クアップテーブルユニットの該入力端子にビットの次の
複数のセットを与える。
【0073】(3) ビットストリーム中のそれぞれ符
号語を持つハフマン符号化データユニットの復号方法で
あって、以下のステップからなる復号方法。 g) 該符号化データの複数のビット・セットを複数の
ルックアップテーブルユニットの入力端子に同時に与え
る。ただし該ビットストリーム中の該各ビット・セット
は他のセットからスタガーされている。 h) 該各ルックアップテーブルユニットより該ルック
アップテーブルユニットの該入力端子の各ビット・セッ
トに応じてトークンを同時に生成する。 i) 該ビットストリーム中の該ビットを所定ビット数
分だけシフトして、次の復号サイクルのために該ルック
アップテーブルユニットの該入力端子に複数の次のビッ
ト・セットを与える。
【0074】(4) 前記(3)の復号方法において、
該所定ビット数が該ビット・セット間の最大のスタガー
量に対応することを特徴とする復号方法。
【0075】(5) 前記(3)の復号方法において、
さらに以下のステップからなることを特徴とする復号方
法。 j) 各ルックアップテーブルからの各トークンの有効
性を判定する。 k) 該ビット・セットに応じ、あるルックアップテー
ブルユニットからの無効なトークンを判定したことに応
じてエラー信号を生成する。 l) 該ビットストリーム中の該ビットを逆にシフトす
ることによって、該あるテーブルユニットの該ビット・
セットを、該セットから有効なトークンを生成可能な他
のルックアップテーブルユニットの入力端子に与える。
【0076】(6) ビットストリーム中のそれぞれ符
号語を持つハフマン符号化データユニットの復号方法で
あって、以下のステップからなる復号方法。 m) 該符号化データのビットの一つのセットを第1ル
ックアップテーブルユニットの入力端子に与えて、該ビ
ット・セット中の符号語を持つ該データユニットの合計
ビット数を生成する。 n) 一つのパイプラインにおいて該ビット・セット中
の符号語からトークンを生成する。 o) 該ビットストリーム中の該ビットを該合計ビット
数分だけシフトして、次の復号サイクルのために該ルッ
クアップテーブルユニットの該入力端子に複数の次のビ
ット・セットを与える。
【0077】(7) 前記(6)の復号方法において、
該トークン生成のステップnが、以下のステップをルッ
クアップテーブル数に対応した所定の回数以上繰り返す
ことを特徴とする復号方法。 p) 該ビット・セットを第2ルックアップテーブルユ
ニットの入力端子に与え、該ビット・セット中の符号語
からのトークン及び該符号語を持つ該データユニットの
合計ビット数を生成する。 q) 該ビット・セットを該合計ビット数分だけシフト
する。 r) 該シフトされたビット・セットを第3ルックアッ
プテーブルユニットの入力端子に与えて、該シフトされ
たビット・セットからのトークン及び該符号語を持つ該
データユニットの合計ビット数を生成する。
【0078】(8) 前記(7)の復号方法において、
該ハフマン符号化データはJPEGデータからなり、該
第2ルックアップテーブルユニットはDC符号語にだけ
応答し、該第3ルックアップテーブルユニットはAC符
号語にだけ応答することを特徴とする復号方法。
【0079】(9) a)複数のルックアップテーブル
ユニットを用意し、 b)該ルックアップテーブルユニ
ットのそれぞれを該ビットシフタのセルの互いにインタ
ーリーブされたサブセットに接続し、 c)該ルックア
ップテーブルユニットのそれぞれより同時に、それと接
続された該セルのサブセット中のビットに応じてトーク
ンを生成させ、かつ、 d)該同時に生成されたトーク
ンより有効なトークンを選択する、ことによって、ハフ
マンデコーダにおけるルックアップテーブルユニットの
サイズを削減させる方法。
【0080】
【表1】
【0081】
【表2】
【0082】
【表3】
【0083】
【表4】
【0084】
【表5】
【0085】
【表6】
【0086】
【表7】
【0087】
【表8】
【0088】
【表9】
【0089】
【表10】
【0090】
【表11】
【0091】
【表12】
【0092】
【表13】
【0093】
【表14】
【0094】
【表15】
【0095】
【表16】
【0096】
【表17】
【0097】
【表18】
【0098】
【表19】
【0099】
【表20】
【0100】
【表21】
【0101】
【表22】
【0102】
【表23】
【0103】
【表24】
【0104】
【表25】
【0105】
【表26】
【0106】
【表27】
【0107】
【表28】
【0108】
【表29】
【0109】
【表30】
【0110】
【表31】
【0111】
【表32】
【0112】
【表33】
【0113】
【表34】
【0114】
【表35】
【0115】
【表36】
【0116】
【発明の効果】以上の説明から明らかなように、本発明
によれば、符号化ユニットを並列的に復号する高速のデ
コーダを実現できる。デコーダ内のルックアップテーブ
ル用メモリを削減できる。使用するメモリ量及び論理量
の割合の異なる様々なデコーダアーキテクチャより、用
途に応じアーキテクチャを選択することによって、様々
な用途に最適なデコーダを実現できる。等々の多大な効
果を得られる。
【図面の簡単な説明】
【図1】ハフマン符号化データユニットのストリーム例
を示す。
【図2】(a)ゼロのランレングスフィールドと係数値
フィールドに分けられたJPEG係数データを表わす。 (b)指数フィールドと仮数フィールドに分けられた係
数値データを示す。図 (c)可変長ハフマン符号語及び仮数ビットからなる符
号化データを示す。
【図3】ハフマンデコーダの一般的構成を示す。
【図4】いくつかの復号されたトークンを単一のストリ
ームに多重化するために用いられる回路のブロック図で
ある。
【図5】本発明の一実施例たる、ワイド・ルックアップ
テーブル・メモリを持つデコーダを示す。
【図6】図5のデコーダの動作を説明するフローチャー
トである。
【図7】図4の回路中の制御論理ブロックを説明するフ
ローチャートである。
【図8】本発明の他の実施例たる、スタガールックアッ
プテーブルユニットを持つデコーダを示す。
【図9】LUT(ルックアップテーブル)ユニットの出
力からの符号化データユニットの長さを生成する論理ブ
ロックの一般的構成を示す。
【図10】図8のスタガーテーブルデコーダの動作ステ
ップのフローチャートである。
【図11】図8のスタガーテーブルデコーダの変形例の
動作ステップのフローチャートである。
【図12】図8のスタガーテーブルデコーダのもう一つ
の変形例の動作ステップのフローチャートである。
【図13】本発明の他の実施例たる、パイプライン化復
号のために多数のルックアップテーブルを持つ制御メモ
リデコーダを示す。
【図14】図13中のパイプライン化復号のための2ス
テージ・ルックアップテーブル用の一つのメモリユニッ
トの構成を示す。
【図15】図13の制御メモリデコーダの様々なステー
ジの動作を説明するためのフローチャートである。
【図16】ルックアップテーブル用メモリのサイズを縮
小できるメモリ構成を示す。
【図17】図16のメモリ構成を動作させる制御論理を
示す。
【図18】図16のメモリ構成の動作を説明するフロー
チャートである。
【符号の説明】
10 ビットシフタユニット 11 ルックアップテーブルユニット 20 組み合わせ論理ブロック 21 レジスタ 22 デコーダ 23 制御論理ブロック 24 ビットシフタユニット 30 メモリユニット 40 LUT(ルックアップテーブル)ユニット 50 制御メモリユニット 51 LUTユニット 52 ラッチ 53 シフトレジスタ 60 メモリユニット 61 組み合わせ論理ブロック
フロントページの続き (72)発明者 エドワード エル.シュワル アメリカ合衆国 カリフォルニア州 サニ ーベイル モールスアベニュー 10−104 1063 (72)発明者 ディビッド ベドナッシ アメリカ合衆国 カリフォルニア州 パロ アルト ホーソーン #1 223

Claims (42)

    【特許請求の範囲】
  1. 【請求項1】 ハフマン符号化データのそれぞれ符号語
    を有するユニットのためのデコーダであって、 該データを受け取る入力端子、 該受け取られたデータの1ビットを保持するセルを複数
    持つ、該入力端子に接続されたビットシフタユニット、
    及び複数の入力アドレス端子及び出力端子を持つメモリ
    ユニットを有し、 該入力アドレス端子のそれぞれが該ビットシフタユニッ
    トのセルの一つに接続され、該メモリユニットが該出力
    端子に、該入力アドレス端子上の各完全な符号語からト
    ークンを同時に生成し、該メモリユニットが、該符号化
    データを該ビットシフタユニットによりシフトできるよ
    うに、該入力アドレス端子上の完全な符号語を持つ該符
    号化ユニットの合計長に対応した制御信号を発生し、 該符号化データユニットが同時に復号され、かつ該ビッ
    トシフタユニットが次の復号サイクルの準備ができてい
    ることを特徴とするデコーダ。
  2. 【請求項2】 請求項1記載のデコーダにおいて、該メ
    モリユニットが少なくとも該ハフマン符号化データ中の
    最長符号語に見合う数の入力アドレス端子を有すること
    を特徴とするデコーダ。
  3. 【請求項3】 請求項2記載のデコーダにおいて、該メ
    モリユニットが該入力アドレス端子のサブセット上の全
    符号語に対するトークンを生成することが可能であるこ
    とを特徴とするデコーダ。
  4. 【請求項4】 請求項3記載のデコーダにおいて、該メ
    モリユニットが該ビットシフタユニット内の第1位置に
    ある符号語だけについて全符号語に対するトークンを生
    成することが可能であることを特徴とするデコーダ。
  5. 【請求項5】 請求項4記載のデコーダにおいて、該メ
    モリユニットが該ビットシフタユニット内の該第1位置
    の符号語以外の位置にある符号語のサブセットに対する
    トークンを生成することが可能であり、該符号語サブセ
    ットは出現頻度が最高である、ことを特徴とするデコー
    ダ。
  6. 【請求項6】 ハフマン符号化データのそれぞれ一つの
    符号語をビット形式で持つユニットを受け取るデコーダ
    であって、 該受け取られたデータのビットを受け取った順に保持す
    るビットシフタユニット、 それぞれが受け取られた順にスタガーされた複数ビット
    に応じたトークンを同時に生成する、該ビットシフトユ
    ニットに接続された複数のルックアップテーブルユニッ
    ト、及び該ルックアップテーブルユニットのいずれが有
    効なトークンを生成したかを判定するための、該ルック
    アップテーブルユニットに接続接続された論理手段を有
    し、 ルックアップテーブルユニットよりトークンを生じさせ
    る完全な符号語のビットを持つところの、受け取ったデ
    ータの1個以上のユニットを1サイクルで復号すること
    を特徴とするデコーダ。
  7. 【請求項7】 請求項6記載のデコーダにおいて、該論
    理手段がさらに、次の復号サイクルのために該ビットシ
    フタユニットによってシフトされるべき合計ビット量を
    決定することを特徴とするデコーダ。
  8. 【請求項8】 請求項6記載のデコーダにおいて、各ル
    ックアップテーブルユニットの該ビットシフタユニット
    との接続が1ビットずつスタガーされることを特徴とす
    るデコーダ。
  9. 【請求項9】 請求項6記載のデコーダにおいて、各ル
    ックアップテーブルユニットの該ビットシフタユニット
    との接続が、出現頻度最高の符号化データユニットの組
    み合わせに対応した量ずつスタガーされることを特徴と
    するデコーダ。
  10. 【請求項10】 請求項6記載のデコーダにおいて、該
    ハフマン符号化データのユニットが複数のハフマン符号
    に対応し、該ルックアップテーブルユニットが各ハフマ
    ン符号に対し1トークンずつ、複数個のトークンを並列
    に生成することを特徴とするデコーダ。
  11. 【請求項11】 請求項10記載のデコーダにおいて、
    該複数のルックアップテーブルユニットが、AC輝度ハ
    フマン符号、DC輝度ハフマン符号、DC色度ハフマン
    符号及びDC色度ハフマン符号それぞれに1トークンず
    つ、4個のトークンを並列に生成することを特徴とする
    デコーダ。
  12. 【請求項12】 請求項6記載のデコーダにおいて、該
    複数のルックアップテーブルユニットが、該ビットシフ
    タユニットの最初の位置に接続された第1ユニット、及
    び、該ビットシフタユニットと該最初の位置からずらし
    て接続された少なくとも一つの第2ユニットからなり、
    該第1ユニットが全ての可能な符号語に対するトークン
    を生成し、該第2ユニットが全ての可能な符号語のサブ
    セットに対するトークンを生成することを特徴とするデ
    コーダ。
  13. 【請求項13】 請求項6記載のデコーダにおいて、次
    の復号サイクルのために該ビットシフタユニットによっ
    てシフトされるべき合計ビット量が固定であることを特
    徴とするデコーダ。
  14. 【請求項14】 請求項13記載のデコーダにおいて、
    該ハフマン符号のユニットが複数のハフマン符号に対応
    し、該ルックアップテーブルユニットが各ハフマン符号
    に対し1トークンずつ、複数個のトークンを並列に生成
    することを特徴とするデコーダ。
  15. 【請求項15】 請求項14記載のデコーダにおいて、
    該複数のルックアップテーブルユニットが、AC輝度ハ
    フマン符号、DC輝度ハフマン符号、DC色度ハフマン
    符号及びDC色度ハフマン符号それぞれに1トークンず
    つ、4個のトークンを並列に生成することを特徴とする
    デコーダ。
  16. 【請求項16】 請求項15記載のデコーダにおいて、
    各ルックアップテーブルユニットの該ビットシフタユニ
    ットとの接続が1ビットずつスタガーされることを特徴
    とするデコーダ。
  17. 【請求項17】 請求項13記載のデコーダにおいて、
    該複数のルックアップテーブルユニットが、該ビットシ
    フタユニットの最初の位置に接続された第1ユニット、
    及び、該ビットシフタユニットと該最初の位置からずら
    して接続された少なくとも一つの第2ユニットからな
    り、該第1ユニットが全ての可能な符号語に対するトー
    クンを生成し、該第2ユニットが全ての可能な符号語の
    サブセットに対するトークンを生成することを特徴とす
    るデコーダ。
  18. 【請求項18】 請求項17記載のデコーダにおいて、
    該ビットシフタユニット内のビットのセットに応じ該第
    2ユニットにより生成された無効なトークンに応じて、
    該ビットシフタユニットが該ビット・セットをシフトす
    ることにより、該第1ユニットが該ビット・セットに応
    じてトークンを生成することを特徴とするデコーダ。
  19. 【請求項19】 ハフマン符号化データのそれぞれ符号
    語を有するユニットのためのデコーダであって、該デー
    タを受け取る入力端子、 該受け取られたデータを受け取られた順に保持するビッ
    トシフタユニット、該ビットシフタユニットの少なくと
    も第1の部分に接続され、該ビットシフタユニットの該
    第1の部分における完全な符号語を持つ符号化ユニット
    の合計長に応じて該ビットシフタユニットをシフトする
    第1ルックアップテーブルユニット、及び該ビットシフ
    タユニットの該第1の部分にパイプライン接続され、該
    第1の部分における該完全な符号語に応じたトークンを
    シーケンシャルに生成する複数の第2ルックアップテー
    ブルユニットを有し、 該受け取られたデータ中の符号語の復号を要せずに該ビ
    ットシフタユニットが次の復号動作のためにシフトされ
    るデコーダ。
  20. 【請求項20】 請求項19記載のデコーダにおいて、
    該複数の第2ルックアップテーブルユニットが、該ビッ
    トシフタユニット内の第1の符号語を復号するための第
    1ユニットと、該ビットシフタユニット内の該第1の符
    号語に続く符号語を復号するための少なくとも一つの第
    2ユニットとを有し、該第2ユニットが該第1ユニット
    によって復号可能な符号語のサブセットだけを復号可能
    であることを特徴とするデコーダ。
  21. 【請求項21】 請求項20記載のデコーダにおいて、
    該ハフマン符号化データがJPEGデータからなり、該
    第1ユニットがDC係数に対するトークンを生成するこ
    とを特徴とするデコーダ。
  22. 【請求項22】 請求項21記載のデコーダにおいて、
    該残りの第2ルックアップテーブルユニットがAC係数
    に対するトークンを生成可能であることを特徴とするデ
    コーダ。
  23. 【請求項23】 請求項20記載のデコーダにおいて、
    該第1ユニットが該ハフマン符号化データの全符号語を
    復号可能であることを特徴とするデコーダ。
  24. 【請求項24】 請求項19記載のデコーダにおいて、
    該複数の第2ルックアップテーブルユニットが、その一
    つを除くそれぞれに1個ずつ関連付けられた複数のラッ
    チ及びシフタによって接続され、該一つの第2ルックア
    ップテーブルユニットが、該第1ルックアップテーブル
    ユニットと並列に該ビットシフタユニットの該第1の部
    分に接続され、該一つの第2ルックアップテーブルユニ
    ットが該ビットシフタユニット内の該第1の部分におけ
    る第1の完全な符号語に対応したトークンを生成するこ
    とを特徴とするデコーダ。
  25. 【請求項25】 請求項24記載のデコーダにおいて、
    該第2ルックアップテーブルユニットの二つめが該関連
    付けられたシフタに接続され、該関連付けられたシフタ
    が該関連付けられたラッチ及び該一つの第2ルックアッ
    プテーブルに接続され、該一つの第2ルックアップテー
    ブルユニットが該第1の完全な符号語の該符号化ユニッ
    トの長さに対応した制御ビットも生成し、該関連付けら
    れたラッチが該第1ルックアップテーブルユニットと並
    列に該ビットシフタユニットの該第1の部分に接続さ
    れ、該関連付けられたシフタが該一つの第2ルックアッ
    プテーブルユニットからの該制御ビットに応じて該ラッ
    チ内の該データをシフトすることにより、該二つめの第
    2ルックアップテーブルユニットが該ビットシフタユニ
    ットの該第1の部分における第2の完全な符号語に対応
    したトークンを生成することを特徴とするデコーダ。
  26. 【請求項26】 請求項19記載のデコーダにおいて、
    該第2ルックアップテーブルユニットがそれぞれ第3ル
    ックアップテーブルユニットのペアからなり、該ペアの
    一方の第3ルックアップテーブルユニットがトークンを
    生成し、該ペアの他方の第3ルックアップテーブルユニ
    ットが該第2ルックアップテーブルユニットによるシー
    ケンシャルなルックアップ動作のための制御信号を生成
    することを特徴とするデコーダ。
  27. 【請求項27】 請求項26記載のデコーダにおいて、
    該複数の第2ルックアップテーブルユニットが、その一
    つを除くそれぞれに1個ずつ関連付けられた複数のラッ
    チ及びシフタによって接続され、 該一つの第2ルックアップテーブルユニットが、第3ル
    ックアップテーブルユニットのペアからなり、 該ペアの一方の第3ルックアップテーブルユニットが、
    該ビットシフタユニットの該第1の部分に、該第1ルッ
    クアップテーブルユニットと並列に接続され、該ビット
    シフタユニットの該第1の部分における第1の完全な符
    号語に対応したトークンを生成し、 該ペアの他方の第3ルックアップテーブルユニットが該
    生成されたトークンに応じて該第1の完全な符号語の長
    さを示す制御信号を生成することを特徴とするデコー
    ダ。
  28. 【請求項28】 請求項27記載のデコーダにおいて、
    二つめの該第2ルックアップテーブルユニットが該関連
    付けられたシフタに接続され、該関連付けられたシフタ
    が該関連付けられたラッチ及び該一つの第2ルックアッ
    プテーブルに接続され、該関連付けられたラッチが該ビ
    ットシフタユニットの該第1部分に該第1ルックアップ
    テーブルユニットと並列に接続され、該関連付けられた
    シフタが該ラッチ内のデータを、該ペアの該他方の第3
    ルックアップテーブルユニットからの該制御信号に応じ
    てシフトすることにより、該第2ルックアップテーブル
    が該ビットシフタユニットの該第1部分における第2の
    完全な符号語に対応したトークンを生成することを特徴
    とするデコーダ。
  29. 【請求項29】 ハフマン符号化データのそれぞれ一つ
    の符号語を有するユニットを受け取り、該ビットを受け
    取った順に、複数のセルに1セルあたり1ビットずつ保
    持するハフマンデコーダであって、 該セルのサブセットに接続され、該サブセットのセル内
    の符号語に対応したトークン及び該符号語の符号化デー
    タユニットに関連付けられた合計ビット数に対応した制
    御ビットを生成する複数のメモリユニットを有し、該メ
    モリユニットのそれぞれはインターリーブ接続を形成す
    るように該セルに接続され、かつ、 該セルに接続され、該セル内の該ビットに応じ該トーク
    ンのために該メモリユニットの一つを選択する手段を有
    することを特徴とするデコーダ。
  30. 【請求項30】 請求項29記載のデコーダにおいて、
    入力は少なくとも該複数のメモリユニットのアドレス入
    力端子に接続される最大幅のハフマン符号語の幅である
    ことを特徴とするデコーダ。
  31. 【請求項31】 請求項29記載のデコーダにおいて、
    該メモリユニットの一つが該セル・サブセット内の複数
    の符号語に対応した複数のトークンを同時に生成可能で
    あることを特徴とするデコーダ。
  32. 【請求項32】 請求項31記載のデコーダにおいて、
    該一つのメモリユニットが最初に受け取られたビットを
    保持するセル・サブセットに接続されることを特徴とす
    るデコーダ。
  33. 【請求項33】 請求項29記載のデコーダにおいて、
    該セルが0番から15番まであり、該複数のメモリユニ
    ットが、0番から7番のセルに接続された第1のメモリ
    ユニットと、4番から11番のセルに接続された第2の
    メモリユニットと、5番から15番のセルに接続された
    第3のメモリユニットとからなることを特徴とするデコ
    ーダ。
  34. 【請求項34】 請求項33記載のデコーダにおいて、
    該トークンが正規のハフマン符号でエンコードされるこ
    とを特徴とするデコーダ。
  35. 【請求項35】 請求項34記載のデコーダにおいて、
    該選択の手段が該セル内のユニークなプレフィックスの
    位置に応答することを特徴とするデコーダ。
  36. 【請求項36】 請求項35記載のデコーダにおいて、
    該選択の手段が該セル内の論理”1”の連続ビットの位
    置に応答することを特徴とするデコーダ。
  37. 【請求項37】 請求項36記載のデコーダにおいて、
    該選択の手段が、0番から7番のセルの内容が論理”
    1”であると判定した時に該第3メモリユニットを選択
    し、そうでない場合には0番から3番のセルの内容が論
    理”1”であると判定した時に該第2メモリユニットを
    選択し、以上のいずれでもない場合には該第1メモリユ
    ニットを選択することを特徴とするデコーダ。
  38. 【請求項38】 請求項35記載のデコーダにおいて、
    該選択の手段が該セル内の論理”0”の連続ビットの位
    置に応答することを特徴とするデコーダ。
  39. 【請求項39】 請求項38記載のデコーダにおいて、
    該選択の手段が、0番から7番の内容が論理”0”であ
    ると判定した時に該第3メモリユニットを選択し、そう
    でない場合には0番から3番の内容が論理”0”である
    と判定した時に該第2メモリユニットを選択し、以上の
    いずれでもない場合には該第1メモリユニットを選択す
    ることを特徴とするデコーダ。
  40. 【請求項40】 請求項29記載のデコーダにおいて、
    該データがデジタル変換係数及び非ゼロ変換係数間ラン
    レングスからなり、該メモリユニットが符号化データビ
    ットのユニットの長さ、該デジタル変換係数似関連した
    該長さ、及び仮数ビットの長さからなるデジタル画像デ
    ータを生成することを特徴とするデコーダ。
  41. 【請求項41】 請求項40記載のデコーダにおいて、
    該メモリユニットのそれぞれが13個の出力端子を有す
    ることを特徴とするデコーダ。
  42. 【請求項42】 請求項41記載のデコーダにおいて、
    該出力端子は、その中の5個が該符号化データビットの
    長さを伝え、4個が該デジタル変換係数に関連したラン
    レングスを伝え、4個が該仮数ビットの長さを伝えるこ
    とを特徴とするデコーダ。
JP14812093A 1992-07-07 1993-06-18 デコーダ Expired - Fee Related JP3224164B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/909903 1992-07-07
US07/909,903 US5325092A (en) 1992-07-07 1992-07-07 Huffman decoder architecture for high speed operation and reduced memory

Publications (2)

Publication Number Publication Date
JPH0685689A true JPH0685689A (ja) 1994-03-25
JP3224164B2 JP3224164B2 (ja) 2001-10-29

Family

ID=25428012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14812093A Expired - Fee Related JP3224164B2 (ja) 1992-07-07 1993-06-18 デコーダ

Country Status (5)

Country Link
US (1) US5325092A (ja)
JP (1) JP3224164B2 (ja)
DE (1) DE4314741C2 (ja)
FR (1) FR2693607B1 (ja)
GB (1) GB2269070B (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
EP0576749B1 (en) 1992-06-30 1999-06-02 Discovision Associates Data pipeline system
GB2288957B (en) * 1994-03-24 1998-09-23 Discovision Ass Start code detector
GB9405914D0 (en) * 1994-03-24 1994-05-11 Discovision Ass Video decompression
US5809270A (en) 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US5828907A (en) 1992-06-30 1998-10-27 Discovision Associates Token-based adaptive video processing arrangement
US6435737B1 (en) 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
US5603012A (en) 1992-06-30 1997-02-11 Discovision Associates Start code detector
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US5768561A (en) 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US6112017A (en) 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6079009A (en) 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US6047112A (en) 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
GB2288521B (en) * 1994-03-24 1998-10-14 Discovision Ass Reconfigurable process stage
US6067417A (en) 1992-06-30 2000-05-23 Discovision Associates Picture start token
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5717394A (en) * 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5805914A (en) 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5861894A (en) 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5488366A (en) * 1993-10-12 1996-01-30 Industrial Technology Research Institute Segmented variable length decoding apparatus for sequentially decoding single code-word within a fixed number of decoding cycles
FR2716019B1 (fr) * 1994-02-04 1996-04-26 Sgs Thomson Microelectronics Circuit de traitement numérique comportant des registres de test.
CA2145363C (en) 1994-03-24 1999-07-13 Anthony Mark Jones Ram interface
CA2145365C (en) 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
US5550542A (en) * 1994-05-04 1996-08-27 Matsushita Electric Corporation Of America Variable length code look-up table having separate code length determination
US5561422A (en) * 1994-05-16 1996-10-01 Daewoo Electronics Co., Ltd. Method and apparatus for variable length coding with reduced memory requirement
FR2722041B1 (fr) * 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
GB9417138D0 (en) 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
US5767799A (en) * 1995-12-05 1998-06-16 Mitsubishi Semiconductor America, Inc. Low power high speed MPEG video variable length decoder
US5657016A (en) * 1995-12-28 1997-08-12 Philips Electronics North America Corporation Variable length decoder with one of N length indicator
US5675332A (en) * 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5841380A (en) * 1996-03-29 1998-11-24 Matsushita Electric Corporation Of America Variable length decoder and method for decoding two codes per clock cycle
US5764357A (en) * 1996-04-12 1998-06-09 Vlsi Technology, Inc. Zero-run-length encoder with shift register
US5818364A (en) * 1996-06-19 1998-10-06 Hewlett-Packard Company High bit-rate huffman decoding
US5825312A (en) * 1996-11-25 1998-10-20 Xerox Corporation DX JPEG Huffman decoder
US6639945B2 (en) 1997-03-14 2003-10-28 Microsoft Corporation Method and apparatus for implementing motion detection in video compression
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6414687B1 (en) 1997-04-30 2002-07-02 Canon Kabushiki Kaisha Register setting-micro programming system
US6674536B2 (en) 1997-04-30 2004-01-06 Canon Kabushiki Kaisha Multi-instruction stream processor
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
US6272257B1 (en) 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6121905A (en) * 1998-05-11 2000-09-19 Oak Technology, Inc. Method and apparatus for decoding JPEG symbols
US6219457B1 (en) * 1998-05-26 2001-04-17 Silicon Graphics, Inc. Method and system for decoding data encoded in a variable length code word
US6850647B1 (en) 1999-07-30 2005-02-01 Michael L. Gough System, method and article of manufacture for decompressing digital camera sensor data
US6411229B2 (en) * 2000-04-28 2002-06-25 Matsushita Electric Industrial Co., Ltd. Variable length decoder
CA2467266A1 (en) * 2001-11-22 2003-05-30 Matsushita Electric Industrial Co., Ltd. Variable length coding method and variable length decoding method
US20080127006A1 (en) * 2006-10-27 2008-05-29 International Business Machines Corporation Real-Time Data Stream Decompressor
US8745094B2 (en) 2010-03-01 2014-06-03 Protegrity Corporation Distributed tokenization using several substitution steps
US9086871B2 (en) 2013-09-26 2015-07-21 International Business Machines Corporation Reordering the output of recirculated transactions within a pipeline
US9484954B1 (en) * 2015-09-10 2016-11-01 Intel Corporation Methods and apparatus to parallelize data decompression
US10135461B2 (en) 2015-09-25 2018-11-20 Intel Corporation Systems, methods, and apparatuses for decompression using hardware and software
US10395036B2 (en) * 2017-03-16 2019-08-27 Dell Products, L.P. Continued runtime authentication of information handling system (IHS) applications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes
EP0145396B1 (en) * 1983-12-08 1990-04-04 Crosfield Electronics Limited Codeword decoding
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
US4899148A (en) * 1987-02-25 1990-02-06 Oki Electric Industry Co., Ltd. Data compression method
CA2020084C (en) * 1989-06-29 1994-10-18 Kohei Iseda Voice coding/decoding system having selected coders and entropy coders
JPH03145223A (ja) * 1989-10-30 1991-06-20 Toshiba Corp 可変長符号復調装置
DE69126198T2 (de) * 1990-12-24 1997-12-04 Xerox Corp Datendekodierungsvorrichtung
JP3063180B2 (ja) * 1991-02-13 2000-07-12 富士通株式会社 可変長符号復号回路

Also Published As

Publication number Publication date
GB9308583D0 (en) 1993-06-09
DE4314741C2 (de) 1996-12-12
GB2269070A (en) 1994-01-26
FR2693607A1 (fr) 1994-01-14
GB2269070B (en) 1996-04-24
US5325092A (en) 1994-06-28
FR2693607B1 (fr) 1996-10-11
JP3224164B2 (ja) 2001-10-29
DE4314741A1 (de) 1994-02-10

Similar Documents

Publication Publication Date Title
JP3224164B2 (ja) デコーダ
US7777654B2 (en) System and method for context-based adaptive binary arithematic encoding and decoding
EP1958450B1 (en) Decoding data
KR100188427B1 (ko) 디지탈 통신시스템용 가변길이 코드워드디코더 및 그 디코딩 방법
US8306125B2 (en) 2-bin parallel decoder for advanced video processing
US7573951B2 (en) Binary arithmetic decoding apparatus and methods using a pipelined structure
JP4422833B2 (ja) 可変長符号語を復号する復号器及び方法
JP4023548B2 (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
US5808570A (en) Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same
JPH06252775A (ja) 復号化装置
EP0683568A1 (en) Variable length code look-up table having separate code length determination
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
US5663725A (en) VLC decoder with sign bit masking
JPH0865171A (ja) データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、リアルタイムビデオ装置、エンコーディング装置、及びエントロピー・デコーダ
JPH0946237A (ja) 可変長コードの符号化及び分割装置
Park et al. Area efficient fast Huffman decoder for multimedia applications
Orlandić et al. An efficient hardware architecture of CAVLC encoder based on stream processing
Schwartz et al. Superscalar Huffman decoder hardware design
KR100223043B1 (ko) 고정된 길이의 이동량을 갖는 패턴매칭 판별방법 및 그 장치

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees