JPH08251033A - データ処理方法 - Google Patents

データ処理方法

Info

Publication number
JPH08251033A
JPH08251033A JP7321536A JP32153695A JPH08251033A JP H08251033 A JPH08251033 A JP H08251033A JP 7321536 A JP7321536 A JP 7321536A JP 32153695 A JP32153695 A JP 32153695A JP H08251033 A JPH08251033 A JP H08251033A
Authority
JP
Japan
Prior art keywords
byte
data
block
segment
value
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.)
Pending
Application number
JP7321536A
Other languages
English (en)
Inventor
Patrick E Welborn
パトリック・イー・ウェルボーン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH08251033A publication Critical patent/JPH08251033A/ja
Pending 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Landscapes

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

Abstract

(57)【要約】 【課題】すべての圧縮制御データ・エレメントを同じビ
ット・サイズにしてデータの圧縮制御及び処理を行う方
法を提供する。 【解決手段】次のカレント・ブロック・バイトが、オフ
セット計数値の最大値より大にオフセットされている場
合には、コマンド・バイト中のオフセット計数値を最大
値にセットし、また、置換計数値を0にセットする。シ
ード・バイトと異なる引き続くバイトの間でオフセット
・バイトの数によって、次のコマンド・バイトが更に挿
入される。オフセット計数値が最大値未満に到達した
ら、コマンド・バイトのオフセット計数値を、残りのオ
フセット計数値にセットし、また、置換計数値を置換さ
れるべきバイト数にしたがってセットする。コマンド・
バイトが、符号化識別子、オフセット計数値および置換
計数値を持つ一定長の制御バイトを用い、符号化識別子
の表示にしたがって、圧縮化、符号化を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ圧縮技術に
関するもので、特に、すべてのデータ圧縮符号化に対し
て一定長の制御ワードを使用するデータ圧縮技術に関す
るものである。
【0002】
【従来の技術】データ圧縮は、送信元ノードと宛先ノー
ド間のデータ伝送量を軽減するため、および、データを
蓄積するためのメモリ量を一層軽減するために使用され
る。データ圧縮は、ホスト・プロセッサとプリンタ間の
ラスタ・イメージの伝送の際にはほとんどいつも使用さ
れる。現在好まれているラスタ・データのためのデータ
圧縮技術は、”現在の(current)”ラスタ・イメージ行
が前のラスタ・イメージ行と比較され、前のラスタ・イ
メージ行と異なる現在のラスタ・イメージ行における値
のみが伝送されるようにした、”デルタ”方式で使われ
ている。圧縮動作により、オプションのオフセット計数
バイト、オプションの置換計数バイトおよび実際の置換
データが追随するコマンド・バイトからなるデルタ圧縮
データ系列(string)が出力される。
【0003】図1に、デルタ圧縮データ系列の例が示さ
れ、図2に、図1のコマンド・バイトの詳細が示されて
いる。コマンド・バイトは次の3つの別個の部分を含
む。 (1)置換データが符号化されているかどうか及びいかな
る復号化法が使用されるのかを指示する制御ビット、
(2)シード行中の現在位置からオフセットされる置換デ
ータのバイトの数を規定するオフセット計数値(4ビッ
ト)、及び、(3)置換される連続するデータ・バイトの
数を表示する置換計数値(3ビット)。
【0004】制御ビットがゼロであるならば、置換デー
タはラスタ・データ行からの非圧縮のすなわち”字義ど
おりの(literal)”(リテラル)バイトとなる。制御ビ
ットが1であるならば、置換データはラン・レングス符
号化されたものとなる。置換計数ビット(0-2)は、符号
化データ系列においてコマンド・バイトに追随するリテ
ラル・バイトによって置換されるバイト数の計数値を含
んでいる。オフセット計数値は、シード行における現在
位置に関してどこから置換バイトを開始させるかの位置
を表す。カレント・バイトは最後の置換バイト、また
は、行の開始にあたり必要な、最左端の画像マージンに
追随する。オフセット値がゼロは、カレント・バイト
を、また、オフセット値が1は、カレント・バイトに追
随するバイトを表す、等々である。
【0005】オフセット計数値は、4ビット長であるの
で、最大値は15であることに留意されたい。この従来技
術において、もしもオフセット計数値が15をこえる場合
には、オフセット計数バイトはコマンド・バイトに追随
し、そのコマンド・バイトのオフセット計数値に実際の
オフセット計数を達成するものを付加する。たとえオフ
セット計数値が15に等しい場合であっても、オフセット
計数バイトが追随しなければならず、そこに0を表示し
て、オフセット計数が15であることを指示する。
【0006】同じようにして、もしも置換計数値が7で
ある場合には、置換計数バイトはコマンド・バイトおよ
び幾つかのオフセット計数バイトに追随しなければなら
ない。もしも置換計数バイトが0である場合には、8つ
のバイト(すなわち、0から7まで)が置換される。も
しも置換計数バイトが255(すなわち、1バイトがす
べて1)である場合には、他の置換計数バイトが追随す
る。最後の置換計数バイトはいつも255未満である。
すべての置換計数バイトは全置換バイト計数を得るため
にコマンド・バイト中の置換計数値に付加されるもので
ある。全置換計数より1つ多いバイトが置換される。
【0007】上述したように、従来技術に係る圧縮手順
は、あるケースの場合には、オフセット計数バイトおよ
び置換計数バイトを追加することによって、オフセット
計数値が15より大きい場合および置換計数値が7より大
きい場合に適応してきた。実際には、置換計数値または
オフセット計数値がそれぞれの最大値(すなわち、7ま
たは15)であるときには、1つのオフセットバイト或い
は1つの置換計数バイトがコマンド・バイトに追随しな
ければならない。
【0008】
【発明が解決しようとする課題】したがって、上記した
従来技術に係る圧縮手順が秀れた圧縮特性を呈するよう
にするためには、可変長の制御バイトを処理して圧縮動
作をさせるための特別に構成したハードウェアを必要と
し、そのハードウェアのために好ましくないコストをか
けるようにする必要がある。それゆえ、本発明の目的
は、すべての圧縮制御データ・エレメントを同じビット
・サイズにしてデータの圧縮制御および処理を行うため
の方法を提供することである。本発明の他の目的は、制
御バイトを一定サイズにして、圧縮装置を安く構成でき
るようにしたデータ圧縮のための装置を提供することで
ある。
【0009】
【課題を解決するための手段】本発明の課題は、次のス
テップをとることによって解決される。カレント・ブロ
ック(14)のデータ・セグメントを格納するステップと、
上記カレント・ブロック(14)のデータ・セグメント中の
各データ・セグメントがシード値(13)と同じなのか又は
異なるのかを決定するステップと、圧縮型式(version)
(22)がコマンド・セグメントと上記カレント・ブロック
(14)のデータ・セグメントからの隣接したデータ・セグ
メントを含み、各コマンド・セグメントは、符号化識別
子、オフセット計数値およびデータ・セグメント置換計
数値を有し、上記オフセット計数値およびデータ・セグ
メント置換計数値は制限された値を表示する、上記カレ
ント・ブロック(14)のデータ・セグメントの上記圧縮型
式(22)を生成するステップと、からなり、上記生成する
ステップは、上記カレント・ブロック(14)のデータ・セ
グメントが上記シード値(13)と異なるとの決定に応じ
て、上記シード値(13)と異なる上記カレント・ブロック
(14)中の一連の隣接したデータ・セグメントが上記コマ
ンド・セグメントに追随し、また、上記データ・セグメ
ントの数が上記データ・セグメント置換計数値が示す制
限された値を越える場合には、(a)データ・セグメント
計数値を上記制限された値およびオフセット計数値をゼ
ロにして第1のコマンド・セグメントに表示せしめ、さ
らに(b)上記一連の隣接したデータ・セグメントから少
なくとも1つの上記隣接したデータ・セグメントを上記
第1のコマンド・セグメントに追随させるようにした、
ことを含むデータ処理方法。
【0010】
【発明の実施の形態】図3には、本発明の手順によって
符号化および復号化を実行する送信機と受信機の双方が
ブロック図として示されている。これ以降、シード・ブ
ロックおよびカレント・ブロックのデータは、バイトサ
イズのデータ・セグメントにおいて符号化されたものと
して参照されるが、当業者には他のサイズのデータ・セ
グメントも本発明の範囲内に属するものとして理解され
る。
【0011】幾らかの用語が次に示される定義にしたが
って使用される。 ブロック:任意のデータ・リストを持つブロック・デー
タであって、ブロック・データのサイズは任意であり、
かつデータ・リストは任意の長さである。 シード・ブロック:シード・ブロックはカレント・ブロ
ックのデータを符号化するのに使われるブロック・デー
タを表すバイト・リストである。 カレント・ブロック:カレント・ブロックは、現に圧縮
または伸張されているバイト・リストである。 デルタ・ブロック:デルタ・ブロックは、どのバイトが
シード・ブロックとカレント・ブロック間で異なるかを
表す。 符号化ブロック:符号化ブロックは、送信モジュールか
ら受信モジュールへ送信される本発明の手順によって符
号化されたデータ・ブロックである。オフセット:オフ
セットは、現バイト位置から他のバイト位置への計数で
ある。
【0012】図3において、送信機10と受信機12間
のデータ移動は、本発明のデータ圧縮符号化と組み合わ
されて示される。送信機10は、メモリを有し、メモリ
中にシード・ブロック13とカレント・ブロック14を
蓄積する。典型的なシード・ブロック13は図4に示さ
れ、また、典型的なカレント・ブロック14は、図5に
示される。差異モジュール16は、シード・ブロック1
3とカレント・ブロック14とに生起する対応するバイ
ト位置を比較し、もしもバイトが異なる場合には、コー
ドを出力する。もしもバイトが同じであれば、ゼロ値を
出力する。差異モジュール16が作動した結果、図6に
示されるデルタ・ブロック18が生成される。デルタ・
ブロック18とカレント・ブロック14は、符号化モジ
ュール20に供給され、そこで本発明の符号化手順が実
行される。符号化、圧縮化されたデータ・ブロック22
は送信モジュール24を介して受信機12へ送信され
る。符号化、圧縮化されたデータ・ブロック22は、復
号化モジュール30によりデルタ・ブロック形式18に
復元される。置換モジュール32はカレント・ブロック
14を復元するために、シード・ブロック13からのデ
ータおよびデルタ・ブロック18からの置換データを使
用する。
【0013】本発明を実施するために、図2のコマンド
・バイトが使用されるが、オプションのオフセット・バ
イトおよび置換計数バイトは除外される。その代わり
に、コマンド・バイトが、オフセット計数値および置換
計数値を表すようにされ、これらの計数値は、符号化ブ
ロック22からのバイト区画の完全な符号化および復号
化のために更なるコマンド・バイトが必要であることを
復号化モジュール30に報知する。
【0014】要するに、次のカレント・ブロック・バイ
ト(シード・ブロック・バイトとは異なる)が、15
(オフセット計数値としての最大値)より大きいバイト
計数値によって以前の異なるバイトからオフセットされ
ている場合には、コマンド・バイト中のオフセット計数
値は、15に等しいようにセットされ、また、置換計数
値は0にセットされる。置換計数値0は、置換計数値に
基づく行動がなんら引起こされないことを指示する。シ
ード・バイトと異なる引き続くバイトの間でオフセット
・バイトの数によって、第2のコマンド・バイトが挿入
され、そのオフセット計数値が最大値またはそれより幾
らか小さい値にセットされる。もしも再び、オフセット
計数値が15より大きい場合には、第2のコマンド・バ
イトにおける置換計数値を再び0にセットして、オフセ
ット計数値が15に等しいか、またはそれより幾らか小
さい値になるまで、その処理を第3のコマンド・バイト
でも繰り返す。オフセット計数値が上記の最大値未満に
到達したら、コマンド・バイトのオフセット計数値は、
残りのオフセット計数値にセットされ、また、置換計数
値は置換されるべきバイト数にしたがってセットされ
る。
【0015】バイトの置換計数値が7(2進数3ビット
での最大値)より大きい場合には、第1のコマンド・バ
イトは最後の異なるバイトからの実際のオフセット計数
値を表し、また置換計数値は7に等しくされる。第1の
コマンド・バイトに続く1つの(または複数の)リテラ
ルバイトの後に第2のコマンド・バイトが挿入される。
第2のコマンド・バイトは、オフセット計数値ゼロを表
しており、これは、この後すぐに次の置換バイトが始ま
ることを指示する。
【0016】このようにして、ビットで制限される最大
値を越えるオフセット計数値および置換計数値の双方
は、更なるコマンド・バイトの使用を報知する。オプシ
ョンのオフセット計数バイトまたは置換計数バイトを識
別及び処理する付加的ハードウェア(従来技術がそうで
あった)はなんら必要とされない。
【0017】ここでは、16進数の符号化法が採用され
ている。参考のために、16進数の符号化法は、4ビッ
トを使用して値0から9までを符号化するとともにその
後の値を、A=10、B=11、C=12、D=13、E=14および
F=15で符号化するものであることを想起されたい。さ
らに、以下に示される例において、2つのデータ符号化
法の1つが2つの2進数値の1つで表示される。2つの
データ符号化法は、ラン・レングスとリテラル(字義ど
おり)置換である。リテラル置換データは、カレント・
ブロックから符号化されたブロックへの移行にあたりリ
テラルバイト値が挿入されることを意味している。ラン
・レングスは、カレント・ブロックにおいて繰り返され
るバイトと一致する1バイトが挿入されることを意味し
ている。(ラン・レングス・バイトは、コマンド・バイ
トのすぐ後に挿入される。)ラン・レングスまたはリテ
ラル置換のどちらを使用するかの決定に際しては、どち
らが良好な(必ずしも最適ではないが)結果をもたらす
かの規則による。すなわち、新しいコマンド・バイトが
開始され、2以上の異なるバイトがあり、もしも次の2
つのバイトが等しいのならば、ラン・レングスを使用
し、そうでないのならば、リテラル置換を使用する。
【0018】ここでは、図4、図5および図6で示され
るシード・ブロック、カレント・ブロックおよびデルタ
・ブロックの文脈について符号化手順の例を記述する。
符号化ブロックは、以下の表1に示される。符号化ブロ
ックは、ASCII文字、”Escape”(0x1B)(ESC)で表され
るコマンド引き出し部(leader)で始まる。バイト計数が
これに続き、最上位バイトが最初にくる2バイトの2進
数情報に符号化される。たとえば、2バイト値(16進
数における)が0x01および0x05であるならば、264(10
進数)となる。2バイト値が0x00および0x05であるなら
ば、5(10進数)である。シード・ブロック識別子(ID)が
次に生起し、”A”から”Z”の間のASCII文字で表され
る。
【0019】コマンド・バイトは、次のように定義され
る。ビット7は、符号化フラグであり、0ならば、ラン
・レングスを、1ならば、リテラル置換をそれぞれ意味
する。ビット6、5、4および3は、オフセット計数値
である。(かくして、その値は0と15の間となる。) ビット2、1および0は、置換計数値である。(かくし
て、その値は0と7の間となる。) 実現可能な符号化ブロックの型式(version)を表1に示
す。異なる行におけるバイトの出現および頭下げ(inde
nting)は、明瞭にするためのものであって、改行、タブ
またはスペースの表示を意図するものではない。
【0020】
【表1】 "ESC" 0x00 0x12 "A" 0x93 0x32 0x33 0x34 0x14 0xFF 0xF8 0xE7 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x82 0x8D 0x8E 表1が多数の実現可能な符号化の内のわずか1つしか示
していないことを理解することが大切である。それが最
も効率のよい符号化である場合があり、唯一実現可能な
符号化ではない。符号化は、まずバイト0(図5のカレ
ント・ブロック中における0x00)で開始される。図6の
デルタ・ブロックからわかるように、シード・ブロック
(図4)とは異なるカレント・ブロックの最初のバイト
は、バイト2(0x32)である。最初の異なるバイトを含め
て、シード・ブロックと異なる3つの隣接するバイト
(カレント・ブロック中の0x32、0x33、0x34)がある。し
たがって、置換計数値は3となる。3つのバイトは同一
値ではないので、リテラル置換が符号化法となり、符号
化フラグは1にセットされる。
【0021】コマンド・バイトは、以下のように形成さ
れる。 コマンド・バイト= (0x01<<7) : (0x02<<3) : (0x03) = 0x93 2進数形式では、コマンド・バイトは10010011で表さ
れ、最も左の1のビットは、リテラル置換を表示し、次
の4ビット(0010)は、オフセット計数値2を表示し、更
に次の3ビット(011)は、置換計数値3を表示する。16
進数符号化でのコマンド・バイト表示は、0x93である。
このうち、0xは、16進数符号化の使用を表示し、4つの
高次のビットは、1001=9であり、4つの低次のビット
は、0011=3であるので、16進数符号化では0x93となる。
したがって、符号化方法は、リテラル置換であり、コマ
ンド・バイト後の3バイトは、置換バイト:0x32 0x33
0x34となる。
【0022】カレント・バイトは、増分されて次のよう
になる。 カレント・バイト= カレント・バイト+オフセット計数値+置換計数値 = 0 + 2 + 3 = 5 デルタ・ブロックから、次の異なるバイトは、バイト7
である。次のコマンド・バイトのオフセット計数値は、
以下のようになる。 オフセット計数値= 次の異なるバイト-カレント・バイト = 7 - 5 = 2 最初の異なるバイトを含めて、それに続く4つのバイト
(7-10)が異なる。したがって、置換計数値は4となる。
さらに、カレント・ブロック中のこれら4つのバイト(7
-10)は同じ(0xFF)であるので、ラン・レングス符号化が
符号化法として採用され、符号化フラグビット値は0に
セットされる。
【0023】コマンド・バイトは、次のように形成され
る。 コマンド・バイト= (0x00<<7) : (0x02<<3) : (0x04) = 0x14 2進数では、その値0x14=00010100(オフセット計数値0
010=2,置換計数値100=4)である。したがって、符号化
法はラン・レングスとなり、次のバイトはラン・レング
ス値0xFFとなる。カレント・バイトは、増分されて次の
ようになる。 カレント・バイト= カレント・バイト+オフセット計数値+置換計数値 = 5 + 2 + 4 = 11 デルタ・ブロックから、次の異なるバイトは、バイト38
である。次のコマンド・バイトのオフセット計数値は、
以下のようになる。 オフセット計数値= 次の異なるバイト-カレント・バイト = 38 - 11 = 27 このオフセット計数値は、可能最大値15よりも大きい。
それゆえ、”ゼロ置換制御ワード”(ZRCW)が形成され
る。ZRCWが形成されると、リテラル置換符号化法と置換
計数値0が使用される。置換計数値0は、”何もしな
い”ようにすることと解釈される。
【0024】オフセット計数値15が使用され、コマンド
・バイトは次のように形成される。 コマンド・バイト= (0x01<<7) : (0x0F<<3) : (0x00) = 0xF8 2進数では、コマンド・バイト値は11111000(オフセッ
ト計数値1111=15、置換計数値000=0)となる。カレント
・バイトは、増分されて次のようになる。 カレント・バイト= カレント・バイト+オフセット計数値+置換計数値 = 11 + 15 + 0 = 26 次の異なるバイトは、依然としてバイト38である。次の
コマンド・バイトのオフセット計数値は、以下のように
なる。 オフセット計数値= 次の異なるバイト-カレント・バイト = 38 - 26 = 12 最初の異なるバイトを含めて、それに続く9つのバイト
が異なる。この置換計数値9は、可能最大値7よりも大
きい。したがって、置換計数値は7にセットされる。つ
ぎの7バイトは、等しくはないので、リテラル置換符号
化が符号化法として採用され、符号化フラグビット値は
1にセットされる。
【0025】そこで、コマンド・バイトは、次のように
形成される。 コマンド・バイト= (0x01<<7) : (0x0C<<3) : (0x07) = 0xE7 2進数では、コマンド・バイト値は11100111(オフセッ
ト計数値1100=12、置換計数値111=7)となる。したがっ
て、符号化法はリテラル置換であり、次の7バイトは、
0x86 0x87 0x88 0x89 0x8A 0x8B 0x8Cとなる。カ
レント・バイトは、増分されて次のようになる。 カレント・バイト= カレント・バイト+オフセット計数値+置換計数値 = 26 + 12 + 7 = 45 次の異なるバイトは45なので、バイト38から7つのバイ
トが符号化されるだけである。次のコマンド・バイトの
オフセット計数値は、以下のようになる。 オフセット計数値= 次の異なるバイト-カレント・バイト = 45 - 45 = 0 置換計数値は2であり、2つのバイトは等しくないの
で、符号化法はリテラル置換が使用される。したがっ
て、コマンド・バイトは、次のように形成される。 コマンド・バイト= (0x01<<7) : (0x00<<3) : (0x02) = 0x82 2進数では、コマンド・バイト値は10000010(オフセッ
ト計数値0000=0、置換計数値010=2)となる。オフセッ
ト計数値0は、置換計数バイトとしてそれ以前の置換計
数バイトが継続することを表示する。次の2つのバイト
は、0x8D 0x8Eである。カレント・バイトは、増分されて
次のようになる。 カレント・バイト= カレント・バイト+オフセット計数値+置換計数値 = 45 + 0 + 2 = 47 他の異なるバイトを見つける前にブロックの終了に達す
る。したがって、ブロックの符号化も終了に達する。そ
こでカレント・ブロックは0にセットされる。
【0026】以上の手順をへて、符号化ブロックは、次
のようになる。
【0027】 0x93 0x32 0x33 0x34 0x14 0xFF 0xF8 0xE7 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x82 0x8D 0x8E 符号化ブロックを完成させるために、データとしてコマ
ンド引き出し部、18バイトのバイト計数値およびシード
・ブロックID"A"が符号化ブロックに前置される。
【0028】受信機12によって実施される復号化手順
は、何が挿入されているべきなのか及び復元されるカレ
ント・ブロック中のどこで挿入が起こるべきなのかを知
るために、コマンド・バイトおよびそれに続くリテラル
バイトを使用する。シード・ブロックは”ブランクを充
填する”。たとえば、もしもコマンド・バイトがラン・
レングス符号化ビットを表しており、データ・セグメン
ト置換計数値が7であり、オフセット計数値が0であれ
ば、復号化モジュールはカレント・ブロックの伸張型式
(version)においてカレント・バイトの後にコマンド・
バイト中のデータ・セグメントの置換計数値に等しい数
の置換バイトを挿入する。各置換バイトはコマンド・バ
イトに続く次のバイトに同じである。同じようにして、
もしも符号化ビットがリテラル置換を表していれば、カ
レント・ブロックの伸張型式におけるカレント・バイト
は、カレント・ブロックからのリテラルバイト値である
として幾つかの隣接したバイトがコマンド・バイトに追
随する。最後に、もしもコマンド・バイトがオフセット
計数値15およびデータ・セグメント置換計数値0を含む
場合には、オフセット計数値は復号器によって累算さ
れ、次の隣接したバイトはコマンド・バイトとして分析
される。もしも次のコマンド・バイトがオフセット計数
値15および置換計数値0を表示している場合には、コマ
ンド・バイト分析ステップが繰り返される。そうでなく
て、もしも次のコマンド・バイトが、置換計数値0以外
を表示しているならば、カレント・ブロックの伸張型式
において、復号器は、累算されたオフセット計数値によ
って決定されるバイト位置に最後に分析されたコマンド
・バイトに続く1以上のバイトを挿入する。
【0029】以上の記述は、本発明の一実施例にすぎな
いことを理解されたい。本発明から離れることなく多く
の変更と修正は当業者にとって引き出し可能である。従
って、本発明は添付されたクレームに属するすべての変
更、修正及び変化を包含することも意図している。
【0030】本発明には、例として次のような実施様態
が含まれる。 (1)カレント・ブロック(14)のデータ・セグメントを
格納するステップと、上記カレント・ブロック(14)のデ
ータ・セグメント中の各データ・セグメントがシード値
(13)と同じなのか又は異なるのかを決定するステップ
と、圧縮型式(22)がコマンド・セグメントと上記カレン
ト・ブロック(14)のデータ・セグメントからの隣接した
データ・セグメントを含み、各コマンド・セグメント
は、符号化識別子、オフセット計数値およびデータ・セ
グメント置換計数値を有し、上記オフセット計数値およ
びデータ・セグメント置換計数値は制限された値を表示
する、上記カレント・ブロック(14)のデータ・セグメン
トの上記圧縮型式(22)を生成するステップと、からな
り、上記生成するステップは、上記カレント・ブロック
(14)のデータ・セグメントが上記シード値(13)と異なる
との決定に応じて、上記シード値(13)と異なる上記カレ
ント・ブロック(14)中の一連の隣接したデータ・セグメ
ントが上記コマンド・セグメントに追随し、また、上記
データ・セグメントの数が上記データ・セグメント置換
計数値が示す制限された値を越える場合には、(a)デー
タ・セグメント計数値を上記制限された値およびオフセ
ット計数値をゼロにして第1のコマンド・セグメントに
て表示せしめ、さらに(b)上記一連の隣接したデータ・
セグメントから少なくとも1つの上記隣接したデータ・
セグメントを上記第1のコマンド・セグメントに追随さ
せるようにした、ことを含むデータ処理方法。 (2)もしも上記カレント・ブロック(14)中の上記一連
の隣接したデータ・セグメントが同じ場合には、上記生
成するステップは、第1の符号化識別子を上記第1のコ
マンド・セグメントに表示せしめ、上記第1のコマンド
・セグメントに上記一連の隣接したデータ・セグメント
からただ1つの上記隣接したデータ・セグメントを追随
させるようにした、上記(1)記載のデータ処理方法。 (3)もしも上記一連の隣接したデータ・セグメントか
らの隣接したデータ・セグメントの残りの数が上記制限
された上記データ・セグメント置換計数値を越える場合
には、上記生成するステップは、上記第1の符号化識別
子、オフセット計数値ゼロおよび上記制限された値を指
示するデータ・セグメント置換計数値を第2のコマンド
・セグメントに表示せしめ、上記一連の隣接したデータ
・セグメントから1つの上記隣接したデータ・セグメン
トを上記第2のコマンド・セグメントに追随させるよう
にした、上記(2)記載のデータ処理方法。 (4)コマンド・セグメントを見つけるために上記カレ
ント・ブロック(14)の圧縮型式(22)を調査するステップ
と、データ・セグメント置換計数値が上記制限された
値、オフセット計数値がゼロ且つ第1の符号化識別子を
有する上記コマンド・セグメントに応じて、伸張された
カレント・ブロック(14)中のカレント・データ・セグメ
ントの後に、置換セグメントのそれぞれが上記コマンド
・セグメントに続く次のデータ・セグメントに同じであ
るような、上記データ・セグメント置換計数値に等しい
数の置換データ・セグメントを挿入するステップと、を
更に含む上記(2)記載のデータ処理方法。
【0031】(5)もしも上記カレント・ブロック(14)
中の上記一連のデータ・セグメントが異なる場合には、
上記生成するステップは、第2の符号化識別子を上記第
1のコマンド・セグメントに表示せしめ、且つ上記デー
タ・セグメント計数値として上記制限された値に等しい
数の隣接した異なるデータ・セグメントを上記一連のデ
ータ・セグメントとして追随させるようにした、上記
(1)記載のデータ処理方法。 (6)上記生成するステップは、データ・セグメントの
数を上記データ・セグメント置換計数値の上記制限され
た値に等しいようにさせ、且つ上記第2の符号化識別子
を表示する第2のコマンド・セグメントおよび上記一連
のデータ・セグメントとしての隣接する異なるデータ・
セグメントを追随させ、もしも上記一連のデータ・セグ
メントとしての隣接する異なるデータ・セグメントの残
りの数が上記制限された値に等しいか又はそれを越える
ならば、上記データ・セグメント置換計数値が上記制限
された値を表し、もしも隣接する異なるデータ・セグメ
ントの残りの数が上記制限された値よりも小さければ、
上記データ・セグメント置換計数値が上記制限された値
より小さい値を表すようにされる、上記(5)記載のデ
ータ処理方法。 (7)上記第2のコマンド・セグメントは、更にオフセ
ット計数値ゼロを表示するものである、上記(6)記載
のデータ処理方法。 (8)コマンド・セグメントを見つけるために上記カレ
ント・ブロック(14)の圧縮型式(22)を調査するステップ
と、データ・セグメント置換計数値が上記制限された
値、オフセット計数値がゼロ且つ第2の符号化識別子を
有する上記コマンド・セグメントに応じて、伸張された
カレント・ブロック(14)中のカレント・データ・セグメ
ントの後に、上記データ・セグメント置換計数値に等し
い数の上記カレント・セグメントが追随する上記カレン
ト・ブロックの圧縮型式(22)からの隣接したデータ・セ
グメントを挿入するステップと、を更に含む上記(5)
記載のデータ処理方法。 (9)上記シード値が、ブロック(13)のデータ・セグメ
ントのすべてで同じ値を表示するものからなる、上記
(1)記載のデータ処理方法。
【0032】(10)カレント・ブロック(14)のデータ
・セグメントを格納するステップと、上記カレント・ブ
ロック(14)のデータ・セグメント中の各データ・セグメ
ントがシード値(13)と同じなのか又は異なるのかを決定
するステップと、圧縮型式(22)がコマンド・セグメント
と上記カレント・ブロック(14)のデータ・セグメントか
らの隣接したデータ・セグメントを含み、各コマンド・
セグメントは、符号化識別子、オフセット計数値および
データ・セグメント置換計数値を有し、上記オフセット
計数値およびデータ・セグメント置換計数値は制限され
た値を表示する、上記カレント・ブロック(14)のデータ
・セグメントの上記圧縮型式(22)を生成するステップ
と、からなり、上記生成するステップは、上記カレント
・ブロック(14)からのデータ・セグメントが上記シード
値(13)と異なり且つ上記オフセット計数値が示す制限さ
れた値を数において越える分だけのデータ・セグメント
によって前の異なるデータ・セグメントから分割される
との論理手段による決定に応じて、(a)データ・セグメ
ント計数値を上記制限された値およびオフセット計数値
をゼロにして第1のコマンド・セグメントに表示せし
め、さらに(b)オフセット計数値を制限された値又はそ
れより小さな値を表示する少なくとも1以上の更なるコ
マンド・セグメントを、上記第1のコマンド・セグメン
トおよび更なるコマンド・セグメントからのオフセット
計数値の合計が数において越えた分に等しくなるまで、
上記第1のコマンド・セグメントに追随させるようにし
た、ことを含むデータ処理方法。 (11)上記シード値(13)が、ブロックのデータ・セグ
メントのすべてで同じ値を表示するものからなる、上記
(10)記載のデータ処理方法。 (12)コマンド・セグメントを見つけるために上記カ
レント・ブロック(14)の圧縮型式を調査するステップ
と、オフセット計数値が上記制限された値およびデータ
・セグメント置換計数値がゼロを有する上記コマンド・
セグメントに応じて、(イ)上記オフセット計数値を累
算し、且つ(ロ)次の隣接するデータ・セグメントを次
のコマンド・セグメントとして分析し、もしも上記次の
コマンド・セグメントがオフセット計数値として上記制
限された値および置換計数値としてゼロを表示している
場合には、上記(イ)及び(ロ)を繰り返し、またもし
も上記次のコマンド・セグメントが置換計数値としてゼ
ロ以外を表示している場合には、伸張されたカレント・
ブロック中に、累算されたオフセット計数値によって決
定されるデータ・セグメント位置に1以上のデータ・セ
グメントを上記次のコマンド・バイトに追随して挿入す
るステップと、を更に含む上記(10)記載のデータ処
理方法。
【0033】
【発明の効果】このように、すべての圧縮制御データ・
エレメントを同じビット・サイズにしてデータの圧縮制
御及び処理を行うことができるようにして、オプション
のオフセット計数バイトまたは置換計数バイトを識別及
び処理する特別のハードウェアを必要とすることなく、
圧縮装置の経済化を図ることができる。
【図面の簡単な説明】
【図1】コマンド・バイト、オフセット・バイト(オプ
ション)、置換計数バイト(オプション)および置換デ
ータ・バイトからなる従来技術のデルタ圧縮データ系列
を示すダイヤグラムである。
【図2】ビット位置が符号化制御ビット、オフセット計
数値および置換計数値に割り当てられた従来技術のコマ
ンド・バイトを示す。
【図3】本発明の方法によって符号化および復号化を実
行する送信機および受信機のブロック図である。
【図4】16進符号化バイトで表された典型的なシード
・ブロックを示す。
【図5】本発明の方法を使用して符号化された典型的な
カレント・ブロックを示す。
【図6】上記シード・ブロックとは異なる上記カレント
・ブロック中のバイトを表すデルタ・ブロックを示す。
【符号の説明】
10 送信機 12 受信機 13 シード・ブロック 14 カレント・ブロック 16 差異モジュール 18 デルタ・ブロック 20 符号化モジュール 22 符号化ブロック 24 送信モジュール 30 復号化モジュール 32 置換モジュール

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】カレント・ブロック(14)のデータ・セグメ
    ントを格納するステップと、 上記カレント・ブロック(14)のデータ・セグメント中の
    各データ・セグメントがシード値(13)と同じなのか又は
    異なるのかを決定するステップと、 圧縮型式(22)がコマンド・セグメントと上記カレント・
    ブロック(14)のデータ・セグメントからの隣接したデー
    タ・セグメントを含み、各コマンド・セグメントは、符
    号化識別子、オフセット計数値およびデータ・セグメン
    ト置換計数値を有し、上記オフセット計数値およびデー
    タ・セグメント置換計数値は制限された値を表示する、
    上記カレント・ブロック(14)のデータ・セグメントの上
    記圧縮型式(22)を生成するステップと、を含み、 上記生成するステップは、上記カレント・ブロック(14)
    のデータ・セグメントが上記シード値(13)と異なるとの
    決定に応じて、上記シード値(13)と異なる上記カレント
    ・ブロック(14)中の一連の隣接したデータ・セグメント
    が上記コマンド・セグメントに追随し、また、上記デー
    タ・セグメントの数が上記データ・セグメント置換計数
    値が示す制限された値を越える場合には、(a)データ・
    セグメント計数値を上記制限された値およびオフセット
    計数値をゼロにして第1のコマンド・セグメントに表示
    せしめ、さらに(b)上記一連の隣接したデータ・セグメ
    ントから少なくとも1つの上記隣接したデータ・セグメ
    ントを上記第1のコマンド・セグメントに追随させるよ
    うにした、データ処理方法。
JP7321536A 1995-01-31 1995-12-11 データ処理方法 Pending JPH08251033A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US382,470 1995-01-31
US08/382,470 US5649074A (en) 1995-01-31 1995-01-31 Raster image data compression method and system

Publications (1)

Publication Number Publication Date
JPH08251033A true JPH08251033A (ja) 1996-09-27

Family

ID=23509094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7321536A Pending JPH08251033A (ja) 1995-01-31 1995-12-11 データ処理方法

Country Status (3)

Country Link
US (1) US5649074A (ja)
EP (1) EP0725485A3 (ja)
JP (1) JPH08251033A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3604795B2 (ja) * 1995-11-30 2004-12-22 キヤノン株式会社 印字制御装置と印字制御方法
US6298164B1 (en) * 1998-10-02 2001-10-02 Canon Kabushiki Kaisha PCL conversion of JETSEND images
US6373583B1 (en) 1998-11-16 2002-04-16 Hewlett-Packard Company Compound document page data compression
JP2000285069A (ja) * 1999-03-31 2000-10-13 Copyer Co Ltd 同期式シリアル通信方法及び同期式シリアル通信システム
US6972868B1 (en) 2000-11-09 2005-12-06 Hewlett-Packard Development Company, L.P. Image data compression method
US7532358B2 (en) * 2002-02-27 2009-05-12 Hewlett-Packard Development Company, L.P. Hardware implemented loss-less page data compressor/decompressor
US7373008B2 (en) 2002-03-28 2008-05-13 Hewlett-Packard Development Company, L.P. Grayscale and binary image data compression

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060286A (en) * 1989-01-19 1991-10-22 Hewlett-Packard Company Raster row and byte group graphics images data compression method
US5452405A (en) * 1993-01-25 1995-09-19 Hewlett-Packard Company Method and apparatus for delta row decompression

Also Published As

Publication number Publication date
US5649074A (en) 1997-07-15
EP0725485A3 (en) 1998-06-17
EP0725485A2 (en) 1996-08-07

Similar Documents

Publication Publication Date Title
US10750205B2 (en) Selective use of start code emulation prevention
JP3459030B2 (ja) 符号化システム
JP2022526098A (ja) エントロピコーディングにおいて等確率シンボルをハンドリングするための方法およびデバイス
RU2125765C1 (ru) Способ и устройство сжатия символов, стохастический кодер (варианты)
KR100353171B1 (ko) 적응형데이터압축을수행하는방법및장치
US7230630B2 (en) Graphics display systems with data compression and methods of performing data compression of graphics data
JP2007037115A (ja) デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法
JP2544883B2 (ja) ランレングス符号化方法及び装置
JPH07212242A (ja) 可変長復号化器
WO1995019662A1 (en) Data compression apparatus and method
JP2831888B2 (ja) Hdtv復号化器
US6512775B1 (en) Method and apparatus for a programmable bitstream parser for audiovisual and generic decoding systems
KR0178201B1 (ko) 가변 길이 복호화 장치
CN1675842B (zh) 算术编码的方法、设备以及相应解码方法
US6956511B2 (en) Multi-symbol/coefficient decode operation for Huffman codes
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
USRE37912E1 (en) Variable-length encoder and decoder using symbol/code-word re-association of a coding table
JPH1065549A (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
JPH08251033A (ja) データ処理方法
JP3960629B2 (ja) 可変長符号器を使用する伝送システム
KR100404507B1 (ko) 텍스트데이타압축을이용한텔레비전온-스크린디스플레이시스템
JP2885235B1 (ja) データ圧縮方法及び圧縮プログラムを記録した機械読み取り可能な記録媒体
JP4424855B2 (ja) オーディオ/ビデオデータの禁止パターン回避方法及び装置
JPH0738445A (ja) 可変長さ符号復号化装置
KR0152035B1 (ko) 가변장복호화방법 및 그 장치