JP2005094411A - ハフマン復号器 - Google Patents
ハフマン復号器 Download PDFInfo
- Publication number
- JP2005094411A JP2005094411A JP2003325587A JP2003325587A JP2005094411A JP 2005094411 A JP2005094411 A JP 2005094411A JP 2003325587 A JP2003325587 A JP 2003325587A JP 2003325587 A JP2003325587 A JP 2003325587A JP 2005094411 A JP2005094411 A JP 2005094411A
- Authority
- JP
- Japan
- Prior art keywords
- huffman
- code
- code length
- symbol
- register
- 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.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】ハフマン符号の復号処理にあたり、シンボルの記憶箇所を指定するためのアドレスを生成する必要がある。
【解決手段】ハフマン復号器には、シンボルを格納するための復号データ格納レジスタが備えられている。そして、ハフマン符号化情報に基づいて符号長及び符号長内位置をリスト化した復号データIDテーブルを復号データ格納レジスタ上に作成し(S12)、この復号データ格納レジスタの対応箇所に対応するシンボルを格納する(S14)。入力したハフマン符号に対しては、符号長と符号長内位置を算出する(S20)。ハフマン復号器に対してこの符号長と符号長内位置、すなわち復号データIDテーブル上の位置を与えると、直ちに、復号データであるシンボルを取得することができる(S22)。
【選択図】図4
【解決手段】ハフマン復号器には、シンボルを格納するための復号データ格納レジスタが備えられている。そして、ハフマン符号化情報に基づいて符号長及び符号長内位置をリスト化した復号データIDテーブルを復号データ格納レジスタ上に作成し(S12)、この復号データ格納レジスタの対応箇所に対応するシンボルを格納する(S14)。入力したハフマン符号に対しては、符号長と符号長内位置を算出する(S20)。ハフマン復号器に対してこの符号長と符号長内位置、すなわち復号データIDテーブル上の位置を与えると、直ちに、復号データであるシンボルを取得することができる(S22)。
【選択図】図4
Description
本発明は、ハフマン符号の復号処理、特に高速に復号処理を行う技術に関する。
静止画像のデータ圧縮技術であるJPEG(Joint Photographic Experts Group)や、動画像のデータ圧縮技術であるMPEG(Motion Picture Experts Group)などにおいては、ハフマン符号化が行われている。ハフマン符号化は、エントロピー符号化の一種であり、出現頻度の高いシンボルに対しては符号長の短いハフマン符号を割当て、出現頻度の低いシンボルに対しては符号長の長いハフマン符号を割当てることにより、平均符号長を短くしてデータ量を圧縮するものである。符号化されたデータは、ハフマン符号を対応するシンボルに置き直すことで復号化される。
特許文献1には、復号化を行うハフマン復号器において、シンボルをメモリから読み出すためのアドレス値を、初期値とオフセット値に分解して扱うことで効率的に記憶する技術が開示されている。
しかしながら、上記特許文献1のように、シンボルをメモリに記憶した場合には、メモリアドレスの生成が不可欠であり、処理に時間を要してしまう。
本発明の目的は、ハフマン符号の復号処理を高速に行う技術を確立する点にある。
上記課題を解決するために、本発明のハフマン復号器は、入力されたハフマン符号を対応するシンボルで復号化するハフマン復号器であって、レジスタと、シンボル群をハフマン符号化したハフマン符号化情報に基づいて、各ハフマン符号に対応するシンボルを前記レジスタに格納する格納位置を決定し、その格納位置に当該シンボルを格納する格納手段と、入力されたハフマン符号に対応するシンボルの前記格納位置を、前記ハフマン符号化情報を用いて算出する位置算出手段と、を備え、前記レジスタは、算出された格納位置を与えられることにより、対応するシンボルを出力する。
ハフマン復号器は、ハフマン復号のために設けられたレジスタを備える。レジスタとは、ハフマン復号を行う演算部の内部に設けられた記憶素子である。レジスタ長、すなわちレジスタが記憶できる情報量は、扱うシンボル数及びその大きさに基づいて設定すればよい。レジスタ長を超える量のシンボルを扱うような場合には、適宜、汎用レジスタやメモリ等の別の記憶手段を利用してもよい。
ハフマン符号化情報は、ハフマン符号とシンボルを対応づける情報を含んでいる。そして、格納手段は、このハフマン符号化情報に基づいて、シンボルのレジスタにおける格納位置を決定し、格納を実施する。すなわち、レジスタには、各格納位置に対応するシンボルが配置されたテーブルが設定されたとみなすことができる。位置算出手段は、入力されたハフマン符号に対応するシンボルがこのテーブル上のどこに格納されたかを、ハフマン符号化情報に基づいて算出する。そして、レジスタは、この格納位置を与えられることにより、対応するシンボルを出力する。
この構成によれば、格納位置はハフマン符号化情報に基づいて算出され、この格納位置から直ちにシンボルが求められる。つまり、メモリにシンボルを記憶させた場合に必要であったメモリのアドレス値を求める過程を省略することができ、ハフマン復号化を高速に行うことができる。
望ましくは、本発明のハフマン復号器において、前記格納位置は、ハフマン符号の値順に設定される。すなわち、格納位置は、ハフマン符号の値の小さい順又は大きい順に設定される。このため、位置算出手段は、入力されたハフマン符号の大きさが全体の中で何番目であるかを評価することで、格納位置を算出することができる。
望ましくは、本発明のハフマン復号器において、前記格納手段は、前記格納位置を、ハフマン符号の符号長とその符号長内での位置とに基づいて決定し、前記位置算出手段は、前記入力されたハフマン符号の符号長を判定する符号長判定手段と、前記入力されたハフマン符号の前記判定された符号長内での位置を特定する符号長内位置特定手段と、を含み、前記レジスタは、判定された符号長と特定された符号長内での位置とを与えられることにより、対応するシンボルを出力する。このように、格納位置を階層的に定め算出することにより、階層構造が無い場合に比べ、高速に格納位置を求めることができる。なお、ハフマン符号化情報は、一般に、各符号長をもつハフマン符号の個数についての情報を備えており、位置特定手段はこの情報を用いることができる。また、この個数についての情報は、ハフマン符号とシンボルを対応づける情報とに基づいて作成することも可能である。
望ましくは、本発明のハフマン復号器において、前記格納位置は、ハフマン符号の符号長の順に設定される。また、望ましくは、本発明のハフマン復号器において、前記判定された符号長内での位置は、ハフマン符号の値順に設定される。符号長の順とは符号長の小さい順又は大きい順であり、ハフマン符号の値順とは値の小さい順又は大きい順である。こうした順番を特定することにより、格納位置を求めることができる。
本発明の方法は、レジスタを備えたハフマン復号器において実行される方法であって、シンボル群をハフマン符号化したハフマン符号化情報に基づいて、各ハフマン符号に対応するシンボルを前記レジスタに格納する格納位置を決定し、その格納位置に当該シンボルを格納するステップと、入力されたハフマン符号に対応するシンボルの前記格納位置を、前記ハフマン符号化情報を用いて算出するステップと、算出された格納位置を与えることにより、前記レジスタから対応するシンボルを取得するステップと、を含む。
本発明のプログラムは、レジスタを備えたハフマン復号器において実行されるプログラムであって、シンボル群をハフマン符号化したハフマン符号化情報に基づいて、各ハフマン符号に対応するシンボルを前記レジスタに格納する格納位置を決定し、その格納位置に当該シンボルを格納するモジュールと、入力されたハフマン符号に対応するシンボルの前記格納位置を、前記ハフマン符号化情報を用いて算出するモジュールと、算出された格納位置を与えることにより、前記レジスタから対応するシンボルを取得するモジュールと、を含む。
以下に本発明の最良の実施の形態を図面を用いて説明する。
図1は、本実施の形態に係るハフマン復号器10の構成と信号入出力を示した概略ブロック図である。ハフマン復号器10は、ハフマン符号を対応するシンボルに変換するものであり、例えば、ハフマン復号化を専用に行う回路を含むASIC(特定用途向け集積回路)として、あるいは、こうした回路を制御する構成を含めたシステムとして実現可能である。
ハフマン復号器10は、ハフマン符号の符号長の判定や、その符号長内における位置を特定するための基準値を作成・保持する判定基準値保持部20を備えている。具体的には、加算器21,23,...,25,27と、入力値を2倍にする2倍演算器22,24,...,26を備えている。そして、JPEG等に用いられるハフマン符号においては、n−1ビット符号長の最大値を2倍した値がnビット符号長の符号長の最小値となるという性質と、同一符号長のハフマン符号はそのビット符号長の最小値から始まって値が1ずつ増加するいう特性があることに基づいて、基準となる値を生成・保持している。
加算器21には、1ビット符号長のハフマン符号の最小値を表す初期値信号30と、1ビットの符号長をもつシンボルの数(対応するハフマン符号の数に等しい)を表す1ビット符号長シンボル数信号32とが入力され、加算される。出力される値は、1ビットの符号長をもつハフマン符号の最大値である。2倍演算器22は、加算器21の出力を入力し、2倍することで、2ビットの符号長のハフマン符号の最小値を出力する。同様にして、加算器23は、2倍演算器22が出力した2ビットの符号長のハフマン符号の最小値と、2ビット符号長シンボル数信号34とを入力して加算し、2ビット符号長をもつハフマン符号の最大値を出力する。また、2倍演算器24は、加算器23の出力を入力し、2倍することで、3ビットの符号等のハフマン符号の最小値を出力する。この過程を最大の符号長であるnビットまで繰り返すことにより、判定基準値が準備される。なお、ここで用いた初期値信号30と、1,2,...,n−1,nビット符号長シンボル信号数32、34,...,36,38は、JPEG等においては、ヘッダ部分に付加されるハフマン符号化情報から取得することができる。
判定基準値保持部20によって得られた各値は、ハフマン符号を入力値を表すハフマン符号信号40とあわせて演算に処せられ、符号長の判定と、その符号長における位置の特定に用いられる。符号長判定部50,52,....、54,56は、それぞれ、ハフマン符号信号が判定基準値保持部20がもつ1,2,...,n−1,nビット符号長のハフマン符号の最大値よりも小さい場合にアクティブとなる1,2,...,n−1,nビット符号長判定信号60,62,...,64,66を出力する。
出力されたこれらの信号は、符号長決定部70に入力される。この符号長決定部70は、アクティブになった符号長判定信号を検出し、その中で最も小さい符号長の判定信号に対する符号長を符号長信号80として出力する。出力された符号長信号80は、ハフマン符号信号40が表すハフマン符号の符号長を与える。
一方、位置判定部90,92,...,94は、ハフマン符号信号40がそれぞれ2,3,...,nビット符号長である場合にその符号長における位置を求める減算器からなる。例えば、位置判定部90は、判定基準値保持部20が与える2ビット符号長のハフマン符号の最小値をハフマン符号信号40から減じることにより、そのハフマン符号が2ビットである場合における2ビット中での位置を特定し、2ビット符号長位置特定信号102として出力する。すなわち、位置特定信号は、この2ビット符号長の中で最小のハフマン符号に対しては0となり、次に小さなハフマン符号に対しては1となるというように、ハフマン符号の小さい順に0から1ずつ増加する値となる。
同様にして、位置判定部92,...,94は、ハフマン符号が3,...,nビットである場合における当該ビット中での位置を特定し、3,...,nビット符号長位置特定信号104,...,106として出力する。これらの出力値は、ハフマン符号信号40自身によって与えられ、ハフマン符号が1ビットである場合の位置を表す1ビット符号長位置特定信号100とともに、符号長内位置特定部110に入力される。符号長内位置特定部110は、符号長信号80によって与えられる符号長に対応する位置特定信号を選択することで、その符号長内における位置を特定し、符号長内位置特定信号120として出力する。
復号データIDテーブル130は、復号データ格納レジスタ132上に構成されたテーブルであり、復号データ格納レジスタ132に格納されているシンボルをハフマン符号と対応づけるためのテーブルである。この復号データIDテーブル130には、符号長信号80と符号長内位置特定信号120が入力され、これにより、このハフマン信号の格納位置が決定される。復号データ格納レジスタ132は、復号データIDテーブル130で特定された格納位置に格納されたシンボルを復号データ140として出力する。すなわち、復号データ140は、入力されたハフマン符号信号40が復号された結果を表している。
次に、図2と図3を用いて、復号データIDテーブル130及び復号データ格納レジスタ132について説明する。図2は、各符号長において何個のハフマン符号が使われているかという情報の一例を説明のために示した表である。この情報は、一般的にはハフマン符号化されたデータ自身がハフマン符号化情報として保持している。符号長欄150には、1ビットから16ビットまでの各符号長、即ち、2進法表現した場合の符号の桁数が示されている。そして、符号数欄152には、それらの符号長に対応するハフマン符号の個数が示されている。例えば、符号長が1ビットである符号の個数は0個であり、2ビットである符号の個数は2個、3ビットである符号の個数は1個である。このようにハフマン符号化情報に基づくことにより、最長の16ビットに属する125個の符号にいたるまでの合計162個の符号に関し、符号長分布を把握することができる。
図3は、この図2の分布をなすハフマン符号があった場合に構成される復号データIDテーブル130及び復号データ格納レジスタ132の構成を概念的に示している。復号データIDテーブル130は、符号長がいくつであるかを表す符号長欄134と、各符号長の中におけるハフマン符号を値が小さいものから0,1,2,...のように番号づけた位置情報欄136とからなる。符号長欄134における符号長は、符号長信号80として出力される値に対応しており、位置情報欄136における位置情報は、符号長内位置特定信号120に対応している。符号長欄134の最初には、最短の符号長である2ビットのハフマン符号が割り当てられており、その位置情報欄136には2ビットの二つのハフマン符号のうち小さい方に0を、大きい方に1を与えている。続いて、符号長欄134には3ビットのハフマン符号が割り当てられ、この位置情報欄136には3ビット長をもつ1個のハフマン符号が位置情報0を与えられている。このようにして全162個の符号が符号長と位置情報を与えられて識別され登録されている。この復号データIDテーブル130は、図2に示した情報を基に直ちに作成することができる。すなわち、一般には、ハフマン符号化されたデータ自身がもつハフマン符号化情報に基づいて直ちに作成することができる。
復号データ格納レジスタ132は、復号データ即ちシンボルを格納したレジスタであり、復号データIDテーブル130と対応づけられて構成されている。そして、この復号データ格納レジスタ132には、復号データIDテーブル130の符号長と位置情報によって特定される箇所に、そのハフマン符号と1対1に対応するシンボルが記憶されている。例えば、2ビットの符号長をもち位置情報が0番であるハフマン符号の対応箇所には対応するシンボル1が格納され、2ビットの符号長をもち位置情報が1番であるハフマン符号の対応箇所には対応するシンボル2が格納される。こうして、162のハフマン符号に対応する162個のシンボルが、復号データIDテーブル130上によって特定される格納箇所に格納される。そして、この復号データIDテーブル130を備えた復号データ格納レジスタ132は、復号データIDテーブル130上の位置を特定することにより、すなわち、符号長及び位置情報を与えることにより格納されたシンボルを出力できるように構成されている。したがって、復号データ格納レジスタ132自体が、復号データIDテーブル130を構成しているとみなすことができる。
ここで、図4のフローチャートを用いて、ハフマン復号器10を用いたハフマン復号過程を説明する。JPEGファイルのようにハフマン符号化されたデータが入力された場合、ハフマン復号器10は、まず、この符号化の詳細を示すハフマン符号化情報を入力する(S10)。そして、このハフマン符号化情報に基づいて、復号データIDテーブル130を復号データ格納レジスタ132上に作成し(S12)、この復号データ格納レジスタ132の対応箇所に対応するシンボルを格納する(S14)。また、判定基準値保持部20において、ハフマン符号化情報をもとに基準値が計算され、保持される(S16)。
続いて、ハフマン符号が順次入力される(S18)。ハフマン符号に対しては、符号長判定部50,52,...,54,56及び符号長決定部70が符号長の判定を行う。また、この符号長の判定結果と、位置判定部90,92,...,94の算出結果に基づいて、符号長内位置特定部110が、符号長内における位置を特定する。これにより、入力されたハフマン符号の符号長とその符号長内での位置、即ち、復号データIDテーブル130上での位置が特定される(S20)。そして、復号データ格納レジスタ132の特定された箇所から、ステップS14で格納されたシンボルが直ちに取り出される(S22)。すなわち、入力されたハフマン符号に対する復号が行われる。次に処理するハフマン符号がある場合には、ステップS18,S20,S22の過程が繰り返される(S24)。
10 ハフマン復号器、20 判定基準値保持部、21,23,25 加算器、22,24,26 倍演算器、40 ハフマン符号信号、50,52,54,56 符号長判定部、70 符号長決定部、90,92,94 位置判定部、110 符号長内位置特定部、130 復号データIDテーブル、132 復号データ格納レジスタ。
Claims (7)
- 入力されたハフマン符号を対応するシンボルで復号化するハフマン復号器であって、
レジスタと、
シンボル群をハフマン符号化したハフマン符号化情報に基づいて、各ハフマン符号に対応するシンボルを前記レジスタに格納する格納位置を決定し、その格納位置に当該シンボルを格納する格納手段と、
入力されたハフマン符号に対応するシンボルの前記格納位置を、前記ハフマン符号化情報を用いて算出する位置算出手段と、
を備え、
前記レジスタは、算出された格納位置を与えられることにより、対応するシンボルを出力する、ことを特徴とするハフマン復号器。 - 請求項1に記載のハフマン復号器において、
前記格納位置は、ハフマン符号の値順に設定される、ことを特徴とするハフマン復号器。 - 請求項1に記載のハフマン復号器において、
前記格納手段は、前記格納位置を、ハフマン符号の符号長とその符号長内での位置とに基づいて決定し、
前記位置算出手段は、
前記入力されたハフマン符号の符号長を判定する符号長判定手段と、
前記入力されたハフマン符号の前記判定された符号長内での位置を特定する符号長内位置特定手段と、
を含み、
前記レジスタは、判定された符号長と特定された符号長内での位置とを与えられることにより、対応するシンボルを出力する、ことを特徴とするハフマン復号器。 - 請求項3に記載のハフマン復号器において、
前記格納位置は、ハフマン符号の符号長の順に設定される、ことを特徴とするハフマン復号器。 - 請求項3に記載のハフマン復号器において、
前記判定された符号長内での位置は、ハフマン符号の値順に設定される、ことを特徴とするハフマン復号器。 - レジスタを備えたハフマン復号器において実行される方法であって、
シンボル群をハフマン符号化したハフマン符号化情報に基づいて、各ハフマン符号に対応するシンボルを前記レジスタに格納する格納位置を決定し、その格納位置に当該シンボルを格納するステップと、
入力されたハフマン符号に対応するシンボルの前記格納位置を、前記ハフマン符号化情報を用いて算出するステップと、
算出された格納位置を与えることにより、前記レジスタから対応するシンボルを取得するステップと、を含む、ことを特徴とする方法。 - レジスタを備えたハフマン復号器において実行されるプログラムであって、
シンボル群をハフマン符号化したハフマン符号化情報に基づいて、各ハフマン符号に対応するシンボルを前記レジスタに格納する格納位置を決定し、その格納位置に当該シンボルを格納するモジュールと、
入力されたハフマン符号に対応するシンボルの前記格納位置を、前記ハフマン符号化情報を用いて算出するモジュールと、
算出された格納位置を与えることにより、前記レジスタから対応するシンボルを取得するモジュールと、を含む、ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003325587A JP2005094411A (ja) | 2003-09-18 | 2003-09-18 | ハフマン復号器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003325587A JP2005094411A (ja) | 2003-09-18 | 2003-09-18 | ハフマン復号器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005094411A true JP2005094411A (ja) | 2005-04-07 |
Family
ID=34455987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003325587A Pending JP2005094411A (ja) | 2003-09-18 | 2003-09-18 | ハフマン復号器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005094411A (ja) |
-
2003
- 2003-09-18 JP JP2003325587A patent/JP2005094411A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7079057B2 (en) | Context-based adaptive binary arithmetic coding method and apparatus | |
JP5221047B2 (ja) | 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置 | |
US7289047B2 (en) | Decoding variable length codes while using optimal resources | |
US20030085822A1 (en) | High performance memory efficient variable-length coding decoder | |
US8089379B2 (en) | Variable length decoding apparatus and method | |
CN112188198B (zh) | 图像数据压缩解压方法及系统 | |
JP6681383B2 (ja) | エンコーダ、デコーダ、および方法 | |
CN110291793B (zh) | 上下文自适应二进制算术编解码中范围推导的方法和装置 | |
US6809665B2 (en) | Apparatus and method for decoding variable length code | |
KR20120096541A (ko) | 디지털 신호의 압축 또는 압축해제를 위한 방법, 시스템 및 장치 | |
JP5815113B2 (ja) | Cabac復号化のための技術 | |
US6839005B1 (en) | Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels | |
CN107105249B (zh) | 图像量化参数解码方法 | |
JP2005094411A (ja) | ハフマン復号器 | |
JP2010258532A (ja) | ビット長を符号に変換する回路及び方法 | |
CN110545437B (zh) | 系数编码、解码方法、电子设备及介质 | |
JP4093193B2 (ja) | データ圧縮方法及びプログラムならびにデータ復元方法及び装置 | |
JP2007336056A (ja) | 符号化装置、符号化方法及びプログラム | |
JP5200854B2 (ja) | 符号化装置、復号装置、及び画像処理システム | |
JP2005217871A (ja) | 算術復号化装置および算術復号化プログラム | |
CN117354534B (zh) | 一种自适应图像无损压缩方法、设备及存储介质 | |
US6847317B2 (en) | System and method for a dyadic-monotonic (DM) codec | |
JP6280266B2 (ja) | 復号装置、及び復号方法 | |
JP2004128619A (ja) | 符号化方法 | |
JPH11308116A (ja) | ハフマン復号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090512 |