(57)【要約】【課題】  形成されるドットの重なりを抑制するとともに、ドット密度の偏りを軽減する画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体を提供する。【解決手段】  画素ごとに第１の階調変換部によってドットを出力する所定の階調データに２値化した第１の色相データと、２値化前の第１の色相データとの差分データを差分データ算出部が算出する。その後、データ加算部は、算出された差分データを所定のフィルタによって、ドットが出力される画素を中心に階調値を減らす対象の画素を等方的に広げたデータにデータ処理を行い、第２の色相データに加算する。そこで、この階調値が増減された第２の色相データを第２の階調変換部によって階調変換すれば、第１の色相データに対応するドットと、第２の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得る。【選択図】      図２
2005341142.tif 000002
【特許請求の範囲】
【請求項１】
画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、
前記色相データのうち第１の色相データを階調変換する第１の階調変換部と、
前記色相データのうち第２の色相データを階調変換する第２の階調変換部と、
前記第１の階調変換部が階調変換した前記所定の階調データと、前記第１の色相データとの差分データを算出する差分データ算出部と、
前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第２の色相データに加算して加算データを求めるデータ加算部とを備え、
前記第２の階調変換部は、前記加算データを前記第２の色相データとして前記所定の階調データに階調変換することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記データ加算部は、前記第１の色相データに応じて出力されるドットと前記第２の色相データに応じて出力されるドットとの明度比によって特定されるフィルタ特性を有した前記所定のフィルタを用いることを特徴とする画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記第２の階調変換部は、誤差拡散の手法を用いて前記第２の色相データを階調変換することを特徴とする画像処理装置。
【請求項４】
請求項１または２に記載の画像処理装置であって、
前記第２の階調変換部は、
画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、
順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部と、
を備えた画像処理装置。
【請求項５】
請求項１または２に記載の画像処理装置であって、
前記第２の階調変換部は、
画素選択のための第１の基準点に基づいて、画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第２の基準点を決定する基準点決定部と、
前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
前記画素群生成部は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。
【請求項６】
請求項４または５に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第２の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。
【請求項７】
請求項５または６に記載の画像処理装置であって、
前記画素群生成部は、前記第１の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することを特徴とする画像処理装置。
【請求項８】
請求項５ないし７のいずれか一項に記載の画像処理装置であって、
前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第２の基準点として決定することを特徴とする画像処理装置。
【請求項９】
請求項５ないし８のいずれか一項に記載の画像処理装置であって、
前記第１の基準点は、前記画素群における画素の位置と、該画素の前記第２の色相データの階調値とから算出した重心位置であることを特徴とする画像処理装置。
【請求項１０】
請求項１ないし９のいずれか一項に記載の画像処理装置であって、
前記第１の階調変換部は
画素選択のための第３の基準点に基づいて、画素ごとの前記第１の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第４の基準点を決定する基準点決定部と、
前記決定された第４の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
前記画素群生成部は、前記第３の基準点を更新し、当該第３の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第１の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第４の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第１の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。
【請求項１２】
請求項１０または１１に記載の画像処理装置であって、
前記データ加算部が用いる前記所定のフィルタは、前記第１の階調変換部が生成する画素群内の画素数に基づいて特定されるフィルタ特性を有することを特徴とする画像処理装置。
【請求項１３】
画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、
前記色相データのうち第１の色相データを階調変換する第１の階調変換工程と、
前記色相データのうち第２の色相データを階調変換する第２の階調変換工程と、
前記第１の階調変換工程によって階調変換した前記所定の階調データと、前記第１の色相データとの差分データを算出する差分データ算出工程と、
前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第２の色相データに加算して加算データを求めるデータ加算工程とを備え、
前記第２の階調変換工程は、
画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、
前記生成された画素群について第２の基準点を決定する基準点決定工程と、
前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、
前記画素群生成工程は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与工程は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与する
ことを特徴とする画像処理方法。
【請求項１４】
画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、
前記色相データのうち第１の色相データを階調変換する第１の階調変換処理と、
前記色相データのうち第２の色相データを階調変換する第２の階調変換処理と、
前記第１の階調変換処理によって階調変換した前記所定の階調データと、前記第１の色相データとの差分データを算出する差分データ算出処理と、
前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第２の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、
前記第２の階調変換処理は、
画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、
前記生成された画素群について第２の基準点を決定する基準点決定処理と、
前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、
前記画素群生成処理は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与処理は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与する
ことを特徴とするプログラム。
【請求項１５】
請求項１４に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、
前記色相データのうち第１の色相データを階調変換する第１の階調変換部と、
前記色相データのうち第２の色相データを階調変換する第２の階調変換部と、
前記第１の階調変換部が階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換部と、
変換された前記分散データと前記第１の色相データとの差分データを算出する差分データ算出部と、
前記算出された差分データを、前記第２の色相データに加算して加算データを求めるデータ加算部とを備え、
前記第２の階調変換部は、前記加算データを前記第２の色相データとして前記所定の階調データに階調変換することを特徴とする画像処理装置。
【請求項１７】
請求項１６に記載の画像処理装置であって、
前記第２の階調変換部は、誤差拡散の手法を用いて前記第２の色相データを階調変換することを特徴とする画像処理装置。
【請求項１８】
請求項１６に記載の画像処理装置であって、
前記第２の階調変換部は、
画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、
順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部と、
をさらに備えた画像処理装置。
【請求項１９】
請求項１６に記載の画像処理装置であって、
前記第２の階調変換部は、
画素選択のための第１の基準点に基づいて、画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第２の基準点を決定する基準点決定部と、
前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とをさらに備え、
前記画素群生成部は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。
【請求項２０】
請求項１８または１９に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第２の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。
【請求項２１】
請求項１９または２０に記載の画像処理装置であって、
前記画素群生成部は、前記第１の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することを特徴とする画像処理装置。
【請求項２２】
請求項１９ないし２１のいずれか一項に記載の画像処理装置であって、
前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第２の基準点として決定することを特徴とする画像処理装置。
【請求項２３】
請求項１９ないし２２のいずれか一項に記載の画像処理装置であって、
前記第１の基準点は、前記画素群における画素の位置と、該画素の前記第２の色相データの階調値とから算出した重心位置であることを特徴とする画像処理装置。
【請求項２４】
請求項１６ないし２３のいずれか一項に記載の画像処理装置であって、
前記第１の階調変換部は
画素選択のための第３の基準点に基づいて、画素ごとの前記第１の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第４の基準点を決定する基準点決定部と、
前記決定された第４の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
前記画素群生成部は、前記第３の基準点を更新し、当該第３の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第１の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第４の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。
【請求項２５】
請求項２４に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第１の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。
【請求項２６】
請求項２４または２５に記載の画像処理装置であって、
前記ドットプロファイル変換部は、前記第１の階調変換部が生成した画素群ごとに、該画素群内の画素数に基づいて特定される前記所定のプロファイルに従って、前記所定の階調データを分散することを特徴とする画像処理装置。
【請求項２７】
画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、
前記色相データのうち第１の色相データを階調変換する第１の階調変換工程と、
前記色相データのうち第２の色相データを階調変換する第２の階調変換工程と、
前記第１の階調変換工程によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換工程と、
変換された前記分散データと前記第１の色相データとの差分データを算出する差分データ算出工程と、
前記算出された差分データを、前記第２の色相データに加算して加算データを求めるデータ加算工程とを備え、
前記第２の階調変換工程は、
画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、
前記生成された画素群について第２の基準点を決定する基準点決定工程と、
前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、
前記画素群生成工程は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与工程は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理方法。
【請求項２８】
画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、
前記色相データのうち第１の色相データを階調変換する第１の階調変換処理と、
前記色相データのうち第２の色相データを階調変換する第２の階調変換処理と、
前記第１の階調変換処理によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換処理と、
変換された前記分散データと前記第１の色相データとの差分データを算出する差分データ算出処理と、
前記算出された差分データを、前記第２の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、
前記第２の階調変換処理は、
画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、
前記生成された画素群について第２の基準点を決定する基準点決定処理と、
前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、
前記画素群生成処理は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与処理は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とするプログラム。
【請求項２９】
請求項２８に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３０】
請求項１ないし２９のいずれか一項に記載の画像処理装置、画像処理方法、画像処理プログラムないし記録媒体であって、
前記性質の異なる少なくとも２種類以上の色相データは、それぞれ
（１）ドットの大きさが異なる出力ドットに対応した色相データ、
（２）単位面積当たりの濃度が異なる出力ドットに対応した色相データ、
（３）色相が異なる出力ドットに対応した色相データ、
（４）光反射率の異なる出力ドットに対応した色相データ、
のうち少なくとも１つを満たす色相データであることを特徴とする画像処理装置、画像処理方法、画像処理プログラムないし記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多階調値で表された画像データのハーフトーン処理に関する。詳しくは、出力ドットが複数種類存在するとき、異なる種類のドットの重なりを抑制するハーフトーン処理に関する。
【背景技術】
【０００２】
従来から、プリンタなどの画像出力装置は、画素ごとに多値の階調値を有する階調データに対して、ドットの出力の有無を表す２値の値に階調変換処理し、印刷用紙にドットを形成して印刷を行うようにしている。一般には、多値の階調値を２値の値に変換する処理のことをハーフトーン処理と称している。
【０００３】
このようなハーフトーン処理をカラー画像の画像データに対して行った場合、印刷用紙上で同じ位置あるいは１つの位置の近傍に複数色のドットが形成され、ある領域ではドットが密になり、別のある領域では逆に疎になるなど、ドット密度の偏りが発生する課題があった。例えば、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）各色のドットを形成して印刷を行うプリンタにおいて、ハーフトーン処理の対象となる各色の階調データが全て同じであったと仮定した場合、各色同様にハーフトーン処理を行うと、同じ画素の位置に全ての色のドットが形成されてしまうことになる。
【０００４】
このような課題を回避するため、一方の色相のドットが形成された画素位置には多方の色相のドットが形成されないようにする技術が開示されている（例えば特許文献１、特許文献２）。
【０００５】
特許文献１に開示された技術によれば、例えば一方の色相データとなるマゼンタの階調データを、組織的ディザ法によりハーフトーン処理を行い、ドットを形成する場合の結果値とドットを形成しない場合の結果値に２値化する。そして、この２値化したデータとマゼンタの階調データとの差分値データを他方の色相データとなるシアンの階調データに加算する。その後、誤差拡散の手法を用いてシアンの階調データをハーフトーン処理すると、マゼンタのドットが形成された周辺にはシアンのドットが形成されにくくなるのである。
【０００６】
また、特許文献２に開示された技術によれば、例えば一方の色相の階調データを、所定のマトリクスを用いた組織的ディザ法によりハーフトーン処理を行い、ドットを形成するか否かを判断する。そして、ドットを形成すると判断した画素に対応する位置を除いて、他方の色相の階調データを同じマトリクスを用いた組織的ディザ法によりハーフトーン処理することによって、異なる種類のドットが重ならず形成されるのである。
【０００７】
【特許文献１】特開平１０−８１０２６号公報
【特許文献２】特開平１０−１５７１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１または特許文献２においては、ドットが形成された画素にのみドット重なりの抑制効果を与えているため、上述したドット密度の偏りが発生するという課題が残っていた。つまり、特許文献１では、他方の色相であるシアンの階調データの
ハーフトーン処理を、誤差拡散法を用いて行っているため、ドット重なりの抑制効果があたえられた一画素の誤差データは、誤差拡散マトリクスの係数を配置した方向の画素に拡散され、特定の画素にドットの重なりの抑制効果が強く発生する。この結果、ドットの重なりを防ぐ効果が偏り、ドット密度の偏りが発生する。
【０００９】
また、特許文献２においても、前述したように、一方の色相のドット形成が行われた画素のみにドット抑制効果がとどまるため、他方の色相のドットが隣接する画素に形成されることがあり、この場合ドットが分散せず、特許文献１と同様にドット密度の偏りが発生する。
【００１０】
本発明の第１の目的は、このような課題を解決するため、形成されるドットの重なりを抑制するとともに、ドット密度の偏りを軽減する画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体の提供することである。また、本発明の第２の目的は、元の画像データの階調値を失わず、忠実に２値化するハーフトーン処理方法を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成する本発明の第１の画像処理装置は、画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、前記色相データのうち第１の色相データを階調変換する第１の階調変換部と、前記色相データのうち第２の色相データを階調変換する第２の階調変換部と、前記第１の階調変換部が階調変換した前記所定の階調データと、前記第１の色相データとの差分データを算出する差分データ算出部と、前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第２の色相データに加算して加算データを求めるデータ加算部とを備え、前記第２の階調変換部は、前記加算データを前記第２の色相データとして前記所定の階調データに階調変換することを特徴とする。
【００１２】
かかる第１の画像処理装置によれば、画素ごとに第１の色相データを、第１の階調変換部によってドットを出力する所定の階調データとドットを出力しない所定の階調データとに２値化する。そして２値化した階調データと２値化前の第１の色相データとの差分データを算出する。この差分データは、基本的に全ての画素についての差分データの総和をほぼゼロに保ちつつ、ドットが出力される画素については階調値を減らし、ドットが出力されない画素については階調値を増やすデータ値を有することになる。その後、この差分データを所定のフィルタによって、ドットが出力される画素を中心に階調値を減らす対象の画素を等方的に広げたデータにデータ処理を行ったのち、第２の色相データに加算する。この結果、第２の色相データは、第１の色相データについてドットが出力された画素の位置に対応する所定の画素の階調値が減少し、この減少した階調値分他の画素の階調値が増加した階調値データとなる。そこで、この階調値が増減された第２の色相データを階調変換すれば、第１の色相データに対応するドットと、第２の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得ることができる。
【００１３】
また、前記データ加算部は、前記第１の色相データに応じて出力されるドットと前記第２の色相データに応じて出力されるドットとの明度比によって特定されるフィルタ特性を有した前記所定のフィルタを用いることとしてもよい。
【００１４】
通常、第１の色相データに対応して出力されるドットと第２の色相データに対応して出力されるドットとは明度が異なる。例えば、インクジェットプリンタであれば使用するインクの性質の違いにより、またレーザプリンタであれば使用するトナーの性質の違いにより、実際に印刷用紙上に形成されるドットは明度が異なる。そこで、ドットの明度の比率によって特定されるフィルタ特性を有するフィルタを用いることによって、第２の色相データについて階調値を減らす対象の画素範囲を設定する。この結果、例えば印刷用紙上などの単位面積あたりの明度がほぼ一定に保たれた各色相データに対応するドットを形成することができる。
【００１５】
ここで、前記第２の階調変換部は、誤差拡散の手法を用いて前記第２の色相データを階調変換することとしてもよい。こうすれば、階調値が増減された第２の色相データについて、２値化に伴う階調値の誤差が特定方向に拡散されるものの、基本的に増減された階調値に基づいて２値化処理を行うため、第１の色相データに対応して形成されたドット（以降、単に「第１ドット」）とは重ならない第２の色相データに対応するドット（以降、単に「第２ドット」）を出力することができる。
【００１６】
あるいは、前記第２の階調変換部は、画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部とを備えることとしてもよい。
【００１７】
このような第２の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を順次選択して画素群（以下、「セル」と呼ぶ）を生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の所定の位置にある画素に付与する。従って、例えば生成されるセルのおおよそ中心となる所定の位置にドットを出力すれば、第１ドットと重ならず、且つドット間距離を保った分散性のよい第２ドットを形成することができる。
【００１８】
あるいは、前記第２の階調変換部は、画素選択のための第１の基準点に基づいて、画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第２の基準点を決定する基準点決定部と、前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することとしてもよい。
【００１９】
かかる第２の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、第１の基準点に基づいて階調変換未処理画素を順次選択してセルを生成する。そして、生成されるセル内の画素の階調値合計が所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の第２の基準点に位置する画素に付与する。こうすれば、生成するセルの形状を決める基準点と、出力するドットの位置を決める基準点とを分けて設定できるため、セルの形状のみに着目してセルの生成を行うことが可能となる。従って、例えば円形のセルを生成するように第１の基準点を設定することによって、隣接して出力されるドットが重なる確率が減少し、分散性のよいドットを形成することができる。
【００２０】
ここで、前記画素群生成部は、前記画素群における画素ごとの前記第２の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
【００２１】
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、ハーフトーン処理前の色相データの階調値が失われず、また２値化に伴う階調値の誤差が特定方向に拡散されることもない。この結果、前述した課題であるドットの重なりを抑制する効果の偏りを軽減することができる。
【００２２】
さらに、前記画素群生成部は、前記第１の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することとしてもよい。こうすれば、生成するセルの形状がランダムになり易く、その結果出力されるドットの位置がバラツクことになり、形成されるドットの分散性が良くなることが期待できる。
【００２３】
また、前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第２の基準点として決定することとしてもよい。こうすれば、生成されるセルについて、２値化前の色相データにおける階調値の分布に対して、ほぼ忠実な位置にドットが出力されることになる。従って、階調値の忠実な再現性と分散性を持ったドットを形成することが可能となる。
【００２４】
また、前記第１の基準点は、前記画素群における画素の位置と、該画素が有する前記第２の色相データの階調値とから算出した重心位置であることとしてもよい。こうすれば、セルの生成処理に際して、例えば、常にセルの重心に最も近い画素を選択してセルに組み入れていくようにすると、生成されるセルの形状はセルの重心を中心としたおおよそ円形状になる。従って、このような円形状のセルに応じて形成されるドットは重ならず、ドットの分散性を良くすることができる。
【００２５】
さらにここで、本発明の第１の画像処理装置において、前記第１の階調変換部は、画素選択のための第３の基準点に基づいて、画素ごとの前記第１の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第４の基準点を決定する基準点決定部と、前記決定された第４の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第３の基準点を更新し、当該第３の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第１の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第４の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
【００２６】
このような第１の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を第３基準点に基づいて順次選択して、例えば円形のセルを生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データを、セル内の第４基準点に位置する画素に付与する。従って、生成される円形のセルのおおよそ中心となる所定の位置にドットを出力するようにすれば、ドット間距離を保った分散性のよい第１ドットを形成することができる。この結果、第１ドットおよび第２ドットともに、分散性のよいドットが形成される確率が高くなる。
【００２７】
さらに、前記第１の階調変換部における前記画素群生成部は、前記画素群における画素ごとの前記第１の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
【００２８】
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、第１の色相データの階調値が失われずハーフトーン処理される。従って、第１の色相データと２値化された所定の階調データとの差分データの総和はほぼゼロに保たれ、第２の色相データの階調値の総和は、この差分データの加算前後において変化しない。この結果、第２の色相データは元の階調値に充実にハーフトーン処理される。
【００２９】
ここで、前記データ加算部が用いる前記所定のフィルタは、前記第１の階調変換部が生成する画素群内の画素数に基づいて特定されるフィルタ特性を有することとしてもよい。
【００３０】
上述した第１の階調変換部によれば、生成されるセル内の画素数は、各画素の階調値が小さい場合は多くなり、各画素の階調値が大きい場合は少なくなる。つまり、セルを構成する画素数が多い場合は形成されるドット間距離が大きく、セルを構成する画素数が少ない場合は形成されるドット間距離が小さくなる。そこで、このようなセルを構成する画素数によって特定されるフィルタ特性を持つフィルタを用いることによって、第２の色相データについて階調値を減らす対象の画素範囲を設定する。この結果、第１ドットの形成密度に合わせて、第２ドットの形成を抑制する範囲を設定することができる。
【００３１】
本発明の第１の画像処理方法は、画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、前記色相データのうち第１の色相データを階調変換する第１の階調変換工程と、前記色相データのうち第２の色相データを階調変換する第２の階調変換工程と、前記第１の階調変換工程によって階調変換した前記所定の階調データと、前記第１の色相データとの差分データを算出する差分データ算出工程と、前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第２の色相データに加算して加算データを求めるデータ加算工程とを備え、前記第２の階調変換工程は、画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、前記生成された画素群について第２の基準点を決定する基準点決定工程と、前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、前記画素群生成工程は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与工程は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
【００３２】
また、本発明の第１の画像処理方法はコンピュータプログラムまたはそのプログラムを記録した記録媒体としてもよい。すなわち、画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、前記色相データのうち第１の色相データを階調変換する第１の階調変換処理と、前記色相データのうち第２の色相データを階調変換する第２の階調変換処理と、前記第１の階調変換処理によって階調変換した前記所定の階調データと、前記第１の色相データとの差分データを算出する差分データ算出処理と、前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第２の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、前記第２の階調変換処理は、画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、前記生成された画素群について第２の基準点を決定する基準点決定処理と、前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、前記画素群生成処理は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与処理は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＩＣカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【００３３】
次に、上記目的を達成する本発明の第２の画像処理装置は、画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、前記色相データのうち第１の色相データを階調変換する第１の階調変換部と、前記色相データのうち第２の色相データを階調変換する第２の階調変換部と、前記第１の階調変換部が階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換部と、変換された前記分散データと前記第１の色相データとの差分データを算出する差分データ算出部と、前記算出された差分データを、前記第２の色相データに加算して加算データを求めるデータ加算部とを備え、前記第２の階調変換部は、前記加算データを前記第２の色相データとして前記所定の階調データに階調変換することを特徴とする。
【００３４】
かかる第２の画像処理装置によれば、画素ごとに第1の色相データを、第１の階調変換部によってドットを出力する所定の階調データとドットを出力しない所定の階調データとに２値化する。そして２値化した階調データのうちドットを出力する所定の階調データを、ドットが出力される画素を中心に所定のプロファイルに従って周辺画素に分散する。そして、分散後の所定の階調データと第１の色相データとの差分データを算出し、算出した差分データを第２の色相データに加算する。この差分データは、基本的に全ての画素についての差分データの総和をほぼゼロに保ちつつ、ドットが出力される画素の周辺画素については階調値を減らし、その他の画素については階調値を増やすデータ値を有することになる。その後、この差分データを第２の色相データに加算する。この結果、第２の色相データは、第１の色相データについてドットが出力された画素の位置に対応する所定の画素の階調値が減少し、この減少した階調値分他の画素の階調値が増加した階調値データとなる。そこで、この階調値が増減された第２の色相データを階調変換すれば、第１の色相データに対応するドットと、第２の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得ることができる。
【００３５】
ここで、前記第２の画像処理装置における前記第２の階調変換部は、誤差拡散の手法を用いて前記第２の色相データを階調変換することとしてもよい。こうすれば、階調値が増減された第２の色相データについて、２値化に伴う階調値の誤差が特定方向に拡散されるものの、基本的に増減された階調値に基づいて２値化処理を行うため、第１ドットとは重ならない第２ドットを出力することができる。
【００３６】
あるいは、前記第２の画像処理装置における前記第２の階調変換部は、画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部とを備えることとしてもよい。
【００３７】
このような第２の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を順次選択してセルを生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の所定の位置にある画素に付与する。従って、例えば生成されるセルのおおよそ中心となる所定の位置にドットを出力すれば、第１ドットと重ならず、且つドット間距離を保った分散性のよい第２ドットを形成することができる。
【００３８】
あるいは、前記第２の画像処理装置における前記第２の階調変換部は、画素選択のための第１の基準点に基づいて、画素ごとの前記第２の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第２の基準点を決定する基準点決定部と、前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することとしてもよい。
【００３９】
かかる第２の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、第１の基準点に基づいて階調変換未処理画素を順次選択してセルを生成する。そして、生成されるセル内の画素の階調値合計が所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の第２の基準点に位置する画素に付与する。こうすれば、生成するセルの形状を決める基準点と、出力するドットの位置を決める基準点とを分けて設定できるため、セルの形状のみに着目してセルの生成を行うことが可能となる。従って、例えば円形のセルを生成するように第１の基準点を設定することによって、隣接するドットが重なる確率が減少し、分散性のよいドットを形成することができる。
【００４０】
ここで、前記第２の画像処理装置における前記画素群生成部は、前記画素群における画素ごとの前記第２の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
【００４１】
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、ハーフトーン処理前の色相データの階調値が失われず、また２値化に伴う階調値の誤差が特定方向に拡散されることもない。この結果、前述した課題であるドットの重なりを抑制する効果の偏りを軽減することができる。
【００４２】
さらに、前記第２の画像処理装置における前記画素群生成部は、前記第１の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することとしてもよい。こうすれば、生成するセルの形状がランダムになり易く、出力されるドットの位置がバラツクことになり、ドットの分散性が良くなることが期待できる。
【００４３】
また、前記第２の画像処理装置における前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第２の基準点として決定することとしてもよい。こうすれば、生成されるセルについて、２値化前の色相データにおける階調値の分布に対して、ほぼ忠実な位置にドットが出力されることになる。従って、階調値の忠実な再現性と分散性を持ったドットを形成することが可能となる。
【００４４】
また、前記第２の画像処理装置における前記第１の基準点は、前記画素群における画素の位置と、該画素が有する前記第２の色相データの階調値とから算出した重心位置であることとしてもよい。こうすれば、セルの生成処理に際して、例えば、常にセルの重心に最も近い画素を選択してセルに組み入れていくようにすると、生成されるセルの形状はセルの重心を中心としたおおよそ円形状になる。従って、このような円形状のセルに応じて形成されるドットは重ならず、ドットの分散性を良くすることができる。
【００４５】
さらにここで、本発明の第２の画像処理装置において、前記第１の階調変換部は、画素選択のための第３の基準点に基づいて、画素ごとの前記第１の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第４の基準点を決定する基準点決定部と、前記決定された第４の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第３の基準点を更新し、当該第３の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第１の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第４の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
【００４６】
かかる第２の画像処理装置における第１の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を第３基準点に基づいて順次選択して、例えば円形のセルを生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データを、セル内の第４基準点に位置する画素に付与する。従って、生成される円形のセルのおおよそ中心となる所定の位置にドットを出力するようにすれば、ドット間距離を保った分散性のよい第１ドットを形成することができる。この結果、第１ドットおよび第２ドットともに、分散性のよいドットを形成することが可能となる。
【００４７】
さらに、前記第２の画像処理装置における前記画素群生成部は、前記画素群における画素ごとの前記第１の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
【００４８】
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、第１の色相データの階調値が失われずハーフトーン処理される。従って、第１の色相データと２値化された所定の階調データとの差分データの総和はほぼゼロに保たれ、第２の色相データの階調値の総和は、この差分データの加算前後において変化しない。この結果、第２の色相データは元の階調値に充実にハーフトーン処理される。
【００４９】
ここで、前記第２の画像処理装置における前記ドットプロファイル変換部は、前記第２の画像処理装置における前記第１の階調変換部が生成した画素群ごとに、該画素群内の画素数に基づいて特定される前記所定のプロファイルに従って、前記所定の階調データを分散することとしてもよい。
【００５０】
上述した第１の階調変換部によれば、生成されるセル内の画素数は、各画素の階調値が小さい場合は多くなり、各画素の階調値が大きい場合は少なくなる。つまり、セルを構成する画素数が多い場合は形成されるドット間距離が大きく、セルを構成する画素数が少ない場合は形成されるドット間距離が小さくなる。そこで、このようなセルを構成する画素数によって特定されるプロファイルに従って、第２の色相データについて階調値を減らす対象の画素範囲を設定する。この結果、第１ドットの形成密度に合わせて、第２ドットの形成を抑制する範囲を設定することができる。
【００５１】
また、本発明の第２の画像処理方法は、画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、前記色相データのうち第１の色相データを階調変換する第１の階調変換工程と、前記色相データのうち第２の色相データを階調変換する第２の階調変換工程と、前記第１の階調変換工程によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換工程と、変換された前記分散データと前記第１の色相データとの差分データを算出する差分データ算出工程と、前記算出された差分データを、前記第２の色相データに加算して加算データを求めるデータ加算工程とを備え、前記第２の階調変換工程は、画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、前記生成された画素群について第２の基準点を決定する基準点決定工程と、前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、前記画素群生成工程は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与工程は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
【００５２】
また、本発明の第２の画像処理方法はコンピュータプログラムまたはそのプログラムを記録した記録媒体としてもよい。すなわち、画素ごとに、多階調値で表された性質の異なる少なくとも２種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、前記色相データのうち第１の色相データを階調変換する第１の階調変換処理と、前記色相データのうち第２の色相データを階調変換する第２の階調変換処理と、前記第１の階調変換処理によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換処理と、変換された前記分散データと前記第１の色相データとの差分データを算出する差分データ算出処理と、前記算出された差分データを、前記第２の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、前記第２の階調変換処理は、画素選択のための第１の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、前記生成された画素群について第２の基準点を決定する基準点決定処理と、前記決定された第２の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、前記画素群生成処理は、前記第１の基準点を更新して当該第１の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与処理は前記生成された画素群における前記第２の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第２の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＩＣカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【００５３】
さらに、本発明の第１または第２の画像処理装置、画像処理方法、画像処理プログラムもしくは記録媒体であって、前記性質の異なる少なくとも２種類以上の色相データは、それぞれ（１）ドットの大きさが異なる出力ドットに対応した色相データ、（２）単位面積当たりの濃度が異なる出力ドットに対応した色相データ、（３）色相が異なる出力ドットに対応した色相データ、（４）光反射率の異なる出力ドットに対応した色相データ、のうち少なくとも１つを満たす色相データであることとしてもよい。
【００５４】
こうすれば、（１）網点方式による階調表示を行う場合のドットを出力するためのハーフトーン処理、（２）濃淡の異なるドットを用いた階調表示を行う場合のドットを出力するためのハーフトーン処理、（３）色の異なるドットを用いた階調表示を行う場合のドットを出力するためのハーフトーン処理、（４）表面の艶が異なるドットを用いた階調表示を行う場合のドットを出力するためのハーフトーン処理の少なくとも１つを満たすハーフトーン処理について、本発明を適用することができる。
【発明を実施するための最良の形態】
【００５５】
次に、本発明を実施するための最良の形態を説明する。図１は、本発明が適用される画像処理装置を含むシステム全体の一例を示す構成図である。全体として画像入力装置１０と、画像処理装置２０と、画像出力装置３０とから構成される。これらの装置は基本的にコンピュータまたはコンピュータによって制御される装置であり、所定のオペレーティングシステムのもとで所定のプログラムが実行されることによって動作する。
【００５６】
画像入力装置１０は、アプリケーション部１１とラスタライズ部１２とから構成される。アプリケーション部１１は、文字データ、図形データ、ビットマップデータ等の印刷対象となるデータを生成する。例えば、画像入力装置１０でワードプロセッサや図形ツールなどのアプリケーションプログラムを使用して、図示しないキーボード等の操作により文字データや図形データなどを生成する。そして生成したこれらのデータを、ラスタライズ部１２へ出力する。もとより、画像入力装置１０は、図示しないスキャナやデジタルスチルカメラなどの画像データを取得する機器から出力されるデータを受け付け、このデータをアプリケーション部１１が生成するデータとしてラスタライズ部１２へ出力するものとしても差し支えない。
【００５７】
ラスタライズ部１２は、アプリケーション部１１から出力された印刷対象のデータを画素ごとに複数種類の色相データに変換して出力する。本実施形態では、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の色毎で、画素ごとに８ビット（計２４ビット）の多階調値で表された色相データを出力する。したがって、出力される色相データは、画素ごとに０から２５５までの２５６種類の階調値を有することになる。ラスタライズ部１２における色相データの生成処理は、実際には画像入力装置１０に実装された図示しないドライバによって行われる。こうしてラスタライズ部１２から出力される色相データは、画像処理装置２０に出力される。
【００５８】
画像処理装置２０は、基本的にコンピュータであり、色変換部２１とハーフトーン処理部２２とから構成される。画像処理装置２０では、画像入力装置１０から出力された色相データに対して、色変換処理とハーフトーン処理を行い、所定の階調データＤＲを画像出力装置３０へ出力する処理が行われる。
【００５９】
色変換部２１は、画像入力装置１０から出力される２５６種類の階調値を有するＲＧＢ各８ビット（計２４ビット）の色相データを受け取り、画像出力装置３０が出力する色成分に合わせて色変換処理を行う。本実施形態では、ＲＧＢからＣＭＹの色相データＤＴに色変換処理を行うものとする。ここで、Ｃはシアン、Ｍはマゼンダ、Ｙはイエローを示す。
【００６０】
ハーフトーン処理部２２は、色変換部２１から出力されるＣＭＹの色相データＤＴに対して、所定の閾値を用いて量子化データ（２値あるいは４値などの多値の値）に変換し、変換された量子化データである所定の階調データＤＲを画像出力装置３０に出力する。ハーフトーン処理として、本実施形態では、誤差拡散法による処理、または複数の画素からなるセルを、画素群の重心を用いて構成し、そのセルの重心にドットを生成させる処理（Circular Cell法、以下ＣＣ法）を用いる。誤差拡散法及びＣＣ法の具体的な内容は後述する。
【００６１】
画像出力装置３０は、パルス幅変調部３１と印刷エンジン３５とから構成され、印刷エンジン３５は、レーザドライバ３６とレーザダイオード（ＬＤ）３７とから構成される。画像出力装置３０では、画像処理装置２０から出力された所定の階調データＤＲに従って印刷エンジン３５が駆動され、この印刷エンジン３５によって印刷用紙等の記録媒体に各色成分のドットが形成され、実際に印刷が行われるのである。
【００６２】
パルス幅変調部３１は、ハーフトーン処理部２２から出力された所定の階調データＤＲを入力し、この所定の階調データＤＲから所定のパルス数とパルス幅をもったレーザ駆動パルスを駆動データとして生成する。そして、この駆動データをレーザドライバ３６に出力する。
【００６３】
レーザドライバ３６は、入力された駆動データから、レーザダオード３７を駆動する制御データを生成し、レーザダイオード３７に出力する。レーザダイオード３７は、レーザドライバ３６から出力された制御データに基づいて駆動され、さらに図示しない感光ドラムや転写ベルトが駆動されて、最終的に印刷用紙等の記録媒体に、パルス幅とパルス数に応じて、所定の色成分のドットが所定の数だけ出力される。こうして、記録媒体に各色のドットが形成され画像入力装置１０からのデータが印刷されることになる。
【００６４】
次に、図２を参照して、本発明が適用される画像処理装置２０の具体的なハード構成について説明する。ここで、図１の画像処理装置２０を構成する色変換部２１、ハーフトーン処理部２２は、図２におけるＣＰＵ２６、ＲＡＭ２７およびＲＯＭ２８に対応する。
【００６５】
画像処理装置２０は、全体として、入出力インターフェイス（Ｉ／Ｆ）２５、ＣＰＵ２６、ＲＡＭ２７、ＲＯＭ２８、ハードディスク２９とから構成され、それらはバスを介して互いに接続されている。入出力Ｉ／Ｆ２５は、画像入力装置１０と画像処理装置２０とのインターフェイス及び画像処理装置と画像出力装置のインターフェイスの役割を果たす。入出力Ｉ／Ｆ２５には、所定の伝送方式により伝送された画像入力装置１０からのＲＧＢの色相データが入力され、画像処理装置２０で処理できるデータに変換される。ＲＧＢの色相データは、一旦ＲＡＭ２７に格納される。そして、入出力Ｉ／Ｆ２５から、所定の階調データＤＲを画像出力装置３０に所定の伝送方式を用いて送出する。
【００６６】
ＣＰＵ２６は、バスを介してハードディスク２９またはＲＯＭ２８に格納されたプログラムを読み出し、この読み出したプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置２０として機能し、所定の処理を実行する。特に、請求項に記載した第１の階調変換部、第２の階調変換部、ドットプロファイル変換部、差分データ算出部、データ加算部として機能し、後述する各実施例におけるハーフトーン処理を実行する。
【００６７】
これらの処理を記録したプログラムは、予めハードディスク２９やＲＯＭ２８に格納されていることとしてもよいし、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＣＤ−Ｒ／ＲＷドライブを介してハードディスク２９に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク２９に格納されるものとしてもよい。
【００６８】
ＲＡＭ２７は、ＣＰＵ２６の制御によって実行される各処理のワーキングメモリとして役割を果たし、処理後の各種データを格納する。ＲＡＭ２７の具体的構成等については後述する。
【００６９】
次に、以上のように構成された画像処理装置２０において行われるハーフトーン処理について、後述する実施例で用いるハーフトーン処理の手法となるＣＣ法と誤差拡散法を先に説明することとし、以降、以下の順序にて説明する。
（Ａ）ＣＣ法によるハーフトーン処理
（Ｂ）誤差拡散法によるハーフトーン処理
（Ｃ）ハーフトーン処理についての第１実施例（フィルタによるデータ処理）
（Ｃ１）誤算拡散法を用いたハーフトーン処理
（Ｃ２）ＣＣ法を用いたハーフトーン処理
（Ｄ）ハーフトーン処理についての第２実施例（プロファイルによる分散処理）
（Ｅ）変形例
なお、本実施形態では、色変換部２１が出力するＣＭＹの色相データＤＴは、各色８ビットずつの多階調値で表されたデータとなっており、各色“０”から“２５５”まで２５６種類の階調値を有するものとする。また本実施形態では、ハーフトーン処理部２２にて、各色成分のドットを出力するか否かを制御する量子化処理を行うものとして説明することとし、ハーフトーン処理部２２が出力する所定の階調データＤＲは、Ｃ、Ｍ、Ｙそれぞれの色成分について、画素ごとに階調値“０”あるいは階調値“２５５”に量子化（２値化）された２値化データであるものとする。最終的に、画像出力装置３０は、前述したように、出力された所定の階調データ、つまり階調値“２５５”に量子化された全ての画素に対応してパルス幅とパルス数を生成し、各色成分のドットの出力を制御して印刷を行うのである。
【００７０】
（Ａ）ＣＣ法によるハーフトーン処理
まず、ＣＣ法によるハーフトーン処理について図３のフローチャートと図４および図５の模式図を用いて説明する。この処理が実施されると、まずステップＳ３０１にて、ハーフトーン処理つまり階調変換処理の対象となる入力画像を読み込む処理を行う。入力画像は正方形のドットマトリクス状の画素で構成されているものとし、ここでは一例として色成分シアンの色相データを入力画像として読み込むものとする。読み込んだ色相データの一例を図４（ａ）に示した。例えば、ｍ行ｎ列目の画素（以降（ｎ，ｍ）と表す）には、階調値“５０”の色相データが与えられている。
【００７１】
次にステップＳ３０２で、階調変換が未処理である画素（以降、未処理画素）を探索する処理を行い、探索未処理画素が有るか否かを判定する処理を行う。未処理画素の探索は、常に、まず水平方向に探索走査を行い、次に垂直方向へ探索走査を行う。すなわち、未処理画素が存在する場合は、入力画像全体で最も上側にある画素のうち、最も左側にある画素を探索することになる。もとより、階調変換処理の開始時では、１行１列目の画素が探索される。
【００７２】
次に、判定の結果、未処理画素が有った場合（ＹＥＳ）、次のステップＳ３０４へ進む。一方、判定の結果、未処理画素が無い場合は（ＮＯ）、入力画像全体は階調変換されたものとして、２値化データを出力する処理を行い（ステップＳ３０３）、階調変換処理ルーチンを終了する。
【００７３】
ステップＳ３０４では、セルの拡大終了条件が成立するか否かを判定する処理を行う。そして、判定の結果、ＮＯの場合はセルを拡大する処理を行う（ステップＳ３０５）。本実施形態では、セル内の画素の階調値合計が閾値“２５５”未満であることがセルを拡大する条件となる。また、セルの重心から最も近い画素をセルに組み入れることによってセルの拡大を行う。一方、判定の結果、ＹＥＳの場合はセルの拡大を終了し、ステップＳ３０６へ進む。
【００７４】
ステップＳ３０４およびステップＳ３０５での処理について、図４を用いて具体的に説明する。いま、探索した未処理画素が図４（ａ）の網掛け部で示したｍ行ｎ列目の画素（ｎ，ｍ）であり、他の画素も全て未処理画素であったとする。このとき、（ｎ，ｍ）１画素のセルＣＬが生成されたことになる。
【００７５】
次にセルＣＬ内の画素の階調値の合計は“５０”となり、“２５５”未満であるので、セルＣＬの重心位置を算出する。算出されたセルＣＬの重心ＧＣの位置は、画素（ｎ，ｍ）の中心になり、図４（ｂ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い未処理画素をセルＣＬに組み入れる。この場合、（ｎ＋１，ｍ）（ｎ，ｍ＋１）の２つが重心に最も近い画素として存在する。本実施形態では、このような選択対象となる画素が複数存在する場合はランダムに選択する。ここでは（ｎ＋１，ｍ）をセルに組み入れ、セルＣＬを拡大するものとする。このように選択すべき画素が複数存在するときは、ランダムに画素を選択することにより、同じ形状のセルが連続して生成されにくくなる。この結果、後述するセルの重心に形成されるドットの分散性が向上する。もとより、ランダムとせず、所定の選択順を決めて選択することとしても差し支えない。
【００７６】
次に、拡大したセルＣＬ内（図４（ｃ）の太枠内の部分）の画素の階調値の合計は“１００”となり、閾値“２５５”未満であるので、セル内の画素位置と画素の階調値からセルＣＬの重心ＧＣの位置を算出する。そして、図４（ｃ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い画素（ｎ，ｍ＋１）（ｎ＋１，ｍ＋１）のうち、同じくランダムに選択し、ここでは（ｎ，ｍ＋１）をセルに組み入れ、セルＣＬを拡大する。
【００７７】
次に、拡大したセルＣＬ内（図４（ｄ）の太枠内の部分）の画素の階調値の合計は“１５０”となり、閾値“２５５”未満であるので、セルＣＬ内の画素位置と画素の階調値からセルＣＬの重心ＧＣの位置を算出する。そして、図４（ｄ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い画素（ｎ＋１，ｍ＋１）をセルに組み入れ、セルＣＬを拡大する。
【００７８】
次に、拡大したセルＣＬ内（図４（ｅ）の太枠内の部分）の画素の階調値の合計は“２０５”となり、閾値“２５５”未満であるので、セルＣＬ内の画素位置と画素の階調値からセルＣＬの重心ＧＣの位置を算出する。そして、図４（ｅ）網掛け部で示したように、算出した重心ＧＣの位置から最も近い画素（ｎ＋１，ｍ＋２）をセルに組み入れ、セルＣＬを拡大する。
【００７９】
次に、拡大したセルＣＬ内（図４（ｆ）の太枠内の部分）の画素の階調値の合計は“２５５”となり、セルの拡大終了条件を満たすので、セルＣＬの拡大処理を終了し、ステップＳ３０６（図３）に進む。
【００８０】
ステップＳ３０６では、セル内の画素の階調値合計が閾値と等しいか否かを判定する処理を行う。判定の結果閾値と等しい場合は（ＹＥＳ）、前述の処理と同様、セル内の画素位置と画素の階調値からセルの重心ＧＣの位置を算出する処理を行う（ステップＳ３０７）。そして、算出した重心位置に存在する画素に、閾値と同じ階調値を与える処理を行い（ステップＳ３０８）、ステップＳ３０２に戻って未処理画素の探索処理以降を繰り返す。
【００８１】
図４（ｆ）に示したように、ステップＳ３０８では、ステップＳ３０７によって算出した重心ＧＣの位置に存在する画素（ｎ＋１，ｍ＋１）に、閾値と同じ階調値“２５５”を与える。この階調値“２５５”が与えられた画素の位置にシアンの色相データに対応したドットを形成して画像を印刷するのである。
【００８２】
一方、ステップＳ３０６で判定の結果、閾値と等しくない場合つまり閾値を超える場合は（ＮＯ）、閾値を超えた分の階調値である誤差データを無視して、セルの重心を算出する処理を行う（ステップＳ３０９）。そして、誤差データを最後にセルに組み入れた画素に戻し（ステップＳ３１０）、この誤差データを戻した画素を未処理画素とする処理を行う（ステップＳ３１１）。次に、ステップＳ３０８に進み、算出した重心位置に存在する画素に、閾値と同じ階調値を与える処理を行う。
【００８３】
ステップＳ３０９からＳ３１１までの処理について、図５を用いて具体的に説明する。図５（ａ）は、図４（ｆ）にて説明したセルＣＬ１の生成処理に続き、ステップＳ３０２にて、所定の走査方法による走査方向に従って画素（ｎ＋２，ｍ）が未処理画素として探索された状態を示している。そして図４にて説明した処理と同様に処理を行い、図５（ｂ）では画素（ｎ＋２，ｍ＋１）を、図５（ｃ）では画素（ｎ＋３，ｍ＋１）を、図５（ｄ）では画素（ｎ＋３，ｍ＋２）をセルＣＬ２に組み入れてセルを拡大する。
【００８４】
図５（ｅ）に示したように、画素（ｎ＋３，ｍ＋２）がセルＣＬ２に組み入れた時点で、セルＣＬ２内の画素の階調値合計は“２６５”となり、閾値“２５５”を超える。そこで、超えた分の誤差データ“１０”（＝２６５−２５５）を無視し、画素（ｎ＋３，ｍ＋２）が階調値“５０”（＝６０−１０）であるとしてセルＣＬ２の重心ＧＣ２を算出する。
【００８５】
そして、図５（ｆ）に示したように、算出した重心ＧＣ２の位置に存在する画素（ｎ＋３，ｍ＋１）に階調値“２５５”を付与する。このとき、最後にセルＣＬ２に組み入れた画素（ｎ＋３，ｍ＋２）に誤差データ“１０”を戻す。そして、画素（ｎ＋３，ｍ＋２）を階調値“１０”を有する未処理画素とし、セルＣＬ２から除外する。
【００８６】
図３および図４、図５を用いて説明した変換処理が本実施形態におけるＣＣ法の基本的な処理内容である。ＣＣ法による階調変換処理によれば、常にセルの重心に最も近い画素を組み入れてセルを生成するため、閾値を付与する画素位置に対してほぼ円形状となるセルを生成する。従って、閾値が付与された画素位置にドットを形成した場合、隣り合うドットが近かったり、あるいは重なったりする確率を減少することでき、分散性のよいドットを形成することができる。
【００８７】
また、ＣＣ法では、前述したようにセル内の画素の階調値合計が閾値に達するまでセルを拡大するため、階調値が小さい画素が多い入力画像領域では画素数が多いセルが生成され、逆に階調値が大きい画素が多い入力画像領域では画素数が少ないセルが生成される。したがって、生成されたセルを構成する画素数は、入力画像の階調値の大小つまり入力画像の濃淡を表すという特徴がある。
【００８８】
また、ＣＣ法による階調変換によれば、誤差データを元の画素に戻すため、入力画像データの歪みが小さくなり、入力画像の階調値に対して比較的忠実に階調変換処理を行うことができる。
【００８９】
次に、ＣＣ法による階調変換について、各ハードにおける具体的な処理内容を図３のフローチャートと図２の構成図を参照し、図６〜図８の模式図を用いて説明する。
【００９０】
まず、ＣＰＵ２６は、ハードディスク２９またはＲＯＭ２８に格納されたプログラムを読み出して、入力画像の読み込み処理を開始する（ステップＳ３０１）。入力画像の読み込みは、ハードディスク２９に格納された色変換処理後の色相データを、ＲＡＭ２７の指定された入力バッファ領域に取り込むことで行う。例えばシアンの色相データはシアン入力バッファ領域に格納され、マゼンタの色相データはマゼンタ入力バッファ領域に格納される。ＣＣ法は、全ての色相データについて基本的に同じ処理を行うものであるため、色相データを区別せずに説明することとし、ＲＡＭ２７に用意された入力バッファだけでなく、以降説明する出力バッファやワーキングメモリについてもシアン、マゼンタなどの記載を省略している。この例を図６（ａ）に示す。もとより、各色相データについての処理データは、それに対応した入力バッファ、ワーキングメモリ、出力バッファの各領域に格納される。
【００９１】
ＲＡＭ２７は、図６（ａ）に示すように、入力バッファ領域２７１と、ワーキングメモリ領域２７２と、出力バッファ領域２７３とから構成される。この入力バッファ領域２７１は、２次元構造を有しており、例えば上述の入力画像の画素（以降、入力画素）について、（ｎ，ｍ）に位置する入力画素の色相データは、入力バッファ領域の（ｎ，ｍ）のアドレスに格納される。入力画素の位置に対応するように入力バッファ領域２７１が構成される。実際には、このアドレスには色相データの階調値が格納されることになる。例えば、図４（ａ）に示すシアンの色相データが入力されると、図６（ａ）に示すように入力バッファ２７１に各画素の階調値が格納される。ワーキングメモリ領域２７２は、重心位置の演算結果と階調値の演算結果が格納され、出力バッファ領域２７３は入力バッファ２７１と同様に各入力画素の色相データに対応するように構成される。詳細は後述する。
【００９２】
次いで、ＣＰＵ２６は、セル生成の最初の未処理画素となる初期画素を探索決定して（ステップＳ３０２）、決定した初期画素の階調値が閾値より小さいか否かを判断する（ステップＳ３０４）。具体的には、ＲＯＭ２８に格納した閾値を読出し、ＲＡＭ２７の入力バッファ２７１から読み出した初期画素の階調値と比較し、閾値よりも小さい場合はステップＳ３０５に移行し、閾値と同じか大きいときはステップＳ３０６に移行する。
【００９３】
初期画素の決定は、ＲＡＭ２７の入力バッファ２７１に格納された入力画像データのうち、入力画素の位置で最も上の左側に位置する画素をＣＰＵ２６が選択する。すなわち、図６（ａ）に示す例では、（ｎ，ｍ）に対応する位置に位置する画素を初期画素としてＣＰＵ２６は判断する。以下、説明を簡単にするため、（ｎ，ｍ）＝（０，０）として説明する。
【００９４】
ステップＳ３０４で閾値より小さいと判断された場合（ＹＥＳ）、ＣＰＵ２６は、未処理画素の選択を行い、セルを拡大する処理を行う（ステップＳ３０５）。ここで未処理画素の選択は、セルの重心を利用して行う。重心を利用して画素の選択を行うことによって、最終的に生成されるセルの形状は円形状となり、その重心にドットを形成させることで、ドット間距離が均一となり、ドットの分散性がよい印刷出力を得ることができるのである。
【００９５】
ＣＰＵ２６は初期画素の位置する画素の階調値と、そのアドレス位置とを読み出し、重心を演算する。ＣＰＵ２６は、具体的に以下の演算式を用いて演算し重心を求める。
【００９６】
（式１）
ｘ重心＝｛｛（セルの重心のｘ座標）×（セル内の画素の階調値合計）｝＋｛（選択した未処理画素のｘ座標）×（選択した未処理画素の階調値）｝｝／{（セル内の画素の階調値合計）＋(選択した未処理画素の階調値)}
ｙ重心＝｛｛（セルの重心のｙ座標）×（セル内の画素の階調値合計）｝＋｛（選択した未処理画素のｙ座標）×（選択した未処理画素の階調値）｝｝／{（セル内の画素の階調値合計）＋(選択した未処理画素の階調値)}
（ｘ重心、ｙ重心は重心位置の座標）
この演算式はＲＯＭ２８に格納され、ステップＳ３０５にてＣＰＵ２６が読み出して演算を行うことになる。もとより、初期画素の場合は、セルの重心のｘ、ｙ座標は“０”として演算される。なお、ＣＰＵ２６は、演算した重心位置と、セルを構成する画素数“１”とを、上述したワーキングメモリ領域２７２のアドレス「ｘ」「ｙ」「ｇｎ」にそれぞれ格納する（図６（ｂ）参照）。
【００９７】
また、ＣＰＵ２６は、ステップＳ３０４で初期画素の階調値が閾値より小さいと判断された場合は、初期画素に対応する出力バッファ２７３に“０”を格納し、ステップＳ３０４で初期画素の階調値が閾値以上と判断された場合は、その時点で初期画素に対応する出力バッファ２７３に“２５５”を格納する。この画素位置にドットを出力する処理を行うためである。ここでは、選択された初期画素の階調値は閾値より小さいため、図６（ｂ）に示すように、選択した画素に対応するＲＡＭ２７の出力バッファ２７３に“０”がＣＰＵ２６によって格納されることになる。
【００９８】
続いて、ＣＰＵ２６は、ワーキングメモリ２７２のアドレス「ｓｕｍ」に初期画素の階調値を格納するとともに、選択した初期画素に対応する入力バッファ２７１に“−１”を格納する。再度未処理画素の選択で、当該画素を選択されないようにするためである。以降、未処理画素の選択処理と同時もしくは選択処理に先んじて、それまで既に選択されたセルを構成する画素の階調値の合計をワーキングメモリ２７２のアドレス「ｓｕｍ」に格納し、当該画素に対応する入力バッファ２７１のアドレスに“−１”を格納する処理を行う。
【００９９】
なお、ＣＰＵ２６は、入力バッファ２７１に“−１”を格納させているが、これに限ることはなく、他の負の値でもよい。さらに入力バッファ２７１と同様の構成のメモリ領域を用意して、選択した画素に対応する位置にフラグを立てて、選択画素が処理済みか否かを判別するようにしてもよい。
【０１００】
未処理画素の選択処理は、ステップＳ３０５で演算した重心から最も近い距離にある画素を選択することによって行う。このとき、ＲＡＭ２７の入力バッファの所定位置に格納されている入力画像の階調値から、アドレス（１，０）にある入力画素の階調値か、アドレス（０，１）にある入力画素の階調値が選択される。２つの画素ともアドレス（０，０）から等距離にあるからである。ここで、いずれかの画素を選択する必要があるが、本実施形態ではＣＰＵ２６がランダムに画素を選択し、ここでは０行１列のアドレス（１，０）にある画素の階調値を選択する。こうしてセルを拡大する処理が行われるのである。
【０１０１】
次いで、ＣＰＵ２６は、再びセル内の画素の階調値合計が閾値未満であるか否か判断する（ステップＳ３０４）。すなわち、選択した未処理画素の階調値を含めたセル内の画素の階調値合計が閾値“２５５”未満であるか否かを判断する。具体的には、ＣＰＵ２６は、ＲＡＭ２７のワーキングメモリ２７２のアドレス「ｓｕｍ」に書き込んだ画素の階調値と、ステップＳ３０５で選択した画素の入力バッファ２７１に格納された階調値とを読出し、その合計を演算して、ＲＯＭ２８に格納された閾値（ここでは“２５５”の値）とを比較する。例えば図６（ｃ）の例では、ワーキングメモリ２７２のアドレス「ｓｕｍ」に格納された値“５０”と、入力バッファ２７１のアドレス（１，０）格納されている階調値“５０”との合計値は“１００”となる。よって合計値は閾値に達しない。
【０１０２】
階調値の合計が閾値を超えない場合（ステップＳ３０４：ＹＥＳ）、ＣＰＵ２６は、再び選択した未処理画素を含めた重心の演算を行う（ステップＳ３０５）。具体的なＣＰＵ２６の演算は、上述した（式１）の演算式を用いて行うことになる。これまで求めた重心のｘ、ｙ座標は、（０，０）で重心の階調値は“５０”、未処理画素のｘ、ｙ座標は（１，０）で、その階調値は“５０”であるので、演算される重心位置は（０．５，０）となる。このステップＳ３０５で演算した重心位置は、ＣＰＵ２６の制御によってＲＡＭ２７のワーキングメモリ２７２にセルの画素数とともに格納される。ステップＳ３０５での前回の処理で、ワーキングメモリ２７２には初期画素の重心位置および初期画素の画素数が格納されていたが、ここではその位置に上書きして格納する。その格納後の例を図６（ｃ）に示す。
【０１０３】
ここで、図６（ｃ）に示されているように、重心位置は必ずしも整数値になるとは限らない。このとき、未処理画素の選択において重心に最も近い画素を選択する方法のほかに、重心が位置する画素に最も近い画素、つまり重心が位置する画素の中心に最も近い画素を選択する方法としてもよい。このようにすると、重心位置は整数値として演算でき、ＣＰＵ２６が処理する計算量の削減が期待できる。
【０１０４】
こうして、ステップＳ３０４とＳ３０５の処理を繰り返すたびに、ＣＰＵ２６は、ステップＳ３０４で演算したセル内の画素の階調値合計が、閾値と等しいか否か判断しながら閾値に達するまでセルを構成していくことができる。また、閾値に達していない場合、上述したようにＣＰＵ２６は、セルに組み入れた入力画素の位置に対応した出力バッファ２７３の位置に“０”を格納する。
【０１０５】
図７（ａ）は、未処理画素（１，１）が選択されたときの状態を示したもので、ワーキングメモリ２７２の「ｓｕｍ」の値と画素（１，１）の階調値との合計値と、ＲＯＭ２８に格納された閾値とをＣＰＵ２６が読み出して、両者を比較し、まだ閾値に達していないので、画素（１，１）をセルに組み込み、ワーキングメモリ２７２には重心位置とセルを構成する画素数“４”が、また選択した未処理画素（１，１）に対応する出力バッファ２７３に“０”がそれぞれ格納されている。
【０１０６】
図７（ｂ）は、図７（ａ）に引き続き行われる処理を示したもので、入力画素（１，２）が重心位置に最も近い画素として選択された状態を示している。このとき、セルの階調値合計が“２５５”になった状態を示している。すなわち、これまでセルに組み込まれた画素の階調値合計“２０５”が、ＲＡＭ２７のワーキングメモリ２７２に格納されるので、その値と画素（１，２）の値との合計値を、閾値と比較することで、ＣＰＵ２６は閾値と等しいと判断する。この場合、ＣＰＵ２６は、セルに組み入れた入力画素（１，２）の位置に対応した出力バッファ２７３の位置に“０”を格納する。
【０１０７】
そして、閾値と等しいとＣＰＵ２６が判断した場合（ステップＳ３０６：ＹＥＳ）、処理はステップＳ３０７に移行し（式１）を用いて重心位置を演算し、演算した重心位置とセルの画素数“５”をワーキングメモリ２７２に格納する。そして、重心に位置する画素に所定の色成分のドットを形成するための処理を行う。具体的には、図７（ｂ）に示したように、ＲＡＭ２７の出力バッファ２７３の入力画素の位置に対応するアドレス位置にドットの形成をしめす所定の階調データ“２５５”を、セルを構成する画素数情報（本実施形態では“Ｇ５”）とともに書き込む。出力バッファの構造も入力バッファと同様に２次元構造で、入力画素の位置に対応するアドレス空間を有している。重心が位置するアドレスに“２５５”と“Ｇ５”を書き込むことで、その後、実際にその位置に対応する位置にドットを形成することができる。
【０１０８】
次いで、ＣＰＵ２６は、データ“２５５”の書き込み処理をトリガーにして新たにセルを生成する処理に移行し、再び未処理画素があるか否か判断する（ステップＳ３０２）。すなわち、上述した処理をＲＡＭ２７の入力バッファ２７１に書き込まれたすべての階調値に対して行ったか否かで判断し、未処理画素があれば（ＹＥＳ）再び処理はステップＳ３０４に移行し、上述の処理を繰り返す。例えば、図７（ｃ）に、引き続いて上述した走査方法に従って、未処理画素（２，０）が探索された状態を示した。すべての画素に対して処理が終了すれば（ステップＳ３０２：ＮＯ）、ＣＰＵ２６はステップＳ３０３に移行し、処理が終了することになる。
【０１０９】
一方、ステップＳ３０６でセル内の画素の階調値合計が閾値を超える場合（ＮＯ）、処理はステップＳ３０９に移行し、閾値を超えた場合の重心演算処理を行う。
【０１１０】
図８（ａ）は、図７にて説明した処理に引き続いて、ＣＰＵ２６の処理が行われた状態を示したもので、入力画素（３，１）がセルに組み入れられたときのＲＡＭ２７に格納されたデータの様子を示している。次に、図８（ｂ）に示したように、（３，２）に位置する画素が選択されると、セル内の画素の階調値合計の演算結果は“２６５”になり、閾値“２５５”を超えることになる。したがって、このような場合（ステップＳ３０６：ＮＯ）、ステップＳ３０９に移行することになる。
【０１１１】
ステップＳ３０９は、閾値を超える階調値分つまり誤差データを無視してセルの重心を算出する処理を行う。このため、まずＣＰＵ２６は、閾値からセル内の画素の階調値合計、すなわち閾値からこれまでステップＳ３０５で格納したワーキングメモリの階調値を減ずる演算を行う。例えば図８に示す例では、閾値は“２５５”、ステップＳ３０５でこれまで格納した階調値は図８（ｂ）に示したように“２０５”であるので、ＣＰＵ２６がこれらを読み出して２５５−２０５＝５０の値を演算する。
【０１１２】
そして、ＣＰＵ２６が、この“５０”の値を画素（３，２）の階調値として重心の演算を行うことによって、誤差データが無視されることになる。重心の演算は具体的には、以下の演算式を用いる。
【０１１３】
（式２）
ｘ重心＝｛｛（セルの重心のｘ座標）×（セル内の画素の階調値合計）｝＋｛（選択した未処理画素のｘ座標）×（セル内の画素の階調値が閾値となるまでの階調値）｝｝／｛（セル内の画素の階調値合計）＋(セル内の画素の階調値が閾値となるまでの階調値)｝
ｙ重心＝｛｛（セルの重心のｙ座標）×（セル内の画素の階調値合計）｝＋｛（選択した未処理画素のｙ座標）×（セル内の画素の階調値が閾値となるまでの階調値）｝｝／｛（セル内の画素のレベル値合計）＋(セル内の画素の階調値が閾値となるまでの階調値)｝
（ｘ重心、ｙ重心は重心位置の座標）
（式１）との違いは、選択した未処理画素の階調値をそのまま用いるのではなく、セルの合計が閾値と同じになるまでの階調値を用いる点が異なる。
【０１１４】
この演算式は、（式１）の場合と同様に予めＲＯＭ２８に格納されており、ＣＰＵ２６が本ステップを実行する際にＲＯＭ２８から読み出すことで実行される。ここでは、最終的にステップＳ３０５で選択した画素の階調値は、これまで演算した階調値の合計との和をとることで閾値と等しくなるように演算して、それをもとに重心位置を求めることになる。そしてＣＰＵ２６は、演算した重心位置データを再びＲＡＭ２７のワーキングメモリ２７２に書き込む（図８（ｂ）のワーキングメモリ２７２参照）。
【０１１５】
また、ＣＰＵ２６は、最終的に選択した画素の元の階調値からステップＳ３０９で演算した演算結果を引いた値（誤差データ）を演算して、その値を再びその選択した画素の入力バッファに書き込む（ステップＳ３１０）。これにより、当該画素の階調値が、戻しデータとして格納される。図８（ｃ）に示す例では、ステップＳ３０９で演算した“５０”を最終的に選択した（３，２）の画素の階調値“６０”から引いて“１０”の値を求め、これをＲＡＭ２７の入力バッファ２７１のアドレス（３，２）に再び書き込む（図８（ｃ）の入力バッファ２７１参照）。
【０１１６】
そして、この画素はセルに組み込まれず、階調変換が未処理であるとして扱い、新たなセルに組み入れられる未処理画素とする処理を行う（ステップＳ３１１）。上述したように、誤差データをセル以外の画素に戻すのではなく、誤差データが発生した画素に戻しデータとして再び格納させ、当該画素を未処理画素とすることで、入力画像の階調値に忠実な位置にドットを形成することができる。
【０１１７】
その後処理はステップＳ３０８に移行し、上述した処理が繰り返されることになる。ちなみに、ＣＰＵ２６は、重心位置の存在する画素に対応する出力バッファ２７３に“２５５”と“Ｇ４”を格納させる。これにより、その後の処理で重心位置の存在する画素にドットを形成することができる。
【０１１８】
以上説明したように、図２に示したハード構成によって、各色相データに対してＣＣ法によるハーフトーン処理が行われる。
【０１１９】
（Ｂ）誤差拡散法によるハーフトーン処理
次に、誤差拡散法によるハーフトーン処理について、図９〜図１１を用いて説明する。誤差拡散法は、ドットマトリクス状に配列される入力画像の画素に対して、水平方向（入力画像の画面左から右方向）の主走査を繰り返しつつ走査ラインを垂直方向（入力画像の画面上から下方向）に移動する副走査を実行することにより注目画素を順次走査し、全画素について対象となる色相データを所定の種類の値を有する階調値に階調変換する。このようにして、注目画素を走査していくことにより、図９（ａ）に示したように、注目画素上方行と下方行は階調変換済み領域と未変換領域とに分かれる。さらに注目画素の左方列と右方列も階調変換済み領域と階調未変換領域とに分かれる。基本的には階調変換した所定の階調値と、階調変換前の元の階調値との差分値、つまり量子化による誤差値（以降、単に「誤差値」）を、注目画素の右方及び下方に割り当てることにより、入力画像全体での階調値の誤差を少なくするのである。
【０１２０】
また、図９（ｂ）〜（ｄ）に示すように、拡散する誤差値の割り当てに際しては、注目画素に対して所定の画素に重み付けをして誤差値を拡散させている。このように所定の画素に重み付けをして拡散することによって、入力画像の階調値の拡散度合いを設定することができる。
【０１２１】
それでは、誤差拡散法を用いた階調変換処理（２値化）処理について、図１０のフローチャートと図１１の模式図を用いて説明する。なお本実施形態での誤差値の拡散は、図９（ｂ）の重み付け方法を用いて行うものとしている。注目画素に生じた誤差値を、右隣の画素に２、下の画素に２、右下の画素に１、左下の画素に１の割合で拡散するのである。
【０１２２】
この処理において、まず、ｐ行ｑ列目の画素に注目する。そしてこの画素のＣ，Ｍ，Ｙ各色成分の色相データを、例えばシアン（Ｃ）成分であればｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕と表す。これを、Ｃ，Ｍ，Ｙそれぞれの成分について２値化するのであるが、一例として、以下Ｃ成分を２値化する処理について説明する。もとより、Ｍ，Ｙ成分についても処理は基本的に同じである。なお、ｐ行ｑ列目の画素の２値化によって生じる誤差値を、ｅｒｒ〔ｐ〕〔ｑ〕と表す。
【０１２３】
同じくこの処理において、階調変換処理後のＣ成分の階調値（ｐｒｅ＿Ｃ）を以下のように表す。
ｐｒｅ＿Ｃ〔０〕＝０
ｐｒｅ＿Ｃ〔１〕＝２５５
【０１２４】
また、階調変換処理のために用いる閾値ＳＨは、ｐｒｅ＿Ｃ〔０〕より大きく、ｐｒｅ＿Ｃ〔１〕より小さい所定の値に設定する。
【０１２５】
図１０の処理が開始されると、最初にステップＳ４０１にて、注目画素となるｐ行ｑ列目の画素の色相データｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕が閾値ＳＨより小さいか否かを判定する処理を行う。判定の結果、注目する画素のｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕の階調値が閾値ＳＨより小さい場合は（ＹＥＳ）、ｐｒｅ＿Ｃの階調値をｐｒｅ＿Ｃ〔０〕の値“０”とする（ステップＳ４０２）。
【０１２６】
一方、ｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕の階調値が閾値ＳＨより大きい場合は（ＮＯ）、ステップＳ４０５にて、ｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕の階調値がｐｒｅ＿Ｃ〔１〕の値以下か否かを判定する処理を行う。判定の結果、ＹＥＳであれば、ｐｒｅ＿Ｃのレベル値をｐｒｅ＿Ｃ〔１〕の値“２５５”とする（ステップＳ４０６）。
【０１２７】
基本的に、ｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕は以上の処理によって、“０”か“２５５”の値のどちらかに階調変換されることになるが、もしいずれにも変換されない場合、すなわちステップＳ４０５にて判定の結果ＮＯである場合はデータエラーとして処理を終了する。
【０１２８】
次に、ステップＳ４０２、Ｓ４０６にて“０”か“２５５”の何れかに設定された階調値ｐｒｅ＿Ｃとｄａｔａ＿Ｃ〔ｐ〕〔ｑ〕とからｅｒｒ〔ｐ〕〔ｑ〕を算出する処理を行う（ステップＳ４０７）。そして、次のステップＳ４０８にて、算出したｅｒｒ〔ｐ〕〔ｑ〕を、図９（ｂ）の重み付けに従って所定の画素に拡散する処理を行う。
【０１２９】
以上の処理を、所定の走査順に従って行い、ｐ、ｑすべて終了したか否かを判定し（ステップＳ４０９）、終了していない場合は（ＮＯ）ｐ、ｑを更新し（ステップＳ４１０）、順次画素の色相データを階調変換することによって入力画像全ての画素について処理を終了し（ＹＥＳ）、誤差拡散法による階調変換処理を終了する。もとより、入力画像の一行一列目の画素を最初の注目画素とし、その後、前述した主走査および副走査方法に従って注目画素を更新するのである。
【０１３０】
図１０のフローチャートで示した処理の様子を、一例として、図１１の模式図を用いて説明する。ここでは、図４（ａ）に示したシアン成分の色相データを所定の閾値“７０”を用いて階調変換するものとする。もとより閾値はこれに限るものではなく、前述したように値“０”と“２５５”との間の値であれば何でもよい。
【０１３１】
図１１（ａ）太枠部に示したように、ｐ行ｑ列目の画素を注目画素とする。以降、画素を（ｑ，ｐ）というように表記する。閾値“７０”との比較によって、図１１（ｂ）に示したように、（ｑ，ｐ）は階調値“０”に変換される。そして誤差値“５０”（＝５０−０）を重み付け方法に従って、網掛け部で示したそれぞれの画素（ｑ＋１，ｐ）と（ｑ，ｐ＋１）に“１７”、（ｑ＋１，ｐ＋１）に“８”の誤差値をそれぞれ拡散する。なお注目画素が入力画像の左端など端部に位置する場合は、誤差値の拡散対象となる画素のうち存在する画素に対して、それぞれの重み付け係数によって誤差値を振り分けて拡散する。従って、存在しない画素に対する重み付け分の階調値は失われる。
【０１３２】
次に、走査方法に従って（ｑ＋１，ｐ）を次の注目画素とし（図１１（ｃ）太枠部）、閾値との比較によって（ｑ＋１，ｐ）は階調値“０”に変換される（図１１（ｄ））。そして誤差値“６７”（＝６７−０）を重み付け方法に従って、図１１（ｃ）の網掛け部で示したそれぞれの画素（ｑ＋２，ｐ）と（ｑ＋１，ｐ＋１）に“２２”、（ｑ＋２，ｐ＋１）と（ｑ，ｐ＋１）に“１１．５”の誤差値をそれぞれ拡散する。
【０１３３】
次に、走査方法に従って（ｑ＋２，ｐ）を注目画素とし（図１１（ｄ）太枠部）、閾値との比較によって（ｑ＋２，ｐ）は階調値“２５５”に変換される（図１１（ｅ））。そして誤差値“−１８３”（＝７２−２５５）を重み付け方法に従って、（ｑ＋３，ｐ）と（ｑ＋２，ｐ＋１）に“−６１”、（ｑ＋３，ｐ＋１）と（ｑ＋１，ｐ＋１）に“−３０．５”の誤差値をそれぞれ拡散する。
【０１３４】
走査方法に従って（ｑ＋３，ｐ）が次の注目画素となるが（図１１（ｆ）太枠部）、このときは、画素（ｑ＋２，ｐ＋１）と（ｑ＋３，ｐ＋１）が重み付け分の誤差値が拡散される対象画素となる（図１１（ｆ）網掛け部参照）。このように色相データの変換処理を入力画像の全ての画素について繰り返し実施することによって、対象となる色相データについて階調変換（２値化）処理が行われるのである。
【０１３５】
以上説明したように、誤差拡散法を用いたハーフトーン処理は、量子化に伴って発生する階調値を誤差値として一定の方向に拡散させていくため、端部に位置する画素について一部階調値を失うものの、ほぼ元の階調値を保ちながら階調変換することができる階調変換処理方法である。
【０１３６】
なお、誤差拡散法についてのハード構成は、ＣＰＵ２６、ＲＯＭ２８やＲＡＭ２７の入力バッファ、出力バッファの構成など、前述したＣＣ法による階調変換におけるハード構成と基本的に同じである。また誤差拡散の手法は周知の技術であるため、ハード構成および具体的にＣＰＵ２６が行う誤算拡散法に基づく制御処理内容についての説明は、ここでは省略する。
【０１３７】
（Ｃ）ハーフトーン処理についての第１実施例（フィルタによるデータ処理）
（Ｃ１）誤算拡散法を用いたハーフトーン処理
次に、本実施形態におけるハーフトーン処理についての第1実施例を、図１２のフローチャートを用いて説明する。第１実施例は、異なる２つの色相を持ったシアン成分とマゼンタ成分の色相データのハーフトーン処理に際して、シアン成分の色相データとその２値化データとの差分データを所定のフィルタにてデータ処理を行ったのち、マゼンタ成分の色相データに加算することによって、互いに重ならず分散性のよいドットを形成するものである。
【０１３８】
この処理が開始されると、まずステップＳ２０１にて、入力画像を読み込む処理を行う。具体的には、色変換部２１（図１）が出力した色相データＤＴを入力バッファに取り込むことによって入力画像を読み込む処理を行う。通常、全ての色相データを読み込んで、ドットを出力するためハーフトーン処理を行うが、ここでは説明を容易にするため、均一した階調値を持った色相の異なる２つの色相データであるシアン（Ｃ）成分とマゼンタ（Ｍ）成分とが、それぞれ入力バッファ２７１Ｃａと２７１Ｍａに取り込まれたものとする。均一した階調値“２０”のシアン成分の色相データが取り込まれた様子を図１３（ａ）に示した。また、本実施例では、さらに説明の簡便性のため取り込まれたシアン成分、マゼンタ成分とも８×８画素（アドレス（０，０）から（７，７）まで）の色相データであるとして以降説明する。
【０１３９】
次に、ステップＳ２０２にて、シアン成分の階調値を、誤差拡散法を用いて２値化処理を行う。ここでの２値化処理に際しては、閾値を“４５”とし、図９（ｂ）の重み付け方法によって誤差値を拡散し階調変換する。この結果、シアン出力バッファ２７３Ｃａに、図１３（ｂ）に示した２値化データが格納される。
【０１４０】
次に、ステップＳ２０３にて、シアン成分の差分データの算出処理を行う。差分データは、シアン成分の色相データからシアン成分の２値化データを減算して求める。具体的には、シアン入力バッファ２７１Ｃａのデータからシアン出力バッファ２７３Ｃａのデータをマイナス演算して算出する。算出結果は、図１３（ｃ）に示したようにシアン出力バッファ２７３Ｃｂに格納される。
【０１４１】
算出された差分データは、ドットが形成される位置に対応した１画素のみ、階調値を大きく減少させたものになっている。従って、このままこの差分データを以降の処理ステップにてマゼンタに加算すると、前述した特許文献２と同様、一方の色相のドット形成が行われた画素のみにドット抑制効果がとどまるため、他方の色相のドットが隣接する画素に形成されやすく、ドットが分散されにくくなる。そこで、ステップＳ２０４にて、シアン成分の差分データを所定のフィルタにてデータ処理を行う。つまり、所定のフィルタマトリックスを用いて、ドットが形成される画素位置周辺にドット抑制効果を分散させる処理を行うのである。
【０１４２】
図１４（ａ）〜（ｃ）に、フィルタマトリックスを例示する。本実施例では、用いるフィルタマトリックスを第１ドットの明度と第２ドットの明度の比率に応じた大きさのマトリックスとする。例えば、第１ドットの明度が高い場合は、図１４（ｃ）に例示したような大きいマトリックスを用いる。逆に、第１ドットの明度が低い場合は、図１４（ａ）に例示したような小さいマトリックスを用いる。こうすることで、第１ドットが明度の高いドット、つまりより目立ち易いドットの場合は、第１ドットの位置から遠い位置に第２ドットが形成され、第１ドットが明度の低いドット、つまりより目立ち難いドットの場合は、第１ドットの位置に近い位置に第２ドットが形成される。この結果、印刷紙面上において単位面積あたりの明度を一定に保つ効果を奏することになる。
【０１４３】
本実施例では、シアン成分の出力ドットとマゼンタ成分の出力ドットの明度比から、図１４（ｂ）に示したフィルタマトリックスが用いられデータ処理が行われるものとする。画像出力装置３０が出力するドットの明度比に応じて用いる所定のフィルタマトリックスは、予めＲＯＭ２８またはハードディスク２９に格納され、データ処理に際してＣＰＵ２６が読み出して処理を行う。もとより、出力ドットの明度にかかわらず、所定のフィルタマトリックスを用いることとしても差し支えない。
【０１４４】
フィルタマトリックスによるデータ処理について、図１５を用いて説明する。図１５（ａ）に示したように、まずシアン出力バッファ２７３Ｃｂのアドレス（０，０）を注目画素として太枠で示したフィルタマトリックスを用いてデータ処理する。このとき図示したように、フィルタマトリックス上、差分データが格納されたシアン出力バッファ２７３Ｃｂのアドレスと重ならない部分が発生するが、この部分の階調値は“０”としてデータ処理を行う。データ処理の結果、アドレス（０，０）の階調値は“１０”となり、ＲＡＭ２７に用意されたシアン出力バッファ２７３Ｃｃに格納される。
【０１４５】
次に、注目画素はアドレス（１，０）に移り、同じようにデータ処理を行い、階調値“−１１”が、シアン出力バッファ２７３Ｃｃのアドレス（１，０）に格納される。以降、前述の主・副走査の順序に従い、フィルタマトリックスを用いてデータ処理を繰り返し実施する。図１５（ｃ）は、データ処理の途中経過を示したもので、アドレス（４，１）が注目画素となったとき、階調値“２０”が、シアン出力バッファ２７３Ｃｃのアドレス（４，１）に格納された状態を示している。
【０１４６】
全てのアドレスについてデータ処理が終了すると、シアン成分の差分データは、図１６（ａ）に示したシアン出力バッファ２７３Ｃｃの状態となる。そして、次のステップＳ２０５にて、マゼンタ成分にこのデータ処理されたシアン成分の差分データを加算する処理を行う。図１６（ｂ）は、シアン成分と同様に、ＲＡＭ２７に用意されたマゼンタ入力バッファ２７１Ｍａに取り込まれたマゼンタ成分の色相データを示している。本実施例では、マゼンタ成分も均一な階調値“２０”を有する色相データであるものとする。加算処理は、シアン出力バッファ２７３Ｃｃのデータと、マゼンタ入力バッファ２７１Ｍａのデータとをプラス演算することによって行う。この結果は、ＲＡＭ２７に用意されたマゼンタ入力バッファ２７１Ｍｂに格納される（図１６（ｃ）参照）。
【０１４７】
こうして加算されたマゼンタ成分の色相データを、次のステップＳ２０６にて２値化処理する。本実施例では、マゼンタ成分の色相データの２値化処理についても、シアン成分と同様、閾値“４５”と図９（ｂ）に示した重み付けによる誤差拡散法を用いて２値化処理を行う。
【０１４８】
ステップＳ２０６での２値化処理の結果、マゼンタ出力バッファ２７３Ｍａは図１７（ａ）に示したようになる。そして、階調値“２５５”が格納されたアドレスに対応した画素位置にマゼンタ成分に対応する色ドット（単に、マゼンタドット）が形成される。一方、シアン成分に対応する色ドット（単に、シアンドット）は、図１７（ｂ）に示したように、シアン出力バッファ２７３Ｃａに格納された階調値“２５５”のアドレスに対応した画素位置に形成される。従って、２種類のドットは、図１７（ｃ）に示したように形成される。
【０１４９】
以上で、誤差拡散法を用いた第１実施例の処理は終了するが、図１７（ｃ）から明らかなように、所定のフィルタによるデータ処理を行った本実施例のハーフトーン処理によれば、色相の異なる２種類の色相データについて、形成されるドットは重ならず、かつ分散性もよいことが分かる。仮に、本実施例において、ステップＳ２０３からＳ２０５の処理を行わず、シアン、マゼンタの色相データを同じ誤算拡散の方法で２値化した場合は、入力データが全く同一であるため、シアン成分もマゼンタ成分も共に図１３（ｂ）に示した２値化データとなり、全く同じ画素位置にドットが形成されてしまうことになる。本実施例によれば、ドットが重ならず分散性よく形成されるのである。
【０１５０】
（Ｃ２）ＣＣ法を用いたハーフトーン処理
図１７（ｃ）では、形成されるシアンドットは４個でマゼンタドットは６個となっている。ここで、入力されたそれぞれの色相データの全ての画素の階調値合計は“１２８０”（＝２０×８×８）であることから、２値化後の階調値“２５５”の数は、階調値が保存されている場合は“５”（＝ＩＮＴ（１２８０／２５５）：ＩＮＴは小数点以下を切り捨てる関数）となり、それぞれ合計５個のドットが形成されるはずである。しかし、２値化処理に誤算拡散法を用いた場合は、前述したように重み付け方法に従って誤差値が画像全体の右側及び下側に拡散していくため、画像の端部において元の画像の階調値が一部失われ、シアン成分の２値化処理の結果、階調値“２５５”が格納されたアドレス数が４個となって２値化データの階調値が減り、その分マゼンタ成分の階調値が増えることになる。この結果、形成されるシアンドットが減りマゼンタドットが増え、ドット数に差が生じるのである。
【０１５１】
（Ｃ２）ＣＣ法を用いたハーフトーン処理
前述した形成されるドット数の差に鑑み、次にＣＣ法を用いたハーフトーン処理による第１実施例を図１２のフローチャートに基づいて説明する。まず、ステップＳ２０１にて、図１３（ａ）に示したものと同じシアン成分の階調値が、シアン入力バッファ２７１Ｃａに格納処理される（図１８（ａ）参照）。これをステップＳ２０２（図１２）にて、ＣＣ法を用いて２値化処理を行うと、図１８（ｂ）に示したシアン出力バッファ２７３Ｃａのデータを得る。図中太枠は生成されたセルを表し、“２５５”はドットの形成位置を、“Ｇ１３”および“Ｇ１１”はセルを構成する画素数をそれぞれ表している。図１８（ｂ）に示したように、ＣＣ法によれば、階調値が保存されるため、シアンドットは５個形成される。
【０１５２】
次に、ステップＳ２０３にて、シアン成分の差分データを算出処理すると、図１８（ｃ）に示したシアン出力バッファ２７３Ｃｂのデータを得る。次に、ステップＳ２０４にて、シアン出力バッファ２７３Ｃｂのデータを、図１４（ｂ）に示した所定のフィルタマトリックスを用いてデータ処理すると、図１９（ａ）に示したシアン出力バッファ２７３Ｃｃのデータを得る。そしてこのデータを、図１９（ｂ）に示したマゼンタ入力バッファ２７１Ｍａのデータに加算処理を行い（ステップＳ２０５）、マゼンタ入力バッファ２７１Ｍｂに２値化処理の対象となる階調値データを得る（図１９（ｃ）参照）。
【０１５３】
次にステップＳ２０６にて、マゼンタ入力バッファ２７１Ｍｂに格納されたマゼンタ成分の階調値を、ＣＣ法を用いて２値化処理する。図２０（ａ）に、生成されるセルの様子を太枠線にて示した。そして、ＣＣ法による２値化処理のデータは、図２０（ｂ）に示したように、マゼンタ出力バッファ２７３Ｍａの各アドレスに２値化データとして格納される。この結果、シアンドットとマゼンタドットは図２０（ｃ）に示したように形成される。
【０１５４】
以上のように、所定のフィルタマトリックスを用いてデータ処理をおこない、ＣＣ法による２値化処理によって、２種類の色相データに対応するドットは重ならず形成される。また、シアンドット数も５個になっている。
【０１５５】
しかしながら、形成されるマゼンタドットはまだ４個になっていることと、図１３（ｃ）に示した誤差拡散法と比較すると、シアンドットとマゼンタドットとの分散性が劣っている。これは、図１２のステップＳ２０４で、所定のフィルタによるデータ処理を行った際、フィルタマトリックスと入力バッファのアドレスが重ならない位置の階調値を“０”として処理したため、入力バッファの端部のアドレスにおいてシアン成分のプラスの階調値が失われ、その結果、ステップＳ２０５にてマイナスの階調値がマゼンタ成分に加算され、マゼンタ成分の階調値を減少させたためである。
【０１５６】
（Ｄ）ハーフトーン処理についての第２実施例（プロファイルによる分散処理）
そこで、第２実施例として、差分データをフィルタによってデータ処理を行う方法に替え、２値化データを所定のプロファイルにて分散する方法によって、ドットが重ならず且つ適切なドット数が形成されるＣＣ法を用いた２値化処理方法を説明する。
【０１５７】
第２実施例にて行うハーフトーン処理を図２１のフローチャートを用いて説明する。第２実施例は、異なる２つの色相を持ったシアン成分とマゼンタ成分の色相データのハーフトーン処理に際して、シアン成分の２値化データのうち階調値“２５５”のデータを所定のプロファイルにて分散し、その分散したデータと２値化処理前の色相データとの差分データを、マゼンタ成分の色相データに加算することによって、互いに重ならず分散性のよいドットを形成するものである。
【０１５８】
この処理が開始されると、まずステップＳ２１１にて、入力画像を読み込む処理を行う。ここでは、前述した第１実施例と同様、図１３（ａ）に示した色相の異なる２つの色相データであるシアン（Ｃ）成分とマゼンタ（Ｍ）成分とが、それぞれ入力バッファ２７１Ｃａと２７１Ｍａに取り込まれたものとする。
【０１５９】
次に、ステップＳ２１２にて、シアン成分の階調値を、ＣＣ法を用いて２値化処理を行う。ここでの処理によって、前述した第１実施例におけるＣＣ法によるシアン成分の階調値の２値化処理と同様に、シアン出力バッファ２７３Ｃａに、図２２（ａ）に示した２値化データが格納される。
【０１６０】
次に、ステップＳ２１３にて、シアンドットの階調値“２５５”を所定のプロファイルにて分散した分散データに変換する処理を行う。具体的には、ドットが形成される画素位置を基準に、階調値“２５５”を所定のプロファイルに従って周辺画素に分散させる処理を行う。この処理によって、ドットが形成される位置に対応した１画素のみにドット抑制効果を留めず、その周辺にまでドット抑制効果を広げることになるため、形成される第１ドットと第２ドットが分散される。
【０１６１】
本実施例では、所定のプロファイルとして、図１４（ａ）〜（ｃ）に示したフィルタマトリックスを用いることとする。もとより、異なるプロファイルを用いても良い。さらに、本実施例では、生成されたセルごとに、セルを構成する画素数にあわせて異なるプロファイルを用いることとする。例えば、セルを構成する画素数が少ない場合は、図１４（ａ）に示したマトリックスを用い、セルを構成する画素数が多い場合は、図１４（ｂ）に示したマトリックスを用いることとする。これによって、第２の色相データについて形成される第２ドットのドット位置が、第１の色相データについて形成される第１ドットの密度に応じて遠ざかるため、ドットの分散性が向上することになる。
【０１６２】
具体的に、シアン出力バッファ２７３Ｃａにおいて、セルを構成する画素数が１３個を示す“Ｇ１３”が格納されたアドレスを基準に、図１４（ｂ）に示したプロファイルが適用されることを図２２（ｂ）に示し、セルを構成する画素数が１１個を示す“Ｇ１１”が格納されたアドレスを基準に、図１４（ａ）に示したプロファイルが適用されることを図２２（ｃ）に示した。図２３（ａ）は、ステップＳ２１３にて分散データに変換処理されたシアン出力バッファ２７３Ｃｂを示している。
【０１６３】
次に、ステップＳ２１４にてシアン成分の差分データを算出する処理を行う。差分データは、シアン成分の色相データからシアン成分の分散データを減算して求める。具体的には、シアン入力バッファ２７１Ｃａのデータからシアン出力バッファ２７３Ｃｂのデータをマイナス演算して算出する。算出結果は、図２３（ｂ）に示したようにシアン出力バッファ２７３Ｃｃに格納される。
【０１６４】
次に、ステップＳ２１５にて、マゼンタ成分に算出されたシアン成分の差分データを加算する処理を行う。図２３（ｃ）にマゼンタ成分の階調値が格納されたマゼンタ入力バッファ２７１Ｍａを示す。このデータに、図２３（ｂ）に示した差分データを加算する。加算結果を図２４（ａ）に示す。マゼンタ入力バッファ２７１Ｍｂには加算データが格納され、この加算データに対して、次のステップＳ２１６にて、ＣＣ法による２値化処理を行う。
【０１６５】
ステップＳ２１６にて処理された２値化データを、図２４（ｂ）に示す。マゼンタ出力バッファ２７３Ｍａには、５箇所のアドレスに階調値“２５５”が格納され、５個のマゼンタドットが形成されることがわかる。一方、シアンドットは、図２２（ａ）に示したように、シアン出力バッファ２７３Ｃａに格納された階調値“２５５”のアドレスに対応した画素位置に形成される。従って、２種類のドットは、図２４（ｃ）に示したように形成される。
【０１６６】
以上で、第２実施例の処理は終了するが、図２４（ｃ）から明らかなように、所定のプロファイルによる分散データ変換処理を行った本実施例によれば、色相の異なる２種類の色相データについて、それぞれ入力された色相データの階調値から形成されるべきドット数５個が形成され、かつドットは重ならず、分散性もよいことが分かる。
【０１６７】
以上説明したように、本実施形態における第１実施例および第２実施例によれば、所定のフィルタあるいは所定のプロファイルを用いて、第１の色相データであるシアン成分の階調値から所定の処理によって算出したデータを、第２の色相データであるマゼンタ成分の階調値に加算することによって、第１ドットであるシアンドットが形成された画素位置を中心に、第２ドットであるマゼンタドットの形成に対する抑制効果を広げることができる。この結果、種類の異なる２つのドットは重ならず、また分散性よく形成されることになる。
【０１６８】
なお、第１実施例および第２実施例では、シアン成分を第１の色相データ、マゼンタ成分を第２の色相データとして扱ったが、逆にマゼンタ成分を第１の色相データとしてもよい。また、イエロー成分を含め、３つの色成分のうちの任意の２つの色成分をそれぞれ第１の色相データと第２の色相データとしても差し支えない。さらに、上記実施例では例えば３つの色成分としたが、ブラック成分などを含め画像出力装置３０が出力する複数の色成分のうち、任意の２つの色成分をそれぞれ第１の色相データと第２の色相データとすればよい。
【０１６９】
また、上記第１実施例および第２実施例では、２つの色相データについてハーフトーン処理する場合を説明しているが、３つ以上の色相データをハーフトーン処理する場合は、２つの色相データについてのハーフトーン処理を繰り返して実施すればよい。つまり、２つの色相データについてのハーフトーン処理結果を１つの色相データについての処理結果と考え、これを第１の色相データとし、３つ目の色相データを第２の色相データとして考えれば２つの色相データの処理方法と全く同様に扱うことが可能である。
【０１７０】
上述したように、第１実施例および第２実施例によれば、ハーフトーン処理（２値化処理）に、階調値を保存して階調変換を行う処理方法である誤差拡散法またはＣＣ法を用いているため、元の入力画像に比較的忠実に２値化することが可能である。特に、ＣＣ法では、量子化に伴って発生する選択画素の誤差データを、他の画素に拡散せず元の選択画素に戻すため、入力画像にほぼ忠実に２値化することが可能である。
【０１７１】
また、同じくＣＣ法によるハーフトーン処理によれば、セルの重心に最も近い画素を選択してセルに組み入れていくため、生成されるセルの形状は重心を中心としておおよそ円形状になる。従って、セルの重心に出力されるドットは、セルのほぼ中央の位置となるためドットが重なる確率は低くなり、分散性のよいドットが形成されることが期待できる。
【０１７２】
以上、本発明の実施形態について第１実施例および第２実施例にて説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。以下、変形例を挙げて説明する。
【０１７３】
（Ｅ）変形例
「第１変形例」
前記実施例では、第１の階調変換処理および第２の階調変換処理について、同じハーフトーン処理方法を用いたが、特にこれに限るものではなく、第１変形例として、第１の階調変換処理方法と第２の階調変換処理方法とが異なるハーフトーン処理方法であるものとしてもよい。
【０１７４】
例えば、第１の階調変換処理を誤差拡散法を用いて行い、第２の階調変換処理をＣＣ法を用いて行うとしてもよいし、またはその逆であってもよい。図２５に、第１実施例において第１の階調変換処理をＣＣ法を用いて行ったのち、第２の階調変換処理を誤差拡散法を用いて行う場合を例示する。
【０１７５】
図２５（ａ）は、図１９（ｃ）に示した第２の階調変換対象データであるマゼンタ出力バッファ２７１Ｍｂと同じ状態を示している。前記実施例ではこのあとＣＣ法を用いて２値化処理を行ったが、本変形例では、誤差拡散法を用いて２値化処理を行う。比較のために、実施例と同じく、閾値“４５”と図９（ｂ）の重み付け方法を用いる。
【０１７６】
誤差拡散法を用いた２値化処理の結果、マゼンタ出力バッファ２７３Ｍａには、図２５（ｂ）に示した２値化データが格納される。従って、この場合に形成されるドットは図２５（ｃ）に示す通りとなる。
【０１７７】
図２５（ｃ）から明らかなように、シアンドット、マゼンタドットともに重ならず分散性よく形成される。また、マゼンタドットは５個形成され、シアンドットと同じ数となっている。誤差拡散法を用いた２値化処理においては、閾値の値が小さいほど、ドットを出力させる画素は、走査順で早い画素になるため、以降マイナスの誤差値を拡散させることになる。一方、ＣＣ法は前述の説明のようにマイナス誤差値は発生しない。このため、本変形例では、誤差拡散法による２値化処理の結果、ＣＣ法に対してマゼンタドットが１個増えたのである。このように、第１の階調変換処理と第２の階調変換処理との間でハーフトーン処理方法を変更することによって、入力画像に忠実に分散性のよいドットを形成することも可能である。
【０１７８】
「第２変形例」
また前記実施例では、ハーフトーン処理方法に誤差拡散法またはＣＣ法を用いたが、とくにこれに限るものではなく、その他の処理方法を用いてもよい。例えば、特許文献１または２で用いられている組織的ディザ法を用いてもよい。前記実施例によるハーフトーン処理方法によれば、前述したように第２ドットの形成に対する抑制効果を、第１ドットが形成された画素のみに留めず拡大しているため、ハーフトーン処理に組織的ディザ法を用いた場合でも、ドットの分散性を向上することが可能となる。
【０１７９】
「第３変形例」
さらに、前記実施例では、シアン成分とマゼンタ成分という異なる２つの色相を持った色相データをハーフトーン処理するものとして説明したが、特に色相が異なる色相データに限ることはなく、ドットの大きさが異なる出力ドットに対応した色相データ、または単位面積当たりの濃度が異なる出力ドットに対応した色相データ、もしくは光反射率の異なる出力ドットに対応した色相データなど、性質の異なる色相データであってもよい。
【０１８０】
通常、インクジェットプリンタやレーザプリンタにおいては、シアンとマゼンタ成分以外に、イエロー、ブラック成分のインクまたはトナーが用意され、シアンドット、マゼンタドット以外にイエロードット、ブラックドットが形成される。またインクジェットプリンタでは、さらに同じ色相のシアンやマゼンタドットであっても濃度の異なる（薄くなる）ライトシアンドットやライトマゼンタドットが形成される場合もある。あるいは形成されるドットの大きさも１種類ではなく複数種類の場合もある。例えばインクジェットプリンタでは各色成分について３種類の大きさのドットを形成したりする場合がある。また、レーザプリンタではドットの大きさで階調を表す方式（網点方式）を採用する場合があり、例えば４ビットでのパルス幅変調により１６種類の大きさのドットを形成する場合がある。あるいは、形成されるドット表面の光反射率に違いを持たせて画像を表現することが行われる場合もある。
【０１８１】
上述したような性質の異なる色相データに対応したドットを同じ印刷媒体上に形成する場合、形成されるドットに対応するそれぞれの色相データについて前記実施例によるハーフトーン処理を行うことで、それぞれのドットが重ならず、分散性良くドットを形成できる。
【０１８２】
「第４変形例」
前記第１実施例では、第１ドットと第２ドットの明度比に基づいて所定のフィルタマトリックスを用いることとしたが、第４変形例として、第１の階調変換処理をＣＣ法を用いて行った場合、生成されたセルを構成する画素数に応じたフィルタ特性、つまりセルを構成する画素数に応じた大きさのマトリックスを持ったフィルタを用いてデータ処理することとしてもよい。
【０１８３】
例えば、第１の色相データを２値化した２値化データにおいて、生成されたセルごとに、セルを構成する画素数に基づいて特定されるフィルタマトリックスを用い、それぞれのセルに対応して出力されたドットごとに差分データをデータ処理してもよい。あるいは、セルを構成する画素数の平均値に基づいて特定される１つのフィルタマトリックスを用いて差分データをデータ処理することとしても差し支えない。
【０１８４】
こうすれば、第１の色相データについて出力される第１ドットのドット密度（単位面積当たりの形成ドット数）に応じて差分データのデータ処理に用いるフィルタマトリックスが選択されることになる。この結果、例えば、第１ドットのドット密度が高い場合は、図１４（ａ）に例示したような小さいマトリックスを用い、第１ドットのドット密度が低い場合は、図１４（ｃ）に例示したような大きいマトリックスを用いることによって、第２の色相データに対応して出力される第２ドットの位置が、第１ドットの密度に応じて遠ざかり、ドットの分散性が向上することになる。
【０１８５】
「第５変形例」
また、第５変形例として、前記実施形態における画像処理装置は、レーザプリンタにて画像を再生表示するものとして処理を行うようにしたが、本発明はこれに限定されるものでなく、紙などの印刷媒体に、インクを吐出して印刷する方式のプリンタや、インクを熱転写して印刷する方式のプリンタなどといった種々のプリンタのほか、電子写真あるいはディスプレイなどにて画像を再生表示するものとして処理を行うようにしてもよい。
【０１８６】
「第６変形例」
また、前記実施形態では、画像処理装置２０は画像入力装置１０と画像出力装置３０とから独立した形態であるものとしたが、プリンタやディスプレイなどの画像出力装置３０に組み込まれる形態としてもよいし、画像入力装置１０に組み込まれるものとしてもよい。あるいは、プリンタやディスプレイなどの画像出力装置が組み込まれたコピー機やコンピュータ機器、ワープロ、ファックス、携帯電話など種々の電子機器に、前記実施形態における画像処理装置が組み込まれて構成されるようにしてもよい。
【図面の簡単な説明】
【０１８７】
【図１】本発明が適用される一実施形態におけるシステム全体を示す構成図。
【図２】本実施形態での画像処理装置のハード構成を説明する模式図。
【図３】本実施形態でのＣＣ法によるハーフトーン処理を説明するフローチャート。
【図４】ＣＣ法によるハーフトーン処理内容を説明するための模式図。
【図５】ＣＣ法によるハーフトーン処理内容を説明するための模式図。
【図６】ＲＡＭの構成と格納されるデータの例を説明する説明図。
【図７】ＲＡＭの構成と格納されるデータの例を説明する説明図。
【図８】ＲＡＭの構成と格納されるデータの例を説明する説明図。
【図９】誤差拡散法について画素の走査方法と誤差拡散方法を説明する説明図。
【図１０】本実施形態での誤差拡散法によるハーフトーン処理を説明するフローチャート。
【図１１】誤差拡散法によるハーフトーン処理内容を説明するための模式図。
【図１２】第１実施例によるハーフトーン処理を説明するフローチャート。
【図１３】誤差拡散法による第１実施例で、ＲＡＭに格納されるデータの例を説明する説明図。
【図１４】誤差拡散法による第１実施例で、データ処理のために用いるフィルタマトリックスの例。
【図１５】フィルタマトリックスを用いたデータ処理の過程を説明する説明図。
【図１６】誤差拡散法による第１実施例で、ＲＡＭに格納されるデータの例を説明する説明図。
【図１７】誤差拡散法による第１実施例で、形成されるドットの例を説明する説明図。
【図１８】ＣＣ法による第１実施例で、ＲＡＭに格納されるデータの例を説明する説明図。
【図１９】ＣＣ法による第１実施例で、ＲＡＭに格納されるデータの例を説明する説明図。
【図２０】ＣＣ法による第１実施例で、形成されるドットの例を説明する説明図。
【図２１】第２実施例によるハーフトーン処理を説明するフローチャート。
【図２２】ＣＣ法による第２実施例で、用いるプロファイルを説明する説明図。
【図２３】ＣＣ法による第２実施例で、ＲＡＭに格納されるデータの例を説明する説明図。
【図２４】ＣＣ法による第２実施例で、形成されるドットの例を説明する説明図。
【図２５】第１変形例で、形成されるドットの例を説明する説明図。
【符号の説明】
【０１８８】
１０…画像入力装置、１１…アプリケーション部、１２…ラスタライズ部、２０…画像処理装置、２１…色変換部、２２…ハーフトーン処理部、２５…入出力Ｉ／Ｆ、２６…ＣＰＵ、２７…ＲＡＭ、２８…ＲＯＭ、２９…ハードディスク、３０…画像出力装置、３１…パルス幅変調部、３５…印刷エンジン、３６…レーザドライバ、３７…レーザダオード（ＬＤ）、ＣＬ…セル、ＣＬ１…セル、ＣＬ２…セル、ＧＣ…重心、ＧＣ２…重心、ＭＧ…未処理画素、２７１…入力バッファ、２７１Ｃａ…シアン入力バッファ、２７１Ｍａ…マゼンタ入力バッファ、２７１Ｍｂ…マゼンタ入力バッファ、２７２…ワーキングメモリ、２７３…出力バッファ、２７３Ｃａ…シアン出力バッファ、２７３Ｃｂ…シアン出力バッファ、２７３Ｃｃ…シアン出力バッファ、２７３Ｍａ…マゼンタ出力バッファ、ＤＴ…ＣＭＹの色相データ、ＤＲ…所定の階調データ、ＳＨ…閾値。
【図１】
2005341142.tif 000003
【図２】
2005341142.tif 000004
【図３】
2005341142.tif 000005
【図４】
2005341142.tif 000006
【図５】
2005341142.tif 000007
【図６】
2005341142.tif 000008
【図７】
2005341142.tif 000009
【図８】
2005341142.tif 000010
【図９】
2005341142.tif 000011
【図１０】
2005341142.tif 000012
【図１１】
2005341142.tif 000013
【図１２】
2005341142.tif 000014
【図１３】
2005341142.tif 000015
【図１４】
2005341142.tif 000016
【図１５】
2005341142.tif 000017
【図１６】
2005341142.tif 000018
【図１７】
2005341142.tif 000019
【図１８】
2005341142.tif 000020
【図１９】
2005341142.tif 000021
【図２０】
2005341142.tif 000022
【図２１】
2005341142.tif 000023
【図２２】
2005341142.tif 000024
【図２３】
2005341142.tif 000025
【図２４】
2005341142.tif 000026
【図２５】
2005341142.tif 000027