JP2010170097A - 文字を画像のサンプリンググリッドにアラインする方法 - Google Patents

文字を画像のサンプリンググリッドにアラインする方法 Download PDF

Info

Publication number
JP2010170097A
JP2010170097A JP2009267840A JP2009267840A JP2010170097A JP 2010170097 A JP2010170097 A JP 2010170097A JP 2009267840 A JP2009267840 A JP 2009267840A JP 2009267840 A JP2009267840 A JP 2009267840A JP 2010170097 A JP2010170097 A JP 2010170097A
Authority
JP
Japan
Prior art keywords
segment
width
hinted
coordinates
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009267840A
Other languages
English (en)
Other versions
JP5523070B2 (ja
Inventor
N Perry Ronald
ロナルド・エヌ・ペリー
Eric Chan
エリック・チャン
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 JP2010170097A publication Critical patent/JP2010170097A/ja
Application granted granted Critical
Publication of JP5523070B2 publication Critical patent/JP5523070B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/246Generation of individual character patterns of ideographic or arabic-like characters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

【課題】レンダリングする目的でサンプリンググリッドにストロークを自動的にアラインする方法を提供する。
【解決手段】文字のスケルトンをトレースするオリジナルの均一幅の経路が、オリジナルの座標を有する入力ペンコマンドによって指定され、オリジナルの経路の幅が最も近い整数に四捨五入され、ヒンティングされた幅が生成される。オリジナルの幅が、入力ペンコマンドを使用してトラバースされ、経路のセグメントが識別され、セグメントはアレイに格納される。アレイの各セグメントについて、ヒンティングされた座標が求められ、アレイがソートされ、非循環有向グラフ(DAG)が構成される。セグメントがサンプリンググリッドにフィッティングされ、その結果が出力ペンコマンドに格納され、それによって、文字のスケルトンがサンプリンググリッドにアラインされる。
【選択図】図2B

Description

この発明は、包括的には、文字をレンダリングすることに関し、より詳細には、均一幅ストロークを有する文字をグリッドアライン(grid align)することに関する。
グリッドフィッティング
文字又はグリフを表示及び印刷のためにレンダリングすることは、特に文字が複雑である場合に問題が多い。これは、中国語、日本語、及び韓国語(CJK)の文字セットに特に当てはまる。これについては、図1Aを参照されたい。図示する文字は、均一幅ストロークを有する。この発明の目的は、レンダリングする目的でサンプリンググリッド(例えば、ピクセルグリッド又はサブピクセルグリッド)にストロークを自動的にアラインすることである。
ヒント
ヒントは、各グリフと共に格納される一組のルール又は手順であり、レンダリング中にそのグリフをどのように修正して、対称性、ストロークの太さ、及びタイプフェースのすべてのグリフにわたる均一な外観のような特徴を保つべきかを指定する。ヒンティングには、文字のエッジをサンプリンググリッドにアラインすることが必要とされる。アンチエイリアシングを有しようが有しまいが、小さなスクリーンサイズでは、ヒンティングは、人間の読み手にとって明瞭で読みやすいテキストを生成するのに極めて重要である。ヒンティングは、手動、自動、又はそれらの組み合わせとすることができる。
手動ヒンティングは、多くの労力を必要とし且つ費用を要する。例えば、日本語又は中国語のフォントは1万を超えるグリフを有する可能性があり、これらのフォントの良好にヒンティングされた(well-hinted)タイプフェースを開発するには、数年を要する可能性がある。ヒンティングは、本文活字(body type)のレンダリング品質を改善することに重点を置いているので、ヒントは、任意の経路に沿って配置される活字及びアニメ化された活字には有効ではない傾向がある。
自動ヒンティングについての現在の方法は、ラテン語のような単純なスクリプトについては妥当な結果を生み出すが、中国語及び日本語のような複雑なスクリプトについては不十分である。その結果、複雑なグリフを有効に取り扱うことができる自動ヒンティング方法が必要とされている。自動ヒンティングでは、労働コストが省かれ、フォントファイルに格納される手動ヒントがもはや必要とされないので、フォントサイズが大幅に削減される。
この発明の目的は、レンダリングする目的でサンプリンググリッドにストロークを自動的にアラインすることである。
方法は、文字を画像のサンプリンググリッドにアラインする。文字のスケルトンをトレースするオリジナルの均一幅の経路が、オリジナルの座標を有する入力ペンコマンドによって指定される。
オリジナルの経路の幅が最も近い整数に四捨五入され、ヒンティングされた幅が生成される。オリジナルの経路が、入力ペンコマンドを使用してトラバースされ、経路のセグメントが識別される。セグメントはアレイに格納される。
アレイの各セグメントについて、ヒンティングされた座標が求められる。アレイがソートされ、非循環有向グラフ(DAG)が構成される。セグメント間の衝突が、ソートされたアレイ、DAG,及びヒンティングされた経路の幅を使用して解消される。セグメントがサンプリンググリッドにフィッティングされ、その結果が、ヒンティングされた座標を有する出力ペンコマンドに格納され、文字のスケルトンが整数サンプリンググリッドにアラインされる。ヒンティングされた経路の幅が偶整数を有する場合、各出力ペンコマンドの各ヒンティングされた座標に0.5が加えられて、文字のスケルトンが半整数サンプリンググリッドにアラインされる。
この発明の実施の形態に従ってアラインされる均一幅ストロークを有する文字の図である。 文字の相対的アラインメントを有するサンプリンググリッドの概略図である。 この発明の実施の形態に従ってアラインされる文字を示す。 この発明の実施の形態による均一幅のストロークベースの文字をアラインする方法のフロー図である。 この発明の実施の形態による均一幅のストロークベースの文字をアラインする方法のフロー図である。 四捨五入する前及び四捨五入した後のセグメントアラインメントの図である。 四捨五入する前及び四捨五入した後、並びに衝突解消後のセグメントアラインメントの図である。 この発明の実施の形態に従ってアラインされるスタイル化されたストローク文字の概略図である。
アラインメント及びグリッドフィッティング
図1Bは、この発明の実施の形態によるアラインメント(位置調整)を有しないサンプリンググリッド上の中国語文字111及びアラインメントを有するサンプリンググリッド上の中国語文字112を示す。この発明は、文字の複数のゾーンを検出及びアラインするので、この方法は、複数アラインメントゾーン(multiple alignment zone)(MAZ)と呼ばれる。
図1Cは、この発明の実施の形態に従ってアラインされる文字を示す。この文字は、経路又はスケルトン(骨格)121によって表される。経路は、後述するように、ペンコマンドを含む。ペンコマンドは、経路の(x,y)座標122を指定する。ストローク(筆使い)の幅123は均一である。
図2A及び図2Bに示すように、文字をサンプリンググリッド(例えば、スクリーン上に表示される画像のピクセルグリッド又はサブピクセルグリッド)にアラインする方法は、文字のスケルトンをトレースするペンコマンドを入力213として取り込む。この方法は、ペンコマンドのオリジナルの座標を「ヒンティング」された座標に修正する。
経路
レンダリングされる文字は、経路によって表される。この発明の実施の形態による経路は、例えば、moveto、lineto、及びcurvetoといったペンコマンドのシーケンスで構成される。これらのペンコマンドは、均一幅のストロークベースの文字の一組のストロークスケルトンを定義する。ストロークベースの文字のスケルトンは、例えば「u」の場合のように開くこともできるし、「o」の場合のように閉じることもできる。経路表現によって、任意の拡大縮小、回転、及び他の変換が可能になる。
ペンコマンドのシーケンスは、スケルトンをトレースする仮想ペンの移動及び描画を指定し、線セグメント及びベジェ曲線セグメントの双方の描画を可能する。各セグメントの終点及び制御点(control vertex)は、浮動小数点画像単位で指定される。
例示のペンコマンドは、以下の通りである。なお、すべての座標(すなわち、x、y、cx、及びcy)は浮動小数点画像単位で指定されることに留意されたい。
moveto x y -- 新しい経路(すなわち、新しいストロークスケルトン)を開始する。このコマンドは、現在の点を(x,y)に設定する。
lineto x y -- 直線セグメントを現在(すなわち、現在のストロークスケルトン)の経路に追加する。この線セグメントは、現在の点から(x,y)へ延びる。線セグメントを構成した後、(x,y)が新しい現在の点となる。
curveto cx cy x y - ベジェ制御点として(cx,cy)を使用して、現在の点と(x,y)との間に二次ベジェ曲線セグメントを現在の経路(すなわち、現在のストロークスケルトン)に追加する。曲線セグメントを構成した後、(x,y)が新しい現在の点となる。
アラインメント方法の概観
複数アラインメントゾーン(MAZ)検出及びグリッドフィッティングの方法への入力213は、(1)ストロークベースの文字を表すペンコマンドのシーケンス、(2)オリジナルの経路幅、及び(3)文字をレンダリングするのに使用されるエム(em)当たりのピクセル(ppem(pixels per em))数、すなわち文字のスケールである。ペンコマンドの(x,y)座標は、サンプリンググリッドにアラインされる。すなわち、自動的にヒンティングされる。
定義
以下の定義及び用語は、この発明のこの説明の理解を容易にするためにいくつかのカテゴリーに編成されている。
ペンコマンドのシーケンスが与えられると、終点が同一のy座標を有するlinetoコマンドは、「水平セグメント」を定める。同様に、終点が同一のx座標を有するlinetoコマンドは、「垂直セグメント」を定める。一般的な用語「セグメント」は、水平セグメント又は垂直セグメントのいずれかを指すことができる。簡単にするために、セグメントが水平セグメントである場合には、そのセグメントを「水平」と呼ぶことができる。同様に、セグメントが垂直セグメントである場合には、そのセグメントを「垂直」と呼ぶことができる。
(1)2つのセグメントS1及びS2が共に水平であり且つS1及びS2の双方と交差する垂直線が存在する場合、又は(2)S1及びS2が共に垂直であり且つS1及びS2の双方と交差する水平線が存在する場合のいずれかの場合に、2つのセグメントS1及びS2は「重なり合う(overlap)」。
水平セグメントHの「オリジナルの座標」は、実数値の画像座標におけるHのオリジナルのy座標、すなわち、グリッドフィッティングが適用される前のy座標である。垂直セグメントVの「オリジナルの座標」は、実数値の画像座標におけるVのオリジナルのx座標、すなわち、グリッドフィッティングが適用される前のx座標である。
水平セグメントHの「ヒンティングされた座標」は、グリッドフィッティングが適用された後の実数値の画像座標におけるHのy座標である。垂直セグメントVの「ヒンティングされた座標」は、グリッドフィッティングが適用された後の実数値の画像座標におけるVのx座標である。
S1及びS2を、それぞれオリジナルの座標c1及びc2を有するセグメントであるとする。S1及びS2は、c1がc2以下である場合には「昇順」にあり、c1がc2以上である場合には「降順」にある。用語「昇順」及び「降順」は、一般に任意の個数のセグメントに適用される。
S1、S2、及びS3を昇順のセグメントであるとする。S1がS2に重なり合い且つS2がS3に重なり合う場合に且つその場合に限り、S2はS1とS3との「間」にある。
セグメントCは、次の条件、すなわち、(1)Cのオリジナルの座標がSのオリジナルの座標以下である、(2)CがSに重なり合う、及び(3)CとSとの間にセグメントがない、の3つすべてが満たされる場合に且つその場合に限り、セグメントSの「子(child)」又は「子セグメント」である。
セグメントSは、CがSの子である場合に且つその場合に限り、セグメントCの「親」又は「親セグメント」である。Sが複数の子セグメントを有する場合、それら子セグメントは、Sの「子(children)」と呼ばれる。
(1)セグメントDがセグメントSの子であるか、又は(2)DがS1の子であり、S{i}がS{i+1}の子であり(ここで、iは1以上n未満である)、SnがSの子である(ここで、nは1以上である)ようなセグメントS1、S2、…、Snの或る順序シーケンスが存在する場合に且つその場合に限り、セグメントDは、セグメントSの「子孫」である。DがSの子孫である場合、SはDの「先祖」である。
「セグメントツリー」は、セグメントS及びSのすべての子孫によって定義されるセグメントの集合である。セグメントSは、セグメントツリーの「ルートセグメント」である。セグメントツリーは、セグメントの非循環有向グラフ(DAG)を形成する。
Sを、オリジナルの座標o及びヒンティングされた座標hをそれぞれ有するセグメントであるとする。cを、次のように定義される整数とする。ヒンティングされた経路幅が奇整数である場合、cは、oよりも大きくない最大整数であり、すなわちc=floor(o)である。この関数フロアは、o以下の最大整数を生成する。
ヒンティングされた経路幅が偶整数である場合、cは、oを最も近い整数に四捨五入してその結果から1を減算することによって求められた整数であり、すなわちc=round(o)−1である。h=c+1の場合には、sは「切り上げられる」といい、h=cの場合には、Sは「切り捨てられる」という。セグメントツリーのあらゆるセグメントが切り上げられる場合、そのセグメントツリーは切り上げられるという。同様に、セグメントツリーのあらゆるセグメントが切り捨てられる場合、そのセグメントツリーは切り捨てられるという。
或るセグメントS1が、別のセグメントS2と同じヒンティングされた座標を有する場合、S1はS2に「アライン」されているという。
セグメントSがその子セグメントの少なくとも1つにアラインされた場合、セグメントSは「折り畳みされている(collapsed)」という。セグメントSがその子セグメントのいずれにもアラインされていない場合、セグメントSは「非折り畳みされている(non-collapsed)」という。
(1)2つのセグメントS1及びS2が重なり合い、(2)それらのヒンティングされた座標が異なり、且つ(3)それらのヒンティングされた座標が、実数値の画像座標において多くともW単位だけ異なる場合、2つのセグメントS1及びS2は「衝突している(collide)」という。ここで、Wはヒンティングされた経路幅である。
S1及びS2が衝突し、且つ(2)それらのヒンティングされた座標が実数値の画像座標において正確にW単位だけ異なる場合、S1及びS2は「わずかに衝突している(barely collide)」という。ここで、Wはヒンティングされた経路幅である。
「近接セグメントx座標(near-segment x coordinate)」は、(1)x座標が垂直セグメントVのオリジナルの座標と一致するか、又は垂直セグメントVのオリジナルの座標の小さな所定の値「イプシロン」の範囲内にあり且つ(2)ペンコマンドPのy座標がy方向においてVと重なるようなペンコマンドPのx座標である。
「近接セグメントy座標(near-segment y coordinate)」は、(1)y座標が垂直セグメントHのオリジナルの座標と一致するか、又は垂直セグメントHのオリジナルの座標の小さな所定の値「イプシロン」の範囲内にあり且つ(2)ペンコマンドPのx座標がx方向においてHと重なるようなペンコマンドPのy座標である。
より一般的に言えば、用語「近接セグメント座標(near-segment coordinate)」は、近接セグメントx座標又は近接セグメントy座標のいずれかを指すことができる。
「非セグメント座標(non-segment coordinates)」は、「近接セグメント」座標でないペンコマンドの座標である。すなわち、近接セグメント座標の集合及び非セグメント座標の集合は、相互に排他的であり、合わさってペンコマンド座標の完全な集合を構成する。
「半整数」は、或る整数kについてn=k+0.5となるような実数の集合の要素nである。例えば、−2.5、−1.5、−0.5、0.5、1.5、2.5、及び3.5は、すべて半整数である。
「整数ピクセルグリッド」は、(x,y)の少なくとも一方の要素が整数であるような、実数x及びyの順序対(x,y)の集合である。例えば、座標(0,0)、(1.5,0)、及び(1.97,3)は、整数ピクセルグリッド上にあるが、(1.7,11.2)は、整数ピクセルグリッド上にない。幾何学的には、整数ピクセルグリッドは、例えばy=−2、y=−1、y=0、y=1、及びy=2といった整数水平線の集合、並びに例えばx=−2、x=−1、x=0、x=1、及びx=2といった整数垂直線の集合を含むグリッドである。
「半整数ピクセルグリッド」は、(x,y)の少なくとも一方の要素が半整数であるような、実数x及びyの順序対(x,y)の集合である。例えば、(0,0.5)、(1.5,0)、及び(1.97,2.5)は、半整数ピクセルグリッド上にあるが、(1.7,11.2)は、整数ピクセルグリッド上にない。幾何学的には、半整数ピクセルグリッドは、例えばy=−2.5、y=−1.5、y=−0.5、y=0.5、y=1.5及びy=2.5といった半整数水平線の集合、並びに例えばx=−2.5、x=−1.5、x=−0.5、x=0.5、x=1.5、及びx=2.5といった半整数垂直線の集合を含むグリッドである。
「x座標の最小アンカセグメント(minimal anchor segment)」は、x以下の最大のオリジナルの座標を有する非折り畳みの垂直セグメントである。「x座標の最大アンカセグメント(maximal anchor segment)」は、x以上の最小のオリジナルの座標を有する非折り畳みの垂直セグメントである。同様に、「y座標の最小アンカセグメント」は、y以下の最大のオリジナルの座標を有する非折り畳みの水平セグメントであり、「y座標の最大アンカセグメント」は、y以上の最小のオリジナルの座標を有する非折り畳みの水平セグメントである。
グリッドフィッティング中、非セグメント座標は、それらの対応するアンカセグメント間で直線補間される。少なくとも1つのアンカセグメントを欠いている非セグメント座標は、その文字のバウンディングボックスの「最小」エッジ又は「最大」エッジを「仮想」アンカセグメントとして使用することにより特別な場合として取り扱われる。最小エッジ及び最大エッジは、非セグメントx座標については、バウンディングボックスの左側のエッジ及び右側のエッジにそれぞれ対応し、最小エッジ及び最大エッジは、非セグメントy座標については、バウンディングボックスの下側のエッジ及び上側のエッジにそれぞれ対応する。
以下の一般的な注釈が、後述するこの方法に当てはまる。
この方法は、レンダリング中に動的に起動される。したがって、この方法は、高品質、少ないメモリ消費、及び計算効率性の間の好都合なバランスを達成するように設計される。
この方法は、任意の均一幅のストロークベースの文字に対して起動することができるが、CJK文字用に設計及び最適化されている。
均一幅のストロークベースの文字は、主として、水平ストローク及び垂直ストロークで構成される。したがって、この方法は、文字の水平の特徴及び垂直の特徴を検出し、それらをサンプリンググリッドにアラインする。この方法は、例えば曲線又は対角線といった他の特徴をサンプリンググリッドにアラインする努力は行わない。サンプリンググリッドにアラインされない座標は、その代わりに、補間を使用してヒンティングされる。この詳細については以下を参照されたい。この全体的な方策によって、高品質及び高ランタイム性能という競合する目標の釣り合いが取れる。
この方法は、ストローク間の「衝突」を検出して解消し、それによって、重要な特徴が視覚的に区別することができなくなることを防止する。この詳細については以下を参照されたい。衝突解消は、結果の品質に有意な役割を果たす。この方法は、欲張り法を使用して衝突を解消する。この欲張り法は、計算効率は良いが、常に最適なグリッドフィッティング構成を見つけることができるとは限らない。しかしながら、実際には、この欲張り法は、広範囲の文字にわたって高品質な結果を生み出す。衝突解消中、この方法は、セグメント間のオリジナルの間隔又はセグメント間のオリジナルの間隔比率を保つ試みは行わない。
複数の文字にわたって外観の一貫性を改善するために、この方法は、常に、最も上側の水平セグメント及び最も下側の水平セグメントをグリッドにおいて最も近接したピクセルにアラインする。同様に、この方法は、常に、最も左側の垂直セグメント及び最も右側の垂直セグメントをグリッドにおいて最も近接したピクセルにアラインする。この手法によって、例えば衝突解消に起因するさらなるグリッドフィッティング調整が、文字のエッジにおける重要な水平特徴及び垂直特徴に影響を与えることが防止され、その結果、複数の文字を同じページで観察するときに、それら複数の文字間でのこれらの特徴のアラインメントがより良好なものとなる。
結局のところ、グリッドフィッティングには、ペンコマンドのオリジナルの座標を、アラインされたペンコマンド又はヒンティングされたペンコマンドに修正することが必要とされる。文字の形状の歪を最小にするために、この方法は、座標をそのオリジナルの値から1.5ピクセルよりも大きく移動させることは決してしない。
この方法のステップ2〜6(以下を参照)は、オリジナルの経路を使用してグリッドフィッティングを行う。ステップ7までオリジナルのペンコマンドに対して変更は行われない。
この方法は、オリジナルの経路幅を最も近い整数に四捨五入しその幅を少なくとも1ピクセルに固定することによって経路幅をヒンティングする。ヒンティングされた経路幅が偶整数である場合、ストロークスケルトンは、半整数ピクセルグリッドにアラインされる。ヒンティングされた経路幅が奇整数である場合、ストロークスケルトンは、整数ピクセルグリッドにアラインされる。この規則によって、レンダリングされた文字のエッジは、サンプリンググリッド上に確実に位置付けられ、それによって、エッジコントラストが最大にされる。
性能を最適化し且つ浮動小数点の実施態様と固定小数点の実施態様との間のコード再利用を最大にするために、この方法のステップのほとんどは、ヒンティングされた経路幅が偶数であるのか又は奇数であるのかに関わらず、整数ピクセルグリッドを使用してグリッドフィッティングを行う。ヒンティングされた座標に調整を行ってヒンティングされた経路幅に対応することは、最終ステップ9まで延期される。
以下で説明するこの方法のステップ2〜8は、この実施態様では、水平セグメントについて1回及び垂直セグメントについて1回の計2回有効に適用される。この方法は、水平セグメントと垂直セグメントとの間に依存関係を含まないことに留意されたい。その結果、この方法のハードウェアの実施態様及びマルチコアの実施態様は、水平セグメント及び垂直セグメントを完全に並列に処理することができる。
方法ステップ
この方法への入力は、(1)オリジナルの座標213’を有するペンコマンド213のシーケンス、(2)オリジナルの経路幅、及び(3)文字をレンダリングするのに使用されるエム当たりのピクセル(ppem)数、すなわち文字のスケールである。
ステップ1:オリジナルの経路幅を最も近い整数に四捨五入することによってヒンティングされた経路の幅211を求める(201)。ヒンティングされた経路幅が少なくとも1ピクセルであることを確実にする。ストローク幅は、例えば3%又は5%といったエムボックス(em box)の割合として指定することができる。幅が偶数である場合には、スケルトンを半整数(0.5、1.5、2.5、…)にアラインし、奇数である場合には、スケルトンを整数(0、1、2、…)にアラインする。
ステップ2:入力ペンコマンド213をトラバースして、経路のセグメントを識別する(202)。これらのセグメントは、順序付けられていないセグメントアレイ212に格納される。
ステップ3:セグメントアレイにおける各セグメントのヒンティングされた座標215を求める(203)。ヒンティングされた経路幅が奇整数である場合、オリジナルの座標を最も近い整数に四捨五入することによって、ヒンティングされた座標を求める。ヒンティングされた経路幅が偶整数である場合、オリジナルの座標のフロアを計算することによって、ヒンティングされた座標を求める。いずれの場合も、ヒンティングされた座標は、以下で、衝突を解消するように修正することができ(ステップ6を参照)、また、ヒンティングされた経路幅に対応するように修正することができる(ステップ9を参照)。
ステップ4:セグメントアレイのセグメントを昇順にソートして(204)、ソートされたアレイ212’を得る。すなわち、オリジナルの座標が減少しない順序でソートする。
ステップ5:DAGを構成する(205)。ソートされたセグメントアレイ212’において各セグメントの子セグメントを識別し、非循環有向グラフ(DAG)214を構成する(205)。DAGは、各セグメントをその子セグメントにリンクすることによって暗黙的に表される。
このDAGを構成する目的は、次のステップにおいてセグメント間の衝突を検出し解消するためである。セグメントSと子セグメントCとの間の衝突は、P及びCの現在のヒンティングされた座標がW+2ピクセルよりも大きく異なっている場合には、衝突解消中に発生する可能性はない。ここで、Wは、ヒンティングされた経路幅211である。したがって、ランタイム効率を改善するために、S及びCのヒンティングされた座標がW+2ピクセル又はそれ未満異なる場合に且つその場合に限り、SとCとの間にDAGのリンクが追加される。
ステップ6:欲張りボトムアッププロセスを使用して、ステップ3におけるヒンティングに起因した衝突セグメントを検出し、衝突を解消する(206)。視覚的には、衝突セグメントは、2つの別個のストロークではなく、単一の太いストロークであるように見える。衝突は、いくつかの場合には、2つのセグメントが少なくともW+1ピクセル離れるように、それらセグメントの一方のヒンティングされた座標に+1又は−1を加えることによって解消することができる。ここで、Wは、ステップ1において求められたヒンティングされた経路幅211である。これについては、以下の詳細及び図4を参照されたい。
衝突は、欲張り法を使用して解消される。欲張り法は、ボトムアップ順で、すなわち最も下側の子孫から最も上側の先祖へ向けて、DAG214をトラバースする。セグメントは、ステップ4において昇順にソートされるので、このボトムアップのトラバースは、セグメントアレイの最初のセグメントから開始してセグメントアレイの各セグメントを訪問し、セグメントアレイの最後のセグメントで終了することにより達成される。
M1及びM2を、セグメントアレイにおける最初のセグメントの現在のヒンティングされた座標及び最後のセグメントの現在のヒンティングされた座標であるとする。複数の文字にわたり重要な特徴の一貫したアラインメントを得るために、現在のヒンティングされた座標がM1に等しいすべてのセグメントは、引き続きM1に固定される。すなわち、これらのセグメントは、衝突解消による影響を受けない。同様に、現在のヒンティングされた座標がM2に等しいすべてのセグメントは、引き続きM2に固定される。
セグメントアレイのボトムアップトラバース中に訪問された各セグメントSについて、以下のステップを適用する。
ステップ6a:Sの現在のヒンティングされた座標がM1に等しい場合、次のセグメントに進む。
ステップ6b:Sの現在のヒンティングされた座標がM2に等しい場合、Sと衝突するSの各子Cについて以下のステップを適用する。
ステップ6b1:CがSとわずかに衝突する場合、ステップ(6b2)に進む。そうでない場合、ステップ(6b4)に進む。
ステップ6b2:Cが切り上げられるが、その子のいずれとも衝突することなく切り捨てられることができる場合、Cを切り捨て、ステップ(6b5)に進む。例えば、Cのオリジナルの座標が2.6であり、ヒンティングされた経路幅が1ピクセルである場合、Cのヒンティングされた座標は、通常、3.0に「切り上げられる」。切り上げる代わりに「切り捨てる」ことによって、整数2.0が生成される。上記の専門用語のセクションの「切り上げ」及び「切り捨て」の定義を参照されたい。このステップは、衝突の除去を試み、あらゆる新しい衝突の導入を常に回避する。
ステップ6b3:Cが切り上げられるが、ルートCを有するセグメントツリーを、セグメントツリーにおける衝突を何ら生み出すことなくCを切り捨てることができる場合、セグメントツリーを切り捨て、ステップ(6b5)に進む。このステップは、衝突の除去を試み、あらゆる新しい衝突の導入を常に回避する。
ステップ6b4:SがまだCと衝突する場合、CをSにアラインする。例えば、Cのヒンティングされた座標が4.0であり、Sのヒンティングされた座標が5.0であり、ヒンティングされた経路幅が1ピクセルである場合、Cを5.0にアラインする。
ステップ6b5:終了。
ステップ6c:Sの現在のヒンティングされた座標がM1とM2との間にある場合、Sと衝突するSの各子Cについて以下のステップを適用する。
ステップ6c1:CがSとわずかに衝突する場合、ステップ(6c2)に進む。そうでない場合、ステップ(6c5)に進む。
ステップ6c2:Cが切り上げられるが、その子のいずれとも衝突することなく切り捨てることができる場合、Cを切り捨て、ステップ(6c6)に進む。例えば、Cのオリジナルの座標が2.6であり、ヒンティングされた経路幅が1ピクセルである場合、Cのヒンティングされた座標は、通常、3.0に「切り上げられる」。切り上げる代わりに「切り捨てる」ことによって、整数2.0が生成される。このステップは、衝突の除去を試み、あらゆる新しい衝突の導入を常に回避する。
ステップ6c3:Cが切り上げられるが、ルートCを有するセグメントツリーを、セグメントツリーにおける衝突を何ら生み出すことなく切り捨てることができる場合、セグメントツリーを切り捨て、ステップ(6c6)に進む。このステップは、衝突の除去を試み、あらゆる新しい衝突の導入を常に回避する。
ステップ6c4:Sが切り捨てられる場合、Sを切り上げて、ステップ(6c6)に進む。例えば、Sのオリジナルの座標が5.8であり、ヒンティングされた経路幅が2ピクセルである場合、Sのヒンティングされた座標は、通常、5.0、すなわちfloor(5.8)=5.0=round(5.8)−1に切り捨てられる。切り捨てる代わりに切り上げることによって、整数6.0が生成される。このステップは、衝突の除去を試みるが、SとSの親との間の衝突を導入する可能性がある。この起こり得る衝突は、DAG214のボトムアップトラバースの後続の繰り返しにおいてSの親を処理する時に除去される。
ステップ6c5:SをCにアラインする。例えば、Cのヒンティングされた座標が4.0であり、Sのヒンティングされた座標が5.0であり、ヒンティングされた経路幅が1ピクセルである場合、Sを4.0にアラインする。
ステップ6c6:終了。
ステップ(6b2)〜(6b3)及びステップ(6c2)〜(6c4)は、セグメントC及びSが少なくともW+1ピクセル離れるようにそれらセグメントを四捨五入することを試みる。ここで、Wはヒンティングされた経路幅211である。しかしながら、この方法によって衝突を解消することができないいくつかの場合がある。C及びSは、これらの場合に視覚的に区別することができないので、ステップ(6b4)及び(6c5)は、S及びCをアラインし、それによって、2つのセグメントを同じ座標にアラインすることにより文字の外見を単純にする。ステップ(6b4)とステップ(6c5)との間の相違は、前者のステップでは、CがSにアラインされるのに対して、後者のステップでは、SがCにアラインされるということであることに留意されたい。
図3は、サンプリンググリッドの最も近接したグリッド線(例えば、画像の最も近接したピクセル走査線又はサブピクセル走査線)に四捨五入する前301及び四捨五入した後302を示す。
図4は、サンプリンググリッドの最も近接したグリッド線に四捨五入する前301及び四捨五入した後302、並びに衝突解消後401を示す。
ステップ7:近接セグメント座標に対してグリッドフィッティングを行い(207)、その結果を出力ペンコマンド233に格納する。垂直セグメントに近接しているペンコマンドのx座標及びy方向においてその垂直セグメントに重なるペンコマンドのx座標は、その垂直セグメントにアラインされる。同様に、水平セグメントに近接しているペンコマンドのy座標及びx方向においてその水平セグメントに重なるペンコマンドのy座標は、その水平セグメントにアラインされる。
ステップ8:非セグメント座標に対してグリッドフィッティングを行い(208)、その結果を出力ペンコマンド233に格納する。ペンコマンドの非セグメントx座標は、xに近接した最小垂直アンカセグメントと最大垂直アンカセグメントとの間でx方向に直線補間される。同様に、ペンコマンドの非セグメントy座標は、yに近接した最小水平アンカセグメントと最大水平アンカセグメントとの間でy方向に直線補間される。
ステップ9:ヒンティングされた経路幅が偶整数である場合、各ペンコマンドの各座標に0.5を加える(209)。このステップは、ストロークスケルトンを半整数ピクセルグリッドに有効にアラインする。
均一文字ストロークの出力ペンコマンド233は、この時点で、サンプリンググリッドにアラインされ、レンダリング240を開始することができる。
ベジェ曲線セグメントを使用してペンコマンド213を規定することでこの方法を説明してきたが、例えば、エルミートスプライン、キャットマル−ロムスプライン、及びBスプラインといった任意の種類の曲線セグメントを使用することができることに留意されたい。
スタイル化されたストローク文字のアラインメント
この発明の別の実施の形態は、スタイル化されたストローク文字をサンプリンググリッドにアラインする方法を提供する。
スタイル化されたストロークフォント(SSF)は、ストロークが可変の太さ及びスタイリッシュなストローク端部を有する高度化されたストロークベースのフォントである。これについては、Elena J. Jakubiak, Ronald N. Perry及びSarah F. Frisken「An Improved Representation for Stroke-based Fonts」(SIGGRAPH 2006 Conference Abstracts and Applications)を参照されたい。SSFは、フォント内の形状の繰り返しを利用するモジュール形式の構造を用い、SSFが、アウトラインフォントの表現を、現在の均一幅ストロークフォントに相当するメモリフットプリントと調和させることを可能にする。
図5に示すように、SSFストロークの構造は、毛筆の動作を反映する。ストロークの本体は、中心線501及び輪郭502を含む。中心線501は筆の経路を反映し、輪郭502は展開に沿った筆の圧力の変化を反映する。SSFストロークの末端503は、筆の先端がページ上に置かれページから離れた時の筆の移動の開始及び終了のスタイル化された表現である。各中心線501及び各末端503は、線セグメント及びベジェ曲線の開いた区部的に連続な経路によって表される。輪郭502は、一組のベジェ曲線によって表される。この一組のベジェ曲線は、ストロークの中心線からストロークの双方のエッジへの垂直距離を規定する。
この実施の形態では、この方法は、まず、スタイル化されたストローク文字の代表的なストローク幅を求める。この代表的なストローク幅は、いくつかの方法で求めることができる。例えば、スタイル化されたストローク文字の輪郭502を一連のサンプル点でサンプリングすることができる。これらのサンプル点は、次に、平均ストローク幅を求めるのに使用される。別の例では、輪郭502を解析的に解析して代表的なストローク幅を求めることができる。さらなる例として、スタイル化されたストローク文字のユーザ指定の公称ストローク幅を代表的なストローク幅として使用することができる。
上述した方法ステップ1〜9が、次に、スタイル化されたストローク文字に対して起動される。代表的なストローク幅は、オリジナルの経路幅を規定し、スタイル化されたストローク文字の中心線501は、ペンコマンド213を規定する。出力ペンコマンド233は、スタイル化されたストローク文字のアラインされた中心線を規定し、それによって、スタイル化されたストローク文字がサンプリンググリッドにアラインされる。
動作環境
この発明は、多数の汎用又は専用のコンピューティングシステム環境又はコンピューティングシステム構成で動作可能である。この発明と共に使用するのに適した既知のコンピューティングシステム、コンピューティング環境、及び/又はコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド装置又はラップトップ装置、マルチプロセッサシステム又はマルチコアシステム、グラフィックス処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、マイクロコントローラベースシステム、セットトップボックス、プログラマブル民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システム又は装置の任意のものを含む分散コンピューティング環境等が含まれるが、これらに限定されるものではない。モニタ及び他のタイプの表示装置が、上記システムの任意のものに接続されて、この発明のアラインメントの表示が可能にされる。
上述したように、この方法は、水平セグメントと垂直セグメントとの間の依存関係を含まない。その結果、この方法のハードウェアの実施態様及びマルチコアの実施態様は、水平セグメント及び垂直セグメントを完全に並列に処理することができる。例えば、マルチコアプロセッサの或るコアは、水平セグメントのアラインメントを行うことができ、マルチコアプロセッサの別のコアは、垂直セグメントのアラインメントを行うことができる。

Claims (19)

  1. 文字を画像のサンプリンググリッドにアラインする方法であって、前記文字のスケルトンをトレースするオリジナルの経路が、オリジナルの座標を有する入力ペンコマンドによって指定され、前記オリジナルの経路は均一幅を有し、該方法を実行するためのプロセッサを備え、該方法は、
    前記オリジナルの経路の幅を最も近い整数に四捨五入することによって、ヒンティングされた経路の幅を求めるステップと、
    前記入力ペンコマンドを使用して前記オリジナルの経路をトラバースして前記オリジナルの経路のセグメントを識別すると共に、該セグメントをアレイに格納するステップと、
    前記アレイの各前記セグメントのヒンティングされた座標を求めるステップと、
    前記アレイを昇順にソートしてソートされたアレイを得るステップと、
    前記ソートされたアレイの前記セグメントから非循環有向グラフ(DAG)を構成するステップと、
    前記ソートされたアレイ、前記DAG、及び前記ヒンティングされた経路の前記幅を使用して前記セグメント間の衝突を解消するステップと、
    前記セグメントを前記サンプリンググリッドにフィッティングすると共に、前記ヒンティングされた座標を有する出力ペンコマンドに該フィッティングの結果を格納し、前記文字の前記スケルトンを整数サンプリンググリッドにアラインするステップと、
    前記ヒンティングされた経路の前記幅が偶整数である場合にのみ、各前記出力ペンコマンドの各前記ヒンティングされた座標に0.5を加え、前記文字の前記スケルトンを半整数サンプリンググリッドにアラインするステップと、
    を含む方法。
  2. 前記出力ペンコマンドをレンダリングすること、をさらに含む請求項1に記載の方法。
  3. 前記ヒンティングされた経路の前記幅は、少なくとも1ピクセルである請求項1に記載の方法。
  4. 前記ソートが、減少しないオリジナルの座標によるものである請求項1に記載の方法。
  5. 前記ソートにおいて、前記ソートされたアレイの各前記セグメントの子セグメントを識別する請求項1に記載の方法。
  6. 前記解消するステップは、2つのセグメントの前記ヒンティングされた座標間の差が、前記ヒンティングされた経路の前記幅に2ピクセルを加えたもの以下である場合に、前記2つのセグメント間の衝突を検出すること、をさらに含む請求項1に記載の方法。
  7. 前記解消するステップは、前記DAGを欲張りボトムアッププロセスでトラバースする、請求項1に記載の方法。
  8. 前記解消するステップは、前記差が、少なくとも前記ヒンティングされた経路の前記幅に1ピクセルを加えたものであることを確実にする、請求項6に記載の方法。
  9. 垂直セグメントに近接しy方向において該垂直セグメントに重なるペンコマンドのx座標は該垂直セグメントにアラインされ、水平セグメントに近接しx方向において該水平セグメントに重なるペンコマンドのy座標は該水平セグメントにアラインされ、ペンコマンドの他のすべてのx座標は、xに近接した最小垂直アンカセグメントと最大垂直アンカセグメントとの間でx方向に直線補間され、ペンコマンドの他のすべてのy座標は、yに近接した最小水平アンカセグメントと最大水平アンカセグメントとの間でy方向に直線補間され、座標がセグメントから所定の距離内にある場合に、該座標は該セグメントに近接している、請求項6に記載の方法。
  10. 最の上側の水平セグメント及び最も下側の水平セグメント並びに最も左側の垂直セグメント及び最も右側の垂直セグメントは、前記サンプリンググリッドの最も近接したグリッド点にアラインされる、請求項1に記載の方法。
  11. 前記アラインにおいて、前記オリジナルの座標を前記ヒンティングされた座標において1.5ピクセルよりも大きく移動させない、請求項1に記載の方法。
  12. 水平セグメント及び垂直セグメントは並列に処理される、請求項1に記載の方法。
  13. 前記サンプリンググリッドは前記画像のピクセルグリッドであり、該画像はスクリーン上に表示される、請求項1に記載の方法。
  14. 前記サンプリンググリッドは前記画像のサブピクセルグリッドであり、該画像はスクリーン上に表示される、請求項1に記載の方法。
  15. 前記文字は、スタイル化されたストロークを備え、
    各前記スタイル化されたストロークの輪郭から代表的な経路幅を求めること、
    をさらに含む請求項1に記載の方法。
  16. 前記代表的な経路幅は、各前記スタイル化されたストロークの平均幅である、請求項15に記載の方法。
  17. 前記代表的な経路幅は、各前記スタイル化されたストロークの公称幅である、請求項15に記載の方法。
  18. 前記求めるステップは、前記輪郭をサンプリングして前記代表的な経路幅を求める、請求項15に記載の方法。
  19. 前記求めるステップは、前記輪郭の解析的記述を使用して前記代表的な経路幅を求める、請求項15に記載の方法。
JP2009267840A 2009-01-26 2009-11-25 文字を画像のサンプリンググリッドにアラインする方法 Active JP5523070B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/359,882 2009-01-26
US12/359,882 US8102397B2 (en) 2009-01-26 2009-01-26 Method for improving uniform width character strokes using multiple alignment zones

Publications (2)

Publication Number Publication Date
JP2010170097A true JP2010170097A (ja) 2010-08-05
JP5523070B2 JP5523070B2 (ja) 2014-06-18

Family

ID=42077674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009267840A Active JP5523070B2 (ja) 2009-01-26 2009-11-25 文字を画像のサンプリンググリッドにアラインする方法

Country Status (4)

Country Link
US (1) US8102397B2 (ja)
EP (1) EP2211333B1 (ja)
JP (1) JP5523070B2 (ja)
CN (1) CN101819640B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014174569A1 (ja) * 2013-04-22 2014-10-30 三菱電機株式会社 フォント描画装置
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8648862B2 (en) * 2010-07-21 2014-02-11 Esko Software Bvba Method for automatically modifying a graphics feature to comply with a resolution limit
WO2015022683A1 (en) * 2013-08-15 2015-02-19 Fontark Ltd. A method for creating a controlled and versatile connection between graphical objects
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
US9824266B2 (en) * 2014-11-28 2017-11-21 Samsung Electronics Co., Ltd. Handwriting input apparatus and control method thereof
US10347016B2 (en) * 2016-01-12 2019-07-09 Monotype Imaging Inc. Converting font contour curves
US10936792B2 (en) 2017-12-21 2021-03-02 Monotype Imaging Inc. Harmonizing font contours
CN108171144B (zh) * 2017-12-26 2020-12-11 四川大学 信息处理方法、装置、电子设备及存储介质
US10685261B2 (en) * 2018-06-11 2020-06-16 GM Global Technology Operations LLC Active segmention of scanned images based on deep reinforcement learning for OCR applications
CN111062398B (zh) * 2020-03-18 2021-01-19 杭州汇萃智能科技有限公司 字符识别方法、装置、计算机设备和存储介质
US11915071B1 (en) 2022-10-26 2024-02-27 Kyocera Document Solutions Inc. Caching outline characters in printed documents

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635438A (ja) * 1992-07-14 1994-02-10 Canon Inc 文字発生方法
JPH0683313A (ja) * 1992-09-07 1994-03-25 Ricoh Co Ltd 輪郭線補正方法
JPH0695643A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd アウトラインフォントのヒンティング方法
JPH08272353A (ja) * 1994-12-20 1996-10-18 Matsushita Electric Ind Co Ltd 多階調データ生成装置
JPH09127930A (ja) * 1995-10-27 1997-05-16 Brother Ind Ltd キャラクタ出力装置
JPH11109943A (ja) * 1997-10-02 1999-04-23 Sanyo Electric Co Ltd フォント処理装置およびフォント処理用プログラムを記録した記録媒体
JP2002082663A (ja) * 2000-06-27 2002-03-22 Sanyo Electric Co Ltd フォント処理装置、フォント処理方法及び記憶媒体
JP2004341253A (ja) * 2003-05-15 2004-12-02 Sharp Corp 文字図形表示装置、文字図形表示方法、プログラムおよび記録媒体

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85101927A (zh) * 1985-04-01 1987-01-17 窒素公司 聚烯烃结构的防燃剂
AU629210B2 (en) 1988-10-26 1992-10-01 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces
US5526476A (en) * 1992-12-07 1996-06-11 Fujitsu Limited Method and apparatus for generating character patterns expressed by coordinates of a coordinate system
US5754187A (en) * 1994-05-16 1998-05-19 Agfa Division, Bayer Corporation Method for data compression of digital data to produce a scaleable font database
US5734388A (en) * 1994-05-16 1998-03-31 Agfa Division, Bayer Corporation Method and apparatus for data compression of digital data to produce a scaleable font database
JPH09134157A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法
US6597360B1 (en) * 1998-10-07 2003-07-22 Microsoft Corporation Automatic optimization of the position of stems of text characters
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US7801932B2 (en) * 2005-10-11 2010-09-21 Oracle International Corporation Undo hints to speed up segment extension and tuning of undo retention

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635438A (ja) * 1992-07-14 1994-02-10 Canon Inc 文字発生方法
JPH0683313A (ja) * 1992-09-07 1994-03-25 Ricoh Co Ltd 輪郭線補正方法
JPH0695643A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd アウトラインフォントのヒンティング方法
JPH08272353A (ja) * 1994-12-20 1996-10-18 Matsushita Electric Ind Co Ltd 多階調データ生成装置
JPH09127930A (ja) * 1995-10-27 1997-05-16 Brother Ind Ltd キャラクタ出力装置
JPH11109943A (ja) * 1997-10-02 1999-04-23 Sanyo Electric Co Ltd フォント処理装置およびフォント処理用プログラムを記録した記録媒体
JP2002082663A (ja) * 2000-06-27 2002-03-22 Sanyo Electric Co Ltd フォント処理装置、フォント処理方法及び記憶媒体
JP2004341253A (ja) * 2003-05-15 2004-12-02 Sharp Corp 文字図形表示装置、文字図形表示方法、プログラムおよび記録媒体

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014174569A1 (ja) * 2013-04-22 2014-10-30 三菱電機株式会社 フォント描画装置
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
KR20160087825A (ko) * 2013-11-19 2016-07-22 가부시키가이샤 와코무 잉크 데이터의 생성, 잉크 데이터의 렌더링, 잉크 데이터의 조작, 및 잉크 데이터의 전달을 위한 방법 및 시스템
US9430065B2 (en) 2013-11-19 2016-08-30 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9448648B2 (en) 2013-11-19 2016-09-20 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
JP2016532165A (ja) * 2013-11-19 2016-10-13 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム
JP6046298B1 (ja) * 2013-11-19 2016-12-14 株式会社ワコム デジタルインク出力方法、デジタルインクのレンダリング方法、及びデジタルインク出力装置
US9766804B2 (en) 2013-11-19 2017-09-19 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9875021B2 (en) 2013-11-19 2018-01-23 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9904466B2 (en) 2013-11-19 2018-02-27 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9904465B2 (en) 2013-11-19 2018-02-27 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10078445B2 (en) 2013-11-19 2018-09-18 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10191653B2 (en) 2013-11-19 2019-01-29 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10331338B2 (en) 2013-11-19 2019-06-25 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10409484B2 (en) 2013-11-19 2019-09-10 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10534530B2 (en) 2013-11-19 2020-01-14 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10768805B2 (en) 2013-11-19 2020-09-08 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
KR102255050B1 (ko) * 2013-11-19 2021-05-25 가부시키가이샤 와코무 잉크 데이터의 생성, 잉크 데이터의 렌더링, 잉크 데이터의 조작, 및 잉크 데이터의 전달을 위한 방법 및 시스템
US11023127B2 (en) 2013-11-19 2021-06-01 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11042292B2 (en) 2013-11-19 2021-06-22 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11169696B2 (en) 2013-11-19 2021-11-09 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11188223B2 (en) 2013-11-19 2021-11-30 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11747976B2 (en) 2013-11-19 2023-09-05 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication

Also Published As

Publication number Publication date
CN101819640B (zh) 2012-08-08
US8102397B2 (en) 2012-01-24
CN101819640A (zh) 2010-09-01
US20100188408A1 (en) 2010-07-29
EP2211333B1 (en) 2013-03-27
EP2211333A1 (en) 2010-07-28
JP5523070B2 (ja) 2014-06-18

Similar Documents

Publication Publication Date Title
JP5523070B2 (ja) 文字を画像のサンプリンググリッドにアラインする方法
US20140085311A1 (en) Method and system for providing animated font for character and command input to a computer
JPH11237874A (ja) 漢字キャラクタを含むマルチマスタータイプフェースを発生する方法
US8107729B2 (en) Method for improving character outlines using multiple alignment zones
JP2014167635A (ja) 低解像度ディスプレイのためのストロークベースのフォント処理方法
JP2006018811A (ja) 対応するアウトラインに制御点が欠けている場合のグラフィカルオブジェクトの適切なレンダリング
KR20160019502A (ko) 동적 팔레트를 갖는 적층식 z 순서의 힌팅된 컬러 폰트
JP2015228021A (ja) マンマシンインターフェースのグラフィック表示用の文字列の処理技術
US11610046B2 (en) Automatic generation of responsive font effects based on font elements
US8587609B1 (en) Accuracy-adaptive and scalable vector graphics rendering
Dokter et al. Hierarchical rasterization of curved primitives for vector graphics rendering on the GPU
CN112765935B (zh) 一种文字外形个性化处理方法及系统
JP3037854B2 (ja) 文字生成方法及びその装置
US8355025B2 (en) System and method for displaying text
Herz et al. Towards a universal auto-hinting system for typographic shapes
CN117236280B (zh) 竖排文字显示方法及装置
EP3614279A1 (en) A method and a device for displaying text with a proportional font
JPWO2013175520A1 (ja) 文字描画装置
US12073503B2 (en) Apparatus and method to generate an animated graphical object
Shamir Constraint-based approach for automatic hinting of digital typefaces
Alvin Rendering Resolution Independent Fonts in Games and 3D-Applications
JP2017125934A (ja) 文字描画装置及び文字描画方法、コンピュータプログラム
Hagen Variable fonts
JP2015075884A (ja) 描画装置、描画方法及びプログラム
JP2835056B2 (ja) 高品質文字パターン発生方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130401

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140408

R150 Certificate of patent or registration of utility model

Ref document number: 5523070

Country of ref document: JP

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