(57)【要約】【課題】  高画質な画像を簡素な処理で迅速に出力可能な技術を提供する。【解決手段】  隣接する画素を所定数ずつまとめて画像を複数の画素群に分割し、画素群内の各画素について、ドットが形成される順番を示す順序値を予め設定しておく。また、画素群内に形成されるドット個数のデータと順序値との組合せ毎に、該順序値を有する画素でのドット形成有無との対応関係を記憶しておく。画像の出力に際しては、画素群の個数データを生成し、個数データおよび順序値の組合せから対応関係を参照して各画素についてのドット形成の有無を決定し、得られた結果に従ってドットを形成する。個数データはデータ量が少ないため迅速にデータをやり取り可能であり、対応関係を参照すれば、各画素のドット形成有無を迅速に決定することができるので、高画質な画像データを迅速に出力することが可能となる。【選択図】        図１
2005236768.tif 000002
【特許請求の範囲】
【請求項１】
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより出力媒体上に画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する個数データ生成手段と、
前記画素群毎に生成された個数データを、前記画像出力装置に供給する個数データ供給手段と
を備えており、
前記画像出力装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する順序値取得手段と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶している対応関係記憶手段と、
前記画素群についての個数データを受け取ると、該個数データと前記各々の順序値との組合せ毎に前記対応関係を参照することにより、該画素群内の各画素についてのドット形成の有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成するドット形成手段と
を備えている画像出力システム。
【請求項２】
請求項１記載の画像出力システムであって、
前記画素群内でドットが形成される画素の序列を複数組記憶している序列記憶手段を備えるとともに、
前記順序値取得手段は、前記複数組の序列の中から前記画素群毎に選択した１の序列に基づいて、該画素群内の各画素についての前記順序値を取得する手段であり、
前記ドット形成有無決定手段は、前記取得した順序値を用いて、前記画素群内の各画素についてのドット形成の有無を決定する手段である画像出力システム。
【請求項３】
請求項２記載の画像出力システムであって、
前記個数データ生成手段は、二次元的に配列された画素の各々に閾値を対応付けたディザマトリックスに基づいて、前記個数データを生成する手段であり、
前記序列記憶手段は、前記個数データの生成に用いたディザマトリックスを複数の画素群に分割し、該画素群内の各画素に対応付けられた閾値の大小関係に基づいて画素群毎に決定された画素の序列を、前記複数組の画素の序列として記憶している手段である画像出力システム。
【請求項４】
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより、画像を出力する画像出力装置であって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る個数データ受取手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する順序値取得手段と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶している対応関係記憶手段と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成するドット形成手段と
を備える画像出力装置。
【請求項５】
請求項４記載の画像出力装置であって、
前記画素群内でドットが形成される画素の序列を複数組記憶している序列記憶手段を備えるとともに、
前記順序値取得手段は、前記複数組の序列の中から前記画素群毎に選択した１の序列に基づいて、該画素群内の各画素についての前記順序値を取得する手段であり、
前記ドット形成有無決定手段は、前記取得した順序値を用いて、前記画素群内の各画素についてのドット形成の有無を決定する手段である画像出力装置。
【請求項６】
請求項４または請求項５記載の画像出力装置であって、
前記個数データ受取手段は、表現する階調値の異なる複数種類のドットについて、前記画素群内に形成される各種ドットの個数を、前記個数データとして受け取る手段であり、
前記対応関係記憶手段は、前記順序値および前記個数データの組合せと、該順序値を有する画素に形成されるドット種類との対応関係を記憶している手段であり、
前記ドット形成有無決定手段は、前記画素群内の各画素について、前記各種ドットについての形成の有無を決定する手段であり、
前記ドット形成手段は、前記決定したドット形成の有無に従って、前記出力媒体上に前記各種ドットを形成する手段である画像出力装置。
【請求項７】
請求項４ないし請求項６のいずれかに記載の画像出力装置であって、
前記個数データ受取手段は、互いに所定の位置関係にある８画素ないし１６画素ずつの画素がまとめられた画素群について、前記個数データを受け取る手段である画像出力装置。
【請求項８】
画像データに応じて出力媒体上にドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する個数データ生成手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する順序値取得手段と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶している対応関係記憶手段と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成するドット形成手段と
を備える画像出力装置。
【請求項９】
画像データに所定の画像処理を施して、得られた結果に基づいてドットを形成することにより、出力媒体上に画像を出力する画像出力方法であって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する第１の工程と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する第２の工程と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく第３の工程と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する第４の工程と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する第５の工程と
を備える画像出力方法。
【請求項１０】
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより、画像を出力する画像出力方法であって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る工程（Ａ）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する工程（Ｂ）と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく工程（Ｃ）と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する工程（Ｄ）と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する工程（Ｅ）と
を備える画像出力方法。
【請求項１１】
画像データに所定の画像処理を施して、得られた結果に基づいてドットを形成することにより出力媒体上に画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する第１の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する第２の機能と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく第３の機能と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する第４の機能と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する第５の機能と
を実現するプログラム。
【請求項１２】
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る機能（Ａ）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する機能（Ｂ）と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく機能（Ｃ）と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する機能（Ｄ）と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する機能（Ｅ）と
を実現するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データに基づいて画像を出力する技術に関し、詳しくは、画像データに所定の画像処理を施してドットを適切な密度で発生させることにより、画像を出力する技術に関する。
【背景技術】
【０００２】
印刷媒体や液晶画面といった各種の出力媒体上にドットを形成することで画像を出力する画像出力装置は、各種画像機器の出力装置として広く使用されている。これら画像出力装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。ドットを画素に形成した場合、もちろん画素１つ１つについて見れば、ドットが形成されるか否かのいずれかの状態しか取り得ない。しかし、ある程度の広さを持った領域で見れば、ドットの形成され方に粗密を生じさせることは可能であり、ドットの形成密度を変えることによって多階調の画像を出力することが可能である。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見え、まばらに形成された領域は暗く見える。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を出力することが可能となる。このように、適切な形成密度が得られるようにドットの形成を制御するためのデータは、出力しようとする画像に所定の画像処理を施すことによって発生させる。
【０００３】
近年では、これら画像出力装置には、出力画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素に分割することが効果的である。画素を小さくしてやれば、画素に形成されるドットが目立たなくなるので画質を向上させることができる。また、大画像化の要請に対しては、画素数の増加によって対応する。もちろん、個々の画素を大きくすることによっても出力画像を大きくすることはできるが、これでは画質の低下を招いてしまうので、大型化の要請に対しては画素数を増加させることが効果的である。
【０００４】
もっとも、画像を構成する画素数が増加すると画像処理に時間がかかってしまい、画像を迅速に出力することが困難となる。そこで、画像処理を迅速に実行可能とする技術が提案されている（特許文献１）。
【０００５】
【特許文献１】特開２００２−１８５７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、画像処理を迅速に行ったとしても、画像データの転送や転送されたデータの処理の長い時間がかかってしまったのでは、画像を迅速に出力する効果には自ずから限界が生じる。
【０００７】
この発明は従来技術における上述した課題を解決するためになされたものであり、十分な出力画質を維持したまま、画像データの転送や転送されたデータを高速に処理可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００８】
上述した課題の少なくとも一部を解決するために、本発明の画像出力システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより出力媒体上に画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する個数データ生成手段と、
前記画素群毎に生成された個数データを、前記画像出力装置に供給する個数データ供給手段と
を備えており、
前記画像出力装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する順序値取得手段と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶している対応関係記憶手段と、
前記画素群についての個数データを受け取ると、該個数データと前記各々の順序値との組合せ毎に前記対応関係を参照することにより、該画素群内の各画素についてのドット形成の有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成するドット形成手段と
を備えることを要旨とする。
【０００９】
また、上記の画像出力システムに対応する本発明の画像出力方法は、
画像データに所定の画像処理を施して、得られた結果に基づいてドットを形成することにより、出力媒体上に画像を出力する画像出力方法であって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する第１の工程と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する第２の工程と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく第３の工程と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する第４の工程と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する第５の工程と
を備えることを要旨とする。
【００１０】
かかる本発明の画像出力システムおよび画像出力方法においては、画像を複数の画素群に分割し、画素群毎に個数データを生成して、画像出力装置に供給する。画像出力装置では、画素群内の各画素についてドットが形成される順番を示す順序値を取得する。各画素の順序値を取得するに際しては、例えば、画素群内の各画素に「１」から始まる連続した整数値を予め設定しておき、この整数値を読み出して順序値と読み替えても良いし、あるいは、各画素に異なる値の実数値を予め設定しておき、実数値の大きさの順に従って、各画素の順序値を決定しても良い。更には、各画素間に前後関係を設定しておき、これら前後関係に基づいて各画素の順序値を決定しても良い。また、画像出力装置には、順序値および個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係も記憶されている。そして、画素群についての個数データを受け取ると、該個数データと該画素群内の各画素についての順序値との組合せから該対応関係を参照することによって、画素群内の各画素についてのドット形成の有無を決定する。こうして決定したドット形成の有無に従って、出力媒体上にドットを形成することによって画像を出力する。
【００１１】
詳細には後述するが、画像の全画素についてドット形成の有無を表すデータに比べれば、画素群毎にドットの個数を表すデータは遙かに小さなデータとすることができる。このため、画素群毎の個数データを画像出力装置に供給してやれば、迅速にデータを供給することが可能となり、延いては画像を迅速に出力することが可能となる。
【００１２】
また、画像出力装置は画素群毎に出力された個数データを受け取ると、個数データと画素群内の各画素についての順序値との組合せから対応関係を参照することによって、画素群内の各画素についてのドット形成の有無を決定している。このように対応関係を参照しながらドット形成の有無を決定してやれば、画素群内の各画素についてのドット形成の有無を、個数データから直ちに決定することができるので、極めて迅速に且つ簡便に決定可能であり、延いては画像を迅速に出力することが可能となる。
【００１３】
更に、このように極めて簡素な処理でドット形成の有無を決定することができれば、画像出力装置が画像処理装置のようには高度な処理能力を有さない場合でも、個数データから各画素についてのドット形成有無を迅速に決定することが可能である。
【００１４】
こうした画像出力システムにおいては、各画素の順序値を次のようにして取得して、ドット形成の有無を決定しても良い。先ず、画素群内でドットが形成される画素の序列を複数組記憶しておき、これら複数組の序列の中から画素群毎に１の序列を選択する。そして、選択した序列に基づいて、該画素群内の各画素についての順序値を取得し、得られた順序値に基づいて各画素のドット形成の有無を決定してもよい。
【００１５】
画素群内の各画素についてのドット形成有無は、個数データと順序値とに基づいて決定される。従って、複数組の序列の中から１の序列を選択して、その序列に基づいて取得された順序値を用いてドット形成の有無を決定してやれば、例え、同じ個数データが続いた場合でも、複数の画素群に亘って同じ画素位置にドットが形成されることがない。このため、同じパターンでドットが形成された領域が目立ってしまい、画質が悪化することを確実に回避することが可能となる。
【００１６】
また、こうした画像出力システムにおいては、二次元的に配列された画素の各々に閾値を対応付けたディザマトリックスに基づいて個数データを生成するとともに、同じディザマトリックスに基づいて取得された順序値を用いて、各画素のドット形成の有無を決定することとしても良い。すなわち、ディザマトリックスを複数の画素群に分割し、画素群内に形成されるドット個数を求めて個数データを生成する。個数データの生成に際しては、分割されたディザマトリックスを用いて、画素群内の各画素についてドット形成の有無を判断することにより、画素群内に形成されるドット個数のデータを生成すればよい。あるいは、個数データを生成するためには、ドットが形成される画素位置までは分からなくても良いことから、簡易的には次のようにすることもできる。先ず、分割されたディザマトリックスに設定されている閾値のみを画素群毎に記憶しておく。次いで、画素群を代表する階調値（代表階調値）を決定する。代表階調値には、各画素の画像データの平均値を用いることもできるし、あるいは、画像データは隣接する画素間では近似した値を有することから、画素群内の所定位置の画素の画像データを代表階調値とすることも可能である。そして、代表階調値より小さな閾値の個数を画素群毎に求めて、得られた値をその画素群のドット個数とすることもできる。
【００１７】
このようにして生成した個数データを受け取ると、画素群内の各画素についてのドット形成の有無を、次のようにして決定する。予め、個数データの生成に用いたディザマトリックスを複数の画素群に分割し、画素群内の各画素に対応付けられた閾値に基づいて決定された画素の序列を、複数組記憶しておく。あるいは、画素群内の各画素に対応付けられた閾値の大小関係に基づいて画素群毎に各画素の順序値を決定し、得られた順序値を画素の序列として複数組記憶しておく。そして、画素群の個数データを受け取ると、画像上での該画素群の位置に対応した１の序列を選択して、該序列に基づいて各画素の順序値を取得した後、ドット形成の有無を決定することとしてもよい。
【００１８】
詳細には後述するが、このようにして、ディザマトリックスに基づいて画素群の個数データを生成し、該画素群内の各画素についてのドット形成の有無を、同じディザマトリックスに基づいて決定してやれば、ディザ法を用いて画素毎にドット形成の有無を判断した場合と同等の画質で画像を出力することが可能となる。特に、画素群としてまとめられる画素の画像データが同じ階調値を有している場合は、ディザ法を用いて画素毎にドット形成の有無を判断した場合と、個数データからドットを形成する画素位置を決定した場合とで、全く同じ画素位置にドットが形成されることになる。
【００１９】
また、従来技術が有する前述した課題の少なくとも一部を解決するために、本発明の第１の画像出力装置は次の構成を採用した。すなわち、
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより、画像を出力する画像出力装置であって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る個数データ受取手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する順序値取得手段と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶している対応関係記憶手段と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成するドット形成手段と
を備えることを要旨とする。
【００２０】
また、上記の第１の画像出力装置に対応する本発明の画像出力方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより、画像を出力する画像出力方法であって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る工程（Ａ）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する工程（Ｂ）と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく工程（Ｃ）と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する工程（Ｄ）と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する工程（Ｅ）と
を備えることを要旨とする。
【００２１】
かかる画像出力装置および画像出力方法においては、画素群の個数データを受け取ると、順序値および個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を参照しながら、画素群内の各画素についてのドット形成の有無を決定する。こうして決定したドット形成の有無に従って、出力媒体上にドットを形成することによって画像を出力する。
【００２２】
後述するように、画素群の個数データであれば迅速にデータを受け取ることができるので、画像を迅速に出力することが可能である。また、各画素についてのドット形成の有無は、個数データおよび順序値の組合せ毎に設定された対応関係を参照することによって決定することができるので、簡便に且つ迅速に決定することができる。このため、画像を迅速に出力することが可能であるとともに、高度な処理能力を有さない画像出力装置においても、十分に実用的な速度で画像を出力することが可能となる。
【００２３】
こうした画像出力装置においては、画素群内でドットが形成される画素の序列を複数組記憶しているとともに、該画素の序列毎に各画素についての前記順序値を記憶しておき、個数データを受け取ると、これら複数の序列の中から画素群毎に１の序列を選択し、該序列に基づいて取得された順序値を用いて各画素のドット形成の有無を決定することとしてもよい。
【００２４】
こうすれば、同じ個数データが連続した場合でも、複数の画素群に亘って同じ画素位置にドットが形成されることがないので、同じパターンでドットが形成された領域が目立ってしまい、画質が悪化することを回避することが可能となる。
【００２５】
このような画像出力装置においては、表現する階調値の異なる複数種類のドットを出力可能として、画素群内に形成される各種ドットの個数を、個数データとして受け取ることとしてもよい。ここで、表現する階調値の異なる複数種類のドットとは、例えば、ドットの大きさが異なる複数種類のドットとすることもできるし、あるいは、ドットの濃度が異なる複数種類のドットとすることもできる。更には、微細なドットを所定の密度で形成することで擬似的に１つのドットを形成している場合には、微細なドットの密度が異なった複数種類のドットとすることも可能である。これら各種ドットを形成可能な場合は、各種ドットの個数の組合せを個数データとして受け取る。そして、順序値および前記個数データの組合せと、該順序値を有する画素に形成されるドット種類との対応関係を記憶しておき、個数データを受け取ると、該対応関係を参照することによって、各画素に形成されるドットの種類を決定し、決定したドット形成の有無に従って、出力媒体上に各種ドットを形成することとしてもよい。
【００２６】
画素群内の各画素についてドット形成有無を、対応関係を参照しながら決定する場合は、個数データが複数種類のドットについてのドット個数の組合せを示すデータであっても、各画素についてのドット形成の有無を、単にドットの個数を表すデータである場合と同様に、極めて容易に決定することができる。このため、ドット形成有無を迅速に決定することができ、延いては画像を迅速に出力することが可能となるので好ましい。
【００２７】
こうした画像出力装置においては、互いに所定の位置関係にある８画素ないし１６画素ずつの画素がまとめられた画素群について、個数データを受け取ることとしてもよい。
【００２８】
画素群としてまとめる画素数が多くなるほど画素群の数は少なくなるので、個数データを迅速に受け取ることができる。一方、画素群にまとめる画素数があまりに多くなったのでは画質の悪化を引き起こすおそれが生じる。こうした点を踏まえると、経験上、８画素から１６画素ずつの画素を画素群としてまとめた場合に、最も良好な結果を得ることができる。すなわち、詳細には後述するが、画素群にまとめられる画素数を８画素から１６画素にしておけば、個数データのデータ量を、画素毎にドット形成の有無を表したデータの半分以下に低減することができ、迅速にデータを受け取ることができる。また、画素群にまとめられる複数の画素の位置関係は、例えば、主走査方向に４画素ずつ、副走査方向に２画素ずつといったように、互いに矩形形状を成すような位置関係としておけば、経験上、良好な画質を得ることが可能である。
【００２９】
また、従来技術が有する前述した課題の少なくとも一部を解決するために、本発明の第２の画像出力装置は次の構成を採用した。すなわち、
画像データに応じて出力媒体上にドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する個数データ生成手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する順序値取得手段と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶している対応関係記憶手段と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成するドット形成手段と
を備えることを要旨とする。
【００３０】
かかる本発明の画像出力装置においても、画像を複数の画素群に分割し、画素群内に形成されるドット個数を表す個数データを生成する。次いで、順序値および個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を参照しながら、画素群内の各画素についてのドット形成の有無を決定する。こうして決定したドット形成の有無に従って、出力媒体上にドットを形成することによって画像を出力する。
【００３１】
各画素についてのドット形成の有無を、このように個数データおよび順序値の組合せ毎に設定された対応関係を参照しながら決定してやれば、簡便に且つ迅速に決定することができる。このため、画像を迅速に出力することが可能であるとともに、高度な処理能力を有さない画像出力装置においても、十分に実用的な速度で画像を出力することが可能となる。
【００３２】
更に本発明は、上述した画像出力方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した画像出力方法に対応する本発明の第１のプログラムは、
画像データに所定の画像処理を施して、得られた結果に基づいてドットを形成することにより出力媒体上に画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する第１の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する第２の機能と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく第３の機能と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する第４の機能と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する第５の機能と
を実現することを要旨とする。
【００３３】
また、上記のプログラムに対応する本発明の第１の記録媒体は、
画像データに所定の画像処理を施して、得られた結果に基づいて出力媒体上にドットを形成することによって画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
互いに隣接する画素を所定個数ずつ画素群にまとめて前記画像を複数の画素群に分割し、該各々の画素群内に形成されるドットの個数を表す個数データを、前記画像データに基づいて生成する第１の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する第２の機能と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく第３の機能と、
前記個数データを生成した画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する第４の機能と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する第５の機能と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００３４】
更に、上述した画像出力方法に対応する本発明の第２のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る機能（Ａ）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する機能（Ｂ）と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく機能（Ｃ）と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する機能（Ｄ）と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する機能（Ｅ）と
を実現することを要旨とする。
【００３５】
また、上記のプログラムに対応する本発明の第２の記録媒体は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいて出力媒体上にドットを形成することにより画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
互いに隣接する画素が所定個数ずつ画素群としてまとめられた状態で、該画素群内に形成すべきドットの個数を表す個数データを、前記画像データとして受け取る機能（Ａ）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を取得する機能（Ｂ）と、
前記順序値および前記個数データの組合せと、該順序値を有する画素におけるドット形成の有無との対応関係を記憶しておく機能（Ｃ）と、
前記個数データを受け取った画素群内の各画素について、該個数データと前記順序値との組合せ毎に前記対応関係を参照することにより、ドット形成の有無を決定する機能（Ｄ）と、
前記決定したドット形成の有無に従って前記出力媒体上にドットを形成する機能（Ｅ）と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００３６】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現させれば、簡便に且つ迅速に画像を出力することが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
Ａ．発明の概要：
Ｂ．第１実施例：
Ｂ−１．装置構成：
Ｂ−２．第１実施例の画像印刷処理の概要：
Ｂ−３．個数データに基づいて各画素のドット形成有無を決定可能な原理：
Ｂ−４．第１実施例の個数データ生成処理：
Ｂ−５．第１実施例のドット形成有無決定処理：
Ｂ−６．第１実施例の変形例：
Ｃ．第２実施例：
Ｃ−１．第２実施例の画像印刷処理：
Ｃ−２．第２実施例の個数データ生成処理：
Ｃ−３．第２実施例のドット形成有無決定処理：
Ｃ−３−１．変換テーブルを参照せずにドット形成有無を決定する方法：
Ｃ−３−２．変換テーブルを参照するドット形成有無決定処理：
【００３８】
Ａ．発明の概要  ：
実施例についての詳細な説明に入る前に、図１を参照しながら、本発明の概要について説明しておく。図１は、印刷システムを例にとって、本発明の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ１０と、画像出力装置としてのプリンタ２０等から構成されており、コンピュータ１０に所定のプログラムがロードされて実行されると、コンピュータ１０およびプリンタ２０などが全体として、一体の画像出力システムとして機能する。プリンタ２０は、印刷媒体上にドットを形成することによって画像を印刷する。コンピュータ１０は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ２０が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ２０に供給する。
【００３９】
一般的な印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータで所定の画像処理を施すことにより、画像データを、画素毎にドット形成の有無を表すデータに変換する。次いで、得られたデータをプリンタに供給し、プリンタでは供給されたデータに従ってドットを形成することによって画像を印刷している。ここで、印刷しようとする画像の画素数が多くなると、それに伴って画像データのデータ量も大きくなるので、画像処理やデータの取り扱いのために要する時間が増加してしまい、画像を迅速に印刷することが困難となる。
【００４０】
こうした点に鑑みて、図１に例示した印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータ１０では、画像を構成する画素を互いに隣接した所定個数ずつ画素群としてまとめることで、画像を複数の画素群に分割する。そして、各画素群について、画素群内に形成するドット個数を表す個数データを生成する。コンピュータ１０に設けられた個数データ生成モジュールは、画像を複数の画素群に分割して、各画素群について個数データを生成する。こうして生成された個数データは、コンピュータ１０に設けられた個数データ供給モジュールからプリンタ２０に向かって供給される。
【００４１】
プリンタ２０に設けられたドット形成有無決定モジュールは、個数データ供給モジュールから供給された個数データを受け取ると、画素群内の各画素についてドット形成の有無を決定する。次いで、ドット形成モジュールが、各画素について決定されたドット形成の有無に従って、印刷媒体上にドットを形成することによって画像を印刷する。
【００４２】
ここで、画素毎にドット形成の有無を表すデータに比べれば、画素群毎の個数データは遙かに小さなデータ量とすることができる。従って、コンピュータ１０から画素毎にドット形成の有無を表したデータをプリンタ２０に供給する代わりに、画素毎の個数データを供給してやれば、プリンタ２０は極めて迅速にデータを受け取ることが可能である。
【００４３】
また、プリンタ２０は、個数データを受け取ると、次のようにして、画素群内に含まれる各画素についてのドット形成の有無を決定する。先ず、画素群内の各画素について、画素群内でドットが形成される順番を示す順序値を、順序値記憶モジュールに記憶しておく。また、順序値および個数データの組合せと、該順序値を有する画素についてのドット形成の有無との対応関係を、対応関係記憶モジュールに予め記憶しておく。そして、画素群についての個数データを受け取ると、画素群内の各画素についての順序値を取得して、個数データと順序値との組合せ毎に対応関係を参照することによって、各画素についてのドット形成の有無を決定する。このように対応関係を参照しながらドット形成の有無を決定してやれば、個数データを迅速に変換することが可能である。従って、コンピュータ１０から個数データを迅速に受け取ることが可能であることと相まって、迅速に画像を印刷することが可能となる。以下では、こうした印刷システムを例にとって、本発明の各種実施例について詳細に説明する。
【００４４】
Ｂ．第１実施例  ：
Ｂ−１．装置構成  ：
図２は、本実施例の画像処理装置としてのコンピュータ１００の構成を示す説明図である。コンピュータ１００は、ＣＰＵ１０２を中心に、ＲＯＭ１０４やＲＡＭ１０６などを、バス１１６で互いに接続して構成された周知のコンピュータである。
【００４５】
コンピュータ１００には、フレキシブルディスク１２４やコンパクトディスク１２６等のデータを読み込むためのディスクコントローラＤＤＣ１０９や、周辺機器とデータの授受を行うための周辺機器インターフェースＰＩＦ１０８、ＣＲＴ１１４を駆動するためのビデオインターフェースＶＩＦ１１２等が接続されている。ＰＩＦ１０８には、後述するカラープリンタ２００や、ハードディスク１１８等が接続されている。また、デジタルカメラ１２０やカラースキャナ１２２等をＰＩＦ１０８に接続すれば、デジタルカメラ１２０やカラースキャナ１２２で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードＮＩＣ１１０を装着すれば、コンピュータ１００を通信回線３００に接続して、通信回線に接続された記憶装置３１０に記憶されているデータを取得することもできる。
【００４６】
図３は、本実施例のカラープリンタ２００の概略構成を示す説明図である。カラープリンタ２００はシアン，マゼンタ，イエロ，ブラックの４色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら４色のインクに加えて、染料または顔料濃度の低いシアン（淡シアン）インクと、染料または顔料濃度の低いマゼンタ（淡マゼンタ）インクとを含めた合計６色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク，マゼンタインク，イエロインク，ブラックインク，淡シアンインク，淡マゼンタインクのそれぞれを、Ｃインク，Ｍインク，Ｙインク，Ｋインク，ＬＣインク，ＬＭインクと略称することがあるものとする。
【００４７】
カラープリンタ２００は、図示するように、キャリッジ２４０に搭載された印字ヘッド２４１を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ２４０をキャリッジモータ２３０によってプラテン２３６の軸方向に往復動させる機構と、紙送りモータ２３５によって印刷用紙Ｐを搬送する機構と、ドットの形成やキャリッジ２４０の移動および印刷用紙の搬送を制御する制御回路２６０などから構成されている。
【００４８】
キャリッジ２４０には、Ｋインクを収納するインクカートリッジ２４２と、Ｃインク，Ｍインク，Ｙインクの各種インクを収納するインクカートリッジ２４３とが装着されている。インクカートリッジ２４２，２４３をキャリッジ２４０に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド２４１の下面に設けられた各色毎のインク吐出用ヘッド２４４ないし２４７に供給される。
【００４９】
図４は、インク吐出用ヘッド２４４ないし２４７におけるインクジェットノズルＮｚの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、Ｃ，Ｍ，Ｙ，Ｋの各色のインクを吐出する４組のノズル列が形成されており、１組のノズル列あたり４８個のノズルＮｚが、一定のノズルピッチｋで配列されている。
【００５０】
制御回路２６０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、ＰＩＦ（周辺機器インターフェース）等がバスで相互に接続されて構成されている。制御回路２６０は、キャリッジモータ２３０および紙送りモータ２３５の動作を制御することによってキャリッジ２４０の主走査動作および副走査動作を制御するとともに、コンピュータ１００から供給されるデータに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路２６０の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ２００はカラー画像を印刷することができる。
【００５１】
また、インク滴を吐出するためにノズルに供給される駆動信号波形を制御してやれば、吐出されるインク滴の大きさを変更して、大きさの異なるインクドットを形成することもできる。このようにしてインクドットの大きさを制御すれば、印刷しようとする画像の領域に応じて異なる大きさのインクドットを使い分けて形成することで、より高画質の画像を印刷することも可能となる。
【００５２】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡（バブル）を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【００５３】
以上のようなハードウェア構成を有するカラープリンタ２００は、キャリッジモータ２３０を駆動することによって、各色のインク吐出用ヘッド２４４ないし２４７を印刷用紙Ｐに対して主走査方向に移動させ、また紙送りモータ２３５を駆動することによって、印刷用紙Ｐを副走査方向に移動させる。制御回路２６０は、キャリッジ２４０の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ２００は印刷用紙上にカラー画像を印刷している。
【００５４】
Ｂ−２．第１実施例の画像印刷処理の概要  ：
以下では、上記のようなコンピュータ１００およびカラープリンタ２００が、画像を印刷するために、それぞれの内部で行われる画像処理（画像印刷処理）について説明する。ここでは、理解の便宜を図るため、初めに画像印刷処理の全体像について簡単に説明し、次に、こうした画像印刷処理が可能である原理について説明する。そして最後に、それぞれの処理の詳細な内容について説明する。
【００５５】
尚、以下では、画像印刷処理の前半部分はコンピュータ１００で実施され、後半部分はカラープリンタ２００で実施されるものとして説明するが、コンピュータ１００が行う処理をカラープリンタ２００の内部で実施したり、あるいはデジタルカメラ１２０など、画像データを生成する機器の内部で実施することとしてもよい。
【００５６】
図５は、第１実施例の画像印刷処理の全体的な流れを示すフローチャートである。以下では、図５を参照しながら、画像印刷処理の全体像について簡単に説明する。第１実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ１００が画像データの読み込みを開始する（ステップＳ１００）。ここでは、画像データはＲＧＢカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについても同様に適用することができる。また、カラープリンタに限らず単色プリンタについても同様に適用することが可能である。
【００５７】
カラー画像データの読み込みに続いて、色変換処理を行う（ステップＳ１０２）。色変換処理とは、Ｒ，Ｇ，Ｂの階調値の組合せによって表現されているＲＧＢカラー画像データを、印刷のために使用されるインク各色についての階調値の組合せによって表現された画像データに変換する処理である。前述したように、カラープリンタ２００はＣ，Ｍ，Ｙ，Ｋの４色のインクを用いて画像を印刷している。そこで、第１実施例の色変換処理ではＲＧＢ各色によって表現された画像データを、Ｃ，Ｍ，Ｙ，Ｋの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル（ＬＵＴ）と呼ばれる３次元の数表を参照することで行う。ＬＵＴには、ＲＧＢカラー画像データに対して、色変換によって得られるＣ，Ｍ，Ｙ，Ｋ各色の階調値が予め記憶されている。ステップＳ１０２の処理では、このＬＵＴを参照することにより、ＲＧＢカラー画像データをＣ，Ｍ，Ｙ，Ｋ各色の画像データに迅速に色変換することが可能となっている。
【００５８】
色変換処理を終了すると、解像度変換処理を開始する（ステップＳ１０４）。解像度変換処理とは、画像データの解像度を、プリンタ２００が画像を印刷する解像度（印刷解像度）に変換する処理である。画像データの解像度が印刷解像度よりも低い場合は、補間演算を行って画素間に新たな画像データを生成し、逆に画像データの解像度が印刷解像度よりも高い場合には、一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に一致させる処理を行う。
【００５９】
以上のようにして解像度を印刷解像度に変換したら、コンピュータ１００は、個数データ生成処理を開始する（ステップＳ１０６）。個数データ生成処理の詳細な内容は後ほど詳しく説明することとして、ここでは概要のみを説明する。個数データ生成処理では、隣接する画素を所定個数ずつ画素群としてまとめることにより、１つ画像を複数の画素群に分割する。そして、それぞれの画素群の中で形成すべきドットの個数を表すデータ、すなわち個数データを画素群毎に決定する。一般に、ある画素にドットが形成されるか否かは、その画素の画像データに依存して決まるから、画素群内に形成されるドットの個数を表す個数データについても、画素群についての画像データに基づいて決定することができる。次いで、各画素群について決定した個数データを、カラープリンタ２００に向かって出力する。個数データ生成処理では、このようにして、各画素についての画像データに基づいて個数データを画素群毎に生成した後、カラープリンタ２００に供給する処理を行う。
【００６０】
カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から供給された個数データを受け取ると、ドット形成有無決定処理を開始する（ステップＳ１０８）。詳細な処理内容については後述するが、ドット形成有無決定処理では大まかには次のような処理を行う。上述したように、コンピュータ１００から供給される個数データは、画素群に形成すべきドットの個数を表すデータであり、その個数のドットを画素群内のいずれの画素に形成するかについては未確定な状態となっている。そこで、画像を印刷するに先立って、画素群内の各画素についてドット形成の有無を決定しておく必要がある。ドット形成有無決定処理では、画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を記憶しておき、該順序値および個数データに基づいてドット形成の有無を決定することで、迅速に決定することが可能となっている。ドット形成有無を決定する処理の詳細についても後述する。
【００６１】
以上のようにして、画素群内の各画素についてドット形成の有無を決定したら、決定したドット形成の有無に従って、出力媒体上にドットを形成する処理を行う（ステップＳ１１０）。すなわち、図３を用いて説明したように、キャリッジ２４０の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
【００６２】
このように、第１実施例の画像印刷処理では、コンピュータ１００からカラープリンタ２００に向かって、画素群に形成すべきドット個数のデータのみを供給しており、画素群に含まれる各画素についてのドット形成の有無に関するデータまでは供給していない。画素毎にドット形成の有無を表すデータに比べれば、画素群に形成するドットの個数は遙かに少ないデータ量で表現することができることから、このような方法を採用することで、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを供給することが可能となる。
【００６３】
例えば、１つの画素群に８つの画素がまとめられており、形成可能なドットは１種類であるとする。この場合、各画素はドットが形成されるか否かのいずれかの状態しか取り得ないから、画素あたり１ビットのデータ長があれば表現することができる。画素群には８つの画素が含まれているから、画素群内の全画素についてドット形成の有無を表現しようとすると、８ビットのデータ長が必要となる。一方、画素群内に形成されるドットの個数は、０個〜８個のいずれかの９通りしか取り得ない。９通りであれば４ビットあれば表現することができるから、画素群に形成するドットの個数は４ビットのデータ長で表現可能となる。このように、画素毎にドット形成の有無を表すデータに比べて、画素群内に形成されるドット個数は遙かに少ないデータ量で表現することができるのである。
【００６４】
このように、画素毎にドット形成の有無を表すデータに比べれば、画素群に形成するドットの個数は遙かに少ないデータ量で表現することが可能である。第１実施例の画像印刷処理では、コンピュータ１００からカラープリンタ２００に向かって、画素群に形成すべきドット個数のデータのみを供給することにより、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを供給することが可能となる。
【００６５】
また、カラープリンタ２００は、コンピュータ１００から画素群毎に個数データを受け取ると、画素群内の各画素についてのドット形成の有無を、後述する方法を用いて決定することで、極めて迅速に決定することが可能となっている。加えて、詳細には後述するが、各画素についてのドット形成の有無を適切に決定してやれば、ドット個数のデータのみを供給した場合でも、画質が悪化することはない。特に、後述する所定の条件においては、画素毎にドット形成の有無を表すデータを供給した場合と全く同じ結果を得ることが可能である。
【００６６】
Ｂ−３．個数データに基づいて各画素のドット形成有無を決定可能な原理  ：
以下では、上述した方法を採用した場合、すなわち、コンピュータ１００からは画素群に形成するドット個数のデータを供給し、このドット個数のデータに基づいて、各画素についてのドット形成の有無をカラープリンタ２００側で決定した場合でも、画質を悪化させることなく画像を印刷することが可能な原理について説明する。
【００６７】
説明の都合上、先ず初めに、ディザ法について説明する。ディザ法とは、画像データを画素毎にドット形成の有無を表すデータに変換するために用いられる代表的な手法である。この手法では、ディザマトリックスと呼ばれるマトリックスに閾値を設定しておき、画像データの階調値とディザマトリックスに設定されている閾値とを画素毎に比較して、画像データの階調値の方が大きい画素についてはドットを形成すると判断し、そうでない画素についてはドットを形成しないと判断する。このような判断を画像中の全画素について行えば、画像データを画素毎にドット形成の有無を表すデータに変換することができる。
【００６８】
図６は、ディザマトリックスの一部を概念的に例示した説明図である。図示したマトリックスには、横方向（主走査方向）に１２８画素、縦方向（副走査方向）に６４画素、合計８１９２個の画素に、階調値１〜２５５の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が１〜２５５の範囲から選択されているのは、本実施例では画像データが階調値０〜２５５の値を取り得る１バイトデータであるとしていることに加えて、画像データの階調値と閾値とが等しい場合には、その画素にはドットを形成するものと判断していることによる。
【００６９】
すなわち、ドットが形成されるのは画像データの階調値が閾値よりも大きい画素に限る（すなわち階調値と閾値が等しい画素にはドットは形成しない）とした場合、画像データの取り得る最大階調値と同じ値の閾値を有する画素には、決してドットが形成されることはない。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最大階調値を除いた範囲とする。逆に、画像データの階調値と閾値が等しい画素にもドットを形成するとした場合、画像データの取り得る最小階調値と同じ値の閾値を有する画素には、常にドットが形成されてしまうことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最小階調値を除いた範囲とする。本実施例では、画像データの取り得る階調値が０〜２５５であり、画像データと閾値が等しい画素にはドットを形成するとしていることから、閾値の取り得る範囲を１〜２５５としておくのである。尚、ディザマトリックスの大きさは、図６に例示したような大きさに限られるものではなく、縦と横の画素数が同じマトリックスも含めて種々の大きさとすることができる。
【００７０】
図７は、ディザマトリックスを参照しながら、各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成の有無を判断するに際しては、先ず、判断しようとする画素を選択し、この画素についての画像データの階調値と、ディザマトリックス中で対応する位置に記憶されている閾値と比較する。図７中に示した細い破線の矢印は、画像データの階調値と、ディザマトリックスに記憶されている閾値とを、画素毎に比較していることを模式的に表したものである。例えば、画像データの左上隅の画素については、画像データの階調値は９７であり、ディザマトリックスの閾値は１であるから、この画素にはドットを形成すると判断する。図７中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を概念的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は９７、ディザマトリックスの閾値は１７７であり、閾値の方が大きいので、この画素についてはドットを形成しないと判断する。ディザ法では、こうしてディザマトリックスを参照しながら、画素毎にドットを形成するか否かを判断することで、画像データを画素毎にドット形成の有無を表すデータに変換する。
【００７１】
図８は、ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。図８（ａ）は、画像データの一部を拡大して示したものであり、図中の小さな矩形は画素を、そして、それぞれの矩形の中に表示された数値は画像データの階調値を表している。図示されているように、画像データは、隣接する画素間では近似する（若しくは同一の）階調値が割り当てられる傾向がある。こうした傾向は、高画質化の要請から画像データの解像度は高くなる傾向にあるが、隣接する画素間で近似若しくは同一の階調値が割り当てられる傾向は、画像データの解像度が高くなるほど顕著となっている。
【００７２】
図８（ｂ）は、ディザマトリックスの対応する位置に閾値が設定されている様子を示している。図８（ａ）に示した画像データの階調値と、図８（ｂ）に示したディザマトリックスの閾値とを画素毎に比較することによって、ドット形成の有無を判断する。図８（ｃ）は、こうして画素毎にドット形成の有無を判断した結果を示しており、図中で斜線を付した画素がドットを形成すると判断された画素である。
【００７３】
ここで、隣接する画素を所定数ずつ画素群としてまとめ、画素群内でドットを形成すると判断された画素の個数を数えることを考える。一例として、主走査方向（図８中では横方向）に４画素分、副走査方向（図８中では縦方向）に２画素分の、合計８画素ずつを画素群としてまとめるものとする。図８（ｄ）は、こうしてまとめられたそれぞれの画素群について、ドットを形成すると判断された画素を数えることによって得られたドット個数を示している。第１実施例の画像印刷処理において、コンピュータ１００からカラープリンタ２００に供給されるのは、このような画素群毎の個数のデータである。個数データには、ドットを形成する画素位置に関する情報は含まれていないが、次のようにすれば、個数データからドットを形成する画素位置の情報を復元して、画素毎にドット形成の有無を表すデータを生成することができる。
【００７４】
図９は、個数のデータから、画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。図９（ａ）は、図８で画素群毎に形成するドットの個数を数えて得られた値を表している。また、図９（ｂ）は、図８で画素毎にドット形成の有無を判断するために参照したディザマトリックスを示している。前述したようにディザ法では、画像データの階調値と、ディザマトリックスの対応する画素位置に設定された閾値とを比較して、画像データの階調値の方が大きければ、その画素にはドットを形成すると判断しており、ディザマトリックスの閾値が小さくなるほどドットが形成され易くなる。このことから、ディザマトリックスはドットが形成される画素の序列を表していると考えることができる。
【００７５】
ディザマトリックスの有するこうした性質に着目すれば、画素群内に形成されるドットの個数から、ドットが形成される画素位置を決定することができる。例えば、図９（ａ）に示した一番左上隅の画素群について説明すると、この画素群に形成されるドット個数は３である。また、図９（ｂ）に示したディザマトリックスを参照すれば、この画素群内では、左上隅にある画素位置すなわち閾値「１」が設定されている画素位置が最もドットが形成され易い画素であると言える。従って、この画素群内で３つ形成されるドットの中の１つは、左上隅の画素に形成されているものと考えることができる。同様にして、残りの２つのドットは、この画素群内で２番目にドットが形成され易い画素（すなわち図９（ｂ）のディザマトリックスで閾値「４２」が設定されている画素）と、３番目にドットが形成され易い画素（すなわち閾値「５８」が設定されている画素）とに形成されるものと考えることができる。
【００７６】
もちろん、ドット形成の有無は、ディザマトリックスに設定された閾値だけでなく、画像データの階調値によっても影響されるから、画像データの階調値が極端に大きければ、より小さな閾値が設定されている画素よりも先にドットが形成されることも起こり得る。しかし、前述したように画像データには、隣接する画素には近似する（若しくは同一の）階調値が割り当てられる傾向があるから、ほとんどの場合はドットが形成され易い画素（すなわちディザマトリックスに設定された閾値の小さな画素）からドットが形成されると考えることができる。
【００７７】
図９（ａ）に示した他の画素群についても、同様にして、ドット個数とディザマトリックスの閾値とに基づいて、ドットを形成する画素位置を決定することができる。例えば、図９（ａ）の上述した画素群の下にある画素群（左端上から２番目の画素群）については、ドット個数は３個であるから、図９（ｂ）のディザマトリックスを参照すれば、これら３つのドットは、閾値「２２」が設定された画素と、閾値「３３」が設定された画素と、閾値「９１」が設定された画素とに、それぞれ形成されると考えることができる。
【００７８】
図９（ａ）に示した４つの画素群について、このようにして個数データからドットを形成する画素位置を決定すると、図９（ｃ）に示した結果を得ることができる。図９（ｃ）中で、斜線を付して示した画素はドットを形成すると判断された画素である。図９（ｃ）と図８（ｃ）とを比較すれば明らかなように、個数データから決定した画素位置は、画素毎に決定した画素位置と一致している。このことは、ディザマトリックスを参照して画素毎にドット形成の有無を判断し、画素群内に形成されるドットの個数のみを記憶しておけば、画素位置までは記憶していなくても、ディザマトリックスとドット個数とから、ドットが形成される画素位置を復元可能なことを示している。このことから、コンピュータ１００から画素群毎の個数データを供給し、カラープリンタ２００側で個数データからドットを形成する画素位置を決定した場合でも、画素位置を適切に決定して、画質を悪化させることなく画像を印刷することが可能となるのである。
【００７９】
また、個数データからドットを形成する画素位置を適切に決定するためには、画像データの階調値が画素群内で大きく異なっていなければ良い。前述したように、画像データは隣接する画素間では近似した階調値を有する特性があるから、こうした条件はほとんどの場合に成立しており、従って、個数データのみをカラープリンタ２００に供給した場合でも、画質を悪化させることなく画像を印刷することができるのである。
【００８０】
特に、次の２つの条件が満足される場合には、画像データの階調値とディザマトリックスの閾値とを比較してドット形成の有無を画素毎に判断した結果と、完全に同じ画素位置にドットを形成可能なことが保証される。先ず１つ目の条件は、画素群内で各画素の階調値が同一の値を有することであり、２つ目の条件は、コンピュータ１００側で画素毎にドット形成の有無を判断する際に参照したディザマトリックスと、カラープリンタ２００側で個数データから画素位置を決定するために参照するディザマトリックスとが、同一のマトリックスであることである。
【００８１】
尚、図７で説明したディザ法においては、ディザマトリックスに設定された閾値と画像データとの階調値とを比較して、いずれの値が大きいかによってドット形成の有無を判断している。これに対して、個数データから画素群内でドットが形成される画素位置を決定する場合には、図９を用いて説明したように、ドットが形成される画素位置を、ディザマトリックスに設定された閾値の小さな画素から順番に決定している。すなわち、画素位置を決定するためには、閾値の値まで必要なわけではなく、画素群内でドットが形成される順番が分かっていれば良い。このことから、図９（ｂ）に示すディザマトリックスの代わりに、図９（ｄ）に示すような画素群内の各画素について、ドットが形成される順番を示す値（順序値）が設定されたマトリックス（本明細書中では、このようなマトリックスを順序値マトリックスと呼ぶものとする）を記憶しておき、画素群毎に順序値マトリックスを参照しながら、個数データから画素位置を決定することとも可能である。
【００８２】
また、以上の説明では、図９に示したように、ディザマトリックスに基づいて生成された複数種類の順序値マトリックスを予め記憶しておき、画素群の個数データを受け取ると、その画素群に対応した順序値マトリックスを用いて、各画素についてのドット形成の有無を決定するものとして説明した。しかし、より簡便には次のようにしてドット形成の有無を決定しても良い。すなわち、予め複数の順序値マトリックスを記憶しておき、個数データを受け取ると、画素群毎にランダムに選択した１の順序値マトリックスを用いて、各画素についてのドット形成の有無を決定しても良い。更に、より簡便には、順序値マトリックスを１組だけ記憶しておき、このマトリックスを用いて各画素についてのドット形成の有無を決定することも可能である。
【００８３】
Ｂ−４．第１実施例の個数データ生成処理  ：
以下では、図５に示した第１実施例の画像印刷処理において、画像データから個数データを生成する処理（図５のステップＳ１０６）について説明する。図１０は、第１実施例の個数データ生成処理の流れを示すフローチャートである。以下、フローチャートに従って、第１実施例の個数データ生成処理について説明する。
【００８４】
第１実施例の個数データ生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成する（ステップＳ２００）。ここでは、主走査方向に４画素分、副走査方向に２画素分の合計８つの画素を画素群にまとめるものとする。尚、画素群としてまとめる画素は、このように矩形状に縦横の位置が揃った画素である必要はなく、互いに隣接し且つ所定の位置関係にあればどのような画素を画素群としてまとめても良い。
【００８５】
次いで、画素群としてまとめた複数の画素の中から、処理対象として着目する画素（着目画素）を１つ設定する（ステップＳ２０２）。そして、着目画素に割り当てられた画像データの階調値とディザマトリックスの閾値とを比較することにより、着目画素についてのドット形成の有無を判断する（ステップＳ２０４）。すなわち、図７を用いて前述したように、画像データの方が大きい画素にはドットを形成するものと判断し、逆にディザマトリックスの閾値の方が大きい画素についてはドットを形成しないと判断する。
【００８６】
次いで、画素群内の全ての画素について以上のような処理を行ったか否かを判断し（ステップＳ２０６）、画素群中に未処理の画素が残っている場合は（ステップＳ２０６：ｎｏ）、ステップＳ２０２に戻って続く一連の処理を行う。こうして画素群内の全ての画素について、ドット形成有無の判断を終了したら（ステップＳ２０６：ｙｅｓ）、処理した画素群についての個数データを生成する（ステップＳ２０８）。ここでは、画素群内に形成されるドットの個数を計数し、得られたドットの個数を個数データとする。例えば、図８に示した画像データを処理するものとして説明すると、画像中の一番左上隅にある画素群については、画素群内に形成されるドットは３個であるから、個数データは「３」となる。
【００８７】
以上のようにして、１つの画素群についての処理を終了したら、画像の全画素について処理を終了したか否かを判断し（ステップＳ２１０）、未処理の画素が残っていれば、ステップＳ２００に戻って新たな画素群を生成した後、続く一連の処理を行って、その画素群の個数データを生成する（ステップＳ２０８）。こうした処理を繰り返して行くことにより、画像中の全画素についての処理を終了したら（ステップＳ２１０：ｙｅｓ）、各画素群について得られた個数データをカラープリンタ２００に向かって出力して（ステップＳ２１２）、図１０に示した個数データ生成処理を終了する。その結果、図８（ｄ）に示すような、各画素群についての個数データがカラープリンタ２００に供給されることになる。
【００８８】
Ｂ−５．第１実施例のドット形成有無決定処理  ：
次に、コンピュータ１００から供給された個数データに基づいて、画素群内の各画素についてドット形成の有無を決定する処理（図５のステップＳ１０８）について説明する。図１１は、第１実施例のドット形成有無決定処理の流れを示すフローチャートである。かかる処理は、カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵによって実行される処理である。また、図１２は、第１実施例のドット形成有無決定処理において、各画素についてのドット形成の有無が決定される様子を概念的に示した説明図である。以下では、図１２を参照しながら、図１１に示すフローチャートに従って、第１実施例のドット形成有無決定処理の内容について説明する。
【００８９】
ドット形成有無決定処理を開始すると、先ず初めに、画素群を１つ選択し（ステップＳ３００）、その画素群の個数データを取得する（ステップＳ３０２）。ここでは、図１２（ａ）に示すような個数データが供給されたものとする。
【００９０】
次いで、選択した画素群に含まれる各画素の中から対象とする画素を１つ選択し（ステップＳ３０４）、該画素群内で対象画素にドットが形成される順番を示す値（順序値）を取得する（ステップＳ３０６）。対象画素の順序値は、図１２（ｂ）に示すような、予め設定されている順序値マトリックスを参照することで容易に取得することができる。図１２（ｂ）に例示した順序値マトリックスには、画素群を構成する各画素の画素位置について、順序値が予め設定されている。例えば、画素群内で一番左上隅にある画素については、順序値「１」が設定されており、その画素の右隣の画素については、順序値「６」が設定されている。ステップＳ３０６では、このような順序値マトリックスを参照して、対象画素の位置に設定されている順序値を取得する。尚、説明が煩雑となることを避けるために、ここでは、順序値マトリックスは１組のみが記憶されており、常に同じ順序値マトリックスを用いて順序値を得るものとして説明するが、順序値マトリックスを複数組記憶しておき、画素群毎に順序値マトリックスを切り換えながら、対象画素の順序値を取得することとしても良い。
【００９１】
こうして順序値を取得したら、変換テーブルを参照することによって、対象画素についてのドット形成の有無を決定する（ステップＳ３０８）。図１３は、対象画素についてのドット形成の有無を決定するために参照される変換テーブルを概念的に示した説明図である。図示されているように、変換テーブルには、順序値と個数データとの組合せに対応付けて、ドット形成の有無が設定されている。ここでは、画素群は８つの画素から構成されているから、順序値は１〜８までの値を取り、個数データは０〜８までの値を取る。従って、変換テーブルには、これらを組合せた７２通りの組合せに対応付けて、ドット形成の有無を示す値が設定されている。図１３に示した例では、ドットを形成する組合せに「１」が、ドットを形成しない組合せには「０」が設定されている。
【００９２】
一例として、図１２に示した画素群内で一番左上隅にある画素について説明すると、図１２（ｂ）に示すように順序値は「１」であり、個数データは図１２（ａ）に示したように「３」である。図１３の変換テーブルを参照すると、順序値「１」、個数データ「３」の組合せに対して設定されている値は「１」、すなわち、この画素についてはドットを形成するものと決定することができる。このように、図１１のステップＳ３０８では変換テーブルを参照することで、画素群についての個数データと対象画素の順序値とから、対象画素についてのドット形成の有無を直ちに決定するのである。
【００９３】
こうして、対象画素として選択した１つの画素についてドット形成の有無を決定したら、選択した画素群内の全画素について、ドット形成の有無を決定したか否かを判断する（ステップＳ３１０）。そして、画素群内で未だドット形成の有無を決定していない画素が残っている場合は（ステップＳ３１０：ｎｏ）、ステップＳ３０４に戻って、画素群の中から新たな画素を対象画素として選択し、続く一連の処理を行う。
【００９４】
こうした処理を繰り返し、画素群内の全画素についてドット形成の有無を決定したと判断されたら（ステップＳ３１０：ｙｅｓ）、今度は、個数データの供給された全画素群について処理を終了したか否かを判断する（ステップＳ３１２）。そして、未処理の画素群が残っていれば（ステップＳ３１２：ｎｏ）、ステップＳ３００に戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返すことにより、コンピュータから供給された個数データは、画素毎にドット形成の有無を示すデータに変換されていく。そして、全ての画素群について処理が終了したら（ステップＳ３０６：ｙｅｓ）、図１１に示したドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【００９５】
以上に説明した第１実施例のドット形成有無決定処理においては、画素群の個数データを受け取ると、順序値マトリックスを参照することによって対象画素の順序値を取得し、得られた順序値と個数データを用いて変換テーブルを参照するという極めて単純な方法によって、ドット形成の有無を決定することが可能である。従って、画素毎にドット形成の有無を表すデータを、個数データから極めて迅速に生成することが可能となる。
【００９６】
更に、ドット形成の有無を決定する処理は、記憶されているデータを参照しているだけなので、専用の論理回路を組み込んだチップを用いてハードウェア的に実行することも容易である。ドット形成の有無を決定する処理をハードウェア的に実行してやれば、より一層高速に処理することが可能であり、それだけ画像を迅速に印刷することができる。
【００９７】
加えて、近年のコンピュータでは処理の高速化を図るために、いわゆるパイプライン処理と呼ばれる技術が活用されているが、その一方で、条件分岐を含む処理に対しては、パイプライン処理の技術を適用しても、さほど処理を高速化することができず、返って処理速度が低下する場合もあることが知られている。上述した第１実施例のドット形成有無決定処理は、記憶されているデータを参照する処理がほとんどであり、条件分岐が含まれていないので、こうした観点からも、高速処理に適した処理であると言うことができる。
【００９８】
このように、上述した第１実施例のドット形成有無決定処理は、迅速な処理を可能とする種々の要素を備えているため、どのような条件においても、個数データを、画素毎にドット形成の有無を表すデータに迅速に変換することができ、延いては画像を迅速に印刷することが可能となる。
【００９９】
Ｂ−６．第１実施例の変形例  ：
上述した第１実施例のドット形成有無決定処理においては、予め１組または複数組の順序値マトリックスを設定しておき、常に同じ順序値マトリックスを参照して、あるいは参照する順序値マトリックスをランダムに切り換えながら、各画素についてのドット形成の有無を決定するものとして説明した。しかし、図８および図９を用いて前述したように、順序値マトリックスをディザマトリックスに基づいて生成し、画素群の位置に応じて適切な順序値マトリックスを参照しながらドット形成の有無を決定してやれば、より適切にドット形成の有無を決定することができ、従って高画質な画像を印刷することが可能となる。以下では、こうした第１実施例における変形例のドット形成有無決定処理について説明する。
【０１００】
図１４は、変形例のドット形成有無決定処理の流れを示すフローチャートである。以下、フローチャートに従って説明する。変形例のドット形成有無決定処理においても、先ず初めに画素群を１つ選択し（ステップＳ４００）、その画素群の個数データを取得する（ステップＳ４０２）。次いで、複数組記憶されている順序値マトリックスの中から、選択した画素群に対応する順序値マトリックスを読み込む（ステップＳ４０４）。かかる処理について、図１５および図１６を参照しながら詳しく説明する。
【０１０１】
図１５は、変形例のドット形成有無決定処理において参照される複数の順序値マトリックスを生成する方法について示した説明図である。前述したように、１つの画素群は、主走査方向には４画素ずつ、副走査方向には２画素ずつの合計８つの画素から構成されているとしているから、これと対応して、ディザマトリックスの閾値も、主走査方向に４画素分ずつ、副走査方向に２画素分ずつの合計８画素分ずつの閾値をブロックにまとめてやる。図１５（ａ）は、ディザマトリックスの左上隅にある８画素分の閾値をブロックにまとめている様子を概念的に示した説明図である。ここではディザマトリックスは、図６に示したように、主走査方向には１２８画素分、副走査方向には６４画素分の大きさを有するものとしているから、主走査方向に４画素分、副走査方向に２画素分ずつの画素をブロックにまとめれば、ディザマトリックスは主走査方向および副走査方向にそれぞれ３２ブロックずつ、全体では１０２４個のブロックに分割されることになる。
【０１０２】
これらのブロックに、図１５（ｂ）に示すように、１番から１０２４番までの通し番号を付しておく。そして、１番から１０２４番までの各ブロックから１組ずつ順序値マトリックスを生成する。図１５（ｃ）は、通し番号１番のブロックから、順序値マトリックスを生成している様子を示した説明図である。図１５（ｃ）の左側半分には、通し番号１番のブロックに含まれるディザマトリックスの閾値が示されている。図７を用いて前述したように、ディザ法では画像データの階調値とディザマトリックスの閾値とを比較して、画像データの方が大きい場合にドットを形成すると判断しているから、ディザマトリックスの閾値が小さい画素ほどドットが形成され易くなる。従って、図１５（ｃ）に示した１番のブロックの中で１番初めにドットが形成される画素は、閾値「１」が設定された画素と考えることができる。そこで、この画素には順序値として「１」を設定する。同様に、２番目にドットが形成される画素は、２番目に小さな閾値である閾値「４２」が設定された画素と考えることができる。そこで、この画素には順序値「２」を設定する。このようにして、ブロック内に設定されている閾値の小さな画素から順番に、順序値「１」から順序値「８」までを決定してやれば、図１５（ｃ）の右側半分に示した通し番号１番の順序値マトリックスを得ることができる。
【０１０３】
図１５（ｄ）は、同様にして、ブロック内で小さな閾値が設定されている画素から順番に、順序値「１」から順序値「８」までを設定することで、通し番号２番の順序値マトリックスを生成した様子を示している。図１５（ｂ）に示した通し番号「１」番から通し番号「１０２４」番までの全てのブロックについて、以上のような操作を行うことにより、通し番号「１」番から「１０２４」番までの順序値マトリックスを生成して記憶しておく。
【０１０４】
図１４のステップＳ４０４では、これら「１」番から「１０２４」番の順序値マトリックスの中から、ドット形成の有無を決定しようとする画素群に対応するマトリックスを選択して読み込む処理を行う。図１６は、画素群に対応する順序値マトリックスを選択する方法を示した説明図である。今、ドット形成の有無を決定しようとしている画素群が、図１６（ａ）に示すように、画像の一番左上隅を基準として主走査方向にｎ個目の画素群、副走査方向にｍ個目の画素群の位置にあるとする。また、このような画素群の位置を、座標値（ｎ，ｍ）によって表すものとする。
【０１０５】
ここで、ディザマトリックスの大きさは、通常は、画像のようには大きくはない。このためディザ法では、１つのディザマトリックスを、画像データに対して少しずつ位置をずらしながら繰り返して使用している。これと同じ理由から、図１４に示したドット形成有無決定処理においても、１つのディザマトリックスを少しずつ移動させながら繰り返して使用する。ディザマトリックスを移動させる方法は、ディザ法においては種々の方法が使用されており、ドット形成有無を決定する場合も種々の移動方法を適用することができるが、ここでは説明の便宜から、最も単純な方法すなわちディザマトリックスを主走査方向に移動させるものとして説明する。図１６（ｂ）には、ディザマトリックスを主走査方向に少しずつ移動させながら、繰り返して使用する様子が概念的に示されている。
【０１０６】
図１５（ａ）に示したように、ディザマトリックスを分割するブロックの大きさは、個数データを生成した画素群の大きさと一致しているから、図１６（ｂ）に示すようにディザマトリックスを移動させていくと、ディザマトリックスの各ブロックは画素群の位置に一致する。換言すれば、全ての画素群には、ディザマトリックスを分割するいずれかのブロックが適用されることになる。
【０１０７】
今、処理しようとしている画素群には、ディザマトリックス中で主走査方向にＮ個目、副走査方向にＭ個目のブロックが適用されたものとする。図１５（ｂ）に示すように、ここでは、１つのディザマトリックスには主走査方向・副走査方向にそれぞれ３２個ずつのブロックが含まれるとしており、また、処理しようとする画素群の座標値は（ｎ，ｍ）、すなわち、画像の左上隅を基準として主走査方向にｎ個目、副走査方向にｍ個目の位置にあるとしているから、Ｎ、Ｍはそれぞれ次式で求めることができる。
Ｎ＝ｎ  −  ｉｎｔ（ｎ／３２）×３２
Ｍ＝ｍ  −  ｉｎｔ（ｍ／３２）×３２
ここで、ｉｎｔは、小数点以下を切り捨てて整数化することを表す演算子である。すなわち、ｉｎｔ（ｎ／３２）は、ｎ／３２の計算結果に対して小数点以下の数値を切り捨てることによって得られた整数値を表している。従って、ある画素群についてドット形成の有無を決定する場合には、画素群の座標値（ｎ，ｍ）から上式によってＮ，Ｍを求めた後、ディザマトリックス中で対応する位置にあるブロックの通し番号を取得して、そのブロックから生成された順序値マトリックスを用いればよい。
【０１０８】
もっとも実際には、Ｍ，Ｎの値は、図１６（ｄ）に示すような計算を実行せずとも、極めて簡便に求めることができる。以下、この点について説明する。図１７は、画素群の座標値（ｎ，ｍ）から、適用する順序値マトリックスを選択する方法を具体的に示した説明図である。図１７（ａ）は、数値ｎを表す１０ビットの２進数データを概念的に示している。図１７（ａ）では、各ビットを識別するために、最上位ビットから最下位ビットに向かって１番から１０番までの通し番号を付して表示している。
【０１０９】
順序値マトリックスの選択に際しては、先ず初めに、ｉｎｔ（ｎ／３２）を算出する。すなわち、数値ｎを３２で除算して、小数点以下の値を切り捨てる操作を行う。３２による除算は、２進数データを右方向に５ビット分だけビットシフトさせることで実行可能であり、また、データを整数形式で扱っていれば、小数点以下の値は自動的に切り捨てられてしまう。結局、ｉｎｔ（ｎ／３２）の２進数データは、図１７（ａ）に示した数値ｎの２進数データを、単に右方向に５ビット分だけビットシフトさせることで得ることができる。図１７（ｂ）は、数値ｎをビットシフトして得られたｉｎｔ（ｎ／３２）の２進数データを概念的に表している。
【０１１０】
こうして得られたｉｎｔ（ｎ／３２）に３２を乗算する。３２による乗算は、２進数データを５ビット分だけ左方向にビットシフトすることで実施することができる。図１７（ｃ）は、数値ｎをビットシフトして得られたｉｎｔ（ｎ／３２）×３２の２進数データを概念的に表している。
【０１１１】
次いで、数値ｎから、ｉｎｔ（ｎ／３２）×３２を減算すれば、前述の数値Ｎを得ることができる。数値ｎの２進数データ（図１７（ａ）参照）とｉｎｔ（ｎ／３２）×３２の２進数データ（図１７（ｃ）参照）とを比較すれば明らかなように、これら２進数データは、上位の５ビットは共通しており、減算する側の数値の下位５ビットは全て「０」となっている。従って、減算される側の数値（数値ｎ）の下位５ビットをそのまま抜き出せば、求める数値Ｎを得ることができる。すなわち、図１７（ａ）に示した２進数データと、図１７（ｅ）に示すようなマスクデータとの論理積を求めるだけで、極めて簡便に数値Ｎを得ることが可能である。
【０１１２】
図１７では、画素群の座標値（ｎ，ｍ）の数値ｎから、ディザマトリックス中でのブロック位置を示す数値Ｎを求める場合について説明したが、全く同様にして、ブロック位置を示す数値Ｍについても、数値ｍから極めて簡便に求めることができる。結局、画素群の座標値（ｎ，ｍ）が与えられれば、数値ｎ、ｍから数値Ｎ、Ｍを求めることにより、その画素群には通し番号が何番の順序値マトリックスが適用されるかを知ることができるのである。図１４に示したドット形成有無決定処理のステップＳ４０４では、このようにして、画素群に対応するマトリックスを選択して読み込む処理を行う。
【０１１３】
以上のようにして、画素群に対応する順序値マトリックスを読み込んだら、処理中の画素群の中から、ドット形成の有無を決定しようとする対象画素を１つ選択する（ステップＳ４０６）。そして、読み込んでおいた順序値マトリックスを参照することで、対象画素の順序値を取得した後（ステップＳ４０８）、変換テーブルを参照することによって、対象画素についてのドット形成の有無を決定する（ステップＳ４１０）。変換テーブルには、図１３を用いて前述した第１実施例の変換テーブルと同様に、順序値と個数データとの組合せに対応付けて、ドット形成の有無が設定されている。従って、画素群の個数データと対象画素の順序値とが分かれば、変換テーブルを参照することで直ちにドット形成の有無を決定することができる。
【０１１４】
こうして、１つの対象画素についてドット形成の有無を決定したら、選択した画素群内の全画素について、ドット形成の有無を決定したか否かを判断する（ステップＳ４１２）。未だ、ドット形成の有無を決定していない画素が残っていれば（ステップＳ４１２：ｎｏ）、ステップＳ４０６に戻って、新たな対象画素を選択し、続く一連の処理を行う。こうした処理を繰り返し、画素群内の全画素についてドット形成の有無を決定したと判断されたら（ステップＳ４１２：ｙｅｓ）、今度は、個数データが供給された全画素群について処理を終了したか否かを判断する（ステップＳ４１４）。そして、未処理の画素群が残っていれば（ステップＳ４１４：ｎｏ）、ステップＳ４００に戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返し、全ての画素群について処理が終了したら（ステップＳ４１４：ｙｅｓ）、図１４に示した変形例のドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【０１１５】
以上に説明した変形例のドット形成有無決定処理においては、ディザマトリックスに基づいて複数の順序値マトリックスを生成する。そして、ある画素群についてドット形成の有無を決定する際には、ディザ法を適用したときに、その画素群の位置に適用される部分のディザマトリックスから生成された順序値マトリックスを用いて、ドット形成の有無を決定する。こうすれば、ディザマトリックスを用いて得られたドットの分布に準じた分布が得られるように、ドット形成の有無を決定することができる。周知のように、ディザマトリックスには、ドットが適切な分布で形成されるように、適切な分布で閾値が設定されているから、ディザマトリックスによるドットの分布に準じた分布が得られれば、高画質な画像を印刷することが可能となる。
【０１１６】
更に、順序値マトリックスを生成するために用いるディザマトリックスと、図１０に示した個数データ生成処理中で使用するディザマトリックスとを同じマトリックスとしておけば、図８および図９を用いて前述したように、個数データから復元したドット分布は、ほとんどの場合は、ディザ法を用いて画素毎にドット形成の有無を判断した場合と全く同じドット分布となる。もちろん、前述したように、画素群内で画像データの階調値が大きく変化している場合には、ドット分布は異なったものとなるが、画像データには隣接する画素間では近似した（若しくは同一の）階調値を有する傾向があるため、多くの場合、ドット分布は同一となる。従って、適切なドット分布となるようにドット形成の有無を決定することができ、それだけ高画質な画像を印刷することが可能となる。
【０１１７】
もっとも、上述した変形例のドット形成有無決定処理では、変換テーブルに加えて、複数（上述した例では１０２４個）の順序値マトリックスを記憶しておく必要がある。これらテーブルおよびマトリックスを記憶するために、あまりに多くのメモリを使用したのでは、実際の製品に搭載する上で好ましいことではない。しかし、以下に説明するように、変換テーブルおよび順序値マトリックスを記憶するために多くのメモリを使用することはない。
【０１１８】
先ず、変換テーブルを記憶するために必要なメモリ容量について説明する。図１３に示したように、変換テーブルには、順序値および個数データの組合せ毎にドット形成の有無が設定されているから、変換テーブルのデータサイズは、順序値および個数データがそれぞれ取り得る個数と、１画素分のドット形成の有無を表すために必要なデータ長とによって決定される。順序値は、画素群内の各画素にドットが形成される順番を示しているから、順序値は１つの画素群に含まれる画素数と同じ種類の値を取り得る。また、個数データは、画素群内に形成され得るドットの個数を表しているから、０個から画素数までの値を取ることができるので、画素数＋１通りの値を取り得る。更に、ここでは、１つの画素にはドットが形成されるか否かのいずれかの状態しか取らないとしているから、１画素分のドット形成の有無は、１ビットあれば表現することができる。結局、変換テーブルを記憶するためのメモリ容量は、画素群に含まれる画素数をｎとすると、
ｎ×（ｎ＋１）ビット
あればよい。画素群に含まれる画素数は、高々１６個程度だから、変換テーブルを記憶するために要するメモリ量は僅かなものである。
【０１１９】
次に、順序値マトリックスを記憶するために必要なメモリ量について説明する。順序値マトリックスを記憶するためのメモリ量は、マトリックス１つ当たりに要するメモリ量と、マトリックスの個数とによって決定される。順序値マトリックスには、画素群内の各画素にドットが形成される順番が設定されているから、マトリックス１つ当たりのメモリ量は、画素群に含まれる画素数によって決まる。また、順序値マトリックスの個数は、図１５を用いて前述したように、ディザマトリックスを画素群と同じ大きさのブロックで分割した時に得られるブロック数に等しいから、ディザマトリックスの大きさと、画素群の大きさとによって決定される。結局、順序値マトリックスを記憶するために必要なメモリ量は、ディザマトリックスの大きさと、画素群の大きさとによって決定されることになる。
【０１２０】
図１８は、各種大きさのディザマトリックスと、各種大きさの画素群とを想定して、順序値マトリックスを記憶するために必要なメモリ量を試算した結果を示す説明図である。具体的には、ディザマトリックスの大きさとしては、６４×６４（すなわち主走査方向に６４画素、副走査方向に６４画素）、１２８×６４（主走査方向に１２８画素、副走査方向に６４画素）、１２８×１２８（主走査方向に１２８画素、副走査方向に１２８画素）の３種類のサイズを想定している。画素群の大きさとしては、２×２（主走査方向に２画素、副走査方向に２画素）、４×２（主走査方向に４画素、副走査方向に２画素）、４×４（主走査方向に４画素、副走査方向に４画素）の３種類のサイズを想定している。上述した実施例に対応する条件、すなわち、ディザマトリックスサイズが１２８×６４であり、画素群の大きさが４×２の条件での試算結果は、図１８では、破線で囲って示されている。以下では、この条件を代表例として用いながら、順序値マトリックスの試算例について説明する。
【０１２１】
順序値マトリックスの個数は、ディザマトリックスを画素群と同じサイズで分割して得られるブロックの個数であるから、ディザマトリックスの画素数（１２８×６４）を画素群当たりの画素数（４×２）で除算して、１０２４となる。また、順序値マトリックスに設定される順序値は、１〜８までの８通りの値を取るから、１つの順序値は３ビットあれば表現することができる。順序値マトリックスには８つの順序値が設定されているから、１つの順序値マトリックスを記憶するために必要なメモリ量は、３×８＝２４ビット（３バイト）となる。順序値マトリックスの個数は１０２４個あるから、全ての順序値マトリックスを記憶するために必要なメモリ量は、３Ｋバイトと求めることができる。
【０１２２】
また、画素群に含まれる画素数が４つの場合は、順序値は１〜４までの４通りの値を取るから、１つの順序値は２ビットあれば表現することができる。順序値マトリックスには４つの順序値が設定されるから、１つの順序値マトリックスを記憶するために要するメモリ量は、２×４＝８ビット（１バイト）となる。同様に、画素群に含まれる画素数が１６個の場合は、１つの順序値を表現するために要するデータ長は４ビット、これが１６個あるから、順序値マトリックスを記憶するために要するメモリ量は、４×１６＝６４ビット（８バイト）となる。
【０１２３】
図１８には、各種条件で、全ての順序値マトリックスを記憶するために必要なメモリ量を試算した結果がまとめて示されている。図示されている試算結果を見れば明らかなように、順序値マトリックスを記憶しておくために必要なメモリ量は、高々１０Ｋバイトあれば十分と考えられる。このため、変換テーブルや順序値マトリックスを記憶するために必要なメモリ量が、実際の製品に搭載する上で障害になるほど大きくなることはない。
【０１２４】
Ｃ．第２実施例  ：
以上に説明した第１実施例では、カラープリンタ２００で形成可能なドットは１種類であるものとして説明した。しかし、今日では、印刷画質を向上させることを目的として、大きさの異なるドットや、インク濃度の異なるドットなど、多種のドットを形成可能なプリンタ（いわゆる多値ドットプリンタ）が広く使用されている。本願の発明は、こうした多値ドットプリンタに適用した場合にも、大きな効果を得ることができる。以下では、第２実施例として、本願発明を多値ドットプリンタに適用した場合について説明する。
【０１２５】
Ｃ−１．第２実施例の画像印刷処理の概要  ：
第２実施例の画像印刷処理は、フローチャートについては、図５に示した第１実施例の画像印刷処理と同様である。以下では、図５のフローチャートを流用しながら、第２実施例の画像印刷処理の概要について簡単に説明する。
【０１２６】
第２実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ１００で画像データを読み込んだ後、色変換処理を行う（図５のステップＳ１００およびステップＳ１０２相当）。次いで、解像度変換処理を行って、画像データの解像度を印刷解像度に変換した後（ステップＳ１０４相当）、個数データ生成処理を開始する（ステップＳ１０６相当）。
【０１２７】
前述したように、第１実施例では、カラープリンタ２００が形成可能なドットは１種類であるものとしており、個数データ生成処理では、画素群内に形成されるドット個数を表す個数データを生成して、カラープリンタ２００に出力した。これに対して、第２実施例では、カラープリンタ２００は、複数種類のドットを形成可能である。ここでは、大きさの異なる３種類のドット、すなわち大ドット、中ドット、小ドットを形成可能であるものとする。このことと対応して、第２実施例の個数データ生成処理では、画素群内に、大ドット、中ドット、小ドットがそれぞれ何個ずつ形成されるかを表すデータを、個数データを生成することになる。
【０１２８】
また、詳細には後述するが、個数データを少ないデータ量で効率よく出力するために、大ドット、中ドット、小ドットの個数をそのまま出力するのではなく、コード化された状態で出力する。こうした第２実施例の個数データ生成処理の詳細については後述する。尚、ここでは、カラープリンタ２００が形成可能なドットは、大ドット、中ドット、小ドットと、互いに大きさの異なるドットであるものとして説明するが、もちろん、ドットの種類が異なるのであれば、大きさが異なる場合に限られるものではない。例えば、ドットを形成するインクの濃度が異なる複数種類のドットとしたり、あるいは、微細なドットを複数形成することで擬似的に１つのドットを形成する場合には、微細なドットの密度が異なる複数種類のドットとすることも可能である。
【０１２９】
カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から供給された個数データを受け取ると、ドット形成有無決定処理を開始する（図５のステップＳ１０８相当）。詳細には後述するが、第２実施例のドット形成有無決定処理では、コード化された状態の個数データを受け取ると、画素群内の各画素について、大ドット、中ドット、小ドットのいずれのドットを形成するか、あるいはドットを形成しないかを決定する処理を行う。
【０１３０】
こうして、大中小の各種ドットについてドット形成の有無を決定したら、得られた結果に従って各種ドットを形成する（図５のステップＳ１１０相当）。こうして大ドット、中ドット、小ドットを形成することにより、画像データに対応した画像が印刷される。
【０１３１】
Ｃ−２．第２実施例の個数データ生成処理  ：
次に、上述した第２実施例の画像印刷処理において、画素群内に形成される大ドット、中ドット、小ドットの個数がコード化された個数データを生成する処理について説明する。
【０１３２】
図１９は、画素群内に形成される大ドット、中ドット、小ドットの個数を決定して、個数データを生成する処理の流れを示すフローチャートである。尚、かかる処理の詳細については、特許３２９２１０４号に開示されている。以下、フローチャートに従って説明する。処理を開始すると先ず初めに、互いに隣接する所定数の画素をまとめて画素群を形成する（ステップＳ５００）。ここでは、前述の第１実施例と同様に、主走査方向に４画素、副走査方向に２画素の合計８つの画素を画素群としてまとめるものとする。
【０１３３】
次いで、画素群の中からドット形成の有無を判断するべく、処理対象とする画素を１つ選択した後（ステップＳ５０２）、選択した処理画素について、大ドット、中ドット、小ドットの形成有無を判断する（ステップＳ５０４）。大中小ドットの形成有無は次のようにして判断する。
【０１３４】
図２０は、選択した１つの画素についてハーフトーン処理を行うことにより、大ドット、中ドット、小ドットの形成有無を判断する処理の流れを示すフローチャートである。大中小ドットのハーフトーン処理を開始すると、先ず初めに処理対象とする画素についての画像データを、大ドット、中ドット、小ドットの各ドットについての密度データに変換する（ステップＳ５５０）。ここで、密度データとは、ドットをどの程度の密度で形成するかを表すデータである。密度データは、大きな階調値となるほどドットが高い密度で形成されることを表している。例えば、密度データの階調値「２５５」は、ドットの形成密度が１００％、すなわち全ての画素にドットが形成されることを表しており、密度データの階調値「０」は、ドットの形成密度が０％、すなわちいずれの画素にもドットが形成されないことを表している。こうした密度データへの変換は、ドット密度変換テーブルと呼ばれる数表を参照することによって行うことができる。
【０１３５】
図２１は、画像データの階調値を大中小各ドットについての密度データに変換する際に参照されるドット密度変換テーブルを概念的に示した説明図である。図示されているように、ドット密度変換テーブルには、色変換によって得られた画像データの階調値に対して、小ドット・中ドット・大ドットの各ドットについての密度データが設定されている。画像データが階調値「０」近傍の領域では、中ドット・大ドットの密度データはいずれも階調値「０」に設定されている。小ドットの密度データは、画像データの階調値が大きくなるに連れて増加して行くが、画像データがある階調値に達すると今度は逆に減少し始め、代わりに中ドットの密度データが増加し始める。画像データの階調値が更に増加して、ある階調値に達すると、小ドットの密度データが階調値「０」となり、中ドットの密度データが減少し始めて、代わりに大ドットの密度データが少しずつ増加していく。図２０のステップＳ５５２では、このドット密度変換テーブルを参照しながら、画像データの階調値を、大ドットの密度データ、中ドットの密度データ、小ドットの密度データに変換する処理を行う。
【０１３６】
このようにして、処理対象とする画素について、大中小各ドットの密度データが得られたら、先ず初めに大ドットについての形成有無を判断する（図２０のステップＳ５５４）。かかる判断は、大ドットの密度データと、処理対象としている画素の対応する位置に設定されているディザマトリックスの閾値とを比較することによって行う。そして、密度データの方が大きい場合は処理対象の画素には大ドットを形成するものと判断し（ステップＳ５５４：ｙｅｓ）、ハーフトーン処理を抜けて図１９に示した個数データ生成処理に復帰する。
【０１３７】
逆に、大ドットの密度データよりも閾値の方が大きい場合は処理対象の画素には大ドットは形成されないと判断して（ステップＳ５５４：ｎｏ）、今度は中ドットについて形成有無を判断する処理を開始する。中ドットの形成有無の判断には、大ドットの密度データと中ドットの密度データとを加算して、中ドット用の中間データを算出する（ステップＳ５５６）。そして、得られた中ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、中ドットの形成有無を判断する（ステップＳＳ５５８）。そして、中ドット用の中間データの方が大きい場合は処理対象の画素には中ドットを形成するものと判断し（ステップＳ５６０：ｙｅｓ）、ハーフトーン処理を抜けて図１９の個数データ生成処理に復帰する。
【０１３８】
逆に、中ドット用の中間データよりも閾値の方が大きい場合は処理対象の画素には中ドットも形成されないと判断して（ステップＳ５６０：ｎｏ）、今度は小ドットについて形成有無を判断する処理を開始する。小ドットの形成有無の判断には、中ドット用の中間データと小ドットの密度データとを加算して、小ドット用の中間データを算出する（ステップＳ５６２）。そして、得られた小ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、小ドットの形成有無を判断する（ステップＳ５６４）。そして、小ドット用の中間データの方が大きい場合は処理対象の画素には小ドットを形成するものと判断し、逆に、小ドット用の中間データよりも閾値の方が大きい場合には、いずれのドットも形成されないものと判断する。
【０１３９】
以上のような処理を行えば、処理対象としている画素について、大ドット、中ドット、小ドットのいずれのドットを形成するか、若しくは、いずれのドットも形成しないかを判断することができる。こうして、対象画素についてドット形成の有無を判断したら、図２０に示したハーフトーン処理を抜けて図１９の個数データ生成処理に復帰する。
【０１４０】
上述した処理を行いながら大中小の各ドットの形成有無を判断する様子について、図２２を参照しながら補足して説明する。図２２は、画素群内の各画素について、ディザ法を適用しながら大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。ここでは、説明が煩雑となることを避けるために、画素群内の全画素が同じ階調値を有しており、従って、大中小各ドットの密度データも同じ階調値を有しているものとする。図２２（ａ）は、画素群内の各画素について得られた大中小ドットの密度データを示しており、いずれの画素も、大ドットの密度データが「２」、中ドットの密度データが「９０」、小ドットの密度データが「３２」であったものとする。
【０１４１】
図２２（ｂ）は、ディザマトリックス中で、画素群に対応する位置に記憶されている閾値を表している。大ドットの形成有無を判断する際には、大ドットの密度データと、これら閾値とを比較する。ここでは、いずれの画素についても、大ドットの密度データは「２」であるとしているから、大ドットを形成すると判断される画素は、閾値「１」が設定された画素だけである。図２２（ｂ）には、大ドットが形成されると判断された画素には、細かい斜線を付して表示している。その他の画素については、中ドットか小ドットのどちらかが形成されるか、若しくはいずれのドットも形成されないかのいずれかであると考えられる。そこで、中ドットの形成有無を判断する。
【０１４２】
中ドットの形成有無の判断に際しては、大ドットの密度データ「２」と中ドットの密度データ「９０」とを加算して中ドット用の中間データを算出し、得られた中間データ「９２」とディザマトリックスの閾値とを比較する。その結果、閾値「４２」が設定された画素と、閾値「５８」が設定された画素の２つの画素にのみ、中ドットが形成されるものと判断される。図２２（ｃ）には、中ドットが形成されると判断された画素には、少し細かい斜線を付して表示している。そして、大ドットも中ドットも形成されない画素については、小ドットが形成されるか、ドットが形成されないかのいずれかであると考えられる。そこで、中ドット用の中間データ「９２」に小ドットの密度データ「３２」を加算して、小ドット用の中間データを算出し、得られた中間データ「１２４」とディザマトリックスの閾値とを比較する。その結果、閾値「１０９」が設定された画素にのみ、小ドットが形成されるものと判断される。図２２（ｄ）には、小ドットが形成されると判断された画素には、粗い斜線を付して表示している。
【０１４３】
図１９に示した個数データ生成処理のステップＳ５０２〜Ｓ５０６では、以上のようにして画素群内の各画素について中間データを算出しながら、大中小の各ドットについての形成有無を判断していく。こうして、画素群内の全画素について判断を終了したら（ステップＳ５０６：ｙｅｓ）、画素群内に形成される大ドット、中ドット、小ドットの個数を取得する（ステップＳ５０８）。図２２に例示した画素群については、大ドット１個、中ドット２個、小ドット１個となる。
【０１４４】
以上のようにして、画素群内に形成される各種ドットの個数が得られたら、各種ドットの個数の組合せ（図２２に示した例では、大ドット１個、中ドット２個、小ドット１個という組合せ）をコード化する処理を行う（ステップＳ５１０）。これは、次のような理由によるものである。例えばドットの種類が大中小の３種類である場合、ドットの種類毎に形成する個数を出力したのでは、１つの画素群について３回ずつドット個数を出力しなければならず、コンピュータ１００からカラープリンタ２００にデータを迅速に出力することで画像を迅速に印刷するという効果が減殺されてしまう。そこで、各ドットの個数を個別に出力するのではなく、各ドットの個数の組合せを、組合せ毎に設定された個別のコードに変換しておくのである。
【０１４５】
大中小各ドットの組合せをコード化する処理は、ドット個数の組合せとコード化された個数データとを対応付けた状態で予め対応テーブルに記憶しておき、この対応テーブルを参照することで行う。図２３は、画素群に形成される大中小各ドットの個数の組合せと、コード化された個数データとが対応付けて設定された対応テーブルを示す説明図である。図２３に例示の対応テーブルには、例えば大ドット、中ドット、小ドットの個数がいずれも０個である組合せには、コード化された個数データ「０」が対応付けられている。また、大ドットが０個、中ドットが０個、小ドットが１個の組合せには、コード課された個数データ「１」が対応付けられている。このように対応テーブルには、各ドットの個数の組合せ毎に、コード化された個数データが予め設定されている。
【０１４６】
ここで、大中小ドットの個数の組合せ数は、次のようなものとなる。画素群内の各画素には、大ドット、中ドット、小ドットのいずれのドットも形成され得るが、１つの画素に複数のドットが形成されることはないから、ドット個数の合計が画素群内の画素数（上述した実施例では８個）を越えることはない。従って、これら大中小ドットの個数の組合せは、「大ドットを形成する」、「中ドットを形成する」、「小ドットを形成する」、「ドットを形成しない」の４つの状態の中から重複を許して８回選択するときの組合せの数に等しくなるから、
４Ｈ８  （＝４＋８−１Ｃ８）
によって求められ、１６５通りの組合せが存在していることになる。ここで、ｎＨｒは、ｎ種類の物の中から重複を許してｒ回選択したときに得られる組合せの数（重複組合せ数）を求める演算子である。また、ｎＣｒは、ｎ種類の物の中から重複を許さずにｒ回選択したときに得られる組合せの数を求める演算子である。
【０１４７】
このように、大中小各ドットの個数の組合せが１６５通り存在していることから、コードデータも「０」〜「１６４」の１６５通りあればよい。１６５通りであれば、８ビットのデータ長があれば表現することができる。結局、大ドットの個数、中ドットの個数、小ドットの個数と、３回出力する代わりに、８ビットのコード化された個数データを１回出力するだけで、画素群に形成する各種ドットの個数を出力することが可能となる。そこで、図１９のステップＳ５１０では、ステップＳ５０８で画素群毎に得られた各種ドットについての個数の組合せを、図２３に示すような対応テーブルを参照しながらコード化された個数データに変換しておくのである。
【０１４８】
こうして、画素群毎のドット個数の組合せをコード化した個数データが得られたら、画像の全画素について以上の処理を行ったか否かを判断する（ステップＳ５１２）。そして、未処理の画素が残っている場合は、ステップＳ５００に戻って続く一連の処理を繰り返し、画像の全画素について処理を終了したと判断されたら、コード化された個数データを出力して（ステップＳ５１４）、図１９に示した個数データ生成処理を終了する。
【０１４９】
Ｃ−３．第２実施例のドット形成有無決定処理  ：
次に、上述した第２実施例の画像印刷処理において、画素群毎に生成されたコード化された状態の個数データを受け取り、画素群内の各画素についてドット形成の有無を決定する処理について説明する。前述した第１実施例のドット形成有無決定処理では、変換テーブルを参照することで、個数データと順序値とから直ちにドット形成の有無を決定したが、第２実施例のドット形成有無決定処理においても同様に、変換テーブルを参照することにより、コード化された個数データと順序値とから直ちに大中小ドットの形成有無を決定することが可能である。このような処理が可能な理由を明らかにするとともに、こうした処理を行うことで処理が高速化されることを示すために、以下では、先ず初めに、変換テーブルを用いずに個数データからドット形成の有無を決定する処理について説明する。そして、次に、変換テーブルを参照することで、個数データから大中小各種ドットの形成有無を迅速に決定可能な、第２実施例のドット形成有無決定処理について説明する。
【０１５０】
Ｃ−３−１．変換テーブルを参照せずにドット形成有無を決定する方法  ：
図２４は、変換テーブルを参照することなく、大中小各種ドットの形成有無を決定する処理の流れを示すフローチャートである。以下では、フローチャートに従って簡単に説明する。処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を１つ選択し（ステップＳ６００）、その画素群の個数データを取得する（ステップＳ６０２）。こうして取得された個数データは、コード化されたデータとなっている。そこで、個数データを復号して、大ドット、中ドット、小ドットについての個数を示すデータに変換する処理を行う（ステップＳ６０４）。個数データを復号する処理は、復号テーブルを参照することによって行う。図２５は、コード化された個数データを復号するために参照される復号テーブルを概念的に示した説明図である。
【０１５１】
図示されるように、復号テーブルには、コード化された個数データに対応する大ドット、中ドット、小ドットのドット個数の組合せが設定されている。例えば、コード化された個数データが「１」である場合は、大ドットおよび中ドットの個数は０個で、小ドットの個数が１個であるドット個数の組合せに復号される。図２４のステップＳ６０４では、このような復号テーブルを参照することにより、コード化された個数データを大中小各ドットの個数を表すデータに変換する。
【０１５２】
次いで、個数データを復号した画素群に対応する順序値マトリックスを読み込んだ後（ステップＳ６０６）、読み込んだ順序値マトリックスを参照しながら、画素群内の各画素について大ドット、中ドット、小ドットの形成有無を判断していく。ここで順序値マトリックスとは、図１５を用いて前述したように、画素群内の各画素についてドットが形成される順番を設定したマトリックスである。図２６は、順序値マトリックスを参照しながら、大中小の各種ドットについての形成有無を画素毎に決定している様子を概念的に示した説明図である。例えば、個数データを復号することにより、大ドットの個数が１個、中ドットの個数が２個、小ドットの個数が１個の組合せが得られたものとする。
【０１５３】
各画素についてのドット形成の有無を決定するに際しては、先ず初めに大ドットを形成する画素を決定する（図２４のステップＳ６０８）。ここでは、大ドットの個数は１個であるとしているから、最もドットの形成されやすい画素、すなわち、順序値マトリックスで順序値が「１」に設定されている画素に大ドットが形成されるものと判断する。ここで、大ドットの個数がＮ個である場合は、順序値マトリックスで順序値が「１」から「Ｎ」までの値が設定されている画素に大ドットを形成するものと判断する。図２６では、大ドットを形成する画素には、細かい斜線を付して表示している。
【０１５４】
大ドットを形成する画素を決定したら、大ドットが形成されなかった画素の中から、今度は、中ドットを形成する画素を決定する（図２４のステップＳ６１０）。図２６に示すように、中ドットの個数は２個であり、順序値「１」が設定されている画素位置には大ドットが形成されているから、中ドットは順序値「２」が設定された画素と順序値「３」が設定された画素とに形成される。図２６では、中ドットが形成される画素位置には、少し粗い斜線を付して表示している。
【０１５５】
こうして中ドットを形成する画素を決定したら、大ドットも中ドットも形成されない画素の中から、小ドットを形成する画素を決定する（図２４のステップＳ６１２）。図２６に示すように、小ドットの個数は１個であり、順序値「１」の画素には大ドットが、順序値「２」および「３」の画素には中ドットが形成されているから、小ドットは順序値「４」が設定された画素に形成される。図２６では、小ドットが形成される画素には、粗い斜線を付して表示している。そして、最後に、大ドット、中ドット、小ドットのいずれも形成されなかった画素については、ドットを形成しないものと判断する（図２４のステップＳ６１４）。
【０１５６】
こうして、１つの画素群について、コード化された個数データを復号し、大中小の各ドットを形成する画素を決定したら、全画素群について処理を終了したか否かを判断する（図２４のステップＳ６１６）。そして、未処理の画素群が残っている場合は（ステップＳ６１６：ｎｏ）、ステップＳ６００に戻って、新たな画素群について続く一連の処理を繰り返す。こうして全ての画素群について処理を終了したと判断されたら（ステップＳ６１６：ｙｅｓ）、図２４に示したドット形成有無決定処理を終了する。
【０１５７】
Ｃ−３−２．変換テーブルを参照するドット形成有無決定処理  ：
以上に説明したドット形成有無の決定処理では、コード化された個数データを受け取ると、画素群内に形成する大中小ドットの個数を示すデータに復号した後、各画素についていずれのドットを形成するかを決定するという、言わば２段階の操作を経ている。しかし、変換テーブルを参照すれば、各画素に形成するドットを、個数データを復号することなく直ちに決定することができる。以下では、変換テーブルを参照してドット形成の有無を決定する第２実施例のドット形成有無決定処理について説明する。
【０１５８】
第２実施例のドット形成有無決定処理は、前述した第１実施例において図１４を用いて説明した変形例のドット形成有無決定処理に対して、参照する変換テーブルが異なっているだけであり、処理の流れは同様である。そこで、以下では、図１４のフローチャートを流用しながら、第２実施例のドット形成有無決定処理について説明する。
【０１５９】
第２実施例のドット形成有無決定処理を開始すると、先ず初めに画素群を１つ選択し（ステップＳ４００相当）、その画素群の個数データを取得する（ステップＳ４０２相当）。次いで、複数組記憶されている順序値マトリックスの中から、選択した画素群に対応する順序値マトリックスを読み込んでやる（ステップＳ４０４相当）。すなわち、図１５および図１６を用いて前述したように、画素群の座標値（ｎ，ｍ）から、ｎおよびｍの下位５ビットを抜き出して、それぞれＮ，Ｍを求める。そして、ディザマトリックス中でＮ行Ｍ列のブロックから生成された順序値マトリックスを選択して、読み込んでやればよい。
【０１６０】
以上のようにして、画素群に対応する順序値マトリックスを読み込んだら、処理中の画素群の中から、ドット形成の有無を決定しようとする対象画素を１つ選択する（ステップＳ４０６相当）。そして、読み込んでおいた順序値マトリックスを参照することで、対象画素の順序値を取得した後（ステップＳ４０８相当）、変換テーブルを参照することによって、対象画素についてのドット形成の有無を決定する（ステップＳ４１０相当）。
【０１６１】
ここで、前述した第１実施例のドット形成有無決定処理において参照した変換テーブルには、個数データと順序値との組合せ毎に、ドット形成の有無を表すデータが設定されていた（図１３参照のこと）。これに対して、第２実施例のドット形成有無決定処理で参照する変換テーブルには、コード化された状態の個数データと順序値との組合せ毎に、大中小いずれのドットを形成するか、あるいはドットを形成しないかを示すデータが設定されている。
【０１６２】
図２７は、第２実施例のドット形成有無決定処理で参照される変換テーブルを概念的に示した説明図である。図２３を用いて前述したように、コード化された個数データは０〜１６４までの１６５通りの値を取り得る。また、１つの画素群は８つの画素から構成されているとしているから、順序値は１〜８までの８通りの値を取り得る。第２実施例の変換テーブルには、これら１６５×８＝１３２０通りの組合せ毎に、ドットを形成しないことを示す値「０」、小ドットを形成することを示す値「１」、中ドットを形成することを示す値「２」、大ドットを形成することを示す値「３」のいずれかが設定されている。従って、画素群の個数データと対象画素の順序値とが分かれば、直ちにドット形成の有無を決定することができる。第２実施例のドット形成有無決定処理では、このような変換テーブルを参照することで、対象画素に大中小いずれのドットを形成するのか、あるいはドットを形成しないのかを、直ちに決定するのである（図１４のステップＳ４１０相当）。
【０１６３】
ここで、図２７に示すような変換テーブルを参照しながらドット形成の有無を決定した場合でも、大中小ドットについてのドット形成の有無を適切に決定可能な理由について説明する。図２４ないし図２６を用いて前述したように、変換テーブルを参照することなくドット形成の有無を決定する場合は、大きくは２段階の操作を経ている。すなわち、先ず第１段階では、コード化された個数データを大中小の各種ドットの個数に変換する。続く第２段階では、順序値マトリックスに従って各画素についてのドット形成の有無を決定する。ここで、図２５に示されているように、コード化された個数データと、大中小ドットについての個数の組合せとは、一対一の関係にある。換言すれば、コード化された個数データが１つ与えられれば、各種ドットについての個数の組合せは一意的に決定することができる。
【０１６４】
一方、画素群内に形成される各種ドットの個数が復号されると、図２６に示したように、順序値マトリックスに従って、各画素についてのドット形成の有無が決定される。すなわち、順序値マトリックスが決まっていれば、各種ドットについての個数の組合せと、各画素についてのドット形成の有無とは、一対一の関係にある。上述したように、各種ドットについての個数の組合せは、コード化された個数データから一意的に決定されるから、結局、順序値マトリックスが決まっていれば、コード化された個数データから、画素群内の各画素について、各種ドットの形成有無は一意的に決定されることになる。
【０１６５】
ここで、各種ドットの個数と順序値マトリックスとに従って、各画素についてのドット形成の有無を決定する操作を更に詳しく観察すると、次のようなことが分かる。すなわち、各種ドットの個数の組合せは、ある順序値の画素にはどのようなドットが形成されるかを決定しており、順序値マトリックスは、そのような順序値の画素が、画素群中のどの位置にあるかを決定している。例えば、図２６に示した例では、大ドット１個、中ドット２個、小ドット１個であるから、順序値「１」の画素には大ドットが形成され、順序値「２」および「３」の画素には中ドットが形成され、順序値「４」の画素には小ドットが形成され、順序値「５」〜「８」の画素にはいずれのドットも形成されないことがわかる。そして、これら順序値の画素が、画素群中ではどの位置にあるかについては、順序値マトリックスによって決定されている。このことから、コード化された個数データが与えられれば、ある順序値の画素にはどのようなドットが形成されるかについてまでは、一意的に決定することが可能である。
【０１６６】
そこで、全ての個数データについて、順序値とその順序値を有する画素に形成されるドットの種類とを予め決定しておき、図２７に示すような変換テーブルに設定しておく。そして、画素群内の対象画素についてドット形成の有無を決定する場合には、順序値マトリックスを参照することで対象画素の順序値を求め、次いで変換テーブルを参照することで、その順序値に形成されるドットの種類を取得すれば、ドット形成の有無を適切に決定することが可能となるのである。
【０１６７】
こうして、１つの対象画素についてドット形成の有無を決定したら、選択した画素群内の全画素について、ドット形成の有無を決定したか否かを判断する（図１４のステップＳ４１２相当）。未だ、ドット形成の有無を決定していない画素が残っていれば、ステップＳ４０６に相当する箇所まで戻って、新たな対象画素を選択し、続く一連の処理を行う。こうした処理を繰り返し、画素群内の全画素についてドット形成の有無を決定したと判断されたら、今度は、個数データが供給された全画素群について処理を終了したか否かを判断する（ステップＳ４１４相当）。そして、未処理の画素群が残っていれば、一番初めまで戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返し、全ての画素群について処理が終了したら、第２実施例のドット形成有無決定処理を終了する。
【０１６８】
以上に説明した第２実施例のドット形成有無決定処理においては、コード化された状態の個数データを受け取ると、順序値マトリックスを参照して対象画素の順序値を取得した後、個数データと順序値とから変換テーブルを参照することで、個数データを復号することなく各種ドットについての形成有無を決定することができる。このため、画素毎にドット形成有無を決定する処理を迅速に実行することが可能となり、延いては画像を迅速に出力することが可能となる。
【０１６９】
また、第２実施例のドット形成有無決定処理の主な処理内容は、順序値マトリックスや変換テーブルを参照してデータを読み出しているだけであり、極めて単純な処理である。従って、コンピュータ１００のようには高いデータ処理能力を備えていないカラープリンタ２００においても、十分に迅速に実行することが可能であり、それだけ画像を迅速に印刷することが可能となる。
【０１７０】
更に、第２実施例のドット形成有無決定処理では、マトリックスあるいはテーブルを参照するだけで対象画素についてのドット形成の有無を決定することが可能であり、処理中に条件分岐が含まれていない。これに対して、変換テーブルを参照することなくドット形成の有無を判断する場合は、多数の条件分岐が発生する。この点について図２４を参照しながら若干の補足説明を行う。
【０１７１】
変換テーブルを参照せずに各種ドットの形成の有無を決定する場合、先ず初めに大ドットについての形成有無を判断する（図２４のステップＳ６０８）。そして、大ドットが形成されなければ、中ドットの形成有無を判断する（図２４のステップＳ６１０）。大ドットも中ドットも形成されなければ、今度は小ドットの形成有無を判断する（図２４のステップＳ６１２）。そして、小ドットも形成されないと判断された画素については、いずれのドットも形成されないと判断している。このように、大ドットが形成されるか否か、中ドットが形成されるか否か、小ドットが形成されるか否かによって、以降の処理内容が異なっており、従って、ドット形成有無を決定する処理には、多数の条件分岐が含まれている。
【０１７２】
近年のＣＰＵでは高速な処理を可能とするために、パイプライン処理と呼ばれる技術が採用されているが、条件分岐が発生すると、パイプライン処理による効果を得ることができない。この点で、変換テーブルを参照することなくドット形成有無を決定する処理は、上述したように多数の条件分岐を含んでいるために、迅速な処理を行うことが困難である。これに対して、変換テーブルを参照してドット形成有無を決定する処理は、図１４に示したように、条件分岐を含まないためにパイプライン処理の効果を最大限に引き出すことが可能であり、この点でも高速処理に適した処理と言うことができる。
【０１７３】
以上に説明したように、第２実施例のドット形成有無決定処理では、画素群内の各画素についてのドット形成有無を、簡便に且つ迅速に決定することが可能であるが、多数の順序値マトリックスと図２７に示したような変換テーブルを記憶しておく必要がある。これらマトリックスおよびテーブルを記憶するために、あまりに多くのメモリを使用したのでは、実際の製品に搭載する上で好ましいことではない。しかし、第２実施例のドット形成有無決定処理においても、前述した第１実施例と同様に、変換テーブルおよび順序値マトリックスを記憶するために必要なメモリ量は、製品に搭載する際の障害になるほど大きくなることはない。以下、この点について簡単に説明しておく。
【０１７４】
先ず、序列値マトリックスについては、前述した第１実施例と同様である。すなわち、順序値マトリックスを記憶するためのメモリ量は、ディザマトリックスの大きさと、画素群の大きさとによって決定され、図１８に示したように、１０Ｋバイト程度のメモリ量があれば、十分記憶することが可能と考えられる。
【０１７５】
次に、変換テーブルを記憶するために必要なメモリ容量について説明する。図２７に示したように、変換テーブルには、順序値および個数データの組合せ毎にドット形成の有無が設定されている。画素群に含まれる画素数を８個とすれば、順序値は８通りの値を取る。また、形成可能なドットの種類が大ドット、中ドット、小ドットの３種類であるとすれば、図２３を用いて前述したように、個数データは１６５通りの値を取り得る。更に、ドット形成有無の判断結果は、大ドットを形成する、中ドットを形成する、小ドットを形成する、ドットを形成しないの４通りしか取り得ないから、１つの判断結果は２ビットあれば表現することができる。従って、図２７に示した変換テーブルは、８×１６５×２＝２６４０ビット（０．３２２Ｋバイト）あれば記憶することができる。
【０１７６】
図２８は、変換テーブルを記憶するために必要なメモリ量を、画素群の大きさ毎に試算した結果をまとめた説明図である。図示されているように、変換テーブルについても、数Ｋバイト程度あれば、十分記憶することができる。従って、第２実施例のドット形成有無決定処理においても、順序値マトリックスや変換テーブルを記憶するためには僅かなメモリ量があればよく、メモリ容量が製品への搭載の障害となることはない。
【０１７７】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、以上の実施例では、印刷用紙上にドットを形成して画像を印刷する場合について説明したが、本発明の適用範囲は画像を印刷する場合に限られるものではない。例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
【図面の簡単な説明】
【０１７８】
【図１】印刷システムを例にとって本発明の概要を説明するための説明図である。
【図２】画像処理装置としてのコンピュータの構成を示す説明図である。
【図３】本実施例のカラープリンタ２００の概略構成を示す説明図である。
【図４】インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。
【図５】第１実施例の画像印刷処理の全体的な流れを示すフローチャートである。
【図６】ディザマトリックスの一部を概念的に例示した説明図である。
【図７】ディザマトリックスを参照しながら各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。
【図８】ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。
【図９】個数データから画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。
【図１０】第１実施例の個数データ生成処理の流れを示すフローチャートである。
【図１１】第１実施例のドット形成有無決定処理の流れを示すフローチャートである。
【図１２】第１実施例のドット形成有無決定処理において各画素についてのドット形成の有無が決定される様子を概念的に示した説明図である。
【図１３】対象画素についてのドット形成の有無を決定するために参照される変換テーブルを概念的に示した説明図である。
【図１４】変形例のドット形成有無決定処理の流れを示すフローチャートである。
【図１５】変形例のドット形成有無決定処理において参照される複数の順序値マトリックスを生成する方法について示した説明図である。
【図１６】画素群に対応する順序値マトリックスを選択する方法を示した説明図である。
【図１７】画素群の座標値（ｎ，ｍ）から適用する順序値マトリックスを選択する方法を具体的に示した説明図である。
【図１８】各種大きさのディザマトリックスと各種大きさの画素群とを想定して順序値マトリックスを記憶するために必要なメモリ量を試算した結果を示す説明図である。
【図１９】画素群内に形成される大中小の各種ドットの個数を決定して個数データを生成する処理の流れを示すフローチャートである。
【図２０】選択した画素について大中小の各種ドットについての形成有無を判断する処理の流れを示すフローチャートである。
【図２１】画像データの階調値を大中小の各種ドットについての密度データに変換するためのドット密度変換テーブルを概念的に示した説明図である。
【図２２】画素群内の各画素についてディザ法を適用しながら大中小の各種ドットの形成有無を判断している様子を概念的に示した説明図である。
【図２３】画素群に形成される大中小各ドットの個数の組合せとコードデータとが対応付けて設定された対応テーブルを示す説明図である。
【図２４】変換テーブルを参照することなく大中小の各種ドットの形成有無を決定する処理の流れを示すフローチャートである。
【図２５】コード化された個数データを復号するために参照される復号テーブルを概念的に示した説明図である。
【図２６】順序値マトリックスを参照しながら、大中小の各種ドットについての形成有無を画素毎に決定している様子を概念的に示した説明図である。
【図２７】第２実施例のドット形成有無決定処理で参照される変換テーブルを概念的に示した説明図である。
【図２８】変換テーブルを記憶するために必要なメモリ量を画素群の大きさ毎に試算した結果をまとめた説明図である。
【符号の説明】
【０１７９】
１０…コンピュータ、  ２０…カラープリンタ、  １００…コンピュータ、
１０８…周辺機器インターフェースＰＩＦ、
１０９…ディスクコントローラＤＤＣ、
１１０…ネットワークインターフェースカードＮＩＣ、
１１２…ビデオインターフェースＶＩＦ、
１１６…バス、  １１８…ハードディスク、  １２０…デジタルカメラ、
１２２…カラースキャナ、  １２４…フレキシブルディスク、
１２６…コンパクトディスク、  ２３０…キャリッジモータ、  ２３５…モータ、
２３６…プラテン、  ２４０…キャリッジ、  ２４１…印字ヘッド、
２４２…インクカートリッジ、  ２４３…インクカートリッジ、
２４４…インク吐出用ヘッド、  ２６０…制御回路、  ２００…カラープリンタ、
３００…通信回線、  ３１０…記憶装置
【図１】
2005236768.tif 000003
【図２】
2005236768.tif 000004
【図３】
2005236768.tif 000005
【図４】
2005236768.tif 000006
【図５】
2005236768.tif 000007
【図６】
2005236768.tif 000008
【図７】
2005236768.tif 000009
【図８】
2005236768.tif 000010
【図９】
2005236768.tif 000011
【図１０】
2005236768.tif 000012
【図１１】
2005236768.tif 000013
【図１２】
2005236768.tif 000014
【図１３】
2005236768.tif 000015
【図１４】
2005236768.tif 000016
【図１５】
2005236768.tif 000017
【図１６】
2005236768.tif 000018
【図１７】
2005236768.tif 000019
【図１８】
2005236768.tif 000020
【図１９】
2005236768.tif 000021
【図２０】
2005236768.tif 000022
【図２１】
2005236768.tif 000023
【図２２】
2005236768.tif 000024
【図２３】
2005236768.tif 000025
【図２４】
2005236768.tif 000026
【図２５】
2005236768.tif 000027
【図２６】
2005236768.tif 000028
【図２７】
2005236768.tif 000029
【図２８】
2005236768.tif 000030