JP3487560B2 - プレゼンテーション装置の制御装置、プレゼンテーション装置の制御方法、データ圧縮符号化装置及びデータ圧縮符号化方法 - Google Patents
プレゼンテーション装置の制御装置、プレゼンテーション装置の制御方法、データ圧縮符号化装置及びデータ圧縮符号化方法Info
- Publication number
- JP3487560B2 JP3487560B2 JP30160693A JP30160693A JP3487560B2 JP 3487560 B2 JP3487560 B2 JP 3487560B2 JP 30160693 A JP30160693 A JP 30160693A JP 30160693 A JP30160693 A JP 30160693A JP 3487560 B2 JP3487560 B2 JP 3487560B2
- Authority
- JP
- Japan
- Prior art keywords
- group
- integer
- rightmost
- data
- digit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Record Information Processing For Printing (AREA)
Description
プリンタへ送られる情報の圧縮・符号化に関する。ここ
において、プリンタとは、普通のコンピュータ用プリン
タのみならず、リモートファクスプリンタ、その他のデ
ィスプレイもしくはプレゼンテーション装置の類も意味
する。本発明は特に、クリアテキスト標準ページ記述言
語(SPDL)で表現された数値データをN/2rバイ
ナリフォーマットへ圧縮・符号化するための装置及び方
法に関する。
タへ送られる。今日の忙しいオフィス環境においては、
しばしば、より速やかに情報を印刷して利用できるよう
要求される。従来より、デジタルデータのストリームを
圧縮されたデジタルコード信号へ符号化し、また、圧縮
されたデジタル符号信号を再びオリジナルデータへ復号
するデータ圧縮方式が知られている。データ圧縮方式の
目的とするところは、一定量のデジタル情報を記憶また
は伝送するために要するメモリ量または時間を減らすこ
とである。圧縮は、データ記憶の必要メモリまたはデー
タ伝送時間を減らすことにより、費用の削減につなが
る。データファイルの記憶のためにテープまたはディス
クを使用する場合、圧縮されたファイルの記憶に必要な
テープまたがディスクが少なくてすむ。電話回線または
衛星回線を利用してデジタル情報を伝送する場合、伝送
に先だってデータを圧縮すれば、必要な伝送時間が短く
なるのでコストが下がることになる。
衛星回線や電話回線により遠隔地へ送って印刷したいと
する。適当な装置によって、新聞や時事通信の内容を文
字のデータストリームへ変換して通信回線を介し伝送す
る。この新聞または時事通信の内容を構成するシンボル
が圧縮されてから伝送され、受信機で再現されるなら
ば、伝送時間を大幅に削減できる。
ァイルサーバー上のワードプロセシングデータファイル
のような膨大な文書群を保管する場合、文書を構成する
シンボル信号全体が圧縮後に格納され、その後、利用す
る場合に圧縮されたファイルより伸長されるならば、記
憶スペースは著しく削減されよう。
要条件は、圧縮方式が可逆的でなければならないという
ことである。すなわち、圧縮されたデータを、情報を変
化させたり失うことなしに、再び元の形に伸長もしくは
復号することができなければならない。復号されたデー
タとオリジナルデータは、全く同一でなければならな
い。
汎用のデータ圧縮プロシージャは、米国特許第4,46
4,650号で開示されたLempel,Zivほかの
方式で、以下、これを”LZ”方式と呼ぶことにする。
このLZ方式は、テキストデータ用のロスのないダイナ
ミックオンライン方式である。LZ方式では、頻出する
キャラクタのストリングをメモリに記憶しておく。記憶
されたキャラクタ・ストリングへのポインタが、ストリ
ング全体の代わりに伝送される。記憶されたキャラクタ
・ストリングと一致し、また、1つ以上のキャラクタか
らなるキャラクタ・ストリングが入力ストリーム中に出
現した時に、その一致したストリングのためのポインタ
が当該新しいキャラクタ・ストリングの先頭のキャラク
タと一緒に伝送されるが、その先頭のキャラクタは圧縮
されない形で伝送される。
この方式が通常、膨大なコンピュータメモリと処理時間
を必要とすることである。そのうえ、頻繁に繰り返し現
われるキャラクタ・ストリングを記憶するメモリが一旦
満杯になると、LZ方式はその頻出キャラクタ・ストリ
ングを動的に変更することが難しい。
グが入力ストリング中に出現した時に、Storeは米
国特許第4,876,541号において、前記のLem
pel外の特許の問題点を解決し、圧縮される頻出キャ
ラクタ・ストリングの更新を可能にするデータ圧縮方式
を開示している。このStoreのデータ圧縮方式にお
いては、符号器及び復号器の両方が頻出キャラクタ・ス
トリングを記憶するための辞書を備える。各ストリング
は固有のポインタによって識別される。入力データスト
リングは、解析され、そして、マッチングアルゴリズム
を使用して符号器の辞書中のストリングと照合される。
そして、一致したストリングに関するポインタが離れた
場所へ伝送されて記憶または復号される。その後、更新
アルゴリズムを使用し、符号器の辞書は上記一致したデ
ータストリングに基づき新しいデータを含むよう更新さ
れる。
によって米国特許第5,027,376号に開示され、
これはMicrocom System社へ譲渡され
た。Friedmanの圧縮方式は、MNP(Micr
om NetworkingProtocol)モデム
に使われている。Friedman方式においては、圧
縮用モデムが入力データストリームを受信し、そのデー
タストリーム中の各キャラクタは圧縮されたキャラクタ
コードによって再編成されるが、そのコード長はそのキ
ャラクタのデータストリーム中での頻度に依存する。頻
度テーブルが備えられることによって、データストリー
ム中のキャラクタの相対頻度の変化を圧縮用モデムが認
識でき、それに応じて、かかるキャラクタを表現する圧
縮キャラクタが入れ替えられる。伸長用モデムは、通信
回線を介し圧縮用モデムと接続されるが、圧縮キャラク
タコードを、圧縮用モデムのコード処理のやり方と逆の
順序で処理する。伸長用モデムも相対頻度テーブルを備
えており、各種キャラクタの相対頻度が変化した時に圧
縮コードによって表現される実際のキャラクタも変更さ
れなければならない。以上に述べた各データ圧縮方式は
伝送または記憶するためのデータを圧縮する場合には非
常に効率的であろうが、いくつか欠点がある。第1に、
圧縮されたファイルは直接読むことができないフォーマ
ットで記憶される。すなわち、ファイルを何等かの目的
に使用するには、その前にファイルを伸長しなければな
らない。この情報伸長にプロセッサ時間をかけてはじめ
て、圧縮情報をオリジナルの形に戻すことができる。第
2に、データの圧縮の際に、圧縮ファイル中にコードと
して記憶される使用頻度の高いキャラクタ・ストリング
を記憶するために、膨大なメモリを必要とすることが多
い。
ングファイルに対して特に有用である。データプロセッ
シングファイルを記憶する一方法は、ファイルのテキス
ト情報とフォーマット用コマンドからなるページ記述言
語を用いる方法である。ページ記述言語(PDL)は現
にコンピュータのプリンタの制御に用いられており、テ
キストとグラフィックスの両方を含む文書を印刷する場
合に理想的である。PDLの例としては、Adobe社
のポストスクリプト(PostScript,登録商
標)とXerox社のインタープレス(Interpr
ess,登録商標)がある。本発明は、標準ページ記述
言語(SPDL)に関連して説明する。このSPDL
は、International Standard
Organization(”ISO”)の一セクショ
ンへ、ISO/IEC DIS 10180として、草
案が現在出されており、ニューヨークにある Amer
icanNational Standards In
stitute(”ANSI”)を通じて入手できる。
る。すなわち、この文書は、生成され、編集され、当該
文書に関するコンポジション、フォーマッティング及び
配置の全てが決定済みである。SPDL文書は、プリン
タあるいは文書の最終フォームを表示するコンピュータ
モニターなどのプレゼンテーション装置により、プレゼ
ンテーションすることが可能である。SPDL文書は、
通信回線を介し他のコンピュータやファクシミリ装置へ
伝送することもできる。
ontent)という2つ基本パーツがある。文書の構
造は、そのコンテントには依存しない。文書の構造は、
コンテントのための解釈の環境(コンテキスト)を確立
する。例えば、テキストがボールドフェイス(肉太活字
体)ならば、解釈の環境はボールドフェイスフォントを
含むことになろうし、コンテントはボールドフェイスが
テキスト中に使用されることを指示するであろうし、ま
た、テキスト自体もコンテント中に存在することになろ
う。構造エレメントの例は、係属中の米国特許出願第0
7/876,601号に述べられているように、文書、
ピクチャー、辞書ジェネレータ及びトークンシーケンス
である。トークンシーケンスは、文書コンテントを含む
特殊な構造エレメントである。SPDLは、ここに引用
により組み込まれるところのISO 8824:199
0及びISO 8825:1990で定義されたアブス
トラクト・シンタックス・ノーテーション1(Abst
ract SyntaxNotation1;ANS.
1)を使用するが、これはバイナリ構造符号化用で、ト
ークンシーケンスを8ビットバイトのシーケンスである
オクテットストリングとして定義する。
わちクリアテキストフォーマットとバイナリフォーマッ
トで表現できる。クリアテキストフォーマットは、英語
に類似した高水準言語のプログラミングコマンドを用い
て文書を表現するもので、SPDLページ記述言語を熟
知している者が判読可能である。他方、バイナリSPD
Lフォーマットは、バイナリの命令及びオペランドを用
いて文書を表現するもので、機械語型表現である。クリ
アテキストSPDLファイルは、人、コンピュータのど
ちらでも読むことができるが、大きな記憶スペースが必
要であり、通信回線による伝送の速度が遅く、印刷する
のに長い処理時間を要する。しかし、クリアテキストS
PDLファイルとバイナリSPDLファイルは完全に等
価である。すなわち、一方で表現できる機能は、構文変
換によって他方で表現できる。
進浮動小数点数演算用IEEE754標準を使用する方
法である。このIEEE標準には、4バイトを用いて数
を表現する単精度フォーマットと、8バイトを用いて数
を表現する倍精度フォーマットの2つのフォーマットが
ある。いずれのフォーマットでも、数を表現するのに3
つのフィールド、すなわち、1ビットのサイン(正負符
号)フィールドs、バイアスされた指数部e、及び仮数
もしくは小数部fが用いられる。
に、そのバイナリ表現の最初のビットがサインビットs
で、次の8ビットが指数部e用、最後の23ビットが仮
数もしくは小数部f用である。単精度フォーマットの場
合、ゼロ以外の数XはIEEE標準で次のルールによっ
て表現される。
2e-127* 1・f 倍精度IEEE754標準の場合、数を表現するのに8
バイト用いられる。図1Bに示すように、そのバイナリ
表現の最初の1ビットはサインビットsであり、次の1
1ビットはバイアスされた指数部e用であり、最後の5
2ビットは仮数もしくは小数部f用である。倍精度フォ
ーマットでは、0以外の数XはIEEE標準で次のルー
ルにより表現される。
*2e-1023*1・f 単精度及び倍精度のいずれのIEEE標準でも、サイン
ビットが0のときは数は正数であり、サインビットが1
のときは数は負数である。バイアスされた指数部eは、
仮数もしくは小数部fの小数点のシフトのために用いら
れる。バイアスされた指数部を用いることにより、指数
部は正と負の両方の指数を表現できる。例えば、指数部
eを表現するために8ビット用いられる時には、正、負
の指数を表現するための256(28)通りのコードが
存在する。その範囲はほぼ−126≦指数≦+127と
なる。IEEE754標準は、最小の指数部(8ビット
全部0)によって最小の指数(−126)を表わし、最
大の指数部(8ビット全部1)によって最大の指数(+
127)を表わす。したがって、実際の指数に加算しな
ければならない指数バイアス値は、単精度数の場合には
+127、倍精度数の場合には+1023である。よっ
て、ある数の指数の値が0とすると、その表現は、単精
度では127、倍精度では+1023である。
動小数点数を表現できるが、2つの問題点がある。第1
に、倍精度IEEE標準によっても、表現しようとした
数が15桁を超える時には数の精度が損なわれることが
ある。これは、仮数もしくは小数部が15ビットに制限
されるからである。例えば、8388607.9660
937499と8388607.996093501
は、いずれもIEEE標準の倍精度によると、8388
607.99609375というように表現される。第
2に、IEEE標準の数表現では単精度に4バイト、倍
精度に8バイトを要するが、1つの数の表現のために4
バイトまたは8バイトを使うということはメモリの無用
な浪費かもしれない。
目的は、クリアテキストSPDLファイルを、より小さ
なスペースに格納できるよう、より少ない時間で伝送で
きるよう、かつ、より高速に印刷できるよう、バイナリ
フォーマットに圧縮する手段を提供することである。
化方法より高い精度で数値データを圧縮ファイルに表現
し、なおかつ、数値データの表現に必要なバイト数を削
減する手段を提供することである。
を達成するために提供される本発明の装置及び方法によ
れば、数のテキスト表現をバイナリN/2rフォーマッ
トへ圧縮・符号化する。ただし、この圧縮・符号化は可
能な時にのみ行なう。というのは、N/2rフォーマッ
トを用いて、あらゆる実数を表現できるわけではないか
らである。
2進数であり、その長さは単精度、倍精度のいずれの表
現を用いるかによって2バイトまたは4バイトであり、
また、rは単精度、倍精度いずれでも1バイトの2進数
である。図2の(A)は単精度N/2rフォーマットの
変数とその長さを示し、図2の(B)は倍精度N/2r
フォーマットの変数とその長さを示す。
号化しようとする数が整数であるか調べることによっ
て、その数がN/2rフォーマットにより表現できるか
判定する。整数である場合には、その整数をNとおき、
かつr=0とすることによって、その数をN/2rフォ
ーマットを用いて表現することができる。その数に小数
部がある場合には、その数を2倍して整数になったか確
かめる。整数にならなかったときには、整数になるま
で、あるいはNまたはrが所定のレンジから出るまで、
繰り返し2倍する。
号化しようとする数が整数であるか判定し、整数でない
ときには、その数の小数部を連続した4桁のグループに
分ける。最も右側の4桁グループについて調べ、それが
N/2rフォーマットを用いて表現可能な性質を持って
いるか判定する。最も右側の4桁グループが適当な性質
を持っているならば、2のべきと掛け合わせると、1の
位、10の位、100の位及び1000の位が0の積が
得られる。最も右側の4桁グループからの桁上がり(積
の1万桁及び10万桁に対応する)を、次の最も右側の
(すぐ左の)4桁グループに加算して、このグループが
N/2rフォーマットにより圧縮可能であるか確認す
る。このような小数点の右側の4桁グループに対する操
作を、4桁グループの残りが無くなるか、または数が整
数になってN/2rフォーマットを用いて圧縮可能にな
るまで、繰り返す。
精度表現のためのIEEE754浮動小数点標準のフィ
ールド及びフィールド長を示す。前述のように、単精度
IEEE754浮動小数点標準は、1ビットのサインビ
ットs、8ビットのバイアスされた指数ビットe、それ
に仮数もしくは小数部fの23ビットを持つ。倍精度I
EEE754浮動小数点フォーマットは、サインフィー
ルドsの1ビット、バイアスされた指数フィールドeに
11ビット、仮数もしくは小数部fに52ビットを持
つ。
単精度及び倍精度のN/2rフォーマットを示す。N
は、単精度フォーマットでは2バイト、倍精度では4バ
イトである。単精度、倍精度いずれの場合でも、rは1
バイトである。したがって、単精度N/2rフォーマッ
トでは3バイトを必要とするが、これに対して単精度I
EEE754浮動小数点フォーマットでは4バイト必要
である。図2(B)に示す倍精度N/2rフォーマット
はNに32ビット、rに8ビット必要であるので、1つ
の数を表現するのに合計5バイト必要であるが、これに
対して倍精度IEEE754浮動小数点フォーマットで
は8バイト必要とする。
表現を示す。通常、この数のテキスト表現は、”ASC
II”(American Standard Cod
efor Information Intercha
nge)コードを用いてコンピュータに格納されること
になろう。文字のASCII表現は1文字に8ビット必
要とし、これは16進法の2桁に対応する。図3Bに示
すように、ASCII16進表現によれば、5は35
H、6は36H、7は37H、小数点は2EH、1は3
1H、2は32H、5は35Hと表現される。
した数567.125の単精度IEEE754浮動小数
点表現を示す。この数567.125は、単精度IEE
E754浮動小数点表現に変換するために、2進表現1
000110111.001へ変換される。この数は2
9+25+24+22+21+20+2-3 と等価である。数
1000110111.001を小数形にしなければな
らず、そのためには小数点を左へ10桁分シフトする必
要があり、その結果、.100011011001が得
られる。しかし、IEEE標準はこの数を1・fと表現
するので、fは000110111001と等しい。
数部に127を加算しなければならない。もとの数を得
るためには、小数点をfより右へ9桁シフトし、fの前
に1を置く必要があるので、バイアス127に9が加算
されることによってバイアスされた指数136が得られ
る。136の2進表現は10001000である。56
7.125は正値であるので、サインビットは0であ
る。
単精度表現は、サインビットが0、8ビットのバイアス
された指数部が10001000、32ビットの仮数も
しくは小数部が.00011011100100000
000000である。IEEE754標準2進数010
0010000001101110010000000
0000に等価な16進表現は、図3(C)に示すよう
に44 0D C800である。
ォーマットにより表現するには、Nを4537とし、r
を3にする必要がある。4537を8(23)で割ると
567.125となる。4537の2進表現は11 B
9Hで、3の16進表現は3Hである。ゆえに、56
7.125のN/2rフォーマット表現は、図3(D)
に示すように03 B9 11Hである。
に、本発明によれば、数をより少ないバイト数で表現で
きる。567.125をASCIIによって表現するに
は、図3(B)に示すように7バイト必要であり、IE
EE754標準の単精度2進表現では、図3(C)に見
られるように4バイト必要であるが、567.125の
単精度N/2r表現には、図3(D)に示すように3バ
イトしか必要としない。
施例を説明する。なお、各図中の同一の参照数字は同一
または対応部分を示す。
トSPDLファイル2がバイナリSPDLファイル8へ
変換される簡単なバイナリ符号化プロセスが示されてい
る。クリアテキストSPDLファイル2は普通、例えば
ワードプロセッサまたはグラフィックスプログラムによ
り生成される。クリアテキストSPDLファイルをバイ
ナリフォーマットへの変換することにより、ファイルは
元のサイズの約30%に圧縮され、したがって、ファイ
ルの記憶に要するスペースは約30%削減される。通信
回線を介してファイルをプリンタまたはネットワークへ
伝送するのに必要な時間も同様に、約30%短縮され
る。さらに、バイナリSPDLファイルは、クリアテキ
ストファイルより非常に高速の印刷または表示処理が可
能である。バイナリSPDLファイルが高速に印刷され
る理由は、例えば、クリアテキストコマンドが等価なバ
イナリOPコード(opcode)へ変換されている
が、このOPコードがクリアテキストコマンドに比べは
るかに高速に処理できるからである。また、バイナリS
PDLファイルは、各プロシージャの先頭にプロシージ
ャの長さが符号化されるので、プロシージャ終了コマン
ドについて調べる必要がない。
と、IEEE754標準より少ないバイト数で数値デー
タを表現できるため、IEEE標準に比べ、バイナリS
PDLファイルを少ない記憶スペースに記憶し、また少
ない時間で伝送することができる。
表現のバイナリ表現への変換について説明するが、本発
明の重要な特徴は、本発明により遂行される物理的変換
である。メモリ内のクリアテキストデータの物理的表現
は、バイナリフォーマットの等価な情報の物理的表現よ
り大きい。データがディスクのようなメモリ内に表現さ
れる時、データはディスク上の0及び1の磁気的変調と
して記憶される。よって、ファイルの表現を変換する
と、同じ情報を表現するのに必要なディスク上の磁気材
料が少なくてすむ。一方、データをRAMに記憶する場
合、データは磁気的にではなく、電気的に記憶される。
したがって、バイナリ表現は、必要とする電気信号が減
少し、より少ないメモリロケーションに記憶される。
析(parsing)ステップ4である。この文法解析
ステップは、クリアテキストSPDLファイルのコンポ
ーネントを、バイナリ符号化ステップ6により機械命令
に変換可能な構造エレメントやコンテント等の基本ユニ
ットに分解する。通常タイプの文法解析はソフトウエ
ア、ハードウエアいずれによっても容易に実現されるの
で、その詳細については説明簡略化のために省略する。
本ユニットはステップ6でバイナリフォーマットに符号
化されて、バイナリSPDLファイル8に格納される。
このバイナリ符号化のプロセスが本発明の目的とするス
テップであるので、その詳細を説明するが、それに先だ
って、本発明を実施するために用いられるハードウエア
を説明する。
ック図を示す。図5において、ハードディスク等の記憶
装置18から与えられるクリアテキストSPDLファイ
ル2は、処理装置10内のプロセッサ12へ送られる。
SPDLファイルは一種のページ記述ファイルである。
ページ記述ファイルはページ記述言語によって符号化さ
れたファイルである。プロセッサ12は、文法解析ルー
チン14及びバイナリ符号化ルーチン16を使用し、図
4に示したプロセスの文法解析ステップ4及びバイナリ
符号化ステップ6を実行する。このバイナリSPDLフ
ァイル8は、それを得たい場合には記憶装置18へ戻
し、あるいは、プリンタ20またはネットワーク22中
の他の装置へ送ることができる。
続される周辺装置の詳細図である。図6において、記憶
装置18はクリアテキストSPDLファイル2を記憶し
ているが、このファイルはディスクコントローラ26及
びシステムバス36を利用してRAM40へ送られる。
プロセッサ12は、ハードディスク18に格納された文
法解析ルーチン14及びバイナリ符号化ルーチン16を
使用し、RAM40に格納されたクリアテキストSPD
Lファイルの文法解析及び符号化をするために使用され
る。RAM40の符号化後のバイナリファイルを、記憶
装置18(例えばハードディスク)にバイナリSPDL
ファイル8として格納することができ、ディスクコント
ローラ26に接続されたフロッピードライブ28へ格納
することができ、またはI/Oコントローラ46に接続
された別のハードディスク48へSCSIバスを介して
格納することができる。また、このファイルを、例えば
RS232Cラインを用いてI/Oコントローラ46に
接続されたプリンタ20によって印刷し、または、通信
コントローラ24を利用し一般的なイーサネット(Et
hernet,登録商標)ネットワーク等のネットワー
ク22へ送出することもできる。ディスプレイコントロ
ーラ42より送られる情報はCRT44に表示される。
この処理装置10は、例えば入力コントローラ34に接
続できるキーボードやマウスを介し、ユーザーに制御さ
れる。ROM38は、プロセッサ12が必要とする様々
なルーチンを記憶するために用いられる。
種ルーチンを示す。クリアテキストSPDLファイルの
符号化の開始時に、メインバイナリ符号化ルーチン10
0が実行される。このメイバイナリ符号化ルーチン10
0は、コンテントまたは構造のいずれを符号化するのか
判定して、メインコンテントバイナリ符号化ルーチン1
04または構造バイナリ符号化ルーチン114をコール
する。構造バイナリ符号化ルーチン114は、適当なコ
ンテント解釈環境を達成可能にするため、バイナリフォ
ーマットへ符号化すべき構造のタイプを調べる。
が、その例としてピクチャー、プロローグ、辞書ジェネ
レータがある。構造は、コンテント解釈時に使用される
初期状態変数や辞書などの様々なコンポーネントを定義
する。各種の構造に関するより詳しい説明は、本発明を
理解するために必要ではないが、係属中の1991年1
0月17日付米国特許出願第07/778,578号、
1992年4月30日付米国特許出願第07/876,
251号、1992年4月30日付米国特許出願第07
/876,601号、1992年8月11日付米国特許
出願第07/931,808号に述べられている。
て構造が判定されると、コンテントバイナリ符号化ルー
チン102は、クリアテキスト表現の各種トークンをテ
キストフォーマットからバイナリフォーマットへ変換す
ることができる。メインコンテントバイナリ符号化ルー
チン104は符号化すべきコンテントのタイプを判定す
る。ルーチンの開始または終了があると、メインコンテ
ントバイナリ符号化ルーチン104はプロシージャ開始
ルーチン106またはプロシージャ終了ルーチン108
をコールする。数値のコンテントをバイナリ形式へ符号
化する場合、メインコンテントバイナリ符号化ルーチン
104は、クリアテキストSPDLファイル中で数値デ
ータに出会った時に数値圧縮/符号化ルーチン110を
コールするが、非数値の符号化が必要な時には、その他
符号化ルーチン112をコールする。数値圧縮/符号化
ルーチン110は、本発明の目的たるプロセスである。
ているが、これは簡略化のためであって、2つ以上のル
ーチンを組み合わせて1つのルーチンにすることも可能
である。例えば、メインバイナリ符号化ルーチン100
と構造バイナリ符号化ルーチン114を1つのルーチン
にまとめることができる。文法解析の機能を、メインバ
イナリ符号化ルーチン100または構造符号化ルーチン
114によって遂行させることも可能である。本発明の
簡単な実施例は全てのバイナリ符号化ルーチンをプロセ
ッサ12に実行させるが、実行速度を上げるため、構造
バイナリ符号化ルーチン114用の構造プロセッサと、
コンテントバイナリ符号化ルーチン102用のコンテン
トプロセッサを別々に持つことも可能である。
10として記憶装置に格納されてるプロセスを示す。こ
の数値圧縮/符号化ルーチン110は、バイナリ符号化
ルーチン16の一部であって、本発明の第1の実施例に
よって、データをN/2rフォーマットへ圧縮・符号化
するためのものである。N/2rフォーマットは圧縮し
ようとする数が2のべきで割り切れる整数として表現さ
れる必要があるので、全てのデータをN/2rバイナリ
フォーマットを用いて表現できるわけではなく、データ
によってはIEEE754標準などの他の種類のバイナ
リ表現を用いて符号化しなければならない。
倍精度表現の場合に最大4バイトで表現されるので、N
は−231から231−1の範囲でなければならないこと
と、rは最大値が255であるので記憶のために1バイ
トを必要とすることである。一方、単精度ではNは2バ
イトで表現される。N/2rフォーマットそれ自体には
N及びrの範囲の制限はないことに注意されたい。しか
しながら、発明者は、倍精度数を表現するのに、0≦r
≦255と−231≦N≦231−1の範囲が適当であるこ
とを発見した。単精度数の場合、Nを4バイトでなく2
バイトで表現できるが、Nの範囲は−215≦N≦215−
1に制限される。
数が整数であるか判定し、整数でなければ、その数を計
画的に2倍することによって整数が得られるか確かめ
る。変換すべき数Xが整数ならば、その数は、N=Xと
してNを1(20)で除することによってN/2rフォー
マットで表現可能である。Xが整数ではなく浮動小数点
の小数の場合、2のべきで割った整数によってXを表わ
すことはできない。非整数XをN/2rフォーマットに
よって表現しようとする場合、小数部をなくすためにX
は2倍される。数Xを2倍して整数が得られないときに
は、再びXを2倍して整数が得られたか確かめる。整数
が得られなかったならば、整数が得られるまで、あるい
は、rまたはXが範囲から外れるまで、その数の2倍操
作を繰り返す。
したところの2のべきを表わすrの値を1だけ増加させ
ねばならない。分子が2倍されているので、このように
分母の2のべきにより除することが、数を正しく表現す
るために必要である。実際には、フローチャートの各ル
ープで、分子を整数にするためXに2を掛ける。
調べる。メインコンテントバイナリ符号化ルーチン10
4等のメインプロセスは、数を検出すると、その数のテ
キスト表現をキャラクタ配列Aに格納し、図7に示す数
値圧縮/符号化ルーチン110をコールする。図8のプ
ロセスは、Aをキャラクタ配列、rとNを整数、X,
Y,Zを倍精度数、として用いている。
を倍精度浮動小数点数Xに変換する。次にステップ20
2はr=0、Z=Xに初期化する。次に、ステップ20
4及びステップ208で、rとZの範囲がr≦255、
−231≦Z≦231−1であるか判定する。これらの数が
範囲外であれば、IEEE754標準等の標準的な2進
浮動小数点数符号化をステップ206で行ない、図8の
プロセスは終了する。rとZが範囲内であるならば、ス
テップ210はZの倍精度整数値をYにセットする。Y
=Zのときは、Zは整数であるので、XをN/2rフォ
ーマットによって表現可能であり、処理はライン220
に沿ってステップ222に進み、Nとrは図8のプロセ
スをコールしたメインルーチンへ返される。
い場合、ステップ214でrがインクリメントされ、ス
テップ216でZの値が2倍される。処理はライン21
8に沿ってブロック(ステップ)204へ戻り、ここで
rまたはZが範囲外になるまで、あるいは、Zが整数と
なってキャラクタ配列Aの数がN/2rフォーマットで
表現可能であることが確定するまで、処理を繰り返す。
って圧縮することが不可能の場合、Zまたはrがそれぞ
れの範囲から出るまで、数Zを2倍する。この方法は、
ホストCPUでどのような浮動小数点フォーマットを使
用していても、有効である。
至図14に示す。第2実施例は、数の小数点以下の桁を
調べることにより、その数がN/2rフォーマットを用
いて圧縮可能であるか判定する。発明者は、小数点以下
が1桁の場合、その数がN/2rフォーマットで圧縮で
きるのは、その小数点以下の桁が5であるとき(つま
り、その数が.5で終わるあるとき)だけでであること
を発見した。その理由は、.5は2を1回以上掛けるこ
とにより整数になる唯一の1桁小数であるからである。
ォーマットで圧縮できるのは.25または.75で終わ
る数のみである。これらの数だけが、2を繰り返し掛け
ることによって整数となる2桁小数であるからである。
2桁小数に4(22)を掛けることにより、その2桁小
数が整数にならないときは、その小数はN/2rフォー
マットに変換できない。
できる3桁小数は、.125、.375、.625、.
875だけである。そのいずれかで終わる数に8
(23)を掛けると、その小数は整数になる。.12
5,.375,.625,.875のいずれでもない3
桁小数で終わる数の場合、8を掛けても整数にならない
ので、その数はN/2rフォーマットで表現できない。
同様に、N/2rフォーマットで符号化できる4桁小数
は、.0625,.1875,.3125,.437
5,.5625,.6875,.8125,.9375
に限られる。これらの4桁小数はいずれも、16
(24)を掛けると小数部が無くなって整数となる。
おいて、その後の0は無視される。したがって、例え
ば.50や.500は.5とみなされ、同じく.250
と.2500は.25とみなされる。後に続く0を無視
するのは、小数の後に続く0の倍数は常に0であるから
である。
それらの桁を4桁ずつグループに分ける。最も右(下
位)側の4桁グループは、小数点以下の桁数によって1
個乃至4個の0を持つ。例えば、その小数が.9687
5とすると、9678が最初の4桁のグループであり、
5000が次のグループである。まず以下のように、最
も右側のグループの桁数が4桁より少ないか調べられ
る。
第2実施例により圧縮可能であるか調べるためには、ま
ず最も右側の桁のグループについて、2の’当該グルー
プの桁数(<4)’乗を掛けて、最も右側の桁のグルー
プの1位、10位、100位及び1000位が0となる
か調べる。1位、10位、100位及び1000位が0
の場合、次の最も右側の(1つ左側の)桁のグループが
あれば、それに同じ2のべきを掛け、これによって同グ
ループの1位、10位、100位及び1000位が0に
なる。さらに、最も右側の4桁グループからの桁上がり
は、その4桁グループに2のべきを掛けて10,000
で割った値の整数部と定義されるが、これが同じ2のべ
きを掛けた後の次の最も右側(1つ左側)の4桁グルー
プに加算される。そして、小数点以下の全ての4桁グル
ープを同様に処理した後、整数部に、同じ2のべきを掛
け、小数点の直ぐ右側の桁グループからの桁上がりを加
える。
のグループの処理が済むと、今度は次の最も右側の(1
つ左側の)グループが最も右側のグループとなる。この
最も右側の4桁グループが、0625,1875,31
25,4375,5625,6875,8125または
9375であるか調べる。最も右側のグループが、これ
らの数のいずれでもない場合、圧縮しようとしている数
はN/2rフォーマットで表現できないので、標準浮動
小数点数符号化を用いなければならない。
ある場合、最も右側の桁グループに16を掛ける。これ
によって得られる数は、1位、10位、100位及び1
000位が0で、10000位(及び10000位)に
対応する桁上がり値を持つことになる。次に、残りの4
桁グループに16を掛け、その右側のグループからの桁
上がりを加える。最後に、その数の整数部に16を掛
け、小数点のすぐ右側の4桁グループからの桁上がりを
加える。
例のプロセスのフローチャートを参照し、プロセスの詳
細を説明する。図9乃至図14のプロセスは、図8に示
した第1実施例のプロセスと同様のやり方でコールされ
る。図7のメインコンテントバイナリ符号化ルーチン等
のメインプロセスは、ある数のテキスト表現を検出し、
その数をキャラクタ配列Aに格納し、図9乃至図14に
示されるように、数値圧縮/符号化ルーチン110をコ
ールする。
ップ304で図13のデータ準備プロセスをコールする
ことによって変数の初期化と定義を行なうことである。
図13のプロセスが使用するキャラクタ配列Aは、圧縮
・符号化しようとする数のテキスト表現を保持し、か
つ、キャラクタ配列Aの属性を記述するための変数の値
を定義する。図13のプロセスで使用される変数は、倍
精度浮動小数点数の変数MULT,INT_NUM及び
TOTAL、キャラクタ配列A、それに整数のSIG
N,LEN,D_POS及びAFT_Dである。
は上記変数を初期化する。ステップ604において、配
列のインデックスiは0であり、配列の最初のキャラク
タが負符号であるか調べられる。最初のキャラクタが負
符号であるときは、ステップ606でSIGNは−1に
設定され、処理はライン608に沿ってステップ634
へ進み、そこでiが1だけインクリメントされる。ステ
ップ636で、最初のキャラクタが負符号であることが
確認されているから、配列ターミネータは存在しないた
め、処理はライン638に沿ってステップ610に進
む。
クタが小数点であるか判定する。それが小数点であると
きは、ステップ612において、エラーチェックを行な
うために変数D_FLAGが0であるか調べる。D_F
LAGが0の時は小数点より左のキャラクタを処理中で
あり、D_FLAGが0の時は小数点より右側の数字を
処理中である。現在処理中のキャラクタが小数点であっ
て、D_FLAGが0でないときは、キャラクタ・スト
リング中の次の小数点が出現しているのでエラーがあ
る。エラーがなければ、ステップ614で、D_FLA
Gに1をセットし、D_POSに配列インデックスiを
セットする。
であるか判定する。それが数字でなければエラーが存在
する。数字ならば、ステップ620は、小数点の左側ま
たは右側の数字を処理中であるか判定する。小数点の左
側の数字を処理中であれば、ステップ622及びステッ
プ624は変数INT_NUM及び変数TOTALに適
当な値をセットする。小数点の右側の数字を処理中であ
れば、ステップ626,ステップ628及びステップ6
30は、小数点の後の桁数を示すカウンタAFT_Dを
インクリメントし、適当な小数値を変数TOTALに加
算する。ステップ634でインデックスiが1だけイン
クリメントされ、ステップ636でA(i)が配列ター
ミネータであることを確かめて配列の終わりに達したと
判断しない限り、処理は再びライン638に沿ってステ
ップ610へ戻る。
キャラクタ配列が負符号から始まったのであれば、変数
INT_NUM及びTOTALがステップ642で負の
数に変更される。ステップ644はキャラクタ配列Aの
長さであるLENにiをセットする。そして、ステップ
646は図に列挙した変数INT_NUM,TOTA
L,D_POS,AFT_D,SIGN,LENを図9
のプロセスへ返し、処理はステップ306に進む。
2r法によって圧縮できる値であるか(つまり、−231
≦INT_NUM≦231−1であるか)を判定する。圧
縮しようとする数が、この範囲外であれば、標準の浮動
小数点符号化を行なわなければならない。その数がこの
範囲内ならば、小数点後のキャラクタ数をステップ31
0でチェックする。小数点の後に数字が全くなければ、
圧縮しようとしている数は整数であるので、処理はステ
ップ312に進みNとrの値がセットされる。この値が
整数の時は、バイナリ符号化ルーチンは整数符号を使用
する。小数点の後に数字が存在するときには、処理はス
テップ314へ進み、圧縮・符号化しようとする数の小
数部の後ろに0が続いているならば、その0を除去する
ため図14のフローチャートに示されるプロセスBをコ
ールする。
デックスiを配列中の最後のキャラクタに対応させるよ
うにセットする。配列中のキャラクタは最初のキャラク
タのインデックスが0で1ではないので、配列の最後の
キャラクタのインデックスを得るため変数LENは1だ
けデクリメントされる。ステップ654で、配列Aの最
も右側のキャラクタが、0であって、かつ、小数点の右
側にあるかチェックされる。その両方の条件がステップ
654で成立したときには、小数点より右側の最後の数
字は無視される。ステップ656で変数AFT_Dをデ
クリメントし、小数点以下の数字の数が前に計算された
値より1だけ少ないことを表示させ、そして、ステップ
656でiを1だけデクリメントする。処理はライン6
60に沿ってステップ654に戻り、再び、小数点の右
側の最も右の数字の値が0であるかチェックする。この
ループは、小数点の右側の最も右に0でない数字がみつ
かるか、小数点の右側の全数字をチェックし終わるまで
繰り返される。そして、ステップ662で、最も右にあ
る0以外の数字の位置LASTにiをセットし、ステッ
プ664から図9のステップ316へ処理が戻る。
316で小数点以下に数字がないと判定したときは、入
力配列は整数であるので、ステップ312でNとrの値
をセットする。そうでないときは、ステップ318で、
小数点より右側の最後の数字が5であるかチェックす
る。この最後の数字が5であるときは、当該数をN/2
rフォーマットで符号化できると考えられるが、さらに
チェックが必要である。最後の数字が5でないときは、
当該数をN/2rフォーマットにより符号化することは
不可能であるので、ステップ308において標準の浮動
小数点符号化を行なう。
び図11に示すプロセスCへ進む。図10及び図11の
プロセスは、図9の処理の続きであり、したがって図9
のプロセスと同じ変数を使用する。図10及び図11は
さらに、整数の変数GC,LN,i,j,k,END,
r及びN、整数の配列NN,CN、倍精度浮動小数点数
の変数Xを用いる。ステップ332は、小数点以下の4
桁グループの個数を整変数GCにセットする。小数点以
下の桁数が4で割り切れないとき、4桁未満の最後のグ
ループも4桁のグループと考える。例えば、小数点の右
側に5個の数字がある場合、GCに2をセットする。G
Cは整数として定義されているので、小数部は無視され
る。次に、ステップ334において、AFT_Dの基数
4のモジュロ、つまりAFT_Dを4で割った整数の剰
余を計算することによって、最も右側の4桁グループの
ゼロ以外の数字の個数を決定する。ステップ334で小
数点の右側の数字の個数が4で割り切れるか判定し、割
り切れないときは、ステップ338で小数点の右側の数
字の個数が4で割り切れるように、配列の最後に0を挿
入する。例えば、Aの小数部を.96875とすると、
この小数部は.96875000に変更されることにな
る。ステップ340において、変換しようとする数の整
数部INT_NUMを変数Xに初期設定し、ステップ3
42でカウンタiを0に初期設定する。
数点の右側の4桁グループに対応した4桁整数を整数配
列NNに設定する。また、桁上がり用の整数配列CNを
0に初期化する。たとえば、小数部が.96875のと
きには、NN(0)は9687、NN(1)は500
0、CN(0)及びCN(1)はともに0である。
て詳細に説明する。ステップ344に最初に来た時点で
は、GCは常に0より大きいので、処理はステップ34
6に進み、NN(i)とCN(i)を0に初期化する。
次にステップ348で、カウンタjに1をセットする。
このカウンタjは各4桁グループ内の数字位置をカウン
トするために用いられる。したがって、jは1,2,3
または4である。ステップ350,356,358,3
60のループの1回目ではj=1であるので、ステップ
350からステップ356へ処理が進む。ステップ35
6は、処理中の数字位置に対応するインデックスkに、
小数点位置D_POSと、カウンタjと、カウンタiを
4倍した値とを足した値を設定する。次にステップ35
8で、NN(i)に、その旧値を10倍した値と配列A
の属性数字の数値を足した値を設定する。ステップ36
0で変数jを1だけインクリメントし、処理はライン3
62に沿ってステップ350に戻る。ステップ350,
356,358,360のループが合計4回実行される
と、1つのグループの4つの数字が処理され、これによ
って、配列Aの4キャラクタのグループ内数字に対応し
た数値が決まる。ステップ352で、次の4桁のグルー
プを開始できるようにカウンタiを1だけインクリメン
トし、処理はライン354に沿ってステップ344へ戻
る。小数点の右側の4桁のグループの全てが処理される
と、iはGCと等しくなるので、処理はステップ344
からライン364に沿ってステップ366へ進む。
の右側の4桁グループの個数であるが、これはステップ
366で初期化される。小数点の右側の最初の桁グルー
プのインデックスは0であるから、ステップ368でE
NDを小数点の右側の桁グループ数より1つ少ない値に
設定する。ステップ370で、N/2rフォーマットに
おける2のべき指数であるrに、小数点の右側の最も右
側の桁グループ中の数字数であるLNを初期設定する。
プの末尾に続く0(trailing zeros)があるかないか判
定する。末尾に続く0がなければ、ステップ374でプ
ロセスDをコールすることにより、処理は図12に示す
フローチャートのプロセスに進む。末尾に続く0があれ
ば、ステップ378〜410でさらに処理される。
も右側の桁グループに対応するENDをセットする。処
理の流れは図11に進みステップ378〜398のルー
プに入る。このループは、最も右側の桁グループがN/
2rフォーマットにより圧縮可能ならば、’4桁グルー
プ数’回実行される。ループの1回目に、ステップ38
0で最も右側の4桁グループつまりNN(END)に2
のLN乗を掛ける。このステップは、NN(END)
を、そのグループ中に0以外の数字が1個ならば2(2
1)倍し、グループ中に0以外の数字が2個あれば4
(22)倍し、グループ中に0以外の数字が3個あれば
8(23)倍する働きをする。図12のプロセスDはス
テップ374でコールされたのであるから、グループ中
に0以外の数字が4個存在することはありえない。な
お、ループの1回目では、最も右側の桁グループのため
の桁上がりはないので、ステップ380の桁上がり項C
N(i+1)は常に0である。ステップ382は、1つ
左の桁グループに加算されることになる桁上がり値に、
NN(i)/10,000の整数部を割り付ける。この
ステップは、NN(i)の小数点を4桁分だけ左へシフ
トし、整数部を桁上がりさせる働きをする。つぎに、ス
テップ384で、この桁上がり値に10,000を掛け
た値をNN(i)から差し引く。このステップは、NN
(i)の値の10,000位以上の数字を除去する働き
をする。最も右側の4桁グループ中の数字をステップ3
80で2LN倍した時に得られる数字の右側4桁が0であ
るときは、ステップ384でNN(i)は0になる。ス
テップ386において、i+1の桁上がり値C(i+
1)は考慮済みであるので0に設定される。
の実行時には、ステップ388でi=ENDであるの
で、処理の流れはライン390に沿ってステップ392
に進み、NN(END)=0であるか判定する。NN
(END)=0ならば、ステップ380でNN(EN
D)の1位,10位,100位及び1000位の0でな
い数字の除去に成功したので、最も右側の4桁グループ
は、元の数字のN/2rフォーマットによる圧縮・符号
化の妨げにならない。もし、ステップ392で、NN
(i)が0でないときは、N/2rフォーマットの利用
は不可能であり、他の浮動小数点数符号化法をステップ
394で行なわねばならない。最も右側の4桁グループ
NN(END)がN/2r符号化に適する形であると判
定した場合、ステップ398でインデックスiをデクリ
メントし、処理はループの先頭ステップ378へ戻る。
までのループにおいて、ステップ392は簡単なチェッ
クで、最も右側の桁グループがN/2rフォーマットに
よる数の圧縮・符号化の妨げになるか否かを判定した。
しかし、ステップ392における判定方法を、LN=1
の時には配列の最後の数字が5であるか、LN=2の時
には配列の最後の2つの数字が25または75である
か、LN=3の時に配列の最後の3つの数字が125,
375,625または875であるかチェックする方法
としてもよい。ここに示した数字だけが、N/2rフォ
ーマットによる圧縮が可能な数字である。
点の右側に4桁グループが1個しかなければiは負にな
るので、処理の流れはステップ378からライン402
に沿ってステップ404へ進む。一方、小数点の右側に
2個以上の4桁グループがあり、かつ、ステップ380
〜398で処理後の最も右側の桁グループが0であると
ステップ392で判定されている場合には、残りの各4
桁グループに対しステップ378〜398のループが実
行される。残りの各4桁グループに対し算術演算を行な
う目的は、ループの1回目のように4桁グループを除去
することではなく、残りの4桁グループに、初めに最も
右側の4桁グループに乗じた2のべきを掛けて、ループ
を前回通った時に得られた桁上がりを加算することであ
る。
はi=−1であるので、処理の流れはステップ378よ
りライン402に沿ってステップ404へ進み、END
が1だけデクリメントされる。これは、最も右側の4桁
グループが0にセットされており、現在は次の最も右側
の4桁グループが配列の最後にきているからである。ス
テップ406で前の整数値Xを取り出し、これに小数点
より右側の桁に掛けられた2のべきを掛け合わせ、さら
に、ステップ382で決定された最終の桁上がりに圧縮
すべき元の数の正負符号を掛けたものを加算する。ステ
ップ406で小数部と2LNの乗算による桁上がりを勘定
にいれるので、桁上がり値をステップ408で0にリセ
ットし、そしてステップ410から図12のプロセスD
へ処理が進む。
374、図11のステップ410のいずれからも実行さ
れる。図12のステップ422で、ENDが0より小さ
くなるのは、小数点より右側の全ての4桁グループが除
去され残りの数が整数である時だけである。小数点の右
側の4桁グループが残っているならば、ステップ424
で最も右側の4桁グループが、当該ステップ中に列挙し
た数字列のグループに含まれているか判定する。列挙し
たグループに含まれていないならば、その数はN/2r
フォーマットへ変換できないので、処理はライン426
に沿ってステップ428へ進み、標準の2進浮動小数点
数符号化が行なわれる。
のグループに入っているときには、ステップ430でX
が最終的に−231≦X≦231−1の範囲に入るか判定す
る。なお、フローチャートにおいては、範囲として227
を用いているが、これはループを通るとステップ454
でXの値が16(24)倍され、結果として、227が
231まで増加するからである。
沿ってステップ428へ進み、標準の符号化が行なわれ
る。Xが範囲内であれば、処理はステップ434へ進
み、iをENDに初期化し、ステップ436〜446の
ループが、小数点の右側に残っている4桁グループ数の
回数だけ実行される。ステップ436〜446の働きは
図11のステップ378〜398と同様であるが、ただ
し、図11のステップ380ではNN(i)に2LNを掛
けるのに対し、ステップ438では、4桁グループに4
個の数字が存在することが分かっているのでNN(i)
に16を掛ける点が相違する。
数実行後、処理はライン450に沿ってステップ452
へ進む。ここでは、最も右側の桁グループが除去済みで
あるので、ENDを1だけデクリメントする。最も右側
の桁グループは除去済みであると分かる理由は、ステッ
プ424に列挙した数字列に16を掛けて得られる値の
1位、10位、100位及び1000位が0になること
が確かだからである。ステップ454において、圧縮し
ようとする数はステップ338で16を乗じられている
ので、整数Xに16を掛け、その結果に小数部からの桁
上がりに圧縮すべき数の符号を掛けたものを加算する。
桁上がり値はステップ354で勘定にいれられているの
で、ステップ456で桁上がり値を0にリセットする。
数が24(16)倍されているので、ステップ458で
rを4だけインクリメントし、処理はライン460に沿
ってステップ422へ戻る。
るのは、小数点の右側に4桁グループがもうないとき、
つまりステップ422でENDが0未満のとき、また
は、最も右側の4桁グループがステップ424に列挙し
た数字列のどれでもないとき、あるいは、Xの値が4を
超えたとステップ430で判定されたときである。小数
点の右側の全ての数字が除去されステップ422からラ
イン462に沿ってステップ464へ処理が進む時に、
Xが4バイトで表現可能か調べる。Xがバイトを超える
ならば、標準の2進浮動小数点数符号化をステップ46
8で行なう必要があるが、Xが範囲内ならば、N/2r
のパラメータについて、N=Xの整数部、r=rに設定
し、処理は図9乃至図14の圧縮/符号化ルーチンをコ
ールしたメインプロセス、例えばメインコンテントバイ
ナリ符号化ルーチンへ戻る。
表現に圧縮・符号化される時には、その符号化された数
はバイナリオクテット(octet)で表現される。数
がSPDLの単精度浮動小数点バイナリフォーマットに
変換される時には、型オクテット(type octe
t)は70で、その後に、その数の浮動小数点バイナリ
表現の4バイトを続ける。数が単精度N/2rフォーマ
ットに圧縮・符号化される時には、その型オクテットは
71で、その後に、Nの2バイトとrの1バイトの計3
バイトが続く。数が倍精度N/2rフォーマットに圧縮
・符号化される時には、型オクテットは72で、その後
にN/2r表現のための5バイトが続くが、Nは4バイ
トで、その後ろの1バイトはrである。SPDLには倍
精度浮動小数点数の規約がなく、倍精度浮動小数点数を
表わすために固有の型オクテットを容易に用いことがで
きる。例えば、73なる型オクテットが割り当てられて
いなければ、73を用い、その後に倍精度浮動小数点バ
イナリ表現のための8バイトを続けてよい。
続く数の型を表わす型オクテットを含むので、数のバイ
ナリ表現を復号・伸長する時に、容易に型オクテットを
調べて、その2進数の表現方法を判断できる。例えば、
70が型オクテットであると判定されると、単精度浮動
小数点表現の数を表わす4バイトがくる。71が型オク
テットなら単精度N/2rフォーマットであり、72が
型オクテットなら倍精度N/2rフォーマットである。
ォーマットへ変換するどのような装置でも本発明を使用
できるが、本発明が特に有効であるのは、クリアテキス
トSPDLファイルを受け取ってバイナリ符号化SPD
Lファイルへ変換するSPDL装置の場合である。
した内容に照らして様々に修正及び変形をすることが可
能である。例えば、図12のステップ424を、図11
のステップ392と同様に、4桁グループに16
(24)を乗じ、その積の1位、10位、100位及び
1000位が0であるか判定するステップで置き換えて
もよい。これらの位が0であれば、その桁グループはN
/2rフォーマットによる符号化を妨げないことが分か
る。
うに、本発明は、数をN/2rフォーマットに符号化
し、さもなければ別の種類のバイナリ符号化を行なう。
倍精度数をN/2rフォーマットに符号化する時は、そ
の数の表現のために5バイトしか必要としない。これに
比べ、倍精度IEEE754標準では8バイト必要であ
る。同様に、単精度N/2rフォーマットのためには3
バイト必要であるのに対し、IEEE754標準の単精
度フォーマットでは4バイト必要である。このように、
本発明によれば、数を表わすのに必要なバイト数が減少
するため、IEEE754標準のみによって符号化する
場合より、小さい記憶スペースに格納することができ、
また、より高速なデータの格納及び伝送が可能になる。
また、本発明をクリアテキストSPDLファイルに適用
し、数値データをN/2rバイナリフォーマットへ変換
することによって、同ファイルの記憶スペースや伝送時
間を減らすことができるとともに、同ファイルの内容の
印刷処理をクリアテキスト表現の場合に比べ大幅に高速
化することできる。
マットのフィールドとフィールド長を示す。 (B)倍精度IEEE754浮動小数点フォーマットの
フィールドとフィールド長を示す。
ドとフィールド長を示す。 (B)倍精度N/2rフォーマットのフィールドとフィ
ールド長を示す。
を示す。 (D)同じ数のN/2r単精度バイナリ表現を示す。
PDLファイルへ符号化するプロセスの概略フローチャ
ートである。
ブロック図である。
プロセスのフローチャートである。
プロセスの部分フローチャートである。
化プロセスの部分フローチャートである。
化プロセスの部分フローチャートである。
化プロセスの部分フローチャートである。
るために用いられるプロセスのフローチャートである。
最後の0以外の桁を見つけるために用いられるプロセス
のフローチャートである。
Claims (25)
- 【請求項1】 プリンタ等のプレゼンテーション装置を
制御するための装置であって、 システムバスと、 数値データと非数値データを持つページ記述ファイルの
テキスト表現を生成するための、該システムバスに接続
されたページ記述生成手段と、 圧縮・符号化装置とを有し、 該圧縮・符号化装置は、該ページ記述ファイルの非数値
データをバイナリ表現に変換するための、該システムバ
スに接続された第1変換手段と、 該ページ記述ファイルの数値データをバイナリ数値表現
に変換するための、該システムバスに接続された第2変
換手段とを有し、 該第2変換手段は、数値変数rを記憶するための、該シ
ステムバスに接続されたメモリ手段と、 rを0に初期化するための、該システムバスに接続され
た初期化手段と、 該ページ記述ファイルの数値データのテキスト表現から
数値表現の数値データを数値変数Xに書き込むための、
該システムバスに接続された手段と、 Xに2を掛けるための、該システムバスに接続された乗
算器と、 rに1を加算するための該システムバスに接続された加
算器と、 該乗算器によって2を掛けられた後のXが整数であるか
判定し、 Xが整数になったときにはN=Xに設定し、Xが整数に
ならなかったときには、Xが整数になるか、少なくとも
Xまたはrの一方がメモリに格納されている所定の範囲
から外れるまで、該乗算器及び加算器を働かせるため
の、該システムバスに接続された手段を有し、かつ、 数値データ及び非数値データのバイナリ表現をプリンタ
等のプレゼンテーション装置へ伝送する伝送手段を有
し、該数値データ及び非数値データのバイナリ表現によ
って該プレゼンテーション装置を制御するプレゼンテー
ション装置の制御装置。 - 【請求項2】 Xが整数であるか判定するための、該シ
ステムバスに接続された整数判定手段と、 Xが整数のときにNをXの値と等しい値に設定するため
の、該システムバスに接続された手段とをさらに有す
る、請求項1記載のプレゼンテーション装置の制御装
置。 - 【請求項3】 数値データ及び非数値データのバイナリ
表現を、同データがプレゼンテーション装置へ伝送され
て、それを制御するまで、記憶するための記憶手段をさ
らに有する、請求項2記載のプレゼンテーション装置の
制御装置。 - 【請求項4】 Xとrの少なくとも一方が該所定範囲外
のときに、該ページ記述ファイルの数値データのテキス
ト表現を標準バイナリ表現に変換するための、該システ
ムバスに接続された標準変換手段をさらに有する、請求
項1記載のプレゼンテーション装置の制御装置。 - 【請求項5】 数値データと非数値データを持つページ
記述ファイルのテキスト表現を生成するステップと、 該ページ記述ファイルのテキスト表現を圧縮及び符号化
するステップとを有し、 該圧縮及び符号化のステップは、 該ページ記述ファイルのテキスト表現された非数値デー
タをバイナリ表現に変換するステップと、 該ページ記述ファイルのテキスト表現された数値データ
をバイナリ数値表現に変換するステップとを有し、 該数値データ変換のステップは、 数値変数rを0に初期化するステップと、 該ページ記述ファイルの数値データのテキスト表現から
数値表現の数値データを数値変数Xに書き込むステップ
と、 Xに2を乗算するステップと、 rに1を加算するステップと、 2を乗じた後のXが整数であるか判定し、Xが整数にな
ったときにはN=Xに設定し、Xが整数にならなかった
ときには、Xが整数になるか、少なくともXまたはrの
一方が所定の範囲から外れるまで、該乗算のステップ及
び該加算のステップを繰り返すステップとを有し、か
つ、 数値データ及び非数値データのバイナリ表現をプリンタ
等のプレゼンテーション装置へ伝送するステップを有
し、該数値データ及び非数値データのバイナリ表現によ
って該プレゼンテーション装置を制御するプレゼンテー
ション装置の制御方法。 - 【請求項6】 Xに2を乗算するステップの前にXが整
数であるか判定するステップと、 Xに2を乗算するステップの前にXが整数であると判定
されたときにNをXの値と等しい値に設定するステップ
とをさらに有する、請求項5記載のプレゼンテーション
装置の制御方法。 - 【請求項7】 数値データ及び非数値データのバイナリ
表現を、同データが該プレゼンテーション装置へ伝送さ
れて、それを制御するまで、記憶するステップをさらに
有する、請求項5記載のプレゼンテーション装置の制御
方法。 - 【請求項8】 Xとrの少なくとも一方が該所定範囲外
のときに、該ページ記述ファイルの数値データのテキス
ト表現を標準バイナリ表現に変換するステップをさらに
有する、請求項5記載のプレゼンテーション装置の制御
方法。 - 【請求項9】 コンピュータを利用して、電磁気的に表
現されたデータXをテキスト表現からN/2rフォーマ
ットへ変換するためのデータ圧縮符号化装置であって、 システムバスと、 変数rを記憶するための、該システムバスに接続された
メモリ手段と、 Xをテキスト表現から数値表現へ変換するための、該シ
ステムバスに接続された変換手段と、 Xに2を掛けるための、該システムバスに接続された乗
算器と、 rに1を加算するための、該システムバスに接続された
加算器と、 該乗算器によりXに2を掛けた後にXが整数であるか判
定し、Xが整数であると判定したときにはN=Xに設定
し、Xが整数でないと判定したときには、Xが整数にな
るか、Xとrの少なくとも一方がメモリに記憶された所
定の範囲から外れるまで、該乗算器及び該加算器を働か
せるための、該システムバスに接続された手段とを有す
るデータ圧縮符号化装置。 - 【請求項10】 Xが整数であるか判定するための、該
システムバスに接続された手段と、 Xが整数であると判定されたときにNをXの値と等しい
値に設定するための、該システムバスに接続された手段
とをさらに有する、請求項9記載のデータ圧縮符号化装
置。 - 【請求項11】 請求項9記載のデータ圧縮符号化装置
において、 該メモリに記憶されたrの所定の範囲は0≦r≦255
であり、 該メモリに記憶されたXの所定範囲は−231≦X≦231
−1である、ことを特徴とするデータ圧縮符号化装置。 - 【請求項12】 請求項9記載のデータ圧縮符号化装置
において、 該メモリに記憶されたrの所定の範囲は0≦r≦255
であり、 該メモリに記憶されたXの所定範囲は−215≦X≦215
−1である、ことを特徴とするデータ圧縮符号化装置。 - 【請求項13】 コンピュータを利用して、電磁気的に
表現された信号Xをテキスト表現からN/2rフォーマ
ットへ変換するデータ圧縮符号化方法であって、 メモリロケーションrを0に初期化するステップと、 Xをテキスト表現から数値表現へ変換するステップと、 Xに2を乗算するステップと、 rに1を加算するステップと、 Xが整数であるか判定し、Xが整数であると判定したと
きにNをXと等しい値に設定してプロセスを終了させる
第1判定ステップと、 Xとrの少なくとも一方が所定の範囲から外れているか
判定する第2判定ステップと、 Xとrの少なくとも一方が所定の範囲から外れていると
判定されたときにXのテキスト表現に対し標準バイナリ
符号化を実行してプロセスを終了させるステップと、 プロセスが終了させられるまで、該乗算のステップ、該
加算のステップ、該第1判定ステップ、該第2判定ステ
ップ、該標準バイナリ符号化のステップを繰り返すステ
ップとを有するデータ圧縮符号化方法。 - 【請求項14】 該乗算のステップの前にXが整数であ
るか判定するステップと、 Xが整数であると判定されたときに、N=Xに設定しプ
ロセスを終了させるステップとをさらに有する、請求項
13記載のデータ圧縮符号化方法。 - 【請求項15】 プリンタ等のプレゼンテーション装置
を制御するための装置であって、 システムバスと、 数値データと非数値データを持つページ記述ファイルの
テキスト表現を生成するための、該システムバスに接続
されたページ記述生成手段と、 圧縮・符号化装置とを有し、 該圧縮・符号化装置は、 該ページ記述ファイルの非数値データをバイナリ表現に
変換するための、 該システムバスに接続された第1変換手段と、 該ページ記述ファイルの数値データをバイナリ表現に変
換するための、該システムバスに接続された第2変換手
段とを有し、 該第2変換手段は、 数値変数rを記憶するための、該システムバスに接続さ
れたメモリ手段と、 rを0に初期化するための、該システムバスに接続され
た初期化手段と、 該ページ記述ファイルの数値データのテキスト表現から
数値表現の数値データの数値表現を数値変数Xに書き込
むための、該システムバスに接続された手段と、 Xの小数点より右の数字を連続した4桁のグループにグ
ループ化し、かつ、最も右側のグループが4桁となるよ
うに、Xの小数部の右側に1つ以上の0を付加するため
の、該システムバスに接続されたグループ化手段と、 該最も右側の4桁グループがN/2rフォーマットによ
る圧縮が可能であるか判定し、それが可能でないときに
該最も右側の4桁グループに対し数値データの標準バイ
ナリ符号化を実行するための、該システムバスに接続さ
れた手段と、 Xの整数部及び連続した4桁の各グループに2のべきを
掛け、 その結果に、そのすぐ右側に4桁のグループがあれば、
そのグループからの桁上がりを加えるという算術演算
を、該整数部及び各4桁のグループに対して行なうため
の、該システムバスに接続された手段と、 該2のべきのべき指数をrに加算するための、該システ
ムバスに接続された手段を有し、 かつ、 符号化及び圧縮後の数値及び非数値バイナリデータを該
プレゼンテーション装置へ伝送する伝送手段を有し、該
数値及び非数値バイナリデータによって該プレゼンテー
ション装置を制御するプレゼンテーション装置の制御装
置。 - 【請求項16】 Xが整数であるか判定し、整数である
と判定したときにN=Xに設定するための、該システム
バスに接続された手段をさらに有する、請求項15記載
のプレゼンテーション装置の制御装置。 - 【請求項17】 請求項15記載のプレゼンテーション
装置の制御装置において、 最も右側の4桁のグループがN/2rフォーマットによ
る圧縮が可能であるか判定するための該手段は、該最も
右側の4桁のグループが5000、2500、750
0、1250、3750、6250、8750、062
5、1875、3125、4375、5625、687
5、8125、0375のいずれかであるか判定するこ
とを特徴とするプレゼンテーション装置の制御装置。 - 【請求項18】 請求項15記載のプレゼンテーション
装置の制御装置において、 該2のべきのべき指数は、該最も右側の桁のグループが
5000ならば1であり、該最も右側の桁のグループが
1250または7500ならば2であり、該最も右側の
桁のグループが1250、3750、6250または8
750ならば3であり、該最も右側の桁のグループが0
625、1875、3125、4375、5625、6
875、8125または9375であれば4である、こ
とを特徴とするプレゼンテーション装置の制御装置。 - 【請求項19】.プリンタ等のプレゼンテーション装置
を制御するための方法であって、 数値データと非数値データを持つページ記述ファイルの
テキスト表現を生成するステップと、 該ページ記述ファイルのテキスト表現を圧縮及び符号化
するステップとを有し、 該圧縮及び符号化のステップは、 該ページ記述ファイルのテキスト表現された非数値デー
タをバイナリ表現に変換するステップと、 該ページ記述ファイルのテキスト表現された数値データ
をバイナリ表現に変換するステップとを有し、 該数値データ変換のステップは、 数値変数rを0に初期化するステップと、 該ページ記述ファイルの数値データのテキスト表現から
数値表現の数値データを数値変数Xに書き込むステップ
と、 Xの小数点より右の数字を連続した4桁のグループにグ
ループ化し、かつ、最も右側のグループが4桁となるよ
うに、Xの小数部の右側に1つ以上の0を付加するステ
ップと、 該最も右側の4桁グループがN/2rフォーマットによ
る圧縮が可能であるか判定し、それが可能でないときに
該最も右側の4桁グループに対し数値データの標準バイ
ナリ符号化を実行するためのステップと、 Xの整数部及び連続した4桁の各グループに2のべきを
乗算し、 各乗算の結果に、そのすぐ右側に4桁のグループがあれ
ば、そのグループからの桁上がりを加えるという算術演
算を、該整数部及び各4桁のグループに対して行なうス
テップと、 rの値と該2のべきのべき指数を足した値をrに設定す
るステップと、 該最も右側の桁のグループが圧縮できるか判定する該ス
テップ、 該算術演算を行なう該ステップ、rの値に該2のべきの
べき指数を足した値をrに設定する該ステップを、全て
の4桁のグループが0になるか、Xとrの少なくとも一
方が所定の範囲から外れるまで繰り返すステップとを有
する、プレゼンテーション装置の制御方法。 - 【請求項20】 該グループ化のステップを実行する前
に、Xが整数であるか判定し、Xが整数であると判定し
たときにN=Xに設定してプロセスを終了させるステッ
プをさらに有する、請求項19記載のプレゼンテーショ
ン装置の制御方法。 - 【請求項21】 請求項19記載のプレゼンテーション
装置の制御方法において、 該最も右側の桁のグループが該N/2rフォーマットに
より圧縮可能であるか判定する該ステップは、該最も右
側の桁のグループが5000、2500、7500、1
250、3750、6250、8750、0625、1
875、3125、4375、5625、6875、8
125または9375であるか判定することを特徴とす
る、プレゼンテーション装置の制御方法。 - 【請求項22】 請求項19記載のプレゼンテーション
装置の制御方法において、 該2のべきのべき指数は、該最も右側の桁のグループが
5000ならば1であり、該最も右側の桁のグループが
1250または7500ならば2であり、該最も右側の
桁のグループが1250、3750、6250または8
750ならば3であり、該最も右側の桁のグループが0
625、1875、3125、4375、5625、6
875、8125または9375であれば4である、こ
とを特徴とするプレゼンテーション装置の制御方法。 - 【請求項23】 コンピュータを利用して、電磁気的に
表現されたデータXをテキスト表現からN/2rフォー
マットへ変換するための、以下のステップを有するデー
タ圧縮符号化方法。 (a) 数値変数rを0に設定する。 (b) Xが整数であるか判定し、Xが整数であると判
定したときにN=Xに設定してプロセスを終了させる。 (c) Xの小数点より右側の数字を連続した4桁のグ
ループにグループ化し、 かつ、最も右側のグループが4桁となるように、Xの小
数部の右側に1つ以上の0を付加する。 (d) 該最も右側の4桁グループがN/2rフォーマ
ットにより圧縮可能であるか判定し、それが可能でない
ときにプロセスを終了させる。 (e) Xの整数部及び連続した4桁の各グループに2
のべきを乗算し、各乗算の結果に、そのすぐ右側の4桁
のグループからの桁上がりを加えるという算術演算を、
該整数部及び4桁の各グループに対して行ない、rの値
と該2のべきのべき指数を足した値をrに設定する。 (f) 全ての4桁のグループが0になるか、Xまたは
rが所定の範囲から外れるまで、ステップ(d)及びス
テップ(e)を繰り返す。 - 【請求項24】 コンピュータを利用して、電磁気的に
表現されたデータXをテキスト表現からN/2rバイナ
リフォーマットへ変換するためのデータ圧縮符号化装置
であって、 Xが整数であるか判定するための手段と、 Xが整数であると判定されたときに、N=X及びr=0
に設定するための手段と、 Xの小数部の最も右側の0でない数字の位置番号を調べ
るための手段と、 該最も右側の0でない数字の位置番号を4で除算し、剰
余を記憶するための手段と、 rに該記憶された剰余の値を設定するための手段と、 該小数点の右側の数字の個数が4で割り切れる数になる
まで0個または1個以上の0をXの後に付加するための
手段と、 該小数点の右側の数字を4桁のグループに順次グループ
化するための手段と、 最も右側の4桁のグループがN/2rフォーマットによ
り圧縮可能であるか判定するための手段と、 該最も右側の4桁のグループに、2の’該記憶された剰
余の値’乗を乗算して、該乗算の結果を10,000で
除算し、該除算の商の整数部を桁上がりとして記憶する
ための手段と、 次の最も右側の桁のグループが存在する場合に限り、該
次の最も右側の桁のグループに、2の’該記憶された剰
余の値’乗を乗算し、その積に該記憶された桁上がりを
加算するための手段と、 つぎの最も右側の桁のグループが存在する場合に限り、
つぎの最も右側の桁のグループに2の’該記憶された剰
余の値’乗を乗算した積に該記憶された桁上がりを足し
10,000で除算した結果の整数部を、桁上がりとし
て記憶するための手段と、 Xを、Xに2の’該記憶された剰余の値’乗を掛けた整
数部と等しい値に設定して、Xに該桁上がりを加算する
ための手段と、 0でない4桁グループが該小数点の右側に存在するか判
定し、それが存在しないときにN=Xに設定するための
手段と、 該0でない最も右側の桁グループに16を掛け、その積
を10,000で除した整数部を桁上がりとして記憶す
るための手段と、 つぎの最も右側の桁のグループが存在するときに限り、
該つぎの最も右側の桁のグループに16を掛けてから該
記憶された桁上がりを加算し、該積と桁上がりとの和を
10,000で除した整数部を桁上がりとして記憶する
ための手段と、Xに、Xに16を掛けて該記憶された桁
上がりを加算した値を設定するための手段とを有するデ
ータ圧縮符号化装置。 - 【請求項25】 コンピュータを利用して、電磁気的に
表現されたデータXをテキスト表現からN/2rバイナ
リフォーマットへ変換するための、以下のステップを有
するデータ圧縮符号化方法。 (a)Xが整数であるか判定し、整数であると判定した
ときにN=X及びr=0に設定して当該プロセスを終了
させる。 (b)Xの小数部の最も右側の0でない数字の位置番号
を調べる。 (c)該最も右側の0でない数字の位置番号を4で除算
し、剰余を記憶する。 (d)rに該記憶された剰余の値を設定する。 (e)該小数点の右側の数字の個数が4で割り切れる数
になるまで0個または1個以上の0をXの後に付加す
る。 (f)該小数点の右側の数字を順次に4桁のグループに
グループ化する。 (g)最も右側の4桁のグループがN/2rフォーマッ
トにより圧縮可能であるか判定し、圧縮不可能なときに
当該プロセスを終了させる。 (h)該最も右側の4桁のグループに、2の’該記憶さ
れた剰余の値’乗を乗算して、該乗算の結果を10,0
00で除算し、該除算の商の整数部を桁上がりとして記
憶する。 (i)次の最も右側の桁のグループが存在する場合に限
り、該次の最も右側の桁のグループに、2の’該記憶さ
れた剰余の値’乗を乗算し、その積に該記憶された桁上
がりを加算する。 (j)該つぎの最も右側の桁のグループが存在する場合
に限り、ステップ(i)の結果を10,000で除した
整数部を、桁上がりとして記憶する。 (k)引き続きつぎの最も右側の4桁グループが存在す
るならば、それらグループに対しステップ(i)及びス
テップ(j)を繰り返し実行する。 (l)Xを、Xに2の’該記憶された剰余の値’乗を掛
けた整数部と等しい値に設定し、該Xに該桁上がりを加
算する。 (m)0でない4桁グループが該小数点の右側に存在す
るか判定し、存在しないときにN=Xに設定してプロセ
スを終了させる。 (n)0でない最も右側の桁グループがN/2rフォー
マットにより圧縮可能であるか判定し、圧縮不可能なら
ばプロセスを終了させる。 (o)該0でない最も右側の桁グループに16を掛け
る。 (p)ステップ(o)で得られた積を10,000で除
した整数部を桁上がりとして記憶する。 (q)つぎの最も右側の桁のグループが存在するときに
限り、該つぎの最も右側の桁のグループに16を掛け
て、該記憶された桁上がりを加算する。 (r)ステップ(q)で得られた結果を10,000で
除した整数部を桁上がりとして記憶する。 (s)引き続きつぎの最も右側の4桁のグループが存在
するならば、それらグループに対しステップ(q)及び
ステップ(r)を繰り返し実行する。 (t)Xに、Xに16を掛け該記憶された桁上がりを加
算した値を設定する。 (u)当該プロセスがステップ(m)またはステップ
(n)によって終了させられるまでステップ(m)から
ステップ(t)まで繰り返す。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/986790 | 1992-12-08 | ||
| US07/986,790 US5548687A (en) | 1992-04-30 | 1992-12-08 | Method and apparatus for controlling a printer using the N/2r format |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06266533A JPH06266533A (ja) | 1994-09-22 |
| JP3487560B2 true JP3487560B2 (ja) | 2004-01-19 |
Family
ID=25532741
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30160693A Expired - Fee Related JP3487560B2 (ja) | 1992-12-08 | 1993-12-01 | プレゼンテーション装置の制御装置、プレゼンテーション装置の制御方法、データ圧縮符号化装置及びデータ圧縮符号化方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3487560B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08272658A (ja) * | 1995-03-31 | 1996-10-18 | Canon Inc | 情報処理装置および情報処理システム |
| JP5207886B2 (ja) * | 2007-09-20 | 2013-06-12 | キヤノン株式会社 | 文書符号化装置、文書符号化方法 |
-
1993
- 1993-12-01 JP JP30160693A patent/JP3487560B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH06266533A (ja) | 1994-09-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Witten et al. | Arithmetic coding for data compression | |
| EP0350439B1 (en) | A method of generating a compressed representation of a source data string | |
| Nelson et al. | The data compression book 2nd edition | |
| JP3009727B2 (ja) | 改良形データ圧縮装置 | |
| Williams | Adaptive data compression | |
| US5375204A (en) | System and method for efficient binary encoding of procedures in a document processing language | |
| US5886655A (en) | Arithmetic coding context model that accelerates adaptation for small amounts of data | |
| JPH1091140A (ja) | フオントを圧縮および復元する方法および装置 | |
| TWI273779B (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
| US5444445A (en) | Master + exception list method and apparatus for efficient compression of data having redundant characteristics | |
| US5548687A (en) | Method and apparatus for controlling a printer using the N/2r format | |
| JP3211640B2 (ja) | 2値化画像の圧縮のための二次元的方法およびシステム | |
| US7696906B2 (en) | LZW data compression algorithm | |
| JP3487560B2 (ja) | プレゼンテーション装置の制御装置、プレゼンテーション装置の制御方法、データ圧縮符号化装置及びデータ圧縮符号化方法 | |
| US6822586B2 (en) | Apparatus and method for converting binary numbers to character codes | |
| EP0485081B1 (en) | Data compression dictionary access minimization logic | |
| EP2264904B9 (en) | Methods and device of binary coding and decoding for structured document comprising a plurality of data | |
| HK1000129B (en) | Data compression dictionary access minimization logic | |
| US5880688A (en) | Arithmetic coding context model that adapts to the amount of data | |
| JP3124887B2 (ja) | データ圧縮・復号方式 | |
| WO1994027374A1 (en) | Method and apparatus for efficient compression of data having redundant characteristics | |
| Bloom | New Techniques in Context Modeling and Arithmetic Encoding. | |
| JP3511901B2 (ja) | 情報処理装置および情報処理システム | |
| JP2005260408A (ja) | データ圧縮装置およびデータ圧縮プログラム | |
| JP3499589B2 (ja) | 符号化装置及び符号化方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071031 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081031 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081031 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091031 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101031 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131031 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |