(57)【要約】【課題】修飾文字生成処理が高速で、文字パターン展開領域に要するメモリ使用サイズやフォントファイルサイズが小さく、文字品質が確保されたデザイン性のある文字表現を可能とする文字生成処理方法を提供する。【解決手段】１文字毎に文字コードに対応するアウトラインフォントデータを読み出し（S1）、アウトラインフォントデータに係る階調値の下位ビットを操作し、輪郭の端部情報を算出する（S2）。次に、輪郭の端部情報となった画素の階調値を１ライン毎に参照して修飾用フラグを設定する（S3）。そして１ライン毎に文字の本体部分と修飾用フラグで縁取りされた輪郭部分を同時に生成する（S4）。最後に、塗り潰し処理を行い、修飾文字を生成する（S5）。【選択図】図２
2007219019.tif 000002
【特許請求の範囲】
【請求項１】
文字形状情報が文字輪郭として格納されているデータから文字輪郭を含む文字本体を
生成しデザイン性を有する文字を生成する文字生成処理方法であって、
文字本体の輪郭を生成する過程と、
文字本体に対して実行すべき修飾の内容を設定する過程と、
生成した前記輪郭の文字階調値の下位ビットを輪郭端部情報となるよう操作する過程と、
前記本体に対して左端か右端かを判定する輪郭端部情報及び前記輪郭の文字階調値から文字外縁部に修飾位置を設定し、該位置にフラグを設定する過程と、
前記フラグを設定した画素の階調値を制御して文字の修飾部分を生成する過程と、
生成された前記文字の輪郭部分を除く文字本体部分を塗り潰す過程と、
を含むことを特徴とする文字生成処理方法。
【請求項２】
前記フラグを設定する過程は、
フラグ設定に係る閾値を任意に設定し、設定された閾値と操作された下位ビットを除く上位ビットから成る前記輪郭の文字階調値を比較して前記フラグ設定位置を切り替え、切り替えた位置にフラグを設定する過程
を含むことを特徴とする請求項１に記載の文字生成処理方法。
【請求項３】
前記フラグは、複数の設定値を有し、そのフラグを設定する過程は、
フラグ設定に係る閾値を予め設定しておき、前記閾値と前記輪郭の文字階調値を比較することで、前記複数のフラグ値を切り替え、切り替えたフラグ値を設定する過程
を含むことを特徴とする請求項１に記載の文字生成処理方法。
【請求項４】
設定された前記フラグ値に対応して修飾階調値を決定する過程
を含むことを特徴とする請求項３に記載の文字生成処理方法。
【請求項５】
前記文字本体に対して実行すべき修飾の内容を設定する過程は、
文字サイズ、又は、文字画像の塗り潰しパターン、太字パターン、縁取りパターン、中抜きパターン、のいずれか一以上を選択して設定する
ことを特徴とする請求項１に記載の文字生成処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字形状情報が文字輪郭として格納されているデータから、文字本体部分と文字の輪郭部分を同時に生成し、デザイン性のある文字を生成する文字生成処理方法に関する。
【背景技術】
【０００２】
従来、携帯電話や車載情報機器（カーナビゲーション）等の組み込み機器で搭載される文字デザイン情報の格納形式はドットフォントを用いていた。これは、従来の組み込み機器おける処理能力が低く必要な文字画像をそのままメモリ内部に記憶し、それを画面に展開するだけで文字表示が行える方法が効率的であったからである。
【０００３】
しかし、ドットフォントの文字表現では、文字を、ドットを塗り潰して（２値表現）点の集まりで文字を表現するため、文字生成に必要な処理能力が低くできるという長所があるが、拡大縮小、変形、修飾のようなデザイン性のある文字画像を表現することが難しいという短所があった。また、文字サイズ毎にフォントファイルを持たなければならないため、搭載できる記憶容量に制限がある組み込み機器ではデザイン性のある文字画像に制限があった。
【０００４】
その一方、文字デザイン情報が輪郭（アウトライン）で格納されているアウトラインフォントという格納形式が知られている。この文字デザイン情報の格納形式は、文字のアウトラインを表す線を、頂点の座標データと、直線、曲線を表す関数データで一つの文字情報を格納する方法である。文字表示時に曲線の方程式を計算して、描画する点の配置を算出し、輪郭を描いてから内部を塗り潰して文字を生成する。このため、拡大や縮小、変形を行っても、文字の形が崩れないため、デザイン性のある文字表現が可能である。
【０００５】
しかし、ドットフォント形式に比べて、文字生成時間がかかるため、今までは処理能力が低い組み込み機器での利用は難しかった。しかし、近年、組み込み機器の性能が向上し、また、組み込み機器でもアウトラインフォント形式を用いて、デザイン性のある文字表現をしたいというニーズが高まってきている。
【０００６】
例えば、カーナビのマップ表示などで複雑な模様や背景の上に文字や図形を重ねて表示する場合、重ねる文字や図形の色と背景色との色の組み合わせによってはコントラストの差がなくなり、視認性が低下するといった課題があるため、デザイン性のあるアウトラインフォント形式を用いたいという要求が高まっている。そこで、デザイン性のある文字表現（文字修飾）を行うことで、背景色との混合を防止することができ、文字を重ねた際の視認性を向上させることができる。
【０００７】
アウトラインフォントでデザイン性のある文字表現を行う方法、特に、縁取り修飾文字を生成する従来技術としては、次の２つの方法が知られている。
［第１の従来技術］
図２０は文字生成処理を説明するための第１の従来技術（特許文献１参照）を示す図である。図２０において本来の文字画像202と、本来の文字画像202とサイズの異なる文字画像201を生成し、それらを合成することで文字修飾204を実現する。図２０では、太めに処理した文字201の上に、本来の文字画像202を重ねて縁取り修飾文字を生成している。
【０００８】
図２１は図２０に示した第１の従来技術を説明するためのフローチャートである。図２１において初めに、指定された文字サイズの文字の輪郭を描画し(S202)、輪郭内部を塗り潰す(S203)ことで、第１の文字画像201’を生成する。次に、サイズが異なる文字の輪郭を描画し(S205)、その内部を塗り潰す(S206)ことで、サイズが異なる第２の文字画像202’を生成する。最後に、指定されたサイズで生成された第１の文字画像201’とサイズが異なる第２の文字画像202’を重ね合わせ、修飾文字204を生成する。
［第２の従来技術］
図２２は文字生成処理を説明するための第２の従来技術（特許文献２参照）を示す図である。図２２は本来のアウトライン情報211の他に文字修飾処理のための芯線情報212を別なデータとして両方持たせ、その芯線情報212を利用して文字修飾に必要な輪郭線213を作成し、それらを合成することで輪郭線を一定幅で縁取りする文字修飾216を実現する。つまりアウトライン情報211とは別に芯線情報212を利用して輪郭線213を作成してインラインパターン214を生成し、それらを合成することで、輪郭線を一定幅で縁取りする文字修飾216を実現する。
【０００９】
図２３は図２２に示した第２の従来技術を説明するためのフローチャートである。図２３において初めに、指定された文字サイズの文字輪郭を描画し(S212)、輪郭内部を塗り潰す(S213)ことで、文字画像211’を生成する。
【００１０】
次に、芯線情報212を読み込み(S215)、芯線から線幅で指定された分だけ外側へ輪郭線213を新たに作成することで、インラインパターン214を生成する(S216)。最後に、生成された文字画像211’とインラインパターン214を重ね合わせる(S217)ことで、修飾文字216を生成する。
【特許文献１】特開平９−９０９３３号公報
【特許文献２】特開平１１−２８８２６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した第１および第２の従来技術に係る修飾文字生成方法では、文字本体のビットマップパターンと文字修飾のビットマップパターンを各別に作成し、それらを合成または重ね合わせすることで文字修飾を実現している。そのため、
（１）文字を生成するために、メモリ上に２文字分のビットマップ展開領域を必要とするのでメモリ使用サイズが大きくなってしまう
（２）修飾される文字とは別に描画しそれを合成に使用するため、処理速度が遅い
（３）輪郭の文字階調値に依存せずに画一的な処理を行うため、文字階調値によっては文字本体の輪郭部分と修飾文字の縁取り部分とが重なる事態が発生し、見た目が悪く、画質が悪い
といった、多くの課題が存在していた。
【００１２】
そこで本発明では、修飾文字生成処理が高速で、文字パターン展開領域に要するメモリ使用サイズやフォントファイルサイズが小さく、文字品質が確保されたデザイン性のある文字表現を可能とする文字生成処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために本発明の文字生成処理方法は、文字形状情報が文字輪郭として格納されているデータから文字輪郭を含む文字本体を生成しデザイン性を有する文字を生成する文字生成処理方法であって、文字本体の輪郭を生成する過程と、文字本体に対して実行すべき修飾の内容を設定する過程と、生成した前記輪郭の文字階調値の下位ビットを輪郭端部情報となるよう操作する過程と、前記本体に対して左端か右端かを判定する輪郭端部情報及び前記輪郭の文字階調値から文字外縁部に修飾位置を設定し、該位置にフラグを設定する過程と、前記フラグを設定した画素の階調値を制御して文字の修飾部分を生成する過程と、生成された前記文字の輪郭部分を除く文字本体部分を塗り潰す過程と、を含むことを特徴とする。
【発明の効果】
【００１４】
本発明の文字生成処理方法によれば、文字の輪郭部分の生成時に、文字の輪郭部分の階調値に応じて、任意の幅の外側に修飾処理領域を示すフラグを立てることで、文字の本体部分と文字修飾を施す文字の輪郭部分の作成を同時に処理することができ、文字パターン展開領域に要するメモリ使用サイズやフォントファイルサイズを小さくすることができる。
【００１５】
また本発明の文字生成処理方法によれば、アウトラインフォントへデザイン性のある文字表現を施す処理を行う場合、文字階調に対する縁取り階調を適切に選ぶことで、文字修飾を含めた文字のデザインに応じてフレキシブルに対応できる。このため、見栄えの良い文字を生成することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施形態に係る文字生成処理装置の概略構成を示すブロック図である。本発明の実施形態に係る文字生成処理装置は、入力手段10、記憶手段20、演算手段30および出力手段40という４つの機能ブロック手段から構成されている。入力手段10は、フォントファイル12や修飾処理内容ファイル13を備えるとともに、キーボード等の入力装置11または、ファイルから文字列を入力する。記憶手段20は、入力されたフォントデータや文字列がそれぞれフォントデータ格納部22や文字列格納部21に格納され、また、出力手段40に出力するための文字画像を格納する文字画像格納部23を備えている。演算手段30は、フォントデータを読み込むアウトラインデータ読み込み部31、修飾内容を設定する修飾処理設定部32、アウトラインデータを修飾処理内容に基づいて展開するアウトライン展開制御部33、文字本体の輪郭を生成する文字輪郭生成部34、修飾のためのフラグを生成する修飾用フラグ生成部35、文字本体の輪郭内部を塗り潰す塗り潰し処理部36、修飾用フラグがある部分に修飾処理内容に基づいて塗り潰して修飾文字を完成させる文字画像生成部37を備えている。出力手段40は、表示装置41に文字画像格納部23に格納された完成された修飾文字画像を出力する。
【００１７】
図２は、本発明の実施形態に係る文字生成処理方法の処理概要を説明するための動作フロー図である。図２では、１文字毎に文字コードに対応するアウトラインフォントデータを読み出し（S1）、アウトラインフォントデータに係る階調値の下位ビットを操作し、輪郭の端部情報を算出する（S2）。次に、輪郭の端部情報となった画素の階調値を１ライン毎に参照して修飾用フラグを設定する（S3）。そして１ライン毎に文字の本体部分と修飾用フラグで縁取りされた輪郭部分を同時に生成する（S4）。最後に、塗り潰し処理を行い、修飾文字を生成する（S5）。
【００１８】
図３は、本発明の実施形態に係る文字生成処理方法の簡略化した全体処理を説明するためのフローチャートである。図３において本発明の実施形態に係る文字生成処理方法における処理では、１文字毎に文字コードに対応するフォントデータを読み出し、修飾文字を生成する。すなわち、図３において、まず、アウトラインフォントデータを読み込み（S11）、文字属性にしたがってアウトラインフォントデータを展開し、文字本体の輪郭を生成する（S12）。生成された輪郭12を矢印によって右側に示す。次に、文字修飾属性にしたがって修飾用フラグを生成する（S13）。修飾フラグが付加された文字13を矢印によって右側に示す。次に、文字属性、および、修飾属性の指定に応じて、塗り潰し処理を行う（S14）。塗り潰し処理が行われた修飾文字14を矢印によって右側に示す。最後に、文字グリフを生成する（S15）。
【００１９】
図４は、本発明の実施形態に係る輪郭端部情報を示すよう操作した結果を示す図である。図４ではアウトラインフォントデータを展開し、文字輪郭に相当する画素（ピクセル）の階調値の下位２bitを操作して端部情報を示すように処理して表示したものである。下位２bitが立っているピクセル（=3）は塗り潰し開始もしくは終了ピクセルを表し、下位１bitが立っているピクセル（=2）は単一塗り潰しピクセルを表している。このように階調値の下位２bitを参照することで、文字輪郭の端部情報が知ることができる。
【００２０】
輪郭端部情報を示すよう操作するには、ビットマップに展開された１ラインに対して、アウトラインが縦に縦断する回数は必ず偶数回になるというアウトラインフォントの特性から、
(１) アウトラインが通ったピクセルの下位２bitを立てる。
(２) (１)の操作に加えて更に当該ピクセルに対してアウトラインが縦断していた場合は、下位１bitを反転させる。
という処理を展開された全てのピクセルに対して行い、
(３) 下位１bitが立っているピクセルは輪郭の開始もしくは終了を表す輪郭端部情報
(４) 下位２bitが立っているピクセルは単一の輪郭端部情報
という扱いにする。
【００２１】
図５は、本発明の実施形態に係る修飾用フラグが設定された後のアウトラインフォントデータが展開されたメモリの中の状態を示す図である。図５を見ると図４に示した輪郭端部情報の周囲に修飾用フラグが設定されている様子が分る。
【００２２】
ここで修飾用フラグの設定の仕組みについて図６を用いて説明する。図６は本発明の実施形態に係る修飾用フラグの設定の仕組みを説明する原理図である。上記した輪郭に相当するピクセルの下位２ビット操作により生成した輪郭端部情報51と、当該輪郭に相当するピクセルの階調値52を用いて、まず修飾用フラグ位置53の設定を行う。次に、画素値−修飾用フラグ対応表54から、対象となっているピクセルの画素値を参照して修飾用フラグ(フラグID)を決定し、修飾用フラグ55を設定する。
【００２３】
上述した修飾用フラグ位置設定処理について図７および図８を用いてさらに説明する。図７は本発明の実施形態に係る修飾用フラグの第１の位置設定方法を説明する図であり、図８は本発明の実施形態に係る修飾用フラグの第２の位置設定方法を説明する図である。図７に示すように、アウトラインが縦断している対象ピクセルの画素値(=200)が閾値以上の場合には、対象ピクセルを中心に４方向(上下左右方向)を画素値のビット操作範囲とする。ビット操作の結果、図７では対象ピクセルの上側と左側に修飾領域を示すフラグ（図例の場合「１」）を設定する。これに対して図８に示すように、アウトラインが縦断している対象ピクセルの画素値(=50)が閾値以下の場合には、対象ピクセル自分自身をビット操作する。ビット操作の結果、図８では対象ピクセル自分自身だけに修飾領域を示すフラグ（図例の場合「１」）を設定する。
【００２４】
図９Ａないし図９Ｅは、本発明の実施形態に係る修飾用フラグ位置設定処理および修飾用フラグ設定処理の動作を説明するフローチャートであって、図９Ａはメインフローで、図９Ｂないし図９Ｅはサブフローに該当する。まず図９Ａのメインフローを説明する。図９Ａで動作が開始されると、すべてのピクセルが走査されているかを判定し（S21）、走査済みなら終了するが、走査が済んでいない場合には、階調値の下位１bitが１かを判定する（S22）。下位１bitが１であれば、ステップ２３に進み、下位１bitが１でなければ、ステップ２６に進む。ステップ２３では階調値は閾値以上かを判定し、閾値以上であれば、ステップ２４に進み、ピクセルに出会った回数が奇数回かを判定する。奇数回であれば、サブフローＢ（図９Ｂ）に跳ぶ。サブフローＢの処理が終了すれば、ステップ２９に進み、ピクセル番号をインクリメントしてステップ２１に戻る。一方、奇数回でなければ、サブフローＤ（図９Ｄ）に跳ぶ。サブフローＤの処理が終了すれば、ステップ２９に進み、ピクセル番号をインクリメントしてステップ２１に戻る。
【００２５】
またステップ２３で階調値は閾値以上でなければ、ステップ２５に進み、ピクセル番号iに修飾用フラグを立て、ステップ２９に進む。ステップ２９では、ピクセル番号をインクリメントしてステップ２１に戻る。
【００２６】
またステップ２６では、階調値の下位２bitが１かを判定する。階調値の下位２bitが１であれば、ステップ２７に進み、ステップ２７で階調値は閾値以上かを判定する。閾値以上であれば、サブフローＥ（図９Ｅ）に跳ぶ。サブフローＥの処理が終了すれば、ステップ２９に進み、ピクセル番号をインクリメントしてステップ２１に戻る。また、閾値以上でなければ、ステップ２８に進み、ピクセル番号iに修飾用フラグを立て、ステップ２９に進む。ステップ２９では、ピクセル番号をインクリメントしてステップ２１に戻る。
【００２７】
また、ステップ２６で階調値の下位２bitが１でなければ、ステップ２９に進む。ステップ２９では、ピクセル番号をインクリメントしてステップ２１に戻る。
図９Ｂは、メインフローのステップ２４からジャンプしたサブフローＢを示すものである。図９Ｂのステップ３１では、ピクセル番号(i＋文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S32）、ステップ３４に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S33）、ステップ３４に進む。ステップ３４では、ピクセル番号(i−1)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S35）、ステップ３７に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S36）、ステップ３７に進む。ステップ３７では、ピクセル番号(i−文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S38）、サブフローＣに進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S39）、サブフローＣに進む。
【００２８】
図９Ｃは、図９ＢのサブフローＢのステップ３８、３９に接続するサブフローであり、図９Ｃのステップ４１では、文字本体の内部塗り潰し領域内かを判定する。内部塗り潰し領域内でないときにはフローを終了してメインフローに復帰し、内部塗り潰し領域内であればステップ４２においてピクセル番号をインクリメントし、ステップ４３に進む。ステップ４３では、ピクセル番号(i＋文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S44）、ステップ４６に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S45）、ステップ４６に進む。ステップ４６では、ピクセル番号(i−文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S47）、ステップ４１に戻る。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S48）、ステップ４１に戻る。この操作を繰り返してステップ４１では、内部塗り潰し領域内でないときにはフローを終了してメインフローに復帰する。
【００２９】
図９Ｄは、メインフローのステップ２４からジャンプしたサブフローＤを示すものである。図９Ｄのステップ５１では、ピクセル番号(i＋文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S52）、ステップ５４に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグを立てず（S53）、ステップ５４に進む。ステップ５４では、ピクセル番号(i＋1)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S55）、ステップ５７に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S56）、ステップ５７に進む。ステップ５７では、ピクセル番号(i−文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S58）、図９Ａのメインフローに戻る。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S59）、図９ＡのメインフローＣに戻る。
【００３０】
図９Ｅは、メインフローのステップ２７からジャンプしたサブフローＥを示すものである。図９Ｅのステップ６１では、ピクセル番号(i＋文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S62）、ステップ６４に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグを立てず（S63）、ステップ６４に進む。ステップ６４では、ピクセル番号(i＋1)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S65）、ステップ６７に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S66）、ステップ６７に進む。ステップ６７では、ピクセル番号(i−1)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S68）、ステップ７０に進む。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S69）、ステップ７０に進む。ステップ７０では、ピクセル番号(i−文字幅)において修飾用フラグが立っていないか及び階調値が０かを判定する。修飾用フラグが立っていず且つ階調値が０であれば、修飾用フラグを立てて（S71）、図９Ａのメインフローに戻る。一方、修飾用フラグが立っているか又は階調値が０でなければ、修飾用フラグが立てず（S72）、図９Ａのメインフローに戻る。
【００３１】
以上のフローでの処理を簡単に説明すると図１０のようになる。図１０は、本発明の実施形態に係る修飾用フラグ位置設定に影響を及ぼす範囲について説明する図である。図１０に示すように輪郭線65が縦断している端部ピクセルが開始点を表している場合、その階調値61が閾値以上ならば、矢印で示される上、下及び左の３方向が修飾用フラグ位置設定の候補となる。またピクセルが塗り潰し領域内に入っている場合、その階調値62が閾値以上であれば、矢印で示される左右の２方向が修飾用フラグ位置設定の候補となる。さらに輪郭線66が縦断している端部ピクセルが終点を表している場合、その階調値63が閾値以上ならば、矢印で示される上、下及び右の３方向が修飾用フラグ位置設定の候補となる。各ピクセルの階調値を参照する際、階調値が閾値以下の場合は、現在参照している自分自身のピクセルに対して修飾用フラグを設定する。
【００３２】
このようにして修飾フラグの位置設定並びに修飾フラグの設定を行う。なお、上記の修飾用フラグを立てる処理において、階調値のビット操作対象となる領域は、４方向(上下左右方向)を処理対象にするのではなく、８方向(上下左右方向、各対角線方向)を処理対象にしてもよい。
【００３３】
図１１は、本発明の実施形態に係る修飾用フラグを階調値のどこへ割り当てるかを示す第１フォーマット例を示す図である。図１１に示す第１のフォーマット例は修飾用フラグを１箇所しか割り当てない場合で、下位２bitで文字の輪郭端部情報と修飾処理とを表現することができる。図１２は、図１１の第１のフォーマット例における画素値−フラグ対応表を示す図である。図１２から分るように修飾用フラグは下位２bitで表現されており、「１」が修飾処理に用いられ、「２」および「３」が塗り潰し領域算出用に用いられている。
【００３４】
図１３は、本発明の実施形態に係る修飾用フラグを階調値のどこへ割り当てるかを示す第２フォーマット例を示す図である。図１３に示す第２のフォーマット例では、修飾用フラグを複数箇所に割り当てている場合で、下位２bitに文字輪郭端部情報と修飾処理用のフラグ(ＩＤ番号：ID4)を割り当て、さらに上位ビットに修飾処理用のフラグ(ＩＤ番号：ID3〜ID1)を割り当てて表現することができる。図１４は、図１３の第２のフォーマット例における画素値−フラグ対応表を示す図である。図１４から分るように修飾用フラグは下位２bitのみならず上位のbitにも割り当てられて表現されており、「２」および「３」が塗り潰し領域算出用に用いられていることは上述の図１２と同様であるが、修飾処理には、「１」にフラグＩＤ番号(ID4)が、「10」にフラグＩＤ番号(ID3)が割り当てられている。これ以外のフラグＩＤ番号(ID2、ID1)は図１４の表には図示されていない。
【００３５】
階調値のどの値を修飾用フラグとするかを算出するための式を以下に示す。ただし、この式では、最大階調値及び最小階調値は文字画像全体を範囲として説明する。しかし文字画像の一部の範囲での階調値の最大値及び最小値を用いてもよい。
【００３６】
算出式=（最大階調値−最小階調値）/  輪郭部階調数  ）
例えば、0から255の256階調で表現されている文字画像に対して文字輪郭部を４階調で表現したいとすると、上記算出式に代入して、
算出式= (255 − 0) / 4 = 64
が求まる。したがって、階調値64を基準として、修飾処理用フラグＩＤ番号(ID4)は階調値0〜63、修飾処理用フラグＩＤ番号(ID3)は階調値64〜127、修飾処理用フラグＩＤ番号(ID2)は階調値128〜191、修飾処理用フラグＩＤ番号(ID1)は階調値192〜255と決定することができる。この方法により、修飾処理用フラグ(ＩＤ番号)を階調値に偏よることなく均等に割り当てることができる。
【００３７】
図１５は、図１３および図１４で示した修飾処理用フラグ(ＩＤ番号)を用いて修飾輪郭部の階調値を決定するフローを示す図である。図１５において、まず閾値と輪郭部階調値を比較して修飾用フラグ設定位置を決定する(S81)。次に決定した位置における輪郭部の階調値に応じて修飾用フラグＩＤを決定する(S82)。そして修飾用フラグＩＤから、修飾輪郭部の階調値を決定する(S83)。
【００３８】
図１６は、図１５に示すフローチャートに沿った修飾輪郭部の階調値処理を説明するタイミングチャートである。図１６の上側は、輪郭階調値が閾値以下の場合、図１６の中程は、輪郭階調値が閾値を超える場合、をそれぞれ示し、下側に示した比較表７１〜７３を用いてステージが遷移する様子を示す。最初に図１６の上側の例について説明する。ステージａでは比較表７１を用いて輪郭階調値が閾値以下なので、ステージｂでは自分自身に修飾フラグ位置設定と修飾用フラグを設定する。ステージｃでは階調値30が比較表７２を用いて修飾用フラグＩＤがID4に相当することがわかる。ステージｄでは比較表７３を用いて修飾用フラグID4に対応する塗る潰し階調値が63であることが分り、塗り潰し階調値63で輪郭部を塗り潰す。
【００３９】
次に図１６の中程の例について説明する。この例の場合既に１ライン前の走査で輪郭部の階調値処理が終了しており、その結果、輪郭部の階調値200に対して修飾用フラグID1が設定されている。本ラインの走査に入って、ステージａでは比較表７１を用いて輪郭階調値が閾値を超えるので、ステージｂでは外側に修飾用フラグ位置設定とフラグ設定を行う。ステージｃでは階調値180が比較表７２を用いて修飾用フラグＩＤがID2に相当することがわかる。ステージｄでは比較表７３を用いて修飾用フラグID2に対応する塗る潰し階調値が191であることが分り、塗り潰し階調値191で輪郭部を塗り潰す。
【００４０】
図１７は、本発明の実施形態に係る文字生成処理方法の全体処理を説明するためのフローチャートである。図３に示したフローと比較すると、閾値設定および閾値と輪郭階調値の比較がステップに追加されている点を除いて図３に示したフローと同じである。図１７において、まず、アウトラインフォントデータを読み込む(S91)。次に、閾値を設定する(S92)。そして文字属性にしたがってアウトラインフォントデータを展開し、文字本体の輪郭を生成する(S93)。次に、設定した閾値と輪郭階調値を比較する(S94)。そして文字修飾属性にしたがって修飾用フラグを生成する(S95)。次に、文字属性、および、修飾属性の指定に応じて、修飾フラグが付加された文字の本体部分および輪郭部分に塗り潰し処理を行う(S96)。最後に、文字グリフを生成する(S97)。
【００４１】
図１８は、図１７と同様、本発明の実施形態に係る文字生成処理方法の全体処理を説明するためのフローチャートである。図１７と異なる点は、修飾輪郭部の階調数分だけ閾値を設定し、修飾用フラグの切り替えが行えるようにした点であり、それ以外は図１７に示したフローチャートと同じである。図１８において、まず、アウトラインフォントデータを読み込む(S101)。次に、修飾輪郭部の階調数分だけ閾値を設定する(S102)。そして文字属性にしたがってアウトラインフォントデータを展開し、文字本体の輪郭を生成する(S103)。次に、設定した閾値と輪郭階調値を比較する(S104)。比較の結果に応じて修飾用フラグを切り替える(S105)。そして文字修飾属性にしたがって修飾用フラグを生成する(S106)。設定された修飾フラグには修飾輪郭部の階調値を決定するフラグＩＤ番号が付随するものとなる。次に、修飾輪郭部の塗り潰し階調値を決定する(S107)。そして文字の本体部分および輪郭部分に塗り潰し処理を行う(S108)。最後に、文字グリフを生成する(S109)。
【００４２】
図１９は、本発明の実施形態に係る塗り潰し処理を行って得た修飾文字の例を示す図である。塗り潰し処理は、図４で既に説明しているように、
(１) 下位１bitが立っているピクセルは塗り潰し開始もしくは終了ピクセル
(２) 下位２bitが立っているピクセルは単一塗り潰しピクセル
という扱いにすることで、アウトラインフォントの展開において、
(３) 下位１bitが立っているピクセルに出会ったら、次の下位１bitが立っているピクセルまで塗る
(４) 下位２bitが立っているピクセルに出会ったら、そのピクセルを塗り潰す
というルールでライン走査すれば、文字の内部を塗り潰すことが可能である。
【００４３】
このような処理を行うことで、ピクセルに対してアウトラインの縦断回数と対象ピクセルのXORビット演算を繰り返し、縦断回数の下位１bitを見ることで、
(５) 下位１bitが立っているピクセルに出会った回数が奇数回の場合は塗り潰し領域内
(６) 下位１bitが立っているピクセルに出会った回数が偶数回の場合は塗り潰し領域外
を判定している。このため、加算などの計算を用いないため、高速に処理が可能である。
【００４４】
上記のような処理を全ピクセルに対して１ライン毎の走査を行うようにしていたではアウトラインが通っていない部分に対してもライン走査を行わなければならず無駄な時間が生じることになる。それを改善するため、アウトラインデータを処理すると同時に、ライン毎の最大・最小のピクセル値をポインタで保持しておくことで、必要な部分だけ処理を行うことができ、大幅に走査面積を減らすことができ、より高速な処理が可能となる。
【００４５】
なお、塗り潰し処理が終了し、文字グリフが作成された場合には、図３のステップ１６、図１７のステップ９８及び図１８のステップ１１０のおける文字列の終了を判定し、文字列の終了を確認できたら、修飾文字グリフを格納する
以上説明したように本発明によれば、塗り潰し領域を階調値の下位２bitの状態から範囲を算出し、かつ、文字塗り潰し処理を高速演算が可能な論理演算のみで処理が行えるため、文字品質が確保されたデザイン性のある修飾文字の生成時間を短縮させることができる。
【００４６】
また文字の輪郭部分の生成時に、文字の輪郭部分の階調値に応じて、任意の幅の外側に修飾処理領域を示すフラグを立てることで、文字の本体部分と文字修飾を施す文字の輪郭部分の作成を同時に処理することができ、文字パターン展開領域に要するメモリ使用サイズやフォントファイルサイズを小さくすることができる。
【００４７】
またアウトラインフォントへデザイン性のある文字表現を施す処理を行う場合、文字階調に対する縁取り階調を適切に選ぶことで、文字修飾を含めた文字のデザインに応じてフレキシブルに対応できる。このため、ユーザの満足度が高い、見栄えの良い文字を生成することができる。
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
【００４８】
（付記１）
文字形状情報が文字輪郭として格納されているデータから文字輪郭を含む文字本体を生成しデザイン性を有する文字を生成する文字生成処理方法であって、
文字本体の輪郭を生成する過程と、
文字本体に対して実行すべき修飾の内容を設定する過程と、
生成した前記輪郭の文字階調値の下位ビットを輪郭端部情報となるよう操作する過程と、
前記本体に対して左端か右端かを判定する輪郭端部情報及び前記輪郭の文字階調値から文字外縁部に修飾位置を設定し、該位置にフラグを設定する過程と、
前記フラグを設定した画素の階調値を制御して文字の修飾部分を生成する過程と、
生成された前記文字の輪郭部分を除く文字本体部分を塗り潰す過程と、
を含むことを特徴とする文字生成処理方法。
【００４９】
（付記２）
前記フラグを設定する過程は、
フラグ設定に係る閾値を任意に設定し、設定された閾値と操作された下位ビットを除く上位ビットから成る前記輪郭の文字階調値を比較して前記フラグ設定位置を切り替え、切り替えた位置にフラグを設定する過程
を含むことを特徴とする付記１に記載の文字生成処理方法。
【００５０】
（付記３）
前記フラグは、複数の設定値を有し、そのフラグを設定する過程は、
フラグ設定に係る閾値を予め設定しておき、前記閾値と前記輪郭の文字階調値を比較することで、前記複数のフラグ値を切り替え、切り替えたフラグ値を設定する過程
を含むことを特徴とする付記１に記載の文字生成処理方法。
【００５１】
（付記４）
設定された前記フラグ値に対応して修飾部分階調値を決定する過程
を含むことを特徴とする付記３に記載の文字生成処理方法。
【００５２】
（付記５）
前記文字本体に対して実行すべき修飾の内容を設定する過程は、
文字サイズ、又は、文字画像の塗り潰しパターン、太字パターン、縁取りパターン、中抜きパターン、のいずれか一以上を選択して設定する
ことを特徴とする付記１に記載の文字生成処理方法。
【００５３】
（付記６）
前記文字本体に対して実行すべき修飾の内容を設定する過程で太字処理を設定した場合は、
前記フラグが設定された画素を文字本体の輪郭内と同じ階調値に変更することで太字を生成することを特徴とする付記１に記載の文字生成処理方法。
【００５４】
（付記７）
前記文字本体に対して実行すべき修飾の内容を設定する過程で縁取り処理を設定した場合は、
前記フラグが設定された画素を文字本体とは異なるパターンで生成することで縁取り文字を生成することを特徴とする付記１に記載の文字生成処理方法。
【００５５】
（付記８）
前記文字本体に対して実行すべき修飾の内容を設定する過程で白抜き処理を設定した場合は、
前記フラグが設定された画素には指定した色を、また文字本体部分には
ことを特徴とする付記１に記載の文字生成処理方法。
【産業上の利用可能性】
【００５６】
本発明は、携帯電話や車載情報機器（カーナビゲーション）等の組み込み機器に搭載する場合で説明したが、組み込み機器にとどまらずこれ以外の機器における表示デバイスにおけるデザイン性のある文字表現に有効である。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態に係る文字生成処理装置の概略構成を示すブロック図である。
【図２】本発明の実施形態に係る文字生成処理方法の処理概要を説明するための動作フロー図である。
【図３】本発明の実施形態に係る文字生成処理方法の簡略化した全体処理を説明するためのフローチャートである。
【図４】本発明の実施形態に係る輪郭端部情報を示すよう操作した結果を示す図である。
【図５】本発明の実施形態に係る修飾用フラグが設定された後のアウトラインフォントデータが展開されたメモリの中の状態を示す図である。
【図６】本発明の実施形態に係る修飾用フラグ設定の仕組みを説明する原理図である。
【図７】本発明の実施形態に係る修飾用フラグの第１の位置設定方法を説明する図である。
【図８】本発明の実施形態に係る修飾用フラグの第２の位置設定方法を説明する図である。
【図９Ａ】本発明の実施形態に係る修飾用フラグ位置設定処理および修飾用フラグ設定処理の動作を説明するメインフローチャートである。
【図９Ｂ】本発明の実施形態に係る修飾用フラグ位置設定処理および修飾用フラグ設定処理の動作を説明する第１のサブフローチャートである。
【図９Ｃ】本発明の実施形態に係る修飾用フラグ位置設定処理および修飾用フラグ設定処理の動作を説明する第２のサブフローチャートである。
【図９Ｄ】本発明の実施形態に係る修飾用フラグ位置設定処理および修飾用フラグ設定処理の動作を説明する第３のサブフローチャートである。
【図９Ｅ】本発明の実施形態に係る修飾用フラグ位置設定処理および修飾用フラグ設定処理の動作を説明する第４のサブフローチャートである。
【図１０】本発明の実施形態に係る修飾用フラグ位置設定に影響を及ぼす範囲について説明する図である。
【図１１】本発明の実施形態に係る修飾用フラグを階調値のどこへ割り当てるかを示す第１フォーマット例を示す図である。
【図１２】図１１の第１のフォーマット例における画素値−フラグ対応表を示す図である。
【図１３】本発明の実施形態に係る修飾用フラグを階調値のどこへ割り当てるかを示す第２フォーマット例を示す図である。
【図１４】図１３の第２のフォーマット例における画素値−フラグ対応表を示す図である。
【図１５】図１３および図１４で示した修飾処理用フラグＩＤ番号を用いて修飾輪郭部の階調値を決定するフローを示す図である。
【図１６】図１５に示すフローチャートに沿った修飾輪郭部の階調値処理を説明するタイミングチャートである。
【図１７】本発明の実施形態に係る文字生成処理方法の全体処理を説明するためのフローチャートである。
【図１８】本発明の実施形態に係る文字生成処理方法の全体処理を説明するためのフローチャートである。
【図１９】本発明の実施形態に係る塗り潰し処理を行って得た修飾文字の例を示す図である。
【図２０】第１の従来技術を説明する図である。
【図２１】第１の従来技術の動作を説明するフローチャート図である。
【図２２】第２の従来技術を説明する図である。
【図２３】第２の従来技術の動作を説明するフローチャート図である。
【符号の説明】
【００５８】
１０  入力手段
１１  入力装置
１２  フォントファイル
１３  修飾処理内容ファイル
２０  記憶手段
２１  文字格納部
２２  フォントデータ格納部
２３  文字画像格納部
３０  演算手段
３１  アウトラインデータ読み込み部
３２  修飾処理設定部
３３  アウトライン展開制御部
３４  文字輪郭生成部
３５  修飾用フラグ生成部
３６  塗り潰し処理生成部
３７  文字画像生成部
４０  出力手段
４１  表示装置
５１  輪郭端部情報
５２  輪郭階調値
５３  修飾フラグ位置設定
５４  画素値−フラグ対応表
５５  修飾用フラグ設定
【図１】
2007219019.tif 000003
【図６】
2007219019.tif 000004
【図１２】
2007219019.tif 000005
【図１４】
2007219019.tif 000006
【図２０】
2007219019.tif 000007
【図２２】
2007219019.tif 000008
【図２】
2007219019.tif 000009
【図３】
2007219019.tif 000010
【図４】
2007219019.tif 000011
【図５】
2007219019.tif 000012
【図７】
2007219019.tif 000013
【図８】
2007219019.tif 000014
【図９Ａ】
2007219019.tif 000015
【図９Ｂ】
2007219019.tif 000016
【図９Ｃ】
2007219019.tif 000017
【図９Ｄ】
2007219019.tif 000018
【図９Ｅ】
2007219019.tif 000019
【図１０】
2007219019.tif 000020
【図１１】
2007219019.tif 000021
【図１３】
2007219019.tif 000022
【図１５】
2007219019.tif 000023
【図１６】
2007219019.tif 000024
【図１７】
2007219019.tif 000025
【図１８】
2007219019.tif 000026
【図１９】
2007219019.tif 000027
【図２１】
2007219019.tif 000028
【図２３】
2007219019.tif 000029