(57)【要約】【課題】  描画コマンドが原因となる白スジなどの画質劣化を防止し、高画質での画像出力を可能にした画像処理装置及び画像処理方法を提供する。【解決手段】  描画部１は、外部から描画コマンドを受け取って描画処理を行うが、描画コマンドがクリッピング描画を指示するものであるとき、補正部２による補正処理を行う。補正部２では、クリッピング領域の垂直方向の辺について、垂直から微少な傾きを有している場合に、クリッピング領域を広げるように当該辺を垂直に補正する。あるいは、クリッピング領域の水平方向の辺について水平から微少な傾きを有している場合に、クリッピング領域を広げるように当該辺を水平に補正する。これによって、クリッピング領域が隣接する場合でも、隙間が生じることなく、白スジによる画質劣化を防止することができる。【選択図】  図１
2006262213.tif 000002
【特許請求の範囲】
【請求項１】
描画コマンドを受け取って描画処理を行う画像処理装置において、描画コマンドがクリッピング描画を指示するものであるときクリッピング領域の微少な傾きを補正する補正手段と、前記補正手段によって必要に応じて補正された描画コマンドに従って描画処理を行う描画手段を有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記クリッピング領域の垂直方向の辺について垂直から微少な傾きを有している場合に、当該辺を垂直に補正することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、前記クリッピング領域の水平方向の辺について水平から微少な傾きを有している場合に、当該辺を水平に補正することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記補正手段は、前記クリッピング領域の長さが短い辺については補正処理を行わないことを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
描画コマンドを受け取って描画処理を行う画像処理方法において、描画コマンドがクリッピング描画を指示するものであるときクリッピング領域の微少な傾きを補正手段により補正し、必要に応じて補正された描画コマンドに従って描画手段により描画処理を行うことを特徴とする画像処理方法。
【請求項６】
前記クリッピング領域の垂直方向の辺について垂直から微少な傾きを有している場合に、当該辺を垂直に補正することを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記クリッピング領域の水平方向の辺について水平から微少な傾きを有している場合に、当該辺を水平に補正することを特徴とする請求項５に記載の画像処理方法。
【請求項８】
前記クリッピング領域の長さが短い辺については補正処理を行わないことを特徴とする請求項５ないし請求項７のいずれか１項に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画コマンドを受け取って描画処理を行う画像処理技術に関するものである。
【背景技術】
【０００２】
一般にコンピュータ上の情報をプリンタなどの出力装置に出力する際には、コンピュータ側のプリンタドライバなどにおいて、出力装置が解釈できるページ記述言語（ＰＤＬ）などの描画コマンドに変換して、出力装置に対して送信する。出力装置側では、例えば特許文献１のように、描画コマンドを受け取って解釈し、その描画コマンドに従って描画処理を行う。
【０００３】
このように、出力装置側ではコンピュータ側から送られてきた描画コマンドに従って描画処理を行うため、送られてきた描画コマンドに微細な誤差が存在すると、その誤差が描画結果に表れてしまうことがある。
【０００４】
図１０は、従来の描画処理による不具合の一例の説明図である。例えば図１０（Ａ）に示すイメージを出力装置で出力したいとする。コンピュータ側のドライバで描画コマンドを作成する際に、このようなイメージをクリッピングして描画指示を与えることがある。例えば図１０（Ｂ）においては、４つの横長の短冊状の部分にクリッピングする例を示している。このとき、ドライバの計算誤差などによって、水平であるべきクリッピング領域の辺が微少に傾いてしまうことがある。すると、図１０（Ｂ）からも分かるように、それぞれのクリッピング領域が連続せず、結果として図１０（Ｃ）に示すように、それぞれのクリッピング領域の隙間に白スジが発生し、画質が劣化してしまう。
【０００５】
図１１は、従来の描画処理において解像度変換を伴う場合の不具合の一例の説明図である。上述のような不具合は、入力解像度よりも出力解像度の方が高い場合にはさらに顕著となる。例えば入力解像度、出力解像度とも３００ＤＰＩの場合には、図１１（Ａ）に太線で示すようにクリッピング領域に１画素程度の隙間が生じていても、実際に描画処理を行う際には１画素の隙間は描画処理の際につぶれてしまう場合もある。
【０００６】
しかし、入力解像度が３００ＤＰＩ、出力解像度が６００ＤＰＩのシステムを考えると、１画素の隙間は６００ＤＰＩへの解像度変換の際に２画素の隙間となる。そのため、図１１（Ｂ）に示すように、この例では１画素の隙間はつぶれることなく画像に現れてしまう。出力解像度が高くなればなるほど、この隙間は拡大し（画素数が多くなり）、画質に大きく影響してしまうという問題があった。
【０００７】
【特許文献１】特開平１１−３４２５３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上述した事情に鑑みてなされたもので、描画コマンドが原因となる白スジなどの画質劣化を防止し、高画質での画像出力を可能にした画像処理装置及び画像処理方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明は、描画コマンドを受け取って描画処理を行う描画処理装置及び画像処理方法であって、描画コマンドがクリッピング描画を指示するものであるとき、クリッピング領域の微少な傾きを補正し、必要に応じて補正された描画コマンドに従って描画処理を行うことを特徴とするものである。例えば、クリッピング領域の垂直方向の辺について、垂直から微少な傾きを有している場合に、当該辺を垂直に補正する。あるいは、クリッピング領域の水平方向の辺について水平から微少な傾きを有している場合に、当該辺を水平に補正する。なお、長さが短い辺については補正処理を行わないように構成することができる。
【発明の効果】
【００１０】
本発明によれば、クリッピング領域の辺の微少な傾きを補正することによって、その傾きにより隣接するクリッピング領域との間に生じる隙間をなくすことができる。よって、補正後の描画コマンドに従って描画した画像には、クリッピング領域の隙間による白スジは発生せず、画質を向上させることができる。また、このような補正を行うことによって、高解像度で出力した場合でも白スジが発生しないことから、高画質モードでの画質に対する信頼性を向上させることができるという効果がある。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施の一形態を示すブロック図である。図中、１は描画部、２は補正部である。描画部１は、外部から描画コマンドを受け取って解釈する。描画コマンドがクリッピング描画を指示するものであるとき、補正部２を用いてクリッピング領域に対して補正処理を行う。そして、適宜補正された描画コマンドに従って描画処理を行い、描画結果を出力する。
【００１２】
補正部２は、描画部１で受け取った描画コマンドがクリッピング描画を指示するものであるとき、そのクリッピング領域の辺に微少な傾きが存在する場合に、その傾きを補正する。例えば、クリッピング領域の垂直方向の辺について垂直から微少な傾きを有している場合に、その辺を垂直に補正する。また、クリッピング領域の水平方向の辺について水平から微少な傾きを有している場合に、当該辺を水平に補正する。
【００１３】
このように補正部２において、クリッピング領域の辺の微少な傾きを補正することによって、例えば複数のクリッピング領域が隣接している場合でも、それらのクリッピング領域の間に隙間を作らないようにクリッピング領域を補正することができ、描画部１で描画した画像中に白スジが発生するのを防ぐことができる。
【００１４】
図２は、本発明の実施の一形態を実現するための一構成例を示すブロック図である。図中、１１はコンピュータ、１２はＬＡＮ、１３は画像処理装置、１４はプリンタエンジン、２１はＣＰＵ、２２は入力インタフェース、２３はＲＡＭ、２４はＲＯＭ、２５はプリンタエンジンインタフェース、２６は内部バスである。図２に示した構成では、１ないし複数のコンピュータ１１と本発明の画像処理装置１３とがＬＡＮ１２により接続された例を示している。通信路としてＬＡＮ１２に限らず、コンピュータ１１と画像形成装置１３とがケーブル等で直結される場合もあるし、他の通信路を介して接続される場合もある。また、この例では画像処理装置１３はプリンタの一部として機能し、画像処理装置１３からの出力がプリンタエンジン１４に渡され、画像が形成される。
【００１５】
画像処理装置１３は、この例ではＣＰＵ２１、入力インタフェース２２、ＲＡＭ２３、ＲＯＭ２４、プリンタエンジンインタフェース２５等を含み、これらが内部バス２６により接続されて構成されている。入力インタフェース２２は、ＬＡＮ１２を通じてコンピュータ１１から送られてくる描画コマンドを受け取り、ＲＡＭ２３に格納する。ＣＰＵ２１は、ＲＯＭ２４に格納されているプログラムに従って動作し、例えば図１に示した各部の機能を実行する。これにより、ＲＡＭ２３に格納された描画コマンドに従って描画処理を行い、またこのときに補正部２によるクリッピング領域の補正処理なども行って描画し、描画結果をＲＡＭ２３に格納する。描画された画像は、プリンタエンジンインタフェース２５によりプリンタエンジン１４に出力される。プリンタエンジン１４は、画像処理装置１３から渡された画像を、例えば用紙上などに形成する。
【００１６】
図３は、本発明の実施の一形態における動作の一例を示すフローチャートである。例えば図２に示したコンピュータ１１など、外部から描画コマンドを受け取ると、描画部１は、この例ではまずＳ３１において、描画コマンドの線分情報を中間情報に変換する。図４は、中間情報の一例の説明図である。描画コマンドから変換する中間情報として、例えば描画コマンドで設定される領域の外形の各辺を示すパスの情報は、例えば図４に示すように、描画コマンドで指定されたパスの元の始点及び終点と傾き、パスの方向のほかに、後述する補正部２による補正処理によって補正されたパスの始点及び終点の情報を有する。なお、始点と終点は、補正前も補正後も、始点のｙ座標＜終点のｙ座標であるものとし、方向の情報によってパスが始点から終点の方向なのか、終点から始点の方向なのかを示すものとする。
【００１７】
Ｓ３２において、描画コマンドが、クリッピング領域の辺となるパスを設定するものであるか否かを判定する。クリッピング領域の辺となるパスを設定するものである場合には、Ｓ３３において、補正部２による補正処理を行い、補正後の中間情報を領域のパスとしてＳ３４において設定する。それ以外の場合には、そのまま中間情報をＳ３４において設定する。
【００１８】
すべての描画コマンドについて処理を行ったか否かを判定し、未処理の描画コマンドがまだ残っている場合にはＳ３１へ戻り、それらの未処理の描画コマンドについての処理を繰り返す。すべての描画コマンドについて処理を終えたら、Ｓ３６へ進み、中間情報に従った描画処理を実行する。
【００１９】
図５は、補正部における補正処理の一例を示すフローチャートである。図３のＳ３３で補正部２が行うクリッピング領域の辺となるパスに対する補正処理は、例えば図５に示すような処理によって行うことができる。Ｓ４１において、パスがクリッピング領域の左斜辺、すなわちパスの左側がクリッピング領域外で右側がクリッピング領域内となるパスであって、その左斜辺が垂直に近いか否かを判定する。同様にＳ４２では、左斜辺が水平に近いか否かを判定する。垂直に近いか否かは元の始点と終点のｘ座標の差が１ないし数画素程度か否かで判定することができる。また、水平に近いか否かは、元の始点と終点のｙ座標の差が１ないし数画素程度か否かで判定することができる。左斜辺が垂直に近い場合、または、水平に近い場合には、Ｓ４３に進んで補正処理を行い、それ以外の場合にはＳ４６へ進む。
【００２０】
左斜辺が垂直に近い場合、または、水平に近い場合には、Ｓ４３において、さらにパスの元の始点のｘ座標が終点のｘ座標より大きいか否かを判定する。上述のように、始点のｙ座標＜終点のｙ座標としているので、始点のｘ座標が終点のｘ座標より大きければ右上がりであることを示す。この場合には、Ｓ４４において、補正後の始点のｘ座標を元の終点のｘ座標とし、補正後の終点のｘ座標は元の終点のｘ座標のままとして、実質的にクリッピング領域を外側へ膨らませるように補正を行う。なお、傾きは０となる。
【００２１】
逆に始点のｘ座標が終点のｘ座標以下で、右下がりである場合には、Ｓ４５において、補正後の始点のｘ座標は元の始点のｘ座標のままとし、補正後の終点のｘ座標は元の始点のｘ座標とすることにより、この場合も実質的にクリッピング領域を外側へ膨らませるように補正を行う。なお、傾きは０となる。
【００２２】
Ｓ４６、Ｓ４７では、パスがクリッピング領域の右斜辺、すなわちパスの右側がクリッピング領域外で左側がクリッピング領域内となるパスの場合の判定を行う。Ｓ４６では、右斜辺が垂直に近いか否かを判定し、Ｓ４７では、右斜辺が水平に近いか否かを判定する。この場合も、垂直に近いか否かは元の始点と終点のｘ座標の差が１ないし数画素程度か否かで判定することができる。また、水平に近いか否かは、元の始点と終点のｙ座標の差が１ないし数画素程度か否かで判定することができる。右斜辺が垂直に近い場合、または、水平に近い場合には、Ｓ４８に進んで補正処理を行い、それ以外の場合には補正処理を終える。
【００２３】
右斜辺が垂直に近い場合、または、水平に近い場合には、Ｓ４８において、さらにパスの元の始点のｘ座標が終点のｘ座標より小さいか否かを判定する。左斜辺の場合と同様に、始点のｘ座標が終点のｘ座標より小さければ右下がりであることを示す。この場合には、Ｓ４９において、補正後の始点のｘ座標を元の終点のｘ座標とし、補正後の終点のｘ座標は元の終点のｘ座標のままとする。これによって、右斜辺の場合には実質的にクリッピング領域を外側へ膨らませるように補正したことになる。なお、傾きは０となる。
【００２４】
逆に始点のｘ座標が終点のｘ座標以上で、右上がりである場合には、Ｓ５０において、補正後の始点のｘ座標は元の始点のｘ座標のままとし、補正後の終点のｘ座標は元の始点のｘ座標とすることにより、この場合も実質的にクリッピング領域を外側へ膨らませるように補正を行うことができる。なお、傾きは０となる。これによって、補正処理を終了する。
【００２５】
図６は、補正処理の第１の具体例の説明図である。ここでは図６（Ａ）に示すようなクリッピング領域を考える。このクリッピング領域の辺の一つであるパスａについて考える。このパスａは、クリッピング領域の右斜辺であって、垂直に近いパスである。さらに、このパスａは右下がりであることから、図５に示したフローチャートのＳ４９における補正処理を受けることになる。従って、補正後の始点のｘ座標は元の終点のｘ座標と同じになり、図６（Ｂ）に点線で示した元のパスは、実線で示すようなパスに補正される。
【００２６】
ここで、例えばパスｂも始点と終点のｘ座標の差ではパスａと同様に２画素である。しかし、パスｂのように短い場合には垂直というよりも斜めのパスとして判断した方がよく、このような場合には補正処理は行わない。
【００２７】
また、図４にも示したように、中間情報は補正後のパスの始点及び終点とともに、補正前の元のパスの始点及び終点も保持する。これによって、クリッピング領域の閉領域としての形状を維持するとともに、描画部１による描画処理において両者を使い分けながら処理を進めることができる。
【００２８】
図７は、補正処理の第２の具体例の説明図である。ここでは図７（Ａ）に示すように図６に示した例と左右が逆のクリッピング領域を考える。このクリッピング領域の辺の一つであるパスｃは、クリッピング領域の左斜辺であって、垂直に近いパスである。さらに、このパスｃは右上がりであることから、図５に示したフローチャートのＳ４４における補正処理を受けることになる。従って、補正後の始点のｘ座標は元の終点のｘ座標と同じになり、図７（Ｂ）に点線で示した元のパスは、実線で示すようなパスに補正される。
【００２９】
図８は、補正処理の第３の具体例の説明図である。ここでは図８（Ａ）に示すようなクリッピング領域を考える。このクリッピング領域の辺の一つであるパスｄは、クリッピング領域の右斜辺であって、水平に近いパスである。さらに、このパスｄは右上がりであることから、図５に示したフローチャートのＳ５０における補正処理を受けることになる。従って、補正後の終点のｘ座標は元の始点のｘ座標と同じになり、図８（Ｂ）に点線で示した元のパスは、実線で示すようなパスに補正される。
【００３０】
ここで、例えばパスｅも始点と終点のｙ座標の差ではパスｄと同様に２画素である。しかし、パスｅのように短い場合には水平というよりも斜めのパスとして判断した方がよく、このような場合には上述の図６に示したパスｂと同様に補正処理は行わない。
【００３１】
図９は、補正処理の第４の具体例の説明図である。ここでは図９（Ａ）に示すように図８に示した例と左右が逆のクリッピング領域を考える。このクリッピング領域の辺の一つであるパスｆは、クリッピング領域の左斜辺であって、水平に近いパスである。さらに、このパスｆは右下がりであることから、図５に示したフローチャートのＳ４５における補正処理を受けることになる。従って、補正後の終点のｘ座標は元の始点のｘ座標と同じになり、図９（Ｂ）に点線で示した元のパスは、実線で示すようなパスに補正される。
【００３２】
このようにしてクリッピング領域の垂直あるいは水平に近い辺について、クリッピング領域を広げる方向に補正することができる。これによって、例えばクリッピング領域が隣接している場合でも隙間により白スジが現れることはなく、図１０や図１１で示したような従来発生していた不具合を解消することができる。
【００３３】
なお、上述の補正処理においては、ｘ座標の変更によって補正を行っているが、これはｘ方向をスキャンラインとして、スキャンライン方向に描画処理を行う場合を想定したものである。もちろん、ｙ方向について同様の処理を行ってもよいことは明らかである。
【００３４】
また、上述のように、座標の変更により補正後の始点及び終点を求めると、補正後の始点または終点においてパスの連続性が失われる。上述の説明では、別に元の始点及び終点を保持することによりパスの連続性を確保することができるが、ほかの方法として、例えば補正処理により分断されたパスを接続する新たなパスを設けるように構成してもよい。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の一形態を示すブロック図である。
【図２】本発明の実施の一形態を実現するための一構成例を示すブロック図である。
【図３】本発明の実施の一形態における動作の一例を示すフローチャートである。
【図４】中間情報の一例の説明図である。
【図５】補正部における補正処理の一例を示すフローチャートである。
【図６】補正処理の第１の具体例の説明図である。
【図７】補正処理の第２の具体例の説明図である。
【図８】補正処理の第３の具体例の説明図である。
【図９】補正処理の第４の具体例の説明図である。
【図１０】従来の描画処理による不具合の一例の説明図である。
【図１１】従来の描画処理において解像度変換を伴う場合の不具合の一例の説明図である。
【符号の説明】
【００３６】
１…描画部、２…補正部、１１…コンピュータ、１２…ＬＡＮ、１３…画像処理装置、１４…プリンタエンジン、２１…ＣＰＵ、２２…入力インタフェース、２３…ＲＡＭ、２４…ＲＯＭ、２５…プリンタエンジンインタフェース、２６…内部バス。
【図１】
2006262213.tif 000003
【図２】
2006262213.tif 000004
【図３】
2006262213.tif 000005
【図４】
2006262213.tif 000006
【図５】
2006262213.tif 000007
【図６】
2006262213.tif 000008
【図７】
2006262213.tif 000009
【図８】
2006262213.tif 000010
【図９】
2006262213.tif 000011
【図１０】
2006262213.tif 000012
【図１１】
2006262213.tif 000013