(57)【要約】【課題】画素毎のデータへの展開処理、色変換処理、及び圧縮処理を行った後に印刷装置へ画像データを送信する処理をホスト装置に実行させるドライバプログラムであって、従来よりも適切なデータ処理法及び／又はデータ送信方法を選択することのできるドライバプログラム等を提供する。【解決手段】アプリケーションから受け取ったオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮して印刷装置に送信する処理を、ホスト装置に実行させるドライバプログラムが、前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測する処理を前記ホスト装置に実行させる。【選択図】  図２
2006113813.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから受け取ったオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮して印刷装置に送信する処理を、ホスト装置に実行させるドライバプログラムであって、
前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測する処理を前記ホスト装置に実行させる
ことを特徴とするドライバプログラム。
【請求項２】
請求項１において、
前記データ量の予測は、前記各オブジェクトの、前記オブジェクトの種類によって定めるデータ圧縮率を表す度合いと前記描画領域の面積との積、の累計値に基づいて行われる
ことを特徴とするドライバプログラム。
【請求項３】
請求項１において、
前記データ量の予測は、
前記各オブジェクトの、前記オブジェクトの種類によって定めるデータ圧縮率を表す度合いと前記描画領域の面積との積、の１ページ内の累計値と、
当該１ページ内に描画される全てのオブジェクトを含む矩形の面積と、に基づいて行われる
ことを特徴とするドライバプログラム。
【請求項４】
請求項２あるいは請求項３において、
前記データ量の予測は、前記各オブジェクトに定められている、前記オブジェクトを重ね合わせて描画する際の論理演算処理を示す論理式を考慮して行われる
ことを特徴とするドライバプログラム。
【請求項５】
請求項１乃至請求項４のいずれかにおいて、
前記印刷装置に送信する処理の方法が、前記予測されたデータ量に基づいて、前記展開処理の前に決定される
ことを特徴とするドライバプログラム。
【請求項６】
ホスト装置がアプリケーションから出力されるオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮して印刷装置に送信する際に、当該印刷装置に送信するデータのデータ量予測方法であって、
前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測する
ことを特徴とするデータ量予測方法。
【請求項７】
アプリケーションから受け取ったオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮してホスト装置から印刷装置に送信するデータ転送方法であって、
前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測し、当該予測したデータ量に基づいて前記印刷装置への送信方法を決定する
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に合った画像データを生成して当該印刷装置に送信する処理をホスト装置に実行させるドライバプログラム等に関し、特に、従来よりも適確なデータ処理及びデータ送信を可能とするドライバプログラム等に関する。
【背景技術】
【０００２】
通常、紙などの印刷媒体に印刷を実行する印刷システムにおいては、パーソナルコンピュータなどのホスト装置から印刷データを送信し、当該印刷データを受信した印刷装置が当該印刷データに基づいて上記印刷を実施する。そして、印刷が完了するまでの間に、前記印刷データについては、ホスト装置のアプリケーションから発せられる印刷要求のデータを画素毎の色の濃度値で表した画像データとする展開処理、当該画像データの色表現を印刷装置における色表現に変換する色変換処理、当該色変換後のデータをドットのイメージとする処理等が行われる。
【０００３】
このような印刷システムにおいて、近年、上記色変換の処理までをホスト装置側で行わせる所謂ホストベースの処理が行われるようになっており、かかる場合には、色変換後の画像データがホスト装置側で圧縮された後に印刷装置側へ送信され、印刷装置側では、受信したデータを解凍した後に使用する。また、ホスト装置から送信する画像データの圧縮処理では、通常、印刷媒体１ページ分の範囲を高さ方向に所定長さで分割したバンドという領域ごとに処理が行われる。例えば、上記色変換後の画像データが、Ｙ（イエロー）、Ｍ（マゼンダ）、Ｃ（シアン）、Ｋ（ブラック）で表現されている場合には、当該４色のデータを含む画像データがバンド単位で順次圧縮処理され、印刷装置への送信が可能な状態となる。
【０００４】
このように圧縮処理が行われた後の印刷装置へのデータ送信については、従来から、幾つかの方法でなされていた。その一つの方法は、前述した圧縮処理の順番に従って、圧縮が終了したバンドの画像データから順次印刷装置へ送信する、バンド順次と呼ばれるものである。また、別の方法としては、バンド毎に圧縮処理される画像データをホスト装置側に蓄積しておき、１色ずつ１ページ分の画像データを順番に印刷装置へ送信していく、プレーン順次と呼ばれるものがある。かかる方法は、例えば、下記特許文献１に記載の装置などで採用されている。
【０００５】
印刷装置が、４サイクルのレーザープリンタ等であり、１ページ毎に１色ずつ印刷処理を遂行する装置の場合には、１ページ分の全色の画像データが揃わなくても印刷処理を開始することができるので、かかるプレーン順次のデータ転送を行なうことにより、１ページ分の全色分の画像データを受信するまで印刷処理の開始を待つ必要がない。所謂フライングスタートが可能となる。しかしながら、概ね１ページ分の画像データをホスト装置側に蓄積しなくてはならず、そのためのメモリ容量が必要となるというデメリットがある。一方、前記バンド順次による方法では、ホスト装置側でのデータ蓄積量を少なくすることができるが、上述のフライングスタートが難しいという欠点がある。このように、両方法には、それぞれ、メリット／デメリットがあり、扱うデータや装置の環境等に応じて適宜適切な方法が選ばれるべきである。
【特許文献１】特開２００２−２３６５６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
通常、上述のようなホストベースの印刷システムでは、ホスト装置で行なわれる前述した展開処理以降の処理は、バンド単位で連続して行われ、各処理工程について１ページ分すべてについて処理が終了するのを待つことなく次の処理工程へと移行していく。従って、１ページ分の画像データを印刷装置へ送信する方法については、展開処理を開始する前に決定しておかなければならない。そして、かかる送信方法は、前述の通り、常に適切であるというものはなく、通常、印刷装置へ送信する１ページ分のデータ量によって適切な送信方法が異なってくる。従って、展開処理前に送信方法を決定しなくてはならない従来の場合では、送信方法の決定時に、展開処理、色変換処理、及び圧縮処理後のデータ量はわからず、すなわち、印刷装置へ送信するデータ量は把握しておらず、常に適切な送信方法を決定できるとは限らない。
【０００７】
また、色変換処理や圧縮処理においても幾つかの処理法があり、その中から適切な方法を選択するには、やはり圧縮処理後の印刷装置へ送信するデータの容量を把握しておく方が良い。従って、従来の方法では、上記データ量を把握する前にこれらの処理法を決定しており、常に適切な方法を選択しているとは限らない。
【０００８】
そこで、本発明の目的は、画素毎のデータへの展開処理、色変換処理、及び圧縮処理を行った後に印刷装置へ画像データを送信する処理をホスト装置に実行させるドライバプログラムであって、従来よりも適切なデータ処理法及び／又はデータ送信方法を選択することのできるドライバプログラム等を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の一つの側面は、アプリケーションから受け取ったオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮して印刷装置に送信する処理を、ホスト装置に実行させるドライバプログラムが、前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測する処理を前記ホスト装置に実行させることである。従って、本発明によれば、展開処理以降の処理において、データサイズによって処理法を換えた方がよい処理について、例えば、色変換処理、圧縮処理、印刷装置への送信処理等について、事前にデータサイズを把握しているので適切な方法を選択することが可能となる。
【００１０】
更に、上記の発明において、その好ましい態様は、前記データ量の予測は、前記各オブジェクトの、前記オブジェクトの種類によって定めるデータ圧縮率を表す度合いと前記描画領域の面積との積、の累計値に基づいて行われることを特徴とする。
【００１１】
また、上記の発明において、別の態様は、前記データ量の予測は、前記各オブジェクトの、前記オブジェクトの種類によって定めるデータ圧縮率を表す度合いと前記描画領域の面積との積、の１ページ内の累計値と、当該１ページ内に描画される全てのオブジェクトを含む矩形の面積と、に基づいて行われることを特徴とする。
【００１２】
更に、上記の発明において、好ましい態様は、前記データ量の予測は、前記各オブジェクトに定められている、前記オブジェクトを重ね合わせて描画する際の論理演算処理を示す論理式を考慮して行われることを特徴とする。
【００１３】
更に、上記の発明において、好ましい態様は、前記印刷装置に送信する処理の方法が、前記予測されたデータ量に基づいて、前記展開処理の前に決定されることを特徴とする。
【００１４】
上記の目的を達成するために、本発明の別の側面は、ホスト装置がアプリケーションから出力されるオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮して印刷装置に送信する際に、当該印刷装置に送信するデータのデータ量予測方法であって、前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測することである。
【００１５】
上記の目的を達成するために、本発明の更に別の側面は、アプリケーションから受け取ったオブジェクト毎の画像データを画素毎の画像データに展開し、当該展開後の画像データを圧縮してホスト装置から印刷装置に送信するデータ転送方法であって、前記展開の処理の前に、前記各オブジェクトの種類と描画領域に基づいて、ページ毎に前記圧縮後のデータ量を予測し、当該予測したデータ量に基づいて前記印刷装置への送信方法を決定することである。
【００１６】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１８】
図１は、本発明によるドライバプログラムを用いた印刷システムの実施の形態例に係る構成図である。図１に示すプリンタドライバ１２が、ホストコンピュータ１とプリンタ２から成る印刷システムにおける本発明を用いたドライバプログラムであり、展開処理を開始する前に、描画するオブジェクトの種類や描画領域などに基づいて、圧縮処理後のプリンタ２へ送信する１ページ分のデータ量を予測し、従来よりも適切なデータ処理方法やデータ送信方法を選択できるようにしようとするものである。
【００１９】
ホストコンピュータ１は、本実施の形態例におけるホスト装置であり、プリンタ２に対して色変換及び圧縮処理後の画像データを送信し印刷要求を行う。図１に示すように、ホストコンピュータ１には、アプリケーション１１、プリンタドライバ１２、及びメモリ１３が備えられる。なお、ホストコンピュータ１は、所謂パーソナルコンピュータなどで構成することができる。アプリケーション１１は、例えば、文書作成ソフトウェア等の印刷要求元であり、印刷対象のデータを所定のフォーマットでプリンタドライバ１２に渡す。
【００２０】
プリンタドライバ１２は、前記アプリケーション１１からの印刷要求を受けて、画像データを生成し、当該画像データをプリンタ２に送信する部分である。プリンタドライバ１２は、まず、前記アプリケーション１１からのデータを解釈し、バンド別の中間コードを生成すると同時に、１ページ分の圧縮処理後のデータ量を予測する。その後、当該予測したデータ量からその後の処理法について適切な方法を決定する。そして、その決定した方法に従って、以降、画素毎のデータへの展開処理、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）のデータからプリンタ２で用いられるＹＭＣＫのデータへの色変換処理、及び圧縮処理をバンド毎に行っていく。その後、圧縮処理された画像データは、プリンタ２へ送信可能な状態であるので、決定された送信方法に従って、順次、プリンタ２へ送信する。
【００２１】
本プリンタドライバ１２では、前述したデータ量の予測の処理に特徴を有し、その具体的な内容については後述する。なお、プリンタドライバ１２は、前述した処理の手順を指示するプログラムと、当該プログラムに従って処理を実行する制御装置等によって構成することができる。
【００２２】
次に、メモリ１３は、ホストコンピュータ１に備えられるＲＡＭであり、様々な用途で使用されるが、印刷実行時には、前記プリンタドライバ１２で圧縮処理された画像データの一部を一時的に格納する。また、前述したデータ量の予測の際に必要となる各種データもここに保持される。
【００２３】
プリンタ２は、ホストコンピュータ１からの画像データを受信し、当該画像データに基づいて印刷を実行する、４サイクルのレーザプリンタである。図１に示すように、プリンタ２には、データバッファ２１、解凍部２２、スクリーン処理部２３、及びエンジン２４が備えられている。
【００２４】
データバッファ２１は、前記プリンタドライバ１２から順次転送される画像データを格納する部分である。データバッファ２１では、１ページ分の画像データがＹＭＣＫの色毎に格納され、それらはプレーンデータと呼ばれる。
【００２５】
後述する解凍部２２での処理からエンジン２４で印刷が実施されるまでの印刷処理は、ページ単位で、１色ずつ連続して実行されるので、各色のプレーンデータは、その色のデータバッファ２１からエンジン２４側へのデータ転送処理が終了するまでに全て受信されデータバッファ２１に格納される必要がある。言い換えれば、印刷処理を行うページについて、全色のプレーンデータがホストコンピュータ１から受信されていない状態でも印刷処理を開始することが可能である。即ち、フライングスタートが可能である。
【００２６】
解凍部２２は、前記印刷処理が開始されるとデータバッファ２１から圧縮されているデータを取り出し、そのデータを元の状態に復元する処理を行う部分である。また、スクリーン処理部２３は、解凍部２２で解凍されたデータにスクリーン処理を施し、画素毎のデータをドットイメージのデータに変換する部分である。エンジン２４は、スクリーン処理されたデータに基づいて印刷媒体に印刷を実行する部分である。これら解凍部２２、スクリーン処理部２３、及び、エンジン２４で行なわれる印刷処理は、各処理が同期して行われ、前述のように、ページ単位で１色ずつ連続して実行される。
【００２７】
以上、説明したような構成を有する本実施の形態例に係る印刷システムでは、前述したプリンタドライバ１２での処理に特徴を有し、以下、プリンタドライバ１２での処理について具体的に説明する。
【００２８】
図２は、プリンタドライバ１２が行なう処理の手順を例示したフローチャートである。まず、前述したアプリケーション１１から印刷要求が発せられると、プリンタドライバ１２は、アプリケーション１１から送られるデータを順次受け取る（ステップＳ１０）。プリンタドライバ１２が受信するデータは、描画するオブジェクトの単位で構成され、プリンタドライバ１２は、一つのオブジェクトについてのデータを受信する度に、順次、次のステップの処理を実行する。
【００２９】
まず、プリンタドライバ１２は、受信したデータをプリンタ２用の中間コードに変換する（ステップＳ２０）。ここで生成される中間コードは、未だオブジェクト単位のデータであるが、データはバンド毎に区切られるので、２つのバンドにまたがるオブジェクトについてのデータは、２つに分割される。そして、生成された中間コードは、順次、メモリ１３に格納される（ステップＳ３０）。かかる中間コードの作成と格納が、アプリケーション１１からデータを受信する度に行われ、１ページ分の中間コードがメモリ１３に格納されるまで繰り返される。
【００３０】
一方、プリンタドライバ１２では、上記中間コードの作成と並行して、アプリケーション１１からデータを受信する度に、前述した１ページ分のデータ量予測のための処理を行う。具体的には、データを受信したオブジェクトの領域矩形座標、複雑度、及び論理式を取得して、前記メモリ１３に保持する（ステップＳ４０）。なお、領域矩形座標、複雑度、及び論理式の内容と、それらの具体的な取得方法については後述する。
【００３１】
かかる領域矩形座標、複雑度、及び論理式の取得と保持が、アプリケーション１１からデータを受信する度に行われて、１ページ分のデータが保持されると、プリンタドライバ１２は、それら保持されたデータを用いて擬似面積、書込み面積なるものを求め、１ページ分の圧縮処理後のデータサイズを予測する（ステップＳ５０）。なお、擬似面積及び書込み面積と、データサイズの予測処理についての具体的な内容は後述する。
【００３２】
このように、１ページ分の圧縮処理後のデータサイズ、すなわち、プリンタ２へ送信する画像データの容量が予測されると、プリンタドライバ１２は、その後の各処理についての具体的な方法を決定する（ステップＳ７０）。ここで方法を決定する処理は、ホストコンピュータ１で行われる色変換処理（Ｓ９０）、圧縮処理（Ｓ９０）、及びプリンタ２への送信処理（Ｓ１１０）等である。前述の通り、これらの処理については、１ページ分のデータ量が把握されている方がより適切な方法を選択できるので、前記予測されたデータ量に基づいて、適宜、適切な方法に決定される。
【００３３】
例えば、１ページ分のデータ量がかなり多いと予測された場合には、処理の迅速化のために簡便な色変換処理の方法が選択されたり、プリンタ２への送信時間の短縮のために圧縮度の高い圧縮方法が選択されるということが行われる。また、プリンタ２への送信方法については、予測したデータ量などに基づき、前述したバンド順次、プレーン順次、またはその他の方法から適切なものが選択される。また、当該予測されたデータ量に基づいて、プリンタ２側での前述した印刷処理を開始するタイミング、言い換えればフライングスタートを行うタイミングも決定することができ、決定されたタイミングの情報は、画像データと共にプリンタ２側へ送られる。なお、この予測されたデータ量に基づく方法の決定は、必ずしも上述の全ての処理について行われる必要はない。
【００３４】
このように、１ページ分の中間コードがメモリ１３に格納され、各種処理方法が決定されると、プリンタドライバ１２は、メモリ１３に格納された中間コードから画素毎の画像データを生成する展開処理を行う（ステップＳ８０）。具体的には、オブジェクト単位のデータである中間コードを順次読み出して、そのオブジェクトが描画される位置の各画素のデータへと変換していく。生成される各画素のデータは、ＲＧＢ各色の濃度値と属性情報を有しており、メモリ１３の所定箇所に格納される。なお、かかる展開処理以降の処理は、バンド単位で順次連続して行われる。
【００３５】
かかる展開処理が終了したバンドのデータに対して、プリンタドライバ１２は、次に、色変換処理及び圧縮処理を行う（ステップＳ９０）。色変換処理では、各画素の有するＲＧＢのデータがプリンタ２で印刷に用いられるＹＭＣＫのデータに変換される。また、変換後のデータが、データ量を小さくすべく圧縮処理により圧縮される。圧縮された画像データはメモリ１３に格納され（ステップＳ１００）、定められた送信方法に従って、プリンタドライバ１２は、順番に当該格納された画像データをプリンタ２へ送信する（ステップＳ１１０）。
【００３６】
以上説明したような手順でプリンタドライバ１２は処理を行うが、本プリンタドライバ１２では、前述した1ページ分のデータサイズを予測する処理、より具体的には、アプリケーション１１からデータを受信後（ステップＳ１０）、領域矩形座標、複雑度、及び論理式の取得と保持を行う処理（ステップＳ４０）と、これらのデータを用いてデータサイズを予測する処理（ステップＳ５０）に特徴があり、以下、これらの内容について具体的に説明する。
【００３７】
図３は、領域矩形座標、複雑度、及び論理式の取得と保持の処理（ステップＳ４０）について処理手順を例示したフローチャートである。まず、プリンタドライバ１２は、アプリケーション１１からデータを受信すると、データを受信したオブジェクトの種類がイメージである場合には（ステップＳ４１のＹｅｓ）、当該オブジェクトの複雑度をイメージ用のもの（Ｈｉ）とする（ステップＳ４２）。オブジェクトの種類がイメージでなく（ステップＳ４１のＮｏ）、文字である場合には（ステップＳ４３のＹｅｓ）、当該オブジェクトの複雑度を文字用のもの（Ｈｔ）とする（ステップＳ４４）。さらに、オブジェクトの種類が文字でもない場合には（ステップＳ４３のＮｏ）、当該オブジェクトの複雑度をグラフィックス用のもの（Ｈｇ）とする（ステップＳ４５）。
【００３８】
ここで、複雑度とは、データの圧縮率の悪さを意味するものであり、イメージ用の複雑度Ｈｉが最も大きい値を取り、次いで文字用の複雑度Ｈｔの値が大きく、グラフィックス用の複雑度Ｈｇの値が最も小さい。すなわち、受信したデータのオブジェクトがイメージであれば、圧縮処理後のデータはあまり小さくならず、一方、受信したデータのオブジェクトがグラフィックスであれば圧縮処理後のデータがかなり小さくなるということを意味する値である。なお、この複雑度は予め値を定めておくが、Ｈｉ、Ｈｔ、及びＨｇの相対的な大きさ、比率に意味があり、ＨｉについてはＨｔ及びＨｇに比べてかなり大きな値に設定することが望ましい。
【００３９】
以上のように当該オブジェクトについての複雑度が決められるとその値がメモリ１３に保持される（ステップＳ４６）。図４は、領域矩形座標、複雑度、及び論理式を説明するための図である。図４に示す例は、印刷する１ページに描画されるオブジェクトが３つである（オブジェクト（１）〜（３））場合であり、図４の（ａ）は、それら３つのオブジェクトが描画される状態を示し、図４の（ｂ）は、メモリ１３に保持されるこれら３つのオブジェクトについての領域矩形座標、複雑度、及び論理式を示している。
【００４０】
アプリケーション１１から受信したデータのオブジェクトがオブジェクト（１）である場合には、オブジェクト（１）がイメージであるとして複雑度がＨｉに決められ、図４の（ｂ）に示されるように、オブジェクト（１）の複雑度としてＨｉがメモリ１３に保持される。同様に、オブジェクト（２）及びオブジェクト（３）のデータを受信した際には、それぞれ、オブジェクトが文字及びグラフィックスであるので、複雑度としてＨｔ及びＨｇがメモリ１３に保持される。
【００４１】
このように複雑度の保持が終了すると、次に、プリンタドライバ１２は、データを受信したオブジェクトの領域矩形座標をメモリ１３に保持する（ステップＳ４７）。ここで領域矩形座標とは、そのオブジェクトが描画される領域を含む矩形の左上と右下の頂点の座標のことであり、図４の（ａ）に示す例では、オブジェクト（１）については（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）が、オブジェクト（２）については（Ｘ３，Ｙ３）、（Ｘ４，Ｙ４）が、オブジェクト（３）については（Ｘ５，Ｙ５）、（Ｘ６，Ｙ６）がそれぞれ領域矩形座標となる。そして、これらのオブジェクトについてデータを受信した際に、図４の（ｂ）に示すように、それぞれ、これら領域矩形座標がメモリ１３に保持される。
【００４２】
次に、プリンタドライバ１２は、データを受信したオブジェクトの論理式をメモリ１３に保持する（ステップＳ４８）。ここで論理式とは、描画するオブジェクトを重ね合わせるときに行われる論理演算処理で用いられる式のことであり、アプリケーション１１において予めオブジェクト毎に設定されている。図５は、かかる論理式について例示した図である。論理式は複数種類用意されているが（例えば、１６種類）、ここでは、ＡＮＤ（ＤＰａ）とＸＯＲ（ＤＰｘ）の内容について示している。図の「Ｄ」は、既にその場所に書き込まれている元画像を表し、「Ｐ」は、新たに書き込もうとする画像を表し、また、「Ｄ´」は、論理演算の結果であるその場所の新画像を表している。
【００４３】
プリンタドライバ１２は、受信したデータが有しているアプリケーション１１で決定されたそのオブジェクトの論理式を、図４の（ｂ）に示すように、メモリ１３に保持していく。
【００４４】
以上のように、領域矩形座標、複雑度、及び論理式の取得と保持を、１ページの全てのデータ（オブジェクト）について繰り返し実行する（ステップＳ４９）。そして、１ページ分のオブジェクトについて、それぞれ、領域矩形座標、複雑度、及び論理式がメモリ１３に格納される。図４に示す例では、図４の（ｂ）に示すようなデータがメモリ１３に格納されることになる。
【００４５】
このようにして、ステップＳ４０の処理が終了すると、プリンタドライバ１２は、前記メモリ１３に格納された各データを用いて１ページ分のデータサイズを予測する処理を行う。図６は、かかるデータサイズの予測処理の手順を例示したフローチャートである。まず、プリンタドライバ１２は、データサイズの予測に使用する各指標値を初期化する（ステップＳ５１）。具体的には、擬似面積ＨＡ、書込み面積ＥＡ、第二擬似面積ＨＡＸ、及び第二書込み面積ＥＡＸの各値を０とする。
【００４６】
ここで、擬似面積とは、各オブジェクトの前記領域矩形座標で表される領域矩形の面積Ａと、そのオブジェクトの前記決定された複雑度Ｈを掛け合わせた値を、データサイズを予測するページ内において累計した値を意味する。また、書込み面積とは、データサイズを予測するページ内に描画されるオブジェクトを全て含む矩形（書込み矩形）の面積を意味する。また、第二擬似面積及び第二書込み面積とは、論理式がＸＯＲであるオブジェクトについての擬似面積及び書込み面積を意味する。
【００４７】
次に、プリンタドライバ１２は、前記メモリ１３に格納された当該ページに含まれる各オブジェクトのデータ（領域矩形座標、複雑度、及び論理式）から、一つのオブジェクトのデータを読み出し（ステップＳ５２）、その論理式がＸＯＲ（Ｅｘｃｌｕｓｉｖｅ  ＯＲ）でない場合には（ステップＳ５３のＮｏ）、当該オブジェクトの読み出した領域矩形座標から領域矩形面積Ａを求め、当該オブジェクトの複雑度Ｈと掛け合わせる（ステップＳ５４）。そして、その結果の値ｈａをその時点の擬似面積ＨＡに加え、擬似面積ＨＡの値を更新する（ステップＳ５５）。当該ステップＳ５０のデータサイズ予測処理において、最初のオブジェクトについて処理を行っている場合には、擬似面積ＨＡ＝ｈａとなる。
【００４８】
次に、当該オブジェクトの描画範囲がその時点での書込み矩形内に入るか否かをチェックする（ステップＳ５６）。書込み矩形内に入る場合には（ステップＳ５６のＹｅｓ）、書込み矩形及び書込み面積ＥＡはそのままとする。一方、書込み矩形内に入らない場合には（ステップＳ５６のＮｏ）、書込み矩形及び書込み面積ＥＡを更新する（ステップＳ５７）。具体的には、当該オブジェクトを含むように書込み矩形を拡大し、書込み面積ＥＡをその新しい書込み矩形の面積とする。当該ステップＳ５０において、最初のオブジェクトについて処理を行っている場合には、当該オブジェクトの領域矩形が書込み矩形となり、当該オブジェクトの領域矩形面積Ａが書込み面積となる。
【００４９】
前述した図４に示した例の場合には、まず、オブジェクト（１）についてのデータが読み出され、その論理式が図４の（ｂ）に示すように、「ＡＮＤ」であるので、処理がステップＳ５４に移行する。図７は、図４に示した例についてのデータサイズ予測処理を説明するための図である。ステップＳ５４では、前述の通り、まず、領域矩形面積Ａが求められるが、オブジェクト（１）の領域矩形面積Ａ（１）は、図７の（ａ）に示すようになる。次いで、このＡ（１）とオブジェクト（１）の複雑度Ｈ（１）（具体的には、Ｈｉ）が掛け合わされて、擬似面積ＨＡ（その時点で＝０）に追加される。従って、図７の（ａ）に示すように、ＨＡ＝Ａ（１）×Ｈ（１）となる。また、最初のオブジェクトであるので、書込み矩形は、図７の（ａ）の点線で示すように、オブジェクト（１）の領域矩形となり、書込み面積ＥＡは領域矩形面積Ａ（１）と同じになる。
【００５０】
図６に戻って、書込み矩形及び書込み面積ＥＡの更新（ステップＳ５７）が終了すると、プリンタドライバ１２は、当該処理対象のページについて全てのオブジェクトの処理を終了したかチェックし（ステップＳ６５）、未だ終了していない場合には（ステップＳ６５のＮｏ）、前記ステップＳ５２に戻って次のオブジェクトについての処理を行う。
【００５１】
図４に示した例の場合には、オブジェクト（２）についてのデータが読み出され、その論理式が図４の（ｂ）に示すように、「ＡＮＤ」であるので、処理が再びステップＳ５４に移行する。そして、オブジェクト（２）の領域矩形面積Ａ（２）が求められ、図７の（ｂ）に示すようになる。次いで、このＡ（２）とオブジェクト（２）の複雑度Ｈ（２）（具体的には、Ｈｔ）が掛け合わされて、擬似面積ＨＡに追加される。従って、図７の（ｂ）に示すように、ＨＡ＝Ａ（１）×Ｈ（１）＋Ａ（２）×Ｈ（２）となる。また、オブジェクト（２）の領域矩形は、この時点の書込み矩形内に入るので、書込み矩形は更新されず、図７の（ｂ）の点線で示すようになる。
【００５２】
また、図６に戻って、前記ステップＳ５３において、読み出したデータの論理式がＸＯＲである場合には（ステップＳ５３のＹｅｓ）、これまでに処理した論理式がＸＯＲであるオブジェクトの中に、当該オブジェクトの領域矩形と領域矩形が同じものがあるか否かをチェックする（ステップＳ５８）。そして、同じものがない場合には（ステップＳ５８のＮｏ）、前記ステップＳ５４及びＳ５５と同様に、当該オブジェクトの読み出した領域矩形座標から領域矩形面積Ａを求め、当該オブジェクトの複雑度Ｈと掛け合わせ（ステップＳ５９）、その結果の値ｈａをその時点の第二擬似面積ＨＡＸに加え、第二擬似面積ＨＡＸの値を更新する（ステップＳ６０）。
【００５３】
その後、前記ステップＳ５６及びＳ５７と同様に、当該オブジェクトの描画範囲がその時点での第二書込み矩形内に入るか否かをチェックし（ステップＳ６１）、第二書込み矩形内に入る場合には（ステップＳ６１のＹｅｓ）、第二書込み矩形及び第二書込み面積ＥＡＸはそのままとする。一方、第二書込み矩形内に入らない場合には（ステップＳ６１のＮｏ）、第二書込み矩形及び第二書込み面積ＥＡＸを、当該オブジェクトを含むように拡大して更新する（ステップＳ６２）。
【００５４】
図４に示す例の場合には、オブジェクト（２）についての処理の後、オブジェクト（３）についてのデータが読み出され、その論理式が図４の（ｂ）に示すように、「ＸＯＲ」であるので、処理がステップＳ５８に移行する。ここで、図７の（ｃ）に示すように、オブジェクト（３）の領域矩形と同じ、論理式がＸＯＲであるオブジェクトがこれまでにないので、処理がステップＳ５９に移行する。そして、オブジェクト（３）の領域矩形面積Ａ（３）が求められ、図７の（ｃ）に示すようになる。次いで、このＡ（３）とオブジェクト（３）の複雑度Ｈ（３）（具体的には、Ｈｇ）が掛け合わされて、第二擬似面積ＨＡＸに追加される。従って、図７の（ｃ）に示すように、ＨＡＸ＝Ａ（３）×Ｈ（３）となる。また、論理式がＸＯＲである最初のオブジェクトであるので、第二書込み矩形は、図７の（ｃ）の点線で示すように、オブジェクト（３）の領域矩形となり、第二書込み面積ＥＡＸは領域矩形面積Ａ（３）と同じになる。
【００５５】
図６に戻って、前記ステップＳ５８において、領域矩形が同じものがある場合には（ステップＳ５８のＹｅｓ）、当該領域矩形が同じオブジェクトのｈａの値を第二擬似面積ＨＡＸから差し引いて、第二擬似面積ＨＡＸの値を更新する（ステップＳ６３）。更に、当該領域矩形が同じオブジェクトの領域矩形が除かれるように、第二書込み矩形と第二書込み面積ＥＡＸが更新される（ステップＳ６４）。
【００５６】
図８は、かかる領域矩形が同じものがある場合（ステップＳ５８のＹｅｓ）の例を示した図である。図４に示した例では、オブジェクト（３）についての処理で当該ページの全てのオブジェクトについて処理が終了するが、ここでは、更に、オブジェクト（３）の後に、オブジェクト（３）と同じ領域矩形であり論理式がＸＯＲであるオブジェクト（４）が存在するものとする。
【００５７】
図８の（ａ）は、オブジェクト（３）についての処理が終了した時点での状態を示している。すなわち、図７の（ｃ）と同じ状態である。その後、上記オブジェクト（４）についての処理を行うと、処理が前記ステップＳ５８に移行し、その領域矩形がオブジェクト（３）と同じであるので、オブジェクト（３）のｈａ値、すなわち、Ａ（３）×Ｈ（３）がＨＡＸから差し引かれ、図８の（ｂ）に示すように、ＨＡＸ＝０となる。また、第二書込み矩形からオブジェクト（３）の領域矩形が除かれるので、第二書込み矩形はなくなり、図８の（ｂ）に示すように、第二書込み面積ＥＡＸは０となる。
【００５８】
図６に戻って、以上説明した各オブジェクトについての処理が当該ページの全てのオブジェクトについて終了すると（ステップＳ６５のＹｅｓ）、プリンタドライバ１２は、擬似面積ＨＡに第二擬似面積ＨＡＸを加えて、擬似面積ＨＡを更新する(ステップＳ６６）。また、書込み矩形を、第二書込み矩形を含むように拡大して更新し、合わせて書込み面積ＥＡの値も更新する（ステップＳ６７）。
【００５９】
図４に示した例では、オブジェクト（３）についての処理が終了した時点で当該ページの全てのオブジェクトについての処理が終了するので、図７の（ｃ）の状態で、前記ステップＳ６６及びＳ６７の処理、すなわち、擬似面積と書込み面積の統合が行われる。図７の（ｄ）は、その結果を示しており、擬似面積ＨＡは、第二擬似面積ＨＡＸの値が加えられた値となっている。また、書込み矩形（図の点線）が、オブジェクト（３）を含むように拡大され、書込み面積ＥＡも図に示す通りとなっている。
【００６０】
また、図８に示した例では、オブジェクト（３）に引き続く前記オブジェクト（４）で当該ページの全オブジェクトが終了すれば、その時点で、図８の（ｂ）に示すように、第二擬似面積と第二書込み面積がないので、その時点の擬似面積と書込み面積がそのまま最終的な値となる。
【００６１】
以上説明したように、当該ページについての最終的な擬似面積ＨＡと書込み面積ＥＡの値が算出されると、プリンタドライバ１２は、この２つの指標値に基づいて、当該１ページ分の圧縮処理後のデータサイズを予測する。まず、メモリ１３に予め格納された前記２つの指標とデータサイズの関係を示したテーブルを参照する（ステップＳ６８）。
【００６２】
図９は、当該テーブルの概念を示した図である。図９の（ａ）は、上記２つの指標値ＨＡ及びＥＡとそのページの圧縮処理後のデータサイズの関係を示すテーブルの概念を表している。
【００６３】
プリンタドライバ１２は、当該テーブルにおいて、前記最終的なＨＡとＥＡの値に対応する位置に収められている値を読み出して、その値を当該ページの圧縮処理後のデータサイズと予測する（ステップＳ６９）。図９の（ａ）に示す例では、例えば、ＨＡとＥＡの値が、それぞれ、ｎとｍであれば、それらの値に対応するＤｎｍが読み出されて、この値が当該ページの予測データ量とされる。
【００６４】
また、擬似面積ＨＡのみを指標としてデータサイズを予測してもよく、その場合には、ＨＡとデータサイズとの関係を示した、図９の（ｂ）に示すようなテーブルが用意される。そして、当該ページの最終的なＨＡの値がｎであれば、それに対応するＤｎの値が予測データ量とされる。
【００６５】
なお、これらのテーブルは、予め、様々なデータを含む各種のページについて、実際に圧縮処理までを行い、その際の実際のデータサイズを調べることにより作成することができる。なお、擬似面積は、そのページに実際に描画する画像のデータ量を直接的に示す指標であると言え、また、書込み面積は、主にそのページ全体での圧縮率の良し悪しに影響を与える指標であると言える。そして、擬似面積については、その値が大きくなるにつれてそのページのデータ量も大きくなるということができる。
【００６６】
以上説明したようにして、本プリンタドライバ１２では、１ページ分のデータサイズを予測する。そして、図２に基づいて説明したように、この予測データ量に基づいて、その後の各種の処理について適切な方法を決定する（ステップＳ７０）。
【００６７】
このように本実施の形態例に係るプリンタドライバ１２は、アプリケーション１１から印刷要求を受けると、プリンタ２用の中間コードを作成すると共に、展開処理前にページ毎の圧縮処理後のデータサイズを予測する。従って、その後の処理において、データサイズによって処理法を換えた方がよい処理について、例えば、色変換処理、圧縮処理、プリンタ２への送信処理等について、事前にデータサイズを把握しているので適切な方法を選択することが可能となる。
【００６８】
また、データサイズの予測に際しては、前述した擬似面積、書込み面積が指標とされ、かなり精度の高い予測が期待できる。また、定められた論理式がＸＯＲであるオブジェクトが重なった際には、重なったオブジェクトを描画しないのと同じことになるので、そのことを考慮して前記指標値が求められ、より精度の高い予測が可能となる。
【００６９】
なお、本実施の形態例においては、オブジェクトに定められた論理式のうちＸＯＲに着目して特別な処理を行ったが、これは、データサイズを予測するに当たって、各論理式のもつ意味にふさわしい影響度を加味することの一例であって、他の論理式についてもそれぞれ異なる特別な処理を行ってもよい。
【００７０】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００７１】
【図１】本発明によるドライバプログラムを用いた実施の形態例に係る構成図である。
【図２】プリンタドライバ１２が行なう処理の手順を例示したフローチャートである。
【図３】領域矩形座標、複雑度等の取得処理の手順を示したフローチャートである。
【図４】領域矩形座標、複雑度、及び論理式を説明するための図である。
【図５】論理式について例示した図である。
【図６】データサイズの予測処理の手順を例示したフローチャートである。
【図７】図４に示した例についてのデータサイズ予測処理を説明するための図である。
【図８】図６のステップＳ５８においてＹｅｓとなった場合の例を示した図である。
【図９】データサイズを予測するためのテーブルの概念を示した図である。
【符号の説明】
【００７２】
１  ホストコンピュータ、  ２  プリンタ、  １１  アプリケーション、  １２  プリンタドライバ、  １３  メモリ、  ２１  データバッファ、  ２２  解凍部、  ２３  スクリーン処理部、  ２４  エンジン
【図１】
2006113813.tif 000003
【図２】
2006113813.tif 000004
【図３】
2006113813.tif 000005
【図４】
2006113813.tif 000006
【図５】
2006113813.tif 000007
【図６】
2006113813.tif 000008
【図７】
2006113813.tif 000009
【図８】
2006113813.tif 000010
【図９】
2006113813.tif 000011