JP2007043595A - 可変長符号復号化方法および装置ならびにデータ伸長装置 - Google Patents
可変長符号復号化方法および装置ならびにデータ伸長装置 Download PDFInfo
- Publication number
- JP2007043595A JP2007043595A JP2005227550A JP2005227550A JP2007043595A JP 2007043595 A JP2007043595 A JP 2007043595A JP 2005227550 A JP2005227550 A JP 2005227550A JP 2005227550 A JP2005227550 A JP 2005227550A JP 2007043595 A JP2007043595 A JP 2007043595A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- length code
- code
- decoding
- length
- 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
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 2種類の可変長符号系列で符号化されたデータが混在するデータ列を比較的簡便な構成により高速に復号化することのできる可変長符号復号化装置を提供する。
【解決手段】 ハフマン符号データ列101には、第1のハフマン符号系列で符号化された文字コード又は一致長コードを示すハフマン符号と、第2のハフマン符号系列で符号化された一致位置コードを示すハフマン符号とが混在する。比較対象ビット列生成部112は、データ列101から比較対象ビット列を生成して文字&一致長復号化部113と複数の一致位置復号化部114-0〜114-15に入力し、文字コード及び一致長を示すハフマン符号の復号化と、一致長に続いて現れる一致位置を示すハフマン符号の復号化とを並列に行わせる。選択部115は、文字&一致長復号化部113で一致長が復号化された場合に限り、その復号化されたハフマン符号の符号長に応じて何れか1つの一致位置復号化部114-iの出力を選択する。
【選択図】 図1
【解決手段】 ハフマン符号データ列101には、第1のハフマン符号系列で符号化された文字コード又は一致長コードを示すハフマン符号と、第2のハフマン符号系列で符号化された一致位置コードを示すハフマン符号とが混在する。比較対象ビット列生成部112は、データ列101から比較対象ビット列を生成して文字&一致長復号化部113と複数の一致位置復号化部114-0〜114-15に入力し、文字コード及び一致長を示すハフマン符号の復号化と、一致長に続いて現れる一致位置を示すハフマン符号の復号化とを並列に行わせる。選択部115は、文字&一致長復号化部113で一致長が復号化された場合に限り、その復号化されたハフマン符号の符号長に応じて何れか1つの一致位置復号化部114-iの出力を選択する。
【選択図】 図1
Description
本発明は可変長符号を復号化する復号化方法および装置に関し、特に、2種類の可変長符号系列で符号化されたデータが混在する可変長符号データ列を復号化する可変長符号復号化方法および装置に関する。
データ圧縮手法の一種に可変長符号を用いる手法があり、代表的な可変長符号にハフマン符号がある。ハフマン符号では、或るデータの内部に出現する情報(テキストファイルにおける文字や単語など)に符号を割り当てる際、出現率の高いものにはなるべく短い符号を、逆に出現率の低いものには長い符号を割り当てることにより、個々の情報に固定長の符号を割り当てる場合に比べて効率良くデータを圧縮することが可能である。
このようなハフマン符号で符号化されたデータ列を復号化する方法が従来より各種提案ないし実用化されている。
例えば特許文献1では、図11に示されるように、検出したいハフマン符号を保持するハフマン符号レジスタ1021〜102nと、ハフマン符号の最大ビット長であるmビットの圧縮データのうち検出したいハフマン符号のビット長だけを通過させるアンド回路1061〜106nおよび符号フィルタレジスタ1051〜105nから構成されるフィルタ回路1031〜103nと、フィルタ回路1031〜103nを通過したビット列とハフマン符号レジスタ1021〜102nに保持されているハフマン符号との一致を検出する一致検出回路1041〜104nとを、ハフマン符号の数nだけ並列に設け、n個の一致検出回路1041〜104nの出力A1〜Anをハフマンテーブル1010に入力し、ハフマンテーブル1010に記憶されている、n個のハフマン符号のそれぞれに対応するn個の復号データのうちから、出力A1〜Anの組み合わせで定まる1つの復号データを出力するようにしている。
また特許文献2では、図12に示されるように、ハフマン符号データ列よりハフマン符号の先頭ビットを求める先頭決め部1101と、この先頭決め部1101の出力の先頭ビット位置からハフマン符号の最大ビット長分のビット数を入力し復号語とその符号長を出力する第1の復号テーブル1102と、先頭決め部1101の出力の互いに異なるビット位置からハフマン符号の最大ビット長分のビット数を入力し復号語とその符号長をそれぞれ出力する複数の第2の復号テーブル1103と、第1の復号テーブル1102が出力する符号長を選択信号として複数の第2の復号テーブル1103の出力の何れか1つの復号語と符号長を選択するセレクタ1104とを備え、セレクタ1104で選択された符号長と第1の復号テーブル1102から出力された符号長の和を先頭決め部1101に供給して新たなハフマン符号の先頭ビットを求めるようにすることにより、連続する2つのハフマン符号をまとめて復号化している。
ハフマン符号はそれ単独でも或る程度の圧縮効果を期待できるが、より圧縮効果を高めるために他の圧縮伸長アルゴリズムと組み合わせて使用される場合が多い。例えば、データ通信トラフィック量を削減する目的やデータ蓄積量を削減する目的のために利用される代表的な圧縮伸長アルゴリズムであるLZH、ZIP、gzipなどでは、所定の手法で圧縮したデータをさらにハフマン符号を用いて圧縮している。
具体的には、圧縮アルゴリズムでは、対象データ列の中でそれ以前と同一の文字列が繰り返し現れたら、その文字列を「一致長」を示すコードと「一致位置(オフセット)」を示すコードに置き換える。例えば、文字列「HOGEHOGA」の場合、2度目に現れた3文字の「HOG」は4文字前に現れているので、3を示す一致長コードと、4文字前を示す一致位置コードとに置き換える。一致する文字列が見つからない場合は、文字コードをそのまま扱う。例えば、前記文字列の最初のH、O、G、Eはそれぞれそれらに対応する文字コードのままとされる。これが1段目の圧縮に相当する。次に、2段目の圧縮として、ハフマン符号を用いて、文字コード、一致長コード、一致位置を圧縮する。このとき、これら3種類の情報を1種類のハフマン符号系列で圧縮すると、圧縮率がかえって低下するため、文字コードと一致長コードとを1つのハフマン符号系列(第1のハフマン符号系列)で圧縮し、一致位置は別のハフマン符号系列(第2のハフマン符号系列)で圧縮する。さらに一致位置のハフマン符号化も、一部のビット部分だけをハフマン符号で圧縮し、残りのビットは拡張ビットとしてそのまま出力する。
他方、伸長アルゴリズムでは、まず1段目の伸長処理として、第1および第2の2種類のハフマン符号系列で符号化されたデータが混在するハフマン符号データ列の先頭から順に、1つのハフマン符号ずつ、そのハフマン符号が第1のハフマン符号系列によるものであれば文字コードあるいは一致長コードに復号化し、そのハフマン符号が第2のハフマン符号系列によるものであれば一致位置コードに復号化する。そして、2段目の伸長処理として、文字コードならそのまま出力し、一致長コードおよび一致位置コードなら、それまでに出力された文字コード列から該当する文字コード列を抽出して出力する処理を行う。
特開平6−276104号公報
特開平7−249994号公報
上述のような2種類のハフマン符号系列で符号化されたデータが混在するハフマン符号データ列に対して、その先頭から順番に1つのハフマン符号ずつ復号化していくと、ハフマン符号データ列に含まれるハフマン符号の数に比例した復号時間がかかるという課題がある。
ハフマン符号データ列の復号化に関して図12に示されるような高速化手法が従来より提案されているが、図12に示される従来技術は、1種類のハフマン符号系列で符号化されたハフマン符号データ列を対象とするものであった。このため、2種類のハフマン符号系列で符号化されたデータが混在するハフマン符号データ列に適用する場合、図12の構成に加えて更に、残り1種類のハフマン符号系列に属するハフマン符号を復号化するための回路構成が必要になり、構成が複雑化する課題がある。また、連続する2つのハフマン符号をまとめて復号化するという特許文献2に示される考えを2種類のハフマン符号系列で符号化されたデータが混在するハフマン符号データ列にそのまま適用する場合には、「同種のハフマン符号系列によるハフマン符号が連続する場合」、「第1のハフマン符号系列によるハフマン符号の直後に第2のハフマン符号系列によるハフマン符号が続く場合」、「第2のハフマン符号系列によるハフマン符号の直後に第1のハフマン符号系列によるハフマン符号が続く場合」の3通りの組み合わせに対応する必要があり、ハードウェア量および処理量がさらに大幅に増大するという課題がある。
本発明はこのような事情に鑑みて提案されたものであり、その目的は、2種類の可変長符号系列で符号化されたデータが混在する可変長符号データ列を比較的簡便な構成により高速に復号化することのできる可変長符号復号化方法および装置を提供することにある。
本発明の第1の可変長符号復号化装置は、第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化装置において、第1の可変長符号系列に属する可変長符号の復号化を行う第1の可変長符号復号部と、該第1の可変長符号復号部で復号化された可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号の復号化を前記第1の可変長符号復号部と並列に行う複数の第2の可変長符号復号部と、該複数の第2の可変長符号復号部の出力から有効な出力を選択する選択部とを備えたことを特徴とする。
本発明の第2の可変長符号復号化装置は、第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化装置において、前記可変長符号データ列から比較対象ビット列の先頭を求める比較対象ビット列生成部と、前記求められた比較対象ビット列の先頭から第1の所定ビット数のビット列を入力し、第1の可変長符号系列に属する可変長符号を復号した第1の復号語および第1の符号長ならびに続く可変長符号系列の種別を示す種別情報を出力する第1の可変長符号復号部と、前記求められた比較対象ビット列の先頭に続くそれぞれ異なるビット位置から第2の所定ビット数のビット列を入力し、第2の可変長符号系列に属する可変長符号を復号した第2の復号語および第2の符号長を出力する複数の第2の可変長符号復号部と、前記出力された種別情報が前記第2の可変長符号系列を示す場合に、前記第1の可変長符号復号部から出力される第1の符号長に基づいて前記複数の第2の可変長符号復号部の出力のうちの1つに含まれる第2の復号語を選択して出力する選択部と、前記第1の可変長符号復号部から出力される第1の符号長および種別情報ならびに前記第2の可変長符号復号部から出力される第2の符号長とに基づいて、次の比較対象ビット列の先頭までのビットシフト量を前記比較対象ビット列生成部に通知する制御部とを備えることを特徴とする。
本発明の第3の可変長符号復号化装置は、第2の可変長符号復号化装置において、前記第1の可変長符号復号部は、第1の可変長符号系列に属する可変長符号を復号した第1の復号語が所定のコードであるか否かを示す情報を前記種別情報として出力するものであることを特徴とする。
本発明の第4の可変長符号復号化装置は、第2の可変長符号復号化装置において、前記第1の可変長符号復号部は、前記可変長符号データにおける2種類の可変長符号系列の配列順序を示す制御データに基づいて前記種別情報を生成して出力するものであることを特徴とする。
本発明の第5の可変長符号復号化装置は、第2乃至第4の何れかの可変長符号復号化装置において、前記第1の可変長符号系列は、既出文字列の繰り返し部分を文字長と一致位置を用いて圧縮する際の前記文字長の符号化および文字コードの符号化に使用する可変長符号系列であり、前記第2の可変長符号系列は、前記一致位置の符号化に使用する可変長符号系列であることを特徴とする。
本発明の第6の可変長符号復号化装置は、第5の可変長符号復号化装置において、前記一致位置の符号化が可変長符号と拡張ビットを用いて行われる場合、前記制御部は前記一致位置の復号化が行われた際に前記比較対象ビット列生成部に拡張ビットの情報を通知し、前記比較対象ビット列生成部は通知された拡張ビットの情報に従って前記可変長符号データ列から拡張ビットを抽出して出力するものであることを特徴とする。
本発明の第7の可変長符号復号化装置は、第2または第3の可変長符号復号化装置において、前記第1の可変長符号復号部は、前記第1の可変長符号系列に属する可変長符号に1対1に対応し、前記第1の所定ビット数のビット列に、対応する可変長符号が存在するか否かを検出する複数のパターン比較部と、前記第1の可変長符号系列に属する可変長符号に1対1に対応する復号語および種別情報を保持する複数のレジスタと、該複数のレジスタの内容を選択して出力する選択部と、前記複数のパターン比較部の検出結果に基づいて前記第1の符号長を出力すると共に前記選択部を制御する制御部とを備えることを特徴とする。
本発明の第8の可変長符号復号化装置は、第2または第3の可変長符号復号化装置において、前記第2の可変長符号復号部は、前記第2の可変長符号系列に属する可変長符号に1対1に対応し、前記第2の所定ビット数のビット列に、対応する可変長符号が存在するか否かを検出する複数のパターン比較部と、前記第2の可変長符号系列に属する可変長符号に1対1に対応する復号語を保持する複数のレジスタと、該複数のレジスタの内容を選択して出力する選択部と、前記複数のパターン比較部の検出結果に基づいて前記第2の符号長を出力すると共に前記選択部を制御する制御部とを備えることを特徴とする。
本発明のデータ伸長装置は、第5または第6の可変長符号復号化装置と、該可変長符号復号化装置で復号された復号語のうち文字コードはそのままバッファに蓄積すると共に伸長データの一部として出力し、一致長および一致位置については前記バッファに蓄積された文字コード列から該当する部分を抽出して前記バッファに蓄積すると共に伸長データの一部として出力する復号化処理部とを備えることを特徴とする。
本発明の第1の可変長符号復号化方法は、第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化方法において、第1の可変長符号系列に属する可変長符号を復号化する第1の復号化処理と、該第1の復号化処理により復号される可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号を復号化する複数の第2の復号化処理とを並列に行い、前記複数の第2の復号化処理の結果から有効な出力を選択することを特徴とする。
本発明の第2の可変長符号復号化方法は、第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化方法において、a)前記可変長符号データ列から比較対象ビット列の先頭を求めるステップ、b)前記求められた比較対象ビット列の先頭から第1の所定ビット数のビット列を入力し、第1の可変長符号系列に属する可変長符号を復号した第1の復号語および第1の符号長ならびに続く可変長符号系列の種別を示す種別情報を出力する第1の復号化処理と、前記求められた比較対象ビット列の先頭に続くそれぞれ異なるビット位置から第2の所定ビット数のビット列を入力し、第2の可変長符号系列に属する可変長符号を復号した第2の復号語および第2の符号長を出力する複数の第2の復号化処理とを並列に行うステップ、c)前記出力された種別情報が前記第2の可変長符号系列を示す場合に、前記出力される第1の符号長に基づいて前記複数の第2の復号化処理の結果のうちの1つに含まれる第2の復号語を選択して出力するステップ、d)前記第1の復号化処理の結果に含まれる第1の符号長および種別情報ならびに前記第2の復号化処理の結果に含まれる第2の符号長に基づいて、次の比較対象ビット列の先頭を決定するステップ、を含むことを特徴とする。
『作用』
既出文字列の繰り返し部分を文字長と一致位置を用いて圧縮し、文字長と一致位置とをそれぞれ第1および第2の可変長符号系列で符号化する場合、可変長符号データ列には、第1および第2の可変長符号系列で符号化されたデータが混在するが、第2の可変長符号系列に属する一致位置を示す可変長符号は、必ず第1の可変長符号系列に属する一致長を示す可変長符号の直後に配列されるという規則性がある。本発明はこの規則性に着目し、第1の可変長符号系列に属する可変長符号と第2の可変長符号系列に属する可変長符号とが連続する箇所をまとめて復号化する。つまり、第1の可変長符号系列に属する可変長符号の第1の可変長符号復号部による復号化と、この復号化された可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号の複数の第2の可変長符号復号部による復号化とを並列に行うことによって、可変長符号データ列の復号化を高速化する。そして、可変長符号データ列の残りの部分である第1の可変長符号系列に属する可変長符号が連続する部分は、第1の可変長符号復号部により1つの可変長符号単位で復号化する。
既出文字列の繰り返し部分を文字長と一致位置を用いて圧縮し、文字長と一致位置とをそれぞれ第1および第2の可変長符号系列で符号化する場合、可変長符号データ列には、第1および第2の可変長符号系列で符号化されたデータが混在するが、第2の可変長符号系列に属する一致位置を示す可変長符号は、必ず第1の可変長符号系列に属する一致長を示す可変長符号の直後に配列されるという規則性がある。本発明はこの規則性に着目し、第1の可変長符号系列に属する可変長符号と第2の可変長符号系列に属する可変長符号とが連続する箇所をまとめて復号化する。つまり、第1の可変長符号系列に属する可変長符号の第1の可変長符号復号部による復号化と、この復号化された可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号の複数の第2の可変長符号復号部による復号化とを並列に行うことによって、可変長符号データ列の復号化を高速化する。そして、可変長符号データ列の残りの部分である第1の可変長符号系列に属する可変長符号が連続する部分は、第1の可変長符号復号部により1つの可変長符号単位で復号化する。
本発明によれば、2種類の可変長符号系列で符号化されたデータが混在する可変長符号データ列を比較的簡便な構成により高速に復号化することができる。
その理由は、第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列されるという規則性に着目し、第1の可変長符号系列に属する可変長符号と第2の可変長符号系列に属する可変長符号とが連続する箇所は2つの可変長符号を同時に復号化することで高速化し、可変長符号データ列の残りの部分である第1の可変長符号系列に属する可変長符号が連続する部分は、第1の可変長符号復号部により1つの可変長符号単位で復号化することで構成を簡素化しているためである。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
『第1の実施の形態』
図1を参照すると、本発明の第1の実施の形態にかかるハフマン符号復号化装置100は、ハフマン符号データ列101を入力し、その復号化処理を行って、復号コード102−1、102−2、拡張ビット102−4およびコードイネーブル信号102−3を含む復号信号102を出力する。
図1を参照すると、本発明の第1の実施の形態にかかるハフマン符号復号化装置100は、ハフマン符号データ列101を入力し、その復号化処理を行って、復号コード102−1、102−2、拡張ビット102−4およびコードイネーブル信号102−3を含む復号信号102を出力する。
復号化対象となるハフマン符号データ列101は、LZH、ZIP、gzipなどの圧縮伸長アルゴリズムによって圧縮されたデータ列であり、図2の模式図に示されるように2種類のハフマン符号系列で符号化されたデータが混在している。
図2において、HuiとHujは第1のハフマン符号系列に属するハフマン符号であり、その最大ビット長は16ビットである。この第1のハフマン符号系列は、文字コードと一致長コードを圧縮するために使用され、Hu0からHu255までの合計256種類は文字コードを圧縮したハフマン符号、Hu256からHu509までの合計254種類は一致長コードを圧縮したハフマン符号である。これらの対応関係と復号コードの例を図3に示す。
図3を参照すると、0x00から0xFFまでの合計256種類の文字コードは、それぞれHu0〜Hu255までの合計256種類のハフマン符号により圧縮され、一致長3から一致長256までの合計254種類の一致長コードは、それぞれHu256からHu509までの合計254種類のハフマン符号により圧縮される。逆に復号時には、Hu0からHu509までの合計510種類のハフマン符号は、フラグ1ビット+コード8ビットの合計9ビットのビット列に変換される。ここで、最上位ビットの1ビットのフラグは文字コードの場合は0、一致長コードの場合は1になる。
また図2において、hukは第2のハフマン符号系列に属するハフマン符号であり、その最大ビット長は15ビットである。この第2のハフマン符号系列は、一致位置コードを圧縮するために使用され、合計16種類存在する。これらの対応関係と復号コードの例を図4に示す。
図4を参照すると、一致位置0と一致位置1の2種類の一致位置コードは、それぞれhu0とhu1の2種類のハフマン符号により圧縮される。また、一致位置2〜3の一致位置コードは、共に同じハフマン符号hu2に圧縮され、それらを区別するためにハフマン符号hu2の直後に1ビットの拡張ビットが付加される。この1ビットの拡張ビットは、一致位置が2のときは0、3のときは1になる。以下同様に、一致位置4〜7、一致位置8〜15、…、一致位置16384〜32767の一致位置コードは、ハフマン符号hu3、hu4、…、hu15に圧縮され、その直後に2ビット、3ビット、…、14ビットの拡張ビットが付加される。図2のハフマン符号データ列101におけるハフマン符号hukの直後は、直ちに別のハフマン符号Huiの先頭ビットになっているが、それはhukがhu0、hu1の場合であり、hu2〜hu15の場合にはhukの直後に2〜14ビットの拡張ビットが存在することになる。逆に復号時には、hu0からhu15までの合計16種類のハフマン符号は、4ビットのコードに変換される。また、ハフマン符号hu2の場合にはその直後に存在する1ビットの拡張ビットがそのまま出力され、結果として合計5ビットに変換される。同様に、ハフマン符号hu3〜hu15の場合にはその直後の2ビット、3ビット、…、14ビットの拡張ビットがそのまま出力され、結果として合計6ビット、7ビット、18ビットに変換される。
再び図1を参照すると、本実施の形態にかかるハフマン符号復号化装置100は、データバッファリング部111と、比較対象ビット列生成部112と、文字&一致長復号化部113と、合計16個の一致位置復号化部114−0〜114−15から構成される一致位置復号化部群114と、選択部115と、選択制御部116と、ビットシフト量制御部117とを含んで構成される。
データバッファリング部111は、後段へ送信する比較対象ビット列を調整するためにハフマン符号データ列101を溜め込む機能を有する。
比較対象ビット列生成部112は、データバッファリング部111に蓄積されたハフマン符号データ列101から比較対象ビット列の先頭を求め、比較対象ビット列を後段に送信する機能を有する。また、ビットシフト量制御部117からビットシフト量121を受信すると、このビットシフト量だけ現在の比較対象ビット列の先頭をシフトすることにより、次に抽出する比較対象ビット列の頭出しを行う機能を有する。また、ビットシフト量制御部117からビットシフト量121と同時に拡張ビット数122を受信した場合には、ビットシフト量121によって頭出しを行った位置から拡張ビット数122に相当するビットを拡張ビット102−4として復号信号102に出力し、現在の比較対象ビット列の先頭をこの拡張ビット数122分だけ更にシフトする機能を有する。
文字&一致長復号化部113は、比較対象ビット列生成部112で求められた比較対象ビット列の先頭から第1のハフマン符号系列の最大ビット数である16ビット数のビット列を入力し、第1の可変長符号系列に属するハフマン符号の復号化を行い、文字または一致長を示す復号コード102−1、復号したハフマン符号のビット長(符号長)131および復号コード102−1の種別を示す一致フラグ132(復号コード102−1が一致長コードであれば1、文字コードであれば0)を出力する機能を有する。
複数の一致位置復号化部114−0〜114−15は、比較対象ビット列生成部112で求められた比較対象ビット列の先頭を1ビット目とすると、その2ビット目〜17ビット目より、第2のハフマン符号系列の最大ビット数である15ビット数のビット列を入力し、第2の可変長符号系列に属するハフマン符号の復号化を行い、一致位置を示す復号コード141−0〜141−15および復号したハフマン符号のビット長(符号長)142−0〜142−15を出力する機能を有する。ここで、一致位置復号化部114−0〜114−15の個数が16個あり、それぞれ比較対象ビット列の2ビット目〜17ビット目よりのビット列を入力するようにしている理由は、文字コードあるいは一致長コードを示すハフマン符号の長さが最大16ビットであるため、後続の一致位置を示すハフマン符号の先頭ビットが存在する可能性のある位置は1ビットずつシフトして16通りあるためである。
選択制御部116は、文字&一致長復号化部113から、復号化されたハフマン符号の符号長を示すビット長131と復号化されたハフマン符号が一致長コードであったか否かを示す一致フラグ132とを入力し、一致フラグ132が一致長コードを示す1であれば、ビット長131に応じた選択信号151を選択部115に出力し、一致フラグ132が文字コードを示す0であれば、選択信号151は出力しない。選択信号151は、ビット長131が1であれば一致位置復号化部114−0を、ビット長131が2であれば一致位置復号化部114−1を、…、ビット長131が16であれば一致位置復号化部114−15をそれぞれ選択するよう指示する。
選択部115は、選択制御部116から選択信号151が出力されると、複数の一致位置復号化回路114−0〜114−15のうち、選択信号151で指示された1つの一致位置復号化回路114−iから出力されている一致位置を示す復号コード141−iを選択し、復号コード102−2として出力する。
ビットシフト量制御部117は、文字&一致長復号化部113から、復号化されたハフマン符号の符号長を示すビット長131と復号化されたハフマン符号が一致長コードであったか否かを示す一致フラグ132とを入力し、また、複数の一致位置復号化部114−0〜114−15から復号化されたハフマン符号の符号長を示すビット長142−0〜142−15を入力し、さらに選択部115から復号コード(一致位置)102−2を入力し、ビットシフト量121および拡張ビット数122を比較対象ビット列生成部112に出力すると共に、復号コード102−1、102−2および拡張ビット102−4の有効性を示すコードイネーブル信号102−3を出力する。具体的には、一致フラグ132が0、つまり文字&一致長復号化部113で復号化されたハフマン符号が文字コードの場合は、文字&一致長復号化部113から出力されたビット長131と等しいビットシフト量121を出力し、拡張ビット数122は0とし、コードイネーブル信号102−3では、復号コード(文字&一致長)102−1を有効、復号コード(一致位置)102−2および拡張ビット102−4を無効とする。また、一致フラグ132が1、つまり文字&一致長復号化部113で復号化されたハフマン符号が一致長コードの場合は、文字&一致長復号化部113から出力されたビット長131と選択部115によって選択された一致位置復号化部114−iから出力されたビット長142−iとの和に等しいビットシフト量121を出力し、拡張ビット数122は、選択部115で選択された復号コード(一致位置)102−2が0000または0001ならば0、0010ならば1、0011ならば2、…、1111ならば14とし(図4参照)、コードイネーブル信号102−3は復号コード(文字&一致長)102−1、復号コード(一致位置)102−2および拡張ビット102−4の全てを有効とする。
次に本実施の形態にかかるハフマン符号復号化装置100の動作を説明する。
ハフマン符号復号化装置100は、ハフマン符号データ列101が発生すると、それを入力してデータバッファリング部111に順次蓄積する。次に、比較対象ビット列生成部112により、ハフマン符号データ列101の先頭ビットを比較対象ビット列の先頭に位置決めし、比較対象ビット列の先頭から16ビット分を文字&一致長復号化部113へ、2ビット目からの15ビット分を一致位置復号化部114−0へ、3ビット目から15ビット分を一致位置復号化部114−1へ、…、17ビット目からの15ビット分を一致位置復号化部114−15へ、それぞれ供給する。
文字&一致長復号化部113は、第1のハフマン符号系列に基づいてハフマン符号の復号化を行い、文字コード或いは一致長コードを示す復号コード102−1と、復号化したハフマン符号のビット長131と、一致長コードか否かを示す一致フラグ132とを出力する。他方、この文字&一致長復号化部113の復号化処理と並行して複数の一致位置復号化部114−0〜114−15において、第2のハフマン符号系列に基づくハフマン符号の復号化処理が実施されており、ハフマン符号の復号化に成功した一致位置復号化部114−0〜114−15は、一致位置を示す復号コード141−0〜141−15と、復号化したハフマン符号のビット長142−0〜142−15とを出力する。
文字&一致長復号化部113から出力された一致フラグ132が文字コードを示す0の場合、選択制御部116は、選択部115による復号コード141−0〜141−15の選択は行わず、ビットシフト量制御部117は、ビット長131に等しいビットシフト量121を比較対象ビット列生成部112に出力し、また復号コード102−1のみが有効であることを示すコードイネーブル信号102−3を出力する。比較対象ビット列生成部112は、現在の比較対象ビット列の先頭からビットシフト量121だけずらした位置を新たな比較対象ビット列の先頭に位置決めし、前述と同様の処理を繰り返す。
他方、文字&一致長復号化部113から出力された一致フラグ132が一致長コードを示す1の場合、選択制御部116は、ビット長131に基づいて選択部115による復号コード141−0〜141−15の何れか1つを選択し、ビットシフト量制御部117は、この選択された復号コード141−iと組になるビット長142−iとビット長131との和に等しいビットシフト量121と、復号コード(一致位置)102−2の種類に応じて一意に定まる拡張ビット数122とを比較対象ビット列生成部112に出力し、また復号コード102−1、102−2および拡張ビット102−4が有効であることを示すコードイネーブル信号102−3を出力する。比較対象ビット列生成部112は、現在の比較対象ビット列の先頭からビットシフト量121だけずらした位置を新たな比較対象ビット列の先頭に位置決めし、またこの比較対象ビット列の先頭からビットシフト量121だけ後方に存在する「拡張ビット数122」個分のビットを拡張ビット102−4として出力しながら、新たな比較対象ビット列の先頭の位置決めを行う。そして、決定した新たな比較対象ビット列について前述と同様の処理を繰り返す。
次に本実施の形態の効果を説明する。
本実施の形態にかかるハフマン符号復号化装置100によれば、2種類のハフマン符号系列で符号化されたデータが混在するハフマン符号データ列101を比較的簡便な構成で高速に復号化することができる。その理由は、図2に示されるHujとhukとの連続部分のように第1のハフマン符号系列による一致長コードを示すハフマン符号と第2のハフマン符号系列による一致位置を示すハフマン符号が連続する部分を、文字&一致長復号化部113および一致位置復号化部群114によって並列に処理することで高速化し、ハフマン符号データ列101の残りの部分である第1のハフマン符号系列に属するハフマン符号が連続する部分は、文字&一致長復号化部113により1つのハフマン符号単位で復号化することで構成を簡素化しているためである。
次に本実施の形態にかかるハフマン符号復号化装置100の文字&一致長復号化部113の好適な実施例を説明する。
図5を参照すると、本実施例の文字&一致長復号化部113は、第1のハフマン符号系列に属するハフマン符号の数だけ設けられたパターン比較部201−0〜201−509と、制御部202と、選択部203と、パターン比較部201−0〜201−509に1対1に対応する一致フラグレジスタ221−0〜221−509および文字&一致長コードレジスタ222−0〜222−509とを含んで構成される。
パターン比較部201−0〜201−509は、ハフマン符号レジスタ211−0〜211−509と、比較対象ビット列レジスタ212−0〜212−509と、両者のレジスタに記憶されたビット列の一致を検出する比較部213−0〜213−509とで構成される。全ての比較対象ビット列レジスタ212−0〜212−509には、図1の比較対象ビット列生成部112から供給される16ビットの比較対象ビット列がセットされる。ハフマン符号レジスタ211−0〜211−509には、パターン比較部201−0にあってはハフマン符号Hu0、パターン比較部201−1にあってはハフマン符号Hu1、…、パターン比較部201−509にあってはハフマン符号Hu509がそれぞれ事前に設定される。このとき、16ビットに満たないハフマン符号の場合にはマスクビットが付加され、全体として比較対象ビット列と同じ16ビットとされる。マスクビットは0或いは1の何れでも良いことを意味するビットである。比較部213−0〜213−509は、比較対象ビット列レジスタ212−0〜212−509に新たな比較対象ビット列が入力される毎に、比較対象ビット列レジスタ212−0〜212−509の内容とハフマン符号レジスタ211−0〜211−509の内容とを比較し、一致した場合には、その旨と一致したハフマン符号の符号長とを制御部202に出力する。ハフマン符号の符号長は16ビットからマスクビット数を減算したビット数に等しい。
制御部202は、パターン比較部201−0〜201−509のうち比較一致を出力したパターン比較部201−iに基づいて選択部203に一致フラグレジスタ221−iおよび文字&一致長コードレジスタ222−iを選択するよう指示すると同時に、パターン比較部201−iから出力されたハフマン符号の符号長をビット長131として出力する。
文字&一致長コードレジスタ222−0〜222−509のうち、文字&一致長コードレジスタ222−0〜222−255には、図3で説明したようなハフマン符号Hu0〜Hu255に対応する8ビットのコードが事前に設定され、文字&一致長コードレジスタ222−256〜222−509には、図3で説明したようなハフマン符号Hu256〜Hu509に対応する8ビットのコードが事前に設定されている。また、一致フラグレジスタ221−0〜221−509のうち、一致フラグレジスタ221−0〜221−255には値0が設定され、一致フラグレジスタ221−256〜221−509には値1が設定される。
選択部203は、制御部202から一致フラグレジスタ221−iおよび文字&一致長コードレジスタ222−iを選択するよう指示されると、一致フラグレジスタ221−iに設定された値0または値1を一致フラグ132として選択して出力すると同時に、文字&一致長コードレジスタ222−iに設定された8ビットのコードと前記1ビットの一致フラグ132とを連結した9ビットを復号コード102−1として出力する。
次に本実施の形態にかかるハフマン符号復号化装置100の一致位置復号化部114−0〜114−15の好適な実施例を説明する。
図6を参照すると、本実施例の一致位置復号化部114−jは、第2のハフマン符号系列に属するハフマン符号の数だけ設けられたパターン比較部301−0〜301−15と、制御部302と、選択部303と、パターン比較部301−0〜301−15に1対1に対応する一致位置コードレジスタ321−0〜321−15とを含んで構成される。
パターン比較部301−0〜301−15は、ハフマン符号レジスタ311−0〜311−15と、比較対象ビット列レジスタ312−0〜312−15と、両者のレジスタに記憶されたビット列の一致を検出する比較部313−0〜313−15とで構成される。全ての比較対象ビット列レジスタ312−0〜312−15には、図1の比較対象ビット列生成部112から供給される15ビットの比較対象ビット列がセットされる。ハフマン符号レジスタ311−0〜311−15には、パターン比較部301−0にあってはハフマン符号hu0、パターン比較部301−1にあってはハフマン符号hu1、…、パターン比較部201−15にあってはハフマン符号hu15がそれぞれ事前に設定される。このとき、15ビットに満たないハフマン符号の場合にはマスクビットが付加され、全体として比較対象ビット列と同じ15ビットとされる。マスクビットは0或いは1の何れでも良いことを意味するビットである。比較部313−0〜313−15は、比較対象ビット列レジスタ312−0〜312−15に新たな比較対象ビット列が入力される毎に、比較対象ビット列レジスタ312−0〜312−15の内容とハフマン符号レジスタ311−0〜311−15の内容とを比較し、一致した場合には、その旨と一致したハフマン符号の符号長とを制御部302に出力する。ハフマン符号の符号長は15ビットからマスクビット数を減算したビット数に等しい。
制御部302は、パターン比較部301−0〜301−15のうち比較一致を出力したパターン比較部301−kに基づいて選択部303に一致位置コード321−kを選択するよう指示すると同時に、パターン比較部301−kから出力されたハフマン符号の符号長をビット長142−jとして出力する。
一致位置コードレジスタ321−0〜321−15には、図4で説明したようなハフマン符号hu0〜hu15に対応する4ビットのコードが事前に設定されている。
選択部303は、制御部302から一致位置コードレジスタ321−kを選択するよう指示されると、一致位置コードレジスタ321−kに設定された4ビットのコードを復号コード141−jとして出力する。
次に本実施の形態にかかるハフマン符号復号化装置100を使用したデータ伸長装置の実施例を説明する。
図7を参照すると、本実施例にかかるデータ伸長装置400は、圧縮データ401を入力し、その伸長処理を行って、伸長データ402を出力する装置であり、ファイルヘッダ解析部411、ハフマン復号化用テーブル生成部412、文字&一致長用の復号化テーブル413、一致位置用の復号化テーブル414、ハフマン復号化処理部415、辞書復号化処理部416および出力処理部417から構成されている。
圧縮データ401は、LZHなどの圧縮伸長アルゴリズムによって圧縮され生成されたデータであり、そのフォーマット例を図8に示す。図8を参照すると、lzhファイル500は、個別ファイル毎のファイルヘッダ501と圧縮データ502の組の集合で構成される。ファイルヘッダ501には同じ組の圧縮データ502のサイズなどの情報が格納される。圧縮データ502は、更に、ブロックヘッダ511とブロック圧縮データ512の組の集合で構成される。ブロックヘッダ511には、ブロックサイズ521と、ブロック圧縮データ512で使用されている2種類のハフマン符号系列を復号化するための2種類の復号化テーブル情報(その1つは文字&一致長用、もう1つは一致位置用である)522、523とが含まれ、ブロック圧縮データ512には、LZHによる圧縮アルゴリズムで圧縮したデータが格納されている。このブロック圧縮データ512には、文字コードあるいは一致長コードを示す第1のハフマン符号系列によるハフマン符号と、一致位置を示す第2のハフマン符号系列によるハフマン符号とが混在している。
ファイルヘッダ解析部411は、入力された圧縮データ401のファイルヘッダ501を解析して圧縮ファイルの切れ目を識別し、ブロックヘッダ511とブロック圧縮データ512の組を1つ以上含む圧縮データ502を後段へ出力する。ハフマン復号化用テーブル生成部412は、ブロックヘッダ511を解析してブロックの切れ目を識別し、各ブロック圧縮データ512に含まれるハフマン符号を復号化するための文字&一致長用の復号化テーブル413と一致位置用の復号化テーブル414とをブロックヘッダ511中の復号化テーブル情報522と523とに基づいて生成する。
具体的には、文字&一致長用の復号化テーブル情報522には、図3で説明したような510種類のハフマン符号Hu0〜Hu509と9ビットのビット列(1ビットのフラグと8ビットのコード)との対応情報が設定されているため、ハフマン復号化用テーブル生成部412は、図5で説明した文字&一致長復号化部113のハフマン符号レジスタ211−0〜211−509にハフマン符号Hu0〜Hu509を、また一致フラグレジスタ221−0〜221−509および文字&一致長コードレジスタ222−0〜222−509に、ハフマン符号Hu0〜Hu509に対応する1ビットのフラグと8ビットのコードをそれぞれ書き込む。また、一致位置用の復号化テーブル情報523には、図4で説明したような16種類のハフマン符号hu0〜hu15と4ビットのコードとの対応情報が設定されているため、ハフマン復号化用テーブル生成部412は、図6で説明した各一致位置復号化部114−jのハフマン符号レジスタ311−0〜311−15にハフマン符号hu0〜hu15を、また一致位置コードレジスタ321−0〜321−15に、ハフマン符号hu0〜hu15に対応する4ビットのコードをそれぞれ書き込む。その後、ハフマン符号用テーブル生成部412は、ブロック圧縮データ512をハフマン復号化処理ブロック415へ供給する。
ハフマン復号化処理部415は、図1で説明したハフマン符号復号化装置100で構成されており、前述した処理によって生成された文字&一致長用の復号化テーブル413と一致位置用の復号化テーブル414とを用いて、ブロック圧縮データ512に含まれる2種類のハフマン符号系列によるハフマン符号の復号化を行い、文字コード、一致長コードおよび一致位置コードで構成される復号情報(図8の531)を生成し、辞書復号化処理部416へ出力する。
辞書復号化処理部416は、文字コードの復号データはそのままバッファ(図示せず)に蓄積すると共に出力処理部417を通じて伸長データ402の一部として出力し、一致長および一致位置の復号データについてはバッファに蓄積されたこれまでの文字コードの中から一致文字列を抽出してバッファに蓄積すると共に出力処理部417を通じて伸長データ402の一部として出力する。このようにして出力された文字コードの集合が最終的に解凍された文字列である伸長データ(図7の402)となる。
『第2の実施の形態』
前述した第1の実施の形態にかかるハフマン符号復号化装置100では、文字&一致長復号化部113におけるハフマン符号の復号化時に、復号化したハフマン符号が文字コードおよび一致長コードの何れであるかを判別してその種別を示す一致フラグ132を生成し、この一致フラグ132を直後に続くハフマン符号系列の種別を示す種別情報として利用して一致位置復号化部群114による復号化の有効、無効を制御した。これに対して本実施の形態は、入力のハフマン符号データ列101に存在する2種類のハフマン符号系列の配列順序を示す制御データをハフマン符号データ列101とは別に圧縮側から伸長側に送信し、伸長側のハフマン符号復号化装置では、この制御データを利用して一致位置復号化部群114による復号化の有効、無効を制御する。
前述した第1の実施の形態にかかるハフマン符号復号化装置100では、文字&一致長復号化部113におけるハフマン符号の復号化時に、復号化したハフマン符号が文字コードおよび一致長コードの何れであるかを判別してその種別を示す一致フラグ132を生成し、この一致フラグ132を直後に続くハフマン符号系列の種別を示す種別情報として利用して一致位置復号化部群114による復号化の有効、無効を制御した。これに対して本実施の形態は、入力のハフマン符号データ列101に存在する2種類のハフマン符号系列の配列順序を示す制御データをハフマン符号データ列101とは別に圧縮側から伸長側に送信し、伸長側のハフマン符号復号化装置では、この制御データを利用して一致位置復号化部群114による復号化の有効、無効を制御する。
図9を参照すると、本発明の第2の実施の形態にかかるハフマン符号復号化装置600は、文字&一致長復号化部113が、復号化部113Aとコード種別選別部113Bとで構成されている点で、図1に示される第1の実施の形態と相違する。
図10を参照すると、復号化部113Aは、図5に示される文字&一致長復号化部113から一致フラグ132を出力する機能を省略したものであり、一致フラグレジスタ221−0〜221−509が存在せず、文字&一致長コードレジスタ222−0〜222−509には図3のフラグと8ビットのコードとの合計9ビットが記憶される。
コード種別選別部113Bは、ハフマン符号データ列101に現れる第1および第2のハフマン符号系列の配列順序を示す制御データ601を入力し、復号化部113Aのハフマン符号の復号化処理に同期して、復号化部113Aで復号化されたハフマン符号の直後に第2のハフマン符号系列によるハフマン符号が存在する場合には値1、そうでない場合には値0となる一致フラグ602を生成する。具体的には、ビットシフト量制御部117からビットシフト量121を入力することで復号化部113Aによる復号化処理の進捗状況を把握し、復号化部113Aが復号化したハフマン符号の直後のハフマン符号の種別を示す一致フラグ602を出力する。この出力される一致フラグ602は、第1の実施の形態における一致フラグ132と同じ目的で使用するために、選択制御部116およびビットシフト量制御部117に出力される。
その他の構成と動作は第1の実施の形態と同じである。
なお、本実施の形態では、入力のハフマン符号データ列101に存在する2種類のハフマン符号系列の配列順序を示す制御データ601をハフマン符号データ列101とは別に圧縮側から伸長側に送信するようにしたが、入力のハフマン符号データ列101に存在する2種類のハフマン符号系列の配列順序が予め定義されているアルゴリズムの場合、その定義された配列順序を示す制御データをコード種別選別部113B内に予め保持させておくようにしても良い。
以上、本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。また、本発明の可変長符号復号化装置は、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における可変長符号復号化装置として機能させ、またそのコンピュータに前述した各実施の形態における可変長符号復号化方法を実行させる。
100…ハフマン符号復号化装置
101…ハフマン符号データ列
102…復号信号
102−1…復号コード(文字&一致長)
102−2…復号コード(一致位置)
102−3…コードイネーブル信号
102−4…拡張ビット
111…データバッファリング部
112…比較対象ビット列生成部
113…文字&一致長復号化部
114…一致位置復号化部群
114−0〜114−15…一致位置復号化部
115…選択部
116…選択制御部
117…ビットシフト量制御部
101…ハフマン符号データ列
102…復号信号
102−1…復号コード(文字&一致長)
102−2…復号コード(一致位置)
102−3…コードイネーブル信号
102−4…拡張ビット
111…データバッファリング部
112…比較対象ビット列生成部
113…文字&一致長復号化部
114…一致位置復号化部群
114−0〜114−15…一致位置復号化部
115…選択部
116…選択制御部
117…ビットシフト量制御部
Claims (13)
- 第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化装置において、第1の可変長符号系列に属する可変長符号の復号化を行う第1の可変長符号復号部と、該第1の可変長符号復号部で復号化された可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号の復号化を前記第1の可変長符号復号部と並列に行う複数の第2の可変長符号復号部と、該複数の第2の可変長符号復号部の出力から有効な出力を選択する選択部とを備えたことを特徴とする可変長符号復号化装置。
- 第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化装置において、
前記可変長符号データ列から比較対象ビット列の先頭を求める比較対象ビット列生成部と、
前記求められた比較対象ビット列の先頭から第1の所定ビット数のビット列を入力し、第1の可変長符号系列に属する可変長符号を復号した第1の復号語および第1の符号長ならびに続く可変長符号系列の種別を示す種別情報を出力する第1の可変長符号復号部と、
前記求められた比較対象ビット列の先頭に続くそれぞれ異なるビット位置から第2の所定ビット数のビット列を入力し、第2の可変長符号系列に属する可変長符号を復号した第2の復号語および第2の符号長を出力する複数の第2の可変長符号復号部と、
前記出力された種別情報が前記第2の可変長符号系列を示す場合に、前記第1の可変長符号復号部から出力される第1の符号長に基づいて前記複数の第2の可変長符号復号部の出力のうちの1つに含まれる第2の復号語を選択して出力する選択部と、
前記第1の可変長符号復号部から出力される第1の符号長および種別情報ならびに前記第2の可変長符号復号部から出力される第2の符号長とに基づいて、次の比較対象ビット列の先頭までのビットシフト量を前記比較対象ビット列生成部に通知する制御部とを備えることを特徴とする可変長符号復号化装置。 - 前記第1の可変長符号復号部は、第1の可変長符号系列に属する可変長符号を復号した第1の復号語が所定のコードであるか否かを示す情報を前記種別情報として出力するものであることを特徴とする請求項2記載の可変長符号復号化装置。
- 前記第1の可変長符号復号部は、前記可変長符号データにおける2種類の可変長符号系列の配列順序を示す制御データに基づいて前記種別情報を生成して出力するものであることを特徴とする請求項2記載の可変長符号復号化装置。
- 前記第1の可変長符号系列は、既出文字列の繰り返し部分を文字長と一致位置を用いて圧縮する際の前記文字長の符号化および文字コードの符号化に使用する可変長符号系列であり、前記第2の可変長符号系列は、前記一致位置の符号化に使用する可変長符号系列であることを特徴とする請求項2乃至4の何れか1項に記載の可変長符号復号化装置。
- 前記一致位置の符号化が可変長符号と拡張ビットを用いて行われる場合、前記制御部は前記一致位置の復号化が行われた際に前記比較対象ビット列生成部に拡張ビットの情報を通知し、前記比較対象ビット列生成部は通知された拡張ビットの情報に従って前記可変長符号データ列から拡張ビットを抽出して出力するものであることを特徴とする請求項5記載の可変長符号復号化装置。
- 前記第1の可変長符号復号部は、前記第1の可変長符号系列に属する可変長符号に1対1に対応し、前記第1の所定ビット数のビット列に、対応する可変長符号が存在するか否かを検出する複数のパターン比較部と、前記第1の可変長符号系列に属する可変長符号に1対1に対応する復号語および種別情報を保持する複数のレジスタと、該複数のレジスタの内容を選択して出力する選択部と、前記複数のパターン比較部の検出結果に基づいて前記第1の符号長を出力すると共に前記選択部を制御する制御部とを備えることを特徴とする請求項2または3記載の可変長符号復号化装置。
- 前記第2の可変長符号復号部は、前記第2の可変長符号系列に属する可変長符号に1対1に対応し、前記第2の所定ビット数のビット列に、対応する可変長符号が存在するか否かを検出する複数のパターン比較部と、前記第2の可変長符号系列に属する可変長符号に1対1に対応する復号語を保持する複数のレジスタと、該複数のレジスタの内容を選択して出力する選択部と、前記複数のパターン比較部の検出結果に基づいて前記第2の符号長を出力すると共に前記選択部を制御する制御部とを備えることを特徴とする請求項2または3記載の可変長符号復号化装置。
- 請求項5または6に記載された可変長符号復号化装置と、該可変長符号復号化装置で復号された復号語のうち文字コードはそのままバッファに蓄積すると共に伸長データの一部として出力し、一致長および一致位置については前記バッファに蓄積された文字コード列から該当する部分を抽出して前記バッファに蓄積すると共に伸長データの一部として出力する復号化処理部とを備えることを特徴とするデータ伸長装置。
- 第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化方法において、第1の可変長符号系列に属する可変長符号を復号化する第1の復号化処理と、該第1の復号化処理により復号される可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号を復号化する複数の第2の復号化処理とを並列に行い、前記複数の第2の復号化処理の結果から有効な出力を選択することを特徴とする可変長符号復号化方法。
- 第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化する可変長符号復号化方法において、
a)前記可変長符号データ列から比較対象ビット列の先頭を求めるステップ、
b)前記求められた比較対象ビット列の先頭から第1の所定ビット数のビット列を入力し、第1の可変長符号系列に属する可変長符号を復号した第1の復号語および第1の符号長ならびに続く可変長符号系列の種別を示す種別情報を出力する第1の復号化処理と、前記求められた比較対象ビット列の先頭に続くそれぞれ異なるビット位置から第2の所定ビット数のビット列を入力し、第2の可変長符号系列に属する可変長符号を復号した第2の復号語および第2の符号長を出力する複数の第2の復号化処理とを並列に行うステップ、
c)前記出力された種別情報が前記第2の可変長符号系列を示す場合に、前記出力される第1の符号長に基づいて前記複数の第2の復号化処理の結果のうちの1つに含まれる第2の復号語を選択して出力するステップ、
d)前記第1の復号化処理の結果に含まれる第1の符号長および種別情報ならびに前記第2の復号化処理の結果に含まれる第2の符号長に基づいて、次の比較対象ビット列の先頭を決定するステップ、
を含むことを特徴とする可変長符号復号化方法。 - 第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化するために、コンピュータに、第1の可変長符号系列に属する可変長符号を復号化する第1の復号化処理と、該第1の復号化処理により復号される可変長符号の直後に存在する可能性のある第2の可変長符号系列に属する可変長符号を復号化する複数の第2の復号化処理とを並列に行わせ、かつ、前記複数の第2の復号化処理の結果から有効な出力を選択する処理を行わせるためのプログラム。
- 第1および第2の可変長符号系列で符号化されたデータが混在する可変長符号データ列であって第2の可変長符号系列に属する可変長符号が必ず第1の可変長符号系列に属する可変長符号の直後に配列される可変長符号データ列を復号化するために、コンピュータに、
a)前記可変長符号データ列から比較対象ビット列の先頭を求めるステップ、
b)前記求められた比較対象ビット列の先頭から第1の所定ビット数のビット列を入力し、第1の可変長符号系列に属する可変長符号を復号した第1の復号語および第1の符号長ならびに続く可変長符号系列の種別を示す種別情報を出力する第1の復号化処理と、前記求められた比較対象ビット列の先頭に続くそれぞれ異なるビット位置から第2の所定ビット数のビット列を入力し、第2の可変長符号系列に属する可変長符号を復号した第2の復号語および第2の符号長を出力する複数の第2の復号化処理とを並列に行うステップ、
c)前記出力された種別情報が前記第2の可変長符号系列を示す場合に、前記出力される第1の符号長に基づいて前記複数の第2の復号化処理の結果のうちの1つに含まれる第2の復号語を選択して出力するステップ、
d)前記第1の復号化処理の結果に含まれる第1の符号長および種別情報ならびに前記第2の復号化処理の結果に含まれる第2の符号長に基づいて、次の比較対象ビット列の先頭を決定するステップ、
を行わせるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005227550A JP2007043595A (ja) | 2005-08-05 | 2005-08-05 | 可変長符号復号化方法および装置ならびにデータ伸長装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005227550A JP2007043595A (ja) | 2005-08-05 | 2005-08-05 | 可変長符号復号化方法および装置ならびにデータ伸長装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007043595A true JP2007043595A (ja) | 2007-02-15 |
Family
ID=37801138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005227550A Withdrawn JP2007043595A (ja) | 2005-08-05 | 2005-08-05 | 可変長符号復号化方法および装置ならびにデータ伸長装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007043595A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008102529A1 (ja) | 2007-02-23 | 2008-08-28 | Ntn Corporation | 車輪用軸受装置およびその製造方法 |
JP2011114535A (ja) * | 2009-11-26 | 2011-06-09 | Ricoh Co Ltd | データ処理装置およびデータ処理方法 |
JP2013500535A (ja) * | 2009-09-04 | 2013-01-07 | イーストソフト コーポレイション | ブロック単位データ圧縮及び復元方法及びその装置 |
JP2013150041A (ja) * | 2012-01-17 | 2013-08-01 | Fujitsu Ltd | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
US8572054B2 (en) | 2009-09-21 | 2013-10-29 | Estsoft Corp. | Forward compatibility guaranteed data compression and decompression method and apparatus thereof |
JP2014078994A (ja) * | 2013-12-13 | 2014-05-01 | Dainippon Printing Co Ltd | 数値データ列の符号化/復号化の方法および装置 |
JP2014116835A (ja) * | 2012-12-11 | 2014-06-26 | Toshiba Corp | 復号装置、符号化装置、復号方法、及び符号化方法 |
JP2015505432A (ja) * | 2011-12-07 | 2015-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | データ処理システムにおいて、可変長符号化データ・ストリームを復号するための方法、コンピュータ・プログラム、および、装置 |
JP2017153124A (ja) * | 2017-04-12 | 2017-08-31 | 株式会社東芝 | 復号装置、及び復号方法 |
CN113839678A (zh) * | 2021-08-31 | 2021-12-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种哈夫曼解码系统、方法、设备及计算机可读存储介质 |
-
2005
- 2005-08-05 JP JP2005227550A patent/JP2007043595A/ja not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008102529A1 (ja) | 2007-02-23 | 2008-08-28 | Ntn Corporation | 車輪用軸受装置およびその製造方法 |
JP2013500535A (ja) * | 2009-09-04 | 2013-01-07 | イーストソフト コーポレイション | ブロック単位データ圧縮及び復元方法及びその装置 |
US8593312B2 (en) | 2009-09-04 | 2013-11-26 | Estsoft Corp. | Method and apparatus for compressing and decompressing block unit data |
US8572054B2 (en) | 2009-09-21 | 2013-10-29 | Estsoft Corp. | Forward compatibility guaranteed data compression and decompression method and apparatus thereof |
JP2011114535A (ja) * | 2009-11-26 | 2011-06-09 | Ricoh Co Ltd | データ処理装置およびデータ処理方法 |
JP2015505432A (ja) * | 2011-12-07 | 2015-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | データ処理システムにおいて、可変長符号化データ・ストリームを復号するための方法、コンピュータ・プログラム、および、装置 |
JP2013150041A (ja) * | 2012-01-17 | 2013-08-01 | Fujitsu Ltd | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
JP2014116835A (ja) * | 2012-12-11 | 2014-06-26 | Toshiba Corp | 復号装置、符号化装置、復号方法、及び符号化方法 |
JP2014078994A (ja) * | 2013-12-13 | 2014-05-01 | Dainippon Printing Co Ltd | 数値データ列の符号化/復号化の方法および装置 |
JP2017153124A (ja) * | 2017-04-12 | 2017-08-31 | 株式会社東芝 | 復号装置、及び復号方法 |
CN113839678A (zh) * | 2021-08-31 | 2021-12-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种哈夫曼解码系统、方法、设备及计算机可读存储介质 |
CN113839678B (zh) * | 2021-08-31 | 2023-11-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种哈夫曼解码系统、方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007043595A (ja) | 可変長符号復号化方法および装置ならびにデータ伸長装置 | |
KR100894002B1 (ko) | 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법 | |
JP4801776B2 (ja) | データ圧縮 | |
WO2019153700A1 (zh) | 编解码方法、装置及编解码设备 | |
JP5498783B2 (ja) | データ圧縮の方法 | |
JP5251799B2 (ja) | データ処理装置およびデータ処理方法 | |
CN100417028C (zh) | 执行霍夫曼解码的方法 | |
JP2012533921A (ja) | データの圧縮方法 | |
JP2004240975A (ja) | Dna配列符号化装置及び方法 | |
JP6045123B2 (ja) | エンコーダ、デコーダ及び方法 | |
JP2002252563A (ja) | ハフマン符号の復号方法、復号装置、ハフマン符号復号用テーブルおよびその作成方法 | |
US8947272B2 (en) | Decoding encoded data | |
JP2019036810A (ja) | データ圧縮装置、データ復元装置、データ圧縮プログラム、データ復元プログラム、データ圧縮方法、およびデータ復元方法 | |
US7253752B2 (en) | Coding apparatus, decoding apparatus, coding method, decoding method and program | |
JP2013141165A (ja) | 画像処理装置および画像処理方法、ならびに、画像形成装置 | |
JP4079965B2 (ja) | 復号化システム | |
US20090058694A1 (en) | Decompressing Dynamic Huffman Coded Bit Streams | |
JP2015534795A (ja) | セキュアで損失のないデータ圧縮 | |
KR20050010918A (ko) | 가변길이 복호화를 위한 방법 및 시스템, 및 코드워드들의지역화를 위한 장치 | |
JPH09219650A (ja) | データ符号化装置およびデータ復号装置およびその方法 | |
JPH0764765A (ja) | データ圧縮装置及びデータ復元装置 | |
CN105282554A (zh) | 解码方法及解码装置 | |
JP3565147B2 (ja) | 復号装置 | |
KR100686354B1 (ko) | 가변 트리를 이용한 허프만 복호화 방법 및 장치 | |
Asokan et al. | Burrows wheeler transform based test vector compression for digital circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080711 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090721 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090721 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100402 |