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