JP2004274776A - メモリを最小にするための適応型データ圧縮方法 - Google Patents

メモリを最小にするための適応型データ圧縮方法 Download PDF

Info

Publication number
JP2004274776A
JP2004274776A JP2004082496A JP2004082496A JP2004274776A JP 2004274776 A JP2004274776 A JP 2004274776A JP 2004082496 A JP2004082496 A JP 2004082496A JP 2004082496 A JP2004082496 A JP 2004082496A JP 2004274776 A JP2004274776 A JP 2004274776A
Authority
JP
Japan
Prior art keywords
image
data
compression
page
strip
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
JP2004082496A
Other languages
English (en)
Inventor
Russ Campbell
ラス・キャンベル
Gary Zimmerman
ゲーリー・ツィンマーマン
Thomas G Berge
トーマス・ジー・バージ
Terry M Nelson
テリー・エム・ネルソン
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 JP2004274776A publication Critical patent/JP2004274776A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • 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
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • 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
    • H03M7/48Conversion 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 alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/002Generic data access
    • G06K2215/0028Generic data access characterised by the format per se
    • G06K2215/0031Compressed bit maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0071Post-treatment of the composed image, e.g. compression, rotation

Abstract

【課題】フルぺージデータより小さいバッファメモリサイズに適応可能なデータ圧縮機能を備えたぺージプリンタを提供する。
【解決手段】周辺装置10は、入力データフロー(以下DF)をぺージ構成出力に変換し、ぺージ全体のラスタデータの記憶には不充分な容量のRAM20を有し、プロセッサ12と複数の異なる性能のデータ圧縮手順34,36,38を保持する制御用メモリ22とを有す。周辺装置10は、入力DFの各部にRAMを割り当て(72)、RAM量の不足を判定し(78)、入力DFの各部に第1の圧縮手順を用いて(82)圧縮データ部を生成し、この圧縮データ部を検査して(78)閾値を超えるレベルの圧縮が達成されたか判定し、未達成であれば次のデータ圧縮手順(84,86)を用い、前記閾値に対して各手順毎に検査を繰り返し、閾値の圧縮レベルの達成を最初に可能にする圧縮手順をそのDF部の圧縮に用いる圧縮手順とする、データ圧縮方法を実行する。
【選択図】図2

Description

本発明はページプリンタに関し、特に、フルページのプリンタデータに必要なものより小さいバッファメモリサイズに適応させるためのデータ圧縮機能を備えたページプリンタに関する。
従来のページプリンタは、通常は、画像を紙上に印刷する前にページ全体を捕捉する。かかるプリンタでは、フォーマッティングは、ホストコンピュータ上で実行される(大量のラスタ化データがプリンタに送られる)か、又はプリンタのフォーマッタ上で行われる。レーザー印刷「エンジン」は一定速度で動作するので、このエンジンの動作に追い付くだけの速度で新しいラスタ化データが得られない場合には印刷の「オーバーラン」が発生し、ページ印刷が不能になる。
印刷オーバーランを防止するために様々な技術が用いられている。ある技術では、印刷機構が常に動作待ち状態のラスタ化データを持つように或るページ全体の全てのラスタビットマップが記憶される。300ドット/インチの解像度では、この技術には各ページにつき約1Mバイトのラスタメモリが必要である。600ドット/インチでは、4Mバイトのメモリが必要である。更に、レーザープリンタは、ラスタデータのパイプライン処理によりその定格速度を達成するので、プリンタをその定格速度で動作させるためには別のラスタメモリが必要となる。さもなければ、前のページがプリンタの出力トレーに排出されるまで次のページの作成を開始することができない。レーザープリンタの価格を低レベルに抑えるために、必要なラスタメモリ量を削減する努力が払われてきた。
メモリ低減の技術の1つとして、ページ記述の構築がある。ページ記述は2つのステップで構築される。即ち、第1のステップでは、フォーマッティング中に、ホストコンピュータから受信したデータが、何を印刷すべきかを記述する表示コマンドと呼ばれる簡単なコマンドのリストに変換される。第2のステップでは、印刷用の表示コマンドリストが準備され、表示コマンドの構文解析と記述されたオブジェクトのラスタビットマップへの変換とが行われる。この手順には、フルページのラスタビットマップメモリが必要である。これは、連続するページに同じメモリが用いられるからである。
必要なメモリ量を削減するために、この表示コマンドリストによる手順は、各表示コマンドをそのページ上の垂直位置に従ってソートすることにより修正された。ページは次いでページストリップ又は「ページ中間体(intermediate)」と呼ばれるセクションに分割され、その各ページストリップが印刷を行うために印刷エンジンに順次送られる。あるページストリップ中の表示コマンドが充分な速度でラスタ化データに変換される際、最初のページストリップの記憶に用いられた同じメモリを(この最初のページストリップが紙上に転写されれば)そのページ中の下方の後続ページストリップに対して再使用することができる。
本出願人が製造するレーザープリンタ Laser Jet III には、表示コマンドリストアルゴリズムが採用されており、3つのラスタバッファが用いられている。第1バッファはページの第4ストリップについて再使用され、第2バッファは第5ストリップについて再使用される、といった具合である。8ページ/分のプリンタの場合、ストリップ1の終了と印刷機構がストリップ4を要求する時間との間にはわずかな時間しか存在しない。ストリップが時間内に供給されないと、「印刷オーバーラン」が発生し、ページは適正に印刷されない。
本出願人による「Method and Apparatus For Preventing Print Overruns」と題する米国特許出願第07/701,235号では、ページプリンタが各ストリップ中の全ての表示コマンドについて総ラスタ化実行時間を判定する。ストリップのラスタ化実行時間が所定値を超えた場合、印刷機構への次のデータ転送に用する時間を削減するためにストリップが事前ラスタ化される。なお、上記引用をもって上記特許出願に係る発明の開示内容を本明細書に包含させたものとし、その詳細な説明は省略する。
最近では、600ドット/インチの解像度のプリンタが市場に導入されている。
かかるプリンタは、テキストだけでなくラインアートや各種の画像も扱うものである。かかるプリンタに要するメモリ量を最小限にするために、データ圧縮技術が用いられている。例えば、プリンタへのデータ転送処理に、ホストプロセッサによりランレングス(run length)データ圧縮が用いられている。ランレングスエンコード法では、繰り返し現われるデータは、そのデータの同一性と繰り返しのランレングスとを示すことによりエンコードされる。ランレングス圧縮は、テキスト及びラインアートに用いる場合には成功する。しかし、画像データに用いる場合には、かかる圧縮法ははるかに不充分なものとなる。
ある種の画像は「順序付(ordered)ディザ」又は「誤差拡散(error diffused)」のいずれかに分類される。順序付ディザ画像(「クラスタ化画像」とも呼ばれる)は、ページ全体にわたり中間調グレー表示を含む中間調画像である。かかる画像は、一般に、かなりのデータ冗長を反映し、無損失データエンコード技術(例えばランレングス)に資するものである。これに対し、誤差拡散(「分散(disperse)」とも呼ぶ)画像はデータの冗長性がほとんどなく、異なる圧縮法を必要とする。その結果、ページプリンタに1つの圧縮法だけを用いると、かかるプリンタは、最小限のオンボードラスタメモリ量を維持しつつ画像データを扱うことができなくなる。
ランレングスエンコードに加え、従来の技術には他のデータ圧縮法も多数存在する。例えば、Welchの米国特許第4,558,302号には、周知のLempel/Ziv/Welch(LZW)データ圧縮技術が説明されている。この方法では、入力データストリーム中で遭遇する文字ストリングをストリングテーブルに記憶することにより、入力データストリームを圧縮する。「圧縮器」が、入力ストリームを探索して、記憶されたストリングと一致する最長のものを判定する。圧縮器は、多くのストリングに遭遇するに連れて「賢く」なっていき、次第により長い文字を圧縮できるようになる。入力文字ストリングが記憶されたテーブルストリングに一致するたびにコードが受信器に送出される。その受信器には、その送信のデコードを可能にする同一のストリングテーブルが存在する。
プリンタのラスタ走査線についてのランレングスデータ圧縮が、Spiveyによる「Data Compression Technique for APA Printer(Change Block Skipping)」及び「Hybrid Data Compression Technique for Change Block Skipping in an APA Printer」(IBM Technical Disclosure Bulletin, vol.23, No.12, May 1981,5464-5470頁)に説明されている。Spiveyの方法では、現在の走査線を前の画像における対応する走査線と比較し、その間の一致の有無に応じてコードを出力する。Spiveyはまた、前述の方法をランレングスエンコードと組み合わせて用いる複合技術を説明している。
従って、本発明の目的は、データ圧縮用のシステムを含み、受信データの特性に応じて適応可能なページプリンタを提供することである。
本発明の別の目的は、限られた量のオンボードメモリを効率的に用いることを可能にするようにデータ圧縮技術を知的に(intelligently)選択するシステムを採用したページプリンタを提供することである。
また、本発明の目的は、データ圧縮が行われるまで印刷を継続することができない状態にオンボードメモリがおかれた際に選択的に呼び出されるデータ圧縮システムを備えたページプリンタを提供することである。
更に、本発明の他の目的は、ページプリンタで使用するための改良されたデータ圧縮技術を提供することである。
周辺装置は、入力データフローをページ構成された出力に変換し、ページ全体のラスタデータの記憶にはサイズ的に不充分であるランダムアクセスメモリ容量を有するものである。この周辺装置はまた、プロセッサと複数のデータ圧縮手順を保持する制御用メモリとを有し、その各手順は異なる性能特性を示す。周辺装置は、以下のステップを含む入力データフローの各部を圧縮する方法を実行する。即ち、その方法は、入力データフローの各部にランダムアクセスメモリを割り当て、かかる割り当てに対して使用できるランダムアクセスメモリの量の不足を判定し、入力データフローの各部に対して第1のデータ圧縮手順を用いて圧縮データ部を生成し、この圧縮データ部を検査してしきい値を超える或るレベルの圧縮が達成されたか否かを判定し、それが達成されていなければ次のデータ圧縮手順を用いて、このしきい値に対する各手順毎に検査を繰り返し、これにより、しきい値の圧縮レベルの達成を最初に可能にする圧縮手順をそのデータフロー部の圧縮に用いる圧縮手順とする、というステップを含むものである。また、総体的(integral)及び独立の画像記述子を用いた入力データフローを扱うための改良された圧縮方法及び圧縮技術が説明される。
本発明は上述のように構成したので、データ圧縮用のシステムを含み、受信データの特性に応じて適応可能なページプリンタを提供することが可能となり、また、限られた量のオンボードメモリを効率的に用いることを可能にするようにデータ圧縮技術を知的に選択するシステムを採用したページプリンタを提供することが可能となる。
以下、本発明をレーザプリンタの場合について説明するが、プロッタ、ファクシミリ装置等の他の周辺装置にも本発明で考案された手順を利用可能であることが理解されよう。
プリンタシステム
図1において、プリンタ10は、プロセッサ12、印刷エンジン14及び入出力(I/O )ポート16を含み、これらは全てバス18で接続されている。印刷エンジン14は、一定速度で動作するレーザプリンタを有し、このレーザプリンタにはその動作についていける速度でビデオラスタ印刷データが提供されねばならない。また、ランダムアクセスメモリ(RAM)20及びリードオンリーメモリ(ROM)22がバス18に接続されており、それらは、利用可能なRAM 20が最も効率的に使用されること、及び印刷オーバーランを防止するために印刷エンジン14が印刷待ち状態のデータを有することを確実にするために必要な全ての手順を含む。
この実施例では、プリンタ10は、ページプリンタであり、I/O モジュール16を介してホストプロセッサから画像データを受信する。受信した画像データの記憶に利用可能なRAM 20の記憶容量は、1ページ全てのビデオラスタビットマップ画像の記憶に必要な容量よりかなり小さいものである。RAM 20のサイズは、プリンタ10が競争力のある最低価格で販売しうるよう制限されている。
ホストプロセッサからの画像データは、I/O モジュール16を介して受信され、RAM 20に読み込まれる。この画像データはいくつかの形態のうちの1つをとる。その画像データは、副画像を含み、この場合、記述子が各副画像と連続していて各副画像と共に処理される。かかる画像データが受信されると、この画像データ自体が調べられて、データ圧縮が必要であるか否かが判定される。本発明の第2の態様では、副画像の記述子が実際の副画像データとは別個に受信される(ただし、実際の副画像データにリンクされている)。第2の態様では、記述子中のデータと他の画像固有のデータとを用いて、一連のデータ圧縮技術(もしあれば)のどれをこの副画像データに適用すべきかの判定の一助にする。
本発明のいずれの態様においても、プリンタ10が画像データを受信すると、構文解析が行われ、コマンド及びデータが処理されて、RAM 20に記憶されるラスタ図形データが導出される。この際に副画像が生成される。次に、ラスタ図形データベースに記憶された副画像が中間ページ表現(「ページ中間体」)にリンクされる。ページ中間体は、最小限のメモリしか消費せずに1ページ分の情報をビデオに簡単に変換することのできるフォーマットで表現する手段である。ページ中間体の動作は基本的には1ページを複数のストリップに分割し、その各ストリップは所定数の「命令バケット」を含む。各ストリップは、高さ(例えば128ドット)が割り当てられ、一連の命令バケットへのポインタ(例えば、各バケットのサイズは256バイト)を含み、各「バケット」はストリップに対してラスタビデオをどのように生成すべきかを定義する命令を含む。2つ以上のストリップにまたがる副画像(及び他の中間体オブジェクト)は、それが存在する各ストリップ毎に1つの命令を有する。
ラスタ図形データのページ中間体への変換においては、ストリップの内容がそのストリップのビデオバッファのサイズに基づくしきい値を超えることが明らかになる場合がある。また、複数のストリップの変換後に、ページ中間体の変換を完了するだけのメモリが残っていないという事態も発生し得る。更に、1ページ全体を変換した後に、このページが利用可能なRAMに記憶するには複雑すぎることが明らかになる場合がある。上記のいずれの場合にも、このシステムはそのメモリの制約を克服しようとしてデータ圧縮動作を実行する。各場合において、そのとき存在する変数の検討結果に応じて複数の圧縮技術のうちの1つが選択される。このようにして、利用可能なRAMを最も高速かつ効率的に使用することができるように圧縮手順が選択される。
以下に3つのデータ圧縮法を説明する。使用すべきデータ圧縮法の選択がプリンタ機構から求められる性能特性によって決まることが理解されよう。最高速の圧縮を行う場合には、モードmと呼ばれる手順(mは多次元変更(multi-dimension change)を意味する)が、ラスタ走査行に加えられるランレングスと、行から行への変化とに基づいてラスタ画像データブロックを圧縮する。モードmは極めて高速なデータ圧縮(及び圧縮解除)法であるが、ある種の画像データの圧縮には有効ではない。モードmは「無損失」圧縮技術(この圧縮中には、圧縮解除時に回復不能な画像データの損失は存在しない)である。
また、モードmより低速であるが、ある種の画像データに対してはより効率的である別の無損失圧縮技術が、改良型のLempel/Ziv/Welch(LZW)手順である。第3の「有損失」圧縮手順が採用され、これは一般に少なくとも4:1の圧縮率を保証するが、圧縮解除時に回復不能な画像データの損失が幾分生じることになる。
ここで図1に戻る。このデータ変換及び圧縮手順に用いられるサブルーチンはRAM 20及びROM 22にリストされている。RAM 20は、ユーザに割り当てられたメモリ領域24と、ラスタ画像の記憶に割り当てられた領域26と、圧縮された画像に割り当てられた領域28と、ページ中間体データの記憶のための領域30と、以下で説明する手順に用いられる変数の記憶に割り当てられた領域32とを有する。
ROM 22は、LZW圧縮(34)と、モードm圧縮(36)と、有損失圧縮(38)とを実行するサブルーチンを含む。更にROM 22は、「ストリップビデオ事前生成」(SVPG)を実行するための手順を記憶する領域40と、「適応型圧縮ページ保護」(ACPP)を実行するための手順を備えた領域42と、圧縮解除時に有損失圧縮解除の行われた画像が元の画像を(データ損失があるにもかかわらず)より有効に表現し得るようにする有損失ディザテーブルを記憶する領域44と、領域34,36,38で発見された1つ以上の圧縮手順を用いてデータ圧縮を行うための手順を記憶する領域46とを有する。
モードm圧縮を実行する手順の動作中には、複数のカウンタ50,52,54を用いて或る圧縮カウントの追跡を行うことが可能である。かかるカウンタの動作を以下で考察する。
概略フローチャート
ここで図2を参照する。同図は、1ページの生成過程中にプリンタ10が実行する動作を示す概略フローチャートである。まず、データがホストプロセッサから受信されて(ステップ70)、ラスタ図形副画像を導出するための事前処理を受ける。次に、この副画像を用いて画像データのページ中間体ストリップが形成される(ステップ72)。上述のように、この手順は、図形副画像のページストリップへの割り当てを含み、各ストリップは命令バケットからなる。その命令バケットは、それぞれが所定サイズを有し、恐らくは所定サイズの副画像命令を含むものである。プリンタ10はまた、(一般には3つの)ページ中間体のストリップの変換の結果として発生するラスタビデオビットマップを保持するためにRAM 20の領域30を事前割り当てする。従って、プリンタ10は1ページを10以上のストリップに分割することができるが、RAM 20はページ中間体の3つのストリップから結果的に得られるラスタビデオビットマップしか保持することができない。
各ページ中間体ストリップが完成すると、プリンタ10は、各ストリップ中の命令をラスタビデオビットマップデータに変換し、このデータをRAM領域26に記憶させる。このRAM領域26は(本実施例では)3つのラスタバッファ領域に細分化されている。3つのバッファ領域の全て(RAM領域26)が一杯の場合、印刷エンジン14が始動し、そこに記憶されているラスタビデオ情報がプロセッサ12の制御下で印刷エンジン14へと供給される。ラスタビデオデータが印刷エンジン14に読み込まれている間には、印刷エンジン14へのデータ転送が完了したバッファ領域を用いてページ中間体のストリップバッファビデオへの変換処理が続行される。
ページ中間体の形成過程において、1つのストリップに対して命令数が多すぎる場合がある(判定ステップ74)。この場合には、大きすぎると判明したラスタ図形部分は直ちにビデオラスタデータに変換され、無損失圧縮技術、例えばモードmを用いて圧縮される(ステップ76)。この手順の詳細については図3を参照して後で説明する。
ページ中間体の形成中には、利用可能なストリップラスタバッファ領域26の量が追跡される。残りのストリップラスタバッファ領域が「少ない」又は「無し」と判定された場合(判定ステップ78)、この手順は、ページ中間体命令の指示する図形画像データをデータ圧縮してメモリの空部分を作ることができるか否かを判定するために分岐する。このため、この手順は圧縮技術の選択へと移行する(ステップ80)。最初に、モードm無損失圧縮を試行し(ステップ82)、これによりメモリ切れ又はメモリ不足状態が解消された場合、この手順はこの処理を出てページ中間体の形成を続行する(ステップ72)。一般に、メモリ切れ又はメモリ不足状態が継続する場合には、無損失LZW圧縮手順が用いられて(ステップ84)、メモリ切れ/不足検査が繰り返される。ここでメモリ切れ/不足指示が残る場合には、有損失圧縮手順(ステップ86)が試行され、再びその結果が検査されて、メモリ切れ又は不足状態が解消されたか否かが判定される。メモリ切れ又は不足状態が継続する場合、そのページは印刷することができない。しかし、ほとんどの場合、有損失圧縮技術は、通常は4:1のデータ圧縮を行うので、メモリ切れ又は不足状態が解消される。
ページ中間体ストリップ処理が完了すると(判定ステップ90)、ページ中間体データが構文解析されて、そのデータをビデオラスタビットマップデータに変換するのに要する時間が見積もられる。この見積もり時間が印刷エンジン14の許容可能な時間より長い場合、適応型圧縮ページ保護(ACPP)が実施されて「ページが複雑すぎる」という指示が発せられる(判定ステップ92)。かかる条件下で、高レベルの複雑性を有するページ中間体のストリップがページ中を下に向かって順に処理されて、ラスタに変換され、一時バッファに入れられる。次いで、そのラスタデータストリップに圧縮技術を用いて、「ページが複雑すぎる」という指示の除去、及び利用可能なRAMへの既変換ストリップの適合化を試みる。
各ストリップが変換されて(可能であれば)圧縮されると、その記憶領域のRAM 20中における発見を試みる。圧縮されたオブジェクトの複雑性は一般に印刷エンジン14に許容される最大の複雑性より遥かに低いため、印刷オーバーランを起こすことなく1ページが印刷される。
ストリップビデオ事前再生
ここで図3を参照して(図2のステップ74,76に示す)ストリップビデオ事前生成中に用いられる手順を説明する。ページがオープンされると、各ストリップ毎にページ中間体のサイズのしきい値が設定される(ステップ100)。このしきい値は、バケット単位で設定され、1バケットはページ中間体の記憶領域の最小の割り当て単位である。この実施例では、1バケットが約256バイト長であると仮定する。各バケットは、必要であれば、ストリップのページ中間体データの記憶のためにリンクされる。バケットのしきい値は、利用可能なプリンタのメモリ量を、1ページ上のストリップ数と1バケット当たりのバイト数との積で除算することにより算出される。利用可能なメモリを約800,000バイトと仮定すると、前記しきい値は約125バケットに設定され、各ストリップのしきい値がその値に初期設定される。
次に、ページ中間体処理が開始されて(ステップ72)、ページ中間体データ構造が生成される。ラスタ図形のページ中間体への変換処理中の任意時間において、或る1つのストリップについての命令バケット数が予め設定されたしきい値を超えていると判定された場合、そのストリップを直ちにラスタに変換し圧縮してプリンタメモリ量を一定に保たねばならない場合がある。従って、しきい値を超えた場合には判定ステップ102により出力YESが提供される。次いで、ストリップラスタビットマップ用の残りのRAMが2つのストリップのためのスペースより小さいか否かが判定される(判定ステップ104)。その答がNOである場合、ページ中間体の生成が続行される。しかし、その答がYESである(2つのストリップを保持するにはRAM残量が不充分である)場合には、そのしきい値を超えるストリップは、そのページ中間体データが直ちにラスタビデオデータに変換される(ステップ106)。
判定ステップ104に示す条件により、変換を伴わずに一層多くのページ中間体の記憶を行うのに充分なメモリが存在する際にストリップがラスタビデオデータに変換されることを防止することができる。従って、ビデオ事前生成を必要としないページは、そのページ上の2、3のストリップが非常に大きい(他は小さい)というだけで時間的不利益を払わねばならないということはない。
「大きすぎる」ストリップがラスタビデオに変換されると、以下で説明するように、そのストリップのデータのモードm圧縮を用いた圧縮が試行される(ステップ108)。モードm圧縮動作の結果としてストリップビデオデータが圧縮されている場合には(判定ステップ110)、その既圧縮ストリップが用いられる(ステップ112)。また、ストリップが圧縮されていない場合には、その未圧縮ストリップが用いられる(ステップ114)。或る条件下では、圧縮技術を用いることによりストリップデータの拡張が発生することになる、という点に留意されたい。このような場合、拡張されたストリップデータの代わりに未圧縮ストリップデータが用いられる。
次に、ストリップラスタビデオ用のスペースのRAM 20における割り当てが試行される(ステップ116)。連続したメモリスペースが利用可能である場合(判定ステップ118)、ストリップはそのメモリスペースに記憶される(ステップ120)。また、メモリ中に連続したスペースが見つからず、充分なフラグメント(断片)メモリスペースが利用可能である場合(判定ステップ119)には、ストリップはRAM 20中のリンクされたメモリフラグメントに記憶される(ステップ122)。更に、連続した又は断片的なメモリスペースが不充分にしか存在しない場合には、「メモリ切れ」が発生し、そのページの印刷は、印刷できるものを印刷する、という状態で続行される(ステップ121)。
ストリップがメモリに記憶されると、現在のメモリ状態に基づき、そのストリップ用の新しいバケットしきい値が確定される(ステップ124)。このしきい値は初期のしきい値と同様に計算される。ただし、変換されたばかりのストリップが消費したバケット数が引かれることになる。従って、新しいしきい値は、(利用可能なRAM量の変化に従って調整された)古いしきい値から既変換ビデオラスタストリップのサイズを減算し、1バケット当たりのバイト数で除算したものに等しい。この調整により、しきい値は、ストリップが変換されて利用可能なメモリが少なくなるにつれて小さくなる。新しいしきい値が設定されると(ステップ124)、ページ中間体の生成が続行される(ステップ72)。
図3に示す手順は、メモリ切れ又はメモリ不足の指示に先立って発生する。この手順は、ページ中間体データの複雑なストリップの存在の結果として発生するメモリ上の制約を予測するはたらきをする。しかし、ページ中間体の処理中に、どのストリップも1つのみではストリップビデオ事前生成しきい値を超えない状態で、複数の複雑なストリップがメモリ切れ又はメモリ不足の指示を発生させることになる可能性がある。このような場合、この手順はプリンタ10で利用可能な圧縮法から1つを選択してページ中間体のラスタ図形データの圧縮を試行する。
圧縮手順の選択を可能にする判定手順を説明する前に、ROM 22に含まれる各圧縮手順について考察する。図4を参照して先ずモードm圧縮について考察する。
モードm圧縮
モードm圧縮は、ページ中間体データのラスタビットマップブロックを考慮し、各行毎にランレングスエンコードを用い、及び、ブロック中の行の間から発生するデルタ変化のエンコードにより、そのブロックを圧縮しようとする。ここで用いる「行」という用語は、任意長のデータを意味し、そのデータのサイズは画像のラスタ走査行のサイズに等しくても等しくなくてもよい。
モードm手順は、図1に示す「同一」カウンタ50、「異種」カウンタ52、及び「ラン」カウンタ54を用いる。モードm圧縮手順は、ページ中間体の副画像ブロックにアクセスし、この手順に対して2つの初期条件即ち「同一」と「異種」との一方を設定することにより開始される。「同一」初期条件は、ブロックの行のあるワードが前の行の垂直方向に並んだワードと同一である毎にカウントを累算させることを可能にする。このカウントは「同一」カウンタ50に入力される。これに対し、「異種」条件が有効である場合には、1つの行のあるワードが前の行の垂直方向に並んだワードと異なる毎に異種カウンタ52がインクリメントされる。第3のカウンタ即ちランカウンタ54は、ある行に現われる同一ワードのランレングスをカウントするのに用いられる。
ここで図4に戻る。初期条件は「同一」に設定されていると仮定する(ステップ150)。副画像ブロックの第1の行が次いで考慮され、それに対し周知の方法でランレングス圧縮が行われる(ステップ152)。何らかのランレングスの文字が存在する限り、各「ラン」文字及び「ラン」カウントについてランレングスコマンドが発せられる。更に、その行の残りの文字は(以下で説明する)同一/異種コマンド中の「異種」ワードとして出力される。この場合、同一の値は0である。更に(ステップ154に示すように)、第1のブロック行中の各ワードは(最初の行の上には行が存在しないので)明らかに「異種」であるから、異種カウンタ52において異種カウントがインクリメントされ、その行の最後に(及び第1行中の各ランの最後に)リセットされる。次いで、次行がアクセスされ、左側から各ワードが調べられて、それが、直前の行中の垂直方向に並んだワードと同じであるか否かが判定される。「同一」の条件が満足される限り、「同一」カウンタ50は、前の行中の垂直方向に並んだワードと異なるワードが現われるまでインクリメントされる(ステップ156)。
次いで、この手順は「異種」モードに切り換わり、「異種」条件が満足される限り、カウンタ52中の「異種カウント」をインクリメントする。必要な範囲で、ランカウンタ54中のランカウントは、繰り返し現われる「異種」ワードについて入力される。これにより、この処理が高圧縮解除速度(即ち「同一」モード中には「ラン」をカウントしないもの)に「調整される」。同一モード中のランカウントを考慮することにより一層高い圧縮率を達成することができる。
モード状態が切り換わるたびに、「同一」カウント、「異種」カウント、及び「同一」ワードに続く「異種」ワードを含む同一/異種コマンドが発せられる。異種モードは、(1)行の中に、その上の行中の垂直方向に並んだワードと同じワードが現われるか、(2)2より大きいランレングスが現われて終了するか、(3)行が終了するまで、継続する(ステップ158)。この手順が依然として「異種モード」にあることに留意すると、上の行と同じワードが現われた際に、「同一」への条件切り換えが行われ、上述のように同一/異種コマンドが出力される。2より大きいランレングスが現われて終了すると、ランカウントとランされるワードとを含むランコマンドが出力される。また、同一/異種コマンドが、異種カウンタ52からの異種カウントと、現われた異種ワードと共に出力される(ステップ160)。この異種カウントは、ランデータのカウントを含まない。
この時点で、その行が終了したか否かが判定され(ステップ162)、終了していなければ、同一条件への切り換えが行われ(ステップ164)、手順は図4のステップ156に戻る。これに対し、行が終了している場合には、カレント行全体が上の行と同じであるか否かが判定される(ステップ166)。同じであれば、その行に対して発せられた同一/異種コマンドは、その同一/異種コマンドよりはるかに簡潔な「行繰り返し」コマンドに置き換えられる(ステップ168)。しかし、カレント行が上の行と同じでない場合には、最後に発せられたコマンドが0の連続を示したか否かが判定される(判定ステップ170)。その判定結果がYESであれば、その最後のコマンドが「ライン終了」コードに置き換えられ、圧縮解除時にはそのラインはゼロパディングされることになる(ステップ172)。この段階で、副画像ブロックが終了したか否かが判定され、その判定結果がYESであれば、モードm圧縮手順が終了する。またその判定結果がNOであれば、手順はステップ156に戻り、次の行に対して続行される。代替方法では、「行終了」境界を無視して「同一」又は「異種」カウントを「行終了」境界を超えて行うことができる。この機能により、データ圧縮は幾分改善される。
モードmデータ圧縮手順、圧縮解除手順は、極めて高速であり、レーザプリンタによりオンザフライで用いることができる。このため、一般に、この手順が最初に選択される圧縮技術となる(例外もある)。モードmの使用後にメモリ切れ又は不足の指示が依然として存在する場合には、第2の無損失の技術、例えばLZWが用いられる。LZWは、無損失態様で圧縮及び圧縮解除を行うが、モードmより低速である。しかし、LZWテーブル中における突き合わせの結果として出力されるコードの長さを制限することにより(例えば32ビットワードにつき3コード)、その圧縮速度及び圧縮解除速度を上げることができる。しかし、LZWは、分散画像を圧縮することはできない(モードmも同様)。分散画像の圧縮にLZWが用いられた場合に発生する時間の浪費を無くすために、かかる画像は、モードm圧縮の結果として圧縮率が1.125〜1より小さくなる場合を判定することによってその一部が検出され、上記値より小さくなっている場合には、その画像は分散されたものと判定される。LZWはかかる画像には用いられない。これは、その場合にデータ圧縮を行うことができないことが周知であるためである。
クラスタ化/分散化の判定
クラスタ化画像は、規則的に間隔のあいたドットを呈し、モードm、LZWその他の技術を用いて無損失に圧縮することができるものである。これに対し、分散化画像は、ドットが規則的な繰り返しパターンを有さず、従って無損失の圧縮法には不適当なものである。画像又は副画像は、その画像の2進値を(以下に示す)「隣接(neighbor)テーブル」中の項目と比較することにより、クラスタ化画像又は分散化画像のいずれかに分類することができる。隣接テーブルのクラスタ化部分中の項目に一致する画像の各バイト毎に値「+1」が割り当てられる。また、隣接テーブルの「分散化」部分中の項目に一致する画像の各バイト毎に値「−1」が割り当てられる。そのテーブル中の項目に一致しない画像の他の全てのバイトは「不明」であり、値「0」が割り当てられる。画像圧縮の最後に、その割り当てられた値が合計され、負の値が示された場合には画像は分散化されているものとみなされ、また正の値が示された場合には画像はクラスタ化されているものとみなされる。かかる分類を可能にする隣接テーブルの各項目を以下に示す。
画像タイプを予測するための隣接テーブル
2進値 指示 値
00001110 クラスタ化 1
00011100 クラスタ化 1
00011110 クラスタ化 1
00100100 クラスタ化 1
00110011 クラスタ化 1
00111000 クラスタ化 1
00111100 クラスタ化 1
00111110 クラスタ化 1
01001001 クラスタ化 1
01100110 クラスタ化 1
01110000 クラスタ化 1
01111000 クラスタ化 1
01111100 クラスタ化 1
01111110 クラスタ化 1
10010010 クラスタ化 1
11001100 クラスタ化 1

00010100 分散化 −1
00100110 分散化 −1
00101000 分散化 −1
00110110 分散化 −1
01010101 分散化 −1
01011010 分散化 −1
01011101 分散化 −1
01100100 分散化 −1
01101100 分散化 −1
10010101 分散化 −1
10011010 分散化 −1
10100101 分散化 −1
10101001 分散化 −1
10111010 分散化 −1
LZW圧縮
ここで図6を参照する。モードmは、圧縮手順として既に試みられており、LZWを試みるという判断が既に下されていることが仮定されている。判定ステップ200に示すように、第1の問い合わせは、画像のいずれかの部分に有損失圧縮技術が用いられたか否かということである。有損失圧縮技術が用いられていれば、LZW手順は中止され、調べられている画像部分について有損失圧縮が続行される(副画像に有損失圧縮が適用されると、画像の一部のみについて無損失圧縮技術が用いられた場合に画像の美しさが失われることになる)。
有損失圧縮が画像のどの部分にも用いられていない場合には、次いでモードm圧縮の結果として画像全体に対して少なくとも1.125:1の圧縮率が得られるか否かが判定される(ステップ202)。その判定結果がYESであれば、この画像はクラスタ化されているものとみなされ、手順がステップ204に移行して、LZW手順が以前に試行されていない限り、各副画像に対してLZW手順が試行される。
これに対し、モードm圧縮の結果として圧縮率が1.125:1より小さくなった場合には、その画像から副画像が選択され(ステップ206)、上述と同様の態様で隣接テーブルを用いてその副画像がクラスタ化されたものであるか分散化されたものであるかが判定される。その副画像がクラスタ化されたものであると判定されると(判定ステップ208)、手順はその副画像に対してLZW圧縮技術を試行する。しかし、その副画像が分散化したものであると判定されると、LZWではそれを圧縮することができないことがわかっており、その副画像は「LZW不能」とマークされる(ステップ210)。
この時点で、その画像中の全ての副画像が検査されたか否かが判定され(判定ステップ212)、その判定結果がNOであれば、手順はステップ206に戻って続行される。また、全ての副画像が検査されていると判定された場合には、全ての画像が終了しているか否かが判定され、その判定結果がNOであれば、手順がステップ202に戻って続行される(判定ステップ214)。また、その判定結果がYESであれば、メモリ切れ又はメモリ不足の指示を調べて(判定ステップ216)その指示が除去されたか否かが判定される。その判定結果がYESであれば、ページ中間体の処理が続行される。また、その判定結果がNOであれば、手順は有損失圧縮技術の試行へと移行する。
有損失圧縮
有損失圧縮手順は最後の手段として用いられる。これは、この技術が回復不能なデータ損失を伴うからである。有損失圧縮技術は、主として無損失技術を用いて圧縮することのできない画像に用いることを意図したものである。一般にこの範疇に含まれる画像は、誤差拡散手順(即ち「分散化」)を用いた中間調の画像である。
図7に示すように、有損失圧縮技術は、まず、モードm又はLZWを用いて以前に行われたデータ圧縮のレベルに基づいてページ上の画像をソートすることから始まる(ステップ220)。次いで、最も圧縮度の悪い画像が最初に調べられ(ステップ222)、その画像が有損失圧縮が達成可能なものより良好に圧縮されていれば、その画像はスキップされる(ステップ224)。一例として、4×4ビットセルのラスタビデオデータが4ビットワードに圧縮されるものと仮定する。従って、有損失圧縮技術によって4:1の圧縮が達成される。しかし、それ以前に無損失圧縮技術によって4:1より大きい圧縮率が達成されていれば、有損失圧縮技術は試行されない。各圧縮手順は、画像又は副画像の未圧縮状態のものに適用され、既に圧縮されている画像又は副画像は、まず圧縮解除しない限り更に圧縮されることは決してないことを想起されたい。
この段階で、カレント画像が調べられて、それがクラスタ化されたものであるか分散化されたものであるかを指示するためにタグ付けされ(ステップ226)、そのいずれの場合にも有損失圧縮が行われる(ステップ228)。そのタグは、後で明らかになるように、圧縮解除時に用いられる。画像が圧縮されると、その画像中の全ての副画像が有損失圧縮され得るように有損失フラグがセットされてその画像に関係づけられる(ステップ228)。次いで、メモリ切れ又はメモリ不足の指示が除去されたか否かが判定される(判定ステップ232)。その判定結果がNOであって全ての画像が完了していれば(判定ステップ240)、メモリ切れの状態のままであっても印刷動作が開始され、それ以外の場合には次の画像がアクセスされ(ステップ241)、それに対して有損失圧縮が行われる。メモリ切れ又はメモリ不足の指示が除去されると(判定ステップ232)、手順はページ中間体変換を続行する。
ここで図8ないし図10を参照する。同図において、図7のステップ228,230に示す手順の詳細について考察する。まず、上述のように、副画像中の各バイトが調べられて隣接テーブルのクラスタ化/分散化の値と比較される(ステップ242)。クラスタ化項目に一致する任意のバイトには値「+1」が割り当てられ、分散化項目に一致する任意のバイトには値「−1」が割り当てられ、そのどちらでもない(不明の)ものには値「0」が割り当てられる(ステップ244)。その割り当てられた値は次いで合計されて(ステップ246)その副画像と関係付けて記憶される。次に、この4×4ビットブロックの副画像がアクセスされ(ステップ248)、その副画像中の「オン」ビット数がカウントされ、「オン」ビット数を示す4ビット値が前記ブロックに割り当てられて記憶される(ステップ250)。16のカウント値は15として記憶される。このようにして、4×4ビットセルの副画像のそれぞれが、4ビット値と、その副画像がクラスタ化されているか分散化されているかを示す更に割り当てられた値とによって表わされる。この4ビットの圧縮された値は、元のセルの元の黒の領域を表わすのに用いられる。黒のデータが必ずしも同じ位置になくても圧縮解除はその領域を維持することができる。
この有損失圧縮された画像が4×4のブロックに圧縮解除されるとき、まずそのブロックにクラスタ化値又は分散化値が割り当てられていたか否かが判定される。クラスタ化値が割り当てられていた場合、そのブロックの4ビット値に応じて図9の4×4のマトリクスが選択される。例えば、その4ビット値が11個の「オン」又は黒のドットがあったことを示す場合には、図9に示すマトリクスのうちマトリクス252が選択される。これに対し、このブロックが分散化されたものとして示され、4ビット値がやはり11に等しい場合には、図10の「オン」ドットのマトリクス254が選択される。従って、クラスタ化又は分散化標識により、圧縮解除の実行にどのマトリクスグループを用いるかが決定され、また4ビット値により、マトリクスグループのうちのどのマトリクスを選択するかが決定される。図9及び図10のマトリクスのパターンは、実験的に導出され、他の方法では4ビット圧縮値から直接回復することのできない損失情報のいくつかを回復することを可能にする。これらのテーブルは一般的な場合を表わすものである。このようなテーブルは装置毎に異なるものとすることができる。
メモリ切れ又はメモリ不足手順
以上、モードm、LZW、及び有損失の圧縮技術を説明してきたが、ページ中間体の処理中にメモリ切れ又はメモリ不足の指示があった場合に本発明で行う手順について考察する。図11及び図12に示すように、メモリ切れ又はメモリ不足の指示があった場合(判定ステップ300)、まず画像のいずれかの部分で以前に有損失圧縮が適用されたものがあるか否かが判定される(判定ステップ302)。その判定結果がYESの場合、この手順は(図7に示すように)その画像に対する有損失圧縮の実行へと分岐する。また前記判定結果がNOの場合には、その画像を調べてその画像に対して以前にモードm圧縮が行われているか否かが判定される(判定ステップ304)。その判定結果がYESであれば、モード圧縮を再度行う理由はなく、手順はLZW圧縮の試行(図6参照)へと分岐する。この画像に対してそれ以前にモードm圧縮が行われていなければ、モードmが試行される(ステップ306)。
この時点で、その画像の1つの副画像が調べられて、それが有損失圧縮された場合のサイズが判定される。この値は、その画像の高さ及び幅に基づき直接計算することができる(ステップ308)。その計算値が次いで有損失圧縮中に用いられ(図7のステップ224参照)、その有損失圧縮において、以前に試行された無損失圧縮により有損失圧縮を用いた場合に得られるものより良好な圧縮レベルが達成されたか否かが判定される。
次に、この手順は、モードm圧縮によって1対1より大きな副画像圧縮が行われたか否かを判定する(判定ステップ310)。その判定結果がYESであれば、圧縮された副画像は保持され(ステップ312)、NOであれば圧縮されていない副画像が保持され、それは、モードmに失敗したものとしてマークされる(ステップ314)。次いでこの手順は、全ての副画像が処理されたか否かを判定し(判定ステップ316)、その判定結果がNOであれば次の副画像を獲得して(ステップ318)判定ステップ304に戻って圧縮動作を繰り返す。全ての副画像が処理済みであれば、ページ上の最後の画像が処理されているか否かを判定し(判定ステップ320)、その判定結果がYESであれば、この手順はメモリ切れ又はメモリ不足状態が除去されたか否かの判定に移行する(判定ステップ322)。その判定結果がNOであれば、この手順は、そのページの副画像に対するLZW圧縮の試行へと分岐する。
更に圧縮すべき画像が残っていると判定された場合(判定ステップ320)、新しい画像がアクセスされ(ステップ322)、この手順は判定ステップ302に戻る。メモリ切れ又はメモリ不足状態が除去されると、この手順はページ中間体を継続する(ステップ326)。
以上の説明から、本発明を実施したプリンタには様々なデータ圧縮技術を用いることができ、これらのデータ圧縮技術は各圧縮技術の利点に基づいた順序で用いられ(即ち、最も高速なものが最初に用いられる)、用いるべきデータ圧縮技術の選択は以前に用いられたデータ圧縮技術の成功(又は成功の欠如)に基づいて行われる、ということが理解されよう。このようにして、画像データは、必要なときにのみそれに最も適した技術を用いて圧縮される(有損失技術は最後の選択肢である)。
適応型圧縮ページ保護
ここで図2に戻る。ページ中間体処理(ステップ72)の最後に、ページ完了指示(判定ステップ90)が発生する。ページ中間体ストリップの処理中、各命令が記憶される度に、この命令について実験的に導出された「複雑性定数」が累算されて、そのストリップについての複合「複雑性値」が生成される。
ページの複雑性は、ページ中間体のビデオラスタへの変換に要する時間の見積もったものである。見積もり時間(又はその一部)が印刷エンジンに許容される時間より長い場合に、ページ保護が採用されて、図13ないし図15に示す動作が開始される。ページ複雑性時間は、副画像オブジェクト(及びそれに含まれる命令)を含む各ストリップのページ中間体オブジェクトを読み出し、ラスタビデオへの変換過程で各オブジェクトの要する時間に基づいて見積もり時間を累算することにより、見積もられる。この見積もりは、画像オブジェクトの高さ及び幅と、画像処理がオブジェクトの各命令を実行するのに要する時間を示す定数とに基づいて行われる。
ページ複雑性時間(即ちストリップのラスタビデオへの変換に要する時間)の見積もり処理中であれば如何なるときでも、累算見積もりが印刷エンジンの許容範囲より最低1エンジンストリップ時間だけ大きくなると、圧縮ページ保護がはたらく。ページ複雑性時間はまた、プリンタによるストリップのラスタへの変換を可能とすること及びこの処理を刻時する(刻時された事前ラスタ化)ことによっても、計算することができる。
ページ複雑性時間は、ストリップ作成をシステムタイマで刻時することによって実験的に測定することができる。この技術により、ページ処理速度を落とすことなくストリップの複雑性の計算に伴う不確実性を低減させることができる。計算されたストリップの複雑性が、良好な(OK)しきい値を下回っている場合には、それは印刷オーバーランを引き起こすことは全くなく、事前ラスタ化されることはない。同様に、計算されたストリップの複雑性が、強制(will)印刷オーバーランしきい値を上回っている場合には、その有害ストリップは確実に印刷オーバーランを引き起こすものであり、事前ラスタ化されなければならない。また、ストリップの複雑性が、良好しきい値と強制印刷オーバーランしきい値との間にある場合には、実験的な測定によって印刷オーバーランの不確実性は大幅に軽減される。実験的測定によってストリップが非印刷オーバーランとして分類され、中間体に要するメモリがストリップ(又はストリップの圧縮されたもの)より小さい場合、事前ラスタ化されたデータは破棄され、そのストリップは他の非印刷オーバーランストリップと同様にして処理される。それ以外の場合には、事前ラスタ化されたデータが用いられ、処理は他の印刷オーバーランストリップと同じ経路に沿って続行される。不確実なストリップの実験的測定を用いないページ圧縮の実際の適用においては、問題になるストリップは安全のためにおそらく事前ラスタ化される。実験的測定を用いれば、顕著な時間又は処理的な不利益を伴うことなくメモリの使用を低減させることができる。
図13において、ブロック72,90は図2と同様である。ページ中間体が完了したと示されると、ページストリップの複雑性の複合値が前述のように計算される(ステップ350)。その複雑性値が、ページストリップを直ちに印刷することができることを示している場合に、印刷が開始される(判定ステップ352)。これに対し、ページが複雑すぎる場合には、ページ中間体の第1のストリップがアクセスされ(ステップ354)、ラスタビデオに変換される(ステップ356)。
ストリップがラスタビデオに変換されると、残っている各ページ中間体ストリップが調べられて、それが未圧縮状態でユーザRAMに入るか否かが判定される(判定ステップ358)。その判定結果がYESであれば、そのストリップが未圧縮のものとしてフラグがセットされる(ステップ360)。また、前記判定結果がNOであり、そのページに対して以前にLZW圧縮が用いられている場合には(判定ステップ362)、ラスタビデオストリップに対してLZW圧縮が試行される(ステップ362)。これに対し、そのページに対してLZW圧縮が用いられていない場合には、モードm圧縮が試行される(ステップ364)。次いで、そのストリップがいずれかの圧縮動作により実際に圧縮されたか否かが判定され(判定ステップ366)、その判定結果がNOである場合、(考えられる既拡張ストリップの使用を防止するために)未圧縮ストリップが用いられる(ステップ368)。
次いで、そのストリップに対するスペースの割り当てが試行される(ステップ369)。図15に示すように、連続したスペースを利用可能であることが発見された場合(判定ステップ370)、そのストリップはその発見されたスペースに記憶される(ステップ372)。また、連続したスペースが発見されない場合には、そのストリップをリンクされたメモリフラグメントとして記憶するメモリ空間があるか否かが判定される(判定ステップ374)。その判定結果がYESであれば、そのストリップはリンクされたフラグメントとして記憶され(ステップ376)、次いで手順がページ中間体の次のストリップにアクセスし(ステップ378)、更に処理すべきストリップがあるか否かが判定される(判定ステップ380)。ストリップがそれ以上存在しない場合には、印刷が開始される。また、更にストリップが存在する場合には、次のストリップがページ中間体からラスタビデオに変換されて(ステップ356)、処理が続行される。
また、判定ステップ374に戻り、ストリップをリンクされたフラグメントとして記憶するメモリ空間がなく、このストリップに対して未圧縮のフラグがセットされている場合(判定ステップ382)には、メモリ切れ指示が発生して印刷が開始される。また、そのストリップに対して未圧縮のフラグがセットされていない場合には、モードm圧縮又はLZW圧縮が、以前に試行されたのがどちらであるかに応じて(判定ステップ384,386)試行される。モードm圧縮及びLZW圧縮の両方が既に試行されている場合に印刷が開始される。
つまり、ページ中間体のストリップ(又は複雑なストリップの選択された部分集合)がページの下に向かって順次ラスタビデオに変換されて、一時バッファに入れられる。LZW圧縮がページ上のどこかで既に用いられている場合にはLZW圧縮が試行され、そうでなければモードm圧縮が試行される。これは、LZW圧縮が以前にそのページ上で、そのページがページ保護が必要とするほど使用された(非常に複雑である)場合には、モードmは、恐らくはそのページをより良好に圧縮することができないからである。
圧縮後、そのラスタストリップのための記憶領域をメインメモリ中で探す。メインメモリ中に記憶領域がなかった場合には、かかる記憶領域をメインメモリの断片又はかかる状況のために別途設けられる緊急メモリプールで探す。この手順が終了すると、ページ印刷が開始される。「ストリップの大きさの」圧縮されたオブジェクトの複雑性は印刷エンジンの許容し得る最大限の複雑性よりはるかに低いので、ページはオーバーランを起こすことなく印刷される。
以上の説明では、連続的に記憶された記述子を有する画像に適用されたデータ圧縮について考察してきた。画像記述子は、ビットマップ副画像とは別に記憶することもできる。記述子があれば、本発明の2つの実施方法を区別する任意の手段となる。ここで図16に画像記述子の一例を示す。この記述子は、画像の高さ、幅、画像識別子(例えば連続番号)、及び「クラス」の表記の定義を含む。更に、画像記述子は、メモリ中の他の場所にある関連する画像ビットマップのアドレスを示す。
画像記述子中の「クラス」表記は、データ圧縮及び圧縮解除中に用いられる画像に関する事実を示す項目である。例えば、項目「2」は、画像が「未加工」であり、データ圧縮操作を受けていないことを示す。また、項目「3」は、画像がモードmデータ圧縮されていることを示す。更に、項目「8」又は「9」は、状況に応じて画像がクラスタ画像であるか分散化画像であるかを示す。他のクラス表記は、画像に用いられたデータ圧縮手順、即ちLZW、有損失その他を示す。不連続の画像記述子が用いられる場合、ラスタ図形のラスタビデオビットマップは記述子とは全く別個のものであり、圧縮が実行された際に記述子のビットマップに対するポインタだけが変更される。ページ中間体(表示リスト)を変更する必要は全くなく、圧縮システムはページ中間体の知識を全く有さない。
サンプリングされた副画像圧縮
この圧縮技術は、メモリ割り当て要求に失敗したことによりメモリ不足状態がトリガされた際に開始される。この技術には、画像中の副画像のサンプリングと、そのサンプリングされた副画像履歴から得られる期待される全体的な画像圧縮の予測と、画像中の全ての副画像への適切な圧縮技術の適用とが含まれる。この手順において、圧縮を含む所定組のメモリ割り当て操作が優先順位に従って順序づけられ、既に試行された無損失方法が必要メモリスペースを提供しない場合に、有損失方法が用いられる。最後の手段として、無損失圧縮から有損失圧縮への変換を、4倍の標準的な有損失の場合の圧縮率より低く圧縮されたあらゆる無損失画像について実行することができる。
図17に示すように、この手順は「選択された全ての副画像を圧縮」と題されている。まず、ある画像中の全ての副画像が、場合に応じて未圧縮リスト又は既圧縮リストのいずれかに割り当てられる。従って、この手順の始めには、全ての副画像が未圧縮リストに列挙される。これは、まだそれらが圧縮を受けていないからである。この処理は、未圧縮リストの次の細副画像にアクセスすることにより開始される(ステップ442)。次いで、そのリスト中の全ての副画像が完了したか否かが判定され(判定ステップ444)、その判定結果がYESであれば、手順は終了する(ステップ445)。また、前記判定結果がNOであれば、その副画像の記述子がチェックされて、その副画像が属する画像が「未加工」状態、即ち未圧縮であるか否かが判定される(判定ステップ446)。その画像が未加工でないと判定された場合、副画像は図17の左下に示す手順が実行される。
また、その画像が「未加工」であると判定された場合には、図17の右側に示す分類手順に進む。この分類手順は、その画像に属する全ての副画像に対して用いるべき圧縮方法の割り当てを含むものである。この手順は、ステップ460に示すように、画像中の全ての副画像をカウントし、及び副画像の適当な大きさのサンプルを選択することにより、開始される。サンプリングされる部分集合の大きさは、副画像の利用可能数によって変動する。副画像の数が16より少なければ、全ての副画像が用いられる。それより大きな数の副画像が存在する場合には、その総数のうちの数分の一が用いられ、その分割数は副画像の数が増えるにつれて大きくなる。好適には、部分集合は、6つの副画像毎に1つという比率より決して小さくはならない。明らかに、上記の数及び比率は好適例として挙げたものであり、その数及び比率の値は具体的な状況に応じて変更し得るものであることが、当業者には理解されよう。
次いで、選択された副画像のそれぞれが「次の」優先順位の無損失方法で圧縮される。最初にモードMが用いられる。これは、その方法が圧縮及び圧縮解除において最も高速であるからである。サンプル中の全ての副画像が、選択された無損失方法を用いて圧縮されると、平均圧縮率が計算されて(ステップ464)所定の圧縮しきい値と比較される。その圧縮方法による圧縮結果の圧縮率が前記しきい値を超えることがわかった場合、判定ステップ466,472に示すようにその方法が直ちに選択される。方法が選択されると、それが画像の全副画像に割り当てられ(ステップ474)、手順は図17の左側に移行する。
しきい値を超えず、未試行の他の無損失圧縮技術が存在する場合には(判定ステップ468)、手順はステップ462に戻り、次に低い優先順位の無損失方法を実行する。判定ステップ468で、利用可能な無損失方法がそれ以上存在しないことが示された場合には、有損失技術が用いられ、画像は分散化画像又はクラスタ化画像のいずれかとして判定される(ステップ470)。この場合、有損失方法は画像の全ての副画像に対して割り当てられ、手順は判定ステップ448に移行する。
分類手順中に、副画像の選択されたサンプルに対して圧縮が発生するが、かかる圧縮の結果は保持されない(圧縮率の計算及び前記しきい値との比較を目的とする場合を除く)。画像及び副画像の実際の圧縮は、図17の左側に示すように発生する。
あるページ上の画像の圧縮中には、共通の圧縮法を割り当てられた全ての画像が順次処理され、別の圧縮法を割り当てられた画像はその次に順次処理される。従って、全ての場合において、圧縮ルーチン「選択された全副画像の圧縮」で現在用いられている方法と一致する圧縮方法が割当てられた画像に現在の副画像が属するか否かが判定ステップ448でチェックされる。その判定結果がNOの場合、ステップ442で未圧縮リスト中の次の副画像がアクセスされて手順が繰り返される。また、前記判定結果がYESであり、適当な圧縮ルーチンが実行されている場合には、個々の副画像に対して直ちに圧縮が実行され、その結果がステップ450に示すように予備メモリに記憶される。副画像の圧縮が終了すると、古いビットマップメモリは割り当てが解除される。次いで、既圧縮画像の記述子が既圧縮リストに移動され(ステップ454)、手順は次の副画像のアクセスに移行する。
フォント圧縮
高速レーザプリンタでは、フォントは一般には圧縮ルーチンによる処理を受けることはない。しかし、プリンタ制御言語によっては、フォントビットマップがプリンタのメモリ内で連続していることを必要とする(例えばPCL)。これは、小さいフォントの場合には問題にならない。なぜなら、それに伴うビットマップが小さく、大きなメモリ領域を占有することがないからである。しかし、大きなフォントはメモリ切れの問題を生じさせるものとなる。これは、かかるフォントの記憶に要するブロックサイズがフォントの「ポイント」サイズの2乗で大きくなるためである。そのような大きなフォントを受け取った場合に、プリンタ内で多数の連続ブロックを利用することができないことがある。更に、非常に大きな連続するメモリブロックを確保するということは浪費的であり、できれば避けるべきである。また、(図18に示すように)ページ430上に印刷された大きなフォントサイズの場合を考えると、所望のフォントでページ全体が印刷されるより充分前にメモリ切れ状態が発生する。これを防止するために、受信フォントに対してデータ圧縮が加えられる。
ここで図19を参照する。フォント圧縮手順が、まず文字フォントサイズを識別する(ステップ432)。フォントサイズが所定のしきい値より大きい場合(判定ステップ433)、このフォントはモードmを用いて直ちに圧縮される。これに対し、文字フォントサイズがしきい値より小さい場合、直ちに圧縮を行うことはなく、メモリ切れ又はメモリ不足指示が出るまで圧縮動作は保留される(ステップ436)。
以上の説明は本発明の例示にすぎないことが理解されよう。当業者であれば、本発明から逸脱することなく様々な代替態様や修正態様を実施することが可能である。従って、本発明は、特許請求の範囲内に含まれる代替、修正、変形態様の全てを含むことが意図されている。
本発明の実施に適合された周辺装置を示す高水準ブロック図である。 本発明の手順全体を示す概略的なフローチャートである。 ストリップビデオの事前生成の為の手順を示す高水準フローチャートである。 ここで用いるモードmと呼ばれる高速データ圧縮技術を示す高水準フローチャートである(1/2)。 ここに用いるモードmと呼ばれる高速データ圧縮技術を示す高水準フローチャートである(2/2)。 Lempel/Ziv/Welchデータ圧縮手順を示す高水準フローチャートである。 Lossy圧縮手順を示す高水準フローチャートである。 画像がクラスタ化されているか分散しているかを判定するのに用いられる手順を示す高水準フローチャートである。 図8の手順の結果に従って用いられるクラスタ化有損失圧縮解除マトリクスを示す説明図である。 図8の手順の結果に従って用いられる分散化有損失圧縮解除マトリクスを示す説明図である。 図1のシステムにおいてメモリ残量のない状態又は不足した状態において用いるべき圧縮手順を判定する際に用いられる手順を示す高水準フローチャートである(1/2)。 図1のシステムにおいてメモリ残量のない状態又は不足した状態において用いるべき圧縮手順を判定する際に用いられる手順を示す高水準フローチャートである(2/2)。 「ページ中間体」動作が完了し、ページが複雑すぎることが発見された場合に実行される手順を示す高水準フローチャートである(1/3)。 「ページ中間体」動作が完了し、ページが複雑すぎることが発見された場合に実行される手順を示す高水準フローチャートである(2/3)。 「ページ中間体」動作が完了し、ページが複雑すぎることが発見された場合に実行される手順を示す高水準フローチャートである(3/3)。 本発明の第2の態様におけるビットマップ副画像を伴う記述子を示す説明図である。 採用すべき圧縮手順を判定するために本発明の第2の態様において実行される手順を示すフローチャートである。 大きなポイントサイズのフォントの印刷に応じて「メモリ切れ」指示が発生した場合のページを示す説明図である。 受信フォントに圧縮が加えられる場合を示すフローチャートである。
符号の説明
10 プリンタ
20 ランダムアクセスメモリ
22 リードオンリーメモリ

Claims (7)

  1. ラスタ構成画像をデータ圧縮するための方法であって、
    (a)クラスタ化ビットパターンからなる画像、及び、分散化ビットパターンからなる画像を示すデータセグメントパターンの第1のテーブルを提供するステップ(242)と、
    (b)画像のデータセグメントを、前記第1のテーブルの前記データセグメントパターンと比較して、前記画像の種別を決定するステップであって、前記種別は、クラスタ化種別と分散化種別を含むことからなる、ステップ(244)と、
    (c)前記画像のn×nビットの各ブロックをnビットのデータセグメントに縮小することによって前記画像を圧縮し、この圧縮された画像に種別標識を付加するステップ(250)と、
    (d)前記nビットのデータセグメントを使用して前記画像を復元し、前記種別標識に従って、記憶されたn×n画素のマトリクスを一対のマトリクステーブルからアクセスするステップ(図9、10)であって、前記テーブルのうちのあるテーブルは、クラスタ化されたものとして分類されるn×nビット画像を含み、別のテーブルは、分散化されたものとして分類されるn×nビット画像を含み、これらの各テーブルは、前記nビットのデータセグメントに従ってアドレスされることからなる、ステップ
    とからなる方法。
  2. 前記第1のテーブルのクラスタ化データセグメントパターンに合致する前記画像の任意のデータセグメントに第1の値を割り当てることにより、及び、前記第1のテーブルの分散化データセグメントパターンに合致する任意のデータセグメントに第2の値を割り当てることにより、前記画像を、クラスタ化されたもの、または分散化されたもののいずれかとして分類する(226)、請求項1の方法であって、この分類が、前記第1の値と第2の値とを組み合わせ、この組み合わせた値をしきい値と比較することによって決定されることからなる、方法。
  3. 前記第1の値が正の数であり、前記第2の値が負の数であり、前記しきい値がそれらの値の中間値である、請求項2の方法。
  4. 前記ページ構成出力のビデオラスタ画像全体を記憶するために割り当てるには不十分なランダムアクセスメモリ(20)を備え、入力データフローをページ構成出力に変換するための周辺装置(10)において、前記入力データフローを、前記ページ構成出力を構成する複数の画像ストリップを有するページ中間体に変換するための方法であって、各画像ストリップが、該各画像ストリップのラスタビデオ形式への変換を可能にする画像処理コマンドを含み、
    (a)画像ストリップのデータセグメントのしきい値を設定するステップと、
    (b)画像ストリップ内のデータセグメントの数が、前記しきい値より大きいか否か(1)、及び、前記ランダムアクセスメモリの残存メモリが、所定のレベルより小さいか否か(2)を判定し、さらに、これらの判定(1)及び(2)の結果が真であるか否かを判定するステップ(104)と、
    (c)前記画像ストリップをラスタビデオにすぐに変換し(106)、それの圧縮を試みる(108)ステップと、
    (d)前記ステップ(c)で得られた圧縮されたラスタビデオを、前記ランダムアクセスメモリに記憶するステップ(120、122)と、
    (e)前記しきい値を、前記ランダムアクセスメモリの残存するメモリを見込むより小さな値に調整するステップ(124)と、
    (f)前記ページの残りの画像ストリップに対して前記ステップ(a)〜(e)を繰り返すステップ
    とからなる方法。
  5. 前記ステップ(c)が、ラスタデータのブロックを検査する圧縮処理(108)を使用し、前記ラスタデータの各ブロックの垂直方向データ及び水平方向データの両方の冗長性を考慮する圧縮処理を実行する、請求項4の方法。
  6. 前記圧縮処理が、
    ラスタデータのブロックの後続行間に存在する垂直方向データの冗長性を示す出力コマンドを提供するステップと、さらに、前記行に存在する水平方向データの冗長性を示すコマンドを提供するステップ
    を含む、請求項5の方法。
  7. ストリップの複雑さをシステムタイマによる測定によって経験的に求めることができ、複雑さの予測値が不確定な複雑さを示すウインドウ内にあるとき、ストリップを事前にラスタ化するかどうかを確定するためにその求めた結果を使用する、請求項4の方法。
JP2004082496A 1992-09-03 2004-03-22 メモリを最小にするための適応型データ圧縮方法 Pending JP2004274776A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/940,111 US5479587A (en) 1992-09-03 1992-09-03 Page printer having adaptive data compression for memory minimization

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003043602A Division JP2003309729A (ja) 1992-09-03 2003-02-21 メモリの最小化のための適応型データ圧縮方法

Publications (1)

Publication Number Publication Date
JP2004274776A true JP2004274776A (ja) 2004-09-30

Family

ID=25474251

Family Applications (3)

Application Number Title Priority Date Filing Date
JP22028793A Expired - Fee Related JP3566973B2 (ja) 1992-09-03 1993-09-03 メモリの最小化のための適応型データ圧縮方法
JP2003043602A Pending JP2003309729A (ja) 1992-09-03 2003-02-21 メモリの最小化のための適応型データ圧縮方法
JP2004082496A Pending JP2004274776A (ja) 1992-09-03 2004-03-22 メモリを最小にするための適応型データ圧縮方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP22028793A Expired - Fee Related JP3566973B2 (ja) 1992-09-03 1993-09-03 メモリの最小化のための適応型データ圧縮方法
JP2003043602A Pending JP2003309729A (ja) 1992-09-03 2003-02-21 メモリの最小化のための適応型データ圧縮方法

Country Status (4)

Country Link
US (1) US5479587A (ja)
EP (1) EP0585524B1 (ja)
JP (3) JP3566973B2 (ja)
DE (1) DE69322023T2 (ja)

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5436981A (en) * 1992-06-24 1995-07-25 Canon Kabushiki Kaisha Image processing method, and apparatus therefor
US5602976A (en) * 1993-02-23 1997-02-11 Adobe Systems Incorporated Method and apparatus for saving printer memory
JPH07205496A (ja) * 1994-01-14 1995-08-08 Oki Electric Ind Co Ltd ページプリンタ及びデータ圧縮方法
DE69431101T2 (de) * 1994-03-18 2002-11-28 Hewlett Packard Co Druckersystem mit komprimiertem Schriftsatzverfahren, das Speicherplatzeinsparüng ermöglicht
US6009242A (en) * 1994-06-30 1999-12-28 Canon Kabushiki Kaisha Print controller, printer, data transfer method, and printing condition setting method
US5615314A (en) * 1994-08-30 1997-03-25 Management Graphics, Inc. Interface for providing rasterized data to an imaging device
US6170047B1 (en) * 1994-11-16 2001-01-02 Interactive Silicon, Inc. System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US5625712A (en) * 1994-12-14 1997-04-29 Management Graphics, Inc. Iterative compression of digital images
US5627534A (en) * 1995-03-23 1997-05-06 International Business Machines Corporation Dual stage compression of bit mapped image data using refined run length and LZ compression
US6650761B1 (en) * 1999-05-19 2003-11-18 Digimarc Corporation Watermarked business cards and methods
US5729668A (en) * 1995-09-15 1998-03-17 Hewlett-Packard Company Optimized hardware compression and decompression architecture for use by an image processor in a laser printer
US6137589A (en) * 1995-09-20 2000-10-24 Hewlett-Packard Company Efficient storage of dithered raster image data in a printer or the like
US5825991A (en) * 1995-10-30 1998-10-20 Xerox Corporation System for balancing CPU demands in a high-volume print server
US6266449B1 (en) * 1995-11-22 2001-07-24 Canon Kabushiki Kaisha Information processing apparatus and method which selectively controls data encoding by monitoring amount of encoded data
US5710909A (en) * 1996-01-23 1998-01-20 International Business Machines Corporation Data compression utilization method and apparatus for computer main store
US5797689A (en) * 1996-01-24 1998-08-25 Hewlett-Packard Company Avoiding memory fragmentation in printers
US5793937A (en) * 1996-03-29 1998-08-11 Peerless Systems Corporation Fallback processing for page generation using memory reduction techniques
US5852711A (en) 1996-04-24 1998-12-22 Hewlett-Packard Company Efficient pattern use in printers
US5765157A (en) * 1996-06-05 1998-06-09 Sun Microsystems, Inc. Computer system and method for executing threads of execution with reduced run-time memory space requirements
JPH1023271A (ja) 1996-07-05 1998-01-23 Canon Inc 画像形成方法とその装置
JPH1051642A (ja) * 1996-07-31 1998-02-20 Fuji Xerox Co Ltd 画像処理装置
US5995724A (en) * 1996-11-01 1999-11-30 Mikkelsen; Carl Image process system and process using personalization techniques
US6269190B1 (en) 1996-09-24 2001-07-31 Electronics For Imaging, Inc. Computer system for processing images using a virtual frame buffer
US5867632A (en) * 1996-11-07 1999-02-02 Xionics Document Technologies, Inc. System and method for providing glossy compression and contone/bitonal image conversion
JP3762496B2 (ja) * 1996-11-11 2006-04-05 株式会社沖データ ファクシミリ装置
US6330362B1 (en) * 1996-11-12 2001-12-11 Texas Instruments Incorporated Compression for multi-level screened images
JPH10147018A (ja) * 1996-11-18 1998-06-02 Canon Inc 印刷装置及びメモリ管理方式
US5982937A (en) 1996-12-24 1999-11-09 Electronics For Imaging, Inc. Apparatus and method for hybrid compression of raster data
JPH10202962A (ja) * 1997-01-22 1998-08-04 Brother Ind Ltd 印字データ処理装置及び入力データ作成装置
US5971518A (en) * 1997-01-28 1999-10-26 Lexmark International, Inc. Method of printing with an ink jet printer to inhibit the formation of a print artifact
US5930466A (en) * 1997-03-11 1999-07-27 Lexmark International Inc Method and apparatus for data compression of bitmaps using rows and columns of bit-mapped printer data divided into vertical slices
JP3580982B2 (ja) * 1997-04-30 2004-10-27 パイオニア株式会社 情報記録方法及び装置
US5999710A (en) * 1997-06-17 1999-12-07 Hewlett-Packard Company Merge plane generation for a data processing pipeline
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US6038033A (en) * 1997-08-20 2000-03-14 Lexmark International, Inc. Method and apparatus for compressing and decompressing print data in the background operations of a printer
US6130759A (en) * 1997-08-26 2000-10-10 Hewlett-Packard Company Reducing memory fragmentation by coalescing and redistributing previously distributed page strips
US6031624A (en) * 1997-09-08 2000-02-29 Lexmark International, Inc. Method and apparatus for adaptive data buffering in a parallelized printing system
US5970221A (en) * 1997-10-02 1999-10-19 Lexmark International, Inc. Printer with reduced memory
US6298173B1 (en) * 1997-10-03 2001-10-02 Matsushita Electric Corporation Of America Storage management system for document image database
US6040917A (en) * 1997-10-27 2000-03-21 Hewlett-Packard Company Memory partitioning for multi-resolution pauseless page printing
US6151131A (en) * 1997-11-03 2000-11-21 Xerox Corporation Print system with deferred job assembly feature
US6115134A (en) * 1997-12-05 2000-09-05 Hewlett-Packard Company Scan line splitting in a multi-staged image processing pipeline
US6337747B1 (en) 1998-01-29 2002-01-08 Canon Kabushiki Kaisha System to adaptively compress raster image data
US6166827A (en) * 1998-04-22 2000-12-26 Hewlett-Packard Company Freeing memory in a page printer during punt protection
US6115135A (en) * 1998-04-22 2000-09-05 Hewlett-Packard Company Freeing memory in a page printer during duplex processing
US6018400A (en) * 1998-05-05 2000-01-25 Hewlett-Packard Company Laser printer employing overlapped color plane processing
US20010015820A1 (en) * 1998-07-13 2001-08-23 Hewlett-Packard Company Method and apparatus for conservation of memory in a printer through selective compression of a display list
US6556309B1 (en) 1998-08-28 2003-04-29 Hewlett-Packard Company Conservation of printer memory on the composition page in response to page pipe feedback
US20020063894A1 (en) * 1998-08-28 2002-05-30 Russell Campbell Conservation of printer memory on the composition page
US6429949B1 (en) 1998-10-15 2002-08-06 Electronics For Imaging, Inc. Low memory printer controller
US5999272A (en) * 1998-10-20 1999-12-07 Hewlett-Packard Company Balancing compressed storage requirements with decompression times during punt protection processing in a page printer
US6192157B1 (en) 1998-10-27 2001-02-20 Hewlett-Packard Company Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6195024B1 (en) 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6822589B1 (en) 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6583887B1 (en) * 1999-02-26 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for data compression
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6738150B1 (en) * 1999-04-14 2004-05-18 Hewlett-Packard Development Company, L.P. Methods and systems for processing image data
US6594029B1 (en) 1999-04-19 2003-07-15 Hewlett-Packard Company Guard-banding methods, dynamic guard-banding methods, and related apparatus for real time image-data processing
US6832187B1 (en) * 1999-05-10 2004-12-14 Hewlett-Packard Development Company, L.P. Methods of providing page protection in a digital printing system having multiple output devices
JP2001030552A (ja) * 1999-07-26 2001-02-06 Canon Inc データ転送方法およびデータ転送装置ならびに記録装置
US6188333B1 (en) * 1999-08-12 2001-02-13 Unisys Corporation LZW data compression apparatus and method using look-ahead mathematical run processing
JP2001199135A (ja) * 2000-01-20 2001-07-24 Canon Inc 印刷制御装置および印刷制御方法および記憶媒体
US6748457B2 (en) 2000-02-03 2004-06-08 Realtime Data, Llc Data storewidth accelerator
US20030191876A1 (en) 2000-02-03 2003-10-09 Fallon James J. Data storewidth accelerator
US7076016B1 (en) * 2000-02-28 2006-07-11 Advanced Micro Devices, Inc. Method and apparatus for buffering data samples in a software based ADSL modem
US6731814B2 (en) 2000-05-01 2004-05-04 Xerox Corporation Method for compressing digital documents with control of image quality and compression rate
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
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US7162080B2 (en) * 2001-02-23 2007-01-09 Zoran Corporation Graphic image re-encoding and distribution system and method
US6701020B2 (en) * 2001-03-15 2004-03-02 Hewlett-Packard Development Company, L.P. JADE-JPEG based adaptive document compression engine
US6516397B2 (en) * 2001-04-09 2003-02-04 Hewlett-Packard Company Virtual memory system utilizing data compression implemented through a device
US7164369B2 (en) 2001-06-19 2007-01-16 Sharp Laboratories Of America, Inc. System for improving storage efficiency of digital files
JP3736394B2 (ja) * 2001-07-10 2006-01-18 松下電器産業株式会社 画像圧縮装置
WO2003081898A1 (en) * 2002-03-22 2003-10-02 Sipec Corporation Image data compression device, image data compression method, recording medium, and program
US20030202209A1 (en) * 2002-04-30 2003-10-30 Mellor Douglas J. System and method for optimizing memory resources in printing devices
JP2004080520A (ja) 2002-08-20 2004-03-11 Ricoh Co Ltd 画像処理装置、画像読取装置及び画像形成装置
US7564861B1 (en) * 2002-08-22 2009-07-21 3Com Corporation Systems and methods for compressing data
US7715640B2 (en) * 2002-11-05 2010-05-11 Konica Minolta Business Technologies, Inc. Image processing device, image processing method, image processing program and computer-readable recording medium on which the program is recorded
US7170628B2 (en) * 2002-12-20 2007-01-30 Texas Instruments Incorporated Efficient processing of images in printers
US20040125385A1 (en) * 2002-12-30 2004-07-01 Mellor Douglas J. Estimating a guarantee time
US7663772B2 (en) * 2003-01-24 2010-02-16 Infoprint Solutions Company, Llc Dynamic early preparation of presentation objects for efficient printing
US7305490B2 (en) * 2003-07-29 2007-12-04 Hewlett-Packard Development Company, L.P. Preparing electronic data for transmission
JP4136825B2 (ja) * 2003-08-08 2008-08-20 キヤノン株式会社 画像処理装置および画像処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7098822B2 (en) * 2003-12-29 2006-08-29 International Business Machines Corporation Method for handling data
US7580564B2 (en) * 2004-05-13 2009-08-25 Lexmark International, Inc. Method of an image processor for transforming a n-bit data packet to a m-bit data packet using a lookup table
JP4328689B2 (ja) * 2004-08-06 2009-09-09 キヤノン株式会社 画像処理装置および画像処理装置の制御方法
US8024483B1 (en) 2004-10-01 2011-09-20 F5 Networks, Inc. Selective compression for network connections
US7675646B2 (en) * 2005-05-31 2010-03-09 Xerox Corporation Flexible print data compression
US8184691B1 (en) * 2005-08-01 2012-05-22 Kevin Martin Henson Managing telemetry bandwidth and security
US7783781B1 (en) 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
US8275909B1 (en) 2005-12-07 2012-09-25 F5 Networks, Inc. Adaptive compression
US7882084B1 (en) 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US7873065B1 (en) 2006-02-01 2011-01-18 F5 Networks, Inc. Selectively enabling network packet concatenation based on metrics
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US20070216696A1 (en) * 2006-03-16 2007-09-20 Toshiba (Australia) Pty. Limited System and method for document rendering employing bit-band instructions
US7849241B2 (en) * 2006-03-23 2010-12-07 International Business Machines Corporation Memory compression method and apparatus for heterogeneous processor architectures in an information handling system
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US9356824B1 (en) 2006-09-29 2016-05-31 F5 Networks, Inc. Transparently cached network resources
DE102007040675A1 (de) * 2006-11-13 2008-05-15 Abb Technology Ag System und Verfahren zur verlustfreien Verarbeitung von Prozesswerten einer technischen Anlage oder eines technischen Prozesses
US8085426B2 (en) 2006-11-22 2011-12-27 Sharp Laboratories Of America, Inc. Intelligent page buffer allocation
US8417833B1 (en) 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US8314961B1 (en) * 2007-01-18 2012-11-20 Marvell International Ltd. Method and apparatus for printing raster page
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
JP4953905B2 (ja) * 2007-04-27 2012-06-13 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
US8593654B2 (en) * 2007-10-03 2013-11-26 Hewlett-Packard Development Company, L.P. Setting a partition size for a print job
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
JP4868016B2 (ja) * 2009-03-26 2012-02-01 富士ゼロックス株式会社 画像処理装置、画像形成装置及びプログラム
AU2009233627B2 (en) * 2009-10-30 2012-03-29 Canon Kabushiki Kaisha Compression method selection for digital images
US9639792B2 (en) * 2011-07-18 2017-05-02 Ricoh Company, Ltd. Resolution of out of memory conditions for shared memory in a print controller
JP6056468B2 (ja) * 2012-12-27 2017-01-11 ブラザー工業株式会社 画像処理装置およびコンピュータプログラム
US9235612B1 (en) * 2013-04-03 2016-01-12 Time Warner Cable Enterprises Llc Management of event data
AU2013211450A1 (en) 2013-07-30 2015-02-19 Canon Kabushiki Kaisha Fixed memory rendering
WO2017138947A1 (en) * 2016-02-11 2017-08-17 Hewlett-Packard Development Company, L.P. Compressing each object in an electronic document
US11113012B2 (en) 2018-03-28 2021-09-07 Hewlett-Packard Development Company, L.P. Reprocessing of page strips responsive to low memory condition
US20220166855A1 (en) * 2020-11-25 2022-05-26 Generalplus Technology Inc. System for development interface and data transmission method for development interface
US20220318980A1 (en) * 2021-04-01 2022-10-06 Allstate Insurance Company Computer Vision Methods for Loss Prediction and Asset Evaluation Based on Aerial Images

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325085A (en) * 1980-06-09 1982-04-13 Digital Communications Corporation Method and apparatus for adaptive facsimile compression using a two dimensional maximum likelihood predictor
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4701803A (en) * 1984-06-05 1987-10-20 Canon Kabushiki Kaisha Image data compression apparatus
KR930003416B1 (ko) * 1988-03-29 1993-04-29 주식회사 금성사 폰트의 함축방법
JPH0753454B2 (ja) * 1990-07-06 1995-06-07 株式会社日立製作所 テキスト情報処理装置
EP0478304B1 (en) * 1990-09-25 1996-08-14 Brother Kogyo Kabushiki Kaisha Character output device
US5129049A (en) * 1991-05-16 1992-07-07 Hewlett-Packard Company Method and apparatus for preventing print overruns
US5179378A (en) * 1991-07-30 1993-01-12 University Of South Florida Method and apparatus for the compression and decompression of data using Lempel-Ziv based techniques
US5260693A (en) * 1991-10-11 1993-11-09 Spacelabs Medical, Inc. Method and system for lossless and adaptive data compression and decompression
US5150454A (en) * 1991-10-16 1992-09-22 Patrick Wood Printing system and method

Also Published As

Publication number Publication date
DE69322023D1 (de) 1998-12-17
EP0585524A1 (en) 1994-03-09
JP2003309729A (ja) 2003-10-31
DE69322023T2 (de) 1999-06-10
JPH06233141A (ja) 1994-08-19
EP0585524B1 (en) 1998-11-11
US5479587A (en) 1995-12-26
JP3566973B2 (ja) 2004-09-15

Similar Documents

Publication Publication Date Title
JP3566973B2 (ja) メモリの最小化のための適応型データ圧縮方法
EP0585522B1 (en) Page printer having automatic font compression
US5602976A (en) Method and apparatus for saving printer memory
US5535311A (en) Method and apparatus for image-type determination to enable choice of an optimum data compression procedure
US6583887B1 (en) Method and apparatus for data compression
JP3872558B2 (ja) メモリ削減技法を使用したページ生成のためのフォールバック処理
US6038033A (en) Method and apparatus for compressing and decompressing print data in the background operations of a printer
JPH0863606A (ja) グラフィック画像の圧縮システムおよび方法
JPS6343036B2 (ja)
JPH10147018A (ja) 印刷装置及びメモリ管理方式
US6137589A (en) Efficient storage of dithered raster image data in a printer or the like
US5729668A (en) Optimized hardware compression and decompression architecture for use by an image processor in a laser printer
EP0712095B1 (en) Method and apparatus for image data compression
US5778095A (en) Classification of scanned symbols into equivalence classes
EP0067004A2 (en) Printing character generator
JPH10147017A (ja) 印刷装置及びデータ制御方法
US20040091162A1 (en) Run length compression format for storing raster data in a cache
US20040120007A1 (en) Method and apparatus for forming a display list
JPH11272798A (ja) ボ―ルド体文字を区別する方法及び装置
US20030123087A1 (en) Image compression method, decompression method thereof and program therefor
JP2683506B2 (ja) データ圧縮方法及び装置、データ伸長方法及び装置
JP4001482B2 (ja) 画像圧縮方法、その復元方法及びそのプログラム
EP0896295A2 (en) Character recognition method and system
JPH11119763A (ja) ビットマップ高能率符号化方式
Rice The development of efficient coding for an electronic mail system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050418

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050421

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051018