JP4063918B2 - 表示のためのグラフィックス情報を含むイメージを作成する装置と方法 - Google Patents
表示のためのグラフィックス情報を含むイメージを作成する装置と方法 Download PDFInfo
- Publication number
- JP4063918B2 JP4063918B2 JP16842197A JP16842197A JP4063918B2 JP 4063918 B2 JP4063918 B2 JP 4063918B2 JP 16842197 A JP16842197 A JP 16842197A JP 16842197 A JP16842197 A JP 16842197A JP 4063918 B2 JP4063918 B2 JP 4063918B2
- Authority
- JP
- Japan
- Prior art keywords
- raster
- filter
- input value
- destination
- pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、表示技術の分野に関し、具体的には、複雑なグラフィックス操作を処理する新規な機構を使用してカラーまたはグレイ・スケール・モニタまたはカラー・レーザ・プリンタあるいは他の連続ラスタ走査装置に送られるカラーおよびグレイ・スケール・データを扱う。
【0002】
【発明が解決しようとする課題】
本発明は、本発明の技法を使用しない場合に比べて少ないメモリで複雑なグラフィックス・イメージの印刷と表示ができるようにするソフトウェアおよびハードウェア・グラフィックスとメモリ削減技術との継続的発展の一部である。
本発明は、フィルタ演算と呼ぶ新しい演算を使用した連続トーン・データに適用される複雑な論理を扱う。
【0003】
【課題を解決するための手段】
グラフィックス環境におけるラスタ操作と同時に透明性操作を処理する新規な手法を開示する。これは、フィルタ演算を導入して透明性の効果を得ることによって実現される。フィルタ演算は、グレイスケールおよび連続トーン・カラー・ラスタ演算と協調して機能する。フィルタ演算の導入とそのラスタ演算との協調によって、この、普通なら計算上複雑になる問題を単一のハードウェア回路で処理することが可能にある。この手法の効率性は、モノクロームおよびカラーのレーザ印刷などのリアルタイム応用分野に非常に役立つ。この解決策は、ビデオ表示装置での複雑なグラフィックスの表示にも適用可能である。
【0004】
【発明の実施の形態】
以下の説明では、まずラスタ演算と透明性について紹介する。次に、この2つの機構を結合する問題を解決する従来技術の手法の難点について説明する。透明性をフィルタ処理として扱うことによって、この問題を異なる観点から見ることができるようになる。この解決策はソフトウエアで効率的であるが、ハードウェアの並列性にも十分に役立ち、したがって従来技術の手法で必要な段階的または順次計算プロセスがなくなる。この解決策について説明し、並列計算を使用して協調結果が得られることを示す高水準回路図を図示する。
【0005】
図1は、本発明を使用することができる環境を示すシステムのブロック図である。米国特許第5204804号では、連続同期ラスタ出力装置上に表示するグラフィックス情報を生成する方法および装置が開示されている。そのシステムは、米国特許第5204804号の図4に図示されており、モノクローム出力装置での印刷用である。本発明は、カラー・イメージとモノクローム・イメージを処理するための、米国特許第5204804号に記載されているシステムの改良を対象としている。米国特許第5204804号に記載の基本グラフィックス・オーダを強化してカラーをサポートし、後述するようにフィルタおよびその他の演算のための追加のオーダを定める。ちなみに、米国特許第5204804号で詳述されているように、コンピュータ・プログラムによって生成されるイメージは、表示または印刷のために処理されるとき、表示または印刷されるイメージに対応する画素を描画する生成コマンドによって表される。米国特許第5204804号に記載されている発明では、従来の技術とは異なり、これらのコマンドは直接ビットマップに変換されるのではなくグラフィックス・オーダに変換される。グラフィックス・オーダは、対応するビットマップよりも占有メモリがはるかに少ないが、印刷エンジンに対応するのに十分に速い速度でレーザ・プリンタなどの連続同期ラスタ出力装置に送られるビットマップに変換することができる。本明細書の図1は、米国特許第5204804号の図4と類似している。しかし、本明細書の図1には、その図4に図示されている機能ブロックのすべてが図示されているわけではない。これは、そのようなブロックは、図1のリアルタイム・イメージ生成機構21として示されている上記図4のリアルタイム・ブリット・プロセッサ37の改良に主に関係する本発明を理解するためには必要ではないためである。
【0006】
機能的には、米国特許第5204804号に記載されている基本オーダに加えられる強化と、本発明の動作に必要なフィルタおよびその他の演算のために定義される追加のオーダは、米国特許第5204804ではグラフィックス実行ユニット(GEU)とも呼ばれているリアルタイム・ブリット・プロセッサ37に透明性情報を供給する。これには、以下の情報が含まれる。すなわち、(1)2オペランド・フィルタ関数F(PF,SF)、または任意選択で3オペランド・フィルタ関数F(PF,SF,DF)と、(2)ソース・フィルタ・ビットマップSFと、(3)パターン・フィルタ・ビットマップPF と、(4)3オペランド・フィルタ関数を使用した場合は宛先ビットマップDF である。米国特許第5502804号では、「パターン」の代わりに「ハーフトーン」という用語が使用されており、パターン・フィルタ・ビットマップの代わりにハーフトーン・マスクが使用されている。
【0007】
具体的には、本発明の動作に必要なフィルタおよびその他の操作のために定義された追加のオーダは、以下の機能を実行する。
【0008】
これらのオーダまたはコマンドに関する詳細は、後で表4に示す正しい計算例に関連して、本発明による協調フィルタ演算およびラスタ演算を実行するために使用可能なハードウェア・コマンド/演算について説明するときに述べる。
【0009】
図1の各機能ブロック要素は、米国特許第5502804号(特開平6−119131)の図4の対応する番号が付された機能ブロック要素と同じ機能を実行する。上記特開平6−119131の図4を本願の図6として添付し、その説明を最後に以下の通りに追加する。図1のホスト・アプリケーション11は図4のPDLインタプリタ21に対応し、前に指摘したように、図1のリアルタイム・イメージ生成機構21は上記米国特許の図4の実時間ブリット・プロセッサ37に対応する。本発明を理解するために必要なリアルタイム・イメージ生成機構への追加点については以下で説明する。
【0010】
以下は、本明細書で使用する様々な用語の定義/説明である。なお、ページ記述言語(PDL)は、ビットマップと、半階調の映像と、ポイントのサイズ・向き・陰影及びキャラクタフォントの全ての属性とを完全かつ精密に制御できる指令を定める言語である。
【0011】
ラスタ・グラフィックス・データ
ラスタ・グラフィックス・データとは、各グリッド要素が画素と呼ばれる矩形グリッドである。一例を図2に示す。グリッドの大きさは幅と高さで表される。画素は、各矩形グリッド内でその<x,y>座標(ただし、1≦x≦幅および1≦y≦高さ)で固有に識別することができる。矩形グリッドをGとすると、画素はG内でG<x,y>として示される。
【0012】
1つの画素は成分と深さに分解することができる。画素成分は画素に対する原色の影響を表す。モノクローム・プリンタまたは白黒ビデオ表示装置では、各画素は1つの成分しか持たず、その成分は黒色インク(プリンタ)または白色光(表示装置)の量を表す。カラー環境では、画素は通常3個または4個の成分を有する。カラー・ビデオ表示装置は一般に、赤、緑、および青の3成分を有する。このような色成分を有する画素をRGB画素と呼ぶ。プリンタは通常、シアン、マゼンタ、黄色、および任意選択による黒色の3つまたは4つの成分を有する。このような成分を有する画素をCMY画素またはCMYK画素と呼ぶ。これらのカラー・モデルに加えて、ハイファイ・カラーなどの新しいモデルが登場している。さらに、CIE−XYZ装置独立カラー・スペースの多くの変形などの視覚的でない色を表すその他のモデルもある。本発明は、これらのすべてのモデルに利用することができる。
【0013】
画素の深さによって、各画素成分が持つことができる識別可能値の数が決まる。典型的な深さは、1、2、4、または8である。画素の深さの値dを仮定すると、各成分は2d個の識別可能値を持つ。たとえば、深さが8の画素では各成分は256個の識別可能値を持つことができる。これらには、0から2d−1まで順次に番号付けすることができる。
【0014】
デジタル装置上では、各画素成分は(1ビットが「1」または「0」である)dビットを要する2進値として表される。たとえば、値が201で深さが8の画素成分は、2進値「11001001」を使用して表される。
【0015】
論理演算
論理演算は、真理値を1つの真理値にマッピングすることである。真値は真または偽の2つの値のうちの1つをとり、真は「1」で示され、偽は「0」で示される。
【0016】
AND、OR、およびNOTという名称の3種類の論理演算がある。本明細書の説明では、それぞれ&、|、および〜を使用してこれらの演算子を表す。
【0017】
複合論理演算は論理演算の任意の組合せである。たとえば、P、Q、およびRが真理値である場合、「((〜P)&Q)|R)」が複合演算であり、その結果は以下のように求められる。
1. T1=「〜P」とする
2. T2=「T1&Q」とする
3. T3=「T2|R」とする
4.「((〜P)&Q)|R)」の最終結果はT3である
【0018】
画素演算
画素演算は、1つまたは複数の等しいサイズの画素の対応するビットに適用される複合論理演算Rである。たとえば、それぞれ値「1100」および「1010」を持つ2つの画素P1およびP2を仮定すると、
〜P1は0011となり、P1&P2は1000となり、P1|P2は1110となる。
【0019】
ラスタ演算
ラスタ演算は、1つまたは複数の等しいサイズのラスタ・グラフィック・データ・オペランドの対応する画素の各セットに適用される任意の画素演算Rである。マイクロソフト・ウィンドウズ環境ではラスタ演算はROPと呼ばれ、ヒューレット・パッカードのPCL5言語の様々な方言では論理演算、インテルi961KDプロセッサまたはモトローラ68322プロセッサではブール演算と呼ばれる。コンピュータ・グラフィックス処理の範囲内では、オペランドの数は通常、パターン(P)、ソース(S)、および宛先(D)の3つであり、ラスタ演算の結果によってDが置き換えられる。実際の実施態様では、Pは一般にSより小さく、SはDより小さい。しかし、PはSの上に「タイル」するために使用され、Dの有効面積はSのサイズまでに制限され、したがってオペランドのサイズが等しいとすれば、どのような汎用性も失うことはない。本明細書では、ラスタ演算についてこの3つの従来のコンピュータ・グラフィックス・オペランドを中心に説明する。しかし、一般に、ラスタ演算は任意の数のオペランドに適用可能である。
【0020】
画素演算RとそのオペランドがDに与える効果を「D←R(P,S,D)」で示す。この計算は表1に示すアルゴリズム1によるが、具体的な実施態様は異なってもよい。
【表1】
【0021】
グラフィックス環境ではラスタ演算のシーケンスを使用して複雑なイメージを作成する。ビジネス文書のページには、多くのテキストと1つか2つの図が入っていることがある。あるいは、1つのプレゼンテーションには、陰影付き背景と境界線とクリップアートとテキストが入っていることがある。これらのタイプのページ・イメージは、ラスタ演算のシーケンスを使用してそれぞれのアプリケーションによって作成される。たとえば、まず、背景をペインティングする。その次に、数行のテキストを入れる。次にいくつかのクリップアートを挿入する。これらのステップのそれぞれで異なるラスタ演算を使用して、特定の効果を得ることができる。
【0022】
宛先は作成するイメージの入れ物であり、一般にはページまたはビデオ表示である。ソースは、宛先に配置する必要があるグラフィカル・オブジェクトである。たとえば、文字、線、多角形、または写真がソースの典型的な例である。パターンは、ソースに適用する効果である。たとえば、矩形ソースに交互に色付けされたボックスを持つパターンを加えることによってチェッカーボードを作成することができる。
【0023】
モノクローム・ラスタ演算の例
ラスタ演算は深さが1の場合に単純化される。これを2階調モノクロームと呼び、従来のモノクローム・レーザ・プリンタの典型である。ページ上に「O」などのグレイの文字を配置したいとする。「O」は周囲の環を示す「1」と内部を示す「0」(ゼロ)で数値的に表される。ページにグレイの「O」を配置する場合、「O」がラスタ演算のソースとなる。所望のグレイはパターンとして表されることになる。パターンは、所望のグレイの陰影を生じさせる比率の「1」と「0」の組合せを含む。ページ上に「O」を配置する場合、「O」は、たとえば多角形など、前に描画されたオブジェクトの上に配置される。「O」は、環によって多角形内の対応する画素が置き換えられるが、「O」の内部に対応する画素の多角形は保持されるようにして配置されることが望ましい。これは通常、次のラスタ演算を使用して実現される。
D←(S&P)|(〜S&D) [1]
【0024】
これによって、ソース(S)内の「1」がパターン(P)のグレイを獲得すると同時に、S内の「0」(ゼロ)は対応する宛先画素を保持することになる。本明細書では、「ビットマップ」という用語を使用して、深さが1で成分が1の特定の場合のラスタ・グラフィックス・データを示すが、ラスタ・グラフィックス・データとはどのような深さまたは成分数の場合にも使用される一般名である。また、深さが1のモノクローム装置上のグレイ値はパターンとして表される。パターンは、「1」の割合がグレイの陰影を表すビットマップである。
【0025】
ラスタ演算の決定
ラスタ演算には3つのオペランドがあるため、256の可能なラスタ演算がある(n個のブール変数間のラスタ演算の数は2**(2**n)または2**8であり、この例ではn=3であるためである)。
【0026】
どのラスタ演算が適切かを判断するには、3つのオペランドの可能な組合せを書き出して、所与の演算にとって適切なそれらの組合せを選定する必要がある。次に、この選定から複合論理演算を作成することができ、その演算がラスタ演算となる。
【0027】
表2に、3個のオペランドと8個のデータ値の可能なすべての組合せを示す。これを使用して上記の目的を達成することができる。以下ではグレイの文字の例を使用して実証する。
【表2】
【0028】
まず、3つのオペランドの論理形式を書き出す。論理形式は、「1」が色を有することを意味し、「0」が色がないことを意味するようになっている。前の例では、Sが色を持たない場合にDを保持し、Sが色を持つ場合にはSとPを適用したいということである。所望の結果を求めるために、表のデータ値部分の8列のそれぞれを調べて、P、S、およびDのどの組合せが望ましいかを選定する。この場合、所望の結果は、Sが「1」の場合に常にSにPの効果が適用され、それ以外の場合にはDを保持することである。上記の表を仮定すると、所望の結果は、
11100010
となる。
【0029】
この結果内の各「1」について複合論理演算を作成し、「|」演算を使用してそれらの演算を組み合わせて、組合せ複合論理演算を作成し、次にそれを簡単化する。
この例では、11100010は
(P&S&D)|(P&S&〜D)|(P&〜S&D)|(〜P&〜S&D)
と表すことができ、これは
((P&S)&(D|〜D))|((P|〜P)&(〜S&D))
と簡単化することができる。
最後に、(D|〜D)&(P|〜P)は常に真であるためこの2つを取り除き、 (P&S)|(D&〜S)
が得られる。
したがって、ラスタ演算は
D←(P&S)|(D&〜S)
となり、これは式[1]と同じである。
【0030】
透明性
宛先はラスタ演算のシーケンスによって作成されるため、所与のラスタ演算は1つまたは複数のオブジェクトがすでに配置されている宛先領域に影響を及ぼす可能性がある。したがって、新しいソース・オブジェクトは宛先内にすでにあるオブジェクトと交わることがある。交差点に沿って宛先オブジェクトをソースが被うようにしたい場合もあれば、上記の例のように、ソースの色を有する部分が宛先を被い、ソースの色のない部分は宛先に影響を与えないようにしたい場合もある。あるいは、ソースのうち、既存の宛先オブジェクトと交わらない部分のみが宛先に配置されるようにしたい場合がある。その他にも多くの場合が考えられる。
【0031】
これらの効果を実現する仕組みを透明性と呼ぶ。これは、パターンとソースのうちの宛先に適用される部分をさらに決定する、ラスタ演算に適用される二次属性である。これによって、オペランドにおいて色のない画素を適用する方法を表す。透明性の反対語として、不透明性という語がしばしば使用される。
【0032】
従来のイメージ処理モデルでは、透明性はソースおよびパターン・オブジェクトに付随する属性である。これによって、既存の宛先オブジェクトを優先する効果を実現することが困難になる。この定義を汎化して、宛先の属性として透明性を組み込み、それによってこの制約をなくすことができる。これによって、既存の宛先オブジェクトが被われず、その結果、既存の宛先オブジェクトと交わらないソースの部分だけが宛先に配置されるようにする操作が可能になる。
【0033】
透明性モデルは、各画素に真理値を割り当て、それによってそれらの真理値に「1」または「0」を使用してそれぞれ「色つき」または「無色」を示す。透明性は真理値に基づく関係であるため、論理演算を適用することができる。
【0034】
従来のモデル
汎化された定義を紹介する前に、ヒューレット・パッカードのPCLによって提案された従来のモデルについて説明する。このモデルは、4つの透明性モードを定義する。それらは以下の通りである。
1.不透明ソース、不透明パターン(OO)
2.不透明ソース、透明パターン(OT)
3.透明ソース、不透明パターン(TO)
4.透明ソース、透明パターン(TT)
【0035】
ソースの透明性によって、宛先に適用したときのソース内の無色画素の効果が決まる。カラー・データで表すと、無色値はCMYまたはCMYKモデルにおける白、またはRGBモデルにおける黒と同じ値とすることができる。透明の場合、対応する宛先画素はラスタ演算の結果として変化しない。透明でない場合、宛先画素はラスタ演算に従って変化する。同様に、パターンの透明性によってパターン内の無色画素の効果が決まるが、それはソースの色つき画素を使用して適用されたときのみである。ソース内の色つき画素だけがパターン画素によって影響される。影響されたソース画素は、パターンの透明性に応じて透明になる。透明パターンにおける無色画素によって、ソース内の対応する色つき画素が透明になり、それによって宛先が影響を受けなくなる。無色ソース画素はパターンの透明性によって影響されず、ソースの透明性だけが適用される。
【0036】
前記の例のように、ある形状(たとえば「O」の環など)の色つき画素だけが宛先に影響を及ぼすようにしたい場合がしばしばある。たとえば、宛先がすでに薄いグレイから成っており、所望の効果は、文字の無色画素(すなわち「O」の内部)を通して背景が見えるようにして薄いグレイの背景の上に濃いグレイの文字を置くことである場合がある。これが透明性の目的である。
【0037】
透明性およびラスタ演算
前記の例で実現される効果は、「TO」の透明性モードとラスタ演算「D←S&P」を使用して実現することもできる。この透明性モードは、S内の色のない画素だけがDに影響を与えることを示す。したがって、文字「O」の場合、文字の内部は無色であり、その結果、対応する宛先画素が保持される。文字の輪郭部分だけが宛先に影響を与え、これは所望のパターンに従って行われることになる。
【0038】
深さおよび成分数が1である
画素の深さが1で1画素の成分数が1の場合、ラスタ演算を透明性と組み合わせて新しいラスタ演算を形成することができる。これは、モノクローム・イメージでは、画素の値が「1」または「0」のいずれかであるためである。したがって、透明性は直接、ソースおよびパターンのラスタ・グラフィックス・データ・オペランドに応じて表すことができる。これを行うには、まず、透明性モードを論理表現で指定しなければならない。透明な画素は透明モードに従って以下のように論理的に表現することができる。
1.OO:「偽」、すなわち、どの画素も透明ではない
2.OT:「S&〜P」、すなわち、透明画素はSでは色つきで、Pでは無色の画素である
3.TO:「〜S」、すなわち、透明画素はSにおける無色画素である
4.TT:「〜(S&P)」、すなわち、透明画素はSまたはPにおいて無色の画素である
【0039】
透明性の論理表現を与えた場合、ラスタ演算を透明性と組み合わせる単一の表現を作成することができる。ラスタ演算がRで透明性表現がTであるとすると、Dに対する効果は2項から成る式で表すことができる。1項は、SおよびPの非透明(または不透明)画素のためにDに適用されるRを表す。第2の項は、透明画素に対応するDの画素を保持する。これは論理的に以下のように書くことができる。
D←(R&〜T)|(D&T) [2]
透明モード「TO」を使用した前記の「D←S&P」の例を仮定すると、式[2]を適用して
D←(S&P&〜〜S)|(D&〜S)が得られる。
これは
D←(P&S)|(D&〜S)
に簡単化され、これは最初の例の式[1]と等しい。
【0040】
4つの透明モードの論理表現と式1を使用して、論理演算と透明性を組み合わせて以下の4つの式にすることができる。
OO:D←(R&〜偽)|(D&偽)
OT:D←(R&〜(S&〜P))|(D&(S&〜P))
TO:D←(R&〜〜S)|(D&〜S)
TT:D←(R&〜〜(S&P))|(D&〜(S&P))
これらは以下のように簡単化することができる。
OO:D←R [3]
OT:D←(R&(〜S|P))|(D&(S&〜P)) [4]
TO:D←(R&S)|(D&〜S) [5]
TT:D←(R&(S&P))|(D&〜(S&P)) [6]
【0041】
深さまたは成分数が1より大きい場合
前記の結果は論理および論理演算子の周知の代数的関係に基づいていた。しかし、論理は当然ながら2つの真理値の間の式である。上記では、深さを1、1画素の成分を1と仮定していたため、従来の論理を適用して従来のモノクローム出力装置用のモデルが完全であるようにすることができる。
【0042】
深さまたは成分数が1を超える場合、問題ははるかに複雑になる。この範疇の画素データを複数ビットと呼ぶ。この複雑さは、色を表す値が複数個あるために画素を真理値として表すことができなくなるためである。したがって、ラスタ・グラフィックス・データ・オペランドP、S、およびDを使用して透明性自体を表すことができなくなる。これは、画素が「1」または「0」であるモノクロームの例とは異なる。
【0043】
複数ビット画素の問題は、ラスタ演算の概念から透明性の概念を分離し、それぞれについて相互に協調的なモデルを作成することによって独自の方式で解決される。これは、複雑なアルゴリズムを使用してこの2つの概念を結合する従来技術の解決策とは異なる。たとえば、「PCL 5 Color Technical Reference Manual」(ヒューレット・パッカード、第1版、1994年9月、資料番号5961−0635、5〜12ページ)を参照されたい。具体的には、従来技術の手法は、各透明モードに固有のアルゴリズムを指定する。これによって、追加の透明性モードを導入したい場合に複雑さが増す。本発明を使用したモデルは、すべての透明性モードに適合する1つのアルゴリズムと、OO、OT、TO、およびTTの4つのモードを超える透明性を完全に汎化したモードを有する。
【0044】
誤った計算の例
この計算モードについて考察する前に、前記で行ったように透明性とラスタ演算を組み合わせて複数ビット画素データのための新しいラスタ演算を作成することができない理由を、一例を挙げて示す。この例を表3に示す。
【0045】
この例では、TOという透明性モードがある。これは、透明ソースと不透明パターンを意味する。この例の場合、CMY画素を使用して、3つの成分すべての値がゼロであるものとして白または無色が定義されるようにすることができる。各成分の深さは4である。ソースは100%シアンと100%マゼンタと白(または無色)の4つの画素を有する。100%とは最大量の色を意味し、これは深さ4では15である。2進形式では15は「1111」と書く。
【0046】
透明性モードがTOであるため、Sだけを使用して透明画素を決定する。S内では、3番目の画素だけが無色である。したがって、正しい結果は、Dの最初の2つの画素にラスタ演算を適用し、3番目の画素ではDを保持しなければならない。最初の画素にラスタ演算「D←S&P」を適用することによって<1111,0000,0000>が得られ、2番目の画素への適用によって<0000,0000,0000>が得られる。3番目の画素は保持しなければならないので、3番面の画素のDの値は<0000,0000,1111>のままでなければならない。
【0047】
しかし、その結果として最初の2つの画素が誤りとなる。最初の2つの画素は緑と黄色になる。最後の画素だけが正しい。
【0048】
これは、組合せ演算の両辺によって誤った画素の内容が求められるために起こる。(S&P)の辺は、非透明画素のためのラスタ演算の効果を表すことを意図したものであるのに対して、(D&〜S)の辺はS内の透明画素のためにD内の画素を保持することを意図している。したがって、この両方の項が結果に寄与することは決してあってはならない。しかし、この2つの誤った画素の場合、いくつかの画素が透明でなかった場合であってもDの各画素の黄色が結果で保持された。
【表3】
【0049】
正しい計算の例
論理演算は真理値、すなわち「1」または「0」である値に作用するため、上記の誤った例では画素の概念は捉えられない。したがって、複数ビット画素の場合は色つきと無色という認識が失われる。これは、成分の数に関係なく言える。最初の2つの画素ではSは色付きであるということによって、それらの画素の結果に「D&〜S」が組み込まれないように抑止しなければならない。逆に、Sの3番目の画素は無色であるため、その画素の計算では「S&P」の影響が除外されなければならない。ラスタ演算を透明性モードと組み合わせて3つのオペランド間の1つの演算とすると、この区別が失われる。
【0050】
Sにおける画素のこの分類と、Dの結果をどのようにして導き出すべきかを考えて、どのようにして正しい結果を得るかを表4の計算で示す。最初の2つの画素はSでは色付きであり、したがってSとPにラスタ演算を適用してDを導き出す。Sの3番目の画素は無色であるため、Dの画素を保持する。
【表4】
【0051】
その他の問題
以上の各例では、Sの色付き画素と無色の画素の検出は、ラスタ演算が適用される同じデータから導き出される。しかし、実際の印刷および表示の用途では、ラスタ演算を計算する前にデータにいくつかの画像変形を施される場合がある。これらの画像変形によって、入力値上で透明性演算およびラスタ演算を表すときに複雑化の要因がさらに追加される。
【0052】
これらの画像変形は次のように大別することができる。
・ 調整
・ 変換
・ ディザリング
【0053】
「調整」とは、入力データに特殊効果を加えることである。たとえば、コントラストまたは輝度を追加することである。「変換」は、多くの入力形式のうちの1つの形式の色を取り出して、そのデータを送り先装置が使用する形式にマップする。たとえば、写真はRGBラスタ・グラフィック・データを有する可能性が高いが、プリンタはCMYまたはCMYKのインクまたはトナーを有する可能性が高い。最後に、「ディザリング」は深さを減らしたり、送り先装置の望ましくない特性(たとえばレーザ・プリンタのハイ・ピッチ・バンディング)を補正したりする処理である。たとえば典型的な写真の深さは8であるのに対して、プリンタは1、2、4、または8の深さを有することがある。ディザリング処理を使用し、ハーフトーン化と呼ばれる処理によって深さを適切に減らす。ディザリングは、色を再編成して、現在のプリンタが持ち込む可能性のある妨害的人為作用を補正するためにも使用することができる。
【0054】
これらの画像変形はそれぞれ、ラスタ・グラフィックス・データを変更する。その際、それぞれが元々なかった色を画素にもたらしたり、元々は無色ではなかったいくつかの画素を無色にしたりすることがある。
【0055】
透明性は入力値上で表され、画像変形とは独立して所与のシステムが適用してそれを再生することができる。したがって、色付き画素と無色画素の認識を入力レベルで行わなければならない。
【0056】
しかし、ラスタ演算は同種データを使用しなければならず、宛先をオペランドとしてだけでなく結果の入れ物としても扱わなければならないため、ラスタ演算は変形されたラスタ・グラフィックス・データに対して行わなければならない。したがって、SおよびPについて表された透明性を使用してラスタ演算を実現するには5個のオペランドが必要である。これらのオペランドは、3個の変形ラスタ・グラフィックス・オペランドP、S、およびDと、透明性ラスタ・グラフィックス・オペランドである。この透明性オペランドをそれぞれPTおよびSTと呼ぶ。これらのオペランドはPおよびSの入力形式の色付き画素および無色画素を表す。
【0057】
ここで、従来のモデルは透明性に関してPとSだけを考慮することに留意されたい。これによって「すべての無色の宛先画素をパターン化ソース・カラーで埋める」などという操作が不可能になる。本発明で使用するモデルは、透明性のオペランドとしてDを導入すると共に、透明性の可能なバリエーションを完全に汎化することによって、この限界を克服する。しかし、これについての論じる前に、従来、PTおよびSTをどのように使用しているかを以下に示す。
【0058】
以下は、本発明により協調したフィルタ演算およびラスタ演算を行うために使用可能な「オーダ」またはハードウェア・コマンド/命令の説明である。
【0059】
協調フィルタ演算およびラスタ演算のハードウェア実施態様には、ソフトウェアが1つまたは複数の透明性フィルタと、フィルタとソースまたはパターンとの間にフィルタおよびブール演算とをセットアップするインタフェースが必要である。このソフトウェア・インタフェースは、メモリ内に、イメージを作成する命令またはコマンド(オーダ)も含んでいなければならない。以下ではこの必要なコマンドについて説明した後、所望のイメージを作成するために使用可能なコマンドの使用法を示す例を示す。
【表5】
【0060】
表5で、演算コードset_bbmap、set_bool_d、set_bool_hd、set_bool_sd、set_bool_shd、set_htbmap,set_sbmap、およびblt2bb_shdは、米国特許第5204804号に記載されているコマンドの演算コードである。演算コードset_bool_hs、set_smask_sa、およびset_pmask_saは、本発明を実施するために実施する必要がある新しい操作の演算コードである。これらの新しい演算コード(すなわちこれらの演算コードまたは同様の演算コードによって実行される操作)の実施の詳細は、本明細書の説明に基づけば当業者ならわかるであろう。
【0061】
必要な基本ラスタ演算は2つある。1つは、ソースと宛先だけを含み、1つはソースとパターンと宛先を含む。ソースを複数の方法で表現することができる場合、各ソース表現について2つの演算を定義することができる。たとえば、ソースはラン・レングス・コード化オブジェクトとして表現される場合がある。2つの別個の演算コードを定義することが望ましい場合もある。どちらの場合も、「ソース、パターン、および宛先を使用してラスタ演算を実行」コマンドは、ソース、宛先、および操作パターンの記憶場所を示すために必要な引数を含む。宛先の高さと幅は必要な引数である。宛先の記憶場所はオフセットまたはx、y位置として表すことができるため、コマンドには宛先の起点または「バンド・バッファ」指定が含まれていなければならない。パターンの調整ができるようにするその他のパラメータも含めることができる。
【0062】
上記の命令を使用して、メモリのフレーム・バッファまたはバンド・バッファ内のオブジェクトを後で出力するためにレンダリングする「オーダ」またはコマンドのリストを作成することができる。表4の例は、以下のコマンドのシーケンスを使用してレンダリングすることができる。かっこ内の項目はコマンドで使用される引数である。
【0063】
ソース・フィルタ・ブール値は、表4に示す例では「00001010」である。
【0064】
ソース・フィルタのアドレスは、表4の例では「00000110」である。ソース・フィルタにはソースの各画素の1ビットが含まれるものとみなす。
【0065】
ラスタ演算で使用するブール値は、この例では「1100000」である。
【0066】
剰余パラメータは、パターン(ハーフトーン)の配置を扱う。
【0067】
透明性はソースが透明でパターンが不透明であることを意味するTOであるため、表5に示すコマンドset_pmask_saは、前記の例では使用しない。しかし、使用するとすればset_pmask_saコマンドの引数は以下のようになる。
【0068】
パターン・フィルタには、パターンの各画素の1ビットが含まれるものとみなす。
【0069】
上記の各コマンドのパラメータのほとんどは容易にわかるであろう。機能またはタイプが容易にわからないと思われる引数について以下に説明する。
【0070】
1.バンド番号およびバンド・バッファ番号:バンドという用語は、イメージ全体より小さいビットマップ・イメージの矩形区画を指す。イメージは多数の小さなバンドにレンダリングされることが多い。レンダリングするすべてのバンドのために単一の表示リスト(オーダ・リスト)を作成する場合、リスト内のラスタ演算コマンドはコマンドを適用する特殊のバンドを指示しなければならない。この特定のバンドをバンド番号と呼ぶ。各バンドに別々の表示リストを作成する場合は、この引数は不要になる。バンド・バッファ番号は、バンド情報を格納するために使用される対応するバッファである。
【0071】
2.パターン(ハーフトーン)x剰余、y剰余
パターンはオブジェクトに繰り返し適用されてオブジェクトを埋めるかまたはペイントする。これによって、小さなパターンでより大きなオブジェクトの塗りつぶしまたはペイントを行うことができる。オブジェクトの境界線内にパターンを繰り返し適用することをしばしば「タイリング」と呼ぶ。ラスタ演算コマンドの引数で指示しない限り、どのパターンもページ・イメージの左最上部に起点があるものとみなされる。パターンx剰余引数およびパターンy剰余引数は、宛先と組み合わせた場合にソース・オブジェクトを基準にしたパターンの起点およびタイリングの調整を可能にする。通常の場合、xおよびy剰余引数はパターンの幅と高さに設定される。この場合、パターンの起点または固定点はページ・イメージの左上隅である。これは、そのパターンがパターンの幅と高さを法としてオブジェクトに適用されることを意味する。x剰余およびy剰余に他の値を選定すうことによって、blt2bb_shdコマンドのユーザは、パターンがパターン内の特定のビット位置から始まるオブジェクトに適用されるように、パターンの起点または固定点を有効に変更することができる。
【0072】
従来の計算
正しい計算結果を得るために、従来の方法は、各透明性モードに1つずつ順次アルゴリズムまたは複雑な式を定義する。その一例は「PCL 5 ColorTechnical Reference Manual」(ヒューレット・パッカード、第1版、1994年9月、資料番号5961−0635)の5〜12ページに記載されている。
OO:D ← R [7]
OT:D ← (R&(〜ST|PT))|(D&〜PT&ST)) [8]
TO:D ← (R&ST)|(D&〜ST) [9]
TT:D ← (R&(ST&PT)|(D&〜(ST&PT)) [10]
これらは式[3]、[4]、[5]、[6]と類似していることに留意されたい。
【0073】
この例では、色付き画素が最大値(2d−1)を有し、無色の値が0になるように透明性オペランドPTおよびSTをP、S、Dの深さまで拡張しなければならない。
【0074】
従来の手法の問題
従来の計算モデルにはいくつかの基本的問題がある。第1に、透明性モードが4モードに制限されている。したがって、新しい透明性モードを追加するには、そのモードのために新しいアルゴリズムが必要である。確かにソフトウェアのみのシステムではこれはそれほどの作業ではない。しかし、ハードウェアに新しいアルゴリズムを追加するためには、新しいハードウェアを作成する必要がある。したがって、このモデルはハードウェア・アーキテクチャに容易に拡張することはできない。
【0075】
第2に、このモデルは計算が複雑である。したがって、ハードウェア実施態様とソフトウェア実施態様の両方に過大な処理負担がかかることになる。カラー・レーザ・プリンタで、最大128MB、600ドット/インチ、4成分および深さ8のレター・サイズのページで、おそらく毎分3〜6ページのリアルタイム要件でページを生成するのに必要な大量のデータを考えた場合、過大な計算によって能力が制限されたり、きわめて高価なプロセッサが必要となると考えられる。
【0076】
次に、この解決策は低メモリのリアルタイム環境に負担をかける。これは、透明性オペランドがP、S、およびDと同じ深さでなければならないためである。これには、これらのオペランドを圧縮しなければならないことを意味し、さらにこれはリアルタイム圧縮解除要件に負担をかける。
【0077】
最後に、この方法は透明性オペランドとして宛先を含まない。ソースのうちの既存のオブジェクトと交わる部分だけが宛先に配置されるように、既存の宛先オブジェクトが被われないようにする操作は、きわめて困難になる。この問題は、宛先の透明性を可能にすることによって解消される。
【0078】
フィルタ
本発明の解決策は、従来の解決策に伴う問題をすべて克服する。この解決策の基礎は、透明性をフィルタ演算とラスタ演算に分けることである。透明性オペランドとして宛先を含む透明性のモデルを定義する。このモデルは、フィルタおよびフィルタ演算に基づく。ラスタ演算モデルは完全であり、変更されない。最後に、モデルが協調的に機能することができるようにする機構を定義する。
【0079】
「フィルタ」とは、各画素が1成分を持ち、深さ1を持ち、その値が色付き(「1」)または無色(「0」)を表しているラスタ・グラフィックス・データである。PおよびSの入力形式の色付き画素および無色の画素を表すためにそれぞれPFおよびSFで示されたフィルタを使用する。この2つのフィルタを使用して、STおよびPTの目的にかなう透明性の効果を実現する。
【0080】
ソースまたはパターンのフィルタは、入力ソースまたはパターンの(すなわち変形が加えられる前の)色付きまたは無色の画素を表す。各フィルタは表6に示すアルゴリズム2によって作成することができる。
表6:アルゴリズム2 − ラスタ・グラフィックス・データ・オペランドのフィルタを決定する
【0081】
フィルタはDについても維持され、これをDF で示す。しかし、DがP、S、およびDに適用されるラスタ演算によって作成されるのとほとんど同様に、このフィルタはSFおよびPFから作成される。このようにして、入力パターンおよびソースに関する一連のラスタ演算により、DF はDにおける色付きおよび無色の画素を表す。
【0082】
フィルタ演算
「フィルタ演算」は、1つまたは複数の等しいサイズのフィルタ内の対応する画素に繰り返し適用される複合論理演算Fである。この定義は一般に制限がないが、コンピュータ・グラフィックス処理における適用について、ラスタ演算に関して行ったのとほとんど同じようにして説明する。そのために、3つの等しいサイズのフィルタPF、SF、およびDF を使用する。
【0083】
Fをその3つのオペランドに適用することを次のように示す。
F(PF,SF,DF)
【0084】
フィルタ演算を使用してラスタ演算のどの出力値を宛先に適用させるかを決定する。フィルタ演算によって「1」が得られた場合、それに対応するラスタ演算出力値が対応する宛先画素に適用される。それ以外の場合は、宛先画素は変化しない。「協調フィルタ演算およびラスタ演算」という言い方を使用するのはこの方式による。
【0085】
フィルタ演算の決定
ラスタ演算の場合と同様に、フィルタ演算には3つのオペランドがあるため、可能なフィルタ演算は256ある。フィルタ演算はラスタ演算とほとんど同様にして決定することができる。これを表7を使用して行う。
【0086】
まず、3つのオペランドの間の論理形式のすべての組み合わせを書き出す。フィルタ演算を決定するには、表のデータ値部の8列をそれぞれ調べて、PF、SF、およびDFのどの組み合わせが望ましいかを選定する。
【表7】
【0087】
S内のすべての色付き画素、またはP内の無色の画素に対応するS内のすべての色付き画素を表すフィルタを作成したいとする。111、110、101、100、001、および000の組み合わせによってこの結果を得る。これは、論理形式で次のように書くことができる。
(PF & SF & DF)|(PF & SF & 〜DF)|(PF & 〜SF
& DF)|(PF & 〜SF&〜DF)|(〜PF & 〜SF &
DF)|(〜PF & 〜SF & 〜DF)
【0088】
論理代数これを次のようなフィルタ演算に簡単化することができる。
(〜SF|PF)
【0089】
OTの透明性の式は(S & 〜P)であり、上記のフィルタ演算はこの式の反対、すなわち〜(S & 〜P)=(〜S|P)である。
【0090】
協調フィルタ演算およびラスタ演算
フィルタ演算を使用して、3つのラスタ演算オペランドの色付きおよび無色の画素を求める。ラスタ演算は前述の通りである。このようにして、フィルタ演算はDの変化に関してふるいの役割を果たす。フィルタ演算によって色付き画素の結果が得られた場合、対応する宛先画素にラスタ演算が適用される。それ以外の場合は、宛先画素は変化しない。
【0091】
フローチャート
このモデルには、3つのフィルタ・オペランドPF、SF、DF と3つのラスタ・オペランドP、S、およびDの、6つのオペランドがある。この6つのオペランドとフィルタ演算Fとラスタ演算Rとが与えられたと仮定すると、図3のフローチャートに示すアルゴリズム3は計算モデルを示す。具体的には、フィルタ演算61aおよび61bで、D中のどの画素が変更されたかが決定され、ラスタ演算63aおよび63bでDに対する変更を記述する。図3においては、DF をラスタ演算に従って色付きおよび無色の入力ラスタ・グラフィックス・データから汎化しなければならないため、DF を更新するためにもラスタ演算を使用する。このモデルでは、DFとDだけが初期値を必要とする。DFは無色に初期化され、Dは0に初期化される。
【0092】
例
このアルゴリズムを実証するため、誤った例と同じデータを使用する。表3を想起すると、(C,M,0)というソースSと、(CMY,0,CMY)というパターンPと、(Y,Y,Y)という宛先Dがある。これから、SFを「110」、PFを「101」、DFを「111」と書くことができる。
【0093】
透明性モードがT0であるため、Fを「SF」とする。すなわち、Fは、ソース自体ではなくフィルタを入力とした透明ソースと不透明パターンを表す論理演算「〜S」の反対である。
【0094】
FがSF であるため、フィルタ演算による色付き画素は最初の2画素である。
ラスタ演算
「D ←(S & P)」
を最初の2画素に適用し、3番目の画素のDを保持すると、所望通りの(C,0,Y)が得られる。また、DF の最初の2画素を更新しなければならず、その結果、「101」という新しいDF 値になることにも留意されたい。
【0095】
従来技術の透明性モードと組み合わせた使用
アルゴリズム3(図3参照)では、フィルタを使用して透明性の効果を生じさせると同時に、ラスタ演算によって非透明操作の効果を記述している。この機構は、フィルタ演算65をアルゴリズムへの入力として使用する。したがって、1つのアルゴリズムがすべての透明性モードに使用される。難点はフィルタの作成とフィルタ演算の決定である。フィルタ作成の方法は、アルゴリズム2で明示的に示した。論理表を使用してフィルタ演算を作成する方法についても示した。従来の4つの透明性モードに適したフィルタ演算を以下に示す。
OO:1(または常に色付き)
OT:〜SF|PF
TO:SF
TT:SF & PF
【0096】
これらのフィルタ演算をアルゴリズム3と共に使用すると、式[7]、[8]、「9]、および[10]と同じ結果が得られる。
【0097】
従来技術ではない透明性モードと組み合わせた使用
ラスタ演算を使用してDのうちの色のない部分を埋めたいとする。これは、〜DF のフィルタ演算とアルゴリズム3を使用して実現することができる。これは、従来のモデルでは行うことができない。
【0098】
これを実現するために、DF をDと共に作成しなければならない。これは、3つのフィルタオペランドにラスタ演算を適用して宛先フィルタを作ることによって行う。宛先フィルタは、パターン、ソース、および宛先と同じ透明性効果を受ける。
【0099】
ハードウェア実施態様
ソフトウェアの場合、協調フィルタ演算およびラスタ演算計算モデルは、従来の解決策と比べるとはるかに効率的である。さらに、この計算モデルはハードウェア実施態様の場合にも大きな利点がある。この利点は、カラーおよびモノクロームのレーザ・プリンタなどのリアルタイム制約を持つ装置の場合にはさらに大きくなる。これらの利点について述べる前に、3オペランド・モデル用の回路について概説する。
【0100】
汎用ハードウェア回路
汎用形式の3オペランド・ハードウェア回路図について、図4を参照しながら説明する。この図はアルゴリズム3の実施態様である。ハードウェア回路では、3つの論理演算のすべてを並列して実行することができる。これらの演算は、2つのラスタ演算論理ユニット71および73とフィルタ演算論理ユニット75に含まれる。これらの各ユニットは、実行する複合論理演算を決定する256の別個の演算コードを認識する。演算コードによって、3つの入力オペランドの8つの2進組み合わせの結果がどのようになるかを3つのユニットに知らせる。この3つのユニットの出力は1画素単位で同期される。
【0101】
第1のラスタ演算ユニットは、パターン、ソース、および宛先のラスタ・グラフィックス・データに適用されたラスタ演算の結果を計算する。第2のラスタ演算ユニットは、パターン、ソース、および宛先のフィルタに適用されたラスタ演算の結果を計算する。
【0102】
フィルタ演算ユニットは、フィルタ演算に従って画素の結果が色付きの場合には「1」を出力し、色付きでない場合は「0」を出力する。
【0103】
3つの演算論理ユニットの出力値は、選択ユニットと呼ぶマルチプレクサ81および83に入力される。選択はフィルタ演算論理ユニット75の出力値に基づいて行われる。選択ユニット1はラスタ演算論理ユニット1の結果とオペランドDのうちの一方を選択する。選択ユニット2はラスタ演算論理ユニット2の結果とオペランドDFのうちの一方を選択する。選択ユニットの出力値が、宛先(D')と宛先フィルタ(DF' )の新しい値である。選択回路のこれらの出力値によって、宛先ラスタ・グラフィックス・データと宛先フィルタのそれぞれの画素が置き換えられる。
【0104】
従来のモデルに対する利点
表8に、従来のモデルと比較した協調フィルタ演算およびラスタ演算モデルの主な利点を示す。
【表8】
【0105】
好ましいハードウェア回路
以上、3つのオペランドに対してフィルタを使用することによって透明性の概念を汎化するモデルについて説明したことに留意されたい。ラスタ演算と同様、このモデルは自明の方式で引数を任意の数に拡大可能である。好ましい回路が稼働する装置は典型的には印刷装置および表示装置であるため、好ましい実施形態では、2個を選定する。これらの装置に入力されるデータを生成するために使用されるアプリケーションは通常、パターンとソースに対してのみ透明性を使用するため、好ましい実施形態はパターンとソースのみを含む。これを図5に示す。
【0106】
好ましい実施形態は宛先フィルタを含まないため、すなわちフィルタ演算は2つのオペランドしか受け付けないため、好ましい実施形態では宛先フィルタの維持は不要である。したがって、ラスタ演算論理ユニット87はあるが、第2のラスタ演算論理ユニットはなく、その結果、フィルタ演算論理ユニット75に付随する入出力がなくなり、その結果、フィルタ演算論理ユニット91になる。選択ユニット93は、図4の選択ユニット1または選択ユニット2(要素81および83)のようなマルチプレクサである。
【0107】
このモデルは16のフィルタ演算を行う。フィルタ演算を決定するために、表9に示すような2つのオペランドの可能な組み合わせを示す表を作成する。この表は、表7の3つのオペランドの表とほぼ同じである。表9には、2つのパターンおよびソースの画素の4つの可能な組み合わせを表す4列が示されている。
【表9】
【0108】
たとえば、所望のフィルタは「色付きソース画素に対応する画素にのみラスタ演算を適用する」であるものとする。これは、表の左から1番目と3番目の列、すなわち「11」と「01」を使用する。これらを次のように書くことができる。
「(PF & SF)|(〜PF & SF)」
【0109】
これは、透明性モードTOにとって十分なフィルタ演算である「S」と等価である。
【0110】
結論
本発明は、グラフィックス環境におけるラスタ演算と共に透明性操作を同時に処理する新規な手法を提供する。これは、フィルタとフィルタ演算を導入することによって実現される。これらを使用して、ラスタ演算の計算とは別に透明性の効果を決定する。これは、この2つの論理形式を組み合わせて1つの演算にしようとする従来技術の手法とは大きく異なる。
【0111】
フィルタ演算とラスタ演算の協調計算モデルであるアルゴリズム3を定義する。これらの演算は互いに独立して計算することができる。協調は、両方の演算の結果を一緒に使用して最終結果を求めることにある。実際には、フィルタ演算の結果によってどのような値が出力されるかが決まるのに対し、ラスタ演算は出力可能な値のうちの1つを出す。
【0112】
本発明のモデルは、フィルタ演算を使用して、宛先に作用することができる任意の数のオペランドに汎化する。これは、透明性因子としてオペランドのサブセットしか考慮しない従来のモデルとは異なる。さらに、本発明のモデルは1つのアルゴリズムですべての場合を処理するようになっている。これは、透明性またはフィルタ演算がアルゴリズムへの論理演算入力であるためである。これは、透明性モードごとにアルゴリズムをカスタマイズする従来の手法と大きく異なる。
【0113】
本発明の結果として、一定の入力値のセットと、ラスタとフィルタの2つの宛先出力値が与えられば、どのようなフィルタ演算とラスタ演算の対でも扱うことができる汎用回路を規定することが可能である。この図は図3の3つの入力に図示されている。好ましい実施形態は、現在の表示装置およびプリンタの環境であるためと、それらの装置に入力値を供給するアプリケーションが一般にはソースとパターンの透明性しか使用しないために、図4には3つのラスタ・グラフィックス・オペランドと2つのフィルタが使用可能な好ましい実施形態が図示されている。本明細書に記載のように将来、汎化透明性の適用環境になった場合、本発明の手法はその汎化をサポートするのにも十分かつ独自な仕方で適合する。
【0114】
以下の説明は、参考のために本願に取り込んだ特開平6−119131の図4、すなわち本願に添付した図6の説明である。
図形インターフェイスサブシステム23
図形サービスのための1組の標準的なインターフェイスルーチンである図形インターフェイスサブシステム23をPDLインタープリータ21が呼び出す。この図形インターフェイスサブシステムは、宛先がユーザーメモリ24かバンドバッファ41であるか否かを基にして直接ブリットを実行できるか否かを判定する。直接ブリットを行うことができないとすると、図形インターフェイスサブシステムはオーダー構成機能31を呼び出して、記憶されるオーダー35を作成する。
直接ブリットが行われた後、またはオーダーが作成された後で、図形インターフェイスサブシステムはPDLインタープリータ21へ戻る。
【0115】
直接ブリットプロセッサ29
この機能は要求によりユーザーメモリ24内に画素を描き、戻る。この機能は従来技術で知られており、画素を描く指令がユーザーメモリ宛先に作用を及ぼす時に常に実行される。
【0116】
オーダー構成31
オーダー構成処理31はオーダー35を生ずる。それらのオーダーは、実時間ブリットプロセッサ37により行われる実時間ブリット処理中に後で用いるためにメモリに記憶される。以後のオーダーを既知のオーダーに組み合わせることが可能であるようなある種のオーダーに対しては、オーダーに従うためにオーダー短縮機能を呼び出す。好適な実施例においては、少なくとも走査線ビットオーダーが短縮される。他の種類のオーダーを本発明に従って短縮できる。
【0117】
オーダー短縮33
この機能は、1組のオーダーを包まなければならないオーダー構成処理機能により知らされるまで、圧縮できるオーダーの記録を保持する。それから、この機能はそれの内部情報を初期化して、次のセットについての情報の収集を開始する。多くの小さい走査線ブリットオーダーがページ映像の小さい領域に対して動作する場合にこの機能は非常に重要である。その短縮は、場合によってはブリットが重なり合うためにメモリの量を大きく減少する。
【0118】
記憶されているオーダー35
記憶されているオーダー35は、アプリケーションが要求する映像を作成する指令の内部表現である。
【0119】
実時間ブリットプロセッサ37
ページに対する全ての要求をPDLインタープリータが終わったことを知らせるためにPDLインタープリータが呼び出しを行うと、図形インターフェイスサブシステム23は実時間処理フェーズを開始する。図形インターフェイスサブシステムは記憶されているオーダー35を、出力すべき各バンドに対して1回横切る。バンドに作用する全てのオーダーが処理されると、DMAまたはFIFOバッファ出力ハードウェアを利用できるならば、出力またはスタートのためにバンドを待ち行列にするために出力インターフェイス47を呼び出す。別のバンドバッファ41a,41bまたは41cを利用できるものとすると、それは次のバンドを構成する。それ以上のバッファを利用できないとすると、PDLインタープリータ21へ戻る図形インターフェイスサブシステム23へそれは戻る。PDLインタープリータは入力の解釈と、次のページにおける動作とを続けることができる。この点から、実時間ブリットプロセッサ37は出力ハードウェア53により開始される割り込みにより駆動される。
【0120】
実時間ブリットプロセッサ37は、バンドバッファ41a,41bまたは41cに記憶される、プリントすべきページのバンドすなわち部分に対応するビットマップ映像へ記憶されているオーダーを変換する。
【0121】
とくに、バンドがプリンタへ供給された時に、割り込みハンドラ49が出力ハードウェア53により通知される。そうすると、実時間ブリットプロセッサ37はそれの処理を続けるために「拡張された割り込みスレッド」として呼ばれる。
【0122】
バンドバッファ41a,41b,41c
バンドバッファ41a,41b,41cは、ビッドマップされたページ映像を保持するために用いられるランダムアクセスメモリである。バンド区分が用いられないと、完全なページを保持するために1つのバンドバッファが用いられる。他の場合には、完全なページよりはるかに小さいサイズのバンドバッファが2つまたは3つある。
【0123】
メモリマネージャー43
メモリマネージャー43は、図形インターフェイスサブシステム23と、オーダー構成31と、オーダー短縮33または実時間ブリットプロセッサ37からの呼び出しに応じてメモリのブロックを割り当て、割り当てを解除する。メモリマネージャー43は、記憶されているオーダーとバンドバッファを含んでいるメモリを、他のソフトウェアコンポーネントがメモリのブロックを獲得または放すことが必要な時に採用する必要がある周知のメモリ管理技術に従って管理するソフトウェア機能である。プリントすべき実際のビットマップ映像はハンドバッファ41からDMAハードウェアまたはFIFOバッファ53へ転送されて、出力インターフェイス47と、出力割り込みハンドラ49と、実時間ブリット処理37と、メモリマネージャー43との動作によりプリンタへ転送する。これに関連して、図6には3つのバンドバッファが示されているが、実際には2つ、3つまたはより多くのバンドバッファを設けることができる。もっとも、ほとんどの場合には2つまたは3つのバンドバッファで十分である。
【0124】
出力インターフェイス47
出力インターフェイス47は完成されたバンドを実時間ブリットプロセッサから受け、それらのバンドを出力ハードウェア53へ送り、または、出力ハードウェアがもはや使用中でない時は、出力割り込みハンドラ49を出力ハードウェアへ送るためにそれらのバンドを待ち行列にする。出力割り込みハンドラ49の助けにより、出力インターフェイス47はプリンタ装置からの同期信号をモニタして、バンドを出力へいつ供給できるかを決定する。プリンタ装置は「フレーム同期」信号を送ってページの1番上を示す。「フレーム同期」信号が真になるまで出力インターフェイスはデータを供給できない。
【0125】
FIFOバッファが出力ハードウェアとして用いられると、ソフトウェアはデータをバンドバッファからFIFOへ、1度1本の走査線だけ、動かす。DMA制御器を同様にして使用できる。黒を書く出力装置へ0を供給することにより、または白を書く出力装置へ1を供給することにより、上余白と左余白がとられる。
【0126】
出力割り込みハンドラ49
プリンタ装置のビデオインターフェイスへのバンドの供給を出力ハードウェアが終わると、その出力ハードウェアは割り込みを生ずる。出力割り込みハンドラは次のバンドをそれの待ち行列から得て、それを出力ハードウェアへ送る。それから、出力割り込みハンドラは以前に終わったバンドバッファを戻すから、実時間ブリットプロセッサはそれを再使用できる。
【0127】
出力割り込みハンドラが戻ると、実時間ブリットプロセッサ37は、図形インターフェイスサブシステムがPDLインタープリータへ戻る前に、別のバンドを描くまで再び動作する。この「拡張された割り込みスレッド」は、種々のCPUのアーキテクチャに応じてそれらのCPUに対して異なったやり方で実現される。「拡張された割り込みスレッド」は、CPUに割り込むことができるように、優先度の低いCPUの別々のスタックで動作する。
【0128】
出力ハードウェア53
本発明のバンド区分がソフトウェアで実現される時は、プリンタ装置へのビデオ出力を取り扱うためにFIFOまたはDMA制御器が用いられる。バンド区分がハードウェアで行われる時は、FIFOまたはDMA制御器出力ハードウェアを含むことができる。
【0129】
好適な実施例においては、図6に示す機能素子はハードウェアで実現されるが、1つまたは複数の機能素子がソフトウェアで実現されるとすると、そのような各素子により実行される機能は、メモリ内の命令セットを実行するマイクロプロセッサが、実行される機能に適切な制御信号を発生するように、そのマイクロプロセッサの動作により実際に実行される。これに関連して、本発明の実施のために特定のハードウェア実現の詳細は当業者にとっては不要であるのと全く同様に、本発明をソフトウェアで実現するために必要なマイクロプロセッサと、メモリと、データと、アドレスバスと、クロック等との詳細は、ここで行う説明を基にして当業者には明らかである。
【図面の簡単な説明】
【図1】 本発明を使用することができる環境を示すシステムのブロック図である。
【図2】 矩形グリッドを形成する画素の表現を示す図である。
【図3】 協調計算アルゴリズムを示すフローチャートである。
【図4】 オペランドが3つの場合の図3に示す協調計算アルゴリズムの好ましい実施形態を実施する回路を示すブロック図である。
【図5】 オペランドが2つの場合の協調計算アルゴリズムの好ましい実施形態を実施する回路を示すブロック図である。
【図6】 従来技術のシステムのブロック図である。
【符号の説明】
21 リアルタイム・イメージ生成機構
23 グラフィックス・インタフェース・サブシステム
31 オーダ構成
43 メモリ管理機構
41 バンド・バッファ
53 ラスタ出力インタフェース
71 ラスタ演算論理ユニット
73 ラスタ演算論理ユニット
75 フィルタ演算論理ユニット
81 選択ユニット
83 選択ユニット
87 ラスタ演算論理ユニット
91 フィルタ演算論理ユニット
93 選択ユニット
Claims (3)
- 表示するイメージを定義するグラフィックス言語コマンドを受け取り、グラフィックス言語コマンドから、表示するイメージを表す1組のグラフィックス・オーダを作成する、表示のためのグラフィックス情報を含むイメージを作成する装置において、
表示させる対象物についての透明性情報オーダを含むグラフィックス・オーダからビットマップ・イメージを生成するイメージ生成手段を有し、そのイメージ生成手段が、ソース内とパターン内と宛先内の複数ビット画素を処理するラスタ演算モデルと、前記ソース内と前記パターン内と前記宛先内の複数ビット画素を処理するフィルタ演算モデルとを備え、かつ前記ラスタ演算モデルと前記フィルタ演算モデルとが協調動作して前記宛先を所定の方式で修正することを特徴とする表示のためのグラフィックス情報を含むイメージを作成する装置。 - 前記ラスタ演算モデルが、a)パターン入力値とソース入力値と宛先入力値とに対して実行されてラスタ演算結果を生成する論理演算を定義する所定のラスタ演算を1つの入力値として受け取るラスタ演算論理ユニットを備え、
前記フィルタ演算モデルが、b)フィルタ・パターン入力値とフィルタ・ソース入力値とに対して実行されてフィルタ演算結果を生成する論理演算を定義する所定のフィルタ演算を1つの入力値として受け取るフィルタ演算論理ユニットを備え、
前記装置が、c)前記ラスタ演算論理ユニットと前記フィルタ演算論理ユニットとに結合され、前記フィルタ演算結果に基づいて前記ラスタ演算結果と前記ラスタ演算論理ユニットへの前記宛先入力値とのうちの一方を選択する選択ユニット手段を備えることを特徴とする請求項1に記載の装置。 - 前記ラスタ演算モデルが、
a)第1のパターン入力値と第1のソース入力値と第1の宛先入力値とに対して実行されてラスタ演算結果を生成する論理演算を定義する所定のラスタ演算を1つの入力値として受け取る第1のラスタ演算論理ユニットと、
b)フィルタ・パターン入力値とフィルタ・ソース入力値とフィルタ宛先入力値とに実行されてラスタ演算結果を生成する論理演算を定義する前記所定のラスタ演算を1つの入力値として受け取る第2のラスタ演算論理ユニットとを備え、
前記フィルタ演算モデルが、c)前記フィルタ・パターン入力値と前記フィルタ・ソース入力値と前記フィルタ宛先入力値とに対して実行されてフィルタ演算結果を生成する論理演算を定義する所定のフィルタ演算を1つの入力値として受け取るフィルタ演算論理ユニットを備え、
前記装置が、
d)前記第1のラスタ演算論理ユニットと前記フィルタ演算論理ユニットとに結合され、前記フィルタ演算結果に基づいて前記ラスタ演算結果と前記第1のラスタ演算論理ユニットへの前記宛先入力とのうちから一方を選択する第1の選択ユニット手段と、
e)前記第2のラスタ演算論理ユニットと前記フィルタ演算論理ユニットとに結合されて、前記フィルタ演算結果に基づいて前記第2のラスタ演算結果と前記第2のラスタ演算論理ユニットへの前記フィルタ宛先入力とのうちから一方を選択する第2の選択ユニット手段と
を備える請求項1に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/671450 | 1996-06-27 | ||
US08/671,450 US6046748A (en) | 1996-06-27 | 1996-06-27 | Cooperative filter and raster operation evaluation model |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH113417A JPH113417A (ja) | 1999-01-06 |
JP4063918B2 true JP4063918B2 (ja) | 2008-03-19 |
Family
ID=24694556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16842197A Expired - Fee Related JP4063918B2 (ja) | 1996-06-27 | 1997-06-25 | 表示のためのグラフィックス情報を含むイメージを作成する装置と方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6046748A (ja) |
EP (1) | EP0817122B1 (ja) |
JP (1) | JP4063918B2 (ja) |
DE (1) | DE69724707T2 (ja) |
HK (1) | HK1007908A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6753556B2 (en) * | 1999-10-06 | 2004-06-22 | International Business Machines Corporation | Silicate gate dielectric |
US7164483B2 (en) * | 2002-02-19 | 2007-01-16 | Texas Instruments Incorporated | Optimal approach to perform raster operations |
AUPS134202A0 (en) * | 2002-03-25 | 2002-05-09 | Canon Kabushiki Kaisha | System and method for optimizing halftoning printer performance |
US20040080789A1 (en) * | 2002-10-28 | 2004-04-29 | Anderson James E. | Gray scale enhancements for color documents rendered on monochrome devices |
US8164785B2 (en) * | 2004-06-15 | 2012-04-24 | Sharp Laboratories Of America, Inc. | Method and apparatus for selecting printing devices according to resource availability |
US7821657B2 (en) * | 2004-09-14 | 2010-10-26 | Sharp Laboratories Of America, Inc. | Continuous raster image processing control across print jobs |
US20080192066A1 (en) * | 2007-02-13 | 2008-08-14 | Sharp Laboratories Of America, Inc. | Raster operation table conversion for color spaces |
KR101571573B1 (ko) * | 2007-09-28 | 2015-11-24 | 돌비 레버러토리즈 라이쎈싱 코오포레이션 | 부가적인 정보 역량을 이용한 멀티미디어 코딩 및 디코딩 |
US20110122176A1 (en) * | 2008-08-20 | 2011-05-26 | Takaji Numao | Display device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2584105B2 (ja) * | 1990-05-31 | 1997-02-19 | 松下電器産業株式会社 | 画像編集処理方法 |
US5459823A (en) * | 1990-07-05 | 1995-10-17 | Canon Kabushiki Kaisha | Graphics engine for true colour 2D graphics |
EP0470782B1 (en) * | 1990-08-08 | 1996-02-14 | The Peerless Group | Image rendering process and apparatus |
JPH06223168A (ja) * | 1992-04-29 | 1994-08-12 | Canon Inf Syst Res Australia Pty Ltd | カラーの混合と発生システムおよびグラフィックスシステム |
AUPM822194A0 (en) * | 1994-09-16 | 1994-10-13 | Canon Inc. | Utilisation of scanned images in an image compositing system |
-
1996
- 1996-06-27 US US08/671,450 patent/US6046748A/en not_active Expired - Lifetime
-
1997
- 1997-02-19 DE DE69724707T patent/DE69724707T2/de not_active Expired - Lifetime
- 1997-02-19 EP EP97301078A patent/EP0817122B1/en not_active Expired - Lifetime
- 1997-06-25 JP JP16842197A patent/JP4063918B2/ja not_active Expired - Fee Related
-
1998
- 1998-07-07 HK HK98109005A patent/HK1007908A1/xx unknown
Also Published As
Publication number | Publication date |
---|---|
DE69724707T2 (de) | 2004-07-08 |
JPH113417A (ja) | 1999-01-06 |
EP0817122B1 (en) | 2003-09-10 |
HK1007908A1 (en) | 1999-04-30 |
US6046748A (en) | 2000-04-04 |
DE69724707D1 (de) | 2003-10-16 |
EP0817122A3 (en) | 1999-08-11 |
EP0817122A2 (en) | 1998-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0369719B1 (en) | Image processing apparatus and method | |
JP2528376B2 (ja) | 画像の輪郭修正方法 | |
US20030214660A1 (en) | Systems and methods for using multiple processors for imaging | |
JP4063918B2 (ja) | 表示のためのグラフィックス情報を含むイメージを作成する装置と方法 | |
JPH03273368A (ja) | 図形処理装置 | |
JP3845045B2 (ja) | 画像処理装置、画像処理方法、画像形成装置、印刷装置及びホストpc | |
JP2013505854A (ja) | 印刷可能なラスタ画像ファイルを作成する方法 | |
JPH04139589A (ja) | 図形処理装置 | |
JP2011053263A (ja) | 画像処理装置、画像処理方法、画像出力システム、プログラム及び記録媒体 | |
JP2004334533A (ja) | 画像処理装置および画像処理方法 | |
JP3636891B2 (ja) | カラー画像出力方法 | |
JP3862460B2 (ja) | 情報処理方法及び装置と記憶媒体 | |
JP2000066658A (ja) | 画像処理装置および記録媒体 | |
JP2005038084A (ja) | 描画データの変換方法及び変換装置 | |
JP2002024840A (ja) | 描画処理装置 | |
JPH08314429A (ja) | 半透明色画像生成装置 | |
JP2005077750A (ja) | 表示装置装置および文字表示制御方法 | |
JP4630081B2 (ja) | 画像処理装置、画像形成装置、描画命令生成方法、描画命令生成プログラム、描画命令生成プログラムを記録した記録媒体 | |
JP2633566B2 (ja) | 画像処理方法 | |
JP2000149006A (ja) | 画像処理プログラムを記録した媒体、画像処理装置および画像処理方法 | |
JP2001296857A (ja) | データ保存方法およびデータ変換装置 | |
JP2001209640A (ja) | 画像情報変換装置、画像処理装置、方法及び記録媒体 | |
JPH05183753A (ja) | カラー画像出力装置及びその方法 | |
JP2004062894A (ja) | 画像処理プログラムを記録した媒体、画像処理装置および画像処理方法 | |
JP2005007824A (ja) | 画像出力装置及び画像出力システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070827 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071009 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071112 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071226 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110111 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110111 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120111 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130111 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130111 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140111 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |