はじめに、本発明による文字の表示原理を説明する。この文字の表示原理は、後述されるすべての実施の形態に共通である。
図4は、本発明の字表示装置に使用可能な表示デバイス10(図15A〜図15E)の表示面400を模式的に示す。表示デバイス10は、X方向およびY方向に配列された複数のピクセル12を有している。複数のピクセル12のそれぞれは、X方向に配列された複数のサブピクセルを有している。図4に示される例では、1つのピクセル12は、3個のサブピクセル14R、14Gおよび14Bを有している。
サブピクセル14Rは、R(赤)を発色するように色要素Rに予め割り当てられている。サブピクセル14Gは、G(緑)を発色するように色要素Gに予め割り当てられている。サブピクセル14Bは、B(青)を発色するように色要素Bに予め割り当てられている。
サブピクセル14R、14Gおよび14Bの輝度は、例えば、0〜255の値によって表される。サブピクセル14R、14Gおよび14Bのそれぞれが、輝度レベルを示す0〜255の値のいずれかをとることによって、約1670万(=256×256×256)色を表示することが可能である。
上述したドットフォントまたはグレイスケールフォントを利用して文字を表示する従来技術では、文字の1ドットは表示装置の1ピクセルに対応づけられていた。これに対し、表示デバイス10に表示される文字の1ドットは、表示デバイス10のピクセル12ではなく、ピクセル12に含まれるサブピクセル14R、14Gおよび14Bの1つに対応づけられている。これにより、従来と同一機種の表示デバイスを用いる場合でも、その表示デバイスの解像度を擬似的に3倍に向上させることが可能になる。その結果、斜線や曲線などの文字の一部が滑らかに表示されるので文字の表示品位を飛躍的に向上させることが可能になる。
ただし、ただ単に文字の表示単位をサブピクセル単位としただけでは、表示される文字は人間の目には黒く見えず色の縞(カラーノイズ)が見える。X方向に隣接するサブピクセル14R、14Gおよび14Bには、互いに異なる色要素が予め割り当てられているからである。表示される文字が人間の目には黒く見えないことを防止するために、本発明では、文字の基本部分に対応するサブピクセルに隣接するサブピクセルの色要素レベルが適切に制御される。これにより、文字に着色されている黒以外の色を人間の目に目立たなくすることができる。
このように、1つのピクセル12に含まれるサブピクセル14R、14Gおよび14Bに対応する複数の色要素(R、G、B)をそれぞれ独立に制御し、かつ、文字の基本部分に対応するサブピクセルに隣接するサブピクセルの色要素レベルを適切に制御することにより、文字の輪郭だけでなく文字そのものを擬似的な黒色で高精細に表示することが可能になる。ここで、「擬似的な黒色」とは、色彩学的には厳密には黒色ではないが、人間の目には黒色に見えるという意味である。
なお、本発明は、黒色の文字を表示する場合に限定されない。本発明の表示原理を用いて、無彩色の文字を表示することも可能である。例えば、本発明の表示原理を用いて、灰色の文字を表示する場合にも、上述した効果と同様の効果が得られる。灰色の文字を表示する場合には、例えば、図9に示される輝度テーブル92において定義される色要素レベルと輝度レベルとの関係を、色要素レベル5〜0が輝度レベル0〜127に対応するように変更すればよい。
図5は、図1に示される斜線102を表示デバイス10の6ピクセル×12ピクセルの表示面400に表示した例を示す。図5に示される例では、サブピクセル14R、14Gおよび14Bの色要素レベルは、レベル3〜レベル0の4段階に制御される。図5において、レベル3に対応する矩形は輝度レベルが0のサブピクセルを示し、レベル2に対応する矩形は輝度レベルが80のサブピクセルを示し、レベル1に対応する矩形は輝度レベルが180のサブピクセルを示し、レベル0に対応する矩形は輝度レベルが255のサブピクセルを示す。
ここで、文字の基本部分に対応するサブピクセルの色要素レベルはレベル3(最大の色要素レベル)に設定される。文字の基本部分に対応するサブピクセルにX方向に隣接するサブピクセルの色要素レベルはレベル2またはレベル1に設定される。
図6は、図1に示される斜線102を図5に示される斜線より細く表示デバイス10の表示面400に表示した例を示す。このような表示は、文字の基本部分の太さ(すなわち、レベル3に対応する部分の太さ)を2サブピクセルから1サブピクセルにすることにより達成される。
図7は、図1に示される斜線102を図5に示される斜線より太く表示デバイス10の表示面400に表示した例を示す。このような表示は、文字の基本部分の太さ(すなわち、レベル3に対応する部分の太さ)を2サブピクセルから3サブピクセルにすることにより達成される。
このように、文字の基本部分の太さをサブピクセル単位で調整することにより、従来に比べて文字の太さの制御をより細かな単位で行うことが可能になる。
図8は、本発明による文字の表示原理に基づいて実際に設計された、ひらがなの「い」のフォントデータを示す。図8に示される例では、サブピクセルの色要素レベルは、レベル5〜レベル0の6段階に制御される。サブピクセルの色要素レベルの数を増やすことにより、文字に着色されている黒以外の色を人間の目により目立たなくすることができる。
図9は、サブピクセルの色要素レベル(レベル5〜レベル0)とサブピクセルの輝度レベルとの関係を定義する輝度テーブル92を示す。輝度テーブル92をメモリに格納しておくことにより、サブピクセルの色要素レベルを輝度レベルに容易に変換することができる。輝度テーブル92では、サブピクセルの6段階の色要素レベル(レベル5〜レベル0)は、輝度レベル0〜255にほぼ等間隔で割り当てられている。
図10は、サブピクセルの色要素レベル(レベル5〜レベル0)とサブピクセルの輝度レベルとの関係を定義する輝度テーブル94を示す。輝度テーブル94では、サブピクセルの色要素レベルのうちレベル5〜レベル3に対応する輝度レベルが輝度レベル0の側に偏っており、サブピクセルの色要素レベルのうちレベル2〜レベル0に対応する輝度レベルが輝度レベル255の側に偏っている。図10に示されるように輝度テーブル94を定義することにより、図9に示される輝度テーブル92を使用する場合に比較して、文字の太さを見かけ上細く表示することができる。すなわち、人間の目には文字が引き締まって見える。
図11は、サブピクセルの色要素レベル(レベル5〜レベル0)とサブピクセルの輝度レベルとの関係を定義する輝度テーブル96を示す。輝度テーブル96は、表示デバイス10がカラー液晶表示デバイスである場合に好適に使用される。輝度テーブル96を使用することにより、色要素Bのサブピクセルの輝度レベルが低い場合において、色要素Bのサブピクセルの輝度が実際より暗くなってしまうことを補正することができる。このように、表示デバイス10の表示特性に適合した輝度テーブルを使用することにより、文字に着色されている黒以外の色を人間の目により目立たなくすることができる。
さらに、本発明による文字の表示原理によれば、文字の間隔をサブピクセル単位で調整することができる。従って、文字の間隔をピクセル単位で調整していた従来の方法に比べて、文字の間隔をより細かく制御することができる。従って、本発明による文字の表示原理は、文字の間隔を可変に制御する必要のあるプロポーショナルフォントに好適に適用され得る。本発明による文字の表示原理をプロポーショナルフォントに適用することより美しい文字組みを実現することができる。
図12は、本発明による文字の表示原理に基づいて実際に設計された、漢字の「意」のフォントデータを示す。漢字の「意」のように横線の多い文字は、表示デバイス10の表示面400を90度だけ回転させて横向きに使用することにより、表示デバイス10の表示面400を縦向きに使用する場合に比較して、より高品位に表示され得る。
図13は、理想的な斜線104を表示デバイス10の6ピクセル×12ピクセルの表示面400に表示する場合において、その理想的な斜線104の最上部と最下部とがサブピクセルの一部に重なる例を示す。このような場合において、理想的な斜線104の最上部と最下部には、特定の処理が施されることが好ましい。以下、その特定の処理を説明する。
例えば、理想的な斜線の最上部または最下部とサブピクセルとが重なり合う面積に応じて、そのサブピクセルの色要素レベルが決定される。例えば、サブピクセルの色要素レベルがレベル3〜レベル0の4段階に制御される場合には、重なり合う面積がサブピクセルの面積の80%以上である場合にはサブピクセルの色要素レベルはレベル3に設定され、重なり合う面積がサブピクセルの面積の50%以上80%未満である場合にはサブピクセルの色要素レベルはレベル2に設定され、重なり合う面積がサブピクセルの面積の20%以上50%未満である場合にはサブピクセルの色要素レベルはレベル1に設定され、重なり合う面積がサブピクセルの面積の20%未満である場合にはサブピクセルの色要素レベルはレベル0に設定される。
図13において、理想的な斜線とサブピクセル14Aとが重なり合う面積はサブピクセル14Aの面積の50%以上80%未満であり、理想的な斜線とサブピクセル14Bとが重なり合う面積はサブピクセル14Bの面積の50%以上80%未満である。従って、サブピクセル14Aの色要素レベルはレベル2に設定され、サブピクセル14Bの色要素レベルはレベル2に設定される。
さらに、サブピクセル14AにX方向に沿って隣接するサブピクセル14AAの色要素レベルはレベル1に設定され、サブピクセル14BにX方向に沿って隣接するサブピクセル14BBの色要素レベルはレベル1に設定される。このように、理想的な斜線の端部に対応するサブピクセル14A、14Bに隣接するサブピクセル14AA、14BBの色要素レベルは、サブピクセル14A、14Bの色要素レベルを補完するように設定される。
図13において、理想的な斜線とサブピクセル14Cとが重なり合う面積はサブピクセル14Cの面積の20%以上50%未満であり、理想的な斜線とサブピクセル14Dとが重なり合う面積はサブピクセル14Dの面積の20%以上50%未満である。従って、サブピクセル14Cの色要素レベルはレベル1に設定され、サブピクセル14Dの色要素レベルはレベル1に設定される。
この場合には、サブピクセル14CにX方向に沿って隣接するサブピクセル14CCの色要素レベルはレベル0のままであり、サブピクセル14DにX方向に沿って隣接するサブピクセル14DDの色要素レベルはレベル0のままである。このように、理想的な斜線の端部に対応するサブピクセル14C、14Dの色要素レベルがレベル1である場合には、それらに隣接するサブピクセル14CC、14DDの色要素レベルはサブピクセル14C、14Dの色要素レベルを補完することなくレベル0のままにされる。
図14は、図13に示される理想的な斜線104を表示デバイス10の6ピクセル×12ピクセルの表示面400に表示した例を示す。
なお、表示デバイス10としては、例えば、ストライプ型のカラー液晶表示デバイスが使用され得る。あるいは、表示デバイス10としてデルタ型のカラー液晶表示デバイスを使用してもよい。デルタ型のカラー液晶デバイスを使用する場合でも、1つのピクセルに対応するR、G、Bの各サブピクセルを個別に制御することにより、ストライプ型のカラー液晶デバイスと同様の効果を得ることができる。カラー液晶表示デバイスとしては、パソコンなどに多く用いられている透過型の液晶表示デバイスの他、反射型やリアプロ型の液晶表示デバイスが使用され得る。しかし、表示デバイス10は、カラー液晶表示デバイスに限定されない。表示デバイス10として、X方向およびY方向に配列された複数のピクセルを有する任意のカラー表示装置(いわゆるXYマトリックス表示装置)が使用され得る。
さらに、1つのピクセル12に含まれるサブピクセルの数は3には限定されない。1つのピクセル12には、所定の方向に配列された2以上のサブピクセルが含まれ得る。例えば、N(N≧2)個の色要素を用いて色を表す場合には、1つのピクセル12にN個のサブピクセルが含まれ得る。
さらに、サブピクセル14R、14Gおよび14Bの配列順も図4に示される配列順には限定されない。例えば、X方向に沿ってB、G、Rの順にサブピクセルを配列してもよい。さらに、サブピクセル14R、14Gおよび14Bの配列方向も図4に示される方向には限定されない。例えば、任意の方向に沿ってサブピクセル14R、14Gおよび14Bを配列してもよい。
さらに、本発明に適用可能な色要素はR(赤)、G(緑)、B(青)に限定されない。例えば、色要素として、C(シアン)、Y(イエロー)、M(マゼンダ)を使用することもできる。
以下、図面を参照して、本発明の実施の形態を説明する。
(実施の形態1)
図15Aは、本発明の実施の形態1の文字表示装置1aの構成を示す。文字表示装置1aは、例えば、パーソナルコンピュータであり得る。パーソナルコンピュータとしては、デスクトップ型またはラップトップ型などの任意のタイプのコンピュータが使用され得る。あるいは、文字表示装置1aは、ワードプロセッサであってもよい。
さらに、文字表示装置1aは、カラー表示が可能な表示デバイスを備えた電子機器や情報機器などの任意の装置であり得る。例えば、文字表示装置1aは、カラー液晶表示デバイスを備えた電子機器や、携帯情報ツールである携帯情報端末や、PHSを含む携帯電話機や、一般の電話機/FAXなどの通信機器などであってもよい。
文字表示装置1aは、カラー表示可能な表示デバイス10と、表示デバイス10に含まれる複数のサブピクセルに対応する複数の色要素をそれぞれ独立に制御する制御部20とを含む。制御部20には、表示デバイス10と、入力デバイス30と、補助記憶装置40とが接続されている。
入力デバイス30は、表示デバイス10に表示すべき文字を表す文字情報を制御部20に入力するために使用される。文字情報は、例えば、文字を識別する文字コードと文字の大きさを示す文字サイズとを含む。入力デバイス30としては、文字コードおよび文字の大きさを入力することが可能な任意のタイプの入力デバイスが使用され得る。例えば、キーボードやマウスやペン入力装置などの入力デバイスが入力デバイス30として好適に使用され得る。
補助記憶装置40には、文字表示プログラム41aと文字表示プログラム41aを実行するために必要なデータ42とが格納されている。データ42は、文字の輪郭を定義する文字輪郭情報42aと色要素レベル情報42bと輝度テーブル42cとを含む。輝度テーブル42cとしては、例えば、輝度テーブル92(図9)、輝度テーブル94(図10)または輝度テーブル96(図11)が使用され得る。補助記憶装置40としては、文字表示プログラム41aおよびデータ42を格納することが可能な任意のタイプの記憶装置が使用され得る。補助記憶装置40において、文字表示プログラム41aおよびデータ42を格納する記録媒体としては任意の記録媒体が使用され得る。例えば、ハードディスク、CD−ROM、MO、フロッピー(登録商標)ディスク、MD、DVD、ICカード、光カードなどの記録媒体が好適に使用され得る。
なお、文字表示プログラム41aおよびデータ42は、補助記憶装置40における記録媒体に格納されることに限定されない。例えば、文字表示プログラム41aおよびデータ42は、主メモリ22に格納されてもよいし、ROM(図示せず)に格納されてもよい。ROMは、例えば、マスクROM、EPROM、EEPROM、フラッシュROMなどであり得る。このROM方式の場合には、そのROMを交換するだけで色々な処理のバリエーションを容易に実現することができる。例えば、ROM方式は、携帯型の端末装置や携帯電話機などに好適に適用され得る。
さらに、文字表示プログラム41aおよびデータ42を格納する記録媒体は、上記ディスクやカードなどの記憶装置や半導体メモリなどのようにプログラムやデータを固定的に担持する媒体以外に、通信ネットワークにおいてプログラムやデータを搬送するために使用される通信媒体のようにプログラムやデータを流動的に担持する媒体であってもよい。文字表示装置1aがインターネットを含む通信回線に接続するための手段を備えている場合には、その通信回線から文字表示プログラム41aおよびデータ42をダウンロードすることができる。この場合、ダウンロードに必要なローダープログラムは、ROM(図示せず)に予め格納されていてもよいし、補助記憶装置40から制御部20にインストールされてもよい。
後述される文字表示プログラム41b〜41dも、文字表示プログラム41aと同様に取り扱われる。
制御部20は、CPU21と主メモリ22とを含む。
CPU21は、文字表示装置1aの全体を制御および監視するとともに、補助記憶装置40に格納されている文字表示プログラム41aを実行する。
主メモリ22は、入力デバイス30から入力されたデータや表示デバイス10に表示するためのデータや文字表示プログラム41aを実行するのに必要なデータを一時的に格納する。主メモリ22は、CPU21によってアクセスされる。
CPU21は、主メモリ22に格納された各種のデータに基づいて文字表示プログラム41aを実行することにより、文字パターンを生成する。生成された文字パターンは、主メモリ22に一旦格納された後、表示デバイス10に出力される。文字パターンが表示デバイス10に出力されるタイミングは、CPU21によって制御される。
図16は、補助記憶装置40に格納されている文字輪郭情報42aの構造を示す。
文字輪郭情報42aは、文字の種類を区別するための文字コード301と、1つの文字を構成するストロークの数を示すストローク数302と、各ストロークに対応するストローク情報303とを含む。
ストローク情報303は、ストロークの種類を区別するためのストロークコード304と、1つのストロークを構成する輪郭点の数を示す輪郭点数305と、1つのストロークを構成する輪郭点の座標を示す輪郭点座標データ308へのポインタ306とを含む。ポインタ306は、補助記憶装置40において輪郭点座標データ308が記憶されている位置を指している。ストローク情報303を参照することにより、1つのストロークを構成する輪郭点の座標を得ることができる。ここで、輪郭点座標データ308において、1つのストロークを構成する輪郭点の座標は反時計周りに並んでいるものとする。
ストローク情報303の数は、ストローク数302に等しい。従って、ストローク数302がN(Nは1以上の整数)である場合には、文字輪郭情報42aは、ストロークコード1からストロークコードNに対応してN個のストローク情報303を含む。
文字の輪郭形状を表す方法としては、(1)文字の輪郭線を直線で近似する方法、(2)文字の輪郭線を直線および円弧の組み合わせで近似する方法、(3)文字の輪郭線を直線および曲線(例えば、スプライン曲線など)の組み合わせで近似する方法などが挙げられる。
文字輪郭情報42aは、上記(1)〜(3)の方法のいずれか1つに従って得られる複数の輪郭点の座標を輪郭点座標データ308として含み得る。文字の品位およびデータ容量を考慮すると、文字輪郭情報42aは、上記(3)の方法に基づく輪郭点座標データ308を含むことが好ましい。
図17Aは、補助記憶装置40に格納されている色要素レベル情報42bの構造を示す。
色要素レベル情報42bは、色要素レベル情報42bに含まれるサブピクセルセット705の数を示すサブピクセルセット数701と、複数のサブピクセルセット705とを含む。複数のサブピクセルセット705のそれぞれは、後述されるように、文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルを設定するために使用される。
サブピクセルセット705は、サブピクセルセット705の種類を区別するためのサブピクセルセットコード702と、サブピクセルセット705に含まれるサブピクセルの数を示すサブピクセル数703と、サブピクセル1〜サブピクセルMに対応する複数の色要素レベル704とを含む。
図17Bは、色要素レベル情報42bの一例を示す。図17Bにおいて、矩形の中に示される数字は、その矩形に対応する属性の値を示す。
図18は、文字表示プログラム41aの処理手順を示す。文字表示プログラム41aは、CPU21によって実行される。以下、文字表示プログラム41aの処理手順を各ステップごとに説明する。
ステップS1:入力デバイス30から、文字コードと文字サイズとが入力される。例えば、ひらがなの「い」を表示デバイス10に表示する場合には、文字コードとして0404番(JIS区点コード)が入力される。このような入力は、例えば、ユーザがキーボードの「い」のキーを押下することによってなされる。文字サイズは、例えば、表示される文字の横方向のドット数と縦方向のドット数とによって表現される。文字サイズは、例えば、13ドット×12ドットである。
ステップS2:入力された文字コードに対応する1文字分の文字輪郭情報42aが、主メモリ22に格納される。
ステップS3:文字輪郭情報42aに含まれる1ストローク分の輪郭点座標データ308に基づいて、文字の理想的な輪郭線が算出される。文字の理想的な輪郭線は、公知の方法に従って直線または曲線を用いて近似される。
ステップS4:入力された文字サイズに従って、ステップS3において算出された文字の理想的な輪郭線がスケーリングされる。このスケーリング処理により、輪郭点座標データ308のための予め決められた座標系が表示デバイス10のための実ピクセル座標系に変換される。
ステップS5:ステップS4においてスケーリングされた文字の理想的な輪郭線の内部と表示デバイス10のサブピクセルとが重なり合う面積に応じて、文字の基本部分が検出される。文字の基本部分とは、文字の芯を表す部分である。例えば、スケーリングされた文字の理想的な輪郭線の内部と表示デバイス10のサブピクセルとが重なり合う面積が所定の基準面積以上である場合には、そのサブピクセルは文字の基本部分に対応すると定義される。所定の基準面積の値は、固定値であってもよいし、入力デバイス30からの入力に応じて変動し得る可変値であってもよい。
表示デバイス10のすべてのサブピクセルについて、スケーリングされた文字の理想的な輪郭線の内部と重なり合う面積を算出することにより、表示デバイス10のどのサブピクセルが文字の基本部分に対応するかが決定される。
ステップS6:文字の基本部分に対応するサブピクセルの色要素レベルが、最大の色要素レベルに設定される。例えば、サブピクセルの色要素レベルがレベル5〜レベル0の6段階で表される場合には、文字の基本部分に対応するサブピクセルの色要素レベルはレベル5に設定される。
ステップS7:文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルが所定のルールに従ってレベル4〜レベル1のいずれかに設定される。その所定のルールの詳細は、図19を参照して後述される。
ステップS8:1文字に含まれるすべてのストロークについてステップS3〜ステップS7の処理が完了したか否かが判定される。もし「No」であれば処理はステップS3に戻る。もし「Yes」であれば処理はステップS9に進む。
ステップS9:サブピクセルの色要素レベルが輝度レベルに変換される。このような変換は、例えば、補助記憶装置40に格納されている輝度テーブル42cを用いて行われる。
ステップS10:サブピクセルの輝度レベルを示す輝度データが表示デバイス10に転送される。これにより、表示デバイス10の輝度レベルがサブピクセル単位に制御される。
図19は、文字の基本部分に対応するサブピクセルの近傍に配置されているサブピクセルの色要素レベルがどのように決定されるかを示す。
まず、輪郭点座標データ308における座標の並び方から文字の理想的な輪郭線の向き(以下、輪郭線方向という)が決定される。図19に示される例では、輪郭線方向は矢印A1で示されている。輪郭線方向に沿って、文字の基本部分に対応するサブピクセルBP1〜BP12が配置されている。
図19において、文字の基本部分に対応する1つのサブピクセルBPkに注目する。ここで、k=1、2、・・・、11である。文字の基本部分に対応するサブピクセルBPk+1であって、輪郭線方向に沿って注目サブピクセルBPkの次に配置されるサブピクセルBPk+1に隣接するサブピクセルNPk+1の色要素レベルは、注目サブピクセルBPkとサブピクセルBPk+1との位置関係に応じて決定される。
注目サブピクセルBPkの位置(座標)とサブピクセルBPk+1の位置(座標)とが1つのピクセル内のサブピクセルの配列方向において一致する場合には、サブピクセルNPk+1の色要素レベルはレベル3に設定され、そうでない場合には、サブピクセルNPk+1の色要素レベルはレベル4に設定される。このようなサブピクセルの位置の判定処理および色要素レベルの設定処理は、CPU21によって実行される。
図19に示される例では、k=1からk=11のそれぞれについて、注目サブピクセルBPkとサブピクセルBPk+1との位置関係を判定することにより、サブピクセルNPk+1の色要素レベルが決定される。なお、サブピクセルNP1の色要素レベルは任意のレベル(例えば、レベル3)に設定される。
このようにして、文字の基本部分に対応するサブピクセルBPkに隣接するサブピクセルNPkの色要素レベルが決定される。図19において、サブピクセルを表す矩形の中の数字は、各サブピクセルに対して設定された色要素レベルを示す。
サブピクセルNPkに隣接するサブピクセルの色要素レベルは、色要素レベル情報42b(図17A)を用いて決定される。すなわち、色要素レベル情報42bに含まれる複数のサブピクセルセット705のうちサブピクセルNBkの色要素レベルに一致する色要素レベルを最大の色要素レベルとして有するサブピクセルセット705が選択され、その選択されたサブピクセルセット705に定義されるサブピクセル数703の数だけ輪郭線の外側方向にサブピクセルの色要素レベルが決定される。
例えば、サブピクセルNPkの色要素レベルがレベル3に設定された場合には、色要素レベル情報42bからサブピクセル1の色要素レベル704として値3を有するサブピクセルセット705が選択される。選択されたサブピクセルセット705に定義されているサブピクセル2の色要素レベル704の値2に従って、サブピクセルNPkに隣接するサブピクセルN’Pkの色要素レベルはレベル2に設定される。さらに、選択されたサブピクセルセット705に定義されているサブピクセル3の色要素レベル704の値1に従って、サブピクセルN’Pkに隣接するサブピクセルN”Pkの色要素レベルはレベル1に設定される。
このようにして、文字の基本部分に対応するサブピクセルBPkの近傍に配置されるサブピクセルNPk、N’Pk、N”Pkの色要素レベルが決定される。
なお、色要素レベル情報42bの内容を書き換えることにより、文字の基本部分に対応するサブピクセルBPkの近傍に配置されるサブピクセルNPk、N’Pk、N”Pkの色要素レベルを任意のレベルに設定することが可能である。
図20は、本発明による文字の表示原理に基づいて実際に設計されたひらがなの「い」のフォントデータと、ひらがなの「い」の理想的な輪郭線とを重ね合わせて表示したものである。図20において、矢印は輪郭線方向を示す。図19を参照して説明したように、輪郭線方向に沿って、文字の基本部分に対応するサブピクセルの近傍に配置されているサブピクセルの色要素レベルを設定することにより、その文字のフォントデータが得られる。
なお、制御部20は、サブピクセルの配列を90度だけ回転させた状態で文字を表示する機能を有していてもよい。サブピクセルの配列を90度だけ回転させた状態で文字を表示するか否かは適宜選択される。表示デバイス10におけるサブピクセルの構成に合わせて、サブピクセルの配列を90度だけ回転させた状態で文字を表示することにより、例えば、図12に示されるように漢字の「意」を表示することができる。このように、ストライプ型の液晶の表示方向を横向きにすることにより、日本語に適した文字表示装置を実現することができる。
(実施の形態2)
図21は、本発明の実施の形態2の文字表示装置1bに使用可能な表示デバイス10の表示面400を模式的に示す。表示デバイス10は、X方向およびY方向に配列された複数のピクセル12を有している。複数のピクセル12のそれぞれは、X方向に配列された複数のサブピクセルを有している。図21に示される例では、1つのピクセル12は、3個のサブピクセル14R、14Gおよび14Bを有している。
サブピクセル14Rは、R(赤)を発色するように色要素Rに予め割り当てられている。サブピクセル14Gは、G(緑)を発色するように色要素Gに予め割り当てられている。サブピクセル14Bは、B(青)を発色するように色要素Bに予め割り当てられている。
サブピクセル14R、14Gおよび14Bの輝度は、例えば、0〜255の値によって表される。サブピクセル14R、14Gおよび14Bのそれぞれが、輝度レベルを示す0〜255の値のいずれかをとることによって、約1670万(=256×256×256)色を表示することが可能である。
図15Bは、本発明の実施の形態2の文字表示装置1bの構成を示す。
図15Bにおいて、図15Aに示される構成要素と同一の構成要素には同一の参照符号を付し、その説明を省略する。
補助記憶装置40には、文字表示プログラム41bと文字表示プログラム41bを実行するために必要なデータ42とが格納されている。データ42は、文字の骨格形状を定義するスケルトンデータ42dと補正テーブル42eと輝度テーブル42cとを含む。補助記憶装置40としては、文字表示プログラム41bおよびデータ42を格納することが可能な任意のタイプの記憶装置が使用され得る。
図22は、補助記憶装置40に格納されているスケルトンデータ42dの構造の例を示す。
スケルトンデータ42dは、文字の骨格形状を表す。スケルトンデータ42dは、文字の種類を区別するための文字コード2301と、1つの文字を構成するストロークの数M(Mは1以上の整数)を示すストローク数2302と、各ストロークに対応するストローク情報2303とを含む。
ストローク情報2303は、ストロークを区別するためのストローク番号2304と、ストロークを構成する複数の点の数N(Nは1以上の整数)を示す点数2305と、ストロークの線タイプを示す線タイプ2306と、ストロークを構成する複数の点の座標をそれぞれ示す複数の座標データ2307とを含む。座標データ2307の数は、点数2305に等しい為、N個の座標データがひとつのストロークを構成する座標として格納されていることになる。
ストローク情報2303の数は、ストローク数2302に等しい為、スケルトンデータ42dは、ストロークコード1からストロークコードMに対応してM個のストローク情報2303を含む。
線タイプ2306としては、例えば、「直線」という線タイプと「曲線」という線タイプとが使用される。線タイプ2306が「直線」である場合には、ストロークを構成する複数の点が直線によって近似される。線タイプ2306が「曲線」である場合には、ストロークを構成する点が曲線(例えば、スプライン曲線)によって近似される。
図23は、漢字の「木」の骨格形状を表すスケルトンデータ42dの例を示す。漢字の「木」の骨格形状を表すスケルトンデータ42dは、ストロークコード1〜4に対応する4個のストローク#1〜ストローク#4を有している。
ストローク#1は、始点(0,192)と終点(255,192)とを結ぶ直線として定義されている。ストローク#2は、始点(128,255)と終点(128,0)とを結ぶ直線として定義されている。ストローク#3は、5点(121,192)、(97,141)、(72,103)、(41,69)、(4,42)を曲線によって近似することによって得られる。ストローク#4は、5点(135,192)、(156,146)、(182,107)、(213,72)、(251,42)を曲線によって近似することによって得られる。
図24は、漢字の「木」の骨格形状を表すスケルトンデータ42dを座標平面上に表示した例を示す。なお、図24に示される例では、簡単のため、ストローク#3、#4は直線によって近似されている。
図25は、補助記憶装置40に格納される補正テーブル42eの一例としての補正テーブル2060を示す。補正テーブル2060は、補正パターン1と補正パターン2とを含む。補正パターン1は、文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルを文字の基本部分に近い側から遠い側に向かって「5」、「2」、「1」の順に設定することを示す。補正パターン2は、文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルを文字の基本部分に近い側から遠い側に向かって「4」、「2」、「1」の順に設定することを示す。補正パターン1と補正パターン2とをどのように使い分けるかは、図30(a)、(b)および図31(a)、(b)を参照して後述される。
このように、補正パターン1および補正パターン2は、文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルを設定するために使用される。
なお、補正テーブル2060に含まれる補正パターンの数は2に限定されない。補正テーブル2060は、2以上の任意の数の補正パターンを有し得る。また、各補正パターンに含まれる色要素レベルの数は3に限定されない。各補正パターンは、1以上の任意の数の色要素レベルを有し得る。
図26は、補助記憶装置40に格納される輝度テーブル42cの一例としての輝度テーブル2070を示す。輝度テーブル2070は、サブピクセルの色要素レベルとサブピクセルの輝度レベルとの関係を定義する。輝度テーブル2070を補助記憶装置40に格納しておくことにより、サブピクセルの色要素レベルを輝度レベルに容易に変換することができる。輝度テーブル2070では、サブピクセルの8段階の色要素レベル(レベル7〜レベル0)は、輝度レベル0〜255にほぼ等間隔で割り当てられている。
図27は、輝度テーブル42cの他の例としての輝度テーブル2080を示す。輝度テーブル2080は、サブピクセルの色要素レベルとサブピクセルの輝度レベルとの関係を定義する。輝度テーブル2080では、サブピクセルの色要素レベルのうちレベル7〜レベル4に対応する輝度レベルが輝度レベル0の側に偏っており、サブピクセルの色要素レベルのうちレベル3〜レベル0に対応する輝度レベルが輝度レベル255の側に偏っている。図27に示されるように輝度テーブル2080を定義することにより、図26に示される輝度テーブル2070を使用する場合に比較して、文字の太さを見かけ上細く表示することができる。すなわち、人間の目には文字が引き締まって見える。
図28は、輝度テーブル42cの他の例としての輝度テーブル2090を示す。輝度テーブル2090は、サブピクセルの色要素レベルとサブピクセルの輝度レベルとの関係を定義する。輝度テーブル2090は、表示デバイス10がカラー液晶表示デバイスである場合に好適に使用される。輝度テーブル2090を使用することにより、色要素Bのサブピクセルの輝度レベルが低い場合において、色要素Bのサブピクセルの輝度が実際より暗くなってしまうことを補正することができる。このように、表示デバイス10の表示特性に適合した輝度テーブルを使用することにより、文字に着色されている黒以外の色を人間の目により目立たなくすることができる。
図29Aは、文字表示プログラム41bの処理手順を示す。文字表示プログラム41bは、CPU21によって実行される。以下、文字表示プログラム41bの処理手順を各ステップごとに説明する。
ステップS2001:入力デバイス30から、文字コードと文字サイズとが入力される。例えば、漢字の「木」を表示デバイス10に表示する場合には、文字コードとして4458番(JIS区点コード、44区58点)が入力される。文字サイズは、例えば、表示される文字の横方向のドット数と縦方向のドット数とによって表現される。文字サイズは、例えば、20ドット×20ドットである。
ステップS2002:入力された文字コードに対応する1文字分のスケルトンデータ42dが、主メモリ22に格納される。
ステップS2003:入力された文字サイズに従って、スケルトンデータ42dの座標データ2307がスケーリングされる。このスケーリングにより、スケルトンデータ42dの座標データ2307のための予め決められた座標系が表示デバイス10のための実ピクセル座標系に変換される。ただし、このスケーリングは、サブピクセルの配列を考慮して行われる。例えば、図21に示されるように、1つのピクセル12がX方向に配列された3個のサブピクセル14R、14Gおよび14Bを有している場合において、文字サイズが20ドット×20ドットである場合には、スケルトンデータ42dの座標データ2307は、60(=20×3)ピクセル×20ピクセルのデータにスケーリングされる。
ステップS2004:スケルトンデータ42dから1ストローク分のデータ(ストローク情報2303)が取り出される。
ステップS2005:ステップS2004において取り出された1ストローク分のデータ(ストローク情報2303)に基づいて、そのストロークが直線であるか否かが判定される。このような判定は、ストローク情報2303に含まれる線タイプ2306を参照することによってなされる。ステップS2005の判定において「Yes」である場合には処理はステップS2006に進み、ステップS2005の判定において「No」である場合には処理はステップS2007に進む。
ステップS2006:スケーリングされた座標データ2307が直線で結ばれる。その直線上に配置されるサブピクセルが文字の基本部分として定義される。このように、文字の基本部分はサブピクセル単位に定義される。
ステップS2007:スケーリングされた座標データ2307が曲線で近似される。その曲線は、例えば、スプライン曲線である。その曲線上に配置されるサブピクセルが文字の基本部分として定義される。このように、文字の基本部分はサブピクセル単位に定義される。
ステップS2008:文字の基本部分に対応するサブピクセルの色要素レベルが、最大の色要素レベルに設定される。例えば、サブピクセルの色要素レベルがレベル7〜レベル0の8段階で表される場合には、文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される。
ステップS2009:文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルが所定の補正パターン選択ルールに従ってレベル6〜レベル0のいずれかに設定される。その所定の補正パターン選択ルールの詳細は、図30(a)、(b)および図31(a)、(b)を参照して後述される。このような色要素レベルの設定は、例えば、補助記憶装置40に格納されている補正テーブル42eを用いて行われる。
ステップS2010:1文字に含まれるすべてのストロークについてステップS2003〜ステップS2009の処理が完了したか否かが判定される。もし「No」であれば処理はステップS2003に戻る。もし「Yes」であれば処理はステップS2011に進む。
ステップS2011:サブピクセルの色要素レベルが輝度レベルに変換される。このような変換は、例えば、補助記憶装置40に格納されている輝度テーブル42cを用いて行われる。
ステップS2012:サブピクセルの輝度レベルを示す輝度データが表示デバイス10に転送される。これにより、表示デバイス10の輝度レベルがサブピクセル単位に制御される。
図30(a)、(b)は、文字の基本部分に対応するサブピクセルの左側に隣接して配置されるサブピクセルの色要素レベルがどのように決定されるかを示す。
文字の基本部分に対応するサブピクセルの左側に隣接して配置されるサブピクセルの色要素レベルは、ストロークの始点と終点とを結ぶ直線の方向とは関係なく、サブピクセルの上方向から下方向に順番に決定される。
図30(a)、(b)において、文字の基本部分に対応する1つのサブピクセルAに注目する。注目サブピクセルAの左下に位置するサブピクセルをサブピクセルBとする。注目サブピクセルAの左上に位置するサブピクセルをサブピクセルCとする。
サブピクセルBまたはサブピクセルCの少なくとも一方が文字の基本部分に対応する場合には、サブピクセルAの左側に隣接するサブピクセルの色要素レベルが補正テーブル42eの補正パターン1に従って決定される。図30(a)の場合がこの場合にあたる。例えば、補正テーブル42eとして補正テーブル2060(図25)が使用される場合には、補正パターン1は「5」、「2」、「1」というパターンである。従って、サブピクセルAの左側に隣接する3つのサブピクセルの色要素レベルがサブピクセルAに近い側から遠い側に向かって「5」、「2」、「1」の順に設定される。
サブピクセルBが文字の基本部分に対応せず、かつ、サブピクセルCが文字の基本部分に対応しない場合には、サブピクセルAの左側に隣接するサブピクセルの色要素レベルが補正テーブル42eの補正パターン2に従って決定される。図30(b)の場合がこの場合にあたる。例えば、補正テーブル42eとして補正テーブル2060(図25)が使用される場合には、補正パターン2は「4」、「2」、「1」というパターンである。従って、サブピクセルAの左側に隣接する3つのサブピクセルの色要素レベルがサブピクセルAに近い側から遠い側に向かって「4」、「2」、「1」の順に設定される。
ここで、文字の基本部分に対応するサブピクセルが横方向に複数個配列されている場合には、一番左側のサブピクセルがサブピクセルAとして選択される。
図31(a)、(b)は、文字の基本部分に対応するサブピクセルの右側に隣接して配置されるサブピクセルの色要素レベルがどのように決定されるかを示す。
文字の基本部分に対応するサブピクセルの右側に隣接して配置されるサブピクセルの色要素レベルは、ストロークの始点と終点とを結ぶ直線の方向とは関係なく、サブピクセルの上方向から下方向に順番に決定される。
図31(a)、(b)において、文字の基本部分に対応する1つのサブピクセルAに注目する。注目サブピクセルAの右下に位置するサブピクセルをサブピクセルDとする。注目サブピクセルAの右上に位置するサブピクセルをサブピクセルEとする。
サブピクセルDまたはサブピクセルEの少なくとも一方が文字の基本部分に対応する場合には、サブピクセルAの右側に隣接するサブピクセルの色要素レベルが補正テーブル42eの補正パターン1に従って決定される。図31(a)の場合がこの場合にあたる。例えば、補正テーブル42eとして補正テーブル2060(図25)が使用される場合には、補正パターン1は「5」、「2」、「1」というパターンである。従って、サブピクセルAの右側に隣接する3つのサブピクセルの色要素レベルがサブピクセルAに近い側から遠い側に向かって「5」、「2」、「1」の順に設定される。
サブピクセルDが文字の基本部分に対応せず、かつ、サブピクセルEが文字の基本部分に対応しない場合には、サブピクセルAの右側に隣接するサブピクセルの色要素レベルが補正テーブル42eの補正パターン2に従って決定される。図31(b)の場合がこの場合にあたる。例えば、補正テーブル42eとして補正テーブル2060(図25)が使用される場合には、補正パターン2は「4」、「2」、「1」というパターンである。従って、サブピクセルAの右側に隣接する3つのサブピクセルの色要素レベルがサブピクセルAに近い側から遠い側に向かって「4」、「2」、「1」の順に設定される。
ここで、文字の基本部分に対応するサブピクセルが横方向に複数個配列されている場合には、一番右側のサブピクセルがサブピクセルAとして選択される。
このようにして、文字の基本部分に対応するサブピクセルに隣接するサブピクセルの色要素レベルが決定される。図30(a)、(b)および図31(a)、(b)において、サブピクセルを表す矩形の中の数字は、各サブピクセルに対して設定された色要素レベルを示す。
図32は、漢字の「木」の骨格形状を表すスケルトンデータ42dに基づいて、表示デバイス10のすべてのサブピクセルの色要素レベルを設定した例を示す。図32において、サブピクセルを表す矩形の中の数字は、各サブピクセルに対して設定された色要素レベルを示す。なお、空白部の色要素レベルはレベル0である。
図32に示されるようなサブピクセルの色要素レベルは、スケルトンデータ42dに含まれる各ストロークごとに得られるサブピクセルの色要素レベルを合成することによって得られる。
図33A〜図33Dは、それぞれ、漢字の「木」のストローク#1〜ストローク#4についてサブピクセルの色要素レベルを設定した例を示す。このようなサブピクセルの色要素レベルの設定は、図30(a)、(b)および図31(a)、(b)を参照して説明した補正パターン選択ルールを適用することによってなされ得る。図33A〜図33Dに示される平面2141〜2144について各サブピクセルの最大の色要素レベルを優先することにより、図32に示される色要素レベルが得られる。
図34は、文字の基本部分の太さをサブピクセル単位で調整することにより、文字の線幅を調整する例を示す。図34において、文字の基本部分に対応するサブピクセルにはレベル7の色要素レベルが設定されている。
図34に示される例では、「細」によって示される文字の基本部分の太さは1サブピクセルであり、「中」によって示される文字の基本部分の太さは2サブピクセルであり、「太」によって示される文字の基本部分の太さは3サブピクセルである。
文字の線幅を示す線幅情報は、例えば、図29AのステップS2001において入力デバイス30から制御部20に入力される。図29AのステップS2006およびS2007において、入力された文字の線幅情報に応じた直線または曲線を形成し、その直線または曲線上のサブピクセルを文字の基本部分として定義するようにすればよい。
図35は、補正テーブル42eにおける補正パターンを調整することにより、文字の線幅を調整する例を示す。図35において、文字の基本部分に対応するサブピクセルにはレベル7の色要素レベルが設定されている。
図35に示される例では、文字の基本部分の太さはいずれも1サブピクセルである。しかし、「ウエイトN」のNの数が大きくなるにつれて文字の線幅が大きくなる。
文字の基本部分に対応するサブピクセルに隣接するサブピクセルの色要素レベルは、補正パターン1または補正パターン2に従って決定される。図36に示されるように、補正パターン1をウエイト1〜ウエイト5のパターンに細分し、補正パターン2をウエイト1〜ウエイト5のパターンに細分し、ウエイト1〜ウエイト5を文字の線幅に応じて使い分けることにより、文字の線幅を調整することが可能になる。
文字の線幅を示す線幅情報は、例えば、図29AのステップS2001において入力デバイス30から制御部20に入力される。図29AのステップS2009において、入力された文字の線幅情報に応じて補正パターン1のウエイト1〜ウエイト5のうちの1つまたは補正パターン2のウエイト1〜ウエイト5のうちの1つを選択し、選択された補正パターンに従って文字の基本部分に対応するサブピクセルに隣接するサブピクセルの色要素レベルを設定するようにすればよい。
図37は、補正テーブル42eの変形例としての補正テーブル2180の例を示す。同一の補正パターンを用いてすべてのサイズの文字を生成すると、大きいサイズの文字のストロークは、小さいサイズの文字のストロークに比べて細く見えてしまう。文字のサイズに合わせて補正パターンを変えることにより、文字のサイズに依存してストロークの太さがばらつくことを抑制することができる。
図37に示される例では、文字のサイズが20ドット以下の場合、文字のサイズが21〜32ドットの場合および文字のサイズが33〜48ドットの場合の3つの場合のそれぞれに対して異なる補正パターンが用意されている。このように、文字のサイズに適した補正パターンを使用することにより、ストロークの太さがばらつくことを抑制することができる。文字のサイズの場合分けの数をさらに増やすことにより、ストロークの太さのばらつきをさらに抑制することが可能になる。
補正テーブル2180の補正パターンは、例えば、図29AのステップS2009において使用され得る。
実施の形態1においては、アウトラインフォントに基づく文字パターンの生成を説明した。実施の形態2において説明したスケルトンデータに基づく文字パターンの生成は、アウトラインフォントに基づく文字パターンの生成に比較して利点を有している。図38を参照して、その利点を説明する。
アウトラインフォントに基づく文字パターンの生成においては、文字の出力サイズに合わせて文字の輪郭線データをスケーリングする際に実数演算が使用される。このため、スケーリングされた文字の輪郭線2191がグリッドをまたぐように配置されることがあり得る。ここで、グリッドとはピクセルとピクセルとの境界をいう。この場合、文字の輪郭線2191によって定義される文字の基本部分2192に対応するサブピクセルの色要素レベルは、色要素レベルの最大値(この例では、レベル7)に設定されない。その結果、文字の基本部分2192は中間調として表示される。
これに対し、スケルトンデータに基づく文字パターンの生成においては、スケルトンデータ自体は厚みを持たないため、スケーリングされたスケルトンデータ2193は、アウトラインからのスケーリングの様にグリッドをまたぐように配置されることはない。スケーリングされたスケルトンデータ2193に基づいて文字の基本部分2194が定義される。文字の基本部分2194に対応するサブピクセルの色要素レベルは、色要素レベルの最大値(この例では、レベル7)に設定される。このように、スケルトンデータに基づく文字パターンの生成によれば、その文字パターンの中に色要素レベルの最大値に設定される部分が必ず存在する。その結果、文字を見やすく表示することが可能になる。
このように、文字の輪郭線を用いて文字の線幅を決定した後にスケーリングを行うよりも、スケーリングされたスケルトンデータに基づいて文字の基本部分を定義した後に文字の線幅を決定する方が、文字を見やすく表示することができる。
図39を参照して、スケーリングされたスケルトンデータ2201が斜め方向に伸びる直線である場合における、文字の基本部分の補正を説明する。
スケーリングされたスケルトンデータ2201に基づいて文字の基本部分2202が定義される。文字の基本部分2202は、段違いに配置される部分2202aと部分2202bとから構成される。部分2202a、2202bは複数のサブピクセル(例えば、3個以上のサブピクセル)から構成される。文字の基本部分2202に対応するサブピクセルの色要素レベルは、色要素レベルの最大値(この例では、レベル7)に設定される。文字の基本部分2202に対応するサブピクセルに隣接するサブピクセルの色要素レベルは、補正テーブル42eの補正パターン1または補正パターン2に従って設定される。文字の基本部分2202のように、色要素レベルの最大値が設定される部分2202a、2202bが段違いに複数のサブピクセルにわたって連続する場合には、斜め方向に伸びる直線が均一な直線に見えにくい。
これを改善するために、文字の基本部分2202を文字の基本部分2203に補正することが好ましい。文字の基本部分2202における部分2202aと部分2202bとの接続部分に位置するサブピクセル2202c、2202dの色要素レベルを最小値(この例では、レベル0)に設定することにより、文字の基本部分2203が得られる。文字の基本部分の2203は、部分2203aと部分2203bとから構成される。文字の基本部分2202が文字の基本部分2203に補正された後に、文字の基本部分2203に対応するサブピクセルに隣接するサブピクセルの色要素レベルが決定される。
このように、文字の基本部分に対応するサブピクセルの配列が特定のパターンを形成する場合には、文字の基本部分を少なくとも2つの部分に分離するように文字の基本部分に対応するサブピクセルの色要素レベルが補正される。これにより、直線の中央部分において黒味のたまりを解消することができる。ここで、用語「黒味のたまり」とは、一定の幅(面積)を有する2本以上のストロークが互いに交差あるいは接近することにより、そのストロークが実際より大きい幅(面積)を有するように見える現象をいう。その結果、斜め方向に伸びる直線を均一な直線として表示することが可能になる。
図40は、補正テーブル42eの変形例としての補正テーブル2210の例を示す。補正テーブル2210の補正パターンは、漢字の「木」の骨格形状を表すスケルトンデータ42d(図23)に対応するように定義されている。すなわち、ストローク#1に対して補正パターン2211(4,2,1)が定義され、ストローク#2に対して補正パターン2212(5,4,2,1)が定義され、ストローク#3に対して補正パターン2213−1(6,4,2,1)、補正パターン2213−2(6,4,2,1)、補正パターン2213−3(6,4,2,1)、補正パターン2213−4(5,3,1)が定義され、ストローク#4に対して補正パターン2214−1(6,4,2,1)、補正パターン2214−2(6,4,2,1)、補正パターン2214−3(6,4,2,1)、補正パターン2214−4(5,3,1)が定義されている。
補正パターン2213−1は、ストローク#3の第1点から第2点の間に適用され、補正パターン2213−2は、ストローク#3の第2点から第3点の間に適用され、補正パターン2213−3は、ストローク#3の第3点から第4点の間に適用され、補正パターン2213−4は、ストローク#3の第4点から第5点の間に適用される。補正パターン2214−1〜2214−4についても同様である。
このように、文字の基本部分を表すスケルトンデータ42dの各ストロークに対して補正パターンを用意することにより、その文字に適したきめ細かい色要素レベルの補正が可能になる。これにより、文字をより高品位に表示することが可能になる。
補正テーブル2210の補正パターンは、例えば、図29AのステップS2009において使用され得る。
なお、補正テーブル2210では、スケルトンデータ42dの各ストロークに対して1セットの補正パターンしか定義していないが、複数のセットの補正パターンを定義するようにしてもよい。この場合には、例えば、図30(a)、(b)および図31(a)、(b)を参照して説明した補正パターン選択配置ルールに従って、複数のセットの補正パターンのうちの1つが選択的に使用される。
図41は、図40に示される補正テーブル2210を用いて漢字の「木」に対応するサブピクセルの色要素レベルを設定した例を示す。図41において、空白部の色要素レベルはレベル0である。
図42は、補正テーブル42eの変形例としての補正テーブル2230の例を示す。補正テーブル2230の補正パターンは、漢字の木偏を表すスケルトンデータ42dに対応するように定義されている。
このように、漢字の部首部品ごとに補正パターンを用意することにより、その漢字の部首部品に適したきめ細かい色要素レベルの補正が可能になる。さらに、漢字ごとに補正パターンを用意する場合に比べて、漢字の部首部品ごとに補正パターンを共用することができるので、補正パターンを格納するために必要とされるメモリの容量を低減することができる。
補正テーブル2230の補正パターンは、例えば、図29AのステップS2009において使用され得る。
図43は、図42に示される補正テーブル2230を用いて漢字の木偏に対応するサブピクセルの色要素レベルを設定した例を示す。図43において、空白部の色要素レベルはレベル0である。
図44は、補正テーブル42eの変形例としての補正テーブル2250の例を示す。補正テーブル2250の補正パターンは、文字の骨格形状を表すスケルトンデータ42dのストローク数に対応するように定義されている。すなわち、補正パターン1の(6,4,3,2,1)と補正パターン2の(5,4,3,2,1)とはストローク数が1以上6以下の文字に対して定義され、補正パターン1の(6,4,2,1)と補正パターン2の(5,4,2,1)とはストローク数が7以上14以下の文字に対して定義され、補正パターン1の(5,2,1)と補正パターン2の(4,2,1)とはストローク数が15以上の文字に対して定義される。
このように、スケルトンデータのストローク数に合わせて補正パターンを使い分けることにより、画数の多い文字のストロークに比べて画数の少ない文字のストロークが細く見えることを防止し、ストローク数の増加した場合でも補正パターンを適正に配置することを容易にする。ストローク数の場合分けの数をさらに増やすことにより、上述した効果をより一層顕著に得ることができる。
補正テーブル2250の補正パターンは、例えば、図29AのステップS2009において使用され得る。
図45は、補正テーブル42eの変形例としての補正テーブル2260の例を示す。補正テーブル2260の補正パターンは、文字の骨格形状を表すスケルトンデータ42dのストロークの傾きに対応するように定義されている。すなわち、補正パターン(3,2)はストロークの傾きが0°であるストロークに対して定義され、補正パターン(6,3,2,1)はストロークの傾きが0°より大きく30°以下のストロークに対して定義され、補正パターン(5,3,2)はストロークの傾きが30°より大きく45°以下のストロークに対して定義され、補正パターン(6,3,1)はストロークの傾きが45°より大きく60°以下のストロークに対して定義され、補正パターン(4,2,1)はストロークの傾きが60°より大きく90°以下のストロークに対して定義される。
このように、スケルトンデータのストロークの傾きに合わせて補正パターンを使い分けることにより、高品位な文字を表示することができる。スケルトンデータのストロークの傾きの場合分けの数をさらに増やすことにより、より高品位な文字を表示することが可能になる。
補正テーブル2260の補正パターンは、例えば、図29AのステップS2009において使用され得る。
図46は、補正テーブル42eの変形例としての補正テーブル2270の例を示す。補正テーブル2270の補正パターンは、文字の基本部分のある部分と他の部分との距離が広い場合(図47のAの場合)および文字の基本部分のある部分と他の部分との距離が狭い場合(図47のBの場合)の両方に対応するように定義されている。すなわち、図47のAの場合には、補正テーブル2270の通常パターンの補正パターン1または補正パターン2が使用される。これにより、図47のA’に示すようにサブピクセルの色要素レベルが設定される。図47のBの場合には、補正テーブル2270の特別パターンの補正パターン1または補正パターン2が使用される。これにより、図47のB’に示すようにサブピクセルの色要素レベルが設定される。
このようにして、文字の基本部分の混み合い具合に応じて補正パターンを使い分けることにより、高品位な文字を表示することができる。
補正テーブル2270の補正パターンは、例えば、図29AのステップS2009において使用され得る。
(実施の形態3)
図15Cは、本発明の実施の形態3の文字表示装置1cの構成を示す。
図15Cにおいて、図15Bに示される構成要素と同一の構成要素には同一の参照番号を付し、その説明を説明する。
図29Bは、ストロークの形状に基づいて文字の書体の特徴を表す補助パターンを設定する場合における文字表示プログラム41cの処理手順を示す。文字表示プログラム41cは、CPU21によって実行される。以下、文字表示プログラム41cの処理手順を各ステップごとに説明する。
ステップS3001:入力デバイス30から、文字コードと文字サイズとが入力される。例えば、漢字の「木」を表示デバイス10に表示する場合には、文字コードとして4458番(JIS区点コード、44区58点)が入力される。文字サイズは、例えば、表示される文字の横方向のドット数と縦方向のドット数とによって表現される。文字サイズは、例えば、20ドット×20ドットである。
ステップS3002:入力された文字コードに対応する1文字分のスケルトンデータ42dが、主メモリ22に格納される。
ステップS3003:入力された文字サイズに従って、スケルトンデータ42dの座標データ2307がスケーリングされる。このスケーリングにより、スケルトンデータ42dの座標データ2307のための予め決められた座標系が表示デバイス10のための実ピクセル座標系に変換される。ただし、このスケーリングは、サブピクセルの配列を考慮して行われる。例えば、図21に示されるように、1つのピクセル12がX方向に配列された3個のサブピクセル14R、14Gおよび14Bを有している場合において、文字サイズが20ドット×20ドットである場合には、スケルトンデータ42dの座標データ2307は、60(=20×3)ピクセル×20ピクセルのデータにスケーリングされる。
ステップS3004:スケルトンデータ42dから1ストローク分のデータ(ストローク情報2303)が取り出される。
ステップS3005:ステップS3004において取り出された1ストローク分のデータ(ストローク情報2303)に基づいて、そのストロークが直線であるか否かが判定される。このような判定は、ストローク情報2303に含まれる線タイプ2306を参照することによってなされる。ステップS3005の判定において「Yes」である場合には処理はステップS3006に進み、ステップS3005の判定において「No」である場合には処理はステップS3007に進む。
ステップS3006:スケーリングされた座標データ2307が直線で結ばれる。その直線上に配置されるサブピクセルが文字の基本部分として定義される。このように、文字の基本部分はサブピクセル単位に定義される。
ステップS3007:スケーリングされた座標データ2307が曲線で近似される。その曲線は、例えば、スプライン曲線である。その曲線上に配置されるサブピクセルが文字の基本部分として定義される。このように、文字の基本部分はサブピクセル単位に定義される。
ステップS3081:文字の基本部分に対応するサブピクセルの色要素レベルが、最大の色要素レベルに設定される。例えば、サブピクセルの色要素レベルがレベル7〜レベル0の8段階で表される場合には、文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される。
ステップS3082:ステップS3081と同一の処理が行われる。
ステップS3021:ストロークが縦線(すなわち、Y方向(図21)に平行な直線)であるか否かが判定される。このような判定は、ストローク情報2303に含まれる座標データ2307を参照することによってなされる。例えば、ストロークの一端のX座標と他端のX座標との差が所定のしきい値以下であれば、そのストロークは縦線であると判定される。
ステップS3021において判定結果が「Yes」である場合には、処理はステップS3023に進み、ステップS3021において判定結果が「No」である場合には、処理はステップS3022に進む。
ステップS3022:ストロークが横線(すなわち、X方向(図21)に平行な直線)であるか否かが判定される。このような判定は、ストローク情報2303に含まれる座標データ2307を参照することによってなされる。例えば、ストロークの一端のY座標と他端のY座標との差が所定のしきい値以下であれば、そのストロークは横線であると判定される。
ステップS3022において判定結果が「Yes」である場合には、処理はステップS3024に進み、ステップS3022において判定結果が「No」である場合には、処理はステップS3009に進む。
ステップS3023:文字の基本部分に対応するサブピクセルに隣接するサブピクセルのうち、X方向(すなわち、サブピクセル14R、14G、14Bの配列方向(図21参照))に隣接する少なくとも1つのサブピクセルの色要素レベルがレベル6〜レベル0のいずれかに設定される。縦ストロークに対してどのサブピクセルが色要素レベルの設定の対象になるかは予め決定されている。例えば、縦ストロークの上端において、文字の基本部分の右側に隣接する2つのサブピクセルの色要素レベルがレベル6に設定される。これは、補助パターン(6,6)が文字の基本部分に対して右側にある所定の位置に配置されたことを意味する。補助パターンは、文字の特定の書体(例えば、「明朝体」)の特徴を表す。
ステップS3024:文字の基本部分に対応するサブピクセルに隣接するサブピクセルのうち、Y方向(すなわち、サブピクセル14R、14G、14Bの配列方向に対して垂直な方向)に隣接する少なくとも1つのサブピクセルの色要素レベルがレベル6〜レベル0のいずれかに設定される。横ストロークに対してどのサブピクセルが色要素レベルの設定の対象になるかは予め決定されている。例えば、横ストロークの右端から2番目の位置において、文字の基本部分の上側に隣接する1つのサブピクセルの色要素レベルがレベル6に設定される。これは、補助パターン(6)が文字の基本部分に対して上側にある所定の位置に配置されたことを意味する。補助パターンは、文字の特定の書体(例えば、「明朝体」)の特徴を表す。
ステップS3009:文字の基本部分に対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルが所定の補正パターン選択ルールに従ってレベル6〜レベル0のいずれかに設定される。ただし、補助パターンが配置されている場合には、その補助パターンに対応するサブピクセルの近傍に配置されるサブピクセルの色要素レベルが所定の補正パターン選択ルールに従ってレベル6〜レベル0のいずれかに設定される。補助パターンのレベル0は、所定の補正パターンのレベル6〜レベル1によって上書きされる。その所定の補正パターン選択ルールの詳細は、図30(a)、(b)および図31(a)、(b)を参照して既に説明したとおりである。このような色要素レベルの設定は、例えば、補助記憶装置40に格納されている補正テーブル42eを用いて行われる。
ステップS3010:1文字に含まれるすべてのストロークについてステップS3003〜ステップS3009の処理が完了したか否かが判定される。もし「No」であれば処理はステップS3003に戻る。もし「Yes」であれば処理はステップS3011に進む。
ステップS3011:サブピクセルの色要素レベルが輝度レベルに変換される。このような変換は、例えば、補助記憶装置40に格納されている輝度テーブル42cを用いて行われる。
ステップS3012:サブピクセルの輝度レベルを示す輝度データが表示デバイス10に転送される。これにより、表示デバイス10の輝度レベルがサブピクセル単位に制御される。
このように、ストロークが縦線か横線かに応じて、文字の基本部分に隣接するようにその文字の書体の特徴を表す補助パターンを配置し、その文字の基本部分またはその補助パターンに隣接するように補正パターンを配置することにより、その文字の書体の特徴を表すことが可能になる。
図50(a)〜(c)は、縦ストロークに対する補助パターンおよび補正パターンの配置例を示す。図50(a)〜(c)において、数字は各サブピクセルの色要素レベルを示す。縦ストロークによって文字の基本部分が定義される。文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される(図50(a))。次に、文字の基本部分の上端右側の所定の位置に補助パターン(6,6)が配置される(図50(b))。次に、文字の基本部分または補助パターン(6,6)に近い側から遠い側に向かって(4,2,1)という補正パターンが配置される(図50(c))。
図51(a)〜(c)は、横ストロークに対する補助パターンおよび補正パターンの配置例を示す。図51(a)〜(c)において、数字は各サブピクセルの色要素レベルを示す。横ストロークによって文字の基本部分が定義される。文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される(図51(a))。次に、文字の基本部分の右端上側の所定の位置に補助パターン(6)が配置される(図51(b))。次に、文字の基本部分または補助パターン(6)に近い側から遠い側に向かって(4,2,1)という補正パターンが配置される(図51(c))。
図54(a)は、漢字の「木」の縦ストローク(図24に示されるストローク#2)および横ストローク(図24に示されるストローク#1)に対して補助パターンおよび補正パターンを配置した例を示す。
なお、文字の基本部分の近傍に補助パターンを配置する場合には、図30(a)、(b)および図31(a)、(b)を参照して説明した補正パターンの配置ルールの説明において、「文字の基本部分」を「文字の基本部分、または、補助パターンのレベル0以外の部分」に読み替えればよい。
図29Cは、書体属性テーブル42fに基づいて文字の書体の特徴を表す補助パターンを設定する場合における文字表示プログラム41dの処理手順を示す。文字表示プログラム41dは、CPU21によって実行される。図29Cにおいて、図29Bに示されるステップと同一のステップには同一の参照番号を付し、その説明を省略する。
書体属性テーブル42fは、データ42の一部として補助記憶装置40に格納されている。従って、図29Cに示される文字表示プログラム41dを実行するための文字表示装置1dの構成は、図15Dに示されるようになる。
図48は、補助記憶装置40に格納されている書体属性テーブル42fの構造を示す。
書体属性テーブル42fは、文字を構成する各ストロークに対してその文字の書体の特徴を表す補助パターンをどの位置に配置するかを定義する。書体属性テーブル42fは、文字の種類を識別するための文字コード3601と、各ストロークに対応するストローク情報3610とを含む。
ストローク情報3610は、ストロークを区別するためのストローク番号3602と、1以上の補助パターンセット3604と、補助パターンセット3604の数を示す補助パターンセット数3603とを含む。
補助パターンセット3604は、座標番号3605と、配置方向フラグ3606と、配置位置フラグ3607と、文字の書体の特徴を表す1以上の補助パターン3609と、補助パターン3609の数を示す補助パターン数3608とを含む。
座標番号3605は、スケルトンデータ42dに含まれる座標データ2307のうち補助パターンを配置する場所の基準となる座標データ2307に割り当てられた番号(1,2,3,・・・)を示す。
配置位置フラグ3607は、ストロークと補助パターン3609との位置関係を示す。配置位置フラグ3607は、「右側」または「上側」または「左側」または「下側」のいずれかを示す。配置位置フラグ3607が「右側」を示すことは、ストロークの右側に1つ以上の補助パターン3609が配置されることを意味する。配置位置フラグ3607が「上側」を示すことは、ストロークの上側に1つ以上の補助パターン3609が配置されることを意味する。配置位置フラグ3607が「左側」を示すことは、ストロークの左側に1つ以上の補助パターン3609が配置されることを意味する。配置位置フラグ3607が「下側」を示すことは、ストロークの下側に1つ以上の補助パターン3609が配置されることを意味する。
配置位置フラグ3607が「左側」または「右側」を示す場合には、配置方向フラグ3606は、ストロークの方向に対して1つ以上の補助パターン3609が配置される方向を示す。この場合、補助パターン3609に含まれる1つ以上の値は、ストロークに近い側から遠い側に向かって配列される。配置位置フラグ3607が「上側」または「下側」を示す場合には、配置方向フラグ3606は、ストロークの方向に対して補助パターン3609に含まれる1つ以上の値が配置される方向を示す。この場合、1つ以上の補助パターン3609は、ストロークに近い側から遠い側に向かって配列される。配置方向フラグ3606は、「順方向」または「逆方向」のいずれかを示す。
補助パターン3609は、例えば、(0,6)、(6,6,6)のように表される。補助パターン(0,6)は、X方向に隣接する2つのサブピクセルの色要素レベルをレベル0、レベル6にそれぞれ設定することを示す。補助パターン(6,6,6)は、X方向に隣接する3つのサブピクセルの色要素レベルをレベル6、レベル6、レベル6にそれぞれ設定することを示す。
図49は、補助記憶装置40に格納される書体属性テーブル42fの一例としての書体属性テーブル3600を示す。書体属性テーブル3600は、漢字の「木」の特定の書体(例えば、「明朝体」)の特徴を定義する。
図29Cにおいて、ステップS3008では、文字の基本部分に対応するサブピクセルの色要素レベルが、最大の色要素レベルに設定される。例えば、サブピクセルの色要素レベルがレベル7〜レベル0の8段階で表される場合には、文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される。
ステップS3031では、書体属性テーブル42fに基づいて文字の基本部分に対応するサブピクセルに隣接する少なくとも1つのサブピクセルの色要素レベルがレベル6〜レベル0のいずれかに設定される。文字の基本部分に対して補助パターン3609をどの位置に配置するかは、書体属性テーブル42fに予め定義されている。
このように、書体属性テーブル42fに基づいて文字の基本部分に隣接するようにその文字の書体の特徴を表す補助パターンを配置し、その文字の基本部分またはその補助パターンに隣接するように補正パターンを配置することにより、その文字の書体の特徴を表すことが可能になる。
図52(a)〜(c)は、漢字の「木」のストローク#1に対する補助パターンおよび補正パターンの配置例を示す。図52(a)〜(c)において、数字は各サブピクセルの色要素レベルを示す。ストローク#1によって文字の基本部分が定義される。文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される(図52(a))。次に、書体属性テーブル3600(図49)に基づいてストローク#1の座標データ2から逆方向(すなわち、ストローク#1の右端点から左端点に向かう方向)に向かってストローク#1の上側に補助パターン(0,6)が配置される(図52(b))。次に、文字の基本部分または補助パターン(0,6)に近い側から遠い側に向かって(4,2,1)という補正パターンが配置される(図52(c))。
図53(a)〜(c)は、漢字の「木」のストローク#4に対する補助パターンおよび補正パターンの配置例を示す。図53(a)〜(c)において、数字は各サブピクセルの色要素レベルを示す。ストローク#4によって文字の基本部分が定義される。文字の基本部分に対応するサブピクセルの色要素レベルはレベル7に設定される(図53(a))。次に、書体属性テーブル3600(図49)に基づいてストローク#4の座標データ5から逆方向(すなわち、ストローク#4の右下端点から左上端点に向かう方向)に向かってストローク#4の左側に補助パターン(6,6,6)および(6,6)が配置される(図53(b))。次に、文字の基本部分または補助パターン(6,6,6)、(6,6)に近い側から遠い側に向かって(5,2,1)という補正パターンまたは(4,2,1)という補正パターンが配置される(図53(c))。
図54(b)は、書体属性テーブル3600(図49)に基づいて、漢字の「木」のストローク#1〜#4のそれぞれに対して補助パターンおよび補正パターンを配置した例を示す。図54(b)に示される漢字の「木」は、ストローク#1〜#4のそれぞれに対して補助パターンを配置することができるため、図54(a)に示される漢字の「木」に比較して、漢字の「木」の書体の特徴をより明確に表現することができる。例えば、図54(b)に示される漢字の「木」は、ストローク#4の「はらい」を表現することができる点で、図54(a)に示される漢字の「木」より優れている。
なお、図54(a)および図54(b)に示されるようなサブピクセルの色要素レベルは、スケルトンデータ42dに含まれる各ストロークごとに得られるサブピクセルの色要素レベルを合成することによって得られる。ここで、複数の色要素レベルを合成する際には、複数の色要素レベルのうち最大の色要素レベルが優先される。
なお、表示デバイス10に表示される文字のサイズ(ドット数)の可変幅が大きい場合には、文字のサイズに応じて複数の書体属性テーブルのうちの1つを選択的に使用することが好ましい。
図55は、文字のサイズに応じて複数の書体属性テーブルのうちの1つが選択的に使用される場合における書体属性テーブル42fの構造を示す。図55に示される例では、文字のサイズが20ドット以下の場合には書体属性テーブル#1が選択的に使用され、文字のサイズが21ドット以上32ドット以下の場合には書体属性テーブル#2が選択的に使用され、文字のサイズが33ドット以上48ドット以下の場合には書体属性テーブル#3が選択的に使用される。
書体属性テーブル#1〜#3の構造は、図48に示される書体属性テーブル42fの構造と同一である。
図56は、書体属性テーブル#1〜#3の一例として、漢字の「木」に対応する書体属性テーブル#1〜#3を示す。
図57Aは、漢字の「木」を32ドットで表示する場合において各サブピクセルに設定される色要素レベルを示す。図57Bは、図57Aに示される32ドットの漢字の「木」に対して図56に示される書体属性テーブル#2を用いて漢字の「木」の書体の特徴を追加した例を示す。図57Cは、図57Aに示される32ドットの漢字の「木」に対して図56に示される書体属性テーブル#1を用いて漢字の「木」の書体の特徴を追加した例を示す。図57Bと図57Cとを比較すると、図57Bに示される漢字の「木」の方が、図57Cに示される漢字の「木」よりも、漢字の「木」の書体の特徴が高品位に表現されていることが分かる。これは、文字のサイズ(32ドット)に適した書体属性テーブルを使用しているからである。
図58Aは、漢字の「木」を40ドットで表示する場合において各サブピクセルに設定される色要素レベルを示す。図58Bは、図58Aに示される40ドットの漢字の「木」に対して図56に示される書体属性テーブル#3を用いて漢字の「木」の書体の特徴を追加した例を示す。図58Cは、図58Aに示される40ドットの漢字の「木」に対して図56に示される書体属性テーブル#1を用いて漢字の「木」の書体の特徴を追加した例を示す。図58Bと図58Cとを比較すると、図58Bに示される漢字の「木」の方が、図58Cに示される漢字の「木」よりも、漢字の「木」の書体の特徴が高品位に表現されていることが分かる。これは、文字のサイズ(40ドット)に適した書体属性テーブルを使用しているからである。
なお、文字ごとに、文字サイズに応じた複数の書体属性テーブルを持つことも可能である。この場合には、すべての文字(または、特定の文字セット)に共通に、文字サイズに応じた複数の書体属性テーブルを持つ場合に比較して、その文字の書体の特徴をさらに高品位に表現することが可能になる。
以下、図59(a)〜(d)を参照して、文字の基本部分の左右にさまざまな補正パターンを置くことにより、文字の縦線の太さをなめらかに調整する例を説明する。
図59(a)は、文字の縦線(例えば、漢字の「木」のストローク#2)に対応する文字の基本部分の色要素レベルをレベル7に設定し、その文字の基本部分の左右に、その文字の基本部分に近い側から遠い側に向かって(4,2)という補正パターンを置いた場合を示す。
同様に、図59(b)は、その文字の基本部分の左右に、その文字の基本部分に近い側から遠い側に向かって(5,2,1)という補正パターンを置いた場合を示し、図59(c)は、その文字の基本部分の左右に、その文字の基本部分に近い側から遠い側に向かって(5,3,2)という補正パターンを置いた場合を示し、図59(d)は、その文字の基本部分の左右に、その文字の基本部分に近い側から遠い側に向かって(5,4,2,1)という補正パターンを置いた場合を示す。
図59(a)〜(d)に示されるように、文字の基本部分の左右にさまざまな補正パターンを置くことにより、文字の縦線は、図59(a)から図59(d)の順になめらかに太くなっていくように見える。このようにして、文字の基本部分の太さを変更することなく、見かけ上、文字の太さを変更することが可能になる。
以下、図60(a)〜(d)を参照して、文字の基本部分の上下にさまざまな補正パターンを置くことにより、文字の横線の太さをなめらかに調整する例を説明する。
図60(a)は、文字の横線(例えば、漢字の「木」のストローク#1)に対応する文字の基本部分の色要素レベルをレベル7に設定し、その文字の基本部分の左右に、その文字の基本部分に近い側から遠い側に向かって(4,2,1)という補正パターンを置いた場合を示す。その文字の基本部分の上下には、補正パターンは置いていない。
図60(b)は、文字の基本部分の上側に隣接するサブピクセルの色要素レベルをレベル3に設定し、補正パターン(4,2,1)の上側に隣接するサブピクセルの色要素レベルを(2,1,0)に設定した場合を示す。ここで、補正パターン(4,2,1)の上側に隣接するサブピクセルの色要素レベルは、補正パターン(4,2,1)の色要素レベルと補正パターン(4,2,1)の上側に隣接するサブピクセルの色要素レベルとの比が、文字の基本部分の色要素レベルと文字の基本部分の上側に隣接するサブピクセルの色要素レベルとの比(すなわち、7:3)にほぼ等しくなるように設定される。なお、上述した比を計算した結果、色要素レベルが整数値とならない場合には、色要素レベルが整数値となるように四捨五入などの処理が適切に行われる。
図60(c)は、文字の基本部分の下側に隣接するサブピクセルの色要素レベルをレベル3に設定し、補正パターン(4,2,1)の下側に隣接するサブピクセルの色要素レベルを(2,1,0)に設定した場合を示す。
図60(d)は、文字の基本部分の上側および下側に隣接するサブピクセルの色要素レベルをレベル3に設定し、補正パターン(4,2,1)の上側および下側に隣接するサブピクセルの色要素レベルを(2,1,0)に設定した場合を示す。
図60(a)〜(d)に示されるように、文字の基本部分および文字の基本部分の左右の補正パターンの上側または下側に隣接するサブピクセルの色要素レベルを所定のレベルに設定することにより、文字の横線は、図60(a)、図60(b)または図60(c)、図60(d)の順になめらかに太くなっていくように見える。このようにして、文字の基本部分の太さを変更することなく、見かけ上、文字の太さを変更することが可能になる。
図60(b)と図60(c)とでは、文字の太さはみかけ上同一である。しかし、図60(b)に示される横線はやや上寄りに配置されているように見え、図60(c)に示される横線はやや下寄りに配置されているように見える。隣接するストロークの有無やストローク間の距離を考慮して、図60(b)に示される横線と図60(c)に示される横線とを使い分けることができる。例えば、文字の出力サイズが小さい場合において、漢字の「国」の一番上の横線として図60(b)に示される横線を使用し、漢字の「国」の一番下の横線として図60(c)に示される横線を使用することにより、黒味の溜りや文字のつぶれを抑制することができる。ここで、「文字のつぶれ」とは、文字のサイズ(すなわち、その文字を表示するために使用されるドットの数)を縮小した結果、あるいは、一定の幅を有する2以上のストロークが交差あるいは接近することで文字の空間が過度に狭くなった結果、文字として認識することが困難となった状態をいう。
なお、図60(b)に示される横線の重心は、みかけ上、少し上側に移動するため、その横線を含む文字にアンダーラインを引いた場合でも、そのアンダーラインによる重心の変化の影響を受けにくい。
以下、図61(a)〜(c)を参照して、文字の基本部分の上側に隣接するサブピクセルの色要素レベルを調整することにより、文字の横線の太さをなめらかに調整する例を説明する。
図61(a)は、文字の基本部分の上側に隣接するサブピクセルの色要素レベルをレベル2に設定し、補正パターン(4,2,1)の上側に隣接するサブピクセルの色要素レベルを(1,1,0)に設定した場合を示す。
図61(b)は、文字の基本部分の上側に隣接するサブピクセルの色要素レベルをレベル5に設定し、補正パターン(4,2,1)の上側に隣接するサブピクセルの色要素レベルを(3,1,1)に設定した場合を示す。
図61(c)は、文字の基本部分の上側に隣接するサブピクセルの色要素レベルをレベル6に設定し、補正パターン(4,2,1)の上側に隣接するサブピクセルの色要素レベルを(3,2,1)に設定した場合を示す。
図61(a)〜(c)に示されるように、文字の基本部分の上側に隣接するサブピクセルの色要素レベルを調整することにより、文字の横線は、図61(a)から図61(c)の順になめらかに太くなっていくように見える。このようにして、文字の基本部分の太さを変更することなく、見かけ上、文字の太さを変更することが可能になる。
なお、図61(a)〜(c)に示される例では、文字の基本部分の上側に隣接するサブピクセルの色要素レベルのみを調整することによって文字の太さを調整している。同様にして、文字の基本部分の下側に隣接するサブピクセルの色要素レベルのみを調整することによっても文字の太さを調整することが可能である。あるいは、文字の基本部分の上側に隣接するサブピクセルの色要素レベルおよび文字の基本部分の下側に隣接するサブピクセルの色要素レベルを調整することによっても文字の太さを調整することが可能である。
実施の形態3では、文字の基本部分に対応するサブピクセルの色要素レベルは、最大の色要素レベル(例えば、レベル7)に設定されていた。しかし、文字の基本部分に対応するサブピクセルの色要素レベルを最大の色要素レベル以外の色要素レベルに設定することが好ましい場合が存在する。このような色要素レベルの設定は、例えば、文字の混んだ部分においてその文字の黒味が溜まることを抑えることを目的として行われる。あるいは、そのような色要素レベルの設定は、例えば、「はらい画のかすれ」のような書体特徴を表現することを目的として行われてもよい。
基本部分テーブル42gは、データ42の一部として補助記憶装置40に格納されている。従って、基本部分テーブル42gを参照する文字表示装置1eの構成は、図15Eに示されるようになる。
図62(a)は、補助記憶装置40に格納されている基本部分テーブル42gの構造を示す。基本部分テーブル42gは、文字/部首を構成するストロークのそれぞれについて、そのストロークによって定義される文字の基本部分の色要素レベルの値を決定する。基本部分テーブル42gは、文字/部首を識別するための文字/部首コード3701と、各ストロークに対応するストローク情報3702とを含む。
ストローク情報3702は、ストロークを区別するためのストローク番号3703と、各ストロークにおいて点と点とを結んだ線上に位置する基本部分の色要素レベルを表す色要素レベル3704とを含む。ストローク番号3703は、スケルトンデータ42dのストローク番号2304(図22)に対応している。
図62(b)は、基本部分テーブル42gの一例として漢字の「魚偏」に対応する基本部分テーブル3700を示す。図62(b)に示される基本部分テーブル3700によれば、漢字の「魚偏」のストローク#8〜ストローク#13のそれぞれに対応する文字の基本部分の色要素レベルは、最大レベル以外のレベル(すなわち、レベル6またはレベル5)に設定される。これにより、文字の混んだ部分(すなわち、「田」の内部部分や「れんが(点4つ)」の部分)において、文字の黒味が溜まることを抑えることが可能になる。
図63は、スケルトンデータ42dの一例として、漢字の「魚偏」の骨格形状を表すスケルトンデータ3800の例を示す。スケルトンデータ3800は、13個のストローク#1〜ストローク#13を有している。
図64は、漢字の「魚偏」の骨格形状を表すスケルトンデータ3800を座標平面上に表示した例を示す。図64において、数字はストローク番号を示す。
図65(a)は、漢字の「魚偏」に対応する文字の基本部分の色要素レベルを最大の色要素レベル(すなわち、レベル7)に設定し、その文字の基本部分の左右に補正パターンを置いた結果を示す。図65(b)は、基本部分テーブル3700(図62(b))を用いて、漢字の「魚偏」に対応する文字の基本部分の一部の色要素レベルをレベル5またはレベル6に設定した結果を示す。このように、文字の基本部分の一部の色要素レベルを低いレベルに設定することにより、文字の混んだ部分において文字の黒味を抑えることができる。その結果、文字全体として黒味のバランスを改善することが可能になる。
図66は、基本部分テーブル42gの一例として漢字の「木」に対応する基本部分テーブル3900を示す。図66に示される基本部分テーブル3900によれば、漢字の「木」の「左はらい」に対応するストローク#3の先端部分に対応する文字の基本部分の色要素レベルは、最大レベル以外のレベル(すなわち、レベル6またはレベル5)に設定される。これにより、「左はらい」の先端部分に「かすれ」があるという、漢字の「木」の書体における独特の特徴を表現することが可能になる。
図67(a)は、基本部分テーブル3900(図66)を用いて、漢字の「木」に対応する文字の基本部分の一部の色要素レベルをレベル5またはレベル6に設定した結果を示す。図67(b)は、図67(a)に示される文字の基本部分の左右に補正パターン(4,2,1)または(5,2,1)を置いた結果を示す。このように、文字の基本部分の一部の色要素レベルを低いレベルに設定することにより、文字の黒味を抑えることができる。その結果、「はらい」の先端部分における「かすれ」のような書体における独特の特徴を表現することが可能になる。
なお、上述した実施の形態3では、日本語の文字を例にとり説明した。しかし、本発明の適用は日本語の文字に限定されない。他の任意の言語の文字(例えば、中国語の文字、ヨーロッパの文字、ハングル文字、アラビア文字など)に本発明を適用することにより、文字の太さを調整したり、文字の特定の書体の特徴を表現したり、文字の黒味を抑えたりすることが可能である。
さらに、文字表示プログラム41aおよびデータ42を格納する記録媒体は、上記ディスクやカードなどの記憶装置や半導体メモリなどのようにプログラムやデータを固定的に担持する媒体以外に、通信ネットワークにおいてプログラムやデータを搬送するために使用される通信媒体のようにプログラムやデータを流動的に担持する媒体であってもよい。文字表示装置1aがインターネットを含む通信回線に接続するための手段を備えている場合には、その通信回線から文字表示プログラム41aおよびデータ42をダウンロードすることができる。この場合、ダウンロードに必要なローダープログラムは、ROM(図示せず)に予め格納されていてもよいし、補助記憶装置40から制御部20にインストールされてもよい。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。