JP2005341142A - 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 - Google Patents
画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2005341142A JP2005341142A JP2004156318A JP2004156318A JP2005341142A JP 2005341142 A JP2005341142 A JP 2005341142A JP 2004156318 A JP2004156318 A JP 2004156318A JP 2004156318 A JP2004156318 A JP 2004156318A JP 2005341142 A JP2005341142 A JP 2005341142A
- Authority
- JP
- Japan
- Prior art keywords
- data
- pixel
- gradation
- reference point
- hue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Color, Gradation (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Abstract
【課題】 形成されるドットの重なりを抑制するとともに、ドット密度の偏りを軽減する画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体を提供する。
【解決手段】 画素ごとに第1の階調変換部によってドットを出力する所定の階調データに2値化した第1の色相データと、2値化前の第1の色相データとの差分データを差分データ算出部が算出する。その後、データ加算部は、算出された差分データを所定のフィルタによって、ドットが出力される画素を中心に階調値を減らす対象の画素を等方的に広げたデータにデータ処理を行い、第2の色相データに加算する。そこで、この階調値が増減された第2の色相データを第2の階調変換部によって階調変換すれば、第1の色相データに対応するドットと、第2の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得る。
【選択図】 図2
【解決手段】 画素ごとに第1の階調変換部によってドットを出力する所定の階調データに2値化した第1の色相データと、2値化前の第1の色相データとの差分データを差分データ算出部が算出する。その後、データ加算部は、算出された差分データを所定のフィルタによって、ドットが出力される画素を中心に階調値を減らす対象の画素を等方的に広げたデータにデータ処理を行い、第2の色相データに加算する。そこで、この階調値が増減された第2の色相データを第2の階調変換部によって階調変換すれば、第1の色相データに対応するドットと、第2の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得る。
【選択図】 図2
Description
本発明は、多階調値で表された画像データのハーフトーン処理に関する。詳しくは、出力ドットが複数種類存在するとき、異なる種類のドットの重なりを抑制するハーフトーン処理に関する。
従来から、プリンタなどの画像出力装置は、画素ごとに多値の階調値を有する階調データに対して、ドットの出力の有無を表す2値の値に階調変換処理し、印刷用紙にドットを形成して印刷を行うようにしている。一般には、多値の階調値を2値の値に変換する処理のことをハーフトーン処理と称している。
このようなハーフトーン処理をカラー画像の画像データに対して行った場合、印刷用紙上で同じ位置あるいは1つの位置の近傍に複数色のドットが形成され、ある領域ではドットが密になり、別のある領域では逆に疎になるなど、ドット密度の偏りが発生する課題があった。例えば、シアン(C)、マゼンタ(M)、イエロー(Y)各色のドットを形成して印刷を行うプリンタにおいて、ハーフトーン処理の対象となる各色の階調データが全て同じであったと仮定した場合、各色同様にハーフトーン処理を行うと、同じ画素の位置に全ての色のドットが形成されてしまうことになる。
このような課題を回避するため、一方の色相のドットが形成された画素位置には多方の色相のドットが形成されないようにする技術が開示されている(例えば特許文献1、特許文献2)。
特許文献1に開示された技術によれば、例えば一方の色相データとなるマゼンタの階調データを、組織的ディザ法によりハーフトーン処理を行い、ドットを形成する場合の結果値とドットを形成しない場合の結果値に2値化する。そして、この2値化したデータとマゼンタの階調データとの差分値データを他方の色相データとなるシアンの階調データに加算する。その後、誤差拡散の手法を用いてシアンの階調データをハーフトーン処理すると、マゼンタのドットが形成された周辺にはシアンのドットが形成されにくくなるのである。
また、特許文献2に開示された技術によれば、例えば一方の色相の階調データを、所定のマトリクスを用いた組織的ディザ法によりハーフトーン処理を行い、ドットを形成するか否かを判断する。そして、ドットを形成すると判断した画素に対応する位置を除いて、他方の色相の階調データを同じマトリクスを用いた組織的ディザ法によりハーフトーン処理することによって、異なる種類のドットが重ならず形成されるのである。
しかしながら、特許文献1または特許文献2においては、ドットが形成された画素にのみドット重なりの抑制効果を与えているため、上述したドット密度の偏りが発生するという課題が残っていた。つまり、特許文献1では、他方の色相であるシアンの階調データの
ハーフトーン処理を、誤差拡散法を用いて行っているため、ドット重なりの抑制効果があたえられた一画素の誤差データは、誤差拡散マトリクスの係数を配置した方向の画素に拡散され、特定の画素にドットの重なりの抑制効果が強く発生する。この結果、ドットの重なりを防ぐ効果が偏り、ドット密度の偏りが発生する。
ハーフトーン処理を、誤差拡散法を用いて行っているため、ドット重なりの抑制効果があたえられた一画素の誤差データは、誤差拡散マトリクスの係数を配置した方向の画素に拡散され、特定の画素にドットの重なりの抑制効果が強く発生する。この結果、ドットの重なりを防ぐ効果が偏り、ドット密度の偏りが発生する。
また、特許文献2においても、前述したように、一方の色相のドット形成が行われた画素のみにドット抑制効果がとどまるため、他方の色相のドットが隣接する画素に形成されることがあり、この場合ドットが分散せず、特許文献1と同様にドット密度の偏りが発生する。
本発明の第1の目的は、このような課題を解決するため、形成されるドットの重なりを抑制するとともに、ドット密度の偏りを軽減する画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体の提供することである。また、本発明の第2の目的は、元の画像データの階調値を失わず、忠実に2値化するハーフトーン処理方法を提供することである。
上記目的を達成する本発明の第1の画像処理装置は、画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、前記色相データのうち第1の色相データを階調変換する第1の階調変換部と、前記色相データのうち第2の色相データを階調変換する第2の階調変換部と、前記第1の階調変換部が階調変換した前記所定の階調データと、前記第1の色相データとの差分データを算出する差分データ算出部と、前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第2の色相データに加算して加算データを求めるデータ加算部とを備え、前記第2の階調変換部は、前記加算データを前記第2の色相データとして前記所定の階調データに階調変換することを特徴とする。
かかる第1の画像処理装置によれば、画素ごとに第1の色相データを、第1の階調変換部によってドットを出力する所定の階調データとドットを出力しない所定の階調データとに2値化する。そして2値化した階調データと2値化前の第1の色相データとの差分データを算出する。この差分データは、基本的に全ての画素についての差分データの総和をほぼゼロに保ちつつ、ドットが出力される画素については階調値を減らし、ドットが出力されない画素については階調値を増やすデータ値を有することになる。その後、この差分データを所定のフィルタによって、ドットが出力される画素を中心に階調値を減らす対象の画素を等方的に広げたデータにデータ処理を行ったのち、第2の色相データに加算する。この結果、第2の色相データは、第1の色相データについてドットが出力された画素の位置に対応する所定の画素の階調値が減少し、この減少した階調値分他の画素の階調値が増加した階調値データとなる。そこで、この階調値が増減された第2の色相データを階調変換すれば、第1の色相データに対応するドットと、第2の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得ることができる。
また、前記データ加算部は、前記第1の色相データに応じて出力されるドットと前記第2の色相データに応じて出力されるドットとの明度比によって特定されるフィルタ特性を有した前記所定のフィルタを用いることとしてもよい。
通常、第1の色相データに対応して出力されるドットと第2の色相データに対応して出力されるドットとは明度が異なる。例えば、インクジェットプリンタであれば使用するインクの性質の違いにより、またレーザプリンタであれば使用するトナーの性質の違いにより、実際に印刷用紙上に形成されるドットは明度が異なる。そこで、ドットの明度の比率によって特定されるフィルタ特性を有するフィルタを用いることによって、第2の色相データについて階調値を減らす対象の画素範囲を設定する。この結果、例えば印刷用紙上などの単位面積あたりの明度がほぼ一定に保たれた各色相データに対応するドットを形成することができる。
ここで、前記第2の階調変換部は、誤差拡散の手法を用いて前記第2の色相データを階調変換することとしてもよい。こうすれば、階調値が増減された第2の色相データについて、2値化に伴う階調値の誤差が特定方向に拡散されるものの、基本的に増減された階調値に基づいて2値化処理を行うため、第1の色相データに対応して形成されたドット(以降、単に「第1ドット」)とは重ならない第2の色相データに対応するドット(以降、単に「第2ドット」)を出力することができる。
あるいは、前記第2の階調変換部は、画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部とを備えることとしてもよい。
このような第2の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を順次選択して画素群(以下、「セル」と呼ぶ)を生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の所定の位置にある画素に付与する。従って、例えば生成されるセルのおおよそ中心となる所定の位置にドットを出力すれば、第1ドットと重ならず、且つドット間距離を保った分散性のよい第2ドットを形成することができる。
あるいは、前記第2の階調変換部は、画素選択のための第1の基準点に基づいて、画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第2の基準点を決定する基準点決定部と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することとしてもよい。
かかる第2の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、第1の基準点に基づいて階調変換未処理画素を順次選択してセルを生成する。そして、生成されるセル内の画素の階調値合計が所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の第2の基準点に位置する画素に付与する。こうすれば、生成するセルの形状を決める基準点と、出力するドットの位置を決める基準点とを分けて設定できるため、セルの形状のみに着目してセルの生成を行うことが可能となる。従って、例えば円形のセルを生成するように第1の基準点を設定することによって、隣接して出力されるドットが重なる確率が減少し、分散性のよいドットを形成することができる。
ここで、前記画素群生成部は、前記画素群における画素ごとの前記第2の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、ハーフトーン処理前の色相データの階調値が失われず、また2値化に伴う階調値の誤差が特定方向に拡散されることもない。この結果、前述した課題であるドットの重なりを抑制する効果の偏りを軽減することができる。
さらに、前記画素群生成部は、前記第1の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することとしてもよい。こうすれば、生成するセルの形状がランダムになり易く、その結果出力されるドットの位置がバラツクことになり、形成されるドットの分散性が良くなることが期待できる。
また、前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第2の基準点として決定することとしてもよい。こうすれば、生成されるセルについて、2値化前の色相データにおける階調値の分布に対して、ほぼ忠実な位置にドットが出力されることになる。従って、階調値の忠実な再現性と分散性を持ったドットを形成することが可能となる。
また、前記第1の基準点は、前記画素群における画素の位置と、該画素が有する前記第2の色相データの階調値とから算出した重心位置であることとしてもよい。こうすれば、セルの生成処理に際して、例えば、常にセルの重心に最も近い画素を選択してセルに組み入れていくようにすると、生成されるセルの形状はセルの重心を中心としたおおよそ円形状になる。従って、このような円形状のセルに応じて形成されるドットは重ならず、ドットの分散性を良くすることができる。
さらにここで、本発明の第1の画像処理装置において、前記第1の階調変換部は、画素選択のための第3の基準点に基づいて、画素ごとの前記第1の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第4の基準点を決定する基準点決定部と、前記決定された第4の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第3の基準点を更新し、当該第3の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第1の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第4の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
このような第1の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を第3基準点に基づいて順次選択して、例えば円形のセルを生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データを、セル内の第4基準点に位置する画素に付与する。従って、生成される円形のセルのおおよそ中心となる所定の位置にドットを出力するようにすれば、ドット間距離を保った分散性のよい第1ドットを形成することができる。この結果、第1ドットおよび第2ドットともに、分散性のよいドットが形成される確率が高くなる。
さらに、前記第1の階調変換部における前記画素群生成部は、前記画素群における画素ごとの前記第1の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、第1の色相データの階調値が失われずハーフトーン処理される。従って、第1の色相データと2値化された所定の階調データとの差分データの総和はほぼゼロに保たれ、第2の色相データの階調値の総和は、この差分データの加算前後において変化しない。この結果、第2の色相データは元の階調値に充実にハーフトーン処理される。
ここで、前記データ加算部が用いる前記所定のフィルタは、前記第1の階調変換部が生成する画素群内の画素数に基づいて特定されるフィルタ特性を有することとしてもよい。
上述した第1の階調変換部によれば、生成されるセル内の画素数は、各画素の階調値が小さい場合は多くなり、各画素の階調値が大きい場合は少なくなる。つまり、セルを構成する画素数が多い場合は形成されるドット間距離が大きく、セルを構成する画素数が少ない場合は形成されるドット間距離が小さくなる。そこで、このようなセルを構成する画素数によって特定されるフィルタ特性を持つフィルタを用いることによって、第2の色相データについて階調値を減らす対象の画素範囲を設定する。この結果、第1ドットの形成密度に合わせて、第2ドットの形成を抑制する範囲を設定することができる。
本発明の第1の画像処理方法は、画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、前記色相データのうち第1の色相データを階調変換する第1の階調変換工程と、前記色相データのうち第2の色相データを階調変換する第2の階調変換工程と、前記第1の階調変換工程によって階調変換した前記所定の階調データと、前記第1の色相データとの差分データを算出する差分データ算出工程と、前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第2の色相データに加算して加算データを求めるデータ加算工程とを備え、前記第2の階調変換工程は、画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、前記生成された画素群について第2の基準点を決定する基準点決定工程と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、前記画素群生成工程は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与工程は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
また、本発明の第1の画像処理方法はコンピュータプログラムまたはそのプログラムを記録した記録媒体としてもよい。すなわち、画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、前記色相データのうち第1の色相データを階調変換する第1の階調変換処理と、前記色相データのうち第2の色相データを階調変換する第2の階調変換処理と、前記第1の階調変換処理によって階調変換した前記所定の階調データと、前記第1の色相データとの差分データを算出する差分データ算出処理と、前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第2の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、前記第2の階調変換処理は、画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、前記生成された画素群について第2の基準点を決定する基準点決定処理と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、前記画素群生成処理は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与処理は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやCD−ROM、ICカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
次に、上記目的を達成する本発明の第2の画像処理装置は、画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、前記色相データのうち第1の色相データを階調変換する第1の階調変換部と、前記色相データのうち第2の色相データを階調変換する第2の階調変換部と、前記第1の階調変換部が階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換部と、変換された前記分散データと前記第1の色相データとの差分データを算出する差分データ算出部と、前記算出された差分データを、前記第2の色相データに加算して加算データを求めるデータ加算部とを備え、前記第2の階調変換部は、前記加算データを前記第2の色相データとして前記所定の階調データに階調変換することを特徴とする。
かかる第2の画像処理装置によれば、画素ごとに第1の色相データを、第1の階調変換部によってドットを出力する所定の階調データとドットを出力しない所定の階調データとに2値化する。そして2値化した階調データのうちドットを出力する所定の階調データを、ドットが出力される画素を中心に所定のプロファイルに従って周辺画素に分散する。そして、分散後の所定の階調データと第1の色相データとの差分データを算出し、算出した差分データを第2の色相データに加算する。この差分データは、基本的に全ての画素についての差分データの総和をほぼゼロに保ちつつ、ドットが出力される画素の周辺画素については階調値を減らし、その他の画素については階調値を増やすデータ値を有することになる。その後、この差分データを第2の色相データに加算する。この結果、第2の色相データは、第1の色相データについてドットが出力された画素の位置に対応する所定の画素の階調値が減少し、この減少した階調値分他の画素の階調値が増加した階調値データとなる。そこで、この階調値が増減された第2の色相データを階調変換すれば、第1の色相データに対応するドットと、第2の色相データに対応するドットとが重ならずかつ分散性もよいドットの出力位置を得ることができる。
ここで、前記第2の画像処理装置における前記第2の階調変換部は、誤差拡散の手法を用いて前記第2の色相データを階調変換することとしてもよい。こうすれば、階調値が増減された第2の色相データについて、2値化に伴う階調値の誤差が特定方向に拡散されるものの、基本的に増減された階調値に基づいて2値化処理を行うため、第1ドットとは重ならない第2ドットを出力することができる。
あるいは、前記第2の画像処理装置における前記第2の階調変換部は、画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部とを備えることとしてもよい。
このような第2の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を順次選択してセルを生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の所定の位置にある画素に付与する。従って、例えば生成されるセルのおおよそ中心となる所定の位置にドットを出力すれば、第1ドットと重ならず、且つドット間距離を保った分散性のよい第2ドットを形成することができる。
あるいは、前記第2の画像処理装置における前記第2の階調変換部は、画素選択のための第1の基準点に基づいて、画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第2の基準点を決定する基準点決定部と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することとしてもよい。
かかる第2の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、第1の基準点に基づいて階調変換未処理画素を順次選択してセルを生成する。そして、生成されるセル内の画素の階調値合計が所定の閾値以上となったとき、ドットを出力するための所定の階調データをセル内の第2の基準点に位置する画素に付与する。こうすれば、生成するセルの形状を決める基準点と、出力するドットの位置を決める基準点とを分けて設定できるため、セルの形状のみに着目してセルの生成を行うことが可能となる。従って、例えば円形のセルを生成するように第1の基準点を設定することによって、隣接するドットが重なる確率が減少し、分散性のよいドットを形成することができる。
ここで、前記第2の画像処理装置における前記画素群生成部は、前記画素群における画素ごとの前記第2の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、ハーフトーン処理前の色相データの階調値が失われず、また2値化に伴う階調値の誤差が特定方向に拡散されることもない。この結果、前述した課題であるドットの重なりを抑制する効果の偏りを軽減することができる。
さらに、前記第2の画像処理装置における前記画素群生成部は、前記第1の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することとしてもよい。こうすれば、生成するセルの形状がランダムになり易く、出力されるドットの位置がバラツクことになり、ドットの分散性が良くなることが期待できる。
また、前記第2の画像処理装置における前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第2の基準点として決定することとしてもよい。こうすれば、生成されるセルについて、2値化前の色相データにおける階調値の分布に対して、ほぼ忠実な位置にドットが出力されることになる。従って、階調値の忠実な再現性と分散性を持ったドットを形成することが可能となる。
また、前記第2の画像処理装置における前記第1の基準点は、前記画素群における画素の位置と、該画素が有する前記第2の色相データの階調値とから算出した重心位置であることとしてもよい。こうすれば、セルの生成処理に際して、例えば、常にセルの重心に最も近い画素を選択してセルに組み入れていくようにすると、生成されるセルの形状はセルの重心を中心としたおおよそ円形状になる。従って、このような円形状のセルに応じて形成されるドットは重ならず、ドットの分散性を良くすることができる。
さらにここで、本発明の第2の画像処理装置において、前記第1の階調変換部は、画素選択のための第3の基準点に基づいて、画素ごとの前記第1の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第4の基準点を決定する基準点決定部と、前記決定された第4の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第3の基準点を更新し、当該第3の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記第1の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第4の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
かかる第2の画像処理装置における第1の階調変換部によれば、階調変換処理の対象となる階調値を有する画素について、階調変換未処理画素を第3基準点に基づいて順次選択して、例えば円形のセルを生成する。そして、生成されるセル内の画素の階調値合計が、所定の閾値以上となったとき、ドットを出力するための所定の階調データを、セル内の第4基準点に位置する画素に付与する。従って、生成される円形のセルのおおよそ中心となる所定の位置にドットを出力するようにすれば、ドット間距離を保った分散性のよい第1ドットを形成することができる。この結果、第1ドットおよび第2ドットともに、分散性のよいドットを形成することが可能となる。
さらに、前記第2の画像処理装置における前記画素群生成部は、前記画素群における画素ごとの前記第1の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
こうすれば、所定の閾値を超えたセルに最後に組み入れられた画素に、所定の閾値を超えた分の階調値を戻しているため、第1の色相データの階調値が失われずハーフトーン処理される。従って、第1の色相データと2値化された所定の階調データとの差分データの総和はほぼゼロに保たれ、第2の色相データの階調値の総和は、この差分データの加算前後において変化しない。この結果、第2の色相データは元の階調値に充実にハーフトーン処理される。
ここで、前記第2の画像処理装置における前記ドットプロファイル変換部は、前記第2の画像処理装置における前記第1の階調変換部が生成した画素群ごとに、該画素群内の画素数に基づいて特定される前記所定のプロファイルに従って、前記所定の階調データを分散することとしてもよい。
上述した第1の階調変換部によれば、生成されるセル内の画素数は、各画素の階調値が小さい場合は多くなり、各画素の階調値が大きい場合は少なくなる。つまり、セルを構成する画素数が多い場合は形成されるドット間距離が大きく、セルを構成する画素数が少ない場合は形成されるドット間距離が小さくなる。そこで、このようなセルを構成する画素数によって特定されるプロファイルに従って、第2の色相データについて階調値を減らす対象の画素範囲を設定する。この結果、第1ドットの形成密度に合わせて、第2ドットの形成を抑制する範囲を設定することができる。
また、本発明の第2の画像処理方法は、画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、前記色相データのうち第1の色相データを階調変換する第1の階調変換工程と、前記色相データのうち第2の色相データを階調変換する第2の階調変換工程と、前記第1の階調変換工程によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換工程と、変換された前記分散データと前記第1の色相データとの差分データを算出する差分データ算出工程と、前記算出された差分データを、前記第2の色相データに加算して加算データを求めるデータ加算工程とを備え、前記第2の階調変換工程は、画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、前記生成された画素群について第2の基準点を決定する基準点決定工程と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、前記画素群生成工程は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与工程は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
また、本発明の第2の画像処理方法はコンピュータプログラムまたはそのプログラムを記録した記録媒体としてもよい。すなわち、画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、前記色相データのうち第1の色相データを階調変換する第1の階調変換処理と、前記色相データのうち第2の色相データを階調変換する第2の階調変換処理と、前記第1の階調変換処理によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換処理と、変換された前記分散データと前記第1の色相データとの差分データを算出する差分データ算出処理と、前記算出された差分データを、前記第2の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、前記第2の階調変換処理は、画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、前記生成された画素群について第2の基準点を決定する基準点決定処理と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、前記画素群生成処理は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与処理は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやCD−ROM、ICカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
さらに、本発明の第1または第2の画像処理装置、画像処理方法、画像処理プログラムもしくは記録媒体であって、前記性質の異なる少なくとも2種類以上の色相データは、それぞれ(1)ドットの大きさが異なる出力ドットに対応した色相データ、(2)単位面積当たりの濃度が異なる出力ドットに対応した色相データ、(3)色相が異なる出力ドットに対応した色相データ、(4)光反射率の異なる出力ドットに対応した色相データ、のうち少なくとも1つを満たす色相データであることとしてもよい。
こうすれば、(1)網点方式による階調表示を行う場合のドットを出力するためのハーフトーン処理、(2)濃淡の異なるドットを用いた階調表示を行う場合のドットを出力するためのハーフトーン処理、(3)色の異なるドットを用いた階調表示を行う場合のドットを出力するためのハーフトーン処理、(4)表面の艶が異なるドットを用いた階調表示を行う場合のドットを出力するためのハーフトーン処理の少なくとも1つを満たすハーフトーン処理について、本発明を適用することができる。
次に、本発明を実施するための最良の形態を説明する。図1は、本発明が適用される画像処理装置を含むシステム全体の一例を示す構成図である。全体として画像入力装置10と、画像処理装置20と、画像出力装置30とから構成される。これらの装置は基本的にコンピュータまたはコンピュータによって制御される装置であり、所定のオペレーティングシステムのもとで所定のプログラムが実行されることによって動作する。
画像入力装置10は、アプリケーション部11とラスタライズ部12とから構成される。アプリケーション部11は、文字データ、図形データ、ビットマップデータ等の印刷対象となるデータを生成する。例えば、画像入力装置10でワードプロセッサや図形ツールなどのアプリケーションプログラムを使用して、図示しないキーボード等の操作により文字データや図形データなどを生成する。そして生成したこれらのデータを、ラスタライズ部12へ出力する。もとより、画像入力装置10は、図示しないスキャナやデジタルスチルカメラなどの画像データを取得する機器から出力されるデータを受け付け、このデータをアプリケーション部11が生成するデータとしてラスタライズ部12へ出力するものとしても差し支えない。
ラスタライズ部12は、アプリケーション部11から出力された印刷対象のデータを画素ごとに複数種類の色相データに変換して出力する。本実施形態では、R(レッド)、G(グリーン)、B(ブルー)の色毎で、画素ごとに8ビット(計24ビット)の多階調値で表された色相データを出力する。したがって、出力される色相データは、画素ごとに0から255までの256種類の階調値を有することになる。ラスタライズ部12における色相データの生成処理は、実際には画像入力装置10に実装された図示しないドライバによって行われる。こうしてラスタライズ部12から出力される色相データは、画像処理装置20に出力される。
画像処理装置20は、基本的にコンピュータであり、色変換部21とハーフトーン処理部22とから構成される。画像処理装置20では、画像入力装置10から出力された色相データに対して、色変換処理とハーフトーン処理を行い、所定の階調データDRを画像出力装置30へ出力する処理が行われる。
色変換部21は、画像入力装置10から出力される256種類の階調値を有するRGB各8ビット(計24ビット)の色相データを受け取り、画像出力装置30が出力する色成分に合わせて色変換処理を行う。本実施形態では、RGBからCMYの色相データDTに色変換処理を行うものとする。ここで、Cはシアン、Mはマゼンダ、Yはイエローを示す。
ハーフトーン処理部22は、色変換部21から出力されるCMYの色相データDTに対して、所定の閾値を用いて量子化データ(2値あるいは4値などの多値の値)に変換し、変換された量子化データである所定の階調データDRを画像出力装置30に出力する。ハーフトーン処理として、本実施形態では、誤差拡散法による処理、または複数の画素からなるセルを、画素群の重心を用いて構成し、そのセルの重心にドットを生成させる処理(Circular Cell法、以下CC法)を用いる。誤差拡散法及びCC法の具体的な内容は後述する。
画像出力装置30は、パルス幅変調部31と印刷エンジン35とから構成され、印刷エンジン35は、レーザドライバ36とレーザダイオード(LD)37とから構成される。画像出力装置30では、画像処理装置20から出力された所定の階調データDRに従って印刷エンジン35が駆動され、この印刷エンジン35によって印刷用紙等の記録媒体に各色成分のドットが形成され、実際に印刷が行われるのである。
パルス幅変調部31は、ハーフトーン処理部22から出力された所定の階調データDRを入力し、この所定の階調データDRから所定のパルス数とパルス幅をもったレーザ駆動パルスを駆動データとして生成する。そして、この駆動データをレーザドライバ36に出力する。
レーザドライバ36は、入力された駆動データから、レーザダオード37を駆動する制御データを生成し、レーザダイオード37に出力する。レーザダイオード37は、レーザドライバ36から出力された制御データに基づいて駆動され、さらに図示しない感光ドラムや転写ベルトが駆動されて、最終的に印刷用紙等の記録媒体に、パルス幅とパルス数に応じて、所定の色成分のドットが所定の数だけ出力される。こうして、記録媒体に各色のドットが形成され画像入力装置10からのデータが印刷されることになる。
次に、図2を参照して、本発明が適用される画像処理装置20の具体的なハード構成について説明する。ここで、図1の画像処理装置20を構成する色変換部21、ハーフトーン処理部22は、図2におけるCPU26、RAM27およびROM28に対応する。
画像処理装置20は、全体として、入出力インターフェイス(I/F)25、CPU26、RAM27、ROM28、ハードディスク29とから構成され、それらはバスを介して互いに接続されている。入出力I/F25は、画像入力装置10と画像処理装置20とのインターフェイス及び画像処理装置と画像出力装置のインターフェイスの役割を果たす。入出力I/F25には、所定の伝送方式により伝送された画像入力装置10からのRGBの色相データが入力され、画像処理装置20で処理できるデータに変換される。RGBの色相データは、一旦RAM27に格納される。そして、入出力I/F25から、所定の階調データDRを画像出力装置30に所定の伝送方式を用いて送出する。
CPU26は、バスを介してハードディスク29またはROM28に格納されたプログラムを読み出し、この読み出したプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置20として機能し、所定の処理を実行する。特に、請求項に記載した第1の階調変換部、第2の階調変換部、ドットプロファイル変換部、差分データ算出部、データ加算部として機能し、後述する各実施例におけるハーフトーン処理を実行する。
これらの処理を記録したプログラムは、予めハードディスク29やROM28に格納されていることとしてもよいし、例えばCD−ROMなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないCD−R/RWドライブを介してハードディスク29に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク29に格納されるものとしてもよい。
RAM27は、CPU26の制御によって実行される各処理のワーキングメモリとして役割を果たし、処理後の各種データを格納する。RAM27の具体的構成等については後述する。
次に、以上のように構成された画像処理装置20において行われるハーフトーン処理について、後述する実施例で用いるハーフトーン処理の手法となるCC法と誤差拡散法を先に説明することとし、以降、以下の順序にて説明する。
(A)CC法によるハーフトーン処理
(B)誤差拡散法によるハーフトーン処理
(C)ハーフトーン処理についての第1実施例(フィルタによるデータ処理)
(C1)誤算拡散法を用いたハーフトーン処理
(C2)CC法を用いたハーフトーン処理
(D)ハーフトーン処理についての第2実施例(プロファイルによる分散処理)
(E)変形例
なお、本実施形態では、色変換部21が出力するCMYの色相データDTは、各色8ビットずつの多階調値で表されたデータとなっており、各色“0”から“255”まで256種類の階調値を有するものとする。また本実施形態では、ハーフトーン処理部22にて、各色成分のドットを出力するか否かを制御する量子化処理を行うものとして説明することとし、ハーフトーン処理部22が出力する所定の階調データDRは、C、M、Yそれぞれの色成分について、画素ごとに階調値“0”あるいは階調値“255”に量子化(2値化)された2値化データであるものとする。最終的に、画像出力装置30は、前述したように、出力された所定の階調データ、つまり階調値“255”に量子化された全ての画素に対応してパルス幅とパルス数を生成し、各色成分のドットの出力を制御して印刷を行うのである。
(A)CC法によるハーフトーン処理
(B)誤差拡散法によるハーフトーン処理
(C)ハーフトーン処理についての第1実施例(フィルタによるデータ処理)
(C1)誤算拡散法を用いたハーフトーン処理
(C2)CC法を用いたハーフトーン処理
(D)ハーフトーン処理についての第2実施例(プロファイルによる分散処理)
(E)変形例
なお、本実施形態では、色変換部21が出力するCMYの色相データDTは、各色8ビットずつの多階調値で表されたデータとなっており、各色“0”から“255”まで256種類の階調値を有するものとする。また本実施形態では、ハーフトーン処理部22にて、各色成分のドットを出力するか否かを制御する量子化処理を行うものとして説明することとし、ハーフトーン処理部22が出力する所定の階調データDRは、C、M、Yそれぞれの色成分について、画素ごとに階調値“0”あるいは階調値“255”に量子化(2値化)された2値化データであるものとする。最終的に、画像出力装置30は、前述したように、出力された所定の階調データ、つまり階調値“255”に量子化された全ての画素に対応してパルス幅とパルス数を生成し、各色成分のドットの出力を制御して印刷を行うのである。
(A)CC法によるハーフトーン処理
まず、CC法によるハーフトーン処理について図3のフローチャートと図4および図5の模式図を用いて説明する。この処理が実施されると、まずステップS301にて、ハーフトーン処理つまり階調変換処理の対象となる入力画像を読み込む処理を行う。入力画像は正方形のドットマトリクス状の画素で構成されているものとし、ここでは一例として色成分シアンの色相データを入力画像として読み込むものとする。読み込んだ色相データの一例を図4(a)に示した。例えば、m行n列目の画素(以降(n,m)と表す)には、階調値“50”の色相データが与えられている。
まず、CC法によるハーフトーン処理について図3のフローチャートと図4および図5の模式図を用いて説明する。この処理が実施されると、まずステップS301にて、ハーフトーン処理つまり階調変換処理の対象となる入力画像を読み込む処理を行う。入力画像は正方形のドットマトリクス状の画素で構成されているものとし、ここでは一例として色成分シアンの色相データを入力画像として読み込むものとする。読み込んだ色相データの一例を図4(a)に示した。例えば、m行n列目の画素(以降(n,m)と表す)には、階調値“50”の色相データが与えられている。
次にステップS302で、階調変換が未処理である画素(以降、未処理画素)を探索する処理を行い、探索未処理画素が有るか否かを判定する処理を行う。未処理画素の探索は、常に、まず水平方向に探索走査を行い、次に垂直方向へ探索走査を行う。すなわち、未処理画素が存在する場合は、入力画像全体で最も上側にある画素のうち、最も左側にある画素を探索することになる。もとより、階調変換処理の開始時では、1行1列目の画素が探索される。
次に、判定の結果、未処理画素が有った場合(YES)、次のステップS304へ進む。一方、判定の結果、未処理画素が無い場合は(NO)、入力画像全体は階調変換されたものとして、2値化データを出力する処理を行い(ステップS303)、階調変換処理ルーチンを終了する。
ステップS304では、セルの拡大終了条件が成立するか否かを判定する処理を行う。そして、判定の結果、NOの場合はセルを拡大する処理を行う(ステップS305)。本実施形態では、セル内の画素の階調値合計が閾値“255”未満であることがセルを拡大する条件となる。また、セルの重心から最も近い画素をセルに組み入れることによってセルの拡大を行う。一方、判定の結果、YESの場合はセルの拡大を終了し、ステップS306へ進む。
ステップS304およびステップS305での処理について、図4を用いて具体的に説明する。いま、探索した未処理画素が図4(a)の網掛け部で示したm行n列目の画素(n,m)であり、他の画素も全て未処理画素であったとする。このとき、(n,m)1画素のセルCLが生成されたことになる。
次にセルCL内の画素の階調値の合計は“50”となり、“255”未満であるので、セルCLの重心位置を算出する。算出されたセルCLの重心GCの位置は、画素(n,m)の中心になり、図4(b)網掛け部で示したように、算出した重心GCの位置から最も近い未処理画素をセルCLに組み入れる。この場合、(n+1,m)(n,m+1)の2つが重心に最も近い画素として存在する。本実施形態では、このような選択対象となる画素が複数存在する場合はランダムに選択する。ここでは(n+1,m)をセルに組み入れ、セルCLを拡大するものとする。このように選択すべき画素が複数存在するときは、ランダムに画素を選択することにより、同じ形状のセルが連続して生成されにくくなる。この結果、後述するセルの重心に形成されるドットの分散性が向上する。もとより、ランダムとせず、所定の選択順を決めて選択することとしても差し支えない。
次に、拡大したセルCL内(図4(c)の太枠内の部分)の画素の階調値の合計は“100”となり、閾値“255”未満であるので、セル内の画素位置と画素の階調値からセルCLの重心GCの位置を算出する。そして、図4(c)網掛け部で示したように、算出した重心GCの位置から最も近い画素(n,m+1)(n+1,m+1)のうち、同じくランダムに選択し、ここでは(n,m+1)をセルに組み入れ、セルCLを拡大する。
次に、拡大したセルCL内(図4(d)の太枠内の部分)の画素の階調値の合計は“150”となり、閾値“255”未満であるので、セルCL内の画素位置と画素の階調値からセルCLの重心GCの位置を算出する。そして、図4(d)網掛け部で示したように、算出した重心GCの位置から最も近い画素(n+1,m+1)をセルに組み入れ、セルCLを拡大する。
次に、拡大したセルCL内(図4(e)の太枠内の部分)の画素の階調値の合計は“205”となり、閾値“255”未満であるので、セルCL内の画素位置と画素の階調値からセルCLの重心GCの位置を算出する。そして、図4(e)網掛け部で示したように、算出した重心GCの位置から最も近い画素(n+1,m+2)をセルに組み入れ、セルCLを拡大する。
次に、拡大したセルCL内(図4(f)の太枠内の部分)の画素の階調値の合計は“255”となり、セルの拡大終了条件を満たすので、セルCLの拡大処理を終了し、ステップS306(図3)に進む。
ステップS306では、セル内の画素の階調値合計が閾値と等しいか否かを判定する処理を行う。判定の結果閾値と等しい場合は(YES)、前述の処理と同様、セル内の画素位置と画素の階調値からセルの重心GCの位置を算出する処理を行う(ステップS307)。そして、算出した重心位置に存在する画素に、閾値と同じ階調値を与える処理を行い(ステップS308)、ステップS302に戻って未処理画素の探索処理以降を繰り返す。
図4(f)に示したように、ステップS308では、ステップS307によって算出した重心GCの位置に存在する画素(n+1,m+1)に、閾値と同じ階調値“255”を与える。この階調値“255”が与えられた画素の位置にシアンの色相データに対応したドットを形成して画像を印刷するのである。
一方、ステップS306で判定の結果、閾値と等しくない場合つまり閾値を超える場合は(NO)、閾値を超えた分の階調値である誤差データを無視して、セルの重心を算出する処理を行う(ステップS309)。そして、誤差データを最後にセルに組み入れた画素に戻し(ステップS310)、この誤差データを戻した画素を未処理画素とする処理を行う(ステップS311)。次に、ステップS308に進み、算出した重心位置に存在する画素に、閾値と同じ階調値を与える処理を行う。
ステップS309からS311までの処理について、図5を用いて具体的に説明する。図5(a)は、図4(f)にて説明したセルCL1の生成処理に続き、ステップS302にて、所定の走査方法による走査方向に従って画素(n+2,m)が未処理画素として探索された状態を示している。そして図4にて説明した処理と同様に処理を行い、図5(b)では画素(n+2,m+1)を、図5(c)では画素(n+3,m+1)を、図5(d)では画素(n+3,m+2)をセルCL2に組み入れてセルを拡大する。
図5(e)に示したように、画素(n+3,m+2)がセルCL2に組み入れた時点で、セルCL2内の画素の階調値合計は“265”となり、閾値“255”を超える。そこで、超えた分の誤差データ“10”(=265−255)を無視し、画素(n+3,m+2)が階調値“50”(=60−10)であるとしてセルCL2の重心GC2を算出する。
そして、図5(f)に示したように、算出した重心GC2の位置に存在する画素(n+3,m+1)に階調値“255”を付与する。このとき、最後にセルCL2に組み入れた画素(n+3,m+2)に誤差データ“10”を戻す。そして、画素(n+3,m+2)を階調値“10”を有する未処理画素とし、セルCL2から除外する。
図3および図4、図5を用いて説明した変換処理が本実施形態におけるCC法の基本的な処理内容である。CC法による階調変換処理によれば、常にセルの重心に最も近い画素を組み入れてセルを生成するため、閾値を付与する画素位置に対してほぼ円形状となるセルを生成する。従って、閾値が付与された画素位置にドットを形成した場合、隣り合うドットが近かったり、あるいは重なったりする確率を減少することでき、分散性のよいドットを形成することができる。
また、CC法では、前述したようにセル内の画素の階調値合計が閾値に達するまでセルを拡大するため、階調値が小さい画素が多い入力画像領域では画素数が多いセルが生成され、逆に階調値が大きい画素が多い入力画像領域では画素数が少ないセルが生成される。したがって、生成されたセルを構成する画素数は、入力画像の階調値の大小つまり入力画像の濃淡を表すという特徴がある。
また、CC法による階調変換によれば、誤差データを元の画素に戻すため、入力画像データの歪みが小さくなり、入力画像の階調値に対して比較的忠実に階調変換処理を行うことができる。
次に、CC法による階調変換について、各ハードにおける具体的な処理内容を図3のフローチャートと図2の構成図を参照し、図6〜図8の模式図を用いて説明する。
まず、CPU26は、ハードディスク29またはROM28に格納されたプログラムを読み出して、入力画像の読み込み処理を開始する(ステップS301)。入力画像の読み込みは、ハードディスク29に格納された色変換処理後の色相データを、RAM27の指定された入力バッファ領域に取り込むことで行う。例えばシアンの色相データはシアン入力バッファ領域に格納され、マゼンタの色相データはマゼンタ入力バッファ領域に格納される。CC法は、全ての色相データについて基本的に同じ処理を行うものであるため、色相データを区別せずに説明することとし、RAM27に用意された入力バッファだけでなく、以降説明する出力バッファやワーキングメモリについてもシアン、マゼンタなどの記載を省略している。この例を図6(a)に示す。もとより、各色相データについての処理データは、それに対応した入力バッファ、ワーキングメモリ、出力バッファの各領域に格納される。
RAM27は、図6(a)に示すように、入力バッファ領域271と、ワーキングメモリ領域272と、出力バッファ領域273とから構成される。この入力バッファ領域271は、2次元構造を有しており、例えば上述の入力画像の画素(以降、入力画素)について、(n,m)に位置する入力画素の色相データは、入力バッファ領域の(n,m)のアドレスに格納される。入力画素の位置に対応するように入力バッファ領域271が構成される。実際には、このアドレスには色相データの階調値が格納されることになる。例えば、図4(a)に示すシアンの色相データが入力されると、図6(a)に示すように入力バッファ271に各画素の階調値が格納される。ワーキングメモリ領域272は、重心位置の演算結果と階調値の演算結果が格納され、出力バッファ領域273は入力バッファ271と同様に各入力画素の色相データに対応するように構成される。詳細は後述する。
次いで、CPU26は、セル生成の最初の未処理画素となる初期画素を探索決定して(ステップS302)、決定した初期画素の階調値が閾値より小さいか否かを判断する(ステップS304)。具体的には、ROM28に格納した閾値を読出し、RAM27の入力バッファ271から読み出した初期画素の階調値と比較し、閾値よりも小さい場合はステップS305に移行し、閾値と同じか大きいときはステップS306に移行する。
初期画素の決定は、RAM27の入力バッファ271に格納された入力画像データのうち、入力画素の位置で最も上の左側に位置する画素をCPU26が選択する。すなわち、図6(a)に示す例では、(n,m)に対応する位置に位置する画素を初期画素としてCPU26は判断する。以下、説明を簡単にするため、(n,m)=(0,0)として説明する。
ステップS304で閾値より小さいと判断された場合(YES)、CPU26は、未処理画素の選択を行い、セルを拡大する処理を行う(ステップS305)。ここで未処理画素の選択は、セルの重心を利用して行う。重心を利用して画素の選択を行うことによって、最終的に生成されるセルの形状は円形状となり、その重心にドットを形成させることで、ドット間距離が均一となり、ドットの分散性がよい印刷出力を得ることができるのである。
CPU26は初期画素の位置する画素の階調値と、そのアドレス位置とを読み出し、重心を演算する。CPU26は、具体的に以下の演算式を用いて演算し重心を求める。
(式1)
x重心={{(セルの重心のx座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のx座標)×(選択した未処理画素の階調値)}}/{(セル内の画素の階調値合計)+(選択した未処理画素の階調値)}
y重心={{(セルの重心のy座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のy座標)×(選択した未処理画素の階調値)}}/{(セル内の画素の階調値合計)+(選択した未処理画素の階調値)}
(x重心、y重心は重心位置の座標)
この演算式はROM28に格納され、ステップS305にてCPU26が読み出して演算を行うことになる。もとより、初期画素の場合は、セルの重心のx、y座標は“0”として演算される。なお、CPU26は、演算した重心位置と、セルを構成する画素数“1”とを、上述したワーキングメモリ領域272のアドレス「x」「y」「gn」にそれぞれ格納する(図6(b)参照)。
x重心={{(セルの重心のx座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のx座標)×(選択した未処理画素の階調値)}}/{(セル内の画素の階調値合計)+(選択した未処理画素の階調値)}
y重心={{(セルの重心のy座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のy座標)×(選択した未処理画素の階調値)}}/{(セル内の画素の階調値合計)+(選択した未処理画素の階調値)}
(x重心、y重心は重心位置の座標)
この演算式はROM28に格納され、ステップS305にてCPU26が読み出して演算を行うことになる。もとより、初期画素の場合は、セルの重心のx、y座標は“0”として演算される。なお、CPU26は、演算した重心位置と、セルを構成する画素数“1”とを、上述したワーキングメモリ領域272のアドレス「x」「y」「gn」にそれぞれ格納する(図6(b)参照)。
また、CPU26は、ステップS304で初期画素の階調値が閾値より小さいと判断された場合は、初期画素に対応する出力バッファ273に“0”を格納し、ステップS304で初期画素の階調値が閾値以上と判断された場合は、その時点で初期画素に対応する出力バッファ273に“255”を格納する。この画素位置にドットを出力する処理を行うためである。ここでは、選択された初期画素の階調値は閾値より小さいため、図6(b)に示すように、選択した画素に対応するRAM27の出力バッファ273に“0”がCPU26によって格納されることになる。
続いて、CPU26は、ワーキングメモリ272のアドレス「sum」に初期画素の階調値を格納するとともに、選択した初期画素に対応する入力バッファ271に“−1”を格納する。再度未処理画素の選択で、当該画素を選択されないようにするためである。以降、未処理画素の選択処理と同時もしくは選択処理に先んじて、それまで既に選択されたセルを構成する画素の階調値の合計をワーキングメモリ272のアドレス「sum」に格納し、当該画素に対応する入力バッファ271のアドレスに“−1”を格納する処理を行う。
なお、CPU26は、入力バッファ271に“−1”を格納させているが、これに限ることはなく、他の負の値でもよい。さらに入力バッファ271と同様の構成のメモリ領域を用意して、選択した画素に対応する位置にフラグを立てて、選択画素が処理済みか否かを判別するようにしてもよい。
未処理画素の選択処理は、ステップS305で演算した重心から最も近い距離にある画素を選択することによって行う。このとき、RAM27の入力バッファの所定位置に格納されている入力画像の階調値から、アドレス(1,0)にある入力画素の階調値か、アドレス(0,1)にある入力画素の階調値が選択される。2つの画素ともアドレス(0,0)から等距離にあるからである。ここで、いずれかの画素を選択する必要があるが、本実施形態ではCPU26がランダムに画素を選択し、ここでは0行1列のアドレス(1,0)にある画素の階調値を選択する。こうしてセルを拡大する処理が行われるのである。
次いで、CPU26は、再びセル内の画素の階調値合計が閾値未満であるか否か判断する(ステップS304)。すなわち、選択した未処理画素の階調値を含めたセル内の画素の階調値合計が閾値“255”未満であるか否かを判断する。具体的には、CPU26は、RAM27のワーキングメモリ272のアドレス「sum」に書き込んだ画素の階調値と、ステップS305で選択した画素の入力バッファ271に格納された階調値とを読出し、その合計を演算して、ROM28に格納された閾値(ここでは“255”の値)とを比較する。例えば図6(c)の例では、ワーキングメモリ272のアドレス「sum」に格納された値“50”と、入力バッファ271のアドレス(1,0)格納されている階調値“50”との合計値は“100”となる。よって合計値は閾値に達しない。
階調値の合計が閾値を超えない場合(ステップS304:YES)、CPU26は、再び選択した未処理画素を含めた重心の演算を行う(ステップS305)。具体的なCPU26の演算は、上述した(式1)の演算式を用いて行うことになる。これまで求めた重心のx、y座標は、(0,0)で重心の階調値は“50”、未処理画素のx、y座標は(1,0)で、その階調値は“50”であるので、演算される重心位置は(0.5,0)となる。このステップS305で演算した重心位置は、CPU26の制御によってRAM27のワーキングメモリ272にセルの画素数とともに格納される。ステップS305での前回の処理で、ワーキングメモリ272には初期画素の重心位置および初期画素の画素数が格納されていたが、ここではその位置に上書きして格納する。その格納後の例を図6(c)に示す。
ここで、図6(c)に示されているように、重心位置は必ずしも整数値になるとは限らない。このとき、未処理画素の選択において重心に最も近い画素を選択する方法のほかに、重心が位置する画素に最も近い画素、つまり重心が位置する画素の中心に最も近い画素を選択する方法としてもよい。このようにすると、重心位置は整数値として演算でき、CPU26が処理する計算量の削減が期待できる。
こうして、ステップS304とS305の処理を繰り返すたびに、CPU26は、ステップS304で演算したセル内の画素の階調値合計が、閾値と等しいか否か判断しながら閾値に達するまでセルを構成していくことができる。また、閾値に達していない場合、上述したようにCPU26は、セルに組み入れた入力画素の位置に対応した出力バッファ273の位置に“0”を格納する。
図7(a)は、未処理画素(1,1)が選択されたときの状態を示したもので、ワーキングメモリ272の「sum」の値と画素(1,1)の階調値との合計値と、ROM28に格納された閾値とをCPU26が読み出して、両者を比較し、まだ閾値に達していないので、画素(1,1)をセルに組み込み、ワーキングメモリ272には重心位置とセルを構成する画素数“4”が、また選択した未処理画素(1,1)に対応する出力バッファ273に“0”がそれぞれ格納されている。
図7(b)は、図7(a)に引き続き行われる処理を示したもので、入力画素(1,2)が重心位置に最も近い画素として選択された状態を示している。このとき、セルの階調値合計が“255”になった状態を示している。すなわち、これまでセルに組み込まれた画素の階調値合計“205”が、RAM27のワーキングメモリ272に格納されるので、その値と画素(1,2)の値との合計値を、閾値と比較することで、CPU26は閾値と等しいと判断する。この場合、CPU26は、セルに組み入れた入力画素(1,2)の位置に対応した出力バッファ273の位置に“0”を格納する。
そして、閾値と等しいとCPU26が判断した場合(ステップS306:YES)、処理はステップS307に移行し(式1)を用いて重心位置を演算し、演算した重心位置とセルの画素数“5”をワーキングメモリ272に格納する。そして、重心に位置する画素に所定の色成分のドットを形成するための処理を行う。具体的には、図7(b)に示したように、RAM27の出力バッファ273の入力画素の位置に対応するアドレス位置にドットの形成をしめす所定の階調データ“255”を、セルを構成する画素数情報(本実施形態では“G5”)とともに書き込む。出力バッファの構造も入力バッファと同様に2次元構造で、入力画素の位置に対応するアドレス空間を有している。重心が位置するアドレスに“255”と“G5”を書き込むことで、その後、実際にその位置に対応する位置にドットを形成することができる。
次いで、CPU26は、データ“255”の書き込み処理をトリガーにして新たにセルを生成する処理に移行し、再び未処理画素があるか否か判断する(ステップS302)。すなわち、上述した処理をRAM27の入力バッファ271に書き込まれたすべての階調値に対して行ったか否かで判断し、未処理画素があれば(YES)再び処理はステップS304に移行し、上述の処理を繰り返す。例えば、図7(c)に、引き続いて上述した走査方法に従って、未処理画素(2,0)が探索された状態を示した。すべての画素に対して処理が終了すれば(ステップS302:NO)、CPU26はステップS303に移行し、処理が終了することになる。
一方、ステップS306でセル内の画素の階調値合計が閾値を超える場合(NO)、処理はステップS309に移行し、閾値を超えた場合の重心演算処理を行う。
図8(a)は、図7にて説明した処理に引き続いて、CPU26の処理が行われた状態を示したもので、入力画素(3,1)がセルに組み入れられたときのRAM27に格納されたデータの様子を示している。次に、図8(b)に示したように、(3,2)に位置する画素が選択されると、セル内の画素の階調値合計の演算結果は“265”になり、閾値“255”を超えることになる。したがって、このような場合(ステップS306:NO)、ステップS309に移行することになる。
ステップS309は、閾値を超える階調値分つまり誤差データを無視してセルの重心を算出する処理を行う。このため、まずCPU26は、閾値からセル内の画素の階調値合計、すなわち閾値からこれまでステップS305で格納したワーキングメモリの階調値を減ずる演算を行う。例えば図8に示す例では、閾値は“255”、ステップS305でこれまで格納した階調値は図8(b)に示したように“205”であるので、CPU26がこれらを読み出して255−205=50の値を演算する。
そして、CPU26が、この“50”の値を画素(3,2)の階調値として重心の演算を行うことによって、誤差データが無視されることになる。重心の演算は具体的には、以下の演算式を用いる。
(式2)
x重心={{(セルの重心のx座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のx座標)×(セル内の画素の階調値が閾値となるまでの階調値)}}/{(セル内の画素の階調値合計)+(セル内の画素の階調値が閾値となるまでの階調値)}
y重心={{(セルの重心のy座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のy座標)×(セル内の画素の階調値が閾値となるまでの階調値)}}/{(セル内の画素のレベル値合計)+(セル内の画素の階調値が閾値となるまでの階調値)}
(x重心、y重心は重心位置の座標)
(式1)との違いは、選択した未処理画素の階調値をそのまま用いるのではなく、セルの合計が閾値と同じになるまでの階調値を用いる点が異なる。
x重心={{(セルの重心のx座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のx座標)×(セル内の画素の階調値が閾値となるまでの階調値)}}/{(セル内の画素の階調値合計)+(セル内の画素の階調値が閾値となるまでの階調値)}
y重心={{(セルの重心のy座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のy座標)×(セル内の画素の階調値が閾値となるまでの階調値)}}/{(セル内の画素のレベル値合計)+(セル内の画素の階調値が閾値となるまでの階調値)}
(x重心、y重心は重心位置の座標)
(式1)との違いは、選択した未処理画素の階調値をそのまま用いるのではなく、セルの合計が閾値と同じになるまでの階調値を用いる点が異なる。
この演算式は、(式1)の場合と同様に予めROM28に格納されており、CPU26が本ステップを実行する際にROM28から読み出すことで実行される。ここでは、最終的にステップS305で選択した画素の階調値は、これまで演算した階調値の合計との和をとることで閾値と等しくなるように演算して、それをもとに重心位置を求めることになる。そしてCPU26は、演算した重心位置データを再びRAM27のワーキングメモリ272に書き込む(図8(b)のワーキングメモリ272参照)。
また、CPU26は、最終的に選択した画素の元の階調値からステップS309で演算した演算結果を引いた値(誤差データ)を演算して、その値を再びその選択した画素の入力バッファに書き込む(ステップS310)。これにより、当該画素の階調値が、戻しデータとして格納される。図8(c)に示す例では、ステップS309で演算した“50”を最終的に選択した(3,2)の画素の階調値“60”から引いて“10”の値を求め、これをRAM27の入力バッファ271のアドレス(3,2)に再び書き込む(図8(c)の入力バッファ271参照)。
そして、この画素はセルに組み込まれず、階調変換が未処理であるとして扱い、新たなセルに組み入れられる未処理画素とする処理を行う(ステップS311)。上述したように、誤差データをセル以外の画素に戻すのではなく、誤差データが発生した画素に戻しデータとして再び格納させ、当該画素を未処理画素とすることで、入力画像の階調値に忠実な位置にドットを形成することができる。
その後処理はステップS308に移行し、上述した処理が繰り返されることになる。ちなみに、CPU26は、重心位置の存在する画素に対応する出力バッファ273に“255”と“G4”を格納させる。これにより、その後の処理で重心位置の存在する画素にドットを形成することができる。
以上説明したように、図2に示したハード構成によって、各色相データに対してCC法によるハーフトーン処理が行われる。
(B)誤差拡散法によるハーフトーン処理
次に、誤差拡散法によるハーフトーン処理について、図9〜図11を用いて説明する。誤差拡散法は、ドットマトリクス状に配列される入力画像の画素に対して、水平方向(入力画像の画面左から右方向)の主走査を繰り返しつつ走査ラインを垂直方向(入力画像の画面上から下方向)に移動する副走査を実行することにより注目画素を順次走査し、全画素について対象となる色相データを所定の種類の値を有する階調値に階調変換する。このようにして、注目画素を走査していくことにより、図9(a)に示したように、注目画素上方行と下方行は階調変換済み領域と未変換領域とに分かれる。さらに注目画素の左方列と右方列も階調変換済み領域と階調未変換領域とに分かれる。基本的には階調変換した所定の階調値と、階調変換前の元の階調値との差分値、つまり量子化による誤差値(以降、単に「誤差値」)を、注目画素の右方及び下方に割り当てることにより、入力画像全体での階調値の誤差を少なくするのである。
次に、誤差拡散法によるハーフトーン処理について、図9〜図11を用いて説明する。誤差拡散法は、ドットマトリクス状に配列される入力画像の画素に対して、水平方向(入力画像の画面左から右方向)の主走査を繰り返しつつ走査ラインを垂直方向(入力画像の画面上から下方向)に移動する副走査を実行することにより注目画素を順次走査し、全画素について対象となる色相データを所定の種類の値を有する階調値に階調変換する。このようにして、注目画素を走査していくことにより、図9(a)に示したように、注目画素上方行と下方行は階調変換済み領域と未変換領域とに分かれる。さらに注目画素の左方列と右方列も階調変換済み領域と階調未変換領域とに分かれる。基本的には階調変換した所定の階調値と、階調変換前の元の階調値との差分値、つまり量子化による誤差値(以降、単に「誤差値」)を、注目画素の右方及び下方に割り当てることにより、入力画像全体での階調値の誤差を少なくするのである。
また、図9(b)〜(d)に示すように、拡散する誤差値の割り当てに際しては、注目画素に対して所定の画素に重み付けをして誤差値を拡散させている。このように所定の画素に重み付けをして拡散することによって、入力画像の階調値の拡散度合いを設定することができる。
それでは、誤差拡散法を用いた階調変換処理(2値化)処理について、図10のフローチャートと図11の模式図を用いて説明する。なお本実施形態での誤差値の拡散は、図9(b)の重み付け方法を用いて行うものとしている。注目画素に生じた誤差値を、右隣の画素に2、下の画素に2、右下の画素に1、左下の画素に1の割合で拡散するのである。
この処理において、まず、p行q列目の画素に注目する。そしてこの画素のC,M,Y各色成分の色相データを、例えばシアン(C)成分であればdata_C〔p〕〔q〕と表す。これを、C,M,Yそれぞれの成分について2値化するのであるが、一例として、以下C成分を2値化する処理について説明する。もとより、M,Y成分についても処理は基本的に同じである。なお、p行q列目の画素の2値化によって生じる誤差値を、err〔p〕〔q〕と表す。
同じくこの処理において、階調変換処理後のC成分の階調値(pre_C)を以下のように表す。
pre_C〔0〕=0
pre_C〔1〕=255
pre_C〔0〕=0
pre_C〔1〕=255
また、階調変換処理のために用いる閾値SHは、pre_C〔0〕より大きく、pre_C〔1〕より小さい所定の値に設定する。
図10の処理が開始されると、最初にステップS401にて、注目画素となるp行q列目の画素の色相データdata_C〔p〕〔q〕が閾値SHより小さいか否かを判定する処理を行う。判定の結果、注目する画素のdata_C〔p〕〔q〕の階調値が閾値SHより小さい場合は(YES)、pre_Cの階調値をpre_C〔0〕の値“0”とする(ステップS402)。
一方、data_C〔p〕〔q〕の階調値が閾値SHより大きい場合は(NO)、ステップS405にて、data_C〔p〕〔q〕の階調値がpre_C〔1〕の値以下か否かを判定する処理を行う。判定の結果、YESであれば、pre_Cのレベル値をpre_C〔1〕の値“255”とする(ステップS406)。
基本的に、data_C〔p〕〔q〕は以上の処理によって、“0”か“255”の値のどちらかに階調変換されることになるが、もしいずれにも変換されない場合、すなわちステップS405にて判定の結果NOである場合はデータエラーとして処理を終了する。
次に、ステップS402、S406にて“0”か“255”の何れかに設定された階調値pre_Cとdata_C〔p〕〔q〕とからerr〔p〕〔q〕を算出する処理を行う(ステップS407)。そして、次のステップS408にて、算出したerr〔p〕〔q〕を、図9(b)の重み付けに従って所定の画素に拡散する処理を行う。
以上の処理を、所定の走査順に従って行い、p、qすべて終了したか否かを判定し(ステップS409)、終了していない場合は(NO)p、qを更新し(ステップS410)、順次画素の色相データを階調変換することによって入力画像全ての画素について処理を終了し(YES)、誤差拡散法による階調変換処理を終了する。もとより、入力画像の一行一列目の画素を最初の注目画素とし、その後、前述した主走査および副走査方法に従って注目画素を更新するのである。
図10のフローチャートで示した処理の様子を、一例として、図11の模式図を用いて説明する。ここでは、図4(a)に示したシアン成分の色相データを所定の閾値“70”を用いて階調変換するものとする。もとより閾値はこれに限るものではなく、前述したように値“0”と“255”との間の値であれば何でもよい。
図11(a)太枠部に示したように、p行q列目の画素を注目画素とする。以降、画素を(q,p)というように表記する。閾値“70”との比較によって、図11(b)に示したように、(q,p)は階調値“0”に変換される。そして誤差値“50”(=50−0)を重み付け方法に従って、網掛け部で示したそれぞれの画素(q+1,p)と(q,p+1)に“17”、(q+1,p+1)に“8”の誤差値をそれぞれ拡散する。なお注目画素が入力画像の左端など端部に位置する場合は、誤差値の拡散対象となる画素のうち存在する画素に対して、それぞれの重み付け係数によって誤差値を振り分けて拡散する。従って、存在しない画素に対する重み付け分の階調値は失われる。
次に、走査方法に従って(q+1,p)を次の注目画素とし(図11(c)太枠部)、閾値との比較によって(q+1,p)は階調値“0”に変換される(図11(d))。そして誤差値“67”(=67−0)を重み付け方法に従って、図11(c)の網掛け部で示したそれぞれの画素(q+2,p)と(q+1,p+1)に“22”、(q+2,p+1)と(q,p+1)に“11.5”の誤差値をそれぞれ拡散する。
次に、走査方法に従って(q+2,p)を注目画素とし(図11(d)太枠部)、閾値との比較によって(q+2,p)は階調値“255”に変換される(図11(e))。そして誤差値“−183”(=72−255)を重み付け方法に従って、(q+3,p)と(q+2,p+1)に“−61”、(q+3,p+1)と(q+1,p+1)に“−30.5”の誤差値をそれぞれ拡散する。
走査方法に従って(q+3,p)が次の注目画素となるが(図11(f)太枠部)、このときは、画素(q+2,p+1)と(q+3,p+1)が重み付け分の誤差値が拡散される対象画素となる(図11(f)網掛け部参照)。このように色相データの変換処理を入力画像の全ての画素について繰り返し実施することによって、対象となる色相データについて階調変換(2値化)処理が行われるのである。
以上説明したように、誤差拡散法を用いたハーフトーン処理は、量子化に伴って発生する階調値を誤差値として一定の方向に拡散させていくため、端部に位置する画素について一部階調値を失うものの、ほぼ元の階調値を保ちながら階調変換することができる階調変換処理方法である。
なお、誤差拡散法についてのハード構成は、CPU26、ROM28やRAM27の入力バッファ、出力バッファの構成など、前述したCC法による階調変換におけるハード構成と基本的に同じである。また誤差拡散の手法は周知の技術であるため、ハード構成および具体的にCPU26が行う誤算拡散法に基づく制御処理内容についての説明は、ここでは省略する。
(C)ハーフトーン処理についての第1実施例(フィルタによるデータ処理)
(C1)誤算拡散法を用いたハーフトーン処理
次に、本実施形態におけるハーフトーン処理についての第1実施例を、図12のフローチャートを用いて説明する。第1実施例は、異なる2つの色相を持ったシアン成分とマゼンタ成分の色相データのハーフトーン処理に際して、シアン成分の色相データとその2値化データとの差分データを所定のフィルタにてデータ処理を行ったのち、マゼンタ成分の色相データに加算することによって、互いに重ならず分散性のよいドットを形成するものである。
(C1)誤算拡散法を用いたハーフトーン処理
次に、本実施形態におけるハーフトーン処理についての第1実施例を、図12のフローチャートを用いて説明する。第1実施例は、異なる2つの色相を持ったシアン成分とマゼンタ成分の色相データのハーフトーン処理に際して、シアン成分の色相データとその2値化データとの差分データを所定のフィルタにてデータ処理を行ったのち、マゼンタ成分の色相データに加算することによって、互いに重ならず分散性のよいドットを形成するものである。
この処理が開始されると、まずステップS201にて、入力画像を読み込む処理を行う。具体的には、色変換部21(図1)が出力した色相データDTを入力バッファに取り込むことによって入力画像を読み込む処理を行う。通常、全ての色相データを読み込んで、ドットを出力するためハーフトーン処理を行うが、ここでは説明を容易にするため、均一した階調値を持った色相の異なる2つの色相データであるシアン(C)成分とマゼンタ(M)成分とが、それぞれ入力バッファ271Caと271Maに取り込まれたものとする。均一した階調値“20”のシアン成分の色相データが取り込まれた様子を図13(a)に示した。また、本実施例では、さらに説明の簡便性のため取り込まれたシアン成分、マゼンタ成分とも8×8画素(アドレス(0,0)から(7,7)まで)の色相データであるとして以降説明する。
次に、ステップS202にて、シアン成分の階調値を、誤差拡散法を用いて2値化処理を行う。ここでの2値化処理に際しては、閾値を“45”とし、図9(b)の重み付け方法によって誤差値を拡散し階調変換する。この結果、シアン出力バッファ273Caに、図13(b)に示した2値化データが格納される。
次に、ステップS203にて、シアン成分の差分データの算出処理を行う。差分データは、シアン成分の色相データからシアン成分の2値化データを減算して求める。具体的には、シアン入力バッファ271Caのデータからシアン出力バッファ273Caのデータをマイナス演算して算出する。算出結果は、図13(c)に示したようにシアン出力バッファ273Cbに格納される。
算出された差分データは、ドットが形成される位置に対応した1画素のみ、階調値を大きく減少させたものになっている。従って、このままこの差分データを以降の処理ステップにてマゼンタに加算すると、前述した特許文献2と同様、一方の色相のドット形成が行われた画素のみにドット抑制効果がとどまるため、他方の色相のドットが隣接する画素に形成されやすく、ドットが分散されにくくなる。そこで、ステップS204にて、シアン成分の差分データを所定のフィルタにてデータ処理を行う。つまり、所定のフィルタマトリックスを用いて、ドットが形成される画素位置周辺にドット抑制効果を分散させる処理を行うのである。
図14(a)〜(c)に、フィルタマトリックスを例示する。本実施例では、用いるフィルタマトリックスを第1ドットの明度と第2ドットの明度の比率に応じた大きさのマトリックスとする。例えば、第1ドットの明度が高い場合は、図14(c)に例示したような大きいマトリックスを用いる。逆に、第1ドットの明度が低い場合は、図14(a)に例示したような小さいマトリックスを用いる。こうすることで、第1ドットが明度の高いドット、つまりより目立ち易いドットの場合は、第1ドットの位置から遠い位置に第2ドットが形成され、第1ドットが明度の低いドット、つまりより目立ち難いドットの場合は、第1ドットの位置に近い位置に第2ドットが形成される。この結果、印刷紙面上において単位面積あたりの明度を一定に保つ効果を奏することになる。
本実施例では、シアン成分の出力ドットとマゼンタ成分の出力ドットの明度比から、図14(b)に示したフィルタマトリックスが用いられデータ処理が行われるものとする。画像出力装置30が出力するドットの明度比に応じて用いる所定のフィルタマトリックスは、予めROM28またはハードディスク29に格納され、データ処理に際してCPU26が読み出して処理を行う。もとより、出力ドットの明度にかかわらず、所定のフィルタマトリックスを用いることとしても差し支えない。
フィルタマトリックスによるデータ処理について、図15を用いて説明する。図15(a)に示したように、まずシアン出力バッファ273Cbのアドレス(0,0)を注目画素として太枠で示したフィルタマトリックスを用いてデータ処理する。このとき図示したように、フィルタマトリックス上、差分データが格納されたシアン出力バッファ273Cbのアドレスと重ならない部分が発生するが、この部分の階調値は“0”としてデータ処理を行う。データ処理の結果、アドレス(0,0)の階調値は“10”となり、RAM27に用意されたシアン出力バッファ273Ccに格納される。
次に、注目画素はアドレス(1,0)に移り、同じようにデータ処理を行い、階調値“−11”が、シアン出力バッファ273Ccのアドレス(1,0)に格納される。以降、前述の主・副走査の順序に従い、フィルタマトリックスを用いてデータ処理を繰り返し実施する。図15(c)は、データ処理の途中経過を示したもので、アドレス(4,1)が注目画素となったとき、階調値“20”が、シアン出力バッファ273Ccのアドレス(4,1)に格納された状態を示している。
全てのアドレスについてデータ処理が終了すると、シアン成分の差分データは、図16(a)に示したシアン出力バッファ273Ccの状態となる。そして、次のステップS205にて、マゼンタ成分にこのデータ処理されたシアン成分の差分データを加算する処理を行う。図16(b)は、シアン成分と同様に、RAM27に用意されたマゼンタ入力バッファ271Maに取り込まれたマゼンタ成分の色相データを示している。本実施例では、マゼンタ成分も均一な階調値“20”を有する色相データであるものとする。加算処理は、シアン出力バッファ273Ccのデータと、マゼンタ入力バッファ271Maのデータとをプラス演算することによって行う。この結果は、RAM27に用意されたマゼンタ入力バッファ271Mbに格納される(図16(c)参照)。
こうして加算されたマゼンタ成分の色相データを、次のステップS206にて2値化処理する。本実施例では、マゼンタ成分の色相データの2値化処理についても、シアン成分と同様、閾値“45”と図9(b)に示した重み付けによる誤差拡散法を用いて2値化処理を行う。
ステップS206での2値化処理の結果、マゼンタ出力バッファ273Maは図17(a)に示したようになる。そして、階調値“255”が格納されたアドレスに対応した画素位置にマゼンタ成分に対応する色ドット(単に、マゼンタドット)が形成される。一方、シアン成分に対応する色ドット(単に、シアンドット)は、図17(b)に示したように、シアン出力バッファ273Caに格納された階調値“255”のアドレスに対応した画素位置に形成される。従って、2種類のドットは、図17(c)に示したように形成される。
以上で、誤差拡散法を用いた第1実施例の処理は終了するが、図17(c)から明らかなように、所定のフィルタによるデータ処理を行った本実施例のハーフトーン処理によれば、色相の異なる2種類の色相データについて、形成されるドットは重ならず、かつ分散性もよいことが分かる。仮に、本実施例において、ステップS203からS205の処理を行わず、シアン、マゼンタの色相データを同じ誤算拡散の方法で2値化した場合は、入力データが全く同一であるため、シアン成分もマゼンタ成分も共に図13(b)に示した2値化データとなり、全く同じ画素位置にドットが形成されてしまうことになる。本実施例によれば、ドットが重ならず分散性よく形成されるのである。
(C2)CC法を用いたハーフトーン処理
図17(c)では、形成されるシアンドットは4個でマゼンタドットは6個となっている。ここで、入力されたそれぞれの色相データの全ての画素の階調値合計は“1280”(=20×8×8)であることから、2値化後の階調値“255”の数は、階調値が保存されている場合は“5”(=INT(1280/255):INTは小数点以下を切り捨てる関数)となり、それぞれ合計5個のドットが形成されるはずである。しかし、2値化処理に誤算拡散法を用いた場合は、前述したように重み付け方法に従って誤差値が画像全体の右側及び下側に拡散していくため、画像の端部において元の画像の階調値が一部失われ、シアン成分の2値化処理の結果、階調値“255”が格納されたアドレス数が4個となって2値化データの階調値が減り、その分マゼンタ成分の階調値が増えることになる。この結果、形成されるシアンドットが減りマゼンタドットが増え、ドット数に差が生じるのである。
図17(c)では、形成されるシアンドットは4個でマゼンタドットは6個となっている。ここで、入力されたそれぞれの色相データの全ての画素の階調値合計は“1280”(=20×8×8)であることから、2値化後の階調値“255”の数は、階調値が保存されている場合は“5”(=INT(1280/255):INTは小数点以下を切り捨てる関数)となり、それぞれ合計5個のドットが形成されるはずである。しかし、2値化処理に誤算拡散法を用いた場合は、前述したように重み付け方法に従って誤差値が画像全体の右側及び下側に拡散していくため、画像の端部において元の画像の階調値が一部失われ、シアン成分の2値化処理の結果、階調値“255”が格納されたアドレス数が4個となって2値化データの階調値が減り、その分マゼンタ成分の階調値が増えることになる。この結果、形成されるシアンドットが減りマゼンタドットが増え、ドット数に差が生じるのである。
(C2)CC法を用いたハーフトーン処理
前述した形成されるドット数の差に鑑み、次にCC法を用いたハーフトーン処理による第1実施例を図12のフローチャートに基づいて説明する。まず、ステップS201にて、図13(a)に示したものと同じシアン成分の階調値が、シアン入力バッファ271Caに格納処理される(図18(a)参照)。これをステップS202(図12)にて、CC法を用いて2値化処理を行うと、図18(b)に示したシアン出力バッファ273Caのデータを得る。図中太枠は生成されたセルを表し、“255”はドットの形成位置を、“G13”および“G11”はセルを構成する画素数をそれぞれ表している。図18(b)に示したように、CC法によれば、階調値が保存されるため、シアンドットは5個形成される。
前述した形成されるドット数の差に鑑み、次にCC法を用いたハーフトーン処理による第1実施例を図12のフローチャートに基づいて説明する。まず、ステップS201にて、図13(a)に示したものと同じシアン成分の階調値が、シアン入力バッファ271Caに格納処理される(図18(a)参照)。これをステップS202(図12)にて、CC法を用いて2値化処理を行うと、図18(b)に示したシアン出力バッファ273Caのデータを得る。図中太枠は生成されたセルを表し、“255”はドットの形成位置を、“G13”および“G11”はセルを構成する画素数をそれぞれ表している。図18(b)に示したように、CC法によれば、階調値が保存されるため、シアンドットは5個形成される。
次に、ステップS203にて、シアン成分の差分データを算出処理すると、図18(c)に示したシアン出力バッファ273Cbのデータを得る。次に、ステップS204にて、シアン出力バッファ273Cbのデータを、図14(b)に示した所定のフィルタマトリックスを用いてデータ処理すると、図19(a)に示したシアン出力バッファ273Ccのデータを得る。そしてこのデータを、図19(b)に示したマゼンタ入力バッファ271Maのデータに加算処理を行い(ステップS205)、マゼンタ入力バッファ271Mbに2値化処理の対象となる階調値データを得る(図19(c)参照)。
次にステップS206にて、マゼンタ入力バッファ271Mbに格納されたマゼンタ成分の階調値を、CC法を用いて2値化処理する。図20(a)に、生成されるセルの様子を太枠線にて示した。そして、CC法による2値化処理のデータは、図20(b)に示したように、マゼンタ出力バッファ273Maの各アドレスに2値化データとして格納される。この結果、シアンドットとマゼンタドットは図20(c)に示したように形成される。
以上のように、所定のフィルタマトリックスを用いてデータ処理をおこない、CC法による2値化処理によって、2種類の色相データに対応するドットは重ならず形成される。また、シアンドット数も5個になっている。
しかしながら、形成されるマゼンタドットはまだ4個になっていることと、図13(c)に示した誤差拡散法と比較すると、シアンドットとマゼンタドットとの分散性が劣っている。これは、図12のステップS204で、所定のフィルタによるデータ処理を行った際、フィルタマトリックスと入力バッファのアドレスが重ならない位置の階調値を“0”として処理したため、入力バッファの端部のアドレスにおいてシアン成分のプラスの階調値が失われ、その結果、ステップS205にてマイナスの階調値がマゼンタ成分に加算され、マゼンタ成分の階調値を減少させたためである。
(D)ハーフトーン処理についての第2実施例(プロファイルによる分散処理)
そこで、第2実施例として、差分データをフィルタによってデータ処理を行う方法に替え、2値化データを所定のプロファイルにて分散する方法によって、ドットが重ならず且つ適切なドット数が形成されるCC法を用いた2値化処理方法を説明する。
そこで、第2実施例として、差分データをフィルタによってデータ処理を行う方法に替え、2値化データを所定のプロファイルにて分散する方法によって、ドットが重ならず且つ適切なドット数が形成されるCC法を用いた2値化処理方法を説明する。
第2実施例にて行うハーフトーン処理を図21のフローチャートを用いて説明する。第2実施例は、異なる2つの色相を持ったシアン成分とマゼンタ成分の色相データのハーフトーン処理に際して、シアン成分の2値化データのうち階調値“255”のデータを所定のプロファイルにて分散し、その分散したデータと2値化処理前の色相データとの差分データを、マゼンタ成分の色相データに加算することによって、互いに重ならず分散性のよいドットを形成するものである。
この処理が開始されると、まずステップS211にて、入力画像を読み込む処理を行う。ここでは、前述した第1実施例と同様、図13(a)に示した色相の異なる2つの色相データであるシアン(C)成分とマゼンタ(M)成分とが、それぞれ入力バッファ271Caと271Maに取り込まれたものとする。
次に、ステップS212にて、シアン成分の階調値を、CC法を用いて2値化処理を行う。ここでの処理によって、前述した第1実施例におけるCC法によるシアン成分の階調値の2値化処理と同様に、シアン出力バッファ273Caに、図22(a)に示した2値化データが格納される。
次に、ステップS213にて、シアンドットの階調値“255”を所定のプロファイルにて分散した分散データに変換する処理を行う。具体的には、ドットが形成される画素位置を基準に、階調値“255”を所定のプロファイルに従って周辺画素に分散させる処理を行う。この処理によって、ドットが形成される位置に対応した1画素のみにドット抑制効果を留めず、その周辺にまでドット抑制効果を広げることになるため、形成される第1ドットと第2ドットが分散される。
本実施例では、所定のプロファイルとして、図14(a)〜(c)に示したフィルタマトリックスを用いることとする。もとより、異なるプロファイルを用いても良い。さらに、本実施例では、生成されたセルごとに、セルを構成する画素数にあわせて異なるプロファイルを用いることとする。例えば、セルを構成する画素数が少ない場合は、図14(a)に示したマトリックスを用い、セルを構成する画素数が多い場合は、図14(b)に示したマトリックスを用いることとする。これによって、第2の色相データについて形成される第2ドットのドット位置が、第1の色相データについて形成される第1ドットの密度に応じて遠ざかるため、ドットの分散性が向上することになる。
具体的に、シアン出力バッファ273Caにおいて、セルを構成する画素数が13個を示す“G13”が格納されたアドレスを基準に、図14(b)に示したプロファイルが適用されることを図22(b)に示し、セルを構成する画素数が11個を示す“G11”が格納されたアドレスを基準に、図14(a)に示したプロファイルが適用されることを図22(c)に示した。図23(a)は、ステップS213にて分散データに変換処理されたシアン出力バッファ273Cbを示している。
次に、ステップS214にてシアン成分の差分データを算出する処理を行う。差分データは、シアン成分の色相データからシアン成分の分散データを減算して求める。具体的には、シアン入力バッファ271Caのデータからシアン出力バッファ273Cbのデータをマイナス演算して算出する。算出結果は、図23(b)に示したようにシアン出力バッファ273Ccに格納される。
次に、ステップS215にて、マゼンタ成分に算出されたシアン成分の差分データを加算する処理を行う。図23(c)にマゼンタ成分の階調値が格納されたマゼンタ入力バッファ271Maを示す。このデータに、図23(b)に示した差分データを加算する。加算結果を図24(a)に示す。マゼンタ入力バッファ271Mbには加算データが格納され、この加算データに対して、次のステップS216にて、CC法による2値化処理を行う。
ステップS216にて処理された2値化データを、図24(b)に示す。マゼンタ出力バッファ273Maには、5箇所のアドレスに階調値“255”が格納され、5個のマゼンタドットが形成されることがわかる。一方、シアンドットは、図22(a)に示したように、シアン出力バッファ273Caに格納された階調値“255”のアドレスに対応した画素位置に形成される。従って、2種類のドットは、図24(c)に示したように形成される。
以上で、第2実施例の処理は終了するが、図24(c)から明らかなように、所定のプロファイルによる分散データ変換処理を行った本実施例によれば、色相の異なる2種類の色相データについて、それぞれ入力された色相データの階調値から形成されるべきドット数5個が形成され、かつドットは重ならず、分散性もよいことが分かる。
以上説明したように、本実施形態における第1実施例および第2実施例によれば、所定のフィルタあるいは所定のプロファイルを用いて、第1の色相データであるシアン成分の階調値から所定の処理によって算出したデータを、第2の色相データであるマゼンタ成分の階調値に加算することによって、第1ドットであるシアンドットが形成された画素位置を中心に、第2ドットであるマゼンタドットの形成に対する抑制効果を広げることができる。この結果、種類の異なる2つのドットは重ならず、また分散性よく形成されることになる。
なお、第1実施例および第2実施例では、シアン成分を第1の色相データ、マゼンタ成分を第2の色相データとして扱ったが、逆にマゼンタ成分を第1の色相データとしてもよい。また、イエロー成分を含め、3つの色成分のうちの任意の2つの色成分をそれぞれ第1の色相データと第2の色相データとしても差し支えない。さらに、上記実施例では例えば3つの色成分としたが、ブラック成分などを含め画像出力装置30が出力する複数の色成分のうち、任意の2つの色成分をそれぞれ第1の色相データと第2の色相データとすればよい。
また、上記第1実施例および第2実施例では、2つの色相データについてハーフトーン処理する場合を説明しているが、3つ以上の色相データをハーフトーン処理する場合は、2つの色相データについてのハーフトーン処理を繰り返して実施すればよい。つまり、2つの色相データについてのハーフトーン処理結果を1つの色相データについての処理結果と考え、これを第1の色相データとし、3つ目の色相データを第2の色相データとして考えれば2つの色相データの処理方法と全く同様に扱うことが可能である。
上述したように、第1実施例および第2実施例によれば、ハーフトーン処理(2値化処理)に、階調値を保存して階調変換を行う処理方法である誤差拡散法またはCC法を用いているため、元の入力画像に比較的忠実に2値化することが可能である。特に、CC法では、量子化に伴って発生する選択画素の誤差データを、他の画素に拡散せず元の選択画素に戻すため、入力画像にほぼ忠実に2値化することが可能である。
また、同じくCC法によるハーフトーン処理によれば、セルの重心に最も近い画素を選択してセルに組み入れていくため、生成されるセルの形状は重心を中心としておおよそ円形状になる。従って、セルの重心に出力されるドットは、セルのほぼ中央の位置となるためドットが重なる確率は低くなり、分散性のよいドットが形成されることが期待できる。
以上、本発明の実施形態について第1実施例および第2実施例にて説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。以下、変形例を挙げて説明する。
(E)変形例
「第1変形例」
前記実施例では、第1の階調変換処理および第2の階調変換処理について、同じハーフトーン処理方法を用いたが、特にこれに限るものではなく、第1変形例として、第1の階調変換処理方法と第2の階調変換処理方法とが異なるハーフトーン処理方法であるものとしてもよい。
「第1変形例」
前記実施例では、第1の階調変換処理および第2の階調変換処理について、同じハーフトーン処理方法を用いたが、特にこれに限るものではなく、第1変形例として、第1の階調変換処理方法と第2の階調変換処理方法とが異なるハーフトーン処理方法であるものとしてもよい。
例えば、第1の階調変換処理を誤差拡散法を用いて行い、第2の階調変換処理をCC法を用いて行うとしてもよいし、またはその逆であってもよい。図25に、第1実施例において第1の階調変換処理をCC法を用いて行ったのち、第2の階調変換処理を誤差拡散法を用いて行う場合を例示する。
図25(a)は、図19(c)に示した第2の階調変換対象データであるマゼンタ出力バッファ271Mbと同じ状態を示している。前記実施例ではこのあとCC法を用いて2値化処理を行ったが、本変形例では、誤差拡散法を用いて2値化処理を行う。比較のために、実施例と同じく、閾値“45”と図9(b)の重み付け方法を用いる。
誤差拡散法を用いた2値化処理の結果、マゼンタ出力バッファ273Maには、図25(b)に示した2値化データが格納される。従って、この場合に形成されるドットは図25(c)に示す通りとなる。
図25(c)から明らかなように、シアンドット、マゼンタドットともに重ならず分散性よく形成される。また、マゼンタドットは5個形成され、シアンドットと同じ数となっている。誤差拡散法を用いた2値化処理においては、閾値の値が小さいほど、ドットを出力させる画素は、走査順で早い画素になるため、以降マイナスの誤差値を拡散させることになる。一方、CC法は前述の説明のようにマイナス誤差値は発生しない。このため、本変形例では、誤差拡散法による2値化処理の結果、CC法に対してマゼンタドットが1個増えたのである。このように、第1の階調変換処理と第2の階調変換処理との間でハーフトーン処理方法を変更することによって、入力画像に忠実に分散性のよいドットを形成することも可能である。
「第2変形例」
また前記実施例では、ハーフトーン処理方法に誤差拡散法またはCC法を用いたが、とくにこれに限るものではなく、その他の処理方法を用いてもよい。例えば、特許文献1または2で用いられている組織的ディザ法を用いてもよい。前記実施例によるハーフトーン処理方法によれば、前述したように第2ドットの形成に対する抑制効果を、第1ドットが形成された画素のみに留めず拡大しているため、ハーフトーン処理に組織的ディザ法を用いた場合でも、ドットの分散性を向上することが可能となる。
また前記実施例では、ハーフトーン処理方法に誤差拡散法またはCC法を用いたが、とくにこれに限るものではなく、その他の処理方法を用いてもよい。例えば、特許文献1または2で用いられている組織的ディザ法を用いてもよい。前記実施例によるハーフトーン処理方法によれば、前述したように第2ドットの形成に対する抑制効果を、第1ドットが形成された画素のみに留めず拡大しているため、ハーフトーン処理に組織的ディザ法を用いた場合でも、ドットの分散性を向上することが可能となる。
「第3変形例」
さらに、前記実施例では、シアン成分とマゼンタ成分という異なる2つの色相を持った色相データをハーフトーン処理するものとして説明したが、特に色相が異なる色相データに限ることはなく、ドットの大きさが異なる出力ドットに対応した色相データ、または単位面積当たりの濃度が異なる出力ドットに対応した色相データ、もしくは光反射率の異なる出力ドットに対応した色相データなど、性質の異なる色相データであってもよい。
さらに、前記実施例では、シアン成分とマゼンタ成分という異なる2つの色相を持った色相データをハーフトーン処理するものとして説明したが、特に色相が異なる色相データに限ることはなく、ドットの大きさが異なる出力ドットに対応した色相データ、または単位面積当たりの濃度が異なる出力ドットに対応した色相データ、もしくは光反射率の異なる出力ドットに対応した色相データなど、性質の異なる色相データであってもよい。
通常、インクジェットプリンタやレーザプリンタにおいては、シアンとマゼンタ成分以外に、イエロー、ブラック成分のインクまたはトナーが用意され、シアンドット、マゼンタドット以外にイエロードット、ブラックドットが形成される。またインクジェットプリンタでは、さらに同じ色相のシアンやマゼンタドットであっても濃度の異なる(薄くなる)ライトシアンドットやライトマゼンタドットが形成される場合もある。あるいは形成されるドットの大きさも1種類ではなく複数種類の場合もある。例えばインクジェットプリンタでは各色成分について3種類の大きさのドットを形成したりする場合がある。また、レーザプリンタではドットの大きさで階調を表す方式(網点方式)を採用する場合があり、例えば4ビットでのパルス幅変調により16種類の大きさのドットを形成する場合がある。あるいは、形成されるドット表面の光反射率に違いを持たせて画像を表現することが行われる場合もある。
上述したような性質の異なる色相データに対応したドットを同じ印刷媒体上に形成する場合、形成されるドットに対応するそれぞれの色相データについて前記実施例によるハーフトーン処理を行うことで、それぞれのドットが重ならず、分散性良くドットを形成できる。
「第4変形例」
前記第1実施例では、第1ドットと第2ドットの明度比に基づいて所定のフィルタマトリックスを用いることとしたが、第4変形例として、第1の階調変換処理をCC法を用いて行った場合、生成されたセルを構成する画素数に応じたフィルタ特性、つまりセルを構成する画素数に応じた大きさのマトリックスを持ったフィルタを用いてデータ処理することとしてもよい。
前記第1実施例では、第1ドットと第2ドットの明度比に基づいて所定のフィルタマトリックスを用いることとしたが、第4変形例として、第1の階調変換処理をCC法を用いて行った場合、生成されたセルを構成する画素数に応じたフィルタ特性、つまりセルを構成する画素数に応じた大きさのマトリックスを持ったフィルタを用いてデータ処理することとしてもよい。
例えば、第1の色相データを2値化した2値化データにおいて、生成されたセルごとに、セルを構成する画素数に基づいて特定されるフィルタマトリックスを用い、それぞれのセルに対応して出力されたドットごとに差分データをデータ処理してもよい。あるいは、セルを構成する画素数の平均値に基づいて特定される1つのフィルタマトリックスを用いて差分データをデータ処理することとしても差し支えない。
こうすれば、第1の色相データについて出力される第1ドットのドット密度(単位面積当たりの形成ドット数)に応じて差分データのデータ処理に用いるフィルタマトリックスが選択されることになる。この結果、例えば、第1ドットのドット密度が高い場合は、図14(a)に例示したような小さいマトリックスを用い、第1ドットのドット密度が低い場合は、図14(c)に例示したような大きいマトリックスを用いることによって、第2の色相データに対応して出力される第2ドットの位置が、第1ドットの密度に応じて遠ざかり、ドットの分散性が向上することになる。
「第5変形例」
また、第5変形例として、前記実施形態における画像処理装置は、レーザプリンタにて画像を再生表示するものとして処理を行うようにしたが、本発明はこれに限定されるものでなく、紙などの印刷媒体に、インクを吐出して印刷する方式のプリンタや、インクを熱転写して印刷する方式のプリンタなどといった種々のプリンタのほか、電子写真あるいはディスプレイなどにて画像を再生表示するものとして処理を行うようにしてもよい。
また、第5変形例として、前記実施形態における画像処理装置は、レーザプリンタにて画像を再生表示するものとして処理を行うようにしたが、本発明はこれに限定されるものでなく、紙などの印刷媒体に、インクを吐出して印刷する方式のプリンタや、インクを熱転写して印刷する方式のプリンタなどといった種々のプリンタのほか、電子写真あるいはディスプレイなどにて画像を再生表示するものとして処理を行うようにしてもよい。
「第6変形例」
また、前記実施形態では、画像処理装置20は画像入力装置10と画像出力装置30とから独立した形態であるものとしたが、プリンタやディスプレイなどの画像出力装置30に組み込まれる形態としてもよいし、画像入力装置10に組み込まれるものとしてもよい。あるいは、プリンタやディスプレイなどの画像出力装置が組み込まれたコピー機やコンピュータ機器、ワープロ、ファックス、携帯電話など種々の電子機器に、前記実施形態における画像処理装置が組み込まれて構成されるようにしてもよい。
また、前記実施形態では、画像処理装置20は画像入力装置10と画像出力装置30とから独立した形態であるものとしたが、プリンタやディスプレイなどの画像出力装置30に組み込まれる形態としてもよいし、画像入力装置10に組み込まれるものとしてもよい。あるいは、プリンタやディスプレイなどの画像出力装置が組み込まれたコピー機やコンピュータ機器、ワープロ、ファックス、携帯電話など種々の電子機器に、前記実施形態における画像処理装置が組み込まれて構成されるようにしてもよい。
10…画像入力装置、11…アプリケーション部、12…ラスタライズ部、20…画像処理装置、21…色変換部、22…ハーフトーン処理部、25…入出力I/F、26…CPU、27…RAM、28…ROM、29…ハードディスク、30…画像出力装置、31…パルス幅変調部、35…印刷エンジン、36…レーザドライバ、37…レーザダオード(LD)、CL…セル、CL1…セル、CL2…セル、GC…重心、GC2…重心、MG…未処理画素、271…入力バッファ、271Ca…シアン入力バッファ、271Ma…マゼンタ入力バッファ、271Mb…マゼンタ入力バッファ、272…ワーキングメモリ、273…出力バッファ、273Ca…シアン出力バッファ、273Cb…シアン出力バッファ、273Cc…シアン出力バッファ、273Ma…マゼンタ出力バッファ、DT…CMYの色相データ、DR…所定の階調データ、SH…閾値。
Claims (30)
- 画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、
前記色相データのうち第1の色相データを階調変換する第1の階調変換部と、
前記色相データのうち第2の色相データを階調変換する第2の階調変換部と、
前記第1の階調変換部が階調変換した前記所定の階調データと、前記第1の色相データとの差分データを算出する差分データ算出部と、
前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第2の色相データに加算して加算データを求めるデータ加算部とを備え、
前記第2の階調変換部は、前記加算データを前記第2の色相データとして前記所定の階調データに階調変換することを特徴とする画像処理装置。 - 請求項1に記載の画像処理装置であって、
前記データ加算部は、前記第1の色相データに応じて出力されるドットと前記第2の色相データに応じて出力されるドットとの明度比によって特定されるフィルタ特性を有した前記所定のフィルタを用いることを特徴とする画像処理装置。 - 請求項1または2に記載の画像処理装置であって、
前記第2の階調変換部は、誤差拡散の手法を用いて前記第2の色相データを階調変換することを特徴とする画像処理装置。 - 請求項1または2に記載の画像処理装置であって、
前記第2の階調変換部は、
画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、
順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部と、
を備えた画像処理装置。 - 請求項1または2に記載の画像処理装置であって、
前記第2の階調変換部は、
画素選択のための第1の基準点に基づいて、画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第2の基準点を決定する基準点決定部と、
前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
前記画素群生成部は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。 - 請求項4または5に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第2の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。 - 請求項5または6に記載の画像処理装置であって、
前記画素群生成部は、前記第1の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することを特徴とする画像処理装置。 - 請求項5ないし7のいずれか一項に記載の画像処理装置であって、
前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第2の基準点として決定することを特徴とする画像処理装置。 - 請求項5ないし8のいずれか一項に記載の画像処理装置であって、
前記第1の基準点は、前記画素群における画素の位置と、該画素の前記第2の色相データの階調値とから算出した重心位置であることを特徴とする画像処理装置。 - 請求項1ないし9のいずれか一項に記載の画像処理装置であって、
前記第1の階調変換部は
画素選択のための第3の基準点に基づいて、画素ごとの前記第1の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第4の基準点を決定する基準点決定部と、
前記決定された第4の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
前記画素群生成部は、前記第3の基準点を更新し、当該第3の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第1の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第4の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。 - 請求項10に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第1の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。 - 請求項10または11に記載の画像処理装置であって、
前記データ加算部が用いる前記所定のフィルタは、前記第1の階調変換部が生成する画素群内の画素数に基づいて特定されるフィルタ特性を有することを特徴とする画像処理装置。 - 画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、
前記色相データのうち第1の色相データを階調変換する第1の階調変換工程と、
前記色相データのうち第2の色相データを階調変換する第2の階調変換工程と、
前記第1の階調変換工程によって階調変換した前記所定の階調データと、前記第1の色相データとの差分データを算出する差分データ算出工程と、
前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第2の色相データに加算して加算データを求めるデータ加算工程とを備え、
前記第2の階調変換工程は、
画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、
前記生成された画素群について第2の基準点を決定する基準点決定工程と、
前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、
前記画素群生成工程は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与工程は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与する
ことを特徴とする画像処理方法。 - 画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、
前記色相データのうち第1の色相データを階調変換する第1の階調変換処理と、
前記色相データのうち第2の色相データを階調変換する第2の階調変換処理と、
前記第1の階調変換処理によって階調変換した前記所定の階調データと、前記第1の色相データとの差分データを算出する差分データ算出処理と、
前記算出された差分データを、所定のフィルタを用いてデータ処理を行ったのち、前記第2の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、
前記第2の階調変換処理は、
画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、
前記生成された画素群について第2の基準点を決定する基準点決定処理と、
前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、
前記画素群生成処理は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与処理は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与する
ことを特徴とするプログラム。 - 請求項14に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
- 画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理装置であって、
前記色相データのうち第1の色相データを階調変換する第1の階調変換部と、
前記色相データのうち第2の色相データを階調変換する第2の階調変換部と、
前記第1の階調変換部が階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換部と、
変換された前記分散データと前記第1の色相データとの差分データを算出する差分データ算出部と、
前記算出された差分データを、前記第2の色相データに加算して加算データを求めるデータ加算部とを備え、
前記第2の階調変換部は、前記加算データを前記第2の色相データとして前記所定の階調データに階調変換することを特徴とする画像処理装置。 - 請求項16に記載の画像処理装置であって、
前記第2の階調変換部は、誤差拡散の手法を用いて前記第2の色相データを階調変換することを特徴とする画像処理装置。 - 請求項16に記載の画像処理装置であって、
前記第2の階調変換部は、
画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を選択して画素群を順次生成する画素群生成部と、
順次生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部と、
をさらに備えた画像処理装置。 - 請求項16に記載の画像処理装置であって、
前記第2の階調変換部は、
画素選択のための第1の基準点に基づいて、画素ごとの前記第2の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第2の基準点を決定する基準点決定部と、
前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とをさらに備え、
前記画素群生成部は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。 - 請求項18または19に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第2の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。 - 請求項19または20に記載の画像処理装置であって、
前記画素群生成部は、前記第1の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することを特徴とする画像処理装置。 - 請求項19ないし21のいずれか一項に記載の画像処理装置であって、
前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第2の基準点として決定することを特徴とする画像処理装置。 - 請求項19ないし22のいずれか一項に記載の画像処理装置であって、
前記第1の基準点は、前記画素群における画素の位置と、該画素の前記第2の色相データの階調値とから算出した重心位置であることを特徴とする画像処理装置。 - 請求項16ないし23のいずれか一項に記載の画像処理装置であって、
前記第1の階調変換部は
画素選択のための第3の基準点に基づいて、画素ごとの前記第1の色相データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
前記生成された画素群について第4の基準点を決定する基準点決定部と、
前記決定された第4の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
前記画素群生成部は、前記第3の基準点を更新し、当該第3の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与部は前記生成された画素群における前記第1の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第4の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。 - 請求項24に記載の画像処理装置であって、
前記画素群生成部は、前記画素群における画素ごとの前記第1の色相データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。 - 請求項24または25に記載の画像処理装置であって、
前記ドットプロファイル変換部は、前記第1の階調変換部が生成した画素群ごとに、該画素群内の画素数に基づいて特定される前記所定のプロファイルに従って、前記所定の階調データを分散することを特徴とする画像処理装置。 - 画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理方法であって、
前記色相データのうち第1の色相データを階調変換する第1の階調変換工程と、
前記色相データのうち第2の色相データを階調変換する第2の階調変換工程と、
前記第1の階調変換工程によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換工程と、
変換された前記分散データと前記第1の色相データとの差分データを算出する差分データ算出工程と、
前記算出された差分データを、前記第2の色相データに加算して加算データを求めるデータ加算工程とを備え、
前記第2の階調変換工程は、
画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、
前記生成された画素群について第2の基準点を決定する基準点決定工程と、
前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とをさらに備え、
前記画素群生成工程は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与工程は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理方法。 - 画素ごとに、多階調値で表された性質の異なる少なくとも2種類以上の色相データを、ドットを出力するための所定の階調データに階調変換する画像処理プログラムであって、
前記色相データのうち第1の色相データを階調変換する第1の階調変換処理と、
前記色相データのうち第2の色相データを階調変換する第2の階調変換処理と、
前記第1の階調変換処理によって階調変換した前記所定の階調データを、所定のプロファイルに従って、ドットが出力される画素を基準点とする周辺画素に分散した分散データに変換するドットプロファイル変換処理と、
変換された前記分散データと前記第1の色相データとの差分データを算出する差分データ算出処理と、
前記算出された差分データを、前記第2の色相データに加算して加算データを求めるデータ加算処理とをコンピュータに実行させ、
前記第2の階調変換処理は、
画素選択のための第1の基準点に基づいて、画素ごとの前記加算データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成処理と、
前記生成された画素群について第2の基準点を決定する基準点決定処理と、
前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与処理とをさらに含み、
前記画素群生成処理は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
前記データ付与処理は前記生成された画素群における前記第2の色相データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とするプログラム。 - 請求項28に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
- 請求項1ないし29のいずれか一項に記載の画像処理装置、画像処理方法、画像処理プログラムないし記録媒体であって、
前記性質の異なる少なくとも2種類以上の色相データは、それぞれ
(1)ドットの大きさが異なる出力ドットに対応した色相データ、
(2)単位面積当たりの濃度が異なる出力ドットに対応した色相データ、
(3)色相が異なる出力ドットに対応した色相データ、
(4)光反射率の異なる出力ドットに対応した色相データ、
のうち少なくとも1つを満たす色相データであることを特徴とする画像処理装置、画像処理方法、画像処理プログラムないし記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004156318A JP2005341142A (ja) | 2004-05-26 | 2004-05-26 | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004156318A JP2005341142A (ja) | 2004-05-26 | 2004-05-26 | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005341142A true JP2005341142A (ja) | 2005-12-08 |
Family
ID=35494205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004156318A Withdrawn JP2005341142A (ja) | 2004-05-26 | 2004-05-26 | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005341142A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007333889A (ja) * | 2006-06-13 | 2007-12-27 | Canon Inc | 画像形成装置および画像形成方法 |
JP2011109636A (ja) * | 2009-10-21 | 2011-06-02 | Kyocera Mita Corp | 電子機器及び画像処理プログラム |
-
2004
- 2004-05-26 JP JP2004156318A patent/JP2005341142A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007333889A (ja) * | 2006-06-13 | 2007-12-27 | Canon Inc | 画像形成装置および画像形成方法 |
JP2011109636A (ja) * | 2009-10-21 | 2011-06-02 | Kyocera Mita Corp | 電子機器及び画像処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4165570B2 (ja) | 画像処理装置,画像処理方法,及び画像処理プログラム | |
JP2000333010A (ja) | 階調依存型誤差拡散ハーフトーン化方法 | |
JP4605782B2 (ja) | デュアルハーフトーンを用いるレーザプリント装置 | |
JP6639247B2 (ja) | 画像処理装置及び画像処理方法、プログラム | |
JP7005314B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
US7474441B2 (en) | Image processing device, method, program and recording medium recording the program | |
US7315398B2 (en) | Multi-level error diffusion with color image data | |
JP4742871B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2005341142A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
US10404892B2 (en) | Image forming apparatus for outputting a halftone image and image forming method | |
JP5678501B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2020082694A (ja) | ディザマトリクスの生成装置、生成方法、当該ディザマトリクスを用いた画像処理装置、画像処理方法、及びプログラム | |
JP2012165192A (ja) | 印刷装置、および、印刷方法 | |
JP4337670B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP6907034B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2007194688A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2005117642A (ja) | ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム | |
JP2005318402A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2005311414A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2006005634A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2006025217A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP3896982B2 (ja) | 画像処理装置、方法、プログラムおよび該プログラムを記録した記録媒体 | |
JP2001069349A (ja) | 画像処理方法、画像処理装置および記録媒体 | |
JP4492723B2 (ja) | 画像処理装置,画像処理方法,及び画像処理プログラム | |
JP3928576B2 (ja) | 画像処理装置、方法、プログラムおよび該プログラムを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070807 |