(57)【要約】【課題】  高画質な画像を簡素な処理で迅速に出力可能な技術を提供する。【解決手段】  画素を複数個ずつ画素群毎にまとめ、画素群内の階調値分布に基づいて画素群を分割するか否かを判断する。分割しない画素群については画素群の代表階調値を、分割する画素群については分割して生成された各領域の代表階調値を決定する。次いで、代表階調値を多値化して得られた多値化結果値から、画素群内の各画素のドット形成有無を決定して画像を出力する。このとき分割された画素群については各領域の多値化結果値に基づいて、該領域内の各画素についてのドット形成有無を決定する。多値化結果値は、データの生成や授受を迅速に行うことができる。また、画素群が階調値分布を有する場合でも、画素群内の各領域についてドット形成の有無を決定することができるので、高画質な画像を出力することが可能となる。【選択図】        図１
2006014039.tif 000002
【特許請求の範囲】
【請求項１】
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力システム。
【請求項２】
請求項１記載の画像出力システムであって、
前記代表階調値決定手段は、前記画素群を分割するか否かを該画素群内の各画素の階調値に基づいて判断し、分割しない画素群については、該画素群を代表する階調値を、前記代表階調値として決定する手段であり、
前記ドット形成有無決定手段は、前記多値化結果値が１つだけ得られた画素群については、該画素群内の各画素についてドット形成の有無を決定する手段である画像出力システム。
【請求項３】
画像データに所定の画像処理を施す第１の画像処理装置と、該画像処理によって得られた第１の画像データを、画素毎にドット形成の有無を表した第２の画像データに変換する第２の画像処理装置とを備える画像処理システムであって、
前記第１の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第１の画像データとして出力する第１の画像データ出力手段と
を備えており、
前記第２の画像処理装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第２の画像データとして出力する第２の画像データ出力手段と
を備える画像処理システム。
【請求項４】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力装置。
【請求項５】
請求項４記載の画像出力装置であって、
前記多値化結果値受取手段は、前記多値化結果値を、前記画素群毎に少なくとも１つずつ受け取る手段であり、
前記ドット形成有無決定手段は、前記多値化結果値を１つだけ受け取った画素群については、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項６】
請求項４記載の画像出力装置であって、
前記多値化結果値受取手段は、前記画素群を分類番号によって識別しながら、該画素群についての前記多値化結果値を受け取る手段であり、
前記ドット形成有無決定手段は、前記復号用対応関係として、前記多値化結果値と前記画素群内の各画素についてのドット形成の有無とが、前記分類番号毎に関連づけられた対応関係を参照する手段である画像出力装置。
【請求項７】
請求項４記載の画像出力装置であって、
前記ドット形成有無決定手段は、
前記復号用対応関係を参照することにより、前記多値化結果値を、前記画素群内の各画素についてのドット形成有無を表すデータに復号する多値化結果値復号手段と、
前記多値化結果値から復号されたドット形成有無を表すデータの中から、該多値化結果値に対応する領域の部分を抜き出すことにより、前記画素群についてのドット形成有無を表すデータを合成するドット形成有無合成手段と
を備える画像出力装置。
【請求項８】
請求項４ないし請求項７のいずれかに記載の画像出力装置であって、
前記ドット形成有無決定手段は、前記画素群が所定の態様で複数の領域に分割されているものとして、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項９】
請求項８記載の画像出力装置であって、
前記ドット形成有無決定手段は、前記画素群が２つの領域に等分されているものとして、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項１０】
請求項４ないし請求項７のいずれかに記載の画像出力装置であって、
前記多値化結果値受取手段は、前記画素群の各領域についての多値化結果値とともに、該画素群の分割態様を表す分割パターンを受け取る手段であり、
前記ドット形成有無決定手段は、前記画素群が前記分割パターンに示された態様で分割されているものとして、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項１１】
請求項４ないし請求項７のいずれかに記載の画像出力装置であって、
前記ドット形成有無決定手段は、前記復号用対応関係として、前記多値化結果値と、画素毎のドット形成の有無を表す値が前記画素群内での画素位置に応じた所定の順序で並んだデータとが、関連づけられた対応関係を参照する手段である画像出力装置。
【請求項１２】
請求項４ないし請求項７のいずれかに記載の画像出力装置であって、
前記ドット形成有無決定手段は、前記復号用対応関係として、少なくとも１００種類以上の前記画素群毎に、前記多値化結果値と前記ドット形成の有無とが関連づけられた対応関係を参照する手段である画像出力装置。
【請求項１３】
前記復号用対応関係に記憶されている画素群の種類数と、該画素群１つあたりに含まれる画素数との乗算値が、少なくとも１０００以上である請求項４ないし請求項７のいずれかに記載の画像出力装置。
【請求項１４】
請求項４ないし請求項７のいずれかに記載の画像出力装置であって、
前記ドット形成手段は、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能な手段であり、
前記ドット形成有無決定手段は、前記多値化結果値と、前記複数種類のドットの形成有無とが前記画素群毎に関連づけられた前記復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項１５】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力装置。
【請求項１６】
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記制御データとして出力する制御データ出力手段と
を備えている画像処理装置。
【請求項１７】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する第１の工程と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第２の工程と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する第３の工程と、
前記決定したドット形成の有無に基づいてドットを形成する第４の工程と
を備える画像出力方法。
【請求項１８】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る工程（Ａ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定する工程（Ｂ）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（Ｃ）と
を備える画像出力方法。
【請求項１９】
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する工程（ア）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する工程（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する工程（ウ）と、
前記決定したドット形成の有無を前記制御データとして出力する工程（エ）と
を備えている画像処理方法。
【請求項２０】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する第１の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第２の機能と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する第３の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第４の機能と
を実現するプログラム。
【請求項２１】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る機能（Ａ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定する機能（Ｂ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（Ｃ）と
を実現するプログラム。
【請求項２２】
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する機能（ア）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する機能（ウ）と、
前記決定したドット形成の有無を前記制御データとして出力する機能（エ）と
を実現するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データに基づいて画像を出力する技術に関し、詳しくは、画像データに所定の画像処理を施してドットを適切な密度で発生させることにより、画像を出力する技術に関する。
【背景技術】
【０００２】
印刷媒体や液晶画面といった各種の出力媒体上にドットを形成することで画像を出力する画像出力装置は、各種画像機器の出力装置として広く使用されている。これら画像出力装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。ドットを画素に形成した場合、もちろん画素１つ１つについて見れば、ドットが形成されるか否かのいずれかの状態しか取り得ない。しかし、ある程度の広さを持った領域で見れば、形成するドットの密度に粗密を生じさせることは可能であり、ドットの形成密度を変えることによって多階調の画像を出力することが可能である。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見え、まばらに形成された領域は暗く見える。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を出力することが可能となる。このように、適切な形成密度が得られるようにドットの形成を制御するためのデータは、出力しようとする画像に所定の画像処理を施すことによって発生させる。
【０００３】
近年では、これら画像出力装置には、出力画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素に分割することが効果的である。画素を小さくしてやれば、画素に形成されるドットが目立たなくなるので画質を向上させることができる。また、大画像化の要請に対しては、画素数を増加させることによって対応する。もちろん、個々の画素を大きくすることによっても出力画像を大きくすることはできるが、これでは画質の低下を招いてしまうので、大型化の要請に対しては画素数を増加させることが効果的である。
【０００４】
もっとも、画像を構成する画素数が増加すると画像処理に時間がかかってしまい、画像を迅速に出力することが困難となる。そこで、画像処理を迅速に実行可能とする技術が提案されている（特許文献１）。
【０００５】
【特許文献１】特開２００２−１８５７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、画像処理を迅速に行ったとしても、画像データの転送に、あるいは処理済みの画像データの転送に時間がかかってしまったのでは、画像の出力を迅速化する効果にも限界がある。
【０００７】
また、近年では、デジタルカメラなどで撮影した画像のデータを、印刷装置などの画像出力装置に直接供給して直ちに画像を出力したいという要請も存在する。このような場合は、いわゆるパーソナルコンピュータ等のような高い処理能力を備えた画像処理装置を用いて画像処理を行うことはできない。従って、デジタルカメラなどの画像撮影装置、あるいは画像出力装置のいずれか、若しくは両者で分担して実行可能なように簡素な画像処理としておく必要がある。
【０００８】
この発明は従来技術における上述した課題を解決するためになされたものであり、十分な出力画質を維持したまま、画像処理およびデータ転送を高速に実行可能な、簡素な画像処理技術の提供を目的とする。
【課題を解決するための手段】
【０００９】
上述した課題の少なくとも一部を解決するために、本発明の画像出力システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えていることを要旨とする。
【００１０】
また、上記の画像出力システムに対応する本発明の画像出力方法は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する第１の工程と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第２の工程と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する第３の工程と、
前記決定したドット形成の有無に基づいてドットを形成する第４の工程と
を備えることを要旨とする。
【００１１】
かかる本発明の画像出力システムおよび第１の画像出力方法においては、画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する。ここで画素群としては、常に同数の画素をまとめたものであっても良いが、例えば、所定のパターンあるいは所定の規則に従って異なる個数ずつ画素をまとめたものであってもよい。次いで、多値化用対応関係を参照することにより、各領域について決定された代表階調値を多値化結果値に変換する。多値化用対応関係には、代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、画素群毎に関連づけられているので、多値化用対応関係を参照すれば、代表階調値を多値化結果値に迅速に変換することができる。
【００１２】
尚、多値化用対応関係としては、代表階調値と画素群とが決まれば、それに応じた多値化結果値が１つ決まるようなものであれば種々の形態を取ることが可能であり、例えば、対応表や関数式などの形態を取ることができる。あるいは、後述するように、多値化結果値を決定するために代表階調値と比較される閾値を記憶した形態を取ることもできる。また、多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に関連づけられていることから、多値化結果値は、その結果値が得られた画素群と組み合わせて初めて解釈可能な結果値としておくこともできるし、画素群によらず多値化結果値だけで解釈可能な結果値としておくこともできる。
【００１３】
こうして各画素群について得られた多値化結果値から、画素群内の各画素についてのドット形成の有無を決定する。ドット形成の有無は次のようにして決定する。先ず、多値化結果値と、画素群内の各画素についてのドット形成の有無とを、画素群毎に関連づけて復号用対応関係として記憶しておく。次いで、画素群を分割する各領域について得られた多値化結果値から復号用対応関係を参照することにより、各画素についてのドット形成有無を、領域毎に決定する。こうして得られた各画素についてのドット形成の有無に基づいてドットを形成することで画像を出力する。例えば、印刷媒体や液晶画面などの媒体上にドットを形成すれば、これら媒体上に画像が出力されることになる。
【００１４】
詳細には後述するが、画像の全画素についてドット形成の有無を表すデータに比べれば、多値化結果値はたいへんに少ないデータ量で表現することができる。このため、データを速やかに取り扱うことが可能となり、延いては画像を迅速に出力することが可能となる。更に、代表階調値を多値化するに際しては、多値化用対応関係を参照しながら多値化することで、迅速に多値化することも可能となる。
【００１５】
加えて、代表階調値の多値化に際して参照される多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に対応付けられている。換言すれば、画素群が異なっていれば、異なる代表階調値であっても同じ多値化結果値に多値化することが可能である。このため、単に代表階調値と多値化結果値とを対応づけた場合に比べて、多値化結果値の取り得る個数を減少させることも可能となる。取り得る個数が少なくなれば、多値化結果値を表現するために要するデータ量を少なくすることができるので、その分だけデータの授受を迅速に行うことができ、延いては、画像を迅速に出力することが可能となる。
【００１６】
更に、各画素についてのドット形成有無は、各領域について生成された多値化結果値に基づいて領域毎に決定される。すなわち、一連の処理は画素群を分割する領域毎に行われるにも関わらず、処理に際して参照される多値化用対応関係や順序値などは、画素群毎に設定されたものを用いることができる。このことは、処理単位である領域の大きさが異なっている場合でも、同一の多値化用対応関係および順序値を使用可能なことを意味している。このことから、上述した画像出力システムおよび画像出力方法によれば、処理単位である領域の大きさに影響を受け難い汎用性の高いシステムおよび方法を構成することが可能となる。
【００１７】
加えて、上述した画像出力システムおよび第１の画像出力方法は、単に汎用性が高いだけでなく、多値化用対応関係のデータ量を低減することができるという利点も存在する。すなわち、画素群の大きさは、処理単位である領域の大きさよりも大きくすることが可能である。そして、詳細に後述するが、画素群が大きくなれば画素群の種類は少なくなる。ここで、多値化用対応関係は、代表階調値と多値化結果値とが画素群毎に関連づけられているから、画素群の種類が少なくなれば、多値化用対応関係のデータ量も減少する。このため、上述の画像出力システムおよび画像出力方法によれば、比較的少ない容量で多値化用対応関係を記憶できるという利点も得ることが可能となる。
【００１８】
また、多値化結果値と、画素群内の各画素についてのドット形成有無とを、復号用対応関係として画素群毎に関連づけておけば、かかる対応関係を参照することで、多値化結果値から各画素についてのドット形成有無を迅速に決定することができる。このため、画像を迅速に出力することが可能となる。加えて、画素群を複数の領域に分割して処理することから、画素群内で階調値の大きく異なっている場合でも、領域毎に得られた多値化結果値に基づいて、適切にドット形成の有無を決定することができるので、より一層高画質な画像を出力することが可能となる。
【００１９】
更に、多値化結果値を生成する処理および各画素のドット形成有無を決定する処理は、いずれも予め設定された対応関係を参照するという簡素な処理内容とすることができる。このため、コンピュータなどのようには高度な処理能力を有さない機器においても、十分に実用的な速度で処理することが可能である。従って、例えば画像データを、コンピュータなどを介さずに、画像出力装置に直接供給し、画像データにこれらの画像処理を画像出力装置の内部で施すことで、適切に画像を出力することも可能となる。
【００２０】
こうした画像出力システムおよび第１の画像出力方法においては、画素群を分割するか否かを該画素群内の各画素の階調値に基づいて判断し、分割しない画素群については、該画素群を代表する代表階調値を多値化しても良い。そして、多値化結果値を１つだけ受け取った画素群については、該画素群内の各画素についてドット形成の有無を決定して、画像を出力することとしても良い。
【００２１】
こうすれば、分割しない画素群については多値化結果値を１つだけ出力すればよいので、画素群内の各領域について多値化結果値を出力する場合に比べて、より迅速に多値化結果値をやり取りすることができる。この結果、画像を迅速に出力することが可能となる。
【００２２】
また、本発明は、画像データを受け取って画像を出力する画像出力装置として把握することも可能である。すなわち、上記の画像出力システム、あるいは画像出力方法に対応する本発明の第１の画像出力装置は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００２３】
かかる本発明の第１の画像出力装置においては、画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定した後、多値化用対応関係を参照することにより、各領域について決定された代表階調値を多値化結果値に変換する。次いで、復号用対応関係を参照することにより、各領域について得られた多値化結果値から各画素についてドット形成の有無を決定する。こうして決定したドット形成の有無に従ってドットを形成することにより画像を出力する。
【００２４】
前述したように、画素群の多値化結果値は、画素毎にドット形成の有無を表したデータよりも遙かに小さなデータであるため、多値化結果値であればデータを迅速にやり取りすることができ、延いては画像を迅速に出力することができる。また、多値化結果値は、代表階調値と多値化結果値とが画素群毎に対応付けられた多値化用対応関係を参照するだけで生成することができる。このため、多値化結果値を迅速に生成することができ、延いては画像を迅速に出力することが可能となる。加えて、画素群を複数の領域に分割して、領域毎に多値化結果値を生成するとともに、各画素のドット形成の有無を決定していることから、たとえ画素群内で階調値が大きく変化していた場合でも、適切にドット形成の有無を決定することができ、延いては、高画質な画像を出力することが可能となる。
【００２５】
更に、代表階調値を多値化する処理や、多値化結果値からドット形成の有無を決定する処理が実施される領域の大きさが異なっている場合でも、処理に際して参照される多値化用対応関係や復号用対応関係は、同じものを使用可能という利点も得ることができる。加えて、処理に使用される領域の大きさよりも、画素群の大きさを大きく設定しておくことができるので、多値化用対応関係のデータ量を低減することも可能である。
【００２６】
また、前述した課題の少なくとも一部を解決するために、本発明の画像処理システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す第１の画像処理装置と、該画像処理によって得られた第１の画像データを、画素毎にドット形成の有無を表した第２の画像データに変換する第２の画像処理装置とを備える画像処理システムであって、
前記第１の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第１の画像データとして出力する第１の画像データ出力手段と
を備えており、
前記第２の画像処理装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第２の画像データとして出力する第２の画像データ出力手段と
を備えていることを要旨とする。
【００２７】
また、上記の画像処理システムに対応する本発明の画像処理方法は、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する工程（ア）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する工程（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する工程（ウ）と、
前記決定したドット形成の有無を前記制御データとして出力する工程（エ）と
を備えることを要旨とする。
【００２８】
更に本発明は、上記の画像処理システムを構成する第１および第２の画像処理装置が一体に構成された画像処理装置として把握することも可能である。すなわち、上記の画像処理システムに対応する本発明の画像処理装置は、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記制御データとして出力する制御データ出力手段と
を備えることを要旨とする。
【００２９】
かかる画像処理システム、画像処理方法、および画像処理装置においては、画素群を分割する各領域について代表階調値を決定した後、多値化用対応関係を参照することによって、それぞれの代表階調値を多値化する。次いで、復号用対応関係を参照することにより、各領域について得られた多値化結果値に基づいて、画素群内の各画素についてドット形成の有無を領域毎に決定する。こうして決定したドット形成の有無を制御データとして出力する。
【００３０】
このように多値化用対応関係を参照して代表階調値を多値化してやれば、迅速に多値化することができる。加えて、多値化結果値はデータ量が小さいため、迅速に取り扱うことができる。次いで、復号用対応関係を参照することで、多値化結果値から制御データを迅速に生成することができる。従って、画像データから迅速に制御データを生成することが可能となり、延いては画像を迅速に出力することが可能となる。
【００３１】
更に、必要に応じて画素群を複数の領域に分割し、各領域毎にドット形成の有無を判断しているので、ドット形成の有無を適切に決定して制御データを生成することができる。こうして得られた制御データに基づいてドットの生成を制御してやれば、高画質な画像を出力することが可能となる。
【００３２】
前述した課題の少なくとも一部を解決するために、本発明の第２の画像出力装置は、次の構成を採用した。すなわち、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００３３】
また、上記の画像出力装置に対応する本発明の第２の画像出力方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る工程（Ａ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定する工程（Ｂ）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（Ｃ）と
を備えることを要旨とする。
【００３４】
かかる本発明の第２の画像出力装置および第２の画像出力方法においては、画像データとして、画素群を分割する複数の領域毎に得られた多値化結果値を受け取ると、復号用対応関係を参照することによって、画素群内の各画素についてドット形成の有無を決定する。この復号用対応関係には、多値化結果値と画素群内の各画素についてのドット形成有無とが、画素群毎に関連づけられている。従って、復号用対応関係を参照すれば、多値化結果値からドット形成の有無を迅速に決定することができる。尚、復号用対応関係には、多値化結果値と、各画素のドット形成有無とが、画素群毎に関連づけられていることから、多値化結果値は、画素群と組み合わせて初めて解釈可能な形態で受け取ることもできるし、画素群によらず多値化結果値だけで解釈可能な形態で受け取ることも可能である。こうにして決定したドット形成有無に基づいてドットを形成することにより画像を出力する。
【００３５】
画素毎についてドット形成の有無を表すデータに比べれば、多値化結果値はたいへんに少ないデータ量で表現することができるので、速やかに受け取ることが可能であり、延いては画像を迅速に出力することができる。また、画素群を分割する領域毎に多値化結果値を受け取って、領域毎にドット形成有無を決定しているため、画素群内で階調値が大きく変化している場合であっても、適切にドット形成の有無を決定することができる。このため、高画質な画像を出力することが可能となる。
【００３６】
こうした第２の画像出力装置においては、画素群毎に、少なくとも１つずつ多値化結果値を受け取ることとして、多値化結果値を１つだけ受け取った画素群については、該多値化結果値と前記順序値とに基づいて該画素群毎に、ドット形成の有無を決定することとしてもよい。
【００３７】
こうすれば、画素群を分割する領域毎に多値化結果値を受け取る場合に比べて、迅速に画像データを受け取ることができる。このため、迅速に画像を出力することが可能となるので好ましい。
【００３８】
また、こうした第２の画像出力装置においては、画素群を分類番号によって識別しながら、各画素群についての多値化結果値を受け取ることとしてもよい。そして、多値化結果値と画素群内の各画素についてのドット形成の有無とが、分類番号毎に関連づけられた復号用対応関係を参照することにより、各画素についてのドット形成有無を決定することとしても良い。
【００３９】
分類番号を用いれば、いたずらに画素群の種類を増加させることなく、各画素群を適切に識別することができる。また、画素群を分類番号によって識別することとして、分類番号毎に多値化結果値とドット形成有無とを関連づけておけば、復号用対応関係に設定されるデータ量を抑制することが可能となる。尚、画素群を識別するための分類番号は、画像中での画素群の位置に応じて付与することとしてもよい。こうすれば、画像中での位置に応じて適切に分類番号を付与することで、適切にドットを発生させて高画質な画像を出力することが可能となる。
【００４０】
また、こうした第２の画像出力装置においては、画素群内の各画素についてのドット形成有無を、次のようにして決定することとしても良い。先ず、復号用対応関係を参照してそれぞれの多値化結果値を復号することにより、画素群内の全画素についてのドット形成有無を、多値化結果値の個数に相当する組だけ取得する。こうして得られた複数組の復号結果から、それぞれの多値化結果値が得られた各領域でのドット形成有無を選択することにより、画素群内の各画素についてのドット形成有無を決定することとしても良い。
【００４１】
こうすれば、多値化結果値をドット形成有無のデータに復号する際に、該結果値が得られた領域を意識することなく復号することができるので、復号する処理を簡素なものとすることができる。また、多値化結果値を復号した後に、各領域でのドット形成有無を選択することから、領域内の各画素のドット形成有無を簡単に決定することができる。このため、画素群内の全画素についてのドット形成有無を簡素な処理で決定することが可能となるので好適である。
【００４２】
尚、画素群内の各画素についてのドット形成有無を決定するに際しては、上述した方法に代えて、次のようにして決定することも可能である。先ず、多値化結果値を復号する際に、それぞれの多値化結果値が得られた領域に相当する部分のみを復号する。そして、得られたドット形成有無を組み合わせることで、画素群内の各画素についてのドット形成有無を決定することとしてもよい。こうすれば、必要な部分のみ復号することになるので、復号結果を直ちに組み合わせることができ、その結果、画素群内の各画素についてのドット形成有無を迅速に決定することが可能となる。
【００４３】
また、こうした第２の画像出力装置においては、次のようにして画素群内の各画素についてのドット形成有無を決定しても良い。すなわち、画素群が、予め定められた態様で複数の領域に分割されているものとして、各領域についてのドット形成有無を決定することとしてもよい。
【００４４】
このようにして画素群が分割された態様を予め定めておけば、複数の多値化結果値に基づいて、画素群内の各画素についてドット形成有無を簡便に決定することができる。
【００４５】
尚、１つの画素群について受け取った多値化結果値の個数と、画素群を所定の態様で分割した時に生成される領域の数とは、一致していることが望ましいことは言うまでもない。しかし、受け取った多値化結果値の個数が、生成される領域の個数よりも多い場合でも、多値化結果値の中から適宜選択してやれば、画素群を分割しない場合に比べれば依然として画質を向上させることができる。
【００４６】
また、予め設定しておく画素群の分割態様としては、画素群を大きさの等しい複数の領域に分割する態様としておくことが望ましい。ここで、「領域の大きさが互いに等しい」とは、領域内に同数の画素を含んでいることを意味している。各領域の大きさが等しければ、多値化結果値から各画素についてのドット形成有無を決定する処理は、各領域でほぼ同様な処理とすることができる。このため、画素群内の各画素についてのドット形成有無を決定する処理を簡素なものとすることができる。
【００４７】
更に、予め設定しておく画素群の分割態様としては、画素群を２つの領域に等分する
態様としておくことができる。
【００４８】
一般に画像データには、近接する画素間では、同一あるいは近似した階調値を取る傾向がある。このため、１つの画素群が３つ以上の領域に分割されることは、２つの領域に分割されることに比べれば、ごく僅かな場合に過ぎない。このため、画素群を２つに分割する態様を記憶しておけば、多くの場合に適用することが可能である。加えて、これら２つの領域の大きさが、互いに等しくなっていれば、より一層多くの場合に適用することが可能となる。
【００４９】
尚、画素群が矩形形状となっている場合は、長手方向の辺で画素群を２つに分割することとしても良い。例えば横に長い矩形の画素群を、左右２つの領域に分割してもよい。あるいは、縦長の矩形の画素群を、上下２つの領域に分割することとしても良い。画素間に距離があるほど、画素の階調値も隔たっている可能性が高くなるから、予め定められた分割の態様が、画素群を長手方向の辺で分割する態様であれば、多くの場合に適用することができるので好ましい。
【００５０】
また、多値化結果値とともに、画素群の分割態様を表す分割パターンを受け取ることとしてもよい。そして、画素群内の各画素についてのドット形成有無を決定するに際しては、画素群が分割パターンに示された態様で分割されているものとして、その画素群内の各画素についてのドット形成有無を決定することとしてもよい。
【００５１】
こうすれば、複数の多値化結果値を受け取った後、適切な分割パターンを選択して画素群を分割することで、各画素についてのドット形成有無を適切に決定することが可能となる。このため、より高画質な画像を出力することが可能となるので好ましい。
【００５２】
上述した各種の画像出力装置においては、画素毎のドット形成の有無を表す値が該画素群内での画素位置に応じた所定の順序で並んだデータを、多値化結果値と関連づけた状態で、復号用対応関係に設定しておくこととしても良い。
【００５３】
復号用対応関係に、このようなデータを設定しておけば、多値化結果値から復号用対応関係を参照するだけで、画素群内の各画素についてのドット形成有無を決定することができる。すなわち、簡素な処理で迅速にドット形成有無を決定することができるので、画像を迅速に出力することが可能となる。
【００５４】
また、上述した各種の画像出力装置においては、少なくとも１００種類以上の画素群毎に、多値化結果値と、画素群内の各画素についてのドット形成有無とが関連づけられた復号用対応関係を参照して、ドット形成有無を決定することとしてもよい。
【００５５】
画素群毎に多値化結果値からドット形成の有無を決定した場合、複数の画素群に亘って一定のパターンでドットが繰り返し形成されてしまうことがある。もちろん、本願において参照される復号用対応関係には、多値化結果値とドット形成有無とが画素群毎に関連づけられているので、単純に多値化結果値とドット形成有無とが関連づけられている場合と比べれば、一定のパターンが表れ難くなっていると言うことができる。しかし、画素群の種類があまりに少ないのでは、パターンの発生を十分に抑制することは困難である。パターンが発生することを回避するためには、できるだけ多くの種類の画素群について、多値化結果値と、画素群内のドット形成有無とを関連づけておくことが望ましいが、経験上、１００種類以上の画素群について関連づけておけば、一定のパターンが現れることを、実用上の問題が発生しない程度に抑制することが可能となる。
【００５６】
また、上述した画像出力装置においては、復号用対応関係に設定されている画素群の種類数と、画素群にまとめられる画素数との乗算値が、少なくとも１０００以上となるように設定することとしても良い。
【００５７】
画素群内の各画素についてドット形成の有無を決定するに際しては、多値化結果値に加えて、その多値化結果値がいずれの画素群について得られたかも考慮される。従って、例え多値化結果値が同じであっても、画素群が異なっていれば、それぞれの画素群内では異なるパターンでドットが発生することになる。ここで、画素群にまとめられた画素数が少なければ、画素群内でドットが分布する態様も僅かな種類しか取り得ないので、複数の画素群に亘ってドットが一定のパターンで発生し易くなる。逆に言えば、画素群にまとめられる画素数が多ければ、画素群内でのドットの分布は多くの態様を取ることができるので、それだけドットが一定のパターンで発生することを抑制することができる。経験によれば、復号用対応関係に設定されている画素群の種類数と、画素群にまとめられる画素数との乗算値が１０００以上となるように設定しておけば、ドットが一定のパターンで発生することを、実用上の問題がない程度に抑制することが可能となる。
【００５８】
更には、上述した各種の画像出力装置においては、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能として、次のようにして画像を出力しても良い。先ず、復号用対応関係には、多値化結果値と、複数種類のドットについての形成有無とを、画素群毎に関連づけて記憶しておく。そして多値化結果値を受け取ると、この復号用対応関係を参照することにより、画素群内の各画素についてドット形成の有無を決定して、画像を出力することとしてもよい。
【００５９】
こうすれば、多値化結果値から決定した各種ドットの形成有無に基づいてドットを形成することができるので、高画質な画像を迅速に出力することが可能となる。また、このような複数種類のドットを形成可能な画像出力装置において、多値化結果値を受け取ることは、次のような理由から、画像を迅速に出力する上で効果的である。まず、複数種類のドットを形成可能な場合、各画素についてのドットの形成有無をドットの種類毎に表したデータは、どうしてもデータ量が大きくなってしまうので、データの授受に時間がかかってしまう。更に、ドットの種類が多くなるほど、ドット形成の有無を判断するために要する時間が長くなってしまう傾向にあり、画像を迅速に出力することが困難である。これに対して、多値化結果値を受け取ることとすれば、ドットの種類が多くなった場合でも迅速にデータを供給することが可能である。加えて、復号用対応関係を参照してドット形成の有無を決定しているために、各画素についてのドット形成有無を迅速に決定することが可能であり、延いては、迅速に画像を出力することが可能となる。
【００６０】
更に本発明は、上述した各種の画像出力方法あるいは画像処理方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した第１の画像出力方法に対応する本発明のプログラムは、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する第１の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第２の機能と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する第３の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第４の機能と
を実現することを要旨とする。
【００６１】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する第１の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第２の機能と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する第３の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第４の機能と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００６２】
また、上述した第２の画像出力方法に対応する本発明のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る機能（Ａ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定する機能（Ｂ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（Ｃ）と
を実現することを要旨とする。
【００６３】
また、上記のプログラムに対応する本発明の記録媒体は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を分割する複数の領域毎に、各領域を代表する階調値を多値化して得られた多値化結果値を、前記画像データとして受け取る機能（Ａ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を、該多値化結果値が得られた領域毎に決定する機能（Ｂ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（Ｃ）と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００６４】
また、上述した画像処理方法に対応する本発明のプログラムは、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する機能（ア）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する機能（ウ）と、
前記決定したドット形成の有無を前記制御データとして出力する機能（エ）と
を実現することを要旨とする。
【００６５】
また、上記のプログラムに対応する本発明の記録媒体は、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群毎に、該画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する機能（ア）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が得られた領域毎に各画素についてのドット形成有無を決定する機能（ウ）と、
前記決定したドット形成の有無を前記制御データとして出力する機能（エ）と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００６６】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現させれば、高画質な画像を迅速に出力することが可能となる。
【発明を実施するための最良の形態】
【００６７】
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
Ａ．実施例の概要：
Ｂ．装置構成：
Ｃ．第１実施例の画像印刷処理の概要：
Ｃ−１．個数データから画素位置を決定可能な原理：
Ｃ−２．第１実施例の多値化結果値生成処理：
Ｃ−３．分類番号の決定方法：
Ｃ−４．多値化用テーブル：
Ｃ−５．多値化結果値のデータ形式：
Ｃ−６．第１実施例のドット形成有無決定処理：
Ｃ−７．第１実施例の変形例：
Ｄ．第２実施例：
Ｄ−１．第２実施例の画像印刷処理の概要：
Ｄ−２．第２実施例の多値化結果値生成処理：
Ｄ−２−１．ディザ法を用いた大中小ドットの形成個数の決定処理：
Ｄ−２−２．第２実施例の多値化結果値生成処理の内容：
Ｄ−３．第２実施例のドット形成有無決定処理：
Ｅ．第３実施例：
Ｅ−１．第３実施例の多値化結果値生成処理：
Ｅ−２．第３実施例のドット形成有無決定処理：
Ｅ−３．第３実施例の多値化用テーブルの設定方法：
Ｅ−４．第３実施例の変形例：
【００６８】
Ａ．実施例の概要  ：
実施例の詳細な説明に入る前に、図１を参照しながら、実施例の概要について説明しておく。図１は、印刷システムを例にとって、本実施例の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ１０と、画像出力装置としてのプリンタ２０等から構成されており、コンピュータ１０に所定のプログラムがロードされて実行されると、コンピュータ１０およびプリンタ２０などが全体として、一体の画像出力システムとして機能する。プリンタ２０は、印刷媒体上にドットを形成することによって画像を印刷する。コンピュータ１０は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ２０が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ２０に供給する。
【００６９】
一般的な印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータで所定の画像処理を施すことにより、画像データを、画素毎にドット形成の有無を表すデータに変換する。次いで、得られたデータをプリンタに供給し、プリンタでは供給されたデータに従ってドットを形成することにより画像を印刷する。ここで、印刷しようとする画像の画素数が多くなると、それに伴って、画像処理に要する時間が増加して、画像を迅速に印刷することが困難となる。また、画素数が多くなるにつれて、画素毎にドット形成の有無を表すデータのデータ量が増加するので、コンピュータからプリンタにデータを出力するために要する時間が長くなり、それだけ印刷に要する時間が増加してしまう。
【００７０】
こうした点に鑑みて、図１に例示した印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータ１０では、画像を構成する画素を、所定の複数個ずつまとめて画素群を生成する。次いで、画素群を分割する複数の領域について、各領域の階調値を代表する代表階調値を決定する。図１では、画素群が２つの領域に分割されている様子が概念的に示されている。図中に破線で示した小さな正方形は、画素を概念的に表したものである。図示した例では、画素群は８つの画素から構成されており、細かい斜線が付された領域Ａと、粗い斜線が付された領域Ｂの２つの領域に分割されている。代表階調値決定モジュールでは、このような領域毎に代表階調値を決定する。尚、画素群を常に分割するのではなく、画素群内の階調値に基づいて分割するか否かを判断することとしても良い。この様な場合は、分割しないものと判断された画素群については、代表階調値が１つだけ決定されることになる。
【００７１】
こうして得られた代表階調値は、多値化モジュールに供給されて多値化され、多値化結果値に変換される。代表階調値の多値化は、多値化用対応関係記憶モジュールに記憶されている多値化用対応関係を参照することによって行う。多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に関連づけられているため、かかる対応関係を参照することで、代表階調値を迅速に多値化結果値に変換することができる。尚、代表階調値は、画素群内の領域毎に決定されるから、多値化結果値も領域毎に得られることになる。もちろん、画素群を分割するか否かを判断することとして、分割しないと判断された画素群については、多値化結果値が１つだけ得られることになる。コンピュータ１０は、こうして得られた多値化結果値をプリンタ２０に向かって出力する。
【００７２】
プリンタ２０では、画素群内の各領域についての多値化結果値を受け取ると、各画素についてのドット形成の有無を領域毎に決定する。ドット形成の有無は次のようにして決定される。先ず、多値化結果値と、画素群内の各画素についてのドット形成の有無を表すデータとが、画素群毎に関連づけられた復号用対応関係を、復号用対応関係記憶モジュールに予め記憶しておく。そして、ドット形成有無決定モジュールは、画素群内の各領域について得られた多値化結果値から、復号用対応関係を参照することにより、各画素についてのドット形成有無を、領域毎に決定する。もちろん、画素群を分割するか否かを判断することとして、多値化結果値が１つだけ得られた画素群については、そのまま画素群内の各画素についてのドット形成有無を決定することとしても良い。このようにして得られたドット形成有無の決定結果に従って、ドット形成モジュールがドットを形成することによって画像が印刷される。
【００７３】
ここで、画素毎にドット形成の有無を表すデータに比べれば、画素群毎の多値化結果値は遙かに小さなデータ量とすることができる。従って、コンピュータ１０から画素毎にドット形成の有無を表したデータをプリンタ２０に供給する代わりに、画素毎の多値化結果値を供給してやれば、極めて迅速にデータを転送することが可能となる。
【００７４】
また、多値化結果値は、代表階調値と多値化結果値とが関連づけられた多値化用対応関係を参照することによって、迅速に求めることができる。更に、各画素についてのドット形成の有無についても、多値化結果値から復号用対応関係を参照することで迅速に決定することができる。このため、生成した多値化結果値をプリンタ２０に迅速に供給可能なことと相まって、たとえ画素数の多い画像であっても迅速に画像を印刷することが可能となる。
【００７５】
加えて、多値化結果値を生成する処理も、あるいは各画素についてのドット形成有無を決定する処理も、それぞれに専用の対応関係を参照することで、極めて簡素な処理で実行することができる。このため、いずれの処理についても、コンピュータ１０のような高度な処理能力を有する機器ではなく、例えばプリンタ２０あるいはデジタルカメラなどの内部でも実施することが可能となる。
【００７６】
更に、画素群内を分割する複数の領域毎に代表階調値を多値化した後、各画素のドット形成の有無を領域毎に決定していることから、たとえ、画素群内で階調値が大きく変化している場合でも、ドット形成の有無を適切に決定して高画質な画像を出力することが可能となる。以下では、こうした印刷システムを例に用いることにより、本発明の各種実施例について詳細に説明する。
【００７７】
Ｂ．装置構成  ：
図２は、本実施例の画像処理装置としてのコンピュータ１００の構成を示す説明図である。コンピュータ１００は、ＣＰＵ１０２を中心に、ＲＯＭ１０４やＲＡＭ１０６などが、バス１１６で互いに接続して構成された周知のコンピュータである。
【００７８】
コンピュータ１００には、フレキシブルディスク１２４やコンパクトディスク１２６等のデータを読み込むためのディスクコントローラＤＤＣ１０９や、周辺機器とデータの授受を行うための周辺機器インターフェースＰＩＦ１０８、ＣＲＴ１１４を駆動するためのビデオインターフェースＶＩＦ１１２等が接続されている。ＰＩＦ１０８には、後述するカラープリンタ２００や、ハードディスク１１８等が接続されている。また、デジタルカメラ１２０やカラースキャナ１２２等をＰＩＦ１０８に接続すれば、デジタルカメラ１２０やカラースキャナ１２２で取り込んだ画像を印刷することも可能である。更に、ネットワークインターフェースカードＮＩＣ１１０を装着すれば、コンピュータ１００を通信回線３００に接続して、通信回線に接続された記憶装置３１０に記憶されているデータを取得することもできる。
【００７９】
図３は、本実施例のカラープリンタ２００の概略構成を示す説明図である。カラープリンタ２００はシアン，マゼンタ，イエロ，ブラックの４色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら４色のインクに加えて、染料または顔料濃度の低いシアン（淡シアン）インクと、染料または顔料濃度の低いマゼンタ（淡マゼンタ）インクとを含めた合計６色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク，マゼンタインク，イエロインク，ブラックインク，淡シアンインク，淡マゼンタインクのそれぞれを、Ｃインク，Ｍインク，Ｙインク，Ｋインク，ＬＣインク，ＬＭインクと略称することがあるものとする。
【００８０】
カラープリンタ２００は、図示するように、キャリッジ２４０に搭載された印字ヘッド２４１を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ２４０をキャリッジモータ２３０によってプラテン２３６の軸方向に往復動させる機構と、紙送りモータ２３５によって印刷用紙Ｐを搬送する機構と、ドットの形成やキャリッジ２４０の移動および印刷用紙の搬送を制御する制御回路２６０などから構成されている。
【００８１】
キャリッジ２４０には、Ｋインクを収納するインクカートリッジ２４２と、Ｃインク，Ｍインク，Ｙインクの各種インクを収納するインクカートリッジ２４３とが装着されている。インクカートリッジ２４２，２４３をキャリッジ２４０に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド２４１の下面に設けられた各色毎のインク吐出用ヘッド２４４ないし２４７に供給される。
【００８２】
図４は、インク吐出用ヘッド２４４ないし２４７におけるインクジェットノズルＮｚの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、Ｃ，Ｍ，Ｙ，Ｋの各色のインクを吐出する４組のノズル列が形成されており、１組のノズル列あたり４８個のノズルＮｚが、一定のノズルピッチｋで配列されている。
【００８３】
制御回路２６０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、ＰＩＦ（周辺機器インターフェース）等がバスで相互に接続されて構成されている。制御回路２６０は、キャリッジモータ２３０および紙送りモータ２３５の動作を制御することによってキャリッジ２４０の主走査動作および副走査動作を制御するとともに、コンピュータ１００から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路２６０の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ２００はカラー画像を印刷することができる。
【００８４】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインク滴を吐出する方式や、インク通路に配置したヒータでインク通路内に泡（バブル）を発生させてインク滴を吐出する方法などを用いることができる。また、インク滴を吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【００８５】
以上のようなハードウェア構成を有するカラープリンタ２００は、キャリッジモータ２３０を駆動することによって、各色のインク吐出用ヘッド２４４ないし２４７を印刷用紙Ｐに対して主走査方向に移動させ、また紙送りモータ２３５を駆動することによって、印刷用紙Ｐを副走査方向に移動させる。制御回路２６０は、キャリッジ２４０の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ２００は印刷用紙上にカラー画像を印刷している。
【００８６】
尚、カラープリンタ２００にも、制御回路２６０内にはＣＰＵ，ＲＡＭ，ＲＯＭなどが搭載されていることから、コンピュータ１００が行う処理をカラープリンタ２００内で実施することも可能である。このような場合は、デジタルカメラ１２０などで撮影した画像の画像データをカラープリンタ２００に直接供給して、制御回路２６０内で必要な画像処理を実施することにより、カラープリンタ２００から直接画像を印刷することも可能となる。
【００８７】
Ｃ．第１実施例の画像印刷処理の概要  ：
以下では、上記のようなコンピュータ１００およびカラープリンタ２００が、画像を印刷するために、それぞれの内部で行われる画像処理（画像印刷処理）について説明する。ここでは、理解の便宜を図るため、初めに画像印刷処理の全体像について簡単に説明し、次に、こうした画像印刷処理が可能である原理について説明する。そして最後に、それぞれの処理の詳細な内容について説明する。
【００８８】
尚、以下では、画像印刷処理の前半部分はコンピュータ１００で実施され、後半部分はカラープリンタ２００で実施されるものとして説明するが、これらの処理をカラープリンタ２００の内部で実施したり、あるいはデジタルカメラ１２０等、画像データを生成する機器の内部で実施することも可能である。もちろん、画像印刷処理の前半部分の処理をデジタルカメラ１２０などで実施して、後半部分の処理をカラープリンタ２００で実施することとしても良い。すなわち、本実施例の画像印刷処理によれば、後ほど詳細に説明するように、前半部分の処理および後半部分の処理をたいへん簡素なものとすることができる。このため、カラープリンタ２００やデジタルカメラ１２０などのように、コンピュータ１００のようには高い処理能力を有していない機器を用いた場合でも、画像印刷処理を迅速に実施することが可能であり、従って、コンピュータ１００を使用せずとも十分に実用的な印刷システムを構成することができる。
【００８９】
図５は、第１実施例の画像印刷処理の全体的な流れを示すフローチャートである。以下では、図５を参照しながら、画像印刷処理の全体像について簡単に説明する。第１実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ１００が画像データの読み込みを開始する（ステップＳ１００）。ここでは、画像データはＲＧＢカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについても同様に適用することができる。また、カラープリンタに限らず単色プリンタについても同様に適用することが可能である。
【００９０】
カラー画像データの読み込みに続いて、色変換処理を行う（ステップＳ１０２）。色変換処理とは、Ｒ，Ｇ，Ｂの階調値の組合せによって表現されているＲＧＢカラー画像データを、印刷のために使用されるインク各色についての階調値の組合せによって表現された画像データに変換する処理である。前述したように、カラープリンタ２００はＣ，Ｍ，Ｙ，Ｋの４色のインクを用いて画像を印刷している。そこで、第１実施例の色変換処理ではＲＧＢ各色によって表現された画像データを、Ｃ，Ｍ，Ｙ，Ｋの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル（ＬＵＴ）と呼ばれる３次元の数表を参照することで行う。ＬＵＴには、ＲＧＢカラー画像データに対して、色変換によって得られるＣ，Ｍ，Ｙ，Ｋ各色の階調値が予め記憶されている。ステップＳ１０２の処理では、このＬＵＴを参照することにより、ＲＧＢカラー画像データをＣ，Ｍ，Ｙ，Ｋ各色の画像データに迅速に色変換することが可能である。
【００９１】
色変換処理を終了すると、解像度変換処理を開始する（ステップＳ１０４）。解像度変換処理とは、画像データの解像度を、プリンタ２００が画像を印刷する解像度（印刷解像度）に変換する処理である。画像データの解像度が印刷解像度よりも低い場合は、画素間に新たな画像データを生成し、逆に画像データの解像度が印刷解像度よりも高い場合には、一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に一致させる処理を行う。
【００９２】
今日では、高画質化の要請、あるいは大画像化の要請に伴って、解像度変換処理では、画像データをより高解像度の印刷解像度に変換することがしばしば行われている。この場合、補間演算を行って画素間に新たな画像データを生成することも可能であるが、簡便には１つの画素を複数の画素に分割することで、新たな画像データを生成することとしても良い。もちろん、１つの画素を単純に分割して高解像度化する場合、隣接する画素間の階調変化が滑らかになっているわけではない。すなわち、実質的な解像度が増加しているわけではなく、見かけ上の解像度が増加したに過ぎない。しかし、ドットを形成して画像を印刷する場合、１つの画素で表現可能な階調数は高々数階調に過ぎず、画像データが表現可能な階調数に対して遙かに少ないことから、この様な解像度変換であっても画質の向上には有効であり、単純に画素を分割して見かけ上の解像度を高解像度化する解像度変換処理も一般的に行われている。
【００９３】
以上のようにして解像度を印刷解像度に変換したら、コンピュータ１００は、多値化結果値生成処理を開始する（ステップＳ１０６）。多値化結果値生成処理の詳細な内容は後ほど詳しく説明することとして、ここでは概要のみを説明する。この処理では、互いに所定の位置関係にある画素を所定個数ずつ画素群としてまとめることにより、１つ画像を複数の画素群に分割する。画素群としてまとめられ画素数は、必ずしも全ての画素群が同数である必要はなく、例えば、複数の画素数を規則的に切り換えたり、あるいは画像中での位置に応じて画素群にまとめられる画素数を切り換えることも可能であるが、ここでは理解の便宜から、最も単純な場合として全画素群が同数の画素を有するものとして説明する。
【００９４】
次いで、画素群にまとめられた各画素の画像データに基づいて、画素群を分割するか否かを判断する。そして、分割しない画素群については、画素群内の画像データを代表する階調値（代表階調値）を決定する。一方、分割すると判断した画素群については、画素群を分割して生成した各領域の画像データを代表する階調値を求め、それぞれの領域の代表階調値として決定する。すなわち、画素群の中には、分割されて複数の代表階調値が決定される画素群と、分割されることなく１つだけ代表階調値が決定される画素群とが存在することになる。もっとも、分割するか否かの判断を省略して、画素群を常に分割するものとして扱うことも可能である。この場合は、全ての画素群について複数の代表階調値が決定されることになる。常に複数の代表階調値が得られる場合を基準に考えれば、以下に説明する第１実施例の処理は、１つだけ代表階調値が得られる場合を追加したものと考えることができる。従って、この意味からは、画素群を常に分割する処理の方が単純な処理と見ることもできる。しかし、画素群を常に分割することの技術的な意味を理解するためには、先に、画素群を分割しない場合について理解しておいた方が便宜である。そこで、第１実施例としては、画素群を分割するか否かを判断する実施例について説明し、その後に、第１実施例の変形例として、画素群を常に分割する実施例について説明する。
【００９５】
このようにして代表階調値を決定したら、この代表階調値を多値化することによって多値化結果値を生成する。多値化結果値が示す内容はどのようなものとすることも可能であるが、ここでは画素群内に形成すべきドットの個数を示すデータであるものとする。すなわち、代表階調値は画素群内の各画素の画像データを代表する階調値であるから、代表階調値が大きくなると、それにつれて画素群内に形成されるドットの個数は増加する。従って、画素群の代表階調値から該画素群内に形成するドット個数を決定する処理を、一種の多値化と見ることができ、この場合は、ドットの個数が多値化結果値に相当していることになる。尚、多値化結果値は、ドットの個数に変換することが可能な値であれば良い。すなわち、必ずしもドットの個数そのものではなく、間接的にドットの個数を表す値であっても構わない。
【００９６】
また、詳細には後述するが、代表階調値を多値化する処理は、代表階調値と多値化結果値とを画素群毎に対応付けた多値化用テーブルを参照することにより、迅速に行うことができる。こうして多値化結果値が得られたらカラープリンタ２００に出力する。ここで、画素群が複数の領域に分割された場合は複数の代表階調値が得られるから、多値化結果値も複数得られている。従って、この様な画素群については、複数の多値化結果値がカラープリンタ２００に出力されることになる。多値化結果値生成処理では、このようにして、各画素についての画像データに基づいて、画素群毎に１つまたは複数の多値化結果値を生成した後、カラープリンタ２００に供給する処理を行う。
【００９７】
カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から多値化結果値を受け取ると、ドット形成有無決定処理を開始する（ステップＳ１０８）。すなわち、カラープリンタ２００は、画像を構成する各画素にドットを形成することによって画像を印刷していることから、画像の印刷に先立って、各画素についてドットを形成するか否かを決定しておく必要がある。そこで、コンピュータ１００から画素群毎に多値化結果値を受け取ると、画素群内の各画素についてドットを形成するか否かを決定する処理を行うのである。
【００９８】
ここで多値化結果値から画素群内の各画素についてドット形成の有無を決定する手法としては、いわゆる濃度パターン法と呼ばれる手法が知られている。この濃度パターン法による処理に対して、本実施例のドット形成有無決定処理は、多値化結果値と画素群内の各画素についてのドット形成の有無との対応関係が、画素群毎に設定されている点で大きく異なっている。このような違いから、本実施例のドット形成有無決定処理によれば、濃度パターン法では実現することが不可能な、次のような大きな利点を得ることができる。すなわち、一般的な濃度パターン法では、実質的な解像度が、多値化を行った画素群の解像度まで低下してしまい、画質の悪化を招き易い傾向がある。これに対して、本実施例のドット形成有無決定処理では、画素群毎に記憶されている順序値を参照しながらドット形成の有無を決定しているために、画素群の大きさに依存して画質が悪化することがない。更に、いわゆるブルーノイズマスク、あるいはグリーンノイズマスクと呼ばれるディザマトリックスを用いることで実現されるような、ドットが良好に分散した高画質な画像を印刷することが可能となる。本実施例のドット形成有無決定処理の詳細な内容、および、かかる処理を行ってドット形成の有無を決定することで、こうした特性が得られる理由については、後ほど詳しく説明する。
【００９９】
以上のようにして、画素群内の各画素についてドット形成の有無を決定したら、決定したドット形成の有無に従って、出力媒体上にドットを形成する処理を行う（ステップＳ１１０）。すなわち、図３を用いて説明したように、キャリッジ２４０の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
【０１００】
このように、第１実施例の画像印刷処理では、コンピュータ１００からカラープリンタ２００に向かって、多値化結果値を供給するものの、画素毎にドット形成の有無を示すデータは供給していない。画素毎にドット形成の有無を表現することに比べれば、多値化結果値は遙かに少ないデータ量で表現することができることから、このような方法を採用することで、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを供給することが可能となる。
【０１０１】
例えば、各画素に形成可能なドットは１種類であるとする。この場合、各画素はドットが形成されるか否かのいずれかの状態しか取り得ないから画素あたりのデータ長は１ビットとなる。また、１つの画素群には８つの画素がまとめられているとすれば、画素群内の全画素についてドット形成の有無を表現するためには、８ビットのデータ長が必要となる。一方、画素群内に形成されるドットの個数は、０個〜８個のいずれかの９通りしか取り得ない。９通りであれば４ビットあれば表現することができる。従って、画素群の代表階調値をドット個数のデータに多値化しておけば、多値化結果値は４ビットのデータ長で表現可能となる。このように、画素毎にドット形成の有無を表すデータに比べて、多値化結果値は遙かに少ないデータ量で表現することができるので、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを供給することが可能となる。もちろん、画素群を分割した場合には画素群あたり複数の多値化結果値を供給しなければならないが、後述するように、画像データは近接する画素間では近似した階調値を取る傾向があるため、画素群が分割される割合は僅かである。このため、画像全体としてはカラープリンタ２００に供給されるデータ量の増加は僅かなものに過ぎず、迅速に多値化結果値を供給することが可能である。
【０１０２】
加えて、詳細には後述するが、各画素についてのドット形成の有無を適切に決定してやれば、多値化結果値を供給した場合でも、画質が悪化することはない。特に、所定の条件下では、画素毎にドット形成の有無を表すデータを供給した場合と全く同じ結果を得ることが可能である。加えて、画素群内の各画素の画像データに基づいて画素群を分割し、それぞれの領域についての多値化結果値を生成してカラープリンタ２００に供給することができるので、画素群内で画像データが大きく変化している場合でも、画質を低下させることなく画像を印刷することが可能である。
【０１０３】
更に、後述するアルゴリズムを用いれば、多値化結果値を生成する処理や、多値化結果値から各画素についてのドット形成の有無を決定する処理は、極めて簡素な処理によって実現することができ、しかも極めて迅速に実行することが可能である。このため、コンピュータ１００のような高度な処理能力を有する画像処理装置を用いずとも、例えばデジタルカメラ１２０やカラープリンタ２００などの内部で実行することも可能である。こうした場合には、デジタルカメラ１２０で撮影した画像データを直接カラープリンタ２００に供給して、高画質なカラー画像を印刷することも可能となる。
【０１０４】
Ｃ−１．個数データから画素位置を決定可能な原理  ：
以下では、上述した方法を採用した場合、すなわち、画素群に形成するドット個数を示す多値化結果値を、コンピュータ１００からカラープリンタ２００に供給し、この多値化結果値に基づいて、画素群内の各画素についてドット形成の有無を決定した場合でも、画質を悪化させることなく画像を印刷することが可能な原理について説明する。
【０１０５】
説明の都合上、先ず初めに、ディザ法について説明する。ディザ法とは、画像データを画素毎にドット形成の有無を表すデータに変換するために用いられる代表的な手法である。この手法では、ディザマトリックスと呼ばれるマトリックスに閾値を設定しておき、画像データの階調値とディザマトリックスに設定されている閾値とを画素毎に比較して、画像データの階調値の方が大きい画素についてはドットを形成すると判断し、そうでない画素についてはドットを形成しないと判断する。このような判断を画像中の全画素について行えば、画像データを画素毎にドット形成の有無を表すデータに変換することができる。
【０１０６】
図６は、ディザマトリックスの一部を概念的に例示した説明図である。図示したマトリックスには、横方向（主走査方向）に１２８画素、縦方向（副走査方向）に６４画素、合計８１９２個の画素に、階調値１〜２５５の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が１〜２５５の範囲から選択されているのは、本実施例では、画像データが階調値０〜２５５の値を取り得る１バイトデータとしていることに加えて、画像データの階調値と閾値とが等しい場合には、その画素にはドットを形成するものと判断していることによるものである。
【０１０７】
すなわち、ドットが形成されるのは画像データの階調値が閾値よりも大きい画素に限る（すなわち階調値と閾値が等しい画素にはドットは形成しない）とした場合、画像データの取り得る最大階調値と同じ値の閾値を有する画素には、決してドットが形成されないことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最大階調値を除いた範囲とする。逆に、画像データの階調値と閾値が等しい画素にもドットを形成するとした場合、画像データの取り得る最小階調値と同じ値の閾値を有する画素には、常にドットが形成されてしまうことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最小階調値を除いた範囲とする。本実施例では、画像データの取り得る階調値が０〜２５５であり、画像データと閾値が等しい画素にはドットを形成するとしていることから、閾値の取り得る範囲を１〜２５５としておくのである。尚、ディザマトリックスの大きさは、図６に例示したような大きさに限られるものではなく、縦と横の画素数が同じマトリックスも含めて種々の大きさとすることができる。
【０１０８】
図７は、ディザマトリックスを参照しながら、各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成の有無を判断するに際しては、先ず、判断しようとする画素を選択し、この画素についての画像データの階調値と、ディザマトリックス中で対応する位置に記憶されている閾値とを比較する。図７中に示した細い破線の矢印は、画像データの階調値と、ディザマトリックスに記憶されている閾値とを、画素毎に比較していることを模式的に表したものである。例えば、画像データの左上隅の画素については、画像データの階調値は９７であり、ディザマトリックスの閾値は１であるから、この画素にはドットを形成すると判断する。図７中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は９７、ディザマトリックスの閾値は１７７であり、閾値の方が大きいので、この画素についてはドットを形成しないと判断する。ディザ法では、こうしてディザマトリックスを参照しながら、画素毎にドットを形成するか否かを判断することで、画像データを画素毎にドット形成の有無を表すデータに変換する。
【０１０９】
図８は、ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。図８（ａ）は、画像データの一部を拡大して示したものであり、図中の小さな矩形は画素を、そして、それぞれの矩形の中に表示された数値は画像データの階調値を表している。図示されているように、画像データは、隣接する画素間では近似する（若しくは同一の）階調値が割り当てられる傾向がある。近年では、高画質化の要請から画像データの解像度は高くなる傾向にあるが、画像データの解像度が高くなるほど、隣接する画素間で近似もしくは同一の階調値が割り当てられる傾向も顕著となっている。更に、前述したように、画像データの解像度を印刷解像度に変換する際に、画素を複数の画素に分割して高解像度化した場合には、同一の画素から分割して生成された画素は全て同じ階調値を有することになる。
【０１１０】
図８（ｂ）は、ディザマトリックスの対応する位置に閾値が設定されている様子を示している。図８（ａ）に示した画像データの階調値と、図８（ｂ）に示したディザマトリックスの閾値とを画素毎に比較することによって、ドット形成の有無を判断する。図８（ｃ）は、こうして画素毎にドット形成の有無を判断した結果を示しており、図中で斜線を付した画素がドットを形成すると判断された画素である。
【０１１１】
ここで、隣接する画素を所定数ずつ画素群としてまとめ、画素群内でドットを形成すると判断された画素の個数を数えることを考える。一例として、主走査方向（図８中では横方向）に４画素分、副走査方向（図８中では縦方向）に２画素分の、合計８画素ずつを画素群としてまとめるものとする。図８（ｄ）は、こうしてまとめられたそれぞれの画素群について、ドットを形成すると判断された画素を数えることによって得られたドット個数を示している。第１実施例の画像印刷処理において、コンピュータ１００からカラープリンタ２００に供給される多値化結果値は、このような画素群毎に得られたドット個数のデータである。ドット個数を示す多値化結果値には、ドットを形成する画素位置に関する情報は含まれていない。しかし、次のようにすれば、ドットの個数から、ドットを形成する画素位置の情報を復元して、画素毎にドット形成の有無を表すデータを生成することができる。
【０１１２】
図９は、ドット個数を示すデータから、画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。図９（ａ）は、図８で画素群毎に形成するドットの個数を数えて得られた値を表している。また、図９（ｂ）は、図８で画素毎にドット形成の有無を判断するために参照したディザマトリックスを示している。前述したようにディザ法では、画像データの階調値と、ディザマトリックスの対応する画素位置に設定された閾値とを比較して、画像データの階調値の方が大きければ、その画素にはドットを形成すると判断しており、ディザマトリックスの閾値が小さくなるほどドットが形成され易くなる。このことから、ディザマトリックスはドットが形成される画素の順番を表していると考えることができる。
【０１１３】
ディザマトリックスの有するこうした性質に着目すれば、画素群内に形成されるドットの個数から、各画素についてのドット形成の有無を決定することができる。例えば、図９（ａ）に示した一番左上隅の画素群について説明すると、この画素群に形成されるドット個数は３個である。また、図９（ｂ）に示したディザマトリックスを参照すれば、この画素群内では、左上隅にある画素位置すなわち閾値「１」が設定されている画素位置が最もドットが形成され易い画素であると言える。従って、この画素群内で３つ形成されるドットの中の１つは、左上隅の画素に形成されているものと考えることができる。同様にして、残りの２つのドットは、この画素群内で２番目にドットが形成され易い画素（すなわち図９（ｂ）のディザマトリックスで閾値「４２」が設定されている画素）と、３番目にドットが形成され易い画素（すなわち閾値「５８」が設定されている画素）とに形成されるものと考えることができる。
【０１１４】
もちろん、ドット形成の有無は、ディザマトリックスに設定された閾値だけでなく、画像データの階調値によっても影響されるから、画像データの階調値が極端に大きければ、より小さな閾値が設定されている画素よりも先にドットが形成されることも起こり得る。しかし、前述したように画像データには、隣接する画素には近似する（若しくは同一の）階調値が割り当てられる傾向があるから、ほとんどの場合はドットが形成され易い画素（すなわちディザマトリックスに設定された閾値の小さな画素）からドットが形成されると考えることができる。
【０１１５】
図９（ａ）に示した他の画素群についても、同様にして、ドット個数とディザマトリックスの閾値とに基づいて、各画素についてのドット形成の有無を決定することができる。例えば、図９（ａ）の上述した画素群の下にある画素群（左端上から２番目の画素群）については、ドット個数は３個であるから、図９（ｂ）のディザマトリックスを参照すれば、これら３つのドットは、閾値「２２」が設定された画素と、閾値「３３」が設定された画素と、閾値「９１」が設定された画素とに、それぞれ形成されると考えることができる。
【０１１６】
図９（ａ）に示した４つの画素群について、このようにしてドット個数のデータからドットを形成する画素位置を決定すると、図９（ｃ）に示した結果を得ることができる。図９（ｃ）中で、斜線を付して示した画素はドットを形成すると判断された画素である。図９（ｃ）と図８（ｃ）とを比較すれば明らかなように、ドットの個数に基づいて決定したドットの分布は、画素毎に画像データと閾値とを比較して決定したドットの分布と一致している。このことは、ディザマトリックスを参照して画素毎にドット形成の有無を判断し、画素群内に形成されるドットの個数のみが分かれば、画素位置までは分からなくても、ディザマトリックスとドットの個数とに基づいて、各画素のドット形成の有無を適切に決定可能なことを示している。このことから、画素群に形成するドットの個数を示す多値化結果値をコンピュータ１００からカラープリンタ２００に供給した場合でも、カラープリンタ２００側でドット形成の有無を適切に決定することができるので、画質を悪化させることなく画像を印刷することが可能となるのである。
【０１１７】
また、個数データからドットを形成する画素位置を適切に決定するためには、画像データの階調値が画素群内で大きく異なっていなければ良い。前述したように、画像データは隣接する画素間では近似した階調値を有する特性があるから、こうした条件はほとんどの場合に成立しており、従って、ドットの個数を示す多値化結果値をカラープリンタ２００に供給して、多値化結果値からドット形成の有無を決定した場合でも、画質を悪化させることなく画像を印刷することができるのである。
【０１１８】
特に、次の２つの条件が満足される場合には、画像データの階調値とディザマトリックスの閾値とを比較してドット形成の有無を画素毎に判断した結果と、完全に同じドット分布が得られることになる。先ず１つ目の条件は、画素群内で各画素の階調値が同一の値を有することであり、２つ目の条件は、コンピュータ１００側で画素毎にドット形成の有無を判断する際に参照したディザマトリックスと、カラープリンタ２００側で個数データから画素位置を決定するために参照するディザマトリックスとが、同一のマトリックスであることである。また、詳細には後述するが、本実施例の多値化結果値生成処理では、画素群を複数の領域に分割して多値化結果値を生成することが可能であり、この場合は、分割した領域内で各画素の階調値が同一の値となっていればよい。例え、画素群内の各画素が同一の階調値を有していない場合でも、画素群を複数の領域に分割することで、領域内の各画素の階調値が同一になる場合も多く存在する。このため、画素群を分割して多値化結果値を生成可能とすることで、画質を改善することが可能となる。
【０１１９】
尚、図７で説明したディザ法においては、ディザマトリックスに設定された閾値と画像データとの階調値とを比較して、いずれの値が大きいかによってドット形成の有無を判断している。これに対して、ドットの個数から画素毎のドット形成の有無を決定する場合には、図９を用いて説明したように、画素群内でドットが形成される順番がドットの個数よりも小さいか、あるいはドットの個数と同じ画素についてはドットを形成すると判断し、それ以外の画素についてはドットを形成しないと判断している。すなわち、画素位置を決定するためには、閾値の値まで必要なわけではなく、画素群内でドットが形成され易い順序（換言すれば、ドットが形成される順番）が分かっていれば良い。このことから、図９（ｂ）に示すディザマトリックスの代わりに、図９（ｄ）に示すような画素群内の各画素について、ドットが形成される順番を示す値（順序値）が設定されたマトリックス（本明細書中では、このようなマトリックスを順序値マトリックスと呼ぶものとする）を記憶しておき、画素群毎に順序値マトリックスを参照しながら、各画素についてのドット形成の有無を決定することも可能である。
【０１２０】
加えて、このように、ディザマトリックスに基づいてドット形成の有無を決定する場合、ディザ法を適用してドット形成の有無を決定した時とほぼ同等のドット分布を得ることができる。このことから、ディザマトリックスの特性を適切に設計しておくことで、ドットの分布を制御することが可能である。例えば、いわゆるブルーノイズマスク特性を有するマトリックスや、あるいはグリーンノイズマスク特性を有するマトリックスを使用すれば、画像データを画素群単位で処理しているにも関わらず、これらディザマトリックスの特性に依存したドット分布の画像を得ることができる。以下では、この点につき、若干補足して説明する。
【０１２１】
図１０は、ブルーノイズマスク特性を有するディザマトリックス、およびグリーンノイズマスク特性を有するディザマトリックスについて、マトリックスに設定されている閾値の空間周波数特性を概念的に例示した説明図である。図１０では、表示の都合から、横軸には空間周波数の代わりに周期を取って表示している。言うまでもなく、周期が短くなるほど空間周波数は高くなる。また、図１０の縦軸は、それぞれの周期での空間周波数成分を示している。尚、図示されている周波数成分は、ある程度変化が滑らかとなるように平滑化された状態で示されている。
【０１２２】
図中の実線は、ブルーノイズマスクの空間周波数成分を概念的に示している。図示されているように、ブルーノイズマスクは、１周期の長さが２画素以下の高い周波数領域に最も大きな周波数成分を有している。ブルーノイズマスクの閾値は、このような空間周波数特性を有するように設定されていることから、ブルーノイズマスクに基づいてドット形成の有無を判断した場合には、ドットが互いに離れた状態で形成される傾向にある。また、図中の破線は、グリーンノイズマスクの空間周波数成分を概念的に示している。図示されているように、グリーンノイズマスクは、１周期の長さが２画素から十数画素の中間周波数領域に最も大きな周波数成分を有している。グリーンノイズマスクの閾値は、このような空間周波数特性を有するように設定されていることから、グリーンノイズマスクに基づいてドット形成の有無を判断した場合には、数ドット単位で隣接してドットが形成されながら、全体としてはドットの固まりが分散した状態で形成される傾向にある。
【０１２３】
従って、このようなブルーノイズマスク特性、あるいはグリーンノイズマスク特性を有するディザマトリックスに基づいて、画素群の個数データを決定したり、あるいは、画素位置を決定してやれば、画素群単位で処理しているにも関わらず、ブルーノイズマスク特性あるいはグリーンノイズマスク特性を反映した分布となるように、ドットを形成することが可能となる。
【０１２４】
また、以上の説明では、図９に示したように、画素群の個数データを受け取るとディザマトリックス中のその画素群に対応した部分を参照することにより、各画素についてのドット形成の有無を決定するものとして説明した。しかし、画素群と個数データとが決まれば、その画素群内でのドット形成有無を決定することができるから、次のようにすることで、より簡便に且つ迅速に、ドット形成の有無を決定することができる。先ず、画素群と個数データとの全ての組合せについて、画素群内の各画素についてのドット形成有無を求めて記憶しておく。そして、ある画素群について個数データを受け取ると、その組合せについて予め記憶しておいたドット形成有無を読み出してやれば、画素群内の各画素についてのドット形成有無を直ちに決定することが可能である。詳細には後述するが、本実施例のドット形成有無決定処理では、この様な原理に基づいて、画素群内の各画素についてのドット形成有無を決定している。
【０１２５】
Ｃ−２．第１実施例の多値化結果値生成処理  ：
以下では、図５に示した第１実施例の画像印刷処理において、画像データから多値化結果値を生成する処理（ステップＳ１０６）について説明する。図１１は、第１実施例の多値化結果値生成処理の流れを示すフローチャートである。ここでは、多値化結果値生成処理はコンピュータ１００で実施されるものとして説明するが、後述するように、多値化結果値生成処理は簡素な処理とすることができるので、カラープリンタ２００あるいはデジタルカメラ１２０などの内部で実施することも可能である。以下、フローチャートに従って説明する。
【０１２６】
第１実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成する（ステップＳ２００）。ここでは、主走査方向に４画素分、副走査方向に２画素分の合計８つの画素を画素群にまとめるものとする。尚、画素群としてまとめる画素は、このように矩形状に縦横の位置が揃った画素である必要はなく、互いに隣接し且つ所定の位置関係にある画素であれば、どのような画素を画素群としてまとめても良い。
【０１２７】
次いで、画素群の分類番号を決定する（ステップＳ２０２）。分類番号の意味するところについては後述するが、ここでは画素群を識別するために用いられる番号と考えておく。画素群の分類番号は、後述する方法を用いれば極めて簡便に決定することができる。
【０１２８】
次いで、画素群を分割するか否かを、画素群にまとめた各画素の階調値に基づいて判断し（ステップＳ２０４）、画素群を分割しないと判断した場合は（ステップＳ２０４：ｎｏ）、画素群の代表階調値を決定する（ステップＳ２０６）。一方、画素群を分割すると判断した場合は（ステップＳ２０４：ｙｅｓ）、画素群を分割して生成した各領域について代表階調値を決定する（ステップＳ２１２）。画素群を分割する態様、すなわち、画素群を分割して生成する領域の個数や、それぞれの領域の大きさは種々に設定することができるが、ここでは、理解の便宜のために最も単純な態様として、画素群を左右２つの領域に等分するものとして説明する。
【０１２９】
図１２は、画素群にまとめられた各画素の階調値に基づいて、画素群を分割するか否かを判断して、代表階調値を決定する様子を概念的に示した説明図である。図中に示した大きな矩形は画素群を表しており、画素群内の小さな正方形は画素を表している。また、画素を表す正方形の中に表示された数字は、その画素に割り当てられた画像データの階調値を表している。図１２（ａ）の左側に示すように、画素群内の各画素の階調値が同じであれば、その画素群は分割しないと判断して、各画素の階調値を画素群の代表階調値とする。図１２（ａ）の右側には、各画素の階調値を画素群の代表階調値として決定した様子を概念的に表している。
【０１３０】
前述したように、画像データは近接する画素間では近似した階調値を取る傾向があるから、画素群内の各画素の階調値は図１２（ａ）のような分布となることが多いと考えられる。また、画像データの解像度を印刷解像度に変換する処理において、１つの画素を複数の画素に分割することで解像度を高くした場合には、ほとんどの画素群でこのような階調値の分布を取るものと考えられる。更に、解像度を変換する際に、１つの画素を主走査方向（図上では左右方向）に４分割し、副走査方向（図上では上下方向）に２分割することで高解像度化した場合には、全ての画素群は必ず、図１２（ａ）に示す階調値分布を取ることになる。
【０１３１】
これに対して、図１２（ｂ）に示すように、階調値が画素群の中央で２つに分かれ、左側の領域と右側の領域とで異なっている場合は、画素群を左右２つの領域に分割すればよい。そして、それぞれの領域の階調値を代表階調値とすればよい。図１２（ｂ）に示した例では、画素群の左側の領域の階調値は「９７」であり、右側の領域の階調値は「１３５」であるから、階調値９７、１３５をそれぞれの領域の代表階調値とする。また、このような場合でも、左右の領域で階調値に大きな差がない場合（例えば、階調差が所定値以下である場合）は、画素群を分割しないと判断することも可能である。この場合の代表階調値としては、左右いずれかの領域の階調値を用いることができる。あるいは階調値の平均値を代表階調値としたり、画素群の中で最も画素数の多い階調値を代表階調値としてもよい。
【０１３２】
また、画像データの解像度を印刷解像度に変換する際に、少なくとも主走査方向については解像度を２倍に変換することがしばしば行われている。このような解像度変換が行われると、１つの画素から主走査方向には２つの画素が生成されることになるので、たとえ、画素群内の各画素の階調値が異なる値を取ったとしても、階調値の分布は、図１２（ｂ）に示したように、画素群の中央で左右に分かれたような分布になることが多いと考えられる。特に、主走査方向だけでなく、副走査方向についても解像度を２倍にするような変換が行われた場合、１つの画素が縦横２列ずつの４画素に変換されることになる。このため、仮に、画素群内に異なる階調値が含まれているとしても、必ず図１２（ｂ）に示すような階調値分布を取ることになる。
【０１３３】
もちろん、画素群内に階調値分布が存在する場合、必ず図１２（ｂ）に示した分布を取るとは限らない。例えば、１つの画素から主走査方向に並ぶ２つの画素を生成するような解像度変換を行った場合でも、元になる画素の階調値が副走査方向に異なっていれば、図１２（ｃ）に示すような階調値分布となることがある。ここでは理解の便宜を図るために、本実施例では画素群を分割する態様（分割パターン）は、画素群を左右２つの領域に等分するパターンのみを取るものとしているから、このような階調値分布の場合は、図１２（ｂ）に示したパターンで分割すると判断し、左側の領域の代表階調値については、領域内に含まれる階調値のいずれかを選択してやればよい。尚、このとき階調値１３５を選択した場合は、左右いずれの領域の代表階調値も階調値１３５となるので、これら領域を統合することができ、結局、画素群を分割しないと判断した場合と同様に取り扱うことができる。
【０１３４】
あるいは、左側の領域には階調値９７、１３５の２つの階調値が含まれているから、これら階調値の平均値を代表階調値としても良い。平均値の算出に際しては、単純に階調値の平均を算出しても良いし、あるいは階調値毎に画素数に相当する重みを付けて平均することとしても良い。図１２（ｃ）の右側には、このようにして左側の領域の代表階調値を決定した様子を概念的に表している。
【０１３５】
もちろん、印刷解像度への変換は、画素を分割して高解像度化する変換に限らず、補間演算を行って画素間に新たな階調値を生成する場合や、更には所定の割合で画素を間引くことにより低解像度化する場合もある。これらの場合には、画素群内の階調値分布は更に種々の分布を取るものと考えられる。図１２（ｄ）ないし図１２（ｆ）には、こうした種々の階調値分布を取る場合に、画素群の分割有無を判断して、代表階調値を決定する様子が例示されている。
【０１３６】
例えば、図１２（ｄ）に示されているように、階調値がちょうど中央で左右の領域に分かれるわけではないものの、大まかにはほぼ中央で分かれている場合は、画素群を左右２つの領域に等分することができる。あるいは、図１２（ｅ）に示されているように、画素群内の一部の画素では異なる階調値を取るものの、他の画素群については同じ階調値となっている場合には、画素群を分割しないものと判断することができる。更には、図１２（ｆ）に示されているように、階調値分布が傾斜を持っているような場合には、画素群を左右２つの領域に分割することができる。このとき各領域内での階調値の平均値を、それぞれの領域の代表階調値とすることができる。あるいは、簡便には、各領域から選択した画素の階調値を代表階調値としても良い。もっとも、画素群内の階調値分布に傾斜がある場合でも、傾斜が小さい場合（例えば、画素群内の階調差が所定値以下の場合）には、画素群を分割しないと判断してもよい。
【０１３７】
また、より一般的には、画素群内にエッジがあるか否かを判断して、エッジがあれば画素群を分割すると判断しても良い。エッジ有無の判定に際しては、例えば、画素群内での階調差が所定値以上であれば、エッジがあると判断することができる。あるいは、いわゆる微分型の画像フィルターを作用させて、微分値の絶対値が所定値以上となる画素を含む画素群についてはエッジがあると判断することも可能である。
【０１３８】
図１１に示したステップＳ２０４、Ｓ２０６、Ｓ２１２においては、以上のようにして、画素群内の各画素の階調値に基づいて画素群を分割するか否かを判断し、画素群を分割しないと判断した場合（Ｓ２０４：ｎｏ）には画素群の代表階調値を決定し（Ｓ２０６）、画素群を分割すると判断した場合（Ｓ２０４：ｙｅｓ）には、画素群を分割して生成した各領域の代表階調値を決定する処理を行う（Ｓ２１２）。
【０１３９】
こうして、画素群の分類番号を決定し、画素群について１つまたは複数（本実施例では２つ）の代表群階調値を決定したら、後述する多値化用テーブルを参照することによって、代表階調値を多値化結果値に変換する（ステップＳ２０８またはステップＳ２１４）。詳細には後述するが、多値化用テーブルには、画素群の分類番号と代表階調値との組合せに対応付けて、適切な多値化結果値が予め記憶されている。従って、分類番号と代表階調値とが求まっていれば、多値化用テーブルを参照することで直ちに多値化結果値を求めることが可能である。また、画素群が分割されている場合には、代表階調値が複数（本実施例では２つ）得られていることに対応して、その画素群については複数の多値化結果値が得られることになる。
【０１４０】
以上のようにして多値化結果値を求めたら、画素群について得られた多値化結果値を記憶する（ステップＳ２１０）。画素群が分割されている場合には、各領域について得られた多値化結果値を記憶する（ステップＳ２１６）。多値化結果値を記憶するためのデータ形式については後述する。次いで、画像データの全画素について処理を終了したか否かを判断し（ステップＳ２１８）、未処理の画素が残っていれば（ステップＳ２１８：ｎｏ）、ステップＳ２００に戻って新たな画素群を生成して、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したと判断されたら（ステップＳ２１８：ｙｅｓ）、得られた多値化結果値をカラープリンタ２００に出力して（ステップＳ２２０）、図１１に示す第１実施例の多値化結果値生成処理を終了する。
【０１４１】
Ｃ−３．分類番号の決定方法  ：
ここで、上述した第１実施例の多値化結果値生成処理中で、画素群の分類番号を決定する方法について説明する。以下では、先ず初めに、画素群の分類番号を付与する考え方を説明した後、分類番号を付与する具体的な方法について説明する。
【０１４２】
図１３は、画素群毎の分類番号を決定するための考え方を示した説明図である。図１３（ａ）は、画像の一番左上隅の箇所において、横方向に４画素、縦方向に２画素の合計８画素をまとめることによって画素群を１つ生成した様子を概念的に示したものである。
【０１４３】
前述したように、ディザ法では画素に割り当てられた画像データの階調値と、ディザマトリックスの対応する位置に設定されている閾値とを比較して、画素毎にドット形成の有無を判断している。一方、本実施例では、隣接する所定数の画素を画素群としてまとめているから、ディザマトリックスに設定されている閾値についても、画素群に対応する所定数ずつまとめてブロックを生成することにする。図１３（ｂ）は、図６に示したディザマトリックスに設定されている閾値を、横方向に４つ、縦方向に２つずつまとめて複数のブロックを生成した様子を示している。図６に示したディザマトリックスは、横方向（主走査方向）に１２８画素分、縦方向（副走査方向）に６４画素分の合計８１９２画素分の閾値が設定されているから、これら閾値を横方向に４つ、縦方向に２つずつブロックにまとめれば、ディザマトリックスは縦横それぞれ３２個ずつ、合計１０２４個のブロックに分割されることになる。
【０１４４】
今、図１３（ｂ）に示すように、これらブロックに１番〜１０２４番までの通し番号を付しておく。そして、画像データにディザマトリックスを適用した時に、各画素群の位置に適用されるブロックの通し番号によって、画素群を分類してやる。例えば、図１３（ｃ）に示したように、画像の一番左上隅にある画素群には、図１３（ｂ）中の通し番号１番のブロックが適用されるから、この画素群は分類番号１番の画素群に分類する。
【０１４５】
以上が、画素群を分類する際の基本的な考え方である。図１１のステップＳ２０２では、このように、画像データにディザマトリックスを適用したときに、画素群に適用されるブロックの通し番号によって各画素群を分類し、対応する分類番号を決定して画素群に付与する処理を行う。
【０１４６】
次に、画素群の分類番号を決定するための具体的な方法について説明する。図１４は、画素群の分類番号を決定する方法を示した説明図である。図１４（ａ）は、画像中で生成された１つの画素群を表している。ここでは、この画素群に着目して分類番号を決定する方法について説明する。尚、以下では、分類番号を決定するために着目している画素群を、着目画素群と呼ぶことにする。
【０１４７】
今、画像の一番左上隅にある画素を原点に取って、原点からの主走査方向および副走査方向への画素数によって画素位置を表すものとする。また、画素群の位置は、画素群の左上隅にある画素の画素位置によって表すものとする。図１４（ａ）では、着目画素群の位置を示す画素に黒丸を付して表示している。この画素の画素位置が（Ｘ，Ｙ）であったとする。すると、各画素群の大きさは、主走査方向に４画素、副走査方向に２画素としているから、
Ｘ＝４ｎ＋１、  Ｙ＝２ｍ＋１
となるようなｎ、ｍ（ここで、ｎ，ｍは０以上の正整数）が存在する。換言すれば、着目画素群の左側にはｎ個の画素群が並んでおり、着目画素群の上側にはｍ個の画素群が並んでいることになる。
【０１４８】
ここで、前述したように画素群は、画像データにディザマトリックスを適用したときに、着目画素群に適用されるブロックの通し番号に基づいて分類することとしているから（図１３参照のこと）、ディザマトリックスを移動させながら画像データに適用する方法によって、同じ画素群でも異なった分類番号に分類されることになる。実際には、ディザマトリックスを移動させながら画像データに適用する方法はどのような方法でも構わないが、ここでは説明の便宜から、最も単純な方法すなわちディザマトリックスを横方向に移動させるものとして説明する。図１４（ｂ）には、ディザマトリックスを横方向に少しずつ移動させながら、繰り返し画像データに適用している様子が概念的に示されている。
【０１４９】
図１４（ｃ）は、図１４（ｂ）に示すようにディザマトリックスを繰り返して用いながら、図１４（ａ）に示した着目画素群にディザマトリックスを適用している様子を概念的に表している。このようにディザマトリックスを移動させていくと、ディザマトリックス中のいずれかのブロックが、着目画素群に適用されることになる。ここでは、着目画素群には、ディザマトリックス中でＭ行Ｎ列目のブロックが適用されたものとする。すると、図１４（ａ）に示したように着目画素群の左側にはｎ個の画素群があり、上側にはｍ個の画素群があるから、Ｎとｎ、およびＭとｍとの間には、それぞれ
Ｎ＝ｎ−ｉｎｔ（ｎ／３２）×３２＋１
Ｍ＝ｍ−ｉｎｔ（ｍ／３２）×３２＋１
の関係が成り立っている。ここで、ｉｎｔは、小数点以下を切り捨てて整数化することを表す演算子である。すなわち、ｉｎｔ（ｎ／３２）は、ｎ／３２の計算結果に対して小数点以下の数値を切り捨てることによって得られた整数値を表している。このように、着目画素群の位置が分かれば、図１４（ｄ）に表示した上述の関係式から数値ＭおよびＮを求めて、ディザマトリックス中でＭ行Ｎ列目にあるブロックのブロック番号を、その着目画素群の分類番号としてやればよい。もっとも実際には、Ｍ，Ｎの値は、図１４（ｄ）に示すような計算を実行せずとも、極めて簡便に求めることができる。以下、この点について説明する。
【０１５０】
図１５は、着目画素群の分類番号を決定する方法を具体的に示した説明図である。着目画素群の位置を（Ｘ，Ｙ）として、Ｘ，Ｙが１０ビットで表現されているものとする。図１５（ａ）は、数値Ｘを表す１０ビットの２進数データを概念的に示している。図では、各ビットを識別するために、最上位ビットから最下位ビットに向かって１番から１０番までの通し番号を付して表示している。
【０１５１】
図１４を用いて前述したように、着目画素群の左側にある画素群の個数ｎは、数値Ｘから１を減算して４で除算すれば得ることができる。ここで、４での除算は、２ビット分だけ右方向にシフトさせることで実施することができるから、数値Ｘから１を減算して、得られた２進数データを右方向に２ビット分だけビットシフトさせればよい。更に、数値Ｘは任意の値を取るのではなく、４ｎ＋１の形式で表現可能な数値しか取り得ないから、１を減算せずに、単に２進数データを右方向に２ビット分だけビットシフトさせるだけで、画素群の個数ｎを得ることができる。図１５（ｂ）は、こうして数値Ｘをビットシフトして得られた個数ｎの２進数データを概念的に表している。
【０１５２】
次いで、ｉｎｔ（ｎ／３２）を算出する。すなわち、個数ｎを３２で除算して、小数点以下の数値を切り捨てる操作を行う。３２による除算は、２進数データを右方向に５ビット分だけビットシフトさせることで実行可能であり、また、データを整数形式で扱っていれば、小数点以下の数値は自動的に切り捨てられてしまう。結局、ｉｎｔ（ｎ／３２）の２進数データは、個数ｎの２進数データを、単に右方向に５ビット分だけビットシフトさせることで得ることができる。図１５（ｃ）は、個数ｎをビットシフトして得られたｉｎｔ（ｎ／３２）の２進数データを概念的に表している。
【０１５３】
こうして得られたｉｎｔ（ｎ／３２）に３２を乗算する。３２による乗算は、２進数データを５ビット分だけ左方向にビットシフトすることで実施することができる。図１５（ｄ）は、個数ｎをビットシフトして得られたｉｎｔ（ｎ／３２）×３２の２進数データを概念的に表している。
【０１５４】
次いで、個数ｎからｉｎｔ（ｎ／３２）×３２を減算すれば、前述の数値Ｎを得ることができる。個数ｎの２進数データ（図１５（ｂ）参照）とｉｎｔ（ｎ／３２）×３２の２進数データ（図１５（ｄ）参照）とを比較すれば明らかなように、これら２進数データは、上位の５ビットは共通しており、減算する側の数値の下位５ビットは全て「０」となっている。従って、減算される側の数値（個数ｎ）の下位５ビットをそのまま抜き出せば、求める数値Ｍを得ることができる。すなわち、図１５（ｂ）に示した２進数データと、図１５（ｆ）に示すようなマスクデータとの論理積を求めるだけで、極めて簡便に数値Ｎを得ることが可能である。あるいは、図１５（ａ）に示した着目画素群の位置を示す数値Ｘの２進数データと、図１５（ｇ）のようなマスクデータとの論理積を求めることにより、４番目〜８番目のビットデータを直接抜き出すことによっても、数値Ｎを得ることができる。
【０１５５】
図１５では、着目画素群の位置を示す座標値（Ｘ，Ｙ）の数値Ｘから、ディザマトリックス中でのブロック位置を示す数値Ｎを求める場合について説明したが、全く同様にして、ブロック位置を示す数値Ｍも数値Ｙから求めることができる。結局、着目画素群の位置が分かれば、２進数データから特定のビット位置のデータを抜き出すだけで、着目画素群がディザマトリックス中で何行何列目のブロックに対応するかを知ることができ、このブロックの通し番号によって、着目画素群の分類番号を迅速に決定することが可能なのである。
【０１５６】
Ｃ−４．多値化用テーブル  ：
図１１を用いて前述したように、第１実施例の多値化結果値生成処理のステップＳ２０６あるいはステップＳ２１４では、こうして得られた画素群の分類番号と代表階調値とから、多値化用テーブルを参照することによって代表階調値を多値化する。以下では、代表階調値を多値化するために参照される多値化用テーブルについて説明する。
【０１５７】
図１６は、画素群の分類番号と代表階調値とから多値化結果値を取得するために参照される第１実施例の多値化用テーブルを概念的に示した説明図である。図示されているように、第１実施例の多値化用テーブルには、画素群の分類番号と代表階調値との組合せに対応付けて、適切な多値化結果値が予め記憶されている。図１３を用いて前述したように、ここでは画素群は分類番号１番〜１０２４番のいずれかに分類される。また、画像データを１バイトデータとすれば、代表階調値は０〜２５５のいずれかの階調値を取り得るから、分類番号と代表階調値との組合せは、１０２４×２５６＝２６２１４４の組合せが存在する。多値化用テーブルには、この全ての組合せに対して多値化結果値が設定されている。尚、本実施例では、多値化結果値は、分類番号および代表階調値をそれぞれパラメータとするテーブルに記憶されているものとしているが、分類番号と代表階調値とが決まれば、対応する多値化結果値が１つ決定されるようなものであれば、必ずしもテーブルの形態で多値化結果値を記憶しておく必要はない。
【０１５８】
図１７は、画素群の分類番号と代表階調値との組合せに応じて、適切な多値化結果値を決定する様子を概念的に示した説明図である。一例として、画素群の分類番号が１番であるとする。分類番号１番の画素群には、ディザマトリックス中で通し番号１番のブロックが適用される。図１７（ａ）には、通し番号１番のブロックに設定されている閾値が示されている。
【０１５９】
今、代表群階調値が「０」であるとする。この場合は、画素群中の全画素が階調値０の画像データを有するものとする。そして、各画素の階調値（すなわち「０」）と図１７（ａ）に示した閾値とを比較して、階調値の方が大きい（若しくは同じ）画素については、ドットを形成するものと判断する。画素群の全画素についてこうした判断を行った後、ドットの個数を数えて、得られた個数を多値化結果値とする。図１７（ａ）に示したいずれの閾値も、階調値０よりは大きいから、ドットを形成すると判断される画素は存在しない。そこで、分類番号が１番で代表階調値が「０」の組合せについては、多値化結果値０を設定する。図１７（ｂ）は、このようにして、代表群階調値０に対する多値化結果値として「０」が決定される様子を概念的に表したものである。
【０１６０】
図１７（ｃ）は、分類番号１番、代表階調値１に対する多値化結果値を決定する様子を概念的に示している。この場合は、画素群内の全画素が階調値１の画像データを有するものとして、各画素の階調値を図１７（ａ）に示した閾値と比較する。その結果、画素群内で左上隅にある画素では、画像データの階調値と閾値とが等しくなってドットを形成すると判断され、他の画素についてはドットを形成しないと判断される。図１７（ｃ）に表示された斜線の付された丸印は、その画素にドットを形成すると判断されたことを表している。この結果、分類番号が１番で代表階調値が「１」の組合せについては、多値化結果値１が設定される。
【０１６１】
こうした操作を、０〜２５５までの全ての代表階調値について行うことにより、多値化結果値を決定していく。例えば、代表階調値が２の場合は、図１７（ｄ）に示したように、多値化結果値は「１」となり、代表階調値が「１００」の場合は、図１７（ｅ）に示すように多値化結果値は「３」となる。図１７（ｆ）および図１７（ｇ）には、代表階調値が「２００」の場合および代表階調値が「２５５」の場合に、それぞれの多値化結果値タを決定する様子が概念的に示されている。図１６に示した多値化用テーブルの中で、分類番号１に該当する行（表中に示された横方向の欄）の部分に、それぞれの代表階調値に対応付けて設定されている多値化結果値は、このようにして決定された値である。こうした操作を、１番〜１０２４番までの全ての分類番号について行えば、最終的に、全ての分類番号と全ての代表階調値とのあらゆる組合せに対して、多値化結果値を決定することができる。図１６に示した多値化用テーブルには、分類番号と代表階調値との組合せに応じて、対応する多値化結果値が予め設定されている。
【０１６２】
Ｃ−５．多値化結果値のデータ形式  ：
図１１を用いて前述したように、第１実施例の多値化結果値生成処理のステップＳ２１０あるいはステップＳ２１６では、得られた多値化結果値を記憶しておき、ステップＳ２２０では、記憶しておいた多値化結果値をカラープリンタ２００に向かって出力する。画素群が分割されていない場合は、多値化結果値は画素群毎に１つずつ出力され、画素群が分割されている場合は、画素群毎に複数（本実施例では２つずつ）出力されることになる。ここで、図１６に示したように、多値化結果値を得るために参照する多値化用テーブルは、画素群が分割されていない場合でも分割された場合でも同じ多値化用テーブルを参照しており、従って、画素群の分割有無によらず、同じような多値化結果値が得られることになる。そこで、多値化結果値が一体の画素群について得られたものか、分割された画素群の各領域について得られたものかを区別可能とするために、図１１のステップＳ２１０あるいはステップＳ２１６では、得られた多値化結果値を次のようなデータ形式で記憶している。
【０１６３】
図１８は、多値化結果値を記憶するためのデータ形式の一例を示した説明図である。図示した例では、多値化結果値の先頭に、画素群が分割されたか否かを示すビットを付加した状態で、多値化結果値を記憶する。例えば、画素群を分割しない場合は、図１８（ａ）に示すように、多値化結果値の先頭に、値「０」の１ビットのデータを付加しておく。ここでは画素群は８つの画素から構成されており、多値化結果値は画素群内に形成されるドットの個数を表すものとしているから、前述したように１つの多値化結果値は４ビットあれば足りる。従って、分割しない画素群については、先頭の１ビットを加えた合計５ビットのデータとして多値化結果値が記憶されることになる。
【０１６４】
また、画素群を分割した場合は、図１８（ｂ）に示すように、値「１」の１ビットのデータに続けて、各領域の多値化結果値を順番に記憶していく。本実施例では、画素群の分割パターンは、左右２つの領域に分割するパターンのみとしているから、先頭のビットが「１」であれば、左右の領域に対応した４ビットの多値化結果値が２つ続くことになる。従って、分割した画素群については、合計９ビットのデータとして多値化結果値が記憶されることになる。尚、画素群の分割パターンとしては、必ずしも２つの領域に分割するパターンに限られるものではなく、より多くの領域に分割することも可能である。例えば画素群を４つの領域に分割する場合には、分割したことを示す１ビットのデータに続いて、それぞれの領域の多値化結果値を示す４ビットのデータが４つ続くことになり、合計すると１７ビットのデータとして多値化結果値が記憶されることになる。
【０１６５】
図１９は、多値化結果値を記憶するデータ形式の他の一例を示した説明図である。図示されているように、画素群を分割した場合にだけ、分割したことを示すデータとともに多値化結果値を記憶することとしても良い。すなわち、分割しない画素群については、図１９（ａ）に示すように、多値化結果値だけをそのまま記憶する。一方、分割した画素群については、図１９（ｂ）に示すように、分割したことを表す特別なデータに続けて、各領域の多値化結果値を記憶しても良い。分割したことを表す特別なデータ（以下では、この様なデータをＥＳＣコードと呼ぶことにする）としては、多値化結果値と区別することが可能であればどのようなデータを用いることもできる。例えば本実施例では、多値化結果値は４ビットデータであり１６通りの状態を表現することができるが、多値化結果値は実際には９通りの状態しか取り得えないから、５通りの状態が使われずに余っている計算になる。そこで、使われていない状態の１つを選択して、画素群が分割されていることを表すＥＳＣコードとして使用することができる。図１９に示した例では、４ビット全てが「１」となっているデータ（１０進数表示では、「１５」）をＥＳＣコードとして使用している。
【０１６６】
図２０は、多値化結果値をＥＳＣコードとともに記憶する様子を示した説明図である。例えば、図２０（ａ）に示すように、画素群Ａ、画素群Ｂ、画素群Ｃの３つの画素群があるとして、中央の画素群Ｂが分割されているものとする。また、左端の画素群Ａについて得られた多値化結果値は「２」、右端の画素群Ｃについて得られた多値化結果値は「６」、中央の画素群Ｂについてはそれぞれ多値化結果値「２」および「６」が得られたものとする。このような多値化結果値を記憶する場合、先ず左端の画素群Ａは分割されていないから、多値化結果値「２」をそのまま記憶する。次の画素群Ｂは分割されているから、先ず画素群が分割されていることを表すＥＳＣコード「１５」を記憶し、続いて左の領域について得られた多値化結果値「２」と、右の領域について得られた多値化結果値「６」を記憶する。すなわち、分割された画素群Ｂについては、分割されていない画素群３つ分のデータ長となる。次いで、右端の画素群Ｃについての多値化結果値を記憶する。この画素群は分割されていないから、得られた多値化結果値「６」をそのまま記憶すればよい。
【０１６７】
多値化結果値を記憶する際には、図１８に示したデータ形式と、図１９に示したデータ形式との、いずれの形式を用いることも可能であるが、使用するデータ形式によって次のような得失がある。先ず、分割された画素群の多値化結果値に着目すれば、図１８のデータ形式を用いた方が図１９に示したデータ形式を用いた場合よりも、少ないデータ長で多値化結果値を記憶することができる。すなわち、図１８のデータ形式によれば、各領域の多値化結果値の他に、画素群が分割されていることを表す１ビットのデータを加えればよいのに対して、図１９のデータ形式では、各領域の多値化結果値に４ビットのＥＳＣコードを付加する必要がある。このため、分割する画素群については、図１８のデータ形式を採用した方が、画素群１つあたり３ビットずつデータ量を節約することができる。一方、分割しない画素群については、図１８のデータ形式では、画素群の多値化結果値に加えて画素群が分割されていないことを表す１ビットのデータを加える必要があるのに対して、図１９のデータ形式では画素群の多値化結果値をそのまま記憶すればよい。従って、分割しない画素群については、図１９のデータ形式を採用した方が、画素群１つあたり１ビットずつデータ量を節約することができる。このことから、分割される画素群が多い場合は、図１８のデータ形式を用いて多値化結果値を記憶した方がデータ量を節約することができ、逆に分割される画素群が少ない場合は、図１９のデータ形式を用いた方がデータ量を節約できることが分かる。前述したように、画像データは近接する画素間では近似した階調値を取ることが多く、分割される画素群の比率はさほど多くはないから、通常は図１９に示すデータ形式を採用した方が、少ないデータ量で多値化結果値を記憶することが可能である。
【０１６８】
Ｃ−６．第１実施例のドット形成有無決定処理  ：
次に、前述した第１実施例の画像印刷処理において、画素群内の各画素についてのドット形成の有無を、多値化結果値に基づいて決定する処理（図５のステップＳ１０８）について説明する。図２１は、第１実施例のドット形成有無決定処理の流れを示すフローチャートである。かかる処理は、カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵによって実行される処理である。以下では、フローチャートに従って、画素群内の各画素についてのドット形成の有無を、多値化結果値に基づいて決定する処理について説明する。
【０１６９】
第１実施例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を１つ選択し（ステップＳ３００）、その画素群の分類番号を取得する（ステップＳ３０２）。画素群の分類番号は前述した第１実施例のドット形成有無決定処理と同様にして、画像中での画素群の位置から迅速に取得することができる。
【０１７０】
図２２は、画素群の分類番号を決定する方法を示した説明図である。今、ドット形成の有無を決定する対象としている画素群が、図２２（ａ）に示すように、画像の一番左上隅を基準として主走査方向にｉ個目の画素群、副走査方向にｊ個目の画素群の位置にあるとする。また、このような画素群の位置を、座標値（ｉ，ｊ）によって表すものとする。また、ディザマトリックスの大きさは、通常は、画像のようには大きくはないので、図１４（ｂ）を用いて前述したように、ディザマトリックスを主走査方向に移動させながら、繰り返して使用するものとする。
【０１７１】
１つのディザマトリックスには主走査方向・副走査方向にそれぞれ３２個ずつのブロックが含まれるとしているから（図１３（ｂ）参照）、ディザマトリックス中で、対象の画素群がある位置をＩ行Ｊ列とすれば、Ｉ、Ｊはそれぞれ次式で求めることができる。
Ｉ＝ｉ−ｉｎｔ（ｉ／３２）×３２
Ｊ＝ｊ−ｉｎｔ（ｊ／３２）×３２
ここで、ｉｎｔは、小数点以下を切り捨てて整数化することを表す前述した演算子である。従って、画素群の座標値（ｉ，ｊ）に上式を適用してＩ，Ｊを求めることで、その画素群がディザマトリックス中でＩ行Ｊ列にあることが分かる。これより、分類番号は、
Ｉ＋（Ｊ−１）×３２  …（１）
によって求めることができる。
【０１７２】
また、画素群のディザマトリックス中での位置を表す値Ｉ，Ｊは、上述したような計算を実行せずとも、ｉ，ｊの２進数表示から所定ビットのデータを抜き出すだけで、極めて簡便に求めることができる。図２３は、画素群の座標値（ｉ，ｊ）から、画素群のディザマトリックス中での位置を求める方法を具体的に示した説明図である。図２３（ａ）は、数値ｉを表す１０ビットの２進数表示したデータを概念的に示している。尚、図２３（ａ）では、各ビットを識別するために、最上位ビットから最下位ビットに向かって１番から１０番までの通し番号を付して表示している。
【０１７３】
画素群の位置を示す値Ｉを求めるに際しては、先ず初めに、ｉｎｔ（ｉ／３２）を算出する。この演算は、ｉの２進数データを右方向に５ビット分だけビットシフトさせることで実行することができる（図２３（ｂ）参照）。次いで、ｉｎｔ（ｉ／３２）×３２を算出する。この演算は、ｉｎｔ（ｉ／３２）の２進数データを左方向に５ビット分だけビットシフトさせることで実行することができる（図２３（ｃ）参照）。最後に、数値ｉから、ｉｎｔ（ｉ／３２）×３２を減算すれば、目的とする数値Ｉを得ることができる。この操作は、結局は、数値ｉの２進数データから下位の５ビットのみを抜き出していることに他ならないから、極めて簡便に数値Ｉを得ることが可能である。同様にして、数値ｊの２進数データから下位の５ビットのみを抜き出すことで、極めて簡便に数値Ｊを得ることが可能である。こうして数値ＩおよびＪが求まれば、上述の（１）式を用いて分類番号を算出することができる。図２１のステップＳ３０２では、以上のようにして、処理対象として選択した画素群の分類番号を取得する。
【０１７４】
次いで、選択した画素群について得られた多値化結果値を取得した後（ステップＳ３０４）、画素群が分割されているか否かを、読み込んだ多値化結果値に基づいて判断する（ステップＳ３０６）。多値化結果値が、図１８を用いて前述したように、先頭に画素群の分割の有無を示すビットが付加された形式となっている場合は、先頭ビットが「０」であれば画素群は分割されておらず、先頭ビットが「１」であれば画素群は分割されていると判断することができる。これに対して、画素群の分割の有無を図１９に示したようにＥＳＣコードを用いて表している場合は、読み込んだ多値化結果値の先頭のデータがＥＳＣコードであれば画素群が分割されており、そうでなければ分割されていないと判断することができる。また、ここでは画素群を分割するパターンは、画素群を左右２つの領域に等分するパターンのみであるものとしているから、分割された画素群については２つの多値化結果値を読み込んでやればよい。
【０１７５】
もちろん画素群の分割の態様は、左右２つに分割するパターンに限られるものではなく、例えば上下２つに分割したり、あるいはより多くの領域に分割することも可能である。更には、複数の分割パターンを使い分けることも可能である。すなわち、多値化結果値が図１８に示したようなデータ形式で記憶されている場合は、先頭に付加するデータのビットを増やすことにより、画素群の分割有無だけでなく分割パターンも指定可能とし、このデータで指定された分割パターンに相当する個数の多値化結果値を読み込んでやればよい。また、多値化結果値が図１９に示したデータ形式で記憶されている場合は、ＥＳＣコードの種類を増やして分割パターンを指定可能とし、画素群が分割されている場合は指定された分割パターンに相当する個数の多値化結果値を読み込むこととすればよい。分割パターンが複数用意されている場合については後ほど補足して説明する。
【０１７６】
画素群が分割されていない場合は（ステップＳ３０６：ｎｏ）、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照することにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ３０８）。復号用テーブルには、画素群内の各画素についてドット形成の有無を表すデータが記憶されており、かかるデータを読み出すことによって、ドット形成有無を迅速に決定することが可能である。
【０１７７】
図２４は、第１実施例のドット形成有無決定処理で参照される復号用テーブルを概念的に示した説明図である。図示されているように、第１実施例で参照する復号用テーブルには、画素群の分類番号と多値化結果値との組合せに対応づけて、その画素群内の各画素についてのドット形成の有無を表すデータが設定されている。尚、以下では、このような各画素についてのドット形成の有無を表したデータを、ドットデータＤＤと呼ぶことがあるものとする。また、ドットデータＤＤ（ｉ，ｊ）とは、分類番号がｉ番で、多値化結果値が「ｊ」の画素群についてのドットデータを表すものとする。
【０１７８】
図２５は、第１実施例の復号用テーブルに設定されているドットデータＤＤのデータ構造を示す説明図である。図２５（ａ）に示すように、ドットデータＤＤは８ビットのデータであり、各ビットが画素群内にある８つの画素に予め対応付けられている。図示した例では、ドットデータＤＤの先頭のビット（図中で１番と符番したビット）は画素群の左上隅の画素に対応づけられており、先頭から２番目のビット（図中で２番と符番したビット）は画素群内の上段左から２番目の画素に対応づけられている。残りのビットも、それぞれ同様にして、画素群内の各画素に対応づけられている。このように、本実施例においてドットデータＤＤが８ビットデータとなっているのは、画素群が８つの画素から構成されていることに対応したものである。従って、画素群内の画素数がＮ個となれば、ドットデータＤＤもＮビットのデータとなる。
【０１７９】
また、ドットデータＤＤ中で「１」が設定されているビットは、対応する画素にドットが形成されることを表しており、「０」が設定されているビットは対応する画素にドットが形成されないことを表している。図２５（ａ）に示したドットデータＤＤは、先頭のビットと７番目のビットに「１」が設定されており、他のビットには「０」が設定されているから、図２５（ｂ）に示したように、画素群の上段左端の画素と、下段の左から３番目の画素にドットが形成されることを表している。図２１のステップＳ３０８では、図２４に示した復号用テーブルを参照してこのようなドットデータＤＤを読み出すことにより、処理対象としている画素群について、各画素のドット形成有無を決定する処理を行う。尚、図２４に示すような復号用テーブルを設定する方法については後述する。
【０１８０】
一方、画素群が分割されている場合は（ステップＳ３０６：ｙｅｓ）、画素群を分割して生成された各領域についての多値化結果値が得られていることになる。本実施例では、画素群が分割される場合は左右２つの領域に等分されるものとしているから（図１２参照）、分割された画素群については２つの多値化結果値が得られている。そこで、複数個得られた多値化結果値の各々と画素群の分類番号とを組み合わせて、図２４に示した復号用テーブルを参照することにより、各組合せに対応するドットデータＤＤを読み出してやる（ステップＳ３１０）。すなわち、分割された画素群については、ドットデータＤＤも複数個得られることになる。こうして複数個得られたドットデータＤＤから各領域のデータを抜き出すことにより、画素群内の各画素についてのドット形成の有無を決定する（ステップＳ３１２）。
【０１８１】
図２６は、複数個得られたドットデータＤＤを組み合わせることにより、画素群内の各画素についてのドット形成の有無を決定する様子を示した説明図である。ここでは、画素群の分類番号が「１」であり、また、図２６（ａ）に示すように、左側の領域の多値化結果値は「３」、右側の領域の多値化結果値は「６」であったとする。
【０１８２】
先ず、復号用テーブルを参照することにより、画素群の左側の領域から得られるドットデータを取得する。画素群の分類番号は１番であり、左側の領域の多値化結果値は「３」であるから、左側の領域については、これらの組合せに対応するドットデータＤＤ（１，３）が得られる。画素群の右側の領域についても同様にして、分類番号１番および多値化結果値６の組合せに対応するドットデータＤＤ（１，６）を得ることができる。
【０１８３】
図２５を用いて説明したように、ドットデータＤＤの各ビットは画素群内の各画素に対応づけられている。そして、本実施例では、分割されている画素群は左右２つの領域に等分されるとしているから、左側の領域について得られたドットデータＤＤ（１，３）のうちで、実際に用いられるデータは先頭のビットと、先頭から２番目、５番目、６番目のビットだけである。何故なら、これらビットだけが、左側の領域の画素に対応づけられているからである。図２６（ｂ）では、左側の領域について得られたドットデータＤＤの内で、実際に用いられるビットには斜線を付して表示されている。同様に、右側の領域について得られたドットデータＤＤ（１，６）についても、実際に用いられるデータは、先頭から３番目、４番目、７番目、８番目のビットのデータとなる。図２６（ｃ）では、右側の領域について得られたドットデータＤＤの中で、実際に用いられるビットには斜線を付して表示されている。
【０１８４】
このようにして左右それぞれの領域について得られたドットデータから、実際に使用される部分のデータを抜き出して組み合わせることにより、対象としている画素群についての最終的なドットデータＤＤを得ることができる。図２６（ｄ）は、このようにして合成された最終的なドットデータを概念的に示している。また図２６（ｅ）は、最終的に得られたドットデータＤＤに従って、画素群内の各画素にドットが形成された様子を表している。
【０１８５】
尚、以上の説明では、ドットデータＤＤの前半の４ビットは、画素群内の上段の４つの画素（すなわち、図２５（ｂ）で１番〜４番と符番した画素）に対応づけられており、ドットデータＤＤの後半の４ビットは、画素群内の下段の４つの画素（図２５（ｂ）で５番〜８番と符番した画素）に対応づけられているものとした。しかし、本実施例では、画素群が分割される場合には左右２つの領域に分割されるものとしているから、このような分割パターンを考慮して、ドットデータＤＤの各ビットと画素とを対応づけることとしてもよい。
【０１８６】
図２７は、画素群の分割パターンを考慮して、ドットデータの各ビットと画素群内の各画素とを対応付けた様子を例示した説明図である。図２７（ａ）は、画素群内の各画素に１番から８番までの番号が符番されている様子を示している。また、図２７（ｂ）は、１番から８番までの各画素が、ドットデータＤＤの各ビットに対応付けられている様子を示している。図２７に示した例では、ドットデータＤＤの前半の４ビットが画素群の左側の領域にある４つの画素に対応付けられており、ドットデータＤＤの後半の４ビットが画素群の右側の領域にある４つの画素に対応づけられている。こうすれば、復号用テーブルを参照する際に、ドットデータＤＤ（１，３）およびドットデータＤＤ（１，６）を読み出すのではなく、それぞれのドットデータの前半部分および後半部分のみを読み出して組み合わせるだけで、最終的なドットデータを得ることができる。図２７（ｂ）は、このようにして最終的なドットデータが合成された様子を概念的に表している。
【０１８７】
図２５のステップＳ３１２においては、以上に説明したようにして、各領域について得られたドットデータを組み合わせることにより、画素群内の各画素についてのドット形成の有無を決定する処理を行う。
【０１８８】
このようにして、選択した画素群の各画素についてドット形成の有無を決定したら、画像に含まれる全画素群について、ドット形成の有無を決定したか否かを判断する（ステップＳ３１４）。そして、未処理の画素群が残っている場合は（ステップＳ３１４：ｎｏ）、ステップＳ３００に戻って新たな画素群を１つ選択して、上述した一連の操作を行う。こうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら（ステップＳ３１４：ｙｅｓ）、図２１に示した第１実施例のドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【０１８９】
ここで、図２４に示した復号用テーブルを設定する方法について説明する。復号用テーブルは、図９を用いて前述した原理、すなわち画素群内に形成されるドットの個数と、ディザマトリックス中の画素群に対応する位置に設定されている閾値とを用いて、ドットが形成される画素を決定する原理に基づいて設定されている。
【０１９０】
図２８は、第１実施例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。ここでは画素群の多値化結果値が「３」であったとして、図２８の左半分には、分類番号１番の画素群についてのドットデータＤＤ（１，３）を決定する様子が示されており、図２８の右半分には、分類番号２番の画素群についてのドットデータＤＤ（２，３）を決定する様子が示されている。図１３を用いて前述したように、分類番号１番の画素群にはディザマトリックス中の通し番号１番のブロックが対応し、分類番号２番の画素群には通し番号２番のブロックが対応する。図２８の上から２段目には、ディザマトリックス中の通し番号１番のブロックに設定されている閾値、および通し番号２番のブロックに設定されている閾値が示されている。
【０１９１】
図９を用いて前述した様に、ディザマトリックスに設定されている閾値はドットの形成され易さを表していると考えることができ、閾値の小さな画素ほどドットが形成され易くなっている。すなわち、通し番号１番のブロックについては、閾値１が設定されている画素が最もドットが形成され易く、閾値４２が設定されている画素、閾値５８が設定されている画素、閾値１０９が設定されている画素の順番で、ドットが形成され易くなっている。また、多値化結果値は画素群に形成されるドットの個数を表しているものとしている。従って、分類番号１番の画素群については、通し番号１番のブロック中で閾値１が設定されている画素と、閾値４２が設定されている画素、閾値５８が設定されている画素にドットが形成されると判断することができる。分類番号２番の画素群についても同様に、通し番号２番のブロック中で閾値５が設定されている画素と、閾値４８が設定されている画素、閾値７０が設定されている画素にドットが形成されると判断することができる。図２８の上から３段目は、この様にして画素群内の各画素についてドット形成の有無を判断した結果を表しており、ドットが形成される画素には斜線を付して示されている。
【０１９２】
このようにして画素群内の各画素についてドット形成の有無を決定したら、図２５を用いて説明したデータ形式で表現して、復号用テーブルの該当する箇所に書き込めばよい。例えば、図２８の左側に示した分類番号１番の画素群については、１番、３番、８番と符番した画素にドットが形成されているから、ドットデータＤＤは、先頭から１番目、３番目、８番目のビットが「１」で、他のビットには「０」が設定されたデータとなる。このデータを、復号用テーブルのドットデータＤＤ（１，３）として記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶すれば、図２４に示した復号用テーブルを設定することができる。上述した第１実施例のドット形成有無決定処理では、このようにして設定された復号用テーブルを参照しながら、画素群内の各画素についてのドット形成有無を決定しているのである。
【０１９３】
以上、第１実施例の画像印刷処理中で行われる多値化結果値生成処理（図５のステップＳ１０６）、およびドット形成有無決定処理（図５のステップＳ１０８）の内容について詳しく説明した。上述した多値化結果値生成処理では、所定数の画素をまとめて画素群を生成し、その画素群について分類番号と代表階調値を決定した後、多値化結果値を生成する。上述したように、画素群の分類番号および代表階調値は容易に求めることができ、多値化用テーブルを参照することによって、極めて容易に多値化結果値を得ることができる。こうして得られた多値化結果値は、画素毎にドット形成の有無を表すデータに比べて、データ量が遙かに小さくなっているため、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを出力することができる。
【０１９４】
また、画素群にまとめられた各画素の階調値基づいて、画素群を分割するか否かを判断し、分割すると判断された画素群については、複数の多値化結果値を生成する。このように、画素群を分割すると、その画素群については出力すべき多値化結果値が増えた分だけ、カラープリンタ２００に供給すべきデータ量が増加するが、前述したように、画像データは近接した画素間では近似した階調値を有する傾向があるため、実際には、分割される画素群の比率は小さく、従って、データ量の増加も僅かである。結局、上述した多値化結果値生成処理では、多値化結果値の生成および出力を迅速に実行することが可能となる。
【０１９５】
また、上述したドット形成有無決定処理では、コンピュータ１００から迅速に供給された多値化結果値を受け取ると、復号用テーブルを参照することにより、各画素についてのドット形成の有無を決定する。このように復号用テーブルを参照しながら決定すれば、画素群内の各画素についてのドット形成有無を迅速に決定することが可能である。加えて、分割された画素群については、分割された各領域の多値化結果値を受け取って、それぞれの領域内の各画素についてドット形成の有無を決定することができる。このため、画素群内で階調値が変化している場合にも、階調値の分布に応じて適切にドット形成の有無を決定することができるので、高画質な画像を得ることが可能となる。
【０１９６】
更に、多値化結果値を生成する処理や、画素群内の各画素についてのドット形成有無を決定する処理は、それぞれ多値化用テーブルあるいは復号用テーブルを参照することによって、比較的単純な処理となり、迅速に実行することができる。このため、いずれの処理についても、コンピュータ１００のような高いデータ処理能力を備えていない機器を用いた場合でも、十分に実用的な速度で処理することが可能である。
【０１９７】
また、上述した画像印刷処理では、画素群を分割するか否かに関わらず、多値化結果値を生成する際に参照する多値化用テーブルや、ドット形成有無を決定する際に参照する復号用テーブルは同じものを参照することができる。更に、画素群を分割する場合でも、後述する変形例のように、分割してどのような領域を生成するかに関わらず、多値化用テーブルや復号用テーブルは同じものを参照することができる。このため、画素群の分割の有無、あるいは分割の態様毎に、多値化用テーブルおよび復号用テーブルを記憶しておく必要がないので、多大なメモリ量が必要となることがない。従って、上述した画像印刷処理は、大きなメモリ容量を有しない機器においても実行することが可能である。
【０１９８】
Ｃ−７．第１実施例の変形例  ：
以上に説明した第１実施例の画像印刷処理には、種々の変形例が存在している。以下では、これら変形例について簡単に説明する。
【０１９９】
（１）第１の変形例  ：
以上に説明した第１実施例においては、画素群の分割パターンは１つだけしか無いものとして説明した。しかし、複数の分割パターンを用意しておき、画素群内の階調値分布に応じて適切なパターンを選択することとしても良い。以下では、こうした第１の変形例について説明する。
【０２００】
図２９は、第１実施例の第１の変形例において用いられる分割パターンを例示した説明図である。図示されているように、ここでは７種類の分割パターンが用意されている。図２９（ａ）に示した分割パターン１は、上述した実施例のように画素群を左右２つの領域に等分するパターンである。図２９（ｂ）に示した分割パターンは、画素群を上下２つの領域に等分する。また、次の４つの分割パターンは、画素群を縦横に２等分して４つの領域を生成し、その中から選択した１つの領域と他の領域とに２分割するパターンとなっている。具体的には、図２９（ｃ）に示した分割パターンは、画素群を、左上隅の領域と他の領域とに２分割するパターンである。また、図２９（ｄ）に示した分割パターンは、右上隅の領域と他の領域とに分割し、図２９（ｅ）に示したパターンは、左下隅の領域と他の領域とに分割し、図２９（ｆ）のパターンは、右下隅の領域と他の領域とに分割する。結局、これら４つの分割パターンは、画素群を異なる大きさの領域に分割することになる。また、最後に示した図２９（ｇ）の分割パターンは、画素群内の４つの領域の中から斜め方向に選択した２つの領域と、これに交差する他の領域とに画素群を分割するパターンとなっている。
【０２０１】
このように図２９に示した第１の変形例においては、７種類の分割パターンを備えており、画素群の多値化結果値を次のようにして生成する。以下では、第１実施例の多値化結果値生成処理の説明で用いた図１１のフローチャートを流用しながら、簡単に説明する。
【０２０２】
第１実施例の第１の変形例において、多値化結果値を生成するに際して、先ず画素群を生成して分類番号を決定する（図１１のステップＳ２００、Ｓ２０２相当）。次いで、画素群内の階調値分布に基づいて、画素群を分割するか否か、そして分割する場合は、これら７つの分割パターンの中から何れのパターンで分割するかを判断する（ステップＳ２０４相当）。画素群を分割しないと判断した場合は、前述した第１実施例と同様にして多値化結果値を得る。すなわち、画素群の代表階調値を算出し、多値化用テーブルを参照することにより代表階調値を多値化して、得られた多値化結果値を記憶する（ステップＳ２０６，Ｓ２０８、Ｓ２１０相当）。
【０２０３】
一方、画素群を分割すると判断した場合は（ステップＳ２０４：ｙｅｓに相当）、同時に、図２９に示した何れのパターンで分割するかについても判断する。次いで、画素群を分割する各領域について代表階調値を決定した後、多値化用テーブルを参照することにより、それぞれの代表階調値を多値化結果値に変換する（ステップＳ２１２、Ｓ２１４相当）。そして、得られた多値化結果値を記憶するに際しては、先ず初めに、分割パターンを示すＥＳＣコードを記憶し、ＥＳＣコードに続けて、各領域について得られた多値化結果値を記憶する。
【０２０４】
図３０は、第１実施例の第１の変形例において、分割パターンを示すＥＳＣコードを例示した説明図である。多値化結果値は、前述したように４ビットデータで表現されており、１０進数表示で「０」〜「１５」の値を表現可能である。このうち、「９」〜「１５」までの値がＥＳＣコードに割り当てられており、残りの「０」〜「８」までの値は多値化結果値に割り当てられている。ここで、多値化結果値が「０」〜「８」までの値となっているのは、画素群が８つの画素で構成されており、各画素はドットが形成されるか否かの２つの状態しか取り得ないとしていることに対応したものである。また、ＥＳＣコードが「９」〜「１５」までの値となっているのは、「０」〜「８」の多値化結果値を表すために４ビット必要となり、表現可能な「０」〜「１５」の中で、多値化結果値に用いられない「９」〜「１５」の７つ値をＥＳＣコードに割り当てたためである。そして、ＥＳＣコード「１５」は、図２９（ａ）に示した分割パターン１に割り当てられており、ＥＳＣコード「１４」は分割パターン２に割り当てられ、ＥＳＣコード「１３」は分割パターン３に、ＥＳＣコード「１２」は分割パターン４に、ＥＳＣコード「１１」は分割パターン５に、ＥＳＣコード「１０」は分割パターン６に、ＥＳＣコード「９」は分割パターン７に、それぞれ割り当てられている。
【０２０５】
第１の変形例においては、分割した画素群についての多値化結果値を記憶するに際して、先ず分割パターンを示すＥＳＣコードを記憶し、続けて各領域について得られた多値化結果値を記憶する（図１１のステップＳ２１６相当）。例えば、画素群が図２９（ｂ）に示す分割パターン２で分割されていた場合は、この分割パターンに対応するＥＳＣコード「１４」に続けて、それぞれの領域の多値化結果値を記憶することになる。
【０２０６】
また、第１の変形例のドット形成有無決定処理では、このよう多値化結果値を受け取ると、次のようにして画素群内の各画素についてのドット形成有無を決定する。以下では、第１実施例のドット形成有無決定処理を示した図２１のフローチャートを流用しながら、簡単に説明する。先ず、処理対象とする画素群を選択して、選択した画素群の分類番号と、画素群についての多値化結果値を取得する（図２１のステップＳ３００、Ｓ３０２、Ｓ３０４相当）。多値化結果値として読み込んだ値が「９」〜「１５」である場合は、多値化結果値ではなく画素群の分割パターンを示すＥＳＣコードであり、各領域についての多値化結果値はＥＳＣコードに続いて記憶されていると判断して（ステップＳ３０６：ｙｅｓ相当）、これら多値化結果値を読み込んでやる。
【０２０７】
画素群が分割されていない場合は（ステップＳ３０６：ｎｏ相当）、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照することにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ３０８相当）。一方、画素群が分割されている場合は（ステップＳ３０６：ｙｅｓ相当）、読み込んだ複数個の多値化結果値の各々と画素群の分類番号とを組み合わせて、復号用テーブルを参照することにより、各組合せに対応するドットデータＤＤを読み出してやる（ステップＳ３１０相当）。そして、これらのドットデータＤＤから各領域のデータを抜き出すことにより、画素群内の各画素についてのドット形成の有無を決定する（ステップＳ３１２相当）。
【０２０８】
このようにして、選択した画素群の各画素についてドット形成の有無を決定したら、画像に含まれる全画素群について、ドット形成の有無を決定したか否かを判断する（ステップＳ３１４相当）。そして、未処理の画素群が残っている場合は、処理の先頭に戻って新たな画素群を１つ選択して、上述した一連の操作を行う。こうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら（ステップＳ３１４：ｙｅｓ相当）、第１の変形例のドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【０２０９】
以上に説明した第１実施例の第１の変形例によれば、画素群にまとめられた各画素の階調値分布に応じて画素群を適切に分割することができるので、更に高画質な画像を得ることができる。また、画素群の分割パターンを増やした場合でも、分割した画素群の多値化結果値を出力するために要するデータ量や、多値化結果値から各画素についてのドット形成有無を決定するための手間は増加していない。従って、前述した第１実施例の画像印刷処理に比べて画質が向上しているにも関わらず、第１実施例の処理と同様に、迅速に画像を出力することが可能となる。
【０２１０】
（２）第２の変形例  ：
以上に説明した各種の実施例では、画素群内の各画素の階調値に基づいて画素群を分割するか否かを判断し、画素群を分割する場合にだけ、領域毎に多値化結果値を生成して、ドット形成の有無を決定した。しかし、初めから画素群を常に分割することを前提として、実際には一体として処理されることのないような、大きな画素群を生成することとしても良い。
【０２１１】
一例として、前述した解像度変換処理（図５のステップＳ１０４）において、次のような解像度変換が行われた場合を考える。画像データの解像度を主走査方向および副走査方向ともに２倍の解像度に変換することとして、１つの画素を縦横にそれぞれ２分割することにより、合計４つの画素を生成したものとする。このような場合は、これら４つの画素を画素群としてまとめれば、画素群内の各画素は同じ階調値を有することになる。従って、画素群の多値化結果値を生成して各画素のドット形成有無を決定することで、画質を全く劣化させることなく画像を印刷することが可能である。
【０２１２】
ここで、第１実施例の第２の変形例においては、これら４つの画素（すなわち、主走査方向および副走査方向いずれも２画素ずつ）を画素群としてまとめるのではなく、主走査方向に４画素ずつ、副走査方向に２画素ずつ、合計８つの画素を画素群としてまとめる。そして、これら画素群が、常に、左右２つの領域に分割されているものとして、領域毎に上述した多値化結果値生成処理、およびドット形成有無決定処理を行うのである。
【０２１３】
多値化用テーブルや復号用テーブルについての前述した設定方法から明らかなように、画素群に含まれる画素の数が異なれば、多値化用テーブルや復号用テーブルも異なったものを用意する必要がある。しかし、画素群は８つの画素から構成しておき、画素群が常に左右２つの領域に分割されるものとして処理すれば、画素群に８つの画素が含まれている場合についての多値化用テーブルや復号用テーブルをそのまま使用して、実質的には、４画素ずつ画素群にまとめた場合と同様な処理を行うことができる。すなわち、画素群に４つの画素が含まれている場合の多値化用テーブルや復号用テーブルを、新たに設定する必要がない。
【０２１４】
また、こうしたことは画素を４つずつ画素群にまとめる場合に限られるものではない。例えば、画素を２つずつ画素群にまとめる場合や、異なる個数の画素を画素群にまとめる場合であっても、同様なことが成り立ち、それぞれの場合について専用の多値化用テーブルや復号用テーブルを設定する必要がない。
【０２１５】
加えて、こうした第１実施例の第２の変形例によれば、多値化用テーブルのデータ量を低減することも可能となる。例えば、前述した第１実施例の多値化用テーブルは、図１６に示したように、１０２４個の画素群と２５６通りの代表階調値との組合せ毎に、多値化結果値が設定されている。多値化結果値は０〜８の９通りの値を取り得るから、個々の多値化結果値は４ビットのデータとなる。従って、１つの多値化用テーブルは、１Ｍビットのデータ量となる。
【０２１６】
一方、画素群が４つの画素から構成されているとした場合、画素群の数は２０４８個と、２倍に増加する。また、多値化結果値は０〜４の５通りの値を取り得るから、個々の多値化結果値は３ビットと、データ長が若干減少するものの、結局、１つの多値化用テーブルのデータ量は、１．５Ｍビットと、１．５倍に増加してしまう。換言すれば、画素群が４つの画素から構成されているとして多値化用テーブルを設定すると、１つのテーブルを記憶するために１．５Ｍビットのデータ量が必要になるのに対して、画素群が８つの画素から構成されているものとして、画素群を常に分割して処理することにすれば、多値化用テーブルを記憶するために要するデータ量を、１Ｍビットに減少させることが可能となるのである。
【０２１７】
Ｄ．第２実施例  ：
以上に説明した第１実施例では、カラープリンタ２００で形成可能なドットは１種類であるものとして説明した。しかし、今日では、画質を向上させることを目的として、大きさの異なるドットや、インク濃度の異なるドットなど、多種のドットを形成可能なプリンタ（いわゆる多値ドットプリンタ）が広く使用されている。本願の発明は、こうした多値ドットプリンタに適用した場合にも大きな効果を得ることができる。以下では、第２実施例として、本願発明を多値ドットプリンタに適用した場合について説明する。
【０２１８】
Ｄ−１．第２実施例の画像印刷処理の概要  ：
第２実施例の画像印刷処理は、フローチャートについては、図５に示した第１実施例の画像印刷処理と同様である。以下では、図５のフローチャートを流用しながら、第２実施例の画像印刷処理の概要について簡単に説明する。
【０２１９】
第２実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ１００で画像データを読み込んだ後、色変換処理を行う（図５のステップＳ１００およびステップＳ１０２相当）。次いで、解像度変換処理を行って、画像データの解像度を印刷解像度に変換した後（ステップＳ１０４相当）、多値化結果値生成処理を行って画素群の代表階調値を多値化結果値に変換する（ステップＳ１０６相当）。
【０２２０】
前述したように、第１実施例では、カラープリンタ２００が形成可能なドットは１種類であるものとしており、多値化結果値は、画素群の画素群内に形成されるドット個数を表していた。これに対して第２実施例では、カラープリンタ２００は、大きさの異なる３種類のドット、すなわち大ドット、中ドット、小ドットを形成可能である。このことと対応して、第２実施例の多値化結果値は、画素群内に形成されるこれら各種ドットの個数の組合せを表すものとする。そして、第２実施例の多値化結果値生成処理では、画素群の代表階調値を、各種ドットの個数の組合せを表す多値化結果値に変換する処理を行う。また、画素群を分割すると判断した場合には、分割して生成された各領域について多値化結果値を決定する。第２実施例の多値化結果値生成処理の詳細については後述する。
【０２２１】
カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から供給された多値化結果値を受け取ると、ドット形成有無決定処理を開始する（図５のステップＳ１０８相当）。詳細には後述するが、第２実施例のドット形成有無決定処理では、復号用テーブルを参照することにより、多値化結果値を、画素群内の各画素について大中小ドットのいずれのドットを形成するかを決定する処理を行う。
【０２２２】
こうして、大中小の各種ドットについてドット形成の有無を決定したら、決定したドット形成の有無に従って、印刷媒体上にドットを形成する（図５のステップＳ１１０相当）。その結果、画像データに対応した画像が印刷されることになる。
【０２２３】
Ｄ−２．第２実施例の多値化結果値生成処理  ：
次に、上述した第２実施例の画像印刷処理において、画素群についての、あるいは画素群内の各領域についての代表階調値を多値化して多値化結果値を生成する処理について説明する。後述するように、第２実施例の多値化結果値生成処理においても、画素群の分類番号および代表階調値から多値化用テーブルを参照することにより、極めて容易に生成することができる。こうしたことが可能である理由を説明するために、先ず初めに、画素群内に形成される大中小ドットの個数を、ディザ法を用いて決定する処理について簡単に説明する。その後、かかる処理を踏まえた上で、第２実施例の多値化結果値生成処理の詳細な内容について説明する。
【０２２４】
Ｄ−２−１．ディザ法を用いた大中小ドットの形成個数の決定処理  ：
図３１は、画素群内に形成される大ドット、中ドット、小ドットの個数を、ディザ法を適用して決定する処理の流れを示すフローチャートである。尚、ディザ法を適用して大中小の各ドットの形成有無を決定する処理の詳細については、特許３２９２１０４号に開示されている。すなわち、図３１に示した処理は、特許３２９２１０４号に開示された手法を画素群単位で行うものと見ることができる。大中小ドットの個数を決定する場合も、処理を開始すると先ず初めに、互いに隣接する所定数の画素をまとめて画素群を形成する（ステップＳ４００）。ここでは、前述した実施例と同様に、主走査方向に４画素、副走査方向に２画素の合計８つの画素を画素群としてまとめるものとする。
【０２２５】
次いで、画素群の中からドット形成の有無を判断するべく、処理対象とする画素を１つ選択して（ステップＳ４０２）、選択した処理画素について、大ドット、中ドット、小ドットの形成有無を判断する（ステップＳ４０４）。大中小ドットの形成有無は次のようにして判断する。
【０２２６】
図３２は、選択した１つの画素についてハーフトーン処理を行うことにより、大ドット、中ドット、小ドットの形成有無を判断する処理の流れを示すフローチャートである。大中小ドットのハーフトーン処理を開始すると、先ず初めに処理対象とする画素についての画像データを、大ドット、中ドット、小ドットの各ドットについての密度データに変換する（ステップＳ４５０）。ここで、密度データとは、ドットをどの程度の密度で形成するかを表すデータである。密度データは、大きな階調値となるほどドットが高い密度で形成されることを表している。例えば、密度データの階調値「２５５」は、ドットの形成密度が１００％、すなわち全ての画素にドットが形成されることを表しており、密度データの階調値「０」は、ドットの形成密度が０％、すなわちいずれの画素にもドットが形成されないことを表している。こうした密度データへの変換は、ドット密度変換テーブルと呼ばれる数表を参照することによって行うことができる。
【０２２７】
図３３は、画像データの階調値を大中小各ドットについての密度データに変換する際に参照されるドット密度変換テーブルを概念的に示した説明図である。図示されているように、ドット密度変換テーブルには、色変換によって得られた画像データの階調値に対して、小ドット・中ドット・大ドットの各ドットについての密度データが設定されている。画像データが階調値「０」近傍の領域では、中ドット・大ドットの密度データはいずれも階調値「０」に設定されている。小ドットの密度データは、画像データの階調値が大きくなるにつれて増加して行くが、画像データがある階調値に達すると今度は逆に減少し始め、代わりに中ドットの密度データが増加し始める。画像データの階調値が更に増加して、ある階調値に達すると、小ドットの密度データが階調値「０」となり、中ドットの密度データが減少し始めて、代わりに大ドットの密度データが少しずつ増加していく。図３２のステップＳ４５０では、このドット密度変換テーブルを参照しながら、画像データの階調値を、大ドットの密度データ、中ドットの密度データ、小ドットの密度データに変換する処理を行う。
【０２２８】
このようにして、処理対象とする画素について、大中小各ドットの密度データが得られたら、先ず初めに大ドットについての形成有無を判断する（図３２のステップＳ４５２）。かかる判断は、大ドットの密度データと、処理対象としている画素の対応する位置に設定されているディザマトリックスの閾値とを比較することによって行う。そして、密度データの方が大きい場合は処理対象の画素には大ドットを形成するものと判断される。その結果、大ドットを形成することになった場合は、ステップＳ４５４において「ｙｅｓ」と判断され、ハーフトーン処理を抜けて図３１に示したドット個数決定処理に復帰する。
【０２２９】
逆に、大ドットの密度データよりも閾値の方が大きければ、ステップＳ４５２において、処理対象の画素には大ドットは形成されないと判断される。判断の結果、大ドットは形成されない場合は（ステップＳ４５４：ｎｏ）、今度は中ドットについて形成有無を判断する処理を開始する。中ドットの形成有無の判断には、大ドットの密度データと中ドットの密度データとを加算して、中ドット用の中間データを算出する（ステップＳ４５６）。そして、得られた中ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、中ドットの形成有無を判断する（ステップＳ４５８）。そして、中ドット用の中間データの方が大きい場合は処理対象の画素には中ドットを形成するものと判断される。その結果が、中ドットを形成することになった場合は、ステップＳ４６０において「ｙｅｓ」と判断されるので、ハーフトーン処理を抜けて図３１のドット個数決定処理に復帰する。
【０２３０】
逆に、中ドット用の中間データよりも閾値の方が大きかった場合は、ステップＳ４５８において、処理対象の画素には中ドットを形成しないと判断される。判断の結果、中ドットも形成されない場合は（ステップＳ４６０：ｎｏ）、今度は小ドットについて形成有無を判断する処理を開始する。小ドットの形成有無の判断には、中ドット用の中間データと小ドットの密度データとを加算して、小ドット用の中間データを算出する（ステップＳ４６２）。そして、得られた小ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、小ドットの形成有無を判断する（ステップＳ４６４）。その結果、小ドット用の中間データの方が大きい場合は処理対象の画素には小ドットを形成するものと判断し、逆に、小ドット用の中間データよりも閾値の方が大きい場合には、いずれのドットも形成されないものと判断する。以上のような処理を行えば、処理対象としている画素について、大ドット、中ドット、小ドットのいずれのドットを形成するか、若しくは、いずれのドットも形成しないかを判断することができるので、図３２に示したハーフトーン処理を抜けて図２９のドット個数決定処理に復帰する。
【０２３１】
上述した処理を行いながら大中小の各ドットの形成有無を判断する様子について、図３４を参照しながら補足して説明する。図３２は、画素群内の各画素について、ディザ法を適用しながら大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。ここでは、説明が煩雑となることを避けるために、画素群内の全画素が同じ階調値を有しており、従って、大中小各ドットの密度データも同じ階調値を有しているものとする。図３４（ａ）は、画素群内の各画素について得られた大中小ドットの密度データを示しており、いずれの画素も、大ドットの密度データが「２」、中ドットの密度データが「９０」、小ドットの密度データが「３２」であったものとする。
【０２３２】
図３４（ｂ）は、ディザマトリックス中で、画素群の対応する位置に記憶されている閾値を表している。大ドットの形成有無を判断する際には、大ドットの密度データと、これら閾値とを比較する。ここでは、いずれの画素についても、大ドットの密度データは「２」であるとしているから、大ドットを形成すると判断される画素は、閾値「１」が設定された画素だけである。図３４（ｂ）には、大ドットが形成されると判断された画素には、細かい斜線を付して表示している。その他の画素については、中ドットか小ドットのどちらかが形成されるか、若しくはいずれのドットも形成されないかのいずれかであると考えられる。そこで、これらの画素については中ドットの形成有無を判断する。
【０２３３】
中ドットの形成有無の判断に際しては、大ドットの密度データ「２」と中ドットの密度データ「９０」とを加算して中ドット用の中間データを算出し、得られた中間データ「９２」とディザマトリックスの閾値とを比較する。その結果、閾値「４２」が設定された画素と、閾値「５８」が設定された画素の２つの画素にのみ、中ドットが形成されるものと判断される。図３４（ｃ）には、中ドットが形成されると判断された画素には、少し細かい斜線を付して表示している。そして、大ドットも中ドットも形成されない画素については、小ドットが形成されるか、ドットが形成されないかのいずれかであると考えられる。そこで、中ドット用の中間データ「９２」に小ドットの密度データ「３２」を加算して、小ドット用の中間データを算出し、得られた中間データ「１２４」とディザマトリックスの閾値とを比較する。その結果、閾値「１０９」が設定された画素にのみ、小ドットが形成されるものと判断される。図３４（ｄ）には、小ドットが形成されると判断された画素には、粗い斜線を付して表示している。
【０２３４】
図３１に示したドット個数決定処理のステップＳ４０２〜Ｓ４０６では、以上のようにして画素群内の各画素について中間データを算出しながら、大中小の各ドットについての形成有無を判断していく。こうして、画素群内の全画素について判断を終了したら（ステップＳ４０６：ｙｅｓ）、画素群内に形成される大ドット、中ドット、小ドットの個数を決定する（ステップＳ４０８）。図３４に例示した画素群については、大ドット１個、中ドット２個、小ドット１個であると決定される。
【０２３５】
こうして、大中小の各ドットのドット個数を取得したら、画像の全画素について以上の処理を行ったか否かを判断する（ステップＳ４１０）。そして、未処理の画素が残っている場合は、ステップＳ４００に戻って続く一連の処理を繰り返し、画像の全画素について処理を終了したと判断されたら、図３１に示したディザ法によるドット個数決定処理を終了する。その結果、画像データは複数の画素群に分割され、各画素群に形成される大ドット、中ドット、小ドットの個数が得られることになる。図３５は、画素群毎に大ドット、中ドット、小ドットの形成個数が得られた様子を概念的に示した説明図である。
【０２３６】
Ｄ−２−２．第２実施例の多値化結果値生成処理の内容  ：
第２実施例の多値化結果値生成処理は、以上に説明したディザ法を用いて大中小各ドットの形成有無を判断する処理を基礎としており、画素群内の各画素が何れも代表階調値を有するものとして、代表階調値を大中小各ドットの個数を示す値に多値化する処理を行う。すなわち、第２実施例の多値化結果値は、画素群内に形成される各種ドットの個数の組合せを表している。そこで、先ず、第２実施例の多値化結果値と、画素群内に形成される各種ドットの個数の組合せとの対応関係について説明しておく。
【０２３７】
図３６は、第２実施例の多値化結果値と、画素群内に形成される各種ドットの個数の組合せとの対応関係を示した説明図である。第２実施例においては、画素群内に形成される大ドット、中ドット、小ドットの個数の組合せは、全部で１６５通り存在しており、それぞれの組合せ１つずつに多値化結果値が対応付けられている。ここで、１つに画素に形成し得るドットの種類は大ドット、中ドット、小ドットの３種類であり、画素群には８つの画素が含まれているから、１つの画素群に形成し得るドット個数の組合せは、単純に考えると３の８乗（＝６５６１）通りにもなってしまう。しかし、実際には図３６に示したように１６５通りの組合せしか存在しない。これは、次のような理由によるものである。
【０２３８】
画素群内の各画素には、大ドット、中ドット、小ドットのいずれのドットも形成され得るが、１つの画素に複数のドットが形成されることはないから、ドット個数の合計が画素群内の画素数（上述した実施例では８個）を越えることはない。従って、これら大中小ドットの個数の組合せは、「大ドットを形成する」、「中ドットを形成する」、「小ドットを形成する」、「ドットを形成しない」の４つの状態の中から重複を許して８回選択するときの組合せの数に等しくなるから、
４Ｈ８  （＝４＋８−１Ｃ８）
によって求められ、１６５通りの組合せが存在していることになる。ここで、ｎＨｒは、ｎ種類の物の中から重複を許してｒ回選択したときに得られる組合せの数（重複組合せ数）を求める演算子である。また、ｎＣｒは、ｎ種類の物の中から重複を許さずにｒ回選択したときに得られる組合せの数を求める演算子である。
【０２３９】
１６５通りであれば、８ビットあれば表現することができるから、第２実施例の多値化結果値は８ビットのデータとなっている。大中小の３種類のドットを形成可能とした場合、各画素は、大中小いずれかのドットを形成するか、何れのドットも形成しないかの４つの状態を取り得るから、これらの状態を表現しようとすると画素あたり２ビットが必要となる。画素群には８つの画素があるから、画素群内の各画素がいずれの状態を取るかを表すためには１６ビット必要となる。従って、各画素のドット形成の有無を出力する代わりに多値化結果値を出力することとすれば、データ量を半減させることができる計算となる。
【０２４０】
図３７は、第２実施例における多値化結果値生成処理の流れを示すフローチャートである。第２実施例の多値化結果値は、前述した第１実施例の処理に対して、参照する多値化用テーブルが異なる以外は、ほぼ同様の処理となる。すなわち、第１実施例では形成可能なドットは１種類であったところが、第２実施例では大中小の３種類のドットに増えているにも関わらず、第２実施例の多値化結果値も、第１実施例と全く同様に簡素な処理によって迅速に生成することが可能である。以下では、図３７のフローチャートに従って説明する。
【０２４１】
第２実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成した後（ステップＳ５００）、画像中での画素群の位置に基づいて分類番号を決定する（ステップＳ５０２）。次いで、画素群にまとめられた各画素の階調値に基づいて、画素群を分割するか否かを判断する（ステップＳ５０４）。ここでは分割パターンとしては、第１実施例と同様に、画素群を左右２つの領域に等分するパターンのみが用意されているものとして説明するが、図２９に例示したような、異なる複数の分割パターンが用意されているものとすることも可能である。そして、画素群を分割しないと判断した場合は（ステップＳ５０４：ｎｏ）、画素群の代表階調値を決定した後（ステップＳ５０６）、多値化用テーブルを参照することにより、画素群の分類番頭および代表階調値に対応する多値化結果値を取得する。画素群の代表階調値は、前述した第１実施例と同様にして決定することができる。
【０２４２】
図３８は、第２実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。図示されているように、第２実施例における多値化用テーブルには、画素群の分類番号および代表階調値の組合せに対応付けて、多値化結果値が設定されている。この多値化結果値は、画素群内の全ての画素が代表階調値を有するものとして、図３１ないし図３４で説明した方法により各種ドットの形成個数を求め、得られたドット個数の組合せを図３６に示した対応関係に従って変換して得られた値である。図３８に示した多値化用テーブルには、このようにして求めた多値化結果値が予め設定されているので、第２実施例の多値化結果値生成処理では、テーブルを参照するだけで、画素群の分類番号および代表階調値から直ちに多値化結果値を得ることが可能である。画素群を分割しないと判断した場合は、こうして得られた多値化結果値を記憶しておく（図３７のステップＳ５１０）。
【０２４３】
一方、画素群を分割すると判断した場合は（ステップＳ５０４：ｙｅｓ）、画素群を分割して生成した各領域について代表階調値を決定した後（ステップＳ５１２）、それぞれの代表階調値を画素群の分類番号と組み合わせて多値化用テーブルを参照することにより、各領域についての多値化結果値を取得する（ステップＳ５１４）。次いで、分割パターンを示すＥＳＣコードを記憶する（ステップＳ５１６）。
【０２４４】
図３９は、第２実施例において多値化結果値とＥＳＣコードとが割り当てられている様子を示した説明図である。前述したように多値化結果値は１６５通りの値を取り得るので８ビットのデータとなり、「０」〜「１６４」の値を多値化結果値に割り当てると、「１６５」〜「２５５」の値が空きとなる。そこで、空いた値の中から任意に選んだ値（ここでは、「２５５」）をＥＳＣコードに割り当てる。画素群の分類パターンが複数用意されている場合は、分類パターンの種類に応じて複数の値をＥＳＣコードに割り当てておけば良い。図３７のステップＳ５１６では、画素群の分割パターンに対応付けて割り当てられたＥＳＣコードを記憶する。
【０２４５】
こうしてＥＳＣコードを記憶したら、続いて各領域について得られた多値化結果値を記憶する（ステップＳ５１８）。多値化結果値は、画素群を分割して生成された各領域について得られる。従って、画素群をＮ個の領域に分割した場合は、ＥＳＣコードに続いて記憶される多値化結果値の個数もＮ個となる。また、分割パターンとして画素群の分割数が異なるパターンが用意されている場合は、ＥＳＣコードに続いて記憶される多値化結果値の個数が分割パターンに応じて異なる場合を起こり得る。
【０２４６】
図４０は、３つの画素群Ａ，Ｂ，Ｃについての多値化結果値を生成している様子を示した説明図である。図４０（ａ）は、３つの画素群に含まれている各画素の階調値を示している。また、図４０（ｂ）は、画素群内の階調値分布に従って画素群の分割有無を決定するとともに、代表階調値を決定した様子を表している。図示されているように、画素群Ａにまとめられた各画素はいずれも階調値９７と同じ値を有しているので、この画素群は分割する必要はないと判断し、画素群の代表階調値を「９７」と決定する。一方、画素群Ｂについては、中央で階調値が大きく変化しており、左半分にある画素は階調値９７を、右半分にある画素は階調値１３５を有している。そこで、この画素群は左右２つの領域に分割するものと判断して、左側の領域については代表階調値を「９７」と決定し、右側の領域については代表階調値を「１３５」と決定する。また、画素群Ｃについては、全ての画素が階調値１３５を有しているので、この画素群については分割は不要と判断し、画素群の代表階調値を「１３５」と決定する。図３７に示したステップＳ５０４、Ｓ５０６、Ｓ５１２では、このようにして画素群あるいは画素群内の各領域についての代表階調値を決定する処理を行う。
【０２４７】
次いで、図３８に示した多値化用テーブルを参照することにより、代表階調値を多値化結果値に変換した後、得られた多値化結果値を記憶する。画素群が分割されている場合は、分割パターンを示すＥＳＣコードとともに、各領域について得られた多値化結果値を記憶する。図４０（ｃ）は、３つの画素群Ａ，Ｂ，Ｃについて、多値化結果値あるいはＥＳＣコードを記憶する様子を表している。例えば画素群Ａについては、画素群は分割されておらず代表階調値９７が得られているから、画素群Ａの分類番号と代表階調値９７とから得られた多値化結果値８５を記憶してやればよい。画素群Ｂについては、画素群が左右２つに等分されているから、先ず初めに、この分割パターンに対応するＥＳＣコード２５５を記憶し、続いて、左領域についての多値化結果値９２、および右領域についての多値化結果値１４１を記憶する。結局、画素群Ｂについての多値化結果値は、画素群Ａの多値化結果値３つ分のデータ量となる。尚、画素群Ａの代表階調値も、画素群Ｂの左領域の代表階調値も、いずれも階調値９７であるにも関わらず多値化結果値がそれぞれ「８５」および「９２」と異なっているのは、画素群Ａと画素群Ｂとで分類番号が異なっているためである。画素群Ｃについては、画素群は分割されておらず代表階調値１３５であるから、図３８の多値化用テーブルを参照して得られた多値化結果値１３２を、そのまま記憶すればよい。図３７のステップＳ５０８、Ｓ５１０、Ｓ５１４、Ｓ５１６、Ｓ５１８では、このようにして、画素群毎に多値化結果値あるいはＥＳＣコードを記憶する処理を行う。
【０２４８】
以上のようにして画素群の多値化結果値を記憶したら、画像データの全画素について処理を終了したか否かを判断し（ステップＳ５２０）、未処理の画素が残っていれば（ステップＳ５２０：ｎｏ）、ステップＳ５００に戻って新たな画素群を生成して、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したと判断されたら（ステップＳ５２０：ｙｅｓ）、分割されていない画素群については多値化結果値のみを、分割されている画素群については、分割パターンを示すＥＳＣコードおよび多値化結果値をカラープリンタ２００に出力して（ステップＳ５２２）、図３７に示す第２実施例の多値化結果値生成処理を終了する。
【０２４９】
Ｄ−３．第２実施例のドット形成有無決定処理  ：
次に、第２実施例のカラープリンタ２００において、多値化結果値を受け取って大中小各ドットの形成有無を決定する処理について説明する。図４１は、第２実施例のドット形成有無決定処理の流れを示すフローチャートである。以下、フローチャートに従って、第２実施例のドット形成有無決定処理について説明する。
【０２５０】
第２実施例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を１つ選択し（ステップＳ６００）、その画素群の分類番号を取得する（ステップＳ６０２）。画素群の分類番号は、前述した第１実施例のドット形成有無決定処理と同様にして取得することができる。
【０２５１】
次いで、選択した画素群について多値化結果値として供給された先頭のデータを取得した後（ステップＳ６０４）、取得したデータがＥＳＣコードか否かを判断する（ステップＳ６０６）。ここでは、画素群の分割パターンは１種類だけ用意されており、この分割パターンにはＥＳＣコード「２５５」が割り当てられているものとしているから、ステップＳ６０６では読み込んだデータが「２５５」であるか否かを判断することになる。
【０２５２】
読み込んだデータがＥＳＣコードでは無い場合は（ステップＳ６０６：ｎｏ）、画素群は分割されていないと判断して、読み込んだデータを多値化結果値と読み替える（ステップＳ６０８）。そして、その画素群について取得しておいた分類番号と多値化結果値とから、復号用テーブルを参照することにより、画素群内の各画素についてドット形成の有無を決定する（ステップＳ６１０）。ここで、第２実施例のドット形成有無決定処理で参照する復号用テーブルは、図２４を用いて前述した第１実施例の復号用テーブルとほぼ同様である。但し、第２実施例では大中小の３種類のドットを形成可能であることに対応して、第２実施例の復号用テーブルに設定されているドットデータＤＤは、画素群内の各画素に大ドット、中ドット、小ドットのいずれのドットを形成するかを示したデータとなっている。
【０２５３】
図４２は、第２実施例の復号用テーブルに設定されているドットデータＤＤのデータ構造を示した説明図である。第２実施例のドットデータＤＤは、２ビットを１組として８組からなる１６ビットのデータであり、各組が画素群内の各画素に対応付けられている。そして、２ビットデータ「１１」は大ドットが形成されることを表しており、２ビットデータ「１０」は中ドットが形成されることを、２ビットデータ「０１」は小ドットが形成されることを、２ビットデータ「００」はドットが形成されないことを表している。
【０２５４】
例えば、ドットデータＤＤが、図４２（ａ）に示すようなデータであったとする。ドットデータＤＤ中で１番と符番した組には「１１」が設定されているから、画素群内の対応する画素（図４２（ｂ）中で１番と符番した画素）には大ドットが形成される。また、ドットデータＤＤ中で２番と符番した組には「００」が設定されているから、画素群内で２番と符番した画素にはいずれのドットも形成されない。このように、ドットデータＤＤの各組に設定されているデータは、画素群内の各画素に形成されるドットの種類を表している。第２実施例のドット形成有無決定処理で参照される復号用テーブルには、この様なドットデータＤＤが設定されている。
【０２５５】
図４１に示したステップＳ６１０では、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照して、図４２に示すようなドットデータＤＤを読み出すことにより、画素群内の各画素についてのドット形成有無を決定する。尚、第２実施例のドット形成有無決定処理で参照される復号用テーブルの設定方法については後述する。
【０２５６】
一方、ステップＳ６０４で読み込んだデータがＥＳＣコードであった場合は（ステップＳ６０６：ｙｅｓ）、画素群は分割されていると判断し、ＥＳＣコードに続いて記憶されている所定個数の多値化結果値を取得する（ステップＳ６１２）。これら多値化結果値は、画素群を分割して生成された各領域の代表階調値から得られた多値化結果値である。
【０２５７】
次いで、復号用テーブルを参照することにより、取得したそれぞれの多値化結果値をドットデータＤＤに変換する（ステップＳ６１４）。そして、各領域の多値化結果値から求められたドットデータＤＤから、それぞれの領域に相当する部分のデータを抜き出して組み合わせることにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ６１６）。
【０２５８】
図４３は、複数のドットデータＤＤから、画素群内の各画素についてのドット形成有無を決定する様子を示す説明図である。ここでは、図４３（ａ）に示すように、画素群が左右２つに等分された各領域について、多値化結果値９２および多値化結果値１３５が得られたものとする。次いで、復号用テーブルを参照することにより、これらの多値化結果値をドットデータＤＤに変換する。図４３（ｂ）および図４３（ｃ）は、それぞれ左領域および右領域の多値化結果値から得られたドットデータＤＤを表している。図４１に示したステップＳ６１４では、この様に多値化結果値をドットデータＤＤに変換する処理を行う。尚、前述したように第２実施例のドットデータＤＤは、２ビットずつを１組とした１６ビットのデータであるが（図４２参照）、図示が煩雑となることを避けるため、図４３では各組の２ビットデータを１０進数で表示している。すなわち、大ドットを表す２ビットデータ「１１」は、図４３では「３」と表示され、中ドットを表す２ビットデータ「１０」は「２」と、小ドットを表す２ビットデータ「０１」は「１」と、そしてドットを形成しないことを表す２ビットデータ「００」は「０」と表示されている。
【０２５９】
次いで、それぞれのドットデータＤＤから、各領域に該当する部分のデータを抜き出して組み合わせることにより、分割された画素群内についてのドットデータＤＤを合成する。すなわち、図４３（ｂ）に示したドットデータＤＤは左領域について得られたものであるから、このドットデータＤＤからは、左領域を構成する４つの画素に相当する部分のデータを抜き出してやる。図４３に示した例では、１番、２番、５番、６番の４つの画素が左領域の画素に対応する。また、図４３（ｃ）に示したドットデータＤＤは右領域について得られたものであるから、右領域を構成する４つの画素に相当する部分のデータを抜き出してやる。図４３に示した例では、３番、４番、７番、８番の４つの画素が右領域の画素に対応する。そして、各ドットデータＤＤから抜き出したデータを組み合わせて、新たなドットデータＤＤを合成する。図４３（ｄ）は、分割された画素群についてのドットデータＤＤが、この様にして合成された様子を示している。また、図４３(e)には、合成されたドットデータＤＤに従って、各画素にドットが形成されている様子を示している。
【０２６０】
図４３（ｅ）に示すように、左半分の領域は右半分の領域よりも小さめのドットがまばらに形成されている。すなわち、図４３（ａ）に示した多値化結果値が適切に反映されたドット分布になっている。図４１のステップＳ６１６では、この様にして、分割された画素群についてのドットデータＤＤを合成することで、各画素についてのドット形成の有無を決定する処理を行う。
【０２６１】
以上のようにして、選択した画素群内の各画素についてドット形成の有無を決定したら（ステップＳ６１０、Ｓ６１６）、全画素群についての処理を終了したか否かを判断する（ステップＳ６１８）。そして、未処理の画素群が残っている場合は（ステップＳ６１８：ｎｏ）、ステップＳ６００に戻って新たな画素群を選択し、続く一連の操作を行ってドット形成の有無を決定する。このような操作を繰り返して、全画素群についての処理を終了したと判断したら（ステップＳ６１８：ｙｅｓ）、図４１に示した第２実施例のドット形成有無決定処理を終了する。
【０２６２】
最後に、第２実施例のドット形成有無決定処理で参照する復号用テーブルの設定方法について簡単に説明しておく。第２実施例の復号用テーブルの設定は、前述した第１実施例の復号用テーブルとほぼ同様にして設定することができる。但し、第２実施例では大中小各ドットについてドット形成有無を判断する点で、第１実施例とは異なっている。
【０２６３】
図４４は、第２実施例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。ここでは画素群の多値化結果値が「１０５」であったとする。第２実施例の復号用テーブルには、大中小各ドットについての形成有無を表すドットデータＤＤが設定されているから、先ず、多値化結果値を、これら各種ドットの個数を表すデータに変換する。かかる変換は、図３６に示した対応関係に基づいて容易に実施することができる。ここでは、多値化結果値１０５は、大ドット１個、中ドット２個、小ドット１個の組合せを表していたものとする。次いで、ディザマトリックスに設定された閾値を参照することにより、これらのドットが画素群内のいずれの画素に形成されるかを決定していく。図４４では、分類番号１番の画素群および、分類番号２番の画素群を例に用いて、これら画素群内で大中小各ドットが形成される画素を決定し、対応するドットデータＤＤを求める様子を示している。
【０２６４】
図４４の左半分には、分類番号１番の画素群についてのドットデータＤＤ（１，１０５）を求める様子が示されている。ここで、ドットデータＤＤ（１，１０５）とは、画素群の分類番号が１番、多値化結果値１０５の組合せに対応して設定されるドットデータであることを意味している。分類番号１番の画素群についてのドットデータＤＤを求めるためには、ディザマトリックス中で通し番号１番のブロックに設定された閾値を参照する。図４４の上から３段目の左側には、通し番号１番のブロックに設定された閾値が示されている。前述したように、これら閾値はドットの形成され易さを表していると考えることができる。そこで、これら閾値に従って、大ドット、中ドット、小ドットの順番でドットを形成する画素位置を決定していく。以下、具体的に説明する。
【０２６５】
先ず、大ドットを形成する画素位置を決定する。通し番号１番のブロック中で最もドットが形成され易い画素は、閾値１が設定されている画素であるから、大ドットはこの画素に形成する。この画素群に形成される大ドットは１個だけであるから、続いて、２つの中ドットを形成する画素位置を決定する。通し番号１番のブロック中で２番目および３番目にドットが形成され易い画素は、閾値４２が設定されている画素と、閾値５８が設定されているであるから、中ドットはこれらの画素に形成するものと決定する。最後に小ドットを形成する画素位置を決定する。通し番号１番のブロック中で４番目にドットが形成され易い画素は、閾値１０９が設定されている画素であるから、小ドットはこの画素に形成するものとする。図４４の上から４段目の左側には、このようにして分類番号１番の画素群について、大中小各ドットが形成される画素位置が決定された様子を表している。図中で、細かい斜線が付された画素には大ドットが形成され、少し粗い斜線が付された画素には中ドットが形成され、粗い斜線が付された画素には小ドットが形成され、そして、斜線の付されていない画素にはドットが形成されないことを表している。このようにして画素群内の各画素についてドット形成の有無を決定したら、このドット配置を図４２に示したデータ形式のドットデータで表現して、分類番号１番および多値化結果値１０５に対応するドットデータＤＤ（１，１０５）として復号用テーブルに設定する。
【０２６６】
分類番号２番の画素群についても同様にして、ドットデータＤＤ（２，１０５）を設定することができる。すなわち、通し番号２番のブロックに設定された閾値を取得する。そして、得られた閾値に従って、大ドット、中ドット、小ドットの順番で、これらドットを形成する画素位置を決定した後、ドットの配置を図４２に示したデータ形式で表して、ドットデータＤＤ（２，１０５）として復号用テーブルに記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶していけば、第２実施例のドット形成有無決定処理中で参照される復号用テーブルを設定することができる。
【０２６７】
以上、第２実施例の画像印刷処理中で行われる多値化結果値生成処理（図３７）、およびドット形成有無決定処理（図４１）について説明した。第２実施例の画像印刷処理では、大中小の各種ドットを形成することによって高画質な画像を印刷することができる。このように、第２実施例では第１実施例に対して基準となる画質が向上していることから、階調値分布に応じて画素群を分割してドット形成有無を決定することによる画質の改善効果を、より効果的に発揮させることができる。
【０２６８】
また、一般には、形成可能なドットの種類が増加すると、ドット形成の有無を判断する処理が複雑となり、加えて、コンピュータからカラープリンタに供給すべきデータ量が増加してしまう。このため、高画質な画像は得られるものの、どうしても印刷速度が低下する傾向にあった。しかし、第２実施例の画像印刷処理は、第１実施例に対して、多値化結果値のデータ長こそ４ビットから８ビットに増えているものの、多値化結果値を生成する処理そのものは、画素群の分類番号および代表階調値から多値化用テーブルを参照するだけで変わるところが無く、たいへんに簡素な処理によって迅速に多値化結果値を出力することができる。また、画素毎に大中小ドットの形成有無を表現しようとすると１６ビット必要になることと比べれば、多値化結果値が８ビットであっても、データ量が半減していることになる。従って、多値化結果値を、コンピュータ１００からカラープリンタ２００迅速に供給することが可能であり、高画質な画像を迅速に出力することが可能となる。
【０２６９】
一方、ドットの形成有無を決定するに際しても、第１実施例のドットデータＤＤが８ビットであるのに対して、第２実施例のドットデータＤＤは１６ビットと長くなっているものの、いずれの場合でも復号用テーブルを参照することで、画素群内の各画素についてのドット形成有無を迅速に決定することができる。このため、大中小の各種ドットを形成して高画質な画像を出力可能であるにも関わらず、処理の複雑化や処理速度の低下を招くことなく、迅速に画像を出力することができる。
【０２７０】
加えて、第２実施例においても第１実施例と同様に、多値化結果値生成処理およびドット形成有無決定処理のいずれの処理も簡素な処理とすることができるので、コンピュータのような高度な処理能力を持たない機器においても、十分に実用的な速度で実行することが可能である。
【０２７１】
また、以上に説明した第２実施例の画像印刷処理においても、前述した第１実施例の第２の変形例における処理と同様に、画素群を常に分割することとして画像処理を行うこととしても良い。こうすれば、例えば８つの画素を含む画素群についての多値化用テーブルおよび復号用テーブルをそのまま使用して、実質的には、より少ない画素を画素群とする処理を行うことができる。
【０２７２】
加えて、画素群を常に分割するものとして、実際の処理単位よりも大きな画素群を生成しておけば、前述した第１実施例の第２の変形例における場合と同様に、多値化用テーブルのデータ量を低減することも可能となる。例えば、前述した第２実施例の多値化用テーブルは、図３８に示したように、１０２４個の画素群と２５６通りの代表階調値との組合せ毎に、多値化結果値が設定されており、個々の多値化結果値は８ビットだから、多値化用テーブルのデータ量は２Ｍビットとなる。すなわち、８つの画素を画素群にまとめた場合、多値化用テーブルを記憶するためには２Ｍビットのメモリ容量が必要となる。
【０２７３】
一方、４つの画素を画素群にまとめた場合は、画素群の数は２０４８個に増加する。個々の多値化結果値の取り得る範囲は０〜３４の３５種類だから、６ビットあれば表現可能である。すなわち、画素群に８つの画素が含まれている場合に比べて、画素群の数は２倍、個々の多値化結果値のデータ長は６／８倍となるから、多値化用テーブルのデータ量は、１．５倍の３Ｍビットとなる。
【０２７４】
結局、画素を４つずつ画素群にまとめた場合は多値化用テーブルを記憶するために３Ｍビット必要になるところを、８つずつ画素群にまとめて、画素群を常に２つに分割して処理することとすれば２Ｍビットで良くなり、多値化用テーブルを記憶するために要するメモリ容量を低減することが可能となる。
【０２７５】
Ｅ．第３実施例  ：
以上に説明した第１実施例、あるいは第２実施例では、多値化結果値の意味するところは、その結果値がいずれの画素群について得られたものであっても同じように解釈することができた。例えば、第１実施例において多値化結果値３と言えば、その結果値がどの画素群について得られたものであっても、画素群内に３つのドットが形成されることを表していた。また、第２実施例において多値化結果値１２５と言えば、この値は、図３６に示した対応関係に応じて大ドット、中ドット、小ドットがそれぞれ所定の個数だけ画素群に形成されることを表していた。このように、異なる画素群に対して得られた多値化結果値であっても同じ値であれば、その意味するところは同じように解釈することができた。しかし、多値化結果値の意味する内容を、画素群に応じて異ならせることも可能である。こうすれば、多値化結果値のデータ量を低減することが可能となる。特に、第２実施例における場合のように、多値化結果値が１６５通りもの多くの値を取り得るような場合には、多値化結果値のデータ量を低減することで、より迅速に多値化結果値を供給することができる。以下では、このような第３実施例の画像印刷処理について説明する。尚、第３実施例においても、前述した第２実施例と同様に、カラープリンタ２００は大中小の３種類のドットを形成可能であるものとする。
【０２７６】
Ｅ−１．第３実施例の多値化結果値生成処理  ：
第３実施例の多値化結果値生成処理は、前述した第２実施例の多値化結果値生成処理に対して、参照する多値化用テーブルが異なるものの、処理の全体的な流れはほぼ同様である。このように、本実施例の画像印刷処理は、処理の内容が複雑かつ高度な内容になっても、多くの場合は多値化用テーブルの変更だけで対応することができ、実際の処理の流れは簡素なものとすることが可能である。以下では、図３７に示した第２実施例の多値化結果値生成処理のフローチャートを流用しながら、第３実施例の多値化結果値生成処理について説明する。
【０２７７】
第３実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定数の画素をまとめて画素群を生成し（ステップＳ５００相当）、画素群の分類番号を決定する（ステップＳ５０２相当）。次いで、画素群にまとめられた各画素の階調値に基づいて、画素群を分割するか否かを判断する（ステップＳ５０４相当）。ここでは、説明の便宜上、分割パターンは画素群を左右２つの領域に等分するパターンのみが用意されているものとする。もちろん、複数種類の分割パターンを用意しておき、階調値の分布に応じた適切なパターンを選択することも可能である。複数種類の分割パターンを用いる場合については後述する。画素群を分割しないと判断した場合は、前述した各実施例と同様にして画素群の代表階調値を決定した後（ステップＳ５０６相当）、多値化用テーブルを参照することにより、画素群の分類番号および代表階調値に対応する多値化結果値を取得する。
【０２７８】
図４５は、第３実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。前述した第２実施例の多値化結果値生成処理で参照した多値化用テーブル（図３８参照）と、この多値化用テーブルとを比較すれば明らかなように、第３実施例の多値化用テーブルに設定されている多値化結果値は、第２実施例の多値化結果値よりも小さな値となっている。これは、第２実施例では、多値化結果値が、画素群によらず同じように解釈可能な値に設定されているのに対し、第３実施例では、その多値化結果値が得られた画素群を特定して（より正確には、画素群の分類番号を特定して）初めて解釈できるような値に設定されていることによる。
【０２７９】
図４６は、第３実施例の多値化用テーブルにおいて、画素群の分類番号毎に設定されている代表階調値と多値化結果値との対応関係を例示した説明図である。図では、横軸に代表階調値を取り、縦軸の多値化結果値を取った折れ線グラフを用いて、代表階調値に対して設定された多値化結果値を表示している。また、図中では、異なる分類番号Ｎ１〜Ｎ５を有する５つの画素群についての多値化結果を示しているが、これら画素群の折れ線が重なって判別し難くなることを避けるために、多値化結果値の原点位置を、縦軸方向に少しずつずらした状態で表示している。
【０２８０】
図４６中に太い実線を用いて表した折れ線は、分類番号Ｎ１番の画素群についての代表階調値と多値化結果値との対応関係を示している。分類番号Ｎ１番の画素群については、代表階調値０〜４に対しては多値化結果値０が設定されている。代表階調値５〜２０に対しては、多値化結果値１が設定されている。次いで、代表階調値が２１〜４２の範囲に増加すると、多値化結果値は「２」に増加し、代表階調値が４３〜６９の範囲に増加すると多値化結果値は「３」に増加する。このように、代表階調値が増加するに従って、多値化結果値も段階的に増加していき、最終的には、多値化結果値は「１５」まで増加する。同様に、図中で太い破線で示した分類番号Ｎ２番の画素群や、太い一点鎖線で示した分類番号Ｎ３番の画素群については、代表階調値が０〜２５５に増加するに従って、多値化結果値が０〜１７へと段階的に増加するように設定されている。更に、細い実線で示した分類番号Ｎ４番の画素群および細い一点鎖線で示した分類番号Ｎ５番の画素群については、代表階調値が０〜２５５に増加するに従って、多値化結果値が０〜２０へと段階的に増加するように設定されている。この結果、例えば、分類番号Ｎ１の画素群については０〜１５のいずれかの多値化結果値に多値化（いわば１６値化）され、分類番号Ｎ２またはＮ３の画素群については０〜１７のいずれかの多値化結果値に多値化（いわば１８値化）され、分類番号Ｎ４またはＮ５の画素群については０〜２０のいずれかの多値化結果値に多値化（いわば２１値化）されることになる。
【０２８１】
このように、第３実施例の多値化結果値生成処理では、各画素群の多値化の段数（多値化の結果として取り得る状態数）が同じではなく、画素群の分類番号に応じて固有の段数で多値化されている。この結果、同じ代表階調値を多値化した場合でも、画素群の分類番号が異なり、そのため多値化の段数が異なっていれば、異なる結果値に多値化されることになる。
【０２８２】
また、多値化段数が同じであったとしても、同じ多値化結果値が得られるわけではない。例えば、図４６に示した分類番号Ｎ２の画素群と、分類番号Ｎ３の画素群とを比較すれば明らかなように、これら画素群については代表階調値がいずれも１８値化されているが、多値化結果値が切り換わる代表階調値は多くの場合、一致していない。分類番号Ｎ４の画素群と分類番号Ｎ５の画素群とについても同様に、これら画素群では代表階調値が何れも２１値化されているが、多値化結果値が切り換わる代表階調値は一致していないことが多い。このことから、たとえ画素群の多値化の段数が同じでも、分類番号が異なれば、異なる多値化結果値が得られることになる。
【０２８３】
このように、図４５に示した第３実施例の多値化用テーブルに設定されている多値化結果値は、代表階調値と多値化結果値との対応関係が画素群の分類番号毎に異なっている。換言すれば、第３実施例の多値化結果値は、その結果値が得られた画素群の分類番号を特定して初めて解釈できる値となっている。このように多値化結果値を画素群に依存した値としてやることで、多値化結果値の取り得る値の個数を少なくすることが可能である。図４６に示した例示では、多値化結果値の個数が最も多い分類番号Ｎ４の画素群および分類番号Ｎ５の画素群の場合でも、「０」〜「２０」までの２１通りしか存在しない。実際のところ、多値化結果値の取り得る値は、多く見積もっても３０通りを越えることはなく、３０通りであれば、５ビットで十分に表現することができる。第２実施例では、多値化結果値を表現するために８ビット必要であったことと比較すれば、多値化結果値のデータ量が５／８に低減されていることになる。尚、図４５に示した第３実施例の多値化用テーブルを設定する方法については後述する。
【０２８４】
第３実施例の多値化結果値生成処理において、分割しないと判断した画素群については、図４５に示した多値化用テーブルを参照することによって、多値化結果値を取得した後（図３７のステップＳ５０８相当）、得られた多値化結果値を記憶しておく（ステップＳ５１０相当）。
【０２８５】
一方、第３実施例の多値化結果値生成処理において、画素群を分割すると判断した場合は、画素群を分割して生成した各領域の代表階調値を決定した後（ステップＳ５１２相当）、画素群の分類番号および、それぞれの代表階調値から多値化用テーブルを参照して、各領域の多値化結果値を取得する（ステップＳ５１４相当）。すなわち、多値化結果値は、画素群を分割して生成した領域の数だけ生成されることになる。次いで、分割パターンを示すＥＳＣコードに続けて、領域毎に生成された多値化結果値を記憶する（ステップＳ５１６およびＳ５１８相当）。
【０２８６】
図４７は、５ビットのデータに、多値化結果値と分割パターンとが対応付けられている様子を示した説明図である。前述したように、第３実施例では、多値化結果値は画素群の分類番号に固有の値に設定されているので、それぞれの分類番号での多値化結果値は、多く見積もっても３０通りの値しか取り得ず、５ビットで表現することができる。そこで、多値化結果値として使用されない「３１」を表すデータを、ＥＳＣコードに割り付けておく。ここでは、画素群の分割パターンは１つのみであるとしているから、ＥＳＣコード１だけで、画素群が分割されていることと、分割パターンとを同時に表すことができる。
【０２８７】
以上のようにして画素群の多値化結果値を記憶したら、画像データの全画素について処理を終了したか否かを判断し（ステップＳ５２０相当）、未処理の画素が残っていれば、新たな画素群を生成した後、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したら、分割されていない画素群については多値化結果値のみをカラープリンタ２００に出力し、また、分割されている画素群については、分割パターンを示すＥＳＣコードおよび多値化結果値を出力して（ステップＳ５２２相当）、第３実施例の多値化結果値生成処理を終了する。
【０２８８】
図４８は、第３実施例の多値化結果値生成処理によって、画素群にまとめられた画像データが多値化結果値に変換される様子を示した説明図である。図４８（ａ）は、８つの画素が画素群にまとめられた様子を示している。画素群Ａは、全ての画素の階調値が「９７」となっている。画素群Ｂについては、左半分の領域にある画素の階調値は「９７」であるが、右半分の画素は階調値が「１３５」となっている。そして、その隣の画素群Ｃについては、全ての画素の階調値が「１３５」となっている。図４８（ｂ）は、これら画素群について代表階調値が決定された様子を表している。画素群Ａについては代表階調値９７が得られている。画素群Ｂについては左右２つの領域に分割されて、左の領域については代表階調値９７が、右の領域については代表階調値１３５が得られている。そして画素群Ｃについては代表階調値１３５が得られている。
【０２８９】
図４８（ｃ）は、これらの代表階調値を多値化結果値に変換した後、得られた多値化結果値を記憶している様子を示している。先頭の値「１５」は画素群Ａについての多値化結果値である。その次の値「３１」は、画素群Ａに続く画素群Ｂが分割されていることを表すＥＳＣコードである。ここでは、画素群の分割パターンは左右２つの領域に等分する１パターンのみであるとしているから、分割されていることを示すだけで同時に分割パターンを表していることになる。ＥＳＣコード「３１」に続く２つの値は、それぞれ左領域についての多値化結果値と、右領域についての多値化結果値とを表している。結局、画素群Ｂについては、ＥＳＣコードを含めて３つのデータを用いて多値化結果値が表されていることになる。尚、画素群Ａと画素群Ｂの左領域とは同じ代表階調値を有しているが、それぞれの画素群の分類番号が異なっているため、得られる多値化結果値は異なった値となっている。
【０２９０】
画素群Ｂについての多値化結果値を表す３つの値に続いて、画素群Ｃについての多値化結果値が記憶される。この値「１８」はＥＳＣコードではないので、画素群Ｃは分割されていないと考えられる。従って、この画素群の多値化結果値は値「１８」だけであると判断され、その次の値は画素群Ｄについての多値化結果値を示していることになる。第３実施例の多値化結果値生成処理では、このような多値化結果値を生成してカラープリンタに出力する。
【０２９１】
尚、以上では、画素群の分割パターンは１種類のみが用意されているものとして説明したが、より多くの分割パターンを用意しておくことも可能である。例えば、以上の説明では多値化結果値の中で使用されていない値「３１」をＥＳＣコードとして用いたが、図４７に示したように値「３０」も使用されていない値である。そこで、この値「３０」を第２の分割パターンを示すＥＳＣコードに割り当てることも可能である。例えば、ＥＳＣコード「３０」は、画素群を上下２つの領域に等分するパターンを表すものとして、画素群を上下２つの領域に等分した場合には、ＥＳＣコード「３０」に続けてそれぞれの領域の多値化結果値を記憶することとしても良い。
【０２９２】
また、更に多くの分割パターンを用意する場合は、次のようにすることもできる。例えば、以上の説明においては、図４７に示したように多値化結果値が５ビットデータであるものとしたが、１ビットだけ増やした６ビットデータとしてもよい。６ビットデータであれば、０〜６３までの値を表現することができるので、３０〜６３までの値を異なる分割パターンに割り付けることができる。
【０２９３】
あるいは、次のように複数のＥＳＣコードを組み合わせることにより、分割パターンを表すこととしても良い。例えば、本実施例の画素群は主走査方向（図上では横方向）に４画素、副走査方向（図上では縦方向）に２画素がまとめられた横長の画素群であることから、画素群を分割する場合、左右２つの領域に分割するケースが最も多いと考えられる。そこで、２つのＥＳＣコード「３０」、「３１」の中の一方（たとえば「３１」）を、最も頻繁に現れると考えられる分割パターンに割り当てる。そして、これ以外の分割パターンについては、もう一方のＥＳＣコード（例えば「３０」）と、新たな５ビットデータとを組み合わせて表現することとしても良い。すなわち、図４８（ｄ）に例示したように、画素群Ｂについて先頭のデータが「３０」であれば、画素群が左右２分割以外のパターンで分割されていることを表すものとして、具体的な分割パターンは、続くデータ（図示した例では「０」）によって表すものとしてもよい。もちろん、画素群Ｂの先頭のデータが「３１」であれば、その画素群は左右２つの領域の等分されていると判断して、続く２つの多値化結果値を、それぞれ左領域および右領域について得られた多値化結果値と解釈すればよい。このようにすれば、より多種類の分割パターンを使い分けながら、分割パターンの種類が増えることで全体としてデータ量が増加してしまうことを抑制することが可能となる。
【０２９４】
Ｅ−２．第３実施例のドット形成有無決定処理  ：
上述したように、第３実施例の多値化結果値生成処理では、多値化結果値のデータ量を低減するために、画素群の分類番号に固有の多値化結果値を生成してカラープリンタ２００に出力する。すなわち、多値化結果値の意味するところは、画素群の分類番号を特定して初めて解釈可能となっている。このため、第３実施例のカラープリンタ２００では、このような多値化結果値を受け取ると、次のようなドット形成有無決定処理を行うことにより、画素群内の各画素についてのドット形成の有無を決定する処理を行う。
【０２９５】
第３実施例のドット形成有無決定処理は、前述した第２実施例における処理に対して、参照する復号用テーブルが異なる以外はほぼ同様である。そこで、第２実施例のドット形成有無決定処理について示した図４１のフローチャートを流用して、第３実施例のドット形成有無決定処理について説明する。
【０２９６】
第３実施例のドット形成有無決定処理を開始すると、対象とする画素群を１つ選択して、画素群の分類番号を取得した後、多値化結果値として供給された先頭のデータを取得する（ステップＳ６００、Ｓ６０２、Ｓ６０４相当）。次いで、取得したデータがＥＳＣコードか否かを判断する（ステップＳ６０６相当）。読み込んだデータがＥＳＣコードでは無い場合は、画素群は分割されていないと判断して、読み込んだデータを多値化結果値と読み替えた後、復号用テーブルを参照して画素群内の各画素についてドット形成の有無を決定する（ステップＳ６０８、Ｓ６１０相当）。このとき参照する復号用テーブルは、第３実施例のドット形成有無決定処理で参照するために、特別に設定された専用のテーブルである。かかる復号用テーブルの設定方法については後述する。
【０２９７】
一方、読み込んだデータがＥＳＣコードである場合は、画素群は分割されていると判断される。そこで、ＥＳＣコードに続いて記憶されている所定個数の多値化結果値を取得する（ステップＳ６１２相当）。次いで、復号用テーブルを参照して、それぞれの多値化結果値に対するドットデータＤＤを読み出した後、これらドットデータを組み合わせることにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ６１４、Ｓ６１６相当）。
【０２９８】
以上のようにして、選択した画素群内の各画素についてドット形成の有無を決定することができる。この様な処理を全画素群について行い、全画素群についての処理を終了したと判断したら（ステップＳ６１８：ｙｅｓ相当）、第３実施例のドット形成有無決定処理を終了する。
【０２９９】
以上、第３実施例の画像印刷処理中で行われる多値化結果値生成処理、およびドット形成有無決定処理について説明した。前述したように、第３実施例では第２実施例と異なり、多値化結果値が、その結果値が得られた画素群の分類番号を特定して初めて解釈できるような値となっている。このため、多値化結果値のデータ量が減少し、延いては、画像の迅速な出力が可能という利点を得ることができる。このような利点が得られるにも関わらず、第３実施例の画像印刷処理は、第２実施例の画像印刷処理に対して、参照する多値化用テーブルおよび復号用テーブルが異なる以外は、ほとんど同様の簡単な処理となっている。このため、多値化結果値を迅速に生成し、供給することができるので、画像を迅速に出力することができる。加えて、画素群内の階調値分布に応じて画素群を分割することで、画素群内の各画素についてのドット形成有無を適切に決定することができ、延いては、高画質な画像を出力することができる。更に、第３実施例では第２実施例の場合よりも多値化結果値のデータ量を減少させることができるので、より一層迅速に画像を出力することが可能となる。
【０３００】
最後に、第３実施例の画像印刷処理で参照される多値化用テーブルおよび復号用テーブルの設定方法について説明しておく。
【０３０１】
Ｅ−３．第３実施例の多値化用テーブルおよび復号用テーブルの設定方法  ：
以下では、先ず初めに、第３実施例の多値化用テーブルの設定方法について説明し、続いて、第３実施例の復号用テーブルの設定方法について説明する。
【０３０２】
第３実施例の多値化用テーブルは、図３１ないし図３４を用いて前述した特許３２９２１０４号に開示の方法、すなわち、大きさの異なる複数種類のドットの形成有無を決定可能なように、ディザ法を発展させた手法を基にして設定されている。
【０３０３】
前述したように多値化結果値生成処理では、画素群内に含まれる各画素の画像データを代表階調値で代表させることにより、画素群をまとめて多値化している。そこで、第３実施例の多値化用テーブルを設定するに際しては、先ず、画素群内の全画素が代表階調値と同じ値の画像データを有するものとして、各画素について大中小の各種ドットについての形成有無を判断することを考える。各種ドットについての形成有無の判断は、図３２を用いて前述したハーフトーン処理によって行う。
【０３０４】
図４９は、画素群内の各画素について、大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。図中では、ハーフトーン処理を行うために着目している画素群を太い実線で囲って表している。画素群は８つの画素から構成されており、各画素の画像データは、いずれも代表階調値と同じ値（図示した例では階調値９７）を有している。大中小各種ドットの形成有無を判断するためには、画像データを各ドットについての密度データに変換する。密度データへの変換は、図３３を用いて前述したドット密度変換テーブルを参照することによって行う。ここでは、画素群内の全画素が同じ画像データを有するものとしているから、各種ドットについても密度データも全て画素について同じ値となる。図示した例では、大ドットの密度データの階調値が「２」、中ドットの密度データの階調値が「９５」、小ドットの密度データの階調値が「３０」であった場合を表している。
【０３０５】
次いで、図３２を用いて前述したように、大ドットの密度データ、中ドット用の中間データ、あるいは小ドット用の中間データと、ディザマトリックスに設定されている閾値とを比較することによって、各種ドットについての形成有無を画素毎に判断する。ここで、比較に用いるディザマトリックスの閾値は、ディザマトリックスの中から、着目している画素群に対応する箇所に設定されている閾値を使用する。例えば、図４９に示した例では、画素群が画像の左上隅にあることから、閾値についても、ディザマトリックス中の左上隅の画素群に設定されている閾値を使用する。
【０３０６】
そして、画素群に設定されている８つの閾値の中で、大ドットの密度データよりも小さな閾値が設定されている画素については、大ドットを形成すると判断する。ここでは、大ドットの密度データは階調値「２」としているから、大ドットが形成される画素は、閾値「１」が設定されている画素だけである。図４９では、大ドットが形成されると判断された画素には、細かい斜線を付して表示している。大ドットの密度データ「２」よりも大きく、大ドットの密度データと中ドットの密度データとを加算して得られた中ドット用の中間データ「９７」よりも小さな閾値が設定されている画素には、中ドットを形成するものと判断する。このような画素は、閾値「４２」が設定された画素、および閾値「５８」が設定された画素の２つの画素だけである。図４９では、中ドットが形成されると判断された画素には、少し粗い斜線を付して表示している。そして、最後に、中ドット用の中間データ「９７」よりも大きく、中ドット用の中間データに小ドット用の密度データを加算して得られた小ドット用の中間データ「１２７」よりも小さな閾値が設定されている画素には、小ドットを形成するものと判断する。このような画素は、閾値「１０９」が設定された画素だけである。図４９では、小ドットが形成されると判断された画素には、粗い斜線を付して表示している。このようにして、大ドット、中ドット、小ドットの形成有無を判断した結果、着目している画素群の代表階調値が「９７」である場合には、大ドット１個、中ドット２個、小ドット１個が形成されることになる。
【０３０７】
代表階調値が大きく異なれば、画素群内に形成される大ドット、中ドット、小ドットの個数も異なったものとなる。また、代表階調値を「０」から「２５５」まで変化させれば、それに伴って大ドット、中ドット、小ドットの個数は、幾段階かに変化するはずである。更に、画素群の分類番号が異なれば、ディザマトリックスの閾値も異なることから、ドット個数の変化の仕方も異なるはずである。図４５に示した第３実施例の多値化用テーブルは、代表階調値を「０」から「２５５」まで変化させたときの、各種ドットの個数が段階的に変化する挙動を、分類番号毎に調べることによって設定されている。
【０３０８】
図５０は、第３実施例の多値化結果値生成処理中で参照される多値化用テーブルを設定する処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。多値化用テーブルの設定処理を開始すると、先ず初めに、画素群の分類番号を１つ選択する（ステップＳ８００）。例えば、ここでは分類番号１番を選択したものとする。
【０３０９】
次いで、選択した分類番号の画素群に対応する閾値を、ディザマトリックスの中から読み出してやる（ステップＳ８０２）。例えば、ここでは分類番号１番を選択したものとしているから、図６に例示したディザマトリックスの中から、図１３（ｂ）中で１番と表示したブロック位置に設定されている８つの閾値を読み出す。
【０３１０】
そして、多値化結果値ＲＶおよび代表階調値ＢＤを「０」に設定し（ステップＳ８０４）、更に、大ドット、中ドット、小ドットの形成個数をいずれも０個に設定する（ステップＳ８０６）。
【０３１１】
続いて、図３３に示したドット密度変換テーブルを参照することにより、代表階調値を大ドット、中ドット、小ドットについての密度データに変換した後（ステップＳ８０８）、これら密度データと先に読み込んでおいた閾値とに基づいて、大中小の各種ドットについての形成個数を決定する（ステップＳ８１０）。すなわち、図３２あるいは図３４を用いて説明したように、大ドットの密度データよりも小さな閾値の個数を求めて、得られた個数を大ドットの形成個数とする。また、大ドットの密度データよりも大きく且つ中ドット用の中間データよりも小さな閾値の個数を求めて、これを中ドットの形成個数とする。更に、中ドット用の中間データよりも大きく且つ小ドット用の中間データよりも小さな閾値の個数を求めて、これを小ドットの形成個数とする。
【０３１２】
こうして求めた各種ドットの形成個数が、先に設定されていた形成個数に対して変更されたか否かを判断する（ステップＳ８１２）。そして、形成個数が変更されたと判断されれば（ステップＳ８１２：ｙｅｓ）、多値化結果値ＲＶを「１」だけ増加させて（ステップＳ８１４）、得られた多値化結果値ＲＶを代表階調値ＢＤに対応づけて記憶する（ステップＳ８１６）。一方、形成個数が変更されていないと判断された場合は（ステップＳ８１２：ｎｏ）、多値化結果値ＲＶを増加させることなく、そのままの値を代表階調値ＢＤに対応づけて記憶する（ステップＳ８１６）。
【０３１３】
以上のようにして、ある代表階調値に対する多値化結果値を記憶したら、代表階調値ＢＤが階調値２５５に達したか否かを判断する（ステップＳ８１８）。階調値２５５に達していなければ（ステップＳ８１８：ｎｏ）、代表階調値ＢＤを「１」だけ増加させて（ステップＳ８２０）、ステップＳ８０８に戻って再び代表階調値ＢＤを密度データに変換した後、続く一連の処理を行って、新たな代表階調値ＢＤに対応づけて多値化結果値ＲＶを記憶する（ステップＳ８１６）。代表階調値ＢＤが階調値２５５に達するまで、こうした操作を繰り返す。そして、代表階調値ＢＤが階調値２５５に達したら（ステップＳ８１６：ｙｅｓ）、選択した分類番号については、すべての多値化結果値を設定したことになる。
【０３１４】
そこで、すべての分類番号について、以上のような処理を行ったか否かを判断し（ステップＳ８２２）、未処理の分類番号が残っている場合は（ステップＳ８２２：ｎｏ）、ステップＳ８００に戻って再び上述した処理を行う。こうした処理を繰り返し、すべての分類番号について、すべての多値化結果値を設定したと判断されたら（ステップＳ８２２：ｙｅｓ）、図５０に示した多値化用テーブル設定処理を終了する。
【０３１５】
以上の説明から明らかなように、多値化結果値は、代表階調値を変換して得られた大中小各ドットの密度データと、ディザマトリックス中で画素群に対応する位置に記憶されている閾値とによって決定される。ここで、図３３に示したドット密度変換テーブルは、画素群の分類番号が異なっていても同じテーブルを参照するから、代表階調値に対する各ドットの密度データも、分類番号によらず同じ密度データが得られる。しかし、ディザマトリックスから読み出された閾値の組は、分類番号毎に異なったものとなる。何故なら、ディザマトリックスは、画像上でドットが一定のパターンで発生したり、あるいは近接した位置に固まって発生することで画質を悪化させることの無いように、閾値は出来るだけ分散させて且つ出来るだけランダムに設定されている。このため、画素群に含まれる複数個の閾値を組として見たときに、全く同じ組合せとなる可能性は極めて低いと考えられるからである。このような理由から、第３実施例の多値化結果値生成処理で参照される多値化用テーブルは、代表階調値と多値化結果値との対応関係が分類番号毎に異なったものとなり、また、多値化結果値が変化する回数（図４６に示した多値化の段数）も、分類番号に応じて異なったものとなるのである。
【０３１６】
次に、第３実施例の復号用テーブルの設定方法について簡単に説明する。図５１は、第３実施例の復号用テーブルを設定している様子を示した説明図である。第３実施例の復号用テーブルの設定方法は、図４４を用いて前述した第２実施例の復号用テーブルの設定方法とほぼ同様である。但し、第３実施例の多値化結果値は、画素群の分類番号を特定して初めて解釈可能な値であるから、多値化結果値を大中小各ドットの個数を表すデータに画素群毎に変換する点が大きく異なっている。以下、図５１を参照しながら説明する。
【０３１７】
図５１では、多値化結果値が「１０」であるとして、分類番号１番の画素群と、分類番号２番の画素とについて、それぞれのドットデータＤＤ（１，１０）、ＤＤ（２，１０）を決定する方法を示している。先ず、多値化結果値を１つ選択して、この多値化結果値を画素群毎に大中小各ドットの個数に変換する。すなわち、第３実施例の多値化結果値は、画素群の分類番号毎に意味する内容が異なっているので、分類番号毎に、多値化結果値を解釈しておくのである。図５１の上から２段目には、多値化結果値の内容を分類番号毎に解釈した結果が示されている。
【０３１８】
次いで、ディザマトリックスの中から、それぞれの分類番号に対応するブロックに設定されている閾値を読み出してやる。図５１の上から３段目には、こうして読み出された各ブロックの閾値が示されている。そして、これら閾値に従って、大ドット、中ドット、小ドットの順番で、これらドットを形成する画素位置を決定していく。図５１の上から４段目には、各画素群についてドットを形成する画素位置を決定した様子が示されている。図中で、細かい斜線が付された画素には大ドットが形成され、少し粗い斜線が付された画素には中ドットが形成され、粗い斜線が付された画素には小ドットが形成され、そして、斜線の付されていない画素にはドットが形成されないことを表している。このようにして画素群内の各画素についてドット形成の有無を決定したら、このドット配置を図４２に示したデータ形式のドットデータで表現する。そして得られたドットデータＤＤを、多値化結果値および分類番号の組合せに対応する位置に記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶していけば、第３実施例の復号用テーブルを設定することができる。
【０３１９】
Ｅ−４．第３実施例の変形例  ：
上述した第３実施例の多値化結果値生成処理では、階調値０から階調値２５５までの代表階調値毎に、対応する多値化結果値を記憶した多値化用テーブルを参照している。しかし多値化結果値は、代表階調値が増加するに従って段階的に増加するだけなので、多値化結果値が切り換わる代表階調値だけを記憶しておけば、代表階調値に対する多値化結果値を求めることができる。以下では、このような第３実施例の変形例の多値化結果値生成処理について説明する。
【０３２０】
図５２は、第３実施例の変形例の多値化結果値生成処理において参照される閾値テーブルを概念的に示した説明図である。図示されているように閾値テーブルには、分類番号毎に、多値化結果値に対応する閾値が設定されている。この閾値は、代表階調値を階調値０から階調値２５５まで増加させたときに、その多値化結果値となる最も大きな代表階調値を表している。一例として、分類番号１番の画素群について説明する。分類番号１番については、多値化結果値「０」に対しては閾値「２」が設定されている。これは、分類番号１番の画素群については、代表階調値が「０」ないし「２」の範囲にあれば、多値化結果値が「０」となることを表している。また、多値化結果値「１」に対しては閾値「１５」が設定されている。これは、分類番号１番の画素群については、代表階調値が「３」から「１５」の範囲にあれば多値化結果値が「１」となることを表している。同様に、多値化結果値「１４」に対しては閾値「２４３」が、そして多値化結果値「１５」に対しては閾値「２５５」が設定されている。これは、代表階調値が「２４４」から「２５５」の範囲にあれば多値化結果値が「１５」になることを、そして、分類番号１番の画素群については、多値化結果値の最大値が「１５」であることを表している。
【０３２１】
尚、図５２では、分類番号毎の閾値は、それぞれ多値化結果値に対応させて設定されているものとした。しかし、特に多値化結果値に対応付けることなく、単なる閾値の組を分類番号毎に記憶することとしてもよい。この場合は、代表階調値よりも小さな閾値の個数を数えることで、多値化結果値を求めることができる。再び、分類番号１番の画素群を例に用いて説明する。例えば、代表階調値が「２０」であったとする。分類番号１番に設定されている閾値の組の中で、階調値２０よりも小さな閾値は、「２」、「１５」、「１８」の３個である。このことから、代表階調値２０に対する多値化結果値は「３」であると求めることとしてもよい。
【０３２２】
以上に説明した第３実施例の変形例の多値化結果値生成処理では、画素群についての代表階調値と分類番号とを求めた後、図５２に例示した閾値テーブルを参照することによって、多値化結果値を生成する。閾値テーブルは、前述した第３実施例の多値化結果生成処理中で参照する多値化用テーブル（図４５参照）よりも少ないデータ量で記憶しておくことができる。このため、変形例の多値化結果値生成処理は、第３実施例の処理に比べて、メモリ使用量を節約することが可能である。これに対して、前述した第３実施例の多値化結果値生成処理は、分類番号と代表階調値とから多値化用テーブルを参照するだけで直ちに多値化結果値を求めることができる。すなわち、変形例における処理のように代表階調値と閾値とを比較する必要がないので、迅速に多値化することが可能である。
【０３２３】
また、以上に説明した第３実施例の画像印刷処理においても、前述した第１実施例の第２の変形例における処理と同様に、画素群を常に分割することとして画像処理を行うこととしても良い。こうすれば、例えば８つの画素を含む画素群についての多値化用テーブルおよび復号用テーブルをそのまま使用して、実質的には、より少ない画素を画素群とする処理を行うことができる。加えて、画素群を常に分割するものとして、実際の処理単位よりも大きな画素群を生成しておけば、前述した第１実施例の第２の変形例における場合と同様に、多値化用テーブルのデータ量を低減することも可能となる。例えば、半分の大きさの画素群を生成する代わりに、１つの画素群を２つに分割して処理する場合について説明する。この場合、多値化用テーブルに含まれる画素群の数は半分に減少する。一方、個々の多値化結果値については、画素群が大きくなるほどデータ長も大きくなる。上述した第３実施例に即して説明すれば、画素群に含まれる画素数が４つの場合は、個々の多値化結果値は４ビットで表現されるが、画素群に含まれる画素数が８つに増加すると、多値化結果値も５ビットのデータとなる。しかし、多値化結果値のデータ長の増加度合いよりも、画素群の数の減少度合いの方が大きくなっている。結局、小さな画素群を生成する代わりに、大きな画素群を常に２つに分割して処理することで、多値化用テーブルを記憶するために必要なメモリ容量を、５／８に減少させることが可能となる。
【０３２４】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、以上の実施例では、印刷用紙上にドットを形成して画像を印刷する場合について説明したが、本発明の適用範囲は画像を印刷する場合に限られるものではない。例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
【図面の簡単な説明】
【０３２５】
【図１】印刷システムを例に用いて本実施例の概要を説明した説明図である。
【図２】画像処理装置としてのコンピュータの構成を示す説明図である。
【図３】カラープリンタの概略構成を示す説明図である。
【図４】インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。
【図５】第１実施例の画像印刷処理の全体的な流れを示すフローチャートである。
【図６】ディザマトリックスの一部を概念的に例示した説明図である。
【図７】ディザマトリックスを参照しながら各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。
【図８】ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。
【図９】ドット個数を示すデータから画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。
【図１０】ブルーノイズマスク特性を有するディザマトリックスおよびグリーンノイズマスク特性を有するディザマトリックスについてマトリックスに設定されている閾値の空間周波数特性を概念的に例示した説明図である。
【図１１】第１実施例の多値化結果値生成処理の流れを示すフローチャートである。
【図１２】画素群にまとめられた各画素の階調値に基づいて画素群を分割するか否かを判断して代表階調値を決定する様子を概念的に示した説明図である。
【図１３】画素群毎の分類番号を決定するための考え方を示した説明図である。
【図１４】画素群の分類番号を決定する方法を示した説明図である。
【図１５】着目画素群の分類番号を決定する方法を具体的に示した説明図である。
【図１６】画素群の分類番号と代表階調値とから多値化結果値を取得するために参照される第１実施例の多値化用テーブルを概念的に示した説明図である。
【図１７】画素群の分類番号と代表階調値との組合せに応じて適切な多値化結果値を決定する様子を概念的に示した説明図である。
【図１８】多値化結果値を記憶するためのデータ形式の一例を示す説明図である。
【図１９】多値化結果値を記憶するデータ形式の他の一例を示す説明図である。
【図２０】多値化結果値をＥＳＣコードと共に記憶する様子を示す説明図である。
【図２１】第１実施例のドット形成有無決定処理の流れを示すフローチャートである。
【図２２】画素群の分類番号を決定する方法を示した説明図である。
【図２３】画素群の座標値（ｉ，ｊ）から画素群のディザマトリックス中での位置を求める方法を具体的に示した説明図である。
【図２４】第１実施例のドット形成有無決定処理で参照される復号用テーブルを概念的に示した説明図である。
【図２５】第１実施例の復号用テーブルに設定されているドットデータのデータ構造を示す説明図である。
【図２６】複数のドットデータＤＤを組み合わせることにより画素群内の各画素についてのドット形成の有無を決定する様子を示した説明図である。
【図２７】画素群の分割パターンを考慮してドットデータの各ビットと画素群内の各画素とを対応付けた様子を例示した説明図である。
【図２８】第１実施例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。
【図２９】第１実施例の変形例において用いられる分割パターンを例示した説明図である。
【図３０】第１実施例の変形例において分割パターンを示すＥＳＣコードを例示した説明図である。
【図３１】画素群内に形成される大ドット・中ドット・小ドットの個数をディザ法を適用して決定する処理の流れを示すフローチャートである。
【図３２】選択した画素についてハーフトーン処理を行うことにより大ドット・中ドット・小ドットの形成有無を判断する処理の流れを示すフローチャートである。
【図３３】画像データの階調値を大中小各ドットについての密度データに変換するためのドット密度変換テーブルを概念的に示した説明図である。
【図３４】選択した画素についてハーフトーン処理を行うことにより大ドット・中ドット・小ドットの形成有無を判断する様子を示した説明図である。
【図３５】画素群毎に大ドット・中ドット・小ドットの形成個数が得られた様子を概念的に示した説明図である。
【図３６】第２実施例の多値化結果値と画素群内に形成される各種ドットの個数の組合せとの対応関係を示した説明図である。
【図３７】第２実施例における多値化結果値生成処理の流れを示すフローチャートである。
【図３８】第２実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。
【図３９】第２実施例において多値化結果値とＥＳＣコードとが割り当てられている様子を示した説明図である。
【図４０】３つの画素群についての多値化結果値を生成している様子を示した説明図である。
【図４１】第２実施例のドット形成有無決定処理の流れを示すフローチャートである。
【図４２】第２実施例の復号用テーブルに設定されているドットデータのデータ構造を示した説明図である。
【図４３】複数のドットデータから画素群内の各画素についてのドット形成有無を決定する様子を示す説明図である。
【図４４】第２実施例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。
【図４５】第３実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。
【図４６】第３実施例の多値化用テーブルにおいて画素群の分類番号毎に設定されている代表階調値と多値化結果値との対応関係を例示した説明図である。
【図４７】５ビットのデータに多値化結果値と分割パターンとが対応付けられている様子を示した説明図である。
【図４８】第３実施例の多値化結果値生成処理によって画素群にまとめられた画像データが多値化結果値に変換される様子を示した説明図である。
【図４９】画素群内の各画素について大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。
【図５０】第３実施例の多値化結果値生成処理中で参照される多値化用テーブルを設定する処理の流れを示したフローチャートである。
【図５１】第３実施例の復号用テーブルを設定している様子を示す説明図である。
【図５２】第３実施例の変形例の多値化結果値生成処理において参照される閾値テーブルを概念的に示した説明図である。
【符号の説明】
【０３２６】
１０…コンピュータ、  ２０…カラープリンタ、  １００…コンピュータ、
１０８…周辺機器インターフェースＰＩＦ、
１０９…ディスクコントローラＤＤＣ、
１１０…ネットワークインターフェースカードＮＩＣ、
１１２…ビデオインターフェースＶＩＦ、
１１６…バス、  １１８…ハードディスク、  １２０…デジタルカメラ、
１２２…カラースキャナ、  １２４…フレキシブルディスク、
１２６…コンパクトディスク、  ２３０…キャリッジモータ、  ２３５…モータ、
２３６…プラテン、  ２４０…キャリッジ、  ２４１…印字ヘッド、
２４２…インクカートリッジ、  ２４３…インクカートリッジ、
２４４…インク吐出用ヘッド、  ２６０…制御回路、  ２００…カラープリンタ、
３００…通信回線、  ３１０…記憶装置
【図１】
2006014039.tif 000003
【図２】
2006014039.tif 000004
【図３】
2006014039.tif 000005
【図４】
2006014039.tif 000006
【図５】
2006014039.tif 000007
【図６】
2006014039.tif 000008
【図７】
2006014039.tif 000009
【図８】
2006014039.tif 000010
【図９】
2006014039.tif 000011
【図１０】
2006014039.tif 000012
【図１１】
2006014039.tif 000013
【図１２】
2006014039.tif 000014
【図１３】
2006014039.tif 000015
【図１４】
2006014039.tif 000016
【図１５】
2006014039.tif 000017
【図１６】
2006014039.tif 000018
【図１７】
2006014039.tif 000019
【図１８】
2006014039.tif 000020
【図１９】
2006014039.tif 000021
【図２０】
2006014039.tif 000022
【図２１】
2006014039.tif 000023
【図２２】
2006014039.tif 000024
【図２３】
2006014039.tif 000025
【図２４】
2006014039.tif 000026
【図２５】
2006014039.tif 000027
【図２６】
2006014039.tif 000028
【図２７】
2006014039.tif 000029
【図２８】
2006014039.tif 000030
【図２９】
2006014039.tif 000031
【図３０】
2006014039.tif 000032
【図３１】
2006014039.tif 000033
【図３２】
2006014039.tif 000034
【図３３】
2006014039.tif 000035
【図３４】
2006014039.tif 000036
【図３５】
2006014039.tif 000037
【図３６】
2006014039.tif 000038
【図３７】
2006014039.tif 000039
【図３８】
2006014039.tif 000040
【図３９】
2006014039.tif 000041
【図４０】
2006014039.tif 000042
【図４１】
2006014039.tif 000043
【図４２】
2006014039.tif 000044
【図４３】
2006014039.tif 000045
【図４４】
2006014039.tif 000046
【図４５】
2006014039.tif 000047
【図４６】
2006014039.tif 000048
【図４７】
2006014039.tif 000049
【図４８】
2006014039.tif 000050
【図４９】
2006014039.tif 000051
【図５０】
2006014039.tif 000052
【図５１】
2006014039.tif 000053
【図５２】
2006014039.tif 000054