(57)【要約】      （修正有）【課題】画像データを拡大して展開して得られる画像データのリピート性を向上させる画像処理装置及び画像処理プログラムを提供する。【解決手段】画像処理手順は、描画レコードに含まれ画素に展開した第１の画像データを拡大して、画像出力装置の画素に展開した第２の画像データを生成する手順Ｓ１４と、第２の画像データを圧縮する圧縮手順Ｓ１８とを有する。第２の画像データを生成する手順Ｓ１４は、第１の画像データであって第２の画像データの画素位置Dx,Dyに対応する位置X,Yに隣接し複数の画素からなる隣接画素について、当該隣接画素間の輝度の差分が所定の閾値以下の場合に、当該第２の画像データの画素Dx,Dyの画像データを第１の画像データの隣接画素のいずれかの画像データとし、差分が所定の閾値を越える場合に、第２の画像データの画素Dx,Dyの画像データを隣接画素の画像データから補間演算をする。【選択図】図２
2005073025.tif 000002
【特許請求の範囲】
【請求項１】
描画レコードから画像出力装置の画素に展開した画像データを生成する画像処理手順をコンピュータに実行させる画像処理プログラムにおいて、
前記画像処理手順は、
前記描画レコードに含まれ画素に展開した第１の画像データを拡大して、前記画像出力装置の画素に展開した第２の画像データを生成する手順と、
前記第２の画像データを圧縮する圧縮手順とを有し、
前記第２の画像データを生成する手順は、前記第１の画像データであって前記第２の画像データの画素位置に対応する位置に隣接し複数の画素からなる隣接画素について、当該隣接画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該第２の画像データの画素の画像データを前記隣接画素のいずれかの画像データとし、前記差分が所定の閾値を越える場合に、当該第２の画像データの画素の画像データを前記隣接画素の画像データから補間演算により求めた画像データとする補間処理を有することを特徴とする画像処理プログラム。
【請求項２】
請求項１において、
前記輝度に関連する値は、前記第１の画像データの色空間がＲＧＢ空間の場合における当該ＲＧＢの各階調値に所定の係数を乗算して加算した輝度値、前記色空間がグレイ空間（輝度空間）の場合における階調値、前記色空間がＲＧＢ空間の場合におけるＧ（グリーン）の階調値、前記色空間がＲＧＢ空間の場合におけるＲＧＢの最大階調値、前記色空間がＣＭＹの場合における当該ＣＭＹの各階調値に所定の係数を乗算して加算した輝度値、前記色空間がＨＳＶ（色合い、彩度、明度）空間の場合における明度（Ｖ値）のいずれかであることを特徴とする画像処理プログラム。
【請求項３】
請求項１において、
前記第２の画像データを生成する手順の補間処理は、前記第１の画像データから第２の画像データへの拡大率が所定の値より小さい場合に、当該第２の画像データの画素の画像データを前記第１の画像データの前記隣接する複数画素のいずれかの画像データとすることを特徴とする画像処理プログラム。
【請求項４】
請求項１において、
前記補間演算は、前記隣接する複数画素の位置と前記第２の画像データの画素位置に対応する第１の画像データでの位置との距離に応じて、前記複数画素の第１の画像データを補間する演算処理であることを特徴とする画像処理プログラム。
【請求項５】
請求項１において、
前記描画コマンドは、少なくとも文字の描画コマンドと、グラフィックスの描画コマンドと、イメージの描画コマンドとを有し、
前記補間処理は、前記イメージの描画コマンドに対する第２の画像データを生成する時に行われることを特徴とする画像処理プログラム。
【請求項６】
請求項１において、
前記圧縮手順は、画像データの繰り返し性を考慮して圧縮を行うことを特徴とする画像処理プログラム。
【請求項７】
描画レコードから画像出力装置の画素に展開した画像データを生成する画像処理装置において、
前記描画レコードに含まれ画素に展開した第１の画像データを拡大して、前記画像出力装置の画素に展開した第２の画像データを生成する手段と、
前記第２の画像データを圧縮する圧縮手段とを有し、
前記第２の画像データを生成する手段は、前記第１の画像データであって前記第２の画像データの画素位置に対応する位置に隣接し複数の画素からなる隣接画素について、当該隣接画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該第２の画像データの画素の画像データを前記隣接画素のいずれかの画像データとし、前記差分が所定の閾値を越える場合に、当該第２の画像データの画素の画像データを前記隣接画素の画像データから補間演算により求めた画像データとする補間処理手段を有することを特徴とする画像処理装置。
【請求項８】
請求項７において、
前記輝度に関連する値は、前記第１の画像データの色空間がＲＧＢ空間の場合における当該ＲＧＢの各階調値に所定の係数を乗算して加算した輝度値、前記色空間がグレイ空間（輝度空間）の場合における階調値、前記色空間がＲＧＢ空間の場合におけるＧ（グリーン）の階調値、前記色空間がＲＧＢ空間の場合におけるＲＧＢの最大階調値、前記色空間がＣＭＹの場合における当該ＣＭＹの各階調値に所定の係数を乗算して加算した輝度値、前記色空間がＨＳＶ（色合い、彩度、明度）空間の場合における明度（Ｖ値）のいずれかであることを特徴とする画像処理装置。
【請求項９】
請求項７において、
前記第２の画像データを生成する手段の補間処理手段は、前記第１の画像データから第２の画像データへの拡大率が所定の値より小さい場合に、当該第２の画像データの画素の画像データを前記第１の画像データの前記隣接する複数画素のいずれかの画像データとすることを特徴とする画像処理装置。
【請求項１０】
請求項７において、
前記補間演算は、前記隣接する複数画素の位置と前記第２の画像データの画素位置に対応する第１の画像データでの位置との距離に応じて、前記複数画素の第１の画像データを補間する演算であることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理をコンピュータに実行させる画像処理プログラムに関し、特に、ビットマップ展開された画像を拡大する補間処理において補間処理後の拡大された画像データのリピート性を向上させて圧縮率を上げることができる画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
ホストコンピュータで作成された画像を印刷するプリンタは、低コスト、高速印刷、高品質印刷など様々な要求が厳しくなっている。特に、コスト削減の要請から、印刷のための画像処理の大半をホストコンピュータのプリンタドライバで行わせるホストベースのプリンタが提案されている。
【０００３】
かかるホストベースのプリンタでは、プリンタドライバが、ホストコンピュータ上のアプリケーションにより生成された描画レコードから、画素毎のＲＧＢ値またはプリンタのトナーに対応するＣＭＹＫ値に展開した画像データを生成し、その画像データを圧縮してプリンタに転送する。プリンタでは、受信した画像データを伸長し、スクリーン処理などの二値化処理をし、印刷エンジンで印刷媒体上に画像化する。ホストコンピュータの性能向上に伴って、画像処理の大半を、ホストコンピュータ上の画像処理プログラムで行うことにより、プリンタのコントローラにおける画像処理装置を大幅に削減することができ、プリンタのコスト削減につなげることができる。このようなホストベースのプリンタについては、以下の先行技術に開示されている。
【特許文献１】特許第３２８４４６４号
【特許文献２】特許第３３６７５５５号
【特許文献３】特許第３３６７５５６号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ホストベースのプリンタでは、ページ記述言語の印刷データを受信しそれを画像処理して印刷する従来のプリンタに比べると、ホストコンピュータ側で画素に展開した画像データを圧縮してプリンタに転送する必要がある。従って、この圧縮された画像データのデータ量が大きくなると、ホストコンピュータからプリンタへの画像データの転送時間が長くなり、印刷のスループットが低下するという課題がある。
【０００５】
更に、ホストベースのプリンタでは、プリンタドライバにて、画像データを指定された拡大率で拡大して画素に展開する処理が行われる。展開された画像を高画質にするためには、拡大のための補間処理において、拡大後の画素の画像データをそれぞれ拡大前の画素の画像データから補間演算により高精度に求める必要がある。しかし、そのような画像データはリピート性が悪く、直前のラスターの画像データや直前の画素の画像データのリピート性を考慮した圧縮アルゴリズムによれば圧縮率が低下し、同様に印刷スループットの低下を招く。
【０００６】
そこで、本発明の目的は、画素に展開した画像データの圧縮率を向上することができる画像処理装置及び画像処理プログラムを提供することにある。
【０００７】
更に、本発明の目的は、ビットマップ展開された画像を拡大する補間処理において補間処理後の拡大された画像データの圧縮率を上げることができる画像処理装置及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の側面によれば、描画レコードから画像出力装置の画素に展開した画像データを生成する画像処理手順をコンピュータに実行させる画像処理プログラムにおいて、前記画像処理手順は、
前記描画レコードに含まれ画素に展開した第１の画像データを拡大して、前記画像出力装置の画素に展開した第２の画像データを生成する手順と、
前記第２の画像データを圧縮する圧縮手順とを有し、
前記第２の画像データを生成する手順は、前記第１の画像データであって前記第２の画像データの画素位置に対応する位置に隣接し複数の画素からなる隣接画素について、当該隣接画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該第２の画像データの画素の画像データを前記隣接画素のいずれかの画像データとし、前記差分が所定の閾値を越える場合に、当該第２の画像データの画素の画像データを前記隣接画素の画像データから補間演算により求めた画像データとする補間処理を有することを特徴とする。
【０００９】
上記の目的を達成するために、本発明の別の側面によれば、描画レコードから画像出力装置の画素に展開した画像データを生成する画像処理装置において、
前記描画レコードに含まれ画素に展開した第１の画像データを拡大して、前記画像出力装置の画素に展開した第２の画像データを生成する手段と、
前記第２の画像データを圧縮する圧縮手段とを有し、
前記第２の画像データを生成する手段は、前記第１の画像データであって前記第２の画像データの画素位置に対応する位置に隣接し複数の画素からなる隣接画素について、当該隣接画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該第２の画像データの画素の画像データを前記隣接画素のいずれかの画像データとし、前記差分が所定の閾値を越える場合に、当該第２の画像データの画素の画像データを前記隣接画素の画像データから補間演算により求めた画像データとする補間処理手段を有することを特徴とする。
【００１０】
上記の発明の側面によれば、第１の画像データを拡大して第２の画像データを生成する時に、輝度に関する値の変化が少ないときは、複数の隣接画素のうち、第２の画像データの画素位置に対応する第１の画像データの画素の画像データを第２の画像データとするので、画質の劣化を回避しながら第２の画像データのリピート性を向上させて、第２の画像データの圧縮率を高めることができる補間処理を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。しかしながら、本発明の保護範囲は、以下の実施の形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等物まで及ぶものである。
【００１２】
図１は、本実施の形態におけるホストコンピュータとプリンタの構成図である。ホストコンピュータ１０は、内蔵バス１６を介して接続されたＣＰＵ、ＲＡＭ、インターフェース手段I/Fなどを有す。更に、描画レコードを生成する描画プログラムやワードプロセッサなどのアプリケーションプログラム１２と、アプリケーションプログラム１２が生成した描画レコードを画像処理してプリンタの色材に対応するCMYKの圧縮データ１８を生成するプリンタドライバ・プログラム１４とが、HDDなどの記録媒体にインストールされている。
【００１３】
印刷装置の１つであるプリンタ２０は、ホストコンピュータ１０のインターフェースI/Fから、所定の通信媒体を介してCMYKの圧縮データ１８を受信する。通信媒体は、USBケーブルなどの有線の通信媒体や、IEEE802.11などの無線LANなどの無線の通信媒体であってもよい。プリンタ２０のコントローラ２２は、圧縮されたCMYKの画像データ１８を受信すると、伸長回路２４で圧縮された画像データを伸長し、スクリーン処理部２６で各画素のCMYKの色プレーン毎に二値化処理を行い、パルス幅変調回路２８により二値化データをパルス幅変調し、印刷エンジン３０に画像描画のための駆動パルス信号を供給する。印刷エンジン３０は、例えば、駆動パルス信号により駆動されるレーザ光により感光体ドラム上の潜像を形成し、CMYKの現像トナーにより現像し、現像した画像を印刷媒体に転写する。印刷エンジン３０がインクジェットにより印刷媒体上に画像を印刷する場合は、スクリーン処理部２６やPWM２８に代えて、誤差拡散処理部とインクジェットのノズル駆動信号生成部とが設けられる。
【００１４】
上記のホストコンピュータ１０にインストールされているプリンタドライバ１４は、アプリケーションプログラム１２が生成した描画レコードを画像処理してプリンタの色材に対応するCMYKの圧縮データ１８を生成する。この画像処理には、描画レコードに含まれる画素に展開した第１の画像データを拡大して印刷装置の画素に展開した第２の画像データを生成する補間処理が含まれる。そして、CMYK圧縮データの圧縮率を高めるために、後述するように、輝度値や明度などの輝度に関連する値に応じて補間処理を行って、画素毎の画像データのリピート性を増す処理を行う。
【００１５】
図２は、本実施の形態におけるプリンタドライバである画像処理プログラムの処理手順を示すフローチャート図である。アプリケーション・プログラム１２が生成したGDI（Graphical Device Interface）型式の描画レコードが、プリンタドライバ１４に与えられる（Ｓ１０）。
【００１６】
ここで、図３に、描画レコードにより印刷されるページリソースの画像の一例を示す。この画像例は、Ａ４サイズの印刷用紙（印刷媒体）３２に、グラフィックスの一例である円３２１と、写真画像などのイメージ３２２と、文字３２３とからなる画像が印刷される例である。図４（Ａ）に、このようなページリソースの画像を生成する描画レコードの一例が示される。即ち、円３２１に対しては、座標（Ｘ１，Ｙ１）の位置に直径Ｌの円を、内部を色ＲＧＢ＝（128、128，128）で塗りつぶす（FILL）描画レコード（Cir）が与えられる。ここで、ＲＧＢデータは、各色２５６階調の階調値を示す値である。更に、イメージ３２２に対しては、座標（Ｘ２，Ｙ２）の位置から幅Ｗ２、高さＨ２の領域内に、画素毎の色ＲＧＢを示す第１の画像データ３２２Ａを、拡大係数Ｍで展開する描画レコード（Image）が与えられる。つまり、イメージ３２２の場合は、既に画素の画像データに展開済みの第１の画像データを拡大係数Ｍで拡大する補間処理が必要である。また、文字３２３に対しては、座標（Ｘ３，Ｙ３）の位置に幅Ｗ３、高さＨ３の領域に、文字「Ａ」のビットマップデータが格納されている図示しないビットマップデータファイルBMのアドレス(X1,Y1)〜(X2,Y2)のデータを、色ＲＧＢ＝（0,0,0）（黒）で描画することを示す描画レコード（Character）が与えられる。
【００１７】
図２に戻り、プリンタドライバ１４は、図４（Ａ）の如き描画レコードを供給されると、描画レコードを解釈し、印刷媒体の所定行数毎に分割した複数のバンド毎に、画像展開するための関数などからなる中間コードを生成する（Ｓ１２）。この中間コードは、一種の描画コマンドである。図４（Ｂ）に中間コードの一例を示す。便宜上、ここでの中間コードのコードは、描画レコードのコードと同じにしている。図３に示されるとおり、ここでは、Ａ４サイズの印刷媒体の領域が４つのバンドに分割されているものとする。
【００１８】
図４（Ｂ）の中間コードは、バンド１に対しては、グラフィックスの一つである円３２１を全て展開するコード（描画コマンド）を有する。即ち、座標（X1,Y1）の位置に半径Ｌの塗りつぶし円を色データＲＧＢ＝（128,128,128）で展開する中間コードである。また、中間コードは、バンド２に対しては、イメージ３２２の一部分を描画するコード（描画コマンド）を有する。即ち、バンド２内の座標（X21,Y21）の位置から幅Ｗ２、高さH21の領域内に、各画素の色データＲＧＢを有するイメージを、拡大係数Ｍで拡大して展開する中間コードである。更に、中間コードは、バンド３に対しては、イメージ３２２の残り部分と、文字３２３の一部分を描画するコード（描画コマンド）を有する。つまり、バンド３内の座標（X22,Y22）の位置から幅Ｗ２、高さH22の領域内に、各画素の色データＲＧＢを有するイメージを、拡大係数Ｍで拡大して展開する中間コードと、バンド３内の座標（X31,Y31）の位置から幅Ｗ３、高さH31の領域内にビットマップデータＢＭを色ＲＧＢ＝（0,0,0）で展開する中間コードとを有する。そして、バンド４に対しては、文字３２３の残りの部分を描画する中間コードを有する。
【００１９】
上記の中間コードは、印刷装置であるプリンタ２０に対応するプリンタドライバ１４に固有の展開用の関数コード（或いは描画コマンド）などからなり、アプリケーションの描画コードが異なっても、共通の中間コードに変換されることで、プリンタドライバ１４の共通の展開手順により画素毎の画像データに展開することができる。
【００２０】
次に、プリンタドライバ１４は、バンド毎に中間コードからプリンタに対するページリソースの画素毎の画像データＲＧＢＸに展開する（Ｓ１４）。画像データＲＧＢＸは、画素の色データＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）と、画像の種類を示す属性データＸとからなり、それぞれ８ビットのデータで構成される。画像の種類は、例えば、円やグラフなどのグラフィック、文字、そして写真や自然画などのイメージであり、属性データＸによりこれらの画像の種類が区別され、プリンタコントローラにおけるスクリーン処理などにおいて、最適な処理の割り当てに利用される。
【００２１】
［展開処理］
前述の中間コードを展開することで、ホストコンピュータ１０内のRAM内のバンドメモリ領域に、展開された画素毎の画像データＲＧＢＸが格納される。このバンドメモリには、初期化状態で、例えば、色データＲＧＢとしてＲＧＢ＝（255,255,255）の白のデータが書き込まれ、属性データＸの画像の種類データとしてはグラフィックスのデータが書き込まれる。そして、バンド１では、円３２１を展開する中間コードにより円３２１を描画する領域の画素の画像データが生成され、バンドメモリに書き込まれる。バンド２では、イメージ３２２の上部部分の画素の画像データがバンドメモリに書き込まれる。更に、バンド３では、イメージ３２２の下部残り部分の画素の画像データがバンドメモリに書き込まれ、更に、文字３２３の上部部分の画素の画像データが書き込まれる。そして、バンド４では、文字３２３の下部残り部分の画素の画像データがバンドメモリに書き込まれる。
【００２２】
［拡大のための補間処理］
図５及び図６は、画像の拡大のための補間処理を説明するための図である。図５において、描画レコードに含まれるオリジナルの第１の画像データ３２２Ａを、拡大係数Ｍにしたがって拡大して、プリンタの画素に展開した第２の画像データ３２２が生成される。画像データを拡大することに伴い、第２の画像データの画素数は第１の画像データの画素数より多いので、その多い分だけ第２の画像データを補間する必要がある。
【００２３】
この拡大のための補間処理では、第２の画像データの座標（Dx,Dy)の画素の画像データを求めるために、その座標（Dx,Dy）に対応する第１の画像データの座標（X,Y）の画像データを参照する。そのために、図５に示された座標変換式により座標(X,Y)が求められる。この座標変換式では、第２の画像データでの座標（Dx,Dy）に拡大係数行列Ｍを乗算することで、第１の画像データでの座標（X,Y）が求められる。拡大係数行列Ｍの要素a,b,c,dは、スケール係数であり、要素tx,tyはシフト係数である。この拡大係数行列Ｍは、前述の通り、描画レコードに含まれ、中間コードにも含まれる定数である。この座標変換式により求められる座標(X,Y)は、小数点以下を含む座標値になる。
【００２４】
図６は、座標（X,Y）と第１の画像データの画素との詳細な関係を示している。第２の画像データの座標（Dx,Dy）を座標変換して求められる座標(X,Y)は、小数点を含む座標値であり、図示されるように、第１の画像データ３２２Ａにおいて、４つの画素の座標（X',Y'）（X'+1,Y'）（X',Y'+1）（X'+1,Y'+1）（これらは全て整数値）の間に位置する。つまり、座標（X',Y'）は、座標（X,Y）の小数点を切り捨てた又は四捨五入した整数値である。このような場合、第２の画像データの座標（Dx,Dy）の画素に１対１に対応する第１の画像データの画素が存在しないので、何らかの画像データを補間する必要がある。補間方法には、ニヤレストネイバー（Nearest-Neighbor）法や、バイリニア（Bi-Linear）法などがある。ニヤレストネイバー法は、座標変換で求めた座標（X,Y）に最も近い画素（図６の例では画素（X',Y'））の画像データRGBX0をそのまま座標（Dx,Dy）の画像データに採用する方法であり、複雑な演算を必要とせず、第２の画像データに同じ画像データが繰り返し発生する確率を高くすることができ、画像データのリピート性が高まる。但し、平面解像度が低下して画質劣化を招く場合がある。一方、バイリニア法は、変換座標（X,Y）の画像データを、それに隣接する複数の画素、例えば４つの画素の座標（X',Y'）（X'+1,Y'）（X',Y'+1）（X'+1,Y'+1）の画像データRGBX0〜RGBX3を位置関係で直線補間演算（又はより高次の補間演算）することにより求める方法であり、複雑な補間演算が必要であるが画質を向上させることができる。但し、この方法では、４つの画素の画像データがそれぞれ異なる場合は、第２の画像データの隣接する画素の画像データは全て異なることになり、第２の画像データのリピート性は悪くなる。
【００２５】
そこで、本実施の形態では、プリンタドライバでの画像処理の最後にリピート性を考慮した圧縮処理を行うので、第１の画像データにおいて画素間の画像データの変化が小さい場合、特に輝度の変化が小さい場合に限り、ニヤレストネイバー法により補間処理を行い、第２の画像データのリピート性を向上させる。画素間の輝度の変化が小さい場合は、ネヤレストネイバー法により隣接画素のいずれかの画素の画像データを採用しても、それに伴う画質の低下を抑えることができる。一方、第１の画像データにおいて画素間の画像データの変化が大きい場合、特に輝度の変化が大きい場合は、バイリニア法など複数の隣接画素の画像データから補間演算により求める補間演算を行い、第２の画像データを求める。画像データのリピート性は向上しないが画質が大きく低下することは回避できる。
【００２６】
図６に示した例では、第１の画像データ３２２Ａにおける隣接画素間の輝度の変化が小さい場合は、座標（X',Y'）の画像データRGBX0がそのまま採用され、変化が大きい場合は、４つの座標の画像データRGBX0〜RGBX3を所定の補間関数ｆにより求めた画像データを採用している。
【００２７】
バイリニア法による補間演算は次の通りである。すなわち、４つの画素の座標（X',Y'）（X'+1,Y'）（X',Y'+1）（X'+1,Y'+1）の画像データRGBX0〜RGBX3を、簡単のために、それぞれP0、P1、P2、P3とすると、補間演算は、座標（X,Y）と４つの画素の座標（X',Y'）（X'+1,Y'）（X',Y'+1）（X'+1,Y'+1）との距離に基づく直線補間演算であるので、
Ｐ＝｛P0(X'+1-X)+P1(X-X')｝(Y'+1-Y）＋｛P2(X'+1-X)+P3(X-X')｝(Y-Y')
となる。
【００２８】
バイリニア法以外の補間演算として、９個の隣接画素の画像データからバイキュービック法により座標（X,Y）の画像データを求める方法もある。また、一次の補間演算でなく、二次の補間演算法により求めても良い。
【００２９】
図７は、本実施の形態における拡大を伴う画像データの展開処理のフローチャート図である。つまり、図７は、図２における印刷装置の画素毎の画像データを展開する処理Ｓ１４における拡大のための補間処理の詳細フローチャート図である。拡大のための補間処理は、バンド内のイメージに対して行われ、グラフィックスや文字に対しては行われない。そこで、バンド内のイメージ領域が選択される（Ｓ３０）。
【００３０】
選択されたイメージの中間コードが画素展開される場合、図５、図６で説明したようにプリンタでの座標（Dx,Dy）に対応する第１の画像データの座標（X,Y）を座標変換演算により求める（Ｓ３１）。プリンタというデバイス上の座標であるので、フローチャートではデバイス座標（Dx,Dy）と称している。
【００３１】
そこで、拡大率が所定値（例えば３倍）より小さい場合（Ｓ３２）は、補間すべき第２の画像データの画素数が限定的であるので、ニヤレストネイバー法により画素（Dx,Dy）の画像データが求められる（Ｓ３８）。図６の例では、画素（X',Y'）の画像データRGBX0がそのまま画素（Dx,Dy）の画像データになる。一方、拡大率が所定数より大きい場合（Ｓ３２）は、座標(X,Y)に隣接する４つの画素の画像データの特に輝度に関する値の変化量に応じて、補間すべき第２の画像データの求め方が異なる。
【００３２】
そこで、プリンタドライバは、座標（X,Y）に隣接する４つの画素の画像データＲＧＢを読み出し（Ｓ３３）、各画素の輝度計算を行う（Ｓ３４）。輝度Ｙを求める計算は、例えば、次の通りである。
【００３３】
Ｙ＝ａＲ＋ｂＧ＋ｃＢ＝0.2990*Ｒ＋0.5870*Ｇ＋0.1140*Ｂ
上記の演算式は、浮動小数点演算になるので、演算速度向上の為に、各係数a,b,cに65536を乗算した係数に変更した次の演算式にするのが好ましい。この演算式では、輝度値Ｙは全て整数値になり、ホストコンピュータでの演算速度を向上させることができる。
【００３４】
Ｙ＝19595*Ｒ＋38470*Ｇ＋7471*Ｂ
隣接する４つの画素の輝度値Ｙについて、隣接画素間の輝度の差分が所定の閾値Vth以下であるか否かの判定が行われる（Ｓ３６）。つまり、６種類の隣接画素の組合せに対して、それらの画素の輝度値Ｙの差分が閾値Vth以下か否かがチェックされる。この閾値Vthは、最大２５６階調の場合に、６４（２５％）或いは１２８（５０％）程度に設定される。この閾値は画質の低下を考慮して適宜選択される。また、隣接画素の組合せは必ずしも６種類に限定されず、左右、上下の４種類のみ、或いは斜め方向の２種類であってもよい。
【００３５】
そして、隣接する画素の輝度の変化量が閾値より小さい場合は、人間の目には画像の変化があまり感じられないので、ニヤレストネイバー法によりデバイス座標（Dx,Dy）の第２の画像データを座標（X,Y）に最も近い画素（X',Y')の画像データRGB0にする（Ｓ３８）。あるいは、隣接する４つの画素のいずれかの画像データにしてもよい。一方、隣接する画素の輝度の変化量が閾値より大きい場合は、人間の目には画像の変化が敏感に感じられるので、隣接画素の画像データを補間演算して求める、例えばバイリニア法によりデバイス座標（Dx,Dy）の第２の画像データを求める（Ｓ３７）。
【００３６】
上記の工程Ｓ３３〜Ｓ３８を、イメージの全ての画素について繰り返し（Ｓ４０）、更に、工程Ｓ３０〜Ｓ４０をバンド内の全てのイメージに対して繰り返す（Ｓ４２）。その結果、バンド内の全てのイメージに対して、オリジナルのイメージの画像を拡大したプリンタ上でのイメージに展開することができる。この展開された第２の画像データは、輝度の変化が少ない領域ではニヤレストネイバー法により求められているので、リピート性が高くなっている。一方、輝度の変化が大きい領域では隣接画素の画素データによる補間演算により求められているので、画質の低下は回避される。
【００３７】
［色変換処理］
図２に戻り、プリンタの画素毎に展開されたＲＧＢの第２の画像データが、プリンタの印刷エンジン３０で使用されるトナーの色空間に対応するＣＭＹＫの画像データに変換される（Ｓ１６）。この色変換は、あらかじめ作成済みの色変換テーブルを参照する４面体補間演算により行われる。但し、前述した拡大のための補間処理されたことにより、隣接画素において同じ画像データRGBXが与えられるリピート性が高くなっているので、同じ画像データに対しては、上記の色変換の４面体補間演算を繰り返さずに、変換済みのCMYK画像データがそのまま与えられる。
【００３８】
図８は、色変換処理Ｓ１６の詳細なフローチャート図である。最初に、バンドメモリ内の画像データについて、同じラスタ内のおいて画像データRGBXが繰り返される画素を検索し、２番目の画素の属性データＸにその繰り返し数を追加する（Ｓ６０）。これをバンドメモリ内の全てのラスタに対して行う。そして、バンドメモリ内の全ての画素の色変換処理が完了するまで（Ｓ６１）、画素のＲＧＢＸの画像データを読み出して（Ｓ６２）、必要な色変換処理を行う。最初に、画像データRGBXが繰り返される場合は、その繰り返し数が２番目の画素の属性データＸに加えられている。そこで、色変換処理では、読み出した画素の画像データRGBXの属性データＸが、同じＲＧＢ値の繰り返し数を示しているか否かがチェックされ（Ｓ６４）、繰り返し数を示していなければ（Ｓ６４でNO）、読み出したＲＧＢ値に対して、色変換テーブルを参照して、４面体補間演算によりＣＭＹＫ値を求める（Ｓ６８）。また、属性データＸが繰り返し数を示している場合は（Ｓ６４でYES）、既に変換済みのCMYKX値を繰り返し数に対応する画素に色変換データとしてコピーする（Ｓ６６）。これにより、色変換の演算処理の繰り返しを省略することができる。
【００３９】
図８には、色変換処理の４面体補間演算の原理が示されている。ホストコンピュータの記録媒体にあらかじめ記録されている色変換テーブルは、３つの色プレーンＲＧＢの階調データの組合せに対して、それぞれCMYK階調データを有する。但し、２５６階調を有するＲＧＢの３つの色プレーンに対して、２５６階調全ての組合せに対応してCMYKデータを持たせると、色変換テーブルのデータ数が２５６の３乗と膨大なデータ量になる。そこで、色変換テーブルは、ＲＧＢの３つの色プレーンに対して所定の割合で間引いた階調値の格子点に対するCMYKデータを有する。そこで、色変換対象の画像データＲＧＢが、色変換テーブルとして準備された各格子点の階調値Ｒ１，Ｒ２の間、階調値Ｇ１，Ｇ２の間、階調値Ｂ１，Ｂ２の間にある場合は、４面体補間演算により色変換対象の画像データＲＧＢに対応する変換後の画像データCMYKが求められる。従って、この４面体補間演算を伴う色変換処理は、比較的時間がかかる重たい処理である。特に、プリンタドライバなどのコンピュータプログラムにより演算が行われる場合は、その処理時間が長くなりがちである。
【００４０】
本実施の形態では、拡大のための補間処理において、輝度値の変化が少ない領域では対応する座標（X,Y）に隣接する画素の画像データを採用して、同じ画像データが繰り返される確率が高くなるようにしている。したがって、同じラスタ方向において、一旦色変換処理を行った画素と同じ画像データを有する画素に対しては、既に変換済みの画像データCMYKを与えて、色変換演算を繰り返さないようにしている。これにより、色変換処理工程に要する時間を大幅に短縮することができる。
【００４１】
図８に示されるとおり、バンドメモリ内の全ての画素に対して色変換処理が完了すると（Ｓ６１）、バンドメモリ内の画素の画像データは全てCMYKXの画像データに変換される。属性データＸは、RGBXの画像データの属性データＸと同じである。
【００４２】
［圧縮処理］
図２に戻り、バンドメモリ内に書き込まれたCMYKXの画像データに対して、５つの各色プレーン毎に圧縮処理が行われ、RAM内に確保されている圧縮データメモリに書き込まれる（Ｓ１８）。この圧縮方式は、バンド内の画素の画像データのリピート性を考慮して行われる。例えば、直前のラスタ内の画素の画像データと同じであったり、直前の画素の画像データと同じであったりした場合は、CMYKXのデータ（それぞれ８ビットで合計８×５＝４０ビット）ではなく、繰り返しを示すデータのみに変換する。或いは、繰り返し数を示すデータに変換する。このようにリピート性を重視して圧縮する圧縮方式を採用することにより、本実施の形態の拡大のための補間処理によりリピート性が高められた画像データの圧縮率をより高くすることができる。
【００４３】
上記のバンド内の画素の画像データへの展開処理Ｓ１４と、色変換処理Ｓ１６と、圧縮処理Ｓ１８とが、各バンド毎に行われ、全てのバンドの処理が終了すると（Ｓ２０のYES）、１ページ分のCMYKXの圧縮データ１８がプリンタ２０のコントローラ２２に転送される（Ｓ２２）。プリンタ側では、図１に示されるとおり、コントローラ２２が、受信した圧縮データ１８を伸長処理し、スクリーン処理を行い、パルス幅変換を行って、レーザ駆動パルスデータを印刷エンジン３０に転送する。本実施の形態では、CMYKXの画像データの圧縮率が高いので、ホストコンピュータ１０からプリンタ２０への転送データ量が少なくなり、転送時間が短縮され、印刷のスループットが向上する。
【００４４】
［輝度に関連する値］
上記の実施の形態では、画素に展開したＲＧＢの画像データから輝度値Ｙを求め、隣接する画素間の輝度値の差分が閾値以下か否かに基づいて、拡大のための補間処理を行った。これは、輝度の変化が少ない画像領域は、色変化が少ないので、その画像領域において色変化を多少間引いても、人間の目にはその変化を敏感に認識することができないことが理由である。従って、人間の目に目立たない指標を利用して、補間処理の選択の判断をすれば良いことになる。
【００４５】
従って、輝度値Ｙに代えて、ＲＧＢの色データのうち最も輝度値Ｙに影響を与えるＧ（グリーン）の色データのみを比較対象にしても良い。この場合は、輝度値Ｙの演算を省略することができるというメリットがあるが、補間処理の基準がやや劣るというデメリットがある。更に、ＲＧＢの色空間からＨＳＶ（Hue：色合い, Saturation：彩度, Value：明度)の色空間の明度Ｖを求めて、隣接する画素の明度の差分が閾値以下か否かに依存して、補間処理を行う。明度Ｖは、ＲＧＢの階調値のうち最も大きい階調値（Ｖ＝MAX（R.G.B））であるので、明度Ｖを基準にする場合も、明度Ｖを求める演算処理を簡単化することができる。また、画素に展開した画像データがＨＳＶ色空間である場合は、その明度Ｖ値を補間処理の基準にすることができる。さらに、白黒画像のように色空間がグレイ空間（輝度空間）の場合は、画素の階調値自体が輝度値になる。
【００４６】
［他の実施の形態］
図９は、他の実施の形態におけるホストコンピュータとプリンタの構成を示す図である。この例では、プリンタコントローラ２２内に、色変換処理部２５が設けられており、ホストコンピュータ１０からはRGBXの圧縮データ１９がプリンタコントローラ２２に転送され、コントローラ２２において、伸長処理、色変換処理、スクリーン処理、ＰＷＭ処理を行う。
【００４７】
図１０は、本実施の形態におけるプリンタドライバ１４の画像処理手順を示すフローチャート図である。図２のフローチャートと同じ手順には同じ引用番号が与えられている。手順Ｓ１０〜Ｓ１６、Ｓ２０は図２の同じ手順と同じである。本実施の形態の場合は、プリンタの画素毎のRGBXの画像データへの展開処理Ｓ１４が行われた後、そのRGBXデータに対して、リピート性を重視した圧縮処理が行われ、圧縮データが圧縮データメモリに記憶される（Ｓ２４）。そして、全てのバンドの処理が終了すると、圧縮データメモリ内のRGBXの圧縮データがプリンタに転送される（Ｓ２６）。つまり、本実施の形態においては、プリンタドライバ１４は、RGBXデータをCMYKXデータに色変換せずに、解像度変換されて色データが間引かれたRGBXデータに対して、圧縮処理を行い、プリンタに転送する。この場合も、解像度変換によりRGBX画像データのリピート性が高まっているので、圧縮率を高くすることができ、転送データ量を小さくすることができ、転送時間を短くすることができる。
【図面の簡単な説明】
【００４８】
【図１】本実施の形態におけるホストコンピュータとプリンタの構成図である。
【図２】本実施の形態におけるプリンタドライバである画像処理プログラムの処理手順を示すフローチャート図である。
【図３】描画レコードにより印刷されるページリソースの画像の一例を示す図である。
【図４】描画レコードと中間コードの一例を示す図である。
【図５】画像の拡大のための補間処理を説明するための図である。
【図６】画像の拡大のための補間処理を説明するための図である。
【図７】本実施の形態における拡大を伴う画像データの展開処理のフローチャート図である。
【図８】色変換処理Ｓ１６の詳細なフローチャート図である。
【図９】他の実施の形態におけるホストコンピュータとプリンタの構成を示す図である。
【図１０】本実施の形態におけるプリンタドライバ１４の画像処理手順を示すフローチャート図である。
【符号の説明】
【００４９】
１０：ホストコンピュータ、１４：プリンタドライバ
Ｓ１４：第２の画像データへの展開処理工程、Ｓ１６：色変換処理
Ｓ１８：圧縮処理
【図１】
2005073025.tif 000003
【図２】
2005073025.tif 000004
【図３】
2005073025.tif 000005
【図４】
2005073025.tif 000006
【図５】
2005073025.tif 000007
【図６】
2005073025.tif 000008
【図７】
2005073025.tif 000009
【図８】
2005073025.tif 000010
【図９】
2005073025.tif 000011
【図１０】
2005073025.tif 000012