JPH06104769A - ハフマン符号復号装置 - Google Patents

ハフマン符号復号装置

Info

Publication number
JPH06104769A
JPH06104769A JP24812492A JP24812492A JPH06104769A JP H06104769 A JPH06104769 A JP H06104769A JP 24812492 A JP24812492 A JP 24812492A JP 24812492 A JP24812492 A JP 24812492A JP H06104769 A JPH06104769 A JP H06104769A
Authority
JP
Japan
Prior art keywords
code
address
bit string
code length
length
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.)
Withdrawn
Application number
JP24812492A
Other languages
English (en)
Inventor
Takashi Katsuyama
隆史 勝山
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP24812492A priority Critical patent/JPH06104769A/ja
Publication of JPH06104769A publication Critical patent/JPH06104769A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 複数の符号長に対応する復号動作を同時に均
一な時間で実行することにより、全体として復号時間を
短縮する。 【構成】 ビット列選択手段11は、複数のハフマン符
号がパックされているデータから特定のビット長のビッ
ト列を選択する。比較手段14は、ビット列選択手段1
1で選択されたビット列と、符号語記憶手段12に記憶
されている符号語とを比較する。符号長決定手段20
は、複数の比較手段14の比較結果に基づき符号長を決
定する。アドレス生成手段30は、符号長決定手段20
で決定されたい符号長に対応するビット列選択手段11
で選択されたビット列、符号語記憶手段12に記憶され
ている符号語、及びアドレス記憶手段13に記憶されて
いるアドレスに基づき、メモリアドレスを生成する。こ
のメモリアドレスを用いて、シンボルの格納されている
メモリをアクセスして復号を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置におい
て、複数のハフマン符号がパックされているデータから
復号を行うハフマン符号復号装置に関するものである。
【0002】
【従来の技術】従来、このような分野の技術として、例
えば次のような文献に記載されるものがある。 文献;吹抜敬彦著「FAX,OAのための画像の信号処
理」初版(昭57−10−20)日刊工業新聞社、P.
166−167 複数のシンボル(復号データ)からなる情報源からのデ
ータを伝達する場合、発生確率の高いシンボルには短い
符号語を割り当て、発生確率の低いシンボルには長い符
号語を割り当てることにより、全体として短い符号語長
で情報の伝達が可能なことが知られている。ハフマン符
号も前記の目的を果たすための符号の1つである。従
来、複数のハフマン符号がパックされているデータを復
号するためには、まず発生確率の最も高いシンボルに割
り当てられている符号語の長さ分のビット列を読み出
し、そのビット列と符号語を比較する。一致した場合に
は、その符号語に対するシンボルが復号結果となる。一
致しなかった場合には、次に発生確率の高いシンボルに
割り当てられている符号語の長さ分のビット列を読み出
して、そのビット列と符号語を比較する。以下ビット列
の読み出しと符号語の比較結果が一致するまで繰り返さ
れる。また、前記文献に記載されているように、符号語
Treeから復号用のメモリ配列を作成し、ハフマン符
号を1ビットずつ取り出してアドレスを生成し、前記の
メモリ配列を読み出しながら復号を行う方法もある。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
ハフマン符号復号装置では、あるシンボルよりも高い発
生確率のシンボルに対する符号語の比較動作のために、
全体として復号に必要な時間が長くなる。また、同じ符
号長の符号語が複数ある場合に、同じ符号長の符号語を
割り当てたシンボルであっても、そのシンボルよりも高
い発生確率のシンボルに対する符号語の比較動作のため
に、全体として復号に必要な時間が長くなり、それらを
解決することが困難であった。本発明は、前記従来技術
が持っていた課題として、復号時間が長いという点につ
いて解決し、複数の符号長に対応する復号動作を同時に
均一な時間で実行することにより、あるいは同じ符号長
を割り当てたシンボルの復号を均一な時間で実行するこ
とにより、全体として復号時間を短縮することができ
る、ハフマン符号復号装置を提供するものである。
【0004】
【課題を解決するための手段】第1の発明は、前記課題
を解決するために、複数のハフマン符号がパックされて
いるデータの復号を行うハフマン符号復号装置におい
て、特定の符号長に対応する符号語の中から特定の符号
語だけを記憶する符号語記憶手段と、前記符号語記憶手
段に記憶されている符号語に対応する復号値を記憶して
いるメモリのアドレスを記憶するアドレス記憶手段と、
前記複数のハフマン符号がパックされているデータか
ら、特定のビット長のビット列を選択するビット列選択
手段と、前記符号語記憶手段に記憶されている符号語と
前記ビット列選択手段により選択されたビット列の比較
を行う比較手段とを、異なる符号長に対応して複数組備
えている。そして、前記複数組の符号語記憶手段、アド
レス記憶手段、ビット列選択手段、及び比較手段を同時
に動作させて得られる該複数の比較手段の比較結果に基
づいて符号長を決定する符号長決定手段と、前記符号長
決定手段により決定された符号長に対応する前記符号語
記憶手段に記憶されている符号語、前記符号長決定手段
により決定された符号長に対応する前記アドレス記憶手
段に記憶されているアドレス、及び前記符号長決定手段
により決定された符号長に対応する前記ビット列選択手
段で選択したビット列に基づき、メモリアドレスを生成
するアドレス生成手段とを、設けている。
【0005】第2の発明では、複数のハフマン符号がパ
ックされているデータの復号を行うハフマン符号復号装
置において、使用するハフマン符号の中で同じ符号長の
符号語の中の最大値を該符号長をアドレスとして格納す
る最大値記憶手段と、前記使用するハフマン符号の中で
同じ符号長の符号語の各々に対応する復号値を格納して
いるメモリ上の配列のポインタを前記符号長をアドレス
として格納するポインタ記憶手段と、符号長毎に前記最
大値記憶手段と前記ポインタ記憶手段に記憶されている
値が有効か無効かを示すフラグを前記符号長をアドレス
として格納するフラグ記憶手段と、前記複数のハフマン
符号がパックされているデータから指定したビット長の
ビット列を選択するビット列選択手段と、前記ビット列
選択手段で選択した選択ビット列と該選択ビット列のビ
ット長をアドレスとして前記最大値記憶手段から読み出
した読み出し最大値とを比較して、選択ビット列>読み
出し最大値の場合には条件不成立を示す比較出力信号
を、選択ビット列≦読み出し最大値の場合には条件成立
を示す比較出力信号を出力する最大値比較手段と、前記
選択ビット列、該選択ビット列のビット長をアドレスと
して前記ポインタ記憶手段から読み出した配列のポイン
タ、及び前記読み出し最大値に基づき、メモリアドレス
を生成するアドレス生成手段と、制御手段とを、備えて
いる。制御手段は、前記比較出力信号が条件不成立を示
す信号である場合、あるいは前記フラグ記憶手段から前
記ビット長をアドレスとして読み出した読み出しフラグ
が無効を示している場合は今までのビット長に+1を加
算した値を新しいビット長として再び前記動作を実行す
るように制御しさらに前記アドレス生成手段が生成した
アドレスが無効であることを示し、前記比較出力信号が
条件成立を示す信号でありかつ前記読み出しフラグが有
効を示している場合は前記アドレス生成手段が生成した
メモリアドレスが有効であることを示す信号を出力する
ように制御する機能を有している。
【0006】第3の発明では、複数のハフマン符号がパ
ックされているデータの復号を行うハフマン符号復号装
置において、使用するハフマン符号の中で同じ符号長の
符号語の中の最大値を該符号長をアドレスとして格納す
る最大値記憶手段と、前記使用するハフマン符号の中で
同じ符号長の符号語の各々に対応する復号値を格納して
いるメモリ上の配列のポインタを前記符号長をアドレス
として格納するポインタ記憶手段と、次に処理すべき符
号長を前記符号長をアドレスとして格納する次符号長記
憶手段と、前記複数のハフマン符号がパックされている
データから前記符号長をビット長としてビット列を選択
するビット列選択手段と、前記ビット列選択手段で選択
した選択ビット列と該選択ビット列のビット長をアドレ
スとして前記最大値記憶手段から読み出した最大値とを
比較して、選択ビット列>読み出し最大値の場合には条
件不成立を示す比較出力信号を、選択ビット列≦読み出
し最大値の場合には条件成立を示す比較出力信号を出力
する最大値比較手段と、前記選択ビット列、該選択ビッ
ト列のビット長をアドレスとして前記ポインタ記憶手段
から読み出した配列のポインタ、及び前記読み出し最大
値に基づき、メモリアドレスを生成するアドレス生成手
段と、制御手段とを、備えている。制御手段は、前記比
較出力信号が条件不成立を示す信号である場合は前記選
択したビット長をアドレスとして前記次符号長記憶手段
から読み出した符号長を新しいビット長として再び前記
動作を実行しさらに前記アドレス生成手段が生成したア
ドレスが無効であることを示し、前記比較出力信号が条
件成立を示す信号である場合は前記アドレス生成手段が
生成したメモリアドレスが有効であることを示すように
制御する機能を有している。
【0007】
【作用】第1の発明によれば、以上のようにハフマン符
号復号装置を構成したので、ビット列選択手段により、
複数のハフマン符号がパックされているデータから特定
のビット長のビット列が選択されて比較手段へ送られ
る。比較手段では、ビット列選択手段により選択された
ビット列と、符号語記憶手段に記憶されている符号語と
を比較し、その比較結果を符号長決定手段へ送る。符号
長決定手段は、複数の比較手段の比較結果に基づいて符
号長を決定し、アドレス生成手段へ送る。アドレス生成
手段は、符号長決定手段により決定された符号長に対応
するビット列選択手段で選択したビット列、符号語記憶
手段に記憶されている符号語、及びアドレス記憶手段に
記憶されているアドレスを用いてメモリアドレスを生成
する。この生成されたアドレスを用いてシンボルの格納
されているメモリをアクセスすれば、並列処理によって
高速に復号が行える。第2の発明によれば、ビット列選
択手段は複数のハフマン符号がパックされているデータ
から指定したビット長のビット列を選択し、最大値比較
手段へ送る。最大値比較手段では、ビット列選択手段で
選択した選択ビット列と、最大値記憶手段から読み出し
た読み出し最大値とを比較し、前者の選択ビット列の方
が大きい場合には条件不成立を示す比較出力信号を、前
者の選択ビット列と後者の読み出し最大値が等しいか、
あるいは前者の方が小さい場合には条件成立を示す比較
出力信号を出力し、制御手段へ送る。アドレス生成手段
では、ビット列選択手段で選択した選択ビット列、最大
値記憶手段から読出した読み出し最大値、及びポインタ
記憶手段から読み出した読み出しポインタに基づき、ア
ドレスを生成する。制御手段は、最大値比較手段から出
力された比較出力信号が条件成立を示す信号であり、か
つフラグ記憶手段から読み出された読み出しフラグが有
効を示している場合はアドレス生成手段が生成したメモ
リアドレスが有効であることを示す信号を出力する。そ
して、このメモリアドレスを用いてシンボルの格納され
ているメモリをアクセスすれば、簡単に復号が行える。
【0008】第3の発明によれば、ビット列選択手段
は、第2の発明と同様に、複数のハフマン符号がパック
されているデータから符号長をビット長としてビット列
を選択し、最大値比較手段へ送る。最大値比較手段で
は、ビット列選択手段で選択した選択ビット列と、最大
値記憶手段から読み出した読み出し最大値とを比較し、
前者の選択ビット列の方が大きい場合には条件不成立を
示す比較出力信号を、前者の選択ビット列と後者の読み
出し最大値が等しいか、あるいは前者の方が小さい場合
には条件成立を示す比較出力信号を出力し、制御手段へ
送る。アドレス生成手段は、ビット列選択手段で選択し
た選択ビット列、最大値記憶手段から読み出した読み出
し最大値、及びポインタ記憶手段から読み出した読み出
しポインタに基づき、アドレスを生成する。制御手段で
は、最大値比較手段から出力された比較出力信号が条件
成立を示す信号であるときにはアドレス生成手段が生成
したメモリアドレスが有効であることを示す。このメモ
リアドレスに基づき、シンボルの格納されているメモリ
をアクセスすれば、簡単に復号が行える。従って、前記
課題を解決できるのである。
【0009】
【実施例】第1の実施例 図1は、本発明の第1の実施例を示すハフマン符号復号
装置の基本構成ブロック図である。このハフマン符号復
号装置は、パックドハフマン符号供給部等から供給され
るパックドハフマン符号PHをそれぞれ入力する複数の
ユニット101 〜10n を有し、その各ユニット101
〜10n の出力側には、符号長決定手段20及びアドレ
ス生成手段30が接続されている。各ユニット101
10n は、ビット列選択手段11、符号語記憶手段1
2、アドレス記憶手段13、及び比較手段14でそれぞ
れ構成されており、取り扱うハフマン符号に現れる符号
長の種類よりも1だけ小さい数のユニットが少なくとも
必要である。例えば、1ビット長から16ビット長まで
の16種類のハフマン符号が現れる場合は、少なくとも
15個のユニット101 〜1015が必要になる。ビット
列選択手段11は、各ユニット101 〜10n が扱う符
号長に対応するビット列をパックドハフマン符号PHか
ら選択する機能を有し、その出力側に比較手段14が接
続されている。符号語記憶手段12は、各ユニット10
1 〜10n が取り扱う符号長に等しいハフマン符号の符
号語の中から特定の1つの符号語だけを記憶する機能を
有し、その出力側に比較手段14が接続されている。ア
ドレス記憶手段13は、シンボル(復号データ)が格納
されている図示しない配列メモリの特定の1つのアドレ
スだけを記憶するものである。比較手段14は、ビット
列選択手段11と符号語記憶手段12の出力を比較する
機能を有している。各ユニット101 〜10n 内の比較
手段14の出力側には符号長決定手段20が接続され、
その出力側にアドレス生成手段30が接続されている。
また、各ユニット101 〜10n 内のビット列選択手段
11、符号語記憶手段12、及びアドレス記憶手段13
の各出力側が、アドレス生成手段30に接続されてい
る。符号長決定手段20は、各ユニット101 〜10n
内の比較手段14の出力から符号長を決定し、その決定
した符号長をアドレス生成手段30へ与える機能を有し
ている。アドレス生成手段30は、各ユニット101
10n 内のビット列選択手段11、符号語記憶手段1
2、及びアドレス記憶手段13の各出力と、符号長決定
手段20の出力とに基づき、シンボルが格納されている
図示しない配列メモリのアドレスADを生成する機能を
有している。
【0010】次に、動作を説明する。パックドハフマン
符号PHが各ユニット101 〜10n 内のビット列選択
手段11に入力されると、各ビット列選択手段11で
は、各ユニット101 〜10nが扱う符号長に対応する
ビット列をパックドハフマン符号PHの上位側から選択
して比較手段14へ出力する。比較手段14は、ビット
列選択手段11で選択されたビット列と、符号語記憶手
段12に記憶されている符号語との大小の比較を行い、
その比較結果を符号長決定手段20へ出力する。符号長
決定手段20は、各ユニット101 〜10n 内の比較手
段14から出力された比較結果に基づき、パックドハフ
マン符号PHの上位側に位置する符号語の符号長を決定
し、その決定結果をアドレス生成手段30へ送る。アド
レス生成手段30は、各ユニット101 〜10n 内のビ
ット列選択手段11、符号語記憶手段12、及びアドレ
ス記憶手段13の出力と、符号長決定手段20で決定さ
れた符号長とに基づき、シンボルが格納されている図示
しない配列メモリのアドレスADを生成し、出力する。
このアドレスADに基づき、図示しない配列メモリに格
納されているシンボルが読み出される。本実施例では、
ハフマン符号の復号において、シンボルの出現確率や符
号語の符号長に関係なく、均一な時間で、シンボルの格
納されている配列メモリをアクセスして復号することが
でき、全体として復号時間を短縮することができる。特
に、各ユニット101 〜10n で並列処理できるので、
復号処理を高速化できる。
【0011】第2の実施例 図2は、本発明の第2の実施例を示すもので、図1のハ
フマン符号復号装置においてハフマン符号の符号長が2
ビットから9ビットまでに対応できる構成のハフマン符
号復号装置の構成ブロック図である。このハフマン符号
復号装置は、パックドハフマン符号供給部1を有し、そ
の出力側が、図1のビット列選択手段11の機能を有す
る分割配線を介して、複数のユニット102 〜109
入力側に接続されている。これらのユニット102 〜1
9 の出力側には、比較結果デコード回路21で構成さ
れる符号長決定手段20と、アドレス生成手段30とが
接続されている。アドレス生成手段30は、ビット列選
択回路31、符号語選択回路32、ベースアドレス選択
回路33、及び減算器34,35で構成されている。パ
ックドハフマン符号供給部1は、複数のハフマン符号を
上位側からパックした9ビット長のパックドハフマン符
号PH[8:0]を生成し出力する機能を有すると共
に、比較結果デコード回路21から供給される符号長を
受け取り、その符号長分のデータを上位側から削除して
新たに9ビット長のパックドハフマン符号を生成し、再
び各ユニット102 〜109 へ出力する機能を有してい
る。ユニット102 〜109 は、それぞれのユニット番
号が示すビット長のデータを処理するように構成されて
おり、パックドハフマン符号供給部1の出力PH[8:
0]の上位側から適応するビット長分だけのデータを符
号長決定手段20及びアドレス生成手段30へ供給する
機能を有している。例えば、ユニット102はPH
[8:7]の2ビット長のデータ、ユニット103 はP
H[8:6]の3ビット長のデータ、ユニット109
PH[8:0]の9ビット長のデータを供給する機能を
有している。
【0012】比較結果デコード回路21は、各ユニット
102 〜109 から送られてくる比較結果に基づき、パ
ックドハフマン符号供給部1が出力したデータの最上位
側にパックされている符号語の符号長を決定し、その決
定結果をパックドハフマン符号供給部1と、ビット列選
択回路31、符号語選択回路32、及びベースアドレス
選択回路33とに、供給する回路である。ビット列選択
回路31は、比較結果デコード回路21で決定した符号
長と同じ番号のユニットから出力されたビット列を選択
して減算器34に出力する回路である。符号語選択回路
32は、比較結果デコード回路21で決定した符号長と
同じ番号のユニットから出力された最大符号語を選択し
て減算器34に供給する回路である。ベースアドレス選
択回路33は、比較結果デコード回路21で決定した符
号長と同じ番号のユニットから出力されたベースアドレ
スを選択して減算器35へ出力する機能を有している。
減算器34は、符号語選択回路32の出力からビット列
選択回路31の出力を減算してその減算結果を減算器3
5へ供給する回路である。さらに、減算器35は、ベー
スアドレス選択回路33の出力から減算器34の出力を
減算し、その減算結果を、シンボルを記憶している図示
しない配列メモリをアクセスするアドレスADとして出
力する機能を有している。
【0013】図3は、図2に示す各ユニット102 〜1
9 の構成ブロック図である。各ユニット102 〜10
9 は、図1の符号語記憶手段12を構成する最大符号語
レジスタ12aと、アドレス記憶手段13を構成するベ
ースアドレスレジスタ13aと、比較手段14を構成す
る比較器14aとを、備えている。図2のパックドハフ
マン符号供給部1から入力したデータは、比較器14a
と図2のビット列選択回路31に供給される。最大符号
語レジスタ12aは、使用するハフマン符号でそのユニ
ット番号に等しい符号長を持つ符号語の最大値を記憶し
ており、その出力を比較器14aと図2の符号語選択回
路32へ供給する機能を有している。ベースアドレスレ
ジスタ13aは、使用するハフマン符号でそのユニット
番号に等しい符号長を持つ符号語の最大値に対応するシ
ンボルを記憶している図示しない配列メモリのアドレス
を記憶しており、その出力を図2のベースアドレス選択
回路33へ供給する機能を有している。比較器14a
は、最大符号語レジスタ12aから供給されたデータ
と、図2のパックドハフマン符号供給部1から供給され
たデータとの比較を行い、最大符号語レジスタ12aか
ら供給されたデータの方がパックドハフマン符号供給部
1から供給されたデータより大きいか、あるいは両方の
データが等しいときには1を、それ以外のときには0を
比較結果として図2の比較結果デコード回路21へ供給
する回路である。
【0014】次に、図4〜図8を参照しつつ、図2及び
図3のレジスタ類に記憶すべき値等を説明する。図4
は、図2で使用するハフマン符号表であり、このハフマ
ン符号はシンボル(復号データ)の発生確率順に並べら
れている。符号語『00』はシンボルの『0』に対応
し、その符号長は2である。符号語『010』、『01
1』、『100』、『101』、『110』はそれぞれ
シンボルの『1』、『8』、『7』、『9』、『6』に
対応し、その符号長は3である。符号語『1110』は
シンボルの『4』に対応し、その符号長は4である。以
下、『11110』から『111111110』までの
符号についても、同様のことを示している。図5は、図
2及び図3に示す各ユニット102 〜109 内の最大符
号語レジスタ12aに記憶すべき値を示している。この
記憶すべき値は、図4のハフマン符号表から生成するこ
とができる。図4のハフマン符号表から、符号長2の符
号語は『00』しかないので、この符号語を符号なしの
2進数表現と考えて『0』をユニット102 の最大符号
語レジスタ12aに記憶する。符号長3の符号語は、
『010』、『011』、『100』、『101』、
『110』の5つがあるので、これらを符号なしの2進
数表現と考えて比較し、最大値である『6』をユニット
103 の最大符号語レジスタ12aに記憶する。符号長
4の符号語は『1110』しかないので、この符号語を
符号なし2進数表現と考えて『14』をユニット104
の最大符号語レジスタ12a記憶する。以下、『111
10』から『111111110』までの符号語につい
ても、同様のことを示している。
【0015】図6は、図2及び図3の各ユニット102
〜109 内のベースアドレスレジスタ13aに記憶すべ
き値を示している。この記憶すべき値は、図4のハフマ
ン符号表とシンボルをその発生確率順に記憶した図7の
配列メモリのアドレスから生成することができる。図4
のハフマン符号表から、符号長が2の符号語の最大値で
ある『00』に対応するシンボル『0』が記憶されてい
る図7の配列メモリのアドレスは『0』なので、ユニッ
ト102 のベースアドレスレジスタ13aには『0』を
記憶する。符号長が3の符号語の最大値である『11
0』に対応するシンボル『6』が記憶されている配列メ
モリのアドレスは、図7から『5』なので、ユニット1
3 のベースアドレスレジスタ13aには『5』を記憶
する。符号長4の符号語の最大値である『1110』に
対応するシンボル『4』が記憶されている配列メモリの
アドレスは、図7から『6』なので、ユニット104
ベースアドレスレジスタ13aには『6』を記憶する。
以下、ユニット105 からユニット109 までのベース
アドレスレジスタ13aに記憶する値も同様のことを示
している。
【0016】図7は、前述したようにこの本実施例のシ
ンボルを記憶している配列メモリのアドレスの内容を示
している。これは図4のハフマン符号表に基づき生成す
ることができる。この配列メモリには、図4に示すハフ
マン符号表のシンボルをアドレス『0』から順番に記憶
している。図8は、図2に示す比較結果デコード回路2
1の入力データと出力データを示す論理表である。比較
結果デコード回路入力は、左から順番にユニット1
2 、ユニット103 、…、ユニット109 から出力さ
れる比較結果を示している。比較結果デコード回路21
は、この論理表を満たすように動作する。図9及び図1
0は、図2及び図3に示すハフマン符号復号装置の動作
説明図であり、これらの図2、図9、図10を参照しつ
つ、本実施例の動作を説明する。まず、図2において、
パックドハフマン符号供給部1からパックドハフマン符
号PH[8:0]=『101111000』が出力され
る。ユニット102 ではパックドハフマン符号の上位2
ビットPH[8:7]=『10』を入力し、ユニット1
3 ではパックドハフマン符号の上位3ビットPH
[8:6]=『101』を入力し、ユニット104 では
パックドハフマン符号の上位4ビットPH[8:5]=
『1011』を入力し、以下同様にユニット105 から
ユニット109にデータを入力する。各ユニット102
〜109 では、パックドハフマン符号供給部1から入力
されたデータと、最大符号語レジスタ12aに記憶され
ているデータとを、比較器14aで比較し、その比較結
果を比較結果デコード回路21に供給する。この場合
は、ユニット102 の比較結果が0で、他のユニット1
3〜109 の比較結果が1となる。
【0017】比較結果デコード回路21は、入力された
データ『01111111』をデコードして『3』を出
力する。ビット列選択回路31は、比較結果デコード回
路21の出力『3』を受け取り、ユニット103 から入
力されたビット列『101』つまり『5』を選択して減
算器34に出力する。符号語選択回路32は、比較結果
デコード回路21の出力『3』を受け取り、ユニット1
3 から入力された符号語『6』を選択して減算器34
に出力する。ベースアドレス選択回路33は、比較結果
デコード回路21の出力『3』を受け取り、ユニット1
3 から入力されたベースアドレス『5』を選択して減
算器35に出力する。減算器34の演算B−Aにより、
『1』が出力されて減算器35に供給される。減算器3
5の演算B−Aにより、『4』が、シンボルが記憶され
ている配列メモリをアクセスするアドレスADとして出
力される。このアドレスADで配列メモリをアクセスし
てシンボル『9』を得る。また、比較結果デコード回路
21の出力『3』がパックドハフマン符号供給部1に供
給され、パックドハフマン符号『101111000』
の上位3ビットを削除して新たなパックドハフマン符号
『111000…』が生成される。これにより、図9に
示す状態になる。図9において、パックドハフマン符号
供給部1からパックドハフマン符号PH[8:0]=
『111000…』が出力される。ユニット102 では
パックドハフマン符号の上位2ビットPH[8:7]=
『11』を入力し、ユニット103ではパックドハフマ
ン符号の上位3ビット[8:6]=『111』を入力
し、ユニット104 ではパックドハフマン符号の上位4
ビットPH[8:5]=『1110』を入力し、以下同
様にユニット105 からユニット109 にデータを入力
する。各ユニット102 〜109 では、パックドハフマ
ン符号供給部1から入力されたデータと、最大符号語レ
ジスタ12aに記憶されているデータとを、比較器14
aで比較し、その比較結果を比較結果デコード回路21
に供給する。この場合は、ユニット102 と103 の比
較結果が0で他のユニット104 〜109の比較結果が
全て1となる。比較結果デコード回路21は、入力され
たデータ『00111111』をデコードして『4』を
出力する。ビット列選択回路31は、比較結果デコード
回路21の出力『4』を受け取り、ユニット104 から
入力されたビット列『1110』つまり『14』を選択
して減算器34に出力する。符号語選択回路32は、比
較結果デコード回路21の出力『4』を受け取り、ユニ
ット104 から入力された符号語『14』を選択して減
算器34に出力する。ベースアドレス選択回路33は、
比較結果デコード回路21の出力『4』を受け取り、ユ
ニット104 から入力されたベースアドレス『6』を選
択して減算器35に出力する。減算器34の演算B−A
により、『0』を出力し、減算器35に供給する。減算
器35の演算B−Aにより、『6』が、シンボルが記憶
されている配列メモリをアクセスするアドレスADとし
て出力される。このアドレスADで配列メモリをアクセ
スしてシンボル『4』を得る。また、比較結果デコード
回路21の出力『4』がパックドハフマン符号供給部1
に供給され、パックドハフマン符号『111000…』
の上位4ビットを削除して新たなパックドハフマン符号
『00…』が生成される。これにより、図10に示す状
態になる。
【0018】図10において、パックドハフマン符号供
給部1からパックドハフマン符号PH[8:0]=『0
0…』が出力される。ユニット102 ではパックドハフ
マン符号の上位2ビットPH[8:7]=『00』を入
力し、ユニット103 ではパックドハフマン符号の上位
3ビットPH[8:6]=『00…』を入力し、以下同
様にユニット105 からユニット109 にデータを入力
する。各ユニット102 〜109 では、パックドハフマ
ン符号供給部1から入力されたデータと、最大符号語レ
ジスタ12aに記憶されているデータとを、比較器14
aで比較し、その比較結果を比較結果デコード回路21
に供給する。この場合は、全てのユニット102 〜10
9 の比較結果が1となる。比較結果デコード回路21
は、入力された『11111111』をデコードして
『2』を出力する。ビット列選択回路31は、比較結果
デコード回路21の出力『2』を受け取り、ユニット1
2 から入力されたビット列『00』つまり『0』を選
択して減算器34に出力する。符号語選択回路32は、
比較結果デコード回路21の出力『2』を受け取り、ユ
ニット102 から入力された符号語『0』を選択して減
算器34に出力する。ベースアドレス選択回路33は、
比較結果デコード回路21の出力『2』を受け取り、ユ
ニット102 から入力されたベースアドレス『0』を選
択して減算器35に出力する。減算器34の演算B−A
により、『0』を出力し、減算器35に供給する。減算
器35の演算B−Aにより、『0』が、シンボルが記憶
されている配列メモリをアクセスするアドレスADとし
て出力される。このアドレスADで配列メモリをアクセ
スしてシンボル『0』を得る。また、比較結果デコード
回路21の出力『2』がパックドハフマン符号供給部1
に供給され、パックドハフマン符号『00…』の上位2
ビットを削除して新たなパックドハフマン符号が生成さ
れる。
【0019】以下同様に動作してパックドハフマン符号
の復号が行われる。従って、第1の実施例と同様の効果
が得られる。
【0020】第3の実施例 図11は、本発明の第3の実施例を示すもので、図1に
おいてハフマン符号の符号長が2ビットから9ビットま
でに対応できるハフマン符号復号装置の構成ブロック図
であり、第2の実施例を示す図2中の要素と共通の要素
には共通の符号が付されている。このハフマン符号復号
装置は、図2と同様のパックドハフマン符号供給部1、
及び比較結果デコード回路21からなる符号長決定手段
20を有する他に、図2とは異なる構成のユニット10
2 〜109 、及びアドレス生成手段30を備えている。
アドレス生成手段30は、オフセット選択回路36、ベ
ースアドレス選択回路37、及び減算器38より構成さ
れている。パックドハフマン符号供給部1は、複数のハ
フマン符号を上位側からパックした9ビット長のパック
ドハフマン符号PH[8:0]を生成し、それを各ユニ
ット102 〜109 へ出力すると共に、比較結果デコー
ド回路21から供給される符号長を受け取り、その符号
長分のデータを上位側から削除して新たに9ビット長の
パックドハフマン符号を生成し、再びユニット102
109 へ出力する機能を有している。複数のユニット1
2 〜109 は、それぞれのユニット番号が示すビット
長のデータを処理するように構成されており、パックド
ハフマン符号供給部1の出力PH[8:0]の上位側か
ら、適応するビット長分だけのデータを符号長決定手段
20及びアドレス生成手段30へ供給する機能を有して
いる。例えば、ユニット102 はHP[8:7]の2ビ
ット長のデータ、ユニット103 はHP[8:6]の3
ビット長のデータ、ユニット109 はHP[8:0]の
9ビット長のデータを供給する。比較結果デコード回路
21は、各ユニット102 〜109 から送られてくる比
較結果に基づき、パックドハフマン符号供給部1から出
力されたデータの最上位側にパックされている符号語の
符号長を決定し、パックドハフマン符号供給部1、オフ
セット選択回路36、及びベースアドレス選択回路37
に供給する回路である。オフセット選択回路36は、比
較結果デコード回路21で決定された符号長と同じ番号
のユニットから出力されるオフセットを選択し、それを
減算器38へ供給する回路である。ベースアドレス選択
回路37は、比較結果デコード回路21で決定された符
号長と同じ番号のユニットから出力されるベースアドレ
スを選択し、それを減算器38へ出力する回路である。
減算器38は、ベースアドレス選択回路37の出力か
ら、オフセット選択回路36の出力を減算し、その減算
結果を、シンボルを記憶している図示しない配列メモリ
をアクセスするアドレスADとして出力する機能を有し
ている。
【0021】図12は、図11に示す各ユニット102
〜109 の構成ブロック図である。図11のパックドハ
フマン符号供給部1から入力されたデータは、減算比較
器14bに供給される。最大符号語レジスタ12aは、
使用するハフマン符号でそのユニット番号に等しい符号
長を持つ符号語の最大値を記憶しており、その出力を減
算比較器14bへ供給する機能を有している。ベースア
ドレスレジスタ13aは、使用するハフマン符号でその
ユニット番号に等しい符号長を持つ符号語の最大値に対
応するシンボルを記憶している図示しない配列メモリの
アドレスを記憶しており、その出力を図11のベースア
ドレス選択回路37へ供給する機能を有している。減算
比較器14bは、最大符号語レジスタ12aから供給さ
れたデータから、図11のパックドハフマン符号供給部
1から供給されたデータを減算して比較を行い、最大符
号語レジスタ12aから供給されたデータの方が、パッ
クドハフマン符号供給部1から供給されたデータより大
きいか、あるいは両方のデータが等しいときには1を、
それ以外のときは0を、比較結果として図11の比較結
果デコード回路21へ供給し、さらに減算結果をオフセ
ット選択回路36へ供給する機能を有している。
【0022】本実施例のレジスタ類に記憶すべき値は、
図4〜図7に示した値と同じものである。また、比較結
果デコード回路21の入力データと出力データを示す論
理表は、図8と同一であり、該比較結果デコード回路2
1はこの論理表を満たすように動作する。図13及び図
14は、図11及び図12に示すハフマン符号復号装置
の動作説明図であり、これらの図11、図13及び図1
4を参照しつつ、本実施例の動作を説明する。まず図1
1において、パックドハフマン符号供給部1からパック
ドハフマン符号PH[8:0]=『10111100
0』が出力される。ユニット102 ではパックドハフマ
ン符号の上位2ビットPH[8:7]=『10』を入力
し、ユニット103 ではパックドハフマン符号の上位3
ビットPH[8:6]=『101』を入力し、ユニット
104 ではパックドハフマン符号の上位4ビットPH
[8:5]=『1011』を入力し、以下同様にユニッ
ト105 からユニット109にデータを入力する。各ユ
ニット102 〜109 では、パックドハフマン符号供給
部1から入力されたデータと、最大符号語レジスタ12
aに記憶されているデータとを、減算比較器14bで減
算を実行して比較を行い、その比較結果を比較結果デコ
ード回路21へ供給し、さらに該減算結果をオフセット
選択回路36へ供給する。この場合は、ユニット102
の比較結果が0で、他のユニット103〜109 の比較
結果が全て1となる。
【0023】比較結果デコード回路21は、入力された
データ『01111111』をデコードして『3』を出
力する。オフセット選択回路36は、比較結果デコード
回路21の出力『3』を受け取り、ユニット103 から
入力された減算結果『1』を選択して減算器38へ出力
する。ベースアドレス選択回路37は、比較結果デコー
ド回路21の出力『3』を受け取り、ユニット103
ら入力されたベースアドレスレ『5』を選択して減算器
38へ出力する。減算器38の演算B−Aにより、
『4』が、シンボルが記憶されている図示しない配列メ
モリをアクセスするアドレスADとして出力される。こ
のアドレスADで配列メモリをアクセスしてシンボル
『9』を得る。また、比較結果デコード回路21の出力
『3』がパックドハフマン符号供給部1に供給され、パ
ックドハフマン符号『101111000』の上位3ビ
ットを削除して新たなパックドハフマン符号『1110
00…』が生成される。これにより、図13に示す状態
になる。図13において、パックドハフマン符号供給部
1からパックドハフマン符号PH[8:0]=『111
000…』が出力される。ユニット102 ではパックド
ハフマン符号の上位2ビットPH[8:7]=『11』
を入力し、ユニット103 ではパックドハフマン符号の
上位3ビットPH[8:6]=『111』を入力し、ユ
ニット104 ではパックドハフマン符号の上位4ビット
PH[8:5]=『1110』を入力し、以下同様にユ
ニット105 からユニット109 にデータを入力する。
各ユニット102 〜109 では、パックドハフマン符号
供給部1から入力されたデータと、最大符号語レジスタ
12aに記憶されているデータとを、減算比較器14b
で減算を実行して比較を行い、その結果を比較結果デコ
ード回路21へ供給し、さらに該減算結果をオフセット
選択回路36へ供給する。この場合は、ユニット102
と103 の比較結果が0で、他のユニット104 〜10
9 の比較結果が全て1となる。
【0024】比較結果デコード回路21は、入力された
データ『00111111』をデコードして『4』を出
力する。オフセット選択回路36は、比較結果デコード
回路21の出力『4』を受け取り、ユニット104 から
入力された減算結果『0』を選択して減算器38へ出力
する。ベースアドレス選択回路37は、比較結果デコー
ド回路21の出力『4』を受け取り、ユニット104
ら入力されたベースアドレス『6』を選択して減算器3
8に出力する。減算器38の演算B−Aにより、『6』
が、シンボルが記憶されている図示しない配列メモリを
アクセスするアドレスADとして出力される。このアド
レスADで配列メモリをアクセスしてシンボル『4』を
得る。また、比較結果デコード回路21の出力『4』が
パックドハフマン符号供給部1に供給され、パックドハ
フマン符号『111000…』の上位4ビットを削除し
て新たなパックドハフマン符号『00…』が生成され
る。これにより、図14に示す状態になる。
【0025】図14において、パックドハフマン符号供
給部1からパックドハフマン符PH[8:0]=『00
…』が出力される。ユニット102 ではパックドハフマ
ン符号の上位2ビットPH[8:7]=『00』を入力
し、ユニット103 ではパックドハフマン符号の上位3
ビットPH[8:6]=『00…』を入力し、以下同様
にユニット105 からユニット109 にデータを入力す
る。各ユニット102〜109 では、パックドハフマン
符号供給部1から入力されたデータと、最大符号語レジ
スタ12aに記憶されているデータとを、減算比較器1
4bで減算を実行して比較を行い、その比較結果を比較
結果デコード回路21へ供給し、さらに該減算結果をオ
フセット選択回路36へ供給する。この場合は、全ての
ユニット102 〜109 の比較結果が1となる。比較結
果デコード回路21は、入力されたデータ『11111
111』をデコードして『2』を出力する。オフセット
選択回路36は、比較結果デコード回路21の出力
『2』を受け取り、ユニット102 から入力された減算
結果『0』を選択して減算器38へ出力する。ベースア
ドレス選択回路37は、比較結果デコード回路21の出
力『2』を受け取り、ユニット102 から入力されたベ
ースアドレス『0』を選択して減算器38に出力する。
減算器38の演算B−Aにより、『0』が、シンボルが
記憶されている図示しない配列メモリをアクセスするア
ドレスADとして出力される。このアドレスADで配列
メモリをアクセスしてシンボル『0』を得る。また、比
較結果デコード回路21の出力『2』がパックドハフマ
ン符号供給部1に供給され、パックドハフマン符号『0
0…』の上位2ビットを削除して新たなパックドハフマ
ン符号が生成される。以下同様に動作してパックドハフ
マン符号の復号が行われる。従って、第1の実施例と同
様の効果が得られる。
【0026】第4の実施例 図15は、本発明の第4の実施例を示すハフマン符号復
号装置の基本構成ブロック図である。このハフマン符号
復号装置は、選択ビット列S110を出力するビット列
選択手段110、読み出し最大値S120を出力する最
大値記憶手段120、読み出しポインタS130を出力
するポインタ記憶手段130、及び読み出しフラグS1
40を出力するフラグ記憶手段140を備えている。ビ
ット列選択手段110及び最大値記憶手段120の出力
側には、比較出力信号S150を出力する最大値比較手
段150が接続されている。さらに、ビット列選択手段
110、最大値記憶手段120、及びポインタ記憶手段
130の出力側には、メモリアドレスS160を出力す
るアドレス生成手段160が接続されている。最大値比
較手段150及びフラグ記憶手段140の出力側には、
制御手段170が接続され、その出力側にビット列選択
手段110が接続されると共に、該制御手段170及び
アドレス生成手段160の出力側にデータ処理部180
が接続されている。制御手段170は、符号長を示す値
をビット列選択手段110、最大値記憶手段120、ポ
インタ記憶手段130、及びフラグ記憶手段140に供
給してそれらの動作を制御すると共に、データ処理部1
80を制御する機能を有している。データ処理部180
は、制御手段170で制御され、アドレス生成手段16
0から出力されるメモリアドレスS160を用いて図示
しない配列メモリをアクセスし、シンボルを読み出す機
能を有している。
【0027】次に、動作を説明する。最大値記憶手段1
20には、符号長をアドレスとし、その同じ符号長の符
号語の中の最大値を記憶している。ポインタ記憶手段1
30は、符号長をアドレスとし、その同じ符号長の符号
語にそれぞれに対応するシンボルを符号語の示す値の順
番に格納した図示しない配列メモリへのポインタを記憶
している。また、フラグ記憶手段140は、符号長をア
ドレスとし、その同じアドレスの最大値記憶手段120
とポインタ記憶手段130に値を記憶した場合には有効
を示す値を、それ以外の場合には無効を示す値を記憶し
ている。まず、制御手段170から符号長を示す値が出
力され、それがビット列選択手段110、最大値記憶手
段120、ポインタ記憶手段130、及びフラグ記憶手
段140へ送られる。この送出された符号長を示す値に
対応する動作が、各手段110,120,130,14
0で次のようにして実行される。即ち、ビット列選択手
段110は、制御手段170から送られてくる値に等し
い長さのビット列をハフマン符号列から取り出し、選択
ビット列S110として最大値比較手段150へ出力す
る。最大値記憶手段120では、制御手段170から送
られてくる値をアドレスとして受け取り、そのアドレス
に対応する記憶内容を、読み出し最大値S120として
最大値比較手段150及びアドレス生成手段160へ出
力する。ポインタ記憶手段130では、制御手段170
から送られてくる値をアドレスとして受け取り、そのア
ドレスに対応する記憶内容を読み出しポインタS130
としてアドレス生成手段160へ出力する。さらに、フ
ラグ記憶手段140では、制御手段170から送られて
くる値をアドレスとして受け取り、そのアドレスに対応
する記憶内容を読み出しフラグS140として制御手段
170へ出力する。最大値比較手段150は、選択ビッ
ト列S110と読み出し最大値S170とを比較し、選
択ビット列S110の方が大きいときには条件不成立を
示す比較出力信号S150を送出し、それ以外のときに
は条件成立を示す比較出力信号S150を送出し、それ
らの比較出力信号S150を制御手段170へ送る。ア
ドレス生成手段160は、読み出し最大値S120、選
択ビット列S110、及び読み出しフラグS140に基
づき、所定の演算を行い、その演算結果をメモリアドレ
スS160としてデータ処理部180へ出力する。制御
手段170では、最大値比較手段150からの比較出力
信号S150と、フラグ記憶手段140からの読み出し
フラグS140とを受け取り、該比較出力信号S150
が条件不成立を示しているか、または読み出しフラグS
140が無効を示す値であったときには、前に送出した
符号長を示す値に+1を加算した値を新たな値として、
ビット列選択手段110、最大値記憶手段120、ポイ
ンタ記憶手段130、及びフラグ記憶手段140へ供給
し、それらの各手段の動作を制御する。そして、この制
御手段170では、比較出力信号S150が条件成立を
示し、かつ読み出しフラグS140が有効を示す値であ
ったときには、データ処理部180を活性化する。デー
タ処理部180は、アドレス生成手段160からのメモ
リアドレスS150を用いて、図示しない配列メモリを
アクセスし、シンボルを読み出す。本実施例では、ハフ
マン符号の復号においてnビット長の符号語に割り当て
られたシンボルへの復号のために、最大値比較手段15
0におけるn回の比較動作と、アドレス生成手段160
における1回のメモリアドレス生成とを行うことによ
り、シンボルの格納されている配列メモリをデータ処理
部180でアクセスして復号ができるので、全体として
復号時間を短縮することができる。
【0028】第5の実施例 図16は、本発明の第5の実施例を示すもので、図15
においてハフマン符号の符号長が最大で16ビットの場
合まで対応できるハフマン符号復号装置の構成ブロック
図であり、第4の実施例を示す図15中の要素と共通の
要素には共通の符号が付されている。このハフマン符号
復号装置では、図2のパックドハフマン符号供給部1と
同様のパックドハフマン符号供給部100を有し、その
出力側にビット列選択手段110が接続されている。パ
ックドハフマン符号供給部100は、複数のハフマン符
号を上位側からパックしてビット列選択手段110へ供
給すると共に、制御手段170から送られてきた選択符
号長の値に等しいビット長のデータを上位側から削除し
て新たなパックドハフマン符号データをビット列選択手
段110へ供給する機能を有している。ビット列選択手
段110は、パックドハフマン符号供給部100からの
パックドハフマン符号データの上位から、制御手段17
0からの選択符号長の値に等しいビット長のデータを選
択して選択ビット列S110として出力するビット列選
択回路111で構成されている。最大値記憶手段120
は、使用するハフマン符号で同じ符号長を持つ符号語の
最大値をその符号長をアドレスとして記憶する最大値レ
ジスタ121で構成されている。この最大値レジスタ1
21では、同じ符号長を持つ符号語が1つしかない場合
はその符号語の値を記憶し、使用されていない符号長に
対応するレジスタには任意値を記憶している。さらに、
この最大値レジスタ121は、制御手段170から送ら
れてきた選択符号長の値をアドレスとしてレジスタをア
クセスし、該レジスタの内容を読み出し最大値S120
として出力する機能を有している。ポインタ記憶手段1
30は、使用するハフマン符号で同じ符号長を持つ符号
語の最大値に対応するシンボルを記憶している図示しな
い配列メモリのアドレスをその符号長をアドレスとして
記憶するポインタレジスタ131で構成されている。配
列メモリには、出現確率の高い順番にシンボルが記憶さ
れている。さらに、ポインタレジスタ131は、制御手
段170から送られてきた選択符号長の値をアドレスと
してレジスタをアクセスし、該レジスタの内容を読み出
しポインタS130として出力する機能を有している。
【0029】フラグ記憶手段140は、使用するハフマ
ン符号で、ある符号長に対応する符号語が存在する場合
にはその符号長をアドレスとして『1』を記憶し、対応
する符号語が存在しない場合にはその符号長をアドレス
として『0』を記憶するフラグビット141で構成され
ている。ビット列選択回路111及び最大値レジスタ1
21の出力側に接続された最大値比較手段150は、選
択ビット列S110が示す値と読み出し最大値S120
が示す値とを比較し、選択ビット列S110が示す値の
方が大きいときには『0』を、また選択ビット列S11
0が示す値と読みだし最大値S12が示す値とが等しい
か、あるいは読み出し最大値S120を示す値の方が大
きいときには『1』を比較出力信号S150として出力
する最大値比較回路115で構成されている。ビット列
選択回路111、最大値レジスタ121、及びポインタ
レジスタ131の出力側に接続されたアドレス生成手段
160は、読み出し最大値S120が示す値から選択ビ
ット列S110が示す値を差し引く減算器161と、該
減算器161の減算値を読み出しポインタS130の示
す値から差し引いてメモリアドレスS160として出力
する減算器162とを、備えたメモリアドレス生成回路
より構成されている。最大値比較回路151及びフラグ
ビット141の出力側に接続された制御手段170は、
パックドハフマン符号供給部100に対してパックドハ
フマン符号データをビット列選択回路111へ供給する
ように制御すると同時に、ビット列選択回路111、最
大値レジスタ121、ポインタレジスタ131、及びフ
ラグビット141に対して選択符号長の初期値を供給す
る制御回路171で構成されている。制御回路171
は、供給した選択符号長の初期値に対応して最大値比較
回路151から出力された比較出力信号S151と、フ
ラグビット141から読み出された読み出しフラグS1
40とを受け取り、読み出しフラグS140の値が
『0』のときはビット列選択回路111、最大値レジス
タ121、ポインタレジスタ131、及びフラグビット
141に対して前記供給した選択符号長の値に+1を加
えた値を新たな選択符号長として供給し、前記動作を繰
り返し制御する。また、この制御回路171では、読み
出しフラグS140の値が『1』でかつ比較出力信号S
150の値が『1』のときは、アドレス生成手段160
が生成したメモリアドレスS160を使って図示しない
配列メモリをアクセスし、シンボルを読み出すようにデ
ータ処理部180を制御し、さらに、パックドハフマン
符号供給部100に選択符号長の値を供給し、その後、
選択符号長を初期化して前記動作を繰り返し制御するよ
うに働く。
【0030】次に、図4、図7、及び図17〜図19を
参照しつつ、本実施例のレジスタ類に記憶すべき値を説
明する。本実施例で使用するハフマン符号表は、図4に
示すように、シンボルの発生確率順に並べられている。
図17は、図16の最大値レジスタ121に記憶すべき
値を示している。この値は、図4のハフマン符号表から
生成することができる。図4のハフマン符号表から、符
号長1の符号語が存在しないので、アドレス1に対応す
るレジスタには任意値を記憶すれば良い。符号長2の符
号語は『00』だけなので、これを符号なしの2進数表
現と考えて、『0』をアドレス2に対応するレジスタに
記憶する。符号長3の符号語は『010』、『01
1』、『100』、『101』、『110』の5つがあ
るので、これらを符号なしの2進数表現と考えて比較
し、最大値である『6』をアドレス3に対応するレジス
タに記憶する。以下『1110』から『1111111
10』までの符号について、同様の処理を行うことによ
り、最大値レジスタ121のアドレス4から9に対応す
るレジスタに対して『14』、『30』、『62』、
『126』、『254』、『510』をそれぞれ記憶す
る。
【0031】図18は、図16のポインタレジスタ13
1に記憶すべき値を示している。この値は、図4のハフ
マン符号表と、シンボルをその発生確率順に記憶した図
7の配列メモリのアドレスとから、生成することができ
る。図4のハフマン符号表から、符号長1の符号語は存
在しないので、ポインタレジスタ131のアドレス1に
対応するレジスタは任意値を記憶すれば良い。符号長2
の符号語は『00』だけで、その符号語に対応するシン
ボルが記憶されている配列メモリのアドレスは図7から
『0』なので、ポインタレジスタ131のアドレス2に
対応するレジスタには『0』を記憶する。符号長3の符
号語の最大値である『110』に対応するシンボル
『6』が記憶されている配列メモリのアドレスは図7か
ら『5』なので、ポインタレジスタ131のアドレス3
に対応するレジスタには『5』を記憶する。以下『11
10』から『111111110』までの符号につい
て、同様の処理を行うことにより、ポインタレジスタ1
31のアドレス4から9に対応するレジスタに対して
『6』、『7』、『8』、『9』、『10』、『11』
をそれぞれ記憶する。
【0032】図19は、図16のフラグビット141に
記憶すべき値を示している。この値は、図4のハフマン
符号表から生成することができる。図4のハフマン符号
表から符号長1の符号語が存在しないので、フラグビッ
ト141のアドレス1に対応するビットには『0』を記
憶する。符号長2の符号は存在するので、フラグビット
141のアドレス2に対応するビットには『1』を記憶
する。以下符号長3から符号長9までの符号語は存在す
るので、フラグビット141のアドレス3から9に対応
するビットには『1』を記憶する。本実施例のフラグビ
ット141にはアドレス10から16までのビットがあ
るが、図4のハフマン符号表には符号長が10以上の符
号語は存在しないので、フラグビット141のアドレス
10から16までのビットには『0』を記憶する。
【0033】図20〜図23は、図16に示すハフマン
符号復号装置の動作説明図であり、これらの図を参照し
つつ、本実施例の動作を説明する。まず、図16におい
て、パックドハフマン符号供給部100からパックドハ
フマン符号データ『011001110…』がビット列
選択回路111に供給される。制御回路171からは、
選択符号長の初期値である『1』ビット列選択回路11
1、最大値レジスタ121、ポインタレジスタ131、
及びフラグビット141に供給される。ビット列選択回
路111は、供給されたパックドハフマン符号データの
上位側から1ビットを選択した値『0』を選択ビット列
S110として出力する。最大値レジスタ121から
は、アドレス1に記憶されている値が読み出し最大値S
120として出力される。ポインタレジスタ131から
は、アドレス1に記憶されている値が読み出しポインタ
S130として出力される。フラグビット141から
は、アドレス1に記憶されている値の『0』が読み出し
フラグS140として出力される。読み出しフラグS1
40の値が『0』なので、制御回路171は選択符号長
に+1を加算した値である『2』を新しい選択符号長に
する。これにより、図20に示す状態になる。図20に
おいて、制御回路171から、選択符号長として『2』
がビット列選択回路111、最大値レジスタ121、ポ
インタレジスタ131、及びフラグビット141に供給
される。ビット列選択回路111は、パックドハフマン
符号供給部100から供給されたパックドハフマン符号
データの上位から2ビットを選択した値『01』を選択
ビット列S110として出力する。最大値レジスタ12
1からは、アドレス2に記憶されている値『0』が読み
出し最大値S120として出力される。ポインタレジス
タ131からは、アドレス2に記憶されている値『0』
が読み出しポインタS130として出力される。フラグ
ビット141からは、アドレス2に記憶されている値の
『1』が読み出しフラグS140として出力される。最
大値比較回路151では、選択ビット列S110の『0
1』、つまり10進数の『1』と読み出し最大値S12
0の『0』を比較する。選択ビット列S110の方が大
きいので、比較出力信号S150として『0』を出力す
る。読み出しフラグS140の値は『1』だが、比較出
力信号S150が『0』なので、制御回路171は選択
符号長に+1を加算した値である『3』を新しい選択符
号長にする。これにより、図21に示す状態になる。
【0034】図21において、制御回路171から選択
符号長として『3』がビット列選択回路111、最大レ
ジスタ121、ポインタレジスタ131、及びフラグビ
ット141に供給される。ビット列選択回路111は、
パックドハフマン符号供給部100から供給されたパッ
クドハフマン符号データの上位から3ビットを選択した
値『011』を選択ビット列S110として出力する。
最大値レジスタ121からは、アドレス3に記憶されて
いる値『6』が読み出し最大値S120として出力され
る。ポインタレジスタ131からは、アドレス3に記憶
されている値『5』が読み出しポインタS130として
出力される。フラグビット141からは、アドレス3に
記憶されている値の『1』が読み出しフラグS140と
して出力される。最大値比較回路151では、選択ビッ
ト列S110の『011』、つまり10進数の『3』と
読み出し最大値S120の『6』を比較する。読み出し
最大値S120の方が大きいので、比較出力信号S15
0として『1』を出力する。
【0035】アドレス生成手段160では、選択ビット
列S110の『3』、読み出し最大値S120の
『6』、及び読み出しポインタS130の『5』に基づ
き、演算を行い、メモリアドレスS160として『2』
を出力する。読み出しフラグS140の値が『1』で、
比較出力信号S150が『1』なので、制御回路171
はデータ処理部180に対して、アドレス生成手段16
0が出力したメモリアドレス『2』を使って図7に示す
配列メモリをアクセスするように制御し、シンボルであ
る『8』を読み出す。また、パックドハフマン符号供給
部100に対して選択符号長である『3』を供給し、パ
ックドハフマン符号の上位3ビットを削除したデータ
『001110…』を新たなパックドハフマン符号とし
て供給するようにさせる。その後、選択符号長を初期値
である『1』にする。再び、前記の様に動作させると、
選択符号長が『2』のときに図22に示す状態になる。
図22において、選択ビット列S110が『00』、つ
まり10進数で『0』で、読み出し最大値S120も
『0』なので、最大値比較回路151の出力は『1』に
なる。また、読み出しポインタS130の値が『0』な
ので、アドレス生成手段160により、メモリアドレス
『0』が出力される。読み出しフラグS140の値が
『1』で、比較出力信号S150が『1』なので、制御
回路171はデータ処理部180に対して、アドレス生
成手段160が出力したメモリアドレス『0』を使っ
て、図7に示す配列メモリをアクセスするように制御
し、シンボルである『0』を読み出す。また、パックド
ハフマン符号供給部100に対して選択符号長である
『2』を供給し、パックドハフマン符号の上位2ビット
を削除したデータ『11110…』を新たなパックドハ
フマン符号として供給するようにさせる。その後、選択
符号長を初期値である『1』にする。さらに、前記の様
に動作させると、選択符号長が『4』のときに、図23
に示す状態になる。
【0036】図23において、選択ビット列S110が
『1110』、つまり10進数で『14』で、読み出し
最大値S120も『14』なので、最大比較回路151
の出力は『1』になる。また、読み出しポインタS13
0の値が『6』なので、アドレス生成手段160によ
り、メモリアドレス『6』が出力される。読み出しフラ
グS140の値が『1』で、比較出力信号S150が
『1』なので、制御回路171はデータ処理部180に
対して、アドレス生成手段160が出力したメモリアド
レス『6』を使って、図7に示す配列メモリをアクセス
するように制御し、シンボルである『4』を読み出す。
また、パックドハフマン符号供給部100に対して選択
符号長である『4』を供給し、パックドハフマン符号の
上位4ビットを削除したデータを新たなパックドハフマ
ン符号として供給するようにさせる。その後、選択符号
長を初期値である『1』にする。以上の動作を繰り返す
ることにより、複数のハフマン符号がパックされている
データの復号が行われる。従って、第4の実施例と同様
の効果が得られる。
【0037】第6の実施例 図24は、本発明の第6の実施例を示すハフマン符号復
号装置の基本構成ブロック図であり、第4の実施例を示
す図15中の要素と共通の要素には共通の符号が付され
ている。このハフマン符号復号装置では、図15のフラ
グ記憶手段140に代えて次符号長記憶手段240が設
けられ、さらにその出力側に、図15の制御手段170
と構成の異なる制御手段270が接続されている。その
他の構成は、図15のハフマン符号復号装置と同一であ
る。次符号長記憶手段240は、符号長をアドレスと
し、次に処理すべき符号長の値を記憶し、さらに制御手
段270から送られてくる値をアドレスとして受け取
り、そのアドレスに対応する記憶内容を次符号長S24
0として該制御手段270へ出力する機能を有してい
る。制御手段270は、最大値比較手段150から出力
される比較出力信号S150と次符号長S240とに基
づき、符号長を示す値を出力し、ビット列選択手段11
0、最大値記憶手段120、ポインタ記憶手段130、
及び次符号長記憶手段240を制御すると共に、データ
処理部180に対して図示しない配列メモリへのアクセ
スを制御する機能を有している。
【0038】次に、動作を説明する。制御手段270
は、符号長を示す値をビット列選択手段110、最大値
記憶手段120、ポインタ記憶手段130、及び次符号
長記憶手段240へ送出する。これらの手段110,1
20,130,240では、送出された符号長を示す値
に対応する動作が行われる。即ち、ビット列選択手段1
10では、制御手段270から送られてくる値に等しい
長さのビット列をハフマン符号列から取り出して、選択
ビット列S110として最大値比較手段150及びアド
レス生成手段160へ出力する。最大値記憶手段120
では、符号長をアドレスとし、その同じ符号長の符号語
の中の最大値を記憶しており、制御手段270から送ら
れてくる値をアドレスとして受け取り、そのアドレスに
対応する記憶内容を読み出し最大値S120として最大
値比較手段150及びアドレス生成手段160へ出力す
る。ポインタ記憶手段130では、符号長をアドレスと
し、その同じ符号長の符号語にそれぞれ対応するシンボ
ルを符号語の示す値の順番に格納した配列メモリへのポ
インタを記憶しており、制御手段270から送られてく
る値をアドレスとして受け取り、そのアドレスに対応す
る記憶内容を読み出しポインタS130としてアドレス
生成手段160へ出力する。さらに、次符号長記憶手段
240は、符号長をアドレスとし、次に処理すべき符号
長の値を記憶しており、制御手段270から送られてく
る値をアドレスとして受け取り、そのアドレスに対応す
る記憶内容を次符号長S240として制御手段270へ
出力する。
【0039】最大値比較手段150では、選択ビット列
S110と読み出し最大値S120の値を比較し、選択
ビット列S110の方が大きいときには条件不成立を示
す比較出力信号S150を出力し、それ以外のときには
条件成立を示す比較信号S150を出力し、それらの比
較出力信号S150を制御手段270へ送る。アドレス
生成手段160は、読み出し最大値S120の値、選択
ビット列S110、及び読み出しポインタS130に基
づき、所定の演算を行い、その演算結果をメモリアドレ
スS160としてデータ処理部180へ出力する。制御
手段270では、比較出力信号S150、及び次符号長
S240を受け取り、該比較出力信号S150が条件不
成立を示しているときには次符号長S240を新たな符
号長としてビット列選択手段110、最大値記憶手段1
20、ポインタ記憶手段130、及び次符号長記憶手段
240を前記と同様に制御し、さらにメモリアドレス生
成手段160が生成したメモリアドレスS160が無効
であることを示す。また、制御手段270は、比較出力
信号S150が条件成立を示しているときには、メモリ
アドレス生成手段150が生成したメモリアドレスS1
60が有効であることを示し、データ処理部180を活
性化する。これにより、データ処理部180は、メモリ
アドレスS160に基づき、図示しない配列メモリから
シンボルを読み出す。本実施例では、ハフマン符号の復
号においてnビット長の符号語に割り当てられたシンボ
ルへの復号のために、最大値比較手段150でn回以下
の比較動作を行うと共に、アドレス生成手段160で1
回のメモリアドレス生成を行うことにより、シンボルの
格納されている図示しない配列メモリをアクセスして復
号が行えるので、全体として復号時間を短縮することが
できる。
【0040】第7の実施例 図25は、図24においてハフマン符号の符号長が最大
で16ビットの場合まで対応できるハフマン符号復号装
置の構成ブロック図である。このハフマン符号復号装置
は、図16と同様に、複数のハフマン符号を上位側から
パックしてビット列選択手段110に供給するパックド
ハフマン符号供給部100が設けられると共に、ビット
列選択手段110がビット列選択回路111で、最大値
記憶手段120が最大値レジスタ121で、ポインタ記
憶手段130がポインタレジスタ131で、最大値比較
手段150が最大値比較回路151で、アドレス生成手
段160が減算器161,162からなるメモリアドレ
ス生成回路で、それぞれ構成されている。また、次符号
長記憶手段240が次符号長レジスタ241で、制御手
段270が制御回路271で、それぞれ構成されてい
る。次符号長レジスタ241は、使用するハフマン符号
に存在する符号長をアドレスとしてその符号長の次に大
きい値を持つ符号長を値として記憶する機能を有してい
る。
【0041】制御回路271は、パックドハフマン符号
供給部100に対してパックドハフマン符号データをビ
ット列選択回路111へ供給するように制御すると同時
に、ビット列選択回路111、最大値レジスタ121、
ポインタレジスタ131、及び次符号長レジスタ241
に対して選択符号長の初期値を供給する。この初期値
は、使用するハフマン符号の符号語の符号長の中で最も
小さい値を指定する。そして、制御回路271では、供
給した値に対応して最大値比較回路151から出力され
る比較出力信号S150と、次符号長レジスタ241か
ら読み出された次符号長S240とを受け取り、該比較
出力信号S150の値が『0』のときは次符号長S24
0を新たな選択符号長として前記動作を繰り返し、該比
較出力信号S150の値が『1』のときにはアドレス生
成手段160で生成されたメモリアドレスS160を使
って図示しない配列メモリをアクセスし、シンボルを読
み出すようにデータ処理部180を制御する機能を有し
ている。また、制御回路271では、パックドハフマン
符号供給部100に選択符号長の値を供給し、その後、
選択符号長を初期化して前記動作を繰り返す機能を有し
ている。
【0042】次に、図7、及び図26〜図29を参照し
つつ、本実施例のレジスタ類に記憶すべき値を説明す
る。図26は、図4と同様に、本実施例で使用するハフ
マン符号表であり、シンボルの発生確率順に並べられて
いる。符号語『00』と『01』はそれぞれシンボルの
『0』、『1』に対応し、その符号長は2である。符号
長『1000』、『1001』、『1010』、『10
11』、『1100』はそれぞれシンボルの『8』、
『7』、『9』、『6』、『4』、に対応し、その符号
長は全て4である。以下『11010』、『1111
0』までの符号についても、同様のことを示している。
【0043】図27は、図17と同様、図25の最大値
レジスタ121に記憶すべき値を示している。この値
は、図26のハフマン符号表から生成することができ
る。図26のハフマン符号表から、符号長1の符号語が
存在しないので、アドレス1に対応するレジスタには任
意値を記憶すれば良い。符号長2の符号語は『00』、
『01』の2つがあるので、これらを符号なしの2進数
表現と考えて比較し、最大値である『1』をアドレス2
に対応するレジスタに記憶する。符号長4の符号語は
『1000』、『1001』、『1010』、『101
1』、『1100』の5つがあるので、これらを符号な
しの2進数表現と考えて比較し、最大値である『12』
をアドレス4に対応するレジスタに記憶する。符号長5
の符号語は『11010』、『11011』、『111
00』、『11101』、『11110』までの5つが
あるので、これらを符号なしの2進数表現と考えて比較
し、最大値である『30』をアドレス5に記憶する。
【0044】図28は、図18と同様、図25のポイン
タレジスタ131に記憶すべき値を示している。この値
は、図26のハフマン符号表と、シンボルをその発生確
率順に記憶した図7に示す配列メモリのアドレスから生
成することができる。図26のハフマン符号表から、符
号長が1の符号語は存在しないので、ポインタレジスタ
131のアドレス1に対応するレジスタは任意値を記憶
すれば良い。符号長が2の符号語の最大値である『0
1』に対応するシンボル『1』が記憶されている配列メ
モリのアドレスは、図7から『1』なので、ポインタレ
ジスタ131のアドレス2に対応するレジスタには
『1』を記憶する。符号長が3の符号語は存在しないの
で、ポインタレジスタ131のアドレス3に対応するレ
ジスタには任意の値を記憶すれば良い。符号長が4の符
号語の最大値である『1100』に対応するシンボル
『4』が記憶されている配列メモリのアドレスは、図7
から『6』なので、ポインタレジスタ131のアドレス
4に対応するレジスタには『6』を記憶する。符号長が
5の符号語の最大値である『11110』に対応するシ
ンボル『11』が記憶されている配列メモリのアドレス
は、図7から『11』なので、ポインタレジスタ131
のアドレス5に対応するレジスタには『11』を記憶す
る。
【0045】図29は、図25の次符号長レジスタ24
1に記憶すべき値を示している。この値は、図26のハ
フマン符号表から生成することができる。図26のハフ
マン符号表から、符号長が1の符号語は存在しないの
で、次符号長レジスタ241のアドレス1に対応するレ
ジスタには任意の値を記憶すれば良い。符号長が2の符
号語は存在し、その次に存在する符号長は『4』なの
で、次符号長レジスタ241のアドレス2に対応するレ
ジスタには『4』を記憶する。符号長が3の符号は存在
しないので、次符号長レジスタ241のアドレス3に対
応するレジスタには任意の値を記憶すれば良い。符号長
が4の符号語は存在し、その次に存在する符号長は
『5』なので、次符号長レジスタ241のアドレス4に
対応するレジスタには『5』を記憶する。符号長が5の
符号語は存在するが、それより大きい符号長を持つ符号
語はないので、次符号長レジスタ241のアドレス5以
降のレジスタには任意の値を記憶すれば良い。図30〜
図32は、図25に示すハフマン符号復号装置の動作説
明図であり、これらの図を参照しつつ、図25の動作を
説明する。まず、図25において、パックドハフマン符
号供給部100からパックドハフマン符号データ『10
010111010…』がビット列選択回路111に供
給される。制御回路271からは、選択符号長の初期値
である『2』がビット列選択回路111、最大値レジス
タ121、ポインタレジスタ131、及び次符号長レジ
スタ241に供給される。ビット列選択回路111は、
供給されたパックドハフマン符号データの上位側から2
ビットを選択した値『10』を選択ビット列S110と
して出力する。最大値レジスタ121からは、アドレス
2に記憶されている値が読み出し最大値S120として
出力される。ポインタレジスタ131からは、アドレス
2に記憶されている値が読み出しポインタS130とし
て出力される。次符号長レジスタ241からは、アドレ
ス2に記憶されている値の『4』が次符号長S240と
して出力される。最大値比較回路151では、選択ビッ
ト列S110の『10』、つまり10進数の『2』と読
み出し最大値S120の『1』とを比較する。選択ビッ
ト列S110の方が大きいので、比較出力信号S150
として『0』を出力する。比較出力信号S150が
『0』なので、制御回路271は次符号長S240の値
である『4』を新しい選択符号長にする。これにより、
図30に示す状態になる。
【0046】図30において、制御回路271から選択
符号長として『4』がビット列選択回路111、最大値
レジスタ121、ポインタレジスタ131、及び次符号
長レジスタ241に供給される。ビット列選択回路11
1は、パックドハフマン符号供給部100から供給され
たパックドハフマン符号データの上位から4ビットを選
択した値『1001』を選択ビット列S110として出
力する。最大値レジスタ121からは、アドレス4に記
憶されている値『12』が読み出し最大値S120とし
て出力される。ポインタレジスタ131からは、アドレ
ス4に記憶されている値『6』が読み出しポインタS1
30として出力される。次符号長レジスタ241から
は、アドレス4に記憶されている値の『5』が次符号長
S240として出力される。最大値比較回路151で
は、選択ビット列S110の『1001』、つまり10
進数の『9』と読み出し最大値S120の『12』を比
較する。読み出し最大値S120の方が大きいので、比
較出力信号S150として『1』を出力する。アドレス
生成手段160では、選択ビット列S110の『9』、
読み出し最大値S120の『12』、及び読み出しポイ
ンタS130の『6』に基づき、減算を行い、メモリア
ドレスS160として『3』を出力する。比較出力信号
S150が『1』なので、制御回路271はデータ処理
部180に対してアドレス生成手段160が出力したメ
モリアドレス『3』を使って図7に示す配列メモリをア
クセスするように制御し、シンボルである『7』を読み
出す。また、パックドハフマン符号供給部100に対し
て選択符号長である『4』を供給し、パックドハフマン
符号の上位『4』ビットを削除したデータ『01110
10…』を新たなパックドハフマン符号として供給する
ようにさせる。その後、選択符号長を初期値である
『2』にする。これにより、図31に示す状態になる。
図31において、制御回路271から選択符号長として
『2』がビット列選択回路111、最大レジスタ12
1、ポインタレジスタ131、及び次符号長レジスタ2
41に供給される。ビット列選択回路111は、パック
ドハフマン符号供給部100から供給されたパックドハ
フマン符号データの上位から2ビットを選択した値『0
1』を選択ビット列S110として出力する。最大値レ
ジスタ121からは、アドレス2に記憶されている値
『1』が読み出し最大値S120として出力される。ポ
インタレジスタ131からは、アドレス2に記憶されて
いる値『1』が読み出しポインタS130として出力さ
れる。次符号長レジスタ241からは、アドレス2に記
憶されている値の『4』が次符号長S240として出力
される。
【0047】最大値比較回路151では、選択ビット列
S110の『01』、つまり10進数の『1』と読み出
し最大値S120の『1』を比較する。選択ビット列S
110の値と読み出し最大値S120とが等しいので、
比較出力信号S150として『1』を出力する。アドレ
ス生成手段160では、選択ビット列S110の
『1』、読み出し最大値S120の『1』、及び読み出
しポインタS130の『1』に基づき、減算を行い、メ
モリアドレスS160として『1』を出力する。比較出
力信号S150が『1』なので、制御回路271は、デ
ータ処理部180に対して、アドレス生成手段160が
出力したメモリアドレス『1』を使って図7に示す配列
メモリをアクセスするように制御し、シンボルである
『1』を読み出す。また、パックドハフマン符号供給部
100に対して選択符号長である『2』を供給し、パッ
クドハフマン符号の上位2ビットを削除したデータ『1
1010…』を新たなパックドハフマン符号として供給
するようにさせる。その後、選択符号長を初期値である
『2』にする。再び、前記の様に動作させると、選択符
号長が『5』のときに、図32に示す状態になる。
【0048】図32において、選択ビット列S110が
『11010』、つまり10進数で『26』で読み出し
最大値S120は『30』なので、最大値比較回路15
1の比較出力信号S150が『1』になる。また、読み
出しポインタS130の値が『11』なので、アドレス
生成回路手段160によってメモリアドレス『7』が出
力される。比較出力信号S150の値が『1』なので、
制御回路271はデータ処理部180に対し、アドレス
生成手段160が出力したメモリアドレス『7』を使っ
て、図7に示す配列メモリをアクセスするように制御
し、シンボルである『2』を読み出す。また、パックド
ハフマン符号供給部100に対して選択符号長である
『5』を供給し、パックドハフマン符号の上位5ビット
を削除したデータを新たなパックドハフマン符号として
供給するようにさせる。その後、選択符号長を初期値で
ある『2』にする。
【0049】以上の動作を繰り返すことにより、複数の
ハフマン符号がパックされているデータの復号が行われ
る。従って、第6の実施例と同様の効果が得られる。
尚、本発明は図示の実施例に限定されず、種々の変形が
可能である。その変形例としては、例えば次のようなも
のがある。 (i) 第2及び第3の実施例では、使用するハフマン
符号の符号長が2から9までの場合に対応するが、これ
よりも長い符号長が存在する場合はその符号長に対応す
るユニットを追加し、比較結果デコード回路21と各選
択回路31,32,33をそのユニットの追加に合わせ
て変更すればよい。また、存在しない符号長がある場合
(例えば、2ビット長から9ビット長までの符号の内、
4ビット長と7ビット長の符号が存在しない場合)は、
その符号長に対応するユニットを削減し、さらに比較結
果デコード回路21を変更してその符号長に対応するデ
コード結果を出力しないようにしたり、あるいはユニッ
トは削除せずに、比較結果デコード回路21を変更して
存在しない符号長に対応するデコード結果を出力しない
ようにすれば良い。 (ii) 第2及び第3の実施例において、複数のハフマ
ン符号表を扱う場合は、各ユニット102 〜109 内の
最大符号語レジスタ12aとベースアドレスレジスタ1
3aを複数用意し、さらに比較結果デコード回路21を
変更して複数のハフマン符号表に対応するデコード結果
を出力できるようにして、各ハフマン符号表毎に切替え
ることができるようにすれば良い。 (iii) 第1及び第2の実施例において、アドレス生成
手段30は図2及び図11に示した構成に限定されるも
のではなく、パックドハフマン符号からビット列選択手
段11により選択されたビット列と、符号語記憶手段1
2に記憶されている値と、アドレス記憶手段13に記憶
されている値とを使って、一意にアドレスを生成できる
構成で、シンボルが記憶されている配列メモリとの整合
がとれるものであれば、任意の構成が採用できる。 (iv) 第1〜第7の実施例において、配列メモリは図
7に示されるような、全てのシンボルが連続したアドレ
スに記憶されているように限定するものではなく、アド
レス生成手段30,160が生成するアドレスに対応す
るメモリにシンボルが記憶されていれば良い。 (v) 第5の実施例では、使用するハフマン符号の符
号長が最大で16までの場合に対応するが、これよりも
長い符号長が存在する場合は最大値レジスタ121やポ
インタレジスタ131、あるいはフラグビット141の
大きさを大きくすれば良い。また、符号長が16よりも
小さい符号長しか扱わないのであれば、最大値レジスタ
121やポインタレジスタ131、あるいはフラグビッ
ト141の大きさを小さくすればよい。 (vi) 第5及び第7の実施例において、アドレス生成
手段160の構成は図16及び図25に示した構成に限
定されるものではなく、選択ビット列S110と読み出
し最大値S120と読み出しポインタS130とを使っ
て一意にアドレスを生成できる回路で、シンボルが記憶
されている配列メモリとの整合がとれるものであれば、
種々の構成に変更できる。 (vii) 第7の実施例では、使用するハフマン符号の符
号長が最大で16までの場合に対応するが、これにより
も長い符号長が存在する場合は最大値レジスタ121や
ポインタレジスタ131、あるいは次符号長レジスタ2
41の大きさを大きくすれば良い。また、符号長が16
よりも小さい符号長しか扱わないのであれば、最大値レ
ジスタ121やポインタレジスタ131、あるいは次符
号長レジスタ241の大きさを小さくすれば良い。
【0050】
【発明の効果】以上詳細に説明したように、第1の発明
によれば、ハフマン符号の復号においてシンボルの出現
確率や符号語の符号長に関係なく、均一な時間で、シン
ボルの格納されているメモリをアクセスして復号するこ
とができ、全体として復号時間を短縮することができ
る。特に、並列処理によって復号処理を高速化できる。
第2の発明によれば、ハフマン符号の復号において、n
ビット長の符号後に割り当てられたシンボルへの復号の
ために、n回の比較動作と1回のメモリアドレス生成を
行うことにより、シンボルの格納されているメモリをア
クセスして復号ができ、全体として復号時間を短縮する
ことができる。第3の発明によれば、ハフマン符号の復
号において、nビット長の符号語に割り当てられたシン
ボルへの復号のために、n回以下の比較動作と1回のメ
モリアドレス生成を行うことにより、シンボルの格納さ
れているメモリをアクセスして復号ができ、全体として
復号時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示すハフマン符号復号
装置の基本構成ブロック図である。
【図2】本発明の第2の実施例を示すハフマン符号復号
装置の構成ブロック図である。
【図3】図2に示す各ユニットの構成ブロック図であ
る。
【図4】図2のハフマン符号復号装置におけるハフマン
符号表を示す図である。
【図5】図3の最大符号語レジスタの内容を示す図であ
る。
【図6】図3のベースアドレスレジスタの内容を示す図
である。
【図7】図2のハフマン符号復号装置に用いられる配列
メモリの内容を示す図である。
【図8】図2の比較結果デコード回路の入出力の内容を
示す図である。
【図9】図2のハフマン符号復号装置の動作説明図であ
る。
【図10】図2のハフマン符号復号装置の動作説明図で
ある。
【図11】本発明の第3の実施例を示すハフマン符号復
号装置の構成ブロック図である。
【図12】図11に示す各ユニットの構成ブロック図で
ある。
【図13】図11のハフマン符号復号装置の動作説明図
である。
【図14】図11のハフマン符号復号装置の動作説明図
である。
【図15】本発明の第4の実施例を示すハフマン符号復
号装置の基本構成ブロック図である。
【図16】本発明の第5の実施例を示すハフマン符号復
号装置の構成ブロック図である。
【図17】図16の最大値レジスタの内容を示す図であ
る。
【図18】図16のポインタレジスタの内容を示す図で
ある。
【図19】図16のフラグビットの内容を示す図であ
る。
【図20】図16のハフマン符号復号装置の動作説明図
である。
【図21】図16のハフマン符号復号装置の動作説明図
である。
【図22】図16のハフマン符号復号装置の動作説明図
である。
【図23】図16のハフマン符号復号装置の動作説明図
である。
【図24】本発明の第6の実施例を示すハフマン符号復
号装置の基本構成ブロック図である。
【図25】本発明の第7の実施例を示すハフマン符号復
号装置の構成ブロック図である。
【図26】図25のハフマン符号復号装置におけるハフ
マン符号表を示す図である。
【図27】図25の最大値レジスタの内容を示す図であ
る。
【図28】図25のポインタレジスタの内容を示す図で
ある。
【図29】図25の次符号長レジスタの内容を示す図で
ある。
【図30】図25のハフマン符号復号装置の動作説明図
である。
【図31】図25のハフマン符号復号装置の動作説明図
である。
【図32】図25のハフマン符号復号装置の動作説明図
である。
【符号の説明】
1,100 パックドハフマ
ン符号供給部 101 〜10n ユニット 11,110 ビット列選択手
段 12 符号語記憶手段 12a 最大符号語レジ
スタ 13 アドレス記憶手
段 13a ベースアドレス
レジスタ 14 比較手段 14a 比較器 14b 減算比較器 20 符号長決定手段 21 比較結果デコー
ド回路 30 アドレス生成手
段 31,111 ビット列選択回
路 32 符号語選択回路 33,37 ベースアドレス
選択回路 34,35,38,161,162 減算器 36 オフセット選択
回路 120 最大値記憶手段 121 最大値レジスタ 130 ポインタ記憶手
段 131 ポインタレジス
タ 140 フラグ記憶手段 141 フラグビット 150 最大値比較手段 151 最大値比較回路 160 アドレス生成手
段 170,270 制御手段 171,271 制御回路 180 データ処理部 240 次符号長記憶手
段 241 次符号長レジス
タ S110 選択ビット列 S120 読み出し最大値 S130 読み出しポイン
タ S140 読み出しフラグ S150 比較出力信号 S160 メモリアドレス S240 次符号長

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のハフマン符号がパックされている
    データの復号を行うハフマン符号復号装置において、 特定の符号長に対応する符号語の中から特定の符号語だ
    けを記憶する符号語記憶手段と、 前記符号語記憶手段に記憶されている符号語に対応する
    復号値を記憶しているメモリのアドレスを記憶するアド
    レス記憶手段と、 前記複数のハフマン符号がパックされているデータか
    ら、特定のビット長のビット列を選択するビット列選択
    手段と、 前記符号語記憶手段に記憶されている符号語と前記ビッ
    ト列選択手段により選択されたビット列の比較を行う比
    較手段とを、 異なる符号長に対応して複数組備え、 前記複数組の符号語記憶手段、アドレス記憶手段、ビッ
    ト列選択手段、及び比較手段を同時に動作させて得られ
    る該複数の比較手段の比較結果に基づいて符号長を決定
    する符号長決定手段と、 前記符号長決定手段により決定された符号長に対応する
    前記符号語記憶手段に記憶されている符号語、前記符号
    長決定手段により決定された符号長に対応する前記アド
    レス記憶手段に記憶されているアドレス、及び前記符号
    長決定手段により決定された符号長に対応する前記ビッ
    ト列選択手段で選択したビット列に基づき、メモリアド
    レスを生成するアドレス生成手段とを、 設けたことを特徴とするハフマン符号復号装置。
  2. 【請求項2】 複数のハフマン符号がパックされている
    データの復号を行うハフマン符号復号装置において、 使用するハフマン符号の中で同じ符号長の符号語の中の
    最大値を該符号長をアドレスとして格納する最大値記憶
    手段と、 前記使用するハフマン符号の中で同じ符号長の符号語の
    各々に対応する復号値を格納しているメモリ上の配列の
    ポインタを前記符号長をアドレスとして格納するポイン
    タ記憶手段と、 符号長毎に前記最大値記憶手段と前記ポインタ記憶手段
    に記憶されている値が有効か無効かを示すフラグを前記
    符号長をアドレスとして格納するフラグ記憶手段と、 前記複数のハフマン符号がパックされているデータから
    指定したビット長のビット列を選択するビット列選択手
    段と、 前記ビット列選択手段で選択した選択ビット列と該選択
    ビット列のビット長をアドレスとして前記最大値記憶手
    段から読み出した読み出し最大値とを比較して、選択ビ
    ット列>読み出し最大値の場合には条件不成立を示す比
    較出力信号を、選択ビット列≦読み出し最大値の場合に
    は条件成立を示す比較出力信号を出力する最大値比較手
    段と、 前記選択ビット列、該選択ビット列のビット長をアドレ
    スとして前記ポインタ記憶手段から読み出した配列のポ
    インタ、及び前記読み出し最大値に基づき、メモリアド
    レスを生成するアドレス生成手段と、 前記比較出力信号が条件不成立を示す信号である場合、
    あるいは前記フラグ記憶手段から前記ビット長をアドレ
    スとして読み出した読み出しフラグが無効を示している
    場合は今までのビット長に+1を加算した値を新しいビ
    ット長として再び前記動作を実行するように制御しさら
    に前記アドレス生成手段が生成したアドレスが無効であ
    ることを示し、前記比較出力信号が条件成立を示す信号
    でありかつ前記読み出しフラグが有効を示している場合
    は前記アドレス生成手段が生成したメモリアドレスが有
    効であることを示す信号を出力するように制御する制御
    手段とを、 備えたことを特徴とするハフマン符号復号装置。
  3. 【請求項3】 複数のハフマン符号がパックされている
    データの復号を行うハフマン符号復号装置において、 使用するハフマン符号の中で同じ符号長の符号語の中の
    最大値を該符号長をアドレスとして格納する最大値記憶
    手段と、 前記使用するハフマン符号の中で同じ符号長の符号語の
    各々に対応する復号値を格納しているメモリ上の配列の
    ポインタを前記符号長をアドレスとして格納するポイン
    タ記憶手段と、 次に処理すべき符号長を前記符号長をアドレスとして格
    納する次符号長記憶手段と、 前記複数のハフマン符号がパックされているデータから
    前記符号長をビット長としてビット列を選択するビット
    列選択手段と、 前記ビット列選択手段で選択した選択ビット列と該選択
    ビット列のビット長をアドレスとして前記最大値記憶手
    段から読み出した最大値とを比較して、選択ビット列>
    読み出し最大値の場合には条件不成立を示す比較出力信
    号を、選択ビット≦読み出し最大値の場合には条件成立
    を示す比較出力信号を出力する最大値比較手段と、 前記選択ビット列、該選択ビット列のビット長をアドレ
    スとして前記ポインタ記憶手段から読み出した配列のポ
    インタ、及び前記読み出し最大値に基づき、メモリアド
    レスを生成するアドレス生成手段と、 前記比較出力信号が条件不成立を示す信号である場合は
    前記選択したビット長をアドレスとして前記次符号長記
    憶手段から読み出した符号長を新しいビット長として再
    び前記動作を実行しさらに前記アドレス生成手段が生成
    したアドレスが無効であることを示し、前記比較出力信
    号が条件成立を示す信号である場合は前記アドレス生成
    手段が生成したメモリアドレスが有効であることを示す
    ように制御する制御手段とを、 備えたことを特徴とするハフマン符号復号装置。
JP24812492A 1992-09-17 1992-09-17 ハフマン符号復号装置 Withdrawn JPH06104769A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24812492A JPH06104769A (ja) 1992-09-17 1992-09-17 ハフマン符号復号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24812492A JPH06104769A (ja) 1992-09-17 1992-09-17 ハフマン符号復号装置

Publications (1)

Publication Number Publication Date
JPH06104769A true JPH06104769A (ja) 1994-04-15

Family

ID=17173595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24812492A Withdrawn JPH06104769A (ja) 1992-09-17 1992-09-17 ハフマン符号復号装置

Country Status (1)

Country Link
JP (1) JPH06104769A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002261623A (ja) * 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
JP2009253514A (ja) * 2008-04-03 2009-10-29 Sony Corp 可変長符号復号装置、可変長符号復号方法およびプログラム
JP2014078994A (ja) * 2013-12-13 2014-05-01 Dainippon Printing Co Ltd 数値データ列の符号化/復号化の方法および装置
CN113839678A (zh) * 2021-08-31 2021-12-24 山东云海国创云计算装备产业创新中心有限公司 一种哈夫曼解码系统、方法、设备及计算机可读存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002261623A (ja) * 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
JP2009253514A (ja) * 2008-04-03 2009-10-29 Sony Corp 可変長符号復号装置、可変長符号復号方法およびプログラム
US7830281B2 (en) 2008-04-03 2010-11-09 Sony Corporation Variable-length code decoding apparatus, variable-length code decoding method, and program
JP2014078994A (ja) * 2013-12-13 2014-05-01 Dainippon Printing Co Ltd 数値データ列の符号化/復号化の方法および装置
CN113839678A (zh) * 2021-08-31 2021-12-24 山东云海国创云计算装备产业创新中心有限公司 一种哈夫曼解码系统、方法、设备及计算机可读存储介质
CN113839678B (zh) * 2021-08-31 2023-11-03 山东云海国创云计算装备产业创新中心有限公司 一种哈夫曼解码系统、方法、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US5032838A (en) Variable length code parallel decoding apparatus and method
JP2800880B2 (ja) 高速復号算術符号化装置
JP3227292B2 (ja) 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US5254991A (en) Method and apparatus for decoding Huffman codes
US4749983A (en) Compression of multilevel signals
US5113516A (en) Data repacker having controlled feedback shifters and registers for changing data format
JPS6148298B2 (ja)
KR930020997A (ko) 디지탈 통신시스템용 가변길이 코드워드 디코드
JPH08162970A (ja) 復号装置およびその方法
JPH0258812B2 (ja)
JPH0645950A (ja) 信号生成装置とその方法
JPH05276052A (ja) ハフマンコードワードをデコードする方法及び装置
JP3189876B2 (ja) 可変長符号復号化回路
US4591829A (en) Run length code decoder
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
US6809665B2 (en) Apparatus and method for decoding variable length code
JPS60140981A (ja) 符号語システムのデジタル符号語を復号する方法および装置
US5058137A (en) Lempel-Ziv decoder
JPH0328092B2 (ja)
JP2968112B2 (ja) 符号変換方法
US6127950A (en) Transmission circuit and reception circuit
US6313766B1 (en) Method and apparatus for accelerating software decode of variable length encoded information
US5614900A (en) Variable word length code decoding apparatus having plural decoding tables for decoding long words
JPH06104769A (ja) ハフマン符号復号装置
US5915041A (en) Method and apparatus for efficiently decoding variable length encoded data

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991130