JP4505082B2 - 多階調データ生成装置、プログラム記憶媒体、データ記憶媒体 - Google Patents
多階調データ生成装置、プログラム記憶媒体、データ記憶媒体 Download PDFInfo
- Publication number
- JP4505082B2 JP4505082B2 JP23613299A JP23613299A JP4505082B2 JP 4505082 B2 JP4505082 B2 JP 4505082B2 JP 23613299 A JP23613299 A JP 23613299A JP 23613299 A JP23613299 A JP 23613299A JP 4505082 B2 JP4505082 B2 JP 4505082B2
- Authority
- JP
- Japan
- Prior art keywords
- stroke
- gradation
- pixel
- pixels
- data
- 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.)
- Expired - Fee Related
Links
Landscapes
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、文字や図形などを表わすアウトラインデ−タ等から多階調データを生成する多階調データ生成装置、プログラム記憶媒体、多階調データを記憶する記憶媒体に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ、電子手帳、携帯型情報機器、ゲーム機器などの情報処理装置において、サイズ、字体、修飾等を多彩に設定できる文字表示機能が重要になっている。
一般にディスプレイは、プリンタと比較して解像度が低いため、白と黒の2値データでは文字や図形の輪郭部分がぎざぎざになったり、細かい形状が表現できないため、印刷物と比較して品質が劣ってしまう。また、白と黒だけでなく中間調(灰色)が表現できるディスプレイでは、各画素(以下では画素のことをピクセルと表現する)を白黒および中間調を用いて表示することにより解像度の低さを補い、表示品質を向上させることができる。例えばグラフィックスの分野ではアンチエリアシングという手法を用いて、白黒および中間調で表現された多階調データを生成することが一般に行われている。
【0003】
従来、多階調データ生成方法およびその装置は、文字や図形などのアウトラインデータに含まれる輪郭情報から、まず要求されるサイズのピクセル数に対して縦横整数倍の白黒のみで表現された2値イメージを生成し、生成された2値イメージの単位面積(整数倍された1ピクセル)当たりに含まれる黒の個数に従って各ピクセルの階調値を決定することで、多階調データを生成していた。
【0004】
図3は、従来の多階調データ生成装置の構成を示す機能ブロック図である。この多階調データ生成装置は、輪郭情報拡大縮小部201、多階調データ生成部202を備え、多階調データ生成部202は内部に2値データ生成部301と階調値算出部302とを有している。
以上のように構成された従来の多階調データ生成方法およびその装置について、以下図面を用いてその動作を説明する。
【0005】
図4と図5は、文字や図形などのアウトラインデータに含まれる輪郭情報とストローク位置情報の一例を示す。この例ではゴシック体の漢字フォント「三」を1000×1000の座標系(以下では1000メッシュと表現する)での直線の集合で表現している。輪郭情報は、3個の輪郭から構成されており、各座標点を結んでいくことにより輪郭線が描画される。この例では輪郭の終点座標は始点座標と自動的に結ばれるものとしている。直線に加えて2次曲線や3次曲線が併用されることも多い。一方、「三」に含まれる3本の水平ストローク(文字の場合は水平ステムと呼ばれる)の位置情報はストローク位置情報として保持されている。この例では、水平ストロークを構成する下部直線と上部直線のY座標値のペアが保持されている。この情報から水平ストローク幅は減算にて求められる。この例では3本の水平ストロークの幅はすべて等しくて100という値である。水平ストローク情報として下部直線のY座標とストローク幅を保持したり、輪郭情報に座標点の属性として付加するなど、この例以外の方法で情報が保持される場合もある。垂直ストロークが存在する場合には、同様の方法で垂直ストローク情報も保持される。これらのストローク位置情報は一般にヒント情報とよばれ、拡大縮小後のストローク幅の一貫性を保持するために使用される。
【0006】
以下では、このアウトラインデータから10×10ピクセル(縦・横方向それぞれ10ピクセルずつの合計100ピクセル)で構成される多階調データを生成する場合を考える。
輪郭情報拡大縮小部201は、アウトラインデータを要求されるサイズのピクセル数の縦横整数倍に拡大縮小する。この例では要求サイズは10×10ピクセルである。整数倍率を8×8倍(縦・横方向それぞれ8倍ずつ)とすると、1000メッシュのアウトラインデータの輪郭情報は80×80メッシュのデータに縮小されることになる。もちろん整数倍率は8×8倍以外でもかまわない。
【0007】
ここで整数倍することの意味合いを説明しておく。8×8倍の場合には、もともと10×10ピクセルのデータを要求されている場合、本来10×10メッシュに縮小すればよいはずである。しかし白黒2値データではなく多階調データを生成するためには、各ピクセルの階調値を決定する必要がある。そのために1ピクセルの内部を細分化し、1ピクセル中の黒部分の割合を求めて、その割合に応じて階調値を決定する。たとえば1ピクセルの1辺を8個に細分化すると1ピクセルは8×8個で合計64個の小さなピクセルに細分化される。以下では1ピクセルを細分化するメッシュを「サブメッシュ」、細分化された小さなピクセルを「サブピクセル」、ピクセルとピクセルの境界線を「ピクセル境界」、サブピクセルとサブピクセルの境界線を「サブピクセル境界」、ピクセル境界の交点を「グリッド」(ピクセルの四隅の点)、サブピクセル境界の交点を「サブグリッド」(サブピクセルの四隅の点)と表現することにする。
【0008】
図6はピクセルをサブピクセルに分割した状態を示したものである。太線がピクセル境界、細線がサブピクセル境界を表している。今回の例では1メッシュを8サブメッシュにすることになり、結果的に1ピクセルは8×8サブピクセル(合計64サブピクセル)に分割される。要求サイズの縦横8倍に拡大縮小するということは、サブメッシュ(サブピクセル)で表現された座標系に変換することに対応している。この例では、1000メッシュデータを80サブメッシュ(10メッシュ)データに縮小することになる。
【0009】
図7は、80サブメッシュに縮小されたアウトラインデータの輪郭情報を示している。単純な縮小では量子化誤差により「三」に含まれる3本の水平ストロークの幅が同じにならない可能性もあるが、ここではストローク位置情報を用いて、一般にヒント処理と呼ばれているストローク幅の一貫性を保つ処理を行うことで、ストローク幅は同じに揃えられている。この例では3本のストロークはすべて1000メッシュで100であったが、縮小後は3本とも100×80/1000=8で求められるように8サブメッシュ幅(8サブピクセル幅)に統一されている。なお、ヒント処理はアウトラインフォントから2値データを生成する時の品質向上手法として広く用いられている。ヒント処理を行わないとストローク幅が不揃いになり見た目の美しさが損なわれる。
【0010】
2値データ生成部301は、輪郭情報拡大縮小部201で生成された拡大縮小後のアウトラインデータの輪郭情報から、2値イメージデータを生成する。図8は、図7の縮小されたアウトラインデータの輪郭情報から生成された80×80サブピクセルの2値データである。
階調値算出部302は、2値データ生成部301で生成された2値データから各ピクセルの階調値を算出することで、多階調イメージデータを生成する。1ピクセルを8サブメッシュに分割する場合には、最終の多階調イメージデータの1ピクセルが、8×8サブピクセルすなわち合計64サブピクセルで表現される。階調値算出部302では、この64サブピクセルのうちの黒サブピクセルの割合に応じた階調値を計算して、最終的な多階調イメージデータの1ピクセルの階調値とする。最終的に8階調の多階調イメージデータを生成する場合には、例えば64サブピクセルのうちの黒サブピクセルの個数を8で割った商を階調値0〜7に対応させる(ただし個数が64の場合は7とする)といった方法で階調値を算出する。ここで階調値0は白、階調値1〜6は中間調(数値が大きいほど黒に近い灰色である)、階調値7は黒を表すものとする。図9は、階調値算出部302によって、図8の80×80サブピクセルの2値データから生成された多階調イメージデータである。
【0011】
【発明が解決しようとする課題】
ところで、上記従来の技術では、拡大縮小後のアウトラインデータの輪郭情報で水平ストロークや垂直ストロークの幅の一貫性がとれていても、ストロークを配置する位置によっては見かけが異なるため、美しさが損なわれるという問題点があった。
【0012】
例えば、図7および図8では、「三」の3本の水平ストロークの幅は等しく、8サブピクセル分の幅である。しかし、3本のストロークは、多階調データでの1ピクセルの内部での配置位置が異なる。図10は、3本のストロークの配置状態を拡大した図である。3本のストロークの上部直線が、左から順にそれぞれ上から7本目(ピクセル内7/8位置)のサブピクセル境界上、上から4本目(ピクセル中央)のサブピクセル境界上、ピクセル内のピクセル境界上に配置されている。
【0013】
図11は、図10の3種類のストローク配置に対応する多階調データである。
図11の右端の例では水平ストロークは鮮明すぎて非常に細く見え、中間調が含まれていないため、他の曲線や斜線を表すストロークがある場合、中間調表現とのバランスもよくない。図11の中央の例では水平ストロークは、にじんだように薄く広がって見える。このように配置位置が異なると、同図で示されるように異なった階調値を用いたストローク表現になる。従って、図9の多階調データでは3本とも表現が異なってしまっており、低解像度のディスプレイや液晶パネルではストローク幅が不揃いに見えてしまう。また、太さの異なる2本のストロークがある場合、本来太いはずのストロークのほうが細く見えてしまうといった逆転現象も起こってしまう。ストローク幅の一貫性を保つためのヒント処理を行っていない場合には、文字品位はさらに劣化する。
【0014】
この例では、1ピクセルを8サブメッシュに分割した2値データを作成しているが、16サブメッシュなどさらに細かな2値データを生成しておき、階調値を16×16サブピクセル中に含まれる黒サブピクセルの割合から算出することで、より精度の高い多階調データを生成できる。しかし、サブメッシュをいくら細かくしても上記課題は解決されない。
【0015】
特に、低階調データの表示を行なう場合には、階調表現可能であるにも関らず、ディスプレイの表示特性にもよるが、劣悪な表示になるという問題があった。
ここでいう低階調データとは、三、四階調程度の階調表現をいう。低階調データの表示は、テレビ受像器に対する字幕や、ガイダンス、メニューとして文字表示する場合などによく利用されている。
【0016】
以下、具体例を挙げて低階調データの表示の問題点を説明する。
図12は、図7に示した輪郭情報から低階調データに展開した場合の一例である。同図では、白色、灰色、黒色の3階調で文字表示がなされる。
同図では、ディスプレイの表示特性により次のような問題がある。
三本のストロークのうち、上から一本目と三本目のストロークは、黒色の1画素が一行に連続するストロークであり、二本目のストロークは、灰色の2画素が連続するストロークになっている。
【0017】
この場合にはディスプレイの表示特性に応じて、次のような表示上の問題が生じる。
インターレース方式のディスプレイの場合、黒色の1画素が連続するストロークはちらつき(フリッカ)が発生する。また、灰色の2ピクセルが連続するストロークはぼんやりと膨脹したり、薄く見える。
【0018】
液晶ディスプレイの場合、黒色の1画素が連続するストロークは画素境界がくっきり見えるため灰色を含むような他のストロークとの関係でみかけが大きく異なり、バランスが悪くなる。灰色の2ピクセルが連続するストロークは、インターレース方式のディスプレイと同様である。
ノンインターレース方式のディスプレイの場合、黒色の1画素が連続するストロークはちらつきが発生しないが、灰色を含むような他のストロークとの関係でみかけが大きく異なりバランスが悪い場合がある。灰色の2ピクセルが連続するストロークはぼんやりと膨脹したり、薄く見える。
【0019】
このように低階調データの場合には、階調表示を有効に活用できず、二値表示よりも劣悪な表示になる場合があった。
本発明は、階調数が少ない場合であっても、ストロークのバランスがとれた良好な階調データを容易に生成する多階調データ生成装置、プログラム記憶媒体、多階調データを記憶するデータ記憶媒体を提供することを目的とする。
【0020】
【課題を解決するための手段】
本発明の多階調データ生成装置は、文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを表した判定表を記憶する判定表記憶手段と、ストローク位置を表わすデータを記憶するデータ記憶手段と、データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出手段と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を前記判定表に従って判定する判定手段と、判定手段により否と判定されたストロークについて、判定手段により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更手段と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成手段とを備える。
【0021】
ここで、前記判定表記憶手段は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして記憶する。
また、本発明のデータ記憶媒体は、階調付きビットマップフォントを記憶したコンピュータ読み取り可能なデータ記憶媒体であって、前記ビットマップフォントにおいて全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一方は、そのピクセルデータが中間階調色を示すことを特徴とする。
【0022】
【発明の実施の形態】
<第1の実施形態>
<ハードウェア構成>
図1は、本発明の第1の実施形態における多階調データ生成装置のハードウェア構成の一例を示すブロック図である。同図のように多階調データ生成装置100は、記憶部1、ROM2、RAM3、CPU4、表示部5、入力部6とから構成される。
【0023】
記憶部1は、いわゆる二次記憶装置であり、フォントを表現したアウトラインデータ、各種プログラムファイル、およびデータファイルを記憶する。
ROM2は、主として本発明の多階調データ生成方法が記述されたプログラムを記憶する。
RAM3は、記憶部1のアウトラインデータ、プログラム、データ等がダウンロードされたり、いわゆるワークエリアとして使用されるメモリである。
【0024】
CPU4は、主としてROM2のプログラムを実行することにより、RAM3のアウトラインデータに基づいて入力部6又はプログラムにより指示されたサイズの多階調データを生成する。特に、少ない階調数の多階調データを生成する場合に、ストローク幅方向に並ぶ画素が取り得る階調値の組み合わせのうち、表示装置に適した組み合わせを記憶するテーブル類を生成し、テーブル類を参照してストローク位置を、上記組み合わせによって最適化する。
【0025】
表示部5は、階調表示が可能なディスプレイ装置を有し、生成された多階調データを表示する。ディスプレイ装置は具体的には液晶表示パネル、CRT等である。
入力部6は、ユーザからの文字サイズの指定等の操作指示を受け付ける。
<機能ブロック図>
図2は、図1におけるROM2のプログラムをCPU4が実行することにより実現される多階調データ生成装置100を機能別に表した機能ブロック図である。
【0026】
この多階調データ生成装置100は、ストローク位置情報保持部101、輪郭情報保持部102、展開バッファ103、階調値マッピングテーブル作成部111、階調色マッピングテーブル作成部112、色判定テーブル作成部113、テーブル保持部105、ストローク最適配置位置決定部114、輪郭情報拡大縮小部107、多階調データ生成部108から構成されている。
【0027】
図2と図1との関係については、ストローク位置情報保持部101、輪郭情報保持部102およびテーブル保持部105はRAM3上にそれぞれの領域が設けられ、それ以外はCPU4がROM2のプログラムを実行することにより実現される機能である。
同図においてストローク位置情報保持部101は、多階調データ生成の対象となる文字又は図形についてのアウトラインデータのうちストローク位置情報を保持する。本実施形態では、従来技術で説明した図4および図5に示したように1000メッシュで表現されたストローク位置情報と輪郭情報とを含むアウトラインデータを用いるものとする。ストローク位置情報は、水平ストロークを下部直線と上部直線のY座標のペアで表し、垂直ストロークを左側直線と右側直線のX座標のペアで表している。ストローク位置情報保持部101は、図4に示したゴシック体の「三」を表すアウトラインデータの場合、ストローク位置情報として図5に示した水平ストロークn(n=1〜3)のY座標のペア(L_n、U_n)を保持する。
【0028】
輪郭情報保持部102は、多階調データ生成の対象となる文字又は図形についてアウトラインデータのうち輪郭情報を保持する。輪郭情報は、輪郭の特徴点を表す複数の座標で表される。例えば、図4に示したゴシック体の「三」を表すアウトラインデータの場合、輪郭情報として図5に示した輪郭1〜3毎に複数の座標を保持する。
【0029】
展開バッファ103は、多階調データの生成過程で展開されたアウトラインデータを保持する一時的なバッファである。より具体的には展開バッファ103は、指示された要求サイズに応じたピクセル数と、ピクセルからサブピクセルに細分化する度合を示す分割数とに応じて大きさが定まるサブピクセル単位の領域を有する。多階調データを生成するためには、1ピクセルをサブメッシュに分割した座標系にアウトラインデータを拡大縮小する必要があるが、本実施形態では、要求サイズが10×10ピクセル、サブピクセルへの分割数を8とする。このサイズと分割に関しては従来技術と同様である。この場合、8×8サブピクセル(合計64サブピクセル)が最終的な多階調データの1ピクセルに対応する。多階調データは80×80のサブメッシュの座標系で展開されることになる。もちろん8メッシュ以外の分割数を採用することも可能である。
【0030】
階調値マッピングテーブル作成部111は、階調数と分割数(サブピクセル数)とに基づいて、階調値マッピングテーブルを作成する。階調値マッピングテーブルは、サブメッシュ上のピクセルにおけるストロークの幅(サブピクセル数)と、階調値とを対応付けたテーブルである。
図13(a)(b)は、サブピクセルへの分割数が8の場合の階調値マッピングテーブルの具体例を示す。
【0031】
同図(a)は、階調数が8(0〜7の階調値)である場合の階調値マッピングテーブルの一例である。同図において「ピクセル内のストローク幅H」欄は、1つのピクセルにおいてピクセルと水平(又は垂直)ストロークとの重なり部分のストローク幅を意味する。図14に、ピクセルと水平ストロークとの重なり部分を示すストローク幅Hを示す。同図ではストローク上部直線の位置と、重なる部分(斜線部)とを示している。ストローク下部直線は、ピクセル境界(下側)にあるとは限らない。同図のようにサブピクセル分割数が8の場合は、ストローク幅Hは、H=0からH=8までの9通り考えられる。ただし、H=8の場合ストローク上部直線は、ピクセル境界(上側)にあるとは限らない。
【0032】
図13(a)の「階調値」欄は、上記ストローク幅Hに対応する階調値(0〜7)を示している。
同図(b)は、階調数が3(0〜2の階調値)である場合の階調値マッピングテーブルの一例である。この例では、ストローク幅H=0、1は階調値0に、H=2〜4は階調値1に、H=5〜8は階調値2に対応している。
【0033】
階調色マッピングテーブル作成部112は、階調値と階調色とを対応させた階調色マッピングテーブルを作成する。ここで、階調色とは、多階調データを出力装置に出力した場合に表示される実際の色と対応した数値データである。本多階調データ生成装置100により生成された階調データを表示部5に表示させた場合、階調色0、1、2はそれぞれ白、灰、黒で表示されるものとして説明するが、これ以外の色(例えば、薄い青、青、濃い青など)であってもよい。また、以降の説明では、便宜上、階調色を0、1、2の数値ではなく表示部5で表現される色つまり白、灰、黒として説明する。
【0034】
図15(a)(b)は、階調色マッピングテーブルの具体例を示す。
同図(a)は、図13(a)に示した階調値マッピングテーブルに対応し、図13(a)に示した階調値のそれぞれに対応する階調色を示したテーブルである。この階調色マッピングテーブルでは、8レベルの階調値を3つの階調色0(白)、1(灰)、2(黒)に対応付けている。
【0035】
図15(b)は、図13(b)に示した階調値マッピングテーブルに対応し、図13(b)に示した階調値のそれぞれに対応する階調色を示したテーブルである。この階調色マッピングテーブルでは、3レベルの階調値を3つの階調色0(白)、1(灰)、2(黒)に対応付けている。
図13(b)と図15(b)のように、階調値マッピングテーブルの階調数と階調色マッピングテーブルの階調色数とが等しい場合には、両テーブルを1つのテーブルとしてもよい。
【0036】
色判定テーブル作成部113は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせと、その組み合わせの適否をあらわす色判定テーブルを作成する。
図16〜図19は、階調色が3色(白色、灰色、黒色)の場合の色判定テーブルの具体例であり、サブピクセル座標に配置されたストロークをピクセル座標に配置した場合に得られるストロークの幅(以下ストローク幅Wと記す)毎に図示してある。
【0037】
図16は、ストロークの幅Wが1ピクセルの場合を表わしている。
同図の「色」欄はストロークがとり得るすべての階調色を示す。ここでは、階調色が3色なので、ストロークが1ピクセルの場合には白、灰、黒の3通りしか存在しない。
「判定」欄にはその階調色の適否(図では○、×)が記してある。同図のように階調色「白」「黒」は”×”(不適)、「灰」は”○”(適切)となっている。なぜなら「白」はストロークが消滅してしまう点で、「黒」はインターレース方式のディスプレイではちらつきが生じ、液晶ディスプレイでは画素境界が視覚的に強く表示されるからである。これに対して「灰色」はちらつきが目だないし、画素境界が視覚的に強く表示されないからである。
【0038】
図17は、ストロークの幅Wが2ピクセルの場合を表わしている。この場合、「色」欄の階調色の組み合わせは、3色×3色の9通り存在する。
「判定」欄において、「白白」「白黒」「黒白」が”×”(不適切)なのは、上記と同じ理由による。「灰灰」が”×”(不適切)を示しているのは、ストロークがぼやけて見えるからである。「白灰」「灰白」「灰黒」「黒灰」が適切を示しているのは、上記と同様にちらつきが目立たないし、画素境界が視覚的に強く表示されないからである。
【0039】
図18は、ストロークの幅Wが3ピクセルの場合を表わしている。この場合、「色」欄の階調色の組み合わせは、2ピクセル目は必ず「黒」になるので、図17と同様に9通り存在する。
「判定」欄において、1または3ピクセル目に「灰」を含む組み合わせは、すべて”○”(適切)を示している。これも上記と同様の理由である。
【0040】
図19は、ストロークの幅Wが4ピクセルの場合を表わしている。この場合、「色」欄の階調色の組み合わせは、2および3ピクセル目は必ず「黒」になるので、図17と同様に9通り存在する。
「判定」欄において、1または4ピクセル目に「灰」を含む組み合わせは、すべて”○”(適切)を示している。これも上記と同様の理由である。
【0041】
また、図19は、ストロークの幅Wが4ピクセルより多いnピクセル場合も、同様である。つまり、2ピクセル目と(nー1)ピクセル目は必ず「黒」になるので、階調色の組み合わせは9通りであり、1またはnピクセル目に「灰」を含む組み合わせは、すべて”○”(適切)を示す。これ以外の組み合わせは”×”(不適切)を示す。
【0042】
このように、図17〜図19に示した色判定テーブルでは、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色(灰色)である組み合わせを、適切な組み合わせとしている。
また、図16に示した色判定テーブルは、表示部5がインターレース方式のディスプレイ、液晶ディスプレイである場合に好適になっている。図16は、ノンインターレースのCRTディスプレイに対しては、黒を”○”としてもよい。
【0043】
色判定テーブル作成部113は、ディスプレイの表示特性に応じて、上記のような階調色数に応じた色判定テーブルを作成する。たとえば、ディスプレイの表示特性と階調色数に応じて、不適切な組み合わせを予め記憶しておき、実際に接続されるディスプレイに応じて作成する。
テーブル保持部105は、階調値マッピングテーブル作成部111、階調色マッピングテーブル作成部112、色判定テーブル作成部113により作成されたそれぞれのテーブルを保持する。
【0044】
ストローク最適配置位置決定部114は、ストローク位置情報保持部101のストローク位置情報に含まれる各ストロークについて、テーブル保持部105の各テーブルを参照して、サブメッシュ座標系への拡大縮小後のストロークの最適配置位置を決定する。
より詳しく説明するために図20に、ストローク最適配置位置決定部114の処理内容を表す流れ図を示す。これは水平ストロークの場合の流れ図であるが、垂直ストロークの場合の処理も同様である。
【0045】
ストローク最適配置位置決定部114は、ストローク位置情報保持部101に保持されたストローク位置情報からストロークの上部と下部を表すY座標のペアを取り出し、各ストロークについて、サブピクセル座標系における上部直線と下部直線の座標を算出する(ステップ201)。同時に、移動量Mの初期値を0に設定する(M=0)。ここで移動量は、判定結果が”×”(不適切)であるストロークを移動させるサブピクセル単位の値である。
【0046】
さらに、ストローク最適配置位置決定部114は、算出された各ストロークについて、ストロークと重なりストローク幅方向に並ぶピクセルに分割し、分割された各ピクセルにおけるストローク幅Hをサブピクセル単位で算出し(ステップ202)、階調値マッピングテーブルと、階調色マッピングテーブルとを参照してピクセル毎に階調値と階調色を求め(ステップ203、204)、色判定テーブルを参照してストローク毎に階調色の組み合わせの適否を判定する(ステップ205)。
【0047】
この時点で、ストローク最適配置位置決定部114により上記の処理から得られる作業用データテーブルを図21に示す。同図は、図22に示す3本のストロークを対象とし、一回目の上記ステップ201〜205により算出された各データを示している。図21において「ストローク番号」は、下側のストロークから順に番号を付けている。
【0048】
「座標」は、サブピクセル座標系における各水平ストロークの上部直線と下部直線の左側の頂点の座標を示す。
ピクセル毎の「ストローク幅H」、「階調値」、「色」は、上記階調値マッピングテーブル、階調色マッピングテーブルから得られた値である。
ストローク毎の「判定」欄は、色判定テーブルから得られたストローク階調色の適否を示す。
【0049】
同図のように上記ステップ201〜205の一回目の処理結果では、ストローク1〜3の何れも”×”(不適切)となっている。
次いで、ストローク最適配置位置決定部114は、全てのストロークの判定結果が”○”(適切)であるかどうかを判定する(ステップ206)。
判定結果が”×”(不適切)のストロークが存在する場合には、ストローク最適配置位置決定部114は、当該ストロークを上下両方向に移動させるための移動量Mを1増加(M=M+1)させ(ステップ207)、各ストロークについて、移動量が示すサブピクセル数分を上下方向に移動させた場合のストロークの座標を算出する(ステップ208)。つまり不適切と判定された各ストロークについて移動した2つのストロークの座標を算出する。
【0050】
算出されたストローク座標を用いて、ストローク最適配置位置決定部114は上記のステップ203〜206を同様に実行する。
この時、ストローク最適配置位置決定部114により得られる作業用データテーブルを図23に示す。
同図では、ストローク1〜3について、それぞれ図21の座標から上下に移動した2本分のストローク座標が記されている。また、図21と同様に、各ストロークについてのピクセル毎の「幅」、「階調値」「色」と、ストローク毎の「判定」結果とが記されている。
【0051】
この判定結果には、ストローク1〜3のいずれにも”○”(適切)が存在するので、ストローク最適配置位置決定部114は、適切と判定された各ストローク座標をもって最適配置位置と決定して、処理を終了する。この場合の最適配置位置を図24に示す。同図では、ストローク1〜3について、適切と判定されたストロークの下部直線、上部直線のそれぞれのサブピクセル座標Lopt_n、Uopt_n(n=1〜3)により最適配置位置を表している。
【0052】
このようにしてストローク1〜3は、2ピクセルのストローク幅Wをもち、それぞれ黒色と灰色、灰色と黒色、黒色と灰色の階調色となるように配置位置が決定される。
輪郭情報拡大縮小部107は、ストローク位置情報保持部101に保持されているストローク位置情報と、輪郭情報保持部102に保持されている輪郭情報と、ストローク最適配置位置決定部114により最適化された最適配置位置に従って、アウトラインデータに含まれる輪郭情報の拡大縮小を行う。ここでは、図4および図5に示される輪郭情報を、図24に示したストローク最適配置位置に従って80サブメッシュ座標系に縮小する。
【0053】
1000メッシュ座標系のY座標を80サブメッシュ座標系のy座標に変換する変換方法に関しては、元の1000メッシュ座標系におけるストロークの上部直線、下部直線の座標点U_n、L_nが、サブメッシュ座標系において最適配置された上部直線、下部直線の座標点Uopt_n、Lopt_nに変換され、その他の座標点が上部直線、下部直線の座標点Uopt_n、Lopt_nの全ての間を線形補間した値に変換され、変換された座標が展開バッファ103に格納される。例えば、水平ストロークが3つある場合とすれば、次の(式5)〜(式12)により座標の開始点、終了点、ストロークの下部直線と上部直線の対応する座標を変換した後、(式13)〜(式19)によりその間を線形補間により変換する。
【0054】
上式による縮小の具体例として図25に、図24に示した上部直線、下部直線の座標Uopt_n、Lopt_nに基づいて変換する場合の変換式を示す。図25に従って1000メッシュ座標系でのY座標値を変換すると、ストロークの上部直線および下部直線上の座標点は、80メッシュ座標系において最適配置位置に変換され、その他の座標点は最適配置位置の間を線形補間した値に変換され、展開バッファ103に格納される。
【0055】
この変換方法により、すべての座標点は矛盾なく80サブメッシュ座標系に縮小される。「三」の例ではストロークの上部および下部直線上の座標点しか存在していないが、ストローク以外の直線や曲線を表す座標点を含む文字や図形の場合でも矛盾なく縮小される。また「三」の例では、垂直ストロークが存在していないため、X座標はすべて、x=X×(80/1000)で変換できる。垂直ストロークを含む文字や図形の場合には、この例の水平ストロークと同様に、垂直ストローク最適配置位置にしたがって変換すればよい。
【0056】
多階調データ生成部108は、輪郭情報拡大縮小部107で生成した拡大縮小済輪郭情報から、多階調データを生成する。この部分は、従来の技術で説明した図3に示される構成と全く同じでもかまわないし、1ピクセル内の黒部分の2値データを生成することなく、直接積分計算で面積を求め、面積比から階調値を算出してもよい。
【0057】
図26は、図25の計算結果に基づいて多階調データ生成部108により生成され、展開バッファ103に格納された多階調データを示す。同図のように、3本のストロークのいずれもが黒色ピクセルと灰色ピクセルとの組み合わせになっている。このため、インターレース式のディスプレイでも、液晶ディスプレイでも、ノンインターレース式のディスプレイでも、従来技術の課題として指摘した問題が解消されている。しかも、ストロークの幅が揃っており、また、ストローク間のバランスがよく、形状の再現性が非常に良好である。
【0058】
なお、本実施形態では、1ピクセルを8サブメッシュに分割しているが、16サブメッシュに分割すると、さらに微妙な形状の違いが表現できるため、表示品質が向上する。
また、テーブル保持部105に保持される各テーブルは、ディスプレイの表示特性に応じてこれらのテーブルを変更するだけで、最適な多階調データの生成が簡単に実現可能となる。これに対応するテーブル変更部を追加した構成としてもよい。
【0059】
なお、これらのテーブルは、あらかじめディスプレイの種類や表示特性毎に、複数のテーブルセットをテーブル保持部105に記憶させておいてもよい。
<第2の実施形態>
以下本発明の第2の実施形態における多階調データ生成装置について説明する。
【0060】
本実施形態における多階調データ生成装置のハードウェア構成は図1と同じであるが、ROM2中のプログラムが一部異なる。
図27は、図1におけるROM2のプログラムをCPU4が実行することにより実現される多階調データ生成装置200を機能別に表した機能ブロック図である。
【0061】
多階調データ生成装置200は、図2に対して、色判定テーブル作成部113及びストローク最適配置位置決定部114の代わりにストローク色マッピングテーブル作成部213及びストローク最適配置位置決定部214を備える点が異なっている。
以下同じ点は、説明を省略して異なる点を主に説明する。
【0062】
本実施例ではサブピクセル分割数を4サブメッシュとする。テーブル保持部105は、図32に示す階調値マッピングテーブルと、図33(a)(b)に示すいずれかの階調色マッピングテーブルを保持しているものとする。
ストローク色マッピングテーブル作成部213は、ストローク色マッピングテーブルを作成する。ストローク色マッピングテーブルは、サブピクセル単位に表されたストローク幅W(ストロークそのものの幅)と、ストロークが展開された場合のピクセル毎の適切な階調色の組み合わせとを対応させたテーブルである。図28にストローク色マッピングテーブルの一例を示す。ストローク幅Wと、当該ストロークと重なるピクセルの階調色の組み合わせで適切なものとを対応させている。ストローク幅Wは、生成すべき多階調データ輪郭情報がもつ全てのストロークについて、とりうるストローク幅Wの全てを本テーブル中に生成する必要がある。
【0063】
ストローク最適配置位置決定部214は、ストローク最適配置位置決定部114に対して、ストローク幅を必要に応じて変更する処理が追加された点と、色判定テーブルの代わりにストローク幅マッピングテーブルを参照する点とが異なっている。
図29示すストローク最適配置位置決定部214の処理フローに従って詳しく説明する。ストローク最適配置位置決定部214は、ストローク位置情報保持部101に保持されたストローク位置情報からストロークの上部と下部を表すY座標のペアを取り出し、各ストロークについて、サブピクセル座標系における上部直線と下部直線の座標を算出する(ステップ291)。同時に、移動量Mの初期値(M=0)を設定する。
【0064】
さらに、ストローク最適配置位置決定部214は、算出された上部直線と下部直線の座標から、各ストロークのストローク幅をピクセル単位で算出し、そのストローク幅に応じた階調色の組合せの候補を上記ストローク色マッピングテーブルから取り出し(ステップ292)、各ストロークのストローク幅の変更を要するか否かの判断と、変更を要するストロークのストローク幅の変更とを行なう(ステップ293)。
【0065】
ここで、変更処理とは、ストローク幅Wによっては、階調色マッピングテーブルからストロークの階調色(ピクセル毎の階調色の組み合わせ)を生成した場合に、ストローク色マッピングテーブルにおける最適な階調色になり得ない場合があるので、その場合に最適な階調色になり得るストローク幅Wに変更する処理をいう。
【0066】
たとえば、ストローク幅Wが1サブピクセルの場合、ストローク色マッピングテーブルによれば最適な階調色は灰色である(図28参照)。
ところが、図33(b)の階調色マッピングテーブルによればストローク幅1のストロークは白色にマッピングされている。これでは、ストロークをどんなに移動させてもストローク色マッピングテーブルに設定されている最適な階調色の灰色を、階調色マッピングテーブルから得ることができない。階調色マッピングテーブルにおいて、ストロークの階調色として灰色が得られるように、ストローク幅を(例えば1から2サブピクセルに)変更する。図33(a)の階調色マッピングテーブルが用いられる場合には、ストローク幅1のストロークは灰色にマッピングされているので変更不要である。
【0067】
この後、ストローク最適配置位置決定部214は、各ストロークについて、ストロークと重なりストローク幅方向に並ぶピクセルに分割し、分割された各ピクセルにおけるストローク幅Hをサブピクセル単位で算出し(ステップ294)、階調値マッピングテーブルと、階調色マッピングテーブルとを参照してピクセル毎に階調値と階調色を求め(ステップ295、296)、ストローク毎に、階調色マッピングテーブルから求めた階調色と、ストローク色マッピングテーブルの最適な階調色とが一致するかを判定する(ステップ297)。
【0068】
一致しないストロークが1つでも存在する場合には、ストローク最適配置位置決定部214は、移動量Mを1増加(M=M+1)させ(ステップ298)、一致しなかった各ストロークについて、移動量が示すサブピクセル数分を上下方向に移動させた場合のストロークの座標を算出し(ステップ299)、再度上記ステップ294〜297を実行する。これにより全てのストロークの階調色は、ストローク色マッピングテーブルの最適な階調色に一致することになる。
【0069】
この後、輪郭情報拡大縮小部107、多階調データ生成部108によって、第1実施形態と同様にして階調データが生成される。
<ストローク幅の変更要否判断処理と変更処理>
図30は、図29のステップ293に示したストローク幅変更の要否の判断処理と、変更を要するストロークのストローク幅変更処理とを示すより詳細なフローチャートである。
【0070】
ストローク最適配置位置決定部214は、ステップ292においてストローク色マッピングテーブルから取り出された、各ストロークの最適な階調色の組合せにおいて、その組み合わせにおける階調色となる最低階調値と最高階調値とを階調色マッピングテーブルから取出す(ステップ301)。例えば、ストローク幅4の場合、図28のストローク色マッピングテーブルの最適階調色は灰色と黒色の組合せである。図33(a)の階調色マッピングテーブルから、灰色となる最低階調値1、最高階調値3、黒色となる最低階調値4、最高階調値4が取出される。
【0071】
さらに、ストローク最適配置位置決定部214は、取り出した最低階調値と最高階調値とを用いてストローク毎に以下の計算を行なう。最適階調色の各ピクセル色の最低階調値のみを、また最高階調値のみを全て加算することにより、灰と黒からなる最適階調色になる最小と最大のストローク幅Wを算出し(ステップ302)、最適階調色となり得るストローク幅の範囲を決定する(ステップ303)。
上記の例では、
灰色の最低階調値1+黒色の最低階調値4=5
灰色の最高階調値3+黒色の最高階調値4=7
と計算される。
【0072】
これより灰と黒からなる最適階調色になり得る最小のストローク幅Wは5であり、最大のストローク幅Wは7であり、従って、灰色と黒色からなる最適階調色を得ることができるストローク幅Wの範囲は5〜7サブピクセルである。
さらに、ストローク最適配置位置決定部214は、ステップ292で求められた多階調データの生成対象の各ストロークについて、ストローク幅が最適階調色になり得る範囲内であるか否かを判定し(ステップ304)、範囲外にあるストロークの全部のストローク幅を変更する(ステップ305)。ここでの変更は、対象ストローク幅が範囲を越えている場合にはストローク幅を細くするように、対象ストローク幅は範囲に満たない場合はストローク幅を太くするように、ストローク上部直線又は下部直線の移動による。この場合、ストローク最適配置位置決定部214は、上部直線又は下部直線の移動距離を最小限に押さえるため、上記範囲に最も近い幅にする。また、移動すべき距離が偶数サブピクセルの場合は2で割った移動距離分均等に上部直線と下部直線とを移動し、奇数の場合はどちらかを1サブピクセル分多く移動する。
【0073】
上記の例では対象ストローク幅が4サブピクセル、最適階調色になり得るストローク幅の範囲は5から7である。この場合にはストローク最適配置位置決定部214は、ストローク幅を5にするため、上部直線と下部直線の何れか一方を1サブピクセル移動する。
なお、図30では、ストローク幅を変更する場合に、移動距離だけを参照し、移動方向は考慮に入れずに移動を行ったが、ストローク色マッピングテーブルを参照して適切な方向に移動位置を決定すると処理がより早くなる場合がある。
<ストローク幅の変更テーブル>
また、図30では、生成すべき多階調データ毎にストローク幅の変更をするか否かを計算することになるが、変更を必要とするストローク幅に関する変更テーブルを予めテーブル保持部105に記録させおいてもよい。
【0074】
この場合の変更テーブルの一例を図34(a)(b)に示す。
図34(a)は、図33(a)の階調色マッピングテーブルが使用される場合の変更テーブルであり、変更を要するストローク幅と変更後のストローク幅とを対応付けている。この変更テーブルでは、ストローク幅4、8のストロークについては変更を必要とし、それぞれの変更後にとるべきストローク幅5、9を示している。この変更テーブルの説明図を図35に示す。図35において(1)〜(9)はストローク幅Wを示し、各ピクセルの階調色は表示マッピングテーブルに従っている。同図で×印を付したストローク幅(4)(8)は、ストローク色マッピングテーブルの最適階調色にはなり得ないストローク幅Wであることがわかる。このストローク幅Wが4、8のストロークは、変更テーブルに従って5、9に変更されることにより黒と灰の最適階調色になることができる。
【0075】
また図34(b)は、図33(b)の階調色マッピングテーブルが使用される場合である。×を付したストローク幅(1)、(4)、(5)、(8)が変更を要するストロークである。
<ストローク幅変更処理>
図30のステップ305におけるストローク幅変更の処理をより詳細に説明する。
【0076】
図37(a)〜(d)は、ストローク幅Wが4サブピクセルのストロークを、ストローク幅5に変更する場合の具体例を示す説明図である。
同図(a)のように、4サブピクセルのストロークが1ピクセル目に3サブピクセル(幅3)、2ピクセル目に1サブピクセル(幅1)になるように配置されているとする。同図(b)はストローク上部直線を1サブピクセル移動した場合であり、ストローク階調色は最適階調色(灰と黒)になっている。同図(c)はストローク下部直線を1サブピクセル移動した場合であり、ストローク階調色は最適階調色(灰と黒)になっていない。この場合は、黒と灰になるように再度ストローク全体を再配置しなおして、同図(d)にする必要がある。
【0077】
図31は、ストローク最適配置位置決定部214の処理内容を示すフローチャートである。
同図のように、ストローク最適配置位置決定部214は、変更が必要なストロークについて、ストローク上部直線又は下部直線の移動方向を設定する(ステップ311)。水平ストロークの場合は上方向か下方向、垂直ストロークの場合は左方向か右方向である。次いで、ストローク最適配置位置決定部214は、ストローク上部又は下部直線の移動量を決定する(ステップ313)。この移動距離は、偶数の場合は2で割った移動距離分均等に2つの直線を移動し、奇数の場合はどちらかの直線を1サブピクセル分多く設定する。
【0078】
この後、ストローク最適配置位置決定部214は、上部直線又は下部直線又は両方を移動し(ステップ314)、移動したストロークをピクセルごとに分割し(ステップ312)、分割したストロークより階調マッピングテーブルを用いて階調値を算出し(ステップ316)、階調値より階調色マッピングテーブルを用いて階調色を取り出す(ステップ317)。
【0079】
さらに、ストローク最適配置位置決定部214は、階調色マッピングテーブルから取出した階調色が、最適階調色と一致するか否か判断する(ステップ318)。判断の結果、一致していればストロークを移動した位置で終了する。
一致していなければ、移動方向を変更して再度ステップ311〜317までを行う。こうして、2方向の移動を行ない(ステップ312:yes)、いずれの方向も一致しない場合は、どちらかの方向に直線を移動することによりストローク幅を変更して終了する。
【0080】
なお、ステップ313において、移動量が偶数の場合に、2で割った移動距離を求めて移動量を均等にしたが、移動量全てをどちらかの方向に移動して算出して試しても構わない。この場合、移動量が一番少ないものから試し、移動量を最小に押さえることが重要である。
上記の処理により、多階調データの対象となる全てのストロークは、図35、図36に示したように、×印が付されていないいずれかの階調色をとることになる。
【0081】
図35においてストローク幅7は7aの例のように黒色と灰色の組合せで表現可能であるが、図28のストローク色マッピングテーブルに従って灰色+黒色+灰色の組合せで配置した7bを最適とする。図28のストローク色マッピングテーブルでこのように指定しているのは、ストローク幅7からストローク幅8に切り変わる時に、ピクセル数が2から3に変化すると急激に太く見えるので、7bのように3ピクセルではあるが、両端のピクセルに灰色を配置する方がよいからである。
【0082】
また、図36においては、ストローク幅1を2に、ストローク幅4と5のストローク幅を増やして6にしている。また、ストローク幅8を増やして9にしている。ストローク幅7aと7bに関しては図35と同じ理由からである。
このように本実施例においては、同じストローク幅のものは、同じ階調色で表現できるので、ストローク幅が揃った品質の高い多階調データを生成できる。
【0083】
また、ストローク移動を行なうだけでなく、ストローク幅を変更することにより低階調であっても出力装置に応じた最適な階調値をもつ多階調データを生成できる。
<第3実施形態>
本実施形態における多階調データ生成装置のハードウェア構成は図1と同じであるが、ROM2中のプログラムが一部異なる。
【0084】
図38は、図1におけるROM2のプログラムをCPU4が実行することにより実現される多階調データ生成装置300を機能別に表した機能ブロック図である。
多階調データ生成装置300は、図27の多階調データ生成装置200に対して、最適配置基準テーブル作成部104、ストローク位置移動部106が追加されている点と、ストローク最適配置位置決定部114の代わりにストローク最適配置位置決定部314を備えている点が異なっている。
【0085】
以下、図27と同じ点は、説明を省略して異なる点を主に説明する。
多階調データ生成装置300は、ストローク位置移動部106において8階調(8色)の多階調データの最適位置に各ストロークを移動し、さらに、8階調から3階調に階調数を低減させた場合の最適位置をストローク最適配置位置決定部114において決定するように構成されている。
【0086】
テーブル作成部104は、サブメッシュ座標系において水平ストロークおよび垂直ストロークを配置すべき最適な位置の候補を、要求サイズ(ピクセル数)及びサブピクセル数に応じて決定し、テーブル保持部105に格納する。最適な位置の候補は、ストローク位置移動部106によってストローク中心線を移動させて配置する基準になるものであり、本実施形態ではピクセル内の1/4サブピクセル境界および3/4サブピクセル境界とする。この場合、テーブル作成部104は、サブメッシュ座標系における全ての1/4サブピクセル境界および3/4サブピクセル境界の座標を求めてテーブル保持部105に格納する。
【0087】
図39は最適配置基準テーブルの一例を示す。同図は10×10メッシュ座標系におけるピクセル位置と、80×80サブメッシュ座標系における垂直方向の1/4サブピクセル境界および3/4サブピクセル境界の座標との対応関係を示す。水平方向についても同様である。
<ストローク位置移動部106>
ストローク位置移動部106は、ストローク位置情報保持部101のストローク位置情報に含まれる各ストロークについて、テーブル保持部105に保持された最適配置基準テーブルを参照して、サブメッシュ座標系への拡大縮小後のストローク最適配置位置を決定する。
【0088】
より詳しく説明するために図40に、ストローク位置移動部106の処理内容を表す流れ図を示す。これは水平ストロークの場合の流れ図であるが、垂直ストロークの場合の処理も同様である。
まずストローク位置移動部106はストローク位置情報保持部101に保持されたストローク位置情報からストロークの上部と下部を表すY座標のペアを1個取り出す(図40のステップ1201)。図4および図5で表現されるアウトラインデータの場合には(100、200)(450、550)(713、813)という3種類のストロークに対する位置情報が含まれている。ストローク幅はすべて100である。まず最初に、1番目の(100、200)が取り出される。
【0089】
次にストローク位置移動部106は拡大縮小後のストローク幅を次式により求める(ステップ1202)。
Wsp=(U_n−L_n)・Np・Nsp/Norg −(式1)
ここで、Wspは拡大縮小後のストローク幅、(U_n−L_n)は元のストローク幅、Npは要求サイズにおけるピクセル数、Nspは1ピクセル内部のサブメッシュ 分割数(1ピクセルの1辺あたりのサブピクセル数)、Norgはオリジナルのア ウトラインデータの座標系の大きさである。例えばストローク位置情報が(100、200)の場合には、拡大縮小後のストローク幅は100×10×8/1000=8といった計算で求められる。こうして求まった値「8」は、サブメッシュ(サブピクセル)を1単位として表した拡大縮小後のストローク幅になっている。もともとストローク幅が同じなら、この計算で求まる拡大縮小後のストローク幅も必ず同じになるので、計算時の量子化誤差によるストローク幅の不揃いは起こらなくなる。この例では、3本のストロークの幅はもともとすべて「100」なので、拡大縮小後のストローク幅はすべて「8」(8サブピクセル分)となる。この幅はヒント処理によりストローク幅の一貫性を保つために用いられる。
【0090】
さらにストローク位置移動部106は、拡大縮小後のストロークの中心線の初期配置位置(Y座標)を次式により求める(ステップ1203)。
Cini=((U+L)/2)・Np・Nsp/Norg −(式2)
ここで、Ciniは初期配置位置のY座標、(U+L)/2は元の(1000メッシュ座標系の)ストロークの中心位置、Np・Nspは要求データサイズのサブメ ッシュ座標系の大きさである。例えば第1水平ストローク(100、200)の中心線の位置は1000メッシュ座標系で150であり、80サブメッシュ座標系に縮小すると、初期配置位置は150×80/1000=12で求まり、12サブピクセル位置となる。これは下から2番目のピクセルの中央サブグリッド境界線に対応する。上式により得られるCiniの値は整数化する必要がなく、小数のままでよい。
【0091】
次いでストローク位置移動部106は、テーブル保持部105を参照して、ピクセル内部の1/4サブピクセル境界線上と3/4サブピクセル境界線上のうち初期配置位置から移動距離の少ないほうにストローク中心線を移動し、移動した位置を最適配置位置Coptと決定する(ステップ1204 )。このとき移動距離が同じ場合には、直前の(隣接する)水平ストロークの移動方向と同じ方向へ移動する。直前の水平ストロークが存在しないか移動されていない場合にはどちらへ移動してもよいものとする。例えば、図41に示すように初期配置位置Ciniがピクセル中央(1/2サブピクセル境界線上)にあり、1/ 4および3/4サブピクセル境界線上への距離はどちらも2サブピクセル分で移動距離は等しく、直前のストロークも存在していない場合には、どちらへ移動してもよい。ここでは3/4サブピクセル境界上へ移動することにする。(移動距離の比較はサブピクセルより細かい精度で行うと、より正確な判断が可能である)
さらにストローク位置移動部106は、ステップ1204で決定したストローク中心線の最適配置位置Coptとステップ1202で求めたストローク 幅Wspとを用いて、ストロークの上部直線および下部直線の配置位置を次式に基づいて決定する(ステップ1205)。
【0092】
Uopt=Copt+Wsp/2 −(式3)
Lopt=Uopt−Wsp −(式4)
ここで、Uoptはストロークの上部直線、Loptはストロークの下部直線の位置 を表す。具体的には、ストローク位置移動部106は(式3)によりストローク中心線配置位置Coptにストローク幅Wspの半分の値を加算する。さらにサブグリッド上に乗るように量子化することでストロークの上部直線の位置Uoptを決定する。次に(式4)により上部直線からサブピクセル単位の整数化されたストローク幅Wspを減算して下部直線位置Loptを決定する。この方法によれば、ストローク幅Wspが保証される。量子化する際には、ストローク中心線初期配置位置Ciniを中心としてストロークを配置した場合との誤差が少なくなる方向へ量子化する。図5のストローク1の例ではCopt=14なので、下部直線と上部直線の位置は図42に示されるよう10および18サブピクセル位置となる。
【0093】
この後ストローク位置移動部106は、ストローク位置情報に含まれる全てのストロークについて上記処理が終了したかを判定し、未処理のストロークがあれば最適配置位置の決定処理を終了する(ステップ1206)。この例では、ストローク位置情報が3個存在するので、3回繰り返し処理が行われる。ストローク2ではストローク1と同様に1/4境界と3/4境界への距離が同じになるが、直前のストローク1の移動方向と同じ方向である1/4境界へ移動する。また、ストローク3は中心線の初期位置が7/8サブピクセル境界であり、3/4サブピクセル境界が最も移動量が少ないため3/4境界に移動する。垂直ストロークが存在すれば同様に垂直ストローク最適配置位置も求める。このようにして求めたストローク最適配置位置、ストロークの上部直線および下部直線の位置を図43に示す。同図においてWsp_n、Copt_n、Lopt_n、Uopt_nは、それぞれ水平ストロークn(n=1〜3)に対応するストローク幅、ストローク最適配置位置、ストロークの上部直線及び下部直線の座標を示している。
<ストローク位置移動部106の移動結果>
ストローク位置移動部106により得られた図43の最適位置に従って、輪郭情報拡大縮小部107、多階調データ生成部108により8階調の多階調データを生成した場合の多階調データを示す。
【0094】
同図では、ストローク位置移動部106によって同じ幅を持つストロークはピクセル内で同じサブピクセル位置に配置されるため、図44においては、図9および図11と異なりストローク幅が不揃いに見えたり全体に濃淡のムラやにじみが生じたりすることがなく、表示品質が向上する。図44では3本のもともと同じ幅の水平ストロークが同じパターンの階調表現に変換されており、低解像度のディスプレイや液晶パネル上で見た場合に、濃淡のムラが少なくバランスのとれた文字に見えるようになっている。
【0095】
本実施形態で行っているようにストローク中心線の最適配置位置として1/4または3/4サブピクセル境界上を選択した場合には、さらに以下に説明する効果がある。
従来の技術の課題説明のところで、図10と図11を用いて、鮮明すぎる場合と薄くにじんでしまう場合を紹介した。右端の例は鮮明すぎてかつ細く見えすぎる場合であるが、これはストロークの中心線がピクセル内の1/2サブピクセル境界上に配置された場合である。この部分だけが2値表現に近くなっているので、普通に中間調で表現されている斜線や曲線と比較してバランスが悪く濃淡ムラの原因にもなる。逆に中央の例は、薄い中間色が2ピクセルにまたがっているため、太いがにじんで見えてしまう。
【0096】
これはストロークの中心線がピクセル境界上に配置された場合である。この場合、液晶パネルによっては輝度特性の影響でほとんど消えてしまう場合もある。ストローク幅が8サブピクセルの場合、図45に示されるように合計8通りの配置パターンが存在する。点線はストロークの中心線である。図46は図45に対応した多階調データでの表現であるが、(1)のストロークの中心線が1/2サブピクセル境界上にある場合と、(5)の中心線がピクセル境界上にある場合が、ディスプレイ上では両極端に見える。逆に(1)と(5)の中間に位置する(3)と(7)は、それぞれ中心線が1/4および3/4サブピクセル境界上に配置された場合であり、両者は対称形で見かけ上の特性は同じであるが、両者とも見かけ上の太さおよび色の濃さは8通りの中でちょうど中間に位置し、非常に平均的でバランスがとれている。
【0097】
また、(1)や(5)の場合には、8通りの配置位置の中で同じに見える位置が1ヵ所しかないが、中心線を1/4または3/4サブピクセル境界上に配置する場合は同じように見える位置が2ヵ所存在している。これはストロークの初期配置位置からの移動距離を短くする効果があり、ストロークを移動しすぎることによる忠実な形状再現性の低下を防ぐことができる。
【0098】
これらの特長は、ストローク幅が8サブピクセルの場合以外でも当てはまる。また、ストローク幅が1ずつ増加した場合のストロークの見かけ上の変化も緩やかであり、ストローク幅の逆転現象など一貫性を崩すことがない。
以上のことから、フォントに関していえば、小さなサイズでの様々な書体の表現や同一書体でのウエイト(太さ)の違いの表現が、濃淡のムラを発生させずに非常に自然でバランスよく表現することが可能になる。
<ストローク最適配置位置決定部314>
ストローク最適配置位置決定部314は、第1実施形態のストローク最適配置位置決定部114に比べて、ストローク位置移動部106の移動結果(図43参照)から拡大縮小後のストローク座標を計算する点が異なっている。
【0099】
すなわち、ストローク最適配置位置決定部314は、図20に示したストローク最適配置位置決定部114の処理フローにおいて、ステップ201の代わりに、ストローク位置移動部106の移動結果から拡大縮小後のストローク座標を計算するステップを有している。この点以外は、ストローク最適配置位置決定部114と同じである。
【0100】
したがって、ストローク最適配置位置決定部314は、ストローク位置移動部106によって中心線を1/4または3/4サブピクセル境界上に配置された各ストロークに対して、低階調データ用にさらに最適位置に移動する。
<動作例>
図47は、ストローク位置移動部106に生成され、図44に示した8階調の多階調データを3階調の能力を持つ表示部に出力した場合の一例である。この例では、階調値0、1が白に、2、3、4が灰色に、5、6、7が黒に対応している。図44の多階調データと比べると品質は劣化するが、図9の従来の多階調データと比較すると3本のストローク幅が揃っており、表示部の階調数が8階調から3階調に低下しているにもかかわらず品質は向上している。この場合、ストローク最適配置位置決定部314は、既に、各ストロークの階調色が適切になっているので、変更を加える必要がない。
【0101】
図48は、図47と同じ3階調の多階調データであるが、階調値と階調色のマッピングが異なった場合の例である。この場合の階調色は0、1、2が白に、3、4が灰色に、5、6、7が黒に対応している。このような場合においては、3本のストローク幅はそろうが、3階調の表現能力があるにもかかわらずストロークが黒の1本線となってしまい、2値表現に近くなり、品質は劣化してしまう。つまり、黒1本のみの水平ストロークは、インターレース方式のディスプレイではちらつき(フリッカ)が生じ、非常に見にくい。
【0102】
この場合、ストローク最適配置位置決定部314は、第1実施例で説明したように、階調色が適切になるようにストロークの再配置を行なう。その結果、図26に示したような多階調データを得ることができる。ストローク最適配置位置決定部314は、ストローク位置移動部106によりストローク配置がピクセル境界に対して相対的に揃ったストロークに対して、再位置を行なうことになる。それゆえ、ストローク最適配置位置決定部314は、第1実施形態に比べて、より確実かつ容易に適切な階調色を得ることができる。
<他の変形例>
上記各実施形態では、図16〜図19の色判定テーブルを用いて3階調の多階調データを生成する場合を示した。ここでは、4階調の多階調データを生成する場合の色判定テーブルについて説明する。
【0103】
図49〜図51は、階調色が4色(白、灰1、灰2、黒)の場合の色判定テーブルの具体例を示す。白、灰1、灰2、黒は、この順に暗くなるものとする。
図49は、ストロークの幅Wが1ピクセルの場合の色判定テーブルを表わしている。同図の「色」欄はストロークがとり得るすべての階調色を示す。ここでは、ストローク幅方向のピクセルが取り得る値は、白、灰1、灰2、黒の4通りしか存在しない。「判定」欄では、4通りのうち「灰1」と「灰2」について”○”(適切)となっている。なぜなら「白」はストロークが消滅してしまう点で、「黒」はインターレース方式のディスプレイではちらつきが生じ、液晶ディスプレイでは画素境界が視覚的に強く表示されるからである。これに対して「灰色」はちらつきが目だないし、画素境界が視覚的に強く表示されないからである。
【0104】
図50は、ストロークの幅Wが2ピクセルの場合の色判定テーブルを表わしている。「判定」欄において、「白白」「白黒」「黒白」が”×”(不適切)なのは、図17と同じ理由による。「灰1灰2」「灰2灰1」「灰1灰1」「灰2灰2」が”×”(不適切)を示しているのは、ストロークがぼやけて見えるからである。「白灰1」「白灰2」「灰1白」「灰2白」「灰1黒」「灰2黒」「黒灰1」「黒灰2」が適切を示しているのは、ちらつきが目立たないし、画素境界が視覚的に強く表示されないからである。
【0105】
図51は、ストロークの幅Wが3ピクセルの場合の色判定テーブルを表わしている。この場合、「色」欄の階調色の組み合わせは、2ピクセル目は必ず「黒」になるので、図50と同様に16通り存在する。この場合、1または3ピクセル目に中間階調色(「灰1」又は「灰2」)を含む組み合わせは、すべて”○”(適切)を示す。これ以外の組み合わせは”×”(不適切)を示す。
【0106】
また、図51は、ストロークの幅Wが4ピクセルより多いnピクセルの場合も、判定に用いられる。つまり、2ピクセル目から(nー1)ピクセル目は必ず「黒」になるので、階調色の組み合わせは16通りであり、1またはnピクセル目に中間階調色を含む組み合わせは、すべて”○”(適切)を示す。これ以外の組み合わせは”×”(不適切)を示す。
【0107】
図49〜図51は、図17〜図19と同様に、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色(灰1、灰2)である組み合わせを、適切な組み合わせとしている。
<多階調データの利用例>
次に、多階調データ生成装置により生成された多階調データをフォントデータとして利用するシステム例について説明する。
【0108】
図52は、多階調データ生成装置により生成された多階調データをフォントROMに格納して利用するシステムの説明図である。
多階調データ生成装置100は、少なくとも1つの書体に含まれる全ての文字や図形について多階調データを生成し、ビットマップフォントデータとしてROM(以下フォントROMと呼ぶ)に書き込む。フォントROMは、単体で組み立てメーカー等に供給され、あるいは、セットトップボックス(衛星放送チューナー:以下STBと略す)150に実装されてから販売店や一般家庭等に供給される。
【0109】
STB150は、家庭等においてアンテナ151とともに設置され、放送局153からアンテナ154、放送用衛星152を経由して送信される放送波を受信する。STB150は、ROMからビットマップフォントデータを読み出して、メニュー画面や番組表における文字表示を行なう。
図53は、ROMに格納されたビットマップデータの説明図である。同図は、漢字”円”を示す23×23ピクセルのビットマップフォント例であり、ストローク幅が約2ピクセルのゴシック体で表現されている。同図のように、フォントROMは、白色のピクセルを”00”、灰色のピクセルを”01”、黒色のピクセルを”10”というように、各ピクセルを2ビットで表現したビットマップデータを格納している。
【0110】
図54は、ストローク幅が4ピクセルの太ゴシック体で表現された”円”を表すビットマップフォント例である。図53と同様に、各ピクセルが2ビットで表現されている。
なお、図53、54では、各ピクセルが2ビットで表現されているが、階調色を区別することができればよいので、各ピクセルが3ビット以上で表現されていてもよい。
<多階調データの構造>
フォントROMに格納された多階調データ(ビットマップデータ)のデータ構造について説明する。
【0111】
既に説明してきたように、本発明の多階調データ生成装置により生成されるビットマップフォント(以下本ビットマップフォントと呼ぶ)では、全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一端のピクセルデータが中間階調色になっている。
より具体的に、3階調(階調色が3色)の場合と、4階調(同4色)の場合とでストローク幅毎に場合わけして説明する。
【0112】
図55、56は、3階調の場合の本ビットマップフォントのデータ構造を示す説明図である。
図55、56において、階調色2は階調色1と3の間の中間階調色である。例えば、階調色1、2、3は、同図のように白、灰、黒である。また、第1端ピクセルは上記ピクセル列の一端のピクセルであり、第2端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第1、第2端ピクセル間に存在するピクセルであり、ストローク幅がnピクセルの場合は第1、第2端ピクセルを除く(n−2)個のピクセルを指す。
【0113】
3階調で、ストローク幅が3ピクセル以上の場合には、本ビットマップフォントにおける垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図55に示す階調色の組み合わせの何れかになっている。
例えば、図53における一番上の水平ストロークは、ストロークの幅方向のピクセル列が図55の2行目の(灰、黒、白)となっている。但、一番上の水平ストロークが他のストロークと連結する部分では、図55にあてはまらないこことは当然である。同様に、図54に示したビットマップフォントの場合も同様に図53に示したデータ構造があてはまる。
【0114】
また、3階調で、ストローク幅が2ピクセルの場合には、本ビットマップフォントにおける垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図56に示す階調色の組み合わせの何れかになっている。
3階調で、ストローク幅が1ピクセルの場合、本ビットマップフォントにおける垂直ストローク及び水平ストロークは、灰色となっている。
【0115】
図57、58は、3階調の場合の本ビットマップフォントのデータ構造を示す説明図である。図57、58中の階調色1から4は同順で明るい又は暗い階調色であり、例えば、白、淡い灰、濃い灰、黒である。
4階調で、3ピクセル以上のストローク幅の場合には、本ビットマップフォントにおいて、垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図57に示す階調色の組み合わせの何れかになっている。
【0116】
また、4階調で、ストローク幅が2ピクセルの場合には、本ビットマップフォントにおいて、垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図58に示す階調色の組み合わせの何れかになっている。
また、4階調で、ストローク幅が1ピクセルの場合には、本ビットマップフォントにおいて、垂直ストローク及び水平ストロークのピクセルデータは、階調色2又は3になっている。
【0117】
上記のように、フォントROMに格納される多階調データ(ビットマップフォント)は、全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一端のピクセルデータが中間階調色になっている。これにより3階調、4階調程度の低階調の場合に、インターレース方式のディスプレイや液晶表示パネルにおいて見ばえのよい表示を得ることができる。
【0118】
なお、上記実施形態では、多階調データがフォントROMに格納される場合を説明したが、記憶媒体はそれに限らず、FD、CD−ROM等の記憶媒体に格納され、他のコンピュータで使用するようにしてもよい。
また、記憶媒体を経由しなくてもLAN、WAN、インターネット等のネットワークを経由して、多階調データを記憶するコンピュータから他のコンピュータがダウンロードして使用するようにしてもよい。さらに、STBの場合は、放送局の放送データの送信を制御するコンピュータが放送衛星経由して多階調データを放送波に載せ、STBを制御するコンピュータが放送波から多階調データをダウンロードして使用するようにしてもよい。
【0119】
【発明の効果】
本発明の多階調データ生成装置は、文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせ表した判定表を記憶する判定表記憶部と、ストローク位置を表わすデータを記憶するデータ記憶部と、データ記憶部に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出部と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を前記判定表に従って判定する判定部と、判定部により否と判定されたストロークについて、判定部により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更部と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成部とを備える。
【0120】
この構成によれば、位置変更部は判定部により適と判定されるまで、ストロークを移動させるので、判定表に示された適切な組み合わせの階調色をもつストロークからなる多階調データを得ることができ、ストロークのバランスがとれた良好な階調データを容易に生成することができる。低階調データの場合であっても、少ない階調色を有効に活用することができる。
【0121】
ここで、前記判定表記憶部は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして記憶する構成としてもよい。
この構成によれば、ストローク幅方向の両端のピクセルのうち、少なくとも一方が中間階調色になるので、低階調データの場合であっても中間階調色を有効に活用することができる。
【0122】
ここで、前記判定表記憶部は、階調数が3である場合に、ストローク幅が3ピクセル以上のストロークに対して表9、ストローク幅が2ピクセル以上のストロークに対して表10に示す階調色の組み合わせを、適切な組み合わせとして保持するようにしてもよい。
【0123】
【表9】
【0124】
【表10】
【0125】
表中、第1端ピクセルは前記ピクセル列の一端のピクセルであり、第2端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第1、第2端ピクセル間の1つ以上のピクセルであり、階調色2は階調色1と3の間の中間階調色を示す。階調色1、2、3は例えば白、灰、黒である。
この構成によれば、階調数が3である場合に、灰と黒との組み合わせを有効に使用するので、インターレース方式のディスプレイや液晶表示パネルにおいても見ばえのよい表示を得ることができる。
【0126】
ここで、前記判定表記憶部は、階調数が4である場合に、ストローク幅が3ピクセル以上のストロークに対して表11、ストローク幅が2ピクセル以上のストロークに対して表12に示す階調色の組み合わせを、適切な組み合わせとして保持するようにしてもよい。
【0127】
【表11】
【0128】
【表12】
【0129】
表中、階調色1から4は同順で明るい又は暗い。階調色1から4は例えば白、淡い灰、濃い灰、黒である。
この構成によれば、階調数が4である場合に、灰と黒との組み合わせを有効に使用するので、インターレース方式のディスプレイや液晶表示パネルにおいても見ばえのよい表示を得ることができる。
【0130】
ここで、前記位置変更部は、否と判定されたストロークをストローク幅方向に移動するよう前記データ記憶部に記憶されたデータを更新する更新部と、更新されたストロークの階調色を前記算出部に再度算出させ、その算出後に判定部に再度判定させるよう制御する制御部とを備える構成としてもよい。
この構成によれば、上記効果に加えて、判定部により位置変更部は、階調色が適切かどうかを判定しながらストローク位置を少しずつ移動させていくので、最小の移動量で最適な位置にストロークを配置できるので文字の形状を好適に保つことができる。
【0131】
ここで、前記算出部は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調色とを対応させたテーブルを予め記憶するテーブル記憶部と、データ記憶部に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルに対応する、ストロークが当該ピクセルに占める割合に応じた階調色をテーブル記憶部から読み出す読み出し部とを備える構成としてもよい。
【0132】
この構成によれば、上記効果に加えて、テーブル内容を容易に変更するだけで、任意の階調色数に対応することができる。
ここで、前記テーブル記憶部は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調値とを対応させた階調値テーブルと、階調値と階調色とを対応させた色テーブルとを記憶し、前記読み出し部は、階調値テーブルと色テーブルとを順に読み出すように構成してもよい。
【0133】
この構成によれば、上記効果に加えて、階調値テーブルと色テーブルにより二段階で、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と階調色とを対応させているので、テーブルを参照してストローク幅を変更し、ストローク移動のみでは実現できなかった最適な階調色を得ることができる。
ここで、前記多階調データ生成装置は、さらに全ストロークについて、前記座標系におけるピクセル境界とストローク中心線との距離が相対的に一定となる位置にストロークを移動させる移動部を備え、前記算出部は、移動部による移動の後に前記算出を行なうように構成してもよい。
【0134】
この構成によれば、移動部によって全てのストロークの位置がピクセル境界に対して相対的に揃うので、より確実かつ容易に適切な階調色を得ることができる。
また、本発明の多階調データ生成プログラムを記録したコンピュータ読み取り可能な記憶媒体は、
文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを示す判定表を記憶する判定表記憶部と、ピクセルを縦横に細分化したサブピクセルを表すサブピクセル座標系において、ストローク位置を表わすデータを記憶するデータ記憶部と、データ記憶部に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出部と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を判定表に従って判定する判定部と、判定部により否と判定されたストロークについて、判定部により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更部と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成部とを実現するプログラムを記憶した記憶媒体である。
【0135】
この構成によれば、本記憶媒体からプログラムを読み取ったコンピュータは、判定表に示された適切な組み合わせの階調色をもつストロークからなる多階調データを得ることができ、ストロークのバランスがとれた良好な階調データを容易に生成することができる。低階調データの場合であっても、少ない階調色を有効に活用することができる。
【0136】
また、本発明の階調付きビットマップフォントを記憶したコンピュータ読み取り可能なデータ記憶媒体では、前記ビットマップフォントにおいて全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一方は、そのピクセルデータが中間階調色を示すことを特徴とする。
このデータ構造をもつビットマップフォントは、ストローク幅方向の少なくとも一端のピクセルが中間階調色であることから、ストロークのバランスがとれた良好な階調データを容易に生成することができる。しかも低階調データの場合であっても、少ない階調色を有効に活用することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態における多階調データ装置のブロック図である。
【図2】多階調データ生成装置を機能別に表した機能ブロック図である。
【図3】従来の多階調データ生成装置の内部のブロック図である。
【図4】文字や図形などのアウトラインデータに含まれる輪郭情報とストローク位置情報の一例である。
【図5】文字や図形などのアウトラインデータに含まれる輪郭情報とストローク位置情報の一例である。
【図6】ピクセルをサブピクセルに分割した状態を示した図である。
【図7】80サブメッシュに縮小されたアウトラインデータの輪郭情報である。
【図8】図7の縮小されたアウトラインデータの輪郭情報から生成された80×80サブピクセルの2値データである。
【図9】図8の80×80サブピクセルの2値データから生成された多階調イメージデータである。
【図10】3本のストロークの配置状態を拡大した図である。
【図11】図10の3種類のストローク配置に対応する多階調データである。
【図12】図7の輪郭情報から生成された多階調データである。
【図13】(a)階調数が8(0〜7の階調値)である場合の階調値マッピングテーブルの一例である。(b)階調数が3(0〜2の階調値)である場合の階調値マッピングテーブルの一例である。
【図14】ピクセルと水平ストロークとの重なり部分のストローク幅Hを示す。
【図15】(a)(b)ともに階調色マッピングテーブルの具体例を示す。
【図16】ストロークの幅Wが1ピクセルの場合を色判定テーブルを示す。
【図17】ストロークの幅Wが2ピクセルの場合を色判定テーブルを示す。
【図18】ストロークの幅Wが3ピクセルの場合を色判定テーブルを示す。
【図19】ストロークの幅Wが4ピクセル以上の場合を色判定テーブルを示す。
【図20】ストローク最適配置位置決定部114の処理内容を表す流れ図を示す。
【図21】ストローク最適配置位置決定部114の作業用データテーブルを示す。
【図22】ストローク最適配置後の80サブメッシュに縮小された輪郭情報である。
【図23】ストローク最適配置位置決定部114の作業用データテーブルを示す。
【図24】最適配置位置における上部直線、下部直線の座標Uopt_n、Lopt_nを示す。
【図25】図24に示した上部直線、下部直線の座標Uopt_n、Lopt_nに基づいて変換する場合の変換式を示す。
【図26】多階調データ生成部108により生成され、展開バッファ103に格納された多階調データを示す。
【図27】第2の実施形態における多階調データ生成装置200を機能別に表した機能ブロック図である。
【図28】ストローク色マッピングテーブルの一例を示す。
【図29】ストローク最適配置位置決定部214の処理フローを示す。
【図30】図29のステップ293に示したストローク幅変更の要否の判断処理と、変更を要するストロークのストローク幅変更処理とを示すより詳細なフローチャートを示す。
【図31】ストローク最適配置位置決定部214の処理フローを示す。
【図32】階調値マッピングテーブルを示す。
【図33】(a)(b)ともに階調色マッピングテーブルを示す。
【図34】(a)(b)ともに変更を要するストローク幅と変更後のストローク幅とを対応付けた変更テーブルを示す。
【図35】変更テーブルの説明図を示す。
【図36】変更テーブルの説明図を示す。
【図37】(a)〜(d)ストローク幅Wが4サブピクセルのストロークを、ストローク幅5に変更する場合の具体例を示す説明図である。
【図38】第3実施形態における多階調データ生成装置300を機能別に表した機能ブロック図である。
【図39】最適配置基準テーブルの一例を示す。
【図40】本発明の第3の実施形態におけるストローク最適配置位置決定処理の流れ図である。
【図41】ストローク中心線とその移動方向の例である。
【図42】移動後のストローク下部直線と上部直線の位置を示す図である。
【図43】ストローク最適配置位置を示す図である。
【図44】輪郭情報から生成した8階調の多階調データである。
【図45】ストローク幅が8サブピクセルの場合の配置パターンである。
【図46】図45に対応した多階調データでの表現である。
【図47】8階調の多階調データを3階調の能力を持つ表示部に出力した場合の一例である。
【図48】8階調の多階調データを3階調の能力を持つ表示部に出力した場合の一例である。
【図49】階調数が4で、ストロークの幅Wが1ピクセルの場合の色判定テーブルを表わしている。
【図50】階調数が4で、ストロークの幅Wが2ピクセルの場合の色判定テーブルを表わしている。
【図51】階調数が4で、ストロークの幅Wが3ピクセルの場合の色判定テーブルを表わしている。
【図52】多階調データ生成装置により生成された多階調データをフォントROMに格納して利用するシステムの説明図である。
【図53】ストローク幅が3ピクセルの太ゴシック体で表現された”円”を表すビットマップフォント例である。
【図54】ストローク幅が4ピクセルの太ゴシック体で表現された”円”を表すビットマップフォント例である。
【図55】階調数が3で、ストローク幅が3ピクセル以上である場合のビットマップフォントのデータ構造を示す説明図である。
【図56】階調数が3で、ストローク幅が2ピクセルである場合のビットマップフォントのデータ構造を示す説明図である。
【図57】階調数が4で、ストローク幅が3ピクセル以上である場合のビットマップフォントのデータ構造を示す説明図である。
【図58】階調数が4で、ストローク幅が2ピクセルである場合のビットマップフォントのデータ構造を示す説明図である。
【符号の説明】
1 記憶部
2 ROM
3 RAM
4 CPU
5 表示部
6 入力部
100 多階調データ生成装置
101 ストローク位置情報保持部
102 輪郭情報保持部
103 展開バッファ
104 最適配置基準テーブル作成部
105 テーブル保持部
106 ストローク位置移動部
107 輪郭情報拡大縮小部
108 多階調データ生成部
111 階調値マッピングテーブル作成部
112 階調色マッピングテーブル作成部
113 色判定テーブル作成部
114 ストローク最適配置位置決定部
150 STB
151 アンテナ
152 放送用衛星
153 放送局
154 アンテナ
200 多階調データ生成装置
201 輪郭情報拡大縮小部
202 多階調データ生成部
213 ストローク色マッピングテーブル作成部
214 ストローク最適配置位置決定部
300 多階調データ生成装置
301 値データ生成部
302 階調値算出部
314 ストローク最適配置位置決定部
Claims (12)
- 所定のピクセル数からなるサイズの文字、図形の表示用階調データを生成する多階調データ生成装置であって、文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを表した判定表を記憶する判定表記憶手段と、ストローク位置を表わすデータを記憶するデータ記憶手段と、データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出手段と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を前記判定表に従って判定する判定手段と、判定手段により否と判定されたストロークについて、判定手段により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更手段と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成手段とを備えることを特徴とする多階調データ生成装置。
- 前記判定表記憶手段は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして記憶することを特徴とする請求項1記載の多階調データ生成装置。
- 前記判定表記憶手段は、表1に示す階調色の組み合わせを保持し、表1中、第1端ピクセルは前記ピクセル列の一端のピクセルであり、第2端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第1、第2端ピクセル間の1つ以上のピクセルであり、階調色2は階調色1と3の間の中間階調色を示すことを特徴とする請求項1記載の多階調データ生成装置。
- 前記判定表記憶手段は、さらに、表2に示す階調色の組み合わせを保持することを特徴とする請求項3記載の多階調データ生成装置。
- 前記判定表記憶手段は、表3に示す階調色の組み合わせを保持し、表3中、第1端ピクセルは前記ピクセル列の一端のピクセルであり、第2端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第1、第2端ピクセル間の1つ以上のピクセルであり、階調色1から4は同順で明るい又は暗いことを特徴とする請求項1記載の多階調データ生成装置。
- 前記判定表記憶手段は、さらに、表4に示す階調色の組み合わせを保持することを特徴とする請求項5記載の多階調データ生成装置。
- 前記位置変更手段は、判定手段により否と判定されたストロークをストローク幅方向に移動するよう前記データ記憶手段に記憶されたデータを更新する更新手段と、更新されたストロークの階調色を前記算出手段に再度算出させ、その算出後に判定手段に再度判定させるよう制御する制御手段とを備えることを特徴とする請求項1記載の多階調データ生成装置。
- 前記算出手段は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調色とを対応させたテーブルを予め記憶するテーブル記憶手段と、データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルに対応する、ストロークが当該ピクセルに占める割合に応じた階調色をテーブル記憶手段から読み出す読み出し手段とを備えることを特徴とする請求項1記載の多階調データ生成装置。
- 前記テーブル記憶手段は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調値とを対応させた階調値テーブルと、階調値と階調色とを対応させた色テーブルとを記憶し、前記読み出し手段は、階調値テーブルと色テーブルとを順に読み出すことを特徴とする請求項8記載の多階調データ生成装置。
- 前記多階調データ生成装置は、さらに全ストロークについて、文字、図形を構成する垂直ストローク及び水平ストロークの位置情報を特定するための座標系におけるピクセル境界とストローク中心線との距離が相対的に一定となる位置にストロークを移動させる移動手段を備え、前記算出手段は、移動手段による移動の後に前記算出を行なうことを特徴とする請求項1から9記載の何れかの多階調データ生成装置。
- 所定のピクセル数からなるサイズの文字、図形の表示用階調データを生成する多階調データ生成プログラムを記録したコンピュータ読み取り可能な記憶媒体であって、
コンピュータを、
文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを示す判定表を記憶する判定表記憶手段と、
ピクセルを縦横に細分化したサブピクセルを表すサブピクセル座標系において、ストローク位置を表わすデータを記憶するデータ記憶手段と、
データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出手段と、
算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を判定表に従って判定する判定手段と、
判定手段により否と判定されたストロークについて、判定手段により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更手段と、
変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成手段として機能させるためのプログラムを記憶した記憶媒体。 - 前記判定表記憶手段により記憶される判定表は、
ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして選ぶことで生成されることを特徴とする請求項11記載の記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23613299A JP4505082B2 (ja) | 1998-08-28 | 1999-08-23 | 多階調データ生成装置、プログラム記憶媒体、データ記憶媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10-243046 | 1998-08-28 | ||
JP24304698 | 1998-08-28 | ||
JP23613299A JP4505082B2 (ja) | 1998-08-28 | 1999-08-23 | 多階調データ生成装置、プログラム記憶媒体、データ記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000137480A JP2000137480A (ja) | 2000-05-16 |
JP4505082B2 true JP4505082B2 (ja) | 2010-07-14 |
Family
ID=26532503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23613299A Expired - Fee Related JP4505082B2 (ja) | 1998-08-28 | 1999-08-23 | 多階調データ生成装置、プログラム記憶媒体、データ記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4505082B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5028064B2 (ja) | 2006-10-16 | 2012-09-19 | 富士通株式会社 | アウトラインフォント輝度値補正システムおよび方法、並びにアウトラインフォント輝度値の補正を実行するためのプログラム |
DE112011105830B4 (de) * | 2011-11-09 | 2017-03-30 | Mitsubishi Electric Corp. | Zeichnungsvorrichtung und Zeichnungsprogramm |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59204087A (ja) * | 1983-05-04 | 1984-11-19 | 日本電気株式会社 | 映像文字信号発生装置 |
JPH0755565B2 (ja) * | 1989-03-04 | 1995-06-14 | ブラザー工業株式会社 | データ変換装置 |
JP3119805B2 (ja) * | 1994-12-20 | 2000-12-25 | 松下電器産業株式会社 | 多階調データ生成装置 |
JPH1138960A (ja) * | 1997-07-14 | 1999-02-12 | Nec Off Syst Ltd | パターン生成方法および装置ならびに記録媒体 |
-
1999
- 1999-08-23 JP JP23613299A patent/JP4505082B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000137480A (ja) | 2000-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3119805B2 (ja) | 多階調データ生成装置 | |
US5929866A (en) | Adjusting contrast in anti-aliasing | |
US6563502B1 (en) | Device dependent rendering | |
US5684510A (en) | Method of font rendering employing grayscale processing of grid fitted fonts | |
JP4358472B2 (ja) | イメージデータの非対称スーパーサンプリングラスタ化のための方法およびシステム | |
JP4598367B2 (ja) | ディスプレイデバイスに表示した画像内にサブコンポーネント指向キャラクタをレンダリングするための方法、および、その装置 | |
US20080285889A1 (en) | Image transform method for obtaining expanded image data, image processing apparatus and image display device therefore | |
US20050083348A1 (en) | Type size dependent anti-aliasing in sub-pixel precision rendering systems | |
US6753858B2 (en) | Image display apparatus, image displaying method and recording medium | |
JPH05346953A (ja) | 画像データ処理装置 | |
JP4505082B2 (ja) | 多階調データ生成装置、プログラム記憶媒体、データ記憶媒体 | |
JPH1093810A (ja) | 画像を効率的に補間する方法及び装置 | |
US5553219A (en) | Font outline and bit map generator synthesizing filling data with selected outline data or duplicate outline data | |
US7379076B2 (en) | Using pixel homogeneity to improve the clarity of images | |
JP3519186B2 (ja) | 画像中間調処理装置 | |
JPH05297861A (ja) | グラフィックス用途向け1/nビット化位相合わせのための方法 | |
JP3114561B2 (ja) | 画像処理装置 | |
KR100691501B1 (ko) | 스냅 힌팅과 스템 힌팅을 사용한 외곽선 폰트의 비트맵이미지 변환 방법 및 그 방법이 구현된 소프트웨어를저장한 컴퓨터가 읽을 수 있는 기록매체 | |
KR100832052B1 (ko) | 표시 장치, 표시 제어 장치, 표시 방법, 표시 제어프로그램 및 동 프로그램을 기록한 컴퓨터 판독 가능한기록 매체 | |
JPH09297567A (ja) | 文字表示方法および装置 | |
JP2927080B2 (ja) | 文字・図形発生装置および方法 | |
JPH07140945A (ja) | 階調文字表示方法及び装置 | |
JPH05197366A (ja) | フォントデータ生成装置 | |
JPH0636049A (ja) | 図形のハイライト表示方法及びグラフィックス装置 | |
JP2004226681A (ja) | 文字表示方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100308 |
|
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: 20100330 |
|
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: 20100426 |
|
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: 20130430 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |