JP3227292B2 - 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法 - Google Patents

符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法

Info

Publication number
JP3227292B2
JP3227292B2 JP31998993A JP31998993A JP3227292B2 JP 3227292 B2 JP3227292 B2 JP 3227292B2 JP 31998993 A JP31998993 A JP 31998993A JP 31998993 A JP31998993 A JP 31998993A JP 3227292 B2 JP3227292 B2 JP 3227292B2
Authority
JP
Japan
Prior art keywords
code
length
huffman
bit
decoding
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
JP31998993A
Other languages
English (en)
Other versions
JPH07177039A (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.)
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 JP31998993A priority Critical patent/JP3227292B2/ja
Publication of JPH07177039A publication Critical patent/JPH07177039A/ja
Priority to US08/985,316 priority patent/US5841381A/en
Priority to US09/149,274 priority patent/US6408102B1/en
Application granted granted Critical
Publication of JP3227292B2 publication Critical patent/JP3227292B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (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】
【従来の技術】近年、ディジタル信号の圧縮技術の進歩
は著しい。ディジタル化された静止画信号や動画信号の
圧縮技術としては、JPEG(Joint Photo
graphic Experts Group)やMP
EG(Moving Picture Experts
Group)等により提案された圧縮方式が世界的な
標準として定着しつつある。
【0003】該圧縮方式では、DCT(Discret
e Cosine Transform)を用いて画像
信号を直交変換し変換後の信号で視覚的に目立たない部
分の信号成分を取り除くことでまず情報を減らし、その
後さらに情報を圧縮するためにハフマン符号化等を行な
っている。
【0004】ハフマン符号化では、符号の発生頻度に応
じて可変長のコードを割り当てる。即ち、発生頻度の高
い符号ほどビット長の小さなコードを割り当てて符号化
することにより情報を減らすことが出来る。
【0005】符号化されたハフマンコードをテーブルを
使用して復号化する場合、該テーブルのメモリ容量は復
号化の処理速度と相反する関係にある。すなわち、
(a)処理速度は遅いがテーブルのメモリ容量を少なく
する方法と、(b)処理速度を速くしてテーブルのメモ
リ容量を多くする方法とにわかれる。(a)の方法の極
端なものは1サイクルで1ビットずつ復号化するもの
で、1つのハフマンコードを復号するのに数サイクルを
要する。該復号化方法は特開昭57−55668号に従
来例として紹介されている。(b)の方法の極端なもの
は1サイクルで1つのハフマンコードを復号するもので
ある。
【0006】もちろん、前記の2つの極端な方法の中間
的な方法、すなわち、1サイクルで2ビットあるいはそ
れ以上のビットを復号化する方法もある。
【0007】これら従来の方法はいずれも、復号するハ
フマンコードの情報を他の情報に変換することなく、該
情報をそのまま前記テーブルに入力するか、あるいは、
該情報の1部それ以前に復号して得られた情報に連結し
てテーブルに入力するものである。
【0008】ここで、1サイクルで1つのハフマンコー
ドを復号化する従来の復号装置を図1に示す。同図は、
最大コード長が16ビットのハフマンコードを8ビット
の固定長符号に復号するブロック図である。
【0009】同図において、101はハフマン符号化さ
れたデータを入力する端子、102は該データを一時的
に蓄えるバッファである。ハフマンコードは可変長コー
ドであるため、復号化する際の出力データレートを一定
に保つと入力データレートが一定では無くなるので、該
バッファが必要となる。
【0010】103はmビット単位で入力されたデータ
を連結し、既に復号化されたデータを取り除いた後の先
頭16ビットを取り出すためのアンパッキング回路、1
04は該16ビットデータ中のハフマンコードを復号化
するための復号テーブル、105は復号化した固定長の
符号(8ビット)を出力する端子、106は復号化した
ハフマンコードのビット長を示す4ビットの信号であ
る。
【0011】該4ビットの信号106は、ビット長を直
接表わす場合と(ビット長−1)を表わす場合とがあ
り、この図の例では、(ビット長−1)を表わしてい
る。最大コード長が16ビットの場合、これを直接表わ
すと5ビット必要になるが、0ビットのコード長は存在
しないので1ビットのコード長を4ビットで“000
0”と表現すること、すなわち(ビット長−1)で表わ
すことが可能となる。但し、最大コード長が2のべき乗
でない場合は、どちらで表わしても差がない。該信号1
06は、前記アンパッキング回路103に送られ、復号
化されたデータを取り除くために用いられる。
【0012】本構成例では、復号テーブル104のメモ
リ容量が64k×12ビット、すなわち96kバイトに
もなり、大容量のメモリが必要となる。
【0013】次に、上記従来例をJPEGコードの復号
化装置に適用した時の構成を図2に示す。JPEGコー
ドでも、最大コード長16ビットのハフマンコードを8
ビットの固定長符号(NNNN信号4ビットとSSSS
信号4ビット)に復号化するが、ハフマンコードの間に
付加ビットと称する情報が挿入されていて、復号に際し
てはこの付加ビットを取り出すための機構が必要とな
る。
【0014】該付加ビットの最大ビット長を10ビット
とすると、図2におけるアンパッキング回路200から
出力する信号は26ビット必要となる。該26ビット信
号の先頭16ビットは復号テーブル104に送られ、図
1と同様8ビットの固定長符号と4ビットのコード長情
報106に変換される。一方、該26ビット信号はシフ
タ201に送られ、前記コード長情報に基づいて、復号
化されたハフマンコードが取り除かれ(これは、該26
ビット信号を前記コード長分だけシフトすることで実現
される)、先頭の10ビットが端子202に出力され
る。尚、出力される該10ビットの信号が全て付加ビッ
ト信号というわけではなく、復号テーブルから出力され
るSSSS信号の値が示す上位数ビットのみが、付加ビ
ット信号である。
【0015】この様に、1つのハフマンコードを復号化
して、次のハフマンコードを復号化する際、図1の場合
では、復号化し終ったハフマンコードのビット長分だ
け、アンパッキング回路で取り除けばよかったが、図2
の場合は付加ビット信号も取り除く必要がある。
【0016】そこで、ハフマンコードのコード長を表わ
す信号106と付加ビットのビット長を表わす信号20
3(SSSS信号)とを加算器204で加算し該加算結
果をアンパッキング回路200に送り、1サイクルごと
にハフマンコードと付加ビットの両方を取り除く。
【0017】
【発明が解決しようとしている課題】上記従来例では、
ハフマンコードを高速に復号化しようとすると復号テー
ブルのメモリが大容量になり、次のような欠点があっ
た。
【0018】(1)復号化装置を集積回路化する時、チ
ップ面積が大きくなりコストが高くなる。
【0019】(2)復号テーブルの書き換えに時間がか
かる。
【0020】(3)復号テーブルの情報量が多いため、
圧縮する情報(画像情報等)ごとに最適なハフマン符号
化を行なうことができない。それをすると、圧縮して、
せっかく減った情報に、それを復号するための復号テー
ブル情報を各画像ごとに持たなければならないが、その
情報が多いため、最適符号化した意味が無くなる。
【0021】
【課題を解決するための手段】上述の問題点を解決する
ために、本発明の復号化装置は、ハフマンコードを入力
する入力手段と、前記ハフマンコードを複数のコード長
に対応する複数の基準値と比較した結果に基づいて、前
記ハフマンコードのコード長を演算するコード長演算手
段と、前記ハフマンコードと前記ハフマンコードのコー
ド長に対応する基準値とに基づいて、前記ハフマンコー
ドをJPEG方式に準拠した固定長符号に変換するため
のコード番号を演算するコード番号演算手段とを有する
ことを特徴とする。また、本発明の復号化装置は、ハフ
マンコードを入力する入力手段と、前記ハフマンコード
を複数のコード長に対応する複数の基準値と比較した結
果に基づいて、前記ハフマンコードのコード長を演算す
るコード長演算手段と、前記ハフマンコードと前記ハフ
マンコードのコード長に対応する基準値とに基づいて、
前記ハフマンコードを固定長符号に変換するためのコー
ド番号を演算するコード番号演算手段と、前記ハフマン
コードに続いて入力された付加情報を出力する付加情報
出力手段とを有することを特徴とする。また、本発明の
符号化装置は、固定長符号に対応するコード番号を入力
する入力手段と、前記コード番号を複数のコード長に対
応する複数の基準値と比較した結果に基づいて、前記固
定長符号に対応するハフマンコードのコード長を演算す
るコード長演算手段と、前記コード番号と前記コード長
演算手段によって演算されたコード長に対応する基準値
とに基づいて、前記固定長符号に対応するハフマンコー
ドを演算するハフマンコード演算手段とを有することを
特徴とする。また、本発明の復号化方法は、ハフマンコ
ードを入力する入力工程と、前記ハフマンコードを複数
のコード長に対応する複数の基準値と比較した結果に基
づいて、前記ハフマンコードのコード長を演算するコー
ド長演算工程と、前記ハフマンコードと前記ハフマンコ
ードのコード長に対応する基準値とに基づいて、前記ハ
フマンコードをJPEG方式に準拠した固定長符号に変
換するためのコード番号を演算するコード番号演算工程
とを有することを特徴とする。また、本発明の復号化方
法は、ハフマンコードを入力する入力工程と、前記ハフ
マンコードを複数のコード長に対応する複数の基準値と
比較した結果に基づいて、前記ハフマンコードのコード
長を演算するコード長演算工程と、前記ハフマンコード
と前記ハフマンコードのコード長に対応する基準値とに
基づいて、前記ハフマンコードを固定長符号に変換する
ためのコード番号を演算するコード番号演算工程と、前
記ハフマンコードに続いて入力された付加情報を出力す
る付加情報出力工程とを有することを特徴とする。ま
た、本発明の符号化方法は、固定長符号に対応するコー
ド番号を入力する入力工程と、前記コード番号を複数の
コード長に対応する複数の基準値と比較した結果に基づ
いて、前記固定長符号に対応するハフマンコードのコー
ド長を演算するコード長演算工程と、前記コード番号と
前記コード長演算手段によって演算されたコード長に対
応する基準値とに基づいて、前記固定長符号に対応する
ハフマンコードを演算するハフマンコード演算工程とを
有することを特徴とする。
【0022】
【0023】
【実施例】図3ないし図4に本発明の第1実施例を示
す。
【0024】本発明の内容を簡潔に表現すると、以下の
ようになる。
【0025】復号化するハフマンコードのコード長とコ
ード番号を演算・論理回路により求め、前記コード番号
を復号テーブルで、元の固定長符号に変換することによ
り、前記復号テーブルのメモリ容量を大幅に削減するも
のである。
【0026】ここで、コード番号について少し説明す
る。前記固定長符号にハフマンコードを割り当る際に該
固定長符号を生起確率の高い順に並べるが、この並べた
順番に0、1、2と番号付けしたものをコード番号を称
す。
【0027】よって、該コード番号を表わすのに必要な
最小限のビット数は、前記固定長符号のビット数より大
きくなることはなく、該固定長符号のビット数以下とな
る。(通常は同じであり、この実施例でも同じビット数
とした。)
【0028】図3は本発明を適用したハフマンコード復
号装置の構成を示す。
【0029】尚、図3の構成において、コード番号並び
にコード長をどのような演算・論理回路で求めるのか、
といった説明は図4を用いて後で行なう。また、図1に
示した従来例との比較のため、ハフマンコード長等のビ
ット数は従来例と同じにした。同図において、101〜
103、105、106は従来例と同じブロック、端
子、信号である。また、301はハフマンコードを入力
して、該ハフマンコードのコード番号とコード長を演算
する演算部、302はコード番号を示す8ビットの信
号、303は8ビットのコード番号を8ビットの固定長
符号に変換する復号テーブルである。
【0030】図3から分かるように、演算部301によ
りハフマンコードからコード番号を演算で求めれば、復
号テーブル303の入出力ビット数はそれぞれ8ビット
になる。従って、該テーブル303のメモリ容量は、2
56バイトとなり従来の1/384のメモリ容量で足り
る。
【0031】次に、ハフマンコードからコード番号とコ
ード長を演算で求める演算部301について、図4〜図
7を用いて説明する。但し、説明を簡単にするために、
最長6ビットの9通りのハフマンコードから4ビットの
コード番号と3ビットのコード長を求める小規模な回路
を用いる。
【0032】ハフマンコードとコード番号との対応は図
5に示す関係にあるものとする。
【0033】i=1、2、3、4、5、6に対し、iビ
ット長コードの下限の境界値、それに対応するハフマン
コード、さらに、それに対応するコード番号を図6に示
す。
【0034】図6に示したiビット長コードの下限の境
界値とは[0000002 、10000002 ]の数値
線上に以下のルールでハフマンコードを配置した時のi
ビット長コードとiビット長未満のコードの境界値(6
ビット)を言う。
【0035】ルールコード長の短いものから順に00
00002 の方から並べる。(同じコード長の場合には
値の小さいものから配置する) ルールiビット長コード1個につき、数直線上で1/
i の領域を占める。(iビット長コードが2個の場
合、占める領域は2×1/2i となる。)上記ルール
に従って、図5に示すハフマンコードを並べた時に、
各ビット長のコードが占める領域を図7に示す。この図
より、上記境界値が容易に読み取れる。
【0036】図4の説明を行なう。
【0037】同図において、401〜405はそれぞれ
2〜6ビットコードの下限の境界値を保持するレジスタ
である。1ビットコードの下限の境界値はどのようなコ
ード体系でも必ず0000002 になるため値を保持す
る必要は無い。
【0038】411〜415は前記下限の境界値に対応
する(別の言い方をすれば、図7において境界値のすぐ
上に配置された)ハフマンコードのコード番号を保持す
るレジスタ、420は少なくとも1つのハフマンコード
が存在する6ビットのデータを入力する端子、421〜
425はそれぞれ端子420に入力した6ビットの入力
データからレジスタ401〜405に保持されている前
記5つの境界値を減算するための減算器である。これら
の減算器421〜425はハフマンコードと複数の境界
値との比較をする機能と、差分値を得る機能の両方の機
能を有する。
【0039】比較結果は、前記5つの減算器421〜4
25から出力されるサインビットで分かる。各減算器4
21〜425では、(入力データ)−(境界値)という
演算を行ない、そのサインビットが“0”の時、減算結
果は0以上であることを示す。即ち、サインビットが0
の時に、入力データ境界値という関係が成立する。4
36は1ビットのインバータ、432〜435は負論理
入力付きのAND素子であり、これらから出力される信
号442〜446、及び減算器421からの信号441
の内のどの信号が“1”になっているかで、端子420
に入力したハフマンコードのコード長が判別できる。具
体的には、信号441が“1”の時、入力データは2ビ
ット長コードの下限境界値より、小さいことになるの
で、ハフマンコードは1ビット長ということになり、ま
た、信号442が“1”の時、入力データは、前記2ビ
ット長コードの下限境界値以上で、3ビット長コードの
下限境界値未満であるため、ハフマンコードは2ビット
長ということになる。以下、信号446まで同様の判別
がなされる。
【0040】これらの信号441〜446は、第1のセ
レクタ451、第2のセレクタ452並びに、プライオ
リティエンコーダ453に送られる。該プライオリティ
エンコーダ453は入力された6ビットの判別結果をエ
ンコードして、2進化して3ビットのコード長信号とし
て端子471より出力する。
【0041】第1のセレクタ451には、上述のコード
番号を保持する5つのレジスタ411〜415から該コ
ード番号が入力され、また、前述の信号442〜446
が選択制御信号として入力されている。例えば、該選択
制御信号442〜446の内、信号442が“1”の
時、該第1セレクタ451では、レジスタ411から入
力されるコード番号が選択され該セレクタ451から出
力される。
【0042】他の制御信号443、444、445、4
46はそれぞれレジスタ412、413、414、41
5から入力されるコード番号を選択する機能を有する。
該第1のセレクタ451で選択されたコード番号は、加
算器473に入力される。
【0043】一方、第2のセレクタ452には、上述の
6つの信号441〜446がすべて選択制御信号として
入力されると共に、以下の6つのデータが被選択信号と
して入力される。
【0044】第1のデータ:端子420から入力された
6ビットデータをシフタ461で5ビット右へシフトし
た1ビットデータ 第2のデータ:減算器421の出力をシフタ462で4
ビット右へシフトした2ビットデータ 第3のデータ:減算器422の出力をシフタ463で3
ビット右へシフトした3ビットデータ 第4のデータ:減算器423の出力をシフタ464で2
ビット右へシフトした4ビットデータ 第5のデータ:減算器424の出力をシフタ465で1
ビット右へシフトした5ビットデータ 第6のデータ:減算器425の出力の6ビットデータ 前記6つの制御信号441〜446により、上記6つデ
ータをそれぞれ第2のセレクタ452で選択して、該第
2のセレクタ452より出力し、加算器473に送る。
該第2のセレクタ452から出力された信号は、端子4
20に入力された復号化処理中のハフマンコードのコー
ド長に対応した下限境界値を、該ハフマンコードから減
算してその差分値を規格化したものである。
【0045】例えば、制御信号441が“1”の時シフ
タ461からの上記第1のデータ(1ビット)が選択さ
れ、該第2のセレクタの最下位ビット(以下LSBと略
す)として出力され、制御信号446が“1”の時、減
算器425からの上記第6のデータ(6ビット)が選択
され、該6ビットのデータのLSBは該第2のセレクタ
452の4ビット出力のLSBとして出力される。該第
2のセレクタ452の出力信号はコード番号の計算に用
いられる。該コード番号は4ビットのレンジしかないた
め、該セレクタ452の出力信号も4ビットを越える信
号は必要無い。よって、上述の6ビットデータの内、最
上位側の2ビットデータは無視され下位4ビットのデー
タが該セレクタ452から出力される。
【0046】該セレクタ452から出力された信号は、
加算器473にて、第1のセレクタ451の出力信号に
加算され、目的とするコード番号が演算により求められ
端子475に出力される。
【0047】ここで、具体的なデータを用いて図4の回
路の動作を説明する。
【0048】端子420に、111010という6ビッ
トのデータが入力されたとする。
【0049】この6ビットデータはレジスタ401〜4
05に保持された2〜6ビットコードの下限の境界値の
全てと比較器401〜405で比較されるが、6ビット
入力データ111010に関して、前記6ビットデータ
との比較で特に意味があるのは、レジスタ403で保持
している4ビット長コードの下限境界値110000と
レジスタ404で保持している5ビット長コードの下限
境界値111100の2つの値との比較である。前記6
ビットの入力データ111010は、前記2つの下限の
境界値110000、111100に対して、1100
00111010(入力データ)<111100とい
う関係が成り立つから、減算器423、424のサイン
ビットの出力はそれぞれ“0”、“1”となる。これよ
り、信号線441〜446の内信号線444のみが
“1”となる。一方、減算器423からは111010
−110000=001010の6ビットデータが出力
され、該6ビットデータはシフタ464により右へ2ビ
ットシフトされ0010という4ビットのデータに変換
された後、第2のセレクタ452に入力される。シフタ
464からの該4ビットデータは、前記信号線444
(=“1”)により第2のセレクタ452で選択され、
加算器473に送られる。また、第1のセレクタ451
では、該信号線444により、レジスタ413から出力
されているコード番号3(=00112 )が選択され該
4ビット信号0011が加算器473に送られる。
【0050】該加算器473では、入力された2つの4
ビット信号(0011と0010)を加算して、010
1をコード番号として端子475に出力する。一方信号
線441〜446はプライオリティエンコーダ453に
入力されてエンコードされ、100の3ビット信号がハ
フマンコードのコード長信号として端子471から出力
される。
【0051】結局、端子420に入力された6ビット入
力データ(111010)に存在するハフマンコード
は、コード長=4、コード番号=5のハフマンコードで
あることが分かった。他のハフマンコードも以上の説明
と同様に、コード長、コード番号が演算処理で求められ
る。
【0052】(第2の実施例)本発明の第2の実施例を
図8に示す。
【0053】図8は図3の演算部301のコード番号と
コード長を演算で求める部分に関する。
【0054】本実施例と前記第1の実施例との基本的な
違いはシフタ462〜465の配置箇所である。図4に
示した第1の実施例では、該シフタを減算器421〜4
24の出力側に配置していたが、本実施例では該シフタ
を減算器521〜524の(+)端子入力側に配置して
いる。
【0055】上記の違いにより、前記第1の実施例に対
して、本実施例では、以下の2点が変わってくる。
【0056】端子420に入力される6ビットデータ
が減算前に予めシフトされ、ビット削減されているの
で、iビット長コード(i=2、3、4、5)の下限の
境界値を保持するレジスタ501〜504のビット数
が、それぞれ2ビット、3ビット、4ビット、5ビット
で済むようになった。
【0057】6ビットの入力データから上記下限の境
界値を減算する減算器521〜524のビット数も同様
に、それぞれ2ビット、3ビット、4ビット、5ビット
で済むようになった。
【0058】上記のように変更になったレジスタや減算
器は新たな番号(501〜504、521〜524)を
付して区別したが、その他のブロックはすべて第1の実
施例(図4)と同じ機能なので同一番号を継続して使用
した。上記減算器の出力値をシフトすることは、入力値
をシフトすることと等価であり、境界値を保持するレジ
スタの出力値をシフトすることは、該レジスタで保持す
る値を予めシフトしておくことと等価なので、本実施例
の図8は、前記第1の実施例の図4とまったく等価であ
る。
【0059】よって本実施例の演算回路出力は、前記第
1の実施例の演算回路出力と同一となる。尚、本実施例
における下限境界値を保持するレジスタ501〜50
4、405の内容を見てみると、iビット長コードの下
限境界値をiビットで保持している。
【0060】よって、図9に示すように、iビット長コ
ードに対する下限境界値をiビットで表現することも可
能である。
【0061】(第3の実施例)図9に示された各ビット
長コードの下限境界値は、最下位ビット(LSB)がす
べて“0”であるが、これは一般のハフマンコードにつ
いても言えることである。最下位ビットが“0”と決ま
っていれば、それを保持する必要も無く、該ビット部分
の減算も省略出来る。それを実現したのが、本発明の第
3の実施例であり、その構成を図10に示す。
【0062】本実施例と図8に示した第2の実施例との
違いは以下の2点である。
【0063】iビット長コード(i=2、3、4、
5、6)の下限の境界値を保持するレジスタ601〜6
05は、0である最下位ビット(LSB)を除いたもの
を保持すればよいので、前記第2の実施例よりもさらに
1ビット少なくて済み、それぞれ1ビット、2ビット、
3ビット、4ビット、5ビットとなった。
【0064】6ビットの入力データから上記下限の境
界値を減算する減算器621〜625は前記第2の実施
例よりも1ビット少なくて済み、それぞれ1、2、3、
4、5ビットとなった。但し、第2のセレクタ452の
入力すべき減算結果は、前記第2の実施例と同様それぞ
れ2、3、4、5、6ビット必要であるため、各シフタ
462〜465から出力されるLSBあるいは入力デー
タのLSBを上記減算器を通さずに、該減算器のLSB
に付加して、所望のビット数を得ている。
【0065】上記レジスタ601〜605および減算器
621〜625以外のブロックは、前記第1、第2の実
施例と同じである。
【0066】本実施例は、図9に示された下限境界値の
冗長性(LSBがすべて“0”)を基に第2の実施例の
演算回路(図8)から、冗長性を取り除いたものである
ため演算結果は当然、前記第2の実施例と同じになる。
【0067】(第4の実施例)これまで述べた3つの実
施例(第1〜第3の実施例)は、ハフマンコードの最大
コード長が6ビットの場合、何の矛盾も無くうまく動作
する。
【0068】言い替えると、最大コード長が6ビットで
ありさえすれば、任意のハフマンコード体系をうまく復
号処理することが可能である。
【0069】しかし、最大コード長が6ビットで無い場
合、すなわち、最大コード長が5ビット以下の時、うま
く動作しない。(最大コード長が7ビット以上のものは
論外)例えば、ハフマンコード体系が図11に示すよう
な時、前述したルールに従って求めた各コード長に対す
る下限境界値(6ビット表示)は図12のようになり、
6ビット長ハフマンコードの下限境界値を6ビットだけ
で見ると“000000”になってしまう。その結果、
どのハフマンコードも6ビット以上の長さがあると判定
されてしまうことになる。
【0070】この誤判定を避けるには、以下に示す3つ
の方法が考えられる。第1の方法は、第1の実施例(図
4)において、下限境界値を保持するレジスタ405の
内容を“111111”にすると共に、前記値を検出す
る手段を新たに設け、該検出結果で、前記下限境界値と
入力データの比較結果を修正し、必ず(前記下限境値)
>(入力データ)という関係を表わす比較結果を出力す
るようにする。
【0071】第2の方法は、第1の実施例(図4)にお
いて、下限境界値を保持するレジスタ401〜405の
ビット長を6ビットから7ビットに拡張して、下限境界
値の上限を“1000000”まで許し、6ビットの入
力データの最上位に“0”を付加して7ビット化し、前
記7ビットの下限境界値と比較するものである。
【0072】第3の方法は、上記第2の方法と同様、下
限境界値を保持するレジスタを7ビットに拡張して下限
境界値の上限を“1000000”にするが、入力デー
タとの比較は、最上位ビット(MSB)を除いた6ビッ
トで行ない、MSBが“0”の時は、前記6ビットの比
較結果をそのまま入力データと下限境界値の比較結果と
し、MSBが“1”の時は、前記6ビットの比較結果に
かかわらず、(下限境界値)>(入力データ)という関
係を表わす比較結果を出力するようにする。
【0073】図13に本発明の第4の実施例の上記第1
の方法を実現する演算回路を示す。但し、コード番号を
保持するレジスタ411〜415、プライオリティエン
コーダ453から、第1のセレクタ451、第2のセレ
クタ452及びそれらより出力側の構成は、すべて図4
と同じなので、図示を省略する。
【0074】第1の実施例(図4)に対して、本実施例
で増加したブロックは、701〜705の“11111
1”検出ブロックと、711〜715の2入力OR回路
だけである。
【0075】最大コード長がSビットのハフマンコード
を復号化する時、S+1ビット以上6ビット以下の下限
の境界値を保持するレジスタ(401〜405の一部)
には“111111”をセットして、前記“11111
1”検出ブロック701〜705でそれを検出し、OR
素子711〜715から“1”を出力する。これによ
り、Sビット以下の下限の境界値との比較のみが有効と
なり復号が可能となる。
【0076】本実施例の考え方は、第2の実施例(図
8)にも容易に適用できる。第2の実施例ではiビット
コードの下限の境界値はiビット長のレジスタに保持し
ているので、前述の“111111”をセットするとい
う動作の替わりにiビット長のレジスタをオール“1”
にセットするという動作を行なう。そして、そのオール
“1”という値を検出して、OR素子711〜715か
ら“1”を出力することで、Sビット以下の下限の境界
値との比較のみを有効にすることが出来る。
【0077】図14は本発明の第4の実施例の上記第2
の方法を実現する演算回路を示す。図13と同様レジス
タ411〜415、プライオリティエンコーダ453、
第1、第2のセレクタ451、452等は省略する。
【0078】第1の実施例(図4)に対して、本実施例
で変更になった点は、下限境界値を保持するレジスタ7
31〜734を7ビット化した(前は6ビット)こと
と、入力データの減算を7ビットで行なうため、減算器
741〜745に7ビット幅の減算器を使用したことで
ある。よって、本実施例では、最大コード長がSビット
のハフマンコードを復号化する時、S+1ビット以上6
ビット以下の下限境界値として“1000000”を保
持することにより、任意の入力データ(6ビット)に対
して、(上記下限境界値)>(入力データ)の関係を成
立せしめ、Sビット以下コードの下限境界値との比較の
みを有効にすることができ、復号が可能となる。
【0079】図15は本発明の第4の実施例の上記第3
の方法を実現する演算回路を示す。図13と同様レジス
タ411〜415、プライオリティエンコーダ453、
第1、第2のセレクタ451、452等は省略する。
【0080】本実施例は図14の実施例と同じ方式で各
ビット長コードの下限境界値を保持する。しかし入力デ
ータとの減算処理は下位6ビットのみで行ない、最上位
ビット(MSB)は、図13の実施例のように、2入力
OR711〜715で、減算器から出力されるサインビ
ットとの間で論理和演算がなされる。この構成によって
も、最大コード長以下の下限境界値との比較のみを有効
にでき、復号が可能となる。
【0081】尚、図14及び図15に示した実施例を第
2、第3の実施例に応用することも容易にできる。
【0082】(第5の実施例)本発明の第5の実施例を
図16に示す。
【0083】これまでに述べた4つの実施例はすべて、
入力データと下限境界値を比較する機能と該入力データ
と該下限境界値との差分値を求める機能とを減算器のみ
で実現していた。そのため、入力データと複数の下限境
界値を並列に比較するには、減算器が複数必要であっ
た。
【0084】しかしながら、上述のごとく、減算器は比
較機能と差分値演算機能の両方を有するため単なる比較
器に比べて、ハードウェアの規模が2〜3倍大きい。そ
のような減算器を複数用いることは、復号化装置のコス
トの増大につながる。
【0085】そこで本実施例では、比較する機能と差分
値を求める機能を分離して、それぞれを比較器、減算器
で実現し、比較器は複数使用するが減算器は1つしか使
用しない、そういったコード番号・コード長演算部を提
供する。
【0086】復号するハフマンコードは、第1の実施例
と同じコード体系(図5、図6)とする。図16におい
て、801〜805は上記複数の比較器であり、807
は上記1つの減算器である。また、809はコード長信
号に基づいて、シフト量が制御されるシフタであり、8
10は第1のセレクタ451と同じ選択動作をする第2
のセレクタである。その他のブロックは図4(第1の実
施例)における同一番号ブロックとまったく同じ機能を
有する。
【0087】ここで、図16の回路の動作を説明するた
めに、第1の実施例の動作説明の時と同様、端子420
に“111010”という6ビットデータを入力する。
この6ビットデータは、レジスタ401〜405に保持
された2〜6ビット長コードの下限の境界値の全てと、
比較器801〜805において比較される。それぞれの
比較器にはA入力端子とB入力端子があり(A入力デー
タ)(B入力データ)の時、“0”を出力する。よっ
て、比較器801〜805の出力信号は、第1の実施例
(図4)における減算器421〜425のサインビット
出力と同じ値となり、信号線441〜446の値、第1
セレクタへの出力信号、プライオリティエンコーダへの
出力信号等も同じ値になる。
【0088】第2のセレクタ810は、第1の実施例
(図4)における第2のセレクタ452に対して、入力
される信号の数や各信号のビット数が異なるため、前記
第1の実施例は直接参考にならない。すでに述べたよう
に、該第2のセレクタ810は、第1のセレクタ451
と同じ選択動作をするので、前記入力データに対して、
レジスタ403から送られるデータ(“11000
0”)が選択され、“110000”が出力される。そ
して、この値“110000”は減算器807の(−)
側端子に入力される。該減算器807の(+)側端子に
は、端子420から入力された6ビットのデータ“11
1010”が入力されており、該減算器807におい
て、111010−110000という減算が実行さ
れ、“001010”という6ビット信号が出力され
る。この出力信号は次のシフタ809に入力される。該
シフタ809には、シフト量を制御する信号としてプラ
イオリティエンコーダ453からコード長信号が入力さ
れていて、コード長=tの時(6−t)ビット右へ算術
シフトされ、さらに下位4ビットのみが出力される。こ
の場合、コード長=4なので、シフタ入力データ“00
1010”は2ビット右へシフトされて、“00001
0”となり、下位4ビットの“0010”がシフタ80
9より出力される。この出力は加算器473にて、第1
のセレクタ451の出力信号“0011”と加算され0
1012 =5が端子475から出力される。
【0089】結局、前記6ビット入力データ(1110
10)に対して、コード長=4、コード番号=5が本実
施例の構成においても先に説明した実施例と同様に出力
される。
【0090】尚、本実施例に対して、前述の第2〜第4
の実施例の技術を組み合わせて複数適用することが可能
である。但し、第2〜第3の実施例の技術を適用した場
合には少し、注意を要する。それは、シフタ809の配
置箇所を減算器807の出力側から(+)端子入力側に
変更する必要があるということである。
【0091】(第6の実施例)本発明の第6の実施例を
図17に示す。
【0092】本実施例の特徴は、入力データと下限境界
値を比較する機能と、該入力データと該下限境界値との
差分値を求める機能とを1つの減算器で実現したところ
にある。
【0093】よって、前記第5の実施例より、さらにハ
ードウェア規模を小さくできる。但し、1つのハフマン
コードを復号するための処理時間が長くなる。最大コー
ド長が2k ビットのハフマンコードを復号するのにk回
の比較動作を1つの減算器で行なう必要があるからであ
る。
【0094】これまでに述べた実施例から分かるよう
に、コード番号を演算で求める際に、最後に2つの値が
加算される。1つは下限境界値に対応するコード番号で
もう1つは入力データ(これから復号するハフマンコー
ド)と下限境界値との差分値である。入力データと下限
境界値との差分値の求め方はいろいろな方法がある(前
述の実施例がそれを表わしている)のに対して、下限境
界値に対応するコード番号の求め方は基本的に、複数の
下限境界値それぞれに対応するコード番号を複数のレジ
スタで保持し、それらのレジスタ出力をセレクタで選択
する(セレクタの構成方法はいくつか考えられるかも知
れないが、大差は無いと考える)だけで、工夫の余地が
ほとんど無い。よって本実施例では、コード長を求める
部分及び入力データと下限境界値との差分値を求める部
分のみを示し、他は省略する。
【0095】本実施例では、最大コード長をk=3、す
なわち8ビットとする。この場合、比較対象となる下限
境界値の数は7つ(2〜8ビットに対応)となり該下限
境界値はレジスタ822〜828に保持される。
【0096】レジスタ822〜828に保持された7つ
の下限境界値はセレクタ831〜837によって、1つ
の下限境界値が選択され、それが減算器841の(−)
側端子に入力される。一方、8ビットの入力データ(最
大コード長が8ビットなので、入力データも8ビット必
要)が端子821から入力され、前記減算器841の
(+)側端子に送られる。該減算器841にて(8ビッ
ト入力データ)−(選択された下限境界値)という演算
(この演算により同時に比較も行なわれる)が実行さ
れ、サインビットは信号線843に差分値は信号線84
5に出力される。サインビットはすでに述べたように、
減算器841に入力される2つのデータの比較情報を有
しているため、信号線843をインバータ847で反転
した信号849を比較結果として、3つのラッチ851
〜853に別々のタイミングで取り込む。該ラッチ85
1〜853は、初期設定ですべて“0”にクリアされた
後、前述の比較結果をラッチ853、852、851の
順に逐次取り込み、ラッチ853の出力がMSBラッチ
851の出力がLSBとなる3ビットの信号となる。
【0097】この3ビットの信号はコード長を表わし、
端子871に出力されると共にシフタ855にも与えら
れる。また、ラッチ851〜853に取り込まれた比較
結果はセレクタ831〜837にフィードバックされる
が、その際にOR回路861〜863により他の信号8
64〜866が合成される。該信号864〜866は、
セレクタ制御信号881〜883を1つずつ強制的に
“1”にするためのもので、端子869に入力される正
極性のパルスにより、最初のサイクルでは、信号866
のみが“1”となり、他の信号864、865は“0”
である。前記パルスはD型フリップフロップ等の遅延素
子868、867により、それぞれ1サイクルずつ遅延
され、2サイクル目は信号865のみが3サイクル目は
信号864のみが“1”となる。
【0098】尚、端子871から出力されるコード長情
報は、(実際のコード長)−1を表わしている。すなわ
ち、実際のコード長が8ビットの時、該コード長情報は
“111”となり、1ビットの時は“000”となる。
【0099】本実施例は2分法の考えに基づいて、コー
ド長情報をMSB側から1ビットずつ求めるものであ
り、上記ハードウェアによりそれが実行される。まず、
最初のサイクルでは、3つのセレクタ制御信号881〜
883の内、信号881のみが“1”、882と883
が“0”になり、セレクタ831〜837は図17に示
したとおりの選択動作を行ない、レジスタ825で保持
している下限境界値が選択され、減算器841の−側端
子に入力される。端子821から入力された8ビットデ
ータは該減算器の+側端子に入力されて、上記下限境界
値と比較される。
【0100】該比較結果は、サインビットとして信号線
843に出力され、インバータ847で反転された後、
ラッチ853に取り込まれる。サインビットを反転した
信号849の値が“1”の時(8ビット入力データ)
(選択された下限境界値)を表わし、次のサイクルで
は、該下限境界値より小さな境界値(この場合はレジス
タ822〜824で保持している下限境界値)と比較す
る必要が無くなる。よって、セレクタ837は、H側の
端子を選択し続けるように制御される。これは、ラッチ
853に取り込んだ信号をOR回路863を経由して該
セレクタ837に送ることにより実現される。
【0101】逆に、サインビットを反転した信号849
の値が“0”の時(8ビット入力データ)<(選択され
た下限境界値)を表わし、次のサイクルでは、該下限境
界値以上の境界値(レジスタ825〜828の出力)と
比較する必要が無くなる。よって、セレクタ837はL
側の端子を選択し続けるように制御される。これはラッ
チ853に“0”を取り込むことにより実現される。
【0102】ここでは、サインビットを反転した値号の
値が“1”であったものとして、次のサイクルに進む。
次にサイクルでは、信号882に新たに“1”になり、
セレクタ835、836がL側端子からH側端子に切り
換わる。その結果、レジスタ827で保持している下限
境界値が選択され、減算器841の−側端子に入力され
る。
【0103】該減算器821の+側端子には前サイクル
と同じ8ビットデータが入力されていて、上記下限境界
値と比較され、該比較結果はインバータ847を経由し
てラッチ852に取り込まれる。該ラッチに取り込まれ
た信号が“0”だとすると、次のサイクルでは、信号8
82は“0”に戻り、セレクタ835、836がH側端
子からL側端子に切り換わる。そして、信号線883が
新たに“1”になり、セレクタ831〜834がL側端
子からH側端子に切り換わる。その結果、レジスタ82
6で保持している下限境界値が選択され、減算器841
の−側端子に入力される。
【0104】該下限境界値は、前サイクルと同様8ビッ
ト入力データと比較され、該比較結果はインバータ84
7を経由して、ラッチ851に取り込まれる。該ラッチ
に取り込まれた信号が前サイクルと同様“0”だとする
と、次のサイクル(4サイクル目)では信号883は
“0”に戻りセレクタ831〜834もH側端子からL
側端子に切り換わる。
【0105】以上述べた3回の比較結果から、8ビット
入力データのハフマンコードは、レジスタ825に保持
されている5ビットの下限境界値以上で、レジスタ82
6に保持されている6ビットコードの下限境界値より小
さいことが分かり、コード長が5ビットと判定される。
該コード長を示す情報“100”はラッチ853、85
2、851に保持され、端子871に出力される。
【0106】3回の比較動作が終了した第4サイクルで
は、最終的にレジスタ825が保持する5ビットコード
の下限境界値がセレクタ831〜837をセットするこ
とにより選択され、減算器841にて(入力データ)−
(該下限境界値)という減算が行なわれ、その差分値が
信号線845に出力される。そして、該信号はシフタ8
55において、コード長情報に応じて、ビットシフト処
理が施され、端子873に出力される。
【0107】(第7の実施例)本発明の第7の実施例を
図18に示す。
【0108】前述の第6の実施例では、最大8ビット長
のハフマンコードを復号するのに、3回の比較と1回の
減算を行なうため4サイクルの処理時間を要した。本実
施例では、減算器841で比較処理される時に同時に発
生する減算結果を保持しておき、それを有効に活用する
ことにより、1つのハフマンコードを3サイクルで復号
するものである。
【0109】図18において、891、892は上記減
算結果を保持するための、それぞれ8ビットのD型フリ
ップフロップ・レジスタ、893〜895は8ビット入
力データと選択された下限境界値との比較結果により制
御されるセレクタであり、その他のブロックは図17と
まったく同じである。
【0110】第1サイクル、第2サイクルの動作説明は
省略し、第3サイクルの状態から説明する。第3サイク
ルでは、第1サイクルでの減算結果がレジスタ892
に、第2サイクルでの減算結果がレジスタ891に保持
されている。そして、コード長情報の最上位ビットはラ
ッチ853から、2番目のビットはラッチ852から、
最下位ビットはインバータ847から出力されている。
ここで、コード長情報が“XX1”(Xは任意)の時
は、第3サイクル目に比較対象となった下限境界値との
差分値(減算器841の出力845)がそのまま有効に
なるため、セレクタ895で該差分値が選択され、シフ
タ855に送られる。
【0111】一方、コード長情報が“X10”の時は、
第2サイクル目に比較対象となった下限境界値との差分
値が有効になるため、セレクタ894、895により、
レジスタ891に保持された差分値が選択され、シフタ
855に送られる。
【0112】また、コード長情報が“100”の時は、
第1サイクル目に比較対象となった下限境界値との差分
値が有効になる(前述の第6の実施例で説明した動作
は、これに該当する)ため、セレクタ893〜895に
より、レジスタ892に保持された差分値が選択され、
シフタ855に送られる。
【0113】また、コード長情報が“000”の時は、
コード長は1ビットであり、下限境界値がゼロになるた
め、端子821への8ビット入力データがそのまま差分
値になるので、該入力データがセレクタ893〜895
により選択されシフタ855に送られる。
【0114】シフタ855に送られた差分値は、前述の
第6の実施例と同様、コード長情報に応じて、シフト処
理が施され端子873に出力される。
【0115】(第8の実施例)本発明の第8の実施例を
図19に示す。
【0116】本実施例は、前述の第7の実施例と同じ処
理をより少ないハードウェアで行なうものである。
【0117】同図において、896は差分値を保持する
ためのD型フリップフロップ・レジスタである。897
は端子866から入力される信号によって制御されるセ
レクタで、第1サイクル目のみH側が選択され第2、第
3サイクルではL側が選択されるような信号が入力され
る。
【0118】898はインバータ847から出力される
比較結果の信号849によって制御されるセレクタであ
る。
【0119】第1サイクルの比較結果(信号849)が
“1”の時は減算器841から出力される差分値が
“0”のときは8ビット入力データが、夫々セレクタ8
97、898により選択され、レジスタ896に送られ
る。
【0120】第2サイクルでは、第1サイクルにおける
上記レジスタ896への入力が該レジスタ896に取り
込まれて出力され、セレクタ897を経由して、セレク
タ898のL側端子に送られる。そして、入力データと
下限境界値の比較結果(信号849)が“0”の時は、
上記レジスタ896の出力がセレクタ898で選択さ
れ、再びレジスタ896に入力される。一方、比較結果
が“1”の時は減算器841で新たに演算された差分値
がセレクタ898で選択され、レジスタ896に入力さ
れる。
【0121】更に、第3サイクルでは、第2サイクルと
同様にセレクタ897、898が動作し、セレクタ89
8で選択された信号はシフタ855に送られ、該シフタ
でコード長情報に応じたシフト処理が施され、端子87
3に出力される。
【0122】上述の動作により、レジスタ1つで、前記
第7の実施例と同等の処理が実現できる。
【0123】(第9の実施例)本発明の第9の実施例を
図20に示す。
【0124】前述の第6〜第8の実施例では、減算器を
1つ使用し、最大8ビット長のハフマンコードを復号す
るのに3サイクルないしは4サイクルの処理時間を必要
とした。
【0125】本実施例では、減算器より大幅に回路規模
の小さい比較器を3個追加することにより、多少演算処
理時間は長くなるが、1サイクルで復号出来るようにし
た。同図において、901〜903が追加した3個の比
較器である。3つの比較器の配置場所は、前述の第6〜
第8の実施例における3回の比較処理と等価になるよう
に定めてある。そして、各比較器の出力でセレクタ83
1〜837が制御される。比較901の出力はコード長
情報の最上位ビットとして、比較902の出力はコード
長情報の2番目のビットとして、また、比較器903の
出力はコード長情報の最下位ビットとして端子871か
ら出力される。セレクタ837で選択された下限境界値
は減算器841に入力され、8ビット入力データとの間
で減算処理が行なわれ、差分値がシフタ855に送られ
る。最後に、該シフタでコード長情報に応じたシフト処
理が施され、端子873に出力される。
【0126】(第10の実施例)本発明の第10の実施
例を図21に示す。
【0127】本発明も前述の第9実施例と同様、減算器
を1つと複数の比較器を使用することにより、1サイク
ルで復号できるようにした。
【0128】但し、前述の第9の実施例のように1つの
比較器からコード長情報の1ビットを出力する構成では
なく、3つの比較器の出力からコード長情報の2ビット
を生成する構成になっている。
【0129】図21には、最大16ビット長のハフマン
コードを復号するためのコード長・コード番号演算部の
一部を示してある。
【0130】コード長情報は4ビットあり、端子105
3に出力され、コード番号を求めるのに必要な差分値は
端子1052に出力される。コード長は上述のごとく2
ビット単位で生成され、第1のプライオリティエンコー
ダ1028で上位2ビットが、第2のプライオリティエ
ンコーダ1029で下位2ビットが生成される。各プラ
イオリティエンコーダ1028、1029にはそれぞれ
3つの比較器の出力が入力される。即ち、第1のプライ
オリティエンコーダ1028には比較器1021〜10
23の3つの出力が入力され、第2のプライオリティエ
ンコーダ1029には比較器1024〜1026の3つ
の出力が入力されている。ハフマン復号される16ビッ
トの入力データは端子1001から入力される。2ビッ
ト長ハフマンコードの下限境界値〜16ビット長ハフマ
ンコードの下限境界値はそれぞれレジスタ1002〜1
016に保持される。
【0131】端子1001から入力された16ビット入
力データは、比較器1021〜1023にて、それぞれ
5ビット長、9ビット長、13ビット長ハフマンコード
の下限境界値と比較され、その比較結果からコード長を
1〜4、5〜8、9〜12、13〜16の4つの範囲の
1つに絞り込む。絞り込んだ結果は第1のプライオリテ
ィエンコーダから出力される2つの信号1061、10
62に反映されて、信号1062によりセレクタ103
1〜1038が制御され、信号1061によりセレクタ
1039〜1042が制御される。その結果、前記セレ
クタ1039〜1042からは、絞り込まれたコード長
の範囲に対応する4つの下限境界値が出力される。該4
つの下限境界値の内、大きい方の3つは比較器1024
〜1026において、さらに、前述の16ビット入力デ
ータと比較され、その比較結果から、最終的に1つのコ
ード長が求められ、セレクタ1043〜1045を通し
て、該コード長に対応した下限境界値が選択され、減算
器1050に入力される。該減算器1050において、
(16ビット入力データ)−(選択された下限境界値)
が演算され、減算結果がシフタ1051に送られ、コー
ド長に対応したシフト処理が施されて、端子1052か
ら出力される。
【0132】(第11の実施例)本発明の第11の実施
例を図22に示す。
【0133】本発明は、第1〜第10の実施例で述べた
コード番号・コード長を演算で求める方式をJPEGに
て提案されたコードの復号化装置に応用したものであ
る。
【0134】従来のJPEG復号化装置(図2参照)に
おける64k×12ビットの復号テーブル104が、コ
ード番号・コード長演算部301とメモリ容量がわずか
256バイトの復号テーブルに置き替わる。
【0135】本実施例は、本発明のコード番号・コード
長演算部を用いることで、新たに考えられる復号装置の
構成の一例を示したものであり、本復号装置の各要素は
これまでにいくつかの実施例を用いて既に説明したもの
である。
【0136】(第12の実施例)本発明の第12の実施
例を図23に示す。
【0137】本実施例は前述の第11の実施例の復号処
理スピードを高速化したものである。その高速化のため
に、本実施例では、コード長とSSSSをあらかじめ加
算した値を格納した第2のテーブル1101を用いてい
る。
【0138】前述の第11実施例では、コード長とSS
SSを加算した結果を得るために、(図22参照)SS
SSを復号テーブル303から読み出し、それに演算部
301からのコード長を加算器204にて加算してい
た。本実施例によれば、この加算器204による遅延が
無くなり、その分、復号処理速度が早くなる。但し、第
2のテーブルのメモリ容量は256×5ビット(1.2
5kビット)あり、その分だけ、テーブルのメモリ容量
が増加するが、これは、処理速度の向上をとるか、コス
トの低減をとるかの選択の問題である。
【0139】処理速度を少しでも速くしたい用途では、
本実施例のような構成も十分意味がある。
【0140】(第13の実施例)本発明の第13の実施
例を図24に示す。
【0141】本実施例は、以上説明したコード番号・コ
ード長演算部の考え方を符号化装置に応用したものであ
る。
【0142】これまでに述べた第1〜第12実施例にお
けるコード番号の演算方法は下式のように表現できる。
但し、最大コード長は8ビット、復号するハフマンコー
ドのコード長は既にnビットとして求められているもの
とする。
【0143】コード番号=(8ビット入力データ−nビ
ットコード長の下限境界値)×2-8+n+nビットコード
長の下限境界値に対応するコード番号…(1) 上記(1)式において、8ビット入力データとはハフマ
ンコードを含むデータであり、これを8ビットハフマン
コードとおいて、(1)式を変形すると、 8ビットハフマンコード=(コード番号−nビットコー
ド長の下限境界値に対応するコード番号)×28-n +n
ビット長コードの下限境界値…(2) となる。上記8ビットハフマンコードの上位nビットが
実際のハフマンコードである。
【0144】上記(2)式を演算するための回路にコー
ド長を判定する回路を付加したものを図24に示す。同
図において、1201はコード番号が入力される端子、
1202〜1208はそれぞれ2ビット〜8ビット長コ
ードの下限境界値に対応するコード番号を保持するレジ
スタ(1ビットコード長の下限境界境界値はゼロで、そ
れに対応するコード番号もゼロであるため、該情報を保
持するレジスタは不要である)、1212〜1218は
それぞれ端子1201から入力されるコード番号と上記
レジスタ1202〜1208から出力されるコード番号
とを比較する比較器、1220は上記比較器1212〜
1218の出力を受けとり、端子1201から入力され
たコード番号が何ビットコード長のハフマンコードに対
応するのかを判定するプライオリティエンコーダであ
る。該プライオリティエンコーダ1220は、コード長
情報nを端子1246に出力すると共に、第1のセレク
タ1221第2のセレクタ1223、シフタ1242に
も該コード長情報を送る。
【0145】第1のセレクタ1221はレジスタ120
2〜1208から出力されるコード番号から、上記コー
ド長情報に基づき、1つのコード番号を選択し、減算器
1241の(−)側端子に入力する。該減算器1241
の(+)側端子には端子1201から入力されたコード
番号が与えられ、該減算器1241にて(入力コード番
号)−(nビット長コードの下限の境界値に対応するコ
ード番号)が演算される。減算結果はシフタ1242に
送られ、ここで28-n を乗算するのと等価なビットシフ
ト処理が施された後、加算器1243に送られる。一
方、レジスタ1232〜1238には、2ビット〜8ビ
ット長コードの下限境界値が保持され、該下限境界値は
第2のセレクタ1223に送られる。
【0146】第2のセレクタ1223も第1のセレクタ
1221と同様、プライオリティエンコーダ1220か
ら送られたコード長情報nに基づき、nビット長コード
に対応した下限境界値を選択し、加算器1243に出力
する。
【0147】加算器1243で、入力された2つの値を
加算すると、(2)式に示した演算結果が得られ、該演
算結果はハフマンコードとして端子1245に出力され
る。既に述べたように、端子1245から出力される信
号は8ビットであるが、その内の上位nビットが、符号
化されたハフマンコードである。
【0148】図24に示したコード番号からハフマンコ
ードを演算するブロックを用いると、JPEGコードの
ハフマン符号化処理は図25に示す構成となり、符号化
テーブルに必要なメモリ容量は256バイトで済む。
【0149】この符号化テーブルの変換内容は、前述の
復号化装置で用いる256バイトの復号テーブルの変換
内容とまったく逆の関係にある。
【0150】また、図24では、プライオリティエンコ
ーダ1220の出力をセレクタ1221、1223の選
択制御信号として用いているが、図16に示すコード番
号・コード長演算のように複数ある比較器の出力から連
続する“01”出力を検出して、それをセレクタの制御
信号として用いることもできる。
【0151】(第14の実施例)本発明の第14の実施
例を図26に示す。
【0152】図24に示した符号化装置におけるハフマ
ンコード演算ブロックと図16に示した復号装置におけ
るコード番号・コード長演算ブロックは、先ほど述べた
ように、2つのセレクタへ入力される選択制御信号の生
成方法が異なるのみで、その他のハード的な構成要素は
ほとんど同じである。よって、図24に示したハフマン
コード演算回路へ少し回路を付加するのみで、上記2つ
の演算を行なうことが可能な演算回路を実現できる。
【0153】まず、上述のセレクタ制御信号以外に、図
24のハフマンコード演算ブロックと図16のコード番
号・コード長演算ブロックの間にある違いを以下に列挙
してみる。
【0154】各ビット長コードの下限境界値の格納場
所(レジスタ)と、各ビット長コードの下限境界値に対
応するコード番号を格納する場所(レジスタ)が入れ替
わっている。
【0155】減算器から出力された値に施すビットシ
フト処理の向きが反対である。(符号化時は左シフトで
あるのに対して、復号化時は右シフトである。)以上の
違いに基づいて、図24のハフマンコード演算ブロック
を修正したものを図26に示す。同図において、130
1は符号化モードか復号化モードを表わす信号ENCを
入力する端子であり、符号化モード時には“1”(Hi
gh)が入力される。
【0156】1302〜1316はそれぞれ上記モード
信号ENCによって切り換わる2入力1出力のセレク
タ、1320は復号化モード用に追加された右シフト用
のシフタである。
【0157】その他の要素ブロックは前記図24の同一
番号ブロックと同じである。
【0158】本実施例の演算ブロックを用いれば、EN
C=“1”の時、符号化処理におけるハフマンコード演
算ブロックとして働き、ENC=“0”の時、復号化処
理におけるコード番号・コード長演算ブロックとして働
く。
【0159】(第15の実施例)本発明の第15の実施
例を図27に示す。
【0160】前述の第14実施例では、各ビット長コー
ドの下限境界値と該下限境界値に対応するコード番号を
切り替えるために14個のセレクタ1302〜1315
を用いていたが、符号化モードと復号化モードに応じて
レジスタ1202〜1208、1232〜1238に保
持する内容を変更することが出来れば、上述の14個の
セレクタは不要となる。それを示したのが図27であ
る。レジスタ1202〜1208、1232〜1238
は、制御用のCPU等によって、上記下限境界値やコー
ド番号を設定する内容を、符号化モードと復号化モード
に応じて変更する。
【0161】(第16の実施例)本発明の第16の実施
例を図28に示す。前記第14または前記第15の実施
例を用いれば、1つの演算回路ブロックを符号化処理と
復号化処理のどちらにも利用することができる。140
0が該演算部である。よって、図28に示す構成におい
て、端子1301から入力するENC信号を“1”(H
igh)にすれば、本実施例はハフマン符号化装置とし
て働き、上記ENC信号を“0”(Low)にすれば、
ハフマン復号装置として働く。
【0162】ENC信号が“1”の時、符号化する前の
固定長符号が端子1110より入力され、符号化テーブ
ル1120によりコード番号に変換される。該コード番
号はセレクタ1401で選択され、演算部1400に送
られる。該演算部1400は上記ENC信号の入力によ
りハフマンコード演算回路として動作するよう設定さ
れ、端子1140には演算で求めたハフマンコードを端
子1150にはコード長を出力する。
【0163】一方、ENC信号が“0”の時、符号化さ
れたハフマンコードが端子101より入力されバッファ
102アンパッキング回路103、及びセレクタ140
1を通して、復号済みのコードが取り除かれた残りのデ
ータの先頭例えば16ビットが演算部1400に送られ
る。このとき該演算部1400は、上記ENC信号の入
力により、コード番号・コード長演算回路として動作す
るよう設定され、コード番号を復号テーブル303に、
コード長をアンパッキング回路103に送る。復号テー
ブル303は入力されたコード番号を符号化前の固定長
符号に変換し、端子105に出力する。
【0164】(第17の実施例)本発明の第17の実施
例を図29に示す。
【0165】前記第16の実施例(図28)において、
符号化テーブル1120で行なう変換と復号テーブル3
03で行なう変換内容は、まったく逆の関係にある。す
なわち、符号化テーブル1120では符号化前の固定長
符号をコード番号に変換し復号テーブル303ではコー
ド番号を符号化前の固定長符号に変換する。上記2つの
変換は、基本的に固定長コードから固定長コードへの変
換であるため入力ビット数と出力ビット数は同じで、上
記の2つのテーブル容量は等しい。よって、図29に示
す如く、上記の2つのテーブルをCPU等により書き換
え可能な1つのテーブル1402にすることが可能であ
る。
【0166】ENC信号が“1”の時、該テーブル14
02には符号化テーブルをロードし、ENC信号が
“0”の時、該テーブル1402に復号テーブルをロー
ドする。該テーブル1402を用いて、符号化時、復号
時に所望の処理が行なえるように構成したのが本実施例
(図29)である。
【0167】ENC信号が“1”の時、符号化する前の
固定長符号が端子1110より入力され、セレクタ14
03で選択されて、テーブル1402に入力される。該
テーブルにおいて、符号化前の固定長符号はコード番号
に変換されて、セレクタ1401を通して演算部140
0に入力される。該演算部1400は、前記第16の実
施例と同じ働きをする。よって、該演算部1400に入
力されたコード番号からハフマンコードとコート長が演
算され、ハフマンコードは端子1140に、コード長は
端子1150に出力される。
【0168】一方、ENC信号が“0”の時、符号化さ
れたハフマンコードが端子101より入力され、バッフ
ァ102アンパッキング回路103及びセレクタ140
1を通して、これから復号すべきデータの先頭数ビット
が演算部1400に入力される。該演算部1400は入
力されたデータからコード番号・コード長を演算で求
め、コード長はアンパッキング回路103に、コード番
号はセレクタ1403を通して、テーブル1402に送
られる。テーブル1402は受けとったコード番号を符
号化前の固定長符号に変換し、端子105に出力する。
【0169】
【発明の効果】以上説明したように、本発明によれば、
ハフマンコードの復号化または符号化に必要なメモリ容
量を大幅に減らすことができ、コストの削除を図ること
ができる。
【0170】
【図面の簡単な説明】
【図1】従来のハフマンコード復号化装置を示す図。
【図2】従来のJPEGコードの復号化装置を示す図。
【図3】本発明を用いたハフマンコード復号装置を示す
図。
【図4】本発明の第1の実施例を示す図。
【図5】ハフマンコードとコード番号との対応を示す
図。
【図6】i=1、2、3、4、5、6に対し、iビット
長コードの下限境界値、それに対応するハフマンコー
ド、さらにそれに対応するコード番号を示す図。
【図7】ハフマンコードを[0000002 、100
00002 ]の数値線上に配置した図。
【図8】本発明の第2の実施例を示す図。
【図9】iビット長コードに対する下限境界値をiビッ
トで表わした図。
【図10】本発明の第3の実施例を示す図。
【図11】別のハフマンコード体系を示す図。
【図12】図11に示されたハフマンコード体系におけ
る各ビット長の下限境界値を示す図。
【図13】本発明の第4の実施例を示す。
【図14】本発明の第4の他の実施例を示す図。
【図15】本発明の第4の他の実施例を示す図。
【図16】本発明の第5の実施例を示す図。
【図17】本発明の第6の実施例を示す図。
【図18】本発明の第7の実施例を示す図。
【図19】本発明の第8の実施例を示す図。
【図20】本発明の第9の実施例を示す図。
【図21】本発明の第10の実施例を示す図。
【図22】本発明の第11の実施例を示す図。
【図23】本発明の第12の実施例を示す図。
【図24】本発明の第13の実施例を示す図。
【図25】本発明を用いた時のJPEGコードのハフマ
ン符号化処理を示す図。
【図26】本発明の第14の実施例を示す図。
【図27】本発明の第15の実施例を示す図。
【図28】本発明の第16の実施例を示す図。
【図29】本発明の第17の実施例を示す図。
【符号の説明】
301 コード番号・コード長演算部 303 復号テーブル 40 レジスタ 421 減算器 461 シフタ 451 セレクタ 453 プライオリティエンコーダ 473 加算器 801 比較器 1120 符号化テーブル 1402 符号化復号化テーブル 1400 コード番号・コード長・ハフマンコード演算
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 7/40 H04N 1/41

Claims (16)

    (57)【特許請求の範囲】
  1. 【請求項1】 ハフマンコードを入力する入力手段と、 前記ハフマンコードを複数のコード長に対応する複数の
    基準値と比較した結果に基づいて、前記ハフマンコード
    のコード長を演算するコード長演算手段と、 前記ハフマンコードと前記ハフマンコードのコード長に
    対応する基準値とに基づいて、前記ハフマンコードをJ
    PEG方式に準拠した固定長符号に変換するためのコー
    ド番号を演算するコード番号演算手段とを有することを
    特徴とする復号化装置。
  2. 【請求項2】 ハフマンコードを入力する入力手段と、 前記ハフマンコードを複数のコード長に対応する複数の
    基準値と比較した結果に基づいて、前記ハフマンコード
    のコード長を演算するコード長演算手段と、 前記ハフマンコードと前記ハフマンコードのコード長に
    対応する基準値とに基づいて、前記ハフマンコードを固
    定長符号に変換するためのコード番号を演算するコード
    番号演算手段と、 前記ハフマンコードに続いて入力された付加情報を出力
    する付加情報出力手段とを有することを特徴とする復号
    化装置。
  3. 【請求項3】 前記固定長符号は、JPEG方式に準拠
    した固定長符号であることを特徴とする請求項2に記載
    の復号化装置。
  4. 【請求項4】 固定長符号に対応するコード番号を入力
    する入力手段と、 前記コード番号を複数のコード長に対応する複数の基準
    値と比較した結果に基づいて、前記固定長符号に対応す
    るハフマンコードのコード長を演算するコード長演算手
    段と、 前記コード番号と前記コード長演算手段によって演算さ
    れたコード長に対応する基準値とに基づいて、前記固定
    長符号に対応するハフマンコードを演算するハフマンコ
    ード演算手段とを有することを特徴とする符号化装置。
  5. 【請求項5】 前記固定長符号は、JPEG方式に準拠
    した固定長符号であることを特徴とする請求項4に記載
    の符号化装置。
  6. 【請求項6】 ハフマンコードを入力する入力工程と、 前記ハフマンコードを複数のコード長に対応する複数の
    基準値と比較した結果に基づいて、前記ハフマンコード
    のコード長を演算するコード長演算工程と、 前記ハフマンコードと前記ハフマンコードのコード長に
    対応する基準値とに基づいて、前記ハフマンコードをJ
    PEG方式に準拠した固定長符号に変換するためのコー
    ド番号を演算するコード番号演算工程とを有することを
    特徴とする復号化方法。
  7. 【請求項7】 ハフマンコードを入力する入力工程と、 前記ハフマンコードを複数のコード長に対応する複数の
    基準値と比較した結果に基づいて、前記ハフマンコード
    のコード長を演算する第1のコード長演算工程と、 前記ハフマンコードと前記ハフマンコードのコード長に
    対応する基準値とに基づいて、前記ハフマンコードを固
    定長符号に変換するためのコード番号を演算するコード
    番号演算工程と、 前記ハフマンコードに続いて入力された付加情報を出力
    する付加情報出力工程とを有することを特徴とする復号
    化方法。
  8. 【請求項8】 前記固定長符号は、JPEG方式に準拠
    した固定長符号であることを特徴とする請求項7に記載
    の復号化方法。
  9. 【請求項9】 固定長符号に対応するコード番号を入力
    する入力工程と、 前記コード番号を複数のコード長に対応する複数の基準
    値と比較した結果に基づいて、前記固定長符号に対応す
    るハフマンコードのコード長を演算するコード長演算工
    程と、 前記コード番号と前記コード長演算手段によって演算さ
    れたコード長に対応する基準値とに基づいて、前記固定
    長符号に対応するハフマンコードを演算するハフマンコ
    ード演算工程とを有することを特徴とする符号化方法。
  10. 【請求項10】 前記固定長符号は、JPEG方式に準
    拠した固定長符号であることを特徴とする請求項9に記
    載の符号化方法。
  11. 【請求項11】 請求項1に記載の復号化装置と請求項
    4または5に記載の符号化装置とを有することを特徴と
    する符号化復号化装置。
  12. 【請求項12】 請求項2に記載の復号化装置と請求項
    4または5に記載の符号化装置とを有することを特徴と
    する符号化復号化装置。
  13. 【請求項13】 請求項3に記載の復号化装置と請求項
    4または5に記載の符号化装置とを有することを特徴と
    する符号化復号化装置。
  14. 【請求項14】 請求項6に記載の復号化方法と請求項
    9または10に記載の符号化方法とを有することを特徴
    とする符号化復号化方法。
  15. 【請求項15】 請求項7に記載の復号化方法と請求項
    9または10に記載の符号化方法とを有することを特徴
    とする符号化復号化方法。
  16. 【請求項16】 請求項8に記載の復号化方法と請求項
    9または10に記載の符号化方法とを有することを特徴
    とする符号化復号化方法。
JP31998993A 1993-12-20 1993-12-20 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法 Expired - Fee Related JP3227292B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP31998993A JP3227292B2 (ja) 1993-12-20 1993-12-20 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US08/985,316 US5841381A (en) 1993-12-20 1997-12-04 Huffman coding/decoding using an intermediate code number
US09/149,274 US6408102B1 (en) 1993-12-20 1998-09-09 Encoding/decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31998993A JP3227292B2 (ja) 1993-12-20 1993-12-20 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法

Publications (2)

Publication Number Publication Date
JPH07177039A JPH07177039A (ja) 1995-07-14
JP3227292B2 true JP3227292B2 (ja) 2001-11-12

Family

ID=18116508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31998993A Expired - Fee Related JP3227292B2 (ja) 1993-12-20 1993-12-20 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法

Country Status (2)

Country Link
US (1) US5841381A (ja)
JP (1) JP3227292B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271016A (ja) * 1997-03-21 1998-10-09 Kawasaki Steel Corp 符号/復号化器
JP4683678B2 (ja) * 1998-07-03 2011-05-18 忠弘 大見 画像信号処理方法、画像信号処理システム、記憶媒体及び撮像装置
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 符号化装置及び方法
US6865299B1 (en) 1999-07-27 2005-03-08 Canon Kabushiki Kaisha Coding apparatus and method
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
US6657569B2 (en) * 2001-04-04 2003-12-02 Honeywell International, Inc. Canonical Huffman encoded data decompression algorithm
EP1271926B1 (en) * 2001-06-18 2015-08-12 Canon Kabushiki Kaisha Image processing method, apparatus and computer program for compression-encoding
CN1320809C (zh) * 2001-08-29 2007-06-06 佳能株式会社 图像处理装置与方法
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
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
JP4366250B2 (ja) * 2003-06-23 2009-11-18 キヤノン株式会社 データ変換処理装置及びプログラム
US6956511B2 (en) * 2004-01-06 2005-10-18 Sharp Laboratories Of America, Inc. Multi-symbol/coefficient decode operation for Huffman codes
JP2006020292A (ja) 2004-06-03 2006-01-19 Canon Inc 情報処理方法、情報処理装置
US7433528B2 (en) * 2004-07-06 2008-10-07 Canon Kabushiki Kaisha Image processing apparatus
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 キヤノン株式会社 データ変換装置及びその制御方法
JP4758494B2 (ja) 2009-04-21 2011-08-31 インターナショナル・ビジネス・マシーンズ・コーポレーション ビット長を符号に変換する回路及び方法
JP2011004338A (ja) * 2009-06-22 2011-01-06 Fujifilm Corp データ復号化装置
US8427347B1 (en) 2011-03-30 2013-04-23 Altera Corporation Dynamic data compression and decompression
US10693495B2 (en) * 2017-10-10 2020-06-23 The Boeing Company Data collection device with efficient data compression
CN111384967B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 数据编码方法
CN110868223B (zh) * 2019-12-06 2023-10-27 广东海洋大学 一种哈夫曼编码的数值运算实现方法及电路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5755668A (en) * 1980-09-22 1982-04-02 Nippon Telegr & Teleph Corp <Ntt> Decoding method for run-length code
US4475174A (en) * 1981-09-08 1984-10-02 Nippon Telegraph & Telephone Public Corporation Decoding apparatus for codes represented by code tree
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
JP3332619B2 (ja) * 1994-11-29 2002-10-07 キヤノン株式会社 復号装置およびその方法
US5714949A (en) * 1995-01-13 1998-02-03 Matsushita Electric Industrial Co., Ltd. Priority encoder and variable length encoder using the same
US5696507A (en) * 1996-05-31 1997-12-09 Daewoo Electronics Co., Inc. Method and apparatus for decoding variable length code

Also Published As

Publication number Publication date
US5841381A (en) 1998-11-24
JPH07177039A (ja) 1995-07-14

Similar Documents

Publication Publication Date Title
JP3227292B2 (ja) 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
JP3332619B2 (ja) 復号装置およびその方法
JP3016987B2 (ja) 信号生成装置とその方法
US5652583A (en) Apparatus for encoding variable-length codes and segmenting variable-length codewords thereof
JPS6148298B2 (ja)
JPH0799812B2 (ja) 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
JP3189876B2 (ja) 可変長符号復号化回路
US6408102B1 (en) Encoding/decoding device
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
JPH0746141A (ja) データフォーマット変換装置及び方法
US6127950A (en) Transmission circuit and reception circuit
JP4537089B2 (ja) 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2710917B2 (ja) ヘッダ検出器及びこれを用いた復号装置
JP3025827B2 (ja) 可変長コード化装置
JPH07200252A (ja) バレルシフタ回路
JP2621535B2 (ja) 符号変換回路
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP3224127B2 (ja) 画像データ変換処理装置
JP2753091B2 (ja) 画像データ伸張回路
JP3239664B2 (ja) 可変長符号復号方法
JPH08167855A (ja) ハフマン復号化回路
JP3247052B2 (ja) 画像データ変換処理方法及び装置
JP3221252B2 (ja) ハフマン復号器
JP2003273746A (ja) 可変長符号復号装置
JP3166696B2 (ja) 可変長符号発生回路

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: 20010821

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

Free format text: PAYMENT UNTIL: 20070831

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080831

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090831

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090831

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100831

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110831

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120831

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120831

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130831

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees