JP4063487B2 - ラスタデータの圧縮方法 - Google Patents
ラスタデータの圧縮方法 Download PDFInfo
- Publication number
- JP4063487B2 JP4063487B2 JP2000282424A JP2000282424A JP4063487B2 JP 4063487 B2 JP4063487 B2 JP 4063487B2 JP 2000282424 A JP2000282424 A JP 2000282424A JP 2000282424 A JP2000282424 A JP 2000282424A JP 4063487 B2 JP4063487 B2 JP 4063487B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- data
- raster
- index
- string
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/4105—Bandwidth or redundancy reduction for halftone screened pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、データ圧縮に関し、特に、ラスタデータを圧縮する方法および装置に関する。
【0002】
【従来の技術】
モノクロレーザプリンタの技術が進歩したため、プリンタは、より高解像度の画像を印刷することができる。また、画像を印刷するためにプリンタに送信する必要のあるラスタデータの量も増大し、プリンタの性能に悪影響を与えている。画像がプリンタに送信される前にスケーリングおよびディザリングされる場合、8×10インチのラスタ画像には、300DPIの装置の場合は0.9メガバイトのデータ、600DPIの装置の場合は3.6メガバイト、1200DPIの装置の場合は14.4メガバイトのデータが必要である。
【0003】
モノクロのHewlett-Packard LaserJets(登録商標)プリンタ等、プリンタおよびドライバによっては、カラーラスタデータまたはディザリングされたモノクロラスタデータのいずれかを印刷することができるものがある。カラーデータが送信されると、プリンタはスケーリングとディザリングとを実行し、ドライバがスケーリングおよびディザリングした場合に生成されたであろう画像と同じ画像を生成する。カラーデータかまたはディザリングされたモノクロデータを送信するという選択は、画像を印刷するために必要なI/Oの量を低減することに基づいている。カラー画像の方が、画素毎により多くのデータを有しているが、スケーリングおよびディザリングされたモノクロ画像の方が、通常、解像度がより高く、この場合600または1200DPIである。ソースカラー画像(すなわち、元の画像)が低解像度であるか、または大きく拡大されている場合、ソース画像のカラーまたはグレースケールバージョンを送信して、プリンタにスケーリングおよびディザリングを実行させるというI/Oの利点がある。実際には、ソースカラー画像は、通常、ドライバによって8ビット/画素のグレースケール画像に変換される。ソースカラー画像が高解像度であるかまたはそれほど拡大されていない場合、プリンタドライバがディザリングおよびスケーリングを実行し、印刷の用意ができているモノクロ画像をプリンタに送信すれば、I/Oはより少なくなる。レーザプリンタによっては、カラーデータまたはグレースケールデータを受入れる能力を有していないものもあり、そのため、スケーリングおよびディザリングは常にドライバによってホスト上で実行される。
【0004】
ソース画像またはディザリングされたモノクロ画像を圧縮するために使用可能な圧縮には、いくつかの選択肢がある。大抵のものが、タグ付画像ファイルフォーマット(tagged image file format(TIFF改訂版4))およびデルタ行圧縮(delta row compression)の変形である。ディザマトリクスによって各行が先行する行と異なるものとなるため、デルタ行圧縮の使用可能なバージョンは、ディザリングされたモノクロ画像に対して有効ではない。ランレングス符号化TIFF圧縮法は、現時点で使用可能な最適な選択肢であり、ディザリングされた画像が大きく拡大される場合や、生成された画像が、ビジネス用のグラフィクスおよび図表などのように、同じ色の領域を多く含むものである場合に、適切に作用する。
【0005】
1つのソース画素が多くの同様の出力画素を生成するため、画像のスケーリングは画像の圧縮性に影響を与え、TIFF方式を用いる圧縮性は、隣接する画素の類似性による。なお、スケーリングは、画像の物理的寸法を変化させるためだけに行われるのではなく、画像の解像度を変換するためにも使用される。例えば、ソース画像が、72画素/インチの解像度を有し、寸法が5インチ×5インチの場合、129,600画素を含むこととなる。1200DPIのモノクロプリンタの場合、画像がスケーリングおよびディザリングされ、5インチ×5インチの画像として印刷されると、36,000,000画素までスケーリングされることになる。
【0006】
ラスタ画像をモノクロレーザプリンタで印刷する場合に最も問題となるのは、ラスタ画像が走査された写真(以下、走査写真)と同程度の高解像度画像を有する場合である。これらの画像の圧縮を困難にするものは、高周波数成分である。実験により、低解像度から中程度の解像度までの走査写真、ビジネス用グラフィクス、ラインアートおよび小さな高解像度画像は、LaserJet(登録商標)プリンタの性能で対応可能であることが分かっている。写真と同程度の大きな高解像度画像は、プリンタに送信されるI/Oの量が多いため、性能に対する要求が大きい。インターネットの使用が増大し、安価なスキャナ、デジタルカメラ、ビデオキャプチャ用コンピュータアクセサリおよび写真走査サービスを使用できるようになってきたため、高解像度ラスタ画像のソースがより広く使用されるようになっている。本発明は、ラスタ画像のような高解像度写真によって要求される性能の問題を対象とする。
【0007】
Microsoft Windows(Windowsは、マイクロソフト社の登録商標である)は、ラスタ画像を結合するために使用されるラスタ演算(ROP)のセットを定義する。Hewlett-Packard LaserJet(登録商標)プリンタは、画像がモノクロデータに変換される場合であっても、画像がプリンタに送信される前にホストコンピュータでスケーリングおよびディザリングすることによって、ROPを実行することができる。ROP互換であるためには、ソースのDIBから目的のモノクロビットマップへのすべての変換演算が、画素単位で決定論的(deterministic)でなければならず、これによりソース画素が変換される時はいつでも正確な結果が得られるようになる。アプリケーションプログラムがXOR(排他的論理和)ROPを用いてラスタ画像の中心に白色のウインドウを生成する例を考える。まず、アプリケーションプログラムは、カラー画像全体をドライバに送信し、そこでカラーデータはスケーリングおよびディザリングされてモノクロデータになる。このディザリングされた画像は、プリンタに送信されるが、このディザリングされた画像またはソースカラー画像のレコード(record)はいずれもドライバが使用できないままである。次に、アプリケーションは同じ画像のサブセットを選択し、それをプリンタに送信する。ドライバは、このサブセット画像をディザリングおよびスケーリングする。XOR ROPを正常に行うために、画像サブセットからディザリングされたデータの各画素は、画像サブセットの範囲内で元の画像の画素と正確に一致しなければならず、そのため、各ソース画像の画素に全く同じスケーリングおよびディザリングを行って、画像サブセットの各目的ドットが元の画像の目的ドットを正確に覆うように、ディザリングされたラスタセグメントを生成しなければならない。目的画素の値が近接する画素の値に依存して決まる「近傍」演算は、近接する画素が後続するROPで使用できない場合は、ROP互換ではない。
【0008】
近傍演算を使用する他の変換の例は、誤差拡散ディザリング、青色ノイズディザリング(blue noise dithering)および双一次スケーリング(bi-linear scaling)である。また、ROP互換を保持したい場合は、非可逆(有損失)圧縮技術を排除しなければならない。ROPは、ラスタデータについて定義されるが、アプリケーションプログラムではめったに使用されない。上記の例において、白い矩形は、不透明描画モード(opaque drawing mode)で矩形の白色ラスタを送信することによって実現することができる。
【0009】
従来から、ROPはWindows(登録商標、以下同じ)に対し、表示画面上のラスタグラフィクスを操作する高速で容易な方法を提供している。WindowsのGUIは、同じグラフィカルコマンド(GDI)のセットを用いて任意の装置に書込む手段を提供するため、部分的には成功している。すべてのWindows互換のラスタ装置は、直接にまたはGDIにサポートを提供させることにより、ROPをサポートする。ROPはアプリケーションプログラムが使用するために定義され利用可能であるため、使用頻度に関係なく、機能的に完全なプリンタドライバはROPをサポートしなければならない。
【0010】
近傍演算を行わず決定論的であり続けるための必要性を説明する他の例は、いくつかのアプリケーションプログラムは、画像データをセグメントで送信するという事実である。画像は、水平または垂直に分割されて1画素と同じ大きさのセグメントになる。アプリケーションプログラムがラスタ画像を分解するのは、Windowsが任意のラスタ回転をサポートしていないからであり、そのためアプリケーションはそれらをドライバに送信する前に画像を回転させる。アプリケーションによっては、セグメントで回転を処理し、それが完了するに従って各セグメントをドライバに送信し、印刷処理でセグメントから最終的な画像が組立てられるようにする。時々、回転された画像の先端および基部において、単一画素のコール(single pixel calls)が見つかる場合がある。これら画像セグメントを、プリンタに送信する前にプリンタドライバによってスケーリングおよびディザリングすることができる。各画像セグメントを継目無く隣接するセグメントに連結して、最終的な印刷画像を作成しなければならない。近傍演算の場合は、画像セグメントの境界に望ましくないアーティファクトが生じる場合がある。
【0011】
【発明が解決しようとする課題】
本発明は、決定論的であるクラスタ化されたドットのオーダードディザリング(clustered dot ordered dithering)を使用し、継目の無い画像構成と共にROPをサポートする。Ulichney, R.による「Digital Halftoning」(MIT Press, Cambridge, Ma., 1987)を参照されたい。この決定論は、所定のソース画素がスケーリングおよびディザリングの関数として特定の目的画素のグループを生成し、それら目的画素の値が、1つのソース画素の値によって単に決定されるという事実に基づいている。
【0012】
【課題を解決するための手段】
本発明を実現するために、ラスタ画像を圧縮する方法が提供される。この方法は、画像のサブピース(細分化された部分:sub pieces)を組み合わせて、少なくとも1つのサブストリング(または部分列)にすることによって実現される。各サブストリングには、任意の予測ラン(predicted run)およびリテラルラン(literal run)を符号化するためにインデクスが付される。生成されたインデクスサブストリングは、可逆(無損失)圧縮法を用いて圧縮される。
【0013】
組み合わせるステップでは、また、ラスタ画像の各ラインについて、ラスタ画像がテキストを表すかまたはハーフトーン化された画像(以下、ハーフトーン画像)を表すかを判定する。ラスタ画像がテキストを表す場合は、サブピースは1つのサブストリングに逐次(または順次)配置される。ラスタ画像がハーフトーン画像を表す場合は、サブピースは複数のサブストリングにインターリーブされる。
【0014】
また、圧縮データを復元(解凍)してラスタ画像にする方法も提供される。圧縮データは、可逆復元法を用いて複数のインデクスサブストリングに復元される。複数のインデクスサブストリングは、インデクステーブルを用いて予測ランおよびリテラルランをサブストリングのデータに変換することにより復号化される。サブストリングは、ラスタ画像を再生成するためにインターリーブされる。
【0015】
添付の図面と共に以下の詳細な説明を考慮することにより、本発明をより良く理解することができる。
【0016】
【発明の実施の形態】
本発明は、ラスタ画像の圧縮率を改善する。本発明の好ましい実施の形態は、写真と同程度の高解像度画像またはテキスト画像をディザリングおよび圧縮するために有用である。高解像度とは、ソース画像がディザリングされたモノクロ画像に変換される時に、あまりスケーリングされないことを意味する。本発明は、高解像度画像を印刷する際に、モノクロプリンタに生じる性能問題を扱うことを意図している。本発明は、概して、すべての画像に対して高圧縮率を達成する。本発明は1200DPIプリンタ用に開発されたが、本明細書で説明する技術は、他のモノクロ装置に対しても直接適用できる。本発明において述べられている技術は、液体または固体のインクを使用するものを含む、任意のモノクロプリンタに対しても適用することができる。
【0017】
本明細書で使用するいくつかの用語について以下に説明する。DIBは、Microsoft Windows(登録商標)オペレーティングシステムにおいて一般に使用されるラスタファイルフォーマットである装置独立ビットマップ(すなわち、装置に依存しないビットマップ)である。DPIは、インチ当たりのドット数を意味し、本明細書ではラスタファイルおよびプリンタの解像度を述べるために使用している。DIBにDPIを適用することは適切ではないかもしれないが、以下では、ソース画像についてそれらが解像度を有しているものとして説明する。これは、DIBコールがプリンタドライバに到着するまでに、特定の解像度の装置(600DPIプリンタ等)への呼出というコンテキストにおいて、GDI(グラフィクス・ディスプレイ・インタフェース)がアプリケーションプログラムと協働して、DIBに対する解像度を決定するためである。ROPは、Windows文書によって記述されるようなラスタ演算である。RLEという用語は、ファイルのランレングス符号化を意味し、繰返しパターンを有する傾向にあるデータを圧縮するために使用される既知の方法である。
【0018】
レーザプリンタにおいて、レーザは、他の印刷処理部に比べて比較的高い正確度で制御される。レーザのターゲット領域では、レーザ光により、静電荷が印刷ドラムを通って流れ出る。この電荷を使用して、レーザ光がドラムに当たる同じ位置で、ドラムに対して反対に帯電されたトナーを引寄せる。そして、帯電された用紙が、ドラムからその用紙にトナーを引寄せ、熱および圧力によりトナーは用紙に融着される。これは、精密な処理ではない。最終的な出力において、各ドットは、実際には用紙上で非対称な小滴となる。
【0019】
この小滴のサイズは、ページに印刷されたテキストの品質を制御するために重要である。テキストが黒色であるため、見る人は、使用可能な最も黒く最も鮮明なテキストを望む。これは、実現可能な最小の小滴サイズを用いる一方で、黒のテキストおよびグラフィクスを完全にトナーで覆ったままにすることにより実現される。600DPIのプリンタの論理上の画素は、正方形であり、各エッジが1インチの1/600の長さを有している。トナーの理想的なドットは、正方形を完全に覆い、各角で正方形と交差する円である。このトナーの円は、充填された四角形の上部、右側、底部および左側に隣接する正方形にオーバラップする4つの弦を有している。正方形の領域が1正方形単位の領域に正規化される場合、円は、1.57正方形単位の領域について、正方形の対角線に等しい直径を有する。隣接する正方形にオーバラップする弦の各々は、0.143正方形単位の領域を有する。
【0020】
本発明は、本明細書で説明されている特定の実施の形態に限定されるものではない。特に図1を参照する。本技術分野では既知のことであるが、ディザマトリクス(D)は、従来の16×16画素ディザマトリクスである。一般に、これはB.E.Bayerによって先駆けて行われた研究に基づく伝統的なディザリング法である。Bayer, B.E.による「An optimum method for two-level rendition of continuous-tone picture」(Proceedings of IEEE International Conference in Communications, pp.26.11-26.15, 1973)を参照されたい。デジタルハーフトーン化に関する更なる情報については、Ulichney, Rによる「Digital Halftoning」(ISBN 0-262-21009-6(第4刷、1993))を参照されたい。なお、これらの開示内容は、この引用をもって本明細書に包含されたものとする。
【0021】
16×16マトリクス(D)の各セクションは、1×4ニブルである。4×1セクションの各列は、図1に示されているようにS1、S2、S3およびS4とラベル付けされている。サブニブルの数は、ニブル内の画素数によって分割される(画素あたりの)ディザマトリクスの幅によって決定される。好ましい実施の形態では、ディザの幅は16であり、ニブルのサイズは4ビットであるため、4つのストリングがある。
【0022】
ドットがどのようにマトリクスを充填するかについて考える。グレーレベルが0(白色)である場合、マトリクスの中のいずれのドットもオンではない。グレーレベルが徐々に増大するに従い、マトリクス内に黒いドットが配置され、16×16マトリクス(D)全体のグレーレベルが暗く見えるようになる。
【0023】
図3に示すように、ディザマトリクスDは画像に全体にわたってタイル化されるため、D00の1つの画素が、D01の同じ画素位置ある画素と同じ値を有する可能性が高い。同様に、D00の1つの画素は、D10の同じ画素位置にある画素と同じ値を有する可能性が高い。この強い相関関係を使用することにより、ディザリング処理の結果生じるサブピースは、各行についてサブピース毎に編成される。好ましい実施の形態では、サブピースはニブルであるが、サブピースは、1つのビットまたは画素と同じ程度に小さくすることも、あるいは任意の大きさとすることもできる。
【0024】
図2および図6を参照して、再順序付け(re-ordering)についてより詳細に説明する。まず、本技術分野では既知のように、ディザマトリクスDを用いて画像をディザリング(すなわち、ディザをかける)およびスケーリングする(601)。次に、図2に示すように、行毎に画像をニブルに分割して、ストリングに組み合わせる。こうして、各行について、すべてのS1ニブルが第1のサブストリング(201)にあり、すべてのS2ニブルが第2のサブストリング(202)にあり、すべてのS3ニブルが第3のサブストリング(203)にあり、すべてのS4ニブルが第4のサブストリング(204)にあるようにする(602)。
【0025】
行が再順序付けされると、各ニブルは、後述するようにインデクスによって符号化される(603)。置換の結果、図2のサブストリングは、図4に示すようにインデクスサブストリングに変換される。
【0026】
最後に、各インデクスサブストリング(図4)は、後に詳述するように、圧縮方式を用いて圧縮される(604)。
【0027】
上述したように、図2の各サブストリングは、図4のインデクスサブストリングに変換される。相関しているインデクスを緻密に検査することにより、図2のサブストリングの各々がn個のエントリを有し、インデクスサブストリングが互いに無関係な数のエントリを有していることに気づく。各インデクスは、ニブルの予測ラン(predicted run)またはリテラルラン(literal run)のいずれかを表す。図2を参照すると、現在の行のニブルが先行する行のニブルと一致する場合、そのニブルは予測ニブルの候補である。ニブルは、予測ニブルでない場合、リテラルニブルである。なお、予測ニブルであるニブルは、圧縮を容易にするためにリテラルニブルとして扱うことができる。
【0028】
予測ランは、1ニブルの最小ラン長と、ストリングの数によって分割されるニブルにおける画像幅の最大ラン長と、を有することができる。リテラルランについても同じである。4ビットのニブルは16のビットの組合せを有することができるため、16の異なるタイプのリテラルランがある。好ましい実施の形態では、インデクスは8ビット数であり、そのため256の可能なインデクスを表すことができる。これら256のインデクスは、図5に示すように分割される。インデクス0〜63は、種々の長さの予測ランを表し、インデクス64〜255は、種々の長さのリテラルランを表す。
【0029】
具体的には、好ましい実施の形態では、アレイエントリ0(インデクス0)は、長さ1のニブルの予測ランを表す。インデクス1は、長さ2のニブルの予測ランであり、同様にインデクス59まで続く。インデクス60は、長さが(画像幅)/(ストリングの数×8)の予測ランを表す。インデクス62は、長さが(画像幅)/(ストリングの数×4)の予測ランを表す。インデクス63は、長さが(画像幅)/(ストリングの数)の予測ランを表す。これにより、長さが60以下のすべての予測ランをアレイ内で直接表すことができる。白色空間、黒色空間または画像全体が一定のグレーレベルである場合のように、画像が非常に長い予測ランを有する場合は、エントリ60〜63を使用することができる。予測ランが、アレイエントリ60に当てはめるには小さすぎるが、アレイ59に当てはめるには大きすぎる場合は、それを長さが60ニブル以下の複数のセグメントに分割して、59以下のエントリに配置する。
【0030】
リテラルランのエントリについても同様の方式が使用される。リテラルランに対しては、アレイエントリ64〜255が確保される。上記場合と同様に、16の異なる種類のリテラルランがあり、インデクス64〜255のアレイに192のエントリがある。これによって、各々の種類のリテラルランに対して12のアレイエントリが割当てられる。アレイエントリ64〜79には、1ニブルのラン長を有する16種のリテラルランすべてが含まれる。アレイエントリ80〜95には、2ニブルのラン長を有する16種のリテラルランすべてが含まれる。このパターンは、異なるラン長を有する12のグループすべてが256のアレイを満たすまで続く。このパターンは、圧縮器および復元器の単純化のために、所与のラン長およびニブルパターンに対して適切なインデクスを配置するために使用される。ニブルのグループのラン長は、整数演算を使用して((インデクス/16)−3)を計算することにより見いだすことができる。ニブルのビットパターンは、(インデクス%16)である。長いリテラルランを容易にするために、12のグループのラン長は、以下のように割当てられる。
【0031】
【表1】
【0032】
好ましい実施の形態では、ラインが、グレー値を含んだディザリングされたラスタ画像からのものか、あるいはあるページのテキストのラスタ表現などの、白い背景に対する黒いラインからなるラスタ画像からのものかについて、判定を行う。ディザリングされた画像にインデクス付けする場合、予測ランは8ライン戻って参照されるが、「テキスト」モードでは、予測ランは1ラインしか戻らない。さらに、「テキスト」モードで動作しているときは、インターリーブされた複数のストリングS1〜S4は生成されず、インターリーブされたストリング(S1)のみが生成される。
【0033】
予測行のランデータについては、ディザリングされた画像データの現在の行の、8ライン前の行に対する類似性が利用される。この類似性は、画像の性質、画像の拡大およびディザマトリクスによって与えられるパターンから生じるものであり、そのため、ディザマトリクスの大きさが異なれば、予測行に対するルックバック(戻り参照)は異なる場合がある。圧縮器は、比較のために出力データの8ラインをバッファリングし、8ライン戻ったデータの行を検査する。データが現在のデータと正確に一致している場合は、そのデータは予測行のランとして適したものである。予測行データは、プリンタに送信されない。予測行インデクスは、復元器に対し、それが8ライン前に復元したラインから指定された数のニブルをコピーして、そのデータを現在のラインに使用するように命令する。予測行が現在のラインデータと一致していない領域はすべて、リテラルニブルを用いて圧縮される。
【0034】
理解を容易にするために、インデクス付け処理について例示する。ディザリングされたラスタ画像を処理して、データが既にニブルのストリングに組み合わされたものとする。以下のストリング(16進数)が、画像の最初のストリングであるものとする。
【0035】
ストリング y=AAA000AAA0000BB00777
これは、画像の最初のラインであるため、予測ランは存在し得ず、リテラルランのみがある。代替的には、最初のストリングの場合であっても、すべてゼロ等、あるデフォルトパターンを比較の対象として使用することができる。説明のために、最初の行は、リテラルランにのみ限定されるものとする。
【0036】
上述した表の一部は、以下のように展開される。各4ビットニブルについて、長さ4以下のリテラルランに対するインデクスを示す。
【0037】
【表2】
【0038】
ストリングyは、3つの「A」ニブルのランで始まる。表を参照すると、3つの「A」ニブルのリテラルランは、数字106(16進数で6A)でインデクス付けされている。次に、3つの「0」ニブルのランがあるが、それは96(16進数で60)でインデクス付けされている。次に、3つの「A」ニブルが続いており、それらは再び106(16進数で6A)でインデクス付けされている。4つほ「0」ニブルは、112(16進数で70)でインデクス付けされている。インデクス91(16進数で5B)は、2つの「B」ニブルのリテラルランを置換える。2つの「0」ニブルのリテラルランは、80(16進数で50)でインデクス付けされており、最後の3つの「7」ニブルのリテラルランは、103(16進数で67)でインデクス付けされている。ニブルストリングyの最終的なインデクスyストリングは、次の通りである。
【0039】
インデクスy=106,96,106,112,91,80,103 または、
インデクスy=6A,60,6A,70,5B,50,67 (16進数)。
【0040】
ストリングyの元の20ビット(または、20ニブル)が、インデクスyの14ビット(または、14ニブル)で置換えられている。処理が進むに従い、結局ストリングは、予測ランを使用することができるようになる。ストリングyからリテラルランと予測ランの両方を用いて、次のストリングxを符号化することができるものとする。
【0041】
ストリングx=AAA000AAA000BB00B777。
【0042】
ストリングxをストリングyと比較すると、最初の12ニブル(AAA000AAA000)が一致していることがわかる。従って、ストリングxの最初の12のニブルは、インデクス11(16進数で0B)で置換えられる。これは、12のニブルの予測ランがあることを示す。次に、ストリングxの「B」ニブルに対するのは、ストリングyの「0」ニブルであり、従って、この場合は予測ランは無い。「B」ニブルは、単一のリテラルとしてインデクス付けすることができるが、次のニブルもまた「B」であるため、2つの「B」ニブルのリテラルランがあり、これは91(16進数で5B)でインデクス付けすることが出来る。次に、2つの「0」ニブルのリテラルランがある。これをストリングyと比較すると、予測ランが無いことがわかり、従って、それは、インデクス80(16進数で50)で表される。次にストリングxは、「B」という単一のニブルを含み、それは75(16進数で4B)でインデクス付けされる。ストリングxは、3つの「7」ニブルで終わっている。ランは、予測ランとリテラルランとの両方である。ストリングyはまったく同じニブルを有しているため、それは予測ランである。それが同じニブルのランであるため、それはリテラルランである。この場合、好ましい実施の形態では、これをリテラルラン103(16進数で67)としてインデクス付けする。各ストリングが「7」ではないもう1つの同じニブルを有している場合、予測ランはより有効になる。ニブルストリングxについての最終的なインデクスストリングxは、次のようになる。
【0043】
インデクスx=11,91,80,75,103 または、
インデクスx=0B,5B,50,4B,67 (16進数)。
ストリングxの元の20ビット(または、20ニブル)は、インデクスxにおいて10ビット(または、10ニブル)でインデクス付けされている。
【0044】
再び図6を参照する。上述したようにニブルがインデクス付けされた後、そのインデクスは非可逆(有損失)圧縮アルゴリズムを用いて圧縮される(604)。いくつかの汎用的な目的において、可逆(無損失)データ圧縮処理は、従来技術では既知である。例えば、ハフマン法、シャノン・ファノ法、タンストール法、ランペル・ジブ(またはジブランペル圧縮)法および算術符号化法がある。ハフマン法は、周知でありまた広く使用されており、「A Method For Construction Of Minimum Redundancy Codes」(Proceedings IRE, 40, 10pp.1098-1100, Sept. 1952)と題されたD.A. Huffmanの論文に記載されており、引用をもってその内容を本明細書に組み込む。タンストールアルゴリズムは、「Synthesis of Noiseless Compression Codes」(Georgia Institute of Technology, Sept. 1967)と題されたB. P. Tunstallの博士論文に記載されており、引用をもってその内容を本明細書に組み込む。ランペル・ジブ処理については、「A Universal Algorithm For Sequential Data Compression」(IEEE Transactions on Information Theory, IT-23, 3, pp.337-343, May, 1977)と題されたJ. ZivおよびA. Lempelによって著された論文に記載されており、引用をもってその内容を本明細書に組み込む。算術符号化に関する追加の情報は、G. G. Langdon, Jr.による「An Introduction To Arithmetic Encoding」(IBM Journal of Research and Development, Vol. 28, n.2, March 1984, 135-149)と、D. R. Helman、G. G. Langdon, Jr.およびJ. J. Rissanenによる「Arithmetic Compression Code Control Parameters Approximation」(Vol. 23, n.11, April 1981, 5112-5114)、およびLangdon, Jr.他による米国特許第4,905,297号「Arithmetic Coding Encoder And Decoder System」に記載されており、引用をもってこれらの開示内容を本明細書に組み込む。
【0045】
第1の汎用的なデータ圧縮処理の1つが、ハフマン法である。簡単に言うと、ハフマン法では、符号の全長セグメントを可変長ワードにマッピングする。ハフマン法では、各固定長入力セグメントが発生する確率が既知であるという想定の元に演算が行われる。ハフマン法のこの要件は、実際には、データの処理中に必要な統計値を累算する適応型処理を使用することにより満たすことができる。好ましい実施の形態では、ハフマン法を用いてインデクスを圧縮する。
【0046】
上述した256のインデクス付けアレイは、圧縮されたデータストリームのハフマン符号化に対しても使用される。種々の長さの予測ランと種々の長さのリテラルランとを表すアレイがあると考える。これらエントリの各々は、所与のラスタ画像について起こりうる発生頻度を有している。好ましい実施の形態は、2つのタイプのラスタ画像、すなわち高解像度の走査写真等の複雑なラスタ画像と、グレー値の無い黒色のテキスト画像とを最適化するように構成されている。圧縮器を用いて、これら2つのグループの各々に対して典型的であると考えられる一組の画像を処理する。これから、256アレイの各要素に対して一組のデフォルトの確率を符号化する。各エントリについて生成されたハフマンビットパターンは、256アレイに格納される。
【0047】
ラスタ画像が処理されると、圧縮器は、画像を表す一連のアレイインデクス値を生成する。圧縮器は、これらアレイインデクス値を用いて、256アレイに格納されたハフマンビットパターンを調べ、そのハフマンビットパターンを圧縮データストリームに添付する。復元器はハフマン圧縮データストリームを読出し、ハフマンデータを256のアレイインデクスに復号化し、そのアレイインデクスを処理して元の損失のないラスタ画像に戻す。
【0048】
圧縮器と復元器は各々、ラスタ画像の処理を開始するために使用されるデフォルトのハフマンビットパターンの2つの全く同じセットを有している。ハフマンビットパターンの一方のセットは、主にグレー値を含むディザリングされたラスタ画像に対して使用され、他方のセットは、あるページのテキストのラスタ表現等の、白い背景に対する黒いラインからなるラスタ画像に対して使用される。圧縮器と復元器は、各々、処理されるラスタの各ラインに対して、テキスト用ハフマン値のセットとラスタ用ハフマン値のセットのいずれを使用するかを決定するアルゴリズムを有している。ラインが空白である等、ラインが不確定である場合には、プロトタイプ(または、試作品)はラスタ用ハフマン値のセットを使用するであろう。
【0049】
テキストモードで圧縮する場合、予測ランは、8ラインではなく1ラインだけ戻って現在のデータを前のデータと比較する。テキストモードでは、インターリーブしているストリングS1〜S4は生成されず、圧縮データの1つのストリングのみが生成される。
【0050】
テキストモードでは、リテラルランに対してハフマンデータの2つのセットを維持する。リテラルランはニブルから構成されており、大抵のテキストは600DPI及び1200DPIにおいて4画素より大きいライン幅を有しているという考えである。リテラルランは、また、テキストのエッジが走査線に当たっているか、またはテキストの下の白い空間にある間、発生する傾向にある。これらの要因を組合せると、リテラルニブルが黒の画素で終了した場合は、次のリテラルニブルは黒の画素で開始することが好都合であり、リテラルニブルが白の画素で終了した場合は、次のリテラルなニブルが白のニブルで開始することが好都合である、という結論が得られる。リテラルニブルに対して2つのハフマン値のセットを保持している場合、リテラルニブルのセットのより好適なハフマン圧縮が得られる。これらの2つのセットを、1ハフマンテーブル及び0ハフマンテーブルと呼ぶことにする。リテラルニブルが1において終了する場合、圧縮器と復元器は、1のテーブルを用いて次の圧縮要素を符号化および復号化する。リテラルニブルが0で終了する場合、圧縮器と復元器は、0のテーブルを用いて次の圧縮要素を符号化および復号化する。次の圧縮要素が予測ランである場合、現在のハフマンテーブルは、符号化および復号化に使用され、そのテーブルは次の圧縮要素については変更されない。ハフマンテーブル1および0は、予測ランに対して同一の頻度で開始することができるが、リテラルランについての頻度は異なるため、符号化および復号化に使用されるすべてのハフマン値は、それらのテーブルが再平衡化された後は予測ランとリテラルランとの両方について異なる可能性がある。
【0051】
ディザリングされたモードでは、それぞれ256サイズのハフマンデータの64のセットが維持される。これにより、ディザマトリクスの各行について、ハフマンテーブルの別個のセットを有することができる。すなわち、各サブストリングに1つずつ、各行に関連する4つのハフマンテーブルがある。図7は、圧縮処理の高レベル図である。ストリングを圧縮できるようになるためには、その前に、適切なインデクスのハフマンテーブルを決定しなければならない。ストリングがディザリングされた画像からのものであると想定して、ディザマトリクスの現在の行とサブストリング数(またはストリング番号)とを決定する(701)ことにより、適切なハフマンテーブルを取り出す(703)ことができる。今や、圧縮器は、データおよび正しいテーブルを有しているため、256アレイに格納された予め決められたデフォルトのハフマンビットパターンを用いて、画像の最初の(または、第1の)セグメントを処理する。この画像セグメントが処理されている間、アレイインデクスの各々の使用回数が、256アレイに保持される。これは、ある時点で、画像内容に基づくハフマン値の新たなセットを計算する(705)ために有益となる。圧縮器は、いつ再計算を行うべきか(706)を判定し、復元器に対し、各画像ラインの最初に発生する信号ビットを使用することによって再計算するよう通知(指示)する。この方式により、圧縮器から復元器にいかなるハフマンモデルデータを送信することなく、ハフマン符号化に画像内容の影響を与えることができる。新たなハフマンビットパターンは、最近の画像データとデフォルトの画像データまたは画像の履歴データ(historical image data)との重み付けされた組合せを用いて再計算される(706)。
【0052】
圧縮器は、現在の画像データがインデクスについての現在のハフマン値に適合しているか否かを監視する(705)。圧縮器は、インデクスについてのハフマン値が最適であった場合に最も有効であるが、この場合、画像を前処理し、復元器にハフマンモデルデータを送信する必要がある。これには、追加の処理と追加のデータ送信が必要である。使用されるシステムによるが、画像を2回処理(1回目は最適なハフマン符号化を決定し、2回目は実際にデータを圧縮する)せずに、圧縮器と復元器の両方に格納されているデフォルトデータを用いて画像を圧縮し、オンザフライで(すなわち、実行中に)ハフマン符号化を調整することにより、システム全体をより高速に動作させることが可能である。圧縮器が、ハフマン値が画像に対してもはや好適ではないと判定した場合、ハフマン値は圧縮器および復元器において再計算されることとなる。それらの新たなハフマン値は、部分的には最近の画像データに基づいており、圧縮器が再計算することが適していると再度判断するまで、画像の次のセグメントを圧縮するために使用される。これは、部分的にはうまく作用する。なぜなら、圧縮器が、プリンタ上で動作する復元器より通常多くの計算資源を有するホストコンピュータ上で動作し、256のアレイインデクスに対するハフマン値をいつ再計算するかを決定することについての全タスクを有しているからである。
【0053】
データは、圧縮されるため、格納または送信を容易にするデータ構造内に配置されなければならない。1つの可能性のある構造については後述する。データは、画像をページ上に配置する場所の原点から開始する。これは、各々が32ビット長のX値とY値とを有している。次の値は、画像のXとYの大きさ(または、XとYの範囲:図8のそれぞれX-EXT、Y-EXT)を表す。これらの2つの32ビット数は、画像の幅と高さを画素単位で規定する。
【0054】
データは、各走査線に対して圧縮データを含む。(Yの大きさの)数の走査線がある。各走査線は、8ビット同期バイトで開始し、その後にアレイインデクスに復号化するハフマン圧縮値が続く。アレイインデクスを復元器で使用して、画像走査線を作成する。走査線データは、走査線を完成することによって範囲が決定される。圧縮データは、ニブルフォーマットであるため、ライン毎に3つまでの余分の画素を指定する場合がある。この余分の画素は、無視されなければならない。
【0055】
ランペル・ジブ法を使用する際には、上述したような確率テーブルを使用する必要はない。このような簡略化は、ランペル・ジブ法による圧縮率が上述したハフマン法による圧縮率より小さくなるという可能性に対して、比較考量されなければならない。算術符号化法を使用する際には、圧縮率を増大させるために別のテキストおよびディザコンテキストモデルを使用することができる。
【0056】
圧縮方法の選択は、圧縮器と復元器との間のシステムダイナミクスと送信媒体の帯域幅とによって決まる。当業者には既知であるが、圧縮方法の中には、圧縮器と復元器とで異なる計算労力および複雑性を必要とするものもある。好ましい実施の形態では、圧縮器は、ホストコンピュータ上で実行される。一般に、かかるシステムは、大きなメモリ資源と強力な計算能力を有している。さらに、ホストコンピュータは、一般に、リアルタイムのクリティカルモードでは動作していない。しかしながら、プリンタは一般に、メモリ資源がより少なく、リアルタイム環境で動作する。このため、計算強度をホストコンピュータにシフトすることにより、より単純で高速かつメモリ効率のよい復元器をリアルタイム環境で動作させることが可能となる。他のシステムでは異なるトレードオフが必要となる場合があるということは、当業者には明らかである。
【0057】
画像走査線がデータで満たされると、次の圧縮要素が次のラインの同期バイトとなる。処理された走査線の数が、画像の開始時に規定されたYの大きさに一致すると、画像全体が完了し、それ以上の画像データを使用することはできない。
【0058】
圧縮データの各ラインの最初は、図8に示すような同期バイト(SYNC)20で開始する。ディザマトリクスは、ページ指向アンカポインt(page oriented anchor point)を有している。同期バイト20の目的は、ディザリングされた画像をディザマトリクスに同期させる方法を指定することである。また、同期バイトは、復元器に対し、256アレイのハフマンコードを再平衡化するよう通知する。同期バイトには8ビットある(図9)。最初の最も左側の高位ビットを用いて、ハフマン値に対する最平衡化動作を通知する。次のビットは、復元器に対して、復元されるラインがラスタであるか、あるいは、テキスト画像であるかを通知する。次の2つのビットは、画像を同期させるためにいくつのビットが必要であるかを示すが、その値は0、1、2または3ビットである。このディザリング変位(dithering displacement)は、画像が現在のアクティブ位置で開始したが、0〜3画素に対するディザテーブルエントリの開始端には出くわさないことを意味する。次の3つのビットは、画像を同期させるために必要な非圧縮画像データであるため、これらビットのうちの0、1、2または3つすべてが非圧縮ラインの始端に配置され、ラインの残りは圧縮されたニブルを使用して同期化される。最後のビットは、現在のところ使用されていない。
【0059】
図10は、好ましい実施の形態の完全なフローチャートを示す。元のモノクロビットマップのラインが読出される(802)。圧縮するラインがそれ以上無い場合(803)、処理は停止する(804)。圧縮モデルデータを生成する必要があるか判定し(805)、生成する必要があると判定した場合は、データを生成する(806)。かかる判定は、いくつかの方法で行うことができる。例えば、圧縮率を監視することができ、それが既定の閾値を超えた場合に、データを再生成する。代替的には、入力、または出力されるデータ量に基づいて、一定の間隔でデータを再生成することができる。次に、データがディザリングされた画像からのものであると想定することにより、ソースデータ(元データ)を4つのニブルストリングにグループ化する(807)。各ニブルストリングは、予測ランとリテラルランを示すインデクスにより符号化される(808および809)。符号化では、インデクス値のテーブル(810)を使用する。インデクスは、圧縮されている現在の行に対する現在の圧縮モデルデータ(812)を用いて圧縮される(811)。その後、圧縮データは、システムの要求に応じて送信されるか、または格納される。
【0060】
図11を参照して復元について説明する。まず、圧縮データのラインが取得される(901)。それ以上データが無い場合、処理は停止する(903)。同期バイトに基づいて、圧縮モデルデータを再生成する(904および905)。圧縮データは、まず、現在の圧縮モデルデータ(907)を用いてインデクスに復元される(906)。次に、そのインデクスは、インデクステーブル(909)を利用してニブルストリングに復号化される(908)。そして、これらのニブルストリングをインターリーブして、元のビットマップデータを再現する(911)。
【0061】
本発明の創作段階で、予測行のデータを抽出するために、基準データの位置についていくつかの代替態様が考えられた。その代替態様のうちのいくつかは、4行戻って4画素参照すること、現在の行内で8画素戻って参照すること、8行戻って参照すること、および16行戻って参照することであった。16行戻って参照することは、16:1より大きい比率で拡大される画像については良好な選択であった。それは、どの行も、16ライン前か16ライン先の行と一致することが保証されたためである。しかしながら、そのように大きく拡大される画像は、既に十分適切に圧縮されている。8より大きい比率でスケーリングされる画像もまた、I/O負荷の平衡(I/O load balancing)によりソース画像として送信することができる。4ライン戻って4画素を参照する場合、いくつかのグレーレベルに対しては適切には圧縮せず、垂直エッジの圧縮を利用しなかった。経験的に、ベースライン(基準ライン)に対して8ライン戻って参照することは、高解像度のラスタ画像について最適な選択であることが分かった。代替的には、圧縮器および復元器に対するデータの基準行の位置を決定するためにスケーリングファクター(または、倍率)を使用する。基準行は、16以上の比率で拡大される画像に対しては16ライン戻り、他のすべての画像に対しては8ライン戻る。これは、ラスタ画像をディザリングすることができないプリンタに対して適した代替態様となる。それらの製品の場合、すべての画像は、倍率に関係なく、ドライバによってスケーリングされ、ディザリングされる。
【0062】
本願発明を要約すると、以下のようになる。最初にデータの再順序付け(reordering)を行う(602)ことによってラスタ画像を高圧縮する。次に、再順序付けされたデータにインデクスを付けて、任意の全ての予測ラン及びリテラルラン(図5)を符号化する。ラスタ画像の現在のラインの各部分(piece)を以前のラインと比較する。比較の結果、一致すれば、その現在の部分は予測ランであり、それに応じてインデクスを付けられる(603)。一致しなければ、その現在の部分はリテラルラン(図5)であり、それに応じてインデクスが付けられる(603)。予測ラン(図5)は、1つの部分の最小ラン長と、ストリングの数(またはストリングの番号)によって分割される部分における画像幅の最大ラン長を有することができる。リテラルラン(図5)についても同様である。ハフマン符号化のような無損失圧縮(可逆圧縮)を使用して、インデクスストリング(図4)を次に圧縮する(604)。ハフマン符号化を使用する場合は、ハフマンテーブルを事前に定義して、それが圧縮器と復元(解凍)器の両方に知られているようにする。圧縮器がインデクスストリングを圧縮する際には、ハフマンテーブルは適応化される(705、706)。復元器は、適応化されたテーブルをいつ使用すべきかを、圧縮器によって通知される。
【0063】
本発明の好ましい実施の形態を図示し、説明したが、本発明の思想または特許請求の範囲から逸脱することなく、種々の修正をそれらに対して実施することができるということは、当業者には明らかである。
【0064】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
1.ラスタ画像を圧縮する方法であって、
画像のサブピース(s1,s2,s3,s4)を組み合わせて少なくとも1つのサブストリング(図2)にするステップ(602)と、
各サブストリング(図2)の任意の予測ラン(図5)およびリテラルラン(図5)にインデクス付けを行って少なくとも1つのインデクスサブストリング(図4)にするステップ(603)と、
各インデクスサブストリング(図4)を可逆圧縮するステップ(604,図7)
からなる方法。
2.前記組み合わせるステップ(602)が、
前記ラスタ画像の各ラインについて、該ラスタ画像がテキスト画像を表すか、ハーフトン化画像を表すかを判定するステップ(701)と、
前記ラスタ画像がテキストを表す場合は、サブピース(s1,s2,s3,s4)を順次配置して1つのサブストリング(図2)にするステップと、
前記ラスタ画像がハーフトーン化画像を表す場合は、前記サブピース(図2)をインターリーブして前記少なくとも1つのサブストリング(図2)にするステップ
からさらになる、上項1の方法。
3.圧縮テーブルを再生成する必要があるという指示を待つステップ(705)と、
前記圧縮テーブルを再生成するステップ(706)
からさらになる、上項2の方法。
4.前記指示が、閾値レベルと比較される実際の圧縮率である(705)、上項3の方法。
5.画像を圧縮する方法であって、
画像をディザリングして、1ビット/画素のラスタデータを生成するステップ(601)と、
前記ラスタデータのサブピース(s1,s2,s3,s4)を組み合わせて複数のサブストリング(図2)にするステップ(602)と、
すべての予測ラン(図5)およびリテラルラン(図5)にインデクス付けを行う(603)ことにより、前記複数のサブストリング(図2)の各サブストリング(図2)を符号化して、複数のインデクスサブストリング(図4)のうちの1つのインデクスサブストリング(図4)にするステップ(603)と、
前記複数のインデクスサブストリング(図4)を可逆圧縮して圧縮データ(図8)にするステップ(604,図7)
からなる、方法。
6.前記圧縮データ(図8)を復元して前記複数のインデクスサブストリング(図4)にするステップ(906)と、
データと共に前記予測ラン(図5)および前記リテラルラン(図5)により前記複数のインデクスサブストリング(図4)を復号化して前記サブストリング(図2)にするステップと、
前記サブストリングをインターリーブして前記ラスタデータを再生成するステップ(911)
からさらになる、上項5の方法。
7.圧縮データ(図8)を復元してラスタ画像にする方法であって、
前記圧縮データ(図8)を複数のインデクスサブストリング(図4)に復元するステップ(906)と、
インデクステーブル(909)を用いて予測ラン(図5)およびリテラルラン(図5)をサブストリング(図2)のデータに変換することにより、前記複数のインデクスサブストリング(図4)を前記サブストリング(図2)に復号化するステップ(908)と、
前記サブストリングをインターリーブして前記ラスタデータを再生成するステップ(911)
からなる、方法。
8.前記複数のインデクスサブストリング(図4)の各インデクスサブストリング(図4)内の各インデクスについて、前記インデクステーブル(909)内の一致しているインデクスを見つけるステップと、
前記一致しているインデクスが予測ランである場合は、以前復元されたラスタデータを現在のラスタデータにコピーするステップ
からさらになる、上項7の方法。
【0065】
【発明の効果】
本発明によれば、特に、写真並の高画質画像やテキスト画像を高い圧縮率で圧縮することができる。
【図面の簡単な説明】
【図1】従来からの16×16マトリクスを示す。
【図2】サブストリングに配置されたニブルを示す。
【図3】ディザマトリクスを画像全体にタイル化する(タイルのように並べる)やり方を示す。
【図4】インデクスをサブストリングに配置するやり方を示す。
【図5】インデクステーブルを分割するやり方を示す。
【図6】本発明による高レベルフローを示す簡易フローチャートである。
【図7】可逆圧縮処理の高レベルフローを示す簡易フローチャートである。
【図8】同期バイトを含むデータ構造の細部をグラフィカルに表現した図である。
【図9】同期バイトをより詳細に示す図である。
【図10】圧縮処理全体を示すフローチャートである。
【図11】復元処理全体を示すフローチャートである。
【符号の説明】
D ディザマトリクス
20 同期バイト
26 データバイト
201〜204 サブストリング
401〜404 インデクスサブストリング
Claims (11)
- ラスタ画像を圧縮する方法であって、
前記ラスタ画像の各ラインについて、該ラスタ画像がテキスト画像を表すか、ハーフトーン化画像を表すかを判定するステップと、
前記ラスタ画像がテキストを表す場合は、サブピースを順次配置して1つのサブストリングにするステップと、
前記ラスタ画像がハーフトーン化画像を表す場合は、サブピースをインターリーブして少なくとも1つのサブストリングにするステップと、
各サブストリングの任意の予測ランおよびリテラルランにインデクス付けを行って少なくとも1つのインデクスサブストリングにするステップと、
各インデクスサブストリングを無損失圧縮するステップ
を含む、方法。 - ハフマンテーブルを使用するステップと、
前記ハフマンテーブルを再生成する必要があるという指示を待つステップと、
前記ハフマンテーブルを再生成するステップ
をさらに含む、請求項1の方法。 - 前記指示が、閾値レベルと比較される実際の圧縮率である、請求項2の方法。
- 前記無損失圧縮するステップが、ハフマン符号化法を使用する、請求項1の方法。
- 前記無損失圧縮するステップが、ランペル・ジブ( Lempel-Ziv )符号化法を使用する、請求項1の方法。
- 前記無損失圧縮するステップが、算術符号化法を使用する、請求項1の方法。
- 画像を圧縮する方法であって、
画像をディザリングして、1ビット/画素のラスタデータを生成するステップと、
前記ラスタ画像の各ラインについて、該ラスタ画像がテキスト画像を表すか、ハーフトーン化画像を表すかを判定するステップと、
前記ラスタ画像がテキストを表す場合は、サブピースを順次配置して1つのサブストリングにするステップと、
前記ラスタ画像がハーフトーン化画像を表す場合は、サブピースをインターリーブして少なくとも1つのサブストリングにするステップと、
すべての予測ランおよびリテラルランにインデクス付けを行うことにより、各々のサブストリングを符号化して、複数のインデクスサブストリングのうちの1つのインデクスサブストリングにするステップと、
前記複数のインデクスサブストリングを無損失圧縮して圧縮データにするステップ
を含む、方法。 - 前記圧縮データを復元して前記複数のインデクスサブストリングにするステップと、
データと共に前記予測ランおよび前記リテラルランにより前記複数のインデクスサブストリングを復号化して前記サブストリングにするステップと、
前記サブストリングをインターリーブして前記ラスタデータを再生成するステップ
をさらに含む、請求項7の方法。 - 前記無損失圧縮するステップが、ランペル・ジブ( Lempel-Ziv )符号化法を使用する、請求項8の方法。
- 前記無損失圧縮するステップが、算術符号化法を使用する、請求項8の方法。
- 前記無損失圧縮するステップが、ハフマン符号化法を使用する、請求項7の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/397,420 US6356660B1 (en) | 1997-10-15 | 1999-09-17 | Method for compressing raster data |
US09/397420 | 1999-09-17 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001144969A JP2001144969A (ja) | 2001-05-25 |
JP2001144969A5 JP2001144969A5 (ja) | 2005-03-17 |
JP4063487B2 true JP4063487B2 (ja) | 2008-03-19 |
Family
ID=23571127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000282424A Expired - Fee Related JP4063487B2 (ja) | 1999-09-17 | 2000-09-18 | ラスタデータの圧縮方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6356660B1 (ja) |
JP (1) | JP4063487B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0004427D0 (en) * | 2000-02-24 | 2000-04-12 | Xeikon Nv | Cleaning device |
US6804401B2 (en) * | 2000-05-12 | 2004-10-12 | Xerox Corporation | Method for compressing digital documents with control of image quality subject to multiple compression rate constraints |
US7025515B2 (en) * | 2003-05-20 | 2006-04-11 | Software 2000 Ltd. | Bit mask generation system |
US20050094882A1 (en) * | 2003-11-03 | 2005-05-05 | Jacobsen Dana D. | Rebalancing compression predictors |
US20120082395A1 (en) * | 2010-09-30 | 2012-04-05 | Microsoft Corporation | Entropy Coder for Image Compression |
EP2888882A4 (en) * | 2012-08-21 | 2016-07-27 | Emc Corp | LOSS-FREE COMPRESSION OF FRAGMENTED IMAGE DATA |
JP6476959B2 (ja) * | 2015-02-13 | 2019-03-06 | 富士通株式会社 | ストレージ制御装置、ストレージシステム、および制御プログラム |
US11741121B2 (en) | 2019-11-22 | 2023-08-29 | Takashi Suzuki | Computerized data compression and analysis using potentially non-adjacent pairs |
US10387377B2 (en) | 2017-05-19 | 2019-08-20 | Takashi Suzuki | Computerized methods of data compression and analysis |
CN109151538B (zh) * | 2018-09-17 | 2021-02-05 | 深圳Tcl新技术有限公司 | 图像显示方法、装置、智能电视及可读存储介质 |
CN112200879B (zh) * | 2020-10-30 | 2022-06-14 | 浙江大学 | 一种地图轻量化压缩传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2785641B2 (ja) * | 1993-04-14 | 1998-08-13 | 日本電気株式会社 | 画像符号化装置 |
US5970177A (en) * | 1995-06-07 | 1999-10-19 | America Online, Inc. | Data compression using selective encoding |
-
1999
- 1999-09-17 US US09/397,420 patent/US6356660B1/en not_active Expired - Fee Related
-
2000
- 2000-09-18 JP JP2000282424A patent/JP4063487B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001144969A (ja) | 2001-05-25 |
US6356660B1 (en) | 2002-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8553301B2 (en) | Image processing apparatus, method, and program product to perform color-reduction processing for a block | |
JP5432450B2 (ja) | エントロピー符号化を利用したカラー画像データの可逆圧縮 | |
JP4101312B2 (ja) | グラフィック画像の圧縮システムおよび方法 | |
US7769237B2 (en) | Dynamic, locally-adaptive, lossless palettization of color and grayscale images | |
US6192155B1 (en) | Systems and methods for reducing boundary artifacts in hybrid compression | |
US8452083B2 (en) | Image processing apparatus, image processing method, and computer-readable medium | |
JPH1051642A (ja) | 画像処理装置 | |
WO2004068844A1 (ja) | 画像圧縮方法、画像復元方法、プログラム及び装置 | |
JP3461309B2 (ja) | ハフマン符号化データ圧縮装置 | |
US20110222082A1 (en) | Image processing apparatus, control method, and computer-readable medium | |
JP4063487B2 (ja) | ラスタデータの圧縮方法 | |
US20110229027A1 (en) | Image processing apparatus, image processing method, and computer-readable medium | |
US6026196A (en) | Utilizing a contrived dither matrix to enhance the compressibility of raster images | |
JP3872217B2 (ja) | ディザ画像の2値表現処理方法、ディザ画像の圧縮2値表現圧縮解除方法、及びディザ画像の圧縮及び圧縮解除システム | |
US6879725B2 (en) | Method, system, and program for decoding a section from compressed data | |
EP0797348A2 (en) | A one dimensional context model for entropy encoding digital halftone images with arithmetic coding | |
US8494261B2 (en) | Image processing apparatus, image processing method, and computer-readable medium | |
US20030081244A1 (en) | Method and apparatus for processing data in an imaging device | |
JP2002354233A (ja) | 画像縮小装置、画像縮小方法およびその記憶媒体 | |
JPH07274006A (ja) | 画像処理装置及びスキャナ装置及びプリンタ装置及びディジタル複写機及びディスプレイ装置 | |
JP4629512B2 (ja) | データ圧縮装置およびデータ圧縮プログラム | |
JP4435586B2 (ja) | データ圧縮装置およびデータ圧縮プログラム | |
JP2000227848A (ja) | 画像処理装置 | |
JP4131969B2 (ja) | データ圧縮装置およびデータ圧縮プログラム | |
US6912314B1 (en) | Reformatting binary image data to improve compression using byte oriented compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040408 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060529 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070731 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071031 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071115 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071225 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110111 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110111 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120111 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130111 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |