(57)【要約】      （修正有）【課題】ホストペースのプリンタのプリンタドライバにおける画像データの圧縮率を高める。【解決手段】画像処理プログラムが、所定の色空間の画像データに展開する手順（Ｓ１８）と、画像データの繰り返し性を考慮して圧縮する圧縮手順（Ｓ２２）とを有する。展開手順（Ｓ１８）において、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを当該隣接画素グループ内のいずれかの画素の画像データに置き換える解像度変換処理を行なう。人間の目に目立たない輝度に関連する値が近接する隣接画素に対して、共通の画像データに置き換えることで解像度変換を行い、圧縮手順での圧縮率を高くする。【選択図】図２
2005045342.tif 000002
【特許請求の範囲】
【請求項１】
描画コマンドに基づいて画素毎の画像データを生成する画像処理手順をコンピュータに実行させる画像処理プログラムにおいて、前記画像処理手順は、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する手順と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮手順とを有し、
前記展開手順において、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを当該隣接画素グループ内のいずれかの画素の画像データに置き換える解像度変換処理を有することを特徴とする画像処理プログラム。
【請求項２】
請求項１において、
前記輝度に関連する値は、前記所定の色空間がＲＧＢ空間の場合における当該ＲＧＢの各階調値に所定の係数を乗算して加算した輝度値、前記所定の色空間がグレイ空間（輝度空間）の場合における階調値、前記所定の色空間がＲＧＢ空間の場合におけるＧ（グリーン）の階調値、前記所定の色空間がＲＧＢ空間の場合におけるＲＧＢの最大階調値、前記所定の色空間がＣＭＹの場合における当該ＣＭＹの各階調値に所定の係数を乗算して加算した輝度値、前記所定の色空間がＨＳＶ（色合い、彩度、明度）空間の場合における明度（Ｖ値）のいずれかであることを特徴とする画像処理プログラム。
【請求項３】
請求項１において、
更に、前記展開手順によって生成された画素毎の所定の色空間の画像データを、順次、異なる色空間の画像データに変換する色変換手順を有し、当該色変換手順では、所定の画素の画像データを色変換した後に当該画像データと同じ画像データを有する画素に対して当該色変換済みの画像データを与えることを特徴とする画像処理プログラム。
【請求項４】
請求項３において、
前記色変換手順により色変換された画像データが、前記圧縮手順において圧縮されることを特徴とする画像処理プログラム。
【請求項５】
請求項１において、
前記隣接画素グループは、２行、２列の隣接画素からなり、行列方向と斜め方向の隣接画素間の輝度に関連する値の差分が前記閾値以下であるか否かに基づいて前記解像度変換処理が行われることを特徴とする画像処理プログラム。
【請求項６】
請求項５において、
前記解像度変換処理において、２行、２列に配置された４つの前記隣接画素グループの全てにおいて前記解像度変換が行われた場合、更に、当該２行、２列の隣接画素グループのそれぞれ代表する画素に対して、前記解像度変換処理が再度行われることを特徴とする画像処理プログラム。
【請求項７】
請求項１において、
前記描画コマンドは、文字の描画コマンドと、グラフィックスの描画コマンドと、イメージの描画コマンドとを有し、
前記解像度変換処理は、前記イメージの描画コマンドに対する展開手順の時の行われ、前記文字及びグラフィックスの描画コマンドに対する展開手順では行われないことを特徴とする画像処理プログラム。
【請求項８】
描画コマンドに基づいて画素毎の画像データを生成し、印刷装置に転送する画像処理手順をコンピュータに実行させる画像処理プログラムにおいて、前記画像処理手順は、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する手順と、
前記展開手順によって生成された画素毎の所定の色空間の画像データを、順次、前記印刷装置の色材の色空間の画像データに変換する色変換手順と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮手順とを有し、
前記展開手順において、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを共通の画像データに置き換える解像度変換処理を有し、
当該色変換手順では、所定の画素の画像データを色変換した後に当該画像データと同じ画像データを有する画素に対して当該色変換済みの画像データを与えることを特徴とする画像処理プログラム。
【請求項９】
描画コマンドに基づいて画素毎の画像データを生成する画像処理装置において、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する手段と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮手段とを有し、
前記展開手段は、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを当該隣接画素グループ内のいずれかの画素の画像データに置き換える解像度変換処理手段を有することを特徴とする画像処理装置。
【請求項１０】
描画コマンドに基づいて画素毎の画像データを生成し、印刷装置に転送する画像処理装置において、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する手段と、
前記展開手順によって生成された画素毎の所定の色空間の画像データを、順次、前記印刷装置の色材の色空間の画像データに変換する色変換手段と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮手段とを有し、
前記展開手段は、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを共通の画像データに置き換える解像度変換手段を有し、
当該色変換手段では、所定の画素の画像データを色変換した後に当該画像データと同じ画像データを有する画素に対して当該色変換済みの画像データを与えることを特徴とする画像処理装置。
【請求項１１】
描画コマンドに基づいて画素毎の画像データを生成する画像処理方法において、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する工程と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮工程とを有し、
前記展開工程は、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを当該隣接画素グループ内のいずれかの画素の画像データに置き換える解像度変換処理工程を有することを特徴とする画像処理方法。
【請求項１２】
描画コマンドに基づいて画素毎の画像データを生成し、印刷装置に転送する画像処理方法において、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する工程と、
前記展開手順によって生成された画素毎の所定の色空間の画像データを、順次、前記印刷装置の色材の色空間の画像データに変換する色変換工程と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮工程とを有し、
前記展開工程は、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを共通の画像データに置き換える解像度変換工程を有し、
当該色変換工程では、所定の画素の画像データを色変換した後に当該画像データと同じ画像データを有する画素に対して当該色変換済みの画像データを与えることを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び画像処理をコンピュータに実行させる画像処理プログラムに関し、特に、画素の画像データを解像度変換によりリピート性を向上させて圧縮率を上げることができる画像処理装置及び画像処理プログラムに関する。
【０００２】
【従来の技術】
ホストコンピュータで作成された画像を印刷するプリンタは、低コスト、高速印刷、高品質印刷など様々な要求が厳しくなっている。特に、コスト削減の要請から、印刷のための画像処理の大半をホストコンピュータのプリンタドライバで行わせるホストベースのプリンタが提案されている。
【０００３】
かかるホストベースのプリンタでは、プリンタドライバにより、ホストコンピュータ上のアプリケーションにより生成された描画レコードから、画素毎のＲＧＢ値またはプリンタのトナーに対応するＣＭＹＫ値に展開した画像データを生成し、その画像データを圧縮してプリンタに転送する。プリンタでは、受信した画像データを伸長し、スクリーン処理などの二値化処理をし、印刷エンジンで印刷媒体上に画像化する。ホストコンピュータの性能向上に伴って、画像処理の大半を、ホストコンピュータ上の画像処理プログラムで行うことにより、プリンタのコントローラにおける画像処理装置を大幅に削減することができ、プリンタのコスト削減につなげることができる。
【０００４】
【特許文献１】
特許第３２８４４６４号
【０００５】
【特許文献２】
特許第３３６７５５５号
【０００６】
【特許文献３】
特許第３３６７５５６号
【０００７】
【発明が解決しようとする課題】
ホストベースのプリンタでは、ページ記述言語の印刷データを受信しそれを画像処理して印刷する従来のプリンタに比べると、ホストコンピュータ側で画素に展開した画像データを圧縮してプリンタに転送する必要がある。従って、この画像データのデータ量が大きくなると、ホストコンピュータからプリンタへの画像データの転送時間が長くなり、印刷のスループットが低下するという課題がある。特に、直前のラスターの画像データや直前の画素の画像データのリピート性を考慮した圧縮アルゴリズムによれば、イメージ画像を含むページリソースの場合にイメージ部分の圧縮率が悪く、転送する画像データのサイズが大きくなる傾向がある。
【０００８】
そこで、本発明の目的は、画素に展開した画像データの圧縮率を向上することができる画像処理装置及び画像処理プログラムを提供することにある。
【０００９】
【課題を解決するための手段】
上記の目的を達成するために、本発明の一つの側面は、描画コマンドに基づいて画素毎の画像データを生成する画像処理手順をコンピュータに実行させる画像処理プログラムにおいて、前記画像処理手順は、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する手順と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮手順とを有し、
前記展開手順において、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを当該隣接画素グループ内のいずれかの画素の画像データに置き換える解像度変換処理を有することを特徴とする。
【００１０】
上記の発明の側面によれば、人間の目に目立たない輝度に関連する値が近接する隣接画素に対して、共通の画像データに置き換えることで解像度変換を行い、圧縮手順での圧縮率を高くすることができる。従って、ホストコンピュータからプリンタへの画像データの転送時間を短くすることができ、印刷のスループットを向上させることができる。
【００１１】
更に、上記の目的を達成するための、本発明の別の側面では、描画コマンドに基づいて画素毎の画像データを生成し、印刷装置に転送する画像処理手順をコンピュータに実行させる画像処理プログラムにおいて、前記画像処理手順は、
前記描画コマンドに基づいて、画素毎の画像データであって所定の色空間の画像データに展開する手順と、
前記展開手順によって生成された画素毎の所定の色空間の画像データを、順次、前記印刷装置の色材の色空間の画像データに変換する色変換手順と、
前記画素毎の画像データを画像データの繰り返し性を考慮して圧縮する圧縮手順とを有し、
前記展開手順において、隣接する複数画素からなる隣接画素グループに対して、当該隣接する複数画素間の画像データの輝度に関連する値の差分が所定の閾値以下の場合に、当該隣接画素グループ内の各画素の画像データを共通の画像データに置き換える解像度変換処理を有し、
当該色変換手順では、所定の画素の画像データを色変換した後に当該画像データと同じ画像データを有する画素に対して当該色変換済みの画像データを与えることを特徴とする。
【００１２】
上記の別の側面によれば、色変換手順において、同じ画像データに対しては色変換処理を繰り返すことがないので、色変換手順の処理時間を短縮することができ、印刷スループットを向上させることができる。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、本発明の保護範囲は、以下の実施の形態例に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１４】
図１は、本実施の形態におけるホストコンピュータとプリンタの構成図である。ホストコンピュータ１０は、内蔵バスを介して接続されたＣＰＵ、ＲＡＭ、インターフェース手段Ｉ／Ｆなどを有し、更に、画像レコードを生成する描画プログラムやワードプロセッサなどのアプリケーションプログラム１２と、アプリケーションプログラム１２が生成した画像レコードを画像処理してプリンタの色材に対応するＣＭＹＫの圧縮データ１８を生成するプリンタドライバ・プログラム１４とが、ＨＤＤなどの記録媒体にインストールされている。
【００１５】
プリンタ２０は、ホストコンピュータ１０のインターフェースＩ／Ｆから、所定の通信媒体を介してＣＭＹＫの圧縮データ１８を受信する。通信媒体は、ＵＳＢケーブルなどの有線の通信媒体や、ＩＥＥＥ８０２．１１などの無線ＬＡＮなどの無線の通信媒体であってもよい。プリンタ２０のコントローラ２２は、圧縮されたＣＭＹＫの画像データ１８を受信すると、伸長回路２４で圧縮データを伸長し、スクリーン処理部２６で各画素のＣＭＹＫの色プレーン毎に二値化処理を行い、パルス幅変調回路２８により二値化データをパルス幅変調し、印刷エンジン３０に駆動パルス信号を供給する。印刷エンジン３０は、例えば、駆動パルス信号により駆動されるレーザ光により感光体ドラム上の潜像を形成し、ＣＭＹＫの現像トナーにより現像し、現像した画像を印刷媒体に転写する。印刷エンジン３０がインクジェットにより印刷媒体上に画像を印刷する場合は、スクリーン処理部２６やＰＷＭ２８に代えて、誤差拡散処理部とインクジェットのノズル駆動信号生成部とが設けられる。
【００１６】
上記のホストコンピュータ１０にインストールされているプリンタドライバ１４は、アプリケーションプログラム１２が生成した画像レコードを画像処理してプリンタの色材に対応するＣＭＹＫの圧縮データ１８を生成する。そして、このＣＭＹＫ圧縮データの圧縮率を高めるために、後述するように、輝度値や明度などの輝度に関連する値に応じて解像度変換を行って、画素毎の画像データのリピート性を増す処理を行う。
【００１７】
図２は、本実施の形態におけるプリンタドライバである画像処理プログラムの処理手順を示すフローチャート図である。アプリケーション・プログラム１２が生成したＧＤＩ（Ｇｒａｐｈｉｃａｌ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）型式の描画レコードが、プリンタドライバ１４に与えられる（Ｓ１０）。
【００１８】
ここで、図３に、描画レコードにより印刷される画像の一例を示す。この画像例は、Ａ４サイズの印刷用紙（印刷媒体）３２に、グラフィックスの一例である円３２１と、写真画像などのイメージ３２２と、文字３２３とからなる画像が印刷される例である。図４（Ａ）に、このような画像の描画レコードの一例が示される。即ち、円３２１に対しては、座標（Ｘ１，Ｙ１）の位置に直径Ｌの円を、内部を色ＲＧＢ＝（１２８、１２８，１２８）で塗りつぶす（ＦＩＬＬ）描画レコードが与えられる。ここで、ＲＧＢデータは、各色２５６階調の階調値を示す値である。更に、イメージ３２２に対しては、座標（Ｘ２，Ｙ２）の位置から幅Ｗ２、高さＨ２の領域内において、各画素の色ＲＧＢを示す画像データを有する描画データが与えられる。つまり、イメージ３２２の場合は、既に画素の画像データに展開済みである。また、文字３２３に対しては、座標（Ｘ３，Ｙ３）の位置に幅Ｗ３、高さＨ３の領域に、文字「Ａ」のビットマップデータが格納されている図示しないビットマップデータファイルＢＭのアドレス（Ｘ１，Ｙ１）〜（Ｘ２，Ｙ２）のデータを、色ＲＧＢ＝（０，０，０）（黒）で描画することを示す描画データが与えられる。
【００１９】
図２に戻り、プリンタドライバ１４は、図４（Ａ）の如き描画レコードを供給されると、描画レコードを解釈し、印刷媒体の所定行数毎に分割した複数のバンド毎に、画像展開するための関数などからなる中間コードを生成する（Ｓ１２）。この中間コードは、一種の描画コマンドである。図４（Ｂ）に中間コードの一例を示す。便宜上、ここでの中間コードのコードは、描画レコードのコードと同じにしている。図３に示されるとおり、ここでは、Ａ４サイズの印刷媒体の領域が４つのバンドに分割されているものとする。
【００２０】
図４（Ｂ）の中間コードは、バンド１に対しては、グラフィックスの一つである円３２１を全て展開するコード（描画コマンド）を有する。即ち、座標（Ｘ１，Ｙ１）の位置に半径Ｌの塗りつぶし円を色データＲＧＢ＝（１２８，１２８，１２８）で展開する中間コードである。また、中間コードは、バンド２に対しては、イメージ３２２の一部分を描画するコード（描画コマンド）を有する。即ち、バンド２内の座標（Ｘ２１，Ｙ２１）の位置から幅Ｗ２、高さＨ２１の領域内の各画素の色データＲＧＢを有するイメージを展開する中間コードである。更に、中間コードは、バンド３に対しては、イメージ３２２の残り部分と、文字３２３の一部分を描画するコード（描画コマンド）を有する。つまり、バンド３内の座標（Ｘ２２，Ｙ２２）の位置から幅Ｗ２、高さＨ２２の領域内の各画素の色データＲＧＢを有するイメージを展開する中間コードと、バンド３内の座標（Ｘ３１，Ｙ３１）の位置から幅Ｗ３、高さＨ３１の領域内にビットマップデータＢＭを色ＲＧＢ＝（０，０，０）で展開する中間コードとを有する。そして、バンド４に対しては、文字３２３の残りの部分を描画する中間コードを有する。
【００２１】
上記の中間コードは、プリンタ２０に対応するプリンタドライバ１４に固有の展開用の関数コード（或いは描画コマンド）などからなり、アプリケーションの描画コードが異なっても、共通の中間コードに変換されることで、プリンタドライバ１４の共通の展開手順により画素毎の画像データに展開することができる。
【００２２】
次に、プリンタドライバ１４は、バンド毎に中間コードから画素毎の画像データＲＧＢＸに展開する（Ｓ１４）。画像データＲＧＢＸは、画素の色データＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）と、画像の種類を示す属性データＸとからなり、それぞれ８ビットのデータで構成される。画像の種類は、例えば、円やグラフなどのグラフィック、文字、そして写真や自然画などのイメージであり、属性データＸによりこれらの画像の種類が区別され、プリンタコントローラにおけるスクリーン処理などにおいて、最適な処理の割り当てに利用される。
［展開処理］
前述の中間コードを展開することで、ホストコンピュータ１０内のＲＡＭ内のバンドメモリ領域に、展開された画素毎の画像データＲＧＢＸが格納される。このバンドメモリには、初期化状態で、例えば、色データＲＧＢとしてＲＧＢ＝（２５５，２５５，２５５）の白のデータが書き込まれ、属性データＸの画像の種類データとしてはグラフィックスのデータが書き込まれる。そして、バンド１では、円３２１を展開する中間コードにより円３２１を描画する領域の画素の画像データが生成され、バンドメモリに書き込まれる。バンド２では、イメージ３２２の上部部分の画素の画像データがバンドメモリに書き込まれる。更に、バンド３では、イメージ３２２の下部残り部分の画素の画像データがバンドメモリに書き込まれ、更に、文字３２３の上部部分の画素の画像データが書き込まれる。そして、バンド４では、文字３２３の下部残り部分の画素の画像データがバンドメモリに書き込まれる。
［解像度変換処理］
次に、プリンタドライバ１４は、画素毎のＲＧＢデータからなる画像データに対して、画素毎のＲＧＢデータから輝度値を求め、解像度変換処理を行う（Ｓ１６）。具体的には、隣接する複数の画素の隣接画素群に対して、各画素の輝度値をＲＧＢデータから求め、隣接画素間の輝度値の差分が閾値以下か否かを判定し、閾値以下の場合は隣接画素群の複数の画素の画像データＲＧＢをいずれかの画素の画像データに置換する。これにより、輝度値が近接する画素からなる隣接画素群内の画像データは共通の画像データとなり、その解像度はゼロになり、解像度を低下させる変換が施されることになる。
【００２３】
図５は、解像度変換処理を示すフローチャートと対応する画像データを示す図である。解像度変換処理Ｓ１６は、バンド内のイメージ領域に対して行われ、グラフィックスや文字に対しては行われない。そこで、バンド内のイメージ領域が選択される（Ｓ３０）。イメージ領域の画像データ４０が図５中に示される。ここでは、画像データ４０の一例として、４行、４列の１６画素のイメージ領域が示される。プリントドライバ１４の解像度変換処理Ｓ１６は、ＲＡＭ内のバンドメモリから隣接する２行、２列の４つの隣接画素のＲＧＢデータを読み出す（Ｓ３２）。この２行、２列の隣接する複数画素を、隣接画素群或いは隣接画素グループ４２と称する。この隣接画素群４２の画素数は、３行、３列の９つの隣接画素であっても良いが、２行、２列の４つの隣接画素が最も好ましい。解像度変換では、隣接画素群内の画素の輝度に関する値が近い場合は、いずれかの画素の画像データ（ＲＧＢデータ）に置き換える処理であり、イメージの解像度を低下させる処理であるので、その変換単位を２行、２列の最小単位にすることで解像度の低下を１／２に抑えて、過度の解像度低下を避けることができるからである。
【００２４】
次に、解像度変換処理Ｓ１６は、隣接画素群４２内の各画素の画像データＲＧＢ０，ＲＧＢ１，ＲＧＢ４，ＲＧＢ５から、各画素の輝度値Ｙを計算する（Ｓ３４）。輝度値Ｙを求める演算式は、次の通りである。
【００２５】
Ｙ＝ａＲ＋ｂＧ＋ｃＢ＝０．２９９０＊Ｒ＋０．５８７０＊Ｇ＋０．１１４０＊Ｂ
上記の演算式は、浮動小数点演算になるので、演算速度向上の為に、各係数ａ，ｂ，ｃに６５５３６を乗算した係数に変更した次の演算式にするのが好ましい。この演算式では、輝度値Ｙは全て整数値になり、演算速度を向上させることができる。
【００２６】
Ｙ＝１９５９５＊Ｒ＋３８４７０＊Ｇ＋７４７１＊Ｂ
隣接画素群４２内の４つの画素の輝度値４２Ｙについて、隣接画素間の輝度の差分が所定の閾値Ｖｔｈ以下であるか否かの判定が行われる（Ｓ３６）。つまり、６種類の隣接画素の組合せに対して、それらの画素の輝度値の差分が閾値Ｖｔｈ以下か否かがチェックされる。この閾値Ｖｔｈは、最大２５６階調の場合に、６４（２５％）或いは１２８（５０％）程度に設定される。この閾値は画質の低下を考慮して適宜選択される。また、隣接画素の組合せは必ずしも６種類に限定されず、左右、上下の４種類のみであってもよい。
【００２７】
そして、上記輝度値Ｙの６種類の差分が全て閾値Ｖｔｈ以下の場合は、その隣接画素群４２の画素の画像データが、隣接画素群内のいずれかの画素の画像データに置換される（Ｓ３８）。図５の例では、左上の画素の画像データＲＧＢＸ０に置き換えられ、隣接画素群４２内の画素の画像データは、全てＲＧＢＸ０と共通の画像データになる。この結果、隣接画素群４２内の解像度の変化はなくなる。また、輝度値Ｙの６種類の差分のいずれかが閾値Ｖｔｈを越える場合は、その隣接画素群４２の画素の画像データは変更されない。
【００２８】
上記の隣接画素群４２に対する解像度変換処理を、選択したイメージ領域の全ての画素に対して処理を繰り返す（Ｓ４０）。即ち、イメージ領域の２×２画素からなる隣接画素群４２が順次読み出され、それらに対して上記の解像度変換処理が行われ、輝度値が近接する場合は代表する画素の画像データに置き換えられる。また、同じバンド内の全てのイメージ領域に対して処理を繰り返す（Ｓ４２）。図５には、解像度変換された画像データ４４の一例が示されている。この例では、太枠で示した３つの隣接画素群４２ａ，４２ｂ，４２ｄにおいて、隣接画素間の輝度値の差分が小さく、隣接画素群内の画素が、代表する画素の画像データＲＧＢＸ０、ＲＧＢＸ２、ＲＧＢＸ１０にそれぞれ書き換えられている。もう一つの隣接画素群では、画素間の輝度値の差分が閾値を越えていたため、代表する画素の画像データへの書き換えは行われず、元の画像データＲＧＢＸ８、ＲＧＢＸ９、ＲＧＢＸ１２、ＲＧＢＸ１３のままになっている。
【００２９】
上記の解像度変換を行う理由は、人間の目は画像の輝度の変化に最も敏感であるので、隣接する画素において輝度値の変化が少ない場合は、それら隣接する画素の画像データを同じにしても、過度の画質の低下を招かないからである。そこで、そのような画像群に対しては、代表する画素の画像データに置き換えることで画像データのリピート性を高めることができ、後の色変換処理の効率を高め、圧縮率を高めることができる。
【００３０】
プリンタの印刷エンジン３０の解像度が３００ｄｐｉのように比較的低解像度の場合は、２×２画素の隣接画素群に対して１回の解像度変換処理を行うことで、最高で１５０ｄｐｉまで解像度が低下する。しかしながら、印刷エンジン３０の解像度が６００ｄｐｉのように比較的高解像度の場合は、２×２画素の隣接画素群に対する解像度変換処理を行い、更に、４×４画素の隣接画素群内における２×２画素の隣接画素群の全てで解像度変換が行われている場合は、更に、それらの４つの隣接画素群を新たな隣接画素群とみなして、同様の解像度変換処理を行うことが好ましい。この２回の解像度変換により、６００ｄｐｉの解像度が最高で１５０ｄｐｉまで低下することになる。
【００３１】
図６は、２段階の解像度変換処理のフローチャートと対応する画像データを示す図である。２段階の解像度変換処理を行うために、イメージ領域内の４×４画素の隣接する１６画素が抽出される（Ｓ５０）。そして、１６画素のうち、隣接する２×２画素の隣接画素群４２ａ，４２ｂ，４２ｃ，４２ｄに対して、順次解像度変換処理が行われる（Ｓ５０）。２×２画素の隣接画素群に対する解像度変換処理は、図５で示した処理と同じである。図６には、第一段階の解像度変換処理が行われた画像データ４４−１が示されている。この例では、４つの隣接画像群４２ａ，４２ｂ，４２ｃ，４２ｄ全てにおいて解像度変換が行われ、これら４つの隣接画素群内の４画素の画像データは、それぞれＲＧＢＸ０、ＲＧＢＸ２、ＲＧＢＸ８、ＲＧＢＸ１０に置き換えられている。
【００３２】
このように１６画素内の４つの隣接画素群の全てで解像度変換が行われた場合は（Ｓ５４のＹＥＳ）、更に、４つの隣接画素群を４つの隣接画素４２−１とみなして、第２段階目の解像度変換が行われる（Ｓ５６）。図６に示される通り、４つの隣接画素４２−１の各画素の画像データＲＧＢ０、ＲＧＢ２、ＲＧＢ８、ＲＧＢ１０から、それぞれ輝度値Ｙ０、Ｙ２、Ｙ８、Ｙ１０を求め（図中４２−１Ｙ）、それらの輝度値の６種類の差分が閾値Ｖｔｈ以下か否かの判定が行われ（Ｓ５６）、全ての差分が閾値以下の場合は、１６画素全ての画像データが代表する画素の画像データＲＧＢＸ０に置き換えられる。上記判定において全ての輝度値の差分が閾値以下にならない場合は、１６画素の画像データの置換は行われず、第１段階の解像度変換処理後の画像データ４４−１のままにされる。また、１６画素内の４つの隣接画素群全てで解像度変換が行われていない場合は（Ｓ５４のＮＯ）、第２段階目の解像度変換は行われない。
【００３３】
図６には、２段階の解像度変換が行われた後の画像データ４４−２が示されている。ここに示されるとおり、４×４画素の画像データが全てＲＧＢＸ０に置き換えられ、１６画素内の解像度変化はゼロになっている。
【００３４】
以上の通り、本実施の形態における解像度変換は、画素数を変化させることなく、隣接する画素の画像データを同じ画像データに置き換えて、画像データのリピート性を高める処理である。
【００３５】
図２に戻り、上記の例では、プリンタドライバ１４は、バンド内の中間コードを展開して画素毎の画像データであるＲＧＢＸデータを生成してバンドメモリに書込み（Ｓ１４）、更に、隣接画素群に対して解像度変換処理Ｓ１６を順次行った。しかしながら、上記の展開処理Ｓ１４と解像度変換処理Ｓ１６とを同時に行っても良い。即ち、中間コードから画素毎の画像データに展開するとき、隣接画素群の画素を展開し、その展開した画素の画像データから輝度値を計算して、隣接画素の輝度値が近似する場合に隣接画素群内の画素に対し代表する画素の画像データを与えて、バンドメモリに書き込む。２段階の解像度変換を行う場合は、上記の処理は４×４の１６画素に対して順次行われる。
［色変換処理］
図２に戻り、画素毎に展開され且つ解像度変換されたＲＧＢの画像データが、プリンタの印刷エンジン３０で使用されるトナーの色空間に対応するＣＭＹＫの画像データに変換される（Ｓ２０）。この色変換は、あらかじめ作成済みの色変換テーブルを参照する４面体補間演算により行われる。但し、前述の解像度変換されたことにより、隣接画素において同じ画像データＲＧＢＸが与えられるリピート性が高くなっているので、同じ画像データの場合は、上記の色変換の４面体補間演算を繰り返さずに、変換済みのＣＭＹＫ画像データがそのまま与えられる。
【００３６】
図７は、色変換処理Ｓ２０の詳細なフローチャート図である。最初に、バンドメモリ内の画像データについて、同じラスタ内のおいて画像データＲＧＢＸが繰り返される画素を検索し、２番目の画素の属性データＸにその繰り返し数を追加する（Ｓ６０）。これをバンドメモリ内の全てのラスタに対して行う。そして、バンドメモリ内の全ての画素の色変換処理が完了するまで（Ｓ６１）、画素のＲＧＢＸの画像データを読み出して（Ｓ６２）、必要な色変換処理を行う。最初に、画像データＲＧＢＸが繰り返される場合は、その繰り返し数が２番目の画素の属性データＸに加えられている。そこで、色変換処理では、読み出した画素の画像データＲＧＢＸの属性データＸが、同じＲＧＢ値の繰り返し数を示しているか否かがチェックされ（Ｓ６４）、繰り返し数を示していなければ（Ｓ６４でＮＯ）、読み出したＲＧＢ値に対して、色変換テーブルを参照して、４面体補間演算によりＣＭＹＫ値を求める（Ｓ６８）。また、属性データＸが繰り返し数を示している場合は（Ｓ６４でＹＥＳ）、既に変換済みのＣＭＹＫＸ値を繰り返し数に対応する画素に色変換データとしてコピーする（Ｓ６６）。これにより、色変換の演算処理の繰り返しを省略することができる。
【００３７】
図７には、色変換処理の４面体補間演算の原理が示されている。ホストコンピュータの記録媒体にあらかじめ記録されている色変換テーブルは、３つの色プレーンＲＧＢの階調データの組合せに対して、それぞれＣＭＹＫ階調データを有する。但し、２５６階調を有するＲＧＢの３つの色プレーンに対して、２５６階調全ての組合せに対応してＣＭＹＫデータを持たせると、色変換テーブルのデータ数が２５６の３乗と膨大なデータ量になる。そこで、色変換テーブルは、ＲＧＢの３つの色プレーンに対して所定の割合で間引いた階調値の格子点に対するＣＭＹＫデータを有する。そこで、色変換対象の画像データＲＧＢが、色変換テーブルとして準備された各格子点の階調値Ｒ１，Ｒ２の間、階調値Ｇ１，Ｇ２の間、階調値Ｂ１，Ｂ２の間にある場合は、４面体補間演算により色変換対象の画像データＲＧＢに対応する変換後の画像データＣＭＹＫが求められる。従って、この４面体補間演算を伴う色変換処理は、比較的時間がかかる重たい処理である。特に、プリンタドライバなどのコンピュータプログラムにより演算が行われる場合は、その処理時間が長くなりがちである。
【００３８】
本実施の形態では、画素毎の画像データＲＧＢＸに対して、解像度変換を行って輝度値の変化が少ない領域では同じ画像データになるように変換処理しているので、同じラスタ方向において、一旦色変換処理を行った画素と同じ画像データを有する画素に対しては、既に変換済みの画像データＣＭＹＫを与えて、色変換演算を繰り返さないようにしている。これにより、色変換処理工程に要する時間を大幅に短縮することができる。
【００３９】
図７に示されるとおり、バンドメモリ内の全ての画素に対して色変換処理が完了すると、バンドメモリ内の画素の画像データは全てＣＭＹＫＸの画像データに変換される。属性データＸは、ＲＧＢＸの画像データの属性データＸと同じである。
［圧縮処理］
図２に戻り、バンドメモリ内に書き込まれたＣＭＹＫＸの画像データに対して、５つの各色プレーン毎に圧縮処理が行われ、ＲＡＭ内に確保されている圧縮データメモリに書き込まれる（Ｓ２２）。この圧縮方式は、バンド内の画素の画像データのリピート性を考慮して行われる。例えば、直前のラスタ内の画素の画像データと同じであったり、直前の画素の画像データと同じであったりした場合は、ＣＭＹＫＸのデータ（それぞれ８ビットで合計８×５＝４０ビット）ではなく、繰り返しを示すデータのみに変換する。或いは、繰り返し数を示すデータに変換する。このようにリピート性を重視して圧縮する圧縮方式を採用することにより、本実施の形態の解像度変換によりリピート性が高められた画像データの圧縮率をより高くすることができる。
【００４０】
上記のバンド内の画素の画像データへの展開及び解像度変換処理Ｓ１８と、色変換処理Ｓ２０と、圧縮処理Ｓ２２とが、各バンド毎に行われ、全てのバンドの処理が終了すると（Ｓ２４のＹＥＳ）、１ページ分のＣＭＹＫＸの圧縮データ１８がプリンタ２０のコントローラ２２に転送される（Ｓ２６）。プリンタ側では、図１に示されるとおり、コントローラ２２が、受信した圧縮データ１８を伸長処理し、スクリーン処理を行い、パルス幅変換を行って、レーザ駆動パルスデータを印刷エンジン３０に転送する。本実施の形態では、ＣＭＹＫＸの画像データの圧縮率が高いので、ホストコンピュータ１０からプリンタ２０への転送データ量が少なくなり、転送時間が短縮され、印刷のスループットが向上する。
［輝度に関連する値］
上記の実施の形態では、画素に展開したＲＧＢの画像データから輝度値Ｙを求め、隣接する画素間の輝度値の差分が閾値以下か否かに基づいて、解像度変換を行った。これは、輝度の変化が少ない画像領域は、色変化が少ないので、その画像領域において色変化を多少間引いても、人間の目にはその変化を敏感に認識することができないことが理由である。従って、人間の目に目立たない指標を利用して、解像度変換を行うか否かの判断をすれば良いことになる。
【００４１】
従って、輝度値Ｙに代えて、ＲＧＢの色データのうち最も輝度値Ｙに影響を与えるＧ（グリーン）の色データのみを比較対象にしても良い。この場合は、輝度値Ｙの演算を省略することができるというメリットがあるが、解像度変換の基準がやや劣るというデメリットがある。更に、ＲＧＢの色空間からＨＳＶ（Ｈｕｅ：色合い，  Ｓａｔｕｒａｔｉｏｎ：彩度，  Ｖａｌｕｅ：明度）の色空間の明度Ｖを求めて、隣接する画素の明度の差分が閾値以下か否かに依存して、解像度変換を行う。明度Ｖは、ＲＧＢの階調値のうち最も大きい階調値（Ｖ＝ＭＡＸ（Ｒ．Ｇ．Ｂ））であるので、明度Ｖを基準にする場合も、明度Ｖを求める演算処理を簡単化することができる。また、画素に展開した画像データがＨＳＶ色空間である場合は、その明度Ｖ値を解像度変換の基準にすることができる。そして、色空間がグレイ空間（輝度空間）の場合は、画素の階調値自体が輝度値になる。
［他の実施の形態］
図８は、他の実施の形態におけるホストコンピュータとプリンタの構成を示す図である。この例では、プリンタコントローラ２２内に、色変換処理部２５が設けられており、ホストコンピュータ１０からはＲＧＢＸの圧縮データ１９がプリンタコントローラ２２に転送され、コントローラ２２において、伸長処理、色変換処理、スクリーン処理、ＰＷＭ処理を行う。
【００４２】
図９は、本実施の形態におけるプリンタドライバ１４の画像処理手順を示すフローチャート図である。図２のフローチャートと同じ手順には同じ引用番号が与えられている。手順Ｓ１０〜Ｓ１６、Ｓ２４は図２の同じ手順と同じである。本実施の形態の場合は、画素毎のＲＧＢＸの画像データに対して解像度変換処理Ｓ１６が行われた後、そのＲＧＢＸデータに対して、リピート性を重視した圧縮処理が行われ、圧縮データが圧縮データメモリに記憶される（Ｓ２３）。そして、全てのバンドの処理が終了すると、圧縮データメモリ内のＲＧＢＸの圧縮データがプリンタに転送される（Ｓ２７）。つまり、本実施の形態においては、プリンタドライバ１４は、ＲＧＢＸデータをＣＭＹＫＸデータに色変換せずに、解像度変換されて色データが間引かれたＲＧＢＸデータに対して、圧縮処理を行い、プリンタに転送する。この場合も、解像度変換によりＲＧＢＸ画像データのリピート性が高まっているので、圧縮率を高くすることができ、転送データ量を小さくすることができ、転送時間を短くすることができる。
【００４３】
上記の実施の形態における解像度変換処理と色変換処理と圧縮処理とを、描画レコードのイメージに対してのみ行い、圧縮処理されたイメージデータと、文字やグラフィックスの描画コマンドとを有するページ記述言語を、ホストコンピュータからプリンタに転送する場合にも、本発明は適用可能である。この場合は、ページ記述言語に含まれるイメージデータのデータ量が小さくなっているので、ホストコンピュータからプリンタへの転送時間を短くすることができ、全体の印刷のスループットを向上させることができる。
【図面の簡単な説明】
【図１】本実施の形態におけるホストコンピュータとプリンタの構成図である。
【図２】本実施の形態におけるプリンタドライバである画像処理プログラムの処理手順を示すフローチャート図である。
【図３】描画レコードにより印刷される画像の一例を示す図である。
【図４】描画レコードと中間コードの一例を示す図である。
【図５】解像度変換処理を示すフローチャートと対応する画像データを示す図である。
【図６】２段階の解像度変換処理のフローチャートと対応する画像データを示す図である。
【図７】色変換処理Ｓ２０の詳細なフローチャート図である。
【図８】他の実施の形態におけるホストコンピュータとプリンタの構成を示す図である。
【図９】本実施の形態におけるプリンタドライバ１４の画像処理手順を示すフローチャート図である。
【符号の説明】
１０：ホストコンピュータ、１２：アプリケーション、
１４：プリンタドライバ、１８：圧縮データ
２０：プリンタ、２２：プリンタドライバ
Ｓ１４，Ｓ１６，Ｓ１８：画像データの展開処理、解像度変換処理
Ｓ２０：色変換処理、Ｓ２２：圧縮処理
【図１】
2005045342.tif 000003
【図２】
2005045342.tif 000004
【図３】
2005045342.tif 000005
【図４】
2005045342.tif 000006
【図５】
2005045342.tif 000007
【図６】
2005045342.tif 000008
【図７】
2005045342.tif 000009
【図８】
2005045342.tif 000010
【図９】
2005045342.tif 000011