JP2014085402A - 描画処理装置およびその制御方法 - Google Patents
描画処理装置およびその制御方法 Download PDFInfo
- Publication number
- JP2014085402A JP2014085402A JP2012232114A JP2012232114A JP2014085402A JP 2014085402 A JP2014085402 A JP 2014085402A JP 2012232114 A JP2012232114 A JP 2012232114A JP 2012232114 A JP2012232114 A JP 2012232114A JP 2014085402 A JP2014085402 A JP 2014085402A
- Authority
- JP
- Japan
- Prior art keywords
- character
- line segment
- movement amount
- processing apparatus
- distance
- 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
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることができる描画処理装置を提供する。
【解決手段】位置取得部201は、文字の描画位置座標を取得し、フォントデータ取得部204は、フォントデータから文字のアウトライン情報を取得し、線分抽出部203は、アウトライン情報からX軸またはY軸に平行な線分の座標値と長さを抽出し、文字移動量算出部206が、抽出した線分の座標値と長さに基づいて文字の移動量を算出し、位置補正部202は、算出した移動量に基づいて文字の描画位置の補正を行い、文字描画位置を決定する。
【選択図】図2
【解決手段】位置取得部201は、文字の描画位置座標を取得し、フォントデータ取得部204は、フォントデータから文字のアウトライン情報を取得し、線分抽出部203は、アウトライン情報からX軸またはY軸に平行な線分の座標値と長さを抽出し、文字移動量算出部206が、抽出した線分の座標値と長さに基づいて文字の移動量を算出し、位置補正部202は、算出した移動量に基づいて文字の描画位置の補正を行い、文字描画位置を決定する。
【選択図】図2
Description
本発明は、アウトライン形式のフォントデータを描画する描画処理に関する。
従来、解像度の比較的低い表示デバイスにアウトラインフォントを描画する際、文字の描画品位を向上させるために、字画を構成する水平線や垂直線に対して特別な処理を行う方法がある(特許文献1)。特許文献1の方法は、字画を構成する水平線や垂直線に対し、ピクセルグリッドに合わせるように各々の位置を移動させるものであった。
しかしながら、特許文献1は、文字を構成する各々の水平線や垂直線の位置を移動させるため、文字自体のバランスが崩れ、フォントデザイナーが意図した形状ではなくなる場合があった。また、各々の線分に対して移動判定や移動処理を行うため、計算量が増加するという課題があった。
そこで本発明では、計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることを目的とする。
そこで本発明では、計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることを目的とする。
上記課題を解決するために、本発明に係る描画処理装置は、文字のアウトライン情報と、前記文字の描画開始位置を取得する取得手段と、前記アウトライン情報から、前記文字のX軸またはY軸に平行な線分の座標値と長さを抽出する線分抽出手段と、前記線分抽出手段によって抽出された線分の座標値と長さに基づいて、前記文字の移動量を算出する文字移動量算出手段と、前記移動量に基づいて、前記文字の描画位置を補正する位置補正手段を有することを特徴とする。
本発明により、計算量が比較的少ない手法により、文字自体のバランスを崩さずに文字描画品位を向上させることができる。
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
図1は本実施形態の描画処理装置の構成を示すブロック図である。
図1において、CPU101はシステム制御部であり装置全体を制御する。ROM102は、CPU101の制御プログラムや各種固定データを格納する読取専用のメモリである。RAM103は、SRAM、DRAM等で構成された書換え可能なメモリであり、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もRAM103に格納されるものである。表示部104は、LCD等を用いて文字や画像等のグラフィックスを表示するためのものである。操作部105は、キーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。106は101〜105の各ユニットを通信可能に接続するシステムバスである。
図2は、本実施形態の描画処理装置における文字描画機能のモジュール構成を示した図である。同図において、位置取得部201は、文字描画機能を使用するアプリケーションからセットされた文字の描画位置座標(x,y)を取得する。フォントデータ取得部204はROM102に格納されたフォントデータから、文字のアウトライン情報を取得する。線分抽出部203は、フォントデータ取得部204が取得したアウトライン情報からX軸に平行な線分(水平線)またはY軸に平行な線分(垂直線)の情報を抽出する。文字移動量算出部206が、位置取得部201によって取得された文字の描画位置と線分抽出部203によって抽出された水平線または垂直線の情報に基づいて、文字の移動量を算出する。位置補正部202は、文字の描画位置の補正を行い、文字描画位置を決定する。描画部205は、フォントデータ取得部204が取得したアウトライン情報に基づいて、位置補正部202によって決定された描画位置に文字を描画する。
図3は、本実施形態の描画処理装置におけるピクセルグリッドと文字アウトライン情報の例を示した図である。同図において、301や302など太い破線で表された線はピクセルグリッドである。303や304など細い破線で表された線は、アンチエイリアスやグレースケール描画処理のために概念上用いられるサブグリッドを示した線である。305や306、307、308など実線で表された線は、文字のアウトラインの一部である。図3においては、文字のアウトラインは線分で表現されているが、曲線で表現されていても良い。円形で示した309は描画座標系の原点である。この描画座標系では、Y軸は原点309から下方向に値が増加する軸であり、X軸は原点309から右方向に値が増加する軸である。図3において、線分305、線分306、線分307、線分308はX軸に平行な線(水平線)である、各線分のY座標は、上から順に0.5、1.5、3.0、4.0である。
同図ではアウトラインの一部しか表現されていないが、文字を構成するすべてのアウトラインデータは、線分や曲線で構成された閉曲線である。図3の例では、線分305と線分306に挟まれた領域が、閉曲線の内側である。同様に線分307と線分308に挟まれた領域が閉曲線の内側である。背景が白で文字の描画色が黒のグレースケールの文字描画の際は、閉曲線の内側が黒く塗られることになる。このとき、閉曲線上、すなわち文字アウトラインと背景の境界部分では、ピクセルグリッドとアウトラインデータの位置関係から、各ピクセルのグレーの度合いが決定される。カラーの文字描画の場合は、ピクセルグリッドとアウトラインデータの位置関係から各ピクセルの濃度または不透明度が決定され、各ピクセルの色を決定する際に用いられる。本実施形態においては、説明を容易にするため、背景を白、描画色を黒とするグレースケールの文字描画を例に説明する。
図4は、図3に示したピクセルグリッドと文字アウトライン情報に基づいて決定した、各ピクセルのグレーの度合いを示した図である。同図において、線401や線402などの実線はピクセルグリッドを示す。403は原点である。同図において、ピクセルグリッドで囲まれた領域に示された値は、各ピクセルのグレーの度合いを示す。0は白、64/64は黒を意味し、32/64は50%グレーに相当する。図3では各ピクセルが64個のサブピクセルに分割されており、図4に示した値は、文字アウトラインの内側にあるサブピクセルの割合に相当する。図3の線分307および線分308に囲まれた領域のように、ピクセルグリッド上に位置する字画は黒で表現され視認性も良好となる。一方、線分305および線分306に囲まれた領域は、いずれの線分もピクセルグリッドの中間に位置するため、字画は50%グレーで表現され、薄くぼやけたように見えてしまう。
画面の文字の見え方は、表示装置の種類や文字の形状、個人の主観にもよるが、一般に、字画を構成するピクセルの大半が黒であれば視認性が良好といえる。他にも、一般的な傾向を示すことができる。例えば、50%グレーの割合が少ない方が、視認性が良好となる可能性が高い。50%グレーが少なくても黒が少なく、25%グレーや75%グレーが多いと、ぼやけた印象になり視認性は悪くなる可能性が高い。12.5%グレーと87.5%グレーが大半を占める場合は、視認性はさほど悪くない。本発明は、これらのグレーの度合いと文字の見え方の傾向から、描画品位を改善し、文字の視認性が良好となる可能性を高くする描画処理に関するものである。
図5は本実施形態における文字描画処理を示したフローチャートである。
本実施形態の描画処理装置は、文字を描画する際に、フォントデータ取得部204が、まずROM102に格納されているフォントデータから描画しようとする文字のアウトライン情報を取得する(S501)。次に、位置取得部201が、その文字の描画開始位置を取得する(S502)。S502では、あらかじめROM102に文字の描画開始位置が格納されていて、その値を取得するケースがある。また、他の文字や図形の位置情報に基づいて計算を行って取得するケースもある。
続いて、線分抽出部203が、S501で取得した文字のアウトライン情報から、X軸に平行な線分(水平線分)を抽出し、各線分のY座標値と長さを取得する(S503)。一般的なフォントデータには、線分を示すコマンドと開始点、終了点の座標情報が格納されているため、それらの情報を用いて、水平線分とそのY座標値や長さを取得する。長さを取得する際は、高速に演算を行うために小数点以下の切り捨てや切り上げ、四捨五入などの処理を行って、おおよその長さを取得するようにしても良い。
S503の処理の後に、文字移動量算出部206が、水平線分の長さの合計値が所定値以上かの判断を行う(S504)。これは、水平線がほとんど存在しない文字アウトラインデータについては、後述する補正処理を行っても描画品位が改善される可能性が低いためである。S504で、水平線分の長さの合計値が所定値未満と判断されれば、描画部205が、位置の補正処理を行わずに文字を描画する(S508)。
S504において、水平線分の長さの合計値が所定値以上と判断されれば、文字移動量算出部206が、各水平線のY座標値と長さから、Y方向の文字の移動量を算出する(S505)。ここでは、例えば、Y軸に平行な線分をレンダリングした際に中間調のグレーとなるピクセルの数が最小になるような移動量や、黒となるピクセルの数が最大になるような移動量を算出する。S505の処理の詳細については、後述する。
S505でY方向の移動量を算出した後、文字移動量算出部206が、その移動量が0以外の値か否かを判断する(S506)。移動量が0以外であれば、位置補正部202が、描画開始位置のY座標にその値を加減算して位置を補正し(S507)、描画部205が、文字を描画する(S508)。S506で移動量が0と判断されれば、位置の補正は行わずに文字を描画する(S508)。
図6は、図5のS505の処理について説明したフローチャートである。尚、図6の処理は、文字移動量算出部206が行う。
まず、ピクセルグリッドからの距離が第一の所定値以上の水平線分の長さの合計値が最小となるY方向の移動量を算出する(S601)。ここでは、第一の所定値を、3/8とする。ピクセルグリッドからの距離が3/8以上の水平線分は、ピクセルのグレーレベルが50%前後となる可能性が高い。S601の処理は、グレーレベルが50%前後となるピクセルの個数を最小にするための処理である。
ここでは、第一の所定値を、3/8という値を使用しているが、必ずしも3/8でなくても良く、例えば1/2としても良い。座標値を小数点のビット数が3ビットである固定小数点で表現した場合には、小数の最小単位が1/8となるため、3/8以上かどうかの評価が容易に可能である。図6の処理において、分母が8の分数を使用しているのはそのためである。図5のS503において各水平線分のY座標値と長さを取得する際に、小数部分がX/8(Xは0〜7)である水平線分を抽出し、Xの値ごとに長さの合計値を算出するようにすれば、S601の処理は容易に可能である。
次に、S601で算出した移動量分だけ移動した後の各水平線のY座標値と長さを取得する(S602)。S602で取得した情報に基づいて、ピクセルグリッドからの距離が第二の所定値以下の水平線分の長さの合計値Nを算出する(S603)。ここでは、第二の所定値は、1/8とする。さらに、S602で取得した情報に基づいて、ピクセルグリッドからの距離が第二の所定値より大きく第一の所定値より小さい水平線分の長さの合計値Mを算出する(S604)。合計値Nは、ピクセルが87.5%グレーより濃いグレー(黒を含む)か、12.5%グレーより薄いグレー(白を含む)となる確率が高いピクセル数を示す指標となる。合計値Mは、25%グレーまたは75%グレーに近いグレーとなる確率が高いピクセル数を示す指標となる。値Nと値Mを求めた後、値Nが値Mより小さいか否かを判断する(S605)。NがMより小さくないと判断されれば、S601で求めた移動量を、Y方向の文字の移動量とする(S608)。
S604において、NがMより小さいと判断されれば、ピクセルグリッドからの距離が1/8以下の水平線分の長さの合計値が最大となるY方向の移動量を改めて算出する(S606)。そして、S606で求めた移動量を、Y方向の文字の移動量とする(S607)。
以上説明したように、図6の処理では、最初に、50%グレーに近いグレーとなるピクセル数が最小になる確率が高い移動量を算出する。その結果、25%グレーや75%グレーに近いグレーが多くなってしまう場合には、黒または白に近いピクセル数が最大になる確率が高い移動量を算出し、使用することになる。この結果、文字の描画結果においては、視認性が良好となる可能性が高くなる。
なお、本実施形態では、X軸に平行な線分(水平線分)を例に説明したが、Y軸に平行な線分(垂直線分)についても、まったく同じ手法を適用可能である。その場合は、図5、図6の各ステップにおいて、Y座標値、Y方向を、それぞれ、X座標値、X方向に置き換えて処理をすればよい。さらに、水平線分、垂直成分、どちらか一方だけでなく、水平線分と垂直線分の両方に適用し、X方向とY方向の両方の位置を補正するようにしても良い。
また、これらの実施形態では、描画処理装置を例に説明したが、本発明は、印刷装置、カメラ、複写機、スキャナ、テレビ等、表示部を有するあらゆる装置に適用可能である。
本発明はソフトウエアにより実現しても良い。すなわち、ソフトウエアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のCPUが記録媒体に格納されたプログラムコードを読み出し実行することで実現しても良い。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、メモリカードなどを用いることができる。
また、本発明は、プログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステムなどが実際の処理の一部または全部を行い、その処理によって機能が実現される場合にも適用され得る。
Claims (15)
- 文字のアウトライン情報と、前記文字の描画開始位置を取得する取得手段と、
前記アウトライン情報から、前記文字のX軸またはY軸に平行な線分の座標値と長さを抽出する線分抽出手段と、
前記線分抽出手段によって抽出された線分の座標値と長さに基づいて、前記文字の移動量を算出する文字移動量算出手段と、
前記移動量に基づいて、前記文字の描画位置を補正する位置補正手段を有することを特徴とする描画処理装置。 - 前記位置補正手段で補正された前記文字の描画位置を用いて、前記文字を描画する描画手段をさらに有することを特徴とする請求項1に記載の描画処理装置。
- 前記文字移動量算出手段は、前記線分抽出手段によって抽出された線分の座標値と長さから、X軸またはY軸に平行な線分をレンダリングした際に中間調のピクセルの個数が最小となるよう、前記文字の移動量を算出することを特徴とする請求項1又は請求項2に記載の描画処理装置。
- 前記文字移動量算出手段は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以下になる前記線分の長さの合計が最大となるよう、前記文字の移動量を算出することを特徴とする請求項1又は請求項2に記載の描画処理装置。
- 前記文字移動量算出手段は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以上になる前記線分の長さの合計が最小となるよう、前記文字の移動量を算出することを特徴とする請求項1又は請求項2に記載の描画処理装置。
- 前記文字移動量算出手段は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、ピクセルグリッドからの距離が第一の所定値以下になる前記線分の長さの第一の合計値と、ピクセルグリッドからの距離が第二の所定値以上になる前記線分の長さの第二の合計値と、いずれにも属さない前記線分の長さの第三の合計値とを算出し、前記第一の合計値および第二の合計値および第三の合計値に基づいて、前記文字の移動量を算出することを特徴とする請求項1又は請求項2に記載の描画処理装置。
- 前記文字移動量算出手段は、前記第二の合計値が最小となるようフォントの描画位置を補正した場合に前記第三の合計値が前記第一の合計値よりも多くなる場合には、前記第一の合計値が最大となるよう、前記文字の移動量を算出することを特徴とする請求項6に記載の描画処理装置。
- 前記線分抽出手段は、長さが所定値以上の線分を抽出することを特徴とする請求項1乃至7のいずれか1項に記載の描画処理装置。
- 描画処理装置の制御方法であって、
取得手段が、文字のアウトライン情報と、前記文字の描画開始位置を取得する取得工程と、
線分抽出手段が、前記アウトライン情報から、前記文字のX軸またはY軸に平行な線分の座標値と長さを抽出する線分抽出工程と、
文字移動算出手段が、前記線分抽出工程によって抽出された線分の座標値と長さに基づいて、前記文字の移動量を算出する文字移動量算出工程と、
位置補正手段が、前記移動量に基づいて、前記文字の描画位置を補正する位置補正工程を有することを特徴とする描画処理装置の制御方法。 - 描画手段が、前記位置補正工程で補正された前記文字の描画位置を用いて、前記文字を描画する描画工程をさらに有することを特徴とする請求項9に記載の描画処理装置の制御方法。
- 前記文字移動量算出工程は、前記線分抽出手段によって抽出された線分の座標値と長さから、X軸またはY軸に平行な線分をレンダリングした際に中間調のピクセルの個数が最小となるよう、前記文字の移動量を算出することを特徴とする請求項9又は請求項10に記載の描画処理装置の制御方法。
- 前記文字移動量算出工程は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以下になる前記線分の長さの合計が最大となるよう、前記文字の移動量を算出することを特徴とする請求項9又は請求項10に記載の描画処理装置の制御方法。
- 前記文字移動量算出工程は、前記線分抽出手段によって抽出された各線分のピクセルグリッドからの距離を算出し、前記算出した距離を用いて、ピクセルグリッドからの距離が所定値以上になる前記線分の長さの合計が最小となるよう、前記文字の移動量を算出することを特徴とする請求項9又は請求項10に記載の描画処理装置の制御方法。
- コンピュータを、請求項1乃至8の何れか1項に記載の描画処理装置が有する各手段として機能させるためのコンピュータプログラム。
- 請求項14に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012232114A JP2014085402A (ja) | 2012-10-19 | 2012-10-19 | 描画処理装置およびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012232114A JP2014085402A (ja) | 2012-10-19 | 2012-10-19 | 描画処理装置およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014085402A true JP2014085402A (ja) | 2014-05-12 |
Family
ID=50788532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012232114A Pending JP2014085402A (ja) | 2012-10-19 | 2012-10-19 | 描画処理装置およびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014085402A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111899682A (zh) * | 2020-09-17 | 2020-11-06 | 北京集创北方科技股份有限公司 | 显示驱动方法及装置 |
-
2012
- 2012-10-19 JP JP2012232114A patent/JP2014085402A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111899682A (zh) * | 2020-09-17 | 2020-11-06 | 北京集创北方科技股份有限公司 | 显示驱动方法及装置 |
CN111899682B (zh) * | 2020-09-17 | 2023-03-24 | 北京集创北方科技股份有限公司 | 显示驱动方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5759621B2 (ja) | 文字表示方法および文字表示装置 | |
KR20160051154A (ko) | 렌더링 방법, 렌더링 장치 및 전자 장치 | |
KR102247565B1 (ko) | 렌더링 방법 및 장치 | |
CN104966092B (zh) | 一种图像处理方法和装置 | |
US20100283780A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP3142550B2 (ja) | 図形処理装置 | |
CN112927147B (zh) | 显示模组的显示数据修正方法及装置、计算机设备及介质 | |
JP4370438B2 (ja) | ベクター画像描画装置、ベクター画像描画方法およびプログラム | |
JP2005149425A (ja) | 画像処理装置、画像処理プログラムおよび可読記録媒体 | |
JP2007156547A (ja) | 画像処理プログラムおよび画像処理装置 | |
US20140320527A1 (en) | Hardware glyph cache | |
JP4183082B2 (ja) | 3次元画像描画装置および3次元画像描画方法 | |
JP5777726B2 (ja) | 描画装置及び描画プログラム | |
JP2014085402A (ja) | 描画処理装置およびその制御方法 | |
JP4698709B2 (ja) | データ作成装置、データ作成方法、データ作成用プログラム、描画装置、描画方法、描画用プログラム、および、コンピュータ読取可能な記録媒体 | |
JP4858883B2 (ja) | ベクター画像描画装置、ベクター画像描画方法およびプログラム | |
JP2017016511A (ja) | 歪み補正画像処理装置及びプログラム | |
CN117911578B (zh) | 一种文字渲染方法、装置、计算机设备和存储介质 | |
JP2013218539A (ja) | ヒストグラム生成装置 | |
KR101451134B1 (ko) | 폰트 안티 알리아싱 방법 | |
JP2012039331A (ja) | 視差画像作成装置、視差画像作成方法、プログラム及び記憶媒体 | |
JP2014063105A (ja) | 描画処理装置およびその制御方法 | |
JP2011107378A (ja) | 情報処理装置および情報処理方法 | |
JP2012133765A (ja) | 画像処理装置、および画像処理方法 | |
JP2009009428A (ja) | ベクター画像描画回路およびベクター画像描画方法 |