JPH0117295B2 - - Google Patents

Info

Publication number
JPH0117295B2
JPH0117295B2 JP59250667A JP25066784A JPH0117295B2 JP H0117295 B2 JPH0117295 B2 JP H0117295B2 JP 59250667 A JP59250667 A JP 59250667A JP 25066784 A JP25066784 A JP 25066784A JP H0117295 B2 JPH0117295 B2 JP H0117295B2
Authority
JP
Japan
Prior art keywords
data
probability
signal
state
bit
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
Application number
JP59250667A
Other languages
English (en)
Other versions
JPS60196014A (ja
Inventor
Gootsueru Jerarudo
Ra Uaan Mitsucheru Joon
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 JPS60196014A publication Critical patent/JPS60196014A/ja
Publication of JPH0117295B2 publication Critical patent/JPH0117295B2/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/4006Conversion to or from arithmetic code

Landscapes

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

Description

【発明の詳細な説明】
〔産業上の利用分野〕 この発明は、特にデータの圧縮または圧縮解除
を行うための装置に関し、データの送信側と受信
側とがともに次の動作を動的に且つ同時に行なう
ような装置に関する。: (i) 適応予測計算の制御、 (ii) データソースとデータの宛先とで同時に与え
られたデータストリームをあらわす予測の、2
進的に決定された対称的な列を用意すること、 (iii) 決定0…n−1のそれぞれに対して最適化さ
れた累積予測経過に基づき2進的な決定1…n
に対して、データソースとデータの宛先とで個
別に且つ対称的に圧縮及び圧縮解除の予測を計
算すること。 この発明は、ビツトを送ることを強制されるよ
りもむしろ2進的な決定を適応的にコーデイング
することにより実施される。n番目の決定のコー
デイングに使用される統計はn−1番目の決定ま
でに更新されたソースモデル及び宛先モデルによ
つて対称的に実行される適応処理の一部であるの
で、転送されるデータのタイプに拘束されること
なく最適なコーデイングが達成される。 この発明に基づき転送されるすべての情報は、
転送のために圧縮される。この際、何らかの確率
情報を送るというオーバーヘツドを必要としな
い。何となれば、予測される確率は、適応技術を
用いることにより、ソースと宛先とで対称的に計
算されるからである。 速度上の理由により、ある環境においては確率
情報の更新を遅らせることが有利である。この遅
延は続けて何度も起こる事象の処理に有用であ
る。そして、カウンタを更新することは確率を更
新することよりも何倍も安価で済むので、コーダ
ーがより高速で作動することになる。 圧縮された全データストリームの長さは、16ビ
ツト精度で作動するような比較的小型のデータプ
ロセツサにおいてすら、エントロピー予測に近づ
く。 〔従来技術〕 従来、データ圧縮に関しては数多くの知識が開
示されている。それは、有史以前のコード化され
たうなり声に始まり、単一ドツトのモールスコー
ドを経て現代のデータ伝達技術における、精密化
された予測に基づく走行長(run−length)コー
ドに至るものである。例えば英語におけるモール
スコードなどのように、データストリームの統計
が周知である場合に、良好にはたらく実際的なシ
ステムを含む、データ圧縮の重要な知識ベースが
存在する。 あるモデルに従うデータ圧縮及び圧縮解除のシ
ステムは周知である。このモデルは現在のデータ
グループに対する予測モードを規定する。そし
て、予測による非常に大きなデータ圧縮を行うこ
とができる。例えば、メツセージの第1ビツト
を、標準コードで継続すべきかあるいは暗号に変
換すべきかという承認された問い合わせに対する
応答とすることができる。そのような環境におい
ては単一のビツトに含まれる情報量は膨大であ
る。また、類似データの継続が生じる確率に基づ
く複雑な予想モデルも周知である。例えば、影像
においては、白スペースの予測された継続の一致
及びその一致回数を定めることにより白スペース
の広い一様な領域をわずか数ビツトで識別でき
る。しかし、白スペースが黒スペースと出会う端
部を検知するとすぐに、起こり得るべき情況を予
測するための多数のビツトと、個別の予測を受け
入れるための多数のビツトが必要となる。この予
測モードではソースと宛先とで一致が必要であ
り、それにより圧縮されたソースデータが宛先で
正常に圧縮解除されることが可能となる。 ソースと宛先とでのコード選択モデルが正しく
一致している限り、ソースでのデータ圧縮と宛先
でのデータ圧縮解除を継続することができる。例
えばモールスコードのソースとモールスコードの
宛先ではドツトが文字“e”である点で一致して
いる。しかし、多様な特性を有する大量のデータ
に対しては、コード選択を不変にしておくことは
最適ではない。むしろ、今までの経過の知識に基
づいて次のデータグループを予測し時々刻々とコ
ードを変更することが、コード選択を最適化する
上できわめて有用である。そのようなコード選択
は転送されるデータグループ毎に動的に変更され
るが、しかし、頻繁にコード選択を変更するため
には、ソースがコードを変更しつつあることを宛
先に知らせる必要があることから、相当に多量の
データ転送を行う必要がある。例えば、いくつか
の予測コードでは、予測精度(予測された値から
選択するために必要なビツト数)が周期的に転送
される。 IEEEトランスインフオセオリ(Trans Info
Theory)IT−25、No.6、672(1979)に掲載の、
F.ルビン(F.Rubin)の論文には固定精度レジス
タを用いた算術ストリームコーデイング処理が記
載されている。この論文に記載の構成によれば、
有限精度レジスタ中の複数の重要ビツトが一度に
1ビツトずつ調整される。これによれば最大精度
を保つことができるけれども、コンピユータ中で
時間を浪費してしまう。 〔発明が解決しようとする問題点〕 この発明の目的は、データストリーム中のデー
タの動的な経過に対して圧縮及び拡張アルゴリズ
ムを継続的に適用することにより最適なデータ圧
縮を行うとともに、この継続的に適用された圧縮
及び拡張アルゴリズムを対称的な適応圧縮または
適応拡張により実行することにある。 この発明のさらに固有の目的は、予測計算とい
うオーバーヘツドを伴うことなく圧縮データを転
送することにより、時間または距離に亘る転送デ
ータを圧縮し、または圧縮解除することにある。 〔問題点を解決するための手段〕 この発明によれば、ソースと宛先とで対称的
に、適応的に且つ同時的に予測計算が行なわれ
る。この結果として、データグループn−1まで
で正確な圧縮モデルの更新に基づき、転送された
すべての情報が圧縮される。 この発明の1つの特徴は、(例えば文字の余白
における連続する白スペースのような)予測の均
一性により予測モードの干渉を行うことが許容さ
れ、動的なベース上で実際のデータ転送を要求す
るよりもむしろ、圧縮の大幅な増加により反復カ
ウントとして転送されるようなデータ列の間は予
測情報を別個に処理することにある。 この発明の他の特徴は、予測列を(2を乗じる
か2で割るかして)シフトすることにより簡単に
処理することにある。この簡単な処理により、時
間のかかる掛け算や、さらに一層時間のかかる割
り算を行わなくともよくなる。 この発明の利点は、エントロピーの限界に達す
るような比較的小さいデータプロセツサに対して
も、データ圧縮能力を与えることができることに
ある。このことにより、膨大な量のデータを、か
なりのレベルの精度で回復できるように転送する
ことができる。また、それよりも少ない量のデー
タについては完壁な精度で転送することができ
る。 〔実施例〕 この発明は、モード変更ビツトのオーバーヘツ
ドが比較的小さいようなシステムに特に適用され
る。 データソースとデータの宛先での対称的なモデ
ル予測発生装置は同一のデータストリーム、すな
わちデータグループ(1…n−1,n)のうち1
つの列上で同時に作動する。その際に転送データ
はデータグループ1…n−1に適応的に最適化さ
れた確率に基づき圧縮される。現在のデータグル
ープnはソースから宛先へ転送を行うために圧縮
されるのである。データグループの同一の列(1
…n−1,n)はソースと宛先とに同時に与えら
れる(宛先ではデータグループが圧縮されてい
る)。ソースと宛先はともに、それらのモデルに
基づき、与えられた列に対して最適化された確率
モードに対称的に適合する。このときモード変更
ビツトを転送するというオーバーヘツドは必要で
ない。実際のモード変更はソースと宛先とで個別
に計算されたモードの定義により定められる。こ
の、個別の且つ対称的な適応モード計算能力にお
ける投資は、データ転送の膨大なコスト、殊にメ
ガバイトを要するような影像データについて考え
あわせたとき、その大きなデータ圧縮能力の供与
ゆえに十分利得の大きい投資であると言うことが
できる。また、転送能力が速度または容量におい
て制限されているような状況においては転送コス
トが財務的なコストを上廻ることもあろう。しか
しながら、この分散した対称的な適応モード計算
能力に投資することにより、従来転送システムの
能力を超えていたようなある種のデータ転送が可
能となるのである。 この発明は、例えばIBMS/1またはPC、あ
るいはそれらの機能的に同一な16ビツト(2バイ
ト)の並列データ上で作動するような小型機上で
実行されるように設計された実用的なコーデイン
グ及びデコーデイングアルゴリズムとして実施さ
れる。そして前述した関連文献のものとは異な
り、コードストリームビツトのシフトは一度に1
個ずつ行なわれるのではなくて、算術処理の1バ
イトに等しい8ビツト単位として行なわれる。こ
のことによりソフトウエア中できわめて高速の実
行が可能となる。また、有限精度算術処理から生
じてくるキヤリー及びオーバフロー処理の問題は
バイトがシフトアウトしたときのみ必要となるに
すぎない。さらに確率計算の詳細が含まれてい
る。というのは、それらのフオーマツトがコーダ
ー及びデコーダーの統合的な部分であり、それゆ
えに注意深く処理されなくてはならないからであ
る。このアルゴリズムはグレースケールデータ圧
縮に有用である。このアルゴリズムはまた遠隔会
議システムにも有用である。この有用性とはすな
わち、データ圧縮がなされないかあるいは従来の
技術を用いてデータ圧縮したような場合にプロセ
ツサやコミユニケーシヨンシステムの容量を飽和
させてしまうようなデータの転送能力を高めるこ
とにある。 ここではコーデイングスキームは16ビツト精度
で記述されている。また、32ビツト精度への拡張
も示されている。 そのアルゴリズムは第1〜13図中に記載され
ている。第1図は圧縮及び圧縮解除システムの機
能的なブロツク図である。第1図において、入力
DATAINはユーザーによつて供与されたモデル
に基づく状態発生装置1によつて(BITであらわ
される)2進決定の列に変換される。個別の2進
決定に対して状態発生装置1はまた、適用確率発
生装置2とコーダー3とに固有の状態信号を供給
する。適応確率発生装置2は、状態信号がもつ状
態データを、BITがゼロになる確率Pをもとめる
ために使用する。一方、コーダーはBITの値と状
態信号の情報を用いて、圧縮データストリームを
発生する。例えば第1図ではこのデータストリー
ムは8ビツト単位で送出される。尚、概念的には
そのビツト単位はコーデイング動作の精度とコン
パチブルな任意のサイズであつてもよい。しか
し、16ビツトマシン上で実現されるコーデイング
システムには特に8ビツトが好適である。同様
に、32ビツトマシンでは16ビツト単位の圧縮デー
タが適当である。 圧縮されたデータストリームはもとのデータよ
りも低コストで記憶または伝達されるように最適
に符号化される。DATAOUT側には上記状態発
生装置1及び適応確率発生装置2に対応しそれら
と等しい構成をもつ状態発生装置7及び適応確率
発生装置6と、上記コーダーとは対称的なデコー
ダー5が設けられている。8ビツトの単位(ある
いはコーダー3で使用されたのと同一のデータグ
ループ)でデコーダー5に入力された圧縮データ
から、BITの値が決定され、それはDATAOUT
を発生するために使用される。確率Pが発生され
た後は、Pの値を更新するためにBITの値が使用
される。この更新されたPの値は次回の転送の際
に供給される。2つの適応確率発生装置2,6で
発生された確率は、一つのステツプ中では保持さ
れる。というのは、確率はコーダー3またはデコ
ーダー5に供給される後までは更新が行なわれる
ことはないからである。 コードストリームは、大きさがコード化された
すべてのBITの確率の積であるような数直線上の
区間内にある実数をあらわすものと考えることが
できる。コードストリームの長さはBITの列を個
別に識別するのに十分である。 第2図は単一のBITのコーデイングを図示する
ものである。n番目のBITがコード化される前
に、コードストリームは、それ以前にコード化さ
れた事象を記述する実数F(n−1)を識別する。
F(n−1)は既に実行されたコードストリーム
によつてあらわされる数が存在する区間の下限で
ある。この区間の大きさはそれ以前にコード化さ
れた事象の確率の積であり、R(n−1)と称す
ることにする。n番目のBITをコード化するため
にはR(n−1)の幅が2つの部分に分割される。
その2つの部分の幅は、それぞれn番目のBITが
ゼロである場合と“1”である場合との確率に比
例する。もしBITがゼロであるなら、新しい幅R
(n)はR(n−1)×P(古い幅と、BITがゼロで
ある確率との積)となり、区間の下限は不変であ
る。また、BITが“1”であるなら、新たな区間
F(n)の下限はF(n−1)+R(n−1)×Pに
セツトされ、従つてその下限はBITがゼロである
場合に割あてられた区間よりも上方にあり、新た
な幅R(n)はR(n−1)×(1−P)(古い幅と、
BITが“1”である確率との積)である。 第3図は1つのBITのコーデイング及びデコー
デイングをあらわす図である。尚、この第3図及
び第5,6図では次の変数が使用される: R:許容された幅 F:(第2,3図のみ)−圧縮されたすべてのデ
ータ (他のすべての図)−圧縮されたデータ上
の有限精度の窓 P:BITがゼロである確率 T:SRL(R×P)15の計算結果を保持するた
めの仮変数 F1:SRL F1の計算結果を保持するための仮変
数 コーデイング処理は先ずR×Pの値(BITがゼ
ロである場合の区間の大きさ)を計算し、Tとし
て保持しておくことから始まる。次にBITが判断
され、BITがゼロであれば、保持された値Tが新
しい幅となり、区間の下限は変化しない。また
BITが“1”であれば、区間の下限が保持された
値Tだけ増加されて、幅は保持された値Tの分だ
け減少される(すなわち、R(n)はR(n−1)
−R(n−1)×Pにセツトされるが、それはR
(n−1)×(1−P)に等しい)。 一方デコーデイング処理もR×Pを計算し、そ
れをTとして保持しておくことから始まる。次
に、コード化された値F(それは、コード化され
た実数から現在の幅の下限を引いものである)
が、Tよりも小さいかどうかが判断される。そし
てF<Tであれば、BITコードがゼロになり、幅
RはTで置きかえられる。またFTであれば、
コードストリームによつてあらわされた数はBIT
の値が“1”である区間に収まらなければならな
い。それゆえ幅RはTだけ引かれる。Fの値も放
棄された区間の大きさだけ減少されなくてはなら
ず、こうしてコーダー中で行なわれたのとは逆の
演算が行なわれる。 適応確率発生装置 第4図は第1図中で2個図示した適応確率発生
装置2,6を記述するためのフローチヤートであ
る。適応確率発生装置2,6の機能は状態信号と
BITからBITがゼロである確率を求め、そのあと
BITの値を判断し、その判断した値を用いて以下
の計算の基礎情報(統計)を適応的に更新するこ
とにある。コーダー3中には、状態信号とBITと
が同時に到着する。デコーダー5中では、状態信
号は確率Pを発生するために使用され、このPは
BITをデコードするために使用され、そして次に
BITは統計を更新する際に使用するために適応確
率発生装置に送られる。 適応確率発生装置は状態情報により3つのモー
ドのうちの任意のモードで作動することができ
る。このとき状態信号がゼロであることは、BIT
のゼロ値が発生する回数につき計数値が保たれて
いるような特殊な場合として認識される。その
際、統計は、BITの“1”値が生じるまで更新さ
れない(従つてBITがゼロである確率は変化しな
い)。その時点で実行される更新動作は第7図に
関連してより詳細に説明される。このゼロ状態は
続々と多数回発生する事象を処理するために有用
である。そして、カウンタを更新することは、確
率を更新するために必要な掛算処理よりも安価で
あるので、コーダー3はより高速に作動すること
になる。 別の特殊な場合はBITがゼロである確率が0.5
に固定されている状態である。この状態では、維
持する必要のある統計がないので、何の処理も行
う必要がない。 第3のモードでは、各確率計算の後に更新され
る統計から確率が発生される。このとき統計と確
率Pとを更新するために使用される処理は第8,
9図のフローチヤートに関連して詳細に説明され
る。 コーダー 第5図はコーダー3の動作のフローチヤートで
ある。このユニツトは状態信号と、BITと、BIT
がゼロである確率Pとを入力して、BITのコード
化を行う。第5図において、R<128がどうかが
先ず判断される。もしそうであれば、積R×Pを
正確にコード化するに十分な有効ビツトがないか
もしれない、ということであり、従つてFから圧
縮されたデータストリームへ1単位の出力を移動
させる。この機能を行うためのバイトアウト処理
は、より多くのデータのコーデイングを行なうこ
とができるように幅を拡げる(バイトアウトは第
10図のフローチヤートに関連してより詳細に記
述される)。 次にBITがコード化される。もし状態信号が、
確率Pが0.5に固定されていないことを示すなら、
第3図に示したコーダー3中で記述された計算が
実行される。このとき、積R×Pの最も上位の部
分として仮の値Tが計算される。この値は、もし
BITがゼロであれば新しい幅となる。また、BIT
が“1”であれば、幅RはTだけ減少されて、F
にはTが加えられる。もし状態が、確率が0.5に
固定されていることを示すなら、掛け算処理はシ
フト処理で置きかえられ、新しいRがBITの各値
につき同一となる。このときBITが“1”であれ
ば、FをRだけ増加しさえすればよい。 デコーダー 第6図はデコーダー5の動作を示すフローチヤ
ートである。このユニツトは状態信号と、BITが
ゼロである確率Pとを入力して、BITのデコード
を行う。第6図において、先ずR<128が判断さ
れる。そして、R<128であれば積R×P中には
正確にデコードするために十分な有効ビツトがな
いということだから、圧縮されたデータストリー
ムからデータの一単位を取り出してそれをFに加
える必要がある。この機能を行うバイトイン処理
は、より多くのデータのデコーデイングを行うこ
とができるように、幅を増加させる。(バイトイ
ン処理は第1図のフローチヤートに関連してより
詳細に記述される。) 次にBITがデコードされる。もし状態が、確率
Pが0.5に固定されていないことを示すならば、
第3図のデコーダー5中に記述された計算が行な
われる。仮の値Tは積R×Pの最上位部分として
計算される。このときFの下位ビツトはコーダー
3と対称的であるために計算に用いられてはなら
ない。従つて、下位1ビツトをシフトアウトさせ
た仮の値F1が使用される。次に、BITがゼロが
“1”かを判断するためにF1がTに比較される。
そしてBITがゼロであるならTが新しい幅とな
る。また、BITが“1”であるなら、幅RはTだ
け減少されてFは、1ビツトだけ左方にシフトさ
れたTの値の分だけ減少される。 もし状態が、確率Pが0.5に固定されているこ
とを示すならば、掛け算がシフトによつて置き換
えられ、新しい幅RはBITの各値につき同一とな
る。このときにも仮の値F1が計算されて、BIT
の値を判断するためにそのF1がTと比較される。
そして、もしBITが“1”であれば、もとの区間
の下位部分を放棄するためにFが減少される。 統計の更新処理 第7〜9図は、適応確率発生装置中で統計を更
新するために第4図中で使用されている手続を記
述するフローチヤートである。これらの計算中で
使用されているいくつかの変数についてはこれか
ら説明する。 確率は、現在の状態においてBIT=0が生じた
回数を、現在の状態が生じた全回数で割つた商の
値を計算することにより得られる。しかし、割り
算はコストがかかるので、割り算を行うかわり
に、状態が生じた回数の逆数を与える索引テーブ
ルを用いることで置きかえる。この“逆数”テー
ブルは128ハーフワード(2バイト)エントリか
らなる。その各エントリはX′7FFF′/Mであらわ
され、Mはエントリの数である。もし状態が125
回以上発生するならば、索引テーブルが使用でき
るように状態の発生回数を十分小さい値に保つた
めに統計が再規格化される。索引テーブルの第1
のテーブルエントリはM=1に対応するものであ
り、これは決して使用されることがない。 “逆数”テーブルのエントリ全体は次の表の
とおりである:
【表】
【表】 確率を計算し統計を更新するための他の変数と
しては次のものがある: D:確率Pの計算の際に分母として使用される
全計数値。 N:確率Pの計算の際に分子として使用される
BIT=0の回数。 IP:現在のDの値をあらわす、“逆数”テーブ
ル中の値に対するポインタ。“逆数”テー
ブルはハーフワードテーブルであるから、
Dが“1”だけ増加する毎にIPは2だけ
増加する。 ID:IPによつて指定される2バイトの値。そ
れはX′7FFF′/2XDとあらわされる。 IPST:“逆数”テーブルのアドレス。 IE:“逆数”テーブル中の最後の(D=128)
エントリ。 CT:N及びDにまだ含まれていないBIT=0
の回数。 第7図は、CALCPO処理をあらわすものであ
る。すなわち、CALCPO処理では、BITがゼロ
のときに単一コーデイングステツプに対する統計
が更新される。現在の状態の発生回数はIPを
“2”だけ増加させることによつて、先ず“1”
だけ増加される。次に、“逆数”テーブルの最終
点に達したかどうかが判断される。そして、もし
そうであれば統計を再規格化する必要がある。こ
の再規格化は、テーブルポインタIPを“逆数”
テーブルの中点にセツトし、BIT=0の発生回数
(N)を右に“1”だけシフトさせることにより
行なわれる。この再規格化の結果Nの値が63にな
つたならば、増加したNの値はN=Dをみたすこ
とになろう、するとBITがゼロである確率は
“1”と計算されてしまう。そこで、これを避け
るため、Dを増加させるべくIPに“2”だけ加
算する。これで再規格化処理は終了となる。そし
て、新しい確率Pを計算するためには、BIP=0
の一回の発生のたびにNを“1”だけ加算する。
こうして、新しい確率PはN×ID(N/Dに等し
い)として計算される。 第8図は、BIT=1のときに単一コーデイング
ステツプに対する統計を更新するための
CALCP1処理を記述するフローチヤートである。
現在の状態の発生回数はIPを“2”だけ増加さ
せることによつて、先ず“1”だけ増加される。
次に、“逆数”テーブルの最終点に達したかどう
かが判断される。そして、もしそうであれば統計
を再規格化する必要がある。この再規格化は、テ
ーブルポインタIPを“逆数”テーブルの中点に
セツトし、BIT=0の発生回数(N)を右に
“1”だけシフトさせることにより行なわれる。
この再規格化の結果Nの値が0になつたならば、
BIT=0の確率はゼロと計算されてしまう。そこ
で、これを避けるため、NとDとをともに“1”
だけ増加させる(Dに関しては、IPを2だけ増
加させることによつて行なわれる)。これで再規
格化処理は終了となる。こうして、新しい確率P
はN×ID(N/Dに等しい)として計算される。 第9図は、BIT=1の場合の多重コーデイング
ステツプに対する統計を更新するための
CALCPCT処理を記述するフローチヤートであ
る。先ず、現在の状態の発生回数がCT+1だけ
増加される。このCT+1は、コード化されるべ
きBIT=1の場合のゼロビツトの数に“1”を加
えたものである。現在の状態におけるBIT=0の
発生回数はCTだけ増加され、次にCTはゼロにリ
セツトされる。次に、再規格化が必要かどうかが
判断される。すなわちDが125よりも大きければ、
DとNとがともに右に1ビツトだけシフトされ
る。この処理は、Dが最早125よりも大きくなく
なるまで繰り返される。次に、NとDとの商から
計算される確率Pがゼロでも“1”でもないこと
を保証することが必要である。もしDとNとが等
しければ、P=1となるのを避けるためDが1だ
け増加される。そうではなくてNがゼロであれ
ば、P=0と計算されてしまうことを避けるため
にDとNとを“1”だけ増加させる。これで再規
格化処理は終了となる。次にIPが、“逆数”テー
ブルの開始アドレス上の2×Dバイトにセツトさ
れ、新しい確率PはN×ID(N/Dに等しい)と
して計算される。 バイトアウト及びバイトイン 第10図と第11図とは、圧縮されたデータス
トリームを処理するための手続のフローチヤート
である。この手続では、次に示す変数が使用され
る: BP:コーデイングの間に記憶され、あるいは
デコーデイングの間に使用される圧縮された
データの最終バイトへのポインタ B: BPによつて指定されたバイト BPST:圧縮データバツフア中の最初のバイト
へのポインタ BE:圧縮データバツフア中の最終バイトへの
ポインタ LEN:圧縮データバツフアのバイト中の長さ 注) BE=BPST+LEN−1 第10図は、第5図に示したバイトアウト手続
を記述するフローチヤートである。この手続は、
Fから圧縮されたデータストリームに1単位のデ
ータをつけ加えて、FとRとを適宜調整するため
にコールされる。 第10図の手続の第1のステツプはFの高位ビ
ツトにキヤリーが生じているかどうか(すなわ
ち、16ビツト精度ではF>X′7FFF′であるかでう
か)を判断することである。そして、もしそうで
あれば、圧縮されたデータストリーム中に以前に
配置されたデータ単位がそのキヤリーに対して1
だけ増加される。また、そのバイトがX′FF′まで
増加されていれば、次に示す追加的な処理が必要
である。 キヤリービツト(もし存在すれば)が用意され
た後に、データの次のバイトに対する記憶位置に
アドレスするためにBPが増加される。もし、圧
縮データバツフアの最終位置に達したならば、そ
のバツフアは“ラインアウト”と表示した手続に
よつて適宜処理(伝達、記憶など)され、BPは
そのバツフアの開始地点にリセツトされ、これに
よりそのバツフアにはさらに多くのデータを収め
ることが可能となる。次に、15ビツトの値Fの上
位8ビツトが出力用バツフアに格納されるととも
に、その記憶されたバイトが値X′FF′をもつなら
ば追加的な処理が行なわれる。そして、そのキヤ
リービツトと先程記憶されたビツトとは、Fから
はマスクされ、FとRの値は、より多くのデータ
をコード化すべくスペースをあけておくためにそ
れぞれ8ビツトだけ左にシフトされる。 圧縮されたデータストリーム中のいかなるバイ
トもFの最上位ビツト中へのキヤリーによつて
X′FF′からX′OO′へ“増分”されないことを保証
することが必要である。というのは、増分された
バイトからのキヤリーは伝播することができない
からである。このことを防止するために、記憶さ
れた各バイトについてはその値がX′FF′であるか
どうかが判断される。そして、もしそうならその
圧縮されたデータストリーム中には値X′OO′をも
つ追加的なバイトが配置される。このバイトは、
必要ならば安全に増分することができる。圧縮さ
れたデータストリームをそのゼロバイト中に配置
するために、そのバイトが記憶されるべきバイト
のスペースにアドレスするべくBPが増分される。
もし圧縮データバツフアの最終点に達したなら
ば、その完了したバツフアを送出するためにライ
ンアウトが使用され、BPがバツフアの開始点に
リセツトされる。次にBPで示される箇所にゼロ
バイトが記憶される。 第11図は第6図中に示したバイトイン手続の
フローチヤートである。この手続は、データの一
単位を圧縮されたデータストリームからFへ移動
させ、FとRとを適宜調整するためにコールされ
る。 第11図において先ず、圧縮されたデータスト
リーム中の次のバイトが、キヤリー用のスペース
を与えるようにX′FF′バイトの次に挿入されたも
のであるかどうかが判断される。そして、もしそ
うであれば(すなわち、もしその前に読み取られ
たバイトBがX′FF′であれば)、圧縮されたデー
タストリーム中の新しいバイトにアドレスするた
めにBPが“1”だけ増分される。もし圧縮デー
タバツフアの最終位置に達したなら、より多くの
圧縮データを得るためにラインイン手続が使用さ
れ、BPが補充されたバツフアの開始点にリセツ
トされる。次にキヤリーがFに加えられる。 キヤリービツト(もし存在するなら)が加入さ
れた後に、圧縮されたデータの次のバイトにアド
レスするためにBPが増分される。もし圧縮デー
タバツフアの最終位置に達したなら、より多くの
データを得るためにラインインが使用され、BP
がバツフアの開始点にリセツトされる。次にFが
左に8ビツトシフトされ、圧縮されたデータの新
しいバイトがFの下位8ビツトとして挿入され
る。Rもまた8ビツトだけ左にシフトされる。 次に示す表は、コーダー3及びデコーダー5
に必要な初期化について示すものである。 表 初期化状態=0統計 CT←0 N ←7 D ←N+1 IP←IPST+D+D P ←N×ID 初期化状態≠0統計 N ←1 P ←X′3FFF′ IP←IPST+4 初期化変数 IPST←“逆数”テーブルのアドレス IE←IPST+254 BP←BPST BP←BP−1 BE←BP+LEN コーダーのみ F ←0 R ←X′7FFF′ デコーダーのみ バイトイン バイトイン R ←X′7FFF′ 状態0統計に対しては、BIT=0に遭遇した回
数がゼロにセツトされ、BIT=0である確率Pが
7/8(N=7,D=8)に初期化され、Dに対
応してIPがセツトされる。 確率が0.5に固定されていない状態ノンゼロ統
計に対しては、BIT=0である確率が初期状態で
1/2(N=1,IP=IPST+4、効率的にはD
=2)にセツトされる。 セツトアツプする必要のあるその他の変数には
次のものがある: )“逆数”テーブルの開始点と終点のアドレ
ス、)圧縮データバツフアの開始点と終点のア
ドレス、)最初の読み取りバイトより前のバイ
トを指定するBPの値。コーダー3の中では、最
初のバイトにはキヤリーが生じない。従つて、こ
のデータは変更を受けない。デコーダーの中で
は、実のバツフアの前のバイトが何かのはずみに
X′FF′となつてしまわないように注意がなされな
ければならない。コーダーにおいては、Fがゼロ
にセツトされる。デコーダー5においては、初期
値の状態のF中に2バイトをロードするために、
バイトインが2回コールされる。どちらの場合に
も幅RはX′7FFF′に初期化され、それは“1”を
あらわす。 コーダー中の処理 第12図は、圧縮されたデータストリームに最
終バイトを追加するために、コーダー3中で使用
される手続をあらわすものである。この手続はデ
コーダー5が十分なデータを持つことを保証する
ために有用である。第12図において先ずSRL
R1としてR/2が計算され、Fを現在の幅の中
央に配置するためにFがそのR/2だけ増分され
る。そして、バイトアウト(第10図)が行なわ
れる。次に、次のバイトのためのスペースにアド
レスすべくBPが“1”だけ増分される。次にも
し圧縮データバツフアの最終点に達すると、その
バツフアの処理を行うためにラインアウトがコー
ルされ、BPがリセツトされる。次に値X′FE′を
もつバイトが出力バツフアに格納される。(この
とき、X′FE′の値は、X′FF′以外ならどのような
値でも任意に選ぶことができる)。次にBPが再び
“1”だけ増分され、圧縮データバツフアの最終
アドレスと比較される。またラインアウトがコー
ルされ、必要ならばBPがリセツトされる。次に
値X′FE′をもつ別のバイトが圧縮されたデータス
トリーム中に配置される。この圧縮されたデータ
ストリームはここで完成され、最終のバツフアを
処理するためにラインアウトがコールされる。 次に示す表は、初期化調整のいくつかの値を
示す簡単な表である。尚、この初期化調整は16ビ
ツト精度のかわりに32ビツト精度で行うようにし
てもよい。
〔発明の効果〕
以上のように、この発明によれば、データのソ
ースと宛先とで対称的に、且つ同時的に予測計算
を行うようにしたので、確率データを送る必要が
なくなり、データの圧縮、転送、圧縮解除に要す
る時間を短縮できる、という効果がある。
【図面の簡単な説明】
第1図は圧縮及び圧縮解除システムの機能的な
ブロツク図、第2図は本発明に係るデータ圧縮及
び圧縮解除システムの理論を説明するための図、
第3図は1つのBITをコーデイング及びコーデイ
ングするための手続のフローチヤート、第4図は
適応確率発生装置における手続をあらわすフロー
チヤート、第5図はコーダーにおける手続をあら
わすフローチヤート、第6図はデコーダーにおけ
る手続をあらわすフロチヤート、第7図はBITが
ゼロのときに単一コーデイングステツプに対して
統計の更新処理を行うためのフローチヤート、第
8図はBITが“1”のときに単一コーデイングス
テツプに対して統計の更新処理を行うためのフロ
ーチヤート、第9図はBITが“1”のときは多重
コーデイングステツプに対して統計の更新処理を
行うためのフローチヤート、第10図はバイトア
ウト手続のフローチヤート、第11図はバイトイ
ン手続のフロチヤート、第12図は圧縮されたデ
ータストリームに最終バイトを追加するために、
コーダー中で使用される手続のフローチヤートで
ある。1,2,3…データ圧縮手段、5,6,7
…データ圧縮解除手段。

Claims (1)

  1. 【特許請求の範囲】 1 入力データの発生確率を計算し、該確率に適
    合する圧縮コードを用いて入力データを圧縮して
    転送するようにしたデータ圧縮・転送・圧縮解除
    装置であつて、 (a) データ入力手段と、 (b) 上記データ入力手段に接続され、所定の適応
    予測モデルに基づき、n番目(nは、正の整
    数)のデータが特定のレベルにあるか否かに応
    じて1または0の値をとるn番目の2値判断ビ
    ツト信号を発生するとともに、n−1番目以前
    の2値判断ビツト信号発生の履歴を表す状態信
    号を発生するための第1の状態発生手段と、 (c) 上記第1の状態発生手段に接続され、上記状
    態信号に基づき、n番目の2値判断ビツト信号
    が1(または0)である確率を表すn番目の確
    率信号を与えるための第1の適応確率発生手段
    と、 (d) 上記第1の状態発生手段と上記第1の適応確
    率発生手段に接続され、上記n番目の2値判断
    ビツト信号と、上記状態信号と、上記n番目の
    確率信号に基づき、上記データ入力手段に入来
    するデータストリームを圧縮するためのデコー
    ダー手段と、 (e) 上記デコーダー手段に接続され、圧縮された
    データ信号を転送するための転送手段と、 (f) 上記転送手段に接続され、転送された上記デ
    ータ信号に応答して、圧縮解除されたデータ信
    号を発生するとともにn番目の2値判断ビツト
    信号を発生するためのデコーダー手段と、 (g) 上記入力手段におけるデータストリームに対
    応する圧縮解除されたデータストリームを与え
    るための出力手段と、 (h) 上記出力手段と上記デコーダー手段に接続さ
    れ、上記第1の状態発生手段と同一の適応予測
    モデルに基づきn番目の転送先状態信号を発生
    するための第2の状態発生手段と、 (i) 上記デコーダー手段と、上記第2の状態発生
    手段に接続され、上記n番目の転送先状態信号
    と上記デコーダー手段により与えられる上記n
    番目の2値判断ビツト信号に基づき、n番目の
    2値判断ビツト信号が1(または0)である確
    率を表すn番目の転送先確率信号を与えるため
    の第2の適応確率発生手段とを具備し、 (j) 上記デコーダ手段の圧縮解除されたデータ信
    号の発生は、上記転送先状態信号と上記n番目
    の転送先確率信号に応答してなされ、 (k) 上記第2の状態発生手段は、上記デコーダー
    手段のデータ出力に応答して上記出力手段に出
    力データを与えるようにしたことを特徴とす
    る、 データ圧縮・転送・圧縮解除装置。
JP59250667A 1984-03-15 1984-11-29 データ圧縮・転送・圧縮解除装置 Granted JPS60196014A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US589981 1984-03-15
US06/589,981 US4633490A (en) 1984-03-15 1984-03-15 Symmetrical optimized adaptive data compression/transfer/decompression system

Publications (2)

Publication Number Publication Date
JPS60196014A JPS60196014A (ja) 1985-10-04
JPH0117295B2 true JPH0117295B2 (ja) 1989-03-29

Family

ID=24360395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59250667A Granted JPS60196014A (ja) 1984-03-15 1984-11-29 データ圧縮・転送・圧縮解除装置

Country Status (5)

Country Link
US (1) US4633490A (ja)
EP (1) EP0154860B1 (ja)
JP (1) JPS60196014A (ja)
CA (1) CA1222059A (ja)
DE (1) DE3581221D1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099440A (en) * 1985-12-04 1992-03-24 International Business Machines Corporation Probability adaptation for arithmetic coders
EP0224753B1 (en) * 1985-12-04 1994-01-26 International Business Machines Corporation Probability adaptation for arithmetic coders
US4933883A (en) * 1985-12-04 1990-06-12 International Business Machines Corporation Probability adaptation for arithmetic coders
US4791403A (en) * 1985-12-04 1988-12-13 International Business Machines Corporation Log encoder/decorder system
DE3663875D1 (en) * 1986-03-08 1989-07-13 Ant Nachrichtentech Motion compensating field interpolation method using a hierarchically structured displacement estimator
JPH071179B2 (ja) * 1986-08-29 1995-01-11 グラフテック株式会社 記録装置
US4905297A (en) * 1986-09-15 1990-02-27 International Business Machines Corporation Arithmetic coding encoder and decoder system
US4935882A (en) * 1986-09-15 1990-06-19 International Business Machines Corporation Probability adaptation for arithmetic coders
CA1291820C (en) * 1986-09-15 1991-11-05 William B. Pennebaker Probability estimation based on decision history
US4891643A (en) * 1986-09-15 1990-01-02 International Business Machines Corporation Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US4725885A (en) * 1986-12-22 1988-02-16 International Business Machines Corporation Adaptive graylevel image compression system
US4799242A (en) * 1987-08-24 1989-01-17 International Business Machines Corporation Multi-mode dynamic code assignment for data compression
US5020058A (en) * 1989-01-23 1991-05-28 Stratacom, Inc. Packet voice/data communication system having protocol independent repetitive packet suppression
US5025258A (en) * 1989-06-01 1991-06-18 At&T Bell Laboratories Adaptive probability estimator for entropy encoding/decoding
US5023611A (en) * 1989-07-28 1991-06-11 At&T Bell Laboratories Entropy encoder/decoder including a context extractor
US5276898A (en) * 1990-07-26 1994-01-04 International Business Machines Corporation System for selectively compressing data frames based upon a current processor work load identifying whether the processor is too busy to perform the compression
US5333212A (en) * 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
CA2077271C (en) * 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data
US5396228A (en) * 1992-01-16 1995-03-07 Mobile Telecommunications Technologies Methods and apparatus for compressing and decompressing paging data
US5357250A (en) * 1992-11-20 1994-10-18 International Business Machines Corporation Adaptive computation of symbol probabilities in n-ary strings
JPH06202694A (ja) * 1992-12-25 1994-07-22 Takayama:Kk 音声圧縮方法
JPH06197084A (ja) * 1992-12-25 1994-07-15 Takayama:Kk 音声転送方法
US5533051A (en) * 1993-03-12 1996-07-02 The James Group Method for data compression
CZ286929B6 (en) * 1993-08-05 2000-08-16 Motorola Inc Telefax communication process within a communication system with selective calling and communication system for making the same
US5563595A (en) * 1993-12-23 1996-10-08 International Business Machines Corporation Method and apparatus for compressing data
US5502439A (en) * 1994-05-16 1996-03-26 The United States Of America As Represented By The United States Department Of Energy Method for compression of binary data
KR960015195A (ko) * 1994-10-31 1996-05-22 배순훈 트리 구조 이원 연산 코딩 장치
GB9607591D0 (en) * 1996-04-12 1996-06-12 Snell & Wilcox Ltd Playback and monitoring of compressed bitstreams
DE19630127C1 (de) * 1996-07-25 1998-01-08 Connect Plus Ingenieurgesellsc Verfahren zur zeitoptimierten Datenübertragung zwischen mindestens einem Sender und mindestens einem Empfänger
EP0820149A3 (de) * 1996-07-16 2000-10-04 Connect Plus Ingenieurgesellschaft für Datentechnik mbH Verfahren zur zeitoptimierten Datenübertragung zwischen mindestens einem Sender und mindestens einem Empfänger
US6055338A (en) * 1996-08-22 2000-04-25 Sumitomo Metal Industries Limited Bi-level adaptive coding using a dual port memory and a context comparator
US6058216A (en) * 1996-09-03 2000-05-02 Sumitomo Metal Industries Limited Apparatus for encoding image data
ATE371298T1 (de) * 1996-11-07 2007-09-15 Koninkl Philips Electronics Nv Übertragung eines bitstromsignals
US5859604A (en) * 1997-01-14 1999-01-12 International Business Machines Corporation Merged VLSI implementation of hardware optimized Q-Coder and software optimized QM-Coder
US6704866B1 (en) 1997-07-11 2004-03-09 Cisco Technology, Inc. Compression and encryption protocol for controlling data flow in a network
GB2333656B (en) * 1998-01-22 2002-08-14 British Broadcasting Corp Compressed signals
US6401188B1 (en) 1998-02-27 2002-06-04 Cisco Technology, Inc. Method for selection on a pattern sequence
JP3391251B2 (ja) 1998-03-25 2003-03-31 三菱電機株式会社 適応確率推定方法及び適応符号化方法並びに適応復号方法
US6222468B1 (en) * 1998-06-04 2001-04-24 Ricoh Company, Ltd. Adaptive coding with adaptive speed
CN1249473A (zh) 1998-09-30 2000-04-05 朗迅科技公司 无乘法的算术编码
US6341346B1 (en) 1999-02-05 2002-01-22 Cisco Technology, Inc. Method for comparison between a pattern sequence and a variable length key
US6725218B1 (en) 2000-04-28 2004-04-20 Cisco Technology, Inc. Computerized database system and method
US6714145B1 (en) 2002-09-26 2004-03-30 Richard Marques Method and apparatus for integer-based encoding and decoding of bits
US8176155B2 (en) * 2003-11-26 2012-05-08 Riip, Inc. Remote network management system
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
US7265691B2 (en) * 2005-06-23 2007-09-04 1Stworks Corporation Modeling for enumerative encoding
US8779950B2 (en) 2012-03-05 2014-07-15 Dcba, Llc Command encoded data compression
US9543980B2 (en) 2014-10-10 2017-01-10 Massachusettes Institute Of Technology Systems and methods for model-free compression and model-based decompression
US10757412B2 (en) * 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
CN111585915B (zh) * 2020-03-30 2023-04-07 西安电子科技大学 长、短流量均衡传输方法、系统、存储介质、云服务器
US11556827B2 (en) * 2020-05-15 2023-01-17 International Business Machines Corporation Transferring large datasets by using data generalization

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5286709A (en) * 1976-01-13 1977-07-19 Matsushita Electric Ind Co Ltd Companding estimate code decoding circuit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US928003A (en) * 1908-08-01 1909-07-13 Parley S Peterson Operating attachment for screw-drivers, &c.
US3824590A (en) * 1973-03-26 1974-07-16 Bell Telephone Labor Inc Adaptive interpolating video encoder
UST928003I4 (en) 1973-05-30 1974-11-05 Sequential learning predictor for an image compression system
US4093962A (en) * 1976-12-01 1978-06-06 Nippon Electric Co., Ltd. Adaptive predictive encoder
JPS5658368A (en) * 1979-10-17 1981-05-21 Matsushita Electric Ind Co Ltd Band compressing method
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
DE3278850D1 (en) * 1981-11-09 1988-09-01 Ibm Data translation apparatus translating between raw and compression encoded data forms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5286709A (en) * 1976-01-13 1977-07-19 Matsushita Electric Ind Co Ltd Companding estimate code decoding circuit

Also Published As

Publication number Publication date
CA1222059A (en) 1987-05-19
EP0154860A2 (en) 1985-09-18
EP0154860A3 (en) 1989-03-22
DE3581221D1 (de) 1991-02-14
EP0154860B1 (en) 1991-01-09
US4633490A (en) 1986-12-30
JPS60196014A (ja) 1985-10-04

Similar Documents

Publication Publication Date Title
JPH0117295B2 (ja)
JP2549254B2 (ja) 有限アルファベットの任意記号の発生確率予測方法及び装置
US9847913B2 (en) System and method for gathering information
US5652581A (en) Distributed coding and prediction by use of contexts
EP1832000B1 (en) Device and data method for selective compression and decompression and data format for compressed data
JPH02202267A (ja) 符号化装置及び符号化方法
US7688233B2 (en) Compression for deflate algorithm
US5832037A (en) Method of compressing and expanding data
JPH0834434B2 (ja) 符号化装置及び符号化方法
US4799242A (en) Multi-mode dynamic code assignment for data compression
US5555323A (en) System for bi-level symbol coding/decoding with saved storage and method for same
JPWO2011108089A1 (ja) データ圧縮装置及びデータ圧縮方法及びプログラム
CN110175185B (zh) 一种基于时序数据分布特征的自适应无损压缩方法
CN1656688B (zh) 在压缩之前处理数字数据
JPS6352812B2 (ja)
JP3018990B2 (ja) 算術符号化装置
US20220188077A1 (en) Arithmetic processing device, arithmetic processing method, and storage medium
JP3384813B2 (ja) データ圧縮方式
JPH07298062A (ja) データ圧縮・復号方式
JPH04280517A (ja) データ圧縮および復元方式
JP2000330470A (ja) べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
JPH07118661B2 (ja) デ−タ圧縮復号化装置
KR100197075B1 (ko) 압축 데이타 복원 장치
JPH02143679A (ja) 画像符号化方法
JPH05341954A (ja) データ圧縮方式

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term