(57)【特許請求の範囲】
【請求項１】
第１色の階調値に対してハーフトン処理を行った第１ハーフトンパターンが記憶される、水平ラインに沿った方向であるＸ方向に描画単位でアクセスされる第１の記憶手段と、
第２色の階調値に対してハーフトン処理を行った第２ハーフトンパターンが記憶される、Ｘ方向に描画単位でアクセスされる第２の記憶手段と、
ブラシパターンが記憶される、Ｘ方向に描画単位でアクセスされる第３の記憶手段と、
前記第１の記憶手段から前記描画単位で読み出された前記第１ハーフトンパターンがそれぞれ供給される、該供給された該第１ハーフトンパターンを、水平ラインにおける描画位置から水平ライン上の描画始点に向かう第１の方向に、前記描画位置と該第１ハーフトンパターンの幅とに基づく第１のシフト量でシフトさせる第１のシフト手段と、該供給された該第１ハーフトンパターンを、水平ライン上の描画終点に向かう第２の方向に、該第１のシフト量と前記描画単位とに基づく第２のシフト量でシフトさせる第２のシフト手段とを含み、該第１のシフト手段でシフトされた第１ハーフトンパターンと、該第２のシフト手段でシフトされた第１ハーフトンパターンとを、前記描画単位で出力する第１のパターン出力手段と、
前記第２の記憶手段から前記描画単位で読み出された前記第２ハーフトンパターンがそれぞれ供給される、該供給された該第２ハーフトンパターンを、前記第１の方向に、前記描画位置と該第２ハーフトンパターンの幅とに基づく第３のシフト量でシフトさせる第３のシフト手段と、該供給された該第２ハーフトンパターンを、前記第２の方向に、該第３のシフト量と前記描画単位とに基づく第４のシフト量でシフトさせる第４のシフト手段とを含み、該第３のシフト手段でシフトされた第２ハーフトンパターンと、該第４のシフト手段でシフトされた第２ハーフトンパターンとを、前記描画単位で出力する第２のパターン出力手段と、
前記第３の記憶手段から前記描画単位で読み出された前記ブラシパターンがそれぞれ供給される、該供給された該ブラシパターンを、前記第１の方向に、前記描画位置と該ブラシ−パターンの幅とに基づく第５のシフト量でシフトさせる第５のシフト手段と、該供給された該ブラシパターンを、前記第２の方向に、該第５のシフト量と前記描画単位とに基づく第６のシフト量でシフトさせる第６のシフト手段とを含み、該第５のシフト手段でシフトされたブラシパターンと、該第６のシフト手段でシフトされたブラシパターンとを、前記描画単位で出力する第３のパターン出力手段と、
前記第１のパターン出力手段から出力される前記描画単位の前記第１ハーフトンパターンと、前記第２のパターン出力手段から出力される前記描画単位の前記第２のハーフトンパターンとのうち何れを出力するかを、前記第３のパターン出力手段から出力され前記描画単位の前記ブラシパターンに従い画素単位で選択するブラシ合成手段と、
前記ブラシ合成手段による前記描画単位の処理が終了した場合に前記描画位置を前記描画単位に従い更新する制御手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
前記第１の記憶手段は、前記第１ハーフトンパターンが、Ｘ方向の幅が前記描画単位のＸ方向の幅以下で、且つ、最大となるように、Ｘ方向に繰り返して記憶され、
前記第２の記憶手段は、前記第２ハーフトンパターンが、Ｘ方向の幅が前記描画単位のＸ方向の幅以下で、且つ、最大となるように、Ｘ方向に繰り返して記憶され、
前記第３の記憶手段は、前記ブラシパターンが、Ｘ方向の幅が前記描画単位のＸ方向の幅以下で、且つ、最大となるように、Ｘ方向に繰り返して記憶される
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２のシフト手段は、
前記描画単位のＸ幅から、前記描画位置に応じたシフト分と、前記描画単位のＸ方向の幅を前記第１ハーフトンパターンが前記繰り返された幅で除した余り値分とを差し引いた位置まで前記第１ハーフトンパターンをシフトさせ、
前記第４のシフト手段は、
前記描画単位のＸ幅から、前記描画位置に応じたシフト分と、前記描画単位のＸ方向の幅を前記第２ハーフトンパターンが前記繰り返された幅で除した余り値分とを差し引いた位置まで前記第２ハーフトンパターンをシフトさせ、
前記第６のシフト手段は、
前記描画単位のＸ幅から、前記描画位置に応じたシフト分と、前記描画単位のＸ方向の幅を前記ブラシパターンが前記繰り返された幅で除した余り値分とを差し引いた位置まで前記ブラシパターンをシフトさせる
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
第１色の階調値および第２色の階調値それぞれと、ハーフトン閾値記憶手段に記憶されるハーフトン閾値とを比較して、該第１色の階調値に基づく前記第１ハーフトンパターンと、該第２色の階調値に基づく前記第２ハーフトンパターンとを生成し、該第１ハーフトンパターンを前記第１の記憶手段に記憶させ、該第２ハーフトンパターンを前記第２の記憶手段に記憶させるハーフトンパターン生成手段をさらに有する
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の画像処理装置。
【請求項５】
水平ラインに沿った方向であるＸ方向に描画単位でアクセスされる第１の記憶手段から前記描画単位で読み出された、第１色の階調値に対してハーフトン処理を行った第１ハーフトンパターンを、水平ラインにおける描画位置から水平ライン上の描画始点に向かう第１の方向に、前記描画位置と該第１ハーフトンパターンの幅とに基づく第１のシフト量でシフトさせる第１のシフトステップと、
前記第１の記憶手段から前記描画単位で読み出された前記第１ハーフトンパターンを、水平ライン上の描画終点に向かう第２の方向に、前記第１のシフト量と前記描画単位とに基づく第２のシフト量でシフトさせる第２のシフトステップと、
前記第１のシフトステップによりシフトされた第１ハーフトンパターンと、前記第２のシフトステップによりシフトされた第１ハーフトンパターンとを、前記描画単位で出力する第１のパターン出力ステップと、
Ｘ方向に描画単位でアクセスされる第２の記憶手段から前記描画単位で読み出された、第２色の階調値に対してハーフトン処理を行った第２ハーフトンパターンを、前記第１の方向に、前記描画位置と該第２ハーフトンパターンの幅とに基づく第３のシフト量でシフトさせる第３のシフトステップと、
前記第２の記憶手段から前記描画単位で読み出された前記第２ハーフトンパターンを、前記第２の方向に、該第３のシフト量と前記描画単位とに基づく第４のシフト量でシフトさせる第４のシフトステップと、
前記第３のシフトステップによりシフトされた第２ハーフトンパターンと、前記第４のシフトステップによりシフトされた第２ハーフトンパターンとを、前記描画単位で出力する第２のパターン出力ステップと、
Ｘ方向に描画単位でアクセスされる第３の記憶手段から前記描画単位で読み出されたブラシパターンを、前記第１の方向に、前記描画位置と該ブラシ−パターンの幅とに基づく第５のシフト量でシフトさせる第５のシフトステップと、
前記第３の記憶手段から前記描画単位で読み出された前記ブラシパターンを、前記第２の方向に、該第５のシフト量と前記描画単位とに基づく第６のシフト量でシフトさせる第６のシフトステップと、
該第５のシフトステップによりシフトされたブラシパターンと、該第６のシフトステップによりシフトされたブラシパターンとを、前記描画単位で出力する第３のパターン出力ステップと、
前記第１のパターン出力ステップにより出力される前記描画単位の前記第１ハーフトンパターンと、前記第２のパターン出力ステップにより出力される前記描画単位の前記第２のハーフトンパターンとのうち何れを出力するかを、前記第３のパターン出力ステップにより出力される前記描画単位の前記ブラシパターンに従い画素単位で選択するブラシ合成ステップと
前記ブラシ合成ステップによる前記描画単位の処理が終了した場合に前記描画位置を前記描画単位に従い更新する制御ステップと
を有する
ことを特徴とする画像処理方法。
【請求項６】
請求項１乃至請求項４の何れか１項に記載の画像処理装置と、
前記ブラシ合成手段の出力に従い印刷媒体に画像形成を行う画像形成手段と
を有する
ことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷媒体に対する画像形成に用いて好適な画像処理装置および画像処理方法、ならびに、画像形成装置に関する。
【背景技術】
【０００２】
従来、ページプリンタなどにおいて、印刷解像度の高解像度化や、印刷速度の高速化が要求されている一方で、プリンタの動作を制御するＣＰＵ(Central  Processing  Unit)の処理能力のみでは、これらの要求を満たすことが困難となってきている。特にカラープリンタでは、各種の画像処理に加えて、Ｃ色、Ｍ色、Ｙ色、Ｋ色の各版の画像の描画処理、色変換処理、ハーフトン(Half  Tone)処理などより多くの処理が必要となる。
【０００３】
ここで、従来技術によるプリンタにおける処理の流れについて、概略的に説明する。パーソナルコンピュータなどで作成された例えばＰＤＬ(Page  Description  Language)データが、ネットワークやケーブルなど所定のインターフェイスを介してプリンタに転送される。プリンタは、転送されたＰＤＬデータを解析して、プリンタにおける描画部が実行可能な中間言語を作成する。描画部は、作成された中間言語を解析して画像データを生成し、生成した画像データに対して階調処理を施して２値化画像データを得る。この２値化画像データを、バンドメモリに対して描画し、バンドメモリに書き込む。画像の描画は、Ｃ、Ｍ、Ｙ、Ｋの各色毎に行われる。
【０００４】
プリンタは、バンドメモリに描画された各色の画像データを、ＪＢＩＧ(Joint  Bi-level  Image  Coding  Expert  Group)などの２値画像の圧縮アルゴリズムにより符号化し、生成された符号をそれぞれメモリに書き込む。プリンタは、印字時に、Ｃ、Ｍ、Ｙ、Ｋ各版毎に遅延させてメモリから符号を読み出してそれぞれ復号し、復号したデータをＣ、Ｍ、Ｙ、Ｋ各版に対応するプリンタエンジンに転送して印字を行う。
【０００５】
多値階調を持つ画像データを、印字に適した２値の画像データに変換する階調処理の一つに、ハーフトン処理がある。ハーフトン処理は、グラデーションのような多値の階調を持つ画像データに対し、階調の値に応じた２値のパターンを当て嵌める。所定の面積内で２値のパターンの比率を変えることで、所望の階調値に対応した２値の画像を得ることができる。
【０００６】
ハーフトン処理に関し、例えば特許文献１には、ハーフトーンパターンの基本パターンをビットシフトすることによりハーフトーンパターンを作成すると共に、描画部を起動して、作成したハーフトーンパターンをハーフトーンリピート機能を用いて描画し、ハーフトーンパターンを、描画部のメモリバウンダリ幅と基本ビットパターンの幅の最小公倍数を用いて作成するようにした技術が開示されている。
【０００７】
また例えば、特許文献２には、ハーフトンパターン記憶手段に、描画ワードＸ幅のハーフトンパターンを少なくともハーフトンパターンのＹ幅分を記憶し、ハーフトンパターンアドレス値に対応するハーフトンパターンを用いてハーフトンパターンシフト値分の巡回シフト処理を行うようにした技術が記載されている。特許文献２によれば、同じ階調値である描画オブジェクトに対するハーフトンパターンを繰り返し使用することが可能となる。そのため、特許文献１のように、ハーフトーンパターンを、描画部のメモリバウンダリ幅と基本ビットパターンの幅の最小公倍数を用いて作成する必要が無く、メモリ容量を節約することができる。
【０００８】
ところで、一方、プリンタにおける描画に関する画像処理の一つとして、ブラシ処理がある。ブラシ処理は、例えばＲ、Ｇ、Ｂ各色を用いて所望の色を作成して描画を行う処理である。
【０００９】
従来、プリンタにおける画像処理では、ブラシ処理により描画を行い、描画された画像データに対してハーフトン処理により階調処理を施していた。すなわち、１ページ分の画像に対してブラシ処理を施し、このブラシ処理が施された１パージ分の画像に対してハーフトン処理を施すため、１ページ分の画像データを格納可能なメモリが必要となり、コストが嵩んでしまう。
【００１０】
そのため、従来、図２０（ａ）に例示する２値のブラシパターンの値「１」および「０」の部分に対し、図２０（ｂ）に例示する第１色と、図２０（ｃ）に例示する第２色とをそれぞれ適用して、第１色と第２色とを切り替えて描画するブラシ処理方法が知られている。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述した特許文献２は、ハーフトン処理においては、ハーフトンパターンを繰り返し使用するようにしているため、必要となるメモリ容量を抑えることができる。しかしながら、特許文献２にはブラシ処理について全く開示されておらず、特許文献２の方式を図２０を用いて説明したようなブラシ処理に適用することが困難であった。
【００１２】
本発明は、上記に鑑みてなされたものであって、ブラシ処理およびハーフトン処理をより少ないメモリ容量で実行可能とすることを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、第１色の階調値に対してハーフトン処理を行った第１ハーフトンパターンが記憶される、水平ラインに沿った方向であるＸ方向に描画単位でアクセスされる第１の記憶手段と、第２色の階調値に対してハーフトン処理を行った第２ハーフトンパターンが記憶される、Ｘ方向に描画単位でアクセスされる第２の記憶手段と、ブラシパターンが記憶される、Ｘ方向に描画単位でアクセスされる第３の記憶手段と、第１の記憶手段から描画単位で読み出された第１ハーフトンパターンがそれぞれ供給される、供給された第１ハーフトンパターンを、水平ラインにおける描画位置から水平ライン上の描画始点に向かう第１の方向に、描画位置と第１ハーフトンパターンの幅とに基づく第１のシフト量でシフトさせる第１のシフト手段と、供給された第１ハーフトンパターンを、水平ライン上の描画終点に向かう第２の方向に、第１のシフト量と描画単位とに基づく第２のシフト量でシフトさせる第２のシフト手段とを含み、第１のシフト手段でシフトされた第１ハーフトンパターンと、第２のシフト手段でシフトされた第１ハーフトンパターンとを、描画単位で出力する第１のパターン出力手段と、第２の記憶手段から描画単位で読み出された第２ハーフトンパターンがそれぞれ供給される、供給された第２ハーフトンパターンを、第１の方向に、描画位置と第２ハーフトンパターンの幅とに基づく第３のシフト量でシフトさせる第３のシフト手段と、供給された第２ハーフトンパターンを、第２の方向に、第３のシフト量と描画単位とに基づく第４のシフト量でシフトさせる第４のシフト手段とを含み、第３のシフト手段でシフトされた第２ハーフトンパターンと、第４のシフト手段でシフトされた第２ハーフトンパターンとを、描画単位で出力する第２のパターン出力手段と、第３の記憶手段から描画単位で読み出されたブラシパターンがそれぞれ供給される、供給されたブラシパターンを、第１の方向に、描画位置とブラシ−パターンの幅とに基づく第５のシフト量でシフトさせる第５のシフト手段と、供給されたブラシパターンを、第２の方向に、第５のシフト量と描画単位とに基づく第６のシフト量でシフトさせる第６のシフト手段とを含み、第５のシフト手段でシフトされたブラシパターンと、第６のシフト手段でシフトされたブラシパターンとを、描画単位で出力する第３のパターン出力手段と、第１のパターン出力手段から出力される描画単位の第１ハーフトンパターンと、第２のパターン出力手段から出力される描画単位の第２のハーフトンパターンとのうち何れを出力するかを、第３のパターン出力手段から出力され描画単位のブラシパターンに従い画素単位で選択するブラシ合成手段と、ブラシ合成手段による描画単位の処理が終了した場合に描画位置を描画単位に従い更新する制御手段とを有することを特徴とする。
【００１４】
また、本発明は、水平ラインに沿った方向であるＸ方向に描画単位でアクセスされる第１の記憶手段から描画単位で読み出された、第１色の階調値に対してハーフトン処理を行った第１ハーフトンパターンを、水平ラインにおける描画位置から水平ライン上の描画始点に向かう第１の方向に、描画位置と第１ハーフトンパターンの幅とに基づく第１のシフト量でシフトさせる第１のシフトステップと、第１の記憶手段から描画単位で読み出された第１ハーフトンパターンを、水平ライン上の描画終点に向かう第２の方向に、第１のシフト量と描画単位とに基づく第２のシフト量でシフトさせる第２のシフトステップと、第１のシフトステップによりシフトされた第１ハーフトンパターンと、第２のシフトステップによりシフトされた第１ハーフトンパターンとを、描画単位で出力する第１のパターン出力ステップと、Ｘ方向に描画単位でアクセスされる第２の記憶手段から描画単位で読み出された、第２色の階調値に対してハーフトン処理を行った第２ハーフトンパターンを、第１の方向に、描画位置と第２ハーフトンパターンの幅とに基づく第３のシフト量でシフトさせる第３のシフトステップと、第２の記憶手段から描画単位で読み出された第２ハーフトンパターンを、第２の方向に、第３のシフト量と描画単位とに基づく第４のシフト量でシフトさせる第４のシフトステップと、第３のシフトステップによりシフトされた第２ハーフトンパターンと、第４のシフトステップによりシフトされた第２ハーフトンパターンとを、描画単位で出力する第２のパターン出力ステップと、Ｘ方向に描画単位でアクセスされる第３の記憶手段から描画単位で読み出されたブラシパターンを、第１の方向に、描画位置とブラシ−パターンの幅とに基づく第５のシフト量でシフトさせる第５のシフトステップと、第３の記憶手段から描画単位で読み出されたブラシパターンを、第２の方向に、第５のシフト量と描画単位とに基づく第６のシフト量でシフトさせる第６のシフトステップと、第５のシフトステップによりシフトされたブラシパターンと、第６のシフトステップによりシフトされたブラシパターンとを、描画単位で出力する第３のパターン出力ステップと、第１のパターン出力ステップにより出力される描画単位の第１ハーフトンパターンと、第２のパターン出力ステップにより出力される描画単位の第２のハーフトンパターンとのうち何れを出力するかを、第３のパターン出力ステップにより出力される描画単位のブラシパターンに従い画素単位で選択するブラシ合成ステップと、ブラシ合成ステップによる描画単位の処理が終了した場合に描画位置を描画単位に従い更新する制御ステップとを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、より少ないメモリ容量でブラシ処理を実行できるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施形態に係る画像形成装置の一例の構成を示すブロック図である。
【図２】図２は、実施形態に係る画像形成装置の全体的な動作の例について説明するための略線図である。
【図３】図３は、メインメモリにおけるバンド記憶領域の一例のフォーマットを示す略線図である。
【図４】図４は、描画部が処理する中間言語によるコマンドの一例を示す略線図である。
【図５】図５は、描画部が処理する中間言語の例を示す略線図である。
【図６】図６は、中間言語によるコマンド群により描画されバンド記憶領域に書き込まれた各版の画像の例を示す略線図である。
【図７】図７は、実施形態に係る描画部の一例の構成を示すブロック図である。
【図８】図８は、実施形態に係る描画処理部の一例の構成を示すブロック図である。
【図９】図９は、実施形態に係るブラシパターン記憶部の一例のフォーマットを示す略線図である。
【図１０】図１０は、ハーフトン閾値記憶部に記憶されるハーフトン閾値テーブルの一例の構成を示す略線図である。
【図１１】図１１は、ハーフトン閾値記憶部の一例のフォーマットを示す略線図である。
【図１２】図１２は、実施形態に係る水平ライン描画部の一例の構成を示すブロック図である。
【図１３】図１３は、ハーフトンパターン生成処理部による処理を示す一例のフローチャートである。
【図１４】図１４は、実施形態に係る第１色ハーフトンパターン記憶部の一例のフォーマットを示す略線図である。
【図１５】図１５は、実施形態に係る第１色巡回シフト部の一例の構成を示すブロック図である。
【図１６】図１６は、実施形態に係るブラシ合成部の一例の構成を示すブロック図である。
【図１７】図１７は、実施形態に係るブラシ合成部内のマルチプレクサの動作について説明するための略線図である。
【図１８】図１８は、実施形態に係る巡回シフト処理およびブラシ合成処理の前後における各パターンの例を示す略線図である。
【図１９】図１９は、実施形態による水平ライン描画部の動作を示す一例のフローチャートである。
【図２０】図２０は、既知のブラシ処理の一例を示す略線図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して、画像処理装置および画像処理方法、ならびに、画像形成装置の実施の形態を詳細に説明する。
【００１８】
（実施形態の概略）
本実施形態では、中間言語作成時に、同じ階調値である描画オブジェクトを固め、そのオブジェクトの前に、ハーフトンの閾値テーブルを定義するコマンドと、第１色および第２色の階調値それぞれを設定するコマンドと、ブラシのサイズとブラシパターンテーブルとを定義するブラシ設定コマンドとを指定する。そして、閾値テーブルを定義するコマンドにより、描画処理におけるハーフトンパターンのＸ幅およびＹ幅による２次元の閾値テーブルを設定する。設定した閾値テーブルは、メモリに格納される。
【００１９】
第１色および第２色それぞれの階調値を定義するコマンドにより、メモリから閾値テーブルを読み出し、この閾値テーブルに基づき第１色および第２色それぞれの階調値に対するハーフトン処理を施し、第１色および第２色のそれぞれの階調値について、ハーフトンパターンのＸ幅およびＹ幅による２次元のハーフトンパターンを得る。これら第１色および第２色の２次元のハーフトンパターンを、ブラシパターンで切り替えながら描画を行う。
【００２０】
本実施形態では、以上の処理により、同じ階調値である描画オブジェクトに対して効率良くハーフトンパターンを適用することができる。そのため、逐次にハーフトンの閾値テーブルが格納されるメモリにアクセスする必要が無く、ブラシ処理をより高速に実行することが可能となる。
【００２１】
また、本実施形態では、ハーフトンパターンの水平方向のシフト値と、ブラシパターンの水平方向のシフト値とにより、ハーフトンパターンおよびブラシパターンを、描画する描画ワード毎に逐次求めるようにしている。そのため、ハーフトンパターンを格納するメモリや、ブラシパターンを格納するメモリの容量を小さく抑えることができる。
【００２２】
（実施形態の詳細）
図１は、実施形態に係る画像形成装置１の一例の構成を示すブロック図である。画像形成装置１において、メモリアービタ１３に対してＣＰＵ  Ｉ／Ｆ１１を介してＣＰＵ(Central  Processing  Unit)１０が接続されると共に、ローカルＩ／Ｆ２１を介してＲＯＭ(Read  Only  Memory)２２およびパネルコントローラ２３が接続される。図示は省略するが、メモリアービタ１３は、メモリコントローラを有し、このメモリコントローラを介してメインメモリ１４が接続される。それと共に、メモリアービタ１３に対して、描画部１５、符号化部１６、復号部１７および通信コントローラ２０が接続される。復号部１７の出力は、プリンタエンジン１９を制御するエンジンコントローラ１８に接続される。
【００２３】
メモリアービタ１３は、接続された各部間におけるデータ転送の調停を行う。ＣＰＵ  Ｉ／Ｆ１１は、ＣＰＵ１０とメモリアービタ１３との間のインターフェイスであって、ＣＰＵ１０は、ＣＰＵ  Ｉ／Ｆ１１およびメモリアービタ１３を介して、画像形成装置１の各部に接続される。パネルコントローラ２３は、ユーザ操作を行うために操作子や表示部が設けられたパネル２４が接続される。
【００２４】
ＲＯＭ２２は、各種プログラムや文字などのフォント情報が予め記憶されている。ＣＰＵ１０は、ＲＯＭ２２に予め記憶されたプログラムに従い、図示されないＲＡＭ(Random  Access  Memory)をワークメモリとして用いて、この画像形成装置１の動作を制御する。ＣＰＵ１０は、ワークメモリとしてメインメモリ１４利用することも可能である。また、ＣＰＵ１０は、エンジンコントローラ１８に対して、プリンタエンジン１９を制御するための命令を出す。通信コントローラ２０は、ネットワークを介して接続される、パーソナルコンピュータ（ＰＣ）といった外部機器との間の通信を制御する。
【００２５】
メモリアービタ１３を介してなされるメインメモリ１４に対するアクセスの制御は、メモリアービタ１３に含まれるメモリコントローラにより行われる。メインメモリ１４は、例えばＰＤＬ記憶領域、中間言語記憶領域、バンド記憶領域およびページ符号記憶領域を含む。ＰＤＬ記憶領域は、例えば通信コントローラ２０を介してパーソナルコンピュータから転送されたＰＤＬ(Page  Description  Language)が格納される。中間言語記憶領域は、ＰＤＬに基づき生成された中間言語が格納される。バンド記憶領域は、ＰＤＬに従い生成されたバンド画像データが格納される。また、ページ符号記憶領域は、符号化されたバンド画像データが格納される。さらに、メインメモリ１４には、ＣＰＵ１０が動作するためのプログラムなどが格納される領域や、ＣＰＵ１０がワークメモリとして用いる領域も設けられる。
【００２６】
描画部１５は、ＣＰＵ１０によりＰＤＬデータに基づき生成された中間言語を読み込んで解析し、解析結果に従い、メインメモリ１４のバンド記憶領域に対してバンド画像を書き込む描画処理を行う。例えば、メインメモリ１４から、描画部１５により描画されたバンド画像が読み出されて、メモリアービタ１３を介して符号化部１６および復号部１７で符号化および復号処理などを施されて、エンジンコントローラ１８に供給される。エンジンコントローラ１８が、供給されたバンド画像に従いプリンタエンジン１９を制御することで、印刷媒体に対して画像が形成され、印刷がなされる。
【００２７】
図２を用いて、画像形成装置１の全体的な動作の例について説明する。例えばパーソナルコンピュータで生成されたＰＤＬデータがネットワークを介して通信コントローラ２０に受信され、メインメモリ１４のＰＤＬ記憶領域に記憶される（ステップＳ１０）。ＣＰＵ１０は、メインメモリ１４のＰＤＬ記憶領域からＰＤＬデータを読み出し、ＰＤＬを解析して（ステップＳ１１）、解析結果に基づき中間言語を生成し、メインメモリ１４の中間言語記憶領域に記憶する（ステップＳ１２）。
【００２８】
描画部１５は、メインメモリ１４の中間言語記憶領域から読み出した中間言語に従い描画処理を行い、画像データを生成する（ステップＳ１３）。この描画処理において、本実施形態によるハーフトン処理およびブラシ処理が行われる。生成された画像データは、メインメモリ１４のバンド記憶領域に順次書き込まれる（ステップＳ１４）。
【００２９】
符号化部１６は、メインメモリ１４のバンド記憶領域からバンド画像データを読み出して、所定の圧縮符号化方式により、読み出したバンド画像データを圧縮符号化する（ステップＳ１５）。バンド画像データが圧縮符号化された符号データは、メインメモリ１４のページ符号記憶領域に格納される（ステップＳ１６）。復号部１７は、ページ符号記憶領域から符号データを読み出して画像データに復号し（ステップＳ１７）、復号した画像データをエンジンコントローラ１８に送る。エンジンコントローラ１８は、供給された画像データに従い基づきプリンタエンジン１９を制御してプリントアウトを行う（ステップＳ１８）。
【００３０】
上述したステップＳ１４の、メインメモリ１４のバンド記憶領域に対する画像データの書き込みについて説明する。図３は、メインメモリ１４におけるバンド記憶領域の一例のフォーマットを示す。図３の例では、バンド幅は、例えば１ページの幅すなわち水平走査（主走査）により描画される１水平ラインの長さであり、バンド高さは、１ページを垂直走査方向に所定に分割した１の領域の高さとしている。また、描画ワード幅は、描画部１５においてバンド記憶領域をアクセスする単位を示す。
【００３１】
図３には、バンド記憶領域に対する画像データの書き込みの例として、水平ラインＹに対して、水平ラインＸ始点から水平ラインＸ終点までの水平ラインを描画（書き込み）した例が示されている。このように、描画部１５では、画像処理を施した画像データを、水平ラインの１ライン毎にバンド記憶領域に書き込むことで、描画を行っている。なお、水平ラインに沿った方向をＸ方向、水平ラインに垂直な方向、すなわち副走査方向をＹ方向とし、例えば１ページにおける印刷領域をＸ，Ｙ座標で表すものとする。
【００３２】
上述のステップＳ１２でＣＰＵ１０に生成される中間言語について説明する。図４は、描画部１５が処理する中間言語によるコマンドの一例を示す。図４の例では、各コマンドは、３２ビットのデータ幅を持つ。先頭の３２ビットがコマンドヘッダとされ、その後ろに、当該コマンドの各パラメータが付加される構造となっている。各コマンドは、Ｃ、Ｍ、Ｙ、Ｋ各色について指定することができる。なお、コマンドヘッダの直後のＮＯＰは、コマンドヘッダのデータ幅を３２ビット幅に合わせるためのもので、以下、このＮＯＰを含んでコマンドヘッダと呼ぶ。
【００３３】
図４（ａ）は、バンド初期化コマンドの例を示す。バンド初期化コマンドは、コマンドヘッダに続き、バンドの先頭アドレス、バンド高さおよびバンド幅の各設定パラメータが指定される。図４（ｂ）は、ハーフトン処理における閾値テーブルを定義する閾値定義コマンドの例を示す。コマンドヘッダに続き、ハーフトンパターンＸ幅およびハーフトンパターンＹ幅、ならびに、ハーフトン先頭閾値アドレスの各設定パラメータが指定される。なお、ハーフトン先頭閾値アドレスは、図８および図９にて後述するハーフトン閾値記憶部２０３においてハーフトン閾値が記憶される先頭アドレスを示す。
【００３４】
図４（ｃ）は、四角形の描画を命令する四角形描画コマンドの例を示す。コマンドヘッダに続き、四角形の左上隅のＸおよびＹ座標、右下隅のＸおよびＹ座標の各描画パラメータがそれぞれ指定される。図４（ｄ）は、三角形の描画を命令する三角形描画コマンドの例を示す。三角形の３の頂点＃１、＃２および＃３それぞれのＸおよびＹ座標の各描画パラメータが指定される。
【００３５】
図４（ｅ）は、階調値を定義する階調値セットコマンドの例を示す。コマンドヘッダに続き、第１色および第２色の階調値を設定する設定パラメータがそれぞれ指定される。図４（ｆ）は、ブラシパターンを定義するブラシパターンセットコマンドの例を示す。コマンドヘッダに続き、ブラシパターンＸ幅およびブラシパターンＹ幅、ならびに、ブラシパターン先頭アドレスを設定する各設定パラメータが指定される。なお、ブラシパターン先頭アドレスは、図８および図９で後述するブラシパターン記憶部２０４においてブラシパターンが記憶される先頭アドレスである。
【００３６】
図４（ｇ）は、定義したバンドの描画の終了を指示するバンド終了コマンドの例を示す。このバンド終了コマンドは、コマンドヘッダのみを有する。
【００３７】
図５は、上述のステップＳ１３で描画部１５が処理する中間言語の例を示す。この例では、Ｃ、Ｍ、Ｙ、Ｋの各色の版について、それぞれ中間言語による描画コマンドのコマンド群３０が生成されている。図５の例では、Ｃ色の版（以下、Ｃ版）では、Ｃ版バンド初期化コマンド、Ｃ版閾値テーブルセットコマンド、Ｃ版描画階調値定義コマンド、Ｃ版四角形描画コマンド、Ｃ版三角形描画コマンド、Ｃ版描画階調値定義コマンド、Ｃ版四角形描画コマンドおよびＣ版バンド終了コマンドが順次記述されている。Ｍ版、Ｙ版およびＫ版においても、描画の内容に従い、同様にして各コマンドが列挙される。
【００３８】
なお、コマンド群３０において、ブラシパターンセットコマンド３１は、各版共通のコマンドとして用いることができる。これに限らず、ブラシパターンセットコマンド３１を各版に設定してもよい。
【００３９】
図６は、図５のコマンド群３０により描画されバンド記憶領域に書き込まれた各版の画像の例を示す。コマンド群３０において、Ｃ、Ｍ、Ｙ、Ｋ各版とも、１つ目の描画階調値定義コマンドで第１色および第２色の階調値がそれぞれ指定された後に四角形および三角形が描画される。その後、さらに２つ目の描画階調値定義コマンドで第１色および第２色の階調値がそれぞれ指定された後に四角形が描画されることが示されている。なお、各四角形および三角形は、第１色および第２色の階調値に、ブラシ定義コマンド３１により定義されたブラシを適用して描画される。
【００４０】
（本実施形態によるブラシ処理のより詳細な説明）
次に、本実施形態によるブラシ処理について、より詳細に説明する。図７は、図１における描画部１５の一例の構成を示す。なお、図７において、上述の図１と共通する部分には同一の符号を付し、詳細な説明を省略する。図７に示されるように、描画部１５は、メモリアービタＩ／Ｆ１００と、コマンド解析部１０１と、描画処理部１０２とを有する。メモリアービタＩ／Ｆ１００は、コマンド解析部１０１および描画処理部１０２と、メモリアービタ１３との間のインターフェイスである。
【００４１】
コマンド解析部１０１は、メモリアービタＩ／Ｆ１００を介してメモリアービタ１３に対して読み出しアドレス情報を転送し、メインメモリ１４における描画コマンド記憶領域から描画コマンドを読み込む。コマンド解析部１０１は、読み込んだ描画コマンドを解析した結果、読み込んだ描画コマンドが描画パラメータを指定するコマンドであれば、指定する描画パラメータ値を描画処理部１０２に転送する。また、コマンド解析部１０１は、読み込んだ描画コマンドがパラメータの設定を指定するコマンドであれば、設定パラメータ値を描画処理部１０２に転送する。
【００４２】
描画処理部１０２は、コマンド解析部１０１から描画パラメータ値を受け取り、受け取った描画パラメータ値に従い描画処理を行う。描画処理により生成された画像データは、メインメモリ１４に対する書き込みアドレスを示すアドレス情報と共に、メモリアービタＩ／Ｆ１００を介してメモリアービタ１３に転送され、メインメモリ１４に書き込まれる。また、描画処理部１０２は、コマンド解析部１０１から設定パラメータ値を受け取り、受け取った設定パラメータ値を所定に設定する。
【００４３】
コマンド解析部１０１は、描画処理部１０２に対して処理の開始を指示する起動信号を送信する。描画処理部１０２は、コマンド解析部１０１送信される起動信号により描画処理を開始する。また、描画処理部１０２は、描画処理が終了すると、終了信号をコマンド解析部１０１に対して送信して、描画処理の終了を通知する。
【００４４】
図８は、描画処理部１０２の一例の構成を示す。なお、図８において、上述の図７と共通する部分には同一の符号を付して、詳細な説明を省略する。ＤＭＡアドレス生成部２００は、コマンド解析部１０１から設定パラメータとしてハーフトン閾値先頭アドレスおよびブラシパターン先頭アドレスを受け取る。そして、受け取った各先頭アドレスからＤＭＡアドレスを生成し、ＤＭＡ読み込み部２０１に転送する。
【００４５】
ＤＭＡ読み込み部２０１は、ＤＭＡアドレス生成部２００から受け取ったＤＭＡアドレスに従い、メモリアービターＩ／Ｆ１００を介して、メインメモリ１４からハーフトンの閾値マトリクスと、ブラシパターンデータとを読み込む。読み込んだハーフトンの閾値マトリクスは、ハーフトン閾値テーブルとしてハーフトン閾値記憶部２０３に記憶される。また、読み込んだブラシパターンは、ブラシパターン記憶部２０４に記憶される。
【００４６】
なお、本実施形態では、ハーフトン閾値記憶部２０３およびブラシパターン記憶部２０４は、それぞれ３２ビットをアクセスの単位としているものとし、１画素は、８ビットのビット深度を有するものとする。また、描画データの処理単位は、１２８ビットであるものとする。
【００４７】
図９は、ブラシパターン記憶部２０４の一例のフォーマットを示す。ここで、ブラシパターンは、Ｘ方向（すなわち水平ラインに沿った方向）にｐ画素、Ｙ方向（すなわち水平ラインに対して垂直の方向）にｑラインの、ｐ画素×ｑラインのマトリクスからなり、各画素は、値「０」または値「１」のうち何れか一方の値を取る２値データであるものとする。例えば、値「１」に対して第１色を対応付け、値「０」に対して第２色を対応付けて、ブラシパターンに従い画素毎に第１色と第２色とを選択することで、ブラシ処理を行うことができる。ブラシパターンの水平方向の幅をブラシパターンＸ幅、垂直方向の幅をブラシパターンＹ幅と呼ぶ。
【００４８】
描画ワード幅に対応したブラシパターン記憶部２０４のメモリ空間に対して、ブラシパターンをＸ方向に繰り返し展開して書き込んでいく。この例では、描画ワード幅が１２８ビット、ブラシパターンＸ幅が１２ビットとなっているため、ブラシパターンをＸ方向に繰り返して書き込むと、Ｘ方向の終端部に８ビットの剰余部分が生じることになる。この剰余部分の８ビットを示す情報は、ブラシパターン余り値としてブラシパターン記憶部２０４に記憶される。
【００４９】
なお、Ｙ方向については、ブラシパターン記憶部２０４に対して、ブラシパターンＹ幅分に等しく、ブラシパターンが書き込まれることになる。図９の例では、ブラシパターンＹ幅が１２ビット（＝１２ライン）とされている。なお、ブラシパターンＸ幅およびＹ幅は、例えばＰＤＬデータを作成するパーソナルコンピュータ上においてユーザ側で指定することが可能である。
【００５０】
説明を図８に戻し、一方、コマンド解析部１０１による描画コマンドの解析の結果、バンド初期化コマンドが得られた場合、バンドパラメータ記憶部２０２に対して、バンド初期アドレス、バンド高さおよびバンド幅の各バンドパラメータが記憶される。また、コマンド解析部１０１はによる描画コマンドの解析の結果、描画を指示するコマンド（例えば四角形描画コマンドや三角形描画コマンド）であった場合、描画パラメータ記憶部２０５に対して当該描画コマンドに含まれる描画パラメータを記憶させる。
【００５１】
さらに、コマンド解析部１０１による描画コマンドの解析の結果、閾値定義コマンドが得られた場合、水平ライン描画部２０７に対して、ハーフトンパターンＸ幅およびＹ幅、ならびに、ハーフトン閾値先頭アドレスが設定パラメータとして転送される。同様に、コマンド解析部１０１による描画コマンドの解析の結果、ブラシパターンセットコマンドが得られた場合、水平ライン描画部２０７に対して、ブラシパターンＸ値およびＹ値、ならびに、ブラシパターン先頭アドレスが設定パラメータとして転送される。
【００５２】
水平ライン変換部２０６は、描画パラメータ記憶部２０５から描画パラメータを読み出し、読み出した描画パラメータを水平ラインＹ値、水平ライン始点値および水平ライン終点値の各水平ラインデータに変換して水平ライン描画部２０７へ転送する。水平ライン描画部２０７は、さらに、バンドパラメータ記憶部２０２からバンドパラメータを読み出す。そして、水平ライン描画部２０７は、水平ライン変換部２０６から転送された各水平ラインデータと、バンドパラメータ記憶部２０２から読み出したバンドパラメータとに基づき、メモリアービターＩ／Ｆ１００を介してメインメモリ１４のバンド記憶領域に対して水平ラインの描画処理を行う。
【００５３】
なお、水平ライン描画部２０７は、図１２を用いて後述するハーフトン閾値アドレス生成部３１４で生成されたハーフトン読み込みアドレスに従い、ハーフトン閾値記憶部２０３からハーフトン閾値マトリクスを読み込む。また、水平ライン描画部２０７は、図１２を用いて後述するブラシパターンアドレス生成部３１７で生成されたブラシパターン読み込みアドレスに従い、ブラシパターン記憶部２０４からブラシパターンを読み込む。そして、読み込んだこれらハーフトン閾値アドレスおよびブラシパターンアドレスに従い、描画される画像データに対するブラシ処理を行う。
【００５４】
コントローラ２１０は、例えばマイクロプロセッサやＲＯＭを有し、ＲＯＭに予め記憶されたプログラムに従い描画処理部１０２を制御する。例えば、コントローラ２１０は、コマンド解析部１０１から送信された起動信号により描画処理部１０２による描画処理を開始する。また、コントローラ２１０は、描画終了時には、終了信号をコマンド解析部１０１に送信する。
【００５５】
図１０は、ハーフトン閾値記憶部２０３に記憶されるハーフトン閾値テーブルの一例の構成を示す。ハーフトン閾値テーブルは、水平方向（Ｘ方向）にｍ画素、垂直方向（Ｙ方向）にｎ画素（ｎライン）の、ｍ画素×ｎ画素のマトリクスからなり、マトリクスの各位置に閾値が設定される。また、閾値マトリクスの各画素は、８ビットのビット深度を有する。この閾値と画像データの画素値とを比較して、比較結果に基づき画像データを２値化する。この２値化により、マトリクス中の閾値の分布に応じた濃度のハーフトンパターンが形成される。ハーフトン閾値テーブルの水平方向の幅をハーフトンパターンＸ幅、垂直方向の幅をハーフトンパターンＹ幅と呼ぶ。
【００５６】
図１１は、ハーフトン閾値記憶部２０３の一例のフォーマットを示す。上述したように、本実施形態では、ハーフトン閾値記憶部２０３は、データのアクセス単位が３２ビットとされている。ハーフトン閾値テーブルの各値は、例えば、このハーフトン閾値記憶部２０３に対し、図１１の左から右の方向に順次詰め込まれ、それが上から下の方向に向けて繰り返される。したがって、ハーフトン閾値テーブルの終端位置は、（ハーフトンパターンＸ幅×ハーフトンパターンＹ幅）／４＝（ｍ×ｎ）／４の小数部を切り上げた値が示す行に含まれる。
【００５７】
図１２は、水平ライン描画部２０７の一例の構成を示す。なお、図１２において、上述した図８と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００５８】
ハーフトンパターンアドレス生成部３００は、水平ラインＹ値とハーフトンパターンＹ幅とから、（水平ラインＹ値  ＭＯＤ  ハーフトンパターンＹ幅）の演算を行い、ハーフトンパターンのＹ値を求める。なお、「ＭＯＤ」は、剰余を求める演算子である。ハーフトンパターンアドレス生成部３００は、このハーフトンパターンのＹ値を、ハーフトンパターンアドレスとして第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７にそれぞれ転送する。
【００５９】
第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７は、それぞれ、第１色および第２色のハーフトンパターン値の、描画ワード幅（本実施形態では１２８ビット）の水平ラインのハーフトンパターンＹ幅分を記憶する。ハーフトンパターンアドレス生成部３００から転送されるハーフトンパターンアドレスに従い、第１色ハーフトンパターン記憶部３０６に対してアクセスされた第１色のハーフトンパターン値は、第１色巡回シフト部３０９に転送される。同様に、当該ハーフトンパターンアドレスに従い、第２色ハーフトンパターン記憶部３０７に対してアクセスされた第２色のハーフトンパターン値は、第２色巡回シフト部３０８に転送される。
【００６０】
上述したように、本実施形態においては、ハーフトン閾値記憶部２０３は、３２ビットがデータのアクセス単位とされている。一方、水平ライン描画部２０７は、描画ワード単位、すなわち、本実施形態においては１２８ビットを単位として処理が行われ、第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７のフォーマットも、描画ワード単位のアクセスに準じたものになる。
【００６１】
そのため、ハーフトンパターン生成部３１３において、ハーフトン閾値記憶部２０３から転送されたハーフトン閾値テーブルに従い行ったハーフトンパターン生成処理で得られた第１色ハーフトンパターンおよび第２色ハーフトンパターンを、描画ワード単位のフォーマットに変換して、第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７に転送する。
【００６２】
図１３は、このハーフトンパターン生成部３１３による処理を示す一例のフローチャートである。ステップＳ１００で、ハーフトンパターン生成部３１３は、第１色のハーフトン処理を行う。すなわち、ハーフトンパターン生成部３１３は、ハーフトン閾値記憶部２０３から、ハーフトンパターンＸ幅の画素（ハーフトン閾値テーブルのｓライン目）のハーフトン閾値を切り出して読み込み、読み込んだハーフトン閾値と、第１色階調値とを比較して階調処理を行う。この階調処理により、ハーフトンパターンＸ幅の第１色の階調処理後のデータが生成される。
【００６３】
次のステップＳ１０１で、ハーフトンパターン生成部３１３は、ステップＳ１００で得られたハーフトンパターンＸ幅の第１色の階調処理後のデータを、描画ワード幅まで繰り返し展開し、第１色ハーフトンパターン記憶部３０６に順次書き込む。
【００６４】
処理はステップＳ１０２に移行され、ハーフトンパターン生成部３１３は、第２色のハーフトン処理を行う。すなわち、ハーフトンパターン生成部３１３は、ハーフトン閾値記憶部２０３から、ハーフトンパターンＸ幅の画素（ハーフトン閾値テーブルのｎライン目）のハーフトン閾値を切り出して読み込み、読み込んだハーフトン閾値と、第２色階調値とを比較して階調処理を行う。この階調処理により、ハーフトンパターンＸ幅の第２色の階調処理後のデータが生成される。
【００６５】
次のステップＳ１０３で、ハーフトンパターン生成部３１３は、ステップＳ１０２で得られたハーフトンパターンＸ幅の第２色の階調処理後のデータを、描画ワード幅まで繰り返し展開し、第２色ハーフトンパターン記憶部３０７に順次書き込む。これらステップＳ１００〜ステップＳ１０３の処理で、ハーフトンパターンの１ライン分の処理が終了する。
【００６６】
そして、次のステップＳ１０４で、ハーフトンパターン生成部３１３は、ハーフトンパターンＹ幅分の処理が終了したか否かを判定する。若し、終了していないと判定した場合、処理をステップＳ１００に戻し、ハーフトンパターンの次の１ライン、すなわち、ハーフトン閾値テーブルの（ｓ＋１）ライン目についてステップＳ１００〜ステップＳ１０３の処理を行う。一方、ハーフトンパターンＹ幅分の処理が終了したと判定した場合、一連のハーフトンパターン生成処理が終了される。
【００６７】
図１４は、図１３の処理でハーフトン閾値が書き込まれた第１色ハーフトンパターン記憶部３０６の一例のフォーマットを示す。なお、第２色ハーフトンパターン記憶部３０７のフォーマットは、この第１色ハーフトンパターン記憶部３０６のフォーマットと同一なので、ここでの説明を省略する。
【００６８】
Ｘ方向の幅が描画ワード幅であるメモリ空間に対して、ハーフトン閾値テーブルを、Ｘ方向に繰り返し展開して書き込んでいく。この例では、描画ワード幅が１２８ビット、ハーフトンパターンＸ幅が２０ビットとなっているため、ハーフトン閾値テーブルをＸ方向に繰り返して書き込むと、Ｘ方向の終端部に８ビットの剰余部分が生じることになる。この剰余部分の８ビットは、ハーフトンパターン余り値として第１色ハーフトンパターン記憶部３０６にさらに記憶される。
【００６９】
なお、Ｙ方向については、第１色ハーフトンパターン記憶部３０６に対して、ハーフトンパターンＹ幅分に等しく、ハーフトン閾値テーブルが書き込まれることになる。図１４の例では、ハーフトンパターンＹ幅が１６ラインとされている。
【００７０】
図１２の説明に戻り、Ｘ始点ワード値生成部３０１は、水平ライン変換部２０６から転送された水平ラインＸ始点値から、描画ワード単位の描画ワードＸ始点値を求め、描画ワードＸ値生成部３０３に転送する。Ｘ終点ワード値生成部３０２は、水平ライン変換部２０６から転送された水平ラインＸ終点値から、描画ワード単位の描画ワードＸ終点値を求め、描画ワードＸ値生成部３０３に転送する。
【００７１】
描画ワードＸ値生成部３０３は、Ｘ始点ワード値生成部３０１およびＸ終点ワード値生成部３０２からそれぞれ転送された、描画ワード単位のＸ始点値からＸ終点値の描画ワードＸ値を生成し、ハーフトンパターンシフト値生成部３０４およびブラシパターンシフト値生成部３０５にそれぞれ転送する。
【００７２】
ハーフトンパターンシフト値生成部３０４は、描画ワードＸ値生成部３０３から転送された描画ワードＸ値と、ハーフトンパターンＸ幅とから（描画ワードＸ値  ＭＯＤ  ハーフトンパターンＸ幅）の演算を行い、ハーフトンパターンのＸ値を求める。このハーフトンパターンのＸ値を、ハーフトンパターンシフト値として第１色巡回シフト部３０９および第２色巡回シフト部３０８にそれぞれ転送する。
【００７３】
第１色巡回シフト部３０９は、第１色ハーフトンパターン記憶部３０６、ハーフトンパターンシフト値生成部３０４および描画パラメータ記憶部２０５から、それぞれ、第１色ハーフトンパターン値、ハーフトンパターンシフト値およびハーフトンパターン余り値を受け取る。第１色巡回シフト回路３０９は、これら受け取った各値と、描画ワード幅とに基づき第１色ハーフトンパターン値を巡回シフトし、巡回シフト後のハーフトンパターン値をブラシ合成部３１１の第１入力端に入力する。
【００７４】
第２色巡回シフト部３０８も同様に、第２色ハーフトンパターン記憶部３０７、ハーフトンパターンシフト値生成部３０４および描画パラメータ記憶部２０５から、それぞれ、第２色ハーフトンパターン値、ハーフトンパターンシフト値およびハーフトンパターン余り値を受け取る。第２色巡回シフト回路３０８は、これら受け取った各値と、描画ワード幅とに基づき第２色ハーフトンパターン値を巡回シフトし、巡回シフト後のハーフトンパターン値をブラシ合成部３１１の第２入力端に入力する。
【００７５】
ブラシパターンシフト値生成部３０５は、コマンド解析部１０１から設定パラメータとして受け取ったブラシパターンＸ値と、描画ワードＸ値生成部３０３から転送された描画ワード値とから（描画ワードＸ値  ＭＯＤ  ブラシパターンＸ幅）の演算を行い、ブラシパターンのＸ値を求める。このブラシパターンのＸ値を、ブラシパターンシフト値としてブラシ巡回シフト部３１０に転送する。
【００７６】
ブラシパターンアドレス生成部３１７は、コマンド解析部１０１から設定パラメータとして受け取ったブラシパターンＹ幅と、水平ライン変換部２０６から転送された水平ラインＹ値とから（水平ラインＹ値  ＭＯＤ  ブラシパターンＹ幅）の演算を行い、ブラシパターンのＹ値を求める。このブラシパターンのＹ値をブラシパターンアドレスとして、ブラシパターン記憶部２０４に転送する。ブラシパターン記憶部２０４において、このブラシパターンアドレスに従いブラシパターン値が読み出され、ブラシ巡回シフト部３１０に転送される。
【００７７】
ブラシ巡回シフト部３１０は、ブラシパターンシフト値生成部３０５からブラシパターンシフト値を受け取ると共に、ブラシパターン記憶部２０４からブラシパターン値およびブラシパターン余り値をそれぞれ受け取る。ブラシ巡回シフト部３１０は、これら受け取った各値と、描画ワード幅とに基づきブラシパターン値を巡回シフトし、巡回シフト後のブラシパターン値をブラシ合成部３１１の第３入力端に入力する。ブラシパターン値は、例えば「０」および「１」の値を取る２値データである。
【００７８】
ブラシ合成部３１１は、ブラシ巡回シフト部３１０から転送される巡回後のブラシパターン値に応じて、画素毎に、巡回後の第１色ハーフトン値と巡回後の第２色ハーフトン値とのうち何れを出力するかを選択する。これにより、第１色ハーフトン値と第２色ハーフトン値とがブラシパターンに従い合成される。合成後のハーフトンパターン値が論理演算部３１２の第１入力端に転送される。
【００７９】
描画マスク生成部３１５は、水平ライン変換部２０６から受け取った水平ラインＸ始点値と水平ラインＸ終点値とから、描画ワード毎のＸ始点からＸ終点までの描画マスクを生成し、描画マスク値を論理演算部３１２の第２入力端に入力する。
【００８０】
論理演算部３１２は、第１入力端および第２入力端の入力に対して論理積演算を行う。すなわち、論理演算部３１２は、ブラシ合成部３１１から受け取った合成後のハーフトンパターン値と、描画マスク生成部３１５から受け取った描画マスク値とに対して論理積演算を行って描画パターン値を生成する。この描画パターン値は、メモリアービターＩ／Ｆ１００に対して転送される。
【００８１】
描画アドレス生成部３１６は、水辺ライン変換部２０６から受け取った水平ラインＹ値と水平ラインＸ始点値とから、メインメモリ１４におけるバンド記憶領域に対して描画を行うアドレスである描画アドレスを生成する。生成された描画アドレスは、メモリアービターＩ／Ｆ１００に転送される。
【００８２】
図１５は、第１色巡回シフト部３０９の一例の構成を示す。なお、第２色巡回シフト部３０８およびブラシ巡回シフト部３１０は、この第１色巡回シフト部３０９と同様の構成で実施可能であるので、ここでの説明を省略する。
【００８３】
第１色巡回シフト部３０９は、減算器４００および４０１、左シフト部４０２、右シフト部４０３、ならびに、論理演算部４０４を有する。論理演算部４０４は、第１入力端および第２入力端に入力された値に対して論理和演算を行う。また、減算器４００および４０１は、それぞれ、第１入力端に入力された値から第２入力端に入力された値を減算する。
【００８４】
以下、描画ワード幅が１２８ビット、第１色ハーフトンパターンＸ値が２０ビット、第１色ハーフトンパターン余り値が８ビット、第１色ハーフトンパターンシフト値が１０ビットの場合を例にとって説明する。
【００８５】
第１色ハーフトンパターン記憶部３０６から転送された描画ワード幅分の第１色ハーフトンパターン値が、左シフト部４０２および右シフト部４０３にそれぞれ入力される。左シフト部４０２に入力された第１色ハーフトンパターン値は、ハーフトンパターンシフト値生成部３０４から転送されたハーフトンパターンシフト値に従い、左シフトされる（この例では、１０ビット分左シフトされる）。左シフト後の第１色ハーフトンパターン値において、左シフト後の右端のビットからハーフトンパターンシフト値（１０ビット）分のビット位置まで、各ビットの値が「０」に置換される。
【００８６】
減算器４００において、第１入力端に描画ワード幅の値が入力され、第２入力端に第１色ハーフトンパターンシフト値が入力される。減算器４００は、描画ワード幅の値からハーフトンパターンシフト値を減じて、得られた値（この例では１１８ビット）を減算器４０１の第１入力端に入力する。減算器４０１の第２入力端には、第１色ハーフトンパターン記憶部３０６から転送された第１色ハーフトンパターン余り値（この例では８ビット）が入力される。
【００８７】
減算器４０１は、減算器４００の出力から第１色ハーフトンパターン余り値を減じて、得られた値（この例では１１０ビット）を右シフト部４０３に入力する。これにより、右シフト部４０３において、第１色ハーフトンパターン値が減算器４０１の出力に従い右シフトされる（この例では、１１０ビット分右シフトされる。右シフト後の第１色ハーフトンパターン値において、右シフト後の右端のビットから右シフト分（１１０ビット）のビット位置まで、各ビットの値が「０」に置換される。
【００８８】
左シフト部４０２の出力と、右シフト部４０３の出力とが論理演算部４０４の第１および第２入力端にそれぞれ入力される。論理演算部４０４は、これら、左シフト部４０２の出力と右シフト部４０３の出力とに対して論理和演算を行う。論理和演算の結果得られた描画ワード幅の値は、第１色ハーフトンパターン値として出力される。
【００８９】
第２色巡回シフト部３０８およびブラシ巡回シフト部３１０においても上述と同様な処理が行われ、第２色巡回シフト部３０８およびブラシ巡回シフト部３１０の出力は、第１色巡回シフト部３０９の出力と共に、それぞれブラシ合成部３１１に入力される。
【００９０】
図１６は、ブラシ合成部３１１の一例の構成を示す。ブラシ合成部３１１は、描画ワード幅の各ビットそれぞれについて、ブラシパターン値＃ｎによって第１色ハーフトンパターン値＃ｎと第２色ハーフトンパターン値＃ｎとのうち何れを出力するかを選択するマルチプレクサ（ＭＵＸ）５００0、５００1、…、５００n、…、５００127を有する。各マルチプレクサ５００0、５００1、…、５００n、…、５００127の出力は、ブラシ処理後パターン値＃０、＃１、…、＃ｎ、…、＃１２７による、描画ワード幅のブラシ処理後パターン値として出力される。
【００９１】
図１７を用いてマルチプレクサ５００nの動作について説明する。ここで、ブラシパターン値＃ｎが「１」で第１色ハーフトンパターン値＃ｎが選択され、ブラシパターン値＃ｎが「０」で第２ハーフトンパターン値＃ｎが選択されるものとする。ＡＮＤ回路５０１において、第１色ハーフトンパターン値＃ｎとブラシパターン値＃ｎとの論理積が求められる。また、ＡＮＤ回路５０２において、第２色ハーフトンパターン値＃ｎとブラシパターン値＃ｎの反転値との論理積が求められる。これにより、ブラシパターン値＃ｎが「１」で第１色ハーフトンパターン値＃ｎが選択される。また、ブラシパターン値＃ｎが「０」で第２色ハーフトンパターン値＃ｎが選択される。ＡＮＤ回路５０１および５０２の出力が、ブラシ処理後パターン値＃ｎとして、マルチプレクサ５００ｎから出力される。
【００９２】
図１８は、巡回シフト処理およびブラシ合成処理の前後における各パターンの例を示す。なお、図１８（ａ）〜図１８（ｇ）において、白丸（○）は、値が「０」であるビットを示し、黒丸（●）など色やパターンで塗り潰された部分は、値が「１」であるビットを示す。各図の右側から左側に向けて、ＬＳＢ(Least  Significant  Bit)からＭＳＢ(Most  Significant  Bit)へとビットが並んで各パターンが構成される様子が示されている。
【００９３】
図１８（ａ）および図１８（ｂ）は、それぞれ第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７から読み出された第１色ハーフトンパターン値および第２色ハーフトンパターン値の例を示す。また、図１８（ｃ）は、ブラシパターン記憶部２０４から読み出されたブラシパターン値の例を示す。ブラシパターン値において、黒丸（●）すなわち値「１」でビット位置が対応する第１色ハーフトンパターン値が選択され、白丸（○）すなわち値「０」でビット位置が対応する第２色ハーフトンパターン値が選択される。
【００９４】
図１８（ｄ）〜図１８（ｆ）は、上述の図１８（ａ）〜図１８（ｃ）の各パターンが第１色巡回シフト部３０９、第２色巡回シフト部３０８およびブラシ巡回シフト部３１０で巡回シフトされた状態の例を示す。ここでは、図１８（ａ）〜図１８（ｃ）の状態から右に１ビット分、各パターンがシフトされている様子が示されている。
【００９５】
図１８（ｇ）は、上述の図１８（ｄ）〜図１８（ｆ）に示される各パターンをブラシ合成部３１１で合成した、ブラシ処理後パターン値を示す。このように、巡回シフト処理後ブラシパターン値の値「１」（黒丸：●）のビット位置で図１８（ｄ）の巡回シフト後第１色ハーフトンパターン値が選択されると共に、巡回シフト処理後ブラシパターン値の値「０」（白丸：○）のビット位置で図１８（ｅ）の巡回シフト後第２色ハーフトンパターン値が選択され、第１色ハーフトンパターン値と、第２色ハーフトンパターン値と、ブラシパターン値とが合成される。
【００９６】
図１９は、本実施形態による水平ライン描画部２０７の動作を示す一例のフローチャートである。ステップＳ２００およびステップＳ２０１で、ハーフトンパターンアドレス生成部３００およびブラシパターンアドレス生成部３１７により、ハーフトンパターンアドレスおよびブラシパターンアドレスがそれぞれ算出される。
【００９７】
すなわち、ステップＳ２００で、ハーフトンパターンアドレス生成部３００は、水平ライン変換部２０６から転送された水平ラインＹ値と、コマンド解析部１０１で描画コマンドを解析して得られたハーフトンパターンＹ幅とにより、（水平ラインＹ値  ＭＯＤ  ハーフトンパターンＹ幅）の演算を行いハーフトンパターンアドレスを算出する。また、ステップＳ２０１で、ブラシパターンアドレス生成部３１７は、水平ラインＹ値と、コマンド解析部１０１で描画コマンドを解析して得られたブラシパターンＹ幅とにより、（水平ラインＹ値  ＭＯＤ  ブラシパターンＹ幅）の演算を行いブラシパターンアドレスを算出する。
【００９８】
次に、ステップＳ２０２およびステップＳ２０３で、Ｘ始点ワード値生成部３０１およびＸ終点ワード値生成部３０２により、描画ワードＸ始点値および描画ワードＸ終点値がそれぞれ算出される。
【００９９】
すなわち、ステップＳ２０２で、Ｘ始点ワード値生成部３０１は、水平ライン変換部２０６から転送された水平ラインＸ値と、１６ビットパターンのＦＦ８０ｈ（「ｈ」は、直前の文字列が１６進表記であることを示す）とでＡＮＤ処理を行い、１２８ビット単位の値である描画ワードＸ始点値を求める。同様に、Ｘ終点ワード値生成部３０２は、水平ライン変換部２０６から転送された水平ラインＸ値と、１６ビットパターンのＦＦ８０ｈとでＡＮＤ処理を行い、１２８ビット単位の値である描画ワードＸ終点値を求める。
【０１００】
なお、上述のステップＳ２００〜ステップＳ２０３の順序は一例であって、この順序に限定されない。また、ステップＳ２００〜ステップＳ２０３の処理を並列的に実行してもよい。
【０１０１】
さらに次のステップＳ２０４で、描画ワードＸ値生成部３０３は、Ｘ始点ワード値生成部３０１で生成された描画ワードＸ始点値を、描画ワードＸ値とする。
【０１０２】
次のステップＳ２０５およびステップＳ２０６で、第１色ハーフトンパターン値と、第２色ハーフトンパターン値とを求める。すなわち、ステップＳ２０５で、ハーフトンパターンアドレス生成部３００で生成されたハーフトンパターンアドレスにより第１色ハーフトンーパターン記憶部３０６にアクセスし、第１色ハーフトンパターン値を求める。同様に、ステップＳ２０６で、当該ハーフトンパターンアドレスにより第２色ハーフトンパターン記憶部３０７にアクセスし、第２色ハーフトンパターン値を求める。次に、ステップＳ２０７で、ブラシパターンアドレス生成部３１７で生成された読み込みアドレスによりブラシパターン記憶部２０４にアクセスして、ブラシパターン値を求める。
【０１０３】
これらステップＳ２０５〜ステップＳ２０７の順序は一例であって、この順序に限定されない。また、ステップＳ２０５〜ステップＳ２０７の処理を並列的に実行してもよい。
【０１０４】
次のステップＳ２０８で、描画マスク生成部３１５は、ステップＳ２０４で生成された描画ワードＸ値が始点であるか否かを判定する。若し、始点であると判定した場合、描画マスク生成部３１５は、処理をステップＳ２０９に移行させ、水平ラインＸ始点値から描画マスクを生成する。その後、処理をステップＳ２１３に移行させる。
【０１０５】
一方、ステップＳ２０８で、始点ではないと判定した場合、描画マスク生成部３１５は、処理をステップＳ２１０に移行させ、ステップＳ２０４で生成された描画ワードＸ値が終点であるか否かを判定する。若し、終点であると判定した場合、描画マスク生成部３１５は、処理をステップＳ２１１に移行させ、水平ラインＸ終点値から描画マスクを生成する。その後、処理をステップＳ２１３に移行させる。
【０１０６】
一方、ステップＳ２１０で、終点ではないと判定した場合、描画マスク生成部３１５は、処理をステップＳ２１２に移行させ描画マスク無しとする。例えば、描画マスク生成部３１５は、描画マスク値を全ビット「１」とすることで、描画マスクを無しの状態とする。
【０１０７】
次のステップＳ２１３で、ブラシパターンシフト値生成部３０５は、ステップＳ２０４で描画ワードＸ値生成部３０３で生成された描画ワードＸ値と、コマンド解析部１０１で描画コマンドを解析して得られたブラシパターンＸ幅とにより、（描画ワードＸ値  ＭＯＤ  ブラシパターンＸ幅）の演算を行い、ブラシパターンシフト値を求める。
【０１０８】
次のステップＳ２１４で、ハーフトンパターンシフト値生成部３０４は、ステップＳ２０４で描画ワードＸ値生成部３０３で生成された描画ワードＸ値と、コマンド解析部１０１で描画コマンドを解析して得られたハーフトンパターンＸ幅とにより、（描画ワードＸ値  ＭＯＤ  ハーフトンパターンＸ幅）の演算を行い、ハーフトンパターンシフト値を求める。
【０１０９】
なお、上述のステップＳ２０８〜ステップＳ２１４の順序は一例であって、この順序に限定されない。また、ステップＳ２０８〜ステップＳ２１４の処理を並列的に実行してもよい。
【０１１０】
次のステップＳ２１５、ステップＳ２１６およびステップＳ２１７で、第１色巡回シフト部３０９、第２色巡回シフト部３０８およびブラシ巡回シフト部３１０により、それぞれ巡回シフト後第１色ハーフトンパターン値、巡回シフト後第２色ハーフトンパターン値および巡回シフト後ブラシパターン値を生成する。
【０１１１】
すなわち、ステップＳ２１５で、第１色巡回シフト部３０９は、ステップＳ２００でハーフトンパターンアドレス生成部３００で生成されたハーフトンパターンアドレスに従い第１色ハーフトンパターン記憶部３０６から読み出された第１色ハーフトンパターン値を、ハーフトンパターン余り値と、ステップＳ２１４でハーフトンパターンシフト値生成部３０４により生成されたハーフトンパターンシフト値と、描画ワード値とに基づき巡回シフトさせる。巡回シフトされた第１色ハーフトンパターン値は、巡回後第１色ハーフトンパターン値として、第１色巡回シフト部３０９から出力される。
【０１１２】
同様に、ステップＳ２１６で、第２色巡回シフト部３０８は、当該ハーフトンパターンアドレスに従い第２色ハーフトンパターン記憶部３０７から読み出された第２色ハーフトンパターン値を、ハーフトンパターン余り値と、当該ハーフトンパターンシフト値と、描画ワード値とに基づき巡回シフトさせる。巡回シフトされた第２色ハーフトンパターン値は、巡回後第２色ハーフトンパターン値として、第２色巡回シフト部３０８から出力される。
【０１１３】
また、ステップＳ２１７で、ブラシ巡回シフト部３１０は、ステップＳ２０１でブラシパターンアドレス生成部３１７で生成されたブラシパターンアドレスに従いブラシパターン記憶部２０４から読み出されたブラシパターン値を、ブラシパターン余り値と、ステップＳ２１３でブラシパターンシフト値生成部３０５により生成されたブラシパターンシフト値と、描画ワード値とに基づき巡回シフトさせる。巡回シフトされたブラシパターン値は、巡回後ブラシパターン値として、ブラシ巡回シフト部３１０から出力される。
【０１１４】
これらステップＳ２１５〜ステップＳ２１７の順序は一例であって、この順序に限定されない。また、ステップＳ２１５〜ステップＳ２１７の処理を並列的に実行してもよい。
【０１１５】
処理はステップＳ２１８に移行され、ブラシ合成部３１１は、上述のステップＳ２１５〜ステップＳ２１７で生成された第１色ハーフトンパターン値、第２色ハーフトンパターン値およびブラシパターン値により、ブラシ処理を行う。すなわち、上述したように、ブラシパターン値に従い、第１色ハーフトンパターン値および第２色ハーフトンパターン値の選択を行い、第１色ハーフトンパターン値および第２色ハーフトンパターン値に対するブラシパターンの合成を行う。
【０１１６】
次に、ステップＳ２１９で、論理演算部３１２により、ステップＳ２１８によるブラシ処理の結果のブラシ処理後パターンと、ステップＳ２０８〜ステップＳ２１２の処理で得られた描画マスク値とのＡＮＤ演算が行われ、描画パターン値が生成される。
【０１１７】
次のステップＳ２２０で、描画ワードＸ値生成部３０３により描画ワードＸ値に描画ワード幅を加算して、次の描画ワードＸ値が生成される。そして、次のステップＳ２２１で、描画ワードＸ値生成部３０３は、ステップＳ２２０で生成された描画ワードＸ値が描画ワードＸ終点値を超えたか否かを判定する。若し、超えていないと判定した場合、処理をステップＳ２０８に戻し、水平ラインの描画処理を継続させる。超えたと判定した場合には、一連の描画処理が終了される。
【０１１８】
以上のように、本実施形態によれば、第１色および第２色それぞれの階調値を定義するコマンドにより、ハーフトン閾値記憶部２０３からハーフトン閾値テーブルを読み出し、このハーフトン閾値テーブルに基づき第１色および第２色に対するハーフトン処理を施す。このハーフトン処理により得られた第１色ハーフトンパターン値と第２色ハーフトンパターン値とを、それぞれ第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７に記憶させる。そして、第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７からそれぞれ読み出された第１色ハーフトンパターン値および第２色ハーフトンパターン値を、ブラシパターン記憶部２０４から読み出したブラシパターン値に応じて選択して出力するようにしている。
【０１１９】
そのため、本実施形態では、同じ階調値の描画オブジェクトに対して効率良くハーフトンパターンを適用することができる。そのため、逐次にハーフトン閾値テーブルが格納されるハーフトン閾値記憶部２０３にアクセスする必要が無く、ブラシ処理をより高速に実行することが可能となる。
【０１２０】
また、本実施形態では、ハーフトンパターンの水平方向のシフト値と、ブラシパターンの水平方向のシフト値とにより、ハーフトンパターンおよびブラシパターンを、描画する描画ワード毎に逐次求めるようにしている。そのため、ハーフトンパターンを格納する第１色ハーフトンパターン記憶部３０６および第２色ハーフトンパターン記憶部３０７や、ブラシパターンを格納するブラシパターン記憶部２０４の容量を小さく抑えることができる。
【符号の説明】
【０１２１】
１  画像形成装置
１０  ＣＰＵ
１３  メモリアービタ
１４  メインメモリ
１５  描画部
１０１  コマンド解析部
１０２  描画処理部
２０３  ハーフトン閾値記憶部
２０４  ブラシパターン記憶部
２０５  描画パラメータ記憶部
２０６  水平ライン変換部
２０７  水平ライン描画部
３００  ハーフトンパターンアドレス生成部
３０１  Ｘ始点ワード値生成部
３０２  Ｘ終点ワード値生成部
３０３  描画ワードＸ値生成部
３０４  ハーフトンパターンシフト値生成部
３０５  ブラシパターンシフト値生成部
３０６  第１色ハーフトンパターン記憶部
３０７  第２色ハーフトンパターン記憶部
３０８  第２色巡回シフト部
３０９  第１色巡回シフト部
３１０  ブラシ巡回シフト部
３１１  ブラシ合成部
３１３  ハーフトンパターン生成部
【先行技術文献】
【特許文献】
【０１２２】
【特許文献１】特許第３４４６３２４号公報
【特許文献２】特許第４４９０７８３号公報
【図１】
0005862267.tif 000002
【図２】
0005862267.tif 000003
【図３】
0005862267.tif 000004
【図４】
0005862267.tif 000005
【図５】
0005862267.tif 000006
【図６】
0005862267.tif 000007
【図７】
0005862267.tif 000008
【図８】
0005862267.tif 000009
【図９】
0005862267.tif 000010
【図１０】
0005862267.tif 000011
【図１１】
0005862267.tif 000012
【図１２】
0005862267.tif 000013
【図１３】
0005862267.tif 000014
【図１４】
0005862267.tif 000015
【図１５】
0005862267.tif 000016
【図１６】
0005862267.tif 000017
【図１７】
0005862267.tif 000018
【図１８】
0005862267.tif 000019
【図１９】
0005862267.tif 000020
【図２０】
0005862267.tif 000021