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
Application number
JP6064422A
Other languages
English (en)
Other versions
JPH07249994A (ja
Inventor
成則 木内
明 澤田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP6064422A priority Critical patent/JP2746109B2/ja
Priority to US08/399,752 priority patent/US5617089A/en
Priority to KR1019950004799A priority patent/KR0163464B1/ko
Publication of JPH07249994A publication Critical patent/JPH07249994A/ja
Application granted granted Critical
Publication of JP2746109B2 publication Critical patent/JP2746109B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical 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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハフマン符号を復号す
るハフマン符号復号化回路に関し、特にハフマン復号処
理を高速に行うハフマン符号復号化回路に関する。
【0002】
【従来の技術】従来、ハフマン符号を復号化する場合、
復号語を1つずつ求めていた。また、復号語を2つずつ
求める場合は、テーブル検索を2段行い、求められた2
個の符号語の符号長を加算してハフマン符号データ列か
ら次のハフマン符号の先頭ビットを求める方式がとられ
ていた。
【0003】ここでハフマン符号の原理について簡単に
説明すると、(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)となる。復号化は符号化され
たデータから元の文字を復号化する処理をいう。
【0004】図3は、復号語を1つずつ求めるハフマン
符号復号化回路の従来の構成例を示すブロック図である
(「第1の従来例」という)。ハフマン符号の最大符号
語長を16ビットとする。図中、ハフマン符号データ列
15−0はハフマン符号データ列の16ビットを示した
もので、先頭ビットを最上位ビット(MSB)のビット
15としている。
【0005】図3に示すように、ハフマン符号復号化回
路は、ハフマン符号データ列からハフマン符号の先頭ビ
ットを求める先頭決め部38と、復号語と符号長が予め
格納された復号テーブル39によって構成される。復号
テーブル39はROM(ReadOnly Memory)等で構成さ
れる。
【0006】復号テーブル39は、表3に示すように、
ハフマン符号をアドレス入力とし、該アドレスに対応し
て復号語8ビットと符号長5ビットが格納されている。
例えば、復号語Aに対するハフマン符号が‘010
1’、復号語Bに対するハフマン符号が‘011010
1’であるものとして、復号テーブル39は、‘010
1×…’がアドレス入力されると、復号語A、符号長4
を出力し、‘0110101×…’がアドレス入力され
ると、復号語B、符号長7を出力する。
【0007】同様にして、ハフマン符号のアドレス入力
に対応して各復号語と符号長が復号テーブル39に設定
される。なお、表中の入力ビット列中の記号“×”は、
0/1の値のいずれであってもよいこと(DON’T
CARE)を表わしている。
【0008】また、先頭決め部38の初期値は、入力さ
れたハフマン符号データ列16ビットの先頭ビットとす
る。
【0009】図3において、仮に、ハフマン符号データ
列‘01010110101001…’が送られてきた
とする。先頭決め部38には、先頭から16ビットデー
タ、すなわち‘01010110101001…’が入
力される。
【0010】先頭決め部38では、先頭ビット位置の初
期値は入力されたハフマン符号データ列16ビットの先
頭ビットであるため、先頭ビットから16ビット‘01
010110101001…’を復号テーブル39に送
出する。
【0011】復号テーブル39は、‘0101×…’の
入力があれば復号語A、符号長=4を出力するように設
定されているため、復号語A、符号長4を出力する。そ
して、符号長=4は先頭決め部38に送られる。
【0012】先頭決め部38では、入力された符号長=
4から、次のハフマン符号の先頭ビットが16ビットデ
ータ‘01010110101001…’の第5ビット
目であることが求まる。そして、先頭決め部38で新た
に求められた先頭ビットから16ビット、すなわち‘0
110101001…’が復号テーブル39に入力され
る。
【0013】復号テーブル39では、‘0110101
×…’の入力があれば復号語B、符号長7を出力するよ
うに設定されているため、入力‘0110101001
…’に対して復号語B、符号長7を出力する。符号長=
7は先頭決め部38に送られる。
【0014】先頭決め部38では、入力された符号長=
7から次のハフマン符号の先頭ビットが16ビットデー
タ‘0110101001…’の第8ビット目であるこ
とが求まる。そして、先頭決め部38で新たに求められ
た先頭ビットから16ビット、すなわち‘001…’が
復号テーブル39に入力される。以下同様な操作を繰り
返すことによって、符号化データの復号化が行なわれ
る。
【0015】復号語を1つずつ求める第1の従来例の変
形として、例えば特開昭62−66720号公報には、
可変長符号の復号化処理に要する時間が符号長に関係な
く所定の時間ステップで高速度にて復号化する可変長復
号化回路が提案されており、各ステップで符号化データ
を復号化すると同時に符号長を読み出し、このビット位
置に対応した符号化データを復号テーブルに順次入力制
御する構成が開示されている。
【0016】より詳細には、特開昭62−66720号
公報に開示された可変長復号化回路(「第2の従来例」
という)は、データレジスタ、符号レジスタ、アドレス
セレクタ、先頭ビット数レジスタ、制御回路、及び復号
テーブルであるROMから構成され、符号レジスタより
出力される8ビット並列データは対応するアドレスセレ
クタ(8個)にそれぞれ供給される。そして、各アドレ
スセレクタには1ビットずつビット順位をシフトしたデ
ータがそれぞれ供給されており、また、先頭ビット数レ
ジスタにより送られるビット順位選択信号が各アドレス
セレクタの選択信号として供給され、各アドレスセレク
タからは指定された順位のビットが1ビットデータ出力
として復号テーブル(ROM)に入力され、ROMから
は復号語と符号長が出力される。
【0017】図4は、従来の復号語を2つずつ求めるハ
フマン符号復号化回路の一構成例を示すブロック図であ
る(「第3の従来例」という)。図4において、ハフマ
ン符号の最大符号語長を16ビットとする。図中、ハフ
マン符号データ列31−0は、ハフマン符号データ列の
32ビットを示したもので、先頭ビットは最上位ビット
のビット31としている。
【0018】図4に示すように、ハフマン符号復号化回
路は、ハフマン符号データ列からハフマン符号の先頭を
求める先頭決め部40,41と、復号語8ビット、符号
長5ビット、フラグ1ビットが格納された復号テーブル
42,43、加算器44,45、及びポインタ46から
構成される。
【0019】また、表4に示すように、復号テーブル4
2,43には、ハフマン符号のアドレス入力に対応して
復号語8ビット、符号長5ビット、フラグ1ビットが格
納されている。
【0020】例えば、復号語Aに対するハフマン符号が
‘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を出力する
ように設定されている。
【0021】また、復号テーブル42,43は、復号語
に対応するハフマン符号のうちの1部分しかアドレス入
力されない場合には、符号長=0、フラグ=1を出力す
るように設定されている。
【0022】より詳細には、復号テーブル42,43
は、復号語Dを示す‘1011010000’の1部
分、例えば8ビットデータ‘10110100’がアド
レス入力された場合には、符号長=0、フラグ=1を出
力する。
【0023】同様にして、復号テーブル42,43に
は、各アドレス入力に対応して復号語、符号長、フラグ
が予め格納される。
【0024】先頭決め部40の初期値は、入力されたハ
フマン符号データ列の先頭ビットとし、フラグ=1が入
力された時には、新たに求められたハフマン符号の先頭
から32ビットを出力する。ポインタ46は初期値を0
とする。
【0025】図4のハフマン復号化回路に、仮に、ハフ
マン符号データ列‘0101011010101110
0101100110110100000110101
…’が送られてきたものとする。
【0026】先頭決め部40には、先頭から32ビット
‘010101101010111001011001
10110100’が入力される。先頭決め部40は、
初期値が入力されたハフマン符号データ列の先頭ビット
であるため、先頭ビットから32ビット‘010101
1010101110010110011011010
0’を出力する。
【0027】先頭決め部41には、この32ビットデー
タが入力される。
【0028】また、復号フィールド42には、上記32
ビットデータの上位16ビット‘0101011010
101110’が入力される。復号テーブル42では、
‘0101×…’の入力があれば復号語A、符号長4、
フラグ=0を出力するように設定されているため、復号
語A、符号長=4、フラグ=0を出力する。符号長=4
は、先頭決め部41と加算器44に送られる。
【0029】先頭決め部41では、復号テーブル42か
ら送られた符号長=4に基づき、次のハフマン符号デー
タ列の先頭が32ビットデータ‘0101011010
1011100101100110110100’の第
5ビット目であることが求まり、先頭から第5ビット目
のビット位置から16ビット‘01101010111
00101’が復号テーブル43に入力される。
【0030】復号テーブル43では、‘0110101
×…’の入力があれば復号語B、符号長=7、フラグ=
0を出力するように設定されているため、復号語B、符
号長=7、フラグ=0を出力する。符号長=7は加算器
44に送られる。
【0031】加算器44にて、復号テーブル43の出力
である符号長=7は、復号テーブル42が出力した復号
語Aの符号長=4と加算される。
【0032】加算器44の出力4+7=11は、加算器
45に送られる。加算器45にて、加算器44の出力と
ポインタ46の出力とが加算される。この場合、ポイン
タ46の出力は初期値0であるため、11+0=11が
加算器45からポインタ46に送出される。
【0033】ポインタ46からの出力(=11)は先頭
決め部40に入力され、先頭決め部40では、次のハフ
マン符号の先頭ビットが、32ビットデータ‘0101
0110101011100101100110110
100’の第12ビット目であることが求まり、先頭か
ら第12ビット目のビット位置から16ビット‘011
1001011001101’が復号テーブル42に入
力される。
【0034】また、先頭決め部41には、先頭第12ビ
ット目から第32ビット目までの、すなわち‘0111
00101100110110100’の21ビットデ
ータが入力される。
【0035】復号テーブル42では、‘0111001
011001×…’の入力があれば復号語C、符号長=
13、フラグ=0を出力するように設定されているた
め、復号語C、符号長=13、フラグ=0を出力する。
符号長=13は先頭決め部41と加算器44に送られ
る。
【0036】先頭決め部41では、復号テーブル42の
出力である符号長=13から、次のハフマン符号データ
列の先頭ビット位置が、21ビットデータ‘01110
0101100110110100’の先頭から第14
ビット目であることが求まり、先頭から第14ビット目
のビット位置から第21ビット目の8ビットデータ‘1
0110100’が復号テーブル43に入力される。
【0037】復号テーブル43では、前述の通り、8ビ
ットデータ‘10110100’が入力された場合、符
号長=0、フラグ=1を出力するように設定されている
ため、符号長=0を加算器44に送り、フラグ=1を先
頭決め部40に送る。
【0038】加算器44では、復号語Cの符号長=13
と符号長=0の加算が行われ、13+0=13が加算器
45に送られる。加算器45では、ポインタ46の出力
(=11)と加算器45の出力(=13)との加算が行
われ、11+13=24がポインタ46に送出される。
【0039】ポインタ46からの出力(=24)は先頭
決め部40に入力され、先頭決め部40では、次のハフ
マン符号の先頭ビットが、32ビットデータ‘0101
0110101011100101100110110
100’の第25ビット目であることが求まる。
【0040】一方、フラグ=1が先頭決め部40に入力
されるため、先頭決め部40は、求めようとしているハ
フマン符号の符号長が8ビットよりも長いものであると
判定し、32ビットデータ‘010101101010
11100101100110110100’における
第25ビット目から第32ビット目の8ビットデータ
‘10110100’と次のハフマン符号データ列の2
4ビットデータを新たな32ビットデータとして出力す
る。
【0041】フラグ=1を出力した場合における復号テ
ーブル43の8ビット復号語データ出力の取扱について
は、例えば、フラグをイネーブル信号として用いて、フ
ラグ=1の時には復号語を無視するように構成すればよ
い。以下同様な処理を繰り返すことによってハフマン符
号化データ列が順次復号化される。
【0042】
【発明が解決しようとする課題】しかしながら、上述し
たハフマン符号復号化回路では、第1、第2の従来例の
ように、1復号語ずつ求めた場合には、時間がかかり復
号化処理の短縮化が図れないという欠点がある。
【0043】また、2復号語ずつ求める構成をとる前記
第3の従来例では、先頭決め部40−復号テーブル42
−先頭決め部41−復号テーブル43−加算器44−加
算器45−ポインタ46−先頭決め部40とパス(信号
経路)が長くなり、このため動作周波数を上げて高速化
することは困難である。
【0044】したがって、本発明は前記問題点を解消
し、ハフマン符号の復号化処理を高速化する復号化装置
を提供することを目的とする。また、本発明の別の目的
は、所望の高速処理を達成しながら且つ回路規模の増大
を抑止する構成の復号化装置を提供することにある。
【0045】
【課題を解決するための手段】前記目的を達成するた
め、本発明のハフマン符号復号化回路は、ハフマン符号
データ列よりハフマン符号の先頭ビットを求める先頭決
め部と、該先頭決め部の出力の先頭ビット位置から所定
ビット数を入力し第1の復号語及び符号長を出力する第
1の復号情報格納部と、前記先頭決め部の出力の互いに
異なるビット位置から予め定められたビット数をそれぞ
れ入力し復号語及び符号長をそれぞれ出力する複数の復
号情報格納部と、前記第1の復号情報格納部が出力する
第1の符号長を選択信号として前記複数の復号情報格納
部の出力のいずれか一を選択し第2の復号語及び符号長
として出力するセレクタと、を備え、該セレクタの出力
である前記第2の符号長が前記先頭決め部に供給される
ものである。
【0046】また、本発明においては、好ましくは、第
2の符号長は、第2の復号語の符号長と、セレクタの選
択信号の値(第1の復号情報格納部が出力する第1の符
号長)との和とされる。
【0047】さらに、本発明は別の視点として、複数の
復号情報格納部に復号化対象外の符号が入力された場合
には、第1の復号情報格納部の出力である第1の符号長
と同一の符号長を第2の符号長として出力すると共に、
第2の復号語が無効であることを示す制御信号を出力す
るように構成されるハフマン符号復号化回路を提供す
る。
【0048】そして、本発明においては、この制御信号
は先頭決め部に供給され、第2の復号語が無効であると
きに、先頭決め部は、第1の符号長分だけ後置されたビ
ット位置を新たな先頭ビットとして所定ビット数を出力
するものである。
【0049】また、本発明においては、第2の復号語及
び符号長を出力する複数の復号情報格納部には、先頭決
め部の出力を順次1ビット毎シフトしたビット位置を先
頭ビットとする予め定められたビット数が入力される。
【0050】
【作用】上記構成のもと、本発明のハフマン符号復号化
回路は、2復号語毎に復号化できると共に、先頭決め部
−第1の復号情報格納部から、複数の復号テーブル−セ
レクタ−先頭決め部と短い信号パスで済むため、ハフマ
ン符号復号化処理の高速動作を可能とするものである。
なお、復号情報格納部は、実施例の復号テーブルに対応
する。
【0051】そして、本発明においては、第2の復号語
の符号長と第1の復号語の符号長の和を第2の復号語を
出力する復号テーブルに予め格納しておくことにより、
先頭ビットを制御するための回路構成が簡易化されると
共に、復号化処理が高速化される。
【0052】また、本発明の別の視点によれば、第2の
復号語を出力する複数の復号情報格納部に復号語を示す
ハフマン符号の1部分しかアドレス入力されない場合に
は、符号長の和(第2の符号長に対応)として第1の復
号情報格納部の出力である第1の復号語の符号長を出力
すると共に、制御信号であるフラグ=1を出力し、先頭
決め部において、該当する先頭ビット位置から新たに所
定ビット数を出力する構成により、復号化処理を高速化
すると共に復号情報格納部の規模の縮減を達成するとい
う効果を奏する。
【0053】
【実施例】図面を参照して、本発明の実施例を以下に説
明する。
【0054】
【実施例1】図1は、本発明の第1の実施例に係るハフ
マン符号復号化回路の構成を示すブロック図である。ハ
フマン符号の最大符号語長を16ビットとする。ブロッ
ク図内のハフマン符号データ列31−0はハフマン符号
データ列32ビットを示したもので、先頭ビットを最上
位ビット31としている。
【0055】図1に示すように、本実施例は、入力され
たハフマン符号データ列からハフマン符号の先頭ビット
を求める先頭決め部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)等で構成される。
【0056】セレクタ19は、符号長が1の場合には復
号テーブル3の出力データを選択し、符号長が2の場合
には復号テーブル4の出力データを選択する(他の復号
テーブル5〜18についても同様)。
【0057】図1及び表1に示すように、復号テーブル
2には、ハフマン符号のアドレス入力に対応して、復号
語8ビットと符号長5ビットが格納されている。
【0058】また、復号テーブル3から復号テーブル1
8にはそれぞれ、ハフマン符号のアドレス入力に対応し
て、復号語8ビットと2つの復号語の符号長の和6ビッ
トが格納されている。
【0059】各復号テーブルn(3≦n≦18)に格納
される符号長の和は、復号テーブルnが復号化した復号
語の符号長と、復号テーブルnの出力が接続されるセレ
クタ19の入力ポート位置すなわち対応する選択信号の
値1〜16(すなわち復号テーブル2の符号長出力)と
を加算した値である。
【0060】なお、図1において、符号長が5ビット
幅、符号長の和が6ビット幅に設けられているのは、復
号テーブル2の出力である符号長は1〜16の値をとり
(すなわち5ビット幅)、また、符号長の和は最大32
までの値(すなわち6ビット幅)を出力することによ
る。
【0061】表1には、図1の復号テーブル(2、3、
6、13)の設定の一例が示されている。
【0062】例えば、復号語Aに対するハフマン符号が
‘0101’、復号語Bに対するハフマン符号が‘01
10101’であるものとする。
【0063】復号テーブル2は、‘0101×…’の入
力に対して復号語A、符号長4を出力し、‘01101
01×…’の入力に対して復号語B、符号長7を出力す
るように予め設定されている。
【0064】復号テーブル3には、復号語と符号長の和
が格納されており、符号長の和として、復号テーブル2
で求められる復号語の符号長が1(セレクタ19の選択
信号が1)の場合が想定され、復号テーブル3で求めら
れる復号語の符号長に1を加算した値が格納されてい
る。すなわち、復号テーブル3は、‘0101×…’が
入力された場合、復号語Aと符号長の和4+1=5を出
力するように設定されている。
【0065】また、復号テーブル6には、復号語と符号
長の和が格納されており、符号長の和として、復号テー
ブル2で求まる復号語の符号長が4の場合が想定され、
復号テーブル6で求められる復号語の符号長に4を加算
した値(=符号長+4)が設定されている。復号テーブ
ル6に、例えば‘0101×…’が入力された場合、復
号語Aと符号長の和4+4=8を出力する。
【0066】同様に、他の復号テーブルにもアドレス入
力に対応して復号語と符号長の和が格納される。
【0067】先頭決め部1の初期値は入力されたハフマ
ン符号データ列32ビットの先頭ビットとする。
【0068】以下、ハフマン符号データ列の具体例に基
づき、本実施例の動作を説明する。
【0069】仮に、ハフマン符号データ列‘01010
110101001001…’が送られてきたものとす
る。
【0070】先頭決め部1には先頭から32ビット‘0
1010110101001001…’が入力される。
先頭決め部1では、初期値は入力されたハフマン符号デ
ータ列32ビットの先頭ビットであるため、先頭ビット
から32ビット‘01010110101001001
…’を出力する。
【0071】図1に示すように、各復号テーブルのアド
レス入力には16ビットが入力される。すなわち、復号
テーブル2には、先頭ビットから16ビットの‘010
1011010100100’が入力される。
【0072】復号テーブル2は、表1に示すように、
‘0101×…’が入力された場合には復号語A、符号
長=4を出力するように設定されているため、復号語
A、符号長=4を出力する。復号テーブル2の出力であ
る符号長=4は、選択信号としてセレクタ19に送られ
る。
【0073】一方、復号テーブル3から復号テーブル1
8にも、ハフマン符号データ列がそれぞれ所定のビット
位置から16ビット入力され、各入力に対応するデータ
(復号語及び符号長の和)をセレクタ19に出力する。
【0074】例えば、復号テーブル6では先頭第5ビッ
ト目から16ビットデータ‘011010100100
1…’が入力される。復号テーブル6は、表1に示すよ
うに、‘0110101×…’が入力された場合、復号
語B、符号長の和11を出力するように設定されている
ため、復号語B、符号長の和=11を出力する。
【0075】セレクタ19では、復号テーブル2の符号
長=4が選択信号とされ、この場合、セレクタ19は、
復号テーブル6の出力データを選択し、復号語B、符号
長の和=11を出力する。
【0076】そして、符号長の和=11は先頭決め部1
に送られ、先に入力された32ビットデータ‘0101
0110101001001…’の先頭から第12ビッ
ト目を次のハフマン符号の先頭ビットに設定し、新たに
第12ビット目から32ビットデータ、すなわち‘00
1001…’を出力する。
【0077】同様な操作を繰り返すことによって、本実
施例はハフマン符号データ列を2復号語ずつ復号化す
る。
【0078】
【実施例2】次に、図2を参照して本発明の第2の実施
例について説明する。本実施例は、実施例1と比較し
て、復号化処理の高速化等処理能力の向上を達成するよ
りも、むしろ復号テーブルのサイズを小さくしたい場合
に好適である。図2は本発明の第2の実施例を示すハフ
マン符号復号化回路のブロック図である。
【0079】本実施例では、ハフマン符号の最大符号語
長を16ビットとする。ブロック図内のハフマン符号デ
ータ列15−0はハフマン符号データ列16ビットを示
したもので、先頭ビットを最上位ビットのビット15と
している。
【0080】図2に示すように、本実施例に係るハフマ
ン符号復号化回路は、ハフマン符号データ列からハフマ
ン符号の先頭ビットを求める先頭決め部20と、先頭決
め部20で求まったハフマン符号の先頭ビットから16
ビットを入力する復号テーブル21と、先頭第2ビット
目から第16ビット目までのビットデータを入力する復
号テーブル22と、以下同様にして、ハフマン符号デー
タ列の先頭第nビット目(3≦n≦16)から第16ビ
ット目までのビットデータを入力するハフマン符号デー
タを入力する復号テーブル23〜36と、復号テーブル
21の符号長出力を選択信号として復号テーブル22〜
36の出力のいずれか一を選択出力するセレクタ37か
ら構成される。
【0081】セレクタ37は、復号テーブル21の出力
の符号長が1の場合には復号テーブル22の出力データ
を選択し、符号長が2の場合には復号テーブル23の出
力データを選択し、同様にして符号長の値に基づき復号
テーブル24〜36の出力データを選択出力する。
【0082】図2及び表2に示すように、復号テーブル
21には、アドレス入力に対応して復号語8ビットと符
号長5ビットが格納されている。また、復号テーブル2
2から復号テーブル36には、アドレス入力に対応して
復号語8ビットと2復号語の符号長の和6ビット、及び
フラグ1ビットが格納されている。
【0083】各復号テーブルn(22≦n≦36)に格
納される符号長の和は、復号テーブルn(22≦n≦3
6)が復号化した復号語の符号長と、復号テーブルnの
出力が接続されるセレクタ37の入力ポート位置すなわ
ち対応する選択信号の値1〜15(復号テーブル21の
符号長出力)とを加算した値とされる。
【0084】表2には、図2における復号テーブルの設
定の一例が示されている。例えば、復号語Aに対するハ
フマン符号が‘0101’、復号語Bに対するハフマン
符号が‘0110101’、復号語Cに対するハフマン
符号が‘0111001011001’、復号語Dに対
するハフマン符号が‘1011010000’であるも
のとする。
【0085】表2に示すように、復号テーブル21は、
‘0101×…’が入力された場合、復号語A、符号長
=4を出力し、‘0110101×…’が入力された場
合、復号語B、符号長=7を出力し、‘0111001
011001×…’が入力された場合、復号語C、符号
長=13を出力し、また、‘1011010000×
…’が入力された場合、復号語D、符号長=10を出力
するように設定されている。
【0086】復号テーブル22から復号テーブル36に
は、復号語8ビットと符号長の和6ビット、フラグ1ビ
ットが以下のように設定されている。
【0087】表2に示すように、例えば、復号テーブル
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を出力する。
【0088】復号テーブル34は、‘010’,‘01
1’,‘101’が入力された場合、復号語を示すハフ
マン符号の1部分しかアドレス入力されていないため、
符号長=13、フラグ=1を出力する。
【0089】復号テーブル34において、符号長を13
と設定するのは、復号テーブル21で求められた復号語
の符号長を先頭決め部20に送出するためであり、セレ
クタ37が復号テーブル34の出力を選択するのは、復
号テーブル21で求まる復号語の符号長が13の時であ
ることによる。
【0090】このように復号テーブル22〜36におい
ては、復号語を示すハフマン符号の1部分しかアドレス
入力されない場合には、符号長の和を復号テーブル21
で求められた復号語の符号長とし、フラグ=1を出力す
るように設定される。同様に他の復号テーブルについて
も、アドレス入力に対応して復号語、符号長、フラグが
設定される。
【0091】また、先頭決め部20の初期値は入力され
たハフマン符号データ列16ビットの先頭ビットとす
る。
【0092】以下、ハフマン符号データ列の具体例に基
づき本実施例の動作を説明する。
【0093】仮に、ハフマン符号データ列‘01010
1101010111001011001101101
0000…’が送られてきたものとする。
【0094】先頭決め部20には、先頭16ビット‘0
101011010101110’が入力される。先頭
決め部20では、先頭ビットの初期値は入力されたハフ
マン符号データ列16ビットの先頭ビットであるため、
先頭から16ビット‘010101101010111
0’を出力する。
【0095】復号テーブル21には、先頭から16ビッ
トデータ‘0101011010101110’が入力
される。
【0096】復号テーブル21は、表2に示すように、
‘0101×…’が入力された場合、復号語A、符号長
=4を出力するように設定されているため、復号語A、
符号長4を出力する。復号テーブル21の出力である符
号長=4は選択信号としてセレクタ37に供給される。
【0097】一方、復号テーブル22から復号テーブル
36にも、図2に示すように、ハフマン符号データがそ
れぞれ入力され、各入力に対応するデータ(復号語及び
符号長の和)をセレクタ37に出力する。
【0098】例えば、復号テーブル25には、先頭第5
ビット目から第16ビット目の12ビットデータ‘01
1010101110’が入力される。復号テーブル2
5は、表2に示すように、‘0110101×…’が入
力された場合には、復号語B、符号長の和として11を
出力するように設定されているため、復号語B、符号長
の和=11、フラグ=0を出力する。
【0099】セレクタ37では、復号テーブル21の符
号長=4を選択信号として、この場合、復号テーブル2
5の出力データを選択し、復号語B、符号長の和=1
1、フラグ=0を出力し、符号長の和=11は先頭決め
部20に供給される。
【0100】先頭決め部20では、先に入力されたハフ
マン符号データ列16ビット‘01010110101
01110’の先頭から第12ビット目を次のハフマン
符号の先頭ビットに設定し、新しく求められた先頭から
16ビット、すなわち‘01110010110011
01’を出力する。
【0101】復号テーブル21は、表2に示すように、
‘01110001011001×…’が入力された場
合、復号語C、符号長13を出力するように設定されて
いるため、復号語C、符号長=13を出力する。符号長
=13は選択信号としてセレクタ37に供給される。
【0102】一方、復号テーブル22から復号テーブル
36にもハフマン符号データがそれぞれ入力され、各入
力に対応するデータをセレクタ37に出力する。
【0103】例えば、復号テーブル34には先頭から第
14ビット目から第16ビット目の3ビットデータ‘0
10’が入力される。復号テーブル34は、表2に示す
ように、‘010’が入力された場合、符号長13、フ
ラグ=1を出力するように設定されているため、符号長
13、フラグ=1を出力する。
【0104】セレクタ37では、復号テーブル21の符
号長13を選択信号として、この場合、復号テーブル3
4の出力を選択し、符号長13、フラグ=1を出力す
る。
【0105】フラグ=1を出力した場合における復号テ
ーブル34からの復号語データ出力の取扱については、
例えば、フラグをイネーブル信号として用いて、フラグ
=1の時にはセレクタ37から出力される復号語を無視
するように構成すればよい。
【0106】符号長=13は、先頭決め部20に供給さ
れ、先頭決め部20では、先に入力された16ビットデ
ータ‘0111001011001101’の先頭から
第14ビット目を次のハフマン符号の先頭ビットに設定
し、新しく求められた先頭から16ビットデータ‘10
11010000…’を出力する。
【0107】同様な操作を繰り返すことにより、本実施
例は、入力されたハフマン符号データ列を順次復号化す
る。
【0108】以上本発明を各種実施例に即して説明した
が、例えば、表1、表2の構成はあくまで発明の理解を
助けるためのものであり、本発明は上記態様に限定され
るものではなく、本発明の原理に準ずる各種実施態様を
含む。
【0109】
【表1】
【0110】
【表2】
【0111】
【表3】
【0112】
【表4】
【0113】
【発明の効果】以上説明したように、本発明のハフマン
符号復号化回路によれば、2復号語毎に復号化を行なう
ことができると共に、先頭決め部から復号テーブルへの
経路及び復号テーブルからセレクタを介して先頭決め部
と、信号経路が従来例と比較して短くて済み、ハフマン
符号復号化処理を高速に行うことが出来る。
【0114】本発明においては、第2の復号語の符号長
と第1の復号語の符号長の和を第2の復号語を出力する
復号テーブルに予め格納しておくことにより、先頭ビッ
トを制御するための回路構成が簡易化されると共に、復
号化処理が高速化される。
【0115】また、本発明の第2の視点によれば、第2
の復号語を出力する復号テーブルに復号語を示すハフマ
ン符号の1部分しかアドレス入力されない場合には、符
号長の和として第1の復号語の符号長を出力すると共
に、フラグ=1を出力し、先頭決め部において、該当す
る先頭ビット位置から16ビットデータを出力し、第1
の復号テーブルで復号化を行なう構成により、復号化処
理を高速化すると共に回路規模、特に復号テーブルの規
模の縮減を達成するという効果を奏する。
【0116】さらに、本発明によれば、複数の復号テー
ブルに入力されるハフマン符号データを1ビット毎順次
シフトした構成により回路構成が簡易化され且つ高速化
に資する。
【図面の簡単な説明】
【図1】本発明の第1の実施例のハフマン符号復号化回
路の構成を示すブロック図である。
【図2】本発明の第2の実施例のハフマン符号復号化回
路の構成を示すブロック図である。
【図3】従来のハフマン符号復号化回路の構成の一例を
示すブロック図である。
【図4】従来のハフマン符号復号化回路の別の構成例を
示すブロック図である。
【図5】ハフマン符号化の原理を説明する説明図であ
る。
【符号の説明】
1,20,38 先頭決め部 2 復号テーブル 3〜18 復号テーブル 19,37 セレクタ 21 復号テーブル 22〜36 復号テーブル 39 復号テーブル 40,41 先頭決め部 42,43 復号テーブル 44,45 加算器 46 ポインタ a,f,l,o ハフマン符号データ列 b,g,m,復号語 c,h,n,q,t 符号長 d,i 復号語(第2の復号語) e,j 符号長の和 k,r,u フラグ l ハフマン符号データ列 p,s 復号語

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】ハフマン符号データ列よりハフマン符号の
    先頭ビットを求める先頭決め部と、該先頭決め部の出力
    の先頭ビット位置から所定ビット数を入力し第1の復号
    語及び第1の符号長を出力する第1の復号情報格納部
    と、前記先頭決め部の出力の互いに異なるビット位置か
    ら予め定められたビット数をそれぞれ入力し復号語及び
    符号長をそれぞれ出力する複数の復号情報格納部と、前
    記第1の復号情報格納部が出力する第1の符号長を選択
    信号として前記複数の復号情報格納部の出力のいずれか
    一を選択し第2の復号語及び第2の符号長として出力す
    るセレクタと、を備え、該セレクタの出力である前記第
    2の符号長が前記先頭決め部に供給されるハフマン符号
    復号化回路。
  2. 【請求項2】前記第2の符号長が、第2の復号語の符号
    長と、前記選択信号の値(前記第1の復号情報格納部が
    出力する第1の符号長)との和である請求項1記載のハ
    フマン符号復号化回路。
  3. 【請求項3】前記複数の復号情報格納部が、復号化対象
    外の符号が入力された場合に前記第1の復号情報格納部
    が出力する第1の符号長と同一の符号長を第2の符号長
    として出力すると共に、前記第2の復号語が無効である
    ことを示す制御信号を出力するように構成された請求項
    1記載のハフマン符号復号化回路。
  4. 【請求項4】前記制御信号が前記先頭決め部に供給さ
    れ、前記第2の復号語が無効であるときに、前記先頭決
    め部は、前記第1の符号長分だけ後置されたビット位置
    を新たに先頭ビットとして所定ビット数を出力するよう
    に構成された請求項3記載のハフマン符号復号化回路。
  5. 【請求項5】前記複数の復号情報格納部には、前記先頭
    決め部の出力を順次1ビット毎シフトしたビット位置を
    先頭ビットとする予め定められたビット数が入力される
    請求項1から4のいずれか一に記載のハフマン符号復号
    化回路。
JP6064422A 1994-03-09 1994-03-09 ハフマン符号復号化回路 Expired - Fee Related JP2746109B2 (ja)

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)

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

* Cited by examiner, † Cited by third party
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 ソニー株式会社 可変長符号デコーダ
US5467088A (en) * 1992-10-13 1995-11-14 Nec Corporation Huffman code decoding circuit
US5446916A (en) * 1993-03-26 1995-08-29 Gi Corporation Variable length codeword packer
KR950010425B1 (ko) * 1993-09-11 1995-09-16 국방과학연구소 코드분류에 의한 병렬처리 가변장 부호 복호기

Also Published As

Publication number Publication date
JPH07249994A (ja) 1995-09-26
US5617089A (en) 1997-04-01
KR0163464B1 (ko) 1999-03-20

Similar Documents

Publication Publication Date Title
JP2746109B2 (ja) ハフマン符号復号化回路
EP0471518B1 (en) Data compression method and apparatus
JP3240495B2 (ja) データの可逆符号化方法および装置、並びに、伸長装置
JPH03274920A (ja) 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
KR0138971B1 (ko) 허프만 부호 복호회로
US5832037A (en) Method of compressing and expanding data
JP3189876B2 (ja) 可変長符号復号化回路
JPH07226846A (ja) 入力データストリームの処理方法及び圧縮フォーマットの生成方法
JP2922571B2 (ja) データ変換回路
JP3199292B2 (ja) ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法
JP3346626B2 (ja) データ圧縮装置
JP2715871B2 (ja) 可変長符号化方法
JP2537551B2 (ja) 可変長符号復号回路
JPH11215008A (ja) 復号回路
JP2999561B2 (ja) データ圧縮及び復元装置
JP2859850B2 (ja) 並列入力/直列出力装置および並列入力/直列出力方法
JP3229690B2 (ja) 可変長符号復号器
JP3648944B2 (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