図形処理装置、図形処理システムおよび図形処理方法
【課題】 ラスタデータ生成の際の視覚的な品質を向上し、本来の形状に近い図形を描画できる図形処理装置を提供する。
【解決手段】 入力図形の座標情報を走査して、描画領域を算出する描画領域算出部121を有する図形処理装置において、前記座標情報の走査方向と垂直な方向の長さに応じて前記描画領域を補正する描画領域補正部204を有する。
【解決手段】 入力図形の座標情報を走査して、描画領域を算出する描画領域算出部121を有する図形処理装置において、前記座標情報の走査方向と垂直な方向の長さに応じて前記描画領域を補正する描画領域補正部204を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、円や多角形、線分等の図形を描写可能な図形処理装置、図形処理システム、および図形処理方法に関する。
【背景技術】
【0002】
従来、入力図形の座標情報や修飾情報(形状や大きさの情報)に基づいて描画形状(ラスタデータ)を生成し、文字や図形、または直線や曲線を描画する図形処理装置が知られている(例えば、特許文献1参照)。
通常、このような描画処理においては、ラスタデータの生成を容易にするため、中間データとして入力図形を三角形や台形等に分割する方法が採られている。その際、ラスタデータの精度を向上させるため、描画印刷時の画素単位よりも細かい座標単位で図形算出処理が行われ、その図形処理に基づいて実際に印刷される画素単位で描画が行われていた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−31951号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、従来の図形処理では、細かい座標単位から実際の画素単位の座標へと変換される際に、細かい座標単位で描画された図形は、この細かい座標単位を含む実際の画素単位で一律に描画されるように変換されていた。このため、例えば、高さが画素単位で1に満たない図形の場合では、全て1画素として描画されるため、本来意図した形状とは異なった図形が描画されるという問題があった。
【0005】
本発明は、上記問題に鑑みてなされたもので、ラスタデータ生成の際の視覚的な品質を向上し、本来の形状に近い図形を描画できる図形処理装置、図形処理システム、および図形処理方法を提供することを目的としている。
【課題を解決するための手段】
【0006】
すなわち、本発明の図形処理装置は、入力図形の座標情報を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、上記座標情報の走査方向と垂直な方向の長さに応じて上記描画領域を補正する描画領域補正部を有することを特徴としている。
【0007】
また、本発明の図形処理システムは、図形処理装置と、この図形処理装置にて生成された入力図形の描画データを入力して画像を形成する出力装置とを備えることを特徴としている。
【0008】
また、本発明の図形処理方法は、入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、上記座標情報の走査方向と垂直な方向の長さに応じて上記描画領域を補正することを特徴としている。
【発明の効果】
【0009】
描画領域算出部で算出された描画領域を補正する描画領域補正部を有するので、本来描画しようとする図形の形状とほぼ同じ描画を行うことが可能となり、ラスタデータ生成の際の視覚的な品質を向上させることができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施例1による図形処理装置のブロック構成図である。
【図2】実施例1による補正有図形分割部のブロック構成図である。
【図3】分割図形の座標情報により作成される実際の描画図形を示す図である。
【図4】図形情報の形式を示す図である。
【図5】実施例1による図形生成部のフローチャートである。
【図6】図7の線分情報により描画される図形を示す図である。
【図7】線分情報の形式を示す図である。
【図8】実施例1による補正有図形分割のフローチャートである。
【図9】補正有図形分割の説明図である。
【図10】図形情報に基づき作成される実際の描画図形を示す図である。
【図11】図6の図形情報の形式を示す図である。
【図12】実施例2による図形生成部のフローチャートである。
【図13】実施例2による補正無図形分割のフローチャートである。
【図14】実施例3による補正有図形分割のフローチャートである。
【図15】各分割図形情報の形式を示す図である。
【図16】実施例4による補正有図形分割のフローチャート(その1)である。
【図17】実施例4による補正有図形分割のフローチャート(その2)である。
【図18】高さ1未満の2つの分割図形でなる図形の補正を示す図である。
【図19】本発明の実施例2による図形処理装置のブロック構成図である。
【図20】実施例2による補正無図形分割部のブロック構成図である。
【図21】実施例3による補正有図形分割部のブロック構成図である。
【図22】実施例4による補正有図形分割部のブロック構成図である。
【図23】本発明の実施例5による図形処理装置のブロック構成図である。
【図24】実施例5による形状補正図形分割部のブロック構成図である。
【図25】実施例5による形状変更図形分割部のブロック構成図である。
【図26】実施例5による図形生成部のフローチャートである。
【図27】実施例5による形状変更図形分割のフローチャートである。
【図28】実施例5による形状変更図形分割補正の説明図である。
【図29】細い線画の描画を示す図である。
【図30】三角形と矩形における情報量の違いを示す説明図である。
【図31】図33の線分情報により描画される図形を示す図である。
【図32】実施例5による形状変更図形分割の説明図である。
【図33】図32の図形情報の形式を示す図である。
【発明を実施するための形態】
【0011】
以下、図1〜図33に基づいて本発明の実施の形態を説明する。
【実施例1】
【0012】
図1は本発明の実施例1による図形処理装置のブロック構成図である。
実施例1による図形処理装置は、入力された図形情報11から抽出した座標情報と図形修飾情報15に基づき、描画すべき図形を生成する図形生成部12と、図形生成部12で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部13と、ラスタデータ生成部13で生成された、例えば、1ページ分のラスタデータを出力装置(図示せず)に出力可能なバッファとしてのラスタデータ出力部14とを有する。
また、上記図形生成部12は、図形情報11から抽出された座標情報と図形修飾情報15から、実際に描画可能な描画領域を座標情報として算出する描画領域算出部121と、描画図形の視覚的品質を向上するため、描画領域算出部121で算出された描画領域の座標情報を補正する補正有図形分割部122とを有する。
【0013】
図2は、実施例1による補正有図形分割部122の詳細を示すブロック構成図であり、補正有図形分割部122は、描画領域算出部121において算出された描画領域の座標情報を入力する座標情報入力部201と、ラスタデータを生成し易くするため、座標情報入力部201に入力された描画領域(図形)を分割する描画領域分割部202と、描画領域分割部202において分割された描画領域の高さを算出し、その高さにより描画領域の補正が必要か否かを判別する描画領域高さ判別部203と、補正が必要と判断された場合に補正を行う描画領域補正部204と、描画領域分割部202や描画領域補正部204で生成された描画領域の各頂点座標を出力の精度(すなわち、画素単位)に変換する単位変換部205と、図形分割の終了を判定する終了判定部206と、出力の精度に変換された描画領域をラスタデータ生成部13に出力する描画領域出力部207とを有する。
【0014】
尚、図形情報11には、図4に示すように、描画しようとする図形の頂点数や各頂点の(X,Y)座標情報が含まれ、また、図形修飾情報15には、描画図形の大きさや形を決定する拡大・縮小率や線分描画に必要な線幅、線分の端点や接続点の情報、線分の破線情報等、描画図形を修飾する情報が含まれる。
【0015】
次に、実施例1による図形処理装置の動作を図1、図2、図5、図8に基づき、図6、図9を用いて詳細に説明する。
図5は、実施例1による図形生成部12のフローチャートを示し、図8は、補正有図形分割のフローチャートを示す。尚、実施例1では、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示す図形のように所定幅の線分の描画を行う例を説明する。
【0016】
先ず、図5のS501にて、入力された情報図形情報11から線分P1P2の座標を取り出す。次に、S502の線分幅付け処理にて、図形修飾情報15の線幅情報に従い線幅を付与し、図6に示す描画図形P3P4P5P6の各頂点座標を算出する。
この段階で、実際の描画図形の形状や大きさが図6のように決定され、その座標情報が図11に示すように表現される。
【0017】
次に、S503にて、後述する補正有図形分割を行い、S504にて、描画すべき線分が存在するか否かを判断し、存在する場合は、S501に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部13において後述する座標情報に基づきラスタデータを生成する。生成されたラスタデータは、ラスタデータ出力部14を介して、図示しない画像形成装置に出力され、画像形成装置において、上記ラスタデータに基づいて画像(文字、図形、線画等)が形成される。
尚、画像形成装置は、プリントヘッドと、該プリントヘッドにて露光されて、表面に潜像が形成される像担持体を備える出力装置、例えば、プリンタである。
【0018】
以下、上述した補正有図形分割(S503)の動作を、図8に基づき、図9を用いて説明する。
先ず、図8のS801で、入力座標(図5のS503の直前までに決定した図形P3P4P5P6の座標情報)より、分割すべき図形の縦方向(X方向)の最上位位置、ここでは、点P6を検出する。次に、S802にて、この検出点P6から図形上において右回りと左回りにそれぞれ次の点を一つずつ読み出し(P3とP5)、検出点P6から左右2線分を取り出す。
次に、S803にて、取り出した2線分の下端の縦方向位置を比較し、左辺が上位位置ならS804、右辺が上位位置ならS808、左右同位置ならS806の処理を行う。
【0019】
ここでは、左辺である線分P6P3の下端P3より、右辺である線分P6P5の下端P5の方が上位位置であるからS808へ進み、S808にて、P5の縦方向位置と同じ高さとなる左辺の点P7の横方向の座標を算出して点P7を決定する。これにより、最初の分割図形である三角形P6P7P5が確定する。次に、S809にて、左辺をP6P3からP7P3に持ち直し、右辺を次の線分P5P4に更新する。
【0020】
次に、S810で、取り出した分割図形(ここでは、三角形P6P7P5)の高さを算出し、出力精度での1以上の高さがあるか否かを判断し、高さが1未満の場合は、S811にて、分割図形の横方向位置の補正を行う。ここでは、三角形P6P7P5の高さは1未満であるとしているため、補正処理を行い、左辺は点P9、右辺は点P10とする。
【0021】
ここで、点P9と点P10の位置は以下のようにして算出する。但し、P9、P10、P6、P7、P5の座標位置をP9(P9x、P9y)、P10(P10x、P10y)、P6(P6x、P6y)、P7(P7x、P7y)、P5(P5x、P5y)のように定義し、算出式上で使用する。
(式1)
点P9(P9x、P9y)=(((P6x+P7x)÷2)、(P6y+P7y)÷2)
(式2)
点P10(P10x、P10y)=(((P6x+P5x)÷2)、(P6y+P5y)÷2)
尚、三角形P6P7P5の高さが1未満であると、点P9と点P10の縦方向位置は出力精度の単位で点P6や点P5と等しくなる。
【0022】
次に、S812にて、分割図形の精度を出力精度に変換する。分割図形の高さが1以上の場合は補正を行わず、S812で分割図形の精度を出力精度に変換する。
【0023】
次に、S813にて、分割が終了したか否かを判断し、ここでは未終了であるためS803に戻り、S809にて、更新した左辺P7P3と右辺P5P4を比較する。ここで、左辺P7P3の下端P3の位置より右辺P5P4の下端P4の位置が下位位置であるためS804に進み、P3の縦方向位置と同じ高さとなる右辺の点P8の横方向の座標を算出して点P8を決定する。これにより、次の分割図形である四角形P7P3P8P5が確定する。
次に、S805にて、右辺をP5P4からP8P4に持ち直し、左辺は次のP3P4に更新する。
【0024】
次に、S810にて、取り出した分割図形(四角形P7P3P8P5)の高さを算出し、出力精度での1以上の高さがあるか否かを判断する。ここでは、高さが1以上であるため補正は行わず、S812にて、分割図形の精度を出力精度に変換する。
【0025】
次に、S813にて、分割が終了したか否かを判断し、未終了であるためS803に戻り、S805で、更新した左辺P3P4と右辺P8P4を比較する。ここでは、右左辺の下端は共にP4であるためS806に進み、S806にて、分割図形P3P4P8を確定する。
次に、S807にて、右左辺の更新を行い、分割は終了する。
【0026】
次に、図3(A−1)、(B−1)に基づき、上述の処理により得た分割図形の座標情報を元に、実際の画素単位の座標では、どのように描画するかについて説明する。
例えば、図3(A−1)に示すような、出力精度での高さが1未満の三角形P6P7P5を描画する場合は、先ず、式1により、線分P6P7の中点座標P9を算出すると共に、式2により、線分P6P5の中点座標P10を算出する。
本実施例では、各中点座標(分割図形の精度)を実際の画素単位の座標(出力の精度)に変換する。図3における1マスは、600dpiにおける1dotが置かれる位置を示している。具体的には、図3(A−1)の矢印aで示すように、中点座標P9をその座標点に最も近い実際の画素単位の座標P6’に変換し、同様に、矢印bで示すように、中点座標P10をP10’に変換する。そして、変換先の座標P6’と座標P10’を含む画素のみを描画する。
【0027】
また、図3(A−2)に示すような、出力精度での高さが1未満で、図3(A−1)の図形とは対称的な三角形P3P4P8を描画する場合は、式3により線分P3P4の中点座標P11を算出すると共に、式4により線分P8P4の中点座標P12を算出し、矢印a示すように、中点座標P11をP11’に変換し、矢印bに示すように、中点座標P12をP12’に変換する。そして、P11’、P12’を含む各画素を描画し、さらにその間の画素を描画する。
尚、高さが1以上の図形に関しては、従来技術と同様に図形の存在する位置の画素を描画する。
以上、本実施例によれば、図6に示す幅のある線分P3P4P5P6は、図10(A)に示す形状に描画される。
【0028】
尚、本実施例では、図3(A)、(B)のような三角形の補正について説明したが、例えば、図3(C)、(D)、(E)、(F)のような三角形についても全く同様であり、この場合、算出する座標は下式3、4のようになる。
(式3)
(((q1x+q2x)÷2)、(q1y+q2y)÷2)
(式4)
(((q1x+q3x)÷2)、(q1y+q3y)÷2)
【0029】
ここで、従来技術による描画方法を図3(B−1)、図3(B−2)を用いて説明する。
図3(B−1)に示すような、高さが1未満の三角形P6P7P5を描画する場合は、頂点P7をその座標点に最も近い実際の画素単位の座標P7’に変換すると共に、頂点P5を座標P5’に変換し、変換先の座標P7’、P5’を含む画素を描画し、さらにその間の画素を描画する。
【0030】
また、図3(B−2)に示すような、図3(B−1)の図形とは対称的な三角形P3P4P8を描画する場合は、頂点P3をその座標点に最も近い実際の画素単位の座標P3’に、頂点P8を座標P8’に変換する。次に、変換先の座標P3’、P8’を含む画素を描画し、さらにその間の画素を描画する。
高さが1以上の図形に関しては、図形の存在する位置の画素を描画する。
以上、従来技術によれば、図6に示す幅のある線分P3P4P5P6は、図10(B)に示す形状に描画される。
【0031】
このように、実施例1による描画では、特に、線分P5P6、および線分P3P4については、従来技術による描画のように、P5とP6、P3とP4間の全ての画素を描画するのではないため、各線分が傾斜していることが明確に表現される。
【0032】
以上、実施例1では、説明を簡素化するため、接続部分や端点付加形状のない線分描画について述べたが、これに限定されるものではなく、接続部分や端点付加形状のある図形、或いは、多角形や円等の図形についても勿論適用可能であり、線分描画の場合と同様の効果が得られるものである。
【0033】
また、実施例1では、中間データ作成のための図形分割を図形の縦方向の位置を基準として、その上位位置から順に分割して処理するようにしたが、これは一例であって、分割の基準となる方向は、ラスタデータ変換の際の効率を考慮し、例えば、縦方向位置の下位位置から上位位置へ分割して処理しても良く、また、横方向位置の左から右、或いは、右から左へ順に分割して処理しても良い。但し、何れの場合も、補正方向は処理基準方向に対して垂直方向となる。
【0034】
また、実施例1では、ラスタデータへ変換する際に、図形分割により中間データを作成して各描画図形に対する座標情報の補正を行ったが、中間データは必ずしも作成する必要はなく、例えば、図9に示す四角形P3P4P5P6から直接ラスタデータに変換することも勿論可能であり、実施例1と同等の効果が得られる。この場合、三角形P6P7P5や三角形P3P4P8に相当する部分で、実施例1と同様の補正を行えば良い。
【0035】
以上のことは、実施例1に限らず、後述する実施例2〜5についても同様である。
【0036】
以上、実施例1によれば、図形描画をする際、ラスタデータに展開しようとする部分の展開基準方向(高さ方向)の変化量が出力精度での1未満であった時、基準方向と垂直な方向(横方向)を補正することにより、本来描画しようとする図形とほぼ同じ形状の描画を行うことが可能となり、ラスタデータ生成の際の視覚的な品質を向上することができる。
【実施例2】
【0037】
図19は本発明の実施例2による図形処理装置のブロック構成図である。
実施例2による図形処理装置は、入力された図形情報211から得た座標情報と図形修飾情報215に基づき、描画すべき図形を生成する図形生成部212と、図形生成部212で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部213と、ラスタデータ生成部213で生成されたラスタデータを出力装置(図示せず)に出力可能なラスタデータ出力部214とを有する。
【0038】
また、上記図形生成部212は、図形情報211から得られた座標情報と図形修飾情報215から、実際に描画可能な描画領域を座標情報として算出する描画領域算出部2121と、図形修飾情報215の出力精度より描画領域の補正が必要か否かを判断する出力精度判別部2122と、描画図形の視覚的な品質を向上するため、描画領域算出部2121で算出された描画領域の座標情報を補正する補正有図形分割部2124と、描画領域の補正をしない補正無図形分割部2123とを有する。
尚、上記補正有図形分割部2124の構成は、図1に示す実施例1の補正有図形分割部122と同様であり、説明は省略する。
【0039】
図20は補正無図形分割部2123の詳細を示すブロック構成図であり、補正無図形分割部2123、描画領域算出部2121で算出された描画領域の座標情報を入力する座標情報入力部221と、座標情報入力部221に入力された描画領域(図形)を、ラスタデータを作成し易くするために分割する描画領域分割部222と、描画領域分割部222にて、分割された描画領域の各頂点座標を出力の精度に変換する単位変換部223と、図形分割の終了を判定する終了判定部224と、描画領域をラスタデータ生成部213に出力する描画領域出力部225とを有する。図形情報211、図形修飾情報215については、実施例1と同様であるが、図形修飾情報215には、出力の精度情報が含まれる。
【0040】
次に、実施例2による図形処理装置の動作を図19、図20、図12、図13に基づき、図6、図9を用いて詳細に説明する。
図12は、実施例2による図形生成部212のフローチャートを示し、図13は補正無図形分割のフローチャートを示す。尚、実施例2においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0041】
先ず、図12のS1201にて、入力された図形情報211から線分P1P2の座標情報を取り出し、図形修飾情報215に従い、線分幅付け処理(S1202)を行う。これらの動作は実施例1と同様である。この段階で、実際の描画図形の形状や大きさが図6のように決定され、その座標情報が図11に示すように表現される。
【0042】
次に、S1203にて、図形修飾情報215に従い、解像度(出力精度)を判定する。出力精度が粗い(例えば、300dpi指定)場合は、S1205の補正有図形分割により描画図形の座標情報を補正し、出力の精度が細かい(例えば、600dpi以上指定)場合は、描画図形の座標情報の補正は行わず、S1204にて、描画図形の分割だけを行う。
ここで、上記出力精度は、出力装置の特性を考慮し、視覚的に向上した描画が得られるように設定されるもので、本実施例では、判定基準(所定値)となる出力精度は、例えば、600dpiとしている。
【0043】
尚、S1209の補正有図形分割は、実施例1の補正有図形分割(図8参照)と同様であるため説明は省略する。この補正による描画図形は、図10(A)となる。
【0044】
次に、上記補正無図形分割(S1204)の動作を図13に基づき、図9を用いて説明する。本フローチャートの動作は、図8の補正有図形分割の動作と略同様であり、図形分割後に補正処理(S811)を行わない点が図8と相違する。
【0045】
先ず、図13のS1301にて、入力座標(図12のS1203直前までに決定した図形P3P4P5P6の座標情報)で分割すべき図形の縦方向の最上位位置、ここでは、点P6を検出する。次に、S1302にて、この検出点P6から右回りと左回りにそれぞれ次の点を一つずつ読み出し、検出点P6から左右2線分を取り出す。
次に、S1303にて、取り出した2線分の下端の縦方向位置を比較し、左辺が上位位置ならS1304、右辺が上位位置ならS1308、左右同位置ならS1306の処理を行う。
【0046】
ここでは、左辺である線分P6P3の下端P3より、右辺である線分P6P5の下端P5の方が上位位置であるためS1308に進み、S1308にて、P5の縦方向位置と同じ高さとなる左辺の点P7の横方向の座標を算出して点P7を決定する。これにより、最初の分割図形である三角形P6P7P5が確定する。次に、S1309にて、左辺をP6P3からP7P3に持ち直し、右辺は次の線分P5P4に更新する。
【0047】
次に、S1310にて、取り出した分割図形(ここでは、三角形P6P7P5)の精度を出力の精度に変換する。
次に、S1311にて、分割が終了したか否かを判断し、まだ終了していないためS1303に戻り、S1309にて、更新した左辺P7P3と右辺P5P4を比較する。ここで、左辺P7P3の下端P3の位置より右辺P5P4の下端P4の位置が下位位置であるためS1304に進み、点P3の縦方向位置と同じ高さである右辺の点P8の横方向の座標を算出し、点P8を決定する。これにより、次の分割図形である四角形P7P3P8P5が確定する。
次に、S1305にて、右辺をP5P4からP8P4に持ち直し、左辺は次の線分P3P4に更新する。そして、次に、S1310で分割図形の精度を出力の精度に変換する。
【0048】
次に、S1311にて、分割が終了したか否かを判断し、未終了であるのでS1303に戻り、S1305にて、更新した左辺P3P4と右辺P5P4を比較する。ここでは、右左辺の下端は共にP4であるためS1306に進み、S1306で分割図形P3P4P8を確定する。次に、S1307にて、右左辺の更新を行い、分割は終了する。次に、S1310にて、分割図形の精度を出力の精度に変換する。
【0049】
次に、図12のS1206にて、描画すべき線分が存在するか否かを判断し、存在する場合は、S1201に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部213においてラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部214を介して図示しない出力装置(画像形成装置)に出力する。
【0050】
以上、補正無図形分割処理により、図9の図形が補正されずに、図10の(B)補正なし例のような描画になる。図10の(A)補正有り例に比べて、図形の形状が崩れているように見えるが、出力精度が細かいため、その崩れは目立たない。
【0051】
以上、実施例2によれば、出力精度が所定値より細かい場合は、無補正でも図形の形状乱れが目立たないことに注目し、出力精度が所定値より粗い場合にのみ補正するようにしたので、実施例1の効果に加え、出力精度が細かい場合の補正処理時間を削減し、描画図形の生成時間を短縮することができる。
【実施例3】
【0052】
実施例3による図形処理装置の構成は、図1に示す実施例1と基本的には同様であるが、実施例3の場合は、補正有図形分割部122の構成が実施例1と異なる。
【0053】
図21は、実施例3による補正有図形分割部のブロック構成図であり、描画領域算出部121において算出された描画領域の座標情報を入力する座標情報入力部2301と、ラスタデータを生成し易くするため、座標情報入力部2301に入力された描画領域(図形)を分割する描画領域分割部2302と、上記分割処理の終了を判定する分割終了判定部2303と、分割処理により生成された各々の図形の位置関係(各図形の生成順序)を判別する描画領域順序判別部2304と、1つ目の分割図形に対し、その高さより補正が必要か否かを判別する1つ目の描画領域高さ判別部2305と、最後の分割図形に対し、その高さより補正が必要な高さか否かを判別する最後の描画領域高さ判別部2306と、補正が必要と判別された分割図形に対して補正を行う描画領域補正部2308と、全ての分割図形の高さ判別が終了したか否かを判定する終了判別部2307と、分割・生成された全ての図形の各頂点座標を出力の精度に変換する単位変換部2309と、出力の精度に変換された描画領域をラスタデータ生成部13に出力する描画領域出力部2310を有する。
【0054】
次に、実施例3による図形処理装置の動作を図1、図21、図5、図14に基づき、図6、図9を用いて詳細に説明する。図14は実施例3による補正有図形分割のフローチャートを示す。
実施例3の基本動作は、図5のフローチャートで示す実施例1の動作と同様であるが、S503の補正有図形分割の動作が相違している。尚、実施例3においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0055】
先ず、図5のS501にて、入力された図形情報11から線分P1P2の座標情報を取り出し、図形修飾情報215に従い、線分幅付け処理(S502)を実施例1と同様に行う。この段階で、実際に描画する図形の形状や大きさが図6のように決定され、その座標情報が図11のように表現される。
【0056】
次に、S503にて、後述する補正有図形分割を行い、S504で描画すべき線分が存在するか否かを判断し、存在する場合は、S501に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば本図形生成の動作を終了し、ラスタデータ生成部13において座標情報に基づきラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部214を介して図示しない出力装置に出力する。
【0057】
以下、上記した補正有図形分割の動作を図14に基づき説明する。
先ず、図14のS1401にて、入力座標(図5のS503の直前までに決定した図形P3P4P5P6の座標情報)より分割すべき図形の縦方向の最上位位置、ここでは、点P6が検出される。次に、S1402にて、この検出点P6から右回りと左回りにそれぞれ次の点を一つずつ読み出し、検出点P6から左右2線分を取り出す。
次に、S1403にて、取り出した2線分の下端の縦方向位置を比較し、左辺が上位位置ならS1404、右辺が上位位置ならS1408、左右同位置ならS1406の処理を行う。
【0058】
ここでは、左辺である線分P6P3の下端P3より、右辺である線分P6P5の下端P5の方が上位位置であるからS1408へ進み、S1408にて、P5の縦方向位置と同じ高さとなる左辺の点P7の横方向の座標を算出して点P7を決定する。これにより、最初の分割図形である三角形P6P7P5が確定する。次に、S1409にて、左辺をP6P3からP7P3に持ち直し、右辺を次の線分P5P4に更新する。
【0059】
次に、S1410にて、分割が終了したか否かを判断し、未終了であるためS1403に戻り、S1409にて、更新した左辺P7P3と右辺P5P4を比較する。左辺P7P3の下端P3の位置より、右辺P5P4の下端P4の方が下位位置であるためS1404に進み、S1404にて、P3の縦方向位置と同じ高さとなる右辺の点P8の横方向の座標を算出して点P8を決定する。これにより、次の分割図形である四角形P7P3P8P5が確定する。次に、S1405にて、右辺をP5P4からP8P4に持ち直し、左辺を次の線分P3P4に更新する。
【0060】
次に、S1410にて、分割が終了したか否かを判断し、未終了であるためS1403に戻り、S1405にて、更新した左辺P3P4と右辺P5P4を比較する。右左辺の線分の下端は共にP4であるためS1406に進み、S1406で分割図形P3P4P8が確定する。次に、S1407にて、右左辺の更新を行い、分割は終了する。
尚、この一連の分割処理にて確定した各分割図形は、例えば図15に示すように、上位側より順序立てて管理しておく。
【0061】
次に、S1411にて、図15のように管理された1つ目の分割図形(図9の三角形P6P7P5)を取り出し、S1412にて、取り出した図形の高さを判断する。ここでは、高さが1未満であるため、S1413にて、他に分割図形が有るか否かを判断し、他の分割図形が存在する場合(取り出した図形の高さが出力精度での1未満で、且つ他の図形に隣接している場合)にのみ、S1414にて、分割図形の横方向位置の補正を行い、左辺は点P9、右辺は点P10とする。尚、点P9と点P10の座標は、式1、式2を用いて算出する。
次に、上記補正の有無に関わらず、S1415で分割図形を出力の精度の単位に変換する。
【0062】
次に、S1416にて、描画すべき線分が存在する否かを判断し、存在する場合は、S1417にて、図15のように管理された次の分割図形(図9の四角形P7P3P8P5)を取り出し、S1418にて、取り出した分割図形を出力の精度の単位に変換すると共に、S1416に戻り、最後の分割図形になるまで上記処理を繰り返す。S1416にて、最後の分割図形と判断すると、S1419にて、最後の分割図形の高さを算出し、出力精度での高さが1以上であるか否かを判断し、ここでは、高さが1未満であるため、S1420にて、分割図形の横方向位置の補正を行い、左辺は点P11、右辺は点P12とする。尚、点P11と点P12の座標は、式3、式4を用いて算出する。
次に、上記補正の有無に関わらず、S1421にて、分割図形を出力の精度の単位に変換し、処理を終了する。
【0063】
以上、実施例3によれば、他の図形(分割図形)に隣接し、図形の端に位置する高さが1未満の図形のみを補正するようにたので、本補正により本来描画しようとする図形が半分の長さになったとしても、隣接する図形により、補正による形状の変化が目立たなくなる。また、補正を行う条件(出力精度)を設定することにより、実施例2と同様に、描画図形の生成時間を短縮することができ、且つ、処理時間等、補正による性能の悪化を最小限に抑えることができる。
【実施例4】
【0064】
実施例4による図形処理装置の構成は、図1に示す実施例1と基本的には同様であるが、実施例4の場合は、補正有図形分割部122の構成が実施例1と相違している。
【0065】
図22は実施例4による補正有図形分割部のブロック構成図であり、描画領域算出部121で算出された描画領域の座標情報を入力する座標情報入力部2401と、ラスタデータを作成し易くするため、座標情報入力部2401に入力された描画領域(図形)を分割する描画領域分割部2402と、上記分割処理の終了を判定する分割終了判定部2403と、分割処理により生成された各々の図形の数を判定する図形数判定部2404と、各分割図形の高さに応じて高さ情報を設定する描画領域高さ情報設定部2405と、その高さ情報により補正が必要か否かを判定する描画領域高さ情報判定部2406と、補正必要と判別された分割図形に対して補正を行う描画領域補正部2407と、補正の有無に関わらず、各頂点座標を出力の精度に変換する単位変換部2408と、全ての分割図形の高さ判別が終了した否か判定する終了判定部2409と、出力の精度に変換された描画領域をラスタデータ生成部13に出力する描画領域出力部2410とを有する。
【0066】
次に、実施例4による図形処理装置の動作を図1、図5、図16、図17、図22に基づき、図6、図9を用いて詳細に説明する。図16、図17は実施例4による補正有図形分割のフローチャートを示す。
実施例4の基本動作は、図5のフローチャートで示す実施例1の動作と同様であるが、S503の補正有図形分割の動作が相違している。尚、実施例4においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0067】
先ず、図5のS501にて、入力された図形情報11から線分P1P2の座標情報を取り出し、図形修飾情報15に従い、線分幅付け(S502)を実施例1と同様に行う。この段階で、実際に描画する図形の形状や大きさが図6のように決定され、その座標情報が、図11のように表現される。
【0068】
次に、S503にて、後述する実施例3による補正有図形分割を行い、S504にて、描画すべき線分が存在するか否かを判断し、存在する場合は、S501に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部13において座標情報に基づきラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部214を介して図示しない出力装置に出力する。
【0069】
以下、上記した実施例4による補正有図形分割の動作を図16、図17に基づき説明する。
S1601への入力座標は、図5のS503の直前までに決定された図形P3P4P5P6の座標情報となる。
以降、S1601〜S1610による図形の分割処理の動作は、実施例3のS1401〜S1410と同様であるため、動作の説明を省略する。
【0070】
次に、S1611にて、分割処理にて得られた図形が2個以上であるか否かを判断し、図形が1個の場合は、S1630にて、対象図形を出力の精度の単位に変換し、処理を終了する。
ここでは、図15に示すように、図形数は3つであるため、S1612にて、対象図形の高さ情報を初期状態の0に設定する。
【0071】
本実施例では、図形の高さ情報は、高さが1未満なら0、高さが1以上であれば1とし、対象図形、一つ前の図形、次の図形の、それぞれ3つの図形の高さ情報を管理しておく。
すなわち、S1613にて、最初の図形P6P7P5を図15より取り出し、S1614にて、その高さを算出する。次に、S1615にて、算出した高さを判定し、高さが1未満の時は、S1616にて、対象図形の高さ情報を0とし、1以上の時は、S1617にて、対象図形の高さ情報を1とする。ここでは、図形P6P7P5の高さは1未満とし、高さ情報を0とする。
次に、S1618にて、図15のように管理された、次の図形P7P3P8P5を取りだし、上述した1個目の図形の場合と同様にその高さを算出し、高さに応じて高さ情報を設定する(S1619〜S1622)。ここでは、図形P7P3P8P5の高さが1以上であるため、高さ情報は1とする。
【0072】
次に、S1623にて、対象図形の高さが1未満で、且つ次の図形の高さが1以上か否かを判断し、ここでは、この条件を満たすため、S1624にて、補正を行い、左辺は点P9、右辺は点P10とする。尚、点P9と点P10の座標は、式1、式2を用いて算出する。次に、上記補正の有無に関わらず、S1625にて、対象図形を出力の精度の単位に変換する。
【0073】
次に、S1626にて、対象図形情報を前の図形情報に、また、次の図形情報を対象図形情報に持ち替え、S1627にて、最後の図形まで取り出したか否かを判断し、取り出しを終了していなければ、S1618に戻り、次の図形を取り出し、以降、全ての図形の取り出しが終了するまでS1619〜S1626の処理を繰り返す。
対象図形がP7P3P8P5の時は、S1623の判定で対象図形の高さが1以上となるため補正は行わず、次のS1625にて、出力の精度への単位変換を行う。
【0074】
ところで、実施例3では、例えば、図18(A)のように、高さが1未満の2個の図形が隣接している図形を補正すると、図18(B)の斜線部分のように、本来描画すべき長さの半分しか描画されなくなるという現象が生じる。
そこで、実施例4では、高さが1以上の図形(分割図形)に隣接する高さが1未満の図形のみを補正するようにしたので、補正によって半分の長さの描画になったとしても、隣接する図形の描画により、補正による形状の変化が目立たなくなる。また、補正を行う条件(出力精度)を設定することにより、実施例2と同様、描画図形の生成時間を短縮することができ、且つ、補正による性能の悪化を最小限に抑えることができる。
【実施例5】
【0075】
図23は本発明の実施例5による図形処理装置のブロック構成図である。
実施例5による図形処理装置は、入力された図形情報191から抽出した座標情報と図形修飾情報195に基づき、描画すべき図形を生成する図形生成部192と、図形生成部192で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部193と、ラスタデータ生成部193で生成されたラスタデータを出力装置(図示せず)に出力可能なラスタデータ出力部194とを有する。
【0076】
上記図形生成部192は、図形情報191から抽出された座標情報と図形修飾情報195とから、実際に描画可能な描画領域を座標情報として算出する描画領域算出部1921と、装置情報196から得た有効記憶領域サイズにより、補正の処理方法を判断する補正処理判断部1922と、描画図形の視覚的な品質を向上するため、描画領域算出部1921で算出した描画領域の座標情報を補正する形状補正図形分割部1923と、描画時に描画欠けが発生しないように補正をすると共に、ラスタデータ生成前の中間データのサイズを縮小化する形状変更図形分割部1924とを有する。尚、上記装置情報196には、装置の出力精度や装置における有効記憶領域サイズ(使用可能なメモリ(RAM)領域サイズ)等の情報が含まれている。
【0077】
図24は上記形状補正図形分割部1923の詳細を示すブロック構成図であり、描画領域算出部1921で算出された描画領域の座標情報を入力する座標情報入力部321と、座標情報入力部321に入力された図形を、ラスタデータを作成し易くするために分割する描画領域分割部322と、描画領域分割部322にて分割された描画領域の高さを算出し、その高さにより描画領域の補正が必要か否かを判別する補正判別部323と、補正が必要と判断された場合に補正を行う形状補正部324と、描画領域分割部322や形状補正部324で生成された描画領域の各頂点座標を出力の精度に変換する単位変換部325と、図形分割の終了を判定する終了判定部326と、出力の精度に変換された描画領域をラスタデータ生成部193に出力する描画領域出力部327とを有する。形状補正部324では、形状を重視してよりきれいな描画を行えるように補正を行う。
図25は形状変更図形分割部1924の詳細を示すブロック構成図である。形状変更図形分割部1924の構成は、上記形状補正図形分割部1923と略同様であるが、形状変更図形分割部1924が、描画の有無を重視し、且つ、中間データのサイズを縮小化するように補正を行う描画変更部404を有する点で相違している。
【0078】
次に、実施例5による図形処理装置の動作を図23、図25、図26、図27に基づき、図6、図9を用いて詳細に説明する。
図26は図形生成部の動作フローチャートを示し、図27は形状変更図形分割の動作フローチャートを示す。尚、実施例5においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0079】
先ず、図26のS2601にて、入力された図形情報191から線分P1P2の座標情報を取り出し、線分修飾情報に従い、線分幅付け処理(S2602)を行う。これらの動作は実施例1と同様である。この段階で、実際の描画図形の形状や大きさが図6のように決定され、その座標情報が図11に示すように表現される。
【0080】
次に、S2603にて、有効記憶領域のサイズより補正の方法を判別し、有効記憶領域が充分ある場合は、S2604の形状補正図形分割で描画図形の形状を補正し、有効記憶領域が十分に無い場合は、S2605の形状変更図形分割で描画図形の形状の変更を行う。
ここで、有効記憶領域のサイズ基準値は、出力装置の特性を考慮し、より効率的な処理が行え、且つ、妥当な処理速度が得られるように設定する。或いは、有効記憶領域のサイズを変更可能にして、様々な実験を実施して最善の値を設定するようにしても良い。尚、本実施例では、判別基準となる上記有効記憶領域サイズの基準値は、例えば、8〜16Mbyteに設定している。
S2604、またはS2605の処理が終了した後は、S2606にて、描画すべき線分がまだ存在するか否かを判断し、存在する場合は、S2601に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、図形生成の動作を終了し、ラスタデータ生成部193にて、ラスタデータの生成を行い、生成されたラスタデータをラスタデータ出力部194を介して図示しない出力装置に出力する。
【0081】
上記した形状補正図形分割S2604については、図12に示す実施例2の補正有図形分割(S1205)、すなわち、図8に示す実施例1の補正有図形分割と同様であるため、詳細の説明を省略する。補正なしの場合、図9の図形は、図10の(B)のように描画されるが、本実施例の補正を行うことにより、図10の(A)のように描画される。
【0082】
上述の形状補正図形分割(S2604)では、図9のように面積のある図形に対しては非常に有効だが、例えば、図29(A)のような細い線画を表現すると、図29(B)のように表現しきれない場合(描画の欠けP)が発生する。そこで、このような細い線画の場合は、形状の違いよりも描画の有無を重視し、表現すべき描画を全て表現できるように形状変更図形分割(S2605)にて、補正を行う。
【0083】
以下、上記した形状変更図形分割の動作を図27に基づき、図28、図32を用いて説明する。
本実施例では、入力された1線分P1P2を元に、図31に示す図形の描画を行う例を説明する。図33は描画の際の図形情報の形式を示す。
形状変更図形分割の基本的な動作は、図8に示す実施例1の補正有図形分割と略同様であり、補正有図形分割がS811で右左辺の形状補正を行うのに対し、図27の形状変更図形分割では、S2711で形状変更を行う点が相違している。
すなわち、S2710で、取り出した分割図形が三角形であれば、その高さを算出し、出力精度での1以上の高さがあるか否かを判断し、高さが1未満の時は、S2711で、図形の形状変更を行う。
【0084】
先ず、図32において、最初の分割図形である三角形P3P4P5が確定する。ここでは、高さが1未満の三角形であるとしており、S2711で図形の形状変更を行う。図28(A)のように、三角形P3P4P5の描画範囲の広い部分が描画できるように、左辺P3P4の点は最左点P4に、右辺P3P5の点は最右点P5にし、横方向位置が点P4から点P5まで、縦方向位置が点P3から高さ1とする矩形に補正する。尚、点P5、P3、P4は高さが出力精度での1未満の三角形の頂点であるため、いずれの点も出力精度に換算した時の縦方向の位置は同じになる。
次の分割図形である三角形P4P6P7は、高さが1未満の三角形であるため、S2711にて、図形の形状変更を行う。三角形P4P6P7の描画範囲の広い部分が描画できるように、左辺P6P7の点は最左点P6に、右辺P4P7の点は最右点P4にし、横方向位置が点P6から点P4まで、縦方向位置が点P7から高さ1とする矩形に補正する。
尚、点P6、P7、P4は高さが出力精度での1未満の三角形の頂点であるため、いずれの点も出力精度に換算した時の縦方向の位置は同じになる。上記補正により、図32に示す図形は、図28(A)のように描画される。
【0085】
以上、実施例5によれば、装置の有効記憶領域サイズが所定値より小さい場合、ラスタデータに展開するための中間データを三角形による表現から矩形による表現にしたので、実施例1の効果に加え、図29(A)のような細い線画を表現する場合には、図29(B)のような描画の欠けPも最小限に抑えることができる。
すなわち、図31のような細い線画を既述した形状補正分割にて補正すると、図28(B)のような描画の欠けPが生じるが、実施例5の形状変更図形分割にて補正することにより、この描画の欠けPを最小限に抑えることができる。
【0086】
また、この方法によれば、図30に示す図形(三角形B1B2B3、矩形A1A2B3B2)において、三角形B1B2B3を表現するには、例えば、(A)に示すように、B1のX座標とY座標(B1x、B1y)、B2のX座標とY座標(B2x、B2y)、B3のX座標(B3x)の、合計5点分の座標情報が必要となるが、矩形A1A2B3B2を表現するには、例えば、(B)に示すように、A1のX座標とY座標(A1x、A1y)と矩形A1A2B3B2の幅(w)と高さ(h)の、合計4点の情報が有れば十分である。
このように、矩形表現の場合は、三角形表現に比べて情報量も少なくて済むため、本装置の記憶領域の使用サイズを縮小でき、記憶領域を効率よく使用できる。加えて、矩形表現の場合では、中間データからラスタデータに変換する際の算出処理が単純化されるため、処理速度も向上する。
【産業上の利用可能性】
【0087】
本実施例は、螺旋や線画を描画・表示または印刷する装置の線画処理全般に有効的に利用可能であるが、加工を施した文字や図を描画・表示または印刷する場合にも、より有効的に利用可能である。また、コンピュータ上での処理で説明したが、プリンタ内の処理としても有効である。
【符号の説明】
【0088】
121、1921、2121 描画領域算出部
204、2308、2407 描画領域補正部
【技術分野】
【0001】
本発明は、円や多角形、線分等の図形を描写可能な図形処理装置、図形処理システム、および図形処理方法に関する。
【背景技術】
【0002】
従来、入力図形の座標情報や修飾情報(形状や大きさの情報)に基づいて描画形状(ラスタデータ)を生成し、文字や図形、または直線や曲線を描画する図形処理装置が知られている(例えば、特許文献1参照)。
通常、このような描画処理においては、ラスタデータの生成を容易にするため、中間データとして入力図形を三角形や台形等に分割する方法が採られている。その際、ラスタデータの精度を向上させるため、描画印刷時の画素単位よりも細かい座標単位で図形算出処理が行われ、その図形処理に基づいて実際に印刷される画素単位で描画が行われていた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−31951号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、従来の図形処理では、細かい座標単位から実際の画素単位の座標へと変換される際に、細かい座標単位で描画された図形は、この細かい座標単位を含む実際の画素単位で一律に描画されるように変換されていた。このため、例えば、高さが画素単位で1に満たない図形の場合では、全て1画素として描画されるため、本来意図した形状とは異なった図形が描画されるという問題があった。
【0005】
本発明は、上記問題に鑑みてなされたもので、ラスタデータ生成の際の視覚的な品質を向上し、本来の形状に近い図形を描画できる図形処理装置、図形処理システム、および図形処理方法を提供することを目的としている。
【課題を解決するための手段】
【0006】
すなわち、本発明の図形処理装置は、入力図形の座標情報を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、上記座標情報の走査方向と垂直な方向の長さに応じて上記描画領域を補正する描画領域補正部を有することを特徴としている。
【0007】
また、本発明の図形処理システムは、図形処理装置と、この図形処理装置にて生成された入力図形の描画データを入力して画像を形成する出力装置とを備えることを特徴としている。
【0008】
また、本発明の図形処理方法は、入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、上記座標情報の走査方向と垂直な方向の長さに応じて上記描画領域を補正することを特徴としている。
【発明の効果】
【0009】
描画領域算出部で算出された描画領域を補正する描画領域補正部を有するので、本来描画しようとする図形の形状とほぼ同じ描画を行うことが可能となり、ラスタデータ生成の際の視覚的な品質を向上させることができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施例1による図形処理装置のブロック構成図である。
【図2】実施例1による補正有図形分割部のブロック構成図である。
【図3】分割図形の座標情報により作成される実際の描画図形を示す図である。
【図4】図形情報の形式を示す図である。
【図5】実施例1による図形生成部のフローチャートである。
【図6】図7の線分情報により描画される図形を示す図である。
【図7】線分情報の形式を示す図である。
【図8】実施例1による補正有図形分割のフローチャートである。
【図9】補正有図形分割の説明図である。
【図10】図形情報に基づき作成される実際の描画図形を示す図である。
【図11】図6の図形情報の形式を示す図である。
【図12】実施例2による図形生成部のフローチャートである。
【図13】実施例2による補正無図形分割のフローチャートである。
【図14】実施例3による補正有図形分割のフローチャートである。
【図15】各分割図形情報の形式を示す図である。
【図16】実施例4による補正有図形分割のフローチャート(その1)である。
【図17】実施例4による補正有図形分割のフローチャート(その2)である。
【図18】高さ1未満の2つの分割図形でなる図形の補正を示す図である。
【図19】本発明の実施例2による図形処理装置のブロック構成図である。
【図20】実施例2による補正無図形分割部のブロック構成図である。
【図21】実施例3による補正有図形分割部のブロック構成図である。
【図22】実施例4による補正有図形分割部のブロック構成図である。
【図23】本発明の実施例5による図形処理装置のブロック構成図である。
【図24】実施例5による形状補正図形分割部のブロック構成図である。
【図25】実施例5による形状変更図形分割部のブロック構成図である。
【図26】実施例5による図形生成部のフローチャートである。
【図27】実施例5による形状変更図形分割のフローチャートである。
【図28】実施例5による形状変更図形分割補正の説明図である。
【図29】細い線画の描画を示す図である。
【図30】三角形と矩形における情報量の違いを示す説明図である。
【図31】図33の線分情報により描画される図形を示す図である。
【図32】実施例5による形状変更図形分割の説明図である。
【図33】図32の図形情報の形式を示す図である。
【発明を実施するための形態】
【0011】
以下、図1〜図33に基づいて本発明の実施の形態を説明する。
【実施例1】
【0012】
図1は本発明の実施例1による図形処理装置のブロック構成図である。
実施例1による図形処理装置は、入力された図形情報11から抽出した座標情報と図形修飾情報15に基づき、描画すべき図形を生成する図形生成部12と、図形生成部12で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部13と、ラスタデータ生成部13で生成された、例えば、1ページ分のラスタデータを出力装置(図示せず)に出力可能なバッファとしてのラスタデータ出力部14とを有する。
また、上記図形生成部12は、図形情報11から抽出された座標情報と図形修飾情報15から、実際に描画可能な描画領域を座標情報として算出する描画領域算出部121と、描画図形の視覚的品質を向上するため、描画領域算出部121で算出された描画領域の座標情報を補正する補正有図形分割部122とを有する。
【0013】
図2は、実施例1による補正有図形分割部122の詳細を示すブロック構成図であり、補正有図形分割部122は、描画領域算出部121において算出された描画領域の座標情報を入力する座標情報入力部201と、ラスタデータを生成し易くするため、座標情報入力部201に入力された描画領域(図形)を分割する描画領域分割部202と、描画領域分割部202において分割された描画領域の高さを算出し、その高さにより描画領域の補正が必要か否かを判別する描画領域高さ判別部203と、補正が必要と判断された場合に補正を行う描画領域補正部204と、描画領域分割部202や描画領域補正部204で生成された描画領域の各頂点座標を出力の精度(すなわち、画素単位)に変換する単位変換部205と、図形分割の終了を判定する終了判定部206と、出力の精度に変換された描画領域をラスタデータ生成部13に出力する描画領域出力部207とを有する。
【0014】
尚、図形情報11には、図4に示すように、描画しようとする図形の頂点数や各頂点の(X,Y)座標情報が含まれ、また、図形修飾情報15には、描画図形の大きさや形を決定する拡大・縮小率や線分描画に必要な線幅、線分の端点や接続点の情報、線分の破線情報等、描画図形を修飾する情報が含まれる。
【0015】
次に、実施例1による図形処理装置の動作を図1、図2、図5、図8に基づき、図6、図9を用いて詳細に説明する。
図5は、実施例1による図形生成部12のフローチャートを示し、図8は、補正有図形分割のフローチャートを示す。尚、実施例1では、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示す図形のように所定幅の線分の描画を行う例を説明する。
【0016】
先ず、図5のS501にて、入力された情報図形情報11から線分P1P2の座標を取り出す。次に、S502の線分幅付け処理にて、図形修飾情報15の線幅情報に従い線幅を付与し、図6に示す描画図形P3P4P5P6の各頂点座標を算出する。
この段階で、実際の描画図形の形状や大きさが図6のように決定され、その座標情報が図11に示すように表現される。
【0017】
次に、S503にて、後述する補正有図形分割を行い、S504にて、描画すべき線分が存在するか否かを判断し、存在する場合は、S501に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部13において後述する座標情報に基づきラスタデータを生成する。生成されたラスタデータは、ラスタデータ出力部14を介して、図示しない画像形成装置に出力され、画像形成装置において、上記ラスタデータに基づいて画像(文字、図形、線画等)が形成される。
尚、画像形成装置は、プリントヘッドと、該プリントヘッドにて露光されて、表面に潜像が形成される像担持体を備える出力装置、例えば、プリンタである。
【0018】
以下、上述した補正有図形分割(S503)の動作を、図8に基づき、図9を用いて説明する。
先ず、図8のS801で、入力座標(図5のS503の直前までに決定した図形P3P4P5P6の座標情報)より、分割すべき図形の縦方向(X方向)の最上位位置、ここでは、点P6を検出する。次に、S802にて、この検出点P6から図形上において右回りと左回りにそれぞれ次の点を一つずつ読み出し(P3とP5)、検出点P6から左右2線分を取り出す。
次に、S803にて、取り出した2線分の下端の縦方向位置を比較し、左辺が上位位置ならS804、右辺が上位位置ならS808、左右同位置ならS806の処理を行う。
【0019】
ここでは、左辺である線分P6P3の下端P3より、右辺である線分P6P5の下端P5の方が上位位置であるからS808へ進み、S808にて、P5の縦方向位置と同じ高さとなる左辺の点P7の横方向の座標を算出して点P7を決定する。これにより、最初の分割図形である三角形P6P7P5が確定する。次に、S809にて、左辺をP6P3からP7P3に持ち直し、右辺を次の線分P5P4に更新する。
【0020】
次に、S810で、取り出した分割図形(ここでは、三角形P6P7P5)の高さを算出し、出力精度での1以上の高さがあるか否かを判断し、高さが1未満の場合は、S811にて、分割図形の横方向位置の補正を行う。ここでは、三角形P6P7P5の高さは1未満であるとしているため、補正処理を行い、左辺は点P9、右辺は点P10とする。
【0021】
ここで、点P9と点P10の位置は以下のようにして算出する。但し、P9、P10、P6、P7、P5の座標位置をP9(P9x、P9y)、P10(P10x、P10y)、P6(P6x、P6y)、P7(P7x、P7y)、P5(P5x、P5y)のように定義し、算出式上で使用する。
(式1)
点P9(P9x、P9y)=(((P6x+P7x)÷2)、(P6y+P7y)÷2)
(式2)
点P10(P10x、P10y)=(((P6x+P5x)÷2)、(P6y+P5y)÷2)
尚、三角形P6P7P5の高さが1未満であると、点P9と点P10の縦方向位置は出力精度の単位で点P6や点P5と等しくなる。
【0022】
次に、S812にて、分割図形の精度を出力精度に変換する。分割図形の高さが1以上の場合は補正を行わず、S812で分割図形の精度を出力精度に変換する。
【0023】
次に、S813にて、分割が終了したか否かを判断し、ここでは未終了であるためS803に戻り、S809にて、更新した左辺P7P3と右辺P5P4を比較する。ここで、左辺P7P3の下端P3の位置より右辺P5P4の下端P4の位置が下位位置であるためS804に進み、P3の縦方向位置と同じ高さとなる右辺の点P8の横方向の座標を算出して点P8を決定する。これにより、次の分割図形である四角形P7P3P8P5が確定する。
次に、S805にて、右辺をP5P4からP8P4に持ち直し、左辺は次のP3P4に更新する。
【0024】
次に、S810にて、取り出した分割図形(四角形P7P3P8P5)の高さを算出し、出力精度での1以上の高さがあるか否かを判断する。ここでは、高さが1以上であるため補正は行わず、S812にて、分割図形の精度を出力精度に変換する。
【0025】
次に、S813にて、分割が終了したか否かを判断し、未終了であるためS803に戻り、S805で、更新した左辺P3P4と右辺P8P4を比較する。ここでは、右左辺の下端は共にP4であるためS806に進み、S806にて、分割図形P3P4P8を確定する。
次に、S807にて、右左辺の更新を行い、分割は終了する。
【0026】
次に、図3(A−1)、(B−1)に基づき、上述の処理により得た分割図形の座標情報を元に、実際の画素単位の座標では、どのように描画するかについて説明する。
例えば、図3(A−1)に示すような、出力精度での高さが1未満の三角形P6P7P5を描画する場合は、先ず、式1により、線分P6P7の中点座標P9を算出すると共に、式2により、線分P6P5の中点座標P10を算出する。
本実施例では、各中点座標(分割図形の精度)を実際の画素単位の座標(出力の精度)に変換する。図3における1マスは、600dpiにおける1dotが置かれる位置を示している。具体的には、図3(A−1)の矢印aで示すように、中点座標P9をその座標点に最も近い実際の画素単位の座標P6’に変換し、同様に、矢印bで示すように、中点座標P10をP10’に変換する。そして、変換先の座標P6’と座標P10’を含む画素のみを描画する。
【0027】
また、図3(A−2)に示すような、出力精度での高さが1未満で、図3(A−1)の図形とは対称的な三角形P3P4P8を描画する場合は、式3により線分P3P4の中点座標P11を算出すると共に、式4により線分P8P4の中点座標P12を算出し、矢印a示すように、中点座標P11をP11’に変換し、矢印bに示すように、中点座標P12をP12’に変換する。そして、P11’、P12’を含む各画素を描画し、さらにその間の画素を描画する。
尚、高さが1以上の図形に関しては、従来技術と同様に図形の存在する位置の画素を描画する。
以上、本実施例によれば、図6に示す幅のある線分P3P4P5P6は、図10(A)に示す形状に描画される。
【0028】
尚、本実施例では、図3(A)、(B)のような三角形の補正について説明したが、例えば、図3(C)、(D)、(E)、(F)のような三角形についても全く同様であり、この場合、算出する座標は下式3、4のようになる。
(式3)
(((q1x+q2x)÷2)、(q1y+q2y)÷2)
(式4)
(((q1x+q3x)÷2)、(q1y+q3y)÷2)
【0029】
ここで、従来技術による描画方法を図3(B−1)、図3(B−2)を用いて説明する。
図3(B−1)に示すような、高さが1未満の三角形P6P7P5を描画する場合は、頂点P7をその座標点に最も近い実際の画素単位の座標P7’に変換すると共に、頂点P5を座標P5’に変換し、変換先の座標P7’、P5’を含む画素を描画し、さらにその間の画素を描画する。
【0030】
また、図3(B−2)に示すような、図3(B−1)の図形とは対称的な三角形P3P4P8を描画する場合は、頂点P3をその座標点に最も近い実際の画素単位の座標P3’に、頂点P8を座標P8’に変換する。次に、変換先の座標P3’、P8’を含む画素を描画し、さらにその間の画素を描画する。
高さが1以上の図形に関しては、図形の存在する位置の画素を描画する。
以上、従来技術によれば、図6に示す幅のある線分P3P4P5P6は、図10(B)に示す形状に描画される。
【0031】
このように、実施例1による描画では、特に、線分P5P6、および線分P3P4については、従来技術による描画のように、P5とP6、P3とP4間の全ての画素を描画するのではないため、各線分が傾斜していることが明確に表現される。
【0032】
以上、実施例1では、説明を簡素化するため、接続部分や端点付加形状のない線分描画について述べたが、これに限定されるものではなく、接続部分や端点付加形状のある図形、或いは、多角形や円等の図形についても勿論適用可能であり、線分描画の場合と同様の効果が得られるものである。
【0033】
また、実施例1では、中間データ作成のための図形分割を図形の縦方向の位置を基準として、その上位位置から順に分割して処理するようにしたが、これは一例であって、分割の基準となる方向は、ラスタデータ変換の際の効率を考慮し、例えば、縦方向位置の下位位置から上位位置へ分割して処理しても良く、また、横方向位置の左から右、或いは、右から左へ順に分割して処理しても良い。但し、何れの場合も、補正方向は処理基準方向に対して垂直方向となる。
【0034】
また、実施例1では、ラスタデータへ変換する際に、図形分割により中間データを作成して各描画図形に対する座標情報の補正を行ったが、中間データは必ずしも作成する必要はなく、例えば、図9に示す四角形P3P4P5P6から直接ラスタデータに変換することも勿論可能であり、実施例1と同等の効果が得られる。この場合、三角形P6P7P5や三角形P3P4P8に相当する部分で、実施例1と同様の補正を行えば良い。
【0035】
以上のことは、実施例1に限らず、後述する実施例2〜5についても同様である。
【0036】
以上、実施例1によれば、図形描画をする際、ラスタデータに展開しようとする部分の展開基準方向(高さ方向)の変化量が出力精度での1未満であった時、基準方向と垂直な方向(横方向)を補正することにより、本来描画しようとする図形とほぼ同じ形状の描画を行うことが可能となり、ラスタデータ生成の際の視覚的な品質を向上することができる。
【実施例2】
【0037】
図19は本発明の実施例2による図形処理装置のブロック構成図である。
実施例2による図形処理装置は、入力された図形情報211から得た座標情報と図形修飾情報215に基づき、描画すべき図形を生成する図形生成部212と、図形生成部212で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部213と、ラスタデータ生成部213で生成されたラスタデータを出力装置(図示せず)に出力可能なラスタデータ出力部214とを有する。
【0038】
また、上記図形生成部212は、図形情報211から得られた座標情報と図形修飾情報215から、実際に描画可能な描画領域を座標情報として算出する描画領域算出部2121と、図形修飾情報215の出力精度より描画領域の補正が必要か否かを判断する出力精度判別部2122と、描画図形の視覚的な品質を向上するため、描画領域算出部2121で算出された描画領域の座標情報を補正する補正有図形分割部2124と、描画領域の補正をしない補正無図形分割部2123とを有する。
尚、上記補正有図形分割部2124の構成は、図1に示す実施例1の補正有図形分割部122と同様であり、説明は省略する。
【0039】
図20は補正無図形分割部2123の詳細を示すブロック構成図であり、補正無図形分割部2123、描画領域算出部2121で算出された描画領域の座標情報を入力する座標情報入力部221と、座標情報入力部221に入力された描画領域(図形)を、ラスタデータを作成し易くするために分割する描画領域分割部222と、描画領域分割部222にて、分割された描画領域の各頂点座標を出力の精度に変換する単位変換部223と、図形分割の終了を判定する終了判定部224と、描画領域をラスタデータ生成部213に出力する描画領域出力部225とを有する。図形情報211、図形修飾情報215については、実施例1と同様であるが、図形修飾情報215には、出力の精度情報が含まれる。
【0040】
次に、実施例2による図形処理装置の動作を図19、図20、図12、図13に基づき、図6、図9を用いて詳細に説明する。
図12は、実施例2による図形生成部212のフローチャートを示し、図13は補正無図形分割のフローチャートを示す。尚、実施例2においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0041】
先ず、図12のS1201にて、入力された図形情報211から線分P1P2の座標情報を取り出し、図形修飾情報215に従い、線分幅付け処理(S1202)を行う。これらの動作は実施例1と同様である。この段階で、実際の描画図形の形状や大きさが図6のように決定され、その座標情報が図11に示すように表現される。
【0042】
次に、S1203にて、図形修飾情報215に従い、解像度(出力精度)を判定する。出力精度が粗い(例えば、300dpi指定)場合は、S1205の補正有図形分割により描画図形の座標情報を補正し、出力の精度が細かい(例えば、600dpi以上指定)場合は、描画図形の座標情報の補正は行わず、S1204にて、描画図形の分割だけを行う。
ここで、上記出力精度は、出力装置の特性を考慮し、視覚的に向上した描画が得られるように設定されるもので、本実施例では、判定基準(所定値)となる出力精度は、例えば、600dpiとしている。
【0043】
尚、S1209の補正有図形分割は、実施例1の補正有図形分割(図8参照)と同様であるため説明は省略する。この補正による描画図形は、図10(A)となる。
【0044】
次に、上記補正無図形分割(S1204)の動作を図13に基づき、図9を用いて説明する。本フローチャートの動作は、図8の補正有図形分割の動作と略同様であり、図形分割後に補正処理(S811)を行わない点が図8と相違する。
【0045】
先ず、図13のS1301にて、入力座標(図12のS1203直前までに決定した図形P3P4P5P6の座標情報)で分割すべき図形の縦方向の最上位位置、ここでは、点P6を検出する。次に、S1302にて、この検出点P6から右回りと左回りにそれぞれ次の点を一つずつ読み出し、検出点P6から左右2線分を取り出す。
次に、S1303にて、取り出した2線分の下端の縦方向位置を比較し、左辺が上位位置ならS1304、右辺が上位位置ならS1308、左右同位置ならS1306の処理を行う。
【0046】
ここでは、左辺である線分P6P3の下端P3より、右辺である線分P6P5の下端P5の方が上位位置であるためS1308に進み、S1308にて、P5の縦方向位置と同じ高さとなる左辺の点P7の横方向の座標を算出して点P7を決定する。これにより、最初の分割図形である三角形P6P7P5が確定する。次に、S1309にて、左辺をP6P3からP7P3に持ち直し、右辺は次の線分P5P4に更新する。
【0047】
次に、S1310にて、取り出した分割図形(ここでは、三角形P6P7P5)の精度を出力の精度に変換する。
次に、S1311にて、分割が終了したか否かを判断し、まだ終了していないためS1303に戻り、S1309にて、更新した左辺P7P3と右辺P5P4を比較する。ここで、左辺P7P3の下端P3の位置より右辺P5P4の下端P4の位置が下位位置であるためS1304に進み、点P3の縦方向位置と同じ高さである右辺の点P8の横方向の座標を算出し、点P8を決定する。これにより、次の分割図形である四角形P7P3P8P5が確定する。
次に、S1305にて、右辺をP5P4からP8P4に持ち直し、左辺は次の線分P3P4に更新する。そして、次に、S1310で分割図形の精度を出力の精度に変換する。
【0048】
次に、S1311にて、分割が終了したか否かを判断し、未終了であるのでS1303に戻り、S1305にて、更新した左辺P3P4と右辺P5P4を比較する。ここでは、右左辺の下端は共にP4であるためS1306に進み、S1306で分割図形P3P4P8を確定する。次に、S1307にて、右左辺の更新を行い、分割は終了する。次に、S1310にて、分割図形の精度を出力の精度に変換する。
【0049】
次に、図12のS1206にて、描画すべき線分が存在するか否かを判断し、存在する場合は、S1201に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部213においてラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部214を介して図示しない出力装置(画像形成装置)に出力する。
【0050】
以上、補正無図形分割処理により、図9の図形が補正されずに、図10の(B)補正なし例のような描画になる。図10の(A)補正有り例に比べて、図形の形状が崩れているように見えるが、出力精度が細かいため、その崩れは目立たない。
【0051】
以上、実施例2によれば、出力精度が所定値より細かい場合は、無補正でも図形の形状乱れが目立たないことに注目し、出力精度が所定値より粗い場合にのみ補正するようにしたので、実施例1の効果に加え、出力精度が細かい場合の補正処理時間を削減し、描画図形の生成時間を短縮することができる。
【実施例3】
【0052】
実施例3による図形処理装置の構成は、図1に示す実施例1と基本的には同様であるが、実施例3の場合は、補正有図形分割部122の構成が実施例1と異なる。
【0053】
図21は、実施例3による補正有図形分割部のブロック構成図であり、描画領域算出部121において算出された描画領域の座標情報を入力する座標情報入力部2301と、ラスタデータを生成し易くするため、座標情報入力部2301に入力された描画領域(図形)を分割する描画領域分割部2302と、上記分割処理の終了を判定する分割終了判定部2303と、分割処理により生成された各々の図形の位置関係(各図形の生成順序)を判別する描画領域順序判別部2304と、1つ目の分割図形に対し、その高さより補正が必要か否かを判別する1つ目の描画領域高さ判別部2305と、最後の分割図形に対し、その高さより補正が必要な高さか否かを判別する最後の描画領域高さ判別部2306と、補正が必要と判別された分割図形に対して補正を行う描画領域補正部2308と、全ての分割図形の高さ判別が終了したか否かを判定する終了判別部2307と、分割・生成された全ての図形の各頂点座標を出力の精度に変換する単位変換部2309と、出力の精度に変換された描画領域をラスタデータ生成部13に出力する描画領域出力部2310を有する。
【0054】
次に、実施例3による図形処理装置の動作を図1、図21、図5、図14に基づき、図6、図9を用いて詳細に説明する。図14は実施例3による補正有図形分割のフローチャートを示す。
実施例3の基本動作は、図5のフローチャートで示す実施例1の動作と同様であるが、S503の補正有図形分割の動作が相違している。尚、実施例3においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0055】
先ず、図5のS501にて、入力された図形情報11から線分P1P2の座標情報を取り出し、図形修飾情報215に従い、線分幅付け処理(S502)を実施例1と同様に行う。この段階で、実際に描画する図形の形状や大きさが図6のように決定され、その座標情報が図11のように表現される。
【0056】
次に、S503にて、後述する補正有図形分割を行い、S504で描画すべき線分が存在するか否かを判断し、存在する場合は、S501に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば本図形生成の動作を終了し、ラスタデータ生成部13において座標情報に基づきラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部214を介して図示しない出力装置に出力する。
【0057】
以下、上記した補正有図形分割の動作を図14に基づき説明する。
先ず、図14のS1401にて、入力座標(図5のS503の直前までに決定した図形P3P4P5P6の座標情報)より分割すべき図形の縦方向の最上位位置、ここでは、点P6が検出される。次に、S1402にて、この検出点P6から右回りと左回りにそれぞれ次の点を一つずつ読み出し、検出点P6から左右2線分を取り出す。
次に、S1403にて、取り出した2線分の下端の縦方向位置を比較し、左辺が上位位置ならS1404、右辺が上位位置ならS1408、左右同位置ならS1406の処理を行う。
【0058】
ここでは、左辺である線分P6P3の下端P3より、右辺である線分P6P5の下端P5の方が上位位置であるからS1408へ進み、S1408にて、P5の縦方向位置と同じ高さとなる左辺の点P7の横方向の座標を算出して点P7を決定する。これにより、最初の分割図形である三角形P6P7P5が確定する。次に、S1409にて、左辺をP6P3からP7P3に持ち直し、右辺を次の線分P5P4に更新する。
【0059】
次に、S1410にて、分割が終了したか否かを判断し、未終了であるためS1403に戻り、S1409にて、更新した左辺P7P3と右辺P5P4を比較する。左辺P7P3の下端P3の位置より、右辺P5P4の下端P4の方が下位位置であるためS1404に進み、S1404にて、P3の縦方向位置と同じ高さとなる右辺の点P8の横方向の座標を算出して点P8を決定する。これにより、次の分割図形である四角形P7P3P8P5が確定する。次に、S1405にて、右辺をP5P4からP8P4に持ち直し、左辺を次の線分P3P4に更新する。
【0060】
次に、S1410にて、分割が終了したか否かを判断し、未終了であるためS1403に戻り、S1405にて、更新した左辺P3P4と右辺P5P4を比較する。右左辺の線分の下端は共にP4であるためS1406に進み、S1406で分割図形P3P4P8が確定する。次に、S1407にて、右左辺の更新を行い、分割は終了する。
尚、この一連の分割処理にて確定した各分割図形は、例えば図15に示すように、上位側より順序立てて管理しておく。
【0061】
次に、S1411にて、図15のように管理された1つ目の分割図形(図9の三角形P6P7P5)を取り出し、S1412にて、取り出した図形の高さを判断する。ここでは、高さが1未満であるため、S1413にて、他に分割図形が有るか否かを判断し、他の分割図形が存在する場合(取り出した図形の高さが出力精度での1未満で、且つ他の図形に隣接している場合)にのみ、S1414にて、分割図形の横方向位置の補正を行い、左辺は点P9、右辺は点P10とする。尚、点P9と点P10の座標は、式1、式2を用いて算出する。
次に、上記補正の有無に関わらず、S1415で分割図形を出力の精度の単位に変換する。
【0062】
次に、S1416にて、描画すべき線分が存在する否かを判断し、存在する場合は、S1417にて、図15のように管理された次の分割図形(図9の四角形P7P3P8P5)を取り出し、S1418にて、取り出した分割図形を出力の精度の単位に変換すると共に、S1416に戻り、最後の分割図形になるまで上記処理を繰り返す。S1416にて、最後の分割図形と判断すると、S1419にて、最後の分割図形の高さを算出し、出力精度での高さが1以上であるか否かを判断し、ここでは、高さが1未満であるため、S1420にて、分割図形の横方向位置の補正を行い、左辺は点P11、右辺は点P12とする。尚、点P11と点P12の座標は、式3、式4を用いて算出する。
次に、上記補正の有無に関わらず、S1421にて、分割図形を出力の精度の単位に変換し、処理を終了する。
【0063】
以上、実施例3によれば、他の図形(分割図形)に隣接し、図形の端に位置する高さが1未満の図形のみを補正するようにたので、本補正により本来描画しようとする図形が半分の長さになったとしても、隣接する図形により、補正による形状の変化が目立たなくなる。また、補正を行う条件(出力精度)を設定することにより、実施例2と同様に、描画図形の生成時間を短縮することができ、且つ、処理時間等、補正による性能の悪化を最小限に抑えることができる。
【実施例4】
【0064】
実施例4による図形処理装置の構成は、図1に示す実施例1と基本的には同様であるが、実施例4の場合は、補正有図形分割部122の構成が実施例1と相違している。
【0065】
図22は実施例4による補正有図形分割部のブロック構成図であり、描画領域算出部121で算出された描画領域の座標情報を入力する座標情報入力部2401と、ラスタデータを作成し易くするため、座標情報入力部2401に入力された描画領域(図形)を分割する描画領域分割部2402と、上記分割処理の終了を判定する分割終了判定部2403と、分割処理により生成された各々の図形の数を判定する図形数判定部2404と、各分割図形の高さに応じて高さ情報を設定する描画領域高さ情報設定部2405と、その高さ情報により補正が必要か否かを判定する描画領域高さ情報判定部2406と、補正必要と判別された分割図形に対して補正を行う描画領域補正部2407と、補正の有無に関わらず、各頂点座標を出力の精度に変換する単位変換部2408と、全ての分割図形の高さ判別が終了した否か判定する終了判定部2409と、出力の精度に変換された描画領域をラスタデータ生成部13に出力する描画領域出力部2410とを有する。
【0066】
次に、実施例4による図形処理装置の動作を図1、図5、図16、図17、図22に基づき、図6、図9を用いて詳細に説明する。図16、図17は実施例4による補正有図形分割のフローチャートを示す。
実施例4の基本動作は、図5のフローチャートで示す実施例1の動作と同様であるが、S503の補正有図形分割の動作が相違している。尚、実施例4においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0067】
先ず、図5のS501にて、入力された図形情報11から線分P1P2の座標情報を取り出し、図形修飾情報15に従い、線分幅付け(S502)を実施例1と同様に行う。この段階で、実際に描画する図形の形状や大きさが図6のように決定され、その座標情報が、図11のように表現される。
【0068】
次に、S503にて、後述する実施例3による補正有図形分割を行い、S504にて、描画すべき線分が存在するか否かを判断し、存在する場合は、S501に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部13において座標情報に基づきラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部214を介して図示しない出力装置に出力する。
【0069】
以下、上記した実施例4による補正有図形分割の動作を図16、図17に基づき説明する。
S1601への入力座標は、図5のS503の直前までに決定された図形P3P4P5P6の座標情報となる。
以降、S1601〜S1610による図形の分割処理の動作は、実施例3のS1401〜S1410と同様であるため、動作の説明を省略する。
【0070】
次に、S1611にて、分割処理にて得られた図形が2個以上であるか否かを判断し、図形が1個の場合は、S1630にて、対象図形を出力の精度の単位に変換し、処理を終了する。
ここでは、図15に示すように、図形数は3つであるため、S1612にて、対象図形の高さ情報を初期状態の0に設定する。
【0071】
本実施例では、図形の高さ情報は、高さが1未満なら0、高さが1以上であれば1とし、対象図形、一つ前の図形、次の図形の、それぞれ3つの図形の高さ情報を管理しておく。
すなわち、S1613にて、最初の図形P6P7P5を図15より取り出し、S1614にて、その高さを算出する。次に、S1615にて、算出した高さを判定し、高さが1未満の時は、S1616にて、対象図形の高さ情報を0とし、1以上の時は、S1617にて、対象図形の高さ情報を1とする。ここでは、図形P6P7P5の高さは1未満とし、高さ情報を0とする。
次に、S1618にて、図15のように管理された、次の図形P7P3P8P5を取りだし、上述した1個目の図形の場合と同様にその高さを算出し、高さに応じて高さ情報を設定する(S1619〜S1622)。ここでは、図形P7P3P8P5の高さが1以上であるため、高さ情報は1とする。
【0072】
次に、S1623にて、対象図形の高さが1未満で、且つ次の図形の高さが1以上か否かを判断し、ここでは、この条件を満たすため、S1624にて、補正を行い、左辺は点P9、右辺は点P10とする。尚、点P9と点P10の座標は、式1、式2を用いて算出する。次に、上記補正の有無に関わらず、S1625にて、対象図形を出力の精度の単位に変換する。
【0073】
次に、S1626にて、対象図形情報を前の図形情報に、また、次の図形情報を対象図形情報に持ち替え、S1627にて、最後の図形まで取り出したか否かを判断し、取り出しを終了していなければ、S1618に戻り、次の図形を取り出し、以降、全ての図形の取り出しが終了するまでS1619〜S1626の処理を繰り返す。
対象図形がP7P3P8P5の時は、S1623の判定で対象図形の高さが1以上となるため補正は行わず、次のS1625にて、出力の精度への単位変換を行う。
【0074】
ところで、実施例3では、例えば、図18(A)のように、高さが1未満の2個の図形が隣接している図形を補正すると、図18(B)の斜線部分のように、本来描画すべき長さの半分しか描画されなくなるという現象が生じる。
そこで、実施例4では、高さが1以上の図形(分割図形)に隣接する高さが1未満の図形のみを補正するようにしたので、補正によって半分の長さの描画になったとしても、隣接する図形の描画により、補正による形状の変化が目立たなくなる。また、補正を行う条件(出力精度)を設定することにより、実施例2と同様、描画図形の生成時間を短縮することができ、且つ、補正による性能の悪化を最小限に抑えることができる。
【実施例5】
【0075】
図23は本発明の実施例5による図形処理装置のブロック構成図である。
実施例5による図形処理装置は、入力された図形情報191から抽出した座標情報と図形修飾情報195に基づき、描画すべき図形を生成する図形生成部192と、図形生成部192で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部193と、ラスタデータ生成部193で生成されたラスタデータを出力装置(図示せず)に出力可能なラスタデータ出力部194とを有する。
【0076】
上記図形生成部192は、図形情報191から抽出された座標情報と図形修飾情報195とから、実際に描画可能な描画領域を座標情報として算出する描画領域算出部1921と、装置情報196から得た有効記憶領域サイズにより、補正の処理方法を判断する補正処理判断部1922と、描画図形の視覚的な品質を向上するため、描画領域算出部1921で算出した描画領域の座標情報を補正する形状補正図形分割部1923と、描画時に描画欠けが発生しないように補正をすると共に、ラスタデータ生成前の中間データのサイズを縮小化する形状変更図形分割部1924とを有する。尚、上記装置情報196には、装置の出力精度や装置における有効記憶領域サイズ(使用可能なメモリ(RAM)領域サイズ)等の情報が含まれている。
【0077】
図24は上記形状補正図形分割部1923の詳細を示すブロック構成図であり、描画領域算出部1921で算出された描画領域の座標情報を入力する座標情報入力部321と、座標情報入力部321に入力された図形を、ラスタデータを作成し易くするために分割する描画領域分割部322と、描画領域分割部322にて分割された描画領域の高さを算出し、その高さにより描画領域の補正が必要か否かを判別する補正判別部323と、補正が必要と判断された場合に補正を行う形状補正部324と、描画領域分割部322や形状補正部324で生成された描画領域の各頂点座標を出力の精度に変換する単位変換部325と、図形分割の終了を判定する終了判定部326と、出力の精度に変換された描画領域をラスタデータ生成部193に出力する描画領域出力部327とを有する。形状補正部324では、形状を重視してよりきれいな描画を行えるように補正を行う。
図25は形状変更図形分割部1924の詳細を示すブロック構成図である。形状変更図形分割部1924の構成は、上記形状補正図形分割部1923と略同様であるが、形状変更図形分割部1924が、描画の有無を重視し、且つ、中間データのサイズを縮小化するように補正を行う描画変更部404を有する点で相違している。
【0078】
次に、実施例5による図形処理装置の動作を図23、図25、図26、図27に基づき、図6、図9を用いて詳細に説明する。
図26は図形生成部の動作フローチャートを示し、図27は形状変更図形分割の動作フローチャートを示す。尚、実施例5においても、描画図形の座標情報として図7に示す線分P1P2が入力され、図6に示すような図形の描画を行う例を説明する。
【0079】
先ず、図26のS2601にて、入力された図形情報191から線分P1P2の座標情報を取り出し、線分修飾情報に従い、線分幅付け処理(S2602)を行う。これらの動作は実施例1と同様である。この段階で、実際の描画図形の形状や大きさが図6のように決定され、その座標情報が図11に示すように表現される。
【0080】
次に、S2603にて、有効記憶領域のサイズより補正の方法を判別し、有効記憶領域が充分ある場合は、S2604の形状補正図形分割で描画図形の形状を補正し、有効記憶領域が十分に無い場合は、S2605の形状変更図形分割で描画図形の形状の変更を行う。
ここで、有効記憶領域のサイズ基準値は、出力装置の特性を考慮し、より効率的な処理が行え、且つ、妥当な処理速度が得られるように設定する。或いは、有効記憶領域のサイズを変更可能にして、様々な実験を実施して最善の値を設定するようにしても良い。尚、本実施例では、判別基準となる上記有効記憶領域サイズの基準値は、例えば、8〜16Mbyteに設定している。
S2604、またはS2605の処理が終了した後は、S2606にて、描画すべき線分がまだ存在するか否かを判断し、存在する場合は、S2601に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、図形生成の動作を終了し、ラスタデータ生成部193にて、ラスタデータの生成を行い、生成されたラスタデータをラスタデータ出力部194を介して図示しない出力装置に出力する。
【0081】
上記した形状補正図形分割S2604については、図12に示す実施例2の補正有図形分割(S1205)、すなわち、図8に示す実施例1の補正有図形分割と同様であるため、詳細の説明を省略する。補正なしの場合、図9の図形は、図10の(B)のように描画されるが、本実施例の補正を行うことにより、図10の(A)のように描画される。
【0082】
上述の形状補正図形分割(S2604)では、図9のように面積のある図形に対しては非常に有効だが、例えば、図29(A)のような細い線画を表現すると、図29(B)のように表現しきれない場合(描画の欠けP)が発生する。そこで、このような細い線画の場合は、形状の違いよりも描画の有無を重視し、表現すべき描画を全て表現できるように形状変更図形分割(S2605)にて、補正を行う。
【0083】
以下、上記した形状変更図形分割の動作を図27に基づき、図28、図32を用いて説明する。
本実施例では、入力された1線分P1P2を元に、図31に示す図形の描画を行う例を説明する。図33は描画の際の図形情報の形式を示す。
形状変更図形分割の基本的な動作は、図8に示す実施例1の補正有図形分割と略同様であり、補正有図形分割がS811で右左辺の形状補正を行うのに対し、図27の形状変更図形分割では、S2711で形状変更を行う点が相違している。
すなわち、S2710で、取り出した分割図形が三角形であれば、その高さを算出し、出力精度での1以上の高さがあるか否かを判断し、高さが1未満の時は、S2711で、図形の形状変更を行う。
【0084】
先ず、図32において、最初の分割図形である三角形P3P4P5が確定する。ここでは、高さが1未満の三角形であるとしており、S2711で図形の形状変更を行う。図28(A)のように、三角形P3P4P5の描画範囲の広い部分が描画できるように、左辺P3P4の点は最左点P4に、右辺P3P5の点は最右点P5にし、横方向位置が点P4から点P5まで、縦方向位置が点P3から高さ1とする矩形に補正する。尚、点P5、P3、P4は高さが出力精度での1未満の三角形の頂点であるため、いずれの点も出力精度に換算した時の縦方向の位置は同じになる。
次の分割図形である三角形P4P6P7は、高さが1未満の三角形であるため、S2711にて、図形の形状変更を行う。三角形P4P6P7の描画範囲の広い部分が描画できるように、左辺P6P7の点は最左点P6に、右辺P4P7の点は最右点P4にし、横方向位置が点P6から点P4まで、縦方向位置が点P7から高さ1とする矩形に補正する。
尚、点P6、P7、P4は高さが出力精度での1未満の三角形の頂点であるため、いずれの点も出力精度に換算した時の縦方向の位置は同じになる。上記補正により、図32に示す図形は、図28(A)のように描画される。
【0085】
以上、実施例5によれば、装置の有効記憶領域サイズが所定値より小さい場合、ラスタデータに展開するための中間データを三角形による表現から矩形による表現にしたので、実施例1の効果に加え、図29(A)のような細い線画を表現する場合には、図29(B)のような描画の欠けPも最小限に抑えることができる。
すなわち、図31のような細い線画を既述した形状補正分割にて補正すると、図28(B)のような描画の欠けPが生じるが、実施例5の形状変更図形分割にて補正することにより、この描画の欠けPを最小限に抑えることができる。
【0086】
また、この方法によれば、図30に示す図形(三角形B1B2B3、矩形A1A2B3B2)において、三角形B1B2B3を表現するには、例えば、(A)に示すように、B1のX座標とY座標(B1x、B1y)、B2のX座標とY座標(B2x、B2y)、B3のX座標(B3x)の、合計5点分の座標情報が必要となるが、矩形A1A2B3B2を表現するには、例えば、(B)に示すように、A1のX座標とY座標(A1x、A1y)と矩形A1A2B3B2の幅(w)と高さ(h)の、合計4点の情報が有れば十分である。
このように、矩形表現の場合は、三角形表現に比べて情報量も少なくて済むため、本装置の記憶領域の使用サイズを縮小でき、記憶領域を効率よく使用できる。加えて、矩形表現の場合では、中間データからラスタデータに変換する際の算出処理が単純化されるため、処理速度も向上する。
【産業上の利用可能性】
【0087】
本実施例は、螺旋や線画を描画・表示または印刷する装置の線画処理全般に有効的に利用可能であるが、加工を施した文字や図を描画・表示または印刷する場合にも、より有効的に利用可能である。また、コンピュータ上での処理で説明したが、プリンタ内の処理としても有効である。
【符号の説明】
【0088】
121、1921、2121 描画領域算出部
204、2308、2407 描画領域補正部
【特許請求の範囲】
【請求項1】
入力図形の座標情報を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、
前記座標情報の走査方向と垂直な方向の長さに応じて前記描画領域を補正する描画領域補正部を有することを特徴とする図形処理装置。
【請求項2】
前記描画領域補正部は、前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項3】
前記描画領域補正部は、描画時の解像度が所定値より粗い場合に、前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項4】
前記描画領域補正部は、描画領域算出部で算出された描画領域の内、端に位置する前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項5】
前記描画領域補正部は、描画領域算出部で算出された描画領域の内、前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項6】
前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項3に記載の図形処理装置。
【請求項7】
前記描画領域補正部は、図形処理装置が有する記憶手段の容量が所定値より小さい場合に、前記長さが画素単位で1に満たない描画領域部分の形状を変更することを特徴とする請求項1に記載の図形処理装置。
【請求項8】
請求項1から請求項7までの何れかに記載の図形処理装置と、当該図形処理装置にて生成された前記入力図形の描画データを入力して画像を形成する出力装置とを備えることを特徴とする図形処理システム。
【請求項9】
入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、
前記座標情報の走査方向と垂直な方向の長さに応じて前記描画領域を補正することを特徴とする図形処理方法。
【請求項10】
前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項11】
描画時の解像度が所定値より粗い場合に、前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項12】
算出された描画領域の内、端に位置する前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項13】
算出された描画領域の内、前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項14】
前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項11に記載の図形処理方法。
【請求項15】
図形処理装置が有する記憶手段の容量が所定値より小さい場合に、前記長さが画素単位で1に満たない描画領域部分の形状を変更することを特徴とする請求項9に記載の図形処理方法。
【請求項1】
入力図形の座標情報を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、
前記座標情報の走査方向と垂直な方向の長さに応じて前記描画領域を補正する描画領域補正部を有することを特徴とする図形処理装置。
【請求項2】
前記描画領域補正部は、前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項3】
前記描画領域補正部は、描画時の解像度が所定値より粗い場合に、前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項4】
前記描画領域補正部は、描画領域算出部で算出された描画領域の内、端に位置する前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項5】
前記描画領域補正部は、描画領域算出部で算出された描画領域の内、前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項1に記載の図形処理装置。
【請求項6】
前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項3に記載の図形処理装置。
【請求項7】
前記描画領域補正部は、図形処理装置が有する記憶手段の容量が所定値より小さい場合に、前記長さが画素単位で1に満たない描画領域部分の形状を変更することを特徴とする請求項1に記載の図形処理装置。
【請求項8】
請求項1から請求項7までの何れかに記載の図形処理装置と、当該図形処理装置にて生成された前記入力図形の描画データを入力して画像を形成する出力装置とを備えることを特徴とする図形処理システム。
【請求項9】
入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、
前記座標情報の走査方向と垂直な方向の長さに応じて前記描画領域を補正することを特徴とする図形処理方法。
【請求項10】
前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項11】
描画時の解像度が所定値より粗い場合に、前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項12】
算出された描画領域の内、端に位置する前記長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項13】
算出された描画領域の内、前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項9に記載の図形処理方法。
【請求項14】
前記長さが画素単位で1以上の描画領域と隣接する長さが画素単位で1に満たない描画領域部分の主走査方向位置を補正することを特徴とする請求項11に記載の図形処理方法。
【請求項15】
図形処理装置が有する記憶手段の容量が所定値より小さい場合に、前記長さが画素単位で1に満たない描画領域部分の形状を変更することを特徴とする請求項9に記載の図形処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【公開番号】特開2011−39986(P2011−39986A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−189300(P2009−189300)
【出願日】平成21年8月18日(2009.8.18)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願日】平成21年8月18日(2009.8.18)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】
[ Back to top ]