(57)【要約】【課題】画像データを生成して印刷装置に送信する処理をホスト装置に実行させるドライバプログラムであって、品質劣化を少なく抑えながら印刷エラーをなくすことのできるドライバプログラムを提供する。【解決手段】圧縮処理された画像データを生成して印刷装置に送信する処理をホスト装置に実行させるドライバプログラムが、所定範囲について画像データの生成と送信を行なっている過程で、既に送信済みの画像データの累計量と、印刷装置に備えられる画像データを格納するメモリの容量に基づく所定容量とを比較するステップと、比較の結果、前記累計量が前記所定容量以上である場合には、既に送信済みの画像データを無効にする命令を送ると共に、当該所定範囲について、圧縮処理による圧縮率が高くなるようにして、画像データの生成と送信をし直すステップとをホスト装置に実行させる。【選択図】  図２
2006350660.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置用の圧縮処理された画像データを生成して前記印刷装置に送信する処理をホスト装置に実行させるドライバプログラムであって、
印刷対象物の所定範囲について、前記画像データの前記生成と前記送信を行なっている過程で、前記所定範囲について既に前記送信を行なった画像データの累計量と、前記印刷装置に備えられる前記送信された画像データを格納するためのメモリの容量に基づく所定容量とを比較するステップと、
前記比較の結果、前記累計量が前記所定容量以上である場合には、前記既に送信を行なった画像データを無効にする命令を前記印刷装置に送ると共に、当該所定範囲について、前記圧縮処理による圧縮率が高くなるようにして、前記画像データの生成と送信をし直すステップとを前記ホスト装置に実行させる
ことを特徴とするドライバプログラム。
【請求項２】
請求項１において、
前記所定範囲についての画像データの送信が、前記所定範囲を分割した所定領域毎に行なわれ、
前記累計量と所定容量との比較が、前記所定領域毎の送信の度に行なわれる
ことを特徴とするドライバプログラム。
【請求項３】
請求項１あるいは請求項２において、
前記印刷装置に送信した画像データは、前記ホスト装置に保存されない
ことを特徴とするドライバプログラム。
【請求項４】
請求項１乃至請求項３のいずれかにおいて、
前記圧縮処理による圧縮率が高くなるようにする処理は、前記圧縮処理前の画像データの解像度を下げることである
ことを特徴とするドライバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷用の画像データを生成して印刷装置に送信する処理をホスト装置に実行させるドライバプログラムに関し、特に、品質劣化を少なく抑えながら印刷エラーをなくすことのできるドライバプログラムに関する。
【背景技術】
【０００２】
ホストコンピュータで作成された画像を印刷するプリンタには、印刷のための画像処理の大半をホストコンピュータのプリンタドライバで行なわせるホストベースのプリンタというものがある。かかるホストベースのプリンタでは、プリンタドライバにより、アプリケーションから受け取った描画データから、画素毎の色の濃度値で表された画像データが生成され、その画像データが圧縮された後にプリンタに送信される。プリンタは、当該送信された画像データを所定範囲分（例えば、１ページ分）、所定容量のメモリにバッファリングした後に、当該画像データについての印刷処理を実行し最終的に印刷媒体上への画像化がなされる。
【０００３】
このような処理の流れにおいて、画像データの容量が大きく、上記プリンタのメモリに収まらない場合には、印刷エラーとなって印刷を実行できないこととなってしまうので、当該メモリに格納する前の画像データの圧縮については、従来からいくつかの提案がなされている。
【０００４】
例えば、下記特許文献１では、画像データを可逆圧縮して前述したプリンタのメモリに格納できない場合には、非可逆圧縮をして当該メモリに格納するという方法について提案されている。
【０００５】
また、下記特許文献２には、描画データから画素毎の画像データに展開する処理の際に、画像の解像度を下げ、圧縮処理の際の圧縮率を高める技術について示されている。
【特許文献１】特許第２６１０９４５号公報
【特許文献２】特開２００５−４５３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の方法では、メモリに格納できなかった場合の圧縮方法が非可逆圧縮であるため、一般的に伸長後の再現性が悪く、印刷出力時の品質が劣化するという欠点がある。さらに、当該特許文献１の方法では、前述したプリンタのメモリに格納できるか否かを、圧縮処理後のデータを当該メモリに送らずに他のメモリに蓄積しながらそのデータ量によって判断するので、この蓄積するためのメモリ容量を確保する必要がある。
【０００７】
また、上記特許文献２の方法では、前述した解像度を下げる処理を処理対象のデータに関わらず固定の基準で一律に行うが、処理対象のデータによってはこの方法を用いても十分にデータを小さくすることができず、前記プリンタのメモリに収まらない場合も出てくる可能性がある。従って、印刷エラーを起こしてしまう危険性がある。特に、最近は、プリンタ側のメモリを小規模化する傾向にあり、かかる印刷エラーの可能性が高まっている。また、固定の基準で処理を行うことは、元々データ量の小さい画像データについては、プリンタのメモリに格納できるという観点で必要とされる圧縮率以上で処理される場合もあり、画質の面から見ても効率的でない。
【０００８】
そこで、本発明の目的は、印刷用の画像データを生成して印刷装置に送信する処理をホスト装置に実行させるドライバプログラムであって、品質劣化を少なく抑えながら印刷エラーを効率よくなくすことのできるドライバプログラムを提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の一つの側面は、印刷装置用の圧縮処理された画像データを生成して前記印刷装置に送信する処理をホスト装置に実行させるドライバプログラムが、印刷対象物の所定範囲について、前記画像データの前記生成と前記送信を行なっている過程で、前記所定範囲について既に前記送信を行なった画像データの累計量と、前記印刷装置に備えられる前記送信された画像データを格納するためのメモリの容量に基づく所定容量とを比較するステップと、前記比較の結果、前記累計量が前記所定容量以上である場合には、前記既に送信を行なった画像データを無効にする命令を前記印刷装置に送ると共に、当該所定範囲について、前記圧縮処理による圧縮率が高くなるようにして、前記画像データの生成と送信をし直すステップとを前記ホスト装置に実行させることである。
【００１０】
更に、上記の発明において、好ましい態様は、前記所定範囲についての画像データの送信が、前記所定範囲を分割した所定領域毎に行なわれ、前記累計量と所定容量との比較が、前記所定領域毎の送信の度に行なわれることを特徴とする。
【００１１】
更にまた、上記の発明において、好ましい態様は、前記印刷装置に送信した画像データは、前記ホスト装置に保存されないことを特徴とする。
【００１２】
更に、上記の発明において、好ましい態様は、前記圧縮処理による圧縮率が高くなるようにする処理は、前記圧縮処理前の画像データの解像度を下げることであることを特徴とする。
【００１３】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１５】
図１は、本発明を適用したドライバプログラムを用いた印刷システムの実施の形態例に係る構成図である。図１に示すプリンタドライバ１２が本発明を用いたドライバプログラムを備えており、当該プリンタドライバ１２によって生成された画像データがホストコンピュータ１からプリンタ２に送信されて印刷が実行される。本プリンタドライバ１２は、１ページ分の画像データの生成、送信について、バンド毎に圧縮後のデータを送信していき、送信データ量が許容範囲を超えた場合には、それまでに送ったデータをキャンセルし、再度、圧縮率を上げて最初のバンドから生成、送信をやり直す、という処理を行って、印刷エラーを効率よくなくそうとするものである。
【００１６】
ホストコンピュータ１は、前述のとおり、プリンタ２に対して画像データを送信して印刷要求を行うホスト装置であり、例えば、パーソナルコンピュータ等で構成される。図１に示すように、ホストコンピュータ１には、アプリケーション１１、プリンタドライバ１２、及びメモリ１３等が備えられる。
【００１７】
アプリケーション１１は、例えば、文書作成ソフトウェア等の印刷要求元であり、印刷対象の描画データを所定のフォーマットでプリンタドライバ１２に渡す。
【００１８】
プリンタドライバ１２は、前記アプリケーション１１からの印刷要求を受けて、プリンタ２に送る画像データを生成し、当該画像データをプリンタ２に送信する部分である。本プリンタドライバ１２では、前記アプリケーション１１から受け取る描画データに基づく中間コードの生成、画素毎の画像データとする展開処理、プリンタ２で使用される色のデータとする色変換処理、及び生成された画像データの圧縮処理が行われ、本実施の形態例に係る印刷システムは、いわゆるホストベースのシステムとなっている。本実施の形態例では、本プリンタドライバ１２で行われる、圧縮を含む画像データの生成と送信の処理に特徴を有し、この具体的な処理内容については後述する。なお、プリンタドライバ１２は、処理の手順を指示するプログラムと、当該プログラムに従って処理を実行する制御装置等によって構成することができる。また、当該プログラムは、ＣＤ−ＲＯＭなどの記憶媒体に格納されているものをインストールしたり、インターネットなどのネットワークを介して所定のサイトからダウンロードすることによりホストコンピュータ１に備えられる。
【００１９】
次に、メモリ１３は、ホストコンピュータ１に備えられる記憶手段であり、様々な用途で使用されるが、前記プリンタ２に送信する画像データが生成されるまでの各段階におけるデータを一時的に格納する。
【００２０】
プリンタ２は、本印刷システムにおける印刷装置であり、ホストコンピュータ１からの画像データを受信し、当該画像データに基づいて印刷を実行する。例えば、４サイクルのレーザプリンタである。
【００２１】
図１に示すように、プリンタ２には、Ｉ／Ｆ２１、ページメモリ２２、伸長部２３、スクリーン処理部２４、ＰＷＭ２５、及びエンジン２６等が備えられている。
【００２２】
Ｉ／Ｆ２１は、ホストコンピュータ１とのインターフェースを司る部分であり、ホストコンピュータ１から送信された前記画像データを受信し、当該データはページメモリ２２に収められる。ページメモリ２２は、プリンタ２に備えられるＲＡＭ等で構成され、所定範囲分（例えば、１ページ分）の前記画像データを一時的に格納し、当該範囲の画像データが揃った後、当該画像データについての印刷処理が実行される。なお、このページメモリ２２には格納できるデータ量（所定容量Ｓ）が予め定められている。
【００２３】
次に、伸長部２３は、ホストコンピュータ１で圧縮処理されてページメモリ２２に格納されている画像データを順次読み出して、伸長する部分であり、スクリーン処理部２４は、伸長後のデータにスクリーン処理を施し、ＰＷＭ２５は、スクリーン処理後のデータをパルス幅変調してエンジン２６に駆動パルス信号を供給する。エンジン２６は、駆動パルス信号に基づいて印刷媒体上に画像を形成する。
【００２４】
以上、説明したような構成を有する本実施の形態例に係る印刷システムでは、前述したように、ホストコンピュータ１における画像データの生成と送信に特徴を有し、以下、この点を中心にプリンタドライバ１２による処理の具体的な内容を説明する。
【００２５】
図２は、プリンタドライバ１２で行われる処理を例示したフローチャートである。ここでは、印刷対象物の１ページ分のデータについて、その処理内容を説明する。まず、ホストコンピュータ１のユーザがアプリケーション１１に対して所定の印刷対象の印刷指示を行う。すると、プリンタドライバ１２は、アプリケーション１１から前記印刷指示に基づく描画データを受け取る（ステップＳ１）。
【００２６】
すると、プリンタドライバ１２は、受信した描画データを、描画オブジェクト毎に順次解釈してバンド毎の中間コードを生成する（ステップＳ２）。ここで、バンドとは１ページの範囲を高さ方向に所定の長さで分割した領域のことであり、ここでは、１ページがｎバンドに分割され、バンドは上から順番にバンド０、バンド１、、、、バンドｎ−１と称することとする。従って、この中間コード生成処理においては、１ページ分ｎバンドの中間コードが生成されることになる。
【００２７】
図３は、展開、圧縮、及び送信の処理を説明するための図である。図３の左側に示されている中間コードが、前記生成された１ページ分の中間コード（バンド０〜バンドｎ−１）を模式的に表したものである。
【００２８】
次に、プリンタドライバ１２は、バンド０から順番にバンド毎の処理を開始し（ステップＳ３）、まず、中間コードから、画素毎にＲＧＢ（レッド、グリーン、ブルー）の濃度値を有する画像データ（ＲＧＢデータ）を生成する（ステップＳ４）。いわゆる展開処理を実施する。
【００２９】
その後、生成されたＲＧＢデータに対して解像度変換処理を施す（ステップＳ５）。この解像度変換処理は、特開２００５−４５３４２号公報の段落００２２等に記載されている方法を用いて行う。すなわち、隣接する複数の画素の隣接画素群に対して、各画素の輝度値をＲＧＢデータから求め、隣接画素間の輝度値の差分が所定の閾値以下か否かを判定し、閾値以下の場合は隣接画素群の複数の画素の画像データＲＧＢをいずれかの画素の画像データに置換する。これにより、輝度値が近接する画素からなる隣接画素群内の画像データは共通の画像データとなり、その解像度はゼロとなって、解像度を低下させる変換が施されることになる。
【００３０】
かかる解像度を低下させる処理により、画像データのリピート性を高めることができ、後の圧縮処理における圧縮率を高めることができる。なお、前記輝度値の差分の閾値は、処理対象のページについて最初の段階では比較的小さい値が設定される。すなわち、隣接画素群が共通の画像データとされる機会が少なく圧縮率があまり高くならないように設定されている。
【００３１】
次に、プリンタドライバ１２は、解像度変換後のデータに対して色変換処理を施す（ステップＳ６）。具体的には、変換テーブルの参照等により、ＲＧＢの濃度値で表現された画像データを、プリンタ２で使用されるトナーの色であるＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）の濃度値で表現された画像データに変換する。
【００３２】
その後、プリンタドライバ１２は、前記生成されたＣＭＹＫデータに対して圧縮処理を施す（ステップＳ７）。具体的には、前記特開２００５−４５３４２号公報の段落００３９等に記載された方法を用いる。すなわち、バンド内の画素の画像データのリピート性を重視して、例えば、同じ画像データが続く場合には、各画素の画像データを、繰り返しを示すデータに置換するといった処理を行う。このような圧縮方法を取ることにより、前述した解像度変換による処理に基づいて圧縮率を高めることが可能になる。
【００３３】
図３に示す例では、まず、バンド０の中間コードからバンド毎の処理が開始され、まず、展開処理に基づいて、図のａで示すように、ＲＧＢデータが生成される。その後、前記輝度値の差分に係る閾値の初期値ｘ0により前述した解像度変換処理がなされ、さらに、色変換処理及び圧縮処理が施されて、図に示すＣＭＹＫ圧縮データが生成される。
【００３４】
次に、プリンタドライバ１２は、圧縮した当該バンドの画像データをホストコンピュータ１のメモリ１３に溜めずに、プリンタ２へ送信する（ステップＳ８）。送信された画像データは、前述のとおり、プリンタ２で受信され、プリンタ２のページメモリ２２に格納される。図３に示す例では、バンド０の画像データ（ＣＭＹＫ圧縮データ）がページメモリ２２に収められる。
【００３５】
その後、プリンタドライバ１２は、当該ページについての、プリンタ２へ送信した画像データの累計値（累計送付量）を求め、この値を、前述したプリンタ２のページメモリ２２の格納可能なデータ量（所定容量Ｓ）と比較する（ステップＳ９）。当該比較の結果、累計送付量が所定容量Ｓよりも小さければ（ステップＳ９のＹｅｓ）、当該バンドの処理を終了し、処理対象のページの全てのバンドについて処理が終了していなければ（ステップＳ１０のＮｏ）、次のバンドの処理に移行する（ステップＳ１１）。そして、ステップＳ４からの処理が繰り返し実行される。
【００３６】
すなわち、対象ページについてバンド０のプリンタ２への送信処理が終了すれば、通常の場合、図３にも示すように、まだ、累計送付量が所定容量Ｓよりも小さいので、処理が次のバンド１に移行し、図３のｂに示すように、中間コードからＣＭＹＫ圧縮データが生成され、プリンタ２へ送付されてページメモリ２２に格納される。
【００３７】
このように、当該ページの各バンドについて順次処理を行い、最終バンド（バンドｎ−１）のプリンタ２への送信処理が終了した後も累計送付量が所定容量Ｓよりも小さければ、当該ページについてのプリンタドライバ１２におけり処理が終了し（ステップＳ１０のＹｅｓ）、ページメモリ２２に格納された１ページ分の画像データに基づいてプリンタ２による印刷処理が行われることになる。
【００３８】
一方、順次行われる各バンドの処理において、累計送付量が所定容量Ｓ以上になってしまった場合には（ステップＳ９のＮｏ）、プリンタドライバ１２は、プリンタ２に対して、当該ページのこれまでに送信したデータについては無効にする旨のコマンドを送信する（ステップＳ１２）。当該コマンドを受けて、プリンタ２では、ページメモリ２２に格納していた当該ページのデータを破棄する。
【００３９】
その後、プリンタドライバ１２は、前述した解像度変換処理に係る輝度値の閾値を大きくして（ステップＳ１３）、当該ページについて、中間コードの生成以降の処理（ステップＳ３〜）をやり直す。すなわち、当該ページの最初のバンド（バンド０）からバンド毎の処理を繰り返し実行する。
【００４０】
かかる処理においては、前記閾値を大きくしたことにより、各バンドの解像度がより下がっているため、圧縮処理による圧縮率が以前よりも高くなっている。従って、プリンタ２へ送信される各バンドのデータ量は前回よりも小さくなっているので、前記累計送付量が所定容量Ｓ以上となるタイミングが遅くなり、最終バンドまで所定容量Ｓ以上とならなければ、前述のとおり、当該ページについての処理が終了する。
【００４１】
再び、ページの途中で累計送付量が所定容量Ｓ以上となってしまえば、再度、ステップＳ１２に処理が移行し、送付済みのデータのキャンセルが行われ、更に解像度変換処理に係る輝度値の閾値を大きくして（ステップＳ１３）、バンド０からの処理が同様に繰り返されることになる。
【００４２】
図３の例では、バンドｋまで処理が進んだ時点で（図３のｃ）、図に示すように、送信したデータ量がページメモリ２２の所定容量Ｓ以上となってしまうので、前記輝度値の閾値が初期値ｘ0からｘ1に引き上げられ、再度、バンド０から処理が繰り返される（図３のｄ、ｅ）。そして、前回よりも圧縮率の高まったＣＭＹＫ圧縮データがプリンタ２へ送信されてページメモリ２２に格納されることになる。
【００４３】
このように、処理対象のページについての画像データがすべてプリンタ２のページメモリ２２に格納される容量になるまで、順次圧縮率を高めていく処理がなされ、当該ページについて全バンドの画像データがページメモリ２２の所定容量Ｓ内に収められると、当該ページについてのプリンタドライバ２２での処理が完了する。これにより、プリンタ２では、印刷エラーを起こすことなく、当該ページについての印刷処理が実行されることになる。
【００４４】
以上説明したように、本実施の形態例に係るプリンタドライバ１２は、１ページ分の処理について、プリンタ２側の許容容量をチェックしながらバンド毎に処理を進め、処理の途中で前記許容容量を超えた場合には、それまでに送信したデータについてキャンセルし、圧縮率を前回よりも高めて再度そのページの最初から処理をし直す。そして、当該ページについて、前記許容容量内で全てのデータを送信できるまで同様の処理を繰り返し行う。従って、本プリンタドライバ１２を用いることにより、プリンタ２のページメモリ２２に所定範囲の画像データを収められないことによる印刷エラーを確実になくすことができる。
【００４５】
さらに、そのために圧縮率を高める手法が、解像度の変換に基づくものであるので、色に関する劣化がなく、印刷時の品質劣化を少なく抑えることができる。また、前述したように、解像度変換処理に係る輝度値の閾値を最初は小さく設定し、元の画像データによって順次動的に大きくしていくので、そのページの画像データに応じた圧縮率で圧縮処理がなされることになり、データ量を小さくするために必要以上の圧縮を行わないですみ、効率的であるといえる。
【００４６】
また、プリンタドライバ１２は、バンド毎に生成した画像データを順次プリンタ２に送付し、メモリ１３に溜めておかないので、メモリ１３の容量を小さく抑えることができるという効果も得られる。これは、送信量がプリンタ２の許容量を超えてしまった場合に中間コードから再び画像データを展開し直すという処理にしていることによってもたらされる。
【００４７】
なお、本実施の形態例では、ホストベースのシステムとして説明したが、ホストベースでないシステム、すなわち、プリンタ側で中間コードの生成、展開処理、色変換処理、及び圧縮処理を行う場合においても、本発明の手法を適用することができる。かかる場合には、図２に基いて説明したプリンタドライバ１２が行なう処理と同様の処理を、プリンタが実行する。この場合、プリンタは、ホストコンピュータからＰＤＬ等で記述された画像データを受信して、当該データから中間コードを生成し、以降、展開処理、解像度変換処理、色変換処理、及び圧縮処理を行って、最終的に所定のサイズとなった圧縮データがページメモリに収められる。なお、かかる処理は、プリンタに備えられる、処理の手順を記述したプログラムと、当該プログラムに従って処理を実行する制御装置等によって実現することが可能である。
【００４８】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００４９】
【図１】本発明を適用した印刷システムの実施の形態例に係る構成図である。
【図２】プリンタドライバ１２で行われる処理を例示したフローチャートである。
【図３】展開、圧縮、及び送信の処理を説明するための図である。
【符号の説明】
【００５０】
１  ホストコンピュータ、  ２  プリンタ、  １１  アプリケーション、  １２  プリンタドライバ、  １３  メモリ、  ２１  Ｉ／Ｆ、  ２２  ページメモリ、  ２３  伸長部、  ２４  スクリーン処理部、  ２５  ＰＷＭ、  ２６  エンジン
【図１】
2006350660.tif 000003
【図２】
2006350660.tif 000004
【図３】
2006350660.tif 000005