JP2005531813A - スケーラブルストロークフォントシステムおよび方法 - Google Patents

スケーラブルストロークフォントシステムおよび方法 Download PDF

Info

Publication number
JP2005531813A
JP2005531813A JP2004518329A JP2004518329A JP2005531813A JP 2005531813 A JP2005531813 A JP 2005531813A JP 2004518329 A JP2004518329 A JP 2004518329A JP 2004518329 A JP2004518329 A JP 2004518329A JP 2005531813 A JP2005531813 A JP 2005531813A
Authority
JP
Japan
Prior art keywords
data
glyph
common element
stroke
common
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
JP2004518329A
Other languages
English (en)
Other versions
JP4686186B2 (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.)
2012244 オンタリオ インコーポレイテッド
Original Assignee
2012244 オンタリオ インコーポレイテッド
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
Priority claimed from CA002396346A external-priority patent/CA2396346C/en
Application filed by 2012244 オンタリオ インコーポレイテッド filed Critical 2012244 オンタリオ インコーポレイテッド
Priority claimed from PCT/CA2003/001021 external-priority patent/WO2004006166A2/en
Publication of JP2005531813A publication Critical patent/JP2005531813A/ja
Application granted granted Critical
Publication of JP4686186B2 publication Critical patent/JP4686186B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1827Accessing generic data, e.g. fonts
    • G06K15/1831Accessing generic data, e.g. fonts characterized by the format of the data
    • G06K15/1834Outline coded data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/002Generic data access
    • G06K2215/0028Generic data access characterised by the format per se

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Medical Treatment And Welfare Office Work (AREA)
  • Document Processing Apparatus (AREA)
  • Image Generation (AREA)
  • Dot-Matrix Printers And Others (AREA)

Abstract

ソースフォントデータからフォントフォーマットデータを生成する方法は、該ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する工程と、該グリフデータを分離する工程と、該分離されたグリフデータから中線データを抽出する工程と、該中線データを独特エレメントデータおよび共通エレメントデータとして分類する工程と、該独特エレメントデータおよび該共通エレメントデータを該複数のグリフの各グリフに関連づける工程とを含む。

Description

本発明は概してスケーラブルストロークフォントに関し、特にスケーラブルストロークフォントを生成しスケーラブルストロークフォントデータをモバイルコンピュータデバイス(「モバイルデバイス」)に格納するシステムおよび方法に関する。
本出願は2002年7月3日に出願された米国特許仮出願シリアル番号第60/393,795号および2002年8月1日に出願された米国特許仮出願シリアル番号第60/400,373号の利益を主張し、上記仮出願の全体を参考のため援用する。
フォントデータなどのテキストデータは代表的にはモバイルデバイス内のメモリ内に格納される。モバイルデバイスは代表的には比較的限られたメモリおよび処理リソースを有するため、モバイルデバイスに格納されたテキストデータの量およびモバイルデバイスのテキストレンダリング能力には限界があることが多い。
3つの基本的なフォントタイプ、すなわちビットマップ、アウトライン、およびストロークである。ビットマップフォントは文字のグラフィック画像として格納され、タイプフェースの各ポイントサイズは別のフォントとして格納される。各文字は画素のアレイ(ビットマップ)として格納される。ビットマップフォントは比較的大量の格納スペースを必要とし、このタイプのフォントをスケーリングしエフェクトを適用することは比較的困難である。
TrueType(商標)などのアウトラインフォントは、グリフの形状または輪郭に関する情報から生成される。輪郭は1セットの線および曲線として規定される。アウトラインフォントはビットマップフォントよりもスケーリングおよび他のエフェクトを容易にし、ビットマップよりも必要とする格納スペースが小さい。しかし多くのモバイルデバイスは代表的にはアウトラインフォントの使用を適切に容易にする格納スペースおよび処理要件を有していない。
ストロークフォントはグリフに代表されるような文字の形状がストロークによって表されるフォントである。ストロークは代表的には線および曲線によって規定される。グリフの所与のセット用のストロークフォントデータに必要な格納スペースは代表的には対応するアウトラインフォントデータに必要なものよりもはるかに小さい。しかしストロークフォントは、アウトラインフォントに比べて質が低下したグリフを生成する。したがってストロークベースのフォントをレンダリングする現存のレンダリングエンジンは比較的限定された質のグリフを生成する。
ソースフォントデータからフォントフォーマットデータを生成する方法は、該ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する工程と、該グリフデータを分離する工程と、該分離されたグリフデータから中線データを抽出する工程と、該中線データを独特エレメントデータおよび共通エレメントデータとして分類する工程と、該独特エレメントデータおよび該共通エレメントデータを該複数のグリフの各グリフに関連づける工程とを含む。
ソースフォントデータからフォントフォーマットデータを生成するシステムは、グリフ分析ソフトウェアモジュールと、グリフ分離ソフトウェアモジュールと、中線抽出ソフトウェアモジュールと、エレメント分析ソフトウェアモジュールとを含む。グリフ分析ソフトウェアモジュールは、該ソースフォントデータを分析して該ソースフォントデータから複数のグリフ用のグリフデータを獲得するように動作可能である。グリフ分離ソフトウェアモジュールは、各グリフ用の該グリフデータを分離してストロークデータにするように動作可能である。中線抽出ソフトウェアモジュールは、該ストロークデータから中線データを抽出するように動作可能である。エレメント分析ソフトウェアモジュールは、該中線データを独特エレメントデータおよび共通データをして分類し、該独特エレメントデータおよび該共通エレメントデータを該複数のグリフの各グリフに関連づけるように動作可能である。
フォントデータは代表的にはコンピュータデバイスに格納され、テキストをグリフとしてレンダリングするために用いられる。フォントは特定のタイプフェースデザインおよびサイズの文字のセットである。タイプフェースとは1セットの印刷された文字の特定のデザインであり、クーリエ、ヘルベチカまたはタイムズローマンなどである。関連する文字は代表的には、ラテン文字、ギリシャ文字、ひらがな、カタカナまたはハングル文字などのスクリプトを含み、これらのサブセットが特定の言語を書くのに用いられる。
グリフとは、文字を表すために用いられる視覚的エレメントである。グリフは文字画像の実際の形状である。フォントおよびスタイルなどのテキスト提示の局面はグリフに当てはまる。例えば、文字「c」のイタリック体のタイムズのフォントおよび文字「c」のボールドのタイムズのフォントはそれぞれ対応するグリフを有する。
テキストをレンダリングする際に用いられるテキストデータを格納するように動作する代表的なコンピュータデバイスは、パーソナルコンピュータまたはモバイル通信デバイスである。図1は、ディスプレイ102上にテキストを表示するように動作する一例としてのモバイルデバイス100のブロック図である。モバイルデバイス100はアプリケーションプログラム104を含む。アプリケーションプログラム104は通常ストレージ108に格納されており、テキストがディスプレイ102上に表示されることを要求するように動作する。レンダリングエンジン106はアプリケーションプログラム104からの要求を受け取るように動作し、これに応答して、ストレージ108からテキストのフォントデータを取り出し、フォントデータをディスプレイ102上に表示されるグリフにレンダリングする。
モバイルデバイス100は携帯電話、ポケットベル、PDA、または他のモバイルコンピュータデバイスによって実現され得る。モバイルデバイス100が通信回路および機能を有していれば、モバイルデバイス100は代表的には無線ネットワーク110と通信するように動作する。ストレージ108は1以上のフォーマットでデータを格納するように動作し、データベース、ファイル、ROMまたはRAMメモリ、ネットワーク格納スペース、またはさらにはフラッシュメモリモジュールなどのレンダリングエンジン用メモリストレージを含み得る。ディスプレイ102はCRTモニタ、LCDモニタ、または他の同様のディスプレイデバイスであり得る。1つのこのような例示的モバイルデバイス100は、「親指での使用に最適化されたキーボードを有するハンドヘルド電子デバイス」という名称の米国特許第6,278,442号に開示されたタイプのものであり得、上記特許の全体をここに参考のため援用する。
テキストのフォントデータは、文字の「スケルトン」によって規定されるストロークフォントとして格納され得る。スケルトンは他のグリフと共通であり得るエレメントと、特定のグリフに特有であり得る独特のエレメントとを含む。レンダリングエンジン106は、文字のスケルトンをレンダリングしてディスプレイ102上に表示するグリフを生成する。
図2は、一例としてのグリフのスケルトンを格納するように動作する小型フォントフォーマットデータ構造200のブロック図である。対応する複数のグリフを表現するために複数のデータ構造200が格納され得る。データ構造200はモバイルデバイス100上のストレージ108内に格納され得る。
データ構造200は例として、共通エレメント202と独特エレメント212とを含む。各共通エレメント202は、エレメント識別子204、シフトX値206、シフトY値208、およびスケーリング値210を含む。共通エレメント識別し204は2以上のグリフに共通であり得るエレメントに対応する。各独特エレメント212は、独特エレメント識別子214およびエレメント記述216を含む。独特エレメント識別子214は特定のグリフに独特のエレメントである。特定のグリフは、共通エレメント202、独特エレメント212、または共通エレメント202と独特エレメント212との組み合わせによって表現され得る。
エレメントデータベース250は、共通エレメント識別子204によって識別された共通エレメント202用の記述データ218を格納する。記述データ218とは、エレメントの線および曲線を規定する、X−Y座標系内の点のセットである。しかし、他の記述データもまた用いられ得る。
図2の一例のデータ構造200によって表現される特定のグリフは、共通エレメント識別子001、020および420によって識別された共通エレメント202を含む。しかしエレメントデータベース内の記述データ218は共通エレメントの形状を記述するにすぎないため、共通エレメント202は代表的には、このような共通エレメント202を有する各特定のグリフによって必要とされるように、X−Y座標系内でシフトしスケーリングされる。したがってシフトX値206は、X−Y座標系のx軸に沿った共通エレメント202のシフトに関するデータを含み、シフトY値208は、X−Y座標系のy軸に沿った共通エレメント202のシフトに関するデータを含む。スケーリングデータ210は、特定のグリフによる共通エレメントのスケーリングに関するデータを含む。エレメントの得スケーリングはエレメント212のサイズを増大または縮小し得る。
独特エレメント212は特定のグリフに独特のエレメントであり、したがってエレメントデータベース250には格納されない。各独特エレメント212は独特エレメント識別子214および記述データ216によって表現される。記述データは、独特エレメントの線および曲線を規定する、X−Y座標系内の点のセットである。
別の実施形態では、独特エレメント212はエレメントデータベース250に格納され得、対応する独特エレメント識別子214によって識別され得る。したがってデータ構造200は独特エレメント212用の独特エレメント識別子214のみを格納する。
レンダリングエンジン106は、特定のグリフに対する要求に応えて、ストレージ108に格納された対応するデータ構造200にアクセスし、エレメント202および212によるスケルトンを構築する。スケルトンはその後レンダリングエンジン106によるレンダリングのためにフォントデータとして利用される。レンダリングエンジン106はその後レンダリング中に、タイプフェースのスタイル、線の太さ、および他の特徴を適用する。別の実施形態では、エレメント202および212によるスケルトンは、レンダリングエンジン106外部の別のアプリケーションまたはプロセスによって構築され得、その後レンダリングエンジン106に提供され得る。
複数のフォントがモバイルデバイス100内で用いられる場合、ストレージ108内に別々のエレメントデータベース250が格納され得る。各別々のデータベース250は特定のフォントに対応し得る。あるいはすべてのフォントデータが単一のデータベース250に格納され得る。
図3は、中国語日本語韓国語(「CJK」)イデオグラフ304の異なるグリフの共通エレメント302、およびヨーロッパグリフ308の異なるグリフの共通エレメント306の反復使用を示す。共通エレメント302はCJKイデオグラフ304の異なるグリフで示されており、共通エレメント306はヨーロッパグリフ308の異なるグリフで示されている。各特定のグリフに応じて、共通グリフ302および306はシフトされスケーリングされる。
図4は、3つの韓国語グリフ404、406、408に用いられる共通エレメント402のシフトおよびスケーリングを示す。第1の韓国語グリフ404は共通エレメント402を、シフトもスケーリングもされていない静止形態で示す。第2の韓国語グリフ406は1方側にシフトされた共通エレメント402を示す。第3の韓国語グリフ408は大きなサイズにスケーリングされた共通エレメント402を示す。
図5Aは、ソースフォントデータからストロークフォントデータを生成する方法のフローチャートを提供する。一実施形態では、ソースフォントデータはアウトラインフォントデータである。アウトラインフォントデータの一例は、TrueType(商標)フォント仕様によるフォントデータであり、TrueType(商標)フォントファイル「グリフ」テーブルに格納されている。他のアウトラインフォント情報もまた用いられ得る。
各グリフのために、グリフ分析2000、グリフ分離3000、中線抽出4000、エレメント分析5000、および変換6000の工程が行われる。図5Aのプロセスは代表的にはサーバまたはパーソナルコンピュータなどのコンピュータデバイス上で実行されて、モバイルデバイス100に格納するデータ構造200およびエレメントデータベース250を準備する。図5Aのプロセスは例えば、コンピュータデバイスにプロセスを実行させるソフトウェアアプリケーションプログラムまたは命令セットの例示的構造を含み得る。プロセスは単一のコンピュータデバイスに実装されてもよいし、コンピュータネットワーク上で通信するいくつかのコンピュータなどのいくつかのコンピュータデバイスに亘って配布されてもよい。
図5Bは、グリフ分析工程2000のより詳細なフローチャートである。グリフ分析工程2000において、所与のグリフに関する情報が収集されグリフの形状が単純化される。グリフ分析工程2000は、グリフ単純化2100、輪郭分析2200、内容分析2300、および輪郭点分析2400を含む。特に述べない限り、輪郭は到底のグリフの多角形状であり、点は頂点である。グリフは、文字「l」に対する以下のグリフのように単一の輪郭を有していてもよいし、シンボル「Θ」に対する以下のグリフのように複数の輪郭を含んでいてもよい。
グリフ単純化の工程において、所与のグリフのアウトラインが単純化される。輪郭分析工程2200において、所与のグリフの輪郭が内部輪郭群と外部輪郭分とに分けられる。内容分析工程2300において、所与のグリフの輪郭が処理されて輪郭の内容が決定される。輪郭点分析工程2400において、各輪郭点に関連するデータが収集される。このデータはデカルト座標、他の点に対する該点の角度、有効隣接点などを含み得る。
図6は、グリフ単純化工程2000の後の、単純化されなかった形態600と単純化された形態のグリフを示す線図である。図示するように、グリフ600は、直線セグメントとベジエ円弧とを含む輪郭612、614および616を含む。グリフ600の輪郭612、614および616円で囲んだ部分で単純化されて後の工程の処理を単純化する。処理低減が必要でないか処理低減に特に関心がなければ、グリフ単純化工程2100は省略され得る。
単純化は所与のグリフの形状の冗長点を除去することによって達成される。図5Cは例示的単純化プロセスを示す。単純化プロセスは、クラスタ除去プロセス2102、ベジエ円弧度低減プロセス2104、および多角形単純化プロセス2106を含む。他の単純化プロセスもまた用いられ得る。
クラスタ除去プロセス2102において、点が近接していて輪郭において有意なセグメントを規定できないというような点の群(「クラスタ」)が、点またはセグメントを除去することにより単純化されて新しいセグメントになる。代表的には、所与のグリフの形状をほとんど又は全く変形することなくグリフ規定から除去され得る比較的短いセグメントまたは点がある。
セグメント除去のために、冗長セグメントの最大長および/または最大角度が規定される。最大長および/または最大角度の特定値はユーザが規定してもよいし、単純化基準に基づいて自動的に決定されてもよい。代表的には最大長および/または最大角度が大きいほど単純化がより追加されるが、視覚的にも変形が追加される。最大長は代表的には所望の最終ストロークフォントの所望の質によって決定される。
特定値以下の長さおよび/または角度を有する直線セグメントは、グリフのアウトラインから1以上の点を除去することにより単純化または除去される。除去プロセスは、すべての輪郭点に対して、一対のn−ni+1頂点によって規定される各セグメントの長さを決定すること及び長さ条件および/または角度条件を満たすセグメントを除去することを反復することによって実行され得る。除去されたセグメントの数がゼロになるまで各輪郭は反復的に処理される。この相互作用プロセスは、グリフのアウトラインの輪郭の各々に対して反復される。
ベジエ円弧度低減プロセス2104において、ベジエ円弧が単純化される。ベジエ円弧は、第2(2次ベジエ)または第3(3次ベジエ)度の多項式によって規定される。2次ベジエ円弧は3つの点のシーケンス、すなわちオン曲線−オフ曲線−オン曲線として規定される。3次ベジエ円弧は4つの点のシーケンス、すなわちオン曲線−オフ曲線−オフ曲線−オン曲線として規定される。「度低減」とは、3次円弧を円錐円弧に低減し、それにより多項式を3から2に低減するプロセスである。度低減により、3次円弧の2つのセグメントの交点が判明する。例えば3次円弧が4つの頂点、n、ni+1、ni+2、ni+3によって規定されると、ni+1セグメントとni+2−ni+3セグメントとの交点が決定される。その後交点は円弧の新しいオフ曲線点として規定され、円弧はさらに、n−新しい輪郭/オフ曲線点−ni+3として規定される。頂点ni+1およびni+2は、単一の新しいオフ曲線点に置換される。こうして円弧の開始点および終了点、ならびに輪郭の有意でない点の数が低減される。もちろん他の円弧単純化ルーチンもまた用いられ得る。
多角形単純化プロセス2106において、それぞれの側において直接隣接する2点によって規定される線からある距離にある輪郭点が除去される。例えば、直角と、点と2つの隣接する点とによって規定される角度との差が一定の値または「最大角度」未満であった場合に点が除去される。最大角度はユーザが規定してもよいし、グリフ単純化の所望の量にもとづいて自動的に決定されてもよい。
説明のために、所与の3つの頂点ni−1、n、ni+1、角度ni−1−n−ni+1を求める。この角度と直角との差が最大角度未満であると、n点が破棄される。オフ曲線点およびオン曲線点にはそれぞれ2つの閾値がある。例えば、3つの頂点ni−1、n、ni+1のn点がオン曲線であれば、ある最大角度sが用いられ得、n点がオフィウ曲線であれば、別の最大角度sが用いられ得る。
単純化後、輪郭分析工程2000において、所与のグリフの輪郭が内部輪郭群と外部輪郭群とに分けられる。図7は、内部輪郭704と外部輪郭706とを有するグリフ702のアウトライン形状200を示す。内部輪郭704は例として外部輪郭706内の閉ざされたスペースを規定する。このような形状は「穴」を有する多角形として記載され得る。外部輪郭706が多角形の外部境界であり、内部輪郭704が多角形内部の「穴」を規定する。
TrueType(商標)によると、内部輪郭および外部輪郭は逆の方向に順序立てられると規定される。例えば、外部輪郭方向は時計回りであり内部輪郭方向は反時計回りであるか、またはその逆である。輪郭の方向を決定するために、各輪郭の点が反復され、輪郭の符号を付けられた領域が多角形の面積の公式によって演算される。
Figure 2005531813
上記式において、Vは多角形の頂点であり、nは多角形の頂点の総数である。得られたpoly_areaの値は、輪郭が時計回りに順序立てられているか反時計回りに順序立てられているかを示す符号を付けられた値である。正の値は反時計回りの方向に対応し、負の符号は時計回りの方向に対応する。面積がゼロであれば、方向は概して規定されず、したがってデフォルトの時計回りまたは反時計回りの方向として設定され得る。一実施形態では、面積がゼロであれば輪郭は反時計回りの方向であると規定される。
分けられた後、所与のグリフの輪郭が処理されて、内容分析工程2300でその内容が決定される。各外部輪郭は分析されて、内部輪郭がその中に含まれるか否かが決定される。各輪郭はその後それにしたがって分類される。分類によって、各グリフの独立形状が決定され、その後グリフは独立形状の集合体として規定され得る。独立形状の各々は1以上の輪郭を有し、第1の輪郭が外部輪郭であり他の任意の輪郭が内部輪郭である。
内容物は、すべての内容輪郭を取りその点を反復する単一のブルートフォースアルゴリズムによって決定される。他の内容物アルゴリズムもまた用いられ得る。ブルートフォースアルゴリズムでは、各内部輪郭のすべての点が反復されてチェックされ、すべての外部輪郭に関してそれが外部輪郭内にあるか否かが決定される。内部輪郭のすべての点が外部輪郭のうちの1つの内部にあれば、内部輪郭は外部輪郭に完全に内包される。一実施形態では、外部輪郭が内包する輪郭として規定され、内部輪郭が内包される輪郭として規定される。一旦外部輪郭と内部輪郭とが分類されると、所与のグリフは一連の独立形状データ構造として表現される。各データ構造は所与のグリフおよびグリフの内包する輪郭および内包される輪郭に関する情報に対する参照を含む。
輪郭の点はその後、輪郭点分析工程2400において処理される。生グリフデータに対応する残りの各点に関する他の情報が分析される。図5Dの工程2402に示すように、分析から点座標が得られる。例えばTrueType(商標)では、TrueType(商標)ファイルから情報が得られる。この情報は点の座標を含み、フォントユニット、点のタイプ(例えばオン曲線かオフ曲線か)、TrueType(商標)ファイルからの生グリフデータの点のアレイ中の点のインデックスが特定される。
独立形状の各々の点が分類されて、各点に関する追加の情報が提供される。各点の内角が決定され、この値に基づいて、工程2404に示すように、点が突出したタイプか反り返ったタイプかに割り当てられる。工程2406に示すように、各々の点の有効な隣接点が決定される。
各点を突出したタイプか反り返ったタイプかに分類する工程において、頂点nの2つの角度が決定される。1方の角度が内角と分類され、他方の角度が外角と分類される。内角は点およびそれに直接隣接する2つの点によって規定される点であり、多角形の内部または閉じこめられた領域に属する(多角形の頂点をnとすると、ni−1、n、ni+1によって規定される三角形がある)。外角は点およびそれに直接隣接する2つの点によって規定される点であり、多角形の外部または閉じこめられていない領域に属する(再び多角形の頂点をnとすると、ni−1、n、ni+1によって規定される三角形がある)。
頂点nにおける2つの角度の合計は360度である。頂点n点は点ni−1、n、ni+1のセットにおいて共通の点である。角度を規定するためには、頂点ni+1がni−1−nセグメントによって規定される線の第1の側にあるのか第2の側にあるのかが決定される。三角形の符号の付いた領域を決定する公式が用いられ、三角形は3つの頂点ni−1、n、ni+1によって規定される。時計回りに方向付けられた輪郭の場合、三角形の面積の正の値は、ni+1に対応する三角形の領域がni−1−n頂点対によって規定される線の第1の側にあることに対応する。したがってnは反り返ったタイプである。逆に負の値またはゼロは、n頂点がni+1−n頂点対によって規定される線の右側にあることに対応する。したがってnは突出したタイプである。反時計回りに方向付けられた輪郭の場合、規定は逆である。
角度の値は余弦法則によって決定され得る。したがって鈍内角を有するいずれの点も反り返った点と分類され、鋭内角を有するいずれの点も突出した点と分類される。本発明の一実施形態によると、内角が直角である場合、点は突出した点と規定され得る。別の実施形態では、内角が直角である場合、点は反り返ったと規定され得る。
工程2406に示すように、有効な隣接点(「有効隣接点」)は各点に関しても決定される。以下の条件を満たす場合、所与のグリフの輪郭のいずれかの点が他のいずれかの所与の点の有効隣接点である。(1)両方の点が同一の形状に属する場合、すなわち両方の点が内部輪郭または内包される内部輪郭に属する場合、および(2)2つの点によって規定される線セグメントがその独立形状の輪郭の他のいずれのセグメントにも交差しない、すなわち、2つの点によって規定される線セグメントがその独立形状内に完全に内包されている。いずれかの点が上記2つの条件を満たす場合、その点は問題の点の有効隣接点のリストに加えられる。有効隣接点はその後所与の点からの距離に応じて分けられ、最も近い隣接点が第1とランクづけされる。
独立形状の領域はその外部輪郭と内部輪郭との結合によって決定される。
Figure 2005531813
上記においてSは独立形状の面積、Aareaは独立形状Sの外部輪郭の面積、Bi...nは独立形状Sの内部輪郭の面積である。
所与の点の有効隣接点は所与の点から「見られた」点と特徴づけられる。直線セグメントが引かれて、ある点を所与の点に連結し、2つの点の間の視覚パスを表現する。直線セグメントが独立形状またはその輪郭の別の線セグメントに妨害されなければ、その点は所与の点の有効隣接点である、すなわち、その点は所与の点から「見られて」いる。
図8は、点間の線でグリフ形状を示す線図であり、点800の有効隣接点および非有効隣接点を図的に説明する。点800と他の点802、804、806および808との間の線は、他の点802、804、806および808が点800の有効隣接点であることw示す。他の点802、804、806および808は、グリフ形状のいずれのセグメントにも交差することなく点800から「見られて」おり、点800と同一の独立形状に属する。点800と点810および812との間の線は、第1の点810および820が点800の有効隣接点ではないことを示す。なぜなら、点800と第1の点810および820とは同一の独立形状に属していないからである。点800と点814および点816との間の線は、第2の点814および816が点800の有効隣接点ではないことを示す。なぜならこれらの線はグリフ形状のセグメントに交差しているからである。
グリフ分離工程3000において、グリフは一連の「ストローク」に分離/分解される。ストロークは必ずしも所与のグリフの独立形状の各々に対応しているわけではない。1つの独立形状は複数のストロークに分離/分解される。他に特定しない限り、用語「分離」および「分解」は交換可能に用いられる。
図9は、参照符号902、904、906、908、910および912によって示されるストロークに分離されたサンプルグリフ900の一例を示す線図である。さらに図示するように、独立形状914は参照符号906、908、910によって示される3つのストロークを有する。
ストロークは、文字がペンで引かれるか筆でペイントされる方法に対応する。例えば、いつくかの文字は僅か1つのストロークで引かれ得、他のストロークはいくつかのストロークを必要とする。したがってペンの自然な動きという概念から「動きベクトル」が導かれる。動きベクトルは、ペンの自然な動きに似た同一のパスに沿ったストロークの点に対応する。アウトラインのすべての点が同一のパスに沿っているわけではないため、動きベクトルは、ストロークの動きを規定するためにある点のセットのみに適用される。
図5Eは例示的グリフ分離プロセスのフローチャートである。抽出された各ストロークは幾何学的に閉多角形または輪郭と規定される。各ストロークは2つの側、ストロークのすなわち第1の側およびストロークの第2の側を有する。各側は一対の開始および終了点を有し、その側が開始および終了する点を示す。両方の側のすべての点が順に格納されて、第1の側の第1の点から第2の側の最後の点までの順のインクリメントを容易にする。
一実施形態において、各輪郭はアレイデータ構造の点によって表現され得、各点はアレイのエントリーインデックスによって参照され得る。開始点が一対の点を選択することにより決定されて、工程3002に示すように第1および第2の側を規定し、工程3004に示すように第1および第2の側の点をインクリメントする。ストロークの第1の側はアレイ内の次のエントリーに移動し、反対の側はアレイ内の前のエントリーに移動する。例えば、第1の側の現在の点が点3であれば、インクリメント先の次の点は点4である。同様に、第2の側の現在の点が点11であれば、インクリメント先の次の点は点10である。
点を横断する際に、輪郭の第1および第2の側を規定するパスが点から点に移動する。横断されたパスは点インクリメントセットとして格納され、各点がインクリメントした後、工程3006に示すように、システムはストロークが閉じているか否かを決定する。第1および第2の側が同一の点で会うと、ストロークプロセスは完了する。他の条件を満たした際にストロークが完了してもよい。
ストロークが閉じていない場合、工程3008に示すように、各インクリメント点が候補点であるか否かが決定される。候補点は、2つ以上のストロークが互いに交差する可能性のある、アウトライン中のターンまたは角度に対応する。したがってインクリメントする先の次の点は、パスに沿った次の点でないかもしれない。むしろインクリメント先の次の点は、動きベクトルに対応する点であり得る。一実施形態では、候補点は鈍内角を有する反り返った点である。
インクリメント先の次の有効点は「移動先」点である。移動先点は必ずしも候補点の直接の隣接点であるとは限らない。むしろ移動先点は動きベクトルに対応し、現在のストロークが、ストロークを引くために用いられるペンの自然な動きという概念に対応する自然な連続性を受け取る。したがって候補点からパスに沿った移動先点ではない次の点への移動は、ストロークの自然な連続性という概念に違反する。そのため、工程3010に示すように、候補点にとっての有効な移動先点は、動きベクトルに基づいて選択され、有効な移動先点は「オカーレンス」または「イベント」として格納される。
逆に、側の現在の点が候補点でない場合、動きベクトルの決定は適用される必要がない。この場合、工程3012に示すように、有効な移動先点は動きベクトルとは無関係に選択され得る。
ある側の「移動先」点は、その側の前の点とその側の現在の点とによって形成される線に近接する。点が近接しているか否かは、水平角と、前の点を含む3つの頂点(side_previous_point)、現在の点(side_current_point)、おおび提案された「移動先」点とによって規定される角度との差に基づいて決定される。その差は好ましくは特定された平坦度閾値未満である。各特定のフォントについて、平坦度閾値は異なり得、代表的には10度から25度の範囲である。
評価すべきいくつかの提案された移動先点がある一実施形態では、有効な移動先点として選択された点は、その側の現在の点に最も近い点である。評価すべきいくつかの提案された移動先点がある別の実施形態では、有効な移動先点として選択された点は、現在の点との差が平坦度閾値に対して最も低い点である。他の評価基準もまた用いられ得る。
有効な移動先点が見つかれば、有効な移動先点まで移動が続く。工程3012に示すように、候補点から有効な移動先点までの移動は「オカーレンス」または「イベント」として格納される。イベントはさらに各側について相互イベントとして分類される。イベントが両方の側で同時に起こったときに相互イベントが記録される。相互イベントは、両方の側の候補点とそれに対応する移動先点の対として格納される。イベントは2つのストロークを連結し、他のストロークの潜在的開始点として作用し得る。
工程3014では、所与のストロークのすべての点が処理されたか否か、またはストロークが閉じているか否かが決定される。まだ処理される点が残っているか、ストロークが閉じていない場合、工程3004〜3012が繰り返される。それ以外の場合、工程3016において、処理すべきイベントまたはグリフの点が残っているか否かが決定される。残っている場合、工程3018に示すように、点の新しいセットが選択され、工程3004〜3016が繰り返される。それ以外の場合、プロセスは完了する。
図10は、グリフ分離プロセス3000によって分離された例示的グリフ1000の線図である。例示的グリフ1000は点1〜37によって規定されたアウトライン形状を有する。矩形1002、1004、1006および1008内に閉じこめられた開始点対は、ストローク1010、1012、1014および1016の開始点である。矩形1006、1008によって示された点9、30および32、35は、ストローク1014および1016の開始点であるイベントでもある。円で囲まれた点9、33、18、32および36は候補点であり、これらの移動先点は、中央の矢印1010,1012、1014および1016によって示された各ストロークの方向によると、それぞれ30、10、37、35および1である。候補点33はストローク1014と1016とに共通であり、したがってストローク1014の移動先点10およびストローク1016の移動先点34に関連する。ストローク1010、1012、1014および1016の各々は、動きベクトルを示す矢印によって示される。
図5Fは、グリフ分離プロセス3000のより詳細なフローチャートである。工程3020において、様々な処理値が設定される。一実施形態では、様々な処理値は、平坦度閾値、開始閾値、開始スパン深さ値、マークされていない点の許容値、およびマークされていないセグメントの許容値を含む。
平坦度閾値は潜在的移動先点を評価するために用いられる。開始閾値値開始スパン深さ値は開始点を決定するために用いられる。マークされていない点の許容値は、所与の形状に関していくつの未処理点が許容されるかを特定するために用いられる。マークされていないセグメントの許容値は、所与の形状に関していくつの未処理セグメントが許容されるかを特定するために用いられる。
その後工程3022に示すように、一対の開始点が選択される。一実施形態では、開始点は、x−y軸上の位置に応じて選択される。例えば図10の点5、6、21および22のような最も左の対が開始点として選択される。開始点を選択する他の方法もまた用いられ得る。
開始閾値は点を候補として規定するために用いられる。問題の頂点の角度が開始閾値未満であれば、点は有効な開始点対であり、クリーンな開始点として規定される。両方の角度が開始閾値よりも大きければ、その対は破棄され別の対が取り上げられる。一方の角度が開始閾値よりも大きければ、その角度と360度と差である角度が開始閾値と比較される。比較された角度が開始閾値未満であれば、その点の対は有効な開始点対でありダーティな開始点として規定される。
対は直接隣接した点ではない。代表的にはこれらの間に少なくとも1つの点がある。点の数による距離の深さは開始スパン深さ値によって規定される。
開始点を選択するプロセスは、フォントパターンを利用することによって単純化され得る。一実施形態では、フォントパターンが用いられると、フォントパターンによって選択された開始点対が他の対よりも優先される。同様に、クリーン対がダーティ対よりも優先される。すべての可能性のある対を決定した後、工程3024で対の優先順位が決められ、工程3026において優先順位に応じて選択される。各優先群内では、点間の距離が最も短い対が選択される。
一対の開始点を取り上げた後、工程3028に示すように、ストロークの2つの側が規定される。各側は開始点を有し、工程3030に示すように、この開始点からのパスに沿ってインクリメントされる。一実施形態では、各形状の点はアレイデータ構造に格納され、パスに沿ってインクリメントされた結果、開始点を格納するアレイセルからアレイ内を反復する。
その後工程3032に示すように、点が評価されて候補点か否かが決定される。候補点であった場合、工程3010および3012に関して上記したように有効な移動先点が決定される。点が候補点でない場合、工程3034に示すように、システムはパスに沿って次ぎの点までインクリメントする。非候補点については、両方の側の現在の点が有効な隣接点であれば現在の点がインクリメントされて待ち角度評価を満足し、次の点は別の既に生成されているストロークによっては所有されない。これらの条件は代表的には、候補点でない点にのみ有効である。なぜなら候補点はストロークの交差により、いくつかのストロークによって所有され得るからである。
両方の側の現在の点が有効な隣接点であるか否かを決定するために「見ることができる」ルールが用いられる。見ることができるルールは、各インクリメントにおいて、両方の側の現在の点が互いに「見」れば、すなわち、第1の側の現在の点がその有効隣接点中に第2の側の現在の点を有していれば、満たされる。見ることができるルールの違反は、オカーレンス中に間違った移動先点を選択したこと、またはグリフの形状のレイアウトによって起こり得る。
所与の候補点についての有効移動先点の決定において、見ることができるルールに違反すると、提案された移動先点が破棄される。違反がグリフの形状のレイアウトによって起こった場合、現在の点は破棄されて現在の点に最も近い点が一方の側の有効隣接点リストから選択される。例えば、見ることができるルールに対する違反がストロークの一方の側に沿って移動している間に起こった場合、その側の現在の点が破棄されて他方の側の現在の点の連接点のリストから最初に入手可能な点に置換される。
待ち角度値は、ストロークの両方の側に沿った移動のインクリメントレートを正規化することによって、可能性のある「見ることができる」ルール違反を素子するために用いられる。例えば、第1の側に沿った点が少なければ第1の側は迅速にインクリメントし、点間の距離は第2の側の点に比べて大きい。したがって第2の側はより多くの点を含み、同一のインクリメント数だけ第1の側より遅れている。両方の側の現在の点が近接することを容易にするために、現在の点によって規定された2つの側に対する角度が、待ち角度の各側に関して比較される。一方の側の角度が待ち角度未満であれば、その側の現在の点はインクリメントされず、他方の側の現在の点がインクリメントされる。
図11は、いくつかの点の待ち角度を示す。矩形は点1〜9によって規定され開始点1〜9を有する。パスは開始点1および9から点2および8までそれぞれインクリメントする。待ち角度αおよびαは閾値待ち角度(例えば66度)と比較される。両方の待ち角度αおよびαとも66度より大きいため、両方のパスがインクリメントされる。待ち角度αおよびαが閾値待ち角度と比較される。待ち角度αは45度であり待ち角度66度未満であるため、点7からのパスは点6にインクリメントされないが点3からのパスは点4にインクリメントされる。
両方の側が対応する次の点に移動する毎に、またはオカーレンスまたはイベントが起こった後、システムは、図5Fの工程3036に示すように、現在処理されているストロークが閉じ得るか否かを決定する。ストロークが閉じることは、2つの側を規定するすべての点、各側の開始点および終了点対、およびイベントを格納するデータ構造を規定する。すべての処理された点は候補点を除いて所有されていると分類される。なぜなら候補点はいつくかのストロークに共通であり得るからである。候補点が共通であるストロークの数はデータ構造に格納され得る。
ストロークを閉じると、工程3038に示すように、システムはグリフの形状のいずれかの点が未処理のまま残っているか否かお決定する。例えば、いずれかの点が所有されてもいず候補点でもない場合、その点は処理されていない。イベントが評価されて、処理すべきイベントが残っているか否かが決定される。イベントは列に格納され得、列内の第1のイベントは次のストロークの開始点対として処理される。イベントの列が空であれば、工程3040に示すように、新しい開始点が取り上げられて一対の開始点が選択される。処理すべき点がなくなったとき、または未処理の点の数がユーザ規定された値以内となったとき、点処理は完了する。
図12は図10のグリフの処理からの例示的ログを示す。ログは分離の処理工程および各ストロークが含む情報を列挙している。例示的グリフの独立形状のすべては反復されて、各形状がストロークに分離される。
グリフ分離3000の最後の工程は、工程3042に示すように、ストロークのマージである。冗長を低減するために、あるストロークは1つに統合され得、小型フォントフォーマット下でのグリフ内の線の数が減少される。マージプロセスは完全に内包されたストローク、明示的に連結されたストロークおよび暗示的に連結されたストロークをサーチする。
完全に内包されたストロークとは、別のストローク内に完全に含まれたストロークである。一実施形態では、ストロークが完全に含まれているか否かの決定は、第1のストロークの全ての点が第2のストロークの点によって規定された領域内に含まれているか否かを決定する工程を含む。ストロークが完全に含まれていれば、破棄される。
明示的に連結されたストロークとは、部分的に相互イベントによって規定されたストロークである。形状の両方の側でイベントが起こると、イベントは相互イベントを規定する。相互イベントは、形状の各側で1対、すなわち2対の点を規定する。各対はその後イベントがイベント列から処理されると、別のストロークの開始点対を規定する。したがって1つの相互イベントは2つのストロークのソースであり得る。これらのストロークは1つにマージして単一のストロークを形成し得る。
図13は、明示的に連結されたストロークを示す。点1〜20によって規定されたグリフはストローク1020および1022を含む。相互イベント1024および1026はそれぞれ、点13〜18および3〜8によって規定されたストロークの開始点である。したがってこれらのストロークは組み合わされて、点3〜8および13〜18によって規定された、明示的に連結されたストローク1022を形成する。
暗示的に連結されたストロークは、1つのストロークの終了点対が別のストロークの開始点対でもあるときに起こる。ストロークの点は反復されて、ストロークが合致する終了点または開始点を有するか否かが決定される。有していればストロークは単一のストロークにマージされる。
マージ工程の後、分離工程3000は完了し、中線抽出4000のプロセスが行われる。中線は、所与の幾何学形状の多角形スケルトンに対応する。例えば矩形の中線は、矩形の長手方向軸に対応する直線であり得る。したがってスケルトンは、形状の概略図を提供するセグメントを含む1以上の線である。所与のグリフをストロークに分解することにより、グリフスケルトンの導出が容易になる。この場合、各ストロークはグリフの最終のストロークベース形状の中線のベースを提供する。中線抽出プロセス4000において、すべてのストロークの対応する中線が抽出される。抽出された中線916は例えば図9に示すように示される。
各ストロークは2つの側と一対の開始点および終了点によって規定される。中線はストロークのすべての点を反復することによって決定される。第1の側の各点について、第2の側からの対応する最も近い点が見つけられる。これらの2つの点によって規定されるセグメントについて、中線が見つけられ中線に追加される。プロセスは第2の側の各点について繰り返される。両方の側が処理された後、両方の中線の長さが計算される。長い方の中線がストロークの中線であると規定される。
最後の中線は、上記したグリフ単純化プロセス2100に類似の単純化プロセスによって単純化され得る。これは、上記した分離プロセス3000のマージプロセスに関して上記したものと同様の様式で中線をマージすることにより行われる。
エレメント分析工程5000において、反復的パターンを有するエレメントを求めてグリフがサーチされる。本発明の一実施形態によると、パターンマッチングによってパターンが反復的であるか否かが決定される。パターンマッチングはパターンのデータベースを用いることによって行われ得る。フォント内で頻繁に起こるパターンがフォントから抽出される。グリフはデータベース内で規定され、合致するパターンを有するグリフの特定のセクションが格納される。パターンマッチングプロセスに先だってデータベースから情報が読み出される。
パターンマッチングプロセスにおいて、所与のグリフの輪郭がデータベースからのパターンと比較される。比較は、形状のあるパラメータを測定する不変機能から得た類似性測定に基づいて行われる。これらのパラメータは代表的には、形状が異なる幾何学的変形を経ても不変のままであり、したがって変形に対して「不変」である。
不変は、同等性、類似性、およびアフィンの変形によって決定され得る。同等性変形は距離を保存する平面の変形である。類似性は形状を保存する平面の変形であり、比例的にスケーリングする変形(ホモセティとしても知られる)を同等性で構成することにより得られる平面の変形である。アフィン変形は、線および平行性を保存する変形である。パターンマッチングに用いられる代表的な変形は、平行移動、比例的スケーリング、および非比例的スケーリングを含み得る。他の変形もまた用いられ得る。
例示的パターンマッチングプロセスは、2次元平面内の平行移動中に2つの形状の類似性を比較する。上記平行移動において、元の形状の全ての点がXまたはY軸に沿って以下の式を満たすようなシフト値だけシフトする。
Figure 2005531813
上記においてXおよびYは、形状およびパターンのi番目の点のXおよびY座標である。オフセットが知られていれば、1つの比較だけが必要であり得る。例えば、X(org)がX(new)から値を差し引くことによって得られ得る。
オフセットが知られていなければ、形状とパターンとの間で追加の比較が必要となり得る。例えば、形状およびパターンの最も右の点が、オフセット値を得るために差し引かれるXおよびY座標と決定される。形状の残りの点が選択され、点のXおよびY座標がオフセット値から差し引かれる。減算の結果パターンの対応する点のXおよびY座標が受け取られると、形状はパターンに類似である。形状のすべての点に関して減算の結果上記の結果が得られると、形状はパターンに類似である。逆に減算の結果XおよびY座標がパターンの点のXおよびY座標と異なれば、形状はパターンに類似ではない。したがって平行移動変形において、類似形状およびパターンの距離は不変のままである。
各グリフに関して、識別されたパターンは図2に関して上記したように共通エレメント202または独特エレメント212として識別される。合致パターンが見つからなければ、特定のストロークを記述するために独特エレメントが用いられる。
フォントエレメントを規定するために、ユニコードコンソーシアムによって提供されたフォントデータなどのデータが用いられ得る。例えばイデオグラフを規定するCJKグリフの場合、ラジカルベースのエレメント抽出が用いられ得る。ラジカルとは、CJK辞書でのサーチプロセスを単純化するために用いられるストロークまたはイベント完全なイデオグラフである。同様に、ユニコード仕様においても、すべてのイデオグラフはラジカルによってグループ化されている(例えばユニコード仕様の康県ラジカルまたはCJKラジカル補足を参照のこと)。これらのラジカルは抽出される主なエレメントである。パターンマッチングプロセスにおいて用いられるパターンデータは、グリフ、またはラジカルであるグリフの部分を含む。多くのグリフにおいて特定のグリフまたはグリフの一部が繰り返される場合、CJKのラジカルに加えて、追加のパターンが視覚推測に基づいて規定される。
別の例として韓国語ハングルシラブルの場合、各ハングルシラブルを分解してJamo文字にすることを許可する分解ルールが規定されており、これはユニコード仕様にもカバーされている。韓国語において、すべてのハングルシラブルはJamo文字からなり、したがってJamo文字は韓国語のハングルグリフをこうせいする基本的エレメントと考えられ得る。
他の言語の場合、例えばユニコード正規化チャートが用いられ得る。各構成グリフについて、これらのチャートは、複合グリフが含む単一グリフを規定する。ハングル、日本語、いくつかのCJKイデオグラフ、複合ラテングリフ、および複合アラビアグリフに対する正規化チャートがある。この情報はエレメント分析5000において小型フォントフォーマットのエレメントを規定するために用いられる。
別の実施形態では、特定のグリフデータなしでパターンマッチングが達成される。各形状が反復されて評価データベースに格納される。システムは、共通データベースに格納されたデータに基づいて共通のエレメントがあるか否かを繰り返し決定する。
変換工程6000において、アウトラインフォントの幾何学的データが小型フォントフォーマットの仕様に調整される。例えばTrueType(商標)タイプフェースデザインユニットで特定された元のフォントが小型フォントフォーマットデザインユニットに変換される。この変換は、フォントベースライン、フォントアセントおよびフォントディセントなどの様々なフォントメトリクスに曝され得る。他のメトリクスもまた用いられ得る。
変換工程6000では、図2を参照して上記したように、データ構造200のセットおよびデータベース250としてフォントデータが格納される。他のエレメントとパターンマッチングされたエレメントはエレメントデータベース250内に共通エレメント204として格納され、対応するグリフデータ構造200内で参照される。グリフデータ構造200は対応するシフトX値206、シフトY値208、およびスケーリング値210をも格納している。独特エレメント212は図2を参照して上記したように、記述データと共に格納されている。別の例示的データ構造は、上記で参照した仮出願第60/393,795号に記載されているようにスラングソフトフォントフォーマットである。他のデータ構造および格納アーキテクチャもまた用いられ得る。
変換工程6000が完了すると、フォントデータがモバイルデバイス100に格納されて、図1を参照して上記したようにアプリケーションプログラムまたはレンダリングエンジンと共に用いられ得る。変換工程6000はエレメント分析工程5000に組み込まれてもよい。
本出願のシステムおよび方法をフォントデータを例に述べてきたが、本出願のシステムおよび方法は、グラフィカルデータエンティティ、地図エンティティまたは他の視覚表示エンティティなどの他のデータタイプにも適用され得る。別の実施形態では、本発明のシステムおよび方法の例示的データ構造が小型フォーマットでマップデータを格納するために用いられ得る。例えば、市などの地理的領域が例示的データ構造の小型フォーマットで格納され得、市の地図を再構築するためにレンダリングエンジンによってアクセスされ得る。さらに、モバイルデバイスが位置を変更すると、モバイルデバイスが位置する新しい地理的領域に対する追加のマッピングデータがダウンロードされ得る。
この書面による記載は本発明を開示するため、および当業者が本発明を実施および使用することを可能にするために、最良の形態を含む説明的実施形態を用いている。他の形態およびデバイスも、それらが請求の範囲の文言または請求の範囲に規定されたものの均等物と変わらないエレメントを有している限り、請求の範囲に含まれる。
図1は、例示的モバイルデバイスのブロック図である。 図2は、小型フォントフォーマットデータ構造のブロック図である。 図3は、異なるグリフの共通エレメントの反復的使用を示す。 図4は、共通エレメントのシフトおよびスケーリングを示す。 図5Aは、アウトラインフォントからストロークフォントを生成する方法のフローチャートである。 図5Bは、グリフ分析プロセスのより詳細なフローチャートである。 図5Cは、例示的単純化プロセスのフローチャートである。 図5Dは、内容分析プロセスのより詳細なフローチャートである。 図5Eは、例示的グリフ分離プロセスのフローチャートである。 図5Fは、グリフ分離プロセスのより詳細なフローチャートである。 図6は、非単純化形態および単純化形態のグリフを示す。 図7は、内部輪郭および外部輪郭を有するグリフを示す。 図8は、点の有効および非有効隣接点を有するグリフを示す。 図9は、ストロークに分離されたグリフを示す。 図10は、分離されたグリフを示す。 図11は、いくつかの点の待ち角度を示す。 図12は、図10の例示的グリフの処理からの例示的ログを示す。 図12は、図10の例示的グリフの処理からの例示的ログを示す。 図12は、図10の例示的グリフの処理からの例示的ログを示す。 図13は、明示的に連結されたストロークを示す。
ストロークフォントはグリフに代表されるような文字の形状がストロークによって表されるフォントである。ストロークは代表的には線および曲線によって規定される。グリフの所与のセット用のストロークフォントデータに必要な格納スペースは代表的には対応するアウトラインフォントデータに必要なものよりもはるかに小さい。しかしストロークフォントは、アウトラインフォントに比べて質が低下したグリフを生成する。したがってストロークベースのフォントをレンダリングする現存のレンダリングエンジンは比較的限定された質のグリフを生成する。
米国特許第5,917,501号および第5,982,387号はアウトラインフォント生成装置および方法を開示している。特にアウトラインフォント手法は(1)基本的ストローク(スケルトン)情報を用いて各文字をストロークに分離すること、(2)ストロークを部分に分割すること、(3)各部分の輪郭を規定し文字を部分の集合体として表現すること、および(4)文字を出力する際に、文字を構成する部分の輪郭をビットマップイメージにし、文字のビットマップイメージを出力することを含む。基本的ストローク情報とは、文字の形態の基本的構造に関する情報であり、文字に肉付けする中線に関する情報ではない。
米国特許第6,288,725号は、ストローク形状制御情報構造と共に用いられるフォント情報構造を教示している。フォント情報データ構造は、1つの文字スタイルの各フォントの表現を容易にし、各ストロークの情報領域の構造は同一である。
米国特許第5,920,324号は、文字スケルトン情報16とエレメントスケルトン情報18とエレメント輪郭形状情報17とを含むフォントデータを教示している。文字スケルトン形態情報16は、対応する文字の各エレメント用の複数のフォント間で共用されるスケルトン形態を表す。エレメントスケルトン情報18は、フォントコードによって指定されたフォント内で用いられるエレメントのスケルトン形態を表す。エレメント輪郭形状情報17は、フォントコードによって指定されたフォント内のエレメントの輪郭形状を表す。

Claims (42)

  1. ソースフォントデータからフォントフォーマットデータを生成するシステムであって、
    コンピュータ読み取り可能媒体内に格納され、コンピュータデバイスに該ソースフォントデータを分析して該ソースフォントデータから複数のグリフ用のグリフデータを獲得させるように動作可能なコンピュータ実行可能命令を含む、グリフ分析ソフトウェアモジュールと、
    コンピュータ読み取り可能媒体内に格納され、コンピュータデバイスに各グリフ用の該グリフデータを分離してストロークデータにさせるように動作可能なコンピュータ実行可能命令を含む、グリフ分離ソフトウェアモジュールと、
    コンピュータ読み取り可能媒体内に格納され、コンピュータデバイスに該ストロークデータから中線データを抽出させるように動作可能なコンピュータ実行可能命令を含む、中線抽出ソフトウェアモジュールと、
    コンピュータ読み取り可能媒体内に格納され、コンピュータデバイスに該中線データを独特エレメントデータおよび共通データをして分類させ該独特エレメントデータおよび該共通エレメントデータを該複数のグリフの各グリフに関連づけさせるように動作可能なコンピュータ実行可能命令を含む、エレメント分析ソフトウェアモジュールと、
    を含むシステム。
  2. 前記グリフ分析ソフトウェアモジュールのコンピュータ実行可能命令が、
    コンピュータデバイスに前記グリフデータを内部輪郭データと外部輪郭データとに分けさせるように動作可能な輪郭分析ソフトウェア命令と、
    コンピュータに該内部輪郭データと該外部輪郭データとの内包を決定させるように動作可能な内容分析ソフトウェア命令と、
    を含む、請求項1に記載のシステム。
  3. 前記グリフ分離ソフトウェアモジュールのコンピュータ実行可能命令が、コンピュータデバイスに前記グリフデータから低減されたグリフデータを生成させるように動作可能なグリフ単純化ソフトウェア命令をさらに含む、請求項3に記載のシステム。
  4. 前記グリフデータから低減されたグリフデータを生成させるように動作可能なグリフ単純化ソフトウェア命令が、
    コンピュータデバイスに前記グリフデータ内のデータクラスタを低減させるように動作可能なクラスタ除去ソフトウェア命令と、
    コンピュータデバイスに前記グリフデータ内のベジエ円弧データを低減させるように動作可能なベジエ円弧低減ソフトウェア命令と、
    コンピュータデバイスに前記グリフデータ内の多角形規定データを低減させるように動作可能な多角形単純化ソフトウェア命令と、
    を含む、請求項3に記載のシステム。
  5. 前記グリフ分析ソフトウェアモジュールのコンピュータ実行可能命令が、コンピュータデバイスに少なくとも1つの輪郭特徴に応じて前記グリフデータを分類させるように動作可能な輪郭点分析ソフトウェア命令をさらに含む、請求項3に記載のシステム。
  6. 前記少なくとも1つの輪郭特徴が、突出したおよび反り返った角度特徴を含む、請求項5に記載のシステム。
  7. 前記少なくとも1つの輪郭特徴が、有効な隣接点特徴を含む、請求項5に記載のシステム。
  8. 前記グリフ分離ソフトウェアモジュールのコンピュータ実行可能命令が、コンピュータデバイスに、
    前記グリフデータから開始ストロークデータを選択させ、
    該開始ストロークデータから該グリフデータ中をインクリメントさせ、
    該インクリメントしたグリフデータが候補データか否かを決定させ、
    該インクリメントしたグリフデータが候補データであれば、動きベクトルデータにしたがって該グリフデータ中の次のインクリメントを選択させるように動作可能な命令を含む、請求項1に記載のシステム。
  9. 前記グリフ分離ソフトウェアモジュールのコンピュータ実行可能命令が、コンピュータデバイスに、
    前記動きベクトルにしたがって前記グリフデータ内の前記インクリメントをイベントデータとして格納させ、
    該グリフデータを次にストロークデータに分離するために開始ストロークデータとして該イベントデータを選択させるように動作可能な命令をさらに含む、請求項8に記載のシステム。
  10. 前記コンピュータデバイスに前記動きベクトルデータにしたがって前記グリフデータ内の次の前記インクリメントを選択させるように動作可能な命令が、コンピュータデバイスに、前記グリフデータ内の提案されたインクリメントを平坦度閾値と比較させて該比較に基づいて該グリフデータ内の該提案されたインクリメントが有効か否かを決定させるように動作可能な命令を含む、請求項8に記載のシステム。
  11. 前記コンピュータデバイスに前記グリフデータから前記開始ストロークデータを選択させるように動作可能な命令が、コンピュータデバイスに、
    前記フォントソースデータから該開始ストロークデータを識別させ、
    開始閾値データにしたがって該開始ストロークデータを識別させ、
    該識別された開始ストロークデータの優先順位を付けさせて最も優先順位の高い識別された開始ストロークデータを選択させるように動作可能な命令を含む、請求項8に記載のシステム。
  12. 前記グリフ分離ソフトウェアモジュールのコンピュータ実行可能命令が、コンピュータデバイスに前記グリフデータの分離の後に各グリフ用のストロークデータをマージさせるように動作可能な命令をさらに含む、請求項8に記載のシステム。
  13. 前記コンピュータデバイスに前記グリフデータの分離の後に各グリフ用のストロークデータをマージさせるように動作可能な命令が、コンピュータデバイスに、
    明示的に連結されたストロークデータを識別させ、
    暗示的に連結されたストロークデータを識別させ、
    該明示的に連結されたストロークデータをマージさせ、
    該暗示的に連結されたストロークデータをマージさせるように動作可能な命令を含む、請求項12に記載のシステム。
  14. 前記中線抽出ソフトウェアモジュールのコンピュータ実行可能命令が、コンピュータデバイスに、
    前記ストロークデータ中をインクリメントさせ、
    各インクリメントに関して、中線データ値を決定させて格納させ、
    該ストロークデータ中のインクリメントの後、該中線データを、該格納された中線データ値として規定させるように動作可能な命令を含む、請求項1に記載のシステム。
  15. 前記コンピュータデバイスに中線データ値を決定させて格納させる命令が、コンピュータデバイスに、
    前記インクリメントされたストロークデータに基づいてセグメントデータを規定させ、
    該セグメントデータに基づいて中点を規定させ、
    該中線データ値を該中点として規定させるように動作可能な命令を含む、請求項14に記載のシステム。
  16. 前記エレメント分析システムモジュールのコンピュータ実行可能命令が、コンピュータデバイスに、
    共通パターンを規定する中線データを識別させ、
    独特パターンを規定する中線データを識別させ、
    該共通パターンを規定する識別された中線データの各々に関して、共通エレメント識別子にしたがって共通パターンを規定する該識別された中線データを分類させ、
    該独特パターンを規定する識別された中線データの各々に関して、独特エレメント識別子にしたがって該共通パターンを規定する該識別された中線データを分類させるように動作可能な命令を含む、請求項1に記載のシステム。
  17. 前記エレメント分析システムモジュールのコンピュータ実行可能命令が、コンピュータデバイスに、
    前記共通エレメント識別子とグリフデータ構造内の対応する平行移動データを格納させ、
    該データ構造内に前記独特エレメントデータを格納させ、
    該共通エレメント識別子および共通エレメントデータベース内の前記共通エレメントデータを格納させ、
    該平行移動データによって平行移動される該対応する共通エレメントデータがグリフ形状の多角形スケルトンを規定するように動作可能な命令をさらに含む、請求項16に記載のシステム。
  18. ソースフォントデータからフォントフォーマットデータを生成する方法であって、
    該ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する工程と、
    該グリフデータを分離する工程と、
    該分離されたグリフデータから中線データを抽出する工程と、
    該中線データを独特エレメントデータおよび共通エレメントデータとして分類する工程と、
    該独特エレメントデータおよび該共通エレメントデータを該複数のグリフの各グリフに関連づける工程と、
    を含む方法。
  19. 前記ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する工程が、
    前記グリフデータを内部輪郭データと外部輪郭データとに分ける工程と、
    該内部輪郭データと該外部輪郭データとの内包を決定する工程と、
    を含む、請求項17に記載の方法。
  20. 前記ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する工程が、前記グリフデータから低減されたグリフデータを生成する工程をさらに含む、請求項19に記載の方法。
  21. 前記ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する工程が、少なくとも1つの輪郭特徴に応じて該グリフデータを分類する工程をさらに含む、請求項19に記載の方法。
  22. 前記少なくとも1つの輪郭特徴が、突出したおよび反り返った角度特徴を含む、請求項21に記載の方法。
  23. 前記少なくとも1つの輪郭特徴が、有効な隣接点特徴を含む、請求項21に記載の方法。
  24. 前記グリフを分離する工程が、
    前記グリフデータから開始ストロークデータを選択する工程と、
    該開始ストロークデータから該グリフデータ中をインクリメントする工程と、
    該インクリメントしたグリフデータが候補データか否かを決定する工程と、
    該インクリメントしたグリフデータが候補データであれば、動きベクトルデータにしたがって該グリフデータ中の次のインクリメントを選択する工程と
    を含む、請求項18に記載の方法。
  25. 前記グリフを分離する工程が、
    前記動きベクトルにしたがって前記グリフデータ内の前記インクリメントをイベントデータとして格納する工程と、
    該グリフデータを次にストロークデータに分離するために開始ストロークデータとして該イベントデータを選択する工程と、
    をさらに含む、請求項24に記載の方法。
  26. 前記動きベクトルデータにしたがって前記グリフデータ内の次の前記インクリメントを選択する工程が、
    前記グリフデータ内提案されたインクリメントを平坦度閾値と比較する工程と、
    該比較に基づいて該グリフデータ内の該提案されたインクリメントが有効か否かを決定する工程と、
    を含む、請求項24に記載の方法。
  27. 前記グリフデータから前記開始ストロークデータを選択する工程が、
    前記フォントソースデータから該開始ストロークデータを識別する工程と、
    開始閾値データにしたがって該開始ストロークデータを識別する工程と、
    該識別された開始ストロークデータの優先順位を付けする工程と、
    最も優先順位の高い識別された開始ストロークデータを選択する工程と、
    を含む、請求項24に記載の方法。
  28. 前記グリフを分離する工程が、前記グリフデータの分離の後に各グリフ用のストロークデータをマージする工程をさらに含む、請求項24に記載の方法。
  29. 前記グリフデータの分離の後に各グリフ用のストロークデータをマージする工程が、
    明示的に連結されたストロークデータを識別する工程と、
    暗示的に連結されたストロークデータを識別する工程と
    該明示的に連結されたストロークデータをマージする工程と、
    該暗示的に連結されたストロークデータをマージする工程と、
    を含む、請求項28に記載の方法。
  30. 前記分離されたグリフデータから中線データを抽出する工程が、
    前記ストロークデータ中をインクリメントする工程と、
    各インクリメントに関して、中線データ値を決定して格納する工程と、
    該ストロークデータ中のインクリメントの後、該中線データを、該格納された中線データ値として規定する工程と、
    を含む、請求項29に記載の方法。
  31. 前記中線データを独特エレメントデータおよび共通エレメントデータとして分類する工程が、
    共通パターンを規定する中線データを識別する工程と、
    独特パターンを規定する中線データを識別する工程と、
    該共通パターンを規定する識別された中線データの各々に関して、共通エレメント識別子にしたがって共通パターンを規定する該識別された中線データを分類する工程と、
    該独特パターンを規定する識別された中線データの各々に関して、独特エレメント識別子にしたがって該共通パターンを規定する該識別された中線データを分類する工程と、
    を含む、請求項18に記載の方法。
  32. 前記独特エレメントデータおよび前記共通エレメントデータを前記複数のグリフの各グリフに関連づける工程が、
    前記共通エレメント識別子とグリフデータ構造内の対応する平行移動データを格納する工程と、
    該グリフデータ構造内に前記独特エレメントデータを格納する工程と、
    該共通エレメント識別子および共通エレメントデータベース内の前記共通エレメントデータを格納する工程と、
    をさらに含み、
    該平行移動データによって平行移動される該対応する共通エレメントデータがグリフ形状の多角形スケルトンを規定する請求項31に記載の方法。
  33. ソースフォントデータからフォントフォーマットデータを生成するシステムであって、
    該ソースフォントデータを分析して複数のグリフ用のグリフデータを獲得する手段と、
    該グリフデータを分離する手段と、
    該分離されたグリフデータから中線データを抽出する手段と、
    該中線データを独特エレメントデータおよび共通エレメントデータとして分類する手段と、
    該独特エレメントデータおよび該共通エレメントデータを該複数のグリフの各グリフに関連づける手段と、
    を含むシステム。
  34. コンピュータ読み取り可能媒体内に格納されたフォントデータ構造であって、
    共通エレメント識別子フィールドと記述データフィールドを含む共通エレメントデータベースであって、該共通エレメント識別子フィールドが共通エレメント識別子データを格納するように動作可能であり、該記述データフィールドが共通エレメント形状を規定する記述データを格納するように動作可能である、共通エレメントデータベースと、
    少なくとも1つの共通エレメントレコードを含む少なくとも1つのグリフデータ構造であって、該少なくとも1つの共通エレメントレコードが、共通エレメント識別子フィールドと、平行移動フィールドとを含み、該共通エレメント識別子フィールドが該共通エレメントデータベース内に格納された共通エレメントに対応する共通エレメント識別子データを格納するように動作可能であり、該平行移動フィールドが、該共通エレメント形状を平行移動させる際に用いられる平行移動データを格納するように動作可能である、少なくとも1つのグリフデータ構造と、
    を含むフォントデータ構造。
  35. 前記少なくとも1つのグリフデータ構造が、独特エレメント識別子フィールドと記述データフィールドとを含む独特エレメントレコードであって、該独特エレメント識別子フィールドが独特エレメント識別子データを格納するように動作可能であり、該記述データフィールドが独特エレメント形状を規定する記述データを格納するように動作可能である、独特エレメントレコードをさらに含む、請求項34に記載のフォントデータ構造。
  36. コンピュータ読み取り可能媒体内に格納されたフォントデータ構造であって、
    複数のエレメントについて共通エレメント識別子データと共通エレメント記述データとを格納する手段と、
    該共通エレメント識別子データおよび該共通エレメント記述データを複数のグリフに関連付け、該複数のグリフの各々に関して、該共通エレメント記述データを平行移動する手段と、
    を含むフォントデータ構造。
  37. 格納されたフォントデータからテキストをレンダリングするシステムであって、
    コンピュータ読み取り可能媒体内に格納されたフォントデータ構造であって、複数のグリフについて共通エレメントデータと独特エレメントデータとを含む、フォントデータ構造と、
    コンピュータ読み取り可能媒体内に格納されたレンダリングソフトウェアモジュールであって、コンピュータデバイスに該フォントデータ構造にアクセスさせて該共通エレメントデータおよび該アクセスされた独特エレメントデータに基づいてグリフを表示させるように動作可能なコンピュータ実行可能命令を含む、レンダリングソフトウェアモジュールと、
    コンピュータデバイスとメモリとを含むモバイルデバイスであって、該メモリが該フォントデータ構造および該レンダリングソフトウェアモジュールを格納するように動作可能であり、該コンピュータデバイスが該レンダリングソフトウェアモジュールのコンピュータ実行可能命令を実行するように動作可能である、モバイルデバイスと、
    を含むシステム。
  38. 前記フォントデータ構造が、
    共通エレメント識別子フィールドと記述データフィールドとを含む共通エレメントデータベースであって、該共通エレメント識別子フィールドが共通エレメントデータを格納するように動作可能であり、該記述データフィールドが、共通エレメント形状を規定する記述データを格納するように動作可能である、共通エレメントデータベースと、
    少なくとも1つの共通エレメントレコードを含む少なくとも1つのグリフデータ構造であって、該少なくとも1つの共通エレメントレコードが、共通エレメント識別子フィールドと、平行移動フィールドとを含み、該共通エレメント識別子フィールドが該共通エレメントデータベース内に格納された共通エレメントに対応する共通エレメント識別子データを格納するように動作可能であり、該平行移動フィールドが、該共通エレメント形状を平行移動させる際に用いられる平行移動データを格納するように動作可能である、少なくとも1つのグリフデータ構造と、
    を含む、請求項37に記載のシステム。
  39. コンピュータ読み取り可能媒体内に格納されたエンティティデータであって、
    共通エレメント識別子フィールドと記述データフィールドとを含む共通エレメントデータベースであって、該共通エレメント識別子フィールドが共通エレメントデータを格納するように動作可能であり、該記述データフィールドが、共通エレメント形状を規定する記述データを格納するように動作可能である、共通エレメントデータベースと、
    少なくとも1つの共通エレメントレコードを含む少なくとも1つのエンティティデータ構造であって、該少なくとも1つの共通エレメントレコードが、共通エレメント識別子フィールドと、平行移動フィールドとを含み、該共通エレメント識別子フィールドが該共通エレメントデータベース内に格納された共通エレメントに対応する共通エレメント識別子データを格納するように動作可能であり、該平行移動フィールドが、該共通エレメント形状を平行移動させる際に用いられる平行移動データを格納するように動作可能である、少なくとも1つのエンティティデータ構造と、
    を含み、
    該エンティティが視覚表示エンティティである、エンティティデータ構造。
  40. 前記少なくとも1つのエンティティデータ構造が独特エレメント識別子フィールドと記述データフィールドとを含む独特エレメントレコードをさらに含み、該独特エレメント識別子フィールドが独特エレメント識別子データを格納するように動作可能であり、該記述データフィールドが独特エレメント形状を規定する記述データを格納するように動作可能である、請求項39に記載のエンティティデータ構造。
  41. 前記エンティティデータがフォントエンティティである、請求項40に記載のエンティティデータ構造。
  42. 前記エンティティデータがマップエンティティである、請求項40に記載のエンティティデータ構造。
JP2004518329A 2002-07-03 2003-07-03 ソースフォントデータからフォントフォーマットデータを生成するシステムおよび方法 Expired - Lifetime JP4686186B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US39379502P 2002-07-03 2002-07-03
US60/393,795 2002-07-03
US40037302P 2002-07-31 2002-07-31
CA002396346A CA2396346C (en) 2002-07-03 2002-07-31 Compact scalable stroke fonts
US60/400,373 2002-07-31
CA2,396,346 2002-07-31
US10/610,227 2003-06-30
US10/610,227 US7251365B2 (en) 2002-07-03 2003-06-30 Scalable stroke font system and method
PCT/CA2003/001021 WO2004006166A2 (en) 2002-07-03 2003-07-03 Scalable stroke font system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009057201A Division JP2009122713A (ja) 2002-07-03 2009-03-10 スケーラブルストロークフォントシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2005531813A true JP2005531813A (ja) 2005-10-20
JP4686186B2 JP4686186B2 (ja) 2011-05-18

Family

ID=30003842

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004518329A Expired - Lifetime JP4686186B2 (ja) 2002-07-03 2003-07-03 ソースフォントデータからフォントフォーマットデータを生成するシステムおよび方法
JP2009057201A Pending JP2009122713A (ja) 2002-07-03 2009-03-10 スケーラブルストロークフォントシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009057201A Pending JP2009122713A (ja) 2002-07-03 2009-03-10 スケーラブルストロークフォントシステムおよび方法

Country Status (5)

Country Link
US (3) US7251365B2 (ja)
JP (2) JP4686186B2 (ja)
AT (1) ATE499661T1 (ja)
DE (1) DE60336146D1 (ja)
HK (1) HK1084214A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007517251A (ja) * 2003-12-31 2007-06-28 ノキア コーポレイション フォントのスケーリングのための構成
JP2012507062A (ja) * 2009-01-26 2012-03-22 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド アウトライン文字をスタイル化ストローク文字に変換する方法
US8375079B2 (en) 2004-10-15 2013-02-12 Vodafone Group Plc Coordinated operation method, and communication terminal device

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251365B2 (en) * 2002-07-03 2007-07-31 Vadim Fux Scalable stroke font system and method
US20050007369A1 (en) * 2003-07-07 2005-01-13 Jiangen Cao Graphic engine for approximating a quadratic Bezier curve in a resource-constrained device
US7142211B2 (en) 2003-07-07 2006-11-28 Arcsoft, Inc. Graphic engine for fill style transferring in a resource-constrained device
JP4570025B2 (ja) * 2004-02-06 2010-10-27 ルネサスエレクトロニクス株式会社 コントローラドライバ及び表示パネル駆動方法
US7639258B1 (en) * 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US7710422B2 (en) * 2004-07-26 2010-05-04 Microsoft Corporation Font representations
US7522771B2 (en) * 2005-03-17 2009-04-21 Microsoft Corporation Systems, methods, and computer-readable media for fast neighborhood determinations in dynamic environments
US8428358B2 (en) * 2005-05-31 2013-04-23 Microsoft Corporation Radical-base classification of East Asian handwriting
US8196833B2 (en) * 2005-06-27 2012-06-12 Mcgill Randy Hybrid synthetic barcode and RFID system and method
US7929769B2 (en) * 2005-12-13 2011-04-19 Microsoft Corporation Script recognition for ink notes
JP2007240848A (ja) * 2006-03-08 2007-09-20 Seiko Epson Corp 表示プログラム、データ構造及び表示装置
US7639259B2 (en) * 2006-09-15 2009-12-29 Seiko Epson Corporation Method and apparatus for preserving font structure
US20080068383A1 (en) * 2006-09-20 2008-03-20 Adobe Systems Incorporated Rendering and encoding glyphs
US7810026B1 (en) * 2006-09-29 2010-10-05 Amazon Technologies, Inc. Optimizing typographical content for transmission and display
JP2008109394A (ja) * 2006-10-25 2008-05-08 Canon Inc 画像処理装置及びその方法、プログラム
US7823795B2 (en) * 2007-04-02 2010-11-02 International Business Machines Corporation Pattern based elaboration of hierarchical L3GO designs
JP5017031B2 (ja) * 2007-09-13 2012-09-05 キヤノン株式会社 画像処理装置、画像処理方法、画像処理プログラム、並びに、記憶媒体
JP4582204B2 (ja) * 2008-06-11 2010-11-17 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像変換方法、およびコンピュータプログラム
JP2010224145A (ja) * 2009-03-23 2010-10-07 Seiko Epson Corp 情報処理装置、制御装置及びプログラム
TW201035782A (en) * 2009-03-24 2010-10-01 Arphic Technology Co Ltd Method of adjusting strokes of a character
GB0913170D0 (en) * 2009-07-28 2009-09-02 Advanced Risc Mach Ltd Graphics processing systems
KR101679744B1 (ko) * 2009-11-10 2016-12-06 삼성전자주식회사 단말기에서 데이터 처리 방법 및 그를 수행하는 장치
US20130120396A1 (en) * 2009-11-19 2013-05-16 Gregory A. Kaplan Incrementally Building A Font
US20110115797A1 (en) * 2009-11-19 2011-05-19 Kaplan Gregory A Dynamic Streaming of Font Subsets
US8643652B2 (en) 2010-08-31 2014-02-04 Adobe Systems Incorporated Dynamic augmentation of extensible font subsets
US8760451B2 (en) 2011-06-30 2014-06-24 Google Inc. Rendering a text image using texture map character center encoding with character reference encoding
US8400453B2 (en) 2011-06-30 2013-03-19 Google Inc. Rendering a text image following a line
US9311896B2 (en) 2012-02-27 2016-04-12 Microsoft Technology Licensing, Llc Glyph rendering
US9323726B1 (en) * 2012-06-27 2016-04-26 Amazon Technologies, Inc. Optimizing a glyph-based file
KR102039553B1 (ko) 2012-08-31 2019-11-01 삼성전자 주식회사 사용자 디바이스에서 입력 문자를 이용한 지능형 서비스 제공 방법 및 장치
JP6038700B2 (ja) * 2013-03-25 2016-12-07 株式会社東芝 整形装置
US9317489B2 (en) 2013-06-27 2016-04-19 Adobe Systems Incorporated Vector graphic conversion into fonts
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
AU2014277854A1 (en) * 2014-12-22 2016-07-07 Canon Kabushiki Kaisha Emboldening of outline fonts
US10347016B2 (en) * 2016-01-12 2019-07-09 Monotype Imaging Inc. Converting font contour curves
US10115374B2 (en) * 2016-05-18 2018-10-30 Blackberry Limited Variable glyph encoding
US10438098B2 (en) 2017-05-19 2019-10-08 Hand Held Products, Inc. High-speed OCR decode using depleted centerlines
CN107610200B (zh) * 2017-10-10 2020-11-03 南京师范大学 一种基于特征模板的字库快速生成方法
US10936792B2 (en) 2017-12-21 2021-03-02 Monotype Imaging Inc. Harmonizing font contours

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06167963A (ja) * 1992-11-30 1994-06-14 Canon Inc 文字パターンの発生方法及び装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0192929A1 (de) 1985-02-07 1986-09-03 Siemens Aktiengesellschaft Anordnung zum selbsttätigen Ermitteln von Reaktionen in Abhängigkeit von Situationen
US5404436A (en) 1991-11-27 1995-04-04 Digital Equipment Corporation Computer method and apparatus for converting compressed characters for display in full size
US5412771A (en) * 1992-02-07 1995-05-02 Signature Software, Inc. Generation of interdependent font characters based on ligature and glyph categorizations
CA2125608A1 (en) 1993-06-30 1994-12-31 George M. Moore Method and system for providing substitute computer fonts
US5781714A (en) 1994-05-27 1998-07-14 Bitstream Inc. Apparatus and methods for creating and using portable fonts
US5583978A (en) 1994-05-27 1996-12-10 Bitstream Inc. Apparatuses and methods for creating and using portable fonted texts with embedded automatically-created font descriptions
US5771034A (en) 1995-01-23 1998-06-23 Microsoft Corporation Font format
US5606649A (en) 1995-09-08 1997-02-25 Dynalab, Inc. Method of encoding a document with text characters, and method of sending a document with text characters from a transmitting computer system to a receiving computer system
JPH09134157A (ja) 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法
JPH09134156A (ja) 1995-11-09 1997-05-20 Fujitsu Ltd アウトラインフォントのストローク化及びパーツ化方法
JPH09179542A (ja) * 1995-12-26 1997-07-11 Brother Ind Ltd キャラクタイメージデータ出力方法および装置
US5777177A (en) * 1996-02-07 1998-07-07 Arco Chemical Technology, L.P. Preparation of double metal cyanide-catalyzed polyols by continuous addition of starter
JP3330277B2 (ja) 1996-03-25 2002-09-30 シャープ株式会社 文字パターン生成装置
JPH09311673A (ja) * 1996-05-17 1997-12-02 Canon Inc 文字フォント作成方法及びその装置及び前記方法を実施するプログラムを記憶するコンピュータにより読取り可能な記憶媒体
JPH1063251A (ja) * 1996-08-19 1998-03-06 Fujitsu Ltd パターン生成装置
US6151032A (en) * 1996-09-20 2000-11-21 Dynalab, Inc. Stroke-based glyph-outline font generation in low/high resolution space
US6288725B1 (en) 1997-02-24 2001-09-11 Zining Fu Representation and restoration method of font information
US6288726B1 (en) * 1997-06-27 2001-09-11 Microsoft Corporation Method for rendering glyphs using a layout services library
US6043826A (en) * 1997-09-02 2000-03-28 Microsoft Corporation Transferring outline fonts to devices requiring raster fonts
TW434493B (en) 1998-02-23 2001-05-16 Dynalab Inc Stroke-based glyph-outline font generation in low/high resolution space
US6426751B1 (en) 1999-04-01 2002-07-30 Adobe Systems Incorporated Font feature file processing
US6501475B1 (en) * 1999-10-22 2002-12-31 Dynalab Inc. Glyph-based outline font generation independent of resolution
US6661417B1 (en) * 2000-08-28 2003-12-09 Dynalab Inc. System and method for converting an outline font into a glyph-based font
US7251365B2 (en) 2002-07-03 2007-07-31 Vadim Fux Scalable stroke font system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06167963A (ja) * 1992-11-30 1994-06-14 Canon Inc 文字パターンの発生方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007517251A (ja) * 2003-12-31 2007-06-28 ノキア コーポレイション フォントのスケーリングのための構成
US8375079B2 (en) 2004-10-15 2013-02-12 Vodafone Group Plc Coordinated operation method, and communication terminal device
JP2012507062A (ja) * 2009-01-26 2012-03-22 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド アウトライン文字をスタイル化ストローク文字に変換する方法

Also Published As

Publication number Publication date
US20070262993A1 (en) 2007-11-15
DE60336146D1 (de) 2011-04-07
US20040006749A1 (en) 2004-01-08
JP4686186B2 (ja) 2011-05-18
US7362898B2 (en) 2008-04-22
US7251365B2 (en) 2007-07-31
HK1084214A1 (en) 2006-08-25
ATE499661T1 (de) 2011-03-15
US20080218522A1 (en) 2008-09-11
JP2009122713A (ja) 2009-06-04
US7787694B2 (en) 2010-08-31

Similar Documents

Publication Publication Date Title
JP4686186B2 (ja) ソースフォントデータからフォントフォーマットデータを生成するシステムおよび方法
US5832530A (en) Method and apparatus for identifying words described in a portable electronic document
JP3822277B2 (ja) 文字テンプレートセット学習マシン動作方法
JP5071914B2 (ja) 認識グラフ
JP2700130B2 (ja) 手書き文字の認識システム及び認識方法
EP2002352B1 (en) Applying effects to a merged text path
US6661417B1 (en) System and method for converting an outline font into a glyph-based font
EP1540572B1 (en) Scalable stroke font system and method
JPH05217019A (ja) ビジネスフォーム識別システム及び画像処理システム
JP5664174B2 (ja) 持ち運び可能な電子ファイルからキャラクタの外接矩形を抽出する装置及び方法
US20060282769A1 (en) Method of identifying redundant text in an electronic document
CN112269872A (zh) 简历解析方法、装置、电子设备及计算机存储介质
JPH05242300A (ja) 文書イメージの処理方法
CN112560849B (zh) 基于神经网络算法的文理分割方法及系统
CA2396346C (en) Compact scalable stroke fonts
JPH08194716A (ja) 画像処理方法及びその装置
Shamir et al. Compacting oriental fonts by optimizing parametric elements
JP2592756B2 (ja) 文字切り出し装置およびこれを用いた文字認識装置
Antonacopoulos et al. Region description and comparative analysis using a Tesseral representation
Clothiaux et al. A survey of character characteristics: a quantitative and qualitative study of english letters in handwriting and fonts
JP3757686B2 (ja) 文字データ生成装置と文字出力装置
Janbi Classifying Digital Arabic Fonts Based on Design Characteristics
Zheng Free-scale Magnification for Single-Pixel-Width Alphabetic Typeface Characters
JP2006185336A (ja) 画像処理装置、方法、及びコンピュータプログラム
JP3320083B2 (ja) 文字認識装置及び方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090210

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110111

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

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

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4686186

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

EXPY Cancellation because of completion of term