(57)【要約】【課題】ブラシ合成処理をより少ないメモリ容量でより高速に実行可能とする。【解決手段】垂直ラインメモリは、バンドメモリの各ラインに対応して、描画パターンが書き込まれているラインでは１、書き込まれていないラインでは０が記憶される。ブラシ合成を行う際に、合成を行うライン毎に、垂直ラインメモリのビット値の判定を行い、値が１であれば、当該ラインから描画パターンを読み出してブラシ合成を行い、合成された描画パターンをバンドメモリの当該ラインに書き戻す。一方、当該ビット値が０であれば、バンドメモリから描画パターンを読み出さずに、当該ラインの描画パターンの値を強制的に０としてブラシ合成を行うと共に、当該ビット値を１とする。【選択図】図１４
2014099812.tif 000002
【特許請求の範囲】
【請求項１】
描画パターンの生成と、該描画パターンに対して合成するブラシパターンのライン単位での生成とを行う生成部と、
描画パターンがライン単位で書き込まれる第１記憶部と、
前記ブラシパターンと前記第１記憶部から読み出した描画パターンとを合成する合成部と、
前記第１記憶部に対し、前記生成部が生成した前記ブラシパターンによる合成を行うラインに描画パターンが書き込まれているか否かを判定する判定部と
を有し、
前記合成部は、
前記判定部が、前記第１記憶部において前記合成を行うラインに描画パターンが書き込まれていないと判定した場合に、前記第１記憶部からの描画パターンの読み出しを行わない
ことを特徴とする画像処理装置。
【請求項２】
前記合成部は、
前記判定部が、前記第１記憶部において前記ライン位置に描画パターンが書き込まれていないと判定した場合に、予め定められた描画パターンを前記ブラシパターンと合成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１記憶部に前記生成部で生成された描画パターンが書き込まれたラインを示す情報を記憶する第２記憶部をさらに有し、
前記判定部は、
前記第２記憶部に記憶される前記情報に基づき前記判定を行う
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記第２記憶部は、
前記第１記憶部が記憶する最大のライン数を分割した分割ライン数分のビットをそれぞれ記憶可能な複数の第３記憶部と、
前記複数の第３記憶部から、前記生成部が生成した前記ブラシパターンによる合成を行うラインに対応する位置のビットを含む第３記憶部を選択する選択部と
を備え、
前記判定部は、
前記選択部で選択された第３記憶部に記憶される各ビットのうち、前記合成を行うラインに対応する位置のビットの値に基づき前記判定を行う
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
描画パターンの生成と、該描画パターンに対して合成するブラシパターンのライン単位での生成とを行う生成ステップと、
前記ブラシパターンと、描画パターンがライン単位で書き込まれる第１記憶部から読み出した描画パターンとを合成する合成ステップと、
前記第１記憶部に対し、前記生成ステップにより生成した前記ブラシパターンによる合成を行うラインに描画パターンが書き込まれているか否かを判定する判定ステップと
を有し、
前記合成ステップは、
前記判定ステップにより、前記第１記憶部において前記合成を行うラインに描画パターンが書き込まれていないと判定された場合に、前記第１記憶部からの描画パターンの読み出しを行わない
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷媒体に対する画像形成に用いて好適な画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、ページプリンタなどにおいて、印刷解像度の高解像度化や、印刷速度の高速化が要求されている一方で、プリンタの動作を制御するＣＰＵ(Central  Processing  Unit)の処理能力のみでは、これらの要求を満たすことが困難となってきている。特にカラープリンタでは、各種の画像処理に加えて、Ｃ色、Ｍ色、Ｙ色、Ｋ色の各版の画像の描画処理、色変換処理、ブラシ合成処理などより多くの処理が必要となる。
【０００３】
ここで、従来技術によるプリンタにおける処理の流れについて、概略的に説明する。パーソナルコンピュータなどで作成された例えばＰＤＬ(Page  Description  Language)データが、ネットワークやケーブルなど所定のインターフェイスを介してプリンタに転送される。プリンタは、転送されたＰＤＬデータを解析して、プリンタにおける描画部が実行可能な中間言語を作成する。描画部は、作成された中間言語を解析して画像データを生成し、生成した画像データに対して階調処理を施して２値化画像データを得る。この２値化画像データを、バンドメモリに対して描画し、バンドメモリに書き込む。画像の描画は、Ｃ、Ｍ、Ｙ、Ｋの各色毎に行われる。
【０００４】
プリンタは、バンドメモリに描画された各色の画像データを、ＪＢＩＧ(Joint  Bi-level  Image  Coding  Expert  Group)などの２値画像の圧縮アルゴリズムにより符号化し、生成された符号をそれぞれメモリに書き込む。プリンタは、印字時に、Ｃ、Ｍ、Ｙ、Ｋ各版毎に遅延させてメモリから符号を読み出してそれぞれ復号し、復号したデータをＣ、Ｍ、Ｙ、Ｋ各版に対応するプリンタエンジンに転送して印字を行う。
【０００５】
一方、プリンタにおける描画に関する画像処理の一つとして、ブラシ合成処理がある。ブラシ合成処理は、例えばＲ、Ｇ、Ｂ各色を用いて所望の色を作成して描画を行う処理である。従来、図１８（ａ）に例示する２値のブラシパターンの値「１」および「０」の部分に対し、図１８（ｂ）に例示する第１色と、図１８（ｃ）に例示する第２色とをそれぞれ適用して、第１色と第２色とを切り替えてブラシパターンの描画を行うブラシ合成処理方法が知られている。
【０００６】
特許文献１には、３次元グラフィクス描画を行う場合に、手前に位置するポリゴンから順に描画する際に、フラグＲＡＭ（マスクバッファ）に値（マスク値）を描画しながら実際のポリゴンをフレームメモリに描画する技術が開示されている。上述のブラシ合成処理は、この特許文献１の技術を利用することで実現することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に示される方法では、マスクバッファから読み込んだビットが「１」であれば、その画素を描画しないことで、ポリゴンの陰面処理を行なっている。しかしながら、特許文献１の方法をプリンタにおけるブラシ合成処理に適用し、マスクバッファをプリンタの一般的な解像度である１２００ｄｐｉで構成した場合、マスクバッファとして用いるメモリに大容量を必要としてしまう。そのため、特許文献１に示される方法において、マスクバッファとして用いるメモリを外部に持つことも考えられる。この場合、描画を行うメモリとは別に、マスクバッファのメモリにアクセスする必要があり、高速化が望めないという問題点があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、ブラシ合成処理を、より少ないメモリ容量でより高速に実行可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、描画パターンの生成と、描画パターンに対して合成するブラシパターンのライン単位での生成とを行う生成部と、描画パターンがライン単位で書き込まれる第１記憶部と、ブラシパターンと第１記憶部から読み出した描画パターンとを合成する合成部と、第１記憶部に対し、生成部が生成したブラシパターンによる合成を行うラインに描画パターンが書き込まれているか否かを判定する判定部とを有し、合成部は、判定部が、第１記憶部において合成を行うラインに描画パターンが書き込まれていないと判定した場合に、第１記憶部からの描画パターンの読み出しを行わないことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ブラシ合成処理を、より少ないメモリ容量でより高速に実行することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係る画像形成装置の一例の構成を示すブロック図である。
【図２】図２は、実施形態による処理の概要について説明するための図である。
【図３】図３は、実施形態による処理の概要について説明するための図である。
【図４】図４は、実施形態に係る中間言語の例を概略的に示す図である。
【図５】図５は、実施形態に係る中間言語によるコマンドの一例を示す図である。
【図６】図６は、実施形態に係る描画部の一例の構成を示すブロック図である。
【図７】図７は、実施形態に係る写真画像描画部の一例の構成を示すブロック図である。
【図８】図８は、実施形態に係るＣＭＹＫグラフィクス描画部の一例の構成を示すブロック図である。
【図９】図９は、実施形態によるブラシ合成処理部の一例の構成を示すブロック図である。
【図１０】図１０は、実施形態に係るブラシ合成処理について概略的に説明するための図である。
【図１１】図１１は、実施形態に係るブラシ合成処理を実現するためのブラシ合成処理回路の一例の構成を示すブロック図である。
【図１２】図１２は、実施形態による垂直ラインメモリの一例の構成を示すブロック図である。
【図１３】図１３は、実施形態に係るビットパターン生成部が生成するビットパターンの例を示す図である。
【図１４】図１４は、実施形態によるブラシ合成処理部による一例の処理を示すフローチャートである。
【図１５】図１５は、背景画像の例を示す図である。
【図１６】図１６は、リードモディファイライト処理では読み出し処理において大きな遅延が生じることを説明するための図である。
【図１７】図１７は、書き込み処理では大きな遅延が生じないことを説明するための図である。
【図１８】図１８は、ブラシ合成処理の例を説明するための図である。
【発明を実施するための形態】
【００１２】
（実施形態に適用可能な構成）
以下に添付図面を参照して、画像処理装置および画像処理方法、ならびに、画像形成装置の実施の形態を詳細に説明する。図１は、実施形態に係る画像形成装置１の一例の構成を示すブロック図である。画像形成装置１において、ＡＸＩ(Advanced  eXtensible  Interface)バスに従ったバス１３（以下、ＡＸＩバス１３と呼ぶ）に対してＣＰＵ  Ｉ／Ｆ１１を介してＣＰＵ(Central  Processing  Unit)１０が接続されると共に、ローカルＩ／Ｆ２１を介してＲＯＭ(Read  Only  Memory)２２およびパネルコントローラ２３が接続される。
【００１３】
ＡＸＩバス１３は、メモリコントローラ２５を介してメインメモリ１４が接続される。それと共に、ＡＸＩバス１３に対して、描画部１５、符号化部１６、復号部１７および通信コントローラ２０が接続される。復号部１７の出力は、プリンタエンジン１９を制御するエンジンコントローラ１８に接続される。
【００１４】
ＡＸＩバス１３は、接続された各部間におけるデータ転送を制御する。ＣＰＵ  Ｉ／Ｆ１１は、ＣＰＵ１０とＡＸＩバス１３との間のインターフェイスであって、ＣＰＵ１０は、ＣＰＵ  Ｉ／Ｆ１１およびＡＸＩバス１３を介して、画像形成装置１の各部に接続される。パネルコントローラ２３は、ユーザ操作を行うために操作子や表示部が設けられたパネル２４が接続される。
【００１５】
ＲＯＭ２２は、各種プログラムや文字などのフォント情報が予め記憶されている。ＣＰＵ１０は、ＲＯＭ２２に予め記憶されたプログラムに従い、図示されないＲＡＭ(Random  Access  Memory)をワークメモリとして用いて、この画像形成装置１の動作を制御する。ＣＰＵ１０は、ワークメモリとしてメインメモリ１４を利用することも可能である。また、ＣＰＵ１０は、エンジンコントローラ１８に対して、プリンタエンジン１９を制御するための命令を出す。通信コントローラ２０は、ネットワークを介して接続される、パーソナルコンピュータ（ＰＣ）といった外部機器との間の通信を制御する。
【００１６】
ＡＸＩバス１３を介してなされるメインメモリ１４に対するアクセスの制御は、メモリコントローラ２５により行われる。メインメモリ１４は、例えばプログラム領域、ＰＤＬデータ領域、中間言語格納メモリ領域、バンドメモリ領域、ＣＭＹＫページ符号データ領域およびその他領域を含む。
【００１７】
プログラム領域は、ＣＰＵ１０が動作するためのプログラムなどが格納される。ＰＤＬデータ領域は、例えば通信コントローラ２０を介してパーソナルコンピュータから転送されたＰＤＬ(Page  Description  Language)データが格納される。中間言語格納メモリ領域は、ＣＰＵ１０がＰＤＬデータに基づき生成した中間言語が格納される。バンドメモリ領域は、ＰＤＬデータに基づきＣＰＵ１０に描画された描画パターンによる、Ｃ、Ｍ、Ｙ、Ｋ各色の版によるバンド画像データがそれぞれ格納される。ＣＭＹＫバンド符号データ領域は、ＣＭＹＫ各版の、符号化されたバンド画像データ（バンド符号データと呼ぶ）が格納される。また、その他領域は、上述以外のデータが格納される領域であって、例えばＣＰＵ１０がプログラムを実行する際のワークメモリとして用いることができる。
【００１８】
描画部１５は、ＣＰＵ１０によりＰＤＬデータに基づき生成された中間言語を読み込んで解析し、解析結果に従い描画パターンを描画し、メインメモリ１４のバンド記憶領域に対して描画パターンによるバンド画像データを書き込む描画処理を行う。また、描画部１５は、中間言語の解析結果に従いブラシパターンを生成して、メインメモリ１４のバンド記憶領域に書き込まれたバンド画像に対して、ブラシパターンを用いてブラシ処理を施す。
【００１９】
メインメモリ１４から、描画部１５により描画されたバンド画像が読み出されて、ＡＸＩバス１３を介して符号化部１６および復号部１７で符号化および復号処理などを施されて、エンジンコントローラ１８に供給される。エンジンコントローラ１８が、供給されたバンド画像に従いプリンタエンジン１９を制御することで、印刷媒体に対して画像が形成され、印刷がなされる。
【００２０】
このような構成において、例えばパーソナルコンピュータで生成されたＰＤＬデータがネットワークを介して通信コントローラ２０に受信され、メインメモリ１４のＰＤＬデータ領域に記憶される。ＣＰＵ１０は、メインメモリ１４のＰＤＬデータ領域からＰＤＬデータを読み出して解析し、解析結果に基づき中間言語を生成し、メインメモリ１４に記憶する。描画部１５は、メインメモリ１４から読み出した中間言語に従い描画パターンの描画処理を行い、ＣＭＹＫ各版のバンド画像データを生成する。生成されたＣＭＹＫ各版のバンド画像データは、メインメモリ１４のバンドメモリ領域に書き込まれる。描画部１５は、さらに、必要に応じてブラシパターンを生成し、バンドメモリ領域からバンド画像データを読み出してブラシパターンによるブラシ合成処理を行い、ブラシ処理後パターンによるバンド画像データを、メインメモリ１４のバンドメモリ領域における元のアドレスに書き戻す。
【００２１】
符号化部１６は、メインメモリ１４のバンドメモリ領域から読み出されたＣＭＹＫ各版のバンド画像データに対して、ＭＴＦ(Move  To  Front)制御およびハフマン符号化を利用した圧縮符号化方式により圧縮符号化処理を施す。バンド画像データが圧縮符号化された符号データは、メインメモリ１４のＣＭＹＫページ符号データ領域に格納される。復号部１７は、メインメモリ１４のＣＭＹＫページ符号データ領域から読み出されたＣＭＹＫ各版の符号データを復号して、ＣＭＹＫ各版の画像データを出力し、エンジンコントローラ１８に送る。エンジンコントローラ１８は、復号部１７から受け取ったＣＭＹＫ各版の画像データに従いプリンタエンジン１９を制御してプリントアウトを行う。
【００２２】
（実施形態による処理の概要）
次に、図２および図３を用いて、実施形態による処理の概要について説明する。図２および図３において、バンドメモリ５０は、上述したメインメモリ１４のバンドメモリ領域に対応し、ＰＤＬデータの解析結果に基づく描画処理により描画パターンが生成され、画像データとして書き込まれるメモリである。実施形態では、図２および図３に例示されるように、バンドメモリ５０と、描画部１５に含まれる垂直ラインメモリ５１とを用いて、描画パターンに対するブラシ合成処理を行う。
【００２３】
図２（ａ）に示されるように、バンドメモリ５０において、Ｘ軸方向の座標は画素単位とされ、Ｘ軸方向に記憶される最大の画素数に従いバンド幅が定義される。また、Ｙ軸方向の座標はライン単位とされ、Ｙ軸方向に記憶される最大のライン数に従いバンド高さが定義される。図２（ａ）の例では、バンドメモリ５０の領域の左上隅がＸ軸方向およびＹ軸方向の座標の原点とされる。Ｙ座標すなわちラインアドレスは、図の上から下に向けて増加し、Ｘ座標すなわち画素アドレスは、図の左から右に向けて増加する。一例として、バンドメモリ５０内に描画された矩形の描画パターンは、矩形の左上隅のＸ座標およびＹ座標と、右下隅のＸ座標およびＹ座標で領域が示される。
【００２４】
垂直ラインメモリ５１は、Ｙ軸方向に、バンドメモリ５０の各ラインに対応するＹ座標毎に１ビットの情報を保持するメモリである。垂直ラインメモリ５１において、バンドメモリ５０の第１ライン目に対応するＹ座標を原点とし、図の上から下に向けて、バンドメモリ５０のラインに対応してＹ座標の値が増加するものとする。すなわち、垂直ラインメモリ５１のＹ座標の値は、垂直ラインメモリ５１のアドレスに相当する。垂直ラインメモリ５１は、バンドメモリ５０に描画パターンによる画像データが書き込まれているラインに対応する座標のビットの値が例えば「１」となり、描画パターンによる画像データが書き込まれていないラインに対応する座標のビットの値が例えば「０」となる。
【００２５】
バンドメモリ５０に描画パターンによる画像データが書き込まれていない場合（初期状態）では、図２（ｂ）に例示されるように、垂直ラインメモリ５１の各アドレスのビット値は全て「０」となる。一方、図２（ａ）の例では、第３ライン目から第６ライン目にかけて矩形の描画パターンの画像データが書き込まれているため、垂直ラインメモリ５１において、対応する、図２（ａ）における上から３ビット目から６ビット目のアドレスにおけるビット値が「１」とされ、他のアドレスのビット値が全て「０」とされている。
【００２６】
実施形態では、描画部１５は、ブラシ合成処理を行う際に、各ライン毎に、垂直ラインメモリ５１のラインに対応する値に基づきブラシ合成処理を行うラインに対応するアドレスのビット値が「１」であるか「０」であるかを判定する。若し、当該ビットの値が「１」であれば、バンドメモリ５０の当該ラインには描画パターンによる画像データが書き込まれているため、描画部１５は、バンドメモリ５０の当該ラインから描画パターンによる画像データを読み出してブラシ合成処理を施し、ブラシ合成処理された描画パターンによる画像データをバンドメモリ５０の当該ラインの位置に書き戻す。
【００２７】
一方、描画部１５は、垂直ラインメモリ５１の、ブラシ合成処理を行うラインに対応するアドレスのビット値が「０」であれば、当該ラインには描画パターンによる画像データが書き込まれていないことが分かる。この場合には、描画部１５は、バンドメモリ５０からの画像データの読み出しを行わずに、当該ラインの描画パターンの値が予め定められた値（例えば「０」）であるものとしてブラシ合成処理を行う。このように、垂直ラインメモリ５１の内容を参照してブラシ合成処理を行うことで、メインメモリ１４に対するアクセスを減らすことができ、処理を高速化できる。
【００２８】
図３（ａ）は、バンドメモリ５０に対して背景画像５２を描画した場合の例を示す。この例では、背景画像５２がバンドメモリ５０の略全領域に亘って書き込まれており、第１ライン目と最終ラインとが背景画像５２の書き込まれていないラインとなっている。したがって、垂直ラインメモリ５１においても、第１ライン目および最終ラインにそれぞれ対応する先頭座標および後端座標のみでビット値が「０」とされ、他の座標ではビット値が「１」とされている。
【００２９】
図３（ｂ）は、背景画像５２の上に描画画像５３を描画する例を示す。この場合、バンドメモリ５０において、描画画像５３が描画されるラインに対して既に背景画像５２が書き込まれているため、垂直ラインメモリ５１の当該ラインに対応する座標のビット値は、全て「１」とされている。そのため、描画部１５は、通常の描画処理と同様にして、バンドメモリ５０の当該ラインから画像データを読み出して、描画画像５３に対応する部分を描画画像５３の画像データと置き換える変更処理を行い、変更された画像データを、バンドメモリ５０の元のライン位置に書き戻す。このように、メモリから読み出したデータに変更を加えてメモリの元の位置に書き戻す処理を、リードモディファイライトと呼ぶ。
【００３０】
（実施形態の処理の詳細）
以下に、実施形態による処理について、より詳細に説明する。図４は、実施形態に係る描画部１５が処理する中間言語の例を概略的に示す。図４の例では、中間言語は、バンド初期化コマンド、グラフィクスブラシ設定コマンド、グラフィクスディザ設定コマンド、四角形描画コマンド、写真画像用色変換パラメータ設定コマンド、写真画像用ディザ設定コマンド、写真画像描画コマンド、バンド終了コマンドが順次記述されている。なお、実際には、Ｃ、Ｍ、Ｙ、Ｋ各色について、中間言語が存在する。
【００３１】
図５は、実施形態に係る、上述の中間言語によるコマンドの一例を示す。図５の例では、各コマンドは、３２ビットのデータ幅を持つ。先頭の３２ビットがコマンドヘッダとされ、その後ろに、当該コマンドの各パラメータが付加される構造となっている。各コマンドは、Ｃ、Ｍ、Ｙ、Ｋ各色について指定することができる。
【００３２】
図５（ａ）は、バンド初期化コマンドの例を示す。バンド初期化コマンドは、コマンドヘッダ（バンド情報設定コマンドヘッダ）に続き、バンドの先頭アドレス、バンド高さおよびバンド幅の各設定パラメータが指定される。図６を用いて後述するコマンド解析部６２は、このコマンドを受け取ると、バンドの先頭アドレスとバンドの高さと幅とを記憶する。
【００３３】
図５（ｂ）は、グラフィクスを描画するグラフィクス描画コマンドの１つであるグラフィクス描画用ハーフトーンパラメータ設定コマンドの例を示す。コマンドヘッダに続き、ディザのＸ方向、Ｙ方向のサイズを指定するディザＸ，Ｙサイズと、閾値先頭アドレスとが指定される。このコマンドにより、グラフィクス描画におけるハーフトーンの閾値が設定される。
【００３４】
図５（ｃ）は、写真画像を描画する写真描画コマンドの１つである写真画像描画用ハーフトーンパラメータ設定コマンドの例を示す。コマンドヘッダに続き、ディザのＸ方向、Ｙ方向のサイズを指定するディザＸ，Ｙサイズと、閾値先頭アドレスとが指定される。このコマンドにより、写真画像描画におけるハーフトーンの閾値が設定される。
【００３５】
図５（ｄ）は、写真画像を描画する写真描画コマンドの１つである写真画像描画用色変換パラメータ設定コマンドの例を示す。コマンドヘッダに続き、色変換演算処理用フラグ、格子点先頭アドレスおよびガンマテーブル先頭アドレスが指定される。このコマンドにより、写真画像描画の際の色変換のパラメータが設定される。
【００３６】
図５（ｅ）は、定義したバンドの描画の終了を指示するバンド終了コマンドの例を示す。このバンド終了コマンドは、コマンドヘッダのみを有する。図６を用いて後述するコマンド解析部６２は、このコマンドを受け取るとそのバンドの処理を終了する。
【００３７】
図５（ｆ）は、グラフィクスを描画するグラフィクス描画コマンドの１つであるグラフィクス描画用ブラシ設定コマンドであり、ブラシのＸ方向、Ｙ方向のサイズを指定するブラシＸ，Ｙサイズと、ブラシ先頭アドレスとが指定される。このコマンドにより、ブラシ合成処理の際のブラシサイズおよびブラシ先頭アドレスとが指定される。図６を用いて後述するコマンド解析部６２は、このコマンドを受け取ると、例えば、ブラシサイズおよびブラシ先頭アドレスとを後述するＣＭＹＫグラフィクス描画部６３に転送する。
【００３８】
図５（ｇ）は、グラフィクスを描画するグラフィクス描画コマンドの１つである、四角形の描画を命令するグラフィクス描画用四角形描画コマンドの例を示す。コマンドヘッダに続き、カラー値が指定され、さらに、四角形の左上隅のＸおよびＹ座標、右下隅のＸおよびＹ座標の各描画パラメータがそれぞれ指定される。図６で後述するコマンド解析部６２は、このコマンドを受け取ると四角形の左上隅のＸ，Ｙ座標、右下隅のＸ，Ｙの座標と四角形コマンド名とを図６で後述する水平ライン変換部７０へ転送し、描画処理を行う。
【００３９】
図５（ｈ）は、写真画像を描画する写真描画コマンドの１つである、写真画像描画用変倍実行コマンドの例を示す。コマンドヘッダに続き、描画版と、ソース画像Ｘ幅と、ＤＩＳ画像Ｘ幅と、ソース画像Ｙ幅と、ＤＩＳ画像Ｙ幅と、描画Ｘ座標と、描画Ｙ座標と、ソース画像先頭アドレスとが指定される。図６で後述するコマンド解析部６２は、このコマンドを受け取ると、コマンドに指定される各パラメータを図示されない写真画像用変倍パラメータ記憶部に記憶し、後述する写真画像描画部６１を起動する。
【００４０】
図６は、実施形態に係る描画部１５の一例の構成を示す。描画部１５は、インターフェイス（Ｉ／Ｆ）６０と、写真画像描画部６１と、コマンド解析部６２と、ＣＭＹＫグラフィクス描画部６３と、ブラシ合成処理部６４と、垂直ラインメモリ５１とを有する。
【００４１】
Ｉ／Ｆ６０は、描画部１５とメモリコントローラ２５とのインターフェイスであり、メインメモリ１４に対して読み出し（リード）および書き込み（ライト）を要求するメモリリクエストをメモリコントローラ２５に送信する。Ｉ／Ｆ６０は、メモリリクエストに応じたメモリＡＣＫ（アック）をメモリコントローラ２５から受信すると、読み出しまたは書き込みを行うメモリアドレスをメモリコントローラ２５に送信する。Ｉ／Ｆ６０は、メインメモリ１４から読み出されたリードデータをメモリコントローラ２５から受信する。また、Ｉ／Ｆ６０は、メインメモリ１４に書き込むライトデータをメモリコントローラ２５に対して送信する。
【００４２】
コマンド解析部６２は、図５を用いて説明した描画コマンドをメインメモリ１４から読み込んで解析する。より具体的には、コマンド解析部６２は、メインメモリ１４の中間言語格納メモリ領域のアドレスをＩ／Ｆ６０に送信し、このアドレスに従いメインメモリ１４の当該領域から読み出された描画コマンドをＩ／Ｆ６０から受け取る。
【００４３】
コマンド解析部６２は、受け取った描画コマンドを解析し、この描画コマンドが写真描画コマンドであれば、写真画像描画部６１に対して起動信号を送信して写真画像描画部６１を起動させると共に、写真描画コマンドに基づくデータを選択するように指示する切り替え信号を、ブラシ合成処理部６４に送信する。そして、コマンド解析部６２は、写真描画コマンドの描画パラメータを写真画像描画部６１に転送する。
【００４４】
一方、コマンド解析部６２は、受け取った描画コマンドがグラフィクス描画コマンドであれば、ＣＭＹＫグラフィクス描画部６３に対して起動信号を送信してＣＭＹＫグラフィクス描画部６３を起動させると共に、グラフィクス描画コマンドに基づくデータを選択するように指示する切り替え信号を、ブラシ合成処理部６４に送信する。そして、グラフィクス描画コマンドのパラメータをＣＭＹＫグラフィクス描画部６３に転送する。
【００４５】
さらに、コマンド解析部６２は、受け取った描画コマンドがグラフィクス描画コマンドのうちブラシ設定を指示するコマンド（図５（ｆ）参照）であれば、ブラシオン／オフ信号をブラシ合成を行うことを指示するオン状態として、ブラシ合成処理部６４に送信する。
【００４６】
写真画像描画部６１は、コマンド解析部６２から転送された写真描画コマンドのパラメータに従い写真描画処理を行い、メインメモリ１４のバンドメモリ領域に描画するための描画パターンを生成する。例えば、写真画像描画部６１は、メインメモリ１４に対して、写真描画を行うための元画像（ソース画像）のアドレスをＩ／Ｆ６０を介して送信する。このアドレスに従いメインメモリ１４から読み出されたソース画像データがメモリコントローラ２５から送信され、Ｉ／Ｆ６０を介して写真画像描画部６１に転送される。写真画像描画部６１は、このソース画像データに対して所定の画像処理を施して、描画パターンを生成し、ブラシ合成処理部６４に対して、例えば描画するワード単位の描画パターンと、描画アドレスと、描画レングスと、描画を行うラインを示す描画Ｙ座標とを転送する。写真画像描画部６１は、写真描画コマンドによる描画が終了すると、その旨示す描画終了信号をコマンド解析部６２に対して送信する。
【００４７】
ＣＭＹＫ(Cyan,  Magenta,  Yellow,  Black)グラフィクス描画部６３は、コマンド解析部６２から転送されたグラフィクス描画コマンドのパラメータに従いグラフィクス描画処理を行い、メインメモリ１４のバンドメモリ領域に描画するための描画パターンを生成する。グラフィクス描画部６３は、ブラシ合成処理部６４に対して、例えば描画するワード単位の描画パターンと、ブラシパターンと、描画アドレスと、描画レングスと、描画を行うラインを示す描画Ｙ座標とを転送する。ＣＭＹＫグラフィクス描画部６３は、グラフィクス描画コマンドによる描画が終了すると、その旨示す描画終了信号をコマンド解析部６２に対して送信する。
【００４８】
ブラシ合成処理部６４は、実施形態の特徴をなす部分であり、写真画像描画部６１から受け取った描画パターン、描画アドレス、描画レングスおよび描画Ｙ座標と、ＣＭＫＹグラフィクス描画部６３から受け取った描画パターン、ブラシパターン、描画アドレス、描画レングスおよび描画Ｙ座標とに基づきブラシ合成処理を行う。
【００４９】
より具体的には、ブラシ合成処理部６４は、Ｉ／Ｆ６０を介して、描画Ｙ座標をメインメモリ１４のバンドメモリ領域におけるブラシ合成処理を行うアドレスとして指定し、このアドレスに従い読み出された画像データをＩ／Ｆ６０を介して読み込む。ブラシ合成処理部６４は、読み込んだ画像データに対してブラシパターンに従いブラシ合成処理を施し、ブラシ合成処理を施した画像データをＩ／Ｆ６０を介してメインメモリ１４のバンドメモリ領域における、当該画像データの元のアドレスに書き戻す。
【００５０】
ブラシ合成処理部６４は、このブラシ合成処理の際に、描画Ｙ座標を垂直ラインメモリ５１に転送する。垂直ラインメモリ５１は、この描画Ｙ座標に対応するアドレスのビット値を下地フラグとしてブラシ合成処理部６４に転送する。ブラシ合成処理部６４は、この下地フラグに基づき、バンドメモリ領域における描画Ｙ座標が示すラインに既に描画パターンによる画像データが書き込まれているか否かを判定する。
【００５１】
若し、当該ラインに既に描画パターンによる画像データが書き込まれていると判定した場合、ブラシ合成処理部６４は、メインメモリ１４のバンドメモリ領域における当該ラインから描画パターンによる画像データを読み出し、読み出された描画パターンによる画像データに対してブラシ合成処理を行う。一方、当該ラインに描画パターンによる画像データが書き込まれていない、すなわち、この画像データの書き込みが当該ラインに対する初めての描画パターンによる画像データの書き込みであると判定した場合、ブラシ合成処理部６４は、メインメモリ１４のバンドメモリ領域からの画像データの読み出しを行わず、予め定められた値（例えば値「０」）のデータを読み出した描画パターンによる画像データと見做して、この画像データに対してブラシ合成処理を行う。
【００５２】
図７は、実施形態に係る写真画像描画部６１の一例の構成を示す。写真画像描画部６１は、ソース画像読み込み部８０と、色変換処理部８１と、ラインメモリ８２と、階調処理部８３と、描画パターン生成部８４と、コントローラ８５とを有する。コントローラ８５は、写真画像描画部６１の全体の動作を制御するもので、コマンド解析部６２から送信された起動信号に応じて、写真画像描画部６１を起動させる。
【００５３】
ソース画像読み込み部８０は、メインメモリ１４からソース画像データを読み込む。例えば、ソース画像読み込み部８０は、設定されたソース画像の例えばメインメモリ１４上のアドレスをＩ／Ｆ６０を介してメモリコントローラ２５に送信する。メモリコントローラ２５は、このアドレスに従いメインメモリ１４からライン単位でソース画像データを読み出し、Ｉ／Ｆ６０を介してソース画像読み込み部８０に転送する。ソース画像読み込み部８０は、転送されたソース画像データを、色変換処理部８１に転送する。
【００５４】
色変換処理部８１は、設定された色変換のためのパラメータ（図５（ｄ）参照）に従いソース画像データに対して色変換処理を施す。ソース画像データに対して色変換処理が施された画像データは、ラインメモリ８２に一旦格納される。階調処理部８３は、ラインメモリ８２に格納される画像データに対して階調処理を施し、階調処理が施された画像データを描画パターン生成部８４に転送する。
【００５５】
描画パターン生成部８４は、階調処理された画像データの値をワード長に纏めて描画パターンとする。それと共に、描画パターン生成部８４は、描画した描画パターンをメインメモリ１４のバンドメモリ領域に対して書き込むための描画アドレスと、描画長さを指定する描画レングスと、描画ラインを指定する描画Ｙ座標とを生成する。描画パターン生成部８４は、生成したこれら描画パターン、描画アドレス、描画レングスおよび描画Ｙ座標を、ブラシ合成処理部６４に転送する。
【００５６】
図８は、実施形態に係るＣＭＹＫグラフィクス描画部６３の一例の構成を示す。ＣＭＹＫグラフィクス描画部６３は、水平ライン変換部７０と、水辺ライン描画部７１と、コントローラ７２とを有する。コントローラ７２は、ＣＭＹＫグラフィクス描画部６３の全体の動作を制御するもので、コマンド解析部６２から送信された起動信号に応じて、ＣＭＹＫグラフィクス描画部６３を起動させる。
【００５７】
水平ライン変換部７０は、コマンド解析部６２からグラフィクス描画コマンド（図５（ｂ）、図５（ｆ）、図５（ｇ）参照）を受け取り、コマンドに含まれるパラメータを水平ラインに変換して水平ライン描画部７１に転送する。なお、水平ラインは、水平ラインのＹ値（Ｙ座標）と、水平ライン始点値および終点値とにより表される。水平ライン描画部７１は、水平ライン変換部７０からの水平ラインデータに基づき、水平ラインを描画するための、ワード単位の描画パターンと、描画長さを指定する描画レングスと、描画パターンをメインメモリ１４に対して描画するアドレスを指定する描画アドレスと、描画ラインを指定する描画Ｙ座標と、ブラシ合成処理を指定するブラシパターンとを生成する。水平ライン描画部７１は、生成したこれら描画パターン、描画アドレス、描画レングス、描画Ｙ座標およびブラシパターンを、ブラシ合成処理部６４に転送する。
【００５８】
図９は、実施形態によるブラシ合成処理部６４の一例の構成を示す。ブラシ合成処理部６４は、マルチプレクサ（ＭＵＸ）９０と、描画アドレスレジスタ９１と、レングスレジスタ９２と、描画パターンバッファ９３と、ブラシパターンバッファ９４と、ブラシオン／オフレジスタ９５と、描画Ｙ座標レジスタ９６と、ブラシ合成処理回路９７と、リード描画パターンバッファ９８と、ライトバッファ９９と、リード制御部１００と、ライト制御部１０１とを有する。
【００５９】
ＭＵＸ９０は、写真画像描画部６１およびＣＭＹＫグラフィクス描画部６３それぞれから、描画パターンと、描画アドレスと、描画レングスと、描画Ｙ座標とが入力される。また、ＣＭＹＫグラフィクス描画部６３からは、ブラシパターンがさらに入力される。ＭＵＸ９０は、コマンド解析部６２から受け取った切り替え信号に従い、写真画像描画部６１およびＣＭＹＫグラフィクス描画部６３のうち一方から入力された描画パターン、描画アドレス、描画レングスおよび描画Ｙ座標を選択する。切り替え信号がＣＭＹＫグラフィクス描画側を示している場合には、ＭＵＸ９０は、さらにブラシパターンを選択する。
【００６０】
描画アドレスレジスタ９１、レングスレジスタ９２、描画パターンバッファ９３、ブラシパターンバッファ９４および描画Ｙ座標レジスタ９６は、それぞれ、ＭＵＸ９０で選択された描画アドレス、描画レングス、描画パターン、ブラシパターンおよび描画Ｙ座標を格納する。また、ブラシオン／オフレジスタ９５は、コマンド解析部６２から入力されたブラシオン／オフ信号を格納する。
【００６１】
描画アドレスレジスタ９１およびレングスレジスタ９２にそれぞれ格納された描画アドレスおよび描画レングスは、共に、リード制御部１００およびライト制御部１０１に転送される。また、描画パターンバッファ９３およびブラシパターンバッファ９４にそれぞれ格納された描画パターンおよびブラシパターンは、共に、ブラシ合成処理回路９７に転送される。さらに、ブラシオン／オフレジスタ９５に格納されたブラシオン／オフ信号も、ブラシ合成処理回路９７に転送される。
【００６２】
描画Ｙ座標レジスタ９６に格納された描画Ｙ座標は、垂直ラインメモリ５１に転送される。垂直ラインメモリ５１は、下地フラグをブラシ合成処理回路９７およびリード制御部１００に出力する。
【００６３】
リード制御部１００は、メインメモリ１４のバンドメモリ領域からの画像データの読み出し（リード）を行うため、描画アドレスレジスタ９１およびレングスレジスタ９２から転送された描画アドレスおよび描画レングスをＩ／Ｆ６０を介してメモリコントローラ２５に送信する。また、リード制御部１００は、メモリコントローラ２５によりメインメモリ１４のバンドメモリ領域から読み出された描画パターンをＩ／Ｆ６０を介して受け取り、リード描画パターンバッファ９８を介してブラシ合成処理回路９７に転送する。以降、リード制御部１００がメインメモリ１４のバンドメモリ領域から読み出した描画パターンを、リード描画パターンと呼ぶ。
【００６４】
ここで、リード制御部１００は、垂直ラインメモリ５１からライン毎に出力される下地フラグに従い、メインメモリ１４のバンドメモリ領域からの画像データの読み出しを行うか否かを制御する。例えば、第ｍライン目の処理を行う場合、垂直ラインメモリ５１からリード制御部１００に対して、第ｍライン目に対応する下地フラグが入力される。リード制御部１００は、入力された下地フラグの値が、メインメモリ１４のバンドメモリ領域において第ｍライン目に描画パターンによる画像データの書き込みがなされていないことを示す値（例えば値「０」）である場合、当該画像データのメインメモリ１４からの読み出しを行わないように制御する。一方、下地フラグの値が、バンドメモリ領域において第ｍライン目に描画パターンによる画像データの書き込みがなされていることを示す値（例えば値「１」）であれば、通常通り、メインメモリ１４からの画像データの読み出しを実行する。
【００６５】
ライト制御部１０１は、メインメモリ１４のバンドメモリ領域に対する画像データの書き込み（ライト）を行うため、描画アドレスレジスタ９１およびレングスレジスタ９２から転送された描画アドレスおよび描画レングスと、ライトバッファ９９に格納される描画パターンとを、Ｉ／Ｆ６０を介してメモリコントローラ２５に送信する。以降、ライト制御部１０１に転送する描画パターンを、ライト描画パターンと呼ぶ。
【００６６】
ブラシ合成処理回路９７は、リード描画パターンバッファ９８から描画パターンを読み込むと共に、描画パターンバッファ９３およびブラシパターンバッファ９４から描画パターンおよびブラシパターンをそれぞれ読み込む。そして、ブラシオン／オフレジスタ９５に格納されたブラシオン／オフ信号がブラシ合成処理を行うことを示している場合に、読み込んだ各描画パターンとブラシパターンとを用いてブラシ演算を行い、ブラシパターンの合成処理を行う。
【００６７】
図１０を用いてブラシ合成処理について概略的に説明する。なお、図１０（ａ）〜図１０（ｄ）は、各描画パターンおよびブラシパターンを、画素毎にラインの位置を縦方向に対応させて示している。図１０（ａ）は、リード描画パターンバッファ９８から読み込んだリード描画パターン値の例、図１０（ｂ）は、描画パターンバッファ９３から読み込んだ描画パターン値の例をそれぞれ示す。ここでは、説明のため、各描画パターンが２値画像データであるものとして示している。
【００６８】
図１０（ｃ）は、ブラシパターンバッファ９４から読み込んだブラシパターン値の例を示す。ブラシパターンにおいて、「●（黒丸）」が値「０」、「○（白丸）」が値「１」を示すものとする。ブラシ合成処理回路９７は、値が「０」で図１０（ａ）のリード描画パターン値を選択し、値が「１」で図１０（ｂ）の描画パターン値を選択する。その結果、図１０（ｄ）にライト描画パターン値として例示されるように、図１０（ａ）および図１０（ｂ）の各描画パターンが、ブラシパターンに従い合成された合成描画パターンが生成される。この図１０（ｄ）に例示されるライト描画パターン値が、ライト制御部１０１によりメインメモリ１４のバンドメモリ領域に書き込まれることになる。
【００６９】
図１１は、図１０を用いて説明したようなブラシ合成処理を実現するための、ブラシ合成処理回路９７の一例の構成を示す。ブラシ合成処理回路９７は、それぞれｎ個の論理積回路１１０1、１１０2、…、１１０nと、ＭＵＸ１１１1、１１１2、…、１１１nとを有する。なお、値ｎは、１ラインにおける処理単位の画素数に対応する。
【００７０】
例えば、第ｍライン目の各リード描画パターン値＃０、＃１、…、＃ｎが、論理積回路１１０1、１１０2、…、１１０nそれぞれの一方の入力端に入力される。各論理積回路１１０1、１１０2、…、１１０nの他方の入力端には、垂直ラインメモリ５１から、第ｍライン目に対応する下地フラグが入力される。
【００７１】
各ＭＵＸ１１１1、１１１2、…、１１１nは、それぞれ、制御入力端１１２1、１１２2、…、１１２nと、２の選択入力端１１３1、１１３2、…、１１３nおよび１１４1、１１４2、…、１１４nとを有する。
【００７２】
各ＭＵＸ１１１1、１１１2、…、１１１nにおいて、各制御入力端１１２1、１１２2、…、１１２nに対して、各ブラシパターン値＃０、＃１、…、＃ｎが入力される。また、一方の選択入力端１１３1、１１３2、…、１１３nに対して各論理積回路１１０1、１１０2、…、１１０nの出力がそれぞれ入力され、他方の選択入力端１１４1、１１４2、…、１１４nに対して、描画パターンバッファ９３から読み込まれた各描画パターン値＃０、＃１、…、＃ｎがそれぞれ入力される。各ＭＵＸ１１１1、１１１2、…、１１１nは、各制御入力端１１２1、１１２2、…、１１２nに入力された各ブラシパターン値に応じて、一方および他方の選択入力端をそれぞれ切り替える。
【００７３】
このような構成において、下地フラグの値が「１」であれば、各論理積回路１１０1、１１０2、…、１１０nは、一方の入力端に入力された各リード描画パターン値＃０、＃１、…、＃ｎに応じた値を出力する。この場合、各ＭＵＸ１１１1、１１１2、…。１１１nは、図１０を用いて説明したような、各リード描画パターン値＃０、＃１、…、＃ｎと各描画パターン値＃０、＃１、…、＃ｎとが、ブラシパターン値＃１、＃２、…、＃ｎに応じて切り替えて選択されたパターン値を、各ブラシ処理後パターン値＃０、＃１、…、＃ｎとして出力する。
【００７４】
一方、下地フラグの値が「０」であれば、各論理積回路１１０1、１１０2、…、１１０nは、強制的に値「０」を出力することになる。この場合、各ＭＵＸ１１１1、１１１2、…、１１１nは、各描画パターン値＃０、＃１、…、＃ｎのオン／オフが各ブラシパターン値＃０、＃１、…、＃ｎに応じて切り替えられた値を、各ブラシ処理後パターン値＃０、＃１、…、＃ｎとして出力することになる。
【００７５】
図１２は、実施形態による垂直ラインメモリ５１の一例の構成を示す。実施形態では、垂直ラインメモリ５１は、複数のレジスタ１２１1、１２１2、…、１２１k、…、１２１256を備え、メインメモリ１４のバンドメモリ領域の各ラインの情報を、バンド高さ方向に分割して保持する。この例では、バンド高さが８１９２ラインであり、垂直ラインメモリ５１は、それぞれ３２ライン毎のライン情報を保持する２５６個のレジスタ１２１1、１２１2、…、１２１k、…、１２１256を有する。これらレジスタ１２１1、１２１2、…、１２１k、…、１２１256は、初期化信号により状態が初期化される。なお、レジスタ１２１kは、レジスタ１２１1〜１２１256中の任意のレジスタを指す。
【００７６】
垂直ラインメモリ５１は、さらに、ＭＵＸ１２０および１２２と、ビットパターン生成部１３０と、論理積回路１３１と、論理和回路１３２と、判定部１３３とを有する。描画Ｙ座標レジスタ９６から、描画パターンによる画像データの書き込みにより描画を行うラインを示す描画Ｙ座標の値が垂直ラインメモリ５１に入力される。ここで、描画Ｙ座標は、１６ビットのビット長を持つデータであるものとする。垂直ラインメモリ５１において、描画Ｙ座標の１６ビットのビット長のうち上位１１ビットがＭＵＸ１２０および１２２に選択信号として入力され、下位５ビットがビットパターン生成部１３０に入力される。
【００７７】
ビットパターン生成部１３０は、入力された下位５ビットの値から、図１３に例示されるように、当該５ビットの値に対応するビット位置の値が「１」となる３２ビットのパターンを生成し出力する。なお、図１３の出力側の表記において、左端の「３２’ｂ」は、右隣から連続する各値がビット長が３２ビットのバイナリ値であることを示す。また、この３２ビットのバイナリ値は、左端がＬＳＢ(Least  Significant  Bit)、右端がＭＳＢ(Most  Significant  Bit)となっている。
【００７８】
ＭＵＸ１２０および１２２は、レジスタ１２１1、１２１2、…、１２１k、…、１２１256から、描画Ｙ座標の上位１１ビットの値ｋに対応するレジスタ１２１kを選択する。
【００７９】
論理和回路１３２は、ビットパターン生成部１３０で生成された３２ビットのビットパターンの各値と、ＭＵＸ１２２で選択されたレジスタ１２１kの３２ビットの各値との論理和を出力する。論理和回路１３２の３２ビット長の出力は、ＭＵＸ１２０で選択されたレジスタ１２１kに書き込まれる。
【００８０】
このように、実施形態では、描画が行われたライン（Ｙ座標）を示す描画Ｙ座標の値に基づき論理和演算を行い、演算結果を描画Ｙ座標の上位ビットに従い選択されたレジスタ１２１kに格納する。メインメモリ１４のバンドメモリ領域におけるあるラインに対して、描画パターンによる画像データの最初の書き込みを行った場合に、当該ラインに対して描画が行われた旨を示す情報が、垂直ラインメモリ５１に記憶される。
【００８１】
論理積回路１３１は、ビットパターン生成部１３０で生成された３２ビットのビットパターンの各値と、ＭＵＸ１２２で選択されたレジスタ１２１kの３２ビットの各値とのそれぞれの論理積を出力する。論理積回路１３１の３２ビットの出力は、判定部１３３に入力される。判定部１３３は、入力された論理積回路１３１の３２ビットの出力のうち、値が「１」のビットが存在するか否かを判定する。若し、当該３２ビットのうち値が「１」のビットが少なくとも１ビットあった場合に、下地有りとして、値「１」の下地フラグを出力する。一方、判定部１３３は、当該３２ビットのうち値が「１」のビットが存在しなければ、下地無しとして、値「０」の下地フラグを出力する。
【００８２】
このように、実施形態では、描画Ｙ座標の値から生成されたビットパターンと、各レジスタ１２１1、１２１2、…、１２１k、…、１２１256に格納される値との間で論理積演算を行い、演算結果に基づき下地の有無の判定を行う。その際に、各ラインの情報を複数のレジスタに分割して格納し、描画Ｙ座標の上位ビットおよび下位ビットに基づき判定を行なっているため、ロジックを単純化することができる。
【００８３】
例えば、上述の例に限らず、８１９２ラインに対応して、フリップフロップ回路を８１９２個使用することも考えられるが、この場合、８１９２個のフリップフロップ回路の出力から１の出力を選択するセレクタが必要となり、ロジックが複雑化してしまう。
【００８４】
図１４は、実施形態によるブラシ合成処理部６４による一例の処理を示すフローチャートである。この図１４のフローチャートによる処理は、描画コマンドに従った１ラインの描画毎に実行される。
【００８５】
ステップＳ１００で、ブラシ合成処理部６４は、切り替え信号に従い、写真画像の描画を行うか否かを判定する。若し、写真画像の描画を行うと判定した場合、処理がステップＳ１０１に移行される。この場合、ＭＵＸ９０において写真画像描画部側が選択され、描画アドレスレジスタ９１、レングスレジスタ９２および描画パターンバッファ９３には、それぞれ写真画像描画用コマンドによる描画アドレス、描画レングスおよび描画パターンが格納される。
【００８６】
ステップＳ１０１で、ブラシ合成処理部６４は、メインメモリ１４のバンドメモリ領域における、描画アドレスレジスタ９１に格納される描画アドレスが示すアドレスに、描画パターンによる画像データを書き込む。描画パターンの書き込みがなされると、処理が後述するステップＳ１０７に移行される。
【００８７】
なお、ブラシ合成処理回路９７において、写真画像描画の際には、各ブラシパターン値＃０〜＃ｎが、全てＭＵＸ１１１1〜１１１nの選択入力端１１４1〜１１４nをそれぞれ選択する値とされ、入力された各描画パターン値＃０〜＃ｎがそのままブラシ処理後パターン値＃０〜＃ｎとして出力されるものとする。また、ステップＳ１０１の処理に伴い、描画を行ったラインを示す描画Ｙ座標が描画Ｙ座標レジスタ９６から垂直ラインメモリ５１に転送される。
【００８８】
上述のステップＳ１００で、写真画像描画ではないと判定した場合、処理がステップＳ１０２に移行される。ステップＳ１０２で、ブラシ合成処理部６４は、ブラシオン／オフ信号に従い、ブラシ合成処理がオンとされているか否かを判定する。若し、ブラシ合成処理がオフとされていると判定した場合、処理がステップＳ１０１に移行される。この場合、ＭＵＸ９０においてＣＭＹＫグラフィクス描画部側が選択され、描画アドレスレジスタ９１、レングスレジスタ９２および描画パターンバッファ９３には、それぞれＣＭＹＫグラフィクス描画用コマンドによる描画アドレス、描画レングスおよび描画パターンが格納される。ブラシ合成処理部６４は、メインメモリ１４のバンドメモリ領域における、描画アドレスレジスタ９１に格納される描画アドレスが示すアドレスに、描画パターンによる画像データを書き込む。描画パターンの書き込みがなされると、処理が後述するステップＳ１０７に移行される。
【００８９】
ステップＳ１０２でブラシ合成処理がオンとされていると判定した場合、処理がステップＳ１０３に移行され、ブラシ合成処理部６４は、垂直ラインメモリ５１から出力される下地フラグの値の判定を行う。若し、下地フラグの値が、メインメモリ１４のバンドメモリ領域における描画Ｙ座標に対応するラインに既に描画パターンが書き込まれていることを示す値「１」であると判定した場合、処理がステップＳ１０４に移行される。
【００９０】
ステップＳ１０４で、ブラシ合成処理部６４は、メインメモリ１４のバンドメモリ領域における、描画アドレスレジスタ９１に格納される描画アドレスが示すアドレスから画像データを読み出し、読み出した画像データに基づく描画パターンをリード描画パターンとする。
【００９１】
すなわち、フラグ合成処理回路９７において、下地フラグの値に従い、各論理積回路１１０1〜１１０nにおいて下地フラグと描画パターンとの論理積が求められる。この場合、下地フラグの値が「１」とされているので、各論理積回路１１０1〜１１０nから各リード描画パターン値＃０〜＃ｎの値がそのまま各ブラシ処理後パターン値＃０〜＃ｎとして出力され、各ＭＵＸ１１１1〜１１１nに入力される。そして、処理が後述するステップＳ１０６に移行される。
【００９２】
一方、ステップＳ１０３で、下地フラグの値が、メインメモリ１４のバンドメモリ領域における描画Ｙ座標に対応するラインに、未だ描画パターンが書き込まれていないことを示す値「０」であると判定した場合、処理がステップＳ１０５に移行される。ステップＳ１０５で、ブラシ合成処理部６４は、メインメモリ１４からの画像データの読み出しを行わないと共に、リード描画パターンの値を全て「０」とする。
【００９３】
すなわち、フラグ合成処理回路９７において、下地フラグの値に従い、各論理積回路１１０1〜１１０nにおいて下地フラグと描画パターンとの論理積が求められる。この場合、下地フラグの値が「０」とされているので、各論理積回路１１０1〜１１０nから値「０」が出力される。この値「０」が、各リード描画パターン値＃０〜＃ｎとして、各ＭＵＸ１１１1〜１１１nに入力される。そして、処理がステップＳ１０６に移行される。
【００９４】
ステップＳ１０６で、ブラシ合成処理部６４は、ステップＳ１０４またはステップＳ１０５で生成されたリード描画パターンと、描画パターンバッファ９３から読み込まれた描画パターンと、ブラシパターンバッファ９４から読み込まれたブラシパターンとを用いて、ブラシ合成処理を行う。
【００９５】
すなわち、ブラシ合成処理部６４のブラシ合成処理回路９７において、例えばＭＵＸ１１１1は、選択入力端１１３1および１１４1にそれぞれ入力されたリード描画パターン値＃０と描画パターン値＃０とを、制御入力端１１２1に入力されたブラシパターン値＃０に従い切り替えて、ブラシ処理後パターン値＃０として出力する。他のＭＵＸ１１１2〜１１１nでも、同様にしてブラシ処理後パターン値＃２〜＃ｎが出力される。
【００９６】
ステップＳ１０６でブラシ合成処理が行われると、処理はステップＳ１０７に移行される。ステップＳ１０７で、ブラシ合成処理部６４は、ブラシ合成処理が施された描画パターンによる画像データを、描画アドレスレジスタ９１に格納される描画アドレスに従い、メインメモリ１４のバンドメモリ領域に対して書き込む。
【００９７】
より具体的には、ブラシ合成処理部６４は、ブラシ合成処理回路９７からブラシ処理後パターンを描画パターンとして出力し、出力されたこの描画パターンをライトバッファ９９を介してライト制御部１０１に転送する。ライト制御部１０１は、描画パターンと、描画アドレスレジスタ９１から転送される描画アドレスと、レングスレジスタ９２から転送される描画レングスとをＩ／Ｆ６０を介してコントローラ２５に送信する。メモリコントローラ２５は、送信された描画パターンによる画像データを、メインメモリ１４のバンドメモリ領域における、描画アドレスで示される位置に書き込む。
【００９８】
次のステップＳ１０８で、ブラシ合成処理部６４は、垂直ラインメモリ５１に対し、描画Ｙ座標に対応するアドレスに対して値「１」をセットし、図１４のフローチャートによる一連の処理が終了される。
【００９９】
具体的には、垂直ラインメモリ５１において、描画Ｙ座標に従い対応するレジスタ１２１kが選択されると共に、ビットパターン生成部１３０で描画Ｙ座標に基づくビットパターンが生成される。論理和回路１３２で、レジスタ１２１kの値と、ビットパターン生成部１３０で生成されたビットパターンとの論理和が求められ、求めた論理和の値が、レジスタ１２１kに書き込まれる。
【０１００】
このように、実施形態では、ブラシ合成処理の際に、垂直ラインメモリ５１からブラシ合成処理の対象のラインに応じて出力される下地フラグに基づき、当該ラインに未だ描画パターンが書き込まれていないと判定された場合に、メインメモリ１４からの当該ラインの読み出しを行わずに、リード描画パターンの値を「０」として、ブラシ合成処理を行う。そのため、ブラシ合成処理の際のメインメモリ１４からの描画パターンの読み出しを高速化することが可能である。
【０１０１】
また、ライン単位でブラシ合成処理を行うため、ブラシパターンの記憶に要するメモリ容量が小さくて済むと共に、図１８を用いて説明したようなブラシパターンにも対応できる。
【０１０２】
従来技術によれば、例えば図１５に例示されるような、１ページをグラフィクス画像で覆ってしまう背景画像２００に対してブラシ合成処理を行う場合、例えば、２値のブラシパターンの値「１」および「０」の部分に対し、背景画像２００による第１色と、背景画像２００に対して合成する前景画像による第２色とをそれぞれ適用して、第１色と第２色とを切り替えて描画する。
【０１０３】
従来では、このブラシ合成処理の際に、背景画像２００をリード描画パターンとしてメインメモリ１４から読み込むと共に、前景画像を描画パターンとして読み込み、ブラシパターンを用いて合成して、メインメモリ１４に書き戻す、リードモディファイライト処理が行われていた。このリードモディファイライト処理では、図１６に例示されるように、読み出し処理において大きな遅延が生じる。一方、書き込み処理については、図１７に例示されるように、読み出し処理に対して遅延が小さい。
【０１０４】
実施形態では、描画パターンによる画像データが未だ書き込まれていないラインにおいて、リードモディファイライトにおける読み出し処理を省略できるので、ブラシ合成処理をより高速に実行できる。
【０１０５】
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０１０６】
１  画像形成装置
１３  ＡＸＩバス
１４  メインメモリ
１５  描画部
２５  メモリコントローラ
５０  バンドメモリ
５１  垂直ラインメモリ
６０  インターフェイス
６１  写真画像描画部
６２  コマンド解析部
６３  ＣＭＹＫブラフィクス描画部
６４  ブラシ合成処理部
１１０1、１１０2、…、１１０n，１３１  論理積回路
１１１1、１１１2、…、１１１n，１２０，１２２  ＭＵＸ
１２１1、１２１2、…、１２１k、…、１２１256  レジスタ
１３０  ビットパターン生成部
１３２  論理和回路
１３３  判定部
【先行技術文献】
【特許文献】
【０１０７】
【特許文献１】特許第３３３２１６５号公報
【図１】
2014099812.tif 000003
【図２】
2014099812.tif 000004
【図３】
2014099812.tif 000005
【図４】
2014099812.tif 000006
【図５】
2014099812.tif 000007
【図６】
2014099812.tif 000008
【図７】
2014099812.tif 000009
【図８】
2014099812.tif 000010
【図９】
2014099812.tif 000011
【図１０】
2014099812.tif 000012
【図１１】
2014099812.tif 000013
【図１２】
2014099812.tif 000014
【図１３】
2014099812.tif 000015
【図１４】
2014099812.tif 000016
【図１６】
2014099812.tif 000017
【図１７】
2014099812.tif 000018
【図１８】
2014099812.tif 000019
【図１５】
2014099812.tif 000020