JP3113765B2 - 可変長符号デコード回路 - Google Patents

可変長符号デコード回路

Info

Publication number
JP3113765B2
JP3113765B2 JP05250886A JP25088693A JP3113765B2 JP 3113765 B2 JP3113765 B2 JP 3113765B2 JP 05250886 A JP05250886 A JP 05250886A JP 25088693 A JP25088693 A JP 25088693A JP 3113765 B2 JP3113765 B2 JP 3113765B2
Authority
JP
Japan
Prior art keywords
code
length
variable
variable length
length code
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
JP05250886A
Other languages
English (en)
Other versions
JPH07106981A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP05250886A priority Critical patent/JP3113765B2/ja
Publication of JPH07106981A publication Critical patent/JPH07106981A/ja
Application granted granted Critical
Publication of JP3113765B2 publication Critical patent/JP3113765B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、可変長符号化して圧縮
したデータを元符号に変換する可変長符号デコード回路
に関する。近時、データ処理、画像処理又は情報通信等
の分野で取り扱われるデータ量はますます増加する傾向
にあり、転送効率の改善や記憶装置の効率的な使用とい
った点で、有効なデータ圧縮/伸張技術が求められてい
る。
【0002】
【従来の技術】M個の情報源記号(以下「元符号」と言
う){A}(A=0,1,……,M−1)の生起確率に
偏りがある場合、長さnの元符号列をn′<nの短い系
列に写像すること、すなわち圧縮することが可能であ
り、この原理を利用した以下に示すデータ圧縮技術が知
られている。
【0003】図7のデータ圧縮変換テーブルにおいて、
符号1〜符号256は256個(個数は一例)の元符号
であり、出現頻度(生起確率)に従って符号1、符号
2、……、符号256の順に並べられている。符号1の
出現頻度が最も高く、符号256が最も低い。各符号に
割り当てられた可変長符号(2進数)は、元符号毎の変
換系列であり、それぞれのビット数は、 となっている。すなわち、可変長符号のビット数は、元
符号の出現頻度の高い方から低い方へと順次に増加して
いる。
【0004】今、元符号列が[符号30,符号1,符号
7]で構成されているとき、変換後の系列を[abc]
で表わすと、aは[1111111010112 ]、b
は[02 ]、cは[11110102 ]となり、最終的
に、20ビットの長さを有する系列[11111110
1011011110102 ](16進表現ではFEB
7A16)に変換される。
【0005】従って、実際の元符号列は、はるかに多量
の符号から構成されるから、元符号列中の例えば符号1
の割合が多いほど変換後の系列長が短くなり、効率的な
データ圧縮が可能になる。図8はデータ圧縮部及び伸張
部を含むデータ処理、画像処理又は情報通信等のシステ
ム要部構成図である。71はデータ圧縮部、72はデー
タ伸張部であり、これらは、データバス73を介してホ
ストCPU(Central Processing Unit )74や大容量
記憶装置(例えばハードディスク)75に接続されると
共に、図示を略した通信制御部や各種入出力制御部に接
続されている。
【0006】データ圧縮部71は、可変長符号化回路7
1aとパック回路71bとを含み、可変長符号化回路7
1aは前述のデータ圧縮変換テーブル(図7参照)を内
部に有し、元符号を可変長符号に変換すると共に、変換
後の可変長符号の長さ情報(可変長符号のビット数;以
下「符号長情報」と言う)を出力する。パック回路71
bは全ての可変長符号を連結した系列(以下「可変長符
号列」と言う)を生成するもので、この系列は、記憶装
置75に書き込まれたり、又は、通信制御部や各種入出
力制御部を介してシステム外部に転送されたりする。
【0007】データ伸張部72は、可変長符号列を16
ビット単位(又は符号長情報で指定されたビット単位)
に分解するアンパック回路72aと、アンパック回路7
2aの出力を元符号に変換すると共に、分割ビット数を
指定するための符号長情報を再生する可変長符号デコー
ド回路72bとを含む。ここで、可変長符号デコード回
路72bは、図9に示すように、16ビットアドレスの
メモリであり、可変長符号をアドレス入力として、8ビ
ットの元符号と4ビットの符号長情報を出力するもので
ある。
【0008】図10は、可変長符号デコード回路72b
の内部に記憶されるデータ伸張変換テーブルであり、テ
ーブル容量は、16進表現で[000016]から[FF
BB 16]までのおよそ64KW(キロワード)もの大容
量である。テーブルの最下位アドレスの2進表現は[0
000000000000000 2 ]、最上位アドレス
の2進表現は[11111111101110112
であり、ビット中のxは0又は1であることを表わして
いる。例えば[0xxxxxxxxxxxxxxx2
は、[00000000000000002 ]から[0
1111111111111112 ]までのアドレスを
含むことを意味している。
【0009】今、変換対象の可変長符号列が、先のデー
タ圧縮の例で示した[111111101011011
110102 ]であったとすると、まず、この可変長符
号列の先頭からmビット(mは変換テーブルのアドレス
ビット数)を取り込む。ここでは、m=16であるか
ら、[11111110101101112 ]を取り込
む。そして、この取り込みデータによって図10の変換
テーブルを参照し、取り込みデータと一致するアドレス
[111111101011xxxx2 ]内から「符号
30」及び「符号長情報11」(但し、符号長情報の値
は4ビット表現のために実際の符号長から−1されてい
る;すなわち実際の符号長は1210)を読み出す。
【0010】次に、可変長符号列の先頭の12ビット
(符号長情報で示されたビット数)を除く16ビット
[01111010000000002 ](下位の8ビ
ットは桁合わせ用追加ビット)を取り込む。そして、こ
の取り込みデータによって図10の変換テーブルを再び
参照し、取り込みデータと一致するアドレス[0xxx
xxxxxxxxxxxx2 ]内から「符号1」及び
「符号長情報0」(実際の符号長は110)を読み出す。
【0011】最後に、残りの可変長符号列の先頭の1ビ
ット(符号長情報で示されたビット数)を除く16ビッ
ト[11110100000000002 ](下位の9
ビットは桁合わせ用追加ビット)を取り込む。そして、
この取り込みデータによって図10の変換テーブルを再
び参照し、取り込みデータと一致するアドレス[111
1010xxxxxxxxx2 ]内から「符号7」及び
「符号長情報6」(実際の符号長は710)を読み出す。
【0012】以上の操作によって、可変長符号列[11
1111101011011110102 ]を元符号列
[符号30,符号1,符号7]に再生して、データ伸張
することができる。
【0013】
【発明が解決しようとする課題】しかしながら、かかる
従来の可変長符号デコード回路にあっては、16進表現
で[000016]から[FFBB16]までのおよそ64
KWものデータ伸張変換テーブルを必要とするものであ
ったため、メモリ容量が増大してコストが嵩むといった
問題点があった。 [目的]そこで、本発明は、データ伸張変換テーブルの
規模を削減してメモリ容量を少なくし、コストの低減を
図ることを目的とする。
【0014】
【課題を解決するための手段】本発明では、上記目的を
達成するために、1〜2n ビット長の可変長符号をデコ
ードする可変長符号デコード回路であって、可変長符号
の各長さの最小の符号を符号長の順番に保持するテーブ
ル及び2m −1(但し、m=1,2,……)個の比較器
を有し、前記テーブルから1度に2m −1個の要素を読
み出し、前記各比較器で可変長符号入力との大小比較を
行うと共にその比較動作をn/m回繰り返して、 i番目のテーブル要素 ≦ 可変長符号入力 < i+1番
目のテーブル要素 という条件を満たすi番目のテーブル要素を発見するこ
とで、可変長符号入力の先頭の符号の長さを求めるよう
にしたことを特徴とする。
【0015】又は、1〜16ビット長の可変長符号をデ
コードする可変長符号デコード回路であって、可変長符
号の各長さの最小の符号を符号長の順番に保持するテー
ブル及び3、個の比較器を有し、前記テーブルから1度
に3個の要素を読み出し、前記各比較器で可変長符号入
力との大小比較を行うと共にその比較動作を2回繰り返
して、 i番目のテーブル要素 ≦ 可変長符号入力 < i+1番
目のテーブル要素 という条件を満たすi番目のテーブル要素を発見するこ
とで、可変長符号入力の先頭の符号の長さを求めるよう
にしたことを特徴とする。
【0016】又は、可変長符号をデコードする可変長符
号デコード回路であって、元符号を保持するFCテーブ
ル、可変長符号の各長さの最小の符号を符号長の順番に
保持するVCテーブル、VCテーブルに対応する符号長
を保持するVLテーブル、VCテーブルに対応するFC
テーブルのアドレスを保持するBPテーブル、3個の比
較器、シフタ、加算器及び減算器を含み、第1段階で
は、VCテーブルから3個の要素を同時に読み出して3
個の比較器で可変長符号入力との大小比較を行い、可変
長符号入力がVCテーブルの4つのグループのどれに属
するかを判別し、第2段階では、VCテーブル内の第1
段階で確定したグループの3個の要素を読出し、3個の
比較器で可変長符号入力との大小比較を行い、可変長符
号入力がVCテーブルのどの要素に対応するかを判別
し、第3段階では、可変長符号入力に対応するVCテー
ブルの要素とVLテーブルの要素とBPテーブルの要素
とを読出し、可変長符号入力の値とVCテーブルの読出
し値の差を前記減算器で求め、さらに、前記シフタでV
Lテーブルの読出し値に応じたシフトを行い、そのシフ
ト結果にBPテーブルの読出し値を前記加算器で加算し
てFCテーブルのアドレスを求め、そのアドレスのFC
テーブルの要素を読み出すことで元符号を求めると共
に、VLテーブルの読出し値から次の可変長符号の開始
位置を判断することを特徴とする。
【0017】又は、図1、図2にその原理構成図を示す
ように、M個の元符号と1対1に対応する可変長符号の
うち、他の全ての可変長符号と符号長が一致しない可変
長符号、及び、同一符号長集団の中で最小値を有する可
変長符号を昇順に配列し、且つ配列された可変長符号を
グループ単位に格納する第一テーブル1と、第一テーブ
ル1の各要素に対応する符号長情報を示すと共に、第一
テーブル1の各要素に所定の識別情報を割り当てて格納
する第二テーブル2と、入力された可変長符号列の先頭
から又は指定された符号長+1から最大符号長に相当す
る長さを切り出す切出し手段3と、切出し手段3の出力
と第一テーブル1に格納されたグループ内最小値の可変
長符号とを比較し、切出し手段3の出力と値が一致する
可変長符号又は切出し手段3の出力よりも値が小さく且
つその差が最小の可変長符号を含む第一テーブル1のグ
ループを特定する第一比較手段4と、第一比較手段4で
特定されたグループ内の全ての可変長符号を選択する第
一選択手段5と、第一比較手段4で特定されたグループ
内の全ての符号長情報を選択する第二選択手段6と、第
一比較手段4で特定されたグループ内の全ての識別情報
を選択する第三選択手段7と、切出し手段3の出力と第
一選択手段4の出力とを比較し、切出し手段3の出力と
値が一致する可変長符号又は切出し手段3の出力よりも
値が小さく且つその差が最小の可変長符号を特定する第
二比較手段8と、第二比較手段8で特定された可変長符
号を第一選択手段5の出力中から選択する第四選択手段
9と、第二比較手段8で特定された可変長符号に対応す
る1つの符号長情報を第二選択手段6の出力中から選択
する第五選択手段10と、第二比較手段8で特定された
可変長符号に対応する1つの識別情報を第三選択手段7
の出力中から選択する第六選択手段11と、切出し手段
3の出力と第四選択手段9の出力との差を演算する差演
算手段12と、差演算手段12の出力のビット長を第五
選択手段10の出力に応じて調節するビット長調節手段
13と、ビット長調節手段13の出力と第六選択手段1
1の出力との和を演算する和演算手段14と、全ての元
符号を格納する第三テーブル15とを備え、第三テーブ
ル15の元符号は、対応する可変長符号語の長さが等し
いものが連続したアドレスのメモリ領域に可変長符号の
値が小さい順に格納され、所定の情報は、第三テーブル
15で各符号長に対応するメモリ領域の最初のアドレス
を示すように決定され、第三テーブル15のアドレスは
和演算手段14により決定されることを特徴とする。
【0018】
【作用】このような構成によれば、まず、第一比較手段
4の比較結果から第一テーブル1内のグループが特定さ
れ、次いで、第二比較手段8の比較結果から1つの可変
長符号が特定され、そして、この1つの可変長符号、そ
れに関連付けられた符号長情報及び識別情報によって、
最終的に第三テーブル15内の1つの元符号が特定され
る。
【0019】ここで、第一テーブル1に格納された可変
長符号は、他の全ての可変長符号と符号長が一致しない
可変長符号及び同一符号長集団の中で最小値を有する可
変長符号のみであり、その格納数は、元符号の最大個数
(M)よりも確実に少ない。従って、64KW(M=2
56の場合)もの容量が必要であった従来例に比べて、
遥かにテーブル容量を削減できる。
【0020】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図3〜図6は本発明に係る可変長符号デコード回
路の一実施例を示す図である。図3において、20はV
Cメモリ、21はVLメモリ、22はBPメモリ、23
〜25は比較器、26はアドレス決定回路、27はRA
レジスタ、28はRBレジスタ、29はRCレジスタ、
30はRDレジスタ、31は減算器、32はシフタ、3
3は加算器、34はFCメモリ、35はホストCPU
(図示略)につながるデータバス、36は同じくホスト
CPUにつながるアドレスバスである。なお、図中に記
載した16、8又は4の数字は入出力データのビット数
を表している。
【0021】まず、4つのメモリについて説明すると、
VC(Variable Length Code)メモリ20は16W(ワ
ード)の容量を持つ4ポート(ポートA〜D)メモリで
あり、内部には後述の第一テーブルが格納されている。
VL(Variable Length )メモリ21は16Wの容量を
持つ2ポート(ポートA、B)メモリであり、内部には
後述の第二テーブルの一部分(符号長情報の部分)が格
納されている。BP(Base Pointer)メモリ22は16
Wの容量を持つ2ポート(ポートA、B)メモリであ
り、内部には後述の第二テーブルの残りの部分(識別情
報の部分)が格納されている。FC(Fixed Code)メモ
リ34は256Wの容量を持つ2ポート(ポートA、
B)メモリであり、後述の第三テーブルが格納されてい
る。
【0022】ここで、図4を参照しながら、第一、第二
及び第三テーブルの構造を説明する。図4において、第
一テーブルには、多数の可変長符号が格納されている。
但し、格納された可変長符号は、M個(ここではM=2
56)の元符号毎に規定された全ての可変長符号ではな
く、所定の条件に従って選別された一部の可変長符号で
ある。
【0023】すなわち、第一テーブル内の可変長符号
は、M個の元符号毎に規定された全ての可変長符号のう
ち、他の全ての可変長符号と符号長が一致しない可変長
符号、及び、同一符号長集団の中で最小値を有する可変
長符号だけであり、これによって、第一テーブルの容量
を16W以内に収めることができる。因みに、元符号の
数が256個(図7参照)であれば、実際には256W
の容量を必要とするが、上記選別を行うことによって、
ここで示す可変長符号例ではアドレス0〜13までの1
4Wで済ませることができる。なお、図4の第一テーブ
ルでは余った2W分(アドレス14、15)にダミーの
可変長符号(オール1)を格納している。
【0024】また、第一テーブル内の可変長符号は、値
の小さい方から大きい方へと昇順に整列(ソート)して
格納されており、例えばアドレス0には[000000
00000000002 ]が、アドレス1には[100
0000000000000 2 ]が、……、アドレス1
3には[11111110110111102 ]が格納
されている。
【0025】さらに、第一テーブル内の可変長符号は複
数グループ(ここではG0〜G3の4グループ)に分け
られており、各グループの先頭(最小アドレス)には、
そのグループ内で最小値を有する可変長符号が位置して
いる。第二テーブルには、上記第一テーブル内の可変長
符号のそれぞれにアドレス一致で関連付けられた符号長
情報及び所定の識別情報が格納されている。符号長情報
は、対応する可変長符号のビット数(1〜16ビットま
で)を表す情報であるが、1〜16ビットを4ビットの
データで表現するために実際のビット数から1を引いた
値を有している。例えば、アドレス9の可変長符号[1
1111101111000002 ]に対応する符号長
は[1110]であるがこれは実際には[1210]を意味
している。
【0026】識別情報は、次に述べる第三テーブルのア
ドレス参照情報であり、例えば、16は第三テーブルの
アドレス16を示している。第三テーブルは、256個
の元符号を出現頻度順にアドレス0〜255を付して配
列したもので、符号1の出現頻度が最も高く、符号25
6の出現頻度が最も低い。但し、出現頻度順に並べると
いうのは、本発明の必須要件ではない。第二テーブルに
登録されたアドレスと第三テーブルの対応がつけば、順
番は出現頻度順である必要はない。
【0027】第三テーブルの中で、符号1、2、3、
4、14、15、16、32、33又は34は、対応す
る可変長符号の符号長が他の全ての可変長符号と一致し
ないもの、符号5〜8、符号9〜13又は符号35〜2
56は、対応する可変長符号の符号長がそれぞれの集団
内で同一のものである。図5はアドレス決定回路26の
構成図である。このアドレス決定回路26は、3個のイ
ンバータゲート37〜39と2個の複合ゲート40、4
1を次表2の真理値表に従って論理を組んだゲート回路
42と、 ゲート回路42の2ビットの出力g0、g1を保持する
REレジスタ43及びRFレジスタ44と、これら2個
のレジスタ43、44の出力に応じてアドレスI、J及
びK(但し、Iはi0 〜i3 、Jはj0 〜j3 、Kはk
0 〜k3 の各4ビット)を発生する3個のセレクタ45
〜47とを備える。上段と中段のセレクタ45、46は
2つの入力(A、B)を選択するタイプ、下段のセレク
タ47は3つの入力(A、B、C)を選択するタイプ
で、何れのセレクタも後述するフェーズ1(第1段階)
の動作で入力Aを選択し、フェーズ2(第2段階)で入
力Bを選択し、さらに、下段のセレクタ47にあっては
フェーズ3(第3段階)で入力Cを選択する。
【0028】上段のセレクタ45の入力Aには固定値
[01002 ](410)が与えられ、中段のセレクタ4
6の入力Aには固定値[10002 ](810)が与えら
れ、下段のセレクタ47の入力Aには固定値[1100
2 ](1210)が与えられている。また、上段のセレク
タ45の入力Bには[(RE)012 ](但しREはR
Eレジスタ43の値)が入力され、中段のセレクタ46
の入力Bには[(RE)102 ]が入力され、下段のセ
レクタ47の入力Bには[(RE)112 ]が与えられ
ている。さらに、下段のセレクタ47の入力Cには
[(RE)(RF)2](但しRFはRFレジスタ44
の出力)が与えられている。
【0029】従って、このアドレス決定回路26から
は、後述のフェーズ1で、 i3 =0 i2 =1 i1 =0 i0 =0 すなわち、第一テーブルのグループG1の先頭アドレス
(410)がアドレスIとして出力され、 j3 =1 j2 =0 j1 =0 j0 =0 すなわち、第一テーブルのグループG2の先頭アドレス
(810)がアドレスJとして出力され、 k3 =1 k2 =1 k1 =0 k0 =0 すなわち、第一テーブルのグループG3の先頭アドレス
(1210)がアドレスKとして出力される。
【0030】また、後述のフェーズ2で、 i3 =(g1) i2 =(g0) i1 =0 i0 =1 すなわち、ゲート回路42の出力g1、g0で指定され
た1つのグループの先頭アドレス+1がアドレスIとし
て出力され、 j3 =(g1) j2 =(g0) j1 =1 j0 =0 すなわち、ゲート回路42の出力g1、g0で指定され
た1つのグループの先頭アドレス+2がアドレスJとし
て出力され、 k3 =(g1) k2 =(g0) k1 =1 k0 =1 すなわち、ゲート回路42の出力g1、g0で指定され
た1つのグループの先頭アドレス+3がアドレスKとし
て出力される。
【0031】さらに、後述のフェーズ3で、 k3 =(g1;フェーズ2のときの値) k2 =(g0;フェーズ2のときの値) k1 =(g1;フェーズ3の値) k0 =(g0;フェーズ3の値) すなわち、フェーズ2で特定されたグループ内の1つの
可変長符号のアドレスがアドレスKとして出力される。
【0032】次に、作用を説明する。図6は本実施例の
回路動作を説明するための流れ図であり、この動作はフ
ェーズ1、フェーズ2及びフェーズ3に分けられる。な
お、流れ図の中の矢印(←)は、右辺の式の結果を左辺
の変数(又はレジスタ)に代入するという意味であり、
また、等符号(=)は右辺の式の結果を左辺の信号名で
出力するという意味であり、さらに、VC[I、J又は
K]は、アドレスI、J又はKで指定された第一テーブ
ル内の要素を意味する。
【0033】フェーズ1の動作 このフェーズでは、まず、ステップ50で、第一テーブ
ルのグループG1、G2及びG3の先頭アドレス4、
8、12をアドレスI、J及びKとして発生する。この
動作は、前述のとおり、アドレス決定回路26で行われ
る。次いで、ステップ51〜53で、入力された16ビ
ットの可変長符号列(図では「入力」)とVC[K]、
VC[J]及びVC[I]とを比較し、その比較結果
(cp2、cp1、cp0)の組み合せに応じて、ステ
ップ54〜57で、REレジスタ43に、010、110
10又は310を代入する。
【0034】入力≧VC[K]であれば、REレジスタ
43に[112 ](310)が代入され(グループG3選
択)、VC[K]>入力≧VC[J]であれば、REレ
ジスタ43に[102 ](210)が代入され(グループ
G2選択)、VC[J]>入力≧VC[I]であれば、
REレジスタ43に[012 ](110)が代入され(グ
ループG1選択)、VC[I]>入力であれば、REレ
ジスタ43に[002](010)が代入される(グルー
プG0選択)。
【0035】すなわち、この選択動作は、入力された1
6ビットの可変長符号列と、第一テーブルのグループG
0〜G3内最小値の可変長符号([000000000
00000002 ][111100000000000
2 ]、[11111101110000002 ]及び
[11111110110111002 ])とを比較
し、値が一致する可変長符号、又は、入力された16ビ
ットの可変長符号列よりも値が小さく且つその差が最小
の可変長符号を含む第一テーブルのグループを特定する
ことに他ならない。
【0036】なお、上記ステップ51〜53における3
つの比較動作は、比較器23〜25によって同時に行わ
れる。較器23からは、入力≧VC[K]の条件を満た
したときに1となる信号cp2が出力され、比較器24
からは、入力≧VC[J]の条件を満たしたときに1と
なる信号cp1が出力され、さらに、比較器25から
は、入力≧VC[I]の条件を満たしたときに1となる
信号cp0が出力される。
【0037】例えば、入力された16ビットの可変長符
号列が、冒頭の従来例と同様に、[111111101
01101112 ]とすると、この入力系列と完全に一
致するグループ内最小値の可変長符号は1つも存在しな
いが、この入力系列よりも値が小さく且つその差が最小
となる条件に当てはまるグループ内最小値可変長符号と
しては、グループG2の[1111110111000
0002 ]が該当する。
【0038】従って、この例の場合には(cp2,cp
1,cp0)=(0,1,1)となり、上表2より(g
1,g0)=(1,0)となる結果、REレジスタ43
に、特定されたグループG2を示す[102 ](すなわ
ち210)がセットされる。フェーズ2の動作 このフェーズでは、入力された可変長符号列がフェーズ
1で特定されたグループ内のどの位置にあるかを決定す
る。すなわち、 VC[n]≦入力<VC[n+1] の条件が成立するVC[K]を確定する。
【0039】まず、ステップ58で比較のためアドレス
I、J及びKを次のように決定する。 I=RE×4+1 J=RE×4+2 K=RE×4+3 但し、REはフェーズ1のときのREレジスタ43の値
であり、RE×4はフェーズ1で特定されたグループの
先頭アドレスそのものとなる。例えば、フェーズ1でグ
ループG2が特定されていた場合には、REは210であ
り、RE×4は8 10となるから、結局、アドレスIは9
10となる。同様に、アドレスJは1010、アドレスKは
1110となり、第一テーブルのグループG2内のアドレ
ス9〜11までの3つの可変長符号VC[9]、Vc
[10]及びVC[11]が参照されることになる。こ
れらの可変長符号はステップ59〜61で入力と比較さ
れ、その比較結果(cp2、cp1、cp0)の組み合
せに応じて、ステップ62〜65で、RFレジスタ44
に、010、110、210又は310を代入する。
【0040】入力≧VC[K]であれば、RFレジスタ
44に[112 ](310)が代入され(特定グループ内
の先頭+3番目を選択)、VC[K]>入力≧VC
[J]であれば、RFレジスタ44に[102
(210)が代入され(特定グループ内の先頭+2番目を
選択)、VC[J]>入力≧VC[I]であれば、RF
レジスタ44に[012 ](110)が代入され(特定グ
ループ内の先頭+1番目を選択)、VC[I]>入力で
あれば、RFレジスタ44に[002 ](010)が代入
される(特定グループ内の先頭+0番目を選択)。
【0041】すなわち、この選択動作は、入力された1
6ビットの可変長符号列と、特定グループ内の可変長符
号(例えば、特定グループがG2の場合は[11111
101110000002 ]、[1111110111
1000002 ][1111111011010000
2 ]及び[11111110110110002 ])と
を比較し、値が一致する可変長符号、又は、入力された
16ビットの可変長符号列よりも値が小さく且つその差
が最小となる1つの可変長符号を特定することに他なら
ない。
【0042】例えば、入力された16ビットの可変長符
号列がフェーズ1と同様に[111111101011
01112 ]とすると、この入力系列と完全に一致する
グループG2内の可変長符号は1つも存在しないが、こ
の入力系列よりも値が小さく且つその差が最小となる条
件に当てはまるグループG2内の可変長符号としては、
アドレス9の[11111101111000002
が該当する。
【0043】従って、この例の場合には(cp2,cp
1,cp0)=(0,0,1)となり、上表2より(g
1,g0)=(0,1)となる結果、RFレジスタ44
に、アドレス9の可変長符号のグループ内位置(先頭+
1番目)を示す[012 ](すなわち110)がセットさ
れる。フェーズ3の動作 このフェーズでは、上記のフェーズ1、2の結果を用い
て元符号を求める。
【0044】まず、ステップ66で、フェーズ2で特定
された可変長符号のアドレスを生成する。生成式は、 K=RE×4+RF である。但し、RE×4はフェーズ1で特定されたグル
ープの先頭アドレス、RFはフェーズ2で特定された可
変長符号のグループ内位置である。例えば、フェーズ1
でグループG2が特定され、さらに、フェーズ2でグル
ープG2内の先頭+1番目の可変長符号が特定されてい
た場合には、RE×4は810、RFは110であるから、
アドレスKは910となる。
【0045】次いで、ステップ67では、このアドレス
Kに従って第一テーブル及び第二テーブルから、VC
[K]、VL[K]及びBP[K]を読み出し、VC
[K]をRBレジスタ28にセットし、VL[K]をR
Cレジスタ29にセットし、BP[K]をRDレジスタ
30にセットするとともに、入力系列をRAレジスタ2
7にセットする。
【0046】次いで、ステップ68で、第三テーブルの
アドレスを生成する。生成式は、 (RA−RB)×2RC-15 +RD 但し、RA:RAレジスタ27の値(入力系列) RB:RBレジスタ28の値(特定された可変長符号) RC:RCレジスタ29の値(符号長情報) RD:RDレジスタ30の値(識別情報) であり、この生成式は、入力系列(RA)と特定された
可変長符号(RB)との差を演算し、その差のビット長
を符号長情報(RC)に応じて調節し、且つ、ビット長
調節後の差と識別情報(RD)との和を求めることに他
ならない。
【0047】実際には、差演算は図3の減算器(差演算
手段)31で行われ、ビット長調節は同じく図3のシフ
タ(ビット長調節手段)32で行われ、和演算は同じく
図3の加算器(和演算手段)33で行われる。例えば、
入力系列(RA)がフェーズ1、2と同様に[1111
1110101101112 ](16進でFEB716
とすると、特定された可変長符号(RB)は[1111
1101111000002 ](16進でFDE016
であり、この場合の符号長情報(RC)は1110、識別
情報(RD)は1610であるから、(RA−RB)×2
RC-15 の項は、D716×2-4=D16となる。
【0048】従って、D16は10進で1310であるか
ら、 K=1310+RD=1310+1610=2910 となり、第三テーブルのアドレス29、すなわち符号3
0が読み出される。以上のフェーズ1〜3の動作は可変
長符号列の全ビットがなくなるまで繰返して行われる
が、2回目以降の動作では、可変長符号列の先頭からy
ビット(yはその前の回のRCレジスタ29の値+1)
だけ捨てた残りのうちの16ビットを新たな入力系列と
して扱う。なお、残りの可変長符号が16ビットに満た
ない場合にはダミービット(0)を入力系列の後ろに付
加する。
【0049】例えば、元々の可変長符号列が[1111
1110101101111010 2 ]である場合、先
回のRCレジスタ29の値(符号長情報)は1110であ
るから、1110+1、すなわち先頭から12ビットを捨
てた残り[01111010 2 ]のうちの16ビットを
2回目の新たな入力系列とする。ここでは、16ビット
に満たないので、8個のダミービット(0)を後ろに追
加して[01111010000000002 ]とす
る。
【0050】この入力系列によれば、まず、フェーズ1
で(cp2,cp1,cp0)=(0,0,0)が得ら
れ、前表2より(g1,g0)=(0,0)、従って、
特定グループがG0となってREレジスタ43に[00
2 ]がセットされ、次のフェーズ2で(cp2,cp
1,cp0)=(0,0,0)が得られ、前表2より
(g1,g0)=(0,0)、従って、特定可変長符号
がグループG0の先頭+0番目(アドレス0)となって
RFレジスタ44に[002 ]がセットされる。そし
て、最後のフェーズ3で第一テーブルのVC[0]と、
第二テーブルのVL[0]及びBP[0]が参照され、
RAレジスタ27、RBレジスタ28、RCレジスタ2
9及びRDレジスタ30に以下の値がセットされる。
【0051】 RA=[01111010000000002 ](16
進で7A0016) RB=[00000000000000002 ](16
進で000016) RC=010 RD=010 従って、2回目の動作における第三テーブルの参照アド
レスKは、 K=(RA−RB)×2RC-15 +RD=7A0016×2-15+0=0 となり、結局、第三テーブルから符号1が取り出され
る。
【0052】3回目の動作では、先回のRCレジスタ2
9の値(符号長情報)は010であるから、010+1、す
なわち先頭から1ビットを捨てた残り[1111010
2 ]のうちの16ビットを3回目の新たな入力系列とす
る。ここでは、16ビットに満たないので、9個のダミ
ービット(0)を後ろに追加して[111101000
00000002 ]とする。
【0053】この入力系列によれば、まず、フェーズ1
で(cp2,cp1,cp0)=(0,0,1)が得ら
れ、前表2より(g1,g0)=(0,1)、従って、
特定グループがG1となってREレジスタ43に[01
2 ]がセットされ、次のフェーズ2で(cp2,cp
1,cp0)=(0,0,0)が得られ、前表2より
(g1,g0)=(0,0)、従って、特定可変長符号
がグループG1の先頭+0番目(アドレス4)となって
RFレジスタ44に[002 ]がセットされる。そし
て、最後のフェーズ3で第一テーブルのVC[4]と、
第二テーブルのVL[4]及びBP[4]が参照され、
RAレジスタ27、RBレジスタ28、RCレジスタ2
9及びRDレジスタ30に以下の値がセットされる。
【0054】 RA=[11110100000000002 ](16
進でF40016) RB=[11110000000000002 ](16
進でF00016) RC=610 RD=410 従って、3回目の動作における第三テーブルの参照アド
レスKは、 K=(RA−RB)×2RC-15 +RD=040016×2-9 +4=6 となり、結局、第三テーブルから符号7が取り出され
る。
【0055】以上、本実施例によれば、例として挙げた
入力系列[11111110101101111010
2 ](16進表現ではFEB7A16)に対し、3回の動
作を繰り返すことによって、元符号列[符号30,符号
1,符号7]を正しく再生でき、従来例と同様のデータ
伸張機能が得られる他、テーブル容量を格段に削減でき
るという特有の効果が得られる。
【0056】すなわち、図4に示すように、第一テーブ
ルには13種類の可変長符号を格納するだけでよく、ま
た、第二テーブルにも同種類の符号長情報及び識別情報
を格納するだけでよい。これは、第一及び第二テーブル
として用いられるVCメモリ20、VLメモリ21及び
BPメモリ23の容量が16Wもあれば充分であること
を示している。なお、第三メモリとして用いられるFC
メモリ34については、全ての元符号の種類分の容量を
必要とするが、それでも高々256Wであり、これら4
つのメモリの容量を合わせても16+16+16+25
6=304Wであるから、従来例の64KWに比べて遥
かに容量を削減できる。
【0057】なお、本実施例では、比較器23〜25、
アドレス決定回路26、レジスタ27〜30、減算器3
1、シフタ32及び加算器33といった付加回路を必要
とするが、これら付加回路によるコストアップを加味し
ても、メモリのコストダウン効果の方が断然に大きいの
で、明らかに装置全体のコストダウンを図ることができ
る。
【0058】
【発明の効果】本発明によれば、以上のように構成した
ので、データ伸張変換テーブルの規模を削減してメモリ
容量を少なくし、コストの低減を図ることができる。
【図面の簡単な説明】
【図1】本発明の原理構成図(1/2)である。
【図2】本発明の原理構成図(2/2)である。
【図3】一実施例の全体構成図である。
【図4】一実施例の第一テーブル、第二テーブル及び第
三テーブルの概念図である。
【図5】一実施例のアドレス決定回路の構成図である。
【図6】一実施例の動作を示す流れ図である。
【図7】可変長符号を用いたデータ圧縮変換テーブルの
概念図である。
【図8】データ圧縮部及び伸張部を含むデータ処理、画
像処理又は情報通信等のシステム要部構成図である。
【図9】従来の可変長符号デコード回路の概念図であ
る。
【図10】従来のデータ伸張変換テーブル図である。
【符号の説明】
1:第一テーブル 2:第二テーブル 3:切出し手段 4:第一比較手段 5:第一選択手段 6:第二選択手段 7:第三選択手段 8:第二比較手段 9:第四選択手段 10:第五選択手段 11:第六選択手段 12:差演算手段 13:ビット長調節手段 14:和演算手段 15:第三テーブル

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】1〜2n ビット長の可変長符号をデコード
    する可変長符号デコード回路であって、可変長符号の各
    長さの最小の符号を符号長の順番に保持するテーブル及
    び2m −1(但し、m=1,2,……)個の比較器を有
    し、 前記テーブルから1度に2m −1個の要素を読み出し、
    前記各比較器で可変長符号入力との大小比較を行うと共
    にその比較動作をn/m回繰り返して、 i番目のテーブル要素 ≦ 可変長符号入力 < i+1番
    目のテーブル要素 という条件を満たすi番目のテーブル要素を発見するこ
    とで、可変長符号入力の先頭の符号の長さを求めるよう
    にしたことを特徴とする可変長符号デコード回路。
  2. 【請求項2】1〜16ビット長の可変長符号をデコード
    する可変長符号デコード回路であって、可変長符号の各
    長さの最小の符号を符号長の順番に保持するテーブル及
    び3、個の比較器を有し、 前記テーブルから1度に3個の要素を読み出し、前記各
    比較器で可変長符号入力との大小比較を行うと共にその
    比較動作を2回繰り返して、 i番目のテーブル要素 ≦ 可変長符号入力 < i+1番
    目のテーブル要素 という条件を満たすi番目のテーブル要素を発見するこ
    とで、可変長符号入力の先頭の符号の長さを求めるよう
    にしたことを特徴とする可変長符号デコード回路。
  3. 【請求項3】可変長符号をデコードする可変長符号デコ
    ード回路であって、元符号を保持するFCテーブル、可
    変長符号の各長さの最小の符号を符号長の順番に保持す
    るVCテーブル、VCテーブルに対応する符号長を保持
    するVLテーブル、VCテーブルに対応するFCテーブ
    ルのアドレスを保持するBPテーブル、3個の比較器、
    シフタ、加算器及び減算器を含み、 第1段階では、VCテーブルから3個の要素を同時に読
    み出して3個の比較器で可変長符号入力との大小比較を
    行い、可変長符号入力がVCテーブルの4つのグループ
    のどれに属するかを判別し、 第2段階では、VCテーブル内の第1段階で確定したグ
    ループの3個の要素を読出し、3個の比較器で可変長符
    号入力との大小比較を行い、可変長符号入力がVCテー
    ブルのどの要素に対応するかを判別し、 第3段階では、可変長符号入力に対応するVCテーブル
    の要素とVLテーブルの要素とBPテーブルの要素とを
    読出し、可変長符号入力の値とVCテーブルの読出し値
    の差を前記減算器で求め、さらに、前記シフタでVLテ
    ーブルの読出し値に応じたシフトを行い、そのシフト結
    果にBPテーブルの読出し値を前記加算器で加算してF
    Cテーブルのアドレスを求め、そのアドレスのFCテー
    ブルの要素を読み出すことで元符号を求めると共に、V
    Lテーブルの読出し値から次の可変長符号の開始位置を
    判断することを特徴とする可変長符号デコード回路。
  4. 【請求項4】M個の元符号と1対1に対応する可変長符
    号のうち、他の全ての可変長符号と符号長が一致しない
    可変長符号、及び、同一符号長集団の中で最小値を有す
    る可変長符号を昇順に配列し、且つ配列された可変長符
    号をグループ単位に格納する第一テーブル(1)と、 第一テーブル(1)の各要素に対応する符号長情報を示
    すと共に、第一テーブル(1)の各要素に所定の識別情
    報を割り当てて格納する第二テーブル(2)と、 入力された可変長符号列の先頭から又は指定された符号
    長+1から最大符号長に相当する長さを切り出す切出し
    手段(3)と、 切出し手段(3)の出力と第一テーブル(1)に格納さ
    れたグループ内最小値の可変長符号とを比較し、切出し
    手段(3)の出力と値が一致する可変長符号又は切出し
    手段(3)の出力よりも値が小さく且つその差が最小の
    可変長符号を含む第一テーブル(1)のグループを特定
    する第一比較手段(4)と、 第一比較手段(4)で特定されたグループ内の全ての可
    変長符号を選択する第一選択手段(5)と、 第一比較手段(4)で特定されたグループ内の全ての符
    号長情報を選択する第二選択手段(6)と、 第一比較手段(4)で特定されたグループ内の全ての識
    別情報を選択する第三選択手段(7)と、 切出し手段(3)の出力と第一選択手段(4)の出力と
    を比較し、切出し手段(3)の出力と値が一致する可変
    長符号又は切出し手段(3)の出力よりも値が小さく且
    つその差が最小の可変長符号を特定する第二比較手段
    (8)と、 第二比較手段(8)で特定された可変長符号を第一選択
    手段(5)の出力中から選択する第四選択手段(9)
    と、 第二比較手段(8)で特定された可変長符号に対応する
    1つの符号長情報を第二選択手段(6)の出力中から選
    択する第五選択手段(10)と、 第二比較手段(8)で特定された可変長符号に対応する
    1つの識別情報を第三選択手段(7)の出力中から選択
    する第六選択手段(11)と、 切出し手段(3)の出力と第四選択手段(9)の出力と
    の差を演算する差演算手段(12)と、 差演算手段(12)の出力のビット長を第五選択手段
    (10)の出力に応じて調節するビット長調節手段(1
    3)と、 ビット長調節手段(13)の出力と第六選択手段(1
    1)の出力との和を演算する和演算手段(14)と、 全ての元符号を格納する第三テーブル(15)とを備
    え、 前記第三テーブル(15)の元符号は、対応する可変長
    符号語の長さが等しいものが連続したアドレスのメモリ
    領域に可変長符号の値が小さい順に格納され、 前記所定の情報は、第三テーブル(15)で各符号長に
    対応するメモリ領域の最初のアドレスを示すように決定
    され、第三テーブル(15)のアドレスは和演算手段
    (14)により決定されることを特徴とする可変長符号
    デコード回路。
JP05250886A 1993-10-07 1993-10-07 可変長符号デコード回路 Expired - Fee Related JP3113765B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05250886A JP3113765B2 (ja) 1993-10-07 1993-10-07 可変長符号デコード回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05250886A JP3113765B2 (ja) 1993-10-07 1993-10-07 可変長符号デコード回路

Publications (2)

Publication Number Publication Date
JPH07106981A JPH07106981A (ja) 1995-04-21
JP3113765B2 true JP3113765B2 (ja) 2000-12-04

Family

ID=17214489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05250886A Expired - Fee Related JP3113765B2 (ja) 1993-10-07 1993-10-07 可変長符号デコード回路

Country Status (1)

Country Link
JP (1) JP3113765B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4758494B2 (ja) 2009-04-21 2011-08-31 インターナショナル・ビジネス・マシーンズ・コーポレーション ビット長を符号に変換する回路及び方法

Also Published As

Publication number Publication date
JPH07106981A (ja) 1995-04-21

Similar Documents

Publication Publication Date Title
US3675211A (en) Data compaction using modified variable-length coding
US6876774B2 (en) Method and apparatus for compressing data string
US5371499A (en) Data compression using hashing
US5357250A (en) Adaptive computation of symbol probabilities in n-ary strings
US6646577B2 (en) Method of performing Huffman decoding
JP2534465B2 (ja) デ―タ圧縮装置および方法
US5150119A (en) Data compression method and apparatus
EP0546863A2 (en) Data compression apparatus
JPH0879092A (ja) データを圧縮及び圧縮解除するための方法及び装置
US5617089A (en) Huffman code decoding circuit
CN1766830B (zh) 基于处理器字长的数的二进制表示
JPH1132328A (ja) 多値画像データにおけるデータ圧縮方法、データ圧縮装置および記録媒体
JP3113765B2 (ja) 可変長符号デコード回路
US7256715B1 (en) Data compression using dummy codes
JPH03204234A (ja) 圧縮データ復元方法
JPH0563582A (ja) 辞書編集的に符号化/復号化する方法と装置
US6778107B2 (en) Method and apparatus for huffman decoding technique
JP2003273746A (ja) 可変長符号復号装置
JP2537551B2 (ja) 可変長符号復号回路
JPH07120958B2 (ja) 木探索ベクトル量子化器
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JPH03262331A (ja) データ圧縮方法およびデータ圧縮装置
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JP2842094B2 (ja) ハフマン復号回路
JPS60119136A (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: 20000912

LAPS Cancellation because of no payment of annual fees