JP4519701B2 - 可変長符号の復号装置 - Google Patents
可変長符号の復号装置 Download PDFInfo
- Publication number
- JP4519701B2 JP4519701B2 JP2005114819A JP2005114819A JP4519701B2 JP 4519701 B2 JP4519701 B2 JP 4519701B2 JP 2005114819 A JP2005114819 A JP 2005114819A JP 2005114819 A JP2005114819 A JP 2005114819A JP 4519701 B2 JP4519701 B2 JP 4519701B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- length
- bit
- codeword
- extension
- 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
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Description
第1の復号方法は、可変長符号の先頭ビットから1ビットずつ順次読み出して、一致する符号語を2進木により探索していく方法であり、2進木で1ビットずつ最悪で可変長符号語の最大長の回数の比較に処理時間がかるという欠点がある。また、第2の復号方法は、可変長符号語をビット数と共にテーブル化し、テーブルを順次比較する方法であり、最悪で符号語の最後までテーブルを比較するので処理時間がかかるという欠点がある。さらに、第3の復号方法は、定義された可変長符号語の最大長の符号ビット列を参照し、アドレスとして符号長についても符号語と同時に特定するテーブルを生成し検索する方法であり、可変長符号語の最大長がアドレス空間となるテーブルが必要となり、アクセスまでの時間は短くなるが大容量のメモリが必要となるという欠点がある。
第1の従来例.
第1の復号方法と第2の復号方法を組み合わせた方法として、例えば、特許文献1に示すように、符号語長に基づいて所定の範囲毎に複数のグループに符号語を分類し、例えば最大符号語長16ビットで8ビットまでの第1グループ、9ビットから12ビットの第2グループ、13ビット以上の第3グループに分類した場合、最大3回のテーブル参照で目的の符号語を特定する。
また、例えば、特許文献2に示すように、同一符号語長の中における最大値を保持し、最大符号語長まで各符号語長の範囲の符号値を参照して該最大値と比較し、任意の符号長における最大値とその符号長の符号ビット列の参照値を比較すると、最大値以下の参照値となるとき、その符号長以下(等しい又は短い)の符号語であると判定できるので、その中の最大の符号語長を目的の符号語長とする。
さらに、例えば、特許文献3に示すように、最大符号語長の符号ビット列を所定のビット数ずつ複数の段階に区切り、各段階で固定長のアドレスとしてテーブルを参照し、符号長算出パラメータ、復号値算出パラメータ、最終段階を除いて表アドレスの3つを順次得る。最終的に、各段階の符号長算出パラメータを加算して符号語長、また、復号値算出パラメータを加算して復号値を得る。
以下の実施の形態では、画像や音声等のデータを効率良く通信し、あるいは蓄積するために、可変長符号化方式の符号の割り当て単位である符号語の長さを特定できるように、より効率良く参照しやすくテーブルを再構成する拡張手順と、その拡張されたテーブルを使用して復号処理する高速化手順について説明する。
拡張テーブル部101が備える拡張されたテーブルであるハフマン符号語長テーブル110、付加ビット数テーブル111及びランレングステーブル112は、例えば後述のハフマンテーブルの定義セグメントから得られるテーブルに冗長性を持たせて拡張したものであり、ハフマン符号語長、付加ビット数及びランレングスといった項目については同一構成をとる。
テーブルの拡張手順と係数の復号手順の詳細は後述するものとし、図1に示す拡張テーブルを使用する可変長符号の復号装置のブロック構成図に基づいて復号処理の動作を説明する。
以下では、復号処理を準備段階と実処理段階に分けて説明する。準備段階ではテーブル拡張処理を行う。係数を復元する実処理段階では、符号語の処理と、付加ビットがあるときには付加ビットの処理を行う。
まず、テーブル拡張の動作について説明する。
図1において、テーブル拡張部100は、標準サイズの標準テーブルTablesを入力し、拡張テーブル部101のデータと、その拡張テーブルへのアドレスを生成するための補助テーブル部102のデータとを出力する。
符号語の処理としては、復号レジスタ103は、最大符号語長の符号を保持して符号ビット列Cregを参照可能にし、また通知されたビット数分シフトすることで、復号処理済の上位ビット値をレジスタ外に掃き出すと共に新しい未処理の可変長符号Codeをレジスタ下位から取り入れて符号ビット列Cregの更新を行う。拡張アドレス生成部104は、符号語及び符号語長が特定できていない状態で、符号ビット列Cregを参照し、上位から最初のビット‘0’の位置情報Posを補助テーブル部102に出力して基準位置Baseと参照ビット数Refを得て、拡張テーブルへのアドレスAddressを拡張テーブル部101へ出力する。拡張テーブル部101は、ハフマン符号語長テーブル110と付加ビット数テーブル111とランレングステーブル112から、アドレスAddressで指定されたハフマン符号語長CLと付加ビット数VLとランレングスRLを出力する。シフト数選択器105は、ハフマン符号語長CL及び付加ビット数VLを入力して、符号語の処理が終了した時点で復号レジスタ103を符号語長CLビット分シフトするように更新を復号レジスタ103に通知する。
ここで、シフト数選択器105は、ハフマン符号語長CLをシフト数Shiftとして出力し復号レジスタ103へ更新を通知する。復号レジスタ103は、ハフマン符号語長CLが通知されたシフト数Shift分だけ符号ビット列Cregを更新し、符号語の処理から付加ビットの処理へ移る。
付加ビットの処理としては、付加ビット抽出器106は、復号レジスタ103の符号ビット列Cregを参照して、上位の付加ビット数VLの符号ビット値を付加ビットAddbitとして出力する。係数復元器107は、DC係数又はランレングスRL個のゼロ係数と非ゼロ係数のAC係数をDCT係数Coeffとして順次復元して出力する。DC係数バッファ108は、復元されたDC係数値を次のDCTブロックのDC係数の復元まで保持して参照可能とし、直前のDCTブロックのDC係数PreDCとして出力する。
図10はハフマンテーブルの拡張処理フローを示す図であり、図11は拡張テーブルの出力処理フローを示す図である。
テーブル拡張器100のテーブル拡張処理の詳細を図10及び図11に基づいて説明する。以下の説明では、図8のように定義される“L1”から“L16”を配列L[0]からL[15]、“V1,1”から“V16,L16”を配列V[0]からV[(ΣLi)−1]として参照し、テーブルを拡張するものとする。補助テーブルである基準位置テーブル120を配列Base_Table、参照ビット数テーブル121を配列Ref_Tableとし、配列サイズを16とする。拡張テーブルであるハフマン符号語長テーブル110を配列CL_Table、付加ビット数テーブル111を配列VL_Table、ランレングステーブル112を配列RL_Tableとし、ここでは配列サイズを256としているが、さらに十分な配列サイズを確保しておいても構わない。
図10において、ステップST101〜ST103は基準位置テーブルBase_Table、参照ビット数テーブルRef_Tableの初期化処理を示し、ステップST104〜ST107は、拡張されたハフマン符号語長テーブルCL_Table、拡張された付加ビット数テーブルVL_Table、拡張されたランレングステーブルRL_Tableの初期化処理を示す。
この拡張テーブルの出力処理は分類単位で実行される。図11において、Mは符号語長を示し、EXは符号語1つ当りの拡張(倍数)を示し、LLは終了指標Eの拡張対象の符号語数を示す。
図13はDCTブロックの復号処理フローを示す図である。
復号処理の詳細を図13に基づいて説明する。DC係数、AC係数で区別するため、補助テーブルRef_Table、Base_Table、拡張テーブルCL_Table、VL_Table、RL_Tableの名前の先頭に“DC_”、“AC_”を付けておく。輝度信号、色差信号は、テーブルが適宜選択されるものとする。
ステップST301では、処理について括弧( )で囲んでいるのはインターバルの最初のDCTブロックか否かを判定し、最初のDCTブロックときのみ実行することを示しており、DC係数バッファ108が直前のDCTブロックのDC係数PreDCを0にクリアして初期化する。ステップST302において、復号装置の全体を管理制御する管理制御部(図示せず)はDCT係数番号Numを0に初期化する。ステップST303において、管理制御部は復号処理対象のDCTブロックの係数配列をクリアして0に初期化する。ステップST304において、復号レジスタ103及びシフト数選択器105は復号レジスタ103を符号ビット列Cregで満たして初期化する。
DC係数の復号処理として、まず、符号語を処理するために、ステップST305において、零位置検出器130は符号ビット列Cregの最上位のビット‘0’の位置を位置情報Posに設定する。ステップST306において、参照ビット数テーブル121は、位置情報Posに基づき、補助テーブルRef_Tableから参照ビット数Refを設定し、ステップST307において、基準位置テーブル120は、位置情報Posに基づき、Base_Tableから基準位置Baseを設定する。ステップST308において、オフセット抽出器131は符号ビット列Creg上で位置情報Posが示すビット‘0’以降の参照ビット数Refの符号ビットを参照してオフセットOffsetに設定する。ステップST309において、加算器132は、BaseとOffsetを加え、拡張テーブルへのアドレスAddressに設定する。
AC係数の復号処理として、まず符号語を処理するために、ステップST318からステップST322において、上記ステップST305からステップST309までと同様に、拡張テーブルへのアドレスAddressが設定される。ステップST323において、ハフマン符号語長テーブル110は、アドレスAddressに基づき、拡張テーブルCL_Tableからハフマン符号語長CLを設定し、ステップST324において、付加ビット数テーブル111は、アドレスAddressに基づき、VL_Tableから付加ビット数VLを設定し、ステップST325において、ランレングステーブル112は、アドレスAddressに基づき、RL_TableからランレングスRLを設定する。ステップST326において、復号レジスタ103及びシフト数選択器105は符号ビット列Creg上位から読み取った符号語数CLビット分の符号ビットを更新する。
また、他のオフセット値の抽出例としては、Creg値を(16−(Pos+1)−R
ef)ビット下位方向にシフトしてから(Pos+1)ビットの有効ビット参照用のマスクをかけて得る構成であってもよい。
上記実施の形態1では、復号レジスタ103の符号ビット列Cregは、シフト数選択器105により図9に示すハフマン符号語長CL、付加ビット数VLの2回に分けて更新を行っていた。この実施の形態2では、復号レジスタ103の符号ビット列Cregを、特定ビットまでのビット数(Pos+1)、ハフマン符号語長CLまでの残りのビット数(CL−(Pos+1))、付加ビット数VLの3回に分けて更新する場合について説明する。
ここでは、実施の形態1との動作の相違を説明する。
シフト数選択器105は、復号レジスタ103の符号ビット列Cregを1回目の特定ビットまでのビット数(Pos+1)シフトして更新させることで、参照ビットを符号ビット列Cregの最上位ビットから抽出可能とする。オフセット抽出器131は、復号レジスタ103の符号ビット列Cregを参照し、符号ビット列Cregの最上位ビットから参照ビット数Refの符号ビット値をオフセットOffsetとして出力する。上記実施の形態1と同様にハフマン符号語長CL等を得た後、シフト数選択器105は、復号レジスタ103の符号ビット列Cregを2回目のハフマン符号語長CLまでの残りのビット数(CL−(Pos+1))シフトして更新させることで符号語長分のシフトを完了させた後、上記実施の形態1と同様に3回目の付加ビット数VLシフトして更新させる。
上記実施の形態1では、復号レジスタ103の符号ビット列Cregは、シフト数選択器105により図9に示すハフマン符号語長CL、付加ビット数VLの2回に分けて更新を行っていた。この実施の形態3では、復号レジスタ103の符号ビット列Cregを、ハフマン符号語長CLと付加ビット数VLをまとめて、(CL+VL)の1回のみで更新する場合について説明する。
ここでは、上記実施の形態1との動作の相違を説明する。
まず、符号語長CLの処理については、上記実施の形態1と同様に拡張テーブルの出力が得られるまで処理を行う。付加ビット抽出器106は、復号レジスタ103の最上位のハフマン符号語長CLビット以降の付加ビット数VLビットの符号ビットを付加ビットAddbitとして出力した後、上記実施の形態1と同様に付加ビットを処理する。シフト数選択器105は、符号語及び付加ビットの処理が終了しているため、復号レジスタ103の符号ビット列Cregをハフマン符号語長CLと付加ビット数VLの和(CL+VL)ビットシフトして更新させる。
Claims (7)
- 可変長の符号語を定義した標準テーブルを入力し、符号語の中で値が変化する最上位の特定ビットの位置を示す位置情報に基づいて各符号語を符号語長の昇順に分類し、同一分類中で上記特定ビットから最大符号語長までのビット数を参照ビット数として定義した参照ビット数テーブルと、各分類において、それ以前の分類までの累積符号語数を基準位置として定義した基準位置テーブルとを補助テーブルとして生成し、上記標準テーブルから、各分類において、各符号語の符号語長と最大符号語長との差に基づき拡張した、各符号語のハフマン符号語長を示すハフマン符号語長テーブルを含む拡張テーブルを生成するテーブル拡張手段と、
与えられた復号すべき可変長符号を少なくとも全符号語に対する最大符号語長の符号ビット列を参照できるように保持する符号保持手段と、
該符号保持手段に保持されている符号ビット列を参照し、値が変化する最上位の特定ビットの位置を示す位置情報を検出し、検出した位置情報により後述の補助テーブル参照手段から参照ビット数と基準位置を入手し、上記拡張テーブルのアドレスを生成する拡張アドレス生成手段と、
上記テーブル拡張手段により生成された補助テーブルを管理し、上記拡張アドレス生成手段からの位置情報により上記参照ビット数テーブルと上記基準位置テーブルから参照ビット数と基準位置を出力する補助テーブル参照手段と、
上記テーブル拡張手段により生成された拡張テーブルを管理し、上記拡張アドレス生成手段により生成されたアドレスに基づき上記ハフマン符号語長テーブルよりハフマン符号語長を出力する拡張テーブル参照手段と、
該拡張テーブル参照手段により出力されたハフマン符号語長に基づき上記符号保持手段に保持されている符号ビット列をシフトして更新するよう指示する符号更新手段とを備えた可変長符号の復号装置。 - 上記テーブル拡張手段は拡張テーブルとして各符号語の付加ビット数を示す付加ビット数テーブルを生成し、
上記拡張テーブル参照手段は上記拡張アドレス生成手段により生成されたアドレスに基づき上記付加ビット数テーブルより付加ビット数を出力し、
上記符号更新手段は上記拡張テーブル参照手段より出力されたハフマン符号語長と付加ビット数に基づき上記符号保持手段に保持されている符号ビット列をシフトして更新するよう指示することを特徴とする請求項1記載の可変長符号の復号装置。 - 上記符号保持手段に保持されている更新されている符号ビット列を参照し、上記拡張テーブル参照手段により出力された付加ビット数の符号ビット値を付加ビットとして抽出する付加ビット抽出手段と、
上記拡張テーブル参照手段により出力された付加ビット数と上記付加ビット抽出手段により抽出された付加ビットに基づき、復号値を復元するデータ復元手段とを備えたことを特徴とする請求項2記載の可変長符号の復号装置。 - 上記テーブル拡張手段は拡張テーブルとして各符号語のゼロ係数のランレングスを示すランレングステーブルを生成し、
上記拡張テーブル参照手段は上記拡張アドレス生成手段により生成されたアドレスに基づき上記ランレングステーブルよりゼロ係数のランレングスを出力し、
上記データ復元手段は、上記拡張テーブル参照手段により出力された付加ビット数及びゼロ係数のランレングスと、上記付加ビット抽出手段により抽出された付加ビットに基づき復号値を復元することを特徴とする請求項3記載の可変長符号の復号装置。 - 上記符号更新手段は上記拡張テーブル参照手段より出力されたハフマン符号語長及び付加ビット数に基づき、上記符号保持手段に保持されている符号ビット列の更新を、ハフマン符号語長と付加ビット数に分けて指示することを特徴とする請求項2記載の可変長符号の復号装置。
- 上記符号更新手段は上記拡張テーブル参照手段より出力されたハフマン符号語長及び付加ビット数、並びに拡張アドレス生成手段により検出された位置情報に基づき、上記符号保持手段に保持されている符号ビット列の更新を、特定ビットまでのビット数とハフマン符号語長までの残りのビット数と付加ビット数の更新に分けて指示することを特徴とする請求項2記載の可変長符号の復号装置。
- 上記符号更新手段は上記拡張テーブル参照手段より出力されたハフマン符号語長及び付加ビット数に基づき、上記符号保持手段に保持されている符号ビット列の更新を、ハフマン符号語長と付加ビット数をまとめて指示することを特徴とする請求項2記載の可変長符号の復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005114819A JP4519701B2 (ja) | 2005-04-12 | 2005-04-12 | 可変長符号の復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005114819A JP4519701B2 (ja) | 2005-04-12 | 2005-04-12 | 可変長符号の復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006295631A JP2006295631A (ja) | 2006-10-26 |
JP4519701B2 true JP4519701B2 (ja) | 2010-08-04 |
Family
ID=37415704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005114819A Expired - Fee Related JP4519701B2 (ja) | 2005-04-12 | 2005-04-12 | 可変長符号の復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4519701B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101998122B (zh) * | 2010-12-13 | 2012-05-02 | 山东大学 | Jpeg图像中范式霍夫曼的硬件解码方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06152988A (ja) * | 1992-11-02 | 1994-05-31 | Sharp Corp | 可変長符号の復号化装置 |
-
2005
- 2005-04-12 JP JP2005114819A patent/JP4519701B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006295631A (ja) | 2006-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100527891B1 (ko) | 허프만 디코딩을 수행하는 방법 | |
EP0471518B1 (en) | Data compression method and apparatus | |
US6215906B1 (en) | Data compression and restoration system for encoding an input character on the basis of a conditional appearance rate obtained in relation to an immediately preceding character string | |
US5883975A (en) | Compression and decompression methods on two-dimensional image data | |
US5208593A (en) | Method and structure for decoding Huffman codes using leading ones detection | |
US20010054973A1 (en) | Variable length decoder | |
JPH0879092A (ja) | データを圧縮及び圧縮解除するための方法及び装置 | |
EP0914009A2 (en) | Method and apparatus for start code detection in a compressed bitstream | |
JP2007037115A (ja) | デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法 | |
JP2000315954A (ja) | 入力データストリームの圧縮方法とその装置 | |
JP2006092725A (ja) | 圧縮システム及び方法 | |
JP2007537642A (ja) | Xmlデータの構造化されたブロック単位の圧縮及び解凍方法及び装置 | |
JP4519701B2 (ja) | 可変長符号の復号装置 | |
US8849051B2 (en) | Decoding variable length codes in JPEG applications | |
US20010012398A1 (en) | Multi-color image encoding apparatus and method, multi-color image decoding apparatus and method | |
US6404362B1 (en) | Method and apparatus for reducing the time required for decompressing compressed data | |
JP2003111021A (ja) | 符号化画像データ復号装置、方法およびプログラム | |
JP2003324611A (ja) | 画像処理装置及び画像処理方法 | |
US20020089436A1 (en) | Delta data compression and transport | |
JPH10190476A (ja) | データ圧縮方法及びその装置 | |
JPH0884260A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
JPH07336696A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
JPH07135471A (ja) | データ圧縮装置およびデータ伸張装置 | |
WO2023172156A1 (en) | Method of data optimization for lossless compression, data compression, and decompression apparatus | |
JP2004253889A (ja) | 画像処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071009 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080220 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080723 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100402 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100511 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100519 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |