(57)【要約】【課題】    ホストでディスプレイリストを作成しないで入力されたＰＤＬ描画コマンドをプリンタ側でバンディング方式で処理する際、現行の描画対象バンドに描画しないコマンドの処理を最小限に止め、処理の効率化を図る。【解決手段】  図形描画処理部は、描画コマンド（任意のベクターグラフフィックス）の１つを中間データメモリから受取ると、処理の始めに、このコマンドが、現行の描画対象バンドの領域に該当するコマンドであるか否かをコマンド（中間データ）に指示された描画範囲から判定する（Ｓ１０１）。この結果、バンド領域内のコマンドに対してだけ、レンダリングやページメモリへのピクセルの描き出しを行う（Ｓ１０２〜１０４）。この方法により、従来のバンド毎に全体を描画した後、対象バンドの結果のみを残す、という低効率の処理を改善できる。【選択図】          図５
2007181944.tif 000002
【特許請求の範囲】
【請求項１】
入力された描画コマンドをバンディング処理方式で描画データへ処理する描画処理手段を有する画像処理装置であって、
前記描画処理手段は、入力描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、該当コマンドと判定されたことを条件に描画処理を実行し、描画処理によって描き出した描画ピクセルが現行の描画対象バンド内にあるか否かを判定し、バンド内と判定されたことを条件に該描画ピクセルをバンドの描画データとして出力する描画処理制御手段を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載された画像処理装置において、
前記描画処理手段は、入力描画コマンドのパラメータにより示される描画範囲をもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載された画像処理装置において、
前記描画処理手段は、圧縮データによる入力描画コマンドに対し、最初のバンドで圧縮データを復元処理し、該復元処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項４】
請求項１乃至３のいずれかに記載された画像処理装置において、
前記描画処理手段は、ベジェ（Bezier）曲線形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項５】
請求項１乃至４のいずれかに記載された画像処理装置において、
前記描画処理手段は、ベクターグラフィックス形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とする画像処理装置。
【請求項６】
請求項２乃至５のいずれかに記載された画像処理装置において、
前記描画処理手段は、描画コマンドの描画範囲をそれぞれのコマンドのキャッシュから得ることを特徴とする画像処理装置。
【請求項７】
請求項２乃至５のいずれかに記載された画像処理装置において、
前記描画処理手段は、描画コマンドの描画範囲を前記判定専用のデータとして保持することを特徴とする画像処理装置。
【請求項８】
請求項１乃至７のいずれかに記載された画像処理装置において、
前記描画処理手段から出力される描画データを用いてバンド単位で印刷処理を行うエンジンを有することを特徴とする画像処理装置。
【請求項９】
請求項８に記載された画像処理装置において、
前記描画処理手段から前記エンジンへの描画データの受け渡しをバンド単位のメモリを用いて行うことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＤＬ（ページ記述言語）等の画像出力用のデータ形式で記述された描画コマンドの入力を受付け、描画データとして処理し、出力する画像処理装置に関し、特にバンディング方式に係る処理を画像処理装置側で負う場合（ホスト機に負担させない）の処理の効率化を可能とした前記画像処理装置に関する。
【背景技術】
【０００２】
従来から、画像出力機（例えば、プリンタ）に対して出力要求を行う場合、通常、ホスト機（例えば、ＰＣ：パーソナルコンピュータ）で作成されたＰＤＬ（ページ記述言語）形式のデータを画像出力機へ出力することにより行われる。
プリンタを例にとると、ホストＰＣが作成する印刷（ＰＤＬ）データは、描画コマンドの集合であり、描画コマンドの中には文字、グラフィック、イメージなどの種類が、それぞれの特徴に従ったデータ表現をとって存在し、描画コマンドを受取るプリンタ側では、それぞれデータの種類に対応した描画（レンダリング）処理により、プリント出力用のデータを生成する。
また、プリンタ側で行う描画処理においては、ページ毎に送られてくる印刷データに対し、リソースを効率的に使用するために、ページを複数のバンドに区切り（後記の図２に関する説明、参照）、バンド単位でプリンタエンジンへ入力する描画データを処理する（以下「バンディング処理」或いは「バンディング」と記す場合、この処理を指す）方法をとり、より少ないリソースでも処理速度が維持できるようにしている。
ところで、バンディング処理を行う際に、ホストＰＣ側でこの処理に対応した印刷データを作成する方法によって、印刷処理全体の効率を良くすることが可能であり、このような方法による従来技術として、例えば、下記特許文献１を示すことができる。
【特許文献１】特開２００４−３３４４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
バンディングに対応する処理をホストＰＣ側で負う上記の方法は、ホストＰＣのリソースが十分である場合に、有効な方法である。従って、ＰＣや他のホスト機でも、リソースが十分ではない環境では、バンディングに対応する処理を行えなかったり、環境によっては、バンディングに対応する処理による負荷の増大を避けたい、といったケースもある。このような場合には、プリンタ側でこの処理を負担しなければならない。
プリンタ側で行うバンディングに対応する処理は、ホスト側で行う従来方式と同様に、バンド毎に分類されたディスプレイリストにデータを構成し直す方式が採用可能である（後記の図３に関する説明、参照）。ただ、この処理を行うには、リソースが必要である。
プリンタ側でレンダラーの処理としてバンディングに対応する処理を行う場合、処理に必要なリソースが確保できない場合には、印刷データ（描画コマンド）全体を各バンド毎に描画していく方法をとらざるを得ない（後記の図４に関する説明、参照）。しかしながら、この従来の方法は、処理効率という点で非常に劣っている。
本発明は、ホスト機から入力されてくる描画コマンドをバンディング方式の描画データへ処理することが可能な画像処理装置における上記した従来の方法の問題に鑑み、これを解決するためになされたもので、描画コマンドを受付ける画像処理装置側でバンディングに対応する処理を行う際に、描画対象となっているバンドに描画しない描画コマンドの処理を最小限に止めることにより、処理の効率化を図ることを解決すべき課題する。
【課題を解決するための手段】
【０００４】
請求項１の発明は、入力された描画コマンドをバンディング処理方式で描画データへ処理する描画処理手段を有する画像処理装置において、前記描画処理手段は、入力描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、該当コマンドと判定されたことを条件に描画処理を実行し、描画処理によって描き出した描画ピクセルが現行の描画対象バンド内にあるか否かを判定し、バンド内と判定されたことを条件に該描画ピクセルをバンドの描画データとして出力する描画処理制御手段を備えたことを特徴とし、このようにすることによって上記課題を解決するものである。
【０００５】
請求項２の発明は、請求項１に記載された画像処理装置において、前記描画処理手段は、入力描画コマンドのパラメータにより示される描画範囲をもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
請求項３の発明は、請求項１又は２に記載された画像処理装置において、前記描画処理手段は、圧縮データによる入力描画コマンドに対し、最初のバンドで圧縮データを復元処理し、該復元処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
【０００６】
請求項４の発明は、請求項１乃至３のいずれかに記載された画像処理装置において、前記描画処理手段は、ベジェ（Bezier）曲線形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
請求項５の発明は、請求項１乃至４のいずれかに記載された画像処理装置において、前記描画処理手段は、ベクターグラフィックス形式で表現された入力描画コマンドに対し、最初のバンドで描画処理し、該描画処理により得られるデータをもとに該コマンドの描画範囲の端部位置情報を取得し、取得した端部位置情報を用いて、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かの前記判定を行うことを特徴とし、このようにすることによって上記課題を解決するものである。
【０００７】
請求項６の発明は、請求項２乃至５のいずれかに記載された画像処理装置において、前記描画処理手段は、描画コマンドの描画範囲をそれぞれのコマンドのキャッシュから得ることを特徴とし、このようにすることによって上記課題を解決するものである。
請求項７の発明は、請求項２乃至５のいずれかに記載された画像処理装置において、前記描画処理手段は、描画コマンドの描画範囲を前記判定専用のデータとして保持することを特徴とし、このようにすることによって上記課題を解決するものである。
【０００８】
請求項８の発明は、請求項１乃至７のいずれかに記載された画像処理装置において、前記描画処理手段から出力される描画データを用いてバンド単位で印刷処理を行うエンジンを有することを特徴とし、このようにすることによって上記課題を解決するものである。
請求項９の発明は、請求項８に記載された画像処理装置において、前記描画処理手段から前記エンジンへの描画データの受け渡しをバンド単位のメモリを用いて行うことを特徴とし、このようにすることによって上記課題を解決するものである。
【発明の効果】
【０００９】
（１）  本発明によると、描画コマンドを受付ける画像処理装置側でバンディングに対応する処理を行う（即ち、ホスト機側ではバンディング処理に対応するディスプレイリストの作成は不要になる）際、描画処理の実行に先立って入力描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、この判定結果により、描画処理を開始し、描き出した描画ピクセルが現行の描画対象バンド内にあると判定されたことを条件に該描画ピクセルを描画データとして出力することで、現行の描画対象バンドに描画しない描画コマンドの処理を最小限に止めるようにしたことにより、従来の描画コマンド全体を各バンド毎に描画していく方法に比べて、処理の効率化を図ることが可能となる。
（２）  また、現行の描画対象バンドに該当するコマンドであるか否かを、描画コマンドの種類に適応した判定方法で対応すること、即ちイメージ、文字、矩形などに対しては、コマンドパラメータにより示される描画範囲をもとに該描画範囲の端部位置情報を取得し（請求項２）、圧縮データによる入力描画コマンドに対しては、最初のバンドで復元処理し得られるデータをもとに該描画範囲の端部位置情報を取得し（請求項３）、ベジェ（Bezier）曲線形式で表現された入力描画コマンドに対しては、最初のバンドで描画処理し得られるデータをもとに該描画範囲の端部位置情報を取得し（請求項４）、ベクターグラフィックス形式で表現された入力描画コマンドに対しては、最初のバンドで描画処理し得られるデータをもとに該描画範囲の端部位置情報を取得する（請求項５）ことで得られる情報を用いることによって、処理を最適化することが可能になる。
（３）  また、各描画コマンドごとに取得される描画範囲の情報を描画キャッシュ或いは描画コマンドに専用のデータとして付加することにより、複数のバンドに跨る描画コマンドに適応し、処理を最適化することが可能になる（請求項６，７）。
（４）  また、プリンタ等の印刷出力を行う画像処理装置において、上記（１）、〜（３）の発明の効果を具現化することにより、該画像処理装置のパフォーマンスを向上させることが可能になる（請求項８，９）。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態に係わる画像処理装置を説明する。
以下に示す実施形態は、本発明の画像処理装置をプリンタに適用した例を示す。
適用対象となるプリンタは、ネットワーク等の通信手段により外部のホスト機（ＰＣ或いは画像機器）と接続され、ホスト機からネットワークを介して受取るＰＤＬ（ページ記述言語）形式の描画コマンド（印刷データ）をもとに描画処理を行うことにより、プリント出力用（描画）データを生成し、生成した描画データを用いて印刷出力を行う。
本案に係わる描画処理は、後述するようにバンディング方式で行う。バンディングに対応する描画処理は、プリンタに装備されるプリンタコントローラの機能として実現し得る。また、本案のバンディングに対応する描画処理のために描画コマンドの一部に新たに付加されるデータは、ホスト機のコンピュータ側のプリンタドライバに、処理に必要な機能を搭載させることにより実施し得る。
なお、プリンタコントローラの描画処理機能は、コントローラを構成するコンピュータ（ＣＰＵ）に後述する実施形態に示す描画処理方法の各処理手順を実行させるためのプログラムを搭載し、プログラムを駆動することにより実施することが可能である。
また、適用の対象となるプリンタは、ＰＤＬ形式の描画コマンド（印刷データ）からページメモリ上に描画データを生成するまでの描画処理過程を要する装置であれば、プリント出力における紙媒体への作像方式は問わない。
【００１１】
図１は、本発明の実施形態に係るプリンタの概略構成を示す図である。
図１に示すプリンタ２は、ホスト機としてのＰＣ１から受け取った描画コマンドに従いプリント出力処理を行うために必要な描画データを処理し、プリンタの各動作部を制御するプリンタ コントローラ３と、プリンタ コントローラ３からの描画データ出力により紙等の媒体に印字を行うプリンタ エンジン４を有する。
プリンタ コントローラ２内には、入力描画コマンドからプリンタ エンジン４に出力する描画データを生成するまでのデータ処理に必要な要素として、インタープリタ１０、図形描画処理部１１、中間データメモリ２０、ページメモリ２３、及びＣＰＵ１４を備える。なお、図１中には、インタープリタ１０及び図形描画処理部１１をＣＰＵ１４から独立した要素として示しているが、ソフトウェアにより実施する場合、ＣＰＵ１４が駆動するソフトウェアによって実現する機能である。
描画処理のフローの概略を説明すると、プリンタ２に処理を要求するホストＰＣ１は、ＰＣ内で作成された文書（ページデータ）に対する印刷要求の指示に従い、文書をプリンタドライバにかけ、ＰＤＬ形式の描画コマンドよりなる印刷データをプリンタ２に転送する。
印刷データを受取るプリンタ２側では、プリンタコントローラのインタープリタ１０で受取ったＰＤＬ形式の描画コマンド（印刷データ）を解読し、この結果、描画処理に適した形式のデータとして得られる中間データを中間データメモリ２０に格納する。
次いで、図形描画処理部１１は、中間データメモリ２０から渡される中間データとして表された描画コマンドに従って、レンダリング処理を行い、ページメモリ２３へ描画ピクセルを描き出す描画処理を行う。この後、ページメモリ２３展開された描画データによりプリンタエンジン４により紙面への印字を行う。
【００１２】
ここに、上記に概略を示した描画処理は、バンディング方式で行われ、描画データはバンド単位でページメモリ２３を介してプリンタエンジン４へ出力される。
バンディング方式による処理は、図２に示すように、プリンタコントローラ３に入力されるページ単位の描画コマンドの集合よりなる印刷データ（図中の（Ａ）にて示す）に対し、ページを複数のバンドに区切って（図中の（Ｂ）にて示すように副走査方向に例えば４分割する）描画処理を行い、得られるバンド単位の描画データをプリンタエンジン４へ出力する。この方式によって、プリンタ２内のリソースを効率的に使用し、より少ないリソースでも所定の処理速度が維持できるようにする。
ところで、処理の対象となる文書（ページデータ）は、ホストＰＣ１が各種のアプリケーションを用いて作成、編集するのが普通で、この文書をもとにプリンタドライバで作成される印刷データは、各種の描画コマンドの集合となっている。つまり、コマンドの中には、文字、グラフィック、イメージなどの種類があり、それぞれの特徴に従ったデータ表現をとって存在する。従って、描画コマンドを受取るプリンタ側では、それぞれデータの種類に対応した描画（レンダリング）処理により、プリント出力用のデータを生成する。
【００１３】
ただ、バンディング処理を行う場合には、これに対応する処理を行う必要があり、従来、図３に示すように、各バンドを描画するためのコマンドをバンド毎に分類するディスプレイリストに印刷データを構成し直す方式が採用されている。なお、図３は、図２（Ａ）の印刷データに対するディスプレイリストの構成概念を示すもので、図３中に例示する線分を表すグラフィック描画コマンドのように、複数のバンドに跨るコマンドの場合には、線分が属するバンドにそれぞれ分解するように、印刷データを構成し直す必要がある。
上記のディスプレイリストに印刷データを構成し直す方式は、処理用に相当のリソースを確保すること等の条件が必要になることから、従来は、専らホスト側で行われていた。しかしながら、上記の［発明が解決しようとする課題］の項で述べたように、本案では、プリンタ側でこのバンディングに対応する処理を負うようにし、そのための手段を備えるようにする。
プリンタ側で負うバンディングに対応する処理として、従来ホスト側で行っていたと同様に、ディスプレイリストに印刷データを構成し直す方式の処理を行うことが考えられるが、装置の構成によっては、この処理に必要なリソースを確保できない、といった状況になり得る。
このような場合へ対応可能な方法として、図４に示すように、ディスプレイリストの無い印刷データ（描画コマンド）をバンド［１］〜［４］毎に描画していく方法をレンダラーの処理として行う方法を採ることができる。しかしながら、図４に示す方法は、ディスプレイリストがないので、同図に例示する線分を表すグラフィック描画コマンドのように、複数のバンドに跨るコマンドがある場合等を考慮すると、１つのバンドを描画する場合でも、印刷データ（描画コマンド）全体を描画し、対象のバンドの結果のみを残す処理を各バンドで順に繰り返し行う（例えば、バンド［１］の場合には、全体を描画した後、対象のバンド［１］の結果のみを残す、という処理を行い、この方法を［２］［３］・・の各バンドで順に繰り返す）。従って、処理効率という点で非常に劣っている。
【００１４】
そこで、本案では、描画処理の対象バンドに描画しない描画コマンドの処理を最小限に止めるようにする（例えば、図４に例示する線分を表すグラフィック描画コマンドのように、複数のバンドに跨るコマンドの場合でも、描画処理の対象バンドに関係の有るコマンドのみとして、関係しないコマンドの処理は行わない）。この処理方法により、描画コマンド全体を各バンド毎に描画していく上記の方法に比べて、処理の効率化を図ることを可能とする。
この処理方法を実現するために、本実施形態では、ホストＰＣ１から受取った描画コマンドに対しバンディング方式で描画処理を行う際、処理の実行に先立って、描画コマンドが現行の描画対象バンドに該当するコマンドであるか否かを判定し、この判定結果により、描画処理を開始し、又描き出した描画ピクセルが現行の描画対象バンド内にあると判定されたことを条件に該描画ピクセルを描画データとして出力する描画処理を行うようにする。
以下には、プリンタコントローラ３により制御される上記描画処理に係る実施形態として、「実施形態１」〜「実施形態４」を示す。「実施形態１」〜「実施形態４」は、描画コマンドのデータ形式が、それぞれ任意のベクターグラフィックス、圧縮データ、ジョイントやキャップが含まれるベクターグラフィックス及びベジェ（Bezier）曲線の各形式）に適応し得るようにした形態に係る例を示す。
【００１５】
「実施形態１」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理を任意のベクターグラフィクスに適応し得るようにした形態に係る例を示す。
図５は、本実施形態の描画処理（I）のフロー図を示す。
図５に示す描画処理（I）のフローによると、プリンタコントローラ３の図形描画処理部１１は、中間データメモリ２０に格納されたＰＤＬ形式の描画コマンド（中間データ）から取出されたコマンドの１つが渡されると、描画処理の始めに、このコマンドが、今描画対象としているバンド（現行の描画対象バンド）の領域に該当するコマンドであるか否かを判定する（ステップＳ１０１）。ベクターグラフィクスの描画コマンドの場合、中間データメモリ２０から受取る中間データに描画範囲が指示されている（描画範囲はホストＰＣ１からの入力描画コマンドに付与されているパラメータをインタープリタ１０で解析される）。従って、上記の判定は、中間データに示されている描画範囲を現行の描画対象バンドの領域情報（副走査方向の上端、下端位置として有効画像出力領域、バンド数等に応じ予め設定される）に照らして、判断することができる。
なお、描画コマンドがイメージや文字、矩形などの場合、コマンドパラメータから容易に必要な情報を得ることができるので、当該描画コマンド（中間データ）に対する判定処理の中で描画範囲を求めることが可能である。
また、ホストＰＣ１で描画コマンドをスプールするときに、該コマンドの描画範囲を正確に知ることができる方法が採用可能な場合は、この方法によって検知した描画範囲における上端、下端位置情報を描画コマンドに付属情報として付与し、その後、プリンタコントローラ３で描画コマンドに付属させた描画範囲の上端、下端位置情報を取出して上記判定に用いるようにシステムを構成しても良い。
【００１６】
ステップＳ１０１で現行の描画対象バンドの領域に該当するコマンドであるか否かを判定した結果、領域外のコマンドである場合には、レンダリングやページメモリ２３へのピクセルの描き出しを行う描画処理は不要であるから、現行の描画対象バンドが最後のバンドではないことを確認して（ステップＳ１０５-NO）、描画対象バンドを次のバンドに対する描画処理に移行させ（ステップＳ１０６）、ステップＳ１０１に戻し、次のバンドの描画処理を行う。
他方、ステップＳ１０１で領域内のコマンドであると判定された場合には、中間データに指示されている描画コマンド（描画範囲、描画内容）をもとに、主・副走査によってプリント出力面上に描かれる描画ピクセルを指定するスキャンライン変換を行い（ステップＳ１０２）、この変換結果に従い描画キャッシュを作成する（ステップＳ１０３）。描画キャッシュは、スキャンライン変換以降に、描画ピクセルをそれぞれの属するバンドメモリへ描画データとして格納するために、一時的に描画データを記憶しておく操作である。
次いで、描画キャッシュされたデータに対し、現行の描画対象バンドに属するデータのCLIP処理を行い、切取った現行バンドに属するデータをバンドメモリに描画する（ステップＳ１０４）。ここでは、現行の描画対象バンド範囲の下端位置を示すスキャンライン情報によって、描画コマンドに従ってプリント出力面上に描かれる描画データがこのバンドに属することをピクセルの単位で判断し、現行バンドの描画データとして切取り、バンドメモリに描き出す。なお、バンドメモリは、ページメモリ２３内に領域が確保される。
ステップＳ１０４で今処理の対象としている描画コマンドの現行の描画対象バンドへの描画処理を終えるので、現行の描画対象バンドが最後のバンドではないことを確認して（ステップＳ１０５-NO）、描画対象バンドを次のバンドに対する描画処理に移行させ（ステップＳ１０６）、ステップＳ１０１に戻し、次のバンドの描画処理を行う。
ステップＳ１０５で現行の描画対象バンドが最後のバンドであることを確認したところで、今処理の対象とした描画コマンドに対する全てのバンドへの描画処理を終了するので、次の描画コマンドに処理を進める。
【００１７】
「実施形態２」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理を圧縮データが含まれるコマンドに適応し得るようにした形態に係る。
圧縮データが含まれる描画コマンドにおいては、中間データから直ちに描画範囲を正確に知ることができない場合が生じ得る。そこで、圧縮データが含まれる描画コマンドに対しては、最初のバンドに対する処理に先立ち、該コマンドの圧縮データを復元し、展開することによって正しい描画範囲を求め、求めた描画範囲情報をもとにこの描画コマンドに対する以降のバンディング処理による描画を実行する。
図６は、このバンディング処理を行うための手段として、描画範囲判定処理部１５を備えたプリンタ２の概略構成を示す。
描画範囲判定処理部１５は、圧縮された描画コマンドを復元し、展開することにより得られるデータをもとに描画範囲を求め、求めた描画範囲情報によって上記バンディング処理を管理する機能を提供する。この機能の中には、描画コマンドに対するバンド判定やバンド判定を行うために求めた描画範囲情報を中間データに追加する処理を行う機能を含む。
なお、図６に示す本実施形態に係るプリンタ２の構成は、描画範囲判定処理部１５が付加された以外は、基本的に上記図１のプリンタと変わらないので、共通部分については、先の説明を参照することとし、ここでは記載を省略する。
【００１８】
図６は、本実施形態の描画処理（II）のフロー図を示す。
図６に示す描画処理（II）のフローによると、プリンタコントローラ３の描画範囲判定処理部１５は、中間データメモリ２０に格納されたＰＤＬ形式の描画コマンド（中間データ）から取出された圧縮データが含まれる描画コマンドが渡されると、描画処理の始めに、圧縮された描画コマンドを復元し、展開する処理を行う。
この処理手順に従うので、処理フローでは、現行の描画対象バンドが最初のバンドであることを確認できれば（ステップＳ２０１-YES）、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行うことなく、圧縮された描画コマンドを復元し、展開する処理を実行する（ステップＳ２０３）。このとき、展開されたピクセルは実際の描画位置上に存在するので、展開結果から描画範囲を正しく求めることができ、また、求めた描画範囲情報を以降のバンディング処理に使用（即ち、２つ目以降のバンドに対する描画範囲判定に使用）するために中間データメモリ２０に格納されている該当する描画コマンドの中間データに付属情報として追加する。
図形描画処理部１１は、ステップＳ２０３で展開された画像ピクセルに対し、最初の描画バンドに属するデータのCLIP処理を行い、切取ったデータをバンドメモリの最初のバンドに属するデータとしてバンドメモリに描画する（ステップＳ２０４）。なお、最初の描画バンドに展開された画像ピクセルが無ければ、ステップＳ２０４は行わない。
【００１９】
ステップＳ２０４で最初の描画対象バンドの処理を終えるので、現行の描画対象バンドが最後のバンドではないことを確認して（ステップＳ２０５-NO）、描画対象バンドを次のバンドに対する描画処理に移行させ（ステップＳ２０６）、ステップＳ２０１に戻す。２つ目以降のバンドについては、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行う（ステップＳ２０２）。この判定は、最初のバンドの処理フローにおける圧縮データ展開処理（ステップＳ２０３）で中間データに付属情報として追加した描画範囲情報を用いることができるので、ここに示されている描画範囲を現行の描画対象バンドの領域情報に照らして、判断することができる。
ステップＳ２０２で現行の描画対象バンドの領域に該当するコマンドであるか否かを判定した結果、領域外のコマンドである場合には、ページメモリ２３へのピクセルの描き出しを行う描画処理は不要であるから、現行の描画対象バンドが最後のバンドではないことを確認して（ステップＳ２０５-NO）、描画対象バンドを次のバンドに対する描画処理に移行させ（ステップＳ２０６）、ステップＳ２０１に戻し、次のバンドの描画処理を行う。
【００２０】
他方、ステップＳ２０２で領域内のコマンドであると判定された場合には、最初のバンドの処理フローにおける圧縮データ展開処理（ステップＳ２０３）で既に展開されている画像ピクセルに対し、現行の描画対象バンドに属するデータのCLIP処理を行い、切取ったデータをバンドメモリの現行の描画対象バンドに属するデータとしてバンドメモリに描画する（ステップＳ２０４）。
ステップＳ２０４で現行の描画対象バンドへの描画処理を終えるので、現行のバンドが最後のバンドではなければ（ステップＳ２０５-NO）、描画対象バンドを次のバンドに対する描画処理に移行させる（ステップＳ２０６）、というように、順次バンドを変えて処理を進めていく。
ステップＳ２０５で現行の描画対象バンドが最後のバンドであることを確認したところで、今処理の対象としている描画コマンドに対する全てのバンドへの描画処理を終了するので、次の描画コマンドに処理を進める。
【００２１】
「実施形態３」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理をベクターグラフィックス形式のデータが含まれるコマンドに適応し得るようにした形態に係る。
ベクターグラフィックスのジョイントやキャップがこの種の形式のデータに含まれる描画コマンドにおいては、ジョイントやキャップの種類により形状が異なるために描画範囲に違いが生じるので、中間データから直ちに描画範囲を正確に知ることができない。そこで、中間データにジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドに対しては、最初のバンドに対する処理で、該コマンドの描画範囲の有無に係らずに、スキャンライン変換を行うことによって正しい描画範囲を求め、求めた描画範囲情報をもとにこの描画コマンドに対する２つ目以降のバンディング処理による描画を実行する。
図８は、このバンディング処理を行うための手段として、描画範囲判定処理部１５及び描画キャッシュ２１を備えたプリンタ２の概略構成を示す。
描画キャッシュ２１には、中間データにジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドのスキャンライン変換を行うことにより得られる描画データがキャッシュされる。
描画範囲判定処理部１５は、描画キャッシュ２１にキャッシュされた描画データを参照することにより描画範囲を得、得られた描画範囲情報によって、描画コマンドが現行の描画対象バンドで処理するコマンドであるか否かの描画範囲判定を行うことで、所期のバンディング処理を管理する。
なお、図８に示す本実施形態に係るプリンタ２の構成は、描画範囲判定処理部１５及び描画キャッシュ２１が付加された以外は、基本的に上記図１のプリンタと変わらないので、共通部分については、先の説明を参照することとし、ここでは記載を省略する。
【００２２】
図９は、本実施形態の描画処理（III）のフロー図を示す。
図９に示す描画処理（III）のフローによると、プリンタコントローラ３の描画範囲判定処理部１５は、中間データメモリ２０に格納されたＰＤＬ形式の描画コマンド（中間データ）から取出されたジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドが渡されると、最初のバンドに対する処理で（即ち、このバンド領域にコマンドの描画範囲が有るか無いかの如何に係らず）、中間データに指示されているベクターグラフィックス形式の描画コマンドをもとにスキャンライン変換等を行う。
この手順で処理を行うので、処理フローでは、現行の描画対象バンドが最初のバンドであることを確認できれば（ステップＳ３０１-YES）、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行うことなく、ジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンド（中間データ）に基づいて、主・副走査によってプリント出力面上に描かれる描画ピクセルを指定するスキャンライン変換を行い（ステップＳ３０３）、この変換結果に従い描画キャッシュ２１を作成する（ステップＳ３０４）。
このとき、描画キャッシュ２１に展開されたピクセルは実際の描画位置上に存在するので、展開結果から描画範囲を正しく求めることができるので、求めた描画範囲情報を２つ目以降のバンドに対する描画範囲の判定に使用する。また、描画キャッシュのデータは、以降のバンディング処理に使用、即ち、描画ピクセルをそれぞれの属するバンドメモリへ描画データとして格納する処理にも使用する。
最初のバンドを描画対象とする処理フローでは、図形描画処理部１１は、ステップＳ３０４で描画キャッシュ２１に作成された画像ピクセルに対し、最初の描画バンドに属するデータのCLIP処理を行い、切取ったデータを最初のバンドに属するデータとしてバンドメモリに描画する（ステップＳ３０５）。なお、最初の描画バンドに展開された画像ピクセルが無ければ、ステップＳ３０５は行わない。
【００２３】
ステップＳ３０５で最初の描画対象バンドの処理を終えるので、現行の描画対象バンドが最後のバンドではないことを確認して（ステップＳ３０６-NO）、描画対象バンドを次のバンドに対する描画処理に移行させ（ステップＳ３０７）、ステップＳ３０１に戻す。２つ目以降のバンドについては、描画コマンドが現行の描画対象バンドの領域に該当するコマンドであるか否かを判定する描画範囲判定を行う（ステップＳ３０２）。この判定は、最初のバンドの処理フローにおける描画キャッシュの作成処理（ステップＳ３０４）で描画キャッシュ２１に格納した描画範囲情報を用いることができるので、ここに示されている描画範囲を現行の描画対象バンドの領域情報に照らして、判断することができる。
ステップＳ３０２で現行の描画対象バンドの領域に該当するコマンドであるか否かを判定した結果、領域外のコマンドである場合には、ページメモリ２３へのピクセルの描き出しを行う描画処理は不要であるから、現行の描画対象バンドが最後のバンドではないことを確認して（ステップＳ３０６-NO）、描画対象バンドを次のバンドに対する描画処理に移行させ（ステップＳ３０７）、ステップＳ３０１に戻し、次のバンドの描画処理を行う。
【００２４】
他方、ステップＳ３０２で領域内のコマンドであると判定された場合には、最初のバンドの処理フローにおけるスキャンライン変換（ステップＳ３０３）及びスキャンライン変換結果による描画キャッシュの作成（ステップＳ３０４）の処理によって、既に作成されている描画データ（画像ピクセル）に対し、現行の描画対象バンドに属するデータのCLIP処理を行い、切取ったデータを現行の描画対象バンドに属するデータとしてページメモリ２３に確保したバンドメモリ領域に描画する（ステップＳ３０５）。
ステップＳ３０５で現行の描画対象バンドへの描画処理を終えるので、現行のバンドが最後のバンドではなければ（ステップＳ３０６-NO）、描画対象バンドを次のバンドに対する描画処理に移行させる（ステップＳ３０７）、というように、順次バンドを変えて処理を進めていく。
ステップＳ３０６で現行の描画対象バンドが最後のバンドであることを確認したところで、今処理の対象としている描画コマンドに対する全てのバンドへの描画処理を終了するので、次の描画コマンドに処理を進める。
【００２５】
「実施形態４」
この実施形態は、描画処理の対象バンドに対する描画コマンドの処理を最小限に止めるようにする本案のバンディング方式による描画処理をベジェ（Bezier）曲線形式で表現されたデータが含まれるコマンドに適応し得るようにした形態に係る。
ベジェ（Bezier）曲線形式で表現されたデータが含まれる描画コマンドにおいては、コマンド（中間データ）に指定されている座標そのものが正確な描画範囲とはならないので、中間データから直ちに正しい描画範囲を知ることができない。そこで、中間データにベジェ（Bezier）曲線形式で表現されたデータが含まれる描画コマンドに対しては、最初のバンドに対する処理で、該コマンドの描画範囲の有無に係らずに、スキャンライン変換を行うことによって正しい描画範囲を求め、求めた描画範囲情報をもとにこの描画コマンドに対する２つ目以降のバンディング処理による描画を実行する。
ベジェ（Bezier）曲線形式で表現されたデータが含まれる描画コマンドに対する上記バンディング処理を行うための手段は、上記「実施形態３」に示した、ジョイントやキャップが含まれるベクターグラフィックス形式の描画コマンドに対するバンディング処理におけると同様の手段で対応することが可能である。
【００２６】
つまり、上記「実施形態３」において、バンディング処理を行うための手段として設けるとした、描画範囲判定処理部１５及び描画キャッシュ２１を図８に示す構成で備える。また、図９に示す処理フローに従い、最初のバンドに対する処理フローで、描画コマンドのスキャンライン変換を行い、得られる描画データをキャッシュし（ステップＳ３０１、Ｓ３０３、Ｓ３０４）、これらの処理を行った後、即ち２つ目のバンド以降の処理フローにおいて、先にキャッシュされた描画データを参照し、得られる正確な描画範囲情報によって、描画範囲判定を行い（ステップＳ３０２）、バンディング処理を管理する、という描画処理を実行する。
ただ、上記の処理において、描画コマンドのスキャンライン変換に用いる手段は、描画コマンドがジョイントやキャップが含まれるベクターグラフィックス形式のデータであるか（実施形態３）、ベジェ（Bezier）曲線形式で表現されたデータであるか（本実施形態）によって、異なる処理機能を用いなければならないので、当然、それぞれの処理に必要な機能を用意する必要がある。
上記のようにして、上記「実施形態３」に示したと同様の手段を適用することにより、ベジェ（Bezier）曲線形式で表現されたデータが含まれる描画コマンドに対し、所期のバンディング処理を実施することができる。
【００２７】
なお、上記した実施形態では、プリンタを例にしたが、ＰＤＬデータをもとに可視化像を出力する画像出力装置であれば、印刷出力（紙媒体への出力）に限らず、ディスプレイへ出力する画像処理装置に実施しても良い。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係る画像処理装置（プリンタ）の概略構成を示す。
【図２】バンディング方式による処理概念の説明図を示す。
【図３】ディスプレイリストに印刷データを構成し直す方式による処理概念の説明図を示す。
【図４】ディスプレイリストの無い印刷データをバンド［１］〜［４］毎に描画していく方式による処理概念の説明図を示す。
【図５】図１に示したプリンタのコントローラにおける描画処理（I）のフロー図を示す。
【図６】本発明の実施形態２に係る画像処理装置（プリンタ）の概略構成を示す。
【図７】図６に示したプリンタのコントローラにおける描画処理（II）のフロー図を示す。
【図８】本発明の実施形態３，４に係る画像処理装置（プリンタ）の概略構成を示す。
【図９】図８に示したプリンタのコントローラにおける描画処理（III）のフロー図を示す。
【符号の説明】
【００２９】
１・・ホストＰＣ、２・・画像処理装置（プリンタ）、３・・プリンタコントローラ、４・・プリンタエンジン、１０・・インタープリタ、１１・・図形描画処理部、１４・・ＣＰＵ、１５・・描画範囲判定処理部、２０・・中間データメモリ、２１・・描画キャッシュ、２３・・ページメモリ。
【図１】
2007181944.tif 000003
【図２】
2007181944.tif 000004
【図３】
2007181944.tif 000005
【図４】
2007181944.tif 000006
【図５】
2007181944.tif 000007
【図６】
2007181944.tif 000008
【図７】
2007181944.tif 000009
【図８】
2007181944.tif 000010
【図９】
2007181944.tif 000011