(57)【要約】【課題】  画素数が増加してもメモリ容量を増加させる迅速に画像を印刷する。【解決手段】  画像データを画素毎にドット形成の有無を表すドットデータに一旦変換して画像を印刷する印刷装置において、ドット形成の有無を予め決定可能な特定画素を除くことによって画像データを圧縮してから、ドットデータ（圧縮ドットデータ）に変換する。次いで、印刷用紙上に実際にドットを形成する前の段階で、圧縮ドットデータに特定画素についてのドット形成有無を組み込んで、特定画素を含んだドットデータを合成し、合成したドットデータに基づいて印刷用紙上にドットを形成する。こうすれば、圧縮した状態で画像処理を施すことができるので、処理の迅速化を図ることができるとともに、処理のために要するメモリ容量も抑制することが可能となる。【選択図】  図１
2005138421.tif 000002
【特許請求の範囲】
【請求項１】
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することにより画像を出力する画像出力装置であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく特定画素位置記憶手段と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する圧縮ドットデータ生成手段と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成するドットデータ合成手段と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成するドット形成手段と
を備える画像出力装置。
【請求項２】
請求項１記載の画像出力装置であって、
前記特定画素記憶手段は、前記特定画素として、前記画像データが所定の第１の閾値以上、あるいは該第１の閾値より小さな所定の第２の閾値以下である画素を検出して、前記画像中での画素位置を記憶しておく手段である画像出力装置。
【請求項３】
請求項２記載の画像出力装置であって、
前記画像データは、ＲＧＢ各色についての階調値を画素毎に記憶したデータであり、
前記特定画素記憶手段は、前記特定画素として、ＲＧＢ各色についての階調値が所定の第１の閾値以上、あるいは該第１の閾値より小さな所定の第２の閾値以下である画素を検出して、前記画像中での画素位置を記憶しておく手段である画像出力装置。
【請求項４】
請求項２記載の画像出力装置であって、
前記ドット形成手段は、前記出力媒体上に所定色のドットを形成する手段であり、
前記画像データは、前記所定色についての階調値を画素毎に記憶したデータであり、
前記特定画素記憶手段は、前記特定画素として、前記所定色についての階調値が所定の第１の閾値以上、あるいは該第１の閾値より小さな所定の第２の閾値以下である画素を検出して、前記画像中での画素位置を記憶しておく手段である画像出力装置。
【請求項５】
請求項１記載の画像出力装置であって、
前記圧縮ドットデータ生成手段は、前記所定の画像処理としてディザ法を前記圧縮画像データに適用することにより、前記圧縮ドットデータを生成する手段である画像出力装置。
【請求項６】
請求項５記載の画像出力装置であって、
ディザ法で参照されるディザマトリックスの中から、前記画像中で前記特定画素が検出された画素位置に対応する閾値を除いたマトリックスたる、小ディザマトリックスを生成する小ディザマトリックス生成手段を備え、
前記圧縮ドットデータ生成手段は、前記圧縮画像データに前記小ディザマトリックスを用いてディザ法を適用することにより、前記圧縮ドットデータを生成する手段である画像出力装置。
【請求項７】
請求項１記載の画像出力装置であって、
前記ドット形成手段は、互いに間隔を有する複数本の画素列について、該画素列の先頭方向から同時にドットを形成する手段であり、
前記ドットデータ合成手段は、前記同時にドットを形成する複数本の画素列について、前記ドットデータを合成する手段である画像出力装置。
【請求項８】
請求項７記載の画像出力装置であって、
前記特定画素位置記憶手段は、前記特定画素の画素位置を画素列毎に記憶しておく手段であり、
前記圧縮ドットデータ生成手段は、前記圧縮ドットデータを生成した後、該圧縮ドットデータを画素列毎に記憶しておく手段である画像出力装置。
【請求項９】
請求項１記載の画像出力装置であって、
前記圧縮ドットデータ生成手段は、
前記圧縮画像データを高解像度化する高解像度化手段を備えるとともに、
高解像度化された前記圧縮画像データに対して前記所定の画像処理を加えることにより、高解像度の前記圧縮ドットデータを生成する手段であり、
前記ドットデータ合成手段は、前記記憶しておいた特定画素の画素位置と、前記高解像度の圧縮ドットデータとに基づいて、高解像度の前記ドットデータを合成する手段である画像出力装置。
【請求項１０】
請求項２、請求項５、請求項７、または請求項９のいずれかに記載の画像出力装置であって、
前記ドット形成手段は、互いに大きさの異なる複数種類のドットを形成可能な手段であり、
前記特定画素位置記憶手段は、前記特定画素として、前記各種ドットについての形成有無を予め決定可能な画素を検出して、前記画像中での画素位置を記憶しておく手段であり、
前記圧縮ドットデータ生成手段は、前記圧縮ドットデータとして、前記特定画素を除いた画素毎に前記各種ドットについての形成有無を表す前記ドットデータを生成する手段である画像出力装置。
【請求項１１】
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することにより画像を出力する画像出力方法であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく第１の工程と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する第２の工程と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する第３の工程と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成する第４の工程と
を備える画像出力方法。
【請求項１２】
請求項１１記載の画像出力方法であって、
前記第４の工程は、互いに間隔を有する複数本の画素列について、該画素列の先頭方向から同時にドットを形成する工程であり、
前記第３の工程は、前記同時にドットを形成する複数本の画素列について、前記ドットデータを合成する工程である画像出力方法。
【請求項１３】
画像データに所定の画像処理を加えて画素毎にドット形成の有無を表すドットデータを生成し、該ドットデータを、出力媒体上にドットを形成して画像を出力する画像出力部に供給することで、画像の出力を制御する出力制御方法であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく工程（Ａ）と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する工程（Ｂ）と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する工程（Ｃ）と、
前記合成したドットデータを前記画像出力部に供給する工程（Ｄ）と
を備える制御方法。
【請求項１４】
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することによって画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく第１の機能と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する第２の機能と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する第３の機能と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成する第４の機能と
をコンピュータを用いて実現させるプログラム。
【請求項１５】
請求項１４記載のプログラムであって、
前記第４の機能は、互いに間隔を有する複数本の画素列について、該画素列の先頭方向から同時にドットを形成する機能であり、
前記第３の機能は、前記同時にドットを形成する複数本の画素列について、前記ドットデータを合成する機能であるプログラム。
【請求項１６】
画像データに所定の画像処理を加えて画素毎にドット形成の有無を表すドットデータを生成し、該ドットデータを、出力媒体上にドットを形成して画像を出力する画像出力部に供給することで、画像の出力を制御する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく機能（Ａ）と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する機能（Ｂ）と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する機能（Ｃ）と、
前記合成したドットデータを前記画像出力部に供給する機能（Ｄ）と
をコンピュータを用いて実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力媒体上にドットを形成して画像を出力する技術に関し、詳しくは、画像データに所定の画像処理を行って、得られたデータに基づいて画像を出力する技術に関する。
【背景技術】
【０００２】
印刷用紙や液晶表示画面などの出力媒体上にドットを形成することによって画像を出力する画像出力装置は、各種画像機器の出力装置として広く使用されている。また、今日では、有機ＥＬ（Electro-Luminescence）やいわゆる電子インクなどを利用した新たな画像出力装置も各種提案されている。これら画像出力装置では、通常、画像は格子状に細分された複数の画素の集合として取り扱われており、画素毎にドット形成の有無を表すデータ（ドットデータ）に従って各画素にドットを形成することにより画像を出力している。ドットデータは、画像のデータに適切な画像処理を施してやることで生成することができ、そのための画像処理手法としては、ディザ法や誤差拡散法と呼ばれる方法を初めとして、周知の種々の手法を適用することができる。このようにして生成したドットデータを受け取ると、画像出力装置は、ドットデータに従ってそれぞれの画素にドットを形成することによって画像を出力している。
【０００３】
こうした画像出力装置では、出力画像の高画質化あるいは大型化の要請に対応するべく、１つの画像を構成している画素数が次第に増加する傾向にある。画素数を増加させてやれば、出力画質を向上させたり、あるいは画質を低下させることなく大きな画像を出力することが可能となる（例えば、特許文献１）。
【０００４】
【特許文献１】特開平６−３３４８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、画素数が増加するとドットデータのデータ量も増加するので、画像出力装置に搭載すべきメモリの記憶容量が増加してしまうという問題がある。加えて、画素数が増加すれば、ドットデータを生成するための画像処理に要する時間や、画像処理のために必要な記憶容量も増加してしまうという問題がある。
【０００６】
この発明は、従来技術が有する上述した課題を解決するためになされたものであり、画像を構成する画素数が増加した場合でも、必要な記憶容量や画像処理時間の増加といった弊害を生じさせることなく、高画質な画像を迅速に出力可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題の少なくとも一部を解決するために、本発明の画像出力装置は次の構成を採用した。すなわち、
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することにより画像を出力する画像出力装置であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく特定画素位置記憶手段と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する圧縮ドットデータ生成手段と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成するドットデータ合成手段と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成するドット形成手段と
を備えることを要旨とする。
【０００８】
また、上記の画像出力装置に対応する本発明の画像出力方法は、
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することにより画像を出力する画像出力方法であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく第１の工程と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する第２の工程と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する第３の工程と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成する第４の工程と
を備えることを要旨とする。
【０００９】
こうした本発明の画像出力装置および画像出力方法においては、画像データに所定の画像処理を加えることによって、画素毎にドット形成の有無を表したデータたるドットデータを生成し、生成したドットデータに基づいて出力媒体上にドットを形成することによって画像を出力する。ここで、画像処理を開始するにあたっては、画像処理を行わなくてもドット形成の有無を決定可能な所定の画像データを有する画素（特定画素）を予め検出して、画像中での画素位置を記憶しておく。そして、画像データから特定画素を除いた圧縮画像データについて画像処理を加えることにより、特定画素以外の画素についてのドットデータ（圧縮ドットデータ）を生成する。次いで、生成した圧縮ドットデータに、特定画素についてのドット形成の有無を組み込むことによって、特定画素を含む各画素についてドット形成の有無を表すドットデータを合成する。画像中での特定画素の画素位置は予め記憶してあるので、特定画素についてのドット形成の有無は、記憶されている画素位置に基づいて適切に組み込むことができる。
【００１０】
このようにしてドットデータを合成してやれば、特定画素を除いた画素についてだけ画像処理を行えばよい。このため、画像処理によって得られるデータ（圧縮ドットデータ）のデータ量を小さくすることができるので、その分だけ必要な記憶容量を抑制することが可能となる。また、画像処理の対象となる画素数が減少するので、画像処理を迅速に行うことが可能となるとともに、画像処理を実行するために必要な記憶容量も抑制することができる。更に、画像処理によって得られるデータのデータ量が小さくなっているので、画像の出力と画像処理とが別体に構成された部分で行われる場合にも、画像処理を行った部分から画像を出力する部分にデータを迅速に供給することができ、延いては画像を迅速に出力することができるという利点も得ることができる。
【００１１】
こうした画像出力装置においては、次のような画素を特定画素として検出することとしても良い。すなわち、画像データが上限値あるいは上限値付近の値を取る画素、若しくは、画像データが下限値あるいは下限値付近の値を取る画素を、特定画素として検出することとしても良い。ここで、上限値付近の値としては、予め適切な第１の閾値を定めておき、かかる閾値より大きな値であれば、上限値付近の値と判断することができる。また、下限値付近の値としては、第１の閾値より小さくな第２の閾値を予め適切に定めておき、かかる閾値より小さな値であれば、下限値付近の値と判断することができる。
【００１２】
画像データが上限値あるいは下限値となる画素については、画像処理を行わなくてもドット形成の有無を決定することが可能である。また、画像データが上限値付近の画素であれば、多くの場合は、上限値を取る画素に準じて扱っても実際上の問題は生じない。同様に、下限値付近の画素であれば、下限値を取る画素に準じて扱っても実際上の問題は生じないことが多い。従って、このような画素を特定画素として検出してやれば、適切に且つ簡便に特定画素を検出することが可能となるので好適である。
【００１３】
特に、画像データが、ＲＧＢ各色についての階調値を画素毎に記憶したデータ（ＲＧＢ画像データ）である場合は、これらＲＧＢ各色についての階調値がすべて上限値（あるいは上限値付近）となる画素、若しくはすべて下限値（あるいは下限値付近）となる画素を、特定画素として検出することとしても良い。
【００１４】
ＲＧＢ各色の階調値がすべて上限値であるか、すべて下限値となる画素については、画像処理を行わなくてもドット形成の有無を判断することができる。また、ＲＧＢ各色の階調値がすべて上限値付近であるか、すべて下限値付近となる画素についても、これらを上限値となる画素、あるいは下限値となる画素に準じて扱っても実際上の問題が生じることはない。従って、このような画素を特定画素として検出してやれば、画像データをＲＧＢ画像データの段階で圧縮することができるので、後述する色変換と呼ばれる処理を含む多くの画像処理を、圧縮した画像データに対して行うことが可能となる。このように多くの画像処理を圧縮した画像データに対して行うこととすれば、迅速に画像処理を行うことが可能となる。
【００１５】
また、画像出力装置が、出力媒体上に所定色のドットを形成しながら画像を出力する場合は、該所定色についての階調値が上限値（あるいは上限値付近）の画素、若しくは下限値（あるいは下限値付近）の画素を、特定画素として検出することとしても良い。
【００１６】
所定色のドットの形成有無は、同じ所定色の画像データの階調値に基づいて色毎に判断される。このことから、所定色の画像データに基づいて所定色毎に特定画素を検出してやれば、特定画素を適切に検出することが可能となり、延いては、画像データを効果的に圧縮することが可能となる。
【００１７】
上述した画像出力装置においては、いわゆるディザ法を適用することにより、画像データをドットデータに変換することとしても良い。
【００１８】
ディザ法を用いれば、画像データに基づいてドット形成の有無を簡便に判断することが可能である。このため、画像データを迅速にドットデータに変換することができる。加えて、多くの画素については実際にディザ法を適用せずとも、ドット形成の有無を比較的容易に予想することが可能である。このため、特定画素を適切に且つ簡便に検出して、画像データを効果的に圧縮することが可能となるので好ましい。
【００１９】
この時、画像データの中から特定画素のデータを除いた圧縮画像データを生成することに併せて、ディザマトリックスの中から、特定画素の画素位置に対応する閾値を除いて小ディザマトリックスを生成し、圧縮画像データに小ディザマトリックスを適用することによって、ドットデータ（圧縮ドットデータ）を生成することとしてもよい。
【００２０】
ディザマトリックスに設定されている閾値は、良好な画質が得られるように最適な分布に設定されている。従って、画像データを圧縮することに併せて、ディザマトリックスも圧縮しておけば、最適に設定されている閾値の分布が崩されることがないので、良好な画質で画像を出力することが可能となる。
【００２１】
また、上述した画像出力装置あるいは画像出力方法が、互いに間隔を有する複数本の画素列について、該画素列の先頭方向から同時にドットを形成しながら画像を出力している場合は、同時にドットが形成される複数本の画素列について、記憶しておいた特定画素の画素位置および圧縮ドットデータからドットデータを合成することとしてもよい。
【００２２】
こうすれば、ドットを形成する画素列についてのみドットデータを合成してやれば良く、他の画素列については、圧縮した状態でドットデータを記憶しておくことができる。このため、ドットデータを記憶しておくために必要な記憶容量を、抑制することが可能となる。
【００２３】
こうした画像出力装置においては、特定画素の画素位置と、圧縮ドットデータとを、画素列毎に記憶しておくこととしてもよい。
【００２４】
このように、特定画素の画素位置および圧縮ドットデータが画素列毎に記憶されていれば、ドットを形成しようとする複数本の画素列についてのドットデータを合成する処理を簡便に行うことが可能となるので好ましい。
【００２５】
上述した画像出力装置においては、次のようにしても良い。画像データから特定画素を除いて圧縮画像データを生成した後、この圧縮画像データを高解像度のデータに変換する。次いで、得られた高解像度の圧縮画像データに対して前記所定の画像処理を加えることにより、高解像度の圧縮ドットデータを生成する。その後、高解像度前の画像データに関して記憶しておいた特定画素の画素位置と、高解像度の圧縮ドットデータとから、高解像度のドットデータを合成することとしてもよい。
【００２６】
こうすれば、１つの特定画素が複数画素分のドットデータに対応することになるので、圧縮ドットデータのデータ量を大幅に低減することが可能となり、延いては、必要な記憶容量を抑制することができる。また、画像の出力と画像処理とを別体に構成された部分で行う場合でも、画像処理後のデータを画像を出力する部分に迅速に供給することができ、延いては画像を迅速に出力することが可能となる。
【００２７】
上述した本願の各発明は、互いに大きさの異なる複数種類のドットを形成することによって画像を出力する画像出力装置に対しても、好適に適用することが可能である。
【００２８】
すなわち、このような画像出力装置では、ドットデータとして、各種ドットについての形成有無を画素毎に表したデータが使用され、こうしたドットデータは、ドットの種類が多くなっている分だけデータ量が大きくなる傾向にある。従って、特定画素を検出して画像データを圧縮してやれば、データの圧縮量が大きいこととも相まって、処理の迅速化およびメモリ抑制に関して大きな効果を得ることが可能となる。
【００２９】
また、前述した課題の少なくとも一部を解決するために、本発明の出力制御方法は次の構成を採用した。すなわち、
画像データに所定の画像処理を加えて画素毎にドット形成の有無を表すドットデータを生成し、該ドットデータを、出力媒体上にドットを形成して画像を出力する画像出力部に供給することで、画像の出力を制御する出力制御方法であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく工程（Ａ）と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する工程（Ｂ）と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する工程（Ｃ）と、
前記合成したドットデータを前記画像表示部に供給する工程（Ｄ）と
を備えることを要旨とする。
【００３０】
こうした本発明の出力制御方法においては、画像データに所定の画像処理を加えてドットデータを生成し、生成したドットデータを画像出力部に供給することによって、画像の出力を制御する。このようにして画像の出力を制御する場合でも、予め特定画素を検出することによって画像データを圧縮しておけば、画像処理を迅速に行って圧縮ドットデータを生成することができる。こうして生成した圧縮ドットデータに、特定画素についてのドット形成の有無を組み込むことによってドットデータを合成し、得られたドットデータを画像出力部に供給することによって画像の出力を制御する。
【００３１】
このようにして画像の出力を制御する場合、ドットデータを合成する直前までは、画像データおよびドットデータを圧縮した状態で取り扱うことができる。このため、データを記憶しておくために必要な記憶容量を抑制することが可能となる。
【００３２】
更に本発明は、上述した画像出力方法を実現するためのプログラムをコンピュータに読み込ませ、所定の機能を実行させることにより、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した画像出力方法に対応する本発明のプログラムは、
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することによって画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく第１の機能と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する第２の機能と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する第３の機能と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成する第４の機能と
をコンピュータを用いて実現させることを要旨とする。
【００３３】
ここで、互いに間隔を有する複数本の画素列について、該画素列の先頭方向から同時にドットを形成することによって画像を出力する場合には、上記の第３の機能は、前記同時にドットを形成する複数本の画素列について、前記ドットデータを合成する機能とすることができる。
【００３４】
また、上記のプログラムに対応する本発明の記録媒体は、
画素毎にドット形成の有無を表すドットデータを、画像データに所定の画像処理を加えることによって生成し、該ドットデータに基づいて出力媒体上にドットを形成することによって画像を出力する方法を実現するためのプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく第１の機能と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する第２の機能と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する第３の機能と、
前記合成したドットデータに基づいて前記出力媒体上にドットを形成する第４の機能と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００３５】
また、上述した出力制御方法に対応する本発明のプログラムは、
画像データに所定の画像処理を加えて画素毎にドット形成の有無を表すドットデータを生成し、該ドットデータを、表示媒体上にドットを形成して画像を出力する画像出力部に供給することで、画像の出力を制御する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく機能（Ａ）と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する機能（Ｂ）と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する機能（Ｃ）と、
前記合成したドットデータを前記画像表示部に供給する機能（Ｄ）と
をコンピュータを用いて実現することを要旨とする。
【００３６】
更に、上記のプログラムに対応する本発明の記録媒体は、
画像データに所定の画像処理を加えて画素毎にドット形成の有無を表すドットデータを生成し、該ドットデータを、出力媒体上にドットを形成して画像を出力する画像出力部に供給することで、画像の出力を制御する方法を実現するためのプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像データの中から、ドット形成の有無を予め決定可能な所定の画像データを有する画素たる特定画素を検出して、前記画像中での画素位置を記憶しておく機能（Ａ）と、
前記画像データから前記特定画素についての画像データを除いた圧縮画像データを生成して所定の画像処理を加えることにより、該圧縮画像データについての前記ドットデータたる圧縮ドットデータを生成する機能（Ｂ）と、
前記特定画素に対応するドット形成の有無を、前記記憶しておいた画素位置に基づいて前記圧縮ドットデータに組み込むことにより、前記画像データに対する前記ドットデータを合成する機能（Ｃ）と、
前記合成したドットデータを前記画像出力部に供給する機能（Ｄ）と
をコンピュータを用いて実現するプログラムを記憶していることを要旨とする。
【００３７】
これらのプログラムをコンピュータに読み込んで、上記の各種機能を実現させれば、画像を構成する画素数が多くなった場合でも、必要な記憶容量をいたずらに増加させることなく、高画質な画像を迅速に出力させることが可能となる。
【発明を実施するための最良の形態】
【００３８】
以下では、上述した本願発明の内容を明確にするために、次のような順序に従って実施例を説明する。
Ａ．実施例の概要  ：
Ｂ．第１実施例  ：
Ｂ−１．装置構成  ：
Ｂ−２．第１実施例の画像印刷処理  ：
（１）画像データ読み込み処理  ：
（２）解像度変換処理  ：
（３）画像データ圧縮処理  ：
（４）色変換処理  ：
（５）ハーフトーン処理  ：
（６）インターレース・オーバーラップ処理  ：
Ｃ．第２実施例  ：
Ｄ．第３実施例  ：
Ｄ−１．第３実施例の変形例  ：
【００３９】
Ａ．実施例の概要  ：
実施例の詳細な説明に入る前に、図１を参照しながら、実施例の概要について説明しておく。図１は、印刷システムを例にとって、本願発明の画像出力装置に関する実施例の概要を示した説明図である。図示した印刷システムは、コンピュータ１０とプリンタ２０などが組み合わされて構成されており、全体が一体の画像出力装置として機能する。コンピュータ１０は、出力しようとする画像に所定の画像処理を加えることによって、画素毎にドット形成の有無を表すドットデータを生成し、プリンタ２０は、コンピュータ１０で生成されたドットデータに従って印刷用紙上にドットを形成することにより、画像を印刷する。ここで、画像を構成している画素数が多くなると、ドットデータのデータ量が大きくなってしまうので、このデータを記憶しておくためにプリンタ２０に搭載すべき記憶容量が増加する。また、データ量が大きくなれば、コンピュータ１０で画像処理を行ってドットデータを生成するために要する時間も増加するとともに、生成したドットデータをプリンタ２０に記憶するための時間も長くなってしまう。
【００４０】
こうした点を考慮して、図１に示した印刷システムでは、次のような構成を採用している。すなわち、図示したコンピュータ１０には、特定画素位置記憶モジュールや、圧縮ドットデータ生成モジュールなどが設けられている。特定画素位置記憶モジュールは、画像データを受け取ると、ドット形成の有無を予め決定可能な所定の画像データを有する画素（特定画素）を検出して、画像中での画素位置を記憶する。圧縮ドットデータ生成モジュールは、画像データから特定画素についてのデータを除いた画像データ（圧縮画像データ）を生成し、この圧縮画像データに所定の画像処理を施して画素毎にドット形成の有無を判断することにより、圧縮画像データに対するドットデータ（圧縮ドットデータ）を生成する。コンピュータ１０は、こうして生成した圧縮ドットデータと、検出した特定画素位置の情報とをプリンタ２０に供給する。
【００４１】
プリンタ２０には、ドットデータ合成モジュールや、ドット形成モジュールなどが設けられている。ドットデータ合成モジュールは、コンピュータ１０から圧縮ドットデータと特定画素位置についての情報とを受け取り、これらに基づいて画像データに対するドットデータを合成する。前述したように、特定画素とはドット形成の有無を予め決定可能な画素であるから、特定画素位置についての情報が分かれば、特定画素に対応するドット形成の有無を圧縮ドットデータの適切な箇所に組み込むことによって、ドットデータを合成することができる。こうして合成したドットデータに基づいて、ドット形成モジュールが印刷用紙上のドットを形成することによって、画像を印刷することが可能となる。
【００４２】
このように、図１に示した印刷システムでは、画像データから特定画素を除いた圧縮画像データを生成し、この圧縮画像データに画像処理を施すことによって圧縮ドットデータを生成している。圧縮画像データは、特定画素についての画像データが除かれている分だけデータ量が小さくなっている。このため、画像処理を速やかに完了することができ、圧縮ドットデータを迅速に生成することが可能である。また、得られた圧縮ドットデータのデータ量も、特定画素のデータを含まない分だけ小さくなるので、プリンタ２０に迅速に供給することができる。更に、プリンタ２０では、供給された圧縮ドットデータを記憶しておくために必要な記憶容量も少なくすることができる。
【００４３】
もちろん、図１に示した印刷システムでは、圧縮ドットデータに加えて特定画素位置についての情報もプリンタ２０に供給する必要があり、プリンタ２０では供給された情報を記憶しておく必要がある。しかし、特定画素の画像データを除くことによるデータの減少量に比べれば、特定画素位置についてのデータ量は僅かであり、全体としてのデータ量を減少させることができるので、プリンタ２０に供給するための時間や、プリンタ２０に必要な記憶容量を抑制することが可能である。
【００４４】
こうした本実施例の画像出力装置には、図１に例示したものに限られず種々の実施態様が存在する。以下では、これら各種の実施態様について、実施例に基づいて詳しく説明する。
【００４５】
Ｂ．第１実施例  ：
Ｂ−１．装置構成  ：
図２は、第１実施例において画像データに画像処理を加えるためのコンピュータ１００の構成を示す説明図である。コンピュータ１００は、ＣＰＵ１０２を中心に、ＲＯＭ１０４やＲＡＭ１０６などを、バス１１６で互いに接続することによって構成されている。コンピュータ１００には、フレキシブルディスク１２４やコンパクトディスク１２６などからデータを読み込むためのディスクコントローラＤＤＣ１０９や、周辺機器との間でデータの授受を行うために用いられる周辺機器インターフェースＰＩＦ１０８、ＣＲＴ１１４を駆動するためのビデオインターフェースＶＩＦ１１２等が接続されている。ＰＩＦ１０８には、ハードディスク１１８や、後述するプリンタ２００等が接続されている。また、デジタルカメラ１２０や、カラースキャナ１２２等をＰＩＦ１０８に接続すれば、デジタルカメラ１２０やカラースキャナ１２２で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードＮＩＣ１１０を装着すれば、コンピュータ１００を通信回線３００に接続して、通信回線に接続された記憶装置３１０に記憶されているデータを取得することもできる。
【００４６】
図３は、第１実施例において印刷用紙上に画像を印刷するプリンタ２００の概略構成を示す説明図である。プリンタ２００はシアン，マゼンタ，イエロ，ブラックの４色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら４色のインクに加えて、染料濃度あるいは顔料濃度の低いシアン（淡シアン）インクと、染料濃度あるいは顔料濃度の低いマゼンタ（淡マゼンタ）インクとを含めた合計６色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では、シアンインク，マゼンタインク，イエロインク，ブラックインク，淡シアンインク，淡マゼンタインクを、必要に応じて、それぞれＣインク，Ｍインク，Ｙインク，Ｋインク，ＬＣインク，ＬＭインクと略称するものとする。
【００４７】
プリンタ２００は、図示するように、キャリッジ２４０に搭載された印字ヘッド２４１を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ２４０をキャリッジモータ２３０によってプラテン２３６の軸方向に往復動させる機構と、紙送りモータ２３５によって印刷用紙Ｐを搬送する機構と、ドットの形成やキャリッジ２４０の移動および印刷用紙の搬送を制御する制御回路２６０などから構成されている。
【００４８】
キャリッジ２４０には、Ｋインクを収納するインクカートリッジ２４２と、Ｃインク，Ｍインク，Ｙインクの各種インクを収納するインクカートリッジ２４３とが装着されている。キャリッジ２４０にインクカートリッジ２４２，２４３を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド２４１の下面に設けられた各色毎のインク吐出用ヘッド２４４ないし２４７に供給される。各色毎のインク吐出用ヘッド２４４ないし２４７は、こうして供給されたインクを用いてインク滴を吐出して、印刷媒体上にインクドットを形成する。
【００４９】
制御回路２６０は、ＣＰＵを中心として、ＲＯＭや、ＲＡＭ、周辺機器インターフェースＰＩＦ等に加えて、デジタルデータをアナログ信号に変換するＤ／Ａ変換器等から構成されている。もちろん、ＣＰＵを搭載せずに、ハードウェアあるいはファームウェアによって同様の機能を実現することとしても良い。制御回路２６０は、キャリッジモータ２３０および紙送りモータ２３５の動作を制御することによって、キャリッジ２４０の主走査動作および副走査動作の制御を行う。また、キャリッジ２４０の主走査および副走査に合わせて、適切なタイミングで印字ヘッド２４１を駆動することによってインク滴を吐出する。こうして制御回路２６０の制御の下で、各色のインク吐出用ヘッド２４４ないし２４７から適切なタイミングでインク滴が吐出され、その結果、印刷用紙Ｐ上にインクドットが形成されて、カラー画像が印刷される。
【００５０】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡（バブル）を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【００５１】
図４は、各色のインク吐出用ヘッド２４４ないし２４７の底面に、インク滴を吐出する複数のノズルＮｚが形成されている様子を示した説明図である。図示するように、各色のインク吐出用ヘッドの底面には、各色毎のインク滴を吐出する４組のノズル列が形成されており、１組のノズル列には、４８個のノズルＮｚがノズルピッチｐの間隔を空けて千鳥状に配列されている。これらノズルは、制御回路２６０の制御の元で駆動され、インク滴を吐出することによって印刷用紙上にインクドットを形成する。
【００５２】
また、本実施例のプリンタ２００は、吐出するインク滴の大きさを制御することにより、インクドットの大きさを制御することが可能である。以下、プリンタ２００が大きさの異なるインクドットを形成する方法について説明するが、その準備として、先ず、各色インクを吐出するノズルの内部構造について説明する。図５（ａ）は、インクを吐出するノズルの内部構造を示した説明図である。各色のインク吐出用ヘッド２４４ないし２４７には、このようなノズルが複数設けられている。図示するように、各ノズルにはインク通路２５５とインク室２５６とが設けられており、また、インク室の上面にはピエゾ素子ＰＥが設けられている。キャリッジ２４０にインクカートリッジ２４２，２４３を装着すると、カートリッジ内のインクがインクギャラリ２５７を経由してインク室２５６に供給される。ピエゾ素子ＰＥは、周知のように、電圧を印加すると結晶構造が歪んで極めて高速に電気−機械エネルギの変換を行う素子である。本実施例では、ピエゾ素子ＰＥの両端に設けられた電極間に所定波形の電圧を印加することで、インク室２５６の側壁を変形させる。その結果、インク室２５６の容積が減少し、容積の減少分に相当するインクがインク滴ＩｐとなってノズルＮｚから吐出される。このインク滴Ｉｐがプラテン２３６に装着された印刷用紙Ｐに染み込むことで、印刷用紙上にインクドットが形成される。
【００５３】
図５（ｂ）は、ピエゾ素子ＰＥに印加する電圧波形を制御することで、吐出するインク滴の大きさを変更する原理を示した説明図である。ノズルからインク滴Ｉｐを吐出するためには、ピエゾ素子ＰＥに府の電圧を印加してインクギャラリ２５７からインク室２５６内に一旦インクを吸入し、その後、ピエゾ素子ＰＥに正電圧を印加してインク室容積を減少させて、インク滴Ｉｐを吐出させる。ここで、インクの吸引速度が適切であればインク室容積の変化量に相当するインクが吸入されるが、吸引速度が速すぎると、インクギャラリ２５７とインク室２５６との間には通路抵抗があるためにインクギャラリ２５７からのインクの流入が間に合わなくなる。その結果、インク通路２５５のインクがインク室内に逆流して、ノズル付近のインク界面が大きく後退した状態となる。図５（ｂ）に実線で示した電圧波形ａは、適正な速度でインクを吸引する波形を示し、破線で示した電圧波形ｂは適切速度より大きな速度で吸引する波形の一例を示している。
【００５４】
十分なインクがインク室２５６内に供給された状態で、ピエゾ素子ＰＥに正電圧を印加すると、インク室２５６の容積減少に相当する体積のインク滴ＩｐがノズルＮｚから吐出される。これに対して、インクの供給量が不足してインク界面が大きく後退した状態で正電圧を印加すると、吐出されるインク滴は小さなインク滴となる。このように、本実施例のプリンタ２００では、インク滴の吐出前に印加する負の電圧波形を制御してインクの吸引速度を変更することで、吐出するインク滴の大きさを制御する。これにより、大ドット、中ドット、小ドットの３種類のインクドットを形成することが可能となっている。
【００５５】
もちろん、３種類に限らずより他種類のドットを形成することも可能である。更には、微細なインク滴を一度に複数吐出して、吐出するインク滴の数を制御するといった方法を用いて、印刷用紙上に形成されるインクドットの大きさを制御してもよい。
【００５６】
以上のようなハードウェア構成を有するプリンタ２００は、キャリッジモータ２３０を駆動することによって、各色のインク吐出用ヘッド２４４ないし２４７を印刷用紙Ｐに対して主走査方向に移動させ、また紙送りモータ２３５を駆動することによって、印刷用紙Ｐを副走査方向に移動させる。制御回路２６０は、キャリッジ２４０の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出する。こうすることで、印刷用紙Ｐ上の適切な位置にインクドットが形成されて、その結果、画像が印刷されることになる。
【００５７】
Ｂ−２．第１実施例の画像印刷処理  ：
図６は、本実施例のコンピュータ１００およびプリンタ２００が、画像データに所定の画像処理を加えてドットデータを生成し、印刷用紙上に画像を印刷する処理の流れを示すフローチャートである。かかる画像印刷処理は、後述するように、ハーフトーン処理を行って画素毎にドット形成の有無を判断するまでの処理については、コンピュータ１００に内蔵されたＣＰＵの機能を利用して実行され、また、インターレース・オーバーラップ処理以降の処理については、プリンタ２００の制御回路２６０に内蔵されたＣＰＵの機能を利用して実行される。以下では、図６のフローチャートに従って、第１実施例の画像印刷処理に含まれる各処理の内容について、順番に説明する。
【００５８】
（１）画像データ読み込み処理（図６のステップＳ１００）  ：
第１実施例の画像印刷処理を開始すると、コンピュータ１００は先ず初めに、変換すべき画像データの読み込みを開始する（ステップＳ１００）。ここでは、画像データは、画像を構成する複数の画素の各々について、ＲＧＢ各色についての階調値が設定されたいわゆるＲＧＢカラー画像データであるものとして説明する。Ｒ（赤色）、Ｇ（緑色）、Ｂ（青色）の３色は光の三原色と呼ばれ、これら３色を加法混色することにより、無彩色から有彩色にいたる広い色域の色彩を表現することが可能である。もちろん、画像データはＲＧＢカラー画像データに限らず、例えば、インクの三原色と呼ばれるＣ（シアン色）、Ｍ（マゼンタ色）、Ｙ（イエロ色）を含んだ複数色について階調値が設定された画像データを用いることもできる。更には、カラー画像データに限らず、モノクロ画像データについても同様に適用することができる。
【００５９】
（２）解像度変換処理（図６のステップＳ１０２）  ：
コンピュータ１００は、こうして画像データを読み込むと、読み込んだ画像データの解像度をプリンタ２０が印刷するための解像度（印刷解像度）に変換する処理を行う（ステップＳ１０２）。画像データの解像度が印刷解像度よりも低い場合は、隣接する画素の間に補間演算を行って新たな画像データを設定することで、解像度を高くする。逆に、読み込んだ画像データの解像度が印刷解像度よりも高い場合は、隣接する画素の間から一定の割合で画像データを間引くことによって、解像度を低くする。解像度変換処理では、読み込んだ画像データに対して適切な割合で画像データを生成あるいは間引くことによって、読み込んだ解像度を印刷解像度に変換する処理を行う。
【００６０】
（３）画像データ圧縮処理（図６のステップＳ１０４）  ：
コンピュータ１００は画像データの解像度を印刷解像度に変換したら、今度は、この画像データから特定画素についてのデータを分離することによって、画像データを圧縮する処理を開始する（ステップＳ１０４）。ここで特定画素とは、その画素にドットが形成されるか否かを予め決定することができるような画素を言う。画像データから、このような画素についてのデータを分離してやれば、その分だけ画像データのデータ量が少なくなるので、画像データを圧縮することが可能となる。画像データを圧縮する処理について、図７を参照しながら具体的に説明する。
【００６１】
図７は、特定画素についてのデータを分離することにより、画像データを圧縮している様子を概念的に示した説明図である。図７（ａ）は、特定画素を分離する前の画像データを概念的に示した説明図である。図７（ａ）では、図示が煩雑となることを避けるために、画素列１行分のデータのみを示している。前述したように、画像データには、ＲＧＢ各色についての階調値が画素毎に設定されており、図７（ａ）の上段にはＲ色についての階調値が、中段にはＧ色についての階調値が、下段にはＢ色についての階調値がそれぞれ表示されている。すなわち、画素列の先頭の画素については、Ｒ階調値「２５５」が、Ｇ階調値「１２８」が、Ｂ階調値「６５」が設定されている。また、ここでは説明の便宜から、１行の画素列に含まれる画素数は１００個であるものとして、これら各画素には１番から１００番までの通し番号が付されているものとする。
【００６２】
例えば、図７（ａ）に示した画素列の先頭から２番目の画素に着目すると、この画素にはＲＧＢのいずれの階調値も「２５５」が設定されている。ここで、画像データは１バイトデータであり、階調値「２５５」は画像データの上限値である。階調値が上限値を取るＲＧＢ画像データを混色すれば白色が得られるから、この画素にはドットは形成されず、印刷用紙の地色（白色）のまま残されるものと考えられる。また、ＲＧＢ各色の階調値が上限値に完全には一致していなくても、上限値に近い値を取る場合（例えば階調値「２５０」など）にも、その画素にはドットは形成されないと判断して良い。従って、このような画素も特定画素に含めて考えることができるが、ここでは説明の簡明化を図るために、階調値が上限値となる画素を特定画素とする。すると、図７（ａ）に示した画素列の先頭から５番目の画素も特定画素ということになる。このように、ＲＧＢ各色の階調値に着目すれば、画像データの中から特定画素を検出することができる。こうして特定画素を検出すると、検出した特定画素の画素位置を記憶しておくとともに、画像データから特定画素についての画像データを分離することによって、データ量を圧縮する。
【００６３】
図７（ｂ）は、図７（ａ）に示した１行分のＲＧＢ画像データから特定画素を分離することにより、特定画素の画素位置を示すデータ（特定画素情報）と、圧縮された画像データとを生成している様子を概念的に示した説明図である。図７（ａ）に示したように、ここでは対象とする画像データは１行分の画像データであり、１行は１００個の画素から構成されているとしているから、特定画素の画素位置としては、先頭から何番目の画素が特定画素であるかを記憶しておけば足りる。そこで、図７（ｂ）に示した例では、特定画素情報は１行の画素数に相当するｂｉｔ数（ここでは１００ｂｉｔ）を有するデータとなっている。そして、この特定画素情報には、先頭から特定画素位置に相当するｂｉｔには「１」が設定され、他のｂｉｔには「０」が設定されたデータとして記憶されている。圧縮画像データは、図７（ａ）に示したＲＧＢ画像データから特定画素についてのデータ（すなわち２画素目および５画素目のデータ）を除いてやることで生成することができる。図７（ｂ）には、こうして生成した圧縮画像データが示されている。
【００６４】
尚、図７（ｂ）では、ＲＧＢ各色の階調値が上限値（若しくは上限値の近傍）を取る画素を特定画素として検出したが、ドットの形成有無を予め決定することの可能な画素は、このような画素に限られるものではない。例えば、図７（ａ）で先頭から９８番目の画素は、ＲＧＢ各色ともに階調値「０」が設定されている。階調値「０」は画像データの下限値である。階調値が下限値のＲＧＢ画像データを混色すれば黒色が得られることから、この画素にはＫインクによるドットが形成されるものと考えられる。図７（ａ）に示した画素列の最後の画素についても同様に、この画素にはＫドットが形成されると考えられる。そこで、これらの画素を特定画素として検出することとしてもよい。
【００６５】
図７（ｃ）は、このようにドットが形成される画素を特定画素として分離して、画像データを圧縮した様子を示している。図７（ｃ）に示した特定画素情報も、図７（ｂ）と同様にデータ長が１００ｂｉｔのデータであり、先頭から特定画素位置に対応するｂｉｔには「１」が設定され、他のｂｉｔには「０」が設定されたデータとなっている。そして、図７（ａ）に示す画像データから、これら特定画素についてのデータを除くことによって、図７（ｃ）に示すように圧縮した画像データを得ることとしても良い。また、もちろん、ＲＧＢ各色の階調値が完全には下限値に一致していなくても、ほとんど下限値に等しい値を取る場合（例えば階調値「５」など）にも、その画素には非常に高い確率でＫドットが形成されると考えることができるから、このような画素も特定画素に含めて考えることも可能である。
【００６６】
更には、ＲＧＢ各色の階調値が上限値（あるいは上限値の近傍）の画素と、下限値（あるいは下限値の近傍）の画素とを、いずれも特定画素として検出することとしてもよい。すなわち、図７（ｄ）に示すように、特定画素情報を２種類記憶することとして、一方の特定画素情報１には、ＲＧＢ各色が上限値となる特定画素の画素位置を記憶し、他方の特定画素情報２には、ＲＧＢ各色が下限値となる特定画素の画素位置を記憶しておく。そして、図７（ａ）に示す画像データから、これら２種類の特定画素についてのデータを除くことによって、図７（ｄ）に示すような圧縮画像データを得ることとしても良い。
【００６７】
図６のステップＳ１０４では、以上のようにして、ドット形成の有無を予め予測できるような画素（特定画素）を検出し、特定画素についてのデータを分離することによって、画像データを圧縮する処理を行う。
【００６８】
（４）色変換処理（図６のステップＳ１０６）  ：
コンピュータ１００は、こうして圧縮した画像データに対して色変換処理を行う（ステップＳ１０６）。色変換処理とは、Ｒ，Ｇ，Ｂの階調値の組合せによって表現されているＲＧＢカラー画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、プリンタ２００はＣ，Ｍ，Ｙ，Ｋの４色のインクを用いて画像を印刷している。そこで、色変換処理ではＲＧＢ各色によって表現された画像データを、Ｃ，Ｍ，Ｙ，Ｋの各色の階調値によって表現されたデータに変換する処理を行うのである。
【００６９】
色変換処理は、色変換テーブル（ＬＵＴ）と呼ばれる３次元の数表を参照することで、迅速に行うことができる。図８は、色変換処理のために参照されるＬＵＴを概念的に示した説明図である。図示されているように、直交する３つの軸にＲ軸、Ｇ軸、Ｂ軸を取って色空間を考えると、全てのＲＧＢ画像データは、必ず色空間内の座標点に対応付けて表示することができる。このことから、Ｒ軸、Ｇ軸、Ｂ軸のそれぞれを細分して色空間内に多数の格子点を設定してやれば、それぞれの格子点はＲＧＢ画像データを表していると考えることができ、各ＲＧＢ画像データに対応するＣ，Ｍ，Ｙ，Ｋ各色の階調値を、各格子点に対応付けてやることができる。ＬＵＴは、こうして色空間内に設けた格子点に、Ｃ，Ｍ，Ｙ，Ｋ各色の階調値を対応付けて記憶した３次元の数表である。このような、ＬＵＴに記憶されているＲＧＢカラー画像データとＣ，Ｍ，Ｙ，Ｋ各色の階調データとの対応関係に基づいて色変換処理を行えば、ＲＧＢカラー画像データを、Ｃ，Ｍ，Ｙ，Ｋ各色の階調データに迅速に変換することができる。尚、ＬＵＴの格子点に、ＣＭＹＫ各色に加えて、ＬＣ，ＬＭなどの他色を含めた各色の階調値を設定しておけば、ＲＧＢ画像データをこれら各色の画像データに変換することも可能である。
【００７０】
前述したように、画像データは、図６のステップＳ１０４で既に特定画素が除かれて圧縮されているので、色変換処理では、特定画素でない画素に設定されたＲＧＢ各色の画像データをＣＭＹＫ各色の階調データに変換するのである。図９は、こうして圧縮画像データを色変換している様子を概念的に示した説明図である。図９（ａ）は、色変換前の圧縮画像データを示している。図示されている圧縮画像データでは、ＲＧＢ各色の階調値が上限値となる画素が特定画素として除かれて、残りの画素についてのＲＧＢ画像データのみが記憶されている。図９（ｂ）は、これらＲＧＢ画像データを、ＬＵＴを参照しながら画素毎に、ＣＭＹＫ各色の階調値に変換して得られた画像データを示した説明図である。このように色変換処理では、圧縮画像データに対してのみ操作が行われ、特定画素情報については何ら操作が行われることはない。このことを明確に示すために、図９では、色変換処理の前後で圧縮画像データとともに、それぞれの時点での特定画素情報も併せて表示してある。図９（ａ）に示した特定画素情報と図９（ｂ）に示した特定画素情報とを比較すれば、特定画素情報は色変換によって操作を受けないことが確認できる。
【００７１】
（５）ハーフトーン処理（図６のステップＳ１０８）  ：
こうして圧縮画像データに対して色変換処理を行ったら、コンピュータ１００は、色変換によって得られた画像データに対してハーフトーン処理を開始する。ハーフトーン処理とは、次のような処理である。色変換処理によって得られたＣＭＹＫ各色の画像データは、画素毎に、階調値０から階調値２５５までの値を取ることができる。これに対してプリンタは、ドットを形成することによって画像を表示しているから、それぞれの画素についてはドットを形成するか否かの状態しか取り得ない。そこで、２５６階調を有する画像データを、画素毎にドット形成の有無によって表現されたデータ（ドットデータ）に変換しておく必要がある。ハーフトーン処理とは、このように画像データをドットデータに変換する処理である。前述したように、本実施例のプリンタ２００では、大ドット、中ドット、小ドットの３種類のドットを形成可能であるから、ハーフトーン処理ではこれら３種類のドットについて、画素毎にドット形成の有無を判断することになる。
【００７２】
ハーフトーン処理を行う手法としては、誤差拡散法やディザ法などの種々の手法を適用することができる。誤差拡散法は、ある画素についてドットの形成有無を判断したことでその画素に発生する階調表現の誤差を、周辺の画素に拡散するとともに、周囲から拡散されてきた誤差を解消するように、各画素についてのドット形成の有無を判断していく手法である。また、ディザ法は、ディザマトリックスにランダムに設定されている閾値と画像データの階調値とを画素毎に比較して、画像データの方が大きい画素にはドットを形成すると判断し、逆に閾値の方が大きい画素についてはドットを形成しないと判断することで、各画素についてのドットデータを得る手法である。
【００７３】
本実施例のハーフトーン処理では、ディザ法を用いてドット形成の有無を判断する。ここで、説明上の都合から、ディザ法を用いてドット形成の有無を判断する方法について、概要のみを簡単に説明しておく。
【００７４】
図１０は、ディザマトリックスの一部を拡大して例示した説明図である。図示したマトリックスには、縦横それぞれ６４画素、合計４０９６個の画素に、階調値０〜２５５の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が０〜２５５の範囲から選択されているのは、本実施例では画像データが１バイトデータであり、画素に割り当てられる階調値が０〜２５５の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図１０に例示したように縦横６４画素分に限られるものではなく、縦と横の画素数が異なるものも含めて、種々の大きさに設定することが可能である。
【００７５】
図１１は、ディザマトリックスを参照しながら、画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、判断の対象として着目している画素（着目画素）の階調値と、ディザマトリックス中の対応する位置に記憶されている閾値とを比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成するものと判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないものと判断する。図１１に示した例では、画像データの左上隅にある画素の画像データは階調値１８０であり、ディザマトリックス上でこの画素に対応する位置に記憶されている閾値は１である。従って、左上隅の画素については、画像データの階調値１８０の方がディザマトリックスの閾値１よりも大きいから、この画素にはドットを形成すると判断する。図１１中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は１３０、ディザマトリックスの閾値は１７７であり、閾値の方が大きいので、この画素についてはドットを形成しないものと判断する。このように、画像データの階調値とディザマトリックスに設定された閾値とを比較することにより、ドットの形成有無を画素毎に決定することができる。
【００７６】
図６のステップＳ１０８では、圧縮画像データを色変換して得られたＣＭＹＫ各色の圧縮画像データに、上述したディザ法を適用することにより、画素毎に大中小の各種ドットについて、ドットを形成するか否かを表したデータに変換する処理を行う。
【００７７】
図１２は、図９（ｂ）に示した１行分の圧縮画像データを変換して得られたドットデータ（圧縮ドットデータ）を、概念的に示した説明図である。図中に示された「１１」は、その画素には大ドットを形成することを表しており、「１０」は中ドットを形成することを、「０１」は小ドットを形成することを、そして「００」はいずれのドットも形成しないことを表している。尚、ハーフトーン処理も、圧縮画像データに対して行われる処理であり、特定画素情報に対しては何らの操作も行われることはない。換言すれば、図１２に示した特定画素情報でｂｉｔ「０」が設定されている画素についてだけ、ハーフトーン処理が行われることになる。以下では、図９（ｂ）に示すような圧縮画像データを、図１２に示すような圧縮ドットデータに変換する方法について説明する。
【００７８】
図１０および図１１を用いて説明したように、ディザ法では、各画素のデータを、ディザマトリックスの対応する位置に設定されている閾値と比較することによってドット形成の有無を判断するが、本実施例のハーフトーン処理では、特定画素のデータが除かれて圧縮されたデータに対してディザ法を適用する。そこで、ディザ法を適用してドット形成有無の判断を開始するに先立って、ディザマトリックスの中から特定画素に対応する位置の閾値を除くことにより、予め、圧縮ディザマトリックスを生成しておく。
【００７９】
図１３は、図１０に例示したディザマトリックスから圧縮ディザマトリックスを生成している様子を概念的に示した説明図である。今、ハーフトーン処理を行おうとしている画像データが、図９（ｂ）に示した１行分の画素列のデータであるものとする。特定画素情報によれば、この画素列については、先頭から２番目の画素および５番目の画素が特定画素であるから、該当する１行分のディザマトリックスの中から、２番目の閾値「１７７」と５番目の閾値「７０」を除くことにより、圧縮ディザマトリックスを生成することができる。こうして、特定画素情報に基づいて生成した圧縮ディザマトリックスを参照しながら、以下に説明するハーフトーン処理を行う。
【００８０】
図１４は、第１実施例のハーフトーン処理を行って、圧縮画像データを圧縮ドットデータに変換する処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。
【００８１】
コンピュータ１００は、ハーフトーン処理を開始すると先ず初めに、ＣＭＹＫ各色についての画像データを、大中小の各ドットについての記録密度データに変換する（ステップＳ２００）。記録密度データとは、ドットをどの程度の密度で形成するかを規定するデータである。記録密度データが大きくなるほどドットが高い密度で形成されることを表しており、記録密度データの値「２５５」は、全ての画素にドットが形成されることを表している。こうした記録密度データへの変換は、図１５に示すような記録密度変換テーブルを参照することによって行う。記録密度変換テーブルには、色変換によって得られた画像データの階調値に対して、小ドット・中ドット・大ドットの各ドットについての記録密度データが設定されている。
【００８２】
図示されているように、画像データが階調値「０」近傍の領域では、中ドット・大ドットの記録密度データはいずれも階調値「０」となっており、小ドットの記録密度データのみが「０」でない階調値を有している。小ドットの記録密度データは、画像データの階調値が大きくなるに連れて増加して行くが、画像データがある階調値に達すると今度は逆に減少し始め、代わりに中ドットの記録密度データが増加し始める。画像データの階調値が更に増加すると、それに従って小ドットの記録密度データは減少し、中ドットの記録密度データは増加していく。そして、画像データがある階調値に達すると、今度は中ドットの記録密度データが減少し始めて、代わりに大ドットの記録密度データが少しずつ増加していく。コンピュータ１００のＲＡＭ１０６には、大中小各ドットについての記録密度データがこのように設定されたテーブルが、予め記憶されている。図１４のステップＳ２００では、この記録密度変換テーブルを参照しながら、ＣＭＹＫ各色の画像データを、大ドットの記録密度データ、中ドットの記録密度データ、小ドットの記録密度データに、各色毎に変換する処理を行う。
【００８３】
こうして、大中小各ドットについての記録密度データが得られたら、先ず初めに大ドットについての形成有無を判断する（ステップＳ２０２）。かかる判断は、大ドットの記録密度データと、ディザマトリックスに設定されている閾値とを比較して、記録密度データの方が大きい場合は大ドットを形成すると判断し、逆に閾値の方が大きければ大ドットは形成しないと判断する。尚、この時に参照するディザマトリックスは、図１３を用いて前述した圧縮ディザマトリックス、すなわち特定画素位置に相当する閾値を除いたマトリックスである。
【００８４】
そして、大ドットを形成すると判断された画素には（ステップＳ２０４：ｙｅｓ）、ドットデータ「１１」を書き込む処理を行う（ステップＳ２０６）。前述したように、ドットデータ「１１」は、その画素に大ドットを形成することを表しているデータである。大ドットを形成しないと判断された画素については（ステップＳ２０４：ｎｏ）、中ドットを形成するか否かを判断する処理を開始する。
【００８５】
中ドットについての形成有無の判断は、次のようにして行う。先ず初めに、大ドットの記録密度データに中ドットの記録密度データを加算して、中ドットの形成有無を判断するための中間データを算出する（ステップＳ２０８）。こうして算出した中間データと、前述した圧縮ディザマトリックスの閾値とを比較することにより、中ドットの形成有無を判断する（ステップＳ２１０）。すなわち、中間データの方が閾値より大きい画素には中ドットを形成すると判断し、閾値の方が大きい画素には中ドットは形成しないと判断する。そして、中ドットを形成する画素については（ステップＳ２１２：ｙｅｓ）、中ドットを形成することを表すドットデータ「１０」を書き込む処理を行う（ステップＳ２１４）。中ドットを形成しないと判断された画素については（ステップＳ２１２：ｎｏ）、小ドットを形成するか否かを判断する処理を開始する。
【００８６】
小ドットの形成有無の判断は、小ドット用の中間データを用いて行う。小ドット用の中間データは、中ドット用の中間データに小ドット用の記録密度データを加算することによって算出する（ステップＳ２１６）。次いで、算出した小ドット用の中間データと、前述した圧縮ディザマトリックスの閾値とを比較することにより、小ドットの形成有無を判断する（ステップＳ２１８）。そして、小ドット用の中間データの方が閾値より大きい画素には小ドットを形成すると判断し、小ドットを形成する画素については（ステップＳ２２０：ｙｅｓ）、小ドットを形成することを表すドットデータ「０１」を記憶する（ステップＳ２２２）。逆に、小ドット用の中間データよりも閾値の方が大きい画素には、小ドットも形成しないと判断し（ステップＳ２２０：ｎｏ）、この画素には、いずれのドットも形成しないことを表すドットデータ「００」を記憶する（ステップＳ２２４）。
【００８７】
図９（ｂ）に示したようなＣＭＹＫ各色の画像データに、以上のような処理を加えることにより、図１２に示したようなドットデータ、すなわち、ＣＭＹＫの各色毎に、大中小の各ドットについての形成有無を表したデータを得ることができる。尚、前述したように、図９（ｂ）に示した画像データは、特定画素についてのデータを除いた圧縮画像データであるから、このデータに上述した処理を加えれば、同じく特定画素を除いた圧縮ドットデータが得られることになる。
【００８８】
図６のステップＳ１０８では、以上に説明したようにして、圧縮画像データを圧縮ドットデータに変換して、得られた圧縮ドットデータを特定画素情報とともにプリンタ２００に供給する処理を行う。
【００８９】
（６）インターレース・オーバーラップ処理（図６のステップＳ１１０）  ：
プリンタ２００の制御回路２６０は、コンピュータ１００から供給された圧縮ドットデータと特定画素情報とを受け取ると、インターレース・オーバーラップ処理を開始する（ステップＳ１１０）。インターレース・オーバーラップ処理とは、一般的には、印字ヘッドがドットを形成する順序でドットデータを読み出して、ヘッドに供給する処理である。これに対して本実施例のインターレース・オーバーラップ処理では、圧縮ドットデータと特定画素情報とを受け取って、これを圧縮されていないドットデータ（すなわち特定画素を含めたドットデータ）に復元した後、印字ヘッドに供給する処理を行う。かかる本実施例のインターレース・オーバーラップ処理の内容について説明する前に、その準備として、通常行われている一般的なインターレース・オーバーラップ処理について、概要を説明しておく。
【００９０】
図３を用いて前述したように、プリンタ２００は、キャリッジ２４０を主走査させながら印字ヘッド２４１を駆動し、印刷用紙上にドットを形成することによって画像を印刷している。そして、図４に示すように、印字ヘッド２４１には各色毎に複数個のノズルが設けられており、同時に複数個のドットを形成可能である。しかし、これらノズルは、互いにノズルピッチｋの間隔を空けて設けられているので、ドットもノズルピッチｋの間隔を空けて形成される。すなわち、印字ヘッド２４１がドットを形成する順番は、画像の端から順番に形成していくのではなく、副走査方向にノズルピッチｋの間隔を空けて飛び飛びの箇所にドットを形成していくことになる。また、印字ヘッド２４１は、主走査方向にも飛び飛びの箇所にドットを形成していく。すなわち、主走査方向に並んだ１本のドット列であれば、１回の主走査でこれを形成することが可能であるが、画質上の要請から、１本のドット列を複数回の主走査に分けて形成することとし、各回の主走査では主走査方向に飛び飛びの位置の画素にドットを形成することが行われている。印字ヘッド２４１は、このようにしてドットを形成している関係上、画素毎にドット形成の有無を表すドットデータが得られたら、このデータを印字ヘッド２４１がドットを形成する順序で並べ替える処理が必要となるのである。以下では、印字ヘッド２４１が所定の順番でドットを形成していく様子について、具体例を挙げて説明する。
【００９１】
図１６は、印字ヘッド２４１が、主走査と副走査とを行いながら印刷用紙上にドットを形成していく様子を概念的に示した説明図である。図４を用いて前述したように、本実施例の印字ヘッド２４１には、各色毎に多数（本実施例では各色あたり４８個）のノズルが設けられているが、説明が煩雑となることを避けるため、図１６ではノズルが４個だけ設けられているものとして説明する。図中に示したＮ１，Ｎ２，Ｎ３，Ｎ４はこれら４つのノズルを表している。また、ノズルピッチは３であり、１本のドット列を２回の主走査に分けて形成するものとし、更に、形成するドットの種類は１種類である場合について説明する。
【００９２】
図１６の左半分には、副走査を行うことにより、印字ヘッドが印刷用紙に対して相対的に少しずつ移動していく様子を示している。図１６の左半分に示した縦長の矩形は１色分の印字ヘッドを表している。図示されているように、各色のヘッドには４つのノズルが設けられている。また、ノズルピッチは「３」に設定されているので、これらノズルの間には、図中に破線で示されているように、ノズル２つ分に相当する距離（ノズル中心同士で見ればノズルの直径の３倍に相当する距離）が設けられている。
【００９３】
図１６の右半分には、印字ヘッドを主走査させながらインク滴を吐出することにより、印刷用紙上にドットが形成されていく様子を表している。図１６の右半分に示した丸印は印刷用紙上に形成されたドットを模式的に表したものである。尚、図３を用いて前述したように、実際の副走査は印刷用紙を紙送りすることによって行われており、印字ヘッド２４１が副走査方向に移動するわけではないが、図１６では説明の便宜から印刷用紙を基準に取って、あたかも印字ヘッドが移動しているかのように表現している。
【００９４】
印刷に際しては、先ず、図中で（１）と表示した位置に印字ヘッドある状態で、インク滴を吐出しながら主走査を行う。この主走査によって印刷用紙上には、図１６の右半分で「１」と表示されたドットが形成される。ここで、「１」と表示されたドットが、１画素おきに飛び飛びに形成されているのは、ここでは１本のドット列を２回の主走査に分けて形成するものとしているためである。仮に、１本のドット列を３回の主走査に分けて形成するものとした場合は２画素飛びに、４回の主走査に分けて形成するものとした場合は、３画素飛びにドットが形成されることになる。
【００９５】
次いで、印字ヘッドをノズル２つ分だけ副走査方向に移動させる。その結果、印字ヘッドは、図１６の左半分で（２）と表示した位置に移動する。図１６の左半分に示された実線の矢印は、印字ヘッドを副走査する動作を模式的に表したものである。こうして副走査を行った後、再び主走査を行って印刷用紙上にドットを形成する。この２回目の主走査によって印刷用紙上には、図１６の右半分で「２」と表示されたドットが形成される。前述したように、印字ヘッドにはノズルが、ノズル３つ分の間隔を空けて設けられているが、副走査では印字ヘッドをノズル２つ分だけ移動させているので、２回目の主走査で形成されるドット列（図中で「２」と表示されたドット列）は、１回目の主走査で形成したドット列（図中で「１」と表示されたドット列）の間に形成されることになる。
【００９６】
続いて、再びノズル２つ分だけ副走査を行って印字ヘッドを（３）と表示された位置まで移動させた後、３回目の主走査を行いながらインク滴を吐出することで、「３」と表示されたドットを形成する。３回目の主走査で形成されるドット列（図中で「３」と表示されたドット列）は、１回目の主走査で形成したドット列（図中で「１」と表示されたドット列）と、２回目の主走査で形成したドット列（図中で「２」と表示されたドット列）との間に形成されることになる。すなわち、１回目の主走査では４本のドット列が形成されるが、これらドット列の間には、２本分のドット列が形成されだけの間隔が空いている。２回目の主走査では、これら２本分のドット列の一方にドットが形成され、３回目の主走査では、残りの１本分のドット列にドットが形成されることになる。このように、副走査を行って印字ヘッドを少しずつ移動させながらドットを形成する操作を繰り返していくと、３回目の主走査を行った段階で、ドット列の間に形成された隙間をドット列で埋めることができる。
【００９７】
続いて行う４回目の主走査では、１回目の主走査で形成したドット列に重ねてドットが形成される。但し、前述したように、１回目の主走査では１画素おきに飛び飛びの位置にドットが形成されているので、４回目の主走査では、これらドットの間にドットを形成するのである。図１６の右半分には、「１」と表示されたドットの間に、４回目の主走査による「４」と表示されたドットが、形成されている様子が概念的に表されている。すなわち、１回目の主走査では、１本の画素列上の半分のドットを形成し、４回目の主走査で残りの半分のドットを形成することで、このドット列を結局２回の主走査に分けて形成したことになる。
【００９８】
こうして１本のドット列が完成したら、再び副走査を行って、図中で（５）と表示した位置に印字ヘッドを移動させた後、５回目の主走査を行って、図中で「５」と表示されたドットを形成する。５回目の主走査では、２回目の主走査で形成したドット列に重ねてドットが形成される。すなわち、図中で「２」と表示されたドットの間に「５」と表示されたドットを形成することで、また、新たなドット列を完成する。続いて、再び副走査を行って、図中で（６）と表示した位置に印字ヘッドを移動し、６回目の主走査を行って、「６」と表示されたドットを形成する。「６」と表示されたドットは、「３」と表示されたドットの間に形成され、新たなドット列が完成される。以降は、同様にして、７回目の主走査では、４回目の主走査で形成したドットの間にドットが形成され、８回目の主走査では、５回目の主走査で形成したドットの間にドットが形成される。
【００９９】
このように、印字ヘッドを所定量ずつ副走査させながら主走査を行ってドット列を形成する操作を繰り返していくと、やがて隙間無くドットが形成され、そしてそれ以降は、主走査を行ってドットを形成するたびに次々とドット列を完成させて、印刷用紙上に隙間無くドットを形成していくことが可能となる。図１６に示した例では、５回目の主走査以降で隙間無くドットが形成されている。すなわち、５回目の主走査以降にドットを形成する領域が、画像の有効表示領域となる。
【０１００】
このようにプリンタは、画像の有効表示領域の端にある画素から順番にドットを形成して行くのではなく、あたかもモザイクを構成するかのように、所定の順番に従ってドットを形成しながら画像を印刷している。そこで、ドットデータを受け取ると、オーバーラップ処理、すなわち、受け取ったドットデータを印字ヘッドが実際にドットを形成する順番に並べ替えた後、順番に印字ヘッドに供給する処理（インターレース・オーバーラップ処理）を行うのである。
【０１０１】
図１７は、通常のプリンタで行われている一般的なインターレース・オーバーラップ処理で、ドットデータの順番を並べ替えている様子を示した説明図である。ここでも、図１６に示した場合と同様に、印字ヘッドにはノズルピッチ３の間隔で４つのノズルが設けられており、１本のドット列を２回の主走査に分けて形成するものとする。
【０１０２】
図１７（ａ）は、印刷しようとしている画像の上端付近を拡大して概念的に示した説明図である。図中に示した丸印は、画像を構成している画素を示している。ドットデータは、これら画素の各々に、大ドットを形成することを意味する値「１１」か、中ドットを形成することを意味する値「１０」、小ドットを形成することを意味する値「０１」、あるいはドットを形成しないことを意味する値「００」のいずれかが、画素の並びに従ってＲＡＭ上に記憶されたデータとなっている。
【０１０３】
一例として、前述した図１６中で、５回目の主走査を行ってドットを形成する場合について説明する。前述したように、５回目の主走査では、図１７（ａ）中で細かい斜線を付した画素にドットが形成される。このうちノズルＮ１では、１番上にあるドット列の中の、一画素おきに斜線を付した画素にドットが形成され、ノズルＮ２では、上から４本目のドット列の中の斜線を付した画素にドットが形成され、ノズルＮ３では、上から７本目のドット列の斜線を付した画素に、そしてノズルＮ４では、上から１０本目のドット列の斜線を付した画素にドットが形成される。インターレース・オーバーラップ処理では、先ず初めに、このようにＲＡＭ上で飛び飛びの位置に記憶されているドットデータを読み出して、一旦、連続した状態でＲＡＭに書き込む操作を行う。
【０１０４】
図１７（ｂ）は、図１７（ａ）で斜線を付した画素に記憶されているドットデータを、ＲＡＭ上の別の領域に、連続した状態で書き込んでいる様子を概念的に示した説明図である。図１７（ｂ）で「Ｎ１，１」と表示されているのは、図１７（ａ）で、ノズルＮ１が１番目に形成する画素のドットデータが書き込まれることを表したものである。また、図１７（ｂ）で「Ｎ１，２」と表示されているのは、ノズルＮ１が２番目に形成する画素のドットデータが書き込まれることを表している。このように、１行目には、ノズルＮ１が形成する画素のドットデータが書き込まれる。同様にして、２行目にはノズルＮ２が形成する画素のドットデータが書き込まれ、３行目にはノズルＮ３が形成する画素のドットデータが、４行目にはノズルＮ４が形成する画素のドットデータが書き込まれる。
【０１０５】
こうして各ノズルが形成するドットデータを連続した状態で書き込んだら、今度はこのデータの行と列とを入れ換える操作を行う。例えば、データ「Ｎ１，２」は図１７（ｂ）では１行２列目の位置に書き込まれているので、行と列とを入れ換えて２行１列目の位置に書き込んでやる。同様に、データ「Ｎ２，３」は図１７（ｂ）では２行３列目の位置に書き込まれているので、このデータは３行２列目の位置に書き込んでやる。このように、行と列とを入れ換えることにより、図１７（ｂ）に示したデータは、図１７（ｃ）に示したデータに変換される。
【０１０６】
図１７（ｃ）に示されているように、行と列とを入れ換えたことにより、１行目には「Ｎ１，１」、「Ｎ２，１」、「Ｎ３，１」、「Ｎ４，１」の４つのデータが書き込まれている。これらのデータは、ノズルＮ１ないしＮ４がそれぞれ１番目に形成する画素についてのドットデータである。また、２行目には、「Ｎ１，２」、「Ｎ２，２」、「Ｎ３，２」、「Ｎ４，２」の４つのデータが書き込まれており、これらはノズルＮ１ないしＮ４がそれぞれ２番目に形成する画素についてのドットデータである。同様に、３行目には、各ノズルが３番目に形成する画素についてのドットデータが書き込まれ、４行目には４番目に形成する画素についてのドットデータが書き込まれている。このように、各ノズルがドットを形成する順番に、ドットデータが書き込まれたデータとなっている。従って、図１７（ｃ）に示すような、行と列とを入れ換えたデータの先頭から、ノズルの数に相当する分のデータを読み出して、印字ヘッドの主走査に合わせてそのまま供給してやれば、図１７（ａ）に細かい斜線で示した画素のドットデータに従って、順次ドットを形成することができる。
【０１０７】
以上のようにして、図１６中で５回目の主走査で形成する画素についてのドットを形成したら、今度は６回目の主走査で形成する画素（すなわち、図１７（ａ）中で粗い斜線を付して表示した画素）について、同様の操作を行えばよい。このように、一般的に行われているインターレース・オーバーラップ処理では、図１７（ａ）に示すようにＲＡＭ上に画素の順番で記憶されているドットデータの中から、印字ヘッドがドットを形成する画素についてのデータだけを読み出して、図１７（ｂ）に示すように連続した状態で記憶し、記憶されたデータの行と列とを入れ換えて、得られた図１７（ｃ）に示すデータを、先頭からノズル数に相当するデータ数ずつ順次印字ヘッドに供給する操作を行っている。
【０１０８】
以上、図１６および図１７を用いて説明したように、通常のインターレース・オーバーラップ処理では、画素の並びの順番で記憶されているドットデータを、実際にドットを形成する順序に並べ替えてヘッドに供給する処理を行うが、本実施例で得られるドットデータは、特定画素についてのデータを含まない圧縮ドットデータとなっているので、直ちにインターレース・オーバーラップ処理を行うことはできない。そこで、プリンタ２００の制御回路２６０は、コンピュータ１００から圧縮ドットデータと特定画素情報とを受け取って、以下のようなインターレース・オーバーラップ処理を行う（図６のステップＳ１１０）。
【０１０９】
図１８は、第１実施例の画像印刷処理で行われるインターレース・オーバーラップ処理の流れを示すフローチャートである。以下、フローチャートに従って説明する。
【０１１０】
第１実施例のインターレース・オーバーラップ処理を開始すると、先ず初めに、コンピュータ１００から供給された圧縮ドットデータと特定画素情報とを、制御回路２６０内のＲＡＭに記憶する（ステップＳ３００）。次いで、ノズル位置に相当する画素列についての圧縮データと特定画素情報とを読み込む処理を行う（ステップＳ３０２）。かかる処理について、図１９を参照しながら説明する。
【０１１１】
図１９は、第１実施例のインターレース・オーバーラップ処理において、ノズル位置に相当する画素列についての圧縮ドットデータと特定画素情報とを読み出して、ドットデータを復元している様子を概念的に示した説明図である。前述したように特定画素情報とは、画素列の中で特定画素の画素位置を示したデータである。また、圧縮ドットデータとは、特定画素を除いた画素についてドット形成の有無を表したデータである。
【０１１２】
図１９（ａ）は、印刷しようとする画像中でノズル位置に相当する画素列を示した説明図である。前述したようにプリンタ２００はノズルピッチｋに相当する間隔で複数本の画素列にドットを形成しながら画像を印刷する。ここでは、前述の図１６、図１７に倣って４つのノズルＮ１，Ｎ２，Ｎ３，Ｎ４がノズルピッチ３で設けられているものとし、これらノズルが図１９（ａ）中に斜線を付して示した画素列にドットを形成するものとする。図１８のステップＳ３０２では、図１９（ａ）に斜線を付した画素列についての圧縮ドットデータと特定画素情報とを、制御回路２６０内のＲＡＭから読み出す処理を行う。
【０１１３】
図１９（ｂ）は、こうして読み出された各画素列についての圧縮ドットデータおよび特定画素情報を概念的に示した説明図である。Ｎ１，Ｎ２，Ｎ３，Ｎ４の４つのノズルのそれぞれに、特定画素情報と、ＣＭＹＫ各色毎の圧縮ドットデータとが読み出されることになる。ここで、特定画素情報は、１本の画素列に含まれる画素数と同じｂｉｔ数を有するデータであるとしているから（図７参照）、各ノズルの特定画素情報は同じデータ長を有している。これに対して圧縮ドットデータは、画素列の中から特定画素を除いた画素についてのドットデータであるが、特定画素の数は画素列毎に異なっているので、圧縮ドットデータのデータ長はノズル毎に異なったものとなっている。図１８のステップＳ３０２では、このような圧縮ドットデータと特定画素情報とをノズル位置毎に読み出す処理を行う。
【０１１４】
次いで、制御回路２６０は、読み出した圧縮ドットデータと特定画素情報とに基づいて、ドットデータを復元する処理を行う（ステップＳ３０４）。図１９（ｃ）は、あるノズルについて、ＣＭＹＫ各色の圧縮ドットデータおよび特定画素情報からドットデータを各色毎に復元している様子を概念的に表している。かかる処理について、図２０を用いて具体的に説明する。
【０１１５】
図２０は、あるノズルについて、特定画素情報およびＣＭＹＫ各色の圧縮ドットデータから、各色のドットデータを復元する様子を示した説明図である。図２０（ａ）に例示した特定画素情報によれば、その画素列の先頭から２番目の画素は特定画素であり、画像データを圧縮して圧縮画像データを生成する際にデータが省略されている。従って、圧縮ドットデータの先頭から１番目と２番目のデータの間には、特定画素についてのドットデータが省略されているものと考えられる。同様に、特定画素情報によれば、その画素列の先頭から５番目の画素は特定画素であり、従って、圧縮ドットデータの先頭から３番目と４番目のデータの間にも、特定画素についてのドットデータが省略されていると考えられる。ここでは、図７（ｂ）を用いて前述したように、ＲＧＢ各色の階調値が「２５５」、すなわちＣＭＹＫ各色のいずれについても、ドットが形成されないことが予め予想される画素を特定画素として検出しているものとすれば、省略されたドットデータは「００」である。そこで、図２０（ａ）に示す圧縮ドットデータの該当位置に、特定画素についてのドットデータ「００」を補うことにより、図２０（ｂ）に示すような、特定画素も含んだドットデータを復元することができる。図１８に示した第１実施例のインターレース・オーバーラップ処理中のステップＳ３０４では、先に読み込んでおいたノズル位置に相当する圧縮ドットデータおよび特定画素情報から、ノズル位置毎に、こうしてドットデータを復元する処理を行う。
【０１１６】
プリンタ２００の制御回路２６０は、こうして、ノズル位置に相当する複数の画素列についてドットデータを復元したら、今度は、復元した複数のドットデータから印字ヘッドが実際にドットを形成する画素（印字画素）のドットデータだけを抜き出して、抜き出したデータの行と列とを入れ換える処理を行う（ステップＳ３０６）。この処理について、図２１を参照しながら説明する。図２１は、復元されたドットデータから印字画素のドットデータを抜き出して、行と列とを入れ換えている様子を示した説明図である。ここでは図１６に倣って、１画素飛びにドットを形成するものとする。また、印字画素のドットデータを抜き出して行と列とを入れ換える処理は、ＣＭＹＫの各色毎に行われるが、処理内容は各色ともに同様である。そこで、図２１では図示が煩雑となることを避けるために、代表として、ある色についてのみ表示している。
【０１１７】
今、図２１（ａ）に示した画素列の先頭の画素からドットが形成されるものとすると、ノズルが最初にドットを形成する画素は、１列目の画素（図中の上端に「１」と符番した画素）となる。そこで、この画素についてのドットデータを抜き出して、行と列とを入れ換えた状態でＲＡＭに書き込んでやる。図２１（ｂ）の１行目のデータは、こうして書き込まれたドットデータである。次いで、ノズルが２番目にドットを形成する画素、すなわち図２１（ａ）の上端に「２」と符番した画素についてのドットデータを抜き出して、行と列とを入れ換えた後、ＲＡＭに書き込んでやる。図２１（ｂ）の２行目のデータは、こうして書き込まれたドットデータである。図２１（ａ）のような復元されたドットデータに対して、このような操作を次々と行っていけば、図２１（ｂ）に示すようなドットデータを得ることができる。図１８のステップＳ３０６では、このような操作を行うことにより、印字画素についてのドットデータを、行と列とを入れ換えた状態で、順次記憶していく処理を行う。
【０１１８】
こうして得られたドットデータは、１行目には、ノズルＮ１ないしノズルＮ４の各ノズルが１番初めに形成する各画素についてのドットデータが設定され、２行目には、各ノズルが２番目に形成する各画素についてのドットデータが設定され、３行目には、各ノズルが３番目に形成する各画素についてのドットデータというように、各ノズルがドットを形成する順序で、ドットデータが並び替えられたデータとなっている。そこで、制御回路２６０は、キャリッジ２４０が主走査する動きに合わせて、このドットデータを１行目から順次読み出して印字ヘッドに出力していく（ステップＳ３０８）。こうしてドットデータを印字ヘッドに出力してやれば、ヘッドに設けられた各ノズルからドットデータに従ってインク滴が吐出されて、印刷用紙上の適切な位置にドットが形成されることになる。
【０１１９】
以上のようにしてノズル位置に相当する画素列についてドットを形成したら、画像を構成する全画素列について処理が終了したか否かを判断する（ステップＳ３１０）。そして、未処理の画素列が残っている場合は（ステップＳ３１０：ｎｏ）、ステップＳ３０２に戻って新たなノズル位置に相当する圧縮ドットデータおよび特定画素情報を読み出した後、続く一連の処理を行う。こうして、全ての画素列についての処理が終了したと判断されたら（ステップＳ３１０：ｙｅｓ）、図１８に示した第１実施例のインターレース・オーバーラップ処理を抜けて図６の画像印刷処理に戻った後、第１実施例の画像印刷処理を終了する。
【０１２０】
以上に説明した第１実施例の画像印刷処理では、画像データの中から特定画素についてのデータを除くことによって画像データを圧縮し、得られた圧縮画像データに対して、続く画像処理を行っている。このため、画像処理の対象となる画素数が減少するので、その分だけ画像処理を迅速に行うことができ、延いては、画像を迅速に印刷することが可能となる。
【０１２１】
また、画像処理によって得られたドットデータを、コンピュータ１００からプリンタ２００に供給する場合にも、上述した第１実施例の画像印刷処理では、特定画素を除いて圧縮された状態のドットデータ（圧縮ドットデータ）を供給している。このため、プリンタ２００に供給すべきデータ量を減少させることができるので、データを迅速に供給することが可能となる。もちろん、第１実施例の画像印刷処理では、圧縮ドットデータに加えて特定画素情報もプリンタ２００も供給する必要がある。しかし、前述したように、ドットデータは１画素あたり２ｂｉｔのデータであり、しかもドットデータは１画素についてＣＭＹＫ各色毎のデータであることから、ドットデータのデータ量は特定画素情報に比べて遙かに大きくなる。すなわち、特定画素情報のデータ量に比べれば、ドットデータのデータ圧縮量の方が大きく、このことから特定画素情報を供給したとしても、全体としてはプリンタ２００に供給すべきデータ量を低減させることができる。
【０１２２】
更に、プリンタ２００では、このように圧縮された状態でドットデータを受け取っている。このため、圧縮ドットデータに加えて特定画素情報を記憶しなければならないものの、ドットデータを圧縮しない状態で記憶しておく場合に比べれば、必要なメモリ量を大きく低減させることが可能となる。
【０１２３】
第１実施例の画像印刷処理によれば、以上のような効果を得ることができるので、例え、画像を構成する画素数が多くなった場合でも、必要なメモリ量をいたずらに増加させることなく、画像を迅速に表示させることが可能となるのである。
【０１２４】
Ｃ．第２実施例  ：
以上に説明した第１実施例の画像印刷処理では、色変換処理を行う前の段階で特定画素を検出して、特定画素についてのデータを分離することによって画像データを圧縮した。こうすれば、圧縮した状態で、色変換処理およびハーフトーン処理を実施することができる。もっとも、このような方法に換えて、色変換処理を行ってから特定画素を検出することとしても良い。この場合は、色変換処理は圧縮前の画像データに対して行う必要があるものの、データの圧縮率を向上させることが可能である。以下では、こうした第２実施例の画像印刷処理について説明する。
【０１２５】
図２２は、第２実施例の画像印刷処理の流れを示すフローチャートである。第２実施例の画像印刷処理は、図６に示した第１実施例の画像印刷処理に対して、色変換処理の後で画像データを圧縮している点が大きく異なっている。以下では、かかる相違点を中心として、第２実施例の画像印刷処理について説明する。
【０１２６】
第２実施例の画像印刷処理においても、コンピュータ１００は、処理を開始すると先ず初めに、変換すべき画像データの読み込みを開始する（ステップＳ４００）。第１実施例と同様に、ここでは、ＲＧＢ画像データを読み込むものとする。次いで、読み込んだ画像データの解像度を印刷解像度に変換した後（ステップＳ４０２）、色変換処理を行う（ステップＳ４０４）。すなわち、画像を構成する画素毎に記憶されたＲＧＢ画像データを、図８に示したような色変換テーブル（ＬＵＴ）を参照することにより、Ｃ，Ｍ，Ｙ，Ｋ各色についての画像データに変換するのである。
【０１２７】
第２実施例の画像印刷処理では、こうして画像を構成している全ての画素について、ＣＭＹＫ各色の画像データに変換した後に、特定画素についてのデータを分離して画像データを圧縮する処理を行う（ステップＳ４０６）。かかる処理の内容は、大まかには、図７を用いて前述した第１実施例で行う処理と同様であるが、次の点で第１実施例とは異なっている。すなわち、第１実施例ではＲＧＢ各色の画像データを一体として扱い、各色の画像データがいずれも階調値「２５５」または階調値「０」である画素を特定画素として検出した。これに対して第２実施例では、Ｃ，Ｍ，Ｙ，Ｋ各色毎に特定画素を検出し、各色毎に画像データを圧縮する点で異なっている。例えば、階調値「０」の画素を特定画素として検出するものとする。
【０１２８】
図２３は、Ｃ，Ｍ，Ｙ，Ｋの各色毎の特定画素を検出して、画像データを圧縮している様子を概念的に示した説明図である。図２３（ａ）は、ある画素列についてのＲＧＢ画像データを示しており、このＲＧＢ画像データを色変換することによって、図２３（ｂ）に示すようなＣＭＹＫ各色の画像データが得られたものとする。第２実施例では、得られた画像データから各色毎に特定画素を検出する。一例として、Ｃ色の画像データについて説明すると、Ｃ色については先頭から３番目までの画素および５番目の画素には階調値「０」が設定されている。図１５に示した記録密度変換テーブルによれば、階調値「０」の画像データは、大中小いずれのドットの記録密度データも階調値「０」となるから、これらの画素については、ドットは形成されないものと考えられる。そこで、Ｃ色の画像データについては、先頭から３番目まで、および５番目の画素は特定画素と判断され、これら画素についての画像データを取り除くことにより、Ｃ色についての圧縮画像データを生成することができる。
【０１２９】
図２３（ｃ）の上段には、こうしてＣ色について生成した特定画素情報と圧縮画像データとが示されている。Ｍ色の画像データ、Ｙ色の画像データ、Ｋ色の画像データについても同様にして、それぞれ特定画素情報および圧縮画像データを生成することができる。図２２のステップＳ４０６では、このようにして色変換によって得られた画像データから各色毎に特定画素を検出して、特定画素情報と圧縮画像データとを各色毎に生成する処理を行う。こうして各色毎に画像データを圧縮すれば、画像データの圧縮率を向上させることができるので、続く画像処理および画像処理後のデータをプリンタ２００に出力する処理を迅速に行うことができ、延いては画像を迅速に表示させることが可能となる。尚、色変換後の画像データを各色毎に圧縮すれば、圧縮率を向上させることが可能な理由については、別図を参照しながら後ほど詳しく説明する。
【０１３０】
こうして各色毎に画像データを圧縮したら（図２２のステップＳ４０６）、得られた圧縮画像データに対して各色毎にハーフトーン処理を行い、圧縮ドットデータを生成する（ステップＳ４０８）。ハーフトーン処理の内容については、第２実施例も前述した第１実施例における処理と同様であり、ここでは説明は省略する。但し、第２実施例では特定画素を各色毎に検出することに対応して、図１２に示した圧縮ディザマトリックスを生成する処理も各色毎に行う点で、前述した第１実施例とは若干異なっている。
【０１３１】
ハーフトーン処理を行って圧縮ドットデータが得られたら、コンピュータ１００は、特定画素情報と圧縮ドットデータとを、プリンタ２００に向かって各色毎に出力する。図２３（ｄ）は、コンピュータ１００がこれらを出力するデータ形式を概念的に表している。すなわち、コンピュータ１００は、初めに各色の特定画素情報を出力し、次いで、圧縮ドットデータを出力する。前述したように、特定画素が検出される画素位置は各色毎に異なっているから、圧縮ドットデータのデータ長は、図２３（ｃ）に例示したように各色毎に異なっている。そこで、圧縮ドットデータの出力に先立って、予め特定画素情報を出力しておくのである。こうすれば、プリンタ２００の制御回路２６０は、圧縮ドットデータのデータ長を特定画素情報から検出しながら、圧縮ドットデータを受け取ることができるので、データ長が各色毎に異なっていても、圧縮ドットデータを確実に受け取ることが可能となる。
【０１３２】
尚、図２３（ｄ）では、各色の特定画素情報をまとめて出力した後に、各色の圧縮ドットデータを出力する場合について表示しているが、圧縮ドットデータに先立って各色毎に特定画素情報を出力していればよく、例えば、特定画素情報、圧縮ドットデータの順番で、各色毎に出力することとしてもよい。
【０１３３】
プリンタ２００の制御回路２６０では、こうして供給された特定画素情報と圧縮ドットデータとに基づいて、インターレース・オーバーラップ処理を行う（ステップＳ４１０）。かかる処理の内容も第１実施例と同様である。以下、第１実施例のインターレース・オーバーラップ処理の流れを示した図１８のフローチャートを流用しながら、第２実施例のインターレース・オーバーラップ処理について概要のみを簡単に説明する。
【０１３４】
第２実施例のインターレース・オーバーラップ処理においても、先ず初めに、コンピュータ１００から供給された圧縮ドットデータと特定画素情報とを、制御回路２６０内のＲＡＭに記憶した後（ステップＳ３００相当）、ノズル位置に相当する画素列についての特定画素情報と圧縮データとを、ＣＭＹＫの各色毎に読み込む（ステップＳ３０２相当）。
【０１３５】
次いで、読み出した特定画素情報および圧縮ドットデータに基づいて、各色毎にドットデータを復元した後（ステップＳ３０４相当）、復元したドットデータから印字ヘッドが実際にドットを形成する画素（印字画素）のドットデータだけを抜き出して、抜き出したデータの行と列とを入れ換える処理を行う（ステップＳ３０６相当）。その結果、図２１（ｂ）に示したように、１行目には、ノズルＮ１ないしノズルＮ４の各ノズルが１番初めに形成する各画素についてのドットデータが設定され、２行目には、各ノズルが２番目に形成する各画素についてのドットデータが設定され、３行目には、各ノズルが３番目に形成する各画素についてのドットデータというように、各ノズルがドットを形成する順序で、ドットデータが記憶されたデータが得られる。
【０１３６】
そこで、キャリッジ２４０が主走査する動きに合わせて、このドットデータを１行目から順次読み出して印字ヘッドに出力していくことによって印刷用紙上にドットを形成する（ステップＳ３０８相当）。こうした操作を全ての画素について行ったら（ステップＳ３１０相当）、インターレース・オーバーラップ処理を終了して、第２実施例の画像印刷処理を完了する。
【０１３７】
以上に説明した第２実施例では、色変換後の画像データを各色毎に圧縮しているために、色変換前に圧縮した場合よりも圧縮率を向上させることが可能である。これは、次のような、２つの理由によるものである。
【０１３８】
先ず１つ目の理由としては、色変換前に画像データを圧縮する場合は、ＲＧＢ各色の画像データがいずれも階調値「２５５」である画素か、またはいずれも階調値「０」である画素しか特定画素とならないのに対して、色変換後の画像データを圧縮する場合は、ＣＭＹＫ各色の画像データの内、いずれか１色でも階調値が「２５５」あるいは「０」であれば、その色については特定画素となる。このことから、色変換後の画像データを各色毎に圧縮してやれば、色変換前に圧縮する場合よりも、特定画素の画素数が多くなるので、その分だけ圧縮率を向上させることが可能となる。
【０１３９】
圧縮率が向上する２番目の理由は、ＲＧＢ画像データを色変換して得られるＣＭＹＫ画像データの、各色の階調値の特性によるものである。図２４を参照しながら、この理由について説明する。図２４は、白色から黒色へとゆっくりと変化する画像（いわゆる無彩色のグラデーション画像）を色変換している様子を概念的に示した説明図である。このような無彩色のグラデーション画像のＲＧＢ画像データは、Ｒ，Ｇ，Ｂ各色の階調値が「２５５」から「０」に向かって同時に少しずつ減少するような画像データとなる。一方、このようなＲＧＢ画像データを色変換して得られるＣＭＹＫ各色の画像データは、次のようなデータとなる。先ず、ＲＧＢ画像データの階調値が大きい領域（すなわちグラデーション画像の白色に近い領域）では、ＲＧＢ各色の階調値が小さくなるに連れて、ＣＭＹ各色の画像データの階調値は、ほぼ同じように増加していく。ＣＭＹ各色を減法混色させれば、Ｋ色を用いずとも無彩色を表現することができる。従って、このような領域ではＫ色の画像データは階調値「０」となる。ＲＧＢ画像データの階調値がある値まで減少すると（すなわちグラデーション画像がある程度暗くなると）、ＣＭＹ各色による減法混色だけでは表現しきれなくなるので、Ｋ色の画像データを少しずつ増加させ、代わりにＣＭＹ各色の画像データを減少させる。ＲＧＢ画像データの階調値が更に減少すると（すなわちグラデーション画像が更に暗くなると）、ついにはＣＭＹを全く使用せずに、Ｋ色のみを用いて表現するようになる。このような領域では、ＣＭＹ各色の画像データは階調値「０」となり、グラデーション画像が暗くなるに従ってＫ色の画像データのみが次第に増加して行く。図２４には、このようにＲＧＢ画像データが変化するに連れて、色変換されたＣＭＹＫ各色の画像データが次第に増減する様子が示されている。
【０１４０】
図２４に示されているように、ＣＭＹ色の画像データまたはＫ色の画像データのいずれかは、グラデーション画像の広い領域に亘って階調値「０」となっている。これは、無彩色のグラデーション画像を印刷する場合、ＣＭＹ各色の画像データとＫ色の画像データとは、広い領域で相補的な使われ方、すなわち、ＣＭＹが使用される領域の大部分ではＫは使用されず、逆にＫが使用される領域の大部分ではＣＭＹは使用されておらず、どちらも使用される領域では、いずれか一方が増加すれば他方が減少するような使われ方をしていることによる。このような相補的な使われ方をするのは、何もＣＭＹとＫとの間に限られず、ＣＭＹ各色の間にも起こり得る。更に、ＣＭＹＫ各色に加えて、淡いＣ（ＬＣ）や、淡いＭ（ＬＭ）、淡いＫ（ＬＫ）を使用する場合には、これら濃淡の関係にある各色の間にも起こり得る。従って、色変換後の画像データを各色毎に圧縮した場合は、これら各色の画像データは互いに相補的に使用されているので、上述したように、ほとんどの領域で、いずれかの画像データの階調値が「０」となっている。このような画像データを各色毎に圧縮してやれば、広い範囲に亘って多数の特定画素が検出されることになるので、画像データの圧縮率を向上することができるのである。
【０１４１】
以上に説明した第２実施例の画像印刷処理によれば、色変換後の画像データを各色毎に圧縮しているので、圧縮画像データの圧縮率が向上し、データ量を低減することができる。このような圧縮画像データに画像処理を行えば、圧縮ドットデータを迅速に生成することができるとともに、生成した圧縮ドットデータと特定画素情報とをプリンタに迅速に転送することができる。その結果、画像を迅速に印刷することが可能となる。更に、圧縮ドットデータのデータ量が抑制されているので、転送された圧縮ドットデータと特定画素情報とを記憶しておくために、プリンタに搭載すべきメモリ容量がいたずらに大きくなることもない。
【０１４２】
加えて、第２実施例の画像印刷処理では、次のような利点も得ることができる。すなわち、色変換テーブルに設定されるＣＭＹＫ各色の階調値は、ＲＧＢ画像データに対して一義的に決定されるものではなく、ある程度の自由度が存在している。通常は、より好ましい画質が得られるように、調整された各色の階調値が設定されている。そこで、第２実施例の画像印刷処理では、色変換テーブルに設定される各色階調値の自由度の一部を、画像データの圧縮率を調整するために使用することも可能である。例えば、圧縮率が低い領域では、色変換テーブルに設定されるＣＭＹＫ各色の階調値を、圧縮率が上がるような設定に調整しておき、逆に圧縮率が高い領域では、圧縮率が下がるような設定に調整しておくのである。こうすれば、画像データを常に安定した割合で圧縮することができる。そのため、プリンタに搭載するメモリ容量を決定する際に、予備として余分に搭載する容量を少なめに見積もることができ、その分だけ、メモリ容量を抑制することが可能となる。
【０１４３】
Ｄ．第３実施例  ：
上述した各種の実施例では、いずれも画像データの解像度を印刷解像度に変換した後に、特定画素を分離して画像データを圧縮した。しかし、低解像度の画像データをより高い解像度に変換して画像を印刷する場合には、解像度を変換する前に、すなわち解像度が低い段階で特定画素を分離した後に、画像データを圧縮してもよい。こうすれば、後述するように、データの圧縮率を大幅に向上させることができる。その結果、画像を迅速に印刷するとともに、プリンタ２００に搭載すべきメモリ容量も大幅に抑制することが可能である。以下では、こうした第３実施例の画像印刷処理について説明する。
【０１４４】
図２５は、第３実施例の画像印刷処理の流れを示すフローチャートである。また、図２６および図２７は、第３実施例の画像印刷処理において、画像データがドットデータに変換される様子を概念的に示した説明図である。第３実施例の画像印刷処理は、前述した各種実施例の画像印刷処理に対して、特定画素を分離して画像データを圧縮する処理を、解像度を変換する前に実施する点が大きく異なっている。以下では、かかる相違点を中心として、第３実施例の画像印刷処理について説明する。
【０１４５】
第３実施例の画像印刷処理を開始すると、前述した各種実施例の画像印刷処理と同様に、先ず、画像データの読み込みを開始する（図２５のステップＳ５００）。ここでは、前述した実施例と同様に、画像データとしてＲＧＢ画像データを読み込むものとする。
【０１４６】
次いで、読み込んだＲＧＢ画像データの中から特定画素を分離して、画像データを圧縮する処理を行う（ステップＳ５０２）。すなわち、前述した第１実施例と同様に、ＲＧＢ各色の画像データを一体として扱って、各色の画像データの階調値がいずれも「２５５」である画素を、特定画素として分離するのである。もちろん、階調値がいずれも「０」である画素を特定画素として分離しても良く、更には、階調値が「２５５」あるいは「０」に近い値であれば、これらの画素を特定画素に準じて扱うこととしても良い。
【０１４７】
かかる処理について、図２６を参照しながら説明する。図２６（ａ）は、ステップＳ５００において読み込まれたＲＧＢ画像データを概念的に示している。説明の便宜上、図２６では１行分の画像データを示すとともに、各画素には先頭から通し番号を付してある。ステップＳ５０２では、ＲＧＢ各色の階調値が「２５５」である画素を特定画素として分離するとともに、特定画素位置を示す特定画素情報を生成する。図２６（ａ）では、先頭から２番目の画素および４番目の画素を特定画素として検出し、これら画素を除くことによって圧縮画像データを生成する。図２６（ｂ）の下段には、こうして生成された圧縮画像データが示されており、上段には対応する特定画素情報が示されている。
【０１４８】
このようにして圧縮画像データを生成したら、得られた圧縮画像データに対して色変換処理を行う（ステップＳ５０４）。色変換処理は、前述したようにＬＵＴ（色変換テーブル）を参照することによって迅速に行うことができる。図２６（ｃ）は、図２６（ｂ）の圧縮画像データを色変換することによって得られたＣＭＹＫ各色の画像データを表している。図示されているように、特定画素を除いた各画素についてのＲＧＢ各色の画像データが、ＣＭＹＫ各色の画像データに変換されている。このように、色変換に先立って特定画素を分離しておけば、特定画素以外の画素についてのみ色変換処理を行えばよいので、対象とする画素が減る分だけ、色変換処理を迅速に完了することが可能となる。
【０１４９】
尚、ここでは前述した第１実施例と同様に、特定画素を分離して画像データを圧縮する処理を、ＲＧＢ画像データに対して行うものとして説明しているが、もちろん、前述した第２実施例と同様に、ＣＭＹＫの各色の画像データに対して各色毎に特定画素を分離することも可能である。このように、ＣＭＹＫ各色毎に画像データを圧縮する場合は、図２５に示したステップＳ５０２とステップＳ５０４との順序を逆にして、色変換処理を行った後に特定画素を分離してやればよい。
【０１５０】
第３実施例の画像印刷処理では、こうして色変換を行った圧縮画像データに対して、解像度を高解像度化する処理を行う（ステップＳ５０６）。図２６（ｄ）は、図２６（ｃ）に示した圧縮画像データの解像度を、主走査方向（紙面上で左右方向）に２分割することによって、解像度を２倍に高めている様子を概念的に示している。もちろん、高解像度化する方向は主走査方向に限られるものではなく、副走査方向（紙面上で上下方向）に高解像度化しても良い。更には、高解像度化する程度は２倍に限らず、より高い解像度に変換することも可能である。また、図２６（ｄ）では、高解像度化に際して、１つの画素から分割された複数の画素はいずれも同じ画像データを有するものとしたが、もちろん、新たに生成した画素の画像データは同じ画像データに限られるものではない。例えば、周囲の画素の画像データから補間演算を行うなど、周知の種々の方法を適用することが可能である。
【０１５１】
第３実施例では、このように圧縮された状態で（すなわち、特定画素が除かれた状態で）高解像度化された画像データに対して、ハーフトーン処理を行う（図２５のステップＳ５０８）。ハーフトーン処理は、前述した各種実施例と同様にして行うことができる。すなわち、特定画素情報に基づいて圧縮ディザマトリックスを生成し、圧縮ディザマトリックスの閾値と、圧縮画像データの階調値とを比較することによって、画素毎にドット形成の有無を判断する。
【０１５２】
但し、第３実施例では、特定画素を分離した後に画像データを高解像度化していることから、特定画素情報から圧縮ディザマトリックスを生成するに際しては、この点を考慮しておくことが望ましい。すなわち、図２６に示した例では、主走査方向の解像度を２倍に変換しているから、特定画素情報の１画素は、高解像度の画像データでは主走査方向に並んだ２画素分に対応している。そこで、図１３を用いて前述したようにして、特定画素情報に従ってディザマトリックスから閾値を分離するに際しては、特定画素１画素に対して２画素分の閾値を除くことにより、圧縮ディザマトリックスを生成しておくことが望ましい。こうすれば、ディザマトリックスに最適に設定されている閾値の分布を崩すことなく、ハーフトーン処理を行うことが可能となる。
【０１５３】
以上のようにして、ハーフトーン処理を行って圧縮ドットデータが得られたら、コンピュータ１００は、特定画素情報と圧縮ドットデータとを、プリンタ２００に向かって出力する。プリンタ２００は、出力されたデータを制御回路２６０内のＲＡＭに一旦記憶した後、インターレース・オーバーラップ処理を開始する（図２５のステップＳ５１０）。かかる処理は、図１８を用いて説明した第１実施例のインターレース・オーバーラップ処理と、ほぼ同様である。以下、図１８のフローチャートを流用して簡単に説明すると、圧縮ドットデータと特定画素情報とを受け取ってＲＡＭに一旦記憶する（ステップＳ３００相当）。ここで、圧縮ドットデータについては高解像度のデータであるが、特定画素情報は低解像度のデータとなっている。次いで、ノズル位置に相当する圧縮ドットデータと特定画素情報とを読み込んで、これらに基づいてドットデータを復元する処理を行う（ステップＳ３０２、Ｓ３０４相当）。
【０１５４】
図２７は、低解像度の特定画素情報と高解像度の圧縮ドットデータとに基づいて、高解像度のドットデータを復元している様子を概念的に示した説明図である。図２７（ａ）は、復元処理前の圧縮ドットデータと特定画素情報とを概念的に表している。上段に示した特定画素情報は低解像度のデータであり、下段に示した圧縮ドットデータは高解像度のデータとなっており、ここでは、特定画素情報の１画素が圧縮ドットデータの２画素分に対応している。このことから、ドットデータを復元するに際しては、特定画素がある位置に、特定画素情報に従って、２画素分のドットデータが挿入されることになる。図２７（ｂ）は、こうして圧縮ドットデータ中の特定画素に相当する位置に、２画素分のドットデータを挿入することで、高解像度のドットデータを復元している様子を概念的に示している。
【０１５５】
次いで、復元したドットデータから印字画素のデータを抜き出して、行と列とを入れ換える処理を行った後（図１８のステップＳ３０６相当）、入れ換えたドットデータをヘッドに出力する（ステップＳ３０８相当）。そして、全画素列を終了したか否かを判断し（ステップＳ３１０相当）、全画素列について処理が終了するまで上述した操作を繰り返し、処理が完了したらインターレース・オーバーラップ処理を抜けて、図２５に示した画像印刷処理を終了する。
【０１５６】
以上に説明した第３実施例の画像印刷処理においては、画像データが低解像度の段階で特定画素を分離し、得られた圧縮画像データの解像度を高解像度化した後、ハーフトーン処理を行う。こうして得られた高解像度のドットデータを低解像度の特定画素情報とともにプリンタ２００に出力している。このように、特定画素情報については低解像度の状態でプリンタ２００に供給していることから、特定画素情報のデータ量を低減することができる。その結果、コンピュータ１００から特定画素情報を迅速に供給することができるとともに、プリンタ２００でも、供給されてきた特定画素情報を記憶しておくために要する記憶容量を、低減することが可能となる。
【０１５７】
加えて、第３実施例の画像印刷処理では、圧縮ドットデータのデータ量を抑制することも可能となる。すなわち、コンピュータ１００は、全ての画素についてのドットデータを生成する代わりに、特定画素についてのドットデータを除いて圧縮した圧縮ドットデータを生成する。ここで、特定画素情報は低解像度のデータであり、ドットデータは高解像度のデータであるとした場合、１画素分の特定画素情報が複数画素分（図２７に示した例では２画素分）のドットデータに対応することになる。従って、第３実施例の画像印刷処理では、特定画素１つあたり、複数画素分ずつドットデータが圧縮されることになり、圧縮ドットデータのデータ量を抑制することが可能となるのである。こうして圧縮ドットデータのデータ量を抑制することができれば、その分だけ、コンピュータ１００からプリンタ２００にデータを迅速に供給することが可能になるとともに、プリンタ２００側では、圧縮ドットデータを記憶しておくために要するＲＡＭのメモリ容量も抑制することが可能となる。
【０１５８】
Ｄ−１．第３実施例の変形例  ：
（１）第１の変形例  ：
上述した第３実施例では、画像データの解像度を高解像度化するに際して、主走査方向あるいは副走査方向に高解像度化するものとして説明したが、もちろん、主走査方向および副走査方向に、同時に高解像度化しても構わない。例えば、主走査方向および副走査方向への解像度をそれぞれ２倍に高解像度化しても良い。こうした場合は、特定画素情報の１画素分が、ドットデータでは縦横２列ずつの合計４画素分に対応することになる。
【０１５９】
図２８は、主走査方向および副走査方向への解像度を２倍に高解像度化した場合に、特定画素情報と圧縮ドットデータとに基づいてドットデータを復元する様子を概念的に示した説明図である。図２８（ａ）の上段には、低解像度の特定画素情報が示されており、図２８（ａ）の下段には、対応する高解像度の圧縮ドットデータが示されている。この例では、特定画素情報の１画素が、縦横２列の４画素分の圧縮ドットデータに対応するから、図２８（ａ）の圧縮ドットデータは、図２８（ｂ）に示すようなドットデータに復元されることになる。
【０１６０】
このように、主走査方向および副走査方向に同時に高解像度化してやれば、１画素分の特定画素情報で、多数の画素のドットデータに対応することになる。その結果、特定画素情報のデータ量と圧縮ドットデータのデータ量とを同時に低減することができ、延いては、コンピュータ１００からプリンタ２００に迅速に供給するとともに、プリンタ２００に搭載すべきメモリ容量も低減することが可能となる。
【０１６１】
（２）第２の変形例  ：
上述した第３実施例では、画像データの解像度を、より高い解像度の印刷解像度に変換した後にハーフトーン処理を行っているが、ハーフトーン処理と同時に高解像度化することとしてもよい。
【０１６２】
図２９は、ハーフトーン処理と同時に画像データを高解像度化する場合の画像印刷処理の流れを示すフローチャートである。図示した第２の変形例のフローチャートは、図２５を用いて前述した第３実施例の画像印刷処理に対して、ハーフトーン処理中で画像データを高解像度化する点が大きく異なっている。以下では、かかる相違点を中心として、第３実施例における第２の変形例の画像印刷処理について、簡単に説明する。
【０１６３】
第３実施例の第２の変形例においても、画像印刷処理を開始すると、先ず初めに、低解像度の画像データを読み込んで（ステップＳ６００）、読み込んだ画像データの中から特定画素を分離することにより、画像データを圧縮する（ステップＳ６０２）。こうして得られた低解像度の圧縮画像データに対して色変換処理を行う（ステップＳ６０４）。次いで、低解像度の画像データにハーフトーン処理を行うと同時に、高解像度のデータに変換する処理を行った後（ステップＳ６０６）、インターレース・オーバーラップ処理を行うことにより画像を印刷する（ステップＳ６０８）。
【０１６４】
図３０は、ハーフトーンと同時に画像データを高解像度化する処理の前半部分の流れを示すフローチャートであり、図３１は、後半部分の流れを示すフローチャートである。以下では、図３０および図３１を参照しながら、第２の変形例の画像印刷処理中で行われるハーフトーン処理について説明する。ハーフトーン処理を開始すると、先ず初めに、低解像度の圧縮画像データの中から、処理の対象とする１画素分のデータを読み込む（ステップＳ７００）。第２の変形例のハーフトーン処理では、読み込んだ低解像度の画像データと、高解像度のディザマトリックスとを比較することにより、１画素分の画像データから複数画素分のドットデータを一度に決定する。ここでは、説明の便宜から、最も単純な場合として、画像データの解像度を、主走査方向に２倍に高解像度化するものとして、１画素分の画像データから、主走査方向に並んだ２画素分のドットデータを、一度に決定するものとする。
【０１６５】
１画素分の画像データを読み込んだら、高解像度のディザマトリックスから、対応する画素位置に設定されている複数の閾値を読み込む処理を行う（ステップＳ７０２）。尚、本実施例のプリンタ２００は、大ドット、中ドット、小ドットの３種類のドットを形成可能であるから、ディザマトリックスも大ドット用、中ドット用、小ドット用の３つのディザマトリックスが用意されており、初めに閾値を読み込むステップＳ７０２では、小ドット用のディザマトリックスから、対応する画素位置に設定されている複数の閾値を読み込む処理を行う。
【０１６６】
次いで、読み込んだ閾値と画像データとを比較して、閾値の方が大きい画素については、ドットを形成しないと判断し、この画素には、ドットを形成しないことを表す値ドットデータ「００」を書き込む処理を行う（ステップＳ７０４）。図３２（ａ）は、高解像度の小ドット用のディザマトリックスから、対応する画素位置に設定されている２画素分の閾値を読み出して、低解像度の画像データと比較することにより、ドットを形成しない画素を決定している様子を概念的に表した説明図である。図３２（ａ）の左側に表示された大きな矩形は、ハーフトーンの対象としている低解像度の１画素を模式的に表したものであり、画素中に記載された値「５５」は、低解像度の画像データの階調値を示したものである。また、図３２（ａ）の右側には、高解像度の小ドット用のディザマトリックスに、２つの閾値「１５」、「３０」が対応する画素位置に設定されている様子を模式的に表したものである。次いで、画像データの階調値とこれら閾値とを比較して、閾値の方が大きな画素があれば、その画素についてはドットデータが「００」であると決定する。図３２に示した例では、画像データの方がいずれの閾値よりも大きいので、ドットデータは未だ決めることができない。図３２（ａ）中の画素位置に表示した「？」は、未だドットデータを決められない状態を表している。図３０のステップＳ７０４では、このように、低解像度の画像データと高解像度の小ドット用の閾値とを比較して、閾値の方が大きい画素があれば、その画素についてはドットデータ「００」を書き込む処理を行う。
【０１６７】
ドットデータ「００」の画素を決定したら、未決定の画素位置が残っているか否かを判断する（図３０のステップＳ７０６）。そして、未決定の画素位置が残っている場合は（ステップＳ７０６：ｙｅｓ）、高解像度の中ドット用のディザマトリックスから、未決定の画素位置に対応する閾値を読み出して（ステップＳ７０８）、読み出した閾値を低解像度の画像データと比較し、閾値の方が大きい画素については、小ドットを形成するものと判断して、この画素に小ドットを形成することを意味するドットデータ「０１」を書き込む処理を行う（ステップＳ７１０）。
【０１６８】
図３２（ｂ）は、高解像度の中ドット用のディザマトリックスから、ドットデータが未決定状態の画素位置に設定されている閾値を読み出して、低解像度の画像データと比較している様子を概念的に示した説明図である。図３２（ｂ）の右側には、高解像度の中ドット用のディザマトリックスの対応する画素位置に、２つの閾値「４５」、「６０」が設定されている様子を模式的に表したものである。画像データの階調値「５５」とこれら閾値とを比較すると、右側の画素位置については閾値の方が大きいので、この画素位置についてはドットデータを「０１」であると決定する。一方、左側の画素位置については、画像データの方が閾値よりも大きいので、ドットデータは未だ決めることができない。その結果、図３２（ｂ）に示すように、右側の画素位置についてはドットデータ「０１」と決定されるが、左側の画素位置については、ドットデータは未決定状態となっている。図３０のステップＳ７０４では、このように、低解像度の画像データと高解像度の小ドット用の閾値とを比較して、閾値の方が大きい画素があれば、その画素についてはドットデータ「００」を書き込む処理を行う。このように、図３０のステップＳ７１０では、低解像度の画像データと高解像度の中ドット用の閾値とを比較して、閾値の方が大きい画素についてはドットデータ「０１」を書き込む処理を行う。
【０１６９】
こうしてドットデータ「０１」の画素を決定したら、再び、未決定の画素位置が残っているか否かを判断する（ステップＳ７１２）。そして、未決定の画素位置が残っている場合は（ステップＳ７１２：ｙｅｓ）、高解像度の大ドット用のディザマトリックスの中から、未決定の画素位置に対応する閾値を読み出して（図３１のステップＳ７１４）、画像データの階調値と読み出した閾値とを比較する（ステップＳ７１６）。そして、画像データよりも閾値の方が大きい画素位置についてはドットデータ「１０」を書き込み、そうでない（すなわち画像データの方が大きな）画素位置についてはドットデータ「１１」を書き込む処理を行う（ステップＳ７１６）。
【０１７０】
図３２（ｃ）の右側には、高解像度の大ドット用のディザマトリックスの対応する画素位置に、閾値「１５０」が設定されている様子を模式的に表したものである。画像データの階調値「５５」とこの閾値「１５０」とを比較すれば閾値の方が大きいので、この画素位置についてはドットデータを「１０」と決定することができる。仮に、画像データの方が大きくなれば、ドットデータは「１１」となる。このように、図３１のステップＳ７１６では、低解像度の画像データと高解像度の大ドット用の閾値とを比較して、閾値の方が大きい画素についてはドットデータ「１０」を書き込み、画像データの方が大きい画素についてはドットデータ「１１」を書き込む処理を行う。
【０１７１】
以上の処理を行うことにより、ステップＳ７００で読み込んだ１画素分の画像データが、２画素分のドットデータに変換されたことになる。次いで、低解像度の圧縮画像データの全画素についてドットデータに変換したか否かを判断する（図３１のステップＳ７１８）。そして、未変換の画素が残っている場合は（ステップＳ７１８：ｎｏ）、再び図３０のステップＳ７００に戻って、新たな１画素分の画像データを読み込み、続く一連の処理を行う。こうした処理を繰り返し、全画素について処理を終了したと判断されたら（図３１のステップＳ７１８：ｙｅｓ）、上述した第２の変形例のハーフトーン処理を終了する。
【０１７２】
以上に説明した第２の変形例のハーフトーン処理によれば、低解像度の圧縮画像データから１画素分のデータを読み込むと、直接２画素分のドットデータに変換する。すなわち、低解像度の圧縮画像データを高解像度の圧縮画像データに変換することなく、直ちに高解像度の圧縮ドットデータに変換することができるので、高解像度の圧縮画像データを記憶しておくためのメモリを節約することが可能となる。
【０１７３】
以上では、画像データの解像度を主走査方向に２倍に高解像度化するものとして説明したが、もちろん、高解像度化する程度や高解像度化する方向は、これに限られるわけではない。例えば、主走査方向に３倍あるいは４倍と、より高い解像度に変換してもよいし、副走査方向に高解像度化してもよい。更には、主走査方向および副走査方向に、同時に高解像度化することも可能である。
【０１７４】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、上述の機能を実現するソフトウェアプログラム（アプリケーションプログラム）を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、ＣＤ−ＲＯＭやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【０１７５】
また、上述した各種実施例では、ハーフトーン処理までの画像処理はコンピュータ１００で行い、インターレース・オーバーラップ処理以降の画像処理はプリンタ２００で行うものとして説明した。しかし、画像処理の分担はこのようなものに限られるものではなく、更には、このように画像処理を分担して行うものに限られるわけでもない。例えば、全ての画像処理をコンピュータ１００で実行して、プリンタ２００ではドットの形成のみを行うものであっても良いし、あるいは画像処理を含めて全ての処理をプリンタ２００で行うものであっても構わない。
【０１７６】
加えて、上述した各種の実施例では、印刷用紙上にドットを形成して画像を印刷するプリンタに本発明を適用した場合について説明したが、本発明の適用範囲はプリンタに限られるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することが可能である。
【図面の簡単な説明】
【０１７７】
【図１】印刷システムを例にとって本願発明の画像出力装置に関する実施例の概要を示した説明図である。
【図２】第１実施例において画像データに画像処理を加えるためのコンピュータの構成を示す説明図である。
【図３】第１実施例において印刷用紙上に画像を印刷するプリンタの概略構成を示す説明図である。
【図４】各色のインク吐出用ヘッドの底面にインク滴を吐出する複数のノズルが形成されている様子を示した説明図である。
【図５】吐出するインク滴の大きさを制御することで大きさの異なるドットを形成する原理を示す説明図である。
【図６】本実施例のコンピュータおよびプリンタが画像データに所定の画像処理を加えてドットデータを生成し印刷用紙上に画像を印刷する処理の流れを示すフローチャートである。
【図７】特定画素についてのデータを分離することにより画像データを圧縮している様子を概念的に示した説明図である。
【図８】色変換処理のために参照される色変換テーブルを概念的に示した説明図である。
【図９】圧縮画像データを色変換している様子を概念的に示した説明図である。
【図１０】ディザマトリックスの一部を拡大して例示した説明図である。
【図１１】ディザマトリックスを参照しながら画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。
【図１２】１行分の圧縮画像データを変換して得られた圧縮ドットデータを概念的に示した説明図である。
【図１３】ディザマトリックスから圧縮ディザマトリックスを生成している様子を概念的に示した説明図である。
【図１４】第１実施例のハーフトーン処理を行って圧縮画像データを圧縮ドットデータに変換する処理の流れを示したフローチャートである。
【図１５】第１実施例のハーフトーン処理中で参照される記録密度変換テーブルを概念的に示した説明図である。
【図１６】印字ヘッドが主走査と副走査とを行いながら印刷用紙上にドットを形成していく様子を概念的に示した説明図である。
【図１７】通常のプリンタで行われている一般的なインターレース・オーバーラップ処理について示した説明図である。
【図１８】第１実施例の画像印刷処理で行われるインターレース・オーバーラップ処理の流れを示すフローチャートである。
【図１９】第１実施例のインターレース・オーバーラップ処理においてノズル位置に相当する画素列についての圧縮ドットデータと特定画素情報とを読み出してドットデータを復元している様子を概念的に示した説明図である。
【図２０】特定画素情報およびＣＭＹＫ各色の圧縮ドットデータからドットデータを各色毎に復元する様子を示した説明図である。
【図２１】復元されたドットデータから印字画素のドットデータを抜き出して行と列とを入れ換えている様子を示した説明図である。
【図２２】第２実施例の画像印刷処理の流れを示すフローチャートである。
【図２３】Ｃ，Ｍ，Ｙ，Ｋの各色毎の特定画素を検出して画像データを圧縮している様子を概念的に示した説明図である。
【図２４】白色から黒色へとゆっくりと変化する画像（いわゆる無彩色のグラデーション画像）を色変換している様子を概念的に示した説明図である。
【図２５】第３実施例の画像印刷処理の流れを示すフローチャートである。
【図２６】第３実施例の画像印刷処理において画像データを圧縮画像データに変換した後に高解像度化する様子を概念的に示した説明図である。
【図２７】第３実施例の画像印刷処理において、圧縮ドットデータおよび特定画素情報からドットデータを復元する様子を概念的に示した説明図である。
【図２８】第３実施例の第１の変形例において、主走査方向および副走査方向への解像度を２倍に高解像度化した場合に、特定画素情報と圧縮ドットデータとに基づいてドットデータを復元する様子を概念的に示した説明図である。
【図２９】第３実施例の第２の変形例における画像印刷処理の流れを示すフローチャートである。
【図３０】第３実施例の第２の変形例の画像印刷処理中で実施されるハーフトーン処理の前半部分の流れを示すフローチャートである。
【図３１】第３実施例の第２の変形例の画像印刷処理中で実施されるハーフトーン処理の後半部分の流れを示すフローチャートである。
【図３２】第３実施例の第２の変形例のハーフトーン処理において、低解像度の圧縮画像データが高解像度の圧縮ドットデータに変換される様子を概念的に示した説明図である。
【符号の説明】
【０１７８】
１０…コンピュータ
２０…プリンタ
１００…コンピュータ
１０８…周辺機器インターフェースＰＩＦ
１０９…ディスクコントローラＤＤＣ
１１０…ネットワークインターフェースカードＮＩＣ
１１２…ビデオインターフェースＶＩＦ
１１６…バス
１１８…ハードディスク
１２０…デジタルカメラ
１２２…カラースキャナ
１２４…フレキシブルディスク
１２６…コンパクトディスク
２００…プリンタ
２３０…キャリッジモータ
２３５…モータ
２３６…プラテン
２４０…キャリッジ
２４１…印字ヘッド
２４２…インクカートリッジ
２４３…インクカートリッジ
２４４…インク吐出用ヘッド
２５５…インク通路
２５６…インク室
２５７…インクギャラリ
２６０…制御回路
３００…通信回線
３１０…記憶装置
【図１】
2005138421.tif 000003
【図２】
2005138421.tif 000004
【図３】
2005138421.tif 000005
【図４】
2005138421.tif 000006
【図５】
2005138421.tif 000007
【図６】
2005138421.tif 000008
【図７】
2005138421.tif 000009
【図８】
2005138421.tif 000010
【図９】
2005138421.tif 000011
【図１０】
2005138421.tif 000012
【図１１】
2005138421.tif 000013
【図１２】
2005138421.tif 000014
【図１３】
2005138421.tif 000015
【図１４】
2005138421.tif 000016
【図１５】
2005138421.tif 000017
【図１６】
2005138421.tif 000018
【図１７】
2005138421.tif 000019
【図１８】
2005138421.tif 000020
【図１９】
2005138421.tif 000021
【図２０】
2005138421.tif 000022
【図２１】
2005138421.tif 000023
【図２２】
2005138421.tif 000024
【図２３】
2005138421.tif 000025
【図２４】
2005138421.tif 000026
【図２５】
2005138421.tif 000027
【図２６】
2005138421.tif 000028
【図２７】
2005138421.tif 000029
【図２８】
2005138421.tif 000030
【図２９】
2005138421.tif 000031
【図３０】
2005138421.tif 000032
【図３１】
2005138421.tif 000033
【図３２】
2005138421.tif 000034