(57)【特許請求の範囲】
【請求項１】
上位装置から供給される解像度変換前の座標系における位置情報に従ってメモリ上に解像度変換したフォントデータを作成する画像処理装置において、
フォントデータを格納するフォントメモリと、
上位装置から供給される前記位置情報を格納するパラメータ格納手段と、
前記位置情報に基づいて算出した印字開始位置情報（Ｘ，Ｙ）および印字する文字コードに対応したフォントメモリアドレスならびにフォントサイズを読み出して出力するコマンド処理手段と、
前記フォントメモリアドレスおよびフォントサイズに基づいてフォントメモリからフォントデータを読み出し、かつ前記印字開始位置情報（Ｘ，Ｙ）に従って前記メモリへフォントデータを展開する文字出力制御手段とを具備すると共に、
前記印字開始位置情報（Ｘ，Ｙ）は、
メモリ原点を基準とするメモリ使用領域原点のＸ方向およびＹ方向位置情報を（ＸDP，ＹDP）、該メモリ使用領域原点を基準とする文字出力域原点のＸ方向およびＹ方向位置情報を（Ｘ０，Ｙ０）、該文字出力域原点を基準とする印字位置原点のＸ方向およびＹ方向位置情報を（Ｘ１，Ｙ１）、該印字位置原点を基準とするＸ方向およびＹ方向の印字位置オフセットを（Ｘ２，Ｙ２）とし、解像度変換のためのＸ方向およびＹ方向それぞれの変換倍率をαおよびβとしたとき、式(1) ，式(2) によって算出されることを特徴とする画像処理装置。
Ｘ＝ＸDP＋α（Ｘ０＋Ｘ１＋Ｘ２）……式(1)
Ｙ＝ＹDP＋β（Ｙ０＋Ｙ１＋Ｙ２）……式(2)
【請求項２】
前記印字開始位置情報（Ｘ，Ｙ）の算出において、前記位置情報Ｘ０＋Ｘ１をＸ´、Ｙ０＋Ｙ１をＹ´とし、文字間隔をＦＳＳとしたとき、文字の印字方向がＸ方向およびＹ方向の場合、それぞれ該パラメータＸ´を式(3) ，(5) 、Ｙ´を式(4) ，(6) によって算出することを特徴とする請求項１記載の画像処理装置。
但し、式において、パラメータｎは処理対象文字を示す２以上の整数であり、ｎ-1は該処理対象文字の１つ前の文字である。
Ｘ´ｎ＝Ｘ´ｎ-1＋ＦＳＳ……(3)
Ｙ´ｎ＝Ｙ´ｎ-1……(4)
Ｘ´ｎ＝Ｘ´ｎ-1……(5)
Ｙ´ｎ＝Ｙ´ｎ-1＋ＦＳＳ……(6)
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は画像処理装置に関するものであり、特に、ホストコンピュータ等の上位装置で作成される画像を、該上位装置とは解像度が異なる出力装置で出力するための解像度変換機能を有する画像処理装置に関する。
【０００２】
【従来の技術】
上位装置から供給された文字をプリンタ等の出力装置に出力する際、前記上位装置からの指示に従って該文字の画像データをページメモリ上に展開する。この場合、該画像データの展開位置は次のパラメータによって特定される。図８において、ページメモリ原点０に対して（ＸＤＰ，ＹＤＰ）の位置にページメモリの使用領域原点Ｒがあり、該使用領域原点Ｒに対して（Ｘ０，Ｙ０）の位置に文字出力域原点Ｍが設定されている。また、該文字出力域原点Ｍから（Ｘ１，Ｙ１）の位置に文字ボディフェースの原点Ｎが設定され、さらに、該原点Ｎから（Ｘ２，Ｙ２）のオフセットを有して文字レターフェースの原点Ｑつまり印字開始位置が設定される。なお、図８の例では、Ｙ２＝０である。メモリ上の前記各位置のうち、ページメモリ原点０はページメモリ固有の位置であり、他の点つまりページメモリ使用領域原点Ｒ、ならびに各原点Ｍ，Ｎ，Ｑは画像データ展開時に前記上位装置から指示される前記パラメータによって位置が特定される。これらのパラメータは上位装置の解像度に合った画素密度で指定される。
【０００３】
ところで、画像を作成するホストコンピュータ等の上位装置とプリンタ等の出力装置との解像度が常に同一であるという保障はなく、互いが異なることが多い。例えば、２４０ｓｐｉ（スポット／インチ）の解像度能力を有する上位装置から供給された文字データを該上位装置の指示に従って３００ｓｐｉの解像度を有する出力装置で印字する場合がある。
【０００４】
このような場合、解像度の差異を考慮せず、上位装置から供給された文字の画像データをそのまま３００ｓｐｉの解像度の出力装置で出力すると次のような不具合がある。つまり解像度の差異による上位装置と出力装置との画素密度の差によって文字の各ドット間隔が小さくなり、出力される文字が所望のものよりも小さくなる。
【０００５】
このような不具合を解消するため、２４０ｓｐｉから３００ｓｐｉへ画像データを解像度変換してページメモリに展開する。この解像度変換のためには、上記各原点や文字間隔等のパラメータを変換するとともに、出力装置の解像度に合ったドット数のフォントを選択して、文字の画像データをページメモリ上に作成することが行われている。
【０００６】
解像度変換のための位置情報の変換制御に関しては、特公平４−１４９１１号公報に一例が記載されている。この公報に記載された制御では、前記使用領域原点Ｒに対する原点Ｑの位置（Ｘ，Ｙ）を、次の式で算出するようにしている。
Ｘ＝Ｘ０＋αＸ１＋Ｘ２…（９）  ，Ｙ＝Ｙ０＋βＹ１−Ｙ２…（１０）
同式において、αおよびβは、それぞれ文字の縦と横の変換倍率を示す。
【０００７】
【発明が解決しようとする課題】
上記従来の解像度変換制御には次のような問題点があった。印字位置パラメータは整数ドットで処理をする必要があることから、前記原点を示すパラメータＸ０、Ｙ０、Ｘ２、およびＹ２は上位装置で整数にする際の丸め誤差を含んでいる。一方、パラメータＸ１およびＹ１は変換倍率α，βを乗算した後に整数にするときに丸め誤差が生じる。このように、従来の解像度変換では算出誤差が少なくとも３ドット含まれる。
【０００８】
また、実際の使用において、前記パラメータＸ０、Ｙ０、Ｘ２、およびＹ２にも変換倍率を乗算する必要が生じることがある。つまり、実際の使用において、上位装置と画像処理装置とで整数でパラメータＸ０、Ｙ０、Ｘ２、およびＹ２をやりとりする場合には、上位装置で１文字毎に解像度変換前のパラメータと変換倍率の乗算を行い、かつ整数化を行うことになり、上位装置の資源を多く使う等、負担が大きい。
【０００９】
本発明は、上記問題点を解消し、解像度変換時の演算誤差を小さくでき、かつ上位装置における演算処理を簡素化することができる画像処理装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記の課題を解決し、目的を達成するための本発明は、上位装置から供給される情報に基づいて算出した印字開始位置情報（Ｘ，Ｙ）および印字する文字コードに対応したフォントメモリアドレスならびにフォントサイズを読み出して出力するコマンド処理手段と、前記フォントメモリアドレスおよびフォントサイズに基づいてフォントメモリからフォントデータを読み出し、かつ前記印字開始位置情報（Ｘ，Ｙ）に従ってメモリへフォントデータを展開する文字出力制御手段とを具備すると共に、前記印字開始位置情報（Ｘ，Ｙ）は、メモリ原点を基準とするメモリ使用領域域原点のＸ方向およびＹ方向位置情報を（ＸＤＰ，ＹＤＰ）、該メモリ使用領域原点を基準とする文字出力域原点のＸ方向およびＹ方向位置情報を（Ｘ０，Ｙ０）、該文字出力域原点を基準とする印字位置原点のＸ方向およびＹ方向位置情報を（Ｘ１，Ｙ１）、該印字位置原点を基準とするＸ方向およびＹ方向の印字位置オフセットを（Ｘ２，Ｙ２）とし、解像度変換のためのＸ方向およびＹ方向それぞれの変換倍率をαおよびβとしたとき、次の式（１）  ，式（２）  によって算出される点に第１の特徴がある。
Ｘ＝ＸＤＰ＋α（Ｘ０＋Ｘ１＋Ｘ２）……式（１）
Ｙ＝ＹＤＰ＋β（Ｙ０＋Ｙ１＋Ｙ２）……式（２）
また、本発明は、前記位置情報Ｘ０＋Ｘ１をＸ´、Ｙ０＋Ｙ１をＹ´とし、文字間隔（本明細書では、直前の文字の文字ボディフェースの原点Ｎと、注目文字の文字ボディフェースの原点Ｎとの間隔）をＦＳＳとしたとき、文字の印字方向がＸ方向およびＹ方向の場合、それぞれ該パラメータＸ´を式（３）  ，（５）  、Ｙ´を式（４）  ，（６）  によって前記印字開始位置情報（Ｘ，Ｙ）を算出する点に第２の特徴がある。
【００１１】
但し、式（３）  〜（６）  において、パラメータｎは処理対象文字を示す２以上の整数であり、ｎ−１は該処理対象文字の１つ前の文字である。
Ｘ´ｎ＝Ｘ´ｎ−１＋ＦＳＳ……（３）
Ｙ´ｎ＝Ｙ´ｎ−１……（４）
Ｘ´ｎ＝Ｘ´ｎ−１……（５）
Ｙ´ｎ＝Ｙ´ｎ−１＋ＦＳＳ……（６）
【００１２】
【作用】
第１の特徴を有する本発明では、パラメータＸ０，Ｘ１，Ｘ２を加算して１つのパラメータとし、加算して１つにまとめたパラメータに解像度変換倍率を乗算しているので、各パラメータを別個に処理する際に生じる丸め誤差の重複を回避できる。また、解像度変換に関係するパラメータについてはすべて変換倍率の乗算を該画像処理装置で行うので、上位装置に負担が及ばない。
【００１３】
また、第２の特徴によれば、２文字目以降の印字開始位置情報の算出結果に、それ以前の丸め誤差が蓄積しない。
【００１４】
【実施例】
以下、図面を参照して本発明を詳細に説明する。図１は本発明の画像処理装置の構成図である。同図において、解像度変換装置１は、パソコンやホストコンピュータのような上位装置２０からの指示に従って画像処理を行い、プリンタ５に出力する。前記解像度変換装置１は、フォントメモリ２、文字出力制御装置３、ページメモリ４、パラメータ格納用メモリ６、コマンド処理装置７、およびプリンタ制御装置８から構成される。
【００１５】
前記フォントメモリ２はＲＡＭであり、上位装置２０から供給されたフォントデータを格納する。パラメータ格納用メモリ６は上位装置２０から供給された前記各原点を代表するパラメータ（位置パラメータ）を指示するコマンドや該コマンドに従って文字コードを検索するためのテーブル等が格納される。これらコマンドやテーブルの詳細は後述する。
【００１６】
コマンド処理装置７は、上位装置からの処理開始指示に従って前記パラメータ格納用メモリ６から文字出力に必要なデータを読み出し、文字レターフェースの原点つまり印字開始位置Ｑ（Ｘ，Ｙ）を算出する。この印字開始位置Ｑ（Ｘ，Ｙ）とフォントメモリアドレスならびにフォントサイズは文字出力制御装置３に入力される。文字出力制御装置３は、コマンド処理装置７から供給されたフォントメモリアドレスとフォントサイズに従ってフォントデータメモリ２からフォントのビットマップデータを読み出し、前記印字開始位置Ｑからページメモリ４にデータを展開する。該展開されたフォントデータは、上位装置２０からプリンタ制御装置８に供給される印字開始指示に応答してプリンタ５に出力される。
【００１７】
次に、前記パラメータ格納用メモリ６に格納されるコマンドやテーブルの具体例を説明する。図２（ａ）にはページメモリ使用領域指定コマンド２１を示す。該コマンド２１にはページメモリ使用領域開始原点ＸＤＰ，ＹＤＰ、ページメモリ使用領域サイズＸｓ  ，ＹＳ  が含まれる。図２（ｂ）には解像度変換をしない場合のフォントＡのフォントセットテーブル２７を示し、図２（ｃ）には解像度変換をする場合のフォントＢのフォントセットテーブル２５を示す。フォントＡおよびＢのフォントセットテーブルには、フォントサイズと文字間隔、ならびに文字コードに対応するフォントメモリアドレスが設定される。ここで、解像度変換をするためのフォントＢは文字間隔ＦＳＳとフォントサイズとが異なった値となっているが、解像度変換を行わないフォントＡは文字間隔ＦＳＳとフォントサイズとが同じ値となっている。図２（ｄ）には、文字の種類によって文字間隔、フォントサイズ、ならびに印字開始位置Ｑつまり文字ボディフェースの原点Ｎに対する印字位置オフセットＸ２，Ｙ２が異なる場合のフォントセットテーブル２８を示す。図示のように、文字の種類つまり文字コードに対応して異なる値が設定される。例えば、英字では漢字とは違い、文字の種類によって前記文字間隔等が異なる。
【００１８】
また、図３（ａ）には文字印字外部コマンド２２を示す。該文字印字外部コマンド２２には変換指定フラグＦ、変換倍率α，β、文字出力域原点Ｍ（Ｘ０，Ｙ０）のデータ、文字コードテーブルアドレス、ならびにフォント検索テーブルアドレスが含まれる。解像度変換を行う場合は、前記変換指定フラグＦは「１」に設定される。なお、この例では、縦横の変換倍率α，βには同じ値が設定されている。
【００１９】
図３（ｂ）には文字コードテーブル２３を示す。該テーブル２３には印字位置情報テーブルアドレスと印字する文字コードとが含まれる。該文字コードテーブル２３は、前記文字コードテーブルアドレスによって検索される。図３（ｃ）には印字位置情報テーブル２６を示す。該印字位置テーブル２６には、文字ボディフェースの原点Ｎつまり印字位置パラメータ（Ｘ１，Ｙ１）とフォント番号が含まれる。該印字位置テーブル２６は前記印字位置情報テーブルアドレスによって検索される。図３（ｄ）にはフォント検索テーブル２４を示す。該フォント検索テーブル２４には各フォントのフォントセットテーブルアドレスが設定される。該フォント検索テーブル２４は前記フォント検索テーブルアドレスによって検索され、さらに、前記フォント番号に対応するフォントのフォントセットテーブルアドレスが検索される。ここでは、フォント番号「２」に従ってフォントＢのフォントセットテーブルアドレスが検索される。このアドレスは前記フォントセットテーブル２５の先頭を示す。
【００２０】
次に、文字の解像度変換処理をフローチャートを参照して説明する。ここでは、任意のｍ行目の文字処理について説明する。図４において、ステップＳ１では、文字印字外部コマンド２２を参照して変換指定フラグＦにより解像度変換指定の有無を判断する。該変換指定フラグＦが「１」ならば解像度変換指定があったと判断してステップＳ２に進み、文字出力域パラメータ（Ｘ０，Ｙ０）および変換倍率α，βを読み込む。ステップＳ３では、印字位置情報テーブル２６から印字位置パラメータ（Ｘ１，Ｙ１）を読み込む。ステップＳ４ではフォントセットテーブル２５から印字位置オフセット（Ｘ２，Ｙ２）および文字間隔ＦＳＳを読み込む。
【００２１】
ステップＳ５では、第１文字目から処理を開始するため、何文字目かを表すパラメータｎに「１」をセットする。ステップＳ６では、第１文字目の印字位置を算出するためパラメータＸ´ｎおよびＹ´ｎに前記パラメータＸ０とＸ１との加算値、および前記パラメータＹ０とＹ１との加算値を設定する。このパラメータＸ´ｎおよびＹ´ｎは１つの文字から次の文字の処理へ移行するときの誤差が積み重ならないように仮のアドレスとして設定するものである。
【００２２】
ステップＳ７では、第ｎ文字目の印字開始位置（Ｘ，Ｙ）を算出する。該印字開始位置は次式によって算出される。
Ｘ＝ＸＤＰ＋α（Ｘ´ｎ＋Ｘ２）…（７）
Ｙ＝ＹＤＰ＋β（Ｙ´ｎ＋Ｙ２）…（８）
ステップＳ８では、文字コードテーブル２３の文字コードからフォントセットテーブル２５のフォントメモリアドレスを導き出す。ステップＳ８では、文字出力制御装置３に印字開始位置（Ｘ，Ｙ）を出力する。ここまでの処理によってページメモリ４の第ｍ行目に１つの文字のフォントビットマップが展開される。
【００２３】
ステップＳ１０では、１行すべての文字の処理が終了したか否かが判断される。まだ処理されていない文字があると判断されたならばステップＳ１１に進み、次の文字の処理のためパラメータｎをインクリメントする。ステップＳ１２では前記仮のアドレスを更新する。つまり直前の文字のＸ方向アドレスＸ´ｎ−１に文字間隔ＦＳＳを加算して新たなパラメータＸ´ｎとし、Ｙ´ｎは変化させないので、直前の文字のＹ方向アドレスＹ´ｎ−１をＹ´ｎとして設定する。なお、文字の印刷方向が副走査方向つまりＹ方向である場合は、Ｘ´ｎにＸ´ｎ−１を設定し、Ｙ´ｎに（Ｙ´ｎ−１＋ＦＳＳ）を設定する。ステップＳ１２が終了するとステップＳ７に戻る。
【００２４】
また、変換指定フラグが「１」でない場合は、ステップＳ１３に進んで通常の処理を行う。通常の処理とは前記フォントＡを使用し、各パラメータＸ０，Ｙ０Ｘ１，Ｙ１ならびにＸ２，Ｙ２に変換倍率を乗算しないで印字位置Ｘ，Ｙに文字の画像データを展開する処理をいう。この処理は本発明に直接関係しないので詳細の説明は省略する。ステップＳ１４では、１行すべての文字の処理が終了したか否かが判断される。この判断が肯定ならば処理を終了する。同様にステップＳ１０の判断が肯定ならば処理を終了する。
【００２５】
上記フローチャートでは、各文字について印字位置オフセットＸ２，Ｙ２および文字間隔ＦＳＳが固定の場合を説明した。これに対して、印字位置オフセットＸ２，Ｙ２および文字間隔ＦＳＳが文字毎に変化する場合は次のような処理となる。
【００２６】
図５のフローチャートにおいては処理の要部のみを示し、図４と同符号のステップは同一または同等の処理を示す。同図に示すように、前記ステップＳ５およびＳ６とステップＳ４との順序を入れ替え、ステップＳ５およびＳ６を先に、ステップＳ４を後に処理する。また、ステップＳ４では、フォントセットテーブル２８から各文字コードに対応する印字位置オフセットＸ２，Ｙ２および文字間隔ＦＳＳを読み出す。そして、１つの文字の処理を終了する毎に、ステップＳ１２からこのステップＳ４に移行する。
【００２７】
次に、上位装置２０から指示されるパラメータによって具体的にページメモリ４に作成されるデータを参照して本実施例を説明する。図６は、副走査方向に文字を印字する場合であって、解像度変換をしない場合のデータの作成例を示す模式図である。同図において、上位装置２０から指示された、ページメモリ４の原点０を基準にしたページメモリの使用領域原点Ｒ（ＸＤＰ，ＹＤＰ）、該使用領域原点Ｒを基準とした文字出力域原点Ｍ（Ｘ０，Ｙ０）、該原点Ｍを基準とした文字ボディフェースの原点Ｎ（Ｘ１，Ｙ１）、および該原点Ｎからの印字位置オフセット（Ｘ２，Ｙ２）に従って文字の画像データが作成される。
【００２８】
一方、上位装置２０から供給される前記各原点を示すパラメータに基づいて解像度変換をして画像データをページメモリ４上に作成した例を図７に示す。印字開始位置（Ｘ，Ｙ）は、次式で算出される。Ｘ＝ＸＤＰ＋α（Ｘ０＋Ｘ１＋Ｘ２），Ｙ＝ＹＤＰ＋β（Ｙ０＋Ｙ１＋Ｙ２）。
【００２９】
また、上述のように、２文字目以降の印字位置は、（Ｘ０＋Ｘ１）＝Ｘ´ｎ、（Ｙ０＋Ｙ１）＝Ｙ´ｎとして、Ｙ´ｎには１つ前の文字の位置Ｙ´ｎ−１に文字間隔ＦＳＳを加算した値を使用する。なお、Ｘ方向に印字する場合はＸ´ｎ−１に文字間隔ＦＳＳを加算することはすでに述べたとおりである。
【００３０】
このように、本実施例では、解像度変換を行う場合は、上位装置２０から与えられたパラメータのうちメモリの絶対アドレスつまり使用領域原点Ｒを除く他の原点を指示するパラメータを一括してこれに解像度変換の倍率を乗算するようにした。
【００３１】
【発明の効果】
以上の説明から明らかなように、請求項１および２の発明によれば、パラメータＸ０，Ｘ１，Ｘ２を加算して１つのパラメータとし、加算して１つにまとめたパラメータに解像度変換倍率を乗算しているので、各パラメータを別個に処理する際に生じる丸め誤差を１ドット以内に止めることができる。したがって、１ドット単位で画像を表現する際に、プリンタ等の出力装置によって高精度の出力結果が得られる。
【００３２】
特に、請求項２の発明では、２文字目以降の印字開始位置情報の算出結果に、それ以前の丸め誤差が蓄積しない。
【００３３】
また、解像度変換に関係するパラメータについてはすべて変換倍率の乗算を該画像処理装置で行うので、上位装置に負担が及ばない。特に上位装置の演算速度が画像処理装置よりも遅い場合に、システム全体の処理速度を上げることができる。
【図面の簡単な説明】
【図１】本発明の第１実施例の画像処理装置の構成を示すブロック図である。
【図２】パラメータ格納用メモリに格納されるコマンドとテーブルの例を示す図である。
【図３】パラメータ格納用メモリに格納されるコマンドとテーブルの例を示す図である。
【図４】文字間隔等が固定の場合の本発明にかかる処理を示すフローチャートである。
【図５】文字間隔等が文字ごとに変更される場合の本発明にかかる処理の要部を示すフローチヤートである。
【図６】解像度変換なしの場合のページメモリ上での文字の作成例を示す図である。
【図７】解像度変換をした場合のページメモリ上での文字の作成例を示す図である。
【図８】印字方向がＹ方向の場合に解像度変換なしでページメモリ上に文字を作成した例を示す図である。
【符号の説明】
１…画像処理装置、  ２…フォントメモリ、  ３…文字出力制御装置、  ４…ページメモリ、  ５…プリンタ、  ６…パラメータ格納用メモリ、  ７…コマンド処理装置、  ８…プリンタ制御装置、  ２０…上位装置
【図１】
0003569957.tif 000002
【図２】
0003569957.tif 000003
【図３】
0003569957.tif 000004
【図４】
0003569957.tif 000005
【図５】
0003569957.tif 000006
【図６】
0003569957.tif 000007
【図７】
0003569957.tif 000008
【図８】
0003569957.tif 000009