(57)【要約】【課題】アプリケーションプログラムからの出力されたイメージデータが、濃淡が徐々に変化するグラデーションデータである場合に、プリンタ装置での演算量を減らして、印刷時間を短縮することが可能なプリンタドライバ及びその印刷制御方法を提供する。【解決手段】このプリンタドライバ１２は、グラデーションのイメージデータの印刷を指示するアプリケーションプログラム１１からの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅に拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するイメージデータ解析処理手段１２ａと、イメージデータ解析処理手段１２ａが、１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰すＰＣＬにより記述された印刷命令を、各ブロックごとに生成する印刷データ生成手段１２ｂとして機能するものである。【選択図】図１
2010152597.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムからの描画命令を、プリンタ装置が印刷可能な印刷命令に置き換えた印刷データを生成するプリンタドライバであって、
コンピュータを、
グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅に拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するイメージデータ解析処理手段と、
前記イメージデータ解析処理手段が、前記１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰す印刷命令を、各ブロックごとに生成する印刷データ生成手段として機能させることを特徴とするプリンタドライバ。
【請求項２】
前記イメージデータ解析処理手段は、前記１ピクセル列に含まれる同色のピクセル数が、それぞれ所定のピクセル数以上であることを条件とする請求項１記載のプリンタドライバ。
【請求項３】
前記イメージデータ解析処理手段は、１ピクセル列の所定幅への拡大が所定倍数以上であることを条件とする請求項１または２記載のプリンタドライバ。
【請求項４】
前記イメージデータ解析処理手段は、イメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、矩形状のイメージデータを印刷イメージとして指定するビットマップ描画命令か否かを判定し、該ビットマップ描画命令である場合に、このイメージデータを構成する全ピクセルの色を示すインデックステーブルを作成すると共に、全ピクセルの色データを前記インデックステーブルのインデックス番号に置き換え、
前記印刷データ生成手段は、前記インデックステーブルと、全ピクセルがインデックス番号に置き換えられたイメージデータとを、印刷される矩形状のイメージデータとして指定する印刷命令を生成する請求項１から３のいずれかに記載のプリンタドライバ。
【請求項５】
前記イメージデータ解析処理手段は、前記インデックステーブルのインデックス番号に置き換えられた全ピクセルの色データが所定数以下である場合には、全ピクセルの色データの未使用ビットを除去することでイメージデータの圧縮をする請求項４記載のプリンタドライバ。
【請求項６】
前記イメージデータ解析処理手段は、イメージデータが白黒の明暗だけでグレースケールであるときに、前記インデックステーブルを単色のテーブルとして作成する請求項４記載のプリンタドライバ。
【請求項７】
アプリケーションプログラムからの描画命令を、プリンタ装置が印刷可能な印刷命令に置き換えた印刷データを生成するプリンタドライバの印刷制御方法であって、
グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅または所定高さに拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するステップと、前記１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰す印刷命令を、各ブロックごとに生成するステップとを含むことを特徴とするプリンタドライバの印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、濃淡が徐々に変化するグラデーションのイメージデータを印刷する際に、印刷時間を短縮することが可能なプリンタドライバ及びその印刷制御方法に関する。
【背景技術】
【０００２】
コンピュータに接続されたプリンタ装置では、ページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述された印刷命令による印刷データをコンピュータから受信すると、印刷データを２次元のビットマップイメージデータへ変換して、紙媒体に印刷している。
【０００３】
プリンタ装置では、印刷データを２次元のビットマップイメージデータへ変換する際の演算量を減らすことで、印刷のための処理時間を短縮することが図られている（例えば、（特許文献１）参照。）。
【０００４】
この（特許文献１）には、ホストコンピュータに接続される印刷装置でレンダリング処理を行う際に、各ラインに存在する色成分を表すラインタグを生成し、レンダリング処理の後段の処理においてラインタグを参照することによって演算量の削減と処理時間の短縮を実現する画像処理方法が記載されている。
【０００５】
図１０はアプリケーションがイメージデータを印刷するときの描画命令を説明するための図である。図１０（Ａ）に示すように、上から下へ徐々に色が変化するグラデーションのイメージデータを印刷する場合には、アプリケーションプログラムが、例えば、図１０（Ｂ）に示すように、左端に位置する幅１ピクセル分の縦列のイメージデータを所定幅まで連続的に引き延ばすことで矩形領域のグラデーションの印刷イメージとなる描画命令を、プリンタドライバへ出力する。プリンタドライバでは、この描画命令をＰＤＬで記述された印刷命令へ変換して印刷データとし、プリンタ装置へ出力する。
【０００６】
そして、プリンタ装置では、受信した印刷データの指示通りに、矩形状のビットマップイメージデータを生成して印刷を行う。
【特許文献１】特開２００５−１５７８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、プリンタ装置側では、印刷データの指示通りに幅１ピクセル分の縦列のイメージデータを所定幅まで連続的に引き延ばすための演算処理を行うのは、大変時間を要するものである。
【０００８】
従って、プリンタ装置側での印刷のための演算負荷を軽減することで、操作者が印刷を指示してから印刷が完了するまでの時間を短縮する技術が望まれている。
【０００９】
この場合、（特許文献１）に記載されている画像処理方法のように、プリンタ装置側で対策をとることも考えられる。しかし、アプリケーションプログラムからの描画命令をプリンタドライバが印刷データへ変換し、プリンタ装置側で演算量を減らす処理をした後に、ビットマップイメージデータを生成するより、コンピュータ側で動作するプリンタドライバで予め演算量を減らした状態の印刷データとすることができれば、より処理時間の短縮を図ることができると思われる。
【００１０】
そこで本発明は、アプリケーションプログラムからの出力されたイメージデータが、濃淡が徐々に変化するグラデーションデータである場合に、プリンタ装置での演算量を減らして、印刷時間を短縮することが可能なプリンタドライバ及びその印刷制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、アプリケーションプログラムからの描画命令を、プリンタ装置が印刷可能な印刷命令に置き換えた印刷データを生成するプリンタドライバであって、コンピュータを、グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅に拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するイメージデータ解析処理手段、前記イメージデータ解析処理手段が、前記１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰す印刷命令を、各ブロックごとに生成する印刷データ生成手段として機能させることを特徴とする。
【００１２】
また、本発明は、アプリケーションプログラムからの描画命令を、プリンタ装置が印刷可能な印刷命令に置き換えた印刷データを生成するプリンタドライバの印刷制御方法であって、グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅に拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するステップと、前記１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰す印刷命令を、各ブロックごとに生成するステップとを含むことを特徴とする。
【発明の効果】
【００１３】
本発明は、１ピクセル列を引き延ばす描画命令を同色のブロックを塗り潰す印刷命令に置き換えることで、プリンタ装置側での負荷を軽減することができるので、印刷時間を短縮することが可能である。
【発明を実施するための最良の形態】
【００１４】
本願の第１の発明は、アプリケーションプログラムからの描画命令を、プリンタ装置が印刷可能な印刷命令に置き換えた印刷データを生成するプリンタドライバであって、コンピュータを、グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅または所定高さに拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するイメージデータ解析処理手段、イメージデータ解析処理手段が、１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰す印刷命令を、各ブロックごとに生成する印刷データ生成手段として機能させることを特徴としたものである。
【００１５】
第１の発明においては、縦列に並んだ１ピクセル列を所定幅に引き延ばしたり、横列に並んだ１ピクセル列を所定高さに引き延ばしたりする際の演算と比較して、各ブロックを塗り潰す演算の方が演算量が少ないので、１ピクセル列を引き延ばす描画命令を同色のブロックを塗り潰す印刷命令に置き換えることで、プリンタ装置側での負荷を軽減することができる。
【００１６】
本願の第２の発明は、第１の発明において、イメージデータ解析処理手段は、１ピクセル列に含まれる同色のピクセルが、所定のピクセル数以上であることを条件とすることを特徴としたものである。
【００１７】
第２の発明においては、イメージデータ解析処理手段が１ピクセル列に含まれる同色のピクセルが、所定のピクセル数以上であることを判定することにより、塗り潰されるピクセル数が少なすぎて、１ピクセル列を引き延ばす処理よりブロックを塗り潰す処理の方が時間を要してしまうような状態を回避することができる。
【００１８】
本願の第３の発明は、第１または第２の発明において、イメージデータ解析処理手段は、１ピクセル列の所定幅への拡大が所定倍数以上であることを条件としたものである。
【００１９】
第３の発明においては、イメージデータ解析処理手段は、１ピクセル列の所定幅への拡大が所定倍数以上であることを判定することにより、塗り潰されるピクセル数が少なすぎて、１ピクセル列を引き延ばす処理よりブロックを塗り潰す処理の方が時間を要してしまうような状態を回避することができる。
【００２０】
本願の第４の発明は、第１から第３のいずれかの発明において、イメージデータ解析処理手段は、グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、矩形状のイメージデータを印刷イメージとして指定するビットマップ描画命令か否かを判定し、該ビットマップ描画命令である場合に、このイメージデータを構成する全ピクセルの色を示すインデックステーブルを作成すると共に、全ピクセルの色データをインデックステーブルのインデックス番号に置き換え、印刷データ生成手段は、インデックステーブルと、全ピクセルがインデックス番号に置き換えられたイメージデータとを、印刷される矩形状のイメージデータとして指定する印刷命令を生成することを特徴としたものである。
【００２１】
第４の発明においては、アプリケーションプログラムから出力されるイメージデータの全ピクセルに対応するインデックステーブルを作成することで、イメージデータのそれぞれの色データを、インデックステーブルの各色を指定するインデックス番号とすることができる。従って、イメージデータの容量を圧縮することができるので、プリンタ装置側での負荷を軽減することができる。
【００２２】
本願の第５の発明は、第４の発明において、イメージデータ解析処理手段は、インデックステーブルのインデックス番号に置き換えられた全ピクセルの色データが所定数以下である場合には、全ピクセルの色データの未使用ビットを除去することでイメージデータの圧縮をすることを特徴としたものである。
【００２３】
第５の発明においては、インデックステーブルのインデックス番号に置き換えられた全ピクセルの色データが所定数以下である場合には、色データに使用されていないビット幅があることを意味している。従って、未使用ビットを除去することで更にイメージデータを圧縮することが可能である。
【００２４】
本願の第６の発明は、第４の発明において、イメージデータ解析処理手段は、イメージデータが白黒の明暗だけでグレースケールであるときに、インデックステーブルを単色のテーブルとして作成することを特徴としたものである。
【００２５】
第６の発明においては、アプリケーションプログラムからのイメージデータがグレースケールである場合には、赤色、緑色及び青色の各色データは、同じ値となる。従って、インデックステーブルを単色のテーブルとしても支障がなく、テーブルのデータ容量は１／３となるので、更にイメージデータの圧縮が可能である。
【００２６】
本願の第７の発明は、アプリケーションプログラムからの描画命令を、プリンタ装置が印刷可能な印刷命令に置き換えた印刷データを生成するプリンタドライバの印刷制御方法であって、グラデーションのイメージデータの印刷を指示するアプリケーションプログラムからの描画命令が、所定のピクセル数ごとに同色の濃淡が変化する１ピクセル列を、所定幅に拡大することで矩形領域全体に１ピクセル列を引き延ばす拡大描画命令であるか否かを判定するステップと、１ピクセル列が引き延ばされることでできる同色のブロックを塗り潰す印刷命令を、各ブロックごとに生成するステップとを含むことを特徴としたものである。
【００２７】
第７の発明においては、１ピクセル列を引き延ばす演算と比較して、各ブロックを塗り潰す演算の方が演算量が少ないので、１ピクセル列を引き延ばす描画命令を同色のブロックを塗り潰す印刷命令に置き換えることで、プリンタ装置側での負荷を軽減することができる。
【００２８】
（実施の形態）
本発明の実施の形態に係るプリンタドライバを図面に基づいて説明する。図１は本発明の実施の形態に係る印刷システムの構成図である。
【００２９】
図１に示すように本実施の形態に係る印刷システムは、コンピュータ１とこのコンピュータ１に接続されたプリンタ装置２とで構成されている。プリンタ装置２はコンピュータ１のＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートに接続されている。
【００３０】
コンピュータ１には、イメージデータ生成手段として機能するアプリケーションプログラム１１と、印刷制御手段として機能するプリンタドライバ１２と、スプール手段として機能するスプーラー１３が動作している。尚、図１においては主要な構成のみを図示しており、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等他のプログラムは、便宜上省略している。
【００３１】
アプリケーションプログラム１１は、印刷するためのイメージデータを生成する機能を備えており、表計算ソフトや文書作成ソフト、プレゼンテーション資料作成ソフトなどの印刷機能を有するプログラムである。
【００３２】
プリンタドライバ１２はアプリケーションプログラム１１からのイメージデータを印刷データに変換してプリンタ装置２へ出力する機能を備えている。プリンタドライバ１２はイメージデータ解析処理手段１２ａと印刷データ生成手段１２ｂとを備えている。
【００３３】
イメージデータ解析処理手段１２ａはアプリケーションプログラム１１からの描画命令を解析して、プリンタ装置２でのイメージ処理の演算量を減少させることが可能な印刷命令に置き換えることが可能な描画命令であるか否かを判定する。
【００３４】
印刷データ生成手段１２ｂはイメージデータ解析処理手段１２ａにより、描画命令がプリンタ装置２で処理可能なＰＤＬで記述された印刷命令に置き換え可能であると判定された場合に、描画命令をＰＤＬで記述された印刷命令に置き換えた印刷データを生成する。本実施の形態では印刷データを記述するＰＤＬの言語としてＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）を採用しているが、ＰｏｓｔＳｃｒｉｐｔ（登録商標）や他のＰＤＬでも採用することが可能である。
【００３５】
スプーラー１３は、プリンタドライバ１２から出力された印刷データをスプールして、図示しないＵＳＢポートからプリンタ装置２へ出力する。
【００３６】
以上のように構成された本発明の実施の形態に係るプリンタドライバの動作を、図２から図９に基づいて説明する。図２及び図３は本発明の実施の形態に係るプリンタドライバの動作を説明するためのフローチャートである。図４はイメージデータ生成手段から出力された描画命令の一例を説明するための図である。図５は１ピクセル列の色配列を説明するための図である。図６は塗り潰し印刷命令を説明するための図である。図７はアプリケーションプログラムが出力するグラデーションのイメージデータを示す図である。図８は３色のカラーテーブルを説明するための図である。図９はグレースケールのときのカラーテーブルを説明するための図である。
【００３７】
まず、アプリケーションプログラム１１が印刷イメージとして図１０に示すようなカラーのグラデーションのイメージデータを「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数または「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数による描画命令で出力したとする。
【００３８】
この「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数は複写元の矩形イメージデータのビットマップを複写先の矩形領域へ複写する描画命令である。複写元がアプリケーションプログラム１１からのイメージデータを示し、複写先がプリンタ装置２に給紙される紙媒体上の領域を示す。
【００３９】
このとき、複写元の幅より複写先の幅が広い場合には、これらの関数は複写先の矩形領域に合わせて複写元の矩形イメージデータのビットマップが拡大される拡大描画命令となる。
【００４０】
図２に示すように、イメージデータ解析処理手段１２ａは「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数または「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数のパラメータ（引数）に基づいて、複写元のイメージデータの幅あるいは高さが１ピクセル列のイメージデータであるか否かを判定すると共に、拡大を指定したものか否かを判定する（ステップＳ１０）。本実施の形態では、図４に示すように、幅が１ピクセルで所定高さＶのイメージデータを、幅Ｈまで拡大する描画命令であるので、ステップＳ２０へ移行する。
【００４１】
次に、イメージデータ解析処理手段１２ａは、１ピクセル列のイメージデータの形式が１６ＢＰＰ（Ｂｉｔ  Ｐｅｒ  Ｐｉｘｅｌ）、２４ＢＰＰまたは３２ＢＰＰか否かを判定する（ステップＳ２０）。これらの形式はフルカラーと呼ばれグラデーションの描画によく使われるので、この１６ＢＰＰ，２４ＢＰＰ及び３２ＢＰＰを変換対象とすることでプリンタ装置２側の速度改善に効果的である。本実施の形態では２４ＢＰＰとする。
【００４２】
次に、イメージデータ解析処理手段１２ａは描画命令の拡大率が２４００以上あるか否かを判定する（ステップＳ３０）。この判定は矩形イメージデータの幅が１ピクセルなので、幅Ｈが２４００ピクセル以上あるか否かをチェックする。これは幅Ｈが２４００未満である場合に、描画命令を後述する塗り潰しの印刷命令に置き換えると、反対にプリンタ装置２側でのビットマップを処理するための演算時間が長くなってしまい、逆効果となるためである。
【００４３】
本実施の形態では、描画命令の拡大率が２４００以上あることを条件としているが、この拡大率は適宜設定することができる。プリンタ装置２の性能が高ければ、条件とした拡大率を２４００より小さくすることが可能である。
【００４４】
拡大率が２４００以上である場合には、イメージデータ解析処理手段１２ａは矩形イメージデータの上下方向（高さ方向）または左右方向（幅方向）に対して同色が何ピクセル連続しているかをカウントする（ステップＳ４０）。本実施の形態では、階調が変化するグラデーション方向が上下方向であるため、上から下へ順番にスキャンしてカウントする。
【００４５】
アプリケーションプログラム１１がグラデーションのイメージデータを生成するときには、１ピクセルごとに階調を減少または増加させて濃淡を変化させることは少なく、例えば、高さ方向の数百ピクセルを１ブロックとして段階的に濃淡を変化させたグラデーションとすることが多い。アプリケーションプログラム１１では、見た目に気にならない程度にグラデーション処理として所定のピクセル数ごとに濃淡を変化させたイメージデータとすることで、イメージデータを生成するときの処理量を減らしている。アプリケーションプログラム１１から出力されるイメージデータは上記のような色配列をしているので、イメージデータ解析処理手段１２ａはこの段階的に変化する１ピクセル列に含まれる同色のピクセル数Ｎ１〜Ｎ５をカウントすることで、矩形状のブロックＢ１〜Ｂ５の一辺となる高さＮ１〜Ｎ５を割り出す（図５参照）。
【００４６】
イメージデータ解析処理手段１２ａは各ブロックＢ１〜Ｂ５のイメージデータの高さ方向のピクセル数Ｎ１〜Ｎ５が１０より大きいか否かを検査する（ステップＳ５０）。これは１ピクセル列の各ブロックＢ１〜Ｂ５に位置するピクセル数が１０以下である場合に、描画命令を後述する塗り潰しの印刷命令に置き換えると、反対にプリンタ装置２側でのビットマップを処理するための演算時間が長くなってしまい、逆効果となるためである。
【００４７】
本実施の形態では、各ブロックＢ１〜Ｂ５の１ピクセル列を構成するピクセル数が１０より大きいことを条件としているが、このピクセル数は適宜設定することができる。プリンタ装置２の性能が高ければ、条件としたピクセル数を１０より小さくすることが可能である。
【００４８】
１ピクセル列のそれぞれのブロックＢ１〜Ｂ５に位置するピクセル数Ｎ１〜Ｎ５が１０より大きい場合には、印刷データ生成手段１２ｂが、図６に示すようにブロックＢ１〜Ｂ５のそれぞれに対して、幅Ｈとピクセル数Ｎ１〜Ｎ５とをパラメータ指定することで複写先の矩形領域を指定して、そのブロックの色でブロック全体を塗り潰すグラフィック命令である印刷命令を生成する（ステップＳ６０）。本実施の形態では、ＰＣＬでのＲｅｃｔａｎｇｌｅＰａｔｈコマンドによりブロックＢ１〜Ｂ５の塗り潰しを指定している。
【００４９】
このように印刷を希望するグラデーションのイメージデータが、幅Ｈが１ピクセルの矩形イメージデータのビットマップを拡大する描画命令により表されている場合には、同色ごとに矩形枠を塗り潰す複数の印刷命令に置き換えることで、プリンタ装置２側でのビットマップを拡大処理する必要がなくなるので、印刷のための処理量を少なくすることができる。
【００５０】
尚、本実施の形態では、縦列に並ぶ１ピクセル列を所定幅へ引き延ばすイメージデータを例に説明したが、横列に並ぶ１ピクセル列を所定高さに引き延ばすイメージデータとしても同様である。
【００５１】
次に、ステップＳ１０，Ｓ２０，Ｓ３０，Ｓ５０の各判定にて、ビットマップイメージコピー処理へ移行するように判定された場合と、アプリケーションプログラム１１が、図７に示すような左上から右下に向かうに従って徐々に濃くなる同色系のグラデーションのイメージデータを、「ＤｒｖＢｉｔｂｌｔ」関数による描画命令で出力した場合には、まず図３に示すステップＳ１１０が実行される。本実施の形態では、左上の座標が（Ｘ１，Ｙ２）、幅Ｈ、高さＶの矩形イメージデータを印刷するものとする。
【００５２】
この「ＤｒｖＢｉｔｂｌｔ」関数は、複写元となる指定された矩形イメージデータを複写先の矩形領域へ各ピクセルの色データをビットブロック転送により複写する描画命令である。つまり、この描画命令は矩形状のビットマップのイメージデータをそのまま印刷イメージとして指定するビットマップ描画命令である。
【００５３】
複写元がアプリケーションプログラム１１からのイメージデータであり、複写先がプリンタ装置２に給紙される紙媒体上の領域を示す。
【００５４】
ステップＳ１１０では、図２に示すステップＳ２０と同様に、イメージデータ解析処理手段１２ａにより矩形イメージデータの形式が１６ＢＰＰ、２４ＢＰＰまたは３２ＢＰＰか否かが判定される。
【００５５】
次に、イメージデータの全ピクセルをスキャンして、図８に示すような全ピクセルの色のカラーテーブル（インデックステーブル）を作成する（ステップＳ１２０）。具体的には、順次ピクセルをスキャンしたときに、以前に検出された色データと異なる色データが検出されると、カラーテーブルに色データを追加する。カラーテーブルを作成することで、このイメージデータが何色から構成されているかを明らかにすることができる。
【００５６】
アプリケーションプログラム１１がグラデーションのイメージデータを生成するときには、使用可能な階調幅全部を使用してグラデーションを表現することは少なく、例えば、ＲＧＢの各色がそれぞれ８ビットで割り当てられている場合では、最大１６５８１３７５色が使用できるが、この中から２５６色以内を使用したグラデーションとすることが多い。
【００５７】
アプリケーションプログラム１１では、見た目に気にならない程度に、グラデーション処理として色を間引いたイメージデータとすることで、イメージデータを生成するときの処理量を減らしている。
【００５８】
イメージデータ解析処理手段１２ａは、このイメージデータの全ピクセルをスキャンすることで、図８に示すように各ピクセルのＲＧＢの色データの各値を、８ビットで対応付けできるインデックス番号で指定可能なカラーテーブルに代入してインデックス化する。そうすることで、１ピクセルの色データを、８ビットのカラーテーブルのインデックス番号（０〜２５５）に置き換えることができるので、２４ＢＰＰを８ＢＰＰで指定することができる。
【００５９】
しかし、イメージデータ解析処理手段１２ａがカラーテーブルを作成していく中で、アプリケーションプログラム１１からのグラデーションのイメージデータが２５６種類以上の色を使用している場合がある。これは、インデックス番号０〜２５５で示されるカラーテーブルが一杯となっても、まだ全部のピクセルをスキャンできていない状態である。この場合には、イメージデータを８ＢＰＰへ変換することが不可能であることを意味している。
【００６０】
このようにして作成されたカラーテーブルのインデックス数が２５６以下の場合には８ＢＰＰに、１６以下の場合には４ＢＰＰに、２以下の場合には１ＢＰＰに変換することが可能であることがわかる。また、このとき、幅Ｈ×高さＶで算出される全ピクセル数が３９２より大きいか否かを判定する。２５６色のテーブルを作成する場合、元のイメージデータよりも容量を減らすためには、幅Ｈ×高さＶ×３バイト＜幅Ｈ×高さＶ＋３バイト×２５６＋１６バイト（１６バイトはコマンド増加分）の関係となる必要がある。つまり、幅Ｈ×高さＶが３９２以下であるときには、反対に容量が大きくなってしまうので、全ピクセル数が３９２より大きいときのみを変換対象としている。
【００６１】
従って、ステップＳ１３０にて、カラーテーブルインデックス数によって、イメージデータを８ＢＰＰ、４ＢＰＰ、１ＢＰＰへ変換可能か否かを判定し、不可である場合にはステップＳ１７０へ移行する。
【００６２】
イメージデータを各ＢＰＰへの変換可能である場合には、２４ＢＰＰのイメージデータを変換可能なＢＰＰのうち、最も小さいＢＰＰへ変換する（ステップＳ１４０）。つまり、各ピクセルのデータをインデックス番号を示すインデックス番号とカラーテーブルとで表すことで、イメージデータのデータ量は、８ＢＰＰの場合、幅Ｈ×高さＶ×３バイトから幅Ｈ×高さＶ×１バイト＋２５６×３バイト、４ＢＰＰの場合、（幅Ｈ×高さＶ）÷２バイト＋１６×３バイト、１ＢＰＰの場合、（幅Ｈ×高さＶ）÷８バイト＋２×３バイトと圧縮することができる。
【００６３】
また、イメージデータ解析処理手段１２ａはステップＳ１１０で１６、２４、３２ＢＰＰ形式ではないイメージデータが、４ＢＰＰまたは１ＢＰＰへ変換可能か否かを判定する（ステップＳ１５０）。これは、イメージデータが１６色または２色で構成されていることにより、変換されたイメージデータの上位４ビットまたは上位７ビットが全部０である否かを判定する。
【００６４】
ステップＳ１４０の処理の後、またはステップＳ１５０にて、イメージデータが４ＢＰＰまたは１ＢＰＰへ変換ができないと判断された場合には、イメージデータ解析処理手段１２ａはイメージデータがグレースケールか否かを判断する（ステップＳ１７０）。グレースケールとはグラデーションが白黒の明暗だけで構成されているものをいい、イメージデータがグレースケールか否かはカラーテーブルの赤色、緑色及び青色の値が同じで、イメージデータの一側から他側へ向かって増加または減少しているか否かで判断することができる。
【００６５】
イメージデータがグレースケールである場合には、イメージデータ解析処理手段１２ａはイメージデータをカラーからグレースケールへ変換する（ステップＳ１８０）。従って、イメージデータが２４ＢＰＰで描画されている場合には幅Ｈ×高さＶ×３バイトとなるが、カラーからグレースケールへ変換することにより（幅Ｈ×高さＶ）＋２５６（２５６階調の場合）となるので、更にデータ量を圧縮することが可能である。
【００６６】
このようにしてイメージデータを圧縮すると、印刷データ生成手段１２ｂは、圧縮された色データで構成されるイメージデータと、このイメージデータの色データをインデックス番号として各色を指定するインデックステーブルとにより、同色系のグラデーションのイメージデータを示すＰＣＬコマンド  ＲｅａｄＩｍａｇｅによる印刷データを生成する。
【００６７】
また、ステップＳ１０，Ｓ２０，Ｓ３０，Ｓ５０の各判定により、ビットマップイメージコピー処理へ移行するように判定された場合で、かつステップＳ１１０，Ｓ１３０，Ｓ１５０，Ｓ１７０の各判定において該当しないと判定された場合には、「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数または「ＤｒｖＳｔｒｅｔｃｈｂｌｔ」関数に対応するＰＣＬのコマンドをそのまま印刷データとして生成する。
【００６８】
更に、「ＤｒｖＢｉｔｂｌｔ」関数によりビットマップイメージコピー処理（ステップＳ１１０以降の処理）が実行された場合、「ＤｒｖＢｉｔｂｌｔ」関数に対応するＰＣＬのコマンドをそのまま印刷データとして生成する（ステップＳ１９０）。
【００６９】
このようにして生成された印刷データは、スプール手段として機能するスプーラー１３へ蓄積され（ステップＳ２００）、プリンタ装置２へ出力される（ステップＳ２１０）。
【００７０】
このように、本実施の形態に係るプリンタドライバは、アプリケーションプログラムから出力された描画命令を、プリンタ装置２側で印刷のための演算処理を軽減することができるＰＤＬで記述された印刷命令に置き換えることで、プリンタ装置２側での負荷を軽減することができるので、印刷時間を短縮することが可能である。
【００７１】
尚、本実施の形態では、アプリケーションプログラムがグラデーションのイメージデータを出力した場合を例に説明した。しかし、矩形状のイメージデータを印刷イメージとして指定するビットマップ描画命令（例えば、「ＤｒｖＢｉｔｂｌｔ」関数による描画命令）により印刷を指示する場合には、イメージデータに含まれる色がカラーテーブルのインデック数以下（本実施の形態では２５６色以下）であれば、イメージデータがグラデーションに限定されず、どのようなイメージデータであってもカラーテーブルを作成することでデータ容量を削減することが可能である。従って、プリンタ装置への転送時間やプリンタ装置側での負担を軽減することができるので、印刷時間を短縮することが可能である。
【産業上の利用可能性】
【００７２】
本発明は、グラデーションのように、同系色で描画される印刷において、アプリケーションからの１ピクセル列を引き延ばす描画命令を同色のブロックを塗り潰す印刷命令に置き換えることで、プリンタ装置側での負荷を軽くすることができるので、濃淡が徐々に変化するグラデーションのイメージデータを印刷する際に、印刷時間を短縮することが可能なプリンタドライバ及びその印刷制御方法に好適である。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態に係る印刷システムの構成図
【図２】本発明の実施の形態に係るプリンタドライバの動作を説明するためのフローチャート
【図３】本発明の実施の形態に係るプリンタドライバの動作を説明するためのフローチャート
【図４】イメージデータ生成手段から出力された描画命令の一例を説明するための図
【図５】１ピクセル列の色配列を説明するための図
【図６】塗り潰し印刷命令を説明するための図
【図７】アプリケーションプログラムが出力するグラデーションのイメージデータを示す図
【図８】３色のカラーテーブルを説明するための図
【図９】グレースケールのときのカラーテーブルを説明するための図
【図１０】アプリケーションがイメージデータを印刷するときの描画命令を説明するための図
【符号の説明】
【００７４】
１    コンピュータ
２    プリンタ装置
１１    アプリケーションプログラム
１２    プリンタドライバ
１２ａ    イメージデータ解析処理手段
１２ｂ    印刷データ生成手段
１３    スプーラー
【図１】
2010152597.tif 000003
【図２】
2010152597.tif 000004
【図３】
2010152597.tif 000005
【図４】
2010152597.tif 000006
【図５】
2010152597.tif 000007
【図６】
2010152597.tif 000008
【図７】
2010152597.tif 000009
【図８】
2010152597.tif 000010
【図９】
2010152597.tif 000011
【図１０】
2010152597.tif 000012