JP2000511364A - 表示データ用の格納条件を減少させる方法及び装置 - Google Patents
表示データ用の格納条件を減少させる方法及び装置Info
- Publication number
- JP2000511364A JP2000511364A JP09502052A JP50205297A JP2000511364A JP 2000511364 A JP2000511364 A JP 2000511364A JP 09502052 A JP09502052 A JP 09502052A JP 50205297 A JP50205297 A JP 50205297A JP 2000511364 A JP2000511364 A JP 2000511364A
- Authority
- JP
- Japan
- Prior art keywords
- data
- band
- area
- data object
- compression
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/181—Receiving print data characterized by its formatting, e.g. particular page description languages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1849—Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
- G06K15/1851—Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives parted in a plurality of segments per page
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
- G06K15/1865—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by compressing the rasterized print data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—Two-dimensional [2D] image generation
- G06T11/60—Creating or editing images; Combining images with text
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0062—Handling the output data combining generic and host data, e.g. filling a raster
- G06K2215/0065—Page or partial page composition
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0062—Handling the output data combining generic and host data, e.g. filling a raster
- G06K2215/0071—Post-treatment of the composed image, e.g. compression, rotation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Discrete Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Record Information Processing For Printing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
Abstract
(57)【要約】
コンピュータシステム(12)上の表示データに対する格納条件を減少させる方法及び装置。表示されるべきデータオブジェクト(22)を表示リストに編成し且つ各データオブジェクトは、例えばテキスト、グラフィック、画像のようなオブジェクト型を有している。データオブジェクト(22)を非圧縮バンドバッファ内にラスター化させ且つ各々が1つ又はそれ以上のオブジェクト型で識別されている交差することのないビットマップ領域へ分割する。各非空領域に該領域の型に依存して圧縮アルゴリズムを割り当て且つ圧縮拘束条件を特定する。該領域を、適宜、より大きな領域へ互いに結合させ、且つ各領域をそれに割り当てられた圧縮アルゴリズムを使用して圧縮バンドバッファ内へ圧縮させ、従って該データオブジェクトに対して必要とされる格納空間を減少させる。圧縮データを割り当てられた圧縮アルゴリズムに対応する選択した脱圧縮アルゴリズムでスキャンライン順に脱圧縮し圧縮されていない出力データを発生させる。この圧縮されていない出力データを表示するために出力表示装置(16)へ供給する。
Description
【発明の詳細な説明】
表示データ用の格納条件を減少させる方法及び装置関連出願への相互参照
本出願は本出願の譲受人に譲渡されている発明者がRonald S.Gen
tileの「減少させたバッファメモリ条件で視覚的出力装置用のデータを処理
する方法及び装置(Method and Apparatus for Pr
ocessing Data for A Visual−Output De
vice with Reduced Buffer Memory Requ
irements)」という名称の1992年11月10付で出願した係属出願
中の米国特許出願第07/974,204号の一部係属出願であり、それを引用
により本明細書に取込む。発明の背景
本発明は、大略、出力装置によるデータの表示に関するものであって、更に詳
細には、出力表示装置上にデータを表示する場合にメモリ格納条件を減少させる
方法及び装置に関するものである。
コンピュータシステムは広く多様の出力表示装置へデータを出力させることが
可能である。例えばレーザプリンタ、プロッタ及びその他の印刷装置等の出
力表示装置は、用紙等の上に画像即ち「視覚的表現(visual repre
sentation)」を発生させ、一方例えばコンピュータモニタ等の出力表
示装置はコンピュータスクリーン上に視覚的表示を展開させる。
多くの出力表示装置は「ビットマップ」又は「ピクセルマップ」の形態で表示
データを受取り且つ該表示データから視覚的表現を発生する。ピクセルは表示装
置によって発生される視覚的表現の基本的なピクチャ要素であり、且つビットマ
ップは、該表現のピクセル数に関する情報を包含するデータ構造である。オン/
オフ情報を超えるものを包含するビットマップは、しばしば、「ピクセルマップ
」と呼ばれる。本明細書において使用されるように、ビットマップ及びピクセル
マップの両方は「ビットマップ」として言及する。
プリンタはビットマップの情報に対応して用紙上にドットをプリントすること
が可能である。一方、コンピュータモニタはビットマップの情報に基づいてピク
セルを照明することが可能である。「ラスター」出力装置はビットマップから行
及び列の形態で配列されている複数個のピクセルからなるアレイを表示すること
によって視覚的表現を形成する。プロッタ以外の殆どの出力装置はラスター出力
装置である。
典型的に、プリントしたか又は表示したページに対応する複数個のピクセルから
なる「ページ」が受け取られ且つ該ピクセルが出力表示装置によって表示される
前にメモリ内に格納される。
視覚的表現はテキスト、グラッフィクス、写真画像等を包含する多数の画像の
型を有することが可能である。これらの型のデータは、ハイレベル「オブジェク
ト」としてその他の画像情報と共にファイル内に効率的に格納することが可能で
ある。本明細書において使用される場合には、「オブジェクト(object)
」とは特定の視覚的表現を定義するデータ及び属性である。該オブジェクトをコ
ンピュータ上で走るアプリケーションプログラム(ソフトウエア)を使用して編
集するか又はその他の態様で処理することが可能である。該オブジェクトを例え
ばプリンタ又はディスプレイスクリーン等の出力表示装置で表示する場合には、
該オブジェクトは、典型的に、最初にビットマップへラスター化(即ち「レンダ
リング(rendering)」)される。出力表示装置は該データを表示する
前に表示ビットマップデータをメモリ内に格納する。
出力表示装置へビットマップを供給する従来の方法における1つの問題は、表
示させる前にビットマップを格納するために大量の格納空間が必要とされ
るということである。格納空間に対する条件は、より現実的な属性を有する高分
解能表現に対する要望がより顕著なものとなるにつれより大きなものとなってい
る。例えば、600ドットパーインチ(dpi)の分解能で黒白画像をプリント
することの可能なレーザプリンタを使用する場合には、典型的な表示されるペー
ジは約3.8×106バイトのメモリを必要とする。例えば、ピクセルあたりの
カラー当り8ビットを有するカラーピクセルからなる1ページをプリントする場
合に、メモリ条件は約121×106バイトのメモリへ増加する。このようなメ
モリ条件では、例えばレーザプリンタ等の出力表示装置を製造するコストのかな
りの部分が必要とされるメモリのコストとなる。
高分解能画像を表示するためのメモリ条件を減少させるために使用されている
方法は、コンプレッション(compression)即ち圧縮方法又はアルゴ
リズムに従ってビットマップの圧縮を行なうものである。圧縮アルゴリズムはビ
ットマップ又はその他のオブジェクトから情報を除去することによってビットマ
ップを格納するのに必要な空間を著しく減少させることが可能である。ある圧縮
アルゴリズムは「無損失性」であって、それは基本的な情報を失うことなしにデ
ータを圧縮し且つ格納条件を減
少させることを意味している。このタイプの圧縮は、しばしば、テキストオブジ
ェクト等と共に使用される。何故ならばテキストのキャラクタコードは、しばし
ば、テキストキャラクタの同一性に無関係なエキストラな情報を包含しているか
らである。その他のタイプの圧縮アルゴリズムは「損失性」であって、それは情
報のある程度の損失を伴ってデータを圧縮することを意味している。これらのタ
イプの圧縮アルゴリズムは、典型的に、画像ビットマップデータと共に使用され
る。何故ならば、高分解能画像においては情報の損失は、しばしば、気が付かな
い場合があるからである。圧縮ビットマップを表示すべき場合には、対応するデ
コンプレッション(decompression)即ち脱圧縮アルゴリズムを使
用して脱圧縮し且つプリントエンジン、モニタ又はその他の出力表示装置へ送給
する。
従来技術の圧縮方法における1つの問題は、異なるタイプのオブジェクトが出
力表示装置によって表示されるべき場合に発生する。例えば、1ページのデータ
は、例えば単語又はパラグラフ等のテキストオブジェクトと、例えば棒グラフ又
は幾何学的形状等のグラフィックスオブジェクトと、例えばデジタル化した写真
等の画像オブジェクトを包含する場合がある。テキストオブジェクトにとって良
好な圧縮
アルゴリズムは、例えば、画像オブジェクトに対しては適切でない場合があり且
つその逆の場合もある。例えば、損失性圧縮技術はそれが画像オブジェクトデー
タを高度に圧縮することが可能であるという点において画像オブジェクトにとっ
て適切な場合があるが、失われたデータが明らかとなるようなテキストオブジェ
クトにとっては適切でない場合がある。無損失性圧縮技術はテキストオブジェク
トにとってよいものであるが、画像オブジェクトを適切に圧縮できない場合があ
る。従って、単一の圧縮アルゴリズムの選択は混合オブジェクトタイプの最適な
ものとは言えない圧縮となる。発明の要約
本発明は、減少させた格納条件で表示データを格納する方法及び装置を提供し
ている。本発明は、ユーザの拘束条件に従ってオブジェクトの各型(即ち、タイ
プ)に対して最適化させた圧縮メカニズムを使用して複数個の型のデータオブジ
ェクトを圧縮する。圧縮されたオブジェクト(即ち、圧縮オブジェクト)は、次
いで、関連する脱圧縮メカニズムを使用して脱圧縮させ且つ表示のために出力表
示装置へ送給する。
本発明の装置は、選択的オブジェクト圧縮及び脱圧縮を具備するデジタル出力
処理システムを包含し
ている。ラスタライザーがデータオブジェクトを種々の型のビットマップオブジ
ェクトへ変換する。圧縮器がビットマップオブジェクトを選択した圧縮メカニズ
ムで圧縮する。選択された特定の圧縮メカニズムは、少なくとも部分的に、圧縮
される特定のビットマップオブジェクトの型に依存する。例えば、ビットマップ
オブジェクトがテキスト型、グラフィックス型、又は画像型である場合には、夫
々、テキスト、グラフィックス又は画像データに対して最も適した圧縮メカニズ
ムが選択される。圧縮メカニズムの選択は、更に、圧縮データを格納するために
使用可能なメモリの寸法及び全体的なページ(頁)解析に依存する。圧縮器は圧
縮したビットマップ領域(即ち、圧縮ビットマップ領域)を発生し且つ該圧縮ビ
ットマップ領域を出力装置と関連するデジタル読取/書込メモリ内に格納する。
次いで、脱圧縮器が該圧縮ビットマップ領域を選択した圧縮メカニズムによって
決定される選択された脱圧縮メカニズムで脱圧縮させる。特定の圧縮ビットマッ
プ領域に対する脱圧縮メカニズムはそのビットマップ領域を圧縮するために使用
した圧縮メカニズムに依存する。次いで、脱圧縮器は圧縮されていないビットマ
ップ領域を表示するために出力表示装置へ供給する。適宜の出力表示装置はプリ
ンタ装置及びディスプレイスク
リーンを包含している。
本発明の装置へ入力されるデータオブジェクトは、「バンド(band)」と
呼ばれる複数個のセクションを有する少なくとも1ページ内に編成させる。該バ
ンドは、好適には、該ページ上の表示順番を有しており、且つ該ページのバンド
はその表示順番において出力表示装置によって表示される。データオブジェクト
は該ページのバンドに対応して表示リスト内に格納される。好適には、該バンド
内のビットマップオブジェクト及びその他のバックグラウンドデータはラスタラ
イズ即ちラスター化され且つ該バンドをカバーする交差することのないビットマ
ップ領域内に分割される。該領域はオブジェクトをカバーすることのない空領域
か、又はオブジェクトをカバーする非空領域として指定される。ビットマップ領
域は特定された拘束条件に従ってより大きな領域へ結合させることが可能である
。非空ビットマップ領域のみが、割り当てられた圧縮アルゴリズムに従って圧縮
器によって好適に圧縮される。脱圧縮器は出力スキャンラインがそのスキャンラ
イン上の領域を交差する箇所を決定し且つ該スキャンラインが該領域と交差する
場合に圧縮領域を脱圧縮することによって一度に1ページを脱圧縮させる。脱圧
縮器はスキャンラインが圧縮領域と交差しない場合に、バック
グラウンドデータを出力装置へ出力する。
本発明の別の側面においては、選択的オブジェクト圧縮及び脱圧縮を有するデ
ジタル出力を供給する方法が、型を有する出力データを受取り、且つ圧縮出力デ
ータを発生するために1組の圧縮アルゴリズムから選択した圧縮アルゴリズムで
出力データを圧縮する各ステップを包含している。出力データに対して選択した
圧縮アルゴリズムは出力データの型に依存しており且つ圧縮用にユーザが特定し
た拘束条件を満足する。圧縮した出力データはデジタル読取/書込メモリ内に格
納し且つ圧縮されていない出力データを発生するために選択した脱圧縮アルゴリ
ズムで脱圧縮させる。脱圧縮アルゴリズムは1組の脱圧縮アルゴリズムから選択
し且つ圧縮データを圧縮するために使用した圧縮アルゴリズムに依存する。次い
で、圧縮されていない出力データを出力表示装置へ供給する。
出力データはオブジェクトの型及び1ページのデータ上のオブジェクトの位置
を包含する表示リスト内のオブジェクトとして格納される。表示リストは複数個
のバンドに対応しており、その中にページが編成される。表示リストのうちの1
つのオブジェクトは圧縮されていないバンドにおけるビットマップオブジェクト
としてラスター化され且つ非圧縮バンド
バッファ内に格納される。該バンドは交差しないビットマップ領域内に区画化さ
れ、各ビットマップ領域はその領域がカバーするオブジェクトの型に対応する少
なくとも1つの型か、又はオブジェクトがカバーされていない場合には空の型を
有している。圧縮方法は、領域の型及び圧縮方法の圧縮比及び圧縮及び脱圧縮を
行なった後のデータの視覚的品質を包含するユーザの拘束条件に基づいて各領域
に対して割り当てられている。隣接領域及びそれらの間に空の領域を包含してお
り且つ同一の割り当てられた圧縮方法を有している領域は、好適には、より大き
な領域へ結合される。次いで、圧縮されていないバンドの非空領域即ち空ではな
い領域は圧縮され且つデジタル読取/書込メモリの圧縮バンドバッファ内に格納
される。このステップは、圧縮された場合に圧縮領域が圧縮バンドバッファ内に
フィットするか否かをチェックすることを包含している。圧縮された場合に該バ
ンドがフィットしない場合には、前に圧縮したバンドを脱圧縮し且つ再圧縮して
圧縮バンドに対して更なる格納空間を提供する。次いで、該ページの次のページ
をラスター化し且つ圧縮する。該ページの全てのバンドを圧縮すると、1ページ
の圧縮データをスキャンラインの順番で脱圧縮し且つ出力装置へ供給する。圧縮
領域によって含まれていないペー
ジの部分に関しては、バックグラウンド表示データが出力装置へ供給される。
本発明の利点は、表示データ内に含まれる各型のオブジェクトに対して適した
圧縮メカニズムでオブジェクトデータが圧縮されるということである。このこと
は画像品質と圧縮レベルとの間の最適なトレードオフ即ち利益衡量を与える各オ
ブジェクトの型に対して圧縮メカニズムを選択することが可能であるという点に
おいてより大きな圧縮の最適化を可能とする。このことは画像品質の損失を最小
としながらメモリ空間条件を著しく減少させることを可能とする。更に、オブジ
ェクト表示データを包含するページの区域のみが圧縮され、従って「空白」即ち
バックグラウンド区域を圧縮し且つメモリ内に格納することは必要ではない。こ
のことは、表示データに対してのメモリ空間条件において更なる減少を可能とし
ている。表示データを格納するためのメモリ条件が低いので、出力表示装置を製
造するコストは著しく減少させることが可能である。
本発明のこれら及びその他の利点は、本発明の以下の説明を読み且つ図面のう
ちの幾つかの図を研究にすることにより当業者にとって明らかなものとなる。図面の簡単な説明
図1は本発明に基づく異なる型のオブジェクトを有するページを表示するため
のコンピュータシステムのブロック図である。
図2は本発明と共に使用するのに適した出力装置のブロック図である。
図2aは図2に示したようなデジタルプロセサのブロック図である。
図3は本発明に基づく減少させた格納条件でデータを表示するプロセスを示し
たフローチャートである。
図4aは図3のラスタライズ及び圧縮入力データステップの第一の部分を示し
たフローチャートである。
図4bは図3のラスタライズ及び圧縮入力データステップの第二の部分を示し
たフローチャートである。
図4cは図3のラスタライズ及び圧縮入力データステップの第三の部分を示し
たフローチャートである。
図4dはページが複数個のバンドへ分割されており複数個のオブジェクトから
なる1ページの模式図である。
図4eは複数個のオブジェクトを包含する1つのバンドの模式図である。
図4fは複数個の交差することのない領域へ区画化した図4eの複数個のオブ
ジェクトからなるバンドの模式図である。
図5は入力オブジェクト型及び取囲みボックス情報がバンドと関連するコレク
タ内に格納されている図4aのステップを示したフローチャートである。
図6は1つのコレクタ内の同様のオブジェクトが合体される場合の図5のステ
ップを示したフローチャートである。
図7は1つのコレクタにおけるオブジェクトの組合わせが自由格納へ強制され
る場合の図5のステップを示したフローチャートである。
図8は1つのバンドが圧縮される場合の図4bのステップを示したフローチャ
ートである。
図8aは領域に対してアルゴリズムを割り当てる図8のプロセスによって参照
されるアルゴリズムエントリのテーブルである。
図8bはアルゴリズムを領域へ割り当てるための図8aのアルゴリズムテーブ
ル内へのインデックスのテーブルである。
図9は交差しない矩形状領域が圧縮されるべきバンド内において指定される場
合の図8のステップを示したフローチャートである。
図9aは図9の1つの領域を記述するデータ構造
の模式図である。
図10は適格な領域が結合される場合の図8のステップを示したフローチャー
トである。
図11は領域が結合される場合の図10のステップを示したフローチャートで
ある。
図12は1つのバンドが圧縮されんとする場合の図8の示したフローチャート
である。
図13は圧縮データが脱圧縮され且つ表示される場合の図3のステップを示し
たフローチャートである。
図13aは1つのバンド及びデータを脱圧縮するための該バンドのスキャニン
グの模式図である。好適実施例の詳細な説明
本発明は出力表示装置へ送られるべきラスター化されたデータに対する格納空
間条件を減少させるのに適している。然しながら、本発明は、多様な目的のため
に異なるタイプのデータを格納する場合に格納条件を一般的に減少させるために
使用することも可能である。
本明細書においては、画像及び関連する構造を記述するために多数の用語が使
用されている。「可視的表現」とは用紙、ディスプレイスクリーン等の上に出力
装置によって発生された画像のことを意味している。「画像」という用語は、視
覚的表現の型即
ち「オブジェクトの型」を記述するために使用される。「ピクセル」は表示され
た視覚的表現の単一のピクチャ要素のことを意味している。全体的にとられると
、複数個のピクセルは表現を形成する。「ビットマップ」はピクセルを表わすデ
ータ構造におけるデジタルメモリ内に格納されるビットのことを意味している。
本明細書において使用されるように、「ビットマップ」とは、各ピクセルがオン
であるか又はオフであるかのいずれかである黒白ピクセルを出力するためのデー
タ構造、及び例えばカラー又はグレイスケール(中間調)表示のような各ピクセ
ルに対してより多くの情報を有する「ピクセルマップ」の両方のことを意味する
ことが可能である。「ラスター」とは、本明細書において使用されるように、行
及び列の形態で配列された複数個のピクセルからなるアレイを表示することによ
って視覚的表現を形成する出力装置上の複数個のピクセルの配置のことを意味し
ている。従って、ラスター出力装置は、レーザプリンタ、コンピュータディスプ
レイ、ビデオディスプレイ、LCDディスプレイ等を包含している。「レンダー
(レンダリング)」及び「ラスタライズ」は例えば表示リスト内のキャラクタア
ウトライン又はオブジェクトのようなオブジェクトプリミティブからオブジェク
トビットマップを形成することを意
味している。オブジェクトプリミティブ及びオブジェクトビットマップの両方が
本明細書においては「オブジェクト」として言及されており、その場合に、「オ
ブジェクト」は、該オブジェクトから派生されるべき視覚的表現を記述するデー
タのみならず型(タイプ)及び位置情報を包含している。
図1において、視覚的表現の表示における格納条件を減少させるのに適したコ
ンピュータシステム10は、1つ又はそれ以上のデジタルコンピュータ12、通
信バス14、プリンタ16、ディスプレイ18、又はその他の出力表示装置20
を包含している。装置16,18又は20の出力は表示されたページ22上の視
覚的表現である。デジタルコンピュータ12はパソコン(例えば、IBM−PC
ATコンパチ又はアップルマッキントッシュパソコン)、ワークステーション(
例えば、サン又はヒューレットパッカードワークステーション)等とすることが
可能である。コンピュータ12は、典型的に、各々が、マイクロプロセサと、メ
モリバスと、ランダムアクセスメモリ(RAM)と、リードオンリメモリ(RO
M)と、例えば入力装置(キーボード、ポインティングデバイス、音声認識器等
)等のペリフェラルと、格納装置(フロッピィディスク、ハードディスクドライ
ブ等)を包含している。本発明の別の実施例において
は、表示データは出力表示装置へ送る代わりに他のメモリ装置又は格納装置へ送
給することが可能である。
プリンタ装置16は用紙、トランスペアレンシィ等の上に表示されたページ2
2のプリントした視覚的表現を発生することの可能な出力表示装置である。本実
施例においては、プリンタ装置16はラスター装置であって、それはビットマッ
プに対応して行及び列の形態で配列された複数個のプリントされたドットで視覚
的表現を形成する。即ち、ビットマップをプリンタ装置16へ入力させることが
可能であり且つ該ビットマップのビットはピクセルとして表示させることが可能
である。一方、より高いレベルのオブジェクトはプリンタ16へ送給することが
可能であり、且つ該プリンタはラスター化処理を実施することが可能である。
ディスプレイ18は、スクリーン上に視覚的表現を表示する出力表示装置であ
る。ディスプレイ18は、陰極線管(CRT)を包含することが可能である。そ
れは、典型的に、ラスター装置として動作される。その他のタイプのディスプレ
イはLCDスクリーン、ELディスプレイ等を包含している。
その他の出力表示装置20は、一時的な又は永久的な形態のいずれかで視覚的
表現を表示するために
使用される任意のその他の形態の装置である。その他の出力表示装置は投影装置
、プロッタ等を包含している。
例えばプリンタ装置16、ディスプレイ18又はその他の出力装置20等の出
力装置表示上に視覚的表現を表示するために、1つ又はそれ以上のタイプの手順
を実施することが可能である。1つの手順は、データオブジェクトを入力し、次
いで該オブジェクトからビットマップをラスター化させることである。例えば、
1つのテキストキャラクタのオブジェクトは、そのキャラタクが例えば位置座標
、寸法、フォント等のようにどのように表示されるかを特定する関連情報を有す
ることが可能である。
オブジェクト及び関連情報を特定するための公知の頁記述言語は、カリフォル
ニア州マウンテンビューのアドビシステムズインコーポレイテッドによるポスト
スクリプト(postscript)(商標)言語である。オブジェクトは、例
えば、テキストキャラクタを記述するビットマップを包含することが可能であり
、又はオブジェクトはキャラクタの形状を記述し且つ例えばフォント及び寸法等
のその他のラスター化情報を包含する格納されているキャラクタアウトラインに
対して参照するか又は指摘することが可能である。公知のキャラクタアウトライ
ンフ
ォーマットは、アドビシステムズインコーポレイテッドによるType 1(商
標)フォーマットである。更に、例えばグラフィックの形状等のオブジェクトは
グラフィックプリミティブとして格納することが可能であり、それはより複雑な
グラフィック形状を形成するために使用される基本的な形状オブジェクトである
。該オブジェクトから、コンピュータ12又は出力装置16,18又は20はビ
ットマップをラスター化させ且つそのビットマップをメモリキャッシュ又は表示
のためにアクセス可能なその他の格納区域へ送るか又は後に使用するために該ビ
ットマップを格納することが可能である。
以下に説明するように、本発明のプロセスは、オブジェクトを表示する場合に
必要とされる格納空間がより少ないようにオブジェクトから派生されるビットマ
ップを取扱うための技術を提供している。本明細書において言及するように、「
頁記述言語」即ち「PDL」ファイルは、例えばアドビシステムズによるポスト
スクリプト又はポータブルドキュメントフォーマット(Portable Do
cument Format)(商標)(PDF)(商標)等の頁記述言語で格
納されているオブジェクトを包含するファイル又は同様の格納単位である。
表示されたページ22は出力表示装置16,18,
20のうちの1つによって発生された視覚的表現を包含している。ここで、表示
されたデータの「ページ(頁)」は1つの単位としてユーザによって観察するこ
との可能な視覚的表現からなる1つのブロック又はグループのことを意味してい
る。例えば、プリンタ装置16からの表示された表現からなる1つのページは単
一の用紙(又は、1ページが複数個の用紙にわたるように画定されている場合に
はより多くの用紙)上に示される表現とすることが可能である。ディスプレイ1
8上において、1ページは、スクリーン上に一度に示される表現を有することが
可能であるか、又は一度に一部のみをみることの可能な表現からなるグループを
有することが可能である。ポストスクリプトインタプリタのようなページ記述イ
ンタプリタにおいては、通常、1ページのデータが、次のページが処理される前
に、解釈され、処理され且つ出力表示装置へ送られる。
本実施例においては、表示されたページ22は幾つかの異なるタイプ(型)の
視覚的表現を包含している。この場合に、視覚的表現の「タイプ(型)」は該表
現が派生されたデータオブジェクトの「タイプ(型)」と同一である。本実施例
においては、3つの型のデータオブジェクト、即ちテキストオブジェクト、グラ
フィックスオブジェクト、画像オブジ
ェクトがアドレスされる。その他のタイプのオブジェクトも、本発明の別の実施
例において定義し且つ処理することが可能である。本発明の本実施例においては
、オブジェクトの型はコマンド、データ及び該オブジェクトを表示するために使
用された操作(演算)及び他のアルゴリズムと比較して特定の圧縮アルゴリズム
を使用して品質が失われることがより少なく且つより効率的に圧縮/脱圧縮され
るオブジェクトの能力によって画定することが可能である。例えば、データ(キ
ャラクタコード)、手順、キャラクタアウトライン等の特定の型(タイプ)は、
特定のアルゴリズムを使用してより効率的に圧縮することが知られているテキス
トオブジェクトを記述するために使用される。従って、「テキスト」という型は
これらのファクタに鑑みて画定される。オブジェクトの型は、例えば、表示され
たオブジェクトの最終的な様相、表示された場合の分解能、又はその他の基準に
基づいて他の実施例において画定することが可能である。
テキスト表現Tは、例えば、テキストオブジェクトからラスター化させたビッ
トマップから派生される。例えば、テキストファイル中のキャラクタコードは、
当業者にとって公知の如く、テキストオブジェクトを画定するキャラクタ描画手
順をインデック
スするために使用することが可能である。グラフィックス表現Gは、例えば台形
及びライン等のコード化されたグラフィックスオブジェクトからラスターカされ
たビットマップから派生される。これらのプリミティブグラフィックスオブジェ
クトはグラフィックスオブジェクトを記述するために寸法設定し且つ整形するこ
とが可能である。画像表現Iは、典型的に、任意のコード化されたオブジェクト
から派生されるものではない。何故ならば、その元の形態はビットマップであり
、オブジェクトと呼ばれるものだからである。スキャンした画像、デジタル化し
た写真等は、ビットマップ形態であり且つ、通常、直接的に又は座標変換によっ
て出力表示装置によって表示させることの可能な画像型のデータオブジェクトで
ある。
視覚的T,G,Iは表示されたデータからなる単一のページ上に、例え互いに
オーバーラップしていても、全て表示させることが可能である。これらの型のオ
ブジェクトは、各々、後に詳細に説明するように、各型のオブジェクトに対して
最適化した圧縮アルゴリズムを使用してバンドバッファ内に圧縮される。
図2は、一例として、プリンタ装置16として説明する出力表示装置のブロッ
ク図である。プリンタ
装置16は、好適には、バッファ24、デジタルプロセサ26、RAM28、R
OM30、I/Oインターフェース32、プリントエンジン34を包含している
。バッファ24は、コンピュータ12から受取ったデータをバッファするために
使用されるメモリバッファである。プリンタ装置16は、コンピュータ12から
データが出力される速度と異なる速度で入力データを処理することが可能であり
、バッファ24はこれらの速度をインターフェースするために使用されている。
デジタルプロセサ26は、プリンタ装置16の動作を制御するために使用され
ている1つ又はそれ以上のデジタル集積回路を包含している。メモリから検索し
た命令を使用して、プロセサ26は入力データの受領及び処理を制御し且つ出力
装置上でのデータの出力及び表示を制御する。本実施例においては、プロセサ2
6の機能は、オブジェクトデータをビットマップへラスタライズ即ちラスター化
させることである。従って、本発明においては、プリンタ装置16はラスター化
プロセサスを実行する。これはポストスクリプトプリンタの典型例である。
プロセサ26は、好適には、バッファ24から例えばポストスクリプト等の頁
記述言語におけるデータ及びコマンドを読取り且つ該コマンドを解釈/実
行してビットマップをラスター化させる。次いで、該プロセサは、ビットマップ
のオブジェクト型に従ってラスター化させたビットマップを圧縮し且つそれらを
表示すべくプリントエンジンへ送る前に該ビットマップを脱圧縮する。該プロセ
サは、例えばRAM28及びROM30のようなプリント装置におけるその他の
部品を利用する。デジタルプロセサ26は図2aを参照して更に詳細に説明する
。
バス27は、出力データを処理し且つ表示するためにプリンタ装置16によっ
て必要とされるデータを格納するために使用されるメモリ部品であるRAM28
及びROM30へアクセスするためにデジタルプロセサ26によって使用される
。RAM28は汎用格納区域及びスクラッチパッドメモリとしてプロセサ26に
よって使用され、且つ、好適には、入力データ及び本発明によって発生された圧
縮データを格納するために使用される。RAM28は1つ又はそれ以上のメモリ
チップで実現することが可能である。ROM30は、特定のフォーマットで視覚
的表現を表示するために使用されるキャラクタアウトライン及びオブジェクトプ
リミティブのみならずプロセサ26によって実行される命令を格納するために使
用することが可能である。例えば、キャラクタのようなテキストオブジェクトを
ラスター化する場合には、
そのキャラクタに関連するキャラクタアウトラインを、該キャラクタのビットマ
ップがプリンタ装置によってテキスト表現として表示されるためにラスター化さ
れる場合に、ROM18を参照することが可能である。
I/Oインターフェース32は、マイクロプロセサによって発生されたビット
マップをプリントエンジン34とインターフェースさせるために使用される。出
力ビットマップデータは、例えば、バス27を介してI/Oインターフェース3
2へ送ることが可能である。I/Oインターフェース32は該ビットマップデー
タをプリントエンジン34へ供給し、プリントエンジン34はそのビットマップ
データを使用して図1に示したような表示ページ22を発生する。当業者にとっ
て公知の如く、レーザプリンタのプリントエンジンは、典型的に、用紙へ可視的
表現を付与するためのトナーメカニズム、供給メカニズム等の部品及び表示され
たページを発生するために必要なその他の部品を包含している。例えばディスプ
レイスクリーン等の出力装置が使用される場合には、プリントエンジンはビット
マップから派生された視覚的表現を表示するCRT又はその他の実際なスクリー
ンとすることが可能である。一方、出力ビットマップデータは直接的なライン3
1を介して
プロセサ26からプリントエンジン34へ直接的に送ることが可能である。
図2におけるプリント装置16に示した部品は、別の形態として、プリント装
置16又はその他の出力表示装置ではなくコンピュータ12内に設けることも可
能である。例えば、デジタルプロセサ26、RAM28、ROM30、及びI/
O32はコンピュータ12内に設けることが可能であり且つ出力表示装置内に位
置されているプリントエンジン34へ出力ビットマップを供給することが可能で
ある。圧縮データを格納するために使用されるRAM28は、視覚的表現を表示
する実際の出力表示装置と関連させることが可能であり且つ出力表示装置外部に
位置させることが可能である。
以下に説明するように、表示されるデータの圧縮はデジタルプロセサ26によ
って実行され且つコンピュータ12上で実施することが可能であり、このデータ
の脱圧縮は出力装置16,18又は20上で実行することが可能である。然しな
がら、このような実施例においては、スタンダードの圧縮アルゴリズムは、好適
には、コンピュータ12によって使用され、従って出力装置はデータを送給する
いずれかのコンピュータからのデータを容易に脱圧縮することが可能となる(又
は、使用された圧縮アルゴリズ
ムの記述が圧縮データと共に送られて、出力装置がその圧縮アルゴリズムを理解
し且つそのデータを脱圧縮することが可能となる)。全ての圧縮及び脱圧縮が、
図2に示したように、出力装置において行なわれる場合には、スタンダード又は
スダンダードではない圧縮アルゴリズムを使用することが可能である。
別の実施例においては、コンピュータ12はデータを表示する前に格納するた
めに、例えばハードディスクドライブ、フロッピィディスク、PCMCIAカー
ド、磁気テープ等の格納装置(不図示)へ圧縮データを送給することが可能であ
る。
図2aは図2に示したデジタルプロセサ26のブロック図である。本実施例に
おいては、プロセサ26はCPU36及び応用特定集積回路(ASIC)38を
包含している。該CPUは、好適には、プリンタ装置16の動作を制御する汎用
マイクロプロセサである。CPU12は単一チッププロセサとすることが可能で
あり、又は複数個の部品で実現することが可能である。
本実施例においては、ASIC38は圧縮及び脱圧縮操作を実施するために設
計された集積回路である。ASIC38は、好適には、ASICにおけるハード
ウエアで実現される圧縮アルゴリズムを使用
する。該圧縮アルゴリズムは、ビットマップが格納されるべきより少ない空間を
必要とするようにビットマップを圧縮するためにCPU36によって実現される
ソフトウエアルーチンによって選択される。ASIC38は、更に、圧縮データ
において特定されているパラメータを使用して、圧縮ビットマップを元の寸法及
び形態へ脱圧縮させるための脱圧縮アルゴリズムを使用する。その他の実施例に
おいては、圧縮及び脱圧縮は、ソフトウエアによるか又はコンピュータシステム
内のその他のハードウエア部品によって実施することが可能である。RAM39
は、更に、圧縮及び脱圧縮期間中に使用される構造及びデータを格納するために
ASIC38に対して局所的に実現させることが可能である。
多くの圧縮/脱圧縮アルゴリズムが当業者にとって公知であり且つ幾つかにつ
いて以下に説明する。本発明は、以下に説明するように、表示品質の損失を最小
とした状態で表示すべきビットマップに対する必要とされる格納空間をより効率
的に減少させるためにマルチ圧縮アルゴリズムを利用する。
図3は本発明に基づいて減少させた格納条件でデータを表示するプロセス40
を示したフローチャートである。このプロセスは42において開始する。ステッ
プ44において、単一ページの内容の入力デー
タがラスター化され且つラスター化されたオブジェクトの型に基づいて圧縮され
る。ステップ44は幾つかの個別的なステップを有しており、入力データからオ
ブジェクトの表示リストを形成すること、表示リスト内のオブジェクトをバンド
内のビットマップオブジェクトへラスター化させること、該バンド内に位置され
たオブジェクトの型に従って該バンドを圧縮すること、及び圧縮したバンドをメ
モリ内に格納することを包含している。このプロセスは、図4a,4b,4cを
参照して更に詳細に説明する。ラスター化したデータを圧縮することによって、
データを格納するために必要なメモリの量を著しく減少させることが可能である
。
ステップ46において、メモリ内に格納された圧縮されているバンド(圧縮バ
ンド)を脱圧縮し且つ脱圧縮したデータを一度に1つのバンドづつディスプレイ
エンジンへ送給する。このことは脱圧縮アルゴリズム及び各圧縮バンド内に格納
されている情報を使用して行なわれる。1つのバンド内のデータは、それが脱圧
縮されるとすぐに表示されるべくディスプレイエンジンへ直接的に送られる。全
ての圧縮バンドが表示されるとそのページは完全に表示されたこととなる。本発
明の別の実施例においては、圧縮バンドは脱圧縮され且つディスプレイを包含す
る複
数個の使用のために異なるメモリ又は格納区域内に格納される。データのバンド
を脱圧縮し且つ表示するプロセスについては図13を参照して更に詳細に説明す
る。次のステップ48において、次のページのデータを表示すべきか否かが決定
される。表示すべき場合には、本プロセスはステップ44へ復帰して、ステップ
44及び46における次のページのデータをラスター化し、圧縮し、脱圧縮し、
且つ表示する。表示すべき更なるページが存在しない場合には、本プロセスは4
9に示した如く完了する。
好適には、1ページのデータは、1つの文書又はその他のグループのページに
おける前のページの表示と同時的に圧縮することが可能である。例えば、第一ペ
ージからのデータがいまだにステップ46において脱圧縮中であるか又は表示中
である場合に、その文書内の第二ページを同時的にステップ44においてラスタ
ー化し圧縮させることが可能である。同様に、複数個のページを同時的に脱圧縮
させることが可能である。例えば、複数個のタンデム脱圧縮エンジンが複数個の
ページを脱圧縮することが可能であり、その場合に各脱圧縮エンジンが1ページ
の1つの側面に関しあるカラー又はシェード(陰影)を脱圧縮し且つ表示する。
各ページは脱圧縮エンジンからなるパイプラインを介して通過させることが
可能であり、その場合に各脱圧縮エンジンは、それがその現在のページを終了す
る場合に、該パイプラインにおける次のページを受取る。このようなプロセスは
本発明の圧縮及びラスター化について使用することも可能である。別の実施例に
おいては、ページ毎に圧縮し、脱圧縮し且つ出力表示データを表示する代わりに
、1ページの各「バンド」又はその他の部分を逐次的に圧縮し、脱圧縮し且つ表
示させることが可能である。
図4aは図3の入力データをラスター化し且つ圧縮するステップ44の第一部
分を示したフローチャートである。このプロセスは52において開始し且つ3つ
の初期化ステップ54,56,58を実行する。ステップ54において、本発明
においてデータを圧縮するために使用される圧縮レベルが使用可能な最も低いレ
ベルへ設定される。圧縮「レベル」はデータを圧縮するための圧縮比を決定し、
その場合により低いレベルは、典型的に、ここで説明するようにより低い圧縮比
(即ち、より低い量の圧縮)に対応している。次のステップ56において、現在
のページの全てのバンドが空白の圧縮形態として表現される。空白(即ち「バッ
クグラウンド」データ)は、これらの区域において表示されるべき何等のオブジ
ェクトデータを包含することのない1ページの白色
即ちマークされていない区域のことを意味する。1つのページは多数のバンドへ
区画化され、その場合に各バンドが別個に解析され且つ圧縮される。1つのペー
ジ110のバンド112の1例を図4dに示してあり、それについては以下に更
に詳細に説明する。圧縮した空白データは、以下に説明するように、圧縮バンド
バッファ内に格納する。ステップ58において、現在のページ110の各バンド
112に対して空のコレクタが形成され且つ初期化され従って全てのバンドは関
連するコレクタを有することとなる。本明細書においては、「コレクタ」とはそ
のコレクタと関連するバンドに関連するデータを格納するデータ構造又はその他
の格納区域及び/又は関連する命令のことを意味する。コレクタ内に格納される
データは、その関連するバンド内に含まれるオブジェクトを圧縮するために使用
される。
次のステップ60において、本プロセスは、ページの終りに到達したか否か、
即ちそのページに対する全ての入力データが表示リストへ付加されたか否かを決
定する。例えば、頁記述言語ファイルからページの終りコマンド又はインジケー
タを受取ることによってそのページの終りを検知することが可能である。そのペ
ージの終りではない場合には、ステップ62が実行され、その場合に、本プロセ
スは表示リ
スト格納が使い尽されているか否かをチェックする。入力オブジェクトは表示リ
スト内に格納され、それは、たとえばRAM28及び/又は付加的なメモリ等の
使用可能なメモリの一部である。この使用可能な格納部は、1ページの全ての入
力オブジェクトが表示リスト内に格納する前に満杯となる場合がある。このこと
が発生すると、選択されたバンドの表示リスト内の入力オブジェクトはすぐさま
ラスター化され且つ該バンドが圧縮され、そのことはこれらの入力オブジェクト
を表示リストにおいて除去する(即ち上書きする)ことを可能とする。このこと
は、表示リスト内の空間が付加的な入力オブジェクトを格納するために解放させ
る。この手順は「サイクリング」として知られている。何故ならば、本発明の圧
縮方法の一部は表示リストにおける空間を解放するためにサイクル動作されるか
らである。以下に説明するように、1つのバンドはその入力オブジェクトのうち
の一部を有するだけで圧縮させ、次いで脱圧縮させて該バンド内に付加的な入力
オブジェクトを付加させる(ラスター化させる)ことを可能とすることが可能で
ある。表示リスト格納部が使い尽されると、本プロセスは図4bのノード71へ
移行して以下に説明するように(不完全の可能性のある)バンドを圧縮する。
表示リスト格納部が使い尽されていない場合には、ステップ64が実行され、
その場合には、入力オブジェクトが検索される。該入力オブジェクトは、好適に
は、コンピュータ12からのバッファ24(図2において示したように)におけ
るデジタルプロセサ26によって受取られる。該入力オブジェクトは幾つかの異
なる形態及びフォーマットとすることが可能である。例えば、該入力オブジェク
トはポストスクリプト言語とするか又は頁記述ファイルの一部として異なる頁記
述言語とすることが可能である。本実施例においては、該入力オブジェクトは、
通常、「オブジェクトプリミティブ(object primitive)」又
は「グラフィックプリミティブ(graphic primitive)」であ
り、それはオブジェクトの型を有する基本的なグラフィックオブジェクトである
。例えば、オブジェクトはキャラクタ又は単語ビットマップ又はテキスト型を持
ったコードとすることが可能である。オブジェクトは、又、台形、ライン、又は
それからその他のより複雑な形状を構成するその他のプリミティブ即ち原子的な
形状とすることが可能であり、このような形状はグラフィックス型を有するもの
と考えることが可能である。オブジェクトは、更に、画像型を有することが可能
であり、即ちオブジェクトは画定し
た位置及び適切である場合にはカラーからなるピクセルを有する画像セグメント
ビットマップとすることが可能である。一般的に、本明細書においては、「オブ
ジェクト(object)」とは、入力したオブジェクトの型(タイプ)、取囲
みボックス及び記述データのことを意味しており、且つビットマップ形態又は非
ビットマップ形態におけるオブジェクトのことを意味することが可能である。
ステップ66において、入力したオブジェクトの型及び取囲みボックス(寸法
及び位置)が、該オブジェクトが跨がるバンドに対する適宜のコレクタ内に格納
される。該オブジェクトの型は、前に定義した幾つかの型のうちの1つである。
例えば、テキスト、グラフィックス及び画像の型が本明細書において記載されて
おり、付加的な型を与えることも可能である。1つのオブジェクトの型はそのオ
ブジェクトを記述する入力データから決定することが可能である。例えば、入力
オブジェクトがポストスクリプトのような言語で特定されている場合には、入力
オブジェクトの型はポストスクリプトファイルのコマンドから明らかである。ポ
ストスクリプトはそのオブジェクトに関係するコマンドの文脈においてオブジェ
クトの型を特定することが可能であり、且つポストスクリプトインタプリタはこ
のタイプ即ち型を
識別するために使用することが可能である。例えば、SHOW(X)コマンドは
、テキストキャラクタを表示することが知られており、従ってオブジェクトXは
テキスト型であることが分かる。入力オブジェクトが最初に、例えば、ワードプ
ロセサ、スプレッドシート、又はその他のポストスクリプト発生プログラムによ
って出力された場合には、これらのコマンドはポストスクリプトファイルで形成
される。入力オブジェクトが最初にアドビイラストレーター(Adobe Il
lustrator)(商標)のような描画プログラム又はグラフィックスオブ
ジェクト型エディターによって出力されたものであると、グラフィックス型コマ
ンド(MOVETO,LINETO,FILL等)がポストスクリプトインタプ
リタに対してそのデータがグラフィックス型を有するものであることを通知する
。そのオブジェクトが、最初に、画像ビットマップエディター又はアドビフォト
ショップ(Adobe PhotoShop)(商標)のようなプログラムから
出力されたものである場合には、そのデータは当業者にとって公知の如く、その
ファイル内の画像型コマンドから識別することが可能である。ポストスクリプト
インタプリタは、PDLファイル内のその他のコマンド及び情報の全てを取扱う
ことが可能であり、且つステップ
64において現在のプロセスに対して単に入力オブジェクトを供給することが可
能である。
オブジェクトの位置及び寸法もコレクタ内に格納される。本実施例においては
、オブジェクトの位置/寸法は取囲みボックス座標として格納される。取囲みボ
ックスはオブジェクトが矩形によって完全に包囲されるように、そのオブジェク
トの端部において又はすぐその外側に辺が位置される矩形又はその他の多角形で
ある。オブジェクトの位置/寸法として好適には、4組のx,y(例えば、水平
、垂直)座標が格納され、その場合に各組の座標は取囲みボックスの4つの角部
のうちの1つを記述する。一方、各取囲みボックスの対向する角部に対する2組
の座標をそのオブジェクトの位置として格納することが可能である。1つの角部
とそのボックスの幅及び高さを格納する等によって取囲みボックスを記述するた
めにその他の方法を使用することも可能である。
オブジェクトの型及び取囲みボックスを格納するための適宜のコレクタは、そ
のオブジェクトがどのバンドに跨がるかを決定するために該オブジェクトの取囲
みボックス座標を検査することによって決定される。図4dに示したように、デ
ータからなるページ110は、好適には、多数のバンド112へ区分化されてお
り、それらは所定の寸法を有する1つの
ページの一部である。図4dのバンドは1つのページの水平方向のセクションと
して示してあるが、その他の実施例においては、バンドはそのページのその他の
区域として画定することが可能である。各バンドは逐次的に処理され且つ圧縮さ
れ、このことは一度により少ない量のデータを処理することを可能とし、従って
ページ全体のデータをメモリ内に格納することを必要とするものではない。好適
実施例においては、ページ110は同じ寸法の10乃至12個のバンドへ区画化
されている(例えば、各バンドに対して256個の行即ちスキャンライン)が、
その他の実施例においては、バンドの数及び寸法はページの寸法、表示される表
現の分解能、使用可能な圧縮されていないバンドバッファ(後述を参照)の寸法
等に依存する場合がある。ここでは、「水平」及び「X座標」とは図13を参照
して説明するように、出力表示装置上の出力データの表示におけるスキャンライ
ンに平行な次元のことを意味している。この次元は図4dにおいては「左右」次
元として示してある。「垂直」即ち「Y座標」は、それと対応して、水平な次元
に対して垂直な次元のことを意味しており、図4dにおいては「上下」次元とし
て示してある。
多数のオブジェクトがページ110上に表示して
示されている。各オブジェクトの型及び取囲みボックスの両方が適宜のコレクタ
内に格納されている。オブジェクト114はテキスト型を有すると共に全体的な
取囲みボックス120を有している。オブジェクト116はグラフィックス型を
有するグラフィックスオブジェクトであり且つ全体的な取囲みボックス122を
有している。オブジェクト118は画像型及び全体的な取囲みボックス124を
有する画像オブジェクトである。
1つのバンドのみに跨がるオブジェクトの場合には、そのオブジェクトの全体
的な取囲みボックスはそのバンドの関連するコレクタ内に格納される。然しなが
ら、入力オブジェクトは1つを超えたバンドに跨がることが可能である。例えば
、テキストオブジェクト114はバンド113,115,117に跨っており、
グラフィックオブジェクト116はバンド115, 117,119に跨ってお
り、且つ画像オブジェクト118はバンド121,123,125に跨っている
。これらの場合において、該オブジェクトの全体的な取囲みボックスの「クリッ
プ」部分はバンドのコレクタ内に格納され、そこで格納された取囲みボックスは
全体的な取囲みボックスとバンドとの交差部である。即ち、複数個のバンドとオ
ーバーラップするオブジェクトは、好適には、各々が
1つのバンド及びコレクタにフィットする複数個のオブジェクトに分割されてい
る。例えば、テキストオブジェクト114は、オブジェクト114に対するバン
ド113における取囲みボックスの座標のみがバンド113のコレクタ内に格納
されるようにクリップされる。テキストオブジェクト114は、バンド115内
のテキストオブジェクト114の座標のみがバンド115に対するコレクタ内に
格納されるように再度クリップされ、以下同様である。オブジェクトをクリップ
する方法は当業者にとって公知である。一方、クリップ処理は図4bのラスター
化ステップ78の前又はその期間中に本プロセスにおける後の段階において実施
することが可能である。
オブジェクトの型及び取囲みボックスが適宜のコレクタ内に格納された後に、
ステップ68が実行される。ステップ68において、入力オブジェクトが適宜の
表示リストへ付加される。各バンド112に対して、関連する表示リストが形成
され(又は前もって形成されており)、且つ現在の入力オブジェクトが適宜の表
示リスト又は複数個のリストへ付加され、即ちオブジェクトの様相及び内容を記
述するデータが適宜の表示リストへ付加される。オブジェクトが1つを超える数
のバンドとオーバーラップする場合には、1つのバンド内に含まれるオブジェク
トデー
タのみがクリッププロセスによってそのバンドと関連している表示リスト内に格
納される。一方、オブジェクトの記述データの全てがオーバーラップするバンド
と関連する各表示リスト内に格納され、且つ該オブジェクトは図4bのラスター
化ステップ78の前又はその期間中に「クリップ」することが可能である。従っ
て、該ページ上のオブジェクトデータの全ては適宜のバンドにグループ化される
。これは、例えばポストスクリプト等の頁記述言語内に格納されているデータに
対して望ましいものである。何故ならば、このような頁記述言語のデータは、典
型的に、表示順に格納されるものではないからである。ページ記述ファイルにお
ける記述から知られている各オブジェクトの位置(座標)はそのオブジェクトに
対する該ページ上の適宜の表示リストを決定する。入力データが受取られると、
各オブジェクトが適宜の表示リスト内に配置され、多分同一のバンド内に表示さ
れるその他のオブジェクトとグループ化され、且つ同一の表示リスト内に格納さ
れる。別の実施例においては、表示リストは構築することは必要ではない。デー
タが格納され且つソート(sort)された表示順番で入力される場合の頁記述
言語においては、データは、以下に説明するように、直接的にバンドに編成し且
つラスター化させることが可能で
ある。
ステップ68の後に、本プロセスはステップ60へ復帰し、そこで本プロセス
は、ページの終りに到達したか否かをチェックする。到達していない場合には、
ステップ62−68が別の入力オブジェクトに対して再度実行される。ページの
終りに到達すると、ステップ70が実行され、その場合に、本プロセスは全ての
表示リストが空であるか否かをチェックする。空である場合には、このことは、
現在のページ上において表示すべきオブジェクトが見つからず且つ従ってオブジ
ェクトは表示リスト内に格納しなかったことを表わしており、本プロセスは69
において完了する。表示リストが空でない場合には、本プロセスは図4bのノー
ド71へ移行し、それはステップ72へ移行する。
図4bは図4aのプロセス44を続行するフローチャートである。ノード71
から、本プロセスはステップ72へ続行し、そこで現在のバンド「A」が選択さ
れ、それは表示リストエントリを有している。好適には、バンドが表示順に選択
され、即ち出力装置がそのバンドを表示する順番に選択され、典型的にページの
上部からページの底部へ向かって移動する。1つのバンドが表示リストエントリ
を有していない場合には、それはスキップされる。別の実施例
においては、表示リストは逆の表示順、即ちオブジェクトが出力装置によって表
示されるのとは反対の順番に検索することが可能であり、従ってスクリーの底部
における表示リストが最初に検索され、次の繰返しにおいては次の最も下側の表
示リストが続き、等々である。逆の表示順は検索され且つラスター化される最後
の表示リストが、以下に説明するように、圧縮及び格納することの必要性なしに
表示されるべく直接的にディスプレイエンジンへ送ることが可能である。然しな
がら、データを圧縮する時間は、典型的に十分に短いので、表示リスト検索順は
本プロセスにおける表示データに対する時間に大きく影響を与えることはない。
次のステップ74において、本プロセスは、バンド「A」データが圧縮状態に
あるか否かをチェックする。圧縮バンドバッファにおける位置及び現在のデータ
に対するデータの状態(即ち、「圧縮」又は「非圧縮」)を、例えば、圧縮プロ
セス(以下に詳細する)からの各バンドに対するこのような情報を格納する「バ
ンドレコード(band record)」から検索することが可能である。バ
ンドAデータが圧縮状態にない場合には、本プロセスは以下に記載するステップ
78へ続行する。バンドAデータは、典型的に、2つの状況において圧縮状態に
ある。
バンドAは新たに選択されたバンドである場合があり、その場合には、そのバン
ドに対する空白「バックグラウンド」データのみが図4aのステップ56におい
て圧縮されている。この空白データは圧縮バンドバッファ内に格納されている圧
縮状態にある。バンドAは、「サイクリング(cycling)」ループにおい
て以前に圧縮させておくことが可能である。表示リスト格納部が図4aのステッ
プ62において使い尽されていた場合には、バンドAは前もって選択されており
且つ圧縮されている場合がある。そうである場合には、それは、既に、幾つかの
入力オブジェクトを包含する圧縮バンドバッファ内に圧縮データとして格納され
ている場合があり且つ該バンドへ何等かの付加的な入力オブジェクトを付加(ラ
スタライズ)するためには脱圧縮されねばならない(ステップ76において)。
バンドAデータが圧縮状態にある場合には、ステップ75が実行され、その場
合に、本プロセスは、現在のバンドを格納するために非圧縮バンドバッファの使
用可能なセクションがあるか否かをチェックする。以下に説明するように、非圧
縮バンドバッファは圧縮されていないバンドを格納するために使用される。それ
が現在1つ又はそれ以上の他のバンドを格納することから満杯である場合には、
本プロセ
スはステップ77へ続行し、その場合に、バンドA(現在のバンド)は非圧縮バ
ンドバッファの1つのセクションを現在占有しているバンドへ設定される。次い
で、本プロセスはノード97へ続行し、非圧縮バンドバッファを解放するために
本発明のプロセスによってそのバンドを圧縮する。このプロセスは以下に説明す
る。そのバンドが圧縮されると、非圧縮バンドバッファが使用可能であり、且つ
本プロセスはステップ72へ復帰し(以下に説明するように)、再度、元のバン
ドA(又は、別途、別のバンド)を選択する。
ステップ75において使用可能な非圧縮バンドの格納セクションが存在する場
合には、本プロセスはステップ76へ続行し、その場合にバンドAデータ(圧縮
バンドバッファ内)が、該データを圧縮するために使用したアルゴリズムに対応
する脱圧縮アルゴリズムを使用して、非圧縮バンドバッファの格納セクションへ
脱圧縮される。脱圧縮は図12を参照して以下に詳細に説明する。
非圧縮バンドバッファは、好適には、圧縮されていないデータの少なくとも1
つのバンドを格納することの可能なRAM28内に設けられているメモリ格納部
である。好適実施例においては、この非圧縮バンドバッファは、2つ又はそれ以
上のバンドの圧
縮されていないデータを格納することが可能である。1つのバンドに対するデー
タを格納することの可能な非圧縮バンドバッファの各部分は、非圧縮バンドバッ
ファの「格納セクション」と呼称される。例えば、現在のバンドAは、好適には
、非圧縮バンドバッファの第一格納セクション内に格納される。現在の圧縮され
ていないバンドは後に圧縮され且つ、好適には、以下に説明するように、新たな
バンドが非圧縮バンドバッファ内に書込まれる前に、圧縮バンドバッファ内に格
納される。別の実施例においては、複数個の非圧縮バンドバッファが異なるバン
ドのラスター化及び圧縮を同時的に実行することを許容することが可能である。
ステップ76の後に、又はバンドデータがステップ74において圧縮状態には
ない場合には、ステップ78が実行される。バンドAの全ての表示リストエント
リ(オブジェクト)はバンドAに対する表示リストから検索され、ビットマップ
へラスター化され、且つステップ76からの脱圧縮データを保持する非圧縮バン
ドバッファの格納セクション内へ格納される。この非圧縮バンドバッファの格納
セクションは、従って、ステップ76からのバンドに対する脱圧縮された空白デ
ータ(及びいずれかの以前に圧縮されラスター化された入力オブジェクト)を包
含
しており、且つステップ78においてそれに付加されているビットマップオブジ
ェクトをラスター化させている。
オブジェクトをビットマップオブジェクトへラスター化させるプロセスは当業
者にとって公知である。例えば、テキストオブジェクトがラスタ化されるべき場
合には、該オブジェクトのキャラクタのラスター化したビットマップを形成する
ために、ROM30内に格納されている手順及びキャラクタアウトラインを参照
し且つ使用することが可能である。グラフィックスオブジェクトがラスター化さ
れるべき場合には、そのグラフィックスオブジェクトを構成しているグラフィッ
クスプリミティブを確立されている方法に従ってラスター化し且つ結合させてラ
スター化したグラフィックスビットマップを形成する。画像オブジェクトは、既
に、ビットマップ形態にある場合があり、従って画像ピクセル空間と出力装置ピ
クセル空間との間に1対1の対応が存在する場合にはラスター化する必要がない
場合がある。このような対応が存在しない場合には、画像空間と装置空間との間
の変換を、当業者にとって公知の如く、ラスター化ステップにおいて実施するこ
とが可能である。画像ビットマップオブジェクトは、非圧縮バンドバッファ内に
全てのその他のビットマップオブジェク
トと共に格納される。
次のステップ80において、本プロセスは、非圧縮バンドバッファ内に格納さ
れているバンドAのラスター化したデータを圧縮することを試みる。このステッ
プは、ビットマップオブジェクトを交差しない領域へ分割し、該領域に対して型
(タイプ)を割り当て、該領域に対して適宜の圧縮アルゴリズムを割り当て、且
つ現在の圧縮レベルにおいて該領域データを圧縮バンドバッファ内へ圧縮する試
みを行なう。ステップ80については図8を参照して以下に詳細に説明する。
ステップ82において、本プロセスは、バンドAに対する圧縮データが圧縮バ
ンドバッファの使用可能なメモリ内にフィット即ち適合するか否かを決定する。
圧縮バンドバッファは、好適には、RAM28又は同様のメモリ内において実現
される。特定の量のメモリのみが全ての圧縮されたバンドに対する圧縮バンドバ
ッファ内に割り当てられているに過ぎないので、圧縮されたデータが使用可能な
割り当てられているメモリ量よりより多くの格納空間を必要とする可能性がある
。注意すべきことであるが、本実施例においては、本プロセスは、好適には、非
圧縮バンドデータの次の部分を圧縮し且つ格納する前に、非圧縮バンドデータの
小さな部分を圧縮し且つ格納
する。本プロセスが圧縮したデータを圧縮バンドバッファへ書込み且つデータが
いまだに圧縮され且つ格納されることを必要とする場合に格納空間が欠乏する場
合には、現在のバンドが使用可能な格納空間をオーバーフローさせており且つフ
ィットするものではない。好適実施例においては、本プロセスは、データの圧縮
を継続して行ない且つ発生した圧縮データのバイト数をカウントするが、圧縮し
たデータを圧縮バンドバッファへ書込むことはしない。このことは、本プロセサ
が圧縮バンドの実際の格納条件を決定することを可能とする。一方、本プロセサ
は、オーバーフローしたデータを圧縮し、且つ、もはやデータが得られなくなる
までこのバンドに対する前に圧縮したデータの上に前記圧縮バンドバッファ内へ
書込むことを可能とし、且つオーバーフローしたデータの量は既知である。
圧縮バンドデータはフィットしないので、本プロセスは、以下に説明する図4
cのノード83へ続行する。別の実施例においては、本プロセサは、精密な格納
条件を見つけ出すためにオーバーフローしたデータの圧縮を継続して行なう必要
性なしに、ある量の空間が必要とされることを計算するか又は仮定することが可
能である。例えば、本プロセサは、使用された圧縮アルゴリズム(圧縮比)及び
オーバー
フローの前にどれくらいのデータを格納したかに基づいて、又は使用可能な空間
と所定の数とを乗算することによって、ある量の格納空間が現在のバンドに対し
て必要とされることを仮定することが可能である。
別の実施例においては、現在のバンドは、それがユーザの拘束条件内において
圧縮されなかった場合には、「フィット」即ち適合性のあるものでないと考える
ことが可能である。例えば、圧縮が予定された程効率的なものでなかった場合に
は、そのバンドデータは所望のものよりもより多くの格納空間を使用している可
能性があり且つ、それを格納するのに充分なメモリがあったとしても、「フィッ
ト」しないものと考えることが可能である。
圧縮されているバンドAが圧縮バンドバッファの使用可能なメモリ空間にフィ
ット即ち適合しない場合には、ステップ84が実行され、その場合に、本プロセ
スは、全ての表示リストがそのページに対して処理されているか否か、即ち表示
リストが空であるか否かをチェックする。ラスター化し且つ圧縮すべき別の表示
リストが存在する場合には、本プロセスはステップ72へ復帰する。全ての表示
リストがラスター化され且つ圧縮されている場合には、本プロセスはステップ8
6へ続行し、そこで、本プロセ
スは、最後の圧縮された表示リストがページの終りであったか否かをチェックす
る。全ての表示リストがラスター化され且つ圧縮されているがページの終りに到
達していない場合は、図4aのステップ64によってチェックされるように、1
ページの全ての入力データが表示リストへ付加する前に、表示リストの格納部が
使い尽されてしまった場合に発生する場合がある。その場合には、現在のページ
からのより多くの入力オブジェクトが表示リストへ付加されることを必要とする
。従って、最後の圧縮した表示リストがそのページの終りではない場合には、本
プロセスはステップ86から図4aのノード87へ続行し、そこで、別の入力オ
ブジェクトが検索され且つ表示リストへ付加される。そのページの終りがステッ
プ86において到達された場合には、本プロセスは88において完了する。
図4cは図4a及び4bに示したプロセス44の続行状態を示したフローチャ
ートである。本プロセスは、ステップ80において圧縮したラスター化されたデ
ータが圧縮バンドバッファ内の使用可能な格納空間内にフィット即ち適合しない
場合にノード83に到達する。ノード83から、本プロセスはステップ90へ続
行し、そこで、本プロセスは、より高いレベルの圧縮が使用可能であるか否か、
即ち前に使
用した圧縮レベルよりも更にバンドデータの格納条件を減少させるような圧縮レ
ベル(アルゴリズム)が使用可能であるか否かを決定する。好適には、圧縮アル
ゴリズムは、圧縮比に基づいた数によってランク付けされており且つ各オブジェ
クトの型に対しての圧縮レベルの階層で与えられており、その場合に、典型的に
、オブジェクトの型に対してより損失性のある圧縮アルゴリズムは該階層のより
高いレベルに与えられている。より高い圧縮レベルが存在しない場合には、ステ
ップ92において「失敗」結果が表示され、そのバンドデータを格納するのに使
用可能な充分なメモリが存在しないことを表わす。次いで、本プロセスは93に
おいて示される如く完了する。実際には、多数の圧縮レベル、既知の圧縮比、及
び充分に大きな圧縮バンドバッファが設けられており、従って失敗の可能性は極
めて可能性が低く又は殆ど存在しない。
ステップ90においてより高いレベルの圧縮が得られる場合には、ステップ9
4が実行され、その場合に、次に高い圧縮レベルが選択される。例えば、圧縮レ
ベルの大きさをインクリメントさせることが可能である。ステップ96において
、本プロセスは、いずれかの前に圧縮したバンドが現在の圧縮レベルにおいて圧
縮されていないかどうかをチェックする。
このことは、バンドレコード内に格納されている圧縮レベル情報をチェックする
ことによって達成することが可能である。全ての前に圧縮したバンドが現在の圧
縮レベルに存在する場合には、それらは全て新たな圧縮レベルにおいて再度圧縮
されている(以下のステップ98−106に従って)。次いで、本プロセスは図
4bのノード97へ続行し、それはステップ80を実行して現在の圧縮レベルに
おいてバンドAデータを圧縮する。
前に圧縮したバンドのいずれかが現在の圧縮レベルにおいて圧縮されていない
場合には、ステップ98が実行される。圧縮バンドバッファ内に格納されており
且つ前により低いレベルにおいて圧縮された前のバンド「B」が選択される。こ
の前のバンドBの選択は、幾つかのファクタによって決定することが可能である
。本実施例においては、圧縮バンドバッファ内の最初の圧縮バンドが選択される
。その他の実施例においては、どれだけ多くのバンドを再度解析し且つ実現され
た実施例(以下に説明する)において再度圧縮されるべきかに依存して異なるバ
ンドを選択することが可能である。例えば、現在のバンドAのすぐ前の単一のバ
ンドのみを選択することが可能である。
ステップ100において、選択したバンドBはそ
のバンド内に格納している情報を使用して、非圧縮バンドバッファ内へ脱圧縮さ
れる。好適には、バンドBは非圧縮バンドバッファの「第二」バンド格納セクシ
ョン内に脱圧縮され、従ってバンドAとバンドBの両方が非圧縮バンドバッファ
の異なる格納セクション内に同時的に格納される。バンドBを脱圧縮させるため
に、圧縮バンドバッファからの脱圧縮パラメータが検索される。これらのパラメ
ータは、図8及び12を参照してより詳細に説明するように、該バンド内の各領
域を圧縮するために使用される圧縮アルゴリズム及びその他のパラメータを包含
している。本プロセスは、領域毎に前のバンドBを、各領域に対して使用した圧
縮アルゴリズムと関連する脱圧縮アルゴリズムに基づいて、非圧縮バンドバッフ
ァの第二格納セクション内へ脱圧縮させる。該脱圧縮アルゴリズムは、それらの
関連する圧縮アルゴリズムの逆の操作を実施する。注意すべきことであるが、圧
縮バンドバッファから非圧縮バンドバッファへ一度に1つの領域全体が脱圧縮さ
れ、それは、図13を参照して説明するように、出力表示装置へのスキャンライ
ン脱圧縮とは異なるものである。
ステップ102において、本プロセスは、圧縮バンドBを現在の圧縮レベルに
おいて圧縮バンドバッファ内へ圧縮しようと試みる。このことは、図4b
のステップ80と同様に達成され、且つ図8を参照してより詳細に説明する。
次のステップ104において、本プロセスは、バンドFが圧縮バンドバッファ
にフィット即ち適合するか否かをチェックする。このステップは、図4bに示し
たようにステップ82と同様に達成される。圧縮されたバンドBは、典型的に、
現在の圧縮レベルにフィット即ち適合する。何故ならば、バンドBは、前の圧縮
レベルを使用して既にフィットしており、且つ現在の圧縮レベルにおける圧縮ア
ルゴリズムは、通常、バンドBがより小さな空間内にフィットすることを可能と
するためにより高い圧縮比を達成するからである(多分、前の圧縮レベルよりも
より損失性があることにより)。然しながら、バンドBは、例えば、バンドBの
データが特に現在の圧縮アルゴリズムに適したものではないことに起因して、例
えばテキストを基礎とした圧縮アルゴリズムが画像データに関して使用されてい
る等の理由により、現在の圧縮レベルにおいてフィットしない場合がある。バン
ドBがフィットしない場合には、ステップ106が実行され、その場合に、バン
ドBは、バンドBを充分に圧縮するものとして既に既知である前のより低い圧縮
レベルにおいて再度圧縮する。次いで、本プロセスはステップ90へ復帰し、現
在の圧
縮レベルを次のより高いレベルに設定することを試みる。
圧縮バンドBがステップ104において圧縮バンドバッファ内にフィットしな
い場合には、ステップ108が実行され、その場合に、実行されたポリシィがチ
ェックされる。好適実施例においては、そのポリシィ(policy)は現在の
圧縮レベルにおいて全ての前のバンドを再度圧縮することである。このポリシィ
は、同一の型の全てのデータが全体の表示されたページ上でほぼ同一の品質で表
われることを可能とする。何故ならば、全てのバンドはほぼ同一の損失性を有す
る同一の圧縮レベルで圧縮されているからである。従って、ステップ108の後
に、本プロセスはステップ96へ復帰して、全ての前のバンドが現在の圧縮レベ
ルで圧縮されるまで、別の前のバンドBを圧縮する。全ての前のバンドが再度圧
縮された後に、現在のバンドAが、図4bに示したように、現在の圧縮レベルで
圧縮される。バンドAがフィットする場合には、本プロセスは、図4bに示した
ように、次の表示リストをラスタライズ即ちラスター化し且つ圧縮する。
一方、現在のバンドAが圧縮バンドバッファにフィット即ち適合することを可
能とするために丁度充分な前のバンドのみを再度圧縮するようなポリシィ
を実行することが可能である。このポリシィは、現在のバンドAに対してより多
くの空間を解放させるためにより高いレベルにおいて前のバンドを再圧縮し、且
つある場合においては、全ての前のバンドを再圧縮する方法よりもより少ない処
理時間を必要とする場合がある(他のバンドに対してこの段階においてどれだけ
の前のバンドを再圧縮せねばならないかに依存する)。然しながら、このような
実行においては、表示されるオブジェクトの品質が、異なるバンドについて使用
される異なる圧縮レベルに起因して変化する場合がある。例えば、1つの圧縮ア
ルゴリズムで圧縮された1つのバンドにおける画像オブジェクトの一部と異なる
圧縮アルゴリズムで圧縮された隣接するバンドにおける該画像オブジェクトの残
りの部分との間において欠陥が見える場合がある。このポリシィが使用される場
合には、ステップ108の後に、本プロセスは図4bのノード97へ続行し、そ
れはバンドAをして新たな圧縮レベルで圧縮させ且つそれがフィットするか否か
をチェックさせる、。一方、本プロセスは、バンドBの再圧縮から節約した空間
を現在のバンドAに対して必要とされている既知の付加的な空間とを比較するこ
とによって、充分な格納空間が解放されたか否かを決定することが可能である。
図4a,4b,4cに示したように、出力データのラスタ一化及び圧縮のプロ
セスは、ソフトウエア及び/又はハードウエアで実現することが可能である。一
実施例においては、入力データのオブジェクトをラスター化し、且つ表示リスト
、データ構造等をソフトウエアを使用して格納することが可能であり、一方圧縮
/脱圧縮をゲート、ASIC(図2aに示したように)等を使用してハードウエ
アにおいて実行することが可能である。その他の実施例においては、本プロセス
全体をソフトウエア(又はハードウエア)を使用して実現することが可能である
。然しながら、多くの場合において、完全にソフトウエアで実現することは、現
在のところ、多くの適用例に対して出力データを表示させることが遅すぎるもの
とさせる。
図5は図4aのステップ66を示したフローチャートであって、その場合に、
入力オブジェクトの型(タイプ)及び取囲みボックスがそのオブジェクトによっ
て跨がれるバンドに対する適宜のコレクタ内に格納される。本プロセスは130
において開始し、且つ、ステップ134において、本プロセスは、新たなオブジ
ェクトがコレクタ内に格納されている同一の型の格納されているオブジェクトと
容易に結合することが可能であるか否かをチェックする。該コレ
クタ内に格納されているオブジェクトが、各々、検査され且つ新たなオブジェク
トと比較されて、該オブジェクトを容易に結合することが可能であるか否かを決
定する。「容易な」結合は、多数の条件によって表わすことが可能である。本実
施例においては、新たなオブジェクトの取囲みボックスと格納されているオブジ
ェクトとが取囲みボックスの上端及び底端に対して等しいかほぼ等しいY座標を
有するものである場合には、それらの取囲みボックスはX座標において小さな距
離離れているだけに過ぎず、且つそれらのオブジェクトは同一の型を有している
場合には、それら2つのオブジェクトは「同様」のオブジェクトであって且つ容
易に結合させることが可能である。これらの条件は、更に、同一の型を有してお
り且つ取囲みボックスの左側端部及び右側端部に対して等しいかほぼ等しいX座
標を有するオブジェクトに対しても適用され、それらはY座標において小さな距
離離れているに過ぎない。更に、1つのオブジェクトの取囲みボックスが別のオ
ブジェクトの取囲みボックスの中に完全に位置されており、且つそれらのオブジ
ェクトが同一の型を有している場合には、2つのオブジェクトはこの「容易に結
合」する基準を満足するものである。
オブジェクトが容易に結合することが可能である
場合には、ステップ136が実行され、その場合に、同様のオブジェクトが結合
され、且つ本プロセスは146において完了する。この結合ステップについては
図6を参照して更に詳細に説明する。オブジェクトが容易に結合可能でない場合
には、本プロセスは、ステップ140において、新たなオブジェクトの型及び取
囲みボックスの情報を格納するために適宜のコレクタ内に充分な格納部が使用可
能であるか否かをチェックする。充分な格納部がある場合には、本プロセスは該
オブジェクトを以下に説明するように、ステップ144において該コレクタへ付
加させる。充分な格納部が存在しない場合には、ステップ142が実行され、そ
の場合に、該コレクタ内の格納部を解放するために多数のオブジェクト結合が強
制される。オブジェクトを結合させることは格納部を解放させる。何故ならば、
2つの結合されたオブジェクトは1つのオブジェクトとして取扱われ、その1つ
のオブジェクトは2つの別個の組ではなく単に1組の型及び取囲みボックス情報
を必要とするに過ぎないからである。オブジェクト結合を強制するプロセスは図
7に関して更に詳細に説明する。オブジェクトの組合わせが強制された後に、格
納部が該コレクタ内において解放され且つステップ144が実行される。
ステップ144において、新たなオブジェクトの型及び取囲みボックスが適宜
のコレクタ内に格納される。そのオブジェクト情報が付加された後に、本プロセ
スは146において示した如くに完了する。
図6は図5のステップ136を示したフローチャートであって、その場合に、
同様のオブジェクトが1つのコレクタ内において結合される。本プロセスは14
8において開始し、且つステップ150において、取囲みボックスの座標が新た
なオブジェクト及び格納されている「同様」のオブジェクトに対して検索される
。例えば、本実施例においては、取囲みボックスは4つの座標を有している。該
オブジェクトの取囲みボックスの座標は以下の如くにして特定することが可能で
ある。
格納したオブジェクトの場合、
XL=取囲みボックスの左側端部のX座標
XR=取囲みボックスの右側端部のX座標
YT=取囲みボックスの上側端部のY座標
YB=取囲みボックスの底側端部のY座標
及び、新たなオブジェクトの場合、
X’L=取囲みボックスの左側端部のX座標
X’R=取囲みボックスの右側端部のX座標
Y’T=取囲みボックスの上側端部のY座標
Y’B=取囲みボックスの底側端部のY座標
次のステップ152において、所定の条件が満足される場合には、格納されて
いるオブジェクトのいずれかの取囲みボックス座標を新たなオブジェクトの対応
する取囲みボックス座標と置換させる。本実施例においては、これらの条件は以
下の如くである。
XLを(XL,X’L)の最小のものと置換
XRを(XR,X’R)の最小のものと置換
YTを(YT,Y’T)の最小のものと置換
YBを(YB,Y’B)の最小のものと置換
従って、コレクタ内に格納されているオブジェクトの座標は、新たなオブジェ
クトが、適宜、より小さいか又はより大きな座標を有する場合にのみ、対応する
新たなオブジェクト座標と置換される。これらの置換が行なわれると、本プロセ
スは154において示した如く完了する。
例えば、図4eにおいて、ページ110のバンド112が示されている。テキ
ストオブジェクト124は以前バンド112のコレクタ内に格納されていたもの
である。テキストオブジェクト126はバンド112のコレクタ内に格納される
べき新たなオブジェクトである。図5のステップ134において、新たなオブジ
ェクト126がテキストオブジェクト124に隣接するものであることが判明し
且つオブジェクト124と同一の型(テキスト)を有するものであ
ることが判明する。従って、オブジェクト124及び126は「同様」のオブジ
ェクトとしての視覚を有し且つ図6のプロセスにおいて結合される。両方のオブ
ジェクトは同一の左側及び右側(X座標)(即ち、XL=X’L,XR=X’R)、
及びオブジェクト124の底部Y座標はオブジェクト126の上部Y座標と同一
であるか又はほぼ等しい。ステップ152において、座標XL及びXRは同一のま
ま残存し、座標YTは同一のまま残存し、且つYBはY’Bによって置換される。
従って、新たな結合されたオブジェクト135は、XLにおいて左側の側部を有
し、YTにおいて上側の側部を有し、XRにおいて右側の側部を有し、且つY’B
において底部側部を有する取囲みボックスを有することとなる。
図7は図5のステップ142を示したフローチャートであって、その場合には
、新たなオブジェクトに対して、コレクタ内の格納部を解放するために多数のオ
ブジェクト結合が強制される。好適には、同一のタイプのオブジェクトのみがこ
のプロセス142において強制的に結合される。本実施例においては、結合数は
調節可能なパラメータであって、それは1以上であり、それは本発明のプロセス
が実行される前に、ユーザが設定することが可能である。例えば、最小の2の結
合を選択することが可能である。最小
数の強制結合はユーザの特定の適用例に依存する場合がある。
本プロセスは156において開始し、且つステップ158において、本プロセ
スは結合目的のためにコレクタ内の同一の型を有する格納されているオブジェク
トを検査する。1実施例においては、各オブジェクトの取囲みボックス及び型が
コレクタ内の他の全てのオブジェクトの取囲みボックス及び型と比較され、その
ことは幾つかの公知の方法のうちの1つに従って達成することが可能である。各
回収したオブジェクトに対して、該オブジェクトを同一の型の各他の回収したオ
ブジェクトと結合させることのコストが計算される。2つのオブジェクトを結合
する「コスト」は結果的に得られる結合されたオブジェクトの面積、これらのオ
ブジェクトの間の分離距離、各オブジェクトの寸法、及び例えば結合を実施する
のに必要な時間等のその他のパラメータにも依存する。オブジェクトを結合させ
るコストを計算するために使用されるコスト関数の一例は以下の如くである。
C=α1(Au−Ap−Aq+Ai)+α2(Au/(Ap+Aq))+α3sx 2+α4
sy 2
尚、
α1,α2,α3,α4=同調用パラメータ
Au=結合を行なうことから得られる取囲みボックスの面積
Ap=提案された結合における第一取囲みボックスの面積
Aq=提案した結合における第二取囲みボックスの面積
Ai=結合されるべく提案されたボックスの交差部の面積
xx=X方向におけるボックスの最小分離(X座標がオーバーラップする場合
には0)
sy=Y方向におけるボックスの最小分離(Y座標がオーバーラップする場合
には0)
この関数は、後のステップにおいて使用されるコストCを与える。この関数の
第一項は、元の2つのオブジェクト内には含まれていない結合オブジェクトにお
いて含まれる全ての面積、即ち包含されねばならないエキストラな空白、を与え
る。好適には、空白を圧縮することは時間及びメモリの浪費であるから(以下に
説明するように)、結合したオブジェクト内には可及的に少ない空白が包含され
るべきである。該関数の第二項は第一項に類似しているが、面積を比較するため
の比を与える。第三項及び第四項は夫々、X方向及びY方向における2つのボッ
クスの分離を与える。同調用パラメータα1等は、該関
数の特定の項を強調するために使用することが可能である。例えば、ユーザが、
該関数の第一項(即ち、α1項)が他の項よりもコストを決定する上でより重要
なものであると考える場合には、パラメータα1を値を増加させることが可能で
あり且つパラメータα2,α3,α4の値を下げることが可能である。これら及び
/又はその他のコストパラメータを反映するコスト値を与えるためにその他の実
施例においては広範な多様なその他の関数を使用することも可能である。
ステップ160において、本プロセスは、ステップ158において上のように
計算したように結合の最も小さなコストを有するオブジェクト対の取囲みボック
ス座標を選択する。これら2つのオブジェクトに対する取囲みボックス座標は図
6のステップ150において記載したように検索される。別の実施例においては
、ステップ158において、1つのオブジェクトを別のオブジェクトと結合する
コストは、結合結果のコストCが指定したスレッシュホールドと等しいか又はそ
れ以下となるまで、異なる対のオブジェクトに対して計算することが可能である
。従って、ステップ160において、最初にこのスレッシュホールドを満足する
オブジェクト対が選択される。この別の方法は、上述した実施例と比較して計算
時
間を節約することが可能である。何故ならば、オブジェクト結合のコストはスレ
ッシュホールドが満足されるまで計算されるに過ぎず、コレクタ内のオブジェク
トの結合の全てについて計算するものではないからである。
次のステップ162において、これら2つの選択されたオブジェクトは、両方
のオブジェクトと同一の型を有しており且つこれら2つのオブジェクトのうちの
1つからの各取囲みボックス座標を有している新たな結合されたオブジェクトで
置換される。結合されたオブジェクト即ち結合オブジェクトの座標は、好適には
、図6のステップ152において上述したような方法を使用して決定される。ス
テップ164において、本プロセスは、所望数の結合が完成したか否かをチェッ
クする。上述したように、所定数の結合は、本処理が開始する前に設定すること
が可能である。所望数の結合が完了していない場合には、本プロセスは166に
おいて完了する。そうでない場合には、本プロセスはステップ168へ続行し、
そこで、更なるオブジェクトの結合が可能であるか否かをチェックする。少なく
とも1つのオブジェクト型に対し該コレクタ内に少なくも2つのオブジェクトが
存在する場合には、更なる結合が可能である。更なる結合が可能である場合には
、本プロセスはス
テップ158へ復帰し、既に計算したのと同一の型を有する2つのオブジェクト
に対して、又は既に結合したいずれかのオブジェクトの型と異なるタイプを有す
る2つのオブジェクトに対してコストを計算する。更なる結合が可能でない場合
には、本プロセスは166において示した如く完了する。
図8は図4bのステップ80を示したフローチャートであり、その場合に本プ
ロセスはバンドAのデータを圧縮することを試みる。このことは、以下に説明す
るように、バンドオブジェクトを交差しない領域へ分割し、該領域へ圧縮アルゴ
リズムを割り当て、且つ該バンドを圧縮することを試みることによって達成され
る。本プロセスは180において開始する。ステップ182において、該バンド
における全てのオブジェクトをカバーする1組の交差することのない矩形領域を
見つけ出す。このことは、該バンドと関連するコレクタ内に格納されている型(
タイプ)及び取囲みボックス情報を使用して行なわれ、且つ図9を参照して以下
に詳細に説明する。
図4fは図4eのバンド112が交差することのない領域へ分割された概略図
である。ステップ182の結果として、多数の交差することのない領域128が
オブジェクト127,135,137の上に及びその周りに設けられている。本
明細書において「領
域」とは、該バンドの何等かのデータ部分を「カバー」(即ち、包含)するバン
ド内のオーバーラップすることのない矩形状の区域のことである。領域の幾つか
は空の領域129であり、それはホワイトスペース(whitespace)即
ち空白のみを包含しており且つオブジェクトをカバーするものではない(即ち、
オブジェクトデータを包含していない)。その他の領域128は非空領域即ち空
ではない領域131であって、それは1つ又はそれ以上のオブジェクトをカバー
している。全ての領域は、好適には、メモリ(例えば、RAM28)の別個の「
領域バッファ」内に格納される。各領域は、該領域の座標、該領域の型(タイプ
)、及び図9aを参照し且つ以下に説明するようなその他の情報を包含するデー
タ構造によって画定される。
図8に戻って参照すると、ステップ184−188はステップ182において
見つけられた交差することのない領域128に対してオブジェクト型を割り当て
る。初期化ステップ184において、各領域は空の組の型が割り当てられ且つ各
領域の「マーク付き」フラッグ(好適には、データ構造内に格納されている)が
偽状態へ設定される。該マーク付きフラグは、1つの領域が空の型を有している
か否かを区別するために使用される。空の型は、該領域が空白
のみをカバーし且つ該バンド内にオブジェクトが存在しないことを表わす。繰返
しステップ186において、カウンタ「i」が0へ初期化され且つ該バンド内の
オブジェクト数と比較される。該バンド内の各オブジェクトは個別的に番号付け
されており且つOBJECT(i)として検討される。iが該バンド内のオブジ
ェクト数より小さい場合には、ステップ118が実行される。
ステップ188において、OBJECT(i)をカバーする1組の領域に対し
て、OBJECT(i)の型が各カバーする領域へ付加され、且つ各領域のマー
ク付けされたフラグが「真状態」へ設定される。該オブジェクトをカバーする交
差することのない領域(非交差領域)がステップ182において見つけられてい
るので、該バンド内の全ての領域は該領域の全区域で1つのオブジェクトをカバ
ーするか、又は1つのオブジェクトを全くカバーすることがないかのいずれかで
ある。OBJECT(i)をカバーする領域のみがステップ188において処理
され、領域データ構造221及びXアレイ及びYアレイ内に格納されている座標
データを使用して、これらのカバーする領域を決定することが可能である。OB
JECT(i)の型がカバーする領域内に既に格納されている型と同一である場
合には、その領域に対
して新たな型が付加されることはない。1つの領域は2つ又はそれ以上の型のオ
ブジェクトをカバーする場合があり、従って、ステップ186−188の異なる
繰返しにわたり2つ又はそれ以上の異なるオブジェクト型が割り当てられる場合
がある。1つを超えるオブジェクト型を有する領域は「複合」型を有するものと
考えられる。カバーする領域の「マーク付き」フラグは真状態へ設定され、これ
らの領域が非空型でマーク付けされたことを表わす。本プロセスは、後に、該マ
ーク付きフラグを検査して、非空型を有する領域と空型を有する領域とを区別す
ることが可能であり、その場合に「真状態」フラグはその領域が非空型を有して
いることを表わす。
例えば、図4fにおいて、領域133はテキストオブジェクト135とグラフ
ィックスオブジェクト127の両方をカバーしている。例えば、オブジェクト1
35はOBJECT(1)(即ち、i=1)であり、且つオブジェクト127は
繰返しステップ186のループにおけるOBJECT(2)(即ち、i=2)で
ある。領域133は、OBJECT(1)の一部とOBJECT(2)の一部と
をカバーする領域である。従って、OBJECT(1)の型(即ち、テキスト)
がi=1である場合に領域133へ付加され、且つOBJECT(2)の型(即
ち、グ
ラフィックス)が、i=2である場合に、領域133へ付加される。従って、領
域133は、テキスト型とグラフィックス型の両方を有しており、即ち「テキス
ト−グラフィックス」複合型を有している。
ステップ188の後に、本プロセスはステップ186へ復帰し、カウンタiを
該バンドにおける次のオブジェクトへインクリメントさせる。次いで、ステップ
188は次のOBJECT(i)をカバーする領域を処理する。全てのオブジェ
クトが各々をカバーする領域を処理すると、iはステップ186において、該バ
ンド内のオブジェクト数より大きくなる。次いで、本プロセスはステップ194
へ続行し、そこで「最良」の圧縮アルゴリズムが各領域の型及びその他のファク
タに基づいて各領域へ割り当てられる。1つの領域に対する「最良」の圧縮アル
ゴリズムは、該領域から派生される表示画像の品質を犠牲にすることなしに、該
領域に含まれるオブジェクト型の結合に対して最良の圧縮比を発生するものと推
定される。好適には、アルゴリズムは、現在の圧縮レベル及び該領域の型に基づ
いて割り当てられる。
好適実施例においては、領域へ割り当てるべきアルゴリズムは、図8a及び8
bを参照して以下に説明するように、メモリ内に格納されているテーブルを参照
する。1つの領域の現在の圧縮レベル及びオ
ブジェクト型が該テーブルへ供給されてその領域に対する対応する「最良」のア
ルゴリズムを検索する。品質及び所望の圧縮比のユーザの拘束条件がこれらのテ
ーブルを使用して割り当てられるアルゴリズムを決定することに貢献することが
可能である。例えば、1つの領域の複数個の型のうちの1つに対して良好な視覚
的品質を与える圧縮アルゴリズムは他の型に対しては充分な圧縮比を得ることが
できない場合がある。従って、ユーザの拘束条件によって決定することの可能な
異なる型(例えばテキスト型及び画像型)に対して視覚的品質と圧縮比との間に
トレードオフ即ち利益衡量が行なわれる場合がある。1つの領域に割り当てられ
た圧縮アルゴリズムは、好適には、図9aに示したように、その領域のデータ構
造内に格納される。
その他の実施例において、その他の拘束条件がどの圧縮アルゴリズムを割り当
てるかを決定することに貢献することが可能な場合があり、特に、例えばテキス
トとグラフィックス又はグラフィックスと画像等の結合させた(複数個の)型を
有する領域に対してそのことが言える。ユーザの拘束条件は、全体的なページ特
性及び該領域を圧縮(又は脱圧縮)するための時間を包含することが可能である
。全体的ページ特性の拘束条件は、一様な品質の画像を与え
るためにページ全体にわたって同様のアルゴリズムを使用すべきであるかを決定
することが可能であり、又はページ全体に対する使用可能な格納空間に基づいて
ページ全体にわたって特定の最小圧縮比を使用すべきであるか否かを決定するこ
とを可能とする。本プロセスは、圧縮されたページのバンド及び/又は領域の異
なる圧縮比を検査することが可能であり、且つコレクタ内及びバンドレコード内
のデータを検査することによっていまだ圧縮されていないバンドに対して比を推
定することが可能である。例えば、1つの領域に、バンド境界を横断する領域と
同一の圧縮アルゴリズムを割り当てることが可能である。領域を圧縮又は脱圧縮
する時間は、使用するアルゴリズムに依存して異なるものとすることが可能であ
り且つ特定のアプリケーションにおいてはユーザにとって懸念事項となる場合が
ある。
別の実施例において、複合オブジェクト型を有する領域に単一の型を割り当て
ることが可能であり、その場合に、該単一の型は該領域の型のうちの1つである
。このような実施例においては、例えば、入力オブジェクト(図4aのステップ
64において受取られる)と関連するコマンドが、そのオブジェクトが他のオブ
ジェクトと関連してどのように表示されるかの情報を包含することが可能である
。例えば、
入力オブジェクトデータは、表示された場合に各オブジェクトが透明であるか又
は不透明であるかを特定し、且つスクリーン上でのオブジェクトの「層化」、即
ちどのオブジェクトが他のオブジェクトの上側に表示されるかを特定する情報を
包含することが可能である。この情報を使用して、ステップ194は、オブジェ
クトの層化及び透明性に基づいて複合型を有する領域に対してどの単一のオブジ
ェクト型を割り当てるべきかを決定することが可能である。
次のステップ196において、領域を検査し且ついずれかの視覚を有する領域
を特定された基準に基づいて他の領域と結合させる。これらの結合は、例えば、
本プロセスを実行するハードウエアの制限に基づいて、該領域の格納空間条件を
減少するために主に行なわれる。このステップにおける領域の結合は、図10を
参照して後に詳細に説明する。次のステップ198において、現在のバンドの領
域を該領域に対して割り当てたアルゴリズムに従って圧縮バンドバッファ内へ圧
縮させることを試みる。圧縮が行なわれないか又は単一の圧縮アルゴリズムが使
用された場合に必要とされる格納空間と比較して、比較的小さな格納空間内にラ
スター化したビットマップを格納するために、バンド内の異なるオブジェクト型
に関し異なる圧縮アルゴリズムを使用すること
が可能である。領域を圧縮し且つそれらを圧縮バンドバッファ内に格納するステ
ップについて図12を参照して詳細に説明する。図4bを参照して上述したよう
に、バンドデータは圧縮バンドバッファ内の使用可能な空間内にフィット即ち適
合しないものである場合がある。該バンドを圧縮すべく試みた後に、本プロセス
は200において示した如く完了する。
注意すべきことであるが、本実施例においては、圧縮アルゴリズムのオブジェ
クトへの割り当て(ステップ194)及びオブジェクト結合への割り当て(ステ
ップ196)は非圧縮バンドバッファ内のラスター化したオブジェクトビットマ
ップデータに関して実施される。一方、オブジェクトがラスター化され且つ非圧
縮バンドバッファ内に格納される前に、例えば図4bのステップ78の前に、圧
縮アルゴリズムの割り当て及びオブジェクト結合を実施することが可能である。
又、アルゴリズムの割り当て及び結合は、バンド表示リストを構築した後である
が該バンドの実際の圧縮を実施する前の任意の時間において実施することが可能
である。
図8aは図8のステップ194における領域に対してアルゴリズムの割り当て
を与えるために使用することの可能なアルゴリズムルックアップテーブルの一例
を示している。本実施例においては、アルゴ
リズムルックアップテーブル、ROM30内に格納されており且つどのような組
み合わせの使用可能な圧縮アルゴリズムを1つの領域へ割り当てるかを決定する
ためにインデックス用テーブル205(以下に説明)に関連して使用することが
可能である。多数のアルゴリズムエントリ201がテーブル202内に設けられ
ており、その場合に、各アルゴリズムエントリ201は識別子212、1つ又は
それ以上の特定した圧縮アルゴリズム203、圧縮パラメータ204を包含して
いる。好適には、アルゴリズムエントリ201がアルゴリズム識別子212を使
用してアクセスし、且つ、次いで、アルゴリズム203及びパラメータ204を
該領域に対して与え且つ割り当てる。例えば、アルゴリズムエントリ1がアクセ
スされると、圧縮アルゴリズムLZWがフィールド204内にリストされている
対応するパラメータが割り当てられる。アルゴリズムエントリ5がアクセスされ
ると、圧縮アルゴリズムLZWが差分パルスコード変調(DPCM)プロセスと
カスケード状態とされ且つフィールド204内にパラメータが割り当てられる。
カスケード型アルゴリズムは1つのアルゴリズム(例えばDPCM)を使用して
データを「前処理」し、次いで該前処理したデータを他のアルゴリズム(例えば
、LZW)で圧縮することに
よって動作する。カスケード型アルゴリズムは、1つのアルゴリズムを単独で使
用する場合とは異なった圧縮比を得るために使用することが可能である。アルゴ
リズムエントリ201は、図8bを参照して以下に説明するインデックス用テー
ブル205によってアクセスされる。
あるアルゴリズムエントリ201はフィールド203内にリストされているの
と同一のアルゴリズムを有しているが、フィールド204内にリストされている
異なるパラメータを有している。圧縮パラメータは圧縮プロセスを調節するため
に与えられ、且つ当業者にとって公知である。例えば、DCTをベースとしたア
ルゴリズムにおいては、一組の量子化係数、係数をシフトさせるためのスレッシ
ュホールドなどを特定することが可能であり、LZWにおいては、ポインタ幅を
特定することが可能であるなどである。異なるパラメータは、異なるアルゴリズ
ムエントリに対して異なる圧縮比及び圧縮特性を与えることが可能である。例え
ば、アルゴリズムエントリ1はLZWにPARAMETERS1を割り当て、一
方アルゴリズムエントリ3はLZWにPARAMETERS3を割り当てる。エ
ントリ1は一つの圧縮比及び特性でテキストを圧縮することが可能であり、一方
エントリ3は異なる圧縮比及び特性でテキストを圧
縮することが可能である。
ある圧縮アルゴリズムは他のタイプのアルゴリズムよりも一層効率的にあるタ
イプ(型)の領域を圧縮することが判明している。従って、テーブル202にお
いて示したような実施例は、テキスト領域に対するLZW圧縮アルゴリズムを与
え、グラフィックス領域に対してLZW圧縮アルゴリズムを与え、且つ画像領域
に対して離散余弦変換をベースとした(DCTをベースとした)圧縮アルゴリズ
ム(例えばJPEG)を与える。決定的圧縮比が必要とされる場合、即ち圧縮の
前に正確に知られている圧縮比が必要とされる場合に、ピクセル深さ減少(PD
R)アルゴリズムを与えることが可能である(その他のタイプ(型)の圧縮比が
推定される)。これらのアルゴリズム、又はカスケード型マルチアルゴリズムは
、以下に説明するように、ユーザの拘束条件に依存して複合オブジェクト型に対
して割り当てることも可能である。その他のスタンダードの圧縮アルゴリズム、
例えばウエーブレット(Wavelet)、RLE、ホフマンなど又はスタンダ
ードでないアルゴリズムであっても、異なるオブジェクト型及び品質レベルに対
して割り当てることが可能である。他のタイプ(型)のアルゴリズムをカスケー
ド型とさせることも可能である。例えば、LZW又はホフマンコーディン
グをランレンスエンコーディング(RLE)アルゴリズムとカスケード状態とさ
せることが可能である。これらの圧縮アルゴリズム(及びこれらのアルゴリズム
で圧縮されたデータの脱圧縮)の実行は当業者にとって公知である。
図8bはアルゴリズムエントリ201(図8aにおけるテーブル202におい
て示されているように)を現在のバンドの各非空領域に対して割り当てるために
図8のステップ194において使用することの可能なインデックス用テーブル2
05の一例を示している。インデックス用テーブル205はROM30(又はR
AM28)内に格納されており且つ、オブジェクト型及び圧縮レベルに従ってア
ルゴリズムエントリ201を割り当てるために使用することが可能である。イン
デックス用テーブル205は本実施例においてはテキスト、グラフィック、画像
であるオブジェクト型206の異なる組合わせに対するエントリを包含している
。オブジェクト型の各可能な非空結合即ち組合わせに対して、エントリグループ
207が存在している。従って、三つのオブジェクト型の各非空結合に対して一
つのグループずつ、本実施例においては七つの異なるエントリグループ207が
存在している。
各エントリグループ207は一つ又はそれ以上の
インデックスエントリ213を包含している。テーブル205において、三つの
エントリ213が各エントリグループ207において示されているが、任意の数
のエントリ213をその他の実施例において設けることが可能である。エントリ
213は一つの領域へ割り当てられるべきアルゴリズムテーブル202における
アルゴリズムエントリ201に対してポイント即ち指向している。好適には、各
エントリは三つのフィールドを有しており、即ちアルゴリズムエントリフィール
ド211と、品質フィールド208と、圧縮比フィールド209とである。アル
ゴリズムエントリフィールド211は図8bにおいて上述したアルゴリズムテー
ブルにおけるアルゴリズムエントリ201に対するポインタ(例えば、識別子)
を格納する。このポインタは一つの領域に対して割り当てられるべき実際の圧縮
アルゴリズム又は「カスケード型」アルゴリズム結合を与える。品質フィールド
208は、フィールド211内のアルゴリズムエントリを使用して該領域を圧縮
する場合に圧縮データの推定品質(又は損失性)を表わす。本実施例においては
、品質フィールドは、フィールド211内のアルゴリズムエントリを一つの領域
へ割り当てるために必要とされる最小の現在の圧縮レベルを表わす。現在の圧縮
レベルは図4a及び4cの
ステップ54及び94において上述した如くに決定される。圧縮比フィールド2
09は、フィールド211内のアルゴリズムエントリを使用して該領域を圧縮す
る場合に得られる推定の圧縮比を表わす。例えば、「2」の圧縮比は、データが
2:1の比で圧縮されることが推定されることを表わす。典型的に、フィールド
208における必要とされる圧縮レベル(より悪い品質)が大きければ大きいほ
ど、該アルゴリズムは一層損失性があり且つフィールド209内における圧縮比
はより高い。
その領域がそのエントリ213に対するオブジェクト型206及び圧縮レベル
208の拘束条件を満足する場合には、エントリグループ207内の何れか一つ
のエントリ213をその領域に対して選択することが可能である。更に、圧縮比
の拘束条件は、一つの領域に対するグループ207におけるエントリ213を選
択するために使用することも可能である。
例えば、領域Rがテキストのオブジェクト型のみを有している場合には、本プ
ロセスはオブジェクト型206を検査し且つオブジェクト型(テキスト)に対応
するグループ207aを選択する。三つのインデックスエントリ213a,21
3b,213cがグループ207a内に設けられている。現在の圧
縮レベルが1であると仮定すると、第一エントリ213aのみを選択することが
可能である。なぜならば、その品質フィールドは0であり、且つ現在の圧縮レベ
ルと等しいか又はそれより低い品質フィールド208を有するエントリのみを選
択することが可能であるからである。第一エントリ213aは、図8aのテーブ
ル202内のアルゴリズムエントリ1に対するポインタ211を包含しており且
つフィールド209において、アルゴリズムエントリ1に対する推定圧縮比が2
.0であることを表わす。アルゴリズムエントリ1は領域Rに対して割り当てら
れるべきLZWアルゴリズム(及びパラメータ)を供給し、それはテキスト圧縮
に対して適切なものである。
現在の圧縮レベルが上述した例において2である場合には、第一エントリ21
3a又は第二エントリ213bの何れかを領域Rに対して選択することが可能で
ある。エントリ213aは2.0の圧縮比を与え、且つエントリ213bは5.
0の圧縮比を与える。従って、ユーザの拘束条件はどのエントリを選択するかを
支配することが可能である。より高い品質が所望される場合には、エントリ21
3aを選択することが可能であり、より高い圧縮比が所望される場合には、エン
トリ213bを選択することが
可能である。領域Rが、例えばテキストと画像などの複合型を有している場合に
は、グループ207bからのエントリ213は同様の態様で選択される。
図9は図8のステップ182を示したフローチャートであり、その場合に、現
在のバンド内の全てのオブジェクトをカバーする一組の非交差矩形状領域が見付
けられる。図9のプロセスは単に一例であるに過ぎない。なぜならば、オブジェ
クト取囲みボックスから非交差領域を与えるための多数の可能な方法が存在して
いるからである。本プロセスは210において開始し、且つステップ212にお
いて、該バンド内のオブジェクト取囲みボックスの左側又は右側端部を記述する
全てのX座標を有するXアレイが形成される。該バンドの左側及び右側端部はX
アレイ内のX座標として包含される。例えば、図4fに示したように、X座標1
39はXアレイ内に格納される。
ステップ214において、XアレイはX座標の増加する順番でソート(sor
t)即ち種類分けされ、且つ重複するX座標値が該アレイから除去される。従っ
て、その結果得られるアレイはnX個の値を包含している。ステップ216にお
いて、該バンド内のオブジェクト取囲みボックスの上側端部又は底端部を記述す
る全てのY座標を有するYアレイが形成
される。該バンドの上側端部及び底端部もYアレイ内のY座標として包含される
。例えば、図4fに示したように、Y座標141はYアレイ内に格納される。ス
テップ218において、YアレイはYの増加する座標の順番でソートされ、且つ
重複するY座標は該アレイから除去される。
最後に、ステップ220において、該バンドは(nX−1)(nY−1)個の
矩形状の非交差の領域に分割(即ち、「区画化」)される。各領域はRi,jとし
てラベル付けすることが可能であり、その場合に0≦i<nX−1及び0≦j<
nY−1である。従って、領域Ri,jの座標(X,Y)の範囲はXi≦X<Xi+1
及びYj≦Y<Yj+1であり、尚XiはXアレイにおけるi番目のX座標であり(
0≦i<nX)、及びYjはYアレイにおけるj番目のY座標である(0≦j<
nY)。注意すべきことであるが、離散したピクセルが表示されるので、二つの
領域は隣接端部上において同一の座標を有するものではない。従って、一つの領
域はXi-1の右側端部のX座標を有しており、且つ右側の隣接領域はXiの左側端
部のX座標を有することとなる。次いで、本プロセスは223において完了する
。
図9aに示したように、ステップ220において形成された各領域Ri,jは、
好適には、領域バッファ内
に格納されているデータ構造221を包含している。該領域データ構造は、好適
には、これらの領域の左上角部に従って領域バッファにおいて「ラスター表示順
番」(即ち、スキャンライン順)で順番付けされており、従って図13を参照し
て以下に説明するように、脱圧縮器はこの順番でこれらの領域を検索することが
可能である。本実施例のデータ構造221は、マスターフラッグ222、スレー
ブフラッグ224、マーク付きフラッグ226、Xインデックス228、Yイン
デックス230、オブジェクト型(タイプ)232を含む多数のフィールドを包
含している。データ構造221のその他の形態をその他の実施例において使用す
ることが可能である。マスターフラッグ222及びスレーブフラッグ224は領
域結合を実行するために使用され、且つ図10及び11を参照して以下に詳細に
説明する。マーク付きフラッグ226は、上述した如く、ある領域が非空型又は
空型(それぞれ、真状態又は偽状態)の何れを有するかのマーク付けを行うため
に使用される。
Xインデックス228及びYインデックス230はXアレイ及びYアレイ内へ
インデックス(オフセット)で該領域の位置をそれぞれ記述し、且つ、好適には
、0からそれらのそれぞれの方向における領域数の範囲にわたる。これらのイン
デックスはある
領域を特定する場合に、その領域の左下座標によって特定する。例えば、(1,
2)の「Xインデックス,Yインデックス」は領域R1,2を特定し、それはバン
ドの左側端部から2番目であり且つバンドの上側端部から3番目である。領域R1,2
の座標は、Xアレイ内の第二X座標からXアレイ内の第三X座標(−1)の
範囲にわたり、且つYアレイ内の第三Y座標からYアレイ内の第四Y座標(−1
)の範囲にわたる。これらのインデックスは、該領域がマスターでもスレーブで
もない場合に適用される。その領域がマスターである場合には、Xインデックス
228は対角線上に対向したスレーブ領域の座標をインデックスする。その領域
がスレーブである場合には、X及びYインデックス228及び230はスレーブ
のマスター領域の座標をインデックスする。
オブジェクト型フィールド232は、その領域がカバーする全てのオブジェク
ト型を特定する。本実施例においては、このことは一連のビットとして実現され
、その場合に1ビットが各可能なオブジェクト型に対して設けられる(「空」型
は包含しない)。ある型に対してビットがオンである場合には、その領域はその
型(タイプ)のオブジェクトをカバーしている。データ構造221は、例えば非
圧縮バンドバッファ内の領域の位置及びその領域に対するスキ
ャンライン上のピクセル数及びピクセル深さなどの一般的なパラメータなどの領
域の圧縮/脱圧縮に対して必要なその他の情報を格納し、それは図12を参照し
て説明するように圧縮プロセスによって使用される。
注意すべきことであるが、バンドをカバーする一組の非交差領域を与えるため
に別の実施例においてその他の方法を使用することが可能である。例えば、上述
した好適な座標アレイ方法の代わりにリンクさせたリストを使用する方法を使用
することが可能である。リンク型リスト方法においては、各領域は、初期的には
、各オブジェクトに対応することが可能であり(そのバンドに対するコレクタに
おいて特定されて)且つ取囲みボックス及び型記述を包含するデータ構造を有す
ることが可能である。これらの領域データ構造の各々は、当業者にとって公知の
如く、リンク型リスト内に包含させることが可能である。二つの領域が互いに交
差する場合には、これらの領域はリンクさせたリスト即ちリンク型リストから取
除き且つ非交差即ち交差していない領域へ分割し、且つこれらの非交差領域は交
差領域の代わりに該リンク型リスト内に挿入される。この様にしてリンク型リス
トを取扱う方法は当業者にとって公知である。該リンク型リスト内の各二つの隣
接する領域を同様に
検査し且つ適宜非交差領域と置換させることが可能である。
図10は図8のステップ196を示したフローチャートであって、その場合に
は領域が特定の基準に基づいて結合される。本プロセスは240において開始し
、且つステップ242において、各行の領域が検査される。「行」の領域とは、
バンドの水平行における全ての領域(同一のY座標を有する領域)のことを意味
している。ある領域の割り当てられたアルゴリズムは、好適には、その領域の左
側及び右側の領域の割り当てられているアルゴリズムと比較される。各行におい
て、同一の圧縮アルゴリズムが割り当てられている隣接領域が結合される。これ
ら二つの領域の間に中間の領域が存在しない場合には、二つの領域は「隣接」し
ているものと考えることが可能である。領域を結合する方法については、図11
を参照して詳細に説明する。好適には、二つの領域が結合され、且つ次いでその
結合領域は、アルゴリズムが同一である場合には、付加的な隣接領域と結合され
る。これは達成することの可能な最も「コスト」の低い結合である。なぜならば
品質における妥協はなされず且つ格納空間が節約されるからである。従って、こ
の結合は、好適には、以下に説明するその他の領域結合に先立って実行される。
次のステップ244において、同一の割り当てられた圧縮アルゴリズムを有す
る非空領域の対が、その行の領域に関してハードウエア拘束条件が破られる場合
には、該対を分離する空領域と結合される。本実施例のハードウエア拘束条件は
、典型的に、水平のスキャンライン上に存在することの可能な領域数に対する制
限を包含している。この制限は、主に、例えばASIC38における使用可能な
メモリの量によって支配される。従って、この制限が許容するよりもより多くの
領域が一つの行内に存在する場合には、ハードウエア拘束条件が破られる。ステ
ップ244において、中間の空領域が結合領域内に包含されて、一つの行内の領
域数を減少させる。なぜならば、同様の圧縮アルゴリズムを有する全ての隣接領
域は既にステップ242において結合されているからである。例えば、図4fに
示したように、領域243が領域137と同一の圧縮アルゴリズムが割り当てら
れており、且つその領域行内には多すぎる行が存在している場合には、領域24
3及び137の対が空領域245と結合されて一つの結合領域を形成する。領域
を結合する方法は図11を参照して詳細に説明する。この場合にも、結合領域は
、所要条件が満足される場合には、結合して付加的な領域と結合させることが可
能である。ステップ244に
おいて実行した結合は、ステップ242の結合よりもより「コスト」がかかる。
なぜならば、空の空白(バックグラウンド)データが領域内に含まれているから
である。このことは、空の空間を圧縮させ且つ圧縮バンドバッファ内に格納させ
、そのことは効率が悪い。理想的には、オブジェクトデータを有しているが空の
空間を有していない領域のみが望ましく、従ってオブジェクトデータのみが圧縮
バンドバッファ内へ圧縮させることが望ましい。
次のステップ246において、本プロセスは、ハードウエア拘束条件が現在の
バンド内の何れかの行の領域内において未だに破られているか否かをチェックす
る。そうである場合には、ステップ248が実行され、その場合に、付加的な領
域結合がその拘束条件を破っている行内において強制的に行われる。好適には、
「コスト」の小さな結合を有する領域が最初に結合される。この強制的領域結合
のコストは、好適には、個々の領域に対して必要とされる圧縮格納部の推定量を
超える結合領域に対して必要とされる圧縮格納部の推定量に基づくものである。
例えば、二つの領域R1及びR2が、別々に圧縮された場合には、それぞれ、B
1及びB2バイトの格納部を必要とすることが推定されて、且つ結合され且つ圧
縮された場合にはBバイトを必要とすることが推定さ
れる場合には、結合のコストはB−(B1+B2)である。このコストは、時々
、負となる場合がある。なぜならば、各領域と関連して圧縮不可能な格納「オー
バーヘッド」のある量が存在しているからであり、領域を結合させることは、該
オーバーヘッドを一つの結合領域において共用させることを可能とするからであ
る。
このステップ246において、異なる割り当てられた圧縮アルゴリズムを有す
る領域であっても、領域数を減少させるために結合されねばならない場合がある
。従って、このステップは最もコスト高で且つ最も望ましくないタイプの領域結
合を有している。なぜならば、幾つかのオブジェクトタイプ(型)は結果的に効
率的なアルゴリズムで圧縮することができない場合があるからである。必要な場
合には、二つの異なる型を有する領域が結合される場合には、アルゴリズムの割
り当てを変更することが可能である。例えば、テキスト領域と画像領域とがこの
ステップにおいて結合されねばならない場合には、割り当てられている圧縮アル
ゴリズムを、テキストと画像の複合オブジェクト型に対してよりよい品質を与え
るアルゴリズムへ変更することが可能である。領域結合は、図11を参照して説
明するように実施することが可能である。
ステップ248の後に、本プロセスはステップ246へ復帰し、ハードウエア
拘束条件が該バンドの何れかの行に関して未だに破られているか否かをチェック
する。未だに破られている場合には、ステップ248が必要な回数だけ繰返し行
われる。ハードウエア拘束条件がもはや破られていない場合には、ステップ25
0が実行され、その場合に、可能であり且つ「コスト」が限界内のものである場
合には、垂直方向に隣接した領域が結合される。この場合の「コスト」は、ステ
ップ246におけるのと同様に特定することが可能である。垂直方向の結合は図
11を参照して説明するように達成される。垂直方向の結合は、好適には、ステ
ップ242,244,248において全ての水平方向の結合が完了した後に達成
される。
図11は図10のステップ242,244,248,250における領域を結
合する方法を示したフローチャートである。二つ又はそれ以上の領域からなるグ
ループが結合されることが所望されているものと仮定する。本方法は260にお
いて開始し、且つステップ262において、複数個の領域からなる該グループの
左下領域がマスター領域として指定される。該グループ内の残りの領域は該マス
ター領域のスレーブ領域として指定される。このことは、該マスター領域に対し
てマスターフラッグを真状態へ
設定し且つ該スレーブ領域の各々に対してスレーブフラッグを真状態に設定する
ことによって、図9aのデータ構造211において達成される。
ステップ264において、該マスター領域のオブジェクト型が該スレーブ領域
の全てのオブジェクト型で増大される。本実施例においては、それは、マスター
領域のオブジェクト型フィールド232内におけるビットをスレーブ領域内に含
まれる全ての型に対して設定することにより達成される。何れの重複するオブジ
ェクト型は無視される。ステップ266において、マスター領域は該一組のスレ
ーブ領域の境界でマーク付けがなされる。好適実施例においては、マスター領域
のXインデックス及びYインデックスがマスター領域に対して対角線反対方向に
最も遠いスレーブ領域のインデックスへ設定される(即ち、マスターの右側及び
上側に最も遠いスレーブ領域)。ステップ268において、各スレーブ領域はマ
スター領域に対してポイント即ち指向するように設定される。図9aのデータ構
造221においては、このことは各スレーブのXインデックス及びYインデック
スをマスター領域のインデックスに設定することによって達成される。
例えば、二つの水平方向に隣接した領域を結合すべき場合には、最も左側の領
域がマスターであり且
つその右側のスレーブ領域のXインデックス及びYインデックスを有している(
そのスレーブ領域はマスターに対して対角線反対方向であると考えられる)。右
側の領域はスレーブ領域であり且つマスター領域のXインデックス及びYインデ
ックスを有している。該スレーブはマスターの位置(座標)を有しており、且つ
該マスターは反対側のスレーブの位置(座標)を有しているので、結合領域の全
体的な面積は既知である。注意すべきことであるが、その他の実施例においては
、その他の領域結合方法を使用することが可能である。
図12は図8のステップ198を示したフローチャートであり、その場合に、
該バンドをそのバンドに割り当てられたアルゴリズムに従って圧縮バンドバッフ
ァ内に圧縮すべき試みが行われる。該圧縮は、ASIC38によって、又は、ソ
フトウエアプロセスによって実行することが可能である。本プロセスは274に
おいて開始し、且つ、ステップ276において、該バンド内の選択した非空領域
に対する属性が該領域バッファ内のデータ構造221から読取られる。一つの領
域に対する「属性」は、該領域を圧縮するために使用される該領域のデータ構造
内に格納されている関連情報を包含している。これは、その領域に割り当てられ
た圧縮アルゴリズムのID
即ち識別、非圧縮バンドバッファにおける該領域の位置、該領域の寸法、スキャ
ンラインの幅、ピクセル深さ(一つのピクセルにおけるビット数)などを包含し
ている。本実施例においては、データ構造のスキャンライン順番における第一領
域データ構造が最初に領域バッファから検索され且つそれの関連する領域が圧縮
され、次いでスキャンライン順における次の領域が追従する。スキャンライン順
はラスター表示順であり、その場合に、図13及び13aにおいて以下に説明す
るように、スキャンラインポインタが出力表示装置上でピクセルを表示させる。
領域のスキャンライン順は、好適には、バンドの左上にある領域から開始し(各
領域の左上角部によって決定される)、次いで右側の次の領域となり、且つ左か
ら右へ、上から下への順番で以下同様である。更に、領域データ構造はスキャン
ライン順で領域バッファ内に実際に格納されることが必要なものではなく、それ
らは、例えば、当業者にとって公知の如く、リンクされたリストでスキャンライ
ン順番でリンクさせることが可能である。別の実施例においては、その他の順番
で領域を検索し且つ圧縮することが可能である。
ステップ277において、ステップ276において選択された領域に対して「
領域記述子」レコード
を形成し且つ圧縮バンドバッファ内の各圧縮バンドの始めに格納させる(領域記
述子におけるある情報がステップ278における領域の圧縮の後に付加される)
。領域記述子は、好適には、ラスター表示順において、該バンド内のその他の領
域に対するその他の領域記述子とリンクさせることが可能である。領域記述子は
例えば、ASIC38による圧縮及び脱圧縮プロセスにおいて使用することが可
能である。各領域記述子は、好適には、関連する領域の高さH(ピクセル数)及
び幅W(ピクセル数)、ページ上の該領域の位置(例えば座標)、例えばバイト
オフセットなどの非圧縮バンドバッファにおける該領域の開始位置に対するポイ
ンタ(圧縮する場合に使用される)、例えばバンドの開始からのバイトオフセッ
ト(領域を圧縮した後に格納され且つ脱圧縮する場合に使用される)のような圧
縮バンドバッファにおける該領域の位置に対するポインタ、該領域を圧縮するた
めに使用される圧縮アルゴリズムに対するポインタ、及び例えば該領域に対する
スキャンライン上のピクセル数及びピクセル深さなどの一般的なパラメータを包
含している。該情報は領域データ構造221及びその他のシステムパラメータか
ら検索される属性から決定することが可能である。その他の実施例においては、
領域記述子は、圧縮バンドバ
ッファ以外のその他の区域内に格納させることが可能であり、又は実際の圧縮プ
ロセスの前に形成することが可能である。
ステップ278において、「圧縮器」(即ち、適宜の圧縮アルゴリズムを実行
するプロセサ及び/又は任意の関連するソフトウエア)が領域記述子からの属性
を使用して非圧縮バンドバッファ内の非空領域を圧縮すべく試みる。該圧縮器は
、割り当てられた圧縮アルゴリズムを使用して非圧縮バンドバッファからの現在
の領域に対するデータを圧縮すべく試み且つ圧縮バンドバッファ内に圧縮したデ
ータを格納する。
この圧縮データは、図4bを参照して説明したように、圧縮バンドバッファ内
にフィットする場合もあり又はしない場合もある。その圧縮が不成功のものであ
る場合、即ち圧縮データが使用可能な格納空間をオーバーフローする場合には、
本プロセスは282において完了する。その圧縮が成功である場合には、圧縮さ
れた領域は「バンドレコード」内において「圧縮」としてマーク付けが行われ、
且つ、圧縮バンドバッファにおける該バンドの開始位置及び現在の圧縮レベルが
バンドレコード内に格納される。次いで、ステップ281が実行され、その場合
に、本プロセスは、別の領域が圧縮すべく使用可能であ
るか否かをチェックする。別の非空領域が領域バッファ内において使用可能であ
る場合には、本プロセスはステップ276へ復帰し、属性を読取り且つ次の領域
を圧縮する。別の非空領域が領域バッファから得られない場合には、本プロセス
は282において示した如く完了する。
注意すべきことであるが、圧縮バンドバッファ内には非空領域のみが圧縮され
且つ格納される。該バンド内の空領域、即ち「バックグラウンド」区域又はピク
セル(空白)は、圧縮され又は格納されることはない。なぜならば、これらの領
域はオブジェクトデータを包含するものではないからである。従って、本発明は
オブジェクトデータを包含するページの部分のみを圧縮し且つ格納することによ
って、格納空間を節約すると共に圧縮時間を節約している。バックグラウンド区
域は図13に関して以下に説明するように、脱圧縮及び/又は表示の時に所望の
属性(輝度、カラーなど)で表示させることが可能である。
従って、本発明は、データを表示する場合に良好な比較的品質を維持しながら
、ラスタライズ即ちラスター化したデータによって必要とされる格納空間を減少
させるための複数個の圧縮アルゴリズムを実行する。これらの圧縮アルゴリズム
は、上述した如
く、幾つかの拘束条件に鑑み圧縮されるデータのタイプ即ち型に対して最適化さ
れている。公知の圧縮アルゴリズムは、典型的に、一つの型のオブジェクトを効
率的に圧縮することが可能であり、本発明方法は、単一の圧縮アルゴリズムが全
てのオブジェクト型に対して使用された場合におけるよりも許容可能な品質で必
要とされる格納空間を著しく減少させて全ての型のオブジェクトを圧縮させるこ
とを可能とする。
図13は図3のステップ46を示したフローチャートであって、その場合に、
圧縮データは割り当てられた圧縮アルゴリズムに基づいて脱圧縮され且つ脱圧縮
データが表示される。一実施例においては、脱圧縮方法43は図2aに示したよ
うにASIC38のようなハードウエアによって実行される。一方、脱圧縮はソ
フトウエアで実行することが可能である。
本プロセスは290において開始する。ステップ294において、「領域記述
子」(即ち同様の領域のリスト)の数Nが現在の表示するページのデータに対す
る圧縮バンドバッファにおけるデータのバンドの始めから検索される。該領域記
述子は図12を参照して説明し且つそれらの関連する圧縮領域が格納されるのと
同一の順番で検索される。検索された領域記述子は「脱圧縮バッファ」内に格納
し、それ
は、例えば、ASIC38内に設けることが可能である。検索した領域記述子の
数Nは異なる実施例においては異なるものとすることが可能である。好適には、
Nは図10を参照して上述した如く、単一の行即ち水平なスキャンライン上に設
けることの可能な最大領域数よりも少なくとも一つ大きいものである。このこと
は、以下に説明する如く、バンドの終わりに到達した場合に脱圧縮バッファ内に
少なくとも一つの領域記述子が存在することとなるので望ましい。
次に、本プロセスはステップ296において次のスキャンラインによって交差
される領域を決定する。このステップの第1回目が実行されると、「次の」スキ
ャンラインが該ページの上部における第一水平スキャンラインである。本明細書
において「スキャンライン」という用語は、左側から右側へトレースされるペー
ジ上の水平線である(図13aを参照して説明する)。これはラスター出力装置
においてピクセルを表示する場合の典型的な方向であり、且つデータは、典型的
に、スキャン表示順に出力装置へ供給される。実施例に依存して、スキャンライ
ンは水平方向右から左側のライン、垂直、上から下側のラインなどとすることが
可能である。従って、「左」、「右」、「上」、「水平」、「垂直」などの用語
は、
左から右、上から下のスキャンラインのことを意味し且つその他の実施例におい
ては適宜変えることが可能である。次のスキャンラインが表示されるページの幅
を横断してトレースされて、該ページ上の何れかの領域が現在のスキャンライン
によって交差されたか否かを決定する。このことは、領域記述子において提供さ
れる如く、該ページ上の領域の位置及び領域の高さ及び幅を検査することによっ
て行うことが可能である。
次のステップ298において、本プロセサは、スキャンラインポインタが現在
ある領域の左側の境界上又は内側にあるか否かをチェックする。スキャンライン
ポインタは、表示プロセスにおいてページの幅を横断してスキャンラインがトレ
ースされる場合のスキャンラインの「前端」である。最初にこれらのステップを
実行する場合に、スキャンラインポインタは、好適には、ページの左上角部から
スタートする(該ページは任意の方向に配向させることが可能である)。スキャ
ンラインポインタは非空領域内又は空領域内の何れかとすることが可能であり、
該空領域は、本明細書においては、「バックグラウンド」区域即ちバックグラウ
ンドピクセルと呼称する。該バックグラウンド区域は圧縮されておらず且つ圧縮
バンドバッファ内に格納されていない。なぜなら
ば、これらの区域に対しては格納すべきオブジェクトデータが存在していないか
らである。
スキャンラインポインタがステップ298において非空領域の左側境界上又は
その内側に存在しない場合には、ステップ300が実行され、その場合に、現在
のスキャンライン上のバックグラウンドピクセルが、スキャンラインポインタが
左側から右側へ移動するに従い、ディスプレイへ逐次的に出力される。スキャン
ラインポインタがある領域の開始(左)境界に到達するか、又は現在のスキャン
ラインの終わりに到達すると、さらなるバックグラウンドピクセルは出力されな
い(スキャンラインポインタが別のバックグラウンド区域へ移動するまで)。バ
ックグラウンドピクセルは、例えば白色の用紙の白色のバックグラウンドのよう
な「空白」ピクセルとすることが可能である。好適には、バックグラウンドピク
セルの例えばカラー、輝度などの任意の属性を空白ピクセルに対してユーザが特
定することが可能である。
ステップ300の後に、本プロセスは、該ポインタがステップ302において
ある領域の開始点にあるか否かをチェックする。そうである場合には、以下に説
明するようにステップ304を実行する。該ポインタがステップ302において
ある領域の開始
点にない場合には、該ポインタはスキャンラインの終わりにある。次いで、ステ
ップ310が以下に説明するように実行される。
スキャンラインポインタがある領域をポイント即ち指摘すると、ステップ29
8におけるか又はステップ300におけるバックグラウンドピクセルを表示した
後の何れかにおいて、ステップ304が実行され、その場合に、脱圧縮「状態」
が現在ポイント即ち指摘されている領域に対して検索される。その脱圧縮状態は
圧縮データを脱圧縮するために「脱圧縮器」(即ち、適宜の脱圧縮アルゴリズム
及び脱圧縮用のパラメータを実行するプロセス)が必要とする情報であって、例
えば現在の領域に対する圧縮バッファ内への現在のポインタ、デコードツリーな
どであり、それは当業者にとって公知である。圧縮データのある領域に対する脱
圧縮状態情報は、典型的に、圧縮領域データの始めに位置されており、従って脱
圧縮器はその状態をすぐさま読取ることが可能であり且つ該領域データを脱圧縮
することが可能である。別の実施例においては、脱圧縮状態は該領域の始めに格
納されているポインタによって参照することが可能である。例えば、該ポインタ
はその領域に対する脱圧縮状態をリストしている別個に格納されているテーブル
に対してポイント即ち指摘することが可
能である。例えばデコードツリー、エンコードツリー、一時的データなどの圧縮
/脱圧縮において使用される構造及びデータは、例えば、図2aの実施例におけ
るASIC38に対してローカルなRAM39内に格納することが可能であり、
又は別の実施例においてはASIC38内に格納することが可能である。
ステップ304がある領域の始め(左上角部)において実行されると、即ちそ
のページ上のいずれかのスキャンラインに対する該領域の最初の発生時に、脱圧
縮状態が最初に読込まれ且つ状態バッファ内に格納され、例えば、ASIC38
及び/又はRAM39(又は28)において実行される。スキャンラインポイン
タが後の(より下側の)スキャンライン上で同一の領域をポイントすると、その
領域に対する脱圧縮状態が該状態バッファから読込まれる。該領域の高さH1及
び幅W1(図13aに示してある)も読込まれ、これらの寸法は上述した領域決
定ステップ296から既知である。次のステップ306において、本プロセスは
現在のスキャンライン上の脱圧縮バッファからの隣接領域のデータを脱圧縮し且
つその脱圧縮した領域のデータを表示すべく出力する。該領域の幅に対応する圧
縮データの量が脱圧縮バッファから脱圧縮される。現在のスキャンライン上の現
在隣接している領域データの全てが脱圧縮さ
れ且つスキャンラインポインタが該領域の右側境界に到達すると、本プロセスは
該領域データの脱圧縮及び表示を停止する。本プロセスは、それが脱圧縮を停止
した場所に圧縮バンドバッファの位置を格納し、従ってそれは次のスキャンライ
ンがこの領域に対してポイントする場合に、同一の領域データの脱圧縮を開始す
ることが可能である。本プロセスは、好適には、この位置をASIC38のレジ
スタ内に格納するが、それはその他のメモリ内に格納することも可能である。
次のステップ308において、本プロセスは、スキャンラインポインタが表示
されたページの右側端部における現在のスキャンラインの終わりにあるか否かを
チェックする。そうでない場合には、本プロセスはステップ298へ復帰し、そ
こで、本プロセスは、スキャンラインポインタが別の領域へポイントしているか
否かをチェックし、且つバックグラウンド及び領域データが上述した如くに出力
される。該ポインタがスキャンラインの終わりにある場合には、本プロセスは、
ステップ310において、何れかの領域が完全に脱圧縮され且つ表示されたか(
「完了」)否かをチェックする。このことは、例えば、何れかの領域の終わり情
報が脱圧縮バッファから検索されたか否かを決定することによってチェックす
ることが可能である。一つ又はそれ以上の領域が完了されている場合には、ステ
ップ312において、完了した領域の量と等しい多数の新たな領域記述子が圧縮
バンドバッファから検索され且つ脱圧縮バッファ内へ格納される。このプロセス
を継続して行うことによって、新たな領域記述子が究極的に該ページ上の各相次
ぐバンドのデータから付加される(例えば、各バンドの領域記述子は次のバンド
の領域記述子とリンクさせて、効果的にページ全体にわたる記述子を与えること
が可能である)。
注意すべきことであるが、スキャンラインポインタがあるバンドの終わりに到
達すると、複数個の領域が完了されている可能性がある。なぜならば、どの領域
もバンド境界を超えて延在することはないからである。バンドの終わりにおいて
完了することの可能な領域の最大数は、許容される水平方向の領域の最大数であ
る。従って、許容される水平方向の領域の最大数は、脱圧縮バッファ内に一度に
ロードさせることの可能な領域記述子の量によって影響される場合がある。圧縮
バンドバッファから脱圧縮バッファへ付加的な領域記述子をロードするためには
時間が必要であるので、脱圧縮バッファがこの最大数よりも少なくとも一つ多い
領域記述子を保持することが可能であることが望ましく、従って新たな領域
記述子をロードする場合に一つの領域を脱圧縮することが可能となる。
ステップ310においてどの領域も完了されていないか、又はステップ312
において新たな圧縮領域記述子がロードされた後に、本プロセスは、スキャンラ
インポインタがそのページの終わりにあるか否かをチェックする。そうでない場
合には、本プロセスはステップ296へ復帰し、そこで次のスキャンラインによ
って交差される領域(例えば、本実施例においては前のスキャンラインのすぐ下
のスキャンライン)を決定する。スキャンラインポインタがそのページの終わり
にある場合には、本プロセスは314において完了する。次いで、所望により、
290における本プロセスの開始へ復帰することによって、次のページを脱圧縮
し且つ表示することが可能である。
別の実施例においては、図13のプロセス46をページ毎ではなくバンド毎に
実行することが可能であり、従ってステップ314はあるバンドの終わりをチェ
ックする。バンドの終わりに到達すると、本プロセスはステップ292へ復帰し
、次のバンドに対する領域記述子を検索することが可能である。異なる実施例に
おいては、出力表示装置がスキャンライン順にデータを出力することが必要とし
ない場合
がある。圧縮領域データはこの様な実施例に対してはその他の態様で出力装置へ
供給することが可能である。
単一のスキャンライン上に位置させることの可能な領域数に対する上述した制
限は脱圧縮プロセスに依存する場合がある。例えば、単一のスキャンラインは多
数の領域と交差することが可能であるので、各領域の脱圧縮状態、各領域に対し
て脱圧縮が抜け出た圧縮バンドバッファ内の位置、及びスキャンライン上の各領
域の寸法(及びリンクされたリストの領域が実行されている場合には次続の領域
へのリンク)を格納するために別個のメモリ空間を割り当てることが必要である
。メモリ空間は、脱圧縮バッファのためにも必要とされる。使用可能なメモリ格
納部又はASICレジスタが欠乏している場合には、脱圧縮する場合のこれらの
格納条件に起因して、制限した数の領域のみに対する領域情報を格納することが
可能である。
別の実施例においては、領域データを脱圧縮させ且つ表示させる代わりにメモ
リ又は異なる格納装置へ格納させることが可能である。例えば、1ページのデー
タは本発明の異なる圧縮アルゴリズムを使用して効率的に圧縮させ且つ比較的小
型のメモリ空間内に格納させることが可能である。後の時間におい
て、より大きなメモリ格納区域が使用可能となり、且つその圧縮データを出力表
示装置への代わりにそのメモリへ脱圧縮させることが可能である。メモリに対し
て脱圧縮させる場合には、図13のプロセスを、必要な場合には、表示ステップ
なしに使用することが可能である。しかしながら、好適実施例においては、デー
タは、好適には、ページ毎ではなくバンド毎にメモリに対して脱圧縮させ且つス
キャンライン又はスキャンライン順番は使用しない。各領域は、メモリに対して
一度に完全に脱圧縮させることが可能であり、且つ脱圧縮状態はスキャンライン
が領域と交差するたびに断続的に保存し且つ検索することが必要なものではない
(例えば、図4b及び4cのステップ76又は100における如く)。同様に、
特定の領域の脱圧縮はスキャンラインの経路に依存して断続的に中断されること
を必要とするものではない。更に、マルチ脱圧縮プロセスは、メモリに対して脱
圧縮実施例において同時的に実行することが可能である。なぜならば逐次的なス
キャンライン表示の拘束条件は適用されないからである。
図13aは図13において説明したようなあるバンドを脱圧縮するプロセスの
概略図である。一つのバンド320のデータは、二つのビットマップ領域322
及び324を包含している。表示されると、
これらの領域はバックグラウンド区域326上に位置される。スキャンライン3
28は該バンドの左端から開始し、且つバックグラウンドピクセルは領域322
の左側境界330に到達するまで出力される。領域322の始めに格納されてい
る脱圧縮状態が脱圧縮バッファからのプロセスによって読取られ且つその状態が
状態バッファ内に格納される。この領域の高さH1の寸法は、ピクセル数であり
、関連する領域記述子から読取られ、従って本プロセスは何時その領域に対する
脱圧縮が完了するかを知ることとなる。ピクセル数での領域の幅W1も読取られ
且つ圧縮バンドバッファにおけるこの量の領域データが脱圧縮され且つ出力され
る。これはスキャンラインポインタを領域322の右側端部へ移動させ、且つ脱
圧縮が抜け出した脱圧縮バッファにおける位置が、例えば、RAM39又はAS
IC38内に格納される(この位置は又RAM28又は別の格納場所内に格納す
ることが可能である)。次いで、本プロセスは、スキャンラインポインタが領域
324の左側境界332へ移動するまで、更なるバックグラウンドデータを出力
する。このことは領域324の始めにおけるものであるから(即ち、スキャンラ
インポインタによって該領域のデータが最初にポイントされた時)、この領域に
対する脱圧縮状態が状態バッファの異な
る区域内に格納される。次いで、現在のスキャンライン上の領域324の圧縮デ
ータを同様に領域322に対して脱圧縮させる。スキャンラインポインタが該バ
ンドの右側境界334に到達すると、新たなスキャンライン336が前のスキャ
ンラインのすぐ下側の該バンドの左側の境界からスタートする。図9aにおいて
、スキャンライン336が明確性のためにスキャンライン328の下側に誇張し
た距離において示されている。バックグラウンドデータは、スキャンライン33
6に対するスキャンラインポインタが領域322の左側境界330に到達するま
で、出力される。この点において、本プロセスは状態バッファからこの領域に対
する脱圧縮状態、該領域の寸法W1、領域322に対する脱圧縮が前のスキャン
ライン328上から抜出した箇所における圧縮バンドバッファ内の位置を読込む
。次いで、本プロセスは、領域322に対して圧縮バンドバッファからのデータ
を脱圧縮する。本プロセスは、そのページの全ての領域に対して同様に継続する
。
本発明を幾つかの好適な実施例について説明したが、その変形、修正及び置換
は本明細書を読み且つ図面を検討することにより当業者にとって明らかなものと
なる。例えば、テキスト、グラフィックス、画像以外のその他の型(タイプ)の
オブジェクトを
画定し且つこれらの型を効率的に圧縮させるそれら自身の型の圧縮アルゴリズム
を割り当てることが可能である。更に、その他の頁記述言語は本来的に表示順に
オブジェクトを提供することが可能であり、従って本明細書に記載した表示リス
トが必要とされるものではない。圧縮アルゴリズムに対するオブジェクトのマッ
ピングは、幾つかの可能性を生じることが可能であり、例えば、1つ又はそれ以
上の型のオブジェクトを多くの可能なアルゴリズムで圧縮することが可能であり
、且つ、対応して、1つ又はそれ以上のアルゴリズムを多くの可能な型のオブジ
ェクトに対して割り当てることが可能である。ユーザの拘束条件は、究極的に、
使用される圧縮アルゴリズムを決定し、且つこれらの拘束条件は、データを圧縮
/脱圧縮するため又は表示するための時間、表示リスト、非圧縮バンドバッファ
、圧縮バンドバッファ等に使用可能な格納空間、オブジェクトから派生される結
果的に表示される視覚的表現の品質、及び例えば全体的なページ特性、ハードウ
エア/ソフトウエア限界等のその他のファクタを包含することが可能である。
更に、説明を明確なものとする目的のために幾つかの用語が使用されているが
本発明を制限するためのものではない。従って、以下の添付した請求の範
囲は、本発明の精神及び範囲内に入るこのような変形例、修正例及び置換例を包
含することを意図したものである。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 コン,ソーン ワイ.
アメリカ合衆国,カリフォルニア 95014,
クパチーノ,フェルトン ウエイ 10597
(72)発明者 フォール,リチャード エヌ.
アメリカ合衆国,カリフォルニア 94301,
パロ アルト,ロウエル アベニュー
126
(72)発明者 ジェンタイル,ロナルド エス.
アメリカ合衆国,カリフォルニア 94027,
アサートン,エル カミーノ リアル
2421,ナンバー 23
Claims (1)
- 【特許請求の範囲】請求の範囲 1.各々が表示区域に対する表示データを表わしており且つ各々が前記表示 区域における位置とデータ型とを具備しているデータオブジェクトを処理するシ ステムにおいて、 前記データオブジェクトを複数個のオーバーラップしない非空領域へ分割する 分割器であって、各領域が少なくとも1つのデータオブジェクトの全て又は一部 を包含しており且つ各領域が前記領域内のデータオブジェクトのデータ型から派 生される領域型と位置とを有している分割器、 複数個の圧縮メカニズム及び脱圧縮メカニズムであって、各圧縮メカニズムが 関連する脱圧縮メカニズムを有している複数個の圧縮メカニズム及び脱圧縮メカ ニズム、 その領域型に従って非空領域の各々に対する圧縮メカニズムのうちの1つを選 択し次いで前記選択した圧縮メカニズムを使用して前記領域内において見つかっ たデータオブジェクトの部分を圧縮しその際に圧縮データオブジェクトを発生す る圧縮器、 前記圧縮器に結合されており圧縮データオブジェクトを格納するメモリ、 前記メモリに結合されており、圧縮データオブジェクトを形成するために使用 した圧縮メカニズムと 関連する脱圧縮メカニズムを各圧縮データオブジェクトに対して適用することに よって圧縮されていないデータオブジェクトを発生するために圧縮データオブジ ェクトを脱圧縮させる脱圧縮器、 前記圧縮器、脱圧縮器及びメモリへ結合しており、前記メモリが満杯になる時 を検知し且つ前記メモリ内の空間を解放させるために前に圧縮したデータオブジ ェクトの脱圧縮及びその再圧縮をトリガするモニタ、 を有するシステム。 2.請求項1において、更に、複数個の圧縮されていないデータオブジェク トを単一のデータオブジェクトへ結合させるオブジェクト結合器を有しており、 その場合に、 前記オブジェクト結合器が、前記モニタが前記メモリが満杯になることを検知 する場合に喚起され、 前記オブジェクト結合器が所定の基準に従って複数個の圧縮されていないデー タオブジェクトを単一のデータオブジェクトへ結合させて前記圧縮器によって再 圧縮させその結果前記メモリ内の空間を解放させる、 システム。 3.請求項2において、前記オブジェクト結合器が、オブジェクト間の分離 によって決定されるオ ブジェクトを結合するコストが所定のスレッシュホールド以下である場合に圧縮 されていないデータオブジェクトを単一のデータオブジェクトへ結合させるシス テム。 4.請求項3において、結合コストが、結合されるべきオブジェクト内に含 まれているデータの量と比較する結合して結果的に得られるオブジェクト内に含 まれるバックブラウンドデータの量によって決定されるシステム。 5.請求項2において、前記所定の基準が、同一の型の隣接するデータオブ ジェクトを結合させ且つ非隣接オブジェクトを分離する空間が何等データオブジ ェクトを有するものでない場合に同一の型の前記非隣接データオブジェクトを結 合させることを包含するシステム。 6.請求項1において、更に、前記脱圧縮器から圧縮されていないデータオ ブジェクトを受取るべく結合されているディスプレイエンジンを有しているシス テム。 7.請求項6において、前記ディスプレイエンジンがレーザプリンタエンジ ン、プロッタ、CRTからなるグループのうちの1つであるシステム。 8.請求項1において、更に埋込型コンピュータを有しており、前記埋込型 コンピュータが、 コンピュータプロセサ、 前記コンピュータプロセサへ結合しているプログラムメモリ、 前記脱圧縮器からの圧縮されていないデータオブジェクトを受取るべく結合さ れているディスプレイエンジン、 を有しており、 前記ディスプレイエンジンが前記埋込型コンピュータへ結合しており、 前記圧縮器及び脱圧縮器が前記プログラムメモリ内に明確に格納されているコ ンピュータプログラム命令として実現されている、 システム。 9.請求項1において、更に、 前記脱圧縮器へ結合されており圧縮されていないデータオブジェクトを表示す る手段、 表示するために表示区域の次の部分を表わすためにポインタをアップデートす る手段であって、前記ポインタが非空領域と交差する場合に、前記脱圧縮器が前 記非空領域と関連する圧縮データを脱圧縮し且つ出力し且つ前記ポインタが非空 領域と交差しない場合には前記脱圧縮器がバックグラウンドデータを出力させる ポインタをアップデートさせる手段、を有するシステム。 10.各々がページに対する表示データを表わしており且つ各々が前記ペー ジ上のデータ型及び位置を具備しており、前記ページが複数個のバンドに分割さ れているデータオブジェクトを処理するシステムにおいて、 メモリ、 前記バンド内において見つかったデータオブジェクトの部分を格納するために 前記ページの各バンドに対しての前記メモリ内の表示リスト、 前記表示リストメモリへ結合しており各バンド内のデータオブジェクトを複数 個のオーバーラップしない非空領域へ分割する分割器であって、各領域が少なく とも1つのデータオブジェクトの全て又は一部を包含しており且つ各領域が前記 領域内のデータオブジェクトのデータ型から派生される領域型及び位置を有して いる分割器、 複数個の圧縮メカニズム及び脱圧縮メカニズムであって、各圧縮メカニズムが 関連する脱圧縮メカニズムを有している複数個の圧縮メカニズム及び脱圧縮メカ ニズム、 対応する領域型に従って前記非空領域の各々に対して前記圧縮メカニズムのう ちの1つを選択し、前記選択した圧縮メカニズムを使用して前記領域において見 つかったデータオブジェクトを圧縮し、その 際に圧縮データオブジェクトを発生し、且つ圧縮データオブジェクトを前記メモ リ内に格納する圧縮器、 前記メモリへ結合しており、前記圧縮データオブジェクトを形成するために使 用した圧縮メカニズムと関連する脱圧縮メカニズムを各圧縮データオブジェクト に対して適用することによって圧縮されていないデータオブジェクトを発生させ るために圧縮データオブジェクトを脱圧縮させる脱圧縮器、 前記圧縮器、脱圧縮器及びメモリへ結合しており、前記メモリが満杯になった 時を検知し且つ前記メモリ内の空間を解放するために前に圧縮したデータオブジ ェクトの脱圧縮及びその再圧縮をトリガするモニタ、 を有するシステム。 11.請求項10において、更に、 前記表示リストメモリへ結合しており、前記非空領域内に格納されているビッ トマップを発生するために前記データオブジェクトをラスター化させるラスタラ イザ、 圧縮されていないデータオブジェクトを受取るべく結合されているラスター出 力装置ディスプレイエンジン、 を有しており、 前記圧縮メカニズムがビットマップに関して操作 して圧縮ビットマップデータオブジェクトを発生し、 前記脱圧縮メカニズムが圧縮ビットマップデータオブジェクトに関して動作し て前記ラスター出力装置ディスプレイエンジンに対する圧縮されていないビット マップデータオブジェクトを発生する、システム。 12.請求項11において、更に、 前記ラスター出力装置に対して出力する1つのバンドの次の部分を表わすため にポインタをアップデートする手段であって、前記ポインタが非空領域と交差す る場合に、前記脱圧縮器が前記非空領域と関連する圧縮データを脱圧縮し且つそ れを出力し、且つ前記ポインタが非空領域と交差しない場合には、前記脱圧縮器 がバックグラウンドデータを出力するポインタをアップデートさせる手段、 を有するシステム。 13.各々が表示区域に対する表示データを表わしており且つ前記表示区域 内の位置及びデータ型を具備しているデータオブジェクトを処理する方法におい て、 (a)前記データオブジェクトを受取り、 (b)前記データオブジェクトを前記表示区域と関連する表示リスト内に格納 し、 (c)前記表示区域を複数個のオーバーラップし ない非空領域へ分割し、各領域は1つ又はそれ以上のデータオブジェクト又はデ ータオブジェクトの一部を包含しており且つ各領域は前記データオブジェクト及 び前記領域内のデータオブジェクトの一部のデータ型から派生した領域型及び位 置を有しており、 (d)複数個の圧縮メカニズム及び脱圧縮メカニズムを用意し、尚各圧縮メカ ニズムは関連する脱圧縮メカニズムを有しており、 (e)対応する領域型に従って前記圧縮メカニズムのうちの1つを選択し且つ 前記データオブジェクト及び前記領域内のデータオブジェクトの一部を圧縮し、 その際に圧縮データオブジェクトを発生することによって各非空領域内のデータ オブジェクトを圧縮し、 (f)前記圧縮データオブジェクトをメモリ内に格納し、 (g)前記圧縮データオブジェクトを形成するために使用した圧縮メカニズム と関連する脱圧縮メカニズムを選択し且つ圧縮されていないデータオブジェクト を発生するために前記圧縮データオブジェクトを脱圧縮することによって各圧縮 データオブジェクトを脱圧縮し、 (h)前記メモリが満杯となる時を検知するためにモニタし且つ前記メモリ内 の空間を解放するため に前に圧縮したデータオブジェクトの脱圧縮及びその再圧縮をトリガする、 上記各ステップを有する方法。 14.請求項13において、更に、 前記メモリが満杯となる場合に、複数個の圧縮されていないデータオブジェク トを単一のデータオブジェクトへ結合し、 前記メモリ内の空間を解放するために前記単一のデータオブジェクトを圧縮す る、 上記各ステップを有する方法。 15.請求項14において、オブジェクト間の分離によって決定されるオブ ジェクトを結合するコストが所定のスレッシュホールド以下である場合にオブジ ェクトを結合させる方法。 16.請求項15において、前記結合のコストが、結合されるべきオブジェ クト内に含まれるデータの量と比較した結合された結果的に得られるオブジェク ト内に含まれるバックグラウンドデータの量によって決定される方法。 17.各々が表示区域に対する表示データを表わしており且つ前記表示区域 内の位置及びデータ型を有しているデータオブジェクトを処理する方法において 、 前記データオブジェクトを受取り、 前記表示区域内において複数個のオーバーラップしていないバンドを確立し、 1つを超えるバンドに跨がるデータオブジェクトを各々が1つのバンド内にの み位置されている複数個のデータオブジェクトへ分割し、 各バンドに対して前記バンドと関連する表示リストを確立し、 1つのバンド内に位置されているデータオブジェクトを前記バンドと関連して いる表示リスト内に格納し、 各バンドを、各々がその領域内のデータオブジェクトのデータ型から派生され る領域型と位置とを有している複数個のオーバーラップしない非空領域へ分割さ せ、 複数個の圧縮メカニズムと脱圧縮メカニズムとを用意し、尚各圧縮メカニズム は関連する脱圧縮メカニズムを有しており、 対応する領域型に従って第一バンド内の各非空領域に対して前記圧縮メカニズ ムのうちの1つを選択し且つ前記選択した圧縮メカニズムを使用して前記領域内 のデータオブジェクトを圧縮しその際に圧縮データオブジェクトを発生させるこ とによって第一バンドのデータオブジェクトを圧縮し、 前記圧縮データオブジェクトをメモリ内に格納し、 前記表示区域内の残りのバンドに対して夫々先行する2つのステップを適用す ることによって前記表示区域内の残りのバンドを圧縮し且つ格納し、 各圧縮データオブジェクトに対して、前記圧縮データオブジェクトを形成する ために使用した圧縮メカニズムと関連する脱圧縮メカニズムを選択し且つそれを 脱圧縮して圧縮されていないデータオブジェクトを発生させることによって各バ ンドの圧縮データオブジェクトを脱圧縮し、 前記メモリが満杯になる時を検知するためにモニタし且つ前記メモリ内の空間 を解放させるために前に圧縮したデータオブジェクトの脱圧縮及びその再圧縮を トリガする、 上記各ステップを有する方法。 18.請求項17において、更に、 前記圧縮されていないデータオブジェクトを出力ディスプレイへ送り、 スキャンラインが前記領域と交差する場合に前記圧縮領域を脱圧縮するように 1つのバンドの領域と出力スキャンラインとが交差する場合を決定する、上記各 ステップを有する方法。 19.請求項17において、更に、 前記圧縮されていないデータオブジェクトを出力ディスプレイへ送り、 圧縮されていないデータオブジェクトによってカバーされていないページの部 分に対してバックグラウンド表示データを出力する、 上記各ステップを有する方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/484,344 | 1995-06-07 | ||
| US08/484,344 US5638498A (en) | 1992-11-10 | 1995-06-07 | Method and apparatus for reducing storage requirements for display data |
| PCT/US1996/009856 WO1996041308A1 (en) | 1995-06-07 | 1996-06-07 | Method and apparatus for reducing storage requirements for display data |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000511364A true JP2000511364A (ja) | 2000-08-29 |
Family
ID=23923766
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP09502052A Pending JP2000511364A (ja) | 1995-06-07 | 1996-06-07 | 表示データ用の格納条件を減少させる方法及び装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5638498A (ja) |
| EP (1) | EP0834154B1 (ja) |
| JP (1) | JP2000511364A (ja) |
| CA (1) | CA2221752C (ja) |
| DE (1) | DE69626394T2 (ja) |
| WO (1) | WO1996041308A1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006024108A (ja) * | 2004-07-09 | 2006-01-26 | Tkc Corp | ファイル変換装置、ファイル変換方法およびファイル変換プログラム |
| JP2009530706A (ja) * | 2006-03-15 | 2009-08-27 | マイクロソフト コーポレーション | 代替的グラフィック・セットの効率的な符号化 |
| US7633641B2 (en) | 2004-05-27 | 2009-12-15 | Nec Viewtechnology, Ltd. | Image transmission apparatus using information on rendered range |
Families Citing this family (172)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1353494A3 (en) * | 1990-03-16 | 2004-07-28 | Canon Kabushiki Kaisha | Image encoding and recording apparatus |
| US6292202B1 (en) * | 1993-07-29 | 2001-09-18 | Canon Kabushiki Kaisha | Image processing method and apparatus for hardware processing image data received from a device using software processing |
| JP3302229B2 (ja) | 1994-09-20 | 2002-07-15 | 株式会社リコー | 符号化方法、符号化/復号方法及び復号方法 |
| US5748786A (en) * | 1994-09-21 | 1998-05-05 | Ricoh Company, Ltd. | Apparatus for compression using reversible embedded wavelets |
| US5881176A (en) | 1994-09-21 | 1999-03-09 | Ricoh Corporation | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser |
| US6229927B1 (en) | 1994-09-21 | 2001-05-08 | Ricoh Company, Ltd. | Reversible embedded wavelet system implementation |
| US6549666B1 (en) * | 1994-09-21 | 2003-04-15 | Ricoh Company, Ltd | Reversible embedded wavelet system implementation |
| US6873734B1 (en) * | 1994-09-21 | 2005-03-29 | Ricoh Company Ltd | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
| JPH08204967A (ja) * | 1995-01-20 | 1996-08-09 | Nec Corp | データ符号化装置 |
| JP3337846B2 (ja) * | 1995-02-24 | 2002-10-28 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
| GB9505741D0 (en) * | 1995-03-21 | 1995-05-10 | Maid Plc | Image data transfer |
| JP2887572B2 (ja) * | 1995-04-07 | 1999-04-26 | 富士ゼロックス株式会社 | 画像出力装置および画像処理方法 |
| JP3154393B2 (ja) * | 1995-11-28 | 2001-04-09 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
| US5930813A (en) * | 1995-12-21 | 1999-07-27 | Adobe Systems Incorporated | Method and system for designating objects |
| DE69722605T2 (de) * | 1996-03-27 | 2004-04-29 | Omron Corp. | Verfahren und vorrichtung zur bilderkennung sowie ihre anwendung in einem kopiergerät und einem drucker |
| US6538764B2 (en) * | 1996-04-12 | 2003-03-25 | Canon Kabushiki Kaisha | Printing apparatus, information processing apparatus, data processing method for use in such an apparatus, and storage medium storing computer-readable program |
| US5926185A (en) * | 1996-05-03 | 1999-07-20 | Barco Graphics N.V. | Method for processing a set of page description language commands to reduce complexity |
| EP1120969B1 (en) * | 1996-05-17 | 2003-02-05 | Matsushita Electric Industrial Co., Ltd. | Motion compensated video decoder |
| 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 |
| US5748904A (en) * | 1996-09-13 | 1998-05-05 | Silicon Integrated Systems Corp. | Method and system for segment encoded graphic data compression |
| US6269190B1 (en) | 1996-09-24 | 2001-07-31 | Electronics For Imaging, Inc. | Computer system for processing images using a virtual frame buffer |
| US5995724A (en) * | 1996-11-01 | 1999-11-30 | Mikkelsen; Carl | Image process system and process using personalization techniques |
| US6043897A (en) * | 1996-12-04 | 2000-03-28 | Minolta Co., Ltd. | Image forming apparatus |
| US6020975A (en) * | 1996-12-20 | 2000-02-01 | Apple Computer, Inc. | System and method for accelerated data recompression |
| US5767978A (en) * | 1997-01-21 | 1998-06-16 | Xerox Corporation | Image segmentation system |
| CA2283591C (en) * | 1997-03-07 | 2006-01-31 | Intelligent Compression Technologies | Data coding network |
| US5999949A (en) * | 1997-03-14 | 1999-12-07 | Crandall; Gary E. | Text file compression system utilizing word terminators |
| US5999709A (en) * | 1997-04-18 | 1999-12-07 | Adobe Systems Incorporated | Printer memory boost |
| GB2325584B (en) * | 1997-05-01 | 2000-03-29 | Ricoh Kk | Decompression system using inverse wavelet transform |
| JP3915170B2 (ja) * | 1997-05-26 | 2007-05-16 | コニカミノルタホールディングス株式会社 | 画像形成装置 |
| US5852742A (en) * | 1997-06-17 | 1998-12-22 | Hewlett-Packard Company | Configurable data processing pipeline |
| US5973734A (en) | 1997-07-09 | 1999-10-26 | Flashpoint Technology, Inc. | Method and apparatus for correcting aspect ratio in a camera graphical user interface |
| US6049330A (en) * | 1997-08-28 | 2000-04-11 | Oak Technology, Inc. | Method and apparatus for optimizing storage of compressed images in memory |
| US6366361B1 (en) | 1997-09-03 | 2002-04-02 | Adobe Systems Incorporated | Peeker detection and correction |
| US6163625A (en) * | 1997-10-21 | 2000-12-19 | Canon Kabushiki Kaisha | Hybrid image compressor |
| JPH11154240A (ja) | 1997-11-20 | 1999-06-08 | Nintendo Co Ltd | 取込み画像を用いて画像を作成するための画像作成装置 |
| JP4006079B2 (ja) * | 1998-02-27 | 2007-11-14 | 株式会社東芝 | ネットワークコンピュータおよびその制御方法 |
| DE19815185A1 (de) * | 1998-04-04 | 1999-10-07 | Roland Man Druckmasch | Steuerrechner für eine Druckmaschine |
| US6002814A (en) * | 1998-04-14 | 1999-12-14 | Hewlett-Packard Company | Means and method for configuring a data processing pipeline |
| EP0973103B1 (en) * | 1998-06-25 | 2008-08-06 | Canon Europa N.V. | Method and device for controlling the processing of an electronic document |
| US6583890B1 (en) * | 1998-06-30 | 2003-06-24 | International Business Machines Corporation | Method and apparatus for improving page description language (PDL) efficiency by recognition and removal of redundant constructs |
| 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 |
| US20020093669A1 (en) * | 1998-08-28 | 2002-07-18 | Russell Campbell | Complexity extensions for band management in a printer page pipe |
| US6429949B1 (en) | 1998-10-15 | 2002-08-06 | Electronics For Imaging, Inc. | Low memory printer controller |
| US6435969B1 (en) | 1998-11-03 | 2002-08-20 | Nintendo Co., Ltd. | Portable game machine having image capture, manipulation and incorporation |
| JP2000218890A (ja) * | 1998-11-27 | 2000-08-08 | Seiko Epson Corp | 長尺印刷を行うための印刷システム |
| US6624761B2 (en) | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
| US6317141B1 (en) | 1998-12-31 | 2001-11-13 | Flashpoint Technology, Inc. | Method and apparatus for editing heterogeneous media objects in a digital imaging device |
| US6601104B1 (en) | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
| US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
| US6564282B1 (en) * | 1999-05-05 | 2003-05-13 | Flashpoint Technology, Inc. | Method and system for increasing storage capacity in a digital image capture device |
| US6535644B1 (en) * | 1999-07-01 | 2003-03-18 | Koninklijke Philips Electronics N.V. | Hierarchical foveation based on wavelets |
| US6753974B1 (en) | 1999-07-28 | 2004-06-22 | Adobe Systems Incorporated | Compositing pages from page components |
| US6577769B1 (en) | 1999-09-18 | 2003-06-10 | Wildtangent, Inc. | Data compression through adaptive data size reduction |
| US6747762B1 (en) * | 1999-11-05 | 2004-06-08 | Sharp Laboratories Of America, Inc. | Method for optimizing compression of scanned data |
| US6449658B1 (en) | 1999-11-18 | 2002-09-10 | Quikcat.Com, Inc. | Method and apparatus for accelerating data through communication networks |
| AU1768801A (en) * | 1999-11-18 | 2001-05-30 | Quikcat.Com, Inc. | Method and apparatus for accelerating data through private enterprise networks |
| US7187471B1 (en) | 1999-12-09 | 2007-03-06 | Adobe Systems Incorporated | Creating traps with asymmetric widths |
| US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
| US20030191876A1 (en) * | 2000-02-03 | 2003-10-09 | Fallon James J. | Data storewidth accelerator |
| US6731814B2 (en) * | 2000-05-01 | 2004-05-04 | Xerox Corporation | Method for compressing digital documents with control of image quality and compression rate |
| US6906823B1 (en) | 2000-05-15 | 2005-06-14 | International Business Machines Corporation | Input interface for a raster object memory in a method, system and program |
| US6651116B1 (en) | 2000-05-15 | 2003-11-18 | International Business Machines Corporation | Output interface for a raster object memory in a method, system and program |
| US6894686B2 (en) | 2000-05-16 | 2005-05-17 | Nintendo Co., Ltd. | System and method for automatically editing captured images for inclusion into 3D video game play |
| FR2812506B1 (fr) * | 2000-07-25 | 2002-12-20 | Canon Kk | Procede et dispositif d'alerte lors du decodage progressif d'une image numerique codee avec une region d'interet |
| US9143546B2 (en) | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
| US7417568B2 (en) * | 2000-10-03 | 2008-08-26 | 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 |
| US7047382B2 (en) * | 2000-11-29 | 2006-05-16 | Quickshift, Inc. | System and method for managing compression and decompression and decompression of system memory in a computer system |
| US7145676B2 (en) * | 2001-01-31 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Compound document image compression using multi-region two layer format |
| US7386046B2 (en) | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
| US6898323B2 (en) | 2001-02-15 | 2005-05-24 | Ricoh Company, Ltd. | Memory usage scheme for performing wavelet processing |
| US6895120B2 (en) * | 2001-03-30 | 2005-05-17 | Ricoh Co., Ltd. | 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays |
| US6950558B2 (en) | 2001-03-30 | 2005-09-27 | Ricoh Co., Ltd. | Method and apparatus for block sequential processing |
| US7006697B1 (en) | 2001-03-30 | 2006-02-28 | Ricoh Co., Ltd. | Parallel block MQ arithmetic image compression of wavelet transform coefficients |
| US7062101B2 (en) | 2001-03-30 | 2006-06-13 | Ricoh Co., Ltd. | Method and apparatus for storing bitplanes of coefficients in a reduced size memory |
| US6859563B2 (en) | 2001-03-30 | 2005-02-22 | Ricoh Co., Ltd. | Method and apparatus for decoding information using late contexts |
| US7142326B2 (en) | 2001-05-16 | 2006-11-28 | Xerox Corporation | Method and apparatus for variable data document printing |
| US7239409B2 (en) * | 2001-06-22 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Remote access to print job retention |
| US7110525B1 (en) | 2001-06-25 | 2006-09-19 | Toby Heller | Agent training sensitive call routing system |
| US7581027B2 (en) * | 2001-06-27 | 2009-08-25 | Ricoh Co., Ltd. | JPEG 2000 for efficent imaging in a client/server environment |
| JP4065503B2 (ja) * | 2001-08-21 | 2008-03-26 | キヤノン株式会社 | 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法 |
| US7043077B2 (en) * | 2001-11-07 | 2006-05-09 | International Business Machines Corporation | System and method for efficient compression of raster image data |
| US6653954B2 (en) | 2001-11-07 | 2003-11-25 | International Business Machines Corporation | System and method for efficient data compression |
| US7068398B2 (en) * | 2001-11-07 | 2006-06-27 | International Business Machines Corporation | System and method for efficient tile generation from complex raster data |
| US7245304B2 (en) * | 2001-11-16 | 2007-07-17 | Lockheed Martin Corporation | System and method for managing compressed graphic image data |
| JP2003179738A (ja) * | 2001-12-11 | 2003-06-27 | Minolta Co Ltd | 画像処理装置 |
| US7280252B1 (en) | 2001-12-19 | 2007-10-09 | Ricoh Co., Ltd. | Error diffusion of multiresolutional representations |
| US7095907B1 (en) | 2002-01-10 | 2006-08-22 | Ricoh Co., Ltd. | Content and display device dependent creation of smaller representation of images |
| US7120305B2 (en) * | 2002-04-16 | 2006-10-10 | Ricoh, Co., Ltd. | Adaptive nonlinear image enlargement using wavelet transform coefficients |
| JP2003320715A (ja) * | 2002-04-30 | 2003-11-11 | Canon Inc | 情報処理装置、情報処理システム、情報出力制御方法、記憶媒体、及びプログラム |
| FR2839339B1 (fr) * | 2002-05-03 | 2004-06-04 | Inst Francais Du Petrole | Methode de dimensionnement d'un element de colonne montante avec conduites auxiliaires integrees |
| US7209258B1 (en) * | 2002-05-21 | 2007-04-24 | Adobe Systems Incorporated | Complexity-based transparency flattening |
| JP2004007251A (ja) * | 2002-05-31 | 2004-01-08 | Fuji Xerox Co Ltd | 画像処理装置 |
| US8045215B2 (en) * | 2002-10-18 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Printer object list resolutions |
| 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 |
| US20040091162A1 (en) * | 2002-11-12 | 2004-05-13 | Nexpress Solutions Llc | Run length compression format for storing raster data in a cache |
| US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
| JP2004302500A (ja) * | 2003-03-28 | 2004-10-28 | Matsushita Electric Ind Co Ltd | 画像処理装置及び画像処理方法 |
| US7773095B1 (en) * | 2003-04-08 | 2010-08-10 | At&T Intellectual Property Ii, L.P. | Method and system for provisioning facility-based maps and related information to field personnel |
| JP2005038263A (ja) * | 2003-07-16 | 2005-02-10 | Canon Inc | 画像処理装置、画像処理方法、記録媒体及びプログラム |
| US7057628B2 (en) * | 2003-10-15 | 2006-06-06 | Anthony Bruce Crawford | Method for locating white space to support the automated creation of computer-based drawings that are virtually free of graphics and text overwrites |
| US9614772B1 (en) | 2003-10-20 | 2017-04-04 | F5 Networks, Inc. | System and method for directing network traffic in tunneling applications |
| US7664763B1 (en) * | 2003-12-17 | 2010-02-16 | Symantec Operating Corporation | System and method for determining whether performing a particular process on a file will be useful |
| US20050219076A1 (en) * | 2004-03-22 | 2005-10-06 | Michael Harris | Information management system |
| US20050213119A1 (en) * | 2004-03-26 | 2005-09-29 | Lexmark International, Inc. | Processing print jobs according to size of to-be-printed objects and bands containing same |
| US20050213142A1 (en) * | 2004-03-26 | 2005-09-29 | Clark Raymond E | Optimization techniques during processing of print jobs |
| US20050213117A1 (en) * | 2004-03-26 | 2005-09-29 | Lexmark International, Inc. | Processing print jobs according to hard or easy processing zones |
| US7859716B2 (en) * | 2004-03-26 | 2010-12-28 | Lexmark International, Inc. | Optimizing to-be-printed objects during print job processing |
| US7817302B2 (en) * | 2004-03-26 | 2010-10-19 | Lexmark International, Inc. | Optimizing raster operation functions during print job processing |
| US7385729B2 (en) * | 2004-03-26 | 2008-06-10 | Lexmark International, Inc. | Optimization techniques during processing of print jobs |
| US7835030B2 (en) * | 2004-03-26 | 2010-11-16 | Lexmark International, Inc. | Processing print jobs |
| JP4784098B2 (ja) * | 2004-03-29 | 2011-09-28 | セイコーエプソン株式会社 | プリントバッファ装置および印刷システム |
| US8661332B2 (en) | 2004-04-30 | 2014-02-25 | Microsoft Corporation | Method and apparatus for document processing |
| US7383500B2 (en) | 2004-04-30 | 2008-06-03 | Microsoft Corporation | Methods and systems for building packages that contain pre-paginated documents |
| US7880918B2 (en) * | 2004-05-19 | 2011-02-01 | Microsoft Corporation | System and method for generating unified image output |
| US8024483B1 (en) | 2004-10-01 | 2011-09-20 | F5 Networks, Inc. | Selective compression for network connections |
| JP4599135B2 (ja) * | 2004-11-02 | 2010-12-15 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
| US7502514B2 (en) * | 2004-11-15 | 2009-03-10 | Smith Micro Software, Inc. | System and method for lossless compression of already compressed files |
| US7184603B2 (en) * | 2004-11-15 | 2007-02-27 | Smith Micro Software, Inc. | System and method for lossless compression of digital images |
| US7817307B2 (en) | 2005-01-06 | 2010-10-19 | Zenographics, Inc. | Digital image processing without rasterization |
| US7880750B2 (en) * | 2005-01-06 | 2011-02-01 | Zenographics, Inc. | Digital image processing with inherent compression |
| US7277899B1 (en) * | 2005-03-15 | 2007-10-02 | Adaptec, Inc. | Method and computer program for reducing storage space requirements in a file system comprising linkable files |
| JP4405419B2 (ja) * | 2005-03-31 | 2010-01-27 | 株式会社東芝 | 画面送信装置 |
| US7675646B2 (en) * | 2005-05-31 | 2010-03-09 | Xerox Corporation | Flexible print data compression |
| 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 |
| JP4979323B2 (ja) * | 2005-12-07 | 2012-07-18 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
| US8345999B2 (en) * | 2005-12-15 | 2013-01-01 | Xerox Corporation | System and method for monochrome binary compression on legacy devices |
| US7729546B2 (en) * | 2005-12-23 | 2010-06-01 | Lexmark International, Inc. | Document segmentation for mixed raster content representation |
| US7882084B1 (en) | 2005-12-30 | 2011-02-01 | F5 Networks, Inc. | Compression of data transmitted over a network |
| JP2007200014A (ja) * | 2006-01-26 | 2007-08-09 | Ricoh Co Ltd | 情報処理装置、情報処理方法、情報処理プログラム及び記録媒体 |
| US8565088B1 (en) | 2006-02-01 | 2013-10-22 | F5 Networks, Inc. | Selectively enabling packet concatenation based on a transaction boundary |
| US7873065B1 (en) | 2006-02-01 | 2011-01-18 | F5 Networks, Inc. | Selectively enabling network packet concatenation based on metrics |
| US7903125B1 (en) * | 2006-02-07 | 2011-03-08 | Adobe Systems Incorporated | Compact clustered 2-D layout |
| GB2435728A (en) * | 2006-03-01 | 2007-09-05 | Symbian Software Ltd | A method for choosing a compression algorithm |
| AU2012200858B2 (en) * | 2006-03-15 | 2013-08-15 | Microsoft Technology Licensing, Llc | Efficient encoding of alternative graphic sets |
| US20070239897A1 (en) * | 2006-03-29 | 2007-10-11 | Rothman Michael A | Compressing or decompressing packet communications from diverse sources |
| JP2007310577A (ja) * | 2006-05-17 | 2007-11-29 | Toshiba Corp | 描画データ抽出装置、方法、およびプログラム |
| US8208169B2 (en) | 2006-05-24 | 2012-06-26 | Lexmark International, Inc. | Method and system for rendering a transparent object in an image |
| JP4732250B2 (ja) * | 2006-06-14 | 2011-07-27 | キヤノン株式会社 | 情報処理装置、制御方法、およびコンピュータプログラム |
| JP4743154B2 (ja) * | 2006-07-05 | 2011-08-10 | セイコーエプソン株式会社 | 文書編集装置、プログラムおよび記憶媒体 |
| US9224145B1 (en) | 2006-08-30 | 2015-12-29 | Qurio Holdings, Inc. | Venue based digital rights using capture device with digital watermarking capability |
| US9356824B1 (en) | 2006-09-29 | 2016-05-31 | F5 Networks, Inc. | Transparently cached network resources |
| CN101529465B (zh) * | 2006-10-19 | 2012-07-04 | 松下电器产业株式会社 | 图像合成装置、方法、集成电路 |
| 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 |
| AU2006246497B2 (en) * | 2006-11-30 | 2010-02-11 | Canon Kabushiki Kaisha | Method and apparatus for hybrid image compression |
| US9106606B1 (en) | 2007-02-05 | 2015-08-11 | F5 Networks, Inc. | Method, intermediate device and computer program code for maintaining persistency |
| US20080212110A1 (en) * | 2007-03-01 | 2008-09-04 | Konica Minolta Systems Laboratory, Inc. | Pdf direct printing method utilizing page printing order information for efficient handling of data |
| US20080231885A1 (en) * | 2007-03-23 | 2008-09-25 | Konica Minolta Systems Laboratory, Inc. | Direct printing method using ram storage for spooled printer files |
| JP2008233436A (ja) * | 2007-03-19 | 2008-10-02 | Fujitsu Ltd | 符号化装置、符号化プログラムおよび符号化方法 |
| US8149469B2 (en) * | 2007-08-03 | 2012-04-03 | Canon Kabushiki Kaisha | Image reading apparatus and image reading method |
| JP5032419B2 (ja) * | 2008-08-27 | 2012-09-26 | 株式会社東芝 | サーバ、画面送信方法およびコンピュータプログラム |
| WO2010123909A1 (en) | 2009-04-20 | 2010-10-28 | Dolby Laboratories Licensing Corporation | Directed interpolation and data post-processing |
| AU2009202377A1 (en) * | 2009-06-15 | 2011-01-06 | Canon Kabushiki Kaisha | Combining overlapping objects |
| US8767240B1 (en) | 2011-01-28 | 2014-07-01 | Marvell International Ltd. | Method and apparatus for encoding data to perform real-time rendering |
| JP5890963B2 (ja) * | 2011-03-17 | 2016-03-22 | 富士通株式会社 | データ保存プログラム及びデータ保存方法 |
| KR102053689B1 (ko) * | 2013-01-14 | 2019-12-09 | 삼성전자 주식회사 | 카메라의 영상 데이터 압축 방법 및 이를 지원하는 단말기 |
| JP2014197740A (ja) * | 2013-03-29 | 2014-10-16 | セイコーエプソン株式会社 | 印刷制御装置および印刷制御プログラム |
| JP6354360B2 (ja) | 2014-06-11 | 2018-07-11 | ブラザー工業株式会社 | 変換装置 |
| US9659387B2 (en) * | 2014-09-12 | 2017-05-23 | Microsoft Technology Licensing, Llc | Graphics primitive and color channels |
| US10108344B1 (en) * | 2015-05-06 | 2018-10-23 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm |
| US10587721B2 (en) * | 2015-08-28 | 2020-03-10 | Qualcomm Incorporated | Small cell edge computing platform |
| KR101672823B1 (ko) * | 2016-08-02 | 2016-11-04 | 주식회사 한수도로산업 | 비휘발성 상온 개질 아스팔트 바인더 및 이를 이용한 비휘발성 상온 재생 아스팔트 혼합물 |
| KR101992090B1 (ko) * | 2016-09-14 | 2019-06-21 | 닛산 지도우샤 가부시키가이샤 | 표시 장치 |
| US12062176B2 (en) * | 2020-11-02 | 2024-08-13 | Adobe Inc. | Generating change comparisons during editing of digital images |
| US11967118B1 (en) * | 2020-11-30 | 2024-04-23 | Amazon Technologies, Inc. | Hybrid codec |
| US11995871B1 (en) | 2020-11-30 | 2024-05-28 | Amazon Technologies, Inc. | Lossy block repair |
| US11373306B1 (en) | 2021-07-13 | 2022-06-28 | Aiforia Technologies Oyj | Processing pathology images |
| WO2023285731A1 (en) | 2021-07-13 | 2023-01-19 | Aiforia Technologies Oyj | Processing pathology images |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5354135A (en) * | 1984-08-03 | 1994-10-11 | Canon Kabushiki Kaisha | Recorder and dot pattern control circuit |
| US5276780A (en) * | 1987-03-03 | 1994-01-04 | Minolta Camera Kabushiki Kaisha | Filing system |
| US5018078A (en) * | 1987-12-09 | 1991-05-21 | Fuji Photo Film Co., Ltd. | Apparatus and method for processing huge image information at high speed |
| US5034804A (en) * | 1987-12-25 | 1991-07-23 | Kabushiki Kaisha Toshiba | Electronic still camera with various modes of data compression |
| US5199803A (en) * | 1988-09-26 | 1993-04-06 | Oki Electric Industry Co., Ltd. | Method of compressing and expanding dot-matrix character |
| US5272768A (en) * | 1989-02-21 | 1993-12-21 | Hewlett-Packard Company | Blank strip font compression method and device, and resulting stored, decompressible font |
| DE3925913A1 (de) * | 1989-08-04 | 1991-02-07 | Siemens Ag | Verfahren zum ansteuern von druckelementen |
| JP2647226B2 (ja) * | 1990-03-23 | 1997-08-27 | 沖電気工業株式会社 | ドットパターン圧縮方法及び伸長方法 |
| US5329616A (en) * | 1990-08-16 | 1994-07-12 | Canon Kabushiki Kaisha | Compressed image stores for high resolution computer graphics |
| JPH04144485A (ja) * | 1990-10-05 | 1992-05-18 | Fuji Xerox Co Ltd | 画像処理装置 |
| US5151949A (en) * | 1990-10-10 | 1992-09-29 | Fuji Xerox Co., Ltd. | System and method employing multiple predictor sets to compress image data having different portions |
| US5208676A (en) * | 1990-12-04 | 1993-05-04 | Fuji Xerox Co., Ltd. | Image processing apparatus with data storage region management, memory space allocation in accordance with detected compression ratio of data |
| JP3125304B2 (ja) * | 1990-12-11 | 2001-01-15 | ミノルタ株式会社 | プリンタ |
| JP2859450B2 (ja) * | 1991-01-31 | 1999-02-17 | 富士写真フイルム株式会社 | 画像記録装置及び画像記録方法 |
| DE69227646T2 (de) * | 1991-03-29 | 1999-05-06 | Canon K.K., Tokio/Tokyo | Bildverarbeitung |
| US5270728A (en) * | 1991-04-17 | 1993-12-14 | Hewlett-Packard Company | Raster imaging device speed-resolution product multiplying method and resulting pixel image data structure |
| JPH04358288A (ja) * | 1991-06-04 | 1992-12-11 | Fujitsu Ltd | 縮小印刷装置 |
| US5150454A (en) * | 1991-10-16 | 1992-09-22 | Patrick Wood | Printing system and method |
| JP3033628B2 (ja) * | 1991-12-26 | 2000-04-17 | ブラザー工業株式会社 | 印字装置の制御装置 |
| JPH05221030A (ja) * | 1992-02-18 | 1993-08-31 | Brother Ind Ltd | 印刷制御装置 |
| 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 |
| JPH07203215A (ja) * | 1993-12-29 | 1995-08-04 | Canon Inc | 画像圧縮方法及び装置 |
-
1995
- 1995-06-07 US US08/484,344 patent/US5638498A/en not_active Expired - Lifetime
-
1996
- 1996-06-07 EP EP96921460A patent/EP0834154B1/en not_active Expired - Lifetime
- 1996-06-07 WO PCT/US1996/009856 patent/WO1996041308A1/en not_active Ceased
- 1996-06-07 JP JP09502052A patent/JP2000511364A/ja active Pending
- 1996-06-07 DE DE69626394T patent/DE69626394T2/de not_active Expired - Lifetime
- 1996-06-07 CA CA002221752A patent/CA2221752C/en not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7633641B2 (en) | 2004-05-27 | 2009-12-15 | Nec Viewtechnology, Ltd. | Image transmission apparatus using information on rendered range |
| JP2006024108A (ja) * | 2004-07-09 | 2006-01-26 | Tkc Corp | ファイル変換装置、ファイル変換方法およびファイル変換プログラム |
| JP2009530706A (ja) * | 2006-03-15 | 2009-08-27 | マイクロソフト コーポレーション | 代替的グラフィック・セットの効率的な符号化 |
| US8244051B2 (en) | 2006-03-15 | 2012-08-14 | Microsoft Corporation | Efficient encoding of alternative graphic sets |
| JP2012198882A (ja) * | 2006-03-15 | 2012-10-18 | Microsoft Corp | 代替的グラフィック・セットの効率的な符号化 |
| US8351716B2 (en) | 2006-03-15 | 2013-01-08 | Microsoft Corporation | Efficient encoding of alternative graphic sets |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0834154B1 (en) | 2003-02-26 |
| DE69626394D1 (de) | 2003-04-03 |
| EP0834154A1 (en) | 1998-04-08 |
| EP0834154A4 (en) | 1999-01-27 |
| US5638498A (en) | 1997-06-10 |
| CA2221752A1 (en) | 1996-12-19 |
| WO1996041308A1 (en) | 1996-12-19 |
| DE69626394T2 (de) | 2003-12-04 |
| CA2221752C (en) | 2006-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2000511364A (ja) | 表示データ用の格納条件を減少させる方法及び装置 | |
| US5991515A (en) | Method and apparatus for compressing and decompressing data prior to display | |
| JP3454552B2 (ja) | ページ表現をページ上に生成するためのデータの生成方法およびそのためのシステム | |
| US6741368B1 (en) | Method and apparatus for reducing storage requirements for display data | |
| US5500928A (en) | Digital printing system and process using adaptive compression | |
| JP5066573B2 (ja) | 透明ページに関する格子型処理方法及び装置 | |
| US9818051B2 (en) | Rotation and clipping mechanism | |
| JP2008117379A (ja) | エンコードされたラスタ文書を生成するシステム、方法およびコンピュータプログラム | |
| US7880750B2 (en) | Digital image processing with inherent compression | |
| US9471857B2 (en) | Overcoat processing mechanism | |
| CA2346761C (en) | Method, system, program, and data structure for generating raster objects | |
| JP2007245723A (ja) | ドキュメント・レンダリング・システム、方法およびプログラム | |
| CN102122361B (zh) | 一种基于可变区域进行页面组装的方法及系统 | |
| US20090284766A1 (en) | Image Synthesis Method, Print System and Image Synthesis Program | |
| US20060146349A1 (en) | Digital image processing without rasterization | |
| US9367775B2 (en) | Toner limit processing mechanism | |
| US9036926B2 (en) | Bitmap processing mechanism | |
| US8922803B2 (en) | Bitmap rotation mechanism | |
| JP2001169120A (ja) | 画像処理装置及びその方法、及び画像処理システム | |
| JP2854344B2 (ja) | ミクストモード文書の表示方法 | |
| JPH10147016A (ja) | 画像処理装置及び方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20031112 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040105 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040212 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040413 |