JP2017184200A - 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法 - Google Patents

符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法 Download PDF

Info

Publication number
JP2017184200A
JP2017184200A JP2016073314A JP2016073314A JP2017184200A JP 2017184200 A JP2017184200 A JP 2017184200A JP 2016073314 A JP2016073314 A JP 2016073314A JP 2016073314 A JP2016073314 A JP 2016073314A JP 2017184200 A JP2017184200 A JP 2017184200A
Authority
JP
Japan
Prior art keywords
encoding
unit
encoded
files
dictionary
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.)
Granted
Application number
JP2016073314A
Other languages
English (en)
Other versions
JP6686639B2 (ja
Inventor
片岡 正弘
Masahiro Kataoka
正弘 片岡
文昭 中村
Fumiaki Nakamura
文昭 中村
泰裕 鈴木
Yasuhiro Suzuki
泰裕 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016073314A priority Critical patent/JP6686639B2/ja
Priority to US15/471,171 priority patent/US9973206B2/en
Publication of JP2017184200A publication Critical patent/JP2017184200A/ja
Application granted granted Critical
Publication of JP6686639B2 publication Critical patent/JP6686639B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor

Abstract

【課題】圧縮対象の文書データに複数のファイルが存在する場合であっても、圧縮率を向上する。【解決手段】符号化装置100は、入力された複数のテキストファイルそれぞれを、静的辞書部121および複数のテキストファイルにおける単語の出現頻度に応じて生成される動的辞書部122を用いて符号化する。符号化装置100は、符号化された複数の符号化ファイルと、動的辞書部122に関する情報と、複数の符号化ファイルそれぞれの位置を示す位置情報とを含む、結合符号化ファイルを生成する。【選択図】図7

Description

本発明は、符号化プログラムなどに関する。
圧縮技術では、ZIPなどのLZ77系圧縮とLZWなどのLZ78系圧縮が主流である。LZ77系圧縮では、圧縮対象の文字列に対して、スライド窓を利用し、最長一致文字列探索を行い、圧縮符号に最長一致文字列のアドレスと文字列長を割り当てる。
また、LZ78系圧縮の一例として、標準的に使用される単語や語句が階層構造(トライ木)に予め登録された静的単語辞書と、元の文書データの中で静的単語辞書に登録されていない文字列が登録された補助辞書とを用いて、元の文書データの単語を圧縮する(例えば、特許文献1参照)。
特開2000−269822号公報
しかしながら、従来の圧縮技術では、圧縮対象の文書データに複数のファイルが存在する場合には、圧縮率を向上することができないという問題がある。
例えば、LZ77系圧縮は、スライド窓を利用し、バイトパターンの繰り返しに基づいて圧縮する。このスライド窓は、圧縮対象の文書データに複数のファイルが存在する場合には、複数のファイルを跨いで共有化できない。特定のファイルにおいて繰り返し出現したバイトパターンが、他のファイルにおいて、同様に出現するとは限らないからである。したがって、LZ77系圧縮では、圧縮対象の文書データに複数のファイルが存在する場合に、複数のファイル毎に個別に圧縮するので、圧縮率を向上することができない。
また、LZ78系圧縮の一例では、圧縮対象の文書データに複数のファイルが存在する場合に、複数のファイル毎に、静的単語辞書に登録されていない単語を補助辞書に登録し、登録された補助辞書と、トライ木を利用して符号化する。補助辞書の数が増えると、辞書のサイズが増加する。特に、繰り返し出現する単語が複数のファイル毎の補助辞書に登録されると、辞書のサイズが増加する。したがって、LZ78系圧縮の一例でも、圧縮対象の文書データに複数のファイルが存在する場合に、圧縮率を向上することができない。
1つの側面では、圧縮対象の文書データに複数のファイルが存在する場合であっても、圧縮率を向上することを目的とする。
第1の案では、符号化プログラムは、コンピュータに、入力された複数のテキストファイルそれぞれを、静的辞書および前記複数のテキストファイルにおける単語の出現頻度に応じて生成される動的辞書を用いて符号化し、前記符号化された複数の符号化ファイルと、前記動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む、結合符号化ファイルを生成する、処理を実行させる。
1つの態様によれば、圧縮対象の文書データに複数のファイルが存在する場合であっても、圧縮率を向上することができる。
図1は、本実施例に係る符号化装置の符号化処理の流れの一例を示す図である。 図2は、本実施例に係る動的辞書の一例を示す図である。 図3は、ビットフィルタの一例を示す図である。 図4は、符号化ファイルの構成例を示す図である。 図5は、本実施例に係る復号化装置の復号化処理の流れの一例を示す図である。 図6は、復号化用のケヤキ木のデータ構造の一例を示す図である。 図7は、本実施例に係る符号化装置の構成の一例を示す機能ブロック図である。 図8は、本実施例に係る復号化装置の構成の一例を示す機能ブロック図である。 図9は、本実施例に係る符号化処理のフローチャートの一例を示す図である。 図10は、本実施例に係る復号化処理のフローチャートの一例を示す図である。 図11は、本実施例に係る符号化処理の用途の一例を示す図である。 図12は、実施例の情報処理装置のハードウェア構成を示す図である。 図13は、コンピュータで動作するプログラムの構成例を示す図である。
以下に、本願の開示する符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[実施例に係る符号化処理]
図1は、本実施例に係る符号化装置の符号化処理の流れの一例を示す図である。図1に示すように、符号化装置は、符号化対象のファイルF1内の複数のテキストファイルf11〜f1nそれぞれを、静的辞書および動的辞書D0を用いて符号化する。符号化装置は、複数のテキストファイルf11〜f1nを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率の向上を図る。
ここで、まず、静的辞書とは、一般的な英語辞典、国語辞典や教科書などを基にして、文書中に出現する単語の出現頻度を特定し、出現頻度のより高い単語に対して、より短い符号を割り当てた辞書のことをいう。静的辞書には、それぞれの単語に対応する符号である静的コードがあらかじめ登録されている。これに対して、動的辞書D0とは、静的辞書に登録されていない単語と、動的に付された動的コード(符号)とを対応付けた辞書である。静的辞書に登録されていない単語には、一例として、出現頻度の低い単語(低頻度単語)、未知語、数値、時刻、タグなどがある。ここでいう未知語とは、静的辞書に登録されていない単語であり、符号化する文書の中で繰り返し出現する特長がある単語のことをいう。動的辞書D0には、静的辞書に登録されていない単語の出現順に、動的コードに対応付けられた単語がバッファ部に登録される。なお、動的辞書D0に関する詳しい説明は後述する。
符号化装置の符号化処理の一例を、以下に説明する。例えば、符号化装置は、符号化対象のファイルF1内の複数のテキストファイルf11〜f1nを記憶領域にロードする。ここでいうテキストファイルf11〜f1nは、互いに関連を持つファイルである。互いに関連を持つファイルとは、共通する特定の単語を含むファイルであったり、特定の単語の出現頻度が所定値以上であるファイルであったりする。あるいは、同じフォルダにあるファイルであったり、共通または関連するファイル関連情報を持つファイルであったりする。
符号化装置は、符号化対象のテキストファイルを記憶領域から読み出し、読み出したテキストファイルに対して字句解析を行う。ここでいう字句解析とは、符号化されていない状態のテキストファイルを単語に分割することをいう。
符号化装置は、ビットフィルタB0と単語の文字列とを比較して、単語の文字列がビットフィルタB0にヒットするか否かを判定する。ビットフィルタB0は、静的辞書を用いて符号化可能な単語の文字列を特定するフィルタである。なお、ビットフィルタB0のデータ構造の一例は、後述する。符号化装置は、単語の文字列がビットフィルタB0にヒットした場合には、静的辞書に基づいて単語の文字列を、当該単語の文字列に対応する静的コードに符号化し、静的コードを出力する。
符号化装置は、単語の文字列がビットフィルタB0にヒットしない場合には、単語の文字列が動的辞書D0に登録されているか否かを判定する。符号化装置は、単語の文字列が動的辞書D0に登録されていない場合には、単語の文字列を動的辞書D0に登録し、動的辞書D0に基づいて、登録した単語の文字列を、当該登録した単語の文字列に対応する動的コードに符号化し、動的コードを出力する。また、符号化装置は、単語の文字列が動的辞書D0に登録されている場合には、動的辞書D0に基づいて、当該単語の文字列を、当該単語の文字列に対応する動的コードに符号化する。
符号化装置は、ビットフィルタB0に基づいた静的コードおよび動的辞書D0に基づいた動的コードそれぞれを、符号化ファイルF2内の、符号化対象のテキストファイルに対するテキスト(単語コード)のエリアに出力する。
ここで、符号化装置が符号化対象のファイルF1内のテキストファイルf11を符号化する場合の処理について説明する。テキストファイルf11には、「・・・Sherlock・・・221B・・・・・Baker・・・」が記憶されている。単語の文字列「Sherlock」、単語の文字列「221B」、単語の文字列「Baker」は、静的辞書に登録されていないものとする。単語の文字列が動的辞書D0に登録されていないものとする。
符号化装置は、単語の文字列「Sherlock」がビットフィルタB0にヒットするか否かを判定する。単語の文字列「Sherlock」がビットフィルタB0にヒットしないため、符号化装置は、単語の文字列「Sherlock」が動的辞書D0に既に登録されているか否かを判定する。単語の文字列「Sherlock」が動的辞書D0に既に登録されていないので、符号化装置は、単語の文字列「Sherlock」を新たな動的コード「A000h」に対応付けて動的辞書D0に登録する。符号化装置は、動的コード「A000h」を、テキストファイルf11における符号化ファイルF2のテキストファイル(単語コード)f21に出力する。
また、符号化装置は、単語の文字列「221B」がビットフィルタB0にヒットするか否かを判定する。単語の文字列「221B」がビットフィルタB0にヒットしないため、符号化装置は、単語の文字列「221B」が動的辞書D0に既に登録されているか否かを判定する。単語の文字列「221B」が動的辞書D0に既に登録されていないので、符号化装置は、単語の文字列「221B」を新たな動的コード「A001h」に対応付けて動的辞書D0に登録する。符号化装置は、動的コード「A001h」を、テキストファイルf11における符号化ファイルF2のテキストファイル(単語コード)f21に出力する。
また、符号化装置は、単語の文字列「Baker」がビットフィルタB0にヒットするか否かを判定する。単語の文字列「Baker」がビットフィルタB0にヒットしないため、符号化装置は、単語の文字列「Baker」が動的辞書D0に既に登録されているか否かを判定する。単語の文字列「Baker」が動的辞書D0に既に登録されていないので、符号化装置は、単語の文字列「Baker」を新たな動的コード「A002h」に対応付けて動的辞書D0に登録する。符号化装置は、動的コード「A002h」を、テキストファイルf11における符号化ファイルF2のテキストファイル(単語コード)f21に出力する。
引き続き、符号化装置が符号化対象のファイルF1に記憶されたテキストファイルf12を符号化する場合の処理について説明する。テキストファイルf12には、「・・・・・・・・Baker・・・」が記憶されている。単語の文字列「Baker」が動的辞書D0に登録されている。
符号化装置は、単語の文字列「Baker」がビットフィルタB0にヒットするか否かを判定する。単語の文字列「Baker」がビットフィルタB0にヒットしないため、符号化装置は、単語の文字列「Baker」が動的辞書D0に既に登録されているか否かを判定する。単語の文字列「Baker」が動的辞書D0に既に登録されているので、符号化装置は、動的辞書D0に基づいて、単語の文字列「Baker」を、当該単語の文字列に対応する動的コード「A002h」に符号化する。符号化装置は、動的コード「A002h」を、テキストファイルf12における符号化ファイルF2のテキストファイル(単語コード)f22に出力する。
このようにして、符号化装置は、複数のテキストファイルf11〜f1nを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率の向上を図る。すなわち、符号化装置は、テキストファイルf11〜f1n個別に動的辞書を持つ場合と比較して、テキストファイルf11〜f1n共通に動的辞書D0を持つことで、圧縮率を向上できる。
[動的辞書の一例]
図2は、本実施例に係る動的辞書の一例を示す図である。図2に示される動的辞書D0は、バッファ部D1とアドレステーブルD2とを含む。バッファ部D1は、文字列を記憶する。アドレステーブルD2は、動的コードと、格納位置と、データ長とを対応付けて保持する。動的コードは、あらかじめ定められた固定長の符号であり、例えば圧縮符号である。そして、動的コードは、単語の文字列が登録された順に割り当てられる。ここでは、動的コードは、16進数「A」から始まる固定長2バイトのコードである。格納位置は、バッファ部D1に格納された文字列の位置を示す。データ長は、バッファ部D1に格納された文字列の長さ(バイト長)を示す。
例えば、文字列「Baker」に動的コードが割り当てられる場合について説明する。
符号化装置は、文字列「Baker」をバッファ部D1に格納する。符号化装置は、文字列を格納した格納位置および格納したデータ長をアドレステーブルD2に登録する。ここでは、符号化装置は、格納位置として「14」、データ長として「6」をアドレステーブルD2に登録する。
符号化装置は、文字列に対応付けられたアドレステーブルD2の動的コードを圧縮符号として割り当てる。ここでは、符号化装置は、文字列「Baker」に対応付けられた動的コード「A002h」を割り当てる。
[ビットフィルタの一例]
図3は、ビットフィルタの一例を示す図である。図3に示されるビットフィルタB0は、所定の文書の日本語一般単語のビットフィルタである。なお、図3の例では、日本語一般単語のビットフィルタについて説明するが、英数字を含む基礎単語のビットフィルタの構成も同様であるので、省略する。
図3に示すように、ビットフィルタB0は、2グラムと、ビットマップと、ポインタと、単語文字列と、文字コード列長と、静的コードとを含んで対応付ける。
2グラムは、2文字の文字コード列を示す情報である。ビットマップは、2グラムの文字コード列に対応するビットマップを示す。例えば、「00h00h」に対応するビットマップは「0_0_0_0_0」となる。ポインタは、ビットマップに対応する単語文字列の位置を示すポインタである。
単語文字列は、静的辞書に登録された日本語の単語の文字列であり、文字コード列で表わされる。ここでは、文字コード列が括弧内に示される。文字コード列長は、単語文字列に対応する文字コード列の長さである。静的コードは、単語文字列に割り当てられた、例えば圧縮符号である。
例えば、単語文字列「今日」に静的コードが割り当てられる場合について説明する。符号化装置は、ビットフィルタB0と、単語文字列「今日」とを比較して、単語文字列「今日」がビットフィルタB0にヒットする、静的辞書に登録されている静的コード「8010h」を特定する。
[符号化ファイルの構成例]
図4は、符号化ファイルの構成例を示す図である。図4に示すように、符号化ファイルF2は、ヘッダ部と、符号化データと、トレーラ部とを有する。符号化データは、複数のテキストファイルそれぞれの符号化された単語コード群を記憶する。トレーラ部は、各ファイルのアドレス、動的辞書D0の情報、復号化用のケヤキ木などを記憶する。各ファイルのアドレスは、複数のテキストファイルが符号化されたファイルを格納するアドレスを示す。各ファイルのアドレスは、一例として、符号化データの先頭からの相対アドレスである。動的辞書D0の情報は、図2に示した動的辞書の情報に対応する。ヘッダ部には、各ファイルのアドレスへのポインタやトレーラ部に格納された動的辞書D0へのポインタが格納される。符号化装置は、複数のテキストファイルを符号化すると、符号化された結果である各ファイルを符号化ファイルF2に格納し、格納したアドレスを各ファイルのアドレスに格納する。後述する復号化装置は、復号化処理において、ヘッダ部の各ファイルのアドレスへのポインタを利用して、トレーラ部の各ファイルのアドレスから復号化対象のファイルのアドレスを参照する。復号化装置は、ヘッダ部の動的辞書D0へのポインタを利用し、動的辞書D0を参照する。
[復号化処理の流れ]
図5は、本実施例に係る復号化装置の復号化処理の流れの一例を示す図である。図5では、復号化処理のワークエリアとして、メモリに記憶領域A1、記憶領域A2および記憶領域A3を設ける。復号化装置は、記憶領域A2に、図4のトレーラ部に格納された動的辞書D0の情報をロードする。また、復号化装置は、符号化ファイルF2に記憶されたテキストファイルf12の符号化データを記憶領域A1にロードし、順次単語コードを読み出す。復号化装置は、読み出した単語コードに応じた復号化処理を行う。復号化装置は、単語の文字列(文字コード)を記憶領域A3に格納し、記憶領域A3に格納された文字コードに基づいて復号化ファイルF3を生成する。
図5では、単語コードd1、d2に対する復号化処理を説明する。
復号化装置は、テキストファイルf12に対する符号化データを読み出し、符号化データに含まれる単語コードが動的コードであるか否かを判定する。図5の例では、単語コードd1は、動的コードであると判定される。このため、復号化装置は、動的辞書D0を用いて単語コードd1を復号化する。例えば、復号化装置は、動的辞書D0のアドレステーブルD2から単語コードd1と合致する動的コードを特定し、特定した動的コードに対応する格納位置およびデータ長を取得する。そして、復号化装置は、バッファ部D1から、取得した格納位置およびデータ長を示す復号化データを特定する。すなわち、復号化装置は、単語の文字列(文字コード)を特定する。ここでは、復号化データとして単語の文字列(文字コード)「Baker」が特定される。復号化装置は、特定した復号化データを、記憶領域A3に書き込む。
また、復号化装置は、テキストファイルf12に対する符号化データを読み出し、符号化データに含まれる単語コードが動的コードであるか否かを判定する。図5の例では、単語コードd2は、動的コードでないと判定される。すなわち、単語コードd2は、静的辞書によって符号化されたと判定される。このため、復号化装置は、復号化用ケヤキ木を用いて単語コードd2を伸長する。例えば、復号化装置は、単語コードd2と復号化用ケヤキ木とを比較して、復号化用ケヤキ木に示される復号化データへのポインタを特定する。そして、復号化装置は、特定した復号化データへのポインタを基に、復号化データを特定する。ここでは、復号化データとして単語の文字列(文字コード)「今日」が特定される。復号化装置は、特定した復号化データを、記憶領域A3に書き込む。
また、復号化装置は、テキストファイルf12に対する符号化データを全て復号化した後、記憶領域A3に書き込まれた復号化データを復号化ファイルF3に書き込む。
このようにして、復号化装置は、共有化された動的辞書D0を用いて、それぞれのテキストファイルに対する符号化データを個別に復号化することができる。
図6は、復号化用のケヤキ木のデータ構造の一例を示す図である。図6に示すように、復号化用のケヤキ60は、複数の枝60−1〜60−nと、葉61−1〜61−mとを有する。各枝60−1〜60−nには、所定のビット列が割り当てられる。復号化装置は、単語コードのビット列と、枝60−1〜60−nに割り当てられたビット列とを比較して、単語コードのビット列にヒットする枝に接続される葉を特定する。葉には、単語コードに対応する文字などの情報が格納される。
例えば、葉のデータ構造は、61に示すものとなる。例えば、葉には、葉識別情報と、圧縮符号長と、単語へのポインタとが格納される。葉識別情報は、葉を一意に識別する情報である。圧縮符号長は、各枝60−1〜60−nと比較した単語コードのビット列の内、有効な長さを示す情報である。単語へのポインタは、単語コードを復号化した場合の復号化データを一意に示す情報であり、復号化データへのポインタに対応する。
[符号化装置の構成]
図7は、本実施例に係る符号化装置の構成の一例を示す機能ブロック図である。図7に示すように、符号化装置100は、符号化部110および記憶部120を有する。
符号化部110は、図1に示した符号化処理を実行する処理部である。符号化部110は、ファイルリード部111、判定部112、第1符号化部113、第2符号化部114、更新部115およびファイルライト部116を有する。
記憶部120は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)などの不揮発性の半導体メモリ素子などの記憶装置に対応する。記憶部120は、静的辞書部121および動的辞書部122を有する。
静的辞書部121は、一般的な英語辞典、国語辞典や教科書などを基にして、文書中に出現する単語の出現頻度を特定し、出現頻度のより高い単語に対して、より短い符号を割り当てた辞書である。なお、静的辞書部121の説明は、図3と同様であるので、その説明を省略する。
動的辞書部122は、静的辞書部121に登録されていない単語と動的に付された動的コード(単語コード)とを対応付けた辞書である。なお、動的辞書部122の説明は、図2と同様であるので、その説明を省略する。
ファイルリード部111は、符号化対象のファイルF1内の複数のテキストファイルを記憶領域に読み出す。ファイルリード部111は、符号化対象のテキストファイルを記憶領域から読み出し、読み出したテキストファイルに対して字句解析を行う。ファイルリード部111は、字句解析した結果の各単語を順次判定部112に出力する。
判定部112は、単語が静的辞書部121に登録されているか否かを判定する。例えば、判定部112は、ファイルリード部111から出力された単語の文字列が静的辞書部121のビットフィルタB0にヒットするか否かを判定する。判定部112は、静的辞書部121のビットフィルタB0にヒットすると判定した場合には、単語の文字列を第1符号化部113に出力する。判定部112は、静的辞書部121のビットフィルタB0にヒットしないと判定した場合には、単語の文字列を第2符号化部114に出力する。
第1符号化部113は、単語の文字列を静的辞書部121に基づいて符号化する。例えば、第1符号化部113は、静的辞書部121の静的辞書に基づいて、単語の文字列を、当該単語の文字列に対応する静的コードに符号化する。第1符号化部113は、符号化された静的コードを更新部115に出力する。
第2符号化部114は、単語の文字列を動的辞書部122に基づいて符号化する。例えば、第2符号化部114は、単語の文字列が、動的辞書部122のバッファ部D1に既に格納されているか否かを判定する。第2符号化部114は、単語の文字列が、動的辞書部122のバッファ部D1に既に格納されていない場合には、当該単語の文字列をバッファ部D1に格納するとともに、当該単語の文字列を格納した格納位置および格納したデータ長をアドレステーブルD2に格納する。第2符号化部114は、単語の文字列を、当該単語の文字列に対応付けられた、アドレステーブルD2の動的コードに符号化する。また、第2符号化部114は、単語の文字列が、動的辞書部122のバッファ部D1に既に格納されている場合には、当該単語の文字列を、当該単語の文字列に対応する動的コードに符号化する。第2符号化部114は、符号化された動的コードを更新部115に出力する。
更新部115は、第1符号化部113および第2符号化部114から符号化データを取得し、取得した順に、取得した符号化データを記憶領域に蓄積することで、当該記憶領域を更新する。
ファイルライト部116は、ファイルF1内の複数のテキストファイルを全て符号化した後、記憶領域に書き込まれた符号化データ(単語コード)を符号化ファイルF2に格納する。ファイルライト部116は、動的辞書部122の情報および各テキストファイルを符号化した結果である各ファイルを格納したアドレスを符号化ファイルF2のトレーラ部に書き込む。
[復号化装置の構成]
図8は、本実施例に係る復号化装置の構成の一例を示す機能ブロック図である。図8に示すように、復号化装置200は、復号化部210および記憶部220を有する。
復号化部210は、図5に示した復号化処理を実行する処理部である。復号化部210は、ファイルリード部211、判定部212、第1復号化部213、第2復号化部214、更新部215およびファイルライト部216を有する。
記憶部220は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)などの不揮発性の半導体メモリ素子などの記憶装置に対応する。記憶部220は、静的辞書部221、動的辞書部222および復号化用ケヤキ木223を有する。
静的辞書部221は、一般的な英語辞典、国語辞典や教科書などを基にして、文書中に出現する単語の出現頻度を特定し、出現頻度のより高い単語に対して、より短い符号を割り当てた辞書である。なお、静的辞書部221の説明は、図3と同様であるので、その説明を省略する。
動的辞書部222は、静的辞書部221に登録されていない単語と動的に付された動的コード(単語コード)とを対応付けた辞書である。なお、動的辞書部222の説明は、図2と同様であるので、その説明を省略する。
復号化用ケヤキ木223は、静的辞書部221に登録された単語の静的コードを復号化する際に用いられるケヤキ木である。なお、復号化用ケヤキ木223の説明は、図6と同様であるので、その説明を省略する。
ファイルリード部211は、符号化ファイルF2内の復号化対象のテキストファイルの符号化データを記憶領域A1に読み出す。例えば、ファイルリード部211は、符号化ファイルF2のトレーラ部に記憶された各ファイルのアドレスを用いて、復号化対象のテキストファイルの符号化データを記憶領域A1に読み出す。ファイルリード部211は、記憶領域A1の先頭から各単語コードを順次判定部212に出力する。
判定部212は、単語コードが動的コードであるか否かを判定する。例えば、判定部212は、単語コードの先頭の4ビットが「A」であるか否かを判定する。判定部212は、単語コードの先頭の4ビットが「A」である場合には、動的コードであると判定する。判定部212は、動的コードを第2復号化部214に出力する。判定部212は、単語コードの先頭の4ビットが「A」でない場合には、動的コードでない、すなわち静的コードであると判定する。判定部212は、静的コードを第1復号化部213に出力する。
第1復号化部213は、復号化用ケヤキ木223を用いて静的コードを復号化する。例えば、第1復号化部213は、静的コードと復号化用ケヤキ木223とを比較して、復号化用ケヤキ木223に示される復号化データへのポインタを特定する。第1復号化部213は、特定した復号化データへのポインタを基に、復号化データを特定する。第1復号化部213は、特定した復号化データを更新部215に出力する。
第2復号化部214は、動的辞書部222を用いて符号化データを復号化する。例えば、第2復号化部214は、動的辞書部222のアドレステーブルD2から単語コードと合致する動的コードを特定し、特定した動的コードに対応する格納位置およびデータ長を取得する。第2復号化部214は、動的辞書部222のバッファ部D1から、取得した格納位置およびデータ長の復号化データを特定する。第2復号化部214は、特定した復号化データを更新部215に出力する。
更新部215は、第1復号化部213および第2復号化部214から復号化データを取得し、取得した順に、取得した復号化データを記憶領域A3に蓄積することで、該記憶領域を更新する。
ファイルライト部216は、符号化ファイルF2内の復号化対象のテキストファイルの符号化データを全て復号化した後、記憶領域に書き込まれた復号化データを復号化ファイルF3に書き込む。
[符号化処理の処理手順]
次に、図7に示した符号化部110の処理手順について、図9を参照して説明する。図9は、本実施例に係る符号化処理のフローチャートの一例を示す図である。
図9に示すように、符号化部110は、前処理を実行する(ステップS11)。例えば、符号化部110は、各種記憶領域を記憶部120に確保する。そして、符号化部110は、符号化対象のファイルF1内の複数のテキストファイルの文字列を読み出し、読出用の記憶領域に格納する(ステップS12)。
符号化部110は、読み出した複数のテキストファイルから1つのテキストファイルを選択する(ステップS13)。
符号化部110は、読出用の記憶領域から、選択したテキストファイルの単語の文字列を読み出す(ステップS14)。例えば、符号化部110は、選択したテキストファイルに対して字句解析を行い、字句解析した結果の単語の文字列を先頭から読み出す。
符号化部110は、静的辞書部121の静的辞書に単語の文字列が登録済みであるか否かを判定する(ステップS15)。静的辞書部121の静的辞書に単語の文字列が登録済みであると判定した場合には(ステップS15;Yes)、符号化部110は、静的辞書部121の静的辞書に登録されている静的コードを出力する(ステップS16)。そして、符号化部110は、ステップS21に移行する。
一方、静的辞書部121の静的辞書に単語の文字列が登録済みでないと判定した場合には(ステップS15;No)、符号化部110は、動的辞書部122を参照する(ステップS17)。符号化部110は、動的辞書部122に単語の文字列が登録済みであるか否かを判定する(ステップS18)。例えば、符号化部110は、単語の文字列が動的辞書部122のバッファ部D1に既に格納されているか否かを判定する。
動的辞書部122に単語の文字列が登録済みであると判定した場合には(ステップS18;Yes)、符号化部110は、ステップS20に移行する。一方、動的辞書部122に単語の文字列が登録済みでないと判定した場合には(ステップS18;No)、符号化部110は、当該単語の文字列を動的辞書部122に登録する(ステップS19)。例えば、符号化部110は、単語の文字列を動的辞書部122のバッファ部D1に格納するとともに、当該単語の文字列を格納した格納位置および格納したデータ長をアドレステーブルD2に格納する。そして、符号化部110は、ステップS20に移行する。
ステップS20において、符号化部110は、動的辞書部122に登録されている動的コードを出力する(ステップS20)。例えば、符号化部110は、単語の文字列を、当該単語の文字列に対応付けられた、アドレステーブルD2の動的コードに符号化する。符号化部110は、符号化した動的コードを出力する。そして、符号化部110は、ステップS21に移行する。
ステップS21において、符号化部110は、選択されたテキストファイルの単語コードとして書込用の記憶領域に格納する(ステップS21)。符号化部110は、選択されたテキストファイルの終点か否かを判定する(ステップS22)。選択されたテキストファイルの終点でないと判定した場合には(ステップS22;No)、符号化部110は、選択されたテキストファイルの次の単語を読み出すべく、ステップS14に移行する。
一方、選択されたテキストファイルの終点であると判定した場合には(ステップS22;Yes)、符号化部110は、符号化対象のファイルの終点か否かを判定する(ステップS23)。符号化対象のファイルの終点でないと判定した場合には(ステップS23;No)、符号化部110は、次のテキストファイルを選択すべく、ステップS13に移行する。
符号化対象のファイルの終点であると判定した場合には(ステップS23;Yes)、符号化部110は、書込用の記憶領域に記憶された符号化データを符号化ファイルに書き込む(ステップS24)。このとき、符号化部110は、各テキストファイルを格納したアドレスおよび動的辞書部122の情報を符号化ファイルのトレーラ部に書き込む。そして、符号化部110は、符号化処理を終了する。
[復号化部の処理手順]
次に、図8に示した復号化部210の処理手順について、図10を参照して説明する。図10は、本実施例に係る復号化処理のフローチャートの一例を示す図である。
図10に示すように、復号化部210は、前処理を実行する(ステップS31)。例えば、復号化部210は、各種記憶領域を記憶部220に確保する。そして、復号化部210は、符号化ファイルF2から復号化対象のテキストファイル(単語コード)である符号化データを読出用の記憶領域に読み出し(ステップS32)、動的辞書D0および復号化用のケヤキ木60を読み出す(ステップS33)。動的辞書D0は、記憶部220の動的辞書部222に格納される。復号化用のケヤキ木60は、読出用の記憶領域から、単語コードを読み出す記憶部220の復号化用ケヤキ木223に格納される。
復号化部210は、読出用の記憶領域から、単語コードを読み出す(ステップS34)。復号化部210は、単語コードが動的コードであるか否かを判定する(ステップS35)。
単語コードが動的コードでないと判定した場合には(ステップS35;No)、復号化部210は、復号化用のケヤキ木223と単語コードとを比較して復号化データへのポインタを特定する(ステップS36)。復号化部210は、復号化データへのポインタを基に復号化データを特定する(ステップS37)。そして、復号化部210は、ステップS39に移行する。
一方、単語コードが動的コードであると判定した場合には(ステップS35;Yes)、復号化部210は、動的辞書部222の動的コードを基にして復号化データを特定する(ステップS38)。例えば、復号化部210は、動的辞書部222のアドレステーブルD2から単語コードと合致する動的コードを特定し、特定した動的コードに対応する格納位置およびデータ長を取得する。復号化部210は、動的辞書部222のバッファ部D1に対して、取得された格納位置から取得されたデータ長分の復号化データを特定する。そして、復号化部210は、ステップS39に移行する。
ステップS39において、復号化部210は、復号化データを書込用の記憶領域に書き込む(ステップS39)。復号化部210は、読出用の記憶領域に処理する単語コードがあるか否かを判定する(ステップS40)。読出用の記憶領域に処理する単語コードがあると判定した場合には(ステップS40;Yes)、復号化部210は、次の単語コードを読み出すべく、ステップS34に移行する。
一方、読出用の記憶領域に処理する単語コードがないと判定した場合には(ステップS40;No)、復号化部210は、符号化ファイルF2をクローズする(ステップS41)。そして、復号化部210は、復号化処理を終了する。
[符号化処理の用途]
図11は、本実施例に係る符号化処理の用途の一例を示す図である。図11では、符号化対象のファイルF1内の複数のテキストファイルとして、掲示板への投稿文およびこれに対するコメント文が用いられる場合である。ここでは、Aさんが、掲示板に「山歩き」について投稿したところ、9件のコメントが書き込まれた場合であるとする。Aさんの投稿文および9件のコメント文は、それぞれ互いに関連を持つテキストファイルである。すなわち、それぞれのテキストファイル内で、「尾瀬ヶ原」「ニッコウキスゲ」「鳩待峠」などの未知語が、繰り返し使用されている。「尾瀬ヶ原」は、符号a1で示されている。「鳩待峠」は、符号a2で示されている。「ニッコウキスゲ」は、符号a3で示されている。Aさんの投稿文、Bさんのコメント、Cさんのコメント、Dさんのコメント、Eさんのコメント、Fさんのコメント、Gさんのコメント、Hさんのコメント、Iさんのコメント、Aさんのコメントが、それぞれテキストファイルに対応する。
このような状況の下、符号化処理は、「山歩き」に投稿された投稿文および各コメント文を一括して符号化し、符号化ファイルF2に格納する。符号化ファイルF2には、投稿文および各コメント文のそれぞれの符号化データが、符号化データのエリアに格納される。符号化ファイルF2には、投稿文および各コメント文の符号化データをそれぞれ格納したアドレスが、トレーラ部の各ファイルのアドレスに格納される。そして、符号化ファイルF2には、共通化された動的辞書D0が、トレーラ部に格納される。一例として、動的辞書D0のバッファ部D1に「・・・尾瀬ヶ原△鳩待峠△ニッコウキスゲ△・・・」が格納される。動的辞書D0のアドレステーブルD2に、格納位置とデータ長が、「尾瀬ヶ原△」「鳩待峠△」「ニッコウキスゲ△」をそれぞれ動的コードと対応付けて格納される。
これにより、符号化処理は、複数のテキストファイルを通して、静的辞書に登録されていない単語であって繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
また、フォルダにより複数のファイルが分類されると、あるフォルダ配下の各ファイルには、共通する単語が含まれる場合がある。例えば、ツイッターでは、各発言はあるフォルダ配下の各ファイルに格納される。ある発言者のテキストに含まれる重要な単語がテーマとなり、その単語やその単語に関連する単語が、フォロアーの発言にも多く含まれている。このような状況の下でも、符号化処理は、あるフォルダ配下の各ファイルに格納される各発言を一括して符号化し、符号化ファイルF2に格納する。これにより、符号化処理は、複数のファイルを通して、静的辞書に登録されていない単語であって繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
[実施例の効果]
上記実施例によれば、符号化装置100は、入力された複数のテキストファイルそれぞれを、静的辞書部121および複数のテキストファイルにおける単語の出現頻度に応じて生成される動的辞書部122を用いて符号化する。符号化装置100は、符号化された複数の符号化ファイルと、動的辞書部122に関する情報と、複数の符号化ファイルそれぞれの位置を示す位置情報とを含む、結合符号化ファイルF2を生成する。かかる構成によれば、符号化装置100は、複数のテキストファイルの動的辞書部122を共有することで、圧縮率を向上できる。
また、上記実施例によれば、符号化装置100は、動的辞書部122に関する情報と、複数の符号化ファイルそれぞれの位置を示す位置情報とを、結合符号化ファイルF2のトレーラ部に格納する。かかる構成によれば、符号化装置100は、複数の符号化ファイルを復号化する際に必要な情報をトレーラ部に纏めて格納することで、複数の符号化ファイルを効率的に復号化することが可能になる。
また、上記実施例によれば、符号化装置100は、互いに関連を持つ複数のテキストファイルにおける単語の出現頻度に応じて動的辞書部122を生成し、静的辞書部121および動的辞書部122を用いて符号化する。かかる構成によれば、符号化装置100は、複数のテキストファイルに繰り返し出現する単語が存在する可能性が高いので、複数のテキストファイルを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
また、上記実施例によれば、符号化装置100は、同じフォルダにある複数のテキストファイルにおける単語の出現頻度に応じて前記動的辞書を生成し、前記静的辞書および前記動的辞書を用いて符号化する。かかる構成によれば、符号化装置100は、複数のテキストファイルに繰り返し出現する単語が存在する可能性があるので、複数のテキストファイルを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
また、上記実施例によれば、符号化装置100は、共通する、あるいは、関連するファイル関連情報を持つ複数のテキストファイルにおける単語の出現頻度に応じて前記動的辞書を生成し、前記静的辞書および前記動的辞書を用いて符号化する。かかる構成によれば、符号化装置100は、複数のテキストファイルに繰り返し出現する単語が存在する可能性が高いので、複数のテキストファイルを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
また、上記実施例によれば、符号化装置100は、共通する特定の単語を持つ複数のテキストファイルにおける単語の出現頻度に応じて前記動的辞書を生成し、前記静的辞書および前記動的辞書を用いて符号化する。かかる構成によれば、符号化装置100は、複数のテキストファイルに繰り返し出現する単語が存在する可能性が高いので、複数のテキストファイルを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
また、上記実施例によれば、符号化装置100は、共通する特定の単語の出現頻度が所定値以上である複数のテキストファイルにおける単語の出現頻度に応じて前記動的辞書を生成し、前記静的辞書および前記動的辞書を用いて符号化する。かかる構成によれば、符号化装置100は、複数のテキストファイルに繰り返し出現する単語が存在する可能性が高いので、複数のテキストファイルを通して、繰り返し出現する単語が登録される動的辞書D0の共有化を図ることで、圧縮率を向上できる。
[実施例に関連する他の態様]
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本発明の本旨を逸脱しない範囲の設計変更は適宜行われうる。
また、実施例に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[情報処理装置のハードウェア構成]
実施例の符号化装置100および復号化装置200を含む情報処理装置のハードウェア構成を、図12を参照して説明する。図12は、実施例の情報処理装置のハードウェア構成を示す図である。図12の例が示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータ入力を受け付ける入力装置402と、モニタ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る媒体読取装置404と、他の装置と接続するためのインターフェース装置405と、他の装置と無線により接続するための無線通信装置406とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM407と、ハードディスク装置408とを有する。また、各装置401〜408は、バス409に接続される。
ハードディスク装置408には、例えば図7に示した判定部112、第1符号化部113、第2符号化部114および更新部115の各処理部と同様の機能を有する符号化プログラムが記憶される。また、ハードディスク装置408には、符号化プログラムを実現するための各種データが記憶される。また、ハードディスク装置408には、例えば図8に示した判定部212、第1復号化部213、第2復号化部214および更新部215の各処理部と同様の機能を有する復号化プログラムが記憶される。また、ハードディスク装置408には、復号化プログラムを実現するための各種データが記憶される。
CPU401は、ハードディスク装置408に記憶された各プログラムを読み出して、RAM407に展開して実行することで各種の処理を行う。これらのプログラムは、コンピュータ400を、例えば図7に示した判定部112、第1符号化部113、第2符号化部114および更新部115として機能させることができる。コンピュータ400を、例えば図8に示した判定部212、第1復号化部213、第2復号化部214および更新部215として機能させることができる。
なお、上記の符号化プログラムおよび復号化プログラムは、必ずしもハードディスク装置408に記憶されている必要はない。例えば、コンピュータ400が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ400が読み出して実行するようにしてもよい。コンピュータ400が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN(Local Area Network)等に接続された装置にこのプログラムを記憶させておき、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
図13は、コンピュータで動作するプログラムの構成例を示す図である。コンピュータ400において、図13に示すハードウェア群26(401〜409)の制御を行なうOS(オペレーティング・システム)27が動作する。OS27に従った手順でCPU401が動作して、ハードウェア群26の制御・管理が行なわれることにより、アプリケーションプログラム29やミドルウェア28に従った処理がハードウェア群26で実行される。さらに、コンピュータ400において、ミドルウェア28またはアプリケーションプログラム29が、RAM407に読み出されてCPU401により実行される。
CPU401により符号化する単語を受け付けた場合、ミドルウェア28またはアプリケーションプログラム29の少なくとも一部に基づく処理を行なうことで、(それらの処理をOS27に基づいてハードウェア群26を制御して)符号化部110の符号化機能が実現される。符号化機能は、それぞれアプリケーションプログラム29自体に含まれてもよいし、アプリケーションプログラム29に従って呼び出されることで実行されるミドルウェア28の一部であってもよい。
100 符号化装置
110 符号化部
111 ファイルリード部
112 判定部
113 第1符号化部
114 第2符号化部
115 更新部
116 ファイルライト部
120 記憶部
121 静的辞書部
122 動的辞書部
200 復号化装置
210 復号化部
211 ファイルリード部
212 判定部
213 第1復号化部
214 第2復号化部
215 更新部
216 ファイルライト部
220 記憶部
221 静的辞書部
222 動的辞書部
223 復号化用ケヤキ木

Claims (12)

  1. コンピュータに、
    入力された複数のテキストファイルそれぞれを、静的辞書および前記複数のテキストファイルにおける単語の出現頻度に応じて生成される動的辞書を用いて符号化し、
    前記符号化された複数の符号化ファイルと、前記動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む、結合符号化ファイルを生成する、
    処理を行わせる符号化プログラム。
  2. 前記生成する処理は、前記動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを、前記結合符号化ファイルのトレーラ部に格納する
    ことを特徴とする請求項1に記載の符号化プログラム。
  3. 前記符号化する処理は、互いに関連を持つ複数のテキストファイルにおける単語の出現頻度に応じて前記動的辞書を生成し、前記静的辞書および前記動的辞書を用いて符号化する
    ことを特徴とする請求項1または請求項2に記載の符号化プログラム。
  4. 前記互いに関連を持つ複数のテキストファイルは、同じフォルダにある
    ことを特徴とする請求項3に記載の符号化プログラム。
  5. 前記互いに関連を持つ複数のテキストファイルは、共通する、あるいは、関連するファイル関連情報を持つ
    ことを特徴とする請求項3に記載の符号化プログラム。
  6. 前記互いに関連を持つ複数のテキストファイルは、共通する特定の単語を持つ
    ことを特徴とする請求項3に記載の符号化プログラム。
  7. 前記互いに関連を持つ複数のテキストファイルは、共通する特定の単語の出現頻度が所定値以上である
    ことを特徴とする請求項3に記載の符号化プログラム。
  8. 入力された複数のテキストファイルそれぞれを、静的辞書および前記複数のテキストファイルにおける単語の出現頻度に応じて生成される動的辞書を用いて符号化する符号化部と、
    前記符号化部によって符号化された複数の符号化ファイルと、前記動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む、結合符号化ファイルを生成する生成部と、
    を有することを特徴とする符号化装置。
  9. コンピュータが、
    入力された複数のテキストファイルそれぞれを、静的辞書および前記複数のテキストファイルにおける単語の出現頻度に応じて生成される動的辞書を用いて符号化し、
    前記符号化された複数の符号化ファイルと、前記動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む、結合符号化ファイルを生成する、
    処理を実行する符号化方法。
  10. コンピュータに、
    複数の符号化ファイルと、単語の出現頻度に応じて生成される動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む結合符号化ファイルから、前記複数の符号化ファイルそれぞれの位置を示す位置情報に基づいて、復号化対象の符号化ファイルを抽出し、
    該抽出した符号化ファイルを前記動的辞書および静的辞書を用いて復号化する
    処理を行わせる復号化プログラム。
  11. 複数の符号化ファイルと、単語の出現頻度に応じて生成される動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む結合符号化ファイルから、前記複数の符号化ファイルそれぞれの位置を示す位置情報に基づいて、復号化対象の符号化ファイルを抽出する抽出部と、
    該抽出した符号化ファイルを前記動的辞書および静的辞書を用いて復号化する復号化部と、
    を有することを特徴とする復号化装置。
  12. コンピュータが、
    複数の符号化ファイルと、単語の出現頻度に応じて生成される動的辞書に関する情報と、前記複数の符号化ファイルそれぞれの位置を示す位置情報とを含む結合符号化ファイルから、前記複数の符号化ファイルそれぞれの位置を示す位置情報に基づいて、復号化対象の符号化ファイルを抽出し、
    該抽出した符号化ファイルを前記動的辞書および静的辞書を用いて復号化する
    処理を実行する復号化方法。
JP2016073314A 2016-03-31 2016-03-31 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法 Active JP6686639B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016073314A JP6686639B2 (ja) 2016-03-31 2016-03-31 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
US15/471,171 US9973206B2 (en) 2016-03-31 2017-03-28 Computer-readable recording medium, encoding device, encoding method, decoding device, and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016073314A JP6686639B2 (ja) 2016-03-31 2016-03-31 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法

Publications (2)

Publication Number Publication Date
JP2017184200A true JP2017184200A (ja) 2017-10-05
JP6686639B2 JP6686639B2 (ja) 2020-04-22

Family

ID=59962007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016073314A Active JP6686639B2 (ja) 2016-03-31 2016-03-31 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法

Country Status (2)

Country Link
US (1) US9973206B2 (ja)
JP (1) JP6686639B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019193129A (ja) * 2018-04-26 2019-10-31 株式会社日立製作所 データ転送装置及びデータ転送方法、並びにデータ転送装置を備えたネットワークシステム
JP7159557B2 (ja) 2017-12-28 2022-10-25 富士通株式会社 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153647B (zh) * 2016-03-02 2021-12-07 北京字节跳动网络技术有限公司 进行数据压缩的方法、装置、系统和计算机程序产品
US10956440B2 (en) * 2017-10-16 2021-03-23 International Business Machines Corporation Compressing a plurality of documents
US11387844B2 (en) * 2019-04-19 2022-07-12 Preferred Networks, Inc. Data compression method, data compression apparatus, data decompression method, data decompression apparatus and data storage system
US11122095B2 (en) * 2019-09-23 2021-09-14 Netapp, Inc. Methods for dictionary-based compression and devices thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09214352A (ja) * 1996-01-31 1997-08-15 Hitachi Ltd データ圧縮方法および装置
WO2014097359A1 (ja) * 2012-12-19 2014-06-26 富士通株式会社 圧縮プログラム、圧縮方法、圧縮装置およびシステム
WO2014147672A1 (ja) * 2013-03-22 2014-09-25 富士通株式会社 圧縮装置、圧縮方法、辞書生成装置、辞書生成方法、伸長装置、伸長方法、伸長プログラムおよび情報処理システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870036A (en) * 1995-02-24 1999-02-09 International Business Machines Corporation Adaptive multiple dictionary data compression
JP2000269822A (ja) 1999-03-12 2000-09-29 Fujitsu Ltd データ圧縮装置、及びデータ復元装置
US6771824B1 (en) * 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
US6985965B2 (en) * 2000-11-16 2006-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Static information knowledge used with binary compression methods
KR20050053996A (ko) * 2003-12-03 2005-06-10 삼성전자주식회사 허프만 코드를 효율적으로 복호화하는 방법 및 장치
GB0513433D0 (en) * 2005-06-30 2005-08-10 Nokia Corp Signal message compressor
EP1917901B1 (en) * 2005-08-25 2019-04-17 Olympus Corporation Endoscope insertion shape analysis apparatus and endoscope insertion shape analysis system
US8542135B2 (en) * 2011-11-24 2013-09-24 International Business Machines Corporation Compression algorithm incorporating automatic generation of a bank of predefined huffman dictionaries
JP6531398B2 (ja) * 2015-01-19 2019-06-19 富士通株式会社 プログラム
JP6536243B2 (ja) * 2015-07-16 2019-07-03 富士通株式会社 符号化プログラム、符号化装置、符号化方法、照合プログラム、照合装置および照合方法
JP6641857B2 (ja) * 2015-10-05 2020-02-05 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09214352A (ja) * 1996-01-31 1997-08-15 Hitachi Ltd データ圧縮方法および装置
WO2014097359A1 (ja) * 2012-12-19 2014-06-26 富士通株式会社 圧縮プログラム、圧縮方法、圧縮装置およびシステム
WO2014147672A1 (ja) * 2013-03-22 2014-09-25 富士通株式会社 圧縮装置、圧縮方法、辞書生成装置、辞書生成方法、伸長装置、伸長方法、伸長プログラムおよび情報処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7159557B2 (ja) 2017-12-28 2022-10-25 富士通株式会社 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置
JP2019193129A (ja) * 2018-04-26 2019-10-31 株式会社日立製作所 データ転送装置及びデータ転送方法、並びにデータ転送装置を備えたネットワークシステム

Also Published As

Publication number Publication date
US9973206B2 (en) 2018-05-15
US20170288694A1 (en) 2017-10-05
JP6686639B2 (ja) 2020-04-22

Similar Documents

Publication Publication Date Title
JP6686639B2 (ja) 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
JP6742692B2 (ja) 符号化プログラムおよび伸長プログラム
JP6531398B2 (ja) プログラム
US10360183B2 (en) Encoding device, encoding method, decoding device, decoding method, and computer-readable recording medium
JP5831298B2 (ja) プログラム、情報処理装置およびインデックス生成方法
JP6641857B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP6540308B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US20180052810A1 (en) Non-transitory computer-readable recording medium, encoding method, encoding apparatus, decoding method, and decoding apparatus
JP6834327B2 (ja) 符号化プログラム、符号化装置および符号化方法
US20170017619A1 (en) Encoding method and information processing device
US20180285443A1 (en) Non-transitory computer readable medium, encode device, and encode method
JP6805720B2 (ja) データ検索プログラム、データ検索装置およびデータ検索方法
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
US11323132B2 (en) Encoding method and encoding apparatus
JP7159557B2 (ja) 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置
JP6511752B2 (ja) 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム
JP6540306B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US20160210304A1 (en) Computer-readable recording medium, information processing apparatus, and conversion process method
JP2023132713A (ja) データ伸張装置、メモリシステム、およびデータ伸張方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200129

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: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200316

R150 Certificate of patent or registration of utility model

Ref document number: 6686639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150