JPH08181620A - 復号装置及びデコードテーブルの生成方法 - Google Patents

復号装置及びデコードテーブルの生成方法

Info

Publication number
JPH08181620A
JPH08181620A JP32011794A JP32011794A JPH08181620A JP H08181620 A JPH08181620 A JP H08181620A JP 32011794 A JP32011794 A JP 32011794A JP 32011794 A JP32011794 A JP 32011794A JP H08181620 A JPH08181620 A JP H08181620A
Authority
JP
Japan
Prior art keywords
decoding
bits
analyzed
bit
steps
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.)
Granted
Application number
JP32011794A
Other languages
English (en)
Other versions
JP3332630B2 (ja
Inventor
Yoshinobu Mita
良信 三田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP32011794A priority Critical patent/JP3332630B2/ja
Priority to US08/553,914 priority patent/US5835033A/en
Publication of JPH08181620A publication Critical patent/JPH08181620A/ja
Application granted granted Critical
Publication of JP3332630B2 publication Critical patent/JP3332630B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)

Abstract

(57)【要約】 【目的】 デコードテーブルの容量の削減と復号の高速
化をはかること。 【構成】 デコードテーブル6の各アドレスには復号
値、可変長のハフマン符号長、検索終了フラグが書き込
まれ、シフト制御部3は上記テーブル6から前回の検索
で得られた上記各値に応じて各部を制御する。入力した
ハフマン符号のビットストリームはシフタ2でハフマン
符号長に応じて今回解析すべきビット長分シフトされ
る。合成部4は前回の復号値をリファレンスアドレスと
して上記ビット長と合成される。セレクタ5はフラグが
「0」のとき合成アドレスを用いてテーブル検索を行
い、フラグが「1」となるまで上記動作を繰り返す。 【効果】 可変長のビット長で解析が効率的に行われ、
テーブル容量の削減、高速化をはかることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、符号化データの復号装
置及び復合に用いられるデコードテーブルの生成方法に
関し、特にハフマン符号等を復号する場合に用いて好適
なものである。
【0002】
【従来の技術】従来より、画像データを高能率に圧縮符
号化した符号化データとしてハフマン符号が用いられて
いる。ハフマン符号は、出現頻度の高い情報に対しては
短いビット長を割り当て、出現頻度の低い情報に対して
は長いビット長を割り当てるように可変長符号化したも
のである。
【0003】このようなハフマン符号を復号する場合、
従来より、ハフマン符号の復号値が格納されたデコード
テーブルを用い、このテーブルをハフマン符号で参照す
ることにより、符号値を得るようにしている。
【0004】デコードテーブルを用いるデコード方式と
しては2つの方式があり、その1つはハフマン符号の最
長符号長が例えば16ビットであれば、アドレス長が2
16のデコードテーブルを用い、これを16ビットのアド
レスで1回アクセスすることにより復号結果を得るもの
である。
【0005】他の1つは、ハフマン符号をnビットづつ
解析するもので、nビット毎に復号値又はリファレンス
アドレスと検索終了フラグとが書かれたデコードテーブ
ルを用いる。そして入力したnビットをアドレスとして
テーブルを検索し、上記フラグによりデコード継続か終
了したかを判断し、継続であればリファレンスアドレス
に次のnビットを加算した値をアドレスとして次のnビ
ットについて検索を行う。これをフラグがデコード終了
を示すまで繰り返すことにより復号値を得る。
【0006】
【発明が解決しようとする課題】しかしながら上記1回
のテーブル検索で復号を行う方式ではテーブル容量が過
大となり、復号装置全体をLSI化する場合や、CPU
を伴わないシステムには不向きであるという問題があっ
た。また上記nビットづつ解析する方式ではnの値が小
さいとテーブル検索回数が多くなって高速動作が行えな
くなり、nの値が大きいと、リファレンスアドレスの先
にnビットアドレス長のテーブル空間を用意しなければ
ならず、大きなメモリ空間を占有することになってしま
う。その理由は、ハフマン符号長がnビット未満で復号
できる場合は余分なビットに相当する部分等が無駄とな
るためで、結果としてデコードテーブルが大きくなって
しまうという問題があった。
【0007】本発明は上記のような問題を解決するため
になされたもので、デコードテーブルの容量を削減し、
また、デコードの高速化をはかることのできる復号装置
及びデコードテーブルの生成方法を得ることを目的とし
ている。
【0008】
【課題を解決するための手段】請求項1の発明による復
号装置では、ビットストリームとして入力される符号化
データを所定ビット数づつ1又は複数回のステップにわ
たってデコードテーブルを検索することにより解析を行
い復号する復号装置において、復号が終了しない場合
に、上記デコードテーブルから得られる情報に基づいて
次回のステップで解析すべきビット数を設定し、設定し
たビット数に基づいて復号を制御する制御手段を設けて
いる。
【0009】請求項5の発明によるデコードテーブルの
生成方法では、ビットストリームとして入力される符号
化データを所定ビット数づつ1又は複数回のステップに
わたってデコードテーブルを検索することにより解析を
行い復号する復号装置に用いられる上記デコードテーブ
ルの生成方法において、復号が終了する最終ステップで
解析すべき残りビット数が予め設定されたビット数より
短い場合に、その前のステップにおいて次回のステップ
で解析すべきビット数を、上記残りビット数のうちの最
大ビット数に設定するようにしている。
【0010】請求項6の発明によるデコードテーブルの
生成方法では、ビットストリームとして入力される符号
化データを所定ビット数づつ1又は複数回のステップに
わたってデコードテーブルを検索することにより解析を
行い復号する復号装置に用いられる上記デコードテーブ
ルの生成方法において、最大ステップ数を設定し、その
各ステップの全組合せを求め、各組を構成する各ステッ
プについてそれぞれ次回に解析すべきビット数を設定
し、これを全ての組について行うことにより、複数のテ
ーブルを生成し、上記複数のテーブルから最小容量を有
するテーブルを選択するようにしている。
【0011】請求項7の発明によるデコードテーブルの
生成方法では、上記複数のテーブルから最高速で復号可
能なテーブルを選択するようにしている。
【0012】
【作用】請求項1の発明によれば、符号化データのビッ
トを可変長サイズのビット長で解析するので、復号が効
率良く行われ、テーブル容量の削減、復号の高速化をは
かることができる。
【0013】特に請求項2の発明のように、例えば、ハ
フマン符号のデコードに際し、1回目の検索(解析)で
多くのビットを解析してデコードすると、出現頻度の高
い符号は符号長が短いために1回目のテーブル検索でデ
コードでき、2回目以降に、少量のビット数ずつハフマ
ンコードを解析すれば、テーブル容量も省け、高速な処
理が可能となる。これは出現頻度の低いコードは複数回
の検索でやっとデコードできても、全体の処理時間に与
える影響が少ないからである。
【0014】また1度の解析ではデコードできない長さ
のコードに関しては、次のテーブルアドレスに関する情
報をリファレンスアドレスとしてテーブルに格納する
が、このリファレンスアドレスを減らすことが、テーブ
ルの小容量化につながるので、請求項3の発明のよう
に、1回目の解析ビット長を短くして次の解析ビット長
を長くすることにより、テーブル容量が少なくて済む場
合がある。その場合は最後の解析長と、コードの未解析
のビット長とが一致すると効果が高い。
【0015】さらに請求項4の発明のように、リファレ
ンスアドレスにコードの解析中のビットを加えた先に、
デコードが終了すれば、そのデコードデータ及び符号長
を書き込んでおき、デコード途中であれば次のリファレ
ンスアドレス及び次に解析すべきビット長を書き込むこ
とにより、ビットの解析毎に次の解析するビット長が変
化し、復号速度とテーブル容量の両方に最適なテーブル
を作成することができる。従って、同じビット長のコー
ドであっても2回で解析が終るケースや3回で解析が終
るケースが混在することも有り得る。
【0016】請求項5の発明によれば簡易的にテーブル
の解析ビット長をコードによって変えずにどのコードに
対しても最初から順にa、b、c、d、e…ビットとい
うように仮設定してa、b、cを変えながらテーブル容
量やデコードスピードを演算して最適な数ステップから
なる解析ビット長を決定する。また、デコードが終了す
る最後のビット解析長が、デコード中の未解析ビットよ
り長い場合は、未解析ビット長を最後の解析ビット長に
することで簡単にテーブル容量を減らすことができる。
【0017】請求項6の発明によれば、最小容量を持つ
デコードテーブルを容易に生成することができる。特に
請求項9の発明のように生成すれば、復号速度もある程
度速くしながら最小容量テーブルが得られる。
【0018】請求項7の発明によれば、復号速度が最速
のデコードテーブルを生成することができる。特に請求
項8の発明のように生成すればテーブル容量もある程度
小さくしながら最高速テーブルを得ることができる。
【0019】
【実施例】以下、本発明の第1の実施例について図面を
参照しながら説明する。図1は、本発明の第1の実施例
による符号化データの復号装置の構成を示すブロック図
である。尚、この図1は第2、第3の実施例と共通に用
いられる。
【0020】図1において、1はハフマン符号のビット
系列を外部から取り込むための符号入力部、2はビット
系列をシフトさせるシフタ、3は符号入力部1及びシフ
タ2を後述するデコードテーブル6からの情報に基づい
て制御するシフト制御部、4はシフタ2から供給される
ビット列とデコードテーブル6から供給されるリファレ
ンスアドレスとに基づいて復号に必要なテーブルアドレ
スを生成する合成部、5はシフタ2の出力と合成部5の
出力とをデコードテーブル6からの後述する検索終了フ
ラグに応じて切換え選択し、アドレスとしてデコードテ
ーブル6に与えるセレクタ、6は復号値又はリファレン
スアドレス及び他復号処理に必要な制御情報を格納した
デコードテーブルである。
【0021】図2はデコードテーブル6の各アドレスに
おけるワード構成を示す。1つのアドレスには第1ビッ
ト領域と第2ビット領域とフラグ領域とが設けられてい
る。第1ビット領域はMSB側にあり、復号値が格納さ
れている。この復号値は後述するようにリファレンスア
ドレスとしても用いられる。第2ビット領域には第1ビ
ット領域で得られた復号値が入力ビット列のうちの何ビ
ットを解析したものなのかをそのビット数で示すハフマ
ン符号長が書き込まれている。フラグ領域はLSBとし
て設けられ、復号作業が第1ビット領域の復号値で終了
する場合は、「1」の検索終了フラグが、復号作業を継
続する場合は「0」の検索終了フラグが書き込まれてい
る。尚、検索終了フラグ「1」、「0」はハフマン符号
を構成するコードの出現頻度に基づいて予め決められ
る。
【0022】次に上記構成による動作について説明す
る。外部の記憶装置や通信装置などから供給されるハフ
マン符号のビットストリームはシフト制御部3の制御に
より符号入力部1に取り込まれる。取り込まれたビット
ストリームは1ビット以上のコード毎に解析される。こ
のためにビットストリームはシフタ2に送られ、ここで
シフト制御部3の制御によりハフマン符号のうちのまだ
解析されていない部分をシフトすることにより、今回解
析すべきビット数のビット列を得、これを合成部4及び
セレクタ5に加える。
【0023】合成部4はデコードテーブル6からの前回
の検索結果得られた復号値をリファレンスアドレスとし
てこれを上位ビットとし、シフタ2からの今回解析すべ
きビット列を下位ビットとするアドレスを合成してセレ
クタ5に加える。セレクタ5はデコードテーブル6から
の前回の検索結果得られた検索終了フラグに応じて、合
成部4からの上記合成したアドレスとシフタ2からのビ
ット列とのうちの1つを選択し、これをアドレスとして
デコードテーブル6を検索する。
【0024】この検索の結果、検索終了フラグが「1」
であれば、図2の第1ビット領域の値を復号値としてそ
のまま出力する。またセレクタ5は上記フラグ「1」に
応じてシフタ2から得られる次回に解析すべきビット列
を選択する。
【0025】また、検索終了フラグ「0」であれば、復
号がまだ終了していないものとして、第1ビット領域の
値をリファレンスアドレスとして用い、これが合成部4
でシフタ2からの次回に解析すべきビット列と合成され
る。この合成されたアドレスはセレクタ5により上記フ
ラグ「0」に応じて選択される。また、第2のビット領
域の値は今回解析したビット列のうちの何ビットがその
解析した復号値(リファレンスアドレス)に対応するコ
ードなのかを示しており、そのビット数を除くようにシ
フト制御部3はシフタ2を制御する。
【0026】上記の動作が検索終了フラグが「1」とな
るまで繰り返されることにより、1つのハフマン符号の
デコード作業が終了する。尚、検索終了フラグが「0」
のときは、その時に解析したビット列はシフト制御部3
により捨てられる。
【0027】また、リファレンスアドレスは、次のテー
ブル検索におけるアドレスの上位ビットではなくオフセ
ットアドレスとして、次に解析すべきビット列に応じた
値を合成部4で加算するようにしてもよい。このように
すると第1ビット領域が占めるビット数は増加するが、
ハフマン符号の性質上、存在しないビット列に相当する
アドレスを省略できてアドレス長が減少する場合が生じ
るため、デコードテーブル6の容量を削減できる場合が
ある。
【0028】次にシフト制御部3の動作について図3の
フローチャートと共に説明する。まずステップS1にお
いて、検索終了フラグの「1」又は「0」により、1つ
のデコードの区切りか否かを比較器で判定する。デコー
ドの区切りならばステップS2で解析コード長を8とし
新たなハフマン符号の1回目のデコードビット長を設定
する。デコードの区切りでなければステップS3で解析
コード長を2とし継続して2回目以降のデコード作業を
行うように設定される。
【0029】ステップS4では、解析コード長及び既に
解析が終ったコード長に応じて合成部4、又はセレクタ
5が処理できるビット位置にデータをセットするために
シフタ2にシフト量をセットする。ステップS5では、
符号入力部1のバッファ量を判定し、ある規定量以下に
なった時にステップS6でバイト単位、2バイト単位等
で外部からハフマン符号のビットストリームの続きを取
り込む。
【0030】この符号の取り込み後又はステップS5で
バッファ容量が規定量に達した後は、ステップS7によ
る判断で全てのビットストリームに対してデコードが終
了したか否かを判断し終了していない場合は、ステップ
S2に戻り繰り返し処理を行う。デコードが終了してい
れば、全ての処理は終る。
【0031】上述した第1の実施例では、ハフマン符号
の最長を16ビット程度とした場合を目的としており、
最初の8ビットのテーブル検索でかなり高い確率でテー
ブル検索が終了する。終了しない場合は、2ビットずつ
解析してテーブルを検索するが、発生頻度が少なく全体
に占める処理時間は短くなる。また2回目以降はビット
解析が少しずつ行われるため、リファレンスアドレスと
解析ビットによる合成アドレス空間が小さくなり、ハフ
マン符号を表現するハフマンツリーの枝のない部分に相
当する無駄テーブルを省くことができる。
【0032】(第2の実施例)図4は本発明の第2の実
施例による可変ビット長解析によるハフマン符号のデコ
ード原理に基づくシフト制御部3の動作を示すフローチ
ャートである。この第2の実施例も図1、2に示す回路
構成及びデコードテーブル6が用いられる。図4におい
て、ステップS1でデコード区切りか判定を行う。この
判定はデコードテーブル6の検索終了フラグにより行
う。
【0033】1つのコードのデコードが終りコードとコ
ードの区切りと判断したならば、ステップS8により次
の新たなハフマン符号に対する1回目の解析コード長を
4とする。また1つのコードのデコードの継続中であっ
てデコードの区切りでないと判断されたならば、ステッ
プS9により2回目以降の解析コード長を8に設定した
後、ステップS4においてしかるべきシフト量を第1の
実施例と同様にシフタ2に対して設定を行う。以降のス
テップS5〜S7における処理は第1の実施例と同様に
行われる。
【0034】第2の実施例でも第1の実施例ほどではな
いが1回目のテーブル検索にあたる4ビットの解析によ
り高い確率で検索が終了する。また、1回目のテーブル
検索における無駄テーブルを大幅に減らすことができる
と共にその分2回目以降にテーブルを多く使用でき、8
ビットごとの解析を可能にしている。従って、2回目以
降は単位時間により多くのビット解析を行い、長いハフ
マン符号のデコードの速度を上げることができる。この
ためJPEG方式による画像圧縮にこの第2の実施例に
よるハフマンデコードを採用すると、画像に高周波成分
を多く含む文字画像等、複雑な画像ほど長いハフマン符
号が発生し易いので、デコード速度をより高速化するこ
とができる。
【0035】尚、第1、第2の実施例におけるシフト制
御部3の動作を示す図3、図4のステップS3、S9に
おいて、1つのコードに対する2回目以後の解析コード
長がそれぞれ2、8となっているが、ハフマン符号の最
長コード長が制限されている時はこの限りではない。例
えば最長16ビットとすれば、図4のステップS9で3
回目の解析コード長は4で十分である。
【0036】(第3の実施例)この第3の実施例はハフ
マン符号ごとに何回の検索で復号が終了するかが異なる
ようにしている。ハフマン符号の解析の1回目に解析す
るビット数は同一であるが、その結果、検索終了フラグ
が「0」であった場合はデコードテーブル内の情報か
ら、次に解析するビット数の指定を受けるようにしてい
る。例えば1回目に解析したビットにつづくコードが残
り最長でも3ビットである場合は、次の検索で3ビット
以下の検索を行えば、8ビット程度を一度に検索する場
合と比べて必要とするテーブル数は1/32となり、し
かも残り1回の検索で復号でき処理速度は変らない。従
って、このような場合には次の検索を3ビット又は3ビ
ット以下にするようにデコードテーブルの生成を行う。
【0037】また別の例として、1回目に解析したビッ
トにつづく残りビットが、いずれも7ビット又はそれ以
上であるような場合があったとする。このような場合は
ハフマン符号の性質上ほとんどは、残り7ビットの2進
数で表わせ、残り8ビット以上のコードはわずかになる
ケースがある。このようなケースでは7ビット未満のビ
ット解析では復号値は得られず、デコードテーブルの内
容は次のビット解析のためのリファレンスアドレスとな
ってしまう。このため多くの無駄なテーブルが費やされ
ると共に、残り1回のビット解析ではデコードが終了せ
ずデコードの時間も多くなってしまう。このような場
合、この第3の実施例では1回目の検索に続く2回目の
検索で7ビットの検索を行うように、デコードテーブル
に情報設定する。すると非常に高い確率で2回目の検索
で復号値が得られ、しかもハフマンツリーの枝の途切れ
により無駄になるテーブルやリファレンスアドレスのた
めに費やされるテーブルがほとんどなくなり、高速化と
省テーブル化とが同時に達成できる。
【0038】以上のように、検索途中に次に解析するビ
ット数を次々と変えていく方式を実現するためのデコー
ドテーブルのワード構成を図5に示す。ワードの第1ビ
ット領域には復号値又は次の検索アドレスの基準を示す
リファレンスアドレスが格納される。ワードの第2ビッ
ト領域には復号値に対するハフマン符号長又は次に解析
すべきビット長が格納される。フラグ領域には、検索終
了か否かを示す検索終了フラグがある。
【0039】検索終了フラグが「1」の時に検索は終了
し、第1ビット領域には復号値が書かれ第2ビット領域
には対応するハフマン符号長が書かれている。また検索
終了フラグが「0」の時にコード解析は途中段階であ
り、検索が継続され、第1ビット領域には次の解析のた
めのリファレンスアドレスが書かれ、第2ビット領域に
は次に解析すべきビット数が書かれている。
【0040】以上のようなテーブルのワード構成にする
ことにより、図1とほとんど同一の回路構成で復号が実
行できる。また次解析ビット長の確保のためにテーブル
のワード幅を広げる必要もない。
【0041】図6は第3の実施例によるシフト制御部3
の動作を示すフローチャートであり、基本的には図3、
図4で示す動作と同じである。ステップS11において
符号入力部1のバッファ量を確認し、規定量以下ならば
ステップS12で1バイト又は数バイト単位でビットス
トリームを読み込む。ステップS13では、検索終了フ
ラグによりデコードの区切りか否かを判定し、1つのコ
ードの解析が終っていたならステップS14で解析コー
ド長をデフォルト値にし、区切りでなければ、ステップ
S15デコードテーブルの第2ビット領域の次解析ビッ
ト長を読み出して次の解析コード長として設定する。
【0042】ステップS16では、上記解析コード長に
応じて合成部4、セレクタ5にビット列との桁を合わせ
るためのシフト量をシフタ2に設定する。シフタ2に設
定するシフト量には前回のテーブル検索で解析が終了し
たビットの切り捨て分がもちろん考慮されている。ステ
ップS11〜S16の処理が、ステップS17で全ての
ビットストリームに対して終了したと判断されるまで繰
り返される。
【0043】この第3の実施例では、無駄テーブル排除
のために、テーブルの第2ビット領域に設定する次解析
ビット長を自由に最適に設定できるので、最長ビットを
越える検索を行わないようにデコードテーブルが生成さ
れる。
【0044】次に第3の実施例におけるテーブル生成方
法の実施例について説明する。 第1のテーブル生成方法 テーブル生成の際に簡易でしかも効果的にテーブル容量
を削減する方法は、何回かの解析においてデコードが終
了する最終の解析ビット長に対してそのデコード途中に
おけるビット列に続く可能性のある複数のコード種類の
うちの最長のコード長の未解析部分のビット長が最後の
解析ビット長より短い場合には、その未解析部分のビッ
ト長を最後の解析ビット長に変更するという方法であ
る。
【0045】上記方法を図7を用いてより詳しく説明す
る。最長コード16ビットを有するハフマン符号をデコ
ードするのにまずa=4ビット、b=2ビット、c=4
ビット、d=4ビット、e=2ビットと5回のステップ
に分けてデコードを行う場合を仮定する。これはデフォ
ルトでありデコードが終了する最終ステップは変えるこ
とが可能である。図7では4つのハフマン符号A、B、
C、Dをデコードする場合を示している。斜線の部分の
6ビットは全く共通のビット配列であり、Aはコード長
=7、B、Cはコード長8、Dはコード長9である。従
って、1、2回目のステップにおいてa=4ビット、b
=2ビットの解析までは同じになる。
【0046】3回目のステップではc=4なので、2回
目のステップで与えられたリファレンスアドレスに対す
る先のテーブルとして通常では24 =16テーブルが必
要となる。これに対して本発明では、図7の斜線で示さ
れたビット配列につながるコードがA、B、C、Dの4
つあり、その最長のコード長はDの9ビットであり、残
り3ビットが未解析ビットなので、2回目の解析で参照
されるテーブル内容にはリファレンスアドレスと、次解
析ビット長としてc=4ではなく3を設定する。する
と、リファレンスアドレスによって指定されるアドレス
の先には次に解析するビット長をアドレスとして加え、
3 =8のテーブルとその内容とを記述すればよく、1
6−8=8テーブルの節約となる。
【0047】第2のテーブル生成方法 図8において、例えば1回目のステップでa=4、2回
目のステップでb=2、次にc=4ビットの解析がデフ
ォルトとする。また7ビット長のハフマン符号をA′、
B′、C′、D′とし、その下位2ビットを(00)
(01)(10)(11)とし、さらに斜線部が共通で
あるとする。この場合は2回目の解析ではリファレンス
アドレス用として2テーブル必要とする。この場合に、
第1のテーブル生成方式を用いると、3回目は4ビット
でなく1ビットの解析で済むが、2 1 =2テーブルずつ
必要となり、合計6テーブル必要である。
【0048】そこで本方法では、2回目の解析をb=2
でなくb=3としている。これによってA′、B′、
C′、D′に関するテーブル量としては、リファレンス
アドレスを格納するテーブルを省くことができるので、
2テーブル削減できる。ただし2回目の解析長を変える
ことにより、A′、B′、C′、D′の他の種類のコー
ドに関連するテーブル量は増える可能性もある。従って
本方法によれば、解析ビット長をデフォルトより増や
し、特定コードに対するリファレンスアドレスの節約が
でき、かつ、全体のテーブル量も増えない場合は、これ
を採用すると効果が得られる。
【0049】第3のテーブル生成方法 最もテーブル容量を少くする場合には、第1、第2の生
成方法では不十分である。本方法では最大のステップ数
を変えたり、同じステップ数でも、解析のビットa、
b、c、…(a+b+c+…=16)を各ステップで数
を異らせて、そのあらゆる組み合せから最小のテーブル
数とそのテーブル内容とを決定している。ただし、テー
ブルを縮小化する手段として第1のテーブル生成方法の
みを加え、組み合せ数はコンピュータの負荷をあまり増
やさない方式である。従って、本方法では同じコード長
のデコードに対して一方は2ステップ、他方は3ステッ
プとなるようにコードの解析結果に応じて次の解析ビッ
ト長を次々と変えるようなことは組合せを無限に多くし
てしまうので避け、デフォルトの各ステップにおける解
析ビット長に準じて効果の高い第1のテーブル生成方法
を組み込み、最終ステップのみテーブルの縮小化処理が
入る。
【0050】図9は本方法を示すフローチャートであ
る。ステップS21ではステップ数の決定を行う、最長
コード長が16ビットならば1から順に16まで行う
が、その内の1つをまず選ぶ。ステップS22は各ステ
ップにおける解析ビットの配分を決定するもので、例え
ばステップ数2ならば組合せは、(a,b)=(1,1
5)(2,14)(3,13)…(15,1)と15通
りある。そしてその1つを選択する。ステップS23で
はすでに決まったステップ数と解析ビット長に応じてテ
ーブルの生成を行う。
【0051】ステップS24において解析ビットの組み
合せが全て終了したかを判断し、していなければステッ
プS22に戻り、別のまだ選択していない解析ビットの
組合せを選ぶ。ステップS24で全組合せの終了が確認
できたらステップS25で全ステップ数について終了し
たかを判断する。全ステップについて終了していなけれ
ばステップS21で最長デコード長の解析にかかる最長
ステップ数をセットし直す、ちなみに最長ステップ長=
16ならばステップ数も1〜16まで16通りある。
【0052】図10は上記ステップS23によるテーブ
ル生成を詳しく説明するものである。ステップS231
においてステップ数と各ステップにおける解析長をよみ
出す。ステップS232においては解析長に応じたテー
ブルを作成する。例えば3ビットの解析長ならば3ビッ
トの各ビットの組み合せ(0,0,0)〜(1,1,
1)までの8通りのテーブルが生成され、図5に示すよ
うに、それに対応するコード長及びデコード結果(復号
値)又はリファレンスアドレス及び次解析コード長がそ
の内容となる。ただし、テーブルは一度に1テーブルし
か作らず、ステップS233に進む。ステップS233
では、作成したテーブル内容を判定し、内容がリファレ
ンスアドレスである時はS234で関数を読み出す。内
容が復号値である時又は関数の終了後はステップS23
5で1テーブルずつすべてのテーブルが作られたかを判
定し、全て作られていない時はステップS232に戻
り、1アドレス分のテーブルを1つ作るという動作を行
う。
【0053】ところでステップS232におけるリファ
レンスアドレスは一番最初の時は、例えば解析ビット長
=3ならばテーブルの先頭に8(23 )を加えた値とな
り、2回目以降のリファレンスアドレスの書き込みで
は、関数読み出しでテーブルが生成されアドレスが更新
されているので、そのアドレスに1を加えた値となる。
【0054】次にステップS236ではテーブル作成に
かかった最終アドレスよりテーブル量を求め、ステップ
S237でそれが最低値かあるいは基準値以下かの判断
をし、基準値以下ならばステップS238で必要な情報
を記憶する。
【0055】上記関数は図11のようになっている。ス
テップS31では呼び出しを行った次のステップにおけ
る解析ビット長に応じた次解析ビット長の読み出し及び
最終ステップにおけるテーブル短縮化処理(第1のテー
ブル生成方法)により決定された解析ビット長を決定す
る。ステップS32では解析ビット長に応じたテーブル
作成を行う。これは図10におけるステップS232と
同じ動作であり、次のステップS33、34、及びS3
5の関数読み出しも図10のステップS233〜S23
5と全く同じ動作をする。
【0056】ステップS32におけるテーブル生成も、
その解析ビット長でデコードが終了する場合には、その
前段ステップのリファレンスアドレスに解析ビット配列
を2進数に直した値を加算したアドレスに書き込まれ
る。又は生成するテーブルがリファレンスアドレスの場
合には、その関数内ではじめて生成するリファレンスア
ドレスには前段のリファレンスアドレスにその解析ビッ
トnとすると2n を加えた値となり、2回目以降のリフ
ァレンスアドレス値の生成には、1回目以降の関数の呼
び出し先で更新された結果の値+1がリファレンスアド
レスとなる。
【0057】従って、デコードテーブル構成は、図12
に示すようにFを各種復号値、Rxxをリファレンスア
ドレスと次解析ビットの格納アドレスとし、それらのア
ドレスを図中左欄とすると、リファレンスアドレスR
1、R2にはA(R1)、A(R2)の値が書かれる。
同様にRxxにはA(Rxx)のアドレスが書かれる。
このテーブル順は関数のよび出された順番で決まり、例
えばリファレンスアドレスR2は2回目の関数呼び出し
処理の後に最終アドレスに1が加えられてA(R2)が
決定される。
【0058】第4のテーブル生成方法 第3のテーブル生成方法で最小テーブルを求めるのに対
して本方法では、最速でデコードできるテーブル生成を
行う。これは第3のテーブル生成方法による図10のス
テップS236を図13に示すものに変えればよい。た
だし、最速は16ビット同時に検索(解析)することで
あって、この場合は図9のステップS21、S22でス
テップ数や組合せに制限がある場合に有効である。
【0059】図13は平均のデコードステップ(クロッ
ク)数を求めるものである。まずステップS41ではハ
フマン符号長を1に設定する。ステップS42では上記
設定したハフマン符号長nのコードに対する出現確率h
を求める。これはh=(1/2)n となる。次にステッ
プS43でハフマン符号長nのコードがいくつ存在する
かを示す値Pを求める。ステップS44では(1/2)
n ×n×Pの計算をして出現確率X平均ステップ数を求
める。ステップS46では全ハフマン符号長について演
算が終ったかを判定し、終っていなければビット長を
“1”増やしてステップS41に戻る。ところで、ステ
ップS45では前回までの出現確率X平均ステップ数に
計算した結果を加える。従って、最終的にハフマン符号
長すべてについての平均ステップ数が求まる。
【0060】図10のステップS237で、求まった平
均ステップ数が最小ならばステップS238で記憶する
ことにより最速のデコードテーブルが求まる。
【0061】第5のテーブル生成方法 特にハードウェア等によりデコードテーブル量が決まっ
ている場合は、テーブル量は最小値ではなく、テーブル
容量内に収まっていればよい。従ってある一定のテーブ
ル容量内でかつそのなかで最速のテーブルを得るには図
10のステップS236の最終判断部を図14のように
する。ステップS51で作成したテーブルがテーブル容
量以内であればステップS42で平均クロック数の計算
を行い終了する。ステップS41でテーブル容量以上な
ら平均クロック数を最大値にセットしておく。そして図
10のステップS237の判定において、デコードにお
ける平均クロック数が最小であるかを判断して最小なら
ばステップS238でそのテーブル情報を記憶する。
【0062】以上の動作によりハードウェアで許される
テーブル容量以内でかつもっとも高速にデコードを行う
ハフマンデコーダを得ることが可能になる。
【0063】尚、各ステップにおける解析長に応じたテ
ーブル生成の際に、例えば3ビット分のデコードでは8
アドレス分のテーブルが生成されるが、上位2ビットで
復号値が確定し、下位1ビットは次に続くコードである
場合には、下位1ビットが「0」又は「1」と不定とな
るので、上位2ビットで決まるアドレスに対して2つの
同一内容のテーブルが生成される。もし、上位1ビット
分で復号値が確定するならば、上位1ビットを共通のア
ドレスとして下位2ビット分、即ち4個の同一内容テー
ブルが発生する。
【0064】また、3ビット分のデコードで復号値が確
定しないようなビット列では、次に何ビット分か続くビ
ット列を参照しなければ存在する完全なハフマン符号と
はならないので、その対応テーブルを格納する先頭番地
をリファレンスアドレスとしてテーブル内容に記憶す
る。リファレンスアドレスの値については前述した通り
である。
【0065】また、リファレンスアドレスは、デコード
テーブルの絶対的なアドレスとして本方法を説明した
が、そのリファレンスアドレスを格納するテーブルアド
レスとの差である相対アドレスをリファレンスアドレス
とすることにより、リファレンスアドレスを記憶するた
めのビット長を削減することも可能である。
【0066】さらに本実施例を変形することにより、デ
コード処理にかかる平均クロック数が求められるので、
ある値に設定された平均クロック数以下の高速動作を行
い、かつその中で最もテーブル容量の少ないものを最終
テーブルとすることも容易に推察できる。
【0067】
【発明の効果】以上説明したように、請求項1のように
構成することにより、ハフマン符号等の符号化データを
小容量のデコードテーブルを用いて高速で復号すること
ができる効果がある。
【0068】また、請求項5の発明のように構成するこ
とにより決められた解析ステップ数解析ビット長の組合
せの中から小容量で復号可能なデコードテーブルを生成
することができ、このため限られたハードウェア資源で
復号が可能になり、かつテーブルのあまったメモリ領域
を他の作業領域に提供できるという効果がある。
【0069】また、請求項6、7のように構成すること
により、決められたテーブル容量範囲内で最も小容量又
は最高速のテーブル構成を選択して用いることができる
効果がある。
【0070】さらに、最終ステップ時にメモリ容量を短
縮化することにより、より小さなテーブルでの復号が可
能になる。
【図面の簡単な説明】
【図1】本発明の実施例を示すブロック図である。
【図2】第1の実施例によるデコードテーブルのワード
構成を示す構成図である。
【図3】第1の実施例によるシフト制御部の動作を示す
フローチャートである。
【図4】第2の実施例によるシフト制御部の動作を示す
フローチャートである。
【図5】第3の実施例によるデコードテーブルのワード
構成を示す構成図である。
【図6】第3の実施例によるシフト制御部の動作を示す
フローチャートである。
【図7】第1のテーブル生成方法によるテーブル縮小化
の説明図である。
【図8】第2のテーブル生成方法によるテーブル縮小化
の説明図である。
【図9】第3のテーブル生成方法を示すフローチャート
である。
【図10】図9のステップS23を詳しく示すフローチ
ャートである。
【図11】図10の関数に関するフローチャートであ
る。
【図12】第3のテーブル生成方法によるテーブル構成
例を示す構成図である。
【図13】第4のテーブル生成方法を示すフローチャー
トである。
【図14】第5のテーブル生成方法を示すフローチャー
トである。
【符号の説明】
1 符号入力部 2 シフタ 3 シフト制御部 4 合成部 5 セレクタ 6 デコードテーブル

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 ビットストリームとして入力される符号
    化データを所定ビット数づつ1又は複数回のステップに
    わたってデコードテーブルを検索することにより解析を
    行い復号する復号装置において、 復号が終了しない場合に、上記デコードテーブルから得
    られる情報に基づいて次回のステップで解析すべきビッ
    ト数を設定し、設定したビット数に基づいて復号を制御
    する制御手段を設けたことを特徴とする復号装置。
  2. 【請求項2】 1回目のステップで解析すべきビット数
    を長くし、2回目以降のステップで解析すべきビット数
    を短くしたことを特徴とする請求項1記載の復号装置。
  3. 【請求項3】 1回目のステップで解析すべきビット数
    を短くし、2回目以降のステップで解析すべきビット数
    を長くしたことを特徴とする請求項1記載の復号装置。
  4. 【請求項4】 上記デコードテーブルに上記次回のステ
    ップで解析すべきビット数が書き込まれていることを特
    徴とする請求項1記載の復号装置。
  5. 【請求項5】 ビットストリームとして入力される符号
    化データを所定ビット数づつ1又は複数回のステップに
    わたってデコードテーブルを検索することにより解析を
    行い復号する復号装置に用いられる上記デコードテーブ
    ルの生成方法において、 復号が終了する最終ステップで解析すべき残りビット数
    が予め設定されたビット数より短い場合に、その前のス
    テップにおいて次回のステップで解析すべきビット数
    を、上記残りビット数のうちの最大ビット数に設定する
    ことを特徴とするデコードテーブルの生成方法。
  6. 【請求項6】 ビットストリームとして入力される符号
    化データを所定ビット数づつ1又は複数回のステップに
    わたってデコードテーブルを検索することにより解析を
    行い復号する復号装置に用いられる上記デコードテーブ
    ルの生成方法において、 最大ステップ数を設定し、その各ステップの全組合せを
    求め、 各組を構成する各ステップについてそれぞれ次回に解析
    すべきビット数を設定し、これを全ての組について行う
    ことにより、複数のテーブルを生成し、 上記複数のテーブルから最小容量を有するテーブルを選
    択することを特徴とするデコードテーブルの生成方法。
  7. 【請求項7】 ビットストリームとして入力される符号
    化データを所定ビット数づつ1又は複数回のステップに
    わたってデコードテーブルを検索することにより解析を
    行い復号する復号装置に用いられる上記デコードテーブ
    ルの生成方法において、 最大ステップ数を設定し、その各ステップの全組合せを
    求め、 各組を構成する各ステップについてそれぞれ次回に解析
    すべきビット数を設定し、これを全ての組について行う
    ことにより、複数のテーブルを生成し、 上記複数のテーブルから最高速で復号可能なテーブルを
    選択することを特徴とするデコードテーブルの生成方
    法。
  8. 【請求項8】 ビットストリームとして入力される符号
    化データを所定ビット数づつ1又は複数回のステップに
    わたってデコードテーブルを検索することにより解析を
    行い復号する復号装置に用いられる上記デコードテーブ
    ルの生成方法において、 最大ステップ数を設定し、その各ステップの全組合せを
    求め、 各組を構成する各ステップについてそれぞれ次回に解析
    すべきビット数を設定し、これを全ての組について行う
    ことにより、複数のテーブルを生成し、 上記複数のテーブルのうちの所定容量以下の容量を有す
    るテーブルから最高速で復号可能なテーブルを選択する
    ことを特徴とするデコードテーブルの生成方法。
  9. 【請求項9】 ビットストリームとして入力される符号
    化データを所定ビット数づつ1又は複数回のステップに
    わたってデコードテーブルを検索することにより解析を
    行い復号する復号装置に用いられる上記デコードテーブ
    ルの生成方法において、 最大ステップ数を設定し、その各ステップの全組合せを
    求め、 各組を構成する各ステップについてそれぞれ次回に解析
    すべきビット数を設定し、これを全ての組について行う
    ことにより、複数のテーブルを生成し、 上記複数のテーブルのうちの所定速度以上で復号可能な
    テーブルから最小容量を有するテーブルを選択すること
    を特徴とするデコードテーブルの生成方法。
  10. 【請求項10】 上記符号化データの全てのビット長m
    を有する各コードの出現確率を(1/2)m とし、各出
    現確率とコードの種類数とステップ数との積和より平均
    ステップ数を求め、この平均ステップ数の逆数から平均
    復号速度を求め、この平均復号速度に基づいて上記最高
    速で可能なテーブルを選択することを特徴とする請求項
    7又は8記載のデコードテーブルの生成方法。
  11. 【請求項11】 上記符号化データがハフマン符号であ
    ることを特徴とする請求項1、2、3又は4記載の復号
    装置。
  12. 【請求項12】 上記符号化データがハフマン符号であ
    ることを特徴とする請求項5、6、7、8、9又は10
    記載のデコードテーブルの生成方法。
JP32011794A 1994-11-08 1994-12-22 復号装置及びデコードテーブルの生成方法 Expired - Fee Related JP3332630B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32011794A JP3332630B2 (ja) 1994-12-22 1994-12-22 復号装置及びデコードテーブルの生成方法
US08/553,914 US5835033A (en) 1994-11-08 1995-11-06 Decoding apparatus and method for coded data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32011794A JP3332630B2 (ja) 1994-12-22 1994-12-22 復号装置及びデコードテーブルの生成方法

Publications (2)

Publication Number Publication Date
JPH08181620A true JPH08181620A (ja) 1996-07-12
JP3332630B2 JP3332630B2 (ja) 2002-10-07

Family

ID=18117891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32011794A Expired - Fee Related JP3332630B2 (ja) 1994-11-08 1994-12-22 復号装置及びデコードテーブルの生成方法

Country Status (1)

Country Link
JP (1) JP3332630B2 (ja)

Also Published As

Publication number Publication date
JP3332630B2 (ja) 2002-10-07

Similar Documents

Publication Publication Date Title
JP3459030B2 (ja) 符号化システム
JP3136796B2 (ja) 可変長符号デコーダ
JP3341962B2 (ja) 可変長復号器及び可変長符号値を復号化する方法
KR100527891B1 (ko) 허프만 디코딩을 수행하는 방법
US6621429B2 (en) Huffman decoding method and decoder, huffman decoding table, method of preparing the table, and storage media
US6445314B1 (en) System and method for the decoding of variable length codes
JP3189876B2 (ja) 可変長符号復号化回路
US7353233B1 (en) Apparatus and method for real-time decompression of data streams on limited-resource embedded devices
KR100486251B1 (ko) 가변 길이 코드 복호화 장치 및 방법
US20030053700A1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding
JP3008685B2 (ja) 可変長符号の復号化回路
JP2746109B2 (ja) ハフマン符号復号化回路
JP4079965B2 (ja) 復号化システム
JPH07107303A (ja) ハフマン符号の復号化方法
US5991340A (en) Method and system for encoding and decoding data using run prediction
JP3332630B2 (ja) 復号装置及びデコードテーブルの生成方法
JPH07312556A (ja) 可変長符号の復号化処理装置
JP2537551B2 (ja) 可変長符号復号回路
JP2002330076A (ja) ハフマン復号装置及び復号方法
JP2004056417A (ja) 復号装置および復号方法
KR100462060B1 (ko) 유니버셜 가변 길이 코드 부호어 다중 추출 방법 및 그를위한 룩-업 테이블 구성 방법
JP3229690B2 (ja) 可変長符号復号器
JP3389389B2 (ja) 可変長コード復号化装置
KR100487411B1 (ko) 가변 길이 디코더
JPH08139609A (ja) 符号化データの復号方法及びその装置

Legal Events

Date Code Title Description
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