JP2746109B2 - ハフマン符号復号化回路 - Google Patents
ハフマン符号復号化回路Info
- Publication number
- JP2746109B2 JP2746109B2 JP6064422A JP6442294A JP2746109B2 JP 2746109 B2 JP2746109 B2 JP 2746109B2 JP 6064422 A JP6064422 A JP 6064422A JP 6442294 A JP6442294 A JP 6442294A JP 2746109 B2 JP2746109 B2 JP 2746109B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- bit
- output
- decoding
- code length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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/425—Conversion 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
るハフマン符号復号化回路に関し、特にハフマン復号処
理を高速に行うハフマン符号復号化回路に関する。
復号語を1つずつ求めていた。また、復号語を2つずつ
求める場合は、テーブル検索を2段行い、求められた2
個の符号語の符号長を加算してハフマン符号データ列か
ら次のハフマン符号の先頭ビットを求める方式がとられ
ていた。
説明すると、(1)各文字に対応して葉を作り、(2)生起確
率の最も小さい2つの葉に対し新たな節点を1つ作り、
該節点と2つの葉を枝で結び、この2本の枝の一方には
‘0’、他方には‘1’のラベルを付け、さらにこの新
たな節点に2枚の葉の確率の和を印し、この節点を新た
な葉として(この節点から伸びている枝と葉をとり除い
たものと想定して)、上記操作(2)を葉が1つになるま
で繰り返し、根から文字に対応する葉まで枝を辿ったと
きに得られる‘1’と‘0’の系列がその文字に対する
符号語となる(図5参照)。図5において、例えば生起
確率が1/12の文字aの符号語は、‘1111’(符
号長=4)、生起確率が1/6の文字dの符号語は、
‘100’(符号長=3)となる。復号化は符号化され
たデータから元の文字を復号化する処理をいう。
符号復号化回路の従来の構成例を示すブロック図である
(「第1の従来例」という)。ハフマン符号の最大符号
語長を16ビットとする。図中、ハフマン符号データ列
15−0はハフマン符号データ列の16ビットを示した
もので、先頭ビットを最上位ビット(MSB)のビット
15としている。
路は、ハフマン符号データ列からハフマン符号の先頭ビ
ットを求める先頭決め部38と、復号語と符号長が予め
格納された復号テーブル39によって構成される。復号
テーブル39はROM(ReadOnly Memory)等で構成さ
れる。
ハフマン符号をアドレス入力とし、該アドレスに対応し
て復号語8ビットと符号長5ビットが格納されている。
例えば、復号語Aに対するハフマン符号が‘010
1’、復号語Bに対するハフマン符号が‘011010
1’であるものとして、復号テーブル39は、‘010
1×…’がアドレス入力されると、復号語A、符号長4
を出力し、‘0110101×…’がアドレス入力され
ると、復号語B、符号長7を出力する。
に対応して各復号語と符号長が復号テーブル39に設定
される。なお、表中の入力ビット列中の記号“×”は、
0/1の値のいずれであってもよいこと(DON’T
CARE)を表わしている。
れたハフマン符号データ列16ビットの先頭ビットとす
る。
列‘01010110101001…’が送られてきた
とする。先頭決め部38には、先頭から16ビットデー
タ、すなわち‘01010110101001…’が入
力される。
期値は入力されたハフマン符号データ列16ビットの先
頭ビットであるため、先頭ビットから16ビット‘01
010110101001…’を復号テーブル39に送
出する。
入力があれば復号語A、符号長=4を出力するように設
定されているため、復号語A、符号長4を出力する。そ
して、符号長=4は先頭決め部38に送られる。
4から、次のハフマン符号の先頭ビットが16ビットデ
ータ‘01010110101001…’の第5ビット
目であることが求まる。そして、先頭決め部38で新た
に求められた先頭ビットから16ビット、すなわち‘0
110101001…’が復号テーブル39に入力され
る。
×…’の入力があれば復号語B、符号長7を出力するよ
うに設定されているため、入力‘0110101001
…’に対して復号語B、符号長7を出力する。符号長=
7は先頭決め部38に送られる。
7から次のハフマン符号の先頭ビットが16ビットデー
タ‘0110101001…’の第8ビット目であるこ
とが求まる。そして、先頭決め部38で新たに求められ
た先頭ビットから16ビット、すなわち‘001…’が
復号テーブル39に入力される。以下同様な操作を繰り
返すことによって、符号化データの復号化が行なわれ
る。
形として、例えば特開昭62−66720号公報には、
可変長符号の復号化処理に要する時間が符号長に関係な
く所定の時間ステップで高速度にて復号化する可変長復
号化回路が提案されており、各ステップで符号化データ
を復号化すると同時に符号長を読み出し、このビット位
置に対応した符号化データを復号テーブルに順次入力制
御する構成が開示されている。
公報に開示された可変長復号化回路(「第2の従来例」
という)は、データレジスタ、符号レジスタ、アドレス
セレクタ、先頭ビット数レジスタ、制御回路、及び復号
テーブルであるROMから構成され、符号レジスタより
出力される8ビット並列データは対応するアドレスセレ
クタ(8個)にそれぞれ供給される。そして、各アドレ
スセレクタには1ビットずつビット順位をシフトしたデ
ータがそれぞれ供給されており、また、先頭ビット数レ
ジスタにより送られるビット順位選択信号が各アドレス
セレクタの選択信号として供給され、各アドレスセレク
タからは指定された順位のビットが1ビットデータ出力
として復号テーブル(ROM)に入力され、ROMから
は復号語と符号長が出力される。
フマン符号復号化回路の一構成例を示すブロック図であ
る(「第3の従来例」という)。図4において、ハフマ
ン符号の最大符号語長を16ビットとする。図中、ハフ
マン符号データ列31−0は、ハフマン符号データ列の
32ビットを示したもので、先頭ビットは最上位ビット
のビット31としている。
路は、ハフマン符号データ列からハフマン符号の先頭を
求める先頭決め部40,41と、復号語8ビット、符号
長5ビット、フラグ1ビットが格納された復号テーブル
42,43、加算器44,45、及びポインタ46から
構成される。
2,43には、ハフマン符号のアドレス入力に対応して
復号語8ビット、符号長5ビット、フラグ1ビットが格
納されている。
‘0101’、復号語Bに対するハフマン符号が‘01
10101’、復号語Cに対するハフマン符号が‘01
11001011001’、復号語Dに対するハフマン
符号が‘1011010000’であるものとして、復
号テーブル42,43は、‘0101×…’の入力があ
れば復号語A、符号長=4、フラグ=0を出力し、‘0
110101×…’の入力があれば復号語B、符号長=
7、フラグ=0を出力し、‘011100101100
1×…’の入力があれば復号語C、符号長=13、フラ
グ=0を出力し、‘1011010000×’の入力が
あれば復号語D、符号長=10、フラグ=0を出力する
ように設定されている。
に対応するハフマン符号のうちの1部分しかアドレス入
力されない場合には、符号長=0、フラグ=1を出力す
るように設定されている。
は、復号語Dを示す‘1011010000’の1部
分、例えば8ビットデータ‘10110100’がアド
レス入力された場合には、符号長=0、フラグ=1を出
力する。
は、各アドレス入力に対応して復号語、符号長、フラグ
が予め格納される。
フマン符号データ列の先頭ビットとし、フラグ=1が入
力された時には、新たに求められたハフマン符号の先頭
から32ビットを出力する。ポインタ46は初期値を0
とする。
マン符号データ列‘0101011010101110
0101100110110100000110101
…’が送られてきたものとする。
‘010101101010111001011001
10110100’が入力される。先頭決め部40は、
初期値が入力されたハフマン符号データ列の先頭ビット
であるため、先頭ビットから32ビット‘010101
1010101110010110011011010
0’を出力する。
タが入力される。
ビットデータの上位16ビット‘0101011010
101110’が入力される。復号テーブル42では、
‘0101×…’の入力があれば復号語A、符号長4、
フラグ=0を出力するように設定されているため、復号
語A、符号長=4、フラグ=0を出力する。符号長=4
は、先頭決め部41と加算器44に送られる。
ら送られた符号長=4に基づき、次のハフマン符号デー
タ列の先頭が32ビットデータ‘0101011010
1011100101100110110100’の第
5ビット目であることが求まり、先頭から第5ビット目
のビット位置から16ビット‘01101010111
00101’が復号テーブル43に入力される。
×…’の入力があれば復号語B、符号長=7、フラグ=
0を出力するように設定されているため、復号語B、符
号長=7、フラグ=0を出力する。符号長=7は加算器
44に送られる。
である符号長=7は、復号テーブル42が出力した復号
語Aの符号長=4と加算される。
45に送られる。加算器45にて、加算器44の出力と
ポインタ46の出力とが加算される。この場合、ポイン
タ46の出力は初期値0であるため、11+0=11が
加算器45からポインタ46に送出される。
決め部40に入力され、先頭決め部40では、次のハフ
マン符号の先頭ビットが、32ビットデータ‘0101
0110101011100101100110110
100’の第12ビット目であることが求まり、先頭か
ら第12ビット目のビット位置から16ビット‘011
1001011001101’が復号テーブル42に入
力される。
ット目から第32ビット目までの、すなわち‘0111
00101100110110100’の21ビットデ
ータが入力される。
011001×…’の入力があれば復号語C、符号長=
13、フラグ=0を出力するように設定されているた
め、復号語C、符号長=13、フラグ=0を出力する。
符号長=13は先頭決め部41と加算器44に送られ
る。
出力である符号長=13から、次のハフマン符号データ
列の先頭ビット位置が、21ビットデータ‘01110
0101100110110100’の先頭から第14
ビット目であることが求まり、先頭から第14ビット目
のビット位置から第21ビット目の8ビットデータ‘1
0110100’が復号テーブル43に入力される。
ットデータ‘10110100’が入力された場合、符
号長=0、フラグ=1を出力するように設定されている
ため、符号長=0を加算器44に送り、フラグ=1を先
頭決め部40に送る。
と符号長=0の加算が行われ、13+0=13が加算器
45に送られる。加算器45では、ポインタ46の出力
(=11)と加算器45の出力(=13)との加算が行
われ、11+13=24がポインタ46に送出される。
決め部40に入力され、先頭決め部40では、次のハフ
マン符号の先頭ビットが、32ビットデータ‘0101
0110101011100101100110110
100’の第25ビット目であることが求まる。
されるため、先頭決め部40は、求めようとしているハ
フマン符号の符号長が8ビットよりも長いものであると
判定し、32ビットデータ‘010101101010
11100101100110110100’における
第25ビット目から第32ビット目の8ビットデータ
‘10110100’と次のハフマン符号データ列の2
4ビットデータを新たな32ビットデータとして出力す
る。
ーブル43の8ビット復号語データ出力の取扱について
は、例えば、フラグをイネーブル信号として用いて、フ
ラグ=1の時には復号語を無視するように構成すればよ
い。以下同様な処理を繰り返すことによってハフマン符
号化データ列が順次復号化される。
たハフマン符号復号化回路では、第1、第2の従来例の
ように、1復号語ずつ求めた場合には、時間がかかり復
号化処理の短縮化が図れないという欠点がある。
第3の従来例では、先頭決め部40−復号テーブル42
−先頭決め部41−復号テーブル43−加算器44−加
算器45−ポインタ46−先頭決め部40とパス(信号
経路)が長くなり、このため動作周波数を上げて高速化
することは困難である。
し、ハフマン符号の復号化処理を高速化する復号化装置
を提供することを目的とする。また、本発明の別の目的
は、所望の高速処理を達成しながら且つ回路規模の増大
を抑止する構成の復号化装置を提供することにある。
め、本発明のハフマン符号復号化回路は、ハフマン符号
データ列よりハフマン符号の先頭ビットを求める先頭決
め部と、該先頭決め部の出力の先頭ビット位置から所定
ビット数を入力し第1の復号語及び符号長を出力する第
1の復号情報格納部と、前記先頭決め部の出力の互いに
異なるビット位置から予め定められたビット数をそれぞ
れ入力し復号語及び符号長をそれぞれ出力する複数の復
号情報格納部と、前記第1の復号情報格納部が出力する
第1の符号長を選択信号として前記複数の復号情報格納
部の出力のいずれか一を選択し第2の復号語及び符号長
として出力するセレクタと、を備え、該セレクタの出力
である前記第2の符号長が前記先頭決め部に供給される
ものである。
2の符号長は、第2の復号語の符号長と、セレクタの選
択信号の値(第1の復号情報格納部が出力する第1の符
号長)との和とされる。
復号情報格納部に復号化対象外の符号が入力された場合
には、第1の復号情報格納部の出力である第1の符号長
と同一の符号長を第2の符号長として出力すると共に、
第2の復号語が無効であることを示す制御信号を出力す
るように構成されるハフマン符号復号化回路を提供す
る。
は先頭決め部に供給され、第2の復号語が無効であると
きに、先頭決め部は、第1の符号長分だけ後置されたビ
ット位置を新たな先頭ビットとして所定ビット数を出力
するものである。
び符号長を出力する複数の復号情報格納部には、先頭決
め部の出力を順次1ビット毎シフトしたビット位置を先
頭ビットとする予め定められたビット数が入力される。
回路は、2復号語毎に復号化できると共に、先頭決め部
−第1の復号情報格納部から、複数の復号テーブル−セ
レクタ−先頭決め部と短い信号パスで済むため、ハフマ
ン符号復号化処理の高速動作を可能とするものである。
なお、復号情報格納部は、実施例の復号テーブルに対応
する。
の符号長と第1の復号語の符号長の和を第2の復号語を
出力する復号テーブルに予め格納しておくことにより、
先頭ビットを制御するための回路構成が簡易化されると
共に、復号化処理が高速化される。
復号語を出力する複数の復号情報格納部に復号語を示す
ハフマン符号の1部分しかアドレス入力されない場合に
は、符号長の和(第2の符号長に対応)として第1の復
号情報格納部の出力である第1の復号語の符号長を出力
すると共に、制御信号であるフラグ=1を出力し、先頭
決め部において、該当する先頭ビット位置から新たに所
定ビット数を出力する構成により、復号化処理を高速化
すると共に復号情報格納部の規模の縮減を達成するとい
う効果を奏する。
明する。
マン符号復号化回路の構成を示すブロック図である。ハ
フマン符号の最大符号語長を16ビットとする。ブロッ
ク図内のハフマン符号データ列31−0はハフマン符号
データ列32ビットを示したもので、先頭ビットを最上
位ビット31としている。
たハフマン符号データ列からハフマン符号の先頭ビット
を求める先頭決め部1と、先頭決め部1で求められたハ
フマン符号の先頭ビットから16ビットを入力とする復
号テーブル2と、先頭第2ビット目から16ビットデー
タを入力とする復号テーブル3と、先頭第nビット目
(3≦n≦17)から16ビットデータを入力とする復
号テーブル4〜18と、復号テーブル2の出力である符
号長を選択信号として、復号テーブル3〜18の出力デ
ータのいずれか一を選択出力するセレクタ19から構成
される。なお復号テーブル2〜18はROM(Read Onl
y Memory)等で構成される。
号テーブル3の出力データを選択し、符号長が2の場合
には復号テーブル4の出力データを選択する(他の復号
テーブル5〜18についても同様)。
2には、ハフマン符号のアドレス入力に対応して、復号
語8ビットと符号長5ビットが格納されている。
8にはそれぞれ、ハフマン符号のアドレス入力に対応し
て、復号語8ビットと2つの復号語の符号長の和6ビッ
トが格納されている。
される符号長の和は、復号テーブルnが復号化した復号
語の符号長と、復号テーブルnの出力が接続されるセレ
クタ19の入力ポート位置すなわち対応する選択信号の
値1〜16(すなわち復号テーブル2の符号長出力)と
を加算した値である。
幅、符号長の和が6ビット幅に設けられているのは、復
号テーブル2の出力である符号長は1〜16の値をとり
(すなわち5ビット幅)、また、符号長の和は最大32
までの値(すなわち6ビット幅)を出力することによ
る。
6、13)の設定の一例が示されている。
‘0101’、復号語Bに対するハフマン符号が‘01
10101’であるものとする。
力に対して復号語A、符号長4を出力し、‘01101
01×…’の入力に対して復号語B、符号長7を出力す
るように予め設定されている。
が格納されており、符号長の和として、復号テーブル2
で求められる復号語の符号長が1(セレクタ19の選択
信号が1)の場合が想定され、復号テーブル3で求めら
れる復号語の符号長に1を加算した値が格納されてい
る。すなわち、復号テーブル3は、‘0101×…’が
入力された場合、復号語Aと符号長の和4+1=5を出
力するように設定されている。
長の和が格納されており、符号長の和として、復号テー
ブル2で求まる復号語の符号長が4の場合が想定され、
復号テーブル6で求められる復号語の符号長に4を加算
した値(=符号長+4)が設定されている。復号テーブ
ル6に、例えば‘0101×…’が入力された場合、復
号語Aと符号長の和4+4=8を出力する。
力に対応して復号語と符号長の和が格納される。
ン符号データ列32ビットの先頭ビットとする。
づき、本実施例の動作を説明する。
110101001001…’が送られてきたものとす
る。
1010110101001001…’が入力される。
先頭決め部1では、初期値は入力されたハフマン符号デ
ータ列32ビットの先頭ビットであるため、先頭ビット
から32ビット‘01010110101001001
…’を出力する。
レス入力には16ビットが入力される。すなわち、復号
テーブル2には、先頭ビットから16ビットの‘010
1011010100100’が入力される。
‘0101×…’が入力された場合には復号語A、符号
長=4を出力するように設定されているため、復号語
A、符号長=4を出力する。復号テーブル2の出力であ
る符号長=4は、選択信号としてセレクタ19に送られ
る。
8にも、ハフマン符号データ列がそれぞれ所定のビット
位置から16ビット入力され、各入力に対応するデータ
(復号語及び符号長の和)をセレクタ19に出力する。
ト目から16ビットデータ‘011010100100
1…’が入力される。復号テーブル6は、表1に示すよ
うに、‘0110101×…’が入力された場合、復号
語B、符号長の和11を出力するように設定されている
ため、復号語B、符号長の和=11を出力する。
長=4が選択信号とされ、この場合、セレクタ19は、
復号テーブル6の出力データを選択し、復号語B、符号
長の和=11を出力する。
に送られ、先に入力された32ビットデータ‘0101
0110101001001…’の先頭から第12ビッ
ト目を次のハフマン符号の先頭ビットに設定し、新たに
第12ビット目から32ビットデータ、すなわち‘00
1001…’を出力する。
施例はハフマン符号データ列を2復号語ずつ復号化す
る。
例について説明する。本実施例は、実施例1と比較し
て、復号化処理の高速化等処理能力の向上を達成するよ
りも、むしろ復号テーブルのサイズを小さくしたい場合
に好適である。図2は本発明の第2の実施例を示すハフ
マン符号復号化回路のブロック図である。
長を16ビットとする。ブロック図内のハフマン符号デ
ータ列15−0はハフマン符号データ列16ビットを示
したもので、先頭ビットを最上位ビットのビット15と
している。
ン符号復号化回路は、ハフマン符号データ列からハフマ
ン符号の先頭ビットを求める先頭決め部20と、先頭決
め部20で求まったハフマン符号の先頭ビットから16
ビットを入力する復号テーブル21と、先頭第2ビット
目から第16ビット目までのビットデータを入力する復
号テーブル22と、以下同様にして、ハフマン符号デー
タ列の先頭第nビット目(3≦n≦16)から第16ビ
ット目までのビットデータを入力するハフマン符号デー
タを入力する復号テーブル23〜36と、復号テーブル
21の符号長出力を選択信号として復号テーブル22〜
36の出力のいずれか一を選択出力するセレクタ37か
ら構成される。
の符号長が1の場合には復号テーブル22の出力データ
を選択し、符号長が2の場合には復号テーブル23の出
力データを選択し、同様にして符号長の値に基づき復号
テーブル24〜36の出力データを選択出力する。
21には、アドレス入力に対応して復号語8ビットと符
号長5ビットが格納されている。また、復号テーブル2
2から復号テーブル36には、アドレス入力に対応して
復号語8ビットと2復号語の符号長の和6ビット、及び
フラグ1ビットが格納されている。
納される符号長の和は、復号テーブルn(22≦n≦3
6)が復号化した復号語の符号長と、復号テーブルnの
出力が接続されるセレクタ37の入力ポート位置すなわ
ち対応する選択信号の値1〜15(復号テーブル21の
符号長出力)とを加算した値とされる。
定の一例が示されている。例えば、復号語Aに対するハ
フマン符号が‘0101’、復号語Bに対するハフマン
符号が‘0110101’、復号語Cに対するハフマン
符号が‘0111001011001’、復号語Dに対
するハフマン符号が‘1011010000’であるも
のとする。
‘0101×…’が入力された場合、復号語A、符号長
=4を出力し、‘0110101×…’が入力された場
合、復号語B、符号長=7を出力し、‘0111001
011001×…’が入力された場合、復号語C、符号
長=13を出力し、また、‘1011010000×
…’が入力された場合、復号語D、符号長=10を出力
するように設定されている。
は、復号語8ビットと符号長の和6ビット、フラグ1ビ
ットが以下のように設定されている。
22は、‘0101×…’が入力された場合、復号語
A、符号長の和=4+1=5、及びフラグ=0を出力
し、‘0110101×…’が入力された場合、復号語
B、符号長の和=7+1=8、及びフラグ=0を出力
し、‘0111001011001×…’が入力された
場合、復号語C、符号長の和=13+1=14、及びフ
ラグ=0を出力し、‘1011010000×…’の入
力された場合、復号語D、符号長の和=10+1=1
1、及びフラグ=0を出力する。
1’,‘101’が入力された場合、復号語を示すハフ
マン符号の1部分しかアドレス入力されていないため、
符号長=13、フラグ=1を出力する。
と設定するのは、復号テーブル21で求められた復号語
の符号長を先頭決め部20に送出するためであり、セレ
クタ37が復号テーブル34の出力を選択するのは、復
号テーブル21で求まる復号語の符号長が13の時であ
ることによる。
ては、復号語を示すハフマン符号の1部分しかアドレス
入力されない場合には、符号長の和を復号テーブル21
で求められた復号語の符号長とし、フラグ=1を出力す
るように設定される。同様に他の復号テーブルについて
も、アドレス入力に対応して復号語、符号長、フラグが
設定される。
たハフマン符号データ列16ビットの先頭ビットとす
る。
づき本実施例の動作を説明する。
1101010111001011001101101
0000…’が送られてきたものとする。
101011010101110’が入力される。先頭
決め部20では、先頭ビットの初期値は入力されたハフ
マン符号データ列16ビットの先頭ビットであるため、
先頭から16ビット‘010101101010111
0’を出力する。
トデータ‘0101011010101110’が入力
される。
‘0101×…’が入力された場合、復号語A、符号長
=4を出力するように設定されているため、復号語A、
符号長4を出力する。復号テーブル21の出力である符
号長=4は選択信号としてセレクタ37に供給される。
36にも、図2に示すように、ハフマン符号データがそ
れぞれ入力され、各入力に対応するデータ(復号語及び
符号長の和)をセレクタ37に出力する。
ビット目から第16ビット目の12ビットデータ‘01
1010101110’が入力される。復号テーブル2
5は、表2に示すように、‘0110101×…’が入
力された場合には、復号語B、符号長の和として11を
出力するように設定されているため、復号語B、符号長
の和=11、フラグ=0を出力する。
号長=4を選択信号として、この場合、復号テーブル2
5の出力データを選択し、復号語B、符号長の和=1
1、フラグ=0を出力し、符号長の和=11は先頭決め
部20に供給される。
マン符号データ列16ビット‘01010110101
01110’の先頭から第12ビット目を次のハフマン
符号の先頭ビットに設定し、新しく求められた先頭から
16ビット、すなわち‘01110010110011
01’を出力する。
‘01110001011001×…’が入力された場
合、復号語C、符号長13を出力するように設定されて
いるため、復号語C、符号長=13を出力する。符号長
=13は選択信号としてセレクタ37に供給される。
36にもハフマン符号データがそれぞれ入力され、各入
力に対応するデータをセレクタ37に出力する。
14ビット目から第16ビット目の3ビットデータ‘0
10’が入力される。復号テーブル34は、表2に示す
ように、‘010’が入力された場合、符号長13、フ
ラグ=1を出力するように設定されているため、符号長
13、フラグ=1を出力する。
号長13を選択信号として、この場合、復号テーブル3
4の出力を選択し、符号長13、フラグ=1を出力す
る。
ーブル34からの復号語データ出力の取扱については、
例えば、フラグをイネーブル信号として用いて、フラグ
=1の時にはセレクタ37から出力される復号語を無視
するように構成すればよい。
れ、先頭決め部20では、先に入力された16ビットデ
ータ‘0111001011001101’の先頭から
第14ビット目を次のハフマン符号の先頭ビットに設定
し、新しく求められた先頭から16ビットデータ‘10
11010000…’を出力する。
例は、入力されたハフマン符号データ列を順次復号化す
る。
が、例えば、表1、表2の構成はあくまで発明の理解を
助けるためのものであり、本発明は上記態様に限定され
るものではなく、本発明の原理に準ずる各種実施態様を
含む。
符号復号化回路によれば、2復号語毎に復号化を行なう
ことができると共に、先頭決め部から復号テーブルへの
経路及び復号テーブルからセレクタを介して先頭決め部
と、信号経路が従来例と比較して短くて済み、ハフマン
符号復号化処理を高速に行うことが出来る。
と第1の復号語の符号長の和を第2の復号語を出力する
復号テーブルに予め格納しておくことにより、先頭ビッ
トを制御するための回路構成が簡易化されると共に、復
号化処理が高速化される。
の復号語を出力する復号テーブルに復号語を示すハフマ
ン符号の1部分しかアドレス入力されない場合には、符
号長の和として第1の復号語の符号長を出力すると共
に、フラグ=1を出力し、先頭決め部において、該当す
る先頭ビット位置から16ビットデータを出力し、第1
の復号テーブルで復号化を行なう構成により、復号化処
理を高速化すると共に回路規模、特に復号テーブルの規
模の縮減を達成するという効果を奏する。
ブルに入力されるハフマン符号データを1ビット毎順次
シフトした構成により回路構成が簡易化され且つ高速化
に資する。
路の構成を示すブロック図である。
路の構成を示すブロック図である。
示すブロック図である。
示すブロック図である。
る。
Claims (5)
- 【請求項1】ハフマン符号データ列よりハフマン符号の
先頭ビットを求める先頭決め部と、該先頭決め部の出力
の先頭ビット位置から所定ビット数を入力し第1の復号
語及び第1の符号長を出力する第1の復号情報格納部
と、前記先頭決め部の出力の互いに異なるビット位置か
ら予め定められたビット数をそれぞれ入力し復号語及び
符号長をそれぞれ出力する複数の復号情報格納部と、前
記第1の復号情報格納部が出力する第1の符号長を選択
信号として前記複数の復号情報格納部の出力のいずれか
一を選択し第2の復号語及び第2の符号長として出力す
るセレクタと、を備え、該セレクタの出力である前記第
2の符号長が前記先頭決め部に供給されるハフマン符号
復号化回路。 - 【請求項2】前記第2の符号長が、第2の復号語の符号
長と、前記選択信号の値(前記第1の復号情報格納部が
出力する第1の符号長)との和である請求項1記載のハ
フマン符号復号化回路。 - 【請求項3】前記複数の復号情報格納部が、復号化対象
外の符号が入力された場合に前記第1の復号情報格納部
が出力する第1の符号長と同一の符号長を第2の符号長
として出力すると共に、前記第2の復号語が無効である
ことを示す制御信号を出力するように構成された請求項
1記載のハフマン符号復号化回路。 - 【請求項4】前記制御信号が前記先頭決め部に供給さ
れ、前記第2の復号語が無効であるときに、前記先頭決
め部は、前記第1の符号長分だけ後置されたビット位置
を新たに先頭ビットとして所定ビット数を出力するよう
に構成された請求項3記載のハフマン符号復号化回路。 - 【請求項5】前記複数の復号情報格納部には、前記先頭
決め部の出力を順次1ビット毎シフトしたビット位置を
先頭ビットとする予め定められたビット数が入力される
請求項1から4のいずれか一に記載のハフマン符号復号
化回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6064422A JP2746109B2 (ja) | 1994-03-09 | 1994-03-09 | ハフマン符号復号化回路 |
US08/399,752 US5617089A (en) | 1994-03-09 | 1995-03-07 | Huffman code decoding circuit |
KR1019950004799A KR0163464B1 (ko) | 1994-03-09 | 1995-03-09 | 허프만 부호 복호화 회로 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6064422A JP2746109B2 (ja) | 1994-03-09 | 1994-03-09 | ハフマン符号復号化回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07249994A JPH07249994A (ja) | 1995-09-26 |
JP2746109B2 true JP2746109B2 (ja) | 1998-04-28 |
Family
ID=13257832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6064422A Expired - Fee Related JP2746109B2 (ja) | 1994-03-09 | 1994-03-09 | ハフマン符号復号化回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5617089A (ja) |
JP (1) | JP2746109B2 (ja) |
KR (1) | KR0163464B1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835035A (en) * | 1995-12-28 | 1998-11-10 | Philips Electronics North America Corporation | High performance variable length decoder with two-word bit stream segmentation and related method |
KR100214593B1 (ko) * | 1996-03-15 | 1999-08-02 | 구자홍 | 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치 |
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 |
JP3371677B2 (ja) * | 1996-04-09 | 2003-01-27 | 富士ゼロックス株式会社 | 可変長復号化装置 |
JP3189876B2 (ja) * | 1997-06-09 | 2001-07-16 | 日本電気株式会社 | 可変長符号復号化回路 |
US5990812A (en) * | 1997-10-27 | 1999-11-23 | Philips Electronics North America Corporation | Universally programmable variable length decoder |
JP2000286717A (ja) * | 1999-03-30 | 2000-10-13 | Matsushita Electric Ind Co Ltd | デコード装置 |
US6411226B1 (en) * | 2001-01-16 | 2002-06-25 | Motorola, Inc. | Huffman decoder with reduced memory size |
US6573847B1 (en) * | 2002-01-08 | 2003-06-03 | Intel Corporation | Multi-table mapping for huffman code decoding |
FI116813B (fi) * | 2002-06-20 | 2006-02-28 | Nokia Corp | Menetelmä ja järjestelmä vaihtuvapituisen koodauksen purkamiseksi, ja koodisanojen paikannuslaite |
US7283591B2 (en) * | 2003-03-28 | 2007-10-16 | Tarari, Inc. | Parallelized dynamic Huffman decoder |
US6903668B1 (en) * | 2003-11-18 | 2005-06-07 | M-Systems Flash Disk Pioneers Ltd. | Decompression accelerator for flash memory |
KR20050053996A (ko) * | 2003-12-03 | 2005-06-10 | 삼성전자주식회사 | 허프만 코드를 효율적으로 복호화하는 방법 및 장치 |
JP2013016897A (ja) * | 2011-06-30 | 2013-01-24 | Toshiba Corp | 可変長符号復号装置、符号システムおよび可変長符号復号方法 |
US10135461B2 (en) * | 2015-09-25 | 2018-11-20 | Intel Corporation | Systems, methods, and apparatuses for decompression using hardware and software |
US11211945B1 (en) * | 2020-10-29 | 2021-12-28 | Microsoft Technology Licensing, Llc | Parallelized decoding of variable-length prefix codes |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0410716A (ja) * | 1990-04-27 | 1992-01-14 | Ricoh Co Ltd | ハフマン符号の復号回路 |
JP3008685B2 (ja) * | 1992-08-03 | 2000-02-14 | 日本電気株式会社 | 可変長符号の復号化回路 |
JP3136796B2 (ja) * | 1992-09-24 | 2001-02-19 | ソニー株式会社 | 可変長符号デコーダ |
DE69329092T2 (de) * | 1992-10-13 | 2001-03-22 | Nec Corp., Tokio/Tokyo | Huffman-Kode-Decodierungsschaltung |
US5446916A (en) * | 1993-03-26 | 1995-08-29 | Gi Corporation | Variable length codeword packer |
KR950010425B1 (ko) * | 1993-09-11 | 1995-09-16 | 국방과학연구소 | 코드분류에 의한 병렬처리 가변장 부호 복호기 |
-
1994
- 1994-03-09 JP JP6064422A patent/JP2746109B2/ja not_active Expired - Fee Related
-
1995
- 1995-03-07 US US08/399,752 patent/US5617089A/en not_active Expired - Lifetime
- 1995-03-09 KR KR1019950004799A patent/KR0163464B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5617089A (en) | 1997-04-01 |
JPH07249994A (ja) | 1995-09-26 |
KR0163464B1 (ko) | 1999-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2746109B2 (ja) | ハフマン符号復号化回路 | |
EP0471518B1 (en) | Data compression method and apparatus | |
JPH03274920A (ja) | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 | |
KR0138971B1 (ko) | 허프만 부호 복호회로 | |
US5832037A (en) | Method of compressing and expanding data | |
JP3189876B2 (ja) | 可変長符号復号化回路 | |
JPH0888568A (ja) | データの可逆符号化方法 | |
JPH07226846A (ja) | 入力データストリームの処理方法及び圧縮フォーマットの生成方法 | |
JP2922571B2 (ja) | データ変換回路 | |
JP3199292B2 (ja) | ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法 | |
JP3346626B2 (ja) | データ圧縮装置 | |
JP2715871B2 (ja) | 可変長符号化方法 | |
JP2537551B2 (ja) | 可変長符号復号回路 | |
JPH11215008A (ja) | 復号回路 | |
JP2999561B2 (ja) | データ圧縮及び復元装置 | |
JP2859850B2 (ja) | 並列入力/直列出力装置および並列入力/直列出力方法 | |
JP3648944B2 (ja) | データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置 | |
JP3229690B2 (ja) | 可変長符号復号器 | |
JP3332630B2 (ja) | 復号装置及びデコードテーブルの生成方法 | |
KR100462060B1 (ko) | 유니버셜 가변 길이 코드 부호어 다중 추출 방법 및 그를위한 룩-업 테이블 구성 방법 | |
JP3252029B2 (ja) | 符号化装置及び符号化方法 | |
JP3610381B2 (ja) | データ圧縮装置 | |
JPH066237A (ja) | 可変長符号復号装置 | |
JP3138342B2 (ja) | 可変長符号の復号装置 | |
JP3032239B2 (ja) | 可変長符号の復号回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19980113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080213 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090213 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100213 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100213 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110213 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110213 Year of fee payment: 13 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110213 Year of fee payment: 13 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110213 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120213 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 15 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140213 Year of fee payment: 16 |
|
LAPS | Cancellation because of no payment of annual fees |