(57)【特許請求の範囲】
【請求項１】
受取手段と、変換手段と、混合手段とを備えたグラフィカルオブジェクトを処理するためのシステムにおいて、ピクセルの複数の線を含む表示として、イメージをレンダリングするための方法であって、以下を含む：
前記受取手段が、表示されるオブジェクト（１００）のストリームを受け取り、それぞれのオブジェクトは形状（１０２）および塗りつぶし値（１０４）を含み；
前記変換手段が、それぞれのオブジェクトのために、形状の内側のピクセルを表わす第１の状態および形状の外側のピクセルを表わす第２の状態を含む表示のピクセルのために、少なくとも２つの可能な状態のうちの１つを有する符号化された走査データの複数の線にオブジェクトの形状を変換し；
前記混合手段が、符号化された走査データの複数の線の各々と塗りつぶし値を、表示のためフレームの線に混合し；以下の特徴を含む：
符号化された走査データの複数の線にオブジェクトの形状を変換し、前記符号化された走査データは以下を含む：
ａ．  サブピクセルマトリックスとして表示のそれぞれのピクセルを表わし、サブピクセルマトリックスはピクセルを覆う１以上のサブピクセル領域を含み、
ｂ．  サブピクセルマトリックスでのそれぞれの水平上の行のために、オブジェクトの形状とサブピクセルマトリックス間のそれぞれの交点の座標を含む交差データを生成し、
ｃ．  形状内にある「オン」のサブピクセル、又は形状外にある「オフ」のサブピクセルの群を抽出するために、ザブピクセルマトリックスのそれぞれの行のための前記交差データを処理し、および、表示のそれぞれの線のために以下を含む：
ｄ．  形状の内側にあり、前記第１の状態に関連付けられたピクセルの群と、形状の外側にあり、前記第２の状態に関連付けられたピクセルの群と、部分的に形状の内側にあり部分的に形状の外側にあるため形状の端にあり第３の状態に関連付けられた移り変りのピクセルの群とを同定するために、抽出されたサブピクセルの群を解析し、
ｅ．  それぞれの移り変りのピクセルのために、形状の内側にある移り変りのピクセルの部分に対応するグレイスケール値を生成すべく、移り変りのピクセルとして同定されたそれらのピクセルをさらに処理し、
ｆ．  前記それぞれの状態にあるピクセルの群の長さ、及び第３の状態の移り変りのピクセルのための、及び関連付けられたグレイスケール値を含む符号化された走査データの線を生成し、
形状は複数のセグメントを含むパス（１０８）を含み、
１以上の複数の曲線または非線形のパスのセグメントを、複数の直線のセグメントに変換する。
【請求項２】
請求項１に記載の方法であって、移り変りのピクセルのためのグレイスケール値は、複数のサブピクセル領域の内のどれが形状の内側にあるものかについて決定して、複数のサブピクセル領域と、複数のピクセル領域の内の形状の内側にあるものとの比率を決定することによって計算されることを特徴とするイメージレンダリングのための方法。
【請求項３】
請求項１または請求項２のいずれか１項に記載の方法であって、前記パスセグメントはパスセグメントのストロークの属性を定義するパラメータを含むことを特徴とするイメージレンダリングのための方法。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の方法であって、フレームは、ビデオメモリまたは表示装置のうちの少なくとも１つを含むことを特徴とするイメージレンダリングのための方法。
【請求項５】
請求項１ないし請求項４のいずれか１項に記載の方法であって、フレームは、非ビデオメモリまたは出力ビットマップフォーマットバッファのうちの少なくとも１つに対応することを特徴とするイメージレンダリングのための方法。
【請求項６】
請求項１ないし請求項５のいずれか１項に記載の方法であって、キャッシュ内に切落しマスクとして符号化された走査データの複数の線を記憶（５１４）することをさらに含むことを特徴とするイメージレンダリングのための方法。
【請求項７】
請求項６に記載の方法であって、形状によって切落しマスクに指標を付けることをさらに含むことを特徴とするイメージレンダリングのための方法。
【請求項８】
請求項６または請求項７に記載の方法であって、混合することは、切落しマスクを入手し、かつ切落しマスクに関連付けられた符号化された走査データを混合することを特徴とする方法。
【請求項９】
請求項１ないし請求項８のいずれか１項に記載の方法であって、表示されるオブジェクトは透明度（１０６）を含み、混合は、符号化された走査データの複数の線と表示のためのフレームの線の透明度を各々混合することをさらに含むことを特徴とするイメージレンダリングのための方法。
【請求項１０】
請求項１ないし請求項９のいずれか１項に記載の方法であって、表示されるオブジェクトは透明度（１０６）を含み、透明度はビット深さ修正、トーン修正、スケーリング、圧縮解除、または復号化の少なくとも一つによって前処理されることを特徴とするイメージレンダリングのための方法。
【請求項１１】
請求項１０に記載の方法であって、透明度は、形状のための透明度値のビットマップへのポインタを含むことを特徴とするイメージレンダリングのための方法。
【請求項１２】
請求項１ないし請求項１１のいずれか１項に記載の方法であって、塗りつぶし値（１０４）は、色（１１６）、テクスチャまたはビットマップ（１１８）のうちの少なくとも１つを含むことを特徴とするイメージレンダリングのための方法。
【請求項１３】
請求項１ないし請求項１２のいずれか１項に記載の方法であって，前記形状は、形状を表現する符号化された走査データの複数の線を含む切落しマスク（１１４）を含むことを特徴とするイメージレンダリングのための方法。
【請求項１４】
請求項１ないし請求項１３のいずれか１項に記載の方法であって、形状内及び形状外を決定するためのアルゴリズムを適用することをさらに含むことを特徴とするイメージレンダリングのための方法。
【請求項１５】
請求項１４に記載の方法であって、アルゴリズムを適用することはワインディングルールを適用することを含むことを特徴とするイメージレンダリングのための方法。
【請求項１６】
請求項１ないし請求項１５のいずれか１項に記載の方法であって、レンダーされたカラーイメージの端を無色にエイリアス除去するのに適合し、表示されるオブジェクトの塗りつぶし値（１０４）は、１つ以上の色（１１６、１１８）を含み、移り変りのピクセルのためのグレイスケール値とピクセルの前の値のピクセルに対応する塗りつぶし値（１０４）とを混合することを含むことを特徴とするイメージレンダリングのための方法。
【請求項１７】
請求項１ないし請求項１６のいずれか１項に記載の方法であって、移り変りのピクセルのためのグレイスケール値をランレングス符号化することをさらに含むことを特徴とするイメージレンダリングのための方法。
【請求項１８】
請求項１ないし請求項１７のいずれか１項に記載の方法であって、サブピクセルマトリックスの１以上の次元は平滑性値により制御されることを特徴とするイメージレンダリングのための方法。
【請求項１９】
請求項１ないし請求項１８のいずれか１項に記載の方法であって、オブジェクトの端を滑らかにするのに適合し、オブジェクトの形状はオブジェクトのアウトラインを描くパス（１０８）を含み、パスは内側と外側を有し、
パスと交差する複数のピクセルの各々一つのために、パスの内側の一つのピクセルの部分を表わすグレイスケール値を得るためにピクセルの一つを過サンプリングし、および、
複数のピクセルをピクセル配列に格納されたデータと混合することを含むことを特徴とするイメージレンダリングのための方法。
【請求項２０】
請求項１ないし請求項１９のいずれか１項に記載の方法であって、それぞれのオブジェクトはさらにバウンディングボックス（１０１）を含み、前記バウンディングボックスはオブジェクトがレンダーされるべき範囲を示すことを特徴とするイメージレンダリングのための方法。
【請求項２１】
請求項２０に記載の方法であって、オブジェクトが表示範囲内となったときの決定をするために、表示の境界線を定義するパラメータを持つオブジェクトのバウンディングボックスを交差することによって、さらにオブジェクトを前処理することを含むことを特徴とするイメージレンダリングのための方法。
【請求項２２】
請求項２１に記載の方法であって、オブジェクトのバウンディングボックスと表示間がヌルの交差を持つオブジェクトの前処理は、それ以上処理されないことを特徴とするイメージレンダリングのための方法。
【請求項２３】
請求項１ないし請求項２２のいずれか１項に記載の方法であって、符号化された走査データの複数の線のそれぞれ及び塗りつぶし値を、表示のためフレームのラインに混合し、重み付けの要素を持つ塗りつぶし値（１０４）を重み付けすることによって、かつ補足的な要素を持つ前のピクセルの値の重み付けを解除することによって、ピクセルの前の値と共にピクセルに対応する塗りつぶし値（１０４）を混合し、前記重み付けの要素は内側のピクセルのために単一体に設定され、外側のピクセルのために０に設定され、移り変りのピクセルのためにグレイスケール値と等しく設定されることを特徴とするイメージレンダリングのための方法。
【請求項２４】
請求項２３に記載の方法であって、表示されるオブジェクトは透明度（１０６）を含み、混合はさらに透明度によって重み付けされることを特徴とするイメージレンダリングのための方法。
【請求項２５】
請求項１ないし請求項２４のいずれか１項に記載の方法であって、交差データは、それぞれのサブピクセルマトリックスの行のために、形状が行を横切る上または下の方向と共に、オブジェクトの形状とサブピクセルの行間のそれぞれの交差のＸ座標をさらに含むイメージレンダリングのための方法。
【請求項２６】
ピクセルの複数の線を含む表示として、イメージをレンダリングするためのグラフィカルオブジェクトを処理するためのシステムであって、以下を含む：
表示されるオブジェクト（１００）のストリームを受けるための受取手段（２０２、２０４、２０６）を含み、それぞれのオブジェクトは形状（１０２）、塗りつぶし値（１０４）、アルファ（１０６）を含み；
それぞれのオブジェクトの形状を形状の内側のピクセルを表わす第１状態と形状の外側のピクセルを表わす第２状態を含む表示のピクセルのための少なくとも２つの可能な状態のうちの１つを有する符号化された走査データの複数の線に変換（２２０、５１２）するための変換手段（２２０、２２２、２２４）を含み；
符号化された走査データの複数の線のそれぞれ、塗りつぶし値、およびアルファとを、表示のためフレームの線に混合するための混合手段（２２６）を含み；以下の特徴を含む：
前記変換手段は以下に適合する：
ａ．  サブピクセルマトリックスとして表示のそれぞれのピクセルを表わし、サブピクセルマトリックスはピクセルを覆う１以上のサブピクセル領域を含み、
ｂ．  サブピクセルマトリックスでのそれぞれの水平上の行のために、オブジェクトの形状とサブピクセルマトリックス間のそれぞれの交点の座標を含む交差データを生成し、
ｃ．  形状内にある「オン」のサブピクセル、又は形状外にある「オフ」のサブピクセルの群を抽出するために、ザブピクセルマトリックスのそれぞれの行のための前記交差データを処理し、および、表示のそれぞれの線のために以下を含む：
ｄ．  形状の内側にあり、前記第１の状態に関連付けられたピクセルの群と、形状の外側にあり、前記第２の状態に関連付けられたピクセルの群と、部分的に形状の内側にあり部分的に形状の外側にあるため形状の端にあり第３の状態に関連付けられた移り変りのピクセルの群とを同定するために、抽出されたサブピクセルの群を解析し、
ｅ．  それぞれの移り変りのピクセルのために、形状の内側にある移り変りのピクセルの部分に対応するグレイスケール値を生成すべく、移り変りのピクセルとして同定されたそれらのピクセルをさらに処理し、
ｆ．  前記それぞれの状態にあるピクセルの群の長さ、及び第３の状態の移り変りのピクセルのための、及び関連付けられたグレイスケール値を含む符号化された走査データの線を生成し、
形状は複数のセグメントを含むパス（１０８）を含み、
１以上の複数の曲線または非線形のパスのセグメントを、複数の直線のセグメントに変換する。
【請求項２７】
請求項２６に記載のシステムであって、フレームは、ディスプレイ、プリンタ、ファイル、またはネットワークポートの少なくとも一つに対応することを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項２８】
請求項２６または請求項２７に記載のシステムであって、オブジェクトは背景塗りつぶし値または置換え塗りつぶし値の少なくとも一つを含み、背景塗りつぶし値または置換え塗りつぶし値の少なくとも一つをフレームの線に混合する混合手段を含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項２９】
請求項２６ないし請求項２８のいずれか１項に記載のシステムであって、前記受取手段、前記変換手段、及び前記混合手段はプロセッサとメモリを含み、前記プロセッサは符号化された走査データ、塗りつぶし値、およびアルファをピクセルデータの線と結合させるために構成され、および、
ピクセルデータの線を記憶するメモリを含み、およびメモリはプロセッサにピクセルデータの線を供給するように適合され、およびメモリはピクセルデータの線が符号化された走査データ、塗りつぶし値、および透明性に組み合わされたとき、生成されるピクセルデータの新しい線を記憶するように適合されていることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３０】
請求項２９に記載のシステムであって、メモリを表示するために構成されたディスプレイを含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３１】
請求項２９または請求項３０に記載のシステムであって、プロセッサは、マイクロプロセッサ、マイクロコントローラ、組込み型マイクロコントローラ、プログラム可能なデジタル信号プロセッサ、専用集積回路、プログラム可能なゲートアレイ、またはプログラム可能なアレイロジックのうちの１以上をさらに含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３２】
請求項２９ないし請求項３１のいずれか１項に記載のシステムであって、メモリ内に記憶されたピクセルデータの線を印刷するために構成されたプリンタ、メモリ内に記憶されたピクセルデータの線を記憶するために構成された記憶装置、メモリ内に記憶されたピクセルデータの線を出力するために構成されたネットワーク機器のうちの少なくとも１以上をさらに含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３３】
請求項２９ないし請求項３２のいずれか１項に記載のシステムであって、プロセッサは、チップ、チップセット、またはダイのうちの少なくとも一つであることを特徴するグラフィカルオブジェクトを処理するためのシステム。
【請求項３４】
請求項２９ないし請求項３２のいずれか１項に記載のシステムであって、プロセッサおよびメモリはチップ、チップセット、またはダイのうちの少なくとも一つであることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３５】
請求項３０または請求項３０に従属するときの請求項３１ないし請求項３４のいずれか１項に記載のシステムであって、表示は、電子編成機、パームトップ（Palm-top）コンピュータ、ハンドヘルドゲーム機器、ウェブ化可能な携帯電話、パーソナルデジタルアシスタント、改良された電話、シンクライアント、またはセットトップボックスのうちの少なくとも一つの表示とすることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３６】
請求項３０または請求項３０に従属するときの請求項３１ないし請求項３４のいずれか１項に記載のシステムであって、表示はプリンタまたはプロッタのうちの少なくとも一つであることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３７】
請求項３０または請求項３０に従属するときの請求項３１ないし請求項３４のいずれか１項に記載のシステムであって、表示はドキュメントマネージメントシステム内で使用されることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３８】
請求項３０または請求項３０に従属するときの請求項３１ないし請求項３４のいずれか１項に記載のシステムであって、ドキュメントマネージメントシステムのファックス機、フォトコピー機、またはプリンタのうちの少なくとも一つで使用されることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項３９】
請求項３０または請求項３０に従属するときの請求項３１ないし請求項３４のいずれか１項に記載のシステムであって、表示は車内システム内で使用されることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４０】
請求項３０または請求項３０に従属するときの請求項３１ないし請求項３４のいずれか１項に記載のシステムであって、表示はオーディオプレーヤ、電子レンジ、冷蔵庫、洗濯機、衣服乾燥機、オーブン、または皿洗い機のうちの少なくとも一つで使用されることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４１】
請求項２９ないし請求項４０のいずれか１項に記載のシステムであって、プロセッサは複数のグラフィカルオブジェクトを受け、並列の複数のグラフィカルオブジェクトを処理することを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４２】
請求項２６ないし請求項２８のいずれか１項に記載のシステムであって、
前記受取手段は前記オブジェクトの前記ストリームを受け取るための入力機構を含み、
前記変換手段と混合手段は、ピクセル配列を作成するためのオブジェクトの基準によってオブジェクト上のオブジェクトのストリームを処理するオブジェクトプロセッサを含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４３】
請求項４２に記載のシステムであって、それぞれのオブジェクトの形状がパスを含み、オブジェクトプロセッサが、イメージのアウトラインを表現するピクセル配列を作成するために前記パスを処理することを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４４】
請求項４３に記載のシステムであって、オブジェクトプロセッサはパスの端をエイリアス除去することを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４５】
請求項４３または請求項４４に記載のシステムであって、オブジェクトプロセッサはイメージのアウトラインを符号化することを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４６】
請求項４２ないし請求項４５のいずれか１項に記載のシステムであって、それぞれのオブジェクトがバウンディングボックス（１０１）をさらに含み、前記バウンディングボックスはオブジェクトがレンダーされるべき範囲をオブジェクトプロセッサに示すことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４７】
請求項４２ないし請求項４６のいずれか１項に記載のシステムであって、オブジェクトプロセッサは滑らかにする要素（２１０）を受け取り、前記滑らかにする要素は、ピクセル配列に関連するオブジェクトの過サンプリングの量を指定することを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４８】
請求項４２ないし請求項４７のいずれか１項に記載のシステムであって、それぞれのオブジェクトのアルファ（１０６）は透明度値及び形状のための透明度値のビットマップへのポインタを含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項４９】
請求項４２ないし請求項４８のいずれか１項に記載のシステムであって、それぞれのオブジェクトの塗りつぶし値（１０４）には、色（１１６）、テクスチャまたはビットマップ（１１８）のうちの少なくとも１つを含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５０】
請求項４４または請求項４４に従属するときの請求項４５ないし請求項４９のいずれか１項に記載のシステムであって、エイリアス除去された端は、グレイスケール値として表示されることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５１】
請求項５０に記載のシステムであって、トーン応答曲線は、エイリアス除去された端のグレイスケール値に適用されることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５２】
請求項４２ないし請求項５１のいずれか１項に記載のシステムであって、ピクセル配列は、スクリーン、プリンタ、ネットワークポートまたはファイルのうちの少なくとも１つに送られることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５３】
請求項４２ないし請求項５２のいずれか１項に記載のシステムであって、パラメータのうちの１つは、前処理された形状データであることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５４】
請求項５３に記載のシステムであって、前処理された形状データは、形状を表現する符号化された走査データの複数の線を含む切落しマスクを含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５５】
請求項５３または請求項５４に記載のシステムであって、前処理された形状データは、透明度を含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５６】
請求項５３ないし請求項５５のいずれか１項に記載のシステムであって、前処理された形状データは、塗りつぶし値を含むことを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５７】
請求項４２ないし請求項５６のいずれか１項に記載のシステムであって、中間処理データをキャッシュに記憶することをさらに含み、中間処理データは、形状を表現する符号化された走査データの複数の線を含む切落しマスク、塗りつぶし値、または透明度のうちの少なくとも１つを含んでいることを特徴とするグラフィカルオブジェクトを処理するためのシステム。
【請求項５８】
ピクセルの複数の線を含む表示として、イメージをレンダリングするためのグラフィカルオブジェクトを処理するためのコンピュータプログラムであって、以下を含む：
ピクセルの複数の線を含む表示として、イメージをレンダリングするために、コンピュータに以下の処理を実行させる：
受取手段として、表示されるオブジェクト（１００）のストリームを受け取り、それぞれのオブジェクトは形状（１０２）、塗りつぶし値（１０４）、およびアルファ（１０６）を含み；
変換手段として、それぞれのオブジェクトのために、形状の内側のピクセルを表わす第１の状態と形状の外側のピクセルを表わす第２の状態を含む表示のピクセルのための少なくとも２つの可能な状態のうちの１つを有する符号化された走査データの複数の線にオブジェクトの形状を変換し；
混合手段として、符号化された走査データの複数の線のそれぞれ、塗りつぶし値、およびアルファを、表示のためフレームの線に混合し；以下の特徴を含む：
符号化された走査データの複数の線にオブジェクトの形状を変換し、前記符号化された走査データは以下を含む：
ａ．  サブピクセルマトリックスとして表示のそれぞれのピクセルを表わし、サブピクセルマトリックスはピクセルを覆う１以上のサブピクセル領域を含み、
ｂ．  サブピクセルマトリックスでのそれぞれの水平上の行のために、オブジェクトの形状とサブピクセルマトリックス間のそれぞれの交点の座標を含む交差データを生成し、
ｃ．  形状内にある「オン」のサブピクセル、又は形状外にある「オフ」のサブピクセルの群を抽出するために、ザブピクセルマトリックスのそれぞれの行のための前記交差データを処理し、および、表示のそれぞれの線のために以下を含む：
ｄ．  形状の内側にあり、前記第１の状態に関連付けられたピクセルの群と、形状の外側にあり、前記第２の状態に関連付けられたピクセルの群と、部分的に形状の内側にあり部分的に形状の外側にあるため形状の端にあり第３の状態に関連付けられた移り変りのピクセルの群とを同定するために、抽出されたサブピクセルの群を解析し、
ｅ．  それぞれの移り変りのピクセルのために、形状の内側にある移り変りのピクセルの部分に対応するグレイスケール値を生成すべく、移り変りのピクセルとして同定されたそれらのピクセルをさらに処理し、
ｆ．  前記それぞれの状態にあるピクセルの群の長さ、及び第３の状態の移り変りのピクセルのための、及び関連付けられたグレイスケール値を含む符号化された走査データの線を生成し、
形状は複数のセグメントを含むパス（１０８）を含み、
１以上の複数の曲線または非線形のパスのセグメントを、複数の直線のセグメントに変換する。
【請求項５９】
請求項５８に記載のコンピュータプログラムであって、表示がディスプレイ、プリンタ、ファイル、またはネットワークポートの少なくとも一つに対応することを特徴とするグラフィカルオブジェクトを処理するためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
抽象的な形状のグラフィカルレンダリングは、形状記述データの実質的な処理を必要とする。形状処理のための周知の方法は、例えば、Ｊａｖａ  ２Ｄ  ＡＰＩで見つけられることができ、そして、それは二次元のベクトルグラフィカルスを処理するソフトウェアツールを提供する。しかし、特に表示装置を含む組込み型システムで、処理資源を節約するために計算量を減らす形状処理エンジンの必要は残る。
【０００２】
形状プロセッサは、所定のフォーマットを有するグラフィカルオブジェクトをフレームバッファまたは物理的表示に流すために使われるレンダリングモジュールである。形状プロセッサによりレンダーされるドキュメントは原始のグラフィカルオブジェクトに分解され、表示のためのオブジェクトを次々に構成する形状プロセッサに渡される。オブジェクトのためのピクセルデータがディスプレイまたはフレームバッファへ出力されるまで、形状プロセッサは各々のオブジェクトをグレイスケール値として都合良く処理する。
【０００３】
グラフィカルオブジェクトを処理するためのシステムは、オブジェクトの流れを受けるための入力機構を含み、各々のオブジェクトはイメージを定義する一組のパラメータを有し、ピクセル配列を生成するためにオブジェクト単位でオブジェクト上でオブジェクトの流れを処理するオブジェクトプロセッサを含む。
【０００４】
一組のパラメータのうちの１つはパスであってもよい。そして、オブジェクトプロセッサがイメージのアウトラインを表わすピクセル配列を生成するためにパスを処理する。オブジェクトプロセッサはパスの端をエイリアス除去することができる。オブジェクトプロセッサはイメージのアウトラインをランレングス符号化する。一組のパラメータのうちの１つはバウンディングボックスであり、バウンディングボックスはオブジェクトプロセッサにオブジェクトがレンダーされるべき範囲を示す。オブジェクトプロセッサは平滑性因子を受信することができ、平滑性因子がピクセル配列と関連したオブジェクトの過サンプリングの量を特定する。一組のパラメータのうちの１つは透明度であり、透明度は透明度値または形状のための透明度値のビットマップへのポインタであってもよい。
【０００５】
一組のパラメータのうちの１つは塗りつぶしであってもよく、塗りつぶしには、色、テクスチャまたはビットマップのうちの少なくとも１つを含む。エイリアス除去された端は、グレイスケール値として表示されることができる。トーン応答曲線は、エイリアス除去された端のグレイスケール値に適用されることができる。ピクセル配列は、スクリーン、プリンタ、ネットワークポートまたはファイルのうちの少なくとも１つに送られることができる。パラメータのうちの１つは、前処理された形状データであってもよい。前処理された形状データは、切落しマスクを含むことができる。前処理された形状データは、透明度を含むことができる。前処理された形状データは、塗りつぶしを含むことができる。この方法は、中間処理データをキャッシュに記憶することをさらに含むことができ、中間処理データは、切落しマスク、塗りつぶしまたは透明度のうちの少なくとも１つを含んでいる。
【０００６】
ここに記載されているイメージレンダリングのための方法は、表示されるオブジェクトを受信し、オブジェクトは形状および塗りつぶしを含み、形状の内側のピクセルを表わす第１の状態および形状の外側のピクセルを表わす第２の状態を含む表示のピクセルのために、少なくとも２つの可能な状態のうちの１つを有する符号化された走査データの複数の線にオブジェクトの形状を変換し、そして、走査データの符号化された複数の線の各々と塗りつぶしを、表示のためフレームのラインに混合することができる。
【０００７】
符号化された走査データは、形状の内側でピクセルの一部を表わしている表示のピクセルのための第３の可能な状態を含むことができる。形状は複数のセグメントを含むパスを含むことができる。この方法は、１以上の複数の曲げられたパスのセグメントを、複数の曲げられていないセグメントに変換することを含む。フレームは、非ビデオメモリまたは表示装置のうちの少なくとも１つを含むことができる。フレームは、ビデオメモリまたは出力ビットマップフォーマットバッファのうちの少なくとも１つに対応することができる。形状は、符号化された走査データの切落しマスクを含むことができる。第３の可能な状態のための値は、ピクセルを複数のサブピクセル領域に分割することによってピクセルのために算出されることができ、複数のサブピクセル領域の内のどれが形状の内側にあるものかについて決定して、複数のサブピクセル領域と、複数のピクセル領域のうちの形状の内側にあるものとの比率を決定する。この値はグレイスケール値として表示されることができる。
【０００８】
表示されるオブジェクトは透明度を含み、混合は、符号化された走査データの複数の線と表示のためのフレームの線の透明度を各々混合することをさらに含む。表示されるオブジェクトは透明度を含み、透明度はビット深さ修正、トーン修正、スケーリング、圧縮解除、または復号化の少なくとも一つによって前処理される。透明度は、形状のための透明度値のビットマップへのポインタを含むことができる。塗りつぶしは、色、テクスチャまたはビットマップのうちの少なくとも１つを含むことができる。この方法は、キャッシュ内に切落しマスクとして符号化された走査データの複数の線を記憶することを含むことができる。方法は、形状によって切落しマスクに指標を付けることを含むことができる。
【０００９】
ここの記載されたようなレンダーされたカラーイメージの端を無色にエイリアス除去する方法は表示されたオブジェクトを受けることを含み、オブジェクトには形状と塗りつぶしを含み、塗りつぶしには１以上の色を含み、サブピクセルマトリックスとして表示のピクセルを表わし、サブピクセルマトリックスはピクセルを覆う１以上のサブピクセル領域を含み、サブピクセルマトリックスで形状と交差し、サブピクセルマトリックスをピクセルのためのグレイスケール値に変換する。
【００１０】
この方法は、ピクセルと、ピクセルの前の値と共にピクセルに対応する塗りつぶしとを混合することを含む。この方法は、オブジェクトを受信することを繰り返すこと、ピクセルを表わすこと、形状と交差すること、サブピクセルマトリックスを変換すること、およびピクセルの走査線を混合することを含む。この方法は、ピクセルの走査線のためにグレイスケール値をランレングス符号化することを含む。サブピクセルマトリックスの１以上の次元は平滑性値により制御される。
【００１１】
ここに記載されたグラフィカルオブジェクトの端を滑らかにするための方法は、表示されるオブジェクトを受け、オブジェクトはオブジェクトのアウトラインを描くパスを含み、パスは内側と外側を有し、パスと交差する複数のピクセルの各々一つのために、パスの内側の一つのピクセルの部分を表わすグレイスケール値を得るためにピクセルの一つを過サンプリングし、および複数のピクセルをピクセル配列に格納されたデータと混合することを含む。
【００１２】
この方法は、複数のピクセルのうちの各々一つのために、グレイスケール値によってピクセルのために塗りつぶし値の重み付けをし、グレイスケール値によってビデオメモリ内に記憶されたデータの重み付けを解除することを含む。この方法は、複数のピクセルのうちの各々一つのために、透明度値によってピクセルのために塗りつぶし値の重み付けをし、透明度値によってピクセル配列内に格納されたデータの重み付けを解除する。
【００１３】
ここに記載されたようなグラフィカルオブジェクトを処理するためのシステムは、表示されるオブジェクトを受ける手段を含み、オブジェクトは形状、塗りつぶしおよびアルファを含み、オブジェクトの形状を形状の内側のピクセルを表わす第１状態と形状の外側のピクセルを表わす第２状態を含むピクセルのための少なくとも２つの可能な状態のうちの一つを有する符号化された走査データに変換する変換手段と、符号化された走査データ、塗りつぶし、およびアルファをフレームの線に混合する混合手段を含む。
【００１４】
符号化された走査データは、第３の可能な状態を含み、第３の可能な状態は形状の端の上であるピクセルを表わすグレイスケール値を含み、グレイスケール値は形状の内側であるピクセルの部分に対応する。フレームは、ディスプレイ、プリンタ、ファイル、またはネットワークポートの少なくとも一つに対応する。オブジェクトは背景塗りつぶしまたは置換え塗りつぶしの少なくとも一つを含み、背景塗りつぶしまたは置換え塗りつぶしの少なくとも一つをフレームの線に混合する混合手段を含む。
【００１５】
ここに記載されたようなグラフィカルオブジェクトを処理するためのコンピュータプログラムは、表示されるオブジェクトを受けるためのコンピュータが実行可能なコードを含み、オブジェクトは形状、塗りつぶし、およびアルファを含み、形状の内側のピクセルを表わす第１の状態と形状の外側のピクセルを表わす第２の状態を含むピクセル配列のピクセルのための少なくとも２つの可能な状態を有する符号化された走査データにオブジェクトの形状を変換するコンピュータが実行可能なコードと、および符号化された走査データ、塗りつぶし、およびアルファをピクセル配列のフレームの線に混合するコンピュータが実行可能なコードを含む。
【００１６】
ピクセル配列は、ディスプレイ、プリンタ、ファイル、またはネットワークポートの少なくとも一つに対応することができる。符号化された走査データは第３の可能な状態を有することができ、第３の可能な状態は形状の端の上であるピクセルを表わすグレイスケール値を含み、グレイスケール値は形状の内側であるピクセルの部分に対応する。
【００１７】
ここに記載されたようなグラフィカルオブジェクトを処理するためのシステムはプロセッサを含み、プロセッサは、形状、塗りつぶし、および透明性を含むグラフィカルオブジェクトを受け、表示の走査線のために内側のピクセル、外側のピクセル、および移り変りのピクセルに対応した符号化された走査データにグラフィカルオブジェクトの形状を変換し、各々の移り変りのピクセルは形状の内側のピクセルの部分に対応したグレイスケール値を含み、および符号化された走査データ、塗りつぶし、およびアルファをピクセルデータの線と結合させるために構成され、およびピクセルデータの線を記憶するメモリを含み、メモリはプロセッサにピクセルデータの線を供給するように適合され、およびメモリはピクセルデータの線が符号化された走査データ、塗りつぶし、および透明性に組み合わされたとき、生成されるピクセルデータの新しい線を記憶するように適合されている。
【００１８】
このシステムはメモリを表示するために構成されたディスプレイを含むことができる。プロセッサは、マイクロプロセッサ、マイクロコントローラ、組込み型マイクロコントローラ、プログラム可能なデジタル信号プロセッサ、専用集積回路、プログラム可能なゲートアレイ、またはプログラム可能なアレイロジックのうちの１以上とできる。このシステムは、メモリ内に記憶されたピクセルデータの線を印刷するために構成されたプリンタ、メモリ内に記憶されたピクセルデータの線を記憶するために構成された記憶装置、メモリ内に記憶されたピクセルデータの線を出力するために構成されたネットワーク機器のうちの少なくとも１以上とできる。プロセッサは、チップ、チップセット、またはダイのうちの少なくとも一つとできる。プロセッサおよびメモリはチップ、チップセット、またはダイのうちの少なくとも一つとすることができる。表示は、電子編成機、パームトップコンピュータ、ハンドヘルドゲーム機器、ウェブ化可能な携帯電話、パーソナルデジタルアシスタント、改良された電話、シンネットワーククライアント、またはセットトップボックスのうちの少なくとも一つの表示とできる。
【００１９】
表示はプリンタまたはプロッタのうちの少なくとも一つとすることができる。表示はドキュメントマネージメントシステム内で使用されることができる。表示は、ドキュメントマネージメントシステムのファックス機、フォトコピー機、またはプリンタのうちの少なくとも一つで使用されることができる。表示は車内システム内で使用されることができる。表示はオーディオプレーヤ、電子レンジ、冷蔵庫、洗濯機、衣服乾燥機、オーブン、または皿洗い機のうちの少なくとも一つで使用されることができる。プロセッサは複数のグラフィカルオブジェクトを受け、並列の複数のグラフィカルオブジェクトを処理することができる。
【００２０】
本発明の前述したおよびその他の目的および利点は、以下のそのさらなる記述から、添付の図面を参照して、より完全に評価される。
本発明の全体を理解するため、ある実例となる、空間フィルタリングおよびレンダーされたオブジェクトの端のトーン制御を行う２次元形状プロセッサを含む実施形態が記載される。しかし、ここに記載された方法とシステムは、３次元形状処理のようなその他のアプリケーションにも適当に適合し、全イメージエイリアス除去に組み合わされることができることがこの技術分野の通常の技術を有する者によって理解される。例えば、粗い全イメージエイリアス除去行程がオブジェクト端の細かいエイリアス除去に組み合わされることができる。この技術分野の通常の技術を有する者に明白な全てのそのような適合と修正は、ここに記載された本発明の範囲内となることを意味する。
【００２１】
図１は、形状プロセッサで用いられるグラフィカルオブジェクトのためのデータ構造を示す。グラフィカルオブジェクト１００または単にオブジェクト１００は、バウンディングボックス１０１、形状１０２、塗りつぶし１０４およびアルファ１０６を含むことができる。形状１０２は、ストローク１１０および塗りつぶし１１２のパラメータを有するパス１０８または切り落としマスク１１４を含むことができる。塗りつぶし１０４は、色１１６またはビットマップ１１８を含むことができる。アルファ１０６は、値１２０またはマスク１２２を含むことができる。
【００２２】
バウンディングボックス１０１は、そこにおいて、オブジェクト１００がレンダーされることになっていて、オブジェクトが描かれることになっている領域を定めることができる場所を含むことができる。例えば、このパラメータが、円形のパスを、四分割された円の内の１つに重ね合わせるバウンディングボックス１０１と組み合わせることによって弧のレンダリングを単純化するために使われることができる。
【００２３】
形状１０２は、ポストスクリプトスタイルパス記述を使用して接続される一連のパス要素を定めるパス１０８を含むことができる。その他のパス表現が公知であり、また、使われることもできる。パス１０８は、例えば、直線区分、方向を有するベジェ曲線、および２点または他のパス構造物によって制御される湾曲を含むことができる。パス１０８は、開かれていても、また閉ざされていても良い。より複雑なジオメトリを支援するために、パス１０８は自己交差または複数のばらばらにされた領域を含むことができる。パス１０８のためのストローク１１０は、例えば、円、斜角、または斜め継ぎ等の結合されてパス要素のためのレンダリングを明示する結合属性、および円、棒、正方形、三角形等のパス１０８の端のためのレンダリングを明示するキャップ属性を含む、パラメータまたは属性を含む。塗りつぶし１１２は、適切な領域が塗りつぶされるために、湾曲規則、またはその他のアルゴリズム、またはパス１０８の外側からパスｌ０８の内側を区別するためのパラメータを含むことができる。切り落しマスク１１４は、繰り返されているオブジェクトの冗長な処理を減らすために、グラフィカルオブジェクト１００の貯えられたレンダリングへのポインタを含む。
【００２４】
塗りつぶし１０４は一般に、形状１０２がどのように塗りつぶされるかに関して、情報を含むことができる。これは、例えば、８ビットパレットのようなパレット上に定義された色値である、または２４ビットＲＧＢ、１５ビットＲＧＢまたは３２ビットＣＭＹＫのような色に基づいた構成要素である色１１６を含み、また色１１６はグレースケール値でも良い。塗りつぶし１０４は、形状１０２を塗りつぶすために使用されるテクスチャのビットマップを含むビットマップ１１８を含むことができる。ビットマップ１１８は、その代わりに、形状１０２を塗りつぶすために使用されるビットマップへのポインタを含むことができる。この種のビットマップは、塗りつぶし１０４のために使用されるそれらのような、色モデルのいかなる種類にもおいて提供されることができる。
【００２５】
塗りつぶされ、および表示されるときに、アルファ１０６は一般に形状１０２の透明性に関する情報を含むことができる。アルファは、典型的には０（透明な）から１（不透明な）までの間で変動する、形状１０２全体のための透明度を記載している単一の値である値１２０を含むことができる。あるいは、アルファ１０６は、レンダーされた形状１０２の各々のピクセルのための値のアルファマスクまたはアルファマスクへのポインタであるマスク１２２を含むことができる。
【００２６】
上記のデータ構造の適切なアプリケーションそして改良は、この技術分野の技術者に明白である。特に、グラフィカルオブジェクト１００は、例えば、ポストスクリプト、Ｊａｖａ  ２Ｄ  ＡＰＩまたはＱｕａｒｔｚ、および例えばＭａｃ  ＯＳ  Ｘオペレーティングシステムで使われるＱｕｉｃｋＤｒａｗライブラリのようなレンダリング仕様に記載されたその他の特徴を含むことができる。
【００２７】
図２は、形状プロセッサの機能ブロック図である。通常、形状プロセッサ２００は、グラフィカルオブジェクトの流れを受けるための入力メカニズムを提供して、スクリーン上の表示のためのピクセル配列を生成するためにオブジェクト単位によって、オブジェクト上のオブジェクトの流れを処理するオブジェクトプロセッサを含む。形状プロセッサ２００は、例えば、図１を参照して上述されたグラフィカルオブジェクト１００の要素に相当する、パス２０２、バウンディングボックス２０３、塗りつぶし２０４およびアルファ２０６のような図２に示される形状によって記載されているグラフィカルオブジェクトを受ける。以下に記載されるように、形状プロセッサ２００は、パス２０２の代わりの切り落としマスク２３２を受けることができ、それは形状プロセッサ２００によって走査線ブレンダ２２６に直接渡される。
【００２８】
形状プロセッサ２００のための制御データは、スクリーンバウンディングボックス２０８、平滑性２１０、トーン応答曲線２１２、ビット深さ２１４、カラースペース２１６、およびスクリーンベースアドレス２１８を含むことができる。この制御データは、スクリーンベースアドレス２１８またはトーン応答曲線２１２等の表示に関する物理的なパラメータを格納することができる。トーン応答曲線２１２は、下記のように、表示装置の非線形性に従って、符号化走査データのグレイスケール値を調整することができる。例えば、全目盛りの５０％の強度値は、特定の装置のための６５％の１ピクセルの強度に結果としてなることができる。トーン応答曲線２１２は、ルックアップテーブルまたはその他のアルゴリズムまたはルックアップに基づいた幾つかの方法を使用しているこのような非線形性に適合できる。他の制御データは、ユーザ（またはプログラマ）によって特定されるパラメータと一致することができる。以下に記載されるように、例えば、端処理の細かさまたは細分性を格納する平滑性２１０は、各ディスプレイピクセル毎のサブ領域のＮ×Ｎマトリックスを記載している単数の値（または複数の値）とすることができる。
【００２９】
パス２０２は走査コンバータ２２０に提供され、それは交差２２１からのデータを使用して、交差データを交差バッファ２２２に供給する。交差プロセス２２４は交差データをさらに処理して、出力を他のグラフィカルオブジェクトデスクリプタと組合せ、ビデオメモリまたは物理的表示への出力を生成するためにデータを制御する走査線ブレンダ２２６に出力を供給する。形状プロセッサ２００によって生成される中間のデータは、パスバウンディングボックス２２８、単層化されたパス２３０および切落しマスク２３２を含むことができる。切落しマスク２３２または単層化されたパス２３０は、形状プロセッサ２００から独立して使われることができ、また有効な入力として再び提示されることができ、それによって、形状プロセッサ２００への繰り返された呼び出しの冗長性を減らす。他の中間のデータ（図示せず）は、出力のための形状プロセッサ２００によって発生することができ、例えば、交差したデータまたは塗りつぶしマップの圧縮解除のようなその他の前処理調整、カラースペース変換、修正、調整、およびスケーリングを含む。
【００３０】
走査線処理の前に、走査コンバータ２２０はパス２０２を前処理することができる。例えば、不必要な走査変換は、特定のデータを横切ること、および処理が必要かどうか決定することによって避けることができる。例えば、パス２０２のためのバウンディングボックス２０３およびスクリーンバウンディングボックス２０８は、交差２２１において交差されることができる。もし、交差２２１から出る出力がヌルなら、更なる処理は必要ではない。明確に図２に示されていないが、塗りつぶし２０４（それは、塗りつぶしデータから形状プロセッサ２００によって推定されることができる）のためのバウンディングボックスまたはアルファ２０６（それは、アルファデータから形状プロセッサ２００によって再び推定されることができる）のためのバウンディングボックスについての交差のようなその他の交差が得られる。もしセットされる交差がヌルなら、処理はパス２０２のために必要ではなく、次の連続したパス２０２は直ちに処理されることができる。上記したように、もし切落しマスク２３２が、パス２０２の代わりに形状として示される場合、切落しマスク２３２は走査線ブレンダ２２６に直接渡されることができ、よって、このように走査転換および他のパス処理ステップをバイパスする。例えば、切落しマスク２３２、塗りつぶしデータ、アルファデータ、単層化されたパスデータ等を含む、いかなる中間の処理データも、冗長な処理を避けるか減らすために、このような方法で格納されることができる。
【００３１】
走査コンバータ２２０は、パス２０２を目標表示装置の走査線についての交差に変換することができる。この機能は、平滑性２１０を用いて、アップサンプルベースで実行されることができる。すなわち、交差の位置を決める前に、ピクセルの各々の行は、パラメータとして平滑性２１０を用いて、サブピクセル領域またはサブピクセルマトリックスに分割されることができる。そのため、例えば、「２」の平滑性２１０は、スクリーンディスプレイの同じ領域を覆っているサブピクセル領域の２００の配列によって「２」として交差データを生成するために処理されている１００のピクセルの走査線に結果としてなることができる。「４」の平滑性２１０は、サブピクセル領域等の４００の配列によって「４」として交差データを生成するために処理されている同じ走査線に結果としてなることができる。
【００３２】
パス２０２は、そこでサブピクセル領域に適用されることができる。結果として生じる交差または交差データは、パスが水平軸を横切る方向（例えば、上または下の）に沿った各々の交差のＸ座標を含む一線一線に基づいて水平上に格納されることができる。他の表現が公知であり、また走査コンバータ２２０によって使われることができる。走査コンバータ２２０は、パスバウンディングボックス２２８を生成することができる。走査コンバータ２３０は、また、中間のステップとして単層化されたパス２３０を生成することができ、そこにおいて、ベジュ曲線等の連続、非線形のセグメントは、多くのまっすぐなパスセグメントに変換される。これは、パスと関連する動作の計算量を減らすことができる。交差データは、交差バッファ２２２に格納されることができる。
【００３３】
一般に、交差プロセス２２４は、サブピクセル領域の行を分析して、形状の内側であるピクセルおよび形状の外側にあるピクセル、およびその移り変りにあるピクセルの群を識別する。移り変りにあるピクセル、形状の端にあって形状を横切り、そのためそれらは部分的に形状の内側であり部分的に形状の外側であるものは、レンダリングに関連したギザギザまたはその他のアーティファクトを除去するかまたは減らすために滑らかにされることができる。この過サンプリング技術は、図３を参照して更に詳細に後述される。以下に記載されるように、内側のピクセル、外側のピクセル、および移り変りのピクセルが、ビデオメモリに混ぜ入れられる。
【００３４】
図３は、交差プロセス２２４までに実行される交差データ上の動作の実施例を表す。図３の例において、各々の走査線ピクセルのための４×４サブピクセルマトリックスに対応する値を有する平滑性２１０については、交差データは１００ピクセルの走査線に相当する。
【００３５】
チャート３０１は、図２の交差バッファ２２２から受け取られる交差データを示す。チャート３０１に示すように、交差データは、一般にパス２０２がパス２０２の方向と結びついたサブピクセル領域と交差するＸ座標を含むことができる。第１の行、行Ｎについて、パス２０２は上方への方向の第４０サブピクセルと交差する。同じ行で、パス２０２は下方への方向の第１４０のサブピクセルと交差する。交差データは、行Ｎ＋１〜Ｎ＋３についてもチャート３０１で明らかにされる。これが具体例であり、そして、そのより多くのまたはより少ない交差データがパス２０２の複雑さによって、サブピクセル領域の行のために提供されることが理解できる。
【００３６】
交差データは、ワィンディング規則または同様の方法によって、「オン」または「オフ」の群を抽出するために処理される。図３に示される例において、チャート３０１の交差データは、この例では、偶数／奇数ワィンディング規則のアプリケーションによりチャート３０２の符号化されたデータを生成するために、この方法で処理される。
【００３７】
チャート３０２で示すように、サブピクセルの各々の行についてのデータは、オン／オフフラグとオン／オフフラグを共有する行の近隣のサブピクセルの群を含むデータの組として符号化される。一般に、群の最後は、内側から外側への移り変りによって認識され、または反対に、ワインディング規則または同様の技術を交差データに適用することにより決定される。このデータから、ピクセルの群は抜き取られることができ、交差データによって記載されている形状の完全に内側または外側である目標ディスプレイのピクセルを反映する。チャート３０２の例において、形状の外側にある最初の５つの群の「オフ」ピクセルは直ちに認識されることができ、行Ｎ〜Ｎ＋３、および水平のサブピクセル領域１〜２０に相当する。
【００３８】
チャート３０４にて示すように、「オフ」群から「オン」群への移り変りは、サブピクセルの各行毎に、多数の「オン」または「オフ」サブピクセル領域によって、特徴付けられる。現在の例において、５つの「オフ」ピクセルの最初の群の後のデータは、ピクセル、例えばサブピクセル領域２１〜２４、２５〜２８等に相当する４つのサブピクセルの集合にグループ化されることができる。サブピクセル領域の各グループの「オン」のサブピクセル領域は、４つの行上で加算され、ピクセルについて「オン」のサブピクセル領域の合計を得る。チャート３０４は、６つの水平に連続したピクセルについてのこの合計を示す。水平のサブピクセル領域２１〜２４および行Ｎ〜Ｎ＋３に相当するこれらのピクセルの最初のものは、行Ｎ〜Ｎ＋２から「オン」のサブピクセル領域を含まず、行Ｎ＋３から４つの「オン」のサブピクセル領域を含む。これは、４：１６の比率または２５パーセント（４×４サブピクセルマトリックスの４／１６）に相当する。これは、このピクセルについて２５パーセントのグレイスケール値として表わされる。この分析は、完全な「オン」のピクセルに達するまで、水平に連続したサブピクセル領域について繰り返されることができる。図３の例では、「オン」のピクセルは、１６のサブピクセル領域から１６が「オン」である、サブピクセル領域４１〜４４において「オン」のピクセルに達している。対応するピクセルは、走査線の終わりの「オン」のピクセルの一群を始めて良く、または次の移り変りまで、そのような移り変りが起こる。
【００３９】
各走査線についての結果として生じたデータは、「オン」のピクセルの群、「オフ」のピクセルの群、およびどのくらいの数の各々の移り変りのピクセルが形状の内側に（または外側に）あるかを示すグレイスケール値を有する１以上の移り変りピクセルとして表わされる。図４は、以下に、この形式内にランレングス符号化されたデータの走査線を含むデータ構造の一例を示す。ある実施では、グレイスケール値は最大または最小のグレイスケール値（例えば１００％または０％）を含み、それは、別の方法で「オン」または「オフ」であるピクセルまたは群を示す。このアプローチは、例えば、「オン」と「オフ」の間で切り替えられる短い群を示すデータの符号化を最適化するために、都合良く適用される。
【００４０】
他の技術が移り変りのピクセルのためのグレイスケール値を得るために用いることができることはいうまでもない。例えば、形状内側にあるピクセルの部分は、パス３０６についての点および傾斜情報を用いて機械的に決定されても良い。形状端をグレイスケール値に単層化することにより、自動的なエイリアス除去作業は、完全なカラーイメージのために行われることができる。以下に記載されるように、色は、その後、走査線ブレンダに供給される。新しいピクセルデータの走査線が現在のピクセルデータの走査線と混ぜられるまで、形状のためのアルファおよび塗りつぶしの値の処理は延期されるため、この技術は、オーバサンプリングすることなく有利に用いられることができる（すなわち、平滑性２１０値について、その各ピクセルを特定することは、単一のサブピクセル領域に対応する。）。上記例が単一の内部領域を有する形状に関するとしても、複数の内部および外部領域を含むより複雑な形状が同様に特徴付けられることが理解される。
【００４１】
再び図２を参照すると、交差プロセス２２４の出力は、切落しマスク２３２として格納される。切落しマスク２３２は、任意のスケーリング情報と同様に、例えば、処理されたパス２０２のためのパスポインタに基づいた参照番号によって指標をつけられる。この方法で格納されたとき、形状プロセッサ２００によって受けられた各々の新しいパス２０２は、キャッシュされた切落しマスクのプールと比較され、テキストの行の繰り返しといった、同じ形状の冗長な処理が減少されるか、避けられることができる。
【００４２】
走査線ブレンダ２２６は、現在のビデオデータのフレームと共に、交差プロセス２２４からの出力または切落しマスク２３２を混合する。図２から判るように、これは、ディスプレイメモリアドレス、カラースペース、ビット深さ等のディスプレイパラメータにピクセル値を写像するために、以下に記載されない追加の計算を含むことができる。走査線ブレンダ２２６により前処理することは、アルファマップまたは塗りつぶしマップの圧縮解除、カラースペース変換、色修正、色調整、およびスケーリングを含むことができる。
【００４３】
走査線ブレンダ２２６は、スクリーン、その他の表示機器、または後のビットマップレンダリングのためのフレームバッファに直接に出力することができる。これは、非ビデオメモリまたはビットマップフォーマットバッファ出力を含むことができる。走査線ブレンダ２２６は、時々、典型的には、ビデオデータまたはピクセルの行の一行上で動作する。ある実施態様では、多数の走査線ブレンダが、並列の多数の走査線上で動作するために設けられている。各々のピクセルについて、走査線ブレンダ２２６は、そのピクセルに対応する塗りつぶし２０４（例えば、２４ビット色値）、アルファ２０６、および交差プロセス２２４出力（または、入手できるときは切落しマスク）を組合せることができる。一般的に、塗りつぶし２０４は、アルファ（透明度用（０≦アルファ≦１））および交差プロセス２２４出力（０（＝オフ）≦出力≦１（＝オン））によって処理される。これは、形状プロセッサ２００によって生成されたピクセル値によって表現される。走査線ブレンダ２２６内では、この新しい値はピクセルの古い値と組み合わされ、それは補足的な要素によって再度重み付けられる。この混合動作を数学的に表現すると以下のようになる。
【００４４】
Ｐｉ＝αｅｆ＋（１−αｅ）Ｐｉ−１                            （等式１）
ｆ＝ピクセルの塗りつぶし値（例えば、２４ビット色値）
Ｐｉ＝走査線ブレンダ出力
Ｐｉ−１＝前ピクセル値（バッファからの）
α＝ピクセルにおける形状のアルファ値
ｅ＝ピクセルの端の値（交差プロセス出力）
＝０、外側
＝１、内側
＝グレイスケール値、形状内の端の％
【００４５】
混合された出力は表示のためのビデオメモリ内に記憶されることができる。等式１は見本であり、他の等式が１ピクセル１ピクセル毎に基づいた古いおよび新しいデータを組合せるのに用いられることができ、提供された等式は、例えば、新しいデータの透明性および端を反映するように、古いおよび新しいデータを適当に重み付けをすることが理解される。これは、例えば、端の重み付けを最初に行ない、透明性の重み付けをその後に行なう２段階処理とできる。加えて、処理の複雑性を減らすために走査線ブレンダ２２６で用いることができる等式１の作り直された形態がある。例えば、完全な不透明（すなわち、ｅ＝１およびアルファ＝１）である形状内部のピクセルの群があるとき、走査線ブレンダ２２６の出力は各々のピクセルの単純な塗りつぶし値となる。この場合、対応するピクセルの塗りつぶし値ｆはさらなる処理をしないでビデオメモリに直接供給される。
【００４６】
図４は、交差プロセス２２４による出力のように符号化された走査データのためのデータ構造を示す。オンであるピクセルは形状の内側のピクセルに対応し、それは、図２の塗りつぶし２０４によって供給される色値として表わされる。オフであるピクセルは形状の外側のピクセルに対応し、現在の表示またはフレームバッファに影響を及ぼさない。上記のように、「オフ」のピクセルや形状の外側のピクセルのための塗りつぶし値を供給する背景塗りつぶし等の、追加のパラメータがオブジェクトに設けられても良い。もう一つの例のように、置換え塗りつぶしが提供されても良く、それは混合の前にフレームバッファ内で前の値から減算される。グレイスケール値は形状の端を表わし、塗りつぶし２０４によって供給され、グレイスケール値によってスケーリングされた色値として表わされる。符号化することは、形状を処理するときに処理コストの著しい減少を与えるビデオデータの行を表わすための方式を提供する。例えば、イメージ処理のための完全なピクセル配列の必要を回避するため、「オン」の群および「オフ」の群として符号化することは低コストであり、グレイスケール計算はメモリ使用および処理時間上でより低コストである。加えて、切落しマスクとしてビデオデータを格納するときに、ランレングス符号化することは利益をもたらす。しかし、他の圧縮技術がここに記載されたシステムで適当に用いられることができることが判る。
【００４７】
ランレングス符号化されたデータ構造４００は、ヘッダ４０２、長さ４０４、幅４０６、高さ４０８、一つ以上のオフセット４１０および一つ以上のデータセグメント４１２を含むことができる。ヘッダ４０２は、データ構造４００を識別するかまたは使用することに役立ついかなるヘッダ情報も含むことができる。長さ４０４は、一区間のデータ構造４００を示すことができる。形状のピクセルで、幅４０６は幅を表わす値を示すことができる。高さ４０８は、形状の多くの走査線を表わす値を示すことができる。一つ以上のオフセット４１０は、形状の各々の走査線のためのデータセグメントにバイトオフセットを示す。１つ以上のデータセグメント４１２は、各々形状の走査線のための符号化されたデータを含む。データセグメント４１２は、ピクセル内で後にランレングスが続く「内側」として、ピクセル内で後にランレングスが続く「外側」として、または後に端のいくつかのピクセルまたは端のいくつかのピクセルの内の各々のグレイスケール値が続く「端」として表わされることができる。各々の端の値は、例えば１バイト（２５６レベル）グレイスケール値として表わされる。
【００４８】
図５は、形状処理のためのプロセスのフローチャートである。以下の説明において、「交差データ」という語は、パスとサブピクセル領域との間の交差を記載しているデータを言うものとする。後進的な場合では、各々のサブピクセル領域は完全なピクセルに相当し、平滑化は全く行われない。「符号化走査データ」という語は、３つの状態のうちの一つである走査線の領域、すなわち、オン、オフ、またグレイスケールを記載する圧縮解除または圧縮（例えば、ランレングス符号化）された形式のデータを言うものとする。交差データにワインディングルールまたは同様の技術を適用することによって定義するように、群はパスの内側から外側への移り変りによって決定される。
【００４９】
ステップ５０４に示すように、プロセス５００は、オブジェクトを受信することによって５０２を始めることができる。例えば、オブジェクトは図１を参照して上記したグラフィカルオブジェクト１００であってもよい。任意のステップ５０６において、オブジェクトがキャッシュ内にあるかどうか決定される。この決定は、例えば、形状名、またはキャッシュ内の項目に対応するようにオブジェクトの形状を一意に認識するその他の方法を用いてなされることができる。もし、オブジェクトの形状がキャッシュされているなら、プロセス５００はステップ５１６に進むことができ、そこでは、オブジェクトは、キャッシュされた形状およびオブジェクトから供給された任意の塗りつぶしおよび透明性データを用いて、現在のビデオメモリと混合される。もし、形状がキャッシュされていなければ、プロセス５００はステップ５０８に進むことができる。
【００５０】
ステップ５０８に示すように、図２の走査コンバータ２２０を参照して上述したように、プロセス５００は単層化されたパスを生成することができる。ステップ５１０に示すように、単層化されたパスは、そこでパスとサブピクセル領域との間の交差を表わす交差データを生成するために用いられることができる。これらの交差は形状の端を表わすことができることが理解される。ステップ５１２に示すように、符号化走査データはそこで、例えば図２の交差プロセス２２４を参照して上述したように交差データから生成される。ステップ５１４に示すように、オブジェクトの形状のアウトラインを表わす符号化走査データはキャッシュ内に記憶される。ステップ５１６に示すように、また図２の走査線ブレンダ２２６を参照してより詳細に記載されたように、符号化走査データはそこでビデオメモリと混ぜられる。プロセス５００はそこでステップ５０４に戻り、そこで次の連続したオブジェクトが受けられる。
【００５１】
ビデオメモリは、ビデオメモリのコンテンツを人間が見える形式に変換するディスプレイへのビデオデータのフレームを供給することができる。ビデオメモリは、形状プロセッサによって生成されたビデオデータの新しい線と混合するために、前のビデオデータの１以上のフレームを記憶することもできる。ディスプレイは、液晶ディスプレイ、発光ダイオードディスプレイ、または人間が見える形式のビデオデータを提供するためのその他のディスプレイとすることができることが理解できる。ディスプレイは、プリンタ、プロッタ、または紙等の固定された有形の媒体にビデオデータを複製するための他の機器とすることができる。
【００５２】
上記プロセス５００および図２の形状プロセッサ２００は、ハードウェア、ソフトウェア、またはそれらの組合せで実現することができることが理解される。プロセス５００は、読出し専用メモリ、プログラム可能な読出し専用メモリ、電気的消去可能なプログラム可能な読出し専用メモリ、ランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、２倍データ速度ランダムアクセスメモリ、ラムバスダイレクトランダムアクセスメモリ、フラッシュメモリ、またはプログラム命令、プログラムデータ、およびプログラム出力または他の中間または最終結果を記憶するためのその他の揮発性または不揮発性のメモリといった内部および／または外部メモリと共に、１以上のマイクロプロセッサ、マイクロコントローラ、組込み型マイクロコントローラ、プログラム可能なデジタル信号プロセッサまたはその他のプログラム可能な機器で実現することができる。プロセッサ５００および形状プロセッサ２００は、また、あるいは替わりに、専用集積回路、プログラム可能なゲートアレイ、プログラム可能なアレイロジック、その他の電気信号を処理するために構成されることができる機器を含むことができる。
【００５３】
上記回路および構成要素の組合せは、チップとして、チップセットとして、またはダイとして個別にパッケージ化されたかどうかにかかわらず、ここに記載されたシステムと共に使用することに適当に適合されることができる。上記プロセス５００および形状２００は、異なるプロセッサ、プロセッサアーキテクチャの組合せまたは異なるハードウェアおよびソフトウェアの組合せと同様に、Ｃのような構造化プログラミング言語、Ｃ＋＋のようなオブジェクト指向プログラミング言語、または、上記機器の内の一つで実行するためにコンパイルまたは解釈されることができるその他の高レベルまたは低レベルプログラミング言語を使い生成されたコンピュータが実行可能なコードとして実現できることが理解される。
【００５４】
形状プロセッサ２００は、特に、異なるグラフィカルオブジェクトが同時に処理され、ビデオメモリのフレームに混合される並列および／またはパイプラインイメージ処理システムに適している。形状プロセッサ２００は、それゆえ、マイクロプロセッサ上で複数の形状プロセッサスレッドが実行するように、多数の物理的に別個のプロセスまたは論理的に別個のプロセスとして実現されることができる。このアプローチは、グラフィカルオブジェクトの異なる走査線に同様に適用されることができる。
【００５５】
上記システムはディスプレイのための効率の良いイメージレンダリングを提供し、それは、液晶ディスプレイ（「ＬＣＤ」）スクリーンを有し、電子編集機、パームトップ（palm-top）コンピュータ、ハンドヘルドゲーム機器、ウェブ可能な携帯電話（または他の無線電話または通信機器）、およびパーソナルデジタルアシスタント（「ＰＤＡ」）を含む携帯機器のような小型、小電力の機器によく適している。このシステムは、プリンタ、プロッタ等のようなその他のレンダリング機器と同様に、改良された電話、シンネットワーククライアント、およびセットトップボックスのようなディスプレイユニットと共に、低コスト端末機器に組み入れられても良い。このシステムは、例えば、作業ドキュメントの表示および／またユーザインターフェースが実用性を向上させることができるファックス機、プリンタ、コピー機等のドキュメント処理機器内の組込み型システムとして、有効に用いられることができる。このシステムは、ダッシュボードまたは中央コンソールまたは自動車等で、イメージをレンダーおよび／または自動車のユーザにグラフィカルユーザインターフェースを提供する車内システムで、有効に用いられることができる。ここに記載されたシステムは、オーディオプレーヤ、電子レンジ、冷蔵庫、洗濯機、衣服乾燥機、オーブン、または皿洗い機を含む消費者の機器に組み入れられることができる。ここに記載されたシステムは、出力がディスプレイ、プリンタ、ネットワークおよび／またはファイルといった異なる機器への出力が生成される上記システムのいずれかに有効に配置されることができる。単一の機器は、いずれかまたは全てのこれらの機器へ出力するために形状プロセッサを用いることができる。
【００５６】
本発明は示された好ましい実施態様について開示され詳細に記載されたが、本発明はここに開示された実施態様に限定されるべきではなく、以下の請求の範囲から理解されるべきであり、それは法上で許される限り広く解釈されるべきであることが理解される。
【図面の簡単な説明】
【図１】  形状プロセッサで用いられるグラフィカルオブジェクトのためのデータ構造を示す。
【図２】  形状プロセッサの機能ブロック図である。
【図３】  交差プロセスにより実行される交差データ上の動作の例を表す。
【図４】  符号化された走査データのためのデータ構造である。
【図５】  形状処理のためのプロセスのフローチャートである。
【符号の説明】
１００…グラフィカルオブジェクト、  １０１…バウンディングボックス、  １０２…形状、  １０４…塗りつぶし、  １０６…アルファ、  １０８…パス、  １１０…ストローク、  １１２…塗りつぶし、  １１４…切落しマスク、  １１６…色、  １１８…ビットマップ、  １２０…値、  １２２…マスク、  ２００…形状プロセッサ、  ２０２…パス、  ２０３…バウンディングボックス、  ２０４…塗りつぶし、  ２０６…アルファ、  ２０８…スクリーンバウンディングボックス、  ２１０…平滑性、  ２１２…トーン応答曲線、  ２１４…ビット深さ、  ２１６…カラースペース、  ２１８…スクリーンベースアドレス、  ２２０…走査コンバータ、  ２２１…交差、  ２２２…交差バッファ、  ２２４…交差プロセス、  ２２６…走査線ブレンダ、  ２２８…パスバウンディングボックス、  ２３０…単層化されたパス、  ２３２…切落しマスク、  ３０１，３０２，３０４…チャート、  ４００…データ構造、  ４０２…ヘッダ、  ４０４…長さ、  ４０６…幅、  ４０８…高さ、  ４１０…オフセット、  ４１２…データセグメント、  ５００…プロセス、  ５０２，５０４，５０６，５０８，５１０，５１２，５１４，５１６…ステップ。
【図１】
0005106735.tif 000002
【図２】
0005106735.tif 000003
【図３】
0005106735.tif 000004
【図４】
0005106735.tif 000005
【図５】
0005106735.tif 000006