JP2002330076A - ハフマン復号装置及び復号方法 - Google Patents

ハフマン復号装置及び復号方法

Info

Publication number
JP2002330076A
JP2002330076A JP2001130570A JP2001130570A JP2002330076A JP 2002330076 A JP2002330076 A JP 2002330076A JP 2001130570 A JP2001130570 A JP 2001130570A JP 2001130570 A JP2001130570 A JP 2001130570A JP 2002330076 A JP2002330076 A JP 2002330076A
Authority
JP
Japan
Prior art keywords
decoding
huffman
code
value
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001130570A
Other languages
English (en)
Inventor
Iwao Honda
巌 本田
Koji Tanaka
康治 田中
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2001130570A priority Critical patent/JP2002330076A/ja
Publication of JP2002330076A publication Critical patent/JP2002330076A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 ハフマン符号の復号処理を高速化すると共
に、冗長性を抑えた復号テーブルを提供する。 【解決手段】 ROM2に格納する復号用テーブルに分
岐情報と分岐数とハフマン符号列の先頭1ビットが
「0」の場合の次の第1の相対アドレスと先頭ビットが
「1」の場合の次の第2の相対アドレスを備え、一度に
処理するビット数を可変とし、ハフマン符号列から現在
の参照テーブル情報に応じて可変長の符号切り出しを行
い、切り出した符号値を次のアドレス情報として用い
て、復号を進める。テーブルから取得した情報の分岐情
報が多分岐であれば、同時に得られた次の切り出し長を
可変し、複数の符号を切り出すことにより処理を高速に
行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、可変長符号化の一
つであるハフマン符号化を用いて符号化されたハフマン
符号列を復号するハフマン復号装置及びその復号方法に
関し、特に、例えばAAC(Advanced Audio Coding)
等の音声圧縮データのハフマン符号化された符号ビット
列に基づいてハフマン符号を復号するハフマン復号装置
及び復号方法に関する。
【0002】
【従来の技術】音声圧縮符号化方式として知られている
MPEG、AC3,MP3、AAC規格などにおいて
は、音声データを量子化し、さらにハフマン符号などを
用いた可変長符号化を行って圧縮データを得ている。特
に、AACは、従来の音声圧縮技術に比べ、より高音質
に圧縮される技術であり、日本のBSデジタル放送に応
用されている。
【0003】ところで、量子化は、例えば連続する信号
を適当な間隔で代表値に置き換え、代表値の番号を符号
化する技術である。
【0004】量子化された画像データ及び音声データ並
びに適当に区切られたバイナリ・データなどは有限の状
態数を持つシンボルである。これらシンボルの生起確率
に偏りがあれは、情報量を削減することができる。
【0005】可変長符号化は、シンボルの生起確率の偏
りを利用して、情報量を削減する技術であり、生起確率
の高いシンボルに短い符号を与え、生起確率の低いシン
ボルに長い符号を与えれば、全体としてデータ長を短く
することができる。このような可変長符号化により圧縮
されたデータは、完全に元に戻すことができように成っ
ており、これは可逆符号化と呼ばれる。
【0006】可逆符号化は、エントロピ符号化とも呼ば
れる可変長符号化の処理である。エントロピ符号化は、
符号化すべきシンボルの出現頻度の対数の絶対値に比例
する長さを持つ可変長符号をそのシンボルに割り当てる
ことによって行われる。可逆符号化の代表的なものにハ
フマン符号化がある。
【0007】ハフマン符号(Huffman code)は、出現頻
度に対する統計的なデータ圧縮技術であり、シンボルの
生起確率が2のべき乗分の1のときにエントロピ符号化
として最適な符号(code)である。
【0008】例えば「ディジタル画像圧縮の基礎」(安
田 浩、渡辺 裕著、日経BP出版センター出版、19
96年1月20日第1版1刷発行)などに記載されてい
るような手順で符号化される。この符号化は、次の手順
に従って生成される。 (1)全てのシンボルに生起確率の高い順番からランク
付けを行う。 (2)最も生起確率の低い2つのシンボルをまとめて新
しいシンボルを作成する。例えば、図10に示すような
2進木の枝の分岐点であるノードの確率がその上の全て
のノードの確率になるようにする。 (3)図10の上からそれぞれの枝へのパスをたどり、
各枝の分岐点である各ノードで符号「0」、「1」を割
り当てる。
【0009】具体的に、図8に基づいて説明する。
【0010】第1のステップでは、aからfまでの6個
のシンボルが生起確率の順に並べられている。最も確率
の低いシンボルはb,c,d,eであり、例えば最も生
起確率の低い2つのシンボルdとeを選ぶ。dとeをま
とめて一つのシンボルdeとする。シンボルdeの生起
確率は1/12+1/12=1/6である。
【0011】第2のステップでは、5個のシンボルa,
b,c,de,fのうち、最も生起確率の低いシンボル
はb,c,deであり、例えばbとcを選ぶ。これらを
まとめて一つのシンボルbcとする。シンボルbcの生
起確率は1/6である。その結果、a,bc,de,f
の4個のシンボルが得られる。
【0012】第3のステップでは、最も生起確率の低い
シンボルa,bc,deから、例えば最も生起確率の低
い2つのシンボルbcとdeを選ぶ。シンボルbcとd
eをまとめてシンボルbcdeを作る。シンボルbcd
eの生起確率は1/3である。
【0013】第4のステップでは、生起確率の低い2つ
のシンボルaとbcdeをまとめてシンボルabcde
を作る。シンボルabcdeの生起確率は1/2であ
る。
【0014】これによりシンボルabcdeの生起確率
は1/2となり、シンボルをまとめる操作を終了する。
図10を上から見ると木から枝への分岐となる。そこで
木の根元側である図10の上から順に「0」と「1」を
割り当てる。
【0015】第4のステップでは、f側に「1」、ab
cde側に「0」を割り当てる。次にabcde側で
は、aに「0」、bcde側に「1」を割り当てる。b
cde側については、第3のステップに戻って、bc側
に「0」、de側に「1」を割り当てる。更に、第2の
ステップに戻って、b側に「0」、c側に「1」を割り
当てる。更に、第1のステップに戻り、d側に「0」、
e側に「1」を割り当てる。これらのバイナリ符号を連
ねたものが図9に示されるハフマン符号である。また、
図10は2進木の各ノードで符号「0」、「1」を割り
当てた木を示す。尚、図10の黒丸は各シンボルを示
し、白丸は各枝の分岐点である各ノードを示す。
【0016】ハフマン符号の復号方法には、前述の2進
木の各ノードに割り当てられたハフマン符号列を1ビッ
ト単位で切り出す2分木探索を用いて復号する方法や、
ハフマン符号列の少なくとも2ビット以上の固定長の符
号列を切り出して復号を速く行うよう復号テーブルを用
意して、ハフマン符号列の先頭からの固定長のビット切
り出しとテーブル参照を繰り返すことで復号するものな
どがある。
【0017】図11は、ハフマン符号列を1ビット単位
で切り出し復号を行う復号回路のブロック図である。こ
の復号回路は、処理回路20とメモリ21とを有する。
【0018】メモリ21は、例えば、図12に示すよう
に復号値の数の分だけアドレスを有し、一つのアドレス
に符号長と復号値を格納する。また、メモリ21のアド
レスは、一つのハフマン符号の値と同一とし、それ以外
のアドレス値が入力された場合には、全てのデータを
「0」として出力する構成とする。
【0019】処理回路20は、図示しないが、最大符号
長分の段数を有するシフタと、そのシフタに取り込んだ
符号数を計数するカウンタと、メモリ21から出力され
る符号長の値とカウンタの値を比較する比較器とから成
る。また、処理回路20は、最新のハフマン符号の値を
最下位のアドレス値とするため、シフタの初段の値をメ
モリ21のアドレスへ出力する。また、シフタの値は、
復号開始時に初期化され、全て「0」となる。
【0020】具体的には、例えば、「0101」という
ハフマン符号列の復号を説明する。まず、処理回路20
のシフタの値は、復号開始時に初期化され、全て「0」
である。処理回路20では、符号列の先頭の1ビット
「0」が切り出されシフタに取り込まれると共にカウン
タの値を「1」とする。次に、処理回路20は、シフタ
の値「0000」をアドレス値としてメモリ21へ出力
する。アドレス「0000」に対応して符号長データ
「2」がメモリ21から処理回路20へ出力される。そ
して、処理回路20では、シフタに取り込まれた符号数
「1」と符号長「2」とが比較され、不一致であること
により、復号処理が続けられる。
【0021】次に、処理回路20では、符号の2ビット
目「1」が切り出されてシフタに取り込まれると共にカ
ウンタの値を+1して「2」とする。更に、処理回路2
0は、シフタの値「0001」をアドレス値としてメモ
リ21へ出力する。アドレス「0001」に対応して符
号長データ「1」がメモリ21から処理回路20へ出力
される。そして、処理回路20において、シフタが取り
込まれた符号数「2」と符号長「1」とが比較され、不
一致であることにより、復号処理が続けられる。
【0022】次に、処理回路20では、符号の3ビット
目「0」が切り出されシフタに取り込まれると共にカウ
ンタの値を+1して「3」とする。そして、処理回路2
0は、シフタの値「0010」をアドレス値としてメモ
リ21へ出力する。アドレス「0010」は存在しない
ので、全データ「0」がメモリ21から処理回路20へ
出力する。処理回路20において、シフタが取り込まれ
た符号数「3」とメモリ21からの出力「0」とが比較
され、不一致であることにより、復号処理が更に続けら
れる。
【0023】続く処理において、処理回路20では、符
号の4ビット目「1」が切り出されてシフタに取り込ま
れると共にカウンタの値を+1して「4」とする。そし
て、処理回路20は、シフタの値「0101」をアドレ
ス値としてメモリ21へ出力する。アドレス「010
1」に対応して符号長データ「4」がメモリ21から処
理回路20へ出力される。処理回路20において、シフ
タに取り込まれた符号数「4」とメモリ21の符号長
「4」とが比較され、一致であることにより、メモリ2
1の復号語「c」が外部へ出力される。更に、処理回路
20では、シフタを初期化して「0」に設定し、次のハ
フマン符号列の復号を上述同様に処理を進める。
【0024】このように、ハフマン符号列を1ビット単
位で切り出し復号を行う復号回路においては、上述のご
とく、一つのハフマン符号列の復号処理を行うときに符
号長分の数のメモリアクセスと処理が必要となる。
【0025】図13は、従来の別の復号方法の例を示す
固定長の符号列を切り出して復号する方法に用いるハフ
マン符号化テーブルである。ここで、例えば固定長は4
ビットとする。
【0026】図13は、符号化ビット長(length)と符
号化値(code word)と元の信号の情報(index)をテー
ブル化したものである。具体的に、図14を用いて説明
する。
【0027】図14(A)の上位4ビット(D7,D
6,D5,D4)は、符号化値の符号化ビット長(code
wordのlength)を示す有効ビット数を設定し、下位の
4ビット(D3,D2,D1,D0)に元の信号の情報
(index)を設定する。符号化ビット長の上位2ビット
が「11」の場合、図14(B)の如くなり、固定長の
切り出しビット数(ここでは4ビット)に対して、切り
出しビット数が不足していることを示すフラグ(flag)
を意味する。
【0028】また、通常上位2ビット(D7,D6)は
「11」以外の値を設定するものとする。この場合のテ
ーブルは、下位の2ビット(D1,D0)に切り出しビ
ット数の不足ビット数(n)を設定し、上位3ビット目
から6ビット目(D5,D4,D3,D2)にそのとき
の参照アドレスからどれだけ進んだアドレスを参照する
かのオフセット値(offset)を設定する。
【0029】具体的には、例えばハフマン符号長の符号
が4ビットで最初にハフマン符号列の先頭から切り出し
た4ビットの値が「0101」である場合、この値をテ
ーブルの先頭(アドレス「00000」)からのオフセ
ット値として参照アドレスが生成されるとアドレス値は
「00101」である。アドレス「00101」のテー
ブルの値は、「00010101」である。この値の上
位4ビット(D7,D6,D5,D4)は「0001」
であり、有効ビット数は1ビットである。次に、下位の
4ビット(D3,D2,D1,D0)は「0101」で
あり元の信号の情報は5であることが分かる。更に、符
号化ビット長が1ビットなので、最初の4ビット切り出
しの際に3ビット余分に読み出したことが分かり、切り
出しポイントが3ビット分戻されて一つの元の信号の情
報の復号処理を終了する。
【0030】また、符号化ビット長が4ビットより大き
い符号化値の場合は、例えばハフマン符号列の最初の切
り出した4ビットの値が「1110」の場合、テーブル
の値は「11000010」である。この値の上位2ビ
ット(D7,D6)は「11」であり、切り出したビッ
ト数が不足していることを示すフラグである。
【0031】そのテーブルの下位2ビット(D1,D
0)は「10」であり、切り出しビット数の不足ビット
(n)は2ビットであることが分かる。そして、テーブ
ルの上位3ビット目から6ビット目(D5,D4,D
3,D2)は「0000」であり、現在の参照アドレス
「01110」からどれだけ進んだアドレスを参照する
かを示すオフセット値は0であり、参照テーブルのアド
レスの基点は現在参照しているアドレス値「0111
0」である。
【0032】次に、不足分のハフマン符号列を切り出
す。ここで切り出した値が例えば「0010」の場合、
この値を上述のアドレスの基点からのオフセット値とし
て新しい参照アドレスを生成すると、つまり「0111
0」に「0010」を加算したアドレス値「1000
0」を得る。アドレス値「10000」のテーブルの値
は「00100001」である。この値の上位4ビット
(D7,D6,D5,D4)は「0010」なので有効
ビット数は2ビットであり、下位4ビット(D3,D
2,D1,D0)は「0001」なので元の信号の情報
は1である。最後に、上位の4ビット(D7,D6,D
5,D4)の有効ビット数が2ビットであることにより
ハフマン符号列の切り出し4ビットに対して2ビット余
分に読んだことが分かり、次の符号列の切り出しポイン
トが2ビット戻され一つの元の信号の情報の復号処理を
終了する。次のハフマン符号列の復号は、前述の処理を
繰り返すことにより元の信号の情報に復号される。
【0033】
【発明が解決しようとする課題】上述した2分木探索を
用いる方法では、上述の如く、ハフマン符号列を1ビッ
ト単位で切り出して処理を進めるので、割り当てられた
符号が長いものに対して処理回数が符号長分必要とな
り、処理時間の短縮化ができなかった。
【0034】また、固定長の符号列を切り出して復号す
る方法では、固定長の符号列を切り出すため、一度に複
数のビット処理を行うことが可能であり、処理時間の短
縮化が計ることができる。しかし、固定長で処理を行う
場合、入力符号が固定長の整数倍に対しては過不足なく
処理できるが、ハフマン符号のような可変長符号を固定
長で処理するので、図10の木に存在しない判定も行う
必要がある。その為、その分を冗長な復号テーブルとし
て用意する必要があり、そのテーブルを格納しておくメ
モリのサイズが大きくなるという障害になっていた。
【0035】
【課題を解決するための手段】本発明は、上述した点に
鑑みて、創作されたものであり、その特徴とするところ
は、ハフマン符号列を入力するシフト回路と、前記符号
列の復号を行うためのデータが格納された復号テーブル
と、前記シフト回路から送出される符号と前記復号用参
照テーブルの値とを比較する比較回路と、前記比較回路
から出力されるアドレス情報に基づいて、次の復号用参
照テーブルのアドレスを出力するアドレス生成器とを備
え、前記アドレスに応じて前記復号テーブルからデータ
が読み出されることを特徴とする。
【0036】また、前記復号テーブルに、前記シフト回
路から送出される符号に対応して次に処理すべきビット
情報を含むことを特徴とする。
【0037】特に、前記ビット情報は、ハフマン符号の
復号値または前記復号テーブルの次の参照すべきアドレ
スであることを特徴とする。
【0038】また、前記ビット情報は、ハフマン符号の
復号値の格納を示すフラグであることを特徴とする。
【0039】また、前記ビット情報は、ハフマン符号列
から次の符号を1ビット切り出す2分岐、または、ハフ
マン符号列から次の符号を少なくとも2ビット以上の符
号を切り出す多分岐を示す分岐情報であることを特徴と
する。
【0040】特に、前記シフト回路は、前記比較回路か
らの信号に基づきハフマン符号列から任意の長さのビッ
ト数を切り出すことを特徴とする。
【0041】更に、前記テーブルには、ハフマン符号列
の次に切り出す符号のビット数を格納することを特徴と
する。
【0042】また、前記比較回路は、前記復号テーブル
からのコードワードの長さに応じて、ハフマン符号列の
切り出すべきデータ長を示す信号を前記シフト回路に出
力することを特徴とする。
【0043】また、入力されてくるハフマン符号列を可
変の切り出し数でシフトし、 シフトされた符号データ
と復号テーブルに格納された復号用参照テーブルの値と
を比較し、比較することにより次の参照すべきアドレス
情報または復号値を出力し、前記アドレス情報の場合、
前記復号テーブルからデータを読み出すと共にシフト数
を可変することを特徴とする。
【0044】本発明によれば、冗長性を抑えたハフマン
復号テーブルと、一度に処理する符号列のビット数を可
変とし、ハフマン符号列から現在のテーブル情報に応じ
て可変長の切り出しを行い、切り出したデータをテーブ
ルの次のアドレスとして使用し、テーブルから取得した
情報が分岐情報であれば同時に得られた情報に基づいて
次の切り出し長を可変することで処理速度の高速化を図
る。また、ハフマン復号テーブルに2分木と多分木を用
いたテーブル情報を設定することで冗長性を抑える。こ
れにより復号処理の高速化を図ると共に冗長性を抑えた
復号テーブルを供給する。
【0045】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
【0046】図1は、本発明の実施の形態を示すブロッ
ク図である。
【0047】1はシフタである。シフタ1は、可変長符
号ビット列であるハフマン符号列が外部より供給され、
後述する比較器3が出力する符号切り出しビット数Nの
値に応じて、定まるビット数分だけ切り出して符号を出
力する。
【0048】2はテーブルROMである。ROM2は後
述するアドレス生成器4の出力をアドレス入力とし、復
号用テーブルデータと、復号値とフラグとを格納する。
【0049】3は比較器である。比較器3は、シフタ1
から出力される符号とROM2から出力されるテーブル
データとを参照し、分岐情報であるか、あるいは、復号
値を示すフラグであるかを判定する。比較器3から、判
定結果に応じて符号の切り出しビット数Nをシフタ1へ
出力する。また、比較器3において、前述の分岐情報で
あること判定した場合に、ROM2のテーブルの値とシ
フタ1から出力される符号の値とに応じて、相対アドレ
ス及び分岐アドレスが決定され、アドレス生成器4へ出
力される。
【0050】尚、相対アドレスは、比較器3がシフタ1
から出力された符号の値に基づいて、ROM2のテーブ
ルデータの第1または第2の相対アドレスを選択した値
である。また、分岐アドレスは、シフタ1がビット数N
の値に応じて出力する符号の値である。
【0051】4はアドレス生成器である。アドレス生成
器4は、比較器3から出力された相対アドレスの値と分
岐アドレスの値と、復号開始の際に外部回路(図示せ
ず)から設定される基準アドレスの値とを加算し、その
加算結果を参照アドレスとしてROM2へ出力する。
【0052】図3は、本発明のハフマン符号列の復号処
理に用いる復号用テーブルの設定例である。図3に示す
テーブルに、図4(A)に示すように、2分岐か多分岐
かを判定する元となる分岐情報と、多分岐の場合におけ
る分岐数と、符号の値に対応した第1及び第2の相対ア
ドレスが格納される。詳しくは、上位2ビット(D1
2,D11)は、分岐情報である。分岐情報に続く3ビ
ット(D10,D9,D8)は、多分岐である場合に分
岐の数を示す分岐数である。更に、分岐数に続く8ビッ
ト(D7〜D0)の上位4ビット(D7,D6,D5,
D4)にハフマン符号の先頭1ビットの値が「0」であ
るときに対応する第1相対アドレス(address_0)と、
その下位4ビット(D3,D2,D1,D0)に符号の
先頭1ビットの値が「1」であるときに対応する第2相
対アドレス(address_1)を設定する。
【0053】また、図3に示すテーブルに、図4(B)
に示すように、上位2ビット(D12,D11)に復号
値が格納されていることを示すフラグの値「11」が、
下位4ビット(D3,D2,D1,D0)に復号値が格
納されている。
【0054】ここで、分岐情報は、その設定値が「0
1」で且つ符号列から切り出した先頭1ビットの符号の
値が「0」の場合と、その設定値が「10」で且つ符号
列から切り出した先頭1ビットの符号の値が「1」の場
合には、多分岐を示し、それ以外においては、2分岐を
示す。但し、分岐情報の値「11」の場合は、復号値が
格納されていることを示すフラグである。
【0055】次に、例えば入力するハフマン符号列を
「ABCD」とし、その値が「0101」の場合を図2
の復号処理手順を示すフロチャートを用いて説明する。
ここで、「A」は、符号列の先頭1ビットの値「0」で
ある。「B」は、「A」に続く符号であり、その値は
「1」である。
【0056】まず、最初の第1のステップ(S1)にお
いて、外部の制御回路により、アドレス生成器4へ基準
アドレスが例えば「0」に設定される。また、外部の制
御回路により、比較器3の相対及び分岐アドレスの値が
共に「0」に初期化される。更に、外部の制御回路によ
り、比較器3のビット数Nの値が「1」に初期化され
る。
【0057】次に、第2のステップ(S2)において、
シフタ1は、比較器3から出力されるビット数Nの値
「1」に応じて1ビット分が切り出され、符号「A」を
出力する。尚、符号「A」の値は、「1」である。
【0058】次に、第3のステップ(S3)において、
アドレス生成器4で、比較器3から出力される相対及び
分岐アドレスの値「0」と基準アドレスの値「0」とが
加算され、その加算結果の値「0」が参照アドレスとし
てROM2へ出力される。これにより、ROM2から、
参照アドレス「0」に対応したテーブルデータ「000
0000010111」が読み出され比較器3へ出力さ
れる。
【0059】次に、第4のステップ(S4)において、
比較器3において、ROM2から出力される分岐情報の
値「00」とシフタ1から出力された符号「A」とが参
照される。そして、分岐情報の値が「00」であること
より2分岐と判定する。よって、次の処理は、第6のス
テップ(S6)へ進む。
【0060】第6のステップ(S6)において、比較器
3では、2分岐であるので、分岐アドレスの値が「0」
に設定され、その分岐アドレスはアドレス生成器4へ出
力される。また、比較器3では、シフタ1から出力され
た符号「A」の値、つまり「0」に応じて、テーブルデ
ータの第1の相対アドレスが選択され、その値「000
1」は相対アドレスとしてアドレス生成器4へ出力され
る。更に、比較器3では、2分岐であるのでビット数N
の値は「1」に設定され、そのビット数Nはシフタ1へ
出力される。そして、第2のステップ(S2)へ戻り、
処理を続ける。
【0061】第2のステップ(S2)において、シフタ
1は、ビット数Nの値「1」に応じて、「A」に続く符
号が1ビット分切り出され、その切り出された符号
「B」は比較器3へ出力される。
【0062】次の第3のステップ(S3)においては、
アドレス生成器4では、比較器3から出力される相対ア
ドレスの値「0001」と分岐アドレスの値「0」と基
準アドレスの値「0」とが加算され、その加算結果の値
「0001」は参照アドレスとしてROM2へ出力され
る。そして、ROM2の参照アドレス「0001」に格
納されているテーブルデータの値「100100010
0011」は比較器3へ出力される。
【0063】次に、第4のステップ(S4)において、
比較器3では、ROM2から出力される分岐情報の値
「10」とシフタ1から出力された符号「B」とが参照
される。ここで、符号「B」の値は、「1」である。そ
して、比較器3では参照の結果、多分岐であることが判
定される。よって、次の処理は、第5のステップ(S
5)へ進む。
【0064】第5のステップ(S5)において、比較器
3では、シフタ1から出力された符号の値「1」は分岐
アドレスとしてアドレス生成器4へ出力される。更に、
比較器3では、シフタ1から出力された符号の値「B」
に応じて第2の相対アドレスの値「0011」が選択さ
れて、その選択した値は相対アドレスとしてアドレス生
成器4へ出力される。また、比較器3では、分岐数の値
「010」がビット数Nの値としてシフタ1へ出力され
る。そして、第2のステップ(S2)へ戻り、処理を続
ける。
【0065】第2のステップ(S2)において、シフタ
1では、ビット数Nの値「010」に応じて、符号が2
ビット切り出され、その切り出した符号「CD」が比較
器3へ出力される。尚、「CD」の値は、「10」であ
る。
【0066】次の第3のステップ(S3)においては、
アドレス生成器4では、比較器3から出力される相対ア
ドレスの値「0011」と分岐アドレスの値「10」と
基準アドレスの値「0」とが加算され、その加算結果の
値「0101」は参照アドレスとしてROM2へ出力さ
れる。そして、参照アドレス「0101」に格納されて
いるテーブルデータの値「110000000001
1」がROM2から比較器3へ出力される。
【0067】次に、第4のステップ(S4)において、
比較器3では、ROM2から出力される分岐情報の値
「11」に基づき、復号値が格納されていることが判定
される。よって、次の処理は、第7のステップ(S7)
へ進む。
【0068】第7のステップ(S7)において、比較器
3から、ROM2から出力されたテーブルの復号値「0
011」を外部へ出力する。そして、比較器3は、相対
アドレスの値及び分岐アドレスの値を「0」に初期化す
ると共に、ビット数Nの値を「1」に初期化して一つの
ハフマン符号の復号を終える。続くハフマン符号列の復
号は、第2のステップ(S2)からの処理を繰り返すこ
とにより復号される。
【0069】上記の説明では、「0101」のハフマン
符号の場合を説明したが、このハフマン符号以外のもの
の処理をまとめると、図7(B)のようになる。このよ
うに、従来に比べ、復号値b,c,d,eの復号処理を
簡単に行うことができる。
【0070】このように、本発明の復号装置と復号テー
ブルを用いることにより、ハフマン符号の符号長が長い
ものに対して、1度に切り出す符号の数を符号長の分に
応じて可変して復号を行う方法なので、復号処理時間を
短縮することが可能となる。つまり、従来では図7
(A)のようにハフマン符号のビット毎に分岐方向を判
断していたが、本願では、図7(B)のようにハフマン
符号のビット毎に分岐方向を判定することはなく、同一
の符号長に対しては、多分岐で分岐方向を判定してい
る。よって、判定処理を削減できるので復号処理時間を
短縮することが可能となる。
【0071】また、テーブルに関して、従来の固定長で
切り出す場合は、不必要な判定処理の分だけテーブル数
を持たせる必要があったが、本願では、上記の如く、判
定処理を削減できるため必要な分だけテーブルを設ける
ことができ、従来に比べテーブル数を削減することがで
きる。
【0072】図5は、本発明の復号装置における、ハフ
マン復号用テーブルの別の設定例を示す図である。
【0073】ハフマン復号装置の構成は、前述した本発
明の実施例1の図1と同じである。
【0074】図5のテーブルの配置は、図7(B)に示
すように2分木表現したときに完全な部分木となる節を
多分木化して、そこに含まれるテーブルの参照アドレス
を隣接して配置する。更に、その部分木の親(根ノー
ド)の参照アドレスは、前述の隣接して配置した最初の
参照アドレスを設定している。
【0075】実施の形態では最大4ビットのハフマン符
号で説明したが、テーブルに設定する復号値は、ビット
数の多いAAC規格に基づく音声スペクトルデータにも
適用できることは言うまでもない。
【0076】
【発明の効果】上述の如く、本発明に依れば、ハフマン
符号列を復号する際、節を削除して、高速に処理を実現
でき、且つ、テーブルの冗長度も低く抑え、その結果メ
モリの大きさを低減できるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施形態を示すブロック図である。
【図2】図1の処理手順を示すフローチャートである。
【図3】図1のテーブルROM2の設定例を示す図であ
る。
【図4】図3の設定データの構成を説明するための図で
ある。
【図5】図1のテーブルROM2の別の設定例を示す図
である。
【図6】図5の設定データの構成を説明するための図で
ある。
【図7】本発明のハフマン符号を2分木と多分木で説明
するための図である。
【図8】ハフマン符号化の処理を説明するための図であ
る。
【図9】ハフマン符号化されたシンボル及びそのシンボ
ルに割り付けられた符号と符号長を説明する図である。
【図10】ハフマン符号化の2分木を説明するための図
である。
【図11】従来のハフマン復号回路の一例を示すブロッ
ク図である。
【図12】図11のテーブルROM21の設定例を示す
図である。
【図13】図11のテーブルROM21の別の設定例を
示す図である。
【図14】図13の設定データ構成を説明するための図
である。
【符号の説明】
1 シフタ回路 2 テーブルROM 3 比較器 4 アドレス生成器
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5C059 KK11 MC38 ME02 ME17 SS30 UA05 UA36 UA38 5D045 DA20 5J064 AA03 BA09 BC01 BC14 BD02

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 ハフマン符号列を入力するシフト回路
    と、 前記符号列の復号を行うためのデータが格納された復号
    テーブルと、 前記シフト回路から送出される符号と前記復号用参照テ
    ーブルの値とを比較する比較回路と、 前記比較回路から出力されるアドレス情報に基づいて、
    次の復号用参照テーブルのアドレスを出力するアドレス
    生成器とを備え、 前記アドレスに応じて前記復号テーブルからデータが読
    み出されることを特徴とするハフマン復号装置。
  2. 【請求項2】 前記復号テーブルに、前記シフト回路か
    ら送出される符号に対応して次に処理すべきビット情報
    を含むことを特徴とする請求項1記載のハフマン復号装
    置。
  3. 【請求項3】 前記ビット情報は、ハフマン符号の復号
    値または前記復号テーブルの次の参照すべきアドレスで
    あることを特徴とする請求項2記載のハフマン復号装
    置。
  4. 【請求項4】 前記ビット情報は、ハフマン符号の復号
    値の格納を示すフラグであることを特徴とする請求項2
    記載のハフマン復号装置。
  5. 【請求項5】 前記ビット情報は、ハフマン符号列から
    次の符号を1ビット切り出す2分岐、または、ハフマン
    符号列から次の符号を少なくとも2ビット以上の符号を
    切り出す多分岐を示す分岐情報であることを特徴とする
    請求項2記載のハフマン復号装置。
  6. 【請求項6】 前記シフト回路は、前記比較回路からの
    信号に基づきハフマン符号列から任意の長さのビット数
    を切り出すことを特徴とする請求項1記載のハフマン復
    号装置。
  7. 【請求項7】 前記テーブルには、ハフマン符号列の次
    に切り出す符号のビット数を格納することを特徴とする
    請求項2記載のハフマン復号装置。
  8. 【請求項8】 前記比較回路は、前記復号テーブルから
    のコードワードの長さに応じて、ハフマン符号列の切り
    出すべきデータ長を示す信号を前記シフト回路に出力す
    ることを特徴とする請求項7記載のハフマン復号装置。
  9. 【請求項9】 入力されてくるハフマン符号列を可変の
    切り出し数でシフトし、 シフトされた符号データと復号テーブルに格納された復
    号用参照テーブルの値とを比較し、 比較することにより次の参照すべきアドレス情報または
    復号値を出力し、 前記アドレス情報の場合、前記復号テーブルからデータ
    を読み出すと共にシフト数を可変することを特徴とする
    ハフマン復号方法。
JP2001130570A 2001-04-27 2001-04-27 ハフマン復号装置及び復号方法 Withdrawn JP2002330076A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001130570A JP2002330076A (ja) 2001-04-27 2001-04-27 ハフマン復号装置及び復号方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001130570A JP2002330076A (ja) 2001-04-27 2001-04-27 ハフマン復号装置及び復号方法

Publications (1)

Publication Number Publication Date
JP2002330076A true JP2002330076A (ja) 2002-11-15

Family

ID=18978914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001130570A Withdrawn JP2002330076A (ja) 2001-04-27 2001-04-27 ハフマン復号装置及び復号方法

Country Status (1)

Country Link
JP (1) JP2002330076A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008060657A (ja) * 2006-08-29 2008-03-13 Renesas Technology Corp 可変長符号復号装置
JP2010093414A (ja) * 2008-10-06 2010-04-22 Fujitsu Ltd 情報処理プログラム、情報処理装置、および情報処理方法
JP2012010369A (ja) * 2011-08-03 2012-01-12 Renesas Electronics Corp 可変長符号復号装置
US8098739B2 (en) 2006-11-30 2012-01-17 Sanyo Electric Co., Ltd. Decoding circuit

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008060657A (ja) * 2006-08-29 2008-03-13 Renesas Technology Corp 可変長符号復号装置
US8264386B2 (en) 2006-08-29 2012-09-11 Renesas Electronics Corporation Variable length code decoding device and decoding method
US8884792B2 (en) 2006-08-29 2014-11-11 Renesas Electronics Corporation Variable length code decoding device and decoding method
US8098739B2 (en) 2006-11-30 2012-01-17 Sanyo Electric Co., Ltd. Decoding circuit
JP2010093414A (ja) * 2008-10-06 2010-04-22 Fujitsu Ltd 情報処理プログラム、情報処理装置、および情報処理方法
JP2012010369A (ja) * 2011-08-03 2012-01-12 Renesas Electronics Corp 可変長符号復号装置

Similar Documents

Publication Publication Date Title
US5550542A (en) Variable length code look-up table having separate code length determination
US5541595A (en) Variable length code decoder for simultaneous decoding the most significant bits and the least significant bits of a variable length code
US6563439B1 (en) Method of performing Huffman decoding
EP1047198A2 (en) Encoder with optimally selected codebook
JP4501288B2 (ja) ハフマン符号の復号方法、復号装置、ハフマン符号復号用テーブルおよびその作成方法
US20060087460A1 (en) Method of generating Huffman code length information
US7375660B1 (en) Huffman decoding method
US6297754B1 (en) Decoding device
JPH08265166A (ja) 高速可変長符号復号化装置
JP2002330076A (ja) ハフマン復号装置及び復号方法
US7193542B2 (en) Digital data compression robust relative to transmission noise
JPH08265165A (ja) 高速可変長符号復号化装置
JP2537551B2 (ja) 可変長符号復号回路
KR20190094496A (ko) 고속으로 데이터를 인코딩하는 장치 및 데이터 인코딩 방법
KR100982666B1 (ko) 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법
JP3332630B2 (ja) 復号装置及びデコードテーブルの生成方法
KR100462060B1 (ko) 유니버셜 가변 길이 코드 부호어 다중 추출 방법 및 그를위한 룩-업 테이블 구성 방법
KR100330437B1 (ko) 균일 및 비균일 엔트로피 데이터에 대한 비손실 데이터압축/압축 해제 시스템 및 방법
KR950008487B1 (ko) 가변 길이 디코딩 장치
JP2001007706A (ja) 可変長符号復号化装置
JPH11168391A (ja) 復号装置
KR101270633B1 (ko) 복수 호프만 테이블을 적용하여 고속 처리가 가능한 멀티미디어용 호프만 디코딩 방법 및 장치
JP3648944B2 (ja) データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置
JP2005175926A (ja) 復号装置及び方法
GB2402584A (en) Method of performing Huffman decoding

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080403

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090706