(57)【要約】【課題】文字間隔指定の手間を省いて、簡易なハードウエア構成でカーニング処理を行う。【解決手段】入力された描画データ２０に含まれる文字コードｎに対応するフォントデータをフォントメモリ３０から読み出し、展開回路３２で、ビットマップフォントに展開する。また、文字コードｎに対応する左間隔及び右間隔を有効範囲テーブル３４から読み出し、読み出した左間隔及び右間隔を展開されたビットマップフォントに対応させる。ビットマップフォントを１ラインずつ処理する際に、１画素毎にカウントしてカウンタ値を出力し、左間隔及び右間隔に基づいて定まる有効範囲に対応する画素を示すカウンタ値のときに有効信号を生成して出力し、有効信号が出力されたカウンタ値に対応する画素のみを描画メモリ４０に書き込む。【選択図】図１
2010134273.tif 000002
【特許請求の範囲】
【請求項１】
文字毎の横画素数、縦画素数、及び文字コードを含む描画データに基づいて、前記描画データに含まれる文字コードに対応するフォントデータを、予め定めた大きさの矩形枠内に文字パターンを有する文字を表すフォントデータを文字コード毎に記憶したフォント記憶手段から読み出して、読み出したフォントデータを前記横画素数及び前記縦画素数に対応したサイズに展開する展開手段と、
前後の文字同士で前記矩形枠が重複するように複数の文字を所定方向に配列するカーニング処理を行う際に使用される情報であって、文字パターンを含み、かつ前後の文字同士で重複しない前記所定方向の有効範囲を示す情報を前記文字コード毎に記憶した有効範囲記憶手段から、前記描画データに含まれる文字コードに対応する有効範囲を読み出して、読み出した有効範囲を前記展開手段で展開されたフォントデータの画素に対応させると共に、前記展開手段で展開されたフォントデータの前記所定方向の画素番号をカウントし、カウントされた画素番号が前記有効範囲に対応させた画素の画素番号となった場合に、前記有効範囲に対応する画素であることを示す有効信号を出力する信号出力手段と、
前記展開手段で展開されたフォントデータを前記所定方向に１画素ずつ描画メモリに書き込む際に、前記信号出力手段により有効信号が出力されたときにカウントされた画素番号に対応する画素を書き込む書込手段と、
を含む描画処理装置。
【請求項２】
前記フォント記憶手段と、
前記有効範囲記憶手段と、
を更に含む請求項１記載の描画処理装置。
【請求項３】
前記有効範囲を示す情報を、文字コード毎に該文字コードに対応するフォントデータの矩形枠の左端からの位置、及び右端からの位置を示す情報とした請求項１または請求項２記載の描画処理装置。
【請求項４】
前記有効範囲を示す情報を、フォントデータの１ライン分の情報に対応し、かつ該１ライン分の情報内に有効範囲の開始位置及び有効範囲の終了位置を含む情報とした請求項１または請求項２記載の描画処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字をディスプレイ等に表示するための描画処理を行う描画処理装置に係り、特に文字列のカーニング処理を含む描画処理を行う描画処理装置に関する。
【背景技術】
【０００２】
文字パターンを内に配置してなる文字枠に基づき、２個以上の各文字を所定の配列方向に順に配列するときに、文字間隔を詰めて文字の配置調整を行うカーニング処理方法として、まず、基準となる基準文字とそれに続いて配置された対象文字との字面同士について、所望する文字間隔を指定し、次に、基準文字及び対象文字の文字枠に文字の配列方向と直交する方向に補正ラインを字面の一部として付加し、基準文字と対象文字との字面同士の最短間隔を算出して、この最短間隔が指定された文字間隔となるように詰め量を算出するカーニング処理方法が提案されている（例えば、特許文献１参照。）
【特許文献１】特開平９−１５６０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１に記載のカーニング処理方法では、文字毎に文字間隔を指定する必要がある。また、上記特許文献１に記載のカーニング処理方法は、ソフトウエアにより実現されるものであり、同様の処理をハードウエア構成にて実現しようとすると、文字毎に指定された文字間隔に応じて、フォントデータの読出し開始アドレス及び横サイズを生成してから、フォントデータが記憶されたフォントメモリから該当するフォントを読み出す必要があり、処理及び構成が煩雑になる、という問題がある。
【０００４】
本発明は、上記問題を解消するためになされたものであり、文字間隔指定の手間を省いて、簡易なハードウエア構成でカーニング処理を行うことができる描画処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の描画処理装置は、文字毎の横画素数、縦画素数、及び文字コードを含む描画データに基づいて、前記描画データに含まれる文字コードに対応するフォントデータを、予め定めた大きさの矩形枠内に文字パターンを有する文字を表すフォントデータを文字コード毎に記憶したフォント記憶手段から読み出して、読み出したフォントデータを前記横画素数及び前記縦画素数に対応したサイズに展開する展開手段と、前後の文字同士で前記矩形枠が重複するように複数の文字を所定方向に配列するカーニング処理を行う際に使用される情報であって、文字パターンを含み、かつ前後の文字同士で重複しない前記所定方向の有効範囲を示す情報を前記文字コード毎に記憶した有効範囲記憶手段から、前記描画データに含まれる文字コードに対応する有効範囲を読み出して、読み出した有効範囲を前記展開手段で展開されたフォントデータの画素に対応させると共に、前記展開手段で展開されたフォントデータの前記所定方向の画素番号をカウントし、カウントされた画素番号が前記有効範囲に対応させた画素の画素番号となった場合に、前記有効範囲に対応する画素であることを示す有効信号を出力する信号出力手段と、前記展開手段で展開されたフォントデータを前記所定方向に１画素ずつ描画メモリに書き込む際に、前記信号出力手段により有効信号が出力されたときにカウントされた画素番号に対応する画素を書き込む書込手段とを含んで構成されている。
【０００６】
本発明の描画処理装置によれば、フォント記憶手段に、予め定めた大きさの矩形枠内に文字パターンを有する文字を表すフォントデータが文字コード毎に記憶され、有効範囲記憶手段に、前後の文字同士で矩形枠が重複するように複数の文字を所定方向に配列するカーニング処理を行う際に使用される情報であって、文字パターンを含み、かつ前後の文字同士で重複しない所定方向の有効範囲を示す情報が文字コード毎に記憶されている。
【０００７】
文字毎の横画素数、縦画素数、及び文字コードを含む描画データが入力されると、展開手段が、この描画データに基づいて、描画データに含まれる文字コードに対応するフォントデータをフォント記憶手段から読み出して、読み出したフォントデータを横画素数及び縦画素数に対応したサイズに展開する。また、信号出力手段が、描画データに含まれる文字コードに対応する有効範囲を展開手段で展開されたフォントデータの画素に対応させると共に、展開手段で展開されたフォントデータの所定方向の画素番号をカウントし、カウントされた画素番号が有効範囲に対応させた画素の画素番号となった場合に、有効範囲に対応する画素であることを示す有効信号を出力する。そして、書込手段が、展開手段で展開されたフォントデータを所定方向に１画素ずつ描画メモリに書き込む際に、信号出力手段により有効信号が出力されたときにカウントされた画素番号に対応する画素を書き込む。
【０００８】
このように、有効範囲記憶手段に記憶された有効範囲に基づいて出力される有効信号が出力された場合に、対応するフォントデータの画素が描画メモリに書き込まれるため、文字毎に文字間隔を指定する手間を省いて、簡易なハードウエア構成でカーニング処理を行うことができる。
【０００９】
また、前記フォント記憶手段及び前記有効範囲記憶手段は、外部装置のハードディスクなどの記憶手段や可搬性の記憶媒体としてもよいし、本発明の描画処理装置が、前記フォント記憶手段と、前記有効範囲記憶手段とを更に含むように構成してもよい。
【００１０】
また、前記有効範囲を示す情報を、文字コード毎に該文字コードに対応するフォントデータの矩形枠の左端からの位置、及び右端からの位置を示す情報としたり、フォントデータの１ライン分の情報に対応し、かつ該１ライン分の情報内に有効範囲の開始位置及び有効範囲の終了位置を含む情報としたりすることができる。
【発明の効果】
【００１１】
以上説明したように、本発明の描画処理装置によれば、文字間隔指定の手間を省いて、簡易なハードウエア構成でカーニング処理を行うことができる、という効果が得られる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を詳細に説明する。図１は、第１の実施の形態の描画処理装置１０の構成を示す概略図である。描画処理装置１０は、入力された描画データ２０にカーニング処理を施して、ＣＲＴやＬＣＤなどの表示装置５０に表示するための描画処理を行うものである。
【００１３】
ここで、描画データ２０は、表示装置５０に表示される１文字分のデータである。描画データ２０には、文字が表示される表示装置５０上の位置を示す描画開始座標（ｘ，ｙ）、表示装置５０の画素数に対応した文字サイズを示す文字横サイズＣＨ及び文字縦サイズＣＶ、並びに文字の文字コードｎが含まれている。描画データ２０が順次入力されることにより、表示装置５０に複数の文字からなる文字列が表示される。
【００１４】
描画処理装置１０は、文字に対応するフォントデータを文字コード毎に記憶したフォントメモリ３０、入力された描画データ２０に含まれる文字コードｎに対応するフォントデータをビットマップフォントに展開する展開回路３２、フォントデータが示す文字の有効範囲を文字コード毎に記憶した有効範囲テーブル３４、入力された描画データ２０に含まれる文字コードｎに対応する有効範囲と展開回路３２で展開されたビットマップフォントとに基づいて有効信号ＦＤＶを生成して出力する有効信号出力回路３６、ビットマップフォントが書き込まれる描画メモリ４０、展開回路３２で展開されたビットマップフォント及び有効信号出力回路から出力される有効信号ＦＤＶに基づいて、ビットマップフォントを描画メモリ４０に書き込む書込回路３８、及び描画メモリ４０に書き込まれたビットマップフォントを読み出して表示装置５０に出力する表示回路４２で構成されている。
【００１５】
フォントメモリ３０に記憶されるフォントデータは、図２に示すように、予め定めた大きさ（ここでは、横ａ×縦ｂ）の矩形枠５２内に、文字コードｎに対応する文字の形状を表した文字パターン５４が配置されたアウトラインフォントを示すデータであり、文字パターン５４を、矩形枠５２内における基準となる点の座標と輪郭線の集まりとして表現したデータである。なお、矩形枠５２の大きさは、全ての文字コードで共通である。
【００１６】
展開回路３２は、描画データ２０に含まれる文字コードｎに対応するフォントデータをフォントメモリ３０から読み出して、描画データ２０に含まれる文字横サイズＣＨ及び文字縦サイズＣＶに対応したサイズのビットマップフォントに展開する。例えば、文字横サイズＣＨ及び文字縦サイズＣＶが共に８画素で、図２のアウトラインフォントを示すフォントデータを展開する場合には、図３に示すように、フォントデータの矩形枠５２を縦横８マスの格子状に分割し、文字パターン５４が配置された位置に対応する画素を塗りつぶしたビットマップフォントに展開する。
【００１７】
有効範囲テーブル３４には、フォントデータが示す文字のうち、カーニング処理を施した後に描画される範囲となる有効範囲が文字コード毎に規定されている。具体的には、図４に示すように、文字列を横方向に配列する場合において、矩形枠５２の左端からの距離で示される左間隔ＣＳＬ、及び矩形枠５２の右端からの距離で示される右間隔ＣＳＲを各々文字コードと対応付けた左間隔テーブル３４Ｌ及び右間隔テーブル３４Ｒ（図５参照）として規定している。すなわち、文字コード毎の左間隔ＣＳＬ及び右間隔ＣＳＲを有効範囲テーブル３４として記憶しておくことにより、アウトラインフォントの矩形枠５２において、左間隔ＣＳＬの幅の左端部領域、及び右間隔ＣＳＲの幅の右端部領域を除いた領域が有効範囲５６となることを間接的に記憶している。
【００１８】
有効信号出力回路３６は、図５に示すように、後述するフォントデータイネーブル信号ＦＤＥＮをカウントしてカウンタ値を出力するデータイネーブルカウンタ６０、左間隔テーブル３４Ｌから読み出した左間隔ＣＳＬをビットマップフォントの１ライン分の画素数、すなわち文字横サイズＣＨに対応させた値である左間隔画素数ＣＳＬ’に変換して出力する変換回路６２、同様に右間隔ＣＳＲを右間隔画素数ＣＳＲ’に変換して出力する変換回路６４、入力された文字横サイズＣＨから変換回路６４より入力された右間隔画素数ＣＳＲ’を減算した値を出力する減算回路６６、データイネーブルカウンタ６０から入力されたカウンタ値と変換回路６２から入力された左間隔画素数ＣＳＬ’とを比較して一致する場合に左一致信号ＭＡＴＣＨ＿Ｌを出力する比較回路６８、データイネーブルカウンタ６０から入力されたカウンタ値と減算回路６６から入力された値（ＣＨ−ＣＳＲ’）とを比較して一致する場合に右一致信号ＭＡＴＣＨ＿Ｒを出力する比較回路７０、並びに比較回路６８及び比較回路７０の出力に基づいて、有効信号ＦＤＶを生成して出力する有効信号生成回路７２で構成されている。なお、有効信号生成回路７２の詳細は、図６に示すとおりである。
【００１９】
データイネーブルカウンタ６０に入力されるフォントデータイネーブル信号ＦＤＥＮは、フォントメモリ３０から読み出されて展開回路３２で展開されたフォントデータについて、１ラインずつ書込処理する際に、フォントデータが存在すること（読み出されたこと）を示す信号であり、フォントデータが存在する場合に１にアサートされる。データイネーブルカウンタ６０は、このフォントデータイネーブル信号ＦＤＥＮを画素毎にカウントし、カウンタ値を出力する。例えば、図３のビットマップフォントについてみると、図７に示すように、フォントデータが存在するときにフォントデータイネーブル信号ＦＤＥＮが１にアサートされ、存在する８画素分について０〜７のカウンタ値が出力される。
【００２０】
変換回路６２及び６４は、左間隔テーブル３４Ｌ及び右間隔テーブル３４Ｒから読み出した左間隔ＣＳＬ及び右間隔ＣＳＲを文字横サイズＣＨに対応させた値である左間隔画素数ＣＳＬ’及び右間隔画素数ＣＳＲ’に変換して出力する。例えば、図２及び図４のアウトラインフォントを図３のビットマップフォントに展開した場合で、矩形枠５２のサイズａを文字横サイズＣＨに対応させると左間隔ＣＳＬが画素１個分の幅であった場合には、左間隔画素数ＣＳＬ’は”１”となる。右間隔ＣＳＲから右間隔画素数ＣＳＲ’への変換も同様である。
【００２１】
比較回路６８は、カウンタ値と左間隔画素数ＣＳＬ’とが一致したときからライン終端までの間、左一致信号ＭＡＴＣＨ＿Ｌを出力する。ここでは、カウンタ値を０〜７としているため、左一致信号ＭＡＴＣＨ＿Ｌが出力されるのは、有効範囲５６に対応する１つ目の画素のときとなる。すなわち、左一致信号ＭＡＴＣＨ＿Ｌは、有効範囲５６の開始位置を示す信号となる。また、比較回路７０は、カウンタ値と（ＣＨ−ＣＳＲ’）とが一致したときからライン終端までの間、右一致信号ＭＡＴＣＨ＿Ｒを出力する。（ＣＨ−ＣＳＲ’）は有効範囲５６の終わりを示す画素数で、ここでは、カウンタ値を０〜７としているため、右一致信号ＭＡＴＣＨ＿Ｒが出力されるのは、右間隔領域に対応する１つ目の画素のときとなる。すなわち、右一致信号ＭＡＴＣＨ＿Ｒは、有効範囲５６の終了位置を示す信号となる。
【００２２】
有効信号生成回路７２は、左一致信号ＭＡＴＣＨ＿Ｌ及び右一致信号ＭＡＴＣＨ＿Ｒから有効信号ＦＤＶを生成する。左一致信号ＭＡＴＣＨ＿Ｌは、有効範囲の開始位置を示す信号であり、右一致信号ＭＡＴＣＨ＿Ｒは有効範囲の終了位置を示す信号であるため、左一致信号ＭＡＴＣＨ＿Ｌが出力され、かつ右一致信号ＭＡＴＣＨ＿Ｒが出力されていない場合に、有効信号ＦＤＶを生成して出力する。
【００２３】
書込回路３８は、描画データ２０に含まれる描画開始座標（ｘ，ｙ）に基づいて定まる描画メモリ４０への書込開始位置から、有効信号ＦＤＶが出力されたときのカウンタ値に対応する画素のみを描画メモリ４０に書き込む。これにより、図８に示すように、読み出されたデータのうち有効信号ＦＤＶが出力されたカウンタ値に対応した画素（カウンタ値１〜６に対応する画素）のみが描画メモリ４０に書き込まれるため、カウンタ値０及び７に対応する画素分だけ前後の文字間隔が詰められて描画される。
【００２４】
次に、第１の実施の形態の描画処理装置１０の動作について説明する。ここでは、描画データ２０として、描画開始座標（１，１）（描画メモリ４０の左上角の領域に対応）、文字横サイズＣＨ＝８画素、文字縦サイズＣＶ＝８画素、及び文字コードｎ＝０８（文字「Ｈ」に対応する文字コード）が入力されたものとする。また、文字コード０８に対応して、左間隔ＣＳＬ及び右間隔ＣＳＲが左間隔テーブル３４Ｌ及び右間隔テーブル３４Ｒに規定されており、これを左間隔画素数ＣＳＬ’及び右間隔画素数ＣＳＲ’に変換した場合には、いずれも”１”となるものとする。
【００２５】
まず、描画データ２０が展開回路３２に入力されると、フォントメモリ３０から文字コード０８に対応するフォントデータを読み出し、横８画素×縦８画素のビットマップフォントに展開する。また、描画データ２０が有効信号出力回路３６に入力されると、左間隔テーブル３４Ｌ及び右間隔テーブル３４Ｒからそれぞれ文字コード０８に対応する左間隔ＣＳＬ及び右間隔ＣＳＲを読み出し、これを文字横サイズ８画素に対応した左間隔画素数ＣＳＬ’（”１”）及び右間隔画素数ＣＳＲ’（”１”）に変換する。右間隔画素数ＣＳＲ’については、さらに横文字サイズＣＨから右間隔画素数ＣＳＲ’を減算した値（ＣＨ−ＣＳＲ’＝”７”）を算出する。
【００２６】
次に、図３に示すようなビットマップフォントに展開されたフォントデータを左上角の画素から１ラインずつ以下の処理を行う。２ライン目の処理を行う際のタイミングチャートを図９に示す。
【００２７】
２ライン目の処理が開始され、フォントデータの１画素目の存在が確認されたら、フォントデータイネーブル信号ＦＤＥＮが１にアサートされる。フォントデータイネーブル信号ＦＤＥＮを１画素毎にカウントして、カウンタ値”０”が出力される。カウンタ値とＣＳＬ’とが一致するか否か、及びカウンタ値と（ＣＨ−ＣＳＲ’）とが一致するか否かをそれぞれ比較する。ここでは、カウンタ値＝０、ＣＳＬ’＝１、（ＣＨ−ＣＳＲ’）＝７であるので、いずれも一致しない。従って、有効信号ＦＤＶが生成及び出力されず、カウンタ値”０”に対応する１画素目は描画メモリ４０に書き込まれない。
【００２８】
次に、２画素目についてカウンタ値”１”が出力される。カウンタ値＝１とＣＳＬ’＝１とで一致するため、左一致信号ＭＡＴＣＨ＿Ｌが出力される。左一致信号ＭＡＴＣＨ＿Ｌは、ライン終端まで出力される。カウンタ値＝１と（ＣＨ−ＣＳＲ’）＝７は一致しないため、右一致信号ＭＡＴＣＨ＿Ｒは出力されない。この状態は、有効範囲が開始したことを示す状態であるため、有効信号ＦＤＶが出力される。有効信号ＦＤＶが出力されたカウンタ値＝１に対応する２画素目を、描画開始座標（１，１）に基づいて、座標（１，２）に対応する描画メモリ４０の領域に書き込む。座標（１，２）としたのは、フォントデータの２ライン目であるため、描画開始座標（ｘ，ｙ）に対して、（ｘ，ｙ＋１）としたものである。なお、２画素目のフォントデータは、画素が塗りつぶされたデータであるので、描画メモリ４０に”１”と書き込む。
【００２９】
３画素目〜７画素目までは、カウンタ値＝２〜６となり、２画素目と信号の状態が変わらないため、描画メモリ４０に書き込まれる。なお、３〜６画素目のフォントデータは、画素が塗りつぶされていないデータであるので、描画メモリ４０に”０”と書き込み、７画素目のフォントデータは、画素が塗りつぶされたデータであるので、描画メモリ４０に”１”と書き込む。
【００３０】
次に、８画素目についてカウンタ値”７”が出力される。カウンタ値＝７と（ＣＨ−ＣＳＲ’）＝７とが一致するため、右一致信号ＭＡＴＣＨ＿Ｒが出力される。この状態は、有効範囲が終了したことを示す状態であるため、有効信号ＦＤＶは出力されない。従って、有効信号ＦＤＶが生成及び出力されず、カウンタ値”７”に対応する８画素目は描画メモリ４０に書き込まれない。
【００３１】
８画素目は１ライン分の最終画素であるため、８画素目の処理後、フォントデータイネーブル信号ＦＤＥＮがネゲートされ、次ラインの処理に移行する。上記処理を最終ラインまで繰り返すことにより、１文字分のフォントデータが左間隔画素数ＣＳＬ’及び右間隔画素数ＣＳＲ’分詰められた状態で描画メモリ４０に書き込まれる。
【００３２】
１文字分の描画処理が終了すると、次の描画データ２０を入力する前に、図示しない信号生成回路で、次の描画データ２０に含まれる描画開始座標（ｘ，ｙ）を生成して出力する。この信号生成は、例えば、前の描画データ２０に基づくフォントデータの書込み終了位置を示すアドレスに基づいて生成することができる。また、描画データ２０が予め文字詰め前の描画開始座標（ｘ，ｙ）を有している場合には、描画データ２０の描画開始座標（ｘ，ｙ）を、この描画開始座標（ｘ，ｙ）から前の描画データ２０での文字詰め分を差し引いた座標（ｘ’，ｙ）に更新するようにしてもよい。なお、ｘ’は、ｘ−（ＣＳＬ’＋ ＣＳＲ’）となる。
【００３３】
以上説明したように、第１の実施の形態の描画処理装置によれば、文字毎に文字間隔を指定する手間を省いて、簡易なハードウエア構成でカーニング処理を行うことができる。
【００３４】
次に、第１の実施の形態の変形例について説明する。第１の実施の形態の変形例では、有効範囲テーブルとして、右間隔テーブル及び左間隔テーブルをそれぞれ複数保持し、ここから読み出す右間隔及び左間隔を切り替えることにより、文字詰めの間隔が広いカーニング処理と狭いカーニング処理とを切り替えることができる。なお、第１の実施の形態の描画処理装置１０と同様の構成については、同一の符号を付して説明を省略する。
【００３５】
図１０に示すように、第１の実施の形態の変形例に係る描画処理装置１１０は、カーニングの間隔によって異なる複数のテーブルを有する有効範囲テーブル１３４、及びテーブル選択信号に基づいて、有効範囲テーブル１３４からテーブルを選択するテーブル選択回路７４を備えている。
【００３６】
有効範囲テーブル１３４は、図１１に示すように、文字コード毎の左間隔ＣＳＬを規定した左間隔テーブル１３４Ｌａ及び１３４Ｌｂと、文字コード毎の右間隔ＣＳＲを規定した右間隔テーブル１３４Ｒａ及び１３４Ｒｂとで構成されている。同一の文字コードについて、左間隔テーブル１３４Ｌａに規定されている左間隔ＣＳＬａと、左間隔テーブル１３４Ｌｂに規定されている左間隔ＣＳＬｂとでは、左間隔ＣＳＬａの方が小さな値となっている。右間隔テーブル１３４Ｒａ及び１３４Ｒｂについても同様に、右間隔ＣＳＲａと右間隔ＣＳＲｂとでは、右間隔ＣＳＲａの方が小さな値となっている。左間隔ＣＳＬ及び右間隔ＣＳＲの値が小さいほど有効範囲５６は広くなる。従って、図１２（ａ）に示すカーニング処理していない文字列を、左間隔テーブル１３４Ｌａ及び右間隔テーブル１３４Ｒａを用いてカーニング処理した場合には、同図（ｂ）のような間隔の広いカーニング処理となり、左間隔テーブル１３４Ｌｂ及び右間隔テーブル１３４Ｒｂを用いてカーニング処理した場合には、同図（ｃ）のような間隔の狭いカーニング処理となる。
【００３７】
テーブル選択回路７４は、描画データ２０に含まれる文字コードｎに対応した左間隔ＣＳＬ及び右間隔ＣＳＲを読み出す際に、入力されたテーブル選択信号が間隔の広いカーニング処理を行うことを示す信号の場合には、左間隔テーブル１３４Ｌａ及び右間隔テーブル１３４Ｒａを選択するよう切り替える。一方、入力されたテーブル選択信号が間隔の狭いカーニング処理を行うことを示す信号の場合には、左間隔テーブル１３４Ｌｂ及び右間隔テーブル１３４Ｒｂを選択するよう切り替える。なお、テーブル選択信号は、描画データ２０に含まれて入力されてもよい。
【００３８】
以上説明したように、第１の実施の形態の変形例に係る描画処理装置によれば、文字コードに対応して値の異なる左間隔を規定した２つの左間隔テーブル及び２つの右間隔テーブルを有しているため、テーブルを切り替えて左間隔及び右間隔を読み出すことにより、間隔の広いカーニング処理、及び間隔の狭いカーニング処理を選択して行うことができる。
【００３９】
なお、第１の実施の形態の変形例では、左間隔テーブル及び右間隔テーブルをそれぞれ２つずつ設ける場合について説明したが、それぞれ３個以上設けるようにしてもよい。これにより、カーニング処理による文字詰め間隔をより段階的に選択することができる。
【００４０】
次に、第２の実施の形態について説明する。なお、第１の実施の形態の描画処理装置１０と同様の構成については、同一の符号を付して説明を省略する。
【００４１】
図１３に示すように、第２の実施の形態の描画処理装置２１０は、フォントデータの１ラインに対応したデータに、左間隔ＣＳＬ及び右間隔ＣＳＲの目印を記したダミーラインを文字コード毎に記憶したダミーライン記憶部２３４を備えている。
【００４２】
ダミーラインは、図１４に示すように、フォントデータが示すアウトラインフォントの矩形枠５２の横サイズａと同一の横サイズの矩形枠７６内に、左間隔ＣＳＬの終了位置を示す左間隔パターン７８Ｌ、及び右間隔ＣＳＲの開始位置を示す右間隔パターン７８Ｒが配置されたパターンを示すデータである。ダミーラインは、文字コードに対応付けられて記憶されており、展開回路３２が描画データ２０に含まれる文字コードｎに対応するフォントデータをフォントメモリ３０から読み出す際に、同時に、文字コードｎに対応するダミーラインが読み出される。
【００４３】
展開回路３２では、読み出されたダミーラインを、描画データ２０に含まれる文字横サイズＣＨ及び縦サイズ１画素の１ライン分のビットマップデータに展開する。例えば、文字横サイズＣＨが８画素で、図１４のダミーラインを展開する場合には、図１５に示すように、ダミーラインの矩形枠７６を縦１×横８マスの格子状に分割し、左間隔パターン７８Ｌ及び右間隔パターン７８Ｒが配置された位置に対応する画素を塗りつぶしたビットマップデータに展開する。また、読み出されたフォントデータについては、第１の実施の形態と同様にビットマップフォントに展開し、ビットマップフォントの１ライン目の直上にダミーラインを展開したビットマップデータを結合する。
【００４４】
有効信号出力回路２３６は、図１６に示すように、データイネーブルカウンタ６０、ダミーラインから左間隔の目印が検出された際のカウンタ値に１を加算する加算回路８０、加算回路８０の加算結果を左間隔画素数ＣＳＬ’の値として保持するＣＳＬ’保持部８２、ダミーラインから右間隔の目印が検出された際のカウンタ値を文字横サイズＣＨから右間隔画素数ＣＳＲ’を差し引いた値として保持する（ＣＨ−ＣＳＲ’）保持部８４、描画データ２０毎にＣＳＬ’保持部８２及び（ＣＨ−ＣＳＲ’）保持部８４の値をリセットするリセット回路８６、データイネーブルカウンタ６０から入力されたカウンタ値とＣＳＬ’保持部８２から入力された左間隔画素数ＣＳＬ’とを比較して一致する場合に左一致信号ＭＡＴＣＨ＿Ｌを出力する比較回路６８、データイネーブルカウンタ６０から入力されたカウンタ値と（ＣＨ−ＣＳＲ’）保持部８４から入力された値（ＣＨ−ＣＳＲ’）とを比較して一致する場合に右一致信号ＭＡＴＣＨ＿Ｒを出力する比較回路７０、並びに比較回路６８及び比較回路７０の出力に基づいて、有効信号ＦＤＶを生成して出力する有効信号生成回路７２で構成されている。
【００４５】
次に、第２の実施の形態の描画処理装置２１０の動作について、第１の実施の形態と異なる部分について説明する。ここでは、描画データ２０として、描画開始座標（１，１）（描画メモリ４０の左上角の領域に対応）、文字横サイズＣＨ＝８画素、文字縦サイズＣＶ＝８画素、及び文字コードｎ＝０８（文字「Ｈ」に対応する文字コード）が入力されたものとする。また、文字コード０８に対応したダミーラインをビットマップデータに展開すると、１画素目及び８画素目に左間隔ＣＳＬ及び右間隔ＣＳＲに対応する目印が印されているものとする。
【００４６】
まず、描画データ２０が展開回路３２に入力されると、フォントメモリ３０から文字コード０８に対応するフォントデータを読み出し、横８画素×縦８画素のビットマップフォントに展開する。また、ダミーライン記憶部２３４から文字コード０８に対応するダミーラインを読み出し、横８画素×縦１画素のビットマップデータに展開し、ビットマップフォントの１ライン目の直上に結合する。
【００４７】
次に、図１５に示すようなビットマップデータに展開されたダミーライン及びフォントデータの１ライン目、すなわちダミーラインに対応するラインについて処理を行う。ダミーラインの処理を行う際のタイミングチャートを図１７に示す。
【００４８】
１ライン目の処理が開始され、ダミーラインの１画素目の存在が確認されたら、フォントデータイネーブル信号ＦＤＥＮが１にアサートされる。フォントデータイネーブル信号ＦＤＥＮを１画素毎にカウントして、カウンタ値”０”が出力される。カウンタ値＝０に対応する１画素目には左間隔の終了位置を示す目印が印されており、これを検出してカウンタ値＝０に１を加算した値で、ＣＳＬ’保持部８２に保持されている左間隔画素数ＣＳＬ’の値を更新する。なお、カウンタ値に１を加算するのは、目印が左間隔の終了位置を示すものであり、この目印の次の画素から有効範囲となるからである。
【００４９】
２画素目〜７画素目までについては、カウンタ値＝２〜６が出力されるが、目印が検出されないため、そのまま８画素目に進み、８画素目についてカウンタ値”７”が出力される。カウンタ値＝７に対応する８画素目には右間隔の開始位置を示す目印が印されており、これを検出してカウンタ値＝７で、ＣＨ−ＣＳＲ’保持部８４に保持されている文字横サイズＣＨから右間隔画素数ＣＳＲ’を差し引いた値（ＣＨ−ＣＳＲ’）を更新する。
【００５０】
以下、ＣＳＬ’保持部８２及びＣＨ−ＣＳＲ’保持部８４に保持されたＣＳＬ’及び （ＣＨ−ＣＳＲ’）の値を用いて、第１の実施の形態と同様にカーニング処理を施した描画処理を行うことができる。
【００５１】
また、リセット回路８６では、既に描画メモリ４０への書き込みが終わった行数をカウントし、入力された描画データ２０に含まれる文字縦サイズＣＶと比較し、一致した場合にリセット信号を出力して、ＣＳＬ’保持部８２及び（ＣＨ−ＣＳＲ’）保持部８４で保持している値をリセットする。これにより、描画データ２０毎、すなわち文字毎にＣＳＬ’及び（ＣＨ−ＣＳＲ’）を設定することができる。
【００５２】
以上説明したように、第２の実施の形態の描画処理装置によれば、右間隔及び左間隔の目印を印したダミーラインを文字コード毎に記憶しておくことにより、第１の実施の形態と同様に、文字毎に文字間隔を指定する手間を省いて、簡易なハードウエア構成でカーニング処理を行うことができる。
【００５３】
なお、第２の実施の形態においても、第１の実施の形態の変形例のように、間隔の異なるカーニング処理が可能な構成としてもよい。例えば、ダミーラインに目印を２種類設け、目印を検出する回路を切り替えることにより、読み出される右間隔及び左間隔を切り替えてカーニングの間隔を異ならせることができる。
【００５４】
また、上記実施の形態では、文字列を横方向に配列して横方向の文字間隔を詰める場合について説明したが、文字列を縦方向に配列して縦方向の文字間隔を詰める場合にも適用できる。この場合、有効範囲を示す値として、左間隔及び右間隔に代えて上間隔及び下間隔を記憶しておくようにするとよい。
【００５５】
また、上記実施の形態の描画処理装置では、フォントメモリ、有効範囲テーブル、及びダミーライン記憶部を含む構成について説明したが、フォントデータ、有効範囲テーブル、及びダミーラインの情報を外部装置のハードディスク等の記憶手段やメモリスティック等の可搬性記憶媒体に記憶し、そこから読み出すようにしてもよい。
【図面の簡単な説明】
【００５６】
【図１】第１の実施の形態の描画処理装置の構成を示す概略図である。
【図２】フォントデータに基づくアウトラインフォトを示す図である。
【図３】フォントデータをビットマップフォントに展開した図である。
【図４】フォントデータの左間隔、右間隔、及び有効範囲を説明するための図である。
【図５】第１の実施の形態の描画処理装置の有効信号出力回路の構成を示す概略図である。
【図６】有効信号生成回路の構成を示す概略図である。
【図７】フォントデータ、フォントデータイネーブル信号、及びカウンタ値の関係を説明するための図である。
【図８】描画メモリへの書き込みを説明するための図である。
【図９】第１の実施の形態の描画処理装置の動作を示すタイミングチャートである。
【図１０】第１の実施の形態の変形例に係る描画処理装置の構成を示す概略図である。
【図１１】第１の実施の形態の変形例に係る描画処理装置の有効信号出力回路、テーブル選択回路、及び有効範囲テーブルの構成を示す概略図である。
【図１２】（ａ）カーニング処理していない文字列、（ｂ）間隔の広いカーニング処理を施した文字列、及び（ｃ）間隔の狭いカーニング処理を施した文字列の一例を示す図である。
【図１３】第２の実施の形態の描画処理装置の構成を示す概略図である。
【図１４】第２の実施の形態におけるダミーラインを説明するための図である。
【図１５】ダミーライン及びフォントデータをビットマップ展開した図である。
【図１６】第２の実施の形態の描画処理装置の有効信号出力回路の構成を示す概略図である。
【図１７】第２の実施の形態の描画処理装置における有効範囲を示す画素数を更新するまでの動作を示すタイミングチャートである。
【符号の説明】
【００５７】
１０   描画処理装置
２０   描画データ
３０   フォントメモリ
３２   展開回路
３４   有効範囲テーブル
３６   有効信号出力回路
３８   書込回路
４０   描画メモリ
４２   表示回路
５０   表示装置
【図１】
2010134273.tif 000003
【図２】
2010134273.tif 000004
【図３】
2010134273.tif 000005
【図４】
2010134273.tif 000006
【図５】
2010134273.tif 000007
【図６】
2010134273.tif 000008
【図７】
2010134273.tif 000009
【図８】
2010134273.tif 000010
【図９】
2010134273.tif 000011
【図１０】
2010134273.tif 000012
【図１１】
2010134273.tif 000013
【図１２】
2010134273.tif 000014
【図１３】
2010134273.tif 000015
【図１４】
2010134273.tif 000016
【図１５】
2010134273.tif 000017
【図１６】
2010134273.tif 000018
【図１７】
2010134273.tif 000019