(57)【特許請求の範囲】
【請求項１】
当該画像出力装置に適用する画像データの図形描画命令は、ページメモリ上の任意の図形範囲を指定する命令と、階調濃度を指定する命令と、前記指定された範囲内を前記指定された階調濃度で塗りつぶす命令と、マスクパターンを指定する命令と、前記指定された範囲内をマスクパターンによりマスク演算する命令からなり、
前記図形描画命令を解釈する図形描画命令解釈手段と、
前記図形描画命令を描画属性命令の指定に従ってページメモリに描画を行う図形描画手段と、
該図形描画手段によって得られたページメモリ描画を出力手段に渡すページメモリ描画移転手段と、
前記指定された階調濃度に対応するビットマップパターンを取得するビットマップパターン取得手段と、
前記指定された範囲内を、前記指定された濃度に対応するビットマップパターンを敷き詰めて描画する敷き詰め描画手段と、
前記指定された範囲内を、前記指定されたマスクパターンを用いてマスク演算する第１マスク演算手段と、
マスクパターンを指定するマスクパターン指定手段と、該マスクパターン指定手段で指定したマスクパターンと前記ビットマップパターンとでマスク演算（AND演算）を行う第２マスク演算手段と、前記マスクパターン指定手段が指定したマスクパターンの開始位置を計算するマスクパターン開始位置計算手段と、
ビットマップパターンとマスクパターンをマスク演算した結果のビットON画素数が、最大になるマスクパターンの開始位置を計算する最大マスクパターン開始位置計算手段とを備えたことを特徴とする画像出力装置。
【請求項２】
当該画像出力装置に適用する画像データの図形描画命令は、ページメモリ上の任意の図形範囲を指定する命令と、階調濃度を指定する命令と、前記指定された範囲内を前記指定された階調濃度で塗りつぶす命令と、マスクパターンを指定する命令と、前記指定された範囲内をマスクパターンによりマスク演算する命令からなり、
前記図形描画命令を解釈する図形描画命令解釈手段と、
前記図形描画命令を描画属性命令の指定に従ってページメモリに描画を行う図形描画手段と、
該図形描画手段によって得られたページメモリ描画を出力手段に渡すページメモリ描画移転手段と、
前記指定された階調濃度に対応するビットマップパターンを取得するビットマップパターン取得手段と、
前記指定された範囲内を、前記指定された濃度に対応するビットマップパターンを敷き詰めて描画する敷き詰め描画手段と、
前記指定された範囲内を、前記指定されたマスクパターンを用いてマスク演算する第１マスク演算手段と、
マスクパターンを指定するマスクパターン指定手段と、該マスクパターン指定手段で指定したマスクパターンと前記ビットマップパターンとでマスク演算（AND演算）を行う第２マスク演算手段と、前記マスクパターン指定手段が指定したマスクパターンの開始位置を計算するマスクパターン開始位置計算手段と、
ビットマップパターンとマスクパターンをマスク演算した結果のパターンで表現される濃度と、描画命令で指定された濃度との差分が最小になるマスクパターンの開始位置を計算する最小マスクパターン開始位置計算手段を備えたことを特徴とする画像出力装置。
【請求項３】
請求項１または２のいずれか記載の画像出力装置において、指定される階調濃度が８ビットで表現可能な０〜２５５の整数の濃度値、ビットマップパターンが疑似階調を表現するディザパターンであることを特徴とする画像出力装置。
【請求項４】
請求項３記載の画像出力装置において、描画対象となる図形の種類（文字、グラフィック、イメージ等）毎にディザパターンを有し、複数のディザパターンを描画命令毎に切り替えるディザパターン切替手段を備えたことを特徴とする画像出力装置。
【請求項５】
請求項３記載の画像出力装置において、指定されるパラメータがカラー印刷に用いられるＣＭＹＫ色用の色濃度、ビットマップパターンが疑似階調を表現するＣＭＹＫそれぞれのディザパターンであることを特徴とする画像出力装置。
【請求項６】
請求項３，４，５のいずれか記載の画像出力装置において、閾値（オーダ）テーブルからディザパターンを作成するディザパターン作成手段を備えたことを特徴とする画像出力装置。
【請求項７】
請求項３，４，５のいずれか記載の画像出力装置において、マスクパターンが印刷色材を節約するためのパターンであることを特徴とする画像出力装置。
【請求項８】
請求項1または２記載の画像出力装置において、ビットマップパターンの1画素が多値で表現されることを特徴とする画像出力装置。
【請求項９】
請求項1または２記載の画像出力装置において、出力手段がレーザプリンタであることを特徴とする画像出力装置。
【請求項１０】
請求項1または２記載の画像出力装置において、出力手段がインクジェットプリンタであることを特徴とする画像出力装置。
【請求項１１】
請求項1または２記載の画像出力装置において、ページメモリ生成までの演算処理をグラフィックアクセラレータ等の専用ASICで行うことを特徴とする画像出力装置。
【請求項１２】
請求項1または２記載の画像出力装置において、ページメモリ生成までの演算処理をホストコンピュータ側で行うことを特徴とする画像出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像出力装置に関し、特に任意の図形形状にマスクパターンを描画する場合に、ユーザの意図どおりにマスクパターン描画が可能な画像出力装置に関する。
【０００２】
【従来の技術】
グラフィック用アプリケーションやDTPアプリケーションでは、ユーザが指定した任意の図形の範囲内をマスクパターンで描画する方法を用意していることが多い。例えば、マスクのビットONの画素には指定された色を、マスクのビットOFFの画素には背景を残すことで半透明となるような図形を作成する方法である。また、階調表現能力の低い印刷装置では、ディザパターン等を用いて指定された色濃度を一定の面積を用いて疑似階調表現する手法が多く用いられる。この場合、マスク上に指定された色を表現するためにはマスクとディザパターンのAND演算を行うことになる（従来技術１）。
この従来技術１としては、例えば特開2000-203010号公報, 特開2000-270214号公報「インクジェットプリンタにおけるドット削減方法」の提案がある。
この提案は、色濃度に応じて間引き率（とそれに対応したマスクパターン）を変化させている。
【０００３】
また、プリンタではトナーやインク等の印刷色材を節約するための機能を用意していることが多い。それには一定のマスクパターンでページ全体の描画ドットの削減を行う方式が一般的である（従来技術２）。
この従来技術２としては例えば、特開平09-245150号公報「画像形成方法とその装置」の提案がある。
この提案は、削減用パターンを複数用意し、過度な削減結果とならないように利用者にパターンを選択させる方法である。例えば、第1の実施例における図３，段落番号0031で、B1のパターンを用いると斜めラインのパターンB2が全く残らないが、そのような場合にはA1を選択させることで問題を回避している。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来技術１では、前述の演算により疑似階調表現に必要なビットマップパターンが得られず、指定された濃度より低い濃度で印刷される場合がある。これは双方の繰り返し周波数が近いほどその誤差が拡大し、周波数が一致、つまり同じ幅高さを持つ状態で誤差最大となる可能性が大きくなる。マスクとディザパターンによっては全く印刷されない（濃度０）場合もある。前記特開2000-203010号公報, 特開2000-270214号公報の場合には、ユーザアプリケーションが指定するパターンのようにパターンが限定されている場合は回避が不可能である。
【０００５】
また従来技術２では、描画図形によってはドットの削減量が多く、場合によっては全く印刷されない等、オリジナルの図形から大きくかけ離れてしまう場合がある。前記特開平09-245150号公報の場合には、パターン自体が選択可能であることが完全消失問題を回避する手段となっているが、ユーザアプリケーションが指定するパターンのようにパターンが限定されている場合は回避が不可能である。
【０００６】
そこで本発明の課題は、任意の図形形状にマスクパターンを描画する場合に、ユーザの意図どおりにマスクパターン描画が可能な画像出力装置を提供することである。
【０００７】
【課題を解決するための手段】
前記課題を解決するために請求項１の発明は、当該画像出力装置に適用する画像データの図形描画命令は、ページメモリ上の任意の図形範囲を指定する命令と、階調濃度を指定する命令と、前記指定された範囲内を前記指定された階調濃度で塗りつぶす命令と、マスクパターンを指定する命令と、前記指定された範囲内をマスクパターンによりマスク演算する命令からなり、前記図形描画命令を解釈する図形描画命令解釈手段と、前記図形描画命令を描画属性命令の指定に従ってページメモリに描画を行う図形描画手段と、該図形描画手段によって得られたページメモリ描画を出力手段に渡すページメモリ描画移転手段と、前記指定された階調濃度に対応するビットマップパターンを取得するビットマップパターン取得手段と、前記指定された範囲内を、前記指定された諧調濃度に対応するビットマップパターンを敷き詰めて描画する敷き詰め描画手段と、前記指定された範囲内を、前記指定されたマスクパターンを用いてマスク演算する第１マスク演算手段と、マスクパターンを指定するマスクパターン指定手段と、該マスクパターン指定手段で指定したマスクパターンと前記ビットマップパターンとでマスク演算（AND演算）を行う第２マスク演算手段と、前記マスクパターン指定手段が指定したマスクパターンの開始位置を計算するマスクパターン開始位置計算手段と、ビットマップパターンとマスクパターンをマスク演算した結果のビットON画素数が、最大になるマスクパターンの開始位置を計算する最大マスクパターン開始位置計算手段とを備えたことを特徴とする。
【０００８】
このようにすれば、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの最高濃度となるマスクパターン開始位置を計算しているので、出力結果が理論濃度より低濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。また、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの理論濃度値に最も近い濃度となるマスクパターン開始位置を計算しているので、出力結果が理論濃度より低濃度や高濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。
【００１０】
また、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの最高濃度となるマスクパターン開始位置を計算しているので、出力結果が理論濃度より低濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。また、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの理論濃度値に最も近い濃度となるマスクパターン開始位置を計算しているので、出力結果が理論濃度より低濃度や高濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。
【００１１】
また、ビットマップパターンとマスクパターンをマスク演算した結果のビットON画素数が、最大になるマスクパターンの開始位置を計算する最大マスクパターン開始位置計算手段を備えていて、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの最高濃度となるマスクパターン開始位置を計算しているので、出力結果が理論濃度より低濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。
【００１２】
請求項２記載の画像出力装置は、上記装置の最大マスクパターン開始位置計算手段に換えて、ビットマップパターンとマスクパターンをマスク演算した結果のパターンで表現される濃度と、描画命令で指定された濃度との差分が最小になるマスクパターンの開始位置を計算する最小マスクパターン開始位置計算手段を備えたことを特徴とする。このようにすれば、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの理論濃度値に最も近い濃度となるマスクパターン開始位置を計算しているので、出力結果が理論濃度より低濃度や高濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。
【００１３】
また、請求項３では、請求項１または２のいずれか記載の画像出力装置において、指定される階調濃度が８ビットで表現可能な０〜２５５の整数の濃度値、ビットマップパターンが疑似階調を表現するディザパターンであることを特徴とする。このようにすれば、ディザパターンは1画素での階調表現能力の低い画像出力装置において、ドットの集合パターンを使うことで疑似階調を表現するために用いられる。通常、ディザパターンは指定可能な濃度種類数（通常８ビットで表現可能な０〜２５５の２５６通り）分のビットマップであり、それをタイル状に敷き詰めることで描画される。本発明のビットマップパターンに前記ディザパターンが適用可能であり、適用すれば請求項１または２のいずれかの発明による効果が見込めるため同等の効果が得られる。
【００１４】
また、請求項４では、請求項３記載の画像出力装置において、描画対象となる図形の種類（文字、グラフィック、イメージ等）毎にディザパターンを有し、複数のディザパターンを描画命令毎に切り替えるディザパターン切替手段を備えたことを特徴とする。このようにすれば、描画対象となる図形の種類（文字、グラフィック、イメージ等）毎にディザパターンの切り替えが可能な複数のディザパターンを有する画像印刷装置でも、ディザパターンそれぞれに請求項３の描画方法を適用することで、同様の効果が得られる。
【００１５】
また、請求項５では、請求項３記載の画像出力装置において、指定されるパラメータがカラー印刷に用いられるＣＭＹＫ色用の色濃度、ビットマップパターンが疑似階調を表現するＣＭＹＫそれぞれのディザパターンであることを特徴とする。このようにすれば、ディザパターンはCMYKを色材とするカラーの印刷装置にも一般的に使用される。各色材毎にディザパターンを有し、各色材毎にページメモリを生成し、出力時にそれらを重ねあわせて印刷する。各色材毎のディザパターンそれぞれに請求項１，２を適用してしまうと、各色材毎のマスクパターン開始位置が異なってしまい、それらを重ねあわせると期待結果と異なってしまう。そこで、マスクパターン開始位置計算時に全色材に対するビットON画素数を計算することで、全色材共通のマスクパターン開始位置を得られることができるので、請求項１，２と同様の効果が得られる。
【００１６】
また、請求項６では、請求項３，４，５のいずれか記載の画像出力装置において、閾値（オーダ）テーブルからディザパターンを作成するディザパターン作成手段を備えたことを特徴とする。このようにすれば、ディザパターンは各濃度値毎に１つ必要となりデータ量が大きくなるため、ディザパターンのビットがOFFからONに変化する濃度値の閾値を幅高さ分有する閾値（オーダ）テーブルから作成されるのが一般的である。閾値テーブルを用いてディザパターンを得る装置においても、請求項３の描画方法を適用することで、同様の効果が得られる。
【００１７】
また、請求項７では、請求項３，４，５のいずれか記載の画像出力装置において、マスクパターンが印刷色材を節約するためのパターンであることを特徴とする。このようにすれば、マスクパターンはトナーやインク等の印刷色材を節約するために用いられることがある。この場合、ページ全体にマスクパターンが適用されるので、この節約用マスクパターンを用いた通常の図形描画処理で本発明が適用可能である。
【００１８】
また、請求項８では、請求項1または２記載の画像出力装置において、ビットマップパターンの1画素が多値で表現されることを特徴とする。このようにすれば、ビットマップパターンの1画素がビットON/OFFの2値ではなく、複数ビットによる多値で表現される場合、ビットON画素数を対象とするのではなく、ビットONとなるビット数を対象とすることで本発明が適用可能である。
【００１９】
また、請求項９では、請求項1または２記載の画像出力装置において、出力手段がレーザプリンタであることを特徴とする。このようにすれば、レーザプリンタのようにページメモリの生成をプリンタ側で行う場合、各描画命令からページメモリを生成するプリンタ側の処理に本発明が適用可能である。
【００２０】
また、請求項１０では、請求項1または２記載の画像出力装置において、出力手段がインクジェットプリンタであることを特徴とする。このようにすれば、インクジェットプリンタのようにページメモリの生成をホストコンピュータ側で行う場合、各描画命令からページメモリを生成するホストコンピュータ側の処理に本発明が適用可能である。
【００２１】
また、請求項１１では、請求項1または２記載の画像出力装置において、ページメモリ生成までの演算処理をグラフィックアクセラレータ等の専用ASICで行うことを特徴とする。このようにすれば、ページメモリの生成をプリンタ側のＣＰＵを用いたソフトウェア処理ではなく、グラフィックアクセラレータ等の専用ASICで行う場合、各描画命令からページメモリを生成するASIC内の処理に本発明が適用可能である。
【００２２】
また、請求項１２では、請求項1または２記載の画像出力装置において、ページメモリ生成までの演算処理をホストコンピュータ側で行うことを特徴とする。このようにすれば、出力装置に関係なく、ページメモリの生成をホストコンピュータ側で行う場合、各描画命令からページメモリを生成するホストコンピュータ側の処理に本発明が適用可能である。
【００２３】
【発明の実施の形態】
以下、本発明を図示の実施の形態に基づいて説明する。
（１）第１の実施の形態…請求項１に対応
図１は第1の実施の形態および次に説明する第２の実施の形態を適用する画像出力装置システムＧＳの構成図である。図１に示すように、画像出力装置システムＧＳは、データ入力装置１０と、画像出力装置２０と、「出力手段」である出力装置３０とからなる。データ入力装置１０は、画像出力装置２０に描画データを入力する。画像出力装置２０は、「図形描画命令解釈手段」であるインタプリタ２１，「マスクパターン開始位置計算手段，最大マスクパターン開始位置計算手段，最小マスクパターン開始位置計算手段」であるマスク座標計算処理２２，「図形描画手段，ページメモリ描画移転手段，ビットマップパターン取得手段」である図形描画処理２３，「マスクパターン指定手段，第１マスク演算手段，第２マスク演算手段，敷き詰め描画手段」であるマスク描画処理２４，ＣＰＵ２５，中間データメモリ２６，マスクパターンメモリ２７，ビットマップパターンメモリ２８，ページメモリ２９で構成され、出力装置３０に出力する。
【００２４】
画像出力装置２０に入力された描画データはインタプリタ２１に入力され、その後の描画処理に適した中間データに解釈され、中間データメモリ２６に蓄積される。計算処理はＣＰＵ２５が行う。中間データは描画範囲指定命令，描画色指定命令等で構成され、その中にマスクパターン指定命令を含む。マスクパターン指定命令はマスクパターンメモリ２７にデータを格納する。
図形描画処理２３は、中間データメモリ２６の内容に従ってそこに含まれた図形を描画する。指定色に対応したビットマップパターンをビットマップパターンメモリ２８から取得し、ページメモリ２９に描画する。マスクパターンを用いた図形の場合、マスク描画処理２４がマスクパターンメモリ２７に格納されたマスクパターンと指定された描画範囲，描画色で描画処理を行う。その際、マスク座標計算処理２２を用いてマスクパターンの開始座標の計算を行う。１ページ分の描画命令が終了したら、ページメモリ２９の内容を出力装置３０に出力する。
【００２５】
図２にて、図１のマスク描画処理２４で行われるマスク演算の簡単な例を説明する。まず、図１のビットマップパターンメモリ２８から演算元となるソースパターンS（図２(a)）を得る。これは、描画色指定命令で指定された描画色に対応したビットマップである。大きさは 8×8の64画素である。白部分をビットOFF、黒部分をビットONとする。また、マスクパターンメモリ２７からマスクパターンM(図２(b))を得る。これは、マスクパターン指定命令に対応したビットマップである。簡単のためソースパターンSと同じ大きさとする。ソースパターンSとマスクパターンMの同位置をAND演算した結果が、結果パターンD（図２(c)）である。これをページメモリ２９上の指定された範囲に、指定されたページメモリとの演算方法（例えば上書きならSET演算）を用いて描画する。実際の描画では、描画範囲に合わせて、ソースパターンSを縦横にタイル状に敷き詰めたパターン集合と、同じくマスクパターンMを縦横に敷き詰めたパターン集合との演算を行う。
【００２６】
本実施の形態では、結果パターンDが最大濃度（ビットONが最大個数）になるようにマスクパターンMの開始位置座標を移動する。マスクパターンは縦横繰り返して用いられるので、開始位置座標を移動してもパターン自体は変わらない。
【００２７】
図３に、図１におけるマスク座標計算処理で計算される開始位置座標の処理フローを示す。
Step1にて、ビットON最大画素数Dmax,最大画素数となる座標(Dx,Dy)を0に初期化する。これらはStep5で用いられる。
Step2にて、マスクパターン開始Y座標であるyを0に初期化する。
Step3にて、マスクパターン開始X座標であるxを0に初期化する。
【００２８】
Step4にて、マスクパターンの原点を (x,y) 分（右下に）ずらす。マスクパターンは縦横繰り返して用いられるので、ずらしたことではみ出た部分は循環する。例えば、1画素分縦にずらす(y=1)のであれば、全画素を1画素分縦にずらした後、はみ出た最終行が1行目に移動する。また、2画素分横にずらす(x=1)のであれば、全画素を2画素分横にずらした後、はみ出た右から2画素分が、そのまま左から2画素分に移動する。できたマスクパターンとソースパターンSでマスク演算（AND）を行い、ビットONの画素数をカウントし、それを変数Dnumに設定する。
Step5にて、Step4でカウントされたDnumと、今までのビットON最大画素数Dmaxと比較し、Dnumのほうが大きければStep6へ、以下だったらStep7へ進む。
【００２９】
Step6にて、Step5でDnum＞Dmaxと判定されたので、Dnum, x, y をそれぞれ Dmax, Dx, Dy に保存する。これが現時点でのビットON画素最大となる数と位置となる。
Step7にて、xを１つ増やし、同一ライン (y) での右方向へのずらしが全パターン終了したらStep8に進み、途中であればStep4に戻る。
Step8にて、yを１つ増やし、下方向へのずらしが全パターン終了したら処理終了、途中であればStep3に戻る。
処理終了した時点の (Dx, Dy) が、ビットON画素が最大となるマスクパターンMのずらし量、つまり、マスクパターンMの開始座標点となる。
【００３０】
図４に本実施の形態の適用例を示す。まず、図４(a)のソースパターンSと図４(b)のマスクパターンMを入力として図３のフローを用いて計算すると (Dx, Dy) = (3, 3) という結果が得られる。マスクパターンMを(3,3)ずらした結果が図４(c)のマスクパターンM’である。これとソースパターンSでマスク演算を行うと、図４(d)の結果パターンが得られる。これは、マスクパターンMの左上にある２ｘ２のビットON画素(図４(b)の2)がマスクパターンM’の図４(c)の3の位置に移動し、これとソースパターンSの中央にある２ｘ２のビットON画素(図４(a)の1)が重なり、結果パターンDでビットON画素が4画素となる位置である。
【００３１】
本実施の形態の作用効果
このように、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常にそのマスクパターンでの最高濃度となるマスクパターン開始位置を計算することで、出力結果が理論濃度より低濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。例えば、図２(b)のマスクパターンMが横に2画素ずれたパターンとソースパターンSでマスク演算すると全画素ビットOFFとなり、この組み合わせを用いた図形描画では何も描画されないことになるが、本実施の形態を用いれば図４(d)にあるように4画素分、濃度にして 4/64 にて描画される。
【００３２】
本実施の形態では結果パターン濃度が最高濃度となるように計算しているので、理論的な濃度値との差分が生じることになる。理論濃度はソースパターンSに対応する濃度LsとマスクパターンMの濃度Lmを乗じた値 Ls × Lm  とする。この差分は濃度の高いほう（濃いほう）への差分となるので、理論濃度より濃いパターンで描画されることがある。例えば、図４では、Ls = 8/64,  Lm=8/64 であるので理論濃度は 1/64 となり、理論的には 64画素で1画素がビットONになれば良いのだが、本実施の形態を用いると図４(d)の4画素がビットONとなり、その差3画素分濃く出ることになる。
【００３３】
マスクパターンを用いた図形の出力濃度の正確性を求められる用途には不向きだが、一般的なビジネス文書に見られるような図表やグラフなどの塗りつぶしに用いるマスクパターンでは、多少濃度差があっても何も出力されないような濃度0での出力は回避されること、マスクパターンが異なってもマスクパターン濃度Lmが同一であれば任意のソースパターンに対応する指定濃度Ls、任意の位置で、同一濃度で出力されることが要求される。このような用途に本例を適用すると要求事項が満たされる。
なお、本例ではソースパターン1画素が表現しうる階調数を2値 (1bit) としたが、2bit, 4bit, 8bit 等の多値でも同様に適用可能である。
【００３４】
（２）第２の実施の形態…請求項２に対応
前記第１の実施の形態では、結果パターンDが最大濃度（ビットONが最大個数）になるようにマスクパターンMの開始位置座標を計算したが、本実施の形態では、ソースパターンSに対応する濃度LsとマスクパターンMの濃度Lmから、結果パターンDの濃度Ldが理論濃度 Ls × Lm に最も近い濃度となるようなマスクパターンMの開始位置座標を計算する。画像出力装置システムＧＳの構成図は、図１と同様である。
【００３５】
図５に、図１におけるマスク座標計算処理で計算される開始位置座標の処理フローを示す。
Step0にて、理論濃度  Ls × Lm に最も近いパターンのビットON画素数Dtを計算する。Lsを入力濃度値(0.0〜1.0)、Lmを指定されたマスクパターンMのビットON画素割合 (ビットON画素数÷全画素数)、Dw,DhをそれぞれマスクパターンMの幅高さとすると、以下の計算式からDtを計算する。
Dt = (Ls × Lm)  × (Dw × Dh)                           （式１）
Dt は小数なので切り上げ、切り捨て、四捨五入により整数に丸める（方法は任意）。
これに最も近いビットON画素数となる開始位置座標を以下のStepで検索することになる。
【００３６】
Step1にて、最も近いビットON画素数Daveを (Dw×Dh) に、座標(Dx,Dy)をそれぞれ0に初期化する。これらはStep5で用いられる。
Step2にて、マスクパターン開始Y座標であるyを0に初期化する。
Step3にて、マスクパターン開始X座標であるxを0に初期化する。
Step4にて、マスクパターンの原点を (x,y) 分（右下に）ずらす。マスクパターンは縦横繰り返して用いられるので、ずらしたことではみ出た部分は循環する。例えば、1画素分縦にずらす(y=1)のであれば全画素を1画素分縦にずらした後、はみ出た最終行が1行目に移動する。また、2画素分横にずらす(x=1)のであれば、全画素を2画素分横にずらした後、はみ出た右から2画素分が、そのまま左から2画素分に移動する。できたマスクパターンとソースパターンSでマスク演算（AND）を行い、ビットON画素数をカウントし、それを変数Dnumに設定する。
【００３７】
Step5にて、Step4でカウントされたDnumと、今までDtに最も近いビットON最大画素数Daveとの差分の絶対値とを比較し、Daveのほうが大きければStep6へ、以下だったらStep7へ進む。
Step6にて、Step5でDaveがDtに最も近いと判定されたので、Dnum, x, y をそれぞれ Dave, Dx, Dy に保存する。これが現時点でDtに最も近いビットON画素数とその位置となる。
Step7にて、xを１つ増やし、同一ライン (y) での右方向へのずらしが全パターン終了したらStep8に進み、途中であればStep4に戻る。
Step8にて、yを１つ増やし、下方向へのずらしが全パターン終了したら処理終了、途中であればStep3に戻る。
処理終了した時点の (Dx, Dy) が理論濃度に最も近いビットON画素数となるマスクパターンMとなるずらし量、つまり、マスクパターンMの開始座標点となる。
【００３８】
図６に本実施の形態の適用例を示す。ここでは、Ls=8/64 の入力データから図６(a)のソースパターンSがビットマップパターンメモリから得られたとする。また、図６(b)のマスクパターンMの濃度は Lm=8/64 である。また、Dw=Dh=8である。これらの値を図５のStep0の式１に当てはめると、Dt=1となる。以降図５のフローを用いて計算すると (Dx, Dy) = (3,1) という結果が得られる。マスクパターンMを(3,1)ずらした結果が図６(c)のマスクパターンM’である。これとソースパターンSでマスク演算を行うと、図６(d)の結果パターンが得られる。これは、マスクパターンMの左上にある２×２のビットON画素(図６(b)の2)がマスクパターンM’の図６(c)の3の位置に移動し、これとソースパターンSの一番上のビットON画素(図６(a)の1)が重なり、結果パターンDでビットON画素が1画素となる位置である。
【００３９】
本実施の形態の作用効果
このように、ソースパターンとマスクパターンの組み合わせで得られる結果パターンの濃度が、常に理論濃度に近い値となるマスクパターン開始位置を計算することで、出力結果が理論濃度とは異なる濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。例えば、図４または図６のソースパターンSの濃度はLs = 8/64, マスクパターンの濃度は Lm=8/64 であるので、理論濃度は 1/64 である。本例を用いないと、得られる結果パターンDの濃度は図２(c) にあるようにビットON画素が2画素となる 2/64 となり、また、第１の実施の形態を用いると 4/64 となり、双方理論濃度と実際に得られる出力濃度との間に差が生じる。
【００４０】
マスクパターンを用いた図形の出力濃度の正確性を求められる用途に本例を適用すると要求事項が満たされる。
なお、本例ではソースパターン1画素が表現しうる階調数を2値 (1bit) としたが、2bit, 4bit, 8bit 当の多値でも同様に適用可能である。
【００４１】
なお、前記各実施の形態では矩形の場合を説明したが、例えば円形，楕円形等の任意形状の図形の場合にも、本発明を適用可能であるのは勿論である。
【００４２】
【発明の効果】
以上説明したように本発明によれば、以下の効果を発揮することができる。
（１）請求項１によれば、出力結果が理論濃度より低濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。
（２）請求項２によれば、出力結果が理論濃度より低濃度や高濃度となる不具合や、最悪完全に描画されない（濃度０）不具合を回避することが可能となる。
【００４３】
（３）請求項３によれば、ディザパターンは1画素での階調表現能力の低い画像出力装置において、ドットの集合パターンを使うことで疑似階調を表現するために用いられる。通常、ディザパターンは指定可能な濃度種類数（通常８ビットで表現可能な０〜２５５の２５６通り）分のビットマップであり、それをタイル状に敷き詰めることで描画される。本発明のビットマップパターンに前記ディザパターンが適用可能であり、適用すれば請求項１，２の効果が見込めるため同等の効果が得られる。
【００４４】
（４）請求項４によれば、描画対象となる図形の種類毎にディザパターンの切り替えが可能な複数のディザパターンを有する画像印刷装置でも、ディザパターンそれぞれに請求項３の描画方法を適用することで、同様の効果が得られる。
（５）請求項５によれば、マスクパターン開始位置計算時に全色材に対するビットON画素数を計算することで、全色材共通のマスクパターン開始位置を得られることができるので、請求項３，４と同様の効果が得られる。
【００４５】
（６）請求項６によれば、閾値テーブルを用いてディザパターンを得る装置においても、請求項３の描画方法を適用することで、同様の効果が得られる。
（７）請求項７によれば、マスクパターンはトナーやインク等の印刷色材を節約するために用いられる場合に、ページ全体にマスクパターンが適用されるので、この節約用マスクパターンを用いた通常の図形描画処理で本発明が適用可能である。
（８）請求項８によれば、ビットマップパターンの1画素がビットON/OFFの2値ではなく、複数ビットによる多値で表現される場合に、ビットON画素数を対象とするのではなく、ビットONとなるビット数を対象とすることで本発明が適用可能である。
【００４６】
（９）請求項９によれば、レーザプリンタのようにページメモリの生成をプリンタ側で行う場合に、各描画命令からページメモリを生成するプリンタ側の処理に本発明が適用可能である。
（１０）請求項１０によれば、インクジェットプリンタのようにページメモリの生成をホストコンピュータ側で行う場合に、各描画命令からページメモリを生成するホストコンピュータ側の処理に本発明が適用可能である。
（１１）請求項１１によれば、ページメモリの生成をプリンタ側のＣＰＵを用いたソフトウェア処理ではなく、グラフィックアクセラレータ等の専用ASICで行う場合に、各描画命令からページメモリを生成するASIC内の処理に本発明が適用可能である。
（１２）請求項１２によれば、出力装置に関係なく、ページメモリの生成をホストコンピュータ側で行う場合に、各描画命令からページメモリを生成するホストコンピュータ側の処理に本発明が適用可能である。
【図面の簡単な説明】
【図１】本発明の第１，第２の実施の形態を適用する画像出力装置システムの構成図である。
【図２】画像出力装置システムにおけるマスク描画処理で行われるマスク演算の簡単な例の説明図であって、（ａ）はソースパターン、（ｂ）はマスクパターン、（ｃ）は結果パターンである。
【図３】第１の実施の形態におけるマスク座標計算処理で計算される開始位置座標の処理フローである。
【図４】第１の実施の形態の適用例を示す図であって、(a)はソースパターン、(b)はマスクパターン、 (c)はずらしたマスクパターン、 (d)は結果パターンである。
【図５】第２の実施の形態におけるマスク座標計算処理で計算される開始位置座標の処理フローである。
【図６】第１の実施の形態の適用例を示す図であって、(a)はソースパターン、(b)はマスクパターン、 (c)はずらしたマスクパターン、 (d)は結果パターンである。
【符号の説明】
ＧＳ…画像出力装置システム
S  …ソースパターン
M  …マスクパターン
M’…ずらしたマスクパターン
D  …結果パターン
１…ソースパターンの一番上のビットON画素の位置
２…マスクパターンの左上にある２ｘ２のビットON画素の位置
３…移動後のマスクパターンの左上にある２ｘ２のビットON画素の位置
１０…データ入力装置
２０…画像出力装置
２１…インタープリタ
２２…マスク座標計算処理
２３…図形描画処理
２４…マスク描画処理
２５…ＣＰＵ
２６…中間データメモリ
２７…マスクパターンメモリ
２８…ビットマップパターンメモリ
２９…ページメモリ
３０…出力装置
【図１】
0003876163.tif 000002
【図２】
0003876163.tif 000003
【図３】
0003876163.tif 000004
【図４】
0003876163.tif 000005
【図５】
0003876163.tif 000006
【図６】
0003876163.tif 000007