(57)【要約】【課題】高速に印刷データを生成することが出来るプリンタドライバを提供する。【解決手段】イメージデータ形式の印刷データを生成するためのプリンタドライバを、印刷が指示された際に、印刷すべき電子的ドキュメントからＲＧＢＸバンドデータを生成し、そのＲＧＢＸバンドデータを構成する各ＲＧＢＸラスタデータに対して、そのＲＧＢＸラスタデータを同一のＲＧＢＸデータが連続している複数の部分に分割することが出来る情報を得るための調査が行われる（ステップＳ１０４、Ｓ１０５、Ｓ１０６等）とともに、その調査結果がＲＧＢＸラスタデータ内に記録され（ステップＳ１０７、Ｓ１１０）、各ＲＧＢＸラスタデータのＣＭＹＫＸラスタデータへの変換を、ＲＧＢＸラスタデータ内に記録された調査結果に基づき行うように、作成しておく。【選択図】　図２
2004054653.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
印刷すべき画像を表す、複数の第１種画素データからなる第１種イメージデータを、前記コンピュータが備えるメモリ上に生成する第１種イメージデータ生成ステップと、
前記第１種イメージデータ生成ステップにより生成された第１種イメージデータに対して、その第１種イメージデータを同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行う調査ステップと、
前記調査ステップにより得られた前記連続部分情報に基づき、前記第１種イメージデータ生成ステップにより生成された前記第１種イメージデータに含まれる同一の第１種画素データが連続している各部分について、その部分を構成する１つの第１種画素データに前記所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる前記第１種画素データの数と等しい数だけ前記メモリ上のデータ記憶領域に記憶する処理である部分変換処理を行う第２種イメージデータ生成ステップと、
前記第２種イメージデータ生成ステップにより生成された第２種イメージデータに基づき、プリンタに供給するための印刷データを生成する印刷データ生成ステップ
とを、実行させることを特徴とするプリンタドライバ。
【請求項２】
前記第１種画素データが、或る画素の色を表す色データと、その画素の属性を示す属性データとからなるデータであり、
前記調査ステップが、２つの第１種画素データの色データ及び属性データが一致しているときにそれらの第１種画素データが同一の第１種画素データであると判断するステップであり、
前記第２種バンドデータ生成ステップが、前記所定の色変換処理として、第１種画素データに含まれる属性データに応じてその内容が定められている処理を行うステップである
ことを特徴とする請求項１に記載のプリンタドライバ。
【請求項３】
前記属性データが、画素の属性を示すために使用されている第１ビット群と、画素の属性を示すために使用されていない第２ビット群とからなる所定ビット数のデータであり、
前記調査ステップは、前記第１種イメージデータ生成ステップにより生成された第１種イメージデータに対する調査結果を表す情報を、その第１種イメージデータに含まれる幾つかの第１種画素データ内の属性データの前記第２ビット群に設定するステップであり、
前記第２種イメージデータ生成ステップは、前記調査ステップによる前記第１種イメージデータに対する調査結果を、前記第１種イメージデータを構成している幾つかの第１種画素データに含まれている前記属性データの前記第２ビット群の値に基づき、把握するステップである
ことを特徴とする請求項２に記載のプリンタドライバ。
【請求項４】
前記第１種イメージデータ生成ステップが、複数の第１種画素データからなる第１種ラスタデータを複数個含む第１種バンドデータを前記画像を構成するバンド毎に前記メモリ上に生成することにより、前記第１種イメージデータを生成するステップであり、
前記調査ステップが、前記第１種イメージデータ生成ステップにより生成された各第１種バンドデータに対して、その第１種バンドデータに含まれる各第１種ラスタデータが、全ての画素が白画素であることを表している白ラスタデータであるか否かを判別するための調査であるとともに、その第１種ラスタデータを、同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行うステップであり、
前記第２種イメージデータ生成ステップが、前記調査ステップによる調査結果に基づき、前記第１種イメージデータ生成ステップにより生成された，少なくとも１つの第１種ラスタデータが白ラスタデータではない各第１種バンドデータに対してのみ、その第１種ラスタデータに含まれる同一の第１種画素データが連続している各部分について、当該部分を構成する１つの第１種画素データに前記所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる前記第１種画素データの数と等しい数だけ前記メモリ上のデータ記憶領域に記憶する部分変換処理を行うステップであり、
前記印刷データステップが、前記第２種イメージデータ生成ステップにより生成された各第２種バンドデータから、前記印刷データを生成するステップである
ことを特徴とする請求項１乃至請求項３に記載のプリンタドライバ。
【請求項５】
前記第２種イメージデータ生成ステップが、白ラスタデータであることが前記調査ステップにより判別されている各第１種ラスタデータに対しては、白画素を表す所定の第２種画素データを、第１種ラスタデータに含まれる第１種画素データの数と等しい個数、前記データ記憶領域に記憶する処理を行うステップである
ことを特徴とする請求項４記載のプリンタドライバ。
【請求項６】
前記調査ステップが、各第１種ラスタデータに対する調査を、その第１種ラスタデータの先頭部分に同一の画素データが所定数以上連続していないことを見いだしたときに、終了するステップであり、
前記第２種イメージデータ生成ステップが、前記連続部分情報が得られていない段階で調査が終了された各第１種ラスタデータに対しては、前記連続部分情報が得られている各第１種ラスタデータに対するものとは異なる手順の処理にて前記第２種ラスタデータを生成するステップである
ことを特徴とする請求項４又は請求項５に記載のプリンタドライバ。
【請求項７】
前記データ記憶領域には、前記第２種画素データを構成する複数種類の成分データのそれぞれに対応づけられた複数の、連続した記憶領域が、含まれ、
前記第２種イメージデータ生成ステップにて行われる前記部分変換処理が、Ｌ個の第２種画素データを前記データ記憶領域に記憶する必要がある場合に、当該第２種画素データを構成する成分データ毎に、前記データ記憶領域内のその成分データに対応づけられている前記記憶領域に、その成分データを所定数並べたデータを記憶する第１記憶処理とその成分データを記憶する第２記憶処理とがＬ個の第２種画素データを当該記憶領域に記憶するために必要な回数ずつ行われる処理であるとともに、第１記憶処理が行われる回数ができるだけ多くなるように各処理の実行回数が定められる処理である
ことを特徴とする請求項４乃至請求項６のいずれかに記載のプリンタドライバ。
【請求項８】
コンピュータに、
印刷すべき画像を表す、複数の第１種画素データからなる第１種イメージデータを、前記コンピュータが備えるメモリ上に生成する第１種イメージデータ生成ステップと、
前記第１種イメージデータ生成ステップにより生成された第１種イメージデータに対して、その第１種イメージデータを同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行う調査ステップと、
前記調査ステップにより得られた前記連続部分情報に基づき、前記第１種イメージデータ生成ステップにより生成された前記第１種イメージデータに含まれる同一の第１種画素データが連続している各部分について、その部分を構成する１つの第１種画素データに前記所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる前記第１種画素データの数と等しい数だけ前記メモリ上のデータ記憶領域に記憶する処理である部分変換処理を行う第２種イメージデータ生成ステップと、
前記第２種イメージデータ生成ステップにより生成された第２種イメージデータに基づき、プリンタに供給するための印刷データを生成する印刷データ生成ステップ
とを、実行させるためのプリンタドライバを記録したことを特徴とするコンピュータ可読媒体。
【請求項９】
データを記憶するための第２種イメージデータ記憶手段と、複数の第１種画素データからなる第１種イメージデータに対して、その第１種イメージデータを同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行う調査手段と、
前記調査ステップにより得られた前記連続部分情報に基づき、前記第１種イメージデータ生成ステップにより生成された前記第１種イメージデータに含まれる同一の第１種画素データが連続している各部分について、その部分を構成する１つの第１種画素データに前記所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる前記第１種画素データの数と等しい数だけ前記第２種イメージデータ記憶手段に記憶する処理である部分変換処理を行う第２種イメージデータ生成手段
とを、備えることを特徴とするイメージデータ変換装置。
【請求項１０】
複数の第１種画素データからなる第１種イメージデータに対して、その第１種イメージデータを同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行う調査ステップと、
前記調査ステップにより得られた前記連続部分情報に基づき、前記第１種イメージデータ生成ステップにより生成された前記第１種イメージデータに含まれる同一の第１種画素データが連続している各部分について、その部分を構成する１つの第１種画素データに前記所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる前記第１種画素データの数と等しい数だけ所定の記憶手段に記憶する処理である部分変換処理を行う第２種イメージデータ生成ステップ
とを、含むことを特徴とするイメージデータ変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタドライバ、コンピュータ可読媒体、イメージデータ変換装置及びイメージデータ変換方法に、関する。
【０００２】
【従来の技術】
カラープリンタ用のプリンタドライバの中には、カラープリンタ側で特殊な処理を行う必要がない形式の印刷データ（ＣＭＹＫイメージデータ形式やＣＭＹイメージデータ形式の印刷データ）を生成するものが、存在している。
【０００３】
そのような印刷データ、例えば、ＣＭＹＫイメージデータ形式の印刷データを生成する際には、多数のＲＧＢデータをＣＭＹＫデータに変換することが必要である。しかしながら、多数のＲＧＢデータのＣＭＹＫデータへの変換が、一々、ＲＧＢデータとＣＭＹＫデータの対応関係を定めるＬＵＴ（Ｌｏｏｋ　Ｕｐ　Ｔａｂｌｅ）を参照して行われるようにしたのでは、印刷データの生成に時間がかかってしまうことになる。このため、ＬＵＴを利用する処理の実行回数が少なくなるようにしたプリンタドライバが、開発されている。
【０００４】
具体的には、１バンド分の印刷データを、図５に示したような手順で生成するプリンタドライバが、開発されている。
【０００５】
すなわち、このプリンタドライバによって或るバンド（以下、処理対象バンドと表記する）に関する印刷データが生成される際には、まず、アプリケーションから与えられるデータに基づき、印刷データを生成すべきバンドに関するＲＧＢＸバンドデータが生成される（ステップＳ５０１）。
【０００６】
ここで、ＲＧＢＸバンドデータとは、２４ビットのＲＧＢデータと８ビットのＸデータとからなるＲＧＢＸデータを１バンド分の画素のそれぞれについて含むデータのことである。また、Ｘデータとは、高品質な色変換（印刷対象の内容に応じた色変換）を行えるようにするために、各ＲＧＢデータに付加されているデータのことである。具体的には、このＸデータは、図６に模式的に示したように、第６及び第７ビットに、色変換時（ＲＧＢデータをＣＭＹＫデータに変換する時）に使用すべきＬＵＴを指定するデータ（図では、色変換用パラメータ）が設定され、第０ビットに、ＣＭＹＫＸバンドデータから印刷データを生成する際の処理内容を指定するデータ（図では、スクリーン処理用パラメータ）が設定されるデータ（第１〜第５ビットは、常に“０”のデータ）となっている。
【０００７】
ステップＳ５０１の完了後には、生成されたＲＧＢＸバンドデータ（以下、処理対象ＲＧＢＸバンドデータと表記する）が、全てＲＧＢＸデータが白画素を表しているバンドデータ（以下、白バンドデータと表記する）であるか否かをチェックするための処理（ステップＳ５０２）が行われる。すなわち、このステップでは、処理対象ＲＧＢＸラスタデータ内の各ＲＧＢＸデータについて、順次、そのＲＧＢＸデータが白画素を表しているデータであるか否かをチェックする処理であって、白画素を表していないＲＧＢＸデータが見いだされたとき、或いは、全てＲＧＢＸデータが白画素を表していることが確認されたときに、終了される処理が、行われる。
【０００８】
そして、処理対象ＲＧＢＸバンドデータが白バンドデータであった場合（ステップＳ５０３；ＮＯ）には、処理対象バンドに関する印刷データが生成されることなく、この図５の処理が終了される（このプリンタドライバは、実際に描画が必要とされる画素が存在しないバンドに関する印刷データを生成しないものとなっている）。
【０００９】
一方、処理対象ＲＧＢＸバンドデータが白バンドデータではなかった場合（ステップＳ５０３；ＮＯ）には、処理対象ＲＧＢＸバンドデータ内の最初のＲＧＢＸデータが読み出されて処理対象ＲＧＢＸデータとされる（ステップＳ５０４）。次いで、その処理対象ＲＧＢＸデータ内のＸデータ（以下、処理対象Ｘデータと表記する）にて指定されているＬＵＴを利用して、処理対象ＲＧＢＸデータ内のＲＧＢデータ（以下、処理対象ＲＧＢデータと表記する）に相当するＣＭＹＫデータを求める処理（ステップＳ５０５）が行われる。なお、このプリンタドライバは、ＬＵＴから目的とするＣＭＹＫデータの検索が高速に行えるようにするために、このステップＳ５０５にて、ＲＧＢデータによりハッシュキーが作成されると共に、キャッシュが利用される形の処理が行われるものとなっている。
【００１０】
その後、求めたＣＭＹＫデータと処理対象ＲＧＢＸデータ内のＸデータとからなるＣＭＹＫＸデータを、メモリ上に確保されているＣＭＹＫＸバンドデータ記憶領域に記憶する処理（ステップＳ５０６）が、行われる。ここで、ＣＭＹＫＸバンドデータ記憶領域とは、連続した記憶領域がデータの種類別に確保されている記憶領域（Ｃ、Ｍ、Ｙ、Ｋ、Ｘ用の各記憶領域の集合）のことである。すなわち、このステップＳ５０６では、メモリ上の５カ所にそれぞれ１バイトのデータを書き込む処理が行われる。
【００１１】
その後、全データの処理が完了していなかった場合（ステップＳ５０７；ＮＯ）には、ＲＧＢＸバンドデータから、処理対象ＲＧＢＸバンドデータ内の次のＲＧＢＸデータが処理対象ＲＧＢＸデータとして読み出される（ステップＳ５０８）。
【００１２】
そして、その処理対象ＲＧＢＸデータと前回の処理対象ＲＧＢＸデータとが同一のデータであるか否かが判断（ステップＳ５０９）され、同一であった場合（ステップＳ５０９；ＹＥＳ）には、前回、ＣＭＹＫＸラスタデータ記憶領域に記憶したものと同じＣＭＹＫＸデータ（図では、現ＣＭＹＫＸデータ）を、ＣＭＹＫＸラスタデータ記憶領域に記憶する処理（ステップＳ５１０）が行われた後に、ステップＳ５０７以降の処理が行われる。
【００１３】
一方、その処理対象ＲＧＢＸデータが前回の処理対象ＲＧＢＸデータと同じデータではなかった場合（ステップＳ５０９；ＮＯ）には、ステップＳ５０５以降の処理が行われる。
【００１４】
そして、処理対象ＲＧＢＸラスタデータ内の全ＲＧＢＸデータの処理が完了したとき（ステップＳ５０７；ＹＥＳ）に、生成が完了したＣＭＹＫＸバンドデータ（その時点において、ＣＭＹＫＸバンドデータ記憶領域に記憶されているデータ）内のＣＭＹＫデータ群に基づき、ＣＭＹＫＸバンドデータ内のＸデータ群の第０ビットを参照して印刷データを生成する処理（ステップＳ５１１）が、行われる。
【００１５】
【発明が解決しようとする課題】
本発明の課題は、既存の手順とは異なる手順の処理により、高速に印刷データを生成することが出来るプリンタドライバを、提供することにある。
【００１６】
また、本発明の他の課題は、既存の手順とは異なる手順の処理により、イメージデータの色変換を高速に行えるイメージデータ変換方法を、提供することにある。
【００１７】
【課題を解決するための手段】
上記課題を解決するために、本発明のプリンタドライバは、コンピュータに、印刷すべき画像を表す、複数の第１種画素データからなる第１種イメージデータを、コンピュータが備えるメモリ上に生成する第１種イメージデータ生成ステップと、第１種イメージデータ生成ステップにより生成された第１種イメージデータに対して、その第１種イメージデータを同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行う調査ステップと、調査ステップにより得られた連続部分情報に基づき、第１種イメージデータ生成ステップにより生成された第１種イメージデータに含まれる同一の第１種画素データが連続している各部分について、その部分を構成する１つの第１種画素データに所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる第１種画素データの数と等しい数だけメモリ上のデータ記憶領域に記憶する処理である部分変換処理を行う第２種イメージデータ生成ステップと、第２種イメージデータ生成ステップにより生成された第２種イメージデータに基づき、プリンタに供給するための印刷データを生成する印刷データ生成ステップとを、実行させることが出来るように、作成される。
【００１８】
このプリンタドライバによれば、第１種画素データの比較がまとめて行われ田後に色変換が行われる形で印刷データが生成されるので、画素データの比較と色変換が交互に行われる既存のプリンタドライバよりも、高速に印刷データが生成できることになる。
【００１９】
本発明のプリンタドライバは、第１種画素データが、或る画素の色を表す色データと、その画素の属性を示す属性データとからなるデータとなり、調査ステップが、２つの第１種画素データの色データ及び属性データが一致しているときにそれらの第１種画素データが同一の第１種画素データであると判断するステップとなり、第２種バンドデータ生成ステップが、所定の色変換処理として、第１種画素データに含まれる属性データに応じてその内容が定められている処理を行うステップとなるように、構成しておく（プログラムしておく）ことが出来る。
【００２０】
また、第１種画素データとして属性データを含むものを用いる場合には、属性データが、画素の属性を示すために使用されている第１ビット群と、画素の属性を示すために使用されていない第２ビット群とからなる所定ビット数のデータとなり、調査ステップが、第１種イメージデータ生成ステップにより生成された第１種イメージデータに対する調査結果を表す情報を、その第１種イメージデータに含まれる幾つかの第１種画素データ内の属性データの第２ビット群に設定するステップとなり、第２種イメージデータ生成ステップが、調査ステップによる第１種イメージデータに対する調査結果を、第１種イメージデータを構成している幾つかの第１種画素データに含まれている属性データの第２ビット群の値に基づき、把握するステップとなるように、プリンタドライバを構成しておくとが出来る。
【００２１】
また、本発明のプリンタドライバを、第１種イメージデータ生成ステップが、複数の第１種画素データからなる第１種ラスタデータを複数個含む第１種バンドデータを画像を構成するバンド毎にメモリ上に生成することにより、第１種イメージデータを生成するステップとなり、調査ステップが、第１種イメージデータ生成ステップにより生成された各第１種バンドデータに対して、その第１種バンドデータに含まれる各第１種ラスタデータが、全ての画素が白画素であることを表している白ラスタデータであるか否かを判別するための調査であるとともに、その第１種ラスタデータを、同一の第１種画素データが連続している複数の部分に分割することが出来る情報である連続部分情報を得るための調査を行うステップとなり、第２種イメージデータ生成ステップが、調査ステップによる調査結果に基づき、第１種イメージデータ生成ステップにより生成された，少なくとも１つの第１種ラスタデータが白ラスタデータではない各第１種バンドデータに対してのみ、その第１種ラスタデータに含まれる同一の第１種画素データが連続している各部分について、当該部分を構成する１つの第１種画素データに所定の色変換処理を施すことにより第２種画素データを得た後に当該第２種画素データを当該部分に含まれる第１種画素データの数と等しい数だけメモリ上のデータ記憶領域に記憶する部分変換処理を行うステップとなり、印刷データステップが、第２種イメージデータ生成ステップにより生成された各第２種バンドデータから、印刷データを生成するステップとなるように、構成しておくことも出来る。
【００２２】
このようにプリンタドライバを構成しておけば、白ラスタデータであるか否かのチェックが２回行われることがなくなるので、その分、既存のプリンタドライバよりも高速に印刷データが生成できることになる。
【００２３】
また、上記のようにプリンタドライバを構成する際には、第２種イメージデータ生成ステップが、白ラスタデータであることが調査ステップにより判別されている各第１種ラスタデータに対しては、白画素を表す所定の第２種画素データを、第１種ラスタデータに含まれる第１種画素データの数と等しい個数、データ記憶領域に記憶する処理を行うステップとなるようにしておくことが出来る。また、調査ステップが、各第１種ラスタデータに対する調査を、その第１種ラスタデータの先頭部分に同一の画素データが所定数以上連続していないことを見いだしたときに、終了するステップとなり、第２種イメージデータ生成ステップが、連続部分情報が得られていない段階で調査が終了された各第１種ラスタデータに対しては、連続部分情報が得られている各第１種ラスタデータに対するものとは異なる手順の処理にて第２種ラスタデータを生成するステップとなるようにしておくことも出来る。
【００２４】
さらに、データ記憶領域が、第２種画素データを構成する複数種類の成分データのそれぞれに対応づけられた複数の、連続した記憶領域が含まれる領域となり、第２種イメージデータ生成ステップにて行われる部分変換処理が、Ｌ個の第２種画素データをデータ記憶領域に記憶する必要がある場合に、当該第２種画素データを構成する成分データ毎に、データ記憶領域内のその成分データに対応づけられている記憶領域に、その成分データを所定数並べたデータを記憶する第１記憶処理とその成分データを記憶する第２記憶処理とがＬ個の第２種画素データを当該記憶領域に記憶するために必要な回数ずつ行われる処理であるとともに、第１記憶処理が行われる回数ができるだけ多くなるように各処理の実行回数が定められる処理となるようにしておくことも出来る。
【００２５】
そして、本発明のコンピュータ可読媒体には、本発明のプリンタドライバが記録されているので、本発明のコンピュータ可読媒体によれば、コンピュータを、印刷データを高速に生成できる装置として機能させられることになる。
【００２６】
また、本発明のイメージデータ変換装置／方法は、本発明のプリンタドライバと同様の手順でイメージデータの変換（第１種イメージデータに基づく第２種イメージデータの生成）を行う装置／方法となっている。従って、本発明のイメージデータ変換装置／方法を用いれば、イメージデータに対する色変換を高速に行えることになる。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００２８】
図１に模式的に示したように、本発明の一実施形態に係るプリンタドライバ１０は、ＣＭＹＫイメージデータ形式の印刷データの供給を必要とするカラーレーザプリンタ５０を利用するコンピュータ６０にインストールされるプログラムである。
【００２９】
本実施形態に係るプリンタドライバ１０は、図５及び図６を用いて説明した既存のプリンタドライバ（以下、オリジナルプリンタドライバと表記する）を、ＲＧＢＸバンドデータのＣＭＹＫＸバンドデータへの変換が新規な手順の処理で行われるように、改良したものである。換言すれば、本プリンタドライバ１０は、オリジナルプリンタドライバと類似したものとなっている。このため、以下では、オリジナルプリンタドライバとの差異を中心に、本実施形態に係るプリンタドライバ１０の機能を説明することにする。
【００３０】
既に説明したように、オリジナルプリンタドライバによる印刷データの生成時には、アプリケーションからのデータに基づき生成されたＲＧＢＸバンドデータについて、まず、そのＲＧＢＸバンドデータが白バンドデータであるか否かをチェックするための処理（図５のステップＳ５０２）が、行われる。これに対して、本プリンタドライバ１０による印刷データの生成時には、アプリケーションからのデータに基づき生成されたＲＧＢＸバンドデータ（オリジナルプリンタドライバにより生成されるものと同構成のもの）を構成している各ＲＧＢＸラスタデータについて、図２に示した手順のＲＧＢＸラスタデータ調査処理が、行われる。
【００３１】
すなわち、或るＲＧＢＸラスタデータ（以下、処理対象ＲＧＢＸラスタデータと表記する）に対するＲＧＢＸラスタデータ調査処理時には、まず、変数Ｌ、Ｎ、Ｎｓが、それぞれ、“１”に初期化される（ステップＳ１０１）。
【００３２】
その後、処理対象ＲＧＢＸラスタデータから、先頭画素に関するＲＧＢＸデータが読み出され（ステップＳ１０２）、Ｎに“１”が加算される（ステップＳ１０３）。その後、処理対象ＲＧＢＸラスタデータから、次のＲＧＢＸデータ（Ｎ番目のＲＧＢＸデータ）が読み出され（ステップＳ１０４）、読み出したＲＧＢＸデータが、前ＲＧＢＸデータ（ステップＳ１０２或いは前回のステップＳ１０４で読み出されたＲＧＢＸデータ）と同じデータであるか否かが判断される（ステップＳ１０５）。
【００３３】
両ＲＧＢＸデータが同一のデータであった場合（ステップＳ１０５；ＹＥＳ）には、ステップＳ１０６にて、Ｌに“１”が加算される。その後、前ＲＧＢＸデータとその値を比較したＲＧＢＸデータが、処理対象ＲＧＢＸラスタデータ内の最終画素に関するデータであるか否かが判断（ステップＳ１０９）され、そうでなかった場合（ステップＳ１０９；ＮＯ）には、ステップＳ１０３以降の処理が再び行われる。
【００３４】
一方、両ＲＧＢＸデータが異なったデータであった場合（ステップＳ１０５；ＮＯ）には、それまでの調査により得られた調査結果を表す情報を処理対象ＲＧＢＸラスタデータ内に設定する処理である調査結果記録処理（ステップＳ１０７）が、行われる。
【００３５】
この調査結果記録処理では、まず、その時点におけるＬ値が３以下であるか否かが判断される。そして、Ｌ値が３以下であった場合には、そのＬ値を、処理対象ＲＧＢＸラスタデータ内のＮｓ番目の画素に関するＸデータの第１〜第３ビットに設定する処理が行われる。一方、Ｌ値が３を超えていた場合には、“Ｌ　ｍｏｄ４”（Ｌを“４”で割った余り）、“１”を、それぞれ、Ｎｓ番目のＲＧＢＸデータに関するＸデータの第１〜第３ビット、第４ビットに設定し、“Ｎｓ＋１”番目の画素に関するＲＧＢＸデータが記憶されている領域に、ＩＮＴ（Ｌ／４）（Ｌを４で割った商）を記憶する処理（“Ｎｓ＋１”番目のＲＧＢＸデータを、Ｉｎｔ（Ｌ／４）に書き換える処理）が、行われる。
【００３６】
なお、流れ図への表記は省略してあるが、このＲＧＢＸラスタデータ調査処理は、調査結果記録処理が行われることなく終了される場合がある処理となっている。具体的には、ＲＧＢＸラスタデータ調査処理は、ステップＳ１０７が最初に実行される直前に、その時点におけるＬ値が規定値ＬＬＭＴ未満であるか否かが判断され、Ｌ値が規定値ＬＬＭＴ未満であった場合には、調査結果記録処理が行われることなく終了される処理となっている。換言すれば、このＲＧＢＸラスタデータ調査処理は、処理対象ＲＧＢＸラスタデータが、その先頭側のＬＬＭＴ個のＲＧＢＸデータが同一データとはなっていないＲＧＢＸラスタデータであることが判った時点で終了される処理となっている。
【００３７】
調査結果記録処理（ステップＳ１０７）の終了後には、Ｌに“１”が設定されるとともに、Ｎｓにその時点におけるＮ値が設定される（ステップＳ１０８）。そして、未処理のＲＧＢＸデータが処理対象ＲＧＢＸラスタデータ内に残っていた場合（ステップＳ１０９；ＮＯ）には、ステップＳ１０３からの処理が再び行われ、処理対象ＲＧＢＸラスタデータ内の全てのＲＧＢＸデータに対する処理が完了した場合（ステップＳ１０９；ＹＥＳ）には、ステップＳ１１０にて、調査結果記録処理が行われる。
【００３８】
このステップＳ１１０で実行される調査結果記録処理は、ステップＳ１０７で実行される調査結果記録処理とほぼ同内容の処理である。ただし、ステップＳ１１０で実行される調査結果記録処理では、Ｎｓ値が１であり、かつ、直前に、前データと比較したＲＧＢＸデータが白画素を表すデータであった場合（つまり、処理対象ＲＧＢＸラスタデータが白ラスタデータであった場合）、１番目の画素に関するＸデータの第４ビット等に値が設定されるのではなく、当該Ｘデータの第５ビットに“１”が設定される。
【００３９】
そして、ステップＳ１１０が完了した際に、処理対象ＲＧＢＸラスタデータに対するＲＧＢＸラスタデータ調査処理が終了される（次のＲＧＢＸラスタデータに対するＲＧＢＸラスタデータ調査処理が開始される）。
【００４０】
要するに、ＲＧＢＸラスタデータ調査処理は、処理対象ＲＧＢＸラスタデータが、全ての画素が白画素であることを表している白ラスタデータであるか否かを判別するための調査であるとともに、処理対象ＲＧＢＸラスタデータを同一のＲＧＢＸデータが連続している複数の部分に分割することが出来る情報を得るための調査が行われ、その調査結果を示す情報が、図３に模式的に示したような形で、処理対象ＲＧＢＸラスタデータ内の幾つかのＸデータの第１〜第５ビット（第５ビットが使用されるのは、１番目の画素に関するＸデータのみ）に記録される処理となっている。また、ＲＧＢＸラスタデータ調査処理は、処理対象ＲＧＢＸラスタデータが、その先頭側のＬＬＭＴ個のＲＧＢＸデータが同一データとはなっていないＲＧＢＸラスタデータであった場合には、処理対象ＲＧＢＸラスタデータに何ら情報を設定しない（１番目の画素に関するＸデータの第１〜第５ビットを“０ｘ０００００”に維持する）処理ともなっている。
【００４１】
本プリンタドライバ１０による印刷データの生成時には、このようなＲＧＢＸラスタデータ調査処理が、処理対象となっているＲＧＢＸバンドデータ（以下、処理対象ＲＧＢＸバンドデータと表記する）を構成している全てのＲＧＢＸラスタデータに対して、処理対象ＲＧＢＸバンドデータが白バンドデータであるか否かをチェックするための処理（白ラスタデータではないＲＧＢＸラスタデータを見いだしたときに、その旨を記憶する処理）を伴う形で、行われる。
【００４２】
そして、処理対象ＲＧＢＸバンドデータが白バンドデータであった場合には、オリジナルプリンタドライバと同様に、そのバンドに関する印刷データの生成が省略される。一方、処理対象ＲＧＢＸバンドデータが白バンドデータでなかった場合には、処理対象ＲＧＢＸバンドデータ内の各ＲＧＢＸラスタデータに対して、図４に示した手順のＣＭＹＫＸラスタデータ生成処理が、行われる。
【００４３】
すなわち、或るＲＧＢＸラスタデータ（以下、処理対象ＲＧＢＸラスタデータと表記する）に対するＣＭＹＫＸラスタデータ生成処理時には、まず、処理対象ＲＧＢＸラスタデータから、先頭画素に関するＲＧＢＸデータが読み出される（ステップＳ２０１）。そして、そのＲＧＢＸデータに含まれるＸデータの第１〜第５ビットの値に基づき、処理対象ＲＧＢＸラスタデータが、白ラスタデータ、情報非設定ラスタデータ、情報設定済ラスタデータのいずれであるかが、判断される（ステップＳ２０２）。ここで、情報非設定ラスタデータとは、調査結果記録処理が行われることなくＲＧＢＸラスタデータ調査処理が終了されたＲＧＢＸラスタデータのことであり、情報設定済ラスタデータとは、ＲＧＢＸラスタデータ調査処理時に調査結果記録処理が行われたＲＧＢＸラスタデータ（白ラスタデータではないもの）のことである。
【００４４】
要するに、このステップＳ２０２では、Ｘデータの第１〜第５ビットの状態が、第５ビットが“１”となっていた場合には、処理対象ＲＧＢＸラスタデータが白ラスタデータであると判断される。また、Ｘデータの第１〜第４ビットの中に“１”となっているビットが存在していた場合には、処理対象ＲＧＢＸラスタデータが情報設定済ラスタデータと判断され、Ｘデータの第１〜第５ビットが全て“０”となっていた場合には、処理対象ＲＧＢＸラスタデータが情報非設定ラスタデータであると判断される。
【００４５】
そして、処理対象ＲＧＢＸラスタデータが白ラスタデータであった場合（ステップＳ２０３；白）には、ＣＭＹＫＸバンドデータ記憶領域上に、処理対象ＲＧＢＸラスタデータに関するＣＭＹＫＸラスタデータ（処理対象ＲＧＢＸラスタデータの変換結果）として、ＮＭＡＸ個の，全ビットが“０”となっているＣＭＹＫＸデータ（“白”を表すデータ）を記憶する処理（ステップＳ２０４）が行われる。なお、ＮＭＡＸとは、ＲＧＢＸラスタデータに含まれるＲＧＢＸデータの数のことである。また、このステップＳ２０４の処理は、ＣＭＹＫＸバンドデータ記憶領域を構成しているＣ、Ｍ、Ｙ、Ｋ、Ｘデータ記憶領域に、それぞれ、Ｃ、Ｍ、Ｙ、Ｋ、Ｘデータ（この場合、いずれのデータも“０ｘ００００００００”）を４個ずつ（４バイトデータとして）記憶することにより行われる。
【００４６】
また、処理対象ＲＧＢＸラスタデータが情報設定済ラスタデータであった場合（ステップＳ２０３；情報設定済）には、ステップＳ２１１〜Ｓ２１５の処理により、ＣＭＹＫＸラスタデータがＣＭＹＫラスタデータ記憶領域上に生成される。
【００４７】
すなわち、この場合、まず、処理対象Ｘデータ（処理対象ＲＧＢＸデータ内のＸデータ）中の第６，７ビットが示しているＬＵＴを用いて、処理対象ＲＧＢデータに応じたＣＭＹＫデータを求める処理（ステップＳ２１１）が、行われる。このステップＳ２１１の処理は、オリジナルプリンタドライバにより行われているもの（図５のステップＳ５０５）と同じものである。
【００４８】
次いで、処理対象Ｘデータの値に基づき、処理対象ＲＧＢＸデータに関する連続数Ｌ等を特定する処理（ステップＳ２１２）が、行われる。より具体的には、このステップＳ２１２では、処理対象Ｘデータの第４ビットが“０”である場合には、処理対象Ｘデータの第１〜第３ビットが示している値をＬ及びＱとして記憶し、“０”をＰとして記憶する処理が行われる。また、処理対象Ｘデータの第４ビットが“１”である場合には、処理対象ＲＧＢＸラスタデータ内の次の３２ビットデータが表している値をＰとして記憶し、処理対象Ｘデータの第１〜第３ビットが示している値をＱとして記憶し、“４×Ｐ＋Ｑ”をＬとして記憶する処理が行われる。
【００４９】
そして、続くステップＳ２１３において、処理対象Ｘデータ、ステップＳ２１１の処理にて求められたＣＭＹＫデータ内のＣ，Ｍ，Ｙ，Ｋデータのそれぞれについて、ＣＭＹＫＸバンドデータ記憶領域内の対応記憶領域に、そのデータ（１バイトデータ）を４個並べた４バイトデータを書き込む処理がＰ回行われると共に、そのデータを書き込む処理がＱ回行われる。なお、このステップＳ２１３の処理は、４バイトデータのメモリへの書き込みと、１バイトデータのメモリへの書き込みの順番の調整を行うことにより、実際のメモリアクセスがより高速に行われるようにすること（４バイトデータが、その先頭アドレスが４の倍数となっている４バイト分の記憶領域へ書き込まれるようにすること）が出来る場合には、その調整が行われる処理となっている。すなわち、このステップＳ２１３で行われる処理は、例えば、Ｌが“６”である場合、１バイトデータ、４バイトデータ、１バイトデータの順でメモリへの書き込みが行われることも、１バイトデータ、１バイトデータ、４バイトデータの順でメモリへの書き込みが行われることも、４バイトデータ、１バイトデータ、１バイトデータの順でメモリへの書き込みが行われることもある処理となっている。
【００５０】
ステップＳ２１３の完了後には、処理対象ＲＧＢＸラスタデータ内の全てのＲＧＢＸデータに対する処理が完了しているか否かが判断される（ステップＳ２１４）。そして、全てのＲＧＢＸデータの処理が完了していなかった場合（ステップＳ２１４；ＮＯ）には、処理対象ＲＧＢＸラスタデータから、次に処理すべきＲＧＢＸデータが読み出されて処理対象ＲＧＢＸデータとして記憶される（ステップＳ２１５）。すなわち、処理対象ＲＧＢＸデータがｎ番目のＲＧＢＸデータである状態で実行されるステップＳ２１５では、“ｎ＋Ｌ”番目のＲＧＢＸデータが、次の処理対象ＲＧＢＸデータとして処理対象ＲＧＢＸラスタデータから読み出される。
【００５１】
その後、処理対象ＲＧＢＸデータに対して、ステップＳ２１１以降の処理が再び行われる。そして、上記のような処理が処理対象ＲＧＢＸラスタデータ内の全てのＲＧＢＸデータに対して行われたとき（ステップＳ２１４；ＹＥＳ）に、このＣＭＹＫＸラスタデータ生成処理が終了される。
【００５２】
また、処理対象ＲＧＢＸラスタデータが情報非設定ラスタデータ（調査結果記録処理が行われることなくＲＧＢＸラスタデータ調査処理が終了されたＲＧＢＸラスタデータ）であった場合（ステップＳ２０３；情報非設定）には、オリジナルプリンタドライバにより行われているものと同手順の処理により、処理対象ＲＧＢＸラスタデータに応じたＣＭＹＫＸラスタデータがＣＭＹＫＸバンドデータ記憶領域上に生成される（ステップＳ２０４）。
【００５３】
なお、先頭側のＬＬＭＴ個のＲＧＢＸデータが同一データとはなっていないＲＧＢＸラスタデータに対する処理手順と、先頭側のＬＬＭＴ個のＲＧＢＸデータが同一データとなっているＲＧＢＸラスタデータに対する処理手順とを違えているのは、同一のＲＧＢＸデータが連続している部分がほとんどないＲＧＢＸラスタデータ（例えば、デジタルカメラの撮影結果の印刷時に生成されるＲＧＢＸラスタデータ）に関しては、ＲＧＢＸラスタデータ調査処理及びＣＭＹＫＸラスタデータ生成処理を行った場合よりも、従来手順の処理を行った場合の方が、短時間でＣＭＹＫＸラスタデータが生成できるからである。
【００５４】
そして、本プリンタドライバ１０による印刷データの生成時には、処理対象ＲＧＢＸバンドデータを構成している全てのＲＧＢＸラスタデータに対してＣＭＹＫＸラスタデータ生成処理が行われた結果として、ＣＭＹＫＸバンドデータ記憶領域上に生成されたＣＭＹＫＸバンドデータから、オリジナルプリンタドライバによる印刷データの生成時に行われているものと同手順の処理により、１バンド分の印刷データが生成される。
【００５５】
以上、説明したように、本実施形態に係るプリンタドライバ１０がインストールされたコンピュータ６０では、ＲＧＢＸバンドデータからＣＭＹＫＸバンドデータを生成する際に、ＲＧＢＸバンドデータを構成する各ＲＧＢＸラスタデータについて、そのＲＧＢＸラスタデータが白ラスタデータであるか否かを判別するための調査であるとともに、そのＲＧＢＸラスタデータを同一のＲＧＢＸデータが連続している複数の部分に分割することが出来る情報を得るための調査が、行われる。そして、その調査結果に基づき、各ＲＧＢＸラスタデータに対して、色変換処理が実際に行われる回数が少なく、かつ、メモリへのデータ書き込みが、可能な限り４バイト単位で行われる手順の処理が行われることにより、ＣＭＹＫＸバンドデータが生成される。
【００５６】
従って、本プリンタドライバ１０を用いれば、先頭部分に複数の白ラスタデータが含まれるＲＧＢＸバンドデータからＣＭＹＫＸラスタデータを生成する際に、それらの白ラスタデータのそれぞれについて、連続している２つのＲＧＢＸデータが同一のものであるか否かのチェックが２回行われることになるプログラムであるとともに、ＣＭＹＫＸラスタデータのメモリへの書き込みが常に１バイトずつ行われ、連続している２つのＲＧＢＸデータが同一のものであるか否かのチェックと色変換処理とが並行的に行われるプログラムとなっているオリジナルプリンタドライバを用いた場合よりも、高速に印刷データを生成できることになる。
【００５７】
最後に、表１を用いて、オリジナルプリンタドライバとプリンタドライバ１０の性能の差異を説明しておくことにする。なお、この表に記した評価結果は、ＣＰＵとして、クロック周波数が１．５ＧＨｚであるペンティアム４（米国インテル社の商標）を備え、ＯＳとして、Ｗｉｎｄｏｗｓ２０００（米国マイクロソフト社の商標）が用いられたコンピュータ上で、オリジナルプリンタドライバ、本実施形態に係るプリンタドライバ１０に、日本電子工業振興協会により制定されているプリンタ用標準テストパターンＪ１１（Ａ４、１２ページのテストパターン）の印刷データのファイルへの書き出しを行わせることによって得られたものである。
【００５８】
【表１】
2004054653.tif 000003
このように、プリンタドライバ１０を用いれば、オリジナルプリンタドライバよりも極めて高速に印刷データが生成できることが出来る。
【００５９】
＜変形形態＞
本実施形態のプリンタドライバ１０は、各種の変形を行うことが出来る。例えば、プリンタドライバ１０は、ＣＭＹＫＸデータのメモリへの書き込み時、可能な限り、４個単位でその成分データ（Ｃデータ等）をメモリに書き込むものであったが、１個ずつメモリに書き込まれるように、プリンタドライバ１０を変形しても良い。ただし、そのようにプリンタドライバ１０を変形した場合、オリジナルプリンタドライバよりも早く印刷データを生成できるものとはなるが、表１に示したような、顕著な効果が得られるものとはならないので、実施形態のように構成しておくことが望ましい。
【００６０】
また、プリンタドライバ１０は、ＲＧＢＸラスタデータ（Ｘデータが付加されているＲＧＢラスタデータ）を処理してＣＭＹＫＸラスタデータを生成するものであったが、ＲＧＢＸラスタデータ調査処理及びＣＭＹＫＸラスタデータ生成処理は、Ｘデータの存在が必要とされる処理ではない（ＲＧＢＸラスタデータ調査処理の調査結果はどこに記録されても良い）ので、本実施形態に係るプリンタドライバ１０で用いられている技術を、印刷データの生成時にＲＧＢラスタデータを生成するプリンタドライバに適用しても良い。また、本実施形態に係るプリンタドライバ１０で用いられている技術は、変換前、変換後のイメージデータの形式（表色系や各成分のビット数）によらず、イメージデータの変換が必要とされる処理一般に適用できるものであるので、本技術を基に、イメージデータ加工用のプログラムを実現しても良い。また、本技術を基に、プリンタ側で実行されるプログラムを実現しても良い。
【００６１】
【発明の効果】
本発明によれば、既存の手順とは異なる手順の処理により、高速に印刷データを生成することが出来るプリンタドライバ、そのようなプリンタドライバをコンピュータにインストール出来るコンピュータ可読媒体、イメージデータの色変換を高速に行えるイメージデータ変換装置／方法を、提供することが出来る。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るプリンタドライバの使用形態の説明図である。
【図２】実施形態に係るプリンタドライバによる印刷データの生成時に行われるＲＧＢＸラスタデータ調査処理の流れ図である。
【図３】ＲＧＢＸラスタデータ調査処理における、ＲＧＢＸラスタデータ内のＸデータの利用法の説明図である。
【図４】実施形態に係るプリンタドライバによる印刷データの生成時に行われるＣＭＹＫＸラスタデータ生成処理の流れ図である。
【図５】既存のプリンタドライバによる印刷データの生成手順を説明するための流れ図である。
【図６】既存のプリンタドライバにより生成されるＲＧＢＸバンドデータに含まれるＸデータの説明図である。
【符号の説明】
１０　プリンタドライバ
５０　カラーレーザプリンタ
６０　コンピュータ
【図１】
2004054653.tif 000004
【図２】
2004054653.tif 000005
【図３】
2004054653.tif 000006
【図４】
2004054653.tif 000007
【図５】
2004054653.tif 000008
【図６】
2004054653.tif 000009