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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
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
ハフマンコードの符号化装置、符号化方法、復号化装
置、復号化方法、符号化復号化装置及び符号化復号化方
法に関する。
は著しい。ディジタル化された静止画信号や動画信号の
圧縮技術としては、JPEG(Joint Photo
graphic Experts Group)やMP
EG(Moving Picture Experts
Group)等により提案された圧縮方式が世界的な
標準として定着しつつある。
e Cosine Transform)を用いて画像
信号を直交変換し変換後の信号で視覚的に目立たない部
分の信号成分を取り除くことでまず情報を減らし、その
後さらに情報を圧縮するためにハフマン符号化等を行な
っている。
じて可変長のコードを割り当てる。即ち、発生頻度の高
い符号ほどビット長の小さなコードを割り当てて符号化
することにより情報を減らすことが出来る。
使用して復号化する場合、該テーブルのメモリ容量は復
号化の処理速度と相反する関係にある。すなわち、
(a)処理速度は遅いがテーブルのメモリ容量を少なく
する方法と、(b)処理速度を速くしてテーブルのメモ
リ容量を多くする方法とにわかれる。(a)の方法の極
端なものは1サイクルで1ビットずつ復号化するもの
で、1つのハフマンコードを復号するのに数サイクルを
要する。該復号化方法は特開昭57−55668号に従
来例として紹介されている。(b)の方法の極端なもの
は1サイクルで1つのハフマンコードを復号するもので
ある。
的な方法、すなわち、1サイクルで2ビットあるいはそ
れ以上のビットを復号化する方法もある。
フマンコードの情報を他の情報に変換することなく、該
情報をそのまま前記テーブルに入力するか、あるいは、
該情報の1部それ以前に復号して得られた情報に連結し
てテーブルに入力するものである。
ドを復号化する従来の復号装置を図1に示す。同図は、
最大コード長が16ビットのハフマンコードを8ビット
の固定長符号に復号するブロック図である。
れたデータを入力する端子、102は該データを一時的
に蓄えるバッファである。ハフマンコードは可変長コー
ドであるため、復号化する際の出力データレートを一定
に保つと入力データレートが一定では無くなるので、該
バッファが必要となる。
を連結し、既に復号化されたデータを取り除いた後の先
頭16ビットを取り出すためのアンパッキング回路、1
04は該16ビットデータ中のハフマンコードを復号化
するための復号テーブル、105は復号化した固定長の
符号(8ビット)を出力する端子、106は復号化した
ハフマンコードのビット長を示す4ビットの信号であ
る。
接表わす場合と(ビット長−1)を表わす場合とがあ
り、この図の例では、(ビット長−1)を表わしてい
る。最大コード長が16ビットの場合、これを直接表わ
すと5ビット必要になるが、0ビットのコード長は存在
しないので1ビットのコード長を4ビットで“000
0”と表現すること、すなわち(ビット長−1)で表わ
すことが可能となる。但し、最大コード長が2のべき乗
でない場合は、どちらで表わしても差がない。該信号1
06は、前記アンパッキング回路103に送られ、復号
化されたデータを取り除くために用いられる。
リ容量が64k×12ビット、すなわち96kバイトに
もなり、大容量のメモリが必要となる。
化装置に適用した時の構成を図2に示す。JPEGコー
ドでも、最大コード長16ビットのハフマンコードを8
ビットの固定長符号(NNNN信号4ビットとSSSS
信号4ビット)に復号化するが、ハフマンコードの間に
付加ビットと称する情報が挿入されていて、復号に際し
てはこの付加ビットを取り出すための機構が必要とな
る。
とすると、図2におけるアンパッキング回路200から
出力する信号は26ビット必要となる。該26ビット信
号の先頭16ビットは復号テーブル104に送られ、図
1と同様8ビットの固定長符号と4ビットのコード長情
報106に変換される。一方、該26ビット信号はシフ
タ201に送られ、前記コード長情報に基づいて、復号
化されたハフマンコードが取り除かれ(これは、該26
ビット信号を前記コード長分だけシフトすることで実現
される)、先頭の10ビットが端子202に出力され
る。尚、出力される該10ビットの信号が全て付加ビッ
ト信号というわけではなく、復号テーブルから出力され
るSSSS信号の値が示す上位数ビットのみが、付加ビ
ット信号である。
して、次のハフマンコードを復号化する際、図1の場合
では、復号化し終ったハフマンコードのビット長分だ
け、アンパッキング回路で取り除けばよかったが、図2
の場合は付加ビット信号も取り除く必要がある。
す信号106と付加ビットのビット長を表わす信号20
3(SSSS信号)とを加算器204で加算し該加算結
果をアンパッキング回路200に送り、1サイクルごと
にハフマンコードと付加ビットの両方を取り除く。
ハフマンコードを高速に復号化しようとすると復号テー
ブルのメモリが大容量になり、次のような欠点があっ
た。
ップ面積が大きくなりコストが高くなる。
かる。
圧縮する情報(画像情報等)ごとに最適なハフマン符号
化を行なうことができない。それをすると、圧縮して、
せっかく減った情報に、それを復号するための復号テー
ブル情報を各画像ごとに持たなければならないが、その
情報が多いため、最適符号化した意味が無くなる。
ために、本発明の復号化装置は、ハフマンコードを入力
する入力手段と、前記ハフマンコードを複数のコード長
に対応する複数の基準値と比較した結果に基づいて、前
記ハフマンコードのコード長を演算するコード長演算手
段と、前記ハフマンコードと前記ハフマンコードのコー
ド長に対応する基準値とに基づいて、前記ハフマンコー
ドをJPEG方式に準拠した固定長符号に変換するため
のコード番号を演算するコード番号演算手段とを有する
ことを特徴とする。また、本発明の復号化装置は、ハフ
マンコードを入力する入力手段と、前記ハフマンコード
を複数のコード長に対応する複数の基準値と比較した結
果に基づいて、前記ハフマンコードのコード長を演算す
るコード長演算手段と、前記ハフマンコードと前記ハフ
マンコードのコード長に対応する基準値とに基づいて、
前記ハフマンコードを固定長符号に変換するためのコー
ド番号を演算するコード番号演算手段と、前記ハフマン
コードに続いて入力された付加情報を出力する付加情報
出力手段とを有することを特徴とする。また、本発明の
符号化装置は、固定長符号に対応するコード番号を入力
する入力手段と、前記コード番号を複数のコード長に対
応する複数の基準値と比較した結果に基づいて、前記固
定長符号に対応するハフマンコードのコード長を演算す
るコード長演算手段と、前記コード番号と前記コード長
演算手段によって演算されたコード長に対応する基準値
とに基づいて、前記固定長符号に対応するハフマンコー
ドを演算するハフマンコード演算手段とを有することを
特徴とする。また、本発明の復号化方法は、ハフマンコ
ードを入力する入力工程と、前記ハフマンコードを複数
のコード長に対応する複数の基準値と比較した結果に基
づいて、前記ハフマンコードのコード長を演算するコー
ド長演算工程と、前記ハフマンコードと前記ハフマンコ
ードのコード長に対応する基準値とに基づいて、前記ハ
フマンコードをJPEG方式に準拠した固定長符号に変
換するためのコード番号を演算するコード番号演算工程
とを有することを特徴とする。また、本発明の復号化方
法は、ハフマンコードを入力する入力工程と、前記ハフ
マンコードを複数のコード長に対応する複数の基準値と
比較した結果に基づいて、前記ハフマンコードのコード
長を演算するコード長演算工程と、前記ハフマンコード
と前記ハフマンコードのコード長に対応する基準値とに
基づいて、前記ハフマンコードを固定長符号に変換する
ためのコード番号を演算するコード番号演算工程と、前
記ハフマンコードに続いて入力された付加情報を出力す
る付加情報出力工程とを有することを特徴とする。ま
た、本発明の符号化方法は、固定長符号に対応するコー
ド番号を入力する入力工程と、前記コード番号を複数の
コード長に対応する複数の基準値と比較した結果に基づ
いて、前記固定長符号に対応するハフマンコードのコー
ド長を演算するコード長演算工程と、前記コード番号と
前記コード長演算手段によって演算されたコード長に対
応する基準値とに基づいて、前記固定長符号に対応する
ハフマンコードを演算するハフマンコード演算工程とを
有することを特徴とする。
す。
ようになる。
ード番号を演算・論理回路により求め、前記コード番号
を復号テーブルで、元の固定長符号に変換することによ
り、前記復号テーブルのメモリ容量を大幅に削減するも
のである。
る。前記固定長符号にハフマンコードを割り当る際に該
固定長符号を生起確率の高い順に並べるが、この並べた
順番に0、1、2と番号付けしたものをコード番号を称
す。
最小限のビット数は、前記固定長符号のビット数より大
きくなることはなく、該固定長符号のビット数以下とな
る。(通常は同じであり、この実施例でも同じビット数
とした。)
号装置の構成を示す。
にコード長をどのような演算・論理回路で求めるのか、
といった説明は図4を用いて後で行なう。また、図1に
示した従来例との比較のため、ハフマンコード長等のビ
ット数は従来例と同じにした。同図において、101〜
103、105、106は従来例と同じブロック、端
子、信号である。また、301はハフマンコードを入力
して、該ハフマンコードのコード番号とコード長を演算
する演算部、302はコード番号を示す8ビットの信
号、303は8ビットのコード番号を8ビットの固定長
符号に変換する復号テーブルである。
りハフマンコードからコード番号を演算で求めれば、復
号テーブル303の入出力ビット数はそれぞれ8ビット
になる。従って、該テーブル303のメモリ容量は、2
56バイトとなり従来の1/384のメモリ容量で足り
る。
ード長を演算で求める演算部301について、図4〜図
7を用いて説明する。但し、説明を簡単にするために、
最長6ビットの9通りのハフマンコードから4ビットの
コード番号と3ビットのコード長を求める小規模な回路
を用いる。
5に示す関係にあるものとする。
ット長コードの下限の境界値、それに対応するハフマン
コード、さらに、それに対応するコード番号を図6に示
す。
界値とは[0000002 、10000002 ]の数値
線上に以下のルールでハフマンコードを配置した時のi
ビット長コードとiビット長未満のコードの境界値(6
ビット)を言う。
00002 の方から並べる。(同じコード長の場合には
値の小さいものから配置する) ルールiビット長コード1個につき、数直線上で1/
2i の領域を占める。(iビット長コードが2個の場
合、占める領域は2×1/2i となる。)上記ルール
に従って、図5に示すハフマンコードを並べた時に、
各ビット長のコードが占める領域を図7に示す。この図
より、上記境界値が容易に読み取れる。
2〜6ビットコードの下限の境界値を保持するレジスタ
である。1ビットコードの下限の境界値はどのようなコ
ード体系でも必ず0000002 になるため値を保持す
る必要は無い。
する(別の言い方をすれば、図7において境界値のすぐ
上に配置された)ハフマンコードのコード番号を保持す
るレジスタ、420は少なくとも1つのハフマンコード
が存在する6ビットのデータを入力する端子、421〜
425はそれぞれ端子420に入力した6ビットの入力
データからレジスタ401〜405に保持されている前
記5つの境界値を減算するための減算器である。これら
の減算器421〜425はハフマンコードと複数の境界
値との比較をする機能と、差分値を得る機能の両方の機
能を有する。
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まで同様の判別
がなされる。
レクタ451、第2のセレクタ452並びに、プライオ
リティエンコーダ453に送られる。該プライオリティ
エンコーダ453は入力された6ビットの判別結果をエ
ンコードして、2進化して3ビットのコード長信号とし
て端子471より出力する。
番号を保持する5つのレジスタ411〜415から該コ
ード番号が入力され、また、前述の信号442〜446
が選択制御信号として入力されている。例えば、該選択
制御信号442〜446の内、信号442が“1”の
時、該第1セレクタ451では、レジスタ411から入
力されるコード番号が選択され該セレクタ451から出
力される。
46はそれぞれレジスタ412、413、414、41
5から入力されるコード番号を選択する機能を有する。
該第1のセレクタ451で選択されたコード番号は、加
算器473に入力される。
6つの信号441〜446がすべて選択制御信号として
入力されると共に、以下の6つのデータが被選択信号と
して入力される。
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に入力された復号化処理中のハフマンコードのコー
ド長に対応した下限境界値を、該ハフマンコードから減
算してその差分値を規格化したものである。
タ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から出力される。
加算器473にて、第1のセレクタ451の出力信号に
加算され、目的とするコード番号が演算により求められ
端子475に出力される。
路の動作を説明する。
トのデータが入力されたとする。
05に保持された2〜6ビットコードの下限の境界値の
全てと比較器401〜405で比較されるが、6ビット
入力データ111010に関して、前記6ビットデータ
との比較で特に意味があるのは、レジスタ403で保持
している4ビット長コードの下限境界値110000と
レジスタ404で保持している5ビット長コードの下限
境界値111100の2つの値との比較である。前記6
ビットの入力データ111010は、前記2つの下限の
境界値110000、111100に対して、1100
00<111010(入力データ)<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に送られる。
ビット信号(0011と0010)を加算して、010
1をコード番号として端子475に出力する。一方信号
線441〜446はプライオリティエンコーダ453に
入力されてエンコードされ、100の3ビット信号がハ
フマンコードのコード長信号として端子471から出力
される。
力データ(111010)に存在するハフマンコード
は、コード長=4、コード番号=5のハフマンコードで
あることが分かった。他のハフマンコードも以上の説明
と同様に、コード長、コード番号が演算処理で求められ
る。
図8に示す。
コード長を演算で求める部分に関する。
違いはシフタ462〜465の配置箇所である。図4に
示した第1の実施例では、該シフタを減算器421〜4
24の出力側に配置していたが、本実施例では該シフタ
を減算器521〜524の(+)端子入力側に配置して
いる。
して、本実施例では、以下の2点が変わってくる。
が減算前に予めシフトされ、ビット削減されているの
で、iビット長コード(i=2、3、4、5)の下限の
境界値を保持するレジスタ501〜504のビット数
が、それぞれ2ビット、3ビット、4ビット、5ビット
で済むようになった。
界値を減算する減算器521〜524のビット数も同様
に、それぞれ2ビット、3ビット、4ビット、5ビット
で済むようになった。
器は新たな番号(501〜504、521〜524)を
付して区別したが、その他のブロックはすべて第1の実
施例(図4)と同じ機能なので同一番号を継続して使用
した。上記減算器の出力値をシフトすることは、入力値
をシフトすることと等価であり、境界値を保持するレジ
スタの出力値をシフトすることは、該レジスタで保持す
る値を予めシフトしておくことと等価なので、本実施例
の図8は、前記第1の実施例の図4とまったく等価であ
る。
1の実施例の演算回路出力と同一となる。尚、本実施例
における下限境界値を保持するレジスタ501〜50
4、405の内容を見てみると、iビット長コードの下
限境界値をiビットで保持している。
ードに対する下限境界値をiビットで表現することも可
能である。
長コードの下限境界値は、最下位ビット(LSB)がす
べて“0”であるが、これは一般のハフマンコードにつ
いても言えることである。最下位ビットが“0”と決ま
っていれば、それを保持する必要も無く、該ビット部分
の減算も省略出来る。それを実現したのが、本発明の第
3の実施例であり、その構成を図10に示す。
違いは以下の2点である。
5、6)の下限の境界値を保持するレジスタ601〜6
05は、0である最下位ビット(LSB)を除いたもの
を保持すればよいので、前記第2の実施例よりもさらに
1ビット少なくて済み、それぞれ1ビット、2ビット、
3ビット、4ビット、5ビットとなった。
界値を減算する減算器621〜625は前記第2の実施
例よりも1ビット少なくて済み、それぞれ1、2、3、
4、5ビットとなった。但し、第2のセレクタ452の
入力すべき減算結果は、前記第2の実施例と同様それぞ
れ2、3、4、5、6ビット必要であるため、各シフタ
462〜465から出力されるLSBあるいは入力デー
タのLSBを上記減算器を通さずに、該減算器のLSB
に付加して、所望のビット数を得ている。
621〜625以外のブロックは、前記第1、第2の実
施例と同じである。
冗長性(LSBがすべて“0”)を基に第2の実施例の
演算回路(図8)から、冗長性を取り除いたものである
ため演算結果は当然、前記第2の実施例と同じになる。
施例(第1〜第3の実施例)は、ハフマンコードの最大
コード長が6ビットの場合、何の矛盾も無くうまく動作
する。
ありさえすれば、任意のハフマンコード体系をうまく復
号処理することが可能である。
合、すなわち、最大コード長が5ビット以下の時、うま
く動作しない。(最大コード長が7ビット以上のものは
論外)例えば、ハフマンコード体系が図11に示すよう
な時、前述したルールに従って求めた各コード長に対す
る下限境界値(6ビット表示)は図12のようになり、
6ビット長ハフマンコードの下限境界値を6ビットだけ
で見ると“000000”になってしまう。その結果、
どのハフマンコードも6ビット以上の長さがあると判定
されてしまうことになる。
の方法が考えられる。第1の方法は、第1の実施例(図
4)において、下限境界値を保持するレジスタ405の
内容を“111111”にすると共に、前記値を検出す
る手段を新たに設け、該検出結果で、前記下限境界値と
入力データの比較結果を修正し、必ず(前記下限境値)
>(入力データ)という関係を表わす比較結果を出力す
るようにする。
いて、下限境界値を保持するレジスタ401〜405の
ビット長を6ビットから7ビットに拡張して、下限境界
値の上限を“1000000”まで許し、6ビットの入
力データの最上位に“0”を付加して7ビット化し、前
記7ビットの下限境界値と比較するものである。
限境界値を保持するレジスタを7ビットに拡張して下限
境界値の上限を“1000000”にするが、入力デー
タとの比較は、最上位ビット(MSB)を除いた6ビッ
トで行ない、MSBが“0”の時は、前記6ビットの比
較結果をそのまま入力データと下限境界値の比較結果と
し、MSBが“1”の時は、前記6ビットの比較結果に
かかわらず、(下限境界値)>(入力データ)という関
係を表わす比較結果を出力するようにする。
の方法を実現する演算回路を示す。但し、コード番号を
保持するレジスタ411〜415、プライオリティエン
コーダ453から、第1のセレクタ451、第2のセレ
クタ452及びそれらより出力側の構成は、すべて図4
と同じなので、図示を省略する。
で増加したブロックは、701〜705の“11111
1”検出ブロックと、711〜715の2入力OR回路
だけである。
を復号化する時、S+1ビット以上6ビット以下の下限
の境界値を保持するレジスタ(401〜405の一部)
には“111111”をセットして、前記“11111
1”検出ブロック701〜705でそれを検出し、OR
素子711〜715から“1”を出力する。これによ
り、Sビット以下の下限の境界値との比較のみが有効と
なり復号が可能となる。
8)にも容易に適用できる。第2の実施例ではiビット
コードの下限の境界値はiビット長のレジスタに保持し
ているので、前述の“111111”をセットするとい
う動作の替わりにiビット長のレジスタをオール“1”
にセットするという動作を行なう。そして、そのオール
“1”という値を検出して、OR素子711〜715か
ら“1”を出力することで、Sビット以下の下限の境界
値との比較のみを有効にすることが出来る。
の方法を実現する演算回路を示す。図13と同様レジス
タ411〜415、プライオリティエンコーダ453、
第1、第2のセレクタ451、452等は省略する。
で変更になった点は、下限境界値を保持するレジスタ7
31〜734を7ビット化した(前は6ビット)こと
と、入力データの減算を7ビットで行なうため、減算器
741〜745に7ビット幅の減算器を使用したことで
ある。よって、本実施例では、最大コード長がSビット
のハフマンコードを復号化する時、S+1ビット以上6
ビット以下の下限境界値として“1000000”を保
持することにより、任意の入力データ(6ビット)に対
して、(上記下限境界値)>(入力データ)の関係を成
立せしめ、Sビット以下コードの下限境界値との比較の
みを有効にすることができ、復号が可能となる。
の方法を実現する演算回路を示す。図13と同様レジス
タ411〜415、プライオリティエンコーダ453、
第1、第2のセレクタ451、452等は省略する。
ビット長コードの下限境界値を保持する。しかし入力デ
ータとの減算処理は下位6ビットのみで行ない、最上位
ビット(MSB)は、図13の実施例のように、2入力
OR711〜715で、減算器から出力されるサインビ
ットとの間で論理和演算がなされる。この構成によって
も、最大コード長以下の下限境界値との比較のみを有効
にでき、復号が可能となる。
2、第3の実施例に応用することも容易にできる。
図16に示す。
入力データと下限境界値を比較する機能と該入力データ
と該下限境界値との差分値を求める機能とを減算器のみ
で実現していた。そのため、入力データと複数の下限境
界値を並列に比較するには、減算器が複数必要であっ
た。
較機能と差分値演算機能の両方を有するため単なる比較
器に比べて、ハードウェアの規模が2〜3倍大きい。そ
のような減算器を複数用いることは、復号化装置のコス
トの増大につながる。
値を求める機能を分離して、それぞれを比較器、減算器
で実現し、比較器は複数使用するが減算器は1つしか使
用しない、そういったコード番号・コード長演算部を提
供する。
と同じコード体系(図5、図6)とする。図16におい
て、801〜805は上記複数の比較器であり、807
は上記1つの減算器である。また、809はコード長信
号に基づいて、シフト量が制御されるシフタであり、8
10は第1のセレクタ451と同じ選択動作をする第2
のセレクタである。その他のブロックは図4(第1の実
施例)における同一番号ブロックとまったく同じ機能を
有する。
めに、第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
セレクタへの出力信号、プライオリティエンコーダへの
出力信号等も同じ値になる。
(図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から出力される。
10)に対して、コード長=4、コード番号=5が本実
施例の構成においても先に説明した実施例と同様に出力
される。
の実施例の技術を組み合わせて複数適用することが可能
である。但し、第2〜第3の実施例の技術を適用した場
合には少し、注意を要する。それは、シフタ809の配
置箇所を減算器807の出力側から(+)端子入力側に
変更する必要があるということである。
図17に示す。
値を比較する機能と、該入力データと該下限境界値との
差分値を求める機能とを1つの減算器で実現したところ
にある。
ードウェア規模を小さくできる。但し、1つのハフマン
コードを復号するための処理時間が長くなる。最大コー
ド長が2k ビットのハフマンコードを復号するのにk回
の比較動作を1つの減算器で行なう必要があるからであ
る。
に、コード番号を演算で求める際に、最後に2つの値が
加算される。1つは下限境界値に対応するコード番号で
もう1つは入力データ(これから復号するハフマンコー
ド)と下限境界値との差分値である。入力データと下限
境界値との差分値の求め方はいろいろな方法がある(前
述の実施例がそれを表わしている)のに対して、下限境
界値に対応するコード番号の求め方は基本的に、複数の
下限境界値それぞれに対応するコード番号を複数のレジ
スタで保持し、それらのレジスタ出力をセレクタで選択
する(セレクタの構成方法はいくつか考えられるかも知
れないが、大差は無いと考える)だけで、工夫の余地が
ほとんど無い。よって本実施例では、コード長を求める
部分及び入力データと下限境界値との差分値を求める部
分のみを示し、他は省略する。
なわち8ビットとする。この場合、比較対象となる下限
境界値の数は7つ(2〜8ビットに対応)となり該下限
境界値はレジスタ822〜828に保持される。
の下限境界値はセレクタ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ビットの信号となる。
端子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”となる。
報は、(実際のコード長)−1を表わしている。すなわ
ち、実際のコード長が8ビットの時、該コード長情報は
“111”となり、1ビットの時は“000”となる。
ド長情報をMSB側から1ビットずつ求めるものであ
り、上記ハードウェアによりそれが実行される。まず、
最初のサイクルでは、3つのセレクタ制御信号881〜
883の内、信号881のみが“1”、882と883
が“0”になり、セレクタ831〜837は図17に示
したとおりの選択動作を行ない、レジスタ825で保持
している下限境界値が選択され、減算器841の−側端
子に入力される。端子821から入力された8ビットデ
ータは該減算器の+側端子に入力されて、上記下限境界
値と比較される。
843に出力され、インバータ847で反転された後、
ラッチ853に取り込まれる。サインビットを反転した
信号849の値が“1”の時(8ビット入力データ)>
(選択された下限境界値)を表わし、次のサイクルで
は、該下限境界値より小さな境界値(この場合はレジス
タ822〜824で保持している下限境界値)と比較す
る必要が無くなる。よって、セレクタ837は、H側の
端子を選択し続けるように制御される。これは、ラッチ
853に取り込んだ信号をOR回路863を経由して該
セレクタ837に送ることにより実現される。
の値が“0”の時(8ビット入力データ)<(選択され
た下限境界値)を表わし、次のサイクルでは、該下限境
界値以上の境界値(レジスタ825〜828の出力)と
比較する必要が無くなる。よって、セレクタ837はL
側の端子を選択し続けるように制御される。これはラッ
チ853に“0”を取り込むことにより実現される。
値が“1”であったものとして、次のサイクルに進む。
次にサイクルでは、信号882に新たに“1”になり、
セレクタ835、836がL側端子からH側端子に切り
換わる。その結果、レジスタ827で保持している下限
境界値が選択され、減算器841の−側端子に入力され
る。
と同じ8ビットデータが入力されていて、上記下限境界
値と比較され、該比較結果はインバータ847を経由し
てラッチ852に取り込まれる。該ラッチに取り込まれ
た信号が“0”だとすると、次のサイクルでは、信号8
82は“0”に戻り、セレクタ835、836がH側端
子からL側端子に切り換わる。そして、信号線883が
新たに“1”になり、セレクタ831〜834がL側端
子からH側端子に切り換わる。その結果、レジスタ82
6で保持している下限境界値が選択され、減算器841
の−側端子に入力される。
ト入力データと比較され、該比較結果はインバータ84
7を経由して、ラッチ851に取り込まれる。該ラッチ
に取り込まれた信号が前サイクルと同様“0”だとする
と、次のサイクル(4サイクル目)では信号883は
“0”に戻りセレクタ831〜834もH側端子からL
側端子に切り換わる。
入力データのハフマンコードは、レジスタ825に保持
されている5ビットの下限境界値以上で、レジスタ82
6に保持されている6ビットコードの下限境界値より小
さいことが分かり、コード長が5ビットと判定される。
該コード長を示す情報“100”はラッチ853、85
2、851に保持され、端子871に出力される。
は、最終的にレジスタ825が保持する5ビットコード
の下限境界値がセレクタ831〜837をセットするこ
とにより選択され、減算器841にて(入力データ)−
(該下限境界値)という減算が行なわれ、その差分値が
信号線845に出力される。そして、該信号はシフタ8
55において、コード長情報に応じて、ビットシフト処
理が施され、端子873に出力される。
図18に示す。
のハフマンコードを復号するのに、3回の比較と1回の
減算を行なうため4サイクルの処理時間を要した。本実
施例では、減算器841で比較処理される時に同時に発
生する減算結果を保持しておき、それを有効に活用する
ことにより、1つのハフマンコードを3サイクルで復号
するものである。
算結果を保持するための、それぞれ8ビットのD型フリ
ップフロップ・レジスタ、893〜895は8ビット入
力データと選択された下限境界値との比較結果により制
御されるセレクタであり、その他のブロックは図17と
まったく同じである。
省略し、第3サイクルの状態から説明する。第3サイク
ルでは、第1サイクルでの減算結果がレジスタ892
に、第2サイクルでの減算結果がレジスタ891に保持
されている。そして、コード長情報の最上位ビットはラ
ッチ853から、2番目のビットはラッチ852から、
最下位ビットはインバータ847から出力されている。
ここで、コード長情報が“XX1”(Xは任意)の時
は、第3サイクル目に比較対象となった下限境界値との
差分値(減算器841の出力845)がそのまま有効に
なるため、セレクタ895で該差分値が選択され、シフ
タ855に送られる。
第2サイクル目に比較対象となった下限境界値との差分
値が有効になるため、セレクタ894、895により、
レジスタ891に保持された差分値が選択され、シフタ
855に送られる。
第1サイクル目に比較対象となった下限境界値との差分
値が有効になる(前述の第6の実施例で説明した動作
は、これに該当する)ため、セレクタ893〜895に
より、レジスタ892に保持された差分値が選択され、
シフタ855に送られる。
コード長は1ビットであり、下限境界値がゼロになるた
め、端子821への8ビット入力データがそのまま差分
値になるので、該入力データがセレクタ893〜895
により選択されシフタ855に送られる。
第6の実施例と同様、コード長情報に応じて、シフト処
理が施され端子873に出力される。
図19に示す。
理をより少ないハードウェアで行なうものである。
ためのD型フリップフロップ・レジスタである。897
は端子866から入力される信号によって制御されるセ
レクタで、第1サイクル目のみH側が選択され第2、第
3サイクルではL側が選択されるような信号が入力され
る。
比較結果の信号849によって制御されるセレクタであ
る。
“1”の時は減算器841から出力される差分値が
“0”のときは8ビット入力データが、夫々セレクタ8
97、898により選択され、レジスタ896に送られ
る。
上記レジスタ896への入力が該レジスタ896に取り
込まれて出力され、セレクタ897を経由して、セレク
タ898のL側端子に送られる。そして、入力データと
下限境界値の比較結果(信号849)が“0”の時は、
上記レジスタ896の出力がセレクタ898で選択さ
れ、再びレジスタ896に入力される。一方、比較結果
が“1”の時は減算器841で新たに演算された差分値
がセレクタ898で選択され、レジスタ896に入力さ
れる。
同様にセレクタ897、898が動作し、セレクタ89
8で選択された信号はシフタ855に送られ、該シフタ
でコード長情報に応じたシフト処理が施され、端子87
3に出力される。
第7の実施例と同等の処理が実現できる。
図20に示す。
1つ使用し、最大8ビット長のハフマンコードを復号す
るのに3サイクルないしは4サイクルの処理時間を必要
とした。
の小さい比較器を3個追加することにより、多少演算処
理時間は長くなるが、1サイクルで復号出来るようにし
た。同図において、901〜903が追加した3個の比
較器である。3つの比較器の配置場所は、前述の第6〜
第8の実施例における3回の比較処理と等価になるよう
に定めてある。そして、各比較器の出力でセレクタ83
1〜837が制御される。比較901の出力はコード長
情報の最上位ビットとして、比較902の出力はコード
長情報の2番目のビットとして、また、比較器903の
出力はコード長情報の最下位ビットとして端子871か
ら出力される。セレクタ837で選択された下限境界値
は減算器841に入力され、8ビット入力データとの間
で減算処理が行なわれ、差分値がシフタ855に送られ
る。最後に、該シフタでコード長情報に応じたシフト処
理が施され、端子873に出力される。
例を図21に示す。
を1つと複数の比較器を使用することにより、1サイク
ルで復号できるようにした。
比較器からコード長情報の1ビットを出力する構成では
なく、3つの比較器の出力からコード長情報の2ビット
を生成する構成になっている。
コードを復号するためのコード長・コード番号演算部の
一部を示してある。
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に保持される。
力データは、比較器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か
ら出力される。
例を図22に示す。
コード番号・コード長を演算で求める方式をJPEGに
て提案されたコードの復号化装置に応用したものであ
る。
おける64k×12ビットの復号テーブル104が、コ
ード番号・コード長演算部301とメモリ容量がわずか
256バイトの復号テーブルに置き替わる。
長演算部を用いることで、新たに考えられる復号装置の
構成の一例を示したものであり、本復号装置の各要素は
これまでにいくつかの実施例を用いて既に説明したもの
である。
例を図23に示す。
理スピードを高速化したものである。その高速化のため
に、本実施例では、コード長とSSSSをあらかじめ加
算した値を格納した第2のテーブル1101を用いてい
る。
SSを加算した結果を得るために、(図22参照)SS
SSを復号テーブル303から読み出し、それに演算部
301からのコード長を加算器204にて加算してい
た。本実施例によれば、この加算器204による遅延が
無くなり、その分、復号処理速度が早くなる。但し、第
2のテーブルのメモリ容量は256×5ビット(1.2
5kビット)あり、その分だけ、テーブルのメモリ容量
が増加するが、これは、処理速度の向上をとるか、コス
トの低減をとるかの選択の問題である。
本実施例のような構成も十分意味がある。
例を図24に示す。
ード長演算部の考え方を符号化装置に応用したものであ
る。
けるコード番号の演算方法は下式のように表現できる。
但し、最大コード長は8ビット、復号するハフマンコー
ドのコード長は既にnビットとして求められているもの
とする。
ットコード長の下限境界値)×2-8+n+nビットコード
長の下限境界値に対応するコード番号…(1) 上記(1)式において、8ビット入力データとはハフマ
ンコードを含むデータであり、これを8ビットハフマン
コードとおいて、(1)式を変形すると、 8ビットハフマンコード=(コード番号−nビットコー
ド長の下限境界値に対応するコード番号)×28-n +n
ビット長コードの下限境界値…(2) となる。上記8ビットハフマンコードの上位nビットが
実際のハフマンコードである。
ド長を判定する回路を付加したものを図24に示す。同
図において、1201はコード番号が入力される端子、
1202〜1208はそれぞれ2ビット〜8ビット長コ
ードの下限境界値に対応するコード番号を保持するレジ
スタ(1ビットコード長の下限境界境界値はゼロで、そ
れに対応するコード番号もゼロであるため、該情報を保
持するレジスタは不要である)、1212〜1218は
それぞれ端子1201から入力されるコード番号と上記
レジスタ1202〜1208から出力されるコード番号
とを比較する比較器、1220は上記比較器1212〜
1218の出力を受けとり、端子1201から入力され
たコード番号が何ビットコード長のハフマンコードに対
応するのかを判定するプライオリティエンコーダであ
る。該プライオリティエンコーダ1220は、コード長
情報nを端子1246に出力すると共に、第1のセレク
タ1221第2のセレクタ1223、シフタ1242に
も該コード長情報を送る。
2〜1208から出力されるコード番号から、上記コー
ド長情報に基づき、1つのコード番号を選択し、減算器
1241の(−)側端子に入力する。該減算器1241
の(+)側端子には端子1201から入力されたコード
番号が与えられ、該減算器1241にて(入力コード番
号)−(nビット長コードの下限の境界値に対応するコ
ード番号)が演算される。減算結果はシフタ1242に
送られ、ここで28-n を乗算するのと等価なビットシフ
ト処理が施された後、加算器1243に送られる。一
方、レジスタ1232〜1238には、2ビット〜8ビ
ット長コードの下限境界値が保持され、該下限境界値は
第2のセレクタ1223に送られる。
1221と同様、プライオリティエンコーダ1220か
ら送られたコード長情報nに基づき、nビット長コード
に対応した下限境界値を選択し、加算器1243に出力
する。
加算すると、(2)式に示した演算結果が得られ、該演
算結果はハフマンコードとして端子1245に出力され
る。既に述べたように、端子1245から出力される信
号は8ビットであるが、その内の上位nビットが、符号
化されたハフマンコードである。
ードを演算するブロックを用いると、JPEGコードの
ハフマン符号化処理は図25に示す構成となり、符号化
テーブルに必要なメモリ容量は256バイトで済む。
復号化装置で用いる256バイトの復号テーブルの変換
内容とまったく逆の関係にある。
ーダ1220の出力をセレクタ1221、1223の選
択制御信号として用いているが、図16に示すコード番
号・コード長演算のように複数ある比較器の出力から連
続する“01”出力を検出して、それをセレクタの制御
信号として用いることもできる。
例を図26に示す。
ンコード演算ブロックと図16に示した復号装置におけ
るコード番号・コード長演算ブロックは、先ほど述べた
ように、2つのセレクタへ入力される選択制御信号の生
成方法が異なるのみで、その他のハード的な構成要素は
ほとんど同じである。よって、図24に示したハフマン
コード演算回路へ少し回路を付加するのみで、上記2つ
の演算を行なうことが可能な演算回路を実現できる。
24のハフマンコード演算ブロックと図16のコード番
号・コード長演算ブロックの間にある違いを以下に列挙
してみる。
所(レジスタ)と、各ビット長コードの下限境界値に対
応するコード番号を格納する場所(レジスタ)が入れ替
わっている。
フト処理の向きが反対である。(符号化時は左シフトで
あるのに対して、復号化時は右シフトである。)以上の
違いに基づいて、図24のハフマンコード演算ブロック
を修正したものを図26に示す。同図において、130
1は符号化モードか復号化モードを表わす信号ENCを
入力する端子であり、符号化モード時には“1”(Hi
gh)が入力される。
信号ENCによって切り換わる2入力1出力のセレク
タ、1320は復号化モード用に追加された右シフト用
のシフタである。
番号ブロックと同じである。
C=“1”の時、符号化処理におけるハフマンコード演
算ブロックとして働き、ENC=“0”の時、復号化処
理におけるコード番号・コード長演算ブロックとして働
く。
例を図27に示す。
ドの下限境界値と該下限境界値に対応するコード番号を
切り替えるために14個のセレクタ1302〜1315
を用いていたが、符号化モードと復号化モードに応じて
レジスタ1202〜1208、1232〜1238に保
持する内容を変更することが出来れば、上述の14個の
セレクタは不要となる。それを示したのが図27であ
る。レジスタ1202〜1208、1232〜1238
は、制御用のCPU等によって、上記下限境界値やコー
ド番号を設定する内容を、符号化モードと復号化モード
に応じて変更する。
例を図28に示す。前記第14または前記第15の実施
例を用いれば、1つの演算回路ブロックを符号化処理と
復号化処理のどちらにも利用することができる。140
0が該演算部である。よって、図28に示す構成におい
て、端子1301から入力するENC信号を“1”(H
igh)にすれば、本実施例はハフマン符号化装置とし
て働き、上記ENC信号を“0”(Low)にすれば、
ハフマン復号装置として働く。
固定長符号が端子1110より入力され、符号化テーブ
ル1120によりコード番号に変換される。該コード番
号はセレクタ1401で選択され、演算部1400に送
られる。該演算部1400は上記ENC信号の入力によ
りハフマンコード演算回路として動作するよう設定さ
れ、端子1140には演算で求めたハフマンコードを端
子1150にはコード長を出力する。
れたハフマンコードが端子101より入力されバッファ
102アンパッキング回路103、及びセレクタ140
1を通して、復号済みのコードが取り除かれた残りのデ
ータの先頭例えば16ビットが演算部1400に送られ
る。このとき該演算部1400は、上記ENC信号の入
力により、コード番号・コード長演算回路として動作す
るよう設定され、コード番号を復号テーブル303に、
コード長をアンパッキング回路103に送る。復号テー
ブル303は入力されたコード番号を符号化前の固定長
符号に変換し、端子105に出力する。
例を図29に示す。
符号化テーブル1120で行なう変換と復号テーブル3
03で行なう変換内容は、まったく逆の関係にある。す
なわち、符号化テーブル1120では符号化前の固定長
符号をコード番号に変換し復号テーブル303ではコー
ド番号を符号化前の固定長符号に変換する。上記2つの
変換は、基本的に固定長コードから固定長コードへの変
換であるため入力ビット数と出力ビット数は同じで、上
記の2つのテーブル容量は等しい。よって、図29に示
す如く、上記の2つのテーブルをCPU等により書き換
え可能な1つのテーブル1402にすることが可能であ
る。
02には符号化テーブルをロードし、ENC信号が
“0”の時、該テーブル1402に復号テーブルをロー
ドする。該テーブル1402を用いて、符号化時、復号
時に所望の処理が行なえるように構成したのが本実施例
(図29)である。
固定長符号が端子1110より入力され、セレクタ14
03で選択されて、テーブル1402に入力される。該
テーブルにおいて、符号化前の固定長符号はコード番号
に変換されて、セレクタ1401を通して演算部140
0に入力される。該演算部1400は、前記第16の実
施例と同じ働きをする。よって、該演算部1400に入
力されたコード番号からハフマンコードとコート長が演
算され、ハフマンコードは端子1140に、コード長は
端子1150に出力される。
れたハフマンコードが端子101より入力され、バッフ
ァ102アンパッキング回路103及びセレクタ140
1を通して、これから復号すべきデータの先頭数ビット
が演算部1400に入力される。該演算部1400は入
力されたデータからコード番号・コード長を演算で求
め、コード長はアンパッキング回路103に、コード番
号はセレクタ1403を通して、テーブル1402に送
られる。テーブル1402は受けとったコード番号を符
号化前の固定長符号に変換し、端子105に出力する。
ハフマンコードの復号化または符号化に必要なメモリ容
量を大幅に減らすことができ、コストの削除を図ること
ができる。
図。
図。
長コードの下限境界値、それに対応するハフマンコー
ド、さらにそれに対応するコード番号を示す図。
00002 ]の数値線上に配置した図。
トで表わした図。
る各ビット長の下限境界値を示す図。
ン符号化処理を示す図。
部
Claims (16)
- 【請求項1】 ハフマンコードを入力する入力手段と、 前記ハフマンコードを複数のコード長に対応する複数の
基準値と比較した結果に基づいて、前記ハフマンコード
のコード長を演算するコード長演算手段と、 前記ハフマンコードと前記ハフマンコードのコード長に
対応する基準値とに基づいて、前記ハフマンコードをJ
PEG方式に準拠した固定長符号に変換するためのコー
ド番号を演算するコード番号演算手段とを有することを
特徴とする復号化装置。 - 【請求項2】 ハフマンコードを入力する入力手段と、 前記ハフマンコードを複数のコード長に対応する複数の
基準値と比較した結果に基づいて、前記ハフマンコード
のコード長を演算するコード長演算手段と、 前記ハフマンコードと前記ハフマンコードのコード長に
対応する基準値とに基づいて、前記ハフマンコードを固
定長符号に変換するためのコード番号を演算するコード
番号演算手段と、 前記ハフマンコードに続いて入力された付加情報を出力
する付加情報出力手段とを有することを特徴とする復号
化装置。 - 【請求項3】 前記固定長符号は、JPEG方式に準拠
した固定長符号であることを特徴とする請求項2に記載
の復号化装置。 - 【請求項4】 固定長符号に対応するコード番号を入力
する入力手段と、 前記コード番号を複数のコード長に対応する複数の基準
値と比較した結果に基づいて、前記固定長符号に対応す
るハフマンコードのコード長を演算するコード長演算手
段と、 前記コード番号と前記コード長演算手段によって演算さ
れたコード長に対応する基準値とに基づいて、前記固定
長符号に対応するハフマンコードを演算するハフマンコ
ード演算手段とを有することを特徴とする符号化装置。 - 【請求項5】 前記固定長符号は、JPEG方式に準拠
した固定長符号であることを特徴とする請求項4に記載
の符号化装置。 - 【請求項6】 ハフマンコードを入力する入力工程と、 前記ハフマンコードを複数のコード長に対応する複数の
基準値と比較した結果に基づいて、前記ハフマンコード
のコード長を演算するコード長演算工程と、 前記ハフマンコードと前記ハフマンコードのコード長に
対応する基準値とに基づいて、前記ハフマンコードをJ
PEG方式に準拠した固定長符号に変換するためのコー
ド番号を演算するコード番号演算工程とを有することを
特徴とする復号化方法。 - 【請求項7】 ハフマンコードを入力する入力工程と、 前記ハフマンコードを複数のコード長に対応する複数の
基準値と比較した結果に基づいて、前記ハフマンコード
のコード長を演算する第1のコード長演算工程と、 前記ハフマンコードと前記ハフマンコードのコード長に
対応する基準値とに基づいて、前記ハフマンコードを固
定長符号に変換するためのコード番号を演算するコード
番号演算工程と、 前記ハフマンコードに続いて入力された付加情報を出力
する付加情報出力工程とを有することを特徴とする復号
化方法。 - 【請求項8】 前記固定長符号は、JPEG方式に準拠
した固定長符号であることを特徴とする請求項7に記載
の復号化方法。 - 【請求項9】 固定長符号に対応するコード番号を入力
する入力工程と、 前記コード番号を複数のコード長に対応する複数の基準
値と比較した結果に基づいて、前記固定長符号に対応す
るハフマンコードのコード長を演算するコード長演算工
程と、 前記コード番号と前記コード長演算手段によって演算さ
れたコード長に対応する基準値とに基づいて、前記固定
長符号に対応するハフマンコードを演算するハフマンコ
ード演算工程とを有することを特徴とする符号化方法。 - 【請求項10】 前記固定長符号は、JPEG方式に準
拠した固定長符号であることを特徴とする請求項9に記
載の符号化方法。 - 【請求項11】 請求項1に記載の復号化装置と請求項
4または5に記載の符号化装置とを有することを特徴と
する符号化復号化装置。 - 【請求項12】 請求項2に記載の復号化装置と請求項
4または5に記載の符号化装置とを有することを特徴と
する符号化復号化装置。 - 【請求項13】 請求項3に記載の復号化装置と請求項
4または5に記載の符号化装置とを有することを特徴と
する符号化復号化装置。 - 【請求項14】 請求項6に記載の復号化方法と請求項
9または10に記載の符号化方法とを有することを特徴
とする符号化復号化方法。 - 【請求項15】 請求項7に記載の復号化方法と請求項
9または10に記載の符号化方法とを有することを特徴
とする符号化復号化方法。 - 【請求項16】 請求項8に記載の復号化方法と請求項
9または10に記載の符号化方法とを有することを特徴
とする符号化復号化方法。
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)
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)
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 |
-
1993
- 1993-12-20 JP JP31998993A patent/JP3227292B2/ja not_active Expired - Fee Related
-
1997
- 1997-12-04 US US08/985,316 patent/US5841381A/en not_active Expired - Lifetime
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 |