JP3346204B2 - 可変長符号復号装置 - Google Patents
可変長符号復号装置Info
- Publication number
- JP3346204B2 JP3346204B2 JP34796596A JP34796596A JP3346204B2 JP 3346204 B2 JP3346204 B2 JP 3346204B2 JP 34796596 A JP34796596 A JP 34796596A JP 34796596 A JP34796596 A JP 34796596A JP 3346204 B2 JP3346204 B2 JP 3346204B2
- Authority
- JP
- Japan
- Prior art keywords
- code data
- code
- bits
- length
- variable
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
置、すなわち、可変長な符号語データの復号処理を効率
的に実行する装置に関し、特に動作周波数が高い場合に
おいても復号処理における各処理を無駄なく実行可能と
し、可変長符号語の復号効率を高めた可変長符号復号装
置に関する。
号を復号して圧縮符号化を実現する場合に、発生頻度の
高い信号に短い符号を与え、発生頻度の低い信号に長い
符号を与えるという可変長符号が用いられている。この
ような符号化をエントロピー符号化と呼んでいる。ま
た、エントロピー符号としては特にハフマン符号が、音
声信号や画像信号の符号化など多岐に渡って応用されて
いる。
号テーブルを表す図である。テーブルに示すように、発
生頻度によりシンボルa1〜a7にそれぞれ可変長符号
が割当てられている。すなわち、発生頻度の高いシンボ
ルa1あるいはa4には、短い符号の可変長符号00,
および10が各々割り当てられ、発生頻度が低いシンボ
ルa5、a6、a7にはそれぞれ長い可変長符号110
0、1101、1111が割り当てられている。
を表す図である。黒丸印S1〜S6は、解読手順での初
期状態S1及び中間状態S2〜S6を示す節点で、(シ
ンボル数−1)個存在する。そして、解読を開始する場
合は、S1からスタートし、解読における最初の符号が
0ならば0の枝をたどりS2の状態に遷移し、1ならば
1の枝をたどりS4の状態に遷移する。このような遷移
を符号毎に繰り返し行い、シンボルa1〜a7にたどり
着けば、解読終了となる。例えば符号語が(00)な
ら、シンボルa1、符号語が(1100)ならシンボル
a5となる。これは図16の対応と一致する。
は、符号を上から順に1ビットずつたどることにより、
解読をすすめる手順を与えている。よって、ハフマンツ
リーを1ビットずつたどり復号する方法では、1サイク
ル毎に1ビットしか処理することができない。そこで、
高速に復号処理を行うために、符号と符号長とを並列に
解読しながら可変長符号を一度に処理する方法、すなわ
ち符号長情報を得ながら併せて符号解読を実行するもの
である。この方法として例えば、特開平7−21224
2号公報記載のものがある。
化器の構成を表すブロック図である。入力バッファ20
は、2つのラッチ21、22より構成され、圧縮データ
1bを格納する。各ラッチ21、22のビット数は、最
長符号語(例えばpビット)に等しくなっている。バレ
ルシフタ30は、最長符号語の2倍のビット数(例えば
2pビット)から成り、符号語長用PLA50より出力
される符号語長信号51を受け取り、この符号語長に基
づいて、入力バッファ20から入力されるデータのシフ
ト量を決定し、データをバレルシフタ30でシフトす
る。シフトされたデータは復号化用PLAに出力され
る。
フタ30から出力されたpビットを解読し、復号したシ
ンボル41を出力する。符号語長用PLA50は、復号
化用PLA40と同様に、バレルシフタ30から出力さ
れたpビットを解読し、復号する符号語の長さを決定し
出力する。ここで、復号化用PLA40は、あらかじめ
定められた特定の短い符号が2つ以上連続するような場
合、例えば符号語(00)が連続して発生している場合
に、これを検出して1サイクルで一度に復号を行うこと
を可能としている。
従来技術では、符号語長用PLA50とバレルシフタ3
0によってループが形成されているため、動作周波数が
高く(例えば、70MHz以上)なると、高速に復号す
ることができなくなる。つまり、動作周波数が低い場合
は、1サイクル中に符号語長用PLA50の処理とバレ
ルシフタ30の処理の両方を行うことができたものが、
動作周波数が高くなると、符号語長用PLA50の処理
で1サイクル、バレルシフタ30の処理で1サイクルそ
れぞれ必要となり、ループ処理に2サイクルを必要とす
るようになる。このため動作周波数が高くなると、2サ
イクルに1符号語しか復号できなくなり性能が低下する
という問題があった。
のであり、動作周波数が高い場合でも、1サイクル毎に
1符号語以上を復号することが可能な可変長符号復号装
置を提供することを目的とする。
号装置を構成する全体のハードウエア量を増加させずに
復号処理の効率を高めた可変長符号復号装置を提供する
ことにある。
するために、可変長な符号語より成る可変長符号データ
を復号する可変長符号復号装置において、少なくとも可
変長符号語中、最長符号語のビット数と等しい数の複数
のバレルシフタを有するバレルシフタセットであって、
該複数のバレルシフタの各々は前記可変長符号データを
入力とし、個々のバレルシフタにあらかじめ設定された
各々異なる数のシフト処理を実行することにより、最長
符号語のビット数からなる複数の異なるシフト符号デー
タを生成する符号データ生成手段と、符号データに対応
する復号シンボルと符号語長とを出力する復号シンボル
発生手段あって、該復号シンボル発生手段に入力される
選択信号に基づいて、符号データ生成手段から出力され
る前記複数の異なるシフト符号データの中から所定のシ
フト符号データを選択し、選択されたシフト符号データ
に対応する復号シンボルと符号語長とを出力する復号シ
ンボル発生手段と、符号語長に基づいて、後続の複数の
シフト符号データの中から所定のシフト符号データを選
択する選択信号を生成し、前記復号シンボル発生手段に
出力する選択信号生成手段と、を有することを特徴とす
る可変長符号復号装置を提供する。
号データにシフト処理を施し、最長符号語のビット数と
等しい個数のシフトされた符号データを復号シンボル発
生手段に対して出力する。復号シンボル発生手段は、符
号データの中から選択信号により所望の符号データを選
択し、選択された符号データに対応する復号シンボルと
符号語長とを出力する。選択信号生成手段は、符号語長
を用いて選択信号を生成する。
状態において符号データ生成手段から出力された複数の
シフト符号データの中からシフト0の符号データを選択
するように設定しており、さらにバレルシフタセット中
の複数のバレルシフタは、少なくとも前記最長符号語の
2倍のビット数からなることを特徴とする可変長符号復
号装置を提供する。
復号シンボル発生手段との間に、シフト符号データを保
持するためのバッファを設けた可変長符号復号装置を提
供する。バッファは、少なくとも最長符号語のビット数
に相当する個数のシフト符号データを格納する容量を持
つ。
のバレルシフタの数を、可変長符号データの平均符号長
に近い整数値の個数とした可変長符号復号装置を提供す
る。ここで平均符号長は、可変長符号語の総容量を、復
号化処理に要したサイクル数で割って求められた値であ
る。
て説明する。 [実施例1]図1は、本発明の一実施例に係る可変長符
号復号装置の原理を示すブロック図である。可変長符号
復号装置は、可変長符号データ1を入力として最長符号
語のビット数からなる符号データ101を出力する符号
データ生成手段100と、該符号データ101を入力と
し、出力復号シンボル201と符号語長202とを出力
する復号シンボル発生手段200と、符号語長202を
入力とし、復号シンボル発生手段200に対して選択信
号301を出力する選択信号生成手段300とから構成
される。
符号化した可変長符号データ1を入力として、最長符号
語のビット数からなる符号データ101を最長符号語の
ビット数個分出力する。
てられた符号語の中で最もビット数の多いものをいう。
例えば、図16ではシンボルa5、a6、a7に対応す
る符号語1100、1101、1111が該当し、最長
符号語のビット数は4ビットとなる。
タ101を入力とし、各々のシフトされた符号データの
中から選択信号301により所望の符号データを選択
し、選択された符号データに対応する復号シンボル20
1と符号語長202とを出力する。
号語長202に基づいて選択信号301を生成し、これ
を復号シンボル発生手段に出力する。
説明する。図2は、符号データ生成手段のブロック図で
ある。符号データ生成手段100は、符号データ整列手
段110とバレルシフタ120とから構成される。バレ
ルシフタは複数個がセットとなったバレルシフタセット
として構成されている。
データ1(mビットとする)を入力とし、最長符号語
(pビットとする)の2倍のビット数(2pビット)の
符号データ101aを出力する。
ト数個(p個)からなるバレルシフタ0、バレルシフタ
1、バレルシフタ2、・・・、バレルシフタp−1で構
成される。そして、符号データ101aを入力とし、各
々のバレルシフタがそれぞれ決められた数のシフト処理
を行い、最長符号語のビット数個だけ符号データ101
をそれぞれ出力する。例えばバレルシフタ0は0ビッ
ト、バレルシフタ1は1ビット、バレルシフタ2は2ビ
ット、・・・、バレルシフタp−1は(p−1)ビット
のシフト処理を行い、それぞれの上位pビットの符号デ
ータ101を出力する。
示すブロック図である。符号データ整列手段110は、
符号データを出力する際に上位pビットを構成する上位
レジスタ111と、下位pビットを構成する下位レジス
タ112とで構成される。
ト数(pビット)からなり、最長符号語の2倍のビット
数(2pビット)の符号データ101aを出力する際に
上位pビットを構成する。また、下位レジスタ112
は、上位レジスタ111と同様に最長符号語のビット数
(pビット)からなり、最長符号語の2倍のビット数
(2pビット)の符号データ101aを出力する際に下
位pビットを構成する。
ついて説明する。まずmビットの可変長符号データ1が
入力されると下位レジスタ112の下位mビットに保持
される。そして、次のmビットの可変長符号データ1が
入力されると、すでに下位レジスタ112に保持されて
いる符号データは左にmビットシフトされ、新しい可変
長符号データが下位レジスタ112の下位mビットに保
持される。これを下位レジスタ112が満杯になるまで
繰り返す。
と、上位レジスタ111にデータが保持されている場合
は、上位レジスタ111のデータを上位pビット、下位
レジスタ112のデータを下位pビットとする2pビッ
トの符号データ101aを出力する。その後、下位レジ
スタ112のデータを上位レジスタ111に移動する。
そして、下位レジスタ112は空き状態となる。
されていない場合は、そのまま下位レジスタ112のデ
ータを上位レジスタ111に移動する。そして、下位レ
ジスタ112は空き状態となる。同様にして、mビット
の可変長符号データ1が入力されると下位レジスタ11
2の下位mビットに保持され、以降これら一連の動作の
繰り返しとなる。
る。図4は、バレルシフタで行われるシフト処理の様子
を示す図である。バレルシフタはバレルシフタ0からp
−1までp個のバレルシフタセットとして構成されてい
る。バレルシフタ0のデータD0は符号データ整列手段
110が出力する値で、MSB(Most Signi
ficant Bit)からLSB(Least Si
gnificantBit)に向かってd0、d1、d
2、・・・、dp−1、・・・、d2p−1から成る2
pビットのビット列とする。また、バレルシフタnは符
号データD0をnビット左シフトするものとする。つま
りバレルシフタ1は符号データD0を1ビット左シフ
ト、バレルシフタ2は符号データD0を2ビット左シフ
トをそれぞれ実行する。
シフタ1の符号データD1は、d1、d2、・・・、d
p−1、・・・から成る2pビットのビット列となる。
同様にバレルシフタp−1の符号データDp−1は、d
p−1、・・・から成る2pビットのビット列になる。
D0に対して1ビットずつ順に左シフトされた(p−
1)個の符号データとの合わせてp個の符号データが生
成されることになる。そしてバレルシフタ0、バレルシ
フタ1、バレルシフタ2、・・・、バレルシフタp−1
は、それぞれ2pビットのデータD0、D1、D2、・
・・、Dp−1の上位pビットを出力する。
シフタを有するバレルシフタセットを用いているので、
上記p個の符号データに少なくとも1つの可変長符号が
含まれることになる。また符号データ整列手段110か
ら出力される2pビットの符号データは、符号データを
pビットずつ左シフトしたものになっている。よって、
バレルシフタp−1の符号データDp−1を1ビット左
シフトしたデータは、次に符号データ整列手段110が
出力した符号データに等しいものとなっている。
く説明する。図5は、復号シンボル発生手段の構成を示
す図である。復号シンボル発生手段200は、選択器2
11と復号メモリ212とで構成される。選択器211
は、符号データ生成手段100から出力されるp個の異
なる符号データ101を入力とし、符号データ101の
中から選択信号301により所望の符号データを選択す
る。復号メモリ212は、選択器211で選択された符
号データに対応する復号シンボル201と符号語長20
2(合計dビットとする)を出力する。
タ構成を表す図である。pビットの符号データ101は
アドレス200bを表し、データはdビットで上位sビ
ットが復号シンボル、下位hビットが符号語長を表して
いる。よって、この場合の復号メモリ212の容量は、
(2p×d)ビットとなる。
明する。図7は、選択信号生成手段のブロック図であ
る。図1における選択信号生成手段300は、図7に示
すように加算器311とラッチ312とで構成される。
加算器311は、符号語長202と選択信号301との
加算を行う。ラッチ312は、加算器311の出力31
1aを保持し、それを選択信号301として出力する。
選択信号301は図1の復号シンボル発生手段200に
対して出力されるとともに、加算器311に対してもフ
ィードバック入力される。
説明する。まず、可変長符号データ1は、3ビット、6
ビット、15ビット、14ビット、2ビット、・・・と
から成るデータ列とし、それに対応する復号シンボル
を、a1、a2、a3、a4、a5、・・・とする。こ
こで可変長符号データ1の最長符号語のビット数が16
ビットとする。よって、可変長符号データ生成手段10
0を構成するバレルシフタの数は16となる。つまりバ
レルシフタはバレルシフタ0からバレルシフタ15まで
16個あり、選択器211は16個の符号データの中か
ら1個の符号データを選択することになる。
ルシフタ0が出力する符号データを、選択信号301が
1の場合はバレルシフタ1が出力する符号データを、・
・・、選択信号301が15の場合はバレルシフタ15
が出力する符号データを、それぞれ選択することにな
る。
る符号データ101を示す。T1,T2,T3はバレル
シフト処理を行うサイクルを表し、データDx−yは、
サイクルTyにおけるバレルシフタxの出力値を表す。
例えば、データD2−1はサイクルT1におけるバレル
シフタ2の出力値を表す。図4で説明したように、Dx
−yはサイクルTyにおいてD0−yをxビット左にシ
フトしたデータとなっていて、D0−(y+1)はD1
5−yを1ビット左にシフトしたデータとなっている。
例えばD0−2はD15−1を1ビット左にシフトした
データとなっていて、D0−3はD15−2を1ビット
左にシフトしたデータとなっている。これらのシフトさ
れたデータが復号シンボル発生手段に出力される。
D0−2はD0−1を16ビット左にシフトしたデータ
となっていて、D0−3はD0−1を32ビット左にシ
フトしたデータとなっている。
ット、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となってい
る。さらに図9では可変長符号データを実線と点線で表
しているが、実線の部分が復号シンボル発生手段200
に出力される符号データ101(今の例では16ビッ
ト)を表している。また可変長符号データA(3ビッ
ト)、B(6ビット)、C(15ビット)、D(14ビ
ット)、E(2ビット)、・・・に対応する復号シンボ
ルをa1、a2、a3、a4、a5、・・・とする。
明するタイミングチャート図である。クロック10は本
発明の可変長符号復号装置を動作させるシステムクロッ
クである。復号シンボル201は復号シンボル発生手段
200から出力される復号シンボル(a1、a2、a
3、a4、a5)である。符号語長202は復号シンボ
ル発生手段200から出力される符号語長(3、6、1
5、14、2)である。加算器出力311aは加算器3
11が行う加算結果、選択信号301はラッチ312か
ら出力される信号を表している。
初期化され、選択信号301が0となる。初期化が終わ
ったら、可変長符号データ1が符号データ生成手段10
0に入力され符号データD0−1、D1−1、・・・、
D15−1が復号シンボル発生手段200に出力され
る。
期状態における選択信号301は0に設定されているの
で、復号シンボル発生手段200中の選択器211(図
5参照)は、16個の符号データD0−1、D1−1、
・・・、D15−1の中から符号データD0−1を選択
する。復号メモリ212は、符号データD0−1に対応
する復号シンボル(a1)と符号語長(3)を出力す
る。符号語長の値3は加算器311に入力され選択信号
301の値0と加算される(3+0=3)。そして加算
結果はラッチ312に入力される。
号301として3を出力する。選択信号301が3なの
で、復号シンボル発生手段200中の選択器211(図
5参照)は16個の符号データの中から符号データD3
−1を選択する。復号メモリ212は、符号データD3
−1に対応する復号シンボル(a2)と符号語長(6)
を出力する。同様にして、符号語長の値6は加算器31
1に入力され、選択信号301の値3と加算される(6
+3=9)。そして加算結果はラッチ312に入力され
る。
号301として9を出力する。選択信号301が9なの
で、選択器211は16個の符号データの中から符号デ
ータD9−1を選択する。復号メモリ212は、符号デ
ータD9−1に対応する復号シンボル(a3)と符号語
長(15)を出力する。符号語長の値15は加算器31
1に入力され、選択信号301の値9と加算される。こ
の場合15+9=24≧16なので、符号データD0−
1、D1−1、・・・、D15−1の中には次処理で用
いる符号データは存在しない。次処理で用いる符号デー
タは、符号データD0−2、D1−2、・・・、D15
−2の中にある。よって、24−16=8を加算器31
1は出力し、ラッチ312に入力される。
号301として8を出力する。対象となる符号データは
D0−2、D1−2、・・・、D15−2になり、選択
信号301が8なので、選択器211は16個の符号デ
ータD0−2、D1−2、・・・、D15−2の中から
符号データD8−2を選択する。復号メモリ212は、
符号データD8−2に対応する復号シンボル(a4)と
符号語長(14)を出力する。符号語長の値14は加算
器311に入力され、選択信号301の値8と加算され
る。この場合14+8=22≧16(最長符号語ビット
数)なので、符号データD0−2、D1−2、・・・、
D15−2の中には次処理で用いる符号データは存在し
ない。次処理で用いる符号データは、符号データD0−
3、D1−3、・・・、D15−3の中にある。よっ
て、22−16=6を加算器311は出力し、ラッチ3
12に入力される。
号301として6を出力する。対象となる符号データは
D0−3、D1−3、・・・、D15−3になり、選択
信号301の値6により符号データD0−3、D1−
3、・・・、D15−3の中から符号データD6−3を
選択する。復号メモリ212は、符号データD6−3に
対応する復号シンボル(a5)と符号語長(2)を出力
する。符号語長の値2は加算器311に入力され、選択
信号301の値6と加算され、2+6=8を得る。そし
て得られた加算結果(8)はラッチ312に入力され
る。以下同様の繰り返しとなる。
の可変長符号復号装置の原理図である。可変長符号復号
装置は、符号データ生成手段100aと、バッファ40
0と、復号シンボル発生手段200aと、選択信号生成
手段300aとから構成される。
置の構成と異なるのは、符号データ生成手段100aと
復号シンボル発生手段200aとの間にバッファ400
を入れたことである。このバッファ400を入れる意味
について説明する。第1の実施の形態では、例えば最長
符号語が16ビットの場合、バレルシフタの数を16個
にした。これは1回のバレルシフト処理で得られる16
個の符号データの中に、少なくとも1つの所望の符号デ
ータが存在するようにするためである。
度の高い信号に短い符号を与え、発生頻度の低い信号に
長い符号を与えるという可変長符号を用いている。これ
は1回のバレルシフト処理で得られる16個の符号デー
タの中に所望の符号データが1つ以上存在することを表
している。つまり1回のバレルシフト処理で得られる1
6個の符号データを何回も使う事を意味する。
た第1の実施の形態では、T1サイクルで実行したバレ
ルシフト処理の結果を選択器211は3回使用している
(C0、C1、C2サイクルでそれぞれ(a1、3)、
(a2、6)、(a3、15))。つまり復号シンボル
発生手段200及び選択信号生成手段300は毎サイク
ル処理を行うのに対し、符号データ生成手段100のバ
レルシフタは符号データのシフト処理を毎サイクルごと
実行する必要がない場合がある。すなわち、1度のシフ
ト処理の結果、複数の連続するシフト符号データを得る
ことが可能な場合がある。
行うバレルシフト処理と、復号シンボル発生手段200
及び選択信号生成手段300で行う処理とでは処理頻度
が異なる。この処理頻度の違いを吸収するために符号デ
ータ生成手段100aと復号シンボル発生手段200a
との間にバッファ400を入れている。これにより、符
号データ生成手段100aを構成するバレルシフタの個
数を最長符号語のビット数個よりも少なくすることが可
能となる。
数字を用いてさらに詳しく説明する。第1の実施の形態
の説明の時と同様に、可変長符号データ1は、3ビッ
ト、6ビット、15ビット、14ビット、2ビット、・
・・とから成るデータ列とし、それに対応する復号シン
ボルは、a1、a2、a3、a4、a5、・・・とす
る。また、可変長符号データの最長符号語は16ビット
とする。さらに、符号データ生成手段100aを構成す
るバレルシフタの数を最長符号語の半分の8とする。こ
の場合、バレルシフタセット中にある複数のバレルシフ
タはバレルシフタ0からバレルシフタ7までの8個とな
る。符号データ生成手段100aが出力する符号データ
102aは、バッファ400に格納される。復号シンボ
ル発生手段200aは、バッファ400の出力である8
個のシフトされた符号データ102bの中から所望の符
号データを選択し、対応する復号シンボル201と符号
語長202とを出力する。
シフトした符号データを出力する符号データ整列手段1
10aの構成を示す。最上位レジスタ111a、上位レ
ジスタ111b、下位レジスタ112b、最下位レジス
タ112aはそれぞれ最長符号語の半分のビット数(例
えばp/2ビット、今の場合8ビット)からなるレジス
タである。最長符号語の2倍のビット数(2pビット)
の符号データ101bを出力する際、MSBを(2p−
1)ビット、LSBを0ビットとすると、最上位レジス
タ111aのビット位置は、(2p−1)ビットから
(3p/2)ビットとなる。上位レジスタ111bのビ
ット位置は、(3p/2−1)ビットからpビットとな
る。下位レジスタ112bのビット位置は、(p−1)
ビットからp/2ビットとなる。最下位レジスタ112
aのビット位置は、(p/2−1)ビットから0ビット
となる。
について説明する。まずmビットの可変長符号データ1
が入力されると最下位レジスタ112aの下位mビット
に保持される。次にmビットの可変長符号データ1が入
力されると、既に最下位レジスタ112aに保持されて
いる符号データは左にmビットシフトされ、新しい可変
長符号データが最下位レジスタ112aの下位mビット
に保持される。これを最下位レジスタ112aが満杯に
なるまで繰り返す。
最上位レジスタ111aにデータが保持されている場合
は、最上位レジスタ111aのデータ、上位レジスタ1
11bのデータ、下位レジスタ112bのデータ、最下
位レジスタ112aのデータをそれぞれ用いて、2pビ
ットの符号データ101bを構成し出力する。そして、
最下位レジスタ112aのデータを下位レジスタ112
bに、下位レジスタ112bのデータを上位レジスタ1
11bに、上位レジスタ111bのデータを最上位レジ
スタ111aにそれぞれ移動する。最下位レジスタ11
2aは空き状態となる。
保持されていない場合は、2pビットの符号データ10
1bを出力せず、最下位レジスタ112aのデータを下
位レジスタ112bに、下位レジスタ112bのデータ
を上位レジスタ111bに、上位レジスタ111bのデ
ータを最上位レジスタ111aにそれぞれ移動する。最
下位レジスタ112aは空き状態となる。同様にしてm
ビットの可変長符号データ1が入力されると最下位レジ
スタ112aの下位mビットに保持され、以降これら一
連の動作の繰り返しとなる。
出力するデータを示す図である。図13は図8と同じ表
記を用いているので表記の説明は省略する。バレルシフ
ト処理を行うサイクルはT1〜T5の5サイクルまで表
示してある。符号データ整列手段110aが、8ビット
ずつシフトした符号データを出力するようになっている
ので、D0−2はD7−1を、D0−3はD7−2を、
D0−4はD7−3を、D0−5はD7−4を、それぞ
れ1ビット左にシフトしたデータとなっている。
1の実施の形態の説明の時と同様に、3ビット、6ビッ
ト、15ビット、14ビット、2ビット、・・・とから
成る可変長符号データをそれぞれA、B、C、D、E、
・・・と表し、D3−1はD0−1を3ビット、D1−
2はD0−2を1ビット(D0−1を9ビット)、D0
−4はD0−3を8ビット(D0−1を24ビット)、
D6−5はD0−5を6ビット(D0−1を38ビッ
ト)、それぞれ左シフトしたデータになっていて、可変
長符号データB、C、D、Eの先頭ビットがMSBとな
っている。また図14では可変長符号データを実線と点
線で表しているが、実線の部分が復号シンボル発生手段
200aで出力される符号データ(今の例では16ビッ
ト)を表している。また可変長符号データA、B、C、
D、E、・・・に対応する復号シンボルをa1、a2、
a3、a4、a5、・・・とする。
明するためのタイミングチャート図である。図15は、
図10と基本的に同じ表記なので説明は省略する。復号
作業に入る前に可変長符号復号装置が初期化され選択信
号301aが0となる。初期化が終わったら、可変長符
号データ1が符号データ生成手段100aに入力され
る。符号データ生成手段100aは、符号データD0−
1、D1−1、・・・,D7−1をバッファ400に書
き込む。続いて符号データ生成手段100aは、符号デ
ータD0−2、D1−2、・・・,D7−2をバッファ
400に書き込む。この動作をバッファ400に空きが
ある限り繰り返し続ける。すなわち、符号データ生成手
段100aは、符号データ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に書き込んでいく。
タが格納されると、まず符号データD0−1、D1−
1、・・・、D7−1がバッファ400より読み出さ
れ、選択器211に入力される。この時選択信号301
aが0なので選択器211は、8個の符号データD0−
1、D1−1、・・・、D7−1の中から符号データD
0−1を選択する。復号メモリ212は、符号データD
0−1に対応する復号シンボル(a1)と符号語長
(3)を出力する。符号語長の値3は加算器311に入
力され選択信号301の値0と加算される(3+0=
3)。そして加算結果311bはラッチ312に入力さ
れる。
信号301aとして3を出力する。選択信号301aが
3なので、選択器211は8個の符号データD0−1、
D1−1、・・・、D7−1の中から符号データD3−
1を選択する。復号メモリ212は、符号データD3−
1に対応する復号シンボル(a2)と符号語長(6)を
出力する。同様にして、符号語長の値6は加算器311
に入力され、選択信号301aの値3と加算される。こ
の場合6+3=9≧8なので、符号データD0−1、D
1−1、・・・、D7−1の中には次処理で用いる符号
データは存在しない。次処理で用いる符号データは、符
号データD0−2、D1−2、・・・、D7−2の中に
ある。よって、加算器311は9−8=1を出力し、加
算結果はラッチ312に入力される。
号データD0−2、D1−2、・・・、D7−2を読み
出す。ラッチ312は、選択信号301aとして1を出
力する。選択信号301aが1なので、選択器211は
8個の符号データD0−2、D1−2、・・・、D7−
2の中から符号データD1−2を選択する。復号メモリ
212は、符号データD1−2に対応する復号シンボル
(a3)と符号語長(15)を出力する。符号語長の値
15は加算器311に入力され、選択信号301aの値
1と加算される。この場合15+1=16≧8かつ15
+1≧8×2なので、符号データD0−2、D1−2、
・・・、D7−2の中には次処理で用いる符号データは
存在しない。次処理で用いる符号データは、符号データ
D0−4、D1−4、・・・、D7−4の中にある。よ
って、加算器311は16−8−8=0を出力し、加算
結果はラッチ312に入力される。
号データD0−4、D1−4、・・・、D7−4を読み
出す。ラッチ312は、選択信号301aとして0を出
力する。選択信号301aが0なので、選択器211は
8個の符号データD0−4、D1−4、・・・、D7−
4の中から符号データD0−4を選択する。復号メモリ
212は、符号データD0−4に対応する復号シンボル
(a4)と符号語長(14)を出力する。符号語長の値
14は加算器311に入力され、選択信号301aの値
0と加算される。この場合14+0=14≧8なので、
符号データD0−4、D1−4、・・・、D7−4の中
には次処理で用いる符号データは存在しない。次処理で
用いる符号データは、符号データD0−5、D1−5、
・・・、D7−5の中にある。よって、加算器311は
14−8=6を出力し、加算結果はラッチ312に入力
される。
号データD0−5、D1−5、・・・、D7−5を読み
出す。ラッチ312は、選択信号301aとして6を出
力する。選択信号301aが6なので、選択器211は
8個の符号データD0−5、D1−5、・・・、D7−
5の中から符号データD6−5を選択する。復号メモリ
212は、符号データD6−5に対応する復号シンボル
(a5)と符号語長(2)を出力する。符号語長の値2
は加算器311に入力され、選択信号301aの値6と
加算される。この場合6+2=8≧8なので、符号デー
タD0−5、D1−5、・・・、D7−5の中には次処
理で用いる符号データは存在しない。次処理で用いる符
号データは、符号データD0−6、D1−6、・・・、
D7−6の中にある。よって、加算器311は8−8=
0を出力し、加算結果はラッチ312に入力される。以
下同様の繰り返しとなる。
タを最長符号語と等しいビット数だけ格納する容量が最
低必要となる。上述の例では最長符号語が16ビットな
ので、16×16=256ビット最低必要となる。一
方、バレルシフタの数は可変長符号の出現頻度に依存す
る。そのため、可変長符号の出現頻度に依存してバレル
シフタの数を決定すれば、少ない数で効率よくバレルシ
フト処理を行うことができる。
量/処理に要したサイクル数)を基準にして、それに近
い整数をバレルシフタの数とすればよい。例えば、最長
符号語が16ビットに対し平均符号長が7.8ビットで
あるならば、これは毎サイクル7.8ビットずつ復号を
行う事を意味するので、バレルシフタの数を7個あるい
は8個あるいは9個にすればいい。
生成手段で行われるバレルシフタの処理と復号シンボル
発生手段で行われる符号語長の生成との間でループを形
成しない構成とした。これにより、動作周波数が高い場
合でも1サイクル毎に1符号語以上を復号することが可
能となる。
タ生成手段と復号シンボル発生手段との間にバッファを
入れることで、1サイクル毎に1符号語以上の復号処理
を実現しながら、符号データ生成手段を構成するバレル
シフタの数を減らせるので、ハード量を削減することが
できる。
変長符号データのシフト処理と符号語長との生成処理と
の間でループを形成せずに、複数ビットを一括して処理
する構成とした。これにより、動作周波数が高い場合で
も、1サイクル毎に1符号語以上を高速に復号すること
が可能となる。
発生手段との間にバッファを入れる構成とすることによ
り、バレルシフタセット中にあるバレルシフタの数を減
らすことが可能となり、可変長符号復号装置を構成する
全体のハード量を削減することが可能となる。
ブロック図である。
図である。
ック図である。
タの動作を説明する図である。
ク図である。
成を示すブロック図である。
である。
ータの構成を示す図である。
ータの構成を示す図である。
のタイミングチャート図である。
置の原理図である。
図である。
を表す図である。
ータの構成を表す図である。
のタイミングチャート図である。
を表す図である。
ある。
ロック図である。
Claims (7)
- 【請求項1】 可変長符号語より構成された可変長符号
データを復号する可変長符号復号装置において、 少なくとも前記可変長符号語中、最長符号語のビット数
と等しい数の複数のバレルシフタを有するバレルシフタ
セットであって、該複数のバレルシフタの各々は前記可
変長符号データを入力とし、個々のバレルシフタにあら
かじめ設定された各々異なる数のシフト処理を実行する
ことにより、前記最長符号語のビット数からなる複数の
異なるシフト符号データを生成する符号データ生成手段
と、 前記符号データに対応する復号シンボルと符号語長とを
出力する復号シンボル発生手段であって、該復号シンボ
ル発生手段に入力される選択信号に基づいて、前記符号
データ生成手段から出力される前記複数の異なるシフト
符号データの中から所定のシフト符号データを選択し、
選択されたシフト符号データに対応する復号シンボルと
符号語長とを出力する復号シンボル発生手段と、 前記符号語長に基づいて、後続の複数のシフト符号デー
タの中から所定のシフト符号データを選択するための選
択信号を生成し、前記復号シンボル発生手段に出力する
選択信号生成手段と、 を有することを特徴とする可変長符号復号装置。 - 【請求項2】 前記選択信号は、初期状態において前記
符号データ生成手段から出力された前記複数のシフト符
号データの中からシフト0の符号データを選択するよう
に設定されていることを特徴とする請求項1記載の可変
長符号復号装置。 - 【請求項3】 前記バレルシフタセット中のバレルシフ
タは、少なくとも前記最長符号語の2倍のビット数から
なることを特徴とする請求項1記載の可変長符号復号装
置。 - 【請求項4】 前記符号データ生成手段と前記復号シン
ボル発生手段との間に、前記シフト符号データを保持す
るためのバッファを設けたことを特徴とする請求項1記
載の可変長符号復号装置。 - 【請求項5】 前記バッファは、少なくとも前記最長符
号語のビット数に相当する個数のシフト符号データを格
納する容量を持つことを特徴とする請求項4記載の可変
長符号復号装置。 - 【請求項6】 前記バレルシフタセットは、前記可変長
符号語の平均符号長に近い整数値の個数のバレルシフタ
を有することを特徴とする請求項4記載の可変長符号復
号装置。 - 【請求項7】 前記平均符号長は、前記可変長符号の総
容量を、復号化処理に要したサイクル数で割って求めら
れた値であることを特徴とする請求項6記載の可変長符
号復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34796596A JP3346204B2 (ja) | 1996-12-26 | 1996-12-26 | 可変長符号復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34796596A JP3346204B2 (ja) | 1996-12-26 | 1996-12-26 | 可変長符号復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10190475A JPH10190475A (ja) | 1998-07-21 |
JP3346204B2 true JP3346204B2 (ja) | 2002-11-18 |
Family
ID=18393820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34796596A Expired - Fee Related JP3346204B2 (ja) | 1996-12-26 | 1996-12-26 | 可変長符号復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3346204B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196662A (zh) * | 2011-01-14 | 2017-09-22 | Ge视频压缩有限责任公司 | 熵编码设备和方法、熵解码设备和方法、及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636167B1 (en) * | 2000-10-31 | 2003-10-21 | Intel Corporation | Method of generating Huffman code length information |
-
1996
- 1996-12-26 JP JP34796596A patent/JP3346204B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196662A (zh) * | 2011-01-14 | 2017-09-22 | Ge视频压缩有限责任公司 | 熵编码设备和方法、熵解码设备和方法、及存储介质 |
US10826524B2 (en) | 2011-01-14 | 2020-11-03 | Ge Video Compression, Llc | Entropy encoding and decoding scheme |
US10855309B2 (en) | 2011-01-14 | 2020-12-01 | Ge Video Compression, Llc | Entropy encoding and decoding scheme |
CN107196662B (zh) * | 2011-01-14 | 2021-07-30 | Ge视频压缩有限责任公司 | 熵编码设备和方法、熵解码设备和方法、及存储介质 |
US11405050B2 (en) | 2011-01-14 | 2022-08-02 | Ge Video Compression, Llc | Entropy encoding and decoding scheme |
Also Published As
Publication number | Publication date |
---|---|
JPH10190475A (ja) | 1998-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3294026B2 (ja) | 高速可変長復号化装置 | |
JP3303225B2 (ja) | Lempel−Zivタイプ・アルゴリズムを用いたデータ圧縮装置 | |
US5946361A (en) | Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation | |
JPH0799812B2 (ja) | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 | |
US5113516A (en) | Data repacker having controlled feedback shifters and registers for changing data format | |
US5832037A (en) | Method of compressing and expanding data | |
US5572208A (en) | Apparatus and method for multi-layered decoding of variable length codes | |
US5617089A (en) | Huffman code decoding circuit | |
US20120047355A1 (en) | Information Processing Apparatus Performing Various Bit Operation and Information Processing Method Thereof | |
JP3371677B2 (ja) | 可変長復号化装置 | |
JP3346204B2 (ja) | 可変長符号復号装置 | |
JP3275224B2 (ja) | ディジタル信号処理システム | |
KR101204380B1 (ko) | 데이터 처리 회로, 비트 스트림으로부터 가변 길이 코드워드를 디코딩하는 방법과, 컴퓨터 판독가능한 기록 매체 | |
US7039186B2 (en) | Encryption key generation circuit | |
JP3304745B2 (ja) | 可変長符号復号化器 | |
KR100207428B1 (ko) | 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법 | |
US5920496A (en) | High speed correlator using up/down counter | |
JPH03179562A (ja) | データ記録装置及びデータ編集方法 | |
JP4011015B2 (ja) | Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 | |
JPH0661871A (ja) | パラレル・シリアル・データ変換回路 | |
EP0499225B1 (en) | Variable-length code decoding device | |
US7375663B2 (en) | Data simplifying and merging method for a voice decoding memory system | |
JP2537551B2 (ja) | 可変長符号復号回路 | |
JPH03179520A (ja) | データデコーダ | |
JP3054787B2 (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: 20020806 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070906 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080906 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090906 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100906 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110906 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |