(57)【要約】      （修正有）【課題】計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることができる描画処理装置を提供する。【解決手段】位置取得部２０１は、文字の描画位置座標を取得し、フォントデータ取得部２０４は、フォントデータから文字のアウトライン情報を取得し、線分抽出部２０３は、アウトライン情報からＸ軸またはＹ軸に平行な線分の座標値と長さを抽出し、文字移動量算出部２０６が、抽出した線分の座標値と長さに基づいて文字の移動量を算出し、位置補正部２０２は、算出した移動量に基づいて文字の描画位置の補正を行い、文字描画位置を決定する。【選択図】図２
2014085402.tif 000002
【特許請求の範囲】
【請求項１】
文字のアウトライン情報と、前記文字の描画開始位置を取得する取得手段と、
前記アウトライン情報から、前記文字のＸ軸またはＹ軸に平行な線分の座標値と長さを抽出する線分抽出手段と、
前記線分抽出手段によって抽出された線分の座標値と長さに基づいて、前記文字の移動量を算出する文字移動量算出手段と、
前記移動量に基づいて、前記文字の描画位置を補正する位置補正手段を有することを特徴とする描画処理装置。
【請求項２】
前記位置補正手段で補正された前記文字の描画位置を用いて、前記文字を描画する描画手段をさらに有することを特徴とする請求項１に記載の描画処理装置。
【請求項３】
前記文字移動量算出手段は、前記線分抽出手段によって抽出された線分の座標値と長さから、Ｘ軸またはＹ軸に平行な線分をレンダリングした際に中間調のピクセルの個数が最小となるよう、前記文字の移動量を算出することを特徴とする請求項１又は請求項２に記載の描画処理装置。
【請求項４】
前記文字移動量算出手段は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以下になる前記線分の長さの合計が最大となるよう、前記文字の移動量を算出することを特徴とする請求項１又は請求項２に記載の描画処理装置。
【請求項５】
前記文字移動量算出手段は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以上になる前記線分の長さの合計が最小となるよう、前記文字の移動量を算出することを特徴とする請求項１又は請求項２に記載の描画処理装置。
【請求項６】
前記文字移動量算出手段は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、ピクセルグリッドからの距離が第一の所定値以下になる前記線分の長さの第一の合計値と、ピクセルグリッドからの距離が第二の所定値以上になる前記線分の長さの第二の合計値と、いずれにも属さない前記線分の長さの第三の合計値とを算出し、前記第一の合計値および第二の合計値および第三の合計値に基づいて、前記文字の移動量を算出することを特徴とする請求項１又は請求項２に記載の描画処理装置。
【請求項７】
前記文字移動量算出手段は、前記第二の合計値が最小となるようフォントの描画位置を補正した場合に前記第三の合計値が前記第一の合計値よりも多くなる場合には、前記第一の合計値が最大となるよう、前記文字の移動量を算出することを特徴とする請求項６に記載の描画処理装置。
【請求項８】
前記線分抽出手段は、長さが所定値以上の線分を抽出することを特徴とする請求項１乃至７のいずれか１項に記載の描画処理装置。
【請求項９】
描画処理装置の制御方法であって、
取得手段が、文字のアウトライン情報と、前記文字の描画開始位置を取得する取得工程と、
線分抽出手段が、前記アウトライン情報から、前記文字のＸ軸またはＹ軸に平行な線分の座標値と長さを抽出する線分抽出工程と、
文字移動算出手段が、前記線分抽出工程によって抽出された線分の座標値と長さに基づいて、前記文字の移動量を算出する文字移動量算出工程と、
位置補正手段が、前記移動量に基づいて、前記文字の描画位置を補正する位置補正工程を有することを特徴とする描画処理装置の制御方法。
【請求項１０】
描画手段が、前記位置補正工程で補正された前記文字の描画位置を用いて、前記文字を描画する描画工程をさらに有することを特徴とする請求項９に記載の描画処理装置の制御方法。
【請求項１１】
前記文字移動量算出工程は、前記線分抽出手段によって抽出された線分の座標値と長さから、Ｘ軸またはＹ軸に平行な線分をレンダリングした際に中間調のピクセルの個数が最小となるよう、前記文字の移動量を算出することを特徴とする請求項９又は請求項１０に記載の描画処理装置の制御方法。
【請求項１２】
前記文字移動量算出工程は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以下になる前記線分の長さの合計が最大となるよう、前記文字の移動量を算出することを特徴とする請求項９又は請求項１０に記載の描画処理装置の制御方法。
【請求項１３】
前記文字移動量算出工程は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以上になる前記線分の長さの合計が最小となるよう、前記文字の移動量を算出することを特徴とする請求項９又は請求項１０に記載の描画処理装置の制御方法。
【請求項１４】
コンピュータを、請求項１乃至８の何れか１項に記載の描画処理装置が有する各手段として機能させるためのコンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アウトライン形式のフォントデータを描画する描画処理に関する。
【背景技術】
【０００２】
従来、解像度の比較的低い表示デバイスにアウトラインフォントを描画する際、文字の描画品位を向上させるために、字画を構成する水平線や垂直線に対して特別な処理を行う方法がある（特許文献１）。特許文献１の方法は、字画を構成する水平線や垂直線に対し、ピクセルグリッドに合わせるように各々の位置を移動させるものであった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３０５５５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１は、文字を構成する各々の水平線や垂直線の位置を移動させるため、文字自体のバランスが崩れ、フォントデザイナーが意図した形状ではなくなる場合があった。また、各々の線分に対して移動判定や移動処理を行うため、計算量が増加するという課題があった。
そこで本発明では、計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る描画処理装置は、文字のアウトライン情報と、前記文字の描画開始位置を取得する取得手段と、前記アウトライン情報から、前記文字のＸ軸またはＹ軸に平行な線分の座標値と長さを抽出する線分抽出手段と、前記線分抽出手段によって抽出された線分の座標値と長さに基づいて、前記文字の移動量を算出する文字移動量算出手段と、前記移動量に基づいて、前記文字の描画位置を補正する位置補正手段を有することを特徴とする。
【発明の効果】
【０００６】
本発明により、計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態による描画処理装置の構成を示すブロック図。
【図２】本実施形態の描画処理装置における文字描画機能のモジュール構成を示した図。
【図３】本実施形態の描画処理装置におけるピクセルグリッドと文字アウトライン情報の例を示した図。
【図４】図３に示したピクセルグリッドと文字アウトライン情報に基づいて決定した、各ピクセルのグレーの度合いを示した図。
【図５】本実施形態における文字描画処理を示したフローチャート。
【図６】図５のＳ５０５の処理について説明したフローチャート。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
【０００９】
図１は本実施形態の描画処理装置の構成を示すブロック図である。
【００１０】
図１において、ＣＰＵ１０１はシステム制御部であり装置全体を制御する。ＲＯＭ１０２は、ＣＰＵ１０１の制御プログラムや各種固定データを格納する読取専用のメモリである。ＲＡＭ１０３は、ＳＲＡＭ、ＤＲＡＭ等で構成された書換え可能なメモリであり、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もＲＡＭ１０３に格納されるものである。表示部１０４は、ＬＣＤ等を用いて文字や画像等のグラフィックスを表示するためのものである。操作部１０５は、キーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。１０６は１０１〜１０５の各ユニットを通信可能に接続するシステムバスである。
【００１１】
図２は、本実施形態の描画処理装置における文字描画機能のモジュール構成を示した図である。同図において、位置取得部２０１は、文字描画機能を使用するアプリケーションからセットされた文字の描画位置座標（ｘ，ｙ）を取得する。フォントデータ取得部２０４はＲＯＭ１０２に格納されたフォントデータから、文字のアウトライン情報を取得する。線分抽出部２０３は、フォントデータ取得部２０４が取得したアウトライン情報からＸ軸に平行な線分（水平線）またはＹ軸に平行な線分（垂直線）の情報を抽出する。文字移動量算出部２０６が、位置取得部２０１によって取得された文字の描画位置と線分抽出部２０３によって抽出された水平線または垂直線の情報に基づいて、文字の移動量を算出する。位置補正部２０２は、文字の描画位置の補正を行い、文字描画位置を決定する。描画部２０５は、フォントデータ取得部２０４が取得したアウトライン情報に基づいて、位置補正部２０２によって決定された描画位置に文字を描画する。
【００１２】
図３は、本実施形態の描画処理装置におけるピクセルグリッドと文字アウトライン情報の例を示した図である。同図において、３０１や３０２など太い破線で表された線はピクセルグリッドである。３０３や３０４など細い破線で表された線は、アンチエイリアスやグレースケール描画処理のために概念上用いられるサブグリッドを示した線である。３０５や３０６、３０７、３０８など実線で表された線は、文字のアウトラインの一部である。図３においては、文字のアウトラインは線分で表現されているが、曲線で表現されていても良い。円形で示した３０９は描画座標系の原点である。この描画座標系では、Ｙ軸は原点３０９から下方向に値が増加する軸であり、Ｘ軸は原点３０９から右方向に値が増加する軸である。図３において、線分３０５、線分３０６、線分３０７、線分３０８はＸ軸に平行な線（水平線）である、各線分のＹ座標は、上から順に０．５、１．５、３．０、４．０である。
【００１３】
同図ではアウトラインの一部しか表現されていないが、文字を構成するすべてのアウトラインデータは、線分や曲線で構成された閉曲線である。図３の例では、線分３０５と線分３０６に挟まれた領域が、閉曲線の内側である。同様に線分３０７と線分３０８に挟まれた領域が閉曲線の内側である。背景が白で文字の描画色が黒のグレースケールの文字描画の際は、閉曲線の内側が黒く塗られることになる。このとき、閉曲線上、すなわち文字アウトラインと背景の境界部分では、ピクセルグリッドとアウトラインデータの位置関係から、各ピクセルのグレーの度合いが決定される。カラーの文字描画の場合は、ピクセルグリッドとアウトラインデータの位置関係から各ピクセルの濃度または不透明度が決定され、各ピクセルの色を決定する際に用いられる。本実施形態においては、説明を容易にするため、背景を白、描画色を黒とするグレースケールの文字描画を例に説明する。
【００１４】
図４は、図３に示したピクセルグリッドと文字アウトライン情報に基づいて決定した、各ピクセルのグレーの度合いを示した図である。同図において、線４０１や線４０２などの実線はピクセルグリッドを示す。４０３は原点である。同図において、ピクセルグリッドで囲まれた領域に示された値は、各ピクセルのグレーの度合いを示す。０は白、６４／６４は黒を意味し、３２／６４は５０％グレーに相当する。図３では各ピクセルが６４個のサブピクセルに分割されており、図４に示した値は、文字アウトラインの内側にあるサブピクセルの割合に相当する。図３の線分３０７および線分３０８に囲まれた領域のように、ピクセルグリッド上に位置する字画は黒で表現され視認性も良好となる。一方、線分３０５および線分３０６に囲まれた領域は、いずれの線分もピクセルグリッドの中間に位置するため、字画は５０％グレーで表現され、薄くぼやけたように見えてしまう。
【００１５】
画面の文字の見え方は、表示装置の種類や文字の形状、個人の主観にもよるが、一般に、字画を構成するピクセルの大半が黒であれば視認性が良好といえる。他にも、一般的な傾向を示すことができる。例えば、５０％グレーの割合が少ない方が、視認性が良好となる可能性が高い。５０％グレーが少なくても黒が少なく、２５％グレーや７５％グレーが多いと、ぼやけた印象になり視認性は悪くなる可能性が高い。１２．５％グレーと８７．５％グレーが大半を占める場合は、視認性はさほど悪くない。本発明は、これらのグレーの度合いと文字の見え方の傾向から、描画品位を改善し、文字の視認性が良好となる可能性を高くする描画処理に関するものである。
【００１６】
図５は本実施形態における文字描画処理を示したフローチャートである。
【００１７】
本実施形態の描画処理装置は、文字を描画する際に、フォントデータ取得部２０４が、まずＲＯＭ１０２に格納されているフォントデータから描画しようとする文字のアウトライン情報を取得する（Ｓ５０１）。次に、位置取得部２０１が、その文字の描画開始位置を取得する（Ｓ５０２）。Ｓ５０２では、あらかじめＲＯＭ１０２に文字の描画開始位置が格納されていて、その値を取得するケースがある。また、他の文字や図形の位置情報に基づいて計算を行って取得するケースもある。
【００１８】
続いて、線分抽出部２０３が、Ｓ５０１で取得した文字のアウトライン情報から、Ｘ軸に平行な線分（水平線分）を抽出し、各線分のＹ座標値と長さを取得する（Ｓ５０３）。一般的なフォントデータには、線分を示すコマンドと開始点、終了点の座標情報が格納されているため、それらの情報を用いて、水平線分とそのＹ座標値や長さを取得する。長さを取得する際は、高速に演算を行うために小数点以下の切り捨てや切り上げ、四捨五入などの処理を行って、おおよその長さを取得するようにしても良い。
【００１９】
Ｓ５０３の処理の後に、文字移動量算出部２０６が、水平線分の長さの合計値が所定値以上かの判断を行う（Ｓ５０４）。これは、水平線がほとんど存在しない文字アウトラインデータについては、後述する補正処理を行っても描画品位が改善される可能性が低いためである。Ｓ５０４で、水平線分の長さの合計値が所定値未満と判断されれば、描画部２０５が、位置の補正処理を行わずに文字を描画する（Ｓ５０８）。
【００２０】
Ｓ５０４において、水平線分の長さの合計値が所定値以上と判断されれば、文字移動量算出部２０６が、各水平線のＹ座標値と長さから、Ｙ方向の文字の移動量を算出する（Ｓ５０５）。ここでは、例えば、Ｙ軸に平行な線分をレンダリングした際に中間調のグレーとなるピクセルの数が最小になるような移動量や、黒となるピクセルの数が最大になるような移動量を算出する。Ｓ５０５の処理の詳細については、後述する。
【００２１】
Ｓ５０５でＹ方向の移動量を算出した後、文字移動量算出部２０６が、その移動量が０以外の値か否かを判断する（Ｓ５０６）。移動量が０以外であれば、位置補正部２０２が、描画開始位置のＹ座標にその値を加減算して位置を補正し（Ｓ５０７）、描画部２０５が、文字を描画する（Ｓ５０８）。Ｓ５０６で移動量が０と判断されれば、位置の補正は行わずに文字を描画する（Ｓ５０８）。
【００２２】
図６は、図５のＳ５０５の処理について説明したフローチャートである。尚、図６の処理は、文字移動量算出部２０６が行う。
【００２３】
まず、ピクセルグリッドからの距離が第一の所定値以上の水平線分の長さの合計値が最小となるＹ方向の移動量を算出する（Ｓ６０１）。ここでは、第一の所定値を、３／８とする。ピクセルグリッドからの距離が３／８以上の水平線分は、ピクセルのグレーレベルが５０％前後となる可能性が高い。Ｓ６０１の処理は、グレーレベルが５０％前後となるピクセルの個数を最小にするための処理である。
【００２４】
ここでは、第一の所定値を、３／８という値を使用しているが、必ずしも３／８でなくても良く、例えば１／２としても良い。座標値を小数点のビット数が３ビットである固定小数点で表現した場合には、小数の最小単位が１／８となるため、３／８以上かどうかの評価が容易に可能である。図６の処理において、分母が８の分数を使用しているのはそのためである。図５のＳ５０３において各水平線分のＹ座標値と長さを取得する際に、小数部分がＸ／８（Ｘは０〜７）である水平線分を抽出し、Ｘの値ごとに長さの合計値を算出するようにすれば、Ｓ６０１の処理は容易に可能である。
【００２５】
次に、Ｓ６０１で算出した移動量分だけ移動した後の各水平線のＹ座標値と長さを取得する（Ｓ６０２）。Ｓ６０２で取得した情報に基づいて、ピクセルグリッドからの距離が第二の所定値以下の水平線分の長さの合計値Ｎを算出する（Ｓ６０３）。ここでは、第二の所定値は、１／８とする。さらに、Ｓ６０２で取得した情報に基づいて、ピクセルグリッドからの距離が第二の所定値より大きく第一の所定値より小さい水平線分の長さの合計値Ｍを算出する（Ｓ６０４）。合計値Ｎは、ピクセルが８７．５％グレーより濃いグレー（黒を含む）か、１２．５％グレーより薄いグレー（白を含む）となる確率が高いピクセル数を示す指標となる。合計値Ｍは、２５％グレーまたは７５％グレーに近いグレーとなる確率が高いピクセル数を示す指標となる。値Ｎと値Ｍを求めた後、値Ｎが値Ｍより小さいか否かを判断する（Ｓ６０５）。ＮがＭより小さくないと判断されれば、Ｓ６０１で求めた移動量を、Ｙ方向の文字の移動量とする（Ｓ６０８）。
【００２６】
Ｓ６０４において、ＮがＭより小さいと判断されれば、ピクセルグリッドからの距離が１／８以下の水平線分の長さの合計値が最大となるＹ方向の移動量を改めて算出する（Ｓ６０６）。そして、Ｓ６０６で求めた移動量を、Ｙ方向の文字の移動量とする（Ｓ６０７）。
【００２７】
以上説明したように、図６の処理では、最初に、５０％グレーに近いグレーとなるピクセル数が最小になる確率が高い移動量を算出する。その結果、２５％グレーや７５％グレーに近いグレーが多くなってしまう場合には、黒または白に近いピクセル数が最大になる確率が高い移動量を算出し、使用することになる。この結果、文字の描画結果においては、視認性が良好となる可能性が高くなる。
【００２８】
なお、本実施形態では、Ｘ軸に平行な線分（水平線分）を例に説明したが、Ｙ軸に平行な線分（垂直線分）についても、まったく同じ手法を適用可能である。その場合は、図５、図６の各ステップにおいて、Ｙ座標値、Ｙ方向を、それぞれ、Ｘ座標値、Ｘ方向に置き換えて処理をすればよい。さらに、水平線分、垂直成分、どちらか一方だけでなく、水平線分と垂直線分の両方に適用し、Ｘ方向とＹ方向の両方の位置を補正するようにしても良い。
【００２９】
また、これらの実施形態では、描画処理装置を例に説明したが、本発明は、印刷装置、カメラ、複写機、スキャナ、テレビ等、表示部を有するあらゆる装置に適用可能である。
【００３０】
本発明はソフトウエアにより実現しても良い。すなわち、ソフトウエアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のＣＰＵが記録媒体に格納されたプログラムコードを読み出し実行することで実現しても良い。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００３１】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、メモリカードなどを用いることができる。
【００３２】
また、本発明は、プログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステムなどが実際の処理の一部または全部を行い、その処理によって機能が実現される場合にも適用され得る。
【図１】
2014085402.tif 000003
【図２】
2014085402.tif 000004
【図３】
2014085402.tif 000005
【図４】
2014085402.tif 000006
【図５】
2014085402.tif 000007
【図６】
2014085402.tif 000008