JPS6376524A - デ−タ圧縮システム - Google Patents

デ−タ圧縮システム

Info

Publication number
JPS6376524A
JPS6376524A JP62202006A JP20200687A JPS6376524A JP S6376524 A JPS6376524 A JP S6376524A JP 62202006 A JP62202006 A JP 62202006A JP 20200687 A JP20200687 A JP 20200687A JP S6376524 A JPS6376524 A JP S6376524A
Authority
JP
Japan
Prior art keywords
bits
encoder
code
byte
code stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP62202006A
Other languages
English (en)
Other versions
JPH0258812B2 (ja
Inventor
ジョン・ラヴァネ・ミッチェル
ウイリアム・ボーン・ペナバーカー
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 JPS6376524A publication Critical patent/JPS6376524A/ja
Publication of JPH0258812B2 publication Critical patent/JPH0258812B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、算術符号化法によるデータの圧縮/圧縮解除
に関する。
B、従来技術およびその問題点 データの圧縮、圧縮解除の1つの方法として、算術符号
化法が知られている。算術符号化法の一般的な説明は、
G、 Langdon著の論文11AnIntrodu
ction to Ar1thn+etic Codi
ng” 、 IBM J。
Res、 Develop、 Vol 28、Ha 2
、pp、135−149 (1984年3月)に述べら
れており、本明細書でもこれを引用する。
上記論文に述べられているように、算術符号化法によれ
ば、連続的に符号化された判断(decision)が
数直線に沿った符号点に写像される。
算術符号化法は、2以上の結果(outcome)を持
つ可能性のある判断にも適用可能である。なお、このよ
うな結果を事象(event)ともいう。ある判断につ
いての結果のそれぞれには、確率が関連する。
各結果を「シンボル」と対応させることによって、各結
果がデータの形で表現される。数直線はセグメントに分
割される区間を表わす、各セグメントは符号器へ各々の
シンボルが入力されることに対応する。4つの結果の可
能性がある判断では、4つのセグメント、例えばセグメ
ントa、b、c、dが存在する。判断が“d”事象に対
応するならば、“′d”セグメントが現在区間として選
択される。次にセグメントa%b、c、dに分割される
のはこの現在区間である。このように、数直線上で導か
れる区間は、系列的に次々に小さくなり。
元の区間に包含されてしまうものである。重要なことだ
が、各区間は一連の事象に一意的に対応して生成される
。与えられた判断事象のストリングに対応して数直線上
のある特定の区間を指すコード・ストリームを生成する
ことが、算術符号化法に基づく「符号化」である。
特定の区間、そして各区間のセグメントの順序付けおよ
び各々の長さに関する情報に基づいて、関連する判断ス
トリングを復元することができる。
このプロセスを算術符号化法に基づく「復号」と呼ぶ。
2進算術符号化は、各判断の結果、2つの排他的な事象
のうちの1つが選ばれるという特殊なケースである。2
進符号化環境では、2つの事象のうちの一方が確率Qを
持つ劣勢シンボル(lessprobuble sym
bol、 LPS)と関係し、他方が確率Pを持つ優劣
シンボル(more pvobable symbol
MPS)と関係する。2進算術符号化では、数直線に沿
った区間が2つのセグメントに分けられる。そして、そ
のうちの1方がLPS事象(または結果)の生起に対応
し、他方がMPS事象(または結果)の生起に対応する
。各セグメントの長さが2つの事象の確率P、Qをそれ
ぞれ反映していることが好ましい。
2進算術符号化用の符号器では、初期区間として数直線
の0と1の間の区間が割り当てられる。
上記Langdonの論文で述べられているハードウェ
アに適したスキームでは、LPS確率が該区間のうちの
数値の小さい方の側の第1のセグメントに対応する。そ
して、MPS確率が該区間のうちの数値の大きい方の側
の第2のセグメントに対応する。最初符号点は該区間の
下端(すなわち、0)を指すようにセットされるので、
これに対応してコード・ストリームも000・・・・に
初期化されることになる。ここで、数直線は0から1へ
延びるにもかかわらず、応答区間に含まれるのは2つの
境界値のうちの1つだけであることに注意するのは重要
である。例えば、ハードウェアによる符号化における初
期区間は、0および1までのすべての点を含むが、1は
含まない。同様に、ハードウェア・スキームによって引
き続いて生成される区間のそれぞれにおいて、その下限
は含まれるが上限は含まれない。
上記ハードウェア・スキームでは、LPS事象の場合、
符号点は固定されたままでコード・ストリームの数値も
変わらない。もつともコード・ストリームの長さは増加
する。LPS事象の後の新たな現在区間(curren
t 1nterval)は、先行すると区間のLPS 
(つまりQ)セグメントとして規定される。また、上記
ハードウェア・スキームでは、MPS事象がOから1ま
での適当な範囲とともに生起したならば、符号点が値Q
だけ増加するとともに、新たな現在区間はMPS事象に
関連したもの、つまり先行する区間のPセグメントにな
る。ハードウェア符号器に関して言えば、MPS事象毎
に符号点を動かす方がLPS事象毎に符号点を動かすよ
りも優れていることが(本明MnMより)わかる。
C0発明が解決しようとする問題点 本明細書で開示した新規なソフトアラエアによる方策で
は、区間にその上限が含まれていてもよいが、下限の方
は含まれない。すなわち、0から1へ延びる数直線では
、1およびOに至るまでのすべての点が含まれるものの
、0は含まれない。
このソフトウェア・スキームによれば、コード・ストリ
ームの値は現在区間の上限に対応しており、LPS事象
毎に減分されていく。本願の発明者によって、ソフトウ
ェア・スキームでは、LPS事象毎に符号点を動かす方
が、MPS事象毎に符号点を動かすよりも効率の点で優
れていることがわかった。
ところで、符号点の値をスキャナー等のハードウェアで
決定(つまり符号化)することが望まれる、または必須
となる場合もあるし、符号点の決定をワークステーショ
ン等のソフトウェアで行うことが好ましい場合もある。
同様に、与えられたコード・ストリーム(これは、ある
区間の中の対応する符号点を表示する)から元の判断デ
ータを復元する際に、ハードウェアによる復号器の方が
適切である。または必要とされる場合もあれば、ソフト
ウェアによる復号器の方が適切である、または必要とさ
れる場合もある。したがって、ある判断の組が与えられ
たときに、その組についてハードウェア符号器とソフト
ウェア符号器がどちらも同じコード・ストリームを生成
すること、または少なくとも両筒号器の生成するコード
・ストリームが同一の区間を指すようにすることが強く
望まれるであろう。そして、このように生成されたコー
ド・ストリームについて、ハードウェア復号器とソフト
ウェア復号器の両方が同一の判断データの組を復元する
ことも強く望まれるであろう。
このようにすると、ハードウェアとソフトウェアのどち
らを使ってもデータを符号化してコード・ストリームを
生成すること、およびハードウェアとソフトウェアのど
ちらを使っても該コード・ストリームを復号して最初の
データを復元することのどちらもが可能となる。
しかしながら、今日まで、最適化されたハードウェアに
よって生成されたコード・ストリームと最適化されたソ
フトウェアによって生成されたコード・ストリームとを
交換可能にし得ることは指摘されなかった。上記ハード
ウェア・スキームとソフトウェア・スキームの取決につ
いての個々の概説を見ると、ハードウェア・コード・ス
トリームとソフトウェア・コード・ストリームは数直線
上の同一の符号点を指示しないことに気がつく。
(例えば、初期条件として、ハードウェア、コート・ス
トリームは0を指し、一方ソフトウエア、コード・スト
リームは1を指す。)異なる符号点を指すということは
、コード・ストリームが同一ではないということである
。さらに、上で提案したような2つのコード・ストリー
ムは、数直線に沿った同一の区間を指示しない。異なる
区間を指すということは、コード・ストリームはコンパ
チブルでさえない、つまり同一の復号器では復号できな
いということである。この点については、ある与えられ
た区間の中の様々な符号点から同一の判断の組を復号器
によって復元できることがわかる。したがって、2つの
符号器による符号化の際の符号点が同一の最終区間内の
異なる点であっても同一のオリジナル判断データを生成
することができる。生成されたコード・ストリームの指
す最終的な区間が異なるような2つの符号器はコンパチ
ブルでない。
符号化は有限の精度をもって行われるので、上記コンパ
チビリティの問題は、複雑になる。有限精度の下で、コ
ード・ストリームの長さに予め制限は設けていないので
、各判断事象が符号化される度に、該コード・ストリー
ムは長くなっていく。
しかしながら、記憶装置にはコード・ストリームのうち
の限られた部分だけしか保持されない。すなわち、コー
ド・ストリームはシフト・レジスタまたは他の固定長の
メモリに記憶される。事象が符号化される際に、新たな
内容がコード・ストリーム・メモリに入力される。そし
て、ある時点で、メモリの中の早期に記憶された内容が
該固定長メモリからシップ・アウト(ship out
、送出)される。シップ・アウトされた内容の変更はも
はや不可能である。
シップ・アウトされた内容を変更できない結果、様々な
問題が生じる。第一の問題は、「キャリー伝播」と呼ば
れる。コード・ストリームが一定のままである符号化ス
キームであっても、あるいは上述のハードウェア・スキ
ームのようにコード・スキームが増分される符号化スキ
ームであっても、現在のコード・ストリームCが011
111111111という形をとる可能性がある。固定
長メモリが下位側の8ビツトしか記憶できないときに値
Cが例えば00000000001だけ増分されたとす
ると、Cについての新たな値は1000[000000
00〕とならなければならない6もし、左側の4ビツト
が既にシップ・アウトされていて変更できないならば、
矛盾が生じる。すなわち、シップ・アウトされたビット
は0111であったが、これは実際には(キャリーが伝
播した後の値の)1000でなければならない。(ブラ
ケットで囲んだ)下位側の8ビツトしか保持されないな
らば、キャリーはその宛先に到達できない。
このキャリー伝播の問題点は、既に上記Langdon
、Jr、の論文にも記述されている。同論文ではさらに
キャリー伝播をブロックするために、ビット・スタッフ
ィングの一般的な概念を提唱している。
該ビット・スタッフィングは、データ・バイトとリンク
されない。
有限精度に付随する第2の問題点は、区間の中にその上
限が含まれており、かつ現在のコード・ストリームから
数値を引くことによって符号点を動かす算術符号化用符
号器に関係する。そのようなスキームは前述のソフトウ
ェア符号器において提案される。そこでは、現在のコー
ド・ストリームだが区間の上限を指す。LPS事象に応
答して。
P区間がでから引かれて新たなコード・ストリームのた
めの数値が生成される(第3図参照)。もし、コード・
ストリームが1の後に続く0のストリングを含み(例え
ば、1000000000000)、かつ精度が有限で
あるならば、1のビットを含む先頭側のビットは既にシ
ップ・アウトされてしまっており、将来、ボロウを引き
起こすことはできない。上述の例では、8ビツト・レジ
スタについて言うと、先頭のビット10000は既に送
出済であり、もはや変更することができない。
したがって、シフト・レジスタまたは他のメモリに記憶
された8個の0から00000001を引くと、ボロウ
が実行され得る1のビットに到達することのできないボ
ロウ伝播を引き起こすことになる。このようなボロウ伝
播は、有限精度処理の結果として生じる。著しく困難な
問題である。
ある与えられた1つの符号器で符号化を行う場合でさえ
問題点が生じるのに加えて、有限精度処理の結果生じる
矛盾は、符号器同士の間のコンパチビリティを妨げる原
因にもなる。すなわち、矛盾が生じる結果、(a)ある
所定の事象に応答してコード・ストリーム値の増分を行
う符号器と(b)ある所定の事象に応答してコード・ス
トリーム値の減分を行う符号器について、同一またはコ
ンパチブルなコード・ストリームを得ることが困難とな
る。
増分型符号器と減分型符号器を使って、同一、または少
なくともコンパチブルなコード・ストリームを生成する
際の問題点は、ハードウェア式符号器による最適な取決
とソフトウェア式符号器、による最適な取決を考える際
に、強調される。動作を最適にするため、ハードウェア
式符号器は、MPS事象の際に符号点を動かし、この結
果好都合な具体例ではコード・ストリーム値が増分され
る。
ソフトウェア・スキームについての最適な動作によれば
、LPS事象の際に符号点が動かされ、その結果好都合
な具体例ではコード・ストリーム値が減分される。この
2つのコード・ストリームを単一の復号器によって復号
可能とするために、有限精度に起因する問題点を、個々
のコード・ストリームによる指示の食い違いとともに解
決しなければならない。
そこで、本発明者は、区間の確率セグメントを反転させ
て逆にしてもよいことを本願にて提案している。例えば
、Pセグメントを区間のうちの大きな数値の側とする代
りに、Pセグメントを区間のうちの小さな数値の側に割
り当ててもよい。以後簡単のために、前者のような取決
を「P/Q」と略す一方、後者のような取決をrQ/P
Jと略す。
逆Q/P符号器の一例によれば、現在のコード・ストリ
ームとして区間の下限が指示されることになる。(そし
て、この点が該区間に含まれる。)Qセグメントは現在
区間の数値の大きい側に割り当てられ、Pセグメントは
数値の小さい側に割り当てられる。逆ソフトウェア式符
号器について言ええば、MPSの場合、符号点はそのま
まで動かない。そして、LPS事象の度に、Q/P逆ソ
フトウェア式符号器は、現在区間の下限から始まるPセ
グメント値を数値Cに加入する。該逆ソフトウェア式符
号器は、上記P/Qソフトウェア式符号器の鏡像として
動作する。Q/P逆ソフトウェア式符号器によって生成
されるコード・ストリームの値C1と、P/Qソフトウ
ェア式符号器によって生成されるコード・ストリームの
値Csとの間には、次の関係が成り立つことに注意すべ
きである。
C=1−C8 ■ C8の長さは固定されていないので、値1の長さは不定
である。したがって、最適なP/Qハードウェア式符号
器または最適なP/Qソフトウェア式符号器によって生
成されるコード・ストリームと同一またはコンパチブル
なコード・ストリームを生成するべく逆コード符号器を
使おうとすると、再びボロウ伝播の問題を抱えることに
なる。
多くの問題点が存在するため、(シンボルの順序付がP
/QであれQ/Pであれ最適なハードウェア式符号器と
最適なソフトウェア式符号器を交換可能にする、つまり
同一または少なくともコンパチブルなコード・ストリー
ムを生成できるようにすることができない。同様に、多
くの問題7へが存在するため、最適なハードウェア式符
号器または最適なソフトウェア式符号器によって生成さ
れたコート・ストリームから元の判断事象の組を復元す
る際に、最適なハードウェア式復号器と最適なソフトウ
ェア式復号器の使用を交換可能にすることができない。
本発明は、様々なソフトウェア式およびハードウェア式
符号器を交換可能とし。
かつハードウェア式復号器とソフトウェア式復号器のど
ちらであっても、該交換可能な符号器のうちの任意のも
のが生成したコード・ストリームを同じように復号でき
るような構成に関連する。
本発明の目的は、最適なソフトウェア式符号器と最適な
ハードウェア式符号器が、単一の復号器によって復号可
能な個々のコート・ストリームを、有限精度の文脈にお
いて生成するようにすることである。
本発明の他の目的は、その各々が、最適なハードウェア
式符号器または最適なソフトウェア式符号器によって生
成された個々のコード・ストリームに処理を加えると、
同じ判断データの組を復元する最適なバー1くウェア式
復号器と最適なソフトウェア式復号器を提供することに
ある。
本発明のさらに他の目的は、数直線に沿った順序付を逆
にしてもよい2進算術符号化法による符号化を提供する
こと、およびこのような逆符号器によって生成されたコ
ード・ス1〜リームが、最適なハードウェア式復号器と
最適なソフトウェア式復号器の何れによっても簡単に復
号処理できるようにすることにある。
したがって、本発明の目的は、区間セグメントの順序付
がP/QまたはQ/Pの何れかである最適なハードウェ
ア式符号器と同じく区間セグメントの順序付けがP/Q
またはQ/Pの何れかである最適なソフトウェア式符号
器を提供し、しかもこれら4つの符号器のどれによって
判断事象の組が符号化されても、最適なハードウェア式
復号器または最適なソフトウェア式復号器の何れかによ
って元の判断事象の組が復元されるようにすることであ
る。
さらに、本発明では、引き続いて判断を処理していくに
したがってそれぞれの符号点が収束していくような、最
適な有限精度のバー!−ウェア式符号器と最適な有限精
度のソフトウェア式符号器について考察している。
また、本発明では、異なる符号器によって生成された符
号点の値の違いについて、少なくとも一方の符号点の値
を調整し、「最終レンジ」ファクタを考慮に入れて、2
つの異種の符号点を調和(cor+5onance)さ
せることも考察している。さらに、本発明は、キャリー
伝播とボロウ伝播の問題を克服する方法論に関連する。
特に、キャリー伝播の問題はビット・スタッフィングに
よって解決され、かつ、ボロウ伝播の問題は適切なプレ
・ボロウを行うことによって解決される。ブレ・ボロウ
が適用されるのは、(a)あるコード・ストリームが別
のコード・ストリームを反転させることによって得られ
るとき、および(b)ゼロのバイトで終了するコード・
ストリームが所定の方法で減分される被減数を表わすと
きである。
後者の場合のプレ・ボロウによれば、ボロウ伝播が回避
されるだけでなく、2つのルール・セットのどちらに従
うかにもよるが、減分型コード・ストリームが増分型コ
ード・ストリームと同一、または少なくともコンパチブ
ルとなる。第1のルール・セットによれば、送出されよ
うとしている符号化済データの1バイトがすべてOであ
る場合に必ずプレ・ボロウが適用され、(1バイトが8
ビツトからなる場合には)16進数の′00′が16進
数の’FF’ とキャリー・ビットをプラスしたものに
変換される。なお、以後、16進数の値は、″で囲んで
示しく例えば、′A1′)、場合によってはさらにその
前にXを付す(例えば、X ’Al’ 、これは2進表
記で示すと10100001となる。)第1のルール・
セットを適用することによって、増分型コード・ストリ
ーム・スキームの場合のコード・ストリームと減分型コ
ード・ストリーム・スキームの場合のコード・ストリー
ムはコンパチブルになる。すなわち、第1のルール・セ
ットによれば、様々な符号器を使ってもコード・ストリ
ームが同じ区間を指すので、復号器が1つしかなくても
復号可能になる。
第2のルール・セットでは、符号化済データのうち、現
在のコード・ストリームに加えられる部分が現在の区間
値A(i)と比較される。現在の区間値の方が大きい場
合は、プレ・ボロウが適用される。そうでない場合、プ
レ・ボロウは生じない。
第2のルール・セットに従ってプレ・ボロウが生じる状
態か否かを調べることによって、増分型(ハードウェア
)スキームによる場合のコード・ストリームと減分型(
ソフトウェア)スキームによる場合のコード・ストリー
ムとを同一にすることができる。比較の結果、ハードウ
ェア・コード・ストリーム値がソフトウェアの指す00
区間にあるのか、またはそれより値の少ないFF区間に
あるのかが表示される。前者の場合、ボロウ伝播の問題
はなく、プレ・ボロウは必要とされない。一方、後者の
場合にはプレ・ボロウが提供される。
つまり、最適なソフトウェア・コード・ストリームが′
00′バイトを持ち、それに対応する最適なハードウェ
ア・コード・ストリームが’FF’でなければならない
とき、プレ・ボロウ・プロシージャによってソフトウェ
ア100′は’FF’に変換され、2つの構成について
同一のコード・ストリームが生成される。
また、本発明によれば、符号化済データは、キャリーと
ボロウがこれからシップ・アウトされる最新のバイトに
制限されているバイトとして出力される。キャリーおよ
びボロウをバイトの境界に制限することによって、キャ
リーとボロウの伝播を防止するという目的は達成される
。さらに、これからシップ・アウトされるバイトと以前
にシップ・アウトされたバイトがバッファに記憶されて
いる場合に、キャリーとボロウの影響がこれからシップ
・アウトされるバイトにだけ及ぶようにすることによっ
て、バッファ・ポインタが後戻りすることなくバッファ
の中を逐次的に移動することが可能になる。
さらに、本発明は、符号化ステップにおいて常に1から
Eをプレボロウすることによって、コード・ストリーム
Cを1−C8として、しかもこのように反転させた符号
をCsによって規定される区間に導き1反転させたバー
ジョンの復号器における無限精度の問題を回避している
D、実施例 第1図には、算術符号化器102と、それに対応する算
術復号器104を含む、データの圧縮および圧縮解除用
の全体装置100が示されている。
データ圧縮の際、装[100は、まず入力データ(DA
TAI N)を受は取る。入力データは、2値判断(b
inary decision)の列(YN)として表
現できる。ここで、結果、すなわち事象のそれぞれは確
率を持っている。次に、装置100は、該列を、符号化
されたビット列に変えることによってキャラクタライズ
する。内蔵された確率情報を含めて判断列を符号化する
ことによって、圧縮済ビット列をオリジナルの入力デー
タよりも迅速に転送できるし、圧縮済データの記憶スペ
ースも少なくてすむ。
データの大部分をある転送装置または媒体(例えば、要
素105)によって高変調速度で転送しなければならな
い、あるいはデータの大部分を限られたメモリに記憶し
なければならないような(または、大部分のデータを記
憶し、その後で低変調速度で転送が行われるような)ア
プリケーションにおいて、データを圧縮して用いること
は非常に重要である。このような圧縮が特に重要な環境
の1つとして、ビデオ・データ処理の分野、さらに詳し
く言えばテレコンファレンスを挙げることができる。テ
レコンファレンスでは、ピクチャー等の情報を伝達する
ために、大量の情報をある場所から別の場所へ迅速に通
信しなければならない。
所望の宛先へ符号化済データが転送された後、該データ
は圧縮解除される。つまり、復号器104によって、オ
リジナル・データまたはそれに関連したある表現が復元
される。実際、復号器104は符号器102の行ったプ
ロシージャを取り消す。
第1図では、入力データDATAINが、まずモデルお
よび確率の発生器106によって処理される。該モデル
・確率・発生器106は、データに対して文脈(con
text)を与える。例えば、ファクシミリでは、入力
データの1つ1つは、所与の画素が黒であるかそれとも
非黒であるかに対応する。一般的に、1つの状態(co
ndition)、つまり事象の方が蓋然性が高い。あ
る特定の画素について、それが蓋然性の高い方の状態に
一致するのか、それとも蓋然性の低い方の状態に一致す
るのかについて、決定が行われる。連続してデータが処
理されていく際に、蓋然性の高い状態(MPS)と蓋然
性の低い状態(LPS)の相対的な確率の値が変化する
こともあるし、あるいは入れ換わってしまうことさえも
ある。つまり、MPSが黒である場合に非黒の事実(i
nstance)数多く発生したとすると、非黒状態の
方の蓋然性が高くなる、つまり優勢になることがある。
その場合、MPSは熱状態から非黒状態に変化する。入
力データDATAINをどのように評価すべきかを決定
するモデルと、相対確率値を更新する確率発生器とが要
素106に含まれている。従来、様々なタイプのモデル
が論じられている。確率適応化のための格別な方法が、
特願昭61−286891号に開示されており、本明細
書でも引用する。確率推定のための別の方法は、本出願
人によって本願と同時に出願された、発明の名称が「算
術符号化法のための確率推定方法」である特許出願に開
示されており、必要な限り本明細書でも引用する。適切
な確率発生器は特開昭60−196014号公報にも開
示されている。
確率適応化および算術符号化に関しては、本出願人によ
って本願と同時に出願された、発明の名称が「算術符号
化システムにおける確率適応化方法」である特許出願に
も開示されており、本明細書でも引用する。
モデル・確率発生器106は、符号器102に対して3
項目のデータを与える。第1は、どの状態が優勢な事象
であるか(つまり、どの状態がMPS事象であるか)に
関する表示である。第2は、LPS事象についての確率
に対応する値Qである。
第3は、入力中である判断事象を表示するYN値である
符号器102は、モデル・確率発生器106から来る3
項目の情報を、算術符号化法によって圧縮されたデータ
に変換する。第2、第3、および第4図は、それぞれ符
号化の概要を示す。第2図は、ハードウェア用に最適な
符号器を示す。第3図は、ソフトウェア用に最適な符号
器を示す。第4図は、逆(inverted)コード符
号器と呼ばれる符号化の概要を示す。
第2図において、符号点(code point)は、
最初、所与の区間の下限(の数値)に位置している。
LPS事象の生起に関連するQセグメントも区間の下側
にある。MPS事象に関連するPセグメントは区間の上
側にある。C(n)は、時間nにおけるコード・ストリ
ーム値に対応する。A(n)は、時間nにおける現在の
区間の値に対応する。
各判断毎に、最適のハードウェア符号器(第2図に示す
)は、次のような取決に従う。
つまり、判断事象(図ではYNとして示す)がMPS事
象ならば、 (a)  C(n)<−C(n−1)+[A(n−1)
XQコ(b)A(n)←[A(n−1)X(1−Q)]
となる。
事象がLPS事象ならば、 (a)C(n)←C(n−1) (b)A(n)←[A(n−1)XQ]:APS事象で
あれ、LPS事象であれ、ハードウェアは区間(つまり
レンジ)の値Aを再指定する処理サイクルに時間を費す
。さらに、MPSの場合は、符号点は値[A (n −
1) X Q ]だけ増分、つまり移動される。ハード
ウェアはAとCの更新を並行して処理し得るので、かか
るハードウェアはどの判断についても1処理サイクルだ
けを費す必要がある。他方、ハードウェアがLPS事象
の度に符号点を動かすように構成されたならば、符号点
を動かさなければならない度に、C(−C−[AXQ]
を決定するのに処理サイクルが2つ必要になる。処理サ
イクルの数を制限することはハードウェア操作において
クリティカルであること、およびLPS事象の場合に符
号点を動かすことは結果として多くのサイクル時間を費
してしまうことを考慮すると、ハードウェアにとっては
MPS事象の場合に符号点を移すことが最適であるとわ
かる。
第3図は第2のインプリメンテーションを示す。
このインプリメンテーションは本発明者によって提案さ
れ、実験された。符号点2は区間の下端に直に位置づけ
られる。Pセグメントも区間の下端側にある。Qセグメ
ントは区間の上端側にある。
このインプリメンテーションでは、次のような規則が適
用される。
すなわち、事象がMPS事象ならば。
(a)Z(n)←Z(n−1) (b)A(n)4−[A(n−1)X(1−Q)]とな
る。
事象がLPS事象ならば、 (a) Z(n)←Z(n −1)+[A(n −1)
X(1−Q)](b) A (n )4−[A (n−
1) X Q]となる。
第3図に対応する上記取決はソフトウェアにとって最適
であることがわかる。ソフトウェアは並列して処理を行
わない。したがって、第2図の規則に従ってZとAを更
新することをソフトウェアに課したならば、AとZの両
方を逐次変更しなければならなくなる。そして、このよ
うな更新は、おそらくは蓋然性の高いMPS事象につい
て行われることになるので、このような逐次的な更新は
頻繁に必要となろう。この結果、かなりの処理時間を要
することになる。そこで、第3図のように、(特にQ<
<Pの場合は)逆にZの更新がめったに行われないよう
にすべきである。
第4図の符号化処理は、第3図に概略を示した逆ソフト
ウェア処理と鏡像関係にある。つまり、Pセグメントと
Qセグメントの順序付けが第3図とは逆になっている。
さらに、第3図と比較すると、第4図ではLPS事象に
応じた符号点の移動が逆になっている。すなわち、第3
図の逆ソフトウェア符号器によれば、LPS事象毎にコ
ード・ストリームの数値が増分されるのに対し、第4図
の反転させた符号器によれば、LPS事象毎にコード・
ストリームが減分される。
簡単な例として、A(n−1)が2進数の0.100に
等しく、かつQが0.001に等しい場合を仮定する。
さらに、第2図のC(n−1)の現在値が0.100で
あり、かつ第4図のC(n−1)が1.000に等しい
と仮定する。LPS事象の際、第2図の具体例のハード
ウェアでは符号点はそのままである。つまり、C(n)
←C(n−1)である。第2図のA(n)の値はA(n
−1)XQに等しく、したがって、本例では、(0,1
00)x(0,001)=O10001となる。C(n
)の値は0.100のままであり、A (n )の値が
0.0001になるわけである。したがって、C(n)
とA (n )の和は、0.1001である。しかしな
がら、第4図のソフトウェアの具体例では、C(n)は
、C(n−1)からA(n−1)X(I  Q)の値、
つまり、(0,100)X(1−0,001)=0゜0
111を引くことによって決定される。すなわち、今度
のCの値は、(1,000−0,0111)=0.10
01になる。C(n)+A(n)はC(n)に等しい。
単一のデコーダは、C(n)+A(n)またはC(n)
を復号して、入力判断事象と同じセットを復元すること
ができる。換言すれば。
(第1図では104で示す)復号器への第1の入力によ
ってどの状態がMPS事象に対応するかが示され、かつ
第2の入力によって復号中のコード・ストリームについ
ての現在のQ値が示されることによって、復号器は、C
(n)に最終区間A(n)を加えたもの、つまりC(n
)に処理を加えることができ、その結果、符号器102
へのYN入力例に対応するYN出力列を生成することが
可能になる。
YN判断は、モデル・確率発生器106にマツチするモ
デル・確率発生器110に入力され、その結果、オリジ
ナル・データまたはそのレプリカが出力DATAOUT
として生成される。
第3図と第4図に示す案ではLPS事象の際に符号点が
移動するので、ラフ1−ウェア処理に要するサイクルの
数は少なく保たれる。これら2つの案は、ソフトウェア
で具体化する場合に最適となることを意図している。(
ここで、第2図のP/Qの順を逆にすることによってハ
ードウェアによる最適化を図る逆符号器も未発明の考慮
の範囲内であることを、念のために述べておく。)第5
図を参照しつつ、本発明の主要な目的を説明する。同図
には4個の符号器200.202.204.206が示
されている。符号器200゜204は、各MPS事象毎
に符号点を動かす最適ハードウェア・ルールに従って符
号化を行う。このうち、前者はP/Qシンボル順でイン
プリメントされ、後者はQ/P (逆)シンボル類でイ
ンプリメントされている。符号器202.206は、各
LPS事象毎に符号点が移動する最適ソフトウェア・ル
ールに従って符号化を行う。このうち。
前者はP/Qシンボル順でインプリメントされ、後者は
Q/P(逆)シンボル類でインプリメントされている。
本発明によれば、符号器200.202によって生成さ
れるコード・ストリームを同じ(または少なくともコン
パチブル)にすることができる。それは、Cとして表わ
されている。また、本発明によれば、符号器204,2
06によって生成されるコード・ストリームを同じ(ま
たは少なくともコンパチブル)にすることができる。そ
れは、Zとして表わされている。ZとCは、C=1−Z
なる式によって一方から他方を導くことができる。この
式の計算は、インバータ208によって実行される。コ
ード・ストリームCは、ハードウェアの場合の最適化を
考慮した(例えば不都合でない(unaνにνard)
計算に基づく)復号器210によって直にデコードされ
る。また、コード・ストリーム2は、ソフトウェアの場
合の最適化を考慮した復号器212によって直にデコー
ドされる。4個の符号器200〜206が生成したどの
コード・ストリームであっても、デコードする際には復
号器210.212のどちらをも使い得ることがわかる
。コード・ストリームのあるものは、復号器に至る途中
でインバータ208によって処理される。
ここで、他の2つの復号器、すなわちQ/Pハードウェ
ア復号器とP/Qソフトウェア復号器も本発明に従って
インプリメントできることを念のために述べておく。実
際、P/Qソフトウェア復号器については後でセクショ
ンII(B)において簡単に説明する。
第6図には、第5図の4個の符号器200〜206の相
互関係が示されている。第6図の左側には、シンボル類
がP/Qであるハードウェア符号器(例えば符号器20
0)とソフトウェア符号器(例えば符号器202)のM
PS、LPS各事象への応答がそれぞれ示されている。
MPS事象に対して、P/Qハードウェア符号器(図で
はHと示す)は、コード・ストリーム値をAXQだけ増
分させるとともに1区間A(n)のサイズを[A(n−
1)X(1−Q)]に等しくなるようにセットする。
また、MPS事象に対して、P/Qソフトウェア符号器
は符号点位置を維持する一方、区間のサイズを[A(n
−1)X(I  Q)コにセットする。LPS事象に対
して、P/Qハードウェア符号器は符号点位置を維持す
るものの、P/Qソフトウェア符号器は符号点の値を[
A(n−1)X(I  Q)]だけ減分する。また、L
PS事象に対して、どちらのP/Q符号器もAXQに等
しいサイズの新しい区間をセットする。
第6図の右側では、MPS事象に応答して符号点Zを減
分するとともに、区間のサイズを[A(n−1)x(1
−Q)]に等しくなるように調整するQ/Pハードウェ
ア符号器が示されている。MPS事象に対して、Q/P
ソフトウェア符号器は符号点位置を維持するとともに、
区間のサイズを[A(n−1)X(1−Q)コにセット
する。LPS事象に対して、Q/Pハードウェア符号器
は符号点位置を維持するが、Q/Pソフトウェア符号器
はその符号点位置Zを[A(n−1)X(1−Q)]だ
け増分する。どちらのQ/P符号器の場合でも、LPS
事象に対して、現在の区間のサイズはA(n−1)XQ
にセットされる。
第7図には、第6図に示される取決に基づく判断事象の
セットの符号化が各符号器について示されている。特に
、以下のような事象列の符号化について示されている。
MPS、MPS、MPS、LPS、MPS、MPS、M
PS、MPS、LPS、MPS、LPS、MPS 第7図には、P/Qハードウェア(H)符号器とP/Q
ソフトウェア(S)符号器による上記事象列についての
符号点の移動がそれぞれ示されている。
第8図には、Q/Pハードウェア(H)符号器とQ/P
ソフトウェア(S)符号器による上記事象列についての
符号点の移動がそれぞれ示されている。
第7図と第8図かられかるように、ある特定のシンボル
・オーダリングに関して言えば、ハードウェアの場合の
符号点とソフトウェアの場合の符号点の間には現在の(
最終的な)区間A(n)の領分の違いがある。また、両
図かられかるように、2つの符号点は事象列が連続する
につれて収束していく。
第7図と第8図を比較すると、シンボル順序付けを逆に
して生成される2つの符号点は、次の式によって容易に
関係づけられる。
Z=(1−t)  C−(AXδ−ε)ここで、εは可
能性のあるプレボロウを表し、δは、最終区間をファク
タ・インすべきか否かに関する判断を表す。もし、プレ
ボロウが必要とされず、かつ最終区間をファクタ・イン
する必要もないならば、該式は1次のように単純化され
る。
Z=1−に れは、インバータ208(第3図)の動作のかわりの式
である。一般的な動作では、インバータ208は、可能
性のある最終区間とプレボロウのファクタの原因となる
より詳細な方策に適珀される。
■、有限の精度で行う連続事象の符号化と復号このセク
ションの記載をわかりよくするために、以下のような定
義を行う。はとんどの場合、変数名は同じ意味を持つ。
定義 C=コード・ストリーム、つまり現在の区間を指すポイ
ンタ(符号点) Cd=基底線(base 1ine)を調整した、復号
器コード・ストリーム X=コード・ストリームのうちのレジスタの中にあって
送出されていない部分 Qe(i)=i番目に符号化されるシンボルのためのL
PS事象推定確率 Pe(i)=i番目に符号化されるシンボルのためのM
PS事象推定確率 A(i)=i番目のシンボルについての被加数(つまり
、区間) Si=i番目のシンボル n(i)=シンボルSiの符号化に至るまでの再正規化
の累積カウント R(i)=i番目のシンボルのための再正規化ファクタ δ(C)=クロネッ力−のデルタ関数と等価(条件が真
のとき1、偽のとき0) ε=現在のQ値についての可能な最小の変更 上記定義の下で、次のような関係が適用される。
Pe(i)=A(i)  (A(i)XQe(i)R(
i)=1/2°(i) ε=R(i)2−12(12ビット精度用)HA、P/
Qハードウェア符号器および回復号器シンボルの順序付
がP/Qである場合に、最適なハードウェア符号器は現
在の区間の底を指す。
コード・ストリームCは次の式で表わされる。
C=苓R(i)A(i)Qe(i)δ(Si=M)換言
すれば、値Cは連続する判断事象(つまりシンボル)の
各々を検討することによって決定される。サブジェクト
・シンボルがLPS事象に相当するならば、該サブジェ
クト・シンボルの時点でのQe値が再正規化ファクタと
掛は合わされる。
再正規化ファクタは1区間サイズが所定の範囲、例えば
0.5と1.0の間に維持されるという事実に関連する
。つまり、区間サイズは被加数(Aと記す)として表わ
され、その値は所定の範囲内に留まるように調整される
のである。1番目の被加数の値、つまりA (i )が
0.5より小さくなると、上記所定の範囲内に戻るのに
必要な回数だけ2が掛は合わされる。区間A、あるいは
A(i)の参照は再正規化ファクタを考慮に入れる。
シンボルが符号化される度に、再正規化は起こり得る。
なるほど、区間サイズがAXQe(これは、定義により
、AXPe以下であり、したがってAXo、5以下であ
る)にセットされる度に、A (i )の値は(少なく
とも1回2を掛は合わせて)再正規化され、例えば上記
のような範囲内に戻される。
MPS事象に応答すると、現在区間A(i)のサイズが
最初に[A(i  1)X(1−Qe)]にセセラされ
る。この値は0.5より小さいこともあるし、そうでな
いこともある。このように、M P S事象に際しては
、再正規化の必要な場合とそうでない場合とがある。現
在区間の再正規化回数は累積されて、R(i)、すなわ
ち上記のようにR(i )りによって、C値も区間値と
同じように(例えば同じ回数倍増されて)変化すること
が保証される。
したがって、シンボルSiが符号化されるときのC値は
、P/Qハードウェア符号器の場合であってかつMPS
事象の際には増分されるが、その増分は、先行するすべ
てのシンボルについての再正規化ファクタおよびQe値
によって決定される。
P/Qハードウェア復号器は、次の式に従って上記プロ
セスを解いていく。
Cd =C−写R(i)A(i)Qe(i)δ(Si=
M)ここで、Cdはある事象の影響が取り除かれた後の
コード・ストリーム値である。
P/Qハードウェア復号器は、Cd<A(i)Q e 
(i )ならば、LPSを解読する。
UB、P/Qソフトウェア符号器および回復号器P/Q
ソフトウェア符号器は、各現在区間の頂きを指す。ソフ
トウェア・コード・ストリームでは、次の式によって決
定される。
C=A(0)−写R(i)A(i)Pe(i)δ(Si
=L)C値の評価はA(0)からスタートし、A(0)
から上式の和の項をひいていく。和の項の加数は。
A、現在のP値、および先行するLPS事象についての
再正規化ファクタの積である。
結果Cから最終区間値A(f)を引くと、P/Qハード
ウェア・コード・ストリームで導かれる通りのCが得ら
れる。
P/Qソフトウェア復号器は次の式に従う。
%式%) しかしながら、LPSシンボルを復号するのに必要な比
較は扱いにくい。すなわち、 cd<A(0)−A(i)+A(i)XQe(i)また
は、上記関係式の両辺からA(0)を引いてCd−A(
0)<  A(i)+A(i)XQe(i)となる。
C’ d =Cd−A(0)とすると、C’d< [A
(i)X(1−Qe(i))]となることがわかる。
Cd’も[−A(i)X(1−Qe(i))]もともに
負であるが、絶対値はOからIA(i)lまでの範囲に
ある。したがって、復号器のための演算は、固定精度演
算である。ソフトウェア復号器の処理をまとめると下記
の第1表のようになる。
第1表 T4−AXQe 4−A−T If  C’d<A (LPS   decoded) Cd+C’d−A 4−T renormalize A and C’dlse (MPS decoded) renormalize A and C’d if 
needed。
ndif IIC,Q/Pソフトウェア復号器 次に、P/Qソフトウェア符号器によって生成されたコ
ード・ストリームを復号するのに適した構成を説明する
。これは、第5図の復号器212に対応するものである
。コード・ストリームCは符号器202によって処理さ
れてコード・ストリームCが生成される。コード・スト
リームCは次の式に従ってインバータ208によって反
転されてZが形成される。
Z=A(0)−C−ε この式は、コード反転化について以前に述べたものと類
似している。
復号器212のためのコード・ストリームは。
Zd=Z−ΣR(i)AXPe(i) となる。Zdは、i番目のシンボルが符号化される前の
コード・ストリームを表わす。すなわち、復号器は現在
のコード・ストリームZに減算を施すことによって、i
番目のシンボルが何であったか、そしてi番目のシンボ
ルが符号化される前のコード・ストリーム値は何であっ
たかを決定する。
該復号器は、Zd<A(i)−A(i)XQe(i)な
らばMPSを解読し、その他の場合はi番目のシンボル
をLPSとして解読する。
別な風に言えば、復号プロセスは次の第2表のようにな
る。
第2表 T4−AXQe A4−A X (t−Qe) if  Z<A (LPS  decoded) 4−Z−A A←T renormaLize A and Zlse (MPS  decoded) renormalize A and Z if ne
eded。
ndif ここで、A (o )は1.00000・・・・に初期
設定されることを述べておく。
1に減算を施すとき、次の式のように、0のビットを1
のビットと加数の和に変更することによって、無限精度
を回避することができる。
2進のi、oooooo・・・・=0.111111・
・・・+i実際、プレボロウ(前借り)が適用される。
このプレボロウの重要性は、次の例で認識される。
すなわち、A(0)の値が1.00000・・・・(2
進)であるとする。A(0)−Cなる減算を行う際に、
Cの長さが固定されていないことに注意しなければなら
ない。Cの長さがA(0)の固定長を越えると、減算の
ためにレジスタのOのビットからCを引く必要が生じ、
その結果、1のビットに達することのないボロウの伝播
が発生する。この問題は、1000・・・・を111・
・・・+εに変更することによって解決される。
さらに、プレボロウによってP/Qソフトウェア・コー
ド・ストリームEがP/Qハードウェア符号器のための
現在区間に移動する。実際、εは、P/Qハードウェア
符号器の区間はその下端から延びていくものであるが、
区間の上限を含むものではないということ、モしてP/
Qソフトウェア符号器について言えば区間は上限を含む
が下限を含まないという事実を説明してくれる。0から
1の区間について言えば、P/Qハードウェア符号器に
ついての区間は0から1−へ延びる一方、+ ソフトウェア符号器についての区間は0 から1の範囲
となる。P/Qハードウェア符号器は0を指し、P/Q
ソフトウェア符号器は1を指す。2つの点を同一の区間
に入れるためには、ソフトウェア・コード・ストリーム
からあるイ直を引くか、またはハードウェア・コート・
ストリームにある値を加えるかくまたはその両方を)し
なければならない。この例では、ソフトウェアによる結
果からEを引いている。
ここで、符号反転化は、符号プロセスの1部、復号プロ
セスの1部、あるいは独立した中間ステップの何れとと
らえてもよいことを述べておく。
第7図、第8図に示されるように、P/Qソフトウェア
符号化を減分パスに沿って進行させ、最終符号ストリー
ムを反転させた後、Q/P (ソフトウェア)復号器に
よって復号することができる。
あるいは、同様に、第8図の増分パスに沿って(Q/P
)ソフトウェア符号化を行い、その後P/Qソフトウェ
ア復号器によって復号することもできる。これらの選択
し得るパスは第5図に示されでいる。
第7図で表わされるようなP/Q符号器の何れかで生成
されたコード・ストリームC811と、第8図で表わさ
れるようなQ/P符号器の何れかで生成されたコード・
ストリームZ811の相互関係は1次の式で示されてい
る。
lt Z =(1−ε)−c81”−(A(f)×δ−ε)こ
こで、εは1.000・・・・を0.1111・・・・
+Eに変換するプレボロウに関係する。また、δは最終
レンジをファクタ・インすべきか否かを示す。
■、符号器用レジスタおよび復号器用レジスタ第9図に
は、コード・ストリーム情報を記憶するのに好適なメモ
リ・レジスタ300が示されている。レジスタ300は
32ビツトを含むが、これらは以下のように割り当てら
れる。つまり、ビット31〜24の8ビツトはフラグ・
ビットである。31番目のビットは「サイン」ビットを
表わす。ビット23.22には何も割り当てられない。
ビット21は、伝播するかもしれないキャリーのだめの
レシーバである。(bbbbbbbbとして識別される
)ビット20〜13は、先行するコード・ストリーム・
データのうちの最も新しい8ビツト(1バイト)を表わ
す。ビット20から13までの8ビツトは、毎回、バッ
ファ・メモリへ出ようとしているバイトを表わす。ビッ
ト位置12にはキャリー伝播のためのスペーサ・ビット
が割り当てられる。ビット11〜0は、コード・ストリ
ームの「小数部」と呼ばれ、ビット20〜12は該コー
ド・ストリームのr″!i!i数部当する。レジスタ3
00はXレジスタと呼ばれ、コード・ストリームC5の
最新の符号化済部分を収容する。
Xレジスタの中のビットが符号化される前に、何千もの
ビットが符号化されていた場合もある。そういった早く
に符号化されたビットはXレジスタの小数部を通って同
整数部へ入り、さらにそこからバッファ・メモリへ移動
する。該バッファ・メモリは、このように先行するバイ
トを記憶するわけだが、そのバイト数には限りがある。
希望に応じて、バッファ・メモリから出たバイトは記憶
装置へ転送してもよいし、復号が行われつつある他の場
所へ転送してもよい。
本発明によると、データはバイトとして構成され、かつ
バイトとして送り出される。これはフラグ・ビットによ
って達成される。8個のフラグ・ビットを000000
01に初期設定することにより、相次いでbビットがレ
ジスタ300の整数部にシフトしてくるにつれて、1の
ビットがシフトする。そして、最も左に位置するフラグ
・ビットが1になると、Xレジスタの内容は「ネカテイ
ブ(負)」であると判断される。次にシフトが生じると
きには、Xレジスタ300の整数がバッファ・メモリに
入力される。
好ましくは、(図示しない)バッファ・メモリは、例え
ば256バイトを記憶するメモリである。
バッファ・ポインタBPは、バッファ・メモリに最も新
しく入力されたバイトを識別する。
Xレジスタに加えて、現在の区間値を記憶するためのA
レジスタがある。上述したように、現在の区間は所定の
範囲、例えば0.5と1の間に維持される。Aレジスタ
は、Xレジスタの小数部と位置合わせられる12ビツト
の「小数」部を含み、整数部も含む。
AレジスタとXレジスタの小数部を位置合わせすること
によって、コード・ストリームを更新する際に実行され
る様々な計算が促進される。区間が再正規化されて所定
の範囲内に戻される度に。
コード・ストリームは同じように再正規化されて、その
相対的な数値が保持されることを再び述べておく。区間
サイズが0.5ないし1にセットされている場合、再正
規化は単に左側へいくつかシフトすること(すなわち、
2を掛は合わせること)を意味することを思い出された
い。
コード・バイトがセットされた後(かつキャリーがない
場合に)、Xレジスタ300の内容と(16進で記述し
た)IFFFのANDが計算され、コード・バイトのビ
ットが取去される。また、Xレジスタは(16進で記述
した)1000000とのxoPを計算するためにセッ
トされるので、(フラグ・ビット)ビット24は1に確
実にセットされる。
第10図には、P/Qハードウェア・インプリメンテー
ションで用いられる32ビツトの復号器用レジスタ40
0が示されている。ビット割当は次の通りである。まず
、先頭に4つのOビット。
続いて12の「小数」ビットがあり、8個の新しいデー
タ・ビットはこれに続く、最も下位の8ビツトはフラグ
・ビットに対応する。レジスタ400は、フル・ワード
、ハーフ・ワード、またはバイトのように、様々に分割
することができる。小数部の12ビツトは、復号器のA
レジスタに記憶されている。被加数の小数ビットと位置
合わせされる。
新しいデータ・バイトがXC(ビット31〜16)にシ
フトされてきた後、該新しいデータはXNEW (ビッ
ト15〜0)の高位側ビットへ反転されるとともに、キ
ャリーが発生していないならば、XFLAGは1にリセ
ットされる。
すなわち、以下の式の通りになる。
XNEW=−hex ’FF0O’ SLL  B  
8XFLAG=1 XNEWについての上記指定の結果、’FF’ビットか
ら新しいバイトが引かれる。
低位側のバイトXFLAGが0になると、新しい圧縮済
データ・バイトが求められる。
111D、キャリーおよびボロウ 符号器と復号器についての上記説明かられかるように、
コ゛−ド・ストリームに違いが生じるとすれば、それは
与えられたP、Q取決のためにキャリーまたはボロウが
生じる箇所である。
ここで、キャリーおよびボロウはバイトの境界で準備さ
れることを述べておく。この結果、任意のキャリーまた
はボロウの結果が直前に送出されたバイトを越えて伝播
することはない。したがって、バッファのポインタが過
去のバイトまで戻る必要は全くない。該ポインタは、後
続の各バイトがバッファ・メモリに入力されるのに伴っ
て、該後続のバイトを指し進めていけばよい。
キャリー伝播の問題は、コード・ストリームの値が増加
されて更新される場合であって、既に符号化済の連続し
た1からなるバイトが1つ以上連続しである場合である
。この場合、加算の結果キャリーの伝播が生じる。この
ような状態を避けるため、本発明では、発生し得るキャ
リーを受は取るためにバイト中にビットを詰め込むよう
にしている。例えば、一連のバイトBn−1、Bn、B
   があり、そのうちのB   がバッファn + 
1           n −1メモリにあって、バ
ッファ・ポインタがバイトB   を識別しているとし
よう、そして、パイトB はXレジスタの整数部にあり
、バイトBn+1は同じレジスタの小数部にあるとする
バイトB の値が(16進数の)’FF’ならば、後続
バイトB   の先頭(最上位ビット)n+1 位置にビットが充填される。B  、B    がそn
   n+1 れぞれ11111111 (’FF’ )であるならば
、本発明によりB   の先頭にビットが挿入n+1 される結果、新しい符号化済データの例は111111
11.01111111.1・・・・どなる。
このように、必要ならば、キャリーを受は取るために0
のビットが挿入されるのである。復号器が全部のビット
が1であるバイトを検出すると、該復号器は後続の下位
ビットが挿入ビットであることを認識し、適切なコード
・ストリームが生成されるよう処理を行う、ところで、
実施例ではキャリー伝播阻止用に2つのビットを挿入す
るようにしている。したがって、上記例について言えば
新しいシーケンスは11111111.0011111
1.11・・・・となる。
ボロウの問題は、全部のビットが0のビットであるバイ
トを含むコード・ストリームについて減分を行うときに
生じる0例えば、3つの連続するバイトBn−0、Bn
、Bn+、のうち、中央の′バイトのビットがすべてO
であるとしよう。
第1のセットのルールによれば、プレボロウがバイl−
B    について適用され、該バイトから1が引かれ
る。B の8個のビットはすべて1に変わる。残りはバ
イトB   の先頭から2番目n+1 のビット位置に挿入ビットの形で含まれる。したがって
、B に続く8ビツトは、(制御語の用途としての)ゼ
ロと、該挿入されたビットと、符号化法データの6ビツ
トから構成される。したがって、符号器から転送される
データ・ストリームは、次のようになる。
B    −1,−1111,1111、Ob[B  
  の先頭の6ビツト]n−1n+1 B   バイト・セグメントから落とされたビn + 
1 ットは、データの後続バイト・セグメントにおいてピッ
ク・アップされる。ボロウは充填されたビットによって
事実上キャリーに変化する。何れにしても、復号器は上
述したように充填されたビットを検出すると、該充填ビ
ットをキャリーとして処理する。ビット・スタッフィン
グを含むP/Qハードウェア・コード・ストリームとコ
ンパチブルなP/Qソフトウェア・コード・ストリーム
を生成することが目標であるから、該コード・ストリー
ムも2つの拘束に従って生成されなければならない。ま
ず、16進の’FF’の後には必ずビットが充填されな
ければならない。そうでなければ、ハードウェア復号器
には不適式なバイト・パターンが生成されるからである
。次に、現(present)バイトからボロウを取出
す必要のあるときはいつでも(当然)取り出せるように
コード・ストリームを構成しなければならない。(ここ
で、現バイトとは、以前のコード・バイト・サイクルに
おいてコード・レジスタからコード・バッファへ転送さ
れたバイトを言う。)借りてくるのは1単位なので、桁
借りの対象とすることの不可能なバイト値はゼロだけで
ある。
一般に、コード・レジスタにおいて新しいバイトの開始
点に高位の「プレボロウ」ビットをセットすることによ
って、現バイトから桁借りを行う必要のあることが検出
される。便宜上、該プレボロウ・ビットはビット位置P
にてセットされ、後続のバイトが書込可能になったなら
ばそれはサイン・ビットとなる。例えば、セクション■
、で述べた32ビツトのコード(X)レジスタの中身が
次の通りであるとする。
Xレジスタ: oooooooo、pooooooo、XXXXXXX
X、 XXXXXXXXAレジスタ: 000aaaaa、 aaaaaaaa新しいバイトが
完成すると、内容は次のようになる。
Xレジスタ: pooooooo、nnnnnnnn、 xxxxxx
xx+xxxxxxxxAレジスタ: 000aaaaa+aaaaaaaa コード・レジスタがポジティブ(P=O)ならば、プレ
ボロウが使われたのであって、現バイトからのボロウが
必要である。したがって、新しいバイトnnnnnnn
nがコード・レジスタから現バイトからボロウが取られ
る。プレボロウを用いると、コード・レジスタの値は常
にAレジスタより大きくなり、将来のボロウは該コード
・レジスタの内容から取ることが可能になる。コード・
レジスタがネガティブ(P=1)ならば、現バイトから
の桁借りの必要はなく、未使用のプレボロウPは除去さ
れる。
コード(X)レジスタの内容は、Aレジスタの内容と比
較される。コード・レジスタの方が小さいならば、2つ
の事項が検出されている。まず、次に送出されるバイト
(nnnnnnnn)はゼロであること、第2に、現バ
イトからの桁借りの必要性があり得ることである。した
がって、ボロウは現バイトから取られ、レジスタの中の
ゼロ・バイトを経て伝播する。この結果、ゼロであった
バイトが“FF’ に変換される。この’FF″ をコ
ード・バッファに送りコード・レジスタの内容をシフト
させた後で、2つのプレボロウがセットされる。
1つはサイン・ビットとなる位置にセットされ、もう1
つは後続バイトについての「キャリー」ビット位置にセ
ットされる。したがって、コード・レジスタの内容の方
がAレジスタよりも小さいならば、 Xレジスタ: oooooooo、pooooooo、0OPx、 X
XXX、 XXXXXXXXAレジスタ: 000aaaaa、aaaaaaaa である。
後続のバイトが完成すると、 Xレジスタ: pooooooo、 Pnnnnnnn、  xxxx
xxxx、  xxxxxxxxAレジスタ: 000aaaaa、 aaaaaaaaとなる。
バッファ中の16進数’FF’はビット・スタッフィン
グ(充填)のトリガになるので、プレボロウ・ビットは
スタッフ・ビット(キャリー・レシーバ)位置に書き込
まれる。ゆえに、未使用のプレボロウはハードウェア・
コード・ストリームのキャリーと等価になる。
コード・レジスタの内容がAレジスタの内容以上ならば
、コード・レジスタの現在の内容はどんなボロウの要請
にも応えられるだけの大きさを持っていることになる。
現バイトがチェックされて、それが’FF″であるなら
ば、ビット・スタッフィングが引き起こされる。この場
合、プレボロウは要請されなかったので、挿入されたキ
ャリー・ビットは常にクリア(clear)である。
上記シーケンスはすべての要請を満たす。すなわち、ボ
ロウ伝播を阻止し、ハードウェアとコンパチブルなコー
ド・ストリームを生成する。すべてのゼロ・バイトが単
純に’FF’ に変換された場合でも、ハードウェア復
号器は結果として生じたコード・ストリームをデコード
することができる。しかしながら、送出されるべきバイ
トがゼロであるときにボロウが必要になるだろうか否か
を先読みして知ることによって、結果として生じるコー
ド・ストリームがハードウェア・コード・ストリームと
同一になる。実際、このように先読みすることによって
、ハードウェア・コード・ストリーム中のFFの存在が
検出される。
希望するならば、ハードウェアで’FF″FF−ンにつ
いて100′となるオーバフローの生じる可能性の有無
を先読みすることによって、ゼロ・バイトに続いて行う
ものと全く等価な逆のビット・スタッフィングを実行す
ることができる。このような操作により、上述のキャリ
ー伝播阻止と同様にしてボロウ伝播阻止を達成すること
ができる6■、フローチャートの9日 以下で説明するフローチャートでは、便宜上。
Qは上位12ビツトを持つ小数点の固定された小数とし
て定義されている。
フローチャートにあてはまる他の定義は以下の通りであ
る。
Aは16ビツトの整数だが、12ビツトの小数と4ビツ
トの整数に分ける2進小数点を持っ2進小数であると考
えることができる。先頭の3個の整数ビットは常にゼロ
である。最も下位の整数ビットは、この実施例では初期
設定時だけ非ゼロである。
A X Q eが新しいLPSの範囲を表わす。上記L
angdonの論文に述べられているようなスキュー(
skei+)・コーダーでは、これが2  kとなる。
他の特性づけも本発明と合致するように使うことができ
る。フローチャートでは、AとQeの積は、32ビツト
の精度の掛算であると仮定している。
結果は右へ12ビツトシフトされ、下位側の16ビツト
が新しいLPSの範囲のために用いられる。
LENはコード・ストリームのためのバッファの長さで
ある。これは(任意だが便宜上)256バイトにセット
される。LENは1にセットすることもできる。
BPSTは圧縮済データ・バッファの始まりを指示する
BEは圧縮済データ・バッファを越えた最初のバイトを
指示する。
BPは圧縮済データの現在バイトを示すポインタである
BはBPによって指示された圧縮済データ・バイトであ
る。
AMINは再正規化が必要となる時機を決定する。本実
施例ではAMINはx ’osoo’ にセットされる
。これは0.5に等しい。Aが0.5より小さくなると
、再正規化が行われる。
BRWは逆ソフトウェア・バージョンにおけるボロウ・
フラグである。
Tは新しく計算されたLPSレンジをセーブするための
仮装数である。
変数X、XC,XNEWおよびXFLAGは前述の定義
に合致する。
第11図には、本発明によるデータ圧縮/同解除の基本
フローチャート500が示されている。
開始の後、符号器は符号器初期化ステップ(INITE
NCプログラム)に従って初期設定される。
該ステップでは、上述の変数tこ初期値が割り当てられ
る。エンコード・プロシージャに従って(第1図の10
6のような)モデル・確率発生器より符号化のためにM
PS、QおよびYNデータが渡される。入力データの受
信が続く間は、符号化動作が継続する。符号化が完了す
ると、フラッシュ(FLUSH)・プログラムが呼び出
される。符号化済データは送信(つまり転送)される。
転送後しばらくすると、通常は該符号化済データの復号
が行われる。復号器の初期設定は復号器初期化(INI
TDEC)プログラムにより行われる。
(第1図の110のような)モデル・確率発生器からM
PSとQのデ・−夕が入力されて与えられると、YN事
象はデコード・プロシージャに従って復号される。復号
は、すべてのYN事象が復元されるまで継続する。
フローチャート全体を構成要素に分けると、それは符号
器関連プロシージャと復号器関連プロシージャに分かれ
るので、以下でもこれらを分けて説明する。
なお、図面中に登場する’SLL’は「左シフト論理」
操作(’5hifi 1eft logical’ o
peration)を意味する。
A、符号器関連プロシージャ INITENC(第12図ないし第14図)が符号器の
初期設定を行う。
インプリメントされるバージョンが第2図に示すハード
ウェア・バージョン(−H)か、第3図に示す逆バージ
ョン(−I)か、それとも第4図に示すソフトウェア・
バージョン(−8)かに従って、3つのバージョンのI
NITECがインプリメントされている。すべてのバー
ジョンに共通して、LENは256バイトに初期設定さ
れ、BEは圧縮済データ・バッファの終末に位置づけら
れるとともに、BPはBPST (つまり送るべきバッ
ファの実際の始まり)の1バイト手前に位置づけられて
いる。(BPによってアドレス指定される)バイトBは
′80′に初期設定される。これは、B=OまたはB=
 ’FF’ という特別な場合でも圧縮済データ・スト
リームにおける最初のバイトにトリガがかからないよう
にするためである。レンジAは’1000’ に、そし
てA M I Nはその半分の’o s o o’ に
、それぞれ初期設定される。
バージョン間の違いが現れるのは、Xの初期設定におい
てである。すべてのバージョンにおいて8個の圧縮済ビ
ットがレディになったことをフラグで知らすために、8
番目のffl5bが1にセットされる。逆バージョンは
200番目msbにプレボロウを持つ一方、ソフトウェ
ア・バージョンはこれをフラグの直後に挿入する。逆バ
ージョンについては、ボロウ・フラグBRWがゼロに初
期化される。
符号化プログラムENCODE (第15図ないし第1
7図)が与えられたMPSとQ入力に基づいてイエス/
ノウ(Y N)判断を符号化する。新しいLPSレンジ
が常に計算され、一時的にTにセーブされる。これらの
具体例では、AおよびQは、2進小数点を越えた12の
ビットからなる有限精度の数である。掛算(multi
plication)の後、結果は12ビツトの精度で
切り捨てられる。MPSパスにおいて、ハードウェア・
バージョンはXをTだけ増加させるとともに、At!:
Tだけ減少させる。他の2つのバージョンでは、MPS
テストの前にAをTだけ減少させるだけでよい。なぜな
ら、新しいMPSレンジはMPSパスとLPSパスの両
方で必要だからである。AとXの再正規化(r6nOr
B31ization)はRENORME (第18図
)が行うが、これはMPSパスにおいてAがAMINよ
り小さくなったときに必要である6 Iバージョンおよ
びSバージョンでは、LPSパスにおいて、方向は異な
るものの、MPSレンジの量だけXを動かさなければな
らない。すべてのバージョンに共通して、再正規化の前
に新たなLPSレンジとともにAがリセットされる。A
XQは常にAMINより小さいので、LPSパスではR
E N。
RMEが常に必要である。
RENORME (第18図)は、A値とX値の再正規
化を、一度に1ビツトずつ行う。Aがまずシフトされた
後、Xについて最上位ビットがセットされたか否かの試
験が行われる。セットされている場合、Xの次のシフト
によってそのフラグ・ビットが取り除かれるとともに、
1バイトがBYTEOUT (バイト・アウト、第19
図、第20図および第21図参照)によって出力される
。セットされていない場合、Xは単に1ビツト分シフト
されるだけである。このプロセスは、AがAMIN未満
である限り続く。
l3YTEOUT(第19図ないし第21図):復号器
は、各’FF″バイトの直後、つまり後続のバイトの先
頭にビットが2つ挿入されることを予期している。圧縮
済データの場合、先頭ビットは常にゼロとなるであろう
。2番目に大きな桁のビットはキャリー・ビットとなる
であろう。本発明のキー・パートは、3つのバージョン
の符号器のどれもが同じ圧縮済を生成すること、および
その結果としてハードウェア・インプリメンテーション
の場合でもソフトウェア・インプリメンテーションの場
合でも異なる最小計算バージョンを選択することができ
ることにある。
第19図では、ハードウェア・バージョンがまず最初に
最後のバイトBを見て、Bが’FF’ならば、直後に5
HIP6−H(送出6−H)において6ビツトだけを出
力する。どんなキャリーでも、新しいバイトの2番目に
大きな桁のビットに現れるであろう。Bが’F F’未
満ならば、Xのキャリーについてテストが行われる。す
なわち、第9図を参照すると、位置21のキャリー・ビ
ットがセットされる。キャリーがないならば、8ビツト
の出力を5HIP8−H(第25図)によって行うこと
ができる。キャリーがあれば、最後のバイトBについて
1だけ増分する必要があり、結果について’F F’ 
となったか否かのテストが行われる。結果が’FF’で
あわば、既にBに加算法のXにおけるキャリーを、後続
の6ビツトを出力する前にクリアしなければならない。
結果が’FF’でないならば、8ビツトを新しいバイト
へ出力してもよい。
第20図では、逆符号器用バージョンのBYTEOUT
が、まず、XがBからのボロウを必要とするほど大きい
か否かのテストを行う。大きいならば、処理はBIGX
(第30図)にまかせられる。大きくないならば、5H
IP8FF−I (第28図)が適切なパス(path
)であるか否かを判断するために、XとAの和が可能性
のある将来のボロウィング用のしきい値と比較される。
大きくないならば、現在のBに基づいて、6ビツトと8
ビツトのどちらを出力すべきかについての決定が行われ
る。
ソフトウェア用のバージョンであるBYTEOUT−5
(第21図)は、Xが正であるか否かをテストする。X
が正ならば、ボロウ・ビットは使用済であり、8ビツト
を出力する前にBを1だけ減分しなければならない。ボ
ロウ・ビットがまだセットされているならば、AがXと
比較される前にXからボロウ・ビットがクリアされる。
XがAより小さいならば、将来ボロウが必要になる可能
性があるが、新しいバイトがゼロとして出力される場合
には、ボロウを実行できなくなる。(AはせいぜいIF
FF″であり、又は8個の出力ビットのうちにゼロだけ
を持っている。)SHIP8FF−3(第29図)はプ
レボロウを行って新しいバイトを’FF’ に変換し、
借りたビットをXにセーブする。Bが’FF’ ならば
、5HIP8−8(第27図)によって8ビツトが送出
される代りに、5HIP6−8 (第24図)によって
6ビツトだけが送出される。
S HI P 6− H(第22図)は、NEXTBY
TE (第31図)における出力バイト・ポインタを増
分し、Xからの新しいBビット22〜15に保持する。
先頭ビットがゼロであることは保証されている。2番目
のビットはどんなキャリーも含む。6番目に大きなビッ
トにてフラグが挿入される前、後続の15ビツトだけが
Xに残される。この結果、6個の新しいビットが準備さ
れると、新しいバイトが出力される。なぜなら、2個の
ビットがXに残っているからである。5HIP6−3(
第24図)は、フラグ・ビットをすぐ追うようにボロウ
・ビットがセットされる点を除いて、5HIP6−Hと
同じである。
第23図の5HIP6−Iに示されるように、逆符号器
の場合は、6ビツトを出力するプロセスがもつと複雑に
なる。Xの中のビットを反転させなければならないから
である。出力ポインタはNEXTBYTEによって増分
される。BRWがセットされる場合は、ボロウによって
先行する1FF′が生成された。次に、場合によっては
キャリーをプラスした6ビツトが7個の1′ ピッ1〜
から引かれて、BRWがリセットされる。BRWがセッ
トされない場合、6個の11′ビツトを用いて6ビツト
の反転が行われる。先行するバイトが’FF’であると
、Xにはキャリーが存在し得ないからである。Bの中の
最上位のビットがクリアされるとともに、Xのうちの最
下位側の15ビツトを除くすべてのビットがクリアされ
る。続いて。
上位から6番目の位置にてフラグが挿入される。
5HIP8 (第25図ないし第27図参照)は、すべ
てのバージョンが似通っている。ポインタを後続の出力
バイトBに増分した後、Xの中のビット20〜13にあ
る8ビツトがBにて保持される。
逆符号用バージョンでは、まず、’FF’ から引き算
を行うことによって、これらのビットを反転させる。X
のうちの最下位側の13ビツトを除くすべてのビットが
クリアされて、フラグは上位から8番目のビットにて挿
入される。ソフトウェア用バージョンでは、フラグの後
にボロウ・ビット挿入される。
逆符号器用およびソフトウェア符号器用バージョンにお
いては、必要ならば已について減分を施すことが可能で
あることが保証されなければならない。そこで、5HI
P8FF−I(第28図)では、ボロウ・ビットがセッ
トされると(つまり、Bが’FF’ であると)、6ビ
ツトを送出しなければならない。BRWがOならば、出
力ポインタを増分する前にBが減分され、後続のバイト
が’FF’ にセットされ、そしてBRWが後続バイト
用にセットされる。
ソフトウェア用のバージョンである5HIP8FF−5
(第29図)では、後続のバイトに′FF′を保持する
前に、必ずBの減分を行う。余分のボロウがXに挿入さ
れる。Xでは、該ボロウが必要とされない場合、キャリ
ーとして後続のバイトの中で出力される。
BIGX(第30図)が必要なのは逆符号器用バージョ
ンだけである。ボロウ・ビットがセットされると、6ビ
ツトが送出される。ボロウ・ビットがセットされない場
合、Bをデイクレメントして8ビツトを送出するのが安
全である。
NEXTBYTE (第31図)は、BPを動かして圧
縮済データ用バッファの後続バイトをアドレスする。イ
ンクレメントされた後、BPがバッファの終端以上の値
になるならば、バッファを転送しなければならず、BP
もバッファの先頭に戻るようリセットしなければならな
い。必要ならばBPSTとBEが適当に変化することが
想定されている。
最後のシンボルが符号化された後、まだXの中にある2
1個の圧縮済ビットについてはフラッシュ・アウトする
必要がある。FLUSH−H(第32図)では、CTが
21に初期設定され、そしてフラグが最上位のビットに
来る(つまり、Xが負になったことを示す)まで、Xの
中での各シフ1〜に対応してデイクレメントされる。も
う1回シフトされると出力ビットがバイト境界に位置さ
れる。そうすると、FINALBYTES−H(第35
図)によるこれらの最後のバイトの出力が可能になる。
FLUSH−I C第33図)では、最初に、最終の被
加数Aのレンジから1を引いたものを加えなければなら
ない。1を引くことは、上述したEを引くことに対応す
る。FINALBYTES−■が残りのバイトをフラッ
シュ・アウトできるように、ビットはバイト状に並べら
れる。
FLUSH−8(第34図)はXを区間の底へ移動させ
るが、これはハードウェア・バージョンによって生成さ
れる値に正確に位置づける。ビットのバイト・アライニ
ングの後、ボロウが使用済の場合、FINALBYTE
S−5(第37図)において最終バイトが出力される前
に最後のバイトをデイクレメントしなければならない。
FINALBYTES−H(第35図)は、すべてのビ
ットがフラッシュ・アウトされてしまうまで、ループの
中で、BYTEOUT−H(第19図)と同じタイプの
動作を行う。FLUSH6−HとFLUSH8−Hのブ
ロックは、CTを6ビツトまたは8ビツトだけ適当にデ
イクレメントすることを含む。それが完了すると、記憶
されている最後のバイトを越すまでBPがインクレメン
トされて、バッファの最後の内容が送呂可能になる。
FINALBYTES−I (第36図)は、X+A>
 ’200000’ が起こり得ないことを除いて、B
YTEOUT−Iと同様である。なぜなら、Aは’20
0000’未満だったXから引かれたからである。反転
プロセスのために、最後のバイトに余分の′1′が含ま
れている可能性がある。同一のコード・ストリームが望
ましいならば、これらは除去しなければならない。
ソフトウェア式符号器用のバージョンFINALBYT
ES−3(第37図)は、先行するバイトがFF’であ
るか否かに応じて6ビツトまたは8ビットを送出する。
プレボロウの処理はすでにFLUSH−3にて行われて
いる。Xは区間の底に動かされたので、BYTEOlJ
T−3におけるAを用いたテストは無関係である。
FLUSH−H,S (第38図)では、ハードウェア
・バージョンとソフトウェア・バージョンのどちらの場
合でも、新しいバイトを指し、ビット22〜15を記憶
し、Xの下位側の15ビツトだけをセーブし、6だけX
をシフトし、かつ6だけCTをデイクレメントすること
によって、6ビツトが出力される。
FLUSH8−H,S (第40図)では、ハードウェ
ア・バージョンとソフトウェア・バージョンのどちらの
場合でも、新しいバイトを指し、ビット20〜13を記
憶し、Xの下位側の13ビツトだけをセーブし、Xを8
ビツト分シフトさせ、かつCTを8だけデイクレメント
することによって、8ビツトが出力される。FLUSH
8−I(第41図)では、逆符号バージョン用にこれら
の8ビツトを反転させる必要もある。
B、復号器関連プロシージャ INITDEC(第42図ないし第44図)が復号器を
初期化する。復号器がハードウェアに最適なもの(H)
、ソフトウェアに最適なもの(S)、それともシンボル
の順序付を逆にしたもの(I)の何れに関連するかに応
じて、I N I T D E Cの3つのバージョン
がインプリメントされている。
(第5図の復号器210〜216を参照)、すべてのバ
ージョンは、圧縮済データの新しいバッファを獲得する
ことから始まる。これは、BPSTとL E Nの初期
化を想定している。BEは圧縮済バッファの終端を越え
たバイトに向けられ、かつBPはバッファの先頭を指J
ように初期化される。
レンジAは、S−’1000″については110oo′
に初期化される。ハードウェア(H)および逆復号器(
I)のバージョンについては、AMINは、’osoo
″に初期化される。ソフトウェア(S)バージョンにつ
いては、AMINは一’o s o o’ に初期設定
される。
バージョン間の差異は、Xの初期化にも現れる。
INITDEC−Hの場合、2つのバイトがビット28
〜13に配置される。圧縮済データの先頭ビットはOで
あり、そしてこれはビット28にシフトされる。1番目
のバイトが位置28〜21にシフトされ、BPがGET
BYTE (第50図)にてインクレメントされた後、
2番目のバイトがビット20〜13に加算される。先頭
バイトは’FF’ にならないよう保証されており、テ
ストの必要はない。復号プロセスはXCの中のビット、
つまりXの高位の2バイト(ビット31〜16)に注意
するだけである。新しいバイトが必要であることを示す
フラグは、ビット5に配置される。
なぜなら、コード・ストリームの先頭がOであるからで
ある。INITDEC−I (第43図)では、Xの初
期化が位置27〜13に15個の′1′ビットを持つよ
うに初期化されるとともに、ビット5がセットされる。
(これは、フラグが必要とされる新しいバイトである。
)続いて、最初の2バイトをビット28〜13から引く
ことが可能になる。第44図では、ソフトウェア式復号
器用のINITDEC−3が、区間(−1)〜0におい
て作動している。Aは−1(−X ’1000’ )に
初期化される。再正規化点は−0,5であり、−x ’
5ooo’ として表わされている。初期値のAはOか
ら引かれてXCを’FOOO’ にセットする。フラグ
・ビットは5番目のビットにてセットされるとともに、
1番目のバイトがビット28〜21に加算される。GE
TBYTEにてポインタを次のバイトにインクレメント
した後、2番目のバイトがXのビット20〜13に加算
される。
DECODE (第45図ないし第48図)としては4
種類のインプレメンテ−ジョンが示されている。第45
図と第46図はハードウェア・バージョンの異なるアプ
ローチ(−Hl、−H2のように示す)を示し、第47
図は逆バージョン(−■)を示す。すべての場合におい
て、まずYNがM P Sシンボルにセットされ、新し
y)L P Sレンジが計算され、Tに一時的にセーブ
される。DECODE−Hl (第45図)では、Xが
少なくともTと同じ大きさならば、MPSパス(pat
h)をフォローして、XCとAをともにTだけデイクレ
メントする。逆復号器用バージョンのDECODE−I
  (第47図)では、テストの前にAをTだけデイク
レメントする。なぜなら、この新しいMPSレンジはL
PSバスでも必要とされるからである。同様に、第2の
ハードウェア・バージョンDECODE−H2(第46
図)では、MPSが生じたかのように、AとxCをどち
らも予めデイクレメントする。多くのプロセッサでは、
減算の結果、状態コードがセーブされるので、XCにつ
いてOとの比較を行う次のテストは、Tとの比較よりも
好ましい。しかしながら、DECODE −H2の場合
、YNの反転、AをLPSレンジ(T)にセントするこ
と、およびRENORMD(第49図)で再正規化を行
うことの前に、LPSパスはXCを回復しなければなら
ない。MPSパスで再正規化が必要になるのはAがAM
IN未満になった場合だけである。逆バージョンでも、
xCが少なくともAと同じ大きさであって、LPSが生
じたことを示す場合に、XCを新しいMPSレンジであ
るAの分だけデイクレメントしなければならない。第4
8図では、ソフトウェア用DECODE−8についての
復号プロシージャの結果、YNがMPS値にセットされ
る。続いて、負のAにQeが掛は合わされ、算術的に右
へ12ビット分シフトされてから、Tにセーブされる。
負のTは負のAから引かれて、その大きさを減らす。X
CがA以上(つまり、XCの大きさがAのそれよりも小
さい)ならば、MPSが復号される。その場合、負のA
が負のAMIN以上(つまり、Aの大きさがA M I
 Nのそれよりも小さい)ならば、RENORMD (
第50図)によって再正規化が行わ九る。LPSが復号
されると、負のAを加算することによって、XCが負の
1の方へ動かされる。
YN値はLPS値に変換され、かつAはLPSの区間の
サイズにセットされる。再正規化は常に必要である。
RENORMD (第49図、第50図)は、A値とX
値を一時に1ビツトずつ再正規化する。第49図では、
AとXの両方がシフトされた後、XFLAGの段階に入
り、Xの最下位のバイトについて、セットされているビ
ットの有無がテストされる。そのようなビットがないな
らば、新しいバイトの獲得に移る。このプロセスは、A
がAMIN未満であり限り続く。第50図では、ソフト
ウェア・バージョンRENORMD−5についての復号
器再正規化プロセスが、AとAMINの比較が逆になっ
ている点を除き、ハードウェア・バージョンおよび逆バ
ージョンの場合と同じであることが示されている。
BYTEIN(第51図および第52図)に示されるよ
うな新しいバイトをXに移すプロセスの際、どちらのバ
ージョンにおいても、GETBYTE (第53図)が
次のバイトに移る前に、最後のバイトBについて、これ
が’FF″バイトであったか否かのテストが行われる。
’F F’ に続くどのバイトの先頭の2ビツトも符号
化の際に挿入されたものだから、復号の際に適切に考慮
しなければならない、BYTEINは、ハードウェア式
およびソフトウェア式復号のどちらの場合も同じである
。BYTEIN−H,S (第51図)では、’FF’
があったならば、XNEW (Xの最下位の2バイト)
が値4にセットされる。XFLAGにおいて2ビツトシ
フトさせてフラグを位置づけるためである。このように
、フラグは6ビツトだけがデータ・ストリームの中にあ
り、2ビツトがキャリーのために含まれていることを認
識する。
通常2番目に下位のバイトに配置される次のバイトは、
余分の2ビツトの方へ送り出され、Xに加算される。’
FF’ がなかったならば、XNEWは右側のバスに示
される通りにセットされる。逆バージョンBYTEIN
−I (第52図)では、XNEWの先頭側のビットに
おいて、6個または8個の″1′ビットをプリセットす
る必要がある。
圧縮済データを正確に反転させるためである。同時に、
下位バイトにおいてフラグ・ビットがセットされる。正
しくシフトされた新しいデータは、XまたはXNEWか
ら引かれる。
GETBYTE (第53図)は、BPを動かして、圧
縮済データ・バッファの中の次のバイトをアドレスする
。インクレメントされた後のBPが少なくともバッファ
の終端である場合は、新しいバッファを獲得せねばなら
ず、かつBPを該バッファの始端ヘリセットしなければ
ならない。必要ならば、BPSTとBEは適当に変更さ
れるものと想定する。
上述のソフトウェア型符号器用のプロシージャは、通常
のメインフレーム・コンピュータ、例えばIBM(登録
商標)3370、あるいはパーソナル・コンピュータ、
例えばIBM  PC−XT、PC−ATにおいてイン
プリメント可能である。
プロシージャのインプリメントは、上記のようなフォワ
ード・ポリッシュ・ノーチージョンを使うプログラム開
発システム言語等の高級言語を用いて行うことができる
■、ハードウェアの具  の説I 第54図には、符号器ユニット502とキャリー・オー
バー・出力バッファ504を含むハードウェア型符号器
が示されている。符号器ユニット502は、入力として
、Q値、MPSセンス・ビット、そしてYN判断事象入
力を受は取る。これに応答して、符号器ユニット502
は、コード・ストリームをどれだけシフトすべきかを示
すSHI FTAMT出力と、2進キヤリー・アウト(
直を表わすCl0UT出力と、13ビツトの未正規化コ
ード・ストリームに対応するC/UNNORM出力を生
成する。符号器ユニット502からの出力はキャリー・
オーバー・出力バッファ504に入力される。該バッフ
ァ504は、圧縮されたコード・ストリングとともに、
出力制御を出力する。
出力制御は、圧縮済データのうちの準備されたバイトの
数がOll、2の何れであるかを指定する。
第55図は、符号器ユニット502の詳細を示す、MP
SとYN入力はゲート510.512を通過し、その出
力はA論理512に入力される。
A論理512は、現在の区間に関して適当なA値と、S
HIFTAMT出力を生成する。A値は乗算器514に
てQと掛は合わされる。生成された値(A X Q)は
一時的な値Tとして記憶保持される。(AXQはへの次
の値を決定するのに用いられる。)ゲート出力はC論理
516にも入力される。C論理516はCl0UTとC
lUNNORMを生成する。
第56図には、A論理の詳細が示されている。
同図によると、T(つまりAXQ)が減算器520に減
数として入力される一方、A値は被減数として入力され
る。MPSOP入力に従ってMPSの符号化中であるな
らば、新しいAの値A (neν)は、A (old)
  AXQとして導かれるべきである。
LPSの場合は、AXQがマルチプレクサ522を出る
。マルチプレクサの出力は優先順位符号器524に入力
される。g!i先順位符号器524は、Aバス上の先行
するゼロの数をカウントし、Aバスの最上位のビットに
1を回復するのに必要とされるシフト址を生成する。A
バスが再正規化を必要としないならば、SHIFTAM
T出力はゼロである。SHI FTAMT出力はAシフ
タ526に転送され、ここでシフトが完了される。シフ
ト出力は次にAレジスタ528に入力される。Aレジス
タ528の保持する数値は、減算器520のための次の
被減数となる。
第57図には、C論理516の詳細が示されている。加
算器540の1つの入力は値T(つまりAXQ)であり
、もう1つの入力はコード・ストリームの以前の値であ
る。MPS事象の場合は、和がClUNNORMになる
。LPS事象の場合は、コード・ストリームに変化はな
い(マルチプレクサ542を参照)。マルチプレクサの
出力は、SHIFTAMT値とともにCシフタ544に
入力される。AとCの更新された値は、このように、同
じだけのふされしい数の分シフトされる。Cシフタ54
4の出力は、Cレジスタ546に入力される。Cレジス
タ546は、コード・ストリームのうちの最新の部分を
保持する。シフト・プロセスの際必要に応じて、下位側
のビットにゼロが充填される。加算器540は、キャリ
ーが生じたことを表示するCl0UT出力も供給するこ
とに注意されたい。
第58図は、P/Q最適ハードウェア型具体例の復号器
600の部分のブロック図である。QとMPSは復号器
ユニット601に入力される一方、コード・ストリング
はC/IN入カバツカバッファ602される。
C/IN人カバツカバッファ602縮済データを1ない
し2バイト受は付けるとともに、該データを直列化する
。その結果、次の12ビツトが、インストリング(IN
STRING)として、復号器600により利用可能と
なる。特別のキャリー・ビットC/INは、さらに復号
器601に入力されるが、(上述したように)時々 ’
F F’ バイトに続くとき以外は通常0である。
復号器ユニット601の出力はYNOUTとSHI F
TAMTである。SHIFTAMTは入力バッファ60
2にフィード・バックされる。復号器ユニット601の
詳細な動作は第59図に示されている。特に、ClIN
、インストリング、およびMPSはCD論理604に入
力される。CD論理604は、MPSとLPSのどちら
の事象が復号されつつあるかを示す第1の出力を供給す
る。
MPSOP出力は、乗算器608からのT(つまり現在
のAXQ)とともにA論理606に入力される。上述の
ように、MPS、LPS事象のそれぞれに応じて適切な
新しいA値が生成され、乗算器608に入力される。さ
らに、A論理606によってSHIFTAMT出力が生
成されて、CD論理604に入力される。現在のT値は
CD論理604にも入力される。CD論理604は様々
な入力に応じてYNOUT (YN出力)を生成する。
第60図には、CD論理604の動作の詳細が示されて
いる。まず、C/ I N値の有無に応じて、TとT−
1のどちらかがマルチプレクサ618を通過して、減算
器620に減数として供給される。
被減数はCDレジスタ622の内容である。減算器62
0は差の値を出力するとともに、ポロウも適切に出力す
る。ボロウはMPS操作(MPSOP)を示唆する。C
/INは加算器624の加数となる。もう一方の加数に
なるのは、CDレジスタ622の中身である。加算器6
24からの和と減算器620からの差の出力とがCDマ
ルチプレクサ626に入力される。ボロウがなければ、
前者がマルチプレクサ626の出力となり、ボロウがあ
れば、後者がマルチプレクサ626の出方となる。マル
チプレクサ626の出力は、CDバス628上を運ばれ
、CDシフタ630に供給される。シフト量SHI F
TAMTは、CDバス値がCDレジスタに記憶できるよ
うになるまでに、CDバス値をどれだけシフトしなけれ
ばな・らないかを決定する。シフトの際、下位側のビッ
トは、インストリングの上位側のビットによって充たさ
れる。
復号器ユニットは、インストリングからの12個までの
ビットにプラスしてキャリー人力C/INを用い、デー
タを圧縮解除してオリジナルのYNデータを復元する。
特に、ボロウ出力とMPSセンス値はゲート634に入
力され、その出力はYESとNoのどちらの判断を復号
中であるかを表示する。
第54図ないし第60図に示したハードウェアは、要す
るに、上記フローチャートおよびその解説の通りに作動
する。
以上、本発明を2進算術符号化について説明してきたが
、判断の結果が3つ以上あり得るマルチシンボル環境に
おける符号化、復号も(それがハードウェアに適したも
のであれ、ソフトウェアに適したものであれ)本発明の
技術的範囲内である。
すなわち1本発明は、区間を3つ以上のセグメント、例
えばa、b、c、およびdのセグメントに分割するよう
にし、かつ第1の符号器によれば符号点は現在の区間の
下端にセットされ、増分されていき(値が減分されるこ
とはない)、第2の符号器によれば符号点は現在の区間
の上端にセットされ、減分だけに従う(値が増分される
ことはない)ようにした場合も含む。
このような環境でも、被加数値Aおよび符号点C(また
はZ)の決定は、2准将号化環境と同様である。例えば
、事象a / b / c / dが確率線区間に沿っ
て降順に配置されており、個々の確率が0.5.0.1
25.0.25.1.125であるとしよう。
判断事象は2値シンボルのときのP/Qのようにランク
順であり、数直線に沿ってセグメントPa、Pb、Pc
、Pdを形成する。ここで、Pa≧P b > P c
≧Pdである。Q/P型の符号器は、下端から符号化し
ていき、新たなコード・ストリーム値を生成するのに多
くの加算を要するであろう。特に、「ハードウェアJ 
Q/P型符号器のコード・ストリームは、 によって与えられる。
ここで、N(i)は、M事象のi番目のセットの符号化
の際に選択される事象である。
「ソフトウェア型」符号器であって、ランク順が反対で
ある場合、っまりP a < P b < P c <
 P dである場合には、符−量化は次の式に従う。
連する加算の数は、chの計算の場合よりも平均して少
ない。しかしながら、もしΣQ e (j )が既知な
らば、2つの方法は計算に関して全く似たものになる。
■、小さなデータ・セットについてのテスト・シーケン
ス テスト・ファイルの生成は、2進シーケンスにおけるO
の確率が0.1875である乱数発生器を使って行った
。ファイルの中の実際のゼロの数は、予期した通り、4
8であった。Q値は’030、、O’  (12ビット
精度で0.1875) に固定した。MPS値は1に固
定した。したがって、シンボルが1のとき、MPSが符
号化された。
下記第3表に示す符号器テストでは、YNシンボルの前
に事象カウンタecが示されている。A値とX値が各符
号化サイクルの終りに与えられる。
再正規化の合計回数をrビット」の欄に示している。「
コードバイト」は出力された通りに掲載しである。この
欄に2つのバイトが掲載されていることがあるが、それ
は新しいバイトと、変更された先行バイトを両方示して
いるのである。
テスト・データを16進数で表示すると次のようになる
F3B7FAFEBFEFD6C7F7FFFDFE7
FFBDFF3FDFFFF97F6F5F7FEB9
7BDF76EDD7tE7FFこのファイルの場合、
符号化されたビット・カウントは、最終データをフラッ
シュするためのオーバーヘッドも含めて192である。
実際に圧縮されたデータ・ストリームは、3つの符号器
のどの場合も、16進数で表示すると次のようになる。
3EBE5AO84D54CDAD9D6D 187C
8CO22272CB 2C72FOE5693D88
OLnの &             6J         
                 −コーーローーー
ロー0−−−−−−00−−−−−−−−−−ψトドト
ドの E1発明の効果 本発明によれば、送信側の符号器の従う取決と受信側の
復号器の従う取決が異なっても、データの送受信が可能
になるという優れた効果が得られる。
【図面の簡単な説明】
第1図は、データ圧縮/圧縮解除システムの−。 般的なブロック図である。 第2図は、第1のタイプの符号器/復号器による算術符
号化操作を説明するための数直線を示す図である。 第3図は、第2のタイプの符号器/復号器によ   □
る算術符号化操作を説明するための数直線を示す図であ
る。 第4図は、第3のタイプの符号器/復号器による算術符
号化操作を説明するための数直線を示す図である。 第5図は、複数の互いに異なる符号器を示すとともに、
その何れもが複数の互いに異なる復号器の何れと結びつ
けても使用し得ることを説明するだめのブロック図であ
る。 第6図は、第5図の符号器のそれぞれが、判断事象に応
答してどのように動作するかを説明するための図である
。 第7図は、事象の順序付に関して同一の取決を持つ2つ
の異なる符号器によって生成される2つのコード・スト
リームが収束する様を説明するための図である。 第8図は、事象の順序付に関して、第7図とは逆である
がどちらも同一の取決を持つ2つの異なる符号器によっ
て生成される2つのコード・ストリームが収束する様を
説明するための図である。 第9図は、本発明による符号器側のシフト・レジスタに
おけるビットの割当の説明図である。 第10図は、本発明による復号器側のシフト・レジスタ
におけるビットの割当の説明図である。 第11図は、本発明によるデータ圧縮/圧縮解除システ
ムの行う一般的な動作を示すフローチャートである。 第12図ないし第14図は、3つの異なるタイプの符号
器のそれぞれに関して、初期設定プロシージャを示すフ
ローチャートである。 第15図ないし第17図は、3つの異なるタイプの符号
器について、符号化プロシージャを説明するフローチャ
ートである。 第18図は、どの判断についても区間のサイズが最小値
AMIN以上となるようにするため、現在の区間とコー
ド・ストリームを同じように再正規化する方法を示すフ
ローチャートである。 第19図ないし第21図は、それぞれキャリーまたはボ
ロウの可能性を考慮して、データ1バイトとともに送り
出すデータ・ビットの数を決定するBYTEOUT操作
を示すフローチャートである。 第22図ないし第29図は、1バイトについて6または
8ビツトのデータが送り出される様を、タイプの異なる
符号器毎に示すフローチャートである。 第30図は、特定のボロウ状況が生じた後に行われるプ
ロシージャを示すフローチャートである。 第31図は、新しくバイトを記憶するにつれてバッファ
・ポインタを動かしつつ、バイトがバッファ・メモリに
入力される様を説明するフローチャートである。 第32図ないし第34図は、それぞれ、最後のシンボル
の符号化が完了した後に、またバッファ・メモリに送出
されていなかったXレジスタの中のデータが「フラッシ
ュ」される様を説明するフローチャートである。 第35図ないし第37図は、それぞれ、Xレジスタから
ビットをフラッシュ・アウトする手順の後半の部分を示
すFINALBYTESのフローチャートである。 第38図ないし第41図は、それぞれFINALBYT
ES操作のフラツシイング・ステップをさらに詳細に説
明するフローチャートである。 第42図ないし第44図は、3つのタイプの異なる復号
器毎に、初期設定プロシージャを示すフローチャートで
ある。 第45図ないし第48図は、それぞれ、復号プロシージ
ャを説明するフローチャートである。 第49図および第50図は、それぞれ、復号器で行う再
正規化を示すフローチャートである。 第51図および第52図は、それぞれ、各タイプの復号
器が符号化されたバイトを入力する様を示すフローチャ
ートである。 第53図は、バイトがバッファに入力される際のバッフ
ァ・ポインタの移動を示すフローチャートである。 第54図ないし第57図は、それぞれ、ハードウェアに
よる符号器またはその一部を示すブロック図である。 第58図ないし第60図は、それぞれ、ハードウェアに
よる復号器またはその一部を示すブロック図である。 FIG、2 八−ト°ウェア(−H)乍1号呑/イ欽号呑FIG、 
 3 道 (−■)ソフトウニ了符号念 FIG、4 C=C+A ソフトウェア(−5)符号舌/盪号器 砺   臭 ロー し−二 FIG、24     FIC,25 FIG、35 FIG、50 FIG、52 FIG、53

Claims (1)

  1. 【特許請求の範囲】 符号器が、入力された判断事象の系列に応答して数直線
    上のある1つの区間と該区間に含まれる1つの点とを識
    別し、該識別された点に対応する数値をもつて入力され
    た判断事象の系列を符号化したコード・ストリームとす
    るデータ圧縮システムにおいて、 同一の判断事象系列の入力に関して、第2の取決に従う
    第2の符号器によつて生成される第2のコード・ストリ
    ームとは数値が異なり、かつ対応する上記数値線上の点
    も上記第2の符号器によつて識別される区間には含まれ
    ない第1のコード・ストリームを上記第2の取決とは異
    なる第1の取決に従つて生成する第1の符号器と、 上記第1のコード・ストリームの数値を変更し、変更後
    の第1のコード・ストリームの数値に対応する上記数直
    線上の点が、上記第1の符号器に入力されたものと同一
    の判断事象系列に関して上記第2の符号器によつて識別
    される上記数直線上の区間に含まれるようにする手段 とを含むことを特徴とするデータ圧縮システム。
JP62202006A 1986-09-15 1987-08-14 デ−タ圧縮システム Granted JPS6376524A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US907700 1986-09-15
US06/907,700 US4891643A (en) 1986-09-15 1986-09-15 Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders

Publications (2)

Publication Number Publication Date
JPS6376524A true JPS6376524A (ja) 1988-04-06
JPH0258812B2 JPH0258812B2 (ja) 1990-12-10

Family

ID=25424504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62202006A Granted JPS6376524A (ja) 1986-09-15 1987-08-14 デ−タ圧縮システム

Country Status (7)

Country Link
US (1) US4891643A (ja)
EP (1) EP0260462B1 (ja)
JP (1) JPS6376524A (ja)
AU (1) AU598587B2 (ja)
BR (1) BR8704622A (ja)
CA (1) CA1292070C (ja)
DE (1) DE3788763T2 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146221A (en) * 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
JPH0834432B2 (ja) * 1989-01-31 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
IL91158A (en) * 1989-07-28 1993-01-31 Ibm Israel Method and system for arithmetic coding and decoding
US5023611A (en) * 1989-07-28 1991-06-11 At&T Bell Laboratories Entropy encoder/decoder including a context extractor
JP2877375B2 (ja) * 1989-09-14 1999-03-31 株式会社東芝 可変レートコーデックを用いたセル転送方式
US5045852A (en) * 1990-03-30 1991-09-03 International Business Machines Corporation Dynamic model selection during data compression
AU1996292A (en) * 1991-05-17 1992-12-30 Analytic Sciences Corporation, The Continuous-tone image compression
KR950013404B1 (ko) * 1991-11-15 1995-11-08 미쯔비시덴끼 가부시끼가이샤 부호전송장치
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
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
DE69320147T2 (de) * 1992-11-13 1999-01-14 Canon Kk Vorrichtung zur Bildkodierung
US5357250A (en) * 1992-11-20 1994-10-18 International Business Machines Corporation Adaptive computation of symbol probabilities in n-ary strings
US6009200A (en) * 1992-12-17 1999-12-28 Sony Corporation Dynamic image processing apparatus and method
FR2703482B1 (fr) * 1993-03-29 1995-06-02 Digital Equipment Int Procédé de mise à jour de la taille de l'intervalle dans la méthode du codage arithmétique.
US5563595A (en) * 1993-12-23 1996-10-08 International Business Machines Corporation Method and apparatus for compressing data
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
AU698055B2 (en) * 1994-07-14 1998-10-22 Johnson-Grace Company Method and apparatus for compressing images
US5822456A (en) * 1994-07-14 1998-10-13 Johnson-Grace Optimal spline interpolation for image compression
JPH08116534A (ja) * 1994-10-18 1996-05-07 Seiko Epson Corp 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法
US5818369A (en) * 1996-03-07 1998-10-06 Pegasus Imaging Corporation Rapid entropy coding for data compression or decompression
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
US5912636A (en) * 1996-09-26 1999-06-15 Ricoh Company, Ltd. Apparatus and method for performing m-ary finite state machine entropy coding
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
WO1999037085A2 (en) * 1998-01-16 1999-07-22 Comsat Corporation Arithmetic coding-based facsimile compression with error detection
ATE445935T1 (de) * 1998-03-23 2009-10-15 Koninkl Philips Electronics Nv Arithmetische codierung und decodierung eines informationssignals
US6728377B1 (en) * 1998-07-09 2004-04-27 Ricoh Company, Ltd. Coding apparatus and an information processing apparatus provided with the coding apparatus
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US6782047B1 (en) * 1999-11-09 2004-08-24 Nokia Networks Oy Variable length encoding of compressed data
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US7146053B1 (en) 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
US6941019B1 (en) 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
KR100405819B1 (ko) * 2001-01-15 2003-11-14 한국과학기술원 이진 영상의 데이터 압축 및 복원방법
WO2002063867A2 (en) * 2001-02-06 2002-08-15 Sasken Communication Technologies Limited A data decompression technique for image processing
JP3801501B2 (ja) * 2001-12-18 2006-07-26 三菱電機株式会社 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
ES2316749T3 (es) * 2002-05-02 2009-04-16 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Procedimiento y disposicion para la codificacion y la descodificacion aritmetica de estados binarios asi como programa informatico correspondiente y medio de almacenamiento legible por ordenador correspondiente.
JP3853710B2 (ja) * 2002-07-15 2006-12-06 Necアクセステクニカ株式会社 ディジタル画像符号化装置およびディジタル画像符号化方法
US6714145B1 (en) 2002-09-26 2004-03-30 Richard Marques Method and apparatus for integer-based encoding and decoding of bits
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
US7126955B2 (en) 2003-01-29 2006-10-24 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US20050086383A1 (en) * 2003-10-17 2005-04-21 Nokia Corporation Optimizing the compression efficiency in a packet data communication
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
WO2006038716A1 (en) * 2004-10-07 2006-04-13 Matsushita Electric Industrial Co., Ltd. Picture coding apparatus and picture decoding apparatus
US8159940B1 (en) 2004-11-11 2012-04-17 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
US7265691B2 (en) * 2005-06-23 2007-09-04 1Stworks Corporation Modeling for enumerative encoding
US7783781B1 (en) 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US8275909B1 (en) 2005-12-07 2012-09-25 F5 Networks, Inc. Adaptive compression
FR2895602B1 (fr) * 2005-12-22 2008-03-07 Assistance Tech Et Etude De Ma Dispositif et procede d'encodage de type cabac
US7882084B1 (en) 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US8417833B1 (en) 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US8321326B2 (en) * 2009-09-15 2012-11-27 Auerbach Group Llc Method and system for enhancing the efficiency of a digitally communicated data exchange
US8768078B2 (en) 2010-04-07 2014-07-01 Apple Inc. Intelligent media decoding
US8779950B2 (en) 2012-03-05 2014-07-15 Dcba, Llc Command encoded data compression
CN104394418B (zh) * 2014-09-23 2018-06-05 清华大学 一种视频数据编码、解码的方法及装置
US9543980B2 (en) 2014-10-10 2017-01-10 Massachusettes Institute Of Technology Systems and methods for model-free compression and model-based decompression
US10499074B2 (en) 2017-01-09 2019-12-03 Qualcomm Incorporated Binary arithmetic coding with small tables or short-operand multiplications for video coding
CN109683996A (zh) * 2018-12-20 2019-04-26 携程旅游网络技术(上海)有限公司 通信数据的传输方法及系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4028731A (en) * 1975-09-29 1977-06-07 International Business Machines Corporation Apparatus for compression coding using cross-array correlation between two-dimensional matrices derived from two-valued digital images
US4122440A (en) * 1977-03-04 1978-10-24 International Business Machines Corporation Method and means for arithmetic string coding
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes
FR2430139A1 (fr) * 1978-06-28 1980-01-25 Labo Electronique Physique Dispositif de compression de signaux binaires et systeme de transmission codee de fac-similes equipe de ce dispositif
US4463342A (en) * 1979-06-14 1984-07-31 International Business Machines Corporation Method and means for carry-over control in the high order to low order pairwise combining of digits of a decodable set of relatively shifted finite number strings
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4295125A (en) * 1980-04-28 1981-10-13 International Business Machines Corporation Method and means for pipeline decoding of the high to low order pairwise combined digits of a decodable set of relatively shifted finite number of strings
US4363036A (en) * 1981-03-16 1982-12-07 Ncr Canada Ltd - Ncr Canada Ltee Method and apparatus for compressing digital data using non-adaptive predictive techniques
US4467317A (en) * 1981-03-30 1984-08-21 International Business Machines Corporation High-speed arithmetic compression coding using concurrent value updating
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
US4494108A (en) * 1981-11-09 1985-01-15 International Business Machines Corporation Adaptive source modeling for data file compression within bounded memory
US4462081A (en) * 1982-04-05 1984-07-24 System Development Corporation Signal processing system
DE3306334A1 (de) * 1983-02-23 1984-08-23 Siemens AG, 1000 Berlin und 8000 München Quantisierer fuer dpcm-codierer
US4577314A (en) * 1983-03-31 1986-03-18 At&T Bell Laboratories Digital multi-customer data interface
US4596024A (en) * 1983-05-23 1986-06-17 At&T Bell Laboratories Data detector using probabalistic information in received signals
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4516241A (en) * 1983-07-11 1985-05-07 At&T Bell Laboratories Bit compression coding with embedded signaling
US4633490A (en) * 1984-03-15 1986-12-30 International Business Machines Corporation Symmetrical optimized adaptive data compression/transfer/decompression system
US4584561A (en) * 1984-09-24 1986-04-22 Gte Communication Systems Corporation Method of residue to analog conversion

Also Published As

Publication number Publication date
EP0260462A3 (en) 1990-10-31
US4891643A (en) 1990-01-02
DE3788763D1 (de) 1994-02-24
BR8704622A (pt) 1988-04-26
DE3788763T2 (de) 1994-06-23
EP0260462B1 (en) 1994-01-12
CA1292070C (en) 1991-11-12
AU7836787A (en) 1988-03-17
JPH0258812B2 (ja) 1990-12-10
EP0260462A2 (en) 1988-03-23
AU598587B2 (en) 1990-06-28

Similar Documents

Publication Publication Date Title
JPS6376524A (ja) デ−タ圧縮システム
US4905297A (en) Arithmetic coding encoder and decoder system
JPH0744462B2 (ja) 圧縮符号化方法及び復号方法
US6703950B2 (en) Gray code sequences
JPH0366227A (ja) 圧縮符号化方法及びシステム並びに復号方法
JPS6228895B2 (ja)
JPS6261178B2 (ja)
EP0260461B1 (en) Arithmetic coding encoding and decoding method
JP2001230935A (ja) 算術符号化/復号化方法ならびに算術符号化/復号化装置
JP2001136524A (ja) 圧縮伸長装置
US7683809B2 (en) Advanced lossless bit coding
JP3459759B2 (ja) 算術復号化装置
JP2003188736A (ja) 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
JPH09247466A (ja) 符号化装置
JP2003198858A (ja) 符号化装置および復号化装置
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP2002064715A (ja) データ処理装置および方法
JPH0669146B2 (ja) ラン長符号化データ復号装置
JP2009159366A (ja) 本発明は、符号化システム、符号化方法、符号化プログラム、復号化システム、復号化方法および復号化プログラム
JPH08195680A (ja) 算術符号復号化装置
JP3224127B2 (ja) 画像データ変換処理装置
JP3336537B2 (ja) 符号化装置、復号化装置、符号化・復号化装置及び算術符号化装置
JP2000278538A (ja) 算術符号化・復号化装置および方法
JP2536490B2 (ja) ランレングス符号化装置
JP2022052434A (ja) 浮動小数点数のデータ構造及び演算装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071210

Year of fee payment: 17