(57)【要約】      （修正有）【課題】スポット多重化技術を用いてラインを光描画する際に、描画する位相によらず同じ太さのラインを描画することができる画像処理システム及び画像処理方法を提供する。【解決手段】画像処理システムは、描画データに含まれるラインを描画する描画コマンドを取得する取得手段と、ラインを描画する描画コマンドで規定されるライン幅が所定の偶数画素幅より小さい偶数画素幅である描画コマンドのライン幅を所定の偶数画素幅に変更する変更手段と、変更手段で変更された描画コマンドを含む描画データに基づいて第１の解像度の２値ビットマップデータを生成する生成手段と、生成した２値ビットマップデータに対して補正を行なう補正手段と、補正された２値ビットマップデータを第１の解像度よりも解像度が低い第２の解像度の多値ビットマップデータに変換する変換手段と、変換した多値ビットマップデータを印刷手段に出力する出力手段とを有する。【選択図】なし【特許請求の範囲】
【請求項１】
電子写真方式のレーザーの走査線の曲がりを相殺するように、ビットマップデータを主走査方向の所定の位置において副走査方向にずらす補正をする画像処理システムであって、
描画データに含まれる、ラインを描画する描画コマンドを取得する取得手段と、
前記ラインを描画する描画コマンドで規定されているライン幅が所定の偶数画素幅より小さい偶数画素幅である描画コマンドのライン幅を所定の偶数画素幅に変更する変更手段と、
前記変更手段で変更された描画コマンドを含む前記描画データに基づいて第１の解像度の２値ビットマップデータを生成する生成手段と、
前記生成した２値ビットマップデータに対して前記補正を行なう補正手段と、
前記補正された２値ビットマップデータを前記第１の解像度よりも解像度が低い第２の解像度の多値ビットマップデータに変換する変換手段と、
前記変換した多値ビットマップデータを印刷手段に出力する出力手段と
を有することを特徴とする画像処理システム。
【請求項２】
前記変更手段は、前記ラインを描画する描画コマンドで規定されているライン幅が前記所定の偶数画素幅より小さい奇数画素幅である描画コマンドのライン幅を前記所定の偶数画素幅に変更することを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記変更手段は、前記ライン幅を増加させることを特徴とすることを特徴とする請求項１または２に記載の画像処理システム。
【請求項４】
前記変更手段は、前記ライン幅を減少させることを特徴とすることを特徴とする請求項１または２に記載の画像処理システム。
【請求項５】
前記変換手段は、前記補正された２値ビットマップデータを多値ビットマップデータに変換し、変換した多値ビットマップデータの解像度を変換することを特徴とする請求項１乃至４の何れか１項に記載の画像処理システム。
【請求項６】
前記変換手段は、注目画素の画素値が、周囲の画素の画素値を参照して中間レベルの濃度とすることが可能なフィルタを用いることで、前記補正された２値ビットマップデータを前記多値ビットマップデータに変換することを特徴とする請求項５に記載の画像処理システム。
【請求項７】
前記変換手段は、前記フィルタとして、中心の位置の係数が他の位置の係数よりも高く設定されている３ｘ３のフィルタを用いることを特徴とする請求項６に記載の画像処理システム。
【請求項８】
前記変更手段は、前記ライン幅が奇数の場合、前記ラインを構成する画素の画素値の組み合わせが前記補正の前後において異なる組み合わせとなると判定することを特徴とする請求項１乃至７の何れか１項に記載の画像処理システム。
【請求項９】
電子写真方式のレーザーの走査線の曲がりを相殺するように、ビットマップデータを主走査方向の所定の位置において副走査方向にずらす補正をするための画像処理方法であって、
描画データに含まれる、ラインを描画する描画コマンドを取得する取得工程と、
前記ラインを描画する描画コマンドで規定されているライン幅が所定の偶数画素幅より小さい偶数画素幅である描画コマンドのライン幅を所定の偶数画素幅に変更する変更工程と、
前記変更工程で変更された描画コマンドを含む前記描画データに基づいて第１の解像度の２値ビットマップデータを生成する生成工程と、
前記生成した２値ビットマップデータに対して前記補正を行なう補正工程と、
前記補正された２値ビットマップデータを前記第１の解像度よりも解像度が低い第２の解像度の多値ビットマップデータに変換する変換工程と、
前記変換した多値ビットマップデータを印刷手段に出力する出力工程と
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、細線を均等な太さで光描画するための細線補正の技術に関する。
【背景技術】
【０００２】
従来、印刷装置は、ホストコンピュータからの印刷データをビットマップデータに展開し、展開したビットマップデータに所定の画像処理を施して印刷を行っている。ビットマップデータは、通常、印刷装置の解像度と同じ解像度のデータに展開される。
【０００３】
また、印刷装置の解像度より高い解像度のビットマップデータへ展開し、その後、各画素のスポット多重化技術を用いて印刷装置の解像度に解像度変換して印刷を行う技術も提案されている。スポット多重化技術を用いることにより、印刷装置の解像度よりも高い解像度の画質が表現可能である。
【０００４】
スポット多重化技術とは、電子写真方式のプリンタにおいて、プリンタの解像度よりも解像度の高いドットを形成する技術である。具体的には、スポット多重化技術では、隣接する画素に対して、互いに重なりができるドット（露光スポット）を中間の電位レベルの光描画で形成する。重なりができるドットを中位の電位レベルの光描画で形成すると、重なり合う部分の電位レベルが高レベルになる。この結果、プリンタの解像度では形成することができない隣接する画素間の位置においてもドットが形成され、プリンタの解像度よりも高い解像度のドットが形成されることになる。特許文献１は、このスポット多重化技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−３３６８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、スポット多重化技術は、高い解像度のドットを形成するために、プリンタの解像度のドットを生成する際に中間の電位レベルのドットを生成する。一方、ラインを光描画する際には、レーザーの走査線の曲がりを補正するために、副走査方向に位相を乗り換えるレーザー曲がり補正が行なわれる。スポット多重化を行なうために中間の電位レベルのドットを用いる場合、同じ幅のラインでも、位相によって（副走査方向の位置によって）生成される電位レベルが異なるため、ラインの太さが変わってしまう場合がある。特に細いラインの場合に、太さの違いが目立ってしまうという問題があった。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理システムは、電子写真方式のレーザーの走査線の曲がりを相殺するように、ビットマップデータを主走査方向の所定の位置において副走査方向にずらす補正をする画像処理システムであって、描画データに含まれる、ラインを描画する描画コマンドを取得する取得手段と、前記ラインを描画する描画コマンドで規定されているライン幅が所定の偶数画素幅より小さい偶数画素幅である描画コマンドのライン幅を所定の偶数画素幅に変更する変更手段と、前記変更手段で変更された描画コマンドを含む前記描画データに基づいて第１の解像度の２値ビットマップデータを生成する生成手段と、前記生成した２値ビットマップデータに対して前記補正を行なう補正手段と、前記補正された２値ビットマップデータを前記第１の解像度よりも解像度が低い第２の解像度の多値ビットマップデータに変換する変換手段と、前記変換した多値ビットマップデータを印刷手段に出力する出力手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によればスポット多重化技術を用いてラインを光描画する際に、描画する位相によらず同じ太さのラインを描画することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１で説明する画像処理システムの構成を示すブロック図である。
【図２】実施形態１で説明する画像処理装置のコントローラの構成を示すブロック図である。
【図３】実施形態１で説明するレンダリング処理の流れを示すフローチャートである。
【図４】実施形態１で説明する画像処理の流れを示すフローチャートである。
【図５】実施形態１で説明するプリンタ解像度の多値のビットマップ生成の説明図である。
【図６】実施形態１で説明するスポット多重化技術の説明図である。
【図７】実施形態１で説明する位相乗換時の多値のビットマップを示す図である。
【図８】実施形態１で説明するライン幅調整処理の流れを示すフォローチャートである。
【図９】実施形態１で説明するライン幅調整時の多値のビットマップを示す図である。
【図１０】実施形態２で説明するビットマップのライン幅調整処理の流れを示すフローチャートである。
【図１１】実施形態２で説明する２値のビットマップデータのライン検出の説明図である。
【図１２】実施形態３で説明するビットマップの５０％ライン幅調整処理の流れを示すフローチャートである。
【図１３】実施形態３で説明する５０％ライン幅調整時の多値のビットマップを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。以下の実施形態においては、コピー機能やプリンタ機能等の複数の機能を備える多機能処理装置（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）を画像処理装置として用いる例を説明する。なお、以下で説明する実施形態の画像処理装置は、電子写真方式の印刷に用いられる装置であればよく、ＭＦＰに限られるものではない。
【００１１】
＜第１の実施形態＞
第１の実施形態では、プリンタの解像度よりも高い解像度のドットを形成するスポット多重化処理を行うＭＦＰ（画像処理装置）を用いる画像処理システムを例に挙げて説明する。そして、ＭＦＰがライン描画コマンドを含む描画データを取得した場合に、光描画する際の位相によって（すなわち、レーザ曲がり補正を考慮した副走査方向の光描画位置によって）ラインの太さが変わらないように予めラインを補正する例を説明する。
【００１２】
［画像処理システム］
図１は本実施形態に係る画像処理システムの構成を示すブロック図である。図１に示す画像処理システムでは情報処理装置（ホストコンピュータ）１０及び画像処理装置１１がネットワーク１５に接続されている。なお接続数は図１の例に限られることはない。また、本実施例では接続方法としてネットワークを適用しているが、これに限られることはない。例えば、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１３】
ホストコンピュータ（以下、ＰＣと称する）１０はパーソナルコンピュータの機能を有している。ＰＣ１０は画像処理装置１１に対して、プリンタドライバを介した描画データを送信する。
【００１４】
画像処理装置１１は、画像出力デバイスであるプリンタ部１４、画像処理装置１１全体の動作制御を司るコントローラ１３、及び、ユーザが指示を行うための複数のキーやユーザに通知すべき各種情報を表示する表示部から構成される操作部１２を有する。
【００１５】
［コントローラ］
図２は、画像処理装置１１のブロック図を示したものであり、コントローラ１３の詳細な構成を含む図である。コントローラ１３はネットワーク１５を介してＰＣ１０や外部の画像処理装置などと接続されている。これにより描画データやデバイス情報の入出力が可能となっている。コントローラ１３は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ２０４、操作部Ｉ／Ｆ２０５、ネットワークＩ／Ｆ２０６、レンダリング部２０７、画像処理部２０８、プリンタＩ／Ｆ２０９を有する。
【００１６】
ＣＰＵ２０１は、ＲＯＭ２０３に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラ内部で行われる画像処理等の各種処理についても統括的に制御する。ＲＡＭ２０２は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、かつ描画データやビットマップ等の画像データを一時記憶するためのメモリでもある。このＲＡＭ２０２は、記憶した内容を電源ｏｆｆ後も保持しておくＳＲＡＭ及び電源ｏｆｆ後には記憶した内容が消去されてしまうＤＲＡＭにより構成されている。ＲＯＭ２０３には装置のブートプログラムなどが格納されている。ＨＤＤ２０４はハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能となっている。
【００１７】
操作部Ｉ／Ｆ２０５は、操作部１２と接続するためのインターフェース部である。この操作部Ｉ／Ｆ２０５は、操作部１２に表示するための画像データを操作部１２に出力すると共に、操作部１２から入力された情報を取得する。ネットワークＩ／Ｆ２０６はネットワーク１５に接続し、描画データや画像データ、情報の送受信を行う。
【００１８】
レンダリング部２０７は、ＰＣ１０などから送信された描画データ（ＰＤＬデータ）を受信する。レンダリング部２０７は受信したＰＤＬコードで記述されたＰＤＬデータを元に中間データを生成し、生成した中間データに基づいてコントーン（多値）の画像ビットマップデータを生成する。
【００１９】
画像処理部２０８は、レンダリング部２０７で生成された画像ビットマップデータを受取り、この画像ビットマップデータに付随されている属性データを参照しながら画像ビットマップデータに画像処理を施す。画像処理後のビットマップデータは、プリンタＩ／Ｆ２０９を介してプリンタ部１４に出力される。
【００２０】
［レンダリング処理］
図３はレンダリング部２０７のレンダリング処理の流れを示すフローチャートである。図３において、レンダリング部２０７は、ステップ３０１においてＰＣ１０などから送信されたＰＤＬデータ（描画データ）を取得する。ＰＤＬデータには、各オブジェクトを描画する描画コマンドや、描画の解像度を示す情報などが含まれる。ステップ３０２においてレンダリング部２０７は、ステップＳ３０１で取得した描画データを解析し、描画データに含まれる描画コマンドが、文字、線、図形、イメージのいずれかの属性の描画コマンドであるかを決定する。レンダリング部２０７は、描画データに含まれる描画コマンドが文字種や文字コード等で表される文字描画のコマンドである場合は文字属性と決定する。レンダリング部２０７は、描画コマンドが座標点や長さ、太さで表される線描画のコマンドである場合は線属性と決定する。レンダリング部２０７は、描画コマンドが、矩形、形状、座標点で表される図形描画のコマンドである場合は図形属性と決定する。レンダリング部２０７は、描画コマンドがビットマップデータで表されるイメージ描画のコマンドである場合はイメージ属性と決定する。レンダリング部２０７は、決定した属性に対応する中間データを生成する。
【００２１】
次に、ステップ３０３においてレンダリング部２０７は、生成した中間データに基づいて、コントローラの処理解像度に合わせて描画する画素パターンを形成し、各画素に描画する色情報（コントーン値）を各画素に含めた画像ビットマップデータを生成する。本実施形態では、コントローラの処理解像度である第１の処理解像度の画像ビットマップデータを生成する。すなわち、本実施形態では、プリンタ部１４の処理解像度である第２の処理解像度ではなく、第２の処理解像度よりも解像度の高いコントローラの処理解像度である第１の処理解像度の画像ビットマップデータを生成する。なお、前述のように、この解像度はＰＤＬデータに含まれる解像度を示す情報に基づいている。さらに、ステップ３０４においてレンダリング部２０７は、画像ビットマップデータの各画素に対応するようにステップ３０２で解析された属性を格納した属性ビットマップデータを生成し処理を終了する。属性ビットマップデータは、画像ビットマップデータと同じ処理解像度の同じサイズの画像データであり、各画素が画像ビットマップデータの対応する各画素の属性を示す値を有するデータである。
【００２２】
生成された描画ビットマップデータと属性ビットマップデータとは、ＲＡＭ２０２もしくはＨＤＤ２０４に記録され、画像処理部２０８へ送られる。
【００２３】
［画像処理部］
図４は画像処理部２０８の処理の流れを示すフローチャートである。画像処理部２０８は、ステップ４０１において、レンダリング部２０７で生成されたコントローラの処理解像度の画像ビットマップデータと属性ビットマップデータとを取得する。次に、ステップＳ４０２において画像処理部２０８は、画像ビットマップデータの各画素の色情報を色変換ＬＵＴやマトリックス演算を用いて、プリンタエンジンの色形式であるＣＭＹＫもしくはＫの色形式に変換をする。
【００２４】
次に、ステップ４０３において画像処理部２０８は、属性ビットマップデータの各画素の属性情報に応じてディザマトリックスを選択し、画像ビットマップデータの画素に対して選択したディザマトリックスを用いたディザ処理を施す。例えば、属性が文字を示す画素については文字に対応するディザマトリックスを選択してディザ処理を施す。これにより、属性に応じてエッジを強調したり平滑化をするなどの画像処理が行なわれる。画像処理部２０８はディザ処理を行なうことでコントーン値の画像ビットマップの各画素値を２値に変換し、２値のビットマップデータを生成する。
【００２５】
そして、ステップ４０４で画像処理部２０８は、レーザーの走査線の曲がりを補正するために、生成した２値のビットマップデータに対して副走査方向に位相を乗り換える（光描画位置を副走査方向にシフトさせる）レーザー曲がり補正を行う。
【００２６】
そして、ステップＳ４０５で画像処理部２０８は、スポット多重化処理のため、多値化フィルタを用いて２値ビットマップデータを多値のビットマップデータに変換する多値化処理を行う。このステップＳ４０５の処理の前までは、ビットマップデータの解像度は、前述のようにコントローラの処理解像度となっている。
【００２７】
次に、ステップＳ４０６において画像処理部２０８は、ビットマップデータの画素を間引くことで解像度変換処理を行なう。すなわち、コントローラの解像度（第１の解像度）のビットマップデータをプリンタの解像度（第２の解像度）のビットマップデータ（多値）に変換する解像度変換処理を行って、プリンタの解像度の多値のビットマップデータを生成する。
【００２８】
次に、ステップＳ４０５の多値化処理と、ステップＳ４０６の解像度変換処理について説明する。
【００２９】
［プリンタ解像度の多値のビットマップ生成処理］
図５は、コントローラ解像度の２値のビットマップデータから、プリンタ解像度の多値のビットマップデータを生成する処理を説明するための図である。プリンタ解像度の多値のビットマップデータは、コントローラの処理解像度の２値のビットマップデータを、多値化処理を用いて多値化し、解像度変換処理で間引くことで生成される。本実施形態では、コントローラの処理解像度である１２００ｄｐｉの２値ビットマップデータをプリンタの印刷解像度である６００ｄｐｉの多値ビットマップデータに変換する処理を示す。
【００３０】
図５（ａ）は、１マスを１ドット（画素）とした、解像度１２００ｄｐｉの２値（白０，黒１）のビットマップであり、３画素幅の２本のライン（ライン５０１，ライン５０２）を示すビットマップである。
【００３１】
図５（ｂ）は、多値化のための３ｘ３サイズの重み係数を持つフィルタである。フィルタは、中心の位置が、ビットマップの注目画素に対応し、注目画素および周辺画素に対して各位置の重み係数を持つ。図５（ｂ）に示すフィルタは、注目画素の画素値が、周囲の画素の画素値を参照して中間レベルの濃度とすることが可能なフィルタである。多値化処理は、注目画素と周辺画素とのそれぞれの画素値（０か１か）に対してフィルタの重み係数を乗算した値の総和を注目画素の値とすることで、多値化する。ビットマップに含まれる全ての画素を注目画素とした繰り返し処理を行なうことでコントローラの処理解像度の２値化のビットマップデータに対して多値化を行なう。
【００３２】
例えば、座標位置を横３、縦２の場合、座標（３，２）と表現する。図５（ａ）の座標（３，２）を注目画素とすると、周辺画素は、座標（２，１），（３，１），（４，１），（２，２），（４，２），（２，３），（３，３），（４，３）となる。図５（ａ）の座標（３，２）の多値化の画素の値は、次のように計算される。すなわち、各画素が白０の場合は、０，黒１の場合は１×重み係数を加算する。その結果、総和は、周辺画素（０＋０＋０＋１×２＋１×２＋１×１＋１×２＋１×１）＋注目画素１×４  ＝１２  となる。従って、座標（３、２）のフィルタ処理後の画素値（多値）は１２となる。
【００３３】
図５（ｃ）は、図５（ａ）の全画素を多値化した結果のビットマップを示す。画素の濃度値は、フィルタの重み係数の総和（１６）に対する比率で表現する。例えば、座標（３，２）の画素値は１２であるため、濃度値は１２／１６の７５％となる。
【００３４】
図５（ｂ）のフィルタを適用すると、３画素幅のラインのビットマップは、多値化処理により、濃度値０％，２５％，７５％，１００％を持つ画素のラインに変換される（ライン５１１、ライン５１２）。
【００３５】
図５（ｄ）は、図５（ｃ）の１２００ｄｐｉのビットマップを解像度変換した６００ｄｐｉの多値のビットマップを示す。解像度変換処理は、図５（ｃ）の多値化したビットマップを、コントローラの解像度である１２００ｄｐｉから、プリンタの印刷解像度である半分の６００ｄｐｉにするため、縦横１画素置きに画素をサンプリングする。すなわち、画素のサンプリング周期は縦横それぞれ２画素周期である。なお図７を用いて後述するが、このサンプリングの周期が、ラインの縦横のずれ幅（ラインのシフト幅）と同調（合致）しないと、ずれ（シフト）が生じた位置を境界にしてラインに対するサンプリングの相対位置の組み合わせが変わってしまう。それに加えて、ラインの太さ（幅）が、境界前後においてそのラインに対する相対的なサンプリング位置が一致も逆転もしないようなものであると、後述のスポット多重化技術を適用したときに境界前後で形成されるラインの太さが異なってしまう。
【００３６】
例えば、縦の座標を１画素置きに０，２，４，６，８，１０、横の座標を１画素置きに０，２，４，６，８，１０，１２，１４の画素をサンプリングし、６００ｄｐｉの解像度の多値のビットマップに変換する。６００ｄｐｉの解像度の多値のビットマップでは、図５（ａ）の３画素幅のライン５０１は、濃度値７５％と７５％の２画素で構成されるライン５２１となる。図５（ａ）の３画素幅のライン５０２は、濃度値２５％と１００％と２５％の３画素で構成されるライン５２１となる。
【００３７】
解像度変換処理でプリンタの解像度に変換された６００ｄｐｉの解像度の多値のビットマップデータは、プリンタＩ／Ｆ２０９を介してプリンタ部１４に出力される。以上が、図４のステップＳ４０５のフィルタ処理とステップＳ４０６の解像度変換処理の説明である。
【００３８】
［スポット多重化技術］
図６は、スポット多重化技術によるレーザー露光の重ね合わせによるドット（露光スポット）間のサブドット形成原理を示している。スポット多重化技術において、１画素に対応するレーザー露光によるスポット径はその１画素よりも大きいため、隣接する画素どうしのスポットは互いに一部分が重なる。この一部分が重なることを積極的に利用するのがスポット多重化技術である。実線で示されている実走査線上の上下画素６１１、６１２に中間の電位レベルのドットを打ち、露光が重なり合うことで、実走査線の中間にドット６３１を形成し、走査線よりも高い解像度を表現する。つまり、図５で説明した解像度の例を用いると、６００ｄｐｉにおける２画素（コントローラ解像度の１２００ｄｐｉにおける４画素分）の表現ではなく、コントローラ解像度の１２００ｄｐｉにおける３画素分の解像度の表現が可能となる。
【００３９】
図５（ａ）の縦の位相（副走査方向の位置）が偶数の座標で始まる３画素幅のライン５０１は、図５（ｄ）の濃度値７５％と７５％の２画素のライン５２１で表わされる。このライン５２１は、図６の実走査線上で７５％の電位レベルのドット６１１と７５％の電位レベルのドット６１２で露光される。この結果、実走査線の中間の座標に３画素幅相当のライン６３１として描画される。
【００４０】
また、図５（ａ）の縦の位相（副走査方向の位置）が奇数の座標で始まる３画素幅のライン５０２は、図５（ｄ）の濃度値２５％と１００％と２５％の３画素のライン５２２で表わされる。このライン５２２は、図６の実走査線上で２５％の電位レベルのドット６２１と１００％の電位レベルのドット６２２と２５％の電位レベルのドット６２３で露光される。この結果、１００％の電位レベルのドット６２２を中心に実走査線上の座標に３画素幅相当のライン６３２として描画される。
【００４１】
［位相乗換処理］
次に、レーザーの走査線の曲がりを補正するためのステップＳ４０４で行なわれる位相乗換処理について説明する。レーザーの走査線の曲がりは、偏向走査装置のレンズの不均一性や取り付け位置ずれ、および偏向走査装置の画像処理装置本体への組み付け位置ずれなどにより生じる。この位置ずれにより、走査線に曲がりが生じる。画像処理部２０８は、この走査線の曲がりを相殺するように、主走査方向の所定の位置（乗換位置）で走査線を副走査線方向にシフトさせる処理を行なう。具体的には、ビットマップデータを所定の位置（乗換位置）で副走査線方向に１画素分ずらす処理を行なう。この曲がり補正がされたビットマップデータを用いた走査をすることで、結果として曲がりが解消された光描画がなされることになる。解像度が低いデータに対して曲がり補正をする場合、解像度が高いデータに対して曲がり補正をする場合に比べて１画素分のシフト量が大きいので、段差が目立ちやすくなってしまう。よって、本実施形態においては、解像度が高いコントローラの解像度の段階で曲がり補正を行なう。
【００４２】
図７は、位相乗換時の多値のビットマップ及び位相乗換時に用いられるフィルタを示す図である。位相乗換処理は、前述のようにコントローラの解像度（１２００ｄｐｉ）のビットマップデータについて行なわれる。図７（ａ）は、位相乗換を行った解像度１２００ｄｐｉの２値のビットマップであり、３画素幅のライン７０１を示すビットマップである。横の座標１２の位置でレーザー曲がり補正により位相乗換を行うことで、位相が下に１画素ずれたラインのビットマップとなる。
【００４３】
図７（ｂ）は図５（ｂ）と同じ多値化のための３ｘ３サイズの重み係数を持つフィルタである。図７（ｃ）は、図７（ａ）の位相乗換後のビットマップに対して図７（ｂ）のフィルタを用いて多値化した多値のビットマップである。なお、他のサイズのフィルタを用いても良いが、以下の理由により３ｘ３のフィルタを用いることが望ましい。例えば、奇数ｘ奇数サイズのフィルタでない場合には、フィルタ後の画素値に偏りが生じてしまう。また、例えば５ｘ５のフィルタを用いると３ｘ３のフィルタを用いる場合と比べて画素値がボケた値となってしまう。
【００４４】
図７（ｄ）は、図７（ｃ）の多値のビットマップを解像度変換処理で６００ｄｐｉの解像度に変換した多値のビットマップである。図７（ｄ）において、位相乗換の前後でラインの位相が１画素ずれるため、位相乗換前のライン７１１は濃度値７５％と７５％の２画素で構成され、位相乗換後のライン７１２は濃度値２５％と１００％と２５％の３画素で構成される。すなわちサンプリング周期が縦２画素であるために、縦方向のサンプリング結果が位相乗換の境界前後で一致も反転もしていない。
【００４５】
ライン７１１とライン７１２はラインの濃度値の総和は、７５％＋７５％＝１５０％（ライン７１１）と２５％＋１００％＋２５％＝１５０％（ライン７１２）とであり、同じ値である。しかしながら、濃度２５％や７５％の中間の電位レベルのドットは、ベタ濃度１００％のドットと比べて不安定であるため、ライン７１１とライン７１２の光描画する太さが完全には一致せず、太さが違ってしまう場合がある。とりわけ、細線のような細い線を光描画するような場合に太さの違いが目立ってしまうことになる。
【００４６】
そこで、本実施形態においては位相乗換によって、ラインの太さが違ってしまわないように、ライン幅の調整を行う。
【００４７】
［ライン幅調整処理］
図８は、ライン幅調整処理の流れを示すフローチャートである。ライン幅調整処理は、ＰＣ１０のプリンタドライバで行われる。すなわち、画像処理装置に描画データ(ＰＤＬデータ)を送信する前に、プリンタドライバにおいてライン幅を調整する処理を行なう。 なおこのプリンタドライバの処理は、ＣＰＵ、ＲＡＭ、ＨＤＤを備えるＰＣ１０において、このＣＰＵがＨＤＤに記憶されているプリンタドライバプログラムをＲＡＭにロードして実行することで実行される。
【００４８】
図８において、プリンタドライバは、ステップＳ８０１で描画データを取得して描画データに含まれる描画コマンドを順に解析する。ステップＳ８０２においてプリンタドライバは、ステップＳ８０１の解析の結果、描画コマンドがラインの描画コマンドであるか否かを判定する。ラインの描画コマンドである場合には、ステップＳ８０３に処理を進める。そうでない場合には、処理を終了する。
【００４９】
ラインの描画コマンドである場合は、ステップＳ８０３においてプリンタドライバは、描画コマンドで規定されているラインの幅を取得する。ステップＳ８０４においてプリンタドライバは、ラインの幅が既定の幅より小さいか否を判定する。ここで既定の幅は、位相がずれた時に線の太さの違いが表れやすい細線を判定するための値であり、例えば、３画素幅とか５画素幅等の奇数画素幅を指定する。なお、このライン幅はコントローラの解像度の画素幅である。前述のように描画データには、描画コマンドの他にも解像度を示す情報が含まれており、本実施形態では、コントローラの解像度が指定されている。
【００５０】
ステップＳ８０４において、既定の幅より小さいと判定された場合はステップＳ８０５に処理を進め、そうでない場合には、処理を終了する。ステップＳ８０５においてプリンタドライバは、ライン幅が奇数幅（奇数画素幅ともいう）であるか否かを判定する。これは、図５（ｂ）の３ｘ３サイズのフィルタを用いて多値化したラインのビットマップ（図５（ｃ））に対して解像度変換を行った際に、ライン幅が奇数の場合は、位相によってライン（５２１，５２２）を構成する画素の濃度値が異なるためである。ライン幅が奇数幅であると判定した場合には、ステップＳ８０６に進み、そうでない場合には処理を終了する。
【００５１】
ステップＳ８０６においてプリンタドライバは、ライン幅を＋１することでライン幅を偶数幅（偶数画素幅ともいう）に設定（補正）して処理を終了する。以上の処理を描画データに含まれる描画コマンドについて行なう。なおここではプリンタドライバが描画データを解析して上記処理を行うようにしているが、プリンタドライバは次のようにしても良い。すなわち、プリンタドライバは、描画データ（描画コマンド）を作る過程において、ＰＣ１０の不図示のＯＳ（オペレーティングシステム）が備えるＧＤＩ等のインターフェースから順次送られてくる描画コマンドを解析し、ラインの描画コマンドを特定する。そしてプリンタドライバはＧＤＩから送られたラインの描画コマンドについては、偶数幅のライン幅を持つＰＤＬ形式の描画コマンドを生成する。他の描画コマンドについては、ＧＤＩからの描画コマンドに従ったＰＤＬ形式の描画コマンドを生成すればよい。
【００５２】
ライン幅が偶数幅に設定されたラインの描画コマンドを含む描画データ（ＰＤＬデータ）は、前述のようにネットワーク１５を介して、画像処理装置１１に送られる。
【００５３】
図９は、ライン幅調整時の多値のビットマップを示す図である。図９（ａ）は、図７（ａ）の３画素幅のラインの２値ビットマップに対して、ライン９０２とライン９０３とが追加されている例を示している。すなわち、ライン幅調整処理においてライン幅を１ライン追加して４画素の偶数幅にしたビットマップである。なお、本明細書では、「１ライン」はコントローラの解像度に応じた１画素幅のラインのことである。図７（ａ）と同様に横の座標１２でレーザー曲がり補正により位相乗換を行うことで、位相が下に１画素ずれたラインのビットマップとなっている。
【００５４】
図９（ｂ）は図７（ｂ）と同じ多値化のための３ｘ３サイズの重み係数を持つフィルタである。図９（ｃ）は、図９（ａ）のビットマップに対してフィルタ（図９（ｂ））を用いて多値化した多値のビットマップである。図７（ｃ）と比べてライン幅が１画素増えた分だけ、濃度値１００％のライン９１１が増える。
【００５５】
図９（ｄ）は、図９（ｃ）の多値のビットマップを解像度変換処理で１画素置きにサンプリングすることで６００ｄｐｉの解像度に変換した多値のビットマップである。図９（ｄ）において、位相乗換の前後でラインの位相が１画素ずれるが、位相乗換前のライン９２１は濃度値２５％と１００％と７５％との３画素で構成され、位相乗換後のライン９２２は濃度値７５％と１００％と２５％との３画素で構成される。すなわちサンプリング周期が縦２画素であるが、ライン幅を補正したおかげで、縦方向のサンプリング結果が位相乗換の境界前後で反転した関係が保たれている。位相乗換前後でラインは、上下で濃度値が反転しているが、同じ濃度値の画素の組み合わせで構成されるため、ラインの太さが変わることはない。
【００５６】
以上説明したように、本実施形態によれば、ライン描画コマンドのライン幅が奇数幅の場合は、１ライン追加して偶数幅にすることにより、位相にかかわらず、常に同じ太さのラインを描画することが可能になる。
【００５７】
なお、本実施形態においては、ライン描画コマンドのライン幅が奇数幅の場合、ライン幅を増加させて（具体的には、１ライン追加して）偶数幅にする例を説明したが、ライン幅を減少させて（例えば、１ライン削除して）偶数幅にする処理でもよい。なお、極端に短いライン幅の場合、１ライン削除することでラインが光描画されない場合もあり得るので、１ライン削除するような形態の場合には、下限の閾値を設けて、閾値よりもライン幅が大きい場合に１ライン削除するという形態であってもよい。
【００５８】
また、本実施形態においては、ライン幅調整処理はＰＣ１０のプリンタドライバで行なわれる例を説明したが、画像処理装置１１においてライン幅調整処理が行なわれてもよい。すなわち、画像処理装置１１のレンダリング部２０７においてＰＤＬデータを解釈して中間データを生成する際に、図８で示す処理を行なう形態であってもよい。また、本実施形態においては、図８に示された処理にしたがって、規定幅未満、かつ、奇数幅のライン幅のラインコマンドについて、１画素幅分、太くするようにしていた。しかし次のような処理を行っても良い。すなわち、規定幅以下（例えば３画素幅以下）のラインコマンドのライン幅を、規定幅＋１の画素幅（すなわち４画素幅）に設定（補正）するようにしても良い。このようにすることで、規定幅以下、かつ、偶数幅（２画素幅）のラインも太くすることができ、また、位相の影響を受けずにラインを描画することができる。
【００５９】
＜第２の実施形態＞
第１の実施形態では、描画データのライン描画コマンドのライン幅を調整する例を説明したが、ライン描画コマンドではなく、イメージや図形の描画コマンドを用いてラインを描画する場合もある。ライン描画コマンド以外でラインを描画する際は、ライン幅が設定されていないため、第１の実施形態で説明した手法ではライン幅を調整することはできない。
【００６０】
そこで、第２の実施形態では、コントローラの処理解像度の２値のビットマップからラインを検出し、ライン幅を調整する処理について説明する。なお、本実施形態においても第１の実施形態と同様にコントローラの処理解像度である１２００ｄｐｉの２値ビットマップをプリンタの印刷解像度である６００ｄｐｉの多値ビットマップに変換する処理を示す。
【００６１】
図１０は、ビットマップのライン幅調整処理の流れを示すフローチャートである。本実施形態におけるビットマップのライン幅調整処理は画像処理部２０８のディザ処理（Ｓ４０２）で生成された２値のビットマップデータに対して行われる。
【００６２】
まず、ステップＳ１００１において画像処理部２０８は、ステップＳ４０２のディザ処理で生成されたコントローラの処理解像度１２００ｄｐｉの２値のビットマップデータを取得する。
【００６３】
ステップＳ１００２において画像処理部２０８は、ＮｘＭの検出用ウインドウを用いてビットマップデータの各画素のパターンマッチングを行い、ビットマップデータの中からラインデータを検出する。検出用ウインドウは細線を検出するために十分なサイズのウインドウとする。
【００６４】
次に、ステップＳ１００３で画像処理部２０８は、ステップＳ１００２で検出したラインデータのライン幅を算出する。
【００６５】
ステップＳ１００４で画像処理部２０８は、ライン幅が既定の幅以下か否かを判定する。既定の幅は、例えば第１の実施形態で説明したように、３画素幅や５画素幅などを指定することができる。ライン幅が既定の幅以下であると判定した場合は、ステップＳ１００５に進み、そうでない場合には処理を終了する。
【００６６】
ステップＳ１００５において画像処理部２０８は、ライン幅が奇数幅であるか否かを判定する。ライン幅が奇数幅であると判定した場合は、ステップＳ１００６に進み、そうでない場合には処理を終了する。
【００６７】
ステップＳ１００７において画像処理部２０８はラインデータを１画素太らせて、処理を終了する。
【００６８】
その後、第１の実施形態で説明したように、画像処理部２０８は、１画素太らせを行ったラインデータに対して、多値化処理（Ｓ４０４）及び解像度変換処理（Ｓ４０５）を行う。
【００６９】
図１１は、２値のビットマップデータのライン検出を説明する図である。図１１は、２値のビットマップデータの一部をＮｘＭの検出用ウインドウで切り出した図である。図１１では、７ｘ７のウインドウを用いた例を示している。ライン検出は、ウィンドウ内の各画素を行単位で処理をする。例えば、ウインドウ内の行においてすべてがＯＦＦの画素であればその行は白であると判定する。またウインドウ内の行においてＯＮの画素が５画素以上であればその行は黒であると判定する。上記以外はグレーであると判定する。図１１においては、第１行が白であり、２行目以降に黒が続いている。この黒の続く行のまとまりを「ライン」と判定する。図１１では、２行目から４行目までの連続する黒の行数をライン幅と判定することで、ラインとライン幅を検出する。図１１では、ライン幅３のラインが検出されることになる。
【００７０】
多値化処理、解像度変換処理については、図９を用いて前述しているため、本実施形態では省略する。
【００７１】
以上説明したように、本実施形態によれば、コントローラの処理解像度の２値のビットマップからラインを判定し、ライン幅を調整する。これにより、ライン描画コマンド以外で描画されるラインについても、位相にかかわらず、常に同じ太さのラインを描画することが可能になる。
【００７２】
なお、本実施形態ではライン幅の調整として太らせ処理を例に挙げて説明したが、第１の実施形態と同様に細らせる処理でもよい。また、本実施形態においても次のような処理を行っても良い。すなわち、規定幅以下（例えば３画素幅以下）のラインのライン幅を、規定幅＋１の画素幅（すなわち４画素幅）に設定（補正）するようにしても良い。このようにすることで、規定幅以下、かつ、偶数幅（２画素幅）のラインも太くすることができ、また、位相の影響を受けずにラインを描画することができる。
【００７３】
＜第３の実施形態＞
第１の実施形態および第２の実施形態では、奇数幅のラインに対して１ライン追加、または削除して偶数幅のラインに調整する例を説明した。
【００７４】
奇数幅のラインを偶数幅にすることで、位相乗換によってラインの太さが変化してしまう不具合を解消することできたが、元々の偶数幅のラインと同じ太さになってしまう。例えば、３画素幅のラインは４画素幅のラインに調整されるため、元々４画素幅のラインと同じ太さになり区別がつかなくなる。
【００７５】
そこで、実施形態では、奇数幅のラインに濃度が５０％の１画素幅のラインを追加し、元のラインのうち、１ライン（１画素幅のライン）を５０％の濃度に間引くことで、奇数幅のラインと、偶数幅のラインとの区別がつくようにする処理について説明する。
【００７６】
図１２は、ビットマップの５０％ライン幅調整処理の流れを示すフローチャートである。ビットマップの５０％ライン幅調整処理は画像処理部２０８において行なわれ、ディザ処理（Ｓ４０２）で生成された２値のビットマップデータに対して行われる。
【００７７】
なお、ステップＳ１２０１からステップＳ１２０５までの処理は、第２の実施形態で説明したステップＳ１００１からステップＳ１００５までの処理と同様の処理とすることができるので説明を省略する。
【００７８】
ステップＳ１２０４とステップＳ１２０５とを経て、ライン幅が既定の幅以下でかつライン幅が奇数の場合、ステップＳ１２０６に処理を進める。
【００７９】
ステップＳ１２０６において画像処理部２０８は、１画素置きに間引いた５０％のラインデータで１画素幅太らせる。そして、ステップＳ１２０７において画像処理部２０８は、１画素幅太らせたラインエッジの１ラインと反対側のラインエッジの１ラインを１画素置きに間引いて５０％ラインデータにして、処理を終了する。
【００８０】
その後、図１２で説明した５０％ライン幅調整を行ったラインデータに対して、多値化処理（Ｓ４０４）及び解像度変換処理（Ｓ４０５）を行う。
【００８１】
図１３は、５０％ライン幅調整時の多値のビットマップ及び５０％ライン幅調整時に用いられるフィルタを示す図である。図１３（ａ）は、図７（ａ）の３画素幅のラインの２値ビットマップに対して、５０％ライン幅調整処理において、１画素置きに間引いた５０％のラインデータ１３０２、１３０４を追加したビットマップである。またさらに、追加した５０％ラインと反対側のラインエッジの１ラインを１画素置きに間引いて５０％ラインデータ１３０３、１３０５にしたラインのビットマップである。図７（ａ）と同様に横の座標１２でレーザー曲がり補正により位相乗換を行うことで、位相が下に１画素ずれたラインのビットマップとなる。
【００８２】
図１３（ｂ）は図７（ｂ）と同じ多値化のための３ｘ３サイズの重み係数を持つフィルタである。
【００８３】
図１３（ｃ）は、図１３（ａ）のビットマップに対してフィルタ（図１３（ｂ））を用いて多値化した多値のビットマップである。図７（ｃ）と比べて５０％ライン調整を行ったため、ライン１３１１は、濃度値０％，１２％，５０％，８８％，８８％，５０％，１２％，０％の画素で構成される。
【００８４】
図１３（ｄ）は、図１３（ｃ）の多値のビットマップを解像度変換処理で１画素置きにサンプリングすることで６００ｄｐｉの解像度に変換した多値のビットマップである。図１３（ｄ）において、位相乗換の前後でラインの位相が１画素ずれるが、位相乗換前のライン１２２１は濃度値１２％，８８％，５０％の３画素で構成され、位相乗換後のライン１２２２は濃度値５０％，８８％，１２％の３画素で構成される。位相乗換前後でラインは、上下で濃度値が反転しているが、同じ濃度値の画素で構成されるため、ラインの太さが変わることはない。さらに、ラインを構成する画素の濃度値の総和は、１２％＋８８％＋５０％＝１５０％となり、図９（ｄ）のラインを構成する画素の濃度値の総和２５％＋１００％＋７５％＝２００％と太さが区別できるようになる。
【００８５】
以上説明したように、本実施形態によれば、奇数幅のラインに濃度が５０％の１画素幅のラインを追加し、元のラインのうちの１画素幅のラインを５０％の濃度に間引く。これにより、位相にかかわらず、常に同じ太さのラインを描画することができ、さらに、奇数幅のラインと、偶数幅のラインとの区別することが可能になる。
【００８６】
なお、本実施形態では１画素置きに間引いた５０％のラインデータを追加し、さらに、追加した５０％ラインと反対側のラインエッジの１ラインを１画素置きに間引く例を説明した。しかしながらこの例に限られるものではなく、多値化して解像度変換した画素値（濃度値）の組み合わせが前記補正の前後において同じ組み合わせ（上下反転を含む）となればよい。例えば、２画素置きに２画素間引いた５０パーセントのラインデータを追加し、追加した５０％ラインと反対側のラインエッジの１ラインを２画素置きに２画素間引く処理でもよい。また、間引くラインについても、エッジとなるラインではなく、エッジから１画素分上のラインを間引く形態でもよい。これらは３ｘ３のフィルタ処理をすることで多値化して解像度変換した画素値（濃度値）の組み合わせが前記補正の前後において同じ組み合わせ（上下反転を含む）となるからである。
【００８７】
また、本実施形態では、ビットマップデータからラインを検出する形態を説明したが、第１の実施形態で説明したような描画コマンドを変更する形態でもよい。例えば、描画コマンドの描画幅が３画素幅を示す場合、その描画コマンドの描画領域の例えば上部に濃度５０パーセントのラインを追加する。また、描画コマンドのライン幅を２画素幅に変更し、変更後のラインの描画領域の下部に濃度５０パーセントの１ラインを追加する形態でもよい。
【００８８】
（その他の実施例）
上記の各実施形態において、位相乗換処理でビットマップデータを副走査方向に１画素分ずらす処理を行ったために、ライン幅の補正前は、ラインに対する画素サンプリングの相対位置の組み合わせが一致しないことを説明した。しかし、本発明の適用範囲は位相乗換処理を行う場合だけに限定されない。すなわち、ライン幅を補正しないとラインに対する画素サンプリングの相対位置の組み合わせが一致しない場合全般に、適用できる。例えば数画素単位で１画素ごとに副走査方向にずれている奇数幅のラインを、偶数幅のラインに補正し、その補正後のラインにサンプリング周期が２画素（偶数画素）となる画素サンプリングを行うようにしても良い。ライン幅の補正と画素サンプリングの間に、上述の多値化を行っても良い。
【００８９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2020205595.tif 000002
【図２】
2020205595.tif 000003
【図３】
2020205595.tif 000004
【図４】
2020205595.tif 000005
【図５】
2020205595.tif 000006
【図６】
2020205595.tif 000007
【図７】
2020205595.tif 000008
【図８】
2020205595.tif 000009
【図９】
2020205595.tif 000010
【図１０】
2020205595.tif 000011
【図１１】
2020205595.tif 000012
【図１２】
2020205595.tif 000013
【図１３】
2020205595.tif 000014