(57)【要約】【課題】  文字画像を形成するためのパーツとなるデータのデータ量を抑えながら多くの文字を表示可能であり、しかも見栄えの良い文字を形成することが可能な文字画像形成装置を提供する。【解決手段】  文字を描画するためのデータを生成する文字画像形成装置に、文字の一部であって、かつ始点と終点とが一致しない線分を含む描画するためのデータである文字パーツを記憶した外部記憶装置１０４を取り付ける。そして、ＣＰＵ１０１が、保存されている文字パーツを組み合わせると共に、組み合わされた文字パーツのうち、一のアウト文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字を生成する。【選択図】  図１
2006284980.tif 000002
【特許請求の範囲】
【請求項１】
文字を描画するためのデータを生成する文字画像形成装置であって、
文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを保存する文字パーツ保存手段と、
前記文字パーツ保存手段に保存されている文字パーツを組み合わせると共に、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字を生成する文字生成手段と、
を備えることを特徴とする文字画像形成装置。
【請求項２】
前記文字生成手段は、生成した文字をパーツとしてさらに組み合わせ、他の文字を生成することを特徴とする請求項１に記載の文字画像形成装置。
【請求項３】
前記文字パーツ保存手段は、文字パーツと共に、文字パーツが形成すべき文字に応じた当該文字パーツの配置すべき位置、該位置における配置の方向、拡大、縮小にかかる情報を少なくとも保存することを特徴とする請求項１または２に記載の文字画像形成装置。
【請求項４】
文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを組み合わせ、文字を生成する文字画像形成方法であって、
文字パーツと共に保存されている文字パーツが形成すべき文字に応じた当該文字パーツを配置すべき位置、該位置における配置の方向、拡大、縮小にかかる情報に基づいて、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字パーツを生成する文字パーツ生成工程を含むことを特徴とする文字画像形成方法。
【請求項５】
文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを組み合わせ、文字を生成する文字画像形成方法を、コンピュータに実行させるためのプログラムであって、
文字パーツと共に保存されている文字パーツが形成すべき文字に応じた当該文字パーツを配置すべき位置、該位置における配置の方向、拡大、縮小にかかる情報に基づいて、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字パーツを生成する文字パーツ生成ステップを含むことを特徴とする文字画像形成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字画像形成装置、文字画像形成方法及び文字画像形成方法をコンピュータに実行させるためのプログラムにかかり、特に文字画像を形成するために文字のアウトラインを描画するためのデータを生成する文字画像形成装置、文字画像形成方法及び文字画像形成方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
文字を含む画像を表示する表示装置では、多くの種類のフォントを使用したい一方、フォントデータの保存に必要な記憶容量を抑えたいという要求がある。現在使用されている一般的なフォントデータの保存方式としては、グリフ（字形）をビットマップで保存するビットマップ形式、輪郭（アウトライン）にかかる情報を数式で記録するアウトライン形式、文字のストロークを記憶するストローク形式がある。
【０００３】
アウトライン形式のフォントには、ＴｒｕｅＴｙｐｅフォントやＴｙｐｅｌフォントがある。ＴｒｕｅＴｙｐｅフォントやＴｙｐｅｌフォントの統一規格はＯｐｅｎＴｙｐｅフォントであって、ＯｐｅｎＴｙｐｅフォントには、グリフアウトライン（文字の輪郭）を定義する場合に他のグリフアウトラインを参照する方法がある。
このような方法を日本語文字に適用した場合、例えば、「他」あるいは「仏」といった文字を形成する「イ（人偏）」と「也」あるいは「ム」のグリフアウトラインとを別個に保存しておく。そして、形成すべき「他」や「仏」の文字に応じてグリフアウトラインを組み合わせる。このような方法によれば、「イ」が「他」、「仏」といった複数の文字を形成する場合に使用できる。
【０００４】
さらに、例えば「弓」の文字のグリフアウトラインを保存しておくことにより、「弛」や「弘」といった文字をも形成できる。すなわち、このような方法は、保存されるグリフアウトラインの数を抑えながらも多くの文字を形成することを可能にする。
また、上記した技術に加え、従来技術である特許文献１は、「イ」や「弓」といったグリフアウトラインを組み合わされるグリフアウトラインに応じ、基準となるパーツとの差分を圧縮し、より見栄えの良い文字を形成している。さらに、特許文献２は、ストロークの端部にあたる部分のアウトラインを保存しておくことによって保存されるグリフアウトラインの数を抑えている。
【特許文献１】特開平０６−９５６４２号公報
【特許文献２】特開平０９−０３４４３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、文字を構成する部分のグリフアウトラインを保存しておき、これを組み合わせて文字を構成する方法は、グリフアウトラインを文字ごとに保存しておく方法に比べてグリフアウトラインの保存数を抑えることができるものの、さらに保存数を低減することについて検討の余地がある。
また、特許文献１に記載された従来技術は、基準となるパーツが完成した文字を分割して生成されていることにより、グリフアウトラインを組み合わせたときに重複するアウトラインが生じることがあるという欠点がある。さらに、特許文献２の従来技術は、ストロークのアウトラインと生成された端部のアウトラインとを滑らかにつなげる処理にかかる負荷が大きいという欠点がある。
【０００６】
本発明は、このような点に鑑みてなされたものであって、文字画像を形成するためのパーツとなるデータのデータ量を抑えながら多くの文字を表示可能であり、しかも見栄えの良い文字を形成することが可能な文字画像形成装置、文字画像形成方法及び文字画像形成方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明の文字画像形成装置は、文字を描画するためのデータを生成する文字画像形成装置であって、文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを保存する文字パーツ保存手段と、前記文字パーツ保存手段に保存されている文字パーツを組み合わせると共に、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字を生成する文字生成手段と、を備えることを特徴とする。
【０００８】
このような発明によれば、文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを予め保存しておく。そして、保存されている文字パーツを組み合わせると共に、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字を生成することができる。
【０００９】
このため、本発明は、文字パーツを組み合わせて連続する線で描画される文字を生成することができる。文字の端部の形状の種類は一般的に文字の種類より少数であるから、本発明は所定の数の文字パーツによってより多くの文字のパーツを生成することができる。このような本発明は、文字を閉じた線で構成されるパーツに分解して保存しておき、このパーツを組み合わせて文字画像を形成する構成よりも保存しておくべきデータ量を少なくすることができる。したがって、保存すべきグリフアウトラインの数を抑えながら多くの文字が表示可能な文字画像形成装置を提供することができる。
【００１０】
また、本発明は、開いた文字パーツに含まれる線分の始点、終点同士を対応させて配置するので、始点や終点同士を連続する線でつないで文字のアウトラインを形成することができる。このため、閉じた文字パーツ同士を組み合わせる特許文献２に記載の構成よりも高速に、かつ見栄えの良い文字を形成することが可能な文字画像形成装置を提供することができる。
【００１１】
また、本発明の文字画像形成装置は、前記文字生成手段が生成した文字をパーツとしてさらに組み合わせ、他の文字を生成することを特徴とする。
このような発明によれば、文字パーツによって生成された文字を他の文字と組み合わせて複数の文字を形成することが可能になる。このため、文字パーツによってより多くの文字が生成可能になり、保存しておくべきデータ量をより低減することができる。
【００１２】
また、本発明の文字画像形成装置は、前記アウトラインパーツ保存手段は、アウトラインパーツと共に、アウトラインパーツが形成すべき文字に応じた当該アウトラインパーツの配置すべき位置、該位置における配置の方向、拡大、縮小にかかる情報を少なくとも保存することを特徴とする。
このような発明によれば、アウトラインパーツと共にアウトラインパーツを配置すべき情報を保存することができる。このため、アウトラインパーツの利用率を高め、保存しておくべきデータ量を削減することができる。
【００１３】
また、本発明の文字画像形成方法は、文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを組み合わせ、文字を生成する文字画像形成方法であって、文字パーツと共に保存されている文字パーツが形成すべき文字に応じた当該文字パーツを配置すべき位置、該位置における配置の方向、拡大、縮小にかかる情報に基づいて、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字パーツを生成する文字パーツ生成工程を含むことを特徴とする。
【００１４】
このような発明によれば、文字のアウトラインの一部であって、かつ始点と終点とが一致しない線を描画するためのデータであるアウトラインパーツを組み合わせると共に、組み合わされたアウトラインパーツのうち、一のアウトラインパーツの始点及び終点を他のアウトラインパーツの始点及び終点に対応付けて配置することにより文字パーツを生成することができる。
【００１５】
このような発明によれば、文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを予め保存しておく。そして、保存されている文字パーツを組み合わせると共に、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字を生成することができる。
【００１６】
このため、本発明は、文字パーツを組み合わせて連続する線で描画される文字を生成することができる。文字の端部の形状の種類は一般的に文字の種類より少数であるから、本発明は所定の数の文字パーツによってより多くの文字のパーツを生成することができる。このような本発明は、文字を閉じた線で構成されるパーツに分解して保存しておき、このパーツを組み合わせて文字画像を形成する構成よりも保存しておくべきデータ量を少なくすることができる。したがって、保存すべきグリフアウトラインの数を抑えながら多くの文字が表示可能な文字画像形成方法を提供することができる。
【００１７】
また、本発明の文字画像形成方法をコンピュータに実行させるためのプログラムは、文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを組み合わせ、文字を生成する文字画像形成方法を、コンピュータに実行させるためのプログラムであって、
文字パーツと共に保存されている文字パーツが形成すべき文字に応じた当該文字パーツを配置すべき位置、該位置における配置の方向、拡大、縮小にかかる情報に基づいて、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字パーツを生成する文字パーツ生成ステップを含むことを特徴とする。
【００１８】
このような発明によれば、文字の一部であって、かつ始点と終点とが一致しない線分を含む図形を描画するためのデータである文字パーツを予め保存しておく。そして、保存されている文字パーツを組み合わせると共に、組み合わされた文字パーツのうち、一の文字パーツに含まれる線分の始点及び終点を他の文字パーツに含まれる線分の始点及び終点に対応付けて配置することにより文字を生成することができる。
【００１９】
このため、本発明は、文字パーツを組み合わせて連続する線で描画される文字を生成することができる。文字の端部の形状の種類は一般的に文字の種類より少数であるから、本発明は所定の数の文字パーツによってより多くの文字のパーツを生成することができる。このような本発明は、文字を閉じた線で構成されるパーツに分解して保存しておき、このパーツを組み合わせて文字画像を形成する構成よりも保存しておくべきデータ量を少なくすることができる。したがって、保存すべきグリフアウトラインの数を抑えながら多くの文字が表示可能な文字画像形成方法をコンピュータに実行させるためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図を参照して本発明にかかる文字画像形成装置、文字画像形成方法及び文字画像形成方法をコンピュータに実行させるためのプログラムの一実施の形態を説明する。
図１は、本実施形態の文字画像形成装置のブロック図である。本実施形態の画像形成装置は、ＣＰＵ（Central Processing Unit）１０１によって統括的に制御されている。ＣＰＵ１０１は、電源コントローラ１０２を介して電源から電力の供給を受け、ディスプレイ１０７に表示すべき文字やグラフ、図形といった画像を表示するためのデータを生成する。ユーザは、キーボード１０９や不図示のマウス等によってＣＰＵ１０１に画像表示にかかる指示を入力する。
【００２１】
ＣＰＵ１０１は、画像データの生成に必要なデータ（フォントデータを含む）やプログラムを外部記憶装置１０４から読出し、文字を描画するために必要なデータを生成する。また、ＣＰＵ１０１は、外部記憶装置１０４から読出されたデータをメモリ１０３にキャッシュする、あるいは生成したデータをいったんメモリ１０３に保存しておくものであってもよい。
【００２２】
ＣＰＵ１０１によって生成されたデータは、グラフィックスコントローラ１０５またはプリンタ１０８に出力される。グラフィックスコントローラ１０５に出力されたデータは、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）１０６にビットマップとして展開される。グラフィックスコントローラ１０５は、展開されたビットマップをディスプレイ１０７上に描画する。
【００２３】
以上述べた構成は、バス１１１によって相互に接続されている。バス１１１は、バスコントローラ１１０によって制御されている。
図１に示した表示装置において、主にＣＰＵ１０１、外部記憶装置１０４が本実施形態の文字画像形成装置として機能する。
図２は、本実施形態の文字画像形成装置によって生成されたデータを示した図であって、アルファベットのＨの文字を描画するためのデータを例示している。本実施形態の文字画像形成装置は、文字パーツ（実施形態ではパーツグリフとする）と制御点ｐ１、ｐ２、ｐ３、ｐ４を組み合わせて文字画像を生成する。
【００２４】
パーツグリフ２０１ａ、２０１ｂ、２０１ｃ、２０１ｄ、２０１ｅ、２０１ｆ、２０１ｇ、２０１ｈは、いずれも文字Ｈのアウトライン（輪郭線）の一部であって、かつ始点と終点とが一致しない線を含む図形を描画するためのデータである。パーツグリフ２０１ａ〜２０１ｈは、外部記憶装置１０４に保存されている。
なお、本実施形態のパーツグリフは、文字のアウトラインを描画するためのデータである。しかし、本実施形態でいう文字パーツは、文字のアウトラインを描画するためのデータに限定されるものでなく、アウトラインに囲まれた範囲を示す図形を描画するためのデータであればどのようなものでもよい。例えば、アウトラインを描画することなく、直接アウトラインに囲まれた範囲を塗りつぶして形成される図形を文字パーツとすることもできる。
【００２５】
また、本実施形態の文字画像形成装置では、パーツグリフ２０１ａ〜２０１ｄと共に、パーツグリフ２０１ａ〜２０１ｈが形成すべき文字に応じた文字Ｈにおけるパーツグリフ２０１ａ〜２０１ｈを配置すべき位置や配置の方向、さらに拡大や縮小にかかる情報を外部記憶装置１０４に保存する。
本実施形態では、パーツグリフ２０１ａ〜２０１ｈを配置すべき位置を規定する情報の１つとして、パーツグリフ２０１ａ〜２０１ｈと共に制御点ｐ１〜ｐ４を外部記憶装置１０４に保存している。なお、パーツグリフ２０１ａ〜２０１ｈ及び制御点を含むパーツグリフ２０１ａ〜２０１ｈの配置等の情報を、総称してアウトラインデータとも記す。
【００２６】
ＣＰＵ１０１は、外部記憶装置１０４に保存されているパーツグリフ２０１ａ〜２０１ｈを組み合わせると共に、組み合わされたパーツグリフ２０１ａ〜２０１ｈのうち、一のパーツグリフ２０１ａ〜２０１ｈの始点及び終点を他のパーツグリフ２０１ａ〜２０１ｈの始点及び終点に対応付けて配置することにより文字を生成する。配置におけるパーツグリフ２０１ａ〜２０１ｈ同士の対応付けは、制御点ｐ１〜ｐ４を含む配置等の情報に基づいて行われる。
【００２７】
また、本実施形態は、文字Ｈ等、パーツグリフを組み合わせて生成された文字をパーツとしてさらに複雑な他の文字を生成することができる。なお、パーツとなる文字の組み合わせについては後に詳述するものとする。
次に、図２に示した文字Ｈを描画する情報の保存に必要なデータ量を、一般的なアウトラインフォントで同様の文字を描画する情報の保存に必要なデータ量と比較する。
【００２８】
図２に示した文字Ｈは、８つのパーツグリフ２０１ａ〜２０１ｈを含んでいる。このような場合、全体のグリフである文字Ｈは、パーツグリフ２０１ａ〜２０１ｈの各々に対する親グリフとなる。親グリフとパーツグリフとの情報の記述に必要なデータ量は、以下のように算出される。
＜親グリフ＞
コンター数：                １６ｂｉｔ
コンター終端制御点番号列：  １６ｂｉｔ×１
制御点データ数：            ３２ｂｉｔ×４
パーツグリフ参照データ数：  ４８ｂｉｔ×２＋５３ｂｉｔ×６
小合計：                    ５７４ｂｉｔ（７２ｂｙｔｅ）
＜パーツグリフ＞
コンター数：                １６ｂｉｔ
コンター終端制御点番号列：  １６ｂｉｔ×０
制御点データ数：            ３２ｂｉｔ×５
小合計：                    １７６ｂｉｔ（２２ｂｙｔｅ）
総合計：                    ７５０ｂｉｔ（９４ｂｙｔｅ）
なお、コンターとは、閉じた１本の線によって形成される独立した領域であって、コンター終端制御点番号列とは、コンターを形成する制御点のうち、最後に位置する制御点の番号を、コンター数に等しい数だけ、昇順に並べた番号列であって、制御点とは、グリフを形成する直線及び曲線の形状を決定する点である。
【００２９】
図３は、一般的なアウトラインフォントで同様の文字を描画するにあたって必要なデータ量を説明するための図である。一般的なアウトラインフォントでは、文字Ｈは制御点のみによって描画されるため、以下のデータ量が文字Ｈの描画に必要になる。
コンター数：                １６ｂｉｔ
コンター終端制御点番号列：  １６ｂｉｔ×１
制御点データ数：            ３２ｂｉｔ×４４
合計：                      １４４０ｂｉｔ（１８０ｂｙｔｅ）
図２、図３から明らかなように、本実施形態の文字画像形成装置は、同じ文字Ｈを描画するにあたって必要なデータ量を半分近くにまで低減することができる。データ量の低減により、本実施形態は、文字画像形成装置においてデータを保存しておくメモリや外部記憶装置等の記憶媒体を小型、軽量化することができる。
【００３０】
メモリの小型、軽量化や文字画像形成装置に適用される媒体の小型化は、文字画像形成装置の小型、軽量化に有利である。このため、本実施形態の文字画像形成装置は、例えば電子書籍等、特に小型軽量化、低廉化が望まれる装置に適したものといえる。
図４、図５は、パーツグリフと、パーツグリフを配置すべき位置、この位置における配置の方向、拡大、縮小にかかる情報とをより具体的に説明するための図である。なお、本実施形態では、説明の簡単のため、以降、パーツグリフを配置すべき位置、位置における配置の方向、拡大、縮小にかかる情報を総称して配置情報とも記す。
【００３１】
図４は、アルファベットの文字Ｅを親グリフとし、この親グリフを２種類のパーツグリフ５０１、５０２と４つの制御点ｐ５〜ｐ８で構成した文字のデータを説明するための図である。図４（ａ）は、データで表示される文字Ｅを示し、（ｂ）は文字Ｅのデータの配置情報を示している。
また、図５は、パーツグリフ５０１、パーツグリフ５０２と、図示されたパーツグリフ５０１、５０２各々の配置情報を示している。
【００３２】
図４（ａ）に示したように、本実施形態では、パーツグリフ５０１、パーツグリフ５０２を、各パーツグリフの始点または終点を、他のパーツグリフの始点または終点あるいは制御点と対応させて配置している。そして、パーツグリフの始点または終点同士あるいは始点または終点と制御点との間を直線でつないで文字Ｅを描画する。このようなパーツグリフや制御点の配置は、配置情報に基づいて決定される。
【００３３】
図４（ｂ）は、配置情報を例示する図であって、（ａ）に示した文字Ｅを描画するための配置情報である。図４（ｂ）中に記したレコードとは、制御点またはパーツグリフに関する情報である。レコード数１２というのは、親グリフである文字Ｅが１２個のレコードからなることを示す。図４（ａ）に示した配置情報のパーツグリフ１は図５に示すパーツグリフ５０１であって、パーツグリフ２はパーツグリフ５０２である。
【００３４】
また、逆回り、順回りとは、パーツグリフを構成する制御点の接続順序を示し、変換行列式は、パーツグリフの配置の方向や変倍率を示す。移動量は、原点ｏを基準にした移動量をｘ座標、ｙ座標で表したものである。また、図４（ａ）において、パーツグリフを構成する制御点に網線をかけてパーツグリフの構成と無関係な制御点と区別する。さらに、アウトラインを定義する上で、直線の両端及び曲線の両端に位置する制御点を四角形で示し、（ｂ）においてはオンカーブポイントと記す。また、アウトラインを定義する上で、曲線の曲率を決定する制御点を円形で示し、（ｂ）においてはオフカーブポイントと記す。
【００３５】
図５（ａ）は、パーツグリフ５０１を示す図である。また、（ｂ）は、（ａ）に示したパーツグリフ５０１を描画する配置情報である。図５（ｃ）は、パーツグリフ５０２を示す図である。また、（ｄ）は、（ｃ）に示したパーツグリフ５０２を描画する配置情報である。パーツグリフ５０１は、図５（ａ）に示したようにパーツグリフ５０２と、２つの制御点ｐ９、ｐ１０でなり、レコード数は３である。また、１本の線で囲まれた領域を持たないためにコンター数は０である。
【００３６】
また、パーツグリフ５０２は、３つの制御点ｐ１１、ｐ１２、ｐ１３でなり、レコード数は３である。また、１本の線で囲まれた領域を持たないためにコンター数は０である。パーツグリフは、単独でレンダラーによって描画されることはなく、必ず制御点や他のパーツグリフと組み合わされてコンターを持つ形状として描画される。
図６は、図４、図５に示した配置情報やパーツグリフを含む本実施形態のフォントデータの構造を示した図である。本実施形態のフォントデータは、フォントヘッダ、補助情報、変換テーブル、アウトラインデータを含んでいる。
【００３７】
フォントデータは、フォントデータのファイル構造、フォントが示すテキストや数字の種別等を示す。補助情報は、フォントデータが示すフォントの名称や著作者の情報を含む。文字コード→インデックス変換テーブルは、文字を表すコードを本実施形態の文字画像形成装置上の管理上使用される識別子（インデックス）に変換するための情報である。インデックス→アドレス変換テーブルは、変換の結果得られたインデックスを、アウトラインデータを記憶するメモリ領域のアドレスに変換するための情報である。アウトラインデータは、パーツグリフのデータと、文字ごとに決定されるパーツグリフの配置等の情報を含んでいる。
【００３８】
以上述べたデータ構造を有するフォントデータにあっては、例えば、図４に示した文字Ｅの文字コードに対応するインデックス６０１ａは文字コード→インデックス変換テーブルにあり、このインデックスに対応するアウトラインデータの保存先のアドレス６０１ｂがインデックス→アドレス変換テーブルにある。インデックス→アドレス変換テーブルにインデックスを対照することによって得られるアドレスに図４（ｂ）に示した配置情報が保存されている。
【００３９】
以上述べた本実施形態のデータ構成によれば、少数のパーツグリフを複数回使って多数の文字を描画することができる。このため、本実施形態は、文字の描画に使用されるデータを文字ごとに保存しておく構成よりも少ないデータ量で同様の種類数の文字を描画することが可能である。
また、本実施形態は、文字を閉じた文字のパーツごとに保存しておくのではなく、開いたパーツグリフとして保存し、１つ、あるいは２つといった少数のパーツグリフを複数回使って多くの文字を形成することができる。このため、保存すべきパーツグリフの数は閉じた文字のパーツよりも少なくなり、保存にかかるデータ量も少なくなる。
【００４０】
ここで、パーツグリフの保存数とフォントデータのデータ量との関係についてより具体的に述べる。図７（ａ）、（ｂ）は、本実施形態の文字画像形成装置で使用されるフォントデータのデータ量について説明するための図であって、（ａ）は図３で示した制御点のみで文字を表示するフォントデータのデータ構造を示し、（ｂ）は本実施形態のフォントデータのデータ構造を示す。なお、従来のフォントデータでいうアウトラインデータとは、文字を描画するのに必要な制御点を文字ごとに規定したデータである。
【００４１】
図７に示したように、本実施形態のフォントデータは、インデックス→変換テーブルのデータ量が従来のフォントデータよりも多いものの、アウトラインデータのデータ量が少ないために全体としてデータ量がより少ないものになっている。
すなわち、１つの制御点を表すのに必要なデータ量は以下のとおりであり、１つの制御点を記述するのに３２ｂｉｔのデータが必要である。
【００４２】
ｘ座標値：１５ｂｉｔ
ｙ座標値：１５ｂｉｔ
オンカーブフラグ：１ｂｉｔ（１ならオンカーブポイント、０ならオフカーブポイント。）
未使用：  １ｂｉｔ
（合計３２ｂｉｔ）
また、図４（ｂ）に示したパーツグリフの配置情報は、１つのパーツグリフ（レコード）について、４８ｂｉｔ〜１１３ｂｉｔのデータが必要である。
【００４３】
パーツグリフのインデックス番号：１６ｂｉｔ
ｘ方向移動量：１５ｂｉｔ
ｙ方向移動量：１５ｂｉｔ
逆回りフラグ：１ｂｉｔ（１なら制御点番号を逆順にする、０ならそのままの順にする。）
アフィン変換行列：１ｂｉｔ〜６６ｂｉｔ
（合計４８ｂｉｔ〜１１３ｂｉｔ）
このように、本実施形態の配置情報は、１つのレコードを保存するのに必要なデータ量は制御点を記述するデータ量の２倍以上にもなる。しかし、本実施形態によれば、レコード数が制御点の数よりも少ないこと、アウトラインデータ中のパーツグリフの数が少ないことによってアウトラインデータのデータ量を従来のフォントデータよりも低減することができる。
【００４４】
なお、図８（ａ）、（ｂ）に示した表は、フラグを用いてデータを圧縮した場合のデータ構成を、アフィン変換行列式をパターン分けして示している。図８（ａ）、（ｂ）のいずれの表によってもデータ圧縮は可能であるが、単位行列が比較的多く出現する場合は図８（ａ）に示した表を、そうでない場合は図８（ｂ）に示した表を用いると効果的にデータを圧縮することができる。
【００４５】
また、図８（ａ）、（ｂ）に示した表の場合、回転や反転はあっても拡大縮小がない場合には２個以上の制御点をパーツ化することによってデータ量をより低減することができる。また、パーツグリフの拡大縮小がある場合、４個以上の制御点をパーツ化することによってデータ量をより低減することができる。
図９、図１０は、以上述べた本実施形態の文字画像形成装置で行われる文字画像形成方法を説明するためのフローチャートである。図９は文字画像形成にかかる処理全般の工程を示し、図１０は、図９に示した文字画像形成のためのデータを生成する処理を詳細に説明するためのフローチャートである。
【００４６】
図９に示すように、文字画像形成の処理では、先ず、ＣＰＵ１０１が、文字コードをインデックスに変換する（Ｓ９０１）。そして、インデックスに基づいて取得された制御点やパーツグリフを格納する領域を初期化する（Ｓ９０２）。なお、この領域は、例えばメモリ１０３上にあってもよい。さらに、ＣＰＵ１０１は、アウトラインデータに基づいて制御点の情報を取得して制御点を展開する（Ｓ９０３）。
【００４７】
次に、ＣＰＵ１０１は、インデックスからコンターの終了制御点を取得する（Ｓ９０４）。そして、展開された制御点の情報に基づいてデータをＶＲＡＭ１０６上のビットマップにラスタライズし、文字画像を形成する（Ｓ９０５）。
図１０は、図９に示したステップＳ９０３の処理を説明するためのフローチャートである。ステップＳ９０３において、ＣＰＵ１０１は、図４（ｂ）に示した配置情報のレコードごとにアウトラインデータを取得する（Ｓ１００１）。そして、１つのレコードのアウトラインデータの取得が終了すると、すべてのレコードについて処理したか否かを判断し（Ｓ１００２）、すべてのレコードを処理した場合には処理を終了する（Ｓ１００２：Ｙｅｓ）。
【００４８】
また、未処理のレコードがある場合（Ｓ１００２：Ｎｏ）、アウトラインデータの配置情報から次のレコードの内容を取得する（Ｓ１００３）。取得したレコードが制御点であるか否か判断し（Ｓ１００４）、制御点であった場合（Ｓ１００４：Ｙｅｓ）、この制御点を格納先アドレスに登録する（Ｓ１００５）。そして、次に格納すべき制御点のアドレスに設定されるアドレスを１つ進めておく（Ｓ１００６）。
【００４９】
一方、ステップＳ１００４において、取得したレコードが制御点でない場合（Ｓ１００４：Ｎｏ）、レコードがパーツグリフを示すものであるから、このレコードからパーツグリフの種別や行列式、移動量といったパーツグリフの配置にかかる情報を取得する（Ｓ１００７）。
また、現在制御点の格納先に設定されているアドレスを以前のアドレスとして記憶し（Ｓ１００８）、以前のアドレスから順にパーツグリフのアウトラインを描画する制御点を格納先にロードする（Ｓ１００９）。ロードの完了後、ＣＰＵ１０１は、以前のアドレスから現在制御点を格納するアドレスの直前のアドレスまでに登録された制御点を、配置情報にしたがって移動あるいは回転、変倍等する（Ｓ１０１０）。
【００５０】
なお、図９、図１０のフローチャートによって示される文字画像形成方法をコンピュータに実行させるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の文字画像形成方法をコンピュータに実行させるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００５１】
次に、以上述べた本実施形態の画像形成方法の他の適用例について説明する。図１１は、１／４円弧を定義したパーツグリフによって描画される文字を説明するための図である。図１１（ｃ）は、１／４円弧を定義したパーツグリフ１１０１を示す。図１１（ｂ）は、（ｃ）に示したパーツグリフ１１０１を反転等させて４つ配置し、円形のグリフを生成したものである。アウトラインフォントは、連続する線によって形成される領域の中が黒く塗りつぶされて文字を形成する。このため、図１１（ｂ）に示したグリフは、黒丸の文字画像を形成する。
【００５２】
また、図１１（ａ）は、（ｂ）に示した円形のグリフを２つ重ねて形成された白丸のグリフである。１／４円弧のパーツグリフにはコンター終端制御点番号列が定義されてなく、このパーツグリフ単独で描画されることはない。また、図１１（ｂ）に示した黒丸のグリフは、（ａ）に示した白丸のパーツでもあるものの、独立して文字画像を形成可能である。このため、単独で描画できるよう、コンター終端制御点番号列が定義されている。
【００５３】
図１２（ａ）、（ｂ）は、図１１（ｂ）に示した黒丸のグリフをパーツにすると共に、パーツを構成するパーツグリフにアフィン変換を加えてアルファベットのＯ（図１２（ｂ））、数字の０（図１２（ａ））を形成した例を示す。また、本実施形態は、パーツグリフ１１０１を使って半濁点「゜」、句点「。」、ピリオド「．」、中点「・」、小文字の「ｏ」、二重丸「◎」等の文字画像を形成することができる。さらに、パーツグリフ１１０１と数字を合わせることによって丸付数字や白抜きの丸付数字の画像を形成することができる。
【００５４】
図１３ないし図１８は、いずれも本実施形態の画像形成装置方法を日本語の文字に適用した例を示す図である。図１３（ａ）〜（ｆ）は、いずれも日本語文字の基本的な直線の始端・終端の形状のパーツグリフであって、（ａ）は、本実施形態において「横開始」と記されるパーツグリフである。「横開始」は、一般的に日本語文字において横に延びる線の開始に使用されるパーツグリフである。
【００５５】
（ｂ）は本実施形態において「縦開始」と記されるパーツグリフである。「縦開始」は、一般的に日本語文字において縦に延びる線の開始に使用されるパーツグリフである。（ｃ）は本実施形態において「横止め」と記されるパーツグリフである。「横止め」は、一般的に日本語文字において横に延びる線の終端に使用されるパーツグリフである。また、（ｄ）は本実施形態において「縦止め」と記されるパーツグリフである。「縦止め」は、一般的に日本語文字において縦に延びる線の終端に使用されるパーツグリフである。
【００５６】
また、（ｅ）は、本実施形態において「点」と記される文字のパーツである。「点」は、パーツグリフと組み合わせられて日本語の複数の文字を生成するのに使用される。（ｆ）は本実施形態において「矩形」と記されるパーツグリフである。「矩形」は、一般的に日本語文字において三方または四方が囲まれた部分を描画する際に使用されるパーツグリフである。
【００５７】
図１４（ａ）〜（ｄ）は、図１３に示したパーツグリフを適用して生成されたパーツグリフの例を示している。図１３（ａ）〜（ｆ）に示したパーツグリフを他のグリフと組み合わせ、さらに変倍や回転等することによって、日本語文字の部分の多くが描画できることが分かる。
図１４に示したパーツグリフのうち、（ａ）は、図１３（ａ）に示した「横開始」と図１３（ｂ）に示した「横止め」を組み合わせて形成されたパーツグリフである。このようなパーツグリフは、例えば「正」の上側の部分を描画するのに使用されるもので、本実施形態では「短一冠」と記す。また、図１４（ｂ）は、「短一冠」と同様に「横開始」と「横止め」とを用いて形成されたパーツグリフであるが、「横開始」と「横止め」との間隔がより長い。このようなパーツグリフは、「土」の下側の部分を描画するのに使用され、本実施形態では「長一足」と記す。
【００５８】
図１４（ｃ）は、「短一冠」にさらに「横開始」と「横止め」とを「組み合わせて形成されるパーツグリフであって、本実施形態では「工冠」とも記す。（ｄ）は、「長一足」にさらに「横開始」と「横止め」とを「組み合わせて形成されるパーツグリフであって、「止め足」とも記す。（ｃ）、（ｄ）は、いずれも「正」の文字を構成するパーツグリフになる。
【００５９】
図１５（ａ）〜（ｃ）は、図１３（ａ）〜（ｆ）に示した「長一足」、「短一冠」といったパーツグリフを閉じて文字を形成し、形成された文字をさらにパーツとして組み合わせたことによって形成された文字を示している。また、図１５（ｄ）は、図１３に示した基本的なパーツグリフを組み合わせて形成される文字を例示した図である。なお、本実施形態では、「長一足」、「短一冠」等のパーツグリフであっても閉じた場合には文字として扱うものとし、他のパーツグリフと組み合わせる場合には開いた状態で組み合わせるものとする。
【００６０】
図１５（ａ）〜（ｄ）に示した文字は、日本語の漢数字であって、比較的単純な構成を有している。このような文字は、さらに複雑な文字の文字パーツともなる。なお、図１５において、（ｃ）に示した三の真ん中以外の文字の横棒には不要の制御点が２つずつある。この制御点は、図１４（ａ）、（ｂ）に示した文字パーツを利用したことによって生じたものである。
【００６１】
図１６（ａ）〜（ｄ）は、図１３及び図１４に示した文字パーツを組み合わせてさらに土（図１６（ａ））、士（図１６（ｂ））、干（図１６（ｃ））、王（図１６（ｄ））の４種類の文字を描画した例である。図１７（ａ）〜（ｄ）は、図１３及び図１４に示した文字パーツを組み合わせてさらに工（図１７（ａ））、廿（図１７（ｂ））、止（図１７（ｃ））、正（図１７（ｄ））の４種類の文字を描画した例である。なお、（ｂ）に示した廿の中央に、図１３（ｆ）に示した「矩形」のパーツグリフが利用される。図１７（ｂ）においては図１３（ｆ）で示したように矩形を開かず、そのまま閉じる形で用いる。パーツグリフを閉じるには、コンター終端制御点番号列における指定が必要になる。
【００６２】
図１８（ａ）〜（ｄ）は、本実施形態の文字パーツあるいは文字パーツを組み合わせて形成された文字をさらに組み合わせて圭（図１８（ａ））、甘（図１８（ｂ））、主（図１８（ｃ））、玉（図１８（ｄ））の４種類の文字を描画した例である。（ａ）に示した圭の中央部分で、コンター同士が交わっている部分があるが、重なり合った部分を白く抜くか、黒く塗りつぶすかは、コンターの回る向きを定義することによって指定することができる。
【００６３】
以上述べたように、本実施形態は、アウトラインを示す線分が開いた文字パーツを用いたことにより、文字を形成するために保存しておくべきデータ量を少なくすることができる。以下、保存データ量の低減の程度を従来例と比較して具体的に示す。なお、ここでいう従来例とは、文字を形成するのに文字に応じた制御点の位置だけを記憶するアウトラインフォントの描画に必要なデータをいう。
【００６４】
すなわち、図４に示した文字「Ｅ」の描画には、従来例の場合、１３１２ｂｉｔのデータを保存しておくことが必要になる。一方、本実施形態では、文字「Ｅ」を描画するために保存しておくべきデータの量は９３９ｂｉｔであって、本実施形態は、７１．６％の圧縮率を得る。また、図１１に示した白丸及び黒丸を生成するために保存しておくべきデータのデータ量は、従来例の場合３７６０ｂｉｔであり、本実施形態では９９０ｂｉｔである。この場合、本実施形態は、２６．３％の圧縮率を得る。
【００６５】
さらに、図１５から図１８に示した文字を生成するために保存しておくべきデータのデータ量は、従来例の場合６０９６ｂｉｔであり、本実施形態では３９０４ｂｉｔである。この場合、本実施形態は、６４％の圧縮率を得る。
以上述べたように、本実施形態の文字画像形成装置、文字画像形成方法及びその方法をコンピュータに実行させるためのプログラムは、開いたアウトラインパーツであるパーツグリフを組み合わせて連続する線で描画される文字のパーツを生成することができる。文字パーツの端部の形状の種類は一般的に文字のパーツの種類より少数である。このため、本実施形態は、比較的少数の所定の数のパーツグリフによってより多くの文字のパーツを生成することができる。このような本実施形態は、文字をパーツに分解して保存しておき、このパーツを組み合わせて文字画像を形成する構成よりも保存しておくべきデータ量を少なくすることができる。したがって、保存すべき文字生成用のデータの量を抑えながらより多くの文字を表示可能にできる。
【００６６】
また、本実施形態は、パーツグリフを組み合わせて文字のパーツや文字を生成するので、制御点同士を線で結んでアウトラインを描画することができる。このため、閉じた文字パーツ同士を組み合わせる従来技術よりも滑らかなアウトラインを形成でき、見栄えの良い文字を形成することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態の文字画像形成装置のブロック図である。
【図２】本発明の一実施形態の文字画像形成装置によって生成されたデータを示した図であって、アルファベットのＨの文字を描画するためのデータを例示している。
【図３】一般的なアウトラインフォントで同様の文字を描画するにあたって必要なデータ量を説明するための図である。
【図４】本発明の一実施形態のパーツグリフと、パーツグリフを配置すべき位置等の情報とをより具体的に説明するための図である。
【図５】本発明の一実施形態のパーツグリフと、パーツグリフを配置すべき位置等の情報とをより具体的に説明するための他の図である。
【図６】図４、図５に示した配置情報やパーツグリフを含む本実施形態のフォントデータの構造を示した図である。
【図７】本発明の一実施形態の文字画像形成装置で使用されるフォントデータのデータ量について説明するための図である。
【図８】本発明の一実施形態のデータ構成をアフィン変換行列式をパターン分けして示す図である。
【図９】本発明の一実施形態の文字画像形成方法を説明するためのフローチャートであって、文字画像形成にかかる処理全般の工程を示すフローチャートである。
【図１０】、図９に示した文字画像形成のためのデータを生成する処理を詳細に説明するためのフローチャートである。
【図１１】本発明の一実施形態の１／４円弧を定義したパーツグリフによって描画される文字を説明するための図である。
【図１２】図１１に示した黒丸のグリフをパーツグリフにして生成される文字を例示する図である。
【図１３】本実施形態の画像形成装置方法を日本語の文字に適用した例を示す図である。
【図１４】本実施形態の画像形成装置方法を日本語の文字に適用した例を示す他の図である。
【図１５】本実施形態の画像形成装置方法を日本語の文字に適用した例を示す他の図である。
【図１６】本実施形態の画像形成装置方法を日本語の文字に適用した例を示す他の図である。
【図１７】本実施形態の画像形成装置方法を日本語の文字に適用した例を示す他の図である。
【図１８】本実施形態の画像形成装置方法を日本語の文字に適用した例を示す他の図である。
【符号の説明】
【００６８】
１０１  ＣＰＵ、１０２  電源コントローラ、１０３  メモリ、１０４  外部記憶装置、１０５  グラフィックスコントローラ、１０７  ディスプレイ、１０８  プリンタ、１０９  キーボード、１１０  バスコントローラ、１１１  バス、２０１ａ，２０１ｂ，５０１，５０２  パーツグリフ
【図１】
2006284980.tif 000003
【図２】
2006284980.tif 000004
【図３】
2006284980.tif 000005
【図４】
2006284980.tif 000006
【図５】
2006284980.tif 000007
【図６】
2006284980.tif 000008
【図７】
2006284980.tif 000009
【図８】
2006284980.tif 000010
【図９】
2006284980.tif 000011
【図１０】
2006284980.tif 000012
【図１１】
2006284980.tif 000013
【図１２】
2006284980.tif 000014
【図１３】
2006284980.tif 000015
【図１４】
2006284980.tif 000016
【図１５】
2006284980.tif 000017
【図１６】
2006284980.tif 000018
【図１７】
2006284980.tif 000019
【図１８】
2006284980.tif 000020