JP3332619B2 - 復号装置およびその方法 - Google Patents
復号装置およびその方法Info
- Publication number
- JP3332619B2 JP3332619B2 JP29528194A JP29528194A JP3332619B2 JP 3332619 B2 JP3332619 B2 JP 3332619B2 JP 29528194 A JP29528194 A JP 29528194A JP 29528194 A JP29528194 A JP 29528194A JP 3332619 B2 JP3332619 B2 JP 3332619B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- length
- bit
- bits
- huffman
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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/425—Conversion 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 Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
長符号を復号する復号装置およびその方法に関する。
進歩は著しい。ディジタル化された静止画像や動画信号
の圧縮技術としては、JPEG(Joint Photographic Expert
s Group)やMPEG(Moving Picture Experts Group)などに
より提案された圧縮方式が世界的な標準として定着しつ
つある。
e Transform)を用いて画像信号を直交変換した後、視覚
的に目立たない部分の信号成分を取除くことで情報量を
減らし、さらに情報量を圧縮するためにハフマン符号化
などを行う。ハフマン符号は、符号(コード)の発生頻
度に応じて可変長の符号を割当てるもので、発生頻度の
高い符号ほどビット長の短い符号を割当てて符号化する
ことにより、情報量を減らすものである。ハフマン符号
をテーブルを使用して復号する場合、そのテーブルのメ
モリサイズは復号の処理速度と相反する関係にあり、次
の二つの方法の何れかを選択することができる。
を小さくする方法 (2)テーブルのメモリサイズを大きくして処理を速くす
る方法 方法(1)の極端なものは、1サイクルで1ビットずつ復号
することになり、一つのハフマン符号を復号するのに数
サイクルを要する。一方、方法(2)の極端なものは、1サ
イクルで一つのハフマン符号を復号するものである。も
ちろん、前記二つの極端な方法の中間的な方法、すなわ
ち、1サイクルで2ビットあるいはそれ以上のビットを復
号する方法もある。
ン符号を他の情報に変換することなく、その符号をその
ままテーブルに入力するか、あるいは、その符号の一部
をそれ以前に復号して得られた情報に連結してテーブル
に入力するものである。
号する装置の構成を示す図で、最大符号長16ビットのハ
フマン符号を8ビットの固定長符号に復号するものであ
る。
たデータを入力する端子、102は入力したデータを一時
的に蓄えるバッファである。ハフマン符号は可変長であ
るため、復号する際の出力データレートを一定に保つ
と、入力データレートが一定ではなくなるのでバッファ
102が必要になる。
で入力されたデータを連結し、既に復号されたデータを
取除いた後の先頭16ビットを取出すものである。104は
取出された16ビットデータ中のハフマン符号を復号する
ための復号テーブル、105は復号した固定長の符号(8ビ
ット)を出力する端子、106は復号したハフマン符号の
ビット長を示す4ビットの信号で、アンパッキング回路1
03に送られて、既に復号されたデータを取除くために用
いられる。この4ビットの信号106は、ビット長を直接表
す場合と、(ビット長-1)を表す場合とがあり、図1の
例では(ビット長-1)を表している。最大符号長が16ビ
ットの場合、この符号長を直接表すと5ビット必要にな
るが、0ビットの符号長は存在しないので符号長1ビット
を‘0000’と表現する、すなわち(ビット長-1)で表す
ことにより4ビットで最大16ビットの符号長を表すこと
が可能になる。ただし、最大符号長が2のべき乗でない
場合はどちらで表しても差はない。
モリサイズは、16ビット入力12ビット出力であるから、
次式に示すように96kバイトになる。 2 16 ×12 = 64k×12 = 768kビット = 96kバイト …(1)
した場合の構成を示す図である。
フマン符号を8ビットの固定長符号(NNNN信号4ビットと
SSSS信号4ビット)に復号するが、ハフマン符号の間に
は付加ビットと称する情報が挿入されていて、復号に際
しては、この付加ビットを取出すための機構が必要にな
る。付加ビットの最大ビット長を10ビットとすると、図
2におけるアンパッキング回路200から出力する信号は26
ビット必要になる。この26ビット信号の先頭16ビットは
復号テーブル104に送られ、図1と同様に8ビットの固定
長符号と4ビットの符号長情報106に変換される。一方、
26ビット信号はシフタ201に送られ、符号長情報106に基
づいて、復号されたハフマン符号が取除かれ(26ビット
信号を符号長分だけシフトすることで実現する)、先頭
の10ビットが端子202に出力される。なお、シフタ201か
ら出力される10ビットの信号がすべて付加ビット信号と
いうわけではなく、復号テーブル104から出力されるSSS
S信号の値が示す上位数ビットのみが付加ビット信号で
ある。
て、次のハフマン符号を復号する際、図1に示した構成
の場合は、アンパッキング回路103で、復号し終わった
ハフマン符号のビット長分だけ既に復号されたデータを
取除けばよかったが、図2に示すJPEG復号の場合は、付
加ビット信号も取除く必要がある。そこで、符号長情報
106と付加ビットのビット長を表す信号203(SSSS信号)
とを加算器204で加算して、その加算結果をアンパッキ
ング回路200に送り、1サイクルごとにハフマン符号と付
加ビットの両方を取除くようにする。
おいては、次のような問題点があった。つまり、ハフマ
ン符号を高速に復号しようとすると、復号テーブルのメ
モリサイズが大きくなり、次のような欠点が発生する。
プ面積が大きくなりコストが高くなる。 (2) 復号テーブルの書き換えに時間がかかる。 (3) 復号テーブルの情報量が多いため、圧縮する情報
(画像情報など)ごとに最適なハフマン符号化を行うこ
とができない。 (4) もし、欠点(3)を解決しようとして、圧縮した情報
ごとに最適な復号テーブルをもたせると情報量が増加し
て、情報量を圧縮した意味、つまり最適符号化した意味
がなくなる。
ので、メモリサイズの小さい復号テーブルを用いて高速
な復号を行うことを目的とする。
達成する一手段として、以下の構成を備える。
含む入力データを複数の基準値と比較した結果に基づ
き、その可変長符号の符号長を示す符号長情報の一部、
および、その可変長符号に対応する符号番号を演算する
演算手段と、前記符号番号を、その符号番号に対応する
固定長符号および前記符号長情報の残部に変換する変換
手段とを有することを特徴とする。また、可変長符号を
含む入力データを複数の基準値と比較した結果に基づ
き、その可変長符号の符号長を示す符号長情報の一部お
よび残部、並びに、その可変長符号に対応する符号番号
を演算する演算手段と、前記符号番号を、その符号番号
に対応する固定長符号に変換する変換手段とを有するこ
とを特徴とする。
含む入力データを複数の基準値と比較した結果に基づ
き、その可変長符号の符号長を示す符号長情報の一部、
および、その可変長符号に対応する符号番号を演算し、
前記符号番号を、その符号番号に対応する固定長符号お
よび前記符号長情報の残部に変換することを特徴とす
る。また、可変長符号を含む入力データを複数の基準値
と比較した結果に基づき、その可変長符号に対応する符
号長を示す符号長情報の一部および残部、並びに、その
可変長符号に対応する符号番号を演算し、前記符号番号
を、その符号番号に対応する固定長符号に変換すること
を特徴とする。
ズを小さくした復号装置により解決することができる
が、この装置の構成内容を簡潔に表現すると、以下のよ
うになる。復号するハフマン符号の符号長と符号番号を
演算・論理回路により求め、復号テーブルにより前記符
号番号を元の固定長符号に変換することにより、その復
号テーブルのメモリサイズを大幅に削減する装置。
固定長符号にハフマン符号を割当てる際、その固定長符
号を生起確率の高い順に並べるが、この並び順に付した
0, 1,2, …の番号を符号番号と称す。従って、符号番号
を表すのに必要な最小限のビット数は、固定長符号のビ
ット数より大きくなることはなく、固定長符号のビット
数以下になる。なお、通常は同じビット数であり、この
実施例でも同じビット数とする。
る。なお、図3において、図1と同様の構成には、同一符
号を付して、その詳細説明は省略する。また、図1に示
した構成と比較するために、ハフマン符号や符号長情報
などのビット数は図1と同じとする。さらに、図3の構成
において、符号番号および符号長をどのような演算・論
理回路で求めるのか、といった説明は図4を用いて後述
する。
ング回路103からハフマン符号を入力して、そのハフマ
ン符号の符号番号と符号長を演算する。303は復号テー
ブルで、8ビットの符号番号信号302を入力して、8ビッ
トの固定長符号に変換する。このように、演算部301に
よりハフマン符号から符号番号を演算で求めれば、復号
テーブル303の入出力ビット数はそれぞれ8ビットにな
る。従って、復号テーブル303のメモリサイズは次式に
示すように256バイトで済み、図1に示す復号テーブル10
4(96kバイト)の1/384のメモリサイズで足りる。 2 8 ×8 = 256×8 = 256バイト …(2)
説明するが、説明を簡単にするために、一例として、最
長6ビットの九通りのハフマン符号から4ビットの符号番
号と3ビットの符号長を求める小規模な回路を説明す
る。
図、図5はハフマン符号と符号番号との対応関係例を示
す図、図6はi=1,2,3,4,5,6に対してiビット長符号の下
限の境界値と、それに対応するハフマン符号、さらに、
それに対応する符号番号を示す図である。なお、iビッ
ト長符号の下限の境界値とは、[‘000000’,‘100000
0’]の数値線上に以下のルールでハフマン符号を配置し
たときのiビット長符号とiビット長未満の符号の境界値
(6ビット)をいう。
000’の方から並べる(同じ符号長の場合には値の小さ
いものから配置する)
上で1/2のi乗の領域を占める(iビット長符号が二個の
場合は占める領域は2×(1/2) i になる)
マン符号を並べた場合に各ビット長の符号が占める領域
を示す図で、同図より上記の境界値を容易に読取ること
ができる。
タで、2〜6ビット符号の下限境界値をそれぞれ保持す
る。なお、1ビット符号の下限境界値は、どのような符
号体系でも必ず‘000000’になるので、その値を保持す
る必要はない。411〜415もそれぞれレジスタで、下限境
界値に対応する、言い換えれば図7において境界値のす
ぐ上に配置されたハフマン符号の符号番号を保持する。
符号が存在する6ビットのデータが入力される。421〜42
5はそれぞれ減算器で、端子420に入力された6ビットの
データからレジスタ401〜405に保持された五つの境界値
を減算する。これらの減算器421〜425は、ハフマン符号
と複数の境界値との比較をする機能と、差分値を得る機
能との二つの機能を有する。比較結果は、五つの減算器
421〜425から出力されるサインビットでわかる。各減算
器421〜425は、(入力データ)-(境界値)という演算を行
い、そのサインビットが‘0’のとき減算結果は零以上
であることを示す。すなわち、サインビットが‘0’の
ときは(入力データ)>(境界値)という関係が成立する。
論理入力付きのAND素子であり、これから出力される信
号442〜446および減算器421から出力される信号441の
内、どの信号が‘1’になっているを調べることによ
り、端子420に入力されたハフマン符号の符号長を判別
することができる。具体的には、信号441が‘1’のとき
は、入力データは2ビット長符号の下限境界値より小さ
いことになるので、ハフマン符号は1ビット長というこ
とになり、また、信号442が‘1’のときは、入力データ
は2ビット長符号の下限境界値以上で3ビット長符号の下
限境界値未満であるため、ハフマン符号は2ビット長と
いうことになる。以下、信号446まで同様の判別がなさ
れる。
された6ビットの判別結果(信号441〜446)をエンコー
ドして、二進化した3ビットの符号長信号を端子471へ出
力する。
から符号番号が入力され、5ビットの判別結果(信号442
〜446)が選択制御信号として入力される。例えば、信
号442が‘1’のとき、第1のセレクタ451は、レジスタ41
1から入力された符号番号を選択し出力する。同様に、
信号443,444,445,446に対してレジスタ412,413,414,415
から入力された符号番号を選択し出力する。
果(信号441〜446)が選択制御信号として入力されると
ともに、以下の六つのデータが被選択信号として入力さ
れる。
右シフトした1ビットデータ) (2)シフタ462の出力(減算器421の出力を4ビット右シフ
トした2ビットデータ) (3)シフタ463の出力(減算器422の出力を3ビット右シフ
トした3ビットデータ) (4)シフタ464の出力(減算器423の出力を2ビット右シフ
トした4ビットデータ) (5)シフタ465の出力(減算器424の出力を1ビット右シフ
トした5ビットデータ) (6)減算器425の出力(6ビットデータ) 第2のセレクタ452は、信号441〜446に基づいて、上記の
六つのデータの何れかを選択し、選択したデータの下位
4ビットを出力する。第2のセレクタ452から出力された
信号は、端子420に入力された復号処理中のハフマン符
号の符号長に対応した下限境界値を、そのハフマン符号
から減算して、その差分値を規格化したものである。例
えば、信号441が‘1’のときは、シフタ461から出力さ
れた1ビットデータを選択して、最下位ビットとして出
力する。また、信号446が‘1’のときは、減算器425か
ら出力された6ビットデータを選択し、その6ビットデー
タの下位4ビットを出力する。第2のセレクタ452の出力
は符号番号の計算に用いるが、符号番号は4ビット幅し
かないため、セレクタ452の出力も4ビットを超える必要
はない。従って、6ビットデータの内、上位2ビットを無
視して下位4ビットを出力させる。
と第2のセレクタ452の出力を加算して、目的とする符号
番号を求め、その結果(4ビット)を端子475へ出力す
る。
て、図4に示す演算部301の動作を説明する。
とする。この6ビットデータは、比較器401〜405におい
て、レジスタ401〜405に保持された2〜6ビット符号の下
限境界値のすべてと比較されるが、入力されたデータ
‘111010’に関して、下限境界値との比較でとくに意味
があるのでは、レジスタ403に保持されている4ビット長
符号の下限境界値‘110000’と、レジスタ404に保持さ
れている5ビット長符号の下限境界値‘111100’との二
つ比較である。入力データ‘111010’は、前記二つの下
限境界値‘110000’,‘111100’に対して、‘110000’<
(入力データ)<‘111100’という関係が成り立つから、
減算器423,424のサインビットの出力はそれぞれ‘0’,
‘1’になり、信号線441〜446の内、信号線444のみが
‘1’になる。
00’=‘001010’が出力され、シフタ464により右へ2ビ
ットシフトされて‘0010’に変換された後、第2のセレ
クタ452へ入力される。このとき信号線444は‘1’であ
るから、第2のセレクタ452は、シフタ464から出力され
た4ビットデータを選択して加算器473へ送る。同様に、
第1のセレクタ451は、レジスタ413から入力された符号
番号3(=‘0011’)を選択して加算器473へ送る。
1’と‘0010’を加算した結果‘0101’を符号番号とし
て端子475へ出力する。一方、プライオリティエンコー
ダ453は、信号441〜446をエンコードした結果‘100’を
ハフマン符号の符号長として端子471へ出力する。
ットの入力データ‘111010’に存在するハフマン符号
は、符号長=4,符号番号=5であることがわかる。同様
に、他のハフマン符号も、その符号長と符号番号を、上
述した演算によって求めることができる。
リサイズを最小にすることができ、上述したような問題
を解決することができるものの、次のような問題が残
る。
めるため、演算部のハードウェア規模が大きくなりコス
トが上昇する (2)演算部のハードウェア規模が大きくなるので、演算
速度が遅く、復号動作周波数が低下する 以下、本発明にかかる一実施例の復号装置を図面を参照
して詳細に説明する。
号を求めずに、冗長性のある符号番号(以下「冗長符号
番号」と呼ぶ)を求める以下の実施例で説明する復号装
置を用いれば解決することができる。なお、冗長符号番
号は、上述した符号番号と同様、生起確率の低い固定長
符号ほど大きな番号を割当てるものであるが、次の点で
符号番号とは異なる。
応する冗長符号番号が複数ある (2)冗長符号番号を表すには、符号番号を表すのに必要
なビット数と同じか、それより多くのビット数が必要に
なる
すると、以下のようになる。演算部により復号するハフ
マン符号に対応する冗長符号番号を求め、復号テーブル
により冗長符号番号を元の固定長符号に変換することに
より、図4に示した構成に比べて、若干、復号テーブル
のメモリサイズが増加するが、それ以上に、演算部のハ
ードウェア規模を小さくして、装置全体のハードウェア
規模を小さくするとともに、復号動作周波数を高めた装
置。
例を示すブロック図である。なお、図8において、図1,3
と同様の構成には、同一符号を付して、その詳細説明は
省略する。また、図1,3に示した構成と比較するため
に、ハフマン符号や符号長情報などのビット数は図1,3
と同じする。さらに、図8の構成において、符号番号お
よび符号長をどのような演算・論理回路で求めるのか、
といった説明は図9を用いて後述する。
ング回路103からハフマン符号を入力して、そのハフマ
ン符号の冗長符号番号502と符号長情報106の上位3ビッ
トを演算する。503は復号テーブルで、9ビットの冗長符
号番号信号502を入力して、8ビットの固定長符号に変換
するとともに、符号長情報106の下位1ビットを出力す
る。このように、復号テーブル503の入出力ビット数は
それぞれ9ビットになる。従って、復号テーブル503のメ
モリサイズは次式に示すように576バイトになり、図1に
示す復号テーブル104(96kバイト)の約1/170、図3に示
す復号テーブル303(256バイト)の約二倍のメモリサイズ
になる。 2 9 ×9 = 512×9 = 4608ビット = 576バイト …(3)
は図3に示した構成に比べて増加するが、これから説明
するように、その演算部の回路規模は図4に示した構成
に比べて半分程度にすることができる。
説明するが、説明を簡単にするために、図4の場合と同
様に一例として、最長6ビットの九通りのハフマン符号
から4ビットの冗長符号番号と3ビットの符号長情報の上
位2ビットを求める小規模な回路を説明する。また、使
用するハフマン符号表は、図5に示したものを用いる。
であるが、図4と同様の構成には、同一符号を付して、
その詳細説明は省略する。図10はハフマン符号と冗長符
号番号との対応関係例を示す図で、この対応関係は後述
する。
タで、それぞれ3ビット符号長の下限境界値に対応する
冗長符号番号と、5ビット符号長の下限境界値に対応す
る冗長符号番号を保持する。
値に対応する冗長符号番号をレジスタに保持し、端子42
0に入力されたハフマン符号の符号長を2ビット単位で識
別して、その識別結果に基づいて冗長符号番号を選択す
る。そして、入力されたハフマン符号と、それに対応す
る下限境界値との差分値を、選択した冗長符号番号に加
算することにより、そのハフマン符号に対応する冗長符
号番号を求めるものである。なお、1ビット符号長の下
限境界値に対応する冗長符号番号は、先述した符号番号
と同様に‘0’であるため、保持する必要はない。ま
た、ハフマン符号の符号長を2ビット単位で識別する目
的は、入力されたハフマン符号と各ビット長の下限境界
値とを比較し差分を求める減算器の個数を半分以下に減
らすためである。これにより、ハフマン符号は、2i-1ビ
ット以上かつ2iビット以下(i=1,2,3)の三種類に分類識
別される。
(信号442,444)に基づいて、レジスタ513または515か
ら入力された冗長符号番号を選択する。つまり、ハフマ
ン符号長が3〜4ビットのときはレジスタ513を選択し、5
〜6ビットのときはレジスタ515の出力を選択する。ただ
し、0〜1ビットのときは何も選択せずに‘0’を出力す
る。519は第2のセレクタで、上記の識別結果(信号442,
444,446)に基づいて、ハフマン符号とそれに対応する
下限境界値との差分値を選択する。両セレクタの出力
は、加算器473により加算され、その加算結果は冗長符
号番号として端子524へ出力される。
の識別結果(信号442,444,446)をエンコードして、そ
の結果を3ビットの符号長情報の上位2ビットとして端子
522へ出力する。
て、図9に示す演算部501の動作を説明する。
1010’が入力されたとする。このデータは、図7に示し
たように、レジスタ402に保持された3ビット符号の下限
境界値‘100000’より大きく、レジスタ404に保持され
た5ビット符号の下限境界値‘111100’よく小さい。従
って、入力データ中に存在するハフマン符号は、3ビッ
ト以上4ビット以下と判定され、信号線442,444,446の
内、信号444のみが‘1’になる。
513(保持している内容は“2”)の出力を選択し出力す
る。また、第2のセレクタ519は、減算器422により得ら
れた入力データ‘111010’と3ビット長ハフマン符号の
下限境界値‘100000’の差分‘011010’を、シフタ464
により2ビット右へシフトした値‘0110’(=6)を選択し
出力する。加算器473は、両セレクタの出力を加算した
結果(6+2=8)を冗長符号番号として端子524へ出力する。
冗長符号番号「8」は、図10に示すように、入力データ
‘111010’の上位4ビットのハフマン符号‘1110’に対
応する。
信号442,444,446をエンコードした結果‘01’を、符号
長の上位2ビット信号として端子522へ出力する。端子52
4から出力された冗長符号番号は、復号テーブル603へ入
力され、符号長の最下位ビット‘1’が出力されるの
で、符号長情報は連結されて‘011’の3ビット信号にな
る。なお、本実施例は、前述した(ビット長-1)によっ
て符号長を表す方法を採用しているので、実際の符号長
は4ビットである。
対応する冗長符号番号は一つだけだが、符号長が奇数の
ときは対応する冗長符号番号が二つ存在する。この理由
は、上記の説明からわかるように、復号するハフマン符
号を2ビット単位で処理するので、奇数ビット長のハフ
マン符号は続く1ビットを付加した偶数ビットにして復
号処理されるためである。付加した1ビットのデータが
‘0’か‘1’かによって冗長符号番号が一つ異なるた
め、奇数ビット長の符号においては、同一のハフマン符
号に対して、二つの冗長符号番号が存在する。
2ビット単位で処理する例を説明したが、本実施例はこ
れに限ものではなく、これを拡張して4ビット単位、あ
るいはそれ以上で処理することも容易である。例えば、
4ビット単位で処理する場合は、図4に示した演算部の構
成に比べて、減算器の数は約1/4に減り、演算部の回路
規模をさらに縮小することができるが、冗長符号番号の
ビット数は、符号番号のビット数に比べて2ビット増え
るため、復号テーブルのメモリ容量は2の二乗、つまり
四倍になる。それでも復号テーブルのメモリサイズは1k
バイトであり、図1に示した復号テーブル104(96kバイ
ト)の1/96のメモリサイズで済む。
える必要がある場合は、演算部の回路規模の減少より、
復号テーブルのメモリサイズの増加の方が、装置全体の
ハードウェア規模に与える影響が大きいので、ハフマン
符号の処理単位は小さい方が望ましい。
符号を復号する際に、演算によりハフマン符号の符号長
情報の一部と予め定められた冗長符号番号とを求め、復
号テーブルにより求めた冗長符号番号を符号化前の固定
長符号と符号長情報の残りに変換するので、復号テーブ
ルのメモリサイズを低減するとともに、演算部の回路規
模を縮小して、高速にハフマン符号を復号することがで
きる。
置を説明する。なお、第2実施例において、第1実施例と
略同様の構成については、同一符号を付して、その詳細
説明を省略する。
号を演算するブロックにおいて、符号長を最上位から最
下位まですべて演算することを特徴とするものである。
成例を示すブロック図である。なお、図11において、図
1,3,8と同様の構成には、同一符号を付して、その詳細
説明は省略する。また、図1,3,8に示した構成と比較す
るために、ハフマン符号や符号長情報などのビット数は
図1,3,8と同じする。さらに、図11の構成において、符
号番号および符号長をどのような演算・論理回路で求め
るのか、といった説明は図12を用いて後述する。
キング回路103からハフマン符号を入力して、そのハフ
マン符号の冗長符号番号と符号長情報(4ビット)を演
算する。603は復号テーブルで、9ビットの冗長符号番号
信号502を入力して、8ビットの固定長符号に変換する。
従って、復号テーブル603のメモリサイズは次式に示す
ように512バイトになり、図1に示す復号テーブル104(9
6kバイト)の1/192、図3に示す復号テーブル303(256バ
イト)の二倍のメモリサイズになる。 2 9 ×8 = 512×8 = 512バイト …(4)
説明するが、説明を簡単にするために、図4,9の場合と
同様に一例として、最長6ビットの九通りのハフマン符
号から4ビットの冗長符号番号と3ビットの符号長情報を
求める小規模な回路を説明する。また、使用するハフマ
ン符号表は、図5に示したものを用い、ハフマン符号の
符号長を2ビット単位で識別した結果に基づいて、冗長
符号番号を求める。そのため、ハフマン符号と冗長符号
番号の対応は、第1実施例と同様(図10参照)になる。
図であるが、
記の識別結果に基づいて、レジスタ401,403,405から出
力された2,4,6ビット符号の下限境界値の何れかを選択
する。613は比較器で、第3のセレクタ611により選択さ
れた下限境界値と入力データとを比較して、符号長情報
の最下位ビットを生成する。この最下位ビットは、プラ
イオリティエンコーダ520より出力された符号長情報の
上位2ビットに連結されて、端子615から3ビットの符号
長情報が出力される。
て、図12に示す演算部601の動作を説明する。なお、第1
のセレクタ518,第2のセレクタ519,プライオリティエ
ンコーダ520など、冗長符号番号を演算する回路は、図9
に示した第1実施例と同一なので、その演算についての
説明は省略する。
1010’が入力されたとする。第3のセレクタ611は、入力
される三つの信号442,444,446がそれぞれ‘0’,‘1’,
‘0’であるから、レジスタ403に保持された4ビット符
号の下限境界値‘110000’を選択し出力する。入力デー
タ‘111010’は第3のセレクタ611の出力より大きいた
め、比較器613は‘1’を出力し、プライオリティエンコ
ーダ520から出力された2ビット信号‘01’の最下位に連
結されて、‘011’の3ビット信号が符号長情報として端
子615から出力される。
例と同様の効果が得られるほか、第1実施例の演算部に
若干の構成を追加することにより、第1実施例の復号テ
ーブルに比べてメモリサイズを低減することができるの
で、復号テーブルを同時に複数種類備える必要がある場
合などに効果的である。
るシステムに適用しても、一つの機器からなる装置に適
用してもよい。
プログラムを供給することによって達成される場合にも
適用できることはいうまでもない。
メモリサイズの小さい復号テーブルを用いて高速な復号
を行うことができる。
置の構成を示す図、
の構成を示す図、
装置の構成例を示すブロック図、
図、
ハフマン符号、それに対応する符号番号を示す図、
図、
を示す図、
ク図、
である。
Claims (6)
- 【請求項1】 可変長符号を含む入力データを複数の基
準値と比較した結果に基づき、その可変長符号の符号長
を示す符号長情報の一部、および、その可変長符号に対
応する符号番号を演算する演算手段と、 前記符号番号を、その符号番号に対応する固定長符号お
よび前記符号長情報の残部に変換する変換手段とを有す
ることを特徴とする復号装置。 - 【請求項2】 可変長符号を含む入力データを複数の基
準値と比較した結果に基づき、その可変長符号の符号長
を示す符号長情報の一部および残部、並びに、その可変
長符号に対応する符号番号を演算する演算手段と、 前記符号番号を、その符号番号に対応する固定長符号に
変換する変換手段とを有することを特徴とする復号装
置。 - 【請求項3】 前記演算手段は、前記入力データと前記
複数の基準値の一つとの差分、および、その基準値に対
応する符号番号に基づき、前記可変長符号の符号番号を
演算することを特徴とする請求項1または請求項2に記載
された復号装置。 - 【請求項4】 可変長符号を含む入力データを複数の基
準値と比較した結果に基づき、その可変長符号の符号長
を示す符号長情報の一部、および、その可変長符号に対
応する符号番号を演算し、 前記符号番号を、その符号番号に対応する固定長符号お
よび前記符号長情報の残部に変換することを特徴とする
復号方法。 - 【請求項5】 可変長符号を含む入力データを複数の基
準値と比較した結果に基づき、その可変長符号の符号長
を示す符号長情報の一部および残部、並びに、その可変
長符号に対応する符号番号を演算し、 前記符号番号を、その符号番号に対応する固定長符号に
変換することを特徴とする復号方法。 - 【請求項6】 前記演算は、前記入力データと前記複数
の基準値の一つとの差分、および、その基準値に対応す
る符号番号に基づき、前記可変長符号の符号番号を演算
するものであることを特徴とする請求項4または請求項5
に記載された復号方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29528194A JP3332619B2 (ja) | 1994-11-29 | 1994-11-29 | 復号装置およびその方法 |
US08/566,583 US5801650A (en) | 1994-11-29 | 1995-11-28 | Decoding apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29528194A JP3332619B2 (ja) | 1994-11-29 | 1994-11-29 | 復号装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08162970A JPH08162970A (ja) | 1996-06-21 |
JP3332619B2 true JP3332619B2 (ja) | 2002-10-07 |
Family
ID=17818576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29528194A Expired - Fee Related JP3332619B2 (ja) | 1994-11-29 | 1994-11-29 | 復号装置およびその方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5801650A (ja) |
JP (1) | JP3332619B2 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3227292B2 (ja) * | 1993-12-20 | 2001-11-12 | キヤノン株式会社 | 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法 |
JPH10271016A (ja) * | 1997-03-21 | 1998-10-09 | Kawasaki Steel Corp | 符号/復号化器 |
JP4683678B2 (ja) | 1998-07-03 | 2011-05-18 | 忠弘 大見 | 画像信号処理方法、画像信号処理システム、記憶媒体及び撮像装置 |
CA2247548A1 (en) * | 1998-09-15 | 2000-03-15 | Steven M. Nowick | A high-speed asynchronous decompression circuit for variable-length-coded data |
JP3839974B2 (ja) | 1998-10-06 | 2006-11-01 | キヤノン株式会社 | 符号化装置 |
JP2000115783A (ja) | 1998-10-06 | 2000-04-21 | Canon Inc | 復号化装置及び方法 |
JP2000115782A (ja) | 1998-10-06 | 2000-04-21 | Canon Inc | 符号化装置及び方法及び記憶媒体 |
JP2000115770A (ja) | 1998-10-06 | 2000-04-21 | Canon Inc | 符号化装置及び方法 |
JP3358721B2 (ja) * | 1999-06-29 | 2002-12-24 | 日本電気株式会社 | ハフマン符号復号化装置 |
US6865299B1 (en) | 1999-07-27 | 2005-03-08 | Canon Kabushiki Kaisha | Coding apparatus and method |
US6762770B1 (en) * | 1999-10-29 | 2004-07-13 | Apple Computer, Inc. | Method and system for the representation of color and other attributes in bitmap fonts |
US6518896B1 (en) * | 2000-01-15 | 2003-02-11 | Sony Electronics, Inc. | Multiple symbol length lookup table |
US6952501B2 (en) * | 2000-02-24 | 2005-10-04 | Canon Kabushiki Kaisha | Image processing apparatus, image encoding apparatus, and image decoding apparatus |
US6996593B2 (en) | 2000-10-23 | 2006-02-07 | Canon Kabushiki Kaisha | Filter processing apparatus and its control method, program, and storage medium |
JP2002261623A (ja) * | 2001-02-28 | 2002-09-13 | Canon Inc | 復号装置、復号方法、記憶媒体及びプログラムソフトウェア |
EP1271926B1 (en) * | 2001-06-18 | 2015-08-12 | Canon Kabushiki Kaisha | Image processing method, apparatus and computer program for compression-encoding |
EP1292153B1 (en) * | 2001-08-29 | 2015-08-19 | Canon Kabushiki Kaisha | Image processing method and apparatus, computer program, and storage medium |
JP3796432B2 (ja) * | 2001-10-31 | 2006-07-12 | キヤノン株式会社 | フィルタ処理装置およびフィルタ処理方法 |
US7106909B2 (en) * | 2001-12-25 | 2006-09-12 | Canon Kabushiki Kaisha | Method and apparatus for encoding image data in accordance with a target data size |
US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US7227998B2 (en) | 2002-06-11 | 2007-06-05 | Canon Kabushiki Kaisha | Image processing apparatus, control method of the same, computer program, and computer-readable storage medium |
US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
JP4366250B2 (ja) | 2003-06-23 | 2009-11-18 | キヤノン株式会社 | データ変換処理装置及びプログラム |
DE10353289B4 (de) * | 2003-11-14 | 2009-10-15 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Kompression von Datenpaketen |
JP4378245B2 (ja) * | 2004-08-23 | 2009-12-02 | キヤノン株式会社 | データ変換装置及び方法 |
JP2007037049A (ja) * | 2005-07-29 | 2007-02-08 | Canon Inc | 画像符号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 |
JP4697967B2 (ja) * | 2006-03-02 | 2011-06-08 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
JP2008072624A (ja) * | 2006-09-15 | 2008-03-27 | Canon Inc | 画像符号化装置及びその制御方法 |
JP4311759B2 (ja) * | 2007-10-29 | 2009-08-12 | キヤノン株式会社 | データ変換装置及びその制御方法 |
JP4933405B2 (ja) * | 2007-11-13 | 2012-05-16 | キヤノン株式会社 | データ変換装置及びその制御方法 |
JP2011004338A (ja) * | 2009-06-22 | 2011-01-06 | Fujifilm Corp | データ復号化装置 |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4044347A (en) * | 1975-05-19 | 1977-08-23 | International Business Machines Corporation | Variable-length to fixed-length conversion of minimum-redundancy codes |
US4516246A (en) * | 1982-02-26 | 1985-05-07 | Prentice Corporation | Data compression system |
US4646061A (en) * | 1985-03-13 | 1987-02-24 | Racal Data Communications Inc. | Data communication with modified Huffman coding |
US4899149A (en) * | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
-
1994
- 1994-11-29 JP JP29528194A patent/JP3332619B2/ja not_active Expired - Fee Related
-
1995
- 1995-11-28 US US08/566,583 patent/US5801650A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08162970A (ja) | 1996-06-21 |
US5801650A (en) | 1998-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3332619B2 (ja) | 復号装置およびその方法 | |
JP3227292B2 (ja) | 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法 | |
JP2870515B2 (ja) | 可変長符号化装置 | |
US6993202B2 (en) | Decoding apparatus, method, and storage medium for inputting and decoding variable-length coded data | |
JP3410629B2 (ja) | 可変長符号化回路及び可変長符号化方法 | |
JP3341962B2 (ja) | 可変長復号器及び可変長符号値を復号化する方法 | |
JPH0645950A (ja) | 信号生成装置とその方法 | |
JPH0818460A (ja) | ハフマンデコーダー | |
JP2001308715A (ja) | 可変長符号化装置および可変長復号装置 | |
US6546053B1 (en) | System and method for decoding signal and method of generating lookup table for using in signal decoding process | |
JP4181887B2 (ja) | 可変長符号化装置、及びその方法 | |
JPH03503707A (ja) | 統計的にコード化されたデジタル・データを復号するシステム | |
US6313767B1 (en) | Decoding apparatus and method | |
JPH10271016A (ja) | 符号/復号化器 | |
JP2002026737A (ja) | データ復号化装置とその方法 | |
JP2004501531A (ja) | ビデオ・データをランレングス符号化するための方法と装置 | |
JP2000261324A (ja) | ハフマン復号化回路 | |
JPH09247466A (ja) | 符号化装置 | |
US7165086B2 (en) | System, method, and apparatus for division coupled with rounding of signed binary numbers | |
JPH0786957A (ja) | 可変長コード化装置 | |
JP3781012B2 (ja) | 画像データ圧縮方法、画像データ伸長方法、および画像データ伸長回路 | |
JPH07303045A (ja) | ハフマン復号化装置 | |
JPH0936749A (ja) | 符号化復号化装置およびこれに用いられる符号化方法 | |
JP3015001B2 (ja) | ハフマン復号化装置 | |
US6539061B1 (en) | Efficient method for decompressing difference coded signals |
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: 20020701 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080726 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080726 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090726 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090726 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100726 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100726 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110726 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120726 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120726 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130726 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |