JP3277792B2 - データ圧縮方法および装置 - Google Patents
データ圧縮方法および装置Info
- Publication number
- JP3277792B2 JP3277792B2 JP01501296A JP1501296A JP3277792B2 JP 3277792 B2 JP3277792 B2 JP 3277792B2 JP 01501296 A JP01501296 A JP 01501296A JP 1501296 A JP1501296 A JP 1501296A JP 3277792 B2 JP3277792 B2 JP 3277792B2
- Authority
- JP
- Japan
- Prior art keywords
- dictionary
- bit string
- input
- index
- data
- 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
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Document Processing Apparatus (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、データの圧縮に関
し、特に、入力データ中の文字列を以前に現れた文字列
のインデックスで置き換えるデータ圧縮に関する。
し、特に、入力データ中の文字列を以前に現れた文字列
のインデックスで置き換えるデータ圧縮に関する。
【0002】
【従来の技術】データの圧縮技術は、ハードディスク等
の記憶装置でのデータの占有量および通信におけるデー
タの転送量を削減し、記憶装置や通信路の効率を向上さ
せる技術である。従来、様々なデータ圧縮方法が提案さ
れているが、代表的な方法として、データ圧縮ハンドブ
ック(トッパン、1994年)の221〜247頁に述べられてい
るような、LZ78およびその改良型がある。
の記憶装置でのデータの占有量および通信におけるデー
タの転送量を削減し、記憶装置や通信路の効率を向上さ
せる技術である。従来、様々なデータ圧縮方法が提案さ
れているが、代表的な方法として、データ圧縮ハンドブ
ック(トッパン、1994年)の221〜247頁に述べられてい
るような、LZ78およびその改良型がある。
【0003】LZ78およびその改良型は、以下の基本
的なステップから構成されている。
的なステップから構成されている。
【0004】(1)入力データに現れた文字列を記憶す
る。この記憶した文字列の集合を動的辞書と呼ぶ。
る。この記憶した文字列の集合を動的辞書と呼ぶ。
【0005】(2)動的辞書中の文字列と同じ文字列が
入力データに再度現れた場合に、出力データとして、そ
の文字列の代わりに動的辞書におけるその文字列のイン
デックス(一般には正の整数)を出力する。
入力データに再度現れた場合に、出力データとして、そ
の文字列の代わりに動的辞書におけるその文字列のイン
デックス(一般には正の整数)を出力する。
【0006】(3)蓄積した文字列で動的辞書が満杯に
なったとき、それ以上の文字列の登録を行わないか、ま
たは、登録済みの文字列を削除する。登録済みの文字列
を削除する場合、全文字列を削除するか、または、より
古い文字列から順に削除する。
なったとき、それ以上の文字列の登録を行わないか、ま
たは、登録済みの文字列を削除する。登録済みの文字列
を削除する場合、全文字列を削除するか、または、より
古い文字列から順に削除する。
【0007】上記従来の方法によれば、複数の文字から
成る文字列が、一つのインデックスに置き換えられるの
で、データが圧縮できる。
成る文字列が、一つのインデックスに置き換えられるの
で、データが圧縮できる。
【0008】
【発明が解決しようとする課題】上記従来の動的辞書を
使ったデータ圧縮方法には、以下の問題点がある。
使ったデータ圧縮方法には、以下の問題点がある。
【0009】(1)入力データ中に初めて現れた文字列
は、未だ動的辞書に登録されていない。したがって、イ
ンデックスに置き換えず、入力した文字列をそのまま出
力する。そのため、入力データの最初の部分では、圧縮
率が著しく低い。
は、未だ動的辞書に登録されていない。したがって、イ
ンデックスに置き換えず、入力した文字列をそのまま出
力する。そのため、入力データの最初の部分では、圧縮
率が著しく低い。
【0010】(2)入力データ中の文字列を、動的辞書
に逐次登録するので、辞書があふれる場合がある。この
際の解決として、たとえば、以下の削除手順をとる。
に逐次登録するので、辞書があふれる場合がある。この
際の解決として、たとえば、以下の削除手順をとる。
【0011】(a)辞書に文字列を新規登録しない。
【0012】(b)登録した文字列を全削除し、辞書を
初期化する。
初期化する。
【0013】(c)より新しい文字列を保存し、古い文
字列を削除する。
字列を削除する。
【0014】いずれの削除手順を実行した場合でも、以
後の動的辞書に存在する文字列が、入力データ中で再出
現する可能性は高いとは限らない。一般に、入力データ
中の文字列が動的辞書中の文字列と合致する頻度が小さ
いので、圧縮率が低下する。
後の動的辞書に存在する文字列が、入力データ中で再出
現する可能性は高いとは限らない。一般に、入力データ
中の文字列が動的辞書中の文字列と合致する頻度が小さ
いので、圧縮率が低下する。
【0015】本発明の目的は、上記問題点(1)に鑑
み、入力データの最初の部分でも圧縮率が低下しないデ
ータ圧縮方法および装置を提供することにある。本発明
の他の目的は、上記問題点(2)に鑑み、出現頻度が小
さい文字列が辞書の多くの部分を占領することによる圧
縮率の低下を防止するデータ圧縮方法および装置を提供
することにある。
み、入力データの最初の部分でも圧縮率が低下しないデ
ータ圧縮方法および装置を提供することにある。本発明
の他の目的は、上記問題点(2)に鑑み、出現頻度が小
さい文字列が辞書の多くの部分を占領することによる圧
縮率の低下を防止するデータ圧縮方法および装置を提供
することにある。
【0016】
【課題を解決するための手段】上記目的を達成するた
め、本発明は以下の構成をとる。
め、本発明は以下の構成をとる。
【0017】第一に、上記問題点(1)を解消するため
に、動的辞書と静的辞書とを併用し、静的辞書は、登録
内容を変更しないようにする。静的辞書には、出現頻度
が高く比較的長い文字列と、そのインデックスとを登録
しておく。圧縮データとしては、動的辞書のインデック
スに加えて、静的辞書のインデックスをも出力する。
に、動的辞書と静的辞書とを併用し、静的辞書は、登録
内容を変更しないようにする。静的辞書には、出現頻度
が高く比較的長い文字列と、そのインデックスとを登録
しておく。圧縮データとしては、動的辞書のインデック
スに加えて、静的辞書のインデックスをも出力する。
【0018】具体的には、入力文字列(以下、「入力ビ
ット列」という)、動的辞書のインンデックス、静的辞
書のインデックスのいずれか1つの符号と、動的辞書、
静的辞書のいずれか1方を復号用の辞書として選択する
ための符号とを出力する。このとき、入力ビット列の符
号の長さを記憶し、静的辞書を検索する際に、入力ビッ
ト列と一致したインデックスの符号の長さを少なくとも
1つ記憶し、動的辞書に登録する際に、同じく一致した
インデックスの符号の長さを記憶し、上述の入力ビット
列およびインデックスの中でより短い符号を圧縮データ
として出力する。
ット列」という)、動的辞書のインンデックス、静的辞
書のインデックスのいずれか1つの符号と、動的辞書、
静的辞書のいずれか1方を復号用の辞書として選択する
ための符号とを出力する。このとき、入力ビット列の符
号の長さを記憶し、静的辞書を検索する際に、入力ビッ
ト列と一致したインデックスの符号の長さを少なくとも
1つ記憶し、動的辞書に登録する際に、同じく一致した
インデックスの符号の長さを記憶し、上述の入力ビット
列およびインデックスの中でより短い符号を圧縮データ
として出力する。
【0019】また、静的辞書で対象となるビット列を検
出した段階で、静的辞書のインデックスを出力する、静
的辞書優先方式を採用してもよい。
出した段階で、静的辞書のインデックスを出力する、静
的辞書優先方式を採用してもよい。
【0020】また、動的辞書のインデックスを用いた圧
縮が望めない部分、すなわち、入力データの最初の部
分、たとえば、先頭の500バイトなどといった部分に
ついては、入力ビット列のコード、または静的辞書のイ
ンデックスを用いて符号化するという、辞書切替え方式
を採用してもよい。
縮が望めない部分、すなわち、入力データの最初の部
分、たとえば、先頭の500バイトなどといった部分に
ついては、入力ビット列のコード、または静的辞書のイ
ンデックスを用いて符号化するという、辞書切替え方式
を採用してもよい。
【0021】以上のいずれの構成によっても、上記問題
点(1)が解消される。
点(1)が解消される。
【0022】第二に、上記問題点(2)を解消するため
に、利用度が低い文字列を動的辞書に登録しないよう
にする、辞書のあふれを予見し、動的辞書から利用度
が低い文字列を削除する、のいずれかの構成をとる。
に、利用度が低い文字列を動的辞書に登録しないよう
にする、辞書のあふれを予見し、動的辞書から利用度
が低い文字列を削除する、のいずれかの構成をとる。
【0023】については、具体的には、入力ビット列
が静的辞書の内容と一致した場合、その入力ビット列を
動的辞書に登録しないようにする。
が静的辞書の内容と一致した場合、その入力ビット列を
動的辞書に登録しないようにする。
【0024】また、動的辞書に入力ビット列を登録した
際のインデックスを事前調査し、出力データとして符号
化した場合に動的辞書のインデックスが、静的辞書のイ
ンデックスに比べて短いと判定した場合に登録するよう
にしてもよい。
際のインデックスを事前調査し、出力データとして符号
化した場合に動的辞書のインデックスが、静的辞書のイ
ンデックスに比べて短いと判定した場合に登録するよう
にしてもよい。
【0025】また、静的辞書の属性情報、出現確率、ま
たはビット列間の関連づけ、のうちの少なくとも1つを
付加情報として用い、これに基づき入力ビット列を登録
しないようにしてもよい。
たはビット列間の関連づけ、のうちの少なくとも1つを
付加情報として用い、これに基づき入力ビット列を登録
しないようにしてもよい。
【0026】については、具体的には、静的辞書の各
ビット列を、属性情報、出現確率、またはビット列間の
関連づけ、のうちの少なくとも1つの付加情報とあわせ
て定義し、付加情報を用いて、利用度の低い少なくとも
1つのビット列を動的辞書から削除する。
ビット列を、属性情報、出現確率、またはビット列間の
関連づけ、のうちの少なくとも1つの付加情報とあわせ
て定義し、付加情報を用いて、利用度の低い少なくとも
1つのビット列を動的辞書から削除する。
【0027】また、動的辞書の使用サイズの上限値、ま
たは登録ビット列数の上限値の少なくとも一方を記憶す
るとともに、動的辞書の使用サイズの現在値、または登
録ビット列数の現在値の少なくとも一方を記憶し、現在
値が上限値を越える“あふれ”を検出した場合に、静的
辞書のビット列の付加情報を参照し、それに基づき動的
辞書のビット列を削除するようにしてもよい。
たは登録ビット列数の上限値の少なくとも一方を記憶す
るとともに、動的辞書の使用サイズの現在値、または登
録ビット列数の現在値の少なくとも一方を記憶し、現在
値が上限値を越える“あふれ”を検出した場合に、静的
辞書のビット列の付加情報を参照し、それに基づき動的
辞書のビット列を削除するようにしてもよい。
【0028】以上のいずれの構成によっても、上記問題
点(2)が解消される。
点(2)が解消される。
【0029】本発明に係るデータ圧縮方法および装置を
実施する場合、出現頻度の高いビット列を含む静的辞書
を構築する必要がある。本発明の望ましい装置の形態で
は、静的辞書が、英語や日本語等の自然言語の1つ以上
の単位語もしくはその一部、プログラム言語の1つ以上
の予約語もしくはその一部、または機械語の1つ以上の
命令語もしくはその一部、の少なくとも1つ以上を含む
ようにする。とくに、静的辞書の内容は、自然言語の文
字列、あるいは自然言語の正規表現としての文字列であ
り、これに属性情報を付加して、品詞、語形変化、語
義、語法などを定義する。
実施する場合、出現頻度の高いビット列を含む静的辞書
を構築する必要がある。本発明の望ましい装置の形態で
は、静的辞書が、英語や日本語等の自然言語の1つ以上
の単位語もしくはその一部、プログラム言語の1つ以上
の予約語もしくはその一部、または機械語の1つ以上の
命令語もしくはその一部、の少なくとも1つ以上を含む
ようにする。とくに、静的辞書の内容は、自然言語の文
字列、あるいは自然言語の正規表現としての文字列であ
り、これに属性情報を付加して、品詞、語形変化、語
義、語法などを定義する。
【0030】また、本発明に係るデータ圧縮方法および
装置を実施する場合、静的辞書および動的辞書のテーブ
ル構成や、各々の辞書を操作するプログラムの選択に配
慮する必要がある。とくに本発明の望ましい装置の形態
では、最大2^10〜2^15(1K〜32K)個のイ
ンデックスをもつ動的辞書と、最大2^12〜2^17
(4K〜128K)個のインデックスをもつ静的辞書と
で構成する。また、静的辞書を構築するプログラムと、
動的辞書に入力ビット列を登録するプログラムと、動的
辞書に登録したビット列を削除するプログラムとを選択
し、それぞれについてデータ圧縮の条件を設定する初期
設定画面を設ける。
装置を実施する場合、静的辞書および動的辞書のテーブ
ル構成や、各々の辞書を操作するプログラムの選択に配
慮する必要がある。とくに本発明の望ましい装置の形態
では、最大2^10〜2^15(1K〜32K)個のイ
ンデックスをもつ動的辞書と、最大2^12〜2^17
(4K〜128K)個のインデックスをもつ静的辞書と
で構成する。また、静的辞書を構築するプログラムと、
動的辞書に入力ビット列を登録するプログラムと、動的
辞書に登録したビット列を削除するプログラムとを選択
し、それぞれについてデータ圧縮の条件を設定する初期
設定画面を設ける。
【0031】また、本発明に係るデータ圧縮方法および
装置を実施する場合、圧縮元と復元先との静的辞書を共
有する必要がある。本発明の適用対象の1つに、ネット
ワークを介したファイル転送時のデータ圧縮があり、こ
れについて以下の構成をとることができる。復元先の装
置が特定できる場合は、あらかじめ、静的辞書を共有で
きることを確認した後に、静的辞書を利用する。あるい
は、静的辞書の汎用インデックスを設けてもよい。この
場合、圧縮元では圧縮装置固有のインデックスから汎用
インデックスにエンコードしたデータを圧縮し、復元先
に転送する。復元先では、データを汎用インデックスか
ら復号装置固有のインデックスに変換して復元する。
装置を実施する場合、圧縮元と復元先との静的辞書を共
有する必要がある。本発明の適用対象の1つに、ネット
ワークを介したファイル転送時のデータ圧縮があり、こ
れについて以下の構成をとることができる。復元先の装
置が特定できる場合は、あらかじめ、静的辞書を共有で
きることを確認した後に、静的辞書を利用する。あるい
は、静的辞書の汎用インデックスを設けてもよい。この
場合、圧縮元では圧縮装置固有のインデックスから汎用
インデックスにエンコードしたデータを圧縮し、復元先
に転送する。復元先では、データを汎用インデックスか
ら復号装置固有のインデックスに変換して復元する。
【0032】以上、本発明に係るデータ圧縮方法によれ
ば、動的辞書単独による方法に比べて圧縮率を向上させ
ることができる。
ば、動的辞書単独による方法に比べて圧縮率を向上させ
ることができる。
【0033】
【発明の実施の形態】以下、入力ビット列と静的辞書の
ビット列とを比較した結果をもとに動的辞書にビット列
を登録する実施の形態の一例(以下「実施例」という)
を説明する。なお、本発明は本実施例により限定される
ものではない。
ビット列とを比較した結果をもとに動的辞書にビット列
を登録する実施の形態の一例(以下「実施例」という)
を説明する。なお、本発明は本実施例により限定される
ものではない。
【0034】まず、図1、2、7、および8を用いて、
本実施例の概要を説明する。
本実施例の概要を説明する。
【0035】図2は、動的辞書に静的辞書を併用したデ
ータ圧縮装置の構成図である。データ圧縮装置200
は、入力データ201をデータ量が少ない圧縮データ2
05として出力する。たとえば、計算機(パーソナルコ
ンピュータ)、あるいは、計算機とネットワークとの間
に接続する専用装置で実現する。データ圧縮装置200
は、動的辞書制御部230および静的辞書制御部240
を有し、さらに、全体の処理を制御する制御部220を
有する。制御部220は、たとえば、OSを搭載したC
PUで構成される。制御部220は、さらに、圧縮する
データの入力手段221および圧縮したデータの出力手
段251をも制御する。
ータ圧縮装置の構成図である。データ圧縮装置200
は、入力データ201をデータ量が少ない圧縮データ2
05として出力する。たとえば、計算機(パーソナルコ
ンピュータ)、あるいは、計算機とネットワークとの間
に接続する専用装置で実現する。データ圧縮装置200
は、動的辞書制御部230および静的辞書制御部240
を有し、さらに、全体の処理を制御する制御部220を
有する。制御部220は、たとえば、OSを搭載したC
PUで構成される。制御部220は、さらに、圧縮する
データの入力手段221および圧縮したデータの出力手
段251をも制御する。
【0036】動的辞書制御部230は、動的辞書23
1、構築手段232、検索手段233、および登録手段
234を有する。動的辞書231は、ビット列とインデ
ックスとを格納するデータベースである。構築手段23
2、検索手段233、および登録手段234は、動的辞
書231を操作するプログラムである。
1、構築手段232、検索手段233、および登録手段
234を有する。動的辞書231は、ビット列とインデ
ックスとを格納するデータベースである。構築手段23
2、検索手段233、および登録手段234は、動的辞
書231を操作するプログラムである。
【0037】静的辞書制御部240は、静的辞書24
1、構築手段242、判定手段243、および参照手段
244を有する。静的辞書241は、ビット列とインデ
ックスとを格納するデータベースである。構築手段24
2、判定手段243、および参照手段244は、静的辞
書241を操作するプログラムである。
1、構築手段242、判定手段243、および参照手段
244を有する。静的辞書241は、ビット列とインデ
ックスとを格納するデータベースである。構築手段24
2、判定手段243、および参照手段244は、静的辞
書241を操作するプログラムである。
【0038】入力手段221および出力手段251は、
計算機のハードディスクのような内蔵記憶装置、ネット
ワークを介した遠隔のファイルシステム、あるいはフロ
ッピーディスクや磁気テープのような外部記憶装置との
間のデータの入力および出力をそれぞれ行うプログラム
(デバイスドライバ)である。入力手段221は、入力
データ201を入力してこれを入力ビット列202に変
換して出力する。出力手段251は、動的辞書231ま
たは静的辞書241からのインデックスである出力ビッ
ト列204に制御コード203を付したものを圧縮デー
タ205として出力する。
計算機のハードディスクのような内蔵記憶装置、ネット
ワークを介した遠隔のファイルシステム、あるいはフロ
ッピーディスクや磁気テープのような外部記憶装置との
間のデータの入力および出力をそれぞれ行うプログラム
(デバイスドライバ)である。入力手段221は、入力
データ201を入力してこれを入力ビット列202に変
換して出力する。出力手段251は、動的辞書231ま
たは静的辞書241からのインデックスである出力ビッ
ト列204に制御コード203を付したものを圧縮デー
タ205として出力する。
【0039】図1は、動的辞書に静的辞書を併用した図
2の装置上でのデータ圧縮手順を示した流れ図である。
本実施例におけるデータ圧縮の手順は、静的辞書241
と動的辞書231とを構築する初期化処理(ステップ1
00)と、データ圧縮の本処理(ステップ120)とか
らなる。
2の装置上でのデータ圧縮手順を示した流れ図である。
本実施例におけるデータ圧縮の手順は、静的辞書241
と動的辞書231とを構築する初期化処理(ステップ1
00)と、データ圧縮の本処理(ステップ120)とか
らなる。
【0040】まず、ステップ100を説明する。管理者
が圧縮対象となるファイルやデータを指定したコマンド
を投入することで、処理を開始する(ステップ10
1)。まず、構築手段242を用いて静的辞書241を
構築する(ステップ102)。たとえば、ワードプロセ
ッサの辞書や電子辞典の文字列をもとに、ビット列とイ
ンデックスとを定義する。つぎに、構築手段232を用
いて動的辞書231を初期化、すなわち、空のまたは既
定のビット列を登録して動的辞書を構築する(ステップ
103)。動的辞書231の初期化には、空のビット列
を登録する場合と、既定のビット列、すなわちASCIIコ
ードやJISコードに含まれるアルファベットやカタカナ
やひらがな等のコードを予め基本ビット列として登録す
る場合とがある。利用形態、計算機の記憶容量、あるい
はインデックスを検索する際に利用するハッシュテーブ
ルの構造等により、両者のいずれかを採用することがで
きる。以上の手順で、初期化処理が終了する(ステップ
104)。
が圧縮対象となるファイルやデータを指定したコマンド
を投入することで、処理を開始する(ステップ10
1)。まず、構築手段242を用いて静的辞書241を
構築する(ステップ102)。たとえば、ワードプロセ
ッサの辞書や電子辞典の文字列をもとに、ビット列とイ
ンデックスとを定義する。つぎに、構築手段232を用
いて動的辞書231を初期化、すなわち、空のまたは既
定のビット列を登録して動的辞書を構築する(ステップ
103)。動的辞書231の初期化には、空のビット列
を登録する場合と、既定のビット列、すなわちASCIIコ
ードやJISコードに含まれるアルファベットやカタカナ
やひらがな等のコードを予め基本ビット列として登録す
る場合とがある。利用形態、計算機の記憶容量、あるい
はインデックスを検索する際に利用するハッシュテーブ
ルの構造等により、両者のいずれかを採用することがで
きる。以上の手順で、初期化処理が終了する(ステップ
104)。
【0041】なお、本実施例では、動的辞書231に先
立って、静的辞書241を構築したが、本発明はこれに
限定されるものではなく、動的辞書231の構築を静的
辞書241の構築に先行させてもよい。また、動的辞書
231の初期化で登録する既定のビット列として、ASCI
IコードやJISコードに含まれるアルファベットやカタカ
ナやひらがな等のコードを採用するようにしたが、本発
明はこれに限定されるものではなく、所定の規則により
文字を一意に指し示すことができるコード体系であれば
どのようなものでもよい。
立って、静的辞書241を構築したが、本発明はこれに
限定されるものではなく、動的辞書231の構築を静的
辞書241の構築に先行させてもよい。また、動的辞書
231の初期化で登録する既定のビット列として、ASCI
IコードやJISコードに含まれるアルファベットやカタカ
ナやひらがな等のコードを採用するようにしたが、本発
明はこれに限定されるものではなく、所定の規則により
文字を一意に指し示すことができるコード体系であれば
どのようなものでもよい。
【0042】つぎに、ステップ120を説明する。静的
辞書241の構築を確認し、データ圧縮処理を開始する
(ステップ121)。まず、圧縮すべきデータを入力す
る(ステップ122)。たとえば、UNIXで実施する場合
は、名称を指定したファイル、または、標準入力からの
データを入力する。入力手段221を用いて、入力デー
タ201をブロック単位(たとえば1ブロックで64ビ
ット)で入力ビット列202に分解する(ステップ12
3)。つぎに、判定手段243およびその延長で起動さ
れる参照手段244を用いて、入力ビット列202を検
索キーにして静的辞書241を参照する(ステップ12
4)。そして、入力ビット列202を静的辞書241の
ビット列と比較する(ステップ125)。
辞書241の構築を確認し、データ圧縮処理を開始する
(ステップ121)。まず、圧縮すべきデータを入力す
る(ステップ122)。たとえば、UNIXで実施する場合
は、名称を指定したファイル、または、標準入力からの
データを入力する。入力手段221を用いて、入力デー
タ201をブロック単位(たとえば1ブロックで64ビ
ット)で入力ビット列202に分解する(ステップ12
3)。つぎに、判定手段243およびその延長で起動さ
れる参照手段244を用いて、入力ビット列202を検
索キーにして静的辞書241を参照する(ステップ12
4)。そして、入力ビット列202を静的辞書241の
ビット列と比較する(ステップ125)。
【0043】比較した結果と、検索手段233による動
的辞書231のビット列検索の結果とをもとに、入力ビ
ット列202を動的辞書231に登録するか否かを判定
する(ステップ126)。登録する場合は、登録手段2
34を用いて、入力ビット列202を識別するインデッ
クスをつけて登録し(ステップ127)、登録しない場
合は何もしない。最後に、出力手段251を用いて、入
力ビット列202あるいは入力ビット列202に一致し
たインデックスを圧縮データ205として出力する(ス
テップ128)。さらに入力データがある場合は、ステ
ップ122へ戻り、ない場合はデータ圧縮処理を終了す
る(ステップ129、130)。
的辞書231のビット列検索の結果とをもとに、入力ビ
ット列202を動的辞書231に登録するか否かを判定
する(ステップ126)。登録する場合は、登録手段2
34を用いて、入力ビット列202を識別するインデッ
クスをつけて登録し(ステップ127)、登録しない場
合は何もしない。最後に、出力手段251を用いて、入
力ビット列202あるいは入力ビット列202に一致し
たインデックスを圧縮データ205として出力する(ス
テップ128)。さらに入力データがある場合は、ステ
ップ122へ戻り、ない場合はデータ圧縮処理を終了す
る(ステップ129、130)。
【0044】なお、本実施例では、一度データ圧縮処理
120がステップ130で終了すると、つぎに入力され
るデータに対しては初期化処理100で静的辞書241
を初期化するようにしたが、本発明はこれに限定される
ものではなく、半固定的に静的辞書241を構築してお
き、データ圧縮処理120が終了しても静的辞書241
を初期化しないようにしてもよい。このようにした場
合、処理時間を短縮させることができるという効果があ
る。
120がステップ130で終了すると、つぎに入力され
るデータに対しては初期化処理100で静的辞書241
を初期化するようにしたが、本発明はこれに限定される
ものではなく、半固定的に静的辞書241を構築してお
き、データ圧縮処理120が終了しても静的辞書241
を初期化しないようにしてもよい。このようにした場
合、処理時間を短縮させることができるという効果があ
る。
【0045】図7および8を用いて、入力ビット列と静
的辞書のビット列とを比較する処理125の実施例2つ
を詳細に説明する。
的辞書のビット列とを比較する処理125の実施例2つ
を詳細に説明する。
【0046】図7は、入力ビット列が静的辞書241中
のビット列に一致した場合は動的辞書231に当該入力
ビット列を登録しないこととする実施例を示す流れ図で
ある。入力ビット列をキーとして静的辞書241を検索
し(ステップ701)、入力ビット列が静的辞書241
中のビット列に一致するか否かを判断し(ステップ70
2)、一致する場合は当該入力ビット列を動的辞書23
1に登録しない(ステップ703)。一致しない場合は
登録する(ステップ704)。本実施例によれば、動的
辞書に登録されるビット列を減少させることができる。
のビット列に一致した場合は動的辞書231に当該入力
ビット列を登録しないこととする実施例を示す流れ図で
ある。入力ビット列をキーとして静的辞書241を検索
し(ステップ701)、入力ビット列が静的辞書241
中のビット列に一致するか否かを判断し(ステップ70
2)、一致する場合は当該入力ビット列を動的辞書23
1に登録しない(ステップ703)。一致しない場合は
登録する(ステップ704)。本実施例によれば、動的
辞書に登録されるビット列を減少させることができる。
【0047】図8は、入力ビット列が静的辞書241中
のビット列に一致した場合に静的辞書241および動的
辞書231のインデックスの長さを計算し、動的辞書2
31のインデックスの方が短くなる場合に動的辞書23
1に当該入力ビット列を登録する実施例を示す流れ図で
ある。図8中、ステップ701〜704は図7中のもの
と共通である。入力ビット列をキーとして静的辞書24
1を検索し(ステップ701)、入力ビット列が静的辞
書241中のビット列に一致するか否かを判断し(ステ
ップ702)、一致する場合は当該入力ビット列に一致
した静的辞書241中のビット列のインデックスを抽出
し、その長さを記憶する(ステップ801)とともに、
当該入力ビット列をキーとして動的辞書231を検索
し、当該入力ビット列に一致するビット列があるかない
かを判断する(ステップ811)。一致するビット列が
ない場合は、動的辞書231のビット列として登録した
場合に割り当てるべきインデックスを予測し、その長さ
を計算して記憶する(ステップ812)。一致するビッ
ト列がある場合は、登録しない(ステップ703)。ス
テップ702で「一致する」と判断され、かつステップ
811で「ない」と判断された場合は、ステップ801
およびステップ812で記憶した各々のインデックスの
長さを比較し(ステップ802)、静的辞書241のイ
ンデックスの方が短い場合(ステップ803)は当該入
力ビット列を動的辞書231に登録せず(ステップ70
3)、そうでない場合(ステップ803)は登録する
(ステップ704)。ステップ702で「一致しない」
と判断された場合は、当該入力ビット列を動的辞書23
1に登録する(ステップ704)。
のビット列に一致した場合に静的辞書241および動的
辞書231のインデックスの長さを計算し、動的辞書2
31のインデックスの方が短くなる場合に動的辞書23
1に当該入力ビット列を登録する実施例を示す流れ図で
ある。図8中、ステップ701〜704は図7中のもの
と共通である。入力ビット列をキーとして静的辞書24
1を検索し(ステップ701)、入力ビット列が静的辞
書241中のビット列に一致するか否かを判断し(ステ
ップ702)、一致する場合は当該入力ビット列に一致
した静的辞書241中のビット列のインデックスを抽出
し、その長さを記憶する(ステップ801)とともに、
当該入力ビット列をキーとして動的辞書231を検索
し、当該入力ビット列に一致するビット列があるかない
かを判断する(ステップ811)。一致するビット列が
ない場合は、動的辞書231のビット列として登録した
場合に割り当てるべきインデックスを予測し、その長さ
を計算して記憶する(ステップ812)。一致するビッ
ト列がある場合は、登録しない(ステップ703)。ス
テップ702で「一致する」と判断され、かつステップ
811で「ない」と判断された場合は、ステップ801
およびステップ812で記憶した各々のインデックスの
長さを比較し(ステップ802)、静的辞書241のイ
ンデックスの方が短い場合(ステップ803)は当該入
力ビット列を動的辞書231に登録せず(ステップ70
3)、そうでない場合(ステップ803)は登録する
(ステップ704)。ステップ702で「一致しない」
と判断された場合は、当該入力ビット列を動的辞書23
1に登録する(ステップ704)。
【0048】本実施例は、静的辞書と動的辞書のインデ
ックス長の比較から、次回、同じビット列が出現した際
に動的辞書を利用した方が高い圧縮率が期待できる場合
に、動的辞書への登録を行う。したがって、本実施例に
よれば、動的辞書と静的辞書とを併用した圧縮率優先の
処理を行うことになり、より高い圧縮率のデータ圧縮処
理を実現できる。
ックス長の比較から、次回、同じビット列が出現した際
に動的辞書を利用した方が高い圧縮率が期待できる場合
に、動的辞書への登録を行う。したがって、本実施例に
よれば、動的辞書と静的辞書とを併用した圧縮率優先の
処理を行うことになり、より高い圧縮率のデータ圧縮処
理を実現できる。
【0049】つぎに、図3、4、5、6、および18を
用いて、動的辞書と静的辞書とを併用し、圧縮データと
していずれか一方の辞書のインデックスを出力する処理
128の一実施例を詳細に説明する。
用いて、動的辞書と静的辞書とを併用し、圧縮データと
していずれか一方の辞書のインデックスを出力する処理
128の一実施例を詳細に説明する。
【0050】図3は、動的辞書と静的辞書とを併用する
ことにより、より短いビット長のインデックスが選択可
能となることを示すブロック図である。従来の動的辞書
単独使用の方法にくらべて、圧縮データの構造は複雑に
なるものの、圧縮率が向上することを示す。
ことにより、より短いビット長のインデックスが選択可
能となることを示すブロック図である。従来の動的辞書
単独使用の方法にくらべて、圧縮データの構造は複雑に
なるものの、圧縮率が向上することを示す。
【0051】図3は、平文301を、分解した入力ビッ
ト列と、静的辞書に定義する文字列とが一致する様子を
示している。一般に、静的辞書に比較的ビット長の長い
文字列(たとえば、アルファベット10個以上からなる
英単語)を登録し、かつ、そのインデックスの長さが文
字列の長さに比べて短い静的辞書のインデックスを出力
することで、圧縮率の向上が期待できる。
ト列と、静的辞書に定義する文字列とが一致する様子を
示している。一般に、静的辞書に比較的ビット長の長い
文字列(たとえば、アルファベット10個以上からなる
英単語)を登録し、かつ、そのインデックスの長さが文
字列の長さに比べて短い静的辞書のインデックスを出力
することで、圧縮率の向上が期待できる。
【0052】本実施例の出力データ例として、圧縮デー
タ304がある。圧縮データ304は、辞書のインデッ
クスまたはビット列直接のコード204に、辞書のイン
デックスかビット列直接のコードかを区別する符号、お
よび動的辞書231のコードか静的辞書241のコード
か区別する符号からなる制御コード204を付したもの
の列となる。従来の動的辞書単独による圧縮方式で得ら
れる圧縮データ305に比べて複雑なコード大系となる
が、静的辞書のインデックスの長さが短いので、全体と
しては圧縮データ304の方が圧縮データ305より短
くなる。
タ304がある。圧縮データ304は、辞書のインデッ
クスまたはビット列直接のコード204に、辞書のイン
デックスかビット列直接のコードかを区別する符号、お
よび動的辞書231のコードか静的辞書241のコード
か区別する符号からなる制御コード204を付したもの
の列となる。従来の動的辞書単独による圧縮方式で得ら
れる圧縮データ305に比べて複雑なコード大系となる
が、静的辞書のインデックスの長さが短いので、全体と
しては圧縮データ304の方が圧縮データ305より短
くなる。
【0053】図4および18を用いて、最短なインデッ
クスを出力する手順を実現する方法を説明する。
クスを出力する手順を実現する方法を説明する。
【0054】図18は、本実施例における圧縮データの
構造と各インデックスとの関係を示した図である。圧縮
データ1801、1811、および1821は、それぞ
れ入力ビット列をそのまま符号化した場合、動的辞書の
インデックスを符号化した場合、および静的辞書のイン
デックスを符号化した場合の圧縮データの構造を表す。
本実施例では、以下、説明を容易にするために、入力デ
ータが英語の文章であり、8ビットコード系(ASCIIコ
ード)で入力されているとする。制御コード1803、
1804、1813、1814、1823、および18
24は、圧縮データが入力文字列のコード、動的辞書の
インデックス、静的辞書のインデックスのいずれの種別
かを表す符号であり、データ本体では使用されないビッ
ト列、たとえばエスケープシーケンスなどである。復号
時には入力される圧縮データを所定の単位、例えば8ビ
ットごとに分解し、これらの制御コードを識別して次の
制御コードがくるまでのビット列を圧縮データのデータ
本体として処理する。圧縮データ1801は、データ本
体1802が制御コード1803と制御コード1804
とに挟まれる構造をとる。データ本体1802は、8ビ
ット固定長のコード411により構成される。圧縮デー
タ1811は、制御コード1815が付加されたデータ
本体1812が制御コード1813と制御コード181
4とに挟まれる構造をとる。データ本体1812は、動
的辞書231に含まれる可変長のインデックスにより構
成され、制御コード1815はデータ本体1812を構
成するインデックスの長さを表す8ビットの符号であ
る。たとえば、図4の例では、動的辞書231のインデ
ックスは全て6ビットのコードで表すので、6ビットコ
ード系であることを制御コード1815に設定する。圧
縮データ1821は、データ本体1822が制御コード
1823と制御コード1824とに挟まれる構造をと
る。データ本体1822は静的辞書241に含まれる可
変長のインデックスにより構成される。
構造と各インデックスとの関係を示した図である。圧縮
データ1801、1811、および1821は、それぞ
れ入力ビット列をそのまま符号化した場合、動的辞書の
インデックスを符号化した場合、および静的辞書のイン
デックスを符号化した場合の圧縮データの構造を表す。
本実施例では、以下、説明を容易にするために、入力デ
ータが英語の文章であり、8ビットコード系(ASCIIコ
ード)で入力されているとする。制御コード1803、
1804、1813、1814、1823、および18
24は、圧縮データが入力文字列のコード、動的辞書の
インデックス、静的辞書のインデックスのいずれの種別
かを表す符号であり、データ本体では使用されないビッ
ト列、たとえばエスケープシーケンスなどである。復号
時には入力される圧縮データを所定の単位、例えば8ビ
ットごとに分解し、これらの制御コードを識別して次の
制御コードがくるまでのビット列を圧縮データのデータ
本体として処理する。圧縮データ1801は、データ本
体1802が制御コード1803と制御コード1804
とに挟まれる構造をとる。データ本体1802は、8ビ
ット固定長のコード411により構成される。圧縮デー
タ1811は、制御コード1815が付加されたデータ
本体1812が制御コード1813と制御コード181
4とに挟まれる構造をとる。データ本体1812は、動
的辞書231に含まれる可変長のインデックスにより構
成され、制御コード1815はデータ本体1812を構
成するインデックスの長さを表す8ビットの符号であ
る。たとえば、図4の例では、動的辞書231のインデ
ックスは全て6ビットのコードで表すので、6ビットコ
ード系であることを制御コード1815に設定する。圧
縮データ1821は、データ本体1822が制御コード
1823と制御コード1824とに挟まれる構造をと
る。データ本体1822は静的辞書241に含まれる可
変長のインデックスにより構成される。
【0055】図4は、入力ビット列のコードならびに動
的辞書および静的辞書のインデックスの長さを計算し、
データ長が最短なインデックスを採用することを説明す
るブロック図である。本実施例では、とくに、文字数が
4文字以上の英単語を静的辞書に登録することとし、こ
のような英単語の圧縮については、英文字を1文字ごと
にコード化、あるいは動的辞書のインデックスに変換す
るのに比べて、静的辞書を利用する方が非常に有利とな
るように設定してある。判定手段243は、入力ビット
列の各コードおよび辞書の各インデックスから、それぞ
れのビット長を計算して比較・判定する。入力ビット列
202は8ビットコード系、すなわち8ビットコード4
11とビット列412とからなる。静的辞書241は最
大長17ビットのインデックス421とビット列422
とからなる。動的辞書231は、最大長6ビットのイン
デックス431とビット列432とからなる。制御コー
ドは8ビットとする。例えば、平文401中の一部の単
語“This”を圧縮するとし、これを、入力ビット列20
2のコード411、動的辞書231のインデックス43
1、および静的辞書241のインデックス421の各表
現方法で表した場合に要するビット数を計算する。入力
ビット列202のコード411を用いた場合、各コード
は固定長8ビットなので、これにビット列を構成する文
字数4をかけ、さらに前後の制御コード8ビットずつを
加えて48ビットとなる。動的辞書231のインデック
ス431を用いた場合、インデックス長は最大6ビット
なので、6ビットに文字数4をかけ、さらにインデック
ス長6を表す8ビットおよび前後の制御コード8ビット
ずつを加えて48ビット(最大値)となる。静的辞書2
41のインデックス421を用いた場合、この例では
“This”に対応するインデックスが8ビットコード“11
111011”なので、前後の制御コード8ビットずつと合わ
せて24ビットとなる。したがって、この場合、判定手
段243において、静的辞書241のインデックス42
1を用いた符号化を選択する。この例では、動的辞書2
31のインデックス431や入力ビット列202のコー
ド411を選択するのにくらべ、圧縮データの長さを約
半分にすることができる。
的辞書および静的辞書のインデックスの長さを計算し、
データ長が最短なインデックスを採用することを説明す
るブロック図である。本実施例では、とくに、文字数が
4文字以上の英単語を静的辞書に登録することとし、こ
のような英単語の圧縮については、英文字を1文字ごと
にコード化、あるいは動的辞書のインデックスに変換す
るのに比べて、静的辞書を利用する方が非常に有利とな
るように設定してある。判定手段243は、入力ビット
列の各コードおよび辞書の各インデックスから、それぞ
れのビット長を計算して比較・判定する。入力ビット列
202は8ビットコード系、すなわち8ビットコード4
11とビット列412とからなる。静的辞書241は最
大長17ビットのインデックス421とビット列422
とからなる。動的辞書231は、最大長6ビットのイン
デックス431とビット列432とからなる。制御コー
ドは8ビットとする。例えば、平文401中の一部の単
語“This”を圧縮するとし、これを、入力ビット列20
2のコード411、動的辞書231のインデックス43
1、および静的辞書241のインデックス421の各表
現方法で表した場合に要するビット数を計算する。入力
ビット列202のコード411を用いた場合、各コード
は固定長8ビットなので、これにビット列を構成する文
字数4をかけ、さらに前後の制御コード8ビットずつを
加えて48ビットとなる。動的辞書231のインデック
ス431を用いた場合、インデックス長は最大6ビット
なので、6ビットに文字数4をかけ、さらにインデック
ス長6を表す8ビットおよび前後の制御コード8ビット
ずつを加えて48ビット(最大値)となる。静的辞書2
41のインデックス421を用いた場合、この例では
“This”に対応するインデックスが8ビットコード“11
111011”なので、前後の制御コード8ビットずつと合わ
せて24ビットとなる。したがって、この場合、判定手
段243において、静的辞書241のインデックス42
1を用いた符号化を選択する。この例では、動的辞書2
31のインデックス431や入力ビット列202のコー
ド411を選択するのにくらべ、圧縮データの長さを約
半分にすることができる。
【0056】以上の実施例では、辞書のインデックスの
長さを計算し、静的辞書、動的辞書のいずれかを選択す
る方法をのべた。以下、他の実施例として、まず、入力
ビット列が静的辞書中のビット列と一致した場合は無条
件に静的辞書のインデックスを出力する静的辞書優先方
式を説明する。さらに、他の実施例として、データ処理
位置のデータ先頭からの距離にしきい値を設け、しきい
値の前後で使用する辞書を切り換える辞書スイッチ方式
を説明する。
長さを計算し、静的辞書、動的辞書のいずれかを選択す
る方法をのべた。以下、他の実施例として、まず、入力
ビット列が静的辞書中のビット列と一致した場合は無条
件に静的辞書のインデックスを出力する静的辞書優先方
式を説明する。さらに、他の実施例として、データ処理
位置のデータ先頭からの距離にしきい値を設け、しきい
値の前後で使用する辞書を切り換える辞書スイッチ方式
を説明する。
【0057】図5は、入力ビット列と一致する静的辞書
241のインデックスを圧縮データとして出力する手順
を示した流れ図である。本実施例は静的辞書優先方式の
例であり、図1の入力ビット列と静的辞書のビット列と
を比較する処理125の一実施例である。まず、静的辞
書241を全検索し(ステップ501)、ビット列が一
致した場合(ステップ502)は、動的辞書231に登
録が不要と判断し(ステップ503)、静的辞書241
のインデックスを出力すべきと判定する(ステップ50
4)。ビット列が一致しない場合(ステップ502)
は、動的辞書231に登録が必要と判断し(ステップ5
05)、入力ビット列のコードを出力すべきと判定する
(ステップ506)。
241のインデックスを圧縮データとして出力する手順
を示した流れ図である。本実施例は静的辞書優先方式の
例であり、図1の入力ビット列と静的辞書のビット列と
を比較する処理125の一実施例である。まず、静的辞
書241を全検索し(ステップ501)、ビット列が一
致した場合(ステップ502)は、動的辞書231に登
録が不要と判断し(ステップ503)、静的辞書241
のインデックスを出力すべきと判定する(ステップ50
4)。ビット列が一致しない場合(ステップ502)
は、動的辞書231に登録が必要と判断し(ステップ5
05)、入力ビット列のコードを出力すべきと判定する
(ステップ506)。
【0058】図6は、データ処理位置のデータ先頭から
の距離にしきい値を設け、データの先頭からしきい値位
置までは入力ビット列と静的辞書を用い、しきい値位置
を越えたら入力ビット列と静的辞書に加えて動的辞書も
用いた符号化を行い、圧縮データを出力する手順を示し
た流れ図である。本実施例は辞書切り替え方式の例であ
り、図1および4に示すデータ圧縮処理の他の実施例で
ある。この方式は、ファイルの先頭部分では静的辞書の
利用が有効であるという経験則から、ファイルの前方部
分、すなわちファイルの先頭からしきい値位置までを静
的辞書のインデックスで、残り、すなわちしきい値位置
からファイルの末端までを動的辞書のインデックスで処
理するという方式である。インデックス長は計算せず、
所定のしきい値位置までは一律に静的辞書を利用する点
が図1のステップ125および126で示した実施例と
異なる。
の距離にしきい値を設け、データの先頭からしきい値位
置までは入力ビット列と静的辞書を用い、しきい値位置
を越えたら入力ビット列と静的辞書に加えて動的辞書も
用いた符号化を行い、圧縮データを出力する手順を示し
た流れ図である。本実施例は辞書切り替え方式の例であ
り、図1および4に示すデータ圧縮処理の他の実施例で
ある。この方式は、ファイルの先頭部分では静的辞書の
利用が有効であるという経験則から、ファイルの前方部
分、すなわちファイルの先頭からしきい値位置までを静
的辞書のインデックスで、残り、すなわちしきい値位置
からファイルの末端までを動的辞書のインデックスで処
理するという方式である。インデックス長は計算せず、
所定のしきい値位置までは一律に静的辞書を利用する点
が図1のステップ125および126で示した実施例と
異なる。
【0059】本実施例は、辞書構築の初期化処理100
の以前にしきい値を設定する初期ステップ601〜60
4と、データの圧縮処理120の内部処理であるステッ
プ123〜128までの処理に相当する圧縮メイン処理
611〜617とに分かれる。
の以前にしきい値を設定する初期ステップ601〜60
4と、データの圧縮処理120の内部処理であるステッ
プ123〜128までの処理に相当する圧縮メイン処理
611〜617とに分かれる。
【0060】まず、初期ステップ601〜604を説明
する。初期ステップでは、しきい値の具体的な値を決定
するために、入力データが、入力時にサイズが分かるフ
ァイルなのか、あるいは通信データのような、終端が未
定なストリームデータなのかを判別する(ステップ60
1)。ファイルの場合は、ファイルサイズを調査し、全
体のサイズからの比率でしきい値を計算、あるいは、フ
ァイルサイズの大小によって、変則的なしきい値を選択
する(ステップ602)。例えば、全体のサイズからの
比率が10%のところをしきい値と定めた場合、全体のサ
イズが通常の大きさ、例えば10バイトであれば、最初の
1バイトのところがしきい値となる。しかし、全体のサ
イズが大きい場合、例えば100バイトの場合は、通常な
らば10バイト目をしきい値とするところを、変則的に2
〜3バイト目にしきい値を設定する。ストリームデータ
の場合は、固定的な初期値を利用する(ステップ60
3)。利用するしきい値が決定したならば、これをデー
タ圧縮処理で参照するレジスタに設定する(ステップ6
04)。
する。初期ステップでは、しきい値の具体的な値を決定
するために、入力データが、入力時にサイズが分かるフ
ァイルなのか、あるいは通信データのような、終端が未
定なストリームデータなのかを判別する(ステップ60
1)。ファイルの場合は、ファイルサイズを調査し、全
体のサイズからの比率でしきい値を計算、あるいは、フ
ァイルサイズの大小によって、変則的なしきい値を選択
する(ステップ602)。例えば、全体のサイズからの
比率が10%のところをしきい値と定めた場合、全体のサ
イズが通常の大きさ、例えば10バイトであれば、最初の
1バイトのところがしきい値となる。しかし、全体のサ
イズが大きい場合、例えば100バイトの場合は、通常な
らば10バイト目をしきい値とするところを、変則的に2
〜3バイト目にしきい値を設定する。ストリームデータ
の場合は、固定的な初期値を利用する(ステップ60
3)。利用するしきい値が決定したならば、これをデー
タ圧縮処理で参照するレジスタに設定する(ステップ6
04)。
【0061】次に、圧縮メイン処理611〜617を説
明する。データの圧縮処理のステップ121〜123に
引き続き、入力ビット列の先頭からのビット数を積算し
(ステップ611)、ステップ604で設定したしきい
値と比較する(ステップ612)。しきい値を越えない
場合は、入力ビット列に一致する静的辞書中のビット列
を検索し(ステップ613)、そのインデクッスを符号
化して出力する(ステップ615)。ステップ613で
一致するものがない場合には、入力ビット列のコードを
符号化して出力し(ステップ616)、動的辞書に当該
ビット列を登録する(ステップ127)。ステップ61
2でしきい値を越えた場合には、入力ビット列に一致す
る動的辞書中のビット列を検索し(ステップ614)、
そのインデクッスを符号化して出力する(ステップ61
7)。ステップ614で一致しない場合には、ステップ
616、127へと処理を移す。
明する。データの圧縮処理のステップ121〜123に
引き続き、入力ビット列の先頭からのビット数を積算し
(ステップ611)、ステップ604で設定したしきい
値と比較する(ステップ612)。しきい値を越えない
場合は、入力ビット列に一致する静的辞書中のビット列
を検索し(ステップ613)、そのインデクッスを符号
化して出力する(ステップ615)。ステップ613で
一致するものがない場合には、入力ビット列のコードを
符号化して出力し(ステップ616)、動的辞書に当該
ビット列を登録する(ステップ127)。ステップ61
2でしきい値を越えた場合には、入力ビット列に一致す
る動的辞書中のビット列を検索し(ステップ614)、
そのインデクッスを符号化して出力する(ステップ61
7)。ステップ614で一致しない場合には、ステップ
616、127へと処理を移す。
【0062】以上の処理を終え、さらに次の入力データ
がある場合(ステップ129)には、ステップ122へ
戻り、ない場合(ステップ129)にはデータ圧縮処理
を終了する(ステップ130)。
がある場合(ステップ129)には、ステップ122へ
戻り、ない場合(ステップ129)にはデータ圧縮処理
を終了する(ステップ130)。
【0063】本実施例によれば、辞書を切替える制御コ
ードの挿入が基本的には2回となる。すなわち、しきい
値を越えたか否かのコードと、一致するビット列が辞書
に存在するか否かのコードとの2回のコード挿入で済
む。そのため、処理が簡単となり、所要時間が短縮され
るという効果がある。また、頻繁に辞書を切替える場合
に比べて、制御コード数が少なくなるので、結果的にデ
ータ圧縮率が向上するという効果がある。
ードの挿入が基本的には2回となる。すなわち、しきい
値を越えたか否かのコードと、一致するビット列が辞書
に存在するか否かのコードとの2回のコード挿入で済
む。そのため、処理が簡単となり、所要時間が短縮され
るという効果がある。また、頻繁に辞書を切替える場合
に比べて、制御コード数が少なくなるので、結果的にデ
ータ圧縮率が向上するという効果がある。
【0064】以上で述べた装置および処理手順を最適な
システムとして実現する方法として、以下、図9および
10を用いて説明する。具体的には、入力データ201
が自然言語、プログラム言語、あるいは機械語などで記
述される実際の場合を考え、属性情報、出現頻度、ある
いは文字列相互の関連づけを総合し、言語上の特性を利
用して圧縮率を向上させる静的辞書の構成例を示す。
システムとして実現する方法として、以下、図9および
10を用いて説明する。具体的には、入力データ201
が自然言語、プログラム言語、あるいは機械語などで記
述される実際の場合を考え、属性情報、出現頻度、ある
いは文字列相互の関連づけを総合し、言語上の特性を利
用して圧縮率を向上させる静的辞書の構成例を示す。
【0065】図9は、プログラム言語上の1つ以上の文
字列とその付加情報とで構成した静的辞書の実施例を示
した図であり、とくに、C言語の制御構文に使われる予
約語とその付加情報とで構成した静的辞書900を示し
たものである。本実施例は、静的辞書に登録した文字列
901に対し、それぞれ2度以上出現する確率902を
付加情報として記述したところに特徴がある。たとえ
ば、データ圧縮の対象がC言語のソースプログラムであ
ると分かっている場合には、辞書900を静的辞書とし
て利用することで、静的辞書中のインデックスを出力す
る率が上がり、圧縮率の向上が期待できる。出現確率9
02は、複数のC言語のソースプログラムで事前に調査
することで、入力データの内容によらず、期待値として
利用できる。動的辞書中のビット列を登録および削除す
る場合、この出現確率の大小を登録および削除の優先順
位とすることにより、動的辞書中のビット列と入力ビッ
ト列とが一致する確率も高くなると考えられ、さらなる
圧縮率の向上が期待できる。また、この例では、出現確
率が高いものを、よりビット長の短いインデックス90
3に割り当てているので、検索速度の向上も期待でき
る。
字列とその付加情報とで構成した静的辞書の実施例を示
した図であり、とくに、C言語の制御構文に使われる予
約語とその付加情報とで構成した静的辞書900を示し
たものである。本実施例は、静的辞書に登録した文字列
901に対し、それぞれ2度以上出現する確率902を
付加情報として記述したところに特徴がある。たとえ
ば、データ圧縮の対象がC言語のソースプログラムであ
ると分かっている場合には、辞書900を静的辞書とし
て利用することで、静的辞書中のインデックスを出力す
る率が上がり、圧縮率の向上が期待できる。出現確率9
02は、複数のC言語のソースプログラムで事前に調査
することで、入力データの内容によらず、期待値として
利用できる。動的辞書中のビット列を登録および削除す
る場合、この出現確率の大小を登録および削除の優先順
位とすることにより、動的辞書中のビット列と入力ビッ
ト列とが一致する確率も高くなると考えられ、さらなる
圧縮率の向上が期待できる。また、この例では、出現確
率が高いものを、よりビット長の短いインデックス90
3に割り当てているので、検索速度の向上も期待でき
る。
【0066】図10は、上記付加情報として言語上の規
則を含んだ静的辞書の構築例である。静的辞書1000
は静的辞書900を拡張して語法も含めた構成としたも
のである。たとえば、C言語では制御文として、その構
文は何とおりかのパターンとして記述できる。複数の予
約語を関連づけた語法1001に、インデックス100
2を対応させる。この例では、インデックス1002と
して3桁の整数を用いているので、複数の予約語からな
る語法1組当たりの符号長としては、インデックス90
3を用いる場合より短い。さらに構文に合わせた圧縮デ
ータの構造1003も規定する。
則を含んだ静的辞書の構築例である。静的辞書1000
は静的辞書900を拡張して語法も含めた構成としたも
のである。たとえば、C言語では制御文として、その構
文は何とおりかのパターンとして記述できる。複数の予
約語を関連づけた語法1001に、インデックス100
2を対応させる。この例では、インデックス1002と
して3桁の整数を用いているので、複数の予約語からな
る語法1組当たりの符号長としては、インデックス90
3を用いる場合より短い。さらに構文に合わせた圧縮デ
ータの構造1003も規定する。
【0067】なお、本実施例においては、プログラム言
語の文字列とその付加情報とで静的辞書を構成したが、
本発明はこれに限定されるものではなく、自然言語、プ
ログラム言語、または機械語の少なくとも1つ以上の文
字列とその付加情報とで構成してもよい。
語の文字列とその付加情報とで静的辞書を構成したが、
本発明はこれに限定されるものではなく、自然言語、プ
ログラム言語、または機械語の少なくとも1つ以上の文
字列とその付加情報とで構成してもよい。
【0068】以下、図11〜13を用いて、図9および
10で説明した静的辞書において、入力ビット列と静的
辞書のビット列とを比較した結果をもとに、動的辞書に
ビット列を登録しなかったり削除したりする実施例を説
明する。
10で説明した静的辞書において、入力ビット列と静的
辞書のビット列とを比較した結果をもとに、動的辞書に
ビット列を登録しなかったり削除したりする実施例を説
明する。
【0069】図11は、別の付加情報を用いた実施例で
ある。静的辞書241は、登録ビット列1101が表す
用語のそれぞれに対応する分野を識別する付加情報11
02、およびインデックス1103を含む。入力データ
201を処理していくうちに、判定手段243では、内
容の解析をおこない、どの分野の文書であるかを判定
し、動的辞書231に登録しない。あるいは削除手段1
301を用いて分野以外のビット列を削除する。
ある。静的辞書241は、登録ビット列1101が表す
用語のそれぞれに対応する分野を識別する付加情報11
02、およびインデックス1103を含む。入力データ
201を処理していくうちに、判定手段243では、内
容の解析をおこない、どの分野の文書であるかを判定
し、動的辞書231に登録しない。あるいは削除手段1
301を用いて分野以外のビット列を削除する。
【0070】図13は、動的辞書231に登録の上限値
1302を設定し、判定手段243に静的辞書241の
付加情報を用いて利用度の低いビット列を削除するため
の規則1311を追加した構成例である。図13と図2
との異なる点は、登録手段においてあふれを検出した際
に呼び出される削除手段1301、動的辞書231の登
録できるビット列数を規定する上限値を設定するレジス
タ1302、および静的辞書241の付加情報をもちい
て、利用度が低いか、すなわち、削除対象であるかを判
定するための規則1311を有する点である。
1302を設定し、判定手段243に静的辞書241の
付加情報を用いて利用度の低いビット列を削除するため
の規則1311を追加した構成例である。図13と図2
との異なる点は、登録手段においてあふれを検出した際
に呼び出される削除手段1301、動的辞書231の登
録できるビット列数を規定する上限値を設定するレジス
タ1302、および静的辞書241の付加情報をもちい
て、利用度が低いか、すなわち、削除対象であるかを判
定するための規則1311を有する点である。
【0071】図12は、図13のシステム装置において
図9の出現頻度の付加情報を用いた削除手順の一実施例
を示す流れ図である。動的辞書231に入力ビット列を
登録する際(ステップ127)にあふれを検出し、利用
度の低いビット列を削除し、登録できる領域を確保す
る。まず、入力ビット数を積算したものと上限値130
2とを比較し、動的辞書のあふれを検出した場合は削除
手段1301を起動し、ステップ1202へ処理を移
し、そうでない場合は、従来どおり入力ビット列の登録
をおこなう(ステップ1206)。本実施例の場合は、
説明を簡単にするために、削除手段1301は、入力し
たビット列の出現確率より低い出現確率をもつビット列
を削除対象とする。まず、入力ビット列の付加情報であ
る出現確率902を参照し(ステップ1202)、より
出現確率が低いビット列を抽出する。つぎに動的辞書2
31の登録ビット列を検索し(ステップ1203)、よ
り利用度が低いものがあった場合(ステップ1204)
は、動的辞書内から削除する(ステップ1205)。
図9の出現頻度の付加情報を用いた削除手順の一実施例
を示す流れ図である。動的辞書231に入力ビット列を
登録する際(ステップ127)にあふれを検出し、利用
度の低いビット列を削除し、登録できる領域を確保す
る。まず、入力ビット数を積算したものと上限値130
2とを比較し、動的辞書のあふれを検出した場合は削除
手段1301を起動し、ステップ1202へ処理を移
し、そうでない場合は、従来どおり入力ビット列の登録
をおこなう(ステップ1206)。本実施例の場合は、
説明を簡単にするために、削除手段1301は、入力し
たビット列の出現確率より低い出現確率をもつビット列
を削除対象とする。まず、入力ビット列の付加情報であ
る出現確率902を参照し(ステップ1202)、より
出現確率が低いビット列を抽出する。つぎに動的辞書2
31の登録ビット列を検索し(ステップ1203)、よ
り利用度が低いものがあった場合(ステップ1204)
は、動的辞書内から削除する(ステップ1205)。
【0072】図14は、プログラムの種類や圧縮条件を
初期設定することを示す構成図である。本実施例では、
静的辞書では、複数の構築手段242、動的辞書では、
複数の登録手段234、複数の削除手段がそれぞれある
ので、プログラムの種類や条件を、利用者が初期設定す
るところが特徴である。1400は圧縮装置200に接
続した端末、1401は端末1400の設定画面、たと
えば、条件を表形式で示し選択する画面である。データ
圧縮の利用者は、設定画面1401を介して、構築手段
242、登録手段234、あるいは削除手段1301等
の実行プログラムを選択する。それとともに、たとえ
ば、上述のしきい値の設定や動的辞書へのビット列の登
録・削除の基準等を合わせて設定する。
初期設定することを示す構成図である。本実施例では、
静的辞書では、複数の構築手段242、動的辞書では、
複数の登録手段234、複数の削除手段がそれぞれある
ので、プログラムの種類や条件を、利用者が初期設定す
るところが特徴である。1400は圧縮装置200に接
続した端末、1401は端末1400の設定画面、たと
えば、条件を表形式で示し選択する画面である。データ
圧縮の利用者は、設定画面1401を介して、構築手段
242、登録手段234、あるいは削除手段1301等
の実行プログラムを選択する。それとともに、たとえ
ば、上述のしきい値の設定や動的辞書へのビット列の登
録・削除の基準等を合わせて設定する。
【0073】図15は、静的辞書の構築の一実施例を示
す構成図である。本実施例では、動的辞書と静的辞書の
適用範囲をわけることで、辞書を併用する利点を引き出
すところが特徴である。そのために、静的辞書と動的辞
書のインデックスの最大値の設定にも以下で述べる条件
が必要である。静的辞書では、比較的ビット長が長めな
文字列を多数用意する。動的辞書では、ビット長は短い
が出現頻度がより高い文字列を登録する。とくに、動的
辞書の場合に比べてビット長が短いインデックスと結び
つけて登録する。静的辞書の構築の一実施例として、2
万語程度のワードプロセッサの辞書FEP(Front End Pro
cessor)1501、10万語程度の英和辞典や漢和辞典
1502、あるいは専門分野ごとの百科事典1503の
少なくとも1つ以上のデータベースをもちいて、特定の
基準で、たとえば共通に収録されている語を抽出し、静
的辞書241を構築する。その場合、最大2^10〜2
^15(1K〜32K)個のインデックスをもつ動的辞
書と、最大2^12〜2^17(4K〜128K)個の
インデックスをもつ静的辞書とで構成するのが最適であ
る。
す構成図である。本実施例では、動的辞書と静的辞書の
適用範囲をわけることで、辞書を併用する利点を引き出
すところが特徴である。そのために、静的辞書と動的辞
書のインデックスの最大値の設定にも以下で述べる条件
が必要である。静的辞書では、比較的ビット長が長めな
文字列を多数用意する。動的辞書では、ビット長は短い
が出現頻度がより高い文字列を登録する。とくに、動的
辞書の場合に比べてビット長が短いインデックスと結び
つけて登録する。静的辞書の構築の一実施例として、2
万語程度のワードプロセッサの辞書FEP(Front End Pro
cessor)1501、10万語程度の英和辞典や漢和辞典
1502、あるいは専門分野ごとの百科事典1503の
少なくとも1つ以上のデータベースをもちいて、特定の
基準で、たとえば共通に収録されている語を抽出し、静
的辞書241を構築する。その場合、最大2^10〜2
^15(1K〜32K)個のインデックスをもつ動的辞
書と、最大2^12〜2^17(4K〜128K)個の
インデックスをもつ静的辞書とで構成するのが最適であ
る。
【0074】図16は、圧縮元と復号先との静的辞書を
分散システム上で共有できる場合の実施例を示す流れ図
である。辞書の初期化100の後、データ圧縮120の
前に、復号先に同じ静的辞書が存在するか問い合わせる
処理を行う点で、図1の実施例とことなる。まず、圧縮
処理を行う前提として、ネットワークで接続した先の装
置を復号先として指定する。ファイル転送(FTP)に
本実施例を適用する場合は、たとえば、ホスト名やIP
アドレスを、実行するコマンドの引数として指定する。
復号先が確定した場合(ステップ1601)は、圧縮元
と復号先の間でコネクションを接続し(ステップ160
2)、確定しなかった場合(ステップ1601)は終了
する。ステップ1602での接続後、復号先での静的辞
書のファイル名を確認し、静的辞書のバージョンや構成
要素を調査する。その結果に基づき、復号先の静的辞書
が圧縮元の静的辞書と同じであるか否かを判定する(ス
テップ1603)。同じである場合は、動的辞書231
と静的辞書241との併用方式を採用する(ステップ1
610)。異なる場合は、改めて別の方式、たとえば、
動的辞書231のみを利用して圧縮する従来の方式や、
圧縮元の静的辞書241を復号先へ転送する方式等を採
用し(ステップ1604)、圧縮元と復号先との間のコ
ネクションを切断する(ステップ1615)。ステップ
1610の後、圧縮元でデータを圧縮し(ステップ12
0)、データを送信する(ステップ1611)。復号先
では、ステップ1610の圧縮方式に双対なデータ復号
方式を採用する(ステップ1612)。復号先では、デ
ータを受信し(ステップ1613)、そのデータを復号
する(ステップ1614)。以上の処理を完了し、圧縮
元と復号先との間のコネクションを切断する(ステップ
1615)。
分散システム上で共有できる場合の実施例を示す流れ図
である。辞書の初期化100の後、データ圧縮120の
前に、復号先に同じ静的辞書が存在するか問い合わせる
処理を行う点で、図1の実施例とことなる。まず、圧縮
処理を行う前提として、ネットワークで接続した先の装
置を復号先として指定する。ファイル転送(FTP)に
本実施例を適用する場合は、たとえば、ホスト名やIP
アドレスを、実行するコマンドの引数として指定する。
復号先が確定した場合(ステップ1601)は、圧縮元
と復号先の間でコネクションを接続し(ステップ160
2)、確定しなかった場合(ステップ1601)は終了
する。ステップ1602での接続後、復号先での静的辞
書のファイル名を確認し、静的辞書のバージョンや構成
要素を調査する。その結果に基づき、復号先の静的辞書
が圧縮元の静的辞書と同じであるか否かを判定する(ス
テップ1603)。同じである場合は、動的辞書231
と静的辞書241との併用方式を採用する(ステップ1
610)。異なる場合は、改めて別の方式、たとえば、
動的辞書231のみを利用して圧縮する従来の方式や、
圧縮元の静的辞書241を復号先へ転送する方式等を採
用し(ステップ1604)、圧縮元と復号先との間のコ
ネクションを切断する(ステップ1615)。ステップ
1610の後、圧縮元でデータを圧縮し(ステップ12
0)、データを送信する(ステップ1611)。復号先
では、ステップ1610の圧縮方式に双対なデータ復号
方式を採用する(ステップ1612)。復号先では、デ
ータを受信し(ステップ1613)、そのデータを復号
する(ステップ1614)。以上の処理を完了し、圧縮
元と復号先との間のコネクションを切断する(ステップ
1615)。
【0075】なお、本実施例は、ステップ1610〜1
614の処理を順次実行するようにしたが、本発明はこ
れに限定されるものではなく、パイプライン的に各ステ
ップを実行するようにしてもよい。このようにすること
により、処理速度が向上するという効果がある。
614の処理を順次実行するようにしたが、本発明はこ
れに限定されるものではなく、パイプライン的に各ステ
ップを実行するようにしてもよい。このようにすること
により、処理速度が向上するという効果がある。
【0076】図17は、分散システム上で静的辞書を共
有できない場合の実施例を示す図である。データ圧縮装
置200は動的辞書231または静的辞書241を用い
てデータ圧縮を行い、データ復号装置260は動的辞書
261または静的辞書262を用いてデータ復号を行
う。データ圧縮装置200は図2におけるデータ圧縮装
置200と同様であり、平文201を入力し、圧縮デー
タを出力する。データ復号装置260は、データ圧縮装
置200の逆のデータ変換を行う装置であり、圧縮デー
タを入力し、平文201を出力する。データ圧縮装置2
00はエンコード手段252に結合され、エンコード手
段252はさらにデータ転送手段270に結合されてい
る。データ転送手段270はネットワークを介してデー
タ転送手段271と接続されている。データ転送手段2
71はデコード手段253に結合され、デコード手段2
53はさらにデータ復号装置260に結合されている。
また、エンコード手段252およびデコード手段253
は、それぞれ静的辞書コード変換表250および251
を有する。いま仮に、“COMPUTER”および“THIS”とい
う単語を含む平文データ201が入力され、静的辞書2
41によって圧縮処理されたとする。“COMPUTER”およ
び“THIS”はデータ圧縮装置200においてそれぞれイ
ンデックス“251”および“357”に変換され、圧縮デー
タの一部としてエンコード手段252に送られる。エン
コード手段252はこれらを受信し、静的辞書コード変
換表250を参照して汎用インデックス“2047”および
“1023”に変換する。汎用インデックスに変換された圧
縮データは、データ転送手段270、ネットワーク、お
よびデータ転送手段271を介してデコード手段253
に送られる。デコード手段253は、これを受信し、そ
の中に含まれる汎用インデックス“2047”および“102
3”を、静的辞書コード変換表251を参照して静的辞
書262に固有のインデックス“34”および“143”に
変換する。インデックス“34”および“143”を含む圧
縮データはデータ復号装置260に送られる。データ復
号装置260は、この圧縮データを受信し、静的辞書2
62を用いてインデックス“34”および“143”をそれ
ぞれ“COMPUTER”および“THIS”に変換し、これらを含
む文を元の平文201として出力する。
有できない場合の実施例を示す図である。データ圧縮装
置200は動的辞書231または静的辞書241を用い
てデータ圧縮を行い、データ復号装置260は動的辞書
261または静的辞書262を用いてデータ復号を行
う。データ圧縮装置200は図2におけるデータ圧縮装
置200と同様であり、平文201を入力し、圧縮デー
タを出力する。データ復号装置260は、データ圧縮装
置200の逆のデータ変換を行う装置であり、圧縮デー
タを入力し、平文201を出力する。データ圧縮装置2
00はエンコード手段252に結合され、エンコード手
段252はさらにデータ転送手段270に結合されてい
る。データ転送手段270はネットワークを介してデー
タ転送手段271と接続されている。データ転送手段2
71はデコード手段253に結合され、デコード手段2
53はさらにデータ復号装置260に結合されている。
また、エンコード手段252およびデコード手段253
は、それぞれ静的辞書コード変換表250および251
を有する。いま仮に、“COMPUTER”および“THIS”とい
う単語を含む平文データ201が入力され、静的辞書2
41によって圧縮処理されたとする。“COMPUTER”およ
び“THIS”はデータ圧縮装置200においてそれぞれイ
ンデックス“251”および“357”に変換され、圧縮デー
タの一部としてエンコード手段252に送られる。エン
コード手段252はこれらを受信し、静的辞書コード変
換表250を参照して汎用インデックス“2047”および
“1023”に変換する。汎用インデックスに変換された圧
縮データは、データ転送手段270、ネットワーク、お
よびデータ転送手段271を介してデコード手段253
に送られる。デコード手段253は、これを受信し、そ
の中に含まれる汎用インデックス“2047”および“102
3”を、静的辞書コード変換表251を参照して静的辞
書262に固有のインデックス“34”および“143”に
変換する。インデックス“34”および“143”を含む圧
縮データはデータ復号装置260に送られる。データ復
号装置260は、この圧縮データを受信し、静的辞書2
62を用いてインデックス“34”および“143”をそれ
ぞれ“COMPUTER”および“THIS”に変換し、これらを含
む文を元の平文201として出力する。
【0077】本実施例によれば、エンコード手段252
とデコード手段253とに、静的辞書241および26
2のインデックスを汎用なインデックスに変換する静的
辞書コード変換表250および251を設けて、転送部
分では標準的なコード形式を定義することによって、ア
ーキテクチャの異なる圧縮装置・復号装置間でのデータ
の互換性を保証できるという効果がある。
とデコード手段253とに、静的辞書241および26
2のインデックスを汎用なインデックスに変換する静的
辞書コード変換表250および251を設けて、転送部
分では標準的なコード形式を定義することによって、ア
ーキテクチャの異なる圧縮装置・復号装置間でのデータ
の互換性を保証できるという効果がある。
【0078】なお、本実施例では、エンコード手段25
2およびデコード手段253はインデックスのコード変
換を行うだけとしたが、本発明はこれに限定されるもの
ではなく、データの暗号化および復号化をそれぞれ組み
合わせて行うようにしてもよい。こうすることにより、
データの圧縮暗号装置を提供でき、ネットワーク上のデ
ータセキュリティを確保した圧縮データの伝送を実現で
きるという効果がある。
2およびデコード手段253はインデックスのコード変
換を行うだけとしたが、本発明はこれに限定されるもの
ではなく、データの暗号化および復号化をそれぞれ組み
合わせて行うようにしてもよい。こうすることにより、
データの圧縮暗号装置を提供でき、ネットワーク上のデ
ータセキュリティを確保した圧縮データの伝送を実現で
きるという効果がある。
【0079】
【発明の効果】本発明によれば、動的辞書によるデータ
圧縮方法に静的辞書を併用することにより、動的辞書単
独による圧縮方法に比べて圧縮率を向上させることがで
きる。特に、動的辞書による圧縮が行われにくい入力デ
ータの最初の部分の圧縮に静的辞書を用いることによ
り、さらに圧縮率を向上させることができる。また、動
的辞書と静的辞書とを区別する符号を圧縮データのイン
デックスに付加することにより、復号時の辞書の切り替
え処理を容易にすることができる。また、入力ビット列
のコード、静的辞書のインデックス、あるいは動的辞書
のインデックスのうち、一番コード長の短いものを符号
化し、圧縮データとして出力することにより、さらに圧
縮率を向上させることができる。また、静的辞書のイン
デックスに比べて動的辞書のインデックスの方が短くな
る場合に限って入力ビット列を動的辞書に登録すること
により、動的辞書のサイズを最小にできる。特に、静的
辞書の内容に一致したビット列のインデックスを圧縮デ
ータとして出力し、これを動的辞書に追加しないように
することにより、動的辞書の規模を小さくでき、インデ
ックスの長さも短くなるので、圧縮率をさらに高くする
ことができる。さらに、入力ビット列を順次動的辞書に
登録していき、動的辞書中のデータ量が所定のデータ量
に達したときに、これ以降の入力ビット列に対する登録
を行わないか、必要に応じて動的辞書から利用度の低い
ビット列を削除するかのいずれか一方、あるいは両方の
方法をとることにより、動的辞書からビット列があふれ
る問題を解決できる。
圧縮方法に静的辞書を併用することにより、動的辞書単
独による圧縮方法に比べて圧縮率を向上させることがで
きる。特に、動的辞書による圧縮が行われにくい入力デ
ータの最初の部分の圧縮に静的辞書を用いることによ
り、さらに圧縮率を向上させることができる。また、動
的辞書と静的辞書とを区別する符号を圧縮データのイン
デックスに付加することにより、復号時の辞書の切り替
え処理を容易にすることができる。また、入力ビット列
のコード、静的辞書のインデックス、あるいは動的辞書
のインデックスのうち、一番コード長の短いものを符号
化し、圧縮データとして出力することにより、さらに圧
縮率を向上させることができる。また、静的辞書のイン
デックスに比べて動的辞書のインデックスの方が短くな
る場合に限って入力ビット列を動的辞書に登録すること
により、動的辞書のサイズを最小にできる。特に、静的
辞書の内容に一致したビット列のインデックスを圧縮デ
ータとして出力し、これを動的辞書に追加しないように
することにより、動的辞書の規模を小さくでき、インデ
ックスの長さも短くなるので、圧縮率をさらに高くする
ことができる。さらに、入力ビット列を順次動的辞書に
登録していき、動的辞書中のデータ量が所定のデータ量
に達したときに、これ以降の入力ビット列に対する登録
を行わないか、必要に応じて動的辞書から利用度の低い
ビット列を削除するかのいずれか一方、あるいは両方の
方法をとることにより、動的辞書からビット列があふれ
る問題を解決できる。
【図1】動的辞書に静的辞書を併用したデータ圧縮手順
を示した流れ図である。
を示した流れ図である。
【図2】動的辞書に静的辞書を併用したデータ圧縮装置
の構成図である。
の構成図である。
【図3】動的辞書と静的辞書を併用し、ビット長がより
短いインデックスを選択可能となることを説明するブロ
ック図である。
短いインデックスを選択可能となることを説明するブロ
ック図である。
【図4】入力ビット列、動的辞書と静的辞書のインデッ
クスのうちの最短なデータを符号化し、圧縮データとし
て出力することを説明するブロック図である。
クスのうちの最短なデータを符号化し、圧縮データとし
て出力することを説明するブロック図である。
【図5】静的辞書優先方式による、データ圧縮方式を示
す流れ図である。
す流れ図である。
【図6】辞書切り替え方式による、データ圧縮方式を示
す流れ図である。
す流れ図である。
【図7】静的辞書に一致した場合に、動的辞書にビット
列を登録しない手順を説明する流れ図である。
列を登録しない手順を説明する流れ図である。
【図8】静的辞書と動的辞書のインデックスの長さを計
算し、動的辞書のインデックスが短い場合にビット列を
動的辞書に登録する手順を示す流れ図である。
算し、動的辞書のインデックスが短い場合にビット列を
動的辞書に登録する手順を示す流れ図である。
【図9】自然語、プログラム言語、機械語の少なくとも
1つ以上の文字列とその付加情報で構成した静的辞書の
構築例を示す図である。
1つ以上の文字列とその付加情報で構成した静的辞書の
構築例を示す図である。
【図10】図9の上記付加情報として、言語上の規則を
含んだ静的辞書の構築例を示す図である。
含んだ静的辞書の構築例を示す図である。
【図11】付加情報の別な構築例を示す図である。
【図12】利用度の低いビット列を削除し、登録できる
領域を確保する手順を示した流れ図である。
領域を確保する手順を示した流れ図である。
【図13】静的辞書241の付加情報を用いて削除する
構成図である。
構成図である。
【図14】プログラムの種類や圧縮条件を初期設定する
ことを示す構成図である。
ことを示す構成図である。
【図15】静的辞書の構築の1実施例を示す構成図であ
る。
る。
【図16】分散システム上で静的辞書を共有できる場合
の本発明を実施する流れ図である。
の本発明を実施する流れ図である。
【図17】分散システム上で静的辞書を共有できない場
合の本発明の装置の構成図である。
合の本発明の装置の構成図である。
【図18】本発明における圧縮データ構造と各インデッ
クスとの関係を示した図である。
クスとの関係を示した図である。
200 データ圧縮装置 220 制御部 221 入力手段 251 出力手段 230 動的辞書制御部 231 動的辞書 233 検索手段 234 登録手段 240 静的辞書制御部 241 静的辞書 243 判定手段 244 参照手段 201 入力データ 202 入力ビット列 204 出力ビット列 205 圧縮データ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大津 豊 神奈川県横浜市戸塚区戸塚町5030番地株 式会社日立製作所ソフトウェア開発本部 内 (72)発明者 村上 弘真 神奈川県横浜市戸塚区戸塚町5030番地株 式会社日立製作所ソフトウェア開発本部 内 (56)参考文献 特開 平4−265020(JP,A) 特開 平4−145726(JP,A) 特開 平5−241777(JP,A) 特開 平5−241775(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40
Claims (11)
- 【請求項1】入力データを分解してなる入力ビット列
を、ビット列と該ビット列より短い符号であるインデッ
クスとが対応づけられた表データである第1の辞書で検
索し、検索の結果に応じて前記第1の辞書に前記入力ビ
ット列を登録し、前記入力ビット列を該入力ビット列の
コードまたは前記第1の辞書中の該入力ビット列に対応
するインデックスのいずれか一方に変換して圧縮データ
として出力するデータ圧縮方法において、入力候補とな
るビット列とインデックスとを予め固定的に定義するこ
とにより構築される第2の辞書を用いて前記入力ビット
列を検索するステップと、前記入力ビット列と前記第2
の辞書中のビット列とを比較するステップと、比較した
結果によって前記入力ビット列を前記第1の辞書に登録
するステップとを含むことを特徴とするデータ圧縮方
法。 - 【請求項2】入力データを分解してなる入力ビット列
を、ビット列と該ビット列より短い符号であるインデッ
クスとが対応づけられた表データである第1の辞書で検
索し、検索の結果に応じて前記第1の辞書に前記入力ビ
ット列を登録し、前記入力ビット列を該入力ビット列の
コードまたは前記第1の辞書中の該入力ビット列に対応
するインデックスのいずれか一方に変換して圧縮データ
として出力するデータ圧縮装置において、入力候補とな
るビット列とインデックスとを予め固定的に定義するこ
とによって構築される第2の辞書と、前記第2の辞書を
構築する手段と、前記第2の辞書の内容を参照する手段
と、前記第1の辞書へのビット列の登録要否を判定する
判定手段とを有し、前記判定手段の判定結果により前記
第1の辞書に前記入力ビット列を登録することを特徴と
するデータ圧縮装置。 - 【請求項3】入力データを分解してなる入力ビット列
を、ビット列と該ビット列より短い符号であるインデッ
クスとが対応づけられた表データである第1の辞書で検
索し、検索の結果に応じて前記第1の辞書に前記入力ビ
ット列を登録し、前記入力ビット列を該入力ビット列の
コードまたは前記第1の辞書中の該入力ビット列に対応
するインデックスのいずれか一方に変換して圧縮データ
として出力するデータ圧縮方法において、前記圧縮デー
タとして出力するステップは、前記入力ビット列のコー
ド、前記第1の辞書のインデックス、または入力候補と
なるビット列とインデックスとを予め固定的に定義する
ことによって構築される第2の辞書のインデックスのい
ずれか1つの符号と、復号用の辞書として前記第1また
は第2の辞書のいずれを用いるべきかを指定するための
符号とを出力することを特徴とするデータ圧縮方法。 - 【請求項4】請求項1において、前記入力ビット列と一
致するビット列を前記第2の辞書で検出した場合は、前
記第1の辞書に入力ビット列を登録しないことを特徴と
するデータ圧縮方法。 - 【請求項5】請求項1において、前記入力ビット列と前
記第2の辞書のビット列とを比較するステップは、前記
第2の辞書で一致した第1のインデックスの長さを記憶
し、前記入力ビット列を前記第1の辞書に登録するステ
ップでは、前記第1の辞書で登録した場合の第2のイン
デックスの長さを計算し、上記第1のインデックスに比
べて、上記第2のインデックスが短い場合に登録するこ
とを特徴とするデータ圧縮方法。 - 【請求項6】請求項2において、前記第2の辞書が、自
然言語の1つ以上の単位語あるいはその一部、プログラ
ム言語の1つ以上の予約語あるいはその一部、機械語あ
るいは1つ以上の命令語あるいはその一部、の少なくと
も1つ以上の種類の文字列で構成し、さらに上記文字列
の属性情報、上記文字列の出現確率、上記文字列どうし
の関連づけ、のうちの少なくとも一つの付加情報をあわ
せた構成であることを特徴とするデータ圧縮装置。 - 【請求項7】請求項1において、データ入力前に、入力
候補となるビット列とインデックスとを定義し、第2の
辞書として構築するステップでは、上記ビット列とイン
デックスに、属性情報、出現確率、ビット列間の関連づ
け、のうちの少なくとも一つの付加情報をあわせて定義
し、前記入力ビット列を前記第1の辞書に登録するステ
ップでは、上記第2の辞書における前記入力ビット列の
付加情報を用いて、入力ビット列を登録しないことを特
徴とするデータ圧縮方法。 - 【請求項8】請求項1において、データ入力前に、入力
候補となるビット列とインデックスとを定義し、第2の
辞書を構築するステップでは、上記ビット列とインデッ
クスに、属性情報、出現確率、ビット列間の関連づけ、
のうちの少なくとも一つの付加情報をあわせて定義し、
前記入力ビット列を前記第1の辞書に登録するステップ
では、上記第2の辞書における前記入力ビット列の付加
情報を用いて、少なくとも1つのビット列を辞書から削
除することを特徴とするデータ圧縮方法。 - 【請求項9】請求項2において、前記第2の辞書は、属
性情報、出現確率、ビット列間の関連づけ、のうちの少
なくとも一つの付加情報をあわせた構成であり、前記第
2の辞書の付加情報を用いて、前記第1の辞書から登録
したビット列を削除する少なくとも1つ以上の削除手段
を設け、前記第1の辞書の使用サイズ、登録ビット列数
の上限値の少なくとも1方を記憶し、前記入力ビット列
を前記第1の辞書で検索する検索手段は、入力ビット列
の累計が上記上限値を越えたことを検出する検出手段
と、前記第2の辞書の付加情報を参照して第1の辞書内
の少なくとも1つ以上のビット列を削除する前記削除手
段とを実行することを特徴とするデータ圧縮装置。 - 【請求項10】請求項2において、構築手段の前記第2
の辞書を構築するプログラムと、登録手段の前記第1の
辞書に入力ビット列を登録するプログラムと、検索手段
の前記第1の辞書に登録したビット列を削除するプログ
ラムとを選択し、データ圧縮の条件を設定する初期設定
画面をもつことを特徴とするデータ圧縮装置。 - 【請求項11】入力データを入力ビット列に分解するス
テップと、空の、または既定となる基本のビット列で構
成された第1の辞書を構築するステップと、前記入力ビ
ット列を前記第1の辞書で検索するステップと、前記第
1の辞書に前記入力ビット列を登録するステップと、前
記入力ビット列と、前記第1の辞書のビット列との、対
応するインデックスの少なくとも一方を符号化し、圧縮
データとして出力するステップからなるデータ圧縮方法
において、データ入力前に、入力候補となるビット列と
インデックスとを定義し、第2の辞書を構築するステッ
プと、リモートの復号先に、第2の辞書と等しい内容の
辞書が存在することを確認し、データを圧縮する際に、
第1の辞書および第2の辞書のインデックスを出力する
ステップからなることを特徴とするデータ圧縮方法。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01501296A JP3277792B2 (ja) | 1996-01-31 | 1996-01-31 | データ圧縮方法および装置 |
KR1019970002076A KR100271861B1 (ko) | 1996-01-31 | 1997-01-24 | 데이타압축, 신장방법 및 장치와 이것을 사용한 데이타처리장치 및 네트워크시스템 |
AU12302/97A AU702207B2 (en) | 1996-01-31 | 1997-01-24 | Method of and apparatus for compressing and decompressing data and data processing apparatus and network system using the same |
TW086100774A TW312771B (ja) | 1996-01-31 | 1997-01-24 | |
IN136CA1997 IN190446B (ja) | 1996-01-31 | 1997-01-24 | |
EP97101123A EP0788239A3 (en) | 1996-01-31 | 1997-01-24 | Method of and apparatus for compressing and decompressing data and data processing apparatus and network system using the same |
SG1997000186A SG55271A1 (en) | 1996-01-31 | 1997-01-27 | Method of and apparatus for compressing and decompressing data and data processing apparatus and network system using the same |
US08/790,063 US5872530A (en) | 1996-01-31 | 1997-01-28 | Method of and apparatus for compressing and decompressing data and data processing apparatus and network system using the same |
CNB971018677A CN1205574C (zh) | 1996-01-31 | 1997-01-31 | 数据压缩、扩展方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01501296A JP3277792B2 (ja) | 1996-01-31 | 1996-01-31 | データ圧縮方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09214352A JPH09214352A (ja) | 1997-08-15 |
JP3277792B2 true JP3277792B2 (ja) | 2002-04-22 |
Family
ID=11876975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01501296A Expired - Fee Related JP3277792B2 (ja) | 1996-01-31 | 1996-01-31 | データ圧縮方法および装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US5872530A (ja) |
EP (1) | EP0788239A3 (ja) |
JP (1) | JP3277792B2 (ja) |
KR (1) | KR100271861B1 (ja) |
CN (1) | CN1205574C (ja) |
AU (1) | AU702207B2 (ja) |
IN (1) | IN190446B (ja) |
SG (1) | SG55271A1 (ja) |
TW (1) | TW312771B (ja) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951623A (en) * | 1996-08-06 | 1999-09-14 | Reynar; Jeffrey C. | Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases |
US6163780A (en) * | 1997-10-01 | 2000-12-19 | Hewlett-Packard Company | System and apparatus for condensing executable computer software code |
JP2000165444A (ja) * | 1998-11-30 | 2000-06-16 | Nec Corp | 光パケットスイッチ |
US6624761B2 (en) * | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
US6404931B1 (en) | 1998-12-14 | 2002-06-11 | Microsoft Corporation | Code book construction for variable to variable length entropy encoding |
US6377930B1 (en) | 1998-12-14 | 2002-04-23 | Microsoft Corporation | Variable to variable length entropy encoding |
US6279062B1 (en) * | 1998-12-28 | 2001-08-21 | Compaq Computer Corp. | System for reducing data transmission between coprocessors in a video compression/decompression environment by determining logical data elements of non-zero value and retrieving subset of the logical data elements |
US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US6601104B1 (en) * | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US6904402B1 (en) * | 1999-11-05 | 2005-06-07 | Microsoft Corporation | System and iterative method for lexicon, segmentation and language model joint optimization |
JP3307909B2 (ja) * | 2000-01-24 | 2002-07-29 | ケンテックス株式会社 | 株価データの圧縮方法及び株価データの圧縮送信方法 |
US20030191876A1 (en) * | 2000-02-03 | 2003-10-09 | Fallon James J. | Data storewidth accelerator |
US6748457B2 (en) * | 2000-02-03 | 2004-06-08 | Realtime Data, Llc | Data storewidth accelerator |
US7026962B1 (en) * | 2000-07-27 | 2006-04-11 | Motorola, Inc | Text compression method and apparatus |
US7417568B2 (en) * | 2000-10-03 | 2008-08-26 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US9143546B2 (en) * | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US7054953B1 (en) * | 2000-11-07 | 2006-05-30 | Ui Evolution, Inc. | Method and apparatus for sending and receiving a data structure in a constituting element occurrence frequency based compressed form |
US6985965B2 (en) * | 2000-11-16 | 2006-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Static information knowledge used with binary compression methods |
US6883035B2 (en) | 2000-11-16 | 2005-04-19 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for communicating with temporary compression tables |
TW543311B (en) * | 2000-11-16 | 2003-07-21 | Ericsson Telefon Ab L M | Static information knowledge used with binary compression methods |
US7386046B2 (en) | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
US6606040B2 (en) * | 2001-02-13 | 2003-08-12 | Mosaid Technologies, Inc. | Method and apparatus for adaptive data compression |
US7382878B2 (en) * | 2001-06-22 | 2008-06-03 | Uponus Technologies, Llc | System and method for data encryption |
KR20020008101A (ko) * | 2001-12-12 | 2002-01-29 | 주식회사 애니콤소프트웨어 | 데이터의 비트 인덱스 압축방법 |
US6892292B2 (en) * | 2002-01-09 | 2005-05-10 | Nec Corporation | Apparatus for one-cycle decompression of compressed data and methods of operation thereof |
US7143191B2 (en) * | 2002-06-17 | 2006-11-28 | Lucent Technologies Inc. | Protocol message compression in a wireless communications system |
WO2004039081A1 (en) * | 2002-10-24 | 2004-05-06 | Boram C& C Co., Ltd | Real time lossless compression and restoration method of multi-media data and system thereof |
US20050027717A1 (en) * | 2003-04-21 | 2005-02-03 | Nikolaos Koudas | Text joins for data cleansing and integration in a relational database management system |
CN100412863C (zh) * | 2005-08-05 | 2008-08-20 | 北京人大金仓信息技术有限公司 | 一种海量数据紧缩存储方法及执行装置 |
SE530081C2 (sv) * | 2005-10-24 | 2008-02-26 | Algotrim Ab | Metod och system för datakomprimering |
KR101385956B1 (ko) * | 2007-08-31 | 2014-04-17 | 삼성전자주식회사 | 미디어 신호 인코딩/디코딩 방법 및 장치 |
KR101499950B1 (ko) | 2007-08-31 | 2015-03-09 | 엘지이노텍 주식회사 | 광원 장치 |
US8326604B2 (en) * | 2008-04-24 | 2012-12-04 | International Business Machines Corporation | Dictionary for textual data compression and decompression |
US8326605B2 (en) * | 2008-04-24 | 2012-12-04 | International Business Machines Incorporation | Dictionary for textual data compression and decompression |
JP5536193B2 (ja) * | 2009-04-09 | 2014-07-02 | トムソン ライセンシング | 各シンボルが三つ以上の可能なシンボル値のうちの一つをもちうる場合のシンボル・シーケンスのエンコードおよびデコードの方法および装置 |
EP2499743A1 (en) * | 2009-11-13 | 2012-09-19 | Universität Paderborn | Indexing compressed data |
US20130270486A1 (en) * | 2010-12-21 | 2013-10-17 | Sumitomo Chemical Company, Limited | Polymer compound and light-emitting device using same |
KR20120134916A (ko) | 2011-06-03 | 2012-12-12 | 삼성전자주식회사 | 저장 장치 및 저장 장치를 위한 데이터 처리 장치 |
US9165008B1 (en) * | 2011-12-28 | 2015-10-20 | Teradata Us, Inc. | System and method for data compression using a dynamic compression dictionary |
JP6252489B2 (ja) * | 2012-12-19 | 2017-12-27 | 富士通株式会社 | 圧縮装置、圧縮方法、圧縮プログラム、伸張装置、伸張方法、伸張プログラム、および圧縮伸張システム |
US9304703B1 (en) | 2015-04-15 | 2016-04-05 | Symbolic Io Corporation | Method and apparatus for dense hyper IO digital retention |
US10133636B2 (en) | 2013-03-12 | 2018-11-20 | Formulus Black Corporation | Data storage and retrieval mediation system and methods for using same |
US9628108B2 (en) | 2013-02-01 | 2017-04-18 | Symbolic Io Corporation | Method and apparatus for dense hyper IO digital retention |
US9467294B2 (en) * | 2013-02-01 | 2016-10-11 | Symbolic Io Corporation | Methods and systems for storing and retrieving data |
US9817728B2 (en) | 2013-02-01 | 2017-11-14 | Symbolic Io Corporation | Fast system state cloning |
JP5808361B2 (ja) * | 2013-04-08 | 2015-11-10 | 日本電信電話株式会社 | 文字列圧縮及び復元システム並びに方法 |
JP5808360B2 (ja) * | 2013-04-08 | 2015-11-10 | 日本電信電話株式会社 | 文字列圧縮及び復元システム並びに方法 |
JP6341059B2 (ja) * | 2014-10-31 | 2018-06-13 | オムロン株式会社 | 文字認識装置、文字認識方法、およびプログラム |
JP6543922B2 (ja) | 2014-12-10 | 2019-07-17 | 富士通株式会社 | インデックス生成プログラム |
JP6531398B2 (ja) | 2015-01-19 | 2019-06-19 | 富士通株式会社 | プログラム |
JP6742692B2 (ja) * | 2015-01-30 | 2020-08-19 | 富士通株式会社 | 符号化プログラムおよび伸長プログラム |
CN104579360B (zh) | 2015-02-04 | 2018-07-31 | 华为技术有限公司 | 一种数据处理的方法和设备 |
JP2016170750A (ja) | 2015-03-16 | 2016-09-23 | 富士通株式会社 | データ管理プログラム、情報処理装置およびデータ管理方法 |
JP6256883B2 (ja) * | 2015-03-25 | 2018-01-10 | 国立大学法人 筑波大学 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
US10061514B2 (en) | 2015-04-15 | 2018-08-28 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
JP6613669B2 (ja) * | 2015-07-14 | 2019-12-04 | 富士通株式会社 | 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法 |
JP6536243B2 (ja) * | 2015-07-16 | 2019-07-03 | 富士通株式会社 | 符号化プログラム、符号化装置、符号化方法、照合プログラム、照合装置および照合方法 |
JP6641857B2 (ja) * | 2015-10-05 | 2020-02-05 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 |
JP2017126185A (ja) * | 2016-01-13 | 2017-07-20 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 |
JP6686639B2 (ja) * | 2016-03-31 | 2020-04-22 | 富士通株式会社 | 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法 |
JP6648620B2 (ja) * | 2016-04-19 | 2020-02-14 | 富士通株式会社 | 符号化プログラム、符号化装置および符号化方法 |
US9729168B1 (en) * | 2016-07-17 | 2017-08-08 | Infinidat Ltd. | Decompression of a compressed data unit |
JP7210130B2 (ja) * | 2017-04-07 | 2023-01-23 | 富士通株式会社 | 符号化プログラム、符号化方法および符号化装置 |
US10572186B2 (en) | 2017-12-18 | 2020-02-25 | Formulus Black Corporation | Random access memory (RAM)-based computer systems, devices, and methods |
JP7159557B2 (ja) | 2017-12-28 | 2022-10-25 | 富士通株式会社 | 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置 |
US10897270B2 (en) * | 2018-06-06 | 2021-01-19 | Yingquan Wu | Dynamic dictionary-based data symbol encoding |
US10725853B2 (en) | 2019-01-02 | 2020-07-28 | Formulus Black Corporation | Systems and methods for memory failure prevention, management, and mitigation |
US11122095B2 (en) * | 2019-09-23 | 2021-09-14 | Netapp, Inc. | Methods for dictionary-based compression and devices thereof |
KR102385867B1 (ko) * | 2020-06-02 | 2022-04-13 | 주식회사 스캐터엑스 | 시각화를 위한 데이터 압축 방법 및 그 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4876541A (en) * | 1987-10-15 | 1989-10-24 | Data Compression Corporation | Stem for dynamically compressing and decompressing electronic data |
US4881075A (en) * | 1987-10-15 | 1989-11-14 | Digital Equipment Corporation | Method and apparatus for adaptive data compression |
JP3231105B2 (ja) * | 1992-11-30 | 2001-11-19 | 富士通株式会社 | データ符号化方式及びデータ復元方式 |
US5467087A (en) * | 1992-12-18 | 1995-11-14 | Apple Computer, Inc. | High speed lossless data compression system |
JP2536422B2 (ja) * | 1993-08-31 | 1996-09-18 | 日本電気株式会社 | デ―タ圧縮装置及びデ―タ復元装置 |
-
1996
- 1996-01-31 JP JP01501296A patent/JP3277792B2/ja not_active Expired - Fee Related
-
1997
- 1997-01-24 IN IN136CA1997 patent/IN190446B/en unknown
- 1997-01-24 AU AU12302/97A patent/AU702207B2/en not_active Ceased
- 1997-01-24 TW TW086100774A patent/TW312771B/zh active
- 1997-01-24 EP EP97101123A patent/EP0788239A3/en not_active Withdrawn
- 1997-01-24 KR KR1019970002076A patent/KR100271861B1/ko not_active IP Right Cessation
- 1997-01-27 SG SG1997000186A patent/SG55271A1/en unknown
- 1997-01-28 US US08/790,063 patent/US5872530A/en not_active Expired - Fee Related
- 1997-01-31 CN CNB971018677A patent/CN1205574C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
SG55271A1 (en) | 1998-12-21 |
KR100271861B1 (ko) | 2000-11-15 |
CN1167951A (zh) | 1997-12-17 |
TW312771B (ja) | 1997-08-11 |
AU1230297A (en) | 1997-08-14 |
US5872530A (en) | 1999-02-16 |
JPH09214352A (ja) | 1997-08-15 |
EP0788239A3 (en) | 1999-03-17 |
KR970059917A (ko) | 1997-08-12 |
CN1205574C (zh) | 2005-06-08 |
EP0788239A2 (en) | 1997-08-06 |
IN190446B (ja) | 2003-07-26 |
AU702207B2 (en) | 1999-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3277792B2 (ja) | データ圧縮方法および装置 | |
US7802184B1 (en) | Method and apparatus for processing text and character data | |
JP4986919B2 (ja) | タグ付きデータを有する完全形式レキシコンおよびタグ付きデータを構成し使用する方法 | |
JP3421700B2 (ja) | データ圧縮装置及び復元装置並びにその方法 | |
US20160321282A1 (en) | Extracting method, information processing method, computer product, extracting apparatus, and information processing apparatus | |
KR20160089279A (ko) | 매체에 저장된 프로그램 | |
US11669553B2 (en) | Context-dependent shared dictionaries | |
JP6447161B2 (ja) | 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法 | |
US7366984B2 (en) | Phonetic searching using multiple readings | |
JP2018018174A (ja) | 符号化プログラム、符号化装置、符号化方法、及び検索方法 | |
US6834283B1 (en) | Data compression/decompression apparatus using additional code and method thereof | |
JP3342788B2 (ja) | 圧縮データの伸張方法 | |
Anto et al. | A Compression System for Unicode Files Using an Enhanced Lzw Method. | |
JP4726046B2 (ja) | 文字列検索装置及びコンピュータプログラム及び文字列検索方法 | |
JP2729416B2 (ja) | テキストデータの復元方法 | |
JP7006462B2 (ja) | データ生成プログラム、データ生成方法および情報処理装置 | |
Shanmugasundaram et al. | Text preprocessing using enhanced intelligent dictionary based encoding (EIDBE) | |
JP2002007104A (ja) | 文字データ圧縮表示装置 | |
JPS63263561A (ja) | 日本語文の圧縮方法 | |
JPH07282040A (ja) | 日本語情報圧縮方式 | |
JPH0140372B2 (ja) | ||
JPH1155125A (ja) | 文字データの圧縮・復元方法 | |
Teahan et al. | Grammar based pre-processing for PPM | |
JPS6382061A (ja) | デ−タ圧縮方式 | |
US7599829B2 (en) | Phonetic searching using partial characters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |