JP3076461B2 - ハフマン復号化回路およびハフマン復号化方法 - Google Patents
ハフマン復号化回路およびハフマン復号化方法Info
- Publication number
- JP3076461B2 JP3076461B2 JP28486292A JP28486292A JP3076461B2 JP 3076461 B2 JP3076461 B2 JP 3076461B2 JP 28486292 A JP28486292 A JP 28486292A JP 28486292 A JP28486292 A JP 28486292A JP 3076461 B2 JP3076461 B2 JP 3076461B2
- Authority
- JP
- Japan
- Prior art keywords
- huffman
- decoding
- code
- data
- huffman 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 - Lifetime
Links
Description
により符号化されたハフマン符号を復号するためのハフ
マン復号化回路およびハフマン復号化方法に関する。
でいる。そのため、画像データをそのままの形で処理す
るのは、メモリ容量および通信速度の点で実用的ではな
い。そこで、画像データ圧縮技術が重要となる。
PEG(Joint Photographic Expert Group )がある。
JPEGでは、非可逆符号化を行なうDCT(離散コサ
イン変換)方式と、二次元空間でDPCM(Differenti
alPCM)を行なう可逆符号化方式が採用されている。
以下、DCT方式の画像データ圧縮を説明する。
構成を示すブロック図である。
される原画像データにDCT変換を行ない、DCT係数
を出力する。量子化器200は、量子化テーブル400
を参照してDCT係数に量子化処理を行ない、量子化さ
れたDCT係数(以下、量子化DCT係数と呼ぶ)を出
力する。エントロピー符号化器300は、符号化テーブ
ル500を参照して量子化DCT係数にエントロピー符
号化処理を行ない、圧縮データを出力する。エントロピ
ー符号化の方式としてハフマン符号化方式が用いられ
る。
が、符号化テーブル500を参照して圧縮データにエン
トロピー復号化処理を行ない、量子化DCT係数を出力
する。逆量子化器700は、量子化テーブル400を参
照して量子化DCT係数に逆量子化処理を行ない、DC
T係数を出力する。逆DCT装置800は、DCT係数
に逆DCT変換を行ない、再生画像データを出力する。
に、画像データを複数の8×8画素ブロックに分割す
る。図12に示すように、1つの8×8画素ブロック内
の各画素データの値をPX Y (X,Y=0,…,7)で
示す。ここで、X,Yがブロック内の画素データの位置
を表わしている。
次式による二次元DCT変換を行なう。
U,VはDCT係数の位置を表わす。U=V=0の場合
にはCU =CV =1/√2となり、その他の場合にはC
U =C V =1となる。さらに、画素データPX Y のビッ
ト精度が8ビットの場合にはL S =128となり、画素
データPX Y のビット精度が12ビットの場合にはLS
=2048となる。
U V が得られる。DCT係数S0 0はDC係数と呼ば
れ、残りの63個のDCT係数はAC係数と呼ばれる。
流成分)を示している。式(1)に示されるように、各
画素データPX Y よりLS を引くことにより、DC係数
の期待値を0にレベルシフトしている。
ロックの左上および右下がそれぞれDCT係数S0 0 ,
S7 7 に対応している。DCT変換されたブロックの左
から右に進むにつれて高周波の水平周波数成分を多く含
み、上から下に進むにつれて高周波の垂直周波数成分を
多く含むことになる。
T係数SU V から64個の画素データPX Y (X,Y=
0,…,7)を得ることができる。
にLS を加えることにより、レベルシフト分を元に戻し
ている。
びその画素ブロックをDCT変換した結果を示す。図1
3からわかるように、DC係数および低周波成分のAC
係数の絶対値が大きくなっている。たとえば、DC係数
S0 0 は260、AC係数S 0 1 は49、AC係数S
1 0 は−79である。
ルQU V を用いて次式により線形量子化され、量子化D
CT係数rU V が得られる。
14に、量子化DCT係数rU V 、DCT係数SU V お
よび量子化テーブルQU V の関係が示される。
述のハフマン復号化で得られた量子化DCT係数をr
U V とすると、次式により逆量子化を行なう。
を制御することができる。量子化テーブルQU V の値を
小さく設定すると、量子化DCT係数rU V の値が大き
くなり、画質のよい画像を符号化することができる。逆
に、量子化テーブルQU V の値を大きく設定すると、量
子化DCT係数rU V の値が小さくなり、符号化情報量
は減少するが、画質は劣化する。
変えることにより、画質および符号化情報量を自由に制
御することができる。
般に、人間の視覚はローパスフィルタの特性を持ってい
るといわれており、高周波成分には鈍感である。したが
って、高周波成分に対応するDCT係数には荒い量子化
を行なってもその影響があまり目立たない。そのため、
図15に示すように、量子化テーブルの高周波成分には
大きな値が設定されている。
対して図15に示される量子化テーブルを用いて量子化
を行なった結果を示す。たとえば、S0 0 =260,Q
0 0=16であるので、r0 0 =round(260/
16)=16となる。また、S0 1 =49,Q0 1 =1
1であるので、r0 1 =round(49/11)=4
となる。さらに、S1 0 =−79,Q1 0 =12である
ので、r1 0 =round(49/12)=−7とな
る。
縮データが出力される。以下に示すように、DC係数と
AC係数とで符号化方法が異なる。
す。DC係数のハフマン符号化では、1つ前のブロック
のDC係数Di - 1 と現在のブロックのDC係数Di と
の差分の値(DC差分値)ΔDCi を符号化する。上述
したように、DC係数は8×8画素ブロックの画素デー
タの平均値を示している。したがって、コンピュータグ
ラフィック画像のような特殊な画像を除いて、隣接する
ブロックのDCT係数が大きく変化することはあまりな
い。そのため、DC差分値は0の近傍に集中する。DC
差分値を符号化することにより高能率な符号化が期待で
きる。
って16のグループに分類される。すなわち、図19の
テーブルに従って、求められたDC差分値がどのグルー
プに属するかを求める。たとえば、DC差分値0のグル
ープ番号SSSSは“0”であり、DC差分値−1,1
のグループ番号SSSSは“1”である。また、DC差
分値−3,−2,2,3のグループ番号SSSSは
“2”であり、DC差分値−7〜−4,4〜7のグルー
プ番号SSSSは“3”である。
テーブルを用いてハフマン符号に符号化される。たとえ
ば、グループ番号SSSSが“2”であるDC差分値に
はハフマン符号“011”が割当てられ、グループ番号
SSSSが“3”であるDC差分値にはハフマン符号
“100”が割当てられている。
DC差分値−7〜−4,4〜7が含まれるので、3ビッ
トの付加ビットにより8個のDC差分値のうち1つが特
定される。付加ビットはDC差分値の小さい方から順に
小さい値が割当てられる。たとえば、グループ番号
“2”の場合には、DC差分値−7に付加ビット“00
0”を割当て、DC差分値−6に付加ビット“001”
を割当て、DC差分値7に“111”を割当てる。
在のブロックのDC係数が16であるとすれば、DC差
分値は−9となる。図19のテーブルより、DC差分値
−9のグループ番号SSSSは“4”である。したがっ
て、図20のハフマン符号テーブルにより、グループ番
号“4”のハフマン符号は“101”となる。DC差分
値−9はグループ番号“4”に属するDC差分値のうち
小さい方から7番目であるため、図20に示すように、
付加ビットは“0110”となる。
す。AC係数のハフマン符号化では、図23に示すよう
に、AC係数が、まずジグザグスキャンによって一次元
に配列される。この一次元に配列されたAC係数は、以
下に説明するように、連続する“0”の係数(無効係
数)の長さを示すラン長と“0”以外の係数(有効係
数)の値とを用いて符号化される。すなわち、無効係数
のラン長NNNNと有効係数のグループ番号SSSSと
を用いてハフマン符号化される。
てグループ分けされる。図24に示すように、グループ
番号SSSSは有効係数が属するグループを限定するだ
けである。1つのグループに属する有効係数のうちの1
つを特定するために、付加ビットが用いられる。AC係
数のハフマン符号化では、ラン長NNNNとグループ番
号SSSSとの組合せに対してハフマン符号が割当てら
れる。図25に、AC係数のためのハフマン符号テーブ
ルを示す。そのハフマン符号テーブルを用いて、ラン長
/グループ番号がハフマン符号に符号化される。
は、最後の有効係数に対応するハフマン符号の直後に
“EOB”(End of Block)を付け、その
ブロックのハフマン符号化を終了する。ただし、ブロッ
ク内の最後のAC係数が0以外のときには、“EOB”
は付けない。また、無効係数のラン長が“15”を越え
る場合には、16の無効係数ごとに無効係数のラン長1
6を表わす“ZRL”を残りのラン長が15以下になる
まで続けて付けた後、残りのラン長をNNNNとしてハ
フマン符号化する。
フマン符号化を説明する。まず、最初のAC係数の有効
係数はr0 1 =4である。図24のテーブルより、グル
ープ番号SSSSは“3”となる。また、無効係数のラ
ン長NNNNは0である。したがって、図25のハフマ
ン符号テーブルより、ハフマン符号は“100”とな
る。図26に示すように、有効係数4はグループ番号
“3”に属するAC係数のうち小さい方から5番目であ
るので、付加ビットは“100”となる。よって、有効
係数r0 1 は“100100”と符号化される。
ープ番号SSSSは“3”であり、無効係数のラン長N
NNNは0である。図26に示すように、有効係数−7
はグループ番号“3”に属するAC係数のうち最も小さ
いので、付加ビットは“000”となる。よって、有効
係数r1 0 は“100000”と符号化される。
はr1 1 =3である。図24のテーブルよりグループ番
号SSSSは“2”となる。この場合、AC係数r2 0
が0であるので、ラン長NNNNは1となる。したがっ
て、図25のハフマン符号テーブルよりハフマン符号は
“11011”となる。図26に示すように、有効係数
3はグループ番号“2”に属するAC係数のうち最も大
きいので、付加ビットは“11”となる。よって、AC
係数r2 0 ,r1 1 は“1101111”と符号化され
る。
図27に示すように、8×8画素ブロックの64個の画
素データを、連続する符号化データ(圧縮データ)に符
号化することができる。
長のハフマン符号および可変長の付加ビットからなる。
ハフマン符号の長さをハフマン符号長と呼び、付加ビッ
トの長さを付加ビット長と呼ぶ。また、ハフマン符号長
と付加ビット長との合計をトータルビット長と呼ぶ。ハ
フマン符号長および付加ビット長は各圧縮データによっ
て異なる。
示すブロック図である。
2ビットが、ラッチイネーブル機能を有する32ビット
のレジスタ1に並列に与えられる。レジスタ1の出力デ
ータは、同様にラッチイネーブル機能を有する32ビッ
トのレジスタ2に与えられる。レジスタ2の出力データ
およびレジスタ1の出力データは、64ビットのバレル
シフタ3に並列に与えられる。バレルシフタ3は、与え
られたデータを最大32ビットまでビットシフトする機
能を有する。
の16ビットは、メモリテーブル12に与えられる。メ
モリテーブル12は、与えられた16ビットのデータに
基づいて、トータルビット長データTBL、エンドオブ
ブロック符号EOB、ラン長データRL、付加ビット長
データABLおよびハフマン符号長データHCLを出力
する。
2から与えられるトータルビット長データTBLを累積
加算してバレルシフタ3のシフト量を算出する。加算器
6は、累積加算結果が32以上になるとキャリー信号C
Rを出力する。5ビットのレジスタ7は、加算器6の出
力データをラッチする。デコーダ8は、レジスタ7の出
力データをデコードしてバレルシフタ3のシフト量を制
御する。
から出力されるエンドオブブロック符号EOB、ラン長
データRL、付加ビット長データABLおよびハフマン
符号長データHCLならびにバレルシフタ3に保持され
る先頭の32ビットのデータをラッチする。付加ビット
抽出回路10は、レジスタ9から出力される付加ビット
長データABLおよびハフマン符号長データHCLに基
づいて32ビットのデータから付加ビットABを抽出す
る。
キャリー信号CRを受け、レジスタ1,2にラッチイネ
ーブル信号LE1を与え、レジスタ7,9にラッチイネ
ーブル信号LE2を与える。また、コントロール回路1
3は、メモリテーブル12の読出動作を制御する制御信
号CNTを発生する。
ル回路13にはクロック信号CKが与えられ、レジスタ
7およびコントロール回路13にはリセット信号RST
が与えられる。
を説明する。まず、リセット信号RSTによりコントロ
ール回路13がリセットされ、かつレジスタ7の内容が
0にクリアされる。それにより、デコーダ8から出力さ
れるバレルシフタ3のシフト量が0に設定される。
するハフマン符号)がデコードされる。コントロール回
路13からのイネーブル信号LE1によりレジスタ2に
圧縮データの最初の32ビットがラッチされ、レジスタ
1に圧縮データの次の32ビットがラッチされる。それ
により、バレルシフタ3にレジスタ2から出力される最
初の32ビットの圧縮データおよびレジスタ1から出力
される次の32ビットの圧縮データが与えられる。
6ビットが、アドレス信号としてメモリテーブル12に
与えられる。コントロール回路13からの制御信号CN
Tに応答してメモリテーブル12の読出動作が行なわれ
る。それにより、先頭の16ビットのデータに含まれる
DCハフマン符号に対応するハフマン符号長データHC
L、付加ビット長データABLおよびトータルビット長
データTBLが出力される。トータルビット長データT
BLは、加算器6に与えられ、累積加算される。
7,9にラッチイネーブル信号LE2を与える。レジス
タ7は、ラッチイネーブル信号LE2に応答して加算器
6の累積加算結果をラッチしてデコーダ8に与える。デ
コーダ8は、レジスタ7からの累積加算結果をデコード
してバレルシフタ3にシフト量を示すシフト信号を与え
る。バレルシフタ3は、圧縮データを累積加算結果分ビ
ットシフトする。
2に応答して、メモリテーブル12から読出されたハフ
マン符号長データHCLおよび付加ビット長データAB
Lならびにバレルシフタ3から出力される32ビットの
データをラッチして出力する。付加ビット抽出回路10
は、ハフマン符号長データHCLおよび付加ビット長デ
ータABLに基づいて、32ビットのデータから付加ビ
ットABを抽出する。このようにして、DCハフマン符
号のデコードが終了する。
に対応するハフマン符号)がデコードされる。ACハフ
マン符号のデコード時には、メモリテーブル12から、
ハフマン符号長データHCL、付加ビット長データAB
L、ラン長データRLおよびトータルビット長データT
BLが出力される。
上になると、加算器6からキャリー信号CRが出力され
る。コントロール回路13は、キャリー信号CRに応答
して、レジスタ1,レジスタ2にラッチイネーブル信号
LE1を与える。それにより、バレルシフタ3の後半の
32ビットに新たな32ビットの圧縮データが与えられ
る。
エンドオブブロック符号EOBが読出されるか、または
ブロック完了まで、ACハフマン符号のデコードが続け
られる。
およびラン長データRLに基づいて量子化DCT係数を
得ることができる。
回路において、ハフマン符号化の速度は、バレルシフタ
3、加算器6、デコーダ8およびメモリテーブル12を
構成するハードウェアの動作速度により決定される。こ
れらのうち、メモリテーブル12のアクセス時間が、ハ
フマン符号化処理の高速化の妨げとなっている。
符号の最大符号長に等しい16ビットの圧縮データがア
ドレス信号として与えられる。そのため、メモリテーブ
ル12のアドレス空間は21 6 ワードとなる。このよう
に、メモリテーブル12の容量が非常に大きくなる。
後半のビットでメモリテーブルを分割することにより必
要なメモリ容量を減らすことが行なわれている。しか
し、それでも、ハフマン符号の数の約5〜6倍のメモリ
容量が必要となる。このように、依然としてハフマン復
号化回路の回路規模は大きい。
にハフマン復号化処理を行なうことができるハフマン復
号化回路およびハフマン復号化方法を提供することであ
る。
ン復号化回路は、複数のデコード手段および選択手段を
備える。複数のハフマン符号は符号長に基づいて複数の
グループに分類される。複数のデコード手段は、複数の
グループに対応して設けられかつ各々が対応するグルー
プ内のハフマン符号をデコードする。選択手段は、与え
られたハフマン符号の先頭ビットから連続する同一値の
ビット数に基づいて複数のデコード手段の1つを選択し
て活性化する。
る第1のデコード手段およびロジック回路からなる第2
のデコード手段を含んでもよい。第1のデコード手段は
長い符号長のハフマン符号を含むグループに割当てら
れ、第2のデコード手段は短い符号長のハフマン符号を
含むグループに割当てられる。
長およびトータルビット長を出力する。付加ビット長お
よびトータルビット長からハフマン符号長を算出する演
算手段をさらに含んでもよい。
ステップを含む。複数のハフマン符号を符号長に基づい
て複数のグループに分類する。与えられたハフマン符号
をデコードする複数のデコード手段を複数のグループに
それぞれ割当てる。与えられたハフマン符号の先頭ビッ
トから連続する同一値のビット数に基づいて複数のデコ
ード手段の1つを選択して活性化する。
る第1のデコード手段およびロジック回路からなる第2
のデコード手段を含んでもよい。第1のデコード手段を
長い符号長のハフマン符号を含むグループに割当て、第
2のデコード手段を短い符号長のハフマン符号を含むグ
ループに割当てる。
マン復号化方法においては、複数のハフマン符号が符号
長に基づいて複数のグループに分類され、複数のグルー
プに複数のデコード手段がそれぞれ割当てられる。それ
により、デコード手段の全体の容量および回路規模が小
さくなる。
号長のハフマン符号では先頭ビットからあるビットまで
同一値が連続し、短い符号長のハフマン符号では先頭ビ
ットからあるビットまでに異なる値が混在する。
続する同一値のビット数に基づいて、与えられたハフマ
ン符号がどのグループに属するかを判別することがで
き、そのグループに割当てられたデコード手段を選択す
ることができる。
の高いデータには短い符号長のハフマン符号が割当てら
れ、出現頻度の低いデータには長い符号長のハフマン符
号が割当てられる。
ード手段は、動作速度は速いが回路規模が比較的大きく
なる。それに対して、メモリ素子により構成されるデコ
ード手段は、動作速度は速くないが、回路規模は比較的
小さくなる。
ハフマン符号を高速動作が可能なロジック回路によりデ
コードし、出現頻度の低い長い符号長のハフマン符号を
回路規模が小さいメモリ素子によりデコードすると、全
体として、高速動作が可能でかつ回路規模が小さい復号
化回路が得られる。
長からハフマン符号長を算出する演算手段をさらに設け
れば、各デコード手段が付加ビット長、トータルビット
長およびハフマン符号長を出力する場合に比べて、各デ
コード手段の回路規模が小さくなる。
号化回路およびハフマン復号化装置を図面を参照しなが
ら詳細に説明する。
フマン復号化方法では、図1に示すようにハフマン符号
がハフマン符号長に基づいて3つのグループG1,G
2,G3に分類される。
符号はグループG1に割当てられ、ハフマン符号長が7
ビット以上12ビット以下のハフマン符号はグループG
2に割当てられ、ハフマン符号長が13ビット以上16
ビット以下のハフマン符号はグループG3に割当てられ
る。
る。6ビット以下のハフマン符号では、先頭ビットから
第4ビットまでに少なくとも1つの“0”が存在する。
また、7ビット以上12ビット以下のハフマン符号で
は、先頭ビットから第4ビットまでがすべて“1”であ
りかつ第5ビットから最終ビットまでに少なくとも1つ
の“0”が存在する。さらに、13ビット以上16ビッ
ト以下のハフマン符号では、先頭ビットから第9ビット
までがすべて“1”となっている。
られたハフマン符号がグループG1,G2,G3のいず
れに属するかを判別することができる。
のロジック回路からなるデコード回路によりデコードさ
れ、グループG2,G3に属するハフマン符号はRAM
(ランダムアクセスメモリ)からなるメモリテーブルに
よりデコードされる。
ループG1のハフマン符号を含む圧縮データの先頭ビッ
トから第6ビットまでが入力される。
頭ビットから第4ビットまでがすべて“1”であるの
で、第5ビットから第12ビットまでを用いて1つのハ
フマン符号を特定することができる。そのため、メモリ
テーブルには、グループG2のハフマン符号を含む圧縮
データの第5ビットから第12ビットまでがアドレス信
号として与えられる。
頭ビットから第9ビットまでがすべて“1”であるの
で、第10ビットから第16ビットまでを用いて1つの
ハフマン符号を特定することができる。そのため、メモ
リテーブルには、グループG3のハフマン符号を含む圧
縮データの第10ビットから第16ビットまでがアドレ
ス信号として与えられる。
て、デコード回路の回路規模が小さくなり、かつ各メモ
リテーブルに必要なメモリ容量が小さくなる。
マン符号を高速のロジック回路によりデコードすること
によって、ハフマン復号化回路の全体の処理速度が高速
化する。なお、シミュレーションによれば、6ビット以
下のハフマン符号の出現頻度は約85%である。
回路の主要部の構成を示すブロック図である。
マン復号化回路と異なるのは、メモリテーブル12の代
わりにデコーダ4およびデコーダブロック5が設けら
れ、コントロール回路13の代わりにコントロール回路
11が設けられている点である。
は、ラッチイネーブル機能を有する32ビットのレジス
タ1に並列に与えられる。レジスタ1の出力データは、
同様にラッチイネーブル機能を有する32ビットのレジ
スタ2に与えられる。レジスタ2の出力データおよびレ
ジスタ1の出力データは、64ビットのバレルシフタ3
に並列に与えられる。バレルシフタ3は、与えられたデ
ータを最大32ビットまでビットシフトする機能を有す
る。
の16ビットは、デコーダ4およびデコーダブロック5
に与えられる。デコーダ4は、バレルシフタ3から与え
られる16ビットのデータに基づいて、与えられたデー
タが6ビット以下のハフマン符号(グループG1)を含
むか、7ビット以上12ビット以下のハフマン符号(グ
ループG2)を含むかあるいは13ビット以上16ビッ
ト以下のハフマン符号(グループG3)を含むかを検出
し、デコーダ選択信号DS1,DS2,DS3を発生す
る。
11から与えられるDC符号選択信号DCSLがアクテ
ィブ状態のときには、デコーダ選択信号DS1,DS
2,DS3を出力しない。
DS1,DS2,DS3に応答して、バレルシフタ3か
ら与えられる16ビットのデータをデコードし、トータ
ルビット長データTBL、エンドオブブロック符号EO
B、ラン長データRL、付加ビット長データABLおよ
びハフマン符号長データHCLを発生する。
5から与えられるトータルビット長データTBLを累積
加算してバレルシフタ3のシフト量を算出する。加算器
6は、累積加算結果が32以上になると、キャリー信号
CRを出力する。5ビットのレジスタ7は、加算器6の
出力データをラッチする。デコーダ8は、レジスタ7の
出力データをデコードしてバレルシフタ3のシフト量を
制御する。
から出力されるエンドオブブロック符号EOB、ラン長
データRL、付加ビット長データABLおよびハフマン
符号長データHCLならびにバレルシフタ3から出力さ
れる先頭の32ビットのデータをラッチする。付加ビッ
ト抽出回路10は、レジスタ9から出力される付加ビッ
ト長データABLおよびハフマン符号長データHCLに
基づいて、バレルシフタ3から出力される32ビットの
データから付加ビットABを抽出する。
り発生されるデコーダ選択信号DS1および加算器6か
ら出力されるキャリー信号CRを受け、レジスタ1,2
にラッチイネーブル信号LE1を与え、レジスタ7,9
にラッチイネーブル信号LE2を与える。
ル回路11にはクロック信号CKが与えられ、レジスタ
7およびコントロール回路11にはリセット信号RST
が与えられる。
を示すブロック図である。デコーダブロック5は、デコ
ード回路51、メモリテーブル52、メモリテーブル5
3、デコード回路54、減算器55、3ステートバッフ
ァ56およびゲート回路57を含む。
なロジック回路により構成され、メモリテーブル52,
53はRAMにより構成される。
データの先頭ビットから第6ビットまでが与えられる。
メモリテーブル52には、16ビット圧縮データの第5
ビットから第12ビットまでが与えられる。メモリテー
ブル53には、16ビットの圧縮データの第10ビット
から第16ビットまでが与えられる。デコード回路54
には、16ビットの圧縮データの先頭ビットから第9ビ
ットまでが与えられる。
S1に応答して活性化され、6ビット以下のACハフマ
ン符号をデコードして、ハフマン符号長データHCL、
ラン長データRL、付加ビット長データABL、トータ
ルビット長データTBLおよびエンドオブブロック符号
EOBを出力する。メモリテーブル52は、デコーダ選
択信号DS2に応答して活性化され、7ビット以上12
ビット以下のACハフマン符号をデコードして、ラン長
データRL、付加ビット長データABLおよびトータル
ビット長データTBLを出力する。メモリテープル53
は、デコーダ選択信号DS3に応答して活性化され、1
3ビット以上16ビット以下のACハフマン符号をデコ
ードして、ラン長データRL、付加ビット長データAB
Lおよびトータルビット長データTBLを出力する。
CSLに応答して活性化され、DCハフマン符号をデコ
ードして、ハフマン符号長データHCL、付加ビット長
データABLおよびトータルビット長データTBLを出
力する。
から出力されるトータルビット長データTBLから付加
ビット長データABLを減算し、ハフマン符号長データ
HCLを出力する。減算器55から出力されるハフマン
符号長データHCLは3ステートバッファ56に与えら
れる。一方、ゲート回路57の一方の入力端子にはデコ
ーダ選択信号DS2が与えられ、他方の入力端子にはデ
コーダ選択信号DS3が与えられる。3ステートバッフ
ァ56はゲート回路57の出力信号により制御される。
かがアクティブ状態になると、3ステートバッファ56
は同通状態となり、デコーダ選択信号DS2,DS3の
両方が非アクティブ状態になると、3ステートバッファ
56は高インピーダンス状態になる。
復号化回路の動作を説明する。まず、リセット信号RS
Tによりコントロール回路11がリセットされ、かつレ
ジスタ7の内容が0にクリアされる。それにより、デコ
ーダ8から出力されるバレルシフタ3のシフト量が0に
設定される。
る。コントロール回路11は、DC符号選択信号CDS
Lをアクティブ状態にする。このとき、デコーダ4から
発生されるデコーダ選択信号DS1,DS2,DS3は
すべて非アクティブ状態となっている。それにより、デ
コーダブロック5内のデコード回路54が活性状態にな
り、デコード回路51およびメモリテーブル52,53
が非活性状態になる。
イネーブル信号LE1によりレジスタ2に圧縮データの
最初の32ビットがラッチされ、レジスタ1に圧縮デー
タの次の32ビットがラッチされる。それにより、バレ
ルシフタ3に、レジスタ2から出力される最初の32ビ
ットの圧縮データおよびレジスタ1から出力される次の
32ビットの圧縮データが与えられる。
16ビットはデコーダ4およびデコーダブロック5に与
えられる。デコーダブロック5内のデコード回路51に
より16ビットの圧縮データに含まれるDCハフマン符
号がデコードされ、ハフマン符号長データHCL、付加
ビット長データABLおよびトータルビット長データT
BLが出力される。トータルビット長データTBLは加
算器6に与えられ、累積加算される。
出力されるデコード終了信号(図示せず)に応答してラ
ッチイネーブル信号LE1,LE2のタイミングを制御
する。コントロール回路11は、デコーダ4からデコー
ド終了信号を受けると、直ちにレジスタ7,9にラッチ
イネーブル信号LE2を与える。
2に応答して、加算器6の累積加算結果をラッチしてデ
コーダ8に与える。デコーダ8は、レジスタ7からの累
積加算結果をデコードして、バレルシフタ3にシフト量
を示すシフト信号を与える。バレルシフタ3は、圧縮デ
ータを累積加算結果分ビットシフトする。
2に応答して、デコーダブロック5から出力されるハフ
マン符号長データHCLおよび付加ビット長データAB
Lならびにバレルシフタ3から出力される32ビットの
圧縮データをラッチして出力する。付加ビット抽出回路
10は、レジスタ9から与えられるハフマン符号長デー
タHCLおよび付加ビット長データABLに基づいて、
32ビットの圧縮データから付加ビットABを抽出して
出力する。
と、コントロール回路11は、DC符号選択信号DCS
Lを非アクティブ状態にする。それにより、デコーダ4
は、バレルシフタ3から与えられる16ビットの圧縮デ
ータに基づいて、デコーダ選択信号DS1,DS2,D
S3の1つをアクティブ状態にする。
になると、デコーダブロック5内のデコード回路51に
より圧縮データに含まれるACハフマン符号がデコード
され、ハフマン符号長データHCL、ラン長データR
L、付加ビット長データABLおよびトータルビット長
データTBLが出力される。
になると、デコーダブロック5内のメモリテーブル52
から、圧縮データに含まれるACハフマン符号に対応す
るラン長データRL、付加ビット長データABLおよび
トータルビット長データTBLが読出される。
になると、デコーダブロック5内のメモリテーブル53
から、圧縮データに含まれるACハフマン符号に対応す
るラン長データRL、付加ビット長データABLおよび
トータルビット長データTBLが読出される。
ィブ状態のときには、コントロール回路11から減算器
55に与えられるイネーブル信号SEがアクティブ状態
になり、減算器55が活性化される。減算器55は、ト
ータルビット長データTBLから付加ビット長データA
BLを減算し、ハフマン符号長データHCLを3ステー
トバッファ56に与える。このとき、ゲート回路57の
出力信号はアクティブ状態となっているので、3ステー
トバッファ56は同通状態となる。したがって、ハフマ
ン符号長データHCLが3ステートバッファ56から出
力される。減算器55の演算は加算器6の演算と並列に
行なわれるので、減算器55の演算により処理時間が増
大することはない。このように減算器55を用いてハフ
マン符号長データHCLを算出することによりメモリテ
ーブル52,53のメモリ容量を削減することが可能と
なる。
デコード終了信号を受けると、レジスタ7,9にラッチ
イネーブル信号LE2を与える。レジスタ7は、ラッチ
イネーブル信号LE2に応答して、加算器6の累積加算
結果をラッチしてデコーダ8に与える。デコーダ8は、
レジスタ7から与えられる累積加算結果をデコードし
て、バレルシフタ3にシフト量を示すシフト信号を与え
る。バレルシフタ3は、圧縮データを累積加算結果分ビ
ットシフトする。
2に応答して、デコーダブロック5から出力されるハフ
マン符号長データHCL、付加ビット長データABLお
よびラン長データRLならびにバレルシフタ3から出力
される32ビットの圧縮データをラッチして出力する。
付加ビット抽出回路10は、レジスタ9から出力される
ハフマン符号長データHCLおよび付加ビット長データ
ABLに基づいて、32ビットの圧縮データから付加ビ
ット長ABを抽出して出力する。
上になると、加算器6からキャリー信号CRが出力され
る。コントロール回路11は、キャリー信号CRに応答
して、レジスタ1にラッチイネーブル信号LE1を与え
る。これにより、バレルシフタ3の後半の32ビットに
新たな32ビットの圧縮データが与えられる。
デコード回路51からエンドオブブロック符号EOBが
出力されるまで、ACハフマン符号のデコードが続けら
れる。
ある。デコーダ4は、4入力ANDゲート41、6入力
NANDゲート42および2入力NANDゲート43を
含む。
16ビットの圧縮データの先頭ビットから第4ビットま
でが与えられる。ANDゲート41の出力端子からデコ
ーダ選択信号DS1が出力される。NANDゲート42
の1つの入力端子にはANDゲート41の出力信号が与
えられ、残りの5つの入力端子には16ビットの圧縮デ
ータの第5ビットから第9ビットまでが与えられる。N
ANDゲート42の出力端子からデコーダ選択信号DS
3が出力される。NANDゲート43の一方の入力端子
にはNANDゲート42の出力信号が与えられ、他方の
入力端子にはANDゲート41の出力信号が与えられ
る。NANDゲート43の出力端子からデコーダ選択信
号DS2が出力される。
第4ビットまでの少なくとも1つが“0”であれば、A
NDゲート41から出力されるデコーダ選択信号DS1
がローレベル(アクティブ状態)となる。このとき、N
ANDゲート42から出力されるデコーダ選択信号DS
3およびNANDゲート43から出力されるデコーダ選
択信号DS2はハイレベル(非アクティブ状態)とな
る。
第4ビットまでがすべて“1”であれば、ANDゲート
41から出力されるデコーダ選択信号DS1はハイレベ
ルとなる。このとき、16ビットの圧縮データの第5ビ
ットから第9ビットまでの少なくとも1つが“0”であ
れば、NANDゲート42から出力されるデコーダ選択
信号DS3がハイレベルとなり、NANDゲート43か
ら出力されるデコーダ選択信号DS2がローレベル(ア
クティブ状態)となる。
第9ビットまでがすべて“1”であれば、ANDゲート
41から出力されるデコーダ選択信号DS1がハイレベ
ルとなり、NANDゲート42から出力されるデコーダ
選択信号DS3がローレベル(アクティブ状態)とな
る。このとき、NANDゲート43から出力されるデコ
ーダ選択信号DS2をハイレベルとなる。
ロック図である。デコーダ回路51は、組合せ回路51
1、および6ビット以下のハフマン符号の数と同じ数の
19ビットのレジスタ512を含む。
データの先頭ビットから第6ビットまでが与えられる。
各レジスタ512には、ACハフマン符号に対応するハ
フマン符号長データHCL、ラン長データRL、付加ビ
ット長データABLおよびトータルビット長データTB
Lが予め記憶される。また、エンドオブブロック符号E
OBが、該当するレジスタ512に予め記憶される。
って、複数のレジスタ512の1つが選択され、選択さ
れたレジスタ512からハフマン符号長データHCL、
ラン長データRL、付加ビット長データABLおよびト
ータルビット長データTBLが出力される。選択された
レジスタ512にエンドオブブロック符号EOBが記憶
されている場合には、エンドオブブロック符号EOBも
出力される。
ブロック図である。メモリテーブル52はスタティック
RAM521からなる。
22には、16ビットの圧縮データの第5ビットから第
12ビットまでがアドレス信号として与えられる。
は8ビットであるので、スタティックRAM521のア
ドレス空間は28 ワードとなる。スタティックRAM5
21の各アドレスには、ハフマンAC符号に対応するラ
ン長データRL、付加ビット長データABLおよびトー
タルビット長データTBLが予め記憶される。
22に与えられるデータに従って、データ線523を介
してラン長データRL、付加ビット長データABLおよ
びトータルビット長データTBLが読出される。
ブロック図である。メモリテーブル53はスタティック
RAM531からなる。
32には、16ビットの圧縮データの第10ビットから
第16ビットまでがアドレス信号として与えられる。
ドレス信号は7ビットであるので、スタティックRAM
531のアドレス空間は27 ワードとなる。スタティッ
クRAM531の各アドレスには、ACハフマン符号に
対応するラン長データRL、付加ビット長データABL
およびトータルビット長データTBLが予め記憶され
る。
32に与えられるデータに従って、データ線533を介
してラン長データRL、付加ビット長データABLおよ
びトータルビット長データTBLが読出される。
ロック図である。デコード回路54は、組合せ回路54
1、およびDCハフマン符号の数と等しい数の14ビッ
トのレジスタ542を含む。
データの先頭ビットから第9ビットまでが与えられる。
各レジスタ542には、DCハフマン符号に対応するハ
フマン符号長データHCL、付加ビット長データABL
およびトータルビット長データTBLが予め記憶され
る。
って、複数のレジスタ542の1つが選択され、選択さ
れたレジスタ542からハフマン符号長データHCL、
付加ビット長データABLおよびトータルビット長デー
タTBLが出力される。
9に示されるデコード回路54の動作速度は、図7に示
されるメモリテーブル52および図8に示されるメモリ
テーブル53の動作速度よりも1桁速い。上記実施例の
ように、デコードブロック5を構成することによって、
ハフマン復号化回路の処理速度が高速になり、かつ回路
規模が小さくなる。
ハフマン符号を符号長に基づいて複数のグループに分類
し、複数のグループに複数のデコード手段をそれぞれ割
当てることにより、デコード手段の全体の容量および回
路規模が小さくなる。
ン符号を高速動作が可能なロジック回路によりデコード
し、かつ出現頻度の低い長い符号長のハフマン符号を回
路規模が小さいメモリ素子によりデコードすることによ
り、全体として、高速動作が可能でかつ回路規模が小さ
いハフマン復号化回路が得られる。
ト長からハフマン符号長を算出する演算手段をさらに設
けることによって、各デコード手段の回路規模をさらに
縮小することが可能となる。
ハフマン復号化方法におけるハフマン符号のグループ化
を示す図である。
際にデコード回路またはメモリテーブルに与えられるビ
ットを示す図である。
部の構成を示すブロック図である。
ブロックの詳細な構成を示すブロック図である。
の詳細な構成を示す回路図である。
路の構成を示すブロック図である。
ブルの構成を示すブロック図である。
ブルの構成を示すブロック図である。
路の構成を示すブロック図である。
構成を示すブロック図である。
ブロックを示す図である。
を示す図である。
テーブルの関係を示す図である。
ある。
示す図である。
る。
ある。
る。
す図である。
る。
示すブロック図である。
Claims (5)
- 【請求項1】 符号長に基づいて複数のグループに分類
されるハフマン符号を復号するためのハフマン復号化回
路であって、 符号長の長いグループに割当てられ、その割当てられた
グループに属するハフマン符号をデコードする第1のデ
コード手段と、 符号長の短いグループに割当てられ、その割当てられた
グループに属するハフマン符号を前記第1のデコード手
段よりも高速でデコードする第2の デコード手段と、 与えられたハフマン符号の先頭から数ビットに基づいて
ハフマン符号が前記グループのいずれに属するかを判別
し、前記第1および第2のデコード手段のうちその判別
したグループに割当てられたデコード手段を選択して活
性化する選択手段とを備えた、ハフマン復号化回路。 - 【請求項2】 前記第1のデコード手段はメモリ素子か
らなり、前記第2のデコード手段はロジック回路からな
る、請求項1記載のハフマン復号化回路。 - 【請求項3】 前記第1および第2のデコード手段の各
々は、付加ビット長およびトータルビット長を含む復号
化情報を出力し、 前記付加ビット長および前記トータルビット長からハフ
マン符号長を算出する演算手段をさらに含む、請求項1
記載のハフマン復号化回路。 - 【請求項4】 符号長に基づいて複数のグループに分類
されるハフマン符号を復号するためのハフマン復号化方
法であって、 与えられたハフマン符号の先頭から数ビットに基づいて
ハフマン符号が前記グループのいずれに属するかを判別
し、 ハフマン符号が符号長の長いグループに属すると判別し
た場合、そのグループに割当てられた第1のデコード手
段を選択し、その選択した第1のデコード手段によりそ
のハフマン符号をデコードし、 ハフマン符号が符号長の短いグループに属すると判別し
た場合、そのグループに割当てられた第2のデコード手
段を選択し、その選択した第2のデコード手段によりそ
のハフマン符号を前記第1のデコード手段よりも高速で
デコードする、 ハフマン復号化方法。 - 【請求項5】 前記第1のデコード手段はメモリ素子か
らなり、前記第2のデコード手段はロジック回路からな
る、請求項4記載のハフマン復号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28486292A JP3076461B2 (ja) | 1992-10-23 | 1992-10-23 | ハフマン復号化回路およびハフマン復号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28486292A JP3076461B2 (ja) | 1992-10-23 | 1992-10-23 | ハフマン復号化回路およびハフマン復号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06139346A JPH06139346A (ja) | 1994-05-20 |
JP3076461B2 true JP3076461B2 (ja) | 2000-08-14 |
Family
ID=17683995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28486292A Expired - Lifetime JP3076461B2 (ja) | 1992-10-23 | 1992-10-23 | ハフマン復号化回路およびハフマン復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3076461B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961474B1 (en) | 1998-02-27 | 2005-11-01 | Shikino High-Tech Co., Ltd. | Huffman encoder for encoding/decoding DCT coefficients |
JP4526209B2 (ja) * | 2001-05-15 | 2010-08-18 | パナソニック株式会社 | 可変長符号伸長方法および装置並びに可変長符号圧縮伸長方法および装置 |
JP2007158698A (ja) * | 2005-12-05 | 2007-06-21 | Matsushita Electric Ind Co Ltd | 画像復号装置及び画像復号方法 |
-
1992
- 1992-10-23 JP JP28486292A patent/JP3076461B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH06139346A (ja) | 1994-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shahbahrami et al. | Evaluation of Huffman and arithmetic algorithms for multimedia compression standards | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
US7764842B2 (en) | Image encoding method, image decoding method, image encoding apparatus, image decoding apparatus, image encoding program, and image decoding program | |
KR101818102B1 (ko) | 인코딩된 비디오 데이터의 변환 유닛의 서브세트를 인코딩 및 디코딩하는 방법, 장치 및 시스템 | |
KR102466326B1 (ko) | 변환 계수 코딩 | |
KR100813877B1 (ko) | 효율적인 h.264/avc cavlc 디코딩 방법 | |
Moon et al. | An efficient decoding of CAVLC in H. 264/AVC video coding standard | |
US7953285B2 (en) | Method and circuit of high performance variable length coding and decoding for image compression | |
JPH099261A (ja) | 信号圧縮装置 | |
Hu et al. | A new lossless compression scheme based on Huffman coding scheme for image compression | |
JP4181887B2 (ja) | 可変長符号化装置、及びその方法 | |
KR0148151B1 (ko) | 개선된 차분동부호테이블을 이용한 차분동벡터값의 가변장부호화방법 및 그 장치 | |
Amer et al. | Towards MPEG-4 part 10 system on chip: a VLSI prototype for context-based adaptive variable length coding (CAVLC) | |
JP2009021775A (ja) | 符号化装置及び符号化方法 | |
JP3076461B2 (ja) | ハフマン復号化回路およびハフマン復号化方法 | |
JP2001217721A (ja) | ハフマン符号化装置、ハフマン符号化方法およびハフマン符号化処理プログラムを記録した記録媒体 | |
Lee et al. | A design of high-performance pipelined architecture for H. 264/AVC CAVLC decoder and low-power implementation | |
JP2003174365A (ja) | 復号化装置及びその方法 | |
Hmida et al. | A high performance architecture design of cavlc coding suitable for real-time applications | |
JP3049265B2 (ja) | 画像データ符号化回路 | |
Larrauri | A new Algorithm for Lossless Compression applied to two-dimensional Static Images | |
JP4447903B2 (ja) | 信号処理装置、信号処理方法、記録媒体及びプログラム | |
JP2003333339A (ja) | 画像符号化装置及び画像符号化方法 | |
JP2008141382A (ja) | 符号化装置および方法、並びにプログラム | |
JPH04274674A (ja) | データ変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19991109 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000530 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080609 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090609 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100609 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100609 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 13 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 13 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 13 |