JPH09284142A - 可変長復号化装置 - Google Patents

可変長復号化装置

Info

Publication number
JPH09284142A
JPH09284142A JP8086728A JP8672896A JPH09284142A JP H09284142 A JPH09284142 A JP H09284142A JP 8086728 A JP8086728 A JP 8086728A JP 8672896 A JP8672896 A JP 8672896A JP H09284142 A JPH09284142 A JP H09284142A
Authority
JP
Japan
Prior art keywords
bits
length
code data
decoded symbol
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.)
Granted
Application number
JP8086728A
Other languages
English (en)
Other versions
JP3371677B2 (ja
Inventor
Kenichi Kawachi
賢一 河内
Taro Yokose
太郎 横瀬
Yutaka Koshi
裕 越
Takayoshi Hashimoto
栄利 橋本
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP08672896A priority Critical patent/JP3371677B2/ja
Priority to US08/717,945 priority patent/US5784012A/en
Publication of JPH09284142A publication Critical patent/JPH09284142A/ja
Application granted granted Critical
Publication of JP3371677B2 publication Critical patent/JP3371677B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 1サイクルに1符号語以上を復号することが
可能な可変長復号化装置を提供することを目的とする。 【解決手段】 符号データ生成手段100は、可変長符
号データ1にシフト処理を施し、最長符号語のビット数
からなる符号データ101を最長符号語のビット数個分
出力する。復号シンボル発生手段200は、符号データ
101の各々に対して復号シンボル201と符号語長2
02とを出力する。復号シンボル選択手段300は、復
号シンボル201と符号語長202との中から、選択信
号302により選択された所望の復号シンボルである選
択復号シンボル301を出力する。また、選択された符
号語長を用いて新たな選択信号302を生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は可変長復号化装置に
おいて、特に可変長な符号語より成る可変長符号データ
を復号化する可変長復号化装置に関する。
【0002】
【従来の技術】一般に、発生頻度に偏りのある時系列信
号を復号化して圧縮符号化を実現する場合に、発生頻度
の高い信号に短い符号を与え、発生頻度の低い信号に長
い符号を与えるという不等長符号が用いられている。こ
のような符号化をエントロピー符号化と呼んでいる。ま
た、エントロピー符号としては特にハフマン符号が、音
声信号や画像信号の符号化など多岐に渡って応用されて
いる。
【0003】図16は、エントロピー符号化の可変長符
号テーブルを表す図である。表1aに示すように、発生
頻度によりシンボルa1〜a7にそれぞれ不等長符号が
割当てられている。
【0004】図17は、ハフマンツリーによる状態遷移
を表す図である。黒丸印S1〜S6は、解読手順での初
期状態S1及び中間状態S2〜S6を示す節点で構成さ
れ、(シンボル数−1)個存在する。そして、解読を開
始する場合は、S1からスタートし、解読における最初
の符号が0ならば0の枝をたどりS2の状態に遷移し、
1ならば1の枝をたどりS4の状態に遷移する。このよ
うな遷移を符号毎に繰り返し行い、シンボルa1〜a7
にたどり着けば、解読終了となる。
【0005】このようにハフマンツリーによる状態遷移
は、符号を上から順に1ビットずつたどることにより、
解読をすすめる手順を与えている。よって、ハフマンツ
リーを1ビットずつたどり復号する方法では、1サイク
ル毎に1ビットしか処理することができない。そこで、
高速に復号処理を行うために、符号と符号長とを並列に
解読しながら可変長符号を一度に処理する方法が考えら
れている。この方法として例えば、Decompact
ion(IBM Technical Disclos
ure Bulletin Vol.26,No.9,
pp.4794−4797,Feburuary,19
84)によって提案されているものがある。これは1復
号化サイクルで2以上の符号語を復号化するものであ
る。
【0006】図18は、上記に該当する可変長復号化装
置の構成を表すブロック図である。入力バッファ20
は、2つのラッチ21、22より構成され、圧縮データ
1bを格納する。各ラッチ21、22のビット数は、最
長符号語(例えばpビット)に等しくなっている。バレ
ルシフタ30は、最長符号語の2倍のビット数(例えば
2pビット)から成り、符号語長用PLA50より出力
される符号語長信号51により、入力バッファ20のデ
ータをバレルシフタ30を通じシフトする。
【0007】そして、復号化用PLA40は、バレルシ
フタ30から出力されたpビットを解読し、復号化した
シンボル41を出力する。符号語長用PLA50は、復
号化用PLA40と同様に、バレルシフタ30から出力
されたpビットを解読し、復号化する符号語の長さを決
定し出力する。ここで、復号化用PLA40は、ある特
定の短い符号が2つ以上連続するような場合、1サイク
ルで一度に復号を行っている。
【0008】
【発明が解決しようとする課題】しかし、上記のような
従来技術では、符号語長用PLA50とバレルシフタ3
0によってループが形成されているため、動作周波数が
高く(例えば、70MHz以上)なると、高速に復号す
ることができなくなる。つまり、動作周波数が高くなる
と、1サイクルで符号語長用PLA50の処理とバレル
シフタ30の処理の両方を行っていたものが、符号語長
用PLA50の処理で1サイクル、バレルシフタ30の
処理で1サイクルそれぞれ必要となり、ループ処理に2
サイクルかかるようになる。このため動作周波数が高く
なると、2サイクルに1符号語しか復号できなくなり性
能が低下するという問題があった。
【0009】本発明は、上記の様な問題点について鑑み
てなされたものであり、動作周波数が高い場合でも、1
サイクル毎に1符号語以上を復号することが可能な可変
長復号化装置を提供することを目的とする。
【0010】また、本発明の他の目的は、全体のハード
量の少ない可変長復号化装置を提供することにある。
【0011】
【課題を解決するための手段】本発明では上記課題を解
決するために、可変長な符号語より成る可変長符号デー
タを復号化する可変長復号化装置において、前記可変長
符号データを入力とし、最長符号語の少なくとも2倍の
ビット数からなり、それぞれ決められた数だけシフト処
理を行うバレルシフタが、少なくとも前記最長符号語の
ビット数個分存在し、それぞれの前記バレルシフタが前
記最長符号語のビット数からなる符号データを出力する
符号データ生成手段と、前記符号データの各々に対し復
号シンボルと符号語長とを出力する復号シンボル発生手
段と、前記復号シンボルと前記符号語長との中から選択
信号により選択された選択復号シンボルを出力し、前記
選択信号により選択された前記符号語長を用いて新たな
選択信号を生成する復号シンボル選択手段とを有するこ
とを特徴とする可変長復号化装置が提供される。
【0012】ここで、符号データ生成手段は、可変長符
号データにシフト処理を施し、最長符号語のビット数か
らなる符号データを最長符号語のビット数個分出力す
る。復号シンボル発生手段は、符号データの各々に対し
復号シンボルと符号語長とを出力する。復号シンボル選
択手段は、復号シンボルと符号語長との中から選択信号
により所望の復号シンボルと符号語長とを選択し、選択
された復号シンボルを出力し、また選択された符号語長
を用いて新たに選択信号を生成する。
【0013】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。図1は、可変長復号化装置の原理図であ
る。可変長復号化装置は、可変長符号データ1を入力と
して、最長符号語のビット数からなる符号データ101
を出力する符号データ生成手段100と、復号シンボル
201と符号語長202とを出力する復号シンボル発生
手段200と、選択信号302により選択復号シンボル
301を出力する復号シンボル選択手段300とから構
成される。
【0014】符号データ生成手段100は、シンボルを
符号化した可変長符号データ1を入力として、最長符号
語のビット数からなる符号データ101を最長符号語の
ビット数個分出力する。
【0015】ここで、最長符号語とはシンボルに割り当
てられた符号語の中で一番ビット数の多いものをいう。
例えば、図16ではa5、a6、a7に対応する110
0、1101、1111のことである。よって、最長符
号語のビット数は4ビットとなる。
【0016】復号シンボル発生手段200は、符号デー
タ101を入力とし、各々の符号データに対し復号シン
ボル201と符号語長202とを出力する。復号シンボ
ル選択手段300は、選択信号302により復号シンボ
ル201と符号語長202との中から所望の復号シンボ
ルと符号語長を1つ選択する。そして、選択された復号
シンボルとして選択復号シンボル301を出力し、選択
された符号語長を用いて新たな選択信号302を生成す
る。
【0017】次に、符号データ生成手段について詳しく
説明する。図2は、符号データ生成手段のブロック図で
ある。符号データ生成手段100は、符号データ整列手
段110とバレルシフタ120とから構成される。
【0018】符号データ整列手段110は、可変長符号
データ1(mビットとする。)を入力とし、最長符号語
(pビットとする。)の2倍のビット数(2pビット)
の符号データ101aを出力する。
【0019】バレルシフタ120は、最長符号語のビッ
ト数個(p個)からなるバレルシフタ0、バレルシフタ
1、バレルシフタ2、・・・、バレルシフタp−1で構
成される。そして、符号データ101aを入力とし、各
々のバレルシフタがそれぞれ決められた数のシフト処理
を行い、最長符号語のビット数個だけ符号データ101
をそれぞれ出力する。例えばバレルシフタ0は0ビッ
ト、バレルシフタ1は1ビット、バレルシフタ2は2ビ
ット、・・・、バレルシフタp−1は(p−1)ビット
のシフト処理を行い、それぞれの上位pビットの符号デ
ータ101を出力する。
【0020】図3は、符号データ整列手段の内部ブロッ
ク図である。符号データ整列手段110は、符号データ
を出力する際に上位pビットを構成する上位レジスタ1
11と、下位pビットを構成する下位レジスタ112と
で構成される。
【0021】上位レジスタ111は、最長符号語のビッ
ト数(pビット)からなり、最長符号語の2倍のビット
数(2pビット)の符号データ101aを出力する際に
上位pビットを構成する。また、下位レジスタ112
は、上位レジスタ111と同様に最長符号語のビット数
(pビット)からなり、最長符号語の2倍のビット数
(2pビット)の符号データ101aを出力する際に下
位pビットを構成する。
【0022】次に、符号データ整列手段110の動作に
ついて詳しく説明する。まずmビットの可変長符号デー
タ1が入力されると下位レジスタ112の下位mビット
に保持される。そして、次のmビットの可変長符号デー
タ1が入力されると、すでに下位レジスタ112に保持
されている符号データは左にmビットシフトされ、新し
い可変長符号データが下位レジスタ112の下位mビッ
トに保持される。これを下位レジスタ112が満杯にな
るまで繰り返す。
【0023】さらに、下位レジスタ112が満杯になる
と、上位レジスタ111にデータが保持されている場合
は、上位レジスタ111のデータを上位pビット、下位
レジスタ112のデータを下位pビットとする2pビッ
トの符号データ101aを出力する。その後、下位レジ
スタ112の内容を上位レジスタ111に移し、下位レ
ジスタ112は空き状態となる。
【0024】一方、上位レジスタ111にデータが保持
されていない場合は、そのまま下位レジスタ112の内
容を上位レジスタ111に移し、下位レジスタ112は
空き状態となる。同様にしてmビットの可変長符号デー
タ1が入力されると下位レジスタ112の下位mビット
に保持され、以降これら一連の動作の繰り返しとなる。
【0025】次に、バレルシフタの動作について詳しく
説明する。図4は、バレルシフタで行われるシフト処理
の様子を示す図である。バレルシフタ0のデータD0は
符号データ整列手段110が出力する値で、MSBから
LSBに向かってd0、d1、d2、・・・、dp−
1、・・・から成る2pビットのビット列とする。ま
た、バレルシフタnはバレルシフタ0の符号データD0
をnビット左シフトするものとする。つまりバレルシフ
タ1はバレルシフタ0の符号データD0を1ビット左シ
フト、バレルシフタ2はバレルシフタ0の符号データD
0を2ビット左シフトをそれぞれ実行する。
【0026】これによりバレルシフタ0の符号データD
0に対し、バレルシフタ1の符号データD1は、d1、
d2、・・・、dp−1、・・・から成る2pビットの
ビット列となる。同様にバレルシフタp−1の符号デー
タDp−1は、dp−1、・・・から成る2pビットの
ビット列になる。
【0027】つまり、2pビットの符号データD0と、
D0に対して1ビットずつ順に左シフトされた(p−
1)個の符号データとの合わせてp個の符号データが生
成されることになる。そしてバレルシフタ0、バレルシ
フタ1、バレルシフタ2、・・・、バレルシフタp−1
は、それぞれ2pビットのデータD0、D1、D2、・
・・、Dp−1の上位pビットを出力する。
【0028】ここで最長符号語のビット数個分のバレル
シフタを用いているので、上記p個の符号データに少な
くとも1つの可変長符号が含まれることになる。また符
号データ整列手段110から出力される2pビットの符
号データは、符号データをpビットずつ左シフトしたも
のになっている。よって、バレルシフタp−1の符号デ
ータDp−1を1ビット左シフトしたデータは、次に符
号データ整列手段110が出力した符号データに等しい
ものとなっている。
【0029】次に、復号シンボル発生手段について詳し
く説明する。図5は、復号シンボル発生手段の構成を示
す図である。復号シンボル発生手段200は、p個から
なる復号メモリ0〜p−1で構成される。復号メモリ0
〜p−1は符号データ生成手段100から出力されるp
ビットの符号データ101を入力とし、それに対応する
復号シンボルと符号語長(合計dビットとする。)を出
力する。
【0030】復号シンボル発生手段200は、復号メモ
リをp個並列に並べた構成になっていて、p個の異なる
符号データD0〜Dp−1に対してそれぞれ復号シンボ
ルと符号語長を出力する構成になっている。
【0031】図6は復号メモリ内に格納されているデー
タ構成を表す図である。pビットの符号データ101は
アドレス200bを表し、データはdビットで上位sビ
ットが復号シンボル、下位hビットが符号語長を表して
いる。よって、この場合の復号シンボル発生手段200
のメモリ容量は、(2p×d)ビットとなる。
【0032】次に、復号シンボル選択手段について詳し
く説明する。図7は、復号シンボル選択手段のブロック
図である。復号シンボル選択手段300は、選択器31
1と加算器312と、ラッチ313とで構成される。選
択器311は、復号シンボル発生手段200より出力さ
れるそれぞれの復号シンボル201と符号語長202と
からなるp個のdビットのデータの中から、選択信号3
02により所望の復号シンボルと符号語長とを1つ選択
する。そして選択された信号311aは、選択復号シン
ボル301(sビット)と選択符号語長303(hビッ
ト)とからなり、選択符号語長303(hビット)は加
算器312に入力される。加算器312は、選択符号語
長303と選択信号302との加算を行う。ラッチ31
3は、加算器312の出力312aを保持し、選択器3
11への選択信号302を出力する。
【0033】次に、復号シンボル選択手段300を中心
に具体的な数字を用いてさらに詳しく説明する。まず、
可変長符号データ1は、3ビット、6ビット、15ビッ
ト、14ビット、2ビット、・・・とから成るデータ列
とし、それに対応する復号シンボルを、a1、a2、a
3、a4、a5、・・・とする。ここで可変長符号デー
タ1の最長符号語のビット数が16ビットとする。よっ
て、可変長符号データ生成手段100を構成するバレル
シフタの数は16となる。つまりバレルシフタはバレル
シフタ0からバレルシフタ15まで16個あり、選択器
311はそれぞれ復号シンボルと符号語長からなる16
個のデータの中から1個の選択復号シンボル301と選
択符号語長303とを選択することになる。
【0034】例えば、選択信号302が0の場合はバレ
ルシフタ0が出力する符号データに対応する復号シンボ
ルと符号語長とを、・・・、選択信号302が15の場
合はバレルシフタ15が出力する符号データに対応する
復号シンボルと符号語長とを、それぞれ選択することに
なる。
【0035】図8に符号データ生成手段100が出力す
る符号データ101を示す。T1,T2,T3はバレル
シフト処理を行うサイクルを表し、データDx−yは、
サイクルTyにおけるバレルシフタxの出力値を表す。
例えば、データD2−1はサイクルT1におけるバレル
シフタ2の出力値を表す。図4で説明したように、Dx
−yはサイクルTyにおいてD0−yをxビット左にシ
フトしたデータとなっているが、D0−(y+1)はD
15−yを1ビット左にシフトしたデータとなってい
る。例えばD0−2はD15−1を1ビット左にシフト
したデータとなっていて、D0−3はD15−2を1ビ
ット左にシフトしたデータとなっている。
【0036】つまり、D0−1を基準に考えると、D0
−2はD0−1を16ビット左にシフトしたデータとな
っていて、D0−3はD0−1を32ビット左にシフト
したデータとなっている。
【0037】図9に可変長符号データの例を示す。3ビ
ット、6ビット、15ビット、14ビット、2ビット、
・・・とから成る可変長符号データをそれぞれA、B、
C、D、E、・・・と表す。D3−1はD0−1を3ビ
ット、D9−1はD0−1を9ビット、D8−2はD0
−2を8ビット(D0−1を24ビット)、D6−3は
D0−3を6ビット(D0−1を38ビット)、それぞ
れ左シフトしたデータになっている。また、可変長符号
データB、C、D、Eの先頭ビットがMSBとなってい
る。さらに図では可変長符号データを実線と点線で表し
ているが、実線の部分が復号シンボル発生手段200に
出力される符号データ(今の例では16ビット)を表し
ている。また可変長符号データA、B、C、D、E、・
・・に対応する復号シンボルをa1、a2、a3、a
4、a5、・・・とする。
【0038】図10は、可変長復号化装置の動作を説明
するタイミングチャートである。クロック10は本発明
の可変長復号化装置を動作させるシステムクロックであ
る。選択器出力311aは選択器311から出力される
復号シンボル(a1、a2、a3、a4、a5)と符号
語長(3、6、15、14、2)である。加算器出力3
12aは加算器312が行う加算結果、選択信号302
はラッチ313から出力される信号を表している。
【0039】復号作業に入る前に可変長復号化装置は初
期化され、選択信号302が0となる。初期化が終わっ
たら、可変長符号データ1が符号データ生成手段100
に入力され符号データD0−1、D1−1、・・・、D
15−1が復号シンボル発生手段200に出力される。 〔C0サイクル〕復号シンボル発生手段200は、符号
データD0−1、D1−1、・・・、D15−1に対応
する選択器出力311aである復号シンボルと符号語長
とを復号シンボル選択手段300に出力する。 〔C1サイクル〕選択信号302が0なので、選択器3
11は16個の復号シンボルと符号語長の中から符号デ
ータD0−1に対応する復号シンボル(a1)と符号語
長(3)を選択する。符号語長の値3は加算器312に
入力され選択信号302の値0と加算される(3+0=
3)。そして加算結果はラッチ313に入力され選択信
号302として3が出力される。 〔C2サイクル〕C1サイクルでは、選択信号302が
3であるので選択器311は16個の復号シンボルと符
号語長の中から符号データD3−1に対応する復号シン
ボル(a2)と符号語長(6)とを選択する。同様にし
て、符号語長の値6は加算器312に入力され、選択信
号302の値3と加算される(6+3=9)。そして加
算結果はラッチ313に入力され、選択信号302とし
て9が出力される。 〔C3サイクル〕C2サイクルでは、選択信号302が
9であるので、選択器311は16個の復号シンボルと
符号語長の中からD9−1に対応する復号シンボル(a
3)と符号語長(15)を選択する。符号語長の値15
は加算器312に入力され、選択信号302の値9と加
算される。この場合15+9=24≧16なので、符号
データD0−1、D1−1、・・・、D15−1に対応
する復号シンボルと符号語長との中には該当する復号シ
ンボルと符号語長は存在しない。該当する復号シンボル
と符号語長とは、符号データD0−2、D1−2、・・
・、D15−2に対応する復号シンボルと符号語長の中
にある。よって、24ー16=8を加算器312は出力
し、選択信号302として8がラッチ313より出力さ
れる。 〔C4サイクル〕C3サイクルでは、選択器311は符
号データD0−2、D1−2、・・・、D15−2に対
応する復号シンボルと符号語長との中からD8−2に対
応する復号シンボル(a4)と符号語長(14)を選択
する。加算器312の演算14+8=22≧16より、
加算器312は22ー16=6を出力する。そして、選
択信号302として6がラッチ313より出力される。 〔C5サイクル〕C4サイクルでは、対象となる符号デ
ータはD0−3、D1−3、・・・、D15−3にな
り、選択信号302の値6により符号データD0−3、
D1−3、・・・、D15−3に対応する復号シンボル
と符号語長との中からD6−3に対応する復号シンボル
(a5)と符号語長(2)とが選択される。また、符号
語長の値2は加算器312に入力され、選択信号302
の値6と加算される(2+6=8)。加算結果はラッチ
313に入力され、選択信号302として8が出力され
る。以下同様の繰り返しとなる。
【0040】次に、本発明の第2の実施の形態について
説明する。図11は、第2の実施の形態の可変長復号化
装置の原理図である。可変長復号化装置は、符号データ
生成部100aと、復号シンボル発生手段200aと、
バッファ400と、復号シンボル選択手段300aとか
ら構成される。
【0041】第1の実施の形態による可変長復号化装置
の構成と異なるのは、復号シンボル発生手段200aと
復号シンボル選択手段300aとの間にバッファ400
を入れたことである。このバッファ400を入れる意味
について説明する。第1の実施の形態では、例えば最長
符号語が16ビットの場合、バレルシフタの数を16個
にした。これは1回のバレルシフト処理で得られる16
個の符号データの中に、少なくとも1つの所望の符号デ
ータが存在するようにするためである。
【0042】前述したように、ハフマン符号では発生頻
度の高い信号に短い符号を与え、発生頻度の低い信号に
長い符号を与えるという不等長符号を用いている。これ
は1回のバレルシフト処理で得られる16個の符号デー
タの中にいくつかの符号データが存在する確率が高いこ
とを表している。つまり1回のバレルシフト処理で得ら
れる16個の符号データに対応する復号シンボルと符号
語長とを復号シンボル選択手段300aが何回もアクセ
スする確率が高くなるということである。
【0043】例えば図8、図9、図10を用いて説明し
た第1の実施の形態では、T1サイクルで実行したバレ
ルシフト処理の結果を復号シンボル選択手段300aが
3回使用している(C0、C1、C2サイクルでそれぞ
れ(a1、3)、(a2、6)、(a3、15))。つ
まり復号シンボル選択手段300は毎サイクル処理を行
うのに対し、符号データ生成手段100のバレルシフタ
は毎サイクル処理を行わなくてもよい場合がある。
【0044】このように符号データ生成手段100で行
うバレルシフト処理と復号シンボル選択手段300とで
行う処理とでは処理頻度が異なる。この処理頻度の違い
を吸収するために復号シンボル発生手段200aと復号
シンボル選択手段300aとの間にバッファ400を入
れている。これにより、符号データ生成手段100aを
構成するバレルシフタの個数を最長符号語のビット数個
よりも少なくすることが可能となる。
【0045】次に、第2の実施の形態について具体的な
数字を用いてさらに詳しく説明する。可変長符号データ
1は、3ビット、6ビット、15ビット、14ビット、
2ビット、・・・とから成るデータ列とし、それに対応
する復号シンボルは、a1、a2、a3、a4、a5、
・・・とする。また、可変長符号データの最長符号語は
16ビットとする。さらに、符号データ生成手段100
aを構成するバレルシフタの数を最長符号語の半分の8
とする。この場合、バレルシフタはバレルシフタ0から
バレルシフタ7まで8個となる。また、復号シンボル発
生手段200aは8個の符号データ102に対応する復
号シンボル201aと符号語長202aとを出力する。
【0046】そして、バッファ400の出力後の復号シ
ンボル201bと符号語長202bとは、復号シンボル
選択手段300aに入力され、8個の復号シンボルと符
号語長の中から所望の選択復号シンボル301aと符号
語長とが1個選択されることになる。
【0047】図12に最長符号語の半分のビット数ずつ
シフトした符号データを出力する符号データ整列手段1
10aの構成を示す。最上位レジスタ111a、上位レ
ジスタ111b、下位レジスタ112b、最下位レジス
タ112aはそれぞれ最長符号語の半分のビット数(例
えばp/2ビット、今の場合8ビット)からなるレジス
タである。最長符号語の2倍のビット数(2pビット)
の符号データ101bを出力する際に、最上位レジスタ
111aは最上位pビットを構成する。すなわち、MS
Bを(2p−1)ビット、LSBを0ビットとした場
合、(2p−1)ビットから(3p/2)ビットを構成
する。
【0048】また、上位レジスタ111bは上位pビッ
トとして(3p/2−1)ビットからpビットを構成
し、下位レジスタ112bは下位pビットとして(p−
1)ビットからp/2ビットを構成する。さらに、最下
位レジスタ112aは最下位pビットとして(p/2−
1)ビットから0ビットを構成する。
【0049】次に、符号データ整列手段器110aの動
作について説明する。まずmビットの可変長符号データ
1が入力されると最下位レジスタ112aの下位mビッ
トに保持される。次にmビットの可変長符号データ1が
入力されると、既に最下位レジスタ112aに保持され
ている符号データは左にmビットシフトされ、新しい可
変長符号データが最下位レジスタ112aの下位mビッ
トに保持される。これを最下位レジスタ112aが満杯
になるまで繰り返す。
【0050】最下位レジスタ112aが満杯になると、
最上位レジスタ111aにデータが保持されている場合
は、最上位レジスタ111aのデータを最上位p/2ビ
ット、上位レジスタ111bのデータを上位p/2ビッ
ト、下位レジスタ112bのデータを下位p/2ビッ
ト、最下位レジスタ112aのデータを最下位p/2ビ
ットとする2pビットの符号データ101bが出力され
る。そして、最下位レジスタ112aの内容を下位レジ
スタ112bに、下位レジスタ112bの内容を上位レ
ジスタ111bに、上位レジスタ111bの内容を最上
位レジスタ111aにそれぞれ移して最下位レジスタ1
12aは空き状態となる。
【0051】また、最上位レジスタ111aにデータが
保持されていない場合は、2pビットの符号データ10
1bを出力せず、そのまま最下位レジスタ112aの内
容を下位レジスタ112bに、下位レジスタ112bの
内容を上位レジスタ111bに、上位レジスタ111b
の内容を最上位レジスタ111aにそれぞれ移して最下
位レジスタ112aは空き状態となる。
【0052】同様にしてmビットの可変長符号データ1
が入力されると最下位レジスタ112aの下位mビット
に保持され、以降これら一連の動作の繰り返しとなる。
これらの符号データ生成機構により、符号データ整列手
段110aは符号データをp/2ビットずつ左シフトし
た2pビットの符号データ101bを出力することにな
る。
【0053】図13は、符号データ生成手段100aが
出力するデータを示す図である。図13は図8と同じ表
記を用いているので表記の説明は省略する。バレルシフ
ト処理を行うサイクルはT1〜T5の5サイクルまで表
示してある。ここでD0−2はD7−1を、D0−3は
D7−2を、D0−4はD7−3を、D0−5はD7−
4を、それぞれ1ビット左にシフトしたデータとなって
いる必要がある。このため符号データ整列手段110a
は、8ビットずつシフトした符号データを出力しなけれ
ばならない。
【0054】図14に可変長符号データの例を示す。3
ビット、6ビット、15ビット、14ビット、2ビッ
ト、・・・とから成る可変長符号データをそれぞれA、
B、C、D、E、・・・と表し、D3−1はD0−1を
3ビット、D1−2はD0−1を9ビット、D0−4は
D0−3を8ビット(D0−1を24ビット)、D6−
5はD0−5を6ビット(D0−1を38ビット)、そ
れぞれ左シフトしたデータになっていて、可変長符号デ
ータB、C、D、Eの先頭ビットがMSBとなってい
る。また図では可変長符号データを実線と点線で表して
いるが、実線の部分が復号シンボル発生手段200aで
出力される符号データ(今の例では16ビット)を表し
ている。また可変長符号データA、B、C、D、E、・
・・に対応する復号シンボルをa1、a2、a3、a
4、a5、・・・とする。
【0055】図15は、可変長復号化装置の動作を説明
するためのタイミングチャート図である。復号作業に入
る前に可変長復号化装置が初期化され選択信号302a
が0となる。初期化が終わったら、可変長符号データ1
が符号データ生成手段100aに入力され、符号データ
D0−1、D1−1、・・・,D7−1が復号シンボル
発生手段200aに出力される。復号シンボル発生手段
200aは符号データD0−1、D1−1、・・・、D
7−1に対応する復号シンボルと符号語長とをバッファ
400に書き込む。この動作をバッファ400に空きが
ある限り繰り返し続ける。すなわち、符号データD0−
2、D1−2、・・・、D7−2、D0−3、D1−
3、・・・、D7−3、D0−4、D1−4、・・・、
D7−4、D0−5、D1−5、・・・、D7−5のそ
れぞれに対応する復号シンボルと符号語長とがバッファ
400に書き込まれる。 〔C10サイクル〕バッファ400にデータが格納され
ると、まず符号データD0−1、D1−1、・・・、D
7−1に対応する復号シンボルと符号語長とがバッファ
400より読み出され、選択器311に入力される。こ
の時選択信号が0なので選択器311は、16個の復号
シンボルと符号語長の中から符号データD0−1に対応
する復号シンボル(a1)と符号語長(3)を選択す
る。 〔C11サイクル〕符号語長の値3は加算器312に入
力され選択信号302aの値0と加算される(3+0=
3)。そして加算結果はラッチ313に入力され、選択
信号302aとして3が出力される。 〔C12サイクル〕C11サイクルで、選択信号302
aが3であるので選択器311は16個の復号シンボル
と符号語長の中から符号データD3−1に対応する復号
シンボル(a2)と符号語長(6)を選択する。同様に
して、符号語長の値6は加算器312に入力され、選択
信号302aの値3と加算される。この場合6+3=9
≧8なので、符号データD0−1、D1−1、・・・、
D7−1に対応する復号シンボルと符号語長の中には、
該当する復号シンボルと符号語長は存在しない。
【0056】該当する復号シンボルと符号語長とは符号
データD0−2、D1−2、・・・、D7−2に対応す
る復号シンボルと符号語長の中にあるのでバッファ40
0より対応する復号シンボルと符号語長とを読み出す。
また9ー8=1を加算器312は出力し、選択信号30
2aとして1がラッチ313より出力される。 〔C13サイクル〕C12サイクルで、選択信号302
aが1であるので、選択器311は復号シンボルと符号
語長との中からD1−2に対応する復号シンボル(a
3)と符号語長(15)とを選択する。符号語長の値1
5は加算器312に入力され、選択信号302aの値1
と加算される。この場合15+1=16≧8かつ15+
1≧8×2なので、符号データD0−2、D1−2、・
・・、D7−2に対応する復号シンボルと符号語長との
中には該当する復号シンボルと符号語長は存在しない。
【0057】該当する復号シンボルと符号語長は、符号
データD0−4、D1−4、・・・、D7−4に対応す
る復号シンボルと符号語長の中にあるので、バッファ4
00より対応する復号シンボルと符号語長を読み出す。
また16−8−8=0を加算器312は出力し、選択信
号302aとして0がラッチ313より出力される。 〔C14サイクル〕C13サイクルでは、選択器311
は復号シンボルと符号語長の中からD0−4に対応する
復号シンボル(a4)と符号語長(14)とを選択す
る。そして、符号語長の値14は加算器312に入力さ
れ、加算器312の演算14+0=14≧8より、加算
器312は14ー8=6を出力する。そして、選択信号
302aとして6がラッチ313より出力される。 〔C15サイクル〕C14サイクルでは、対象となる復
号シンボルと符号語長とは符号データD0−5、D1−
5、・・・、D7−5に対応する復号シンボルと符号語
長になり、これらをバッファ400より読み出す。そし
て、選択信号302aの値6により、符号データD6−
5に対応する復号シンボル(a5)と符号語長(2)が
選択される。同様にして符号語長が2なので2+6=8
≧8より8−8=0が選択信号302aとしてラッチ3
13より出力される。以下同様の繰り返しとなる。
【0058】また、バッファ400の容量であるが、復
号シンボルと符号語長とを最長符号語と等しいビット数
だけ格納する容量が最低必要となる。上述の例では最長
符号語が16ビットなので、16×dビット最低必要と
なる。一方、バレルシフタの数は可変長符号の出現頻度
に依存する。そのため、可変長符号の出現頻度に依存し
てバレルシフタの数を決定すれば、少ない数で効率よく
バレルシフト処理を行うことができる。
【0059】例えば、平均符号長(可変長符号語の総容
量/処理に要したサイクル数)を基準にして、それに近
い整数をバレルシフタの数とすればよい。よって、最長
符号語が16ビットに対し平均符号長が7.8ビットで
あるならば、これは毎サイクル7.8ビットずつ復号処
理されていくことなので、バレルシフタの数を6個ある
いは7個あるいは8個にすればいい。
【0060】以上説明したように、符号データ生成手段
で行われるバレルシフタの処理と復号シンボル発生手段
で行われる符号語長の生成との間でループを形成しない
構成とした。これにより、動作周波数が高い場合でも1
サイクル毎に1符号語以上を復号することが可能とな
る。
【0061】また、第2の実施の形態のようにバッファ
を入れることで、1サイクル毎に1符号語以上の復号処
理を実現しながら、符号データ生成手段を構成するバレ
ルシフタの数及び復号シンボル発生手段を構成する復号
メモリの数を減らせるので、ハード量を削減することが
できる。
【0062】
【発明の効果】以上説明したように、本発明による可変
長復号化装置は、可変長符号データのシフト処理と符号
語長との生成の間でループを形成せずに、複数ビットを
一括して処理する構成とした。これにより、動作周波数
が高い場合でも、1サイクル毎に1符号語以上を高速に
復号することが可能となる。
【0063】また、本発明の可変長復号化装置は、復号
シンボル発生手段と復号シンボル選択手段との間にバッ
ファを入れる構成とした。これによりバレルシフタの数
及び復号メモリの数を減らせるので、全体のハード量を
削減することが可能となる。
【図面の簡単な説明】
【図1】本発明の可変長復号化装置の原理図である。
【図2】符号データ生成手段の構成を表すブロック図で
ある。
【図3】符号データ整列手段の構成を表すブロック図で
ある。
【図4】符号データ生成手段を構成するバレルシフタの
動作を説明する図である。
【図5】復号シンボル発生手段の構成を表すブロック図
である。
【図6】復号シンボル発生手段内の復号メモリの構成を
表すブロック図である。
【図7】復号シンボル選択手段の構成を表すブロック図
である。
【図8】符号データ生成手段から出力される符号データ
の構成を表す図である。
【図9】符号データ生成手段から出力される符号データ
を表す図である。
【図10】可変長復号化装置の動作を説明するためのタ
イミングチャート図である。
【図11】第2の実施の形態による可変長復号化装置の
原理図である。
【図12】符号データ整列手段の構成を表すブロック図
である。
【図13】符号データ生成手段から出力されるデータを
表す図である。
【図14】符号データ生成手段から出力される可変長符
号データの構成を表す図である。
【図15】可変長復号化装置の動作を説明するためのタ
イミングチャート図である。
【図16】エントロピー符号化の可変長符号テーブルを
表す図である。
【図17】ハフマンツリーによる状態遷移を表す図であ
る。
【図18】従来の可変長復号化装置の構成を表すブロッ
ク図である。
【符号の説明】
1 可変長符号データ 100 符号データ生成手段 101 符号データ 200 復号シンボル発生手段 201 復号シンボル 202 符号語長 300 復号シンボル選択手段 301 選択復号シンボル 302 選択信号
───────────────────────────────────────────────────── フロントページの続き (72)発明者 橋本 栄利 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 可変長な符号語より成る可変長符号デー
    タを復号化する可変長復号化装置において、 前記可変長符号データを入力とし、最長符号語の少なく
    とも2倍のビット数からなり、それぞれ決められた数だ
    けシフト処理を行うバレルシフタが、少なくとも前記最
    長符号語のビット数個分存在し、それぞれの前記バレル
    シフタが前記最長符号語のビット数からなる符号データ
    を出力する符号データ生成手段と、 前記符号データの各々に対し復号シンボルと符号語長と
    を出力する復号シンボル発生手段と、 前記復号シンボルと前記符号語長との中から選択信号に
    より選択された選択復号シンボルを出力し、前記選択信
    号により選択された前記符号語長を用いて新たな選択信
    号を生成する復号シンボル選択手段と、 を有することを特徴とする可変長復号化装置。
  2. 【請求項2】 前記復号シンボル発生手段と前記復号シ
    ンボル選択手段との間に、前記復号シンボルと前記符号
    語長とを保持するためのバッファを設けたことを特徴と
    する請求項1記載の可変長復号化装置。
  3. 【請求項3】 前記バッファは、前記復号シンボルと前
    記符号語長とを少なくとも前記最長符号語のビット数個
    分格納する容量を持つことを特徴とする請求項2記載の
    可変長復号化装置。
  4. 【請求項4】 前記符号データ生成手段は、前記バレル
    シフタの数が前記符号語の総容量を、処理に要したサイ
    クル数で割った値である平均符号長に近い整数値の個数
    分含むことを特徴とする請求項2記載の可変長復号化装
    置。
JP08672896A 1996-04-09 1996-04-09 可変長復号化装置 Expired - Fee Related JP3371677B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP08672896A JP3371677B2 (ja) 1996-04-09 1996-04-09 可変長復号化装置
US08/717,945 US5784012A (en) 1996-04-09 1996-09-23 Variable-length code decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08672896A JP3371677B2 (ja) 1996-04-09 1996-04-09 可変長復号化装置

Publications (2)

Publication Number Publication Date
JPH09284142A true JPH09284142A (ja) 1997-10-31
JP3371677B2 JP3371677B2 (ja) 2003-01-27

Family

ID=13894924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08672896A Expired - Fee Related JP3371677B2 (ja) 1996-04-09 1996-04-09 可変長復号化装置

Country Status (2)

Country Link
US (1) US5784012A (ja)
JP (1) JP3371677B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8044831B2 (en) 2009-01-16 2011-10-25 Canon Kabushiki Kaisha Decoding apparatus and control method thereof
JP2015505432A (ja) * 2011-12-07 2015-02-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ処理システムにおいて、可変長符号化データ・ストリームを復号するための方法、コンピュータ・プログラム、および、装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100214593B1 (ko) * 1996-03-15 1999-08-02 구자홍 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치
US6414608B1 (en) * 1999-06-09 2002-07-02 Matsushita Electric Industrial Co., Ltd. Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus
US7106820B2 (en) * 2001-04-10 2006-09-12 Broadcom Corporation System and method for establishing word synchronization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5254991A (en) * 1991-07-30 1993-10-19 Lsi Logic Corporation Method and apparatus for decoding Huffman codes
US5280349A (en) * 1992-02-13 1994-01-18 Industrial Technology Research Institute HDTV decoder
US5225832A (en) * 1992-02-13 1993-07-06 Industrial Technology Research Institute High speed variable length decoder
EP0631440A3 (en) * 1993-06-23 1995-02-22 Daewoo Electronics Co Ltd Device for the parallel decoding of image signals encoded with variable length.
JP2746109B2 (ja) * 1994-03-09 1998-04-28 日本電気株式会社 ハフマン符号復号化回路
FR2722041B1 (fr) * 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
KR100209877B1 (ko) * 1994-11-26 1999-07-15 윤종용 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치
US5652582A (en) * 1995-12-29 1997-07-29 Xerox Corporation Method of high speed Huffman coding and decoding of lab color images

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8044831B2 (en) 2009-01-16 2011-10-25 Canon Kabushiki Kaisha Decoding apparatus and control method thereof
JP2015505432A (ja) * 2011-12-07 2015-02-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ処理システムにおいて、可変長符号化データ・ストリームを復号するための方法、コンピュータ・プログラム、および、装置

Also Published As

Publication number Publication date
US5784012A (en) 1998-07-21
JP3371677B2 (ja) 2003-01-27

Similar Documents

Publication Publication Date Title
US5150430A (en) Lossless data compression circuit and method
JP3294026B2 (ja) 高速可変長復号化装置
JP2830280B2 (ja) 可変長ストリング符合装置
US5113516A (en) Data repacker having controlled feedback shifters and registers for changing data format
JPH0799812B2 (ja) 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
US7421563B2 (en) Hashing and serial decoding techniques
US4095283A (en) First in-first out memory array containing special bits for replacement addressing
JPH0969951A (ja) 符号化方法及び復号化方法
US5572208A (en) Apparatus and method for multi-layered decoding of variable length codes
JP2000261674A (ja) 画像伸長装置
US5299145A (en) Adder for reducing carry processing
US5309156A (en) Variable-length code decoding device
JPH0669813A (ja) 可変長コードデコーディング装置
JP3371677B2 (ja) 可変長復号化装置
JP3346204B2 (ja) 可変長符号復号装置
JP3304745B2 (ja) 可変長符号復号化器
JP2010166552A (ja) テーブル装置、符号化装置、復号装置および符号化/復号装置
JP3260630B2 (ja) 定数除算器及び定数除算方法
EP0499225B1 (en) Variable-length code decoding device
US7375663B2 (en) Data simplifying and merging method for a voice decoding memory system
JPH0661871A (ja) パラレル・シリアル・データ変換回路
JP3068077B2 (ja) 送信回路及び受信回路
JPH03179520A (ja) データデコーダ
JP3336537B2 (ja) 符号化装置、復号化装置、符号化・復号化装置及び算術符号化装置
JP3332630B2 (ja) 復号装置及びデコードテーブルの生成方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees