JPH08162970A - 復号装置およびその方法 - Google Patents

復号装置およびその方法

Info

Publication number
JPH08162970A
JPH08162970A JP29528194A JP29528194A JPH08162970A JP H08162970 A JPH08162970 A JP H08162970A JP 29528194 A JP29528194 A JP 29528194A JP 29528194 A JP29528194 A JP 29528194A JP H08162970 A JPH08162970 A JP H08162970A
Authority
JP
Japan
Prior art keywords
code
unit
length
bit
code number
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
JP29528194A
Other languages
English (en)
Other versions
JP3332619B2 (ja
Inventor
Tadayoshi Nakayama
忠義 中山
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 JP29528194A priority Critical patent/JP3332619B2/ja
Priority to US08/566,583 priority patent/US5801650A/en
Publication of JPH08162970A publication Critical patent/JPH08162970A/ja
Application granted granted Critical
Publication of JP3332619B2 publication Critical patent/JP3332619B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • H03M7/425Conversion 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 for the decoding process only

Abstract

(57)【要約】 【目的】 小さなメモリサイズのテーブルを用いて高速
な復号を行うことができる復号装置およびその方法を提
供する。 【構成】 演算部501は、アンパッキング回路103からハ
フマン符号を入力して、そのハフマン符号の冗長符号番
号と符号長情報106の上位3ビットを演算する。復号テー
ブル503は、9ビットの冗長符号番号信号502を入力し
て、8ビットの固定長符号に変換するとともに、符号長
情報106の下位1ビットを出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は復号装置およびその方法
に関し、例えば、ハフマン符号などの可変長符号を復号
する復号装置およびその方法に関するものである。
【0002】
【従来の技術】近年、ディジタル信号を圧縮する技術の
進歩は著しい。ディジタル化された静止画像や動画信号
の圧縮技術としては、JPEG(Joint Photographic Expert
s Group)やMPEG(Moving Picture Experts Group)などに
より提案された圧縮方式が世界的な標準として定着しつ
つある。
【0003】これらの圧縮方式は、DCT(Discrete Cosin
e Transform)を用いて画像信号を直交変換した後、視覚
的に目立たない部分の信号成分を取除くことで情報量を
減らし、さらに情報量を圧縮するためにハフマン符号化
などを行う。ハフマン符号は、符号(コード)の発生頻
度に応じて可変長の符号を割当てるもので、発生頻度の
高い符号ほどビット長の短い符号を割当てて符号化する
ことにより、情報量を減らすものである。ハフマン符号
をテーブルを使用して復号する場合、そのテーブルのメ
モリサイズは復号の処理速度と相反する関係にあり、次
の二つの方法の何れかを選択することができる。
【0004】(1)処理は遅いがテーブルのメモリサイズ
を小さくする方法 (2)テーブルのメモリサイズを大きくして処理を速くす
る方法 方法(1)の極端なものは、1サイクルで1ビットずつ復号
することになり、一つのハフマン符号を復号するのに数
サイクルを要する。一方、方法(2)の極端なものは、1サ
イクルで一つのハフマン符号を復号するものである。も
ちろん、前記二つの極端な方法の中間的な方法、すなわ
ち、1サイクルで2ビットあるいはそれ以上のビットを復
号する方法もある。
【0005】これらの方法はいずれも、復号するハフマ
ン符号を他の情報に変換することなく、その符号をその
ままテーブルに入力するか、あるいは、その符号の一部
をそれ以前に復号して得られた情報に連結してテーブル
に入力するものである。
【0006】図1は1サイクルで一つのハフマン符号を復
号する装置の構成を示す図で、最大符号長16ビットのハ
フマン符号を8ビットの固定長符号に復号するものであ
る。
【0007】同図において、101はハフマン符号化され
たデータを入力する端子、102は入力したデータを一時
的に蓄えるバッファである。ハフマン符号は可変長であ
るため、復号する際の出力データレートを一定に保つ
と、入力データレートが一定ではなくなるのでバッファ
102が必要になる。
【0008】103はアンパッキング回路で、mビット単位
で入力されたデータを連結し、既に復号されたデータを
取除いた後の先頭16ビットを取出すものである。104は
取出された16ビットデータ中のハフマン符号を復号する
ための復号テーブル、105は復号した固定長の符号(8ビ
ット)を出力する端子、106は復号したハフマン符号の
ビット長を示す4ビットの信号で、アンパッキング回路1
03に送られて、既に復号されたデータを取除くために用
いられる。この4ビットの信号106は、ビット長を直接表
す場合と、(ビット長-1)を表す場合とがあり、図1の
例では(ビット長-1)を表している。最大符号長が16ビ
ットの場合、この符号長を直接表すと5ビット必要にな
るが、0ビットの符号長は存在しないので符号長1ビット
を‘0000’と表現する、すなわち(ビット長-1)で表す
ことにより4ビットで最大16ビットの符号長を表すこと
が可能になる。ただし、最大符号長が2のべき乗でない
場合はどちらで表しても差はない。
【0009】図1の構成において、復号テーブル104のメ
モリサイズは、16ビット入力12ビット出力であるから、
次式に示すように96kバイトになる。 2^16×12 = 64k×12 = 768kビット = 96kバイト …(1) ただし、x^yはxのy乗を表す
【0010】図2は図1に示した構成をJPEGの復号に適用
した場合の構成を示す図である。
【0011】JPEGにおいても、最大符号長16ビットのハ
フマン符号を8ビットの固定長符号(NNNN信号4ビットと
SSSS信号4ビット)に復号するが、ハフマン符号の間に
は付加ビットと称する情報が挿入されていて、復号に際
しては、この付加ビットを取出すための機構が必要にな
る。付加ビットの最大ビット長を10ビットとすると、図
2におけるアンパッキング回路200から出力する信号は26
ビット必要になる。この26ビット信号の先頭16ビットは
復号テーブル104に送られ、図1と同様に8ビットの固定
長符号と4ビットの符号長情報106に変換される。一方、
26ビット信号はシフタ201に送られ、符号長情報106に基
づいて、復号されたハフマン符号が取除かれ(26ビット
信号を符号長分だけシフトすることで実現する)、先頭
の10ビットが端子202に出力される。なお、シフタ201か
ら出力される10ビットの信号がすべて付加ビット信号と
いうわけではなく、復号テーブル104から出力されるSSS
S信号の値が示す上位数ビットのみが付加ビット信号で
ある。
【0012】このように、一つのハフマン符号を復号し
て、次のハフマン符号を復号する際、図1に示した構成
の場合は、アンパッキング回路103で、復号し終わった
ハフマン符号のビット長分だけ既に復号されたデータを
取除けばよかったが、図2に示すJPEG復号の場合は、付
加ビット信号も取除く必要がある。そこで、符号長情報
106と付加ビットのビット長を表す信号203(SSSS信号)
とを加算器204で加算して、その加算結果をアンパッキ
ング回路200に送り、1サイクルごとにハフマン符号と付
加ビットの両方を取除くようにする。
【0013】
【発明が解決しようとする課題】しかし、上記従来例に
おいては、次のような問題点があった。つまり、ハフマ
ン符号を高速に復号しようとすると、復号テーブルのメ
モリサイズが大きくなり、次のような欠点が発生する。
【0014】(1)復号装置を集積回路化する場合、チッ
プ面積が大きくなりコストが高くなる (2)復号テーブルの書換えに時間がかかる (3)復号テーブルの情報量が多いため、圧縮する情報
(画像情報など)ごとに最適なハフマン符号化を行うこ
とができない (4)もし、欠点(3)を解決しようとして、圧縮した情報ご
とに最適な復号テーブルをもたせると情報量が増加し
て、情報量を圧縮した意味、つまり最適符号化した意味
がなくなる 本発明は、上述の問題を解決するためのものであり、小
さなメモリサイズのテーブルを用いて高速な復号を行う
ことができる復号装置およびその方法を提供することを
目的とする。
【0015】
【課題を解決するための手段】および
【作用】本発明は、前記の目的を達成する一手段とし
て、以下の構成を備える。
【0016】本発明にかかる復号装置は、入力符号の符
号長情報の一部と予め定められた符号番号とを演算する
演算手段と、前記演算手段によって得られた符号番号を
符号化前の固定長符号と前記符号長情報の残りに変換す
る変換手段とを有することを特徴とする。
【0017】また、入力符号の符号長情報と予め定めら
れた符号番号とを演算する演算手段と、前記演算手段に
よって得られた符号番号を符号化前の固定長符号に変換
する変換手段とを有することを特徴とする。
【0018】本発明にかかる復号方法は、入力符号の符
号長情報の一部と予め定められた符号番号とを演算する
演算ステップと、前記演算ステップで得た符号番号を符
号化前の固定長符号と前記符号長情報の残りに変換する
変換ステップとを有することを特徴とする。
【0019】また、入力符号の符号長情報と予め定めら
れた符号番号とを演算する演算ステップと、前記演算ス
テップで得た符号番号を符号化前の固定長符号に変換す
る変換ステップとを有することを特徴とする。
【0020】
【実施例】上述した問題は、復号テーブルのメモリサイ
ズを小さくした復号装置により解決することができる
が、この装置の構成内容を簡潔に表現すると、以下のよ
うになる。復号するハフマン符号の符号長と符号番号を
演算・論理回路により求め、復号テーブルにより前記符
号番号を元の固定長符号に変換することにより、その復
号テーブルのメモリサイズを大幅に削減する装置。
【0021】ここで符号番号について簡単に説明する。
固定長符号にハフマン符号を割当てる際、その固定長符
号を生起確率の高い順に並べるが、この並び順に付した
0,1,2,…の番号を符号番号を称す。従って、符号番号を
表すのに必要な最小限のビット数は、固定長符号のビッ
ト数より大きくなることはなく、固定長符号のビット数
以下になる。なお、通常は同じビット数であり、この実
施例でも同じビット数とする。
【0022】[構成]図3は上述した復号装置の構成例
を示すブロック図である。なお、図3において、図1と同
様の構成には、同一符号を付して、その詳細説明は省略
する。また、図1に示した構成と比較するために、ハフ
マン符号や符号長情報などのビット数は図1と同じす
る。さらに、図3の構成において、符号番号および符号
長をどのような演算・論理回路で求めるのか、といった
説明は図4を用いて後述する。
【0023】図3において、301は演算部で、アンパッキ
ング回路103からハフマン符号を入力して、そのハフマ
ン符号の符号番号と符号長を演算するものである。303
は復号テーブルで、8ビットの符号番号信号302を入力し
て、8ビットの固定長符号に変換するものである。この
ように、演算部301によりハフマン符号から符号番号を
演算で求めれば、復号テーブル303の入出力ビット数は
それぞれ8ビットになる。従って、復号テーブル303のメ
モリサイズは次式に示すように256バイトで済み、図1に
示す復号テーブル104(96kバイト)の1/384のメモリサ
イズで足りる。 2^8×8 = 256×8 = 256バイト …(2)
【0024】次に、演算部301の構成およびその動作を
説明するが、説明を簡単にするために、一例として、最
長6ビットの九通りのハフマン符号から4ビットの符号番
号と3ビットの符号長を求める小規模な回路を説明す
る。
【0025】図4は演算部301の構成例を示すブロック
図、図5はハフマン符号と符号番号との対応関係例を示
す図、図6はi=1,2,3,4,5,6に対してiビット長符号の下
限の境界値と、それに対応するハフマン符号、さらに、
それに対応する符号番号を示す図である。なお、iビッ
ト長符号の下限の境界値とは、[‘000000’,‘100000
0’]の数値線上に以下のルールでハフマン符号を配置し
たときのiビット長符号とiビット長未満の符号の境界値
(6ビット)をいう。
【0026】ルール1: 符号長の短いものから順に‘000
000’の方から並べる(同じ符号長の場合には値の小さ
いものから配置する)
【0027】ルール2: iビット長符号一個につき数直線
上で1/2のi乗の領域を占める(iビット長符号が二個の
場合は占める領域は2×(1/2)^iになる)
【0028】図7は上記のルールに従って図5に示すハフ
マン符号を並べた場合に各ビット長の符号が占める領域
を示す図で、同図より上記の境界値を容易に読取ること
ができる。
【0029】図4において、401〜405はそれぞれレジス
タで、2〜6ビット符号の下限境界値をそれぞれ保持す
る。なお、1ビット符号の下限境界値は、どのような符
号体系でも必ず‘000000’になるので、その値を保持す
る必要はない。411〜415もそれぞれレジスタで、下限境
界値に対応する、言い換えれば図7において境界値のす
ぐ上に配置されたハフマン符号の符号番号を保持する。
【0030】420は端子で、少なくとも一つのハフマン
符号が存在する6ビットのデータが入力される。421〜42
5はそれぞれ減算器で、端子420に入力された6ビットの
データからレジスタ401〜405に保持された五つの境界値
を減算する。これらの減算器421〜425は、ハフマン符号
と複数の境界値との比較をする機能と、差分値を得る機
能との二つの機能を有する。比較結果は、五つの減算器
421〜425から出力されるサインビットでわかる。各減算
器421〜425は、(入力データ)-(境界値)という演算を行
い、そのサインビットが‘0’のとき減算結果は零以上
であることを示す。すなわち、サインビットが‘0’の
ときは(入力データ)>(境界値)という関係が成立する。
【0031】436は1ビットのインバータ、432〜435は負
論理入力付きのAND素子であり、これから出力される信
号442〜446および減算器421から出力される信号441の
内、どの信号が‘1’になっているを調べることによ
り、端子420に入力されたハフマン符号の符号長を判別
することができる。具体的には、信号441が‘1’のとき
は、入力データは2ビット長符号の下限境界値より小さ
いことになるので、ハフマン符号は1ビット長というこ
とになり、また、信号442が‘1’のときは、入力データ
は2ビット長符号の下限境界値以上で3ビット長符号の下
限境界値未満であるため、ハフマン符号は2ビット長と
いうことになる。以下、信号446まで同様の判別がなさ
れる。
【0032】453はプライオリティエンコーダで、入力
された6ビットの判別結果(信号441〜446)をエンコー
ドして、二進化した3ビットの符号長信号を端子471へ出
力する。
【0033】451は第1のセレクタで、レジスタ411〜415
から符号番号が入力され、5ビットの判別結果(信号442
〜446)が選択制御信号として入力される。例えば、信
号442が‘1’のとき、第1のセレクタ451は、レジスタ41
1から入力された符号番号を選択し出力する。同様に、
信号443,444,445,446に対してレジスタ412,413,414,415
から入力された符号番号を選択し出力する。
【0034】452は第2のセレクタで、6ビットの判別結
果(信号441〜446)が選択制御信号として入力されると
ともに、以下の六つのデータが被選択信号として入力さ
れる。
【0035】(1)シフタ461の出力(入力データを5ビット
右シフトした1ビットデータ) (2)シフタ462の出力(減算器421の出力を4ビット右シフ
トした2ビットデータ) (3)シフタ463の出力(減算器422の出力を3ビット右シフ
トした3ビットデータ) (4)シフタ464の出力(減算器423の出力を2ビット右シフ
トした4ビットデータ) (5)シフタ465の出力(減算器424の出力を1ビット右シフ
トした5ビットデータ) (6)減算器425の出力(6ビットデータ) 第2のセレクタ452は、信号441〜446に基づいて、上記の
六つのデータの何れかを選択し、選択したデータの下位
4ビットを出力する。第2のセレクタ452から出力された
信号は、端子420に入力された復号処理中のハフマン符
号の符号長に対応した下限境界値を、そのハフマン符号
から減算して、その差分値を規格化したものである。例
えば、信号441が‘1’のときは、シフタ461から出力さ
れた1ビットデータを選択して、最下位ビットとして出
力する。また、信号446が‘1’のときは、減算器425か
ら出力された6ビットデータを選択し、その6ビットデー
タの下位4ビットを出力する。第2のセレクタ452の出力
は符号番号の計算に用いるが、符号番号は4ビット幅し
かないため、セレクタ452の出力も4ビットを超える必要
はない。従って、6ビットデータの内、上位2ビットを無
視して下位4ビットを出力させる。
【0036】473は加算器で、第1のセレクタ451の出力
と第2のセレクタ452の出力を加算して、目的とする符号
番号を求め、その結果(4ビット)を端子475へ出力す
る。
【0037】[動作]ここで、具体的なデータを用い
て、図4に示す演算部301の動作を説明する。
【0038】端子420にデータ‘111010’が入力された
とする。この6ビットデータは、比較器401〜405におい
て、レジスタ401〜405に保持された2〜6ビット符号の下
限境界値のすべてと比較されるが、入力されたデータ
‘111010’に関して、下限境界値との比較でとくに意味
があるのでは、レジスタ403に保持されている4ビット長
符号の下限境界値‘110000’と、レジスタ404に保持さ
れている5ビット長符号の下限境界値‘111100’との二
つ比較である。入力データ‘111010’は、前記二つの下
限境界値‘110000’,‘111100’に対して、‘110000’<
(入力データ)<‘111100’という関係が成り立つから、
減算器423,424のサインビットの出力はそれぞれ‘0’,
‘1’になり、信号線441〜446の内、信号線444のみが
‘1’になる。
【0039】一方、減算器423からは‘111010’-‘1100
00’=‘001010’が出力され、シフタ464により右へ2ビ
ットシフトされて‘0010’に変換された後、第2のセレ
クタ452へ入力される。このとき信号線444は‘1’であ
るから、第2のセレクタ452は、シフタ464から出力され
た4ビットデータを選択して加算器473へ送る。同様に、
第1のセレクタ451は、レジスタ413から入力された符号
番号3(=‘0011’)を選択して加算器473へ送る。
【0040】加算器473は、入力された二つの信号‘001
1’と‘0010’を加算した結果‘0101’を符号番号とし
て端子475へ出力する。一方、プライオリティエンコー
ダ453は、信号441〜446をエンコードした結果‘100’を
ハフマン符号の符号長として端子471へ出力する。
【0041】このようにして、端子420に入力された6ビ
ットの入力データ‘111010’に存在するハフマン符号
は、符号長=4,符号番号=5であることがわかる。同様
に、他のハフマン符号も、その符号長と符号番号を、上
述した演算によって求めることができる。
【0042】上記の構成によれば、復号テーブルのメモ
リサイズを最小にすることができ、上述したような問題
を解決することができるものの、次のような問題が残
る。
【0043】(1)冗長性のない符号番号を演算だけで求
めるため、演算部のハードウェア規模が大きくなりコス
トが上昇する (2)演算部のハードウェア規模が大きくなるので、演算
速度が遅く、復号動作周波数が低下する 以下、本発明にかかる一実施例の復号装置を図面を参照
して詳細に説明する。
【0044】この二つの問題点は、冗長性のない符号番
号を求めずに、冗長性のある符号番号(以下「冗長符号
番号」と呼ぶ)を求める以下の実施例で説明する復号装
置を用いれば解決することができる。なお、冗長符号番
号は、上述した符号番号と同様、生起確率の低い固定長
符号ほど大きな番号を割当てるものであるが、次の点で
符号番号とは異なる。
【0045】(1)あるビット長のハフマン符号には、対
応する冗長符号番号が複数ある (2)冗長符号番号を表すには、符号番号を表すのに必要
なビット数と同じか、それより多くのビット数が必要に
なる
【0046】
【第1実施例】第1実施例の装置の構成内容を簡潔に表現
すると、以下のようになる。演算部により復号するハフ
マン符号に対応する冗長符号番号を求め、復号テーブル
により冗長符号番号を元の固定長符号に変換することに
より、図4に示した構成に比べて、若干、復号テーブル
のメモリサイズが増加するが、それ以上に、演算部のハ
ードウェア規模を小さくして、装置全体のハードウェア
規模を小さくするとともに、復号動作周波数を高めた装
置。
【0047】[構成]図8は第1実施例の復号装置の構成
例を示すブロック図である。なお、図8において、図1,3
と同様の構成には、同一符号を付して、その詳細説明は
省略する。また、図1,3に示した構成と比較するため
に、ハフマン符号や符号長情報などのビット数は図1,3
と同じする。さらに、図8の構成において、符号番号お
よび符号長をどのような演算・論理回路で求めるのか、
といった説明は図9を用いて後述する。
【0048】図8において、501は演算部で、アンパッキ
ング回路103からハフマン符号を入力して、そのハフマ
ン符号の冗長符号番号502と符号長情報106の上位3ビッ
トを演算するものである。503は復号テーブルで、9ビッ
トの冗長符号番号信号502を入力して、8ビットの固定長
符号に変換するとともに、符号長情報106の下位1ビット
を出力するものである。このように、復号テーブル503
の入出力ビット数はそれぞれ9ビットになる。従って、
復号テーブル503のメモリサイズは次式に示すように576
バイトになり、図1に示す復号テーブル104(96kバイ
ト)の約1/170、図3に示す復号テーブル303(256バイト)
の約二倍のメモリサイズになる。 2^9×9 = 512×9 = 4,608ビット = 576バイト …(3)
【0049】このように、復号テーブルのメモリサイズ
は図3に示した構成に比べて増加するが、これから説明
するように、その演算部の回路規模は図4に示した構成
に比べて半分程度にすることができる。
【0050】次に、演算部501の構成およびその動作を
説明するが、説明を簡単にするために、図4の場合と同
様に一例として、最長6ビットの九通りのハフマン符号
から4ビットの冗長符号番号と3ビットの符号長情報の上
位2ビットを求める小規模な回路を説明する。また、使
用するハフマン符号表は、図5に示したものを用いる。
【0051】図9は演算部501の構成例を示すブロック図
であるが、図4と同様の構成には、同一符号を付して、
その詳細説明は省略する。図10はハフマン符号と冗長符
号番号との対応関係例を示す図で、この対応関係は後述
する。
【0052】図9において、513と515はそれぞれレジス
タで、それぞれ3ビット符号長の下限境界値に対応する
冗長符号番号と、5ビット符号長の下限境界値に対応す
る冗長符号番号を保持する。
【0053】本実施例は、奇数ビット符号長の下限境界
値に対応する冗長符号番号をレジスタに保持し、端子42
0に入力されたハフマン符号の符号長を2ビット単位で識
別して、その識別結果に基づいて冗長符号番号を選択す
る。そして、入力されたハフマン符号と、それに対応す
る下限境界値との差分値を、選択した冗長符号番号に加
算することにより、そのハフマン符号に対応する冗長符
号番号を求めるものである。なお、1ビット符号長の下
限境界値に対応する冗長符号番号は、先述した符号番号
と同様に‘0’であるため、保持する必要はない。ま
た、ハフマン符号の符号長を2ビット単位で識別する目
的は、入力されたハフマン符号と各ビット長の下限境界
値とを比較し差分を求める減算器の個数を半分以下に減
らすためである。これにより、ハフマン符号は、2i-1ビ
ット以上かつ2iビット以下(i=1,2,3)の三種類に分類識
別される。
【0054】518は第1のセレクタで、上記の識別結果
(信号442,444)に基づいて、レジスタ513または515か
ら入力された冗長符号番号を選択する。つまり、ハフマ
ン符号長が3〜4ビットのときはレジスタ513を選択し、5
〜6ビットのときはレジスタ515の出力を選択する。ただ
し、0〜1ビットのときは何も選択せずに‘0’を出力す
る。519は第2のセレクタで、上記の識別結果(信号442,
444,446)に基づいて、ハフマン符号とそれに対応する
下限境界値との差分値を選択する。両セレクタの出力
は、加算器473により加算され、その加算結果は冗長符
号番号として端子524へ出力される。
【0055】520はプライオリティエンコーダで、上記
の識別結果(信号442,444,446)をエンコードして、そ
の結果を3ビットの符号長情報の上位2ビットとして端子
522へ出力する。
【0056】[動作]ここで、具体的なデータを用い
て、図9に示す演算部501の動作を説明する。
【0057】図4の説明と同様に、端子420にデータ‘11
1010’が入力されたとする。このデータは、図7に示し
たように、レジスタ402に保持された3ビット符号の下限
境界値‘100000’より大きく、レジスタ404に保持され
た5ビット符号の下限境界値‘111100’よく小さい。従
って、入力データ中に存在するハフマン符号は、3ビッ
ト以上4ビット以下と判定され、信号線442,444,446の
内、信号444のみが‘1’になる。
【0058】これにより、第1のセレクタ518はレジスタ
513(保持している内容は“2”)の出力を選択し出力す
る。また、第2のセレクタ519は、減算器422により得ら
れた入力データ‘111010’と3ビット長ハフマン符号の
下限境界値‘100000’の差分‘011010’を、シフタ464
により2ビット右へシフトした値‘0110’(=6)を選択し
出力する。加算器473は、両セレクタの出力を加算した
結果(6+2=8)を冗長符号番号として端子524へ出力する。
冗長符号番号「8」は、図10に示すように、入力データ
‘111010’の上位4ビットのハフマン符号‘1110’に対
応する。
【0059】一方、プライオリティエンコーダ520は、
信号442,444,446をエンコードした結果‘01’を、符号
長の上位2ビット信号として端子522へ出力する。端子52
4から出力された冗長符号番号は、復号テーブル603へ入
力され、符号長の最下位ビット‘1’が出力されるの
で、符号長情報は連結されて‘011’の3ビット信号にな
る。なお、本実施例は、前述した(ビット長-1)によっ
て符号長を表す方法を採用しているので、実際の符号長
は4ビットである。
【0060】図10に示すように、符号長が偶数のときは
対応する冗長符号番号は一つだけだが、符号長が奇数の
ときは対応する冗長符号番号が二つ存在する。この理由
は、上記の説明からわかるように、復号するハフマン符
号を2ビット単位で処理するので、奇数ビット長のハフ
マン符号は続く1ビットを付加した偶数ビットにして復
号処理されるためである。付加した1ビットのデータが
‘0’か‘1’かによって冗長符号番号が一つ異なるた
め、奇数ビット長の符号においては、同一のハフマン符
号に対して、二つの冗長符号番号が存在する。
【0061】なお、上述では、復号するハフマン符号を
2ビット単位で処理する例を説明したが、本実施例はこ
れに限ものではなく、これを拡張して4ビット単位、あ
るいはそれ以上で処理することも容易である。例えば、
4ビット単位で処理する場合は、図4に示した演算部の構
成に比べて、減算器の数は約1/4に減り、演算部の回路
規模をさらに縮小することができるが、冗長符号番号の
ビット数は、符号番号のビット数に比べて2ビット増え
るため、復号テーブルのメモリ容量は2の二乗、つまり
四倍になる。それでも復号テーブルのメモリサイズは1k
バイトであり、図1に示した復号テーブル104(96kバイ
ト)の1/96のメモリサイズで済む。
【0062】ただし、復号テーブルを同時に複数種類備
える必要がある場合は、演算部の回路規模の減少より、
復号テーブルのメモリサイズの増加の方が、装置全体の
ハードウェア規模に与える影響が大きいので、ハフマン
符号の処理単位は小さい方が望ましい。
【0063】このように、本実施例によれば、ハフマン
符号を復号する際に、演算によりハフマン符号の符号長
情報の一部と予め定められた冗長符号番号とを求め、復
号テーブルにより求めた冗長符号番号を符号化前の固定
長符号と符号長情報の残りに変換するので、復号テーブ
ルのメモリサイズを低減するとともに、演算部の回路規
模を縮小して、高速にハフマン符号を復号することがで
きる。
【0064】
【第2実施例】以下、本発明にかかる第2実施例の復号装
置を説明する。なお、第2実施例において、第1実施例と
略同様の構成については、同一符号を付して、その詳細
説明を省略する。
【0065】以下で説明する第2実施例は、冗長符号番
号を演算するブロックにおいて、符号長を最上位から最
下位まですべて演算することを特徴とするものである。
【0066】[構成]図11は第2実施例の復号装置の構
成例を示すブロック図である。なお、図11において、図
1,3,8と同様の構成には、同一符号を付して、その詳細
説明は省略する。また、図1,3,8に示した構成と比較す
るために、ハフマン符号や符号長情報などのビット数は
図1,3,8と同じする。さらに、図11の構成において、符
号番号および符号長をどのような演算・論理回路で求め
るのか、といった説明は図12を用いて後述する。
【0067】図11において、601は演算部で、アンパッ
キング回路103からハフマン符号を入力して、そのハフ
マン符号の冗長符号番号と符号長情報(4ビット)を演
算するものである。603は復号テーブルで、9ビットの冗
長符号番号信号502を入力して、8ビットの固定長符号に
変換する。従って、復号テーブル603のメモリサイズは
次式に示すように512バイトになり、図1に示す復号テー
ブル104(96kバイト)の1/192、図3に示す復号テーブル
303(256バイト)の二倍のメモリサイズになる。 2^9×8 = 512×8 = 512バイト …(4)
【0068】次に、演算部601の構成およびその動作を
説明するが、説明を簡単にするために、図4,9の場合と
同様に一例として、最長6ビットの九通りのハフマン符
号から4ビットの冗長符号番号と3ビットの符号長情報を
求める小規模な回路を説明する。また、使用するハフマ
ン符号表は、図5に示したものを用い、ハフマン符号の
符号長を2ビット単位で識別した結果に基づいて、冗長
符号番号を求める。そのため、ハフマン符号と冗長符号
番号の対応は、第1実施例と同様(図10参照)になる。
【0069】図12は演算部601の構成例を示すブロック
図であるが、
【0070】図12において、611は第3のセレクタで、上
記の識別結果に基づいて、レジスタ401,403,405から出
力された2,4,6ビット符号の下限境界値の何れかを選択
する。613は比較器で、第3のセレクタ611により選択さ
れた下限境界値と入力データとを比較して、符号長情報
の最下位ビットを生成する。この最下位ビットは、プラ
イオリティエンコーダ520より出力された符号長情報の
上位2ビットに連結されて、端子615から3ビットの符号
長情報が出力される。
【0071】[動作]ここで、具体的なデータを用い
て、図12に示す演算部601の動作を説明する。なお、第1
のセレクタ518,第2のセレクタ519,プライオリティエ
ンコーダ520など、冗長符号番号を演算する回路は、図9
に示した第1実施例と同一なので、その演算についての
説明は省略する。
【0072】図9の説明と同様に、端子420にデータ‘11
1010’が入力されたとする。第3のセレクタ611は、入力
される三つの信号442,444,446がそれぞれ‘0’,‘1’,
‘0’であるから、レジスタ403に保持された4ビット符
号の下限境界値‘110000’を選択し出力する。入力デー
タ‘111010’は第3のセレクタ611の出力より大きいた
め、比較器613は‘1’を出力し、プライオリティエンコ
ーダ520から出力された2ビット信号‘01’の最下位に連
結されて、‘011’の3ビット信号が符号長情報として端
子615から出力される。
【0073】このように、本実施例によれば、第1実施
例と同様の効果が得られるほか、第1実施例の演算部に
若干の構成を追加することにより、第1実施例の復号テ
ーブルに比べてメモリサイズを低減することができるの
で、復号テーブルを同時に複数種類備える必要がある場
合などに効果的である。
【0074】なお、本発明は、複数の機器から構成され
るシステムに適用しても、一つの機器からなる装置に適
用してもよい。
【0075】また、本発明は、システムあるいは装置に
プログラムを供給することによって達成される場合にも
適用できることはいうまでもない。
【0076】
【発明の効果】以上説明したように、本発明によれば、
小さなメモリサイズのテーブルを用いて高速な復号を行
う復号装置およびその方法を提供することができる。
【図面の簡単な説明】
【図1】1サイクルで一つのハフマン符号を復号する装
置の構成を示す図、
【図2】図1に示した構成をJPEGの復号に適用した場合
の構成を示す図、
【図3】復号テーブルのメモリサイズを小さくした復号
装置の構成例を示すブロック図、
【図4】図3に示す演算部の構成例を示すブロック図、
【図5】ハフマン符号と符号番号との対応関係例を示す
図、
【図6】iビット長符号の下限境界値、それに対応する
ハフマン符号、それに対応する符号番号を示す図、
【図7】各ビット長の符号が占める領域を示す図、
【図8】第1実施例の復号装置の構成例を示すブロック
図、
【図9】図8に示す演算部の構成例を示すブロック図、
【図10】ハフマン符号と冗長符号番号との対応関係例
を示す図、
【図11】第2実施例の復号装置の構成例を示すブロッ
ク図、
【図12】図11に示す演算部の構成例を示すブロック図
である。
【符号の説明】
102 バッファ 103 アンパッキング回路 106 符号長情報信号 401〜405 レジスタ 421〜425 減算器 473 加算器 501 演算部 503 復号テーブル 513,515 レジスタ 518 第1のセレクタ 519 第2のセレクタ 520 プライオリティエンコーダ 601 演算部 603 復号テーブル 611 第3のセレクタ 613 比較器

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 入力符号の符号長情報の一部と予め定め
    られた符号番号とを演算する演算手段と、 前記演算手段によって得られた符号番号を符号化前の固
    定長符号と前記符号長情報の残りに変換する変換手段と
    を有することを特徴とする復号装置。
  2. 【請求項2】 前記符号は可変長符号であることを特徴
    とする請求項1に記載された復号装置。
  3. 【請求項3】 前記符号番号は冗長符号番号であること
    を特徴とする請求項1に記載された復号装置。
  4. 【請求項4】 前記演算手段は、 所定ビット数ごとの複数の符号の境界値およびその境界
    値に対応する符号番号をそれぞれ保持する保持部と、 前記保持部に保持された複数の境界値と前記入力符号と
    を比較する比較部と、 前記比較部の比較結果に基づいて前記入力符号の符号長
    の範囲を判別する判別部と、 前記判別部の判別結果に対応する前記保持部に保持され
    た境界値と前記入力符号との差分を求める減算部と、 前記判別部の判別結果に基づいて前記保持部に保持され
    た符号番号を選択する選択部と、 前記減算部によって得られた差分と前記選択部によって
    選択された符号番号とを加算する加算部とを含むことを
    特徴とする請求項1から請求項3の何れかに記載された復
    号装置。
  5. 【請求項5】 前記演算手段は、さらに、前記判別部の
    判別結果から前記符号長情報の一部を生成する生成部を
    含むことを特徴とする請求項4に記載された復号装置。
  6. 【請求項6】 入力符号の符号長情報と予め定められた
    符号番号とを演算する演算手段と、 前記演算手段によって得られた符号番号を符号化前の固
    定長符号に変換する変換手段とを有することを特徴とす
    る復号装置。
  7. 【請求項7】 前記符号は可変長符号であることを特徴
    とする請求項6に記載された復号装置。
  8. 【請求項8】 前記符号番号は冗長符号番号であること
    を特徴とする請求項6に記載された復号装置。
  9. 【請求項9】 前記演算手段は、 所定ビット数ごとの複数の符号の境界値およびその境界
    値に対応する符号番号をそれぞれ保持する保持部と、 前記保持部に保持された複数の境界値と前記入力符号と
    を比較する比較部と、前記比較部の比較結果に基づいて
    前記入力符号の符号長の範囲を判別する判別部と、 前記判別部の判別結果に対応する前記保持部に保持され
    た境界値と前記入力符号との差分を求める減算部と、 前記判別部の判別結果に基づいて前記保持部に保持され
    た符号番号の一つを選択する第一の選択部と、 前記減算部によって得られた差分と前記第一の選択部に
    よって選択された符号番号とを加算した結果を前記符号
    番号として出力する加算部と、 前記判別部の判別結果に基づいて前記保持部に保持され
    た境界値の一つを選択する第二の選択部と、 前記第二の選択部によって選択された境界値と前記入力
    符号との比較結果および前記判別部の判別結果から前記
    符号長情報を生成する生成部とを有することを特徴とす
    る請求項6から請求項8の何れかに記載された復号装置。
  10. 【請求項10】 入力符号の符号長情報の一部と予め定
    められた符号番号とを演算する演算ステップと、 前記演算ステップで得た符号番号を符号化前の固定長符
    号と前記符号長情報の残りに変換する変換ステップとを
    有することを特徴とする復号方法。
  11. 【請求項11】 入力符号の符号長情報と予め定められ
    た符号番号とを演算する演算ステップと、 前記演算ステップで得た符号番号を符号化前の固定長符
    号に変換する変換ステップとを有することを特徴とする
    復号方法。
JP29528194A 1994-11-29 1994-11-29 復号装置およびその方法 Expired - Fee Related JP3332619B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29528194A JP3332619B2 (ja) 1994-11-29 1994-11-29 復号装置およびその方法
US08/566,583 US5801650A (en) 1994-11-29 1995-11-28 Decoding apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29528194A JP3332619B2 (ja) 1994-11-29 1994-11-29 復号装置およびその方法

Publications (2)

Publication Number Publication Date
JPH08162970A true JPH08162970A (ja) 1996-06-21
JP3332619B2 JP3332619B2 (ja) 2002-10-07

Family

ID=17818576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29528194A Expired - Fee Related JP3332619B2 (ja) 1994-11-29 1994-11-29 復号装置およびその方法

Country Status (2)

Country Link
US (1) US5801650A (ja)
JP (1) JP3332619B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841381A (en) * 1993-12-20 1998-11-24 Canon Kabushiki Kaisha Huffman coding/decoding using an intermediate code number
JP2002261623A (ja) * 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
JP2011004338A (ja) * 2009-06-22 2011-01-06 Fujifilm Corp データ復号化装置

Families Citing this family (34)

* 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 忠弘 大見 画像信号処理方法、画像信号処理システム、記憶媒体及び撮像装置
CA2247548A1 (en) * 1998-09-15 2000-03-15 Steven M. Nowick A high-speed asynchronous decompression circuit for variable-length-coded data
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 符号化装置及び方法
JP3358721B2 (ja) * 1999-06-29 2002-12-24 日本電気株式会社 ハフマン符号復号化装置
US6865299B1 (en) 1999-07-27 2005-03-08 Canon Kabushiki Kaisha Coding apparatus and method
US6762770B1 (en) * 1999-10-29 2004-07-13 Apple Computer, Inc. Method and system for the representation of color and other attributes in bitmap fonts
US6518896B1 (en) * 2000-01-15 2003-02-11 Sony Electronics, Inc. Multiple symbol length lookup table
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
EP1271926B1 (en) * 2001-06-18 2015-08-12 Canon Kabushiki Kaisha Image processing method, apparatus and computer program for compression-encoding
EP1292153B1 (en) * 2001-08-29 2015-08-19 Canon Kabushiki Kaisha Image processing method and apparatus, computer program, and storage medium
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
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
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
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
JP4366250B2 (ja) 2003-06-23 2009-11-18 キヤノン株式会社 データ変換処理装置及びプログラム
DE10353289B4 (de) * 2003-11-14 2009-10-15 Infineon Technologies Ag Verfahren und Vorrichtung zur Kompression von Datenpaketen
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 キヤノン株式会社 データ変換装置及びその制御方法
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4044347A (en) * 1975-05-19 1977-08-23 International Business Machines Corporation Variable-length to fixed-length conversion of minimum-redundancy codes
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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841381A (en) * 1993-12-20 1998-11-24 Canon Kabushiki Kaisha Huffman coding/decoding using an intermediate code number
JP2002261623A (ja) * 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
JP2011004338A (ja) * 2009-06-22 2011-01-06 Fujifilm Corp データ復号化装置

Also Published As

Publication number Publication date
US5801650A (en) 1998-09-01
JP3332619B2 (ja) 2002-10-07

Similar Documents

Publication Publication Date Title
JP3332619B2 (ja) 復号装置およびその方法
JP3227292B2 (ja) 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US6014095A (en) Variable length encoding system
JP4886755B2 (ja) コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法
US6798833B2 (en) Video frame compression/decompression hardware system
US6993202B2 (en) Decoding apparatus, method, and storage medium for inputting and decoding variable-length coded data
JPH0645950A (ja) 信号生成装置とその方法
JPH0818460A (ja) ハフマンデコーダー
JPH10135843A (ja) 単位処理システムにおける可変長コード検出装置及びその方法
JP3341962B2 (ja) 可変長復号器及び可変長符号値を復号化する方法
JP3410629B2 (ja) 可変長符号化回路及び可変長符号化方法
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
JP2001308715A (ja) 可変長符号化装置および可変長復号装置
US6408102B1 (en) Encoding/decoding device
Tian et al. Full RDO-support power-aware CABAC encoder with efficient context access
KR20050010918A (ko) 가변길이 복호화를 위한 방법 및 시스템, 및 코드워드들의지역화를 위한 장치
JP2002026737A (ja) データ復号化装置とその方法
JP2000261324A (ja) ハフマン復号化回路
JP4537089B2 (ja) 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
KR20030062229A (ko) 비디오 데이터를 런-렝스 인코딩하는 방법 및 장치
US7165086B2 (en) System, method, and apparatus for division coupled with rounding of signed binary numbers
JP2001016110A (ja) ハフマン符号復号化装置
JPH08167855A (ja) ハフマン復号化回路
US6539061B1 (en) Efficient method for decompressing difference coded signals
JP3239664B2 (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: 20020701

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