(57)【要約】【課題】半透明パターンオブジェクトに代表される、空間周期性のある描画オブジェクトと、ディザパターンとの干渉（例えば、半透明処理と、縮小処理との干渉）によって起こる描画品位の低下を防ぐこと。【解決手段】本発明は、データを解釈して、中間データを生成する画像形成装置であって、データ中に周期性のある描画パターンがあるか否かを判定する手段と、データ中に縮小命令があるか否かを判定する手段と、前記描画パターンの周期のピッチ数と、前記縮小命令が持つ縮小率との比率を求める手段と、前記比率と、前記画像形成装置がロードしたテーブル内の値とが一致するか否かを判定する手段と、前記比率が前記テーブル内の値と一致すると判定された場合、画像をセル毎に分けて、セル単位で間引き処理を行うことで、前記画像を縮小する手段とを備えたことを特徴とする。【選択図】図３
2015002530.tif 000002
【特許請求の範囲】
【請求項１】
データを解釈して、中間データを生成する画像形成装置であって、
データ中に周期性のある描画パターンがあるか否かを判定する手段と、
データ中に縮小命令があるか否かを判定する手段と、
データ中に周期性のある描画パターンがあると判定され且つデータ中に縮小命令があると判定された場合、前記描画パターンの周期のピッチ数と、前記縮小命令が持つ縮小率との比率を求める手段と、
前記比率と、前記画像形成装置がロードしたテーブル内の値とが一致するか否かを判定する手段と、
前記比率が前記テーブル内の値と一致すると判定された場合、画像をセル毎に分けて、セル単位で間引き処理を行うことで、前記画像を縮小する手段と
を備えたことを特徴とする画像形成装置。
【請求項２】
前記セルは、ピクセルを前記パターンの周期のピッチ数分だけまとめたものであることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記データは、ＰＤＬデータであることを特徴とする請求項１に記載の画像形成装置。
【請求項４】
画像形成装置が、データを解釈して、中間データを生成する画像処理方法であって、
データ中に周期性のある描画パターンがあるか否かを判定するステップと、
データ中に縮小命令があるか否かを判定するステップと、
データ中に周期性のある描画パターンがあると判定され且つデータ中に縮小命令があると判定された場合、前記描画パターンの周期のピッチ数と、前記縮小命令が持つ縮小率との比率を求めるステップと、
前記比率と、前記画像形成装置がロードしたテーブル内の値とが一致するか否かを判定するステップと、
前記比率が前記テーブル内の値と一致すると判定された場合、画像をセル毎に分けて、セル単位で間引き処理を行うことで、前記画像を縮小するステップと
を備えたことを特徴とする画像処理方法。
【請求項５】
コンピュータを、請求項１乃至３の何れかに記載の画像形成装置として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像処理方法、およびプログラムに関する。
【０００２】
特に、本発明は、ホストコンピュータから送信された印刷データを受信し、画像処理を行ったうえで画像形成する画像形成装置、画像処理方法、およびその画像処理方法を実現するプログラムに関する。
【背景技術】
【０００３】
近年、ホストコンピュータのアプリケーションやＯＳにおいて、背面に描画されているオブジェクトが透けて見えるように、前面のオブジェクトを半透明に描画することが可能となっている。この前面のオブジェクトを半透明に描画する方法の一つとして、前面のオブジェクトを市松模様状に間引く手法が知られている（特許文献１を参照）。
【０００４】
この手法によって生成された印刷データを受信した画像形成装置は、ページ記述言語(本明細書では「ＰＤＬ」と略記する。ＰＤＬの技術情報に関しては非特許文献１を参照)に代表される印刷データを解釈する。そして、解釈結果をもとに、画像形成装置は、拡大・縮小処理（拡縮処理）等の画像処理を行い、印刷用のビットマップデータを生成する (非特許文献１の特にChapter 6: Renderingを参照)。
【０００５】
また、これらビットマップデータ等の画像データに対する拡大・縮小処理（拡縮処理）として、間引き処理が知られている。この間引き処理は、縮小率に応じて対象画像のピクセルを抜き取ることにより、対象画像データのピクセル数を減ずる処理である。また、市松模様上に間引かれた印刷データに対する拡縮処理として、平均濃度を求めて拡縮処理を行う技術が知られている(特許文献２を参照)。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１１０４２７号公報
【特許文献２】特開２００７−２７８２６号公報
【非特許文献】
【０００７】
【非特許文献１】PostScript Language Reference Manual  SECOND EDITION6.3 Transfer Functions
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の従来技術を、図１を参照しながらマイクロソフト社製パワーポイントを例に挙げて説明する。
【０００９】
図１の符号１０１ａに示す文字（abcdefgh）の前面に、グレーのオブジェクトを図１の符号１０１ｂに示すように追加して描画すると、グレーのオブジェクトの背面の文字は隠れて描画されるので見えない。
【００１０】
これに対して、図１の符号１０１ａに示す文字の前面に、半透明指定されたグレーのオブジェクトを図１の１０１ｄに示すように追加して描画すると、グレーのオブジェクトの背面の文字が透けて見える。
【００１１】
ユーザーがパワーポイントを使用している場合、次の操作を行うことでこの半透明指定を行うことができる。即ち、ユーザーはパワーポイントの「オートシェイプの書式設定」機能で、塗りつぶしの色指定でグレーを指定し、併せて半透明指定をチェックして半透明指定を行う。これにより、グレーのオブジェクトの背面文字が透けて見えるように設定することができる。
【００１２】
この半透明指定は、図１の符号１０１ｃに示すようなグラデーションオブジェクトに対しても行うことができる。即ち、図１の符号１０１ｅに示すように、グラデーションオブジェクトを半透明指定することで、ユーザーはパワーポイントを使用する際に背面の文字が透けて見えるように設定することができる。
【００１３】
このような半透明指定が可能なアプリケーションはパワーポイントに限らない。今日の様々なWYSIWYGアプリケーションにおいて、半透明指定を行うことができる。
【００１４】
半透明指定されたオブジェクトは、実際には図２に示すように描画されている。
【００１５】
まず、何も描画されていない状態の背景３０１に対してオブジェクト３０２が、GDIコマンドによる表現の1つRasterOPeration (本明細書では「ＲＯＰ」と略記する)の“上書き”処理によって描画される。ＲＯＰとは、２つ以上のオブジェクトをビット演算によって重ね合わせる描画方法である。“上書き”処理は、上に重ねるオブジェクトが常に有効となる処理である。
【００１６】
次に、半透明指定されたグレーのオブジェクト３０３が、ＲＯＰの“XOR”処理によって描画される。“XOR”処理は、重ね合わせるオブジェクト同士の各ビットをXORで演算する処理である。
【００１７】
次に、半透明パターンオブジェクト３０４が、ＲＯＰの“AND”処理によって描画される。“AND”処理は、重ね合わせるオブジェクト同士の各ビットをANDで演算する処理である。
【００１８】
最後に再び、半透明指定されたグレーのオブジェクト３０３と同等の半透明指定されたグレーのオブジェクト３０５が、ＲＯＰの“XOR”処理によって描画される。
【００１９】
上記の一連の処理により、半透明パターンオブジェクト３０４の白の部分が、半透明指定されたグレーのオブジェクト３０３あるいは３０５に描画され、半透明パターンオブジェクト３０４の黒の部分が、オブジェクト３０２に描画され、描画結果３０６が得られる。このようにして、オブジェクト３０２に含まれる文字が透けて見える描画結果が得られるのである。
【００２０】
ここでさらに、描画結果３０６に対して拡縮処理、具体的には間引きによる縮小処理が行われた場合について、図３を参照しながら説明する。パワーポイントの印刷において、拡縮処理は、例えば、面付け処理の様な操作や設定がなされている場合に行われる。面付け処理とは、ページ内の描画全体を縮小し、一枚の紙に複数ページを割りつけて印刷する処理である。この面付け処理に代表される縮小処理では、例えば、1/2の倍率で縮小処理が行われ、上述した半透明の描画結果３０６に対しても縮小処理が行われる。
【００２１】
この拡縮処理において以下の様な課題がある。上述したように半透明パターンは、市松模様に代表される空間に対して周期的な描画処理によって実現されている。このような周期的な描画処理の結果に対する拡縮処理においては、正しく描画されない恐れがある。例えば、間引き縮小処理による標本化の周期が、市松模様の周期的な描画パターンの周期と一致する場合、あるいは、市松模様の周期的な描画パターンの周期の有理数倍である場合、以下の様な課題が起こり得る。この場合、市松模様の周期的な描画パターンに対する縮小結果が、元の周期的な描画パターンを再現せず、平均濃度に差異が生じることがあり、あるいは、描画抜けが発生することがある（図３の符号３０７を参照）。この現象は、干渉による画像劣化や、折り返し雑音、またはエイリアスと呼ばれる従来から存在する問題であり、公知の現象である。
【００２２】
つまり、従来技術においては、半透明パターンオブジェクトに代表される空間周期性のある描画オブジェクトの描画処理と、拡縮処理とによる干渉によって描画品位の低下が起こり得るという課題がある。
【００２３】
上の説明では、モノクロ印刷の場合を例に挙げて説明を行っている。この例では、ユーザーが意図した描画結果と異なる印刷結果または濃度に差異がある印刷結果を得るという課題がある。即ち、図３の符号３０７で示すような描画抜けが発生する。また、カラー印刷の場合はさらに、打つべき場所に打つべきカラードットが形成されず色味までが変わってしまうという課題がある。
【００２４】
こうした課題への対策として、特許文献１では、半透明指定されたオブジェクトの印刷が行われる際に、本来印刷されるべき濃度で印刷されるか確認し、印刷されない場合には警告を行っている。しかし、特許文献１に記載の方法を使ったとしても、ユーザーの意図通りの濃度にオブジェクトは印刷されないという課題がある。ただし、この課題は、公知のアンチエイリアス処理を行うことで回避可能である。
【００２５】
しかしながら、アンチエイリアス処理には一定の処理時間がかかり、印刷に伴う画像処理の速度を低下せしめるという課題がある。同様に、特許文献１に示されている平均濃度を求めることで、半透明処理と、縮小処理との干渉を防止する手法も、アンチエイリアス処理と同様に、印刷に伴う画像処理の速度を低下せしめるという課題がある。
【００２６】
本発明は、上記の課題を鑑みてなされたものである。本発明は、半透明パターンオブジェクトに代表される、空間周期性のある描画オブジェクトと、ディザパターンとの干渉（例えば、半透明処理と、縮小処理との干渉）によって起こる描画品位の低下を防ぐことを目的とする。同時に、本発明は、従来技術のアンチエイリアスや平均濃度を求める処理よりも高速な画像処理を実現することを目的とする。
【課題を解決するための手段】
【００２７】
本発明の請求項１は、データを解釈して、中間データを生成する画像形成装置であって、データ中に周期性のある描画パターンがあるか否かを判定する手段と、データ中に縮小命令があるか否かを判定する手段と、データ中に周期性のある描画パターンがあると判定され且つデータ中に縮小命令があると判定された場合、前記描画パターンの周期のピッチ数と、前記縮小命令が持つ縮小率との比率を求める手段と、前記比率と、前記画像形成装置がロードしたテーブル内の値とが一致するか否かを判定する手段と、前記比率が前記テーブル内の値と一致すると判定された場合、画像をセル毎に分けて、セル単位で間引き処理を行うことで、前記画像を縮小する手段とを備えたことを特徴とする。
【発明の効果】
【００２８】
本発明の効果は以下のとおりである。
【００２９】
第一に、空間周期性のある描画オブジェクトの描画処理と、拡縮処理とが干渉する場合に、描画品位が低下する問題を防止することができる。
【００３０】
第二に、縮小処理において高速な間引き処理を行いながら、描画品位が低下する問題を防止することができる。即ち、本発明は、従来技術のアンチエイリアス処理や平均濃度を求める処理より高速な間引き処理を用いながら、画質を改善することができる。
【図面の簡単な説明】
【００３１】
【図１】半透明指定が可能なオブジェクトを説明する図である。
【図２】半透明指定されたオブジェクトの描画方法を説明する図である。
【図３】半透明指定と、拡縮指定とがされたオブジェクトの描画を説明する図である。
【図４】本発明の実施例１に係るプリンター等の接続形態を説明する図である。
【図５】本発明の実施例１に係るＰＤＬデータと、中間データとを説明する図である。
【図６】本発明の実施例１に係るホストコンピュータの構造を説明する図である。
【図７】本発明の実施例１に係るホストコンピュータにおけるＰＤＬコマンド生成処理を説明するフロー図である。
【図８】本発明の実施例１に係る半透明指定されたオブジェクトの描画方法を説明する図である。
【図９】本発明の実施例１に係る半透明指定されたオブジェクトの描画方法を説明する図である。
【図１０】本発明の実施例１に係るプリンター内のハードウェア構成を説明するブロック図である。
【図１１】本発明の実施例１に係るプリンター内のソフトウェア構成を説明するブロック図である。
【図１２】本発明の実施例１に係るプリンター内のデータフローを説明する図である。
【図１３】本発明の実施例１に係る周期性のある描画のパターンに対する拡縮処理を説明するフロー図である。
【図１４】本発明の実施例１に係る干渉比率テーブルを示す図である。
【図１５】本発明の実施例１に係る周期性のある描画のパターンを保存したテーブルを示す図である。
【図１６】本発明の実施例１に係る拡縮処理の一例を示す図である。
【図１７】本発明の実施例１に係る間引きによる縮小処理を説明する図である。
【図１８】本発明に係る間引きによる縮小処理を説明するフロー図である。
【図１９】本発明の実施例２に係るＰＤＬデータ生成処理を説明する図である。
【発明を実施するための形態】
【００３２】
以下、本発明を実施するための最良の形態について図面を参照しながら説明する。
【実施例１】
【００３３】
[実施例の概要]
本発明の第１の実施例（実施例１）を以下の順序で説明する。
【００３４】
第一に、プリンターと、ホストコンピュータとの接続形態およびこの接続形態における印刷処理を概説する。
【００３５】
第二に、ホストコンピュータが生成しプリンターが処理するＰＤＬデータの説明を行う。併せて、ＰＤＬデータを用いて周期性のある描画パターンをどのように表現するかについて説明する。
【００３６】
第三に、プリンターがＰＤＬデータを用いてどのように印刷処理を行うかを説明する。併せて、プリンターがＰＤＬデータに含まれる周期性のある描画オブジェクトをどのように処理するかについて説明する。
【００３７】
最後に、本実施例の効果を説明する。
【００３８】
［ホストコンピュータと、プリンターとの接続形態および印刷処理の説明］
図４は、本実施例における画像形成装置の接続形態を示している。
【００３９】
パーソナルコンピュータに代表されるホストコンピュータ９００は、上述したパワーポイント等のアプリケーションやミドルウェア、ドライバーソフトウェアを動作させ、入力データであるＰＤＬデータ１０００を生成する。ＰＤＬデータ１０００に関しては後述する。ホストコンピュータ９００と、プリンター１００とは、ネットワーク３００に代表される通信手段によって相互に接続されている。ホストコンピュータ９００は、ＰＤＬデータ１０００を、ネットワーク３００を通じてプリンター１００に転送する。なお、ネットワーク３００として、後述するＵＳＢインターフェース装置１００−７、ＩＥＥＥ  １２８４インターフェース装置１００−８、ネットワーク装置１００−９のいずれを用いても本発明を実施できる。もちろんそれ以外の、装置間を接続しデータ転送を実現する技術を用いて、本発明を実施できることは言うまでもない。
【００４０】
一方、プリンター１００は、ネットワーク３００に代表される通信手段を通じて得たＰＤＬデータ１０００を使い、紙４００に代表される可視媒体上に可視像を形成する。紙４００上に可視像を形成する処理は、一般には印刷と呼ばれている（以下、この可視像の形成をまとめて「印刷」と称する）。
【００４１】
なお、本実施例では、ホストコンピュータ９００として、パーソナルコンピュータを利用した場合を例に挙げて説明している。しかしながら、パーソナルコンピュータ以外の、次に例示するようなＰＤＬデータ１０００やそれに相当する画像データを生成し、転送することができる装置を利用しても、本発明を実施できることは言うまでもない。即ち、ホストコンピュータ９００として、ワークステーション、メインフレームコンピュータ、サーバー、スマートフォン、ＰＤＡ、またはデジタルカメラ等を利用しても、本発明を実施できる。
【００４２】
また、本実施例では、画像形成装置として、プリンターを利用した場合を例に挙げて説明している。しかしながら、画像形成装置として、ＭＦＰ（マルチファンクションプリンター）、印刷機、電子ペーパー、またはその他のディスプレイ装置等と呼ばれる可視像を形成することができる装置を利用しても、本発明を実施できる。
【００４３】
［ＰＤＬデータの説明］
次に、本実施例におけるＰＤＬデータ１０００の構造を、図５(a)を参照しながら説明する。
【００４４】
ＰＤＬデータ１０００は、次に説明するＰＤＬコマンドを一つ以上持つことができる。即ち、ＰＤＬデータ１０００は、グラフィック描画命令１０００−１を持つことができる。また、ＰＤＬデータ１０００は、文字描画命令１０００−２を持つことができる。さらに、ＰＤＬデータ１０００は、ラスタービットマップ描画命令１０００−３を持つことができる。
【００４５】
グラフィック描画命令１０００−１とは、幾何学的な情報によって指定可能な図形の描画命令である。ＰＤＬデータ１０００が持つことができる幾何学的な情報は、二次元平面上の線分や、その集合によって表現可能な直線を含む。また、ＰＤＬデータ１０００が持つことができる幾何学的な情報は、二次元平面上のベジェ曲線に代表されるブレンディング関数で表現可能な曲線を含む。また、ＰＤＬデータ１０００が持つことができる幾何学的な情報は、上述した線分や曲線を含む集合による閉曲線を含む。また、ＰＤＬデータ１０００が持つことができる幾何学的な情報は、上述した閉曲線の内部の色情報を含む。また、ＰＤＬデータ１０００が持つことができる幾何学的な情報は、上述した閉曲線の内部のグラデーション情報を含む。
【００４６】
なお、ＰＤＬデータ１０００が持つことができる幾何学的な情報は、上で例に挙げたもの以外の情報であっても良い。例えば、二次元平面上のベジェ曲線の代わりにスプライン曲線等の他の曲線の表現方法を用いたとしても本発明を実施できることは言うまでもない。また、本実施例では、ＰＤＬデータ１０００が持つことができる幾何学的な情報として上述したものを例に挙げて説明してきたが、その一部を持っていないＰＤＬデータ１０００を用いたとしても本発明を実施できる。
【００４７】
文字描画命令１０００−２とは、指定された文字を描画するための命令である。
【００４８】
ラスタービットマップ描画命令１０００−３とは、離散的な色情報を持つ二次元配列を描画するための描画命令である。ラスタービットマップ描画命令１０００−３は、後述するＲＯＰ情報を持つことができる。
【００４９】
なお、ＰＤＬデータ１０００がグラフィック描画命令１０００−１、文字描画命令１０００−２、ラスタービットマップ描画命令１０００−３以外の命令を持つ場合でも、本発明を実施することができる。
【００５０】
図５(a)の拡縮命令１０００−４は、グラフィック描画命令１０００−１、文字描画命令１０００−２、ラスタービットマップ描画命令１０００−３のいずれかに対する、拡大乃至縮小を行う命令である。拡縮命令１０００−４は、拡大乃至縮小する割合を示す拡縮率を持つ。
【００５１】
拡縮命令１０００−４を用いる処理の例として、nUP処理が挙げられる。nUP処理は、図１６に示すように、一枚の紙５００の面上に複数のページ５００−１、５００−２を縮小して配置する処理である。nUP処理の一部である2UP処理においては、1/2倍に縮小処理を行い一枚の紙あたり２ページを配置する。ただし、この例以外に拡縮命令を用いる場合であっても、本発明を実施できることは言うまでもない。
【００５２】
ＰＤＬデータ１０００に含まれるデータは、後述する処理により中間データ２０００（図５（ｂ）を参照）に変換される。中間データ２０００の詳細に関しては、後述する。
【００５３】
[ホストコンピュータの説明]
次に、本実施例におけるホストコンピュータ９００の構造を、図６を参照しながら説明する。
【００５４】
図６に示すように、ホストコンピュータ９００は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３とから構成される。ＣＰＵ１１は、種々の演算、制御、判定等の処理動作を実行する。ＲＯＭ１２は、ＣＰＵ１１によって実行される処理の制御プログラム等を格納する。ＲＡＭ１３は、ＣＰＵ１１の処理動作中のデータや入力データ等を一時的に格納する。
【００５５】
ホストコンピュータ９００には、入力操作部１４と、表示部１５とが接続されている。入力操作部１４は、所定の指令もしくはデータ等を入力するキーボードまたは各種スイッチ等を含む。表示部１５は、ホストコンピュータ９００の入力・設定状態等に関する種々の情報を表示する。
【００５６】
また、ホストコンピュータ９００は、表示部１５において、前述したWYSIWYGを実現するためのＧＵＩを表示することができる。ユーザーは、入力操作部１４を介してＧＵＩにおける半透明の指定操作を行うことで、半透明指定を行う。また、ユーザーは、入力操作部１４を介してＧＵＩにおける色設定を行うことで、各種描画の色の設定を行う。さらに、ユーザーは、入力操作部１４を介してＧＵＩにおけるグラデーション設定を行うことで、各種グラデーションの設定を行う。
【００５７】
なお、本発明においてホストコンピュータ９００が画像データを取得する方法は、どのような方法であっても良い。例えば、ユーザーが入力操作部１４を操作して所定のアプリケーション上で画像データを作成しても良い。また、磁気ディスクや光ディスク等の着脱可能なメディアの読取装置をホストコンピュータ９００が備える場合は、メディアを使って画像データを入力するようにしても良い。さらに、スキャナ等の画像読取装置が内蔵されている場合または画像読取装置がネットワークを介して接続されている場合は、画像読取装置にて読み取られた画像データを入力することで、画像データを取得するようにしても良い。
【００５８】
本実施例では、ホストコンピュータ９００は、ＲＯＭ１２からプログラムを読み出し、ＰＤＬデータ１０００を作成する。そして、ホストコンピュータ９００は、作成されたＰＤＬデータ１０００をプリンター１００等の画像形成装置に送信する。画像形成装置は、送信されたＰＤＬデータ１０００に基づいて紙４００上に印刷する。画像形成装置は、画像処理装置と一体化されていても良いし、別個に設けられて画像処理装置とネットワーク等を介して接続されていても良い。
【００５９】
[半透明オブジェクトの生成処理]
次に、本実施例における半透明オブジェクトを含むＰＤＬデータ１０００の生成手順を、図７を参照しながら説明する。なお、本実施例では、説明を簡単にするためにモノクロ印刷の場合について説明する。
【００６０】
まず、ユーザーは、ホストコンピュータ９００が有する所定のアプリケーションにより表示部１５に表示されたファイルの中から印刷対象となるファイルを、入力操作部１４を介して指定する。該指定に基づいて、ＣＰＵ１１は、アプリケーションによる描画を開始する。
【００６１】
次いで、ＣＰＵ１１は、ＰＤＬデータ１０００の生成のために、ＰＤＬコマンド生成処理（ステップｓ２００）を行い、一つ以上のＰＤＬコマンドを生成する。ＰＤＬコマンド生成処理（ステップｓ２００）において、ＣＰＵ１１は、以下の一連の処理を行う。
【００６２】
まず、ステップｓ２０１において、ＣＰＵ１１は、アプリケーションからの描画に基づく描画命令があるか否かを判定する。アプリケーションからの描画に基づく描画命令があると判定された場合、処理はステップｓ２０２へ進み、アプリケーションからの描画に基づく描画命令がないと判定された場合、処理は終了する。
【００６３】
ステップｓ２０２において、ＣＰＵ１１は、描画命令に半透明オブジェクトがあるか否かを判定する。描画命令に半透明オブジェクトがあると判定された場合、処理はステップｓ２０３へ進み、描画命令に半透明オブジェクトがないと判定された場合、処理はステップｓ２０５へ進む。
【００６４】
ステップｓ２０３において、ＣＰＵ１１は、ＲＯＭ１２に予め格納された格子状（例えば、市松模様状）の半透明パターンオブジェクトを読み出す。本実施例では、この半透明パターンは、半透明オブジェクトの透過率に対して一意に決定可能なデータとしてＲＯＭ１２に格納されている。即ち、ＣＰＵ１１は、透過率に応じて一意に求まる市松模様等の周期性のある描画データを用いてＰＤＬデータ１０００を生成する。次いで、処理は、ステップｓ２０４へ進む。
【００６５】
ステップｓ２０４において、ＣＰＵ１１は、半透明指定されたオブジェクトに対し、半透明パターンオブジェクトと、ＲＯＰとを組み合わせることでＰＤＬコマンドを生成し、ＲＡＭ１３に格納する。具体的には、半透明指定されたオブジェクトに対するＲＯＰの“XOR”指定と、半透明パターンオブジェクトに対するＲＯＰの“AND”指定と、更に半透明指定されたオブジェクトに対するＲＯＰの“XOR”指定との組み合わせによるＰＤＬコマンドを生成する。次いで、処理は、ステップｓ２０１に戻る。
【００６６】
ステップｓ２０５において、ＣＰＵ１１は、アプリケーションからの描画命令に従って、ＰＤＬコマンドを生成する。次いで、処理は、ステップｓ２０１に戻る。
【００６７】
次に、半透明指定されたオブジェクトに対するＰＤＬコマンドについて、図８を参照しながら説明する。図８(a)には、アプリケーションからの描画命令に基づく半透明指定されたオブジェクトの一般的な描画方法が示されている。まず、背景１１０１に半透明指定されたオブジェクト１１０２をＲＯＰの“XOR”で合成し、その上に半透明パターンオブジェクト１１０３をＲＯＰの“AND”で合成し、更にその上に半透明指定されたオブジェクト１１０４をＲＯＰの“XOR”で合成する。
【００６８】
次に、半透明指定されたオブジェクトに対するＰＤＬコマンドについて、図９を参照しながらさらに詳しく説明する。
【００６９】
図９(a)は、図８(a)に示した、背景１１０１と、半透明指定されたオブジェクト１１０２とをＲＯＰの“XOR”で合成する処理の詳細を示す図である。Ｋ＝０（ビットパターンでは”00000000”）の背景１２０１と、Ｋ＝３２（ビットパターンでは”00100000”）である半透明指定されたオブジェクト１２０２とをＲＯＰの“XOR”で合成する。合成の結果、Ｋ＝３２（ビットパターンでは”00100000”）の領域を含む合成画像１２０５が得られる。ここで、本実施例において、Ｋは濃度値である。なお、Ｋは濃度値に限定されず、他の実施例においてＫは輝度値であっても良い。
【００７０】
図９(b)は、図８(a)で示した、半透明パターンオブジェクト１１０３をＲＯＰの“AND”で合成する処理の詳細を示す図である。合成画像１２０５の合成部分（Ｋ＝３２、ビットパターンでは”00100000”）と、半透明パターンオブジェクト１２０３とをＲＯＰの“AND”で合成する。半透明パターンオブジェクト１２０３は、白部分（Ｋ＝０、ビットパターンでは”00000000”）と、黒部分（Ｋ＝２５５、ビットパターンでは”11111111”）とから成る。合成の結果、半透明パターンオブジェクト１２０３の白部分がＫ＝０（ビットパターンでは”00000000”）となり、黒部分がＫ＝３２（ビットパターンでは”00100000”）となる合成画像１２０６が得られる。
【００７１】
図９(c)は、図８(a)で示した、半透明指定されたオブジェクト１１０４をＲＯＰの“XOR”で合成する処理の詳細を示す図である。合成画像１２０６の合成部分（Ｋ＝３２、ビットパターンでは”00100000”）と、半透明指定されたオブジェクト１２０４（Ｋ＝３２、ビットパターンでは”00100000”）とをＲＯＰの“XOR”で合成する。合成の結果、白部分（ビットパターンでは”00000000”）が得られる。また、合成画像１２０６の合成部分（Ｋ＝０、ビットパターンでは”00000000”）と、半透明指定されたオブジェクト１２０４（Ｋ＝３２、ビットパターンでは”00100000”）とをＲＯＰの“XOR”で合成する。合成の結果、Ｋ＝３２（ビットパターンでは”001000000”）の部分が得られる。これらの演算によって合成画像１２０７が得られ、半透明指定されたオブジェクト（Ｋ＝３２）の半透明表現が可能となる。
【００７２】
なお、上記の説明では、濃度が均一な塗りに対する半透明処理を説明している。濃度が均一ではないイメージ等のオブジェクトに対する半透明処理を行う場合は、Ｋ＝３２のオブジェクト１１０２の代わりに、濃度が均一ではないイメージ１１０２’に対して“AND”で合成する処理を行えばよい（図８(a)、(b)を参照）。
【００７３】
以下に、上述した処理をまとめる。ホストコンピュータ９００は、半透明描画をＰＤＬコマンドで表現するために、同一領域における、ＲＯＰの“XOR”指定、“AND”指定、および“XOR”指定ならびに白と、黒とが周期的に出てくる半透明パターンオブジェクトを生成する。この半透明パターンオブジェクトは、ホストコンピュータ内のＲＯＭ１２に保存されたデータを読み出すことで生成される。本実施例では、この半透明パターンは、半透明オブジェクトの透過率に対して一意に決定可能なデータとしてＲＯＭ１２に格納されている。
【００７４】
［プリンター内の装置の説明］
上述したように、本実施例においては、ホストコンピュータ９００が生成したＰＤＬデータ１０００をプリンター１００が取得して印刷処理を行う。以下では、プリンター１００内の諸装置について図１０を参照しながら説明する。
【００７５】
プリンター１００は、ＣＰＵ１００−０と、ＲＡＭ１００−１と、ＨＤＤ１００−２と、ＡＳＩＣ１００−３と、電子写真エンジン１００−４とを備える。また、プリンター１００は、ＵＳＢインターフェース装置１００−７と、ＩＥＥＥ  １２８４インターフェース装置１００−８と、ネットワーク装置１００−９とを備える。さらに、プリンター１００は、バス１００−６を備える。バス１００−６は、上述の諸装置を接続し、装置間でデータや命令を相互にやり取りすることを可能にする。
【００７６】
ＣＰＵ１００−０は、ＲＡＭ１００−１に保存された命令を実行することで、後述するＰＤＬ解釈処理を実現するソフトモジュール２００を実行する。
【００７７】
ＲＡＭ１００−１は、揮発性の記憶媒体である。ＲＡＭ１００−１は、ＰＤＬデータ１０００と、ＣＰＵ１００−０が実行すべき命令とを保存することができる。また、ＲＡＭ１００−１は、バス１００−６を通じてＰＤＬデータ１０００やＣＰＵ１００−０が実行すべき命令を、ＣＰＵ１００−０を含む諸装置に転送することができる。ＲＡＭ１００−１は、揮発性の記憶媒体であるから、プリンター１００の電源が落とされると、保存された命令やデータは消去される。
【００７８】
ＨＤＤ１００−２は、不揮発性の記憶媒体である。ＨＤＤ１００−２は、ＣＰＵ１００−０が処理すべき命令およびデータを保存することで、電源断によってＲＡＭ１００−１上から失われるＣＰＵ１００−０が処理すべき命令およびデータを保存することができる。また、本実施例においては、ＨＤＤ１００−２は、ＲＡＭ１００−１より記憶容量が大きい。よって、後述する画像形成用ビットマップデータ４０００に代表される容量の大きなデータを保存するのに好適である。本実施例では、不揮発性の記憶媒体としてＨＤＤを用いているが、ＨＤＤの代わりにフラッシュ型ＥＥＰＲＯＭ、強誘電体メモリー（ＦｅＲＡＭ）、磁気抵抗メモリー（ＭＲＡＭ）等を用いても本発明を実施できることは言うまでもない。
【００７９】
ＡＳＩＣ１００−３は、後で説明する画像処理を行うことができる。
【００８０】
電子写真エンジン１００−４は、ＡＳＩＣ１００−３が生成した画像形成用ビットマップデータ４０００を用いて、紙に代表される可視媒体上に可視像を形成する。なお、本実施例では、電子写真エンジンを用いて可視媒体上に可視像を得ているが、次に示す電子写真エンジン以外の機構を用いても本発明を実施できることは言うまでもない。即ち、電子写真エンジンの代わりに、液晶パネル、有機ＥＬパネル、凸版印刷エンジン、オフセット印刷電子写真エンジン、インクジェット印刷電子写真エンジン等を用いても本発明を実施できる。
【００８１】
ＵＳＢインターフェース装置１００−７は、ＵＳＢ規格の外部装置を通じて外部からＰＤＬデータ１０００をプリンター１００に入力することを可能にしている。
【００８２】
ＩＥＥＥ  １２８４インターフェース装置１００−８は、ＩＥＥＥ  １２８４規格のハードウェアを持つ外部装置を通じて外部からＰＤＬデータ１０００をプリンター１００に入力することを可能にしている。
【００８３】
ネットワーク装置１００−９は、ネットワーク規格のハードウェアを持つ外部装置を通じて外部からＰＤＬデータ１０００をプリンター１００に入力することを可能にしている。
【００８４】
後述する通信制御部２００−０の制御のもと、ＵＳＢインターフェース装置１００−７、ＩＥＥＥ  １２８４インターフェース装置１００−８、およびネットワーク装置１００−９により、ＰＤＬデータ１０００をプリンター１００内に受信することができる。
【００８５】
［ソフトモジュールの説明］
次に、ＣＰＵ１００−０上で動作するソフトモジュール２００を、図１１を参照しながら説明する。
【００８６】
ソフトモジュール２００は、通信制御部２００−０と、ＰＤＬデータ処理部２００−１と、画像処理部２００−２と、エンジン制御部２００−３と、ジョブコントローラ部２００−４とを含む。
【００８７】
通信制御部２００−０は、ＵＳＢインターフェース装置１００−７、ＩＥＥＥ  １２８４インターフェース装置１００−８、およびネットワーク装置１００−９を制御し、プリンター１００と、ホストコンピュータ９００との間の通信コネクションを確立する。また、通信制御部２００−０は、ＵＳＢインターフェース装置１００−７、ＩＥＥＥ  １２８４インターフェース装置１００−８、およびネットワーク装置１００−９を制御することで、ＰＤＬデータ１０００を受信することを可能にする。さらに、通信制御部２００−０は、受信したＰＤＬデータ１０００をＲＡＭ１００−１に記録させることができる。
【００８８】
ＰＤＬデータ処理部２００−１は、ＲＡＭ１００−１に記録されたＰＤＬデータ１０００に対する解釈処理をおこない、コントーンラスタービットマップデータ３０００を生成する。コントーンラスタービットマップデータ３０００の生成については、後述する。
【００８９】
画像処理部２００−２は、ＰＤＬデータ処理部２００−１が生成したコントーンラスタービットマップデータ３０００と、ＡＳＩＣ１００−３とを使うことで、画像形成用ビットマップデータ４０００を生成する。
【００９０】
エンジン制御部２００−３は、画像形成用ビットマップデータ４０００と、電子写真エンジン１００−４とを使うことで、画像形成処理を行う。
【００９１】
ジョブコントローラ部２００−４は、上述したソフトモジュール間の情報伝達および処理フローの伝達を行う。これによって、ジョブコントローラ部２００−４は、プリンター１００の印刷に代表される画像形成処理を実現する。
【００９２】
［ＰＤＬデータのデータフロー］
次に、図１０で説明したプリンター内の諸装置および図１１で説明したソフトウェアモジュール群がＰＤＬデータ１０００に対してどのような処理を行うかを、図１２を参照しながら説明する。
【００９３】
本実施例においては、プリンター１００は、入力データとしてＰＤＬデータ１０００をＵＳＢインターフェース装置１００−７、ＩＥＥＥ  １２８４インターフェース装置１００−８、またはネットワーク装置１００−９を経由して受信する。受信したＰＤＬデータ１０００は、ジョブコントローラ部２００−４によって、ＲＡＭ１００−１またはＨＤＤ１００−２に保存される。
【００９４】
次に、ＰＤＬデータ処理部２００−１は、ＣＰＵ１００−０上でジョブコントローラ部２００−４の制御のもとＰＤＬデータ１０００の解釈処理を行い、中間データ２０００を生成する（ステップｓ２０）。中間データ２０００は、図５(b)で示されるように、ラスタービットマップデータ２０００−１と、グラフィックデータ２０００−２とを持つことができる。これらのデータは、ＰＤＬデータ１０００中の描画命令１０００−１、１０００−２、１０００−３をＣＰＵ１００−０が変換することによって生成される。
【００９５】
次に、ＰＤＬデータ処理部２００−１は、ＡＳＩＣ１００−３上でジョブコントローラ部２００−４の制御のもと中間データ２０００の解釈処理を行い、コントーンラスタービットマップデータ３０００を生成する（ステップｓ３０）。コントーンラスタービットマップデータ３０００の生成処理をＲＩＰ処理という。ＲＩＰ処理（ステップｓ３０）では、ＰＤＬデータ処理部２００−１は、中間データ２０００に含まれるラスタービットマップデータ２０００−１やグラフィックデータ２０００−２を解釈し、コントーンラスタービットマップデータ３０００を生成する。さらに、ＰＤＬデータ処理部２００−１は、コントーンラスタービットマップデータ３０００をＲＡＭ１００−１に保存する。なお、本実施例では、ＲＩＰ処理（ステップｓ３０）は、ＡＳＩＣ１００−３上で実行されているが、ＣＰＵ１００−０上で実行されたとしても本発明を実施できることは言うまでもない。
【００９６】
次に、画像処理部２００−２は、ＡＳＩＣ１００−３上で入力されたコントーンラスタービットマップデータ３０００に対して画像処理を行い、画像形成用ビットマップデータ４０００を生成する（ステップｓ４０）。生成した画像形成用ビットマップデータ４０００は、ＡＳＩＣ１００−３によって、ＲＡＭ１００−１に保存される。この画像処理（ステップｓ４０）には、ディザ処理が含まれる。エンジン制御部２００−３は、ジョブコントローラ部２００−４の制御のもと、電子写真エンジン１００−４を使って画像形成用ビットマップデータ４０００をもとに印刷する。なお、本実施例では、画像処理（ステップｓ４０）はＡＳＩＣ１００−３上で実行されているが、ＣＰＵ１００−０上で実行されたとしても本発明を実施できることは言うまでもない。
【００９７】
[周期性のある描画のパターンに対するプリンター内の処理]
ここまで、プリンター１００内で行われる画像形成用ビットマップデータ４０００の生成処理の概要を説明してきた。
【００９８】
次に、上述したＰＤＬデータ解釈処理（ステップｓ２０）における、周期性のある描画のパターンに対するプリンター１００内の処理を、図１３を参照しながら詳細に説明する。
【００９９】
まず、ステップｓ２０−１において、ＰＤＬデータ処理部２００−１は、干渉比率テーブルをロードする。この処理は、ＨＤＤ１００−２に予め保存されたデータをＣＰＵ１００−０がＲＡＭ１００−１にコピーすることで実現する。この干渉比率テーブルは、後述する、周期性のある描画パターンの周期と、縮小率との比のうち、正しく描画されない可能性がある比率から成る集合データである。図１４は、その周期性のある描画パターンの周期と、縮小率との比のうち、正しく描画されない可能性がある比率を保存したデータを例示している。図１４が示すように、本実施例においては、予めＨＤＤ１００−２に干渉が起こり得る比率を保存しておくことで、後述する、干渉を回避する処理を行うか否かの判定処理を行う。
【０１００】
次に、ステップｓ２０−２において、ＰＤＬデータ処理部２００−１は、周期性判定マトリックスをロードする。この処理は、ＨＤＤ１００−２に予め保存されたデータをＣＰＵ１００−０がＲＡＭ１００−１にコピーすることで実現する。図１５は、その周期性判定マトリックスを例示する図である。図１５に示す例では、周期性判定マトリックスは、pattern部に３種類の塗りつぶしパターン情報を持つ。この情報を用いて、後述する、描画内容が周期性を有するか否かの判定処理が行われる。図１５のpattern部において、「1」は何らかの色での塗りつぶしを示し、「0」は白を示している。また、図１５において、「*」は、「0」または「1」のいずれでもよい、任意の描画を示している。ＰＤＬデータ処理部２００−１は、「0」、「1」、「*」で表現された情報を用いて、描画内容が周期性を有するか否かを判定する。また、図１５に示すように、周期性判定マトリックスは、pich部にそれぞれのパターンに対する周期を示す値を持つ。この値は、上記の「0」、「1」、「*」で示されるパターンに対する周期をピクセル数で表した値である。このピクセル数は、後述する、ＰＤＬデータ処理部２００−１によって行われるパターンの周期を求める処理に用いられる。なお、本実施例においては、周期性判定マトリックスは、１次元配列を用いた例を示しているが、２次元配列を用いた場合でも本発明を実施できることは言うまでもない。
【０１０１】
次に、ステップｓ２０−３において、ＰＤＬデータ処理部２００−１は、ＰＤＬデータ１０００を受信する。この処理は、ＣＰＵ１００−０がＰＤＬデータ１０００の一部をＲＡＭ１００−１上に生成されたバッファー領域に保存することによって実現される。
【０１０２】
次に、ステップｓ２０−４において、ＰＤＬデータ処理部２００−１は、ＰＤＬデータ受信処理（ステップｓ２０−３）で受信したデータの末端がＰＤＬデータ１０００のデータ末端であるか否かを判定する。ＰＤＬデータ１０００の受信が完了し、受信したデータの末端がＰＤＬデータ１０００のデータ末端であると判定された場合、ＰＤＬデータ解釈処理は終了する。ＰＤＬデータ１０００の受信が完了しておらず、受信したデータの末端がＰＤＬデータ１０００のデータ末端ではないと判定された場合、処理はステップｓ２０−５に進む。
【０１０３】
ステップｓ２０−５において、ＰＤＬデータ処理部２００−１は、受信したＰＤＬデータ中に周期性のある描画のパターンがあるか否かを判定する。この判定処理においては、まず、ＰＤＬデータ処理部２００−１は、ＰＤＬデータ１０００がラスタービットマップ描画命令１０００−３を含むか否かを判定する。そして、ＰＤＬデータ１０００がラスタービットマップ描画命令１０００−３を含むと判定された場合、ＰＤＬデータ処理部２００−１は、周期性判定マトリックスを使ったパターンの検知処理を実行することで、パターンがあるか否かを判定する。これら二つの判定結果がともに真である場合に、ＰＤＬデータ１０００中に周期性のある描画パターンがあると判定される。本実施例においては、パターンの検知処理は、周期性判定マトリックスと、ＰＤＬデータ１０００内の上述したパターンオブジェクト３０４とのパターンマッチングによって実現される。ステップｓ２０−５における判定で周期性のある描画パターンがないと判定された場合には、処理はステップｓ２０−１１に進む。ステップｓ２０−５における判定で周期性のある描画パターンがあると判定された場合、処理はステップｓ２０−６に進む。
【０１０４】
ステップｓ２０−６において、ＰＤＬデータ処理部２００−１は、周期性のある描画パターンに対して縮小処理が必要か否かを判定する。この判定処理では、ＰＤＬデータ１０００が拡縮命令１０００−４を持ち且つ拡縮命令１０００−４の拡縮率が１未満である場合に、縮小処理が必要であると、ＰＤＬデータ処理部２００−１は、判定する。ステップｓ２０−６における判定で縮小処理が必要と判定された場合、処理はステップ２０−７に進む。ステップｓ２０−６における判定で縮小処理が必要ではないと判定された場合、処理はステップｓ２０−１１に進む。
【０１０５】
ステップs２０−７において、ＰＤＬデータ処理部２００−１は、周期性のある描画パターンの周期を求める。この周期を求める処理は、ステップｓ２０−５における周期性判定マトリックスと一致するか比較する処理で用いたテーブルを用いて行われる。即ち、ＰＤＬデータ処理部２００−１は、ステップｓ２０−５で一致したパターンに対応するピッチ数をその描画パターンの周期としてＲＡＭ１００−１に保存する。パターンと、ピッチ数との対応関係は、図１５および上述したステップｓ２０−２の説明を参照されたい。
【０１０６】
ステップs２０−８において、ＰＤＬデータ処理部２００−１は、描画パターンの周期のピッチ数と、縮小率との比率を求める。この処理は、ＲＡＭ １００−１に保存された周期のピッチ数を拡縮命令１０００−４が持つ拡縮率で除算することにより実現される。描画パターンの周期のピッチ数と、縮小率との比率をXとすると、Xは次の（式１）により求めることができる。  
X = L / R      （式１）
ここで、Lは描画パターンの周期のピッチ数であり、Rは拡縮率である。
【０１０７】
ステップｓ２０−９において、ＰＤＬデータ処理部２００−１は、描画パターンの周期のピッチ数と、縮小率との比率Xが図１４で示したような干渉比率テーブル内の値と一致するか否かを判定する。この処理は、ＰＤＬデータ処理部２００−１が干渉比率テーブル内の値を逐次探索し、Xと一致する値があるか否かを判定することにより実現される。Xが干渉比率テーブル内の値と一致すると判定された場合、処理はステップＳ２０−１０へ進む。ステップＳ２０−１０における処理は、 [セル単位の縮小処理]の章で詳しく説明する。Xが干渉比率テーブル内の値と一致しないと判定された場合、処理はステップｓ２０−１１に進む。
【０１０８】
ステップｓ２０−１１において、ＰＤＬデータ処理部２００−１は、上記の「ＰＤＬデータのデータフロー」の章で説明した処理に基づき中間データ２０００を生成する。次いで、処理は、ステップｓ２０−３に戻る。
【０１０９】
ＰＤＬデータ処理部２００−１は、上述した一連の処理をＰＤＬデータ１０００の終端まで繰り返し行うことで、中間データ２０００を生成する。
【０１１０】
[セル単位の縮小処理]
次に、上記のステップＳ２０−１０で行う「セル単位の縮小処理」について、図１７および図１８(a)を参照しながら説明する。
【０１１１】
図１７では、周期のピッチ数が５であり且つ拡縮率が１／５である場合を例に挙げて、セル単位の縮小処理を示している。図１７(a)は、縮小前の画像を表しており、画像はピクセル６００から構成される。本明細書では、ピクセル６００を周期のピッチ数分だけまとめたものをセル６０１と呼ぶ。即ち、図１７(a)で示されているように、周期のピッチ数が５である場合には、ピクセルを５ピクセル毎にまとめたものをセルと呼ぶ。
【０１１２】
図１８(a)は、セル単位の縮小処理（ステップＳ２０−１０）で実行される詳細な動作のフロー図である。
【０１１３】
まず、ステップＳ２０−１０−１において、ＰＤＬデータ処理部２００−１は、縮小の対象となる画像を周期のピッチ数に応じてセルに分割する。例えば、周期のピッチ数が５であるとき、ＰＤＬデータ処理部２００−１は、縮小の対象となる画像を５ピクセル毎に「セル」という単位に分割する。
【０１１４】
次に、ステップＳ２０−１０−２において、ＰＤＬデータ処理部２００−１は、拡縮率に応じてセルを選択する。この処理は、拡縮率が１／４の場合は４セルあたり１セルを選択することで実現される。図１７(b)および図１７(c)に示す例では、セル６０１−１〜６０１−４の中からセル６０１−１が選択されている。このように、本実施例では、ピクセル単位ではなく、セル単位で拡縮率に応じた間引き処理を行う。
【０１１５】
次に、ステップＳ２０−１０−３において、ＰＤＬデータ処理部２００−１は、間引き処理で選択されたセルを縮小後の画像としてＲＡＭ１００−１に保存する。この処理の後、ＰＤＬデータ処理部２００−１は、セル単位の縮小処理（ステップＳ２０−１０）を終了する。
【０１１６】
[実施例１の効果]
本実施例により、空間周期性のある描画オブジェクトの描画処理と、拡縮処理とが干渉する場合に、描画品位が低下する問題を防止することができる。
【０１１７】
また、本実施例により、縮小処理において高速な間引き処理を行いながら、描画品位が低下する問題を防止することができる。
【０１１８】
以下に、具体的に説明する。画像の周期性の有無は、公知の技術であるフーリエ解析を用いることで判定することができる。本実施例では、フーリエ解析の代わりにパターンマッチングを行っており、フーリエ解析処理は行われない。パターンマッチングは、ＲＡＭ１００−１における比較・分岐処理であり、通常２サイクル程度の時間で実行可能である。これに対し、フーリエ解析処理は、ＦＦＴを用いてもＮ周期の場合、次の（式２）の回数分の乗算を必要とする。  
N・log2N /2      （式２）
【０１１９】
本実施例では、周期性を見つけるうえで、ホストコンピュータ９００から送られてくるＰＤＬデータ１０００に含まれ得るオブジェクトのパターンを利用している（ステップＳ２０−５）。これによって、多大な計算処理を省略し、高速化を実現している。
【実施例２】
【０１２０】
本発明の第２の実施例（実施例２）を実施例１との差異を中心に説明する。
【０１２１】
実施例１では、ＰＤＬデータ処理部２００−１は、プリンター１００に予め保存されたテーブルを用いてＰＤＬデータ１０００中に周期性のある描画パターンがあるか否かを判定している（ステップｓ２０−５）。加えて、ＰＤＬデータ処理部２００−１は、ＰＤＬデータ１０００中に拡縮命令１０００−４があるか否かを判定する（ステップｓ２０−６）。これらの処理の後、ＰＤＬデータ処理部２００−１は、セル単位の縮小処理を行う（ステップＳ２０−１０）。このセル単位の縮小処理は、ホストコンピュータ９００で実施されたとしても、本発明を実施できる。この場合、ホストコンピュータ９００は、ＰＤＬデータ１０００を解釈して、中間データ２０００を生成する画像形成装置として機能する。
【０１２２】
そこで、本実施例では、ホストコンピュータ９００でセル単位の縮小処理を行った場合について、実施例１との差異を中心に説明する。なお、本実施例においても実施例１と同様、説明を簡単にするためにモノクロ印刷の場合について説明する。
【０１２３】
[半透明オブジェクトの生成処理]
ホストコンピュータ９００におけるＰＤＬデータ１０００の作成手順（ステップｓ２００’）を、図６および図１９を参照しながら説明する。なお、本実施例においても実施例１と同様、説明を簡単にするためにモノクロ印刷の場合について説明する。
【０１２４】
まず、ユーザーは、ホストコンピュータ９００が有する所定のアプリケーションにより表示部１５に表示されたファイルの中から印刷対象となるファイルを、入力操作部１４を介して指定する。該指定に基づいて、ＣＰＵ１１は、アプリケーションによる描画を開始する。
【０１２５】
次いで、ＣＰＵ１１は、ＰＤＬデータ１０００の生成のために、ＰＤＬコマンド生成処理（ステップｓ２００’）を行い、一つ以上のＰＤＬコマンドを生成する。ＰＤＬコマンド生成処理（ステップｓ２００’）において、ＣＰＵ１１は、以下の一連の処理を行う。
【０１２６】
まず、ステップｓ２０１’において、ＣＰＵ１１は、アプリケーションからの描画に基づく描画命令があるか否かを判定する。アプリケーションからの描画に基づく描画命令があると判定された場合、処理はステップｓ２０２’へ進み、アプリケーションからの描画に基づく描画命令がないと判定された場合、処理は終了する。
【０１２７】
ステップｓ２０２’において、ＣＰＵ１１は、描画命令に半透明オブジェクトがあるか否かを判定する。描画命令に半透明オブジェクトがあると判定された場合、処理はステップｓ２０３’へ進み、描画命令に半透明オブジェクトがないと判定された場合、処理はステップｓ２０５’へ進む。
【０１２８】
ステップｓ２０３’において、ＣＰＵ１１は、ＲＯＭ１２に予め格納された格子状（例えば、市松模様状）の半透明パターンオブジェクトを読み出す。本実施例では、この半透明パターンは、半透明オブジェクトの透過率に対して一意に決定可能なデータとしてＲＯＭ１２に格納されている。次いで、処理は、ステップｓ２０４’へ進む。
【０１２９】
ステップｓ２０４’において、ＣＰＵ１１は、半透明指定されたオブジェクトに対し、半透明パターンオブジェクトと、ＲＯＰとを組み合わせることでＰＤＬコマンドを生成し、ＲＡＭ１３に格納する。具体的には、半透明指定されたオブジェクトに対するＲＯＰの“XOR”指定と、半透明パターンオブジェクトに対するＲＯＰの“AND”指定と、更に半透明指定されたオブジェクトに対するＲＯＰの“XOR”指定との組み合わせによるＰＤＬコマンドを生成する。次いで、処理は、ステップｓ２０６’へ進む。
【０１３０】
ステップｓ２０５’において、ＣＰＵ１１は、アプリケーションからの描画命令に従って、ＰＤＬコマンドを生成する。次いで、処理は、ステップｓ２０１’に戻る。
【０１３１】
ステップｓ２０６’において、ＣＰＵ１１は、アプリケーションからの描画命令に縮小命令が含まれるか否かを判定する。アプリケーションからの描画命令に縮小命令が含まれると判定された場合、処理はステップｓ２０７’へ進み、アプリケーションからの描画命令に縮小命令が含まれないと判定された場合、処理はステップｓ２０１’へ戻る。
【０１３２】
ステップｓ２０７’において、ＣＰＵ１１は、半透明パターンオブジェクトのピッチ幅を調べる。この処理は、ＲＯＭ１２に予め格納された格子状の半透明パターンオブジェクトのパターンのピクセル幅を読み込むことで実現される。ＣＰＵ１１は、読み込んだピクセル幅を半透明パターンオブジェクトのピッチ幅としてＲＡＭ１３に保存する。次いで、処理は、ステップｓ２０８’へ進む。
【０１３３】
ステップｓ２０８’において、ＣＰＵ１１は、半透明オブジェクトに対してセル単位の縮小処理を行う。このセル単位の縮小処理は、実施例１の「セル単位の縮小処理」と同等の処理であるが、後に簡単に説明する。次いで、処理は、ステップｓ２０１’へ戻る。
【０１３４】
[セル単位の縮小処理]
次に、上記のステップｓ２０８’で行う「セル単位の縮小処理」について、図１８(b)を参照しながら説明する。
【０１３５】
図１８(b)は、セル単位の縮小処理（ステップｓ２０８’）で実行される詳細な動作のフロー図である。
【０１３６】
まず、ステップＳ２０８’−１において、ＣＰＵ１１は、縮小の対象となる画像を周期のピッチ数に応じてセルに分割する。例えば、周期のピッチ数が５であるとき、ＣＰＵ１１は、縮小の対象となる画像を５ピクセル毎に「セル」という単位に分割する。
【０１３７】
次に、ステップＳ２０８’−２において、ＣＰＵ１１は、拡縮率に応じてセルを選択する。この処理は、拡縮率が１／４の場合は４セルあたり１セルを選択することで実現される。本実施例では、ピクセル単位ではなく、セル単位で拡縮率に応じた公知の間引き処理を行う。
【０１３８】
次に、ステップＳ２０８’−３において、ＣＰＵ１１は、間引き処理で選択されたセルを縮小後の画像としてＲＡＭ１３に保存する。この処理の後、ＣＰＵ１１は、セル単位の縮小処理（ステップＳ２０８’）を終了する。
【０１３９】
本実施例により、ＰＤＬデータ処理部２００−１がセル単位の縮小処理（ステップＳ２０−１０）を行わなくても、本発明の効果を実現することができる。
【０１４０】
即ち、本実施例では、プリンター１００内のＣＰＵ１００−０上で実行されるＰＤＬデータ処理部２００−１が受け取るＰＤＬデータ１０００は、縮小処理が必要な拡縮命令（１０００−４）を含まない。このため、プリンター１００側でのセル単位の縮小処理（ステップＳ２０−１０）が不要となる。
【０１４１】
[実施例２の効果]
本実施例により、実施例１の効果に加えて、ホストコンピュータ９００のＣＰＵ１１がプリンター１００のＣＰＵ１００−０より高速である場合に、セル単位の縮小処理をより高速に実行することができる。
【０１４２】
[その他の実施例］
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図４】
2015002530.tif 000003
【図６】
2015002530.tif 000004
【図７】
2015002530.tif 000005
【図１０】
2015002530.tif 000006
【図１１】
2015002530.tif 000007
【図１２】
2015002530.tif 000008
【図１３】
2015002530.tif 000009
【図１４】
2015002530.tif 000010
【図１５】
2015002530.tif 000011
【図１６】
2015002530.tif 000012
【図１７】
2015002530.tif 000013
【図１８】
2015002530.tif 000014
【図１９】
2015002530.tif 000015
【図１】
2015002530.tif 000016
【図２】
2015002530.tif 000017
【図３】
2015002530.tif 000018
【図５】
2015002530.tif 000019
【図８】
2015002530.tif 000020
【図９】
2015002530.tif 000021