しかしながら、特許文献1の技術では、閾値が小さい順にドットが成長することを前提にして、期待するドット成長順序を取得しようとするが、誤差拡散処理において発生する誤差の影響によって必ずしも閾値の小ささとドット成長順序とは対応するものではない。そのため、この技術では閾値設計時に想定したのと異なるドットパターンを出力することがあるという問題があった。また、グラデーション画像を処理する結果、階調の変化が一定にならず階調段差が発生するという問題があった。
本発明は、上記の問題に鑑みてなされ、その目的は、画像処理の際の画素位置に応じた閾値を用いる誤差拡散処理、あるいは画素位置に応じた閾値を用いる平均誤差最小処理において、高品質な画像形成のための画像処理を施すことができる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびコンピュータ読み取り可能な記録媒体を提供することである。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、画像処理装置であって、画像が入力される画像入力手段と、入力された前記画像について、注目画素位置周辺の誤差値に所定の重みを付けて入力階調値に加算し修正入力値を算出する修正入力値算出手段と、前記修正入力値算出手段が算出した注目画素位置の修正入力値と、前記注目画素位置に対応する所定の閾値とに基づいて出力階調値を決定する出力階調値決定手段と、前記出力階調値決定手段が決定した出力階調値と前記修正入力値との差分を誤差値として算出する誤差値算出手段と、前記誤差値を記憶する記憶手段と、前記記憶手段に記憶された前記誤差値と誤差マトリックスとを用いて、前記注目画素位置周辺の誤差値に所定の重みを付けた値を算出する算出手段と、を備え、前記出力階調値決定手段は、前記所定の閾値として、所定の複数種類の出力ドットパターンを定常状態で出力階調値として出力する前記複数種類の出力ドットパターンに対応してそれぞれ算出される値であり各画素位置での誤差値に所定の重みが付けられて入力階調値に加算された値である第2修正入力値から求められた、各前記出力ドットパターンとなるための閾値の範囲に基づいて絞り込まれた閾値の範囲から設定されたものを使用するものである。
また、請求項2にかかる発明は、請求項1に記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、求められた前記閾値の範囲における中央値を含む前記中央値の近傍の中から設定されたものを使用するものである。
また、請求項3にかかる発明は、請求項1に記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中から設定されたものを使用するものである。
また、請求項4にかかる発明は、請求項3に記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中央値を含む前記中央値の近傍の中から設定されたものを使用するものである。
また、請求項5にかかる発明は、請求項1〜4のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンそれぞれに対して誤差の平均値を指定した場合の前記閾値の範囲から設定されたものを使用するものである。
また、請求項6にかかる発明は、請求項1〜5のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、前記出力階調値が所定の範囲である画素の近傍の平均出力階調値が小さい前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項7にかかる発明は、請求項1〜5のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、前記出力階調値が所定の範囲である画素の近傍に出力階調値が大きい画素が存在しない前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項8にかかる発明は、請求項6または7に記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の閾値は、前記所定の範囲が最低濃度を除いた小さな出力階調値の範囲のものから設定されたものを使用するものである。
また、請求項9にかかる発明は、請求項1〜5のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、前記出力階調値が所定の範囲である画素の近傍の出力階調値の平均が大きい前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項10にかかる発明は、請求項1〜5のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、前記出力階調値が所定の範囲である画素の近傍に出力階調値が小さい画素が存在しない前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項11にかかる発明は、請求項9または10に記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の範囲が最高濃度を除いた大きい出力階調値の範囲のものから設定されたものを使用するものである。
また、請求項12にかかる発明は、請求項6〜11のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記所定の範囲を前記近傍の出力階調値に応じて変化させて設定されたものを使用するものである。
また、請求項13にかかる発明は、請求項6〜12のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記近傍の画素が前記注目画素に隣接する画素であるとして設定されたものを使用するものである。
また、請求項14にかかる発明は、請求項6〜13のいずれか1つに記載の画像処理装置において、前記出力階調値決定手段は、前記所定の閾値として、前記近傍の画素が前記注目画素の主走査方向の近傍の画素であるとして設定されたものを使用するものである。
また、請求項15にかかる発明は、請求項1〜14のいずれか1つに記載の画像処理装置において、さらに、画素の位相制御を行う位相制御手段を備えた。
また、請求項16にかかる発明は、請求項15に記載の画像処理装置において、前記位相制御手段は、前記注目画素の位相を、主走査方向に前後の画素値に基づいて決定するものである。
また、請求項17にかかる発明は、画像処理方法であって、画像が入力される画像入力手段と、入力された前記画像について、注目画素位置周辺の誤差値に所定の重みを付けて入力階調値に加算し修正入力値を算出する修正入力値算出手段と、前記修正入力値算出手段が算出した注目画素位置の修正入力値と、前記注目画素位置に対応する所定の閾値とに基づいて出力階調値を決定する出力階調値決定手段と、前記出力階調値決定手段が決定した出力階調値と前記修正入力値との差分を誤差値として算出する誤差値算出手段と、前記誤差値を記憶する記憶手段と、前記記憶手段に記憶された前記誤差値と誤差マトリックスとを用いて、前記注目画素位置周辺の誤差値に所定の重みを付けた値を算出する算出手段と、を備え、前記出力階調値決定手段は、前記所定の閾値として、所定の複数種類の出力ドットパターンを定常状態で出力階調値として出力する前記複数種類の出力ドットパターンに対応してそれぞれ算出される値であり各画素位置での誤差値に所定の重みが付けられて入力階調値に加算された値である第2修正入力値から求められた、各前記出力ドットパターンとなるための閾値の範囲に基づいて絞り込まれた閾値の範囲から設定されたものを使用するものである。
また、請求項18にかかる発明は、請求項17に記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、求められた前記閾値の範囲における中央値を含む前記中央値の近傍の中から設定されたものを使用するものである。
また、請求項19にかかる発明は、請求項18に記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中から設定されたものを使用するものである。
また、請求項20にかかる発明は、請求項19に記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中央値を含む前記中央値の近傍の中から設定されたものを使用するものである。
また、請求項21にかかる発明は、請求項17〜20のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンそれぞれに対して誤差の平均値を指定した場合の前記閾値の範囲から設定されたものを使用するものである。
また、請求項22にかかる発明は、請求項17〜21のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、前記出力階調値が所定の範囲である画素の近傍の平均出力階調値が小さい前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項23にかかる発明は、請求項17〜21のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、前記出力階調値が所定の範囲である画素の近傍に出力階調値が大きい画素が存在しない前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項24にかかる発明は、請求項22または23に記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の範囲が最低濃度を除いた小さな出力階調値の範囲であるとして設定されたものを使用するものである。
また、請求項25にかかる発明は、請求項17〜21のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、前記出力階調値が所定の範囲である画素の近傍の出力階調値の平均が大きい前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項26にかかる発明は、前記制御工程は、請求項17〜21のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の複数種類の出力ドットパターンから、前記出力階調値が所定の範囲である画素の近傍に出力階調値が小さい画素が存在しない前記出力ドットパターンを除外して設定されたものを使用するものである。
また、請求項27にかかる発明は、請求項25または26に記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の範囲が最高濃度を除いた大きい出力階調値の範囲であるとして設定されたものを使用するものである。
また、請求項28にかかる発明は、請求項22〜27のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記所定の範囲を前記近傍の出力階調値に応じて変化させて設定されたものを使用するものである。
また、請求項29にかかる発明は、請求項22〜28のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記近傍の画素が前記注目画素に隣接する画素であるとして設定されたものを使用するものである。
また、請求項30にかかる発明は、請求項22〜29のいずれか1つに記載の画像処理方法において、前記出力階調値決定工程は、前記所定の閾値として、前記近傍の画素が前記注目画素の主走査方向の近傍の画素であるとして設定されたものを使用するものである。
また、請求項31にかかる発明は、請求項17〜30のいずれか1つに記載の画像処理方法において、さらに、画素の位相制御を行う位相制御工程を含むものである。
また、請求項32にかかる発明は、請求項31に記載の画像処理方法において、前記位相制御工程は、前記注目画素の位相を、主走査方向に前後の画素値に基づいて決定するものである。
また、請求項33にかかる発明は、プログラムであって、請求項17〜32のいずれか1つに記載の画像処理方法をコンピュータに実行させるものである。
また、請求項34にかかる発明は、コンピュータ読み取り可能な記録媒体であって、請求項33に記載のプログラムを記録したものである。
また、請求項1にかかる発明によれば、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項2にかかる発明によれば、所定の閾値として、求めた閾値の範囲における中央値を含む中央値の近傍の中から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項3にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項4にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中央値を含む中央値の近傍の中から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項5にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンそれぞれに対して誤差の平均値を指定した場合の閾値の範囲から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項6にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、出力階調値が所定の範囲である画素の近傍の平均出力階調値が小さい出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項7にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、出力階調値が所定の範囲である画素の近傍に出力階調値が大きい画素が存在しない出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項8にかかる発明によれば、所定の閾値として、所定の閾値は、所定の範囲が最低濃度を除いた小さな出力階調値の範囲のものから設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項9にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、出力階調値が所定の範囲である画素の近傍の出力階調値の平均が大きい出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項10にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、出力階調値が所定の範囲である画素の近傍に出力階調値が小さい画素が存在しない出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項11にかかる発明によれば、所定の閾値として、所定の範囲が最高濃度を除いた大きい出力階調値の範囲のものから設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項12にかかる発明によれば、所定の閾値として、所定の範囲を近傍の出力階調値に応じて変化させて設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項13にかかる発明によれば、所定の閾値として、近傍の画素が注目画素に隣接する画素であるとして設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項14にかかる発明によれば、所定の閾値として、近傍の画素が注目画素の主走査方向の近傍の画素であるとして設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項15にかかる発明によれば、さらに、画素の位相制御を行う。この構成によって、好適に閾値を設定して出力階調値処理を施した後に画素の位相を制御してさらに精細な中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項16にかかる発明によれば、注目画素の位相を、主走査方向に前後の画素値に基づいて決定する。この構成によって、主走査方向に画素の位相を制御して、さらに精細な中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項17にかかる発明によれば、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項18にかかる発明によれば、所定の閾値として、求めた閾値の範囲における中央値を含む中央値の近傍の中から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項19にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項20にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンを、定常状態において異なる出力ドットパターンとして最大数出力させる閾値の範囲の中央値を含む中央値の近傍の中から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項21にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンそれぞれに対して誤差の平均値を指定した場合の閾値の範囲から設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項22にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、出力階調値が所定の範囲である画素の近傍の平均出力階調値が小さい出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項23にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、画素値が大きいほど濃度が高い設定である場合において、出力階調値が所定の範囲である画素の近傍に出力階調値が大きい画素が存在しない出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項24にかかる発明によれば、所定の閾値として、所定の閾値は、所定の範囲が最低濃度を除いた小さな出力階調値の範囲のものから設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項25にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、出力階調値が所定の範囲である画素の近傍の出力階調値の平均が大きい出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項26にかかる発明によれば、所定の閾値として、所定の複数種類の出力ドットパターンから、出力階調値が所定の範囲である画素の近傍に出力階調値が小さい画素が存在しない出力ドットパターンを除外して設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項27にかかる発明によれば、所定の閾値として、所定の範囲が最高濃度を除いた大きい出力階調値の範囲のものから設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項28にかかる発明によれば、所定の閾値として、所定の範囲を近傍の出力階調値に応じて変化させて設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項29にかかる発明によれば、所定の閾値として、近傍の画素が注目画素に隣接する画素であるとして設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項30にかかる発明によれば、所定の閾値として、近傍の画素が注目画素の主走査方向の近傍の画素であるとして設定されたものを使用する。この構成によって、好適に閾値を設定して中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項31にかかる発明によれば、さらに、画素の位相制御を行う。この構成によって、好適に閾値を設定して出力階調値処理を施した後に画素の位相を制御してさらに精細な中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項32にかかる発明によれば、注目画素の位相を、主走査方向に前後の画素値に基づいて決定する。この構成によって、主走査方向に画素の位相を制御して、さらに精細な中間調処理を施すことができるので、高品質の画像処理を施すことができる。
また、請求項33にかかる発明によれば、請求項17〜32のいずれか1つに記載の画像処理方法をコンピュータに実行させる。この構成によって、コンピュータに請求項17〜32のいずれか1つに記載の画像処理方法を実行させることができる。
また、請求項34にかかる発明によれば、コンピュータに読み取らせて、請求項33に記載のプログラムを実行させることができる。
(1.実施の形態1)
(1.1.全体構成)
図1は、本発明の実施の形態1による画像処理装置を組み込んだ画像形成装置の機能的ブロック図である。画像形成装置1は、スキャナ3、画像処理装置10、および画像出力装置5を備える。
スキャナ3は原稿画像の読み取りを行う。スキャナ3は、光源から原稿を照射して、照射された光を集光する光学結像レンズ31と、光学結像レンズ31を介して入力された光を電気信号に変換する光電変換素子(CCDセンサ)32と、光電変換素子32から出力された色信号を処理するアナログ信号処理部33と、を備える。
光学結像レンズ31を介して光電変換素子上に結像された原稿の画像データは、光電変換素子(CCD)32によってRGBのアナログ電気信号に変換される。光電変換素子32によって変換されたRGBのアナログ電気信号は、アナログ信号処理部33によってRGBの各色毎にサンプル&ホールドされ、ダークレベルの補正等が行われた後に、A/D変換(アナログ・デジタル変換)処理を施され、変換されたフルカラーのデジタル画像データは、画像処理部10に入力される。
ここで、実施の形態1による画像処理装置10は、入力する画像データをスキャナ3で取得した画像データを処理するとして説明するが、画像データを取得する装置はスキャナ3に限定されるものではなく、通信機能を有する通信装置がネットワークを介して送信されるデータを受信して処理する構成とすることもできる。即ち、画像データの入力はどのような形であっても良く、スキャナ3に限定されるものではない。
図2は、実施の形態1による画像処理装置の機能的ブロック図である。画像処理装置10は、前処理ユニット11および中間調処理部100を備える。前処理ユニット11は、シェーディング補正部12、階調補正部13、およびカラー/モノクロ変換部14を備える。画像処理装置10においては、入力した画像データは色補正、γ補正といった従来からスキャナで行われている補正処理や、スムージング処理、エッジ強調、加工処理の処理を施され、中間調処理部100によって中間調処理を施されて、画像出力部5に出力される。
画像出力装置5は、画像処理装置10から出力される画像データを受信し、1画素内の記録時間制御又は1画素の記録の強弱を制御して画像を形成して出力する。ここで画像形成は、記録媒体に記録を行うことにより、あるいは、プロジェクターで投影することによるなど、およそ画像を形成して出力するものであればどのようなものであっても適用可能である。スキャナ3、画像処理装置10、および画像出力装置5は、図示しないCPUにより実行される制御プログラムによって制御される。
画像処理装置10について、更に詳細に説明する。スキャナ3のアナログ信号処理部33から出力されるRGBの画像データは、先ず、前処理ユニット11が備えるシェーディング補正部12に入力される。シェーディング補正部12は、原稿を読み取る光電変換素子の特性のばらつきや原稿を照射する原稿照明用ランプの配光特性の補正を行う。
階調補正部13は、シェーディング補正部12によってシェーディング補正されたデータに対して、輝度信号(RGB)から濃度データ(CMY)に変換する。即ち、階調補正部13は、C(シアン)、M(マゼンタ)、Y(イエロー)の画像データを生成する。カラー/モノクロ変換部14は、階調補正部13によって濃度変換されたデータを受信し、カラー画像データからモノクロ(白黒)画像データを取得する。中間調処理部100は、カラー/モノクロ変換部14によって取得された画像データを、受信し、中間調表現のための変換処理を施す。なお、入力画像データと出力画像データはともに0〜255の値を取り、0はもっとも濃度が低く、255はもっとも濃度が高いとする。
(1.2.中間調処理部)
図3は、画像処理装置の有する中間調処理部100の機能的ブロック図である。図4は、閾値マトリクスの組の一例を示す模式図である。中間調処理部100は、画像入力部101,修正入力値算出部102、出力階調値決定部103、誤差算出部104,誤差バッファ105、誤差和算出部106、エッジ検知部107、閾値選択部108、記憶部109、および位相制御部110を備える。
画像入力部101は、例えばカラー複写機などの画像形成装置において、スキャナで読みとられた画像データがシェーディング補正、色補正、γ補正を施され、CMYKなどの各版毎に変換された画像データを入力し、入力した画像データを画素毎に順次後段の処理に送信する。
エッジ検知部107は、後述する方法で入力画像データ中のエッジの検知を行い、エッジ検知結果を閾値選択部108に出力する。閾値選択部108は、エッジ検知部107から送信されたエッジ検知結果に従って、画像データにおける注目画素がエッジである場合は注目画素の画素位置によらず固定閾値を用い、また、エッジでない場合は図4に示す閾値マトリクスを用いて、注目画素の量子化を行うことを決定し、決定した閾値マトリクスを、出力階調値決定部103へ出力する。なお、固定閾値と閾値マトリクスは、予め記憶部109に格納されている。
エッジ検知部107の検知結果に応じて、閾値選択部108は選択して記憶部109から読み出す。
修正入力値算出部102は、画像入力部101から出力された画像データ中の注目画素における画素データと、後述する誤差和算出部106で算出された注目画素の周辺画素における誤差和との和である修正入力値を算出し、出力階調値決定部103に出力する。
出力階調値決定部103は、閾値選択部108によって注目画素に対応して選択され、出力される閾値マトリクス(固定閾値および閾値マトリクスのいずれかの閾値)と、修正入力値算出部102で算出された修正入力値との大小関係を比較して、出力階調値を決定する、即ち、閾値処理を施す。出力階調値決定部103が決定した出力階調値は、位相制御部110を介して出力画像データとして画像出力装置5に出力される。
誤差算出部104は、修正入力値算出部102が算出した修正入力値と、出力階調値決定部103が決定した出力階調値との差分を誤差値として算出する。誤差バッファ105は、誤差算出部104が算出した誤差値を格納する。
誤差和算出部106は、誤差マトリクスを用いて注目画素に関与する誤差の和を算出する。ここで、注目画素に関与する誤差の和とは、修正入力値を算出する時に、入力画像データに加算する誤差の和のことである。誤差和算出部106は、誤差算出部104が算出して誤差バッファ105に格納されている誤差値を読み出し、誤差値と誤差マトリクスとを積和演算することで注目画素に関与する誤差和を算出し、算出した誤差和を修正入力値算出部102へ出力する。
図5は、出力階調値決定部103が、閾値によって出力階調値を決定する手順を説明するフローチャートである。今、閾値選択部108が、画像データにおける注目画素がエッジである場合に、注目画素の画素位置によって固定閾値を選択することについて説明する。あらかじめ出力階調値85に相当するドット、170に相当するドット、255に相当するドットを出力するか否かを決定する閾値A、閾値B、および閾値Cを、それぞれ24、104、および184と定める。
出力階調値決定部103は、注目画素の修正入力値が184(図5中では閾値Cと記す)より大きいか否かを判定し(ステップS101)、大きいと判定した場合(ステップS101のYes)、出力階調値は255とする(ステップS102)。これ以外の場合、修正入力値が104より大きいか否かを判定し(ステップS103)、大きい場合(ステップS103のYes)、出力階調値は170とする(ステップS104)。これ以外の場合、修正入力値が24より大きいか否かを判定し、大きいか否かを判定(ステップS105)、大きいと判定した場合(ステップS105のYes)、出力階調値は85とする(ステップS106)。そして、これらのいずれでもない場合(ステップS105のNo)、出力階調値は0とする(ステップS107)。
ここでは、階調値算出部103が出力する出力階調値を0、85、170、255とし、これらの出力階調値を発生させるための閾値を24、104、184としたが、出力階調値は均等である必要はない。したがって、小さな出力階調値では出力階調値に相当する濃度を安定して表現できないために、大きめの出力階調値を使用し、例えば、0、128、192、255という不均等の出力階調値の組を利用することもできる。また、閾値は画素位置によって変化せずに、固定である点が重要であり、また、この閾値の組に限らず、20、60、128というような不均等な閾値の組であっても良い。
エッジ検知部107がエッジではないと検知した場合、閾値選択部108が選択する閾値マトリクスについて説明する。図4は、閾値マトリクスの一例を示す模式図である。図4に示した閾値マトリクスA201、閾値マトリクスB202、および閾値マトリクスC203は、それぞれ出力階調値85に相当するドット、170に相当するドット、および255に相当するドットを出力するか否かを決定する閾値である。図4中に示したこれらの閾値マトリクスは、600dpiの出力解像度において、約212線、45度の網点スクリーンを表現する4値出力用の閾値マトリクスである。閾値マトリクス上で注目画素に対応する位置は、出力画像のサイズにタイル状に繰り返し敷き詰めたとき、注目画素が閾値マトリクス中のどの位置に相当するかにより決定される。ここでスクリーンとは、ハーフトーンセルによる出力画像の表現であり、1インチあたりのハーフトーンセルの数をスクリーン線数と呼び、その単位はlpi(=line per inch)である。
すなわち、閾値マトリクスのサイズが横w画素、縦h画素である場合、出力画像データの座標における横X、縦Yの座標にある注目画素に対しては、閾値マトリクス座標では横(X mod w)、縦(Y mod h)の閾値を用いる。ここで、modはモジュールを意味し、(X mod w)は、Xをwで割ったときの余り、即ちモジュール計算結果を意味する。図4においては、w=h=4であり、例えば出力画像データの座標で(X、Y)=(9、6)である画素に対しては、閾値マトリクス座標で(x、y)=(1、2)の位置の閾値を用いて、図5に示した手順によって出力階調値を求める。
すなわち、出力階調値決定部103が決定する出力階調値85、170、255に相当するドットを出すか否かを決定するための閾値A、閾値B、閾値Cは上記の座標位置(9,6)においては(1,2)と等価であり、それぞれ176、192、207となり、注目画素の修正入力値が207より大きければ出力階調値(出力画像データの値)は255、そうでなく且つ修正入力値が192より大きければ出力階調値(出力画像データの値)は170、さらにそれらでなく且つ修正入力値が176より大きければ出力階調値(出力画像データの値)は85、修正入力値がこれらのいずれでもなければ出力階調値(出力画像データ)の値は0となる。
誤差算出部104は、修正入力値算出部102が算出した修正入力値から出力階調値決定部103が決定した出力階調値を差し引いた差を誤差値として算出し、誤差バッファ105に格納する。
また、出力階調値決定部103から出力された出力階調値は、位相制御部108に出力され、位相制御部108は受信した出力階調値を主走査方向における前後の出力画像データの値の大小関係に基づき、大きな値の方へ寄せて出力するよう位相を制御する。この点は公知の技術であり、本発明の本質ではないため、説明は省略する。
(1.3.誤差マトリクス)
図6は、誤差和算出部106が注目画素の関与する誤差の和を算出するために用いる誤差マトリクスの一例を示す模式図である。ここで、修正入力値算出部102が、修正入力値を算出することについて説明する。先ず、誤差和算出部106は、図6に示した誤差マトリクスと誤差算出部104が算出した誤差とを用いて、注目画素に関与する誤差の和を算出する。この誤差マトリクスは、誤差和算出部106に記憶されており、ある画素における誤差和を算出するために、どこの画素で発生した誤差をどの程度の割合で反映させるかを定義するためのものである。ここで、関与する誤差の和とは、修正入力値を算出する際に、入力画像データに加算する誤差の和のことを指す。
ここで、図6においてx印で示した位置が注目画素を示す。例えば、注目画素の1ライン真上の画素の量子化による誤差値が32であった場合、誤差マトリクス中のその画素に対応する値は4/32であるから、注目画素に関与する誤差値は量子化による誤差の値と誤差マトリクス中の画素に対応する値との積となるので、4である。このようにして、誤差和算出部106は、1つの注目画素に対して2ライン上の7画素、1ライン上の7画素、同一ラインの3画素の計17画素における量子化による誤差の値を誤差バッファ105から読み出して、量子化による誤差の値と誤差マトリクスとを積和演算することで注目画素に関与する誤差和を算出し、算出した誤差和を修正入力値算出部102へ出力する。
なお、図6に示した誤差マトリクスは、全ての要素を加算した場合、1となるように設計されている。これは、発生した誤差値を過不足なく周囲の画素で用いるためである。
図7は、誤差マトリクスの一例を示す模式図である。ここで、誤差和算出部106は、図7に示したような誤差マトリクスを利用して誤差値を算出しても良い。図7に示した誤差マトリクスは、図6に示したマトリクス中の各値を32倍したものである。例えば、注目画素の1ライン真上の画素の量子化誤差値が32であった場合、誤差マトリクス中のその画素に対応する値は4であるから、その画素から注目画素に関与する誤差値はひとまず両者の積である128とする。
このようにして、1つの注目画素に対して2ライン上の7画素、1ライン上の7画素、同一ラインの3画素の計17画素における誤差値を誤差バッファ105から読み出して、誤差マトリクスと演算を行うことによって、注目画素に関与する誤差和を算出する。このような方法をとることにより、高速なシフト演算や整数演算で注目画素に関与する誤差和を算出することができる。以上の処理を施した後、誤差和を32で除算する。したがって、実質的な処理は図6に示した処理と変わりはないことがわかる。
(1.4.エッジ検知部)
図8は、エッジ検知部107の機能的ブロック図である。図9は、一次微分フィルタの一例を示す模式図である。図10は、二次微分フィルタの一例を示す模式図である。エッジ検知部107は、一次微分フィルタ部601、絶対値算出部602、一次微分最大値選択部603、エッジ縁判定部604、高濃度判定部605、二次微分フィルタ部606、二次微分最大値選択部607、線中判定部608、そしてエッジ判定部609を備える。
一次微分フィルタ部601は、画像入力部101(図3)から出力された入力画像データに対して、一次微分フィルタ演算を施す。縦横斜めの4方向の傾斜を検出するために図9のフィルタ701〜フィルタ704を用いて、それぞれ入力画像データに対して積和演算を行い、4種類の一次微分値を得て、絶対値算出部602へ出力する。
絶対値算出部602は、一次微分フィルタ部601から出力された一次微分値の絶対値をそれぞれ求め、一次微分最大値選択部603へ出力する。一次微分最大値選択部603は、絶対値算出部602から出力された4種類の一次微分値の絶対値のうち、最大となる値を注目画素の一次微分最大値として、エッジ縁判定部604へ出力する。
ここで、図8に示される通り、画像入力部101(図3)から出力された入力画像データは、一次微分フィルタ601にのみ入力されるものではなく、高濃度判定部605にも入力される。高濃度判定部605は、注目画素の入力画像データが、所定の濃度閾値以上であるか否かを判定して、高濃度判定結果をエッジ縁判定部604へ出力する。
エッジ縁判定部604は、一次微分最大値選択部603から受信した一次微分最大値と、高濃度判定部605から受信した高濃度判定結果とから、一次微分最大値が一次微分閾値以上であり、かつ高濃度判定結果が真である場合に、注目画素をエッジ縁であると判定し、それ以外の場合はエッジ縁でないと判定し、判定されたエッジ縁判定結果をエッジ判定部609に出力する。
さらに、画像入力部101から出力された入力画像データは、二次微分フィルタ606に入力される。二次微分フィルタ606は、入力画像データに対して、二次微分フィルタ演算を行う。二次微分フィルタ606は、縦横斜めの4方向の傾斜を検出する二次微分フィルタ801〜804によって、入力画像データに対して積和演算を施し、4種類の二次微分値を得て、二次微分最大値選択部607へ出力する。
二次微分最大値選択部607は、二次微分フィルタ部606から受信した4種類の二次微分値のうち最大の値を注目画素の二次微分最大値として選択し、線中判定部608へ出力する。
線中判定部608は、二次微分最大値選択部607から受信した二次微分最大値から、二次微分最大値が二次微分閾値以上である場合、注目画素を線中であると判定し、それ以外の場合は線中でないと判定し、判定した線中判定結果をエッジ判定部609に出力する。
エッジ判定部609は、エッジ縁判定部604から受信したエッジ縁判定結果と、線中判定部608から受信した線中判定結果とから、エッジ縁判定結果と線中判定結果の少なくともいずれかが真である場合にエッジであると判定し、それ以外の場合はエッジではないと判定する。このようにしてエッジ判定部609が判定したエッジ判定結果を、エッジ検知部107はエッジ検知結果として出力する。
図11−1は、エッジ検知部107において高濃度判定領域を検知することを説明する図である。図11−2は、エッジ検知部107において一次微分判定領域を検知することを説明する図である。図11−3は、エッジ検知部107において二次微分判定領域を検知することを説明する図である。図11−4は、エッジ検知部107においてエッジ判定領域を検知することを説明する図である。図11−1〜11−4では、説明のために一次元画像として示してある。一次元画像とは、一次元の座標に対して画素値(濃度)が与えられた画像データのことである。本実施の形態で座標は離散的な値を取るものとする。なお、一次元画像であるため、一次微分値および二次微分値は一方向のみのフィルタで算出した結果を示している。
図11−1は、入力される画像データの階調値分布を示す。縦軸は入力される画像データの階調値を、横軸は画素の座標値を表す。濃度閾値が905以上の階調値である画素を高濃度と判定し、高濃度判定領域908を検知する。ここでの画素とは、入力画像データを構成する単位である。
図11−2は、一次微分絶対値の算出結果を示す。入力画像を一次微分して絶対値を求めた結果を示し、縦軸は一次微分の絶対値を表す。入力画像データに対して一次微分の絶対値が一次微分閾値906以上である画素を一次微分判定領域909として検知する。
図11−3は、二次微分算出結果を示す。入力画像を二次微分した結果を示し、縦軸は二次微分値を表す。入力画像に対して二次微分値が二次微分閾値907以上である画素を二次微分判定領域910として検知する。
図11−4は、エッジ検知結果を示す。エッジ判定部609は、エッジ判定領域911をエッジとして判定している。ここで、エッジ判定部609は、高濃度判定領域907であってかつ一次微分判定領域908である領域、もしくは二次微分判定領域909である領域、のいずれかを満たす領域をエッジ判定領域911として判定する。このような判定基準によって、細線や小さな点の内部を含み、背景を除いたエッジ部分を検知することができる。
(1.5.閾値マトリクス)
ここで、図4に示した閾値マトリクスを設計する手順について説明する。最初、画像形成装置に出力させたい出力ドットパターンの定常状態における各画素位置での修正入力値を算出する。ここで定常状態とは、一定の入力階調値であるベタ画像を中間調処理した結果、安定して同じパターンが繰り返し発生している状態を指す。定常状態における各画素位置での修正入力値から、与えた出力ドットパターンとなる閾値の範囲を求める。この手順を種々の出力ドットパターンに対して行い、それぞれのパターンで求めた閾値の範囲を絞り込む。
図12は、図4に示した閾値マトリクスの設計手順を説明するフローチャートである。まず、画像形成装置に出力させたい出力ドットパターンを複数、あるいは多数準備する。ここで出力ドットパターンをN個準備したと仮定する。最初に、N個の出力ドットパターンの中から1つの出力ドットパターンを選択して(ステップS201)、選択された出力ドットパターンで定常状態をなしている時の各画素位置での修正入力値を算出する(ステップS202)。算出した修正入力値から、与えたドットパターンとなるための閾値の範囲を求める(ステップS203)。出力ドットパターンN個の全てについて、ステップS201〜203を終了したか否かを判定し(ステップS204)、終了していない場合(ステップS204のNo)はステップS201に戻り、終了した場合(ステップS204のYes)は終了する。ここで、各出力ドットパターンに対して求めた閾値の範囲を基にして、最終的な閾値の範囲を絞り込んで閾値を決定する。これらのステップについて、さらに詳細に説明する。
図13は、出力ドットパターンの組の一例を示す模式図である。図13に示された各出力ドットパターン1101〜1125を用いて、定常状態での各画素位置における修正入力値の算出方法を説明する。図13中における各マトリクスのx方向を主走査方向、y方向を副走査方向とする。すなわち、各マトリクスの左から右方向へレーザを走査して画像処理するものである。
図13中の各出力ドットパターンは、各画素の出力階調値が0、85、170、255のいずれかである4値出力のドットパターンを示している。例えば、図中11番目の出力ドットパターン1111は、出力画像データの値の平均値が、
(0×8+85×2+255×6)÷16=106.25
であることから、階調値が106.25の大きなベタ画像を入力した場合、定常状態では出力ドットパターン1111で示す出力ドットパターンの繰り返しが出現することになる。ここで、上記平均値の算出は、マトリクス中の0の値が8つ、85の値が2つ、255の値が6つあり、その各値を加算した値に対してマトリクス数である16で除算したものが平均値である。
図14は、出力ドットパターンにおける画素位置の表記のしかたを説明する図である。出力ドットパターンにおける画素位置(x、y)=(0、0)はp0、画素位置(x、y)=(1、0)はp1などと表す。
ここで、p0の出力階調値をb0、p0で発生する誤差値をe0、p0での修正入力値をf0、入力階調値をdと表すと、(式1)が成り立つ。
図15は、出力ドットパターンを並べた模式図である。式1の意味は、例えばp0での修正入力値f0は、入力階調値と、図15中で網掛けをした画素位置からの誤差値に重み付けした値とを、加算して求めることから、
f0=d+1/32×(0・e3+1・e0+1・e1+2・e2+1・e3+1・e0+0・e1+1・e7+1・e4+2・e5+4・e6+2・e7+1・e4+1・e5+2・e1+4・e2+8・e3)
=d+1/32×(2・e0+3・e1+6・e2+9・e3+2・e4+3・e5+4・e6+3・e7)
で表される。これは(式1)の第1行において確かめることができる。
また、p0での誤差値e0は、修正入力値と出力階調値との差分であるから、
fn−bn=en (式2)
より
fn=en+bn (ただし、0≦n≦7)
の式が成り立ち、式1に代入することで(式3)が導かれる。
(式3)からは、誤差値enや修正入力値fnにはそれぞれ無数の解が存在するので、一意に求めることができない。一意の解を得るためには、条件式を加える必要があるが、グラデーション画像に対する階調段差抑制を図るため、誤差の平均値を条件として与える。なお、誤差の平均値とグラデーション画像に対する階調段差との関係は後述する。
ここでは誤差の平均値を0として与える。これは、誤差値の総和を0とした下記の式4を、式3の中の行の一つと置き換えることと同等である。
0=e0+e1+e2+e3+e4+e5+e6+e7 (式4)
最上位の行を置き換えた例を、式5に示す。
ここで、d、bnは定常状態の出力ドットパターンを与えることから、いずれも既知の定数となっているので、誤差値enが求まる。
本実施の形態の場合は、最上位の行を置き換えたが、この理由は上述した無数の解が存在することから一意に求めるには、さらなる条件を加える必要があるからである。式3の中にある8つの行のうち、1つの行は意味をなしていない式であり、つまり、他の7行の式から求まる式であるからである。
図16は、図13の出力ドットパターンの組に対応する修正入力値の組を説明する模式図である。修正入力値1701〜1725は、誤差値enをもとに式1、もしくは式2から算出される。例えば、図13の出力ドットパターン1111を与えた場合は、図16の1711で示す修正入力値となる。
ここで、図13で与えた出力ドットパターンを得るためには、例えば、p0においては、図16の1701から1710に示す修正入力値に対しては出力階調値0、1711で示す修正入力値に対しては出力階調値85、1712で示す修正入力値に対しては出力階調値170、1713から1725で示す修正入力値に対しては出力階調値255を発生させる閾値である必要がある。
そこで、p0で出力階調値85を出すか否かを決定する閾値Aは、1701から1710の修正入力値の最大値121.2以上で、1711から1725の修正入力値の最小値136.5より小さい必要がある。よって、121.2以上で、136.5より小さい数値のうち両者の中央値で小数点以下を切り捨てた値129を、p0における閾値Aとする。
同様に出力階調値170を出すか否かを決定する閾値Bは、1701から1711の修正入力値の最大値136.5以上で、1712から1725の修正入力値の最小値151.8より小さい必要があることから144とする。
同様に、出力階調値255を出すか否かを決定する閾値Cは、1701から1712の修正入力値の最大値151.8以上で、1713から1725の修正入力値の最小値167.0より小さい必要があることから、151.8と167.0の中央値で小数点以下を切り捨てた値の159とする。このようにして閾値A〜Cが求まる。
図17は、図13のドット成長順序で等差的に閾値を大きくした閾値マトリクスの一例を示す模式図である。図18−1は本発明に基づいて上記の手法で作成した図4の閾値マトリクスを用いて切り出した出力画像を示す模式図である。図18−2は、図17に示された閾値マトリクスを用いて切り出した出力画像を示す模式図である。図18−1および18−2の出力画像は共に、図6の誤差マトリクスを用いている。
図13の出力ドットパターン1110は出力階調値の平均値が、
(0×10+255×6)÷16=95.625
であり、出力ドットパターン1111は既出の通り106.25である。すなわち、入力階調値106の値は、図13の1110と1111の出力階調値の平均値の間に相当する。
図18−1に示した出力画像は、入力階調値106に近い出力階調値の平均を持つ図13の1110もしくは1111のドットパターンと同様であり、また、核毎にドットパターンが整っているが、1902の出力画像は核毎にドットパターンがばらついていることが分かる。
図19−1は、階調値を0から255へ4ラインにつき1階調の幅で変化させた入力画像に対して実施の形態1による中間調処理を施した場合の、出力画像の128ドット幅、4ラインの出力階調移動平均値を示す図である。図19−2は、階調値を0から255へ4ラインにつき1階調の幅で変化させた入力画像に対して図13のドット成長順序で等差的に閾値を大きくした図17の閾値マトリクスを用いて中間調処理を施した場合の、出力画像の128ドット幅、4ラインの出力階調移動平均値を示す図である。ここで、図19−1および19−2は、双方ともに図4に示した誤差マトリクスを用いている。
図19−2に示したグラフでは、出力階調4ライン移動平均値は、入力階調4ライン移動平均値が128から130までのときに大きな変化を起こしておらず(平坦となっている部分)、131付近で急激に変化して(立ち上がって)いる。階調段差は、このように急激な変化が生じている箇所に発生する。一方、実施の形態による中間調処理方式を採用した場合の図19−1に示したグラフでは、このような出力階調値の急激な変化が生じておらず、階調段差が抑制されている。
図20−1は、階調値を0から255へ4ラインにつき1階調の幅で変化させた入力画像に対して実施の形態1による中間調処理を施した場合の、出力画像の128ドット幅、4ラインの誤差移動平均値を示す図である。図20−2は、階調値を0から255へ4ラインにつき1階調の幅で変化させた入力画像に対して図13のドット成長順序で等差的に閾値を大きくした図17の閾値マトリクスを用いて中間調処理を施した場合の、出力画像の128ドット幅、4ラインの誤差移動平均値を示す図である。
ここで、図20−1および20−2は、双方ともに図4に示した誤差マトリクスを用いている。これらの図は、階調値を0から255へ、4ラインにつき1階調の幅で変化させた入力画像を処理した場合の、出力画像の128ドット幅、4ラインの誤差移動平均値を示している。図20−1および20−2に示された処理においては、双方とも図4に示した誤差マトリクスを用いている。
図20−2のグラフを見ると、誤差4ライン移動平均値は、入力階調4ライン移動平均値131付近で急激に変化している。これは図19−2に示された出力階調4ライン移動平均値が大きく変化している位置とほぼ一致している。このように階調段差は、誤差の平均値に急激な変化が生じている箇所に発生する。一方、図20−1に示したグラフでは、このような誤差の平均値の急激な変化は生じておらず、階調段差も抑制されている。
なお、本実施の形態ではエッジ検知結果に基づいて、出力階調値決定部103で用いる閾値を切り替える構成を示したが、この構成に限定されるものではなく、例えば、注目画素がエッジである場合は固定閾値処理を行い、そうでない場合はディザ閾値処理を行うといったように、異なる閾値処理を施す閾値処理部を備えて、エッジ検知結果に基づいて処理部を切り替える構成であっても良い。
また、本実施の形態において、エッジ検知部で用いる入力画像データは、補正処理や、スムージング処理、エッジ強調、加工処理等の処理を施した後の画像としたが、このような構成に限定されるものでなく、補正前のデータをエッジ検知部で用いる構成としてもよい。
また、スキャナ等の画像読取部の補正処理や、スムージング処理、エッジ強調、加工処理等の処理を行い、複写機、FAX、プリンタ等の画像形成装置の濃度補正処理を施していない画像データに対して、エッジ検知部がエッジ検知を行うように、補正途中の画像データを用いる構成としても良い。
また、本実施の形態では、エッジ検知結果に基づいて出力階調値決定部103で用いる閾値を固定閾値とディザ閾値とで切り替える構成を示したが、本発明はこのような構成に限定されず、例えば、注目画素がエッジである場合はディザ閾値を用い、そうでない場合は異なる特性を持つディザ閾値を用いる構成であっても良い。ここで異なる特性を持つディザ閾値とは、線数が異なるディザ閾値、もしくは、異なる設計に基いて設計されたディザ閾値である場合を含む。
また、エッジかそうでないかで2種類の閾値を使い分ける構成ではなく、3種類以上の閾値を切り替える構成であっても良い。
また、本実施の形態では網点スクリーンの出力ドットパターンを与えたが、本発明に基づく構成としてはこれに限定されるものではなく、例えば、万線スクリーンであっても良い。
また、本実施の形態では出力階調数を4としたが、このような出力階調数に限定されるものではなく、例えば、2、3、もしくは16といった出力階調数を持つ画像処理方法であってもよく、同様の方法で閾値を設計でき、中間調処理を施す構成とすることができる。
例えば、出力階調数を2とした場合は、図13の1101、1104、1107、1110、1113、1116、1119、1122、1125のみに対して求めた修正入力値から閾値を決定すればよい。
また、本実施の形態では平均誤差最小法による処理を用いる構成としたが、これに限定されるものではなく、ほぼ同等の処理である誤差拡散処理を用いる構成とすることができる。
(1.6.効果)
このようにして、実施の形態1による中間調処理によって、入力した画像データに対して、画像処理の際の画素位置に応じた閾値を用いる誤差拡散処理、あるいは画素位置に応じた閾値を用いる平均誤差最小処理において、発生する誤差を考慮しながら希望のドット成長順序通りの出力画像を得ることができるので、粒状性や安定性に優れた高品質な画像形成のための画像処理を施すことができる。また、誤差拡散処理、あるいは平均誤差最小処理において、誤差の平均値を抑えた閾値を用いるため、グラデーション画像を入力した場合に階調段差を抑制して画像処理を施すことができるので、高品質な画像処理を施すことができる。
(2.実施の形態2)
図21−1は、実施の形態2による中間調処理部において、入力階調4ライン移動平均値に対する誤差4ライン移動平均値特性を表した図である。図21−2は、実施の形態2による他の中間調処理部において、入力階調4ライン移動平均値に対する誤差4ライン移動平均値特性を表した図である。
実施の形態2による中間調処理部について図21−1を用いて、実施の形態1の場合との差異を説明する。
実施の形態1において説明したように、誤差の平均値が急激に変化する箇所で階調段差が発生する。すなわち、入力画像データの平均階調値に対して誤差の平均値を緩やかに変化させた場合、階調段差は発生しない。そこで、図21−1の特性2201の特性を持つ式4の代わりに、図21−2における特性2202の特性を持つ式6を与えて閾値を設計する。
e(d)=1/8×(e0+e1+e2+e3+e4+e5+e6+e7) (式6)
これは、入力階調値dが大きくなるに従って誤差の平均値が小さくなるという特性を持つ式である。
図22は、実施の形態2における閾値マトリクスの組の一例を示す模式図である。ここで、閾値マトリクスA2301、閾値マトリクスB2302、閾値マトリクスC2303はそれぞれ、出力階調値85に相当するドット、170に相当するドット、255に相当するドットを出すか否かを決定する閾値である。図22に示した閾値マトリクスは、図4の閾値マトリクスと比較して、ディザ閾値の最小値と最大値の差、すなわち振幅が小さくなっている。
ディザ閾値の振幅を小さくすることは、エッジ判定結果に基づきディザ閾値と固定閾値とを切り替える処理の場合に、切替部での閾値の差を小さくして急激な変化を抑える働きがある。
ここでは振幅を小さくするために、入力階調値dが大きくなるに従って誤差の平均値を小さくさせる例を示したが、逆に入力階調値dが大きくなるに従って誤差の平均値を大きくさせる構成であっても良い。
なぜなら、一般にディザ閾値の振幅が小さいと鮮鋭性が向上し、大きいと粒状性が向上する。振幅が小さい場合は原稿を忠実に再現しようとする平均誤差最小処理の特性が強く働き、振幅が大きい場合は設計したパターンに沿った出力を得ようとするディザ処理の特性が強く働くためである。
図23−1は、実施の形態2による他の中間調処理部において、入力階調4ライン移動平均値に対する誤差4ライン移動平均値特性を表したグラフである。図23−2は、実施の形態2による他の中間調処理部において、入力階調4ライン移動平均値に対する誤差4ライン移動平均値特性を表したグラフである。
ここで、実施の形態2による中間調処理では図21−2の特性2202に示すように誤差の平均値を、入力階調値に対して誤差の平均値が一定の傾きを持つ例を示したがこれに限るものではない。誤差の平均値は、例えば、図23−1の特性2401のように0でない値で一定であっても良いし、また、図23−2の特性2402のようにサインカーブに近いように誤差の傾きが変化してもよい。肝要な点は、階調段差を抑えるためには、誤差の平均値が入力階調値の変化に伴って急激に変化しないことである。
このように、入力画像データの平均階調値に対して誤差の平均値を緩やかに変化させることによって、階調段差の発生を抑制する。また、入力した画像データに対して、画像処理の際の画素位置に応じた閾値を用いる誤差拡散処理、あるいは画素位置に応じた閾値を用いる平均誤差最小処理において、発生する誤差を考慮しながら希望のドット成長順序通りの出力画像を得ることができるので、高品質な画像形成のための画像処理を施すことができる。また、誤差拡散処理、あるいは平均誤差最小処理において、階調段差を抑制して画像処理を施すことができるので、高品質な画像形成のための画像処理を施すことができる。
(3.実施の形態3)
実施の形態3による中間調処理について、実施の形態1との差異を図13を用いて説明する。実施の形態3が実施の形態1による中間調処理と異なる点は、周囲が低濃度要素に囲まれている孤立ドット点を含む出力ドットパターンは、これを除外して閾値マトリクスを作成するものである。
図13の出力ドットパターン1102、1103を見ると、(x、y)=(1、1),(3、3)に相当する画素位置の階調値が85や170のとき、隣接する階調値はいずれも0となるタイプである。すなわち、(x、y)=(1、1),(3、3)に相当する画素位置のドットは孤立して出現する可能性が高く、その場合は安定したドット再現ができにくい。
また、図13中の出力ドットパターン1108、1109を見ると、(x、y)=(1、0),(3、2)に相当する画素位置の階調値が85や170のとき、副走査方向に接する画素および斜めに接する画素以外の階調値はいずれも0となるタイプである。すなわち、(x、y)=(1、0),(3、2)に相当する画素位置のドットも安定したドット再現ができにくい。ただし、このタイプの場合、副走査方向に接する(x、y)=(1、1),(3、3)、および斜めに接する(x、y)=(0、1),(2、3)に相当する画素ではドットが打たれる可能性が高く、出力ドットパターン1102、1103よりは安定したドット再現が見込むことができるのであるが、基本的に不安定な再現であることに変わりはない。
そこで、(x、y)=(1、0),(3、2)に相当する画素位置で階調値85や170のドットを発生させること、および、(x、y)=(1、0),(3、2)に相当する画素位置で階調値85のドットを発生させることは、不安定な出力画像を得ることにつながるため、この種の出力ドットパターン1102、1103、1108、および1109を条件から外して閾値を設計する。
なお、主走査方向の前後の出力階調値の大小関係に基づき、大きな値の方へ寄せて出力するよう位相を制御することで、図13中の出力ドットパターン1105での(x、y)=(0、1),(2、3)に相当する画素位置は、主走査方向に接している(x、y)=(1、1),(3、3)の画素と連続してレーザが照射されることとなり、比較的安定なドット再現が見込めるため、このパターンは条件に含めて閾値を設計する。
図24は、ドットパターンを出力した時の色材が分布する領域を説明する図である。実際に、ドットゲイン、もしくは、全画素に最大サイズのドットを打った際に色材(トナー)で塗りつぶされていない領域が存在しないような状態を得るため、各画素が本来の占めている領域より広い範囲に色材が分布することがある。このような条件で、図13のドットパターン1122〜1125を出力したときの色材が分布する領域を順に図24の色材分布2601〜2604に示す。
このような場合は、(x、y)=(0、2),(2、0)に相当する画素位置に存在する空白の面積は、レーザの照射位置のずれなどに基づく色材の存在領域のずれによって変動しやすく、階調性が悪化しやすい。
同様に、図13中の出力ドットパターン1120、1121を見ると、(x、y)=(0、3),(2、1)に相当する画素位置の階調値が85や170のとき、副走査方向に接する画素以外の階調値はいずれも255と大きい。すなわち、(x、y)=(0、3),(2、1)に相当する画素位置のドットも安定したドット再現ができにくい。ただし、後者は副走査方向に接する(x、y)=(0、2),(2、0)に相当する画素位置でドットが打たれる可能性が低く、前者よりは安定したドット再現が見込めるのであるが、基本的に不安定であることに変わりはない。
そこで、(x、y)=(0、2),(2、0)に相当する画素位置で階調値85や170のドットを出現させること、および、(x、y)=(0、3),(2、1)に相当する画素位置で階調値170のドットを出現させることは不安定な出力画像を得ることにつながるため、これらのパターンを条件から外して閾値を設計する。
以上から、図13に示す出力ドットパターン1101〜1125のうち、出力ドットパターン1102、1103、1108、1121、1123、および1124を除いた各出力ドットパターンに対して、誤差値と修正入力値を求めて、閾値を決定する。
図25は、実施の形態3による中間調処理部において用いられる出力ドットパターンの組の一例を示した模式図である。図25には、修正入力値が示されている。例えば、図13の1111で示す出力ドットパターンを与えた場合は、図25の出力ドットパターン2711で示す修正入力値となる。
ここで、図13で与えた出力ドットパターンを得るためには、例えば、p1においては、図25の出力ドットパターン2701〜2707に示す修正入力値に対しては出力階調値0、出力ドットパターン2709で示す修正入力値に対しては出力階調値170、出力ドットパターン2710〜2725で示す修正入力値に対しては出力階調値255を発生させる閾値である必要がある。
そこで、p1で出力階調値85を出すか否かを決定する閾値Aは、出力ドットパターン2701〜2710の修正入力値の最大値92.8以上で、出力ドットパターン2711〜2725の修正入力値の最小値123.3より小さい必要がある。よって、92.8以上で、123.3より小さい数値の中から、両者の平均値を整数に丸めた値109をp0における閾値Aとする。
同様に、出力階調値170を出すか否かを決定する閾値Bも同じ範囲に存在する必要があることから109、出力階調値255を出すか否かを決定する閾値Cは、出力ドットパターン2701〜2709の修正入力値の最大値123.3以上で、出力ドットパターン2710〜2725の修正入力値の最小値である134.6より小さい必要があることから129とする。
図26は、実施の形態3による閾値マトリクスの一例を示す模式図である。以上のようにして図26に示した閾値マトリクスを得ることができた。
このように本発明による画像処理装置によって、所望のドット成長順序通りの出力画像を得ることができ、さらには、記録媒体における画像形成について粒状性や安定性に優れた高品質の出力画像を得ることができる。
また、誤差の平均値を所定の範囲に設定することで、グラデーション画像を入力した場合に階調段差が抑制された高品質の出力画像を得ることができる。
(4.実施の形態4)
実施の形態4による画像形成装置は、実施の形態1による画像処理装置10を画像処理機能を実行する部分として備える画像形成装置である。実施の形態4による画像形成装置は、図1に示した画像形成装置1として具現化することができる。即ち、画像形成装置は、画像入力部3と、画像処理装置10と、画像出力部5とを備えてなる構成である。
実施の形態4による画像形成装置の動作および画像形成手順は、スキャナ3が読み込んだ画像データを、すでに実施の形態1において説明した画像処理装置10が入力し、入力した画像データに対して画像処理装置10が画像処理を施して出力した画像データを、画像出力装置52が画像出力することによって、動作および手順を具現化できるので、ここでは説明を省略する。
画像形成装置1は、また、実施の形態2および3のいずれかによる画像処理装置を内部に組み込んでそれぞれの画像処理機能を実行し、それぞれ処理を施された画像データによって画像形成することができる。
このように実施の形態4による画像形成装置によれば、所望のドット成長順序通りの出力画像を得ることができ、さらには、記録媒体における画像形成について粒状性や安定性に優れた高品質の画像を形成できる。
また、誤差の平均値を所定の範囲内に設定することで、グラデーション画像を入力した場合に階調段差が抑制された高品質の画像を形成ができる。
(5.ハードウェア構成など)
図27は、実施の形態4による画像形成装置のハードウェア構成図である。同図に示すようにこの画像形成装置は、CPU(Central Processing Unit)902、SDRAM903、フラッシュメモリ904およびハードディスク(HD)905などをASIC901に接続したコントローラボード900と、オペレーションパネル910と、ファックスコントロールユニット(FCU)920と、USB930と、IEEE1394940と、プリンタ950と、スキャナ960とからなる。
オペレーションパネル910はASIC901に直接接続され、FCU920、USB930、IEEE1394940、プリンタ950、およびスキャナ960は、PCIバスを介してASIC901に接続されている。
HD905には、画像形成装置が備える画像処理装置のCPUに、上述した各手順(工程)を実行させる、あるいは上述した各部の機能を実行させるための画像処理プログラムが格納されている。
なお、画像形成装置の特徴的部分である画像処理装置で実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。この場合、CPU902が上記記憶媒体から画像処理プログラムを読み出して主記憶装置上にロードすることで、画像処理装置に、上述した各工程を実行、あるいは各部の機能を実現させる。
本実施の形態の画像処理装置で実行される画像処理プログラムは、上述した各部(シェーディング補正部、階調補正部、カラー/モノクロ変換部、中間調処理部の備えるエッジ検出部、修正入力値算出部、閾値選択部、出力階調値決定部、誤差算出部、誤差和算出部、および位相制御部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから上記の各プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
また、画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしても良い。または、画像形成プログラムをインターネット等のネットワーク経由で提供若しくは配布するようにしても良い。