JP2002063583A - デジタル画像の画素処理装置及び方法 - Google Patents

デジタル画像の画素処理装置及び方法

Info

Publication number
JP2002063583A
JP2002063583A JP2001148269A JP2001148269A JP2002063583A JP 2002063583 A JP2002063583 A JP 2002063583A JP 2001148269 A JP2001148269 A JP 2001148269A JP 2001148269 A JP2001148269 A JP 2001148269A JP 2002063583 A JP2002063583 A JP 2002063583A
Authority
JP
Japan
Prior art keywords
pixel
color
fill
pixels
command
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.)
Granted
Application number
JP2001148269A
Other languages
English (en)
Other versions
JP4646436B2 (ja
JP2002063583A5 (ja
Inventor
Kok Tjoan Lie
トゥワン リー コック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2002063583A publication Critical patent/JP2002063583A/ja
Publication of JP2002063583A5 publication Critical patent/JP2002063583A5/ja
Application granted granted Critical
Publication of JP4646436B2 publication Critical patent/JP4646436B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 グラフィックオブジェクトをラスタ画素画像
にレンダリングする方法及び装置を提供する。 【解決手段】 デジタル画像を処理する装置20は、画
像処理装置600、700、800を具備し、画像処理
装置は複数のカラー出力チャネルを具備する。装置は、
第1の色処理モード又は第2の色処理モードで動作する
ように構成する制御装置300を更に具備する。第1の
色処理モード中、画像処理装置は各々が1つ又は複数の
画素色成分を有する画素を処理し、画素色成分を対応す
るカラー出力チャネルから出力することにより、処理さ
れた画素の中から画素を一度に1つ出力する。第2の色
処理モード中、画像処理装置は各々が1つの画素色成分
を有する画素を処理し、画素色成分を対応するカラー出
力チャネルから出力することにより、処理された画素の
中から一度に1つ又は複数の画素を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデジタル画像の画素
を処理する方法及び装置に関し、特に、グレイスケール
グラフィックオブジェクトをラスタ画素画像にレンダリ
ングすることに関する。
【0002】
【背景技術】オブジェクトを利用するグラフィックスシ
ステムの多くは、ページ又は画面の画素ベース画像を保
持するためにフレームストア又はページバッファを利用
している。通常、図形オブジェクトの輪郭を計算し、埋
め込み(fill)して、フレームストアに書き込む。2次
元図形の場合、他のオブジェクトの前方に現れるオブジ
ェクトは単に背景オブジェクトの後にフレームストアに
書き込まれるだけであるので、画素ごとに背景と置き換
えられる。当該技術分野においては、これは一般に「ペ
インターのアルゴリズム」として知られている。オブジ
ェクトは最も後ろの位置にあるオブジェクトから最も前
方のオブジェクトまで優先順位に従って考慮され、通
常、各オブジェクトは走査線の順にラスタ化され、画素
は各走査線に沿って逐次ランとしてフレームストアに書
き込まれる。
【0003】この技法には本質的に2つの問題がある。
第1の問題は、フレームストアの全ての画素に対して高
速ランダムアクセスが要求されることである。これは、
考慮される新たなオブジェクトがいずれもフレームスト
ア内のいずれかの画素に影響を及ぼす可能性があるため
である。このため、フレームストアは通常は半導体ラン
ダムアクセスメモリ(RAM)に保持されている。高分
解能のカラープリンタの場合、要求されるRAMの量は
非常に多く、通常は100メガバイトを越えてしまうの
で、そのようなメモリはコストもかかり、高速で動作さ
せるのは困難である。第2の問題は、多くのペイント
(レンダリング)された画素が、後に現れるオブジェク
トにより上書きペイント(再レンダリング)されるとい
う点である。以前のオブジェクトに対する画素のペイン
トは、時間の無駄である。
【0004】フレームストアが大型になるという問題を
克服する1つの方法は、「バンディング」を使用する方
法である。バンディングを使用すれば、ある1つの時点
でメモリに存在するのはフレームストアのごく一部とい
うことになる。描き出すべき全てのオブジェクトは「表
示リスト」に保持される。画像全体は先に説明したよう
にレンダリングされるが、存在するフレームストアの一
部分の外側をペイント(レンダリング)しようとする画
素ペイント(レンダリング)動作は「クリップアウト」
される。全てのオブジェクトが描かれた後、フレームス
トアのその一部分をプリンタ(又は他の何らかの場所)
へ送信し、フレームストアの別の部分を選択して、この
プロセスを繰り返す。この技法には不都合な点がある。
例えば、描くべきオブジェクトを何度も、すなわち、バ
ンドごとに一度ずつ考慮しなければならない。バンドの
数が増えるにつれて、レンダリングを要求するオブジェ
クトの検査を繰り返す回数も増加する。従って、バンデ
ィングの技法は上書きペイント(over-painting)の不
利益の問題を解決するものではない。
【0005】他のいくつかのグラフィックシステムは画
像を走査線の順に考慮する。この場合にも、描き出すべ
き全てのオブジェクトは表示リストに保持される。走査
線ごとに、その走査線と交わるオブジェクトを優先順位
に従って考慮し、オブジェクトごとに、オブジェクトの
辺の交差点の間の画素のスパンをラインストアにセット
する。この技法もフレームストアの問題を克服するが、
上書きペイントの問題は依然として残る。
【0006】フレームストアが大型になるという問題
と、上書きペイントの問題を共に克服する技法は他にも
ある。そのような技法の1つによれば、各走査線を順次
生成する。この場合にも、描くべき全てのオブジェクト
は表示リストに保持される。走査線ごとに、その走査線
と交わるオブジェクトの辺を走査線との交差点の座標の
小さい順に保持する。それらの交差点、すなわち、辺交
差を順次考慮し、アクティブフラグのアレイをトグルす
るために使用する。走査線上で関心のあるオブジェクト
優先順位ごとに1つのアクティブフラグが存在する。考
慮される各対の辺の間で、アクティブフラグに対して優
先順位符号器を使用して、どの優先順位が最高であるか
を判定し、且つ2つの辺の間のスパンの画素に対してそ
の優先順位と関連する色を使用することにより、第1の
辺と次の辺との間に位置する画素ごとのカラーデータを
生成する。次の走査線を準備する中で、各辺の性質に従
って各辺の交差点の座標を更新する。この更新の結果と
して誤って分類されることになった隣接する辺を交換す
る。また、新たな辺を辺のリストに併合する。
【0007】この技法は、フレームストア又はラインス
トアがなく、上書きペインティングもなく、オブジェク
トの優先順位が順位N時間(Nは優先順位の数である)
ではなく、一定の順位時間で扱われるという著しく大き
な利点を有する。
【0008】このようなグラフィックシステムの出力
は、通常、クロックサイクルごとにトグルするような画
素カラーデータを搬送するためのバス(24ビット又は
32ビット幅)から構成されている。画素データバスに
付随して、画素の属性及び特性を示すいくつかの制御信
号がある。画素カラーデータは、通常、その色成分、す
なわち、赤、緑、青の成分から形成されており、不透明
度チャネル(すなわち、シアン、マゼンタ、黄色及び黒
の各チャネル)を伴う場合と、伴わない場合がある。
【0009】グレイスケールレンダリングの場合、シス
テムは、より狭いデータパス(すなわち8ビット幅)を
有するか、又は、カラーグラフィックシステムの使用可
能な4つのチャネルのうちの1つを使用する。
【0010】
【発明の概要】本発明の目的は、既存の構成の1つ又は
複数の欠点をほぼ克服すること又は少なくとも軽減する
ことである。
【0011】本発明の1つの態様によれば、デジタル画
像の画素を処理する方法であって、複数のカラー出力チ
ャネルを有する画像処理装置を第1の処理モード又は第
2の処理モードで動作するように構成する工程と、前記
画像処理装置が前記第1の処理モードで構成されている
とき、各々が1つ又は複数の画素色成分を有する1つ又
は複数のカラー画素を処理し、且つ前記1つ又は複数の
画素色成分を対応する1つ又は複数の前記カラー出力チ
ャネルから出力することにより前記カラー画素を一度に
1つ出力する工程と、前記画像処理装置が前記第2の処
理モードで構成されているとき、各々が1つの画素色成
分を有する1つ又は複数の画素を処理し、且つ前記1つ
又は複数の画素を対応する前記カラー出力チャネルから
同時に出力することにより1つ又は複数の前記画素を一
度に出力する工程とから成る方法が提供される。
【0012】本発明の別の態様によれば、デジタル画像
の画素を処理する装置であって、複数のカラー出力チャ
ネルを具備し、デジタル画像の画素を処理する画像処理
装置と、前記画像処理装置を第1の処理モード又は第2
の処理モードで動作するように構成する制御装置とを具
備し、前記画像処理装置は、前記第1の処理モードで構
成されているとき、各々が1つ又は複数の画素色成分を
有する1つ又は複数のカラー画素を処理し、且つ前記1
つ又は複数の画素色成分を対応する1つ又は複数の前記
カラー出力チャネルから出力することにより前記カラー
画素を一度に1つ出力し、且つ前記画像処理装置は、前
記第2の処理モードで構成されているとき、各々が1つ
の画素色成分を有する1つ又は複数の画素を処理し、且
つ前記1つ又は複数の画素を対応する前記カラー出力チ
ャネルから同時に出力することにより1つ又は複数の前
記画素を一度に出力する装置が提供される。
【0013】本発明の別の態様によれば、デジタル画像
の画素を処理する方法であって、複数のカラー出力チャ
ネルを有する画像処理装置を第1の動作モード又は第2
の動作モードで動作するように構成する工程と、前記第
1の動作モード中、1つ又は複数の画素色成分を有する
1つ又は複数のカラー画素を生成する工程と、前記第1
の動作モード中、生成された各画素の前記1つ又は複数
の画素色成分を対応する前記カラー出力チャネルから出
力することにより、前記生成されたカラー画素を一度に
1つ出力する工程と、前記第2の動作モード中、塗りつ
ぶし指令が適用されるラスタ順の連続する画素位置の数
であって、1から前記カラー出力チャネルの数に等しい
最大数まで変化できる数を指示するパラメータをそれぞ
れ含む1つ又は複数の塗りつぶし指令を生成する工程
と、前記第2の動作モード中、1つ又は複数の前記画素
位置に対して1つ又は複数の前記塗りつぶし指令に応答
して、塗りつぶし指令の数及び前記塗りつぶし指令のパ
ラメータに従って決まる数の1つ又は複数の、各々が1
つの画素色成分を有する画素を生成する工程と、前記第
2の動作モード中、1つ又は複数の前記画素を1つ又は
複数の前記カラー出力チャネルから同時に出力すること
により、1つ又は複数の前記画素を一度に出力する工程
とから成る方法が提供される。
【0014】本発明の別の態様によれば、デジタル画像
の画素を処理する装置であって、複数のカラー出力チャ
ネルを有する画像処理装置を第1の動作モード又は第2
の動作モードで動作するように構成するホストプロセッ
サを具備し、前記画像処理装置は、前記第1の動作モー
ド中、1つ又は複数の画素色成分を有する1つ又は複数
のカラー画素を生成し、且つ生成された各画素の前記1
つ又は複数の画素色成分を対応する前記カラー出力チャ
ネルから出力することにより、前記生成されたカラー画
素を一度に1つ出力する塗りつぶしモジュールと、前記
第2の動作モード中、塗りつぶし指令が適用されるラス
タ順の連続する画素位置の数であって、1から前記カラ
ー出力チャネルの数に等しい最大数まで変化できる数を
指示するパラメータをそれぞれ含む1つ又は複数の塗り
つぶし指令を生成するモジュールとを具備し、前記塗り
つぶしモジュールは、前記第2の動作モード中、1つ又
は複数の前記画素位置に対して1つ又は複数の前記塗り
つぶし指令に応答して、塗りつぶし指令の数及び前記塗
りつぶし指令のパラメータに従って決まる数の1つ又は
複数の、各々が1つの画素色成分を有する画素を生成
し、且つ1つ又は複数の前記画素を1つ又は複数の前記
カラー出力チャネルから同時に出力する装置が提供され
る。
【0015】本発明の別の態様によれば、デジタル画像
の画素を処理する方法であって、複数のカラー出力チャ
ネルを有する画像処理装置を第1の動作モード又は第2
の動作モードで動作するように構成する工程と、前記第
1の動作モード中、1つ又は複数の塗りつぶし指令を生
成する工程と、前記第1の動作モード中、1つの画素位
置に対して1つ又は複数の対応する前記塗りつぶし指令
に応答して、各々が1つ又は複数の画素色成分を有する
1つ又は複数のカラー画素を生成する工程と、前記第1
の動作モード中、生成された各画素の前記1つ又は複数
の画素色成分を対応する前記カラー出力チャネルから出
力することにより、前記生成された画素を一度に1つ出
力する工程と、前記第2の動作モード中、塗りつぶし指
令が適用されるラスタ順の連続する画素位置の数であっ
て、1から前記カラー出力チャネルの数に等しい最大数
まで変化できる数を指示するパラメータをそれぞれ含む
1つ又は複数の塗りつぶし指令を生成する工程と、前記
第2の動作モード中、1つ又は複数の前記画素位置に対
して1つ又は複数の前記塗りつぶし指令に応答して、塗
りつぶし指令の数及び前記塗りつぶし指令のパラメータ
に従って決まる数の、各々が1つの画素色成分を有する
1つ又は複数の画素を生成する工程と、前記第2の動作
モード中、1つ又は複数の前記画素を対応する1つ又は
複数の前記カラー出力チャネルから同時に出力する工程
とから成る方法が提供される。
【0016】本発明の別の態様によれば、デジタル画像
の画素を処理する装置であって、画像処理装置を第1の
動作モード又は第2の動作モードで動作するように構成
するホストプロセッサを具備し、前記画像処理装置は、
前記第1の動作モード中、対応する画素位置に対して1
つ又は複数の塗りつぶし指令を生成する優先順位モジュ
ールと、前記第1の動作モード中、前記画素位置に対し
て1つ又は複数の対応する前記塗りつぶし指令に応答し
て、1つ又は複数のカラー画素を生成し、且つ生成され
た各画素の1つ又は複数の画素色成分を対応する前記カ
ラー出力チャネルから出力することにより、前記生成さ
れた画素を一度に1つ出力する塗りつぶしモジュールと
を具備し、前記優先順位モジュールは、前記第2の動作
モード中、塗りつぶし指令が適用されるラスタ順の連続
する画素位置の数であって、1から前記カラー出力チャ
ネルの数に等しい最大数まで変化できる数を指示するパ
ラメータをそれぞれ含む1つ又は複数の塗りつぶし指令
を生成し、且つ前記塗りつぶしモジュールは、前記第2
の動作モード中、1つ又は複数の前記画素位置に対して
1つ又は複数の前記塗りつぶし指令に応答して、塗りつ
ぶし指令の数及び前記塗りつぶし指令のパラメータに従
って決まる数の1つ又は複数の画素を生成し、且つ1つ
又は複数の前記生成された画素を対応する1つ又は複数
の前記カラー出力チャネルから同時に出力する装置が提
供される。
【0017】本発明の別の態様によれば、デジタル画像
の画素を生成するための指令を生成する方法であって、
前記第1の動作モード中、1つの画素位置に対して1つ
又は複数の塗りつぶし指令を生成する工程と、前記第2
の動作モード中、塗りつぶし指令が適用されるラスタ順
の連続する画素位置の数であって、1から前記カラー出
力チャネルの数に等しい最大数まで変化できる数を指示
するパラメータをそれぞれ含む1つ又は複数の塗りつぶ
し指令を生成する工程とから成る方法が提供される。
【0018】本発明の別の態様によれば、デジタル画像
の画素を生成するための指令を生成する装置であって、
前記第1の動作モード中、1つの画素位置に対して1つ
又は複数の塗りつぶし指令を生成し、且つ前記第2の動
作モード中、塗りつぶし指令が適用されるラスタ順の連
続する画素位置の数であって、1から前記カラー出力チ
ャネルの数に等しい最大数まで変化できる数を指示する
パラメータをそれぞれ含む1つ又は複数の塗りつぶし指
令を生成する発生器を具備する装置が提供される。
【0019】本発明の別の態様によれば、デジタル画像
の画素を生成するための指令を生成するためのコンピュ
ータプログラムを具備するコンピュータ読み取り可能な
媒体であって、前記コンピュータプログラムは、前記第
1の動作モード中、1つの画素位置に対して1つ又は複
数の塗りつぶし指令を生成し、且つ前記第2の動作モー
ド中、塗りつぶし指令が適用されるラスタ順の連続する
画素位置の数であって、1から前記カラー出力チャネル
の数に等しい最大数まで変化できる数を指示するパラメ
ータをそれぞれ含む1つ又は複数の塗りつぶし指令を生
成するためのコードを具備するコンピュータ読み取り可
能な媒体が提供される。
【0020】
【実施形態】次に、添付の図面を参照して本発明のいく
つかの好ましい実施形態を説明する。
【0021】添付の図面のいずれか1つ又は2つ以上に
おいてステップ及び/又は特徴を参照する場合、本明細
書においては、特に指示のない限り、便宜上、同じ図中
符号を付されているステップ及び/又は特徴は同じ機能
又は動作を有するものとする。
【0022】そこで図1を参照すると、コンピュータグ
ラフィックオブジェクト画像をレンダリングし、提示す
るように構成されたコンピュータシステム1が概略的に
示されている。システムは、不揮発性のハードディスク
ドライブ又はそれに類する装置5と、揮発性の半導体R
AM4とを含むシステムランダムアクセスメモリ(RA
M)3と関連するホストプロセッサ2を含む。システム
1は、通常は半導体ROM7を基礎とし、多くの場合に
コンパクトディスク装置(CD ROM)8により補足
されているシステム読み取り専用メモリ(ROM)6を
更に含む。更に、システム1は、共にラスタ方式で動作
するビデオ表示装置(VDU)又はプリンタなどの何ら
かの画像表示手段10を含んでいても良い。
【0023】以上説明したシステム1の構成要素はバス
システム9を介して相互に接続し、IBM PC/AT
型パーソナルコンピュータやそこから派生した構成、Su
n Sparc stationsなどの当該技術では良く知られている
コンピュータシステムの通常動作モードで動作可能であ
る。
【0024】更に、図1に示すように、画素逐次レンダ
リング装置20がバス9に接続しており、本好適な実施
形態では、この装置20はバス9を介してシステム1か
ら供給される命令及びデータを与えられた図形オブジェ
クトベースの記述から取り出される画素ベース画像を逐
次レンダリングするように構成されている。装置20は
オブジェクト記述をレンダリングするためにシステムR
AM3を利用しても良いが、レンダリング装置20に関
連して、通常は半導体RAMから構成される専用レンダ
リングストア構成30を設けるのが好ましいであろう。
【0025】好適な実施形態の機能データ流れ図を図2
に示す。この機能流れは、オブジェクトグラフィック記
述11から開始する。このオブジェクトグラフィック記
述は、ホストプロセッサ2により生成されるのに適切で
あるように図形オブジェクトのそれらのパラメータを記
述するために使用され、且つ/又は、システムRAM3
に適宜格納されるか、又はシステムROM6から適宜取
り出され、且つそこから画素ベース画像をレンダリング
するために画素逐次レンダリング装置20により解釈さ
れても良い。例えば、オブジェクト図形記述11は、表
示装置上の1点から別の点につながる直線の辺(単純な
ベクトル)を含むいくつかのフォーマット、又は2次元
オブジェクトが直交する線を含む複数の辺により定義さ
れるような直交辺フォーマットによる辺を伴うオブジェ
クトを含んでいても良い。三次スプラインなどの別のデ
ータフォーマットを使用しても良い。オブジェクトは多
数の異なる種類の辺が混合しているものとして考えられ
る。通常、全てのフォーマットに共通して、各々の線
(直線又は曲線のいずれでも)の始まりと終わりを示す
識別子が存在し、それらは、通常、走査線番号により識
別されるので、曲線をレンダリングしうる特定の出力ス
ペースを定義することになる。
【0026】好適な実施形態の動作を図7に示す単純な
画像78のレンダリングの例を参照しながら部分的に説
明する。画像78は2つの図形オブジェクトを含むこと
がわかる。特に、一部透明な青色の三角形80が不透明
な赤色の四角形90の上に重ねてレンダリングされ、そ
のために、四角形90は一部を暗くした状態になってい
る。図示されているように、四角形90は、様々な画素
位置(X)及び走査線位置(Y)により定義される辺9
2、94、96及び98を含む。辺96及び98は走査
線の上に形成されている(従って、走査線と平行であ
る)ので、四角形90の実際のオブジェクト記述は、図
8Aに示すように、辺92及び94にのみ基づくことが
できる。これに関連して、辺92は画素位置(40、3
5)から始まり、画面に沿ってラスタ方向に下方へ伸
び、画素位置(40、105)で終わっている。同様
に、辺94は画素位置(160、35)から画素位置
(160、105)まで伸びている。四角形の図形オブ
ジェクト90の水平部分は、単に辺92から辺94へラ
スタ化方式で走査することにより得られるであろう。
【0027】しかし、青色の三角形のオブジェクト80
は3つのオブジェクト辺82、84及び86により定義
されており、それらの辺はそれぞれ三角形の頂点を定義
するベクトルとしてみなされる。辺82及び84は画素
位置(100、20)で始まり、それぞれ画素位置(1
70、90)及び(30、90)まで伸びている。辺8
6はそれら2つの画素位置の間で従来通りの左から右へ
のラスタ化方向に伸びている。この特定の例において
は、辺86は先に述べた辺96及び98と同様に水平で
あるので、辺86は辺82及び84の関連する終点によ
り特徴づけられるため(図8Bを参照)、辺86を定義
することは不可欠ではない。辺82及び84を記述する
ために使用される始めと終わりの画素位置に加えて、こ
れらの辺は、それぞれ、関連する傾き値、この場合に
は、+1と−1を有する。
【0028】図9は、走査線35から始まって四角形9
0がレンダリングされる方法と、辺82及び84が走査
線35と交差する様子を示している。図9から明らかな
ように、画像78をラスタ化するためには、より高い優
先順位レベルを有するオブジェクトが低い優先順位レベ
ルのオブジェクトの「上に」レンダリングされるよう
に、2つのオブジェクト90及び80の分析(resoluti
on)が必要である。このことは、画像78をレンダリン
グするために使用される辺リストレコードを表す図10
からわかる。図10のレコードは2つのエントリ、すな
わち、オブジェクトごとに1つのエントリを含み、それ
らのエントリは対応するオブジェクトの開始点に対応す
る走査線値に、ラスタレンダリングの順に配列されてい
る。図10に示すように、各々の辺レコードは、関連す
るオブジェクトの優先順位レベルと、記述すべき辺の性
質に関するその他の詳細(例えば、色、傾きなど)とを
有する。
【0029】表示リストの生成12は、付属のROM6
及びRAM3を利用してホストプロセッサ2で実行され
るソフトウェアモジュールとして実現されるのが好まし
い。表示リストの生成12は、周知の図形記述言語のい
ずれか1つ又は2つ以上、図形ライブラリ呼び出し又は
他の何らかのアプリケーション特定フォーマットで表現
されるオブジェクト図形記述を表示リストに変換する。
表示リストは、通常、一般にはRAM4の中に形成され
ている表示リストストア13に書き込まれるが、表示リ
ストストアはレンダリングストア30の中に形成されて
も良い。図3に示すように、表示リストストア13はい
くつかの構成要素を含むことができ、その1つは命令ス
トリーム14であり、もう1つは辺情報15であり、ラ
スタ画像画素データ16を適宜含んでいても良い。
【0030】命令ストリーム14は、いずれかの特定の
画像において望まれる特定の図形オブジェクトをレンダ
リングするために画素逐次レンダリング装置20により
読み取られるべき命令として解釈可能なコードを含む。
図7に示す画像の例の場合、命令ストリーム14は、 (1)走査線20で(何も)レンダリングしない; (2)走査線20で2本の青色の辺82及び84を追加
する; (3)走査線35にレンダリングする (4)走査線35で2本の赤色の辺92及び94を追加
する; (5)完成までレンダリングする という形態をとると考えられるであろう。
【0031】同様に、図7の例の場合の辺情報15は、
辺84は画素位置100で始まり、−1の傾きで70本
の走査線と交わりつつ進む;辺82は画素位置100で
始まり、1の傾きで70本の走査線と交わりつつ進む;
辺92は画素位置40で始まり、0の傾きで70本の走
査線と交わりつつ進む;辺94は画素位置160で始ま
り、0の傾きで70本の走査線と交わりつつ進むという
情報を含むと考えられる。
【0032】図7はラスタ画像画素データを含んでいな
いので、表示リスト13のストア部分16に格納すべき
物はない。
【0033】表示リストストア13は画素逐次レンダリ
ング装置20により読み取られる。画素逐次レンダリン
グ装置20は集積回路として実現されるのが普通である
が、ホストプロセッサ2などの汎用処理装置で実行され
る等価のソフトウェアモジュールとして実現されても良
い。画素逐次レンダリング装置20は表示リストをラス
タ画素のストリームに変換し、それらのラスタ画素のス
トリームは、例えば、プリンタ、表示装置又はメモリス
トアなどの別の装置へ供給可能である。
【0034】図3は、画素逐次レンダリング装置20、
表示リストストア13及び一時レンダリングストア30
の構成を示している。画素逐次レンダリング装置20の
処理段22は命令実行部300と、辺処理モジュール4
00と、優先順位判定モジュール500と、塗りつぶし
(fill)色判定モジュール600と、画素合成モジュー
ル700と、画素出力モジュール800とを含む。処理
段で使用される一時ストア30は、先に述べた通り、表
示リストストア13と同じ装置(例えば、磁気ディスク
又は半導体RAM)と共用されても良いし、あるいは処
理速度を最適化するという目的のために個別のストアと
して実現されても良い。辺処理モジュール400は、走
査線から走査線へと送り出される辺情報を保持するため
に辺レコードストア32を使用する。優先順位判定モジ
ュール500は、各々の優先順に関する情報と、走査線
がレンダリングされている間の辺の交差に関する各優先
順位の現在状態とを保持するために、優先順位特性・状
態テーブル34を使用する。塗りつぶし色判定モジュー
ル600は、特定の位置における特定の優先順位の塗り
つぶし色を判定するために要求される情報を保持するた
めに、塗りつぶしデータテーブル36を使用する。画素
合成モジュール700は、1つの出力画素の値を判定す
るために複数の優先順位からの色を要求するその画素の
判定中に中間結果を保持するために、画素合成スタック
38を使用する。
【0035】図3の実施形態に示される処理ステップは
処理パイプライン22の形態をとる。この場合、パイプ
ラインの各モジュールは画像データの異なる部分に対し
て同時に並列して実行され、それらのモジュールの間で
以下で説明するようにメッセージが交換される。
【0036】命令実行部300は命令ストリーム14か
ら命令を読み取って、それを処理し、それらの命令をメ
ッセージにフォーマット化する。メッセージは出力線3
98を介してパイプライン22中の他のモジュール40
0、500、600及び700へ転送される。本好適な
実施形態では、命令ストリーム14は次のような命令を
含むであろう。
【0037】命令実行部300は、通常、命令をマッピ
ングし且つそれらを様々なモジュールに供給するために
パイプライン動作に復号するマイクロコード状態機械に
より形成される。あるいは、それに対応するソフトウェ
アプロセスを利用しても良い。
【0038】次に、図4を参照して走査線レンダリング
動作中の辺処理モジュール400の動作を説明する。走
査線のレンダリングに要する初期条件は3つの辺レコー
ドのリストを利用できることである。それらのリストの
いずれか又は全てが空であっても良い。それらのリスト
は、辺情報15から得られ、命令によりセットされる新
たな辺を含む新規辺リスと402と、先の走査線から送
り出された辺レコードを含む主辺リスと404と、同様
に先の走査線から送り出された辺レコードを含むこぼれ
辺リスト406である。各辺レコードは次に示すパラメ
ータのうち1つ又は2つ以上を含んでいれば良い。 ・ 現在走査線交差座標(ここではX座標という)、 ・ この辺の現在セグメントが持続しうる走査線の本数
(実施形態によってはY限界としても表される)を表す
カウント(ここではNYという)、 ・ 走査線を1本すぎるごとにこの辺レコードのX座標
に加算すべき値(ここではDXという)、 ・ 走査線を1本すぎるごとにこの辺レコードのDX
に加算すべき値(ここではDDXという)、 ・ 1つ又は複数の優先順位番号(P), ・ 通常のラスタ(上下)方式で、辺が走査線と左から
右へ交差するか又は右から左へ交差するかを指示する方
向(DIR)フラグ、及び ・ リスト中の次の辺セグメントのアドレス(ADD) 3つのリスト402、404及び406の各々のレコー
ドは走査線交差(X)座標の順に配列されている。これ
は、通常、分類プロセスにより得られ、当初は、辺情報
を含めて命令実行部300からのメッセージを受信する
辺入力モジュール408により管理される。辺入力モジ
ュール408はメッセージを出力線498を介してパイ
プライン22を下ってモジュール500、600及び7
00へ適宜中継する。
【0039】辺入力モジュール408は3つのリスト4
02、404及び406の各々への参照を維持すると共
に、各リストからの辺データを受信する。その後、辺入
力モジュール408は、選択されるレコードが3つの参
照されたレコードの中の最小X座標を持つレコードであ
るように、3つの参照された辺レコードのうち1つから
の1つの辺レコードを選択する。その選択された辺は1
つのメッセージにフォーマット化され、辺更新モジュー
ル410に送られる。また、辺のいくつかのフィール
ド、特に、現在X、優先順位番号、方向フラグなどを1
つのメッセージにフォーマット化し、そのメッセージは
辺処理モジュール400の出力498としてFIFO5
18を介して優先順位判定モジュール500へ送信され
る。
【0040】辺を受信すると、辺更新モジュール410
はNYカウントを減分し、1つ又は2つ以上の関連する
辺パラメータを更新する。NYカウントが0に達したな
らば、次のセグメントアドレスにより指示されるアドレ
スから新たなセグメントを読み取り、辺の次の走査線に
ついてX座標を計算する。辺レコードの修正が終了する
と、辺更新モジュール410は、辺プール412に新た
な辺が追加されたことを信号線416を介して辺出力モ
ジュール414に報知する。そこで、辺レコードが辺レ
コードストア32に戻されて、格納される前に、辺レコ
ードは辺出力モジュール414により分類される。
【0041】FIFO518は辺処理モジュール400
と優先順位判定モジュール500の動作を切り離す。先
に述べたテーブル34の一部を構成する優先順位状態テ
ーブル502は、各オブジェクトの優先順位に関する情
報を保持するために使用される。FIFO518の大き
さは、1回のアクションで走査線1本分の辺交差の辺処
理モジュール400からの受信及び優先順位状態テーブ
ル502への転送をイネーブルするように定められてい
る。これにより、優先順位判定モジュール500は同じ
画素(X)位置で複数の辺交差を正確に処理することが
できる。優先順位状態テーブル502及び優先順位デー
タテーブル(例えば、レベルアクティべーションテーブ
ル530)は、同じ画素X位置で交差メッセージを受信
するたびに更新される。優先順位状態テーブル502の
各レコードは次のような塗りつぶしパラメータを記録し
ている。 ・ この優先順位が奇数/偶数塗りつぶし規則又は非ゼ
ロワインディング塗りつぶし規則の適用によりその内側
対外側状態を判定されるべきであるか否かを指示する塗
りつぶし規則フラグ; ・ この優先順位に影響を及ぼす辺との交差が起こるた
びに塗りつぶし規則により指示されるように修正される
塗りつぶしカウント; ・ この優先順位をクリッピング又は塗りつぶしのため
に使用すべきか否か及びクリップの種類(クリップイン
又はクリップアウト)を指示するクリッパフラグ及びク
リップ形フラグ; ・ この優先順位がそれより下のレベルを最初に計算す
ることを要求するか否かを指示する「ニードビロー」フ
ラグと呼ばれるフラグ。
【0042】図11A及び図11Bは、奇数/偶数規則
及び非ゼロワインディング規則の適用を示している。非
ゼロワインディング規則に関して、図11Aは、オブジ
ェクト70の辺71及び72が下向きであるか、又は上
向きであるかに従って、それらの辺に概念上の方向がど
のように割り当てられるかを示す。閉じた境界を形成す
るために、辺は境界に沿って数珠つなぎのようにリンク
される。塗りつぶし規則(後述する)の場合に辺に与え
られる方向は、セグメントが定義された順序とは無関係
である。辺セグメントは、レンダリング方向に対応し
て、追跡される順に定義される。
【0043】図11Bは、2つの下向きの辺73及び7
6と、3つの上向きの辺74、75及び77とを有する
1つのオブジェクト(星形)を示す。奇数/偶数規則
は、単に、各辺が問題の走査線と交差するたびにブール
値(Boolean value)をトグルし、それにより有効にオ
ブジェクトの色をターンオン又はターンオフするだけで
動作する。非ゼロワインディング規則は、交差中の辺の
方向に応じて塗りつぶしカウント値を増減する。図11
Bでは、走査線が初めに出会う2つの辺73及び76は
下向きの辺であるので、それらの辺と交わることによ
り、塗りつぶしカウントはそれぞれ+1と、+2に増分
される。次に走査線が出会う2つの辺74及び77は上
向きの辺であるので、塗りつぶしカウントはそれぞれ+
1と0に減分される。
【0044】実施形態によっては、この情報の一部が表
示リスト13及び先に説明した様々な辺リストの中の辺
と関連しており、辺交差メッセージの一部として優先順
位判定モジュール500へ送信される場合がある。特
に、塗りつぶし規則フラグ、クリッパフラグ、クリップ
形フラグ、ニードビローフラグ及びその他の情報はこの
ようにして処理されれば良い。
【0045】図5を参照すると、優先順位更新モジュー
ル506は、処理を完了するまでの走査線交差座標を記
録するカウンタ524を維持する。これを優先順位更新
モジュール506の現在X(current X)という。走査
線の始まりにおける初期値は0である。
【0046】FIFO518のヘッドで受信した辺交差
メッセージを検査して、優先順位更新モジュール506
は辺交差メッセージ中のX交差値を現在Xと比較する。
辺交差メッセージ中のX交差値が優先順位更新モジュー
ル506の現在Xと等しければ、優先順位更新モジュー
ルは辺交差メッセージを処理し、現在Xより大きけれ
ば、優先順位更新モジュールは辺交差メッセージにおけ
るX交差値と現在Xとの差の画素ごとに塗りつぶし指令
(commands)を生成する。
【0047】ある画素が優先順位に関わる塗りつぶし規
則に従って優先順位に適用される境界辺の内側にあり、
且つ優先順位のクリップカウントが0である場合、その
画素において優先順位はアクティブである。優先順位が
最上のアクティブな優先順位である場合、又はその優先
順位を越える全てのアクティブな優先順位の対応するニ
ードビローフラグがセットされている場合、優先順位は
露出される。このように、画素値は露出された優先順位
の塗りつぶしデータのみを使用して生成される。
【0048】優先順位のニードビローフラグ(need-bel
ow flag)は表示リストの情報で確定され、フラグがセ
ットされない限り、問題の優先順位より下のアクティブ
な優先順位がいずれもレンダリングすべき画素値に寄与
しないことを画素生成システムに報知するために使用さ
れる。最終的な画素値に全く関与しないと考えられる余
分な合成動作を防止するために、フラグは適宜クリアさ
れる。
【0049】辺交差メッセージ中の優先順位ごとに、そ
の優先順位により指示される優先順位状態テーブルレコ
ードのフィールドを参照して、プロセスは、(i)現在
優先順位の現在塗りつぶしカウントを記録する工程と、
(ii)(a)現在優先順位の塗りつぶし規則が奇数/偶
数である場合、塗りつぶしカウントがその時点で0でな
ければ塗りつぶしカウントを0に設定し、そうでなけれ
ば0でないいずれかの値に設定するか、(b)現在優先
順位の塗りつぶし規則が非ゼロワインディングである場
合、塗りつぶしカウントを(辺方向フラグに応じて)増
減する工程と、(iii)新たな塗りつぶしカウントを記
録した塗りつぶしカウントと比較し、一方が0であり、
他方が0でない場合に、現在優先順位に対して「アクテ
ィブフラグ更新」(後述する)動作を実行する工程とを
含む。
【0050】実施形態によっては、各辺交差メッセージ
に複数の優先順位を導入するのではなく、優先順位ごと
に別個の辺交差メッセージを使用しても良い。
【0051】アクティブフラグ更新動作は、まず、現在
優先順位について新たなアクティブフラグを確定するこ
とを含む。優先順位状態テーブル502中の優先順位の
塗りつぶしカウントが0ではなく且つ優先順位のクリッ
プカウントが0である場合、アクティブフラグは0では
なく、そうでない場合にはアクティブフラグは0であ
る。アクティブフラグ更新動作の第2のステップでは、
判定されたアクティブフラグをアクティブフラグアレイ
508の、現在優先順位により指示される位置に格納
し、更に、現在優先順位に関わる優先順位状態テーブル
のニードビローフラグがゼロであれば、アクティブフラ
グを不透明アクティブフラグアレイ510の、現在優先
順位により指示される位置に格納する。
【0052】辺交差メッセージ中のX交差値が優先順位
更新モジュール506の現在Xより大きいとき、優先順
位更新モジュール506は、辺交差メッセージのX交差
値と現在Xとの差である、生成すべき画素の数を示すカ
ウントを形成する。このカウントは優先順位生成メッセ
ージとしてフォーマット化され、接続線520を介して
優先順位生成モジュール516へ送信される。そこで、
優先順位更新モジュール506は、所定の数の画素につ
いての処理が完了したことを示す、優先順位生成モジュ
ール516からの信号522を待つ。信号522を受信
すると、優先順位更新モジュール506はその現在Xを
辺交差メッセージ中のX交差値に設定し、先に説明した
ように処理を続ける。
【0053】優先順位生成モジュール516は、同様に
テーブル34内に形成され、各優先順位に関する情報を
保持するために使用される優先順位データテーブル50
4を参照して動作する。優先順位データテーブル504
の各レコードは、塗りつぶしテーブルアドレス及び型、
合成演算コード及びフラグ、この優先順位の色が所定の
Yに対して一定であるか否かを記録する、「X独立(x-
independent)」フラグと呼ばれるフラグを含む。
【0054】優先順位生成メッセージ520を受信する
と、優先順位生成モジュール516は、供給されたカウ
ントにより指示される回数にわたり「画素優先順位生成
動作」(後述する)を実行し、その後、その動作を完了
したことを信号522により優先順位更新モジュール5
06に報知する。
【0055】各画素優先順位生成動作は、第一に、不透
明アクティブフラグアレイ510に対して優先順位符号
器514(例えば、4096では、12ビット優先順位
符号器)を使用して、最高の不透明アクティブフラグの
優先順位番号を判定する。この優先順位(もし、存在す
れば)は、優先順位データテーブル504を索引付けす
るために使用され、そのようにして参照されたレコード
のコンテンツは優先順位生成モジュール516からの塗
りつぶし優先順位メッセージ出力598として作成さ
れ、塗りつぶし色判定モジュール600へ送信される。
更に、先のステップにより優先順位が判定されていた
(すなわち、少なくとも1つの不透明アクティブフラグ
がセットされていた)場合、判定された優先順位を保持
するが、これを「現在優先順位」という。優先順位が判
定されていなかったならば、現在優先順位は0に設定さ
れる。そこで、優先順位生成モジュール516はアクテ
ィブフラグアレイ508に対して修正優先順位符号器5
12を繰り返し使用して、現在優先順位より大きい最低
のアクティブフラグを判定する。そのようにして判定さ
れた優先順位(もし、存在すれば)は、優先順位データ
テーブル504を索引付けするために使用され、そのよ
うにして参照されたレコードのコンテンツは塗りつぶし
優先順位メッセージとして作成され、塗りつぶし色判定
モジュール500へ送信され(598)、その後、判定
された優先順位は現在優先順位を更新するために使用さ
れる。判定される優先順位がなくなるまで(すなわち、
アクティブフラグの中でフラグ付けされた、現在優先順
位より大きい優先順位が存在しなくなるまで)、このス
テップは繰り返し使用される。
【0056】以上説明した基本動作の好ましい特徴とし
て、優先順位生成モジュール516は、シーケンスの第
1の画素を処理している間に塗りつぶし色判定モジュー
ル600へ送り出す各メッセージのX独立フラグの値を
記録する。送り出される全てのメッセージのX独立フラ
グが指定されたものであれば、隣接する辺交差の間の画
素のスパンにある全ての後続メッセージをカウント−1
の単一の反復仕様と置き換えることができる。これは、
反復メッセージを生成し、それをこのシーケンスにおけ
る他の全ての処理に代えて塗りつぶし色判定モジュール
600へ送信することにより実行される。
【0057】上述の基本動作の別の好ましい特徴とし
て、優先順位生成モジュール516は、各レベル生成メ
ッセージの後に、最高の不透明優先順位を接続線522
を介して優先順位更新モジュール506へ送信する。優
先順位更新モジュール506はこれをストア526に保
持する。そこで、優先順位判定モジュール506は、画
素優先順位生成メッセージを生成する前に、メッセージ
中のX交差点が現在Xより大きいこと及びメッセージ中
のレベルの少なくとも1つが最高の不透明優先順位以上
であることの試験を実行する。これを実行することによ
って、より少ない回数の画素優先順位判定動作を実行す
るだけで済み、より長い反復シーケンスを生成できる。
【0058】図12Aから図12Eは、好適な実施形態
における、アレイ508、510及び符号器512、5
14と共にレベルアクティべーションテーブル530と
呼ばれる1つのテーブルに併合されている優先順位テー
ブル502及び504の動作を示している。図12Aに
示すように、辺交差メッセージは辺処理モジュール40
0から1本の走査線について順次受信され、優先順位の
順に配列されるテーブル530にロードされる。この例
では、辺交差メッセージは辺横断の非ゼロワインディン
グ規則に従って増分方向を含む。優先順位テーブル53
0のエントリをいずれもセットしないことは可能であ
る。
【0059】530で示すようなレベルアクティべーシ
ョンテーブルは塗りつぶしカウントに対応する列エント
リを含む。これらは非ゼロワインディング規則又は(適
切であれば)奇数/偶数規則に従って辺から判定され
る。ニードビローフラグは優先順位の特性であり、レン
ダリング動作に先立って部分レベル特性としてセットさ
れる。ニードビローフラグは、テーブル530がロード
されるときに全ての優先順位レベルに対してセットされ
る。「クリップカウント」及び「塗りつぶし索引テーブ
ル」などの他の列を使用しても良いが、この例において
は、説明を簡単にするため、それらの列は省略されてい
る。レベルがいずれもアクティブではない場合、対応す
るエントリは0に設定される。更に、アレイ510及び
508の値は後続する辺交差を受信した後にテーブル5
30から更新される。
【0060】図12Aから明らかであるように、ここで
は、明瞭を期するためにいくつかのレコードを便宜上省
略してある。通常、レベルアクティべーションテーブル
530は、優先順位の順に配列された次のレコードを含
むであろう。
【0061】塗りつぶしカウント クリップカウント 塗りつぶし型 アクティベーション条件及びフラグ(次のものを含む) ニードビローフラグ クリップ型 クリッパフラグ 図形合成動作及びフラグ(次のものを含む) ラスタ演算コード アルファチャネル演算コード 「発信元ポップ」フラグ 「宛先ポップ」フラグ X独立フラグ 塗りつぶし規則 属性、及び 塗りつぶしテーブル索引 テーブル530のコンテンツは、優先順位判定モジュー
ル500で使用されない場合、画素生成のためにメッセ
ージとして塗りつぶし色判定モジュール600へ送信さ
れると共に、合成動作のために画素合成モジュール70
0へ送信される。テーブル530のコンテンツは辺交差
メッセージから得られるのが好ましい。あるいは、レベ
ルアクティべーションテーブル530の静的コンテンツ
を辺交差メッセージの受信前に事前にロードしておいて
も良い。
【0062】図12Aには、走査線35(図9)の第1
の辺交差が示されている。この場合、P=1(優先順位
レベル1)のとき、塗りつぶしカウントは非ゼロワイン
ディング規則に従って辺の値に更新される。その下にオ
ブジェクトは存在しないので、「ニードビロー」は0の
レベルに設定される。
【0063】テーブル530の先行状態は設定されてい
なかったため、アレイ510及び508はセットされな
いままであり、優先順位符号器514は優先順位を出力
できない。このことは優先順位生成モジュール516に
より解釈され、優先順位生成モジュール516は、走査
線35の初めのブランクの部分である「オブジェクトな
し」優先順位(例えば、P=0)に対してカウントn=
40(画素)を出力する。
【0064】図12Bは、走査線(図9)の第2の辺交
差が受信されるときの配列を示す。塗りつぶしカウント
が更新される。そこで、アレイ510及び508はテー
ブル530からの先行最高レベルによって設定される。
この時点で、モジュール516はカウントn=45を出
力し、P=1は半透明の三角形80との交差前の不透明
の赤色オブジェクト90の辺96を表現している。
【0065】図12Cは、図9の走査線35の第3の辺
交差が受信されるときの配列を示す。尚、非ゼロワイン
ディング規則であるために塗りつぶしカウントは下方へ
調整されている。現在辺交差を受信する前に有効であっ
たオブジェクトは不透明ではないので、修正優先順位符
号器512を使用して、最高アクティブレベルとして優
先順位P=2を選択し、これは現在値としてn=(11
5−85)=30について出力される。
【0066】図12Dは、図9の走査線35の最終辺交
差が受信されるときの配列を示す。尚、先に変更された
P=2の「ニードビロー」はアクティブアレイ508へ
既に転送されているため、優先順位符号器はn=(16
0−115)=45画素について現在の値P=1を出力
できる。
【0067】図12Eは、辺交差をそれ以上利用できな
いときの結果を示し、n=(180−160)=20画
素についてP=0の出力を提供している。
【0068】このように、優先順位モジュール500は
1本の走査線の全ての画素について画素のカウントと、
対応する優先順位表示値とを出力する。
【0069】次に、図6を参照して塗りつぶし色判定モ
ジュール600の動作を説明する。優先順位判定モジュ
ール500から入力される、塗りつぶしデータセットメ
ッセージ、反復メッセージ、塗りつぶし優先順位メッセ
ージ、画素終わりメッセージ及び走査線終わりメッセー
ジを含むメッセージ598は、まず、塗りつぶしルック
アップ制御モジュール604へ送信される。塗りつぶし
ルックアップ制御モジュール604は、塗りつぶし色判
定モジュール600の様々な構成要素により使用される
べき現在X位置カウンタ614及び現在Y位置カウンタ
616を維持している。
【0070】走査線終わりメッセージを受信すると、塗
りつぶしルックアップ制御モジュール604は現在Xカ
ウンタ614を0にリセットし、現在Yカウンタ616
を増分する。その後、走査線終わりメッセージは画素合
成モジュール700へ送信される。
【0071】塗りつぶしデータセットメッセージを受信
すると、塗りつぶしルックアップ制御モジュール604
はそのデータを塗りつぶしデータテーブル36の指定場
所602に格納する。
【0072】反復メッセージを受信すると、塗りつぶし
ルックアップ制御モジュール604は現在Xカウンタ6
14を反復メッセージからのカウントの分だけ増分す
る。その後、反復メッセージは画素合成モジュール70
0へ送信される。
【0073】画素終わりメッセージを受信すると、塗り
つぶしルックアップ制御モジュール604は同様に現在
Xカウンタ614を増分し、その後、画素終わりメッセ
ージは画素合成モジュール700へ送信される。
【0074】塗りつぶし優先順位メッセージを受信する
と、塗りつぶしルックアップ制御モジュール604は、 − 塗りつぶし優先順位メッセージからの塗りつぶし型
を使用して、塗りつぶし優先順位メッセージからのテー
ブルアドレスにおいてレコードサイズを選択すること
(レコードサイズは36で判定される通り); − 前記の塗りつぶしテーブルを使用して、塗りつぶし
データテーブル36から1つのレコードを選択するこ
と; − 塗りつぶし優先順位メッセージからの塗りつぶし型
を使用して、塗りつぶし色の生成を実行するためのサブ
モジュールを判定し、選択すること(サブモジュールは
図形を処理するためのラスタ画像モジュール606、フ
ラットカラーモジュール608、直線ランプカラーモジ
ュール610及び不透明度タイルモジュール612を含
むであろう); − 判定されたレコードを選択されたサブモジュール6
06~612に供給すること; − 選択されたサブモジュール606~612が供給され
たデータを使用して、色及び不透明度値を判定するこ
と; − 判定された色及び不透明度を塗りつぶし色メッセー
ジからのその他の情報、すなわち、ラスタ演算コード、
アルファチャネル演算コード、発信元ポップフラグ及び
宛先ポップフラグと組み合わせて、接続線698を介し
て画素合成モジュール700へ送信される色合成メッセ
ージを形成すること を含む動作を実行する。
【0075】画素色成分は、通常は画素ごとに32ビッ
トを提供する8ビット精度を有する赤色、緑色、青色及
び不透明度の4つの成分である。しかし、その代わり
に、不透明度の示唆を伴うシアン、マゼンタ、黄色及び
黒色の4つの成分、あるいはその他の数多くの周知の色
表現のいずれか1つを使用しても良い。
【0076】次に、画素合成モジュール700の動作を
説明する。塗りつぶし色判定モジュール600から入力
される、反復メッセージ、色合成メッセージ、画素終わ
りメッセージ及び走査線終わりメッセージを含むメッセ
ージは順次処理される。
【0077】反復メッセージ又は走査線終わりメッセー
ジを受信すると、画素合成モジュール700はそのメッ
セージをそれ以上の処理を加えずに出力FIFO702
へ送信する。
【0078】色合成メッセージを受信すると、画素合成
モジュール700は、通常、色合成メッセージからのラ
スタ演算及びアルファチャネル演算に従って、色合成メ
ッセージからの色及び不透明度を画素合成スタック38
からポップされた色及び不透明度と組み合わせる。次
に、その結果を画素合成スタック38に押し戻す。色合
成メッセージの受信時に実行される処理については後に
説明する。
【0079】画素終わりメッセージを受信すると、画素
合成モジュール700は画素合成スタック38から色及
び不透明度をポップするが、例外として、スタック38
が空である場合には、不透明白色値を使用する。その結
果得られた色及び不透明度は画素出力メッセージとして
形成され、このメッセージは画素出力モジュール800
へ送信される。
【0080】次に、画素出力モジュール800の動作を
説明する。画素出力FIFOから入力される、画素出力
メッセージ、反復メッセージ及び走査線終わりメッセー
ジが読み取られ、順次処理される。
【0081】画素出力メッセージを受信すると、画素出
力モジュール800はその画素を格納すると共に、画素
を出力部へ送信する。反復メッセージを受信すると、最
前に格納されていた画素が反復メッセージからのカウン
トにより指定される回数だけ出力部898へ送信され
る。走査線終わりメッセージを受信すると、画素出力モ
ジュール800はそのメッセージを出力部へ送り出す。
【0082】出力部898は、画素画像データを利用す
る何らかの装置に必要に応じて接続可能である。そのよ
うな装置としては、ビデオ表示装置又はプリンタなどの
出力装置、あるいはハードディスクやラインストア、バ
ンドストア又はフレームストアを含む半導体RAM等の
メモリ格納装置、又はコンピュータネットワークなどが
ある。しかし、以上の説明から明らかであるように、レ
ンダリングプロセス中に画素画像データの中間格納を必
要とせずに精巧な図形記述言語により要求される機能性
を余す所なく発揮して図形オブジェクトをレンダリング
することができる方法及び装置が説明されている。
【0083】次に図13A及び図13Bを参照すると、
カラー動作モード1300及びグレイスケール動作モー
ド1302でそれぞれ動作するときの画素逐次レンダリ
ング装置20のデータ流れが示されている。命令実行部
300はホストプロセッサ2からの命令に応答して、塗
りつぶし順位判定モジュール500、塗りつぶし色判定
モジュール600、画素合成モジュール700及び画素
出力モジュール800に、カラー動作モード又はグレイ
スケール動作モードのいずれかで動作するように命令す
る。
【0084】カラー動作モード中、塗りつぶし色判定モ
ジュール600、画素合成モジュール700及び画素出
力モジュール800は、4つの画素成分を有するカラー
画素データを4つの出力チャネル1304からそれぞれ
出力する。出力チャネル1304はバス(24ビット又
は32ビット幅)を構成しているのが好ましい。カラー
画素データは、例えば、不透明度成分を伴う又は伴わな
いその色成分、例えば、赤色成分、緑色成分、青色成分
に分解されるか、又はシアン、マゼンタ、黄色及び黒色
の各成分に分解される。それらの色成分はそれぞれ8ビ
ットから構成されているのが好ましく、それぞれ対応す
る4つの出力チャネル1304を介して出力される。カ
ラー動作モード中、塗りつぶし色判定モジュール60
0、画素合成モジュール及び画素出力モジュール800
は4つの出力チャネル1304を介して、クロックサイ
クルごとに1画素ずつ同期して出力する。
【0085】グレイスケールレンダリングモード中、塗
りつぶし色判定モジュール600、画素合成モジュール
700及び画素出力モジュール800は、8ビットのグ
レイスケール画素成分のみを有する画素データを4つの
出力チャネル1304から出力する。このモード中、塗
りつぶし色判定モジュール600、画素合成モジュール
700及び画素出力モジュール800はクロックサイク
ルごとに4つの連続する画素をラスタ順に同期してそれ
ぞれ対応する4つの出力チャネル1304を介して出力
する。
【0086】カラー画素逐次レンダリング装置20はグ
レイスケールレンダリングを2つの異なる方法で加速す
る。優先順位判定モジュール500はカラー動作モード
の場合は反復指令と塗りつぶし指令を生成するが、加速
グレイスケール動作モードの場合には、それらの指令の
動作はグレイスケールレンダリングを加速するように修
正される。
【0087】これら2つの指令、すなわち、塗りつぶし
指令及び反復指令の詳細と動作については、以下にカラ
ー動作モードに関して説明する。
【0088】反復指令は優先順位判定モジュール500
により1つのパラメータを伴って生成される。このパラ
メータは、同一の画素データを有する画素の数を指定
し、この指令は画素出力モジュール800に至る経路に
ある下流側の全てのモジュールへ送信される。指定の画
素位置についてこの指令が下流側のモジュールにより処
理され終わったならば、それらの下流側モジュールは次
の画素位置へ進む。
【0089】カラー動作モード中、塗りつぶし指令は、
オブジェクト識別子、塗りつぶし型、塗りつぶしアドレ
ス、合成動作、画素属性、及びオブジェクトがこの画素
に関する最終オブジェクトであるか、すなわち、この画
素に関してアクティブである全てのオブジェクトのうち
最上のオブジェクトであるか否かを指示するためのフラ
グ(last_object)などのいくつかのパラメータを有す
る。処理すべき現在画素位置に寄与する各オブジェクト
の色を得るために、この指令は塗りつぶし色判定モジュ
ール600により翻訳されなければならない。塗りつぶ
し指令についてlast_objectフラグがTRUEにセット
されており且つその塗りつぶし指令が現在画素位置につ
いて塗りつぶし色判定モジュール600により処理され
終わっている場合、塗りつぶし色判定モジュール600
は次の画素位置へ処理を進める。しかし、last_object
フラグがFALSEにセットされていた場合には、塗り
つぶし色判定モジュール600は現在画素位置を処理し
続ける。
【0090】反復指令は、現在画素に続く1つ又は複数
の後続画素がX座標独立オブジェクト、例えば、フラッ
トカラー又はy方向の直線ランプカラーの色塗りつぶし
を伴うオブジェクトを有する場合に作成される。そのよ
うな状況の下では、塗りつぶし色判定モジュール600
は先頭の画素について塗りつぶし指令を処理し、その
後、下流側の全てのモジュールに反復指令を送信するだ
けで良い。反復すべき画素の数は、優先順位判定モジュ
ール500が次に受信する辺交差X"座標と、現在辺交
差のX座標とによって決まる。すなわち、反復指令のパ
ラメータは(X"−(X+1))に等しい。
【0091】1つ又は複数のオブジェクトがビットマッ
プ、もしくは画素ごとに異なる潜在色データを有する他
の何らかの色塗りつぶし動作を有する場合、優先順位判
定モジュール500は塗りつぶし指令をオブジェクトが
アクティブである画素ごとに送る以外の選択肢を持たな
い。その代わりに、塗りつぶし色判定モジュール600
は画素ごとの最終画素色を処理する。
【0092】次に図14を参照すると、複数のオブジェ
クトから構成される画像の一例の表現が示されている。
オブジェクトAの左の辺は画素位置6、7、8及び9で
走査線54、55、56及び57とそれぞれ交差してい
る。また、オブジェクトAの右の辺は画素位置13、1
6、18及び21で走査線54、55、56及び57と
それぞれ交差している。オブジェクトBの左の辺は画素
位置10、9、9及び7で走査線54、55、56及び
57とそれぞれ交差している。また、オブジェクトBの
右の辺は画素位置18、18、19及び19で走査線5
4、55、56及び57とそれぞれ交差している。オブ
ジェクトAは、X方向の画素位置とは無関係である、す
なわち、Xから独立したフラットカラーを有する。これ
に対し、オブジェクトBは、画素がXに依存するような
ビットマップである。オブジェクトA及びオブジェクト
Bは、画素10から13を含む走査線54、画素9から
16を含む走査線55、画素9から18を含む走査線5
6及び画素9から19を含む走査線57の画素について
共通してアクティブである。オブジェクトBの優先順位
はオブジェクトAより低いので、オブジェクトAはこの
画素についてアクティブである全てのオブジェクトのう
ち最上位置のオブジェクトである。
【0093】カラー動作モードにおいて、図14に示す
例の第1の走査線及び最終走査線(54及び57)に対
する優先順位判定モジュール500の入力部498及び
出力部598における指令は次の通りである。 ・ 走査線54(入力指令): 1. edge_crossing:x=6;object=A;edge=UP;priority=11; 2. edge crossing:x=10;object=B;edge=UP;priority=15; 3. edge crossing:x=13;object=A;edge=DOWN;priority=11 4. edge crossing:x=18;object=B;edge=DOWN;priority=15 ・ 走査線54(出力指令): 1. repeat 4 2. fill:object=A;type=flat;fill_address=20;last_object=true; 3. repeat 3 4. fill:object=B;type=bitmap;fill_address=32;last_object=false; 5. fill:object=A;type=flat;fill_address=20;last_object=true; 6. fill:object=B;type=bitmap;fill_address=32;last_object=false; 7. fill:object=A;type=flat;fill_address=32;last_object=true; 8. fill:object=B;type=bitmap;fill_address=32;last_object=false; 9. fill:object=A;type=flat;fill_address=20;last_object=true; 10. fill:object=B;type=bitmap;fill_address=32;last_object=false; 11. fill:object=A;type=flat;fill_address=20;last_object=true 12. fill:object=B;type=bitmap;fill_address=32;last_object=true 13. fill:object=B;type=bitmap;fill_address=32;last_object=true; 14. fill:object=B;type=bitmap;fill_address=32;last_object=true; 15. fill:object=B;type=bitmap;fill_address=32;last_object=true; 16. fill:object=B;type=bitmap;fill_address=32;last_object=true; ・ 走査線57(入力指令): 1. edge_crossing:x=7;object=B;edge=UP;priority=15; 2. edge crossing:x=9;object=A;edge=UP;priority=11; 3. edge crossing:x=19;object=B;edge=DOWN;priority=15 4. edge crossing:x=21;object=A;edge=DOWN;priority=11 ・ 走査線57(出力指令): 1. repeat 5 2. fill:object=B;type=bitmap;fill_address=32;last_object=true; 3. fill:object=B;type=bitmap;fill_address=32;last_object=true 4. fill:object=B;type=bitmap;fill_address=32;last_object=false; 5. fill:object=A;type=flat;fill_address=20;last_object=true; 6. fill:object=B;type=bitmap;fill_address=32;last_object=false; 7. fill:object=A;type=flat;fill_address=20;last_object=true; 8. fill:object=B;type=bitmap;fill_address=32;last_object=false; 9. fill:object=A;type=flat;fill_address=20;last_object=true; 10. fill:object=B;type=bitmap;fill_address=32;last_object=false; 11. fill:object=A;type=flat;fill_address=20;last_object=true 12. fill:object=B;type=bitmap;fill_address=32;last_object=false 13. fill:object=A;type=flat;fill_address=20;last_object=true; 14. fill:object=B;type=bitmap;fill_address=32;last_object=false; 15. fill:object=A;type=flat;fill_address=20;last_object=true; 16. fill:object=B;type=bitmap;fill_address=32;last_object=false; 17. fill:object=A;type=flat;fill_address=20;last_object=true; 18. fill:object=B;type=bitmap;fill_address=32;last_object=false; 19. fill:object=A;type=flat;fill_address=20;last_object=true; 20. fill:object=B;type=bitmap;fill_address=32;last_object=false; 21. fill:object=A;type=flat;fill_address=20;last_object=true; 22. fill:object=B;type=bitmap;fill_address=32;last_object=false; 23. fill:object=A;type=flat;fill_address=20;last_object=true; 24. fill:object=B;type=bitmap;fill_address=32;last_object=falst; 25. fill:object=A;type=flat;fill_address=20;last_object=true; 26. fill:object=A;type=flat;fill_address=20;last_object=true; 27. repeat 1 先に述べた通り、辺交差メッセージ(入力指令)はその
他にもパラメータを含んでいて良い。例えば、図12A
に関連する説明を参照。簡単にするため、図14に関連
してそれらのパラメータのうちいくつかを示してあるに
すぎない。
【0094】fill_addressパラメータは、塗りつぶし色
判定モジュールにより、この特定のオブジェクトと関連
する色値を処理するために使用される。塗りつぶし色判
定モジュール600へ送信される塗りつぶし指令ごと
に、対応するカラーデータはRGBO又はCMYKいず
れかのフォーマットで生成される。
【0095】グレイスケール動作モード中、優先順位判
定モジュールと塗りつぶし色判定モジュールの双方は塗
りつぶし指令ごとに4画素までの分解能で動作するの
で、4つの出力チャネルを効率良く利用できる。これに
より、グレイスケールレンダリング時に1つの出力チャ
ネルしか使用しない場合と比較して、グレイスケールレ
ンダリング速度は4倍まで改善される。
【0096】優先順位判定モジュール500はグレイス
ケールレンダリングモード中も、カラー動作モード中
も、X独立領域が現れたときに、依然として塗りつぶし
指令に続いて繰り返しが起こるという点で同様に動作す
る。この場合、塗りつぶし色判定モジュール600と画
素合成モジュール700は1つの出力チャネル1304
から1つの画素を出力するだけで良く、その後に反復指
令が続く。しかし、画素出力モジュール800は反復指
令を使用するのではなく、後に画素出力装置10が使用
することを考慮して、全ての画素データを出力すること
が望ましい。加えて、グレイスケール動作モード中、画
素出力モジュール800は4つの出力チャネルを介して
4つまでの画素をそれぞれ同時に供給するのが好まし
い。グレイスケール動作モード中、画素出力モジュール
800は1つの画素を受信し、次に反復指令を受信する
と、各出力チャネル1304のうち4つまでのチャネル
を介して適切な数の画素を同時に送り出す。5つ以上の
画素がある場合には、反復指令は4つ1組の画素のグル
ープを順次出力させる。反復指令は画素を所定の順序で
チャネルから出力させる。例えば、画素は最も低いチャ
ネル、次に低いチャネルと続き、最後にもっとも上のチ
ャネルに至るという順序で出力される。すなわち、反復
指令が2つの画素を送り出す場合、それらの画素は最も
低いチャネルと次に低いチャネルから同時に出力され
る。反復すべき画素の量は常に4の倍数であるとは限ら
ないので、画素出力モジュール800は画素出力モジュ
ール800の送り出しサイクル中の有効チャネルの数を
指示するための出力信号も供給する。後者の例では、そ
れらの信号は下2つのチャネルが有効であり、上2つの
チャネルは無効であることを指示することになるであろ
う。
【0097】通常はビットマップデータが存在すること
により発生するX従属領域の場合、優先順位判定モジュ
ールは、グレイスケールレンダリング中に4つまでの画
素について1つの塗りつぶし指令を送信する。これは、
塗りつぶし指令が適用されるラスタ順の連続する画素の
数を識別する「no_pixel」と呼ばれる塗りつぶし指令の
別のパラメータにより実現される。1つの塗りつぶし指
令中に表現できる画素の数は、次の辺交差の前に残留し
ている画素の数によって決まる。次の辺交差がレンダリ
ング中である現在x位置から5画素以上離れて起こる場
合には、発行される塗りつぶし指令は4画素について有
効である。残る画素については別の塗りつぶし指令を発
行しなければならない。そうでない場合には、塗りつぶ
し指令中の有効画素の数は単に辺交差前の残留画素の数
である。更に、塗りつぶし指令は、その塗りつぶし指令
が適用される画素を所定の順序で出力チャネル1304
から出力させる。例えば、画素は最も低いチャネル、次
に低いチャネルと続き、最後に最も上のチャネルに至る
ような順序で出力される。従って、塗りつぶし指令パラ
メータ「no_pixel」=2である場合、対応する2つの画
素は最も低いチャネルと次に低いチャネルから同時に出
力されることになる。
【0098】そこで、塗りつぶし色判定モジュール60
0は所定の塗りつぶし指令の有効画素ごとに同時に結果
として得られた色を処理する。これは、隣接する画素の
ビットマップデータが通常はローカルメモリの隣接する
アドレススペースに格納されているために可能である。
更に、塗りつぶし色判定モジュール600は、通常、性
能を改善するために、ローカルメモリから1画素分を超
える量のデータを取り出す。
【0099】また、塗りつぶし色判定モジュール600
は、複数の画素を伴う1つの塗りつぶし指令の結果とし
て、複数の「色合成メッセージ」を生成することができ
る。これは、キャッシュが複数画素のビットマップデー
タの一部しか含んでおらず、その結果、通常は極めてゆ
っくりとした速度で、まず、ローカルメモリから取り出
されなければならないために有用である。この状況にお
いては、モジュールは第1の色合成メッセージを修正画
素有効性値と共に下流側のモジュールへ送信する。後続
する画素データを利用できる場合、同じ塗りつぶし指令
から残る画素位置について第2のメッセージが生成され
る。
【0100】更に下流側へ下って、画素合成モジュール
700の動作は変化がなく、チャネルが有効画素を含む
か又はグレイスケールレンダリングの場合にないかに関
わらず、利用できる全てのチャネルに対して合成動作を
単純に実行できる。しかし、画素データバッファリング
の動作を簡単にするために画素出力モジュール800
は、有効画素が常に最下位チャネルから始まるように保
証するという意味で一種のハウスキーピングを実行する
ことを望む場合もある。
【0101】再び図14に戻って説明を続けると、加速
グレイスケールレンダリングの場合の第1の走査線及び
最終走査線(54及び57)についての優先順位判定モ
ジュール500の入力部及び出力部における指令(comm
and)は、グレイスケール動作モードの場合と比較して
次のようになる。 ・ 走査線54(入力指令): 1. edge_crossing:x=6;object=A;edge=UP;priority=11; 2. edge crossing:x=10;object=B;edge=UP;priority=15; 3. edge crossing:x=13;object=A;edge=DOWN;priority=11; 4. edge crossing;x=18;object=B;edge=DOWN;priority=15; ・ 走査線54(出力指令): 1. repeat 4 2. fill:object=A;type=flat;fill_address=20;last_object=true;no_pixe l=1; 3. repeat 3 4. fill:object=B;type=bitmap;fill_address=32;last_object=false;no_p ixel=4; 5. fill:object=A;type=flat;fill_address=20;last_object=true;no_pixe l=4; 6. fill:object=B;type=bitmap;fill_address=32;last_object=true;no_pi xel=4; 7. fill:object=B;type=bitmap;fill_address=32;last_object=true;no_pi xel=1; 8. 走査線57(入力指令): 1. edge_crossing:x=7;object=B;edge=UP;priority=15; 2. edge crossing:x=9;object=A;edge=UP;priority=11; 3. edge crossing:x=19;object=B;edge=DOWN;priority=15; 4. edge crossing;x=21;object=A;edge=DOWN;priority=11; ・ 走査線57(出力指令): 1. repeat 5 2. fill:object=B;type=bitmap;fill_address=32;last_object=true;no_pi xel=2; 3. fill:object=B;type=bitmap;fill_address=32;last_object=false;no_p ixel=4 4. fill:object=A;type=flat;fill_address=20;last_object=true;no_pixe l=4; 5. fill:object=B;type=bitmap;fill_address=32;last_object=false;no_p ixel=4; 6. fill:object=A;type=flat;fill_address=20;last_object=true;no_pixe l=4; 7. fill:object=B;type=bitmap;fill_address=32; last_object=false;no_pixel=3; 8. fill:object=A;type=flat;fill_address=20;last_object=true;no_pixe l=3 9. fill:object=A;type=flat;fill_address=20;last_object=true;no_pixe l=1 10. repeat 1 所定の2本の走査線に関する例から性能の向上がはっき
りと見て取れる。2本の走査線(54及び57)におい
て、塗りつぶし指令の数は、それぞれ、14から5へ、
25から8へと減っており、非常に大きな改善であるこ
とがわかる。
【0102】以下の表は、先に挙げた例の走査線54に
おける初めの3つの指令に関してカラーレンダリングと
グレースケールレンダリングの場合の画素出力モジュー
ルの動作を示す。尚、カラーレンダリングの場合、チャ
ネル3,2,1及び0はそれぞれ不透明度、青色、緑色及
び赤色のチャネルとして機能することに注意する。
【0103】
【表1】
【0104】
【表2】
【0105】次に、図15及び図16に示すフローチャ
ートを参照して画素逐次レンダリング装置20を動作さ
せる方法を説明する。この方法は、塗りつぶし色判定モ
ジュール600、画素合成モジュール700及び画素出
力モジュール800をカラー動作モード又は加速グレイ
スケール動作モードで動作するように構成することがで
きる。方法は、ホストプロセッサから命令実行部300
を介して受信される命令に応答してこれらのモードの一
方を動作させるように構成される。これら2つのモード
において、方法は塗りつぶし色判定モジュール600、
画素合成モジュール700及び画素出力モジュール80
0の各々に対して指令を発生する。それらの指令はほぼ
類似しているが、モードによって異なる。カラー動作モ
ードで動作しているとき、方法はカラー動作モード指令
に応答して、1つの画素の4つの画素成分を塗りつぶし
色判定モジュール600、画素合成モジュール700及
び画素出力モジュール800の4つの出力チャネル13
04をそれぞれ介して出力する。加速グレイスケール動
作モードで動作しているとき、方法はグレイスケール動
作モード指令に応答して、4つのまでの連続する画素を
ラスタ順に塗りつぶし色判定モジュール600、画素合
成モジュール700及び画素出力モジュール800のそ
れぞれ対応する4つの出力チャネル1304を介してク
ロックサイクルごとに同期させて出力する。
【0106】そこで図15を参照すると、カラー動作モ
ードで動作しているときに指令を生成する方法のフロー
チャートが示されている。指令を生成する方法1500
はレンダリングすべき画像の走査線ごとに実行される。
説明を容易にするため、ここでは現在走査中の走査線と
呼ばれる1本の走査線に関してのみ指令を発生する場合
に関連して方法を説明する。
【0107】方法1500は、現在走査中の走査線にお
いて、変数current_xを1に設定することにより開始さ
れる(1502)。この変数は、考慮すべき現在画素の
位置を指示するカウンタとして機能する。先に述べた通
り、辺交差メッセージ(入力指令)は走査線交差(X)
座標の順にFIFO518を介して優先順位判定モジュ
ール500へ送信される。方法1500は、それらの辺
交差メッセージをその走査線交差(X)座標の順に処理
する。それらの辺交差メッセージは図14を参照して説
明した、例えば、edge_crossing:x=6;object=A;edge
=UP;priority=11及びその他のフィールドのような
フォーマットをとっていても良い。
【0108】方法1500は、ステップ1504で辺交
差メッセージを検索し、ループの各々のパス中に走査線
交差(X)座標の順にそれらのメッセージを処理するル
ープ(1504−1512−1504、1504−15
24−1504)の形態をとっている。同じ走査線交差
座標(X)を有する複数の辺交差メッセージが存在する
場合、方法は、ループの1回のパス中に処理するために
それら複数の辺交差メッセージの全てを検索する(15
04)。言い換えれば、ループの現在パス中に、方法1
500は、走査線の順で、ループの最前のパス中に検索
された辺交差メッセージの(X)座標の次に来る同じ
(X)座標を有する1つ又は複数の辺交差メッセージを
獲得する(1504)。
【0109】開始ステップ1502の後、方法1500
は、走査線の順で初めて現れた走査線交差座標(X)を
有する辺交差メッセージを獲得する(1504)。全て
が走査線の順で初めて現れる同じ交差(X)座標を有す
る複数の辺交差メッセージが存在する場合、方法はそれ
ら初めて現れた全ての辺交差メッセージを獲得する(1
504)。また、方法1500は、先に説明したよう
に、現在X座標についてその時点で検索された辺交差メ
ッセージを使用してレベルアクティべーションテーブル
530を更新する。最初の辺交差メッセージの(X)座
標が2より大きい場合、方法1500は更に指令「repe
at X−2」を塗りつぶし色判定モジュール600、画素
合成モジュール700及び画素出力モジュール800へ
送信する。この反復指令のフラグは、画素X=1からX−
1にわたるオブジェクトが存在せず且つそれらの画素位
置において背景をペイントしても良いことを指示するよ
うにONにセットされているのが好ましい。
【0110】ステップ1504の後、方法1500は、
その時点で検索されていた辺交差メッセージを利用し
て、フラグテーブル508及び510に格納されている
「アクティブフラグ」及び「不透明アクティブフラグ」
を更新する(1506)。「アクティブフラグ」及び
「不透明アクティブフラグ」がどのようにして更新され
るかについては、先に詳細に説明してある。
【0111】次に、方法1500は、current_xの現在
値に位置する画素について「アクティブフラグ」がON
にセットされている優先順位オブジェクトが存在するか
否かを判定する(1508)。それら1つ又は複数のオ
ブジェクトの全ての関連する「アクティブフラグ」がO
FFにセットされているならば、それらのオブジェクト
は現在画素に全く寄与しないので、決定ブロック150
8はFALSE(ノー)を戻し、方法1500はステッ
プ1516へ進む。
【0112】そこで、走査線の順で次の辺交差メッセー
ジのX座標の値をnew_Xとし、変数current_xの現在値を
current_xとするとき、(new_X−current_x)>0であ
るならば、方法1500は指令「repeat(new_X−curre
nt_x)」を送信する(1516)。この場合、反復指令
の前記フラグは、current_xからnew_Xに位置する画素に
わたるオブジェクトは存在せず且つそれらの画素位置で
背景をペイントしても良いことを指示するようにONに
セットされている。次に、方法はステップ1518へ進
む。
【0113】ステップ1518中、方法1500は変数
current_xを走査線の順で次の辺交差メッセージのX座
標に等しいnew_Xに設定する。次に、方法はステップ1
504に戻り、ループの次のパス中に処理するためにne
w_Xで辺交差を有する次の辺交差メッセージを獲得する
(1504)。
【0114】これに対し、current_xの現在値に位置す
る画素についてオブジェクトの「アクティブフラグ」の
いずれか1つがONになっている場合には、決定ブロッ
ク1508はTRUE(イエス)を戻し、方法1500
はステップ1510へ進む。
【0115】ステップ1510中、方法1500はcurr
ent_xの現在値に位置する画素について塗りつぶし指令
を生成し始める。このステップ1510中、方法150
0は、「アクティブフラグ」がONにセットされ且つ最
高「不透明アクティブフラグ」がONにセットされてい
るオブジェクト以下の優先順位を有する、「アクティブ
フラグ」がONにセットされているオブジェクトを優先
順位の順に判定する。それらの塗りつぶし指令のパラメ
ータのデータは、それまでに検索されていた辺交差メッ
セージに含まれる情報から間接的に得られる。特に、塗
りつぶし指令のパラメータはcurrent_xの現在値に関す
る更新後のレベルアクティべーションテーブル530か
ら獲得される。この生成ステップ1510中、方法15
00は、current_xの現在値に位置する画素について2
つ以上の塗りつぶし指令が存在する場合、更にそれらの
塗りつぶし指令の優先順位を判定する。すなわち、curr
ent_xの現在値に位置する画素の塗りつぶし指令はその
オブジェクト優先順位の順に生成される。尚、この生成
ステップ1510は1つの画素についてのみ1つ又は複
数の塗りつぶし指令を生成することに注意すべきであ
る。それらの塗りつぶし指令(出力指令)は図14を参
照して先に説明したようなフォーマットをとっていても
良い。例えば、1つの画素の塗りつぶし指令はfill:obj
ect=B;type=bitmap;fill_address=32;last_object=
false;fill:object=A;type=flat;fill_address=20;l
ast_object=trueであっても良い。パラメータlast_obj
ect=trueは、この塗りつぶし指令が現在画素に対する
最終塗りつぶし指令であることを示す。オブジェクトの
塗りつぶし指令はX独立フラグ(例えば、型)を更に含
むのが好ましい。先に述べた通り、このフラグは、この
アクティブオブジェクトの色が所定のY(すなわち、走
査線)に対して一定であるか否かを指示する。
【0116】生成ステップ1510の後、方法1500
は、先に生成された塗りつぶし指令と関連するオブジェ
クトが型パラメータに関してX独立であるか否かを判定
する(1512)。
【0117】決定ブロック1512が先に生成された塗
りつぶし指令と関連する全てのオブジェクトはX独立で
あると判定した場合、方法1500は、それらの先に生
成された塗りつぶし指令を塗りつぶし色判定モジュール
600、画素合成モジュール700及び画素出力モジュ
ール800へ送信する(1514)。ステップ1514
の後、方法1500は変数current_xを1増分し(15
15)、ステップ1516へ進む。
【0118】そこで、走査線の順で次の辺交差メッセー
ジのX座標の値をnew_Xとし、変数current_xの現在値を
current_xとするとき、(new_X−current_x)>0であ
るならば、方法1500は指令「repeat(new_X−curre
nt_x)」を送信する(1516)。この場合、反復指令
の前記フラグはOFFにセットされる。これは、curren
t_xの現在値に対する塗りつぶし指令を後続する位置に
ついても反復すべきであることを指示する。次に、方法
はステップ1518へ進む。しかし、値new_X−current
_xが0に等しい場合には、反復指令は送信されず、方法
は直接にステップ1518へ進む。
【0119】そこで、方法1500は変数current_xをn
ew_Xの値に設定し(1518)、ステップ1504に戻
って、ループの次のパス中に、new_Xで辺交差を有する
次の辺交差メッセージを処理する。
【0120】これに対し、決定ブロック1512が先に
生成された塗りつぶし指令の1つ又は複数のオブジェク
トはX従属であると判定した場合には、方法1500は
ステップ1520へ進む。このような状況は、例えば、
オブジェクトの1つがビットマップである場合に起こる
であろう。すなわち、決定ブロック1512がFALS
E(ノー)を戻したならば、方法1500はcurrent_x
に位置する画素に対して塗りつぶし指令(出力指令)を
送信する(1520)。それらの指令は塗りつぶし色判
定モジュール600、画素合成モジュール700及び画
素出力モジュール800へ送信される。
【0121】送信ステップ1520の後、方法1500
は変数current_xを1増分し(1522)、決定ブロッ
ク1524へ進む。
【0122】決定ブロック1524中、方法1500
は、変数current_xの現在値が走査線の順で次に処理さ
れるべき辺交差メッセージのX座標であるnew_Xと等し
いか否かを検査する。決定ブロック1524がcurrent_
xの現在値はnew_Xと等しくないと判定したならば、方法
1500はステップ1520に戻る。ステップ1520
では、current_xの新たな値に位置する画素に対して、
先のステップ1520のパス中に送信されたのと同じ塗
りつぶし指令を再び送信する。
【0123】これに対し、決定ブロック1524がTR
UE(イエス)を戻した場合には、方法1500はステ
ップ1504に戻り、ループの次のパス中に次の辺交差
メッセージを処理する。
【0124】処理すべき辺交差メッセージがなくなった
時点で、方法1500は現在走査線に関する処理を終了
する(図示せず)。
【0125】次に図16を参照すると、カラー動作モー
ドで動作しているときに指令を生成する方法のフローチ
ャートが示されている。指令を生成する方法1600
は、レンダリングすべき画像の走査線ごとに実行され
る。説明を容易にするため、ここでは現在走査中の走査
線と呼ばれる1本の走査線についてのみ指令を発生する
場合について方法を説明する。
【0126】方法1600は、現在走査中の走査線につ
いて、変数current_xを1に設定することにより始まる
(1602)。この変数は、考慮すべき現在画素の位置
を指示するカウンタとして機能する。先に述べた通り、
辺交差メッセージ(入力指令)は走査線交差(X)座標
の順にFIFO518を介して優先順位判定モジュール
500へ送信される。方法1600はそれらの辺交差メ
ッセージをその走査線交差(X)座標の順に処理する。
それらの辺交差メッセージは、図14を参照して説明し
た、edge_crossing:x=6;object=A;edge=UP;priorit
y=11及びその他のフィールドのようなフォーマット
をとっていても良い。
【0127】方法1600は、辺交差メッセージを検索
し(1604)、ループの各々のパス中に走査線交差
(X)座標の順にそれらのメッセージを処理するループ
(1604−1612−1604、1604−1642
−1604)の形態をとっている。同じ走査線交差座標
(X)を有する複数の辺交差メッセージが存在する場
合、方法は、ループの1回のパス中に処理するためのそ
れら複数の辺交差メッセージの全てを検索する(160
4)。言い換えれば、ループの現在パス中、方法160
0は、走査線の順で、ループの最前のパス中に検索され
た辺交差メッセージの(X)座標の次に来る同じ(X)
座標を有する1つ又は複数の辺交差メッセージを獲得す
る(1604)。
【0128】開始ステップ1602の後、方法1600
は、走査線の順で最初に現れた走査線交差座標(X)を
有する辺交差メッセージを獲得する(1604)。全て
走査線の順で最初に現れた同じ交差(X)座標を有する
複数の辺交差メッセージが存在する場合、方法はそれら
最初の辺交差メッセージの全てを獲得する(160
4)。また、方法1600は、先に説明したように、現
在X座標についてその時点で検索されている辺交差メッ
セージを使用してレベルアクティべーションテーブル5
30を更新する。最初の辺交差メッセージの(X)座標
が2より大きい場合、方法1600は更に指令「repeat
X−2」を塗りつぶし色判定モジュール600、画素合
成モジュール700及び画素出力モジュール800へ送
信する。初期反復指令は、画素X=1からX−1にわたる
オブジェクトが存在しないことを指示する。この反復指
令のフラグは、画素X=1からX−1にわたるオブジェク
トが存在せず且つそれらの画素位置で背景をペイントし
ても良いことを指示するONにセットされているのが好
ましい。
【0129】ステップ1604の後、方法1600は、
その時点で検索されている辺交差メッセージを利用し
て、フラグテーブル508及び510に格納されている
「アクティブフラグ」及び「不透明アクティブフラグ」
を更新する(1606)。「アクティブフラグ」及び
「不透明アクティブフラグ」がどのようにして更新され
るかについては先に詳細に説明してある。
【0130】次に、方法1600は、current_xの現在
値に位置する画素について「アクティブフラグ」がON
にセットされている優先順位オブジェクトが存在するか
否かを判定する(1608)。それら1つ又は複数のオ
ブジェクトの全ての関連する「アクティブフラグ」がO
FFにセットされていたならば、それらのオブジェクト
は現在画素に全く寄与しないので、決定ブロック160
8はFALSE(ノー)を戻し、方法1600はステッ
プ1616へ進む。
【0131】そこで、走査線の順で次の辺交差メッセー
ジのX座標の値をnew_Xとし、変数current_xの現在値を
current_xとするとき、(new_X−current_x)>0であ
るならば、方法1600は指令「repeat(new_X−curre
nt_x)」を送信する(1616)。この場合、反復指令
の前記フラグは、current_xからnew_Xに位置する画素に
わたるオブジェクトは存在せず且つそれらの画素位置で
背景をペイントしても良いことを指示するONにセット
されている。次に、方法はステップ1618に進む。
【0132】しかし、値new_X−current_xが0に等しい
場合には、反復指令は送信されず、方法は直接にステッ
プ1618へ進む。
【0133】ステップ1618中、方法1600は変数
current_xを走査線の順で次の辺交差メッセージのX座
標に等しいnew_Xに設定する。次に、方法1600はス
テップ1604に戻り、方法1600は、ループの次の
パス中に処理するためにnew_Xで辺交差を有する次の辺
交差メッセージを獲得する(1604)。
【0134】これに対し、current_xの現在値に位置す
る画素についてオブジェクトの「アクティブフラグ」の
いずれか1つがONにセットされている場合には、決定
ブロック1608はTRUE(イエス)を戻し、方法1
600はステップ1610へ進む。
【0135】ステップ1610中、方法1600はcurr
ent_xの現在値に位置する画素に対して塗りつぶし指令
を生成し始める。このステップ1610中、方法160
0は、優先順位の順に、「アクティブフラグ」がONに
セットされ且つ最高「不透明アクティブフラグ」がON
にセットされているオブジェクト以下の優先順位を有す
る、「アクティブフラグ」がONにセットされているオ
ブジェクトを判定する。それらの塗りつぶし指令のパラ
メータのデータは、それまでに検索されていた辺交差メ
ッセージに含まれる情報から間接的に得られる。特に、
塗りつぶし指令のパラメータは、current_xの現在値に
ついて更新後のレベルアクティべーションテーブル53
0から獲得される。この生成ステップ1610中、curr
ent_xの現在値に位置する画素に対する塗りつぶし指令
が2つ以上存在する場合、方法1600は更に塗りつぶ
し指令の優先順位を判定する。すなわち、current_xの
現在値に位置する画素に対する塗りつぶし指令はそのオ
ブジェクト優先順位の順に生成される。尚、この生成ス
テップ1610は1つの画素についてのみ1つ又は複数
の塗りつぶし指令を生成することに注意すべきである。
それらの塗りつぶし指令(出力指令)は先に図14を参
照して説明したようなフォーマットをとっていても良
い。例えば、1つの画素に対する塗りつぶし指令はfil
l:object=B;type=bitmap;fill_address=32;last_obj
ect=false;no_pixel=Z;fill:object=A;type=flat;f
ill_address=20;last_object=true;no_pixel=Zであ
っても良い。パラメータlast_object=trueは、この塗
りつぶし指令が現在画素に対する最終塗りつぶし指令で
あることを示す。パラメータno_pixelは、現在画素から
始めてこの塗りつぶし指令が適用される連続する画素の
数を示す1から4までの数字である。このパラメータの
値は方法1600中、塗りつぶし指令を送信する直前に
判定される。1つのオブジェクトに関する塗りつぶし指
令はX独立フラグ(例えば、型)を更に含むのが好まし
い。先に述べた通り、このフラグは、このアクティブオ
ブジェクトの色が所定のY(すなわち、走査線)に対し
て一定であるか否かを指示する。
【0136】生成ステップ1610の後、方法1600
は、ループの現在パス中に生成された塗りつぶし指令と
関連するオブジェクトが型パラメータに関してX独立で
あるか否かを判定する(1612)。
【0137】決定ブロック1612がループの現在パス
中に生成された塗りつぶし指令と関連する全てのオブジ
ェクトはX独立であると判定した場合、方法1600は
それらの塗りつぶし指令を塗りつぶし色判定モジュール
600、画素合成モジュール700及び画素出力モジュ
ール800へ送信する(1614)。それらの塗りつぶ
し指令を送信する(1614)前に、方法1600は塗
りつぶし指令のパラメータno_pixelを1に設定する。ス
テップ1614の後、方法1600は変数current_xを
1増分し(1615)、ステップ1616へ進む。
【0138】そこで、走査線の順で次の辺交差メッセー
ジのX座標の値をnew_Xとし、変数current_xの現在値を
current_xとするとき、(new_X−current_x)>0であ
るならば、方法1600は指令「repeat(new_X−curre
nt_x)」を送信する(1616)。この場合、反復指令
の前記フラグはOFFにセットされている。これは、cu
rrent_xの現在値についての塗りつぶし指令を後続する
画素位置に対して反復すべきであることを指示する。次
に、方法はステップ1618へ進む。しかし、値new_X
−current_xが0に等しい場合には、反復指令は送信さ
れず、方法は直接にステップ1618へ進む。
【0139】次に、方法1600は変数current_xをnew
_Xの値に設定し(1618)、ステップ1604に戻っ
て、ループの次のパス中に、new_Xで辺交差を有する次
の辺交差メッセージを処理する。
【0140】これに対し、決定ブロック1612がルー
プの現在パス中に生成された塗りつぶし指令の1つ又は
複数のオブジェクトはX従属であると判定した場合に
は、方法1600は決定ブロック1626へ進む。この
ような状況は、例えば、オブジェクトの1つがビットマ
ップである場合に起こるであろう。すなわち、決定ブロ
ック1612がFALSE(ノー)を戻した場合、方法
1600は決定ブロック1626へ進む。
【0141】決定ブロック1626は、値current_x+3
がnew_Xより小さいか否かを判定する。決定ブロック1
626がTRUE(イエス)を戻した場合、方法160
0は4つの画素について有効である1つ又は複数の塗り
つぶし指令を送信する(1628)。すなわち、方法1
600は、ループの現在パス中に生成された塗りつぶし
指令を塗りつぶし色判定モジュール600、画素合成モ
ジュール700及び画素出力モジュール800へ送信す
る(1628)。この送信(1628)に先立って、方
法1600はそれらの塗りつぶし指令のno_pixelパラメ
ータを4に設定する。ステップ1628の後、方法は変
数current_xを4増分し(1630)、決定ブロック1
626に戻る。決定ブロック1626が再びTRUE
(イエス)を戻した場合には、方法1600は、no_pix
elパラメータを4に設定した状態でループの現在パス中
に生成されたもう1組の塗りつぶし指令を送信する(1
628)。
【0142】これに対し、決定ブロック1626がFA
LSE(ノー)を戻した場合には、方法1600は決定
ブロック1632へ進む。決定ブロック1632は、値
current_x+2がnew_Xより小さいか否かを判定する。決
定ブロック1632がTRUE(イエス)を戻した場
合、方法1600はループの現在パス中に生成された塗
りつぶし指令を塗りつぶし色判定モジュール600、画
素合成モジュール700及び画素出力モジュール800
へ送信する(1634)。この送信(1634)に先立
って、方法1600はそれらの塗りつぶし指令のno_pix
elパラメータを3に設定する。ステップ1634の後、
方法は変数current_xを3増分し(1530)、決定ブ
ロック1632に戻る。
【0143】決定ブロック1632がFALSE(ノ
ー)を戻した場合、方法1600は決定ブロック163
6へ進む。決定ブロック1636は、値current_x+1
がnew_Xより小さいか否かを判定する。決定ブロック1
636がTRUE(イエス)を戻した場合、方法160
0は2つの画素について有効である1つ又は複数の塗り
つぶし指令を送信する(1638)。すなわち、方法1
600は、ループの現在パス中に生成された塗りつぶし
指令を塗りつぶし色判定モジュール600、画素合成モ
ジュール700及び画素出力モジュール800へ送信す
る(1638)。この送信(1638)に先立って、方
法1600はそれらの塗りつぶし指令のno_pixelパラメ
ータを2に設定する。ステップ1638の後、方法は変
数current_xを2増分し(1640)、決定ブロック1
636に戻る。
【0144】決定ブロック1636がFALSE(ノ
ー)を戻した場合には、方法1600は決定ブロック1
642に戻る。決定ブロック1642は、値current_x
がnew_Xより小さいか否かを判定する。決定ブロック1
642がTRUE(イエス)を戻した場合、方法160
0は1つの画素について有効である1つ又は複数の塗り
つぶし指令を送信する(1644)。すなわち、方法1
600は、ループの現在パス中に生成された塗りつぶし
指令を塗りつぶし色判定モジュール600、画素合成モ
ジュール700及び画素出力モジュール800へ送信す
る(1644)。この送信(1644)に先立って、方
法1600はそれらの塗りつぶし指令のno_pixelパラメ
ータを1に設定する。ステップ1644の後、方法は変
数current_xをnew_Xに設定し(1646)、ステップ1
604に戻って、次の辺交差メッセージを処理する。
【0145】これに対し、決定ブロック1642がFA
LSE(ノー)を戻した場合には、方法1600は変数
current_xをnew_Xに設定し(1646)、ステップ16
04に戻って、次の辺交差メッセージを処理する。
【0146】処理すべき辺交差メッセージがなくなった
時点で、現在走査線について方法1600の処理は終了
する(図示せず)。
【0147】カラー動作モードで動作しているとき、塗
りつぶし色判定モジュール600は塗りつぶし指令を獲
得し、塗りつぶし指令のパラメータに含まれている情報
を利用して画素を生成する。塗りつぶし色判定モジュー
ル600は、カラー動作モードで動作しているとき、そ
のような画素を一度に1つずつ出力カラーチャネルを介
して出力する。それらの画素は複数の色成分を有し、そ
れらの色成分は塗りつぶし色判定モジュール600のそ
れぞれ対応するカラー出力チャネルから出力される。ま
た、塗りつぶし色判定モジュール600は反復指令をカ
ラー出力チャネルを介して画素出力モジュール800へ
送信する。画素出力モジュール800は反復指令を受信
すると、先に出力された画素を反復指令のパラメータに
従った回数だけ繰り返し出力する。塗りつぶし色判定モ
ジュール600は塗りつぶし指令ごとに1つの画素を生
成し、走査線の現在画素位置に対して複数の塗りつぶし
指令が存在する場合には、塗りつぶし色判定モジュール
600は走査線のその現在位置について複数の画素を生
成し、優先順位の順にそれらの画素を一度に1つずつ出
力チャネルから出力する。塗りつぶし色判定モジュール
600が走査線の現在画素位置について複数の画素を生
成する場合、塗りつぶし色判定モジュール600は、更
に、それらの生成画素を合成するための合成情報を含む
合成メッセージを生成する。合成メッセージは、元の塗
りつぶし指令から得られる合成情報から構成される。そ
れらの合成メッセージは塗りつぶし色判定モジュール6
00からカラー出力チャネルを介して画素合成モジュー
ル700へも送信される。
【0148】加速グレイスケール動作モードで動作して
いるとき、塗りつぶし色判定モジュール600は塗りつ
ぶし指令を獲得し、塗りつぶし指令のパラメータに含ま
れている情報を利用して、1つの色成分を有する画素を
生成する。それらの画素は、その後、塗りつぶし指令の
パラメータno_pixelに応じて塗りつぶし色判定モジュー
ル600のそれぞれのカラー出力チャネルから出力され
る。例えば、塗りつぶし指令のパラメータno_pixel=4
である場合、塗りつぶし色判定モジュール600の4つ
の出力チャネルから4つの画素が同時に出力される。ま
た、塗りつぶし色判定モジュール600は、塗りつぶし
指令に含まれる合成情報を使用して合成メッセージを送
信する。それらの合成メッセージは塗りつぶし色判定モ
ジュール600から出力チャネルを介して画素合成モジ
ュール700へ送信される。同様に、それらの合成メッ
セージはno_pixelなどのパラメータを含む場合があり、
それにより、画素合成モジュール700から出力チャネ
ルを介していくつかの画素が同時に出力されることにな
る。加速グレイスケール動作モードでは、塗りつぶし色
判定モジュール600は、更に、カラー動作モードの場
合と同様に反復指令を送信する。
【0149】
【産業上の適用可能性】以上の説明から、本発明の実施
形態はコンピュータグラフィックス及びプリントの分野
に適用可能であることが明白である。
【0150】以上、本発明の実施形態を説明したが、そ
れらの実施形態は単なる例であって、限定的な意味を持
たず、本発明の趣旨から逸脱せずに実施形態に対して変
形及び/又は変更を実施することは可能である。
【図面の簡単な説明】
【図1】好適な実施形態によるコンピュータシステムを
示す概略ブロック構成図である。
【図2】好適な実施形態の機能データ流れを示すブロッ
ク構成図である。
【図3】好適な実施形態の画素逐次レンダリング装置
と、関連する表示リスト及び一時ストアとを示す概略ブ
ロック構成図である。
【図4】図2の辺処理モジュールの概略機能図である。
【図5】図2の優先順位判定モジュールの概略機能図で
ある。
【図6】図2の塗りつぶしデータ判定モジュールの概略
機能図である。
【図7】好適な実施形態の動作を説明するための一例と
して使用される2オブジェクト画像を示す図である。
【図8A】、
【図8B】図7のオブジェクトのベクトル辺を示す図で
ある。
【図9】図7の画像の数本の走査線のレンダリングを示
す図である。
【図10】図7のカラーレンダリングを実行するときに
出力される様々なモジュールにおける処理画素のスナッ
プショットを示す図である。
【図11A】、
【図11B】偶数/奇数及び非ゼロワインディング塗り
つぶし規則を示す図である。
【図12A】、
【図12B】、
【図12C】、
【図12D】、
【図12E】図5の構成により実現される優先塗りつぶ
しルーチンを示す図である。
【図13A】、
【図13B】カラー動作モード及びグレイスケール動作
モード中の画素逐次レンダリング装置の機能データ流れ
を示す図である。
【図14】複数のオブジェクトから構成される画像の一
例を表す図である。
【図15】カラー動作モードで動作しているときの指令
生成方法を示すフローチャートである。
【図16】加速グレイスケール動作モードで動作してい
るときの指令生成方法を示すフローチャートである。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 2C087 AA15 BA02 BA04 BC05 BD24 BD35 5B080 FA02 FA17 GA00 GA25

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 デジタル画像の画素を処理する方法であ
    って、 複数のカラー出力チャネルを有する画像処理装置を第1
    の処理モード又は第2の処理モードで動作するように構
    成する工程と、 前記画像処理装置が前記第1の処理モードで構成されて
    いるとき、各々が1つ又は複数の画素色成分を有する1
    つ又は複数のカラー画素を処理し、且つ前記1つ又は複
    数の画素色成分を対応する1つ又は複数の前記カラー出
    力チャネルから出力することにより前記カラー画素を一
    度に1つ出力する工程と、 前記画像処理装置が前記第2の処理モードで構成されて
    いるとき、各々が1つの画素色成分を有する1つ又は複
    数の画素を処理し、且つ前記1つ又は複数の画素を対応
    する前記カラー出力チャネルから同時に出力することに
    より1つ又は複数の前記画素を一度に出力する工程とを
    備えることを特徴とする方法。
  2. 【請求項2】 前記1つの画素色成分はグレイスケール
    成分であることを特徴とする請求項1記載の方法。
  3. 【請求項3】 前記複数の画素色成分は赤色成分、緑色
    成分及び青色成分であることを特徴とする請求項1記載
    の方法。
  4. 【請求項4】 前記複数の画素色成分は不透明度成分を
    更に含むことを特徴とする請求項3記載の方法。
  5. 【請求項5】 前記画像処理装置は塗りつぶし色判定モ
    ジュールを具備し、前記方法は、 第1の処理モード中、前記塗りつぶし色判定モジュール
    において、1つ又は複数の指令に応答して各々が複数の
    画素色成分を有する1つ又は複数の前記色画素を生成
    し、且つ前記複数の画素色成分を前記複数のカラー出力
    チャネルのうち対応するカラー出力チャネルから出力す
    ることにより、前記複数のカラー画素の中から前記カラ
    ー画素を一度に1つ出力する工程と、 第2の処理モード中、前記塗りつぶし色判定モジュール
    において、1つ又は複数の指令に応答して各々が1つの
    画素色成分を有する1つ又は複数の画素を生成し、且つ
    前記1つ又は複数の画素を対応する前記カラー出力チャ
    ネルから同時に出力して1つ又は複数の前記画素を一度
    に出力することにより、前記画素の中から複数の前記画
    素を一度に出力する工程とを更に含むことを特徴とする
    請求項1記載の方法。
  6. 【請求項6】 前記1つ又は複数の指令のうち1つは塗
    りつぶし指令であり、且つ前記方法は、前記第2の処理
    モードにあるとき、 塗りつぶし指令が適用されるラスタ順の連続する画素の
    数であって、1からカラー出力チャネルの数に等しい最
    大数まで変化できる数を指示するパラメータを含む前記
    塗りつぶし指令を生成する工程を更に含むことを特徴と
    する請求項5記載の方法。
  7. 【請求項7】 前記1つ又は複数の指令のうち1つは反
    復指令であり、且つ前記方法は、前記第2の処理モード
    にあるとき、 先の前記塗りつぶし指令が適用されたラスタ順の連続す
    る画素の数を指示するパラメータを含む前記反復指令を
    生成する工程を更に含むことを特徴とする請求項6記載
    の方法。
  8. 【請求項8】 デジタル画像の画素を処理する装置にお
    いて、 複数のカラー出力チャネルを具備し、デジタル画像の画
    素を処理する画像処理装置と、 前記画像処理装置を第1の処理モード又は第2の処理モ
    ードで動作するように構成する制御装置とを具備し、 前記画像処理装置は、前記第1の処理モードで構成され
    ているとき、各々が1つ又は複数の画素色成分を有する
    1つ又は複数のカラー画素を処理し、且つ前記1つ又は
    複数の画素色成分を対応する1つ又は複数の前記カラー
    出力チャネルから出力することにより前記カラー画素を
    一度に1つ出力し、且つ前記画像処理装置は、前記第2
    の処理モードで構成されているとき、各々が1つの画素
    色成分を有する1つ又は複数の画素を処理し、且つ前記
    1つ又は複数の画素を対応する前記カラー出力チャネル
    から同時に出力することにより1つ又は複数の前記画素
    を一度に出力することを特徴とする装置。
  9. 【請求項9】 前記1つの画素色成分はグレイスケール
    成分であることを特徴とする請求項8記載の装置。
  10. 【請求項10】 前記複数の画素色成分は赤色成分、緑
    色成分及び青色成分であることを特徴とする請求項8記
    載の装置。
  11. 【請求項11】 前記複数の画素色成分は不透明度成分
    を更に含むことを特徴とする請求項10記載の装置。
  12. 【請求項12】 前記画像処理装置は塗りつぶし色判定
    モジュールを具備し、前記塗りつぶし色判定モジュール
    は、 第1の色処理モード中、1つ又は複数の指令に応答して
    各々が複数の画素色成分を有する1つ又は複数の前記色
    画素を生成し、且つ前記複数の画素色成分を対応する前
    記複数のカラー出力チャネルから出力することにより、
    前記複数のカラー画素の中から前記カラー画素を一度に
    1つ出力する発生器と、 第2の色処理モード中、1つ又は複数の指令に応答して
    各々が1つの画素色成分を有する1つ又は複数の画素を
    生成し、且つ前記1つ又は複数の画素を対応する前記カ
    ラー出力チャネルから出力することにより、前記画素の
    中から複数の前記画素を一度に出力する発生器とを更に
    具備することを特徴とする請求項8記載の装置。
  13. 【請求項13】 前記1つ又は複数の指令のうち1つは
    塗りつぶし指令であり、且つ前記画像処理装置は、 第2の色処理モード中、塗りつぶし指令が適用されるラ
    スタ順の連続する画素の数であって、1からカラー出力
    チャネルの数に等しい最大数まで変化できる数を指示す
    るパラメータを含む前記塗りつぶし指令を生成する発生
    器を更に具備することを特徴とする請求項12記載の装
    置。
  14. 【請求項14】 前記1つ又は複数の指令のうち1つは
    反復指令であり、且つ前記装置は、 第2の色処理モード中、先の前記塗りつぶし指令が適用
    されたラスタ順の連続する画素の数を指示するパラメー
    タを含む前記反復指令を生成する発生器を更に具備する
    ことを特徴とする請求項13記載の装置。
  15. 【請求項15】 デジタル画像の画素を処理する方法に
    おいて、 複数のカラー出力チャネルを有する画像処理装置を第1
    の動作モード又は第2の動作モードで動作するように構
    成する工程と、 前記第1の動作モード中、1つ又は複数の画素色成分を
    有する1つ又は複数のカラー画素を生成する工程と、 前記第1の動作モード中、生成された各画素の前記1つ
    又は複数の画素色成分を対応する前記カラー出力チャネ
    ルから出力することにより、前記生成されたカラー画素
    を一度に1つ出力する工程と、 前記第2の動作モード中、塗りつぶし指令が適用される
    ラスタ順の連続する画素位置の数であって、1から前記
    カラー出力チャネルの数に等しい最大数まで変化できる
    数を指示するパラメータをそれぞれ含む1つ又は複数の
    塗りつぶし指令を生成する工程と、 前記第2の動作モード中、1つ又は複数の前記画素位置
    に対して1つ又は複数の前記塗りつぶし指令に応答し
    て、塗りつぶし指令の数及び前記塗りつぶし指令のパラ
    メータに従って決まる数の1つ又は複数の、各々が1つ
    の画素色成分を有する画素を生成する工程と、 前記第2の動作モード中、1つ又は複数の前記画素を1
    つ又は複数の前記カラー出力チャネルから同時に出力す
    ることにより、1つ又は複数の前記画素を一度に出力す
    る工程とを備えることを特徴とする方法。
  16. 【請求項16】 前記方法は、 前記第2の処理モード中、先の前記塗りつぶし指令が適
    用されたラスタ順の連続する画素の数を指示するパラメ
    ータを含む反復指令を生成する工程を更に含むことを特
    徴とする請求項15記載の方法。
  17. 【請求項17】 前記1つの画素色成分はグレイスケー
    ル成分であることを特徴とする請求項15記載の方法。
  18. 【請求項18】 前記1つ又は複数の画素色成分は赤色
    成分、緑色成分及び青色成分であることを特徴とする請
    求項15記載の方法。
  19. 【請求項19】 前記1つ又は複数の画素色成分は不透
    明度成分を更に含むことを特徴とする請求項18記載の
    方法。
  20. 【請求項20】 デジタル画像の画素を処理する装置で
    あって、 複数のカラー出力チャネルを有する画像処理装置を第1
    の動作モード又は第2の動作モードで動作するように構
    成するホストプロセッサを具備し、前記画像処理装置
    は、 前記第1の動作モード中、1つ又は複数の画素色成分を
    有する1つ又は複数のカラー画素を生成し、且つ生成さ
    れた各画素の前記1つ又は複数の画素色成分を対応する
    前記カラー出力チャネルから出力することにより、前記
    生成されたカラー画素を一度に1つ出力する塗りつぶし
    モジュールと、 前記第2の動作モード中、塗りつぶし指令が適用される
    ラスタ順の連続する画素位置の数であって、1から前記
    カラー出力チャネルの数に等しい最大数まで変化できる
    数を指示するパラメータをそれぞれ含む1つ又は複数の
    塗りつぶし指令を生成するモジュールとを具備し、 前記塗りつぶしモジュールは、前記第2の動作モード
    中、1つ又は複数の前記画素位置に対して1つ又は複数
    の前記塗りつぶし指令に応答して、塗りつぶし指令の数
    及び前記塗りつぶし指令のパラメータに従って決まる数
    の1つ又は複数の、各々が1つの画素色成分を有する画
    素を生成し、且つ1つ又は複数の前記画素を1つ又は複
    数の前記カラー出力チャネルから同時に出力することを
    特徴とする装置。
  21. 【請求項21】 デジタル画像の画素を処理する方法で
    あって、 複数のカラー出力チャネルを有する画像処理装置を第1
    の動作モード又は第2の動作モードで動作するように構
    成する工程と、 前記第1の動作モード中、1つ又は複数の塗りつぶし指
    令を生成する工程と、 前記第1の動作モード中、1つの画素位置に対して1つ
    又は複数の対応する前記塗りつぶし指令に応答して、各
    々が1つ又は複数の画素色成分を有する1つ又は複数の
    カラー画素を生成する工程と、 前記第1の動作モード中、生成された各画素の前記1つ
    又は複数の画素色成分を対応する前記カラー出力チャネ
    ルから出力することにより、前記生成された画素を一度
    に1つ出力する工程と、 前記第2の動作モード中、塗りつぶし指令が適用される
    ラスタ順の連続する画素位置の数であって、1から前記
    カラー出力チャネルの数に等しい最大数まで変化できる
    数を指示するパラメータをそれぞれ含む1つ又は複数の
    塗りつぶし指令を生成する工程と、 前記第2の動作モード中、1つ又は複数の前記画素位置
    に対して1つ又は複数の前記塗りつぶし指令に応答し
    て、塗りつぶし指令の数及び前記塗りつぶし指令のパラ
    メータに従って決まる数の、各々が1つの画素色成分を
    有する1つ又は複数の画素を生成する工程と、 前記第2の動作モード中、1つ又は複数の前記画素を対
    応する1つ又は複数の前記カラー出力チャネルから同時
    に出力する工程とを備えることを特徴とする方法。
  22. 【請求項22】 前記方法は、 前記第2の処理モード中、先の前記塗りつぶし指令が適
    用されたラスタ順の連続する画素の数を指示するパラメ
    ータを含む反復指令を生成する工程を更に含むことを特
    徴とする請求項21記載の方法。
  23. 【請求項23】 前記1つの画素色成分はグレイスケー
    ル成分であることを特徴とする請求項21記載の方法。
  24. 【請求項24】 前記1つ又は複数の画素色成分は赤色
    成分、緑色成分及び青色成分であることを特徴とする請
    求項21記載の方法。
  25. 【請求項25】 前記1つ又は複数の画素色成分は不透
    明度成分を更に含むことを特徴とする請求項24記載の
    方法。
  26. 【請求項26】 デジタル画像の画素を処理する装置に
    おいて、 画像処理装置を第1の動作モード又は第2の動作モード
    で動作するように構成するホストプロセッサを具備し、
    前記画像処理装置は、 前記第1の動作モード中、対応する画素位置に対して1
    つ又は複数の塗りつぶし指令を生成する優先順位モジュ
    ールと、 前記第1の動作モード中、前記画素位置に対して1つ又
    は複数の対応する前記塗りつぶし指令に応答して、1つ
    又は複数のカラー画素を生成し、且つ生成された各画素
    の1つ又は複数の画素色成分を対応する前記カラー出力
    チャネルから出力することにより、前記生成された画素
    を一度に1つ出力する塗りつぶしモジュールとを具備
    し、 前記優先順位モジュールは、前記第2の動作モード中、
    塗りつぶし指令が適用されるラスタ順の連続する画素位
    置の数であって、1から前記カラー出力チャネルの数に
    等しい最大数まで変化できる数を指示するパラメータを
    それぞれ含む1つ又は複数の塗りつぶし指令を生成し、
    且つ前記塗りつぶしモジュールは、前記第2の動作モー
    ド中、1つ又は複数の前記画素位置に対して1つ又は複
    数の前記塗りつぶし指令に応答して、塗りつぶし指令の
    数及び前記塗りつぶし指令のパラメータに従って決まる
    数の1つ又は複数の画素を生成し、且つ1つ又は複数の
    前記生成された画素を対応する1つ又は複数の前記カラ
    ー出力チャネルから同時に出力することを特徴とする装
    置。
  27. 【請求項27】 デジタル画像の画素を生成するための
    指令を生成する方法において、 前記第1の動作モード中、1つの画素位置に対して1つ
    又は複数の塗りつぶし指令を生成する工程と、 前記第2の動作モード中、塗りつぶし指令が適用される
    ラスタ順の連続する画素位置の数であって、1から前記
    カラー出力チャネルの数に等しい最大数まで変化できる
    数を指示するパラメータをそれぞれ含む1つ又は複数の
    塗りつぶし指令を生成する工程とを備えることを特徴と
    する方法。
  28. 【請求項28】 デジタル画像の画素を生成するための
    指令を生成する装置において、 前記第1の動作モード中、1つの画素位置に対して1つ
    又は複数の塗りつぶし指令を生成し、且つ前記第2の動
    作モード中、塗りつぶし指令が適用されるラスタ順の連
    続する画素位置の数であって、1から前記カラー出力チ
    ャネルの数に等しい最大数まで変化できる数を指示する
    パラメータをそれぞれ含む1つ又は複数の塗りつぶし指
    令を生成する発生器を具備することを特徴とする装置。
  29. 【請求項29】 デジタル画像の画素を生成するための
    指令を生成するためのコンピュータプログラムを具備す
    るコンピュータ読み取り可能な媒体であって、前記コン
    ピュータプログラムは、 前記第1の動作モード中、1つの画素位置に対して1つ
    又は複数の塗りつぶし指令を生成し、且つ前記第2の動
    作モード中、塗りつぶし指令が適用されるラスタ順の連
    続する画素位置の数であって、1から前記カラー出力チ
    ャネルの数に等しい最大数まで変化できる数を指示する
    パラメータをそれぞれ含む1つ又は複数の塗りつぶし指
    令を生成するためのコードを具備することを特徴とする
    コンピュータ読み取り可能な媒体。
JP2001148269A 2000-05-17 2001-05-17 デジタル画像の画像処理装置 Expired - Fee Related JP4646436B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU7580 1991-08-02
AUPQ7580A AUPQ758000A0 (en) 2000-05-17 2000-05-17 Processing pixels of a digital image

Publications (3)

Publication Number Publication Date
JP2002063583A true JP2002063583A (ja) 2002-02-28
JP2002063583A5 JP2002063583A5 (ja) 2008-07-03
JP4646436B2 JP4646436B2 (ja) 2011-03-09

Family

ID=3821658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001148269A Expired - Fee Related JP4646436B2 (ja) 2000-05-17 2001-05-17 デジタル画像の画像処理装置

Country Status (3)

Country Link
US (1) US6795048B2 (ja)
JP (1) JP4646436B2 (ja)
AU (1) AUPQ758000A0 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7286142B2 (en) 2002-03-25 2007-10-23 Canon Kabushiki Kaisha System and method for optimising halftoning printer performance

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891536B2 (en) * 2001-11-30 2005-05-10 Canon Kabushiki Kaisha Method of determining active priorities
US7755629B2 (en) * 2004-06-30 2010-07-13 Canon Kabushiki Kaisha Method of rendering graphic objects
US7230560B2 (en) * 2005-08-05 2007-06-12 Microsoft Corporation Image compression and decompression
US20070085860A1 (en) * 2005-10-13 2007-04-19 Honeywell International Inc. Technique for improving the readability of graphics on a display
US20090096792A1 (en) * 2007-10-15 2009-04-16 Ati Technologies Ulc Fill mode determination in vector graphics
US8595689B2 (en) 2008-12-24 2013-11-26 Flir Systems Ab Executable code in digital image files
US8749572B2 (en) * 2010-05-28 2014-06-10 Adobe Systems Incorporated System and method for simulation of brush-based painting in a color space that includes a fill channel
US8988461B1 (en) 2011-01-18 2015-03-24 Disney Enterprises, Inc. 3D drawing and painting system with a 3D scalar field
US9142056B1 (en) * 2011-05-18 2015-09-22 Disney Enterprises, Inc. Mixed-order compositing for images having three-dimensional painting effects
JP7332367B2 (ja) 2019-07-10 2023-08-23 キヤノン株式会社 画像処理装置、及び画像処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652323A (ja) * 1992-07-31 1994-02-25 Canon Inc 画像処理方法及び装置
JPH07105388A (ja) * 1993-06-23 1995-04-21 Sun Microsyst Inc 高性能3次元グラフィック・アクセラレータの作図プロセッサ
JPH09507310A (ja) * 1994-01-04 1997-07-22 ハネウエル・インコーポレーテッド ラスタ・エンハンスメント機構を備えた再構成可能なビデオ出力アーキテクチャ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097518A (en) * 1990-02-27 1992-03-17 Eastman Kodak Company Technique for performing digital image scaling by logically combining or replicating pixels in blocks of differing groupsizes
US5237655A (en) * 1990-07-05 1993-08-17 Eastman Kodak Company Raster image processor for all points addressable printer
DE69509953T2 (de) * 1994-03-11 1999-10-28 Canon Kk Dynamische Verfeinerung der Pixelstruktur in einer Anzeige

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652323A (ja) * 1992-07-31 1994-02-25 Canon Inc 画像処理方法及び装置
JPH07105388A (ja) * 1993-06-23 1995-04-21 Sun Microsyst Inc 高性能3次元グラフィック・アクセラレータの作図プロセッサ
JPH09507310A (ja) * 1994-01-04 1997-07-22 ハネウエル・インコーポレーテッド ラスタ・エンハンスメント機構を備えた再構成可能なビデオ出力アーキテクチャ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7286142B2 (en) 2002-03-25 2007-10-23 Canon Kabushiki Kaisha System and method for optimising halftoning printer performance
US7477265B2 (en) 2002-03-25 2009-01-13 Canon Kabushiki Kaisha System and method for optimising halftoning printer performance

Also Published As

Publication number Publication date
AUPQ758000A0 (en) 2000-06-08
US20020175925A1 (en) 2002-11-28
JP4646436B2 (ja) 2011-03-09
US6795048B2 (en) 2004-09-21

Similar Documents

Publication Publication Date Title
JP3618838B2 (ja) 画像出力方法
EP1577838B1 (en) A method of rendering graphical objects
US20100315431A1 (en) Combining overlapping objects
EP0694880B1 (en) Optimization method for the efficient production of images
JP2000149035A (ja) 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置
JP2004318832A (ja) 画素順次描画システムにおいて実行される合成演算回数の削減法
JP3618839B2 (ja) 画像出力方法
US8723884B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
JP2000137825A (ja) ラスタ形式のグラフィックオブジェクトを用いたイメ―ジの高速レンダリング方法
US20050122337A1 (en) Tree-based compositing system
JP2002063583A (ja) デジタル画像の画素処理装置及び方法
US6456298B1 (en) Image processing apparatus and method
JP4370438B2 (ja) ベクター画像描画装置、ベクター画像描画方法およびプログラム
JP7009316B2 (ja) 画像形成装置及びその画像形成方法、並びにプログラム
US6091418A (en) Printer with procedure for pattern tiling and scaling
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
CN107203354B (zh) 图像处理设备及其控制方法
JP3085036B2 (ja) 画像出力装置
JP2008107970A (ja) 画像形成装置
JP2004334533A (ja) 画像処理装置および画像処理方法
AU770175B2 (en) Processing pixels of a digital image
JP2006031160A (ja) グラフィックオブジェクト処理方法
JP2009075805A (ja) 画像形成装置
JPH09300769A (ja) 印刷装置及びデータ登録方法及び制御プログラムを記憶した記憶媒体
JP4533019B2 (ja) グラフィックオブジェクト処理装置及びグラフィックオブジェクト処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100916

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

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

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees