(57)【特許請求の範囲】
【請求項１】
空間補正機能を持ったフォントスケーラに空間補正情報を出力することにより文字データを出力可能な文字データ作成装置であって、
各線幅情報の下限座標値および上限座標値を用いて各線幅情報が所定距離内にあるか判別することにより、及び２つの線幅情報の位置がずれの位置にあるか判別することにより、各線幅情報が所定距離内にある線幅情報であって、各線幅情報に対してずれていない線幅情報を特定した特定情報を記憶する記憶手段と、
前記特定情報を用いて、空間補正対象グループをまとめることが可能か判別し、まとめることが可能と判別された空間補正対象グループをまとめることにより空間補正情報を生成する生成手段と
を有することを特徴とする文字データ作成装置。
【請求項２】
空間補正機能を持ったフォントスケーラに空間補正情報を出力することにより文字データを出力可能な文字データ作成方法であって、
各線幅情報の下限座標値および上限座標値を用いて各線幅情報が所定距離内にあるか判別することにより、及び２つの線幅情報の位置がずれの位置にあるか判別することにより、各線幅情報が所定距離内にある線幅情報であって、各線幅情報に対してずれていない線幅情報を特定した特定情報を記憶する記憶ステップと、
前記特定情報を用いて、空間補正グループを決定することにより空間補正情報を生成する生成ステップと
を有することを特徴とする文字データ作成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は文字データ作成装置および文字データ作成方法に関し、特に、文字の字形を輪郭の座標で表すアウトラインフォントを用いる文字データ作成装置および文字データ作成方法に関する。
【０００２】
【従来の技術】
アウトライン形式でコード化された文字データ（アウトラインフォントデータ）では、ビットマップ展開時に文字の字形が高品位に保たれるように、輪郭座標値情報とともに文字の同一階調で塗りつぶされる部分の線幅を補正する線幅補正情報により、ビットマップ展開における文字の高品位出力を行っていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、輪郭座標値情報と線幅補正情報だけでは線の輪郭よりも線幅が広がり、線と線の間の空間部分がせばまることを防ぐことができないために、文字の字形を高品位に保つための効果を得られず、文字品位を低下させる場合があった。
【０００４】
本発明は、上述の点に鑑みてなされたもので、文字の輪郭座標値と線幅補正情報から空間補正範囲を決定することで、文字の字形を高品位に保つことのできる文字データ作成装置および文字データ作成方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の装置では、空間補正機能を持ったフォントスケーラに空間補正情報を出力することにより文字データを出力可能な文字データ作成装置であって、各線幅情報の下限座標値および上限座標値を用いて各線幅情報が所定距離内にあるか判別することにより、及び２つの線幅情報の位置がずれの位置にあるか判別することにより、各線幅情報が所定距離内にある線幅情報であって、各線幅情報に対してずれていない線幅情報を特定した特定情報を記憶する記憶手段と、前記特定情報を用いて、空間補正対象グループをまとめることが可能か判別し、まとめることが可能と判別された空間補正対象グループをまとめることにより空間補正情報を生成する生成手段とを有する構成とした。
【００１４】
上記目的を達成するために、請求項２に記載の方法では、空間補正機能を持ったフォントスケーラに空間補正情報を出力することにより文字データを出力可能な文字データ作成方法であって、各線幅情報の下限座標値および上限座標値を用いて各線幅情報が所定距離内にあるか判別することにより、及び２つの線幅情報の位置がずれの位置にあるか判別することにより、各線幅情報が所定距離内にある線幅情報であって、各線幅情報に対してずれていない線幅情報を特定した特定情報を記憶する記憶ステップと、前記特定情報を用いて、空間補正グループを決定することにより空間補正情報を生成する生成ステップとを有するようにした。
【００２４】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を詳細に説明する。
【００２５】
（第１の実施の形態）
図１は本発明を適用した画像処理装置の第１の実施の形態の基本的構成を示すブロック図である。本発明装置は、ワードプロセッサあるいは電子タイプライタであっても良いし、ワークステーションあるいはコンピュータシステムであっても良い。
【００２６】
図１において、中央処理装置（ＣＰＵ）１０１は、画像処理装置全体の制御および演算処理などを行うものである。読み出し専用のメモリＲＯＭ１０２は、システム起動プログラムおよび文字パターンデータ等を予め記憶している。ランダムアクセスメモリ（ＲＡＭ）１０３は、使用制限のないデータ記憶領域として、ＣＰＵ１０１により様々な処理を実行するために各々のプログラムおよびデータがロードされるワークエリアである。ＲＡＭ１０３には、一時格納用バッファが構成される。キーボード制御部（ＫＢＣ）１０４は、キーボード（ＫＢ）１０５よりキー入力データを受け取り、ＣＰＵ１０１へ伝送する。
【００２７】
ポインティングデバイス制御部（ＰＤＣ）１０６は、ポインティングデバイス（ＰＤ）１０７より座標データやボタン入力データ等を受け取り、ＣＰＵ１０１へ伝送する。表示装置制御部１０８は、表示装置１０９に表示すべきデータを出力する。表示装置１０９は、例えばＣＲＴや液晶パネルなどの表示器を有しており、表示装置制御部１０８より画像データを受け取り、これをＣＲＴや液晶パネルに表示する。
【００２８】
ディスク記憶装置（外部記憶装置）１１１は、フロッピィディスクドライブ装置（ＦＤＤ）あるいはハードディスクドライブ装置（ＨＤＤ）、またはＦＤＤおよびＨＤＤで構成され、ディスク状記憶媒体であるフロッピィディスクあるいはハードディスクにプログラムおよびデータを記憶させておき、実行時必要に応じてこれらを参照またはＲＡＭ１０３へロードする。本実施の形態および後述する第２および第３の実施の形態のプログラムは、このディスク記憶装置１１１によりディスク状記憶媒体から読み出し可能とされており、ＣＰＵ１０１の制御により実行される。記憶装置制御部（ＤＫＣ）１１０は、ＦＤＤ，ＨＤＤ等のディスク記憶装置１１１との間でのデータ伝送等の制御を行う。ＦＤＤにはフロッピィディスク１１１ａが着脱自在とされている。
【００２９】
プリンタ制御部（ＰＲＴＣ）１１２は、プリンタ装置（ＰＲＴ）１１３を制御する。プリンタ装置１１３は、プリンタ制御部１１２からのデータを受け取り、シート状記録媒体への印刷を実行する。システムバス１１４は、上述の各構成要素間のデータの伝送路となる。なお、ＦＤＤの代わりに、ＣＤ−ＲＯＭを着脱自在とされたＣＤ−ＲＯＭドライブ装置を設けても良いし、ＨＤＤやＦＤＤに加えてＣＤ−ＲＯＭドライブ装置を設けても良い。
【００３０】
図２は本実施の形態で用いる輪郭座標情報のデータ構造を示す説明図である。
【００３１】
輪郭座標情報２０１は本発明装置が有するシステムのフォントデータであり、たとえば記憶手段であるハードディスクに予めインストールされている。フォントデータは、複数のパターンからなる画像を同一階調で表現し、パターン以外の範囲を他の階調で表現するためのデータである。
【００３２】
輪郭座標情報２０１は、総輪郭数２０２と、各輪郭の終了点番号２０３と、点属性データ２０４とから構成される。点属性データ２０４は、（ｍ＋１）個の各制御点についての、ｘ座標値と、ｙ座標値と、制御点が端点かあるいは３次ベジェ（Ｂｅｚｉｅｒ）曲線における中間点かを示す点属性データとから構成される。
【００３３】
また、本実施の形態において輪郭座標情報２０１の座標値は、図３に示すような左下を原点とする２次元座標を用いて表される。
【００３４】
図４は線幅補正情報のデータ構造の概略を示す説明図である。
【００３５】
この線幅補正情報は本発明装置が有するシステムのフォントデータであり、たとえばハードディスクに予めインストールされている。本実施の形態において線幅補正情報は、種類別にテーブルとして格納されている。以降、これを線幅情報テーブルと称する。
【００３６】
本実施の形態の線幅補正情報（以降、線幅情報と略称する）４０１は、２種類の線幅情報テーブル、水平線幅情報テーブル４０４と垂直線幅情報テーブル４０５とを持ち、データの先頭に水平線幅情報テーブル４０４へのオフセット値４０２と垂直線幅情報テーブル４０５へのオフセット値４０３とを持つ。各オフセット値４０２，４０３で指定される水平および垂直線幅情報テーブル４０４，４０５は同様のデータ構造である。なお、水平または垂直線幅情報を持たない場合、これらの情報を持たない線幅情報テーブルへのオフセット値４０２または４０３には０が代入される。
【００３７】
図５は本実施の形態における線幅を示す説明図である。
【００３８】
２次元座標におけるｘ軸方向の水平線の線幅を水平線幅，ｙ軸方向の垂直線の線幅を垂直線幅という。図に示した「出」の場合には、２つの水平線幅５０１，５０２と、５つの垂直線幅５１１，５１２，５１３，５１４，５１５とで線幅が表される。
【００３９】
図６は各線幅情報テーブルの一例として水平線幅情報テーブル４０４のデータ構造を示す説明図である。
【００４０】
水平線幅情報テーブル４０４の先頭には、水平線幅情報の数ＨＣＯＵＮＴが格納されている。このＨＣＯＵＮＴに続いて、各水平線幅情報の下限座標値ＬＯおよび上限座標値ＨＩと、各水平線幅を構成する制御点の最小座標値ＭＩＮおよび最大座標値情報ＭＡＸとが、第１線幅から第ｍ線幅についてＨＣＯＵＮＴ（＝ｍとする）分だけ順次格納されている。
【００４１】
図６では水平線幅情報テーブル４０４のデータ構造について示したが、垂直線幅情報テーブル４０５も同様のデータ構造とされている。すなわち、その先頭に垂直線幅情報の数ＶＣＯＵＮＴが格納されており、続いて各垂直線幅情報における下限座標値ＬＯおよび上限座標値ＨＩと、各垂直線幅を構成する制御点の最小座標値ＭＩＮおよび最大座標値情報ＭＡＸとが、それぞれＶＣＯＵＮＴ分だけ順次格納されている。
【００４２】
線幅情報を構成する各変数について図７を用いて補足説明する。なお、各変数は図中の網掛けの水平方向の線幅５０２に対するものである。
【００４３】
線幅５０２の変数Ｖ１，Ｖ２，Ｖ３，Ｖ４の座標は、各々（ＭＩＮ，ＬＯ），（ＭＩＮ，ＨＩ），（ＭＡＸ，ＬＯ），（ＭＡＸ，ＨＩ）で表され、線幅５０２の端部位置を示している。ここで、ＭＩＮは線幅５０２を構成する制御点のｘ軸座標の最小座標値、ＭＡＸは線幅５０２を構成する制御点のｘ軸座標の最大座標値、ＬＯはｙ軸座標の下限座標値、ＨＩはｙ軸座標の上限座標値である。
【００４４】
以降、本実施の形態における文字の空間補正範囲決定のアルゴリズムについて説明する。本実施の形態でいう空間とは、同一方向の線幅情報に挟まれた部分を指し、空間補正範囲は線幅情報の集まりで表わされるものとする。
【００４５】
本実施の形態では、前述の輪郭座標情報２０１および線幅情報から、輪郭座標値に対する線幅情報の有効範囲を決定し、決定した有効範囲を配列として出力するものとする。
【００４６】
以降、本実施の形態の処理の流れの概略を図８の説明図および図９以降のフローチャートを用いて説明する。このアルゴリズムは水平方向の空間補正範囲を決定するものであり、垂直方向においても同様のアルゴリズムにより、その空間補正範囲が導出される。またここでは、具体例として、漢字「盟」の水平方向の空間補正範囲の決定について説明する。
【００４７】
図８は「盟」の水平方向の線幅情報を示す説明図である。
【００４８】
「盟」においてはＨＣＯＵＮＴは８であるため、ハッチングで示されたパターンを表す各水平線幅情報（以下、線幅と記す）はｙ軸座標値に対して昇順になっていて、図示の如く８０１から８０８まで順に番号付けされている。
【００４９】
図９は第１の実施の形態における空間補正範囲決定処理の流れを示すフローチャートである。
【００５０】
まず第１段階として、各線幅情報について、同じ空間補正グループに属する他の線幅情報を探す処理を行う。
【００５１】
ステップＳ９０１において、線幅情報の数ＨＣＯＵＮＴと予め任意に設定された垂直方向の距離の閾値ＴＨが読み込まれる。
【００５２】
ステップＳ９０２では、空間補正範囲を決定するための配列Ｃを初期化する。すなわち、ステップＳ９０１で読み込まれた線幅情報の数ＨＣＯＵＮＴから、配列ＣをＨＣＯＵＮＴ×（ＨＣＯＵＮＴ＋１）個の要素で構成する。これは、その線幅情報自身が空間補正対象条件を満たすとしているからであり、その空間補正対象条件を満たすグループ数がＨＣＯＵＮＴ個あることを意味している。この時点で各線幅情報と空間補正対象のグループは１対１に対応しており、これらのグループに対して（ＨＣＯＵＮＴ＋１）個の要素を与える。
【００５３】
次に、これらの各グループの第１要素にはそのグループ内で空間補正対象条件を満たす線幅情報の数を定義し、それぞれ初期値１を代入する。そして、この空間補正対象線幅情報の数が０である場合はこの空間補正対象のグループは無効であると判断するものとする。また、第２要素には空間補正対象条件を満たす線幅情報の番号がそれぞれ代入される。初期値として、各空間補正対象のグループに対応している線幅情報の番号１……８を代入する。そして、第３要素以降の全ての要素にはそれぞれ０を代入する。この時点で、「盟」の場合の配列Ｃは図１０のように初期化される。
【００５４】
配列Ｃを初期化するとステップＳ９０３以降では、各空間補正対象のグループについて、「盟」の線幅情報８０１……８０８が空間補正対象条件を満たしているかどうかを判断し、満たしていれば配列Ｃに出力する処理を行う。ここでは、調べる比較元の線幅情報をＨ、空間補正対象のグループ内の比較先の線幅情報をＧＨと表記して説明する。
【００５５】
ステップＳ９０３において、すべての空間補正対象のグループについて比較が終了したかどうか判断し、終了していれば処理を終り、終了していなければステップＳ９０４へ進む。
【００５６】
ステップＳ９０４において、すべての線幅情報Ｈについて比較が終了したかどうか判断し、終了していればステップＳ９０６へ進み、終了していなければステップＳ９０５へ進む。なお、比較元の線幅情報Ｈは昇順に調べるとものとする。ステップＳ９０５において、現在の比較元の線幅情報Ｈと空間補正対象のグループ内で注目している比較先の線幅情報ＧＨとの距離を求め、その距離が閾値ＴＨ以下であればステップＳ９０７へ進み、閾値ＴＨよりも大きければこれ以降の他の線幅情報ＧＨはすべて閾値ＴＨ以上離れていると判断して、ステップＳ９０６へ進む。ステップＳ９０６では、次の空間補正対象のグループへ比較の対象を移す。なお２つの線幅情報の距離は、たとえばそれぞれのｙ軸座標の下限座標値ＬＯ同士の距離によって定義される。また、それぞれのｙ軸座標上限座標値ＨＩ同士の距離によって定義してもよい。
【００５７】
一方、比較元の線幅情報Ｈと比較先の線幅情報ＧＨとの距離が閾値ＴＨ以下であればステップＳ９０７において、空間補正対象のグループ内で注目している線幅情報ＧＨとの比較がすべて終了したかどうかを判定する。終了していれば、比較元の線幅情報Ｈは空間補正対象のグループに属する条件を満たすと判断してステップＳ９１０以降の処理へ進み、終了していなければステップＳ９０８に進む。ステップＳ９１０において、比較元の線幅情報Ｈがこのグループの空間補正の対象となる条件を満たすとしてこのグループの要素に前詰めで（番号の若い要素から）この線幅情報Ｈの番号を出力する。続いて、ステップＳ９１１でこのグループに属する空間補正対象線幅情報の数を１増加させると、ステップＳ９１２に進む。
【００５８】
ステップＳ９０８では、比較している２つの線幅情報Ｈと線幅情報ＧＨの位置がずれの位置にあるかを調ベる。ずれていれば、比較元の線幅情報Ｈをこの空間補正対象のグループの空間補正の対象としないと判断してステップＳ９０９へ進み、ずれていなければステップＳ９１２へ進む。
【００５９】
ここで、図１１は線幅情報のずれの位置の判定基準を説明する説明図である。
【００６０】
２つの線幅情報のずれの判定は、比較元の最小座標値ＭＩＮ、最大座標値ＭＡＸおよび比較先の最小座標値ＭＩＮ、最大座標値ＭＡＸの４変数についての最小値、最大値に注目し、その距離が比較先あるいは比較元の線幅情報より大きいかどうかを調べることで行う。この結果、たとえば図１１に示されるように判定される。
【００６１】
ずれの位置にあったときにはステップＳ９０９において、比較元の線幅情報Ｈとグループ内の次の線幅情報ＧＨとのずれを判定するため、次の線幅情報ＧＨへ比較の対象を移す。
【００６２】
ずれの位置になかったときにはステップＳ９１２では、次の線幅情報Ｈに比較元を移す。そして、ステップＳ９０３においてすべてのグループの比較を終了したと判定されるまで上記の処理を行うことで、水平線幅情報のＨＣＯＵＮＴ個の空間補正対象グループが導出される。
【００６３】
「盟」の例では、図１２のように８個の空間補正対象のグループとして配列Ｃに出力されている。図１２の配列Ｃは、線幅情報８０１は線幅情報８０２，８０３と閾値ＴＨ内にあってずれていない、線幅情報８０２は線幅情報８０３，８０５と閾値ＴＨ内にあってずれていない、線幅情報８０３は線幅情報８０５，８０７と閾値ＴＨ内にあってずれていない、線幅情報８０４は線幅情報８０６，８０８と閾値ＴＨ内にあってずれていない、線幅情報８０５は線幅情報８０７と閾値ＴＨ内にあってずれていない、線幅情報８０６は線幅情報８０８と閾値ＴＨ内にあってずれていないことを表している。
【００６４】
次に、第２段階として、図１２によって示されるＨＣＯＵＮＴ個の空間補正対象のグループを表わす配列Ｃの再構成を行う。
【００６５】
図１３は第１段階で得られた配列Ｃを再構成する処理を表すフローチャートである。
【００６６】
まずステップＳ１３０１において、比較する２つの空間補正対象のグループの比較元と比較先を設定する。説明のため、比較元の空間補正対象のグループをα、比較先の空間補正対象のグループをβとする。比較先βは、比較元αに対して若い番号の線幅情報を含む空間補正対象グループである。たとえば、比較元αが線幅情報８０４，８０６，８０８を含む空間補正対象グループであれば、比較先βは線幅情報８０１，８０２，８０３を含む１つの空間補正対象グループとなる。なお、比較元αは任意に設定することができ、どの空間補正対象のグループから比較を開始してもよい。
【００６７】
ステップＳ１３０２において、すべての比較が終了したかどうかを判定し、終了したら処理を終わり、終了していなければステップＳ１３０３へ進む。
【００６８】
ステップＳ１３０３において、比較元αにおける空間補正対象のグループの初めの線幅情報番号（たとえば線幅情報８０４の場合の４）が比較先βの線幅情報の空間補正対象のグループの線幅情報番号の各要素（線幅情報８０１の要素１，２，３）の中に含まれているかを判定し、含まれていればステップＳ１３０４へ進む。一方、含まれていなければ両空間補正対象のグループ（線幅情報８０４を含むグループと線幅情報８０１を含むグループ）は別々に存在すると判断してステップＳ１３０６へ進む。
【００６９】
ステップＳ１３０４において、両空間補正対象グループを１つにすることが可能かどうかを判定し、可能であればステップＳ１３０５へ進み、可能でなければステップＳ１３０６へ進む。このステップＳ１３０４については、図１４のフローチャートによって詳細に説明する。可能であればステップＳ１３０５において、比較元αと比較先βの空間補正対象グループを１つにまとめる。このグループのまとめ方については、図１６のフローチャートによって詳細に説明する。
【００７０】
ここで、図１４は図１３におけるステップＳ１３０４の処理について詳細に示すフローチャートである。
【００７１】
この処理は比較元αに含まれるすべての線幅情報について、比較先βに含まれる線幅情報の重なり部分（ここでは説明のためＶとする）とのずれを調べて、比較元αに含まれるすべての線幅情報がずれていなかった場合に比較元αと比較先βを一緒にできると判断する処理である。
【００７２】
ステップＳ１４０１において、空間補正対象グループを１つにすることが可能かどうかの比較が最後まで終了したかどうかを判定し、終了していればステップＳ１４０７へ進み、終了していなければステップＳ１４０２へ進む。
【００７３】
ステップＳ１４０２において、比較元αにおいて現在注目している線幅情報番号が比較先βの要素に含まれいているかどうかを判定し、含まれていれば比較元αの線幅情報は比較先βでも有効な線幅情報であるのでステップＳ１４０５へ進み、含まれていなかったらステップＳ１４０３へ進む。ステップＳ１４０３において、比較先βの空間補正の対象となっている線幅情報の要素の重なりＶの範囲を計算する。
【００７４】
図１５（ａ）に示す楕円で囲まれた範囲１５０１は、「盟」における線幅情報番号８０３を初めの線幅情報とする空間補正対象のグループである。このグループに含まれる線幅情報８０３、８０５および８０７に注目すると、黒く塗り潰されている部分のＶが３つの線幅情報すべてが重なっている部分である。この部分がステップＳ１４０２で求める重なりの部分である。この重なりは、空間補正対象に含まれる線幅情報中の最小値ＬＯの中の最大値と、最大値ＨＩの中の最小値によって定義される。たとえば、図１５（ｂ）のＶ′のように定義される場合もある。
【００７５】
ステップＳ１４０４において、ステップＳ１４０３によって求められた比較先の空間補正の対象の線幅情報の重なり部分Ｖと現在注目している比較元αの線幅情報について重なり具合を調ベ、ずれていたらステップＳ１４０６へ進み、ずれていなかったらステップＳ１４０５へ進む。このずれの判定は図９のステップＳ９０６によって説明した方法と同様の処理によって判定される。
【００７６】
「盟」の範囲１５０１における重なりＶに対しては、たとえば線幅情報８０１，８０２はずれておらず、線幅情報８０４，８０６はずれていることになる。
【００７７】
ステップＳ１４０５では、次の比較を比較元の空間補正の対象となる次の線幅情報に移す。またステップＳ１４０６においては、比較元αと比較先βの両空間補正の対象のグループを１つにまとめることはできないとして処理を終える。
【００７８】
ステップＳ１４０７において、比較元αと比較先βの両空間補正の対象のグループは１つにまとめることができるとして処理を終える。
【００７９】
図１６は比較元と比較先の空間補正対象グループを１つにまとめるステップＳ１３０５の処理を説明するフローチャートである。
【００８０】
ステップＳ１６０１において、比較元αで対象となっている線幅情報がすべて比較先βに存在するかどうか判定し、存在していればステップＳ１６０５へ進み、存在していなければステップＳ１６０２へ進む。ステップＳ１６０２において、比較元αの線幅情報の中で比較先βに含まれていない線幅情報の数を数える。
【００８１】
ステップＳ１６０３において、比較元αの線幅情報の要素の中で比較先βの線幅情報の要素に含まれていない要素を比較先βの要素に付け加える。
【００８２】
ステップＳ１６０４において、ステップＳ１６０２で求められた、比較元αの線幅情報の中で比較先βに含まれていない線幅情報の数だけ、比較先βの線幅情報の数を増加させる。
【００８３】
これにより、比較元αの線幅情報を比較先βの線幅情報に付け加えたことになり、比較元αは不要となる。そこで、ステップＳ１６０５において比較元αの線幅情報数を０とする。この線幅情報数を０とすることで、配列Ｃにおけるこのグループは無効であると判断される。
【００８４】
空間補正範囲の出力は、配列Ｃにおいて線幅情報の数が０でないグループによって表わされている。「盟」における水平線幅に対す配列Ｃは図１７（ａ）のように変換される。空間補正対象のグループの数は２であり、それぞれのグループに属する線幅情報は第２要素以降に格納されている。これは、図１７（ｂ）に示すように、線幅情報８０１，８０２，８０３，８０５，８０７からなるグループと線幅情報８０４，８０６，８０８からなるグループの２つの空間補正グループが決定されたことを示している。
【００８５】
同様の処理を垂直方向に対しても行うことにより、水平および垂直方向の空間補正範囲が決定される。この結果、「盟」の場合は「日」、「月」、「皿」の３つの空間補正グループが決定されることになる。
【００８６】
このように本実施の形態によれば、文字の輪郭に基づいて各線幅間の空間部分の補正を行う空間補正範囲が決定されて文字品位を高める情報を付加することが可能となるため、空間補正範囲に応じて補正した塗り潰し（同一階調表現）を行うことができて線の輪郭よりも線幅が広がって空間部分がせばまることのない、高品位の文字をビットマップに展開することができる。
【００８７】
（第２の実施の形態）
第１の実施の形態では、配列Ｃ中の線幅情報の数が０でないグループによって空間補正範囲を表し、その要素によって各空間補正対象グループの線幅情報を示していた。
【００８８】
本実施の形態では、第１の実施の形態の処理によって出力された配列Ｃに加え、各線幅情報の下限座標値ＬＯおよび上限座標値ＨＩを用いて、空間補正の座標関係を図１８に示すデータ形式の配列Ｃｄに変換して出力するための処理について説明する。
【００８９】
図１８は水平方向の空間補正情報を表すデータ形式の配列Ｃｄの出力を示す説明図である。
【００９０】
図１８においてｈｎは水平方向の空間補正グループの数を示す。また、ｈｎ個のグループに含まれる線幅情報の数をｈｃｎｔ（ｉ）（ｉ＝１，……ｎ）とする。垂直方向の空間補正情報も、図１８に示す配列Ｃｄと同様の形式で表すことができる。
【００９１】
図１９は第１の実施の形態によって出力された配列Ｃに加え、各線幅情報の下限座標値ＬＯおよび上限座標値ＨＩを用いて、図１８に示すデータ形式の配列Ｃｄを出力するための本実施の形態の処理を示すフローチャートである。
【００９２】
まずステップＳ１９０１において、ｈｎを０に初期設定する。
【００９３】
ステップＳ１９０２において第１の実施の形態の処理によって出力された配列Ｃの、ＨＣＯＵＮＴ個のすべてのグループについて処理が終了したかどうかを判定し、終了していればステップＳ１９１１へ進んで処理を次の空間補正グループに移す。一方、終了していなければステップＳ１９０３へ進み、注目しているグループに含まれる線幅情報の数を読み込み、この数が０ならばステップＳ１９１０へ進み、０でなければステップＳ１９０４へ進む。
【００９４】
０でなければ線幅情報の数が０でない有効な空間補正対象のグループが１つ検出されたので、ステップＳ１９０４においてｈｎの数を１増加させる。そしてステップＳ１９０５に進み、読み込んだ線幅情報の数をｈｎ番目のグループの線幅情報の数ｈｃｎｔ（ｈｎ）として一時格納用バッファＢ１に追加出力する。
【００９５】
ｈｃｎｔ（ｈｎ）を出力するとステップＳ１９０６〜Ｓ１９０９では、グループ内の線幅情報についてそれぞれ座標値を読み込み、出力する処理を行っている。すなわちステップＳ１９０６では、グループ内の線幅情報すべてについて処理を終了したかどうかを判定し、終了していればステップＳ１９１０へ進む。一方、終了していなければステップＳ１９０７へ進み、配列Ｃから線幅情報番号を読み込み、これに対応する下限座標値ＬＯを図６に示した水平線幅情報テーブル４０４から読み込んで一時格納バッファＢ２へ追加出力する。
【００９６】
続くステップＳ１９０８では、配列Ｃより線幅情報番号を読み込み、これに対応する上限座標値ＨＩを図６に示した線幅情報テーブル４０４から読み込んで、一時格納バッファＢ２へさらに追加出力する。下限座標値ＬＯと上限座標値ＨＩとを一時格納バッファＢ２へ出力すると、ステップＳ１９０９に進んで同一の空間補正グループ内の次の線幅情報へ処理を移した後、ステップＳ１９０６に戻る。
【００９７】
以上のようにステップＳ１９０５の処理を繰り返すことにより、グループｉ（ｉ＝１，……ｎ）に含まれる線幅情報の数が一時格納バッファＢ１に格納される。また、Ｓ１９０６〜Ｓ１９０９の処理を繰り返すことにより、グループｉ（ｉ＝１，……ｈｎ）の初めの線幅情報からｈｃｎｔ（ｈｎ）番目までの下限値ＬＯの座標と、グループｉ（ｉ＝１，……ｈｎ）の初めの線幅情報からｈｃｎｔ（ｈｎ）番目までの上限値ＨＩの座標とが一時格納バッファＢ２に格納される。
【００９８】
ステップＳ１９１０に続くステップＳ１９１１では、有効な水平方向空間補正グループの数ｈｎを図１８に示した配列Ｃｄに出力する。そしてステップＳ１９１２において、一時格納バッファＢ１から線幅情報の数ｈｃｎｔ（ｈｎ）（ｉ＝１，……ｎ）を図１８に示した配列Ｃｄに出力する。さらにステップＳ１９１３において、一時格納バッファＢ２から下限座標値ＬＯと上限座標値ＨＩとを図１８に示した配列Ｃｄに出力する。
【００９９】
このように本実施の形態によれば、第１の実施の形態において出力した配列Ｃを基に、配列Ｃに座標値情報を付加した配列Ｃｄを得ることができるので、具体的な空間補正範囲を二次元座標上で特定してを示すことが可能となり、具体的な空間補正範囲に応じて、線の輪郭よりも線幅が広って空間部分がせばまることのない塗り潰し（同一階調表現）を行うことができる。したがって、ビットマップに展開する際に、所定の位置に、正確な形状で高品位の文字を形成することができる。
【０１００】
（第３の実施の形態）
本実施の形態は、社団法人日本事務機械工業会発行「文書記述フォントＪＩＳ原案作成委員会・技術セミナー／文書関連ＪＩＳ規格説明会資料」（１９９４年３月１０日）に記載のＪＩＳＸ４１６３原案「第３部グリフ形状表現」により規定されている規格（以降、Ｘ４１６３と呼ぶことにする）などに適用するための例を開示する。
【０１０１】
図２０は本実施の形態におけるＸ４１６３の代表的な命令を示す説明図である。
【０１０２】
オペランドはＸ４１６３の文字描画命令の例を示しており、オペランドがオペレータの前に表記されている。本実施の形態では、空間補正を行う命令をＳＰＡＣＥと定義し、このオペレータに対するオペランドを以下のように定義する。
【０１０３】
0003787390.tif 000002
ｈｎは水平方向の空間補正グループの数を示し、ＨＧ１…ＨＧｎは水平方向における各空間補正グループを示す。また、ｖｎは垂直方向の空間補正グループの数を示し、ＶＧ１…ＶＧｎは垂直方向における各空間補正グループを示す。ＮはＳＰＡＣＥ命令に対するオペランド数を示す。
【０１０４】
図２１および図２２は本実施の形態における処理の流れを示すフローチャートである。以下、図１８の配列ＣｄからＳＰＡＣＥ命令作成のための処理について、両フローチャートを参照して説明する。ここで、ＳＰＡＣＥ命令の規約として、以下の記述により表わすこととする。
【０１０５】
0003787390.tif 000003
ここで、ＬＯ（ｃｎｔ）はｃｎｔ番目の線幅情報の下限座標値、ＨＩ（ｃｎｔ）はｃｎｔ番目の線幅情報の上限座標値をそれぞれ示す。各グループは最初の線幅情報の下限座標値ＬＯから順に直前の座標値との差分を出力することとする。ｃｎｔはそのグループ内の同一方向の線幅情報の数を示し、第２の実施の形態におけるｈｃｎｔ（ｉ）の値と同一値である。また、各グループの最終線幅情報のみ下限座標値ＬＯと上限座標値ＨＩを逆にする。これは、水平空間補正グループＨＧおよび垂直空間補正グループＶＧごとの区切りを付けるための規約である。
【０１０６】
まず、図２１中のステップＳ２１０１において、水平方向について空間補正情報のオペランド出力を行う。この処理については、図２２のフローチャートを参照して後述する。
【０１０７】
ステップＳ２１０２において、垂直方向について空間補正情報のオペランド出力を行う。この処理については水平方向と同様の処理を行うので説明を省略する。
【０１０８】
ステップＳ２１０３において、ステップＳ２１０１およびステップＳ２１０２において出力されたオペランドの数を求める。各方向においては、まず各グループに含まれる線幅情報の数の合計を２倍する。これは、一つの線幅情報について上限および下限の２つの情報を持つためである。そして、その値に空間補正グループ数を示すオペランド１を加算することによって求められる。この加算を両方向について行う。そしてステップＳ２１０４において、ＳＰＡＣＥ命令を出力する。
【０１０９】
以下、図２２のフローチャートを参照して、水平方向の空間補正情報を格納した図１８の配列Ｃｄからオペランドを出力する処理を説明する。
【０１１０】
ステップＳ２２０１において、水平方向の空間補正対象のグループ数ｈｎを出力する。ステップＳ２２０２において、グループ数を計数するカウンタｉの値を０に初期化する。ステップＳ２２０３において、ｉ＝ｈｎか判定することですべてのグループについてオペランドの出力が終了したかどうか判断する。終了していれば図２１のフローチャートに戻り、終了していなければステップＳ２２０４へ進む。
【０１１１】
ステップＳ２２０４では、ｉ番目のグループの線幅情報を計数するカウンタｊの値を１に初期化し、続くステップＳ２２０５において、差分出力のための変数Ｄを０に初期化する。
【０１１２】
両変数を初期化するとステップＳ２２０６において、ｊ＝ｈｃｎ（ｉ）か判定することで最後の線幅情報かどうかを判断する。ｊ＝ｈｃｎ（ｉ）で最後の線幅情報だったらステップＳ２２１０へ進み、ｊ≠ｈｃｎ（ｉ）で最後の線幅情報ではなかったらステップＳ２２０７へ進む。
【０１１３】
ステップＳ２２０７では、ＬＯ（ｊ）−Ｄ、およびＨＩ（ｊ）−ＬＯ（ｊ）を出力し、続くステップＳ２２０８において、次の差分計算のため変数ＤにＨＩ（ｊ）を代入する。そしてステップＳ２２０９において、次の線幅情報に処理を移すためカウンタｊの値を１増加させてステップＳ２２０６に戻る。
【０１１４】
またステップＳ２２１０では、最後の線幅情報なので、ＨＩ（ｊ）−ＤおよびＬＯ（ｊ）−ＨＩ（ｊ）を出力する。ステップＳ２２１１において、次の空間補正グループに処理を移すためカウンタｉの値を１増加させてステップＳ２２０３に戻る。
【０１１５】
このように本実施の形態によれば、第２の実施の形態と同様の効果が得られる他に、Ｘ４１６３などに代表される命令形式により空間補正範囲を示すことができる。したがって、空間補正機能をもったフォントスケーラに所定の命令形式で空間補正情報を出力することにより、高品位な文字データを出力することができる。
【０１１６】
なお、図２１および図２２に示した処理を実行すれば命令形式で、実行しなければ配列の形式で空間補正範囲を出力でき、変換された文字データの出力形式を選択することができる。
【０１１７】
また、上記の各実施の形態では文字パターンを処理する場合について説明したが、文字に限らずその他のパターンであっても本発明を適用することができることは勿論である。
【０１１８】
本発明方法は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用しても良い。また、本発明方法はシステム或いは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。この場合、本発明方法を達成するためのソフトウエアによって表されるプログラムを格納した記憶媒体をシステム或いは装置に読み出すことによって、そのシステム或いは装置が、本発明方法の効果を享受することが可能になる。
【０１１９】
【発明の効果】
以上説明してきたように、本発明によれば、各線幅情報の下限座標値および上限座標値を用いて各線幅情報が所定距離内にあるか判別することにより、及び２つの線幅情報の位置がずれの位置にあるか判別することにより、各線幅情報が所定距離内にある線幅情報であって、各線幅情報に対してずれていない線幅情報を特定した特定情報を記憶手段に記憶し、この特定情報を用いて、空間補正対象グループをまとめることが可能か判別し、まとめることが可能と判別された空間補正対象グループをまとめることにより空間補正情報を生成することで、同一階調で表現される複数のパターンが他の階調で表現される範囲に広がらないように補正することができ、所定の位置に、正確な形状の高品位画像を得ることができるという効果を奏することができる。
【図面の簡単な説明】
【図１】図１は本発明を適用した画像処理装置の第１の実施の形態の基本的構成を示すブロック図である。
【図２】第１の実施の形態における輪郭座標情報のデータ構造について示す説明図である。
【図３】左下を原点とする２次元平面座標について示す説明図である。
【図４】第１の実施の形態における線幅補正情報のデータ構造の概略を示す説明図である。
【図５】第１の実施の形態における線幅を示す説明図である。
【図６】第１の実施の形態における各線幅情報テーブルの一例として水平線幅情報テーブル４０４のデータ構造を示す説明図である。
【図７】第１の実施の形態における線幅情報が保持する変数について示す説明図である。
【図８】「盟」の水平方向の線幅情報を示す説明図である。
【図９】第１の実施の形態における空間補正範囲決定処理の流れを示すフローチャートである。
【図１０】「盟」における空間補正グループを示す配列Ｃの初期化について示す説明図である。
【図１１】線幅情報のずれの位置の判定基準を説明する説明図である。
【図１２】「盟」における空間補正グループ決定処理中の配列Ｃの出力を表わした説明図である。
【図１３】第１の実施の形態における第１段階で得られた配列Ｃを再構成する処理を表すフローチャートである。
【図１４】第１の実施の形態における図１３中のステップＳ１３０４の処理について詳細に示すフローチャートである。
【図１５】空間補正グループ中の線幅情報の重なり部分を示す説明図である。
【図１６】第１の実施の形態における比較元と比較先の空間補正対象グループを１つにまとめるステップＳ１３０５の処理を説明するフローチャートである。
【図１７】「盟」における空間補正グループ決定後の配列Ｃの出力を表わした説明図である。
【図１８】第２の実施の形態における水平方向の空間補正情報を表すデータ形式の配列Ｃｄの出力を示す説明図である。
【図１９】第２の実施の形態における、第１の実施の形態によって出力された配列Ｃに加え、各線幅情報の下限座標値ＬＯおよび上限座標値ＨＩを用いて、図１８に示すデータ形式の配列Ｃｄを出力するための処理を示すフローチャートである。
【図２０】第３の実施の形態におけるＪＩＳＸ４１６３原案「第３部グリフ形状表現」により規定されている規格の代表的な命令を示す説明図である。
【図２１】第３の実施の形態における処理の流れを示すフローチャートである。
【図２２】第３の実施の形態における処理の流れを示すフローチャートである。
【符号の説明】
１０１  ＣＰＵ（中央演算ユニット）
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  キーボード制御部
１０５  キーボード
１０６  ポインティングデバイス制御部
１０７  ポインティングデバイス
１０８  表示装置制御部
１０９  表示装置
１１０  記憶装置制御部
１１１  ディスク記憶装置（ＦＤＤ，ＨＤ）
１１１ａ  フロッピィディスク
１１２  プリンタ制御部
１１３  プリンタ装置
１１４  システムバス
２０１  輪郭座標情報
４０１  線幅補正情報
４０４  水平線幅情報テーブル
４０５  垂直線幅情報テーブル
５０１，５０２，８０１，…８０８  水平線幅
５１１，５１２，５１３，５１４，５１５  垂直線幅
Ｃ，Ｃｄ  配列
【図１】
0003787390.tif 000004
【図２】
0003787390.tif 000005
【図３】
0003787390.tif 000006
【図４】
0003787390.tif 000007
【図５】
0003787390.tif 000008
【図６】
0003787390.tif 000009
【図７】
0003787390.tif 000010
【図８】
0003787390.tif 000011
【図９】
0003787390.tif 000012
【図１０】
0003787390.tif 000013
【図１１】
0003787390.tif 000014
【図１２】
0003787390.tif 000015
【図１３】
0003787390.tif 000016
【図１４】
0003787390.tif 000017
【図１５】
0003787390.tif 000018
【図１６】
0003787390.tif 000019
【図１７】
0003787390.tif 000020
【図１８】
0003787390.tif 000021
【図１９】
0003787390.tif 000022
【図２０】
0003787390.tif 000023
【図２１】
0003787390.tif 000024
【図２２】
0003787390.tif 000025