JP4762901B2 - 合成グリフの領域をレンダリングする方法 - Google Patents

合成グリフの領域をレンダリングする方法 Download PDF

Info

Publication number
JP4762901B2
JP4762901B2 JP2006529403A JP2006529403A JP4762901B2 JP 4762901 B2 JP4762901 B2 JP 4762901B2 JP 2006529403 A JP2006529403 A JP 2006529403A JP 2006529403 A JP2006529403 A JP 2006529403A JP 4762901 B2 JP4762901 B2 JP 4762901B2
Authority
JP
Japan
Prior art keywords
distance
cell
pixel
field
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006529403A
Other languages
English (en)
Other versions
JP2007529788A (ja
Inventor
ペリー、ロナルド・エヌ
フリスケン、サラ・エフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Research Laboratories Inc
Original Assignee
Mitsubishi Electric Research Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Research Laboratories Inc filed Critical Mitsubishi Electric Research Laboratories Inc
Publication of JP2007529788A publication Critical patent/JP2007529788A/ja
Application granted granted Critical
Publication of JP4762901B2 publication Critical patent/JP4762901B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、包括的にはコンピュータグラフィックスの分野に関し、特に2次元距離フィールドにより表現されるオブジェクトを生成してレンダリングすることに関する。
コンピュータグラフィックスの分野において、2次元オブジェクトのレンダリングは基本的に重要である。文字形状、企業ロゴ、および文書に含まれる図版の要素のような2次元オブジェクトは、静的イメージとして、または動画を構成するフレームのシーケンスとしてレンダリングされる。2次元オブジェクトには数多くの表現があり、レンダリングや編集のような特定のオペレーションについては、ある表現のほうが別の表現より良い場合が多い。このような場合、ある形式から別の形式への変換が実行される。
本明細書では、おそらく最も一般的かつ重要な2次元オブジェクトであるデジタルタイプに主眼を置くが、以下の説明は、すべての種類の2次元オブジェクトに当てはまる。
まず、デジタルタイプに関する基本的背景について説明する。Times New RomanやArialのような典型的なラテンフォントファミリは、例えば標準(regular)、斜体(italic)、太字(bold)および太字斜体(bold italic)のようなフォントの集合を含む。各フォントは、グリフと呼ばれる個々の文字形状の集合を含む。各グリフは、その種々のデザイン特徴、例えば、基礎となるジオメトリ、ストロークの太さ、セリフ、ジョイナリ(joinery)、輪郭の配置および個数、細いストロークと太いストロークの比、ならびにサイズによって区別される。
フォントを表現するには、ビットマップ、アウトライン(例えば、Type 1[Adobe Systems, Inc. 1990]およびTrueType[Apple Computer, Inc. 1990])、および手続き型フォント(例えば、KnuthのMetafont)等の多くの方法があるが、アウトラインが主流である。アウトラインベースの表現は、米国マサチューセッツ州CambridgeのBitstream Inc.、米国カリフォルニア州Mountain ViewのAdobe Systems, Inc.、米国カリフォルニア州CupertinoのApple Computer, Inc.、米国ワシントン州BellevueのMicrosoft Corporation、ドイツ国ハンブルクのURW、および米国マサチューセッツ州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)は、フォントの歴史および科学についての総説を含んでいる。
特に重要であるのは、ボディタイプサイズおよびディスプレイタイプサイズという2つのクラスのタイプサイズである。ボディタイプのフォントは、比較的小さいポイントサイズ(例えば14pt以下)でレンダリングされ、このパラグラフのような文書の本文で使用される。ボディタイプは、可読性および読みやすさのために、高品質のレンダリングを必要とする。ボディタイプのサイズ、タイプフェイス、およびベースライン方位は、単一文書中ではめったに変化しない。
ディスプレイタイプのフォントは、比較的大きいポイントサイズ(例えば36pt以上)でレンダリングされ、タイトルや見出しに、また、雰囲気を設定したり注目を集めたりするためにデザインおよび広告において使用される。ボディタイプとは対照的に、ディスプレイタイプでは審美性が重視される。可読性よりも、空間的および時間的エイリアシングがないことが重要であり、アンチエイリアシングよりもコントラストのほうが重要となり得る。タイプを表現しレンダリングするためのフレームワークは、衝突する要求を有するこれらの2つのクラスの両方をうまく扱うことが非常に重要である。
タイプは、出力デバイス(例えばプリンタやディスプレイ)へ、2値、グレイスケール、またはカラーとしてレンダリングすることができる。一部のレンダリングエンジンは、非常に小さいタイプサイズのために2値レンダリングを使用して、より良好なコントラストを達成している。しかし、適切にヒンティング(hinted)されたグレイスケールフォントも同様な可読性を有することができる。
ヒントとは、各グリフとともに格納される規則または手続きの集合であって、タイプフェイス内のすべてのグリフにわたって対称性、ストロークのウェイト、および一様な外観のような特徴を保持するために、レンダリング中にグリフのアウトラインをどのように修正すべきかを指定するものである。
自動および半自動ヒンティングシステムを設計する試みがなされてきているが、ヒンティングプロセスは依然として、新しいフォントのデザインにおいて、および既存のフォントを低解像度ディスプレイデバイス用にチューニングする場合において、主要なボトルネックであり続けている。また、ヒンティング規則を解釈することの複雑さは、フォントレンダリングのためにハードウェアを使用することを妨げている。ハードウェアサポートがないため、特にリアルタイムでタイプを動画化する時には、使用するピクセル当たりのサンプル数を少なくするというように、ソフトウェアラスタライズ中に妥協を余儀なくされる。
グレイスケールフォントレンダリングは、通常、何らかの形のアンチエイリアシングを伴う。アンチエイリアシングとは、2値フォントに現れるギザギザのエッジや階段効果を平滑化するプロセスである。多くのフォントレンダリングエンジンは独自仕様であるが、ほとんどが、グリッドフィッティングおよびヒンティングの後に、ピクセル当たり4または16サンプルのスーパーサンプリングを使用してから、それぞれ2×2または4×4ボックスフィルタでダウンサンプリングしている。
ボックスフィルタリングのような初歩的フィルタリングは、レンダリング速度の必要性から正当化される。しかし、その手法であっても、動画化タイプに要求されるようなリアルタイムレンダリングには遅すぎることが多く、レンダリングされたグリフは空間的および時間的エイリアシングを被る。
タイポグラフィにおける3つの重要な傾向から、従来技術のフォント表現に固有のいくつかの制限が明らかとなっており、したがって変更が必要とされている。
第1の傾向は、オフィスにおけるコンピュータの中心的役割、家庭でのインターネット閲覧の人気の増大、およびPDA等のハンドヘルド型電子デバイスの普及によって、テキストを画面上で読むことが重視されるようになってきたことである。このようなディスプレイは通常、インチ当たり72〜100ドットの解像度を有し、これは印刷デバイスの解像度よりも大幅に低い。
この低解像度は、読みやすさおよび可読性を保証するために、タイプをラスタライズする際に特別の扱いを要求する。このことは、MicrosoftおよびBitstreamのような企業がそれぞれClear TypeおよびFont Fusionという技術にリソースを投資していることによって証明される通りである。
第2の傾向は、動画化タイプ、あるいはキネティックタイポグラフィの使用である。動画化タイプは、感情を伝え、興味を添え、読者の注意を視覚的に引きつけるために使用される。動画化タイプの重要性は、テレビおよびインターネット広告におけるその広範な使用によって実証されている。
第3の傾向は、ピクセルコンポーネントの多様なレイアウトを組み込んだディスプレイデバイスの急増である。Hill他の米国特許第6,188,385号「Method and apparatus for displaying images such as text」に記載されるように、垂直および水平にストライピングされたRGBコンポーネントが従来のディスプレイの標準的な機構であった。しかし、Elliott他の米国特許出願公開第20030085906号「Methods and systems for sub-pixel rendering using adaptive filtering」に記載されるように、コンポーネントを異なる方法で配置することには多数の利点がある。
残念ながら、従来のアウトラインベースのフォントは、これらのいずれの領域でも制限を有する。低解像度ディスプレイにタイプをレンダリングすることは、可読性のための良好なコントラストの必要性と、読みやすさのための空間的および/または時間的エイリアシングを減らすこととの間のバランスをとるために、慎重な扱いを必要とする。
上記のように、アウトラインベースのフォントは通常、最適な外観のための命令をレンダリングエンジンに提供するためにヒンティングされる。フォントヒンティングは、多大の労力がかかり、高価である。例えば、1万個を超えるグリフを有し得る日本語や中国語のフォントのための適切にヒンティングされたタイプフェイスを開発するには、数年を要することがある。ヒンティングの重点は、ボディタイプのレンダリング品質を向上させることにあるので、ヒントは、任意のパスに沿って配置されるタイプや動画化タイプの場合には効果的でない傾向がある。
限定された数のフォントサイズおよびタイプフェイスを有する静的文書においてグレイスケールタイプをアンチエイリアシングするためには、高品質フィルタリングを使用することが可能であるが、動画化タイプにおけるフィルタリングの使用は通常、リアルタイムレンダリングに要求される条件によって制限される。
米国特許第6,188,385号に記載されるような、従来技術のサブピクセルレンダリング方法には、3つ全ての傾向に関する多数の欠点がある。
第1に、それらの方法は、適切な品質を得るために、ピクセルコンポーネントにつき多くのサンプルを必要とし、非効率的である。例えば米国特許出願公開第20030085906号に記載されるレイアウトのような、多くのコンポーネントを含む代替的なピクセルレイアウト上にレンダリングする場合、それらの方法は非現実的になる。第2に、それらの方法は、ディスプレイの垂直または水平のストライピングを活用して、近傍ピクセルコンポーネントのサンプルの再利用を可能にするが、これは多くの代替的なピクセルコンポーネントレイアウトでは機能しない。第3に、これらの方法は、各コンポーネントをサンプリングする際、高品質なフィルタを使用すると非効率的であるため、低品質なフィルタを使用する。
第4に、教示される方法は、代替的なピクセルコンポーネントレイアウト上の色ぶちを軽減するための方策を何ら提供しない。第5に、非整数のピクセル間隔でのグリフの平行移動は、グリフの再レンダリングを必要とする。再レンダリングは通常、ヒントの再解釈を必要とし、非効率的である。第6に、ヒントは、特定のピクセルコンポーネントレイアウトに特有であることが多いため、代替的なピクセルコンポーネントレイアウトの急増に対応して再実行されなければならない。ヒントの再実行には費用と時間がかかる。
重なり合うオブジェクトのレンダリング
2つまたはそれ以上のオブジェクトをレンダリングする場合、それらのレンダリングされたイメージは重なり合う場合がある。例えば、1行の文章中の2つのグリフ同士を近くに配置した場合、それらのグリフのアンチエイリアシングされたエッジが重なり合う場合がある。別の例として、単一の漢字グリフが、ストローク、部首、またはストロークベースの部首等のいくつかの要素の合成によって表現される場合があり、これらの要素は、その単一の漢字グリフをレンダリングするために結合されると重なり合う場合がある。
そのような場合、レンダリング方法は、オブジェクトが重なり合う領域に対処しなければならない。従来技術には、このような重なり領域に対処する方法がいくつかある。「画家のアルゴリズム」は、コンピュータグラフィックスにおいて2次元および3次元レンダリングに使用される一般的な手法である。画家のアルゴリズムでは、オブジェクトが、後方のものから前方のものへ順に並べられ、その順序でレンダリングされる。各レンダリングによって特定されるピクセルは単純に、前回のレンダリングにおける対応するピクセルを上書きする。
他の従来技術における方法は重なり合うピクセルの色または強度値をブレンディングする。すなわち、これらの方法は、最大値または最小値を選択する、または重なり合うピクセルの算術平均を行うといった規則に従って色または強度値を結合する。これらの方法のいくつかは、各ピクセルに関連するアルファ値を用い、アルファブレンディングと呼ばれる技法を用いて重なり合うピクセルの値をブレンディングする。
これらの従来技術の方法は、いくつかの理由から問題となる可能性がある。
例えば、画家のアルゴリズムは、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)、または別個にアドレス可能なピクセルコンポーネントを有する同様のディスプレイ技術の上にレンダリングするとき、近い間隔で置かれたグリフ間にカラーアーティファクトを生じる。
ピクセルの色および強度をブレンディングする従来技術の方法は、アルファ値のために付加的な計算および記憶容量を必要とし、使用されるブレンディング方法に応じてエッジぼけまたはエッジの脱落等の様々なアーティファクトを呈する。
また、従来技術のカバレジベースのアンチエイリアシングを用いて、重なり合うオブジェクトの集合について求められるカバレジ値は一般に、結合オブジェクトの実際のカバレジを表現するように一緒にブレンディングすることができない。
重なり合うオブジェクトに対処する別の従来技術の手法は、レンダリングの前にオブジェクトを結合して合成オブジェクトを生成する。例えば、複数の要素から成るアウトラインベースのグリフの場合、レンダリングの前に、それらの要素のアウトラインを結合して単一のアウトライン記述を形成する。同様に、複数のストロークから成るストロークベースのグリフをレンダリングするには、レンダリングの前にストロークを単一のストローク集合に結合する。
距離フィールドとして表現されるオブジェクト要素の場合、レンダリングの前に、Perry他著「Kizamu: A System for Sculpting Digital Characters」(Proceedings ACM SIGGRAPH 2001, pp. 47-56, 2001)に記載されるようなCSGオペレーションを用いて、それらの距離フィールドを単一の距離フィールドに結合することができる。合成オブジェクトが適応的にサンプリングされた距離フィールドとして表現される場合、結合により、どの要素にも存在しない非常に細いセクションまたはコーナー等の細部が合成オブジェクトに導入される場合があるため、合成オブジェクトは、要素に必要とされる総記憶容量よりも遥かに多い記憶容量を必要とし得る。
レンダリングの前に結合を行うこれらの従来技術の方法は全て、合成オブジェクトを生成するために付加的な記憶空間および複雑なオペレーションを必要とする。さらに、これらの方法は、2回のパス(合成オブジェクトの構築に1回、合成オブジェクトのレンダリングに1回)を必要とする。
コンポーネントベースのグリフの生成およびレンダリング
中国語、日本語、または韓国語のフォントといったアジア圏のフォントは、10,000個以上のグリフを含み得る。メモリ要件を低減するために、このようなフォントのグリフは、本明細書において要素と呼ぶ、ストロークまたは部首等の共通のコンポーネント集合の合成体として表現することができる。その場合、これらの共通要素は、フォントライブラリとしてメモリに格納され、レンダリングの前に、またはレンダリング中に結合されて、合成グリフを生成する。
従来技術の方法は、アウトラインデスクリプタ、通常はベジエ曲線またはストローキングされた骨格を用いて要素を定義する。要素はレンダリングの前に、結合されたアウトラインまたは結合されたストローク集合等の単一の形状デスクリプタに結合されることができる。別法として、各要素を独立にレンダリングし、ピクセルごとに、結合される要素からアンチエイリアス強度またはカバレジ値を生成して、そのピクセルの最終的なアンチエイリアス強度またはカバレジ値を生成することができる。いずれの手法も上述のような問題を有する。
本発明は、合成グリフの領域をレンダリングする方法を提供する。合成グリフは要素の集合によって定義される。要素の集合を用いて2次元距離フィールドの集合が生成され、2次元距離フィールドの集合の合成体が合成グリフを表現する。合成グリフの領域は次に、2次元距離フィールドの集合を用いてレンダリングされる。
本発明は、文字グリフ、企業ロゴ、または任意の2次元オブジェクトを表現、レンダリング、編集、処理、および動画化する新規のフレームワークを提供する。
好ましい一実施の形態では、本発明は、距離フィールドを用いて2次元オブジェクトを表現する。本発明は、双二次ADFおよび特殊セルを用いるADFを含む距離フィールドの様々な具体例を生成する方法を含む。本発明の方法は従来技術に対して、メモリ要件を大幅に低減し、精度を大幅に向上させる。
本発明の距離ベースのアンチエイリアシングによるレンダリング方法は、従来技術において用いられる方法よりも良好かつ効率的にアンチエイリアシングを行う。
本発明の方法はまた、距離ベースの自動ヒンティング、距離ベースのグリッドフィッティング、ストロークベースおよび部首ベースの合成グリフの生成およびレンダリング、グリフの植字、3つの共通のデジタルフォントデザインパラダイムの統合、ならびにキネティックタイポグラフィの様々な特殊効果の生成のための計算基盤を提供する。
本発明のフレームワークは、多数の利点、すなわち、労働集約的な手作業によるヒンティングを使用せずに非常に小さなフォントサイズでも可読性の高いタイプ、ピクセルのコンポーネントの多数のときに複雑な配置を用いた、OLED等のフラットパネルディスプレイ技術に対する類のない適応性、見やすさを高め個人の好みに合った対話形式のユーザによるタイプ調整、直接シリコンにおいて実施するか、または固定関数グラフィックスハードウェアおよびプログラマブルグラフィックスハードウェアにおいて実施するための計算上クリーンなレンダリングパイプラインを可能にするレンダリングパラメータの独特な制御、ならびにペンベースの入力等の高度な応用のサポートを提供する。
グリフの距離フィールド表現
本発明は、グリフ、企業ロゴ、またはオブジェクトの任意のデジタル化表現のような閉じた2次元形状Sを2次元の符号付き距離フィールドDとして表現する。説明の目的上、本明細書ではグリフを使用する。
非形式的には、グリフの距離フィールドは、フィールド内の任意の点からグリフのエッジまでの最小距離を測る。ここで、距離の符号は、点がグリフの外部にある場合には負であり、点がグリフの内部にある場合には正である。エッジ上の点は距離がゼロである。
形式的には、距離フィールドとは、すべてのp∈Rに対する写像D:R→Rであって、D(p)=sign(p)・min{‖p−q‖:Sのゼロ値等値面、すなわちエッジ上のすべての点qに対して}であり、sign(p)={pがSの外部にある場合は−1,pがSの内部にある場合は+1}であり、‖・‖はユークリッドノルムである、を満たすものである。
各ピクセルについて単一の離散的サンプルを使用する従来技術のカバレジベースのレンダリング方法は、サンプルがアウトラインに任意に近い場合であっても、グリフを完全に取り損なうことがある。レンダリングされたグリフはギザギザのエッジおよび脱落を有し、これらは両方とも空間的エイリアシングの一種である。グリフが動画化される場合、時間的エイリアシングにより、モーション中に「はう」ように見える、ちらつきのあるアウトラインおよびギザギザのエッジを引き起こす。アンチエイリアシングされたレンダリングを生成するためにピクセル当たりのサンプルを追加すれば、これらのエイリアシング効果を減らすことができるが、許容可能な結果のためには多数のサンプルが必要となることがある。
これに対して、本発明による連続的にサンプリングされる距離値は、サンプルが形状の外部にある場合であっても、グリフの近接性を示すことによって、従来技術の脱落アーティファクトを排除する。本発明によれば、サンプリングされる距離値の連続性を用いて、空間的エイリアシングのアーティファクトを軽減することができる。
さらに、距離フィールドは滑らかに変化する、すなわち、C連続であるので、サンプリングされた値はグリフが移動するとともにゆっくりと変化し、時間的エイリアシングのアーティファクトが減る。
距離フィールドは他の利点も有する。距離フィールドは、インプリシット(implicit)な表現であるので、陰関数の利益を共有する。特に、距離フィールドは、フォントをデザインするための直観的インタフェースを可能にする。例えば、ステム、バー、ラウンド、およびセリフ等のグリフの個々のコンポーネントを独立にデザインすることができる。デザイン後、インプリシットなブレンディング方法を用いてコンポーネントを一緒にブレンディングすることにより、同一タイプフェイスの異なるグリフを構成することができる。
また、距離フィールドは、キネティックタイポグラフィや動画化タイプの分野にも大いに寄与する。というのは、距離フィールドは、オブジェクト間の相互作用をシミュレートするための重要な情報を提供するからである。
好ましい一実施の形態では、適応的にサンプリングされた距離フィールド(adaptively sample distance field)、すなわちADFを使用する。米国特許第6,396,492号「Detail-directed hierarchical distance fields」(Frisken、Perry、およびJones)を参照されたい。この米国特許は参照により本明細書に援用される。
ADFは、距離フィールドの効率的なデジタル表現である。ADFは、ディテール指向サンプリングを使用することにより、フィールドを表現するために必要なサンプル数を減らす。サンプルは、効率的処理のために、セルの空間階層、例えばquadtreeに格納される。また、ADFは、サンプリングされた値から距離フィールドを再構成する方法を提供する。
ディテール指向また適応サンプリングは、フィールドにおける局所変動に従って距離フィールドをサンプリングする。すなわち、局所変動が高い場合には使用するサンプルを多くし、局所変動が低い場合には使用するサンプルを少なくする。適応サンプリングは、規則的にサンプリングされた距離フィールド(これはフィールド全体を通じて一様なレートでサンプリングを行う)および3色quadtree(これは常にエッジ付近では最大レートでサンプリングする)のいずれに比べても、必要な記憶容量を大幅に低減する。
図1Aおよび図1Bは、Times Romanの「a」および「D」に対する3色quadtreeに必要なセル数を、同じ精度の図2A〜図2Bにおける双二次ADFに必要なセル数と比較している。セル数は、必要な記憶領域に直接関係する。両方のquadtreeとも、距離値の512×512イメージに等価な解像度を有する。「a」および「D」に対する3色quadtreeはそれぞれ17,393セルおよび20,813セルを有する一方、それらに対応する双二次ADFは457セルおよび399セルを有する。双二次ADFは通常、Frisken等の従来技術の双一次表現(「Adaptively Sampled Distance Fields: a General Representation of Shape for Computer Graphics」(Proceedings ACM SIGGRAPH 2000, pp.249-254, 2000))よりも5〜20分の1の個数のセルしか必要としない。
双二次再構成法
Frisken等は、ADF空間階層にquadtreeを使用し、双一次補間によって、各セルの四隅でサンプリングされた距離から各セルの内部の距離および勾配を再構成している。Frisken等は、「高次の再構成法...を用いればさらに圧縮が高まるかもしれないが、数値は既に、これ以上の努力に対する収穫逓減点を示唆している」と示唆している。
しかし、双一次ADFは、本発明による文字グリフを表現し、レンダリングし、編集し、動画化するには不適切である。特に、双一次ADFは、あまりに多くの記憶容量を必要とし、処理するにはあまりに非効率的であり、非エッジセル内の再構成フィールドの品質は、動的シミュレーションのようなオペレーションには不十分である。
「有界サーフェイス(bounded-surface)」法は、サーフェイス(すなわちエッジ)から有界距離内の非エッジセルが、ある誤差判定テストに合格することを要請することによって、非エッジセルのさらなる細分割を強制することができる。Perry等「Kizamu: A System for Sculpting Digital Characters」(Proceedings ACM SIGGRAPH 2001, pp.47-56, 2001)を参照されたい。これは、この有界領域内の距離フィールドにおける誤差を縮小するが、本発明者等は、双一次ADFの場合、この方法の結果として、セル数が許容できないほど増大することを見出した。
上記の制限に対処するため、双一次再構成法を双二次再構成法で置き換える。典型的なグリフの双二次ADFは、双一次ADFよりも5〜20分の1の個数のセルしか必要としない傾向がある。動的シミュレーションや動画化タイプのようなオペレーションのために非エッジセル内の正確な距離フィールドが必要な場合には、必要なセル数が大幅に低減される。
このような記憶容量の大幅な低減により、典型的な動画に必要なグリフは、最新のCPUのオンチップキャッシュに収まる。これは、処理時間に対する劇的な効果を有する。その理由は、システムメモリアクセスが実質的になくなるため、高次の再構成法に必要な追加的計算が容易に相殺されるからである。
図3は、本発明の好ましい実施の形態による双二次ADFセル300を示している。双二次ADFにおける各セルは、9個の距離値301を含む。点(x,y)302における距離および勾配が、下記の式1〜式3に従って、これらの9個の距離値から再構成される。
さまざまな双二次再構成法が利用可能である。本発明者等は、同一サイズの隣接セルの共有エッジに沿ってC連続性を保証する2変数補間多項式を使用する。双一次法の場合と同様、異なるサイズの隣接セル間の距離フィールドの連続性は、誤差判定を用いて、指定された許容差に維持される。誤差判定は、ADF生成中のセル細分割を制御する。前掲のPerry他の文献を参照されたい。
点(x,y)302における距離および勾配(ここでxおよびyはセル座標で表される、すなわち(x,y)∈[0,1]×[0,1])は以下のように求められる。
Figure 0004762901
浮動小数点演算を用いて距離を再構成するには約35浮動小数点演算(flops)を必要とする可能性があり、浮動小数点演算を用いて勾配を再構成するには約70flopsを必要とする可能性がある。本発明者等の再構成法は分岐を含まず、グリフは完全にオンチップキャッシュに存在することができるので、最新のCPUの特殊なCPU命令および深い命令パイプラインを利用することにより、これらの再構成法をさらに最適化することができる。また、固定小数点演算を用いて距離および勾配を再構成することもできる。
伝送および格納のための圧縮
線形Quadtrees
ADFquadtreeの空間階層は、ある処理(例えば衝突検出)には必要であるが、他の処理(例えば後述のようなセルベースのレンダリング)には不要である。
ADFグリフの伝送および格納のための圧縮を行うため、線形quadtree構造を使用する。この木構造は、本発明者等の双二次ADFをリーフセルのリストとして格納する。木構造は、必要に応じてリーフセルから再生成することができる。
線形ADFquadtreeの各リーフセルは、セルのxおよびy位置としてそれぞれ2バイト、セルレベルとして1バイト、セル中心における距離値として2バイト、および中心距離値からの8個の距離オフセットとしてそれぞれ1バイトを含み、合計でセル当たり15バイトである。
各距離オフセットは、それに対応するサンプル距離を中心距離値から減算し、量子化誤差を低減するためにセルサイズ倍にスケーリングし、切り捨てて8ビットにすることにより求められる。セル位置ごとに2バイト、およびセルレベルに対して1バイトで、216×216までの解像度のADFを表現することができる。これは、ディスプレイ画面解像度でレンダリングされるグリフを表現するには十分以上である。
グリフは、16ビットの距離値で正確に表現することができる。8個の距離値を8ビットの距離オフセットとして符号化することで、これらの値をそれぞれ2バイトで格納するよりも大幅な節約となる。これは理論的には、大きいセルの距離フィールドにおいて多少の誤差につながるかもしれないが、本発明者等にはいかなる視覚的劣化も認められなかった。
高解像度グリフは通常、500〜1000個のリーフセルを必要とする。無損失エントロピー符号化により、さらに35〜50%の圧縮を達成することができる。したがって、高解像度ADFのタイプフェイス全体を300〜500Kバイトで表現することができる。携帯電話の場合のように、ボディタイプのみが要求され、目標解像度が非常に粗い場合には、1/4〜1/2の個数のセルしか必要としない低解像度ADFが使用可能である。
これらのサイズは、グレイスケールビットマップフォント(これは各ポイントサイズごとにタイプフェイス当たり約0.5Mバイトを要する)よりも大幅に小さく、適切にヒンティングされたアウトラインベースのフォントと同程度のサイズである。TrueTypeフォントのサイズは、グリフ数ならびにヒンティングの量および方法に応じて、数十Kバイト〜数十Mバイトの範囲にある。Monotype Corporationの2つの適切にヒンティングされたフォントであるArialおよびTimes New Romanは、それぞれ266Kバイトおよび316Kバイトを要する。
アウトラインからのランタイム生成
本発明によれば、以下で詳細に説明するように、ADFは、Perry等の文献に記載されているタイル型ジェネレータ(tiled generator)を用いて、既存のアウトラインまたは境界デスクリプタ(例えばベジエ曲線)から迅速に生成することができる。グリフのアウトラインまたは境界までの最小距離は、ベジエクリッピングを用いて効率的に計算される。Sederberg等「Geometric Hermite Approximation of Surface Patch Intersection Curves」(CAGD, 8(2), pp.97-114, 1991)を参照されたい。
生成は、2GHzのPentium IVプロセッサ上でグリフ当たり0.04〜0.08秒を要する。タイプフェイス全体は、約4秒で生成可能である。従来のヒントが必要でないため、ADFを生成するのに必要な境界デスクリプタは、それに対応するヒンティングされた対応物よりも大幅に小さい。
したがって、ADFを格納するのではなく、これらの最小限のアウトラインを格納し、オンデマンドでこれらのアウトラインから動的にADFグリフを生成することができる。これらの最小限アウトラインのサイズが小さいことは、記憶容量が限られたデバイスにとって、および帯域幅が制限されたネットワークを通じてグリフを伝送するアプリケーションにとって重要である。
図10は、グリフのような2次元オブジェクトを2次元距離フィールドに変換する方法1000を示している。オブジェクト1001は、境界デスクリプタ(例えばスプライン)の集合およびフィル規則(例えば、偶奇規則や非ゼロ巻数規則)として表現される。
まず、境界デスクリプタの集合を前処理する(1010)。前処理は、境界デスクリプタを細分割することにより、それらの空間的広がりを縮小する。境界デスクリプタの集合の濃度を小さくするために、境界デスクリプタを合体させてもよい。前処理により、以下で説明するように、符号なし距離を求める際に各位置について問い合わせる必要のある境界デスクリプタの数が減少する。
空間階層1021(例えばquadtree)を、前処理された境界デスクリプタの集合1011から構成する(1020)。交点のキャッシュ1031を初期化する(1030)。交点のキャッシュ1031は、境界デスクリプタが距離フィールドの線集合(例えば水平線、垂直線、斜め線等)と交差する位置およびその交差方向を格納する。これにより、符号なし距離の符号を決定する際の冗長な計算が除去される。交点は区間でソートすることができる。
次に、位置の集合において空間階層1021に問合せを行う(1040)ことにより、それらの位置における距離の集合を求める。その距離の集合を用いて、2次元距離フィールド1041を構成する。問合せは、各位置における距離関数(例えばベジエクリッピング)を呼び出して、符号なし距離を求める。交点のキャッシュ、位置、およびフィル規則を用いて、その距離に対する符号を決定する。
コンポーネントベースのフォントによる圧縮
中国語、日本語、および韓国語のフォント(これらは10,000以上のグリフからなることがある)に対して、Font Fusionの場合のようにコンポーネントベースの表現を用いることにより、大幅な圧縮を達成することができる。その表現は、グリフを共通のストロークおよび部首(すなわち、複数のグリフに共通の複雑な形状)に分解し、ストロークおよび部首をフォントライブラリに格納してから、それらをフォントレンダリングエンジンで再結合する。
距離フィールドはインプリシットな表現であるため、ADFは、ブレンディングまたはCSG演算を用いて容易に結合することができ、したがって、コンポーネントベースの手法による圧縮によく適している。
2次元距離フィールドにおける隅の表現
双一次または双二次再構成法によるディテール指向サンプリングにより、ADFは、少数の距離値で2次元オブジェクトの境界の比較的滑らかなセクションを表現することができる。しかし、隅(コーナー)付近では、距離フィールドはこれらの再構成法で十分に近似されない高い変動を有する。隅付近で正確に距離フィールドを表現するために、このようなADFでは、隅を含むセルを高度に細分割しなければならず、必要な記憶容量が大幅に増大する。また、Perry等の文献に記載されているようにADF生成中に課されるADFの最大細分割レベルは、双一次および双二次ADFセルを用いて隅を表現することができる精度を制限する。
この問題点に対処するため、本発明は、グリフのような2次元オブジェクトの隅を包囲するセル内に2次元距離フィールドを生成する方法1300を提供する。
方法1300は、2次元オブジェクトから境界デスクリプタの順序集合1311を求め(1310)、境界デスクリプタの順序集合1311から例えばセル近傍または内に関連した隅点1321を識別する(1320)。次に、セルを、隅のほうに最も近い第1領域およびオブジェクトの境界のほうに最も近い第2領域という2つの領域に分割する(1330)。また、方法1300は、セル内の距離を再構成するための再構成法およびサンプリングされた距離値の集合1371を指定し(1340)、隅点1321、領域を画定する線、再構成法、およびサンプリングされた距離値の集合1371をメモリに格納する(1380)。
再構成法は、セル内の点における距離を、その点が存在する領域に応じて求める。第1領域内の問合せ点に対する距離は、問合せ点から隅点までの距離として求められる。
第2領域における距離を求めるため、境界デスクリプタの順序集合1311を、隅点1321の前の境界デスクリプタを含む部分集合と、隅点1321の後の境界デスクリプタを含む部分集合という2つの部分集合に分割する(1350)。次に、セルを内部および外部セクションに分割する延長された曲線を形成するように、境界デスクリプタの各部分集合を拡張する(1360)。各セクションについて、セル内の距離フィールドは、対応する延長された曲線から求められる(1370)サンプル距離値の集合1371から再構成することができる。双二次再構成法の場合、2つのセクションのそれぞれについて、9個の距離値を格納する必要がある。
なお、2つの内部セクションの共通部分はオブジェクトの隅をなすことに留意されたい。したがって、第2領域内の距離は、第1内部セクションまでの距離および第2内部セクションまでの距離を再構成してから、2つの求められた距離の最小値を選択することにより求めることができる。
2つの領域は、隅点を通る2本の有向線から指定することができる。各線は、境界デスクリプタの2つの部分集合の一方に垂直である。各線は、隅点と、その隅点における境界デスクリプタの対応する部分集合の外向き法線で指定することができる。こうして線が画定されると、その線のどちらの側に問合せ点があるかを、問合せ点から隅点へのベクトルと外向き法線との交差積を求めることにより判定することができる。両方の線の外部の側にある点は第1領域にあり、いずれかの線の内部の側にある点は第2領域にある。
図21A〜図21Dはコーナセルの表現を示す。図21Aにおいて、セル2102はオブジェクト2104の一部を含み、オブジェクト2104の内部は網掛けされ、外部は白のままにされる。セル2102内のオブジェクト2104の境界は、第1の境界デスクリプタの集合2114、隅点2116、および第2の境界デスクリプタの集合2118を含む。
オブジェクト2104の部分のセル2102内の距離フィールドは、図21Bに示す延長曲線2115の距離フィールド、図21Cに示す延長曲線2119の距離フィールド、および図21Dに示す隅点2116の距離フィールドを結合することによって表現することができる。延長曲線2115は、第1の境界デスクリプタの集合2114を延長することによって定義される。同様に、延長曲線2119は、第2の境界デスクリプタの集合2118を延長することによって定義される。
好ましい一実施の形態において、延長曲線2115および2119の距離フィールドはそれぞれ、サンプリングされた距離の集合と、双一次再構成法または双二次再構成法等の再構成法とを用いて表現され、隅点2116の距離フィールドは、サンプル点から隅点2116までの符号付き距離を求める手続きによって表現される。
隅点2116の距離フィールドの符号は、隅点2116によって表現される隅の角度から決定することができる。オブジェクト2104の部分の外部で測定される隅の角度が鋭角である場合、隅点2116の距離フィールドの符号は正となる。オブジェクト2104の部分の外部で測定される隅の角度が鈍角である場合、隅点2116の距離フィールドの符号は負となる。例えば、隅点2116によって表現される隅は鈍角であり、隅の距離フィールドの符号は負である。
延長曲線2115および2119ならびに隅点2116の距離フィールドはそれぞれ有効なエリアと無効なエリアを有する。有効なエリアと無効なエリアは、延長曲線2115に対する法線ベクトル2120によって定義される第1の線と、延長曲線2119に対する法線ベクトル2122によって定義される第2の線とによって分離され、両線は隅点2116を通過する。
図21B、図21C、および図21Dは、延長曲線2115および2119ならびに隅点2116に対して、網掛けされた無効なエリア2124、2126、および2128ならびに網掛けしていない有効なエリア2130、2132、および2134をそれぞれ示す。方法1300について上で定義した第1領域および第2領域は、有効なエリアから求めることができる。第1領域、すなわち、隅点2116に最も近いセルの領域は、隅点2116の有効なエリア2134と同じである。第2領域、すなわち、オブジェクト2104の境界に最も近いセルの領域は、延長曲線2115の有効なエリア2130と延長曲線2119の有効なエリア2132の和集合である。
本発明の一実施の形態では、セル2102内のサンプル点における距離を求めるために、延長曲線2115の距離フィールドから第1の符号付き距離および第1の対応する有効性フラグを、延長曲線2119の距離フィールドから第2の符号付き距離および第2の対応する有効性フラグを、そして隅点2116の距離フィールドから第3の符号付き距離および第3の対応する有効性フラグを再構成する。第1の有効性フラグ、第2の有効性フラグ、および第3の有効性フラグはそれぞれ、サンプル点が延長曲線2115、延長曲線2119、および隅点2116の有効エリアの内部にあるか外部にあるかに応じて判定される。サンプル点からオブジェクト2104の部分までの距離は、サンプル点の有効な第1の符号付き距離、第2の符号付き距離、および第3の符号付き距離のうちの最小値である。
2次元距離フィールドにおけるステムおよび他の細い構造の表現
コーナセルを使用することにより、ADFは、セルを過度に細分割することなく隅を正確に表現することができる。しかし、隅に加えて、グリフ等の2次元オブジェクトは、垂直ステムまたは水平バー等の細い構造を有し得る。このような構造の付近では、距離フィールドはC不連続(C1 discontinuous)であり得る。距離フィールドは、ある点における勾配が特異である、すなわち連続でないとき、その点においてC不連続である。
例えば、距離フィールドは、細い構造の両側の境界デスクリプタの中間の曲線に沿ってC不連続である。この不連続性は、ADFのセルの過度な細分割を必要とし得るため、細い構造付近ではより良いセル表現および再構成法が必要とされる。
本発明は、細い構造付近のセルに対して「2セグメントセル」表現および2セグメントセルの再構成法を提供する。図22A、図22B、および図22Cは、本発明による2セグメントセルを示す。
図22Aにおいて、セル2202はオブジェクト2206の一部を含み、オブジェクト2206の内部は網掛けされ、外部は白のままにされる。セル2202内のオブジェクト2206の部分の境界は、第1のセグメント2214を含む第1の境界デスクリプタの集合と、第2のセグメント2216を含む第2の境界デスクリプタの集合とを含む。
セル2202内のオブジェクト2206の部分の距離フィールドは、図22Bに示す第1のセグメント2214の距離フィールド、および図22Cに示す第2のセグメント2216の距離フィールドを結合することによって表現することができる。好ましい一実施の形態において、第1のセグメント2214および第2のセグメント2216の距離フィールドはそれぞれ、サンプリングされた距離の集合および双一次再構成法または双二次再構成法等の再構成法を用いて表現される。
サンプル点からセル2202内のオブジェクト2206の部分までの距離を求めるために、サンプル点において、第1のセグメント2214の距離フィールドから第1の符号付き距離を、そして第2のセグメント2216の距離フィールドから第2の符号付き距離を再構成する。
図22Bにおいて、第1のセグメント2214の符号付き距離フィールドの正のエリア2220は網掛けされ、負のエリア2222は白のままにされる。図22Cにおいて、第2のセグメント2216の符号付き距離フィールドの正のエリア2230は網掛けされ、負のエリア2232は白のままにされる。セル2202内のオブジェクト2206の部分は、図22Bの網掛けされた正のエリア2220と、図22Cの網掛けされた正のエリア2230との共通集合である。好ましい実施の形態において、サンプル点からセル2202内のオブジェクト2206の部分までの距離は、第1の符号付き距離および第2の符号付き距離のうちの最小値である。
図23は、2次元オブジェクト2301に関連する2セグメントセル2302内の2次元距離フィールドを生成する方法2300を示す。オブジェクト2301について境界デスクリプタの集合2311を求める(2310)。境界デスクリプタ2311は、線分およびスプライン曲線、例えばベジエ曲線を含む様々な表現を有することができる。
境界デスクリプタ2311をセグメントの集合2321に分割し(2320)、セグメントの集合2321におけるセグメントを、前処理ステップにおいて、または分割2320中に求めることができる特徴の集合によって画定する。特徴の例としては、オブジェクト2301の隅、境界デスクリプタ2311の曲率が大きい点、特定の境界デスクリプタの端点、または特定のセグメントに沿って累積される曲率が所定の閾値を超える特定の境界デスクリプタ上の点が挙げられる。累積曲率が大きい点に特徴を配置することによって、例えば、セグメントが折り返し(curve back on itself)始める場合、例えばセグメントの累積曲率が90度を超える場合に、そのセグメントを画定することができる。
セル2302のセグメントの集合2321において第1のセグメント2331および第2のセグメント2332を識別する(2330)。好ましい一実施の形態において、識別2330は、各テスト点からセグメントの集合2321における各セグメントまでの距離を求めることによって、セグメントの集合2321から、セル2302内のテスト点の集合における各テスト点に最も近いセグメントを見つける。セル2302内の全てのテスト点が、セグメントの集合2321における2つの特定のセグメントの一方に最も近い場合、それら2つの特定のセグメントを2セグメントセルの第1のセグメント2331および第2のセグメント2332として識別する(2330)。
第1のセグメント2331の距離フィールドを表現する第1の距離値の集合2341、および第2のセグメント2332の距離フィールドを表現する第2の距離値の集合2342を指定する(2340)。例えば、9つの距離値の集合を双二次再構成法とともに指定して(2340)、セグメントの一方に対応する距離フィールドを表現することができる。
方法2300は、第1の距離値の集合2341および第2の距離値の集合2342を結合してセル2302内の距離フィールドを再構成する再構成法2351を定義する(2350)。好ましい一実施の形態において、再構成法2351はセル2302内のあるサンプル点における距離フィールドを、第1の距離値の集合2341を用いてそのサンプル点から第1のセグメント2331までの第1の距離を求め、第2の距離値の集合2342を用いてそのサンプル点から第2のセグメント2332までの第2の距離を求め、第1の距離と第2の距離の最小値をとることによって第1の距離と第2の距離を結合することによって再構成する。
距離値の集合2341、距離値の集合2342、および再構成法2351は、メモリ2370に格納されて(2360)、セル2302内の2次元オブジェクト2301の2次元距離フィールドの再構成を可能にする。
特殊なセルを用いた距離フィールドの最適なセル構成の決定
コーナセルおよび2セグメントセル等の特殊なセルを用いることにより、隅および細い構造を有するグリフ等のオブジェクトを表現するADFのセルの過度な細分割を軽減することができる。しかし、このような特殊なセルを用いる距離フィールドの最適なセル構成を求めることは、特殊なセルを用いずに最適なセル構成を求めるよりも遥かに複雑になり得る。距離フィールドのセル構成は、例えば、セルの位置、サイズ、方位、再構成法、タイプ、および幾何学的形状を含む。
オブジェクトを表現する距離フィールドを含む領域を分割する多くのセル構成が可能である。Frisken他の従来技術は、領域を矩形のセルに分割して四分木ベースまたは八分木ベースのADFを生成することにより、特殊なセルを用いずに非最適な構成を提供するトップダウン細分割法およびボトムアップ細分割法を教示している。従来技術とは異なり、本発明は、最適なセル構成を用いてセルベースの距離フィールド表現を生成する方法を提供する。好ましい実施の形態において、最適な構成は、コーナセルおよび2セグメントセル等の特殊なセルを含み得る。
図24Aは、2次元オブジェクト2401の一部を含む領域2460を示し、オブジェクトの内部は網掛けされ、外部は白のままにされる。領域2460内のオブジェクト2401の部分の境界は、第1の境界デスクリプタの集合に関連する第1のセグメント2406、第2の境界デスクリプタの集合に関連する第2のセグメント2408、および第3の境界デスクリプタの集合に関連する第3のセグメント2410を含む。第1のセグメント2406と第2のセグメント2408はオブジェクト2401の部分の隅2412で交わり、第2のセグメント2408と第3のセグメント2410はオブジェクト2401の部分の隅2414で交わる。
領域2460を分割してセルの構成を求める多くの方法がある。図24B〜図24Dは、領域2460を分割する、2セグメントセルおよびコーナセルを含み得る場合の様々なセル構成を示す。最適な構成の「最適」の具体的な定義は多くの要因に依存し、そのうちのいくつかを図24B〜図24Dに示し、その他のものを後述する。
図24Bは、領域2460内のオブジェクト2401の境界のボロノイ図を示す。異なる網掛けを施した各セルは、特定のセグメントまたは隅に最も近い領域2460の一部を示す。セル2420内の点はセグメント2406に最も近い。セル2422内の点はセグメント2408に最も近い。セル2424内の点はセグメント2410に最も近い。セル2426内の点は隅2412に最も近い。最後に、セル2428内の点は隅2414に最も近い。
図24Bのボロノイ図は、「1セグメントセル」のみを用いる場合の、領域2460の最適なセル構成の一例であり、1セグメントセルは、セル内の距離フィールドを単一のセグメントから求めることができるセルとして定義される。1セグメントセル内の距離は、セルに最も近いセグメントの曲率が実質的に小さいとき、例えば双二次再構成法を用いて、サンプリングされた距離値の集合から再構成することができる。セル内の点からそのセルに最も近いセグメントまでの距離を解析的に求めることを含む様々な代替的な再構成法も可能である。
図24Bのボロノイ図は、1セグメントセルを用いてオブジェクト2401の部分の距離フィールドを領域2460内のどこでも正確に再構成することのできる最小数のセルを提供するという点で最適なセル構成である。ボロノイ図を用いて領域2460を分割する欠点は、ボロノイ図の正確な構成を求めることが難しいことである。ボロノイ図を用いる第2の欠点は、セルの境界が非常に複雑になる可能性があり、それによってレンダリング中にセルをラスタライズして見つけるための計算時間が実質的に長くなることである。
図24Cは、上で定義したコーナセルを用いて領域2460を分割する代替的な最適なセル構成を提示する。領域2460は、第1のコーナセル2430と、第2のコーナセル2432とに分割される。コーナセル2430内の距離は、第1のセグメント2406、隅2412、および第2のセグメント2408を用いて再構成することができる。コーナセル2432内の距離は、第2のセグメント2408、隅2414、および第3のセグメント2410を用いて再構成することができる。コーナセル2430またはコーナセル2432内の距離は、サンプリングされた距離値から、上述のようなコーナセル再構成法を用いてかなり高い精度まで再構成することができる。
図24Cに示すセル構成の、図24Bおよび図24Dの構成に対する利点は、図24Cの構成が必要とするセル数が少ないことである。欠点は、コーナセル再構成法は通常、1セグメント再構成法または2セグメント再構成法よりも複雑で非効率であり、図24Cのセル構成は、領域2460内の全ての点に対してコーナセル再構成法を用いる必要があることである。図24Cの構成に伴う第2の欠点は、図24Bのボロノイ図と同様に、セル境界を判定することが難しい場合があることである。第3の欠点は、セル境界が非常に複雑になる場合があり、それによってレンダリング中にセルをラスタライズして見つけるための計算時間が実質的に長くなることである。
図24Dは、領域2460の第3の代替的な最適な分割を示す。領域2460は四分木に分割され、四分木の各リーフセルは、セルのタイプに応じて網掛けされる。セル2440は1セグメントセルであり、セル内の点はセグメント2410に最も近い。セル2442は2セグメントセルであり、セル内の点はセグメント2406またはセグメント2410のいずれかに最も近い。セル内の距離は、2セグメント再構成法を用いて再構成することができる。セル2444はコーナセルであり、セル内の点は、隅2412、セグメント2406、またはセグメント2408のいずれかに最も近い。セル2446もまたコーナセルであり、セル内の点は、隅2414、セグメント2408、またはセグメント2410のいずれかに最も近い。セル2444およびセル2446内の距離は、コーナセル再構成法を用いて再構成することができる。
セル2448、2450、および2452は外部セル、すなわち、オブジェクト2401の部分の外部の、オブジェクト2401の境界から最小距離を越えたところにあるセルである。最小距離を越えて距離フィールドの正確な表現が必要とされない場合、セル2448、2450、および2452内の点における距離は、より単純な再構成法により近似することができる。例えば、それらの点における距離は、双二次再構成法を用いて9つのサンプリングされた距離値から再構成することができ、それによってメモリおよび計算時間が少なくなる。
図24Dに示す分割の利点は、セルが単純な境界を有し、よってレンダリング中に迅速かつ容易にラスタライズされ見つけられることである。第2の利点は、四分木が、距離フィールドの高速問い合わせを可能にする空間データ構造を提供することである。図24Cの構成に対する利点は、領域内の一部の点には単純な再構成法、例えば1セグメント再構成法または双二次再構成法を用い、必要な場合にのみ、より複雑な方法、例えば2セグメント再構成法および隅再構成法を用いることによって、計算時間を少なくすることである。欠点は、図24Dの構成では図24Bおよび図24Cの構成よりもセルが多くなることである。
図24B、図24C、および図24Dに示す例により説明されるように、特殊なセルタイプを用いるとき、オブジェクトを表現する距離フィールドを分割する最適なセル構成は多くある。構成を生成する際、「最適」の定義は、構成をレンダリング、編集、および処理する方法を含む多くの要因に依存する。
最適な構成とは、セルベースの距離フィールド表現の所望の特性の集合のバランスをとる構成を意味する。構成の最適化は、数例を挙げると、距離フィールドのサイズを最小にすること、距離フィールドをレンダリングするために必要な時間を最短にすること、距離フィールドを生成するための時間を最短にすること、距離フィールドのレンダリングの品質メトリックを最大にすること、セル数を最小にすること、および、距離フィールドの精度を最高にすることによって誘導することができる。
図25は、オブジェクトを表現する形状デスクリプタ2502の領域2501についてセルベースの距離フィールドを生成する方法2500を示す。セルタイプの集合2511を定義し(2510)、ここでセルタイプは、双一次セルタイプおよび双二次セルタイプ、ならびに数例を挙げるとコーナセルタイプおよび2セグメントセルタイプを含む様々な特殊なセルタイプを含むことができる。
方法2500は、領域2501のセル集合の構成2521を生成し(2520)、ここでセル集合の各セルは、セルタイプの集合2511によって定義される特定のセルタイプ、およびセル内の距離フィールドを再構成する再構成法2512を有する。セル集合の構成2521は、領域2501のセル集合の最適な構成2531に達するまで、形状デスクリプタ2502、領域2501、およびセルタイプの集合2511を用いて修正される(2530)。セル集合の最適な構成2531は、メモリ2541に格納されて(2540)、セルベースの距離フィールドが生成される。
Frisken他に記載される従来技術のトップダウン生成法およびボトムアップ生成法とは異なり、本発明による構成は、領域2501の完全なモザイクまたは不完全なモザイクを提供することができる。例えば、本発明によれば、構成2521と最適な構成2531の両方により領域の部分集合をカバーし、距離フィールドが表現されない領域のエリア、または領域の上位集合を残しておき、領域の外部にある距離フィールドの表現を提供することができる。従来技術の方法とは異なり、本発明におけるセルは、重なり合う可能性があり、最適な構成を生成するさらなる機会を与える。
従来技術の方法は、最適化基準によって誘導されないため、いかなる意味においても最適な構成を生成しない。従来技術は、厳格に決定論的な方法を適用し、結果として、しばしば制限された準最適な構成を生じる。従来技術はまた、生成中に特殊なセルを考慮しない。
本発明による最適な構成を達成するために、セル集合の構成2521の生成2520および修正2530は、ユーザにより手動で、コンピュータにより自動で、または半自動で、すなわちユーザから入力を受けるコンピュータによって行うことができる。修正2530は、セル集合の構成2521に対してセルを追加または削除することによって、または特定のセルの属性、例えば特定のセルの幾何学的形状、位置、方位、およびタイプを変化させることによって、セル集合の構成2521を変化させることができる。生成2520および修正2530はともに、決定論的な方法、または確率的方法およびランダム化方法を含む非決定論的な方法を用いて行うことができる。
一実施の形態において、生成2520は、領域2501内の任意または所定の位置に単一のセルを配置し、修正2530は、セルを最適な形状およびサイズに調整する。修正2530は次に、新たなセルを領域2501のカバーされていないエリアに追加し、そのそれぞれを最適な形状およびサイズに調整し、このプロセスを、最適な構成2531に達するまで繰り返す。別の実施の形態において、生成2520は、コーナセルの最初の集合を形状デスクリプタ2502の隅点近くに配置し、修正2530は、領域2501の残りのカバーされていないエリアをモザイク化して、別の最適な構成2531を判定する。これらの実施の形態はともに、Frisken他の従来技術の方法では不可能な最適な構成2531を提供する。
別の実施の形態において、生成2520は、形状デスクリプタ2502を前処理することであって、それによって、生成2520および修正2530の両方を加速するために使用することができる前処理された形状デスクリプタの集合および対応する前処理された距離手続きの集合を生成する、前処理することを含むことができる。
例えば、前処理は、形状デスクリプタから境界デスクリプタを求め、境界デスクリプタを、境界デスクリプタの特徴によって画定されるセグメントの集合に分割することができる。特徴は、隅点、曲率の大きな境界デスクリプタに沿った点、境界デスクリプタの端点、および上述したような累積曲率の大きな点を含むことができる。これらの特徴は修正2530中に、特定の特徴を追加、削除、および変更することによって変化し得る。修正2530中に特徴が変化するとき、それに従って前処理された形状デスクリプタの集合および前処理された距離手続きの集合を適応させることができる。
フォントレンダリング
現在のフォントレンダリングエンジンでは、ほとんどの場合、フォントはアウトラインとして表現され、必要に応じて所望の出力サイズに適合するようにスケーリングされる。ほとんどの高解像度プリンタは2値レンダリングを使用しているが、最新のディスプレイデバイスは、小さいポイントサイズにおいて、グレイスケールレンダリング、またはグレイスケールレンダリングと2値比レンダリングの組合せを使用するほうが普通である。
グレイスケールグリフをラスタライズするための一般的手法では、それらのアウトラインに対するスケーリングおよびヒンティングを行う。スケーリングされヒンティングされたアウトラインを、通常は所望の解像度の4〜16倍の大きさの高解像度イメージに走査変換する。次に、フィルタリング方法(例えばボックスフィルタ)を適用することによって、高解像度イメージをダウンサンプリングして、最終的なグレイスケールイメージを生成する。
ボディタイプの場合、個々のグリフを一度ラスタライズし、前処理ステップで再使用するためにグレイスケールビットマップとしてキャッシュに格納することができる。グリフのサブピクセル配置の必要性から、各グリフのいくつかのバージョンをラスタライズしなければならないことがある。ボディタイプに対してキャッシュを使用することにより、例えばAdobe Acrobat PDF文書でページ移動するようなタスク中に、短い遅延(例えば1/2秒)での高品質のレンダリングが可能となる。
しかし、任意のパスに対してレンダリングされたタイプおよび動画化タイプではキャッシュを使用することができないため、それらのタイプはオンデマンドで生成しなければならない。リアルタイムレンダリングの要求は、低品質フィルタ、例えばピクセル当たり4サンプルでのボックスフィルタリングの使用を余儀なくさせる可能性があるとともに、ヒンティングを使用できない可能性がある。これは、空間的および時間的エイリアシングならびにベースラインジッタおよび一貫性のないストロークウェイトを引き起こすことがある。エイリアシングは、システムメモリに存在するヒンティングされたデバイスフォントを用いて低減することができる。しかし、リアルタイムフレームレートを維持することは、ヒンティングされたデバイスフォントをどのようにして使用することができるかに対する重大な制約となる。例えば、ヒンティングされたデバイスフォントを動的にスケーリングまたは回転することができない。
ClearTypeに関するMicrosoftの最近の仕事は、アドレス可能なカラーサブピクセル(すなわちコンポーネント)の繰り返しパターンを含むLCDカラーディスプレイに対する特別な扱いにつながっている。Plattは、「Optimal Filtering for Patterned Displays」(IEEE Signal Processing Letters, 7(7), pp.179-180, 2000)において、各色コンポーネントに対する知覚的に最適なフィルタの集合を記述している。実際には、最適なフィルタは、各色ごとに1つずつの、3個の変位したボックスフィルタの集合として実現される。
ClearTypeは、従来技術のカバレジベースのアンチエイリアシング方法を用いて各ピクセルの各コンポーネントの強度を決定する。これに対して、本発明者等の距離フィールドベースの方法は、距離フィールドを用いて各ピクセルの各コンポーネントの強度を決定し、より少数のサンプルを用いてこれを行う。以下で説明する本発明者等のADFアンチエイリアシング方法は、ピクセル当たりのサンプル数を少なくした最適フィルタのエミュレーションを改善するために、ボックスフィルタに取って代わることができる。
アンチエイリアシング
レンダリングされたフォントにおける外観アーティファクトを理解するには、エイリアシングの理解が必要である。通常、1つのピクセルは離散的なコンポーネント(例えば、カラープリンタやディスプレイでは赤、緑、および青コンポーネント)から構成される。グレイスケールデバイスでは、ピクセルは単一の離散的コンポーネントである。ピクセルは離散的であるので、出力デバイスへのレンダリングは本質的にサンプリングプロセスである。サンプリングレートは、デバイスの解像度に依存する。サンプリングレートがソース信号中の最高周波数の少なくとも2倍(ナイキスト周波数)でなければ、サンプリングされた信号はエイリアシングを呈する。
エッジ(例えばグリフアウトライン)は、無限個の周波数成分を有する。したがって、サンプリングされたデータでエッジを厳密に表現することはできない。エッジの不十分なサンプリングは、ギザギザを生じ、これは動画像において、サンプリングされたエッジに沿ってはう傾向がある。ソース信号が空間的パターン(例えば、「m」の垂直ステムの繰り返しや、「i」の単一の垂直ステム)も含み、その周波数成分がサンプリングレートに比べて高すぎる場合、サンプリングされたデータは脱落、モアレパターン、および時間的ちらつきを呈することがある。
エイリアシングを避けるには、入力信号をプレフィルタリングすることによって、サンプリングレートで許容される周波数成分よりも高い周波数成分を除去しなければならない。一般的に、プレフィルタリングには2つの手法がある。
第1の手法は解析的フィルタリングと知られている。これは、サンプリングの前に、ソース信号の連続表現に対して、ある種の空間的平均化を適用する。残念ながら、解析的フィルタリングは不可能なことが多く、その理由は、ソースデータが連続信号として提供されない(これは画像処理では通例である)か、または、フィルタフットプリント内の信号の解析的記述を求めるのは複雑すぎるためである。これは、コンピュータグラフィックスにおける単純な幾何形状以外のすべての場合に当てはまり、スプラインベースのアウトラインについては確かに成り立つ。
第2の手法は離散的フィルタリングとして知られている。この手法では通常、ソース信号を目標レートよりも高いレートでサンプリングすることにより、スーパーサンプリングされたイメージを得る。次に、離散的フィルタを適用して、スーパーサンプリングされたイメージ中の高い周波数を低減した後で、イメージを目標レートまでダウンサンプリングする。この離散的手法は、コンピュータグラフィックスにおいては規則的スーパーサンプリング(regular supersampling)と呼ばれる。
処理バジェット、ハードウェアの考慮点、および出力イメージにおけるコントラスト対滑らかさに対する個人的選好に応じて、種々の離散的フィルタを適用することができる。タイプをレンダリングするために通常使用されるボックスフィルタは、スーパーサンプリング値の矩形配列をそれらの算術平均で単に置き換えるものであり、一般的に信号処理分野では劣るものとみなされている。
もう1つの手法として、適応スーパーサンプリングは、より高い局所周波数成分を有するイメージの領域に対するサンプリングおよびフィルタリングのために、利用可能なリソースを集中させる。最適な適応サンプリングは、イメージ内の局所変動性から決定することができる。しかし、この技法の有用性は、イメージの局所変動を推定する必要性によって制限される。この推定のプロセスは、計算量的に高価になることがある。
高周波パターンの不十分な規則的サンプリングに起因するモアレパターンは、人間の視覚系には特に好ましくない。一般的な画像処理では、確率的サンプリングすなわちジッタ付きサンプリング(jittered sampling)を用いてこの問題点を解決している。確率的サンプリングでは、サンプルをその公称位置からわずかにランダムに変位させる。確率的サンプリングは、モアレパターンエイリアシングを高周波ノイズで置き換える傾向があり、時間的エイリアシングを低減する場合に特に有効であることが示されている。
距離ベースのアンチエイリアシングを伴うレンダリング
グリフのエッジにより導入される無限個の周波数成分は、従来技術のフォントレンダリングにおけるエイリアシングへの主要な寄与である。これに対して、本発明によって、2D距離フィールドを用いて2Dオブジェクトを表現してから2D距離フィールドをサンプリングすれば、表現がC連続であるので、そのようなエッジが回避される。代わりに、最大周波数が、グリフ自体の空間的パターン(例えば、「m」の垂直ステムの繰り返しや、「i」の単一の垂直ステム)に依存する。
本発明者等は、グリフをその2D距離フィールドで表現することによって、解析的プレフィルタを効果的にグリフに適用している。以下で説明するような、距離フィールドをレンダリングするための本発明者等のアンチエイリアシング方法によれば、従来の解析的プレフィルタの出力とは異なる出力が得られる。
距離フィールドによるアンチエイリアシング
図4は、2次元距離フィールド411として表現(410)されたオブジェクト401(例えばグリフ)をイメージ順にアンチエイリアシングする方法400を示している。各ピクセル402は、1つまたは複数のコンポーネント404(「RGB」型の出力デバイスの場合は通常、赤、青、および緑コンポーネント)を含むことができる。この方法は、各ピクセル402の各コンポーネント404に対して1つまたは複数のサンプルを使用することができる。方法400は、適応的な距離ベースのスーパーサンプリング、距離ベースの自動ヒンティング、および距離ベースのグリッドフィッティングを提供する。結果として得られるアンチエイリアシングされたピクセル強度は、イメージの一部としてCRTおよびLCDのようなディスプレイ上にレンダリングされることが可能である。本方法は、モーションブラーをレンダリングするのに特に有用である。
オブジェクト401を表現する2次元距離フィールド411内のサンプル点407の集合403を、各ピクセル402の各コンポーネント404に関連づける(420)。距離(D)405を、2次元距離フィールド411およびサンプル点集合403から求める(430)。次に、距離405を、ピクセル402のコンポーネント404のアンチエイリアス強度(I)406にマッピングする(440)。
好ましい実施の形態では、グリフ401を、上記のように双二次ADF411で表現する(410)。これにより、フォントレンダリング中に距離ベースのアンチエイリアシングを適用することが効率的になる。2次元距離マップ、2次元距離シェル、特殊なセルを含む最適なADF、および手続き型距離フィールドのような他の表現も使用可能である。
2002年7月31日出願の「Method for Traversing Quadtrees, Octrees, and N-Dimensional Bitrees」と題する米国特許出願第10/209,302号(これは参照により全体として本明細書に援用される)に記載されているquadtreeトラバース法を用いて、イメージ内の各ピクセル402の各コンポーネント404について、コンポーネント404を含むセル(例えばリーフセル)を見つける。当技術分野で既知の他のトラバース法も本発明で使用可能であるが、上記の方法は比較を含まないため実行が効率的である。コンポーネント404における距離は、セルの距離値から再構成され、アンチエイリアス強度(I)406にマッピングされる(440)。
一次関数、ガウス関数、およびシグモイド関数を含むさまざまなマッピングが使用可能である。最良のマッピング関数の選択は主観的である。一実施の形態では、本発明者等のマッピングは2つの関数の合成である。第1の関数は上記の通りであり、第2の関数はコントラスト強調関数である。これらの2つの関数を合成することにより、距離フィールド(D)405をコンポーネント404のアンチエイリアス強度(I)406にマッピングする(440)。
図5は、距離502の関数としての強度501(例えば[0,1])の線形マッピング500を示している。このマッピングは、距離をピクセルの各コンポーネントに対するアンチエイリアシングされたイメージ強度に変換する。距離は、オブジェクトの内部では正であり、オブジェクトの外部では負である。異なるカットオフ値503および504が、エッジコントラストおよびストロークウェイトに影響を及ぼす。本発明者等は、外部503および内部504フィルタカットオフ値として、ディスプレイタイプのピクセルでは(−0.75,0.75)、ボディタイプのピクセルでは(−0.5,0.625)の場合に良好な結果を達成している。
最適な距離ベースの適応スーパーサンプリング
上記の距離ベースのアンチエイリアシング方法は、グリフエッジに起因するエイリアシングを低減する。しかし、ステム幅やグリフコンポーネント間の間隔がディスプレイのサンプリングレートに比べて小さすぎる場合には、依然としてエイリアシングアーティファクトが生じる。このような場合に、以下で説明する距離ベースの適応スーパーサンプリングを適用することにより、空間的および時間的エイリアシングをさらに低減する。
好ましい実施の形態では、本発明者等の新規な距離ベースの適応スーパーサンプリングとともに双二次ADFを使用することにより、従来技術のアウトラインベースの表現およびカバレジベースの適応スーパーサンプリング法よりも優れた利点を提供する。ADFはディテール指向のサンプリングを使用するので、距離フィールドの領域は、その局所変動が高いほど、小さいリーフセルで表現される。したがって、ADFquadtreeの構造は、最適な距離ベースの適応サンプリングを実施するのに必要な局所変動のマップを提供し、上記のような局所変動を決定する従来技術の適応スーパーサンプリングによるアンチエイリアシング方法における困難を克服する。
イメージ内の各ピクセル402の各コンポーネント404について、コンポーネント404を含むセルを見つけ、そのコンポーネントのフィルタ半径r内のサンプル点407の集合403を、ピクセルコンポーネント404に関連づける(420)。コンポーネント当たりのサンプル点407の個数(spc)は、rに対するセルの相対サイズ(cellSize)に依存する。サンプル点407におけるサンプリングされた距離をフィルタリングすることにより、単一の重みつき平均距離405を求めてから(430)、ピクセル402のコンポーネント404のアンチエイリアス強度406にマッピングする(440)。
種々のフィルタおよびサンプリング戦略が可能である。好ましい実施の形態では、一般的な形式のガウシアンフィルタを使用し、各距離サンプルに
Figure 0004762901
の重みをかける。ここで、dはサンプル点からピクセルのコンポーネントまでの距離であり、Wはそのコンポーネントに用いられる重みの和である。ボックスフィルタ、コーンフィルタ、負ローブフィルタ、および他の形式のガウシアンフィルタでも同様の結果を得ることができる。
図6A〜図6Cは、本発明者等のサンプリング戦略を示している。サンプル407は、重みおよび重み和の効率的計算のために、コンポーネント601の近くに同心円610をなして配置される。ピクセル間間隔の1.3倍のフィルタ半径r602を使用し、cellSize>rの場合(図6A)は1spcで、r/2<cellSize≦rの場合(図6B)は5spcで、そしてcellSize≦r/2の場合(図6C)は13spcでサンプリングする。
サンプル点407をピクセルコンポーネント404に関連づけるために、本発明は、同心円ではなく数多くの他の戦略を使用することもできる。本発明者等の方法は、厳密にどのサンプリング戦略を採るかということにはあまり左右されない。
以下で説明するもう1つの適応サンプリング戦略は、フィルタ半径r内に含まれるすべてのセルの中心にサンプル点を配置する。この戦略も同程度に良好な結果を有する。
セルベースのアンチエイリアシング
上記の距離フィールドによるアンチエイリアシング方法は、走査線ベースのラスタライズを用いたソフトウェアとして実施することができる。別法として、セルに分割された距離フィールドをセルごとに、すなわちオブジェクト順にアンチエイリアシングすることができる。セルベースのレンダリングによれば、サンプル点を含むセルを見つけるために木をトラバースすることが不要となり、単一セル内で距離および勾配を計算するための冗長な設定が不要となり、セルデータの取得(すなわちメモリフェッチ)の繰り返しが少なくなる。
さらに、レンダリングに必要なセルを固定サイズの自己完結的なユニットの順次ブロックとして表現することができる(すなわち、セル内の点に対する距離および勾配がセルの距離値から求まる)ので、本発明者等のセルベースの手法は、ハードウェア実装に適しており、リアルタイムレンダリングが可能となる。
図7は、2次元距離フィールド711として表現(710)されたオブジェクト701(例えばグリフ)をオブジェクト順にアンチエイリアシングする方法700を示している。方法700は、適応的な距離ベースのスーパーサンプリング、距離ベースの自動ヒンティング、および距離ベースのグリッドフィッティングを提供する。結果として得られるアンチエイリアシングされたピクセル強度は、イメージの一部としてCRTおよびLCDのようなディスプレイ上にレンダリングされることが可能である。本方法は、モーションブラーをレンダリングするのに特に有用である。2次元距離フィールド711のセルが、必要な距離サンプルの数を減らすために空間階層に編成されている場合には、ミップマッピングを使用することができる。
2次元距離フィールド711をセル712に分割する。双二次の適応的にサンプリングされた距離フィールドを使用する好ましい一実施の形態では、各セルのサイズは2次元距離フィールドの局所変動に依存する。各セルは、セル内の2次元距離フィールドを再構成する方法(M)713を含む。レンダリングすべき距離フィールドの領域(破線)722を含むセル721の集合を識別する(720)。
領域722を用いて、その領域に関連するピクセルの集合731を見つける(730)。ピクセル集合731に属する各ピクセルについて、コンポーネント741の集合を指定する(740)。次に、セルの集合における距離から各ピクセルの各コンポーネントについてアンチエイリアス強度751を求める。ここで、距離は、セルの集合から再構成される。その後、上記のように、距離をアンチエイリアス強度にマッピングする。
一実施の形態では、ピクセルのコンポーネント付近のセル集合内で単一のサンプル点を見つけ、その単一のサンプル点におけるセル集合からの距離を再構成することによって距離を求めることができる。この実施の形態において、2次元距離フィールド711は、特殊なセルを含む最適なADFとして表現することができる。
双二次の適応的にサンプリングされた距離フィールドを使用する本発明の好ましい実施の形態では、この手法は、適応的な距離ベースのスーパーサンプリングに対するフィルタ半径よりも小さいセルの特別扱いによって強化される。小さいセルは、距離フィールドに高い変動がある場合に生じるので、これらのセルの近くのピクセルにおける距離は、距離を強度にマッピングする前にプレフィルタリングすることができる。
要素の合成バッファを初期化する。ここで各要素は、ピクセル集合の各ピクセルのコンポーネントに対応する。セル集合に属する各セルは独立に処理することができる。好ましい実施の形態では、各要素は、重み付き距離および累積重みからなり、これらはいずれもゼロに初期化される。セルが処理される時、これらの重み付き距離および累積重みは、そのセル内、またはそのセルの中心からフィルタ半径内のいずれかに存在するピクセルコンポーネントに対応するバッファ要素においてインクリメントされる。
すべてのセルを処理した後、重み付き距離を各ピクセルの各コンポーネントに対する累積重みで正規化することにより距離を生成してから、その距離をアンチエイリアシングされたコンポーネント強度にマッピングする。好ましい実施の形態では、上記と同じガウシアン重みおよびフィルタ半径を使用する。
以上説明した本発明者等のセルベースのレンダリングは、フィルタ半径に対する各セルの相対サイズとは無関係に、セル集合に属するあらゆるリーフセルを常に処理する。理論的には、これは最適の適応的な距離ベースのスーパーサンプリングを提供する。実際には、ADFquadtreeをミップマッピングとして使用することにより、セル数を減らすことができる。
ADFquadtree構造により、小さいリーフセルをそれらの祖先で置き換え、実質的にquadtreeをある所定のセルサイズで打ち切ることができる。このセルサイズがピクセル間間隔の1/4以下である限り、適応的な距離ベースのスーパーサンプリング結果における視覚的劣化はない。これは、領域をレンダリングするためのセル数を減少させる。
2次元距離フィールドによって表現される重なり合うオブジェクトのレンダリング
本発明は、従来技術における問題を回避する、2次元距離フィールドとして表現される重なり合うオブジェクトをレンダリングする方法および装置を提供する。特に、カバレジベースのアンチエイリアシングから導出される色または強度値をブレンディングする代わりに、またレンダリングの前に重なり合うオブジェクトを単一の合成オブジェクトに結合する代わりに、本発明は、ピクセルのコンポーネントのレンダリング中にオンデマンドで求められる距離値を結合する。次に、結合距離をマッピングして、ピクセルのコンポーネントのアンチエイリアス強度を求める。
図14Aおよび図14Bは、オブジェクトの集合1410をイメージ順にレンダリングする方法1400を示す。図14Aを参照すると、オブジェクトの集合1410を、2次元距離フィールドの集合1430によって表現し(1420)、各オブジェクトにつき1つの距離フィールドがあり、例えば、距離フィールド1431はオブジェクト1411に対応し、距離フィールド1433はオブジェクト1413に対応する。
図14Bに示すように、各ピクセル1404は1つまたは複数のコンポーネント1406、通常はRGBレンダリングのための赤、緑、および青コンポーネントを含み得る。方法1400は、ピクセル1404のコンポーネント1406のアンチエイリアス強度1402を求める。サンプル点の集合1441〜1443をピクセルコンポーネント1406に関連づけ(1440)、サンプル点の各集合と2次元距離フィールドの集合1430の各距離フィールドとの間には1対1の対応関係がある。例えば、サンプル点の集合1441は距離フィールド1431に対応し、サンプル点の集合1443は距離フィールド1433に対応する。
次に、距離フィールド1431〜1433ごとに、対応するサンプル点の集合1441〜1443を用いて対応する距離を求め(1450)、対応する距離1451〜1453を生成する。例えば、距離フィールド1431について、対応するサンプル点の集合1441を用いて対応する距離1451を求める。
対応する距離1451〜1453を次に結合して(1460)、結合距離1461を求める。次に、結合距離1461をマッピングして(1470)、ピクセル1404のコンポーネント1406のアンチエイリアス強度1402を求める。
図15A、図15B、および図15Cは、オブジェクトの集合1510をオブジェクト順にレンダリングする方法1500を示す。図15Aを参照すると、オブジェクト集合1510の各オブジェクト1511〜1513を、対応する2次元距離フィールド1521〜1523によって表現する(1501)。対応する2次元距離フィールド1521〜1523は2次元距離フィールドの集合1520を構成する。例えば、距離フィールド1521はオブジェクト1511に対応し、距離フィールド1523はオブジェクト1513に対応する。
図15Bを参照して、2次元距離フィールドの集合1520の各距離フィールド1521〜1523をセルに分割し(1525)、ここで各セルに、セル内の2次元距離フィールドを再構成する方法1531を関連づける(1530)。
図15Cに示すように、オブジェクトの集合1510の領域1545をレンダリングするために、ピクセルの集合1551を見つけ(1550)、ピクセルの集合1551における各ピクセルのコンポーネントの集合1560を指定する(1555)。なお、ピクセルの集合1551における各ピクセルは、1つまたは複数のコンポーネント、通常はRGBレンダリングのための赤、緑、および青コンポーネントを含み得る。方法1500は、ピクセルの集合1551における各ピクセルの各コンポーネント1561のアンチエイリアス強度1566を求める。
2次元距離フィールドの集合1520における各2次元距離フィールド1521〜1523について、領域1545に関連する対応するセルの集合1541〜1543を識別する(1540)、例えば、距離フィールド1521についてセルの集合1541を識別し(1540)、距離フィールド1523についてセルの集合1543を識別する(1540)。
ピクセルの集合1551における各ピクセルの各コンポーネント1561について、まずコンポーネント1561について、対応するセルの集合1541〜1543を用いて各距離フィールド1521〜1523の対応する距離1571〜1573を求める(1570)ことによってアンチエイリアス強度1566を求める1565。例えば、セルの集合1541を用いて距離フィールド1521のコンポーネント1561について対応する距離1571を求める(1570)。
対応する距離1571〜1573を次に結合して(1575)、結合距離1576を求める。結合距離1576を次にマッピングして(1580)、ピクセルのコンポーネント1561のアンチエイリアス強度1566を生成する。
レンダリングされるオブジェクトの色または強度値をブレンディングまたは結合することによって、またはカバレジベースのアンチエイリアス値を結合することによって重なり合う領域をレンダリングする従来技術とは異なり、方法1400および1500は距離値を結合し、よって従来技術の呈するカラーアーティファクトおよびブレンディングアーティファクトを軽減する。
Perry他の従来の方法とは異なり、方法1400および1500は、レンダリングの前に合成オブジェクトを表現するために結合距離フィールドを生成しない。その代わりに、本発明によれば、ピクセルのコンポーネントについて求められた距離を結合することによって、そのコンポーネントについて、レンダリング中に結合距離をオンデマンドで求める。
対応する距離1451〜1453を結合する(1460)とともに対応する距離1571〜1573を結合する(1575)方法にはいくつかある。例えば、距離フィールドの内部が正で外部が負という符号規則を用いて、結合は、対応する距離の最大値をとってオブジェクトの和集合を生成するか、または対応する距離の最小値をとって共通集合を生成することができる。他の結合方法は、数例を挙げると、差をとること、算術平均を行うこと、または対応する距離のインプリシットなブレンドを行うことを含む。
インプリシットなブレンドを用いるとオブジェクト間の隅を丸めることができ、算術平均を用いると、レンダリングされる領域の高周波成分をさらに低減することによって、さらなるアンチエイリアシングを行うことができる。より一般的には、結合は、任意の算術演算または条件付き演算とすることができる。さらに、結合は、結合距離を求める手続きまたはテーブルを用いることができる。
テクスチャマッピングを用いたセルベースの距離フィールドのレンダリング
本発明は、2次元グリフ等のオブジェクトを表現する距離フィールドを、テクスチャマッピングを用いてレンダリングすることができ、ここでテクスチャマッピングは多段レンダリングパイプラインの1段を構成する。本明細書ではまず、レンダリングパイプラインの各段の概要を提示し、次に、様々な段階の具体的な詳細を本発明のいくつかの実施の形態とともに説明する。
図16Aおよび図16Bは、本発明による、オブジェクト1603を表現する距離フィールド1602をレンダリングする方法1600を示す。
図16Aに示すように、距離フィールド1602をセルの集合1606に分割し、ここで各セル1604は、距離サンプルの集合1605と、距離サンプル1605を用いてセル1604内の距離フィールド1602を再構成する方法とを含む。
オブジェクト1603を表現する距離フィールド1602の領域1601を確定する。領域1601をレンダリングするためにレンダリングパイプラインの第1段に進み、その後、順に後段に進む。
第1段は、距離フィールド1602のセルの集合1606からソースセルの集合1611を選択する(1610)。この選択1610により領域1601のレンダリングが可能になる。例えば、領域1601をカバーするソースセルの集合1611を選択することができる(1610)。
図16Bにおいて、第2段は、ソースセルの集合1611における各ソースセル1612を、ワールド座標系において定義される幾何学的要素1621として表現する(1620)。各幾何学的要素1621にテクスチャマップ1623を関連づけ1622、ここでテクスチャマップ1623は、対応するソースセル1612の距離サンプル1605を含む。
幾何学的要素1621は、数例を挙げると、四辺形、三角形、ポリゴン、湾曲エッジを有する形状を成す制御頂点の集合として記述することができる。幾何学的要素1621の記述は通常、対応するソースセル1612の幾何学的形状に合わせて選択されるが、本発明はこの手法に限定されない。
第3段は、各幾何学的要素1621をワールド座標系からピクセル座標系の幾何学的要素1631に変換する(1630)。後述のように変換1630を行う多くの方法がある。
第4段は、各幾何学的要素1631をテクスチャマッピングして(1640)、その幾何学的要素1631に関連する各ピクセル1643の各コンポーネント1642について距離1641を求める。テクスチャマッピング1640は、幾何学的要素1631をラスタライズして、幾何学的要素1631に関連するピクセル1643を生成し、次にそのピクセル1643の「色」を求めることを含む。実際には、本発明において、ピクセル1643の色は、ピクセル1643のコンポーネント1642の距離値1641を表現する。テクスチャマッピング1640は、テクスチャマップ1623に格納されている距離サンプル1605を使用して、幾何学的要素1631に関連する各ピクセル1643の各コンポーネント1642について、幾何学的要素1631内の距離フィールド1602の再構成を行う。
レンダリングパイプラインの第5の最終段では、各ピクセル1643の各コンポーネント1642の距離1641を、該ピクセル1643の該コンポーネント1642のアンチエイリアス強度1651にマッピングする(1650)。
多段レンダリングパイプラインの各段階は、数例を挙げると、中央処理装置、特定用途向け集積回路、固定関数グラフィックスハードウェア、プログラマブルグラフィックスハードウェア、および様々な組み合わせにおいて実施することができる。
プログラマブルグラフィックスハードウェア(Akenine-MollerおよびHaines著「Real-Time Rendering」(A K Peters, 2002, ISBN 1-56881-182-9)を参照)は、本発明の多段レンダリングパイプラインの変換段1630、テクスチャマッピング段1640、およびマッピング段1650を頂点シェーダーおよびピクセルシェーダーによって制御することを可能にする。頂点シェーダーは、幾何学的要素に対して作用して変換された幾何学的要素を生成する手続きを定義する。ピクセルシェーダーは、ラスタライズされたピクセルを受け取り、次にこれらのピクセルを、最終的にフレームバッファに到達する前に操作する、例えばカラー化することができる。頂点シェーダーおよびピクセルシェーダーは、オブジェクトをレンダリングする際に大きな柔軟性を与える。
本発明では、両方のタイプのシェーダーを活用して、本発明のレンダリングパイプラインの様々な態様を行うことができる。例えば、変換1630は頂点シェーダーによって行うことができ、テクスチャマッピング1640はピクセルシェーダーによって行うことができ、マッピング1650はピクセルシェーダーによって行うことができる。
テクスチャマッピング1640は、各ピクセル1643の各コンポーネント1642について距離1641を求めるために、数例を挙げると、双一次補間、三重線形補間、双二次補間、高次補間、例えば双三次補間等の様々な補間方法を実施することができる。テクスチャマッピング1640は、各ピクセル1643の各コンポーネント1642について距離1641を近似し、それによってオブジェクト1603の忠実度の低いレンダリングを生成するか、または各ピクセル1643の各コンポーネント1642について距離1641を正確に求める。近似法は、ソースセル1612の再構成法が実施するのに複雑すぎるか、実行するのに多すぎる時間を要するときに用いることができる。
複数のテクスチャ装置が利用可能である場合、テクスチャマッピング1640は、各ピクセル1643の各コンポーネント1642の距離1641を同時に独立に求め、よってオブジェクト1603を効率的にレンダリングすることができる。
マッピング1650は、1次元テクスチャマッピングを用いて、各ピクセル1643の各コンポーネント1642のアンチエイリアス強度1651を求めることができる。この1次元テクスチャマッピングはフィルタ関数を近似するために用いることができる。マッピング1650はまた、ルックアップテーブルまたはピクセルシェーダを用いて、各ピクセル1643の各コンポーネント1642のアンチエイリアス強度1651を求めることができる。
複数のオブジェクトを表現する複数の距離フィールドをレンダリングする場合、または、距離フィールドの集合によって表現される合成グリフをレンダリングする場合、距離フィールドは重なり合う場合があり、適切に対処しなければならない(上記を参照)。
図16Cは、本発明の方法1600に、重なり条件に適切に対処するための付加的なステップを含む一実施の形態を示す。テクスチャマッピング1650の後に結合ステップ1670を行う。この実施の形態では、各ピクセル1643の各コンポーネント1642について、テクスチャマッピング1640によって求められる距離1661〜1663を結合して(1670)、結合距離1671を求める。次に、各ピクセル1643の各コンポーネント1642の結合距離1671を、該ピクセル1643の該コンポーネント1642のアンチエイリアス強度1681にマッピングする(1680)。
本発明とは異なり、従来技術のフォントレンダリングは、ハードウェアを用いて高品質のグリフを効率的にレンダリングすることができない。従来技術のヒンティングは、実行フローの分岐が多くデータ構造が複雑であるため、ハードウェアを有効なソリューションとするには複雑すぎる。
従来技術は、テクスチャマッピングを多くの目的で用いるが、本発明による、オブジェクトを表現する距離フィールドをレンダリングするためのテクスチャマッピングの使用は独特なものである。さらに、本発明による、各ピクセルの各コンポーネントについて距離値を独立に同時に求めることは新規である。
従来技術とは異なり、本発明は、ピクセルシェーダを用いて距離フィールドのコーナセルまたは2セグメントセル等の特殊なセルをレンダリングし、セル内の距離フィールドを再構成することを可能にする。
プログレッシブキャッシュを用いたレンダリング−システム構造
図17は、2次元距離フィールドとして表現されるグラフィックスオブジェクトを効率的にレンダリングするシステム1700を示す。システム1700は、レンダリングパイプライン1710、キャッシュマネージャ1720、およびプログレッシブキャッシュ1730を備える。
パイプライン1710は、互いに直列接続されたレンダリング段1711〜1716を含む。第1段1711は入力としてレンダリング要求1701を受け取り、最終段1716はディスプレイイメージ1702を出力する。各段の出力は後段の入力を提供する。
キャッシュマネージャ1720は、パイプライン1710をプログレッシブキャッシュ1730に接続する。キャッシュマネージャは、パイプラインとプログレッシブキャッシュの間でキャッシュ要素をルーティングする。
プログレッシブキャッシュ1730は、前処理された形状デスクリプタのキャッシュ1731、距離フィールドのキャッシュ1732、距離値のキャッシュ1733、アンチエイリアス強度のキャッシュ1734、およびカラー化されたイメージのキャッシュ1735を含む。プログレッシブキャッシュ1731〜1735は、図17において左から右に、完成度の最も低い、すなわち最も不完全なキャッシュ要素から完成度の最も高い、すなわち最も完全な(most finished, i.e., most complete)キャッシュ要素の順に配置されるため、キャッシュ1730は「プログレッシブ」であると見なされる。
各キャッシュ1731〜1735は、レンダリングパイプライン1710において対応する段の次の段への入力、および対応する段からの出力のためのデータ記憶装置を含む。パイプラインのレンダリング段とデータ記憶装置との間の1対1の対応関係が全体的に、両方向の破線矢印1741〜1745で示される。各段は、パイプラインを通過する要素の完全性レベルを高め、完全性の各レベルにつき1つのキャッシュがある。
プログレッシブキャッシュを用いたレンダリング−システムオペレーション
第1に、グラフィックオブジェクトに対するレンダリング要求1701を生成する。
第2に、キャッシュマネージャ1720がプログレッシブキャッシュ1730に問い合わせて1721、レンダリング要求を満たすために利用可能な、ディスプレイイメージ1702を最も良く表現する最も完全なキャッシュ要素1722、例えばキャッシュタイプ1〜5の要素を判定する。
第3に、プログレッシブキャッシュに問い合わせた結果、すなわち最も完全なキャッシュ要素1722を適切なレンダリング段、すなわち最も完全なキャッシュ要素1722を含むキャッシュの対応する段の次の段に送り、すなわち渡して(pipe)、オブジェクトのレンダリングを終える。利用可能なキャッシュ要素がない場合1723、レンダリング要求の処理を段1712において開始する。
各レンダリング段が処理を終えると、その段の出力は、キャッシュマネージャ1720を介して、キャッシュして後で再使用できるように再びプログレッシブキャッシュ1730に送る、すなわち渡すことができる。例えば、段1716の出力は入力としてキャッシュ1735に送られる。
プログレッシブキャッシュ1730中のキャッシュ要素に圧縮方法を適用することにより、プログレッシブキャッシュ1730の有効サイズが増え、よってキャッシュヒット率を高めることによりパイプライン1710の全体的な効率が高まる。距離フィールドのキャッシュ1732および距離値のキャッシュ1733は特に、距離フィールドが連続的な性質を有することから、圧縮に適している。
個々のキャッシュ1731〜1735内のキャッシュ要素を格納し見つける方法は当技術分野において多数知られている。このような方法の1つがハッシュ化であり、ハッシュ化では、レンダリング要求1701から鍵を構築し、次にハッシュ化して、キャッシュされている可能性のある要素の位置を示すインデックスを生成する。レンダリング要求1701が特殊なタイプフェイスのグリフを含む場合、鍵は、グリフの文字コードのビットごとの連結と、タイプフェイスの名前とを含み得る。
本発明のプログレッシブキャッシュ1730の効率を高めるために、使用日時が最も古い、すなわちLRU方法を用いて、キャッシュ要素を管理することができる。この方法では、プログレッシブキャッシュ1730が満杯になると、使用日時が最も古いキャッシュ要素を廃棄することができる。しかし、本発明のプログレッシブキャッシュ1730は、キャッシュ要素に対して様々なメモリ管理方法を使用することができ、LRU方法に限定されないことに留意することが重要である。
システム1700の別の実施の形態において、プログレッシブキャッシュ1730にあるキャッシュ数は、レンダリングパイプライン1710にある段数よりも少ない。この実施の形態では、全ての段が対応するキャッシュを有する訳ではない。対応する段が極めて効率的であり、個別のキャッシュに出力をキャッシュすることが不要となり、メモリの無駄となるため、プログレッシブキャッシュ1730内の個別のキャッシュを削除することが有利である場合もある。さらに、対応する段の出力は、現実的には多すぎるメモリを必要とする場合がある。
当業者は、様々なレンダリングパイプラインおよび様々なプログレッシブキャッシュを含み、レンダリング要求を満たすことができるようにシステム1700を適応させる方法を容易に理解するであろう。
ピクセルコンポーネントの処理
ピクセルは1つまたは複数のコンポーネントを含む。例えば、通常のCRTまたはLCDカラーモニタ上のピクセルは赤、緑、および青コンポーネントを含む。本発明では、ピクセルが複数のコンポーネントを含む場合、それらのコンポーネントを上述のように独立に処理するか、または単一のコンポーネントとして処理することができる。複数のコンポーネントを単一のコンポーネントとして処理する場合、該単一のコンポーネントのアンチエイリアス強度からピクセルの色およびアルファ値を求めることができる。
複数のコンポーネントを単一のコンポーネントとして処理するのには2つの理由がある。第1に、それによりレンダリング時間が削減される。第2に、複数のコンポーネントを個別にアドレスすることができない場合、または個別のコンポーネントの相対位置が不明の場合、各コンポーネントを個別に扱うことは難しい。
LCDおよびOLEDのようなディスプレイデバイスがアドレス可能なピクセルコンポーネントを有する場合、当技術分野で知られているように、複数のコンポーネントを独立に処理することにより、デバイスの有効解像度を上げることができる。本発明は、そのようなデバイスのこの特徴を活用して、従来技術よりも優れた品質の距離ベースのアンチエイリアシングを行うことができる。
アドレス可能なピクセルコンポーネントを有する代替的なピクセルレイアウト上にレンダリングする場合、本発明は、従来技術に対して多数の利点を有する。例えば、本発明では、従来技術がピクセルコンポーネントごとにいくつかのカバレジベースのサンプルを用いる場合であっても、ピクセルコンポーネントごとに単一の距離サンプルを用いて、従来技術よりも優れた品質を達成することができる。本発明の方法は本質的に、あらゆるレイアウト上で十分に高速であり、従来技術のようにサンプルの再利用を必要としない。従来技術では、サンプルの再利用は、多くの代替的なピクセルレイアウトにおいて機能しない。さらに、マッピング440等の本発明のレンダリングパラメータを調整することによって、本発明の方法は、従来技術の色ぶち問題を軽減し、ピクセルコンポーネントの、サイズおよび輝度といった様々な特性に対処することができる。
2次元オブジェクトの動画化
図12は、動画スクリプト1202に従ってフレームのシーケンスとしてオブジェクト1201を動画化する方法1200の流れ図を示している。動画スクリプト1202は、フレームシーケンス中の各フレームについて、オブジェクトの状態(例えば、オブジェクトの位置、サイズ、方位、および変形)を指示する。オブジェクトは、2次元距離フィールドとして表現される。オブジェクト1201のポーズ1211は、動画スクリプト1202に従ってフレームシーケンス1221中の各フレームについて更新される(1210)。オブジェクト1201は、更新されたポーズ1211および距離ベースのアンチエイリアシングによるレンダリング方法1212を用いてレンダリングされる。
オブジェクト1201を表現する2次元距離フィールドは、オブジェクトの異なる表現(例えば、オブジェクトのアウトライン記述またはオブジェクトのビットマップ記述)から取得することができる。
特定のオブジェクト1201に対するポーズ1211の更新1210は、剛体変換、自由変形、ソフトボディ衝撃変形、レベルセット法、パーティクルシミュレーション、およびそのレンダリング属性に対する変更等、オブジェクトに対して種々のオペレーションを適用することによって実行することができる。
オブジェクトをレンダリングする(1220)時、オブジェクトを表現する2次元距離フィールド内のサンプル点の集合を、フレームシーケンス1221中のフレーム内のピクセルのコンポーネントに関連づける。2次元距離フィールドおよびサンプル点集合から距離を求めることによって、距離を、ピクセルのコンポーネントのアンチエイリアス強度にマッピングすることができる。
好ましい一実施の形態では、オブジェクト1201を表現する2次元距離フィールドをセルに分割する。各セルは、そのセル内の2次元距離フィールドを再構成する方法を含む。この場合にレンダリング1220を行うには、レンダリングすべき2次元距離フィールドの領域を含むオブジェクト1201を表現する2次元距離フィールドのセルの集合を識別し、その領域に関連するピクセルの集合を見つける。そのピクセル集合に属する各ピクセルに対するコンポーネントの集合を指定する。ピクセルの各コンポーネントに対する距離をそのセル集合から求め、その距離をピクセルのコンポーネントのアンチエイリアス強度にマッピングすることにより、ピクセル集合に属する各セルの各コンポーネントに対するアンチエイリアス強度を求める。
距離ベースの自動ヒンティング
標準的なフォント表現におけるヒンティングは、時間のかかる手作業のプロセスである。このプロセスにおいて、タイプデザイナとヒンティング専門家が、個々のグリフをより良くピクセルグリッドにフィッティングするための規則の集合を生成する。良好なヒンティングが生成する小さいタイプサイズのグリフは、適切な間隔を有し、良好なコントラストを有し、外観が統一的である。
これらの規則は以下のものを提供する:同一のコントラスト分布を有し、左および下のエッジができるだけ鋭いコントラストを有する垂直ステム;視覚的構造を目に伝えるのに十分なコントラストを有するための、グリフの斜めのバーおよび細い丸みを帯びたパーツ;ならびに、互いに結合し、人間の目によって捕捉されるための十分な強調を提供するセリフ。Hersch等「Perceptually Tuned Generation of Grayscale Fonts」(IEEE CG&A, Nov, pp.78-89, 1995)を参照されたい。
なお、従来技術のフィルタリング方法は、ファジーな文字を生成し、異なるコントラストプロファイルを異なる文字パーツに割り当てるので、タイプデザインの重要な規則に反している。これらの限界を克服するため、各フォントの各グリフごとにヒントが開発される。従来技術のヒンティング方法には数多くの問題点がある。すなわち、開発に多大な労力がかかり、レンダリングが遅く、複雑なためハードウェア実装ができないことである。
アウトラインベースのフォントの場合、ヒントを用いたレンダリングは3ステップのプロセスである。第1に、グリフのアウトラインをスケーリングし、ピクセルグリッドにそろえる。第2に、アウトラインを修正することにより、ステム、バー、およびセリフのコントラストを制御し、非常に細いセクションおよびアークの太さを増大させる。第3に、修正されたアウトラインをスーパーサンプリングしてから、フィルタリングによりダウンサンプリングする。
上記で説明した本発明者等のヒンティングされていない距離ベースのアンチエイリアシングによるレンダリング方法は、ヒンティングを使用する従来技術のフォントレンダリング方法よりも優れているが、知覚的ヒンティングにより、小さいタイプサイズでの読みやすさを向上させることができることが知られている。
したがって、図8に示すように、距離フィールドを活用することにより、小さいポイントサイズでグリフをレンダリングするための距離ベースの自動ヒンティングを提供する。ヒンティングの第1のステップ810で、距離フィールドをスケーリングし、ピクセルまたはピクセルコンポーネントグリッドにそろえる。これは、与えられた、または導出されたフォントメトリック(例えば、キャップハイト、xハイト、およびベースラインの位置)から自動的に行うことができる。フォントメトリックは、距離フィールドの勾配を使用して特定のフォントメトリック(例えばキャップハイト)を検出することによって距離フィールドから自動的に導出することができる。ステップ810は、ピクセルまたはピクセルコンポーネントグリッドに適切にそろえることを可能にするための距離フィールドの一般的な変換(例えば変形)を含むことができる。
この種のグリッドフィッティングを適用した後、距離フィールドおよびその勾配フィールドを用いて知覚的ヒントを提供する。
一実施の形態では、距離フィールドの勾配の方向を用いて、オブジェクトの左および下のエッジ上のピクセルを検出する(820)。これらのピクセルを濃くし(830)、対向するエッジ上のピクセルを薄くする(840)ことによって、見かけ上のストロークウェイトを変えずに左および下のエッジ上のコントラストを高くする。これは、対応するピクセル強度を増減させることによって行うことができる。
もう1つの実施の形態では、勾配フィールドを用いて、斜めステムおよび細いアークに対するコントラストを良くする。なお、ピクセルがグリフの薄い領域上またはその付近に位置する場合、ピクセルの両側の隣接ピクセルは逆の勾配方向を有する、すなわちそれらの内積が負であることに留意されたい。勾配方向の急激な変化を検出することにより、これらの薄い領域上のピクセルを濃くする(850)ことができる。
これらは、距離フィールドを用いて知覚的ヒントを自動的に提供する方法の2つの例に過ぎない。距離フィールドは、最適な文字間隔および一様なストロークウェイトを提供するためにも使用可能である。
グリフの植字
植字は、レイアウト、レイアウトの開始位置、および、グリフの、セット幅およびカーニングペアといった関連するフォントメトリック等の入力データが与えられた状態でグリフの位置を決める。本発明では、あるグリフの送り幅を次のグリフへのオフセット、例えばベクトルとして定義する。送り幅は通常、グリフのセット幅、セット幅およびカーニング値、またはユーザによって指示される、レイアウトによって決まる、またはフォントメトリックから導出される多数の他の組合せを含む。送り幅は、行への植字、ベジエ曲線、またはレイアウトによって指定される他の複雑なパスを考慮する。「TEX and METAFONT: New Directions in Typesetting」は、植字の優れた概要を提供する。
植字の通常の応用は、単語中の文字の位置を決めること、および段落の改行を決めることを含む。植字は、グリフの位置を決める際に、グリフの基礎となる表現を考慮する。例えば、ビットマップフォントはピクセルの分数まで位置決めすることができないが、アウトラインフォントではできる。アウトラインフォントは多くの場合ヒンティングされるため、結果的にグリフの位置が調整される。
2次元距離フィールドとして表現されるグリフの植字
2次元距離フィールドとして表現されるグリフを植字する方法はいくつもある。
一実施の形態では、距離ベースの自動ヒンティングをオフにし、植字法により指示されるようなグリフ位置の正確な配置を可能にする。
別の実施の形態では、距離ベースの自動ヒンティングを用いて、各グリフを表現する距離フィールドをピクセルグリッドにグリッドフィッティングする、すなわちそろえ、よって植字法によって指示されるようなグリフ位置の配置をピクセルの分数まで近似する。
別の実施の形態では、より高い精度を達成するために、各グリフを表現する距離フィールドをピクセルグリッドのコンポーネントにグリッドフィッティングする、すなわちそろえて、植字法によって指示されるようなグリフ位置の配置をピクセルのさらに小さい分数まで近似するために、距離ベースの自動ヒンティングを用いる。
別の実施の形態では、図18A〜図18Cに示すように、方法1800はグリフの集合1801を植字する。グリフの集合1801は例えば、単語の文字、または文書の文字を表現することができる。グリフの集合1801から現在のグリフ1802を選択する(1805)、例えば、単語の最初の文字を選択する。現在の位置1803も選択する(1810)。選択1810は、ユーザがマウス等の入力デバイスにより選択するか、またはグリフの集合1801のレイアウトから導出することができる。
終了条件1804、例えば単語中の全ての文字が植字されているかをテストし(1815)、満たされる場合、方法1800は停止する。終了条件1804が満たされない場合(1850)、方法1800を繰り返し、次のグリフ1806、例えば単語中の次の文字の次の位置1809を決定し、次のグリフ1806をグリフの集合1801から選択する(1820)。
選択1820の後、現在のグリフ1802を2次元距離フィールド1807として表現する(1825)。次に、現在の位置1803、現在のグリフ1802の送り幅1808、および2次元距離フィールド1807のアライメント1835を用いて次の位置1809を決定する(1830)。例えば、現在の位置1803から送り幅1808分のオフセットとして次の位置1809を決定し、オフセットをアライメント1835に応じて調整する。
最後に、現在のグリフ1802が次のグリフ1806となるように更新し(1840)、現在の位置1803が次の位置1809となるように更新して(1845)、次の繰り返しに備える。
アライメント1835は、現在のグリフ1802をレンダリングした結果とすることができるか、またはレンダリングを行わずに求めることができる。なお、2次元距離フィールド1807の選択された等高線は現在のグリフ1802のサイズを変化させる可能性があるため、アライメント1835はこの選択された等高線に依存し得る。
別の実施の形態では、現在の位置1803、現在のグリフ1802の送り幅1808、および2次元距離フィールド1807の選択された等高線を用いて次の位置1809を決定する(1830)。例えば、次の位置1809は、現在の位置1803から送り幅1808分のオフセットとして決定することができ、オフセットは、選択された等高線に応じて調整される。
ゼロ等高線では調整が行われない場合がある。負の等高線では、現在のグリフ1802のサイズが大きくなるため、現在の位置1803からのオフセットが大きくなる可能性がある。正の等高線では、現在のグリフ1802のサイズが小さくなるため、現在の位置1803からのオフセットが小さくなる場合がある。
フォントの生成および編集
フォントをデザインするための2つの基本的方法がある。第1の方法は手作業である。その場合、グリフを手で描き、デジタル化してから、アウトラインをデジタル化ビットマップにフィッティングする。第2の方法はコンピュータによるものである。
後者の場合、3種類のツールが利用可能である。直接ビジュアルツールが、曲線操作のために使用可能である。手続き型デザインツールが、手続きの命令を実行することによってグリフの形状を構成する。手続きは、形状のアウトラインを画定してそれをフィルするか、またはジオメトリや方位等のいくつかの属性を有するペン先でストローキングされたパスを画定する。コンポーネントベースのデザインツールにより、デザイナは、ステム、アーク、および他の繰り返し形状等の基本的コンポーネントを作成してから、それらのコンポーネントを組み合わせてグリフを生成することができる。
本発明者等は、スカルプティングエディタ(sculpting editor)を用いて、ストロークベースのデザインを提供する。これは、2001年3月16日出願の米国特許出願第09/810,261号「System and Method for Sculpting Digital Models」(これは参照により本明細書に援用される)に記載されている3Dカービング(carving)の2D対応物である。ストローキングは、対話的に行うことが可能であり、あるいは、プログラム可能なデザインツールをエミュレートするためにスクリプティングすることも可能である。
Adobe Illustratorにあるものと同様のベジエ曲線操作ツールを用いた曲線ベースのデザインも使用可能である。曲線ベースのデザインは、アウトラインを距離フィールドに、および距離フィールドをアウトラインに変換する方法と組み合わせることにより、デザインパラダイム間のシームレスなインタフェースを提供することができる。
コンポーネントベースのデザインは、インプリシットな距離フィールドに対するCSGおよびブレンディングのオペレーションを使用する。これにより、コンポーネントを独立にデザインし、編集中またはレンダリング中のいずれかに組み合わせることができる。
また、本発明者等は、アナログおよびデジタルフォントマスタからADFを自動生成する方法も提供する。
コンポーネントベースのデザインの場合、本発明者等のフォントエディタによれば、quadtree操作を用いてADFを効率的に鏡映および回転することにより、グリフに共通の対称性をモデリングすることができる。さらなる特徴として、ADFのスケーリング、平行移動、および複数のADFを組み合わせるオペレーション(例えばCSGおよびブレンディング)がある。
ストロークベースのデザインの場合、本発明者等は、ペン先をエミュレートするための幾何プロファイルを備えたカービングツールを提供する。シミュレートされるペン先の方位およびサイズは、ストロークに沿って変化することが可能であり、それによりカリグラフィを模倣する。
図9は、ペンストロークから2次元距離フィールド931を生成する方法900を示している。ペンストロークの期間中のペン状態をサンプリングする。ペン状態は、ストローク中のペンの位置を含む。このペン状態は、方位およびジオメトリを含んでもよい。ペン状態サンプル901から、ペンストロークに沿ったペン状態の順序リスト911を生成する(910)。次に、ペン状態の順序リストから境界デスクリプタの集合921を生成する(920)。最後に、境界デスクリプタの集合921から2次元距離フィールド931を生成する(930)。
好ましい実施の形態では、境界デスクリプタ921は3次ベジエ曲線のような曲線である。
好ましい実施の形態では、曲線フィッティングプロセスを適用することにより、ペンのパスにG連続曲線の最小集合をユーザ指定の精度でフィッティングする。また、ツールのサイズおよび方位を用いて、このパスからオフセット点のさらに2つの順序リストを生成し、これらのオフセット点に曲線をフィッティングすることによりストロークアウトラインを生成する。効率的な処理のために、アウトライン曲線を空間階層として配置する。この階層から、タイル型ジェネレータを用いて2次元ADFを生成する。2001年3月16日出願の米国特許出願第09/810,983号(これは参照により本明細書に援用される)を参照されたい。
ベジエクリッピングを用いてアウトラインまでの最小距離を効率的に計算する。ユーザにとっての知覚的遅延なしに、ストロークはADFに変換される。曲線操作のために、本発明者等はベジエ曲線エディタを提供する。
図11に示すように、距離フィールドを境界デスクリプタ(例えばベジエ曲線)に変換することにより、3つのすべてのデザインパラダイムの間のシームレスなインタフェースを提供することも可能である。
好ましい実施の形態では、双二次ADFを使用する。その場合、この変換は、高速な近隣探索のためのADF階層を用いてリーフセルをトラバースし、ADFのゼロ値等高線(iso-contour)に沿った点の順序リストを生成してから、以下で図11を参照して説明するように曲線をフィッティングすることにより、境界デスクリプタを生成する。
境界デスクリプタ誤差が点のリストから計算される従来技術とは異なり、本発明者等は、距離フィールドから直接に境界デスクリプタ誤差を計算する。とがった隅に特別の注意を払う。本発明者等の手法は、ユーザが、気づき得る遅延なしにパラダイム間をシームレスに切り替えるのに十分なほど高速である。
図11は、2次元距離フィールド1101を境界デスクリプタの集合1131に変換する方法1100を示している。まず、2次元距離フィールド1101の等高線1111(例えば、ゼロ値またはあるオフセットの距離)を選択する(1110)。
次に、等高線1111および2次元距離フィールド1101から点の順序リスト1121を生成する(1120)。双二次の適応的にサンプリングされた距離フィールドを使用する本発明の好ましい実施の形態では、このステップは、近隣探索技法を用いて、適応的にサンプリングされた距離フィールド1101の隣接セルを順次訪れる。この探索技法は、適応的にサンプリングされた距離フィールド1101の空間階層を活用することにより、等高線1111に沿って次の近隣を効率的に突き止める。
もう1つの実施の形態では、ADF1101内の境界セルを選択し、各境界セルに順序付きの点の集合を割り当て、ADF1101の距離フィールドおよび勾配フィールドを用いてADF1101の等高線1111まで各点を移動させることによって、点の順序リスト1121を生成する(1120)。
次に、点の順序リスト1121をフィッティングするために、境界デスクリプタ1131の集合を初期化する(1130)。境界デスクリプタ1131は、点の順序リスト1121の隣接する点どうしをつないで、初期境界デスクリプタ1131を構成する線分の集合を形成することにより初期化される(1130)。
もう1つの実施の形態では、隅点を見つけ、点の順序リストを隅点で区切られるセグメントに細分割し、セグメント境界デスクリプタを求めて各セグメントをフィッティングすることによって、境界デスクリプタ1131の集合を初期化する(1130)。セグメント境界デスクリプタの合併が初期境界デスクリプタ1131となる。
隅点は、距離フィールドから求められる曲率を測ることによって見つけることができる。距離フィールドが双二次ADFである好ましい実施の形態では、曲率の大きい領域はADFにおける小さいセルで表現されるので、ADFセルサイズを用いることにより隅点を見つけることができる。
境界デスクリプタ1131を初期化(1130)した後、境界デスクリプタ1131を更新する(1140)。更新1140は、距離フィールドを再構成し、等高線からの境界デスクリプタの平均または最大偏差を測ることによって、各境界デスクリプタに対する誤差を求める。
境界デスクリプタ1131は、各境界デスクリプタに対する誤差が許容可能となるまで、または所定の時間が経過するまで、または境界デスクリプタ1131の集合の濃度が極小になるまで、更新される(1140)。
非デジタル形式で(すなわちアナログマスタとして)、またはビットマップのようなデジタル形式で(すなわちデジタルマスタとして)格納されている従来のフォントを取り込むため、本発明者等の編集システムは、高解像度2値ビットマップからADFを生成する方法を提供する。
まず、アナログマスタを走査することにより、目標ADF解像度の少なくとも4倍以上の解像度で2値デジタルマスタを生成する(例えば、現在のディスプレイ解像度およびディスプレイサイズには4096×4096デジタルマスタで十分である)。次に、厳密なユークリッド距離変換をビットマップに適用することにより、グリフを表現する規則的にサンプリングされた距離フィールドを生成する。
次に、この規則的にサンプリングされた距離フィールドから、タイル型ジェネレータを用いてADFを生成する。ビットマップからADFへの変換は、2GHzのPentium IVプロセッサでグリフ当たり約10秒を要する。
既に存在する従来技術のグリフのデスクリプタを、グリフが境界デスクリプタの集合を用いて記述される距離フィールドに変換するためには、図10に関連して説明した方法を適用する。
コンポーネントベースのグリフの生成およびレンダリング
本発明は、合成グリフを生成およびレンダリングする方法を提供する。コンポーネントすなわち要素をアウトラインデスクリプタまたはストローキングされた骨格によって表現するとともに、それらの要素をレンダリングの前に単一の形状デスクリプタに結合するか、または各要素をラスタライズしてアンチエイリアス強度またはカバレジ値を結合する従来技術の方法とは異なり、本発明は、合成グリフの要素を2次元距離フィールドとして表現するとともに、これらの2次元距離フィールドを用いて合成グリフをレンダリングする。
好ましい実施の形態において、レンダリングは、ピクセルのコンポーネントについて求められた距離を、2次元距離フィールドを用いて結合し、次に、結合した距離を該ピクセルの該コンポーネントのアンチエイリアス強度にマッピングする。アンチエイリアス強度またはカバレジ値ではなく距離値を結合することによって、本発明は、従来技術の呈する色アーティファクトおよびブレンディングアーティファクトを軽減する。
Perry他の従来の方法とは異なり、本発明は、レンダリングの前に合成グリフを表現するために結合距離フィールドを生成しない。その代わりに、本発明によれば、各要素から求められた距離を結合することによって、ピクセルのコンポーネントに関連する結合距離をレンダリング中にオンデマンドで求める。
図19Aおよび図19Bは、合成グリフ1911を生成するとともに、合成グリフ1911の領域1941をイメージ順にレンダリングし、レンダリングされた領域1943を生成する方法1900を示す。まず、合成グリフ1911を要素の集合1901によって定義する(1910)。次に、合成グリフ1911を2次元距離フィールドの集合1930の距離フィールド1931〜1933の合成によって表現するように、要素の集合1901を用いて2次元距離フィールドの集合1930を生成する(1920)。2次元距離フィールドの集合1930を用いて合成グリフ1911の領域1941をレンダリングする(1940)。
図19Cは、方法1900のレンダリング1940の好ましい一実施の形態を示す。領域1941内の各ピクセル1944は、1つまたは複数のコンポーネント1946、通常はRGBレンダリングのための赤、緑、および青コンポーネントを含むことができる。レンダリング1940により、領域1941内の各ピクセル1944の各コンポーネント1946についてアンチエイリアス強度1942を求める。
サンプル点の集合1951〜1953をピクセルコンポーネント1946に関連づけ(1950)、サンプル点の各集合と、2次元距離フィールドの集合1930における各距離フィールドとの間には1対1の対応関係がある。例えば、サンプル点の集合1951は距離フィールド1931に対応し、サンプル点の集合1953は距離フィールド1933に対応する。
次に、各距離フィールド1931〜1933について、対応するサンプル点の集合1951〜1953を用いて対応する距離を求め(1960)、対応する距離1961〜1963を生成する。例えば、距離フィールド1931について、対応するサンプル点の集合1951を用いて対応する距離1961を求める。
次に、対応する距離1961〜1963を結合して(1970)、結合距離1971を求める。次に、結合距離1971をマッピングして(1980)、ピクセル1944のコンポーネント1946のアンチエイリアス強度1942を求める。
図20Aおよび図20Bは、合成グリフ2006を生成するとともに合成グリフ2006の領域2036をオブジェクト順にレンダリングして、レンダリングされた領域2037を生成する方法2000を示す。まず、合成グリフ2006を要素の集合2001により定義する(2005)。次に、2次元距離フィールドの集合2020の距離フィールド2021〜2023の合成によって合成グリフ2006を表現するように、要素の集合2001を用いて2次元距離フィールドの集合2020を生成する(2010)。
2次元距離フィールドの集合2020の各距離フィールド2021〜2023をセルに分割する(2025)。ここで、各セルに、セル内の2次元距離フィールドを再構成する方法2031を関連づける(2030)。次に、2次元距離フィールドの集合2020を用いて合成グリフ2006の領域2036をレンダリングする。
図20Cおよび図20Dは、方法2000のレンダリング2035の好ましい一実施の形態を示す。合成グリフ2006の領域2036をレンダリングするために、領域2036からピクセルの集合2046を見つけ(2045)、ピクセルの集合2046の各ピクセルについてコンポーネントの集合2055を指定する(2050)。なお、ピクセルの集合2046の各ピクセルは、1つまたは複数のコンポーネント、通常はRGBレンダリングのための赤、緑、および青コンポーネントを含むことができる。
レンダリング2035により、ピクセルの集合2046の各ピクセルの各コンポーネント2056についてアンチエイリアス強度2061を求める。
2次元距離フィールドの集合2020の各2次元距離フィールド2021〜2023について、領域2036に関連する対応するセルの集合2041〜2043を識別する(2040)。例えば、距離フィールド2021についてセルの集合2041を識別し(2040)、距離フィールド2023についてセルの集合2043を識別する(2040)。
ピクセルの集合2046における各ピクセルの各コンポーネント2056について、まず、対応するセルの集合2041〜2043を用いて各距離フィールド2021〜2023の対応する距離2071〜2073を求める(2070)ことによって、アンチエイリアス強度2061を求める(2060)。例えば、コンポーネント2056について、セルの集合2041を用いて距離フィールド2021の対応する距離2071を求める(2070)。
次に、対応する距離2071〜2073を結合して(2075)、結合距離2076を求める。次に、結合距離2076をマッピングして(2080)、ピクセルのコンポーネント2056のアンチエイリアス強度2061を生成する。
方法1900の合成グリフ1911の要素1901および方法2000の合成グリフ2006の要素2001は多数の表現を有し得る。例えば、これらの要素は、ストローク、アウトライン、部首、ストローキングされた部首、パス、ならびにユーザが描いた曲線、ストローク、およびパス等の1次元形状デスクリプタおよび2次元形状デスクリプタによって表現することができる。要素は、距離マップ、適切にサンプリングされた距離フィールド、距離を生成する手続きおよび距離関数等の距離フィールドによって表現することができる。要素自体は、第1の形状デスクリプタと第2の形状デスクリプタのインプリシットなブレンドまたはオフセットデスクリプタを有する骨格等の合成体であり得る。
いくつかの手法を用いて要素1901を定義する(1910)とともに要素2001を定義することができる(2005)。例えば、定義は、自動形状検出、形状マッチング、および骨格化(skeltonization)等の手続きを用いて自動的に行うことができる。定義は、ユーザによって対話形式で、または要素を定義する手続きをユーザが誘導して半自動的に行うことができる。
定義1910および2005は、合成グリフを表現する距離フィールドから行うことができる。例えば、要素は、距離フィールド上で距離ベースの自動形状検出、形状マッチング、および骨格化を行うことによって定義することができる。さらに、定義は、まず要素の形状デスクリプタを求め、次に形状デスクリプタの距離関数を求めて要素を定義することができる。
2次元距離フィールドの集合1930および2020における距離フィールドは、数例を挙げると、適応的にサンプリングされた距離フィールド、メモリに格納された距離の集合として、または手続きにより表現することができる。
方法1900において対応する距離1961〜1963を結合する(1970)ため、および方法2000において対応する距離2071〜2073を結合する(2075)ために、いくつかの手法を使用することができる。例えば、内部が正で外部が負という符号規則を距離フィールドに用いて、結合は、対応する距離の最大値をとってオブジェクトの和集合を生成するか、または対応する距離の最小値をとってオブジェクトの共通集合を生成することができる。
他の結合方法は、数例を挙げると、差をとること、算術平均を行うこと、または対応する距離のインプリシットなブレンドを行うことを含む。インプリシットなブレンドを用いるとオブジェクト間の隅を丸めることができ、算術平均を用いると、レンダリングされる領域の高周波成分をさらに低減することによって、さらなるアンチエイリアシングを行うことができる。より一般的には、結合は、任意の算術演算または条件付き演算とすることができる。さらに、結合は、結合距離を求める手続きまたはテーブルを用いることができる。
キネティックタイポグラフィのための計算基盤
本発明者のADFグリフフレームワークの距離フィールドおよび空間階層の属性は、2Dオブジェクト(例えば、グリフ、企業ロゴ、または任意の2D形状)のコンピュータシミュレーションにも使用可能である。例えば、両方の属性を、衝突の検出および回避を行うため、互いにはまり込んでいるボディ間の力を計算するため、ならびにソフトボディ変形をモデリングするために使用可能である。
レベルセット法は、符号付き距離フィールドを使用する方法であり、融解や流体力学のようなさまざまな効果をモデリングするために使用可能である。ADFは、距離値および勾配の計算、すなわち上記で列挙した方法に必要な2つの重要な計算のために効率的に問い合わせることが可能な、コンパクトでインプリシットな表現である。
これに対して、運動または変形しているアウトラインから距離値および勾配を求めることは、リアルタイム対話のためのソフトウェアでは実際的でない。Hoff等「Fast and Simple 2D Geometric Proximity Queries Using Graphics Hardware」(Proc. Interactive 3D Graphics'01, 2001)を参照されたい。Hoff等は、グラフィックスハードウェアを用いることにより、線分で近似された曲線を変形するために、規則的にサンプリングされた2D距離フィールドをオンザフライで生成している。
距離フィールドのインプリシットな性質は、複雑なトポロジー変化(例えば、アウトラインベースのフォントでモデリングすることが困難な面オフセット)を可能にする。また、距離フィールドは、動画化オブジェクトの非フォトリアリスティックなレンダリングを提供することにより芸術的効果を加えるためにも使用可能である。
以上、本発明について、好ましい実施の形態を例として説明したが、本発明の精神および範囲内で種々の他の適応および変更をなし得ることは言うまでもない。したがって、添付の請求項の目的は、本発明の真の精神および範囲内に入るすべてのそのような変形および変更を包含することである。
従来技術によるグリフの距離フィールド表現のブロック図である。 従来技術によるグリフの距離フィールド表現のブロック図である。 本発明の好ましい一実施の形態による距離フィールド表現のブロック図である。 本発明の好ましい一実施の形態による距離フィールド表現のブロック図である。 本発明の好ましい一実施の形態による距離フィールドの双二次セルのブロック図である。 本発明によるイメージ順にオブジェクトをアンチエイリアシングする方法の流れ図である。 本発明によって使用される線形フィルタのグラフである。 ピクセルのコンポーネント付近のサンプルの図である。 ピクセルのコンポーネント付近のサンプルの図である。 ピクセルのコンポーネント付近のサンプルの図である。 本発明によるオブジェクト順にオブジェクトをアンチエイリアシングする方法の流れ図である。 本発明による距離ベースの自動ヒンティング方法の流れ図である。 本発明によるペンストロークを距離フィールドに変換する方法の流れ図である。 本発明による2次元オブジェクトを距離フィールドに変換する方法の流れ図である。 本発明による距離フィールドを境界デスクリプタに変換する方法の流れ図である。 本発明によるオブジェクトを動画化する方法の流れ図である。 本発明による2次元オブジェクトの隅を包囲するセル内の2次元距離フィールドを生成する方法の流れ図である。 本発明による、オブジェクトの集合をイメージ順にアンチエイリアシングする方法のフロー図である。 本発明による、オブジェクトの集合をイメージ順にアンチエイリアシングする方法のフロー図である。 本発明による、オブジェクトの集合をオブジェクト順にアンチエイリアシングする方法のフロー図である。 本発明による、オブジェクトの集合をオブジェクト順にアンチエイリアシングする方法のフロー図である。 本発明による、オブジェクトの集合をオブジェクト順にアンチエイリアシングする方法のフロー図である。 本発明による、テクスチャマッピングを用いてセルベースの距離フィールドをレンダリングする方法のフロー図である。 本発明による、テクスチャマッピングを用いてセルベースの距離フィールドをレンダリングする方法のフロー図である。 本発明による、テクスチャマッピングを用いてセルベースの距離フィールドをレンダリングする方法のフロー図である。 本発明によるレンダリング方法のフロー図である。 本発明による、グリフの集合を植字する方法のフロー図である。 本発明による、グリフの集合を植字する方法のフロー図である。 本発明による、グリフの集合を植字する方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をイメージ順にレンダリングする方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をイメージ順にレンダリングする方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をイメージ順にレンダリングする方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。 本発明による、合成グリフを生成して合成グリフの領域をオブジェクト順にレンダリングする方法のフロー図である。 本発明によるコーナセルの図である。 本発明によるコーナセルの図である。 本発明によるコーナセルの図である。 本発明によるコーナセルの図である。 本発明による2セグメントセルの図である。 本発明による2セグメントセルの図である。 本発明による2セグメントセルの図である。 本発明による、2次元オブジェクトに関連するセル内の2次元距離フィールドを生成する方法のフロー図である。 領域内のオブジェクトの一部の図である。 本発明による、領域を分割する3つのセル構成のうちの1つの図である。 本発明による、領域を分割する3つのセル構成のうちの1つの図である。 本発明による、領域を分割する3つのセル構成のうちの1つの図である。 本発明による、オブジェクトを表現する形状デスクリプタの領域の距離フィールドの最適な構成を生成する方法のフロー図である。

Claims (18)

  1. 合成グリフの領域をレンダリングする方法であって、
    要素の集合によって合成グリフを定義すること、
    前記要素の集合を用いて2次元距離フィールドの集合を生成しメモリに格納することであって、該2次元距離フィールドの集合の合成が前記合成グリフを表現すること、及び
    前記メモリに格納された前記2次元距離フィールドの集合を用いて前記合成グリフの領域をレンダリングすること
    を含み、
    前記レンダリングすることは、前記領域内の各ピクセルの各コンポーネントについて、該ピクセルの該コンポーネントのアンチエイリアス強度を求めることであり、
    前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めることは、
    前記2次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づけること、
    前記2次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求めること、
    前記対応する距離を結合することによって、結合距離を求めること、及び
    前記結合距離から前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めること
    をさらに含む、合成グリフの領域をレンダリングする方法。
  2. 前記要素の集合の特定の要素は、適応的にサンプリングされた距離フィールドである、請求項1に記載の方法。
  3. ピクセルのコンポーネントのアンチエイリアス強度を求める方法であって、
    オブジェクトにつき1つの距離フィールドがある、オブジェクトの集合を2次元距離フィールドの集合で表現しメモリに格納すること、
    前記メモリに格納された前記2次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づけること、
    前記2次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求めること、
    結合距離を求めるために、前記対応する距離を結合すること、及び
    前記結合距離から前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めること
    を含む、ピクセルのコンポーネントのアンチエイリアス強度を求める方法。
  4. ピクセルのコンポーネントのアンチエイリアス強度を求める装置であって、
    各オブジェクトにつき1つの距離フィールドがある、オブジェクトの集合を2次元距離フィールドの集合で表現する手段と、
    前記2次元距離フィールドの集合の各距離フィールドについて、対応するサンプル点の集合を前記ピクセルの前記コンポーネントに関連づける手段と、
    前記2次元距離フィールドの集合の各距離フィールドについて、前記対応するサンプル点の集合を用いて対応する距離を求める手段と、
    前記対応する距離を結合することによって、結合距離を求める手段と、
    前記結合距離から前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求める手段と、
    前記ピクセルの前記コンポーネントについて求められた前記アンチエイリアス強度を表示するディスプレイデバイスと
    を備える、ピクセルのコンポーネントのアンチエイリアス強度を求める装置。
  5. 2次元オブジェクトに関連するセル内で2次元距離フィールドを生成する方法であって、
    前記2次元オブジェクトについて境界デスクリプタの集合を求めること、
    前記境界デスクリプタの集合を、前記境界デスクリプタの集合の特徴の集合によって画定される、セグメントの集合に分割すること、
    前記セルに関連する前記セグメントの集合において第1セグメント及び第2セグメントを識別すること、
    前記第1セグメントを用いて第1の距離値の集合を指定すること、
    前記第2セグメントを用いて第2の距離値の集合を指定すること、
    前記第1の距離値の集合及び前記第2の距離値の集合を用いて前記セル内で前記距離フィールドを再構成する再構成法を定義すること、及び
    前記再構成法を適用することによる前記セル内での前記距離フィールドの再構成を可能にするために、前記セルについて、前記第1の距離値の集合、前記第2の距離値の集合、及び前記再構成法をメモリに格納すること
    を含み、
    前記特徴の集合の特定の特徴は、前記境界デスクリプタの集合の蓄積された曲率の値に関連する点であり、
    前記再構成法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    2次元オブジェクトに関連するセル内で2次元距離フィールドを生成する方法。
  6. 前記識別することは、
    前記セルからの前記第1セグメントの距離に応じて前記セグメントの集合から前記第1セグメントを選択すること、及び
    前記セルからの前記第2セグメントの距離に応じて前記セグメントの集合から前記第2のセグメントを選択すること
    をさらに含む、請求項に記載の方法。
  7. オブジェクトを表現する形状デスクリプタの領域の距離フィールドを生成する方法であって、前記距離フィールドはセルの集合を含み、
    セルタイプの集合を定義すること、
    前記領域の、各セルが前記セルタイプの集合によって定義される特定のセルタイプと前記セル内で前記距離フィールドを再構成する方法とを有する、セルの集合の構成を生成すること、
    前記領域の前記セルの集合の最適な構成に達するまで、前記形状デスクリプタ、前記領域、及び前記セルタイプの集合に基づいて前記セルの集合の前記構成を修正すること、
    前記オブジェクトを表現する前記形状デスクリプタの前記領域の前記距離フィールドを生成するために、前記セルの集合の前記最適な構成をメモリに格納すること
    を含み、
    ここで、前記最適な構成とは、距離フィールドのサイズを最小にすること、距離フィールドをレンダリングするために必要な時間を最短にすること、距離フィールドを生成するための時間を最短にすること、距離フィールドのレンダリングの品質メトリックを最大にすること、セル数を最小にすること、および、距離フィールドの精度を最高にすることにより、セルベースの距離フィールド表現の所望の特性の最適化を図った構成を意味し、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    オブジェクトを表現する形状デスクリプタの領域の距離フィールドを生成する方法。
  8. 前記セルタイプの集合の特定のセルタイプは2セグメントセルタイプである、請求項に記載の方法。
  9. 前記セルタイプの集合の特定のセルタイプは隅セルタイプである、請求項に記載の方法。
  10. アンチエイリアシング方法であって、
    オブジェクトにつき1つの距離フィールドがある、オブジェクトの集合を2次元距離フィールドの集合で表現しメモリに格納すること、
    前記メモリに格納された各2次元距離フィールドをセルに分割すること、
    各セルに対し、前記セル内で対応する2次元距離フィールドを再構成する方法を関連づけること、
    前記2次元距離フィールドの集合の各2次元距離フィールドについて、前記2次元距離フィールドの、前記オブジェクトの集合の領域に関連する、セルの集合を識別すること、
    前記領域に関連するピクセルの集合を位置特定すること、
    前記ピクセルの集合の各ピクセルについてコンポーネントの集合を指定すること、及び
    前記ピクセルの集合の各ピクセルの各コンポーネントについてアンチエイリアス強度を求めること
    を含み、
    前記求めることは、
    前記2次元距離フィールドの集合の各2次元距離フィールドについて、対応するセルの集合を用いて前記ピクセルの前記コンポーネントの対応する距離を求めること、
    結合距離を求めるために、前記対応する距離を結合すること、及び
    前記結合距離から前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めること
    をさらに含み、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    アンチエイリアシング方法。
  11. 各オブジェクトにつき1つの距離フィールドがある、オブジェクトの集合を2次元距離フィールドの集合で表現する手段と、
    各2次元距離フィールドをセルに分割する手段と、
    各セルに対し、前記セル内の対応する2次元距離フィールドを再構成する方法を関連づける手段と、
    前記2次元距離フィールドの集合の各2次元距離フィールドについて、前記2次元距離フィールドの、前記オブジェクトの集合の領域に関連する、セルの集合を識別する手段と、
    前記領域に関連するピクセルの集合を位置特定する手段と、
    前記ピクセルの集合の各ピクセルについてコンポーネントの集合を指定する手段と、
    前記ピクセルの集合の各ピクセルの各コンポーネントについてアンチエイリアス強度を求める手段と
    を備え、前記求めることは、
    前記2次元距離フィールドの集合の各2次元距離フィールドについて、対応するセルの集合を用いて前記ピクセルの前記コンポーネントの対応する距離を求める手段と、
    結合距離を求めるために、前記対応する距離を結合する手段と、
    前記結合距離から前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求める手段と、
    前記ピクセルの前記コンポーネントについて求められた前記アンチエイリアス強度を表示するディスプレイデバイスと
    をさらに備え、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    アンチエイリアシング装置。
  12. 合成グリフの領域をレンダリングする方法であって、
    要素の集合によって合成グリフを定義すること、
    前記要素の集合を用いて2次元距離フィールドの集合を生成しメモリに格納することであって、前記2次元距離フィールドの集合の各2次元距離フィールドはセルに分割され、各セルは、前記セル内で対応する2次元距離フィールドを再構成する方法を含み、前記2次元距離フィールドの集合の合成が前記合成グリフを表現すること、及び
    前記メモリに格納された前記2次元距離フィールドの集合を用いて前記合成グリフの領域をレンダリングすること
    を含み、
    前記レンダリングすることは、
    前記2次元距離フィールドの集合の各2次元距離フィールドについて、該2次元距離フィールドのセルの集合を識別することであって、前記セルの集合は前記合成グリフの前記領域に関連すること、
    前記領域に関連するピクセルの集合を位置特定すること、
    前記ピクセルの集合の各ピクセルについてコンポーネントの集合を指定すること、及び
    前記ピクセルの集合の各ピクセルの各コンポーネントについてアンチエイリアス強度を求めること
    をさらに含み、
    前記求めることは、
    前記2次元距離フィールドの集合の各2次元距離フィールドについて、対応するセルの集合から前記ピクセルの前記コンポーネントの対応する距離を求めること、
    前記対応する距離を結合することによって、結合距離を求めること、及び
    前記結合距離から前記ピクセルの前記コンポーネントの前記アンチエイリアス強度を求めること
    をさらに含み、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    合成グリフの領域をレンダリングする方法。
  13. 前記定義することは、前記合成グリフの形状デスクリプタの距離フィールドから前記要素の集合を求める、請求項12に記載の方法。
  14. グリフの集合を植字する方法であって、
    前記グリフの集合から現在のグリフを選択すること、
    前記現在のグリフの現在の位置を選択すること、及び
    前記グリフの集合から選択される、次のグリフの次の位置を決定すること
    を含み、
    前記選択は、終了条件が満たされるまで続き、
    前記決定することは、
    前記現在のグリフを2次元距離フィールドとして表現しメモリに格納すること、
    前記現在の位置、前記現在のグリフの送り幅、及び前記メモリに格納された前記2次元距離フィールドのアライメントを用いて前記次の位置を決定すること、
    前記現在のグリフが前記次のグリフになるように更新すること、及び
    前記現在の位置が前記次の位置になるように更新すること
    をさらに含む、グリフの集合を植字する方法。
  15. グリフの集合を植字する方法であって、
    前記グリフの集合から現在のグリフを選択すること、
    前記現在のグリフの現在の位置を選択すること、及び
    前記グリフの集合から選択される、次のグリフの次の位置を決定すること
    を含み、前記選択は、終了条件が満たされるまで続き、
    前記決定することは、
    前記現在のグリフを2次元距離フィールドとして表現しメモリに格納すること、
    前記メモリに格納された前記2次元距離フィールドの等高線を選択すること、
    前記現在の位置、前記現在のグリフの送り幅、及び前記選択された等高線を用いて前記次の位置を決定すること、
    前記現在のグリフが前記次のグリフになるように更新すること、及び
    前記現在の位置が前記次の位置になるように更新すること
    をさらに含む、グリフの集合を植字する方法。
  16. オブジェクトを表現する距離フィールドの領域をレンダリングする方法であって、前記距離フィールドはセルの集合に分割されメモリに格納され、各セルは、距離サンプルの集合と、前記距離サンプルを用いて前記セル内で前記距離フィールドを再構成する方法とを含み、
    前記領域をレンダリングするために、前記メモリに格納された前記距離フィールドの前記セルの集合からソースセルの集合を選択すること、
    前記ソースセルの集合の各ソースセルをワールド座標系の、各幾何学的要素が対応するソースセルの距離サンプルを含むテクスチャマップに関連する、幾何学的要素として表現すること、
    各幾何学的要素を前記ワールド座標系からピクセル座標系に変換すること、
    前記幾何学的要素に関連する各ピクセルの各コンポーネントの距離を求めるために、前記距離サンプルを用いて、各幾何学的要素をテクスチャマッピングすること、及び
    前記オブジェクトを表現する前記距離フィールドの前記領域をレンダリングするために、各ピクセルの各コンポーネントの前記距離から前記ピクセルの前記コンポーネントのアンチエイリアス強度を求めること
    を含み、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    オブジェクトを表現する距離フィールドの領域をレンダリングする方法。
  17. 対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする方法であって、前記距離フィールドの集合の各距離フィールドはセルの集合に分割されメモリに格納され、各セルは、距離サンプルの集合と、前記距離サンプルを用いて前記セル内で対応する距離フィールドを再構成する方法とを含み、
    前記領域をレンダリングするために、前記メモリに格納された前記距離フィールドの集合の各距離フィールドについて、前記距離フィールドの前記セルの集合からソースセルの集合を選択すること、
    前記距離フィールドの集合の各距離フィールドについて、対応するソースセルの集合の各ソースセルをワールド座標系の、各幾何学的要素が前記対応するソースセルの距離サンプルを含むテクスチャマップに関連する、幾何学的要素として表現すること、
    各幾何学的要素を前記ワールド座標系からピクセル座標系に変換すること、
    前記幾何学的要素に関連する各ピクセルの各コンポーネントの距離を求めるために、前記距離サンプルを用いて、各幾何学的要素をテクスチャマッピングすること、
    結合距離を求めるために、各ピクセルの各コンポーネントの前記距離を結合すること、及び
    前記対応するオブジェクトの集合を表現する前記距離フィールドの集合の前記領域をレンダリングするために、各ピクセルの各コンポーネントの前記結合距離から前記ピクセルの前記コンポーネントのアンチエイリアス強度を求めること
    を含み、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする方法。
  18. 対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする装置であって、前記距離フィールドの集合の各距離フィールドはセルの集合に分割され、各セルは、距離サンプルの集合と、前記距離サンプルを用いて前記セル内で対応する距離フィールドを再構成する方法とを含み、
    前記装置は、
    前記領域をレンダリングするために、前記距離フィールドの集合の各距離フィールドについて、前記距離フィールドの前記セルの集合からソースセルの集合を選択する手段と、
    前記距離フィールドの集合の各距離フィールドについて、対応するソースセルの集合の各ソースセルをワールド座標系の、各幾何学的要素が前記対応するソースセルの距離サンプルを含むテクスチャマップに関連する、幾何学的要素として表現する手段と、
    第1のグラフィックスハードウェアコンポーネントを用いて、各幾何学的要素を前記ワールド座標系からピクセル座標系に変換する手段と、
    前記幾何学的要素に関連する各ピクセルの各コンポーネントの距離を求めるために、第2のグラフィックスハードウェアコンポーネント及び前記距離サンプルを用いて、各幾何学的要素をテクスチャマッピングする手段と、
    結合距離を求めるために、第3のグラフィックスハードウェアコンポーネントを用いて、各ピクセルの各コンポーネントの前記距離を結合する手段と、
    前記対応するオブジェクトの集合を表現する前記距離フィールドの集合の前記領域をレンダリングするために、第4のグラフィックスハードウェアコンポーネントを用いて、各ピクセルの各コンポーネントの前記結合距離から前記ピクセルの前記コンポーネントのアンチエイリアス強度を求める手段と
    を備え、
    前記再構成する方法は、前記セルに関連するサンプル点におけるサンプル距離を求め、
    前記求めることは、
    前記第1の距離値の集合から第1の距離を求めること、
    前記第2の距離値の集合から第2の距離を求めること、及び
    前記サンプル距離を再構成するために、前記第1の距離と前記第2の距離を結合すること
    を含み、
    前記結合することは、前記第1の距離と前記第2の距離の最小値を選択する
    対応するオブジェクトの集合を表現する距離フィールドの集合の領域をレンダリングする装置。
JP2006529403A 2004-03-16 2005-03-14 合成グリフの領域をレンダリングする方法 Active JP4762901B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/802,233 US7006108B2 (en) 2003-03-25 2004-03-16 Method for generating a composite glyph and rendering a region of the composite glyph in image-order
US10/802,233 2004-03-16
PCT/JP2005/004889 WO2005088550A1 (en) 2004-03-16 2005-03-14 Method for rendering a region of a composite glyph

Publications (2)

Publication Number Publication Date
JP2007529788A JP2007529788A (ja) 2007-10-25
JP4762901B2 true JP4762901B2 (ja) 2011-08-31

Family

ID=34962345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006529403A Active JP4762901B2 (ja) 2004-03-16 2005-03-14 合成グリフの領域をレンダリングする方法

Country Status (5)

Country Link
US (1) US7006108B2 (ja)
EP (3) EP2043048B1 (ja)
JP (1) JP4762901B2 (ja)
CN (2) CN101702309B (ja)
WO (1) WO2005088550A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7916144B2 (en) * 2005-07-13 2011-03-29 Siemens Medical Solutions Usa, Inc. High speed image reconstruction for k-space trajectory data using graphic processing unit (GPU)
EP2230642B1 (en) * 2008-01-15 2022-05-18 Mitsubishi Electric Corporation Graphic drawing device and graphic drawing method
JP5183286B2 (ja) * 2008-04-15 2013-04-17 三菱電機株式会社 文字表示装置
US20100013854A1 (en) * 2008-07-18 2010-01-21 Microsoft Corporation Gpu bezier path rasterization
US8207984B2 (en) * 2008-07-21 2012-06-26 Matthew John Kuhns Method and system for typesetting with multiple-color characters using layer fonts
US8427509B2 (en) * 2008-12-31 2013-04-23 Mitsubishi Electric Research Laboratories, Inc. Method for embedding messages into documents using distance fields
US8269776B2 (en) * 2009-03-31 2012-09-18 Mitsubishi Electric Research Laboratories, Inc. Method for generating a distance field of an object represented by stylized strokes
CN101807290B (zh) * 2010-03-26 2011-12-07 浙江大学 二维卡通角色形变方法
JP5323251B2 (ja) * 2010-03-30 2013-10-23 三菱電機株式会社 アニメーション表示装置
US8947438B2 (en) 2011-08-01 2015-02-03 Microsoft Corporation Reducing font instructions
US9245361B2 (en) 2011-09-01 2016-01-26 Microsoft Technology Licensing, Llc Consolidating glyphs of a font
CN103177709B (zh) * 2011-12-20 2015-03-11 北大方正集团有限公司 字符显示方法和装置
WO2014174569A1 (ja) * 2013-04-22 2014-10-30 三菱電機株式会社 フォント描画装置
US20150062140A1 (en) * 2013-08-29 2015-03-05 Monotype Imaging Inc. Dynamically Adjustable Distance Fields for Adaptive Rendering
KR102178258B1 (ko) * 2013-09-27 2020-11-12 삼성전자주식회사 디스플레이 장치 및 이의 글자 효과 제공 방법
WO2015138820A1 (en) * 2014-03-12 2015-09-17 ClearMark Systems, LLC System and method for authentication
CN106683189B (zh) * 2016-11-29 2019-09-27 浙江科澜信息技术有限公司 一种在三维场景中渲染文字的方法
US11030937B2 (en) 2019-04-24 2021-06-08 Glenfly Technology Co., Ltd. Sub-pixel rendering method and device
CN111105500B (zh) * 2019-10-31 2023-09-22 青岛小鸟看看科技有限公司 虚拟现实场景下的安全区域绘制方法、装置和虚拟现实系统
CN114820836A (zh) * 2021-01-28 2022-07-29 北京字跳网络技术有限公司 有向距离场图像、文字效果图像生成方法、设备及介质
CN114820834A (zh) * 2021-01-28 2022-07-29 北京字跳网络技术有限公司 一种效果处理方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149355A (ja) * 1997-09-03 1999-06-02 Canon Inc 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム
JPH11242473A (ja) * 1997-09-15 1999-09-07 Canon Inf Syst Res Australia Pty Ltd リッチャテキスト生成のためのフォントの構造及び作成ツール
JPH11306366A (ja) * 1998-04-22 1999-11-05 Sony Corp グラフィック演算装置およびその方法
JP2001052160A (ja) * 1999-07-30 2001-02-23 Mitsubishi Electric Inf Technol Center America Inc ライン・サンプルによるアンチエイリアシング方法
JP2002169533A (ja) * 2000-12-04 2002-06-14 Ricoh Co Ltd フォントの圧縮方法
JP2002324243A (ja) * 2001-03-16 2002-11-08 Mitsubishi Electric Research Laboratories Inc 複数のグラフィックス・オブジェクトのモデリング方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0528243A (ja) * 1991-07-24 1993-02-05 Toshiba Corp 画像作成装置
US5542036A (en) * 1994-07-05 1996-07-30 General Electric Company Implicit modeling of swept volumes and swept surfaces
US5742277A (en) * 1995-10-06 1998-04-21 Silicon Graphics, Inc. Antialiasing of silhouette edges
JPH09134157A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法
US5875040A (en) * 1995-12-04 1999-02-23 Eastman Kodak Company Gradient based method for providing values for unknown pixels in a digital image
US6329977B1 (en) * 1998-03-10 2001-12-11 Compaq Computer Corporation Pre-filtered antialiased lines using distance functions
US6504545B1 (en) * 1998-03-27 2003-01-07 Canon Kabushiki Kaisha Animated font characters
US6188385B1 (en) * 1998-10-07 2001-02-13 Microsoft Corporation Method and apparatus for displaying images such as text
US6721446B1 (en) * 1999-04-26 2004-04-13 Adobe Systems Incorporated Identifying intrinsic pixel colors in a region of uncertain pixels
US6282327B1 (en) * 1999-07-30 2001-08-28 Microsoft Corporation Maintaining advance widths of existing characters that have been resolution enhanced
US6396492B1 (en) * 1999-08-06 2002-05-28 Mitsubishi Electric Research Laboratories, Inc Detail-directed hierarchical distance fields
US6603484B1 (en) * 1999-08-06 2003-08-05 Mitsubishi Electric Research Laboratories, Inc. Sculpting objects using detail-directed hierarchical distance fields
US7113617B2 (en) * 2000-12-12 2006-09-26 Hewlett-Packard Development Company, L.P. Method of computing sub-pixel Euclidean distance maps
US7002570B2 (en) * 2001-03-16 2006-02-21 Mitsubishi Electric Research Laboratories, Inc. System and method for generating adaptively sampled distance fields with bounded distance trees
US7184066B2 (en) 2001-05-09 2007-02-27 Clairvoyante, Inc Methods and systems for sub-pixel rendering with adaptive filtering
JP2003295047A (ja) * 2002-04-05 2003-10-15 Canon Inc 撮像装置および撮像システム
US6982724B2 (en) * 2003-03-25 2006-01-03 Mitsubishi Electric Research Labs, Inc. Method for antialiasing an object represented as a two-dimensional distance field in object-order
US6933952B2 (en) * 2003-03-25 2005-08-23 Mitsubishi Electric Research Labs, Inc. Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order
US7002598B2 (en) 2003-03-25 2006-02-21 Mitsubishi Electric Research Labs., Inc. Method for generating a composite glyph and rendering a region of the composite glyph in object-order

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149355A (ja) * 1997-09-03 1999-06-02 Canon Inc 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム
JPH11242473A (ja) * 1997-09-15 1999-09-07 Canon Inf Syst Res Australia Pty Ltd リッチャテキスト生成のためのフォントの構造及び作成ツール
JPH11306366A (ja) * 1998-04-22 1999-11-05 Sony Corp グラフィック演算装置およびその方法
JP2001052160A (ja) * 1999-07-30 2001-02-23 Mitsubishi Electric Inf Technol Center America Inc ライン・サンプルによるアンチエイリアシング方法
JP2002169533A (ja) * 2000-12-04 2002-06-14 Ricoh Co Ltd フォントの圧縮方法
JP2002324243A (ja) * 2001-03-16 2002-11-08 Mitsubishi Electric Research Laboratories Inc 複数のグラフィックス・オブジェクトのモデリング方法

Also Published As

Publication number Publication date
EP1725988A1 (en) 2006-11-29
EP2043048B1 (en) 2014-09-17
WO2005088550A1 (en) 2005-09-22
EP2031563A2 (en) 2009-03-04
EP2031563A3 (en) 2009-08-05
EP2031563B1 (en) 2014-11-12
EP2043048A3 (en) 2009-08-05
US20040189663A1 (en) 2004-09-30
US7006108B2 (en) 2006-02-28
EP2043048A2 (en) 2009-04-01
CN1998023A (zh) 2007-07-11
CN101702309A (zh) 2010-05-05
CN101702309B (zh) 2013-04-17
JP2007529788A (ja) 2007-10-25

Similar Documents

Publication Publication Date Title
JP4762901B2 (ja) 合成グリフの領域をレンダリングする方法
US6917369B2 (en) Method and apparatus for rendering cell-based distance fields using texture mapping
US7002598B2 (en) Method for generating a composite glyph and rendering a region of the composite glyph in object-order
US7006095B2 (en) Method for typesetting a set glyphs represented as a set of two dimensional distance fields
US6982724B2 (en) Method for antialiasing an object represented as a two-dimensional distance field in object-order
US7042458B2 (en) Methods for generating an adaptively sampled distance field of an object with specialized cells
JP4869920B2 (ja) オブジェクトを表現する2次元距離フィールドからピクセルのコンポーネントのアンチエイリアス強度を求める方法及び装置
WO2005088555A1 (en) Method and apparatus for antialiasing
WO2005088536A1 (en) Method, apparatus and system for rendering using a cache
WO2005088554A1 (en) Method and apparatus for determining an antialiased intensity of a component of a pixel
US7176926B2 (en) Method for animating two-dimensional objects
JP2006521628A (ja) 2次元オブジェクトの隅に関連するセル内に2次元距離フィールドを生成する方法
US7106332B2 (en) Method for converting two-dimensional pen strokes to distance fields
JP2006521624A (ja) 2次元オブジェクトを2次元距離フィールドに変換する方法
JP2006521625A (ja) 2次元距離フィールドを境界デスクリプタの集合に変換する方法
FIELD US PATENT DOCUMENTS

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110607

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110608

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4762901

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250