(57)【特許請求の範囲】
【請求項１】
ＣＰＵ及びバンドメモリを有するシステムにベクトルデータを入力し、前記ＣＰＵにてこのベクトルデータによって特定される直交座標系の第１軸方向の各座標値に対し、前記ベクトルデータの傾き相当値を蓄積し、その蓄積量が所定値を超えた時点で前記直交座標系の第２軸方向の座標値を１つ変化させると共に前記蓄積量から所定値を減算することにより前記ベクトルデータに沿ってドットを形成し、前記バンドメモリの座標領域上に前記ドットにより構成されるラスタデータの画像を展開していくＤＤＡ処理による画像展開処理方法において、
前記ＣＰＵが、前記直交座標系の第１軸方向及び第２軸方向の精度がそれぞれ倍となる直交座標系で前記入力されたベクトルデータに基づく前記ＤＤＡ処理を実行し、前記ベクトルデータの傾き相当値の蓄積量が前記所定値を超えるか否かを判定して、前記蓄積量が前記所定値を超えた際に、前記第２軸方向の座標値を１つ変化させる前のドット位置が前記第１軸方向及び第２軸方向の座標値を加算したとき偶数となる千鳥配列上にないときに限り、前記第２軸方向へ座標値を１つ変換させるようにして前記ベクトルデータに沿ってドットを形成し、前記バンドメモリの座標領域上に前記ラスタデータの画像を展開するようにした
ことを特徴とする画像展開処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ベクタデータを点列（ラスタ）データへ展開する画像展開処理方法に関し、特にＤＤＡ（Digital Differential Analyzer）アルゴリズムを使用して千鳥配列上にドットを形成する画像展開処理方法に関する。
【０００２】
【従来の技術】
ベクタデータで表現された直線データをラスタデータへ展開するためのＤＤＡアルゴリズムを用いた画像展開処理方法は、プリンタ及びディスプレイ装置等に広く使用されている。一般的なＤＤＡアルゴリズムとしては、実数型のデータ演算を伴わず乗除算が不要な Bresenham のＤＤＡアルゴリズムが良く知られている。このアルゴリズムは、直線の描画を例にとると、両端点Ｐ１，Ｐ２の座標値（ｘ１，ｙ１），（ｘ２，ｙ２）が与えられたとき、両端点Ｐ１，Ｐ２間のＸ軸方向の距離と、Ｙ軸方向の距離とを比較して、その絶対値が大きい方の軸の座標値を１つずつ増加させながら、小さい方の軸の座標に短軸長さを余りとして累積加算していき、その余りが長軸長さを超えたらキャリーを出力して短軸方向のドット形成位置を１つ変化させるという処理を逐次実行するものである。
【０００３】
出力画像の解像度を上げるためには、ビットマップ展開密度を高めればよいが、解像度を単純に通常の２倍とすると、ビットマップメモリの容量を通常の４倍にしなければならず、しかも描画時間が通常の４倍になってしまう。また、インクジェット方式の出力装置においては、ドット密度が高くなった分だけ、塗り潰し等の部分で、インクの過多による流れ、すれ、乾きの遅れ、及び用紙のふやけ等の問題が生じる。
【０００４】
そこで、通常のドットに加え、縦横に半ピッチ分だけずれた位置に補間ドットを形成し、出力の際には、主ドットに対して補間ドットのタイミング及び紙送りタイミングをそれぞれ半ピッチずつずらすことにより、メモリ容量及び描画時間共に２倍に抑えるようにした千鳥擬似倍精度ＤＤＡ方式も提案されている（特開平４−３２０８６２号）。
【０００５】
図１０は、この千鳥擬似倍精度ＤＤＡ方式を実現する方法を示すフローチャートである。
いま、例えば７２０ｄｐｉ単位の座標系で（１３，５）というベクタをＤＤＡする場合、座標系を２倍して１４４０ｄｐｉの座標系を生成し、この座標系の上で倍精度のベクタ（２６，１０）のＤＤＡを実行し、千鳥配列上にドットが位置する場合のみドットを形成する。図１０の処理では、演算ベースを通常の２倍の数値でおこなっている。フローチャートを参照すると、まず、ｘ，ｙの初期値をｘ＝０，ｙ＝０とし、処理の簡単化のために、余りｒが０以上になったときにキャリーを発生させるべく、余りｒの初期値をベクタの長軸値の半分の２倍、即ち−Ｘ＝−２６とする（Ｓ１）。次に、ｘ，ｙにドットを形成したのち（Ｓ２）、ｘが長軸値Ｘに達するまで（Ｓ３）ｘのインクリメントと短軸値Ｙの２倍値を余りｒへ累積する処理とを実行する（Ｓ４）。もし、余りｒが０以上になったら（Ｓ５）、余りｒから長軸値Ｘの２倍を減算し、ｙを１つ加算して（Ｓ６）ｘ，ｙを出力する（Ｓ２）。このように、短軸方向の座標値ｙの更新をここではキャリー発生と呼ぶ。
【０００６】
この処理を実行すると、図１１に示すような結果となる。この図でcarryがYESになっている座標は、キャリーが発生して斜め方向の座標値（ＸもＹも共に増加する）を生成する。on Gridの欄は、千鳥倍精度のグリッドに乗るかどうかを表している。図４（ｂ）は、これをプロットした結果を示している。図中●は千鳥配列に乗っているドット、○は千鳥配列に乗っていないドットをそれぞれ示している。実際のドットは、●で示した位置にのみ形成される。
【０００７】
【発明が解決しようとする課題】
上述した従来の千鳥配列型の画像展開処理方法では、長軸方向に２ドット以上連続してドットが形成されない部分が現れる。この傾向は、傾きが４５゜に近くなると、より顕著に現れる。図１２及び図６（ｂ）は、単精度ベクトル（１３，１２）、倍精度ベクトル（２６，２４）の場合のＤＤＡ処理結果と、そのプロット結果をそれぞれ示している。これらの図から明らかなように、直線の傾きが４５゜に近づくと、途中のドットが極端に消失してしまう。
【０００８】
このようなドットの消失は線分形状を著しく損なう。また、ドットが連続して消失すると、図形内部の塗りつぶし処理の起点を与えるドットが形成されないので、塗りつぶし処理が複雑になるという問題がある。
【０００９】
この発明はこのような問題点に鑑みなされたもので、千鳥配列上にドットを形成する擬似倍精度ＤＤＡ処理において、ドットの欠落を生じることがなく、線分形状を損なうことがない画像展開処理方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本願に係る画像展開処理方法は、ＣＰＵ及びバンドメモリを有するシステムにベクタデータを入力し、前記ＣＰＵにてこのベクトルデータによって特定される直交座標系の第１軸方向の各座標値に対し、前記ベクトルデータの傾き相当値を蓄積し、その蓄積量が所定値を超えた時点で前記直交座標系の第２軸方向の座標値を１つ変化させると共に前記蓄積量から所定値を減算することにより前記ベクトルデータに沿ってドットを形成し、前記バンドメモリの座標領域上に前記ドットにより構成されるラスタデータの画像を展開していくＤＤＡ処理による画像展開処理方法において、前記ＣＰＵが、前記直交座標系の第１軸方向及び第２軸方向の精度がそれぞれ倍となる直交座標系で前記入力されたベクトルデータに基づく前記ＤＤＡ処理を実行し、前記ベクトルデータの傾き相当値の蓄積量が前記所定値を超えるか否かを判定して、前記蓄積量が前記所定値を超えた際に、前記第２軸方向の座標値を１つ変化させる前のドット位置が前記第１軸方向及び第２軸方向の座標値を加算したとき偶数となる千鳥配列上にないときに限り、前記第２軸方向へ座標値を１つ変換させるようにして前記ベクトルデータに沿ってドットを形成し、前記バンドメモリの座標領域上に前記ラスタデータの画像を展開するようにしたことを特徴とする。
【００１１】
本発明によれば、第２軸方向への座標値変化（キャリー発生）を伴う際に、その第２軸方向へ座標値を変化させる前にそのドット形成位置が千鳥配列上にあるかどうかを判定し、千鳥配列上にない場合に限り、第２軸方向へ座標値を変化させるようにしているので、あらたに形成される座標値は、必ず千鳥配列上に存在することになる。また、キャリーが発生していないときには、ドットは水平又は垂直方向に連続して形成され、この場合には、ドットが必ず１つおきに千鳥配列上に形成される。キャリー発生前にドットが千鳥配列上に形成されていない場合でも、キャリー発生時には、次のドットは必ず千鳥配列上に形成されるので、欠落ドットが２つ以上続くことがない。このため、本発明によれば、ドットの欠落を生じることがなく、線分形状を損なうことがない。
【００１２】
【発明の実施の形態】
以下、図面を参照して、この発明の実施例を説明する。
図１は、本発明の一実施例に係る画像展開処理方法を実現するインクジェットプリントシステムの構成を示すブロック図である。
このシステムは、ホストコンピュータ１とインクジェットプリンタ２とにより構成されている。インクジェットプリンタ２は、ホストコンピュータ１とのインタフェース１１と、ＣＰＵ１２と、バンドメモリ１３と、インクジェットヘッド１４とを備えている。ホストコンピュータ１から与えられるベクトルデータは、インタフェース１１を介してＣＰＵ１２に与えられ、ここでＤＤＡ処理されてラスタデータに変換されバンドメモリ１３に展開される。バンドメモリ１３に展開されたラスタデータは、インクジェットヘッド１４に送られて印字処理に供される。
【００１３】
図２は、この実施例に係る直線ＤＤＡ処理を説明するためのフローチャートである。ここで、Ｘはベクトルデータの長軸値、Ｙはベクトルデータの短軸値、ｘは長軸現在位置、ｙは短軸現在位置、ｒは余り（蓄積量）である。
図２のＤＤＡ処理は、図１０のＤＤＡ処理と基本は同じであるが、図１０の処理と異なる点は、図１０のステップＳ５と、図１のステップＳ１１である。ステップＳ５では、余りｒが０以上のときに、無条件にキャリー発生処理（Ｓ６）を実行したが、本実施例のシステムでは、余りｒが０以上で、且つｘ＋ｙが奇数（ｘ＋ｙ＋１が偶数）であるときのみ、つまり現在位置が千鳥格子上に乗っていないときのみキャリー発生処理（Ｓ６）を行うようにしている。これにより、形成されるドットは必ず千鳥格子上に乗ることになる。
【００１４】
図１１のＤＤＡ処理と同様にベクトルデータとして（１３，５）、倍精度で（２６，１０）が与えられたときの処理結果を図３に示す。従来例（図１１）と比較すると、従来例ではｘ＝２でｒが１４となり０を超えるため、キャリーが発生してｙ＝１となったが、結果的に生成されたドットはon Gridにはならなかった。このため、ドットが２回連続して欠落している。この点、図３に示した本実施例では、余りｒが１４になり０を超えた場合でも、Ｘ軸座標値とＹ軸座標値の加算値ｘ＋ｙ＝２＋０＝２が偶数であるために、キャリーは発生せず、Ｙ軸座標値はｙ＝０のままである。次のｘ＝３では、ｘ＋ｙ＝３＋０＝３と奇数になるので、キャリーが発生し、ｙ＝１になる。この場合には、on Gridとなる。この処理では、図３から明らかなように、on Gridとならないドットが２つ以上連続することはない。
【００１５】
図４（ａ）は、これをプロットした結果を示す図である。
この図から明らかなように、本実施例の画像展開方法では、欠落するドットが２以上続かないため、線分形状が損なわれない。これに対し、同図（ｂ）に示した従来例は、ドットの欠落が２以上続く部分が４箇所も存在する。
図５は、図１２に対応したベクトルデータ（１３，１２）、倍精度（２６，２４）のプロット例である。従来例では、ｘ＝８でキャリーが発生し、ｙ＝７となって、以後、連続的にドットが欠落したが、本実施例では、ｘ＝８で余りｒ＝４６となってもキャリーが発生せず、この結果、ｙ＝６が維持されてon Gridが保たれている。図６（ａ）が、これをプロットした結果である。この例では、同図（ｂ）の従来例と顕著に違いが出てくる。従来例では、塗り潰し処理に支障を来したが、本実施例では塗り潰し処理も支障無く行える。
【００１６】
図７は、円発生のＤＤＡ処理を示すフローチャートである。
円の場合、中心と半径Ｘが与えられ、１／８円が生成されれば、後はｘ，ｙ変換及び対称点算出処理により全ての座標値が求められる。従って、図７の処理も１／８円を生成するアルゴリズムとなっている。
まず、ｘ，ｙの初期値としてｘ＝０，ｙ＝Ｘ＝３０を、余りｒによるキャリー発生を０基準に設定すべく余りｒの初期値をベクタの長軸値のマイナス値−Ｘ＝−３０とする（Ｓ２１）。次に、ｘ，ｙにドットを形成したのち（Ｓ２２）、ｘがｙと一致するまで（Ｓ２３）、即ち傾きが４５゜に達するまで、ｘのインクリメントと２ｘ＋１を余りｒへ累積する処理とを実行する（Ｓ２４）。もし、余りｒが０以上になり、且つｘ＋ｙが奇数になったら（Ｓ２５）、余りｒから２ｙ−１を減算し、ｙを１つ減算して（Ｓ２６）ｘ，ｙを出力する（Ｓ２２）。
【００１７】
以上の処理結果を図８に示す。この処理結果からも明らかなように、ｘ＝９のときに余りｒ＝１０であり、これは０を超えているが、ｘ＋ｙ＝９＋２９＝３８であるためにキャリーは発生せず、この結果、on Gridを維持している。
このプロット結果は、図９（ａ）のようになる。ちなみに、図９（ｂ）は従来処理によるプロット結果である。本実施例の方法がいかに線分形状を損ねていないかが明らかである。
【００１８】
【発明の効果】
以上述べたようにこの発明によれば、第２軸方向への座標値変化（キャリー発生）を伴う際に、その第２軸方向へ座標値を変化させる前にそのドット形成位置が千鳥配列上にあるかどうかを判定し、千鳥配列上にない場合に限り、第２軸方向へ座標値を変化させるようにしているので、あらたに形成される座標値は、必ず千鳥配列上に存在することになり、ドットの欠落を防止して線分形状が良好になるという効果を奏する。
【図面の簡単な説明】
【図１】  この発明の一実施例に係るインクジェットプリントシステムのブロック図である。
【図２】  同システムを使用した本発明の一実施例に係る直線生成ＤＤＡアルゴリズムを示すフローチャートである。
【図３】  同ＤＤＡアルゴリズムに基づくドット形成処理結果を示す図である。
【図４】  同ドット形成処理によってプロットしたドットを従来法により形成したドットと比較して示す図である。
【図５】  同ＤＤＡアルゴリズムに基づくドット形成処理結果を示す図である。
【図６】  同ドット形成処理によってプロットしたドットを従来法により形成したドットと比較して示す図である。
【図７】  同システムを使用した本発明の一実施例に係る円生成ＤＤＡアルゴリズムを示すフローチャートである。
【図８】  同ＤＤＡアルゴリズムに基づくドット形成処理結果を示す図である。
【図９】  同ドット形成処理によってプロットしたドットを従来法により形成したドットと比較して示す図である。
【図１０】  従来のＤＤＡアルゴリズムに基づくドット形成処理結果を示す図である。
【図１１】  従来のＤＤＡアルゴリズムに基づくドット形成処理結果を示す図である。
【図１２】  従来のＤＤＡアルゴリズムに基づくドット形成処理結果を示す図である。
【符号の説明】
１…ホストコンピュータ、２…インクジェットプリンタ、１１…インタフェース、１２…ＣＰＵ、１３…バンドメモリ、１４…インクジェットヘッド。
【図１】
0004376372.tif 000002
【図４】
0004376372.tif 000003
【図２】
0004376372.tif 000004
【図３】
0004376372.tif 000005
【図５】
0004376372.tif 000006
【図６】
0004376372.tif 000007
【図７】
0004376372.tif 000008
【図８】
0004376372.tif 000009
【図９】
0004376372.tif 000010
【図１０】
0004376372.tif 000011
【図１１】
0004376372.tif 000012
【図１２】
0004376372.tif 000013