(57)【特許請求の範囲】
【請求項１】
所定のピクセル数からなるサイズの文字、図形の表示用階調データを生成する多階調データ生成装置であって、文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを表した判定表を記憶する判定表記憶手段と、ストローク位置を表わすデータを記憶するデータ記憶手段と、データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出手段と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を前記判定表に従って判定する判定手段と、判定手段により否と判定されたストロークについて、判定手段により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更手段と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成手段とを備えることを特徴とする多階調データ生成装置。
【請求項２】
前記判定表記憶手段は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして記憶することを特徴とする請求項１記載の多階調データ生成装置。
【請求項３】
前記判定表記憶手段は、表１に示す階調色の組み合わせを保持し、表１中、第１端ピクセルは前記ピクセル列の一端のピクセルであり、第２端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第１、第２端ピクセル間の１つ以上のピクセルであり、階調色２は階調色１と３の間の中間階調色を示すことを特徴とする請求項１記載の多階調データ生成装置。
【表１】
0004505082.tif 000007
【請求項４】
前記判定表記憶手段は、さらに、表２に示す階調色の組み合わせを保持することを特徴とする請求項３記載の多階調データ生成装置。
【表２】
0004505082.tif 000008
【請求項５】
前記判定表記憶手段は、表３に示す階調色の組み合わせを保持し、表３中、第１端ピクセルは前記ピクセル列の一端のピクセルであり、第２端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第１、第２端ピクセル間の１つ以上のピクセルであり、階調色１から４は同順で明るい又は暗いことを特徴とする請求項１記載の多階調データ生成装置。
【表３】
0004505082.tif 000009
【請求項６】
前記判定表記憶手段は、さらに、表４に示す階調色の組み合わせを保持することを特徴とする請求項５記載の多階調データ生成装置。
【表４】
0004505082.tif 000010
【請求項７】
前記位置変更手段は、判定手段により否と判定されたストロークをストローク幅方向に移動するよう前記データ記憶手段に記憶されたデータを更新する更新手段と、更新されたストロークの階調色を前記算出手段に再度算出させ、その算出後に判定手段に再度判定させるよう制御する制御手段とを備えることを特徴とする請求項１記載の多階調データ生成装置。
【請求項８】
前記算出手段は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調色とを対応させたテーブルを予め記憶するテーブル記憶手段と、データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルに対応する、ストロークが当該ピクセルに占める割合に応じた階調色をテーブル記憶手段から読み出す読み出し手段とを備えることを特徴とする請求項１記載の多階調データ生成装置。
【請求項９】
前記テーブル記憶手段は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調値とを対応させた階調値テーブルと、階調値と階調色とを対応させた色テーブルとを記憶し、前記読み出し手段は、階調値テーブルと色テーブルとを順に読み出すことを特徴とする請求項８記載の多階調データ生成装置。
【請求項１０】
前記多階調データ生成装置は、さらに全ストロークについて、文字、図形を構成する垂直ストローク及び水平ストロークの位置情報を特定するための座標系におけるピクセル境界とストローク中心線との距離が相対的に一定となる位置にストロークを移動させる移動手段を備え、前記算出手段は、移動手段による移動の後に前記算出を行なうことを特徴とする請求項１から９記載の何れかの多階調データ生成装置。
【請求項１１】
所定のピクセル数からなるサイズの文字、図形の表示用階調データを生成する多階調データ生成プログラムを記録したコンピュータ読み取り可能な記憶媒体であって、
コンピュータを、
文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを示す判定表を記憶する判定表記憶手段と、
ピクセルを縦横に細分化したサブピクセルを表すサブピクセル座標系において、ストローク位置を表わすデータを記憶するデータ記憶手段と、
データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出手段と、
算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を判定表に従って判定する判定手段と、
判定手段により否と判定されたストロークについて、判定手段により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更手段と、
変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成手段として機能させるためのプログラムを記憶した記憶媒体。
【請求項１２】
前記判定表記憶手段により記憶される判定表は、
ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして選ぶことで生成されることを特徴とする請求項１１記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字や図形などを表わすアウトラインデ−タ等から多階調データを生成する多階調データ生成装置、プログラム記憶媒体、多階調データを記憶する記憶媒体に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータ、電子手帳、携帯型情報機器、ゲーム機器などの情報処理装置において、サイズ、字体、修飾等を多彩に設定できる文字表示機能が重要になっている。
一般にディスプレイは、プリンタと比較して解像度が低いため、白と黒の２値データでは文字や図形の輪郭部分がぎざぎざになったり、細かい形状が表現できないため、印刷物と比較して品質が劣ってしまう。また、白と黒だけでなく中間調（灰色）が表現できるディスプレイでは、各画素（以下では画素のことをピクセルと表現する）を白黒および中間調を用いて表示することにより解像度の低さを補い、表示品質を向上させることができる。例えばグラフィックスの分野ではアンチエリアシングという手法を用いて、白黒および中間調で表現された多階調データを生成することが一般に行われている。
【０００３】
従来、多階調データ生成方法およびその装置は、文字や図形などのアウトラインデータに含まれる輪郭情報から、まず要求されるサイズのピクセル数に対して縦横整数倍の白黒のみで表現された２値イメージを生成し、生成された２値イメージの単位面積（整数倍された１ピクセル）当たりに含まれる黒の個数に従って各ピクセルの階調値を決定することで、多階調データを生成していた。
【０００４】
図３は、従来の多階調データ生成装置の構成を示す機能ブロック図である。この多階調データ生成装置は、輪郭情報拡大縮小部２０１、多階調データ生成部２０２を備え、多階調データ生成部２０２は内部に２値データ生成部３０１と階調値算出部３０２とを有している。
以上のように構成された従来の多階調データ生成方法およびその装置について、以下図面を用いてその動作を説明する。
【０００５】
図４と図５は、文字や図形などのアウトラインデータに含まれる輪郭情報とストローク位置情報の一例を示す。この例ではゴシック体の漢字フォント「三」を１０００×１０００の座標系（以下では１０００メッシュと表現する）での直線の集合で表現している。輪郭情報は、３個の輪郭から構成されており、各座標点を結んでいくことにより輪郭線が描画される。この例では輪郭の終点座標は始点座標と自動的に結ばれるものとしている。直線に加えて２次曲線や３次曲線が併用されることも多い。一方、「三」に含まれる３本の水平ストローク（文字の場合は水平ステムと呼ばれる）の位置情報はストローク位置情報として保持されている。この例では、水平ストロークを構成する下部直線と上部直線のＹ座標値のペアが保持されている。この情報から水平ストローク幅は減算にて求められる。この例では３本の水平ストロークの幅はすべて等しくて１００という値である。水平ストローク情報として下部直線のＹ座標とストローク幅を保持したり、輪郭情報に座標点の属性として付加するなど、この例以外の方法で情報が保持される場合もある。垂直ストロークが存在する場合には、同様の方法で垂直ストローク情報も保持される。これらのストローク位置情報は一般にヒント情報とよばれ、拡大縮小後のストローク幅の一貫性を保持するために使用される。
【０００６】
以下では、このアウトラインデータから１０×１０ピクセル（縦・横方向それぞれ１０ピクセルずつの合計１００ピクセル）で構成される多階調データを生成する場合を考える。
輪郭情報拡大縮小部２０１は、アウトラインデータを要求されるサイズのピクセル数の縦横整数倍に拡大縮小する。この例では要求サイズは１０×１０ピクセルである。整数倍率を８×８倍（縦・横方向それぞれ８倍ずつ）とすると、１０００メッシュのアウトラインデータの輪郭情報は８０×８０メッシュのデータに縮小されることになる。もちろん整数倍率は８×８倍以外でもかまわない。
【０００７】
ここで整数倍することの意味合いを説明しておく。８×８倍の場合には、もともと１０×１０ピクセルのデータを要求されている場合、本来１０×１０メッシュに縮小すればよいはずである。しかし白黒２値データではなく多階調データを生成するためには、各ピクセルの階調値を決定する必要がある。そのために１ピクセルの内部を細分化し、１ピクセル中の黒部分の割合を求めて、その割合に応じて階調値を決定する。たとえば１ピクセルの１辺を８個に細分化すると１ピクセルは８×８個で合計６４個の小さなピクセルに細分化される。以下では１ピクセルを細分化するメッシュを「サブメッシュ」、細分化された小さなピクセルを「サブピクセル」、ピクセルとピクセルの境界線を「ピクセル境界」、サブピクセルとサブピクセルの境界線を「サブピクセル境界」、ピクセル境界の交点を「グリッド」（ピクセルの四隅の点）、サブピクセル境界の交点を「サブグリッド」（サブピクセルの四隅の点）と表現することにする。
【０００８】
図６はピクセルをサブピクセルに分割した状態を示したものである。太線がピクセル境界、細線がサブピクセル境界を表している。今回の例では１メッシュを８サブメッシュにすることになり、結果的に１ピクセルは８×８サブピクセル（合計６４サブピクセル）に分割される。要求サイズの縦横８倍に拡大縮小するということは、サブメッシュ（サブピクセル）で表現された座標系に変換することに対応している。この例では、１０００メッシュデータを８０サブメッシュ（１０メッシュ）データに縮小することになる。
【０００９】
図７は、８０サブメッシュに縮小されたアウトラインデータの輪郭情報を示している。単純な縮小では量子化誤差により「三」に含まれる３本の水平ストロークの幅が同じにならない可能性もあるが、ここではストローク位置情報を用いて、一般にヒント処理と呼ばれているストローク幅の一貫性を保つ処理を行うことで、ストローク幅は同じに揃えられている。この例では３本のストロークはすべて１０００メッシュで１００であったが、縮小後は３本とも１００×８０／１０００＝８で求められるように８サブメッシュ幅（８サブピクセル幅）に統一されている。なお、ヒント処理はアウトラインフォントから２値データを生成する時の品質向上手法として広く用いられている。ヒント処理を行わないとストローク幅が不揃いになり見た目の美しさが損なわれる。
【００１０】
２値データ生成部３０１は、輪郭情報拡大縮小部２０１で生成された拡大縮小後のアウトラインデータの輪郭情報から、２値イメージデータを生成する。図８は、図７の縮小されたアウトラインデータの輪郭情報から生成された８０×８０サブピクセルの２値データである。
階調値算出部３０２は、２値データ生成部３０１で生成された２値データから各ピクセルの階調値を算出することで、多階調イメージデータを生成する。１ピクセルを８サブメッシュに分割する場合には、最終の多階調イメージデータの１ピクセルが、８×８サブピクセルすなわち合計６４サブピクセルで表現される。階調値算出部３０２では、この６４サブピクセルのうちの黒サブピクセルの割合に応じた階調値を計算して、最終的な多階調イメージデータの１ピクセルの階調値とする。最終的に８階調の多階調イメージデータを生成する場合には、例えば６４サブピクセルのうちの黒サブピクセルの個数を８で割った商を階調値０〜７に対応させる（ただし個数が６４の場合は７とする）といった方法で階調値を算出する。ここで階調値０は白、階調値１〜６は中間調（数値が大きいほど黒に近い灰色である）、階調値７は黒を表すものとする。図９は、階調値算出部３０２によって、図８の８０×８０サブピクセルの２値データから生成された多階調イメージデータである。
【００１１】
【発明が解決しようとする課題】
ところで、上記従来の技術では、拡大縮小後のアウトラインデータの輪郭情報で水平ストロークや垂直ストロークの幅の一貫性がとれていても、ストロークを配置する位置によっては見かけが異なるため、美しさが損なわれるという問題点があった。
【００１２】
例えば、図７および図８では、「三」の３本の水平ストロークの幅は等しく、８サブピクセル分の幅である。しかし、３本のストロークは、多階調データでの１ピクセルの内部での配置位置が異なる。図１０は、３本のストロークの配置状態を拡大した図である。３本のストロークの上部直線が、左から順にそれぞれ上から７本目（ピクセル内７／８位置）のサブピクセル境界上、上から４本目（ピクセル中央）のサブピクセル境界上、ピクセル内のピクセル境界上に配置されている。
【００１３】
図１１は、図１０の３種類のストローク配置に対応する多階調データである。
図１１の右端の例では水平ストロークは鮮明すぎて非常に細く見え、中間調が含まれていないため、他の曲線や斜線を表すストロークがある場合、中間調表現とのバランスもよくない。図１１の中央の例では水平ストロークは、にじんだように薄く広がって見える。このように配置位置が異なると、同図で示されるように異なった階調値を用いたストローク表現になる。従って、図９の多階調データでは３本とも表現が異なってしまっており、低解像度のディスプレイや液晶パネルではストローク幅が不揃いに見えてしまう。また、太さの異なる２本のストロークがある場合、本来太いはずのストロークのほうが細く見えてしまうといった逆転現象も起こってしまう。ストローク幅の一貫性を保つためのヒント処理を行っていない場合には、文字品位はさらに劣化する。
【００１４】
この例では、１ピクセルを８サブメッシュに分割した２値データを作成しているが、１６サブメッシュなどさらに細かな２値データを生成しておき、階調値を１６×１６サブピクセル中に含まれる黒サブピクセルの割合から算出することで、より精度の高い多階調データを生成できる。しかし、サブメッシュをいくら細かくしても上記課題は解決されない。
【００１５】
特に、低階調データの表示を行なう場合には、階調表現可能であるにも関らず、ディスプレイの表示特性にもよるが、劣悪な表示になるという問題があった。
ここでいう低階調データとは、三、四階調程度の階調表現をいう。低階調データの表示は、テレビ受像器に対する字幕や、ガイダンス、メニューとして文字表示する場合などによく利用されている。
【００１６】
以下、具体例を挙げて低階調データの表示の問題点を説明する。
図１２は、図７に示した輪郭情報から低階調データに展開した場合の一例である。同図では、白色、灰色、黒色の３階調で文字表示がなされる。
同図では、ディスプレイの表示特性により次のような問題がある。
三本のストロークのうち、上から一本目と三本目のストロークは、黒色の１画素が一行に連続するストロークであり、二本目のストロークは、灰色の２画素が連続するストロークになっている。
【００１７】
この場合にはディスプレイの表示特性に応じて、次のような表示上の問題が生じる。
インターレース方式のディスプレイの場合、黒色の１画素が連続するストロークはちらつき（フリッカ）が発生する。また、灰色の２ピクセルが連続するストロークはぼんやりと膨脹したり、薄く見える。
【００１８】
液晶ディスプレイの場合、黒色の１画素が連続するストロークは画素境界がくっきり見えるため灰色を含むような他のストロークとの関係でみかけが大きく異なり、バランスが悪くなる。灰色の２ピクセルが連続するストロークは、インターレース方式のディスプレイと同様である。
ノンインターレース方式のディスプレイの場合、黒色の１画素が連続するストロークはちらつきが発生しないが、灰色を含むような他のストロークとの関係でみかけが大きく異なりバランスが悪い場合がある。灰色の２ピクセルが連続するストロークはぼんやりと膨脹したり、薄く見える。
【００１９】
このように低階調データの場合には、階調表示を有効に活用できず、二値表示よりも劣悪な表示になる場合があった。
本発明は、階調数が少ない場合であっても、ストロークのバランスがとれた良好な階調データを容易に生成する多階調データ生成装置、プログラム記憶媒体、多階調データを記憶するデータ記憶媒体を提供することを目的とする。
【００２０】
【課題を解決するための手段】
本発明の多階調データ生成装置は、文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを表した判定表を記憶する判定表記憶手段と、ストローク位置を表わすデータを記憶するデータ記憶手段と、データ記憶手段に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出手段と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を前記判定表に従って判定する判定手段と、判定手段により否と判定されたストロークについて、判定手段により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更手段と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成手段とを備える。
【００２１】
ここで、前記判定表記憶手段は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして記憶する。
また、本発明のデータ記憶媒体は、階調付きビットマップフォントを記憶したコンピュータ読み取り可能なデータ記憶媒体であって、前記ビットマップフォントにおいて全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一方は、そのピクセルデータが中間階調色を示すことを特徴とする。
【００２２】
【発明の実施の形態】
＜第１の実施形態＞
＜ハードウェア構成＞
図１は、本発明の第１の実施形態における多階調データ生成装置のハードウェア構成の一例を示すブロック図である。同図のように多階調データ生成装置１００は、記憶部１、ＲＯＭ２、ＲＡＭ３、ＣＰＵ４、表示部５、入力部６とから構成される。
【００２３】
記憶部１は、いわゆる二次記憶装置であり、フォントを表現したアウトラインデータ、各種プログラムファイル、およびデータファイルを記憶する。
ＲＯＭ２は、主として本発明の多階調データ生成方法が記述されたプログラムを記憶する。
ＲＡＭ３は、記憶部１のアウトラインデータ、プログラム、データ等がダウンロードされたり、いわゆるワークエリアとして使用されるメモリである。
【００２４】
ＣＰＵ４は、主としてＲＯＭ２のプログラムを実行することにより、ＲＡＭ３のアウトラインデータに基づいて入力部６又はプログラムにより指示されたサイズの多階調データを生成する。特に、少ない階調数の多階調データを生成する場合に、ストローク幅方向に並ぶ画素が取り得る階調値の組み合わせのうち、表示装置に適した組み合わせを記憶するテーブル類を生成し、テーブル類を参照してストローク位置を、上記組み合わせによって最適化する。
【００２５】
表示部５は、階調表示が可能なディスプレイ装置を有し、生成された多階調データを表示する。ディスプレイ装置は具体的には液晶表示パネル、ＣＲＴ等である。
入力部６は、ユーザからの文字サイズの指定等の操作指示を受け付ける。
＜機能ブロック図＞
図２は、図１におけるＲＯＭ２のプログラムをＣＰＵ４が実行することにより実現される多階調データ生成装置１００を機能別に表した機能ブロック図である。
【００２６】
この多階調データ生成装置１００は、ストローク位置情報保持部１０１、輪郭情報保持部１０２、展開バッファ１０３、階調値マッピングテーブル作成部１１１、階調色マッピングテーブル作成部１１２、色判定テーブル作成部１１３、テーブル保持部１０５、ストローク最適配置位置決定部１１４、輪郭情報拡大縮小部１０７、多階調データ生成部１０８から構成されている。
【００２７】
図２と図１との関係については、ストローク位置情報保持部１０１、輪郭情報保持部１０２およびテーブル保持部１０５はＲＡＭ３上にそれぞれの領域が設けられ、それ以外はＣＰＵ４がＲＯＭ２のプログラムを実行することにより実現される機能である。
同図においてストローク位置情報保持部１０１は、多階調データ生成の対象となる文字又は図形についてのアウトラインデータのうちストローク位置情報を保持する。本実施形態では、従来技術で説明した図４および図５に示したように１０００メッシュで表現されたストローク位置情報と輪郭情報とを含むアウトラインデータを用いるものとする。ストローク位置情報は、水平ストロークを下部直線と上部直線のＹ座標のペアで表し、垂直ストロークを左側直線と右側直線のＸ座標のペアで表している。ストローク位置情報保持部１０１は、図４に示したゴシック体の「三」を表すアウトラインデータの場合、ストローク位置情報として図５に示した水平ストロークｎ（ｎ＝１〜３）のＹ座標のペア（Ｌ_n、Ｕ_n）を保持する。
【００２８】
輪郭情報保持部１０２は、多階調データ生成の対象となる文字又は図形についてアウトラインデータのうち輪郭情報を保持する。輪郭情報は、輪郭の特徴点を表す複数の座標で表される。例えば、図４に示したゴシック体の「三」を表すアウトラインデータの場合、輪郭情報として図５に示した輪郭１〜３毎に複数の座標を保持する。
【００２９】
展開バッファ１０３は、多階調データの生成過程で展開されたアウトラインデータを保持する一時的なバッファである。より具体的には展開バッファ１０３は、指示された要求サイズに応じたピクセル数と、ピクセルからサブピクセルに細分化する度合を示す分割数とに応じて大きさが定まるサブピクセル単位の領域を有する。多階調データを生成するためには、１ピクセルをサブメッシュに分割した座標系にアウトラインデータを拡大縮小する必要があるが、本実施形態では、要求サイズが１０×１０ピクセル、サブピクセルへの分割数を８とする。このサイズと分割に関しては従来技術と同様である。この場合、８×８サブピクセル（合計６４サブピクセル）が最終的な多階調データの１ピクセルに対応する。多階調データは８０×８０のサブメッシュの座標系で展開されることになる。もちろん８メッシュ以外の分割数を採用することも可能である。
【００３０】
階調値マッピングテーブル作成部１１１は、階調数と分割数（サブピクセル数）とに基づいて、階調値マッピングテーブルを作成する。階調値マッピングテーブルは、サブメッシュ上のピクセルにおけるストロークの幅（サブピクセル数）と、階調値とを対応付けたテーブルである。
図１３（ａ）（ｂ）は、サブピクセルへの分割数が８の場合の階調値マッピングテーブルの具体例を示す。
【００３１】
同図（ａ）は、階調数が８（０〜７の階調値）である場合の階調値マッピングテーブルの一例である。同図において「ピクセル内のストローク幅Ｈ」欄は、１つのピクセルにおいてピクセルと水平（又は垂直）ストロークとの重なり部分のストローク幅を意味する。図１４に、ピクセルと水平ストロークとの重なり部分を示すストローク幅Ｈを示す。同図ではストローク上部直線の位置と、重なる部分（斜線部）とを示している。ストローク下部直線は、ピクセル境界（下側）にあるとは限らない。同図のようにサブピクセル分割数が８の場合は、ストローク幅Ｈは、Ｈ＝０からＨ＝８までの９通り考えられる。ただし、Ｈ＝８の場合ストローク上部直線は、ピクセル境界（上側）にあるとは限らない。
【００３２】
図１３（ａ）の「階調値」欄は、上記ストローク幅Ｈに対応する階調値（０〜７）を示している。
同図（ｂ）は、階調数が３（０〜２の階調値）である場合の階調値マッピングテーブルの一例である。この例では、ストローク幅Ｈ＝０、１は階調値０に、Ｈ＝２〜４は階調値１に、Ｈ＝５〜８は階調値２に対応している。
【００３３】
階調色マッピングテーブル作成部１１２は、階調値と階調色とを対応させた階調色マッピングテーブルを作成する。ここで、階調色とは、多階調データを出力装置に出力した場合に表示される実際の色と対応した数値データである。本多階調データ生成装置１００により生成された階調データを表示部５に表示させた場合、階調色０、１、２はそれぞれ白、灰、黒で表示されるものとして説明するが、これ以外の色（例えば、薄い青、青、濃い青など）であってもよい。また、以降の説明では、便宜上、階調色を０、１、２の数値ではなく表示部５で表現される色つまり白、灰、黒として説明する。
【００３４】
図１５（ａ）（ｂ）は、階調色マッピングテーブルの具体例を示す。
同図（ａ）は、図１３（ａ）に示した階調値マッピングテーブルに対応し、図１３（ａ）に示した階調値のそれぞれに対応する階調色を示したテーブルである。この階調色マッピングテーブルでは、８レベルの階調値を３つの階調色０（白）、１（灰）、２（黒）に対応付けている。
【００３５】
図１５（ｂ）は、図１３（ｂ）に示した階調値マッピングテーブルに対応し、図１３（ｂ）に示した階調値のそれぞれに対応する階調色を示したテーブルである。この階調色マッピングテーブルでは、３レベルの階調値を３つの階調色０（白）、１（灰）、２（黒）に対応付けている。
図１３（ｂ）と図１５（ｂ）のように、階調値マッピングテーブルの階調数と階調色マッピングテーブルの階調色数とが等しい場合には、両テーブルを１つのテーブルとしてもよい。
【００３６】
色判定テーブル作成部１１３は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせと、その組み合わせの適否をあらわす色判定テーブルを作成する。
図１６〜図１９は、階調色が３色（白色、灰色、黒色）の場合の色判定テーブルの具体例であり、サブピクセル座標に配置されたストロークをピクセル座標に配置した場合に得られるストロークの幅（以下ストローク幅Ｗと記す）毎に図示してある。
【００３７】
図１６は、ストロークの幅Ｗが１ピクセルの場合を表わしている。
同図の「色」欄はストロークがとり得るすべての階調色を示す。ここでは、階調色が３色なので、ストロークが１ピクセルの場合には白、灰、黒の３通りしか存在しない。
「判定」欄にはその階調色の適否（図では○、×）が記してある。同図のように階調色「白」「黒」は”×”（不適）、「灰」は”○”（適切）となっている。なぜなら「白」はストロークが消滅してしまう点で、「黒」はインターレース方式のディスプレイではちらつきが生じ、液晶ディスプレイでは画素境界が視覚的に強く表示されるからである。これに対して「灰色」はちらつきが目だないし、画素境界が視覚的に強く表示されないからである。
【００３８】
図１７は、ストロークの幅Ｗが２ピクセルの場合を表わしている。この場合、「色」欄の階調色の組み合わせは、３色×３色の９通り存在する。
「判定」欄において、「白白」「白黒」「黒白」が”×”（不適切）なのは、上記と同じ理由による。「灰灰」が”×”（不適切）を示しているのは、ストロークがぼやけて見えるからである。「白灰」「灰白」「灰黒」「黒灰」が適切を示しているのは、上記と同様にちらつきが目立たないし、画素境界が視覚的に強く表示されないからである。
【００３９】
図１８は、ストロークの幅Ｗが３ピクセルの場合を表わしている。この場合、「色」欄の階調色の組み合わせは、２ピクセル目は必ず「黒」になるので、図１７と同様に９通り存在する。
「判定」欄において、１または３ピクセル目に「灰」を含む組み合わせは、すべて”○”（適切）を示している。これも上記と同様の理由である。
【００４０】
図１９は、ストロークの幅Ｗが４ピクセルの場合を表わしている。この場合、「色」欄の階調色の組み合わせは、２および３ピクセル目は必ず「黒」になるので、図１７と同様に９通り存在する。
「判定」欄において、１または４ピクセル目に「灰」を含む組み合わせは、すべて”○”（適切）を示している。これも上記と同様の理由である。
【００４１】
また、図１９は、ストロークの幅Ｗが４ピクセルより多いｎピクセル場合も、同様である。つまり、２ピクセル目と（ｎー１）ピクセル目は必ず「黒」になるので、階調色の組み合わせは９通りであり、１またはｎピクセル目に「灰」を含む組み合わせは、すべて”○”（適切）を示す。これ以外の組み合わせは”×”（不適切）を示す。
【００４２】
このように、図１７〜図１９に示した色判定テーブルでは、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色（灰色）である組み合わせを、適切な組み合わせとしている。
また、図１６に示した色判定テーブルは、表示部５がインターレース方式のディスプレイ、液晶ディスプレイである場合に好適になっている。図１６は、ノンインターレースのＣＲＴディスプレイに対しては、黒を”○”としてもよい。
【００４３】
色判定テーブル作成部１１３は、ディスプレイの表示特性に応じて、上記のような階調色数に応じた色判定テーブルを作成する。たとえば、ディスプレイの表示特性と階調色数に応じて、不適切な組み合わせを予め記憶しておき、実際に接続されるディスプレイに応じて作成する。
テーブル保持部１０５は、階調値マッピングテーブル作成部１１１、階調色マッピングテーブル作成部１１２、色判定テーブル作成部１１３により作成されたそれぞれのテーブルを保持する。
【００４４】
ストローク最適配置位置決定部１１４は、ストローク位置情報保持部１０１のストローク位置情報に含まれる各ストロークについて、テーブル保持部１０５の各テーブルを参照して、サブメッシュ座標系への拡大縮小後のストロークの最適配置位置を決定する。
より詳しく説明するために図２０に、ストローク最適配置位置決定部１１４の処理内容を表す流れ図を示す。これは水平ストロークの場合の流れ図であるが、垂直ストロークの場合の処理も同様である。
【００４５】
ストローク最適配置位置決定部１１４は、ストローク位置情報保持部１０１に保持されたストローク位置情報からストロークの上部と下部を表すＹ座標のペアを取り出し、各ストロークについて、サブピクセル座標系における上部直線と下部直線の座標を算出する（ステップ２０１）。同時に、移動量Ｍの初期値を０に設定する（Ｍ＝０）。ここで移動量は、判定結果が”×”（不適切）であるストロークを移動させるサブピクセル単位の値である。
【００４６】
さらに、ストローク最適配置位置決定部１１４は、算出された各ストロークについて、ストロークと重なりストローク幅方向に並ぶピクセルに分割し、分割された各ピクセルにおけるストローク幅Ｈをサブピクセル単位で算出し（ステップ２０２）、階調値マッピングテーブルと、階調色マッピングテーブルとを参照してピクセル毎に階調値と階調色を求め（ステップ２０３、２０４）、色判定テーブルを参照してストローク毎に階調色の組み合わせの適否を判定する（ステップ２０５）。
【００４７】
この時点で、ストローク最適配置位置決定部１１４により上記の処理から得られる作業用データテーブルを図２１に示す。同図は、図２２に示す３本のストロークを対象とし、一回目の上記ステップ２０１〜２０５により算出された各データを示している。図２１において「ストローク番号」は、下側のストロークから順に番号を付けている。
【００４８】
「座標」は、サブピクセル座標系における各水平ストロークの上部直線と下部直線の左側の頂点の座標を示す。
ピクセル毎の「ストローク幅Ｈ」、「階調値」、「色」は、上記階調値マッピングテーブル、階調色マッピングテーブルから得られた値である。
ストローク毎の「判定」欄は、色判定テーブルから得られたストローク階調色の適否を示す。
【００４９】
同図のように上記ステップ２０１〜２０５の一回目の処理結果では、ストローク１〜３の何れも”×”（不適切）となっている。
次いで、ストローク最適配置位置決定部１１４は、全てのストロークの判定結果が”○”（適切）であるかどうかを判定する（ステップ２０６）。
判定結果が”×”（不適切）のストロークが存在する場合には、ストローク最適配置位置決定部１１４は、当該ストロークを上下両方向に移動させるための移動量Ｍを１増加（Ｍ＝Ｍ＋１）させ（ステップ２０７）、各ストロークについて、移動量が示すサブピクセル数分を上下方向に移動させた場合のストロークの座標を算出する（ステップ２０８）。つまり不適切と判定された各ストロークについて移動した２つのストロークの座標を算出する。
【００５０】
算出されたストローク座標を用いて、ストローク最適配置位置決定部１１４は上記のステップ２０３〜２０６を同様に実行する。
この時、ストローク最適配置位置決定部１１４により得られる作業用データテーブルを図２３に示す。
同図では、ストローク１〜３について、それぞれ図２１の座標から上下に移動した２本分のストローク座標が記されている。また、図２１と同様に、各ストロークについてのピクセル毎の「幅」、「階調値」「色」と、ストローク毎の「判定」結果とが記されている。
【００５１】
この判定結果には、ストローク１〜３のいずれにも”○”（適切）が存在するので、ストローク最適配置位置決定部１１４は、適切と判定された各ストローク座標をもって最適配置位置と決定して、処理を終了する。この場合の最適配置位置を図２４に示す。同図では、ストローク１〜３について、適切と判定されたストロークの下部直線、上部直線のそれぞれのサブピクセル座標Ｌopt_n、Ｕopt_n（ｎ＝１〜３）により最適配置位置を表している。
【００５２】
このようにしてストローク１〜３は、２ピクセルのストローク幅Ｗをもち、それぞれ黒色と灰色、灰色と黒色、黒色と灰色の階調色となるように配置位置が決定される。
輪郭情報拡大縮小部１０７は、ストローク位置情報保持部１０１に保持されているストローク位置情報と、輪郭情報保持部１０２に保持されている輪郭情報と、ストローク最適配置位置決定部１１４により最適化された最適配置位置に従って、アウトラインデータに含まれる輪郭情報の拡大縮小を行う。ここでは、図４および図５に示される輪郭情報を、図２４に示したストローク最適配置位置に従って８０サブメッシュ座標系に縮小する。
【００５３】
１０００メッシュ座標系のＹ座標を８０サブメッシュ座標系のｙ座標に変換する変換方法に関しては、元の１０００メッシュ座標系におけるストロークの上部直線、下部直線の座標点Ｕ_n、Ｌ_nが、サブメッシュ座標系において最適配置された上部直線、下部直線の座標点Ｕopt_n、Ｌopt_nに変換され、その他の座標点が上部直線、下部直線の座標点Ｕopt_n、Ｌopt_nの全ての間を線形補間した値に変換され、変換された座標が展開バッファ１０３に格納される。例えば、水平ストロークが３つある場合とすれば、次の（式５）〜（式１２）により座標の開始点、終了点、ストロークの下部直線と上部直線の対応する座標を変換した後、（式１３）〜（式１９）によりその間を線形補間により変換する。
【００５４】
0004505082.tif 000002
上式による縮小の具体例として図２５に、図２４に示した上部直線、下部直線の座標Ｕopt_n、Ｌopt_nに基づいて変換する場合の変換式を示す。図２５に従って１０００メッシュ座標系でのＹ座標値を変換すると、ストロークの上部直線および下部直線上の座標点は、８０メッシュ座標系において最適配置位置に変換され、その他の座標点は最適配置位置の間を線形補間した値に変換され、展開バッファ１０３に格納される。
【００５５】
この変換方法により、すべての座標点は矛盾なく８０サブメッシュ座標系に縮小される。「三」の例ではストロークの上部および下部直線上の座標点しか存在していないが、ストローク以外の直線や曲線を表す座標点を含む文字や図形の場合でも矛盾なく縮小される。また「三」の例では、垂直ストロークが存在していないため、Ｘ座標はすべて、ｘ＝Ｘ×（８０／１０００）で変換できる。垂直ストロークを含む文字や図形の場合には、この例の水平ストロークと同様に、垂直ストローク最適配置位置にしたがって変換すればよい。
【００５６】
多階調データ生成部１０８は、輪郭情報拡大縮小部１０７で生成した拡大縮小済輪郭情報から、多階調データを生成する。この部分は、従来の技術で説明した図３に示される構成と全く同じでもかまわないし、１ピクセル内の黒部分の２値データを生成することなく、直接積分計算で面積を求め、面積比から階調値を算出してもよい。
【００５７】
図２６は、図２５の計算結果に基づいて多階調データ生成部１０８により生成され、展開バッファ１０３に格納された多階調データを示す。同図のように、３本のストロークのいずれもが黒色ピクセルと灰色ピクセルとの組み合わせになっている。このため、インターレース式のディスプレイでも、液晶ディスプレイでも、ノンインターレース式のディスプレイでも、従来技術の課題として指摘した問題が解消されている。しかも、ストロークの幅が揃っており、また、ストローク間のバランスがよく、形状の再現性が非常に良好である。
【００５８】
なお、本実施形態では、１ピクセルを８サブメッシュに分割しているが、１６サブメッシュに分割すると、さらに微妙な形状の違いが表現できるため、表示品質が向上する。
また、テーブル保持部１０５に保持される各テーブルは、ディスプレイの表示特性に応じてこれらのテーブルを変更するだけで、最適な多階調データの生成が簡単に実現可能となる。これに対応するテーブル変更部を追加した構成としてもよい。
【００５９】
なお、これらのテーブルは、あらかじめディスプレイの種類や表示特性毎に、複数のテーブルセットをテーブル保持部１０５に記憶させておいてもよい。
＜第２の実施形態＞
以下本発明の第２の実施形態における多階調データ生成装置について説明する。
【００６０】
本実施形態における多階調データ生成装置のハードウェア構成は図１と同じであるが、ＲＯＭ２中のプログラムが一部異なる。
図２７は、図１におけるＲＯＭ２のプログラムをＣＰＵ４が実行することにより実現される多階調データ生成装置２００を機能別に表した機能ブロック図である。
【００６１】
多階調データ生成装置２００は、図２に対して、色判定テーブル作成部１１３及びストローク最適配置位置決定部１１４の代わりにストローク色マッピングテーブル作成部２１３及びストローク最適配置位置決定部２１４を備える点が異なっている。
以下同じ点は、説明を省略して異なる点を主に説明する。
【００６２】
本実施例ではサブピクセル分割数を４サブメッシュとする。テーブル保持部１０５は、図３２に示す階調値マッピングテーブルと、図３３（ａ）（ｂ）に示すいずれかの階調色マッピングテーブルを保持しているものとする。
ストローク色マッピングテーブル作成部２１３は、ストローク色マッピングテーブルを作成する。ストローク色マッピングテーブルは、サブピクセル単位に表されたストローク幅Ｗ（ストロークそのものの幅）と、ストロークが展開された場合のピクセル毎の適切な階調色の組み合わせとを対応させたテーブルである。図２８にストローク色マッピングテーブルの一例を示す。ストローク幅Ｗと、当該ストロークと重なるピクセルの階調色の組み合わせで適切なものとを対応させている。ストローク幅Ｗは、生成すべき多階調データ輪郭情報がもつ全てのストロークについて、とりうるストローク幅Ｗの全てを本テーブル中に生成する必要がある。
【００６３】
ストローク最適配置位置決定部２１４は、ストローク最適配置位置決定部１１４に対して、ストローク幅を必要に応じて変更する処理が追加された点と、色判定テーブルの代わりにストローク幅マッピングテーブルを参照する点とが異なっている。
図２９示すストローク最適配置位置決定部２１４の処理フローに従って詳しく説明する。ストローク最適配置位置決定部２１４は、ストローク位置情報保持部１０１に保持されたストローク位置情報からストロークの上部と下部を表すＹ座標のペアを取り出し、各ストロークについて、サブピクセル座標系における上部直線と下部直線の座標を算出する（ステップ２９１）。同時に、移動量Ｍの初期値（Ｍ＝０）を設定する。
【００６４】
さらに、ストローク最適配置位置決定部２１４は、算出された上部直線と下部直線の座標から、各ストロークのストローク幅をピクセル単位で算出し、そのストローク幅に応じた階調色の組合せの候補を上記ストローク色マッピングテーブルから取り出し（ステップ２９２）、各ストロークのストローク幅の変更を要するか否かの判断と、変更を要するストロークのストローク幅の変更とを行なう（ステップ２９３）。
【００６５】
ここで、変更処理とは、ストローク幅Ｗによっては、階調色マッピングテーブルからストロークの階調色（ピクセル毎の階調色の組み合わせ）を生成した場合に、ストローク色マッピングテーブルにおける最適な階調色になり得ない場合があるので、その場合に最適な階調色になり得るストローク幅Ｗに変更する処理をいう。
【００６６】
たとえば、ストローク幅Ｗが１サブピクセルの場合、ストローク色マッピングテーブルによれば最適な階調色は灰色である（図２８参照）。
ところが、図３３（ｂ）の階調色マッピングテーブルによればストローク幅１のストロークは白色にマッピングされている。これでは、ストロークをどんなに移動させてもストローク色マッピングテーブルに設定されている最適な階調色の灰色を、階調色マッピングテーブルから得ることができない。階調色マッピングテーブルにおいて、ストロークの階調色として灰色が得られるように、ストローク幅を（例えば１から２サブピクセルに）変更する。図３３（ａ）の階調色マッピングテーブルが用いられる場合には、ストローク幅１のストロークは灰色にマッピングされているので変更不要である。
【００６７】
この後、ストローク最適配置位置決定部２１４は、各ストロークについて、ストロークと重なりストローク幅方向に並ぶピクセルに分割し、分割された各ピクセルにおけるストローク幅Ｈをサブピクセル単位で算出し（ステップ２９４）、階調値マッピングテーブルと、階調色マッピングテーブルとを参照してピクセル毎に階調値と階調色を求め（ステップ２９５、２９６）、ストローク毎に、階調色マッピングテーブルから求めた階調色と、ストローク色マッピングテーブルの最適な階調色とが一致するかを判定する（ステップ２９７）。
【００６８】
一致しないストロークが１つでも存在する場合には、ストローク最適配置位置決定部２１４は、移動量Ｍを１増加（Ｍ＝Ｍ＋１）させ（ステップ２９８）、一致しなかった各ストロークについて、移動量が示すサブピクセル数分を上下方向に移動させた場合のストロークの座標を算出し（ステップ２９９）、再度上記ステップ２９４〜２９７を実行する。これにより全てのストロークの階調色は、ストローク色マッピングテーブルの最適な階調色に一致することになる。
【００６９】
この後、輪郭情報拡大縮小部１０７、多階調データ生成部１０８によって、第１実施形態と同様にして階調データが生成される。
＜ストローク幅の変更要否判断処理と変更処理＞
図３０は、図２９のステップ２９３に示したストローク幅変更の要否の判断処理と、変更を要するストロークのストローク幅変更処理とを示すより詳細なフローチャートである。
【００７０】
ストローク最適配置位置決定部２１４は、ステップ２９２においてストローク色マッピングテーブルから取り出された、各ストロークの最適な階調色の組合せにおいて、その組み合わせにおける階調色となる最低階調値と最高階調値とを階調色マッピングテーブルから取出す（ステップ３０１）。例えば、ストローク幅４の場合、図２８のストローク色マッピングテーブルの最適階調色は灰色と黒色の組合せである。図３３（ａ）の階調色マッピングテーブルから、灰色となる最低階調値１、最高階調値３、黒色となる最低階調値４、最高階調値４が取出される。
【００７１】
さらに、ストローク最適配置位置決定部２１４は、取り出した最低階調値と最高階調値とを用いてストローク毎に以下の計算を行なう。最適階調色の各ピクセル色の最低階調値のみを、また最高階調値のみを全て加算することにより、灰と黒からなる最適階調色になる最小と最大のストローク幅Ｗを算出し（ステップ３０２）、最適階調色となり得るストローク幅の範囲を決定する（ステップ３０３）。
上記の例では、
灰色の最低階調値１＋黒色の最低階調値４＝５
灰色の最高階調値３＋黒色の最高階調値４＝７
と計算される。
【００７２】
これより灰と黒からなる最適階調色になり得る最小のストローク幅Ｗは５であり、最大のストローク幅Ｗは７であり、従って、灰色と黒色からなる最適階調色を得ることができるストローク幅Ｗの範囲は５〜７サブピクセルである。
さらに、ストローク最適配置位置決定部２１４は、ステップ２９２で求められた多階調データの生成対象の各ストロークについて、ストローク幅が最適階調色になり得る範囲内であるか否かを判定し（ステップ３０４）、範囲外にあるストロークの全部のストローク幅を変更する（ステップ３０５）。ここでの変更は、対象ストローク幅が範囲を越えている場合にはストローク幅を細くするように、対象ストローク幅は範囲に満たない場合はストローク幅を太くするように、ストローク上部直線又は下部直線の移動による。この場合、ストローク最適配置位置決定部２１４は、上部直線又は下部直線の移動距離を最小限に押さえるため、上記範囲に最も近い幅にする。また、移動すべき距離が偶数サブピクセルの場合は２で割った移動距離分均等に上部直線と下部直線とを移動し、奇数の場合はどちらかを１サブピクセル分多く移動する。
【００７３】
上記の例では対象ストローク幅が４サブピクセル、最適階調色になり得るストローク幅の範囲は５から７である。この場合にはストローク最適配置位置決定部２１４は、ストローク幅を５にするため、上部直線と下部直線の何れか一方を１サブピクセル移動する。
なお、図３０では、ストローク幅を変更する場合に、移動距離だけを参照し、移動方向は考慮に入れずに移動を行ったが、ストローク色マッピングテーブルを参照して適切な方向に移動位置を決定すると処理がより早くなる場合がある。
＜ストローク幅の変更テーブル＞
また、図３０では、生成すべき多階調データ毎にストローク幅の変更をするか否かを計算することになるが、変更を必要とするストローク幅に関する変更テーブルを予めテーブル保持部１０５に記録させおいてもよい。
【００７４】
この場合の変更テーブルの一例を図３４（ａ）（ｂ）に示す。
図３４（ａ）は、図３３（ａ）の階調色マッピングテーブルが使用される場合の変更テーブルであり、変更を要するストローク幅と変更後のストローク幅とを対応付けている。この変更テーブルでは、ストローク幅４、８のストロークについては変更を必要とし、それぞれの変更後にとるべきストローク幅５、９を示している。この変更テーブルの説明図を図３５に示す。図３５において（１）〜（９）はストローク幅Ｗを示し、各ピクセルの階調色は表示マッピングテーブルに従っている。同図で×印を付したストローク幅（４）（８）は、ストローク色マッピングテーブルの最適階調色にはなり得ないストローク幅Ｗであることがわかる。このストローク幅Ｗが４、８のストロークは、変更テーブルに従って５、９に変更されることにより黒と灰の最適階調色になることができる。
【００７５】
また図３４（ｂ）は、図３３（ｂ）の階調色マッピングテーブルが使用される場合である。×を付したストローク幅（１）、（４）、（５）、（８）が変更を要するストロークである。
＜ストローク幅変更処理＞
図３０のステップ３０５におけるストローク幅変更の処理をより詳細に説明する。
【００７６】
図３７（ａ）〜（ｄ）は、ストローク幅Ｗが４サブピクセルのストロークを、ストローク幅５に変更する場合の具体例を示す説明図である。
同図（ａ）のように、４サブピクセルのストロークが１ピクセル目に３サブピクセル（幅３）、２ピクセル目に１サブピクセル（幅１）になるように配置されているとする。同図（ｂ）はストローク上部直線を１サブピクセル移動した場合であり、ストローク階調色は最適階調色（灰と黒）になっている。同図（ｃ）はストローク下部直線を１サブピクセル移動した場合であり、ストローク階調色は最適階調色（灰と黒）になっていない。この場合は、黒と灰になるように再度ストローク全体を再配置しなおして、同図（ｄ）にする必要がある。
【００７７】
図３１は、ストローク最適配置位置決定部２１４の処理内容を示すフローチャートである。
同図のように、ストローク最適配置位置決定部２１４は、変更が必要なストロークについて、ストローク上部直線又は下部直線の移動方向を設定する（ステップ３１１）。水平ストロークの場合は上方向か下方向、垂直ストロークの場合は左方向か右方向である。次いで、ストローク最適配置位置決定部２１４は、ストローク上部又は下部直線の移動量を決定する（ステップ３１３）。この移動距離は、偶数の場合は２で割った移動距離分均等に２つの直線を移動し、奇数の場合はどちらかの直線を１サブピクセル分多く設定する。
【００７８】
この後、ストローク最適配置位置決定部２１４は、上部直線又は下部直線又は両方を移動し（ステップ３１４）、移動したストロークをピクセルごとに分割し（ステップ３１２）、分割したストロークより階調マッピングテーブルを用いて階調値を算出し（ステップ３１６）、階調値より階調色マッピングテーブルを用いて階調色を取り出す（ステップ３１７）。
【００７９】
さらに、ストローク最適配置位置決定部２１４は、階調色マッピングテーブルから取出した階調色が、最適階調色と一致するか否か判断する（ステップ３１８）。判断の結果、一致していればストロークを移動した位置で終了する。
一致していなければ、移動方向を変更して再度ステップ３１１〜３１７までを行う。こうして、２方向の移動を行ない（ステップ３１２：yes）、いずれの方向も一致しない場合は、どちらかの方向に直線を移動することによりストローク幅を変更して終了する。
【００８０】
なお、ステップ３１３において、移動量が偶数の場合に、２で割った移動距離を求めて移動量を均等にしたが、移動量全てをどちらかの方向に移動して算出して試しても構わない。この場合、移動量が一番少ないものから試し、移動量を最小に押さえることが重要である。
上記の処理により、多階調データの対象となる全てのストロークは、図３５、図３６に示したように、×印が付されていないいずれかの階調色をとることになる。
【００８１】
図３５においてストローク幅７は７ａの例のように黒色と灰色の組合せで表現可能であるが、図２８のストローク色マッピングテーブルに従って灰色＋黒色＋灰色の組合せで配置した７ｂを最適とする。図２８のストローク色マッピングテーブルでこのように指定しているのは、ストローク幅７からストローク幅８に切り変わる時に、ピクセル数が２から３に変化すると急激に太く見えるので、７ｂのように３ピクセルではあるが、両端のピクセルに灰色を配置する方がよいからである。
【００８２】
また、図３６においては、ストローク幅１を２に、ストローク幅４と５のストローク幅を増やして６にしている。また、ストローク幅８を増やして９にしている。ストローク幅７ａと７ｂに関しては図３５と同じ理由からである。
このように本実施例においては、同じストローク幅のものは、同じ階調色で表現できるので、ストローク幅が揃った品質の高い多階調データを生成できる。
【００８３】
また、ストローク移動を行なうだけでなく、ストローク幅を変更することにより低階調であっても出力装置に応じた最適な階調値をもつ多階調データを生成できる。
＜第３実施形態＞
本実施形態における多階調データ生成装置のハードウェア構成は図１と同じであるが、ＲＯＭ２中のプログラムが一部異なる。
【００８４】
図３８は、図１におけるＲＯＭ２のプログラムをＣＰＵ４が実行することにより実現される多階調データ生成装置３００を機能別に表した機能ブロック図である。
多階調データ生成装置３００は、図２７の多階調データ生成装置２００に対して、最適配置基準テーブル作成部１０４、ストローク位置移動部１０６が追加されている点と、ストローク最適配置位置決定部１１４の代わりにストローク最適配置位置決定部３１４を備えている点が異なっている。
【００８５】
以下、図２７と同じ点は、説明を省略して異なる点を主に説明する。
多階調データ生成装置３００は、ストローク位置移動部１０６において８階調（８色）の多階調データの最適位置に各ストロークを移動し、さらに、８階調から３階調に階調数を低減させた場合の最適位置をストローク最適配置位置決定部１１４において決定するように構成されている。
【００８６】
テーブル作成部１０４は、サブメッシュ座標系において水平ストロークおよび垂直ストロークを配置すべき最適な位置の候補を、要求サイズ（ピクセル数）及びサブピクセル数に応じて決定し、テーブル保持部１０５に格納する。最適な位置の候補は、ストローク位置移動部１０６によってストローク中心線を移動させて配置する基準になるものであり、本実施形態ではピクセル内の１／４サブピクセル境界および３／４サブピクセル境界とする。この場合、テーブル作成部１０４は、サブメッシュ座標系における全ての１／４サブピクセル境界および３／４サブピクセル境界の座標を求めてテーブル保持部１０５に格納する。
【００８７】
図３９は最適配置基準テーブルの一例を示す。同図は１０×１０メッシュ座標系におけるピクセル位置と、８０×８０サブメッシュ座標系における垂直方向の１／４サブピクセル境界および３／４サブピクセル境界の座標との対応関係を示す。水平方向についても同様である。
＜ストローク位置移動部１０６＞
ストローク位置移動部１０６は、ストローク位置情報保持部１０１のストローク位置情報に含まれる各ストロークについて、テーブル保持部１０５に保持された最適配置基準テーブルを参照して、サブメッシュ座標系への拡大縮小後のストローク最適配置位置を決定する。
【００８８】
より詳しく説明するために図４０に、ストローク位置移動部１０６の処理内容を表す流れ図を示す。これは水平ストロークの場合の流れ図であるが、垂直ストロークの場合の処理も同様である。
まずストローク位置移動部１０６はストローク位置情報保持部１０１に保持されたストローク位置情報からストロークの上部と下部を表すＹ座標のペアを１個取り出す（図４０のステップ１２０１）。図４および図５で表現されるアウトラインデータの場合には（１００、２００）（４５０、５５０）（７１３、８１３）という３種類のストロークに対する位置情報が含まれている。ストローク幅はすべて１００である。まず最初に、１番目の（１００、２００）が取り出される。
【００８９】
次にストローク位置移動部１０６は拡大縮小後のストローク幅を次式により求める（ステップ１２０２）。
Ｗsp＝（Ｕ_n−Ｌ_n）・Ｎp・Ｎsp／Ｎorg −（式１）
ここで、Ｗspは拡大縮小後のストローク幅、（Ｕ_n−Ｌ_n）は元のストローク幅、Ｎpは要求サイズにおけるピクセル数、Ｎspは１ピクセル内部のサブメッシュ 分割数（１ピクセルの１辺あたりのサブピクセル数）、Ｎorgはオリジナルのア ウトラインデータの座標系の大きさである。例えばストローク位置情報が（１００、２００）の場合には、拡大縮小後のストローク幅は１００×１０×８／１０００＝８といった計算で求められる。こうして求まった値「８」は、サブメッシュ（サブピクセル）を１単位として表した拡大縮小後のストローク幅になっている。もともとストローク幅が同じなら、この計算で求まる拡大縮小後のストローク幅も必ず同じになるので、計算時の量子化誤差によるストローク幅の不揃いは起こらなくなる。この例では、３本のストロークの幅はもともとすべて「１００」なので、拡大縮小後のストローク幅はすべて「８」（８サブピクセル分）となる。この幅はヒント処理によりストローク幅の一貫性を保つために用いられる。
【００９０】
さらにストローク位置移動部１０６は、拡大縮小後のストロークの中心線の初期配置位置（Ｙ座標）を次式により求める（ステップ１２０３）。
Ｃini＝（（Ｕ＋Ｌ）／２）・Ｎp・Ｎsp／Ｎorg  −（式２）
ここで、Ｃiniは初期配置位置のＹ座標、（Ｕ＋Ｌ）／２は元の（１０００メッシュ座標系の）ストロークの中心位置、Ｎp・Ｎspは要求データサイズのサブメ ッシュ座標系の大きさである。例えば第１水平ストローク（１００、２００）の中心線の位置は１０００メッシュ座標系で１５０であり、８０サブメッシュ座標系に縮小すると、初期配置位置は１５０×８０／１０００＝１２で求まり、１２サブピクセル位置となる。これは下から２番目のピクセルの中央サブグリッド境界線に対応する。上式により得られるＣiniの値は整数化する必要がなく、小数のままでよい。
【００９１】
次いでストローク位置移動部１０６は、テーブル保持部１０５を参照して、ピクセル内部の１／４サブピクセル境界線上と３／４サブピクセル境界線上のうち初期配置位置から移動距離の少ないほうにストローク中心線を移動し、移動した位置を最適配置位置Ｃoptと決定する（ステップ１２０４ ）。このとき移動距離が同じ場合には、直前の（隣接する）水平ストロークの移動方向と同じ方向へ移動する。直前の水平ストロークが存在しないか移動されていない場合にはどちらへ移動してもよいものとする。例えば、図４１に示すように初期配置位置Ｃiniがピクセル中央（１／２サブピクセル境界線上）にあり、１／ ４および３／４サブピクセル境界線上への距離はどちらも２サブピクセル分で移動距離は等しく、直前のストロークも存在していない場合には、どちらへ移動してもよい。ここでは３／４サブピクセル境界上へ移動することにする。（移動距離の比較はサブピクセルより細かい精度で行うと、より正確な判断が可能である）
さらにストローク位置移動部１０６は、ステップ１２０４で決定したストローク中心線の最適配置位置Ｃoptとステップ１２０２で求めたストローク 幅Ｗspとを用いて、ストロークの上部直線および下部直線の配置位置を次式に基づいて決定する（ステップ１２０５）。
【００９２】
Ｕopt＝Ｃopt＋Ｗsp／２  −（式３）
Ｌopt＝Ｕopt−Ｗsp      −（式４）
ここで、Ｕoptはストロークの上部直線、Ｌoptはストロークの下部直線の位置  を表す。具体的には、ストローク位置移動部１０６は（式３）によりストローク中心線配置位置Ｃoptにストローク幅Ｗspの半分の値を加算する。さらにサブグリッド上に乗るように量子化することでストロークの上部直線の位置Ｕoptを決定する。次に（式４）により上部直線からサブピクセル単位の整数化されたストローク幅Ｗspを減算して下部直線位置Ｌoptを決定する。この方法によれば、ストローク幅Ｗspが保証される。量子化する際には、ストローク中心線初期配置位置Ｃiniを中心としてストロークを配置した場合との誤差が少なくなる方向へ量子化する。図５のストローク１の例ではＣopt＝１４なので、下部直線と上部直線の位置は図４２に示されるよう１０および１８サブピクセル位置となる。
【００９３】
この後ストローク位置移動部１０６は、ストローク位置情報に含まれる全てのストロークについて上記処理が終了したかを判定し、未処理のストロークがあれば最適配置位置の決定処理を終了する（ステップ１２０６）。この例では、ストローク位置情報が３個存在するので、３回繰り返し処理が行われる。ストローク２ではストローク１と同様に１／４境界と３／４境界への距離が同じになるが、直前のストローク１の移動方向と同じ方向である１／４境界へ移動する。また、ストローク３は中心線の初期位置が７／８サブピクセル境界であり、３／４サブピクセル境界が最も移動量が少ないため３／４境界に移動する。垂直ストロークが存在すれば同様に垂直ストローク最適配置位置も求める。このようにして求めたストローク最適配置位置、ストロークの上部直線および下部直線の位置を図４３に示す。同図においてＷsp_n、Ｃopt_n、Ｌopt_n、Ｕopt_nは、それぞれ水平ストロークｎ（ｎ＝１〜３）に対応するストローク幅、ストローク最適配置位置、ストロークの上部直線及び下部直線の座標を示している。
＜ストローク位置移動部１０６の移動結果＞
ストローク位置移動部１０６により得られた図４３の最適位置に従って、輪郭情報拡大縮小部１０７、多階調データ生成部１０８により８階調の多階調データを生成した場合の多階調データを示す。
【００９４】
同図では、ストローク位置移動部１０６によって同じ幅を持つストロークはピクセル内で同じサブピクセル位置に配置されるため、図４４においては、図９および図１１と異なりストローク幅が不揃いに見えたり全体に濃淡のムラやにじみが生じたりすることがなく、表示品質が向上する。図４４では３本のもともと同じ幅の水平ストロークが同じパターンの階調表現に変換されており、低解像度のディスプレイや液晶パネル上で見た場合に、濃淡のムラが少なくバランスのとれた文字に見えるようになっている。
【００９５】
本実施形態で行っているようにストローク中心線の最適配置位置として１／４または３／４サブピクセル境界上を選択した場合には、さらに以下に説明する効果がある。
従来の技術の課題説明のところで、図１０と図１１を用いて、鮮明すぎる場合と薄くにじんでしまう場合を紹介した。右端の例は鮮明すぎてかつ細く見えすぎる場合であるが、これはストロークの中心線がピクセル内の１／２サブピクセル境界上に配置された場合である。この部分だけが２値表現に近くなっているので、普通に中間調で表現されている斜線や曲線と比較してバランスが悪く濃淡ムラの原因にもなる。逆に中央の例は、薄い中間色が２ピクセルにまたがっているため、太いがにじんで見えてしまう。
【００９６】
これはストロークの中心線がピクセル境界上に配置された場合である。この場合、液晶パネルによっては輝度特性の影響でほとんど消えてしまう場合もある。ストローク幅が８サブピクセルの場合、図４５に示されるように合計８通りの配置パターンが存在する。点線はストロークの中心線である。図４６は図４５に対応した多階調データでの表現であるが、（１）のストロークの中心線が１／２サブピクセル境界上にある場合と、（５）の中心線がピクセル境界上にある場合が、ディスプレイ上では両極端に見える。逆に（１）と（５）の中間に位置する（３）と（７）は、それぞれ中心線が１／４および３／４サブピクセル境界上に配置された場合であり、両者は対称形で見かけ上の特性は同じであるが、両者とも見かけ上の太さおよび色の濃さは８通りの中でちょうど中間に位置し、非常に平均的でバランスがとれている。
【００９７】
また、（１）や（５）の場合には、８通りの配置位置の中で同じに見える位置が１ヵ所しかないが、中心線を１／４または３／４サブピクセル境界上に配置する場合は同じように見える位置が２ヵ所存在している。これはストロークの初期配置位置からの移動距離を短くする効果があり、ストロークを移動しすぎることによる忠実な形状再現性の低下を防ぐことができる。
【００９８】
これらの特長は、ストローク幅が８サブピクセルの場合以外でも当てはまる。また、ストローク幅が１ずつ増加した場合のストロークの見かけ上の変化も緩やかであり、ストローク幅の逆転現象など一貫性を崩すことがない。
以上のことから、フォントに関していえば、小さなサイズでの様々な書体の表現や同一書体でのウエイト（太さ）の違いの表現が、濃淡のムラを発生させずに非常に自然でバランスよく表現することが可能になる。
＜ストローク最適配置位置決定部３１４＞
ストローク最適配置位置決定部３１４は、第１実施形態のストローク最適配置位置決定部１１４に比べて、ストローク位置移動部１０６の移動結果（図４３参照）から拡大縮小後のストローク座標を計算する点が異なっている。
【００９９】
すなわち、ストローク最適配置位置決定部３１４は、図２０に示したストローク最適配置位置決定部１１４の処理フローにおいて、ステップ２０１の代わりに、ストローク位置移動部１０６の移動結果から拡大縮小後のストローク座標を計算するステップを有している。この点以外は、ストローク最適配置位置決定部１１４と同じである。
【０１００】
したがって、ストローク最適配置位置決定部３１４は、ストローク位置移動部１０６によって中心線を１／４または３／４サブピクセル境界上に配置された各ストロークに対して、低階調データ用にさらに最適位置に移動する。
＜動作例＞
図４７は、ストローク位置移動部１０６に生成され、図４４に示した８階調の多階調データを３階調の能力を持つ表示部に出力した場合の一例である。この例では、階調値０、１が白に、２、３、４が灰色に、５、６、７が黒に対応している。図４４の多階調データと比べると品質は劣化するが、図９の従来の多階調データと比較すると３本のストローク幅が揃っており、表示部の階調数が８階調から３階調に低下しているにもかかわらず品質は向上している。この場合、ストローク最適配置位置決定部３１４は、既に、各ストロークの階調色が適切になっているので、変更を加える必要がない。
【０１０１】
図４８は、図４７と同じ３階調の多階調データであるが、階調値と階調色のマッピングが異なった場合の例である。この場合の階調色は０、１、２が白に、３、４が灰色に、５、６、７が黒に対応している。このような場合においては、３本のストローク幅はそろうが、３階調の表現能力があるにもかかわらずストロークが黒の１本線となってしまい、２値表現に近くなり、品質は劣化してしまう。つまり、黒１本のみの水平ストロークは、インターレース方式のディスプレイではちらつき（フリッカ）が生じ、非常に見にくい。
【０１０２】
この場合、ストローク最適配置位置決定部３１４は、第１実施例で説明したように、階調色が適切になるようにストロークの再配置を行なう。その結果、図２６に示したような多階調データを得ることができる。ストローク最適配置位置決定部３１４は、ストローク位置移動部１０６によりストローク配置がピクセル境界に対して相対的に揃ったストロークに対して、再位置を行なうことになる。それゆえ、ストローク最適配置位置決定部３１４は、第１実施形態に比べて、より確実かつ容易に適切な階調色を得ることができる。
＜他の変形例＞
上記各実施形態では、図１６〜図１９の色判定テーブルを用いて３階調の多階調データを生成する場合を示した。ここでは、４階調の多階調データを生成する場合の色判定テーブルについて説明する。
【０１０３】
図４９〜図５１は、階調色が４色（白、灰１、灰２、黒）の場合の色判定テーブルの具体例を示す。白、灰１、灰２、黒は、この順に暗くなるものとする。
図４９は、ストロークの幅Ｗが１ピクセルの場合の色判定テーブルを表わしている。同図の「色」欄はストロークがとり得るすべての階調色を示す。ここでは、ストローク幅方向のピクセルが取り得る値は、白、灰１、灰２、黒の４通りしか存在しない。「判定」欄では、４通りのうち「灰１」と「灰２」について”○”（適切）となっている。なぜなら「白」はストロークが消滅してしまう点で、「黒」はインターレース方式のディスプレイではちらつきが生じ、液晶ディスプレイでは画素境界が視覚的に強く表示されるからである。これに対して「灰色」はちらつきが目だないし、画素境界が視覚的に強く表示されないからである。
【０１０４】
図５０は、ストロークの幅Ｗが２ピクセルの場合の色判定テーブルを表わしている。「判定」欄において、「白白」「白黒」「黒白」が”×”（不適切）なのは、図１７と同じ理由による。「灰１灰２」「灰２灰１」「灰１灰１」「灰２灰２」が”×”（不適切）を示しているのは、ストロークがぼやけて見えるからである。「白灰１」「白灰２」「灰１白」「灰２白」「灰１黒」「灰２黒」「黒灰１」「黒灰２」が適切を示しているのは、ちらつきが目立たないし、画素境界が視覚的に強く表示されないからである。
【０１０５】
図５１は、ストロークの幅Ｗが３ピクセルの場合の色判定テーブルを表わしている。この場合、「色」欄の階調色の組み合わせは、２ピクセル目は必ず「黒」になるので、図５０と同様に１６通り存在する。この場合、１または３ピクセル目に中間階調色（「灰１」又は「灰２」）を含む組み合わせは、すべて”○”（適切）を示す。これ以外の組み合わせは”×”（不適切）を示す。
【０１０６】
また、図５１は、ストロークの幅Ｗが４ピクセルより多いｎピクセルの場合も、判定に用いられる。つまり、２ピクセル目から（ｎー１）ピクセル目は必ず「黒」になるので、階調色の組み合わせは１６通りであり、１またはｎピクセル目に中間階調色を含む組み合わせは、すべて”○”（適切）を示す。これ以外の組み合わせは”×”（不適切）を示す。
【０１０７】
図４９〜図５１は、図１７〜図１９と同様に、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色（灰１、灰２）である組み合わせを、適切な組み合わせとしている。
＜多階調データの利用例＞
次に、多階調データ生成装置により生成された多階調データをフォントデータとして利用するシステム例について説明する。
【０１０８】
図５２は、多階調データ生成装置により生成された多階調データをフォントＲＯＭに格納して利用するシステムの説明図である。
多階調データ生成装置１００は、少なくとも１つの書体に含まれる全ての文字や図形について多階調データを生成し、ビットマップフォントデータとしてＲＯＭ（以下フォントＲＯＭと呼ぶ）に書き込む。フォントＲＯＭは、単体で組み立てメーカー等に供給され、あるいは、セットトップボックス（衛星放送チューナー：以下ＳＴＢと略す）１５０に実装されてから販売店や一般家庭等に供給される。
【０１０９】
ＳＴＢ１５０は、家庭等においてアンテナ１５１とともに設置され、放送局１５３からアンテナ１５４、放送用衛星１５２を経由して送信される放送波を受信する。ＳＴＢ１５０は、ＲＯＭからビットマップフォントデータを読み出して、メニュー画面や番組表における文字表示を行なう。
図５３は、ＲＯＭに格納されたビットマップデータの説明図である。同図は、漢字”円”を示す２３×２３ピクセルのビットマップフォント例であり、ストローク幅が約２ピクセルのゴシック体で表現されている。同図のように、フォントＲＯＭは、白色のピクセルを”００”、灰色のピクセルを”０１”、黒色のピクセルを”１０”というように、各ピクセルを２ビットで表現したビットマップデータを格納している。
【０１１０】
図５４は、ストローク幅が４ピクセルの太ゴシック体で表現された”円”を表すビットマップフォント例である。図５３と同様に、各ピクセルが２ビットで表現されている。
なお、図５３、５４では、各ピクセルが２ビットで表現されているが、階調色を区別することができればよいので、各ピクセルが３ビット以上で表現されていてもよい。
＜多階調データの構造＞
フォントＲＯＭに格納された多階調データ（ビットマップデータ）のデータ構造について説明する。
【０１１１】
既に説明してきたように、本発明の多階調データ生成装置により生成されるビットマップフォント（以下本ビットマップフォントと呼ぶ）では、全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一端のピクセルデータが中間階調色になっている。
より具体的に、３階調（階調色が３色）の場合と、４階調（同４色）の場合とでストローク幅毎に場合わけして説明する。
【０１１２】
図５５、５６は、３階調の場合の本ビットマップフォントのデータ構造を示す説明図である。
図５５、５６において、階調色２は階調色１と３の間の中間階調色である。例えば、階調色１、２、３は、同図のように白、灰、黒である。また、第１端ピクセルは上記ピクセル列の一端のピクセルであり、第２端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第１、第２端ピクセル間に存在するピクセルであり、ストローク幅がｎピクセルの場合は第１、第２端ピクセルを除く（ｎ−２）個のピクセルを指す。
【０１１３】
３階調で、ストローク幅が３ピクセル以上の場合には、本ビットマップフォントにおける垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図５５に示す階調色の組み合わせの何れかになっている。
例えば、図５３における一番上の水平ストロークは、ストロークの幅方向のピクセル列が図５５の２行目の（灰、黒、白）となっている。但、一番上の水平ストロークが他のストロークと連結する部分では、図５５にあてはまらないこことは当然である。同様に、図５４に示したビットマップフォントの場合も同様に図５３に示したデータ構造があてはまる。
【０１１４】
また、３階調で、ストローク幅が２ピクセルの場合には、本ビットマップフォントにおける垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図５６に示す階調色の組み合わせの何れかになっている。
３階調で、ストローク幅が１ピクセルの場合、本ビットマップフォントにおける垂直ストローク及び水平ストロークは、灰色となっている。
【０１１５】
図５７、５８は、３階調の場合の本ビットマップフォントのデータ構造を示す説明図である。図５７、５８中の階調色１から４は同順で明るい又は暗い階調色であり、例えば、白、淡い灰、濃い灰、黒である。
４階調で、３ピクセル以上のストローク幅の場合には、本ビットマップフォントにおいて、垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図５７に示す階調色の組み合わせの何れかになっている。
【０１１６】
また、４階調で、ストローク幅が２ピクセルの場合には、本ビットマップフォントにおいて、垂直ストローク及び水平ストロークの幅方向に並ぶピクセル列に対応するピクセルデータは、図５８に示す階調色の組み合わせの何れかになっている。
また、４階調で、ストローク幅が１ピクセルの場合には、本ビットマップフォントにおいて、垂直ストローク及び水平ストロークのピクセルデータは、階調色２又は３になっている。
【０１１７】
上記のように、フォントＲＯＭに格納される多階調データ（ビットマップフォント）は、全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一端のピクセルデータが中間階調色になっている。これにより３階調、４階調程度の低階調の場合に、インターレース方式のディスプレイや液晶表示パネルにおいて見ばえのよい表示を得ることができる。
【０１１８】
なお、上記実施形態では、多階調データがフォントＲＯＭに格納される場合を説明したが、記憶媒体はそれに限らず、ＦＤ、ＣＤ−ＲＯＭ等の記憶媒体に格納され、他のコンピュータで使用するようにしてもよい。
また、記憶媒体を経由しなくてもＬＡＮ、ＷＡＮ、インターネット等のネットワークを経由して、多階調データを記憶するコンピュータから他のコンピュータがダウンロードして使用するようにしてもよい。さらに、ＳＴＢの場合は、放送局の放送データの送信を制御するコンピュータが放送衛星経由して多階調データを放送波に載せ、ＳＴＢを制御するコンピュータが放送波から多階調データをダウンロードして使用するようにしてもよい。
【０１１９】
【発明の効果】
本発明の多階調データ生成装置は、文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせ表した判定表を記憶する判定表記憶部と、ストローク位置を表わすデータを記憶するデータ記憶部と、データ記憶部に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出部と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を前記判定表に従って判定する判定部と、判定部により否と判定されたストロークについて、判定部により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更部と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成部とを備える。
【０１２０】
この構成によれば、位置変更部は判定部により適と判定されるまで、ストロークを移動させるので、判定表に示された適切な組み合わせの階調色をもつストロークからなる多階調データを得ることができ、ストロークのバランスがとれた良好な階調データを容易に生成することができる。低階調データの場合であっても、少ない階調色を有効に活用することができる。
【０１２１】
ここで、前記判定表記憶部は、ストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、ストロークの幅方向に並ぶピクセルの両端部のうち少なくとも一方が中間階調色である組み合わせを、前記適切な組み合わせとして記憶する構成としてもよい。
この構成によれば、ストローク幅方向の両端のピクセルのうち、少なくとも一方が中間階調色になるので、低階調データの場合であっても中間階調色を有効に活用することができる。
【０１２２】
ここで、前記判定表記憶部は、階調数が３である場合に、ストローク幅が３ピクセル以上のストロークに対して表９、ストローク幅が２ピクセル以上のストロークに対して表１０に示す階調色の組み合わせを、適切な組み合わせとして保持するようにしてもよい。
【０１２３】
【表９】
0004505082.tif 000003
【０１２４】
【表１０】
0004505082.tif 000004
【０１２５】
表中、第１端ピクセルは前記ピクセル列の一端のピクセルであり、第２端ピクセルは前記ピクセル列の他端のピクセルであり、中間ピクセルは前記ピクセル列中の第１、第２端ピクセル間の１つ以上のピクセルであり、階調色２は階調色１と３の間の中間階調色を示す。階調色１、２、３は例えば白、灰、黒である。
この構成によれば、階調数が３である場合に、灰と黒との組み合わせを有効に使用するので、インターレース方式のディスプレイや液晶表示パネルにおいても見ばえのよい表示を得ることができる。
【０１２６】
ここで、前記判定表記憶部は、階調数が４である場合に、ストローク幅が３ピクセル以上のストロークに対して表１１、ストローク幅が２ピクセル以上のストロークに対して表１２に示す階調色の組み合わせを、適切な組み合わせとして保持するようにしてもよい。
【０１２７】
【表１１】
0004505082.tif 000005
【０１２８】
【表１２】
0004505082.tif 000006
【０１２９】
表中、階調色１から４は同順で明るい又は暗い。階調色１から４は例えば白、淡い灰、濃い灰、黒である。
この構成によれば、階調数が４である場合に、灰と黒との組み合わせを有効に使用するので、インターレース方式のディスプレイや液晶表示パネルにおいても見ばえのよい表示を得ることができる。
【０１３０】
ここで、前記位置変更部は、否と判定されたストロークをストローク幅方向に移動するよう前記データ記憶部に記憶されたデータを更新する更新部と、更新されたストロークの階調色を前記算出部に再度算出させ、その算出後に判定部に再度判定させるよう制御する制御部とを備える構成としてもよい。
この構成によれば、上記効果に加えて、判定部により位置変更部は、階調色が適切かどうかを判定しながらストローク位置を少しずつ移動させていくので、最小の移動量で最適な位置にストロークを配置できるので文字の形状を好適に保つことができる。
【０１３１】
ここで、前記算出部は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調色とを対応させたテーブルを予め記憶するテーブル記憶部と、データ記憶部に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルに対応する、ストロークが当該ピクセルに占める割合に応じた階調色をテーブル記憶部から読み出す読み出し部とを備える構成としてもよい。
【０１３２】
この構成によれば、上記効果に加えて、テーブル内容を容易に変更するだけで、任意の階調色数に対応することができる。
ここで、前記テーブル記憶部は、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と、階調値とを対応させた階調値テーブルと、階調値と階調色とを対応させた色テーブルとを記憶し、前記読み出し部は、階調値テーブルと色テーブルとを順に読み出すように構成してもよい。
【０１３３】
この構成によれば、上記効果に加えて、階調値テーブルと色テーブルにより二段階で、ストロークがピクセルに占めるストローク幅方向のサブピクセル数と階調色とを対応させているので、テーブルを参照してストローク幅を変更し、ストローク移動のみでは実現できなかった最適な階調色を得ることができる。
ここで、前記多階調データ生成装置は、さらに全ストロークについて、前記座標系におけるピクセル境界とストローク中心線との距離が相対的に一定となる位置にストロークを移動させる移動部を備え、前記算出部は、移動部による移動の後に前記算出を行なうように構成してもよい。
【０１３４】
この構成によれば、移動部によって全てのストロークの位置がピクセル境界に対して相対的に揃うので、より確実かつ容易に適切な階調色を得ることができる。
また、本発明の多階調データ生成プログラムを記録したコンピュータ読み取り可能な記憶媒体は、
文字、図形を構成する垂直ストローク及び水平ストロークにおいてストローク幅方向に並ぶピクセルが取り得る階調色の組み合わせのうち、表示装置に応じた適切な組み合わせを示す判定表を記憶する判定表記憶部と、ピクセルを縦横に細分化したサブピクセルを表すサブピクセル座標系において、ストローク位置を表わすデータを記憶するデータ記憶部と、データ記憶部に記憶されたデータに基づいて、ストロークを一部分でも含んでいる各ピクセルについて、ストロークが当該ピクセルに占める割合に応じた階調色を算出する算出部と、算出された階調色のうち、当該ストロークの幅方向に並ぶピクセルに対応する階調色の組み合せの適否を判定表に従って判定する判定部と、判定部により否と判定されたストロークについて、判定部により適切と判定されるまでストローク幅方向にストロークを移動させることによりストローク位置を変更する位置変更部と、変更されたストローク位置に基づいて、文字又は図形を表わす階調データを生成する生成部とを実現するプログラムを記憶した記憶媒体である。
【０１３５】
この構成によれば、本記憶媒体からプログラムを読み取ったコンピュータは、判定表に示された適切な組み合わせの階調色をもつストロークからなる多階調データを得ることができ、ストロークのバランスがとれた良好な階調データを容易に生成することができる。低階調データの場合であっても、少ない階調色を有効に活用することができる。
【０１３６】
また、本発明の階調付きビットマップフォントを記憶したコンピュータ読み取り可能なデータ記憶媒体では、前記ビットマップフォントにおいて全ての垂直ストローク及び水平ストロークの幅方向の両端部のうち少なくとも一方は、そのピクセルデータが中間階調色を示すことを特徴とする。
このデータ構造をもつビットマップフォントは、ストローク幅方向の少なくとも一端のピクセルが中間階調色であることから、ストロークのバランスがとれた良好な階調データを容易に生成することができる。しかも低階調データの場合であっても、少ない階調色を有効に活用することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態における多階調データ装置のブロック図である。
【図２】多階調データ生成装置を機能別に表した機能ブロック図である。
【図３】従来の多階調データ生成装置の内部のブロック図である。
【図４】文字や図形などのアウトラインデータに含まれる輪郭情報とストローク位置情報の一例である。
【図５】文字や図形などのアウトラインデータに含まれる輪郭情報とストローク位置情報の一例である。
【図６】ピクセルをサブピクセルに分割した状態を示した図である。
【図７】８０サブメッシュに縮小されたアウトラインデータの輪郭情報である。
【図８】図７の縮小されたアウトラインデータの輪郭情報から生成された８０×８０サブピクセルの２値データである。
【図９】図８の８０×８０サブピクセルの２値データから生成された多階調イメージデータである。
【図１０】３本のストロークの配置状態を拡大した図である。
【図１１】図１０の３種類のストローク配置に対応する多階調データである。
【図１２】図７の輪郭情報から生成された多階調データである。
【図１３】（ａ）階調数が８（０〜７の階調値）である場合の階調値マッピングテーブルの一例である。（ｂ）階調数が３（０〜２の階調値）である場合の階調値マッピングテーブルの一例である。
【図１４】ピクセルと水平ストロークとの重なり部分のストローク幅Ｈを示す。
【図１５】（ａ）（ｂ）ともに階調色マッピングテーブルの具体例を示す。
【図１６】ストロークの幅Ｗが１ピクセルの場合を色判定テーブルを示す。
【図１７】ストロークの幅Ｗが２ピクセルの場合を色判定テーブルを示す。
【図１８】ストロークの幅Ｗが３ピクセルの場合を色判定テーブルを示す。
【図１９】ストロークの幅Ｗが４ピクセル以上の場合を色判定テーブルを示す。
【図２０】ストローク最適配置位置決定部１１４の処理内容を表す流れ図を示す。
【図２１】ストローク最適配置位置決定部１１４の作業用データテーブルを示す。
【図２２】ストローク最適配置後の８０サブメッシュに縮小された輪郭情報である。
【図２３】ストローク最適配置位置決定部１１４の作業用データテーブルを示す。
【図２４】最適配置位置における上部直線、下部直線の座標Ｕopt_n、Ｌopt_nを示す。
【図２５】図２４に示した上部直線、下部直線の座標Ｕopt_n、Ｌopt_nに基づいて変換する場合の変換式を示す。
【図２６】多階調データ生成部１０８により生成され、展開バッファ１０３に格納された多階調データを示す。
【図２７】第２の実施形態における多階調データ生成装置２００を機能別に表した機能ブロック図である。
【図２８】ストローク色マッピングテーブルの一例を示す。
【図２９】ストローク最適配置位置決定部２１４の処理フローを示す。
【図３０】図２９のステップ２９３に示したストローク幅変更の要否の判断処理と、変更を要するストロークのストローク幅変更処理とを示すより詳細なフローチャートを示す。
【図３１】ストローク最適配置位置決定部２１４の処理フローを示す。
【図３２】階調値マッピングテーブルを示す。
【図３３】（ａ）（ｂ）ともに階調色マッピングテーブルを示す。
【図３４】（ａ）（ｂ）ともに変更を要するストローク幅と変更後のストローク幅とを対応付けた変更テーブルを示す。
【図３５】変更テーブルの説明図を示す。
【図３６】変更テーブルの説明図を示す。
【図３７】（ａ）〜（ｄ）ストローク幅Ｗが４サブピクセルのストロークを、ストローク幅５に変更する場合の具体例を示す説明図である。
【図３８】第３実施形態における多階調データ生成装置３００を機能別に表した機能ブロック図である。
【図３９】最適配置基準テーブルの一例を示す。
【図４０】本発明の第３の実施形態におけるストローク最適配置位置決定処理の流れ図である。
【図４１】ストローク中心線とその移動方向の例である。
【図４２】移動後のストローク下部直線と上部直線の位置を示す図である。
【図４３】ストローク最適配置位置を示す図である。
【図４４】輪郭情報から生成した８階調の多階調データである。
【図４５】ストローク幅が８サブピクセルの場合の配置パターンである。
【図４６】図４５に対応した多階調データでの表現である。
【図４７】８階調の多階調データを３階調の能力を持つ表示部に出力した場合の一例である。
【図４８】８階調の多階調データを３階調の能力を持つ表示部に出力した場合の一例である。
【図４９】階調数が４で、ストロークの幅Ｗが１ピクセルの場合の色判定テーブルを表わしている。
【図５０】階調数が４で、ストロークの幅Ｗが２ピクセルの場合の色判定テーブルを表わしている。
【図５１】階調数が４で、ストロークの幅Ｗが３ピクセルの場合の色判定テーブルを表わしている。
【図５２】多階調データ生成装置により生成された多階調データをフォントＲＯＭに格納して利用するシステムの説明図である。
【図５３】ストローク幅が３ピクセルの太ゴシック体で表現された”円”を表すビットマップフォント例である。
【図５４】ストローク幅が４ピクセルの太ゴシック体で表現された”円”を表すビットマップフォント例である。
【図５５】階調数が３で、ストローク幅が３ピクセル以上である場合のビットマップフォントのデータ構造を示す説明図である。
【図５６】階調数が３で、ストローク幅が２ピクセルである場合のビットマップフォントのデータ構造を示す説明図である。
【図５７】階調数が４で、ストローク幅が３ピクセル以上である場合のビットマップフォントのデータ構造を示す説明図である。
【図５８】階調数が４で、ストローク幅が２ピクセルである場合のビットマップフォントのデータ構造を示す説明図である。
【符号の説明】
１    記憶部
２    ＲＯＭ
３    ＲＡＭ
４    ＣＰＵ
５    表示部
６    入力部
１００    多階調データ生成装置
１０１    ストローク位置情報保持部
１０２    輪郭情報保持部
１０３    展開バッファ
１０４    最適配置基準テーブル作成部
１０５    テーブル保持部
１０６    ストローク位置移動部
１０７    輪郭情報拡大縮小部
１０８    多階調データ生成部
１１１    階調値マッピングテーブル作成部
１１２    階調色マッピングテーブル作成部
１１３    色判定テーブル作成部
１１４    ストローク最適配置位置決定部
１５０    ＳＴＢ
１５１    アンテナ
１５２    放送用衛星
１５３    放送局
１５４    アンテナ
２００    多階調データ生成装置
２０１    輪郭情報拡大縮小部
２０２    多階調データ生成部
２１３    ストローク色マッピングテーブル作成部
２１４    ストローク最適配置位置決定部
３００    多階調データ生成装置
３０１    値データ生成部
３０２    階調値算出部
３１４    ストローク最適配置位置決定部
【図１】
0004505082.tif 000011
【図２】
0004505082.tif 000012
【図３】
0004505082.tif 000013
【図４】
0004505082.tif 000014
【図５】
0004505082.tif 000015
【図６】
0004505082.tif 000016
【図７】
0004505082.tif 000017
【図８】
0004505082.tif 000018
【図９】
0004505082.tif 000019
【図１０】
0004505082.tif 000020
【図１１】
0004505082.tif 000021
【図１２】
0004505082.tif 000022
【図１３】
0004505082.tif 000023
【図１４】
0004505082.tif 000024
【図１５】
0004505082.tif 000025
【図１６】
0004505082.tif 000026
【図１７】
0004505082.tif 000027
【図１８】
0004505082.tif 000028
【図１９】
0004505082.tif 000029
【図２０】
0004505082.tif 000030
【図２１】
0004505082.tif 000031
【図２２】
0004505082.tif 000032
【図２３】
0004505082.tif 000033
【図２４】
0004505082.tif 000034
【図２５】
0004505082.tif 000035
【図２６】
0004505082.tif 000036
【図２７】
0004505082.tif 000037
【図２８】
0004505082.tif 000038
【図２９】
0004505082.tif 000039
【図３０】
0004505082.tif 000040
【図３１】
0004505082.tif 000041
【図３２】
0004505082.tif 000042
【図３３】
0004505082.tif 000043
【図３４】
0004505082.tif 000044
【図３５】
0004505082.tif 000045
【図３６】
0004505082.tif 000046
【図３７】
0004505082.tif 000047
【図３８】
0004505082.tif 000048
【図３９】
0004505082.tif 000049
【図４０】
0004505082.tif 000050
【図４１】
0004505082.tif 000051
【図４２】
0004505082.tif 000052
【図４３】
0004505082.tif 000053
【図４４】
0004505082.tif 000054
【図４５】
0004505082.tif 000055
【図４６】
0004505082.tif 000056
【図４７】
0004505082.tif 000057
【図４８】
0004505082.tif 000058
【図４９】
0004505082.tif 000059
【図５０】
0004505082.tif 000060
【図５１】
0004505082.tif 000061
【図５２】
0004505082.tif 000062
【図５３】
0004505082.tif 000063
【図５４】
0004505082.tif 000064
【図５５】
0004505082.tif 000065
【図５６】
0004505082.tif 000066
【図５７】
0004505082.tif 000067
【図５８】
0004505082.tif 000068