説明

画像処理装置

【課題】 ホストでディスプレイリストを作成しないで入力されたPDL描画コマンドをプリンタ側でバンディング方式で処理する際、現行の描画対象バンドに描画しないコマンドの処理を最小限に止め、処理の効率化を図る。
【解決手段】 図形描画処理部は、描画コマンド(任意のベクターグラフフィックス)の1つを中間データメモリから受取ると、処理の始めに、このコマンドが、現行の描画対象バンドの領域に該当するコマンドであるか否かをコマンド(中間データ)に指示された描画範囲から判定する(S101)。この結果、バンド領域内のコマンドに対してだけ、レンダリングやページメモリへのピクセルの描き出しを行う(S102〜104)。この方法により、従来のバンド毎に全体を描画した後、対象バンドの結果のみを残す、という低効率の処理を改善できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PDL(ページ記述言語)等の画像出力用のデータ形式で記述された描画コマンドの入力を受付け、描画データとして処理し、出力する画像処理装置に関し、特にバンディング方式に係る処理を画像処理装置側で負う場合(ホスト機に負担させない)の処理の効率化を可能とした前記画像処理装置に関する。
【背景技術】
【0002】
従来から、画像出力機(例えば、プリンタ)に対して出力要求を行う場合、通常、ホスト機(例えば、PC:パーソナルコンピュータ)で作成されたPDL(ページ記述言語)形式のデータを画像出力機へ出力することにより行われる。
プリンタを例にとると、ホストPCが作成する印刷(PDL)データは、描画コマンドの集合であり、描画コマンドの中には文字、グラフィック、イメージなどの種類が、それぞれの特徴に従ったデータ表現をとって存在し、描画コマンドを受取るプリンタ側では、それぞれデータの種類に対応した描画(レンダリング)処理により、プリント出力用のデータを生成する。
また、プリンタ側で行う描画処理においては、ページ毎に送られてくる印刷データに対し、リソースを効率的に使用するために、ページを複数のバンドに区切り(後記の図2に関する説明、参照)、バンド単位でプリンタエンジンへ入力する描画データを処理する(以下「バンディング処理」或いは「バンディング」と記す場合、この処理を指す)方法をとり、より少ないリソースでも処理速度が維持できるようにしている。
ところで、バンディング処理を行う際に、ホストPC側でこの処理に対応した印刷データを作成する方法によって、印刷処理全体の効率を良くすることが可能であり、このような方法による従来技術として、例えば、下記特許文献1を示すことができる。
【特許文献1】特開2004−334401号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
バンディングに対応する処理をホストPC側で負う上記の方法は、ホストPCのリソースが十分である場合に、有効な方法である。従って、PCや他のホスト機でも、リソースが十分ではない環境では、バンディングに対応する処理を行えなかったり、環境によっては、バンディングに対応する処理による負荷の増大を避けたい、といったケースもある。このような場合には、プリンタ側でこの処理を負担しなければならない。
プリンタ側で行うバンディングに対応する処理は、ホスト側で行う従来方式と同様に、バンド毎に分類されたディスプレイリストにデータを構成し直す方式が採用可能である(後記の図3に関する説明、参照)。ただ、この処理を行うには、リソースが必要である。
プリンタ側でレンダラーの処理としてバンディングに対応する処理を行う場合、処理に必要なリソースが確保できない場合には、印刷データ(描画コマンド)全体を各バンド毎に描画していく方法をとらざるを得ない(後記の図4に関する説明、参照)。しかしながら、この従来の方法は、処理効率という点で非常に劣っている。
本発明は、ホスト機から入力されてくる描画コマンドをバンディング方式の描画データへ処理することが可能な画像処理装置における上記した従来の方法の問題に鑑み、これを解決するためになされたもので、描画コマンドを受付ける画像処理装置側でバンディングに対応する処理を行う際に、描画対象となっているバンドに描画しない描画コマンドの処理を最小限に止めることにより、処理の効率化を図ることを解決すべき課題する。
【課題を解決するための手段】
【0004】
請求項1の発明は、入力された描画コマンドをバンディング処理方式で描画データへ処理する描画処理手段を有する画像処理装置において、前記描画処理手段は、入力描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、該当コマンドと判定されたことを条件に描画処理を実行し、描画処理によって描き出した描画ピクセルが現行の描画対象バンド内にあるか否かを判定し、バンド内と判定されたことを条件に該描画ピクセルをバンドの描画データとして出力する描画処理制御手段を備えたことを特徴とし、このようにすることによって上記課題を解決するものである。
【0005】
請求項2の発明は、請求項1に記載された画像処理装置において、前記描画処理手段は、入力描画コマンドのパラメータにより示される描画範囲をもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
請求項3の発明は、請求項1又は2に記載された画像処理装置において、前記描画処理手段は、圧縮データによる入力描画コマンドに対し、最初のバンドで圧縮データを復元処理し、該復元処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
【0006】
請求項4の発明は、請求項1乃至3のいずれかに記載された画像処理装置において、前記描画処理手段は、ベジェ(Bezier)曲線形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
請求項5の発明は、請求項1乃至4のいずれかに記載された画像処理装置において、前記描画処理手段は、ベクターグラフィックス形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
【0007】
請求項6の発明は、請求項2乃至5のいずれかに記載された画像処理装置において、前記描画処理手段は、描画コマンドの描画範囲をそれぞれのコマンドのキャッシュから得ることを特徴とし、このようにすることによって上記課題を解決するものである。
請求項7の発明は、請求項2乃至5のいずれかに記載された画像処理装置において、前記描画処理手段は、描画コマンドの描画範囲を前記判定専用のデータとして保持することを特徴とし、このようにすることによって上記課題を解決するものである。
【0008】
請求項8の発明は、請求項1乃至7のいずれかに記載された画像処理装置において、前記描画処理手段から出力される描画データを用いてバンド単位で印刷処理を行うエンジンを有することを特徴とし、このようにすることによって上記課題を解決するものである。
請求項9の発明は、請求項8に記載された画像処理装置において、前記描画処理手段から前記エンジンへの描画データの受け渡しをバンド単位のメモリを用いて行うことを特徴とし、このようにすることによって上記課題を解決するものである。
【発明の効果】
【0009】
(1) 本発明によると、描画コマンドを受付ける画像処理装置側でバンディングに対応する処理を行う(即ち、ホスト機側ではバンディング処理に対応するディスプレイリストの作成は不要になる)際、描画処理の実行に先立って入力描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、この判定結果により、描画処理を開始し、描き出した描画ピクセルが現行の描画対象バンド内にあると判定されたことを条件に該描画ピクセルを描画データとして出力することで、現行の描画対象バンドに描画しない描画コマンドの処理を最小限に止めるようにしたことにより、従来の描画コマンド全体を各バンド毎に描画していく方法に比べて、処理の効率化を図ることが可能となる。
(2) また、現行の描画対象バンドに該当するコマンドであるか否かを、描画コマンドの種類に適応した判定方法で対応すること、即ちイメージ、文字、矩形などに対しては、コマンドパラメータにより示される描画範囲をもとに該描画範囲の端部位置情報を取得し(請求項2)、圧縮データによる入力描画コマンドに対しては、最初のバンドで復元処理し得られるデータをもとに該描画範囲の端部位置情報を取得し(請求項3)、ベジェ(Bezier)曲線形式で表現された入力描画コマンドに対しては、最初のバンドで描画処理し得られるデータをもとに該描画範囲の端部位置情報を取得し(請求項4)、ベクターグラフィックス形式で表現された入力描画コマンドに対しては、最初のバンドで描画処理し得られるデータをもとに該描画範囲の端部位置情報を取得する(請求項5)ことで得られる情報を用いることによって、処理を最適化することが可能になる。
(3) また、各描画コマンドごとに取得される描画範囲の情報を描画キャッシュ或いは描画コマンドに専用のデータとして付加することにより、複数のバンドに跨る描画コマンドに適応し、処理を最適化することが可能になる(請求項6,7)。
(4) また、プリンタ等の印刷出力を行う画像処理装置において、上記(1)、〜(3)の発明の効果を具現化することにより、該画像処理装置のパフォーマンスを向上させることが可能になる(請求項8,9)。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施形態に係わる画像処理装置を説明する。
以下に示す実施形態は、本発明の画像処理装置をプリンタに適用した例を示す。
適用対象となるプリンタは、ネットワーク等の通信手段により外部のホスト機(PC或いは画像機器)と接続され、ホスト機からネットワークを介して受取るPDL(ページ記述言語)形式の描画コマンド(印刷データ)をもとに描画処理を行うことにより、プリント出力用(描画)データを生成し、生成した描画データを用いて印刷出力を行う。
本案に係わる描画処理は、後述するようにバンディング方式で行う。バンディングに対応する描画処理は、プリンタに装備されるプリンタコントローラの機能として実現し得る。また、本案のバンディングに対応する描画処理のために描画コマンドの一部に新たに付加されるデータは、ホスト機のコンピュータ側のプリンタドライバに、処理に必要な機能を搭載させることにより実施し得る。
なお、プリンタコントローラの描画処理機能は、コントローラを構成するコンピュータ(CPU)に後述する実施形態に示す描画処理方法の各処理手順を実行させるためのプログラムを搭載し、プログラムを駆動することにより実施することが可能である。
また、適用の対象となるプリンタは、PDL形式の描画コマンド(印刷データ)からページメモリ上に描画データを生成するまでの描画処理過程を要する装置であれば、プリント出力における紙媒体への作像方式は問わない。
【0011】
図1は、本発明の実施形態に係るプリンタの概略構成を示す図である。
図1に示すプリンタ2は、ホスト機としてのPC1から受け取った描画コマンドに従いプリント出力処理を行うために必要な描画データを処理し、プリンタの各動作部を制御するプリンタ コントローラ3と、プリンタ コントローラ3からの描画データ出力により紙等の媒体に印字を行うプリンタ エンジン4を有する。
プリンタ コントローラ2内には、入力描画コマンドからプリンタ エンジン4に出力する描画データを生成するまでのデータ処理に必要な要素として、インタープリタ10、図形描画処理部11、中間データメモリ20、ページメモリ23、及びCPU14を備える。なお、図1中には、インタープリタ10及び図形描画処理部11をCPU14から独立した要素として示しているが、ソフトウェアにより実施する場合、CPU14が駆動するソフトウェアによって実現する機能である。
描画処理のフローの概略を説明すると、プリンタ2に処理を要求するホストPC1は、PC内で作成された文書(ページデータ)に対する印刷要求の指示に従い、文書をプリンタドライバにかけ、PDL形式の描画コマンドよりなる印刷データをプリンタ2に転送する。
印刷データを受取るプリンタ2側では、プリンタコントローラのインタープリタ10で受取ったPDL形式の描画コマンド(印刷データ)を解読し、この結果、描画処理に適した形式のデータとして得られる中間データを中間データメモリ20に格納する。
次いで、図形描画処理部11は、中間データメモリ20から渡される中間データとして表された描画コマンドに従って、レンダリング処理を行い、ページメモリ23へ描画ピクセルを描き出す描画処理を行う。この後、ページメモリ23展開された描画データによりプリンタエンジン4により紙面への印字を行う。
【0012】
ここに、上記に概略を示した描画処理は、バンディング方式で行われ、描画データはバンド単位でページメモリ23を介してプリンタエンジン4へ出力される。
バンディング方式による処理は、図2に示すように、プリンタコントローラ3に入力されるページ単位の描画コマンドの集合よりなる印刷データ(図中の(A)にて示す)に対し、ページを複数のバンドに区切って(図中の(B)にて示すように副走査方向に例えば4分割する)描画処理を行い、得られるバンド単位の描画データをプリンタエンジン4へ出力する。この方式によって、プリンタ2内のリソースを効率的に使用し、より少ないリソースでも所定の処理速度が維持できるようにする。
ところで、処理の対象となる文書(ページデータ)は、ホストPC1が各種のアプリケーションを用いて作成、編集するのが普通で、この文書をもとにプリンタドライバで作成される印刷データは、各種の描画コマンドの集合となっている。つまり、コマンドの中には、文字、グラフィック、イメージなどの種類があり、それぞれの特徴に従ったデータ表現をとって存在する。従って、描画コマンドを受取るプリンタ側では、それぞれデータの種類に対応した描画(レンダリング)処理により、プリント出力用のデータを生成する。
【0013】
ただ、バンディング処理を行う場合には、これに対応する処理を行う必要があり、従来、図3に示すように、各バンドを描画するためのコマンドをバンド毎に分類するディスプレイリストに印刷データを構成し直す方式が採用されている。なお、図3は、図2(A)の印刷データに対するディスプレイリストの構成概念を示すもので、図3中に例示する線分を表すグラフィック描画コマンドのように、複数のバンドに跨るコマンドの場合には、線分が属するバンドにそれぞれ分解するように、印刷データを構成し直す必要がある。
上記のディスプレイリストに印刷データを構成し直す方式は、処理用に相当のリソースを確保すること等の条件が必要になることから、従来は、専らホスト側で行われていた。しかしながら、上記の[発明が解決しようとする課題]の項で述べたように、本案では、プリンタ側でこのバンディングに対応する処理を負うようにし、そのための手段を備えるようにする。
プリンタ側で負うバンディングに対応する処理として、従来ホスト側で行っていたと同様に、ディスプレイリストに印刷データを構成し直す方式の処理を行うことが考えられるが、装置の構成によっては、この処理に必要なリソースを確保できない、といった状況になり得る。
このような場合へ対応可能な方法として、図4に示すように、ディスプレイリストの無い印刷データ(描画コマンド)をバンド[1]〜[4]毎に描画していく方法をレンダラーの処理として行う方法を採ることができる。しかしながら、図4に示す方法は、ディスプレイリストがないので、同図に例示する線分を表すグラフィック描画コマンドのように、複数のバンドに跨るコマンドがある場合等を考慮すると、1つのバンドを描画する場合でも、印刷データ(描画コマンド)全体を描画し、対象のバンドの結果のみを残す処理を各バンドで順に繰り返し行う(例えば、バンド[1]の場合には、全体を描画した後、対象のバンド[1]の結果のみを残す、という処理を行い、この方法を[2][3]・・の各バンドで順に繰り返す)。従って、処理効率という点で非常に劣っている。
【0014】
そこで、本案では、描画処理の対象バンドに描画しない描画コマンドの処理を最小限に止めるようにする(例えば、図4に例示する線分を表すグラフィック描画コマンドのように、複数のバンドに跨るコマンドの場合でも、描画処理の対象バンドに関係の有るコマンドのみとして、関係しないコマンドの処理は行わない)。この処理方法により、描画コマンド全体を各バンド毎に描画していく上記の方法に比べて、処理の効率化を図ることを可能とする。
この処理方法を実現するために、本実施形態では、ホストPC1から受取った描画コマンドに対しバンディング方式で描画処理を行う際、処理の実行に先立って、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、この判定結果により、描画処理を開始し、又描き出した描画ピクセルが現行の描画対象バンド内にあると判定されたことを条件に該描画ピクセルを描画データとして出力する描画処理を行うようにする。
以下には、プリンタコントローラ3により制御される上記描画処理に係る実施形態として、「実施形態1」〜「実施形態4」を示す。「実施形態1」〜「実施形態4」は、描画コマンドのデータ形式が、それぞれ任意のベクターグラフィックス、圧縮データ、ジョイントやキャップが含まれるベクターグラフィックス及びベジェ(Bezier)曲線の各形式)に適応し得るようにした形態に係る例を示す。
【0015】
「実施形態1」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理を任意のベクターグラフィクスに適応し得るようにした形態に係る例を示す。
図5は、本実施形態の描画処理(I)のフロー図を示す。
図5に示す描画処理(I)のフローによると、プリンタコントローラ3の図形描画処理部11は、中間データメモリ20に格納されたPDL形式の描画コマンド(中間データ)から取出されたコマンドの1つが渡されると、描画処理の始めに、このコマンドが、今描画対象としているバンド(現行の描画対象バンド)の領域に該当するコマンドであるか否かを判定する(ステップS101)。ベクターグラフィクスの描画コマンドの場合、中間データメモリ20から受取る中間データに描画範囲が指示されている(描画範囲はホストPC1からの入力描画コマンドに付与されているパラメータをインタープリタ10で解析される)。従って、上記の判定は、中間データに示されている描画範囲を現行の描画対象バンドの領域情報(副走査方向の上端、下端位置として有効画像出力領域、バンド数等に応じ予め設定される)に照らして、判断することができる。
なお、描画コマンドがイメージや文字、矩形などの場合、コマンドパラメータから容易に必要な情報を得ることができるので、当該描画コマンド(中間データ)に対する判定処理の中で描画範囲を求めることが可能である。
また、ホストPC1で描画コマンドをスプールするときに、該コマンドの描画範囲を正確に知ることができる方法が採用可能な場合は、この方法によって検知した描画範囲における上端、下端位置情報を描画コマンドに付属情報として付与し、その後、プリンタコントローラ3で描画コマンドに付属させた描画範囲の上端、下端位置情報を取出して上記判定に用いるようにシステムを構成しても良い。
【0016】
ステップS101で現行の描画対象バンドの領域に該当するコマンドであるか否かを判定した結果、領域外のコマンドである場合には、レンダリングやページメモリ23へのピクセルの描き出しを行う描画処理は不要であるから、現行の描画対象バンドが最後のバンドではないことを確認して(ステップS105-NO)、描画対象バンドを次のバンドに対する描画処理に移行させ(ステップS106)、ステップS101に戻し、次のバンドの描画処理を行う。
他方、ステップS101で領域内のコマンドであると判定された場合には、中間データに指示されている描画コマンド(描画範囲、描画内容)をもとに、主・副走査によってプリント出力面上に描かれる描画ピクセルを指定するスキャンライン変換を行い(ステップS102)、この変換結果に従い描画キャッシュを作成する(ステップS103)。描画キャッシュは、スキャンライン変換以降に、描画ピクセルをそれぞれの属するバンドメモリへ描画データとして格納するために、一時的に描画データを記憶しておく操作である。
次いで、描画キャッシュされたデータに対し、現行の描画対象バンドに属するデータのCLIP処理を行い、切取った現行バンドに属するデータをバンドメモリに描画する(ステップS104)。ここでは、現行の描画対象バンド範囲の下端位置を示すスキャンライン情報によって、描画コマンドに従ってプリント出力面上に描かれる描画データがこのバンドに属することをピクセルの単位で判断し、現行バンドの描画データとして切取り、バンドメモリに描き出す。なお、バンドメモリは、ページメモリ23内に領域が確保される。
ステップS104で今処理の対象としている描画コマンドの現行の描画対象バンドへの描画処理を終えるので、現行の描画対象バンドが最後のバンドではないことを確認して(ステップS105-NO)、描画対象バンドを次のバンドに対する描画処理に移行させ(ステップS106)、ステップS101に戻し、次のバンドの描画処理を行う。
ステップS105で現行の描画対象バンドが最後のバンドであることを確認したところで、今処理の対象とした描画コマンドに対する全てのバンドへの描画処理を終了するので、次の描画コマンドに処理を進める。
【0017】
「実施形態2」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理を圧縮データが含まれるコマンドに適応し得るようにした形態に係る。
圧縮データが含まれる描画コマンドにおいては、中間データから直ちに描画範囲を正確に知ることができない場合が生じ得る。そこで、圧縮データが含まれる描画コマンドに対しては、最初のバンドに対する処理に先立ち、該コマンドの圧縮データを復元し、展開することによって正しい描画範囲を求め、求めた描画範囲情報をもとにこの描画コマンドに対する以降のバンディング処理による描画を実行する。
図6は、このバンディング処理を行うための手段として、描画範囲判定処理部15を備えたプリンタ2の概略構成を示す。
描画範囲判定処理部15は、圧縮された描画コマンドを復元し、展開することにより得られるデータをもとに描画範囲を求め、求めた描画範囲情報によって上記バンディング処理を管理する機能を提供する。この機能の中には、描画コマンドに対するバンド判定やバンド判定を行うために求めた描画範囲情報を中間データに追加する処理を行う機能を含む。
なお、図6に示す本実施形態に係るプリンタ2の構成は、描画範囲判定処理部15が付加された以外は、基本的に上記図1のプリンタと変わらないので、共通部分については、先の説明を参照することとし、ここでは記載を省略する。
【0018】
図6は、本実施形態の描画処理(II)のフロー図を示す。
図6に示す描画処理(II)のフローによると、プリンタコントローラ3の描画範囲判定処理部15は、中間データメモリ20に格納されたPDL形式の描画コマンド(中間データ)から取出された圧縮データが含まれる描画コマンドが渡されると、描画処理の始めに、圧縮された描画コマンドを復元し、展開する処理を行う。
この処理手順に従うので、処理フローでは、現行の描画対象バンドが最初のバンドであることを確認できれば(ステップS201-YES)、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行うことなく、圧縮された描画コマンドを復元し、展開する処理を実行する(ステップS203)。このとき、展開されたピクセルは実際の描画位置上に存在するので、展開結果から描画範囲を正しく求めることができ、また、求めた描画範囲情報を以降のバンディング処理に使用(即ち、2つ目以降のバンドに対する描画範囲判定に使用)するために中間データメモリ20に格納されている該当する描画コマンドの中間データに付属情報として追加する。
図形描画処理部11は、ステップS203で展開された画像ピクセルに対し、最初の描画バンドに属するデータのCLIP処理を行い、切取ったデータをバンドメモリの最初のバンドに属するデータとしてバンドメモリに描画する(ステップS204)。なお、最初の描画バンドに展開された画像ピクセルが無ければ、ステップS204は行わない。
【0019】
ステップS204で最初の描画対象バンドの処理を終えるので、現行の描画対象バンドが最後のバンドではないことを確認して(ステップS205-NO)、描画対象バンドを次のバンドに対する描画処理に移行させ(ステップS206)、ステップS201に戻す。2つ目以降のバンドについては、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行う(ステップS202)。この判定は、最初のバンドの処理フローにおける圧縮データ展開処理(ステップS203)で中間データに付属情報として追加した描画範囲情報を用いることができるので、ここに示されている描画範囲を現行の描画対象バンドの領域情報に照らして、判断することができる。
ステップS202で現行の描画対象バンドの領域に該当するコマンドであるか否かを判定した結果、領域外のコマンドである場合には、ページメモリ23へのピクセルの描き出しを行う描画処理は不要であるから、現行の描画対象バンドが最後のバンドではないことを確認して(ステップS205-NO)、描画対象バンドを次のバンドに対する描画処理に移行させ(ステップS206)、ステップS201に戻し、次のバンドの描画処理を行う。
【0020】
他方、ステップS202で領域内のコマンドであると判定された場合には、最初のバンドの処理フローにおける圧縮データ展開処理(ステップS203)で既に展開されている画像ピクセルに対し、現行の描画対象バンドに属するデータのCLIP処理を行い、切取ったデータをバンドメモリの現行の描画対象バンドに属するデータとしてバンドメモリに描画する(ステップS204)。
ステップS204で現行の描画対象バンドへの描画処理を終えるので、現行のバンドが最後のバンドではなければ(ステップS205-NO)、描画対象バンドを次のバンドに対する描画処理に移行させる(ステップS206)、というように、順次バンドを変えて処理を進めていく。
ステップS205で現行の描画対象バンドが最後のバンドであることを確認したところで、今処理の対象としている描画コマンドに対する全てのバンドへの描画処理を終了するので、次の描画コマンドに処理を進める。
【0021】
「実施形態3」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理をベクターグラフィックス形式のデータが含まれるコマンドに適応し得るようにした形態に係る。
ベクターグラフィックスのジョイントやキャップがこの種の形式のデータに含まれる描画コマンドにおいては、ジョイントやキャップの種類により形状が異なるために描画範囲に違いが生じるので、中間データから直ちに描画範囲を正確に知ることができない。そこで、中間データにジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドに対しては、最初のバンドに対する処理で、該コマンドの描画範囲の有無に係らずに、スキャンライン変換を行うことによって正しい描画範囲を求め、求めた描画範囲情報をもとにこの描画コマンドに対する2つ目以降のバンディング処理による描画を実行する。
図8は、このバンディング処理を行うための手段として、描画範囲判定処理部15及び描画キャッシュ21を備えたプリンタ2の概略構成を示す。
描画キャッシュ21には、中間データにジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドのスキャンライン変換を行うことにより得られる描画データがキャッシュされる。
描画範囲判定処理部15は、描画キャッシュ21にキャッシュされた描画データを参照することにより描画範囲を得、得られた描画範囲情報によって、描画コマンドが現行の描画対象バンドで処理するコマンドであるか否かの描画範囲判定を行うことで、所期のバンディング処理を管理する。
なお、図8に示す本実施形態に係るプリンタ2の構成は、描画範囲判定処理部15及び描画キャッシュ21が付加された以外は、基本的に上記図1のプリンタと変わらないので、共通部分については、先の説明を参照することとし、ここでは記載を省略する。
【0022】
図9は、本実施形態の描画処理(III)のフロー図を示す。
図9に示す描画処理(III)のフローによると、プリンタコントローラ3の描画範囲判定処理部15は、中間データメモリ20に格納されたPDL形式の描画コマンド(中間データ)から取出されたジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドが渡されると、最初のバンドに対する処理で(即ち、このバンド領域にコマンドの描画範囲が有るか無いかの如何に係らず)、中間データに指示されているベクターグラフィックス形式の描画コマンドをもとにスキャンライン変換等を行う。
この手順で処理を行うので、処理フローでは、現行の描画対象バンドが最初のバンドであることを確認できれば(ステップS301-YES)、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行うことなく、ジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンド(中間データ)に基づいて、主・副走査によってプリント出力面上に描かれる描画ピクセルを指定するスキャンライン変換を行い(ステップS303)、この変換結果に従い描画キャッシュ21を作成する(ステップS304)。
このとき、描画キャッシュ21に展開されたピクセルは実際の描画位置上に存在するので、展開結果から描画範囲を正しく求めることができるので、求めた描画範囲情報を2つ目以降のバンドに対する描画範囲の判定に使用する。また、描画キャッシュのデータは、以降のバンディング処理に使用、即ち、描画ピクセルをそれぞれの属するバンドメモリへ描画データとして格納する処理にも使用する。
最初のバンドを描画対象とする処理フローでは、図形描画処理部11は、ステップS304で描画キャッシュ21に作成された画像ピクセルに対し、最初の描画バンドに属するデータのCLIP処理を行い、切取ったデータを最初のバンドに属するデータとしてバンドメモリに描画する(ステップS305)。なお、最初の描画バンドに展開された画像ピクセルが無ければ、ステップS305は行わない。
【0023】
ステップS305で最初の描画対象バンドの処理を終えるので、現行の描画対象バンドが最後のバンドではないことを確認して(ステップS306-NO)、描画対象バンドを次のバンドに対する描画処理に移行させ(ステップS307)、ステップS301に戻す。2つ目以降のバンドについては、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行う(ステップS302)。この判定は、最初のバンドの処理フローにおける描画キャッシュの作成処理(ステップS304)で描画キャッシュ21に格納した描画範囲情報を用いることができるので、ここに示されている描画範囲を現行の描画対象バンドの領域情報に照らして、判断することができる。
ステップS302で現行の描画対象バンドの領域に該当するコマンドであるか否かを判定した結果、領域外のコマンドである場合には、ページメモリ23へのピクセルの描き出しを行う描画処理は不要であるから、現行の描画対象バンドが最後のバンドではないことを確認して(ステップS306-NO)、描画対象バンドを次のバンドに対する描画処理に移行させ(ステップS307)、ステップS301に戻し、次のバンドの描画処理を行う。
【0024】
他方、ステップS302で領域内のコマンドであると判定された場合には、最初のバンドの処理フローにおけるスキャンライン変換(ステップS303)及びスキャンライン変換結果による描画キャッシュの作成(ステップS304)の処理によって、既に作成されている描画データ(画像ピクセル)に対し、現行の描画対象バンドに属するデータのCLIP処理を行い、切取ったデータを現行の描画対象バンドに属するデータとしてページメモリ23に確保したバンドメモリ領域に描画する(ステップS305)。
ステップS305で現行の描画対象バンドへの描画処理を終えるので、現行のバンドが最後のバンドではなければ(ステップS306-NO)、描画対象バンドを次のバンドに対する描画処理に移行させる(ステップS307)、というように、順次バンドを変えて処理を進めていく。
ステップS306で現行の描画対象バンドが最後のバンドであることを確認したところで、今処理の対象としている描画コマンドに対する全てのバンドへの描画処理を終了するので、次の描画コマンドに処理を進める。
【0025】
「実施形態4」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理をベジェ(Bezier)曲線形式で表現されたデータが含まれるコマンドに適応し得るようにした形態に係る。
ベジェ(Bezier)曲線形式で表現されたデータが含まれる描画コマンドにおいては、コマンド(中間データ)に指定されている座標そのものが正確な描画範囲とはならないので、中間データから直ちに正しい描画範囲を知ることができない。そこで、中間データにベジェ(Bezier)曲線形式で表現されたデータが含まれる描画コマンドに対しては、最初のバンドに対する処理で、該コマンドの描画範囲の有無に係らずに、スキャンライン変換を行うことによって正しい描画範囲を求め、求めた描画範囲情報をもとにこの描画コマンドに対する2つ目以降のバンディング処理による描画を実行する。
ベジェ(Bezier)曲線形式で表現されたデータが含まれる描画コマンドに対する上記バンディング処理を行うための手段は、上記「実施形態3」に示した、ジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドに対するバンディング処理におけると同様の手段で対応することが可能である。
【0026】
つまり、上記「実施形態3」において、バンディング処理を行うための手段として設けるとした、描画範囲判定処理部15及び描画キャッシュ21を図8に示す構成で備える。また、図9に示す処理フローに従い、最初のバンドに対する処理フローで、描画コマンドのスキャンライン変換を行い、得られる描画データをキャッシュし(ステップS301、S303、S304)、これらの処理を行った後、即ち2つ目のバンド以降の処理フローにおいて、先にキャッシュされた描画データを参照し、得られる正確な描画範囲情報によって、描画範囲判定を行い(ステップS302)、バンディング処理を管理する、という描画処理を実行する。
ただ、上記の処理において、描画コマンドのスキャンライン変換に用いる手段は、描画コマンドがジョイントやキャップが含まれるベクターグラフィックス形式のデータであるか(実施形態3)、ベジェ(Bezier)曲線形式で表現されたデータであるか(本実施形態)によって、異なる処理機能を用いなければならないので、当然、それぞれの処理に必要な機能を用意する必要がある。
上記のようにして、上記「実施形態3」に示したと同様の手段を適用することにより、ベジェ(Bezier)曲線形式で表現されたデータが含まれる描画コマンドに対し、所期のバンディング処理を実施することができる。
【0027】
なお、上記した実施形態では、プリンタを例にしたが、PDLデータをもとに可視化像を出力する画像出力装置であれば、印刷出力(紙媒体への出力)に限らず、ディスプレイへ出力する画像処理装置に実施しても良い。
【図面の簡単な説明】
【0028】
【図1】本発明の実施形態に係る画像処理装置(プリンタ)の概略構成を示す。
【図2】バンディング方式による処理概念の説明図を示す。
【図3】ディスプレイリストに印刷データを構成し直す方式による処理概念の説明図を示す。
【図4】ディスプレイリストの無い印刷データをバンド[1]〜[4]毎に描画していく方式による処理概念の説明図を示す。
【図5】図1に示したプリンタのコントローラにおける描画処理(I)のフロー図を示す。
【図6】本発明の実施形態2に係る画像処理装置(プリンタ)の概略構成を示す。
【図7】図6に示したプリンタのコントローラにおける描画処理(II)のフロー図を示す。
【図8】本発明の実施形態3,4に係る画像処理装置(プリンタ)の概略構成を示す。
【図9】図8に示したプリンタのコントローラにおける描画処理(III)のフロー図を示す。
【符号の説明】
【0029】
1・・ホストPC、2・・画像処理装置(プリンタ)、3・・プリンタコントローラ、4・・プリンタエンジン、10・・インタープリタ、11・・図形描画処理部、14・・CPU、15・・描画範囲判定処理部、20・・中間データメモリ、21・・描画キャッシュ、23・・ページメモリ。

【特許請求の範囲】
【請求項1】
入力された描画コマンドをバンディング処理方式で描画データへ処理する描画処理手段を有する画像処理装置であって、
前記描画処理手段は、入力描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、該当コマンドと判定されたことを条件に描画処理を実行し、描画処理によって描き出した描画ピクセルが現行の描画対象バンド内にあるか否かを判定し、バンド内と判定されたことを条件に該描画ピクセルをバンドの描画データとして出力する描画処理制御手段を備えたことを特徴とする画像処理装置。
【請求項2】
請求項1に記載された画像処理装置において、
前記描画処理手段は、入力描画コマンドのパラメータにより示される描画範囲をもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項3】
請求項1又は2に記載された画像処理装置において、
前記描画処理手段は、圧縮データによる入力描画コマンドに対し、最初のバンドで圧縮データを復元処理し、該復元処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項4】
請求項1乃至3のいずれかに記載された画像処理装置において、
前記描画処理手段は、ベジェ(Bezier)曲線形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項5】
請求項1乃至4のいずれかに記載された画像処理装置において、
前記描画処理手段は、ベクターグラフィックス形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項6】
請求項2乃至5のいずれかに記載された画像処理装置において、
前記描画処理手段は、描画コマンドの描画範囲をそれぞれのコマンドのキャッシュから得ることを特徴とする画像処理装置。
【請求項7】
請求項2乃至5のいずれかに記載された画像処理装置において、
前記描画処理手段は、描画コマンドの描画範囲を前記判定専用のデータとして保持することを特徴とする画像処理装置。
【請求項8】
請求項1乃至7のいずれかに記載された画像処理装置において、
前記描画処理手段から出力される描画データを用いてバンド単位で印刷処理を行うエンジンを有することを特徴とする画像処理装置。
【請求項9】
請求項8に記載された画像処理装置において、
前記描画処理手段から前記エンジンへの描画データの受け渡しをバンド単位のメモリを用いて行うことを特徴とする画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−181944(P2007−181944A)
【公開日】平成19年7月19日(2007.7.19)
【国際特許分類】
【出願番号】特願2006−453(P2006−453)
【出願日】平成18年1月5日(2006.1.5)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】