JP2009204989A - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2009204989A
JP2009204989A JP2008048398A JP2008048398A JP2009204989A JP 2009204989 A JP2009204989 A JP 2009204989A JP 2008048398 A JP2008048398 A JP 2008048398A JP 2008048398 A JP2008048398 A JP 2008048398A JP 2009204989 A JP2009204989 A JP 2009204989A
Authority
JP
Japan
Prior art keywords
pixel
gradation
line segment
line
symbol
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
JP2008048398A
Other languages
English (en)
Other versions
JP4361118B2 (ja
Inventor
Yasuhisa Nakamura
安久 中村
Kayo Okamoto
佳世 岡本
Tama Sakuta
瑞 作田
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.)
Sharp Corp
Original Assignee
Sharp Corp
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
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2008048398A priority Critical patent/JP4361118B2/ja
Priority to PCT/JP2009/053019 priority patent/WO2009107554A1/ja
Priority to CN200980106789.6A priority patent/CN101960512A/zh
Publication of JP2009204989A publication Critical patent/JP2009204989A/ja
Application granted granted Critical
Publication of JP4361118B2 publication Critical patent/JP4361118B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/409Edge or detail enhancement; Noise or error suppression
    • H04N1/4092Edge or detail enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/92Dynamic range modification of images or parts thereof based on global image properties
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

【課題】ルックアップテーブル等のデータを用いることなく、短い処理時間でシャギーを目立たなくさせることが可能な情報処理装置を得る。
【解決手段】複数の画素のうちの表示画素の階調を決定する表示制御部16を備え、表示制御部16は、記号の表示画素を構成する画素群の一部であって、表示画素が線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、要素線分と当該要素線分と重なる画素を含んだ要素画素群の中心点との線幅の方向の距離を、各要素画素群について算出する距離算出部20と、中心点を含んだ要素画素群に含まれる一方の端部の画素の階調を、指定された階調と表示される記号の背景の階調との間の階調であって、距離算出部20で算出した距離に応じた階調に補正する階調補正部21と、階調補正部21での補正に基づき、記号を表示画面に表示させるための表示データを生成する表示データ生成部22とを含む。
【選択図】図1

Description

本発明は、ストロークフォントによって記号を表示画面に表示させることが可能な情報処理装置、情報処理方法、およびプログラムに関する。
従来より、スケーラブルフォントの一種であるストロークフォントが知られている。スクロールフォントとは、文字の形をコンピュータ上で表現するためのデータ形式の一つである。また、スクロールフォントは、文字の形状を、中心線(骨格線)のパラメータ(ベクタデータ)として表現する形式でもある。
例えば、特許文献1には、スクロールフォントを用いた文字表示装置が開示されている。
この文字表示装置においては、スケルトンデータと呼ばれる文字の骨格を示したデータ(つまり、ストロークフォント)に基づいて、文字を表示画面に表示させている。
図27は、上記スケルトンデータのデータ構造を示した図である。同図に示すとおり、スケルトンデータ100は、文字の種別を区別するための文字コード101と、一つの文字を構成するストロークの数を示すストローク数102と、各ストロークに対応するストローク情報103とが含まれている。なお、この例では、一つのストロークが、文字の画数のうち一画分に対応する。言い換えれば、ストロークとは、表示画面に表示される線幅を有する文字の一部でもある。
また、ストローク情報103には、ストロークを構成する複数の点の座標の数を示す座標の数104と、ストロークを構成する複数の点の座標をぞれぞれ示す複数の座標データ105…とが含まれている。
図28は、「木」といった漢字(文字)に関するスケルトンデータをデータ構造を示した図である。同図に示すとおり、「木」に関するスケルトンデータは、4つのストローク情報を含んでいる。言い換えれば、「木」に関するスケルトンデータは、4つのストロークの骨格線を示したデータ含んでいる。同図では、各ストローク情報に対応するストロークの骨格線に対して、ストローク#1〜ストローク#4として表示している。
例えば、ストローク#1については、始点(4,192)と終点(245,192)とを結ぶ線分として定義されている。また、ストローク#3については、始点(121,192)と点(97,141)とを結ぶ線分と、点(97,141)と点(72,103)とを結ぶ線分と、点(72,103)と点(41,69)とを結ぶ線分と、点(41,69)と終点(0,42)とを結ぶ線分とからなる折線として定義されている。図29は、漢字「木」の骨格を示した図28のスケルトンデータを座標平面上に示した図である。
特許文献1では、記憶装置からスケルトンデータ100を読み出した後、指定された文字サイズにしたがって、当該スケルトンデータの座標データ(座標値)105…がスケーリングされる。このスケーリングにより、スケルトンデータ100の座標データ105…のために予め設定されていた座標系が、表示画面用の実ピクセル座標系に変換される。
その後、スケーリングされることにより得られた骨格線を示した情報を用いて、文字の描画が行われる。具体的には、骨格線の要素となる各線分に対して、所定の線幅を持たせることにより、表示画面に表示させる文字が構成される。
図30は、上記線分に対して所定の線幅の持たせた例を示した図である。ここで、図30(a)は、線幅を奇数とした場合の例であり、図30(b)は、線幅を偶数とした場合の例である。そして、同図に示す太線で囲まれた画素の階調を指定された階調(例えば、背景の階調(例えば、白色)と異なる階調(例えば、黒色))に設定することにより、文字が表示画面に視認可能に表示されることになる。
しかしながら、このような構成では、図30(a)(b)にも示すとおり、表示画面に文字を表示する際に、斜線に発生する階段状のギザギザ(ジャギー)が目立ってしまう。
一方、特許文献2には、線分の副軸方向に対して複数個の画素データを順次発生させる発生手段と、各画素の輝度低減率を保持するレジスタと、上記発生手段の動作に同期して上記レジスタから必要な低減率データを取り出して各画素データを出力する出力手段とを備えた線分アンチエイリアシング装置が開示されている。
この装置によると、線分表示においてエイリアシングと呼ばれるギザギザの発生を抑えることが可能となる。
特開2005-24987号公報 特開平8−138067号公報
ところで、特許文献2は、理論線と描画画素との距離の小数部(同文献におけるd11やd01(同文献の図4および図5参照))に対する低減率をルックアップテーブル(LUT)に保持しており、当該LUTを直接参照することにより低減率データを取得する構成となっている(同文献の図4および図5参照)。
このため、(小数部の取り得る値の数)×(線幅ドット数)個の低減率データをLUTに記憶させておく必要がある。このため、例えば同文献の図5においては、16×3=48バイトの記憶容量が必要になる。
また、同文献では、LUTで対応している線幅分しか線画像を生成できないため、任意の線幅の線画像を出力できない。仮に、数多くの種類の線幅の線画像を出力可能にしようとすると、膨大な数の低減率データをLUTに保持しなければならない。このため、この場合も、多くの記憶容量が必要になる。
さらに、同文献では、線に属する全ての画素の輝度値が低減する可能性があるため、この場合、全ての画素について輝度値を低減するための演算が必要になる。
本発明は上記の問題点に間がみなされたものであって、その目的は、ルックアップテーブル等のデータを用いることなく、短い処理時間でシャギーを目立たなくさせることが可能な情報処理装置、情報処理方法、およびプログラムを提供することにある。
本発明のある局面に従うと、情報処理装置は、マトリックス状に複数の画素が配された表示画面に、記号を表示させるための情報処理装置であって、記号の骨格を示す情報を記憶する記憶手段を備え、骨格を示す情報は、骨格を構成する各骨格線の要素である要素線分を示す情報を含み、骨格を示す情報に基づいて、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有するように前記記号を表示する際に、複数の画素のうちの表示画素の階調を決定する表示制御手段をさらに備え、表示制御手段は、記号の表示画素を構成する画素群の一部であって、表示画素が線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、要素線分と当該要素線分と重なる画素を含んだ要素画素群の中心点との線幅の方向の距離を、各要素画素群について算出する距離算出手段と、中心点を含んだ要素画素群に含まれる一方の端部の画素の階調を、指定された階調と表示される記号の背景の階調との間の階調であって、距離算出手段で算出した距離に応じた階調に補正する階調補正手段と、階調補正手段での補正に基づき、記号を表示画面に表示させるための表示データを生成する表示データ生成手段とを含んでいる。
また、中心点から線幅の方向に前記距離だけ離れた前記要素線分上の点を、第1の点とすると、一方の端部の画素は、中心点に対して前記第1の点とは反対側に位置する画素であることが好ましい。
また、階調補正手段は、補正を行った画素を含んだ要素画素群における他方の端部の画素と線幅の方向に隣接する画素であって、当該要素画素群に含まれていない画素についても、記号の階調と当該記号の背景の階調との間の階調であって、距離算出手段で算出した距離に応じた階調に補正することが好ましい。
また、階調補正手段は、一方の端部の画素については、距離が長くなるにつれて、記号の階調か記背景の階調に近づく補正をし、隣接する画素については、距離が長くなるにつれて、背景の階調から記号の階調に近づく補正をすることが好ましい。
また、複数の前記要素線分に基づき記号が表示される場合、各要素線分が、行方向または列方向と平行な直線であるか否かを、骨格線を示した情報に基づいて判定する平行判定手段と、平行判断手段によって平行であると判断された要素線分と重なる画素を含んだ前記要素画素群における一方の端部の画素と、当該要素画素群における他方の端部の画素と線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素とについては、前記階調補正手段による補正を制限する補正制限手段とを備えることが好ましい。
また、行方向または列方向に平行な要素線分と、平行な要素線分と連続するとともに当該要素線分に対して傾きを有する他の要素線分とに基づき記号が表示される場合、平行な要素線分と重なる画素を含んだ各要素画素群における各中心点を通る線を第1仮想線とし、他の要素線分と重なる画素を含んだ要素画素群における中心点を通る、第1仮想線と垂直な線を第2仮想線とすると、第2仮想線と他の要素線分との交点の位置と、第1仮想線との位置とが所定の関係を満たす場合、当該交点と重なる画素を含んだ要素画素群における一方の端部の画素と、当該要素画素群に隣接する他方の端部の画素についての階調補正手段による階調の補正を制限する補正制限手段を備えることが好ましい。
また、表示画面においてX軸の正方向を行方向とし、Y軸の負方向を列方向とすると、第1仮想線がY軸と平行であって、かつ他の要素線分が第1仮想線よりもX軸の負方向側に存在する場合、所定の関係は、交点のX座標の値が第1仮想線のX座標の値よりも大きいことであることが好ましい。
また、表示画面においてX軸の正方向を行方向とし、Y軸の負方向を列方向とすると、第1仮想線がY軸と平行であって、かつ他の要素線分が第1仮想線よりもX軸の正方向側に存在する場合、所定の関係は、交点のX座標の値が第1仮想線のX座標の値よりも小さいことであることが好ましい。
また、表示画面においてX軸の正方向を行方向とし、Y軸の負方向を列方向とすると、第1仮想線がX軸と平行であって、かつ、他の要素線分が第1仮想線よりもY軸の負方向側に存在する場合、所定の関係は、交点のY座標の値が第1仮想線のY座標の値よりも大きいことであることが好ましい。
また、表示画面においてX軸の正方向を行方向とし、Y軸の負方向を列方向とすると、第1仮想線がX軸と平行であって、かつ、他の要素線分が第1仮想線よりもY軸の正方向側に存在する場合、所定の関係は、交点のY座標の値が第1仮想線のY座標の値よりも小さいことであることが好ましい。
また、行方向または列方向に平行な要素線分と、平行な要素線分と連続するとともに当該要素線分に対して傾きを有する他の要素線分とに基づき記号が表示される場合、平行な要素線分と重なる画素を含んだ各要素画素群における各中心点を通る線を第1仮想線とすると、第1要素線分と重なる画素に第1仮想線が重なっており、かつ第1仮想線と第2要素線分とが交わる場合、第2要素線分の長さを、当該交わった点を含む画素に隣接する画素までしか達しない長さに補正するとともに、第1要素線分の長さを、交わった点を含む画素まで達する長さに補正する要素線分補正手段を備えることが好ましい。
また、記号は、加法混色により色が決定されるものであり、階調補正手段は、加法混色の原色のそれぞれについて画素値を補正することにより階調の補正を行うことが好ましい。
本発明の他の局面に従うと、情報処理装置は、マトリックス状に複数の画素が配された表示画面に、記号を表示させるための情報処理装置であって、記憶装置に記憶された記号の骨格を示す情報に基づいて、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有するように表示画面に記号を表示する際に、複数の画素のうちの表示画素の階調を決定する表示制御手段を備え、骨格を示す情報は、骨格を構成する各骨格線の要素である要素線分を示す情報を含み、表示制御手段は、要素線分として、行方向または列方向と平行な第1要素線分と、当該第1要素線分と連続するとともに当該第1要素線分に対して傾きを有する第2要素線分とを含む記号を表示する際に、指定された階調を補正する階調補正手段を含み、階調補正手段は、記号の表示画素を構成する画素群の一部であって、第1要素線分と第2要素線分との交点と重なる画素を含んだ線幅の方向に連続した線幅分の画素群を要素画素群とすると、当該要素画素群における端部の画素に線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素であって、連続した両要素線分により形成される角度のうち優角側の領域の画素については、前記階調の補正を行わない。
本発明のさらに他の局面に従うと、情報処理装置は、マトリックス状に複数の画素が配された表示画面に、記号を表示させるための情報処理装置であって、記憶装置に記憶された記号の骨格を示す情報に基づいて、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有するように表示画面に記号を表示する際に、複数の画素のうちの表示画素の階調を決定する表示制御手段を備え、骨格を示す情報は、骨格を構成する各骨格線の要素である要素線分を示す情報を含み、表示制御手段は、要素線分として、行方向または列方向と平行な第1要素線分と、当該第1要素線分と連続するとともに当該第1要素線分に対して傾きを有する第2要素線分とを含む記号を表示する際に、指定された階調を補正する階調補正手段を含み、階調補正手段は、第1要素線分と第2要素線分との交点と重なる画素に関して線幅の方向に配された画素であって、連続した両要素線分により形成される角度のうち優角側の領域の画素については、線幅を太くするような階調の補正を行わない。
また、表示制御手段は、記号の表示画素を構成する画素群の一部であって、表示画素が線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、要素線分と当該要素線分と重なる画素を含んだ要素画素群の中心点との線幅の方向の距離を、各要素画素群について算出する距離算出手段を、さらに備え、階調補正手段は、要素画素群の一方の端部の画素と、当該要素画素群に隣接する他方の端部の画素と線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素については、指定された階調と表示される記号の背景の階調との間の階調であって、距離算出手段で算出した距離に応じた階調に補正することが好ましい。
本発明のさらに他の局面に従うと、情報処理方法は、記号の骨格を示した情報に基づき、マトリックス状に画素が配された表示画面に、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有する記号を表示させる情報処理方法であって、記号の表示画素を構成する構成する画素群の一部であって、表示画素が線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、骨格を構成する骨格線の要素である要素線分と、当該要素線分と重なる表示画素を含んだ要素画素群における中心点との、線幅の方向における距離を算出する距離算出ステップと、中心点を含んだ要素画素群に含まれる一方の端部の画素の階調を、記号の階調と当該記号の背景の階調との間の階調であって、距離算出ステップで算出した距離に応じた階調に補正する階調補正ステップと、階調補正ステップで補正した後の記号を、表示画面に表示させる表示ステップとを含む。
本発明のさらに他の局面に従うと、プログラムは、上記情報処理方法をコンピュータに実行させるためのプログラムである。
本発明により。ルックアップテーブル等のデータを用いることなく、短い処理時間でシャギーを目立たなくさせることができるといった効果を奏する。
本発明に係る情報処理装置の一実施の形態について、図1〜図26に基づいて説明すると、以下のとおりである。
図1は、情報処理装置1の概略構成を示したブロック図である。同図に示すとおり、情報処理装置1は、入力部10と、出力部11と、記憶装置12と、第1メモリ13と、第2メモリ14と、制御部15とを備えている。
入力部10は、ユーザからの入力を受け付けるための入力デバイスである。入力部10を介してユーザがデータの入力を行うことにより、第1メモリ13に当該入力されたデータが記憶される。入力部10を介して、入力されるデータとしては、例えば、記号を特定するためのデータ(例えば、文字コード)、記号のサイズのデータ、記号の線幅の種別情報(例えば、太、中、細)を特定するためのデータ、記号の色を特定するためのデータ等が挙げられる。なお、以下では、記号の線幅の種別、および記号の色については、予めデフォルト値が記憶装置12に記憶されており、ユーザが変更指示を入力部10を介して情報処理装置1に入力しない限り、デフォルト値に基づいた表示がなされる構成としておく。
出力部11は、制御部15からの指示に基づき、入力部10を介して入力されたデータ、および制御部15における各種の処理の結果を表示するためのデバイスである。また、出力部11は、マトリックス状に画素が配された表示画面を備えている。以下では、マトリックスに対してXY座標を設定し、X軸の正方向をマトリックスの行方向と、Y軸の負方向をマトリックスの列方向とする。つまり、ユーザが対峙する表示画面に対して、右方向がX軸方向、上方向がY軸方向とする。
なお、以下では、出力部11が、カラーモデルの一例として、RGBカラーモデルを用いた表示を行うものとする。また、以下では画素の画素値を、(R,G,B)として表記する。さらに、以下では、画素値(R,G,B)のうちRの要素の値をR成分の値と、Gの要素の値をG成分の値と、Bの要素の値をB成分の値と称する。
記憶装置12は、各種記号のスケルトンデータを記号毎に記憶している。また、記憶装置12は、例えば、ハードディスク装置や、フラッシュメモリで構成される。ここで、記号とは、文字、図形、符号等を含む概念である。なお、スケルトンデータの構成については、図27および図28に示した従来の構成と同様であるため、ここでの説明は省略する。
第1メモリ13は、RAM(Random Access Memory)等の揮発性の半導体メモリで構成される。また、第1メモリ13は、制御装置15のCPU(図示せず)が直接データをやり取りする主記憶装置としての役割を果たす。第1メモリ13には、ユーザにより入力されたデータ、記憶装置12に記憶されたデータ等が一時的に記憶される。
第2メモリ14は、VRAM(Video RAM)であり、出力部11に表示するデータを保持しておくためのメモリである。なお、本実施の形態の情報処理装置1は、第1メモリ13と第2メモリ14とを備えているが、第2メモリ14を独立して備えずに第1メモリ13の一部の領域をVRAM用のメモリ領域として割り当てる構成としてもよい。
制御部15は、情報処理装置1における各種の処理を制御する。
制御部15内の表示制御部16は、距離算出部20と、階調補正部21と、表示データ生成部22とを備えている。さらに、階調補正部21は、平行判定部30と、補正制限部31と、線分補正部32とを備えている。なお、制御部15および制御部15内の各部は機能ブロックであり、これらのブロックにおける処理は、後述するCPUにより実行されるソフトウェアによって実現される。
表示制御部16は、制御部15内で処理したデータを出力部11に表示させる。具体的には、表示制御部16は、VRAMとして機能する第2メモリ14に画像データを記憶させるとともに、当該記憶させた画像データを出力部11で出力させる。
より詳しくは、表示制御部16は、スケルトンデータ(記号の骨格を示す情報)に基づいて、マトリックスの行方向または列方向のいずれかにおいて指定された線幅および指定された階調を有するように記号を表示画面に表示する際に、複数の画素のうちの表示画素の階調を決定する。
以下では、スケルトンデータの座標データ(図28参照)をスケーリングして得られる座標データに基づき構成される記号の骨格を示す線を骨格線と称する。つまり、骨格線とは、出力部11で表示される際のサイズに変更された後の、記号の骨格を示す線として説明する。
また、記号の表示画素を構成する画素群の一部であって、表示画素が線幅の方向に一列に並んだ線幅分の画素群を要素画素群と称する。さらに、記号の骨格を構成する各骨格線の要素である線分を要素線分と称する。つまり、要素線分とは、骨格線を構成する一要素となる線分であって、一定の傾きを有する線分である。
距離算出部20は、上記要素線分と、当該要素線分と重なる画素を含んだ要素画素群の中心点との上記線幅の方向の距離を、各要素画素群について算出する。
階調補正部21は、補正対象画素を上記要素線分毎に特定し、所定の規則に従って補正対象画素について上記指定された階調を別の階調に補正する。また、階調補正部21は、各色成分の画素値(つまり、R成分画素値、G成分画素値、B成分画素値)に対して、補正を行う。ここで、階調の補正とは、各色成分の画素値を補正することをいう。なお、補正対象画素の特定と、具体的な階調の補正の方法とについては、後述する。
表示データ生成部22は、階調補正部21での補正に基づき、記号を表示画面に表示させるための表示データを生成し、当該表示データを第2メモリに一時記憶させる。
なお、階調補正部21における、平行判定部30と、補正制限部31と、線分補正部32とについては、後述する。
ここで、図2を参照して、本実施の形態に係る情報処理装置1の具体的構成の一態様について説明する。同図は、情報処理装置1として機能するコンピュータシステム100のハードウェア構成を表わすブロック図である。
コンピュータシステム100は、主たる構成要素として、プログラムを実行するCPU110と、コンピュータシステム100の使用者による指示の入力を受けるマウス120およびキーボード130と、CPU110によるプログラムの実行により生成されたデータ、又はマウス120若しくはキーボード130を介して入力されたデータを揮発的に格納するRAM140と、データを不揮発的に格納するハードディスク150と、CD−ROM(Compact Disk-Read Only Memory)駆動装置160と、モニタ170と、通信IF(Interface)180とを含む。各構成要素は、相互にデータバスによって接続されている。CD−ROM駆動装置160には、CD−ROM161が装着される。
なお、情報処理装置1における入力部10がキーボード130およびマウス120に該当し、出力部11がモニタ170に該当し、記憶装置12がハードディスク150に該当し、第1メモリ13と第2メモリ14とがRAM140に該当する。
コンピュータシステム100における処理は、各ハードウェアおよびCPU110により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク150に予め記憶されている場合がある。また、ソフトウェアは、CD−ROM161その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、CD−ROM駆動装置160その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信IF180を介してダウンロードされた後、ハードディスク150に一旦格納される。そのソフトウェアは、CPU110によってハードディスク150から読み出され、RAM140に実行可能なプログラムの形式で格納される。CPU110は、そのプログラムを実行する。
同図に示されるコンピュータシステム100を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM140、ハードディスク150、CD−ROM161その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム100の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
なお、記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
ところで、上記構成は、あくまでも具体的構成の一態様にすぎず、上記マウスを備えず、かつ、キーボードとモニタとハードディスクとが情報処理装置1内に備えられている構成であってもよい。情報処理装置1は、電子辞書や携帯電話等のポータブル型の携帯情報端末としても構成できる。
このような携帯情報端末として情報処理装置1を構成する場合には、ハードディスク150の代わりに例えばフラッシュメモリを用いることができる。また、入力部として、タッチペン式の入力装置を備える構成としてもよい。さらに、小型化の観点から、モニタ170としては、液晶モニタや有機ELモニタ等の薄型のモニタを使用することが好適である。また、小型化の観点から、CD−ROM駆動装置の代わりにメモリカードを読み取る装置を設けておき、記録媒体としてCD−ROMの代わりに当該メモリカードを用いることが好適である。
ここで、図3から図6に従い、階調補正部21で行われる処理を具体的に説明する。また、以下では、記号の一例として文字を例に挙げて説明する。
まず、取得した文字コードと文字のサイズデータと文字の線幅の種別情報と文字の色のデータとに基づき、表示制御部16が文字と文字サイズと上記文字の線幅種別と文字の色とを特定する。そして、表示制御部16が、特定された文字サイズに基づき、当該文字のスケルトンデータをスケーリングする。また、表示制御部16が、上記特定された文字サイズと文字の線幅の種別とを考慮して、文字を出力部11の表示画面に表示する際の線幅(指定された線幅)を決定する。さらに、表示制御部16が、上記特定された文字の色(画素値)を利用して、文字を表示画面に表示する。なお、文字の色の利用の仕方については後述する。
その結果として、上記表示画面での表示に際して文字の線幅を一列に連続した奇数個の画素を用いて表示することが表示制御部16により決定された場合について、最初に説明する。その後、上記表示画面での表示に際して文字の線幅を一列に連続した偶数個の画素を用いて表示することが表示制御部16により決定された場合について、説明する。
なお、以下では、一列に連続した奇数個の画素を用いて線幅を表現する場合、当該線幅を奇数線幅と称する。一方、一列に連続した偶数個の画素を用いて線幅を表現する場合、当該線幅を偶数線幅と称する。なお、奇数線幅および偶数線幅とは、後述する階調補正を行なう前の線幅をさしている。階調補正を行えば、文字の一部の線幅は太くなる。
ここで、線幅について説明する。線幅とは、X軸方向またはY軸方向の文字の幅をいう。また、文字の幅を表現する場合、一列に連続した画素(画素群)を用いる。例えば、線幅が3の場合、3つの連続した画素を用いる。
より詳しくは、文字の幅を表現する場合、骨格線の要素線分が重なった画素を含み、X軸方向またはY軸方向に一列に連続した画素群(要素画素群)を用いる。X軸方向に一列に連続した画素群、およびY軸方向に一列に連続した画素群のうち、どちらの画素群を用いるかは、上記要素線分の傾きにより制御部15が決定する。
例えば、要素線分の傾きの絶対値が1以上の場合には、X軸方向に一列に連続した画素群を用いて文字の幅を表現する。一方、要素線分の傾きの絶対値が1未満の場合、Y軸方向に一列に連続した画素群を用いて文字の幅を表現する。
図3は、奇数線幅の文字を階調補正部21により補正した後の文字の一部分を示した図である。また、同図は、文字の線幅方向の一部分を示した図でもある。
同図においては、まず、要素線分L1の傾きの絶対値が1以上であるため、制御部15により、線幅がX軸方向に設定される。
なお、階調補正部21による補正を行わない従来の構成では、奇数線幅(同図では線幅は3)分の画素Pa、画素Pb、画素Pcといった一列に連続した3個の画素が文字を構成する画素群となる。画素Pbが画素群の中心画素となっているのは、画素Pbの中心点Cと要素線分L1とのX軸方向における距離が、他の画素の中心点と要素線分L1とのX軸方向における距離よりも小さいからである。
本実施の形態でも、上記画素Paと画素Pbと画素Pcとを文字を構成する画素群として用いる。
距離算出部20が、画素Pbの中心点Cと要素線分L1とのX軸方向における距離を算出する。つまり、距離算出部20が、中心点Cと要素線分L1上の点Gとの距離|d|を算出する。さらに、言い換えれば、距離算出部20は、画素Paと画素Pbと画素Pcとから構成される画素群における中心点と、点Gとの距離を算出する。ここで、上記距離|d|の算出に当たっては、画素の中心点間の距離を1とする。つまり、|d|は0から0.5の値をとることになる。なお、点Gは、文字の線幅方向に一列に並んだ各画素における各中心点を通過する線上の点でもある。
階調補正部21は、中心点Cに対して点Gと反対側の画素Paを補正対象画素と特定する。また、階調補正部21は、画素PcとX軸方向に隣接する画素Pdについても補正対象画素と特定する。以下では、当該補正前の文字領域(例えば、画素Pa、画素Pb、画素Pc)における文字の画素値を、(R,G,B)=(Rf,Gf,Bf)とし、補正前の背景領域(例えば、画素Pd)における背景の画素値を、(R,G,B)=(Rb,Gb,Bb)として説明する。
階調補正部21は、画素Paに対しては以下の式(1)〜式(3)を用いて階調の補正を行い、補正後の画素値(R,G,B)=(Rm,Gm,Bm)を得る。そして、階調補正部21は、画素Paの画素値を補正後の画素値とし、当該画素Paの階調を補正する。
Rm=(1−|d|)×Rf+|d|×Rb … (1)
Gm=(1−|d|)×Gf+|d|×Gb … (2)
Bm=(1−|d|)×Bf+|d|×Bb … (3)
また、階調補正部21は、画素Pdに対しては以下の式(4)〜式(6)を用いて階調の補正を行い、補正後の画素値(R,G,B)=(Rm,Gm,Bm)を得る。そして、階調補正部21は、画素Pdの画素値を補正後の画素値とし、当該画素Pdの階調を補正する。
Rm=|d|×Rf+(1−|d|)×Rb … (4)
Gm=|d|×Gf+(1−|d|)×Gb … (5)
Bm=|d|×Bf+(1−|d|)×Bb … (6)
以上により、画素Paと画素Pdとは、文字の階調と文字の背景の階調との間の階調であって、距離算出部20で算出した距離に応じた階調に補正される。
また、画素Paについては、階調補正部21によって、距離|d|の値が大きくなるにつれて文字の階調から背景の階調に近づく補正がなされる。一方、画素Pdについては、階調補正部21によって、距離|d|が大きくなるにつれて、背景の階調から文字の階調に近づく補正がなされる。
また、補正後の画素PaのR成分の値と、補正後の画素PdのR成分の値とを加えると、Rf+Rbとなる。つまり、補正対象画素となっていない画素(画素Pbや画素Pc)におけるR成分の値と、上記背景の画素におけるR成分の値とを足し合わせた値と同じ値となる。また、G成分の値と、B成分の値とについても、同様のことが言える。
以上により、線幅が3から4に補正され、同図に示すような画素Paと画素Pbと画素Pcと画素Pdとにより文字の一部が構成されることになる。
図4は、図3と同様、奇数線幅の文字を階調補正部21により補正した後の文字の一部分を示した図である。図4が図3と異なる点は、要素線分L1の点Gが、中心画素となる画素Pbの中心点CよりもX軸の負方向側に存在する点である。
このため、図4においては、階調補正部21により、画素Pcが補正対象画素と特定されるとともに、画素PaとX軸方向に隣接する画素Peが補正対象画素として特定される。この場合、画素Pcについては、上記式(1)〜(3)に基づく補正がなされる。一方、画素Peについては、上記式(4)〜(6)に基づく補正がなされる。
図5は、偶数線幅の文字を階調補正部21により補正した後の文字の一部分を示した図である。また、同図は、文字の線幅方向の一部分を示した図でもある。
同図においては、まず、要素線分L1の傾きの絶対値が1以上であるため、制御部15により、図3および図4と同様に線幅がX軸方向に設定される。
なお、階調補正部21による補正を行わない従来の構成では、偶数線幅(同図では線幅は2)分の画素Pfおよび画素Pgといった一列に連続した2個の画素が文字を構成する画素群となる。ここで、画素Phが文字を構成する画素とならずに、画素Pfが文字を構成する画素となるのは、画素Pfの中心点と要素線分L1とのX軸方向における距離が、画素Phの中心点と要素線分L1とのX軸方向における距離よりも小さいからである。
本実施の形態でも、上記画素Pfと画素Pgとを文字を構成する画素群として用いる。
距離算出部20が、画素Pfと画素Pgとから構成される画素群の中心点Cと、要素線分L1とのX軸方向における距離を算出する。つまり、距離算出部20が、中心点Cと要素線分L1上の点Gとの距離|d|を算出する。言い換えれば、距離算出部20は、画素Pfと画素Pgとの境界線分の中心点と、要素線分L1とのX軸方向における距離を算出する。ここでも、上記距離|d|の算出に当たっては、画素の中心点間の距離を1とする。つまり、|d|は0から0.5の値をとることになる。
階調補正部21は、画素Pfに対しては上記の式(1)〜式(3)を用いて階調の補正を行い、補正後の画素値(R,G,B)=(Rm,Gm,Bm)を得る。そして、階調補正部21は、画素Pfの画素値を補正後の画素値とし、当該画素Pfの階調を補正する。
また、階調補正部21は、画素Phに対しては上記の式(4)〜式(6)を用いて階調の補正を行い、補正後の画素値(R,G,B)=(Rm,Gm,Bm)を得る。そして、階調補正部21は、画素Phの画素値を補正後の画素値とし、当該画素Phの階調を補正する。
以上により、画素Pfと画素Phとは、文字の階調と文字の背景の階調との間の階調であって、距離算出部20で算出した距離に応じた階調に補正される。
また、画素Pfについては、階調補正部21によって、距離|d|の値が大きくなるにつれて文字の階調から背景の階調に近づく補正がなされる。一方、画素Phについては、階調補正部21によって、距離|d|が大きくなるにつれて、背景の階調から文字の階調に近づく補正がなされる。
また、補正後の画素PfのR成分の値と、補正後の画素PhのR成分の値とを加えると、Rf+Rbとなる。つまり、補正対象画素となっていない画素(画素Pg)におけるR成分の値と、上記背景の画素におけるR成分の値とを足し合わせた値と同じ値となる。また、G成分の値と、B成分の値とについても、同様のことが言える。
以上により、線幅が2から3に補正され、同図に示すような画素Pfと画素Pgと画素Phとにより文字の一部が構成されることになる。
図6は、図5と同様、偶数線幅の文字を階調補正部21により補正した後の文字の一部分を示した図である。図6が図5と異なる点は、要素線分L1の点Gが、画素Pfと画素Pgとから構成される画素群の中心点CよりもX軸の負方向側(図6の左側)に存在する点である。
このため、図6においては、階調補正部21により、画素Pgが補正対象画素と特定されるとともに、画素PfとX軸方向に隣接する画素Piが補正対象画素として特定される。この場合、画素Pgについては、上記式(1)〜(3)に基づく補正がなされる。一方、画素Piについては、上記式(4)〜(6)に基づく補正がなされる。
なお、上記点Gが距離|d|の算出の処理の対象となる点であることから、以下では、点Gを処理対象点Gと称する。
図7は、情報処理装置1における処理の流れを示したフローチャートである。特に、同図は、一つの文字を表示画面に表示させる場合について示している。
まず、表示制御部16が、表示対象となる文字についての、文字コードと文字のサイズデータと文字の線幅の種別情報と文字の色といった文字情報を取得する(S1)。表示対象となる文字は、入力部10を介して入力される文字でも、あるいは予め情報処理装置1に記憶されていた文字であってもよい。当該ステップS1によって、文字と文字サイズと文字の線幅の種別と文字の色とが特定される。
ステップS1の後は、表示制御部16が、上記取得した文字コードによって特定されるスケルトンデータを記憶装置15から読み出す(S2)。なお、読み出したスケルトンデータは、第1メモリ13に一時記憶される。そして、ステップS2の後は、表示制御部16が、上記特定された文字サイズに基づき、読み出したスケルトンデータをスケーリングする(S3)。
ステップS3の後は、表示制御部16が、スケーリングした後のスケルトンデータから、1つのストロークの骨格線に関するストローク情報を取得する(S4)。なお、ストローク情報とは、特許文献1で示したストローク情報と同一であり、漢字「木」例では、当該漢字に関して4つのストローク情報が存在することになる。
ステップS4の後は、表示制御部16が、取得した一つのストローク情報と上記特定された文字の線幅の種別情報に基づき、所定の線幅(指定された線幅)のストロークの描画を行う(S5)。そして、ステップS5の後は、表示制御部16が、当該文字に含まれるストローク全てについて、上記描画を行ったか否かを判定する(S6)。ここで、上記の所定の線幅とは、階調補正部21による補正を行った後の文字の線幅をさす。
S6において全てのストロークについて上記描画を行ったと判定されなかった場合には、再度、ステップS4に戻る。一方、S6全てのストロークについて上記描画を行ったと判定された場合には、当該文字についての一連の処理を終了する。
図8は、図7のステップS5の処理の詳細を示したフローチャートである。なお、図8においては、要素線分の傾きの絶対値が1以上の場合であって、各要素線分に関し、要素線分の始点のY座標が、当該要素線分の終点のY座標よりも小さい場合を例に挙げて説明する。
また、以下では、要素線分と上述した中心点CとのX軸方向の距離を算出する場合、要素線分上の処理対象点Gを先に求めた上で、当該処理対象点Gと中心点Cとの距離を算出する構成を挙げて説明する。
まず、距離算出部20が、ストローク情報に基づき、一つの要素線分の両端部(始点および終点)の2点の座標値を取得する(S11)。ステップS11の後は、距離算出部20が、上記取得した座標値に基づき、上記要素線分の傾きkを計算する(S12)。ここで、線幅方向(図3から図6ではX軸方向)の線であって、かつ各画素の中心を通る線を、仮想線L2と称する。
ステップS12の後は、距離算出部20が、当該要素線分の始点座標と終点座標とに基づき、要素線分の両端部近傍における、当該要素線分と上記仮想線L2との交点を求める(S13)。この際、要素線分の端部が重なる画素において、要素線分が短いために当該画素の中心を通る仮想線L2と交わらない場合には、当該要素線分の延長線と当該仮想線L2とが交わる点を上記交点とする。なお、以下では、始点側の交点を交点Sとし、終点側の交点を交点Eとする。
ステップS13の後は、距離算出部20が、上述した処理対象点Gを点Sに設定する(S14)。そして、ステップS14の後は、距離算出部20が、上記決定した線幅が奇数であるか否かを判断する(S15)。
ステップS15において奇数であると判断された場合には、距離算出部20が、上記処理対象点Gに最も近い、画素の中心点Cを求める(S16)。ステップS16の後は、距離算出部20が、処理対象点Gと、求めた中心点Cとの距離|d|を算出する(S17)。具体的には、距離算出部20は、処理対象点GのX座標の値と上記中心点CのX座標の値との差の絶対値を距離|d|とする。
ステップS17の後は、階調補正部21が、上記中心点Cを有する画素を中心とするX軸方向の線幅分(つまり補正前の線幅分)の画素群を基にして、上述した距離|d|に応じた階調の補正を行う(S18)。この画素群に基にして上記補正を行うことにより、図3や図4に示したように、当該画素群の一方の端部の画素(例えば、図3の画素Pa)と、当該画素群の他の端部の画素に隣接する画素(例えば、図3の画素Pd)について、階調の補正がなされる。そして、ステップS18の後は、ステップ19に進む。
ステップS15において奇数ではないと判断された場合には、距離算出部20が、上記処理対象点Gに最も近い、画素間の境界線分を特定する(S20)。ステップ20の後は、距離算出部20が、処理対象点Gと、特定された境界線分との距離|d|を算出する(S21)。つまりは、距離算出部20が、処理対象点Gと、特定された距離線分の中心点(つまり中心点C)との距離を算出する。具体的には、距離算出部20は、処理対象点GのX座標の値と、境界線分のX座標の値との差の絶対値を距離|d|とする。
ステップS21の後は、階調補正部21が、上記中心点Cを画素群の中心とするX軸方向の線幅分の画素群を基にして、上述した距離|d|に応じた階調の補正を行う(S22)。この画素群に基にして上記補正を行うことにより、図5や図6に示したように、当該画素群の一方の端部の画素(例えば、図5の画素Pf)と、当該画素群の他の端部の画素に隣接する画素(例えば、図5の画素Ph)について、階調の補正がなされる。そして、ステップS22の後は、ステップ19に進む。
ステップ19においては、処理対象点GのX座標の値に上記値kを加え、Y座標の値に1を加える。ステップS19の後は、制御部15が、処理対象点Gの座標値が上記終点Eの座標値と一致するか否かを判断する(S23)。
ステップS20において一致しないと判断された場合には、再度、ステップS15に戻る。一方、ステップS20において一致すると判断された場合には、表示制御部16は、ストロークの骨格線に含まれる全ての要素線分に対して、上述したステップS12からステップS23に基づく処理が行われたか否かを判断する(S24)。
ステップS24において全ての線分要素に対して処理が行われていないと判断された場合には、再度、ステップS11に戻る。一方、ステップS24において全ての線分要素に対して処理が行われたと判断された場合には、図7のステップS6に戻る。
図9は、上記階調補正の効果を説明するための図である。図9(a)は、上記階調補正を行っていない場合の文字(一部)を示した図であり、図9(b)は、階調補正を行った場合の文字(一部)とを示した図である。
上記の階調補正を行っていない場合には、図9(a)に示すとおり、シャギーが目立っている。しかしながら、上記の階調補正を行うことにより、図9(b)に示すとおり、シャギーが目立つことなく、輪郭が滑らかになっていることがわかる。
以上のように、情報処理装置1によると、距離|d|に応じた階調の補正を行うため、補正に際してルックアップテーブル等の階調補正に用いるデータを記憶装置に記憶しておく必要がない。また、画素の階調が距離|d|のみに応じて計算されるため、各画素毎にルックアップテーブル内のデータにアクセスする構成に比べ、階調補正に要する時間を短縮することができる。
ところで、VRAMとして機能する第2メモリ14のデータ記憶領域において、上記のような階調を補正した文字を表示データ生成部22によって生成する場合、以下の2通りの方法がある。
一つ目の方法は、第2メモリ14に文字のデータを直接描画する方法である。つまり、第2メモリ14に既に記憶されているデータ(つまり、表示中のビデオデータ)を文字の背景のデータとして用いて、階調の補正を行う方法(以下、直接描画方法と称する)である。
二つ目の方法は、後述する文字色寄与度を第2メモリ14以外のメモリ(以下、一時メモリと称する)に記憶しておき、当該文字色寄与度を用いて、第2メモリ14に記憶されたデータ(表示中のビデオデータ)を更新する方法(以下、間接描画方法と称する)である。
以下では、まず直接描画方法について説明し、その後、間接描画方法について説明する。
図10は、直接描画方法を行う際の処理の流れを示したフローチャートである。具体的には、図8のフローにおけるステップS18およびステップS22における処理を示したフローチャートである。
ここでは、説明の便宜上、文字色寄与度といった概念を用いる。文字色寄与度とは、階調補正部21による階調補正を行う前の文字の色(くわしくは、各色成分の値)を100とし、階調補正後の文字に関し、階調補正前の文字の色がどの程度寄与しているのかを示した値である。
具体的には、図3の画素Paについては、文字色寄与度は、100×(1−|d|)となる。また、同図の画素Pbと画素Pcとについては、階調補正が行われないため、文字色寄与度は100となる。さらに、同図の画素Pdについては、文字色寄与度は、100×|d|となる。また、同図の画素Pa〜Pd以外の領域では、文字色寄与度は0となる。
まず、表示制御部16が、第2メモリ14内の更新対象画素を特定するとともに、当該画素に対応する文字色寄与度を求める(S31)。ステップS31の後は、表示制御部16が、文字色寄与度が100か否かを判断する(S32)。
ステップS32において寄与度が100であると判断された場合には、階調補正部21は、上記更新対象画素の画素値を画素値(Rf,Gf,Bf)で更新する(S33)。つまり、更新対象画素を文字色そのもので更新する。
一方、ステップS32において寄与度が100であると判断されなかった場合には、階調補正部21は、上記更新対象画素の画素値(Rb,Gb,Bb)を取得する(S34)。ステップS34の後は、階調補正部21が、画素値(Rf,Gf,Bf)と、画素値(Rb,Gb,Bb)と、求めた文字色寄与度とを用いて、補正後の画素値を算出する(S35)。なお、補正後の画素値の算出は、上述した式(1)〜(3)および式(4)〜(6)を用いるため、ここでは省略する。なお、式(1)〜(6)では、文字色寄与度を100で割った値(つまり、1−|d|や|d|)を用いて計算している。
ステップS35の後は、階調補正部21は、上記更新対象画素の画素値を補正後の画素値で更新する(S36)。これにより、図3の画素Paや画素Pdの階調が補正されることになる。
図11は、間接描画方法を行う際の処理の流れの一部を示したフローチャートである。
まず、表示制御部16が、上記一時メモリ内の更新対象画素を1つ特定するとともに、当該画素に対応する文字色寄与度K1を求める(S41)。ステップS41の後は、表示制御部16が、上記一時メモリ内に上記更新対象画素の文字色寄与度が既に記憶されているかを判断する(S42)。
ステップS42において文字色寄与度が既に記憶されていると判断された場合には、制御部15が、ステップS41で求めた文字色寄与度K1が、既に記憶されていた文字色寄与度K2よりも大きいか否かを判断する(S43)。一方、S42において文字色寄与度が既に記憶されていると判断されなかった場合には、ステップS44に進む。
ステップS43において大きいと判断されなかった場合には、ステップS45に進む。一方、ステップS43において大きいと判断された場合には、ステップS44に進む。ステップS44では、更新対象画素の文字色寄与度をK1に設定する。そして、ステップS44の後は、ステップS45に進む。
ステップS45においては、表示制御部16が、一文字に含まれる全ての更新対象画素について処理が行われたか否かが判断する。ステップS45において全ての更新対象画素について処理が行われていないと判断された場合には、再度、S41に戻る。
一方、ステップS45において全ての更新対象画素について処理が行われたと判断された場合には、一時メモリに記憶された文字色寄与度を用いて各画素の画素値を算出し、当該算出した画素値を用いて、第2メモリ14における画素値を更新する(S46)。この更新処理により、階調の補正がなされる。なお、画素値の算出については、上述した式(1)〜(3)および式(4)〜(6)を用いるため、ここでは省略する。
間接描画方法では、全ての更新対象画素の文字色寄与度を求めた上で第2メモリ14における画素値を更新する構成であるため、一つのストローク毎に描画を行う図7のフローとは異なることになる。
また、上記直接描画方法を用いることにより、間接描画方法に用いたような一時メモリが不要となる。また、一時メモリから第2メモリ14への転送も不要であるため、処理の高速化が図れる。
一方、間接描画方法を用いることにより、要素線分が交差する箇所や、要素線分が込み合っている箇所においても、文字色の階調が他の箇所の階調よりも高くなることを防止することができる。
ところで、上記においては、要素線分が、X軸に平行であろうと、Y軸に平行であろうと、階調補正部21により上述した階調の補正がなされる。しかしながら、X軸に平行な要素線分、Y軸に平行な要素線分により描画される記号(記号の一部)は、そもそも階段状のギザギザ(ジャギー)が発生しない。このため、X軸およびY軸に対して傾きを有する要素線分(つまり斜めの線分)についてのみ上述した階調の補正を行うことが好ましい。
そこで、以下では、平行判定部30と補正制限部31とを利用する構成について説明する。
平行判定部30は、各要素線分が、X軸またはY軸と平行な直線であるか否かを、スケーリングされたスケルトンデータ(骨格線を示した情報)に基づいて判定する。
補正制限部31は、平行判断部30によって平行であると判断された要素線分と重なる画素を含んだ要素画素群に関しては、上述した階調の補正がなされないよう補正を制限する。
図12は、平行判定部30と補正制限部31とを用いて、補正の制限を行った場合に得れる記号の一部を示した図である。なお、同図において点線は、画素の中心点間を結んだ線である。
同図に示すとおり、要素線分L3は斜線の線分であり、要素線分L4はY軸と平行な線分である。要素線分L3に基づいて文字の一部分を表示する場合には、同図に示すとおり、階調補正部21による階調の補正がなされている。そして、当該補正により、線幅が3から4に増えている。一方、要素線分L4に基づいて記号の一部分を表示する場合には、同図に示すとおり、補正制限部31により階調の補正が制限されている。
この結果、斜めの文字の部分に関しては、シャギーを目だ出せなくすることができるとともに、Y軸に平行な文字の部分に関しては、文字がぼやけてしまうことを回避できる。さらに、X軸やY軸に平行な要素線分については、距離|d|に基づく階調補正の演算が不要となるため、当該平行な要素線分に対して階調補正の演算を実行する構成に比べて、表示に要する時間を短縮することが可能となる。
このように、補正制限部31は、平行判断部30によって平行であると判断された要素線分と重なる画素を含んだ要素画素群における一方の端部の画素(図12では、例えば画素Pj)と、当該要素画素群の上記他方の端部に隣接する画素であって、当該要素画素群に含まれていない画素(同図では、例えば画素Pk)については、階調補正部21による補正を制限する構成であるといえる。
ところで、上記のように補正制限部31によって階調の補正をする場合、以下のような問題点が生じる。
図13は、斜めの要素線分L5と、当該要素線分L5に連続する要素線分L6とを用いて描画した文字の一部分を示した図である。なお、同図においては、補正制限部31による上述した補正の制限が行われている。
この場合、同図に示すとおり、画素Pmと画素Pnとについても階調の補正が行われてしまう。それゆえ、要素線分L5と要素線分L6とにより形成される角度のうち優角側(角度が180度以上の側)の領域において、Y軸に平行な記号の輪郭線に対して凸部が形成されてしまう。このため、文字の見た目が悪くなる。
そこで、以下では、補正制限部31の機能の一部を変更し、文字の見た目が悪くなることを防止する構成について説明する。
図14は、このように補正制限部31の機能を変更することにより得られる文字の一部分を示した図である。上記要素線分L5と上記要素線分L6とを用いて文字の一部を描画する場合に、同図に示すように、少なくとも画素Pmと画素Pnとについては階調の補正がなされていない。
以下では、このような見た目のよい文字を表示させるための処理について、図15から図18に基づいて説明する。
図15は、或る1つのストロークを描画する際に用いられる各要素線分を示した図である。同図においては、3つの要素線分(L10・L11・L12)が記されている。また、同図においては、要素線分L10の始点をH、要素線分L10の終点でありかつ要素線分L11の始点をI、要素線分L11の終点でありかつ要素線分L12の終点をJと、要素線分L12の終点をKとしている。
また、スケーリングされた座標データにおいては、点Hの座標値、点Iの座標値、点Jの座標値、点Kの座標値が、この順に並んでいるものとする。さらに、要素線分L10に基づくストロークが最初に描画され、その後、要素線分L11に基づくストロークの描画が行われ、最後に要素線分L12に基づくストロークの描画が行われるものとする。
さらに、要素線分L11に基づくストロークの描画を行っている際には、要素線分L10を描画対象の直前の要素線分と、要素線分L12を描画対象の直後の要素線分と称する。また、同図においては、当該描画に用いられている要素線分L11上の点であって、上述した処理対象点Gのうち、最初に処理が行われる点を点Sと、最後に処理が行われる点を点Eとして表示している。さらに、要素線分L11の傾きを1以上とする。
以下では、このような定義の下、処理の具体的な内容について説明する。
図16は、ストローク描画(図7のステップS5)における処理の詳細を示したフローチャートである。
まず、表示制御部16が、要素線分L10の座標値(つまり、図15における点Hと点Iの座標値)をスケーリング後のスケルトンデータから取得する(S51)。ステップS51の後は、距離算出部20が、要素線分L10の傾きを算出する(S52)。そして、ステップS52の後は、距離算出部20が、上記点Sと点Eとの座標値を算出する(S53)。さらに、ステップS53の後は、距離算出部20が、処理対象点Gを点Sに設定する(S54)。
ステップS54の後は、表示制御部16が、X軸方向の上限値Xmaxと下限値Xminとを設定する(S55)。ここで、X軸方向の上限値と下限値とを設定する理由は、要素線分L10の傾きが1以上であり、X軸方向に線幅が形成されるためである。なお、要素線分の傾きが1以下である場合には、Y軸方向に上限値と下限値とが設定されることになる。そして、ステップS55の後は、距離算出部20により線幅が奇数であるか否かが判断される(S56)。なお、ここでの線幅は、階調補正を行う前の線幅である。
ステップS56において奇数であると判断された場合には、距離算出部20は、処理対象点Gに最も近い、画素の中心点(つまり、中心点C)のX座標値を求める(S57)。なお、以下では、処理対象点Gの座標値を(Xg,Yg)とし、中心点Cの座標値を(Xc,Yc)と表記する。なお、この場合、YgとYcとは同じ値となる。つまり、中心点Cの座標値は、(Xc,Yg)としても表せる。
ステップS57の後は、距離算出部20により、Xgが、Xmin以上かつXmax以下であるか否かが判断される(S58)。ステップS58においてXmin以上かつXmax以下であると判断された場合には、距離算出部20が、処理対象点Gと中心点Cとの距離|d|を算出する(S59)。そして、ステップS39の後は、階調補正部21が、距離算出部20が算出した距離|d|を用いて、上述したようにストロークの一部(図3参照)を描画する(S60)。そして、ステップS60の後は、距離算出部20は、処理対象点GのX座標値に上記kを加えるとともに、当該処理対象点GのY座標値に1を加える(S61)。
一方、ステップS58においてXmin以上かつXmax以下であると判断されなかった場合には、距離算出部20が、点(Xc,Yg)を、線幅方向に連続した画素で構成される画素群(要素画素群)の中心点とし、表示制御部16が、従来のように、階調補正を行うことなくストロークの一部を描画する(S62)。つまり、図14に示した画素Pnや画素Pmについては、階調の補正がなされることなく、背景の色のままとすることが可能となる。したがって、見た目のよい文字を得ることができる。ステップS62の後は、ステップS61に進む。
ところで、ステップS56において奇数であると判断されなかった場合には、距離算出部20は、処理対象点Gに最も近い、上記境界線分の中心点(つまり、中心点C)の座標値を求める(S63)。
ステップS63の後は、距離算出部20により、Xgが、Xmin以上かつXmax以下であるか否かが判断される(S64)。ステップS64においてXmin以上かつXmax以下であると判断された場合には、距離算出部20が、処理対象点Gと中心点Cとの距離|d|を算出する(S65)。そして、ステップS59の後は、階調補正部21が、距離算出部20が算出した距離|d|を用いて、上述したようにストロークの一部(図5参照)を描画する(S66)。そして、ステップS66の後は、ステップS61に進む。
一方、ステップS64においてXmin以上かつXmax以下であると判断されなかった場合には、ステップS62に進む。
ステップS61の後は、距離算出部20により、処理対象点Gの座標値が点Eの座標値と同じか否かが判断される(S67)。ステップS67において同じであると判断されなかった場合には、再度、ステップS56に戻る。一方、ステップS67において同じであると判断された場合には、表示制御部16が、上記一つのストロークに含まれる全ての要素線分(L10・L11・L12)について処理がなされたか否かを判断する(S68)。
ステップS68において全ての要素線分について処理がなされたと判断されなかった場合には、再度、ステップS51に戻る。一方、ステップS68において全ての要素線分について処理がなされたと判断された場合には、処理を終了する。
図17は、図16のステップS55における、上限値と下限値との設定方法を示したフローチャートである。なお、説明の便宜上、要素線分L11についての上限値と下限値との設定を例に挙げて説明する。
まず、表示制御部16が、直前の要素線分L10が、X軸またはY軸に平行な線分(横線または縦線)であるか否かを、点Hと点Iとの座標値に基づき判断する(S71)。ステップS71において平行な線分であると判断された場合には、表示制御部16は、線幅が奇数であるか否かを判断する(S72)。なお、ここでの線幅は、階調補正を行う前の線幅である。
ステップS72において奇数であると判断された場合には、表示制御部16は、下限値Xminを、点Sを含む画素の中心点の座標のX座標値に設定する(S73)。その後、ステップS76に進む。一方、ステップS72において奇数であると判断されなかった場合には、表示制御部16は、下限値Xminを、点Sに最も近い上記境界線分のX座標値に設定する(S74)。その後、ステップS56に進む。
また、ステップS51において平行な線分であると判断されなかった場合には、表示制御部16は、下限値Xminを、Xgがとり得る値のうち、最小となる値に設定する(S75)。その後、ステップS76に進む。
ステップS76においては、表示制御部16が、直後の要素線分L12が、X軸またはY軸に平行な線分であるか否かを、点Jと点Kとの座標値に基づき判断する。ステップS76において平行な線分であると判断された場合には、表示制御部16は、線幅が奇数であるか否かを判断する(S77)。なお、ここでの線幅は、階調補正を行う前の線幅である。
ステップS77において奇数であると判断された場合には、表示制御部16は、上限値Xmaxを、点Eを含む画素の中心点の座標のX座標値に設定する(S78)。その後、処理を終了する。一方、ステップS77において奇数であると判断されなかった場合には、表示制御部16は、上限値Xmaxを、点Eに最も近い上記境界線分のX座標値に設定する(S79)。その後、処理を終了する。
また、ステップS77において平行な線分であると判断されなかった場合には、表示制御部16は、上限値Xmaxを、Xgがとり得る値のうち、最大となる値に設定する(S80)。その後、処理を終了する。
図18は、上限値の設定例と、下限値の設定例とを示した図である。
図18(a)は、図17のフローに示したように、X座標についての上限値Xmaxを示した図であり、図18(b)は、図17のフローに示したように、X座標についての下限値Xminを示した図である。また、図18(c)は、Y座標についての上限値Ymaxを示した図であり、図18(b)は、Y座標についての下限値Yminを示した図である。
ここで、X軸またはY軸に平行な要素線分(例えば、図18の縦線や横線)と重なる画素を含んだ各要素画素群における各中心点を通る線を仮想線L15(第1仮想線)とする。つまり、仮想線L15は、要素線分がX軸に平行であれば、X軸に平行な線分となり、要素線分がY軸に平行であれば、Y軸に平行な線分となる。なお、図13および図14の太い点線が、仮想線L15に該当する。
また、上記平行な要素線分と連続するとともに当該要素線分に対して傾きを有する他の要素線分(例えば、図18の斜線分)と重なる画素を含んだ、要素画素群における中心点を通る、前記第1仮想線と垂直な線を仮想線L16(第2仮想線)とする。つまり、仮想線L16は、上述した仮想線L2と同様、線幅方向(図3から図6ではX軸方向)の線であって、かつ各画素の中心を通る線である。なお、図14においては、仮想線L16は、X軸方向に平行な線となる。
このように仮想線L15および仮想線L16を定義すると、補正制限部31は、仮想線L16と上記他の要素線分との交点の位置と、仮想線L15との位置とが所定の関係を満たす場合、当該交点と重なる画素を含んだ要素画素群における一方の端部の画素と、当該要素画素群における前記他方の端部の画素と前記線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素とについては、階調補正部21による階調の補正を制限する構成といえる。
ところで、図14から図18においては、見た目のよい文字を表示させるために、補正制限部31によって所定の画素(例えば、図14の画素Pmおよび画素Pn)については階調の補正を制限した。以下では、同様に見た目のよい文字を表示させるために、線分補正部32を用いる構成について説明する。
線分補正部32は、所定の要素線分に関し、要素線分の傾きを変更することなく、要素線分の長さを変更する。詳しくは、線分補正部32は、各要素線分の始点の座標値と、終点の座標値とを変更することにより、要素線分の長さを変更する構成である。
図19は、線分補正部32による補正前の要素線分(L20・L21)と、補正後の要素線分(L20′・L21′)とを示した図である。図19(a)が補正前の要素線分を示しており、図19(b)が補正後の要素線分を示している。
図19(a)に示すとおり、要素線分L20と要素線分L21とは連続した線分である。また、要素線分L21は、Y軸に平行な線分である。また、要素線分L20は、要素線分L21に対して所定の傾きを有している。さらに、同図においては、要素線分L20は、X軸に対して1以上の傾きを有している。
また、同図に示すとおり、要素線分L20の始点を点Tと、要素線分L20の終点であるとともに要素線分L21の始点を点Uと、要素線分L21の終点を点Vとする。
以下では、要素線分L20を、図19(b)に示す要素線分L20′に補正するとともに、要素線分L21を、同図に示した要素線分L21′に補正する具体的方法について説明する。まず、
まず、要素線分L20の補正について説明する。
図20は、補正前の要素線分L20と、補正後の要素線分L20′とを示した図である。図20(a)が補正前の要素線分L20を示しており、図20(b)が補正後の要素線分L20′を示している。
ここで、図20(a)および図20(b)に示すとおり、Y軸に平行な要素線分L21と重なる画素を含んだ各要素画素群における各中心点を通る線を仮想線L30(第1仮想線)とする。また、仮想線L30と要素線分L20との交点を、交点Qとする。
線分補正部32は、要素線分L20の長さを、上記交点Qを含む画素に隣接する画素までしか達しない長さに補正する。例えば、図20(b)に示した例では、要素線分L20の終点のX座標値を、上記交点QのX座標値から要素線分の傾き(ここでもkとする)を差し引いた値に、同終点のY座標値を、上記交点QのY座標値から1を差し引いた値にする補正を行うことにより、要素線分L20の長さを、上記交点Qを含む画素に隣接する画素までしか達しない長さに補正している。
次に要素線分L21の補正について説明する。
図21は、補正前の要素線分L21と、補正後の要素線分L21′とを示した図である。図21(a)が補正前の要素線分L21を示しており、図21(b)が補正後の要素線分L21′を示している。
線分補正部32は、要素線分L21の長さを、上記交点Qを含む画素まで達する長さに補正する。例えば、図21(b)に示した例では、要素線分L21の始点のY座標値が1だけ減少させる補正を行うことにより、要素線分L21の長さを、上記交点Qを含む画素まで達する長さに補正している。つまり、要素線分L21を補正した後の要素線分L21′の始点は点U′となる。
図22は、図20および図21に示した要素線分の長さを補正する際の処理の流れを示したフローチャートである。また、同図は、ストローク描画(図7のステップS5)における処理の詳細を示したフローチャートでもある。
まず、距離算出部20が、各要素線分の始点と終点との座標値(図19においては、点Tと点Uと点Vとの座標値)をスケーリング後のスケルトンデータから取得する(S91)。ステップS91の後は、線分補正部32が上記始点および/または終点の座標値の補正を行う(S92)。なお、ステップS92の詳細については、後述する。
さらに、ステップS92の後は、線分補正部32が、補正後の座標値を用いて要素線分を生成するとともに、当該要素線分に基づき、上述した距離|d|に応じた階調の補正を行う(S93)。なお、ステップS93は、図8のステップS12からステップS23までの処理と同じであるため、ここでの説明は省略する。
そして、ステップS93の後は、表示制御部16が、ストロークの骨格線に含まれる全ての要素線分に対して、上述したステップS92およびS93に基づく処理が行われたか否かを判断する(S94)。
ステップS94において全ての線分要素に対して処理が行われていないと判断された場合には、再度、ステップS91に戻る。一方、ステップS94において全ての線分要素に対して処理が行われたと判断された場合には、処理を終了し、図7のステップS6に戻る。
次に、図22のステップS92の詳細について説明する。
図23は、ステップS92における処理の流れを示したフローチャートである。
まず、線分補正部32が、要素線分が斜線(つまり、X軸またはY軸に平行でない線)であるか否かを、当該要素線分の始点と終点との座標値から判断する(S101)。
ステップS101において斜線であると判断された場合には、当該斜線の要素線分の始点および/または終点の補正を行う(S102)。そして、ステップS102の後は、処理を終了する。
一方、ステップS101において斜線であると判断されなかった場合には、当該斜線ではない要素線分の始点および/または終点の補正を行う(S103)。そして、ステップS103の後は、処理を終了する。
次に、図23のステップS102の処理の詳細について説明する。
図24は、ステップS102における処理の流れを示したフローチャートである。つまり、図24は、要素線分L20についての補正の処理の流れを示したフローチャートでもある。
まず、表示制御部16が、直前の要素線分が、X軸またはY軸に平行な線分であるか否かを、当該直前の要素線分の始点と終点との座標値に基づき判断する(S111)。なお、表示制御部16は、直前の要素線分がない場合(例えば、要素線分L20の場合)には、平行な線分でないとの判断をする。
ステップS111において平行な線分であると判断された場合には、表示制御部16は、線幅が奇数であるか否かを判断する(S112)。なお、ここでの線幅は、階調補正を行う前の線幅である。一方、ステップS111において平行な線分であると判断されなかった場合には、ステップS117に進む。
ステップS112において奇数であると判断された場合には、表示制御部16は、X軸方向の下限値Xminを、始点を含む画素の中心点の座標のX座標値に設定する(S113)。その後、ステップS115に進む。一方、ステップS112において奇数であると判断されなかった場合には、表示制御部16は、上記下限値Xminを、始点に最も近い上記境界線分のX座標値に設定する(S114)。その後、ステップS115に進む。
ステップS115においては、線分補正部32が、始点のX座標値が下限値Xminよりも小さいか否かを判断する。
ステップS115において小さいと判断された場合には、線分補正部32は、X=Xminを満たす直線(つまり、上記仮想線L30)と処理対象となっている要素線分との交点Qの座標値(Xq,Yq)を求めるとともに、始点を(Xq+k,Yq+1)に変更する(S116)。ステップS116の後は、ステップS117に進む。
一方、ステップS115において小さいと判断されなかった場合には、ステップS117に進む。
ステップS117においては、直後の要素線分が、X軸またはY軸に平行な線分であるか否かを、当該直後の要素線分の始点と終点との座標値に基づき判断する。なお、表示制御部16は、直後の要素線分がない場合には、平行な線分でないとの判断をする。
ステップS117において平行な線分であると判断された場合には、表示制御部16は、線幅が奇数であるか否かを判断する(S118)。なお、ここでの線幅は、階調補正を行う前の線幅である。一方、ステップS117において平行な線分であると判断されなかった場合には、処理を終了する。
ステップS118において奇数であると判断された場合には、表示制御部16は、上限値Xmaxを、終点を含む画素の中心点の座標のX座標値に設定する(S119)。その後、ステップS121に進む。一方、ステップS118において奇数であると判断されなかった場合には、表示制御部16は、上限値Xmaxを、終点に最も近い上記境界線分のX座標値に設定する(S120)。その後、ステップS121に進む。
ステップS121においては、線分補正部32が、終点のX座標値が上限値Xmaxよりも大きいか否かを判断する。
ステップS121において大きいと判断された場合には、線分補正部32は、X=Xmaxを満たす直線(つまり、上記仮想線L30)と処理対象となっている要素線分との交点Qの座標値(Xq,Yq)を求めるとともに、終点を(Xq−k,Yq−1)に変更する(S122)。ステップS122の後は、処理を終了する。
例えば、要素線分L20に関しては、ステップS122により、終点の補正が行われることになる。
次に、図23のステップS103の処理の詳細について説明する。
図25は、ステップS103における処理の流れを示したフローチャートである。つまり、図25は、要素線分L21についての補正の処理の流れを示したフローチャートでもある。
まず、表示制御部16が、直前の要素線分が、斜線(つまり、X軸またはY軸に平行でない線分)であるか否かを、当該直前の要素線分の始点と終点との座標値に基づき判断する(S131)。なお、表示制御部16は、直前の要素線分がない場合には、斜線ではないとの判断をする。
ステップS131において斜線であると判断された場合には、表示制御部16は、線幅が奇数であるか否かを判断する(S132)。なお、ここでの線幅は、階調補正を行う前の線幅である。一方、ステップS131において平行な線分であると判断されなかった場合には、ステップS137に進む。
ステップS132において奇数であると判断された場合には、表示制御部16は、X軸方向の上限値Xmaxを、始点を含む画素の中心点の座標のX座標値に設定する(S133)。その後、ステップS135に進む。一方、ステップS132において奇数であると判断されなかった場合には、表示制御部16は、上限値Xmaxを、始点に最も近い上記境界線分のX座標値に設定する(S134)。その後、ステップS135に進む。
ステップS135においては、線分補正部32が、始点のX座標値が上限値Xmaxよりも大きいか否かを判断する。
ステップS135において大きいと判断された場合には、線分補正部32は、X=Xmaxを満たす直線(つまり、上記仮想線L30)と直前の要素線分との交点Qの座標値(Xq,Yq)を求めるとともに、始点のY座標値をYqに変更する(S136)。ステップS136の後は、ステップS137に進む。
一方、ステップS135において大きいと判断されなかった場合には、ステップS137に進む。
ステップS137においては、表示制御部16が、直後の要素線分が斜線であるか否かを、当該直後の要素線分の始点と終点との座標値に基づき判断する。なお、表示制御部16は、直後の要素線分がない場合(例えば、要素線分L21の場合)には、斜線でないとの判断をする。
ステップS137において斜線であると判断された場合には、表示制御部16は、線幅が奇数であるか否かを判断する(S138)。なお、ここでの線幅は、階調補正を行う前の線幅である。一方、ステップS137において斜線であると判断されなかった場合には、処理を終了する。
ステップS138において奇数であると判断された場合には、表示制御部16は、下限値Xminを、終点を含む画素の中心点の座標のX座標値に設定する(S139)。その後、ステップS141に進む。一方、ステップS138において奇数であると判断されなかった場合には、表示制御部16は、下限値Xminを、終点に最も近い上記境界線分のX座標値に設定する(S140)。その後、ステップS141に進む。
ステップS141においては、線分補正部32が、終点のX座標値が下限値Xminよりも小さいか否かを判断する。
ステップS141において小さいと判断された場合には、線分補正部32は、X=Xminを満たす直線(つまり、上記仮想線L30)と直後の要素線分との交点Qの座標値(Xq,Yq)を求めるとともに、終点のY座標値をYqに変更する(S142)。ステップS142の後は、処理を終了する。
例えば、要素線分L21に関しては、ステップS136により、始点の補正が行われることになる。
図26は、線分補正部32によって、上記のように要素線分の始点および/または終点を補正した際に表示される文字を示した図である。図26(a)はMの文字を示しており、図26(b)はWの文字を示している。なお、図26(a)および(b)において、白線(線分)は、複数の要素線分が集合して形成された線である。
例えば、図26(a)では、白丸内において、Y軸に平行な要素線分の中心線(仮想線L30に相当)から図面左側にはみ出た領域において、当該平行な要素線分の座標値と、当該線分に連続する斜線の要素線分との座標値が補正されている。
また、図26(b)では、白丸内において、Y軸に平行な要素線分の中心線(仮想線L30に相当)から図面右側にはみ出た領域において、当該平行な要素線分の座標値と、当該線分に連続する斜線の要素線分との座標値が補正されている。
図26(a)および(b)にも示すとおり、線分補正部32を用いた補正により、見た目のよい文字を表示させることが可能となる。
また、線分補正部32により要素線分を補正する構成の場合、前もって要素線分の始点および終点を補正する。それゆえ、上述したような上限値や下限値を超えているかといった判断が不要となるため、図15から図18に基づき説明した処理方法よりも、表示に要する時間を短縮することが可能となる。
ところで、上記においては、例えば図3に示すとおり、要素画素群(画素Paと画素Pbと画素Pcとからなる画素群)に隣接する画素Pdについても階調の補正を行う構成を例に挙げて説明した。しかしながら、これに限定されるものではなく、画素Pdについては階調を補正しない構成であってもよい。また、この場合、画素Paの階調を補正する代わりに、画素Pcの階調を補正する構成としてもよい。
また、上記では、RGBカラーモデルを用いた構成を例に挙げて説明したが、これに限定されるものではない。加法混色を用いるカラーモデルであればよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
情報処理装置の概略構成を示したブロック図である。 情報処理装置として機能するコンピュータシステムのハードウェア構成を表わすブロック図である。 奇数線幅の文字を補正した後の文字の一部分を示した図である。 奇数線幅の文字を補正した後の文字の一部分を示した他の図である。 偶数線幅の文字を補正した後の文字の一部分を示した図である。 偶数線幅の文字を補正した後の文字の一部分を示した他の図である。 情報処理装置における処理の流れを示したフローチャートである。 図7のステップS5の処理の詳細を示したフローチャートである。 階調補正の効果を説明するための図であり、(a)は上記階調補正を行っていない場合の文字(一部)を示した図であり、(b)は階調補正を行った場合の文字(一部)とを示した図である。 直接描画方法を行う際の処理の流れを示したフローチャートである。 間接描画方法を行う際の処理の流れの一部を示したフローチャートである。 補正の制限を行った場合に得れる記号の一部を示した図である。 斜めの要素線分と、当該要素線分に連続する要素線分とを用いて描画した文字の一部分を示した図である。 補正制限部の機能を変更することにより得られる文字の一部分を示した図である。 1つのストロークを描画する際に用いられる各要素線分を示した図である。 図7のステップS5における処理の詳細を示したフローチャートである。 図16のステップS55における、上限値と下限値との設定方法を示したフローチャートである。 上限値の設定例と、下限値の設定例とを示した図である。 線分補正部による補正前の要素線分と、補正後の要素線分とを示した図であって、(a)は補正前の要素線分を示した図であって、(b)は補正後の要素線分を示した図である。 補正前の要素線分と、補正後の要素線分とを示した図であって、(a)は補正前の要素線分を示した図であって、(b)は補正後の要素線分L20′を示した図である。 補正前の要素線分と、補正後の要素線分とを示した図であって、(a)は補正前の要素線分を示した図であって、(b)は補正後の要素線分を示した図である。 図20および図21に示した要素線分の長さを補正する際の処理の流れを示したフローチャートである。 図22のステップS92における処理の流れを示したフローチャートである。 図23のステップS102における処理の流れを示したフローチャートである。 図23のステップS103における処理の流れを示したフローチャートである。 線分補正部によって要素線分の始点および/または終点を補正した際に表示される文字を示した図であって、(a)はMの文字を示してた図であって、(b)はWの文字を示した図である。 スケルトンデータのデータ構造を示した図である。 「木」といった漢字に関するスケルトンデータをデータ構造を示した図である。 図28のスケルトンデータを座標平面上に示した図である。 線分に対して所定の線幅の持たせた例を示した図であって(a)は線幅を奇数とした場合の例を示した図であって、(b)は線幅を偶数とした場合の例を示した図である。
符号の説明
1 情報処理装置、12 記憶装置、13 第1メモリ、14 第2メモリ、15 制御部、16 表示制御部、20 距離算出部、21 階調補正部、22 表示データ生成部、30 平行判定部、31 補正制限部、32 線分補正部。

Claims (17)

  1. マトリックス状に複数の画素が配された表示画面に、記号を表示させるための情報処理装置であって、
    前記記号の骨格を示す情報を記憶する記憶手段を備え、前記骨格を示す情報は、前記骨格を構成する各骨格線の要素である要素線分を示す情報を含み、
    前記骨格を示す情報に基づいて、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有するように前記記号を表示する際に、前記複数の画素のうちの表示画素の階調を決定する表示制御手段をさらに備え、
    前記表示制御手段は、
    前記記号の前記表示画素を構成する画素群の一部であって、前記表示画素が前記線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、前記要素線分と当該要素線分と重なる画素を含んだ前記要素画素群の中心点との前記線幅の方向の距離を、各前記要素画素群について算出する距離算出手段と、
    前記中心点を含んだ前記要素画素群に含まれる一方の端部の画素の階調を、前記指定された階調と表示される前記記号の背景の階調との間の階調であって、前記距離算出手段で算出した距離に応じた階調に補正する階調補正手段と、
    前記階調補正手段での補正に基づき、前記記号を前記表示画面に表示させるための表示データを生成する表示データ生成手段とを含む、情報処理装置。
  2. 前記中心点から前記線幅の方向に前記距離だけ離れた前記要素線分上の点を、第1の点とすると、
    前記一方の端部の画素は、前記中心点に対して前記第1の点とは反対側に位置する画素である、請求項1に記載の情報処理装置。
  3. 前記階調補正手段は、前記補正を行った画素を含んだ要素画素群における他方の端部の画素と前記線幅の方向に隣接する画素であって、当該要素画素群に含まれていない画素についても、前記記号の階調と当該記号の背景の階調との間の階調であって、前記距離算出手段で算出した距離に応じた階調に補正する、請求項1または2に記載の情報処理装置。
  4. 前記階調補正手段は、
    前記一方の端部の画素については、前記距離が長くなるにつれて、前記記号の階調から前記背景の階調に近づく補正をし、
    前記隣接する画素については、前記距離が長くなるにつれて、前記背景の階調から前記記号の階調に近づく補正をする、請求項3に記載の情報処理装置。
  5. 複数の前記要素線分に基づき前記記号が表示される場合、各要素線分が、前記行方向または前記列方向と平行な直線であるか否かを、前記骨格線を示した情報に基づいて判定する平行判定手段と、
    前記平行判断手段によって平行であると判断された要素線分と重なる画素を含んだ前記要素画素群における前記一方の端部の画素と、当該要素画素群における前記他方の端部の画素と前記線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素とについては、前記階調補正手段による補正を制限する補正制限手段とを備える、請求項3または4に記載の情報処理装置。
  6. 前記行方向または前記列方向に平行な要素線分と、前記平行な要素線分と連続するとともに当該要素線分に対して傾きを有する他の要素線分とに基づき前記記号が表示される場合、前記平行な要素線分と重なる画素を含んだ各要素画素群における各中心点を通る線を第1仮想線とし、前記他の要素線分と重なる画素を含んだ前記要素画素群における中心点を通る、前記第1仮想線と垂直な線を第2仮想線とすると、
    前記第2仮想線と前記他の要素線分との交点の位置と、前記第1仮想線との位置とが所定の関係を満たす場合、当該交点と重なる画素を含んだ前記要素画素群における前記一方の端部の画素と、当該要素画素群に隣接する前記他方の端部の画素についての前記階調補正手段による階調の補正を制限する補正制限手段を備える、請求項3または4に記載の情報処理装置。
  7. 表示画面においてX軸の正方向を前記行方向とし、Y軸の負方向を前記列方向とすると、前記第1仮想線がY軸と平行であって、かつ前記他の要素線分が前記第1仮想線よりもX軸の負方向側に存在する場合、前記所定の関係は、前記交点のX座標の値が前記第1仮想線のX座標の値よりも大きいことである、請求項6に記載の情報処理装置。
  8. 表示画面においてX軸の正方向を前記行方向とし、Y軸の負方向を前記列方向とすると、前記第1仮想線がY軸と平行であって、かつ前記他の要素線分が前記第1仮想線よりもX軸の正方向側に存在する場合、前記所定の関係は、前記交点のX座標の値が前記第1仮想線のX座標の値よりも小さいことである、請求項6に記載の情報処理装置。
  9. 表示画面においてX軸の正方向を前記行方向とし、Y軸の負方向を前記列方向とすると、前記第1仮想線がX軸と平行であって、かつ、前記他の要素線分が前記第1仮想線よりもY軸の負方向側に存在する場合、前記所定の関係は、前記交点のY座標の値が前記第1仮想線のY座標の値よりも大きいことである、請求項6に記載の情報処理装置。
  10. 表示画面においてX軸の正方向を前記行方向とし、Y軸の負方向を前記列方向とすると、前記第1仮想線がX軸と平行であって、かつ、前記他の要素線分が前記第1仮想線よりもY軸の正方向側に存在する場合、前記所定の関係は、前記交点のY座標の値が前記第1仮想線のY座標の値よりも小さいことである、請求項6に記載の情報処理装置。
  11. 前記行方向または前記列方向に平行な要素線分と、前記平行な要素線分と連続するとともに当該要素線分に対して傾きを有する他の要素線分とに基づき前記記号が表示される場合、前記平行な要素線分と重なる画素を含んだ各要素画素群における各中心点を通る線を第1仮想線とすると、
    前記第1要素線分と重なる画素に前記第1仮想線が重なっており、かつ前記第1仮想線と前記第2要素線分とが交わる場合、前記第2要素線分の長さを、当該交わった点を含む画素に隣接する画素までしか達しない長さに補正するとともに、前記第1要素線分の長さを、前記交わった点を含む画素まで達する長さに補正する要素線分補正手段を備える、請求項3または4に記載の情報処理装置。
  12. 前記記号は、加法混色により色が決定されるものであり、
    前記階調補正手段は、前記加法混色の原色のそれぞれについて画素値を補正することにより前記階調の補正を行う、請求項1から4のいずれか1項に記載の情報処理装置。
  13. マトリックス状に複数の画素が配された表示画面に、記号を表示させるための情報処理装置であって、
    記憶装置に記憶された前記記号の骨格を示す情報に基づいて、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有するように前記表示画面に前記記号を表示する際に、前記複数の画素のうちの表示画素の階調を決定する表示制御手段を備え、前記骨格を示す情報は、前記骨格を構成する各骨格線の要素である要素線分を示す情報を含み、
    前記表示制御手段は、
    前記要素線分として、前記行方向または前記列方向と平行な第1要素線分と、当該第1要素線分と連続するとともに当該第1要素線分に対して傾きを有する第2要素線分とを含む前記記号を表示する際に、前記指定された階調を補正する階調補正手段を含み、
    前記階調補正手段は、前記記号の前記表示画素を構成する画素群の一部であって、前記第1要素線分と前記第2要素線分との交点と重なる画素を含んだ前記線幅の方向に連続した前記線幅分の画素群を要素画素群とすると、当該要素画素群における端部の画素に前記線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素であって、前記連続した両要素線分により形成される角度のうち優角側の領域の画素については、前記階調の補正を行わない、情報処理装置。
  14. マトリックス状に複数の画素が配された表示画面に、記号を表示させるための情報処理装置であって、
    記憶装置に記憶された前記記号の骨格を示す情報に基づいて、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有するように前記表示画面に前記記号を表示する際に、前記複数の画素のうちの表示画素の階調を決定する表示制御手段を備え、前記骨格を示す情報は、前記骨格を構成する各骨格線の要素である要素線分を示す情報を含み、
    前記表示制御手段は、
    前記要素線分として、前記行方向または前記列方向と平行な第1要素線分と、当該第1要素線分と連続するとともに当該第1要素線分に対して傾きを有する第2要素線分とを含む前記記号を表示する際に、前記指定された階調を補正する階調補正手段を含み、
    前記階調補正手段は、前記第1要素線分と前記第2要素線分との交点と重なる画素に関して前記線幅の方向に配された画素であって、前記連続した両要素線分により形成される角度のうち優角側の領域の画素については、線幅を太くするような階調の補正を行わない、情報処理装置。
  15. 前記表示制御手段は、
    前記記号の前記表示画素を構成する画素群の一部であって、前記表示画素が前記線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、前記要素線分と当該要素線分と重なる画素を含んだ前記要素画素群の中心点との前記線幅の方向の距離を、各前記要素画素群について算出する距離算出手段を、さらに備え、
    前記階調補正手段は、前記要素画素群の一方の端部の画素と、当該要素画素群に隣接する前記他方の端部の画素と前記線幅の方向に隣接する画素であるとともに当該要素画素群に含まれていない画素については、前記指定された階調と表示される前記記号の背景の階調との間の階調であって、前記距離算出手段で算出した距離に応じた階調に補正する、請求項13または14に記載の情報処理装置。
  16. 記号の骨格を示した情報に基づき、マトリックス状に画素が配された表示画面に、指定された階調および前記マトリックスの行方向または列方向のいずれかにおいて指定された線幅を有する記号を表示させる情報処理方法であって、
    前記記号の表示画素を構成する構成する画素群の一部であって、前記表示画素が前記線幅の方向に一列に並んだ線幅分の画素群を要素画素群とするとき、前記骨格を構成する骨格線の要素である要素線分と、当該要素線分と重なる表示画素を含んだ前記要素画素群における中心点との、前記線幅の方向における距離を算出する距離算出ステップと、
    前記中心点を含んだ前記要素画素群に含まれる一方の端部の画素の階調を、前記記号の階調と当該記号の背景の階調との間の階調であって、前記距離算出ステップで算出した距離に応じた階調に補正する階調補正ステップと、
    前記階調補正ステップで補正した後の記号を、前記表示画面に表示させる表示ステップとを含む、情報処理方法。
  17. 請求項16に記載の情報処理方法をコンピュータに実行させるためのプログラム。
JP2008048398A 2008-02-28 2008-02-28 情報処理装置、情報処理方法、およびプログラム Expired - Fee Related JP4361118B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008048398A JP4361118B2 (ja) 2008-02-28 2008-02-28 情報処理装置、情報処理方法、およびプログラム
PCT/JP2009/053019 WO2009107554A1 (ja) 2008-02-28 2009-02-20 情報処理装置、情報処理方法、およびプログラム
CN200980106789.6A CN101960512A (zh) 2008-02-28 2009-02-20 信息处理装置、信息处理方法、以及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008048398A JP4361118B2 (ja) 2008-02-28 2008-02-28 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2009204989A true JP2009204989A (ja) 2009-09-10
JP4361118B2 JP4361118B2 (ja) 2009-11-11

Family

ID=41015951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008048398A Expired - Fee Related JP4361118B2 (ja) 2008-02-28 2008-02-28 情報処理装置、情報処理方法、およびプログラム

Country Status (3)

Country Link
JP (1) JP4361118B2 (ja)
CN (1) CN101960512A (ja)
WO (1) WO2009107554A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013069058A1 (ja) * 2011-11-09 2013-05-16 三菱電機株式会社 描画装置及び描画プログラム
DE112012006274B4 (de) 2012-04-27 2018-08-23 Mitsubishi Electric Corporation Schriftzeichen-Zeichnungsvorrichtung und Schriftzeichen-Zeichnungsverfahren

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5255132B2 (ja) * 2012-01-18 2013-08-07 シャープ株式会社 多階調文字の表示方法、多階調文字の表示装置、多階調文字の表示プログラム、多階調文字の表示装置を備えたテレビ受像機、及び多階調文字の表示装置を備えた携帯機器
US10157582B2 (en) 2014-08-28 2018-12-18 Nec Display Solutions, Ltd. Display device, gradation correction map generation device, gradation correction map generation method, and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0720845A (ja) * 1993-06-18 1995-01-24 Nec Home Electron Ltd 多階調文字生成装置
JPH08138067A (ja) * 1994-11-15 1996-05-31 Fujitsu Ltd 線分アンチエイリアシング装置
JP4059438B2 (ja) * 2003-07-02 2008-03-12 シャープ株式会社 図形または文字の表示装置、表示方法、表示プログラムおよび表示プログラムを記録した記録媒体
JP4079268B2 (ja) * 2003-07-03 2008-04-23 シャープ株式会社 文字表示装置、文字表示方法、文字表示プログラムおよび可読記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013069058A1 (ja) * 2011-11-09 2013-05-16 三菱電機株式会社 描画装置及び描画プログラム
JPWO2013069058A1 (ja) * 2011-11-09 2015-04-02 三菱電機株式会社 描画装置及び描画プログラム
US9305340B2 (en) 2011-11-09 2016-04-05 Mitsubishi Electric Corporation Drawing device and drawing program
DE112012006274B4 (de) 2012-04-27 2018-08-23 Mitsubishi Electric Corporation Schriftzeichen-Zeichnungsvorrichtung und Schriftzeichen-Zeichnungsverfahren

Also Published As

Publication number Publication date
JP4361118B2 (ja) 2009-11-11
WO2009107554A1 (ja) 2009-09-03
CN101960512A (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
US20180166003A1 (en) Image processing method, apparatus, and display device
JP2003036048A (ja) 表示装置、表示方法及び表示制御プログラムを記録した記録媒体
CN110502205B (zh) 图片显示边缘处理方法、装置、电子设备和可读存储介质
US6437793B1 (en) System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements
JP3833212B2 (ja) 画像処理装置、画像処理プログラムおよび可読記録媒体
JP4361118B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US11847714B2 (en) Information processing device, information processing method, and information processing program
JP4370438B2 (ja) ベクター画像描画装置、ベクター画像描画方法およびプログラム
JP4719603B2 (ja) 描画装置及び破線描画方法
CN115375815A (zh) 阴影渲染方法、装置、电子设备及存储介质
JP6980913B2 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム
US7660012B2 (en) Gradation image forming apparatus and gradation image forming method
JP4079268B2 (ja) 文字表示装置、文字表示方法、文字表示プログラムおよび可読記録媒体
JP6802928B2 (ja) 画像生成装置および画像生成方法
EP0062669A1 (en) GRAPHICS AND TEXT IMAGE GENERATOR FOR A GRID SCAN DISPLAY.
US6570562B1 (en) Method for drawing patterned lines in a system supporting off-screen graphics
TWI322980B (en) Character/graphic element displaying apparatus rogram and recording medium
JP2003187260A (ja) 描画処理プログラム、描画処理プログラムを記録した記録媒体、描画処理装置及び方法
CN105468312B (zh) 一种图像显示方法及装置
JPH1021377A (ja) 画像処理装置
JP4666480B2 (ja) 線描画装置
JP2939159B2 (ja) 手書き文字の位置揃え処理装置および方法
JP2004078994A (ja) 描画方法
JP4595624B2 (ja) 額縁ボーダー生成装置及び方法。
CN117974428A (zh) 井下车载终端地图瓦片处理方法、车载终端、设备及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090623

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130821

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees