(57)【要約】方法は、２次元オブジェクトを２次元距離フィールドに変換する。オブジェクトは境界デスクリプタの集合およびフィル規則として表現される。境界デスクリプタの集合は前処理され、前処理された境界デスクリプタの集合から空間階層が構成される。交点のキャッシュは初期化される。位置の集合における空間階層は問い合わされ、それによって、位置における距離の集合が求められる。問い合わせは各位置における距離関数を呼び出し、それによって、符号なし距離が求められる。交点のキャッシュ、位置、およびフィル規則から符号なし距離の符号が決定される。距離の集合は２次元距離フィールドを構成するために使用される。
2006521624.tif 000002
【特許請求の範囲】
【請求項１】
境界デスクリプタの集合およびフィル規則として表現される、２次元オブジェクトを２次元距離フィールドに変換する方法であって、
前記境界デスクリプタの集合を前処理すること、
前処理された境界デスクリプタの集合から空間階層を構成すること、
交点のキャッシュを初期化すること、
２次元距離フィールドを構成するために使用される、位置における距離の集合を求めるために、位置の集合における前記空間階層に問い合わせること
を含み、
前記問い合わせることは、
各位置における距離関数を呼び出して、符号なし距離を求めること、
前記交点のキャッシュ、前記位置、および前記フィル規則を用いて前記符号なし距離の符号を決定すること
をさらに含む、２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項２】
前記境界デスクリプタの集合はスプラインの集合である
請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項３】
前記フィル規則は偶奇規則である
請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項４】
前記フィル規則は非ゼロ巻数規則である
請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項５】
前記前処理することは、
前記境界デスクリプタを細分割して、その空間的広がりを縮小すること
をさらに含む、請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項６】
前記前処理することは、
前記境界デスクリプタを合体させて、前記境界デスクリプタの集合の濃度を減じること
をさらに含む、請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項７】
前記空間階層はquadtreeである
請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項８】
前記空間階層はkd-treeである
請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項９】
前記距離関数は、ベジエクリッピングを使用することにより、最小の符号なし距離を求める
請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１０】
前記交点のキャッシュは、前記境界デスクリプタが線の集合と交差する位置を格納する  請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１１】
前記線の集合の方向は水平である
請求項１０に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１２】
前記線の集合の方向は垂直である
請求項１０に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１３】
前記２次元距離フィールドは、適応的にサンプリングされた距離フィールドであり、
前記線の集合は、該適応的にサンプリングされた距離フィールドのグリッド線上に位置する
請求項１０に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１４】
前記符号なし距離の符号の決定は、
前記位置を通る線を選択すること、
前記線が前記キャッシュ内にある場合に、該線に対する線交点を取得すること、
前記線が前記キャッシュ内にない場合に、前記境界デスクリプタの集合との前記線の線交点を求め、前記線の線交点を格納すること、
前記線の線交点、前記位置、および前記フィル規則を使用して、前記符号なし距離の符号を決定すること
をさらに含む、請求項１に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１５】
前記線の線交点は、前記線と前記境界デスクリプタの集合との交点のソートされた区間を含む、請求項１４に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【請求項１６】
前記線の線交点は、各交点の交差方向を含む、請求項１４に記載の２次元オブジェクトを２次元距離フィールドに変換する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的にはコンピュータグラフィックスの分野に関し、特に、２次元オブジェクトを距離フィールドに変換することに関する。
【背景技術】
【０００２】
コンピュータグラフィックスの分野において、２次元オブジェクトのレンダリングは基本的に重要である。文字形状、企業ロゴ、および文書に含まれる図版の要素のような２次元オブジェクトは、静的イメージとして、または動画を構成するフレームのシーケンスとしてレンダリングされる。２次元オブジェクトには数多くの表現があり、レンダリングや編集のような特定のオペレーションについては、ある表現のほうが別の表現より良い場合が多い。このような場合、ある形式から別の形式への変換が実行される。
【０００３】
本明細書では、おそらく最も一般的かつ重要な２次元オブジェクトであるデジタルタイプに主眼を置くが、以下の説明は、すべての種類の２次元オブジェクトに当てはまる。
【０００４】
まず、デジタルタイプに関する基本的背景について説明する。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のような企業がそれぞれＣｌｅａｒ  ＴｙｐｅおよびＦｏｎｔ  Ｆｕｓｉｏｎという技術にリソースを投資していることによって証明される通りである。
【００１７】
第２の傾向は、動画化タイプ、あるいはキネティックタイポグラフィの使用である。動画化タイプは、感情を伝え、興味を添え、読者の注意を視覚的に引きつけるために使用される。動画化タイプの重要性は、テレビおよびインターネット広告におけるその広範な使用によって実証されている。
【００１８】
残念ながら、従来のアウトラインベースのフォントは、これらのいずれの領域でも制限を有する。低解像度ディスプレイにタイプをレンダリングすることは、可読性のための良好なコントラストの必要性と、読みやすさのための空間的および／または時間的エイリアシングを減らすこととの間のバランスをとるために、慎重な扱いを必要とする。
【００１９】
上記のように、アウトラインベースのフォントは通常、最適な外観のための命令をレンダリングエンジンに提供するためにヒンティングされる。フォントヒンティングは、多大の労力がかかり、高価である。例えば、１万個を超えるグリフを有し得る日本語や中国語のフォントのための適切にヒンティングされたタイプフェイスを開発するには、数年を要することがある。ヒンティングの重点は、ボディタイプのレンダリング品質を向上させることにあるので、ヒントは、任意のパスに沿って配置されるタイプや動画化タイプの場合には効果的でない傾向がある。
【００２０】
限定された数のフォントサイズおよびタイプフェイスを有する静的文書においてグレイスケールタイプをアンチエイリアシングするためには、高品質フィルタリングを使用することが可能であるが、動画化タイプにおけるフィルタリングの使用は通常、リアルタイムレンダリングに要求される条件によって制限される。
【課題を解決するための手段】
【００２１】
本発明は、２次元オブジェクトを２次元距離フィールドに変換する方法を提供する。オブジェクトは境界デスクリプタの集合およびフィル規則として表現される。境界デスクリプタの集合は前処理され、前処理された境界デスクリプタの集合から空間階層が構成される。交点のキャッシュは初期化される。位置の集合における空間階層は問い合わされ、それによって、位置における距離の集合が求められる。問い合わせは各位置における距離関数を呼び出し、それによって、符号なし距離が求められる。交点のキャッシュ、位置、およびフィル規則から符号なし距離の符号が決定される。距離の集合は２次元距離フィールドを構成するために使用される。
【発明の効果】
【００２２】
本発明は、文字グリフ、企業ロゴ、または任意の２次元オブジェクトの表現、レンダリング、編集、および動画化のための新規なフレームワークを提供する。好ましい一実施の形態では、本発明は、２次元双二次ＡＤＦを用いて２次元オブジェクトを表現する。双二次再構成法は、使用記憶容量と計算負荷の間の最適なバランスを提供する。
【００２３】
本発明は、２次元オブジェクトの隅を囲むセル内に２次元距離フィールドを生成する方法を含む。この方法によれば、従来技術よりも必要な記憶容量が大幅に低減され、精度が大幅に向上する。
【００２４】
本発明者等の距離ベースのアンチエイリアシングによるレンダリング方法は、ピクセル当たり単一の、ヒンティングされていない距離サンプルを使用して、従来技術で使用されるスーパーサンプリング方法よりも良好なアンチエイリアシングを提供する。
【００２５】
本発明者等の距離ベースの方法は、ＡＤＦの空間階層を活用して、効率的で、最適で、適応的な距離ベースのスーパーサンプリングを提供し、それにより、優れた空間的および時間的アンチエイリアシングを行う。本発明者等の方法は、距離ベースの自動ヒンティングのため、距離ベースのグリッドフィッティングのため、３つの一般的なデジタルフォントのデザインパラダイムを統合するため、およびキネティックタイポグラフィ用のさまざまな特殊効果を生成するための計算基盤も提供する。
【発明を実施するための最良の形態】
【００２６】
グリフの距離フィールド表現
本発明は、グリフ、企業ロゴ、またはオブジェクトの任意のデジタル化表現のような閉じた２次元形状Ｓを２次元の符号付き距離フィールドＤとして表現する。説明の目的上、本明細書ではグリフを使用する。
【００２７】
非形式的には、グリフの距離フィールドは、フィールド内の任意の点からグリフのエッジまでの最小距離を測る。ここで、距離の符号は、点がグリフの外部にある場合には負であり、点がグリフの内部にある場合には正である。エッジ上の点は距離がゼロである。
【００２８】
形式的には、距離フィールドとは、すべてのｐ∈Ｒ２に対する写像Ｄ：Ｒ２→Ｒであって、Ｄ（ｐ）＝ｓｉｇｎ（ｐ）・ｍｉｎ｛‖ｐ−ｑ‖：Ｓのゼロ値等値面、すなわちエッジ上のすべての点ｑに対して｝であり、ｓｉｇｎ（ｐ）＝｛ｐがＳの外部にある場合は−１，ｐがＳの内部にある場合は＋１｝であり、‖・‖はユークリッドノルムである、を満たすものである。
【００２９】
各ピクセルについて単一の離散的サンプルを使用する従来技術のカバレジベースのレンダリング方法は、サンプルがアウトラインに任意に近い場合であっても、グリフを完全に取り損なうことがある。レンダリングされたグリフはギザギザのエッジおよび脱落を有し、これらは両方とも空間的エイリアシングの一種である。グリフが動画化される場合、時間的エイリアシングにより、モーション中に「はう」ように見える、ちらつきのあるアウトラインおよびギザギザのエッジを引き起こす。アンチエイリアシングされたレンダリングを生成するためにピクセル当たりのサンプルを追加すれば、これらのエイリアシング効果を減らすことができるが、許容可能な結果のためには多数のサンプルが必要となることがある。
【００３０】
これに対して、本発明による連続的にサンプリングされる距離値は、サンプルが形状の外部にある場合であっても、グリフの近接性を示す。実際、単一のサンプル値を用いて、各ピクセルを中心とするフィルタフットプリントの内部にグリフのうちのどの程度の部分が入るかを評価することができる。
【００３１】
さらに、距離フィールドは滑らかに変化する、すなわち、Ｃ０連続であるので、サンプリングされた値はグリフが移動するとともにゆっくりと変化し、時間的エイリアシングのアーティファクトが減る。
【００３２】
距離フィールドは他の利点も有する。距離フィールドは、インプリシット（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他の文献を参照されたい。
【００４５】
点（ｘ，ｙ）３０２における距離および勾配（ここでｘおよびｙはセル座標で表される、すなわち（ｘ，ｙ）∈［０，１］×［０，１］）は以下のように求められる。
【００４６】
【数１】
2006521624.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等の文献に記載されているようにＡＤＦ生成中に課されるＡＤＦの最大細分割レベルは、双一次および双二次ＡＤＦセルを用いて隅を表現することができる精度を制限する。
【００６５】
この問題点に対処するため、本発明は、グリフのような２次元オブジェクトの隅を包囲するセル内に２次元距離フィールドを生成する方法１３００を提供する。
【００６６】
方法１３００は、２次元オブジェクトから境界デスクリプタの順序集合１３１１を求め（１３１０）、境界デスクリプタの順序集合１３１１からセル内の隅点１３２１を識別する（１３２０）。次に、セルを、隅のほうに最も近い第１領域およびオブジェクトの境界のほうに最も近い第２領域という２つの領域に分割する（１３３０）。また、方法１３００は、セル内の距離を再構成するための再構成法およびサンプリングされた距離値の集合１３７１を指定し（１３４０）、隅点１３２１、領域を画定する線、再構成法、およびサンプリングされた距離値の集合１３７１をメモリに格納する（１３８０）。
【００６７】
再構成法は、セル内の点における距離を、その点が存在する領域に応じて求める。第１領域内の問合せ点に対する距離は、問合せ点から隅点までの距離として求められる。
【００６８】
第２領域における距離を求めるため、境界デスクリプタの順序集合１３１１を、隅点１３２１の前の境界デスクリプタを含む部分集合と、隅点１３２１の後の境界デスクリプタを含む部分集合という２つの部分集合に分割する（１３５０）。次に、セルを内部および外部セクションに分割する延長された曲線を形成するように、境界デスクリプタの各部分集合を拡張する（１３６０）。各セクションについて、セル内の距離フィールドは、対応する延長された曲線から求められる（１３７０）サンプル距離値の集合１３７１から再構成することができる。双二次再構成法の場合、２つのセクションのそれぞれについて、９個の距離値を格納する必要がある。
【００６９】
なお、２つの内部セクションの共通部分はオブジェクトの隅をなすことに留意されたい。したがって、第２領域内の距離は、第１内部セクションまでの距離および第２内部セクションまでの距離を再構成してから、２つの求められた距離の最小値を選択することにより求めることができる。
【００７０】
２つの領域は、隅点を通る２本の有向線から指定することができる。各線は、境界デスクリプタの２つの部分集合の一方に垂直である。各線は、隅点と、その隅点における境界デスクリプタの対応する部分集合の外向き法線で指定することができる。こうして線が画定されると、その線のどちらの側に問合せ点があるかを、問合せ点から隅点へのベクトルと外向き法線との交差積を求めることにより判定することができる。両方の線の外部の側にある点は第１領域にあり、いずれかの線の内部の側にある点は第２領域にある。
【００７１】
フォントレンダリング
現在のフォントレンダリングエンジンでは、ほとんどの場合、フォントはアウトラインとして表現され、必要に応じて所望の出力サイズに適合するようにスケーリングされる。ほとんどの高解像度プリンタは２値レンダリングを使用しているが、最新のディスプレイデバイスは、小さいポイントサイズにおいて、グレイスケールレンダリング、またはグレイスケールレンダリングと２値比レンダリングの組合せを使用するほうが普通である。
【００７２】
グレイスケールグリフをラスタライズするための一般的手法では、それらのアウトラインに対するスケーリングおよびヒンティングを行う。スケーリングされヒンティングされたアウトラインを、通常は所望の解像度の４〜１６倍の大きさの高解像度イメージに走査変換する。次に、フィルタリング方法（例えばボックスフィルタ）を適用することによって、高解像度イメージをダウンサンプリングして、最終的なグレイスケールイメージを生成する。
【００７３】
ボディタイプの場合、個々のグリフを一度ラスタライズし、前処理ステップで再使用するためにグレイスケールビットマップとしてキャッシュに格納することができる。グリフのサブピクセル配置の必要性から、各グリフのいくつかのバージョンをラスタライズしなければならないことがある。ボディタイプに対してキャッシュを使用することにより、例えばＡｄｏｂｅ  Ａｃｒｏｂａｔ  ＰＤＦ文書でページ移動するようなタスク中に、短い遅延（例えば１／２秒）での高品質のレンダリングが可能となる。
【００７４】
しかし、任意のパスに対してレンダリングされたタイプおよび動画化タイプではキャッシュを使用することができないため、それらのタイプはオンデマンドで生成しなければならない。リアルタイムレンダリングの要求は、低解像度のフィルタリング（通常はピクセル当たり４サンプルでボックスフィルタリング）の使用を余儀なくさせる。これは、空間的および時間的エイリアシングを引き起こすことがある。エイリアシングは、システムメモリに存在するヒンティングされたデバイスフォントを用いて低減することができる。しかし、リアルタイムフレームレートを維持することは、ヒンティングされたデバイスフォントをどのようにして使用することができるかに対する重大な制約となる。例えば、ヒンティングされたデバイスフォントを動的にスケーリングまたは回転することができない。
【００７５】
ＣｌｅａｒＴｙｐｅに関する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の構造は、最適な距離ベースの適応サンプリングを実施するのに必要な局所変動のマップを提供し、上記のような局所変動を決定する従来技術の適応スーパーサンプリングによるアンチエイリアシング方法における困難を克服する。
【００９５】
イメージ内の各ピクセル４０２の各コンポーネント４０４について、コンポーネント４０４を含むセルを見つけ、そのコンポーネントのフィルタ半径ｒ内のサンプル点４０７の集合４０３を、ピクセルコンポーネント４０４に関連づける（４２０）。コンポーネント当たりのサンプル点４０７の個数（ｓｐｃ）は、ｒに対するセルの相対サイズ（ｃｅｌｌＳｉｚｅ）に依存する。サンプル点４０７におけるサンプリングされた距離をフィルタリングすることにより、単一の重みつき平均距離４０５を求めてから（４３０）、ピクセル４０２のコンポーネント４０４のアンチエイリアス強度４０６にマッピングする（４４０）。
【００９６】
種々のフィルタおよびサンプリング戦略が可能である。好ましい実施の形態では、一般的な形式のガウシアンフィルタを使用し、各距離サンプルに
【００９７】
【数２】
2006521624.tif 000004
【００９８】
の重みをかける。ここで、ｄはサンプル点からピクセルのコンポーネントまでの距離であり、Ｗはそのコンポーネントに用いられる重みの和である。ボックスフィルタ、コーンフィルタ、負ローブフィルタ、および他の形式のガウシアンフィルタでも同様の結果を得ることができる。
【００９９】
図６Ａ〜図６Ｃは、本発明者等のサンプリング戦略を示している。サンプル４０７は、重みおよび重み和の効率的計算のために、コンポーネント６０１の近くに同心円６１０をなして配置される。ピクセル間間隔の１．３倍のフィルタ半径ｒ６０２を使用し、ｃｅｌｌＳｉｚｅ＞ｒの場合（図６Ａ）は１ｓｐｃで、ｒ／２＜ｃｅｌｌＳｉｚｅ≦ｒの場合（図６Ｂ）は５ｓｐｃで、そしてｃｅｌｌＳｉｚｅ≦ｒ／２の場合（図６Ｃ）は１３ｓｐｃでサンプリングする。
【０１００】
サンプル点４０７をピクセルコンポーネント４０４に関連づけるために、本発明は、同心円ではなく数多くの他の戦略を使用することもできる。本発明者等の方法は、厳密にどのサンプリング戦略を採るかということにはあまり左右されない。
【０１０１】
以下で説明するもう１つの適応サンプリング戦略は、フィルタ半径ｒ内に含まれるすべてのセルの中心にサンプル点を配置する。この戦略も同程度に良好な結果を有する。
【０１０２】
セルベースのアンチエイリアシング
上記の距離フィールドによるアンチエイリアシング方法は、走査線ベースのラスタライズを用いたソフトウェアとして実施することができる。別法として、セルに分割された距離フィールドをセルごとに、すなわちオブジェクト順にアンチエイリアシングすることができる。セルベースのレンダリングによれば、サンプル点を含むセルを見つけるために木をトラバースすることが不要となり、単一セル内で距離および勾配を計算するための冗長な設定が不要となり、セルデータの取得（すなわちメモリフェッチ）の繰り返しが少なくなる。
【０１０３】
さらに、レンダリングに必要なセルを固定サイズの自己完結的なユニットの順次ブロックとして表現することができる（すなわち、セル内の点に対する距離および勾配がセルの距離値から求まる）ので、本発明者等のセルベースの手法は、ハードウェア実装に適しており、リアルタイムレンダリングが可能となる。
【０１０４】
図７は、２次元距離フィールド７１１として表現（７１０）されたオブジェクト７０１（例えばグリフ）をオブジェクト順にアンチエイリアシングする方法７００を示している。方法７００は、適応的な距離ベースのスーパーサンプリング、距離ベースの自動ヒンティング、および距離ベースのグリッドフィッティングを提供する。結果として得られるアンチエイリアシングされたピクセル強度は、イメージの一部としてＣＲＴおよびＬＣＤのようなディスプレイ上にレンダリングされることが可能である。本方法は、モーションブラーをレンダリングするのに特に有用である。２次元距離フィールド７１１のセルが、必要な距離サンプルの数を減らすために空間階層に編成されている場合には、ミップマッピングを使用することができる。
【０１０５】
２次元距離フィールド７１１をセル７１２に分割する。双二次の適応的にサンプリングされた距離フィールドを使用する好ましい一実施の形態では、各セルのサイズは２次元距離フィールドの局所変動に依存する。各セルは、セル内の２次元距離フィールドを再構成する方法（Ｍ）７１３を含む。レンダリングすべき距離フィールドの領域（破線）７２２を含むセル７２１の集合を識別する（７２０）。
【０１０６】
領域７２２を用いて、その領域に関連するピクセルの集合７３１を見つける（７３０）。ピクセル集合７３１に属する各ピクセルについて、コンポーネント７４１の集合を指定する（７４０）。次に、セルの集合における距離から各ピクセルの各コンポーネントについてアンチエイリアス強度７５１を求める。ここで、距離は、セルの集合から再構成される。その後、上記のように、距離をアンチエイリアス強度にマッピングする。
【０１０７】
一実施の形態では、ピクセルのコンポーネント付近のセル集合内で単一のサンプル点を見つけ、その単一サンプル点におけるセル集合からの距離を再構成することによって、距離を求めることができる。双二次の適応的にサンプリングされた距離フィールドを使用する本発明の好ましい実施の形態では、この手法は、適応的な距離ベースのスーパーサンプリングに対するフィルタ半径よりも小さいセルの特別扱いによって強化される。小さいセルは、距離フィールドに高い変動がある場合に生じるので、これらのセルの近くのピクセルにおける距離は、距離を強度にマッピングする前にプレフィルタリングすることができる。
【０１０８】
要素の合成バッファを初期化する。ここで各要素は、ピクセル集合の各ピクセルのコンポーネントに対応する。セル集合に属する各セルは独立に処理することができる。好ましい実施の形態では、各要素は、重み付き距離および累積重みからなり、これらはいずれもゼロに初期化される。セルが処理される時、これらの重み付き距離および累積重みは、そのセル内、またはそのセルの中心からフィルタ半径内のいずれかに存在するピクセルコンポーネントに対応するバッファ要素においてインクリメントされる。
【０１０９】
すべてのセルを処理した後、重み付き距離を各ピクセルの各コンポーネントに対する累積重みで正規化することにより距離を生成してから、その距離をアンチエイリアシングされたコンポーネント強度にマッピングする。好ましい実施の形態では、上記と同じガウシアン重みおよびフィルタ半径を使用する。
【０１１０】
以上説明した本発明者等のセルベースのレンダリングは、フィルタ半径に対する各セルの相対サイズとは無関係に、セル集合に属するあらゆるリーフセルを常に処理する。理論的には、これは最適の適応的な距離ベースのスーパーサンプリングを提供する。実際には、ＡＤＦquadtreeをミップマッピングとして使用することにより、セル数を減らすことができる。
【０１１１】
ＡＤＦquadtree構造により、小さいリーフセルをそれらの祖先で置き換え、実質的にquadtreeをある所定のセルサイズで打ち切ることができる。このセルサイズがピクセル間間隔の１／４以下である限り、適応的な距離ベースのスーパーサンプリング結果における視覚的劣化はない。これは、領域をレンダリングするためのセル数を減少させる。
【０１１２】
ピクセルコンポーネントの処理
１つのピクセルは、１つまたは複数のコンポーネントを含む。例えば、典型的なＣＲＴまたはＬＣＤカラーモニタ上のピクセルは、赤、緑、および青コンポーネントを含む。本発明では、ピクセルが複数のコンポーネントを含む場合には、上記のように独立に扱うこと、または単一のコンポーネントとして処理することができる。複数のコンポーネントを単一コンポーネントとして処理する場合、ピクセルの色およびアルファ値は、その単一コンポーネントのアンチエイリアス強度から求めることができる。
【０１１３】
複数のコンポーネントを単一のコンポーネントとして処理するのには２つの理由がある。第１に、それによりレンダリング時間が短縮される。第２に、複数のコンポーネントを個別にアドレスすることができない場合、または個別のコンポーネントの相対位置が不明の場合、各コンポーネントを個別に扱うことは不可能である。
【０１１４】
ＬＣＤのようなディスプレイデバイスがアドレス可能なピクセルコンポーネントを有する場合、当技術分野で知られているように、複数のコンポーネントを独立に処理することにより、デバイスの有効解像度を上げることができる。本発明は、そのようなデバイスのこの特徴を活用して、従来技術よりも優れた品質の距離ベースのアンチエイリアシングを行うことができる。
【０１１５】
２次元オブジェクトの動画化
図１２は、動画スクリプト１２０２に従ってフレームのシーケンスとしてオブジェクト１２０１を動画化する方法１２００の流れ図を示している。動画スクリプト１２０２は、フレームシーケンス中の各フレームについて、オブジェクトの状態（例えば、オブジェクトの位置、サイズ、方位、および変形）を指示する。オブジェクトは、２次元距離フィールドとして表現される。オブジェクト１２０１のポーズ１２１１は、動画スクリプト１２０２に従ってフレームシーケンス１２２１中の各フレームについて更新される（１２１０）。オブジェクト１２０１は、更新されたポーズ１２１１および距離ベースのアンチエイリアシングによるレンダリング方法１２１２を用いてレンダリングされる。
【０１１６】
オブジェクト１２０１を表現する２次元距離フィールドは、オブジェクトの異なる表現（例えば、オブジェクトのアウトライン記述またはオブジェクトのビットマップ記述）から取得することができる。
【０１１７】
特定のオブジェクト１２０１に対するポーズ１２１１の更新１２１０は、剛体変換、自由変形、ソフトボディ衝撃変形、レベルセット法、パーティクルシミュレーション、およびそのレンダリング属性に対する変更等、オブジェクトに対して種々のオペレーションを適用することによって実行することができる。
【０１１８】
オブジェクトをレンダリングする（１２２０）時、オブジェクトを表現する２次元距離フィールド内のサンプル点の集合を、フレームシーケンス１２２１中のフレーム内のピクセルのコンポーネントに関連づける。２次元距離フィールドおよびサンプル点集合から距離を求めることによって、距離を、ピクセルのコンポーネントのアンチエイリアス強度にマッピングすることができる。
【０１１９】
好ましい一実施の形態では、オブジェクト１２０１を表現する２次元距離フィールドをセルに分割する。各セルは、そのセル内の２次元距離フィールドを再構成する方法を含む。この場合にレンダリング１２２０を行うには、レンダリングすべき２次元距離フィールドの領域を含むオブジェクト１２０１を表現する２次元距離フィールドのセルの集合を識別し、その領域に関連するピクセルの集合を見つける。そのピクセル集合に属する各ピクセルに対するコンポーネントの集合を指定する。ピクセルの各コンポーネントに対する距離をそのセル集合から求め、その距離をピクセルのコンポーネントのアンチエイリアス強度にマッピングすることにより、ピクセル集合に属する各セルの各コンポーネントに対するアンチエイリアス強度を求める。
【０１２０】
距離ベースの自動ヒンティング
標準的なフォント表現におけるヒンティングは、時間のかかる手作業のプロセスである。このプロセスにおいて、タイプデザイナとヒンティング専門家が、個々のグリフをより良くピクセルグリッドにフィッティングするための規則の集合を生成する。良好なヒンティングが生成する小さいタイプサイズのグリフは、適切な間隔を有し、良好なコントラストを有し、外観が統一的である。
【０１２１】
これらの規則は以下のものを提供する：同一のコントラスト分布を有し、左および下のエッジができるだけ鋭いコントラストを有する垂直ステム；視覚的構造を目に伝えるのに十分なコントラストを有するための、グリフの斜めのバーおよび細い丸みを帯びたパーツ；ならびに、互いに結合し、人間の目によって捕捉されるための十分な強調を提供するセリフ。Hersch等「Perceptually Tuned Generation of Grayscale Fonts」（IEEE CG&A, Nov, pp.78-89, 1995）を参照されたい。
【０１２２】
なお、従来技術のフィルタリング方法は、ファジーな文字を生成し、異なるコントラストプロファイルを異なる文字パーツに割り当てるので、タイプデザインの重要な規則に反している。これらの限界を克服するため、各フォントの各グリフごとにヒントが開発される。従来技術のヒンティング方法には数多くの問題点がある。すなわち、開発に多大な労力がかかり、レンダリングが遅く、複雑なためハードウェア実装ができないことである。
【０１２３】
アウトラインベースのフォントの場合、ヒントを用いたレンダリングは３ステップのプロセスである。第１に、グリフのアウトラインをスケーリングし、ピクセルグリッドにそろえる。第２に、アウトラインを修正することにより、ステム、バー、およびセリフのコントラストを制御し、非常に細いセクションおよびアークの太さを増大させる。第３に、修正されたアウトラインをスーパーサンプリングしてから、フィルタリングによりダウンサンプリングする。
【０１２４】
上記で説明した本発明者等のヒンティングされていない距離ベースのアンチエイリアシングによるレンダリング方法は、ヒンティングを使用する従来技術のフォントレンダリング方法よりも優れているが、知覚的ヒンティングにより、小さいタイプサイズでの読みやすさを向上させることができることが知られている。
【０１２５】
したがって、図８に示すように、距離フィールドを活用することにより、小さいポイントサイズでグリフをレンダリングするための距離ベースの自動ヒンティングを提供する。ヒンティングの第１ステップ８１０で、距離フィールドをスケーリングし、ピクセルグリッドにそろえる。これは、与えられた、または導出されたフォントメトリック（例えば、キャップハイト、ｘハイト、およびベースラインの位置）から自動的に行うことができる。
【０１２６】
この種のグリッドフィッティングを適用した後、距離フィールドおよびその勾配フィールドを用いて知覚的ヒントを提供する。
【０１２７】
一実施の形態では、距離フィールドの勾配の方向を用いて、オブジェクトの左および下のエッジ上のピクセルを検出する（８２０）。これらのピクセルを濃くし（８３０）、対向するエッジ上のピクセルを薄くする（８４０）ことによって、見かけ上のストロークウェイトを変えずに左および下のエッジ上のコントラストを高くする。これは、対応するピクセル強度を増減させることによって行うことができる。
【０１２８】
もう１つの実施の形態では、勾配フィールドを用いて、斜めステムおよび細いアークに対するコントラストを良くする。なお、ピクセルがグリフの薄い領域上またはその付近に位置する場合、ピクセルの両側の隣接ピクセルは逆の勾配方向を有する、すなわちそれらの内積が負であることに留意されたい。勾配方向の急激な変化を検出することにより、これらの薄い領域上のピクセルを濃くする（８５０）ことができる。
【０１２９】
これらは、距離フィールドを用いて知覚的ヒントを自動的に提供する方法の２つの例に過ぎない。距離フィールドは、最適な文字間隔および一様なストロークウェイトを提供するためにも使用可能である。
【０１３０】
フォントの生成および編集
フォントをデザインするための２つの基本的方法がある。第１の方法は手作業である。その場合、グリフを手で描き、デジタル化してから、アウトラインをデジタル化ビットマップにフィッティングする。第２の方法はコンピュータによるものである。
【０１３１】
後者の場合、３種類のツールが利用可能である。直接ビジュアルツールが、曲線操作のために使用可能である。手続き型デザインツールが、手続きの命令を実行することによってグリフの形状を構成する。手続きは、形状のアウトラインを画定してそれをフィルするか、またはジオメトリや方位等のいくつかの属性を有するペン先でストローキングされたパスを画定する。コンポーネントベースのデザインツールにより、デザイナは、ステム、アーク、および他の繰り返し形状等の基本的コンポーネントを作成してから、それらのコンポーネントを組み合わせてグリフを生成することができる。
【０１３２】
本発明者等は、スカルプティングエディタ(sculpting editor)を用いて、ストロークベースのデザインを提供する。これは、２００１年３月１６日出願の米国特許出願第０９／８１０，２６１号「System and Method for Sculpting Digital Models」（これは参照により本明細書に援用される）に記載されている３Ｄカービング(carving)の２Ｄ対応物である。ストローキングは、対話的に行うことが可能であり、あるいは、プログラム可能なデザインツールをエミュレートするためにスクリプティングすることも可能である。
【０１３３】
Ａｄｏｂｅ  Ｉｌｌｕｓｔｒａｔｏｒにあるものと同様のベジエ曲線操作ツールを用いた曲線ベースのデザインも使用可能である。曲線ベースのデザインは、アウトラインを距離フィールドに、および距離フィールドをアウトラインに変換する方法と組み合わせることにより、デザインパラダイム間のシームレスなインタフェースを提供することができる。
【０１３４】
コンポーネントベースのデザインは、インプリシットな距離フィールドに対するＣＳＧおよびブレンディングのオペレーションを使用する。これにより、コンポーネントを独立にデザインし、編集中またはレンダリング中のいずれかに組み合わせることができる。
【０１３５】
また、本発明者等は、アナログおよびデジタルフォントマスタからＡＤＦを自動生成する方法も提供する。
【０１３６】
コンポーネントベースのデザインの場合、本発明者等のフォントエディタによれば、quadtree操作を用いてＡＤＦを効率的に鏡映および回転することにより、グリフに共通の対称性をモデリングすることができる。さらなる特徴として、ＡＤＦのスケーリング、平行移動、および複数のＡＤＦを組み合わせるオペレーション（例えばＣＳＧおよびブレンディング）がある。
【０１３７】
ストロークベースのデザインの場合、本発明者等は、ペン先をエミュレートするための幾何プロファイルを備えたカービングツールを提供する。シミュレートされるペン先の方位およびサイズは、ストロークに沿って変化することが可能であり、それによりカリグラフィを模倣する。
【０１３８】
図９は、ペンストロークから２次元距離フィールド９３１を生成する方法９００を示している。ペンストロークの期間中のペン状態をサンプリングする。ペン状態は、ストローク中のペンの位置を含む。このペン状態は、方位およびジオメトリを含んでもよい。ペン状態サンプル９０１から、ペンストロークに沿ったペン状態の順序リスト９１１を生成する（９１０）。次に、ペン状態の順序リストから境界デスクリプタの集合９２１を生成する（９２０）。最後に、境界デスクリプタの集合９２１から２次元距離フィールド９３１を生成する（９３０）。
【０１３９】
好ましい実施の形態では、境界デスクリプタ９２１は３次ベジエ曲線のような曲線である。
【０１４０】
好ましい実施の形態では、曲線フィッティングプロセスを適用することにより、ペンのパスにＧ２連続曲線の最小集合をユーザ指定の精度でフィッティングする。また、ツールのサイズおよび方位を用いて、このパスからオフセット点のさらに２つの順序リストを生成し、これらのオフセット点に曲線をフィッティングすることによりストロークアウトラインを生成する。効率的な処理のために、アウトライン曲線を空間階層として配置する。この階層から、タイル型ジェネレータを用いて２次元ＡＤＦを生成する。２００１年３月１６日出願の米国特許出願第０９／８１０，９８３号（これは参照により本明細書に援用される）を参照されたい。
【０１４１】
ベジエクリッピングを用いてアウトラインまでの最小距離を効率的に計算する。ユーザにとっての知覚的遅延なしに、ストロークはＡＤＦに変換される。曲線操作のために、本発明者等はベジエ曲線エディタを提供する。
【０１４２】
図１１に示すように、距離フィールドを境界デスクリプタ（例えばベジエ曲線）に変換することにより、３つのすべてのデザインパラダイムの間のシームレスなインタフェースを提供することも可能である。
【０１４３】
好ましい実施の形態では、双二次ＡＤＦを使用する。その場合、この変換は、高速な近隣探索のためのＡＤＦ階層を用いてリーフセルをトラバースし、ＡＤＦのゼロ値等高線(iso-contour)に沿った点の順序リストを生成してから、以下で図１１を参照して説明するように曲線をフィッティングすることにより、境界デスクリプタを生成する。
【０１４４】
境界デスクリプタ誤差が点のリストから計算される従来技術とは異なり、本発明者等は、距離フィールドから直接に境界デスクリプタ誤差を計算する。とがった隅に特別の注意を払う。本発明者等の手法は、ユーザが、気づき得る遅延なしにパラダイム間をシームレスに切り替えるのに十分なほど高速である。
【０１４５】
図１１は、２次元距離フィールド１１０１を境界デスクリプタの集合１１３１に変換する方法１１００を示している。まず、２次元距離フィールド１１０１の等高線１１１１（例えば、ゼロ値またはあるオフセットの距離）を選択する（１１１０）。
【０１４６】
次に、等高線１１１１および２次元距離フィールド１１０１から点の順序リスト１１２１を生成する（１１２０）。双二次の適応的にサンプリングされた距離フィールドを使用する本発明の好ましい実施の形態では、このステップは、近隣探索技法を用いて、適応的にサンプリングされた距離フィールド１１０１の隣接セルを順次訪れる。この探索技法は、適応的にサンプリングされた距離フィールド１１０１の空間階層を活用することにより、等高線１１１１に沿って次の近隣を効率的に突き止める。
【０１４７】
もう１つの実施の形態では、ＡＤＦ１１０１内の境界セルを選択し、各境界セルに順序付きの点の集合を割り当て、ＡＤＦ１１０１の距離フィールドおよび勾配フィールドを用いてＡＤＦ１１０１の等高線１１１１まで各点を移動させることによって、点の順序リスト１１２１を生成する（１１２０）。
【０１４８】
次に、点の順序リスト１１２１をフィッティングするために、境界デスクリプタ１１３１の集合を初期化する（１１３０）。境界デスクリプタ１１３１は、点の順序リスト１１２１の隣接する点どうしをつないで、初期境界デスクリプタ１１３１を構成する線分の集合を形成することにより初期化される（１１３０）。
【０１４９】
もう１つの実施の形態では、隅点を見つけ、点の順序リストを隅点で区切られるセグメントに細分割し、セグメント境界デスクリプタを求めて各セグメントをフィッティングすることによって、境界デスクリプタ１１３１の集合を初期化する（１１３０）。セグメント境界デスクリプタの合併が初期境界デスクリプタ１１３１となる。
【０１５０】
隅点は、距離フィールドから求められる曲率を測ることによって見つけることができる。距離フィールドが双二次ＡＤＦである好ましい実施の形態では、曲率の大きい領域はＡＤＦにおける小さいセルで表現されるので、ＡＤＦセルサイズを用いることにより隅点を見つけることができる。
【０１５１】
境界デスクリプタ１１３１を初期化（１１３０）した後、境界デスクリプタ１１３１を更新する（１１４０）。更新１１４０は、距離フィールドを再構成し、等高線からの境界デスクリプタの平均または最大偏差を測ることによって、各境界デスクリプタに対する誤差を求める。
【０１５２】
境界デスクリプタ１１３１は、各境界デスクリプタに対する誤差が許容可能となるまで、または所定の時間が経過するまで、または境界デスクリプタ１１３１の集合の濃度が極小になるまで、更新される（１１４０）。
【０１５３】
非デジタル形式で（すなわちアナログマスタとして）、またはビットマップのようなデジタル形式で（すなわちデジタルマスタとして）格納されている従来のフォントを取り込むため、本発明者等の編集システムは、高解像度２値ビットマップからＡＤＦを生成する方法を提供する。
【０１５４】
まず、アナログマスタを走査することにより、目標ＡＤＦ解像度の少なくとも４倍以上の解像度で２値デジタルマスタを生成する（例えば、現在のディスプレイ解像度およびディスプレイサイズには４０９６×４０９６デジタルマスタで十分である）。次に、厳密なユークリッド距離変換をビットマップに適用することにより、グリフを表現する規則的にサンプリングされた距離フィールドを生成する。
【０１５５】
次に、この規則的にサンプリングされた距離フィールドから、タイル型ジェネレータを用いてＡＤＦを生成する。ビットマップからＡＤＦへの変換は、２ＧＨｚのＰｅｎｔｉｕｍ（登録商標）  ＩＶプロセッサでグリフ当たり約１０秒を要する。
【０１５６】
既に存在する従来技術のグリフのデスクリプタを、グリフが境界デスクリプタの集合を用いて記述される距離フィールドに変換するためには、図１０に関連して説明した方法を適用する。
【０１５７】
キネティックタイポグラフィのための計算基盤
本発明者のＡＤＦグリフフレームワークの距離フィールドおよび空間階層の属性は、２Ｄオブジェクト（例えば、グリフ、企業ロゴ、または任意の２Ｄ形状）のコンピュータシミュレーションにも使用可能である。例えば、両方の属性を、衝突の検出および回避を行うため、互いにはまり込んでいるボディ間の力を計算するため、ならびにソフトボディ変形をモデリングするために使用可能である。
【０１５８】
レベルセット法は、符号付き距離フィールドを使用する方法であり、融解や流体力学のようなさまざまな効果をモデリングするために使用可能である。ＡＤＦは、距離値および勾配の計算、すなわち上記で列挙した方法に必要な２つの重要な計算のために効率的に問い合わせることが可能な、コンパクトでインプリシットな表現である。
【０１５９】
これに対して、運動または変形しているアウトラインから距離値および勾配を求めることは、リアルタイム対話のためのソフトウェアでは実際的でない。Hoff等「Fast and Simple 2D Geometric Proximity Queries Using Graphics Hardware」（Proc. Interactive 3D Graphics'01, 2001）を参照されたい。Hoff等は、グラフィックスハードウェアを用いることにより、線分で近似された曲線を変形するために、規則的にサンプリングされた２Ｄ距離フィールドをオンザフライで生成している。
【０１６０】
距離フィールドのインプリシットな性質は、複雑なトポロジー変化（例えば、アウトラインベースのフォントでモデリングすることが困難な面オフセット）を可能にする。また、距離フィールドは、動画化オブジェクトの非フォトリアリスティックなレンダリングを提供することにより芸術的効果を加えるためにも使用可能である。
【０１６１】
以上、本発明について、好ましい実施の形態を例として説明したが、本発明の精神および範囲内で種々の他の適応および変更をなし得ることは言うまでもない。したがって、添付の請求項の目的は、本発明の真の精神および範囲内に入るすべてのそのような変形および変更を包含することである。
【図面の簡単な説明】
【０１６２】
【図１Ａ】従来技術によるグリフの距離フィールド表現のブロック図である。
【図１Ｂ】従来技術によるグリフの距離フィールド表現のブロック図である。
【図２Ａ】本発明の好ましい一実施の形態による距離フィールド表現のブロック図である。
【図２Ｂ】本発明の好ましい一実施の形態による距離フィールド表現のブロック図である。
【図３】本発明の好ましい一実施の形態による距離フィールドの双二次セルのブロック図である。
【図４】本発明によるイメージ順にオブジェクトをアンチエイリアシングする方法の流れ図である。
【図５】本発明によって使用される線形フィルタのグラフである。
【図６Ａ】ピクセルのコンポーネント付近のサンプルの図である。
【図６Ｂ】ピクセルのコンポーネント付近のサンプルの図である。
【図６Ｃ】ピクセルのコンポーネント付近のサンプルの図である。
【図７】本発明によるオブジェクト順にオブジェクトをアンチエイリアシングする方法の流れ図である。
【図８】本発明による距離ベースの自動ヒンティング方法の流れ図である。
【図９】本発明によるペンストロークを距離フィールドに変換する方法の流れ図である。
【図１０】本発明による２次元オブジェクトを距離フィールドに変換する方法の流れ図である。
【図１１】本発明による距離フィールドを境界デスクリプタに変換する方法の流れ図である。
【図１２】本発明によるオブジェクトを動画化する方法の流れ図である。
【図１３】本発明による２次元オブジェクトの隅を包囲するセル内の２次元距離フィールドを生成する方法の流れ図である。
【図１Ａ】
2006521624.tif 000005
【図１Ｂ】
2006521624.tif 000006
【図２Ａ】
2006521624.tif 000007
【図２Ｂ】
2006521624.tif 000008
【図３】
2006521624.tif 000009
【図４】
2006521624.tif 000010
【図５】
2006521624.tif 000011
【図６Ａ】
2006521624.tif 000012
【図６Ｂ】
2006521624.tif 000013
【図６Ｃ】
2006521624.tif 000014
【図７】
2006521624.tif 000015
【図８】
2006521624.tif 000016
【図９】
2006521624.tif 000017
【図１０】
2006521624.tif 000018
【図１１】
2006521624.tif 000019
【図１２】
2006521624.tif 000020
【図１３】
2006521624.tif 000021
【国際調査報告】
2006521624.tif 000022
2006521624.tif 000023
2006521624.tif 000024