(57)【要約】  方法は、合成グリフの領域をレンダリングする。合成グリフが要素の集合によって定義される。要素の集合を用いて２次元距離フィールドの集合が生成され、２次元距離フィールドの集合の合成が合成グリフを表現する。次に、２次元距離フィールドの集合を用いて合成グリフの領域がレンダリングされる。【選択図】図１５Ａ
2007529788.tif 000002
【特許請求の範囲】
【請求項１】
合成グリフの領域をレンダリングする方法であって、
要素の集合によって合成グリフを定義すること、
前記要素の集合を用いて、前記合成グリフを表現する、２次元距離フィールドの集合を生成すること、及び
前記２次元距離フィールドの集合を用いて前記合成グリフの領域をレンダリングすること
を含み、
前記レンダリングすることは、
前記領域内の各ピクセルの各コンポーネントについて、前記ピクセルの前記コンポーネントのアンチエイリアス強度を求めることをさらに含み、
前記求めることは、
前記２次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づけること、
前記２次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求めること、
前記対応する距離を結合することによって、結合距離を求めること、及び
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングすることをさらに含む、
合成グリフの領域をレンダリングする方法。
【請求項２】
前記要素の集合の特定の要素はストロークである、請求項１に記載の方法。
【請求項３】
前記要素の集合の特定の要素はアウトラインである、請求項１に記載の方法。
【請求項４】
前記要素の集合の特定の要素は部首である、請求項１に記載の方法。
【請求項５】
前記要素の集合の特定の要素はストローク部首である、請求項１に記載の方法。
【請求項６】
前記要素の集合の特定の要素は２次元の形状デスクリプタである、請求項１に記載の方法。
【請求項７】
前記要素の集合の特定の要素は１次元の形状デスクリプタである、請求項１に記載の方法。
【請求項８】
前記要素の集合の特定の要素はパスである、請求項１に記載の方法。
【請求項９】
前記要素の集合の特定の要素は距離フィールドである、請求項１に記載の方法。
【請求項１０】
前記要素の集合の特定の要素は距離マップである、請求項１に記載の方法。
【請求項１１】
前記要素の集合の特定の要素は、適応的にサンプリングされた距離フィールドである、請求項１に記載の方法。
【請求項１２】
前記要素の集合の特定の要素は手続きである、請求項１に記載の方法。
【請求項１３】
前記要素の集合の特定の要素は距離関数である、請求項１に記載の方法。
【請求項１４】
前記要素の集合の特定の要素は、第１の形状デスクリプタと第２の形状デスクリプタのインプリシットなブレンドである、請求項１に記載の方法。
【請求項１５】
前記要素の集合の特定の要素は、対応するオフセットデスクリプタを有する骨格デスクリプタである、請求項１に記載の方法。
【請求項１６】
前記要素の集合の特定の要素はユーザによって描かれる、請求項１に記載の方法。
【請求項１７】
前記定義することは手続きによって自動的に行われる、請求項１に記載の方法。
【請求項１８】
前記定義することはユーザによって行われる、請求項１に記載の方法。
【請求項１９】
前記定義することは手続き及びユーザによって半自動的に行われる、請求項１に記載の方法。
【請求項２０】
前記定義することは、
前記要素の集合の特定の要素の形状デスクリプタを求めること、及び
該形状デスクリプタの距離関数を求めることによって、前記特定の要素を定義すること
をさらに含む、請求項１に記載の方法。
【請求項２１】
前記定義することは、前記合成グリフの形状デスクリプタの距離フィールドから前記要素の集合を求める、請求項１に記載の方法。
【請求項２２】
前記２次元距離フィールドの集合の特定の２次元距離フィールドは、適応的にサンプリングされた距離フィールドである、請求項１に記載の方法。
【請求項２３】
前記２次元距離フィールドの集合の特定の２次元距離フィールドは、メモリに格納された距離の集合を含む、請求項１に記載の方法。
【請求項２４】
前記２次元距離フィールドの集合の特定の２次元距離フィールドは手続きで表現される、請求項１に記載の方法。
【請求項２５】
前記結合することは、前記対応する距離の最大値をとって前記結合距離を求める、請求項１に記載の方法。
【請求項２６】
前記結合することは、前記対応する距離の算術平均をとって前記結合距離を求める、請求項１に記載の方法。
【請求項２７】
前記結合することは、前記対応する距離の和集合をとって前記結合距離を求める、請求項１に記載の方法。
【請求項２８】
前記結合することは、前記対応する距離の共通集合をとって前記結合距離を求める、請求項１に記載の方法。
【請求項２９】
前記結合することは、前記対応する距離の差集合をとって前記結合距離を求める、請求項１に記載の方法。
【請求項３０】
前記結合することは、前記対応する距離のインプリシットなブレンドを行って前記結合距離を求める、請求項１に記載の方法。
【請求項３１】
前記結合することは、前記対応する距離に対して算術演算を行って前記結合距離を求める、請求項１に記載の方法。
【請求項３２】
前記結合することは、前記対応する距離に対して条件付き演算を行って前記結合距離を求める、請求項１に記載の方法。
【請求項３３】
前記結合することは、手続きを用いて前記結合距離を求める、請求項１に記載の方法。
【請求項３４】
前記結合することは、テーブルを用いて前記結合距離を求める、請求項１に記載の方法。
【請求項３５】
合成グリフの領域をレンダリングする方法であって、
要素の集合によって合成グリフを定義すること、
前記要素の集合を用いて２次元距離フィールドの集合を生成することであって、該２次元距離フィールドの集合の合成が前記合成グリフを表現する、生成すること、及び
前記２次元距離フィールドの集合を用いて前記合成グリフの領域をレンダリングすること
を含む、合成グリフの領域をレンダリングする方法。
【請求項３６】
前記レンダリングすることは、前記領域内の各ピクセルの各コンポーネントについて、該ピクセルの該コンポーネントのアンチエイリアス強度を求める、請求項３５に記載の方法。
【請求項３７】
前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めることは、
前記２次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づけること、
前記２次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求めること、
前記対応する距離を結合することによって、結合距離を求めること、及び
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングすること
をさらに含む、請求項３６に記載の方法。
【請求項３８】
前記要素の集合の特定の要素はストロークである、請求項３５に記載の方法。
【請求項３９】
前記要素の集合の特定の要素はアウトラインである、請求項３５に記載の方法。
【請求項４０】
前記要素の集合の特定の要素は部首である、請求項３５に記載の方法。
【請求項４１】
前記要素の集合の特定の要素はストローク部首である、請求項３５に記載の方法。
【請求項４２】
前記要素の集合の特定の要素は２次元の形状デスクリプタである、請求項３５に記載の方法。
【請求項４３】
前記要素の集合の特定の要素は１次元の形状デスクリプタである、請求項３５に記載の方法。
【請求項４４】
前記要素の集合の特定の要素はパスである、請求項３５に記載の方法。
【請求項４５】
前記要素の集合の特定の要素は距離フィールドである、請求項３５に記載の方法。
【請求項４６】
前記要素の集合の特定の要素は距離マップである、請求項３５に記載の方法。
【請求項４７】
前記要素の集合の特定の要素は、適応的にサンプリングされた距離フィールドである、請求項３５に記載の方法。
【請求項４８】
前記要素の集合の特定の要素は手続きである、請求項３５に記載の方法。
【請求項４９】
前記要素の集合の特定の要素は距離関数である、請求項３５に記載の方法。
【請求項５０】
前記要素の集合の特定の要素は、第１の形状デスクリプタと第２の形状デスクリプタのインプリシットなブレンドである、請求項３５に記載の方法。
【請求項５１】
前記要素の集合の特定の要素は、対応するオフセットデスクリプタを有する骨格デスクリプタである、請求項３５に記載の方法。
【請求項５２】
前記要素の集合の特定の要素はユーザによって描かれる、請求項３５に記載の方法。
【請求項５３】
前記定義することは手続きによって自動的に行われる、請求項３５に記載の方法。
【請求項５４】
前記定義することはユーザによって行われる、請求項３５に記載の方法。
【請求項５５】
前記定義することは手続き及びユーザによって半自動的に行われる、請求項３５に記載の方法。
【請求項５６】
前記定義することは、
前記要素の集合の特定の要素の形状デスクリプタを求めること、
前記形状デスクリプタの距離関数を求めることによって、前記特定の要素を定義すること
をさらに含む、請求項３５に記載の方法。
【請求項５７】
前記定義することは、前記合成グリフの形状デスクリプタの距離フィールドから前記要素の集合を求める、請求項３５に記載の方法。
【請求項５８】
前記２次元距離フィールドの集合の特定の２次元距離フィールドは、適応的にサンプリングされた距離フィールドである、請求項３５に記載の方法。
【請求項５９】
前記２次元距離フィールドの集合の特定の２次元距離フィールドは、メモリに格納された距離の集合を含む、請求項３５に記載の方法。
【請求項６０】
前記２次元距離フィールドの集合の特定の２次元距離フィールドは手続きで表現される、請求項３５に記載の方法。
【請求項６１】
前記結合することは、前記対応する距離の最大値をとって前記結合距離を求める、請求項３７に記載の方法。
【請求項６２】
前記結合することは、前記対応する距離の算術平均をとって前記結合距離を求める、請求項３７に記載の方法。
【請求項６３】
前記結合することは、前記対応する距離の和集合をとって前記結合距離を求める、請求項３７に記載の方法。
【請求項６４】
前記結合することは、前記対応する距離の共通集合をとって前記結合距離を求める、請求項３７に記載の方法。
【請求項６５】
前記結合することは、前記対応する距離の差集合をとって前記結合距離を求める、請求項３７に記載の方法。
【請求項６６】
前記結合することは、前記対応する距離のインプリシットなブレンドを行って前記結合距離を求める、請求項３７に記載の方法。
【請求項６７】
前記結合することは、前記対応する距離に対して算術演算を行って前記結合距離を求める、請求項３７に記載の方法。
【請求項６８】
前記結合することは、前記対応する距離に対して条件付き演算を行って前記結合距離を求める、請求項３７に記載の方法。
【請求項６９】
前記結合することは、手続きを用いて前記結合距離を求める、請求項３７に記載の方法。
【請求項７０】
前記結合することは、テーブルを用いて前記結合距離を求める、請求項３７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的にはコンピュータグラフィックスの分野に関し、特に２次元距離フィールドにより表現されるオブジェクトを生成してレンダリングすることに関する。
【背景技術】
【０００２】
コンピュータグラフィックスの分野において、２次元オブジェクトのレンダリングは基本的に重要である。文字形状、企業ロゴ、および文書に含まれる図版の要素のような２次元オブジェクトは、静的イメージとして、または動画を構成するフレームのシーケンスとしてレンダリングされる。２次元オブジェクトには数多くの表現があり、レンダリングや編集のような特定のオペレーションについては、ある表現のほうが別の表現より良い場合が多い。このような場合、ある形式から別の形式への変換が実行される。
【０００３】
本明細書では、おそらく最も一般的かつ重要な２次元オブジェクトであるデジタルタイプに主眼を置くが、以下の説明は、すべての種類の２次元オブジェクトに当てはまる。
【０００４】
まず、デジタルタイプに関する基本的背景について説明する。Times New RomanやArialのような典型的なラテンフォントファミリは、例えば標準(regular)、斜体(italic)、太字(bold)および太字斜体(bold italic)のようなフォントの集合を含む。各フォントは、グリフと呼ばれる個々の文字形状の集合を含む。各グリフは、その種々のデザイン特徴、例えば、基礎となるジオメトリ、ストロークの太さ、セリフ、ジョイナリ(joinery)、輪郭の配置および個数、細いストロークと太いストロークの比、ならびにサイズによって区別される。
【０００５】
フォントを表現するには、ビットマップ、アウトライン（例えば、Ｔｙｐｅ  １［Adobe Systems, Inc. 1990］およびＴｒｕｅＴｙｐｅ［Apple Computer, Inc. 1990］）、および手続き型フォント（例えば、KnuthのＭｅｔａｆｏｎｔ）等の多くの方法があるが、アウトラインが主流である。アウトラインベースの表現は、米国マサチューセッツ州CambridgeのBitstream Inc.、米国カリフォルニア州Mountain ViewのAdobe Systems, Inc.、米国カリフォルニア州CupertinoのApple Computer, Inc.、米国ワシントン州BellevueのMicrosoft Corporation、ドイツ国ハンブルクのＵＲＷ、および米国マサチューセッツ州WilmingtonのAgfa Compugraphicが採用し普及させている。
【０００６】
Hersch著「Visual and Technical Aspects of Type」（Cambridge University Press. 1993）およびKnuth「TEX and METAFONT: New Directions in Typesetting」（Digital Press, Bedford, MA 1979）は、フォントの歴史および科学についての総説を含んでいる。
【０００７】
特に重要であるのは、ボディタイプサイズおよびディスプレイタイプサイズという２つのクラスのタイプサイズである。ボディタイプのフォントは、比較的小さいポイントサイズ（例えば１４ｐｔ以下）でレンダリングされ、このパラグラフのような文書の本文で使用される。ボディタイプは、可読性および読みやすさのために、高品質のレンダリングを必要とする。ボディタイプのサイズ、タイプフェイス、およびベースライン方位は、単一文書中ではめったに変化しない。
【０００８】
ディスプレイタイプのフォントは、比較的大きいポイントサイズ（例えば３６ｐｔ以上）でレンダリングされ、タイトルや見出しに、また、雰囲気を設定したり注目を集めたりするためにデザインおよび広告において使用される。ボディタイプとは対照的に、ディスプレイタイプでは審美性が重視される。可読性よりも、空間的および時間的エイリアシングがないことが重要であり、アンチエイリアシングよりもコントラストのほうが重要となり得る。タイプを表現しレンダリングするためのフレームワークは、衝突する要求を有するこれらの２つのクラスの両方をうまく扱うことが非常に重要である。
【０００９】
タイプは、出力デバイス（例えばプリンタやディスプレイ）へ、２値、グレイスケール、またはカラーとしてレンダリングすることができる。一部のレンダリングエンジンは、非常に小さいタイプサイズのために２値レンダリングを使用して、より良好なコントラストを達成している。しかし、適切にヒンティング（hinted）されたグレイスケールフォントも同様な可読性を有することができる。
【００１０】
ヒントとは、各グリフとともに格納される規則または手続きの集合であって、タイプフェイス内のすべてのグリフにわたって対称性、ストロークのウェイト、および一様な外観のような特徴を保持するために、レンダリング中にグリフのアウトラインをどのように修正すべきかを指定するものである。
【００１１】
自動および半自動ヒンティングシステムを設計する試みがなされてきているが、ヒンティングプロセスは依然として、新しいフォントのデザインにおいて、および既存のフォントを低解像度ディスプレイデバイス用にチューニングする場合において、主要なボトルネックであり続けている。また、ヒンティング規則を解釈することの複雑さは、フォントレンダリングのためにハードウェアを使用することを妨げている。ハードウェアサポートがないため、特にリアルタイムでタイプを動画化する時には、使用するピクセル当たりのサンプル数を少なくするというように、ソフトウェアラスタライズ中に妥協を余儀なくされる。
【００１２】
グレイスケールフォントレンダリングは、通常、何らかの形のアンチエイリアシングを伴う。アンチエイリアシングとは、２値フォントに現れるギザギザのエッジや階段効果を平滑化するプロセスである。多くのフォントレンダリングエンジンは独自仕様であるが、ほとんどが、グリッドフィッティングおよびヒンティングの後に、ピクセル当たり４または１６サンプルのスーパーサンプリングを使用してから、それぞれ２×２または４×４ボックスフィルタでダウンサンプリングしている。
【００１３】
ボックスフィルタリングのような初歩的フィルタリングは、レンダリング速度の必要性から正当化される。しかし、その手法であっても、動画化タイプに要求されるようなリアルタイムレンダリングには遅すぎることが多く、レンダリングされたグリフは空間的および時間的エイリアシングを被る。
【００１４】
タイポグラフィにおける３つの重要な傾向から、従来技術のフォント表現に固有のいくつかの制限が明らかとなっており、したがって変更が必要とされている。
【００１５】
第１の傾向は、オフィスにおけるコンピュータの中心的役割、家庭でのインターネット閲覧の人気の増大、およびＰＤＡ等のハンドヘルド型電子デバイスの普及によって、テキストを画面上で読むことが重視されるようになってきたことである。このようなディスプレイは通常、インチ当たり７２〜１００ドットの解像度を有し、これは印刷デバイスの解像度よりも大幅に低い。
【００１６】
この低解像度は、読みやすさおよび可読性を保証するために、タイプをラスタライズする際に特別の扱いを要求する。このことは、MicrosoftおよびBitstreamのような企業がそれぞれＣｌｅａｒ  ＴｙｐｅおよびＦｏｎｔ  Ｆｕｓｉｏｎという技術にリソースを投資していることによって証明される通りである。
【００１７】
第２の傾向は、動画化タイプ、あるいはキネティックタイポグラフィの使用である。動画化タイプは、感情を伝え、興味を添え、読者の注意を視覚的に引きつけるために使用される。動画化タイプの重要性は、テレビおよびインターネット広告におけるその広範な使用によって実証されている。
【００１８】
第３の傾向は、ピクセルコンポーネントの多様なレイアウトを組み込んだディスプレイデバイスの急増である。Hill他の米国特許第６，１８８，３８５号「Method and apparatus for displaying images such as text」に記載されるように、垂直および水平にストライピングされたＲＧＢコンポーネントが従来のディスプレイの標準的な機構であった。しかし、Elliott他の米国特許出願公開第２００３００８５９０６号「Methods and systems for sub-pixel rendering using adaptive filtering」に記載されるように、コンポーネントを異なる方法で配置することには多数の利点がある。
【００１９】
残念ながら、従来のアウトラインベースのフォントは、これらのいずれの領域でも制限を有する。低解像度ディスプレイにタイプをレンダリングすることは、可読性のための良好なコントラストの必要性と、読みやすさのための空間的および／または時間的エイリアシングを減らすこととの間のバランスをとるために、慎重な扱いを必要とする。
【００２０】
上記のように、アウトラインベースのフォントは通常、最適な外観のための命令をレンダリングエンジンに提供するためにヒンティングされる。フォントヒンティングは、多大の労力がかかり、高価である。例えば、１万個を超えるグリフを有し得る日本語や中国語のフォントのための適切にヒンティングされたタイプフェイスを開発するには、数年を要することがある。ヒンティングの重点は、ボディタイプのレンダリング品質を向上させることにあるので、ヒントは、任意のパスに沿って配置されるタイプや動画化タイプの場合には効果的でない傾向がある。
【００２１】
限定された数のフォントサイズおよびタイプフェイスを有する静的文書においてグレイスケールタイプをアンチエイリアシングするためには、高品質フィルタリングを使用することが可能であるが、動画化タイプにおけるフィルタリングの使用は通常、リアルタイムレンダリングに要求される条件によって制限される。
【００２２】
米国特許第６，１８８，３８５号に記載されるような、従来技術のサブピクセルレンダリング方法には、３つ全ての傾向に関する多数の欠点がある。
【００２３】
第１に、それらの方法は、適切な品質を得るために、ピクセルコンポーネントにつき多くのサンプルを必要とし、非効率的である。例えば米国特許出願公開第２００３００８５９０６号に記載されるレイアウトのような、多くのコンポーネントを含む代替的なピクセルレイアウト上にレンダリングする場合、それらの方法は非現実的になる。第２に、それらの方法は、ディスプレイの垂直または水平のストライピングを活用して、近傍ピクセルコンポーネントのサンプルの再利用を可能にするが、これは多くの代替的なピクセルコンポーネントレイアウトでは機能しない。第３に、これらの方法は、各コンポーネントをサンプリングする際、高品質なフィルタを使用すると非効率的であるため、低品質なフィルタを使用する。
【００２４】
第４に、教示される方法は、代替的なピクセルコンポーネントレイアウト上の色ぶちを軽減するための方策を何ら提供しない。第５に、非整数のピクセル間隔でのグリフの平行移動は、グリフの再レンダリングを必要とする。再レンダリングは通常、ヒントの再解釈を必要とし、非効率的である。第６に、ヒントは、特定のピクセルコンポーネントレイアウトに特有であることが多いため、代替的なピクセルコンポーネントレイアウトの急増に対応して再実行されなければならない。ヒントの再実行には費用と時間がかかる。
【００２５】
重なり合うオブジェクトのレンダリング
２つまたはそれ以上のオブジェクトをレンダリングする場合、それらのレンダリングされたイメージは重なり合う場合がある。例えば、１行の文章中の２つのグリフ同士を近くに配置した場合、それらのグリフのアンチエイリアシングされたエッジが重なり合う場合がある。別の例として、単一の漢字グリフが、ストローク、部首、またはストロークベースの部首等のいくつかの要素の合成によって表現される場合があり、これらの要素は、その単一の漢字グリフをレンダリングするために結合されると重なり合う場合がある。
【００２６】
そのような場合、レンダリング方法は、オブジェクトが重なり合う領域に対処しなければならない。従来技術には、このような重なり領域に対処する方法がいくつかある。「画家のアルゴリズム」は、コンピュータグラフィックスにおいて２次元および３次元レンダリングに使用される一般的な手法である。画家のアルゴリズムでは、オブジェクトが、後方のものから前方のものへ順に並べられ、その順序でレンダリングされる。各レンダリングによって特定されるピクセルは単純に、前回のレンダリングにおける対応するピクセルを上書きする。
【００２７】
他の従来技術における方法は重なり合うピクセルの色または強度値をブレンディングする。すなわち、これらの方法は、最大値または最小値を選択する、または重なり合うピクセルの算術平均を行うといった規則に従って色または強度値を結合する。これらの方法のいくつかは、各ピクセルに関連するアルファ値を用い、アルファブレンディングと呼ばれる技法を用いて重なり合うピクセルの値をブレンディングする。
【００２８】
これらの従来技術の方法は、いくつかの理由から問題となる可能性がある。
【００２９】
例えば、画家のアルゴリズムは、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオード（ＯＬＥＤ）、または別個にアドレス可能なピクセルコンポーネントを有する同様のディスプレイ技術の上にレンダリングするとき、近い間隔で置かれたグリフ間にカラーアーティファクトを生じる。
【００３０】
ピクセルの色および強度をブレンディングする従来技術の方法は、アルファ値のために付加的な計算および記憶容量を必要とし、使用されるブレンディング方法に応じてエッジぼけまたはエッジの脱落等の様々なアーティファクトを呈する。
【００３１】
また、従来技術のカバレジベースのアンチエイリアシングを用いて、重なり合うオブジェクトの集合について求められるカバレジ値は一般に、結合オブジェクトの実際のカバレジを表現するように一緒にブレンディングすることができない。
【００３２】
重なり合うオブジェクトに対処する別の従来技術の手法は、レンダリングの前にオブジェクトを結合して合成オブジェクトを生成する。例えば、複数の要素から成るアウトラインベースのグリフの場合、レンダリングの前に、それらの要素のアウトラインを結合して単一のアウトライン記述を形成する。同様に、複数のストロークから成るストロークベースのグリフをレンダリングするには、レンダリングの前にストロークを単一のストローク集合に結合する。
【００３３】
距離フィールドとして表現されるオブジェクト要素の場合、レンダリングの前に、Perry他著「Kizamu: A System for Sculpting Digital Characters」（Proceedings ACM SIGGRAPH 2001, pp. 47-56, 2001）に記載されるようなＣＳＧオペレーションを用いて、それらの距離フィールドを単一の距離フィールドに結合することができる。合成オブジェクトが適応的にサンプリングされた距離フィールドとして表現される場合、結合により、どの要素にも存在しない非常に細いセクションまたはコーナー等の細部が合成オブジェクトに導入される場合があるため、合成オブジェクトは、要素に必要とされる総記憶容量よりも遥かに多い記憶容量を必要とし得る。
【００３４】
レンダリングの前に結合を行うこれらの従来技術の方法は全て、合成オブジェクトを生成するために付加的な記憶空間および複雑なオペレーションを必要とする。さらに、これらの方法は、２回のパス（合成オブジェクトの構築に１回、合成オブジェクトのレンダリングに１回）を必要とする。
【００３５】
コンポーネントベースのグリフの生成およびレンダリング
中国語、日本語、または韓国語のフォントといったアジア圏のフォントは、１０，０００個以上のグリフを含み得る。メモリ要件を低減するために、このようなフォントのグリフは、本明細書において要素と呼ぶ、ストロークまたは部首等の共通のコンポーネント集合の合成体として表現することができる。その場合、これらの共通要素は、フォントライブラリとしてメモリに格納され、レンダリングの前に、またはレンダリング中に結合されて、合成グリフを生成する。
【発明の開示】
【発明が解決しようとする課題】
【００３６】
従来技術の方法は、アウトラインデスクリプタ、通常はベジエ曲線またはストローキングされた骨格を用いて要素を定義する。要素はレンダリングの前に、結合されたアウトラインまたは結合されたストローク集合等の単一の形状デスクリプタに結合されることができる。別法として、各要素を独立にレンダリングし、ピクセルごとに、結合される要素からアンチエイリアス強度またはカバレジ値を生成して、そのピクセルの最終的なアンチエイリアス強度またはカバレジ値を生成することができる。いずれの手法も上述のような問題を有する。
【課題を解決するための手段】
【００３７】
本発明は、合成グリフの領域をレンダリングする方法を提供する。合成グリフは要素の集合によって定義される。要素の集合を用いて２次元距離フィールドの集合が生成され、２次元距離フィールドの集合の合成体が合成グリフを表現する。合成グリフの領域は次に、２次元距離フィールドの集合を用いてレンダリングされる。
【発明の効果】
【００３８】
本発明は、文字グリフ、企業ロゴ、または任意の２次元オブジェクトを表現、レンダリング、編集、処理、および動画化する新規のフレームワークを提供する。
【００３９】
好ましい一実施の形態では、本発明は、距離フィールドを用いて２次元オブジェクトを表現する。本発明は、双二次ＡＤＦおよび特殊セルを用いるＡＤＦを含む距離フィールドの様々な具体例を生成する方法を含む。本発明の方法は従来技術に対して、メモリ要件を大幅に低減し、精度を大幅に向上させる。
【００４０】
本発明の距離ベースのアンチエイリアシングによるレンダリング方法は、従来技術において用いられる方法よりも良好かつ効率的にアンチエイリアシングを行う。
【００４１】
本発明の方法はまた、距離ベースの自動ヒンティング、距離ベースのグリッドフィッティング、ストロークベースおよび部首ベースの合成グリフの生成およびレンダリング、グリフの植字、３つの共通のデジタルフォントデザインパラダイムの統合、ならびにキネティックタイポグラフィの様々な特殊効果の生成のための計算基盤を提供する。
【００４２】
本発明のフレームワークは、多数の利点、すなわち、労働集約的な手作業によるヒンティングを使用せずに非常に小さなフォントサイズでも可読性の高いタイプ、ピクセルのコンポーネントの多数のときに複雑な配置を用いた、ＯＬＥＤ等のフラットパネルディスプレイ技術に対する類のない適応性、見やすさを高め個人の好みに合った対話形式のユーザによるタイプ調整、直接シリコンにおいて実施するか、または固定関数グラフィックスハードウェアおよびプログラマブルグラフィックスハードウェアにおいて実施するための計算上クリーンなレンダリングパイプラインを可能にするレンダリングパラメータの独特な制御、ならびにペンベースの入力等の高度な応用のサポートを提供する。
【発明を実施するための最良の形態】
【００４３】
グリフの距離フィールド表現
本発明は、グリフ、企業ロゴ、またはオブジェクトの任意のデジタル化表現のような閉じた２次元形状Ｓを２次元の符号付き距離フィールドＤとして表現する。説明の目的上、本明細書ではグリフを使用する。
【００４４】
非形式的には、グリフの距離フィールドは、フィールド内の任意の点からグリフのエッジまでの最小距離を測る。ここで、距離の符号は、点がグリフの外部にある場合には負であり、点がグリフの内部にある場合には正である。エッジ上の点は距離がゼロである。
【００４５】
形式的には、距離フィールドとは、すべてのｐ∈Ｒ２に対する写像Ｄ：Ｒ２→Ｒであって、Ｄ（ｐ）＝ｓｉｇｎ（ｐ）・ｍｉｎ｛‖ｐ−ｑ‖：Ｓのゼロ値等値面、すなわちエッジ上のすべての点ｑに対して｝であり、ｓｉｇｎ（ｐ）＝｛ｐがＳの外部にある場合は−１，ｐがＳの内部にある場合は＋１｝であり、‖・‖はユークリッドノルムである、を満たすものである。
【００４６】
各ピクセルについて単一の離散的サンプルを使用する従来技術のカバレジベースのレンダリング方法は、サンプルがアウトラインに任意に近い場合であっても、グリフを完全に取り損なうことがある。レンダリングされたグリフはギザギザのエッジおよび脱落を有し、これらは両方とも空間的エイリアシングの一種である。グリフが動画化される場合、時間的エイリアシングにより、モーション中に「はう」ように見える、ちらつきのあるアウトラインおよびギザギザのエッジを引き起こす。アンチエイリアシングされたレンダリングを生成するためにピクセル当たりのサンプルを追加すれば、これらのエイリアシング効果を減らすことができるが、許容可能な結果のためには多数のサンプルが必要となることがある。
【００４７】
これに対して、本発明による連続的にサンプリングされる距離値は、サンプルが形状の外部にある場合であっても、グリフの近接性を示すことによって、従来技術の脱落アーティファクトを排除する。本発明によれば、サンプリングされる距離値の連続性を用いて、空間的エイリアシングのアーティファクトを軽減することができる。
【００４８】
さらに、距離フィールドは滑らかに変化する、すなわち、Ｃ０連続であるので、サンプリングされた値はグリフが移動するとともにゆっくりと変化し、時間的エイリアシングのアーティファクトが減る。
【００４９】
距離フィールドは他の利点も有する。距離フィールドは、インプリシット（implicit）な表現であるので、陰関数の利益を共有する。特に、距離フィールドは、フォントをデザインするための直観的インタフェースを可能にする。例えば、ステム、バー、ラウンド、およびセリフ等のグリフの個々のコンポーネントを独立にデザインすることができる。デザイン後、インプリシットなブレンディング方法を用いてコンポーネントを一緒にブレンディングすることにより、同一タイプフェイスの異なるグリフを構成することができる。
【００５０】
また、距離フィールドは、キネティックタイポグラフィや動画化タイプの分野にも大いに寄与する。というのは、距離フィールドは、オブジェクト間の相互作用をシミュレートするための重要な情報を提供するからである。
【００５１】
好ましい一実施の形態では、適応的にサンプリングされた距離フィールド(adaptively sample distance field)、すなわちＡＤＦを使用する。米国特許第６，３９６，４９２号「Detail-directed hierarchical distance fields」（Frisken、Perry、およびJones）を参照されたい。この米国特許は参照により本明細書に援用される。
【００５２】
ＡＤＦは、距離フィールドの効率的なデジタル表現である。ＡＤＦは、ディテール指向サンプリングを使用することにより、フィールドを表現するために必要なサンプル数を減らす。サンプルは、効率的処理のために、セルの空間階層、例えばquadtreeに格納される。また、ＡＤＦは、サンプリングされた値から距離フィールドを再構成する方法を提供する。
【００５３】
ディテール指向また適応サンプリングは、フィールドにおける局所変動に従って距離フィールドをサンプリングする。すなわち、局所変動が高い場合には使用するサンプルを多くし、局所変動が低い場合には使用するサンプルを少なくする。適応サンプリングは、規則的にサンプリングされた距離フィールド（これはフィールド全体を通じて一様なレートでサンプリングを行う）および３色quadtree（これは常にエッジ付近では最大レートでサンプリングする）のいずれに比べても、必要な記憶容量を大幅に低減する。
【００５４】
図１Ａおよび図１Ｂは、Times Romanの「ａ」および「Ｄ」に対する３色quadtreeに必要なセル数を、同じ精度の図２Ａ〜図２Ｂにおける双二次ＡＤＦに必要なセル数と比較している。セル数は、必要な記憶領域に直接関係する。両方のquadtreeとも、距離値の５１２×５１２イメージに等価な解像度を有する。「ａ」および「Ｄ」に対する３色quadtreeはそれぞれ１７，３９３セルおよび２０，８１３セルを有する一方、それらに対応する双二次ＡＤＦは４５７セルおよび３９９セルを有する。双二次ＡＤＦは通常、Frisken等の従来技術の双一次表現（「Adaptively Sampled Distance Fields: a General Representation of Shape for Computer Graphics」（Proceedings ACM SIGGRAPH 2000, pp.249-254, 2000））よりも５〜２０分の１の個数のセルしか必要としない。
【００５５】
双二次再構成法
Frisken等は、ＡＤＦ空間階層にquadtreeを使用し、双一次補間によって、各セルの四隅でサンプリングされた距離から各セルの内部の距離および勾配を再構成している。Frisken等は、「高次の再構成法．．．を用いればさらに圧縮が高まるかもしれないが、数値は既に、これ以上の努力に対する収穫逓減点を示唆している」と示唆している。
【００５６】
しかし、双一次ＡＤＦは、本発明による文字グリフを表現し、レンダリングし、編集し、動画化するには不適切である。特に、双一次ＡＤＦは、あまりに多くの記憶容量を必要とし、処理するにはあまりに非効率的であり、非エッジセル内の再構成フィールドの品質は、動的シミュレーションのようなオペレーションには不十分である。
【００５７】
「有界サーフェイス(bounded-surface)」法は、サーフェイス（すなわちエッジ）から有界距離内の非エッジセルが、ある誤差判定テストに合格することを要請することによって、非エッジセルのさらなる細分割を強制することができる。Perry等「Kizamu: A System for Sculpting Digital Characters」（Proceedings ACM SIGGRAPH 2001, pp.47-56, 2001）を参照されたい。これは、この有界領域内の距離フィールドにおける誤差を縮小するが、本発明者等は、双一次ＡＤＦの場合、この方法の結果として、セル数が許容できないほど増大することを見出した。
【００５８】
上記の制限に対処するため、双一次再構成法を双二次再構成法で置き換える。典型的なグリフの双二次ＡＤＦは、双一次ＡＤＦよりも５〜２０分の１の個数のセルしか必要としない傾向がある。動的シミュレーションや動画化タイプのようなオペレーションのために非エッジセル内の正確な距離フィールドが必要な場合には、必要なセル数が大幅に低減される。
【００５９】
このような記憶容量の大幅な低減により、典型的な動画に必要なグリフは、最新のＣＰＵのオンチップキャッシュに収まる。これは、処理時間に対する劇的な効果を有する。その理由は、システムメモリアクセスが実質的になくなるため、高次の再構成法に必要な追加的計算が容易に相殺されるからである。
【００６０】
図３は、本発明の好ましい実施の形態による双二次ＡＤＦセル３００を示している。双二次ＡＤＦにおける各セルは、９個の距離値３０１を含む。点（ｘ，ｙ）３０２における距離および勾配が、下記の式１〜式３に従って、これらの９個の距離値から再構成される。
【００６１】
さまざまな双二次再構成法が利用可能である。本発明者等は、同一サイズの隣接セルの共有エッジに沿ってＣ０連続性を保証する２変数補間多項式を使用する。双一次法の場合と同様、異なるサイズの隣接セル間の距離フィールドの連続性は、誤差判定を用いて、指定された許容差に維持される。誤差判定は、ＡＤＦ生成中のセル細分割を制御する。前掲のPerry他の文献を参照されたい。
【００６２】
点（ｘ，ｙ）３０２における距離および勾配（ここでｘおよびｙはセル座標で表される、すなわち（ｘ，ｙ）∈［０，１］×［０，１］）は以下のように求められる。
【００６３】
【数１】
2007529788.tif 000003
【００６４】
浮動小数点演算を用いて距離を再構成するには約３５浮動小数点演算（ｆｌｏｐｓ）を必要とする可能性があり、浮動小数点演算を用いて勾配を再構成するには約７０ｆｌｏｐｓを必要とする可能性がある。本発明者等の再構成法は分岐を含まず、グリフは完全にオンチップキャッシュに存在することができるので、最新のＣＰＵの特殊なＣＰＵ命令および深い命令パイプラインを利用することにより、これらの再構成法をさらに最適化することができる。また、固定小数点演算を用いて距離および勾配を再構成することもできる。
【００６５】
伝送および格納のための圧縮
線形Quadtrees
ＡＤＦquadtreeの空間階層は、ある処理（例えば衝突検出）には必要であるが、他の処理（例えば後述のようなセルベースのレンダリング）には不要である。
【００６６】
ＡＤＦグリフの伝送および格納のための圧縮を行うため、線形quadtree構造を使用する。この木構造は、本発明者等の双二次ＡＤＦをリーフセルのリストとして格納する。木構造は、必要に応じてリーフセルから再生成することができる。
【００６７】
線形ＡＤＦquadtreeの各リーフセルは、セルのｘおよびｙ位置としてそれぞれ２バイト、セルレベルとして１バイト、セル中心における距離値として２バイト、および中心距離値からの８個の距離オフセットとしてそれぞれ１バイトを含み、合計でセル当たり１５バイトである。
【００６８】
各距離オフセットは、それに対応するサンプル距離を中心距離値から減算し、量子化誤差を低減するためにセルサイズ倍にスケーリングし、切り捨てて８ビットにすることにより求められる。セル位置ごとに２バイト、およびセルレベルに対して１バイトで、２１６×２１６までの解像度のＡＤＦを表現することができる。これは、ディスプレイ画面解像度でレンダリングされるグリフを表現するには十分以上である。
【００６９】
グリフは、１６ビットの距離値で正確に表現することができる。８個の距離値を８ビットの距離オフセットとして符号化することで、これらの値をそれぞれ２バイトで格納するよりも大幅な節約となる。これは理論的には、大きいセルの距離フィールドにおいて多少の誤差につながるかもしれないが、本発明者等にはいかなる視覚的劣化も認められなかった。
【００７０】
高解像度グリフは通常、５００〜１０００個のリーフセルを必要とする。無損失エントロピー符号化により、さらに３５〜５０％の圧縮を達成することができる。したがって、高解像度ＡＤＦのタイプフェイス全体を３００〜５００Ｋバイトで表現することができる。携帯電話の場合のように、ボディタイプのみが要求され、目標解像度が非常に粗い場合には、１／４〜１／２の個数のセルしか必要としない低解像度ＡＤＦが使用可能である。
【００７１】
これらのサイズは、グレイスケールビットマップフォント（これは各ポイントサイズごとにタイプフェイス当たり約０．５Ｍバイトを要する）よりも大幅に小さく、適切にヒンティングされたアウトラインベースのフォントと同程度のサイズである。ＴｒｕｅＴｙｐｅフォントのサイズは、グリフ数ならびにヒンティングの量および方法に応じて、数十Ｋバイト〜数十Ｍバイトの範囲にある。Monotype Corporationの２つの適切にヒンティングされたフォントであるArialおよびTimes New Romanは、それぞれ２６６Ｋバイトおよび３１６Ｋバイトを要する。
【００７２】
アウトラインからのランタイム生成
本発明によれば、以下で詳細に説明するように、ＡＤＦは、Perry等の文献に記載されているタイル型ジェネレータ(tiled generator)を用いて、既存のアウトラインまたは境界デスクリプタ（例えばベジエ曲線）から迅速に生成することができる。グリフのアウトラインまたは境界までの最小距離は、ベジエクリッピングを用いて効率的に計算される。Sederberg等「Geometric Hermite Approximation of Surface Patch Intersection Curves」（CAGD, 8(2), pp.97-114, 1991）を参照されたい。
【００７３】
生成は、２ＧＨｚのＰｅｎｔｉｕｍ  ＩＶプロセッサ上でグリフ当たり０．０４〜０．０８秒を要する。タイプフェイス全体は、約４秒で生成可能である。従来のヒントが必要でないため、ＡＤＦを生成するのに必要な境界デスクリプタは、それに対応するヒンティングされた対応物よりも大幅に小さい。
【００７４】
したがって、ＡＤＦを格納するのではなく、これらの最小限のアウトラインを格納し、オンデマンドでこれらのアウトラインから動的にＡＤＦグリフを生成することができる。これらの最小限アウトラインのサイズが小さいことは、記憶容量が限られたデバイスにとって、および帯域幅が制限されたネットワークを通じてグリフを伝送するアプリケーションにとって重要である。
【００７５】
図１０は、グリフのような２次元オブジェクトを２次元距離フィールドに変換する方法１０００を示している。オブジェクト１００１は、境界デスクリプタ（例えばスプライン）の集合およびフィル規則（例えば、偶奇規則や非ゼロ巻数規則）として表現される。
【００７６】
まず、境界デスクリプタの集合を前処理する（１０１０）。前処理は、境界デスクリプタを細分割することにより、それらの空間的広がりを縮小する。境界デスクリプタの集合の濃度を小さくするために、境界デスクリプタを合体させてもよい。前処理により、以下で説明するように、符号なし距離を求める際に各位置について問い合わせる必要のある境界デスクリプタの数が減少する。
【００７７】
空間階層１０２１（例えばquadtree）を、前処理された境界デスクリプタの集合１０１１から構成する（１０２０）。交点のキャッシュ１０３１を初期化する（１０３０）。交点のキャッシュ１０３１は、境界デスクリプタが距離フィールドの線集合（例えば水平線、垂直線、斜め線等）と交差する位置およびその交差方向を格納する。これにより、符号なし距離の符号を決定する際の冗長な計算が除去される。交点は区間でソートすることができる。
【００７８】
次に、位置の集合において空間階層１０２１に問合せを行う（１０４０）ことにより、それらの位置における距離の集合を求める。その距離の集合を用いて、２次元距離フィールド１０４１を構成する。問合せは、各位置における距離関数（例えばベジエクリッピング）を呼び出して、符号なし距離を求める。交点のキャッシュ、位置、およびフィル規則を用いて、その距離に対する符号を決定する。
【００７９】
コンポーネントベースのフォントによる圧縮
中国語、日本語、および韓国語のフォント（これらは１０，０００以上のグリフからなることがある）に対して、Ｆｏｎｔ  Ｆｕｓｉｏｎの場合のようにコンポーネントベースの表現を用いることにより、大幅な圧縮を達成することができる。その表現は、グリフを共通のストロークおよび部首（すなわち、複数のグリフに共通の複雑な形状）に分解し、ストロークおよび部首をフォントライブラリに格納してから、それらをフォントレンダリングエンジンで再結合する。
【００８０】
距離フィールドはインプリシットな表現であるため、ＡＤＦは、ブレンディングまたはＣＳＧ演算を用いて容易に結合することができ、したがって、コンポーネントベースの手法による圧縮によく適している。
【００８１】
２次元距離フィールドにおける隅の表現
双一次または双二次再構成法によるディテール指向サンプリングにより、ＡＤＦは、少数の距離値で２次元オブジェクトの境界の比較的滑らかなセクションを表現することができる。しかし、隅（コーナー）付近では、距離フィールドはこれらの再構成法で十分に近似されない高い変動を有する。隅付近で正確に距離フィールドを表現するために、このようなＡＤＦでは、隅を含むセルを高度に細分割しなければならず、必要な記憶容量が大幅に増大する。また、Perry等の文献に記載されているようにＡＤＦ生成中に課されるＡＤＦの最大細分割レベルは、双一次および双二次ＡＤＦセルを用いて隅を表現することができる精度を制限する。
【００８２】
この問題点に対処するため、本発明は、グリフのような２次元オブジェクトの隅を包囲するセル内に２次元距離フィールドを生成する方法１３００を提供する。
【００８３】
方法１３００は、２次元オブジェクトから境界デスクリプタの順序集合１３１１を求め（１３１０）、境界デスクリプタの順序集合１３１１から例えばセル近傍または内に関連した隅点１３２１を識別する（１３２０）。次に、セルを、隅のほうに最も近い第１領域およびオブジェクトの境界のほうに最も近い第２領域という２つの領域に分割する（１３３０）。また、方法１３００は、セル内の距離を再構成するための再構成法およびサンプリングされた距離値の集合１３７１を指定し（１３４０）、隅点１３２１、領域を画定する線、再構成法、およびサンプリングされた距離値の集合１３７１をメモリに格納する（１３８０）。
【００８４】
再構成法は、セル内の点における距離を、その点が存在する領域に応じて求める。第１領域内の問合せ点に対する距離は、問合せ点から隅点までの距離として求められる。
【００８５】
第２領域における距離を求めるため、境界デスクリプタの順序集合１３１１を、隅点１３２１の前の境界デスクリプタを含む部分集合と、隅点１３２１の後の境界デスクリプタを含む部分集合という２つの部分集合に分割する（１３５０）。次に、セルを内部および外部セクションに分割する延長された曲線を形成するように、境界デスクリプタの各部分集合を拡張する（１３６０）。各セクションについて、セル内の距離フィールドは、対応する延長された曲線から求められる（１３７０）サンプル距離値の集合１３７１から再構成することができる。双二次再構成法の場合、２つのセクションのそれぞれについて、９個の距離値を格納する必要がある。
【００８６】
なお、２つの内部セクションの共通部分はオブジェクトの隅をなすことに留意されたい。したがって、第２領域内の距離は、第１内部セクションまでの距離および第２内部セクションまでの距離を再構成してから、２つの求められた距離の最小値を選択することにより求めることができる。
【００８７】
２つの領域は、隅点を通る２本の有向線から指定することができる。各線は、境界デスクリプタの２つの部分集合の一方に垂直である。各線は、隅点と、その隅点における境界デスクリプタの対応する部分集合の外向き法線で指定することができる。こうして線が画定されると、その線のどちらの側に問合せ点があるかを、問合せ点から隅点へのベクトルと外向き法線との交差積を求めることにより判定することができる。両方の線の外部の側にある点は第１領域にあり、いずれかの線の内部の側にある点は第２領域にある。
【００８８】
図２１Ａ〜図２１Ｄはコーナセルの表現を示す。図２１Ａにおいて、セル２１０２はオブジェクト２１０４の一部を含み、オブジェクト２１０４の内部は網掛けされ、外部は白のままにされる。セル２１０２内のオブジェクト２１０４の境界は、第１の境界デスクリプタの集合２１１４、隅点２１１６、および第２の境界デスクリプタの集合２１１８を含む。
【００８９】
オブジェクト２１０４の部分のセル２１０２内の距離フィールドは、図２１Ｂに示す延長曲線２１１５の距離フィールド、図２１Ｃに示す延長曲線２１１９の距離フィールド、および図２１Ｄに示す隅点２１１６の距離フィールドを結合することによって表現することができる。延長曲線２１１５は、第１の境界デスクリプタの集合２１１４を延長することによって定義される。同様に、延長曲線２１１９は、第２の境界デスクリプタの集合２１１８を延長することによって定義される。
【００９０】
好ましい一実施の形態において、延長曲線２１１５および２１１９の距離フィールドはそれぞれ、サンプリングされた距離の集合と、双一次再構成法または双二次再構成法等の再構成法とを用いて表現され、隅点２１１６の距離フィールドは、サンプル点から隅点２１１６までの符号付き距離を求める手続きによって表現される。
【００９１】
隅点２１１６の距離フィールドの符号は、隅点２１１６によって表現される隅の角度から決定することができる。オブジェクト２１０４の部分の外部で測定される隅の角度が鋭角である場合、隅点２１１６の距離フィールドの符号は正となる。オブジェクト２１０４の部分の外部で測定される隅の角度が鈍角である場合、隅点２１１６の距離フィールドの符号は負となる。例えば、隅点２１１６によって表現される隅は鈍角であり、隅の距離フィールドの符号は負である。
【００９２】
延長曲線２１１５および２１１９ならびに隅点２１１６の距離フィールドはそれぞれ有効なエリアと無効なエリアを有する。有効なエリアと無効なエリアは、延長曲線２１１５に対する法線ベクトル２１２０によって定義される第１の線と、延長曲線２１１９に対する法線ベクトル２１２２によって定義される第２の線とによって分離され、両線は隅点２１１６を通過する。
【００９３】
図２１Ｂ、図２１Ｃ、および図２１Ｄは、延長曲線２１１５および２１１９ならびに隅点２１１６に対して、網掛けされた無効なエリア２１２４、２１２６、および２１２８ならびに網掛けしていない有効なエリア２１３０、２１３２、および２１３４をそれぞれ示す。方法１３００について上で定義した第１領域および第２領域は、有効なエリアから求めることができる。第１領域、すなわち、隅点２１１６に最も近いセルの領域は、隅点２１１６の有効なエリア２１３４と同じである。第２領域、すなわち、オブジェクト２１０４の境界に最も近いセルの領域は、延長曲線２１１５の有効なエリア２１３０と延長曲線２１１９の有効なエリア２１３２の和集合である。
【００９４】
本発明の一実施の形態では、セル２１０２内のサンプル点における距離を求めるために、延長曲線２１１５の距離フィールドから第１の符号付き距離および第１の対応する有効性フラグを、延長曲線２１１９の距離フィールドから第２の符号付き距離および第２の対応する有効性フラグを、そして隅点２１１６の距離フィールドから第３の符号付き距離および第３の対応する有効性フラグを再構成する。第１の有効性フラグ、第２の有効性フラグ、および第３の有効性フラグはそれぞれ、サンプル点が延長曲線２１１５、延長曲線２１１９、および隅点２１１６の有効エリアの内部にあるか外部にあるかに応じて判定される。サンプル点からオブジェクト２１０４の部分までの距離は、サンプル点の有効な第１の符号付き距離、第２の符号付き距離、および第３の符号付き距離のうちの最小値である。
【００９５】
２次元距離フィールドにおけるステムおよび他の細い構造の表現
コーナセルを使用することにより、ＡＤＦは、セルを過度に細分割することなく隅を正確に表現することができる。しかし、隅に加えて、グリフ等の２次元オブジェクトは、垂直ステムまたは水平バー等の細い構造を有し得る。このような構造の付近では、距離フィールドはＣ１不連続（C1 discontinuous）であり得る。距離フィールドは、ある点における勾配が特異である、すなわち連続でないとき、その点においてＣ１不連続である。
【００９６】
例えば、距離フィールドは、細い構造の両側の境界デスクリプタの中間の曲線に沿ってＣ１不連続である。この不連続性は、ＡＤＦのセルの過度な細分割を必要とし得るため、細い構造付近ではより良いセル表現および再構成法が必要とされる。
【００９７】
本発明は、細い構造付近のセルに対して「２セグメントセル」表現および２セグメントセルの再構成法を提供する。図２２Ａ、図２２Ｂ、および図２２Ｃは、本発明による２セグメントセルを示す。
【００９８】
図２２Ａにおいて、セル２２０２はオブジェクト２２０６の一部を含み、オブジェクト２２０６の内部は網掛けされ、外部は白のままにされる。セル２２０２内のオブジェクト２２０６の部分の境界は、第１のセグメント２２１４を含む第１の境界デスクリプタの集合と、第２のセグメント２２１６を含む第２の境界デスクリプタの集合とを含む。
【００９９】
セル２２０２内のオブジェクト２２０６の部分の距離フィールドは、図２２Ｂに示す第１のセグメント２２１４の距離フィールド、および図２２Ｃに示す第２のセグメント２２１６の距離フィールドを結合することによって表現することができる。好ましい一実施の形態において、第１のセグメント２２１４および第２のセグメント２２１６の距離フィールドはそれぞれ、サンプリングされた距離の集合および双一次再構成法または双二次再構成法等の再構成法を用いて表現される。
【０１００】
サンプル点からセル２２０２内のオブジェクト２２０６の部分までの距離を求めるために、サンプル点において、第１のセグメント２２１４の距離フィールドから第１の符号付き距離を、そして第２のセグメント２２１６の距離フィールドから第２の符号付き距離を再構成する。
【０１０１】
図２２Ｂにおいて、第１のセグメント２２１４の符号付き距離フィールドの正のエリア２２２０は網掛けされ、負のエリア２２２２は白のままにされる。図２２Ｃにおいて、第２のセグメント２２１６の符号付き距離フィールドの正のエリア２２３０は網掛けされ、負のエリア２２３２は白のままにされる。セル２２０２内のオブジェクト２２０６の部分は、図２２Ｂの網掛けされた正のエリア２２２０と、図２２Ｃの網掛けされた正のエリア２２３０との共通集合である。好ましい実施の形態において、サンプル点からセル２２０２内のオブジェクト２２０６の部分までの距離は、第１の符号付き距離および第２の符号付き距離のうちの最小値である。
【０１０２】
図２３は、２次元オブジェクト２３０１に関連する２セグメントセル２３０２内の２次元距離フィールドを生成する方法２３００を示す。オブジェクト２３０１について境界デスクリプタの集合２３１１を求める（２３１０）。境界デスクリプタ２３１１は、線分およびスプライン曲線、例えばベジエ曲線を含む様々な表現を有することができる。
【０１０３】
境界デスクリプタ２３１１をセグメントの集合２３２１に分割し（２３２０）、セグメントの集合２３２１におけるセグメントを、前処理ステップにおいて、または分割２３２０中に求めることができる特徴の集合によって画定する。特徴の例としては、オブジェクト２３０１の隅、境界デスクリプタ２３１１の曲率が大きい点、特定の境界デスクリプタの端点、または特定のセグメントに沿って累積される曲率が所定の閾値を超える特定の境界デスクリプタ上の点が挙げられる。累積曲率が大きい点に特徴を配置することによって、例えば、セグメントが折り返し（curve back on itself）始める場合、例えばセグメントの累積曲率が９０度を超える場合に、そのセグメントを画定することができる。
【０１０４】
セル２３０２のセグメントの集合２３２１において第１のセグメント２３３１および第２のセグメント２３３２を識別する（２３３０）。好ましい一実施の形態において、識別２３３０は、各テスト点からセグメントの集合２３２１における各セグメントまでの距離を求めることによって、セグメントの集合２３２１から、セル２３０２内のテスト点の集合における各テスト点に最も近いセグメントを見つける。セル２３０２内の全てのテスト点が、セグメントの集合２３２１における２つの特定のセグメントの一方に最も近い場合、それら２つの特定のセグメントを２セグメントセルの第１のセグメント２３３１および第２のセグメント２３３２として識別する（２３３０）。
【０１０５】
第１のセグメント２３３１の距離フィールドを表現する第１の距離値の集合２３４１、および第２のセグメント２３３２の距離フィールドを表現する第２の距離値の集合２３４２を指定する（２３４０）。例えば、９つの距離値の集合を双二次再構成法とともに指定して（２３４０）、セグメントの一方に対応する距離フィールドを表現することができる。
【０１０６】
方法２３００は、第１の距離値の集合２３４１および第２の距離値の集合２３４２を結合してセル２３０２内の距離フィールドを再構成する再構成法２３５１を定義する（２３５０）。好ましい一実施の形態において、再構成法２３５１はセル２３０２内のあるサンプル点における距離フィールドを、第１の距離値の集合２３４１を用いてそのサンプル点から第１のセグメント２３３１までの第１の距離を求め、第２の距離値の集合２３４２を用いてそのサンプル点から第２のセグメント２３３２までの第２の距離を求め、第１の距離と第２の距離の最小値をとることによって第１の距離と第２の距離を結合することによって再構成する。
【０１０７】
距離値の集合２３４１、距離値の集合２３４２、および再構成法２３５１は、メモリ２３７０に格納されて（２３６０）、セル２３０２内の２次元オブジェクト２３０１の２次元距離フィールドの再構成を可能にする。
【０１０８】
特殊なセルを用いた距離フィールドの最適なセル構成の決定
コーナセルおよび２セグメントセル等の特殊なセルを用いることにより、隅および細い構造を有するグリフ等のオブジェクトを表現するＡＤＦのセルの過度な細分割を軽減することができる。しかし、このような特殊なセルを用いる距離フィールドの最適なセル構成を求めることは、特殊なセルを用いずに最適なセル構成を求めるよりも遥かに複雑になり得る。距離フィールドのセル構成は、例えば、セルの位置、サイズ、方位、再構成法、タイプ、および幾何学的形状を含む。
【０１０９】
オブジェクトを表現する距離フィールドを含む領域を分割する多くのセル構成が可能である。Frisken他の従来技術は、領域を矩形のセルに分割して四分木ベースまたは八分木ベースのＡＤＦを生成することにより、特殊なセルを用いずに非最適な構成を提供するトップダウン細分割法およびボトムアップ細分割法を教示している。従来技術とは異なり、本発明は、最適なセル構成を用いてセルベースの距離フィールド表現を生成する方法を提供する。好ましい実施の形態において、最適な構成は、コーナセルおよび２セグメントセル等の特殊なセルを含み得る。
【０１１０】
図２４Ａは、２次元オブジェクト２４０１の一部を含む領域２４６０を示し、オブジェクトの内部は網掛けされ、外部は白のままにされる。領域２４６０内のオブジェクト２４０１の部分の境界は、第１の境界デスクリプタの集合に関連する第１のセグメント２４０６、第２の境界デスクリプタの集合に関連する第２のセグメント２４０８、および第３の境界デスクリプタの集合に関連する第３のセグメント２４１０を含む。第１のセグメント２４０６と第２のセグメント２４０８はオブジェクト２４０１の部分の隅２４１２で交わり、第２のセグメント２４０８と第３のセグメント２４１０はオブジェクト２４０１の部分の隅２４１４で交わる。
【０１１１】
領域２４６０を分割してセルの構成を求める多くの方法がある。図２４Ｂ〜図２４Ｄは、領域２４６０を分割する、２セグメントセルおよびコーナセルを含み得る場合の様々なセル構成を示す。最適な構成の「最適」の具体的な定義は多くの要因に依存し、そのうちのいくつかを図２４Ｂ〜図２４Ｄに示し、その他のものを後述する。
【０１１２】
図２４Ｂは、領域２４６０内のオブジェクト２４０１の境界のボロノイ図を示す。異なる網掛けを施した各セルは、特定のセグメントまたは隅に最も近い領域２４６０の一部を示す。セル２４２０内の点はセグメント２４０６に最も近い。セル２４２２内の点はセグメント２４０８に最も近い。セル２４２４内の点はセグメント２４１０に最も近い。セル２４２６内の点は隅２４１２に最も近い。最後に、セル２４２８内の点は隅２４１４に最も近い。
【０１１３】
図２４Ｂのボロノイ図は、「１セグメントセル」のみを用いる場合の、領域２４６０の最適なセル構成の一例であり、１セグメントセルは、セル内の距離フィールドを単一のセグメントから求めることができるセルとして定義される。１セグメントセル内の距離は、セルに最も近いセグメントの曲率が実質的に小さいとき、例えば双二次再構成法を用いて、サンプリングされた距離値の集合から再構成することができる。セル内の点からそのセルに最も近いセグメントまでの距離を解析的に求めることを含む様々な代替的な再構成法も可能である。
【０１１４】
図２４Ｂのボロノイ図は、１セグメントセルを用いてオブジェクト２４０１の部分の距離フィールドを領域２４６０内のどこでも正確に再構成することのできる最小数のセルを提供するという点で最適なセル構成である。ボロノイ図を用いて領域２４６０を分割する欠点は、ボロノイ図の正確な構成を求めることが難しいことである。ボロノイ図を用いる第２の欠点は、セルの境界が非常に複雑になる可能性があり、それによってレンダリング中にセルをラスタライズして見つけるための計算時間が実質的に長くなることである。
【０１１５】
図２４Ｃは、上で定義したコーナセルを用いて領域２４６０を分割する代替的な最適なセル構成を提示する。領域２４６０は、第１のコーナセル２４３０と、第２のコーナセル２４３２とに分割される。コーナセル２４３０内の距離は、第１のセグメント２４０６、隅２４１２、および第２のセグメント２４０８を用いて再構成することができる。コーナセル２４３２内の距離は、第２のセグメント２４０８、隅２４１４、および第３のセグメント２４１０を用いて再構成することができる。コーナセル２４３０またはコーナセル２４３２内の距離は、サンプリングされた距離値から、上述のようなコーナセル再構成法を用いてかなり高い精度まで再構成することができる。
【０１１６】
図２４Ｃに示すセル構成の、図２４Ｂおよび図２４Ｄの構成に対する利点は、図２４Ｃの構成が必要とするセル数が少ないことである。欠点は、コーナセル再構成法は通常、１セグメント再構成法または２セグメント再構成法よりも複雑で非効率であり、図２４Ｃのセル構成は、領域２４６０内の全ての点に対してコーナセル再構成法を用いる必要があることである。図２４Ｃの構成に伴う第２の欠点は、図２４Ｂのボロノイ図と同様に、セル境界を判定することが難しい場合があることである。第３の欠点は、セル境界が非常に複雑になる場合があり、それによってレンダリング中にセルをラスタライズして見つけるための計算時間が実質的に長くなることである。
【０１１７】
図２４Ｄは、領域２４６０の第３の代替的な最適な分割を示す。領域２４６０は四分木に分割され、四分木の各リーフセルは、セルのタイプに応じて網掛けされる。セル２４４０は１セグメントセルであり、セル内の点はセグメント２４１０に最も近い。セル２４４２は２セグメントセルであり、セル内の点はセグメント２４０６またはセグメント２４１０のいずれかに最も近い。セル内の距離は、２セグメント再構成法を用いて再構成することができる。セル２４４４はコーナセルであり、セル内の点は、隅２４１２、セグメント２４０６、またはセグメント２４０８のいずれかに最も近い。セル２４４６もまたコーナセルであり、セル内の点は、隅２４１４、セグメント２４０８、またはセグメント２４１０のいずれかに最も近い。セル２４４４およびセル２４４６内の距離は、コーナセル再構成法を用いて再構成することができる。
【０１１８】
セル２４４８、２４５０、および２４５２は外部セル、すなわち、オブジェクト２４０１の部分の外部の、オブジェクト２４０１の境界から最小距離を越えたところにあるセルである。最小距離を越えて距離フィールドの正確な表現が必要とされない場合、セル２４４８、２４５０、および２４５２内の点における距離は、より単純な再構成法により近似することができる。例えば、それらの点における距離は、双二次再構成法を用いて９つのサンプリングされた距離値から再構成することができ、それによってメモリおよび計算時間が少なくなる。
【０１１９】
図２４Ｄに示す分割の利点は、セルが単純な境界を有し、よってレンダリング中に迅速かつ容易にラスタライズされ見つけられることである。第２の利点は、四分木が、距離フィールドの高速問い合わせを可能にする空間データ構造を提供することである。図２４Ｃの構成に対する利点は、領域内の一部の点には単純な再構成法、例えば１セグメント再構成法または双二次再構成法を用い、必要な場合にのみ、より複雑な方法、例えば２セグメント再構成法および隅再構成法を用いることによって、計算時間を少なくすることである。欠点は、図２４Ｄの構成では図２４Ｂおよび図２４Ｃの構成よりもセルが多くなることである。
【０１２０】
図２４Ｂ、図２４Ｃ、および図２４Ｄに示す例により説明されるように、特殊なセルタイプを用いるとき、オブジェクトを表現する距離フィールドを分割する最適なセル構成は多くある。構成を生成する際、「最適」の定義は、構成をレンダリング、編集、および処理する方法を含む多くの要因に依存する。
【０１２１】
最適な構成とは、セルベースの距離フィールド表現の所望の特性の集合のバランスをとる構成を意味する。構成の最適化は、数例を挙げると、距離フィールドのサイズを最小にすること、距離フィールドをレンダリングするために必要な時間を最短にすること、距離フィールドを生成するための時間を最短にすること、距離フィールドのレンダリングの品質メトリックを最大にすること、セル数を最小にすること、および、距離フィールドの精度を最高にすることによって誘導することができる。
【０１２２】
図２５は、オブジェクトを表現する形状デスクリプタ２５０２の領域２５０１についてセルベースの距離フィールドを生成する方法２５００を示す。セルタイプの集合２５１１を定義し（２５１０）、ここでセルタイプは、双一次セルタイプおよび双二次セルタイプ、ならびに数例を挙げるとコーナセルタイプおよび２セグメントセルタイプを含む様々な特殊なセルタイプを含むことができる。
【０１２３】
方法２５００は、領域２５０１のセル集合の構成２５２１を生成し（２５２０）、ここでセル集合の各セルは、セルタイプの集合２５１１によって定義される特定のセルタイプ、およびセル内の距離フィールドを再構成する再構成法２５１２を有する。セル集合の構成２５２１は、領域２５０１のセル集合の最適な構成２５３１に達するまで、形状デスクリプタ２５０２、領域２５０１、およびセルタイプの集合２５１１を用いて修正される（２５３０）。セル集合の最適な構成２５３１は、メモリ２５４１に格納されて（２５４０）、セルベースの距離フィールドが生成される。
【０１２４】
Frisken他に記載される従来技術のトップダウン生成法およびボトムアップ生成法とは異なり、本発明による構成は、領域２５０１の完全なモザイクまたは不完全なモザイクを提供することができる。例えば、本発明によれば、構成２５２１と最適な構成２５３１の両方により領域の部分集合をカバーし、距離フィールドが表現されない領域のエリア、または領域の上位集合を残しておき、領域の外部にある距離フィールドの表現を提供することができる。従来技術の方法とは異なり、本発明におけるセルは、重なり合う可能性があり、最適な構成を生成するさらなる機会を与える。
【０１２５】
従来技術の方法は、最適化基準によって誘導されないため、いかなる意味においても最適な構成を生成しない。従来技術は、厳格に決定論的な方法を適用し、結果として、しばしば制限された準最適な構成を生じる。従来技術はまた、生成中に特殊なセルを考慮しない。
【０１２６】
本発明による最適な構成を達成するために、セル集合の構成２５２１の生成２５２０および修正２５３０は、ユーザにより手動で、コンピュータにより自動で、または半自動で、すなわちユーザから入力を受けるコンピュータによって行うことができる。修正２５３０は、セル集合の構成２５２１に対してセルを追加または削除することによって、または特定のセルの属性、例えば特定のセルの幾何学的形状、位置、方位、およびタイプを変化させることによって、セル集合の構成２５２１を変化させることができる。生成２５２０および修正２５３０はともに、決定論的な方法、または確率的方法およびランダム化方法を含む非決定論的な方法を用いて行うことができる。
【０１２７】
一実施の形態において、生成２５２０は、領域２５０１内の任意または所定の位置に単一のセルを配置し、修正２５３０は、セルを最適な形状およびサイズに調整する。修正２５３０は次に、新たなセルを領域２５０１のカバーされていないエリアに追加し、そのそれぞれを最適な形状およびサイズに調整し、このプロセスを、最適な構成２５３１に達するまで繰り返す。別の実施の形態において、生成２５２０は、コーナセルの最初の集合を形状デスクリプタ２５０２の隅点近くに配置し、修正２５３０は、領域２５０１の残りのカバーされていないエリアをモザイク化して、別の最適な構成２５３１を判定する。これらの実施の形態はともに、Frisken他の従来技術の方法では不可能な最適な構成２５３１を提供する。
【０１２８】
別の実施の形態において、生成２５２０は、形状デスクリプタ２５０２を前処理することであって、それによって、生成２５２０および修正２５３０の両方を加速するために使用することができる前処理された形状デスクリプタの集合および対応する前処理された距離手続きの集合を生成する、前処理することを含むことができる。
【０１２９】
例えば、前処理は、形状デスクリプタから境界デスクリプタを求め、境界デスクリプタを、境界デスクリプタの特徴によって画定されるセグメントの集合に分割することができる。特徴は、隅点、曲率の大きな境界デスクリプタに沿った点、境界デスクリプタの端点、および上述したような累積曲率の大きな点を含むことができる。これらの特徴は修正２５３０中に、特定の特徴を追加、削除、および変更することによって変化し得る。修正２５３０中に特徴が変化するとき、それに従って前処理された形状デスクリプタの集合および前処理された距離手続きの集合を適応させることができる。
【０１３０】
フォントレンダリング
現在のフォントレンダリングエンジンでは、ほとんどの場合、フォントはアウトラインとして表現され、必要に応じて所望の出力サイズに適合するようにスケーリングされる。ほとんどの高解像度プリンタは２値レンダリングを使用しているが、最新のディスプレイデバイスは、小さいポイントサイズにおいて、グレイスケールレンダリング、またはグレイスケールレンダリングと２値比レンダリングの組合せを使用するほうが普通である。
【０１３１】
グレイスケールグリフをラスタライズするための一般的手法では、それらのアウトラインに対するスケーリングおよびヒンティングを行う。スケーリングされヒンティングされたアウトラインを、通常は所望の解像度の４〜１６倍の大きさの高解像度イメージに走査変換する。次に、フィルタリング方法（例えばボックスフィルタ）を適用することによって、高解像度イメージをダウンサンプリングして、最終的なグレイスケールイメージを生成する。
【０１３２】
ボディタイプの場合、個々のグリフを一度ラスタライズし、前処理ステップで再使用するためにグレイスケールビットマップとしてキャッシュに格納することができる。グリフのサブピクセル配置の必要性から、各グリフのいくつかのバージョンをラスタライズしなければならないことがある。ボディタイプに対してキャッシュを使用することにより、例えばＡｄｏｂｅ  Ａｃｒｏｂａｔ  ＰＤＦ文書でページ移動するようなタスク中に、短い遅延（例えば１／２秒）での高品質のレンダリングが可能となる。
【０１３３】
しかし、任意のパスに対してレンダリングされたタイプおよび動画化タイプではキャッシュを使用することができないため、それらのタイプはオンデマンドで生成しなければならない。リアルタイムレンダリングの要求は、低品質フィルタ、例えばピクセル当たり４サンプルでのボックスフィルタリングの使用を余儀なくさせる可能性があるとともに、ヒンティングを使用できない可能性がある。これは、空間的および時間的エイリアシングならびにベースラインジッタおよび一貫性のないストロークウェイトを引き起こすことがある。エイリアシングは、システムメモリに存在するヒンティングされたデバイスフォントを用いて低減することができる。しかし、リアルタイムフレームレートを維持することは、ヒンティングされたデバイスフォントをどのようにして使用することができるかに対する重大な制約となる。例えば、ヒンティングされたデバイスフォントを動的にスケーリングまたは回転することができない。
【０１３４】
ＣｌｅａｒＴｙｐｅに関するMicrosoftの最近の仕事は、アドレス可能なカラーサブピクセル（すなわちコンポーネント）の繰り返しパターンを含むＬＣＤカラーディスプレイに対する特別な扱いにつながっている。Plattは、「Optimal Filtering for Patterned Displays」（IEEE Signal Processing Letters, 7(7), pp.179-180, 2000）において、各色コンポーネントに対する知覚的に最適なフィルタの集合を記述している。実際には、最適なフィルタは、各色ごとに１つずつの、３個の変位したボックスフィルタの集合として実現される。
【０１３５】
ＣｌｅａｒＴｙｐｅは、従来技術のカバレジベースのアンチエイリアシング方法を用いて各ピクセルの各コンポーネントの強度を決定する。これに対して、本発明者等の距離フィールドベースの方法は、距離フィールドを用いて各ピクセルの各コンポーネントの強度を決定し、より少数のサンプルを用いてこれを行う。以下で説明する本発明者等のＡＤＦアンチエイリアシング方法は、ピクセル当たりのサンプル数を少なくした最適フィルタのエミュレーションを改善するために、ボックスフィルタに取って代わることができる。
【０１３６】
アンチエイリアシング
レンダリングされたフォントにおける外観アーティファクトを理解するには、エイリアシングの理解が必要である。通常、１つのピクセルは離散的なコンポーネント（例えば、カラープリンタやディスプレイでは赤、緑、および青コンポーネント）から構成される。グレイスケールデバイスでは、ピクセルは単一の離散的コンポーネントである。ピクセルは離散的であるので、出力デバイスへのレンダリングは本質的にサンプリングプロセスである。サンプリングレートは、デバイスの解像度に依存する。サンプリングレートがソース信号中の最高周波数の少なくとも２倍（ナイキスト周波数）でなければ、サンプリングされた信号はエイリアシングを呈する。
【０１３７】
エッジ（例えばグリフアウトライン）は、無限個の周波数成分を有する。したがって、サンプリングされたデータでエッジを厳密に表現することはできない。エッジの不十分なサンプリングは、ギザギザを生じ、これは動画像において、サンプリングされたエッジに沿ってはう傾向がある。ソース信号が空間的パターン（例えば、「ｍ」の垂直ステムの繰り返しや、「ｉ」の単一の垂直ステム）も含み、その周波数成分がサンプリングレートに比べて高すぎる場合、サンプリングされたデータは脱落、モアレパターン、および時間的ちらつきを呈することがある。
【０１３８】
エイリアシングを避けるには、入力信号をプレフィルタリングすることによって、サンプリングレートで許容される周波数成分よりも高い周波数成分を除去しなければならない。一般的に、プレフィルタリングには２つの手法がある。
【０１３９】
第１の手法は解析的フィルタリングと知られている。これは、サンプリングの前に、ソース信号の連続表現に対して、ある種の空間的平均化を適用する。残念ながら、解析的フィルタリングは不可能なことが多く、その理由は、ソースデータが連続信号として提供されない（これは画像処理では通例である）か、または、フィルタフットプリント内の信号の解析的記述を求めるのは複雑すぎるためである。これは、コンピュータグラフィックスにおける単純な幾何形状以外のすべての場合に当てはまり、スプラインベースのアウトラインについては確かに成り立つ。
【０１４０】
第２の手法は離散的フィルタリングとして知られている。この手法では通常、ソース信号を目標レートよりも高いレートでサンプリングすることにより、スーパーサンプリングされたイメージを得る。次に、離散的フィルタを適用して、スーパーサンプリングされたイメージ中の高い周波数を低減した後で、イメージを目標レートまでダウンサンプリングする。この離散的手法は、コンピュータグラフィックスにおいては規則的スーパーサンプリング(regular supersampling)と呼ばれる。
【０１４１】
処理バジェット、ハードウェアの考慮点、および出力イメージにおけるコントラスト対滑らかさに対する個人的選好に応じて、種々の離散的フィルタを適用することができる。タイプをレンダリングするために通常使用されるボックスフィルタは、スーパーサンプリング値の矩形配列をそれらの算術平均で単に置き換えるものであり、一般的に信号処理分野では劣るものとみなされている。
【０１４２】
もう１つの手法として、適応スーパーサンプリングは、より高い局所周波数成分を有するイメージの領域に対するサンプリングおよびフィルタリングのために、利用可能なリソースを集中させる。最適な適応サンプリングは、イメージ内の局所変動性から決定することができる。しかし、この技法の有用性は、イメージの局所変動を推定する必要性によって制限される。この推定のプロセスは、計算量的に高価になることがある。
【０１４３】
高周波パターンの不十分な規則的サンプリングに起因するモアレパターンは、人間の視覚系には特に好ましくない。一般的な画像処理では、確率的サンプリングすなわちジッタ付きサンプリング(jittered sampling)を用いてこの問題点を解決している。確率的サンプリングでは、サンプルをその公称位置からわずかにランダムに変位させる。確率的サンプリングは、モアレパターンエイリアシングを高周波ノイズで置き換える傾向があり、時間的エイリアシングを低減する場合に特に有効であることが示されている。
【０１４４】
距離ベースのアンチエイリアシングを伴うレンダリング
グリフのエッジにより導入される無限個の周波数成分は、従来技術のフォントレンダリングにおけるエイリアシングへの主要な寄与である。これに対して、本発明によって、２Ｄ距離フィールドを用いて２Ｄオブジェクトを表現してから２Ｄ距離フィールドをサンプリングすれば、表現がＣ０連続であるので、そのようなエッジが回避される。代わりに、最大周波数が、グリフ自体の空間的パターン（例えば、「ｍ」の垂直ステムの繰り返しや、「ｉ」の単一の垂直ステム）に依存する。
【０１４５】
本発明者等は、グリフをその２Ｄ距離フィールドで表現することによって、解析的プレフィルタを効果的にグリフに適用している。以下で説明するような、距離フィールドをレンダリングするための本発明者等のアンチエイリアシング方法によれば、従来の解析的プレフィルタの出力とは異なる出力が得られる。
【０１４６】
距離フィールドによるアンチエイリアシング
図４は、２次元距離フィールド４１１として表現（４１０）されたオブジェクト４０１（例えばグリフ）をイメージ順にアンチエイリアシングする方法４００を示している。各ピクセル４０２は、１つまたは複数のコンポーネント４０４（「ＲＧＢ」型の出力デバイスの場合は通常、赤、青、および緑コンポーネント）を含むことができる。この方法は、各ピクセル４０２の各コンポーネント４０４に対して１つまたは複数のサンプルを使用することができる。方法４００は、適応的な距離ベースのスーパーサンプリング、距離ベースの自動ヒンティング、および距離ベースのグリッドフィッティングを提供する。結果として得られるアンチエイリアシングされたピクセル強度は、イメージの一部としてＣＲＴおよびＬＣＤのようなディスプレイ上にレンダリングされることが可能である。本方法は、モーションブラーをレンダリングするのに特に有用である。
【０１４７】
オブジェクト４０１を表現する２次元距離フィールド４１１内のサンプル点４０７の集合４０３を、各ピクセル４０２の各コンポーネント４０４に関連づける（４２０）。距離（Ｄ）４０５を、２次元距離フィールド４１１およびサンプル点集合４０３から求める（４３０）。次に、距離４０５を、ピクセル４０２のコンポーネント４０４のアンチエイリアス強度（Ｉ）４０６にマッピングする（４４０）。
【０１４８】
好ましい実施の形態では、グリフ４０１を、上記のように双二次ＡＤＦ４１１で表現する（４１０）。これにより、フォントレンダリング中に距離ベースのアンチエイリアシングを適用することが効率的になる。２次元距離マップ、２次元距離シェル、特殊なセルを含む最適なＡＤＦ、および手続き型距離フィールドのような他の表現も使用可能である。
【０１４９】
２００２年７月３１日出願の「Method for Traversing Quadtrees, Octrees, and N-Dimensional Bitrees」と題する米国特許出願第１０／２０９，３０２号（これは参照により全体として本明細書に援用される）に記載されているquadtreeトラバース法を用いて、イメージ内の各ピクセル４０２の各コンポーネント４０４について、コンポーネント４０４を含むセル（例えばリーフセル）を見つける。当技術分野で既知の他のトラバース法も本発明で使用可能であるが、上記の方法は比較を含まないため実行が効率的である。コンポーネント４０４における距離は、セルの距離値から再構成され、アンチエイリアス強度（Ｉ）４０６にマッピングされる（４４０）。
【０１５０】
一次関数、ガウス関数、およびシグモイド関数を含むさまざまなマッピングが使用可能である。最良のマッピング関数の選択は主観的である。一実施の形態では、本発明者等のマッピングは２つの関数の合成である。第１の関数は上記の通りであり、第２の関数はコントラスト強調関数である。これらの２つの関数を合成することにより、距離フィールド（Ｄ）４０５をコンポーネント４０４のアンチエイリアス強度（Ｉ）４０６にマッピングする（４４０）。
【０１５１】
図５は、距離５０２の関数としての強度５０１（例えば［０，１］）の線形マッピング５００を示している。このマッピングは、距離をピクセルの各コンポーネントに対するアンチエイリアシングされたイメージ強度に変換する。距離は、オブジェクトの内部では正であり、オブジェクトの外部では負である。異なるカットオフ値５０３および５０４が、エッジコントラストおよびストロークウェイトに影響を及ぼす。本発明者等は、外部５０３および内部５０４フィルタカットオフ値として、ディスプレイタイプのピクセルでは（−０．７５，０．７５）、ボディタイプのピクセルでは（−０．５，０．６２５）の場合に良好な結果を達成している。
【０１５２】
最適な距離ベースの適応スーパーサンプリング
上記の距離ベースのアンチエイリアシング方法は、グリフエッジに起因するエイリアシングを低減する。しかし、ステム幅やグリフコンポーネント間の間隔がディスプレイのサンプリングレートに比べて小さすぎる場合には、依然としてエイリアシングアーティファクトが生じる。このような場合に、以下で説明する距離ベースの適応スーパーサンプリングを適用することにより、空間的および時間的エイリアシングをさらに低減する。
【０１５３】
好ましい実施の形態では、本発明者等の新規な距離ベースの適応スーパーサンプリングとともに双二次ＡＤＦを使用することにより、従来技術のアウトラインベースの表現およびカバレジベースの適応スーパーサンプリング法よりも優れた利点を提供する。ＡＤＦはディテール指向のサンプリングを使用するので、距離フィールドの領域は、その局所変動が高いほど、小さいリーフセルで表現される。したがって、ＡＤＦquadtreeの構造は、最適な距離ベースの適応サンプリングを実施するのに必要な局所変動のマップを提供し、上記のような局所変動を決定する従来技術の適応スーパーサンプリングによるアンチエイリアシング方法における困難を克服する。
【０１５４】
イメージ内の各ピクセル４０２の各コンポーネント４０４について、コンポーネント４０４を含むセルを見つけ、そのコンポーネントのフィルタ半径ｒ内のサンプル点４０７の集合４０３を、ピクセルコンポーネント４０４に関連づける（４２０）。コンポーネント当たりのサンプル点４０７の個数（ｓｐｃ）は、ｒに対するセルの相対サイズ（ｃｅｌｌＳｉｚｅ）に依存する。サンプル点４０７におけるサンプリングされた距離をフィルタリングすることにより、単一の重みつき平均距離４０５を求めてから（４３０）、ピクセル４０２のコンポーネント４０４のアンチエイリアス強度４０６にマッピングする（４４０）。
【０１５５】
種々のフィルタおよびサンプリング戦略が可能である。好ましい実施の形態では、一般的な形式のガウシアンフィルタを使用し、各距離サンプルに
【０１５６】
【数２】
2007529788.tif 000004
【０１５７】
の重みをかける。ここで、ｄはサンプル点からピクセルのコンポーネントまでの距離であり、Ｗはそのコンポーネントに用いられる重みの和である。ボックスフィルタ、コーンフィルタ、負ローブフィルタ、および他の形式のガウシアンフィルタでも同様の結果を得ることができる。
【０１５８】
図６Ａ〜図６Ｃは、本発明者等のサンプリング戦略を示している。サンプル４０７は、重みおよび重み和の効率的計算のために、コンポーネント６０１の近くに同心円６１０をなして配置される。ピクセル間間隔の１．３倍のフィルタ半径ｒ６０２を使用し、ｃｅｌｌＳｉｚｅ＞ｒの場合（図６Ａ）は１ｓｐｃで、ｒ／２＜ｃｅｌｌＳｉｚｅ≦ｒの場合（図６Ｂ）は５ｓｐｃで、そしてｃｅｌｌＳｉｚｅ≦ｒ／２の場合（図６Ｃ）は１３ｓｐｃでサンプリングする。
【０１５９】
サンプル点４０７をピクセルコンポーネント４０４に関連づけるために、本発明は、同心円ではなく数多くの他の戦略を使用することもできる。本発明者等の方法は、厳密にどのサンプリング戦略を採るかということにはあまり左右されない。
【０１６０】
以下で説明するもう１つの適応サンプリング戦略は、フィルタ半径ｒ内に含まれるすべてのセルの中心にサンプル点を配置する。この戦略も同程度に良好な結果を有する。
【０１６１】
セルベースのアンチエイリアシング
上記の距離フィールドによるアンチエイリアシング方法は、走査線ベースのラスタライズを用いたソフトウェアとして実施することができる。別法として、セルに分割された距離フィールドをセルごとに、すなわちオブジェクト順にアンチエイリアシングすることができる。セルベースのレンダリングによれば、サンプル点を含むセルを見つけるために木をトラバースすることが不要となり、単一セル内で距離および勾配を計算するための冗長な設定が不要となり、セルデータの取得（すなわちメモリフェッチ）の繰り返しが少なくなる。
【０１６２】
さらに、レンダリングに必要なセルを固定サイズの自己完結的なユニットの順次ブロックとして表現することができる（すなわち、セル内の点に対する距離および勾配がセルの距離値から求まる）ので、本発明者等のセルベースの手法は、ハードウェア実装に適しており、リアルタイムレンダリングが可能となる。
【０１６３】
図７は、２次元距離フィールド７１１として表現（７１０）されたオブジェクト７０１（例えばグリフ）をオブジェクト順にアンチエイリアシングする方法７００を示している。方法７００は、適応的な距離ベースのスーパーサンプリング、距離ベースの自動ヒンティング、および距離ベースのグリッドフィッティングを提供する。結果として得られるアンチエイリアシングされたピクセル強度は、イメージの一部としてＣＲＴおよびＬＣＤのようなディスプレイ上にレンダリングされることが可能である。本方法は、モーションブラーをレンダリングするのに特に有用である。２次元距離フィールド７１１のセルが、必要な距離サンプルの数を減らすために空間階層に編成されている場合には、ミップマッピングを使用することができる。
【０１６４】
２次元距離フィールド７１１をセル７１２に分割する。双二次の適応的にサンプリングされた距離フィールドを使用する好ましい一実施の形態では、各セルのサイズは２次元距離フィールドの局所変動に依存する。各セルは、セル内の２次元距離フィールドを再構成する方法（Ｍ）７１３を含む。レンダリングすべき距離フィールドの領域（破線）７２２を含むセル７２１の集合を識別する（７２０）。
【０１６５】
領域７２２を用いて、その領域に関連するピクセルの集合７３１を見つける（７３０）。ピクセル集合７３１に属する各ピクセルについて、コンポーネント７４１の集合を指定する（７４０）。次に、セルの集合における距離から各ピクセルの各コンポーネントについてアンチエイリアス強度７５１を求める。ここで、距離は、セルの集合から再構成される。その後、上記のように、距離をアンチエイリアス強度にマッピングする。
【０１６６】
一実施の形態では、ピクセルのコンポーネント付近のセル集合内で単一のサンプル点を見つけ、その単一のサンプル点におけるセル集合からの距離を再構成することによって距離を求めることができる。この実施の形態において、２次元距離フィールド７１１は、特殊なセルを含む最適なＡＤＦとして表現することができる。
【０１６７】
双二次の適応的にサンプリングされた距離フィールドを使用する本発明の好ましい実施の形態では、この手法は、適応的な距離ベースのスーパーサンプリングに対するフィルタ半径よりも小さいセルの特別扱いによって強化される。小さいセルは、距離フィールドに高い変動がある場合に生じるので、これらのセルの近くのピクセルにおける距離は、距離を強度にマッピングする前にプレフィルタリングすることができる。
【０１６８】
要素の合成バッファを初期化する。ここで各要素は、ピクセル集合の各ピクセルのコンポーネントに対応する。セル集合に属する各セルは独立に処理することができる。好ましい実施の形態では、各要素は、重み付き距離および累積重みからなり、これらはいずれもゼロに初期化される。セルが処理される時、これらの重み付き距離および累積重みは、そのセル内、またはそのセルの中心からフィルタ半径内のいずれかに存在するピクセルコンポーネントに対応するバッファ要素においてインクリメントされる。
【０１６９】
すべてのセルを処理した後、重み付き距離を各ピクセルの各コンポーネントに対する累積重みで正規化することにより距離を生成してから、その距離をアンチエイリアシングされたコンポーネント強度にマッピングする。好ましい実施の形態では、上記と同じガウシアン重みおよびフィルタ半径を使用する。
【０１７０】
以上説明した本発明者等のセルベースのレンダリングは、フィルタ半径に対する各セルの相対サイズとは無関係に、セル集合に属するあらゆるリーフセルを常に処理する。理論的には、これは最適の適応的な距離ベースのスーパーサンプリングを提供する。実際には、ＡＤＦquadtreeをミップマッピングとして使用することにより、セル数を減らすことができる。
【０１７１】
ＡＤＦquadtree構造により、小さいリーフセルをそれらの祖先で置き換え、実質的にquadtreeをある所定のセルサイズで打ち切ることができる。このセルサイズがピクセル間間隔の１／４以下である限り、適応的な距離ベースのスーパーサンプリング結果における視覚的劣化はない。これは、領域をレンダリングするためのセル数を減少させる。
【０１７２】
２次元距離フィールドによって表現される重なり合うオブジェクトのレンダリング
本発明は、従来技術における問題を回避する、２次元距離フィールドとして表現される重なり合うオブジェクトをレンダリングする方法および装置を提供する。特に、カバレジベースのアンチエイリアシングから導出される色または強度値をブレンディングする代わりに、またレンダリングの前に重なり合うオブジェクトを単一の合成オブジェクトに結合する代わりに、本発明は、ピクセルのコンポーネントのレンダリング中にオンデマンドで求められる距離値を結合する。次に、結合距離をマッピングして、ピクセルのコンポーネントのアンチエイリアス強度を求める。
【０１７３】
図１４Ａおよび図１４Ｂは、オブジェクトの集合１４１０をイメージ順にレンダリングする方法１４００を示す。図１４Ａを参照すると、オブジェクトの集合１４１０を、２次元距離フィールドの集合１４３０によって表現し（１４２０）、各オブジェクトにつき１つの距離フィールドがあり、例えば、距離フィールド１４３１はオブジェクト１４１１に対応し、距離フィールド１４３３はオブジェクト１４１３に対応する。
【０１７４】
図１４Ｂに示すように、各ピクセル１４０４は１つまたは複数のコンポーネント１４０６、通常はＲＧＢレンダリングのための赤、緑、および青コンポーネントを含み得る。方法１４００は、ピクセル１４０４のコンポーネント１４０６のアンチエイリアス強度１４０２を求める。サンプル点の集合１４４１〜１４４３をピクセルコンポーネント１４０６に関連づけ（１４４０）、サンプル点の各集合と２次元距離フィールドの集合１４３０の各距離フィールドとの間には１対１の対応関係がある。例えば、サンプル点の集合１４４１は距離フィールド１４３１に対応し、サンプル点の集合１４４３は距離フィールド１４３３に対応する。
【０１７５】
次に、距離フィールド１４３１〜１４３３ごとに、対応するサンプル点の集合１４４１〜１４４３を用いて対応する距離を求め（１４５０）、対応する距離１４５１〜１４５３を生成する。例えば、距離フィールド１４３１について、対応するサンプル点の集合１４４１を用いて対応する距離１４５１を求める。
【０１７６】
対応する距離１４５１〜１４５３を次に結合して（１４６０）、結合距離１４６１を求める。次に、結合距離１４６１をマッピングして（１４７０）、ピクセル１４０４のコンポーネント１４０６のアンチエイリアス強度１４０２を求める。
【０１７７】
図１５Ａ、図１５Ｂ、および図１５Ｃは、オブジェクトの集合１５１０をオブジェクト順にレンダリングする方法１５００を示す。図１５Ａを参照すると、オブジェクト集合１５１０の各オブジェクト１５１１〜１５１３を、対応する２次元距離フィールド１５２１〜１５２３によって表現する（１５０１）。対応する２次元距離フィールド１５２１〜１５２３は２次元距離フィールドの集合１５２０を構成する。例えば、距離フィールド１５２１はオブジェクト１５１１に対応し、距離フィールド１５２３はオブジェクト１５１３に対応する。
【０１７８】
図１５Ｂを参照して、２次元距離フィールドの集合１５２０の各距離フィールド１５２１〜１５２３をセルに分割し（１５２５）、ここで各セルに、セル内の２次元距離フィールドを再構成する方法１５３１を関連づける（１５３０）。
【０１７９】
図１５Ｃに示すように、オブジェクトの集合１５１０の領域１５４５をレンダリングするために、ピクセルの集合１５５１を見つけ（１５５０）、ピクセルの集合１５５１における各ピクセルのコンポーネントの集合１５６０を指定する（１５５５）。なお、ピクセルの集合１５５１における各ピクセルは、１つまたは複数のコンポーネント、通常はＲＧＢレンダリングのための赤、緑、および青コンポーネントを含み得る。方法１５００は、ピクセルの集合１５５１における各ピクセルの各コンポーネント１５６１のアンチエイリアス強度１５６６を求める。
【０１８０】
２次元距離フィールドの集合１５２０における各２次元距離フィールド１５２１〜１５２３について、領域１５４５に関連する対応するセルの集合１５４１〜１５４３を識別する（１５４０）、例えば、距離フィールド１５２１についてセルの集合１５４１を識別し（１５４０）、距離フィールド１５２３についてセルの集合１５４３を識別する（１５４０）。
【０１８１】
ピクセルの集合１５５１における各ピクセルの各コンポーネント１５６１について、まずコンポーネント１５６１について、対応するセルの集合１５４１〜１５４３を用いて各距離フィールド１５２１〜１５２３の対応する距離１５７１〜１５７３を求める（１５７０）ことによってアンチエイリアス強度１５６６を求める１５６５。例えば、セルの集合１５４１を用いて距離フィールド１５２１のコンポーネント１５６１について対応する距離１５７１を求める（１５７０）。
【０１８２】
対応する距離１５７１〜１５７３を次に結合して（１５７５）、結合距離１５７６を求める。結合距離１５７６を次にマッピングして（１５８０）、ピクセルのコンポーネント１５６１のアンチエイリアス強度１５６６を生成する。
【０１８３】
レンダリングされるオブジェクトの色または強度値をブレンディングまたは結合することによって、またはカバレジベースのアンチエイリアス値を結合することによって重なり合う領域をレンダリングする従来技術とは異なり、方法１４００および１５００は距離値を結合し、よって従来技術の呈するカラーアーティファクトおよびブレンディングアーティファクトを軽減する。
【０１８４】
Perry他の従来の方法とは異なり、方法１４００および１５００は、レンダリングの前に合成オブジェクトを表現するために結合距離フィールドを生成しない。その代わりに、本発明によれば、ピクセルのコンポーネントについて求められた距離を結合することによって、そのコンポーネントについて、レンダリング中に結合距離をオンデマンドで求める。
【０１８５】
対応する距離１４５１〜１４５３を結合する（１４６０）とともに対応する距離１５７１〜１５７３を結合する（１５７５）方法にはいくつかある。例えば、距離フィールドの内部が正で外部が負という符号規則を用いて、結合は、対応する距離の最大値をとってオブジェクトの和集合を生成するか、または対応する距離の最小値をとって共通集合を生成することができる。他の結合方法は、数例を挙げると、差をとること、算術平均を行うこと、または対応する距離のインプリシットなブレンドを行うことを含む。
【０１８６】
インプリシットなブレンドを用いるとオブジェクト間の隅を丸めることができ、算術平均を用いると、レンダリングされる領域の高周波成分をさらに低減することによって、さらなるアンチエイリアシングを行うことができる。より一般的には、結合は、任意の算術演算または条件付き演算とすることができる。さらに、結合は、結合距離を求める手続きまたはテーブルを用いることができる。
【０１８７】
テクスチャマッピングを用いたセルベースの距離フィールドのレンダリング
本発明は、２次元グリフ等のオブジェクトを表現する距離フィールドを、テクスチャマッピングを用いてレンダリングすることができ、ここでテクスチャマッピングは多段レンダリングパイプラインの１段を構成する。本明細書ではまず、レンダリングパイプラインの各段の概要を提示し、次に、様々な段階の具体的な詳細を本発明のいくつかの実施の形態とともに説明する。
【０１８８】
図１６Ａおよび図１６Ｂは、本発明による、オブジェクト１６０３を表現する距離フィールド１６０２をレンダリングする方法１６００を示す。
【０１８９】
図１６Ａに示すように、距離フィールド１６０２をセルの集合１６０６に分割し、ここで各セル１６０４は、距離サンプルの集合１６０５と、距離サンプル１６０５を用いてセル１６０４内の距離フィールド１６０２を再構成する方法とを含む。
【０１９０】
オブジェクト１６０３を表現する距離フィールド１６０２の領域１６０１を確定する。領域１６０１をレンダリングするためにレンダリングパイプラインの第１段に進み、その後、順に後段に進む。
【０１９１】
第１段は、距離フィールド１６０２のセルの集合１６０６からソースセルの集合１６１１を選択する（１６１０）。この選択１６１０により領域１６０１のレンダリングが可能になる。例えば、領域１６０１をカバーするソースセルの集合１６１１を選択することができる（１６１０）。
【０１９２】
図１６Ｂにおいて、第２段は、ソースセルの集合１６１１における各ソースセル１６１２を、ワールド座標系において定義される幾何学的要素１６２１として表現する（１６２０）。各幾何学的要素１６２１にテクスチャマップ１６２３を関連づけ１６２２、ここでテクスチャマップ１６２３は、対応するソースセル１６１２の距離サンプル１６０５を含む。
【０１９３】
幾何学的要素１６２１は、数例を挙げると、四辺形、三角形、ポリゴン、湾曲エッジを有する形状を成す制御頂点の集合として記述することができる。幾何学的要素１６２１の記述は通常、対応するソースセル１６１２の幾何学的形状に合わせて選択されるが、本発明はこの手法に限定されない。
【０１９４】
第３段は、各幾何学的要素１６２１をワールド座標系からピクセル座標系の幾何学的要素１６３１に変換する（１６３０）。後述のように変換１６３０を行う多くの方法がある。
【０１９５】
第４段は、各幾何学的要素１６３１をテクスチャマッピングして（１６４０）、その幾何学的要素１６３１に関連する各ピクセル１６４３の各コンポーネント１６４２について距離１６４１を求める。テクスチャマッピング１６４０は、幾何学的要素１６３１をラスタライズして、幾何学的要素１６３１に関連するピクセル１６４３を生成し、次にそのピクセル１６４３の「色」を求めることを含む。実際には、本発明において、ピクセル１６４３の色は、ピクセル１６４３のコンポーネント１６４２の距離値１６４１を表現する。テクスチャマッピング１６４０は、テクスチャマップ１６２３に格納されている距離サンプル１６０５を使用して、幾何学的要素１６３１に関連する各ピクセル１６４３の各コンポーネント１６４２について、幾何学的要素１６３１内の距離フィールド１６０２の再構成を行う。
【０１９６】
レンダリングパイプラインの第５の最終段では、各ピクセル１６４３の各コンポーネント１６４２の距離１６４１を、該ピクセル１６４３の該コンポーネント１６４２のアンチエイリアス強度１６５１にマッピングする（１６５０）。
【０１９７】
多段レンダリングパイプラインの各段階は、数例を挙げると、中央処理装置、特定用途向け集積回路、固定関数グラフィックスハードウェア、プログラマブルグラフィックスハードウェア、および様々な組み合わせにおいて実施することができる。
【０１９８】
プログラマブルグラフィックスハードウェア（Akenine-MollerおよびHaines著「Real-Time Rendering」（A K Peters, 2002, ISBN 1-56881-182-9）を参照）は、本発明の多段レンダリングパイプラインの変換段１６３０、テクスチャマッピング段１６４０、およびマッピング段１６５０を頂点シェーダーおよびピクセルシェーダーによって制御することを可能にする。頂点シェーダーは、幾何学的要素に対して作用して変換された幾何学的要素を生成する手続きを定義する。ピクセルシェーダーは、ラスタライズされたピクセルを受け取り、次にこれらのピクセルを、最終的にフレームバッファに到達する前に操作する、例えばカラー化することができる。頂点シェーダーおよびピクセルシェーダーは、オブジェクトをレンダリングする際に大きな柔軟性を与える。
【０１９９】
本発明では、両方のタイプのシェーダーを活用して、本発明のレンダリングパイプラインの様々な態様を行うことができる。例えば、変換１６３０は頂点シェーダーによって行うことができ、テクスチャマッピング１６４０はピクセルシェーダーによって行うことができ、マッピング１６５０はピクセルシェーダーによって行うことができる。
【０２００】
テクスチャマッピング１６４０は、各ピクセル１６４３の各コンポーネント１６４２について距離１６４１を求めるために、数例を挙げると、双一次補間、三重線形補間、双二次補間、高次補間、例えば双三次補間等の様々な補間方法を実施することができる。テクスチャマッピング１６４０は、各ピクセル１６４３の各コンポーネント１６４２について距離１６４１を近似し、それによってオブジェクト１６０３の忠実度の低いレンダリングを生成するか、または各ピクセル１６４３の各コンポーネント１６４２について距離１６４１を正確に求める。近似法は、ソースセル１６１２の再構成法が実施するのに複雑すぎるか、実行するのに多すぎる時間を要するときに用いることができる。
【０２０１】
複数のテクスチャ装置が利用可能である場合、テクスチャマッピング１６４０は、各ピクセル１６４３の各コンポーネント１６４２の距離１６４１を同時に独立に求め、よってオブジェクト１６０３を効率的にレンダリングすることができる。
【０２０２】
マッピング１６５０は、１次元テクスチャマッピングを用いて、各ピクセル１６４３の各コンポーネント１６４２のアンチエイリアス強度１６５１を求めることができる。この１次元テクスチャマッピングはフィルタ関数を近似するために用いることができる。マッピング１６５０はまた、ルックアップテーブルまたはピクセルシェーダを用いて、各ピクセル１６４３の各コンポーネント１６４２のアンチエイリアス強度１６５１を求めることができる。
【０２０３】
複数のオブジェクトを表現する複数の距離フィールドをレンダリングする場合、または、距離フィールドの集合によって表現される合成グリフをレンダリングする場合、距離フィールドは重なり合う場合があり、適切に対処しなければならない（上記を参照）。
【０２０４】
図１６Ｃは、本発明の方法１６００に、重なり条件に適切に対処するための付加的なステップを含む一実施の形態を示す。テクスチャマッピング１６５０の後に結合ステップ１６７０を行う。この実施の形態では、各ピクセル１６４３の各コンポーネント１６４２について、テクスチャマッピング１６４０によって求められる距離１６６１〜１６６３を結合して（１６７０）、結合距離１６７１を求める。次に、各ピクセル１６４３の各コンポーネント１６４２の結合距離１６７１を、該ピクセル１６４３の該コンポーネント１６４２のアンチエイリアス強度１６８１にマッピングする（１６８０）。
【０２０５】
本発明とは異なり、従来技術のフォントレンダリングは、ハードウェアを用いて高品質のグリフを効率的にレンダリングすることができない。従来技術のヒンティングは、実行フローの分岐が多くデータ構造が複雑であるため、ハードウェアを有効なソリューションとするには複雑すぎる。
【０２０６】
従来技術は、テクスチャマッピングを多くの目的で用いるが、本発明による、オブジェクトを表現する距離フィールドをレンダリングするためのテクスチャマッピングの使用は独特なものである。さらに、本発明による、各ピクセルの各コンポーネントについて距離値を独立に同時に求めることは新規である。
【０２０７】
従来技術とは異なり、本発明は、ピクセルシェーダを用いて距離フィールドのコーナセルまたは２セグメントセル等の特殊なセルをレンダリングし、セル内の距離フィールドを再構成することを可能にする。
【０２０８】
プログレッシブキャッシュを用いたレンダリング−システム構造
図１７は、２次元距離フィールドとして表現されるグラフィックスオブジェクトを効率的にレンダリングするシステム１７００を示す。システム１７００は、レンダリングパイプライン１７１０、キャッシュマネージャ１７２０、およびプログレッシブキャッシュ１７３０を備える。
【０２０９】
パイプライン１７１０は、互いに直列接続されたレンダリング段１７１１〜１７１６を含む。第１段１７１１は入力としてレンダリング要求１７０１を受け取り、最終段１７１６はディスプレイイメージ１７０２を出力する。各段の出力は後段の入力を提供する。
【０２１０】
キャッシュマネージャ１７２０は、パイプライン１７１０をプログレッシブキャッシュ１７３０に接続する。キャッシュマネージャは、パイプラインとプログレッシブキャッシュの間でキャッシュ要素をルーティングする。
【０２１１】
プログレッシブキャッシュ１７３０は、前処理された形状デスクリプタのキャッシュ１７３１、距離フィールドのキャッシュ１７３２、距離値のキャッシュ１７３３、アンチエイリアス強度のキャッシュ１７３４、およびカラー化されたイメージのキャッシュ１７３５を含む。プログレッシブキャッシュ１７３１〜１７３５は、図１７において左から右に、完成度の最も低い、すなわち最も不完全なキャッシュ要素から完成度の最も高い、すなわち最も完全な（most finished, i.e., most complete）キャッシュ要素の順に配置されるため、キャッシュ１７３０は「プログレッシブ」であると見なされる。
【０２１２】
各キャッシュ１７３１〜１７３５は、レンダリングパイプライン１７１０において対応する段の次の段への入力、および対応する段からの出力のためのデータ記憶装置を含む。パイプラインのレンダリング段とデータ記憶装置との間の１対１の対応関係が全体的に、両方向の破線矢印１７４１〜１７４５で示される。各段は、パイプラインを通過する要素の完全性レベルを高め、完全性の各レベルにつき１つのキャッシュがある。
【０２１３】
プログレッシブキャッシュを用いたレンダリング−システムオペレーション
第１に、グラフィックオブジェクトに対するレンダリング要求１７０１を生成する。
【０２１４】
第２に、キャッシュマネージャ１７２０がプログレッシブキャッシュ１７３０に問い合わせて１７２１、レンダリング要求を満たすために利用可能な、ディスプレイイメージ１７０２を最も良く表現する最も完全なキャッシュ要素１７２２、例えばキャッシュタイプ１〜５の要素を判定する。
【０２１５】
第３に、プログレッシブキャッシュに問い合わせた結果、すなわち最も完全なキャッシュ要素１７２２を適切なレンダリング段、すなわち最も完全なキャッシュ要素１７２２を含むキャッシュの対応する段の次の段に送り、すなわち渡して（pipe）、オブジェクトのレンダリングを終える。利用可能なキャッシュ要素がない場合１７２３、レンダリング要求の処理を段１７１２において開始する。
【０２１６】
各レンダリング段が処理を終えると、その段の出力は、キャッシュマネージャ１７２０を介して、キャッシュして後で再使用できるように再びプログレッシブキャッシュ１７３０に送る、すなわち渡すことができる。例えば、段１７１６の出力は入力としてキャッシュ１７３５に送られる。
【０２１７】
プログレッシブキャッシュ１７３０中のキャッシュ要素に圧縮方法を適用することにより、プログレッシブキャッシュ１７３０の有効サイズが増え、よってキャッシュヒット率を高めることによりパイプライン１７１０の全体的な効率が高まる。距離フィールドのキャッシュ１７３２および距離値のキャッシュ１７３３は特に、距離フィールドが連続的な性質を有することから、圧縮に適している。
【０２１８】
個々のキャッシュ１７３１〜１７３５内のキャッシュ要素を格納し見つける方法は当技術分野において多数知られている。このような方法の１つがハッシュ化であり、ハッシュ化では、レンダリング要求１７０１から鍵を構築し、次にハッシュ化して、キャッシュされている可能性のある要素の位置を示すインデックスを生成する。レンダリング要求１７０１が特殊なタイプフェイスのグリフを含む場合、鍵は、グリフの文字コードのビットごとの連結と、タイプフェイスの名前とを含み得る。
【０２１９】
本発明のプログレッシブキャッシュ１７３０の効率を高めるために、使用日時が最も古い、すなわちＬＲＵ方法を用いて、キャッシュ要素を管理することができる。この方法では、プログレッシブキャッシュ１７３０が満杯になると、使用日時が最も古いキャッシュ要素を廃棄することができる。しかし、本発明のプログレッシブキャッシュ１７３０は、キャッシュ要素に対して様々なメモリ管理方法を使用することができ、ＬＲＵ方法に限定されないことに留意することが重要である。
【０２２０】
システム１７００の別の実施の形態において、プログレッシブキャッシュ１７３０にあるキャッシュ数は、レンダリングパイプライン１７１０にある段数よりも少ない。この実施の形態では、全ての段が対応するキャッシュを有する訳ではない。対応する段が極めて効率的であり、個別のキャッシュに出力をキャッシュすることが不要となり、メモリの無駄となるため、プログレッシブキャッシュ１７３０内の個別のキャッシュを削除することが有利である場合もある。さらに、対応する段の出力は、現実的には多すぎるメモリを必要とする場合がある。
【０２２１】
当業者は、様々なレンダリングパイプラインおよび様々なプログレッシブキャッシュを含み、レンダリング要求を満たすことができるようにシステム１７００を適応させる方法を容易に理解するであろう。
【０２２２】
ピクセルコンポーネントの処理
ピクセルは１つまたは複数のコンポーネントを含む。例えば、通常のＣＲＴまたはＬＣＤカラーモニタ上のピクセルは赤、緑、および青コンポーネントを含む。本発明では、ピクセルが複数のコンポーネントを含む場合、それらのコンポーネントを上述のように独立に処理するか、または単一のコンポーネントとして処理することができる。複数のコンポーネントを単一のコンポーネントとして処理する場合、該単一のコンポーネントのアンチエイリアス強度からピクセルの色およびアルファ値を求めることができる。
【０２２３】
複数のコンポーネントを単一のコンポーネントとして処理するのには２つの理由がある。第１に、それによりレンダリング時間が削減される。第２に、複数のコンポーネントを個別にアドレスすることができない場合、または個別のコンポーネントの相対位置が不明の場合、各コンポーネントを個別に扱うことは難しい。
【０２２４】
ＬＣＤおよびＯＬＥＤのようなディスプレイデバイスがアドレス可能なピクセルコンポーネントを有する場合、当技術分野で知られているように、複数のコンポーネントを独立に処理することにより、デバイスの有効解像度を上げることができる。本発明は、そのようなデバイスのこの特徴を活用して、従来技術よりも優れた品質の距離ベースのアンチエイリアシングを行うことができる。
【０２２５】
アドレス可能なピクセルコンポーネントを有する代替的なピクセルレイアウト上にレンダリングする場合、本発明は、従来技術に対して多数の利点を有する。例えば、本発明では、従来技術がピクセルコンポーネントごとにいくつかのカバレジベースのサンプルを用いる場合であっても、ピクセルコンポーネントごとに単一の距離サンプルを用いて、従来技術よりも優れた品質を達成することができる。本発明の方法は本質的に、あらゆるレイアウト上で十分に高速であり、従来技術のようにサンプルの再利用を必要としない。従来技術では、サンプルの再利用は、多くの代替的なピクセルレイアウトにおいて機能しない。さらに、マッピング４４０等の本発明のレンダリングパラメータを調整することによって、本発明の方法は、従来技術の色ぶち問題を軽減し、ピクセルコンポーネントの、サイズおよび輝度といった様々な特性に対処することができる。
【０２２６】
２次元オブジェクトの動画化
図１２は、動画スクリプト１２０２に従ってフレームのシーケンスとしてオブジェクト１２０１を動画化する方法１２００の流れ図を示している。動画スクリプト１２０２は、フレームシーケンス中の各フレームについて、オブジェクトの状態（例えば、オブジェクトの位置、サイズ、方位、および変形）を指示する。オブジェクトは、２次元距離フィールドとして表現される。オブジェクト１２０１のポーズ１２１１は、動画スクリプト１２０２に従ってフレームシーケンス１２２１中の各フレームについて更新される（１２１０）。オブジェクト１２０１は、更新されたポーズ１２１１および距離ベースのアンチエイリアシングによるレンダリング方法１２１２を用いてレンダリングされる。
【０２２７】
オブジェクト１２０１を表現する２次元距離フィールドは、オブジェクトの異なる表現（例えば、オブジェクトのアウトライン記述またはオブジェクトのビットマップ記述）から取得することができる。
【０２２８】
特定のオブジェクト１２０１に対するポーズ１２１１の更新１２１０は、剛体変換、自由変形、ソフトボディ衝撃変形、レベルセット法、パーティクルシミュレーション、およびそのレンダリング属性に対する変更等、オブジェクトに対して種々のオペレーションを適用することによって実行することができる。
【０２２９】
オブジェクトをレンダリングする（１２２０）時、オブジェクトを表現する２次元距離フィールド内のサンプル点の集合を、フレームシーケンス１２２１中のフレーム内のピクセルのコンポーネントに関連づける。２次元距離フィールドおよびサンプル点集合から距離を求めることによって、距離を、ピクセルのコンポーネントのアンチエイリアス強度にマッピングすることができる。
【０２３０】
好ましい一実施の形態では、オブジェクト１２０１を表現する２次元距離フィールドをセルに分割する。各セルは、そのセル内の２次元距離フィールドを再構成する方法を含む。この場合にレンダリング１２２０を行うには、レンダリングすべき２次元距離フィールドの領域を含むオブジェクト１２０１を表現する２次元距離フィールドのセルの集合を識別し、その領域に関連するピクセルの集合を見つける。そのピクセル集合に属する各ピクセルに対するコンポーネントの集合を指定する。ピクセルの各コンポーネントに対する距離をそのセル集合から求め、その距離をピクセルのコンポーネントのアンチエイリアス強度にマッピングすることにより、ピクセル集合に属する各セルの各コンポーネントに対するアンチエイリアス強度を求める。
【０２３１】
距離ベースの自動ヒンティング
標準的なフォント表現におけるヒンティングは、時間のかかる手作業のプロセスである。このプロセスにおいて、タイプデザイナとヒンティング専門家が、個々のグリフをより良くピクセルグリッドにフィッティングするための規則の集合を生成する。良好なヒンティングが生成する小さいタイプサイズのグリフは、適切な間隔を有し、良好なコントラストを有し、外観が統一的である。
【０２３２】
これらの規則は以下のものを提供する：同一のコントラスト分布を有し、左および下のエッジができるだけ鋭いコントラストを有する垂直ステム；視覚的構造を目に伝えるのに十分なコントラストを有するための、グリフの斜めのバーおよび細い丸みを帯びたパーツ；ならびに、互いに結合し、人間の目によって捕捉されるための十分な強調を提供するセリフ。Hersch等「Perceptually Tuned Generation of Grayscale Fonts」（IEEE CG&A, Nov, pp.78-89, 1995）を参照されたい。
【０２３３】
なお、従来技術のフィルタリング方法は、ファジーな文字を生成し、異なるコントラストプロファイルを異なる文字パーツに割り当てるので、タイプデザインの重要な規則に反している。これらの限界を克服するため、各フォントの各グリフごとにヒントが開発される。従来技術のヒンティング方法には数多くの問題点がある。すなわち、開発に多大な労力がかかり、レンダリングが遅く、複雑なためハードウェア実装ができないことである。
【０２３４】
アウトラインベースのフォントの場合、ヒントを用いたレンダリングは３ステップのプロセスである。第１に、グリフのアウトラインをスケーリングし、ピクセルグリッドにそろえる。第２に、アウトラインを修正することにより、ステム、バー、およびセリフのコントラストを制御し、非常に細いセクションおよびアークの太さを増大させる。第３に、修正されたアウトラインをスーパーサンプリングしてから、フィルタリングによりダウンサンプリングする。
【０２３５】
上記で説明した本発明者等のヒンティングされていない距離ベースのアンチエイリアシングによるレンダリング方法は、ヒンティングを使用する従来技術のフォントレンダリング方法よりも優れているが、知覚的ヒンティングにより、小さいタイプサイズでの読みやすさを向上させることができることが知られている。
【０２３６】
したがって、図８に示すように、距離フィールドを活用することにより、小さいポイントサイズでグリフをレンダリングするための距離ベースの自動ヒンティングを提供する。ヒンティングの第１のステップ８１０で、距離フィールドをスケーリングし、ピクセルまたはピクセルコンポーネントグリッドにそろえる。これは、与えられた、または導出されたフォントメトリック（例えば、キャップハイト、ｘハイト、およびベースラインの位置）から自動的に行うことができる。フォントメトリックは、距離フィールドの勾配を使用して特定のフォントメトリック（例えばキャップハイト）を検出することによって距離フィールドから自動的に導出することができる。ステップ８１０は、ピクセルまたはピクセルコンポーネントグリッドに適切にそろえることを可能にするための距離フィールドの一般的な変換（例えば変形）を含むことができる。
【０２３７】
この種のグリッドフィッティングを適用した後、距離フィールドおよびその勾配フィールドを用いて知覚的ヒントを提供する。
【０２３８】
一実施の形態では、距離フィールドの勾配の方向を用いて、オブジェクトの左および下のエッジ上のピクセルを検出する（８２０）。これらのピクセルを濃くし（８３０）、対向するエッジ上のピクセルを薄くする（８４０）ことによって、見かけ上のストロークウェイトを変えずに左および下のエッジ上のコントラストを高くする。これは、対応するピクセル強度を増減させることによって行うことができる。
【０２３９】
もう１つの実施の形態では、勾配フィールドを用いて、斜めステムおよび細いアークに対するコントラストを良くする。なお、ピクセルがグリフの薄い領域上またはその付近に位置する場合、ピクセルの両側の隣接ピクセルは逆の勾配方向を有する、すなわちそれらの内積が負であることに留意されたい。勾配方向の急激な変化を検出することにより、これらの薄い領域上のピクセルを濃くする（８５０）ことができる。
【０２４０】
これらは、距離フィールドを用いて知覚的ヒントを自動的に提供する方法の２つの例に過ぎない。距離フィールドは、最適な文字間隔および一様なストロークウェイトを提供するためにも使用可能である。
【０２４１】
グリフの植字
植字は、レイアウト、レイアウトの開始位置、および、グリフの、セット幅およびカーニングペアといった関連するフォントメトリック等の入力データが与えられた状態でグリフの位置を決める。本発明では、あるグリフの送り幅を次のグリフへのオフセット、例えばベクトルとして定義する。送り幅は通常、グリフのセット幅、セット幅およびカーニング値、またはユーザによって指示される、レイアウトによって決まる、またはフォントメトリックから導出される多数の他の組合せを含む。送り幅は、行への植字、ベジエ曲線、またはレイアウトによって指定される他の複雑なパスを考慮する。「TEX and METAFONT: New Directions in Typesetting」は、植字の優れた概要を提供する。
【０２４２】
植字の通常の応用は、単語中の文字の位置を決めること、および段落の改行を決めることを含む。植字は、グリフの位置を決める際に、グリフの基礎となる表現を考慮する。例えば、ビットマップフォントはピクセルの分数まで位置決めすることができないが、アウトラインフォントではできる。アウトラインフォントは多くの場合ヒンティングされるため、結果的にグリフの位置が調整される。
【０２４３】
２次元距離フィールドとして表現されるグリフの植字
２次元距離フィールドとして表現されるグリフを植字する方法はいくつもある。
【０２４４】
一実施の形態では、距離ベースの自動ヒンティングをオフにし、植字法により指示されるようなグリフ位置の正確な配置を可能にする。
【０２４５】
別の実施の形態では、距離ベースの自動ヒンティングを用いて、各グリフを表現する距離フィールドをピクセルグリッドにグリッドフィッティングする、すなわちそろえ、よって植字法によって指示されるようなグリフ位置の配置をピクセルの分数まで近似する。
【０２４６】
別の実施の形態では、より高い精度を達成するために、各グリフを表現する距離フィールドをピクセルグリッドのコンポーネントにグリッドフィッティングする、すなわちそろえて、植字法によって指示されるようなグリフ位置の配置をピクセルのさらに小さい分数まで近似するために、距離ベースの自動ヒンティングを用いる。
【０２４７】
別の実施の形態では、図１８Ａ〜図１８Ｃに示すように、方法１８００はグリフの集合１８０１を植字する。グリフの集合１８０１は例えば、単語の文字、または文書の文字を表現することができる。グリフの集合１８０１から現在のグリフ１８０２を選択する（１８０５）、例えば、単語の最初の文字を選択する。現在の位置１８０３も選択する（１８１０）。選択１８１０は、ユーザがマウス等の入力デバイスにより選択するか、またはグリフの集合１８０１のレイアウトから導出することができる。
【０２４８】
終了条件１８０４、例えば単語中の全ての文字が植字されているかをテストし（１８１５）、満たされる場合、方法１８００は停止する。終了条件１８０４が満たされない場合（１８５０）、方法１８００を繰り返し、次のグリフ１８０６、例えば単語中の次の文字の次の位置１８０９を決定し、次のグリフ１８０６をグリフの集合１８０１から選択する（１８２０）。
【０２４９】
選択１８２０の後、現在のグリフ１８０２を２次元距離フィールド１８０７として表現する（１８２５）。次に、現在の位置１８０３、現在のグリフ１８０２の送り幅１８０８、および２次元距離フィールド１８０７のアライメント１８３５を用いて次の位置１８０９を決定する（１８３０）。例えば、現在の位置１８０３から送り幅１８０８分のオフセットとして次の位置１８０９を決定し、オフセットをアライメント１８３５に応じて調整する。
【０２５０】
最後に、現在のグリフ１８０２が次のグリフ１８０６となるように更新し（１８４０）、現在の位置１８０３が次の位置１８０９となるように更新して（１８４５）、次の繰り返しに備える。
【０２５１】
アライメント１８３５は、現在のグリフ１８０２をレンダリングした結果とすることができるか、またはレンダリングを行わずに求めることができる。なお、２次元距離フィールド１８０７の選択された等高線は現在のグリフ１８０２のサイズを変化させる可能性があるため、アライメント１８３５はこの選択された等高線に依存し得る。
【０２５２】
別の実施の形態では、現在の位置１８０３、現在のグリフ１８０２の送り幅１８０８、および２次元距離フィールド１８０７の選択された等高線を用いて次の位置１８０９を決定する（１８３０）。例えば、次の位置１８０９は、現在の位置１８０３から送り幅１８０８分のオフセットとして決定することができ、オフセットは、選択された等高線に応じて調整される。
【０２５３】
ゼロ等高線では調整が行われない場合がある。負の等高線では、現在のグリフ１８０２のサイズが大きくなるため、現在の位置１８０３からのオフセットが大きくなる可能性がある。正の等高線では、現在のグリフ１８０２のサイズが小さくなるため、現在の位置１８０３からのオフセットが小さくなる場合がある。
【０２５４】
フォントの生成および編集
フォントをデザインするための２つの基本的方法がある。第１の方法は手作業である。その場合、グリフを手で描き、デジタル化してから、アウトラインをデジタル化ビットマップにフィッティングする。第２の方法はコンピュータによるものである。
【０２５５】
後者の場合、３種類のツールが利用可能である。直接ビジュアルツールが、曲線操作のために使用可能である。手続き型デザインツールが、手続きの命令を実行することによってグリフの形状を構成する。手続きは、形状のアウトラインを画定してそれをフィルするか、またはジオメトリや方位等のいくつかの属性を有するペン先でストローキングされたパスを画定する。コンポーネントベースのデザインツールにより、デザイナは、ステム、アーク、および他の繰り返し形状等の基本的コンポーネントを作成してから、それらのコンポーネントを組み合わせてグリフを生成することができる。
【０２５６】
本発明者等は、スカルプティングエディタ(sculpting editor)を用いて、ストロークベースのデザインを提供する。これは、２００１年３月１６日出願の米国特許出願第０９／８１０，２６１号「System and Method for Sculpting Digital Models」（これは参照により本明細書に援用される）に記載されている３Ｄカービング(carving)の２Ｄ対応物である。ストローキングは、対話的に行うことが可能であり、あるいは、プログラム可能なデザインツールをエミュレートするためにスクリプティングすることも可能である。
【０２５７】
Ａｄｏｂｅ  Ｉｌｌｕｓｔｒａｔｏｒにあるものと同様のベジエ曲線操作ツールを用いた曲線ベースのデザインも使用可能である。曲線ベースのデザインは、アウトラインを距離フィールドに、および距離フィールドをアウトラインに変換する方法と組み合わせることにより、デザインパラダイム間のシームレスなインタフェースを提供することができる。
【０２５８】
コンポーネントベースのデザインは、インプリシットな距離フィールドに対するＣＳＧおよびブレンディングのオペレーションを使用する。これにより、コンポーネントを独立にデザインし、編集中またはレンダリング中のいずれかに組み合わせることができる。
【０２５９】
また、本発明者等は、アナログおよびデジタルフォントマスタからＡＤＦを自動生成する方法も提供する。
【０２６０】
コンポーネントベースのデザインの場合、本発明者等のフォントエディタによれば、quadtree操作を用いてＡＤＦを効率的に鏡映および回転することにより、グリフに共通の対称性をモデリングすることができる。さらなる特徴として、ＡＤＦのスケーリング、平行移動、および複数のＡＤＦを組み合わせるオペレーション（例えばＣＳＧおよびブレンディング）がある。
【０２６１】
ストロークベースのデザインの場合、本発明者等は、ペン先をエミュレートするための幾何プロファイルを備えたカービングツールを提供する。シミュレートされるペン先の方位およびサイズは、ストロークに沿って変化することが可能であり、それによりカリグラフィを模倣する。
【０２６２】
図９は、ペンストロークから２次元距離フィールド９３１を生成する方法９００を示している。ペンストロークの期間中のペン状態をサンプリングする。ペン状態は、ストローク中のペンの位置を含む。このペン状態は、方位およびジオメトリを含んでもよい。ペン状態サンプル９０１から、ペンストロークに沿ったペン状態の順序リスト９１１を生成する（９１０）。次に、ペン状態の順序リストから境界デスクリプタの集合９２１を生成する（９２０）。最後に、境界デスクリプタの集合９２１から２次元距離フィールド９３１を生成する（９３０）。
【０２６３】
好ましい実施の形態では、境界デスクリプタ９２１は３次ベジエ曲線のような曲線である。
【０２６４】
好ましい実施の形態では、曲線フィッティングプロセスを適用することにより、ペンのパスにＧ２連続曲線の最小集合をユーザ指定の精度でフィッティングする。また、ツールのサイズおよび方位を用いて、このパスからオフセット点のさらに２つの順序リストを生成し、これらのオフセット点に曲線をフィッティングすることによりストロークアウトラインを生成する。効率的な処理のために、アウトライン曲線を空間階層として配置する。この階層から、タイル型ジェネレータを用いて２次元ＡＤＦを生成する。２００１年３月１６日出願の米国特許出願第０９／８１０，９８３号（これは参照により本明細書に援用される）を参照されたい。
【０２６５】
ベジエクリッピングを用いてアウトラインまでの最小距離を効率的に計算する。ユーザにとっての知覚的遅延なしに、ストロークはＡＤＦに変換される。曲線操作のために、本発明者等はベジエ曲線エディタを提供する。
【０２６６】
図１１に示すように、距離フィールドを境界デスクリプタ（例えばベジエ曲線）に変換することにより、３つのすべてのデザインパラダイムの間のシームレスなインタフェースを提供することも可能である。
【０２６７】
好ましい実施の形態では、双二次ＡＤＦを使用する。その場合、この変換は、高速な近隣探索のためのＡＤＦ階層を用いてリーフセルをトラバースし、ＡＤＦのゼロ値等高線(iso-contour)に沿った点の順序リストを生成してから、以下で図１１を参照して説明するように曲線をフィッティングすることにより、境界デスクリプタを生成する。
【０２６８】
境界デスクリプタ誤差が点のリストから計算される従来技術とは異なり、本発明者等は、距離フィールドから直接に境界デスクリプタ誤差を計算する。とがった隅に特別の注意を払う。本発明者等の手法は、ユーザが、気づき得る遅延なしにパラダイム間をシームレスに切り替えるのに十分なほど高速である。
【０２６９】
図１１は、２次元距離フィールド１１０１を境界デスクリプタの集合１１３１に変換する方法１１００を示している。まず、２次元距離フィールド１１０１の等高線１１１１（例えば、ゼロ値またはあるオフセットの距離）を選択する（１１１０）。
【０２７０】
次に、等高線１１１１および２次元距離フィールド１１０１から点の順序リスト１１２１を生成する（１１２０）。双二次の適応的にサンプリングされた距離フィールドを使用する本発明の好ましい実施の形態では、このステップは、近隣探索技法を用いて、適応的にサンプリングされた距離フィールド１１０１の隣接セルを順次訪れる。この探索技法は、適応的にサンプリングされた距離フィールド１１０１の空間階層を活用することにより、等高線１１１１に沿って次の近隣を効率的に突き止める。
【０２７１】
もう１つの実施の形態では、ＡＤＦ１１０１内の境界セルを選択し、各境界セルに順序付きの点の集合を割り当て、ＡＤＦ１１０１の距離フィールドおよび勾配フィールドを用いてＡＤＦ１１０１の等高線１１１１まで各点を移動させることによって、点の順序リスト１１２１を生成する（１１２０）。
【０２７２】
次に、点の順序リスト１１２１をフィッティングするために、境界デスクリプタ１１３１の集合を初期化する（１１３０）。境界デスクリプタ１１３１は、点の順序リスト１１２１の隣接する点どうしをつないで、初期境界デスクリプタ１１３１を構成する線分の集合を形成することにより初期化される（１１３０）。
【０２７３】
もう１つの実施の形態では、隅点を見つけ、点の順序リストを隅点で区切られるセグメントに細分割し、セグメント境界デスクリプタを求めて各セグメントをフィッティングすることによって、境界デスクリプタ１１３１の集合を初期化する（１１３０）。セグメント境界デスクリプタの合併が初期境界デスクリプタ１１３１となる。
【０２７４】
隅点は、距離フィールドから求められる曲率を測ることによって見つけることができる。距離フィールドが双二次ＡＤＦである好ましい実施の形態では、曲率の大きい領域はＡＤＦにおける小さいセルで表現されるので、ＡＤＦセルサイズを用いることにより隅点を見つけることができる。
【０２７５】
境界デスクリプタ１１３１を初期化（１１３０）した後、境界デスクリプタ１１３１を更新する（１１４０）。更新１１４０は、距離フィールドを再構成し、等高線からの境界デスクリプタの平均または最大偏差を測ることによって、各境界デスクリプタに対する誤差を求める。
【０２７６】
境界デスクリプタ１１３１は、各境界デスクリプタに対する誤差が許容可能となるまで、または所定の時間が経過するまで、または境界デスクリプタ１１３１の集合の濃度が極小になるまで、更新される（１１４０）。
【０２７７】
非デジタル形式で（すなわちアナログマスタとして）、またはビットマップのようなデジタル形式で（すなわちデジタルマスタとして）格納されている従来のフォントを取り込むため、本発明者等の編集システムは、高解像度２値ビットマップからＡＤＦを生成する方法を提供する。
【０２７８】
まず、アナログマスタを走査することにより、目標ＡＤＦ解像度の少なくとも４倍以上の解像度で２値デジタルマスタを生成する（例えば、現在のディスプレイ解像度およびディスプレイサイズには４０９６×４０９６デジタルマスタで十分である）。次に、厳密なユークリッド距離変換をビットマップに適用することにより、グリフを表現する規則的にサンプリングされた距離フィールドを生成する。
【０２７９】
次に、この規則的にサンプリングされた距離フィールドから、タイル型ジェネレータを用いてＡＤＦを生成する。ビットマップからＡＤＦへの変換は、２ＧＨｚのＰｅｎｔｉｕｍ  ＩＶプロセッサでグリフ当たり約１０秒を要する。
【０２８０】
既に存在する従来技術のグリフのデスクリプタを、グリフが境界デスクリプタの集合を用いて記述される距離フィールドに変換するためには、図１０に関連して説明した方法を適用する。
【０２８１】
コンポーネントベースのグリフの生成およびレンダリング
本発明は、合成グリフを生成およびレンダリングする方法を提供する。コンポーネントすなわち要素をアウトラインデスクリプタまたはストローキングされた骨格によって表現するとともに、それらの要素をレンダリングの前に単一の形状デスクリプタに結合するか、または各要素をラスタライズしてアンチエイリアス強度またはカバレジ値を結合する従来技術の方法とは異なり、本発明は、合成グリフの要素を２次元距離フィールドとして表現するとともに、これらの２次元距離フィールドを用いて合成グリフをレンダリングする。
【０２８２】
好ましい実施の形態において、レンダリングは、ピクセルのコンポーネントについて求められた距離を、２次元距離フィールドを用いて結合し、次に、結合した距離を該ピクセルの該コンポーネントのアンチエイリアス強度にマッピングする。アンチエイリアス強度またはカバレジ値ではなく距離値を結合することによって、本発明は、従来技術の呈する色アーティファクトおよびブレンディングアーティファクトを軽減する。
【０２８３】
Perry他の従来の方法とは異なり、本発明は、レンダリングの前に合成グリフを表現するために結合距離フィールドを生成しない。その代わりに、本発明によれば、各要素から求められた距離を結合することによって、ピクセルのコンポーネントに関連する結合距離をレンダリング中にオンデマンドで求める。
【０２８４】
図１９Ａおよび図１９Ｂは、合成グリフ１９１１を生成するとともに、合成グリフ１９１１の領域１９４１をイメージ順にレンダリングし、レンダリングされた領域１９４３を生成する方法１９００を示す。まず、合成グリフ１９１１を要素の集合１９０１によって定義する（１９１０）。次に、合成グリフ１９１１を２次元距離フィールドの集合１９３０の距離フィールド１９３１〜１９３３の合成によって表現するように、要素の集合１９０１を用いて２次元距離フィールドの集合１９３０を生成する（１９２０）。２次元距離フィールドの集合１９３０を用いて合成グリフ１９１１の領域１９４１をレンダリングする（１９４０）。
【０２８５】
図１９Ｃは、方法１９００のレンダリング１９４０の好ましい一実施の形態を示す。領域１９４１内の各ピクセル１９４４は、１つまたは複数のコンポーネント１９４６、通常はＲＧＢレンダリングのための赤、緑、および青コンポーネントを含むことができる。レンダリング１９４０により、領域１９４１内の各ピクセル１９４４の各コンポーネント１９４６についてアンチエイリアス強度１９４２を求める。
【０２８６】
サンプル点の集合１９５１〜１９５３をピクセルコンポーネント１９４６に関連づけ（１９５０）、サンプル点の各集合と、２次元距離フィールドの集合１９３０における各距離フィールドとの間には１対１の対応関係がある。例えば、サンプル点の集合１９５１は距離フィールド１９３１に対応し、サンプル点の集合１９５３は距離フィールド１９３３に対応する。
【０２８７】
次に、各距離フィールド１９３１〜１９３３について、対応するサンプル点の集合１９５１〜１９５３を用いて対応する距離を求め（１９６０）、対応する距離１９６１〜１９６３を生成する。例えば、距離フィールド１９３１について、対応するサンプル点の集合１９５１を用いて対応する距離１９６１を求める。
【０２８８】
次に、対応する距離１９６１〜１９６３を結合して（１９７０）、結合距離１９７１を求める。次に、結合距離１９７１をマッピングして（１９８０）、ピクセル１９４４のコンポーネント１９４６のアンチエイリアス強度１９４２を求める。
【０２８９】
図２０Ａおよび図２０Ｂは、合成グリフ２００６を生成するとともに合成グリフ２００６の領域２０３６をオブジェクト順にレンダリングして、レンダリングされた領域２０３７を生成する方法２０００を示す。まず、合成グリフ２００６を要素の集合２００１により定義する（２００５）。次に、２次元距離フィールドの集合２０２０の距離フィールド２０２１〜２０２３の合成によって合成グリフ２００６を表現するように、要素の集合２００１を用いて２次元距離フィールドの集合２０２０を生成する（２０１０）。
【０２９０】
２次元距離フィールドの集合２０２０の各距離フィールド２０２１〜２０２３をセルに分割する（２０２５）。ここで、各セルに、セル内の２次元距離フィールドを再構成する方法２０３１を関連づける（２０３０）。次に、２次元距離フィールドの集合２０２０を用いて合成グリフ２００６の領域２０３６をレンダリングする。
【０２９１】
図２０Ｃおよび図２０Ｄは、方法２０００のレンダリング２０３５の好ましい一実施の形態を示す。合成グリフ２００６の領域２０３６をレンダリングするために、領域２０３６からピクセルの集合２０４６を見つけ（２０４５）、ピクセルの集合２０４６の各ピクセルについてコンポーネントの集合２０５５を指定する（２０５０）。なお、ピクセルの集合２０４６の各ピクセルは、１つまたは複数のコンポーネント、通常はＲＧＢレンダリングのための赤、緑、および青コンポーネントを含むことができる。
【０２９２】
レンダリング２０３５により、ピクセルの集合２０４６の各ピクセルの各コンポーネント２０５６についてアンチエイリアス強度２０６１を求める。
【０２９３】
２次元距離フィールドの集合２０２０の各２次元距離フィールド２０２１〜２０２３について、領域２０３６に関連する対応するセルの集合２０４１〜２０４３を識別する（２０４０）。例えば、距離フィールド２０２１についてセルの集合２０４１を識別し（２０４０）、距離フィールド２０２３についてセルの集合２０４３を識別する（２０４０）。
【０２９４】
ピクセルの集合２０４６における各ピクセルの各コンポーネント２０５６について、まず、対応するセルの集合２０４１〜２０４３を用いて各距離フィールド２０２１〜２０２３の対応する距離２０７１〜２０７３を求める（２０７０）ことによって、アンチエイリアス強度２０６１を求める（２０６０）。例えば、コンポーネント２０５６について、セルの集合２０４１を用いて距離フィールド２０２１の対応する距離２０７１を求める（２０７０）。
【０２９５】
次に、対応する距離２０７１〜２０７３を結合して（２０７５）、結合距離２０７６を求める。次に、結合距離２０７６をマッピングして（２０８０）、ピクセルのコンポーネント２０５６のアンチエイリアス強度２０６１を生成する。
【０２９６】
方法１９００の合成グリフ１９１１の要素１９０１および方法２０００の合成グリフ２００６の要素２００１は多数の表現を有し得る。例えば、これらの要素は、ストローク、アウトライン、部首、ストローキングされた部首、パス、ならびにユーザが描いた曲線、ストローク、およびパス等の１次元形状デスクリプタおよび２次元形状デスクリプタによって表現することができる。要素は、距離マップ、適切にサンプリングされた距離フィールド、距離を生成する手続きおよび距離関数等の距離フィールドによって表現することができる。要素自体は、第１の形状デスクリプタと第２の形状デスクリプタのインプリシットなブレンドまたはオフセットデスクリプタを有する骨格等の合成体であり得る。
【０２９７】
いくつかの手法を用いて要素１９０１を定義する（１９１０）とともに要素２００１を定義することができる（２００５）。例えば、定義は、自動形状検出、形状マッチング、および骨格化（skeltonization）等の手続きを用いて自動的に行うことができる。定義は、ユーザによって対話形式で、または要素を定義する手続きをユーザが誘導して半自動的に行うことができる。
【０２９８】
定義１９１０および２００５は、合成グリフを表現する距離フィールドから行うことができる。例えば、要素は、距離フィールド上で距離ベースの自動形状検出、形状マッチング、および骨格化を行うことによって定義することができる。さらに、定義は、まず要素の形状デスクリプタを求め、次に形状デスクリプタの距離関数を求めて要素を定義することができる。
【０２９９】
２次元距離フィールドの集合１９３０および２０２０における距離フィールドは、数例を挙げると、適応的にサンプリングされた距離フィールド、メモリに格納された距離の集合として、または手続きにより表現することができる。
【０３００】
方法１９００において対応する距離１９６１〜１９６３を結合する（１９７０）ため、および方法２０００において対応する距離２０７１〜２０７３を結合する（２０７５）ために、いくつかの手法を使用することができる。例えば、内部が正で外部が負という符号規則を距離フィールドに用いて、結合は、対応する距離の最大値をとってオブジェクトの和集合を生成するか、または対応する距離の最小値をとってオブジェクトの共通集合を生成することができる。
【０３０１】
他の結合方法は、数例を挙げると、差をとること、算術平均を行うこと、または対応する距離のインプリシットなブレンドを行うことを含む。インプリシットなブレンドを用いるとオブジェクト間の隅を丸めることができ、算術平均を用いると、レンダリングされる領域の高周波成分をさらに低減することによって、さらなるアンチエイリアシングを行うことができる。より一般的には、結合は、任意の算術演算または条件付き演算とすることができる。さらに、結合は、結合距離を求める手続きまたはテーブルを用いることができる。
【０３０２】
キネティックタイポグラフィのための計算基盤
本発明者のＡＤＦグリフフレームワークの距離フィールドおよび空間階層の属性は、２Ｄオブジェクト（例えば、グリフ、企業ロゴ、または任意の２Ｄ形状）のコンピュータシミュレーションにも使用可能である。例えば、両方の属性を、衝突の検出および回避を行うため、互いにはまり込んでいるボディ間の力を計算するため、ならびにソフトボディ変形をモデリングするために使用可能である。
【０３０３】
レベルセット法は、符号付き距離フィールドを使用する方法であり、融解や流体力学のようなさまざまな効果をモデリングするために使用可能である。ＡＤＦは、距離値および勾配の計算、すなわち上記で列挙した方法に必要な２つの重要な計算のために効率的に問い合わせることが可能な、コンパクトでインプリシットな表現である。
【０３０４】
これに対して、運動または変形しているアウトラインから距離値および勾配を求めることは、リアルタイム対話のためのソフトウェアでは実際的でない。Hoff等「Fast and Simple 2D Geometric Proximity Queries Using Graphics Hardware」（Proc. Interactive 3D Graphics'01, 2001）を参照されたい。Hoff等は、グラフィックスハードウェアを用いることにより、線分で近似された曲線を変形するために、規則的にサンプリングされた２Ｄ距離フィールドをオンザフライで生成している。
【０３０５】
距離フィールドのインプリシットな性質は、複雑なトポロジー変化（例えば、アウトラインベースのフォントでモデリングすることが困難な面オフセット）を可能にする。また、距離フィールドは、動画化オブジェクトの非フォトリアリスティックなレンダリングを提供することにより芸術的効果を加えるためにも使用可能である。
【０３０６】
以上、本発明について、好ましい実施の形態を例として説明したが、本発明の精神および範囲内で種々の他の適応および変更をなし得ることは言うまでもない。したがって、添付の請求項の目的は、本発明の真の精神および範囲内に入るすべてのそのような変形および変更を包含することである。
【図面の簡単な説明】
【０３０７】
【図１Ａ】従来技術によるグリフの距離フィールド表現のブロック図である。
【図１Ｂ】従来技術によるグリフの距離フィールド表現のブロック図である。
【図２Ａ】本発明の好ましい一実施の形態による距離フィールド表現のブロック図である。
【図２Ｂ】本発明の好ましい一実施の形態による距離フィールド表現のブロック図である。
【図３】本発明の好ましい一実施の形態による距離フィールドの双二次セルのブロック図である。
【図４】本発明によるイメージ順にオブジェクトをアンチエイリアシングする方法の流れ図である。
【図５】本発明によって使用される線形フィルタのグラフである。
【図６Ａ】ピクセルのコンポーネント付近のサンプルの図である。
【図６Ｂ】ピクセルのコンポーネント付近のサンプルの図である。
【図６Ｃ】ピクセルのコンポーネント付近のサンプルの図である。
【図７】本発明によるオブジェクト順にオブジェクトをアンチエイリアシングする方法の流れ図である。
【図８】本発明による距離ベースの自動ヒンティング方法の流れ図である。
【図９】本発明によるペンストロークを距離フィールドに変換する方法の流れ図である。
【図１０】本発明による２次元オブジェクトを距離フィールドに変換する方法の流れ図である。
【図１１】本発明による距離フィールドを境界デスクリプタに変換する方法の流れ図である。
【図１２】本発明によるオブジェクトを動画化する方法の流れ図である。
【図１３】本発明による２次元オブジェクトの隅を包囲するセル内の２次元距離フィールドを生成する方法の流れ図である。
【図１４Ａ】本発明による、オブジェクトの集合をイメージ順にアンチエイリアシングする方法のフロー図である。
【図１４Ｂ】本発明による、オブジェクトの集合をイメージ順にアンチエイリアシングする方法のフロー図である。
【図１５Ａ】本発明による、オブジェクトの集合をオブジェクト順にアンチエイリアシングする方法のフロー図である。
【図１５Ｂ】本発明による、オブジェクトの集合をオブジェクト順にアンチエイリアシングする方法のフロー図である。
【図１５Ｃ】本発明による、オブジェクトの集合をオブジェクト順にアンチエイリアシングする方法のフロー図である。
【図１６Ａ】本発明による、テクスチャマッピングを用いてセルベースの距離フィールドをレンダリングする方法のフロー図である。
【図１６Ｂ】本発明による、テクスチャマッピングを用いてセルベースの距離フィールドをレンダリングする方法のフロー図である。
【図１６Ｃ】本発明による、テクスチャマッピングを用いてセルベースの距離フィールドをレンダリングする方法のフロー図である。
【図１７】本発明によるレンダリング方法のフロー図である。
【図１８Ａ】本発明による、グリフの集合を植字する方法のフロー図である。
【図１８Ｂ】本発明による、グリフの集合を植字する方法のフロー図である。
【図１８Ｃ】本発明による、グリフの集合を植字する方法のフロー図である。
【図１９Ａ】本発明による、合成グリフを生成して合成グリフの領域をイメージ順にレンダリングする方法のフロー図である。
【図１９Ｂ】本発明による、合成グリフを生成して合成グリフの領域をイメージ順にレンダリングする方法のフロー図である。
【図１９Ｃ】本発明による、合成グリフを生成して合成グリフの領域をイメージ順にレンダリングする方法のフロー図である。
【図２０Ａ】本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。
【図２０Ｂ】本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。
【図２０Ｃ】本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。
【図２０Ｄ】本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。
【図２１Ａ】本発明によるコーナセルの図である。
【図２１Ｂ】本発明によるコーナセルの図である。
【図２１Ｃ】本発明によるコーナセルの図である。
【図２１Ｄ】本発明によるコーナセルの図である。
【図２２Ａ】本発明による２セグメントセルの図である。
【図２２Ｂ】本発明による２セグメントセルの図である。
【図２２Ｃ】本発明による２セグメントセルの図である。
【図２３】本発明による、２次元オブジェクトに関連するセル内の２次元距離フィールドを生成する方法のフロー図である。
【図２４Ａ】領域内のオブジェクトの一部の図である。
【図２４Ｂ】本発明による、領域を分割する３つのセル構成のうちの１つの図である。
【図２４Ｃ】本発明による、領域を分割する３つのセル構成のうちの１つの図である。
【図２４Ｄ】本発明による、領域を分割する３つのセル構成のうちの１つの図である。
【図２５】本発明による、オブジェクトを表現する形状デスクリプタの領域の距離フィールドの最適な構成を生成する方法のフロー図である。
【図１Ａ】
2007529788.tif 000005
【図１Ｂ】
2007529788.tif 000006
【図２Ａ】
2007529788.tif 000007
【図２Ｂ】
2007529788.tif 000008
【図３】
2007529788.tif 000009
【図４】
2007529788.tif 000010
【図５】
2007529788.tif 000011
【図６Ａ】
2007529788.tif 000012
【図６Ｂ】
2007529788.tif 000013
【図６Ｃ】
2007529788.tif 000014
【図７】
2007529788.tif 000015
【図８】
2007529788.tif 000016
【図９】
2007529788.tif 000017
【図１０】
2007529788.tif 000018
【図１１】
2007529788.tif 000019
【図１２】
2007529788.tif 000020
【図１３】
2007529788.tif 000021
【図１４Ａ】
2007529788.tif 000022
【図１４Ｂ】
2007529788.tif 000023
【図１５Ａ】
2007529788.tif 000024
【図１５Ｂ】
2007529788.tif 000025
【図１５Ｃ】
2007529788.tif 000026
【図１６Ａ】
2007529788.tif 000027
【図１６Ｂ】
2007529788.tif 000028
【図１６Ｃ】
2007529788.tif 000029
【図１７】
2007529788.tif 000030
【図１８Ａ】
2007529788.tif 000031
【図１８Ｂ】
2007529788.tif 000032
【図１８Ｃ】
2007529788.tif 000033
【図１９Ａ】
2007529788.tif 000034
【図１９Ｂ】
2007529788.tif 000035
【図１９Ｃ】
2007529788.tif 000036
【図２０Ａ】
2007529788.tif 000037
【図２０Ｂ】
2007529788.tif 000038
【図２０Ｃ】
2007529788.tif 000039
【図２０Ｄ】
2007529788.tif 000040
【図２１Ａ】
2007529788.tif 000041
【図２１Ｂ】
2007529788.tif 000042
【図２１Ｃ】
2007529788.tif 000043
【図２１Ｄ】
2007529788.tif 000044
【図２２Ａ】
2007529788.tif 000045
【図２２Ｂ】
2007529788.tif 000046
【図２２Ｃ】
2007529788.tif 000047
【図２３】
2007529788.tif 000048
【図２４Ａ】
2007529788.tif 000049
【図２４Ｂ】
2007529788.tif 000050
【図２４Ｃ】
2007529788.tif 000051
【図２４Ｄ】
2007529788.tif 000052
【図２５】
2007529788.tif 000053
【手続補正書】
【提出日】平成18年9月29日(2006.9.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
合成グリフの領域をレンダリングする方法であって、
要素の集合によって合成グリフを定義すること、
前記要素の集合を用いて２次元距離フィールドの集合を生成することであって、該２次元距離フィールドの集合の合成が前記合成グリフを表現する、生成すること、及び
前記２次元距離フィールドの集合を用いて前記合成グリフの領域をレンダリングすること
を含む、合成グリフの領域をレンダリングする方法。
【請求項２】
前記レンダリングすることは、前記領域内の各ピクセルの各コンポーネントについて、該ピクセルの該コンポーネントのアンチエイリアス強度を求める、請求項１に記載の方法。
【請求項３】
前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めることは、
前記２次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づけること、
前記２次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求めること、
前記対応する距離を結合することによって、結合距離を求めること、及び
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングすること
をさらに含む、請求項２に記載の方法。
【請求項４】
前記要素の集合の特定の要素は、適応的にサンプリングされた距離フィールドである、請求項１に記載の方法。
【請求項５】
ピクセルのコンポーネントのアンチエイリアス強度を求める方法であって、
各オブジェクトにつき１つの距離フィールドがある、オブジェクトの集合を２次元距離フィールドの集合で表現すること、
前記２次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づけること、
前記２次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求めること、
結合距離を求めるために、前記対応する距離を結合すること、及び
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングすること
を含む、ピクセルのコンポーネントのアンチエイリアス強度を求める方法。
【請求項６】
ピクセルのコンポーネントのアンチエイリアス強度を求める装置であって、
各オブジェクトにつき１つの距離フィールドがある、オブジェクトの集合を２次元距離フィールドの集合で表現する手段と、
前記２次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づける手段と、
前記２次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求める手段と、
前記対応する距離を結合することによって、結合距離を求める手段と、
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングする手段と、
前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を表示するディスプレイデバイスと
を備える、ピクセルのコンポーネントのアンチエイリアス強度を求める装置。
【請求項７】
２次元オブジェクトに関連するセル内で２次元距離フィールドを生成する方法であって、
前記２次元オブジェクトについて境界デスクリプタの集合を求めること、
前記境界デスクリプタの集合を、前記境界デスクリプタの集合の特徴の集合によって画定される、セグメントの集合に分割すること、
前記セルに関連する前記セグメントの集合において第１セグメント及び第２セグメントを識別すること、
前記第１セグメントを用いて第１の距離値の集合を指定すること、
前記第２セグメントを用いて第２の距離値の集合を指定すること、
前記第１の距離値の集合及び前記第２の距離値の集合を用いて前記セル内で前記距離フィールドを再構成する再構成法を定義すること、及び
前記再構成法を適用することによる前記セル内での前記距離フィールドの再構成を可能にするために、前記セルについて、前記第１の距離値の集合、前記第２の距離値の集合、及び前記再構成法をメモリに格納すること
を含む、２次元オブジェクトに関連するセル内で２次元距離フィールドを生成する方法。
【請求項８】
前記特徴の集合の特定の特徴は、前記境界デスクリプタの集合の蓄積された曲率の実質的な量に関連する点である、請求項７に記載の方法。
【請求項９】
前記識別することは、
前記セルからの前記第１セグメントの距離に応じて前記セグメントの集合から前記第１セグメントを選択すること、及び
前記セルからの前記第２セグメントの距離に応じて前記セグメントの集合から前記第２のセグメントを選択すること
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記再構成法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
前記求めることは、
前記第１の距離値の集合から第１の距離を求めること、
前記第２の距離値の集合から第２の距離を求めること、及び
前記サンプル距離を再構成するために、前記第１の距離と前記第２の距離を結合すること
を含み、
前記結合することは、前記第１の距離と前記第２の距離の最小値を選択する、請求項７に記載の方法。
【請求項１１】
オブジェクトを表現する形状デスクリプタの領域の距離フィールドを生成する方法であって、前記距離フィールドはセルの集合を含み、
前記方法は、
セルタイプの集合を定義すること、
前記領域の、各セルが前記セルタイプの集合によって定義される特定のセルタイプと前記セル内で前記距離フィールドを再構成する方法とを有する、セルの集合の構成を生成すること、
前記領域の前記セルの集合の最適な構成に達するまで、前記形状デスクリプタ、前記領域、及び前記セルタイプの集合に基づいて前記セルの集合の前記構成を修正すること、
前記オブジェクトを表現する前記形状デスクリプタの前記領域の前記距離フィールドを生成するために、前記セルの集合の前記最適な構成をメモリに格納すること
を含む、オブジェクトを表現する形状デスクリプタの領域の距離フィールドを生成する方法。
【請求項１２】
前記セルタイプの集合の特定のセルタイプは２セグメントセルタイプである、請求項１１に記載の方法。
【請求項１３】
前記セルタイプの集合の特定のセルタイプはコーナセルタイプである、請求項１１に記載の方法。
【請求項１４】
各オブジェクトにつき１つの距離フィールドがある、オブジェクトの集合を２次元距離フィールドの集合で表現すること、
各２次元距離フィールドをセルに分割すること、
各セルに対し、前記セル内で対応する２次元距離フィールドを再構成する方法を関連づけること、
前記２次元距離フィールドの集合の各２次元距離フィールドについて、前記２次元距離フィールドの、前記オブジェクトの集合の領域に関連する、セルの集合を識別すること、
前記領域に関連するピクセルの集合を位置特定すること、
前記ピクセルの集合の各ピクセルについてコンポーネントの集合を指定すること、及び
前記ピクセルの集合の各ピクセルの各コンポーネントについてアンチエイリアス強度を求めること
を含み、
前記求めることは、
前記２次元距離フィールドの集合の各２次元距離フィールドについて、対応するセルの集合を用いて前記ピクセルの前記コンポーネントの対応する距離を求めること、
結合距離を求めるために、前記対応する距離を結合すること、及び
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングすること
をさらに含むアンチエイリアシング方法。
【請求項１５】
各オブジェクトにつき１つの距離フィールドがある、オブジェクトの集合を２次元距離フィールドの集合で表現する手段と、
各２次元距離フィールドをセルに分割する手段と、
各セルに対し、前記セル内の対応する２次元距離フィールドを再構成する方法を関連づける手段と、
前記２次元距離フィールドの集合の各２次元距離フィールドについて、前記２次元距離フィールドの、前記オブジェクトの集合の領域に関連する、セルの集合を識別する手段と、
前記領域に関連するピクセルの集合を位置特定する手段と、
前記ピクセルの集合の各ピクセルについてコンポーネントの集合を指定する手段と、
前記ピクセルの集合の各ピクセルの各コンポーネントについてアンチエイリアス強度を求める手段と
を備え、前記求めることは、
前記２次元距離フィールドの集合の各２次元距離フィールドについて、対応するセルの集合を用いて前記ピクセルの前記コンポーネントの対応する距離を求める手段と、
結合距離を求めるために、前記対応する距離を結合する手段と、
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングする手段と、
前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を表示するディスプレイデバイスと
をさらに備えるアンチエイリアシング装置。
【請求項１６】
合成グリフの領域をレンダリングする方法であって、
要素の集合によって合成グリフを定義すること、
前記要素の集合を用いて２次元距離フィールドの集合を生成することであって、前記２次元距離フィールドの集合の各２次元距離フィールドはセルに分割され、各セルは、前記セル内で対応する２次元距離フィールドを再構成する方法を含み、前記２次元距離フィールドの集合の合成が前記合成グリフを表現すること、及び
前記２次元距離フィールドの集合を用いて前記合成グリフの領域をレンダリングすること
を含み、
前記レンダリングすることは、
前記２次元距離フィールドの集合の各２次元距離フィールドについて、該２次元距離フィールドのセルの集合を識別することであって、前記セルの集合は前記合成グリフの前記領域に関連すること、
前記領域に関連するピクセルの集合を位置特定すること、
前記ピクセルの集合の各ピクセルについてコンポーネントの集合を指定すること、及び
前記ピクセルの集合の各ピクセルの各コンポーネントについてアンチエイリアス強度を求めること
をさらに含み、
前記求めることは、
前記２次元距離フィールドの集合の各２次元距離フィールドについて、対応するセルの集合から前記ピクセルの前記コンポーネントの対応する距離を求めること、
前記対応する距離を結合することによって、結合距離を求めること、及び
前記結合距離を前記ピクセルの前記コンポーネントの前記アンチエイリアス強度にマッピングすること
をさらに含む、合成グリフの領域をレンダリングする方法。
【請求項１７】
前記定義することは、前記合成グリフの形状デスクリプタの距離フィールドから前記要素の集合を求める、請求項１６に記載の方法。
【請求項１８】
グリフの集合を植字する方法であって、
前記グリフの集合から現在のグリフを選択すること、
前記現在のグリフの現在の位置を選択すること、及び
前記グリフの集合から選択される、次のグリフの次の位置を決定すること
を含み、
前記選択は、終了条件が満たされるまで続き、
前記決定することは、
前記現在のグリフを２次元距離フィールドとして表現すること、
前記現在の位置、前記現在のグリフの送り幅、及び前記２次元距離フィールドのアライメントを用いて前記次の位置を決定すること、
前記現在のグリフが前記次のグリフになるように更新すること、及び
前記現在の位置が前記次の位置になるように更新すること
をさらに含む、グリフの集合を植字する方法。
【請求項１９】
グリフの集合を植字する方法であって、
前記グリフの集合から現在のグリフを選択すること、
前記現在のグリフの現在の位置を選択すること、及び
前記グリフの集合から選択される、次のグリフの次の位置を決定すること
を含み、前記選択は、終了条件が満たされるまで続き、
前記決定することは、
前記現在のグリフを２次元距離フィールドとして表現すること、
前記２次元距離フィールドの等高線を選択すること、
前記現在の位置、前記現在のグリフの送り幅、及び前記選択された等高線を用いて前記次の位置を決定すること、
前記現在のグリフが前記次のグリフになるように更新すること、及び
前記現在の位置が前記次の位置になるように更新すること
をさらに含む、グリフの集合を植字する方法。
【請求項２０】
オブジェクトを表現する距離フィールドの領域をレンダリングする方法であって、前記距離フィールドはセルの集合に分割され、各セルは、距離サンプルの集合と、前記距離サンプルを用いて前記セル内で前記距離フィールドを再構成する方法とを含み、
前記レンダリングする方法は、
前記領域をレンダリングするために、前記距離フィールドの前記セルの集合からソースセルの集合を選択すること、
前記ソースセルの集合の各ソースセルをワールド座標系の、各幾何学的要素が対応するソースセルの距離サンプルを含むテクスチャマップに関連する、幾何学的要素として表現すること、
各幾何学的要素を前記ワールド座標系からピクセル座標系に変換すること、
前記幾何学的要素に関連する各ピクセルの各コンポーネントの距離を求めるために、前記距離サンプルを用いて、各幾何学的要素をテクスチャマッピングすること、及び
前記オブジェクトを表現する前記距離フィールドの前記領域をレンダリングするために、前記ピクセルの前記コンポーネントのアンチエイリアス強度に各ピクセルの各コンポーネントの前記距離をマッピングすること
を含む、オブジェクトを表現する距離フィールドの領域をレンダリングする方法。
【請求項２１】
対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする方法であって、前記距離フィールドの集合の各距離フィールドはセルの集合に分割され、各セルは、距離サンプルの集合と、前記距離サンプルを用いて前記セル内で対応する距離フィールドを再構成する方法とを含み、
前記レンダリングする方法は、
前記領域をレンダリングするために、前記距離フィールドの集合の各距離フィールドについて、前記距離フィールドの前記セルの集合からソースセルの集合を選択すること、
前記距離フィールドの集合の各距離フィールドについて、対応するソースセルの集合の各ソースセルをワールド座標系の、各幾何学的要素が前記対応するソースセルの距離サンプルを含むテクスチャマップに関連する、幾何学的要素として表現すること、
各幾何学的要素を前記ワールド座標系からピクセル座標系に変換すること、
前記幾何学的要素に関連する各ピクセルの各コンポーネントの距離を求めるために、前記距離サンプルを用いて、各幾何学的要素をテクスチャマッピングすること、
結合距離を求めるために、各ピクセルの各コンポーネントの前記距離を結合すること、及び
前記対応するオブジェクトの集合を表現する前記距離フィールドの集合の前記領域をレンダリングするために、前記ピクセルの前記コンポーネントのアンチエイリアス強度に各ピクセルの各コンポーネントの前記結合距離をマッピングすること
を含む、対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする方法。
【請求項２２】
対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする装置であって、前記距離フィールドの集合の各距離フィールドはセルの集合に分割され、各セルは、距離サンプルの集合と、前記距離サンプルを用いて前記セル内で対応する距離フィールドを再構成する方法とを含み、
前記装置は、
前記領域をレンダリングするために、前記距離フィールドの集合の各距離フィールドについて、前記距離フィールドの前記セルの集合からソースセルの集合を選択する手段と、
前記距離フィールドの集合の各距離フィールドについて、対応するソースセルの集合の各ソースセルをワールド座標系の、各幾何学的要素が前記対応するソースセルの距離サンプルを含むテクスチャマップに関連する、幾何学的要素として表現する手段と、
第１のグラフィックスハードウェアコンポーネントを用いて、各幾何学的要素を前記ワールド座標系からピクセル座標系に変換する手段と、
前記幾何学的要素に関連する各ピクセルの各コンポーネントの距離を求めるために、第２のグラフィックスハードウェアコンポーネント及び前記距離サンプルを用いて、各幾何学的要素をテクスチャマッピングする手段と、
結合距離を求めるために、第３のグラフィックスハードウェアコンポーネントを用いて、各ピクセルの各コンポーネントの前記距離を結合する手段と、
前記対応するオブジェクトの集合を表現する前記距離フィールドの集合の前記領域をレンダリングするために、第４のグラフィックスハードウェアコンポーネントを用いて、各ピクセルの各コンポーネントの前記結合距離を前記ピクセルの前記コンポーネントのアンチエイリアス強度にマッピングする手段と
を備える、対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする装置。
【国際調査報告】
2007529788.tif 000054
2007529788.tif 000055
2007529788.tif 000056