JP5895545B2 - プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 - Google Patents
プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 Download PDFInfo
- Publication number
- JP5895545B2 JP5895545B2 JP2012006860A JP2012006860A JP5895545B2 JP 5895545 B2 JP5895545 B2 JP 5895545B2 JP 2012006860 A JP2012006860 A JP 2012006860A JP 2012006860 A JP2012006860 A JP 2012006860A JP 5895545 B2 JP5895545 B2 JP 5895545B2
- Authority
- JP
- Japan
- Prior art keywords
- integer
- symbol string
- address
- code
- encoded
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、スライド辞書法による符号化で得られる整数の出現頻度の偏りを増加させるものである。整数の出現頻度に偏りを持たせることで、出現頻度が高い記号ほど短い符号に符号化する符号化方式によって、より多くの整数を短い符号に符号化でき、圧縮率を向上させることができる。
第1の符号化手段1aは、符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索する。なお、符号化が終了した記号列の末尾から所定の範囲内の記号列は、例えばバッファ5に格納されている。バッファ5内の記号列は、新たな記号列の符号化が終了するごとに、第1の符号化手段1aにより更新される。
第1の復号手段2aは、例えば圧縮ファイル4aから符号列を取得する。取得した符号列には、アドレスを示す整数と長さを示す整数とを含む中間符号を、出現頻度が高い整数ほど短い符号に符号化することで得られた符号が含まれている。第1の復号手段2aは、取得した符号列の先頭から順に、符号を中間符号列2cに復号する。例えば第1の復号手段2aは、ハフマン木を用い、符号の値に応じ、ハフマン木の根から枝を辿り、行き着いた葉に割り当てられた整数に符号化する。なお、第1の復号手段2aは、例えば記録媒体4から整数の出現頻度を示す情報を読み出し、読み出した情報に基づいて、符号化に用いられたものと同様のハフマン木を生成することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、最長一致文字列のアドレスを示す整数が0近傍に偏るように、様々な工夫を施したものである。なお、以下の説明では圧縮対象を文字列とするが、圧縮対象の文字列には記号も含むものとする。
図3に示したような機能を有するコンピュータ100により、元ファイル21内の文字列がデータ圧縮され、圧縮ファイル121が生成される。そして圧縮ファイル121は、記憶部120に格納される。またコンピュータ100により、圧縮ファイル121内の符号が伸張され、伸張ファイル24が生成される。以下、圧縮処理と伸張処理とについて、具体的に説明する。
まず、元ファイル21内の文字列の圧縮処理について説明する。元ファイル21内の文字列は、例えば複数のレコードの配列である。元ファイル21内のレコードは、所定の基準によってソートされているものとする。
まず、比較例として、ZIPなどの既存のLZ77系圧縮におけるアドレス修飾方法について説明する。既存のLZ77系圧縮では、スライド窓30の先頭からのオフセットによって、最長一致文字列のアドレスが指定される。
図8は、スライド窓の先頭からのオフセットで最長一致文字列のアドレス修飾を行った場合のアドレスの分布例を示す図である。図8の横軸は、最長一致文字列のアドレスを示す整数であり、縦軸は整数の出現頻度である。図8に示すように、スライド窓の先頭からのオフセットで最長一致文字列のアドレス修飾を行うと、人名や地名は、氏名までのオフセットγa,γbに影響される。すると、レコードを構成する文字列の種別(例えば人名や地名)ごとにはアドレスの偏りがあっても、異なる種別の文字列間ではアドレスが分散する。その結果、全体としてはアドレスを示す整数の偏りはあまり大きくない。
図9は、参照部の末尾からのオフセットで最長一致文字列のアドレス修飾を行った場合の例を示す図である。図9に示すように、参照部31内の最長一致文字列44,46は、参照部31の末尾からのオフセットにより指定することができる。
次に、アドレスを「αn±β」と表すことの合理性について説明する。
図11は、アドレス(αn±β)におけるαの特性を示す図である。図11では、横軸にαの値(整数)を採り、縦軸にαの値が出現する頻度を示している。図11に示すように、αの値が大きくなるほど、その整数が出現する頻度は小さくなっている。すなわちαの値は、0近傍に偏在している。なお図11では、スライド窓30の参照部31のサイズが無限大(∞)であるものとしてグラフを作成しているが、実際には参照部31のサイズは有限である。そのためスライド窓30の参照部31に格納可能なレコード数がαの最大値となり、αが最大値となったときの頻度が、頻度の最小値となる。
図15は、圧縮処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。なお図15に示す圧縮処理は、元ファイル21内のすべての文字列をスライド辞書法で符号化した後に、ハフマン符号に符号化する方式(2パス方式)である。2パス方式以外の圧縮方式について後述する(第3の実施の形態)。
[ステップS106]第2の符号化処理部112は、ハフマン木を生成する。
次に最長一致文字列の符号化処理(ステップS102)について詳細に説明する。
[ステップS111]第1の符号化処理部111は、スライド窓30の符号化部32の先頭の文字列に対応する最長一致文字列を、参照部31から検索する。最長一致文字列が複数検出された場合、第1の符号化処理部111は、参照部31の末尾に近い方の最長一致文字列を、検索結果とする。
次に、アドレス要素値の算出処理(ステップS105)について詳細に説明する。
[ステップS121]第2の符号化処理部112は、アドレスの各整数をRAM102に記録する。
次に、ハフマン木の生成処理(ステップS106)について説明する。
[ステップS131]第2の符号化処理部112は、αを示す整数の出現頻度の出現頻度を求める。αを示す整数の出現頻度は、例えばすべてのアドレスのαの総出現回数のうち、その整数が出現した回数である。そして第2の符号化処理部112は、αを示す整数の出現頻度に基づいて、ハフマン木を生成する。
図19は、伸張処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS142]第1の復号処理部131は、ハフマン木を生成する。例えば第1の復号処理部131は、整数の出現頻度に基づいて、アドレス(α・β)と長さを示すハフマン符号を伸張するためのハフマン木を生成する。また第1の復号処理部131は、文字の2進数表示の出現頻度に基づいて、文字の進数表示のハフマン符号を伸張するためのハフマン木を生成する。なおハフマン木の生成方法は、データ圧縮時のハフマン木の生成方法と同じである。
[ステップS145]第1の復号処理部131は、圧縮ファイル121の符号部121b内の符号をすべて復号したか否かを判断する。第1の復号処理部131は、すべての符号の復号が完了した場合、処理を終了する。また第1の復号処理部131は、復号していない符号があれば、処理をステップS143に進める。
次にスライド辞書法による復号処理の手順について説明する。
図20は、スライド辞書法による復号処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。なお初期状態では、スライド窓の内容は空であるものとする。
[ステップS157]第2の復号処理部132は、スライド窓のデータを更新する。例えば第2の復号処理部132は、復号された文字数分だけ、スライド窓内の先頭の文字列を破棄する。次に第2の復号処理部132は、復号された文字数分だけ、スライド窓内の文字列を前方にシフトする。そして第2の復号処理部132は、スライド窓内の末尾に復号された文字列を格納する。
以上説明したように、第2の実施の形態では、スライド辞書法による符号化の際に、参照部31の末尾からのオフセットをアドレスとし、アドレスを「αn+β」の形式で表している。これにより、αやβを0近傍の整数に偏らせることができる。ハフマン符号は、出現頻度の高い整数ほど、短い符号に符号化される。そのため、0近傍に偏った整数をハフマン符号に符号化することが、圧縮効率が向上する。
次に第3の実施の形態について説明する。第3の実施の形態は、1パスによるデータ圧縮を行うものである。なお第3の実施の形態を実現するための機能構成は、図3に示した第2の実施の形態の機能構成と同じである。そこで図3に示した各要素の符号を用いて、第3の実施の形態の処理を説明する。
[ステップS201]第1の符号化処理部111は、元ファイル21内の文字列を先頭から順に読み出し、スライド窓30に格納する。例えば第1の符号化処理部111は、スライド窓30の符号化部32に、文字列を格納する。
[ステップS204]第1の符号化処理部111は、スライド窓30が文字列で満杯になったか否かを判断する。スライド窓30が文字列で満杯になった場合、第1の符号化処理部111は、処理をステップS205に進める。またスライド窓30が文字列で満杯になっていなければ、第1の符号化処理部111は、処理をステップS202に進める。
[ステップS209]第1の符号化処理部111は、スライド窓30の符号化部32が空になったか否かを判断する。スライド窓30の符号化部32が空になった場合、第1の符号化処理部111は、処理をステップS210に進める。またスライド窓30の符号化部32に、符号化が未処理の文字列が残っていれば、第1の符号化処理部111は、処理をステップS207に進める。
このように、中間符号の一部を用いてハフマン木を生成することで、ハフマン木の生成処理が容易となる。その結果、圧縮処理の高速化が図れる。
次に第4の実施の形態について説明する。第4の実施の形態は、文字列の出現頻度が、レコード長による周期性を有していない場合に適したデータ圧縮処理である。以下、第4の実施の形態における第2の実施の形態との相違点について説明する。
・補正後のアドレス=参照部の末尾から最長一致文字列の先頭までのオフセット−最長一致文字列の長さ
・補正後の長さ=最長一致文字列の長さ−3
補正後のアドレスは、参照部の末尾から最長一致文字列の末尾までのオフセットを示している。
スライド窓30はFIFO(First-In First-Out)型のバッファである。スライド窓30には、符号化対象の文字列が順次入力され、スライド窓30内が文字列で満杯になると、古い文字列から順に破棄される。このような動作を、文字列上でのスライド窓の移動と捉えると、図26のように表せる。
このようにして、スライド窓30のバッファへの物理的な書き込みをサイクリックに行うことができる。その結果、スライド窓30内の文字列の更新時の書き込みデータ量が少なくて済み、圧縮処理の高速化が図れる。また伸張時にも同様のスライド窓の制御を行うことで、伸張処理の高速化が図れる。なお第2の実施の形態においても、図27に示した方法でスライド窓30の文字列を更新し、圧縮・伸張処理の高速化が可能である。
最長一致文字列のアドレス=符号化カウンタの値−検出位置ポインタの値−参照部のデータ長×m ・・・(1)
ここで、mは0以上の整数である。第1の符号化処理部111は、例えば「参照部のデータ長×m」の値が「符号化カウンタの値−検出位置ポインタの値」より小さくなるようなmのうちの最大値を求め、そのmの最大値を用いて上記式(1)を計算する。
図30に示すように、高頻度整数は、全7ビットで表現される。低頻度整数は、13ビットで表現される。なお、7ビットすべてが「0」の場合、アドレスを示す整数「1」を表しているものとする。すなわち7ビットで表される数値に1を加算した値を、アドレスを示す整数とする。
・低頻度整数の下位7ビットは、高頻度整数の全7ビットと相似した特性を持つ。
・低頻度整数の上位3ビットは、中位3ビットと相似した特性を持つ。
図32は、第4の実施の形態におけるハフマン木の生成処理の手順の一例を示す図である。以下、図32に示す処理をステップ番号に沿って説明する。
[ステップS302]第2の符号化処理部112は、低頻度整数を上位3ビット、中位3ビット、下位7ビットに分割する。
このようにして、アドレスと長さを符号化するためのハフマン木と、文字の2進数表記を符号化するためのハフマン木とが生成される。
図33は、低頻度整数を区分けする他の例を示す図である。図33の例では、高頻度整数境界値を「256」としている。この場合、「1〜256」が高頻度整数となる。高頻度整数は全8ビットで表される。そして、8ビットで表される整数それぞれが割り当てられた256個の葉が生成される。
〔第5の実施の形態〕
次に、第5の実施の形態について説明する。第5の実施の形態は、圧縮・伸張の際にハフマン木に代えて、無節点の木を生成するものである。
図34は、整数の出現頻度と符号長との関係の一例を示す図である。図34には、整数に関し、出現回数、出現頻度、補正確率、符号長、および圧縮符号が示されている。
上記の各実施の形態に示した処理機能をコンピュータ100によって実現するために、各実施の形態に示した処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
1a 第1の符号化手段
1b 第2の符号化手段
1c 中間符号列
2a 第1の復号手段
2b 第2の復号手段
2c 中間符号列
3 元ファイル
4 記録媒体
4a 圧縮ファイル
5 バッファ
Claims (14)
- 符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索し、
符号化が終了した記号列の末尾から該最長一致記号列の末尾までの距離を示す整数を、該最長一致記号列のアドレスとし、該最長一致記号列に対応する、符号化が行われていない記号列の先頭の記号列を、該アドレスを示す整数と該最長一致記号列の長さを示す整数とに符号化し、
該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)を求め、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式に変換し、αとβとの値および長さを示す整数を、出現頻度が高いほど短い符号となるように符号化する、
処理をコンピュータに実行させるプログラム。 - 最長一致記号列の検索では、検索対象の記号列をバッファに格納し、記号列の符号化が終了するごとに、符号化が終了した記号列を、該バッファ内の最先に符号化された記号列の位置に上書きで書き込む、
処理をコンピュータに実行させる請求項1記載のプログラム。 - 最長一致記号列の検索では、符号化された記号数を示すカウンタの値から、前記バッファの先頭から最長一致記号列の位置までのオフセットと、前記バッファの記憶容量の整数倍とを減算した結果を、該最長一致記号列のアドレスとする、
処理をコンピュータに実行させる請求項2記載のプログラム。 - 符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索し、
符号化が終了した記号列の末尾から該最長一致記号列までの距離を示す整数を、該最長一致記号列のアドレスとし、該最長一致記号列に対応する、符号化が行われていない記号列の先頭の記号列を、該アドレスを示す整数と該最長一致記号列の長さを示す整数とに符号化し、
該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)を求め、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式に変換し、αとβとの値および長さを示す整数を、出現頻度が高いほど短い符号となるように符号化する、
処理をコンピュータに実行させるプログラム。 - 符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索し、
符号化が終了した記号列の末尾から該最長一致記号列までの距離を示す整数を、該最長一致記号列のアドレスとし、該最長一致記号列に対応する、符号化が行われていない記号列の先頭の記号列を、該アドレスを示す整数と該最長一致記号列の長さを示す整数とに符号化し、
該最長一致記号列のアドレスを示す整数を、桁数が閾値以下の値の下位整数と、前記閾値より大きい値の上位整数とに分け、上位整数を前記閾値以下の桁で表される整数と前記閾値より上の桁で表される整数とに分離し、符号化に用いる符号の木の葉として、前記閾値以下の桁で表される整数それぞれに対応する葉と、上位整数の前記閾値より上の桁で表される整数それぞれに対応する葉とを生成し、生成された葉それぞれに対応する整数の出現頻度に応じて符号の木を生成し、該符号の木を用い、出現頻度が高い整数ほど短い符号となるように、アドレスを示す整数と長さを示す整数を符号化する、
処理をコンピュータに実行させるプログラム。 - 整数の符号化では、最長一致記号列のアドレスを示す整数と、最長一致記号列の長さを示す整数とに共通の符号の木を生成し、該符号の木を用いて整数を符号化する、
処理をコンピュータに実行させる請求項1乃至5のいずれかに記載のプログラム。 - 符号化が終了した記号列の書き込みでは、符号化された記号数を示すカウンタの値を前記バッファに格納可能な記号数で除算し、前記バッファの先頭から該除算の余りで示された距離の位置に、符号化が終了した記号列を上書きで書き込み、該記号列の記号数分だけ該カウンタの値をカウントアップする、
処理をコンピュータに実行させる請求項2または3記載のプログラム。 - 符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索したときに、該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)に基づいて、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式で表したときのαとβとの値、および長さを示す整数を含む中間符号を、出現頻度が高い整数ほど短い符号に符号化することで得られた符号が、符号列に含まれており、該符号列の先頭から順に、符号を中間符号に復号し、
以前に得られた中間符号の復号により既に得られている記号列の末尾から、新たに得られた中間符号のアドレスを示す整数に応じた距離にある記号を特定し、該記号を末尾とする記号列であり、該中間符号の長さを示す整数分の長さの該記号列を取得し、該中間符号を該取得した記号列に復号する、
処理をコンピュータに実行させるプログラム。 - 符号の復号では、復号に用いる符号の木として、根の直下にすべての葉が接続された無節点の木を用いる、
処理をコンピュータに実行させる請求項8記載のプログラム。 - コンピュータが、
符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索し、
符号化が終了した記号列の末尾から該最長一致記号列の末尾までの距離を示す整数を、該最長一致記号列のアドレスとして、該最長一致記号列に対応する、符号化が行われていない記号列の先頭の記号列を、該アドレスを示す整数と該最長一致記号列の長さを示す整数とに符号化し、
該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)を求め、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式に変換し、αとβとの値および長さを示す整数を、出現頻度が高いほど短い符号となるように符号化し、
整数の符号化によって得られた符号を含む圧縮ファイルを生成する、
ことを特徴とする圧縮ファイル生成方法。 - コンピュータが、
符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索したときに、該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)に基づいて、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式で表したときのαとβとの値、および長さを示す整数を含む中間符号を、出現頻度が高い整数ほど短い符号に符号化することで得られた符号が、符号列に含まれており、該符号列の先頭から順に、符号を中間符号に復号し、
以前に得られた中間符号の復号により既に得られている記号列の末尾から、新たに得られた中間符号のアドレスを示す整数に応じた距離にある記号を特定し、該記号を末尾とする記号列であり、該中間符号の長さを示す整数分の長さの該記号列を取得し、該中間符号を該取得した記号列に復号する、
ことを特徴とする圧縮符号伸張方法。 - 符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索し、符号化が終了した記号列の末尾から該最長一致記号列の末尾までの距離を示す整数を、該最長一致記号列のアドレスとして、該最長一致記号列に対応する、符号化が行われていない記号列の先頭の記号列を、該アドレスを示す整数と該最長一致記号列の長さを示す整数とに符号化する第1の符号化手段と、
該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)を求め、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式に変換し、αとβとの値および長さを示す整数を、出現頻度が高いほど短い符号となるように符号化する第2の符号化手段と、
を有することを特徴とする情報処理装置。 - 符号化が終了した記号列の末尾から所定の範囲内の記号列を検索対象として、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列を検索したときに、該最長一致記号列のアドレスを示す整数の出現頻度が高くなる周期n(nは1以上の整数)に基づいて、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式で表したときのαとβとの値、および長さを示す整数を含む中間符号を、出現頻度が高い整数ほど短い符号に符号化することで得られた符号が、符号列に含まれており、該符号列の先頭から順に、符号を中間符号に復号する第1の復号手段と、
以前に得られた中間符号の復号により既に得られている記号列の末尾から、新たに得られた中間符号のアドレスを示す整数に応じた距離にある記号を特定し、該記号を末尾とする記号列であり、該中間符号の長さを示す整数分の長さの該記号列を取得し、該中間符号を該取得した記号列に復号する第2の復号手段と、
を有することを特徴とする情報処理装置。 - 圧縮ファイルを記憶するコンピュータ読み取り可能な記録媒体において、
前記圧縮ファイルには、出現頻度が高い整数ほど短い符号となるように、整数を符号化した圧縮符号が含まれており、
前記圧縮ファイルに含まれる圧縮符号の元となる整数には、符号化が終了した記号列の末尾から所定の範囲内の記号列のうち、符号化が行われていない記号列の先頭の記号列に対して最も長く一致する最長一致記号列の末尾のアドレスを示す整数と、該最長一致記号列の長さを示す整数とが含まれており、
最長一致記号列のアドレスを示す整数は、符号化が終了した記号列の末尾から所定の範囲内の記号列の末尾から該最長一致記号列までの距離を示す整数の出現頻度が高くなる周期n(nは1以上の整数)に基づいて、最長一致記号列のアドレスをαn±β(αは1以上の整数、βは0以上の整数)の形式で表したときのαとβとの値である、
ことを特徴とする記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012006860A JP5895545B2 (ja) | 2012-01-17 | 2012-01-17 | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
US13/722,206 US8704685B2 (en) | 2012-01-17 | 2012-12-20 | Encoding method, encoding apparatus, decoding method, decoding apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012006860A JP5895545B2 (ja) | 2012-01-17 | 2012-01-17 | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013150041A JP2013150041A (ja) | 2013-08-01 |
JP5895545B2 true JP5895545B2 (ja) | 2016-03-30 |
Family
ID=48779589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012006860A Expired - Fee Related JP5895545B2 (ja) | 2012-01-17 | 2012-01-17 | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8704685B2 (ja) |
JP (1) | JP5895545B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015019484A1 (ja) * | 2013-08-09 | 2015-02-12 | 株式会社日立製作所 | データ圧縮装置およびデータ伸張装置 |
US9124295B2 (en) * | 2013-11-14 | 2015-09-01 | Nicolas Thomas Mathieu Dupont | System and method for data compression and transmission |
US10028277B2 (en) | 2013-11-20 | 2018-07-17 | Cyborg Inc. | Variable frequency data transmission |
JP6609404B2 (ja) * | 2014-07-22 | 2019-11-20 | 富士通株式会社 | 圧縮プログラム、圧縮方法および圧縮装置 |
JP6476647B2 (ja) | 2014-08-20 | 2019-03-06 | 富士通株式会社 | 圧縮プログラム、圧縮装置、圧縮方法、伸長プログラム、伸長装置および伸長方法 |
US20160092492A1 (en) * | 2014-09-27 | 2016-03-31 | Qualcomm Incorporated | Sharing initial dictionaries and huffman trees between multiple compressed blocks in lz-based compression algorithms |
JP6511836B2 (ja) * | 2015-01-30 | 2019-05-15 | 富士通株式会社 | 圧縮プログラム、圧縮方法、圧縮装置および伸長プログラム |
JP6742692B2 (ja) * | 2015-01-30 | 2020-08-19 | 富士通株式会社 | 符号化プログラムおよび伸長プログラム |
JP6641857B2 (ja) * | 2015-10-05 | 2020-02-05 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 |
JP6781373B2 (ja) * | 2016-10-05 | 2020-11-04 | 富士通株式会社 | 検索プログラム、検索方法、および検索装置 |
JP6834327B2 (ja) * | 2016-10-06 | 2021-02-24 | 富士通株式会社 | 符号化プログラム、符号化装置および符号化方法 |
JP6950162B2 (ja) * | 2016-10-06 | 2021-10-13 | 富士通株式会社 | 暗号化システム、暗号化方法、暗号化装置および暗号化プログラム |
WO2018125926A1 (en) * | 2016-12-27 | 2018-07-05 | Datalogic Usa, Inc | Robust string text detection for industrial optical character recognition |
JP7210130B2 (ja) | 2017-04-07 | 2023-01-23 | 富士通株式会社 | 符号化プログラム、符号化方法および符号化装置 |
US10992711B2 (en) * | 2017-04-13 | 2021-04-27 | At&T Intellectual Property I, L.P. | Network aware data driven internet of things service engine |
JP6931442B2 (ja) | 2017-05-16 | 2021-09-08 | 富士通株式会社 | 符号化プログラム、インデックス生成プログラム、検索プログラム、符号化装置、インデックス生成装置、検索装置、符号化方法、インデックス生成方法および検索方法 |
JP7003443B2 (ja) | 2017-05-16 | 2022-01-20 | 富士通株式会社 | 符号化プログラム、符号化装置および符号化方法 |
CN109831544B (zh) * | 2019-01-30 | 2021-10-08 | 重庆农村商业银行股份有限公司 | 一种应用于电子邮箱地址的编码存储方法及系统 |
US10944697B2 (en) | 2019-03-26 | 2021-03-09 | Microsoft Technology Licensing, Llc | Sliding window buffer for minimum local resource requirements |
US11165704B2 (en) | 2019-04-30 | 2021-11-02 | Ebay Inc. | Adaptive encoding network |
CN110868222B (zh) * | 2019-11-29 | 2023-12-15 | 中国人民解放军战略支援部队信息工程大学 | Lzss压缩数据误码检测方法及装置 |
CN112052916B (zh) * | 2020-10-10 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 基于神经网络的数据处理方法、装置以及可读存储介质 |
US11636100B2 (en) * | 2020-11-27 | 2023-04-25 | Verizon Patent And Licensing Inc. | Systems and methods for compression-based search engine |
CN116737741B (zh) * | 2023-08-11 | 2023-11-07 | 成都筑猎科技有限公司 | 一种平台商户余额数据实时更新处理方法 |
CN117156014B (zh) * | 2023-09-20 | 2024-03-12 | 浙江华驰项目管理咨询有限公司 | 一种工程造价数据优化存储方法及系统 |
CN117097441B (zh) * | 2023-10-19 | 2024-02-13 | 深圳龙电华鑫控股集团股份有限公司 | 基于数据分析的载波通信系统传输效率优化方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2862064B2 (ja) * | 1993-10-29 | 1999-02-24 | 三菱電機株式会社 | データ復号装置及びデータ受信装置及びデータ受信方法 |
JPH10190476A (ja) * | 1996-12-27 | 1998-07-21 | Canon Inc | データ圧縮方法及びその装置 |
JP4242970B2 (ja) * | 1998-07-09 | 2009-03-25 | 富士通株式会社 | データ圧縮方法及びデータ圧縮装置 |
JP3541930B2 (ja) * | 1998-08-13 | 2004-07-14 | 富士通株式会社 | 符号化装置及び復号化装置 |
JP3839604B2 (ja) * | 1998-12-22 | 2006-11-01 | 株式会社東芝 | データ処理方法 |
AU3274301A (en) * | 2000-01-05 | 2001-07-16 | Realnetworks, Inc. | Systems and methods for multiple-file data compression |
CN1446404A (zh) * | 2000-08-15 | 2003-10-01 | 西加特技术有限责任公司 | 操作码的双模数据压缩 |
JP2002135128A (ja) * | 2000-10-25 | 2002-05-10 | Sony Corp | データ圧縮方法、データ圧縮・伸長方法、データ圧縮装置及びデータ圧縮・伸長装置 |
JP2003087798A (ja) * | 2001-09-13 | 2003-03-20 | Canon Inc | 動画像圧縮装置及び方法 |
US7436876B2 (en) * | 2002-11-15 | 2008-10-14 | Time Domain Corporation | System and method for fast acquisition of ultra wideband signals |
US7519577B2 (en) * | 2003-06-23 | 2009-04-14 | Microsoft Corporation | Query intermediate language method and system |
JP4093193B2 (ja) * | 2004-03-18 | 2008-06-04 | セイコーエプソン株式会社 | データ圧縮方法及びプログラムならびにデータ復元方法及び装置 |
KR100647956B1 (ko) * | 2004-12-14 | 2006-11-23 | 엘지전자 주식회사 | 휴대폰용 정지 영상 압축 및 복원 방법 |
JP2007043595A (ja) * | 2005-08-05 | 2007-02-15 | Nec Corp | 可変長符号復号化方法および装置ならびにデータ伸長装置 |
JP4814999B2 (ja) * | 2008-01-31 | 2011-11-16 | 富士通株式会社 | データ圧縮・復元方法及び圧縮・復元プログラム |
JP5062131B2 (ja) | 2008-10-06 | 2012-10-31 | 富士通株式会社 | 情報処理プログラム、情報処理装置、および情報処理方法 |
JP5418218B2 (ja) * | 2009-12-25 | 2014-02-19 | 富士通株式会社 | 情報処理プログラム、情報検索プログラム、情報処理装置、および情報検索装置 |
-
2012
- 2012-01-17 JP JP2012006860A patent/JP5895545B2/ja not_active Expired - Fee Related
- 2012-12-20 US US13/722,206 patent/US8704685B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8704685B2 (en) | 2014-04-22 |
US20130181851A1 (en) | 2013-07-18 |
JP2013150041A (ja) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5895545B2 (ja) | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 | |
JP3309031B2 (ja) | 短ブロックのデータを圧縮、伸長するための方法、及び装置 | |
Adjeroh et al. | The Burrows-Wheeler Transform:: Data Compression, Suffix Arrays, and Pattern Matching | |
US9407287B2 (en) | Parallel history search and encoding for dictionary-based compression | |
JP5812188B2 (ja) | プログラム、圧縮データ生成方法、伸張方法、情報処理装置、および記録媒体 | |
US9941900B1 (en) | Techniques for general-purpose lossless data compression using a recurrent neural network | |
TWI594238B (zh) | 直接對lz77引擎輸出之標記進行霍夫曼編碼程序之硬體資料壓縮器 | |
US20160321282A1 (en) | Extracting method, information processing method, computer product, extracting apparatus, and information processing apparatus | |
US20070229323A1 (en) | Methods of creating a dictionary for data compression | |
US9378126B2 (en) | Decompression apparatus and decompression method | |
US9916314B2 (en) | File extraction method, computer product, file extracting apparatus, and file extracting system | |
JP2012533921A (ja) | データの圧縮方法 | |
CN106021356A (zh) | 依据输入区块类型使用动态散列算法的硬件数据压缩器 | |
CN105959013A (zh) | 利用预先霍夫曼编码决定对匹配字符串或反向指针执行霍夫曼编码程序的硬件数据压缩器 | |
CN106027063B (zh) | 基于节点字符串匹配机率对散列链进行分类的硬件数据压缩器 | |
US8947272B2 (en) | Decoding encoded data | |
CN106027064A (zh) | 具有基于不同散列尺寸建构的多个字符串匹配搜寻散列表的硬件数据压缩器 | |
JP6835285B1 (ja) | データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム | |
US8989507B2 (en) | Bitmap compression for fast searches and updates | |
JP5544998B2 (ja) | テキスト処理装置、テキスト処理方法、およびテキスト処理プログラム | |
CN105978574A (zh) | 在输入区块扫描时维持分类符号列的硬件数据压缩器 | |
US11196443B2 (en) | Data compressor, data decompressor, and data compression/decompression system | |
US7538697B1 (en) | Heuristic modeling of adaptive compression escape sequence | |
Salomon et al. | Dictionary methods | |
Sagar | Lossless data compression and decompression algorithm and its hardware architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140904 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150803 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160104 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20160112 |
|
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: 20160202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5895545 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |