以下、図面を参照して本発明の実施形態について詳細に説明する。
<第1実施形態;プリンタ側での処理の基本>
図1は、本発明に係る描画命令出力装置および画像形成装置を適用した第1実施形態の印刷システムの構成例を示すブロック図である。第1実施形態の印刷システム1は、プリンタ側において、ホスト側装置から受け取ったTransparencyコマンドを含むPDLデータを解釈する際に、Transparency演算を行なう描画処理をTransparency演算を含まない描画処理に変換するかどうかを判定し、より処理速度の向上が見込まれる選択をするようにした形態のものである。
図示するように、第1実施形態の印刷システム1は、図形を含む文書データを作成して出力するパソコンなどのホスト側装置100と、ホスト側装置100から出力されたデータに基づいて印刷処理をするプリンタ装置200とを備えている。
プリンタ装置200は、本発明に係る描画命令出力装置を備え、本発明に係る画像形成装置として機能する。なお、描画処理のためのメモリ容量を低減するため、プリンタ装置200においては、後述する各部における処理の過程で、たとえば、1ページ分の画像を所定数のバンドに分割して取り扱い、かつ描画展開処理や圧縮符号化処理などのために、分割したバンド数よりも少ない所定バンド数分のバンドバッファをワークメモリ領域として使用するバンドバッファ技術を用いる。
第1実施形態において、ホスト側装置100によって作成される図形を含む文書データは、PDLで記述された印刷データ(PDLデータ)であって、具体的にはPCL言語で記述されているものであり、その描画命令の中には、Transparency演算を必要とするものが含まれている。
ホスト側装置100は、文書や図形などの画像データを生成するデータ生成部110と、ホスト側装置100の各部の動作を制御する中央制御部120と、プリンタ装置200との間のインタフェース機能をなすインタフェース部130とを有する。
データ生成部110には、たとえば、文書や図形などのデータを生成するためのアプリケーションプログラムが組み込まれる。また中央制御部120には、ホスト側装置100の全体を制御するソフトウェアであるOS(オペレーティングシステム)やプリンタ装置200を制御するためのソフトウェアであるプリンタドライバPDが組み込まれる。
これにより、ホスト側装置100は、プリンタ装置200に対して印刷指示を発する装置を、プログラムに基づいてソフトウェア的に実現するようになる。すなわち、各機能部を構成するためのプログラムを格納したCD−ROMなどからプログラムを読み出して図示しないハードディスク装置などにインストールさせておき、ハードディスク装置からプログラムを読み出して中央制御部120を構成する図示しないCPU(Central Processing Unit )やMPU(Micro Processing Unit )が所定の処理手順を実行することにより、各機能をソフトウェア的に実現することができる。
なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。また、これらのプログラムや当該プログラムを格納した記憶媒体は、既存のシステムやアプリケーションプログラムあるいはプリンタドライバPDをバージョンアップするものとして提供されてもよい。あるいは、各機能部分をソフトウェア的に実現するパッチファイルなど、一部の機能に対応したオプションプログラムとして提供されてもよい。
ホスト側装置100内のハードウェアや各種の装置、および、各種のソフトウェアは、オペレーティングシステムOSによって制御、管理されている。このオペレーティングシステムOSによる制御および管理の元で、アプリケーションプログラムが動作する。アプリケーションプログラムは、文字や画像などを印刷する指示を行なうことができる。ここでは、印刷する内容はページ記述言語などによって記述された描画情報として出力されるものとする。ページ記述言語としては、たとえばPCL言語を用いる。
たとえば、ホスト側装置100に組み込まれているアプリケーションプログラムから、イメージ描画命令、グラフィック描画命令、フォント描画命令などの命令種別を持った描画命令が順次プリンタドライバPDに入力される。
プリンタドライバPDは、通常、プリンタ装置200に付属して提供されるものであり、ホスト側装置100にロードされて機能するプログラムである。またプリンタドライバPDは、通常、特定のプリンタ装置200での使用が予想される様々なデータ形式にホスト側装置100を対応させるために使用される。プリンタドライバPDは、アプリケーションプログラムから描画情報を受け取ると、プリンタ装置200に送信する前に、様々な処理ステップを実行する。たとえば、アプリケーションプログラムから受け取った描画情報をプリンタ装置200で解釈可能なコマンドおよび描画オブジェクトの列に変換して送信することができる。あるいは、描画情報のデータ形式のままプリンタ装置200へ送信してもよい。
この第1実施形態では、プリンタドライバPDは描画命令をプリンタ装置200が理解可能なプリント命令としてPCL言語データに変換してインタフェース部130に出力する。インタフェース部130に入力されたPCL言語データ(プリント命令)は、伝送路(接続ケーブルやネットワーク)9を通りプリンタ装置200に伝送される。プリンタ装置200は、受け取ったPCL言語データに従って、用紙に画像を印刷(画像出力)する。
プリンタ装置200は、後述する各処理機能部分を、ソフトウェアで組み込む構成としている。この場合、その機能を実現するプログラムコードに基づいて電子計算機(コンピュータ)を用いてソフトウェア的に実現するようになる。よって、本発明に係る描画命令出力装置や画像形成装置を、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。ソフトウェアにより実行させる仕組みとすることで、ハードウェアの変更を伴うことなく、処理手順などを容易に変更できる利点を享受できるようになる。
後述する各処理機能をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ(組込マイコンなど)、あるいは、CPU(Central Processing Unit ;中央処理部)、論理回路、記憶装置などの機能を1つのチップ上に搭載して所望のシステムを実現するSOC(System On a Chip:システムオンチップ)、または、各種のプログラムをインストールすることで各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、記録媒体やネットワークを介してインストールされる。
記録媒体は、コンピュータのハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの変化状態を引き起こして、それに対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。たとえば、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、または半導体メモリなどよりなるパッケージメディア(可搬型の記憶媒体)により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM(Read Only Memory)やRAM(Random Access Memory)あるいはハードディスクなどで構成されてもよい。または、ソフトウェアを構成するプログラムが、有線あるいは無線などの通信網を介して提供されてもよい。
たとえば、プリンタ装置200は、不揮発性の記憶部の一例であるROM(Read Only Memory)201と、書換可能な記憶部の一例でありメインメモリとして機能するRAM(Random Access Memory)202と、プリンタ装置200全体の動作制御やそのほかの演算や制御の各処理機能をなすCPUやMPUなどの中央演算制御処理部210とを備える。
またプリンタ装置200は、ホストコンピュータなどのホスト側装置100との間のインタフェース機能をなすインタフェース部230と、PDLデータを解釈して得た描画命令を後段の処理機能部に渡す描画命令出力装置の一例であるインタプリタ部240とを備える。またプリンタ装置200は、インタプリタ部240から受けとった解釈命令に基づいて中間データを生成する中間データ生成部260と、中間データに基づいてバンドごとのビットマップデータを生成するレンダリング部270とを備える。
インタプリタ部240は、インタフェース部230を介して入力されたPDLデータを解釈するPDLデータ解釈部242と、Transparency演算処理を含む描画命令を、Transparency演算を必要としない描画命令に変換するか否かを判定する透過命令判定部340と、透過命令判定部340が描画命令に変換すると判定したときにはPDLデータ解釈部242が解釈した描画命令を変換する透過命令変換部344とを有する。
インタプリタ部240は、PCL言語で記述されたPDLデータ内に含まれるTransparency演算処理を置き換える(つまりTransparency演算を使わない)べきかどうかを透過命令判定部340にて判定し、置き換えるべき場合には透過命令変換部344は、“Transparent ”の指定をキャンセルし、論理演算(ここではROP2の仕様を使う)のみで描画するか、もしくは、関係する描画コマンドを無視して、中間データ生成部250に渡す。
インタプリタ部240は、取り込んだ描画情報やコマンドと描画データの列などを認識し、コマンドと引数に組み立ててコマンドを解釈する。そして、解釈したコマンドの内容に従って、中間データ生成部260を呼び出して、グラフィックス描画、文字描画、イメージ処理を行なう。中間データ生成部260は、インタプリタ部240の指示に従って画像を描画する。
レンダリング部270は、中間データ生成部260で描画された画像をラスタ化し、一旦、ハードディスク装置350のページメモリ領域に記憶させる。このとき、たとえばカラー印刷を行なうのであれば、それぞれの色ごとに、たとえばC(シアン),M(マゼンタ),Y(イエロ),K(ブラック)の4プレーンにラスタ化し、ハードディスク装置350のページメモリ領域に個別に記憶させる。
またプリンタ装置200は、レンダリング部270により描画展開されたビットマップデータに基づいて印刷処理を制御する印刷制御部(出力処理部)290と、印刷制御部290の指令に従って印刷処理を実行するプリンタエンジン部300とを備える。プリンタエンジン部300とシステムバスとの間にはプリンタIF(インタフェース)部308が設けられる。プリンタエンジン部300は、描画命令出力装置の一例であるインタプリタ部240から出力された描画命令、具体的には、インタプリタ部240から出力されさらに中間データ生成部260やレンダリング部270にて処理されたデータに基づいて、画像を所定の記憶媒体に形成する画像形成部の一例である。
印刷制御部290は、印刷を行なう際に、プリンタエンジン部300を起動し、出力単位分のビットマップデータを、プリンタエンジン部300に供給する。プリンタエンジン部300は、プリンタIF部308を介して供給されるビットマップデータに従って、用紙に画像を形成して出力する。すなわち、プリンタエンジン部300は、ページメモリ領域に格納された画像データに従って実際に被記録媒体上に画像を形成する。プリンタエンジン部300としては、たとえばレーザ方式を始め、種々の方式の記録方法を採用することができる。このとき、画像処理部302にて、必要に応じて2値化処理やスクリーン処理を行なう。
RAM202には、中間データ領域202a、バンド展開領域202b、ワーク領域202cなどが割り当てられる。プリンタ装置200は、RAM202における中間データ領域(中間データ用保持領域)、バンド展開領域などに関する情報を設定・管理するメモリ管理部(保持領域管理部)310をROM201のプログラム領域に備える。中間データ生成部260やレンダリング部270などが利用するRAM202は、プリンタ装置200の全体を制御する中央演算制御処理部210が使用するメインメモリとしても利用される。この場合、RAM202には、メインメモリ用のワーク領域が割り当てられる。
なお、中間データ領域は、中間データを保存するための領域である。バンド展開領域は、バンドごとに中間データを画像データに展開するための領域である。ワーク領域は、プログラムが動作するために一時的に使われる領域である。
さらにプリンタ装置200は、描画処理時に描画命令を一時的に格納しておくため不揮発性の記憶媒体の一例であるハードディスク装置350を備える。ハードディスク装置350は、たとえば、PDLデータ解釈部242で解釈・変換した描画オブジェクトおよび描画演算指示を記憶する描画オブジェクト格納(記憶)部350aや、描画演算部として機能する中間データ生成部260や、描画演算部(中間データ生成部260やレンダリング部270)で演算された結果の画像データを格納する処理結果格納部350bなどを含む、データ格納部の一例である。
なお、ハードディスク装置350に描画オブジェクト格納部350aの機能を持たせない構成も可能であるが、透過命令判定部340で連続する複数の描画演算指示について判定を行なう際は、この描画オブジェクト格納部として機能するハードディスク装置350に複数の描画演算指示および対応する描画オブジェクトを記憶させておくと便利である。
前述のように、インタプリタ部240は、PDLデータ解釈部242にてTransparency演算を含むPDLデータを解釈した際、透過命令判定部340にてTransparency演算に対して置換処理を行なうか否かを判定し、置換処理を行なう場合には、透過命令変換部344にて、“Transparent ”の指定をキャンセルし、論理演算(ROP2)のみで描画するか、もしくは、関係する描画コマンドを無視する。
ここで、Transparency演算処理を置き換えるべきかどうかは、Transparency演算処理が、特定の条件にマッチするか否かを判断条件とする。特定の条件は、描画オブジェクトが単純なものであるものとする。具体的には、
(1) Patternイメージ(パターン画像),Sourceイメージ(ソース画像)ともに“Transparent ”が指定されている、
(2)ROPコマンドは上書き(ROP3:TSo=252)、
(3) Patternイメージは全画素均一で色は白か黒、
(4)Sourceイメージは色が白か黒で構成されている、
と言った、4つの条件が揃った場合とする。
上記(3)に似通った条件ではあるが、 Patternイメージが全画素均一でない場合や、全画素均一であっても色が白か黒でない場合や、上記(4)に似通った条件ではあるが、Sourceイメージの色が白および黒の何れでもない場合には、Transparency演算に対する置換処理を行なわない。
なお、Sourceイメージとは、任意のカラー画像(以下Destination ;ディスティネーション画像という)に描画する描画オブジェクトであるビットマップ画像(描画オブジェクトがイメージの場合のみ)を意味する。 Patternイメージは、描画オブジェクトの塗潰しパターンを定義するものである。なお、Sourceイメージはマスクパターン、 Patternイメージは背景パターンとも呼ぶことがある。
上記(1)〜(4)のような条件としたのは一例であり、比較的に負荷の少ない描画コマンドに置き換え可能であるか否かと、変換に伴う画像品質変化や描画属性の等価性の維持度合いを考慮して、他の条件を設定することもできる。
何れにしても、Transparency処理を省略できるもののうち、変換処理によって描画の高速化を図ることができるものは、変換対象となり得る。ドライバから出力される描画コマンドのうち、上記(1)〜(4)の条件に合致するもの以外に、Transparency処理処理を省略可能な描画コマンドが何れであるのかを探すのは必ずしも容易ではないが、他の組合せでも置換可能なものは存在し得る。たとえば、Sourceイメージの色が赤や青などの単色である場合のようにイメージ色が複雑でない場合は、他の条件との兼ね合いもあるが、描画命令を変換できる可能性がある。
また、たとえば、透過命令判定部340に対して判定条件を設定する条件設定部を設け、条件設定部がユーザ指示を受けて条件設定するように構成してもよい。こうすることで、より柔軟な運用ができるようになる。
インタプリタ部240は、Transparency演算処理に対しての置換処理やそのための判定処理を行なった後に、処理済みのPDLデータを中間データ生成部260に渡す。中間データ生成部260は、入力された、インタプリタ部240での処理済みのPDL形式の印字データを解釈して、バンドごとに分割された中間データを生成する。生成された中間データは、メモリ管理部310で管理されたRAM202により記憶・保持される。レンダリング部270は、中間データ生成部260により生成された中間データを描画展開することでバンドラスタデータを生成し、このバンドラスタデータをバンドバッファとして機能するRAM202に記憶する。
第1実施形態の構成では、プリンタ装置200における機能部分を、プログラムに基づいてソフトウェア的に実現するようにしているが、インタプリタ部240(PDLデータ解釈部242や透過命令判定部340)、中間データ生成部260、レンダリング部270、印刷制御部290、あるいはメモリ管理部310などを、ハードウェア処理回路で構成してもよい。こうすることで、ソフトウェア処理よりもさらに高速に処理可能となる。
図2は、プリンタ装置200におけるプリント動作、特にインタプリタ部240の動作を示すフローチャートである。インタプリタ部240は、PCL言語で記述されたPDLデータをインタフェース部230を介して受信すると、PDLデータ解釈処理を開始し、先ず未処理のPDL命令が存在するかどうかを調べ(S102)、未処理のPDL命令がない場合には処理を終了する(S102−NO,S103)。一方、未処理のPDL命令が残っている場合には、インタプリタ部240は、PDL命令を解析し(S102−YES,S104)、この後PDL命令を判定する。
たとえば、PDL命令が“StartPage”であるかどうかを判定し(S105)、“StartPage”である場合はページ開始処理を行ない、処理完了後ステップS102に戻る(S105−YES,S108)。ページ開始処理の際には、インタプリタ部240の状態を示す変数である“state ”を“描画中”に初期化する。一方、“StartPage” でない場合には(S105−NO)、インタプリタ部240は、PDL命令が“EndPage” であるかどうかを判定する(S106)。
そして“EndPage” である場合にはページ排出処理を行ない、処理完了後ステップS102に戻る(S106−YES,S109)。一方、“EndPage” でない場合には(S106−NO)、インタプリタ部240は、PDL命令が“SetRopMode”であるかどうかを判定する(S107)。そして、“SetRopMode”である場合にはROP設定命令処理を行ない、処理完了後ステップS102に戻る(S107−YES,S110)。一方、“SetRopMode”でない場合には、インタプリタ部240は、描画命令処理を行ない、処理完了後ステップS102に戻る(S107−NO,S111)。詳しくは後述するが、この描画命令処理においては、描画命令が通常のROP処理演算命令であるのか、Transparency演算処理を含む演算命令であるのかに応じて処理を切り替える。
なおPDL命令を判定する処理は、上記例の手順に限らず、PDL命令が“StartPage” 、“EndPage” 、“SetRopMode”、およびそれ以外のうちの何れであるのかを判断し、その判断結果に応じた処理をするようにするものである限り、その手順(すなわち前記判断の優先順位)を入れ替えてもよい。
図3は、図2のステップS111における描画命令処理の詳細を示すフローチャートである。インタプリタ部240のPDLデータ解釈部242は、本処理を開始すると先ず、“state ”が“描画中”であるかを判定する(S202)。そして“描画中”である場合には(S202−YES)、インタプリタ部240は、命令の種別が“通常のROP処理”および“Transparency演算を含む処理”の何れであるのかを判定する(S203)。
インタプリタ部240は、PDLデータ解釈部242の解釈結果が“通常のROP処理”である場合は、通常のROP処理を行なって本処理を完了させる一方(S204)、Transparency演算に関わる“Opaque”指定もしくは“Transparent ”指定がある描画命令である場合は、透過命令判定部340にて、以下の判定基準に従って、Transparency演算処理に対して置換処理を行なうか否かを判定する(S206)。
すなわち先ず、 Patternイメージ,Sourceイメージともに“Transparent ”が指定されているか否かを判定する(S206−YES,S208)。ともに“Transparent ”が指定されている場合には、ROPコマンドは上書き(ROP3:TSo=252)であるか否かを判定する(S208−YES,S210)。ROPコマンドが上書きである場合は、さらに Patternイメージが全画素均一でかつ色が白か黒であるかを判定する(S210−YES,S212)。全画素均一でかつ色が白か黒である場合には、さらにSourceイメージの色が白か黒で構成されているか否かを判定する(S212−YES,S214)。
このようにして、上述した全ての条件を充足する場合には、透過命令判定部340は、Transparency演算に対しての置換処理を行なうべきと判断し、その判断結果をPDLデータ解釈部242に通知する(S214−YES,S216)。これを受けて、PDLデータ解釈部242は、“Transparent ”の指定をキャンセルし、論理演算(ROP2)のみで描画するか、もしくは、関係する描画コマンドを無視し、これら処理済みのPDLデータを使用して実行するように中間データ生成部260やレンダリング部270に指示する(S218)。
一方、上述した何れかの条件を充足しない場合には、透過命令判定部340は、Transparency演算に対しての置換処理を行なうべきでないと判断し、その判断結果をPDLデータ解釈部242に通知する(S208,S210,S212,S214の各NO,S220)。これを受けて、PDLデータ解釈部242は、“Transparent ”の指定をそのまま受け付けて、Transparency演算に対しての置換処理を行なうことなく、既に蓄積してあるTransparency演算命令を使用して実行するように中間データ生成部260やレンダリング部270に指示する(1022)。
そして、インタプリタ部240は、上記ステップS218あるいはステップS222の後、“state ”を“描画中”に変更してから本処理を完了させる(S224)。
図4は、上記図2のステップS109におけるページ排出処理の詳細を示すフローチャートである。インタプリタ部240は、ページ排出処理を開始すると先ず、“state ”が“命令を蓄積中”(命令の種類は不問)であるかどうかを判定する(S302)。
そして、“命令を蓄積中”の場合には(S302−YES)、中間データ生成部260やレンダリング部270に対して蓄積された命令を実行するように指示し(S304)、インタプリタ部240の状態を示す変数である“state ”をデフォルトの“描画中”に変更する(S305)。一方、“命令を蓄積中”でない場合(S302−NO)はPDL命令を解釈する(S303)。この後、あるいは前記ステップS305にて“state ”を“描画中”に変更した後には、インタプリタ部240は、印刷制御部290に対して印刷処理を開始するように指示する(S306)。
これを受けて印刷制御部290は、レンダリング部270により生成されたページイメージを、プリンタIF部308を介してプリンタエンジン部300に送信する。プリンタエンジン部300は、このページイメージに基づいて、用紙に印刷する。
図5は、第1実施形態の印刷システム1において処理対象とするPCL言語で記述されたPDLデータの一例を示す図である。この例では、ソースイメージとして、イメージを描画する場合と楕円を描画する場合と例示している。ソースイメージの部分が、線や矩形などのグラフィックス、あるいはフォント(文字)となる場合もある(後述する図12を参照)。これらの描画命令の中には、図中Tr10およびTr12に示すように、Transparency演算に関わる“Opaque”指定もしくは“Transparent ”指定がある描画命令が含まれている。
ここで、Tr10の“Transparent ”指定部分は、上述したステップS208,S210,S212の各条件を満たすものであり、その後に継続するSourceイメージについての描画命令に際して、指定色が白か黒で構成されている場合には最後の条件S214も充足するので、これらの描画コマンドが置換の対象となる。Sourceイメージについての描画命令の指定色が白か黒で構成されていない場合には、置換の対象とならない。
また、Tr12の“Opaque”指定部分は、ステップS208の条件を充足しないので、その後に継続するSourceイメージについての指定色に拘らず、置換の対象とならない。
図6は、図5に示されるPCL言語記述のPDLデータに対応する、Transparency演算の置換処理の一例を説明する図である。ここで、図6(A)は、 Patternイメージが全画素(全面)黒の場合を示し、図6(B)は、 Patternイメージが全画素(全面)白の場合を示している。
Patternイメージ,Sourceイメージともに“Transparent ”が指定されている(S208−YES)、ROPコマンドは上書き(ROP3:TSo=252)である(S210−YES)、 Patternイメージは全画素均一でかつ色は白か黒である(S212−YES)、Sourceイメージは色が白か黒(図の例では黒)で構成されている(S214−YES)ので、図6(A)および図6(B)の何れにおいても、透過命令判定部340は、置換処理の対象となると判断し、その判断結果をPDLデータ解釈部242に通知する。
これを受けて、PDLデータ解釈部242は、変更前の描画属性を、以下のようにして変更する。たとえば、図6(A)に示す、 Patternイメージが全画素(全面)黒の場合には、変換後の描画属性としては、Source Transparency Modeと PatternTransparency Mode の何れをも“Opaque”に設定するとともに、ROP2:8とし、 Patternイメージは定義しない。
ここで、ROP2:8の意味は、“Destination にSourceイメージを上書き”である。ROPは色空間がBGRで定義されたものであり、処理としては、黒が“0”、白が“1”であり、“AND”演算する。したがって、このように描画命令を変換することで、中間データ生成部260やレンダリング部270において、SourceイメージとDestination をROP2:8(BGR空間)で描画すると、描画処理結果(Result)としては、Destination イメージ上にSourceイメージの黒丸画像が上書きされた状態となる。変換されたROP2:8を含む描画命令は、変換前のTransparency演算を伴う描画命令に比べると、負荷の少ない描画命令である。
また、図6(B)に示す、 Patternイメージが全画素(全面)白の場合には、変換後の描画属性としては、全画素(全面)黒の場合と同様にSource Transparency Modeと PatternTransparency Mode の何れをも“Opaque”に設定するとともに、ROP2:14とし、 Patternイメージは定義しない。ROPは色空間がBGRで定義されたものであり、処理としては、黒が“0”、白が“1”であり、“OR”演算する。
したがって、このように描画命令を変換することで、中間データ生成部260やレンダリング部270において、SourceイメージとDestination をROP2:14(BGR空間)で描画すると、描画処理結果(Result)としては、Sourceイメージの黒丸画像におけるDestination のアクティブ部分(図中の白)が無効化された状態となる。ROP2:14を含む描画命令は、変換前のTransparency演算を伴う描画命令に比べると、負荷の少ない描画命令である。
以上説明したことから分かるように、第1実施形態の印刷システム1に依れば、Transparency演算を伴う描画命令をTransparency演算を含まない描画処理に変換できる場合に、Transparency演算を伴う描画命令をTransparency演算を含まない描画命令に変換するべきかどうかを所定の条件(本例では前述した(1)〜(4)の4つの条件)と突き合わせて判定し、より処理速度の向上が見込まれかつ画質も損なわない描画命令に変換して後段の処理機能部に渡すようにした。このため、所定の条件を満たす場合には、Transparency演算処理に掛る時間を省いた高速な画像処理が可能となる。
チャート(特定の原稿+特定のプリンタドライバを使用)によっては重い処理であるTransparency演算を行なう必要がなくなるため、プリンタ装置200における出力処理時間が大幅に短縮される。ここではチャートの具体的事例については図示を割愛するが、たとえば、あるPCL5パフォーマンスチャートの場合に、従来では7PPM(Page Per Minute )程度であったものが、上記実施形態を適用することで、31PPMを達成することができ、大幅にパフォーマンスを改善することができた。
<第2実施形態;プリンタ装置での処理の変形>
図7は、本発明に係る描画命令出力装置および画像形成装置を適用した第2実施形態の印刷システムの構成例を示すブロック図である。第2実施形態の印刷システム1は、第1実施形態と同様に、プリンタ側において、Transparency演算に関わる描画命令の判定処理および変換処理を行なうとともに、ハードウェア処理回路を利用することでさらなる処理速度の向上を図るようにしたものである。
具体的には、中間データを直接ラスタデータに変換し、プリンタエンジン部300にラスタデータを転送するH/W(Hard Wear) アクセラレータスロット360をシステムバス上に備えた点が図1に示した構成と異なる。
またインタプリタ部240は、描画処理を高速に処理する高速化処理部の一例であるH/Wレンダラが存在するかどうかを判定するH/Wレンダラ判定部370と、H/Wレンダラ(高速化処理部)が存在するとH/Wレンダラ判定部370が判定したことを条件として、Transparency演算を含まない描画命令に変換せずに処理する第1の処理方法を選択する一方、H/Wレンダラ(高速化処理部)が存在しないとH/Wレンダラ判定部370が判定したことを条件として、Transparency演算を含まない描画命令に変換して処理する第2の処理方法(第1実施形態の処理方法)を選択する処理方法切替部380とを備えている。
H/Wアクセラレータスロット360には、オプションとして、H/Wでレンダリング(描画展開)することで描画処理を高速に処理可能な高速化処理部の一例であるH/Wレンダラ(図示せず)が着脱可能になっている。H/Wレンダラは、S/W(Soft Wear) でレンダリングする場合に比べ、Transparency演算処理やROP処理を高速に行なうことができる。したがって、H/WレンダラがH/Wアクセラレータスロット360に装着されているときには、Transparency演算を伴う描画命令の置換えを行なう必要はない。
処理方法切替部380は、H/Wレンダラ判定部370の結果に応じて、たとえば処理中のフラグを“0”および“1”の何れかに切り替えることで、前述した第1実施形態の処理、すなわち基本パスとしてのTransparency演算を伴う描画命令についての変換可否判定や変換処理を行なうパスを経由させるかどうかを切り替える。
これにより、第2実施形態においては、Transparency演算を伴う描画命令をTransparency演算を含まない描画命令に置換するかどうかが、H/Wレンダラが存在するかどうかで切り替わるようになる。したがって、H/Wレンダラが存在する場合には、Transparency演算を伴う描画命令についての変換可否判定や変換処理を割愛して、H/Wに処理を任せることで、処理速度を高速にすることができる。
また、第2実施形態においても、H/Wレンダラが存在しないときには、基本パスとして、第1実施形態と同様の処理を行なうことができるから、不都合は生じない。
<第3実施形態;ホスト側装置での処理>
図8は、本発明に係る描画命令出力装置および画像形成装置を適用した第3実施形態の印刷システムの構成例を示すブロック図である。第3実施形態の印刷システム1は、ホスト側装置に、プリンタドライバからTransparencyコマンドを含むPDLデータを受け取り、Transparency演算を行なう描画処理を、Transparency演算を含まない描画処理に変換するかどうかを判定し、より処理速度の向上が見込まれる選択をするオプションユニットを装着した形態のものである。
図8(A)に示すように、ホスト側装置100のインタフェース部130の後段に、本発明に係る描画命令出力装置の一例であるインタフェースオプション部140が装着可能に構成している。
インタフェースオプション部140は、図8(B)に示すように、インタフェース部130を介して入力されたPDLデータを記憶する描画命令記憶部142と、Transparency演算処理を含む描画命令を、Transparency演算を必要としない描画命令に変換するか否かを判定する変換判定部144と、変換判定部144が描画命令に変換すると判定したときには描画命令記憶部142に記憶しおいたTransparency演算を伴う描画命令をTransparency演算を含まない描画命令に変換する透過命令変換部344とを有する。
なお、透過命令変換部344は、変換判定部144が描画命令に変換すると判定していなければ、描画命令記憶部142に記憶しおいたTransparency演算を伴う描画命令をそのまま出力する。
変換判定部144の機能は第1実施形態の透過命令判定部340の機能と同じである。また、描画命令変換部148の機能は、第1実施形態の透過命令変換部344の機能と同じである。
このような構成の第3実施形態の印刷システム1においては、ホスト側装置100に導入されているプリンタドライバPDによって、PCL言語記述の描画命令が生成され、それが一旦描画命令記憶部142に保存される。この後には、第1実施形態と同様にして、描画命令の変換判定処理や、その結果に基づく変換処理を行なう。したがって、この第3実施形態の構成においても、第1実施形態の印刷システム1と同様の効果が得られる。
また。この第3実施形態では、ホスト側装置100側にて、変化処理可否判定と、その結果に基づく変換処理を行なうようにしており、プリンタ装置200側が、第1実施形態のような機能を備えていない場合であっても、実質的に、プリンタ装置200は、第1実施形態の構成と同様の効果が得られる。
<第4実施形態;ホスト側装置とプリンタ装置との協働処理>
図9は、本発明の画像処理装置を適用した第4実施形態の印刷システムの一構成例を示すブロック図である。第4実施形態の印刷システム1は、予め描画命令の中に、Transparency演算の不要な描画命令への変換を行なうべきか否かを判断することができる判断指標情報を描画命令と対応付けてプリンタ装置200に出力し、プリンタ装置200における実際の描画展開処理時には、この判断指標情報を参照して、描画命令の解釈処理の手順を変えたりするようにした形態のものである。つまり、ホスト側装置100とプリンタ装置200とが協働して、第1実施形態の構成と同様の機能を果たすようにする。
ホスト側装置100は、第1〜第3実施形態と同様の、データ生成部110、中央制御部120、インタフェース部130に加えて、スプーラ部152およびハードディスク装置などの記憶媒体165を備える。中央制御部120には、ホスト側装置100の全体を制御するOSやプリンタ装置200を制御して印刷処理をするためのプリンタドライバがソフトウェアとして組み込まれている。勿論、これらも、ハードウェア要素で構成されていてもよい。図では、これらソフトウェアをハードウェア要素と見なして、OS部150およびプリンタドライバ160で示す。
プリンタドライバ160は、OS部150から描画命令を受け取る入力部162、受け取った描画命令などを記憶媒体165に記憶させる記憶制御部164、記憶媒体165に記憶させた1ページ分の描画命令に基づいて判断指標情報(判定情報)として抽出すべき情報を探す描画命令走査部166と、判断指標情報を作成して記憶媒体165に記憶される1ページ分の描画命令の中に埋め込む判断指標情報作成部168と、判断指標情報を埋め込んだ1ページ分の描画命令をホスト側装置100内のスプーラ部152に対して出力する出力部169を有する。
描画命令走査部166は、プリンタ装置200における描画展開処理時に、Transparency演算を必要とする描画命令からTransparency演算を必要としない描画命令に変換することが可能であるのか不可能であるのかを示す判断指標情報として抽出すべき情報をサーチする。ここで、判断指標情報は、プリンタ装置200における描画命令から印刷データへの変換処理や印刷処理に際して、必要な情報となる。
判断指標情報作成部168は、描画命令走査部166によるサーチ結果を参照して、Transparency演算を必要とする描画命令からTransparency演算を必要としない描画命令に変換することが可能であるのか不可能であるのかを示す判断指標情報を生成し、描画命令の中に埋め込む。この判断指標情報作成部168は、判定情報生成部および出力部の両機能を備える。スプーラ部152は、プリンタドライバ160から出力された描画命令を1命令ずつ印字データとして、インタフェース部130を介してプリンタ装置200に送る。
プリンタ装置200は、CPU210およびインタフェース部230などに加え、インタフェース部230を介して入力された描画命令を受け取る入力部232と、入力部232が受け付けた描画命令を解釈してラスタ画像に展開する展開部400と、インタフェース部230を介して入力された判断指標情報を読み取る判断指標情報読取部410とを備える。展開部400は、第1実施形態の構成におけるPDLデータ解釈部242、レンダリング部270、印刷制御部290など、従来より公知の描画展開処理の機能を備える。
このような第4実施形態の構成に依れば、ホスト側装置100に組み込まれたプリンタドライバ150で描画命令を蓄積し、プリンタ装置200で描画命令を解釈するにあたって有用な情報を判断指標情報として描画命令列の中に埋め込んでおき、プリンタ装置200側では、この判断指標情報に基づいて描画展開処理する構成とした。このため、プリンタ装置200では、置換判断のための描画命令の無駄な蓄積領域が不要となり、置換処理のためにプリンタ装置200に用意するメモリ領域を少なく抑えることができる。また判断指標情報を参照して描画展開することができるので、描画命令解釈を行ない易いなどの付加的な効果も得られる。
<第5実施形態;色段差への対処>
図10は、本発明に係る描画命令出力装置および画像形成装置を適用した第5実施形態の印刷システムの構成例を示すブロック図である。第5実施形態の印刷システム1は、画命令を解釈する際、処理の効率化のために複数の描画命令を低減して、たとえば1つの描画命令に変換したり、より処理に時間の掛らない別の描画命令に変換したりすることで、ROP処理時間を高速化する、たとえば特許文献1,2に記載の技術を組み合わせた点に特徴を有する。
具体的には、ここでは、第1実施形態と同様に、プリンタ装置200側にて置換処理の要否判定や置換処理を行なう構成とするとともに、特許文献2に記載の技術を組み合わせた構成としている。
たとえば、第5実施形態の印刷システム1においては、プリンタ装置200は、第1実施形態の構成に加えて、論理命令判定部342と論理命令変換部346とを備えている。論理命令判定部342は、透過命令変換部344にて変換処理が行なわれた描画命令について、さらに、描画論理演算指示を解析し、その描画論理演算指示あるいは連続した複数の描画論理演算指示が、論理演算処理を行なわなくても処理可能な指示内容であるか否かを判定する。
この判定は、たとえば描画論理演算指示が特定の描画論理演算指示である場合や、連続する複数の描画論理演算指示が特定の描画論理演算指示のパターンであることを条件とすることができる。また、この判定の際に、その描画論理演算指示によって指示されている論理演算処理の対象となる描画オブジェクトを参照して判定することもできる。
論理命令変換部346は、論理命令判定部342において論理演算処理を行なわなくても処理可能な指示内容であると判定された1〜複数の論理演算指示、その論理演算指示に対応する描画オブジェクトについて、描画論理演算を必要としない指示および描画オブジェクトに変換する。
このような構成の第5実施形態の印刷システム1においては、インタプリタ部240のPDLデータ解釈部242にTransparency演算を伴う描画命令や描画論理演算指示を含む描画命令が入力されると、PDLデータ解釈部242は、入力された描画命令を描画オブジェクトと描画指示に変換し、ハードディスク装置350の描画オブジェクト格納部350aに格納する。
そして、透過命令判定部340と透過命令変換部344とにより、先ず、第1実施形態と同様にして、Transparency演算を伴う描画命令についての変換可否判定や変換処理を行ない、処理済みの描画命令を論理命令判定部342に渡す。
論理命令判定部342は、描画オブジェクト格納部350aに格納されている1つの描画論理演算指示あるいは連続する複数の描画論理演算指示が、描画論理演算処理を行なわなくても描画できる指示内容であるか否かを判定する。判定の結果、描画論理演算処理を行なわなくても処理可能な指示内容であると判断された場合は、論理命令変換部346によって、判定した描画論理演算指示および描画オブジェクトを、描画論理演算を必要としない指示と描画オブジェクトに変換し、後続の処理機能部にその後の処理を継続する。
一方、論理命令判定部342によって描画論理演算処理が必要な指示内容であると判断された場合には、論理命令変換部346は、背景画像データ格納部(図示せず)から背景画像データを読み出し、描画論理演算指示に従い、読み出した背景画像データと描画オブジェクトとの描画論理演算を行なう。この演算が行なわれた結果の画像データは、背景画像データ格納部に書き戻される。
これにより、第1実施形態と同様の効果が得られることに加えて、ROP処理が必要な命令を不必要な命令に変換して処理することにより、論理演算動作に掛る処理時間を低減することで、高速および高画質の描画処理が可能となる。論理演算処理を含む描画命令について、指示された論理演算処理をそのまま実行することが必要でない場合に、論理演算処理を含まないコマンドに変換して実行することができるので、論理演算処理に掛る時間を省いた高速な画像処理が可能となるし、論理演算処理を行なわないことによって、色段差などの論理演算処理に伴う色変換処理の結果生じる画質上の不具合を回避することができるので、結果として高速な処理と高画質を両立した画像処理が実現できる。
図11は、第5実施形態における置換処理の一例を説明する図である。ここでは、 Patternイメージが全画素(全面)黒の場合を示している。
Patternイメージ,Sourceイメージともに“Transparent ”が指定されている(S208−YES)、ROPコマンドは上書き(ROP3:TSo=252)である(S210−YES)、 Patternイメージは全画素均一でかつ色は白か黒である(S212−YES)、Sourceイメージは色が白か黒(図の例では黒)で構成されている(S214−YES)ので、図6(A)に示したように、透過命令変換部344にて、Source Transparency Modeと PatternTransparency Mode の何れをも“Opaque”に設定するとともに、ROP2:8とし、 Patternイメージは定義しない状態とされた描画命令が論理命令判定部342に通知される。
詳しい説明は割愛するが、ROP2:8は、描画論理演算処理を行なわなくても描画できる指示内容であるので、論理命令判定部342は、描画論理演算処理を行なわなくても処理可能な指示内容であると判断し、論理命令変換部346に変換を指示する。これを受けて、論理命令変換部346は、ROP2:8を対応するROP2:12(上書き)に変換する。
こうすることで、Transparency演算だけでなく、論理演算も必要がなくなり、Sourceイメージの黒い部分のみ上書き描画となる。チャートによっては、描画不具合(色段差)も回避できることになり、画質向上に繋がる。
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
たとえば、上記実施形態では、置換条件にマッチするTransparency演算を伴う描画命令を、比較的に負荷の少ない描画命令に置き換える場合を示したが、このような置換に代えて、描画自体を行なわない構成とすることもできる。
たとえば、描画オブジェクトがグラフィックスやフォントの場合、ソースイメージがオブジェクトの形状(つまりすべて黒と解釈する)となり、パターンイメージがオブジェクトの色となるため、白色のグラフィックスやフォントを描画する場合は、関係するコマンド群をすべて無効とすることができる。
たとえば、図12は、ソースイメージとして、線や矩形などのグラフィックスもしくはフォント(文字)の場合を例示している。描画命令の中には、図中Tr10およびTr12に示すように、Transparency演算に関わる“Opaque”指定もしくは“Transparent ”指定がある描画命令が含まれている。
図13は、図12に示されるPCL言語記述のPDLデータに対応する、Transparency演算の置換処理の一例を説明する図である。ここでは、色が白か黒のグラフィックスの一例として三角形の場合を示すとともに、図13(A)は、三角形の色が黒の場合を示し、図13(B)は、三角形の色が白の場合を示している。
描画対象がグラフィックスの場合は、Sourceイメージが形状を表し、 Patternイメージに色がセットされる。したがって、三角形の色が黒の場合には、図13(A)に示すように、Sourceイメージで示される三角形の枠内を Patternイメージで示される黒で塗り潰す描画命令になるので、変換後の描画属性としては、Source Transparency Modeと PatternTransparency Mode の何れをも“Opaque”に設定するとともに、ROP2:8とし、 Patternイメージは定義しない。
このようにして、描画命令を変換し、中間データ生成部260やレンダリング部270において、SourceイメージとDestination をROP2:8(BGR空間)で描画すると、描画処理結果(Result)としては、Destination イメージ上にSourceイメージの三角形が黒で上書きされた状態となる。変換されたROP2:8を含む描画命令は、変換前のTransparency演算を伴う描画命令に比べると、負荷の少ない描画命令である。
また、三角形の色が白の場合には、図13(B)に示すように、Sourceイメージで示される三角形の枠内を Patternイメージで示される白で塗り潰す描画命令になるので、実際には、Sourceイメージは全て白となるので、描画しないことと同じ結果となる。したがって、変換後の描画属性としては、描画コマンドをキャンセルして、描画自体を行なわないようにすればよい。
1…印刷システム、9…伝送路、100…ホスト側装置、110…データ生成部、120…中央制御部、130…インタフェース部、140…インタフェースオプション部、142…描画命令記憶部、144…変換判定部、148…描画命令変換部、150…OS部、160…プリンタドライバ、200…プリンタ装置、201…ROM、202…RAM、210…中央演算制御処理部、230…インタフェース部、240…インタプリタ部、242…PDLデータ解釈部、260…中間データ生成部、270…レンダリング部、290…印刷制御部、300…プリンタエンジン部、308…プリンタIF部、310…メモリ管理部、340…透過命令判定部、342…論理命令判定部、344…透過命令変換部、346…論理命令変換部、350…ハードディスク装置、360…H/Wアクセラレータスロット、370…H/Wレンダラ判定部、380…処理方法切替部