JP2014167635A - 低解像度ディスプレイのためのストロークベースのフォント処理方法 - Google Patents
低解像度ディスプレイのためのストロークベースのフォント処理方法 Download PDFInfo
- Publication number
- JP2014167635A JP2014167635A JP2014078566A JP2014078566A JP2014167635A JP 2014167635 A JP2014167635 A JP 2014167635A JP 2014078566 A JP2014078566 A JP 2014078566A JP 2014078566 A JP2014078566 A JP 2014078566A JP 2014167635 A JP2014167635 A JP 2014167635A
- Authority
- JP
- Japan
- Prior art keywords
- stroke
- strokes
- pixel
- key point
- character
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】高解像度ディスプレイ用に設計されたフォントを比較的低解像度のディスプレイに高品質で表示すること。
【解決手段】キーポイントと幅値によって定義されたストロークベースのフォントを用い、それを低解像度の2次元のピクセルマトリクススクリーン上に表示させ、低解像度においても文字がつぶれずに識別可能なように表示できるように、キーポイントの位置と幅値を調整し、フォントデータを再定義する。
【選択図】図17
【解決手段】キーポイントと幅値によって定義されたストロークベースのフォントを用い、それを低解像度の2次元のピクセルマトリクススクリーン上に表示させ、低解像度においても文字がつぶれずに識別可能なように表示できるように、キーポイントの位置と幅値を調整し、フォントデータを再定義する。
【選択図】図17
Description
本発明は、活字又は他の記号のディジタル表現に関し、特に、比較的低解像度のスクリーンに表示するのに適したフォントデータを発生/修正するためのシステム、方法及びそれらの命令を格納したコンピュータ読み取り可能な記録媒体に関するものである。
アジア文字フォント(以下、アジアフォントという。)を生成するための数多くのフォント生成システムが存在する。アジアフォントはアジア言語における文字を表す多くの表意文字(ideographs)から成り立っている。アジア言語は数千の文字を含んでいる。例えば、中国語には2万を超える異なる文字が含まれている。
アジアフォントにおける文字パターンを生成するための従来の慣用的なコンピュータ技術はアウトラインフォント方式を使用している。このシステムは、下記非特許文献1に記載されている。この方式において、文字パターンの輪郭(アウトライン)は直線と曲線の集合体として保存される。この方式に関してはいくつかの不都合な点が存在する。第1に、個々にフォントの輪郭が定義されなければならず、何万もの異なった文字が記憶されるため、メモリ容量は比較的大きなものが要求される。第2に、高解像度で保存されるフォントの輪郭データは、高解像度においてのみ表示するのには適しているが、比較的低解像度において高品位に表示するのには適していない。
アジアフォントを生成する他の方法は、ストロークベースの文字パターンデータを使用するものであり、1文字内の各ストロークは別々に定義される。一般的には、一つの文字は相互に重なったり、交差したりする複数のストロークから成り立っている。ストロークベースの文字データは、キーポイント、幅値、特徴点及び湾曲度(curve_ratio)から成り立っており、それらが一緒になって各ストロークの輪郭を定義している。かかるストロークベースの文字データの作成及びレンダリングは、下記特許文献1乃至3に詳述されており、それらは本明細書中に明示的に取り込まれている。なお、レンダリングとは、数値データとして与えられたフォントに関する情報を目に見える文字として画像化(可視化)することを意味する。ストロークベースのフォント技術はフォントのためのメモリ容量を軽減するのに適している。
アジアフォントを生成するさらに別の方法は、グリフベースの文字パターンデータを使用するものであり、1つの文字内の各グリフは別個に定義される。一般に、アジア文字は1又はそれ以上のグリフから成り立っており、各グリフは1又はそれ以上のストロークから成り立っている。例えば、互いに交差したり重なりあったりしている1つの文字内のいくつかのストロークは、しばしば複雑な全体的として幾何学的な形状を作り出すが、それがグリフである。グリフベースの技術においては、上述のストロークベースの技術と同様に、それぞれのグリフは、キーポイント、幅値、特徴点および湾曲度によって定義される。かかるグリフベースの文字パターンデータの作成及びレンダリングは、下記特許文献4及び5に詳述されており、それらは本明細書中に明示的に取り込まれている。
グレースケールで表示するためのアジアフォントのセットを生成するためのさらに他の方法は公知であるが、各文字は、1又はそれ以上のストローク/グリフを有しており、さらに、各ストローク/グリフはシルエット化表示用に定義されている。グレースケールで表示するためのシルエット化表示用のフォントデータの作成及びレンダリングは、下記特許文献6に詳述されており、それらは本明細書中に明示的に取り込まれている。
セルラー電話、PDA及び携帯デジタルオーディオ機器のような携帯用電子機器技術の出現に伴い、比較的長いバイナリテキストイメージが、小さなサイズでそのような携帯用電子機器の画面に表示されるようになった。一般的に、それらの文字は高解像度スクリーンで表示するように定義されているため、これらの文字を低解像度のスクリーンでレンダリング(表示)すると、表示されたテキストイメージがひどく劣化することになる。これは、特に、比較的複雑な全体的に幾何学形状を持つ傾向にあるアジア文字に当てはまる。例えば、図1(A)は低解像度ピクセルマトリクススクリーン11に重ね表示(スーパーインポーズ)された文字(「幽」)10を示し、図1(B)は、従来の方法(例えば、任意のピクセルの面積の50%以上が文字で占有されていれば、そのピクセルを黒く塗りつぶす方法。)によって低解像度スクリーンに表示された文字10の画像を示すものである。図1(B)に示すように、レンダリングされた文字10はほとんど識別できないほど劣化している。たとえば、図1(A)の文字10のストローク12〜15は互いにくっつき、一般には長方形のブロック16を形成する(図1(B)参照)。他の例としては、文字10の縦型のストローク17の左右にそれぞれ位置する、二つの似た形状の部分B及びB’は、低解像度のスクリーンに表示されると、図1(B)のC及びC’のようにお互いに全く異なったものになってしまう。図2は一番下に文字10を含む5つの漢字を示しているが、比較的低解像度のディスプレイに劣化した品質で表示したものである。
そこで、元々は高解像度ディスプレイ用に設計されたフォントを比較的低解像度のディスプレイに高品質で表示するためのシステム、方法及びフォントの生成又は修正の命令を格納したコンピュータ読み取り可能な記憶媒体が求められている。
ポストスクリプト ラングエイジ チュートリアル アンド クックブック、アドビシステムズ インク、アジソン−ウェズレー出版、1985年
本発明は上述のような事情に鑑み為されたものであり、元々は高解像度ディスプレイ用に設計されたフォントを比較的低解像度のディスプレイに高品質で表示するためのシステム、方法及びフォントの生成又は修正の命令を格納したコンピュータ読み取り可能な記憶媒体を提供することを目的とするものである。
本発明の一つの実施形態では、低解像度スクリーンのための文字生成方法が提供される。この方法は、まず始めに1又はそれ以上のストロークから成る文字のセットを受け入れる。セットを成す、これらのストロークのうちのいくつかは類似の形状をしている。
類似形状を有するストロークの各セットについて、その類似形状のストロークを書法上最もよく表す“基本”ストロークが、前掲の参考文献の特許に記載された方法に従って、予め定義される。各基本ストロークと、その基本ストロークによって書法上代表される各ストロークは、キーポイント、幅値、特徴点及び湾曲度によって定義される。
類似形状を有するストロークの各セットについて、その類似形状のストロークを書法上最もよく表す“基本”ストロークが、前掲の参考文献の特許に記載された方法に従って、予め定義される。各基本ストロークと、その基本ストロークによって書法上代表される各ストロークは、キーポイント、幅値、特徴点及び湾曲度によって定義される。
次に、受け入れられた文字セットは、もっと正確に言えば、受け入れられた各文字を構成するストロークは、ピクセルのアレイから成る比較的低解像度のスクリーン上に、適切なピクセルカバレッジ方式を用いて表示される。例えば、その面積の50%以上がストロークによってカバー又は占有されている任意のピクセルはアクティブとされ、塗りつぶされる。次に、予め決められた規則に従い、そのストロークのキーポイントをピクセルの中心線まで移動させ、ストロークの幅値を単一のピクセル内に収まるように減らし、その結果、再定義されたキーポイントと幅値を持つ修正されたフォントデータを生成する。その後は、新たに定義されたキーポイントと幅値を持つ修正されたフォントデータは、適切なピクセルカバレッジ方式と所定のレンダリング基準を用いて、再び表示(レンダリング)される。
本発明の一つの態様によれば、低解像度スクリーン用にフォントデータを修正するための所定のルールの適用は、コンピュータのGUI(Graphical_User_Interface)ツールを用いてマニュアルで行われるか、適当な画像解析技術を用いて自動的又は半自動で行われるかのいずれでもよい。この点については、本発明は、フォントデザイナーがこの方法を様々な態様で実行できるようにするための実行命令を備えたコンピュータGUIツールも用意している。
本発明の他の態様によれば、低解像度スクリーンに表示されたときに互いにくっついてしまう二つのストロークの間にスペース(間隙)を設けるための方法がさらに提供される。この更なる方法は、上述のように、フォントデータの修正とは独立して、あるいは、フォントデータの修正方法と一緒に用いられる。この方法によれば、くっついたストロークが認識されると、片方のストロークのキーポイントが移動され、くっついたストロークの間に間隙が設けられる。
本発明は、本発明の様々な実施形態を実行するためのコンピュータ実行命令を格納したコンピュータ読み取り可能な記憶媒体も提供する。
本発明に係る方法又はGUIによれば、元々は高解像度ディスプレイ用に設計されたフォントを比較的低解像度のディスプレイに高品質で表示することが可能となる。
図3は、本発明に係る様々な方法を実行するための典型的なコンピュータ環境を示す図である。ディスプレイ27を含む汎用のデジタルコンピュータ26と、それに接続されたプリンタ28によって、本発明の様々な方法を実行することが可能である。ディスプレイ27、プリンタ28、及び任意の他の出力装置(モニタ、プロッタ等)は、本発明によって生成された及び/または修正されたフォントを表示、印刷、その他出力を行うことができる。ネットワークシステムやメインフレームベースのシステムのような他のコンピュータシステムも、当業者には自明であるが、本発明に係る方法を実行するのに使用可能である。
下は、1またはそれ以上のストロークから成る文字の生成及び修正に適用される本発明の記載であるが、本発明は、1またはそれ以上のグリフから成る文字の生成及び修正にも同様に適用できるものと考えるべきである。上述の背景技術でも述べたように、グリフは文字の副構成単位(サブユニット)であるとともに、1またはそれ以上のストロークから成る。ストロークもグリフも共に、キーポイント、幅値、特徴点、及び湾曲度によって定義される。従って、基本ストロークによる文字の生成及び修正についての方法に関する以下の技術内容が、基本グリフによる文字の生成及び修正についての方法に容易に拡張できることは、当業者であれば知っている。従って、特にことわらない限り、以下、「ストローク」という用語は、ストロークとグリフの両方の意味を含むものとする。
図4(A)は、二つのストローク31及び32で構成される文字30を示すものである。ストローク31はキーポイントK1、K2と幅値W1によって定義され、ストローク32はキーポイントK3、K4と幅値W2、W3によって定義される。図4(B)は、キーポイントと幅値に基づいてすべて決定される、ストローク31の特徴点f1、f2及びf3、ストローク32の特徴点f4、f5及びf6、及び湾曲度(図示せず)を示しており、これらは上記特許文献1乃至3に記載されている通りである。上記特許文献に記載の通り、アジア言語の特徴の一つは、多くのストロークが多くの文字で共通して使われているということである。類似形状のストロークの各セットは、基本ストロークによって書法上代表される。各基本ストロークは、まずキーポイントと幅値によって定義される。キーポイントは基本ストロークの端部、交差部分、屈曲部分に置かれるので、キーポイントを動かすと、基本ストロークの輪郭形状が変化する。幅値もまた基本ストロークの内部にあるので、幅値を変えると基本ストロークの輪郭形状が変化する。各基本ストロークは、キーポイントと幅値とに基づいて特徴点を求める数式によって関連付けられる。図4(A)及び(B)に示す例では、特徴点(f1〜f6)を得るための数式は以下の通りである。
[数1]
f1=(x1−W1/2,y1)
f2=(x1+W1/2,y1)
f3=(x2,y2)
f4=(x3,y3)
f5=(x4−W2,y4)
f6=(x4,y4−W3)
ただし、(xi、yi)はキーポイントKiのx−y座標を示す。(i=1,2,・・・)
図示したように、特徴点はキーポイントおよび幅値と予め定義された空間的な関係を有している。図4(B)に示すように、特徴点は、一般には、基本ストロークの輪郭上であって、輪郭の方向又は湾曲度が変わる所に置かれる。さらに、各基本ストロークは、好ましくは様々な解像度レベルにおいて定義された湾曲度と関連があり、特定の出力機器の解像度レベルに依存する二つの連続した特徴点の間の曲線のセグメントを作り出すように設計される。湾曲度の使用に関する詳細は上記特許文献に開示されている。
[数1]
f1=(x1−W1/2,y1)
f2=(x1+W1/2,y1)
f3=(x2,y2)
f4=(x3,y3)
f5=(x4−W2,y4)
f6=(x4,y4−W3)
ただし、(xi、yi)はキーポイントKiのx−y座標を示す。(i=1,2,・・・)
図示したように、特徴点はキーポイントおよび幅値と予め定義された空間的な関係を有している。図4(B)に示すように、特徴点は、一般には、基本ストロークの輪郭上であって、輪郭の方向又は湾曲度が変わる所に置かれる。さらに、各基本ストロークは、好ましくは様々な解像度レベルにおいて定義された湾曲度と関連があり、特定の出力機器の解像度レベルに依存する二つの連続した特徴点の間の曲線のセグメントを作り出すように設計される。湾曲度の使用に関する詳細は上記特許文献に開示されている。
各基本ストロークには、表1に示すように、ストローク識別値(基本ストロークID)が割り当てられている。図示された例では、ストローク31には基本ストロークIDとして“511”が割り当てられており、キーポイントと幅値によって定義されている。同様に、ストローク32には基本ストロークIDとして“623”が割り当てられており、キーポイントと幅値によって定義されている。定義された各基本ストロークは、そのキーポイントを動かすこと、及び/又は幅値を変えることによって、類似形状を有する他のストロークを定義するのに使用される。
定義された各基本ストロークは、そのキーポイントを動かすこと、及び/又は幅値を変えることによって、類似形状を有する他のストロークを定義するのに使用される。基本ストロークの形状をわずかに修正して特定のストロークのための新たな形状を定義するために、キーポイントと幅値を変えると、それらに関連する特徴点は基本ストロークに関する数式(たとえば上記数1)に基づいて自動的に再計算される。さらに、新たな曲線のセグメントは、予め定義された湾曲度に従い、出力機器の解像度レベルに則って再計算された特徴点の間に創り出される。また、基本ストロークのキーポイントと幅値に対して為されたいかなる変更も、その基本ストロークによって書法的に代表されるストロークのセットの中に自動的に反映される。基本ストロークに基づいて、類似形状のストロークを定義することに関する詳細は、上記特許文献に開示されている。
図5(A)及び(B)は、結合型のストロークの例を示すものである。ここで例として使用されているように、もし、一つのピクセル内にそれぞれ別のストロークに属する2又はそれ以上のキーポイントが含まれているならば、そのピクセルは結合型ストロークによって占有されている、あるいはカバーされていると言われる。図5(A)はストローク41のキーポイント41aと、ストローク42のキーポイント42aを含むピクセル40を示している。従って、ストローク41及び42は低解像度マトリクスにおけるピクセル40に関して結合型ストロークであると言われる。図5(B)は、ピクセル40の中にキーポイントがある結合型ストローク41及び42のような、多くの結合型ストロークを有する文字43を示している。文字43を構成する、結合型ストロークではないすべてのストロークは、独立型ストロークに分類される。例えば、ストローク46及び47は共に独立型ストロークである。独立型ストロークという概念は、図15に関して後述するが、くっついたあるいは重なりあったストロークの間に間隙を設ける方法において使用される。ストロークの型(結合型又は独立型)を識別するプロセスは上述の基準に基づいて自動的に実行されるが、フォントデザイナーによってピクセルマトリクススクリーン上でマニュアルで実行してもよい。
図6は、低解像度スクリーンに表示される文字セットを生成及び/又は修正する方法を示すフローチャートである。ここで用いられる“低解像度”とは、文字セットが初めて定義され又はデザインされたときの解像度レベルと比較して相対的に低いレベルの解像度であるという意味である。例えば、低解像度スクリーンとは、各文字を16×16、10×10、又は8×8ピクセルで表示するピクセルマトリクススクリーンを意味する。
まず、フォントデザイナーは、低解像度スクリーン用に定義される文字セットを選択し、選択された文字セットは図3に示す汎用コンピュータのようなコンピュータシステムにロードされる(ステップS51)。フォントデザイナーは、商用のフォントデータベースを構築しようとしているグラフィックデザイナーであるのが普通である。各文字セットは一又はそれ以上のストロークから成り、すべてのストロークは類似形状のストロークの組に分割される。類似形状のストロークの各セットに対して、類似形状のストロークを書法的に最もよく代表する一つの基本ストロークが、キーポイント、幅値、特徴点、及び湾曲度によって予め定義される。
上述のように、キーポイント、幅値、特徴点、及び湾曲度によって定義された受信された(又はロードされた)文字セットは、その文字セットが表示されようとしている、ある低レベルの解像度に対応した低解像度のピクセルマトリクススクリーン上に投影される(ステップS52)。各ピクセルの位置は二次元座標(例えば、X−Y座標)によって定義される。ピクセルマトリクススクリーン上のピクセルの数は、所望の解像度レベルに基づいて自動的に設定されるか、フォントデザイナーによってマニュアルで設定されるかのいずれかである。図7は、各文字を表示するための8×8ピクセルのサイズの低解像度スクリーンに対応したピクセルマトリクススクリーン61上に表示(スーパーインポーズ)された文字30を示すものである。ピクセルマトリクススクリーン61上の各ピクセルは、X−Y座標によって定義される。各文字は「ピクセルカバレッジ方式」を用いてレンダリングされる。特に、各ピクセルに対するカバレッジ値(カバー率)が算出される。カバー率とは、ストロークによって覆われる、あるいは占有されるピクセルの面積率(%)によって定義されるものである。すなわち、カバー率はストロークの輪郭の内部が占める面積に基づいて計算される。
図8は図7のピクセル65の拡大図である。この例では、ピクセル65は、4つの頂点(2,4)、(2,5)、(3,5)、及び(3,4)によって定義される。ピクセル65はストロークの部分66(網掛けをした部分)によって覆われており、ピクセル65のカバー率は、ハッチングされた部分とピクセル全体の面積比で算出される。具体的には、ピクセルの頂点の座標と、ピクセルの外周とストロークの輪郭が交わる点(交点)の座標(a,5)及び(b,4)から求められる(ただし、2<a<3,2<b<3)。閾値(例えば50%)を超えるカバー率を持つピクセルが、黒く塗りつぶされる。
一つのストロークの一部分によって覆われるピクセルもあるが、一方では、2又はそれ以上の異なったストロークの2又はそれ以上の部分によってそれぞれ覆われるピクセルもある。後者の場合、2又はそれ以上の異なったストロークは独立型でも結合型でもよい。カバー率の合計とともに、ピクセルを占める各ストロークごとのカバー率が計算され、各ストロークの基本ストロークIDとストロークの型(独立型か結合型か)とともにコンピュータに記憶される。
図6のステップS54では、低解像度スクリーンに表示される文字を構成する各ストロークが、予め決められたルールに従ってキーポイント及び幅値を調整することによって、定義又は再定義される。図9はステップS54を詳細に示したフローチャートである。図9のステップS83において、各ストロークのキーポイントは、そのキーポイントが存在するピクセルの中心線上の位置に移動される。中心線とは、図10(A)に示す縦の中心線93か、又は図10(B)に示す横の中心線94のどちらでもよいが、ストロークが縦型か横型かによって適切な中心線が選択される。特に、ストロークは書法的に解析され、縦型ストローク(例えば、図1(A)におけるストローク17)、又は横型ストローク(例えば、図1(A)におけるストローク18)に分類される。やや斜めに延びるストロークは、所定のルールに従って、1又はその他のカテゴリーに分類される。ちなみに、図7の二つのストロークの両方とも、完全には縦になっていないが、縦型ストロークに分類される。図10(A)に戻ると、縦型ストローク95及び96に対するキーポイント95a及び96aはそれぞれ各キーポイントが含まれるピクセルの縦の中心線93に、水平方向に移動される。図10(B)に戻ると、横型ストローク97及び98に対するキーポイント97a及び98aはそれぞれ各キーポイントが含まれるピクセルの横の中心線94に、垂直方向に移動される。
図11において、曲線の輪郭で定義されたストロークの湾曲部分102(ハッチングされた部分)が、一つのピクセルよりも多くのピクセルを占めるときは、湾曲部分102を制御するキーポイントは、そのストロークに対するカバー率が最大であるピクセルの中心線に向かって移動される。図11において、ストローク101のキーポイント101aはストローク101の湾曲部分102を制御しており、湾曲部分102は特徴点103及び104の間の曲線部分(セグメント)によって定義されている。湾曲部分102はピクセルマトリクススクリーンの中の4つのピクセル105、106、107、及び108を覆っている。ピクセル105は最大のカバー率(%)を有しているので、キーポイント101aはピクセル105の縦の中心線に向かって移動される。一つの具体例では、キーポイント101aは、ピクセル105の中心線上にあるピクセル106内の位置101bに向かって水平方向に移動される。他の例では、キーポイント101aは、ピクセル105の中心線上にあるピクセル105内の位置101cに向かって移動される。
次に、図9のステップS85において、各ストロークの幅値がピクセルの大きさ(ピクセルの幅又は長さ)を超えているかどうかが調べられる。もし、ストロークの幅がピクセルの大きさを超えている場合は、ステップS87において、ピクセル内に収まるように幅が縮小される。たとえば、図7において、文字30を構成するストロークの幅値W2及びW3は1ピクセルの大きさを超えている。図12(A)は、図4(A)のW2のように、幅値が水平方向に定義された場合を示している。図12(B)は、図4(A)のW3のように、幅値が垂直方向に定義された場合を示している。両方の場合において、幅値はピクセルのサイズ内に収まるように調整され、それによってストロークの形状が変化することを示している。図9のステップS89において、再調整されたキーポイントと幅値によって再定義されたフォントデータが記憶される。
キーポイントと幅値を調整する、フォントデータ定義/修正プロセスの順序は変更可能である。一例では、いずれかのキーポイントの位置が調整されてから幅値が調整されるが、その一方で、他の例では、幅値が調整された後に、キーポイントの位置が調整される。いずれにしても、本発明の様々な典型的な実施例によれば、低解像度ピクセルマトリクススクリーン上に高品質でレンダリングするために、各文字が定義及び/又は再定義(修正)される。
図6に戻ると、ステップS55において、再定義された各文字は、ピクセルカバレッジ方式及びそのためのレンダリング基準を用いてレンダリングされる。特に、ステップS54においてキーポイントと幅値を調整した後に、各ピクセルに対するピクセルカバー率が、再定義されたフォントデータに基づいて再計算される。次に、そのピクセルが以下の基準に基づいてアクティブ化(具体的には、たとえば黒く塗りつぶす。)される。
基準(i):ピクセルカバー率が所定の値(例えば50%)よりも大きい場合は、そのピクセルをアクティブ化する。
基準(ii):ストロークの輪郭のセグメントが、そのピクセル内で互いに向かい合っている場合は、そのピクセルをアクティブ化する。
基準(i):ピクセルカバー率が所定の値(例えば50%)よりも大きい場合は、そのピクセルをアクティブ化する。
基準(ii):ストロークの輪郭のセグメントが、そのピクセル内で互いに向かい合っている場合は、そのピクセルをアクティブ化する。
この場合、ストロークの輪郭のセグメントは必ずしも互いに平行である必要はないが、一般には、それらが互いに向かい合っていれば、基準(ii)は満たしているといえる。例えば、図4(B)において、輪郭のセグメント302及び303は互いに向かい合っていると考えられる。各輪郭のセグメントは二つの隣り合う特徴点間のセグメントとして定義される。例えば、図4(B)において、ストローク31は、3つの輪郭セグメント301、302、及び303を含んでいる。二つの輪郭のセグメントが互いに向かい合っているか否かは、適当な画像処理技術を用いて自動的に判定されるか、又は、フォントデザイナーによってマニュアル若しくは半自動で判定してもよい。
図13(A)及び(B)は図1(A)及び(B)に示すものと同じ文字10を表しているが、上述の本発明に係る方法によって処理され、レンダリングされたものである。特に、図13(A)に示すように、図1(A)の文字10を構成する様々なストロークのキーポイントや幅値が調整されたものである。そして、(キーポイントと幅値の調整によって)再定義されたフォントデータが、所定のレンダリング基準によって、図13(B)に示すようにレンダリングされる。例えば、図13(B)において、ピクセルカバー率が50%を超えるピクセルは塗りつぶされ、二つの互いに向かい合った輪郭セグメントを含むピクセルも塗りつぶされている。図13(A)における具体例として、ピクセル125は互いに向かい合うストローク18の二つの輪郭セグメントを含んでいる。このように、ピクセル125のカバー率がたとえ所定値(例えば50%)よりも小さかったとしても、ピクセル125は図13(B)に示す通り、依然として塗りつぶされている。
さらに、図6を参照すると、最後には、フォントデザイナーが、各文字が正しくレンダリングされたことを、例えば、互いにくっついているストロークがないことを検証することによって、視覚的に確認する。もし、フォントデザイナーが満足すれば、フォントデータはセーブされ、低解像度スクリーンの為のフォント文字の生成(又は再定義)の方法は終了する。一方、フォントデザイナーが満足しなければ、図6のステップS54に戻り、フォントデザイナーが、満足されない文字を構成しているストロークのキーポイント及び/又は幅値をマニュアルで調整することによって、満足されない文字が再定義される。このプロセスは、フォントデザイナーがすべての文字セットのレンダリング結果の見栄えに満足するまで繰り返される。
本発明の他の局面では、低解像度スクリーンに表示したときに互いにくっついてしまうようなストローク同士の間に確実に間隙を設ける方法を提供する。低解像度でのレンダリングを行うと、文字中のストローク(特に、平行なストローク)は重なったりくっついたりしてしまい、表示された結果の文字イメージは識別不能になる。例えば、図14(A)の二つのストローク131a及び132aは、レンダリングされると、図14(B)の131b及び132bになるが、それらは互いにくっついてしまい、単一のストローク133として表現される。本発明に係る方法の一実施例によればストロークの間に必要なスペースを設けるために、一又はそれ以上のピクセルを特に塗りつぶさないようにする。ストロークの間にスペースを設けるこの方法は、上述のように、キーポイントと幅値を調整することによってフォントデータを定義/再定義する方法とは別に、あるいはそれと一緒に用いられる。
図15は低解像度スクリーンに表示された文字に適切なスペースを与える方法の一例を示すフローチャートである。まず、ステップS140においては、くっついたストロークを検出する。これはフォントデザイナーによる視覚検査に基づいてマニュアルで為されるか、適当な画像解析技術によって自動又は半自動で行われる。もし、くっついたストロークが検出された場合(ステップS141でYESの場合)、ステップS142において、くっついたストロークが解析され、横型ストロークか、縦型ストロークか、又はそのどちらでもないものか(横型にも縦型にも分類できない、例えば斜めのストローク)が判定される。もし、そのストロークが横型又は縦型であれば(YESの場合)、ステップS143において、文字の別の部分がくっついてしまうこと無しに、そのストロークを互いに離すために動かすのに十分なスペースがあるか否かについて判定される。くっついた平行なストロークに適切なスペースを与えるためには、少なくとも一つのピクセルアレイが必要である。もし、そのようなスペースを設けることが可能であり、かつ、くっついたストロークが横型であれば、ステップS144において、スペースを与えるために隣のピクセルの横の中心線上に、キーポイントが垂直方向に移動される。もし、くっついたストロークが縦型であれば、ステップS145において、隣のピクセルの縦の中心線上に、キーポイントが水平方向に移動される。図16(A)は図14(A)の文字130に対応した修正された文字130’を示している。図16(A)に示された例において、ストローク131aのキーポイント134は、ピクセル135の水平の中心線の上に垂直方向に移動され、その結果、ストローク131aは上方に移動するので、ストローク132aとの間にスペース(1行分のピクセルアレイ)ができる。図16(B)は、平行なストローク131bと132bとの間に適当なスペースが設けられた、低解像度スクリーン上に表示された文字130’を示している。
くっついたストロークが横型でも縦型でもない場合は(ステップS142でNOの場合)、ステップS146において、くっついたピクセルの中の各ピクセルが2個以上のストロークで占められているかどうかを判定するために解析される。もし、2個以上のピクセルで占められていれば、ステップS147に移行し、その2以上のストロークが結合型ストローク(図5参照)かどうか、すなわち、各ストロークのキーポイントがすべて同じピクセル内にあるかどうかが判定される。もし、それらのストロークが結合型ストロークであれば、ステップS148に移行し、何もせずに結合型ストロークのキーポイントは同じピクセル内にそのまま維持される。一方、それらのストロークが結合型ストロークでない場合は、ステップS149に移行し、そのピクセルで最も大きな面積を占めているストロークのキーポイントが隣のピクセルの中心線上に移動される。例えば、図13(A)において、ピクセル120は3つのストローク、121、122、及び123で覆われている。これらのストロークは結合型ストロークではないので、ピクセル120の中で最も大きな面積を占めるストローク122のキーポイントは、図17(A)に示すように、隣のピクセル124の(水平の)中心線上に移動される。ここで、図13(A)において、ピクセル120の隣のピクセルは、辺を接して4個あるが、ストローク122のキーポイントが移動される先のピクセル(この場合はピクセル124であるが)がどのようにして決定されるのかが問題となる。ピクセル120の4つの辺のうち、ストローク122によって覆われている部分の長さが最も大きい辺(この場合は、ピクセル120の上下左右の4つの辺のうち、下側の辺になる。)に接するピクセル124が選択されることになる。図17(A)に示すように、ピクセル120は、そのピクセルカバー率が所定の値(例えば50%)を超えておらず、かつ、互いに向かい合った二つの輪郭セグメントも含んでいないので、塗りつぶされていない。このようにして、図17(B)に示すように、ピクセル120には適切なスペースが与えられ、文字が識別できるようにレンダリングされる。
もし、図15のステップS146において、ピクセルが2以上のストロークによって覆われていないと(つまり、単一のストロークであることが)判定されたら、ステップS150において、そのピクセルが互いに向かい合った輪郭セグメントを含んでいるかどうかが判定される。もし、含んでいると判定されると、ステップS151において、そのストロークのキーポイントが存在するピクセルの中心線上に、そのキーポイントを移動させ、輪郭セグメントの一方を(二つの輪郭セグメントが存在していた)ピクセルの外に移動させる。
例えば、図13(A)において、ピクセル126は互いに向かい合うストローク13の二つの輪郭セグメントを含んでいる。そのような場合、ピクセル127内にあるストローク13のキーポイントは、ピクセル127の中心線上に移動され、ストローク13の輪郭セグメントの一つ(左側のセグメント)はピクセル126の外に移動する。従って、図17(A)に示すように、ピクセル126はもはやお互いに向かい合った二つの輪郭セグメントを含まなくなり、(ピクセル126のカバー率が閾値、例えば50%を越えないと仮定して)、ピクセル126は塗りつぶされない。この結果として、図17(A)に示すように、ピクセル126(ピクセル128も同様)において文字に対して適切なスペースが与えられ、従来技術(図1(B))及び適切なスペースを与える所定の方法を使用しない先の実施例(図13(B))と比較して、低解像度スクリーンに文字全体をより認識可能(図17(B))に表示できるようになる。図17(B)において、ピクセル120、126、及び128が空白になっているため、文字イメージは元の漢字をはっきりと表している。このようにしてすべてのストロークについて必要な調整が終わり、フォントデータの再定義が終わると、それらのデータはコンピュータに記憶される(ステップS152)。
図18は、図2に示す5つの漢字と同じものであるが、本発明に係る方法を用いて修正されて、低解像度ディスプレイに表示されたものを示している。特に、フォントデータは調整されたキーポイントと幅値を用いて修正される(図6参照)とともに、適切なスペースを付与され(図15)、検出されたピクセルカバー率と所定のレンダリング基準に従ってレンダリングされる。
低解像度スクリーンは限られた数のピクセルしか持っていないので、場合によっては、一又はそれ以上のくっついたストロークを移動するためのスペースがとれないことさえある(図15のステップS143におけるNOの場合である。)。かかる場合に、図15のステップS153で、その文字を簡略化した書体に再定義するようにフォントデザイナーに促す。図19(A)は、横型ストロークを6つ(182a〜187a)も含んでいる文字180を示している。図19(B)は低解像度スクリーンにレンダリングされた文字180を示しており、6つの横型ストロークがくっついてしまって、4つになってしまっている。具体的には、ストローク182bと183b、184bと185bがそれぞれくっついている。しかしながら、くっついたストロークのキーポイントのいずれも動かすことができない。なぜなら、限られた文字サイズ(この例では10×10ピクセル)では、動かすために使用可能なスペースがないからである。例えば、くっついてしまったストローク185bを下方向に移動させると、新たなくっついたストロークのセット(この例では、185bと186bを指す。)ができてしまうからである。
かかる場合、フォントデザイナーは同じ文字の簡略化した書体に置き換える。図20(A)及び(B)は、図19(A)の文字180に対応した簡略化された文字190を示している。フォントデザイナーはそのような簡略化した文字を再定義し、記憶させる。
本発明に係る様々な方法がグラフィカルユーザインタフェース(GUI)やCADツールを用いて実行される。例えば、Windows(登録商標)のOS用のGUIツールは使用可能である。尤も、GUIツールは様々なほかのOSでも実行可能なのだが。GUIツールで実行される方法の1以上のステップは、画像解析技術によって自動的に実行可能であることに注意されたい。
以上、本発明の好ましい実施形態について図示し説明したが、本発明はこれに限定されるものではなく、特許請求の範囲に記載された発明の範囲を逸脱しない範囲で、様々な変更が可能である。
Claims (2)
- 高解像度で予め定義された文字セットを、それよりも低い解像度スクリーンに表示するための文字セットを生成するためのコンピュータによる方法であって、
前記文字のそれぞれが基本ストロークに基づくストロークを備え、前記基本ストロークのそれぞれがキーポイントと幅値によって定義されたものであり、さらに、前記方法は、
高解像度で予め定義された前記文字セットを受け取るステップ(a)と、
前記受け取った前記文字セットを低解像度スクリーンに対応した2次元座標のピクセルマトリクススクリーン上に投影するステップ(b)と、
前記受け取った文字セットを構成しているストロークを所定のルールに従って、前記ストロークのキーポイント及び/又は幅値を調整して再定義し、再定義された文字セットを生成するステップ(c)と、
前記再定義された文字セットを、所定のレンダリング基準に基づいてレンダリングするステップ(d)とを含み、
前記ステップ(c)は、更に、
互いにくっついており、且つ、横型ストロークでも縦型ストロークでもない、2以上のストロークを認識するステップ(c1)と、
前記ステップ(c1)で認識された前記ストロークによって占有された全てのピクセルに対して、前記ピクセルが2以上のストロークにそれぞれ属する2以上のキーポイントを含むか否かを決定し、前記ピクセルが2以上のストロークにそれぞれ属する2以上のキーポイントを含む場合に、同じピクセルを占有しており、且つ、それぞれ自分のキーポイントを有する前記2以上のストロークは結合型ストロークであると判定し、また、前記結合型ストロークであると判定されていない、前記ステップ(c1)で認識された前記各ストロークは独立型ストロークであると判定するステップ(c21)、
2以上の独立型ストロークによって占有された各ピクセルに対して、前記2以上の独立型ストロークのそれぞれの前記ピクセル内のカバー率を決定し、最大のカバー率を有する独立型ストロークのキーポイントを、前記ピクセルに隣接する近隣ピクセルの中心線上に移動させるステップ(c22)、及び、
前記結合型ストロークのキーポイントをそれらの元の位置に維持するステップ(c23)での処理を行うことにより、前記ステップ(c1)で認識された前記ストロークの間にスペースを設けるステップ(c2)と、
互いにくっついており、且つ、横型ストローク又は縦型ストロークである、2以上のストロークを認識するステップ(c3)と、
前記ステップ(c3)で認識された前記ストロークのうちの一方のストロークのキーポイントを、該キーポイントが元存在したピクセルに隣接するピクセルの中心線上に移動させるステップ(c4)とを具備したことを特徴とするコンピュータによる方法。 - 前記文字セットを構成する各ストロークが、キーポイント、幅値、前記キーポイント及び幅値と所定の空間的な関係を有する特徴点、並びに前記特徴点間の曲線を定義する湾曲度によって定義され、
前記ステップ(c)が、縦型ストロークのキーポイントを該キーポイントが存在するピクセルの縦の中心線上に移動させ、横型ストロークのキーポイントを該キーポイントが存在するピクセルの横の中心線上に移動させるステップを具備したことを特徴とする請求項1に記載のコンピュータによる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/202,158 US8243077B2 (en) | 2008-08-29 | 2008-08-29 | Method for generating stroke-based font characters for a low-resolution display |
US12/202,158 | 2008-08-29 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012238596A Division JP2013061660A (ja) | 2008-08-29 | 2012-10-30 | 低解像度ディスプレイのためのストロークベースのフォント文字を生成する方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014167635A true JP2014167635A (ja) | 2014-09-11 |
Family
ID=41724678
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009004580A Pending JP2010055048A (ja) | 2008-08-29 | 2009-01-13 | 低解像度ディスプレイのためのストロークベースのフォント文字を生成する方法 |
JP2012238596A Pending JP2013061660A (ja) | 2008-08-29 | 2012-10-30 | 低解像度ディスプレイのためのストロークベースのフォント文字を生成する方法 |
JP2014078566A Pending JP2014167635A (ja) | 2008-08-29 | 2014-04-07 | 低解像度ディスプレイのためのストロークベースのフォント処理方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009004580A Pending JP2010055048A (ja) | 2008-08-29 | 2009-01-13 | 低解像度ディスプレイのためのストロークベースのフォント文字を生成する方法 |
JP2012238596A Pending JP2013061660A (ja) | 2008-08-29 | 2012-10-30 | 低解像度ディスプレイのためのストロークベースのフォント文字を生成する方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8243077B2 (ja) |
JP (3) | JP2010055048A (ja) |
Families Citing this family (10)
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 |
US8836699B2 (en) * | 2011-02-04 | 2014-09-16 | Chiung Yu Chen | Generation of landmark architecture and sculpture based on chinese characters |
US8842916B2 (en) | 2011-02-22 | 2014-09-23 | Hewlett-Packard Development Company, L.P. | Method and system for model-based signature profile extraction |
TWI482101B (zh) * | 2012-04-10 | 2015-04-21 | Arphic Technology Co Ltd | 產生筆劃之方法 |
US9323726B1 (en) * | 2012-06-27 | 2016-04-26 | Amazon Technologies, Inc. | Optimizing a glyph-based file |
TWI544476B (zh) * | 2012-09-27 | 2016-08-01 | 文鼎科技開發股份有限公司 | 顯示器之字型產生系統 |
WO2015008104A1 (en) * | 2013-07-18 | 2015-01-22 | Freescale Semiconductor, Inc. | Apparatus and method for checking the integrity of visual display information |
TWI567568B (zh) * | 2016-03-22 | 2017-01-21 | 文鼎科技開發股份有限公司 | 字型調整方法 |
US10984173B2 (en) * | 2019-02-26 | 2021-04-20 | Adobe Inc. | Vector-based glyph style transfer |
CN111260743A (zh) * | 2020-01-08 | 2020-06-09 | 北大方正集团有限公司 | 文字笔画的调整方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03137697A (ja) * | 1989-10-23 | 1991-06-12 | Brother Ind Ltd | データ変換装置 |
JPH06175639A (ja) * | 1992-12-07 | 1994-06-24 | Fujitsu Ltd | 文字生成方法及びその装置 |
JPH10307573A (ja) * | 1997-01-22 | 1998-11-17 | Dynalab S Ltd | 全解像度空間における筆画基本文字発生方法及び装置 |
JP2002082663A (ja) * | 2000-06-27 | 2002-03-22 | Sanyo Electric Co Ltd | フォント処理装置、フォント処理方法及び記憶媒体 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU629210B2 (en) * | 1988-10-26 | 1992-10-01 | Sun Microsystems, Inc. | Method and apparatus for minimizing the visual degradation of digital typefaces |
US5050229A (en) * | 1990-06-05 | 1991-09-17 | Eastman Kodak Company | Method and apparatus for thinning alphanumeric characters for optical character recognition |
JP3354754B2 (ja) * | 1995-07-10 | 2002-12-09 | 大日本スクリーン製造株式会社 | カーニング処理方法 |
US5852448A (en) | 1996-09-20 | 1998-12-22 | Dynalab Inc. | Stroke-based font generation independent of resolution |
US6151032A (en) | 1996-09-20 | 2000-11-21 | Dynalab, Inc. | Stroke-based glyph-outline font generation in low/high resolution space |
US6157390A (en) | 1996-09-20 | 2000-12-05 | Dynalab (S) Ltd. | Stroke-based font generation |
JP3481136B2 (ja) * | 1998-05-29 | 2003-12-22 | シャープ株式会社 | 文字フォント生成方法およびそのための装置ならびに文字フォント生成プログラムを記録したコンピュータで読取可能な記録媒体 |
JP2001005440A (ja) * | 1999-06-18 | 2001-01-12 | Matsushita Electric Ind Co Ltd | 文字データ生成装置 |
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 |
US8253742B2 (en) * | 2004-05-28 | 2012-08-28 | Microsoft Corporation | Rendering stroke pairs for graphical objects |
US7710422B2 (en) * | 2004-07-26 | 2010-05-04 | Microsoft Corporation | Font representations |
US7289123B2 (en) * | 2004-09-30 | 2007-10-30 | Microsoft Corporation | Simplifying complex characters to maintain legibility |
US7199797B2 (en) * | 2004-12-13 | 2007-04-03 | Dynacomware | Silhouette-oriented gray font generation |
-
2008
- 2008-08-29 US US12/202,158 patent/US8243077B2/en active Active
-
2009
- 2009-01-13 JP JP2009004580A patent/JP2010055048A/ja active Pending
-
2012
- 2012-10-30 JP JP2012238596A patent/JP2013061660A/ja active Pending
-
2014
- 2014-04-07 JP JP2014078566A patent/JP2014167635A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03137697A (ja) * | 1989-10-23 | 1991-06-12 | Brother Ind Ltd | データ変換装置 |
JPH06175639A (ja) * | 1992-12-07 | 1994-06-24 | Fujitsu Ltd | 文字生成方法及びその装置 |
JPH10307573A (ja) * | 1997-01-22 | 1998-11-17 | Dynalab S Ltd | 全解像度空間における筆画基本文字発生方法及び装置 |
JP2002082663A (ja) * | 2000-06-27 | 2002-03-22 | Sanyo Electric Co Ltd | フォント処理装置、フォント処理方法及び記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP2013061660A (ja) | 2013-04-04 |
US8243077B2 (en) | 2012-08-14 |
US20100053171A1 (en) | 2010-03-04 |
JP2010055048A (ja) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014167635A (ja) | 低解像度ディスプレイのためのストロークベースのフォント処理方法 | |
JP4762901B2 (ja) | 合成グリフの領域をレンダリングする方法 | |
US6501475B1 (en) | Glyph-based outline font generation independent of resolution | |
JP4124494B2 (ja) | 置換コンピュータ字体の供給方法及び装置 | |
JP4693660B2 (ja) | 描画装置、描画方法及び描画プログラム | |
US7129948B2 (en) | Methods and systems for hinting fonts | |
EP0786757B1 (en) | Adjusting contrast in antialiasing | |
US6661417B1 (en) | System and method for converting an outline font into a glyph-based font | |
JP2006521629A (ja) | オブジェクトを表現する2次元距離フィールドの領域をアンチエイリアスする方法及び装置 | |
US8854375B2 (en) | Method and system for generating gray dot-matrix font from binary dot-matrix font | |
JP4869920B2 (ja) | オブジェクトを表現する2次元距離フィールドからピクセルのコンポーネントのアンチエイリアス強度を求める方法及び装置 | |
CN101331520A (zh) | 字体提示中的笔画对比 | |
CN101341481A (zh) | 自动字体控制值确定 | |
JP5097133B2 (ja) | マージされたテキストパスにエフェクトを適用すること | |
JP4162670B2 (ja) | シルエット化グレーフォント発生方法 | |
US6614432B1 (en) | Image rendering technique | |
JP2006521628A (ja) | 2次元オブジェクトの隅に関連するセル内に2次元距離フィールドを生成する方法 | |
EP2410487B1 (en) | Method for automatically modifying a graphics feature to comply with a resolution limit | |
JP2006521627A (ja) | 動画スクリプトに従ってフレームシーケンスとしてオブジェクトを動画化する方法 | |
JP2006521626A (ja) | ペンストロークから2次元距離フィールドを生成する方法 | |
JP2006521624A (ja) | 2次元オブジェクトを2次元距離フィールドに変換する方法 | |
JP4625269B2 (ja) | 文字画像生成装置,文字画像生成方法,表示制御装置,文字画像生成プログラムおよび表示制御プログラム | |
KR100918890B1 (ko) | 처리 장치 및 기록 매체 | |
JP2006521625A (ja) | 2次元距離フィールドを境界デスクリプタの集合に変換する方法 | |
TWI282947B (en) | Silhouette oriented gray font generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20140603 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140610 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141104 |