(57)【要約】【課題】  高画質な画像を簡素な処理で迅速に出力可能な技術を提供する。【解決手段】  画素を複数個ずつ画素群毎にまとめて代表階調値を決定し、次いで代表階調値を多値化する。こうして得られた多値化結果値から、各画素についてのドット形成有無を決定して画像を出力する。多値化結果値は迅速に出力可能であり、画像を迅速に出力することができる。また、画像データの入力解像度と出力解像度との解像度比に基づいて、画素群を分割すれば、画素群を適切な大きさに分割して処理することができるので、出力画質を改善することができる。更に、画素群を分割した場合でも、処理の為のデータは共用することができるので、メモリを節約することも可能となる。【選択図】        図１
2006042119.tif 000002
【特許請求の範囲】
【請求項１】
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力システム。
【請求項２】
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に１つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力システム。
【請求項３】
画像データに所定の画像処理を施す第１の画像処理装置と、該画像処理によって得られた第１の画像データを、画素毎にドット形成の有無を表した第２の画像データに変換する第２の画像処理装置とを備える画像処理システムであって、
前記第１の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第１の画像データとして出力する第１の画像データ出力手段と
を備えており、
前記第２の画像処理装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第２の画像データとして出力する第２の画像データ出力手段と
を備えている画像処理システム。
【請求項４】
画像データに所定の画像処理を施す第１の画像処理装置と、該画像処理によって得られた第１の画像データを、画素毎にドット形成の有無を表した第２の画像データに変換する第２の画像処理装置とを備える画像処理システムであって、
前記第１の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第１の画像データとして出力する第１の画像データ出力手段と
を備えており、
前記第２の画像処理装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に１つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第２の画像データとして出力する第２の画像データ出力手段と
を備えている画像処理システム。
【請求項５】
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記制御データとして出力する制御データ出力手段と
を備える画像処理装置。
【請求項６】
請求項５記載の画像処理装置であって、
前記分割有無判断手段は、前記画像を出力する解像度が、前記画像データの解像度に対して所定倍以下である場合に、前記画素群を分割して処理すると判断する手段である画像処理装置。
【請求項７】
請求項５記載の画像処理装置であって、
前記代表階調値決定手段は、前記画素群を分割して処理する場合は、該画素群を等分する複数の領域の各々について前記代表階調値を決定する手段である画像処理装置。
【請求項８】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力装置。
【請求項９】
請求項８記載の画像出力装置であって、
前記多値化結果値受取手段は、前記画素群に形成すべきドットの個数を表す個数データを、前記多値化結果値として受け取る手段である画像出力装置。
【請求項１０】
請求項８記載の画像出力装置であって、
前記多値化結果値と、前記画素群に形成すべきドットの個数を表す個数データとが、該画素群毎に関連づけられた対応関係を参照することにより、該多値化結果値を該個数データに変換する多値化結果値変換手段を備え、
前記ドット形成有無決定手段は、前記個数データと前記順序値とに基づいて、前記画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項１１】
請求項８ないし請求項１０のいずれかに記載の画像出力装置であって、
前記順序値特定手段は、少なくとも１００種類以上の前記画素群ごとに、該画素群内の各画素について前記順序値を特定する手段である画像出力装置。
【請求項１２】
前記順序値を特定する画素群の種類数と、該画素群１つあたりに含まれる画素数との乗算値が、少なくとも１０００以上である請求項８ないし請求項１０のいずれかに記載の画像出力装置。
【請求項１３】
請求項８ないし請求項１０のいずれかに記載の画像出力装置であって、
前記ドット形成手段は、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能な手段であり、
前記ドット形成有無決定手段は、前記画素群について受け取った多値化結果値と、該画素群内の各画素についての前記順序値とに基づいて、前記複数種類のドットの形成有無を決定する手段である画像出力装置。
【請求項１４】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力装置。
【請求項１５】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力装置。
【請求項１６】
請求項１５記載の画像出力装置であって、
前記ドット形成有無決定手段は、前記復号用対応関係として、少なくとも１００種類以上の前記画素群毎に、前記多値化結果値と前記ドット形成の有無とが関連づけられた対応関係を参照する手段である画像出力装置。
【請求項１７】
前記復号用対応関係に記憶されている画素群の種類数と、該画素群１つあたりに含まれる画素数との乗算値が、少なくとも１０００以上である請求項１５記載の画像出力装置。
【請求項１８】
請求項１５記載の画像出力装置であって、
前記ドット形成手段は、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能な手段であり、
前記ドット形成有無決定手段は、前記多値化結果値と、前記複数種類のドットの形成有無とが前記画素群毎に関連づけられた前記復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
【請求項１９】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備える画像出力装置。
【請求項２０】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第１の工程と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第２の工程と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第３の工程と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第４の工程と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第５の工程と、
前記決定したドット形成の有無に基づいてドットを形成する第６の工程と
を備える画像出力方法。
【請求項２１】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する工程（Ａ）と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する工程（Ｂ）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する工程（Ｃ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程（Ｄ）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（Ｅ）と
を備える画像出力方法。
【請求項２２】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る工程（１）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する工程（２）と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する工程（３）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（４）と
を備える画像出力方法。
【請求項２３】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る工程（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程（ロ）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（ハ）と
を備える画像出力方法。
【請求項２４】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第１の機能と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第２の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第３の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第４の機能と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第５の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第６の機能と
を実現するプログラム。
【請求項２５】
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する機能（Ａ）と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する機能（Ｂ）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能（Ｃ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能（Ｄ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（Ｅ）と
を実現するプログラム。
【請求項２６】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能（１）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する機能（２）と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する機能（３）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（４）と
を実現するプログラム。
【請求項２７】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能（ロ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（ハ）と
を実現するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データに基づいて画像を出力する技術に関し、詳しくは、画像データに所定の画像処理を施してドットを適切な密度で発生させることにより、画像を出力する技術に関する。
【背景技術】
【０００２】
印刷媒体や液晶画面といった各種の出力媒体上にドットを形成することで画像を出力する画像出力装置は、各種画像機器の出力装置として広く使用されている。これら画像出力装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。ドットを画素に形成した場合、もちろん画素１つ１つについて見れば、ドットが形成されるか否かのいずれかの状態しか取り得ない。しかし、ある程度の広さを持った領域で見れば、形成するドットの密度に粗密を生じさせることは可能であり、ドットの形成密度を変えることによって多階調の画像を出力することが可能である。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見え、まばらに形成された領域は暗く見える。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を出力することが可能となる。このように、適切な形成密度が得られるようにドットの形成を制御するためのデータは、出力しようとする画像に所定の画像処理を施すことによって発生させる。
【０００３】
近年では、これら画像出力装置には、出力画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素に分割することが効果的である。画素を小さくしてやれば、画素に形成されるドットが目立たなくなるので画質を向上させることができる。また、大画像化の要請に対しては、画素数を増加させることによって対応する。もちろん、個々の画素を大きくすることによっても出力画像を大きくすることはできるが、これでは画質の低下を招いてしまうので、大型化の要請に対しては画素数を増加させることが効果的である。
【０００４】
もっとも、画像を構成する画素数が増加すると画像処理に時間がかかってしまい、画像を迅速に出力することが困難となる。そこで、画像処理を迅速に実行可能とする技術が提案されている（特許文献１）。
【０００５】
【特許文献１】特開２００２−１８５７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、画像処理を迅速に行ったとしても、画像データの転送に、あるいは処理済みの画像データの転送に時間がかかってしまったのでは、画像の出力を迅速化する効果にも自ずから限界がある。
【０００７】
また、近年では、デジタルカメラなどで撮影した画像のデータを、印刷装置などの画像出力装置に直接供給して直ちに画像を出力したいという要請も存在する。このような場合は、いわゆるパーソナルコンピュータ等のような高い処理能力を備えた画像処理装置を用いて画像処理を行うことはできない。従って、デジタルカメラなどの画像撮影装置、あるいは画像出力装置のいずれか、若しくは両者で分担して実行可能なように簡素な画像処理としておく必要がある。更に、画像の出力に際して解像度が変換された場合にも、これに柔軟に対応可能な画像処理としておくことが要請されている。
【０００８】
この発明は従来技術における上述した課題を解決するためになされたものであり、十分な出力画質を維持したまま、画像処理およびデータ転送を高速に実行可能であるとともに、解像度変換にも柔軟に対応可能でありながら簡素な画像処理技術の提供を目的とする。
【課題を解決するための手段】
【０００９】
上述した課題の少なくとも一部を解決するために、本発明の第１の画像出力システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００１０】
また、上記の画像出力システムに対応する本発明の第１の画像出力方法は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第１の工程と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第２の工程と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第３の工程と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第４の工程と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第５の工程と、
前記決定したドット形成の有無に基づいてドットを形成する第６の工程と
を備えることを要旨とする。
【００１１】
また、上記の画像出力システムに対応する本発明の第１の画像出力装置は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００１２】
かかる本発明の第１の画像出力システム、第１の画像出力方法、および第１の画像出力装置においては、先ず初めに、画素群を分割して処理するか否かを、画像データの解像度と画像を出力する解像度との解像度比に基づいて判断する。尚、解像度比に基づいて判断するとは、画像データの解像度および画像を出力する解像度から算出した解像度比に基づいて判断するものに限られず、解像度比を反映した何らかの指標に基づいて判断するものであっても構わない。そして、画素群を分割することなく処理する場合は、画素群毎に多値化結果値を決定し、画素群を分割して処理する場合は、画素群を分割する各領域について多値化結果値を決定する。多値化結果値は、多値化用対応関係を参照することにより決定する。多値化用対応関係には、代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、画素群毎に関連づけられているので、多値化用対応関係を参照することで、多値化結果値に迅速に決定することができる。
【００１３】
尚、多値化用対応関係としては、代表階調値と画素群とが決まれば、それに応じた多値化結果値が１つ決まるようなものであれば種々の形態を取ることが可能であり、例えば、対応表や関数式などの形態を取ることができる。あるいは、後述するように、多値化結果値を決定するために代表階調値と比較される閾値を記憶した形態を取ることもできる。また、多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に関連づけられていることから、多値化結果値は、その結果値が得られた画素群と組み合わせて初めて解釈可能な結果値としておくこともできるし、画素群によらず多値化結果値だけで解釈可能な結果値としておくこともできる。
【００１４】
次いで、画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を、画素群毎に特定する。画素群毎に順序値を特定する手法としては、種々の方法を適用することができるが、例えば、各画素の順序値を画素群毎に予め記憶しておき、記憶されている順序値を読み出すこととしても良い。
【００１５】
こうして多値化結果値および順序値が得られたら、次のようにして、画素群内の各画素についてのドット形成の有無を決定する。先ず、画素群が分割されることなく処理されている場合は、該画素群について得られた多値化結果値と順序値とに基づいて、各画素のドット形成有無を決定する。詳細な原理は後述するが、画素群の多値化結果値および順序値から、画素群内の各画素についてのドット形成有無を決定可能な理由は、次のようなものである。
【００１６】
多値化結果値には、後述するように、その意味するところが画素群に依存するものとしないものとが存在するが、何れの場合でも、多値化結果値は画素群の代表階調値に基づいて決定されている。一方、詳細には後述するが、画素群内に形成すべきドットの個数も画素群の代表階調値に応じて決まるから、画素群に形成すべきドット個数と多値化結果値との間には、代表階調値を介して間接的な対応関係が成り立っている。このことから、多値化結果値と画素群に形成すべきドットの個数とを予め対応付けておくことが可能であり、従って、多値化結果値から画素群に形成すべきドットの個数を決定することが可能である。また、画素群内にある複数の画素の中でドットが形成される順番（順序値）が与えられていれば、画素群に形成すべきドットの個数から、それらドットを画素群内の何れの画素に形成すべきかを決定することが可能である。この様な理由から、画素群の多値化結果値と画素群内の各画素についての順序値とが分かれば、その画素群内の各画素についてのドット形成有無を決定可能なのである。
【００１７】
一方、画素群が分割して処理されている場合は、該画素群内の各領域について得られた多値化結果値と順序値とに基づいて、領域内の各画素についてのドット形成有無を決定する。すなわち、多値化結果値は画素群を分割する各領域について得られていることから、画素群内の各画素について特定された順序値と、各領域について得られた多値化結果値とを組み合わせて、領域毎の各画素のドット形成有無を決定するのである。こうしたことが可能な理由は、次のように考えれば了解できる。
【００１８】
上述したように、画素群の多値化結果値と順序値とが分かれば、画素群内の各画素についてのドット形成有無を決定可能である。そこで、領域毎の多値化結果値が得られた場合でも、一旦、画素群内の全画素についてのドット形成有無を決定する。その後、対象とする領域内の各画素についての決定結果を抜き出してやれば、その領域の多値化結果値と画素群の順序値とから、領域内の各画素についてのドット形成有無が得られるはずである。実際には、各領域の多値化結果値および順序値から、領域毎にドット形成有無を決定する手順はこのような手順に限られるわけではない。しかし、上述した理由から、領域毎に得られた多値化結果値から、領域内の各画素についてのドット形成有無を決定することができるのである。
【００１９】
こうして、各画素についてドットの形成有無を決定したら、得られた決定結果に基づいてドットを形成することにより画像を出力する。例えば、印刷媒体や液晶画面などの媒体上にドットを形成すれば、これら媒体上に画像が出力されることになる。
【００２０】
詳細には後述するが、画像の全画素についてドット形成の有無を表すデータに比べれば、多値化結果値はたいへんに少ないデータ量で表現することができる。このため、データを速やかに取り扱うことが可能となり、延いては画像を迅速に出力することが可能となる。更に、代表階調値を多値化するに際しては、多値化用対応関係を参照しながら多値化することで、迅速に多値化することも可能となる。
【００２１】
加えて、代表階調値の多値化に際して参照される多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に対応付けられている。換言すれば、画素群が異なっていれば、異なる代表階調値であっても同じ多値化結果値に多値化することが可能である。このため、単に代表階調値と多値化結果値とを対応づけた場合に比べて、多値化結果値の取り得る個数を減少させることも可能となる。取り得る個数が少なくなれば、多値化結果値を表現するために要するデータ量を少なくすることができるので、その分だけデータの授受を迅速に行うことができ、延いては、画像を迅速に出力することが可能となる。
【００２２】
また、画素群内で各画素にドットが形成される順番を表す順序値を、画素群毎に特定しておけば、画素群毎に得られた多値化結果値と画素群毎の順序値とに基づいて、各画素についてのドット形成の有無を適切に決定することができる。このため、高画質な画像を迅速に出力することが可能となる。
【００２３】
加えて、画素群としてまとめられる画素数の適切な値は、画像データの解像度と画像を出力する解像度との解像度比に依存することが多い。そこで、画素群を分割して処理するか、分割することなく処理するかを、解像度比に応じて切り換えてやれば、適切な画素数をひとまとまりとして処理することが可能となり、画質を向上させることができる。更に、通常であれば、画素群の大きさを変更した場合には、参照する多値化用対応関係や順序値なども変更しなければならない。しかし、画素群を分割して処理するのであれば、画素群の大きさ自体は変更されていないので、分割する場合と分割しない場合とで多値化用対応関係や順序値などを共用しつつ、同様な処理内容とすることができる。このように、処理内容あるいは参照するデータなどを共用可能なことから、画像の出力に際して解像度が変換された場合にも、これに柔軟に対応することが可能となる。
【００２４】
更に、多値化結果値を生成するための処理は、予め設定された対応関係を参照するという簡素な処理内容とすることができる。このため、コンピュータなどのようには高度な処理能力を有さない機器においても、十分に実用的な速度で処理することが可能である。従って、例えば画像データを、コンピュータなどを介さずに、画像出力装置に直接供給し、画像データにこれらの画像処理を画像出力装置の内部で施すことで、適切に画像を出力することも可能となる。
【００２５】
尚、多値化結果値を生成したり、あるいは各画素についてのドット形成有無を決定するに際しては、画素群を分類番号によって識別することとしてもよい。画素群を分類番号を用いて識別すれば、いたずらに画素群の種類を増加させることなく、各画素群を適切に識別することができる。尚、画素群を識別するための分類番号は、画像中での画素群の位置に応じて付与することとしてもよい。こうすれば、画像中での位置に応じて適切に分類番号を付与することで、適切にドットを発生させて高画質な画像を出力することが可能となる。
【００２６】
また、上述した第１の画像出力システム、第１の画像出力方法、あるいは第１の画像出力装置において、多値化結果値を受け取って画像を出力している点に着目すれば、本発明は、多値化結果値を受け取って画像を出力する画像出力装置として把握することも可能である。すなわち、上述した第１の画像出力システム、第１の画像出力方法、あるいは第１の画像出力装置に対応する本発明の他の態様の画像出力装置は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００２７】
また、上記の画像出力装置に対応する本発明の他の態様の画像出力方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る工程（１）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する工程（２）と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する工程（３）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（４）と
を備えることを要旨とする。
【００２８】
かかる本発明の他の態様の画像出力装置および対応する画像出力方法においては、画像データとして多値化結果値を受け取ると、多値化結果値と順序値とに基づいてドットを形成する。ここで、多値化結果値が画素群毎に１つずつ得られている場合は、画素群が分割されることなく処理されているものと考えられ、一方、多値化結果値が画素群毎に複数個ずつ得られている場合は、画素群が分割されて処理されているものと考えられる。そこで、画素群毎に多値化結果値が得られた場合は、該多値化結果値と順序値とに基づいて、画素群内の各画素についてドット形成有無を決定する。一方、画素群毎に複数の多値化結果値が得られた場合は、これら多値化結果値を画素群を分割する各領域について得られた多値化結果値と解釈して、領域毎に各画素のドット形成有無を決定する。こうして画素群内の各画素についてのドット形成有無を決定したら、得られた結果に基づいてドットを形成することにより画像を出力する。
【００２９】
前述したように多値化結果値は、画素毎にドット形成の有無を表したデータよりも遙かに小さなデータである。このため、画像データとして多値化結果値を受け取れば、画像データを迅速に受け取ることができ、延いては画像を迅速に出力することができる。
【００３０】
加えて、多値化結果値を生成する際に画素群が分割されて処理されたか否かに関わらず、画像データとして受け取った多値化結果値から、同様の処理によって各画素についてのドット形成有無を決定することができる。このため、画像データを受け取って画像を出力する処理を簡素な処理とすることができる。更に、分割されて処理されたか否かに関わらず、使用する順序値は共用することができるので、記憶容量を節約することも可能となる。
【００３１】
こうした第１の画像出力システムに対応する他の態様の画像出力装置においては、画素群に形成すべきドットの個数を表す個数データを、多値化結果値として受け取ることとしても良い。尚、個数データとしては、何らかの方法でドットの個数に変換可能であれば、必ずしも個数そのものである必要はなく、どのような形態のデータとすることもできる。
【００３２】
多値化結果値として個数データを受け取ることとすれば、受け取った個数データと順序値とに基づいて、画素群内の各画素についてのドット形成の有無を速やかに決定することが可能となるので好ましい。
【００３３】
あるいは、多値化結果値と、画素群に形成すべきドットの個数を表す個数データとが、画素群毎に関連づけられた対応関係を、画像出力装置に予め記憶しておき、多値化結果値を受け取ると、かかる対応関係を参照して個数データに変換することとしてもよい。尚、このような対応関係としては、多値化結果値および画素群が決まれば、それに対する個数データが１つ決まるようなものであれば、どのような形態とすることもできる。例えば、対応表や関数式などの形態とすることができる。
【００３４】
このように、多値化結果値と画素群とを組み合わせて初めて個数データが決まるようにしておけば、１つの多値化結果値でも、画素群との組合せによって異なる個数データを表すことができるので、多値化結果値の取り得る種類を低減することが可能である。多値化結果値の取り得る種類が少なくなれば、より少ないデータ量で表現することが可能となる。このため、多値化結果値を迅速に受け取ることができ、延いては、迅速に画像を出力することが可能となる。
【００３５】
また、こうした第１の画像出力システムに対応する他の態様の画像出力装置においては、少なくとも１００種類以上の画素群毎に、該画素群内の各画素についての順序値を記憶しておくこととしても良い。
【００３６】
画素群毎に得られた多値化結果値に基づいて、画素群内の各画素についてのドット形成有無を決定すると、複数の画素群に亘って一定のパターンでドットが発生してしまうことがある。もちろん、本願においてドット形成の有無を決定するに際しては、多値化結果値だけでなく、画素群毎に特定された順序値も考慮して決定しているため、単純に多値化結果値に基づいて決定した場合と比べれば、一定のパターンでドットが発生し難くなっていると言うことができる。しかし、画素群の種類があまりに少ないのでは、一定のパターンが発生することを十分に抑制することは困難である。ドットが一定のパターンで発生することを回避するためには、できるだけ多くの種類の画素群について順序値を特定可能なことが望ましいが、経験上、１００種類以上の画素群について順序値を特定することができれば、一定のパターンでドットが発生することを、実用上の問題が発生しない程度に抑制することが可能となる。
【００３７】
あるいは、こうした他の態様の画像出力装置においては、順序値を特定可能な画素群の種類数と、画素群にまとめられる画素数との乗算値が、少なくとも１０００以上となるように設定することとしても良い。
【００３８】
画素群にまとめられた画素数が少なければ、画素群内でドットが分布する態様も僅かな種類しか取り得ないので、複数の画素群に亘ってドットが一定のパターンで発生し易くなる。逆に言えば、画素群にまとめられる画素数が多ければ、画素群内でのドットの分布は多くの態様を取ることができるので、それだけドットが一定のパターンで発生し難くなっている。このことから、順序値が特定される画素群の種類が少なくても、画素群にまとめられる画素数が多くなれば、複数の画素群に亘ってドットが一定のパターンで発生することが抑制されることになる。経験によれば、画素群の種類数と、画素群にまとめられる画素数との乗算値が１０００以上となるように設定しておけば、ドットが一定のパターンで発生することを、実用上の問題がない程度に抑制することが可能となる。
【００３９】
また、上述した第１の画像出力システムに対応する他の態様の画像出力装置においては、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能として、画素群について受け取った多値化結果値と、該画素群内の各画素についての前記順序値とに基づいて、各種ドットについての形成有無を決定することとしてもよい。
【００４０】
こうすれば、多値化結果値から決定した各種ドットの形成有無に基づいてドットを形成することができるので、高画質な画像を迅速に出力することが可能となる。また、このような複数種類のドットを形成可能な画像出力装置において、多値化結果値を受け取ることは、次のような理由から、画像を迅速に出力する上で効果的である。まず、複数種類のドットを形成可能な場合、各画素についてのドットの形成有無をドットの種類毎に表したデータは、どうしてもデータ量が大きくなってしまうので、データの授受に時間がかかってしまう。更に、ドットの種類が多くなるほど、ドット形成の有無を判断するために要する時間が長くなってしまう傾向にあり、画像を迅速に出力することが困難である。これに対して、多値化結果値を受け取ることとすれば、ドットの種類が多くなった場合でも迅速にデータを受け取ることができ、このため、画像を迅速に出力することが可能となる。
【００４１】
また、従来技術の有する前述した課題の少なくとも一部を解決するために、本発明の第２の画像出力システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に１つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００４２】
また、上記の画像出力システムに対応する本発明の第２の画像出力方法は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する工程（Ａ）と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する工程（Ｂ）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する工程（Ｃ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程（Ｄ）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（Ｅ）と
を備えることを要旨とする。
【００４３】
また、上記の画像出力システムに対応する本発明の第２の画像出力装置は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００４４】
かかる本発明の第２の画像出力システム、第２の画像出力方法、および第２の画像出力装置においても、前述した第１の画像出力システム、第１の画像出力方法、および第１の画像出力装置と同様に、先ず初めに、画素群を分割して処理するか否かを判断する。そして、多値化用対応関係を参照することにより、代表階調値から多値化結果値を迅速に決定する。尚、多値化結果値は、画素群を分割して処理した場合には、画素群あたり複数個ずつ、画素群を分割することなく処理した場合には画素群あたり１つずつ得られることになる。
【００４５】
次いで、第２の画像出力システム、第２の画像出力方法、および第２の画像出力装置においては、復号用対応関係を参照することにより、多値化結果値から各画素についてのドット形成の有無を決定する。復号用対応関係には、多値化結果値と、画素群内の各画素についてのドット形成の有無とが、画素群毎に関連づけられているので、復号用対応関係を参照することで、多値化結果値から各画素についてのドット形成有無を迅速に決定することができる。一方、画素群が分割して処理されている場合は、画素群を分割する各領域について多値化結果値が得られている。そこで、各領域の多値化結果値から復号用対応関係を参照することで、領域内の各画素についてドット形成の有無を迅速に決定することができる。尚、復号用対応関係としては、多値化結果値と画素群とが決まれば、それに応じて各画素のドット形成有無を決定可能であれば、種々の形態を取ることが可能である。
【００４６】
こうして、各画素についてドットの形成有無を決定したら、得られた決定結果に基づいてドットを形成することにより画像を出力する。例えば、印刷媒体や液晶画面などの媒体上にドットを形成すれば、これら媒体上に画像が出力されることになる。
【００４７】
このような第２の画像出力システム、第２の画像出力方法、および第２の画像出力装置においても、画素毎にドット形成の有無を表すデータに代えて、多値化結果値を取り扱っているために、画像を迅速に出力することが可能となる。
【００４８】
また、各画素についてのドット形成有無を決定するに際しては、復号用対応関係を参照することで、迅速に決定することが可能である。もちろん、画素群内の各領域について多値化結果値が得られた場合には、それぞれの多値化結果値から復号用対応関係を参照することで、領域毎に各画素のドット形成有無を決定することが可能である。このため、多値化結果値を生成し、多値化結果値から各画素のドット形成有無を決定する処理を、適切な画素数をひとまとまりとして処理することが可能となり、画質を向上させることができる。更に、このように画素群を分割して処理するのであれば、画素群の大きさ自体は変更されていないので、分割有無に関わらず多値化用対応関係や復号用対応関係を共用しつつ、同様な処理内容とすることができる。このため、画像の出力に際して解像度が変換された場合にも、これに柔軟に対応することが可能となる。
【００４９】
更に、多値化結果値を生成するための処理や、各画素についてのドット形成有無を決定する処理は、予め設定された対応関係を参照するという簡素な処理内容とすることができる。このため、コンピュータなどのようには高度な処理能力を有さない機器においても、十分に実用的な速度で処理することが可能である。
【００５０】
尚、第２の画像出力システム、第２の画像出力方法、および第２の画像出力装置においても、画素群を分類番号によって識別しながら、多値化結果値の生成やドット形成有無を決定する処理を実施することとしてもよい。画素群を分類番号を用いて識別することとすれば、例えば同様な取り扱いが可能で特に区別する必要のない画素群には、同じ分類番号を付与するといったことができる。従って、いたずらに画素群の種類を増加させることなく、各画素群を適切に識別することができ、高画質な画像を出力することが可能となる。
【００５１】
また、多値化結果値を受け取って画像を出力する点に着目すれば、上述した第２の画像出力システム、第２の画像出力方法、あるいは第２の画像出力装置も、多値化結果値を受け取って画像を出力する画像出力装置として把握することも可能である。すなわち、上述した第２の画像出力システム、第２の画像出力方法、あるいは第２の画像出力装置に対応する本発明の他の態様の画像出力装置は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
【００５２】
また、上記の第２の画像出力装置に対応する本発明の他の態様の画像出力方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る工程（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程（ロ）と、
前記決定したドット形成の有無に基づいてドットを形成する工程（ハ）と
を備えることを要旨とする。
【００５３】
かかる本発明の他の態様の画像出力装置および対応する画像出力方法においては、画像データとして多値化結果値を受け取ると、復号用対応関係を参照することにより、各画素についてのドット形成有無を決定して画像を出力する。前述したように多値化結果値は、画素毎にドット形成の有無を表したデータよりも遙かに小さなデータである。このため、画像データとして多値化結果値を受け取れば、画像データを迅速に受け取ることができ、延いては画像を迅速に出力することができる。
【００５４】
加えて、多値化結果値を生成する際に画素群が分割されて処理されたか否かに関わらず、画像データとして受け取った多値化結果値から、同様の処理によって各画素についてのドット形成有無を決定することができる。このため、画像データを受け取って画像を出力する処理を簡素な処理とすることができる。更に、分割されて処理されたか否かに関わらず、復号用対応関係は同じものを使用することができ、記憶容量を節約することも可能となる。
【００５５】
こうした第２の画像出力システムに対応する他の態様の画像出力装置においては、少なくとも１００種類以上の画素群毎に、多値化結果値と、画素群内の各画素についてのドット形成有無とが関連づけられた復号用対応関係を参照して、ドット形成有無を決定することとしてもよい。
【００５６】
前述したように、画素群毎に多値化結果値からドット形成の有無を決定した場合、複数の画素群に亘って一定のパターンでドットが繰り返し形成されてしまうことがある。こうしたことを抑制するためには、復号用対応関係に、ある程度の種類の画素群について、ドット形成有無が関連づけられていることが望ましい。経験上、１００種類以上の画素群について関連づけておけば、一定のパターンが現れることを、実用上の問題が発生しない程度に抑制することが可能となる。
【００５７】
また、上述した他の態様の画像出力装置においては、復号用対応関係に設定されている画素群の種類数と、画素群にまとめられる画素数との乗算値が、少なくとも１０００以上となるように設定することとしても良い。
【００５８】
前述したように、画素群の種類が少ない場合でも、画素群にまとめられる画素数が多ければ、複数の画素群に亘ってドットが一定のパターンで発生することを抑制することができる。経験によれば、復号用対応関係に設定されている画素群の種類数と、画素群にまとめられる画素数との乗算値が１０００以上となるように設定しておけば、ドットが一定のパターンで発生することを、実用上の問題がない程度に抑制することが可能となる。
【００５９】
更には、第２の画像出力システムに対応する他の態様の画像出力装置においても、前述した第１の画像出力システムに対応する他の態様の画像出力装置と同様に、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能としてもよい。すなわち、多値化結果値と、複数種類のドットについての形成有無とを、画素群毎に関連づけて復号用対応関係に記憶しておく。そして多値化結果値を受け取ると、この復号用対応関係を参照することにより、画素群内の各画素についてドット形成の有無を決定して、画像を出力することとしてもよい。
【００６０】
こうすれば、多値化結果値から決定した各種ドットの形成有無に基づいてドットを形成することができるので、高画質な画像を迅速に出力することが可能となる。
【００６１】
また、上述した第１あるいは第２の画像出力システムにおいて、画像を出力するために、各画素についてのドット形成有無を決定している点に着目すれば、本願発明は、ドットの形成を制御するための制御データを生成する画像処理システムとして把握することも可能である。すなわち、上述した第１の画像出力システムに対応する本発明の第１の画像処理システムは、
画像データに所定の画像処理を施す第１の画像処理装置と、該画像処理によって得られた第１の画像データを、画素毎にドット形成の有無を表した第２の画像データに変換する第２の画像処理装置とを備える画像処理システムであって、
前記第１の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第１の画像データとして出力する第１の画像データ出力手段と
を備えており、
前記第２の画像処理装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第２の画像データとして出力する第２の画像データ出力手段と
を備えることを要旨とする。
【００６２】
また、上述した第２の画像出力システムに対応する本発明の第２の画像処理システムは、
画像データに所定の画像処理を施す第１の画像処理装置と、該画像処理によって得られた第１の画像データを、画素毎にドット形成の有無を表した第２の画像データに変換する第２の画像処理装置とを備える画像処理システムであって、
前記第１の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第１の画像データとして出力する第１の画像データ出力手段と
を備えており、
前記第２の画像処理装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に１つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第２の画像データとして出力する第２の画像データ出力手段と
を備えることを要旨とする。
【００６３】
これら本発明の画像処理システムにおいては、代表階調値から多値化結果値を生成した後、各画素についてのドット形成有無を決定することで、制御データを迅速に出力することが可能となる。また、画素群を分割して処理するか否かに関わらず、多値化用対応関係や、順序値あるいは復号用対応関係は同じものを使用することができるので、解像度の変更に対しても、柔軟に対応可能であるとともに、記憶容量も節約することが可能となる。
【００６４】
更には、多値化結果値から各画素のドット形成の有無は、画像出力装置側で決定することとして、このような画像出力装置に対する制御データとして多値化結果値を供給することによっても、迅速に画像を出力することができる。こうした点に着目すれば、本発明は次のような画像処理装置として把握することもできる。すなわち、本発明の画像処理装置は、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記制御データとして出力する制御データ出力手段と
を備えることを要旨とする。
【００６５】
かかる本発明の画像処理装置においては、初めに画素群を分割して処理するか否かを判断して、画素群を分割することなく処理する場合は、画素群毎に代表階調値を決定する。一方、画素群を分割して処理する場合は、画素群を分割して生成した各領域について代表階調値を決定する。次いで、こうして求めた代表階調値を多値化して、得られた多値化結果値を制御データとして出力する。
【００６６】
多値化結果値はデータ量が小さいことから、多値化結果値を制御データとして出力することとすれば、迅速に出力することができる。また、多値化用対応関係を参照することによって代表階調値を多値化してやれば、多値化結果値を迅速に求めることができるので、その分だけ迅速に制御データを出力すること可能となる。更に、画素群を分割して処理するか否かに関わらず、多値化用対応関係は同じものを使用することができるので、解像度の変更に対しても、柔軟に対応可能であるとともに、記憶容量も節約することが可能となる。
【００６７】
こうした画像処理装置においては、画像を出力する解像度が、画像データの解像度に対して所定倍以下である場合に、画素群を分割して処理することとしてもよい。
【００６８】
詳細には後述するが、画像データの解像度よりも高い解像度で画像を出力すれば、画質を改善することができる。このとき、解像度を大幅に高めた場合は、多くの画素を画素群としてまとめてもよいが、解像度の増加度合いが小さい場合は画素群としてまとめる画素数は、あまり多くない方が望ましい。従って、画像を出力する際の解像度が、画像データの解像度に対して所定倍以下である場合には、画素群を分割して処理することで、より適切な画素数をまとめて処理することが可能となるので好ましい。
【００６９】
また、画素群を分割して処理する場合には、画素群を等しい大きさの領域に分割して処理することとしても良い。
【００７０】
こうして各領域に含まれる画素数を同じにしておけば、代表階調値を決定する処理を、いずれの領域についても共通化することができ、延いては処理の簡素化を図ることが可能となるので好ましい。加えて、各領域の大きさを等しくしておけば、多値化結果値から各画素についてのドット形成有無を決定する処理も、各領域で共通化することが可能となるので好ましい。
【００７１】
更に本発明は、上述した各種の画像出力方法あるいは画像処理方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した第１の画像出力方法に対応する本発明のプログラムは、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第１の機能と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第２の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第３の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第４の機能と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第５の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第６の機能と
を実現することを要旨とする。
【００７２】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第１の機能と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第２の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第３の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第４の機能と、
前記多値化結果値が前記画素群毎に１つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第５の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第６の機能と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００７３】
また、上述した第２の画像出力方法に対応する本発明のプログラムは、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する機能（Ａ）と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する機能（Ｂ）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能（Ｃ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能（Ｄ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（Ｅ）と
を実現することを要旨とする。
【００７４】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する機能（Ａ）と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する機能（Ｂ）と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能（Ｃ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能（Ｄ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（Ｅ）と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００７５】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現させれば、高画質な画像を迅速に出力することが可能となる。
【００７６】
また、上述した第１の画像出力方法に対応する本発明の他の態様のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能（１）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する機能（２）と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する機能（３）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（４）と
を実現することを要旨とする。
【００７７】
また、上記のプログラムに対応する本発明の記録媒体は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能（１）と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する機能（２）と、
前記多値化結果値が前記画素群毎に１つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する機能（３）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（４）と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００７８】
また、上述した第２の画像出力方法に対応する本発明の他の態様のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能（ロ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（ハ）と
を実現することを要旨とする。
【００７９】
また、上記のプログラムに対応する本発明の記録媒体は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能（イ）と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に１つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能（ロ）と、
前記決定したドット形成の有無に基づいてドットを形成する機能（ハ）と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
【００８０】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現させれば、画像データを迅速に受け取って、高画質な画像を迅速に出力することが可能となる。
【発明を実施するための最良の形態】
【００８１】
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
Ａ．実施例の概要：
Ｂ．装置構成：
Ｃ．第１実施例の画像印刷処理の概要：
Ｃ−１．個数データから画素位置を決定可能な原理：
Ｃ−２．第１実施例の多値化結果値生成処理：
Ｃ−３．分類番号の決定方法：
Ｃ−４．多値化用テーブル：
Ｃ−５．多値化結果値のデータ形式：
Ｃ−６．第１実施例のドット形成有無決定処理：
Ｃ−７．第１実施例の変形例：
Ｄ．第２実施例：
Ｄ−１．第２実施例の画像印刷処理の概要：
Ｄ−２．第２実施例の多値化結果値生成処理：
Ｄ−２−１．ディザ法を用いた大中小ドットの形成個数の決定処理：
Ｄ−２−２．第２実施例の多値化結果値生成処理の内容：
Ｄ−３．第２実施例のドット形成有無決定処理：
Ｄ−４．第２実施例の変形例：
Ｅ．第３実施例：
Ｅ−１．第３実施例の多値化結果値生成処理：
Ｅ−２．第３実施例のドット形成有無決定処理：
Ｅ−３．第３実施例の多値化用テーブルの設定方法：
Ｅ−４．第３実施例の変形例の多値化結果値生成処理：
Ｅ−５．第３実施例の変形例のドット形成有無決定処理：
【００８２】
Ａ．実施例の概要  ：
実施例の詳細な説明に入る前に、図１を参照しながら、実施例の概要について説明しておく。図１は、印刷システムを例にとって、本実施例の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ１０と、画像出力装置としてのプリンタ２０等から構成されており、コンピュータ１０に所定のプログラムがロードされて実行されると、コンピュータ１０およびプリンタ２０などが全体として、一体の画像出力システムとして機能する。プリンタ２０は、印刷媒体上にドットを形成することによって画像を印刷する。コンピュータ１０は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ２０が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ２０に供給する。
【００８３】
一般的な印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータで所定の画像処理を施すことにより、画像データを、画素毎にドット形成の有無を表すデータに変換する。次いで、得られたデータをプリンタに供給し、プリンタでは供給されたデータに従ってドットを形成することにより画像を印刷している。ここで、印刷しようとする画像の画素数が多くなると、それに伴って、画像処理に要する時間が増加して、画像を迅速に印刷することが困難となる。また、画素数が多くなるにつれて、画素毎にドット形成の有無を表すデータのデータ量が増加するので、コンピュータからプリンタにデータを出力するために要する時間が長くなり、それだけ印刷に要する時間が増加してしまう。
【００８４】
こうした点に鑑みて、図１に例示した印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータ１０では、画像を構成する画素を、所定の複数個ずつまとめて画素群を生成する。次いで、画素群を分割して処理するか否かを、画像データの解像度と画像を出力する解像度との解像度比に基づいて判断する。判断に際しては、たとえば、解像度比が所定値未満であれば画素群を分割して処理すると判断することができる。次いで、画素群を分割せずに処理する場合は、画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定する。一方、画素群を分割して処理する場合は、画素群を分割する各領域についての代表階調値を決定する。
【００８５】
こうして得られた代表階調値は多値化モジュールに送られて、多値化用対応関係を参照することによって多値化される。多値化用対応関係記憶モジュールには、代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが画素群毎に関連づけられた多値化用対応関係が記憶されている。多値化モジュールは、かかる多値化用対応関係記憶モジュールを参照することで、代表階調値を迅速に多値化結果値に変換することができる。結局、多値化結果値は、画素群を分割することなく処理する場合には画素群毎に１つずつ生成され、画素群を分割して処理する場合には画素群を分割する領域毎に１つずつ生成されることになる。コンピュータ１０は、こうして得られた多値化結果値をプリンタ２０に向かって出力する。
【００８６】
プリンタ２０のドット形成有無決定モジュールは、多値化結果値を受け取ると、次のようにして各画素についてのドット形成の有無を決定する。画素群あたりに１つずつの多値化結果値を受け取っている場合には、画素群内の各画素についてのドット形成の有無を決定する。ドット形成の有無を決定するに際しては、画素群内で各画素にドットが形成される順番を示す順序値を画素群毎に特定して、かかる順序値と多値化結果値とに基づいて、画素群内の各画素についてのドット形成有無を決定することができる。あるいは、多値化結果値と、画素群内の各画素についてのドット形成の有無を表すデータとが、画素群毎に関連づけられた復号用対応関係を予め記憶しておき、多値化結果値から、かかる復号用対応関係を参照することにより、多値化結果値を画素群内の各画素についてのドット形成有無を表すデータに変換することとしてもよい。
【００８７】
一方、画素群あたりに複数の多値化結果値を受け取っている場合には、画素群を複数の領域に分割して、各領域毎に、多値化結果値から各画素についてのドット形成の有無を決定する。領域毎に各画素についてのドット形成有無を決定するに際しては、画素群内の各画素についての順序値と、各領域の多値化結果値とに基づいて決定してもよいし、あるいは、各領域の多値化結果値から復号用対応関係を参照することによって、領域毎に各画素についてのドット形成の有無を決定することとしてもよい。このようにして得られたドット形成有無の決定結果に従って、ドット形成モジュールがドットを形成することによって画像が印刷される。
【００８８】
ここで、画素毎にドット形成の有無を表すデータに比べれば、画素群毎の多値化結果値は遙かに小さなデータ量とすることができる。従って、コンピュータ１０から画素毎にドット形成の有無を表したデータをプリンタ２０に供給する代わりに、画素毎の多値化結果値を供給してやれば、極めて迅速にデータを転送することが可能となる。
【００８９】
また、多値化結果値は、代表階調値と多値化結果値とが関連づけられた多値化用対応関係を参照することによって、迅速に求めることができる。このため、生成した多値化結果値をプリンタ２０に迅速に供給可能なことと相まって、たとえ画素数の多い画像であっても迅速に画像を印刷することが可能となる。また、対応関係を参照して多値化結果値を生成すれば、極めて簡素な処理で生成することができる。このため、多値化結果値を生成するためには、コンピュータ１０のような高度な処理能力を有する機器を用いずとも、例えばプリンタ２０あるいはデジタルカメラなどの内部でも生成することが可能となる。
【００９０】
更に、上述した一連の処理は、画素群を分割せずに処理することも、あるいは画素群を分割して領域毎に処理することも可能となっており、分割して処理した場合は、画素群よりも小さな領域をひとまとまりとして処理することが可能である。しかし、このような場合でも、多値化用対応関係や、順序値あるいは復号用対応関係などについては、分割せずに処理するためのものをそのまま使用することができる。すなわち、より小さな画素群について処理する場合でも、新たに小さな画素群を生成するのではなく、既存の画素群を分割して処理することで、小さな画素群用の多値化用対応関係や、順序値あるいは復号用対応関係が不要となる。その結果、これらを記憶しておくための記憶容量を節約することが可能となる。
【００９１】
後述するように、適切な画素群の大きさは、画像データの解像度と画像を出力する解像度との解像度比によっても異なることから、解像度比によって画素群を分割して処理するか否かを判断してやれば、小さな画素群用の多値化用対応関係や、順序値あるいは復号用対応関係を用意せずとも、実質的には、適切な大きさの画素群で処理することが可能となり、高画質な画像を迅速に出力することが可能となる。以下では、こうした印刷システムを例に用いることにより、本発明の各種実施例について詳細に説明する。
【００９２】
Ｂ．装置構成  ：
図２は、本実施例の画像処理装置としてのコンピュータ１００の構成を示す説明図である。コンピュータ１００は、ＣＰＵ１０２を中心に、ＲＯＭ１０４やＲＡＭ１０６などが、バス１１６で互いに接続して構成された周知のコンピュータである。
【００９３】
コンピュータ１００には、フレキシブルディスク１２４やコンパクトディスク１２６等のデータを読み込むためのディスクコントローラＤＤＣ１０９や、周辺機器とデータの授受を行うための周辺機器インターフェースＰＩＦ１０８、ＣＲＴ１１４を駆動するためのビデオインターフェースＶＩＦ１１２等が接続されている。ＰＩＦ１０８には、後述するカラープリンタ２００や、ハードディスク１１８等が接続されている。また、デジタルカメラ１２０やカラースキャナ１２２等をＰＩＦ１０８に接続すれば、デジタルカメラ１２０やカラースキャナ１２２で取り込んだ画像を印刷することも可能である。更に、ネットワークインターフェースカードＮＩＣ１１０を装着すれば、コンピュータ１００を通信回線３００に接続して、通信回線に接続された記憶装置３１０に記憶されているデータを取得することもできる。
【００９４】
図３は、本実施例のカラープリンタ２００の概略構成を示す説明図である。カラープリンタ２００はシアン，マゼンタ，イエロ，ブラックの４色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら４色のインクに加えて、染料または顔料濃度の低いシアン（淡シアン）インクと、染料または顔料濃度の低いマゼンタ（淡マゼンタ）インクとを含めた合計６色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク，マゼンタインク，イエロインク，ブラックインク，淡シアンインク，淡マゼンタインクのそれぞれを、Ｃインク，Ｍインク，Ｙインク，Ｋインク，ＬＣインク，ＬＭインクと略称することがあるものとする。
【００９５】
カラープリンタ２００は、図示するように、キャリッジ２４０に搭載された印字ヘッド２４１を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ２４０をキャリッジモータ２３０によってプラテン２３６の軸方向に往復動させる機構と、紙送りモータ２３５によって印刷用紙Ｐを搬送する機構と、ドットの形成やキャリッジ２４０の移動および印刷用紙の搬送を制御する制御回路２６０などから構成されている。
【００９６】
キャリッジ２４０には、Ｋインクを収納するインクカートリッジ２４２と、Ｃインク，Ｍインク，Ｙインクの各種インクを収納するインクカートリッジ２４３とが装着されている。インクカートリッジ２４２，２４３をキャリッジ２４０に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド２４１の下面に設けられた各色毎のインク吐出用ヘッド２４４ないし２４７に供給される。
【００９７】
図４は、インク吐出用ヘッド２４４ないし２４７におけるインクジェットノズルＮｚの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、Ｃ，Ｍ，Ｙ，Ｋの各色のインクを吐出する４組のノズル列が形成されており、１組のノズル列あたり４８個のノズルＮｚが、一定のノズルピッチｋで配列されている。
【００９８】
制御回路２６０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、ＰＩＦ（周辺機器インターフェース）等がバスで相互に接続されて構成されている。制御回路２６０は、キャリッジモータ２３０および紙送りモータ２３５の動作を制御することによってキャリッジ２４０の主走査動作および副走査動作を制御するとともに、コンピュータ１００から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路２６０の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ２００はカラー画像を印刷することができる。
【００９９】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインク滴を吐出する方式や、インク通路に配置したヒータでインク通路内に泡（バブル）を発生させてインク滴を吐出する方法などを用いることができる。また、インク滴を吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【０１００】
以上のようなハードウェア構成を有するカラープリンタ２００は、キャリッジモータ２３０を駆動することによって、各色のインク吐出用ヘッド２４４ないし２４７を印刷用紙Ｐに対して主走査方向に移動させ、また紙送りモータ２３５を駆動することによって、印刷用紙Ｐを副走査方向に移動させる。制御回路２６０は、キャリッジ２４０の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ２００は印刷用紙上にカラー画像を印刷している。
【０１０１】
尚、カラープリンタ２００にも、制御回路２６０内にはＣＰＵ，ＲＡＭ，ＲＯＭなどが搭載されていることから、コンピュータ１００が行う処理をカラープリンタ２００内で実施することも可能である。このような場合は、デジタルカメラ１２０などで撮影した画像の画像データをカラープリンタ２００に直接供給して、制御回路２６０内で必要な画像処理を実施することにより、カラープリンタ２００から直接画像を印刷することも可能となる。
【０１０２】
Ｃ．第１実施例の画像印刷処理の概要  ：
以下では、上記のようなコンピュータ１００およびカラープリンタ２００が、画像を印刷するために、それぞれの内部で行われる画像処理（画像印刷処理）について説明する。ここでは、理解の便宜を図るため、初めに画像印刷処理の全体像について簡単に説明し、次に、こうした画像印刷処理が可能である原理について説明する。そして最後に、それぞれの処理の詳細な内容について説明する。
【０１０３】
尚、以下では、画像印刷処理の前半部分はコンピュータ１００で実施され、後半部分はカラープリンタ２００で実施されるものとして説明するが、これらの処理をカラープリンタ２００の内部で実施したり、あるいはデジタルカメラ１２０等、画像データを生成する機器の内部で実施することも可能である。もちろん、画像印刷処理の前半部分の処理をデジタルカメラ１２０などで実施して、後半部分の処理をカラープリンタ２００で実施することとしても良い。すなわち、本実施例の画像印刷処理によれば、後ほど詳細に説明するように、前半部分の処理および後半部分の処理を簡素なものとすることができる。このため、カラープリンタ２００やデジタルカメラ１２０などのように、コンピュータ１００のようには高い処理能力を有していない機器を用いた場合でも、画像印刷処理を迅速に実施することが可能であり、従って、コンピュータ１００を使用せずとも十分に実用的な印刷システムを構成することができる。
【０１０４】
図５は、第１実施例の画像印刷処理の全体的な流れを示すフローチャートである。以下では、図５を参照しながら、画像印刷処理の全体像について簡単に説明する。第１実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ１００が画像データの読み込みを開始する（ステップＳ１００）。ここでは、画像データはＲＧＢカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについても同様に適用することができる。また、カラープリンタに限らず単色プリンタについても同様に適用することが可能である。
【０１０５】
カラー画像データの読み込みに続いて、色変換処理を行う（ステップＳ１０２）。色変換処理とは、Ｒ，Ｇ，Ｂの階調値の組合せによって表現されているＲＧＢカラー画像データを、印刷のために使用されるインク各色についての階調値の組合せによって表現された画像データに変換する処理である。前述したように、カラープリンタ２００はＣ，Ｍ，Ｙ，Ｋの４色のインクを用いて画像を印刷している。そこで、第１実施例の色変換処理ではＲＧＢ各色によって表現された画像データを、Ｃ，Ｍ，Ｙ，Ｋの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル（ＬＵＴ）と呼ばれる３次元の数表を参照することで行う。ＬＵＴには、ＲＧＢカラー画像データに対して、色変換によって得られるＣ，Ｍ，Ｙ，Ｋ各色の階調値が予め記憶されている。ステップＳ１０２の処理では、このＬＵＴを参照することにより、ＲＧＢカラー画像データをＣ，Ｍ，Ｙ，Ｋ各色の画像データに迅速に色変換することが可能である。
【０１０６】
色変換処理を終了すると、解像度変換処理を開始する（ステップＳ１０４）。解像度変換処理とは、画像データの解像度を、プリンタ２００が画像を印刷する解像度（印刷解像度）に変換する処理である。画像データの解像度が印刷解像度よりも低い場合は、画素間に新たな画像データを生成し、逆に画像データの解像度が印刷解像度よりも高い場合には、一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に一致させる処理を行う。
【０１０７】
今日では、高画質化の要請、あるいは大画像化の要請に伴って、解像度変換処理では、画像データをより高解像度の印刷解像度に変換することがしばしば行われている。この場合、補間演算を行って画素間に新たな画像データを生成することも可能であるが、簡便には１つの画素を複数の画素に分割することで、新たな画像データを生成することも広く行われている。
【０１０８】
図６は、このような解像度変換を行っている様子を概念的に示した説明図である。図６（ａ）は解像度変換前の画像データを表している。この画像データの１画素を、主走査方向（図上では左右方向）に４分割、副走査方向（図上では上下方向）に２分割して高解像度化すると、図６（ｂ）に示したデータを得ることができる。また、元の画像データの１画素を、主走査方向および副走査方向にそれぞれ２分割した場合は、図６（ｃ）に示すデータを得ることができる。もちろん、このように１つの画素を単純に分割して高解像度化する場合、隣接する画素間でより滑らかな階調変化が表現されているわけではないので、実質的な解像度が増加しているわけではなく、見かけ上の解像度が増加したに過ぎない。しかし、ドットを形成して画像を印刷する場合、１つの画素で表現可能な階調数は高々数階調に過ぎず、画像データが表現可能な階調数に対して遙かに少ないことから、この様な解像度変換であっても画質の向上には有効であり、単純に画素を分割して見かけ上の解像度を高解像度化する解像度変換処理も一般的に行われている。
【０１０９】
図６に示した例に即して説明すると、元の画像データの解像度が３６０×３６０ｄｐｉ（主走査方向および副走査方向ともに３６０ｄｐｉ）であるとすれば、図６（ｂ）に示すような解像度変換を行うことで、見かけ上の解像度が１４４０×７２０ｄｐｉ（主走査方向には１４４０ｄｐｉ、副走査方向には７２０ｄｐｉ）に高解像度化され、その結果、より高画質な画像を得ることができる。また、そこまでの高い画質が必要ではない場合は、図６（ｃ）に示すような解像度変換を行って、見かけ上の解像度を７２０×７２０ｄｐｉに高解像度化することで、画質を改善することが可能となる。
【０１１０】
以上のようにして解像度を印刷解像度に変換したら、コンピュータ１００は、多値化結果値生成処理を開始する（図５のステップＳ１０６）。多値化結果値生成処理の詳細な内容は後ほど詳しく説明することとして、ここでは概要のみを説明する。この処理では、解像度変換処理後の画素を所定個数ずつ画素群としてまとめることにより、１つ画像を複数の画素群に分割する。ここでは、主走査方向の４画素、副走査方向に２画素、合計８つの画素を画素群としてまとめるものとする。そして、画素群を分割して処理するか否かを、上述した解像度変換処理（ステップＳ１０４）における変換前後での解像度比に基づいて判断する。
【０１１１】
例えば、図６（ｂ）に示した解像度変換が行われた場合、変換前後の解像度比は、主走査方向には４倍であり、副走査方向には２倍である。ここでは、画素群は主走査方向には４画素ずつ、副走査方向には２画素ずつまとめるものとしているから、主走査方向および副走査方向への解像度比は、画素群にまとめられた画素数と一致する。そこで、この場合は、画素群を分割することなく処理するものと判断する。一方、例えば図６（ｃ）に示した解像度変換が行われた場合、変換前後の解像度比は、主走査方向および副走査方向ともに２倍である。そこで、この場合は、画素群を主走査方向に２等分して処理するものと判断する。この結果、画素群を分割して生成された各領域に含まれる画素数は、主走査方向および副走査方向ともに２画素ずつとなり、変換前後の解像度比と一致する。また、変換前後の解像度比が主走査方向に２倍、副走査方向に１倍であった場合には、１つの画素群を主走査方向および副走査方向ともに２等分して処理するものと判断すればよい。こうすれば、分割して生成された各領域に含まれる画素数は、主走査方向には２画素、副走査方向には１画素となって、画素数と解像度比とを一致させることが可能となる。
【０１１２】
以上のようにして画素群を分割して処理するか否かを判断した後、分割せずに処理する場合は、画素群内の画像データを代表する階調値（代表階調値）を決定して、得られた階調値を多値化することにより多値化結果値に変換する。一方、画素群を分割して処理する場合は、分割して生成した各領域についての代表階調値を求め、それぞれ代表階調値を多値化結果値に変換する。結局、画素群を分割せずに処理する場合は、画素群毎に１つずつ多値化結果値が得られることになり、一方、画素群を分割して処理する場合は、画素群毎に複数個の多値化結果値が得られることになる。多値化結果値生成処理では、こうして代表階調値を多値化した後、得られた多値化結果値をカラープリンタ２００に出力する。
【０１１３】
尚、多値化結果値生成処理は、後述する多値化用テーブルを参照することで、簡便に且つ迅速に実施することが可能である。また、多値化結果値が示す内容はどのようなものとすることも可能であるが、ここでは画素群内に形成すべきドットの個数を示すデータであるものとする。すなわち、代表階調値は画素群内の各画素の画像データを代表する階調値であるから、代表階調値が大きくなると、それにつれて画素群内に形成されるドットの個数は増加する。従って、画素群の代表階調値から該画素群内に形成するドット個数を決定する処理を、一種の多値化と見ることができ、この場合は、ドットの個数が多値化結果値に相当していることになる。尚、多値化結果値は、必ずしもドットの個数そのものではなく、ドットの個数に変換することが可能な値でありさえすれば、間接的にドットの個数を表す値であっても構わない。
【０１１４】
カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から多値化結果値を受け取ると、ドット形成有無決定処理を開始する（ステップＳ１０８）。すなわち、カラープリンタ２００は、画像を構成する各画素にドットを形成することによって画像を印刷していることから、画像の印刷に先立って、各画素についてドットを形成するか否かを決定しておく必要がある。そこで、コンピュータ１００から受け取った多値化結果値に基づいて、各画素についてドットを形成するか否かを決定する処理を行うのである。尚、上述したように、多値化結果値生成処理では、画素群を分割して処理する場合と分割することなく処理する場合とが存在しており、分割せずに処理する場合は各画素群について１つずつ多値化結果値が供給され、一方、分割して処理する場合は、各画素群について複数個ずつ多値化結果値が供給される。このことと対応して、ドット形成有無決定処理においても、各画素群に１つずつ多値化結果値が得られる場合には、各画素についてのドット形成有無が画素群毎に決定され、一方、各画素群に複数個ずつ多値化結果値が得られる場合には、各画素についてのドット形成有無が領域毎に決定されることになる。ドット形成有無決定処理の詳細な内容については後述する。
【０１１５】
また、多値化結果値から画素群内の各画素についてドット形成の有無を決定する手法としては、いわゆる濃度パターン法と呼ばれる手法が知られているが、本実施例のドット形成有無決定処理では、多値化結果値に加えて、画素群毎に設定された順序値を用いてドット形成有無を決定する点で大きく異なっている。この様にして各画素のドット形成の有無を決定すれば、次のような大きな利点を得ることができる。すなわち、一般的な濃度パターン法では、実質的な解像度が、多値化を行った画素群の解像度まで低下してしまい、画質の悪化を招き易い傾向がある。これに対して、本実施例のドット形成有無決定処理では、画素群毎に記憶されている順序値を参照しながらドット形成の有無を決定しているために、画素群の大きさに依存して画質が悪化することがない。更に、いわゆるブルーノイズマスク、あるいはグリーンノイズマスクと呼ばれるディザマトリックスを用いることで実現されるような、ドットが良好に分散した高画質な画像を印刷することが可能となる。本実施例のドット形成有無決定処理の詳細な内容、および、かかる処理を行ってドット形成の有無を決定することで、こうした特性が得られる理由については、後ほど詳しく説明する。
【０１１６】
以上のようにして、画素群内の各画素についてドット形成の有無を決定したら、決定したドット形成の有無に従って、出力媒体上にドットを形成する処理を行う（図５のステップＳ１１０）。すなわち、図３を用いて説明したように、キャリッジ２４０の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
【０１１７】
このように、本実施例の画像印刷処理では、コンピュータ１００からカラープリンタ２００に向かって、多値化結果値を供給するものの、画素毎にドット形成の有無を示すデータは供給していない。画素毎にドット形成の有無を表現することに比べれば、多値化結果値は遙かに少ないデータ量で表現することができることから、このような方法を採用することで、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを供給することが可能となる。
【０１１８】
例えば、各画素に形成可能なドットは１種類であるとする。この場合、各画素はドットが形成されるか否かのいずれかの状態しか取り得ないから、１画素についてのドット形成有無を表すために必要なデータ長は１ビットとなる。また、ここでは画素群には８つの画素が含まれるとしているから、画素群内の全画素についてドット形成の有無を表現するためには、８ビットのデータ長が必要となる。一方、画素群内に形成されるドットの個数は、０個〜８個のいずれかの９通りしか取り得ない。９通りであれば４ビットあれば表現することができる。従って、画素群の代表階調値をドット個数のデータに多値化しておけば、多値化結果値は４ビットのデータ長で表現可能となる。このように、画素毎にドット形成の有無を表すデータに比べて、多値化結果値は遙かに少ないデータ量で表現することができるので、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを供給することが可能となる。
【０１１９】
加えて、詳細には後述するが、各画素についてのドット形成の有無を適切に決定してやれば、多値化結果値を供給した場合でも、画質が悪化することはない。特に、所定の条件下では、画素毎にドット形成の有無を表すデータを供給した場合と全く同じ結果を得ることが可能である。
【０１２０】
もちろん、画素群を分割する場合には画素群あたり複数の多値化結果値を供給しなければならないので、多値化結果値を迅速に供給して画像を迅速に印刷するというメリットは減殺されてしまう。しかし、画素群を分割して処理すれば、既存の画素群について設定された多値化用テーブルや順序値をそのまま使用したまま、より小さな画素群を用いて処理した場合と同様なドットの発生状態とすることができる。従って、記憶しておくべき多値化用テーブルや順序値の種類を増加させることなく、適切にドットを発生させることが可能となる。
【０１２１】
また、後述するアルゴリズムを用いれば、多値化結果値を生成する処理や、多値化結果値から各画素についてのドット形成の有無を決定する処理は、極めて簡素な処理によって実現することができ、しかも極めて迅速に実行することが可能である。このため、コンピュータ１００のような高度な処理能力を有する画像処理装置を用いずとも、例えばデジタルカメラ１２０やカラープリンタ２００などの内部で実行することも可能である。こうした場合には、デジタルカメラ１２０で撮影した画像データを直接カラープリンタ２００に供給して、高画質なカラー画像を印刷することも可能となる。
【０１２２】
Ｃ−１．個数データから画素位置を決定可能な原理  ：
以下では、上述した方法を採用した場合、すなわち、画素群に形成するドット個数を示す多値化結果値を、コンピュータ１００からカラープリンタ２００に供給し、この多値化結果値に基づいて、画素群内の各画素についてドット形成の有無を決定した場合でも、画質を悪化させることなく画像を印刷することが可能な原理について説明する。
【０１２３】
説明の都合上、先ず初めに、ディザ法について説明する。ディザ法とは、画像データを画素毎にドット形成の有無を表すデータに変換するために用いられる代表的な手法である。この手法では、ディザマトリックスと呼ばれるマトリックスに閾値を設定しておき、画像データの階調値とディザマトリックスに設定されている閾値とを画素毎に比較して、画像データの階調値の方が大きい画素についてはドットを形成すると判断し、そうでない画素についてはドットを形成しないと判断する。このような判断を画像中の全画素について行えば、画像データを画素毎にドット形成の有無を表すデータに変換することができる。
【０１２４】
図７は、ディザマトリックスの一部を概念的に例示した説明図である。図示したマトリックスには、横方向（主走査方向）に１２８画素、縦方向（副走査方向）に６４画素、合計８１９２個の画素に、階調値１〜２５５の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が１〜２５５の範囲から選択されているのは、本実施例では、画像データが階調値０〜２５５の値を取り得る１バイトデータとしていることに加えて、画像データの階調値と閾値とが等しい場合には、その画素にはドットを形成するものと判断していることによるものである。
【０１２５】
すなわち、ドットが形成されるのは画像データの階調値が閾値よりも大きい画素に限る（すなわち階調値と閾値が等しい画素にはドットは形成しない）とした場合、画像データの取り得る最大階調値と同じ値の閾値を有する画素には、決してドットが形成されないことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最大階調値を除いた範囲とする。逆に、画像データの階調値と閾値が等しい画素にもドットを形成するとした場合、画像データの取り得る最小階調値と同じ値の閾値を有する画素には、常にドットが形成されてしまうことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最小階調値を除いた範囲とする。本実施例では、画像データの取り得る階調値が０〜２５５であり、画像データと閾値が等しい画素にはドットを形成するとしていることから、閾値の取り得る範囲を１〜２５５としておくのである。尚、ディザマトリックスの大きさは、図６に例示したような大きさに限られるものではなく、縦と横の画素数が同じマトリックスも含めて種々の大きさとすることができる。
【０１２６】
図８は、ディザマトリックスを参照しながら、各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成の有無を判断するに際しては、先ず、判断しようとする画素を選択し、この画素についての画像データの階調値と、ディザマトリックス中で対応する位置に記憶されている閾値とを比較する。図８中に示した細い破線の矢印は、画像データの階調値と、ディザマトリックスに記憶されている閾値とを、画素毎に比較していることを模式的に表したものである。例えば、画像データの左上隅の画素については、画像データの階調値は９７であり、ディザマトリックスの閾値は１であるから、この画素にはドットを形成すると判断する。図８中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は９７、ディザマトリックスの閾値は１７７であり、閾値の方が大きいので、この画素についてはドットを形成しないと判断する。ディザ法では、こうしてディザマトリックスを参照しながら、画素毎にドットを形成するか否かを判断することで、画像データを画素毎にドット形成の有無を表すデータに変換する。
【０１２７】
図９は、ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。図９（ａ）は、画像データの一部を拡大して示したものであり、図中の小さな矩形は画素を、そして、それぞれの矩形の中に表示された数値は画像データの階調値を表している。図示されているように、画像データは、隣接する画素間では近似する（若しくは同一の）階調値が割り当てられる傾向がある。近年では、高画質化の要請から画像データの解像度は高くなる傾向にあるが、隣接する画素間で近似若しくは同一の階調値が割り当てられる傾向は、画像データの解像度が高くなるほど顕著となっている。更に、前述したように、画像データの解像度を印刷解像度に変換する際に、画素を複数の画素に分割して高解像度化した場合には、同一の画素から分割して生成された画素は全て同じ階調値を有することになる。
【０１２８】
図９（ｂ）は、ディザマトリックスの対応する位置に閾値が設定されている様子を示している。図９（ａ）に示した画像データの階調値と、図９（ｂ）に示したディザマトリックスの閾値とを画素毎に比較することによって、ドット形成の有無を判断する。図９（ｃ）は、こうして画素毎にドット形成の有無を判断した結果を示しており、図中で斜線を付した画素がドットを形成すると判断された画素である。
【０１２９】
ここで、隣接する画素を所定数ずつ画素群としてまとめ、画素群内でドットを形成すると判断された画素の個数を数えることを考える。一例として、主走査方向（図９中では横方向）に４画素分、副走査方向（図９中では縦方向）に２画素分の、合計８画素ずつを画素群としてまとめるものとする。図９（ｄ）は、こうしてまとめられたそれぞれの画素群について、ドットを形成すると判断された画素を数えることによって得られたドット個数を示している。第１実施例の画像印刷処理において、コンピュータ１００からカラープリンタ２００に供給される多値化結果値は、このような画素群毎に得られたドット個数のデータである。ドット個数を示す多値化結果値には、ドットを形成する画素位置に関する情報は含まれていない。しかし、次のようにすれば、ドットの個数から、ドットを形成する画素位置の情報を復元して、画素毎にドット形成の有無を表すデータを生成することができる。
【０１３０】
図１０は、ドット個数を示すデータから、画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。図１０（ａ）は、図９で画素群毎に形成するドットの個数を数えて得られた値を表している。また、図１０（ｂ）は、図９で画素毎にドット形成の有無を判断するために参照したディザマトリックスを示している。前述したようにディザ法では、画像データの階調値と、ディザマトリックスの対応する画素位置に設定された閾値とを比較して、画像データの階調値の方が大きければ、その画素にはドットを形成すると判断しており、ディザマトリックスの閾値が小さくなるほどドットが形成され易くなる。このことから、ディザマトリックスはドットが形成される画素の順番を表していると考えることができる。
【０１３１】
ディザマトリックスの有するこうした性質に着目すれば、画素群内に形成されるドットの個数から、各画素についてのドット形成の有無を決定することができる。例えば、図１０（ａ）に示した一番左上隅の画素群について説明すると、この画素群に形成されるドット個数は３個である。また、図１０（ｂ）に示したディザマトリックスを参照すれば、この画素群内では、左上隅にある画素位置すなわち閾値「１」が設定されている画素位置が最もドットが形成され易い画素であると言える。従って、この画素群内で３つ形成されるドットの中の１つは、左上隅の画素に形成されているものと考えることができる。同様にして、残りの２つのドットは、この画素群内で２番目にドットが形成され易い画素（すなわち図１０（ｂ）のディザマトリックスで閾値「４２」が設定されている画素）と、３番目にドットが形成され易い画素（すなわち閾値「５８」が設定されている画素）とに形成されるものと考えることができる。
【０１３２】
もちろん、ドット形成の有無は、ディザマトリックスに設定された閾値だけでなく、画像データの階調値によっても影響されるから、画像データの階調値が極端に大きければ、より小さな閾値が設定されている画素よりも先にドットが形成されることも起こり得る。しかし、前述したように画像データには、隣接する画素には近似する（若しくは同一の）階調値が割り当てられる傾向があるから、ほとんどの場合はドットが形成され易い画素（すなわちディザマトリックスに設定された閾値の小さな画素）からドットが形成されると考えることができる。
【０１３３】
図１０（ａ）に示した他の画素群についても、同様にして、ドット個数とディザマトリックスの閾値とに基づいて、各画素についてのドット形成の有無を決定することができる。例えば、図１０（ａ）の上述した画素群の下にある画素群（左端上から２番目の画素群）については、ドット個数は３個であるから、図１０（ｂ）のディザマトリックスを参照すれば、これら３つのドットは、閾値「２２」が設定された画素と、閾値「３３」が設定された画素と、閾値「９１」が設定された画素とに、それぞれ形成されると考えることができる。
【０１３４】
図１０（ａ）に示した４つの画素群について、このようにしてドット個数のデータからドットを形成する画素位置を決定すると、図１０（ｃ）に示した結果を得ることができる。図１０（ｃ）中で、斜線を付して示した画素はドットを形成すると判断された画素である。図１０（ｃ）と図９（ｃ）とを比較すれば明らかなように、ドットの個数に基づいて決定したドットの分布は、画素毎に画像データと閾値とを比較して決定したドットの分布と一致している。このことは、ディザマトリックスを参照して画素毎にドット形成の有無を判断し、画素群内に形成されるドットの個数のみが分かれば、画素位置までは分からなくても、ディザマトリックスとドットの個数とに基づいて、各画素のドット形成の有無を適切に決定可能なことを示している。このことから、画素群に形成するドットの個数を示す多値化結果値をコンピュータ１００からカラープリンタ２００に供給した場合でも、カラープリンタ２００側でドット形成の有無を適切に決定することができるので、画質を悪化させることなく画像を印刷することが可能となるのである。
【０１３５】
また、個数データからドットを形成する画素位置を適切に決定するためには、画像データの階調値が画素群内で大きく異なっていなければ良い。前述したように、画像データは隣接する画素間では近似した階調値を有する特性があるから、こうした条件はほとんどの場合に成立しており、従って、ドットの個数を示す多値化結果値をカラープリンタ２００に供給して、多値化結果値からドット形成の有無を決定した場合でも、画質を悪化させることなく画像を印刷することが可能である。特に、次の２つの条件が満足される場合には、画像データの階調値とディザマトリックスの閾値とを比較してドット形成の有無を画素毎に判断した結果と、完全に同じドット分布が得られることになる。先ず１つ目の条件は、画素群内で各画素の階調値が同一の値を有することである。また、詳細には後述するが、本実施例の多値化結果値生成処理では、画素群を複数の領域に分割して多値化結果値を生成することが可能であり、この場合は、分割した領域内で各画素の階調値が同一の値となっていればよい。前述した解像度変換処理において、１つの画素を複数の画素に分割して高解像度化した場合は、同じ画素から生成された画素を画素群にまとめることで、１つ目の条件は自動的に満足されることになる。また、１つの画素群に異なる画素から生成された画素が含まれている場合でも、画素群を分割して、各領域については同じ画素から分割された画素だけが含まれるようにしておけば、１つ目の条件を満足することができる。
【０１３６】
２つ目の条件は、コンピュータ１００側で画素毎にドット形成の有無を判断する際に参照したディザマトリックスと、カラープリンタ２００側で個数データから画素位置を決定するために参照するディザマトリックスとが、同一のマトリックスであることである。
【０１３７】
尚、図８で説明したディザ法においては、ディザマトリックスに設定された閾値と画像データとの階調値とを比較して、いずれの値が大きいかによってドット形成の有無を判断している。これに対して、ドットの個数から画素毎のドット形成の有無を決定する場合には、図１０を用いて説明したように、画素群内でドットが形成される順番がドットの個数よりも小さいか、あるいはドットの個数と同じ画素についてはドットを形成すると判断し、それ以外の画素についてはドットを形成しないと判断している。すなわち、画素位置を決定するためには、閾値の値まで必要なわけではなく、画素群内でドットが形成され易い順序（換言すれば、ドットが形成される順番）が分かっていれば良い。このことから、図１０（ｂ）に示すディザマトリックスの代わりに、図１０（ｄ）に示すような画素群内の各画素について、ドットが形成される順番を示す値（順序値）が設定されたマトリックス（本明細書中では、このようなマトリックスを順序値マトリックスと呼ぶものとする）を記憶しておき、画素群毎に順序値マトリックスを参照しながら、各画素についてのドット形成の有無を決定することも可能である。
【０１３８】
加えて、このように、ディザマトリックスに基づいてドット形成の有無を決定する場合、ディザ法を適用してドット形成の有無を決定した時とほぼ同等のドット分布を得ることができる。このことから、ディザマトリックスの特性を適切に設計しておくことで、ドットの分布を制御することが可能である。例えば、いわゆるブルーノイズマスク特性を有するマトリックスや、あるいはグリーンノイズマスク特性を有するマトリックスを使用すれば、画像データを画素群単位で処理しているにも関わらず、これらディザマトリックスの特性に依存したドット分布の画像を得ることができる。以下では、この点につき、若干補足して説明する。
【０１３９】
図１１は、ブルーノイズマスク特性を有するディザマトリックス、およびグリーンノイズマスク特性を有するディザマトリックスについて、マトリックスに設定されている閾値の空間周波数特性を概念的に例示した説明図である。図１１では、表示の都合から、横軸には空間周波数の代わりに周期を取って表示している。言うまでもなく、周期が短くなるほど、空間周波数は高くなる。また、図１１の縦軸は、それぞれの周期での空間周波数成分を示している。尚、図示されている周波数成分は、ある程度変化が滑らかとなるように平滑化された状態で示されている。
【０１４０】
図中の実線は、ブルーノイズマスクの空間周波数成分を概念的に示している。図示されているように、ブルーノイズマスクは、１周期の長さが２画素以下の高い周波数領域に最も大きな周波数成分を有している。ブルーノイズマスクの閾値は、このような空間周波数特性を有するように設定されていることから、ブルーノイズマスクに基づいてドット形成の有無を判断した場合には、ドットが互いに離れた状態で形成される傾向にある。また、図中の破線は、グリーンノイズマスクの空間周波数成分を概念的に示している。図示されているように、グリーンノイズマスクは、１周期の長さが２画素から十数画素の中間周波数領域に最も大きな周波数成分を有している。グリーンノイズマスクの閾値は、このような空間周波数特性を有するように設定されていることから、グリーンノイズマスクに基づいてドット形成の有無を判断した場合には、数ドット単位で隣接してドットが形成されながら、全体としてはドットの固まりが分散した状態で形成される傾向にある。
【０１４１】
従って、このようなブルーノイズマスク特性、あるいはグリーンノイズマスク特性を有するディザマトリックスに基づいて、画素群の個数データを決定したり、あるいは、画素位置を決定してやれば、画素群単位で処理しているにも関わらず、ブルーノイズマスク特性あるいはグリーンノイズマスク特性を反映した分布となるように、ドットを形成することが可能となる。
【０１４２】
また、以上の説明では、図１０に示したように、ディザマトリックスに基づいて生成されて、複数種類の順序値マトリックスを予め記憶しておき、画素群の個数データを受け取ると、その画素群に対応した順序値マトリックスを用いて、各画素についてのドット形成の有無を決定するものとして説明した。しかし、より簡便には次のようにしてドット形成の有無を決定しても良い。すなわち、予め複数の順序値マトリックスを記憶しておき、個数データを受け取ると、画素群毎にランダムに選択した１の順序値マトリックスを用いて、各画素についてのドット形成の有無を決定しても良い。更に、より簡便には、順序値マトリックスを１組だけ記憶しておき、このマトリックスを用いて各画素についてのドット形成の有無を決定することも可能である。
【０１４３】
Ｃ−２．第１実施例の多値化結果値生成処理  ：
以下では、図５に示した第１実施例の画像印刷処理において、画像データから多値化結果値を生成する処理（ステップＳ１０６）について説明する。図１２は、第１実施例の多値化結果値生成処理の流れを示すフローチャートである。ここでは、多値化結果値生成処理はコンピュータ１００で実施されるものとして説明するが、後述するように、多値化結果値生成処理は簡素な処理とすることができるので、カラープリンタ２００あるいはデジタルカメラ１２０などの内部で実施することも可能である。
【０１４４】
また、ここでは説明が煩雑となることを避けるため、多値化結果値生成処理に先立って行われる解像度変換処理（図５参照）では、図６（ｂ）に例示したように、変換前の１画素が主走査方向には４分割、副走査方向には２分割されて、合計８つの画素に分割されるか、あるいは図６（ｃ）に例示したように、主走査方向および副走査方向のいずれにも２分割されて、合計４つの画素に分割されるかの、いずれかの方法で高解像度化されるものとする。従って、解像度変換処理前の解像度が３６０×３６０ｄｐｉであったとすると、変換後の解像度は、１４４０×７２０ｄｐｉあるいは７２０×７２０ｄｐｉのいずれかの解像度となる。以下、図１２のフローチャートに従って、第１実施例の多値化結果値生成処理について説明する。
【０１４５】
第１実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成する（ステップＳ２００）。前述したように、画素群は、主走査方向に４画素ずつ、副走査方向に２画素ずつの合計８つの画素から生成されるものとする。
【０１４６】
次いで、画素群の分類番号を決定する（ステップＳ２０２）。分類番号の意味するところについては後述するが、ここでは画素群を識別するために用いられる番号と考えておく。画素群の分類番号は、後述する方法を用いれば極めて簡便に決定することができる。
【０１４７】
そして、画素群の大きさ（画素群に含まれる画素数）が、解像度変換前後での解像度比と一致するか否かを判断し（ステップＳ２０４）、一致していれば（ステップＳ２０４：ｙｅｓ）、画素群を分割することなく処理するものと判断して、画素群の代表階調値を決定する（ステップＳ２０６）。一方、画素群の大きさと解像度比とが一致していない場合は（ステップＳ２０４：ｎｏ）、画素群を分割して処理するものと判断して、画素群を分割して生成された各領域についての代表階調値を決定する（ステップＳ２１２）。
【０１４８】
図１３は、解像度変換前後の解像度比に基づいて、画素群を分割するか否かを判断し、代表階調値を決定する様子を概念的に示した説明図である。図１３（ａ）は、解像度変換処理によって、１つの画素が主走査方向には４分割され、副走査方向には２分割された場合を示している。例えば、変換前の画像データの解像度を３６０×３６０ｄｐｉとすれば、変換後の解像度は１４４０×７２０ｄｐｉとなる。このような解像度変換が行われた場合、主走査方向の解像度比は４となり、副走査方向の解像度比は２となっている。また、画素群は主走査方向には４画素ずつ、副走査方向には２画素ずつの合計８つの画素をまとめて生成されている。図中に破線で示した矩形は、これら８つの画素が画素群にまとめられた様子を表している。
【０１４９】
図１３（ａ）に示した例では、画素群の大きさと解像度比とは、主走査方向あるいは副走査方向のいずれについても一致する。すなわち、主走査方向については、画素群の大きさは４画素、解像度比は４となって一致しており、また、副走査方向については、画素群の大きさは２画素、解像度比は２となって一致している。そこで、図１３（ａ）に示したように、画素群の大きさと解像度比とが一致している場合は（図１２のステップＳ２０４：ｙｅｓ）、画素群を分割することなく処理すると判断して、画素群の代表階調値を決定する（図１２のステップＳ２０６）。図１３（ａ）に示した例では、画素群にまとめられた画素はいずれも同じ階調値を有しているから、その階調値を代表階調値として決定すればよい。
【０１５０】
一方、図１３（ｂ）には、１つの画素が主走査方向および副走査方向のいずれの方向にも、２分割された場合を示している。例えば、変換前の画像データの解像度を３６０×３６０ｄｐｉとすれば、変換後の解像度は７２００×７２０ｄｐｉとなる。画素群は、このような解像度変換が行われた場合でも、主走査方向には４画素ずつ、副走査方向には２画素ずつの合計８つの画素をまとめて生成されている。図１３（ｂ）中に破線で示した矩形は、これら８つの画素が画素群にまとめられた様子を表している。
【０１５１】
図１３（ｂ）に示した例では、画素群の大きさと解像度比とは、副走査方向については一致するものの、主走査方向については一致していない。すなわち、副走査方向については、画素群の大きさは２画素、解像度比は２となって一致しているが、主走査方向については、画素群の大きさは４画素、解像度比は２となって一致していない。そこで、このように、画素群の大きさと解像度比とが一致していない場合は（図１２のステップＳ２０４：ｎｏ）、画素群を分割して処理するものと判断して、画素群を主走査方向に２等分した後、分割して生成された各領域についての代表階調値を決定する（図１２のステップＳ２１２）。このようにして画素群を２つの領域に分割することにより、各領域の大きさは、主走査方向および副走査方向のいずれについても解像度比と一致することになる。図１３（ｂ）に示した例では、各領域内の画素はいずれも同じ階調値を有しているから、その階調値を、各領域についての代表階調値とすればよい。
【０１５２】
尚、図１３（ｂ）に示した例では、画素群を主走査方向にのみ２分割するものとして、副走査方向には分割していない。これは、図１３（ｂ）に示した例では、副走査方向には画素群の大きさと解像度比とが一致していることに対応したものである。また、主走査方向への分割数を２分割としたのは、主走査方向の画素群の大きさは４画素、解像度比は２であることから、画素群を２分割すれば、画素群の大きさと解像度比とを一致させることが可能なことに対応したものである。
【０１５３】
以上の説明から明らかなように、例えば、解像度変換処理において、主走査方向の解像度だけを２倍に変換し、副走査方向の解像度は変換しなかった場合は、画素群を主走査方向にも副走査方向にも２分割してやればよい。こうすれば、分割によって生成された各領域の大きさを、主走査方向および副走査方向のいずれの方向についても、解像度比に一致させることが可能である。
【０１５４】
上述したようにして、画素群の分類番号を決定し、画素群について１つまたは複数（本実施例では２つ）の代表群階調値を決定したら、後述する多値化用テーブルを参照することによって、代表階調値を多値化結果値に変換する（ステップＳ２０８またはステップＳ２１４）。詳細には後述するが、多値化用テーブルには、画素群の分類番号と代表階調値との組合せに対応付けて、適切な多値化結果値が予め記憶されている。従って、分類番号と代表階調値とが求まっていれば、多値化用テーブルを参照することで直ちに多値化結果値を求めることが可能である。また、画素群が分割されている場合には、代表階調値が複数（本実施例では２つ）得られていることに対応して、その画素群については複数の多値化結果値が得られることになる。
【０１５５】
以上のようにして多値化結果値を求めたら、画素群について得られた多値化結果値を記憶する（ステップＳ２１０）。画素群が分割されている場合には、各領域について得られた多値化結果値を記憶する（ステップＳ２１６）。多値化結果値を記憶するためのデータ形式については後述する。次いで、画像データの全画素について処理を終了したか否かを判断し（ステップＳ２１８）、未処理の画素が残っていれば（ステップＳ２１８：ｎｏ）、ステップＳ２００に戻って新たな画素群を生成して、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したと判断されたら（ステップＳ２１８：ｙｅｓ）、得られた多値化結果値をカラープリンタ２００に出力して（ステップＳ２２０）、図１２に示す第１実施例の多値化結果値生成処理を終了する。
【０１５６】
Ｃ−３．分類番号の決定方法  ：
ここで、上述した第１実施例の多値化結果値生成処理中で、画素群の分類番号を決定する方法について説明する。以下では、先ず初めに、画素群の分類番号を付与する考え方を説明した後、分類番号を付与する具体的な方法について説明する。
【０１５７】
図１４は、画素群毎の分類番号を決定するための考え方を示した説明図である。図１４（ａ）は、画像の一番左上隅の箇所において、横方向に４画素、縦方向に２画素の合計８画素をまとめることによって画素群を１つ生成した様子を概念的に示したものである。
【０１５８】
前述したように、ディザ法では画素に割り当てられた画像データの階調値と、ディザマトリックスの対応する位置に設定されている閾値とを比較して、画素毎にドット形成の有無を判断している。一方、本実施例では、隣接する所定数の画素を画素群としてまとめているから、ディザマトリックスに設定されている閾値についても、画素群に対応する所定数ずつまとめてブロックを生成することにする。図１４（ｂ）は、図７に示したディザマトリックスに設定されている閾値を、横方向に４つ、縦方向に２つずつまとめて複数のブロックを生成した様子を示している。図７に示したディザマトリックスは、横方向（主走査方向）に１２８画素分、縦方向（副走査方向）に６４画素分の合計８１９２画素分の閾値が設定されているから、これら閾値を横方向に４つ、縦方向に２つずつブロックにまとめれば、ディザマトリックスは縦横それぞれ３２個ずつ、合計１０２４個のブロックに分割されることになる。
【０１５９】
今、図１４（ｂ）に示すように、これらブロックに１番〜１０２４番までの通し番号を付しておく。そして、画像データにディザマトリックスを適用した時に、各画素群の位置に適用されるブロックの通し番号によって、画素群を分類してやる。例えば、図１４（ｃ）に示したように、画像の一番左上隅にある画素群には、図１４（ｂ）中の通し番号１番のブロックが適用されるから、この画素群は分類番号１番の画素群に分類する。
【０１６０】
以上が、画素群を分類する際の基本的な考え方である。図１２のステップＳ２０２では、このように、画像データにディザマトリックスを適用したときに、画素群に適用されるブロックの通し番号によって各画素群を分類し、対応する分類番号を決定して画素群に付与する処理を行う。
【０１６１】
次に、画素群の分類番号を決定するための具体的な方法について説明する。図１５は、画素群の分類番号を決定する方法を示した説明図である。図１５（ａ）は、画像中で生成された１つの画素群を表している。ここでは、この画素群に着目して分類番号を決定する方法について説明する。尚、以下では、分類番号を決定するために着目している画素群を、着目画素群と呼ぶことにする。
【０１６２】
今、画像の一番左上隅にある画素を原点に取って、原点からの主走査方向および副走査方向への画素数によって画素位置を表すものとする。また、画素群の位置は、画素群の左上隅にある画素の画素位置によって表すものとする。図１５（ａ）では、着目画素群の位置を示す画素に黒丸を付して表示している。この画素の画素位置が（Ｘ，Ｙ）であったとする。すると、各画素群の大きさは、主走査方向に４画素、副走査方向に２画素としているから、
Ｘ＝４ｎ＋１、  Ｙ＝２ｍ＋１
となるようなｎ、ｍ（ここで、ｎ，ｍは０以上の正整数）が存在する。換言すれば、着目画素群の左側にはｎ個の画素群が並んでおり、着目画素群の上側にはｍ個の画素群が並んでいることになる。
【０１６３】
ここで、前述したように画素群は、画像データにディザマトリックスを適用したときに、着目画素群に適用されるブロックの通し番号に基づいて分類することとしているから（図１４参照のこと）、ディザマトリックスを移動させながら画像データに適用する方法によって、同じ画素群でも異なった分類番号に分類されることになる。実際には、ディザマトリックスを移動させながら画像データに適用する方法はどのような方法でも構わないが、ここでは説明の便宜から、最も単純な方法すなわちディザマトリックスを横方向に移動させるものとして説明する。図１５（ｂ）には、ディザマトリックスを横方向に少しずつ移動させながら、繰り返し画像データに適用している様子が概念的に示されている。
【０１６４】
図１５（ｃ）は、図１５（ｂ）に示すようにディザマトリックスを繰り返して用いながら、図１５（ａ）に示した着目画素群にディザマトリックスを適用している様子を概念的に表している。このようにディザマトリックスを移動させていくと、ディザマトリックス中のいずれかのブロックが、着目画素群に適用されることになる。ここでは、着目画素群には、ディザマトリックス中でＭ行Ｎ列目のブロックが適用されたものとする。すると、図１５（ａ）に示したように着目画素群の左側にはｎ個の画素群があり、上側にはｍ個の画素群があるから、Ｎとｎ、およびＭとｍとの間には、それぞれ
Ｎ＝ｎ−ｉｎｔ（ｎ／３２）×３２＋１
Ｍ＝ｍ−ｉｎｔ（ｍ／３２）×３２＋１
の関係が成り立っている。ここで、ｉｎｔは、小数点以下を切り捨てて整数化することを表す演算子である。すなわち、ｉｎｔ（ｎ／３２）は、ｎ／３２の計算結果に対して小数点以下の数値を切り捨てることによって得られた整数値を表している。このように、着目画素群の位置が分かれば、図１５（ｄ）に表示した上述の関係式から数値ＭおよびＮを求めて、ディザマトリックス中でＭ行Ｎ列目にあるブロックのブロック番号を、その着目画素群の分類番号としてやればよい。もっとも実際には、Ｍ，Ｎの値は、図１５（ｄ）に示すような計算を実行せずとも、極めて簡便に求めることができる。以下、この点について説明する。
【０１６５】
図１６は、着目画素群の分類番号を決定する方法を具体的に示した説明図である。着目画素群の位置を（Ｘ，Ｙ）として、Ｘ，Ｙが１０ビットで表現されているものとする。図１６（ａ）は、数値Ｘを表す１０ビットの２進数データを概念的に示している。図では、各ビットを識別するために、最上位ビットから最下位ビットに向かって１番から１０番までの通し番号を付して表示している。
【０１６６】
図１５を用いて前述したように、着目画素群の左側にある画素群の個数ｎは、数値Ｘから１を減算して４で除算すれば得ることができる。ここで、４での除算は、２ビット分だけ右方向にシフトさせることで実施することができるから、数値Ｘから１を減算して、得られた２進数データを右方向に２ビット分だけビットシフトさせればよい。更に、数値Ｘは任意の値を取るのではなく、４ｎ＋１の形式で表現可能な数値しか取り得ないから、１を減算せずに、単に２進数データを右方向に２ビット分だけビットシフトさせるだけで、画素群の個数ｎを得ることができる。図１６（ｂ）は、こうして数値Ｘをビットシフトして得られた個数ｎの２進数データを概念的に表している。
【０１６７】
次いで、ｉｎｔ（ｎ／３２）を算出する。すなわち、個数ｎを３２で除算して、小数点以下の数値を切り捨てる操作を行う。３２による除算は、２進数データを右方向に５ビット分だけビットシフトさせることで実行可能であり、また、データを整数形式で扱っていれば、小数点以下の数値は自動的に切り捨てられてしまう。結局、ｉｎｔ（ｎ／３２）の２進数データは、個数ｎの２進数データを、単に右方向に５ビット分だけビットシフトさせることで得ることができる。図１６（ｃ）は、個数ｎをビットシフトして得られたｉｎｔ（ｎ／３２）の２進数データを概念的に表している。
【０１６８】
こうして得られたｉｎｔ（ｎ／３２）に３２を乗算する。３２による乗算は、２進数データを５ビット分だけ左方向にビットシフトすることで実施することができる。図１６（ｄ）は、個数ｎをビットシフトして得られたｉｎｔ（ｎ／３２）×３２の２進数データを概念的に表している。
【０１６９】
次いで、個数ｎからｉｎｔ（ｎ／３２）×３２を減算すれば、前述の数値Ｎを得ることができる。個数ｎの２進数データ（図１６（ｂ）参照）とｉｎｔ（ｎ／３２）×３２の２進数データ（図１６（ｄ）参照）とを比較すれば明らかなように、これら２進数データは、上位の５ビットは共通しており、減算する側の数値の下位５ビットは全て「０」となっている。従って、減算される側の数値（個数ｎ）の下位５ビットをそのまま抜き出せば、求める数値Ｍを得ることができる。すなわち、図１６（ｂ）に示した２進数データと、図１６（ｆ）に示すようなマスクデータとの論理積を求めるだけで、極めて簡便に数値Ｎを得ることが可能である。あるいは、図１６（ａ）に示した着目画素群の位置を示す数値Ｘの２進数データと、図１６（ｇ）のようなマスクデータとの論理積を求めることにより、４番目〜８番目のビットデータを直接抜き出すことによっても、数値Ｎを得ることができる。
【０１７０】
図１６では、着目画素群の位置を示す座標値（Ｘ，Ｙ）の数値Ｘから、ディザマトリックス中でのブロック位置を示す数値Ｎを求める場合について説明したが、全く同様にして、ブロック位置を示す数値Ｍも数値Ｙから求めることができる。結局、着目画素群の位置が分かれば、２進数データから特定のビット位置のデータを抜き出すだけで、着目画素群がディザマトリックス中で何行何列目のブロックに対応するかを知ることができ、このブロックの通し番号によって、着目画素群の分類番号を迅速に決定することが可能なのである。
【０１７１】
Ｃ−４．多値化用テーブル  ：
図１２を用いて前述したように、第１実施例の多値化結果値生成処理のステップＳ２０６あるいはステップＳ２１４では、こうして得られた画素群の分類番号と代表階調値とから、多値化用テーブルを参照することによって代表階調値を多値化する。以下では、代表階調値を多値化するために参照される多値化用テーブルについて説明する。
【０１７２】
図１７は、画素群の分類番号と代表階調値とから多値化結果値を取得するために参照される第１実施例の多値化用テーブルを概念的に示した説明図である。図示されているように、第１実施例の多値化用テーブルには、画素群の分類番号と代表階調値との組合せに対応付けて、適切な多値化結果値が予め記憶されている。図１４を用いて前述したように、ここでは画素群は分類番号１番〜１０２４番のいずれかに分類される。また、画像データを１バイトデータとすれば、代表階調値は０〜２５５のいずれかの階調値を取り得るから、分類番号と代表階調値との組合せは、１０２４×２５６＝２６２１４４の組合せが存在する。多値化用テーブルには、この全ての組合せに対して多値化結果値が設定されている。尚、本実施例では、多値化結果値は、分類番号および代表階調値をそれぞれパラメータとするテーブルに記憶されているものとしているが、分類番号と代表階調値とが決まれば、対応する多値化結果値が１つ決定されるようなものであれば、必ずしもテーブルの形態で多値化結果値を記憶しておく必要はない。
【０１７３】
図１８は、画素群の分類番号と代表階調値との組合せに応じて、適切な多値化結果値を決定する様子を概念的に示した説明図である。一例として、画素群の分類番号が１番であるとする。分類番号１番の画素群には、ディザマトリックス中で通し番号１番のブロックが適用される。図１８（ａ）には、通し番号１番のブロックに設定されている閾値が示されている。
【０１７４】
今、代表群階調値が「０」であるとする。この場合は、画素群中の全画素が階調値０の画像データを有するものとする。そして、各画素の階調値（すなわち「０」）と図１８（ａ）に示した閾値とを比較して、階調値の方が大きい（若しくは同じ）画素については、ドットを形成するものと判断する。画素群の全画素についてこうした判断を行った後、ドットの個数を数えて、得られた個数を多値化結果値とする。図１８（ａ）に示したいずれの閾値も、階調値０よりは大きいから、ドットを形成すると判断される画素は存在しない。そこで、分類番号が１番で代表階調値が「０」の組合せについては、多値化結果値０を設定する。図１８（ｂ）は、このようにして、代表群階調値０に対する多値化結果値として「０」が決定される様子を概念的に表したものである。
【０１７５】
図１８（ｃ）は、分類番号１番、代表階調値１に対する多値化結果値を決定する様子を概念的に示している。この場合は、画素群内の全画素が階調値１の画像データを有するものとして、各画素の階調値を図１８（ａ）に示した閾値と比較する。その結果、画素群内で左上隅にある画素では、画像データの階調値と閾値とが等しくなってドットを形成すると判断され、他の画素についてはドットを形成しないと判断される。図１８（ｃ）に表示された斜線の付された丸印は、その画素にドットを形成すると判断されたことを表している。この結果、分類番号が１番で代表階調値が「１」の組合せについては、多値化結果値１が設定される。
【０１７６】
こうした操作を、０〜２５５までの全ての代表階調値について行うことにより、多値化結果値を決定していく。例えば、代表階調値が２の場合は、図１８（ｄ）に示したように、多値化結果値は「１」となり、代表階調値が「１００」の場合は、図１８（ｅ）に示すように多値化結果値は「３」となる。図１８（ｆ）および図１８（ｇ）には、代表階調値が「２００」の場合および代表階調値が「２５５」の場合に、それぞれの多値化結果値タを決定する様子が概念的に示されている。図１７に示した多値化用テーブルの中で、分類番号１に該当する行（表中に示された横方向の欄）の部分に、それぞれの代表階調値に対応付けて設定されている多値化結果値は、このようにして決定された値である。こうした操作を、１番〜１０２４番までの全ての分類番号について行えば、最終的に、全ての分類番号と全ての代表階調値とのあらゆる組合せに対して、多値化結果値を決定することができる。図１７に示した多値化用テーブルには、分類番号と代表階調値との組合せに応じて、対応する多値化結果値が予め設定されている。
【０１７７】
Ｃ−５．多値化結果値のデータ形式  ：
図１２を用いて前述したように、第１実施例の多値化結果値生成処理のステップＳ２１０あるいはステップＳ２１６では、得られた多値化結果値を記憶しておき、ステップＳ２２０では、記憶しておいた多値化結果値をカラープリンタ２００に向かって出力する。画素群を分割することなく処理する場合は、多値化結果値は画素群毎に１つずつ出力され、画素群を分割して処理する場合は、画素群毎に複数（本実施例では２つずつ）出力されることになる。ここで、図１７に示したように、多値化結果値を得るために参照する多値化用テーブルは、画素群が分割されていない場合でも分割された場合でも同じ多値化用テーブルを参照しており、従って、画素群の分割有無によらず、同じような多値化結果値が得られることになる。そこで、多値化結果値が一体の画素群について得られたものか、分割された画素群の各領域について得られたものかを区別可能とするために、図１２のステップＳ２１０あるいはステップＳ２１６では、得られた多値化結果値を次のようなデータ形式で記憶している。
【０１７８】
図１９は、多値化結果値を記憶するためのデータ形式の一例を示した説明図である。図示した例では、多値化結果値の先頭に、画素群が分割して処理されているか否かを示すビットを付加した状態で、多値化結果値を記憶する。例えば、画素群を分割せずに処理する場合は、図１９（ａ）に示すように、多値化結果値の先頭に、値「０」の１ビットのデータを付加しておく。ここでは画素群は８つの画素から構成されており、多値化結果値は画素群内に形成されるドットの個数を表すものとしているから、前述したように１つの多値化結果値は４ビットあれば足りる。従って、画素群を分割せずに処理する場合は、先頭の１ビットを加えた合計５ビットのデータとして多値化結果値が記憶されることになる。
【０１７９】
また、画素群を分割して処理する場合は、図１９（ｂ）に示すように、値「１」の１ビットのデータに続けて、各領域の多値化結果値を順番に記憶していく。本実施例では、画素群の分割態様は、左右２つの領域に分割する態様のみとしているから、先頭のビットが「１」であれば、左右の領域に対応した４ビットの多値化結果値が２つ続くことになる。従って、画素群を分割して処理する場合は、合計９ビットのデータとして多値化結果値が記憶されることになる。尚、画素群の分割態様としては、必ずしも２つの領域に分割する態様に限られるものではなく、より多くの領域に分割することも可能である。例えば画素群を４つの領域に分割して処理する場合は、分割したことを示す１ビットのデータに続いて、それぞれの領域の多値化結果値を示す４ビットのデータが４つ続くことになり、合計すると１７ビットのデータとして多値化結果値が記憶されることになる。
【０１８０】
図２０は、多値化結果値を記憶するデータ形式の他の一例を示した説明図である。図示されているように、画素群を分割して処理する場合にだけ、分割したことを示すデータとともに多値化結果値を記憶することとしても良い。すなわち、画素群を分割することなくそのまま処理する場合は、図２０（ａ）に示すように、多値化結果値だけをそのまま記憶する。一方、画素群を分割して処理する場合には、図２０（ｂ）に示すように、分割したことを表す特別なデータに続けて、各領域の多値化結果値を記憶しても良い。分割したことを表す特別なデータ（以下では、この様なデータをＥＳＣコードと呼ぶことにする）としては、多値化結果値と区別することが可能であればどのようなデータを用いることもできる。例えば本実施例では、多値化結果値は４ビットデータであり１６通りの状態を表現することができるが、多値化結果値は実際には９通りの状態しか取り得えないから、５通りの状態が使われずに余っている計算になる。そこで、使われていない状態の１つを選択して、画素群が分割されていることを表すＥＳＣコードとして使用することができる。図２０に示した例では、４ビット全てが「１」となっているデータ（１０進数表示では、「１５」）をＥＳＣコードとして使用している。
【０１８１】
尚、以上の説明では、個々の画素群について、画素群が分割されているか否かを表示することが可能となっている。しかし、１つの画像中で印刷解像度が切り換わることはないと考えれば、画素群が分割して処理されているか否かを示すデータを、１つの画像についての多値化結果値を供給する前に予め供給しておくこととしても良い。こうすれば、画素群毎に、その画素群が分割して処理されているか否かを表示する必要がないので、多値化結果値を迅速に供給することが可能となる。
【０１８２】
Ｃ−６．第１実施例のドット形成有無決定処理  ：
次に、前述した第１実施例の画像印刷処理において、画素群内の各画素についてのドット形成の有無を、多値化結果値に基づいて決定する処理（図５のステップＳ１０８）について説明する。図２１は、第１実施例のドット形成有無決定処理の流れを示すフローチャートである。かかる処理は、カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵによって実行される処理である。以下では、フローチャートに従って、画素群内の各画素についてのドット形成の有無を、多値化結果値に基づいて決定する処理について説明する。
【０１８３】
ドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を１つ選択し（ステップＳ３００）、その画素群の多値化結果値を取得する（ステップＳ３０２）。前述した多値化結果値生成処理において画素群を分割して処理した場合は複数の多値化結果値が生成されているから、ステップS３０２では、１つの画素群あたり複数の多値化結果値を取得する。
【０１８４】
次いで、選択した画素群に対応する順序値マトリックスを読み込む処理を行う（ステップＳ３０４）。順序値マトリックスとは、画素群内の各画素について、ドットが形成される順番を設定したマトリックスである。図１０を用いて前述したように、ディザマトリックスの各画素に設定されている閾値は、画素群内で各画素にドットが形成される順番を表していると考えることができるから、ディザマトリックスに基づいて、画素群に対応する順序値マトリックスを生成することができる。
【０１８５】
図２２は、ディザマトリックスに基づいて順序値マトリックスを生成している様子を示した説明図である。順序値マトリックスの生成に際しては、先ず、ディザマトリックスを画素群と同じ大きさに分割する。図２２（ａ）は、図７に示したディザマトリックスを分割した様子を概念的に表している。図７に示したディザマトリックスは、主走査方向に１２８画素分、副走査方向に６４画素分の閾値が設定されており、また画素群の大きさは主走査方向に４画素、副走査方向に２画素としているから、ディザマトリックスは１０２４個のブロックに分割されることになる。そして、画素群に分類番号を付与したときと同様に、これらブロックに１番から１０２４番までの通し番号を付けておく。
【０１８６】
図２２（ｂ）の左半分には、通し番号１番のブロックに設定されている閾値を示している。前述したように、ディザマトリックスに設定されている閾値が小さい画素ほどドットが形成され易くなるから、図２２（ｂ）に示したブロックでは、閾値「１」が設定されている画素が最もドットが形成され易く、閾値「４２」が設定されている画素が２番目にドットが形成され易い。３番目にドットが形成され易い画素は閾値「５８」が設定されている画素となる。このようにして、ブロック内の各画素に設定されている閾値に基づいてドットが形成される順番を決定することができ、順序値マトリックスを生成することができる。同様にして、通し番号２番のブロックについても、順序値マトリックスを生成することができる。図２２（ｃ）には、通し番号２番のブロックから生成された順序値マトリックスが示されている。こうして、通し番号１番から１０２４番までの全ブロックについて順序値マトリックスを生成して記憶しておく。カラープリンタ２００のメモリには、このような順序値マトリックスが記憶されている。そして、図２１のステップＳ３０４では、処理対象として選択した画素群が分類番号１番の画素群である場合には、通し番号１番のブロックから生成した順序値マトリックスを読み込んでやり、分類番号２番の画素群であれば、通し番号２番のブロックから生成された順序値マトリックスを読み込む処理を行う。
【０１８７】
このようにして、選択した画素群の多値化結果値と順序値マトリックスとを読み込んだら、今度は、画素群に含まれる各画素の中から対象とする画素を１つずつ選択しながら、多値化結果値と順序値マトリックスとに基づいてドット形成の有無を決定していく（ステップＳ３０６、Ｓ３０８、Ｓ３１０）。以下では、図２３を参照しながら、画素毎にドット形成の有無を決定する様子について説明する。
【０１８８】
図２３は、多値化結果値と順序値マトリックスとに基づいて、画素群内の各画素についてドット形成の有無を決定する様子を概念的に示した説明図である。図２３（ａ）は、選択した画素群について読み込まれた多値化結果値を示している。ここでは、画素群が２つの領域に分割されて処理されており、左の領域については多値化結果値３が、右の領域については多値化結果値６が得られたものとしている。図２３（ｂ）は、選択した画素群に対応して読み込まれた順序値マトリックスを示している。
【０１８９】
ドット形成の有無を決定するに際しては、先ず初めに、画素群の中から対象とする画素を１つ選択する（図２１のステップＳ３０６）。ここでは、画素群内の左上隅にある画素を選択したものとする。次いで、順序値マトリックスを参照することにより、対象とする画素の順序値、すなわち画素群内でドットが形成される順番を取得する（ステップＳ３１０）。図２３（ｂ）に示した順序値マトリックスを参照すれば、画素群内で左上隅にある画素の順序値は「１」であることが分かる。次に、この画素に対応する多値化結果値を選択する（図２１のステップＳ３１０）。図２３（ａ）に示した例では、画素群が分割して処理されており、左右２つの領域にそれぞれ１つずつ多値化結果値が読み込まれているが、対象とする画素は左上隅の画素であるから、左側の領域についての多値化結果値「３」を選択する。もちろん、前述した多値化結果値生成処理において、画素群を分割することなく処理されている場合は、多値化結果値は１つだけしか読み込まれていないので、この結果値を選択すればよい。
【０１９０】
こうして、対象とする画素の順序値および多値化結果値が得られたら、変換テーブルを参照することによって、ドット形成の有無を決定する（図２１のステップＳ３１２）。図２４は、対象画素についてのドット形成の有無を決定するために参照される変換テーブルを概念的に示した説明図である。ここでは、画素群は８つの画素から構成されているから、順序値は１〜８までの値を取り、個数データは０〜８までの値を取るとしているから、変換テーブルには、これらを組合せた７２通りの組合せに対応付けて、ドット形成の有無を示す値が設定されている。図２４に示した例では、ドットを形成する組合せに「１」が、ドットを形成しない組合せには「０」が設定されている。
【０１９１】
画素群の左上隅の画素については、順序値は「１」であり、多値化結果値は「３」であるから、変換テーブルの該当する箇所にはドット形成することを意味する値「１」が設定されているから、この画素についてはドットを形成すると判断することができる。こうして、１つの画素についてドット形成の有無を決定したら、画素群内の全画素について決定したか否かを判断し（ステップＳ３１４）、未だ決定していない画素が残っている場合は（ステップＳ３１４：ｎｏ）、ステップＳ３０６に戻って新たな画素を１つ選択した後、選択した画素について同様の操作を行うことによりドット形成の有無を決定する（ステップＳ３０８、Ｓ３１０、Ｓ３１２）。
【０１９２】
図２３（ａ）に示した画素群は、左側の領域についての多値化結果値「３」と、右側の領域についての多値化結果値「６」とが読み込まれている。また、図２３（ｂ）の順序値マトリックスに示されているように、この画素群の左側の領域には、「１」、「４」、「６」、「８」の４つの順序値が設定されている。従って、画素群の左側にある各画素については、図２４に示した変換テーブルの中から、破線の丸印を付した箇所に設定されている値、すなわち、多値化結果値「３」と順序値「１」の組合せ、または多値化結果値「３」と順序値「４」の組合せ、多値化結果値「３」と順序値「６」、多値化結果値「３」と順序値「８」のそれぞれの組合せに設定されている値を読み出すことにより、ドット形成の有無を決定することができる。同様に、画素群の右側の領域については、多値化結果値は「６」であり、順序値は「１」、「４」、「６」、「８」の４つの値が設定されている。従って、画素群の右側にある各画素については、図２４に示した変換テーブルの中から、破線の四角を付した箇所に設定されている値を読み出すことにより、ドット形成の有無を決定することができる。
【０１９３】
このようにして、選択した画素群に含まれる全画素についてドット形成の有無を決定したと判断したら（図２１のステップＳ３１４：ｙｅｓ）、今度は、全画素群について、上述した操作を行ったか否かを判断する（ステップＳ３１６）。そして、未処理の画素群が残っている場合は（ステップＳ３１６：ｎｏ）、ステップＳ３００に戻って新たな画素群を１つ選択して、上述した一連の操作を行う。こうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら（ステップＳ３１６：ｙｅｓ）、図２１に示した第１実施例のドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【０１９４】
以上、第１実施例の画像印刷処理中で行われる多値化結果値生成処理（図５のステップＳ１０６）、およびドット形成有無決定処理（図５のステップＳ１０８）の内容について詳しく説明した。上述した多値化結果値生成処理では、所定数の画素をまとめて画素群を生成し、その画素群について分類番号と代表階調値を決定した後、多値化結果値を生成する。上述したように、画素群の分類番号および代表階調値は容易に求めることができ、多値化用テーブルを参照すれば、極めて容易に、代表階調値から多値化結果値を得ることができる。こうして得られた多値化結果値は、画素毎にドット形成の有無を表すデータに比べて、データ量が遙かに小さいため、コンピュータ１００からカラープリンタ２００に向かって極めて迅速にデータを出力することができる。
【０１９５】
また、上述したドット形成有無決定処理では、コンピュータ１００から迅速に供給された多値化結果値を受け取ると、順序値マトリックスを参照して画素群内の各画素についての順序値を取得する。次いで、多値化結果値と順序値とに基づいて変換テーブルを参照することにより、各画素についてのドット形成の有無を決定する。このように、順序値マトリックスおよび変換テーブルを参照しながら決定すれば、画素群内の各画素についてのドット形成有無を迅速に決定することが可能である。
【０１９６】
更に、多値化結果値は多値化用テーブルを参照することで生成可能なことから、比較的単純な処理で生成することができる。同様に、各画素についてのドット形成の有無も、順序値マトリックスや変換テーブルを参照することで決定可能なことから、比較的単純に決定することができる。このため、いずれの処理についても、コンピュータ１００のような高いデータ処理能力を備えていない機器を用いた場合でも、十分に実用的な速度で処理することが可能である。
【０１９７】
加えて、上述したように多値化結果値生成処理およびドット形成有無決定処理では、画素群を複数の領域に分割して処理することも可能となっている。従って、解像度変換前後での解像度比に基づいて、画素群を分割して処理するか否かを判断してやれば、たとえ、画素群の大きさが大きすぎた場合でも、より適切な大きさに分割して処理することができる。もちろん、画素群を分割するのではなく、画素群が適切な大きさとなるように適宜変更することも可能である。しかし、画素群の大きさが変わると、参照するべき多値化用テーブルや順序値も変わるため、多数のテーブルや順序値を用意しておく必要がある。これに対して、画素群を分割して処理するのであれば画素群の大きさ自体は変わっておらず、多数のテーブルや順序値を用意しておく必要がない。従って、実質的な処理単位を適切に変更可能でありながら、簡素な処理内容とすることが可能となる。
【０１９８】
Ｃ−７．第１実施例の変形例  ：
以上に説明した第１実施例では、多値化結果値を受け取ると、画素群の分類番号と多値化結果値とから、一旦、各画素についての順序値を求め、次いで、得られた順序値と多値化結果値とを用いて各画素についてのドット形成有無を決定した。これに対して、後述する復号用テーブルを参照することにより、画素群の分類番号および多値化結果値から、直ちに各画素についてのドット形成有無を決定することも可能である。以下では、こうした第１実施例の変形例について説明する。
【０１９９】
図２５は、第１実施例の変形例において行われるドット形成有無決定処理の流れを示すフローチャートである。かかる処理も、前述した第１実施例のドット形成有無決定処理と同様に、カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵによって実行される処理である。以下では、フローチャートに従って説明する。
【０２００】
第１実施例の変形例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を１つ選択し（ステップＳ３５０）、その画素群の分類番号を取得する（ステップＳ３５２）。画素群の分類番号は前述した第１実施例の多値化結果値生成処理と同様にして、画像中での画素群の位置から迅速に取得することができる。
【０２０１】
図２６は、画素群の分類番号を決定する方法を示した説明図である。今、ドット形成の有無を決定する対象としている画素群が、図２６（ａ）に示すように、画像の一番左上隅を基準として主走査方向にｉ個目の画素群、副走査方向にｊ個目の画素群の位置にあるとする。また、このような画素群の位置を、座標値（ｉ，ｊ）によって表すものとする。また、ディザマトリックスの大きさは、通常は、画像のようには大きくはないので、図１５（ｂ）を用いて前述したように、ディザマトリックスを主走査方向に移動させながら、繰り返して使用するものとする。
【０２０２】
１つのディザマトリックスには主走査方向・副走査方向にそれぞれ３２個ずつのブロックが含まれるとしているから（図１４（ｂ）参照）、ディザマトリックス中で、対象の画素群がある位置をＩ行Ｊ列とすれば、Ｉ、Ｊはそれぞれ次式で求めることができる。
Ｉ＝ｉ−ｉｎｔ（ｉ／３２）×３２
Ｊ＝ｊ−ｉｎｔ（ｊ／３２）×３２
ここで、ｉｎｔは、小数点以下を切り捨てて整数化することを表す前述した演算子である。従って、画素群の座標値（ｉ，ｊ）に上式を適用してＩ，Ｊを求めることで、その画素群がディザマトリックス中でＩ行Ｊ列にあることが分かる。これより、分類番号は、
Ｉ＋（Ｊ−１）×３２  …（１）
によって求めることができる。
【０２０３】
また、画素群のディザマトリックス中での位置を表す値Ｉ，Ｊは、上述したような計算を実行せずとも、ｉ，ｊの２進数表示から所定ビットのデータを抜き出すだけで、極めて簡便に求めることができる。図２７は、画素群の座標値（ｉ，ｊ）から、画素群のディザマトリックス中での位置を求める方法を具体的に示した説明図である。図２７（ａ）は、数値ｉを表す１０ビットの２進数表示したデータを概念的に示している。尚、図２７（ａ）では、各ビットを識別するために、最上位ビットから最下位ビットに向かって１番から１０番までの通し番号を付して表示している。
【０２０４】
画素群の位置を示す値Ｉを求めるに際しては、先ず初めに、ｉの２進数データを右方向に５ビット分だけビットシフトさせることにより、ｉｎｔ（ｉ／３２）を算出する（図２７（ｂ）参照）。次いで、ｉｎｔ（ｉ／３２）の２進数データを左方向に５ビット分だけビットシフトさせることで、ｉｎｔ（ｉ／３２）×３２を算出する（図２７（ｃ）参照）。最後に、数値ｉから、ｉｎｔ（ｉ／３２）×３２を減算すれば、目的とする数値Ｉを得ることができる。この操作は、結局は、数値ｉの２進数データから下位の５ビットのみを抜き出していることに他ならないから、極めて簡便に数値Ｉを得ることが可能である。同様にして、数値ｊの２進数データから下位の５ビットのみを抜き出すことで、極めて簡便に数値Ｊを得ることが可能である。こうして数値ＩおよびＪが求まれば、上述の（１）式を用いて分類番号を算出することができる。図２５のステップＳ３０２では、以上のようにして、処理対象として選択した画素群の分類番号を取得する。
【０２０５】
次いで、選択した画素群について得られた多値化結果値を取得した後（ステップＳ３５４）、画素群が分割されて処理されたか否かを、読み込んだ多値化結果値に基づいて判断する（ステップＳ３５６）。多値化結果値が、図１９を用いて前述したように、先頭に画素群の分割の有無を示すビットが付加された形式となっている場合は、先頭ビットが「０」であれば画素群は分割されずに処理されており、先頭ビットが「１」であれば画素群は分割された状態で処理されていると判断することができる。これに対して、画素群の分割の有無を図２０に示したようにＥＳＣコードを用いて表している場合は、読み込んだ多値化結果値の先頭のデータがＥＳＣコードであれば画素群が分割された状態で処理されており、そうでなければ分割されずに処理されたものと判断することができる。また、ここでは画素群を分割するパターンは、画素群を左右２つの領域に等分するパターンのみであるものとしているから、分割された画素群については２つの多値化結果値を読み込んでやればよい。
【０２０６】
尚、前述した第１実施例の多値化結果値生成処理においても説明したように、画素群の分割の態様は、左右２つに分割するパターンに限られるものではない。また、画素群が分割されているか否かを、画素群毎に表示するのではなく、画像毎に予め表示しておくこととしても良い。
【０２０７】
画素群が分割されずに処理されている場合は（ステップＳ３５６：ｎｏ）、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照することにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ３５８）。復号用テーブルには、画素群内の各画素についてドット形成の有無を表すデータが記憶されており、かかるデータを読み出すことによって、ドット形成有無を迅速に決定することが可能である。
【０２０８】
図２８は、第１実施例の変形例のドット形成有無決定処理で参照される復号用テーブルを概念的に示した説明図である。図示されているように、第１実施例の変形例で参照する復号用テーブルには、画素群の分類番号と多値化結果値との組合せに対応づけて、その画素群内の各画素についてのドット形成の有無を表すデータが設定されている。尚、以下では、このような各画素についてのドット形成の有無を表したデータを、ドットデータＤＤと呼ぶことがあるものとする。また、ドットデータＤＤ（ｉ，ｊ）とは、分類番号がｉ番で、多値化結果値が「ｊ」の画素群についてのドットデータを表すものとする。
【０２０９】
図２９は、第１実施例の復号用テーブルに設定されているドットデータＤＤのデータ構造を示す説明図である。図２９（ａ）に示すように、ドットデータＤＤは８ビットのデータであり、各ビットが画素群内にある８つの画素に予め対応付けられている。図示した例では、ドットデータＤＤの先頭のビット（図中で１番と符番したビット）は画素群の左上隅の画素に対応づけられており、先頭から２番目のビット（図中で２番と符番したビット）は画素群内の上段左から２番目の画素に対応づけられている。残りのビットも、それぞれ同様にして、画素群内の各画素に対応づけられている。このように、本実施例においてドットデータＤＤが８ビットデータとなっているのは、画素群が８つの画素から構成されていることに対応したものである。従って、画素群内の画素数がＮ個となれば、ドットデータＤＤもＮビットのデータとなる。
【０２１０】
また、ドットデータＤＤ中で「１」が設定されているビットは、対応する画素にドットが形成されることを表しており、「０」が設定されているビットは対応する画素にドットが形成されないことを表している。図２９（ａ）に示したドットデータＤＤは、先頭のビットと７番目のビットに「１」が設定されており、他のビットには「０」が設定されているから、図２９（ｂ）に示したように、画素群の上段左端の画素と、下段の左から３番目の画素にドットが形成されることを表している。図２５のステップＳ３５８では、図２８に示した復号用テーブルを参照してこのようなドットデータＤＤを読み出すことにより、処理対象としている画素群について、各画素のドット形成有無を決定する処理を行う。尚、図２８に示すような復号用テーブルを設定する方法については後述する。
【０２１１】
一方、画素群が分割して処理されている場合は（ステップＳ３５６：ｙｅｓ）、画素群を分割して生成された各領域についての多値化結果値が得られていることになる。本実施例では、画素群が分割される場合は左右２つの領域に等分されるものとしているから（図１３参照）、分割された画素群については２つの多値化結果値が得られている。そこで、複数個得られた多値化結果値の各々と画素群の分類番号とを組み合わせて、図２８に示した復号用テーブルを参照することにより、各組合せに対応するドットデータＤＤを読み出してやる（ステップＳ３６０）。すなわち、分割して処理された画素群については、ドットデータＤＤも複数個得られることになる。こうして複数個得られたドットデータＤＤから各領域のデータを抜き出すことにより、画素群内の各画素についてのドット形成の有無を決定する（ステップＳ３６２）。
【０２１２】
図３０は、複数個得られたドットデータＤＤを組み合わせることにより、画素群内の各画素についてのドット形成の有無を決定する様子を示した説明図である。ここでは、画素群の分類番号が「１」であり、また、図３０（ａ）に示すように、左側の領域の多値化結果値は「３」、右側の領域の多値化結果値は「６」であったとする。
【０２１３】
先ず、復号用テーブルを参照することにより、画素群の左側の領域から得られるドットデータを取得する。画素群の分類番号は１番であり、左側の領域の多値化結果値は「３」であるから、左側の領域については、これらの組合せに対応するドットデータＤＤ（１，３）が得られる。画素群の右側の領域についても同様にして、分類番号１番および多値化結果値６の組合せに対応するドットデータＤＤ（１，６）を得ることができる。
【０２１４】
図２９を用いて説明したように、ドットデータＤＤの各ビットは画素群内の各画素に対応づけられている。そして、ここでは、画素群を分割して処理する場合は、画素群を左右２つの領域に等分するものとしているから、左側の領域について得られたドットデータＤＤ（１，３）のうちで、実際に用いられるデータは先頭のビットと、先頭から２番目、５番目、６番目のビットだけとある。何故なら、これらビットだけが、左側の領域の画素に対応づけられているからである。図３０（ｂ）では、左側の領域について得られたドットデータＤＤの内で、実際に用いられるビットには斜線を付して表示されている。同様に、右側の領域について得られたドットデータＤＤ（１，６）についても、実際に用いられるデータは、先頭から３番目、４番目、７番目、８番目のビットのデータとなる。図３０（ｃ）では、右側の領域について得られたドットデータＤＤの中で、実際に用いられるビットには斜線を付して表示されている。
【０２１５】
このようにして左右それぞれの領域について得られたドットデータから、実際に使用される部分のデータを抜き出して組み合わせることにより、対象としている画素群についての最終的なドットデータＤＤを得ることができる。図３０（ｄ）は、このようにして合成された最終的なドットデータを概念的に示している。また図３０（ｅ）は、最終的に得られたドットデータＤＤに従って、画素群内の各画素にドットが形成された様子を表している。
【０２１６】
尚、以上の説明では、ドットデータＤＤの前半の４ビットは、画素群内の上段の４つの画素（すなわち、図２９（ｂ）で１番〜４番と符番した画素）に対応づけられており、ドットデータＤＤの後半の４ビットは、画素群内の下段の４つの画素（図２９（ｂ）で５番〜８番と符番した画素）に対応づけられているものとした。しかし、ここでは、画素群が分割される場合には左右２つの領域に分割されるものとしているから、このような分割態様を考慮して、ドットデータＤＤの各ビットと画素とを対応づけることとしてもよい。
【０２１７】
図３１は、画素群の分割態様を考慮して、ドットデータの各ビットと画素群内の各画素とを対応付けた様子を例示した説明図である。図３１（ａ）は、画素群内の各画素に１番から８番までの番号が符番されている様子を示している。また、図３１（ｂ）は、１番から８番までの各画素が、ドットデータＤＤの各ビットに対応付けられている様子を示している。図３１に示した例では、ドットデータＤＤの前半の４ビットが画素群の左側の領域にある４つの画素に対応付けられており、ドットデータＤＤの後半の４ビットが画素群の右側の領域にある４つの画素に対応づけられている。こうすれば、復号用テーブルを参照する際に、ドットデータＤＤ（１，３）およびドットデータＤＤ（１，６）を読み出すのではなく、それぞれのドットデータの前半部分および後半部分のみを読み出して組み合わせるだけで、最終的なドットデータを得ることができる。図３１（ｂ）は、このようにして最終的なドットデータが合成された様子を概念的に表している。
【０２１８】
図２５のステップＳ３６２においては、以上に説明したようにして、各領域について得られたドットデータを組み合わせることにより、画素群内の各画素についてのドット形成の有無を決定する処理を行う。
【０２１９】
このようにして、選択した画素群の各画素についてドット形成の有無を決定したら、画像に含まれる全画素群について、ドット形成の有無を決定したか否かを判断する（ステップＳ３６４）。そして、未処理の画素群が残っている場合は（ステップＳ３６４：ｎｏ）、ステップＳ３００に戻って新たな画素群を１つ選択して、上述した一連の操作を行う。こうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら（ステップＳ３６４：ｙｅｓ）、図２５に示した第１実施例の変形例のドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【０２２０】
ここで、図２８に示した復号用テーブルを設定する方法について説明する。復号用テーブルは、図１０を用いて前述した原理、すなわち画素群内に形成されるドットの個数と、ディザマトリックス中の画素群に対応する位置に設定されている閾値とを用いて、ドットが形成される画素を決定する原理に基づいて設定されている。
【０２２１】
図３２は、第１実施例の変形例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。ここでは画素群の多値化結果値が「３」であったとして、図３２の左半分には、分類番号１番の画素群についてのドットデータＤＤ（１，３）を決定する様子が示されており、図３２の右半分には、分類番号２番の画素群についてのドットデータＤＤ（２，３）を決定する様子が示されている。図１４を用いて前述したように、分類番号１番の画素群にはディザマトリックス中の通し番号１番のブロックが対応し、分類番号２番の画素群には通し番号２番のブロックが対応する。図３２の上から２段目には、ディザマトリックス中の通し番号１番のブロックに設定されている閾値、および通し番号２番のブロックに設定されている閾値が示されている。
【０２２２】
図１０を用いて前述した様に、ディザマトリックスに設定されている閾値はドットの形成され易さを表していると考えることができ、閾値の小さな画素ほどドットが形成され易くなっている。すなわち、通し番号１番のブロックについては、閾値１が設定されている画素が最もドットが形成され易く、閾値４２が設定されている画素、閾値５８が設定されている画素、閾値１０９が設定されている画素の順番で、ドットが形成され易くなっている。また、多値化結果値は画素群に形成されるドットの個数を表しているものとしている。従って、分類番号１番の画素群については、通し番号１番のブロック中で閾値１が設定されている画素と、閾値４２が設定されている画素、閾値５８が設定されている画素にドットが形成されると判断することができる。分類番号２番の画素群についても同様に、通し番号２番のブロック中で閾値５が設定されている画素と、閾値４８が設定されている画素、閾値７０が設定されている画素にドットが形成されると判断することができる。図３２の上から３段目は、この様にして画素群内の各画素についてドット形成の有無を判断した結果を表しており、ドットが形成される画素には斜線を付して示されている。
【０２２３】
このようにして画素群内の各画素についてドット形成の有無を決定したら、図２９を用いて説明したデータ形式で表現して、復号用テーブルの該当する箇所に書き込めばよい。例えば、図３２の左側に示した分類番号１番の画素群については、１番、３番、８番と符番した画素にドットが形成されているから、ドットデータＤＤは、先頭から１番目、３番目、８番目のビットが「１」で、他のビットには「０」が設定されたデータとなる。このデータを、復号用テーブルのドットデータＤＤ（１，３）として記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶すれば、図２８に示した復号用テーブルを設定することができる。上述した第１実施例のドット形成有無決定処理では、このようにして設定された復号用テーブルを参照しながら、画素群内の各画素についてのドット形成有無を決定しているのである。
【０２２４】
以上に説明した第１実施例の変形例におけるドット形成有無決定処理では、コンピュータ１００から供給された多値化結果値を受け取ると、復号用テーブルを参照することにより、各画素についてのドット形成の有無を迅速に決定することができる。このため、画像を迅速に出力することが可能となる。更に、各画素についてのドット形成有無を決定する処理の内容は、復号用テーブルを参照するという比較的単純な処理となり、迅速に実行することができる。このため、コンピュータ１００のような高いデータ処理能力を備えていない機器を用いた場合でも、十分に実用的な速度で処理することが可能である。
【０２２５】
加えて、上述した変形例のドット形成有無決定処理においても、画素群を分割した状態で多値化結果値が生成されている場合には、これに合わせて画素群内の各領域についてドット形成有無を決定することが可能である。このような場合でも、ドット形成有無を決定するために参照する復号用テーブルは、同じテーブルを使用することができる。このため、複数の復号用テーブルを記憶しておく必要が無く、大きなメモリ容量を有しない機器においても実行することが可能である。更に、参照するテーブルを切り換える処理も不要となるので簡素な処理とすることができ、高い処理能力を有さない機器においても実行することが可能となる。
【０２２６】
Ｄ．第２実施例  ：
以上に説明した第１実施例では、カラープリンタ２００で形成可能なドットは１種類であるものとして説明した。しかし、今日では、画質を向上させることを目的として、大きさの異なるドットや、インク濃度の異なるドットなど、多種のドットを形成可能なプリンタ（いわゆる多値ドットプリンタ）が広く使用されている。本願の発明は、こうした多値ドットプリンタに適用した場合にも大きな効果を得ることができる。以下では、第２実施例として、本願発明を多値ドットプリンタに適用した場合について説明する。
【０２２７】
Ｄ−１．第２実施例の画像印刷処理の概要  ：
第２実施例の画像印刷処理は、フローチャートについては、図５に示した第１実施例の画像印刷処理と同様である。以下では、図５のフローチャートを流用しながら、第２実施例の画像印刷処理の概要について簡単に説明する。
【０２２８】
第２実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ１００で画像データを読み込んだ後、色変換処理を行う（図５のステップＳ１００およびステップＳ１０２相当）。次いで、解像度変換処理を行って、画像データの解像度を印刷解像度に変換した後（ステップＳ１０４相当）、多値化結果値生成処理を行って画素群の代表階調値を多値化結果値に変換する（ステップＳ１０６相当）。
【０２２９】
前述したように、第１実施例では、カラープリンタ２００が形成可能なドットは１種類であるものとしており、多値化結果値は、画素群の画素群内に形成されるドット個数を表していた。これに対して第２実施例では、カラープリンタ２００は、大きさの異なる３種類のドット、すなわち大ドット、中ドット、小ドットを形成可能である。このことと対応して、第２実施例の多値化結果値は、画素群内に形成されるこれら各種ドットの個数の組合せを表すものとする。そして、第２実施例の多値化結果値生成処理では、画素群の代表階調値を、各種ドットの個数の組合せを表す多値化結果値に変換する処理を行う。また、画素群を分割して処理する場合には、分割して生成された各領域について多値化結果値を決定する。第２実施例の多値化結果値生成処理の詳細については後述する。
【０２３０】
カラープリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から供給された多値化結果値を受け取ると、ドット形成有無決定処理を開始する（図５のステップＳ１０８相当）。詳細には後述するが、第２実施例のドット形成有無決定処理では、多値化結果値を、大ドット、中ドット、小ドットの個数を示す中間的なデータに一旦変換した後、画素群内の各画素について、各種ドットの形成有無を判断する処理を行う。
【０２３１】
こうして、大中小の各種ドットについてドット形成の有無を決定したら、決定したドット形成の有無に従って、印刷媒体上にドットを形成する（図５のステップＳ１１０相当）。その結果、画像データに対応した画像が印刷されることになる。
【０２３２】
Ｄ−２．第２実施例の多値化結果値生成処理  ：
次に、上述した第２実施例の画像印刷処理において、画素群についての、あるいは画素群内の各領域についての代表階調値を多値化して多値化結果値を生成する処理について説明する。後述するように、第２実施例の多値化結果値生成処理においても、画素群の分類番号および代表階調値から多値化用テーブルを参照することにより、極めて容易に生成することができる。こうしたことが可能である理由を説明するために、先ず初めに、画素群内に形成される大中小ドットの個数を、ディザ法を用いて決定する処理について簡単に説明する。その後、かかる説明を踏まえた上で、第２実施例の多値化結果値生成処理の詳細な内容について説明する。
【０２３３】
Ｄ−２−１．ディザ法を用いた大中小ドットの形成個数の決定処理  ：
図３３は、画素群内に形成される大ドット、中ドット、小ドットの個数を、ディザ法を適用して決定する処理の流れを示すフローチャートである。尚、ディザ法を適用して大中小の各ドットの形成有無を決定する処理の詳細については、特許３２９２１０４号に開示されている。すなわち、図３３に示した処理は、特許３２９２１０４号に開示された手法を画素群単位で行うものと見ることができる。大中小ドットの個数を決定する場合も、処理を開始すると先ず初めに、互いに隣接する所定数の画素をまとめて画素群を形成する（ステップＳ４００）。ここでは、前述した実施例と同様に、主走査方向に４画素、副走査方向に２画素の合計８つの画素を画素群としてまとめるものとする。
【０２３４】
次いで、画素群の中からドット形成の有無を判断するべく、処理対象とする画素を１つ選択して（ステップＳ４０２）、選択した処理画素について、大ドット、中ドット、小ドットの形成有無を判断する（ステップＳ４０４）。大中小ドットの形成有無は次のようにして判断する。
【０２３５】
図３４は、選択した１つの画素についてハーフトーン処理を行うことにより、大ドット、中ドット、小ドットの形成有無を判断する処理の流れを示すフローチャートである。大中小ドットのハーフトーン処理を開始すると、先ず初めに処理対象とする画素についての画像データを、大ドット、中ドット、小ドットの各ドットについての密度データに変換する（ステップＳ４５０）。ここで、密度データとは、ドットをどの程度の密度で形成するかを表すデータである。密度データは、大きな階調値となるほどドットが高い密度で形成されることを表している。例えば、密度データの階調値「２５５」は、ドットの形成密度が１００％、すなわち全ての画素にドットが形成されることを表しており、密度データの階調値「０」は、ドットの形成密度が０％、すなわちいずれの画素にもドットが形成されないことを表している。こうした密度データへの変換は、ドット密度変換テーブルと呼ばれる数表を参照することによって行うことができる。
【０２３６】
図３５は、画像データの階調値を大中小各ドットについての密度データに変換する際に参照されるドット密度変換テーブルを概念的に示した説明図である。図示されているように、ドット密度変換テーブルには、色変換によって得られた画像データの階調値に対して、小ドット・中ドット・大ドットの各ドットについての密度データが設定されている。このドット密度変換テーブルを参照すれば、画像データの階調値を、大ドットの密度データ、中ドットの密度データ、小ドットの密度データに迅速に変換することができる。
【０２３７】
処理対象とする画素について大中小各ドットの密度データが得られたら、先ず初めに大ドットについての形成有無を判断する（図３４のステップＳ４５２）。かかる判断は、大ドットの密度データと、処理対象としている画素の対応する位置に設定されているディザマトリックスの閾値とを比較することによって行う。そして、密度データの方が大きい場合は処理対象の画素には大ドットを形成するものと判断される。その結果、大ドットを形成することになった場合は、ステップＳ４５４において「ｙｅｓ」と判断され、ハーフトーン処理を抜けて図３３に示したドット個数決定処理に復帰する。
【０２３８】
逆に、大ドットの密度データよりも閾値の方が大きければ、ステップＳ４５２において、処理対象の画素には大ドットは形成されないと判断される。判断の結果、大ドットは形成されない場合は（ステップＳ４５４：ｎｏ）、今度は中ドットについて形成有無を判断する処理を開始する。中ドットの形成有無の判断には、大ドットの密度データと中ドットの密度データとを加算して、中ドット用の中間データを算出する（ステップＳ４５６）。そして、得られた中ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、中ドットの形成有無を判断する（ステップＳ４５８）。そして、中ドット用の中間データの方が大きい場合は処理対象の画素には中ドットを形成するものと判断される。その結果が、中ドットを形成することになった場合は、ステップＳ４６０において「ｙｅｓ」と判断されるので、ハーフトーン処理を抜けて図３３のドット個数決定処理に復帰する。
【０２３９】
逆に、中ドット用の中間データよりも閾値の方が大きかった場合は、ステップＳ４５８において、処理対象の画素には中ドットを形成しないと判断される。判断の結果、中ドットも形成されない場合は（ステップＳ４６０：ｎｏ）、今度は小ドットについて形成有無を判断する処理を開始する。小ドットの形成有無の判断には、中ドット用の中間データと小ドットの密度データとを加算して、小ドット用の中間データを算出する（ステップＳ４６２）。そして、得られた小ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、小ドットの形成有無を判断する（ステップＳ４６４）。その結果、小ドット用の中間データの方が大きい場合は処理対象の画素には小ドットを形成するものと判断し、逆に、小ドット用の中間データよりも閾値の方が大きい場合には、いずれのドットも形成されないものと判断する。以上のような処理を行えば、処理対象としている画素について、大ドット、中ドット、小ドットのいずれのドットを形成するか、若しくは、いずれのドットも形成しないかを判断することができるので、図３４に示したハーフトーン処理を抜けて図３３のドット個数決定処理に復帰する。
【０２４０】
ハーフトーン処理からドット個数決定処理に復帰すると、画素群内の全画素についてドット形成有無を決定したか否かを判断する（図３３のステップＳ４０６）。画素群内に未だ判断していない画素が残っている場合は（ステップＳ４０６：ｎｏ）、ステップＳ４０２に戻って新たな画素を１つ選択し、選択した処理画素について大中小ドットの形成有無を判断する（ステップＳ４０４）。こうした操作を画素群内の全画素について行い、全画素についてドット形成有無の判断を行ったら（ステップＳ４０６：ｙｅｓ）、画素群内に形成される大ドット、中ドット、小ドットの個数を決定する（ステップＳ４０８）。
【０２４１】
こうして、１つの画素群に形成される大中小の各ドットのドット個数を決定したら、画像の全画素について以上の処理を行ったか否かを判断する（ステップＳ４１０）。そして、未処理の画素が残っている場合は、ステップＳ４００に戻って続く一連の処理を繰り返し、画像の全画素について処理を終了したと判断されたら、図３３に示したディザ法によるドット個数決定処理を終了する。その結果、画像データは複数の画素群に分割され、各画素群に形成される大ドット、中ドット、小ドットの個数が得られることになる。図３６は、このようにして、画素群内に形成される大中小の各ドットの個数が、画素群毎に決定された様子を概念的に示した説明図である。
【０２４２】
Ｄ−２−２．第２実施例の多値化結果値生成処理の内容  ：
第２実施例の多値化結果値生成処理は、以上に説明したディザ法を用いて大中小各ドットの形成有無を判断する手法を基礎としており、画素群内の各画素が何れも代表階調値を有するものとして、代表階調値を大中小各ドットの個数を示す値に多値化する処理を行う。すなわち、第２実施例の多値化結果値は、画素群内に形成される各種ドットの個数の組合せを表している。そこで、先ず、第２実施例の多値化結果値と、画素群内に形成される各種ドットの個数の組合せとの対応関係について説明しておく。
【０２４３】
図３７は、第２実施例の多値化結果値と、画素群内に形成される各種ドットの個数の組合せとの対応関係を示した説明図である。第２実施例においては、画素群内に形成される大ドット、中ドット、小ドットの個数の組合せは、全部で１６５通り存在しており、それぞれの組合せ１つずつに多値化結果値が対応付けられている。ここで、１つに画素に形成し得るドットの種類は大ドット、中ドット、小ドットの３種類であり、画素群には８つの画素が含まれているから、１つの画素群に形成し得るドット個数の組合せは、単純に考えると３の８乗（＝６５６１）通りとなるはずである。しかし、実際には図３７に示したように１６５通りの組合せしか存在しない。これは、次のような理由によるものである。
【０２４４】
画素群内の各画素には、大ドット、中ドット、小ドットのいずれのドットも形成され得るが、１つの画素に複数のドットが形成されることはないから、ドット個数の合計が画素群内の画素数（上述した実施例では８個）を越えることはない。従って、これら大中小ドットの個数の組合せは、「大ドットを形成する」、「中ドットを形成する」、「小ドットを形成する」、「ドットを形成しない」の４つの状態の中から重複を許して８回選択するときの組合せの数に等しくなるから、
４Ｈ８  （＝４＋８−１Ｃ８）
によって求められ、１６５通りの組合せが存在していることになる。ここで、ｎＨｒは、ｎ種類の物の中から重複を許してｒ回選択したときに得られる組合せの数（重複組合せ数）を求める演算子である。また、ｎＣｒは、ｎ種類の物の中から重複を許さずにｒ回選択したときに得られる組合せの数を求める演算子である。
【０２４５】
１６５通りであれば、８ビットあれば表現することができるから、第２実施例の多値化結果値は８ビットのデータとなっている。大中小の３種類のドットを形成可能とした場合、各画素は、大中小いずれかのドットを形成するか、何れのドットも形成しないかの４つの状態を取り得るから、これらの状態を表現しようとすると画素あたり２ビットが必要となる。画素群には８つの画素があるから、画素群内の各画素がいずれの状態を取るかを表すためには１６ビット必要となる。各画素のドット形成の有無を出力する代わりに多値化結果値を出力することとすれば、データ量を半減させることができる計算となる。
【０２４６】
図３８は、第２実施例における多値化結果値生成処理の流れを示すフローチャートである。前述したように第２実施例の多値化結果値は、第１実施例の多値化結果値とは異なり各種ドットの個数を表す値となっているが、多値化結果値生成処理としては、参照する多値化用テーブルが異なる以外は、図１２に示した第１実施例の処理とほぼ同様である。以下では、図３８のフローチャートに従って説明する。
【０２４７】
第２実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成した後（ステップＳ５００）、画像中での画素群の位置に基づいて分類番号を決定する（ステップＳ５０２）。次いで、解像度変換前後での解像度比に基づいて、画素群を分割して処理するか否かを判断する（ステップＳ５０４）。説明の便宜から、ここでは第１実施例と同様に、画素群を分割して処理する場合は図１３に示した左右２つの領域に等分して処理するものとして説明するが、より多くの領域に分割して処理することも可能である。そして、画素群を分割せずに処理する場合は（ステップＳ５０４：ｎｏ）、画素群の代表階調値を決定した後（ステップＳ５０６）、多値化用テーブルを参照することにより、画素群の分類番頭および代表階調値に対応する多値化結果値を取得する。画素群の代表階調値は、前述した第１実施例と同様にして決定する。
【０２４８】
図３９は、第２実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。図示されているように、第２実施例における多値化用テーブルには、画素群の分類番号および代表階調値に対応付けて、多値化結果値が設定されている。この多値化結果値は、画素群内の全ての画素が代表階調値を有するものとして、図３３ないし図３６で説明した方法により各種ドットの形成個数を求め、得られたドット個数の組合せを図３７に示した対応関係に従って変換した値である。図３９に示した多値化用テーブルには、このようにして求めた多値化結果値が予め設定されているので、第２実施例の多値化結果値生成処理では、テーブルを参照するだけで、画素群の分類番号および代表階調値から直ちに多値化結果値を得ることが可能である。画素群を分割せずに処理する場合は、こうして得られた多値化結果値を記憶しておく（図３８のステップＳ５１０）。
【０２４９】
一方、画素群を分割して処理する場合は（ステップＳ５０４：ｙｅｓ）、画素群を分割して生成した各領域について代表階調値を決定する（ステップＳ５１２）。そして、各領域についての代表階調値を画素群の分類番号と組み合わせて多値化用テーブルを参照することにより、各領域についての多値化結果値を取得する（ステップＳ５１４）。すなわち、画素群を分割して処理する場合は、１つの画素群から、各領域についての複数の多値化結果値が得られることになる。こうして複数の多値化結果値が得られたら、先ず、画素群が分割して処理されていることを示すＥＳＣコードを記憶した後（ステップＳ５１６）、各領域について得られた多値化結果値を記憶する（ステップＳ５１８）。
【０２５０】
図４０は、第２実施例において多値化結果値とＥＳＣコードとが割り当てられている様子を示した説明図である。前述したように多値化結果値は１６５通りの値を取り得るので８ビットのデータとなり、「０」〜「１６４」の値を多値化結果値に割り当てると、「１６５」〜「２５５」の値が空きとなる。そこで、空いた値の中から任意に選んだ値（ここでは、「２５５」）をＥＳＣコードに割り当てる。画素群の分割態様が複数用意されている場合は、分類態様の種類に応じて複数の値をＥＳＣコードに割り当てておけば良い。図３８のステップＳ５１６では、画素群の分割態様に対応付けて割り当てられたＥＳＣコードを記憶する。
【０２５１】
こうして、画素群が分割して処理されていることを表すＥＳＣコードと、各領域について得られた多値化結果値を記憶したら、画像データの全画素について処理を終了したか否かを判断し（ステップＳ５２０）、未処理の画素が残っていれば（ステップＳ５２０：ｎｏ）、ステップＳ５００に戻って新たな画素群を生成して、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したと判断されたら（ステップＳ５２０：ｙｅｓ）、画素群を分割することなく処理した場合は多値化結果値のみを、画素群を分割して処理した場合はＥＳＣコードおよび多値化結果値を、カラープリンタ２００に出力して（ステップＳ５２２）、図３８に示す第２実施例の多値化結果値生成処理を終了する。
【０２５２】
Ｄ−３．第２実施例のドット形成有無決定処理  ：
次に、第２実施例のカラープリンタ２００において、多値化結果値を受け取って大中小各ドットの形成有無を決定する処理について説明する。図４１は、第２実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。また、図４２は、第２実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。これらの図に示された処理の大まかな流れは、図２１を用いて前述した第１実施例のドット形成有無決定処理とほぼ同様である。但し、第２実施例では大中小の各ドットを形成可能であることに対応して、多値化結果値を、画素群内に形成される各種ドットの個数に対応した中間データに一旦変換してから、各画素についてのドット形成有無を決定する点が大きく異なっている。以下、これらフローチャートに従って、第２実施例のドット形成有無決定処理について説明する。
【０２５３】
第２実施例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を１つ選択し（ステップＳ６００）、その画素群について供給された多値化結果値の先頭のデータを取得して（ステップＳ６０２）、取得したデータがＥＳＣコードか否かを判断する（ステップＳ６０４）。ここでは、画素群の分割態様は、左右２つの領域に等分する態様の１種類だけであるとしており、ＥＳＣコード「２５５」が割り当てられているものとしているから、ステップＳ６０４では読み込んだデータが「２５５」であるか否かを判断することになる。
【０２５４】
そして、読み込んだデータがＥＳＣコードでは無い場合は（ステップＳ６０４：ｎｏ）、画素群は分割されること無く処理されているものと判断して、読み込んだデータを多値化結果値と読み替える（ステップＳ６０６）。一方、読み込んだデータがＥＳＣコードである場合は（ステップＳ６０４：ｙｅｓ）、画素群は分割されていると判断し、ＥＳＣコードに続いて記憶されている所定個数（ここでは２つ）の多値化結果値を取得する（ステップＳ６０８）。
【０２５５】
次いで、取得した多値化結果値を、画素群内に形成される各種ドットの個数に対応した中間データに変換する（ステップＳ６１０）。かかる変換は、中間データ用の変換テーブルを参照することによって行う。図４３は、第２実施例のドット形成有無決定処理において参照される中間データ用の変換テーブルを概念的に示した説明図である。図示されているように、変換テーブルには、多値化結果値に対応付けて中間データが設定されており、それぞれの中間データは、形成すべきドットの種類を表す値が、画素群に含まれる画素の数だけ並んだデータとなっている。
【０２５６】
例えば、多値化結果値「１」について説明すると、図３７に示したように、多値化結果値「１」は、画素群に形成されるドットが小ドット１つのみである状態、換言すれば、画素群内には、小ドットが形成される画素が１つ、ドットが形成されない画素が７つ存在することを表している。そこで、多値化結果値「１」に対する中間データは、ドットを形成しないことを意味する値「０」が７つ、小ドットを形成することを意味する値「１」が１つだけ並んだデータとする。尚、中間データは、これらの値が先頭から小さい順に並んだデータとなっている。結局、多値化結果値「１」に対する中間データは「０００００００１」というデータとなる。また、多値化結果値に対応するドット個数が、例えば大ドットが２個、中ドットが１個、小ドットが３個であるとする。この場合は、ドットを形成しない画素は２つあるから、先頭の２つの値はドットを形成しないことを意味する値「０」となり、次いで小ドットを形成することを意味する値「１」が３つ続き、その後に中ドットを形成することを意味する値「２」が１つ、最後に大ドットを形成することを意味する値「３」が２つ続くことになる。結局、このような多値化結果値に対応する中間データは、「００１１１２３３」というデータとなる。また、形成可能なドットが大ドット、中ドット、小ドットの３種類である場合、中間データに含まれる各値は「０」〜「３」の４つの値しか取り得ないので、それぞれの値は２ビットあれば表現することができる。従って、画素群内に含まれる画素数を８個とすれば、中間データは１つあたり１６ビットあれば表現することが可能である。
【０２５７】
図４３に示した中間データ用の変換テーブルには、この様にして生成された中間データが、多値化結果値に対応付けて設定されている。図４１のステップＳ６１０では、このような変換テーブルを参照することによって、画素群の多値化結果値を中間データに変換する。
【０２５８】
次いで、選択した画素群に対応する順序値マトリックスを読み込む処理を行う（図４２のステップＳ６１２）。第１実施例において説明したように、順序値マトリックスには画素群内の各画素について、ドットが形成される順番を示す値（順序値）が設定されている。そして、順序値マトリックスは、画素群の分類番号毎に設定されている。
【０２５９】
このようにして、選択した画素群についての中間データと順序値マトリックスとが得られたら、画素群の中から対象画素を１画素ずつ選択しながら、ドット形成の有無を決定していく。この様子を、図４４を参照しながら説明する。
【０２６０】
図４４は、第２実施例のドット形成有無決定処理において中間データと順序値マトリックスとを用いて、ドット形成の有無を決定する様子を示した説明図である。一例として、図４４（ａ）に示すような多値化結果値、すなわち画素群が２つに分割された状態で処理されており、左の領域については多値化結果値９２が、右の領域については多値化結果値１３５が得られたものとする。次いで、これらの多値化結果値を中間データに変換する。図４４（ｂ）および図４４（ｃ）は、それぞれの領域の多値化結果値が中間データに変換された様子を示している。第２実施例のドット形成有無決定処理では、中間データと順序値マトリックスとを用いて画素群内の各画素についてのドット形成の有無を決定する。
【０２６１】
対象としている画素群の順序値マトリックスが、図４４（ｄ）のようなマトリックスであったとする。前述したように、順序値マトリックスには順序値が設定されており、順序値は画素群内の各画素について、何番目にドットが形成されるかを示している。今、画素群は左右２つに分割されているものとしているから、順序値マトリックスも左右２つに分割する。そして、左側の領域に設定された順序値は画素群の左側の中間データと組合せ、マトリックスの右側の順序値は画素群の右側の中間データと組合せて考える。
【０２６２】
例えば、画素群の中から任意の画素を１つ選択して、その画素が画素群の左上隅の画素であったとする。図４４（ｄ）の順序値マトリックスを参照することにより、その画素の順序値は１番であることが分かる。また、選択した画素は画素群の左の領域にあるから、左の領域について得られた中間データを参照する。前述したように中間データには、「ドットを形成しない」、「小ドットを形成する」、「中ドットを形成する」、「大ドットを形成する」ことを表す値が、この順番で先頭から並んでいる。一方、大中小各ドットを形成する場合は、初めに大ドットを形成し、次に中ドットを形成し、最後に小ドットを形成する。すなわち、中間データの先頭から並んでいるドット種類の順番は、実際にドットが形成される順番とは逆の順番となっている。従って、中間データを最後尾から読み出していけば、その画素群には、大中小ドットの中の何れの種類のドットから、それぞれ何個ずつ形成されるかを知ることができる。今、選択した画素の順序値は１番であるから、左の領域の中間データから最後尾にある値を読み出すと「２」が得られるので、その画素に形成すべきドットは、中ドットであると決定することができる。
【０２６３】
また、例えば画素群の右下隅の画素が選択された場合は、順序値マトリックスを参照することにより、その画素の順序値は５番であることがわかる。選択した画素は右の領域にあるから、画素群の右側の中間データを参照して最後尾から５番目の値を読み出すと「１」が得られるので、その画素に形成すべきドットは小ドットであると決定することができる。
【０２６４】
図４２のステップＳ６１４ないしステップＳ６２０では、このようにして画素群の中から対象とする画素を１つずつ選択しながら、ドット形成の有無を決定する。以下、フローチャートに従って簡単に説明すると、先ず初めに、画素群の中から対象画素を１つ選択し（図４２のステップＳ６１４）、順序値マトリックスを参照することにより、対象画素の順序値を取得する（ステップＳ６１６）。次いで、対象画素に対応する中間データを参照して、大中小いずれのドットを形成すべきかを決定する（ステップＳ６１８）。すなわち、画素群が分割せずに処理されている場合は、中間データは１つしか得られていないので、このデータを参照してドット形成の有無を決定する。また、画素群が分割された状態で処理されている場合は、複数の中間データが得られているので、対象画素が含まれる領域について得られた中間データを参照することによって、ドット形成の有無を決定するのである。
【０２６５】
こうして対象画素についてのドット形成の有無を決定したら、画素群内の全画素について決定したか否かを判断する（ステップＳ６２０）。画素群の中に未だドット形成の有無を決定していない画素が残っている場合は（ステップＳ６２０：ｎｏ）、ステップＳ６１４に戻って新たな画素を選択し、続く一連の操作を行うことによりドット形成の有無を決定する。このような操作を繰り返して、画素群に含まれる全画素についてドット形成の有無を決定したと判断したら（ステップＳ６２０：ｙｅｓ）、今度は、全画素群について、上述した操作を行ったか否かを判断する（ステップＳ６２２）。そして、未処理の画素群が残っている場合は（ステップＳ６２２：ｎｏ）、ステップＳ６００に戻って新たな画素群を１つ選択して、上述した一連の操作を行う。全ての画素群についてこうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら（ステップＳ６２２：ｙｅｓ）、図４１および図４２に示した第２実施例のドット形成有無決定処理を終了して、図５の画像印刷処理に復帰する。
【０２６６】
以上、第２実施例の画像印刷処理中で行われる多値化結果値生成処理（図３８）、およびドット形成有無決定処理（図４１、図４２）について説明した。第２実施例の画像印刷処理では、大中小の各種ドットを形成することによって高画質な画像を印刷することができる。
【０２６７】
また、一般には、形成可能なドットの種類が増加すると、ドット形成の有無を判断する処理が複雑となり、加えて、コンピュータからカラープリンタに供給すべきデータ量が増加してしまう。このため、高画質な画像は得られるものの、どうしても印刷速度が低下する傾向にあった。しかし、第２実施例の画像印刷処理は、第１実施例に対して、多値化結果値のデータ長こそ４ビットから８ビットに増えているものの、多値化結果値を生成する処理そのものは、画素群の分類番号および代表階調値から多値化用テーブルを参照するだけで変わるところが無く、たいへんに簡素な処理によって迅速に多値化結果値を出力することができる。また、画素毎に大中小ドットの形成有無を表現しようとすると１６ビット必要になることと比べれば、多値化結果値が８ビットであっても、データ量が半減していることになる。従って、多値化結果値を、コンピュータ１００からカラープリンタ２００迅速に供給することが可能であり、高画質な画像を迅速に出力することが可能となる。
【０２６８】
一方、ドットの形成有無を決定するに際しても、第２実施例では多値化結果値を一旦、中間データに変換しているものの、中間データと順序値マトリックスとに基づいて各画素のドット形成の有無を迅速に決定することができる。また、多値化結果値を中間データに変換する処理も、単にテーブルを参照するだけの簡素な処理なので迅速に実行することができる。このため、大中小の各種ドットを形成して高画質な画像を出力可能であるにも関わらず、処理の複雑化や処理速度の低下を招くことなく、迅速に画像を出力することができる。
【０２６９】
加えて、第２実施例においても第１実施例と同様に、多値化結果値生成処理およびドット形成有無決定処理のいずれの処理も簡素な処理とすることができるので、コンピュータのような高度な処理能力を持たない機器においても、十分に実用的な速度で実行することが可能である。
【０２７０】
また、以上に説明した第２実施例の画像印刷処理においても、前述した第１実施例と同様に、画素群を分割することで適切な大きさの領域について処理することができる。このとき、多値化用テーブルや順序値などは、画素群を分割して処理するか否かに関わらず、同じものを使用することができるので、記憶容量を節約することが可能となる。
【０２７１】
Ｄ−４．第２実施例の変形例  ：
以上に説明した第２実施例のドット形成有無決定処理においても、前述した第１実施例と同様に、復号用テーブルを参照することで、より迅速にドット形成の有無を決定することも可能である。以下では、こうした第２実施例の変形例について説明する。
【０２７２】
図４５は、第２実施例の変形例のドット形成有無決定処理の流れを示すフローチャートである。以下、フローチャートに従って、第２実施例のドット形成有無決定処理について説明する。
【０２７３】
第２実施例の変形例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を１つ選択し（ステップＳ６５０）、その画素群の分類番号を取得する（ステップＳ６５２）。画素群の分類番号は、前述した第１実施例の変形例のドット形成有無決定処理と同様にして取得することができる。
【０２７４】
次いで、選択した画素群について多値化結果値として供給された先頭のデータを取得した後（ステップＳ６５４）、取得したデータがＥＳＣコードか否かを判断する（ステップＳ６５６）。ここでは、画素群の分割態様は１つだけであり、画素群が分割されて処理されている場合は、ＥＳＣコード「２５５」が多値化結果値に付与されるものとしているから、ステップＳ６５６では読み込んだデータが「２５５」であるか否かを判断する。
【０２７５】
読み込んだデータがＥＳＣコードでは無い場合は（ステップＳ６５６：ｎｏ）、画素群は分割されずに処理されていると判断して、読み込んだデータを多値化結果値と読み替える（ステップＳ６５８）。そして、その画素群について取得しておいた分類番号と多値化結果値とから、復号用テーブルを参照することにより、画素群内の各画素についてドット形成の有無を決定する（ステップＳ６６０）。ここで、第２実施例の変形例のドット形成有無決定処理で参照する復号用テーブルは、図２８を用いて前述した第１実施例の復号用テーブルとほぼ同様である。但し、第２実施例の変形例では大中小の３種類のドットを形成可能であることに対応して、第２実施例の復号用テーブルに設定されているドットデータＤＤは、画素群内の各画素に大ドット、中ドット、小ドットのいずれのドットを形成するかを示したデータとなっている。
【０２７６】
図４６は、第２実施例の復号用テーブルに設定されているドットデータＤＤのデータ構造を示した説明図である。第２実施例の変形例のドットデータＤＤは、２ビットを１組として８組からなる１６ビットのデータであり、各組が画素群内の各画素に対応付けられている。そして、２ビットデータ「１１」は大ドットが形成されることを表しており、２ビットデータ「１０」は中ドットが形成されることを、２ビットデータ「０１」は小ドットが形成されることを、２ビットデータ「００」はドットが形成されないことを表している。
【０２７７】
例えば、ドットデータＤＤが、図４６（ａ）に示すようなデータであったとする。ドットデータＤＤ中で１番と符番した組には「１１」が設定されているから、画素群内の対応する画素（図４６（ｂ）中で１番と符番した画素）には大ドットが形成される。また、ドットデータＤＤ中で２番と符番した組には「００」が設定されているから、画素群内で２番と符番した画素にはいずれのドットも形成されない。このように、ドットデータＤＤの各組に設定されているデータは、画素群内の各画素に形成されるドットの種類を表している。第２実施例のドット形成有無決定処理で参照される復号用テーブルには、この様なドットデータＤＤが設定されている。
【０２７８】
図４５に示したステップＳ６６０では、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照して、図４６に示すようなドットデータＤＤを読み出すことにより、画素群内の各画素についてのドット形成有無を決定する。尚、第２実施例の変形例のドット形成有無決定処理で参照される復号用テーブルの設定方法については後述する。
【０２７９】
一方、ステップＳ６５４で読み込んだデータがＥＳＣコードであった場合は（ステップＳ６５６：ｙｅｓ）、画素群は分割して処理されているものと判断し、ＥＳＣコードに続いて記憶されている所定個数の多値化結果値を取得する（ステップＳ６６２）。これら多値化結果値は、画素群を分割して生成された各領域の代表階調値から得られた多値化結果値である。
【０２８０】
次いで、復号用テーブルを参照することにより、取得したそれぞれの多値化結果値をドットデータＤＤに変換する（ステップＳ６６４）。そして、各領域の多値化結果値から求められたドットデータＤＤから、それぞれの領域に相当する部分のデータを抜き出して組み合わせることにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ６６６）。
【０２８１】
図４７は、複数のドットデータＤＤから、画素群内の各画素についてのドット形成有無を決定する様子を示す説明図である。ここでは、図４７（ａ）に示すように、画素群が左右２つに等分された各領域について、多値化結果値９２および多値化結果値１３５が得られたものとする。次いで、復号用テーブルを参照することにより、これらの多値化結果値をドットデータＤＤに変換する。図４７（ｂ）および図４７（ｃ）は、それぞれ左領域および右領域の多値化結果値から得られたドットデータＤＤを表している。図４５に示したステップＳ６６４では、この様に多値化結果値をドットデータＤＤに変換する処理を行う。尚、前述したように第２実施例のドットデータＤＤは、２ビットずつを１組とした１６ビットのデータであるが（図４６参照）、図示が煩雑となることを避けるため、図４７では各組の２ビットデータを１０進数で表示している。すなわち、大ドットを表す２ビットデータ「１１」は、図４７では「３」と表示され、中ドットを表す２ビットデータ「１０」は「２」と、小ドットを表す２ビットデータ「０１」は「１」と、そしてドットを形成しないことを表す２ビットデータ「００」は「０」と表示されている。
【０２８２】
次いで、それぞれのドットデータＤＤから、各領域に該当する部分のデータを抜き出して組み合わせることにより、分割された画素群内についてのドットデータＤＤを合成する。すなわち、図４７（ｂ）に示したドットデータＤＤは左領域について得られたものであるから、このドットデータＤＤからは、左領域を構成する４つの画素に相当する部分のデータを抜き出してやる。図４７に示した例では、１番、２番、５番、６番の４つの画素が左領域の画素に対応する。また、図４７（ｃ）に示したドットデータＤＤは右領域について得られたものであるから、右領域を構成する４つの画素に相当する部分のデータを抜き出してやる。図４７に示した例では、３番、４番、７番、８番の４つの画素が右領域の画素に対応する。そして、各ドットデータＤＤから抜き出したデータを組み合わせて、新たなドットデータＤＤを合成する。図４７（ｄ）は、分割された画素群についてのドットデータＤＤが、この様にして合成された様子を示している。また、図４７(e)には、合成されたドットデータＤＤに従って、各画素にドットが形成されている様子を示している。
【０２８３】
図４７（ｅ）に示すように、左半分の領域は右半分の領域よりも小さめのドットがまばらに形成されている。すなわち、図４７（ａ）に示した多値化結果値が適切に反映されたドット分布になっている。図４５のステップＳ６６６では、この様にして、分割された画素群についてのドットデータＤＤを合成することで、各画素についてのドット形成の有無を決定する処理を行う。
【０２８４】
以上のようにして、選択した画素群内の各画素についてドット形成の有無を決定したら（ステップＳ６６０、Ｓ６６６）、全画素群についての処理を終了したか否かを判断する（ステップＳ６６８）。そして、未処理の画素群が残っている場合は（ステップＳ６６８：ｎｏ）、ステップＳ６５０に戻って新たな画素群を選択し、続く一連の操作を行ってドット形成の有無を決定する。このような操作を繰り返して、全画素群についての処理を終了したと判断したら（ステップＳ６６８：ｙｅｓ）、図４５に示した第２実施例のドット形成有無決定処理を終了する。
【０２８５】
ここで、第２実施例の変形例のドット形成有無決定処理で参照する復号用テーブルの設定方法について簡単に説明しておく。第２実施例の変形例で参照される復号用テーブルの設定は、前述した第１実施例の復号用テーブルとほぼ同様にして設定することができる。但し、第２実施例では大中小各ドットについてドット形成有無を判断する点で、第１実施例とは異なっている。
【０２８６】
図４８は、第２実施例の変形例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。ここでは画素群の多値化結果値が「１０５」であったとする。第２実施例の変形例で参照する復号用テーブルには、大中小各ドットについての形成有無を表すドットデータＤＤが設定されているから、先ず、多値化結果値を、これら各種ドットの個数を表すデータに変換する。かかる変換は、図３７に示した対応関係に基づいて容易に実施することができる。ここでは、多値化結果値１０５は、大ドット１個、中ドット２個、小ドット１個の組合せを表していたものとする。次いで、ディザマトリックスに設定された閾値を参照することにより、これらのドットが画素群内のいずれの画素に形成されるかを決定していく。図４８では、分類番号１番の画素群および、分類番号２番の画素群を例に用いて、これら画素群内で大中小各ドットが形成される画素を決定し、対応するドットデータＤＤを求める様子を示している。
【０２８７】
図４８の左半分には、分類番号１番の画素群についてのドットデータＤＤ（１，１０５）を求める様子が示されている。ここで、ドットデータＤＤ（１，１０５）とは、画素群の分類番号が１番、多値化結果値１０５の組合せに対応して設定されるドットデータであることを意味している。分類番号１番の画素群についてのドットデータＤＤを求めるためには、ディザマトリックス中で通し番号１番のブロックに設定された閾値を参照する。図４８の上から３段目の左側には、通し番号１番のブロックに設定された閾値が示されている。前述したように、これら閾値はドットの形成され易さを表していると考えることができる。そこで、これら閾値に従って、大ドット、中ドット、小ドットの順番でドットを形成する画素位置を決定していく。以下、具体的に説明する。
【０２８８】
先ず、大ドットの形成個数は１個であるから、通し番号１番のブロック中で最もドットが形成され易い画素（閾値１が設定されている画素）には、大ドットが形成される。続いて、２つの中ドットを形成する画素位置を決定する。通し番号１番のブロック中で２番目および３番目にドットが形成され易い画素は、閾値４２が設定されている画素と、閾値５８が設定されているであるから、中ドットはこれらの画素に形成するものと決定する。最後に小ドットを形成する画素位置を決定する。通し番号１番のブロック中で４番目にドットが形成され易い画素は、閾値１０９が設定されている画素であるから、小ドットはこの画素に形成するものとする。図４８の上から４段目の左側には、このようにして分類番号１番の画素群について、大中小各ドットが形成される画素位置が決定された様子を表している。図中で、細かい斜線が付された画素には大ドットが形成され、少し粗い斜線が付された画素には中ドットが形成され、粗い斜線が付された画素には小ドットが形成され、そして、斜線の付されていない画素にはドットが形成されないことを表している。このようにして画素群内の各画素についてドット形成の有無を決定したら、このドット配置を図４３に示したデータ形式のドットデータで表現して、分類番号１番および多値化結果値１０５に対応するドットデータＤＤ（１，１０５）として復号用テーブルに設定する。
【０２８９】
分類番号２番の画素群についても同様にして、ドットデータＤＤ（２，１０５）を設定することができる。すなわち、通し番号２番のブロックに設定された閾値を取得する。そして、得られた閾値に従って、大ドット、中ドット、小ドットの順番で、これらドットを形成する画素位置を決定した後、ドットの配置を図４３に示したデータ形式で表して、ドットデータＤＤ（２，１０５）として復号用テーブルに記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶していけば、第２実施例の変形例のドット形成有無決定処理中で参照される復号用テーブルを設定することができる。
【０２９０】
以上に説明した第２実施例の変形例のドット形成有無決定処理においても、コンピュータ１００から供給された多値化結果値を受け取ると、復号用テーブルを参照するという簡素な処理により、各画素についてのドット形成の有無を迅速に決定することができる。このため、画像を迅速に出力することが可能となる。加えて、画素群を分割した状態で多値化結果値が生成されている場合には、これに合わせて画素群内の各領域についてドット形成有無を決定することが可能である。このような場合でも、ドット形成有無を決定するために参照する復号用テーブルは、同じテーブルを使用することができる。このため、複数の復号用テーブルを記憶しておく必要が無く、大きなメモリ容量を有しない機器においても実行することが可能である。更に、参照するテーブルを切り換える処理も不要となるので簡素な処理とすることができ、高い処理能力を有さない機器においても実行することが可能となる。
【０２９１】
Ｅ．第３実施例  ：
以上に説明した第１実施例、あるいは第２実施例では、多値化結果値の意味するところは、その結果値がいずれの画素群について得られたものであっても同じように解釈することができた。例えば、第１実施例において多値化結果値３と言えば、その結果値がどの画素群について得られたものであっても、画素群内に３つのドットが形成されることを表していた。また、第２実施例において多値化結果値１２５と言えば、この値は、図３７に示した対応関係に応じて大ドット、中ドット、小ドットがそれぞれ所定の個数だけ画素群に形成されることを表していた。このように、異なる画素群に対して得られた多値化結果値であっても同じ値であれば、その意味するところは同じように解釈することができた。しかし、多値化結果値の意味する内容を、画素群に応じて異ならせることも可能である。こうすれば、多値化結果値のデータ量を低減することが可能となる。特に、第２実施例における場合のように、多値化結果値が１６５通りもの多くの値を取り得るような場合には、多値化結果値のデータ量を低減することで、より迅速に多値化結果値を供給することができる。以下では、このような第３実施例の画像印刷処理について説明する。尚、第３実施例においても、前述した第２実施例と同様に、カラープリンタ２００は大中小の３種類のドットを形成可能であるものとする。
【０２９２】
Ｅ−１．第３実施例の多値化結果値生成処理  ：
第３実施例の多値化結果値生成処理は、前述した第２実施例の多値化結果値生成処理に対して、参照する多値化用テーブルが異なるものの、処理の全体的な流れはほぼ同様である。このように、本実施例の画像印刷処理は、処理の内容が複雑かつ高度な内容になっても、多くの場合は多値化用テーブルの変更だけで対応することができ、実際の処理の流れは簡素なものとすることが可能である。以下では、図３８に示した第２実施例の多値化結果値生成処理のフローチャートを流用しながら、第３実施例の多値化結果値生成処理について説明する。
【０２９３】
第３実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定数の画素をまとめて画素群を生成し（ステップＳ５００相当）、画素群の分類番号を決定する（ステップＳ５０２相当）。次いで、解像度変換前後の解像度比に基づいて、画素群を分割するか否かを判断する（ステップＳ５０４相当）。ここでは、説明の便宜上、画素群を分割して処理する場合は、左右２つの領域に等分するものとして説明する。画素群を分割することなく処理する場合は、前述した各実施例と同様にして画素群の代表階調値を決定した後（ステップＳ５０６相当）、多値化用テーブルを参照することにより、画素群の分類番号および代表階調値に対応する多値化結果値を取得する。
【０２９４】
図４９は、第３実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。前述した第２実施例の多値化結果値生成処理で参照した多値化用テーブル（図３９参照）と、この多値化用テーブルとを比較すれば明らかなように、第３実施例の多値化用テーブルに設定されている多値化結果値は、第２実施例の多値化結果値よりも小さな値となっている。これは、第２実施例では、多値化結果値が、画素群によらず同じように解釈可能な値に設定されているのに対し、第３実施例では、その多値化結果値が得られた画素群を特定して（より正確には、画素群の分類番号を特定して）初めて解釈できるような値に設定されていることによる。
【０２９５】
図５０は、第３実施例の多値化用テーブルにおいて、画素群の分類番号毎に設定されている代表階調値と多値化結果値との対応関係を例示した説明図である。図では、横軸に代表階調値を取り、縦軸の多値化結果値を取った折れ線グラフを用いて、代表階調値に対して設定された多値化結果値を表示している。また、図中では、異なる分類番号Ｎ１〜Ｎ５を有する５つの画素群についての多値化結果を示しているが、これら画素群の折れ線が重なって判別し難くなることを避けるために、多値化結果値の原点位置を、縦軸方向に少しずつずらした状態で表示している。
【０２９６】
図５０中に太い実線を用いて表した折れ線は、分類番号Ｎ１番の画素群についての代表階調値と多値化結果値との対応関係を示している。分類番号Ｎ１番の画素群については、代表階調値０〜４に対しては多値化結果値０が設定されている。代表階調値５〜２０に対しては、多値化結果値１が設定されている。次いで、代表階調値が２１〜４２の範囲に増加すると、多値化結果値は「２」に増加し、代表階調値が４３〜６９の範囲に増加すると多値化結果値は「３」に増加する。このように、代表階調値が増加するに従って、多値化結果値も段階的に増加していき、最終的には、多値化結果値は「１５」まで増加する。同様に、図中で太い破線で示した分類番号Ｎ２番の画素群や、太い一点鎖線で示した分類番号Ｎ３番の画素群については、代表階調値が０〜２５５に増加するに従って、多値化結果値が０〜１７へと段階的に増加するように設定されている。更に、細い実線で示した分類番号Ｎ４番の画素群および細い一点鎖線で示した分類番号Ｎ５番の画素群については、代表階調値が０〜２５５に増加するに従って、多値化結果値が０〜２０へと段階的に増加するように設定されている。この結果、例えば、分類番号Ｎ１の画素群については０〜１５のいずれかの多値化結果値に多値化（いわば１６値化）され、分類番号Ｎ２またはＮ３の画素群については０〜１７のいずれかの多値化結果値に多値化（いわば１８値化）され、分類番号Ｎ４またはＮ５の画素群については０〜２０のいずれかの多値化結果値に多値化（いわば２１値化）されることになる。
【０２９７】
このように、第３実施例の多値化結果値生成処理では、各画素群の多値化の段数（多値化の結果として取り得る状態数）が同じではなく、画素群の分類番号に応じて固有の段数で多値化されている。この結果、同じ代表階調値を多値化した場合でも、画素群の分類番号が異なり、そのため多値化の段数が異なっていれば、異なる結果値に多値化されることになる。
【０２９８】
また、多値化段数が同じであったとしても、同じ多値化結果値が得られるわけではない。例えば、図５０に示した分類番号Ｎ２の画素群と、分類番号Ｎ３の画素群とを比較すれば明らかなように、これら画素群については代表階調値がいずれも１８値化されているが、多値化結果値が切り換わる代表階調値は多くの場合、一致していない。分類番号Ｎ４の画素群と分類番号Ｎ５の画素群とについても同様に、これら画素群では代表階調値が何れも２１値化されているが、多値化結果値が切り換わる代表階調値は一致していないことが多い。このことから、たとえ画素群の多値化の段数が同じでも、分類番号が異なれば、異なる多値化結果値が得られることになる。
【０２９９】
このように、図４９に示した第３実施例の多値化用テーブルに設定されている多値化結果値は、代表階調値と多値化結果値との対応関係が画素群の分類番号毎に異なっている。換言すれば、第３実施例の多値化結果値は、その結果値が得られた画素群の分類番号を特定して初めて解釈できる値となっている。このように多値化結果値を画素群に依存した値としてやることで、多値化結果値の取り得る値の個数を少なくすることが可能である。図５０に示した例では、多値化結果値の個数が最も多い分類番号Ｎ４の画素群および分類番号Ｎ５の画素群の場合でも、「０」〜「２０」までの２１通りしか存在しない。実際のところ、多値化結果値の取り得る値は、多く見積もっても３０通りを越えることはなく、３０通りであれば、５ビットで十分に表現することができる。第２実施例では、多値化結果値を表現するために８ビット必要であったことと比較すれば、多値化結果値のデータ量が５／８に低減されていることになる。尚、図４９に示した第３実施例の多値化用テーブルを設定する方法については後述する。
【０３００】
第３実施例の多値化結果値生成処理において、画素群を分割することなく処理する場合は、図４９に示した多値化用テーブルを参照することによって、多値化結果値を取得した後（図３８のステップＳ５０８相当）、得られた多値化結果値を記憶しておく（ステップＳ５１０相当）。
【０３０１】
一方、第３実施例の多値化結果値生成処理において、画素群を分割して処理する場合は（図３８のステップＳ５０４：ｙｅｓに相当）、画素群を分割して生成した各領域の代表階調値を決定した後（ステップＳ５１２相当）、画素群の分類番号および、それぞれの代表階調値から多値化用テーブルを参照して、各領域の多値化結果値を取得する（ステップＳ５１４相当）。すなわち、多値化結果値は、画素群を分割して生成した領域の数だけ生成されることになる。次いで、画素群を分割して処理したことを表すＥＳＣコードに続けて、領域毎に生成された多値化結果値を記憶する（ステップＳ５１６およびＳ５１８相当）。
【０３０２】
図５１は、５ビットのデータに、多値化結果値と分割態様とが対応付けられている様子を示した説明図である。前述したように、第３実施例では、多値化結果値は画素群の分類番号に固有の値に設定されているので、それぞれの分類番号での多値化結果値は、多く見積もっても３０通りの値しか取り得ず、５ビットで表現することができる。そこで、多値化結果値として使用されない「３１」を表すデータを、ＥＳＣコードに割り付けておく。ここでは、画素群の分割態様は１つだけであるとしているから、ＥＳＣコード１だけで、画素群が分割されていること、および分割態様を同時に表すことができる。
【０３０３】
以上のようにして画素群の多値化結果値を記憶したら、画像データの全画素について処理を終了したか否かを判断し（ステップＳ５２０相当）、未処理の画素が残っていれば、新たな画素群を生成した後、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したら、画素群を分割することなく処理した場合は多値化結果値のみをカラープリンタ２００に出力し、また、画素群を分割して処理した場合はＥＳＣコードおよび多値化結果値を出力して（ステップＳ５２２相当）、第３実施例の多値化結果値生成処理を終了する。
【０３０４】
尚、以上では、画素群の分割態様は１種類のみであるものとして説明したが、より多くの分割態様を用いることも可能である。例えば、以上の説明では多値化結果値の中で使用されていない値「３１」をＥＳＣコードとして用いたが、図５１に示したように値「３０」も使用されていない値である。そこで、この値「３０」を第２の分割態様を示すＥＳＣコードに割り当てることも可能である。例えば、ＥＳＣコード「３０」は、画素群を上下左右に２つずつ、全体では４つの領域に等分したことを表すものとしてもよい。
【０３０５】
Ｅ−２．第３実施例のドット形成有無決定処理  ：
上述したように、第３実施例の多値化結果値生成処理では、多値化結果値のデータ量を低減するために、画素群の分類番号に固有の多値化結果値を生成してカラープリンタ２００に出力する。すなわち、多値化結果値の意味するところは、画素群の分類番号を特定して初めて解釈可能となっている。このため、第３実施例のカラープリンタ２００では、このような多値化結果値を受け取ると、次のようなドット形成有無決定処理を行うことにより、画素群内の各画素についてのドット形成の有無を決定する処理を行う。
【０３０６】
図５２は、第３実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。また図５３は、第３実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。図示した第３実施例のドット形成有無決定処理は、図４１および図４２を用いて前述した第２実施例の処理に対して、コンピュータ１００から受け取る多値化結果値が画素群に依存した値となっており、この多値化結果値を画素群に依存しない中間データに変換してから、各画素についてのドット形成有無を決定する点が大きく異なっている。以下では、こうした第２実施例に対する相違点を中心として、第３実施例のドット形成有無決定処理について説明する。
【０３０７】
第３実施例のドット形成有無決定処理においても、前述した第２実施例と同様に、処理を開始すると先ず初めに、処理対象とする画素群を１つ選択する（ステップＳ７００）。そして、その画素群について供給された多値化結果値の先頭のデータを取得し（ステップＳ７０２）、取得したデータがＥＳＣコードか否かを判断する（ステップＳ７０４）。読み込んだデータがＥＳＣコードでは無い場合は（ステップＳ７０４：ｎｏ）、画素群は分割されることなく処理されているものと判断して、読み込んだデータを多値化結果値と読み替える（ステップＳ７０６）。一方、読み込んだデータがＥＳＣコードである場合は（ステップＳ７０４：ｙｅｓ）、画素群が分割された状態で処理されているものと判断し、ＥＳＣコードに続いて記憶されている所定個数の多値化結果値を取得する（ステップＳ７０８）。
【０３０８】
第３実施例においては前述した第２実施例と異なり、こうして読み込んだ多値化結果値が、その値が得られた画素群の分類番号を特定して初めて解釈可能な値となっている。そこで、第３実施例のドット形成有無決定処理では、この多値化結果値を、画素群の分類番号に依存しないデータに変換した後に、画素群内の各画素についてのドット形成の有無を決定する。多値化結果値を分類番号に依存しないデータに変換する準備として、先ず、画素群の分類番号を取得する処理を行う（ステップＳ７１０）。画素群の分類番号は、第１実施例の変形例のドット形成有無決定処理中で、図２６および図２７を用いて前述した方法を用いることにより、迅速に取得することができる。次いで、予め設定しておいた変換テーブルを参照することにより、画素群に依存する形態で表現された多値化結果値を、画素群に依存しない形態で表現された中間データに変換する（ステップＳ７１２）。
【０３０９】
図５４は、第３実施例のドット形成有無決定処理において、多値化結果値を中間データに変換する際に参照される変換テーブルを概念的に示した説明図である。図示されているように、第３実施例のドット形成有無決定処理において参照する変換テーブルには、画素群の分類番号と多値化結果値との組合せに対応づけて、対応する中間データが設定されている。図中に示したＤＤ（ｎ，ｍ）は、画素群の分類番号がｎ番で、その画素群の多値化結果値が「ｍ」である場合の中間データを表している。また、この中間データは、図４３に示したように、その画素群に形成されるドットの種類と、それらドットの個数とを示す形式で表現されている。そして、この中間データは、どの画素群についてのデータであっても同じように解釈することが可能なデータとなっている。従って、図５４に示した変換テーブルを参照することにより、画素群に依存した形式の多値化結果値を、画素群に形成すべきドットの種類と個数とが画素群に依存しない形式で表現された中間データに変換することができる。
【０３１０】
こうして多値化結果値を中間データに変換したら、今度は、選択した画素群に対応する順序値マトリックスを読み込む処理を行う（図５３のステップＳ７１４）。前述したように、順序値マトリックスには、画素群内の各画素についてドットが形成される順番を示す値（順序値）が設定されている。次いで、前述した第２実施例と同様にして、選択した画素群についての中間データと順序値マトリックスに設定された順序値とを参照しながら、画素群の中から対象画素を１画素ずつ選択してドット形成の有無を決定していく。すなわち、画素群の中から対象とする画素（対象画素）を１つ選択し（ステップＳ７１６）、順序値マトリックスを参照することにより、対象画素の順序値を取得する（ステップＳ７１８）。次いで、対象画素に対応する中間データを参照して、大中小いずれのドットを形成すべきかを決定する（ステップＳ７２０）。このとき、画素群が分割された状態で処理されている場合は複数の中間データが得られているので、対象画素が含まれる領域について得られた中間データを参照することによって、ドット形成の有無を決定する。一方、画素群が分割されずに処理されている場合は中間データは１つしか得られていないので、このデータを参照してドット形成の有無を決定する。
【０３１１】
こうして画素群の中から１つずつ対象画素を選択しながら、全ての画素についてのドット形成の有無を決定するまで上述した操作を繰り返し（ステップＳ７２２）、全画素についてドット形成の有無を決定したら、今度は、全画素群について、上述した操作を行ったか否かを判断する（ステップＳ７２４）。そして、未処理の画素群が残っている場合は、ステップＳ７００に戻って新たな画素群を１つ選択して、上述した一連の操作を行う。全ての画素群についてこうした操作を繰り返し、全画素群についてドット形成の有無を決定したら、図５２および図５３に示した第３実施例のドット形成有無決定処理を終了する。
【０３１２】
以上に説明した第３実施例の画像印刷処理では、画素群の代表階調値を多値化する際に、画素群に依存した多値化結果値を生成することで、コンピュータ１００からカラープリンタ２００に出力すべきデータ量を低減することができる。このため、多値化結果値を迅速に出力することが可能となる。また、このような多値化結果値を生成する処理も、前述した各種実施例と同様に多値化テーブルを参照することで簡素な処理とすることができる。加えて、画素群を分割して処理する場合でも、分割しない場合と同じ多値化用テーブルあるいは順序値を共用することができるので、記憶容量を節約することが可能となる。
【０３１３】
Ｅ−３．第３実施例の多値化用テーブルの設定方法  ：
次に、第３実施例の多値化結果値生成処理中で参照される多値化用テーブル（図４９参照）を設定する方法について説明する。前述したように、多値化用テーブルには、代表階調値に対する多値化結果値が画素群の分類番号毎に設定されており、多値化用テーブルを参照しながら多値化することで、代表階調値は、図５０に示したように画素群の分類番号に依存した多値化結果値に変換されることになる。
【０３１４】
本実施例の多値化用テーブルは、図３３ないし図３６を用いて前述した特許３２９２１０４号に開示の方法、すなわち、大きさの異なる複数種類のドットの形成有無を決定可能なように、ディザ法を発展させた手法を基にして設定されている。
【０３１５】
前述したように多値化結果値生成処理では、画素群内に含まれる各画素の画像データを代表階調値で代表させることにより、画素群をまとめて多値化している。そこで、多値化用テーブルを設定するに際しては、先ず、画素群内の全画素が代表階調値と同じ値の画像データを有するものとして、各画素について大中小の各種ドットについての形成有無を判断することを考える。各種ドットについての形成有無の判断は、図３４を用いて前述したハーフトーン処理によって行う。
【０３１６】
図５５は、画素群内の各画素について、大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。図中では、ハーフトーン処理を行うために着目している画素群を太い実線で囲って表している。画素群は８つの画素から構成されており、各画素の画像データは、いずれも代表階調値と同じ値（図示した例では階調値９７）を有している。大中小各種ドットの形成有無を判断するためには、画像データを各ドットについての密度データに変換する。密度データへの変換は、図３５を用いて前述したドット密度変換テーブルを参照することによって行う。ここでは、画素群内の全画素が同じ画像データを有するものとしているから、各種ドットについても密度データも全て画素について同じ値となる。図示した例では、大ドットの密度データの階調値が「２」、中ドットの密度データの階調値が「９５」、小ドットの密度データの階調値が「３０」であった場合を表している。
【０３１７】
次いで、図３４のフローチャートを用いて前述したように、大ドットの密度データ、中ドット用の中間データ、あるいは小ドット用の中間データと、ディザマトリックスに設定されている閾値とを比較することによって、各種ドットについての形成有無を画素毎に判断する。ここで、比較に用いるディザマトリックスの閾値は、ディザマトリックスの中から、着目している画素群に対応する箇所に設定されている閾値を使用する。例えば、図５５に示した例では、画素群が画像の左上隅にあることから、閾値についても、ディザマトリックス中の左上隅の画素群に設定されている閾値を使用する。
【０３１８】
そして、画素群に設定されている８つの閾値の中で、大ドットの密度データよりも小さな閾値が設定されている画素については、大ドットを形成すると判断する。ここでは、大ドットの密度データは階調値「２」としているから、大ドットが形成される画素は、閾値「１」が設定されている画素だけである。図５５では、大ドットが形成されると判断された画素には、細かい斜線を付して表示している。大ドットの密度データ「２」よりも大きく、大ドットの密度データと中ドットの密度データとを加算して得られた中ドット用の中間データ「９７」よりも小さな閾値が設定されている画素には、中ドットを形成するものと判断する。このような画素は、閾値「４２」が設定された画素、および閾値「５８」が設定された画素の２つの画素だけである。図５５では、中ドットが形成されると判断された画素には、少し粗い斜線を付して表示している。そして、最後に、中ドット用の中間データ「９７」よりも大きく、中ドット用の中間データに小ドット用の密度データを加算して得られた小ドット用の中間データ「１２７」よりも小さな閾値が設定されている画素には、小ドットを形成するものと判断する。このような画素は、閾値「１０９」が設定された画素だけである。図５５では、小ドットが形成されると判断された画素には、粗い斜線を付して表示している。このようにして、大ドット、中ドット、小ドットの形成有無を判断した結果、着目している画素群の代表階調値が「９７」である場合には、大ドット１個、中ドット２個、小ドット１個が形成されることになる。
【０３１９】
代表階調値が大きく異なれば、画素群内に形成される大ドット、中ドット、小ドットの個数も異なったものとなる。また、代表階調値を「０」から「２５５」まで変化させれば、それに伴って大ドット、中ドット、小ドットの個数は、幾段階かに変化するはずである。更に、画素群の分類番号が異なれば、ディザマトリックスの閾値も異なることから、ドット個数の変化の仕方も異なるはずである。図４９に示した多値化用テーブルは、代表階調値を「０」から「２５５」まで変化させたときの、各種ドットの個数が段階的に変化する挙動を、分類番号毎に調べることによって設定されている。
【０３２０】
図５６は、第３実施例の多値化結果値生成処理中で参照される多値化用テーブルを設定する処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。多値化用テーブルの設定処理を開始すると、先ず初めに、画素群の分類番号を１つ選択する（ステップＳ８００）。例えば、ここでは分類番号１番を選択したものとする。
【０３２１】
次いで、選択した分類番号の画素群に対応する閾値を、ディザマトリックスの中から読み出してやる（ステップＳ８０２）。例えば、ここでは分類番号１番を選択したものとしているから、図７に例示したディザマトリックスの中から、図１４（ｂ）中で１番と表示したブロック位置に設定されている８つの閾値を読み出す。
【０３２２】
そして、多値化結果値ＲＶおよび代表階調値ＢＤを「０」に設定し（ステップＳ８０４）、更に、大ドット、中ドット、小ドットの形成個数をいずれも０個に設定する（ステップＳ８０６）。
【０３２３】
続いて、図３５に示したドット密度変換テーブルを参照することにより、代表階調値を大ドット、中ドット、小ドットについての密度データに変換した後（ステップＳ８０８）、これら密度データと先に読み込んでおいた閾値とに基づいて、大中小の各種ドットについての形成個数を決定する（ステップＳ８１０）。すなわち、図３４を用いて説明したように、大ドットの密度データよりも小さな閾値の個数を求めて、得られた個数を大ドットの形成個数とする。また、大ドットの密度データよりも大きく且つ中ドット用の中間データよりも小さな閾値の個数を求めて、これを中ドットの形成個数とする。更に、中ドット用の中間データよりも大きく且つ小ドット用の中間データよりも小さな閾値の個数を求めて、これを小ドットの形成個数とする。
【０３２４】
こうして求めた各種ドットの形成個数が、先に設定されていた形成個数に対して変更されたか否かを判断する（ステップＳ８１２）。そして、形成個数が変更されたと判断されれば（ステップＳ８１２：ｙｅｓ）、多値化結果値ＲＶを「１」だけ増加させて（ステップＳ８１４）、得られた多値化結果値ＲＶを代表階調値ＢＤに対応づけて記憶する（ステップＳ８１６）。一方、形成個数が変更されていないと判断された場合は（ステップＳ８１２：ｎｏ）、多値化結果値ＲＶを増加させることなく、そのままの値を代表階調値ＢＤに対応づけて記憶する（ステップＳ８１６）。
【０３２５】
以上のようにして、ある代表階調値に対する多値化結果値を記憶したら、代表階調値ＢＤが階調値２５５に達したか否かを判断する（ステップＳ８１８）。階調値２５５に達していなければ（ステップＳ８１８：ｎｏ）、代表階調値ＢＤを「１」だけ増加させて（ステップＳ８２０）、ステップＳ８０８に戻って再び代表階調値ＢＤを密度データに変換した後、続く一連の処理を行って、新たな代表階調値ＢＤに対応づけて多値化結果値ＲＶを記憶する（ステップＳ８１６）。代表階調値ＢＤが階調値２５５に達するまで、こうした操作を繰り返す。そして、代表階調値ＢＤが階調値２５５に達したら（ステップＳ８１６：ｙｅｓ）、選択した分類番号については、すべての多値化結果値を設定したことになる。
【０３２６】
そこで、すべての分類番号について、以上のような処理を行ったか否かを判断し（ステップＳ８２２）、未処理の分類番号が残っている場合は（ステップＳ８２２：ｎｏ）、ステップＳ８００に戻って再び上述した処理を行う。こうした処理を繰り返し、すべての分類番号について、すべての多値化結果値を設定したと判断されたら（ステップＳ８２２：ｙｅｓ）、図５６に示した多値化用テーブル設定処理を終了する。
【０３２７】
以上の説明から明らかなように、多値化結果値は、代表階調値を変換して得られた大中小各ドットの密度データと、ディザマトリックス中で画素群に対応する位置に記憶されている閾値とによって決定される。ここで、図３５に示したドット密度変換テーブルは、画素群の分類番号が異なっていても同じテーブルを参照するから、代表階調値に対する各ドットの密度データも、分類番号によらず同じ密度データが得られる。しかし、ディザマトリックスから読み出された閾値の組は、分類番号毎に異なったものとなる。何故なら、ディザマトリックスは、画像上でドットが一定のパターンで発生したり、あるいは近接した位置に固まって発生することで画質を悪化させることの無いように、閾値は出来るだけ分散させて且つ出来るだけランダムに設定されている。このため、画素群に含まれる複数個の閾値を組として見たときに、全く同じ組合せとなる可能性は極めて低いと考えられるからである。このような理由から、第３実施例の多値化結果値生成処理で参照される多値化用テーブルは、代表階調値と多値化結果値との対応関係が分類番号毎に異なったものとなり、また、多値化結果値が変化する回数（図５０に示した多値化の段数）も、分類番号に応じて異なったものとなるのである。
【０３２８】
Ｅ−４．第３実施例の変形例の多値化結果値生成処理  ：
上述した第３実施例の多値化結果値生成処理では、階調値０から階調値２５５までの代表階調値毎に、対応する多値化結果値を記憶した多値化用テーブルを参照している。しかし多値化結果値は、代表階調値が増加するに従って段階的に増加するだけなので、多値化結果値が切り換わる代表階調値だけを記憶しておけば、代表階調値に対する多値化結果値を求めることができる。以下では、このような第３実施例の変形例の多値化結果値生成処理について説明する。
【０３２９】
図５７は、第３実施例の変形例の多値化結果値生成処理において参照される閾値テーブルを概念的に示した説明図である。図示されているように閾値テーブルには、分類番号毎に、多値化結果値に対応する閾値が設定されている。この閾値は、代表階調値を階調値０から階調値２５５まで増加させたときに、その多値化結果値となる最も大きな代表階調値を表している。一例として、分類番号１番の画素群について説明する。分類番号１番については、多値化結果値「０」に対しては閾値「２」が設定されている。これは、分類番号１番の画素群については、代表階調値が「０」ないし「２」の範囲にあれば、多値化結果値が「０」となることを表している。また、多値化結果値「１」に対しては閾値「１５」が設定されている。これは、分類番号１番の画素群については、代表階調値が「３」から「１５」の範囲にあれば多値化結果値が「１」となることを表している。同様に、多値化結果値「１４」に対しては閾値「２４３」が、そして多値化結果値「１５」に対しては閾値「２５５」が設定されている。これは、代表階調値が「２４４」から「２５５」の範囲にあれば多値化結果値が「１５」になることを、そして、分類番号１番の画素群については、多値化結果値の最大値が「１５」であることを表している。
【０３３０】
尚、図５７では、分類番号毎の閾値は、それぞれ多値化結果値に対応させて設定されているものとした。しかし、特に多値化結果値に対応付けることなく、単なる閾値の組を分類番号毎に記憶することとしてもよい。この場合は、代表階調値よりも小さな閾値の個数を数えることで、多値化結果値を求めることができる。再び、分類番号１番の画素群を例に用いて説明する。例えば、代表階調値が「２０」であったとする。分類番号１番に設定されている閾値の組の中で、階調値２０よりも小さな閾値は、「２」、「１５」、「１８」の３個である。このことから、代表階調値２０に対する多値化結果値は「３」であると求めることとしてもよい。
【０３３１】
以上に説明した第３実施例の変形例の多値化結果値生成処理では、画素群についての代表階調値と分類番号とを求めた後、図５７に例示した閾値テーブルを参照することによって、多値化結果値を生成する。閾値テーブルは、前述した第３実施例の多値化結果生成処理中で参照する多値化用テーブル（図４１参照）よりも少ないデータ量で記憶しておくことができる。このため、変形例の多値化結果値生成処理は、第３実施例の処理に比べて、メモリ使用量を節約することが可能である。これに対して、前述した第３実施例の多値化結果値生成処理は、分類番号と代表階調値とから多値化用テーブルを参照するだけで直ちに多値化結果値を求めることができる。すなわち、変形例における処理のように代表階調値と閾値とを比較する必要がないので、迅速に多値化することが可能である。
【０３３２】
Ｅ−５．第３実施例の変形例のドット形成有無決定処理  ：
以上に説明した第３実施例のドット形成有無決定処理においても、前述した第１実施例あるいは第２実施例と同様に、復号用テーブルを参照することで、より迅速にドット形成の有無を決定することも可能である。以下では、こうした第３実施例の変形例のドット形成有無決定処理について説明する。
【０３３３】
第３実施例の変形例のドット形成有無決定処理は、前述した第２実施例の変形例におけるドット形成有無決定処理に対して、参照する復号用テーブルが異なる以外はほぼ同様である。そこで、第２実施例の変形例のドット形成有無決定処理について示した図４５のフローチャートを流用して、第３実施例の変形例のドット形成有無決定処理について説明する。
【０３３４】
第３実施例の変形例のドット形成有無決定処理を開始すると、対象とする画素群を１つ選択して、画素群の分類番号を取得した後、多値化結果値として供給された先頭のデータを取得する（ステップＳ６５０、Ｓ６５２、Ｓ６５４相当）。次いで、取得したデータがＥＳＣコードか否かを判断する（ステップＳ６５６相当）。読み込んだデータがＥＳＣコードでは無い場合は、画素群は分割されることなく処理されているものと判断して、読み込んだデータを多値化結果値と読み替えた後、復号用テーブルを参照して画素群内の各画素についてドット形成の有無を決定する（ステップＳ６５８、Ｓ６６０相当）。このとき参照する復号用テーブルは、第３実施例の変形例のドット形成有無決定処理で参照するために、特別に設定された専用のテーブルである。かかる復号用テーブルの設定方法については後述する。
【０３３５】
一方、読み込んだデータがＥＳＣコードである場合は、画素群は分割された状態で処理されているとことを示している。そこで、ＥＳＣコードに続いて記憶されている所定個数の多値化結果値を取得する（ステップＳ６６２相当）。次いで、復号用テーブルを参照して、それぞれの多値化結果値に対するドットデータＤＤを読み出した後、これらドットデータを組み合わせることにより、画素群内の各画素についてのドット形成有無を決定する（ステップＳ６６４、Ｓ６６６相当）。
【０３３６】
以上のようにして、選択した画素群内の各画素についてドット形成の有無を決定することができる。この様な処理を全画素群について行い、全画素群についての処理を終了したと判断したら（ステップＳ６６８：ｙｅｓ相当）、第３実施例の変形例のドット形成有無決定処理を終了する。
【０３３７】
以上に説明した第３実施例における変形例のドット形成有無決定処理においても、前述した第２実施例における変形例のドット形成有無決定処理と同様に、多値化結果値から各画素についてのドット形成有無を迅速に決定することができ、延いては画像を迅速に出力することが可能となる。
【０３３８】
最後に、第３実施例の変形例のドット形成有無決定処理で参照される復号用テーブルの設定方法について簡単に説明する。図５８は、第３実施例の復号用テーブルを設定している様子を示した説明図である。第３実施例の復号用テーブルの設定方法は、図４８を用いて前述した第２実施例の復号用テーブルの設定方法とほぼ同様である。但し、第３実施例の多値化結果値は、画素群の分類番号を特定して初めて解釈可能な値であるから、多値化結果値を大中小各ドットの個数を表すデータに画素群毎に変換する点が大きく異なっている。以下、図５８を参照しながら説明する。
【０３３９】
図５８では、多値化結果値が「１０」であるとして、分類番号１番の画素群と、分類番号２番の画素とについて、それぞれのドットデータＤＤ（１，１０）、ＤＤ（２，１０）を決定する方法を示している。先ず、多値化結果値を１つ選択して、この多値化結果値を画素群毎に大中小各ドットの個数に変換する。すなわち、第３実施例の多値化結果値は、画素群の分類番号毎に意味する内容が異なっているので、分類番号毎に、多値化結果値を解釈しておくのである。図５８の上から２段目には、多値化結果値の内容を分類番号毎に解釈した結果が示されている。
【０３４０】
次いで、ディザマトリックスの中から、それぞれの分類番号に対応するブロックに設定されている閾値を読み出してやる。図５８の上から３段目には、こうして読み出された各ブロックの閾値が示されている。そして、これら閾値に従って、大ドット、中ドット、小ドットの順番で、これらドットを形成する画素位置を決定していく。図５８の上から４段目には、各画素群についてドットを形成する画素位置を決定した様子が示されている。図中で、細かい斜線が付された画素には大ドットが形成され、少し粗い斜線が付された画素には中ドットが形成され、粗い斜線が付された画素には小ドットが形成され、そして、斜線の付されていない画素にはドットが形成されないことを表している。このようにして画素群内の各画素についてドット形成の有無を決定したら、このドット配置を図４６に示したデータ形式のドットデータで表現する。そして得られたドットデータＤＤを、多値化結果値および分類番号の組合せに対応する位置に記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶していけば、第３実施例における変形例のドット形成有無決定処理で参照される復号用テーブルを設定することができる。
【０３４１】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、以上の実施例では、印刷用紙上にドットを形成して画像を印刷する場合について説明したが、本発明の適用範囲は画像を印刷する場合に限られるものではない。例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
【図面の簡単な説明】
【０３４２】
【図１】印刷システムを例にとって本実施例の概要を説明した説明図である。
【図２】本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。
【図３】本実施例のカラープリンタの概略構成を示す説明図である。
【図４】インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。
【図５】第１実施例の画像印刷処理の全体的な流れを示すフローチャートである。
【図６】解像度変換処理を行う様子を概念的に示した説明図である。
【図７】ディザマトリックスの一部を概念的に例示した説明図である。
【図８】ディザマトリックスを参照しながら各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。
【図９】ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。
【図１０】ドット個数のデータから画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。
【図１１】ブルーノイズマスク特性を有するディザマトリックスおよびグリーンノイズマスク特性を有するディザマトリックスについて、マトリックスに設定されている閾値の空間周波数特性を概念的に例示した説明図である。
【図１２】第１実施例の多値化結果値生成処理の流れを示すフローチャートである。
【図１３】解像度変換前後の解像度比に基づいて画素群を分割するか否かを判断した後、代表階調値を決定する様子を概念的に示した説明図である。
【図１４】画素群毎の分類番号を決定するための考え方を示した説明図である。
【図１５】画素群の分類番号を決定する方法を示した説明図である。
【図１６】着目画素群の分類番号を決定する方法を具体的に示した説明図である。
【図１７】第１実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。
【図１８】画素群の分類番号と代表階調値との組合せに応じて適切な多値化結果値を決定する様子を概念的に示した説明図である。
【図１９】多値化結果値を記憶するデータ形式の一例を示した説明図である。
【図２０】多値化結果値を記憶するデータ形式の他の一例を示した説明図である。
【図２１】第１実施例のドット形成有無決定処理の流れを示すフローチャートである。
【図２２】ディザマトリックスに基づいて順序値マトリックスを生成している様子を示した説明図である。
【図２３】多値化結果値と順序値マトリックスとに基づいて画素群内の各画素についてドット形成の有無を決定する様子を概念的に示した説明図である。
【図２４】第１実施例のドット形成有無決定処理で参照される変換テーブルを概念的に示した説明図である。
【図２５】第１実施例における変形例のドット形成有無決定処理の流れを示すフローチャートである。
【図２６】画素群の分類番号を決定する方法を示した説明図である。
【図２７】画素群の座標値から画素群のディザマトリックス中での位置を求める方法を具体的に示した説明図である。
【図２８】第１実施例における変形例のドット形成有無決定処理で参照される復号用テーブルを概念的に示した説明図である。
【図２９】第１実施例の復号用テーブルに設定されているドットデータのデータ構造を示す説明図である。
【図３０】複数個得られたドットデータを組み合わせることにより画素群内の各画素についてのドット形成の有無を決定する様子を示した説明図である。
【図３１】画素群の分割態様を考慮してドットデータの各ビットと画素群内の各画素とを対応付けた様子を例示した説明図である。
【図３２】第１実施例の復号用テーブルを設定する方法を示した説明図である。
【図３３】画素群内に形成される大中小の各ドットの個数をディザ法を適用して決定する処理の流れを示すフローチャートである。
【図３４】大中小の各ドットの形成有無を判断するハーフトーン処理の流れを示すフローチャートである。
【図３５】画像データの階調値を大中小各ドットについての密度データに変換する際に参照されるドット密度変換テーブルを概念的に示した説明図である。
【図３６】画素群毎に大中小の各ドットの形成個数が得られた様子を概念的に示した説明図である。
【図３７】第２実施例の多値化結果値と画素群内に形成される各種ドットの個数の組合せとの対応関係を示した説明図である。
【図３８】第２実施例における多値化結果値生成処理の流れを示すフローチャートである。
【図３９】第２実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。
【図４０】第２実施例において多値化結果値と、分割態様を示すＥＳＣコードとが割り当てられている様子を示した説明図である。
【図４１】第２実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。
【図４２】第２実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。
【図４３】第２実施例のドット形成有無決定処理において参照される中間データ用の変換テーブルを概念的に示した説明図である。
【図４４】第２実施例のドット形成有無決定処理において中間データと順序値マトリックスとを用いてドット形成の有無を決定する様子を示した説明図である。
【図４５】第２実施例における変形例のドット形成有無決定処理の流れを示すフローチャートである。
【図４６】第２実施例の復号用テーブルに設定されているドットデータのデータ構造を示した説明図である。
【図４７】複数のドットデータから画素群内の各画素についてのドット形成有無を決定する様子を示す説明図である。
【図４８】第２実施例の復号用テーブルを設定する方法を示した説明図である。
【図４９】第３実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。
【図５０】第３実施例の多値化用テーブルにおいて画素群の分類番号毎に設定されている代表階調値と多値化結果値との対応関係を例示した説明図である。
【図５１】５ビットのデータに多値化結果値と分割態様を示すＥＳＣコードとが対応付けられている様子を示した説明図である。
【図５２】第３実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。
【図５３】第３実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。
【図５４】第３実施例のドット形成有無決定処理において多値化結果値を中間データに変換する際に参照される変換テーブルを概念的に示した説明図である。
【図５５】画素群内の各画素について大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。
【図５６】第３実施例の多値化結果値生成処理中で参照される多値化用テーブルを設定する処理の流れを示したフローチャートである。
【図５７】第３実施例の変形例の多値化結果値生成処理において参照される閾値テーブルを概念的に示した説明図である。
【図５８】第３実施例の復号用テーブルを設定している様子を示す説明図である。
【符号の説明】
【０３４３】
１０…コンピュータ、  ２０…カラープリンタ、  １００…コンピュータ、
１０８…周辺機器インターフェースＰＩＦ、
１０９…ディスクコントローラＤＤＣ、
１１０…ネットワークインターフェースカードＮＩＣ、
１１２…ビデオインターフェースＶＩＦ、
１１６…バス、    １１８…ハードディスク、    １２０…デジタルカメラ、
１２２…カラースキャナ、    １２４…フレキシブルディスク、
１２６…コンパクトディスク、    ２３０…キャリッジモータ、  ２３５…モータ、
２３６…プラテン、    ２４０…キャリッジ、    ２４１…印字ヘッド、
２４２…インクカートリッジ、    ２４３…インクカートリッジ、
２４４…インク吐出用ヘッド、  ２  ６０…制御回路、  ２００…カラープリンタ、
３００…通信回線、    ３１０…記憶装置
【図１】
2006042119.tif 000003
【図２】
2006042119.tif 000004
【図３】
2006042119.tif 000005
【図４】
2006042119.tif 000006
【図５】
2006042119.tif 000007
【図６】
2006042119.tif 000008
【図７】
2006042119.tif 000009
【図８】
2006042119.tif 000010
【図９】
2006042119.tif 000011
【図１０】
2006042119.tif 000012
【図１１】
2006042119.tif 000013
【図１２】
2006042119.tif 000014
【図１３】
2006042119.tif 000015
【図１４】
2006042119.tif 000016
【図１５】
2006042119.tif 000017
【図１６】
2006042119.tif 000018
【図１７】
2006042119.tif 000019
【図１８】
2006042119.tif 000020
【図１９】
2006042119.tif 000021
【図２０】
2006042119.tif 000022
【図２１】
2006042119.tif 000023
【図２２】
2006042119.tif 000024
【図２３】
2006042119.tif 000025
【図２４】
2006042119.tif 000026
【図２５】
2006042119.tif 000027
【図２６】
2006042119.tif 000028
【図２７】
2006042119.tif 000029
【図２８】
2006042119.tif 000030
【図２９】
2006042119.tif 000031
【図３０】
2006042119.tif 000032
【図３１】
2006042119.tif 000033
【図３２】
2006042119.tif 000034
【図３３】
2006042119.tif 000035
【図３４】
2006042119.tif 000036
【図３５】
2006042119.tif 000037
【図３６】
2006042119.tif 000038
【図３７】
2006042119.tif 000039
【図３８】
2006042119.tif 000040
【図３９】
2006042119.tif 000041
【図４０】
2006042119.tif 000042
【図４１】
2006042119.tif 000043
【図４２】
2006042119.tif 000044
【図４３】
2006042119.tif 000045
【図４４】
2006042119.tif 000046
【図４５】
2006042119.tif 000047
【図４６】
2006042119.tif 000048
【図４７】
2006042119.tif 000049
【図４８】
2006042119.tif 000050
【図４９】
2006042119.tif 000051
【図５０】
2006042119.tif 000052
【図５１】
2006042119.tif 000053
【図５２】
2006042119.tif 000054
【図５３】
2006042119.tif 000055
【図５４】
2006042119.tif 000056
【図５５】
2006042119.tif 000057
【図５６】
2006042119.tif 000058
【図５７】
2006042119.tif 000059
【図５８】
2006042119.tif 000060