JP3221252B2 - ハフマン復号器 - Google Patents

ハフマン復号器

Info

Publication number
JP3221252B2
JP3221252B2 JP24634894A JP24634894A JP3221252B2 JP 3221252 B2 JP3221252 B2 JP 3221252B2 JP 24634894 A JP24634894 A JP 24634894A JP 24634894 A JP24634894 A JP 24634894A JP 3221252 B2 JP3221252 B2 JP 3221252B2
Authority
JP
Japan
Prior art keywords
code
bit
value
register
adder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP24634894A
Other languages
English (en)
Other versions
JPH08111645A (ja
Inventor
裕之 大藪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP24634894A priority Critical patent/JP3221252B2/ja
Publication of JPH08111645A publication Critical patent/JPH08111645A/ja
Application granted granted Critical
Publication of JP3221252B2 publication Critical patent/JP3221252B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハフマン符号を高速に
復号するハフマン復号器に関するものである。
【0002】
【従来の技術】ディジタル化された画像信号は、情報量
が大きいが冗長性が高いため、符号化を行ない、冗長性
を取り除いてから伝送あるいは記録される。種々の符号
化のうちハフマン符号は、出現確率の大きい信号に対し
少ないビットを与えることによって、画像信号の符号量
を削減する方法である。
【0003】図6は、ハフマン符号化の一例の説明図、
図7は、符号化されるシンボルおよびそのシンボルに与
える符号長の説明図である。いま、符号化されるシンボ
ルをa,b,c,…で示し、これらのシンボルに対して
ハフマン符号を割り当てる。この時、図6に示した例で
は符号長の短い方に0を与えるように決めるものとす
る。すると、最も出現確率の大きいシンボルaに対し、
符号“00”という最も符号長の短い符号が与えられ
る。次に出現確率の大きいシンボルb,c,d,eに対
して、シンボルaと識別できる最も小さい数“010”
から“101”までの3ビットの符号長を有する符号が
与えられる。同様に、シンボルf,gには、“110
0”と“1101”の4ビットの符号長を有する符号が
与えられる。以下同様にして、最後のシンボルまで順々
に符号が与えられる。このように各シンボルに対して符
号を与えたとき、その符号長ごとにシンボルをまとめる
と、図7に示すようになる。
【0004】このように各シンボルに対して符号を与
え、符号化を行なうと、出現確率の大きいシンボルが短
い符号に置き換えられるので、データ量を減少させるこ
とができる。しかしながら、符号化された符号列は、異
なる符号長で構成されているので、復号化の際にはシン
ボルと符号の対応を格納した符号テーブルを用い、各符
号列を符号テーブルと比較しながら復号化する必要があ
る。そのため、復号化に時間がかかるという問題があ
る。
【0005】この問題を解決する技術として、例えば、
特開昭61−60113号公報に記載されている復号器
がある。図8は、従来のハフマン復号器の構成の一例を
示すブロック図である。図中、51はシンボルテーブ
ル、52は復号テーブル、53はシフトレジスタ、54
はカウンタ、55は符号数レジスタ、56は最小値レジ
スタ、57はポインタレジスタ、58は復号情報取り出
し手段、59は加算器、60は比較器、61はシンボル
位置算出手段である。
【0006】このような構成の復号器において、シフト
レジスタ53に符号データが1ビットずつシフト入力さ
れる。シフトレジスタ53のシフト動作とともに、カウ
ンタ54の値が1増加する。このカウンタの値がシフト
レジスタ53の内容のビット列のビット長である。カウ
ンタ54の値に従って復号情報取り出し手段58は、対
応する符号長の符号数、最小値、ポインタの情報を復号
テーブル52から取り出して、それぞれ、符号数レジス
タ55、最小値レジスタ56、ポインタレジスタ57に
セットする。その後、加算器59は符号数レジスタ55
と最小値レジスタ56の値を加算する。この加算の結果
は、現在の符号長における符号が有する最大の値であ
る。この値とシフトレジスタ53の値を比較器60で比
較し、シフトレジスタ53の値が大きければ、符号長は
さらに長いので、上述の動作を繰り返し行なう。
【0007】比較器60による比較の結果、シフトレジ
スタ53の値が加算器59の出力と等しいあるいは小さ
い場合、シンボル位置算出手段61はシフトレジスタ5
3と最小値レジスタ56とポインタレジスタ57の内容
に基づき、シンボルテーブル51に保存されているシン
ボルの位置を算出する。そして、算出されたシンボルの
位置によりシンボルテーブル51からシンボルを取り出
し、出力する。
【0008】このような構成によって、シンボルテーブ
ル51と比較する回数を減らし、高速に復号化を行なう
ことができる。しかしながらこの従来の構成では、符号
長ごとに符号数と最小値とポインタを保存するための復
号テーブルが必要になる。そのため、大容量の記憶素子
が必要であり、回路規模を大型化し、コストを上昇させ
るという問題があった。
【0009】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、テーブルの容量を減少さ
せ、しかも高速にハフマン符号を復号化することのでき
るハフマン復号器を提供することを目的とするものであ
る。
【0010】
【課題を解決するための手段】本発明は、請求項1に記
載の発明においては、ハフマン符号を復号するハフマン
復号器において、符号の値順に並んだシンボルを保持す
るシンボルテーブルと、各符号長の個数を保存した符号
数テーブルと、符号データを順次入力するシフトレジス
タと、シフト回数を数えるカウンタと、前記符号数テー
ブルから前記カウンタの値に対応する符号数を取り出す
符号数取り出し手段と、該符号数取り出し手段によって
取り出された符号数を保持する符号数レジスタと、オフ
セットレジスタと、ポインタレジスタと、前記符号数レ
ジスタと前記オフセットレジスタの内容を加算する第1
の加算器と、該第1の加算器で加算した結果と前記シフ
トレジスタの内容を比較する比較器と、前記第1の加算
器で加算した結果をシフト演算して前記オフセットレジ
スタに格納するシフト演算器と、前記符号数取り出し手
段によって取り出された符号数と前記ポインタレジスタ
に保持されている値を加算し前記ポインタレジスタに保
持させる第2の加算器と、前記比較器の結果に基づき前
記シフトレジスタの値と前記オフセットレジスタの値と
前記ポインタレジスタの値から前記シンボルテーブル内
の復号シンボルが保存された位置を算出するシンボル位
置算出手段を有することを特徴とするものである。
【0011】請求項2に記載の発明においては、ハフマ
ン符号を復号するハフマン復号器において、符号の値順
に並んだシンボルを保持するシンボルテーブルと、少な
くともNビットの符号データを入力するシフトレジスタ
と、符号データのビット長ごとに設けられ該シフトレジ
スタに保持された符号データのうちnビットの符号デー
タから前記シンボルテーブルの位置を計算するとともに
該位置が有効か否かを示すイネーブル信号を出力する複
数のnビット位置計算手段と、該複数のnビット位置計
算手段からのイネーブル信号が有効でありかつ最小の符
号長の前記位置を選択して前記シンボルテーブルに与え
るとともに選択した符号長を出力する選択手段と、該選
択手段からの符号長に基づき前記シフトレジスタのシフ
ト量を制御するシフトレジスタ制御手段を有することを
特徴とするものである。
【0012】請求項2に記載のハフマン復号器におい
て、請求項3に記載の発明のように、nビット位置計算
手段として、nビットの符号データに対応する符号長の
個数を保存する符号数保持手段と、前記符号数保持手段
と前段のn−1ビット位置計算手段から与えられるn−
1ビットのシフト演算値とを加算する第1の加算器と、
該第1の加算器で加算した結果とnビットの符号データ
を比較しイネーブル信号を出力する比較器と、前記第1
の加算器で加算した結果をシフト演算してnビットのシ
フト演算値を作成し後段のn+1ビット位置計算手段に
与えるシフト演算器と、前記符号数保持手段に保持され
ている符号数と前段のn−1ビット位置計算手段から与
えられるn−1ビットまでの符号数とを加算してnビッ
トまでの符号数を計算する第2の加算器と、nビットの
符号データと前段のn−1ビット位置計算手段からのシ
フト演算値および符号数とからnビットの符号データに
対応する前記シンボルテーブル内の復号シンボルが保存
された位置を算出するシンボル位置算出手段を有する構
成とすることができる。
【0013】また、請求項2に記載のハフマン復号器に
おいて、請求項4に記載の発明のように、nビット位置
計算手段として、nビットの符号データに対応する符号
参照データを保持する符号参照データ保持手段と、該符
号参照データ保持手段に保持されている符号参照データ
とnビットの符号データを比較しイネーブル信号を出力
する比較器と、n−1ビットまでのシフト演算値および
符号数に基づき決定される位置参照データを保持する位
置参照データ保持手段と、該位置参照データ保持手段に
保持されている位置参照データに基づきnビットの符号
データに対応する前記シンボルテーブル内の復号シンボ
ルが保持された位置を算出するシンボル位置算出手段を
有する構成とすることができる。
【0014】
【作用】請求項1に記載の発明によれば、シフトレジス
タのシフト動作が順次行なわれるたびに、第1の加算器
の出力をシフト演算してオフセットレジスタに格納する
ことにより、オフセットレジスタには次の符号長の符号
が取りうる最小値がセットされる。また、シフトレジス
タのシフト動作が順次行なわれるたびに、第2の加算器
によってポインタレジスタの値と符号数を加算してポイ
ンタレジスタに格納することによって、ポインタレジス
タには符号数の累積値がセットされる。このように、シ
フトレジスタのシフト動作を順次行なうことによって、
符号長に対応した最小値およびポインタの値がオフセッ
トレジスタおよびポインタレジスタにセットされる。こ
れによって、従来必要であった最小値およびポインタを
格納したテーブルを不要とすることができる。また、シ
ンボルテーブルの参照回数を減少させているので、高速
に復号化することができる。
【0015】請求項2に記載の発明によれば、例えば、
ハフマン符号の符号長の最大がNビットの時、N個のn
ビット位置計算手段を設ける。各nビット位置計算手段
は、それぞれ別の符号長の処理を行なうようにする。そ
して、各nビット位置計算手段において、符号データが
それぞれの符号長の符号の値の取りうる範囲に入ってい
る場合に、イネーブル信号を送出するとともに、シンボ
ルテーブル内のシンボルの位置を計算する。選択手段
は、イネーブル信号を送出したnビット位置計算手段の
うちから最小の符号長を検出し、そのnビット位置計算
手段が計算したシンボルの位置をもとにシンボルテーブ
ルからシンボルを取り出す。そして、検出した最小の符
号長の分だけシフトレジスタ制御手段によってシフトレ
ジスタをシフトさせ、次の符号列の処理を開始する。こ
のようにして、複数の符号長の処理を並列に行なうこと
によって、復号化処理を高速に行なうことが可能とな
る。
【0016】請求項3に記載の発明では、請求項2に記
載のような並列処理を行なう復号器に請求項1に記載の
発明の構成を適用している。すなわち、n−1ビットの
符号長の処理を行なうnビット位置計算手段を前段、n
+1ビットの符号長の処理を行なうnビット位置計算手
段を後段とすれば、シフトレジスタのシフトごとに繰り
返していた動作を、前段からの情報を受け取ってnビッ
トの符号長の処理を行なうとともに、処理結果を後段に
伝え、以降の符号長の処理に用いるように構成する。第
1の加算器は、符号数保持手段に保持されている符号数
と、前段から与えられる当該符号長の最小値を加算し、
比較器で当該符号長の符号データと比較する。比較の結
果、符号データが当該符号長である場合は、イネーブル
信号を有効とする。また、加算結果をシフト演算して後
段の最小値を作成し、後段に与える。また、符号数保持
手段に保持されている符号数は、第2の加算器で前段ま
での符号数の累積値との加算が行なわれ、後段に送られ
る。このようにして、請求項1に吉舎の発明の構成を、
並列処理に適用することができ、テーブルの容量を減少
させるとともに、復号化処理をさらに高速化することが
できる。
【0017】請求項4に記載の発明では、比較器で符号
データと比較する値、および、符号数の累積値は、符号
数の列が一意に決定されていれば常に一定となることを
用いている。請求項2に記載の発明のように並列に処理
する構成において、各nビット位置計算手段に当該符号
長に対応した、比較器で符号データと比較する値、およ
び、符号数の累積値を、それぞれ、符号参照データ保持
手段および位置参照データ保持手段に保持させておく。
これによって、各値の演算時間を短縮することができ、
さらに、各nビット位置計算手段を完全に並列に動作さ
せることができるので、さらに高速な復号化処理を行な
うことができる。
【0018】
【実施例】図1は、本発明のハフマン復号器の第1の実
施例を示すブロック図である。図中、1はシンボルテー
ブル、2は符号数テーブル、3はシフトレジスタ、4は
カウンタ、5は符号数取り出し手段、6は符号数レジス
タ、7はオフセットレジスタ、8,14はポインタレジ
スタ、9,12,16は加算器、10は比較器、11は
シフト演算器、13はシンボル位置算出部、15は減算
器である。以降の説明において、本発明で復号されるハ
フマン符号は、図6、図7で説明したように、符号長の
短い方に0を与えるハフマン符号であるものとする。
【0019】シンボルテーブル1は、各符号に対応した
シンボルを記憶しているテーブルである。ここでは、符
号の小さい順にシンボルが並べられているものとする。
符号数テーブル2は、各符号長に対する符号数を保存し
ている。シフトレジスタ3には、符号データが順次入力
される。カウンタ4は、シフトレジスタ3のシフト動作
ごとに1だけ増加するカウンタである。この動作によっ
て、カウンタ4にはシフトレジスタ3にある符号の有効
ビットが記録される。符号数取り出し手段5は、カウン
タ4の値を符号長として符号数テーブル2から符号数を
取り出す。そして、取り出した符号数を符号数レジスタ
8および加算器12に与える。符号数レジスタ6は、符
号数取り出し手段5で取り出した符号数を保持する。オ
フセットレジスタ7は、シフト演算器11の出力を保持
する。オフセットレジスタ7には、有効ビット数を符号
長としたとき、その符号長を有する複数の符号のうち、
最小の符号の値が設定される。ポインタレジスタ8は、
加算器12の出力を格納するものであり、符号数の累積
値が保持される。すなわち、有効ビット数を符号長とし
たとき、その符号長を有する符号に対応するシンボルが
シンボルテーブルの先頭から何番目以降に格納されてい
るかを示すポインタが保持される。カウンタ4,オフセ
ットレジスタ7,ポインタレジスタ8,14は、符号が
シンボルに復号化されるごとにリセットされる。
【0020】加算器9は、符号数レジスタ6の値とオフ
セットレジスタ7の値を加算する。この加算器9の出力
は、有効ビット数を符号長としたとき、対応する符号数
の符号が取りうる値の上限値より1だけ大きい値とな
る。比較器10は、シフトレジスタ3の値と加算器9の
出力を比較する。もし、シフトレジスタ3の値が加算器
9の出力以上の場合には、シフトレジスタ3に保持され
た符号データはより長い符号長を有することになる。シ
フトレジスタ3の値が加算器9の出力未満である場合に
は、シフトレジスタ3に保持された符号データは復号化
可能な符号長であることを示している。シフト演算器1
1は、加算器9の出力をシフトし、値を2倍にして、オ
フセットレジスタ7に保持させる。加算器12は、符号
数取り出し手段5から取り出された符号数とポインタレ
ジスタ8の値を加算して、ポインタレジスタ8に保持さ
せる。
【0021】シンボル位置算出部13は、比較器10の
比較結果が復号化可能である場合に、シフトレジスタ3
に保持されている符号データをもとに、オフセットレジ
スタ7、ポインタレジスタ8の値を用いて、符号データ
に対応するシンボルの格納されているシンボルテーブル
1の位置を算出する。ここでは一例として、ポインタレ
ジスタ14、減算器15、加算器16を有する構成を示
している。ポインタレジスタ14は、ポインタレジスタ
8に保持されていた加算器12による加算前の符号数の
累積値を保持する。減算器15は、シフトレジスタ3の
値からオフセットレジスタ7の値を減算し、符号データ
がその符号データと同じ符号長を有する複数の符号のう
ちの何番目の符号かを示す値を作成する。加算器16
は、減算器24の値にポインタレジスタ14の値を加算
する。すなわち、符号データと同じ符号長を有する複数
の符号のうち、最初の符号の位置を示すポインタレジス
タ14の値と、符号データが複数の符号の何番目かを示
す値を加算することによって、シフトレジスタ3に保持
されている符号データに対応するシンボルの格納された
シンボルテーブル1内の位置を求めることができる。こ
の値を用いてシンボルテーブルを参照することによっ
て、シフトレジスタ3に保持されている符号データに対
応するシンボルを得ることができる。
【0022】次に、本発明のハフマン復号器の第1の実
施例における動作について説明する。まず符号データか
ら1ビットをシフトレジスタ3に入力し、カウンタ4を
インクリメントさせる。カウンタ4の値は、シフトレジ
スタ3に入力された符号データの有効ビット長を示す。
そして、カウンタ4内の有効ビット長を符号長として用
いて、符号数取り出し手段5は符号数テーブル2から符
号長に対応する符号数を取り出す。取り出した符号数
は、符号数レジスタ6に記録されるとともに、加算器1
2に与えられる。加算器12では、ポインタレジスタ8
に記録された値と、符号数取り出し手段5から与えられ
る符号数を加算する。加算結果はポインタレジスタ8に
再び格納される。ポインタレジスタ8には、それまでの
符号数が累積される。また、加算器12による加算前の
ポインタレジスタ8の値は、シンボル位置算出部13内
のポインタレジスタ14に格納される。
【0023】一方、符号数レジスタ6に格納された符号
数は、加算器9においてオフセットレジスタ7の値と加
算される。この加算の結果は、有効ビット数を符号長と
したときの複数の符号のうちの最大の値より1だけ大き
い値である。この加算結果とシフトレジスタ3の値を比
較器10で比較する。比較の結果、シフトレジスタ3の
値が加算結果以上であれば、符号長はさらに長い。この
時、次の符号長を有する符号のうち最小の値は、加算結
果の末尾に‘0’を付加した値である。そのため、加算
器9による加算結果に対して、シフト演算器11で左シ
フトにより2倍の値を演算して、オフセットレジスタ7
に格納する。オフセットレジスタ7に格納された値は、
次の符号長の符号の最小値を示している。そして、また
符号データから1ビットをシフトレジスタ3に入力し
て、上述の動作を繰り返し行なう。
【0024】比較器10による比較の結果、シフトレジ
スタ3の値が加算器9による加算の結果未満の場合に
は、シフトレジスタ3に保持されている符号データに対
応するシンボルが存在する。このとき、シンボル位置算
出部13は、シフトレジスタ3に保持されている符号デ
ータに基づき、オフセットレジスタ7の値と、加算器1
2による加算前のポインタレジスタ8の値を用いて、シ
ンボルテーブル1内のシンボルが保持されている位置を
算出する。この動作は、まず、シフトレジスタ3に保持
されている値から、オフセットレジスタ7の値を減算器
15で減算する。この減算により、シフトレジスタ3に
保持されている符号データが同じ符号長を有する複数の
符号のうちの何番目の符号かを示す値が得られる。この
値と、ポインタレジスタ14の値を加算器16で加算す
る。ポインタレジスタ14には、現在の符号長を有する
複数の符号のうちの最初の符号がシンボルテーブル1内
の何番目に当たるかが格納されており、この加算によっ
てシンボルテーブル1内の位置が求められる。この加算
器16の加算結果をもとに、シンボルテーブル1からシ
ンボルを取り出して出力する。例えば、位置をアドレス
として用い、シンボルテーブル1に与えることによっ
て、そのアドレスに格納されていたシンボルを取り出す
ことができる。このようにして、復号化されたデータを
得ることができる。
【0025】以上のように、本発明の第1の実施例によ
れば、シンボルテーブル1と符号数テーブル2だけでハ
フマン符号を復号化することができる。このとき、従来
のように最小値テーブルおよびポインタテーブルは必要
としない。また、シンボルテーブル1の参照は、シンボ
ルテーブルの位置が算出された後に行なわれるだけであ
るから、高速に復号化することができる。
【0026】図2は、本発明のハフマン復号器の第2の
実施例を示すブロック図である。図中、21はバレルシ
フトレジスタ、22は位置計算部、23はシンボルテー
ブル、24はバレルシフト制御回路、25はnビット位
置計算部、26は選択部である。バレルシフトレジスタ
21は、外部よりM(≧N:最大符号長)ビット並列に
符号データが入力される。このとき、バレルシフト制御
回路24からのロード位置信号、および、位置計算部2
2から出力される符号長に基づき、指定されたロード位
置に符号長分のビット数だけ符号データを入力する。バ
レルシフト制御回路24は、位置計算部22から出力さ
れる符号長に基づき、バレルシフトレジスタ21にある
有効な符号がN以上のとき、シフト動作のみ行ない、バ
レルシフトレジスタ21にある有効な符号がN未満のと
き、ソフト動作を行なうとともに、バレルシフトレジス
タ21に符号データをロ−ドするためのロード位置信号
をバレルシフトレジスタ21に出力し、外部に次の符号
デ−タの転送を要求する。シンボルテーブル23は、各
符号に対応したシンボルを記憶しているテーブルであ
る。ここでは、符号の小さい順にシンボルが並べられて
いるものとする。
【0027】位置計算部22は、Nビットの符号データ
の先頭から、最小の符号長を有する符号を探し出し、そ
の符号の符号長と、その符号に対応するシンボルが保存
されているシンボルテーブル23の位置を生成する。位
置計算部22は、符号が取りうる符号長ごとに複数のn
ビット位置計算部25(n≦N)を有し、また、選択部
26を有している。各nビット位置計算部25では、符
号データが符号長nであるか否かを判定するとともに、
符号データが符号長nである場合には、その符号データ
に対応するシンボルの格納されているシンボルテーブル
23の位置を計算する。選択部26は、各nビット位置
計算部25における判定結果をもとに、符号データが符
号長nであると判定したnビット位置計算部25のうち
から符号長が最小のものを選択し、選択したnビット位
置計算部25の符号長と、選択したnビット位置計算部
25が計算したシンボルテーブル23の位置を出力す
る。
【0028】このような構成において、符号長に基づく
シフト動作およびバレルシフト制御回路24のロード位
置制御によって、バレルシフトレジスタ21には常に可
変長符号の先頭が、位置計算部22で使用されるNビッ
トの符号デ−タの先頭にくるように制御されている。こ
のバレルシフトレジスタ21の内容からNビットの符号
データが位置計算部22に送られる。
【0029】位置計算部22では、符号ビット数に応じ
たnビット位置計算部25に対して、符号データの先頭
からnビットの符号データが与えられる。各nビット位
置計算部25は並列的にnビットの符号データが符号と
して成立するか否かを判定する。そして、nビットの符
号であることが判定されたnビット位置計算部25は、
その符号に対応するシンボルの格納されているシンボル
テーブル23の位置を計算する。各nビット位置計算部
25における判定の結果および計算された位置は、選択
部26に入力される。選択部26は、符号として成立す
ると判定された符号長のうちから最小の符号長を求め
る。そして、求めた符号長を出力するとともに、その符
号長を処理したnビット位置計算部25で計算されたシ
ンボルテーブル23の位置をもとに、シンボルテーブル
23を参照し、シンボルを取り出す。例えば、位置をア
ドレスとしてシンボルテーブル23に与えることによっ
てシンボルを取り出すことができる。このようにして、
1度の処理で1つの符号を復号化することができる。
【0030】図3は、本発明のハフマン復号器の第2の
実施例における位置計算部の一例を示すブロック図であ
る。図中、30はnビット符号数保持部、31,35,
36は加算器、32はシンボル位置算出部、33はシフ
ト演算器、34は比較器、37は減算器、38はプライ
オリティエンコーダ、39はマルチプレクサである。こ
の例では、上述の第1の実施例で説明した繰り返し処理
を行なう構成を、並列的に処理を行なう第2の実施例に
適用した例を示している。図3では、符号長ごとに設け
られるnビット位置計算部25のうち、符号長がnビッ
ト、n+1ビットの符号データを処理するnビット位置
計算部およびn+1ビット位置計算部の部分のみを示し
ている。
【0031】図2におけるnビット位置計算部25は、
nビット符号数保持部30、加算器31,35、シンボ
ル位置算出部32、シフト演算器33、比較器34等か
ら構成される。また、選択部26は、プライオリティエ
ンコーダ38、マルチプレクサ39等から構成される。
【0032】nビット符号数保持部30は、符号長がn
ビットの符号数を保持している。加算器31は、n−1
ビット位置計算部のシフト演算器33の出力と、nビッ
ト符号数保持部30に保持されている符号長がnビット
の符号数の和を求める。シンボル位置算出部32は、N
ビットの符号データのうち上位nビットの値をもとに、
nー1ビット位置計算部のシフト演算器33および加算
器35の出力を用いてシンボルテーブル23の位置を計
算する。シフト演算器33は、加算器31の出力をシフ
トして2倍の値を計算し、符号長がn+1ビットの時の
最小値としてn+1ビット位置計算部に渡す。比較器3
4は、Nビットの符号データのうち上位nビットの値と
加算器31の出力とを比較し、nビットの符号データが
符号を構成するか否かを判定する。比較結果はプライオ
リティエンコーダ38に送られる。加算器15は、nビ
ット符号数保持部30に保持されている符号数と、n−
1ビット位置計算部の加算器35の出力を加算し、nビ
ットまでの符号数の累算を求める。この累算値は、n+
1ビット位置計算部のシンボル位置算出部32および加
算器35に与えられる。
【0033】シンボル位置算出部32は、この例では加
算器36および減算器37により構成されている。減算
器37は、Nビットの符号データのうち上位nビットの
値からn−1ビット位置計算部のシフト演算器32の演
算値を引く。加算器36は、減算器37の出力と、n−
1ビット位置計算部の加算器35の出力であるn−1ビ
ットまでの符号数の累算値とを加算する。この加算結果
がシンボルテーブル32の位置を示す。
【0034】プライオリティエンコーダ38は、各nビ
ット位置計算部25の比較器14からの比較結果をもと
に、符号として有効な最も小さい符号長を選択し、マル
チプレクサ39に選択信号を出力する。マルチプレクサ
39は、各nビット位置計算部25の加算器36の出力
のうちから、プライオリティエンコーダ38で選択され
た符号長に相当する出力を選んでシンボルテーブル23
に出力する。
【0035】次に、この位置計算部22の一例の動作に
ついて説明する。位置計算部22が動作を開始すると、
nビット符号数保持部30に保持されている符号数が加
算器31および加算器35に入力される。加算器31に
は、n−1ビット位置計算部から符号の最小値が渡され
るので、この最小値と符号数を加算し、比較器34に入
力する。それとともに、シフト演算器33によって加算
結果をシフトして2倍の値とし、n+1ビット位置計算
部の加算器31に入力する。最小の符号長を処理するn
ビット位置計算部の加算器31からは、最小の符号長を
有する符号数がそのまま出力される。加算器31による
加算とシフト演算器33による2倍の演算の結果が、符
号長が増加する方向に順次渡されることによって、各n
ビット位置計算部の比較器34には、符号長がnビット
の符号が取りうる値の最大値に1加えた値が設定され
る。
【0036】一方、加算器35には、n−1ビット位置
計算部から符号数の累算値が渡されるので、nビット符
号数保持部30に保持されている符号数との和を計算
し、n+1ビット位置計算部の加算器35に渡す。この
動作が各nビット位置計算部において行なわれることに
よって、それぞれの符号数までの累算値が設定される。
【0037】バレルシフトレジスタ21からNビットの
符号データが位置計算部22に送られると、Nビットの
符号デ−タのうち先頭からそれぞれの符号長の符号デ−
タが取り出されて、各nビット位置計算部25の比較器
34およびシンボル位置算出部32内の減算器37に入
力される。比較器34では、nビットの符号データと、
加算器31から出力される符号長がnビットの符号が取
りうる最大値に1加えた値とを比較する。このとき、加
算器31の出力がnビットの符号デ−タ未満のときイネ
−ブル信号を出す。
【0038】また、シンボル位置算出部32では、nビ
ットの符号データから、n−1ビット位置計算部から与
えられる符号長がnビットの符号が取りうる最小値を減
算器37で減算し、さらに、その値とn−1ビット位置
計算部から与えられる符号数の累算値とを加算器36で
加算する。この加算器36の出力は、比較器34からイ
ネーブル信号が出力されているとき、nビットの符号デ
ータが表わす符号に対するシンボルが格納されているシ
ンボルテ−ブルの位置を示している。
【0039】各nビット位置計算部25の比較器34で
比較した結果は、プライオリティエンコーダ38に入力
され、ここでイネーブル信号を出力しているnビット位
置計算部のうちから、最も小さい符号長を特定する。こ
れにより、Nビットの符号デ−タのうち、先頭から特定
した符号長の符号デ−タが1つの符号として認識された
ことになる。また、特定した符号長を処理しているnビ
ット位置計算部25から出力されているシンボルテーブ
ル23の位置をマルチプレクサ39で選択し、シンボル
テーブル23に与えることによって、対応するシンボル
が得られる。このような動作によって、1つの符号を復
号化することができた。
【0040】復号化された符号データをバレルシフトレ
ジスタ21から除去し、次のNビットを取り出して上述
のような処理により、次々に符号を復号化して行く。こ
のように、1つの符号の復号化は各符号長ごとに並列的
に行なわれるので、符号長によらず、高速に復号化する
ことができる。また、この実施例においても、上述の第
1の実施例と同様に、nビット符号数保持部30を各符
号長ごとに有しているだけであり、最小値やポインタ値
を保持しておく必要はない。
【0041】図4は、本発明のハフマン復号器の第2の
実施例における位置計算部の別の例を示すブロック図で
ある。図中の符号は図3と同様である。この例は、シン
ボル位置算出部32の構成が違うのみで、他は図3に示
した例と同様である。この例においても、シンボル位置
算出部32は加算器36と減算器37を有するが、図3
に示した例とは配置を逆転させている。すなわち、減算
器37は符号数の累算値から符号の最小値を減算し、加
算器36は減算器37の出力とnビットの符号データを
加算している。加算器36から出力される値は、シンボ
ルテーブル23の位置であることに変わりはない。単に
計算順序を変えているだけである。
【0042】このような構成にすると、符号デ−タが変
化したとき、減算器37が出力巣r値には変化はなく、
加算器36の値しか変化しない。そのため、シンボル位
置算出部32の動作が高速化され、全体の復号化の速度
を向上させることが可能である。
【0043】図5は、本発明のハフマン復号器の第2の
実施例における位置計算部のさらに別の例を示すブロッ
ク図である。図中、図4と同様の部分には同じ符号を付
して説明を省略する。41は符号レファレンスデータ保
持部、42,44はマルチプレクサ、43はアドレスレ
ファレンスデータ保持部である。図3および図4に示し
た例において、加算器31から比較器34に入力される
値は、各符号長の符号数が決まれば一意に決まる値であ
る。そのため、符号データが変化しても、この値は変化
しない。さらに、図4に示した例では、減算器37の出
力する値も符号データの変化には無関係に一定値であ
る。このようなことから、一定値をあらかじめ計算して
格納しておくことによって、回路を非常に簡略化するこ
とが可能である。図5に示した構成では、図3および図
4に示した加算器31の出力値を符号レファレンスデー
タ保持部41に保持させ、また、図4に示した減算器3
7の出力値をアドレスレファレンスデータ保持部43に
保持させている。
【0044】このような構成において、比較器34は符
号レファレンスデータ保持部41に保持されている値
と、nビットの符号データを比較し、nビットの符号デ
ータの方が小さいとき、イネーブル信号をプライオリテ
ィエンコーダ38に出力する。また、加算器36は、ア
ドレスレファレンスデータ保持部43に保持されている
値と、nビットの符号データを加算し、シンボルテーブ
ル23の位置を算出してマルチプレクサ39に出力して
いる。
【0045】このような構成によれば、符号化器を簡略
化するとともに、符号レファレンスデータ保持部41お
よびアドレスレファレンスデータ保持部43に保持され
ている値を計算する時間を削減することができるので、
全体の処理時間を高速化することができる。また、この
構成では、符号レファレンスデータ保持部41とアドレ
スレファレンスデータ保持部43のための記憶領域が必
要となるが、従来のように符号数、最小値、ポインタの
3つの情報を各符号数ごとに用意する場合に比べ、記憶
容量を減少させることができる。
【0046】さらに、図5では、複数のシンボルテーブ
ルを切り換えて使用するための構成を示している。すな
わち、符号レファレンスデータ保持部41およびアドレ
スレファレンスデータ保持部43を複数用意し、これら
をマルチプレクサ42,44で切り換えて使用する。図
3や図4に示した構成では、シンボルテーブルを切り換
えた場合、nビット符号数保持部30を切り換えてすべ
て計算し直さなければならない。しかし、図5に示した
構成では、マルチプレクサ42,44の切換のみによっ
てシンボルテーブルの切換を行なうことができ、シンボ
ルテーブルの切換時の遅延を抑えることができる。
【0047】
【発明の効果】以上の説明から明らかなように、本発明
によれば、シンボルテーブルを参照する回数を減少さ
せ、高速な復号化処理が行なえるとともに、最小値テー
ブルおよびポインタテーブルを必要としないので、記憶
容量を削減でき、装置を簡略化し、小型化できるととも
に、安価に作成することができる。
【0048】また、請求項2に記載の発明のように、各
符号長の処理を並列に行なうことによって、符号長によ
らず、高速に復号化処理を行なうことができる。このと
き、請求項3に記載の発明のように、請求項1に記載の
構成を適用することが可能であり、テーブルなどの削減
を行なうことができる。さらに、請求項4に記載の発明
のように、定数部分をあらかじめ計算しておくことによ
って、さらに高速化できるとともに、シンボルテーブル
の切換時にも遅延を発生することなく復号化することが
できるという効果がある。
【図面の簡単な説明】
【図1】 本発明のハフマン復号器の第1の実施例を示
すブロック図である。
【図2】 本発明のハフマン復号器の第2の実施例を示
すブロック図である。
【図3】 本発明のハフマン復号器の第2の実施例にお
ける位置計算部の一例を示すブロック図である。
【図4】 本発明のハフマン復号器の第2の実施例にお
ける位置計算部の別の例を示すブロック図である。
【図5】 本発明のハフマン復号器の第2の実施例にお
ける位置計算部のさらに別の例を示すブロック図であ
る。
【図6】 ハフマン符号化の一例の説明図である。
【図7】 符号化されるシンボルおよびそのシンボルに
与える符号長の説明図である。
【図8】 従来のハフマン復号器の構成の一例を示すブ
ロック図である。
【符号の説明】
1…シンボルテーブル、2…符号数テーブル、3…シフ
トレジスタ、4…カウンタ、5…符号数取り出し手段、
6…符号数レジスタ、7…オフセットレジスタ、8,1
4…ポインタレジスタ、9,12,16…加算器、10
…比較器、11…シフト演算器、15…減算器、21…
バレルシフトレジスタ、22…位置計算部、23…シン
ボルテーブル、24…バレルシフト制御回路、25…n
ビット位置計算部、26…選択部、30…nビット符号
数保持部、31,35,36…加算器、32…シンボル
位置算出部、33…シフト演算器、34…比較器、37
…減算器、38…プライオリティエンコーダ、39…マ
ルチプレクサ、41…符号レファレンスデータ保持部、
42,44…マルチプレクサ、43…アドレスレファレ
ンスデータ保持部。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 7/40

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 ハフマン符号を復号するハフマン復号器
    において、符号の値順に並んだシンボルを保持するシン
    ボルテーブルと、各符号長の個数を保存した符号数テー
    ブルと、符号データを順次入力するシフトレジスタと、
    シフト回数を数えるカウンタと、前記符号数テーブルか
    ら前記カウンタの値に対応する符号数を取り出す符号数
    取り出し手段と、該符号数取り出し手段によって取り出
    された符号数を保持する符号数レジスタと、オフセット
    レジスタと、ポインタレジスタと、前記符号数レジスタ
    と前記オフセットレジスタの内容を加算する第1の加算
    器と、該第1の加算器で加算した結果と前記シフトレジ
    スタの内容を比較する比較器と、前記第1の加算器で加
    算した結果をシフト演算して前記オフセットレジスタに
    格納するシフト演算器と、前記符号数取り出し手段によ
    って取り出された符号数と前記ポインタレジスタに保持
    されている値を加算し前記ポインタレジスタに保持させ
    る第2の加算器と、前記比較器の結果に基づき前記オフ
    セットレジスタの値と前記ポインタレジスタの値から前
    記シンボルテーブル内の復号シンボルが保存された位置
    を算出するシンボル位置算出手段を有することを特徴と
    するハフマン復号器。
  2. 【請求項2】 ハフマン符号を復号するハフマン復号器
    において、符号の値順に並んだシンボルを保持するシン
    ボルテーブルと、少なくともNビットの符号データを入
    力するシフトレジスタと、符号データのビット長ごとに
    設けられ該シフトレジスタに保持された符号データのう
    ちnビットの符号データから前記シンボルテーブルの位
    置を計算するとともに該位置が有効か否かを示すイネー
    ブル信号を出力する複数のnビット位置計算手段と、該
    複数のnビット位置計算手段からのイネーブル信号が有
    効でありかつ最小の符号長の前記位置を選択して前記シ
    ンボルテーブルに与えるとともに選択した符号長を出力
    する選択手段と、該選択手段からの符号長に基づき前記
    シフトレジスタのシフト量を制御するシフトレジスタ制
    御手段を有することを特徴とするハフマン符号器。
  3. 【請求項3】 nビット位置計算手段は、nビットの符
    号データに対応する符号長の個数を保存する符号数保持
    手段と、前記符号数保持手段と前段のn−1ビット位置
    計算手段から与えられるn−1ビットのシフト演算値と
    を加算する第1の加算器と、該第1の加算器で加算した
    結果とnビットの符号データを比較しイネーブル信号を
    出力する比較器と、前記第1の加算器で加算した結果を
    シフト演算してnビットのシフト演算値を作成し後段の
    n+1ビット位置計算手段に与えるシフト演算器と、前
    記符号数保持手段に保持されている符号数と前段のn−
    1ビット位置計算手段から与えられるn−1ビットまで
    の符号数とを加算してnビットまでの符号数を計算する
    第2の加算器と、nビットの符号データと前段のn−1
    ビット位置計算手段からのシフト演算値および符号数と
    からnビットの符号データに対応する前記シンボルテー
    ブル内の復号シンボルが保存された位置を算出するシン
    ボル位置算出手段を有することを特徴とする請求項2に
    記載のハフマン復号器。
  4. 【請求項4】 nビット位置計算手段は、nビットの符
    号データに対応する符号参照データを保持する符号参照
    データ保持手段と、該符号参照データ保持手段に保持さ
    れている符号参照データとnビットの符号データを比較
    しイネーブル信号を出力する比較器と、n−1ビットま
    でのシフト演算値および符号数に基づき決定される位置
    参照データを保持する位置参照データ保持手段と、該位
    置参照データ保持手段に保持されている位置参照データ
    に基づきnビットの符号データに対応する前記シンボル
    テーブル内の復号シンボルが保持された位置を算出する
    シンボル位置算出手段を有することを特徴とする請求項
    2に記載のハフマン復号器。
JP24634894A 1994-10-12 1994-10-12 ハフマン復号器 Expired - Fee Related JP3221252B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24634894A JP3221252B2 (ja) 1994-10-12 1994-10-12 ハフマン復号器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24634894A JP3221252B2 (ja) 1994-10-12 1994-10-12 ハフマン復号器

Publications (2)

Publication Number Publication Date
JPH08111645A JPH08111645A (ja) 1996-04-30
JP3221252B2 true JP3221252B2 (ja) 2001-10-22

Family

ID=17147227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24634894A Expired - Fee Related JP3221252B2 (ja) 1994-10-12 1994-10-12 ハフマン復号器

Country Status (1)

Country Link
JP (1) JP3221252B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3014997B2 (ja) * 1998-02-26 2000-02-28 鐘紡株式会社 可変長符号復号装置

Also Published As

Publication number Publication date
JPH08111645A (ja) 1996-04-30

Similar Documents

Publication Publication Date Title
JP3227292B2 (ja) 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
JP3332619B2 (ja) 復号装置およびその方法
JPH0258812B2 (ja)
EP0021283A1 (en) Digital data apparatus
KR0138971B1 (ko) 허프만 부호 복호회로
JP3189876B2 (ja) 可変長符号復号化回路
JP3684128B2 (ja) 算術符号化/復号化方法ならびに算術符号化/復号化装置
US5617089A (en) Huffman code decoding circuit
US6408102B1 (en) Encoding/decoding device
JP3221252B2 (ja) ハフマン復号器
JP3459759B2 (ja) 算術復号化装置
KR100466455B1 (ko) 부호변환기와가변길이부호복호장치및복호방법
JP3389391B2 (ja) 可変長コードの符号化及び分割装置
JP3184670B2 (ja) 画像符号化装置
US5991340A (en) Method and system for encoding and decoding data using run prediction
JP2002026737A (ja) データ復号化装置とその方法
JP3317079B2 (ja) 可変長符号復号装置
JP3247052B2 (ja) 画像データ変換処理方法及び装置
JP2004320724A (ja) 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JPH07111459A (ja) データ圧縮方法
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置
JP3336537B2 (ja) 符号化装置、復号化装置、符号化・復号化装置及び算術符号化装置
JPH06104769A (ja) ハフマン符号復号装置
JP3224127B2 (ja) 画像データ変換処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070817

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080817

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090817

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120817

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120817

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130817

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees