JP3872558B2 - メモリ削減技法を使用したページ生成のためのフォールバック処理 - Google Patents

メモリ削減技法を使用したページ生成のためのフォールバック処理 Download PDF

Info

Publication number
JP3872558B2
JP3872558B2 JP09434597A JP9434597A JP3872558B2 JP 3872558 B2 JP3872558 B2 JP 3872558B2 JP 09434597 A JP09434597 A JP 09434597A JP 9434597 A JP9434597 A JP 9434597A JP 3872558 B2 JP3872558 B2 JP 3872558B2
Authority
JP
Japan
Prior art keywords
compression
band
page
video
shortage
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
Application number
JP09434597A
Other languages
English (en)
Other versions
JPH10116160A (ja
Inventor
デイヴィッド・ジェイ・チュラ
スティーブン・エル・シェイファー
Original Assignee
ピアレス・システムズ・コーポレーション
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 ピアレス・システムズ・コーポレーション filed Critical ピアレス・システムズ・コーポレーション
Publication of JPH10116160A publication Critical patent/JPH10116160A/ja
Application granted granted Critical
Publication of JP3872558B2 publication Critical patent/JP3872558B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Description

【0001】
【発明の属する技術分野】
本発明は、ラスタ・プリンタなどの連続同期ラスタ・イメージ出力装置用の複雑な高解像度ページ・イメージを生成するイメージ・レンダリングを行うために使用する装置および方法である。本方法および装置は、ページ記述言語のインタプリタがイメージ生成することができるすべてのページを、維持可能な最高の印刷品質で印刷することを可能にすると同時に、複雑さに関係なくすべてのページが確実に印刷されるようにする。
【0002】
【従来の技術】
連続同期ラスタ・イメージ出力装置は、出力データを一定時間に送る必要がある。データが一定時間内に送られない場合、出力ページ・イメージが壊れたり、印刷することができなかったりする。本発明の方法および装置は、リアルタイム処理に適した一連のコンパクトなオーダまたはコマンドに基本グラフィックス機能を分解してから、出力ページ・イメージをオンザフライで生成するほかに、その複雑さに関係なく出力する各ページのイメージ生成の必要に応じて無損失および有損失圧縮を行う。
【0003】
本発明の技法は、普通ならレンダリングされたイメージに必要になるメモリよりもはるかに少ないメモリで、しかも、出力装置が必要とする速度で処理し、出力装置に送ることができる形でページのグラフィック内容を決める。これを実現するために、グラフィクス機能を、本明細書でオーダと呼ぶ低レベル基本立体として表現して、リアルタイムでビットマップ・イメージに変換することができるように保証する。さらに、冗長または重複グラフィックス関数をなくすことによってオーダまたはコマンドの数を減らして、オーダによって使用されるメモリを最小限にする。
【0004】
本発明は、ページ・イメージの小区画を一度に処理するリアルタイム出力プロセッサを使用する。このような区画をバンドと呼ぶ。バンドは所定の数の走査線から成る。各走査線は出力装置が必要とする速度で出力装置に送られる一連の画素である。第1のバンドを作成した後で、第2のバンドを作成すると同時に第1のバンドを印刷する。
【0005】
【発明が解決しようとする課題】
本発明は、1994年7月20日に出願された「Method and Apparatus For Displaying A Page With Graphics Information On A Continuous Synchronous Raster Output Device」という名称の米国特許出願第08/277788号で開示されている連続同期ラスタ・イメージ出力装置用イメージ生成の従来技術の技法に基づき、これに、複雑さに関係なくページが常に確実に印刷されるようにすると同時に、可能な最高の解像度を維持する機構を追加することによって成っている。すなわち、従来技術の技法を使用した場合、印刷エンジンが必要とする速度で送ることができるように、使用プリンタまたはその他の装置に全ピットマップまたはイメージのその他の表現を格納するのに十分なメモリがないため、複雑なグラフィックスを含むページを印刷することができない場合がある。このような事態が起こった場合、イメージを出力するために、通常は解像度、したがって出力品質を下げる必要がある。しかし、出力装置に送られるすぺてのページの解像度を下げる必要はなく、複雑度の高いグラフィクスを含むページの解像度を下げるだけでよい場合がある。本発明は、複雑さに関係なく文書の出力を可能にすると同時に、文書の各ページについて可能な最高の印刷品質を維持する機構を提供す。
【0006】
【課題を解決するための手段】
ページ記述言語のインタプリタがイメージ生成することができるすべてのページを維持可能な最高の印刷品質で印刷することができるようにすると同時に、複雑さに関係なくすべてのページが確実に印刷されるようにするシステムを形成する方法および装置を開示する。
【0007】
本発明のシステムには2つの主要構成要素がある。それは、ページをレンダリングするためのメモリの割り振りを行うメモリ管理機能と、メモリあふれ例外とビデオ不足例外の処理を行うフォールバック管理機能である。
【0008】
図2に、本発明のシステムの様々な機能モジュールとそれらの相互関係を示す。全般的な流れは上から下、左から右の順であり、グラフィックス・サービス・インタフェースに対する呼出しから始まる。文字が付された矢印は、モジュールによってサービスが行われることを示している。
【0009】
グラフィックス・サービス・インタフェース・モジュールは、主としてページへの描画から成るプリンタ言語インタプリタとの基本的対話を処理する。インタプリタは特定のページの始まりと終わりを識別しなければならず、グラフィックス・サービス・インタフェースは始まり(新規ページと呼ぶ)で新しいページ・インスタンスを初期設定し、完了すると(ページ終了と呼ぶ)そのページを印字のために印刷エンジンに渡す。3つの主要なインタフェース・モジュールがある。すなわち、新規ページ処理(新規ページ)、ページの終わり処理(ページ終了)、および描画(グラフィックス・オーダ生成)である。
【0010】
新規ページ・モジュールは、そのページに描画するのに必要なすべての内部データ構造を初期設定する。新規ページ・モジュールは、メモリ管理モジュールがそれ自体を新規ページの解像度およびサイズに基づいて割り振り、構成することができるように、メモリ管理モジュールを初期設定する。
【0011】
ページ終了モジュールは、すべての描画呼出しが完了すると稼働する。この処理には、損失検査モジュールおよびビデオ不足予測機能による最終検査が含まれる。損失検査モジュールは、有損失圧縮バンドがないか検査し、予測機能はページが印刷エンジンに渡される前に可能性のあるビデオ不足を予測する。これを行った後は、ページ終了によって印刷エンジン・ドライバにそのページが印字可能であることが通知される。その後で、印刷エンジン・ドライバが、レンダリング/圧縮解除エンジン・モジュールに対して実際のレンダリング済みバンドを要求する。
【0012】
グラフィックス・オーダ生成モジュールはインタプリタによって行われた描画呼出しを処理して表示リスト・オーダを生成する。オーダ生成モジュールは、各描画タイプについて適切なオーダを生成する役割を果たす。生成される実際のオーダは基礎となるレンダリング/圧縮解除エンジンによって異なるため、各目的レンダリング/圧縮エンジンごとに異なるオーダ生成モジュールがある。これらのモジュールがすべて、グラフィックス・メモリ管理モジュールからのオーダにメモリを割り振る。
【0013】
グラフィックス・メモリ管理モジュールは、オーダに対する空間の割り振りを行い、オーダを綴り合わせて1バンドごとに1リストずつのオーダ・リストにするメモリ管理機構として機能する。オーダ・リストの格納のために最適化された固有のヒープ構造体を管理する。フォールバック管理モジュールは、圧縮エンジン・モジュールを介して、ヒープ内のオーダ・リストを圧縮する実際のプロセスを実行する。このため、メモリ管理モジュールとフォールバック管理モジュールは密接に結合されており、ヒープ構造体を共有する。
【0014】
ビデオ不足予測モジュールは、各ページの終わりで、印刷エンジンのために十分な速さでレンダリングすることができないバンドを識別する。フォール・バック管理モジュールが、十分高速にレンダリングすることができるようにそのバンドの表現を単純化する役割を果たす。これには通常、バンドをプリレンダリングして圧縮する必要がある。
【0015】
フォールバック管理モジュールは、オーダ・リスト内のデータを圧縮することによってメモリあふれとビデオ不足を処理する役割を果たす。一般に、これはある種の圧縮を使用して行われる。したがって、圧縮解除オーダを生成しなければならない。
【0016】
圧縮エンジンは、フォールバック管理機能の制御下でバンドとオブジェクトを圧縮する。
【0017】
レンダリング/圧縮解除エンジン・モジュールは、ハードウェア・グラフィックス・レンダリング・エンジンのサポートによって、またはそのモジュール内で直接、オーダ・リストを解釈する。このモジュールは、フォールバック管理機能の必要に応じて、ページ全体を生成することも1つのバンド/オブジェクトのみを生成することもできる。
【0018】
【発明の実施の形態】
ページ記述言語のインタプリタがイメージ生成することができるすべてのページを維持可能な最高の印刷品質で印刷することができるようにすると同時に、複雑さに関係なくすべてのページが確実に印刷されるようにする、グラフィックス・サブシステムを形成する方法および装置を開示する。
【0019】
図1を参照すると、本発明はパーソナル・コンピュータまたはワークステーション11と組み合わせて機能し、ラスタ・プリンタ13などの連続同期ラスタ・イメージ出力装置用の出力を生成する。ワード・プロセッサなどのアプリケーション15が所望の出力を生成し、それをプリンタ・ドライバ17が処理してPostscriptなどのページ記述言語のコマンドを生成する。ページ記述言語コマンドは、レーザ・プリンタ内のメモリ20を含むコントローラ・サブシステム19として示されている本発明のグラフィックス・サブシステムに渡され、そのサブシステムによってコマンドが適切なビットマップに変換されて印刷エンジン21に渡され、所望の出力を含むページを「印字」する。
【0020】
コントローラ・サブシステムは、ページ・イメージのレンダリング、印刷エンジン21へのイメージの供給を処理する。グラフィックス・サービス・インタフェースは、基礎となるハードウェア・サポートに関係なく同じである。コントローラ内のグラフィックス・サービス・インタフェースのグラフィックス・サービス・ルーチンが、目的ビットイメージの座標系で動作する。イメージの座標系の原点はビットイメージの最初の画素に対応する。
【0021】
次に図2を参照すると、本発明のグラフィックス・サブシステムを形成するコントローラ19の各モジュールが図示されている。プリンタまたはページ記述言語インタプリタ25の出力が、幅と長さを示すことによって印刷するページ・イメージのサイズを指定する。プリンタ言語インタプリタの出力は、典型的には画素数単位で表される上部および左マージン・パラメータを指定することによって物理ページ内のイメージの配置も指定する。
【0022】
グラフィックス・サービス・インタフェース27は、ページに関する呼出しとビットイメージを描画する呼出しの、2つのタイプの呼出しを処理する。描画ビットイメージ呼出しは5つのクラスに分かれる。一般に、各クラスは少なくとも2つの呼出しを有する。1つはシステムが管理するページ・イメージ・ビットマップを作成するための呼出しで、もう一方は、インタプリタが管理する宛先のための呼出しである。これらの呼出しは新規ページ・モジュール31と、グラフィックス・オーダ生成モジュール33と、ページ終了モジュール35とによって処理される。
【0023】
表1に、インタプリタ25からのコマンドに基づいてグラフィックス・サービス・インタフェースによって行われる様々な呼出しを示す。
【表1】
Figure 0003872558
【0024】
以下に、本発明を理解するために必要な新規ページおよびページ終了モジュールについて説明する。個々の描画呼出しと、グラフィックス・オーダ生成モジュール33による処理の詳細は、本発明を理解するために必要なものではない。そのため、描画呼出しについては具体的には説明せず、概説的に説明する。新規ページ・ハンドラ、グラフィックス・オーダ生成およびページ終了ハンドラを使用する典型的なグラフィックス・サービス・インタフェースの詳細な実施態様は、1994年7月20日出願のMethod and Apparatus For Displaying A Page With Graphics Information On A Continuous Synchronous Raster Output Deviceという名称の米国特許出願第08/277788号に記載されている。
【0025】
新規ページ
新規ページ・モジュール31は、それに続くグラフィックス・コマンドによって生成するページを定義する。この呼出しの引数には、「印字」する領域の寸法、マージン、およびオプションが含まれる。グラフィックス・サブシステムは、幅パラメータと長さパラメータを使用してページ・イメージの大きさを決定する。また、上部マージン・パラメータと左マージン・パラメータを使用して、印刷エンジン・ドライバ39に物理ページ内の画像の配置を通知する。
Figure 0003872558
【0026】
この要求は、新規ページ・イメージの作成を開始しようとする呼出し側の意図を宣言している。グラフィックス・サブシステムは、特定の内部資源を割り振り、それに続くグラフィックス要求で使用する固有のページ・タグを返す。処理することができるのは一度に1つのページ・イメージだけである。
【0027】
ページ長および幅パラメータによって、作成するイメージの寸法を定義する。ページ・イメージに書き込む画素はその寸法にクリップされる。
【0028】
オプションは、ページ・イメージ・メモリの初期設定と使用可能なメモリがない場合の新規ページの反応を制御する。グラフィックス・サービス・インタフェース27がGRS_NOWAITフラグを立てた場合、新規ページは必要なメモリを割り振ることができない場合にエラー・コードを返す。GRS_NOWAITフラグがゼロの場合、新規ページは現在使用中の資源が使用可能になるまで待つ。
【0029】
オプション・フラグGRS_PG_MIRROR_Yが1の場合、ビット・イメージはビット・イメージのY軸で鏡映されてから印刷エンジン・ドライバに送られる。オプション・フラグGRS_PG_MIRROR_Xが1の場合、ビット・イメージはビット・イメージのX軸で鏡映されてから印刷エンジン・ドライバに送られる。GRS_PG_MIRROR_YとGRS_PG_MIRROR_Xの組合せはページの180度の回転を指定するために使用する。この2つのオプションはハードウェアがサポートしない場合は個別に使用することができない。
【0030】
ページ終了
グラフィックス・サービス・インタフェースは、ページ終了モジュール35を呼び出して、グラフィックス・サブシステムに現行ページの処理が完了したことを通知する。システムは、そのページを印刷し、印刷が行われると任意選択によりインタプリタ完了関数を呼び出す。部数値(cpycnt)が1より大きい場合、最後の一部が印刷された後に完了関数が呼び出される。グラフィックス・サービス・インタフェース27がページの印刷を抑止したい場合は、ページ打切りを呼び出す。
Figure 0003872558
【0031】
END_PAGE関数によって、グラフィックス・サービス・インタフェース27は印刷するページがあることを印刷エンジン・ドライバ39に通知する。END_PAGE要求は、印刷要求を待ち行列に入れた直後に返って、印刷段階中にインタプリタが実行を継続することができるようにする。最後のイメージ・コピーが印刷されたときやエラー時には、指定された完了関数が呼び出される。完了ルーチンは以下のようにして呼び出される。
Figure 0003872558
【0032】
グラフィックス・オーダ生成
一般に、グラフィックス・オーダ生成モジュール33によって処理される描画呼出しは入力データとしてビットマップ記述を予期する。この記述子の最も単純な形は、ビットマップ原点アドレスと、画素数単位のビットマップ幅と、走査線数単位のビットマップ高とを含む。ハーフトーン・パターンのビットマップ記述子は、いくつかの追加のフィールドを有し、ワード数単位のビットマップ・サイズと宛先x原点、および宛先y原点を指定する。
【0033】
ハーフトーンの宛先xおよびy原点パラメータは、ハーフトーン・ビットマップ内の宛先の原点を指定する。ハーフトーン・ビットマップが宛先より小さい場合は、それが宛先内に複製される。
【0034】
ビットマップ記述子は呼出し中にのみ使用される。アプリケーションは、前のサービス要求に影響を与えずに、後の呼出しのためにその内容を変更し、再使用することができる。
【0035】
画素を書き込むすべてのサービス要求には「pixop」パラメータが与えられる。ユーザは、宛先のみ、供給源/宛先、ハーフトーン/供給源/宛先という関係する画素のブール組合せを指定する。
【0036】
グラフィックス・メモリ管理
グラフィックス・メモリ管理モジュール41の目的は、記憶域割り振り機構にグラフィックス・オーダを与えることである。このモジュールは、フォールバック管理モジュール45が中間記憶装置なしにページ上のすべてのバンドを圧縮するのに必要な処置をとることができるように、固定量のメモリを管理する。グラフィックス・メモリ管理モジュールは、固定量のメモリをフレームに分割し、各フレームは圧縮されたバンドに必要な大きさである。1バンドについて正確に1つのフレームがあり、したがってバンドが有損失圧縮された場合、そのバンドはそのバンドに付随するフレームに格納される。グラフィックス・メモリ管理モジュール41は、各フレーム内のメモリを占有するすべてのバンドのリストを維持する。フレーム内の空間を占有する各バンドをフレームの従属者と呼ぶ。バンドを圧縮するためには、そのバンドのフレームは従属者を持っていてはならない。フォールバック管理機能は従属関係情報を使用してすべてのバンドを圧縮する順序を識別する。
【0037】
たとえば、5つのバンドがあり、したがって5つのフレームがあって、以下の従属関係があるとする。
フレーム1は従属者を持たない
フレーム2 <−3 (フレーム2はバンド3のオーダ・リスト・ブロックを持つ)
フレーム3 <−4、5(フレーム3はバンド4のオーダ・リスト・ブロックとバンド5のオーダ・リスト・ブロックを持つ)
フレーム4は従属者を持たない
フレーム5は従属者を持たない
【0038】
従属関係は、以下のように、従属者を枝、従属者がないフレームを葉として、1フレームに1つずつ1組のツリーとして表すこともできる。
【数1】
Figure 0003872558
【0039】
フレーム1、4、および5は従属者を持たず、したがって枝を持たない。このツリー構造を仮定すると、すべてのバンドを圧縮するプロセスは、すべての従属関係ツリーをたどることであり、葉によって行うべき圧縮が識別される。バンドは圧縮された後はどのフレームの従属者でもなくなり、したがってツリー構造から除去される。すべてのバンドを圧縮するプロセスは、以下の順序(左から右の順)で行われる。
【数2】
Figure 0003872558
【0040】
グラフィックス・メモリ管理モジュールは、上述の従属関係ツリーが決して以下のように循環しないように、割り振るフレームを選定しなければならない。
【数3】
Figure 0003872558
【0041】
このツリーは循環しており、したがって単純な走査が決して終了しない。グラフィックス・メモリ管理機能は、フレーム従属関係ツリーが循環しないようにしてのみメモリを割り振る。そのように仮定して、フォールバック管理機能は従属関係ツリー走査のプロセスを使用してページを有損失圧縮することができる。
【0042】
グラフィックス・メモリ管理モジュール41は、表示リスト・オーダとそれに付随するデータに記憶空間を割り振る機能を果たす。従来のグラフィックス・メモリ管理と異なる点は、構成時にきわめて大きなヒープを割り振り、そのヒープを印刷環境の需要を満たすように内部的に管理することである。グラフィクス・メモリ管理モジュール41はそのヒープを使い果たすと、オブジェクトまたはバンドあるいはその両方の圧縮をフォールバック管理機能に依存して記憶空間を再生する。したがって、グラフィックス・メモリ管理モジュールとフォールバック管理機能は両方ともこのヒープ・データ構造体と内容へのアクセスを必要とする。ヒープに加えて、グラフィックス・メモリ管理モジュール41はレンダリング/圧縮解除エンジン・モジュール55と1組のフルサイズ・バンド・バッファも共有する。
【0043】
グラフィックス・サブシステムは基本的にバンド化システムであり、1組のオーダを使用して、ページとそのページを印字するために使用するいくつかのバンド・バッファをレンダリングする。グラフィックス・サブシステム内で管理されるメモリは、オーダといくつかのバンド・バッファとを保持するヒープである。どのような構成でも最低2つのバンド・バッファが必要である。グラフィックス・メモリ管理モジュールは、構成(二重設定、解像度およびプリンタ内の合計メモリ量)に基づいてヒープ・サイズとバンド・バッファの数を決定する。
【0044】
グラフィックス・メモリ管理モジュール41は、オーダ・リストの記憶と管理用に最適化された固有のヒープ構造体からすべてのオブジェクトを割り振る。グラフィックス・メモリ管理モジュールを構成するときに、すべてのページを印刷する最低サイズの永続ヒープを割り振る。この永続ヒープが使い果たされると、グラフィックス・メモリ管理モジュールは、フォールバック管理モジュールを呼び出す前に、ブロック・メモリ管理機能51から直接さらにメモリを割り振ろうとする。これは、最低サイズを超えるプリンタ内のメモリを利用する。ここに割り振られるメモリは、永続ヒープと同様に使用されるが、システム内の他の構成要素がメモリを使い果たした場合に要求に応じて使用されることになるため、一時ヒープと呼ばれる。
【0045】
ビデオ不足予測機能
ビデオ不足予測機能47は、組込みメトリックを使用して、バンドのオーダの実行の結果としてビデオ不足になるかどうかを判断する。ビデオ不足は、グラフィックス・オーダ生成モジュール33が、連続同期出力装置のためにビデオ・ストリームを生成するのに必要な時間内にすべてのオーダを実行することができない場合に発生する。予測に使用されるメトリックは、オーダ実行手段が許容時間内に実行すると予測することができるオーダ数の単純な最大値とすることができる。それよりやや複雑なメトリックとしては、最大オーダ限界や最大メモリ・アクセス値がある。
【0046】
単純なメトリックを使用して、ビデオ不足予測機能はオーダ・リストを読み取り、各バンドの個々のオーダ数を限界値と比較する。バンドのオーダ数が限界値を超える場合、予測機能はそのバンドのオーダを実行すればビデオ不足になると結論づける。
【0047】
損失検査
損失検査モジュール49は、いずれかのバンドがすでに有損失圧縮済みになっていないかどうかを調べる。そのような条件があると、このモジュールは現行ページのすべてのバンドの有損失圧縮を強制して、ページ品質を一貫させる。
【0048】
ブロック・メモリ管理機能51は、永続ヒープを使い果たしたときに前記のようにグラフィックス・メモリ管理モジュール41によって呼び出される。本発明を理解するのに、適合するブロック・メモリ管理機能の詳細は不要である。機能的には、Unix MALLOC操作に相当することを行う。
【0049】
圧縮エンジン・モジュール53とレンダリング/圧縮解除エンジン55が、フォールバック管理モジュール45の必要に応じて実際の圧縮とレンダリング/圧縮解除を行う。本発明を理解するのにこれらのモジュールの特定の実施態様の詳細は不要である。しかし、適合する圧縮およびレンダリング/圧縮解除実施態様については、1994年10月18日出願のBi−level Image Compression By Grayscale Encodingという名称の同時係属出願第08/324682号と、1996年1月2日出願のMethod and Apparatus For Double Run−Length Encoding Of Binary Dataという名称の同時係属出願第08/582150号に記載されている。二階調以外のデータにはその他の適合する圧縮方法が使用可能である。
【0050】
本発明を理解するのに印刷エンジン・ドライバ39の適合する実施態様の詳細は不要である。しかし、そのような詳細は、このドライバを必要とする特定の印刷エンジンを知っている当業者には容易にわかるはずである。
【0051】
フォールバック管理モジュール
フォールバック管理モジュール45は、メモリあふれと予測ビデオ不足を処理する。
【0052】
メモリあふれの解決策
オーダ構築中にメモリあふれが起こることがある。その場合、オーダ構築によってフォールバック管理機能が呼び出され、メモリを解放することによってその状況を解消する。フォールバック管理機能がメモリあふれを解決する方法は5通りある。フォールバック管理機能はそれらの方法を以下に示す順序で採用する。第1の方法で問題が解決した場合は、第2の方法に進む必要はない。
1.1つまたは複数のラスタの無損失圧縮
2.すべてのラスタの有損失圧縮
3.オーダ・リストがバンドより大きい場合はバンドのプリレンダリング
4.一部のバンドの無損失圧縮
5.すべてのバンドの有損失圧縮
【0053】
フォールバック管理機能は、まず、オーダ・リスト内のラスタ・オブジェクトの表現を変更して、それらのラスタ・オブジェクトの現行ビットマップまたは走査線テーブル表現にテキストとライン・アート・オブジェクトを残すことによって、メモリあふれの解決を試みる。この手法によって、テキストおよびコンピュータ描画(ライン・アート)オブジェクトの解像度と印刷品質が保持される。無損失圧縮を適用してラスタのサイズを縮小することができる場合は、それらの品質も保持される。
【0054】
必要なメモリを獲得するためにラスタに有損失圧縮を適用しなければならない場合でも、テキストとコンピュータ描画オブジェクトの品質は維持される。さらに、オーダ・リストには各オブジェクトの識別情報も維持される。1つのラスタを有損失圧縮すると、そのページの一貫した品質を確保するためにすべてのラスタを有損失圧縮しなければならない。
【0055】
フォールバック管理機能は、方法1または2を使用して必要なメモリを獲得できない場合、オーダ・リストの実行を開始してレンダリングされたバンドを作成することによって、バンドのオーダ・リストを解放しなければならない。これが方法3である。
【0056】
方法3で不十分な場合、フォールバック管理機能は方法4に進んで、バンドの無損失圧縮を開始する。その場合でも品質は保持されるが、オブジェクト・タイプ間の区別は失われる。
【0057】
方法4でも不十分な場合、フォールバック管理機能は方法5に進む。方法5によってバンド・イメージが変わるため、有損失バンドに適用されるそれ以降のオーダは、まずそのバンドを圧縮解除してからでなければ実行することができない。1つのバンドが有損失圧縮される場合、ページ全体の一貫した品質を確保するために、印刷する前にすべてのバンドを有損失圧縮しなければならない。このステップは、ページ終了まで据え置くことができる。方法5はメモリあふれの解決に常に成功する。
【0058】
ビデオ不足の解決策
すべてのオーダが構築され、インタプリタがEND PAGE(ページ終了)を呼び出した後、END PAGEはビデオ不足予測機能を呼び出してビデオ不足の可能性がないか検査する。あるバンドについてビデオ不足が予測される場合、フォールバック管理機能にはビデオ不足を解決する方法が3通りある。フォールバック管理機能はそれらの方法を以下に示す順序で採用する。第1の方法で問題が解決された場合は、第2の方法に進む必要はない。
1.ビデオ不足が予測されたバンドをプリレンダリングする
2.ビデオ不足が予測されたバンドを無損失圧縮する
3.すべてのバンドを有損失圧縮する
【0059】
方法1では、フォールバック管理機能は、ビデオ不足が予測されるバンドに関するオーダ・リストの実行を開始する。圧縮せずにこのプロセスを完了するのに使用可能な十分なメモリがない場合、フォールバック管理機能は方法2に進む。
【0060】
方法2では、フォールバック管理機能は方法1でプリレンダリングされた1つまたは複数のバンドの無損失圧縮を開始する。フォールバック管理機能は、不足が予測されたすべてのバンドがプリレンダリングされるまで方法1と2の間を反復する。無損失圧縮ができなかった場合、フォールバック管理機能は方法3に進む。
【0061】
方法3で使用される有損失圧縮によって、使用可能なメモリ内ですべてのバンドを圧縮することができるように保証されるため、この方法は失敗することがない。
【0062】
ラスタ圧縮
ラスタ圧縮は、フォールバック管理機能の要求に応じて圧縮エンジン53によって行われる。ラスタ圧縮の目的は、オーダ構築をさらに行うと同時にオーダ・リストを維持するために、メモリを解放することである。
【0063】
無損失ラスタ圧縮
無損失圧縮は、未圧縮ラスタのみに対して行われる。この圧縮は、フォールバック管理機能の指示により圧縮エンジン53が行う。フォールバック管理機能は、解放する目標バイト数を持っており、そのバイト数が解放されるかまたは無損失圧縮が失敗するまでラスタの圧縮を続ける。また、フォールバック管理機能は、圧縮されたラスタを、グラフィックス・メモリ管理機能によってラスタが存在するフレームに割り振られた空間内のホールまたは未使用メモリに入れようとする。未使用空間またはホールが見つからない場合、圧縮出力データに一時的なスクラッチ空間が使用される。ラスタ・オブジェクトが圧縮されると、未圧縮の供給源が解放され、プロセスを継続した場合にその後で使用するための未使用空間またはホールができる。
【0064】
圧縮プロセスには以下の規則と優先順位が適用される。
1.まず、前に圧縮されていない最大ラスタ数を有する1つまたは複数のフレーム内のラスタを圧縮する。
2.ホールに近接するラスタを先に圧縮してより大きなホールを作る。
3.フレームの上から下の順にラスタを圧縮し、それによって、ホールができるときにラスタのセットがフレームの先頭方向に縮められるようにする。
4.ホールが存在しない場合、ラスタをスクラッチ空間に圧縮し、次に、未圧縮ラスタが前に占有していた場所に圧縮済み出力を戻す。これによって、未圧縮ラスタと圧縮済みラスタとの間の差のサイズのホールができる。
【0065】
有損失ラスタ圧縮
有損失ラスタ圧縮は、無損失ラスタ圧縮と同様に機能するが、結果が予測可能であり、圧縮できないことがない点が異なる。
【0066】
バンドのプリレンダリング
バンドのプリレンダリングは、バンドのオーダ・リストを実行してそのバンドの印刷可能イメージを作成することから成る。この操作はレンダリング・エンジン55が行う。オーダ・リストの実行は、バンドがEND PAGEの後にレンダリングされた場合と同じである。
【0067】
バンド圧縮
バンド圧縮とは、レンダリング済みバンドの圧縮を指す。すなわち、バンドのオーダ・リストを実行し、その結果のバンド・バッファを圧縮しなければならない。レンダリング・エンジン55がオーダ・リストを実行し、圧縮エンジン53が圧縮を行う。ラスタ圧縮の場合と同様、有損失バンド圧縮に進む前に無損失バンド圧縮を試みる。いずれかのバンドが有損失圧縮されると、ページ・イメージ全体で一貫した品質が得られるようにすべてのバンドを有損失圧縮しなければならない。
【0068】
バンド圧縮は、より優先される方法が失敗した場合にメモリあふれに応答してオーダ構築中に使用されるか、またはビデオ不足が予測された場合にEND PAGE処理中に使用される。いずれの場合も、バンド圧縮の目的はプロセスの継続を可能にするのに必要なメモリ量を解放することである。
【0069】
無損失バンド圧縮
バンド圧縮が必要な場合は無損失バンド圧縮が好ましいが、それは印刷品質が維持され、したがってフォールバック管理機能にすべてのバンドを強制的に圧縮させないためである。メモリあふれの場合、バンド圧縮によってメモリが解放され、それをヒープ内のオーダ・リストに追加のオーダを収容するために使用することができる。これは、以下の2通りの方法で行うことができる。
1.新しいオーダを格納するのに十分な空間が解放されるまでバンドを圧縮する
2.新しいオーダをただちにバンド・バッファにレンダリングしてバンドを圧縮し、新しいオーダの出力を組み込む。
【0070】
第1の方法の方が、多くの新しいオーダを収容するのに十分なメモリを迅速に解放することができるため、好ましい。第2の方法は、本質的にページ上のいくつかのバンド・バッファをキャッシュする(他のすべてのバンドは圧縮される)ため、バンド・キャッシングと呼ぶ。効率的に機能するためには、キャッシュされたバンドに新しいオーダが頻繁にヒットしなければならず、そうでない場合には圧縮/圧縮解除シーケンスが頻繁になる。最小メモリ構成では、1つのキャッシュ・バンドのみが使用可能である。
【0071】
1つのバンドしかキャッシュすることができないと仮定すれば、無損失バンド圧縮は主として方法1に依存するが、実際には両方の方法の組合せである。バンドが圧縮された後、そのバンドの新しいオーダ・リストには1つの圧縮解除オーダがある。メモリが使用可能な限りは、そのバンドの新しいオーダが単にリストに追加されるだけである。メモリが使い果たされた場合、レンダリングされたバンド・バッファは、その新しいオーダがレンダリングされるだけでよい。その後、バンド・バッファを再圧縮して、(方法2で行われるように)すべての新しいオーダを組み込むことができる。したがって、アルゴリズムは厳密には方法1から着手するが、その後で方法2に移行し、圧縮データをヒープに戻して収まり切らない場合には、最終的に失敗することがある。その時点で有損失バンド圧縮が開始される。
【0072】
バンド圧縮を使用してビデオ不足を解決する場合、元のオーダ・リストを置き換えなければならない。無損失圧縮されたバンドは依然としてビデオ不足の場合がある。その場合、完全にレンダリングされたバンド自体が、可能なバンドの唯一の無損失表現である。圧縮エンジン53が使用するバンド圧縮アルゴリズムは、この状況を識別して、レンダリングされたバンド全体が収まるように空間を解放しようとする。
【0073】
有損失バンド圧縮
無損失バンド圧縮から有損失バンド圧縮への移行は、圧縮エンジン53の無損失アルゴリズムの1つが、必要なメモリ量を解放することができない場合に起こる。有損失バンド圧縮では、ネイティブ・フレームを使用して圧縮済みバンドを保持する。フレーム・サイズは有損失圧縮比と整合するため、収容されることがわかる。さらに、有損失圧縮されたバンドにはビデオ不足はない。これは、ページの最終表現であり、基礎となるハードウェアによって成功が保証される。有損失バンド圧縮の主な目的は、デッドロックなしに、最小量のデータ・ブロック・コピーですべてのバンドを圧縮することができるように保証することである。有損失バンド圧縮は、まだヒープに収まらないバンドが1つある状態で開始されることに留意されたい。これが以下のアルゴリズムによって得られる有損失バンド圧縮の開始対象である。
【0074】
本発明と共に使用するのに適したフォールバック管理モジュールの実施態様に関する本発明の動作態様および詳細について、図3、図4、および図5を参照しながら以下に説明する。
【0075】
まず図3を参照し、以下の略語が使用されていることに留意されたい。
ENDPG=オーダ生成完了
OM=メモリ切れ条件検出
VU=ビデオ不足予測
【0076】
状態61は、プリンタ言語インタプリタ25がENDPGコマンドを発行するまでグラフィックス・オーダ生成モジュール33によってオーダ・リストにオーダが追加される、正常なオーダ構築状態である。ENDPGが発生すると、ビデオ不足の可能性がないか検査される。ビデオ不足予測機能47がビデオ不足条件が存在する可能性があると判断した場合、状態63への移行が行われる。
【0077】
メモリ切れ条件が生じた場合、オーダ・リストにラスタがないか検査される。ラスタは画素値の配列である。どのような画像もラスタとして表現することができるが、パーソナル・コンピュータまたはワークステーションのドライバ17(図1参照)は典型的にはプリンタに写真イメージを送るためにラスタを使用する。二階調イメージの場合、ラスタ内の画素値はそれぞれ1ビットであり、0または1の値を有する。1画素当たり複数画素のグレイスケールまたはカラーのイメージの場合、画素値は0から、1画素当たりビット数単位で表すことができる最大値(典型的には16、64、256など)までの範囲である。
【0078】
本発明によると、インタプリタは以下の呼出しを使用してシステムにラスタを供給する。
【表2】
Figure 0003872558
ラスタがある場合、状態65への移行が行われる。ラスタがない場合、状態63への移行が行われる。
【0079】
状態65の間に、圧縮エンジン53によってラスタが空きメモリと比較され、グラフィックス・オーダ生成モジュール33によってオーダ・リストにオーダの追加が続けられる。メモリ切れ条件が発生すると、状態67への移行が起こる。ビデオ不足予測機能47によってENDPGでビデオ不足条件の可能性が検出された場合には、状態67への移行も行われる。
【0080】
状態67では、圧縮エンジン53によって無損失圧縮が行われ、メモリを解放するために1つまたは複数のバンドが圧縮される。成功した場合、グラフィックス・オーダ生成モジュール33はオーダ・リストへのオーダの追加を続ける。無損失圧縮によってバンド・バッファにあふれが生じた場合、状態69への移行が行われる。なお、無損失圧縮の有効性はデータによって異なることに留意されたい。場合によっては、無損失圧縮方法によって、入力データより大きな出力データが生じることがある。これは、無損失圧縮の失敗を引き起こす原因である。1994年10月18日出願のBi−level Image compression By Grayscale Encodingという名称の同時係属出願第08/324682号に記載されているグレイスケール・コード化圧縮のような有損失圧縮は、予測可能なより小さい出力データを生じさせる。
【0081】
状態63には前述のように移行する。状態67の場合と同様に、バンドの無損失圧縮の失敗によって、状態69への移行が起こる。
【0082】
状態69は、圧縮エンジン53によって行われる有損失バンド圧縮を使用して、ページ・データをメモリに収めることができ、リアルタイムでイメージ生成することができるように保証されるため、失敗はあり得ない。この状態になった後は、ページ全体が有損失圧縮を使用して圧縮されることになる。しかし、この最終ステップは、ENDPGに達するまで据え置かれる。目標バンド・バッファを圧縮解除してただちにイメージ生成するよりも、オーダ・リストに追加する方が効率的である。
【0083】
状態71で、圧縮エンジン53とレンダリング/圧縮解除エンジン55によって有損失バンド圧縮の完了が処理される。
【0084】
無損失圧縮の有効性はデータにより異なる。場合によっては無損失圧縮方法によって入力データより大きな出力データが生成されることがある。
【0085】
図4に、グラフィックス・オーダ生成処理中にフォールバック管理モジュール45がメモリあふれを処理するために用いる流れを示す。グラフィックス・メモリ管理モジュール41の判断により呼出しによってメモリあふれが生じる場合(ブロック81)、待つことによってメモリが使用可能になるかどうかが判断される(ブロック83および85)。この判断は、現在イメージ生成と印刷が行われている前のページがあるかどうかを調べることによって行われる。進行中の前のページがある場合、それらのページの印字と出力が行われればメモリが使用可能になる。ページに圧縮可能なラスタがある場合(ブロック89)、圧縮エンジン53は可能であれば無損失圧縮を行い、無損失圧縮が可能でない場合には有損失圧縮を行う(ブロック91)。ページに圧縮可能ラスタがあるかどうかの判断は、オーダ・リストを探索して未圧縮ラスタを探すことによって行われる。ページに圧縮可能ラスタがない場合(ブロック89)、圧縮エンジン53は可能であれば無損失バンド圧縮を行い、無損失バンド圧縮が可能でない場合は有損失バンド圧縮を行う(ブロック91)。バンドについてこの圧縮が行われた後、フォールバック管理機能が、空きメモリが次のオーダを追加するのに必要な最小値を超えているか調べる(ブロック93)。空きメモリが最小値を超えると、グラフィックス・オーダ生成モジュール33によって次のオーダを処理することができる(ブロック95)。空きメモリが最小値を超えない場合、さらに圧縮が行われる(ブロック91)。
【0086】
図5に、ページ終了処理中にフォールバック管理モジュール45が可能性のあるビデオ不足を解消するために用いる流れを示す。損失検査49によってバンドの有損失圧縮が必要であると判断された場合(ブロック101)、圧縮エンジン53とレンダリング/圧縮解除エンジン55がすべてのバンドを有損失圧縮する(ブロック103)。次に、ビデオ不足予測機能47がビデオ不足バンドを予測した場合(ブロック105)、グラフィックス・メモリ・モジュール41がビデオ不足バンドを完全にイメージ生成するのに十分なメモリがあるかどうかを調べる(ブロック107)。十分なメモリがある場合、圧縮エンジン53とレンダリング/圧縮解除エンジン55は予め不足のバンドをプレレンダリングする(ブロック109)十分なメモリがない場合、グラフィックス・メモリ管理モジュールを使用して、ビデオ不足バンドを無損失圧縮するのに十分なメモリがあるかどうかを判断する(ブロック111)。ある場合には、圧縮エンジン53とレンダリング/圧縮解除エンジン55が不足バンドを無損失圧縮する(ブロック113)。ない場合には、圧縮エンジン53とレンダリング/圧縮解除エンジン55はすべてのバンドを有損失圧縮する(ブロック103)。
【図面の簡単な説明】
【図1】 本発明を使用することができるシステム全体を示すブロック概要図である。
【図2】 本発明のサブシステムのモジュールを示すブロック図である。
【図3】 本発明のサブシステムによる処理を示す状態図である。
【図4】 グラフィックス・オーダ生成呼出しのために本発明のサブシステムのフォールバック管理モジュールによって行われる処理を示すブロック図である。
【図5】 ページ終了呼出しのために本発明のサブシステムのフォールバック管理モジュールによって行われる処理を示すブロック図である。
【符号の説明】
11 パーソナル・コンピュータまたはワークステーション
13 ラスタ・プリンタ
15 アプリケーション
17 プリンタ・ドライバ
19 コントローラ・サブシステム
21 印刷エンジン
25 ページ記述言語インタプリタ
27 グラフィックス・サービス・インタフェース
31 新規ページ・モジュール
33 グラフィックス・オーダ生成モジュール
35 ページ終了モジュール
39 印刷エンジン・ドライバ
41 グラフィックス・メモリ管理モジュール
45 フォールバック管理モジュール
47 ビデオ不足予測機能
49 損失検査モジュール
51 ブロック・メモリ管理機能
53 圧縮エンジン・モジュール
55 レンダリング/圧縮解除エンジン・モジュール

Claims (10)

  1. ラスタ表現を生じさせるラスタ・オブジェクトを含む基本イメージ表現をそれぞれ生じさせる複数のオブジェクトを含むオーダ・リストをそれぞれ有する複数のバンドからなるイメージ・データであって、メモリに格納されたイメージ・データを、連続同期ラスタ・イメージ出力装置に出力するよう構成したシステムにおいて、
    前記メモリが前記イメージ・データを格納するに十分な大きさを有しているか否かを判断する判断手段と、
    この判断手段が「不十分」と判断したときに、該イメージ・データを、
    (1)1つまたは複数のラスタ・オブジェクトの無損失圧縮、
    (2)すべてのラスタ・オブジェクトの有損失圧縮、
    (3)前記(1)、(2)でなお不十分な場合は該イメージ・データ内のバンドのプリレンダリング、
    (4)前記イメージ・データ内の一部のバンドの無損失圧縮、および
    (5)該イメージ・データ内のすべてのバンドの有損失圧縮
    の順で処理する圧縮手段と
    を備え、さらに、
    この圧縮手段は、前記(1)〜(4)のいずれかの処理により前記「不十分さ」が解消した場合にはそれ以降の処理を行わないことを特徴とするシステム。
  2. 請求項1記載のシステムにおいて、さらに、
    前記イメージ・データのいずれかのバンドがビデオ不足を生じるか否かを判断する判断手段と、
    この判断手段が「ビデオ不足を生じる」と判断したときに、
    (1)ビデオ不足が予測されたバンドをプリレンダリングする
    (2)ビデオ不足が予測されたバンドを無損失圧縮する
    (3)すべてのバンドを有損失圧縮する
    の順で、前記イメージ・データを処理して「ビデオ不足」を解決するビデオ不足解決手段と
    を備え、さらに、
    このビデオ不足解決手段は、前記(1)〜(2)のいずれかの処理により前記「ビデオ不足」が解決した場合にはそれ以降の処理を行わないことを特徴とするシステム。
  3. コンピュータ・プログラムによって生成された記述データから、連続同期ラスタ・イメージ出力装置のドライバによって使用されるイメージ・データを生成する方法であって、
    a)前記記述データ内のコマンドを受け取り、前記コマンドのそれぞれを新規ページ・コマンドと描画コマンドとページ終了コマンドとのうちの1つとしてコマンド処理手段に渡すステップと、
    b)前記コマンド処理手段によって、前記新規ページ・コマンドを処理するステップと、
    c)前記コマンド処理手段によって、前記描画コマンドを処理し、前記イメージ・データのバンドを表すグラフィックス命令を生成するステップと、
    d)前記コマンド処理手段によって、前記ページ終了コマンドを処理するステップと、
    メモリ管理手段により、前記描画コマンドの処理において使用されるようにメモリの割り振りを管理するステップであって、このステップが
    f1)前記イメージデータのバンドを前記出力装置のドライバに、該出力装置が必要とする速度で供給することができるようにするために前記メモリに前記バンドを記憶する無損失圧縮および有損失圧縮を行うよう構成された圧縮手段によって、該バンドを圧縮する必要があるか否かを判断するステップをさらに有し
    f2この判断ステップにおいて、「圧縮が必要」と判断されたときに、前記バンドを含むイメージ・データを、
    (1)1つまたは複数のラスタ・オブジェクトの無損失圧縮、
    (2)すべてのラスタ・オブジェクトの有損失圧縮、
    (3)前記(1)、(2)でなお不十分な場合はバンドのプリレンダリング、
    (4)一部のバンドの無損失圧縮、および
    (5)すべてのバンドの有損失圧縮
    の順で処理する圧縮ステップ
    を実行するよう構成され、さらに、
    この圧縮ステップにおいて、前記(1)〜(4)のいずれかの処理により「さらなる圧縮は不要」となった場合にはそれ以降の処理を行わないことを特徴とする方法。
  4. 請求項3記載の方法において、前記ページ終了コマンドを処理するステップが、さらに、
    前記イメージ・データのいずれかのバンドがビデオ不足を生じるか否か判断する判断ステップを有し、
    この判断ステップにおいて「ビデオ不足を生じる」と判断されたときに、
    (1)ビデオ不足が予測されたバンドをプリレンダリングする
    (2)ビデオ不足が予測されたバンドを無損失圧縮する
    (3)すべてのバンドを有損失圧縮する
    の順で、前記イメージ・データを処理して「ビデオ不足」を解決するビデオ不足解決ステップ
    を実行するよう構成され、さらに、
    このビデオ不足解決ステップにおいては、前記(1)〜(2)のいずれかの処理により前記「ビデオ不足」が解決した場合にはそれ以降の処理を行わないことを特徴とする方法。
  5. 請求項3記載の方法において、
    前記ページ終了コマンドを処理するステップが、オーダ・リスト状態、有損失ラスタ+オーダ・リスト状態、有損失ラスタ+無損失バンド+オーダ・リスト状態、すべての有損失バンド状態のいずれかを経てページを印字するステップを含む方法。
  6. 請求項3記載の方法において、
    前記コマンド処理手段が、ページ記述言語の呼出しを処理すると共に該呼出しを新規ページコマンド処理手段、描画コマンド処理手段及びページ終了コマンド処理手段によって使用可能な形式に変換する手段を有する方法。
  7. 請求項6記載の方法において、
    前記新規ページ・コマンド処理手段が、後続のグラフィックス・コマンドによって生成されるページを定義するモジュールを有する方法。
  8. 請求項6記載の方法において、
    前記描画コマンド処理手段が、ビットマップ記述子をグラフィックス命令に変換するモジュールを有する方法。
  9. 請求項3記載の方法において、
    前記メモリの割り振りを管理するステップが、表示リスト命令及びその関連データとして表されるグラフィックス情報バンドを生成することと、出力すべきイメージ・データの全ページが前記出力装置に出力されるよう事前構成されたヒープを管理することを含んでいる方法。
  10. 請求項3記載の方法において、
    処理済みのイメージ・データの前記出力装置による出力を待ったとしても前記メモリが十分にならない場合に圧縮を行う方法。
JP09434597A 1996-03-29 1997-03-31 メモリ削減技法を使用したページ生成のためのフォールバック処理 Expired - Fee Related JP3872558B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/623,977 US5793937A (en) 1996-03-29 1996-03-29 Fallback processing for page generation using memory reduction techniques
US08/623977 1996-03-29

Publications (2)

Publication Number Publication Date
JPH10116160A JPH10116160A (ja) 1998-05-06
JP3872558B2 true JP3872558B2 (ja) 2007-01-24

Family

ID=24500113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09434597A Expired - Fee Related JP3872558B2 (ja) 1996-03-29 1997-03-31 メモリ削減技法を使用したページ生成のためのフォールバック処理

Country Status (4)

Country Link
US (1) US5793937A (ja)
EP (1) EP0798665B1 (ja)
JP (1) JP3872558B2 (ja)
DE (1) DE69730892T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6320667B1 (en) * 1996-12-27 2001-11-20 Canon Kabushiki Kaisha Information processing apparatus and method for transmitting printing information, and recording medium readable by a computer storing a program for transmitting printing information
US5999709A (en) * 1997-04-18 1999-12-07 Adobe Systems Incorporated Printer memory boost
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US6665728B1 (en) * 1998-12-30 2003-12-16 Intel Corporation Establishing optimal latency in streaming data applications that use data packets
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
US6952215B1 (en) 1999-03-31 2005-10-04 International Business Machines Corporation Method and system for graphics rendering using captured graphics hardware instructions
JP4500393B2 (ja) * 1999-12-28 2010-07-14 キヤノン株式会社 画像形成システム、情報処理装置、及び、画像処理装置の制御方法
JP2001287414A (ja) * 2000-04-05 2001-10-16 Sony Corp データ変換装置及び方法、印刷装置及び方法、印刷制御装置及び方法、印刷システム及び印刷方法、データ伝送方法
US6728852B1 (en) * 2000-06-30 2004-04-27 Sun Microsystems, Inc. Method and apparatus for reducing heap size through adaptive object representation
US6982800B1 (en) 2000-07-05 2006-01-03 Lexmark International, Inc. Apparatus and method for data management within a photoprinter
US7006243B2 (en) * 2001-08-08 2006-02-28 Hewlett-Packard Development Company, L.P. Web-based imaging system providing means of accessing content individually
US20030056146A1 (en) * 2001-09-14 2003-03-20 Freeman Tracy K. Method for suggesting corrective action in response to resource constraint
US20030212652A1 (en) * 2002-05-10 2003-11-13 Gold Kevin C. Max, min determination of a two-dimensional sliding window of digital data
US7551787B2 (en) 2003-01-28 2009-06-23 International Business Machines Corporation Adaptive compression quality
JP2004351732A (ja) * 2003-05-29 2004-12-16 Oki Data Corp 画像処理装置及び画像形成装置
US8164785B2 (en) * 2004-06-15 2012-04-24 Sharp Laboratories Of America, Inc. Method and apparatus for selecting printing devices according to resource availability
US7821657B2 (en) * 2004-09-14 2010-10-26 Sharp Laboratories Of America, Inc. Continuous raster image processing control across print jobs
US7660962B2 (en) * 2005-12-15 2010-02-09 International Business Machines Corporation Use of memory compression algorithm to assess efficiency of memory usage
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US8085426B2 (en) 2006-11-22 2011-12-27 Sharp Laboratories Of America, Inc. Intelligent page buffer allocation
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
US20090244597A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Print system for optimizing size based on remaining pages
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
JP2011126210A (ja) * 2009-12-18 2011-06-30 Canon Inc 印刷データ処理装置、印刷データ処理方法、およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470782B1 (en) * 1990-08-08 1996-02-14 The Peerless Group Image rendering process and apparatus
EP0533343B1 (en) * 1991-09-16 1997-06-11 Advanced Micro Devices, Inc. System and method for data management
US5150454A (en) * 1991-10-16 1992-09-22 Patrick Wood Printing system and method
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5483622A (en) * 1992-09-03 1996-01-09 Hewlett-Packard Company Page printer having automatic font compression
US5539865A (en) * 1992-11-10 1996-07-23 Adobe Systems, Inc. Method and apparatus for processing data for a visual-output device with reduced buffer memory requirements
US5602976A (en) * 1993-02-23 1997-02-11 Adobe Systems Incorporated Method and apparatus for saving printer memory

Also Published As

Publication number Publication date
DE69730892T2 (de) 2005-10-06
US5793937A (en) 1998-08-11
JPH10116160A (ja) 1998-05-06
EP0798665A3 (en) 1999-07-21
EP0798665B1 (en) 2004-09-29
EP0798665A2 (en) 1997-10-01
DE69730892D1 (de) 2004-11-04

Similar Documents

Publication Publication Date Title
JP3872558B2 (ja) メモリ削減技法を使用したページ生成のためのフォールバック処理
JP3454552B2 (ja) ページ表現をページ上に生成するためのデータの生成方法およびそのためのシステム
US5500928A (en) Digital printing system and process using adaptive compression
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
US6286088B1 (en) Memory management system and method for relocating memory
US8373903B2 (en) Efficient implementation of raster operations flow
JP2000043348A (ja) 印刷装置
JPH11245453A (ja) 画像形成装置
JPH10329371A (ja) プリンタメモリブースト
KR100392548B1 (ko) 프린터내의메모리적응할당방법및시스템
US7170628B2 (en) Efficient processing of images in printers
JPH11157146A (ja) 印刷装置の画像処理方法および印刷装置
JP4425837B2 (ja) 画像形成装置
AU2016277671A1 (en) Method of controlling memory usage in a graphics rendering system
US7324229B2 (en) Rendering in a printer using bands
US8064073B2 (en) Adaptive rasterizer buffer
JPH11188932A (ja) 印刷制御装置および印刷制御装置のバンド処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP4467715B2 (ja) 画像出力制御装置及び方法
JP2683506B2 (ja) データ圧縮方法及び装置、データ伸長方法及び装置
JP2002120418A (ja) プリンタ装置及び該プリンタ装置を備えた画像処理装置
JPH11265438A (ja) 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP3406705B2 (ja) 辞書操作方法
JPH113184A (ja) 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2000033730A (ja) 印刷装置とその制御方法及び印刷システム
JPH10147016A (ja) 画像処理装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060829

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: 20061003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061020

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: 20101027

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131027

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees