JPH0358207B2 - - Google Patents

Info

Publication number
JPH0358207B2
JPH0358207B2 JP61044273A JP4427386A JPH0358207B2 JP H0358207 B2 JPH0358207 B2 JP H0358207B2 JP 61044273 A JP61044273 A JP 61044273A JP 4427386 A JP4427386 A JP 4427386A JP H0358207 B2 JPH0358207 B2 JP H0358207B2
Authority
JP
Japan
Prior art keywords
word
event
delimiter
dictionary
new
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 - Lifetime
Application number
JP61044273A
Other languages
English (en)
Other versions
JPS61242122A (ja
Inventor
Gootsueru Jerarudo
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS61242122A publication Critical patent/JPS61242122A/ja
Publication of JPH0358207B2 publication Critical patent/JPH0358207B2/ja
Granted legal-status Critical Current

Links

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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、一般的には計算機のデータ・フアイ
ルの圧縮方法、より具体的にはデータがワード及
び区切りに分割されているような文字データを適
応的に圧縮する方法に関する。本発明によるフア
イル・コンプレツサは、計算機プログラム又は自
然言語のいずれかの、言語を含むフアイルに対し
て使用する事が意図されている。
[従来技術及びその問題点] コンプレツサを設計する問題は、2つの部分に
分けられる。第1は、原文書のモデルの構築であ
る。そのようなモデル毎に、圧縮された文書に関
する理論的な最小の大きさ、いわゆるエントロピ
ー限界が存在する。次に、実際の圧縮がその理論
値に接近するような実用的な符号化方式を定式化
する必要がある。
非適応型のモデル、即ち伝送される文書に対し
てその特性が独立的であるモデルに関しては、ハ
フマン符号化がしばしば、かなり効率的である。
適応型のモデルに関ししては、符号化処理中に符
号化方式も変化しなければならない。従つて適応
型のハフマン符号化が必要になる。既にそのよう
な方式が構成され且つ使用されているが、より高
速の符号化方式が望まれている。
従つて、本発明の目的は、従来技術で知られて
いるよりも高速で且つ圧縮率の高い新規なフアイ
ル圧縮方法を提供する事である。
[問題点を解決するための手段] 本発明によれば、書かれた言語は第1の種類の
文字の連続したものより成るワードと第2の種類
の文字の連続したものより成る区切りとが交互に
なつたストリームと考える事ができる事に注目す
ることによつて、適応的なフアイル圧縮方法が実
現される。最初、ワード及び区切り用の空白の辞
書が形成される。本発明による文字データ・スト
リームの圧縮方法は、 (a) データ・ストリーム中の事象毎に当該事象が
ワード又は区切りの何れであるかを判定し、 (b) 上記ステツプ(a)で事象がワードであると判定
されたならば、当該ワードが既にデータ・スト
リーム中に登場したワードであるか否かを判定
し、 (c) 上記ステツプ(b)の判断結果が肯定的であるな
らば、 (c1) 既にデータ・ストリーム中に登場した
各ワードの項目を持ち、そのようなワード毎
に登場回数を計数するためのワード用の辞書
の、該当するワードの計数値と該ワード用辞
書中の全ワードの計数値の和との比を確率評
価値として用いて当該ワード事象を符号化
し、 (c2) 上記ワード用辞書の該当するワードの
計数値を所定数だけ増加させ、 (d) 上記ステツプ(b)の判断結果が否定的であるな
らば、 (d1) 上記事象が新しいワードであること
を表わす符号を発生させて上記ワード事象を
符号化し、 (d2) 上記ワードを構成する文字を符号化
する一方、上記ワード用辞書に当該新しいワ
ードの項目を確保し、かつその計数値を上記
ステツプ(c2)のものと同じ所定数に設定
し、 (e) 上記ステツプ(a)で事象が区切りであると判定
されたならば、当該区切りが既にデータ・スト
リーム中に登場した区切りであるか否かを判定
し、 (f) 上記ステツプ(e)の判断結果が肯定的であるな
らば、 (f1) 既にデータ・ストリーム中に登場した
各区切りの項目を持ち、そのような区切り毎
に登場回数を計数するための区切り用の辞書
の、該当する区切りの計数値と該区切り用辞
書中の全区切りの計数値の和との比を確率評
価値として用いて当該区切り事象を符号化
し、 (f2) 上記区切り用辞書の該当する区切りの
計数値を所定数だけ増加させ、 (g) 上記ステツプ(e)の判断結果が否定的であるな
らば、 (g1) 上記事象が新しい区切りであること
を表わす符号を発生させて上記区切り事象を
符号化し、 (g2) 上記区切りを構成する文字を符号化
する一方、上記区切り用辞書に当該新しい区
切りの項目を確保し、かつその計数値を上記
ステツプ(f2)のものと同じ所定数に設定す
る ステツプを含む。
[実施例] 本発明を実施する時に使用するモデルは次の特
性を有している。伝送されるデータは、事象の系
列より構成され、事象は最初の事象から始まつ
て、次に2番目のもの、等々と1度に1つづつ符
号化されるものと仮定する。n番目の事象を符号
化する時、モデルは、(1)関連する事象の集合及び
(2)各事象の確率を形成する。それを行なう時、モ
デルは、それ以前の全ての事象についての知識を
利用し得るが、そのn番目の事象又はまだ符号化
されていない事象を考慮に入れてはならない。こ
の制限は、デコーダにおけるモデルのコピーが、
エンコーダにおけるそれと同じ情報を有し得る事
を意味している。
モデルは適応的であり、即ち事象の頻度がフア
イルの符号化と共に蓄積されてゆく。確率は有理
数であつて、与えられた事象の確率は、関連する
事象の集合に関する全計数値に対する、その事象
の計数値の比である。従つて、使われる確率は、
符号化処理中に変化する。
このモデルの1つの特徴は、符号化処理中のス
テツプで使われる適切な事象集合の選択である。
このモデルは有限状態機械と考える事もできる。
辞書モデルにおいて、フアイルはレコードの系
列として取り扱われる。各レコードは、「ワード」
及び「区切り」の交互の系列を含んでいる。英数
字によつてワードが構成される自然言語の文字デ
ータ・ストリームでは、ワードとは英数字のスト
リングであり、区切りとは英数字以外の文字のス
トリングである。多くの文書では、1個のスペー
スが主な区切りである。
符号化処理工程が第1図に図示されている。。
レコードは入力フアイルが読取られる。レコード
は区切り又はワードで始まる。従つて最初の事象
は2つの可能性、即ち開始ワード又は開始区切り
より成る。上記自然言語の文字データ・ストリー
ムでは、事象を構成する文字が英数字であれば当
該事象がワードであると判定され、事象を構成す
る文字が英数字以外の文字であれば当該事象が区
切りであると判定される。適当な事象の対が符号
化される。出会つた事象の計数値は1つづつ増加
する。ワードが予期される時、可能な事象は下記
のうち1つである。
新しいワード ((符号「新ワード」) 古いワードN(N=1,2,…) (符号「ワードN」) レコード終了 (符号「レコード終了」) 適当な事象が符号化された後、その事象に関す
る計数値は1つだけ増加する。
古いワードの事象とは、符号化すべきワードに
以前に出会つており、それがワード用辞書中に記
憶されているものである。Nは取得番号であり、
当該ワードが文字データ・ストリーム中で第N番
目にワード用辞書に登録されたワードであること
を示す。事象が古いワードNである場合には、ワ
ード辞書を参照して後述する算術符号に従つて
「ワードN」の符号が生成され、その後、ワード
用辞書中のワードNの項目の計数値が1だけ増分
される。事象が新しいワードである場合には、所
定の符号「新ワード」を用いて当該事象が符号化
される。続いて、当該ワードを構成する文字が符
号化される。一方、当該ワードはワード用辞書に
登録され、かつ計数値が1に設定される。この新
しいワードを構成する文字の符号化と新しいワー
ドのワード用辞書への登録は、どちらが先であつ
てもよく、あるいは同時に行なわれてもよい。ワ
ードを構成する文字の符号化処理は第2図に示
す。第2図は区切りにも適用される。従つて一般
的な用語「記号」を用いた。記号は1度に1文字
づつ符号化される。事象の集合は次のようなもの
である。
文字N (以前に出会つた文字) (符号「文字N」) 新しい文字 (符号「新しい文字」)) 記号終了 (記号中にそれ以上の文字がな
い) (符号「記号終了」) 以上、ワード事象の符号化について説明した
が、区切り事象の符号化も、区切り用辞書を使う
点を除き、ワード事象の場合と同様に行なわれ
る。
事象が符号化された後、適当な計数値が1つ増
加される。新しい文字に出会つた時、それも符号
化しなければならない。これは全ての新しい文字
(0〜255))が一様にありそうであると仮定する
事によつて行なわれる。特定の文字に関する計数
値は1にセツトされる。ワード中の文字及び区切
り中の文字については、別個のテーブルが保持さ
れている事に注意すべきである。ワードの後に
は、レコードの終りに出会わなければ、区切りが
予期される。区切りはワードと同様に扱われる
が、それらはそれ自身の辞書と統計を持つてい
る。
プログラムは、入力レコードの終りに至るま
で、ワードと区切りとの間をスイツチする。レコ
ード終了の事象は符号化され、新しいレコードが
読み取られる。そして、レコードがワードで始ま
るか又は区切りで始まるかを示すための符号で始
まり、符号化処理が反復される。フアイル終了の
時、開始ワード及びレコード終了の事象が伝送さ
れる。これは空レコードを示し、フアイルの終了
として用いられる。
本発明を実用的に実施したものは、算術符号を
使用する。最初に、あたかも算術演算が無限の精
度で行ない得るかのように、算術符号化処理を説
明する。実際的なアルゴリズムの詳細は後に与え
る。
事象を符号化するために、必要な入力データ
は、ある任意の順序(これはコンプレツサとデコ
ンプレツサの両者に知られている)に配列された
可能な事象の各々の計数値と、符号化すべき特定
の事象ある。変数nは事象の番号を示す。nは1
で始まり、各事象が符号化される毎に1つづつ増
加する。
c(i、n)>0(但しi=1、2、…、I(n))
を、n番目の事象に関するI(n)個の可能な選
択に関する計数値とする。累積計数値を次のよう
に定義する。
(Ci、n)=c(1、n)+…+c(i、n) (1) 但し、i=1、2、…、I(n) 及び、C(0、n)=0 Cは定義により、iの単調増加関数である。算
術符号化手段への入力は、数C及びび特定の事象
iの組である。
x(n)及びr(n)を、最初のn個の事象を符
号化した結果を示す実数の対であるとする。開始
値はx((0)=0及びr(0)=1である。n番目
の事象(事象iはCによつて記述される集合の中
にある)を符号化するための公式は次の通りであ
る。
x(n)=x(n−1) +r(n−1)C(i−1、n)/C(I(n)、
n)(2) r(n)=r(n−1) [C((i、n)−C(i−1、n)]/C(I(
n)、n) この公式は、評価確率及び累積分布関数を次の
ように定義すると、一層明瞭になるであろう。
p(i、n)=c(i、n)/C(I(n)、n)(3
) F(i、n)=p(1、n) +p(2、n)+…+p(i、n) F(0、n)=0 上記の定義を用いると、式(2)は次のようにな
る。
x(n)=x(n−1) +r(n−1)F((i−1、n) (2a) r(n)=r(n−1)p(i、n) =r(n−1)[F(i、n) −F(i−1、n)] 第3図はこれらの公式の幾何学的関係を示して
いる。但し、第3図ではI(n)=4、i=3と仮
定されている。
もしフアイル全体がNの事象を符号化すること
によつて記述されるならば、文書はx(N)の値
によつて表現される。デコーダはx(N)を与え
られ、そしてエンコーダと同じモデルを用いて、
N個の事象の系列を推論する事ができる。このデ
コーデイングの可能性は次式から導かれる。
x(n−1)≦x(n)<x(n−1)+r(n−
1)) (4) 但しn=1、2、…N 従つて、 x(n)≦x(N)<x(n)+r(n) (5) この式は次のように書く事ができる。
C(i−1、n)≦[x(N)−x(n−1)]
C(I(n)、n)/r(n−1) <C(i、n) (6) Cはiの単調増加関数なので、1つだけのiの
値がこの不等式を満足できる。
符号化されたフアイルはx(N)の値によつて
表現される。充分な精度でx(N)を表現するの
に必要なビツト数は、容易に評価される。次式に
よつて定義される間隔X中の任意の点が与えられ
れば、フアイルのデコーデイングは充分に可能で
あろう。
x(N)≦x<x(N)+r(N) 従つて、ちようどその間隔の中にXを位置付け
るのに充分なXのビツトを伝送しさえすれば良
い。log2(1/r(N))+2ビツトを用いれば、そ
れが成しとげられる。
rの計算に関する公式を調べてみると、rは
個々の事象の確率の積である事がわかる。従つ
て、log2(1/p(i、n))の全ての事象に関す
る和よりも2つ余分にビツトが必要である。
上記アルゴリズムは、5個の事象の組及び5個
の計数値の組を維持しなければならない。それら
は下記の表に与えられている。
組1 新しいレコードの開始 項 目 初期値 開始ワード 1 開始区切り 1 組2 ワードの予期 項 目 初期値 レコードの終了 1 新しいワード 1 ワード1 0 ワード2 0 ……… 組3 新しいワード中の文字の予期 項 目 初期値 ワードの終了 1 新しい文字 1 文字1 0 文字2 0 ……… 組4 区切りの予期 項 目 初期値 レコードの終了 1 新しい区切り 1 区切り1 0 区切り2 0 ……… 組5 新しい区切り中の文字の予期 項 目 初期値 区切りの終了 1 新しい文字 1 文字1 0 文字2 0 ……… 上記のどの組の中の事象に関しても、その事象
は、それについての計数値、符号化される事象に
関する組の中の全ての事象に関する計数値の総
和、及びその組の中の事象の総数を用いて符号化
される。事象が符号化された後、その事象に関す
る計数値は1つだけ増加される。もし事象が新し
いワード、区切り、又は文字であれば、新しい項
目に関する計数値が1にセツトされる。これは以
前はゼロであつた。この場合、その組の中の事象
の総数は2つ増加する事に注意されたい。という
のは各々の新しい項目は組の中の2重の事象だか
らである。
組4の中で、単一のスペース(空白文字)は別
個に取り扱われる。これは実行速度のためであ
る。なぜなら多くの文書において単一のスペース
は主要な区切りだからである。
組3及び5中の文字の計数値は、文字に関する
対応するEBCDIC符号によつてインデツクスされ
る。ワードの文字は0又は1の符号を有するもの
を含まないので、これらは各々ワードの終了及び
新しい文字のために使用される。区切り文字に関
しては、任意の英数字文字を区切りの終了及び新
しい文字を示すために使できる。例えば、文字
「x」及び「y」を選ぶことができる。
これらの計数値の表(組1に関するもの以外)
はかなり大規模である。各組中の項目の最大数は
下記のようになつている。
組番号 項目数 1 2 2 4096 3 64 4 4096 5 196 ワード用辞書(組2)及び組区切り辞書(4)の大
きさは任意である。上記の選択は実際のフアイル
を圧縮する時には妥当なようである。組3及び5
に関しては、各々の表の中に256個の項目を記入
できるようにすると便利である。もつともその多
くは使われないであろう。これは計算のスピード
のためである。
事象に関する計数値を更新するのは単純な計算
である。問題は累積計数値が必要な時に生じる。
累積計数値は式(1)で定義されている。辞書が一杯
になれば、累積計数値を得るために4096回に至る
加算が必要であろう。また各々の新しい事象のた
めにC(i、n))を維持することも時間のかかる
事である。しかしこの問題を解決する技術が利用
可能である。その方法は第4図に示されている。
これは8つの事象の事象集合に関して構成されて
いる。第4図のC(i)は式(1)のC(i、n)に相当
するものである。各ノードには適当なC(i)の差が
記憶されている。事象の計数値は根から葉へ木を
トラバースする事によつて更新される。この時に
同時に累積計数値も計算される。各ノードの数値
は、経路がそのノードから左側へ行くならば1だ
け増加される。また葉の計数値は1だけ増加され
る。事象iに関するC(i−1)の値は、経路が
そのノードを通り右側へ行つたノードの数値の和
によつて与えられる。i=5の場合、C(5)−C
(0)=[C(4)−C(0)]+[C(5)−C(4)]であ
る。
C(6)−C(4)及びC(6)−C(5)は1だけ増やされる。
木の深さは木の葉の数よりもずつと小さい事に
注意されたい。従つて更新動作にはずつと少ない
ステツプ数しか必要でない。実際、木は上部から
所望の葉又は事象まで1度トラバースされるだけ
である。最初に、累積計数値はゼロにセツトされ
る。トラバースの間、もし左側に行けば、そのノ
ードの計数値は1つだけ増やされる。一方、もし
右側に行けば、そのノードの値が累積計数値に加
算される。木の底部に達した時、葉は所望のc
(i、n)の値を有し、累積計数値はC(i−1、
n)に関する値を有している。
大規模なフアイルの場合、計数値が大きくなり
すぎるのを防ぐため又は辞書を限界内に保つため
に、計数値の再生規化が必要になる事がある。ま
た再正規化は古い統計の強調緩和も生じさせる。
再生規化の手続きは次の通りである。もし、事象
が処理される前にその事象の組に関する計数値合
計が16000よりも大きいか、又はその事象がワー
ド又は区切りであつてその事象の組に関する辞書
が殆んど一杯であれば、再正規化が起こる。各計
数値は2で割り算される。ワード及び区切りの場
合、剰余は捨てられる。他の計数値については、
丸めが行なわれる。ワード及び区切りの場合、あ
る記入項目は計数値が1から0になる。それらの
項目は辞書から切り捨てられる。もしそのような
項目に再び出会つたならば、それは新しいワード
又は新しい区切りになる。
上述した符号化方式は、32ビツト・ワードの機
械に関してインプリメントされた。重み及び切り
捨ての詳細は、デコーデイング処理を誤りなしに
行なう事ができ、元のフアイルを復元できるよう
に注意すべきである。
全ての計算は整数で行なわれる。数x及びrは
両方共整数である。初期値は次の通りである。
x(0))=0 r(0)=231−1 rのこの値は32ビツト・ワード及び2の補数の
演算を用いた機械における最大の正の値である。
xは任意の長さのアキユムレータとして取り扱わ
れるが、xへの加算は常に、rの初期値に等しい
か又はそれよりも小さな数のものである。
式(2)によれば、rは次第に小さくなる。精度を
維持するために、rが小さくなりすぎるたびに、
rは256を乗算される。xの値も256を乗算しなけ
ればならない。従つて下記のスケーリング動作が
導かれる。これは符号化処理中の最初のステツプ
である。
r(n−1)<223ならば (7) r(n−1)=256r(n−1) x(n−1)=256x(n−1) 繰り返し、 ここで事象iを符号化する用意が整つた。式(2)
の代わりに、次式を用いる。但し[…]は…の整
数部を表わす。
z=[r(n−1)C(i−1、n)/C(I(n)
、n)](8) u=[r(n−1)C(i、n)/C(I(n)、n
)] x(n)=x(n−1)+z r(n)=r(n−1)(u−z) r及びxに256を乗算する時、xの下位桁の4
バイトから左側にシフト・アウトされたxのバイ
トを伝送するという誘惑にかられるかもしれな
い。この処理は多くの時には正しい。しかし不幸
なことに、x(n−1)からx(n)を計算する
と、xの4つの下位桁バイトから左へキヤリーが
生じる事がある。このキヤリーは、x及びrの各
スケーリング毎に高々1回生じる。このキヤリー
を処理するために、xは8バイトの数値として維
持され、これら8バイトの最上位バイトが256を
掛ける前に伝送される。ここで問題は、xの4つ
の上位桁バイトの各々が255の値を持つという特
殊な場合に還元される。このまれな場合が生じる
たびに、xの上位4バイトはxの最上位バイトを
伝送した後に256を乗算される。xが変化した時
はいつでもこのテストが行なわれる。
このアルゴリズムは、もしrがゼロになると、
失敗する。式(8)から、もしu=zであればその時
に限つてこれが起きる事が明らかである。
u−z=[r(n−1)C(i、n)/C(I(n)
、n)]−[r (n−1)C(i−1、n)/C(I(n)、n)] ≧[r(n−1)C(i、n)/C(I(n)、n
)−r(n− 1)C(i−1、n)/C(I(n)、n)] ≧[r(n−1)/C(I(n)、n)] もしもC(I(n)、n)<r(n−1)であれば
安全である。
rは符号化の前にスケーリングされるので、r
の取り得る最小値は223である。従つてC(I
(n)、n)<223でありさえすればよい。デコーデ
イングのために使われる下記の不等式(12)の証明中
で、条件2C(I(n)、n)<r(n−1)が使われ
る。従つてC(I(n)、n)<222を要求する必要
がある。既に述べたように、C(I(n)、n)に
関して許された最大の値は16000であり、これは
明らかに条件を満足する。
復号の処理は符号化処理と並行している。xの
値は圧縮されたデータから得られる。圧縮された
データの最初の4バイトはxの初期値を与える。
rの初期値は、符号化で使われたものである。
種々の事象の組に関する統計は、エンコーダと同
様にデコーダにおいても維持されている。従つ
て、事象が復号される毎に、適当な事象の組がC
の正しい値と共に知られる。x及びrの再正規化
及びスケーリングは符号化の時と同様に行なわれ
る。
復号の時、xの値は可能な限り減少されるが、
ゼロよりも小さくなる事は許されない。従つて、
基本的な復号公式は、次式のようにiを決定する
事に基づいている。
[r(n−1)C(i−1、n)/C(I(n)、n
)]≦x< [r(n−1)C(i、n)/C(I(n)、n)]
(9) このiは事象集合から選択すべき事象を特定す
る。r及びxの新しい値は次式から計算される。
z=[r(n−1)C(i−1、n)/C(I(n)
、n)](10) u=[r(n−1)C(i、n)/C(I(n)、n
)] x(n)=x(n−1)−z r(n)=r(n−1)(u−z) 式(7)に従つてx及びrがスケーリングされる
時、符号化されたフアイルから新しいバイトがx
に付加され、右揃えされる。もし符号化されたメ
ツセージ中の4つの最近に使用された連続したバ
イトが各々255の値を持てば、次のバイトもxに
付加され、右揃えされる。これは、キヤリーを管
理するために使われた機構を反転する。
不等式(9)からのiの決定は、計算上望ましくな
い。というのは累積計数値及び多数回のテストが
必要だからである。そこで統計値を管理するため
に使用した木構造がデコードでも使用される。計
数値cを次式のように見つける事を試みる。
C(i−1、n)≦c<C(i、n) (11) そのようなcは事象を見つけるために第4図の
木を検索するために容易に使用できる。cの決定
は次のように行なわれる。
c=[2(1+x/2)C(I(n)、n)/r(n
−1)] 最初に、c≧C(i−1、n)である事を示す。
下記において、d及びfは1よりも小さく且つゼ
ロに等しいか又はそれよりも大きな変数である。
変数eは0及び0.5の正の値を持つ。
c=[2(1+x/2−e)C(I(n)、n)/r
(n−1)] c+d=(2+x−2e)C(I(n)、n)/r(n
−1) =2(1−e)C(I(n)、n)/r(n−1)
+x C(I(n)、n)/r(n−1) 不等式(9)から、次式が得られる。
x≧r(n−1)C(i−1、n)/C(I(n)、
n)−f 従つて c+d≧(2−2e−f)C(I(n)、n)/r(n
−1)+C (i−1、n) >C(i−1、n) c及びCは整数であり、dは1よりも小さいの
で、c≧C(i−1、n)が得られる。次に、c
≦C(i、n)である事を示す。以前に次式が得
られている。
c+d=2(1−e)C(I(n)、n)/r(n−
1)+x C(I(n)、n)/r(n−1) 不等式(9)から、 x<r(n−1)C(i、n)/C((I(n)、n
) 従つて、 c+d<2(1−e)C(I(n)、n)/r(n−
1)+C(i、 n) c及びC((i、n)は整数であり、右辺の第1
項は1よりも小さいので、次の結論が得られる。
c≦C(i、n) 従つて、C(i−1、n)≦c≦C(i、n)で
ある事が示された。もしc=C(i、n)であれ
ば、不等式(9)から、 r(n−1)c/C(I(n)、n)>x この場合、我々はcの試行値を1だけ減少させ
ている。その結果、我々は不等式(11)を満足するc
の値を得る。このcの値は、符号化された事象を
見い出し且つ式(10)の計算のために必要な関連した
計数値を見い出すために計数値木をトラバースす
る時に使われる。
[発明の効果] 本発明により、従来技術よりも高速且つ圧縮率
の高い新規なフアイル圧縮技術が提供された。
【図面の簡単な説明】
第1図は本発明によるフアイル・コンプレツサ
の流れ図、第2図は新しいワード及び区切りを符
号化する過程を示す流れ図、第3図はn番目の事
象の符号化を説明するための図、第4図は事象の
計数値に関する木構造を説明する図である。

Claims (1)

  1. 【特許請求の範囲】 1 第1の種類の文字の連続したものより成るワ
    ードと第2の種類の文字の連続したものより成る
    区切りとより成る文字データのストリームを圧縮
    する方法であつて、 (a) データ・ストリーム中の事象毎に当該事象が
    ワード又は区切りの何れであるかを判定し、 (b) 上記ステツプ(a)で事象がワードであると判定
    されたならば、当該ワードが既にデータ・スト
    リーム中に登場したワードであるか否かを判定
    し、 (c) 上記ステツプ(b)の判断結果が肯定的であるな
    らば、 (c1) 既にデータ・ストリーム中に登場した
    各ワードの項目を持ち、そのようなワード毎
    に登場回数を計数するためのワード用の辞書
    の、該当するワードの計数値と該ワード用辞
    書中の全ワードの計数値の和との比を確率評
    価値として用いて当該ワード事象を符号化
    し、 (c2) 上記ワード用辞書の該当するワードの
    計数値を所定数だけ増加させ、 (d) 上記ステツプ(b)の判断結果が否定的であるな
    らば、 (d1) 上記事象が新しいワードであること
    を表わす符号を発生させて上記ワード事象を
    符号化し、 (d2) 続いて上記ワードを構成する文字を
    符号化する一方、上記ワード用辞書に当該新
    しいワードの項目を確保し、かつその計数値
    を上記ステツプ(c2)のものと同じ所定数に
    設定し、 (e) 上記ステツプ(a)で事象が区切りでであると判
    定されたならば、当該区切りが既にデータ・ス
    トリーム中に登場した区切りであるか否かを判
    定し、 (f) 上記ステツプ(e)の判断結果が肯定的であるな
    らば、 (f1) 既にデータ・ストリーム中に登場した
    各区切りの項目を持ち、そのような区切り毎
    に登場回数を計数するための区切り用の辞書
    の、該当する区切りの計数値と該区切り用辞
    書中の全区切りの計数値の和との比を確率評
    価値として用いて当該区切り事象を符号化
    し、 (f2) 上記区切り用辞書の該当する区切りの
    計数値を所定数だけ増加させ、 (g) 上記ステツプ(e)の判断結果が否定的であるな
    らば、 (g1) 上記事象が新しい区切りであること
    を表わす符号を発生させて上記区切り事象を
    符号化し、 (g2) 続いて上記区切りを構成する文字を
    符号化する一方、上記区切り用辞書に当該新
    しい区切りの項目を確保し、かつその計数値
    を上記ステツプ(f2)のものと同じ所定数に
    設定する ステツプを含む文字データ・ストリームの適応
    的圧縮方法。
JP61044273A 1985-04-17 1986-03-03 文字データ・ストリームの適応的圧縮方法 Granted JPS61242122A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/724,234 US4672539A (en) 1985-04-17 1985-04-17 File compressor
US724234 1985-04-17

Publications (2)

Publication Number Publication Date
JPS61242122A JPS61242122A (ja) 1986-10-28
JPH0358207B2 true JPH0358207B2 (ja) 1991-09-04

Family

ID=24909595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61044273A Granted JPS61242122A (ja) 1985-04-17 1986-03-03 文字データ・ストリームの適応的圧縮方法

Country Status (5)

Country Link
US (1) US4672539A (ja)
EP (1) EP0199035B1 (ja)
JP (1) JPS61242122A (ja)
CA (1) CA1241760A (ja)
DE (1) DE3688517T2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8618093D0 (en) * 1986-07-24 1986-09-03 Serif Software Ltd Data compression
US4935882A (en) * 1986-09-15 1990-06-19 International Business Machines Corporation Probability adaptation for arithmetic coders
US4899148A (en) * 1987-02-25 1990-02-06 Oki Electric Industry Co., Ltd. Data compression method
WO1988009586A1 (en) * 1987-05-25 1988-12-01 Megaword International Pty. Ltd. A method of processing a text in order to store the text in memory
DE69029217T2 (de) * 1989-04-05 1997-04-03 Xerox Corp Verfahren zur Kodierung von Texten
US5625773A (en) * 1989-04-05 1997-04-29 Xerox Corporation Method of encoding and line breaking text
IL91158A (en) * 1989-07-28 1993-01-31 Ibm Israel Method and system for arithmetic coding and decoding
GB2251097B (en) * 1990-12-08 1995-05-10 Dowty Information Systems An adaptive data compression system
GB9103080D0 (en) * 1991-02-14 1991-04-03 British And Foreign Bible The Analysing textual documents
JPH06131152A (ja) * 1992-04-13 1994-05-13 Compaq Computer Corp セパレータが無いか少ない言語を表わすコンピュータファイルのためのデータ圧縮方法
AU659639B2 (en) * 1992-05-11 1995-05-25 British And Foreign Bible Society, The Analysing textual documents
US5533051A (en) * 1993-03-12 1996-07-02 The James Group Method for data compression
US5486864A (en) * 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal
US5546080A (en) * 1994-01-03 1996-08-13 International Business Machines Corporation Order-preserving, fast-decoding arithmetic coding arithmetic coding and compression method and apparatus
US5778374A (en) * 1995-08-03 1998-07-07 International Business Machines Corporation Compressed common file directory for mass storage systems
US5787446A (en) * 1995-08-03 1998-07-28 International Business Machines Corporation Sub-volume with floating storage space
GB2305746B (en) * 1995-09-27 2000-03-29 Canon Res Ct Europe Ltd Data compression apparatus
US5771011A (en) * 1996-07-15 1998-06-23 International Business Machines Corporation Match detect logic for multi-byte per cycle hardware data compression
US6226628B1 (en) * 1998-06-24 2001-05-01 Microsoft Corporation Cross-file pattern-matching compression
RU2226044C2 (ru) * 2002-01-09 2004-03-20 Джи И ТЕКНОЛОДЖИ ДИВЕЛОПМЕНТ, ИНК. Устройство для выдачи сжатого видеосигнала и способ его передачи

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3643226A (en) * 1969-06-26 1972-02-15 Ibm Multilevel compressed index search method and means
US3694813A (en) * 1970-10-30 1972-09-26 Ibm Method of achieving data compaction utilizing variable-length dependent coding techniques
US4103287A (en) * 1973-12-17 1978-07-25 Bell Telephone Laboratories, Incorporated Variable length codes for high quality image encoding
US3984833A (en) * 1973-12-26 1976-10-05 International Business Machines Corporation Apparatus for encoding extended run-length codes
US4410916A (en) * 1979-08-24 1983-10-18 Compression Labs, Inc. Dual mode facsimile coding system and method
US4355306A (en) * 1981-01-30 1982-10-19 International Business Machines Corporation Dynamic stack data compression and decompression system
US4420771A (en) * 1981-02-09 1983-12-13 Bell Telephone Laboratories, Incorporated Technique for encoding multi-level signals
US4369463A (en) * 1981-06-04 1983-01-18 International Business Machines Corporation Gray scale image data compression with code words a function of image history
US4545032A (en) * 1982-03-08 1985-10-01 Iodata, Inc. Method and apparatus for character code compression and expansion

Also Published As

Publication number Publication date
CA1241760A (en) 1988-09-06
US4672539A (en) 1987-06-09
EP0199035B1 (en) 1993-06-02
DE3688517T2 (de) 1993-12-23
EP0199035A2 (en) 1986-10-29
DE3688517D1 (de) 1993-07-08
JPS61242122A (ja) 1986-10-28
EP0199035A3 (en) 1989-11-29

Similar Documents

Publication Publication Date Title
JPH0358207B2 (ja)
US5572206A (en) Data compression method and system
JP3553106B2 (ja) テキスト圧縮駆動部構築方法及び入力テキスト列圧縮方法
US5933104A (en) Method and system for compression and decompression using variable-sized offset and length fields
JPH0779262B2 (ja) 圧縮データの符号化方法
JPH03204233A (ja) データ圧縮方法
JPS6356726B2 (ja)
JP3241788B2 (ja) データ圧縮方式
JPH08167852A (ja) データ圧縮方法及び装置
Bell et al. The relationship between greedy parsing and symbolwise text compression
JP3241787B2 (ja) データ圧縮方式
JP2954749B2 (ja) データ圧縮方式
JP2590287B2 (ja) データ圧縮方法およびデータ圧縮装置
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
Plantinga An asymmetric, semi-adaptive text compression algorithm
Begum et al. A Novel Multidictionary Based Text Compression
JP3100206B2 (ja) データ圧縮方法
Bloom New Techniques in Context Modeling and Arithmetic Encoding.
JPH05152971A (ja) データ圧縮・復元方法
JPH08167853A (ja) データ圧縮・復元方法
Robert et al. New algorithms for random access text compression
JP3083329B2 (ja) データ圧縮復元方式
JP3117760B2 (ja) データ復元方式
JPH06202844A (ja) データ圧縮復元処理装置
Mukherjee et al. Text compression