JP2005117642A - ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム - Google Patents

ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP2005117642A
JP2005117642A JP2004267048A JP2004267048A JP2005117642A JP 2005117642 A JP2005117642 A JP 2005117642A JP 2004267048 A JP2004267048 A JP 2004267048A JP 2004267048 A JP2004267048 A JP 2004267048A JP 2005117642 A JP2005117642 A JP 2005117642A
Authority
JP
Japan
Prior art keywords
pixel
color
value
processing
dot
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.)
Pending
Application number
JP2004267048A
Other languages
English (en)
Inventor
Nobuhiro Karido
信宏 狩戸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004267048A priority Critical patent/JP2005117642A/ja
Publication of JP2005117642A publication Critical patent/JP2005117642A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】色成分毎ハーフトーン処理を違え、画質劣化せず高速化する画像処理装置・方法を提供。又色成分毎の明度に応じ最適ドット間距離を保つように制御し局所的明度偏りを小くし粒状性を改善、視覚的快適な印刷出力の画像処理装置・方法を提供。
【解決手段】CMYK各色毎所定の階調値の入力データを入力し、最も目立ちにくい色のYに分散ディザ処理か多値ディザ処理か誤差拡散処理を行う。この時Yからその他の色に対し明度に応じた演算値を加算し、Yへのこれら処理でドット生成する周辺画素位置から加算した分減算し、その後各色に対しCC法で処理するが、ドット密度の最も低い色から順次行う。このCC法処理でも、それ以外の処理を行っていない色に対し明度に応じた演算値を加算し、加算した分ドット生成する位置周辺の階調値を減算する。減算後の色に対しCC法で処理し、残りの色に未処理画素がなくなるまで処理を繰り返す。
【選択図】図3

Description

本発明は、カラープリンタなどの画像処理装置における階調画像データのハーフトーン処理に関する。詳しくは、カラーを表現する色成分のうち、最も目立ちにくい色成分に対して濃度重心法を利用したハーフトーン処理よりも軽い処理のハーフトーン処理(例えば、ディザ法や誤差拡散法)を用い、それ以外の色成分に対しては濃度重心を利用した方法を用いたハーフトーン処理に関する。
従来から、プリンタなどの画像出力装置は、画像出力装置の出力する色に対応した各色ごとの多値の階調値を有する階調データに対して、画像出力装置が出力可能なドットの有無を表すデータに変換処理して印刷用紙に印刷を行うようになされている。一般に、この変換処理はハーフトーン処理と称されている。
かかるハーフトーン処理の方法としては、所定の閾値が格納された閾値マトリックスを利用して、入力階調値が閾値よりも大きいか小さいかにより2値化する分散ディザ法や、ハーフトーンパターン(インデックステーブルとガンマテーブル)を用いて各インデックス位置において入力値に対応したパルス幅データを生成する多値ディザ法がある(例えば特許文献1)。同様に閾値を設定しその閾値よりも大きいか小さいかにより2値化するとともにその誤差分をまわりの画素の階調値に加算して処理を進める誤差拡散法もある。
さらに、入力画像の各画素の階調値の合計が所定の閾値になるまでセルを構成する画素を選択し、セルの中心位置にドットを生成させるようにしたハーフトーン処理も知られている(例えば、特許文献2)。
特開2001−245167号公報 特開平11−27528号公報
しかしながら、カラー画像を出力する場合に、異なる色ごとにそれぞれ別々の明度を有しており、各色すべてに対して同じハーフトーン処理を行うと印刷用紙上で目立ち易い色のドットの近傍に他の色のドットが発生する可能性がある。このような場合に、他の色の成分は視覚的に知覚されにくい一方で、目立ち易い色の成分はより目立ち易いものとなっていた。また、互いに異なる色成分が同じ位置にドットが打たれてしまうことで粒状的なドットが発生することもある。かかるドット出力は、画質を劣化させ視覚的に不快な印刷出力となっていた。
また、上述した特開平11−27528号公報においても、セルを構成する画素の選択を所定のテーブルを用いて行っているが、テーブル内で左側に存在する画素は既に処理済みの場合が多く、結果的に生成されるセルが歪んだ形となってしまう。かかる場合に、セルの中心にドットを生成させるとある部分では隣のドットを重なって形成されてしまうことになる。例えば、ブラックとイエローに対してそれぞれかかる処理を行うと、ある部分ではドットが重なったり近寄ったりするなど、ブラックのドットのみ目立ち視覚的に不快な印刷出力となっていた。さらに、かかる処理は、ドットを生成するためにセルを構成する画素の中心位置を演算する必要があり、このため大量の印刷を行いたい場合に印刷に時間がかかるという問題点があった。
そこで、本発明の目的は、色成分ごとハーフトーン処理を異なるようにすることで、画質の劣化を最小限に抑え高速化を図る画像処理装置や画像処理方法を提供することを目的
とするものである。さらに、本発明の他の目的は、色成分ごとの明度に応じてドット間距離を最適に保つよう制御することで、局所的な明度の偏りを小さくして粒状性を改善し、視覚的に快適な印刷出力を得る画像処理装置や画像処理方法を提供することを目的とするものである。
上記目的を達成するために本発明は、色毎の階調データを、前記色毎に出力画像を構成するドットに対応する出力画像データに変換するハーフトーン処理方法であって、少なくとも1つの色の前記階調データについて、各画素の階調値の総和が閾値以上となるまで新たな画素を次々と選択して画素群を形成し、前記画素群のうち、所定の画素に対して前記ドットに対応するデータを付与する第1のハーフトーン処理を行い、残りの色の階調データについては、前記第1のハーフトーン処理とは異なる第2のハーフトーン処理を行うことを特徴としている。これにより、例えば、画質劣化を最小限に抑え、ハーフトーン処理の高速化を図ることができる。また、ドット間距離が一定に保たれた快適な印刷出力も得ることができる。
さらに、本発明は上記ハーフトーン処理方法において、前記第2の処理が、ディザ処理もしくは誤差拡散処理であり、前記第2の処理によって処理される色はイエローである、ことを特徴としている。これにより、例えば、視覚上最も目立ちにくい色成分であるイエローは、CC法よりも高速な方法で処理を行い、それ以外の色成分にCC法による処理を行うことで、画質の劣化を最小限に抑え、処理の高速化を図ることができる。
さらに、本発明は上記ハーフトーン処理方法において、第1の処理によって処理されるカラーデータはブラックである、ことを特徴としている。これにより、例えば最も目立つ色成分であるブラックにCC法による処理を行いそれ以外の色成分にCC法とは異なる処理を行うようにしたので、画質劣化を最小限に抑え、その処理の高速化をさらに図ることができる。
また、上記目的を達成するために本発明は、画素ごとにN(Nは整数)種類以上のレベル値を有する、それぞれ色相の異なる複数のカラーデータに対して、M種類(Mは整数)のレベル値を有するデータを出力する画像処理装置において、前記複数のカラーデータの少なくとも1つのカラーデータに対して、画素選択のための第1の基準点に基づいて画素ごとの前記N種類のレベル値の総和が閾値以上となるまで画素を選択して画素群を生成し、前記生成した画素群から第2の基準点を決定し、決定した前記第2の基準点に位置する画素に前記M種類のレベル値を付与し、前記画素群を生成する画素は更新された前記第1の基準点に基づいて選択する第1の処理手段と、前記複数のカラーデータのうち残りのカラーデータに対して、前記M種類のレベル値を有するデータに変換する第2の処理手段と、を備えることを特徴としている。
これにより、例えば、画質劣化を最小限に抑え、ハーフトーン処理の高速化を図る画像処理装置を提供することができる。また、ドット間距離が最適に保たれた快適な印刷出力を得ることのできる画像処理装置を提供することができる。
さらに、上記目的を達成するために本発明は、画素ごとにN(Nは整数)種類以上のレベル値を有する、それぞれ色相の異なる複数のカラーデータに対して、M種類(Mは整数)のレベル値を有するデータを出力する画像処理方法において、前記複数のカラーデータの少なくとも1つのカラーデータに対して、画素選択のための第1の基準点に基づいて画素ごとの前記N種類のレベル値の総和が閾値以上となるまで画素を選択して画素群を生成し、前記生成した画素群から第2の基準点を決定し、決定した前記第2の基準点に位置する画素に前記M種類のレベル値を付与し、前記画素群を生成する画素の選択は更新された前記第1の基準点に基づいて選択する第1の処理工程と、前記複数のカラーデータのうち残りのカラーデータに対して、前記M種類のレベル値を有するデータに変換する第2の処理工程と、を備えることを特徴としている。
これにより、例えば、画質劣化を最小限に抑え、ハーフトーン処理の高速化を図る画像処理方法を提供することができる。また、ドット間距離が最適に保たれた快適な印刷出力を得ることのできる画像処理方法を提供することができる。
さらに、上記目的を達成するために本発明は、画素ごとにN(Nは整数)種類以上のレベル値を有する、それぞれ色相の異なる複数のカラーデータに対して、M種類(Mは整数)のレベル値を有するデータを出力する処理をコンピュータに実行させるためのプログラムにおいて、前記複数のカラーデータのうち少なくとも1つのカラーデータに対して、画素選択のための第1の基準点に基づいて画素ごとの前記N種類のレベル値の総和が閾値以上となるまで画素を選択して画素群を生成し、前記生成した画素群から第2の基準点を決定し、決定した前記第2の基準点に位置する画素に前記M種類のレベル値を付与し、前記画素群を生成する画素の選択は更新された前記第1の基準点に基づいて選択する第1の処理と、前記複数のカラーデータのうち残りのカラーデータに対して、前記M種類のレベル値を有するデータに変換する第2の処理と、をコンピュータに実行させることを特徴とする。
これにより、例えば、画質劣化を最小限に抑え、ハーフトーン処理の高速化を図るプログラムを提供することができる。また、ドット間距離が最適に保たれた快適な印刷出力を得ることのできるプログラムを提供することができる。
以下、図面を参照して本発明を実施するための最良の形態を説明する。図1は、本発明が適用されるシステム全体の構成を示す図である。全体としてホストコンピュータ10と、画像出力装置20とから構成される。
ホストコンピュータ10は、アプリケーション部11とラスタライズ部12とから構成される。アプリケーション部11では、文字データ、図形データ、ビットマップデータ等の印刷対象のデータが生成される。例えば、ホストコンピュータ10でワードプロセッサや図形ツールなどのアプリケーションプログラムを使用してキーボード等の操作により文字データや図形データなどが生成される。生成されたこれらのデータは、ラスタライズ部12へ出力される。
ラスタライズ部12では、アプリケーション部11から出力された印刷対象のデータを画素ごとに8ビットの階調データに変換する。本実施例では、R(レッド)、G(グリーン)、B(ブルー)の色毎に各画素8ビットの階調データが出力される。したがって、各画素ごと0から255までの値(レベル値)を有することになる。ラスタライズ部12における階調データの生成は、実際にはホストコンピュータ10に実装されたドライバによって処理が行われる。ラスタライズ部12から出力される階調データは、画像出力装置20に出力される。
画像出力装置20は、全体として画像処理部21と印刷エンジン22とから構成される。画像処理部21では、ホストコンピュータ10から出力された階調データに対して色変換、ハーフトーン処理等を行い、処理後のデータが印刷エンジン22に出力され、この印刷エンジン22にて実際に印刷用紙等の記録媒体への印刷が行われる。
画像処理部21は、色変換部211と、ハーフトーン処理部212と、パルス幅変換部213とから構成される。色変換部211は、ホストコンピュータ10から出力されるRGB階調画像データを受け取り、RGBからCMYKへの色変換を行う。ここで、Cはシアン、Mはマゼンダ、Yはイエロー、Kはブラックを示す。CMYKの階調データは、各画素につき、各色8ビットづつの階調データであり、各色ごと最大で256階調を有する。
ハーフトーン処理部212は、色変換部211から出力されるCMYKの階調データに対して、2値以上の多値の値(レベル値)に変換し、量子化データを出力する。ハーフトーン処理としては、分散ディザ処理、多値ディザ処理、さらに誤差拡散処理、複数の画素からなるセルを構成してその重心にドットを生成させる濃度重心法を利用した処理(Circular Cell法、以下CC法)がある。本発明による処理は、分散ディザ処理とCC法による処理の組み合わせ、多値ディザ処理とCC法による処理の組み合わせ、さらに誤差拡散処理とCC法による処理の組み合わせ、の3種類の処理を行うものとする。各処理の具体的な内容は後述する。
パルス幅変調部213は、ハーフトーン処理部212から出力された量子化データが入力され、この量子化データに対してドットごとにレーザ駆動パルス有り又は無し等の駆動データを生成する。生成した駆動データは、印刷エンジン22に出力される。
印刷エンジン22は、レーザドライバ221とレーザーダイオード(LD)222とから構成される。レーザドライバ221は、入力された駆動データから、駆動パルスあり又はなし等を示す制御データを生成し、レーザーダイオード222に出力する。レーザーダイオード222は、レーザドライバ221から出力された制御データに基づいて駆動され、さらに図示しない感光ドラムや転写ベルトが駆動されて、実際に印刷用紙等の記録媒体にホストコンピュータ10からのデータが印刷されることになる。
次に図2を参照して、画像出力装置20の具体的構成について説明する。ここで、図1の画像出力装置20のうち、色変換処理部211、ハーフトーン処理部212及びパルス幅変調部213は、図2におけるCPU24、ROM25、及びRAM26に対応する。
画像出力装置20は、全体として、入力インターフェース(I/F)23、CPU24、ROM25、RAM26、印刷エンジン22とから構成され、バスを介して互いに接続されている。入力I/F23は、ホストコンピュータ10と画像出力装置20とのインターフェースの役割を果たす。入力I/F23には、所定の伝送方式により伝送された、ホストコンピュータ20からのRGB階調データが入力され、画像出力装置20で処理できるデータに変換される。RGB階調データは、一旦RAM26に格納される。
CPU24は、バスを介して入力I/F23、ROM25、RAM26、印刷エンジン22と接続され、ROM25に格納されたプログラムを読み出して、色変換、ハーフトー
ン処理等の各種処理を行う。その詳細は、後述する。RAM26は、CPU24で実行される各処理のワーキングメモリとして役割を果たし、処理後の各種データが格納される。そして、印刷エンジン22のレーザドライバ221を駆動させるための駆動データも格納される。RAM26の具体的構成等も後述する。
印刷エンジン22は、図1の印刷エンジンと同様の構成で、RAM26に格納された駆動データがCPU24の制御により入力されて、上述した印刷処理が行われることになる。
次に、以上のように構成された画像出力装置20における処理の動作について説明する。ホストコンピュータ10からのRGB階調データが画像出力装置20の色変換部211にまず入力される。色変換部211では、色補正テーブルや演算式などを用いて、RGB階調データをCMYKの階調データに変換する。変換後のデータはハーフトーン処理部212に入力されて、2値あるいは多値の量子化データに変換して出力される。ハーフトーン処理部212から出力された量子化データは、パルス幅変調部213に入力される。パルス幅変調部213に入力された量子化データは、レーザ駆動パルスを生成するための駆動データに変換されて印刷エンジン22に出力される。そして、印刷エンジン22でこの駆動データをもとに印刷処理が行われる。
上述したように本実施例におけるハーフトーン処理は、CC法とディザ法とを組み合わせた処理、又はCC法と誤差拡散法とを組み合わせた処理である。CC法による処理では、一定の大きさのセルを構成してその重心又は中心位置にドットを生成させるようにしているためドットの分散性が向上する。しかし、重心等の演算を行うため処理に時間がかかる。一方、ディザ法や誤差拡散法は、ドットの分散性という点ではCC法に劣り、そのため画質が十分ではない。しかし、閾値やテーブルの比較により量子化データを得るようにしているため、CC法と比較し高速化を図ることができる。他方、CMYKの各色のドットは、色相が異なる(明度が異なる)ため、印刷用紙上で例えばイエローのドットは視覚的に目立ちにくく、ブラックのドットは逆に目立ち易い。
そこで、目立ちにくい色成分に対しては、分散ディザ処理や多値ディザ処理、誤差拡散処理を行いハーフトーン処理の高速化を図り、目立ち易い色成分に対してはCC法による処理を行い画質の向上を図るようにしたのである。
以下、ハーフトーン処理の詳細について説明するが、まず実施例1として分散ディザ法とCC法の組み合わせ、実施例2として多値ディザ法とCC法の組み合わせ、実施例3として誤差拡散法とCC法の組み合わせ、の各処理についてそれぞれ説明することにする。
[分散ディザ法とCC法とを用いたハーフトーン処理]
まず具体的な処理を説明する前に、CC法についての概要を説明する。CC法によるハーフトーン処理は、まず初期画素を選択し、所定の閾値に達するまで初期画素周辺の未処理画素を選択して、複数画素からなるセルを構成する。セルを構成する未処理画素選択の際、それまで構成したセルの重心位置から最も近い画素を選択する。そして、閾値に達するとそのセルの重心位置に位置する画素にドット生成を示す値(例えば"255")を割り当て、それ以外の画素はドットの生成を行わないことを示す値(例えば"0")を割り当てる。CC法は、以上の処理を入力画像の全てのデータに対して行うことで、量子化されたデータを得るのである。
上述した特開平11−27528では、セルに取り込むべき未処理画素の選択にテーブルを利用して予め決められた位置の画素を選択するようにしている。一方、CC法は重心
位置を利用してセルに取り込むべき未処理画素を選択するようにしているため、特開平11−27528と比較して、セルが円状に成長し、ドット間距離を一定に保つことができ、ドットの分散性を向上させて視覚的に快適な印刷出力を得ることができる。
以下、分散ディザ法とCC法の組み合わせによる本発明のハーフトーン処理について図面を参照しながら詳細に説明する。ここで図3乃至図7は処理の動作を示すフローチャートであり、図8乃至図17はRAM26に格納された階調データの例を示すものである。以下、フローチャートに沿って説明することにする。
図3は、CC法と分散ディザ法によるハーフトーン処理全体のフローチャートを示すものである。まず、図3に示すように、CPU24は本処理を実行するためのプログラムをROM25から読み出すことによって、処理が開始されることになる(ステップS10)。次いでCPU24は、目立ちにくい色成分であるY成分に対して分散ディザ法による処理を行う(ステップS11)。ここで、色変換後のC、M、Y、Kのうち、白成分の明度を100として場合、シアン(C)の明度は45.3、マゼンダ(M)の明度は44.3、イエロー(Y)の明度は84.6、ブラック(K)の明度は22.0を有していることが知られている。もちろん、これらの値は、使用される画像出力装置20の種類によって異なる値を有する。このうちイエローが最も明度が高く白成分との差が低く、白い印刷用紙に対して目立ちにくい色成分といえる。一方、ブラックは白成分に対して明度差が大きく、目立ちやすい色成分である。よって、本実施例においては、イエロー成分に対して分散ディザによる処理を行い、それ以外の色成分に対してCC法による処理を行う。画質劣化を最小限に抑え、処理の高速化を図るためである。
分散ディザ法による処理の具体例を図8乃至図10(a)を参照して説明する。上述したように色変換後のC、M、Y、Kの各色成分の諧調データはRAM26に格納される。ここで図8(a)に示すように、RAM26にはシアン入力データ格納領域261a、マゼンダ入力データ格納領域261b、イエロー入力データ格納領域261c、ブラック入力データ格納領域261dを有し、各色成分の階調データが各領域261a〜261dにCPU24の制御により格納される。図8(a)に示す例では、各領域261a〜261dは6行6列で構成されているが、これは説明を容易にするためであって、例えば画像1フレーム分のデータを格納できる構成でもよい。また、各座標位置に入力される階調値は、全体画像の画素位置に対応するもので、例えばシアン入力データ格納領域261aで(0,0)の位置は、全体画像の(0,0)に位置する画素に対応するものである。図8(a)に示すようにシアンの階調値は各画素位置とも"35"、マゼンダの階調値は"40"、イエローは"45"、ブラックは"30"となっている。
分散ディザ法による処理は、マトリックス内の各位置に格納された閾値と各色の階調値とを比較し、閾値の方が階調値よりも大きな値のときはドットを生成しないことを示す"0"、逆に階調値の方が大きいとドット生成を示す"255"を与えることで量子化データを得る。このマトリックス251の例を図8(b)に示す。このマトリックス251は、例えばROM25に格納され、処理の際にCPU24が適宜ROM25からこのマトリックス251内の値を読み出すことで処理が行われることになる。具体的には以下のようになる。
すなわち、図8(c)に示すようにまずイエロー入力データ格納領域261cの(0,0)の画素位置に格納された階調値と、マトリックス251内の(0,0)の位置に格納された閾値とを比較する。階調値は"45"で、閾値である"200"より低い値であるから、(0,0)の画素位置は、ドットを生成しないことを示す"0"を割り当てることになる。このドット生成の有無を示す値は、同図に示すようにRAM26内に設けられたイエロー出力データ格納領域262cの(0,0)の位置にCPU24の制御により格納
される(図8(c)参照)。この領域262cも、入力データ格納領域261a〜dと同様に各画素位置がホストコンピュータ10で生成された画像データの画素位置に対応するものであり、さらに図に示す6行6列の構成のみならず画像1フレーム等それ以外の構成でもよい。なお、後述するが、他の色成分に対してもRAM26内に出力データ領域262a、262b、262dを有し、同様の構成を有する。
次いでCPU24は、イエロー入力データ領域261cの(1,0)の位置にある階調値"45"とマトリックス251内の(1,0)の閾値"225"とを比較し、閾値の方が大きい値なので、"0"をイエロー出力データ領域262cの(1,0)の位置に格納する(図9(a)参照)。同様にCPU24は、入力データ領域261cの(2,0)の階調値"45"と、マトリックス251内の当該位置にある閾値"75"とを比較し、"0"を出力データ領域262cの当該位置に格納する(図9(b)参照)。
次いでCPU24は、入力データ領域261cの(3,0)の階調値と、マトリックス251の(0,0)の閾値"200"とを比較し、ドットを生成しないことを示す"0"を、出力データ領域262cの(3,0)の位置に格納する(図9(c)参照)。以下、各階調値と各閾値とを比較し処理を進めることになる。その結果、図8(a)に示すY成分の各階調値に対して、図10(a)に示すY成分の量子化データを得る。この図に示すように、4つの画素位置((2,1)、(5,1)、(2,4)、(5,4)の位置)で、ドット生成を示す"255"が格納され、Yドットが生成されることになる。
図3のフローチャートに戻り、次いでCPU24はY成分に対する分散ディザ処理の結果、Yドットが生成されるか否か判断する(ステップS12)。Yドットが生成されるか否かは、例えばCPU24がRAM26内のイエロー出力データ格納領域262cを探索して、ドット生成を示す"255"が格納されているか否かで判断することができる。図10(a)の例では、4つの画素位置でドット生成を示す値が格納されているので、本ステップでは"YES"が選択される。
ステップS12で"YES"が選択されると、CPU24は、Y成分の階調値から演算した明度に応じた演算値をその他の色成分の階調値に加算する処理を行う(ステップS13)。このように明度に応じた演算値を他の色成分に加算しているのは、より目立ちやすい色のドット周囲には、より広い空白領域を設けて、単位面積あたりの明度をできるだけ一定に保ち、かつ粒状性を改善するためである。すなわち、目立ちやすいドットの周辺には他の色のドットが打たれないよう、より大きな値を他の色の階調値に加算し、その後減算処理を行って、より大きな空白領域を設けるようにする必要がある。逆に目立ちにくいドットの周囲にそれ以外の色成分のドットが打たれるよう、より小さな値を加算しその後減算処理を行って、空白領域を狭く設ける必要がある。その結果、単位面積あたりの明度が均一に保たれ、視覚的に快適な印刷出力が得られるのである。したがって、選択されたY成分の画素の階調値をそのまま他の色の階調値に加算するのではなく、各色成分の明度を考慮した値を加算する。具体的には、以下の演算式を用いる。
(式1)
加算値=選択画素の階調値×{(100−加算元の色の明度)/(100−加算
先の色の明度)}
この(式1)に示すように、明度が小さい色成分(目立ちやすい色)から、明度が大きい色成分(目立ちにくい色)に階調値を加算する場合は、そのまま階調値を加算するよりも大きな値が加算され、逆の場合はより小さな値が加算されることになる。また、明度がほぼ同等な色成分どうしで加算する場合は、加算元の階調値がそのまま加算先に加算されることになる。
ここで、各色成分の明度は、シアンを"45"、マゼンダを"45"、イエローを"80"、ブラックを"20"として演算を行うものとする。上述にも明度の値の例を示したが、ここでは演算を簡単にするためにこのような値を設定している。図8(a)の例では、イエローからシアンに、45×(100−80)/(100−45)=45×20/55=16を加算する。マゼンダには、45×(100−80)/(100−45)=16を加算し、ブラックには、45×(100−80)/(100−20)=11を加算することになる。加算後のシアン、マゼンダ、ブラックの階調値の例を図10(b)に示す。
図3に戻り、次いでCPU24はYドット周囲の減算処理を行う(ステップS14)。ステップS13で加算した値を減算する処理をCPU24が行うことになるが、加算した値をそのまま均等に減算するのではなく、ドットが発生する位置を中心に減算する処理を行う。このような加算、減算を行うことで、Y成分のドットが発生する位置と重なって他の色成分のドットが生成されることを防ぐことができ、ドットが重なることによる粒状的なドットの生成を抑えることができる。また、加算する際に明度に応じた演算値を他の色成分に加算して、その後減算を行っているため、Y成分のドットとそれ以外の色成分のドットについて単位面積あたりの明度が均一になるという効果を得る。
減算処理の具体的な処理の動作を図4のフローチャートに示し、RAM26に格納された各階調値の例を図11乃至図12に示す。図4に示すようにYドット周囲の減算処理(ステップS14)に移行すると、まずCPU24はYドットが発生する位置すべてに対して減算処理を行ったか否か判断する(ステップS141)。例えば、ドットが発生する位置をRAM26の所定の領域に格納し、処理が終了するごとにフラグを立てたり、出力データ格納領域262cを(0,0)から順番に探索し、すべての位置を探索したか否かで判断する。図11(a)の例では、まだすべてのドット生成位置で減算処理を行っていないので本ステップで"YES"が選択される。
ステップS141で"YES"が選択されるとCPU24は、Yドットに最も近いX色の画素を選択する(ステップS142)。ここでXは、Y成分以外の色成分の数を示し、初期値として"1"が設定される。図11(a)の例では、1色目(X=1)としてシアンが選択される。そして、Yドットは(2,1)の位置に発生するので、Yドットに最も近い位置としてYドットが発生する位置(2,1)そのものを選択するものとする(同図シアン入力データ格納領域261a参照)。最も近い位置を選択するのは、Yドット周辺に他の色成分のドットが生成されないようにして(ドットが重ならないようにして)、粒状的なドットの生成を抑え快適な印刷出力を得るためである。
次いでCPU24は、選択画素の階調値の合計が加算された総量を超えるか否か判断する(ステップS143)。ステップS13でイエローから各色成分に対して明度に応じた演算値を加算しているが、シアン、マゼンダに対しては各画素"16"を加算しているため、全体として16×36画素=576の演算値が加算されている。またブラックに対しては11×36画素=396の演算値が加算されている。この36画素で、イエローのドットは4つ存在するので、イエロー1ドットあたり、シアン、マゼンダは、576/4=144、ブラックは、396/4=99の階調値を加算したことになる。よって本ステップでは、ステップS142で選択した色成分がシアン、マゼンダのときは加算総量として"144"、ブラックは"99"として、選択画素の階調値の合計値と比較することで判断する。なお、RAM26内にはこの階調値の合計値を格納する合計値領域263を有し、CPU24の制御により適宜、ステップS142で選択した画素の階調値の合計値が格納されることになる。図11(a)の例では、選択した色成分はシアンなので加算総量は"144"となる。また、選択した画素は、(2,1)のみなので、その合計値は"51"となる。よって、階調値の合計値は加算総量を超えないので、本ステップで"NO"が選択され、ステップS144に移行することになる。
次いでCPU24は、ステップS144においてステップS142で選択した画素に"0"を格納する。図11(b)に示すように、シアン入力データ格納領域261cの画素位置(2,1)に"0"を格納することになる。なお、CPU24は選択した画素の階調値の合計を演算し、その値をワーキングメモリ270に格納する。
次いでCPU24は、減算対象の画素の階調値の合計が加算された総量に等しいか否か判断する(ステップS145)。合計値領域263に選択画素の階調値の合計が格納されるので、この値と加算総量値とを比較することで処理が行われる。なお、加算総量は、例えばRAM26の図示しないメモリ領域に格納されるものとし、CPU24が適宜この値を読み出すことで比較が行われる。図11(b)の例では、加算総量は"144"で、階調値の合計値"51"であるから、本ステップで"NO"が選択され、再びステップS142に移行することになる。
次いでCPU24は、再びステップS142においてYドットが生成した位置に最も近い1色目(X=1)の画素を選択する。最初の画素選択では、Yドットが発生する画素位置そのものを選択したので、そのまわりの画素を選択することになる。図11(c)に示すように、まわりの画素としてYドットが発生した画素位置の上下左右の4つの画素((2,0)、(1,1)、(3,1)、(2,2)の画素)を選択するものとする。もちろん、選択の方法は種々の方法が考えられる。例えば、最初のステップS142でドットが生成する画素の他に、さらにその位置の上下左右の画素を選択するようにしてもよいし、最初にドットが生成する画素位置を選択し、再び本ステップに移行したとき上下左右の4つの画素の他、斜め方向に隣接する4つの計8つの画素を選択することも考えられる。
次いでCPU24は、選択画素の階調値の合計値が加算総量を超えるか否か判断する(ステップS143)。図11(c)に示す例では、選択した4つの画素とドットが発生する画素の合計値は、51×4+51=255で、加算総量"144"を超えることになる。よって本ステップで"YES"が選択され、ステップS148に移行する。
CPU24は、ステップS148において減算すべき減算量を演算する。すなわち、選択画素の階調値の合計が加算総量と等しくなるように、直前のステップS142で選択した画素の階調値を減算する。上述の例では、加算総量は"144"で、すでにYドットが発生する画素位置の階調値を減算したので、加算総量と等しくなるには、"93"(=144−51)の階調値を減算すればよいことになる。選択画素数は4つなので等量に減算するよう、23、23、23、24づつ、選択した4つの画素から減算すればよいことになる。
次いでCPU24は、減算後に残った階調値を選択画素に戻す処理を行う(ステップS149)。上述の例では、減算量を各階調値から減算すると、28(=51−23)、28、28、27(=51−24)となりこの値を選択した4つの画素に戻すことになる。減算後の例を図11(c)に示す(シアン入力データ格納領域261(a)参照)。
これにより、ステップS13で加算した1ドットあたりの演算値と等量の値を減算したことになる。減算すべき画素をYドットが生成する位置から減算したことにより、イエローのドットとシアンのドットが重なる確率が低くなり、粒状性を改善した画像出力を得ることができる。しかも、イエローとシアンの明度に応じた値を加算、減算したことにより、イエローとシアンの明度が一定に保たれた快適な画像出力を得ることができる。すなわち、イエローの階調値をそのまま加算した場合と比較して、シアンとイエローの明度比を考慮した分より低い値を加算している(イエローの階調値は"45"、加算値は"16")。よって減算後、階調値をそのまま加算した場合よりも低い値を減算したのでイエローのドットの近くにシアンのドットがより近づきやすくなる。よって印刷用紙上の単位面積あたり、目立ちにくいイエローのドットにシアンのドットが近づく分、イエローとシアンとの明度が均一になるのである。一方、後述するがブラックに対する加算値("11")は明度を考慮してシアンに対する加算値("16")より低い値となっている。したがって、イエローのドットの近くにシアンよりもブラックが近づきやすくなる。すなわち、目立ちにくいドットの周辺に目立ち易いドットが近づくようになるため、単位面積あたりの明度が均一に保たれ快適な印刷出力を得ることができるのである。逆に、このような明度を考慮して加算、減算することで目立ちやすいドットの周囲から離れるように目立ち易いドットが配置されることになり、この場合でも単位面積あたりの明度が均一に保たれるようになるのである。また、ドットが異なる色ごとに重ならないことで色域も広がるのである(彩度が向上する)。
図4に戻り、次いでCPU24は、Xに1を加算する(ステップS146)。他の色成分(ここでは2色目)に対して減算処理を行うためである。なお、ステップS145で"YES"の場合も、加算総量分の値を減算したことになるので、本ステップS146に移行してかかる処理が行われる。次いでCPU24は、Xの値が"4"であるか否か判断する(ステップS147)。Y成分以外の3つの色成分すべて処理が終了したか否かを判断するためである。
図11(c)の例では、X=2となるから本ステップで"NO"が選択され、2色目(X=2)の減算処理を行うべく、再びステップS142に移行する。図12(a)に示すように2色目として、マゼンダを選択する。そして、シアンに対する減算処理と同様に、Yドットが発生する画素位置をまず選択し、加算総量を超える(ステップS143で"YES")が等しくなるまで(ステップS145で"YES")、画素を選択し続ける。画素の選択は、シアンの場合と同様にドット発生位置の次にはドットが発生する画素位置の上下左右の隣接する画素、次は斜め方向に隣接する画素、次はさらにそのまわりにある16個の画素(又はそのうち適宜選択した画素)、と除々に選択の幅を広げるように選択する。選択画素の階調値の合計が加算総量を超えると、1ドットの加算総量と等しくなるように最後に選択した画素の階調値からできるだけ等量となるように減算する。以上の処理の結果、マゼンダの入力データは図12(a)のマゼンダ入力データ格納領域261bに示す値を有するものとなる。この場合も、イエローとマゼンダのドットが重なる確率が低くなり、明度が均一で快適な印刷出力を得ることができる。
そしてCPU24は、Xに1を加算して3色目(X=3)の色成分に対する減算処理を行う。上述の例では、3色目としてブラックを選択する。減算処理は、加算総量が"99"であること以外はシアン、マゼンダと全く同様である。その減算処理の結果を図12(b)に示す。そして、Xに1を加算し(ステップS146)、Xが4となるのでステップS147で"YES"が選択され、ステップS141に移行することになる。
これまでの減算処理は、Yドットが発生する(2,1)の画素位置で、シアン、マゼンダ、ブラックと減算処理を行ったが、今度はその次にYドットが発生する(5,1)の画素位置で、シアン、マゼンダ、ブラックと順番に減算処理を行うことになる(図4のステップS141で"YES"が選択され、ステップS142からS149までの処理が行われる)。そして、各色成分の減算処理が終了すると、ステップS147で"YES"が選択され再びステップS141に移行し、その次にYドットが発生する位置で減算処理を行う。これを未処理のYドットがなくなるまで処理を繰り返すことになる。すべのYドットが発生する位置で減算処理を行った結果を図12(c)に示す。
減算処理が終了するとCPU24は、図3に戻り、ステップS15に移行して未処理画素の選択を行う(ステップS15)。すなわち、これ以降Y成分以外の残りの色成分に対
してCC法によって処理を行う。その前段階として本ステップにおいて、まず、減算処理後のC、M、Kの各データに対してCC法による処理を行っていない未処理画素を探索する。未処理画素の探索は、ラスタ方向(入力データ領域261a〜d上最も上で最も左側の方向)に探索を行う。セルが横方向に並びやすく、視覚的に快適なドットが生成されるためである。図12(c)の例では、C,M、Kの各色成分とも(0,0)の画素に対してCC法による処理を行っていないため、CPU24は、(0,0)の画素を未処理画素として選択する。なお、後述するが、未処理画素の探索は、入力データ領域261a、261b、261dに"−1"が格納されたか否かで判断することができる。
次いでCPU24は、ドット密度が最も疎となるであろう色成分を選択する(ステップS16)。最も疎となる成分から先にCC法による処理を行うことで入力階調値に忠実なドット分布を得るためである。すなわち、CC法による場合も同様に他の色成分に対して加算、減算処理を行うが、最も密なものから先にCC法による処理を行うと、疎となる色成分に減算処理を行うことになる。このため疎となる色成分の各階調値が分散され、入力階調値に忠実でない階調データとなる。この結果、ドットが発生する確率が低いにも拘わらず、さらに入力階調値に忠実でないドットが生成されてしまうことになる。そのため、先に疎となる成分からドットの位置を決定し、その過程で密成分に加算、減算を行うようにしている。
具体的にはCPU24は、選択した画素の階調値をドット生成を示す値(本実施例では"255")で除算した値を比較することにより疎となる色成分を判定する。図12(c)の例では、C、M、Kの(0,0)に位置する画素の階調値はそれぞれ、"51"、"56"、"41"、ドット生成を示す値で除算すると、最も低い値を有するのは、ブラックの成分である。よって、3つの色成分のうち最もドット密度が疎となるであろう色成分はブラックと判断するのである。
図3に戻りCPU24は、次いで、疎と判定された色のCC法による処理を行う(ステップS17)。CC法による処理の動作を示すフローチャートを図5乃至図6に示す。本処理に移行するとCPU24は、初期画素を決定し、初期濃度重心を演算する(ステップS171)。ここでの初期画素は、ステップS15で選択した未処理画素となる。また、重心の位置は、以下の演算式を用いて値を求める。
(式2)
重心={{(セルの重心のx座標)×(セルの階調値の合計)}
+{(選択した未処理画素のx座標)×(選択した未処理画素の階調値)}}
/(セルの階調値の合計+選択した未処理画素の階調値)
重心={{(セルの重心のy座標)×(セルの階調値の合計)}
+{(選択した未処理画素のy座標)×(選択した未処理画素の階調値)}}
/(セルの階調値の合計+選択した未処理画素の階調値)
(x重心、y重心は重心位置の座標)
この演算式はROM25に格納され、重心位置の演算のときにCPU24がROM25から読み出して演算を行うことになる。ちなみに、初期画素の場合は、セルの重心のx、y座標、及びセルの階調値はともに0として演算される。なお、セルとは、上述したように複数の画素から構成される画素群で、上式で"セルの重心"とあるのは、これまで構成したセルの重心のことである。初期濃度の重心を演算すると、x重心=0、y重心=0となる。
なお、図13(a)に示すようにRAM26には、さらにワーキングメモリ領域270を有している。この領域270は、重心の位置座標と、これまで選択した画素の階調値の合計値が格納されるよう構成される。重心位置を格納するのは、その位置をもとにセルを
構成する画素を選択したり、最終的なドットの位置を確定させるためである。また、階調値の合計はセルを構成する画素の階調値の合計が閾値となるまで画素の選択を続けるのに必要だからである。
本ステップで演算した重心位置は、CPU24によってワーキングメモリ270に格納されることになる。図13(a)の例では、重心位置(0,0)がワーキングメモリ領域270に格納される。また、階調値の合計値"41"も領域270に格納される(図13(b)のメモリ領域270参照)。なお、初期画素の場合、選択画素は1つしかないので選択画素の階調値が階調値の合計としてワーキングメモリ270に格納されることになる。
さらに、図13(a)に示すようにRAM26には、ブラックドット生成の有無を示す値が格納されるブラック出力データ格納領域262dを備える。上述したようにこの領域262dも各入力データ領域261a〜261d等と同様に、各画素位置(m,n)はホストコンピュータ10で生成される全体画像の画素位置に対応するよう構成されている。図13(b)に示すようにCPU24は、処理対象の未処理画素を選択する際に対応する画素位置(ここでは(0,0)の位置)にブラックドットを生成しないことを示す値(本実施例では"0")を格納する。
また、CPU24はセルを構成する画素を選択すると、以後未処理画素として選択されないようにするために"−1"をその画素位置に格納する。図13(b)に示すように、ブラックの初期画素として(0,0)を選択したので、この画素位置に"−1"を格納することになる。
ここで、CPU24は他の色成分の対応する画素位置に対して明度に応じた階調値を加算する処理を行う。Y成分の分散ディザ処理において、他の色成分に演算値を加算したときと同様に、目立ちやすい色のドット周囲には、より広い空白領域を設けて、単位面積あたりの明度をできるだけ一定に保ち、かつ粒状性を改善するためである。この場合も、目立ちやすいドットの周辺には他の色のドットが打たれないよう、より大きな値を他の色の階調値に加算し、その後減算処理を行って、より大きな空白領域を設けるようにしている。演算値は上述の(式1)を用いる。図13(b)に示すように、ブラックの画素位置(0,0)の階調値は"41"、加算元であるブラックの明度は"20"、加算先であるシアン、マゼンダの明度はともに"45"、よって(式1)から、シアン、マゼンダの当該画素位置の階調値に"60"(=41×(100−20)/(100−45))を加算することになる。加算後の例を図13(b)のシアン、マゼンダ各入力データ格納領域261a、261bに示す。以上が、本ステップS171でのCPU24が行う処理である。
図5に戻り、次いでCPU24は、未処理画素の選択を行う(ステップS172)。未処理画素の選択は、ワーキングメモリ270に格納した重心位置の座標をもとに最も近い位置にある画素を選択する。重心を利用してセルを構成する未処理画素を選択するため、上述したようにセルは円状になりやすく、その重心にドットを形成させることで、ドット間距離が一定で快適な印刷出力を得ることができるのである。図13(b)の例では、ワーキングメモリ領域270に重心位置x重心=0、y重心=0が格納されているので、この位置から最も近い画素位置を選択することになる。この例の場合に、重心位置に最も近い画素としては、(1,0)と(0,1)に位置する2つの画素が存在する。この場合CPU24は、ランダムにいずれか1つの画素を選択することにする。固定順(例えば次に選択すべき未処理画素は右隣の画素、次に選択すべき画素はその画素の下にある画素など)に選択すると、最終的に構成されるセルが規則的に並びすぎることによって、印刷出力のある領域でドットが周期的に発生する周期パターンが生じることになる。このようなパターンは視覚に入り易く快適な印刷出力を得ることができない。このような理由から、選択すべき画素が複数あれば、ランダムに選択するのである。図13(b)の例では、CPU24は、(0,1)に位置する画素を未処理画素として選択することにする。選択された例を図13(c)に示す。
図5に戻り、次いでCPU24は、階調値の合計が閾値を超えるか否か判断する(ステップS173)。セルを構成する画素の選択は、選択画素の階調値の合計が閾値になるまで選択するためである。本実施例において閾値は、"255"として以下演算することする。もちろん、これ以外の値を閾値としてもよい。図13(c)の例では、これまで選択した画素の階調値の合計は"41"、未処理画素として選択した画素の階調値は"41"、よって、階調値の合計は"82"となり閾値である"255"を超えない。したがって、本ステップで"NO"が選択され、処理はステップS174に移行することになる。なお、この閾値は例えばROM25に格納され、CPU24が処理の際に適宜読み出すことで判断されることになる。
ステップS174でCPU24は、未処理画素を含めたセルの重心を演算する。新たにセルに取り込まれた画素を含めたセル全体の重心位置を求めるためである。重心位置は、(式2)を用いる。図13(c)に示す例では、2つの画素(0,0)、(0,1)からなるセルの重心を求めることになり、その結果重心位置は、x=0、y=0.5となる。演算した重心位置は、CPU24の制御によりワーキングメモリ270に格納される(図13(c)のワーキングメモリ270参照)。
次いでCPU24は、セルの階調値の合計を演算し、その値をワーキングメモリ270に格納する(ステップS175)。新たにセル内に取り込んだ画素を含めたセル全体の階調値を計算するためである。図13(c)の例では、セルを構成する2つの画素((0,0)、(0,1)の画素)の階調値の合計は"82"、この値をCPU24はワーキングメモリ270に格納することになる(同図のワーキングメモリ270参照)。
次いでCPU24は、明度に応じた演算値を他の残りの色成分に加算する(ステップS176)。この場合も(式1)を用いる。図13(c)の例では、ブラックの(0,1)の階調値"41"なので、シアン、マゼンダの当該画素位置にそれぞれ"60"、"60"を加算することになる。加算した結果を図13(c)のシアン入力データ領域261a、マゼンダ入力データ領域261bに示す。そして、CPU24はステップS172で選択した未処理画素の画素位置に"−1"を格納し、出力データ格納領域262dの対応する画素位置に"0"を格納する(同図のブラック入力データ領域261d、ブラック出力データ領域262d参照)。
次いでCPU24は、ワーキングメモリ270に格納した階調値の合計が閾値と等しいか否か判断する(ステップS177)。図13(c)の例では、階調値の合計は"82"で、閾値である"255"と等しくはない。よって本ステップで"NO"が選択され、再びステップS172に移行し、セルを構成する未処理画素の選択を行うことになる。
以下同様の処理を繰り返すことになる。すなわち、セルを構成する画素の階調値の合計が閾値と等しくなるか(ステップS177で"YES")、または閾値を超える(ステップS173で"YES")まで画素を選択し続けることになる。図13(c)の例で、以下説明する。
すなわち、ステップS172で再び未処理画素の選択を行うが、ワーキングメモリ270に格納された重心位置から最も近い画素を選択する。重心位置(0,0.5)にから最も近い未処理画素は、(1,0)と(1,1)の2つあるがランダムに(1,0)を選択する(図14(a)のブラック入力データ261d参照)。階調値の合計は、82+41=123で閾値に達しないのでステップS173で"NO"が選択される。新たに選択した画素を含めた重心と階調値の合計とを演算し、その結果をワーキングメモリ270に格納する(同図のワーキングメモリ270参照)。また、明度に応じた演算値を残りの色成分であるシアン、マゼンダの当該画素位置に加算する(同図の各入力データ領域261a、261b参照)。また選択画素の階調値を"−1"、出力データ領域に"0"を格納する。階調値の合計値は閾値に等しくないので、再び未処理画素の選択を行う。
図14(b)に示すように、次に(1,1)の画素を未処理画素として選択する。その階調値の合計は閾値に達しないので、セルの階調値の合計値と重心を演算して、ワーキングメモリ270に格納する(同図メモリ270参照)。さらに、シアン、マゼンダに演算値を加算する(同図の各入力データ領域261a、261b参照)。さらに、選択画素の階調値を"−1"、出力データ領域に"0"を格納する。
以下、これを繰り返し、CPU24は、(0,2)、(1,2)を未処理画素として順次セルに取り込み、それぞれ重心位置の演算、加算処理等を行うと図14(c)、図15(a)に示す状態となる。図15(a)の段階で、セルを構成する画素の階調値の合計は、41×5+27=232となる(同図のワーキングメモリ270参照)。まだ、閾値に達しないのでステップS177で"NO"が選択されて、再びステップS172で重心に最も近い未処理画素が選択される。
ここでCPU24は、未処理画素として(2,0)に位置する画素を選択するものとする。この画素の階調値を含めた階調値の合計は、232+27=259となり、閾値である"255"を超えることになる。よって、ステップS173で"YES"が選択され、ステップS179に移行することになる。
CPU24は、ステップS179で閾値を超えた場合の重心位置の演算処理を行う。ここでの重心位置も演算式を用いて演算を行なうことになるが、以下の式を用いるものとする。
(式3)
重心={{(セルの重心のx座標)×(セルの階調値の合計)}
+{(選択した未処理画素のx座標)×(閾値までに必要な階調値)}}
/(セルの階調値の合計+閾値まで必要な階調値)
重心={{(セルの重心のy座標)×(セルの階調値の合計)}
+{(選択した未処理画素のy座標)×(閾値までに必要な演算値)}}
/(セルの階調値の合計+閾値まで必要な階調値)
(x重心、y重心は重心位置の座標)
(式2)との違いは、選択した未処理画素の階調値をそのまま用いるのではなく、セルの階調値の合計が閾値と同じになるような値を用いる点が異なる。例えば、図15(a)の例では、これまで選択した画素の階調値の合計が"232"であるので、閾値の "255"までに必要な値は"23"となる。そこで、最後の画素((2,0)の画素)の階調値は"23"として重心を演算するのである。この演算式は、(式2)の場合と同様に予めROM25に格納されており、CPU24が本ステップを実行する際にROM25から読み出すことで処理される。図15(a)の例で演算すると、重心位置はx重心≒0.6、y重心≒0.9となる。演算した重心位置は、CPU24の制御によりワーキングメモリ270に格納される(図15(b)のメモリ270参照)。
図5に戻り、次いでCPU24は明度に応じた演算値を他の残り2色の階調値に加算する処理を行う(ステップS180)。加算すべき値の演算式は、上述の(式1)と同様であるが、選択した画素の階調値をそのまま(式1)に代入するのではなく、重心演算と同
様に閾値に達する値を当該画素の階調値として演算する。図15(a)に示す例では、(2,0)に位置する画素の階調値は"27"ではなく、"23"として、(式1)を用いて演算することになる。実際に加算する値は、シアン、マゼンダともに"33"となる。加算した結果を図15(b)のシアン、マゼンダ各入力データ領域261a、261bに示す。
図5に戻り、次いでCPU24は残った階調値を選択した未処理画素に戻す処理を行う(ステップS181)。図15(b)の例では、最後に選択した画素(2,0)の階調値は"27"、演算の際に"23"の階調値として演算したので、減算した"4"を当該画素位置に戻すことになる(同図のブラック入力データ領域261d参照)。セルを構成する画素以外の画素に戻すことも考えられるが、それでは入力階調値に忠実なドットを生成させることができない。よって、最後に選択した画素に減算後の値を戻し、以後再び未処理画素として選択できるようにするのである。
そして処理は、図6のステップS178に移行し、重心位置にドットを生成させる処理を行う。すなわち、ワーキングメモリ270にはこれまで構成したセルの重心位置が格納されているのでCPU24がこの値を読出し、出力データ領域262a、262b、262dの重心位置の存在する画素位置に"255"を格納することになる。図15(b)の例では、これまで演算した重心位置x重心=0.6、y重心=0.9がメモリ270に格納されているので、この位置にある画素(1,1)にドット生成を示す"255"を格納することになる(図15(c)のブラック出力データ領域262d参照)。
一方、ステップS177で閾値と等しい場合(YESの場合)も、すでにセルを構成する階調値の合計が閾値に達したことになるので、同様に重心位置にドットを生成する処理を行うことになる。
次いでCPU24は、残り2色の減算処理を行う(ステップS182)。上述の例では、ステップS176やステップS180で演算値をシアン、マゼンダの各入力階調値に加算したので、加算した分減算を行うのである。シアン、マゼンダに加算した値は、ともに60×5+37+33=370となる。よって、この値が加算総量として以後処理を行うものとする。減算処理の動作を示すフローチャートを図7に示す。
この減算処理の動作も、ステップS14での減算処理とほぼ同様である。すなわち、加算した総量と等しくなるまで残り2色の画素を選択していく。選択の方法は、まずドットが発生する画素を選択し、次いでそのドットが発生する画素位置の隣接する上下左右の画素、次いで隣接する斜め方向の4つの画素、次いで隣接する画素を1つ飛び越えた上下左右の画素と、除々にその範囲を広げるように選択する。
具体的には以下のようになる。すなわち、減算処理(ステップS182)に移行するとCPU24は、まず、生成したドットに最も近いZ色目の画素を選択する(ステップS1821)。ブラックのドットが発生する画素位置そのものを選択する。なお、Zは残りの色成分の数を示すもので、初期値として"1"が設定されるものとする。上述した例では図16(a)に示すように、1色目(Z=1)としてシアンが選択され、ブラックドットが生成される(1,1)の画素が選択される。このようにドットに最も近い位置を選択するのは、ドット密度が疎となる色成分のドット発生位置に他の色成分のドットが生成されないようにして、粒状的なドットの生成を抑え快適な印刷出力を得るためである。
次いでCPU24は、選択画素の階調値の合計が加算処理で加算された階調値の総量を超えるか否か判断する(ステップS1822)。図16(a)の例では、シアンの選択画素(2,2)の階調値は"67"で総量である"370"を超えないので、本ステップで
NOが選択されてステップS1823に移行することになる。なお、加算された階調値の総量もRAM26の所定のメモリ領域に格納され、本処理の際に適宜メモリから読み出されることで処理が行われるものとする。
次いでCPU24は、選択画素に"0"を格納する(ステップS1823)。図16(a)の例では、シアンの入力データ格納領域262aの画素位置(1,1)に"0"を格納することになる(図16(b)のシアン入力データ格納領域262a参照)。なお、CPU24は選択した画素の階調値の合計を演算し、その値をワーキングメモリ270に格納するものとする(同図のワーキングメモリ270参照)。
次いでCPU24は、減算対象の画素の階調値の合計が加算された総量に等しいか否か判断する(ステップS1824)。ワーキングメモリ270に選択画素の階調値の合計が格納されるので、この値と加算総量の値とを比較することで処理が行われる。なお、加算総量の値は、例えばRAM26の図示しないメモリ領域に格納されるものとする。図16(b)の例では、総量に等しい値ではないので本ステップで"NO"が選択され、再びステップS1821に移行することになる。
再びステップS1821に移行するとCPU24は、生成したドットに最も近い1(Z=1)色目の画素として、ドットが発生する画素位置に隣接する上下左右の4つの画素を選択する。図16(b)の例では、上下左右の画素として(1,0)、(0,1)、(2,1)、(1,2)の画素を選択する。それ以外の画素を選択してもよいことは、Yドットの減算処理の場合(ステップS142)と同様である。選択された例を図16(c)のシアン入力データ領域261aに示す。
次いでCPU24は、選択画素の階調値の合計が67+111×3=400となり加算総量である"370"を超えるので、ステップS1822で"YES"が選択されてステップS1827に移行する。
ステップS1827でCPU24は、減算量の演算を行うが、Yドットでの減算処理のときと同様に、選択画素の階調値の合計が加算総量と等しくなるように減算量を演算する。図16(c)の例では、加算総量は"370"ですでにドットを生成する画素位置(1,1)の階調値を"0"にしたので、残りは、303(=370−67)となる。よって、加算総量と等しくなるには最後に選択した4つの画素から等量に減算することになる。このとき、(2,1)の画素の階調値は"0"とっているでこれ以上減算することはできず、3つの画素から減算することになる。その結果、3つの画素から"101"ずつ減算する。
図7に戻り、次いでCPU24は減算後に残った階調値を最後に選択した画素に戻す処理を行う(ステップS1828)。図16の例では、3つの画素((1,0)、(0,1)、(1,2)の画素)から"101"ずつ減算したので残った階調値はすべて"10"となる。これを3つの画素それぞれの階調値として、その画素に戻すことになる(図16(c)のシアン入力データ領域261a参照)。
これにより、ブラックドット生成の過程でシアンの入力データに加算した階調値と等量の値を減算したことになる。減算すべき画素をブラックドットが生成する位置から減算したことにより、ブラックのドットとシアンのドットが重なる確率が低くなり、粒状性を改善した画像出力を得ることができる。しかも、ブラックとシアンの明度に応じた値を加算、減算したことにより、明度の小さい(視覚的に知覚されやすい)ブラックのドット周辺にシアンのドットが打たれないことで明度が一定に保たれた快適な画像出力を得ることができるのである。
選択画素に戻す処理(ステップS1828)が終了すると処理は、ステップS1825に移行する。一方、ステップS1824において減算対象の画素の階調値の合計が加算された総量に等しいとき(YESのとき)は、加算した量すべで減算したことになるので、このときも処理はステップS1825に移行する。
ステップS1825でCPU24は、Zに1を加算して2色目の色成分に対する減算処理を行うことになる。次いでCPU24は、Z=3か否か判断する(ステップS1826)。2色目の処理が終了してステップS1825に移行すると、Zに1が加算され本ステップで"YES"が選択され2色すべて減算処理が終了することになるのである。図16(c)の例では、Z=2のため本ステップで"NO"が選択されて、2色目の減算処理を行うべくステップS1821に再び移行することになる。
以下の処理は、1色目の処理と全く同様である。すなわち、加算総量と等しいか超えるまで画素を選択する。選択の方法は、まずブラックのドットが発生する画素位置、次にその位置に隣接する上下左右の画素、次に隣接する斜め方向の画素などと選択する。図16(c)の例では、2色目としてマゼンダが選択され、減算処理の結果を図17(a)に示す。この場合も、ブラックのドット周辺の階調値を減算するようにしたのでブラックのドット周辺にマゼンダのドットが打たれる確率が低くなる。また、明度に応じた演算を加算し減算したので、単位面積あたりのブラック、マゼンダの明度は一定のものとなる。
図7に戻り、2色目の減算処理が終了してステップS1825に移行すると、Zに1が加算されZ=3となるのでステップS1826で"YES"が選択され、残り2色の減算処理(ステップS182)が終了し、さらに疎と判定されたCC法の処理(ステップS17)が終了して、図3のステップS18に移行することになる。
ステップS18においてCPU24は、未処理画素があるか否か判断する。ラスター方向、すなわち入力データ領域261a〜dの最も上の最も左から順に、C、M、Kの未処理画素を探索する。入力データ領域261a、261b、261dには、CC法による処理が終了した画素位置に"−1"が格納されるので、CPU24がラスター方向に検索して"−1"が格納されたか否かで判断する。図17(a)の例では、ラスター方向に(0,0)の画素位置にシアンとマゼンダの未処理画素が存在するので、本ステップS18で"YES"が選択されてステップS15に再び移行し、未処理画素としてシアン、マゼンダの(0,0)の画素が選択されることになる。
次いでCPU24は、ドット密度が最も疎な色を判定する(ステップS15)。ドット生成を示す値で各色成分の階調値を除算した値から判断する。図17(a)の例では、(0,0)に位置するシアン、マゼンダのうちシアンの方が、値が低いのでシアンを疎な色として選択する。そして、シアンに対してCC法による処理を行う(ステップS17)。CC法による処理の内容は、ブラックで説明した上述の内容と全く同様である。
そして、シアンに対してセルを構成してドットを打つ位置を決定すると再びステップS18に移行し、ラスター方向に未処理画素を探索する。(0,0)の位置で、ブラック、シアンは処理済みであるがマゼンダは未処理なので、今度はマゼンダに対してCC法による処理を行う。これを、3つの色成分について未処理画素がなくなるまで(3つの入力データ領域261a、261b、261dにすべて"−1"が格納されるまで)、処理を繰り返すことになる。
ステップS18で処理が終了すると、一連の処理が終了し(ステップS19)、C、M、Kの各出力データ領域262a、262b、262dにはドット生成の有無を示す値がすべての画素位置で格納されることになる。この例を図17(b)に示す。この値が量子化データとしてハーフトーン処理部212から出力され、パルス幅変調部213、印刷エンジン22を介して印刷出力を得ることができる。
以上、Y成分に対しては処理の早い分散ディザ法による処理を行い、それ以外の色成分に対してはCC法による処理を行うようにしたため、画質の劣化を最小限に抑え、かつ高速化を図ることができる。また、各処理の過程で他の色成分に加算、減算処理を組み合わせたことにより、各色のドットが重なる確率が下がり、粒状的なドットの発生を抑え、モアレ縞のような干渉パターンの発生を回避することができる。さらに、各色のドットが重ならないため色の再現範囲が広がる(彩度が向上する)という効果を得ることができる。また、加算処理の際に明度に応じた値を加算しその後減算しているため、印刷用紙上単位面積あたりの明度が一定に保たれ、視覚的に快適な印刷出力を得ることができる。
さらに、先に分散ディザ処理を行い、後でCC法による処理を行っているのは、入力階調値に忠実にドットを生成させるようにするためである。すなわち、先にCC法による処理を行いその過程での加算、減算により、ドットが発生する位置の周辺の階調値が減算されるが、その後分散ディザ処理を行うと、設定されたマトリックス内の閾値によっては減算した位置にドットが発生し、異なる色どうしでドットが重なる確率が高くなってしまう。これは、CC法による処理は入力階調値そのものを保持してセルを構成させて処理を行うのに対し、分散ディザ法は閾値より大きいか否かで判断しているため誤差分が発生するとともに閾値の設定の仕方によってドットが連続して発生したりするなどドットのバラつきが生じることが原因とされている。一方、先にディザ処理を行いその後CC法による処理を行えば、ディザ処理を行いその減算後の階調値に忠実にドットが発生する確率が高まり、従ってディザ処理対象の色成分とドットが重なる確率が少なくなるのである。
上述の例では、明度に応じた演算値を他の色成分に加算し、その後ドットが生成する位置から減算するように処理を行ったが、加算減算処理を行うことなく、ドットの生成する位置をマーキングし他の色成分でドット生成の位置を確定する際にそのマーキングした位置を避けるように処理を行うことでも、全く同様にドットの重なりを防ぐことができる。以下、マーキングによる処理を説明することにする。
図18には全体の処理の動作を示すフローチャート、図19乃至図20はマーキングを利用した場合のCC法の処理の動作を示すフローチャート、図21はRAM26内の一例を示すものである。加算、減算の場合の動作と重複している部分が多いので簡単にフローチャートを参照しながら説明することにする。
図18に示すように、まずCPU24はROM25に格納されたプログラムを読み出すことで処理が開始される(ステップS30)。次いでCPU24は、Y成分に対する分散ディザ処理を行う(ステップS31)。図3のステップS11と同様に閾値マトリックスを利用して、閾値と階調値とを比較して処理を行う。処理が終了したときの例を図21(a)のイエロー出力データ量領域262cに示す。Y成分すべての画素に対して処理を行うと、次いでCPU24は、Yのドットが生成されたか否か判断する(ステップS32)。イエロー出力データ領域262cに"255"が格納された画素があるか否かで判断する。ドットが生成されている場合は(本ステップで"YES"の場合)、Yドットの位置をマーキングする処理を行う(ステップS33)。RAM26内には各色ごとマーク記録用バッファ265a〜265dを有し、CPU24の制御により各色のドットの画素位置がバッファ265a〜264dに格納される。図21(a)の例では、Y成分の(2,2)の画素位置でYドットが生成されるので、Y成分マーク記録用バッファ265cには当該座標位置が格納される。バッファ265への記録は、例えばY成分に対する分散ディザ処理(ステップS31)の際にドットが生成すればその位置を記録するようにしてもよいし、本ステップでイエロー出力データ格納領域262cを順次探索して"255"が格納された位置をバッファ265に記録するようにしてもよい。
図18に戻り、次いでCPU24はWに"1"を設定する(ステップS34)。WはY成分以外の残りの色成分の数を示すものであり、初期値として"1"を設定することで1色目の色成分に対してCC法による処理を行う。次いでCPU24は、この1色目に対して実際にCC法による処理を行う(ステップS35)。ただし、加算減算の場合と異なり、ドット密度が疎なる色成分から先に処理を行うことはせずに、各色ごとに独立にCC法による処理が行われる。
CC法による処理のフローチャートを図19乃至図20に示す。この場合も、加算減算の場合と同様に、セルを構成する未処理画素の階調値の合計が閾値と等しい(ステップS346で"YES")か、超える(ステップS343で"YES")まで、画素を選択していく。画素の選択は重心を用い、複数の未処理画素があればランダムに選択する。階調値の合計が閾値を超えると、上述した(式3)を用いて重心を演算し(ステップS348)、閾値を超えた余りの階調値を選択画素に戻し(ステップS349)、図20のステップS347に移行する。この処理の過程で、加算減算処理は行わないので、図5のステップS176、S180に相当する処理はない。
図20のステップS347でCPU24は、重心位置と、マーキングしたドット位置とが重なっているか否か判断する。Yドットと他の色成分が重なってドットが打たれる確率を下げるためである。マーキングしたドット位置はマーク記録用バッファ265a〜265dに格納されているため、CPU24はこのバッファ265a〜265dから値を読出し、1色目のCC法処理で演算した重心位置と同じか否かで判断する。図21(a)に示す例では、1色目としてマゼンダが選択され、CC法による処理の結果、YドットとMドットとが同じ位置((2,2)の画素位置)に発生している。この場合、ステップS347で"YES"が選択されて、ステップS350に移行することになる。
ステップS350でCPU24は、重心に最も近い未マーキング画素を選択する。この場合、例えば重心位置の上下左右の未マーキング画素のいずれか1つを選択すればよい。もちろん、これ以外にも重心位置を囲む8つの画素のいずれか1つを選択するようにしてもよい。図21(a)の例では、マゼンダのドットが発生する重心位置(2,2)の上下左右の画素のうち(2,1)の画素を選択するものとする。
次いでCPU24は、選択した未マーキング画素位置にドット生成を示す値を格納する(ステップS351)。図21(a)に示す例では、マゼンダの出力データ領域262bの(2,1)の画素位置にドット生成を示す"255"が格納される(図21(b)のマゼンダ出力データ領域262b参照)。
次にCPU24は、生成したドット位置をマーキングする処理を行う(ステップS352)。CPU24は、選択した未マーキング画素の画素位置を、マーク記録バッファ262a、262b、262dに格納する。図21(b)の例では、CPU24はマゼンダ用マーク記録バッファ265bに選択した画素位置(2,1)の座標を記録することになる(同図のマーク記録用バッファ265b参照)。
そして、1色目の各画素に対して未処理画素がなくなるまで処理を繰り返すことになる。すなわち、1色目の入力データ領域に"−1"が格納されていない画素があるとステップS353で"YES"が選択され、再びステップS341に移行し処理が繰り返される。1色目の未処理画素がなくなると、ステップS353で"NO"が選択され、図18のステップS36に移行することになる。
ステップS36に移行するとCPU24は、Wに1を加算し、2色目の色成分に対して同様にCC法による処理を行うことになる。このとき、イエロー成分と1色目(W=1)の色成分に関してバッファ265にドット生成位置が記録されている。そして、2色目(W=2のとき)のCC法処理の際にステップS347で、2色目の重心位置と、バッファ265に記録されたドット生成位置(Y成分と1色目の色成分のドット生成位置)とが重なると、"YES"が選択され、2色目の色成分の重心に最も近い未マーキング画素を選択することになる(ステップS350)。これにより、イエローを含めた3色のドットが重ならないことになる。また、ステップS352で2色目で生成したドット位置をマーク記録用バッファ265に記録し、3色目(W=3)のCC法処理で同様に他の3色と重ならないようにドット位置が選択される。したがって、4色ともドットが重ならずに視覚的に快適な印刷出力を得ることができるのである。
なお、図21(c)に示すように、1色目(W=1)としてマゼンダが選択されCC法の処理を行った結果、Mドットのまわりの8近傍の画素すべてにYドットが発生し、未マーキング画素が見つからない場合もある。このような場合は、重なりを許容して、CC法で確定したドット位置にMドットを打つように処理を行うことになる。
これをY成分以のすべての色成分に対して処理が終了する(CMKの3色の処理が終了すると、ステップS36でWに1が加算され、W=4となる)とステップS37で"YES"が選択され、処理が終了することになる(ステップS38)。この段階で各出力データ領域262a〜dにドット生成の有無を示す量子化データが得られ、図1のパルス幅変調部213に出力され、印刷エンジン22において印刷出力を得ることができる。
このマーキングによる場合も、マーキングによってドットが発生する位置を避けるように他の色成分のドット生成位置を変えるようにしたので、異なる色成分でドットが重ならずに、干渉パターンや粒状的なドットの生成を抑え、色再現範囲が広がる(彩度が向上する)。また上述したものと同様に視覚的に最も目立ちにくい色成分に分散ディザによる処理、それ以外の色成分にCC法による処理を行うようにハーフトーン処理を行ったので、画質の劣化を最小限に抑え、ハーフトーン処理の高速化を図ることができる。
なお、このマーキングの例の場合で、バッファ265a〜dを用いて未マーキング画素を選択するようにしたが、このようなバッファ265a〜dを使用せず、例えば、CPU24が出力データ領域262a〜dを探索して"255"が格納された位置との比較で処理を進めるようにすることもできる。この場合、バッファ265a〜dを用いる必要がないためRAM26の規模を小さくし、コストの削減を図ることができる。
なお、上述の例では、加算減算、マーキング双方とも図8(b)に示す閾値マトリックスを使用して処理を行ったが、これに拘泥せず、例えば図22に示す閾値マトリックスを使用しても同様の効果を得ることができる。図22のマトリックスは、図8(b)と同様に各位置に閾値が格納され、各位置の各画素の入力階調値とを比較して処理を進める点では図8(b)に示すマトリックスを利用する場合と同様である。しかし、マトリックスの中心に行くに従って、閾値が低い値となりドットが生成される確率が高いものとなっている。いわゆるドット集中型のマトリックスである。このため、Y成分に対して処理を行うとマトリックスの中心付近でドット生成を示す"255"が発生する確率が高く、その後他の色成分に対して減算処理を行うと、この中心付近でより多くの減算を行うことになる。従って、中心からより遠くの位置に減算対象が広がる確率が高くなる。よって、イエローとそれ以外の色成分とが重なる確率が低くなる。かかる点がドット集中型のマトリックスと図8(b)の分散型のマトリックスを利用した場合の相違点である。
[多値ディザ法とCC法とを用いたハーフトーン処理]
次に多値ディザ法とCC法とを組み合わせたハーフトーン処理について説明する。この場合も、CMYKの色成分のうち最も視覚的に目立ちにくい(明度の高い)Y成分に対して多値ディザによる処理を行い、それ以外の色成分に対してCC法による処理を行う。
具体的な処理の詳細を説明する前に、まず多値ディザ法の概要について図24、図25を参照して説明する。多値ディザ法は、一般的にはCMYK各色成分ごとの階調データに対し、その階調データと出力値である量子化データとの対応関係を有するハーフトーンテーブル(ガンマテーブルともいう)を参照して、出力値を得る処理である。この出力値は、各色成分ごと画素内において0から255までの値を有し、トナーのビーム付着領域であるドット領域を表現する。分散ディザ法では、0か255によってドットの有無を表現したが、多値ディザ法では0から255までの値によりドットの有無のみならずドットの大きさを表現する。したがって、多値ディザ法は分散ディザ法に比べてより多くの階調表現(明るさの表現)が可能となる。一般に多値ディザ法は、レーザプリンタで多く使用されている。
図24に示すように、各画素位置において所定の階調値P00、P01・・・を有する入力データが入力された場合に、各画素位置に対応するパターンマトリックス(図24(b)参照)を参照する。マトリックス内の各位置には参照すべきテーブル番号が格納されている。そして、各テーブル番号ごとに入力階調値と出力値との対応関係を示すガンマテーブル(図24(c)参照)から、参照すべきテーブル番号を検索し、そのテーブルから入力階調値に対応する出力値を得るのである。
例えば(0,0)の位置に格納された階調値P00に対して、パターンマトリックスの(0,0)の位置に格納された"7"を参照する。この番号は、ガンマテーブルの参照すべきテーブル番号であってガンマテーブルのテーブル番号"7"に対応する。この番号"7"のテーブルを参照して、入力値P00に対応する出力値を得るのである。
ガンマテーブルに格納された各テーブルの例を図25(a)に示す。この図に示すようにテーブル1とテーブル2は低い入力階調値において最大出力値"255"に達し、逆にテーブル7とテーブル8は低い入力階調値では出力値"0"で、高い入力値に対して最大値"255"に達するように変化する。ここで、テーブル1とテーブル2、テーブル3とテーブル4、テーブル5とテーブル6、テーブル7とテーブル8、それぞれ入力値に対して同じ出力値を有するテーブルであるが、例えば奇数番号のテーブル(テーブル1、テーブル3、テーブル5など)はドットが左から成長するような出力値を取り、偶数番号のテーブル(テーブル2、テーブル4など)はドットが右から成長する出力値を取る(図25(b)、(c)参照)。このため、ハーフトーン処理部212からパルス幅変調部213へ出力される出力データには、さらに1ビット付加され、ドットが右から成長するのかかそうでないか(左から成長)を示す(あるいは、その逆)ことになる。
このハーフトーンテーブルによる多値ディザ法とCC法とを組み合わせた処理の詳細について図23のフローチャートを参照して説明する。なお、図26乃至図32はRAM26内の一例で適宜この図面を参照しながら説明する。
まず、CPU24はROM25から本処理を実行するためのプログラムを読み出すことによって処理が開始される(ステップS40)。次いでCPU24は、多値ディザ法によるハーフトーン処理を行う(ステップS41)。図26乃至図28を参照して具体的に説明する。図26(a)に示すように、分散ディザ処理で説明したものと同様にRAM26内に各色成分ごとに入力データ領域261a〜261dを有し、各領域に図に示す階調値
が入力される。なお、以下で入力データ領域261a〜261dの他に出力データ格納領域262a〜262d、合計値格納領域263、ワーキングメモリ270を用いて説明するが、これらはすべて実施例1(分散ディザ処理とCC法との組合せ)による処理で説明したものと全く同様の構成を有している。
図26(a)に示すように各領域261a〜261dの画素位置に格納される値は分散ディザ法による処理と同じ値である。また、パターンマトリックス252の例を図26(b)に示す。各位置には、ガンマテーブルで参照すべきテーブル番号が格納される。なお、このマトリックス252はROM25に格納され、CPU24が処理の際に適宜読み出すことによって処理が進められるものとする。
まずCPU24は、イエロー入力データ格納領域261cの画素位置(0,0)から、パターンマトリックス252の(0,0)に格納されたテーブル番号を参照する。マトリックス内のこの位置のテーブル番号は"7"なので、CPU24は、ガンマテーブルからこの番号に対応するテーブルを参照する。例えば、このテーブルが図24(c)や図25(a)に示すものと同じとすると、イエローの(0,0)に格納された入力階調値が"45"のとき、テーブル7を参照すると出力値は"0"となる。よってCPU24は、イエロー出力データ格納領域262cの(0,0)の画素位置に"0"を格納する(図26(c)参照)。なお、パターンマトリックス及びガンマテーブルもROM25に格納され、CPU24は適宜ROM25から読み出すことによって処理が進められるものとする。
次いでCPU24は、イエロー入力データ領域の(1,0)に対応するマトリックス252の(1,0)の位置を参照する。マトリックス内の番号は"5"、よってCPU24は、ガンマテーブルからテーブル番号5のテーブルを参照する。この画素位置での入力階調値は"45"、5番目のテーブルでこの入力値に対して出力値は"0"(以下、テーブルは図24(c)、図25(a)に示すものを使用する)、従ってCPU24は、イエロー出力データ領域262cの(1,0)の位置に"0"を格納する(図27(a)参照)。
さらにCPU24は、入力データ領域261cの(2,0)に対応するテーブル番号はマトリックス252から"3"を得る。この番号"3"のテーブルにおいて、入力階調値"45"のとき出力値は"0"である。よって、CPU24は、出力データ領域262cの(2,0)の位置に"0"を格納することになる(図27(b)参照)。
以下同様の処理を繰り返すことになるが、パターンマトリックス252は4行4列構成であるとき、イエロー入力データ領域261cの(4,0)の画素位置に対して参照すべきマトリックス252は(0,0)の位置である。その後、入力データ(5,0)とマトリックス252の(1,0)とを比較して処理を進めることになる(図27(c)参照)。
そして、イエロー入力データ領域261cの(2,1)の画素位置で、対応するテーブル番号はマトリックス252から"1"、この番号のガンマテーブルから入力階調値"45"のとき出力値は"182"となる。よって、出力データ領域262cの(2,1)において、CPU24は"182"を格納することになる(図28(a)参照)。なお、この値はテーブル番号が奇数であるため、左から182/255分の大きさのドットが生成されることになる。以下処理を進めると図28(b)のイエロー出力データ領域262cに示すY成分の量子化データを得る。
図23に戻り、次いでCPU24はYドットが生成されたか否か判断する(ステップS42)。Yドットが生成されるか否かは、分散ディザ処理の場合と同様に、例えばCPU
24がRAM26内のイエロー出力データ格納領域262cを探索して、ドット生成を示す、1以上の値("0"でない値)"255"が格納されているか否かで判断することができる。図28(b)の例では、9つの画素位置でドット生成を示す値が格納されているので、本ステップでは"YES"が選択される。
次いでCPU24は、明度に応じた演算値を他の色成分であるC、M、Kの各階調値に加算する処理を行う(ステップS43)。加算すべき演算値は、分散ディザ処理と同様に(式1)を用いて、各画素位置ごとに行う。加算値は、シアン、マゼンダに対して"16"、ブラックに対して"11"となる。その加算後のC、M、Kの各入力データを図28(c)に示す。明度に応じて演算値を加算しその後減算することで単位面積あたりの明度を均一に保つためである。
図23に戻り、次いでCPU24は、Yドット周囲の減算処理を行う(ステップS44)。減算処理は、Yドットが生成する位置から階調値の減算を行う。Yドットとそれ以外の色成分のドットとが重ならないようにするためである。具体的には、実施例1と同様に図4に示すフローチャートに従って処理が行われる。
すなわち、Yドット周囲の減算処理に移行すると、CPU24はまず、Yドットに対する未処理画素があるか否か判断する(ステップS141)。例えば、ドットが発生する位置をRAM26の所定の領域に格納し、処理が終了するごとにフラグを立てすべてのドットに対して処理が終了したか否か、あるいは、出力データ格納領域262cを(0,0)から順番に探索し、すべての位置を探索したか否かで判断する。図29(a)以降に減算処理のRAM26の構成例を示すが、まだすべてのドット生成位置で減算処理を行っていないので本ステップで"YES"が選択される。
次いで、Yのドット位置に最も近い1色目(X=1)の画素を選択する(ステップS142)。図29(a)の例ではシアンを選択する。またYドットに最も近い画素として、Yドットが発生する位置である(1,1)の画素を選択するものとする。Yドットと他の色成分のドットとが重なる確率を下げて、粒状的なドット分布を防ぐためである。選択の方法は、実施例1と同様にそれ以外のものであってもよい。
次いで、選択画素の階調値の合計が加算された総量を超えるか否か判断する(ステップS143)。シアン、マゼンダに対しては各画素"16"を加算しているので、全体として16×36画素=576の演算値が加算され、ブラックに対しては11×36画素=396の演算値が加算される。分散ディザの処理の例では、この36画素中4個のYドットが生成されていたが、本例では全部で9個存在する。したがって、シアン、マゼンダの加算総量は、1ドットあたり576/9=64、ブラックは、396/9=44となる。なお、RAM26内には実施例1と同様に階調値の合計値を格納する合計値領域263を有し、CPU24の制御により適宜、ステップS142で選択した画素の階調値の合計値が格納されることになる。図29(a)の例では、選択したシアンの画素(1,1)の階調値は"51"、加算総量"64"を超えないので本ステップで "NO"が選択され、ステップS144に移行することになる。
次いでCPU24は、ステップS142で選択した選択画素に"0"を格納する(ステップS144)。すなわち、入力データの領域261a、261b、261dの当該画素位置に"0"を格納することになる。図29(a)の例では、シアン入力データ領域261aの(1,1)の位置に"0"が格納される(図29(b)参照)。またCPU24は、合計値格納領域263に階調値に合計値を格納する(図29(b)の合計値領域263参照)。
次いでCPU24は、合計値領域263に格納された値が加算総量に等しいか否か判断する(ステップS145)。等しいとき(本ステップで"YES"のとき)は、加算した分減算したので1色目の処理が終了することになる。等しくないとき("NO"のとき)は、さらに減算すべくステップS142に移行することになる。図29(b)の例では、加算総量とこれまで減算した階調値とは等しくないので、本ステップで"NO"が選択され再びステップS142に移行する。
次にCPU24は、再びYドットに最も近い1色目の画素を選択することになるが、実施例1と同様に、最初にYドットが生成する画素位置そのものを選択した後は、その画素位置に隣接する上下左右の画素を選択する。これ以外の他の選択方法でもよいのは実施例1と同様である。図29(b)の例では、上下左右の(1,0)、(0,1)、(2,1)、(1,2)の画素を選択するものとする(図29(c)のシアン入力データ領域261a参照)。
次いでCPU24は、選択画素の階調値の合計が加算総量を超えるか否か判断する(ステップS143)。図29(c)の例では、階調値の合計は51+51×4=255で加算総量"64"を超えるので、本ステップで"YES"が選択され、ステップS148に移行する。
ステップS148においてCPU24は、減算量の演算を行う。この場合も、実施例1と同様に、直前に選択した画素の階調値の合計が加算総量と等しくなるように減算する。すなわち図29(c)の例では、すでにYドットが生成する画素位置の階調値"51"を減算したので、加算総量"64"と等しくなるには、"13"を直前に選択した4つの画素から均等に減算すればよいことになる。よって、4つの画素からそれぞれ、3、3、3、4の階調値を減算すればよいことになる。
次いでCPU24は、減算後に残った階調値を選択画素に戻す処理を行う(ステップS149)。減算後の例を図29(c)のシアン入力データ領域261aに示す。イエローの1ドット分加算した値をシアンから減算したことになるのでシアンに対する減算処理が終了することになる。これにより、イエローのドット周辺からシアンのドットが打たれる確率が低くなり、イエローとシアンとでモアレ縞のような干渉パターンの発生を回避するとともに粒状的なドットの発生を抑えることができる。さらに、イエローとシアンの明度に応じた演算値を加算しその後減算したことにより、イエローとシアンの単位面積あたりの明度が均一に保たれたドットを生成することができる。
図4に戻り、次いでCPU24は、Yドットが発生する位置(1,1)での2色目の色成分に対する減算処理を行うべくXに1を加算する(ステップS146)。この段階で他の3色の処理すべて終了していないことになるので、次のステップS147で"NO"が選択され再びステップS142に移行し、2色目の減算処理を行うことになる。
2色目の色成分に対する処理は、1色目の処理と全く同様である。最初にYドットが発生する位置の画素を選択し(ステップS142)、選択画素の階調値の合計が加算総量を超える(ステップS143で"YES")か、等しくなる(ステップS145で"YES")まで画素を選択し続ける。画素の選択は、Yドットが生成する画素位置に隣接する上下左右の画素、次いで隣接する斜め方向の画素、次いで1画素おいた上下左右と、Yドットの発生する位置のまわりの画素と順次選択する。それ以外の方法でもよいことは上述の場合と同様である。2色目としてマゼンダ、3色目としてブラックが選択された場合の減算後の例をそれぞれ図30(a)、図30(b)に示す。
図4に戻り、3色目まで減算処理が終了するとステップS146でXに1が加算されX
=4となり、ステップS147で"YES"が選択され、ステップS141に移行することになる。そして、他にYドットがあればこのステップS141で"YES"が選択され、上述の減算処理を他の色成分すべてに対して行うことになる。Yドットすべてに対して減算処理が終了するとステップS141で"NO"が選択されYドット周囲の減算処理自体は終了し、図23のステップS45に移行する。すべてのYドットの減算処理が終了した例を図30(c)に示す。この図に示すように、シアン、マゼンダ、ブラックともにYドットが生成する画素位置周辺の階調値が減算されている。これにより、イエローとそれ以外の色成分のドットが重なる確率が低くなる。また、各色成分の明度に応じた演算値を加算後、減算したのでイエローとそれ以外の色成分の明度は単位面積あたり均一に保たれ、快適な印刷出力を得る。すなわち、イエローとの明度差が大きいブラックの加算値は、イエローとの明度差が少ないシアン、マゼンダの加算値と比較して、より低い値となっている。従って、ブラックの階調値の減算値は、シアンやマゼンダと比較して少ない値となっているので、YドットとKドットとはYドットとC、Mドットよりも、より近づいてドットが打たれる可能性が高くなる。すなわち、明度の低いY成分と明度の高いK成分とが近づいてドットが打たれることで、印刷用紙上の単位面積あたりの明度が均一になるのである。
図23に戻り、次いでCPU24は、ステップS45に移行して未処理画素の探索を行う。この処理以降は、Y成分以外の他の色成分に対してCC法による処理を行うことになる。実施例1と同様である。未処理画素の探索は、ラスター方向(ホストコンピュータ10で生成した画像上、最も上の最も左)に行う。図30(c)の例では、C、M、Kともに(0,0)に位置する画素は未処理画素なので、CPU24はこれを選択することになる。未処理画素か否かは、各入力データ領域261a、261b、261dの各画素位置に"−1"が格納されたか否かで判断する。
次いでCPU24は、ドット密度が最も疎となる色を判定する(ステップS46)。疎となる色成分から順次CC法による処理を行うことで、入力階調値に忠実なドットを打つためである。実施例1と同様に、ドット生成を示す値(本実施例においても"255")で各色成分の階調値を除算し、その値を各色成分ごとに比較することにより行う。図30(c)の場合、シアン、マゼンダ、ブラックのドット密度はそれぞれ、51/255、56/255、41/255で、ブラックが最も疎となる色と判断される。
次いでCPU24は、疎と判定された色のCC法による処理を行う(ステップS47)。CC法による処理は実施例1と全く同様である。図5にフローチャートを示す。すなわち、まずCPU24は、初期画素(ステップS45で選択した未処理画素)を決定し、重心を演算する(ステップS171)。重心の演算は上述した(式2)を用いる。図31(a)に示すように、演算した結果(この場合x重心=0、y重心=0)は、RAM26内のワーキングメモリ270に格納される。また、CPU24は、選択した画素位置に対応する出力データ領域262a〜262dに"0"を格納する。図31(a)の例では、ブラック出力データ領域262dの(0,0)の位置に"0"が格納される。さらにCPU24は、選択した画素位置に以後未処理画素として選択されないよう"−1"を格納する。図31(a)の例では、ブラック入力データ領域261dの(0,0)の位置に"−1"が格納される。またCPU24は、明度に応じた演算値を残りの2色成分に対して加算する。演算は、実施例1と同様に(式1)を用いる。図31(a)に示すように、ブラックからシアン、マゼンダに対してともに"60"(=41×(100−20)/(100−45))を加算することになる。単純にブラックの階調値を加算するのではなく、ブラックとシアン、マゼンダの明度に応じた演算値を加算しているので、その後の減算処理により、ブラックとシアン、マゼンダの単位面積あたりの明度は均一に保たれることになる。
図5に戻り、次いでCPU24は、未処理画素の選択を行う(ステップS172)。選択は、ワーキングメモリ270に格納された重心位置に最も近い未処理画素を選択する。セルが円状に成長して、ブラックのドット間距離を一定にするためである。ここで、選択すべき未処理画素が複数あればランダムに選択する。選択画素を予め決めてセルを構成させると、ドットが印刷用紙上一定に並ぶことにより周期パターンを発生させることになる。これを防ぐためである。図31(a)の例では、例えば(0,1)のブラックの画素を選択することになる(もちろん、(1,0)でもよい)。
次いでCPU24は、階調値の合計が閾値を超えるか否か判断する(ステップS173)。閾値として実施例1と同様に"255"を用いる。閾値を超えると("YES"の場合)ステップS179以降の処理を行い、超えないと("NO"の場合)未処理画素を含めた重心の演算、階調値の合計を演算し(ステップS174、S175)、CPU24はその値をメモリ領域270に格納する。また、明度に応じた演算値を残り2色の対応する画素の階調値に加算する(ステップS176)。加算すべき演算値は実施例1の(式1)を用いて演算する。
また、ステップS179以降も、実施例1と同様に、最後に選択した画素の階調値が、階調値の合計値が閾値と等しくなるような値を持つものとして、まず(式3)を用いて重心の演算を行い(ステップS179)、加算処理を行い(ステップS180)、残った階調値を最後に選択した未処理画素に戻す(ステップS181)。この場合の加算処理でも加算すべき演算値は実施例1の(式1)を用いる。
セルを構成する画素の階調値の合計が、閾値と等しい(ステップS177で"YES")か、閾値を超える(ステップS173で"YES")まで、セルを構成する未処理画素の選択を行うことになる。そして、重心位置にドットを生成させるべく、CPU24は出力データ領域262a〜262dの重心位置に存在する画素位置に"255"を格納する(図6のステップS178)。図31(b)のブラック出力データ領域262dにこの例を示す。(1,1)の画素位置にKドットが打たれることになる。
図6に戻り、次いでCPU24は残り2色の色成分に対する減算処理を行う(ステップS182)。減算処理は実施例1と同様に図7のフローチャートに従う。すなわち、本処理(ステップS182)に移行すると、まずCPU24は、生成したドットに最も近い1色目(Z=1)の画素を選択する(ステップS1821)。この場合に選択すべき画素は、ドットが発生する画素位置そのものである。図31(c)の例では、1色目としてシアンが選択され、ブラックのドットが発生する(1,1)の画素位置が選択されることになる。選択方法は、実施例1と同様にそれ以外であってもよい。
次いでCPU24は、選択画素の階調値の合計が加算総量を超えるか否か判断する(ステップS1822)。図31(c)の例で加算総量は、ブラックの明度"20"、シアンの明度"45"で、ブラックのセルの階調値の合計が"255"であるから、255×(100−20)/(100−45)=370となる。マゼンダも加算総量は"370"となる。例えば、本ステップでCPU24が加算総量の演算を行いその結果をRAM26の図示しないメモリ領域に格納し、本ステップでの処理の際にその都度、CPU24が読み出すことによって階調値の合計値が加算総量を超えるか否か判断する。図31(c)の例では、これまで選択した画素は(1,1)の画素のみで、階調値の合計は"0"である。よって加算総量"370"を超えずに本ステップS1822で"NO"が選択される。
次いでCPU24は、ステップS1821で選択した画素に"0"を格納する(ステップS1823)。図31(c)の例では、シアン入力データ領域261aの(1,1)に"0"が格納されることになる。なお、実施例1と同様にCPU24は選択した画素の階
調値の合計を演算し、その値をワーキングメモリ270に格納するものとする。この例では、階調値"0"がメモリ270に格納される。
次いでCPU24は、加算された総量と階調値の合計が等しいか否か判定する(ステップS1824)。ワーキングメモリ270に格納された合計値をCPU24が読み出して加算総量と比較することで判断する。図31(c)の例では、等しくないので本ステップで"NO"が選択され、再びステップS1821に移行する。
再びステップS1821に移行した場合に、CPU24は、生成したドットに最も近い位置としてドットが生成する画素位置に隣接する上下左右の4つの画素を選択する。図31(c)の例では、(1,0)、(0,1)、(2,1)、(1,2)の4つの画素が選択される(シアン入力データ領域261a参照)。この場合でも、階調値の合計が全部で"199"となり、加算総量"370"を超えないのでステップS1824で"NO"が選択され再びステップS1822に移行する。
CPU24は、今度はドットが生成する画素位置に隣接する斜め方向の4つの画素を選択する(ステップS1822)。この場合にこれまで選択した画素の階調値の合計は全部で、"511"となり加算総量"370"を超える。よって、ステップS1822で"YES"が選択されて、ステップS1827に移行する。
ステップS1827でCPU24は、減算量の演算を行う。実施例1と同様に、加算総量に等しくなるように演算を行う。図31(c)の例では、ドットの生成する画素、及びその上下左右の画素の階調値の合計は"199"で加算総量"370"と等しくなるには、"171"分減算させればよい。最後に選択した画素は4つであるがそのうち(2,2)の画素の階調値は"0"でありこれ以上減算できない。よって、3つの選択画素から均等に減算されるよう、"57"づつ減算することになる。
次いでCPU24は、減算後に残った階調値を最後に選択した画素に戻す処理を行う(ステップS1828)。図31(c)の例では、各画素の階調値から"57"を減算した値が3つの画素の階調値として各画素に戻すことになる(同図のシアン入力データ領域261a参照)。
次いで、2色目(Z=2)の色成分に対する減算処理を行うべく、Zに1を加算する(ステップS1825)。一方、ステップS1824で加算総量と選択画素の階調値の合計とが等しければ("YES"の場合)、ステップS176やステップS180で加算した量減算したことになるので、2色目の処理を行うべくステップS1825に移行することになる。
以上の処理を繰り返すことで、最後に残った2色目の色成分に対する減算が行われ、再びステップS1825でZに1が加算され、ステップS1826で"YES"が選択され、残り2色の減算処理が終了するとともに、疎と判定された色のCC法の処理(図5、図6参照)が終了して、図23のステップS48に移行する。この段階での例を図31(c)のC、M各入力データ領域261a、261bに示す。
図23のステップS48においてCPU24は、未処理画素があるか否か判定する。実施例1と同様に、残り3色の色成分の入力データ領域261a、261b、261dすべてに"−1"が格納されていれば、未処理画素がないとして"NO"が選択され処理が終了することになる。図31(c)の例では、領域261a、261b、261dをラスター方向に探索すると(0,0)の画素位置でシアン、マゼンダに"−1"が格納されていないので未処理画素あり、と判断され本ステップS"YES"が選択され、再びステップ
S45に移行することになる。未処理画素がなくなるまで処理を繰り返すことになる。未処理画素がなくなったときの、各出力データ領域262a〜262dの例を、図32(a)に示す。各出力データ領域262a、262b、262dにはCC法による処理の結果が示されている。
ハーフトーンテーブルによる多値ディザ法とCC法による組み合わせでも、実施例1と同様に、目だにくいY成分に対しては処理の早い多値ディザ法による処理を行い、それ以外の色成分に対してはCC法による処理を行うようにしたため、画質の劣化を最小限に抑え、かつ高速化を図ることができる。また、各処理の過程で他の色成分に加算、減算処理を組み合わせたことにより、各色のドットが重なる確率が下がり、粒状的なドットの発生を抑え、モアレ縞のような干渉パターンの発生を回避することができる。さらに、各色のドットが重ならないため色の再現範囲が広がる(彩度が向上する)という効果を得ることができる。また、加算処理の際に明度に応じた値を加算しその後減算しているため、印刷用紙上単位面積あたりの明度が一定に保たれ、視覚的に快適な印刷出力を得ることができる。さらに、先に多値ディザ法による処理を行うことによって実施例1で述べた理由と全く同じ理由により、入力階調値に忠実にドットを生成させることができる。
上述の例では、加算減算処理を行って異なる色成分のドットが重ならないようにしたが、同じようにドットが生成した位置をマーキングしておき、他の色成分でドット位置を確定するときこのマーキングした位置を回避するように行うことでも同様にドットが重ならない。この場合も、実施例1と同様、先にY成分に対して多値ディザ法による処理を行い、そのドット位置をRAM26のメモリ領域に記憶しておく。そして、残りの色成分のCC法による処理の際にドット位置がメモリ領域に格納した位置と同じとき、領域に格納された位置のまわりの画素にドットを生成させるようにする。さらに、まわりの画素もメモリ領域にドット位置が格納されていれば、ドットの重なりを許容して当初CC法で決定した重心位置にドットをうつようにする。そのドットの位置もメモリ領域に格納し、次の色成分のCC法による処理において、メモリ領域に格納した2つの色成分のドット位置を回避するようにまわりの画素にドットを生成させるようにする。以下これを繰り返すことで、異なる色成分でドットが重ならず、粒状的なドット生成を抑え、快適な印刷出力を得ることができる。また、ドットが重ならないので色域が広がり、さらに、画質劣化を抑えハーフトーン処理の高速化を図ることもできる。具体的な処理は実施例1と同様に、図18乃至図20に示すフローチャートに従って処理が行われる。その詳細は、図18のステップS31で分散ディザ処理が多値ディザ処理に置き換わるだけで実施例1と同様なので、ここでは省略することにする。
[誤差拡散法とCC法とを用いたハーフトーン処理]
次に誤差拡散法とCC法とを組み合わせたハーフトーン処理について説明する。この場合も、CMYKの色成分のうち最も視覚的に目立ちにくい(明度の高い)Y成分に対して誤差拡散法による処理を行い、それ以外の色成分に対してCC法による処理を行う。図33に全体の処理のフローチャートを示す。
具体的な処理の詳細を説明する前に、誤差拡散法の概要について説明する。この誤差拡散法も、0から255までの256階調を有する画素に対して2値化(又は4値など)する場合の手法の一つである。例えば、閾値を"127"として、ある入力画素の階調値が"50"のとき、閾値以下なので2値化すると "0"となる。この場合、量子化値"0"に対して"50"(=50−0)の誤差が生じることになる。そこで、この誤差分をまわりの画素に拡散させて2値化を行う方法が、誤差拡散法である。以後これを繰り返し、閾値より大きいとドット生成を示す量子化データ(例えば"255")を生成し、そうでないとドットなしを示す量子化データ(例えば"0")を生成する。そして、この量子化
データをもとに印刷用紙等に印刷を行うようにするものである。
この誤差拡散法とCC法との組合せによる処理でも、最初に4つの色成分CMYKのうち最も目立ちにくい(最も明度の高い)Y成分に対して誤差拡散処理を行い、その後3つの色成分に対してCC法による処理を行う。CC法による処理は、入力階調値を保持したまま2値化を行うので、誤差拡散処理と比較してドット間距離が一定に保たれ画質の劣化が少ない。しかし、重心等の演算を行う分処理に時間がかかる。一方、誤差拡散処理は閾値との比較と誤差分をまわりに拡散するだけなのでCC法と比較して処理時間が短い。そこで、最も目立ちにくいY成分に誤差拡散処理を行い、それ以外の色成分にCC法による処理を行うことで、画質劣化を最小限に抑え、ハーフトーン処理の時間を短くするようにしたのである。
図33には、この処理全体のフローチャートを示し、図34乃至図38にはRAM26の具体例を示す。以下、フローチャートに沿って詳細を説明するが、上述した分散ディザ処理や多値ディザ処理と重複する部分は簡単に説明することにする。
まず、CPU24はROM25から誤差拡散とCC法によるハーフトーン処理のためのプログラムを読み出すことで処理が開始されることになる(ステップS70)。次いで、CPU24はY成分に対する誤差拡散処理を行う(ステップS71)。また、誤差拡散処理を先に行いその後CC法による処理を行っているのは、実施例1、2と同様である。すなわち、CC法による処理では生成されるドットが入力階調値を保持したまま演算するので、入力階調値に忠実なドットが生成される。一方、誤差拡散処理では上述の演算処理によって低い階調値に設定された画素にも誤差が伝播されていくため、閾値の配置によっては低い階調値に設定された画素にもドットが生成され、ドットの生成にばらつきが生じる確率が高くなってしまう。先にCC法で入力階調値に忠実なドットを生成したにも拘わらず、後で誤差拡散処理を行うと入力階調値に忠実なドットを生成することができなくなってしまう。かかる理由から先に誤差拡散処理を行い、その後CC法による処理を行うのである。
誤差拡散処理の具体例を図34乃至図36(b)に示す。本処理においても、RAM26内には各色成分の入力データが格納される入力データ格納領域261a〜261dを備え、また実施例1、2と同様のときと同様の構成を有する。また、各領域261a〜261dに格納されるデータは図8(a)と同様とする。最初にY成分に対して処理を行うので図34(a)の左図にイエロー入力データ領域261cを示す。また、RAM26には拡散されるべき誤差値が格納される拡散誤差領域264を備える。この領域264も入力データ領域261a〜261dと同様に各座標位置は、全体画像の画素位置に対応するものである。さらにRAM26内には、各色成分の量子化データが格納される出力データ領域262a〜262dを備える。この領域262a〜262dも実施例1等と同様の構成である。
Y成分に対する誤差拡散処理(ステップS71)においてCPU24は、まず、(0,0)の画素位置から順に処理を行う。本実施例において閾値は "128"として演算することにする。閾値より低い階調値のとき、CPU24は、ドットを生成しないことを示す"0"、閾値と同じか高いときはドットを生成することを示す"255"を出力データ領域262cに格納する。また、閾値との比較により誤差が発生したときは図34(b)に示す閾値マトリックスを用いてまわりの画素にその誤差値を分散させる。図34(b)のマトリックスで、"X"とあるのは、処理対象の画素を示す。そして、マトリックス内の値は拡散させるべき誤差値の比率を示す。処理対象の画素の右及び下に隣接する画素と、斜め右下及び左下に隣接する画素に対しては、2:1の比率で拡散させることになる。
まずCPU24は、(0,0)の画素位置に格納された階調値"45"と、閾値"128"とを比較する。入力階調値は閾値より低い値なのでCPU24は、対応する出力データ領域262c、すなわち(0,0)にドットを生成しないことを示す"0"を格納する。その例を図34(c)のイエロー出力データ領域262cに示す。このとき、入力階調値は出力値"0"に対して"45"の誤差が発生する。よってCPU24は、閾値マトリックスを用いて、誤差値"45"を拡散させることになる。この場合、画素位置(0,0)に対して左斜め下の画素は存在しないので、3つの画素に分散させることになる。すなわち、(0,0)の右隣と下の画素には、45×2/5=18、右斜め下の画素には、45×1/5=9の階調値を分散させることになる(図34(c)の拡散誤差領域264参照)。
次いでCPU24は、(1,0)の画素に対して誤差拡散処理を行う(図34(d)のイエロー入力データ領域261c参照)。このとき入力階調値は"45"、拡散誤差領域264には、当該画素位置に対して"18"の誤差値がある。よって、"63"(=45+18)と閾値とを比較することになる。この場合も閾値の方が高い値なので、CPU24は出力データ領域262cの対応する画素位置に"0"を格納する。また、誤差値"63"は拡散マトリックスを用いて拡散されることになる(図34(d)の拡散誤差領域264参照)。
次いでCPU24は、(2,0)の画素に対して誤差拡散処理を行う(図35(a)イエロー入力データ領域261c参照)。当該画素位置の階調値"45"と拡散誤差領域264の当該画素位置の誤差値"20"との和"65"と、閾値"128"とを比較することになる。この場合もCPU24は、出力データ領域262cに"0"を格納し、拡散マトリックから拡散すべき誤差値を演算して、図35(a)に示す値を得る。
以下、同様に(3,0)、(4,0)の画素に対して処理を行うことで図35(b)、(c)の値を得る。そして1行目の最後の画素として(5,0)の画素に対して処理を行う(図35(d)参照)。この場合、拡散マトリックスで右隣と右下に画素は存在しないのでそれ以外の2つの画素(下と左斜め下の画素)で誤差値"65"を拡散させることになる。
その後、各画素に対して同様に処理を進めるとCPU24は、(4,1)の画素位置で入力階調値と誤差値との和が閾値を超えることになる。すなわち、当該画素位置の階調値は"45"、誤差値は"91"であるから、その和"136"は閾値"128"を超えることになる。したがってCPU24は、出力データ領域262cの対応する画素位置(4,1)にドット生成を示す"255"を格納することになる。またCPU24は、この値"255"に対して、−119(=136−255)の誤差値を有するので拡散マトリックスを利用して誤差を拡散させることになる。この処理の結果を図36(a)に示す。
このように処理を全画素に対して行った結果、図36(b)のイエロー出力データ領域262cに格納された値を得る。
図33に戻り、Y成分に対する誤差拡散処理が終了するとCPU24は、Y成分に対してドットが生成されたか否か判断する(ステップS72)。ドットが生成された場合に、Yドットが発生する位置で他の色成分のドットが打たれないように加算、減算を行うためである。CPU24は、イエロー出力データ領域262cを各画素探索して"255"がこの領域262cに格納されたか否かで判断できる。図36(b)の例では、ドットが発生しているので本ステップで"YES"が選択される。
ステップS72で"YES"が選択されると処理はステップS73に移行し、CPU2
4はYの階調値に対して明度に応じた演算値を他の色成分に加算する処理を行う。処理の内容は、実施例1等と同様である。明度に応じた値を加算して、その後減算するので、Yドットと重なって他の色成分のドットが発生する確率が少なくなるとともに、単位面積あたりYドットとその他の色成分のドットとの明度が均一に保たれることになる。演算値は、実施例1で説明した(式1)を用いる。上述の例で演算した結果を図36(c)に示す。
次いでCPU24は、Yドット周囲の減算処理を行う(ステップS74)。減算処理自体は、実施例1と同様でそのフローチャートを図4に示す。すなわち、まず、Yの未処理のドットがあるか否か判断し(ステップS141)、未処理のドットがあれば、1色目(X=1)の色成分でYドットに最も近い画素を選択する(ステップS142)。最初の選択は、Yドットの画素位置そのもの、次の選択はYドットが発生する画素位置に隣接する上下左右、その次は隣接する斜め方向、と実施例1等と全く同様である。選択方法もそれ以外であってもよい。そしてその選択した画素の階調値の合計が、加算総量と等しいか(ステップS145で"YES")、超えるまで(ステップS143で"YES")、選択し続けることになる。
加算総量も同様に、全画素に対してステップS73(図33)で加算した加算値の合計を、発生したドットの数で除算した値となる。図36(c)の例では、シアン、マゼンダともに各画素"16"を加算したので全部で"576"(=16×36画素)を加算したことになり、この画素数でYドットは6個発生している。よって、1ドットあたり"96"(=576/6)を加算したことになる。これがシアン、マゼンダに対する加算総量となる。同様にブラックの加算総量は、"66"となる。
図4に戻り、選択画素の階調値が加算総量を超えた場合(ステップS143で"YES")、選択画素の階調値の合計が加算総量と等しくなるように、最後に選択された画素の階調値を演算することになる(ステップS148)。そして、残った階調値を最後に選択した画素に戻すことになる(ステップS149)。図36(d)に減算前の各入力データ領域261a、261b、261dの例を示し、1色目としてシアンが選択されて減算された例を図37(a)に示す。この場合も、実施例1等と同様に合計値格納領域263をRAM26内に備え、CPU24は選択画素の階調値の合計値を格納することになる。
図4に戻り、その後ステップS146に移行し2色目(X=2)、3色目(X=3)の当該Yドットが発生する位置で減算処理が行われることになる。2色目としてマゼンダ、3色目としてブラックが選択され減算処理が終了した時点でのマゼンダ、ブラックの各入力データの例を図37(b)、(c)にそれぞれ示す。そして、他にYドットが存在するときは、上述の処理を各色成分ごとに繰り返し、Yドットが存在しなくなるまで行う。存在しなくなるとステップS141で"NO"が選択され、図33のステップS75に移行することになる。すべてのYドットに対して減算処理が終了した場合の例を図38(a)に示す。この例に示すようにYドットが発生する画素位置で他の色成分の階調値が"0"となっている。このため、これらの色成分に対してCC法による処理を行うと当該位置でドット生成を示す値が割り当てられる確率が低くなり、Yドットとそれ以外の色成分のドットとが重なる確率が低くなるのである。
ステップS75でCPU24は、Y以外の他の色成分に対して未処理画素の探索を行う。すなわち、ラスター方向に(0,0)の画素から順に探索する。図38(a)の例では、(0,0)の画素位置で3つの色成分とも未処理であるから、この画素が選択されることになる。
次いでCPU24は、ドット密度が最も疎となる色を判定する(ステップS76)。実
施例1等と同様に、疎となる色成分から先にCC法による処理を行うことで、入力階調値に忠実なドットを生成させるためである。ドット密度の判定は、ドット生成を示す値で各色成分の階調値を除算しその値が最も低い色成分が最も疎である色とする。図38(a)の例では、ブラックが最も疎な色と判定されることになる。そして、CPU24は疎と判定された色成分に対してCC法による処理を行うことになる(ステップS77)。
このCC法による処理も実施例1等と同様である。すなわち、図5に示すフローチャートに従って処理が進められることになる。まず、ステップS75で選択した未処理画素を初期画素としてその重心を決定する(ステップS171)。重心の演算は上述の(式2)を用いる。演算した重心位置、階調値の合計値はCPU24によってワーキングメモリ270に格納され、出力データ領域262a、262b、262dの対応する画素位置に"0"が格納される。また、選択画素が以後未処理画素として選択されないよう"−1"が格納され、さらに明度に応じた演算値が他の残りの2つの色成分に加算される。演算値は(式1)を用いて演算される。
そして、CPU24はワーキングメモリ270に格納された重心位置を読出しその画素位置に最も近い画素を選択する(ステップS172)。複数あればランダムに選択する。周期パターンの発生を抑えるためである。その後、セルを構成する選択画素の階調値の合計が閾値と等しいか(ステップS177で"YES")、閾値を超えるまで(ステップS173で"YES")、画素を選択し続ける。CPU24は、選択した画素の明度に応じた演算値を他の2色の色成分に加算する(ステップS176)。そのまま疎となる色成分の階調値を残りの色成分に加算するのではなく、(式1)に示すように各色の明度に応じた演算値を加算しているので、その後の減算処理により、疎となる色成分と残りの色成分との明度が均一に保たれた画像出力を得ることができるのである。
またCPU24は、セルを構成する選択画素の階調値の合計が閾値を超えた場合(ステップS173で"YES")、閾値と等しくなるように最後に選択した画素の階調値を演算して、(式3)を用いて重心の演算を行う(ステップS179)。実施例1等と全く同様である。図38(b)のブラック入力データ領域261dに示すように、最後に(2,0)の画素を選択した場合にこの画素の階調値を、合計値が閾値である"255"となるように"21"として重心の演算を行う(図38(b)のワーキングメモリ270参照)。そして、この値"21"を元に(式1)を用いて明度に応じた加算値を演算して、他の色成分であるシアン、マゼンダに加算する(ステップS180)。次いで、CPU24は、ブラックの(2,0)に残った階調値"20"を戻すことになる(ステップS181、図38(b)のブラック入力データ領域261d参照)。
次いでCPU24は、図6に示す重心位置にドットを生成するための処理、すなわち重心位置にドット生成を示す"255"を格納する(ステップS178)。図38(b)の例では、重心位置はx重心≒0.81、y重心≒0.69となり、この位置に存在する(1,1)の画素位置にドット生成を示す"255"を格納することになる(同図のブラック出力データ領域262d参照)。なお、図5のステップS177で閾値と等しい場合("YES"の場合)、選択画素の階調値の合計が閾値と等しくなるのでセルを構成する画素の選択が終了して、本ステップS178に移行することになる。
図6に戻り次いでCPU24は、残り2色の減算処理を行う(ステップS182)。図7にフローチャートを示す。処理の内容は実施例1等と同様である。すなわち、1色目(X=1)の色成分においてステップS178で生成したドット位置をまず選択する。次の選択は、その位置の上下左右の隣接画素、その次は斜め方向に隣接画素と選択していく(ステップS1821)。選択した画素の階調値が加算総量と等しいか(ステップS1824で"YES")、超える(ステップS1822で"YES")まで画素を選択する。2色目(X=2)についても同様に繰り返すことになる(ステップS1826で"NO")。2色とも減算処理が終了すると(ステップS1826で"YES")、減算処理が終了するとともに、疎と判定された色成分のCC法による処理も終了し、処理は図33に戻りステップS78に移行することになる。
1色目(X=1)としてシアン、2色目(X=2)としてマゼンダが選択された場合の減算処理が終了したときの例を図38(b)の各入力データ領域261a、261bに示す。この例に示すように、シアン、マゼンダはKドットが発生する位置でその階調値がまわりの画素の階調値と比較して少ない値となっている。したがって、Kドットが発生する位置でシアン、マゼンダのドットが発生する確率が低くなり、ブラックとシアン、マゼンダのドットとが重なる確率が低くなる。よって、ブラックとシアン、マゼンダとでドットが重なったり近づきすぎたりすることで発生する粒状的なドットを抑え、視覚的に快適な画像出力を得ることができる。また、明度に応じた演算値を加算し、その後減算したのでブラックとシアン、マゼンダとの明度も単位面積あたり均一なものとなる。
図33に戻り、CPU24はステップS78に移行して他の3つの色成分のうち未処理画素があるか否か判断する。CPU24は、入力データ領域261a、261b、261dの各画素位置に"−1"が格納されたか否かで判断する。図38(b)の例では、(0,0)の画素位置でシアン、マゼンダともに"−1"が格納されておらず未処理画素となるので、本ステップS78で"YES"が選択され再びステップS75に移行する。この場合、(0,0)の画素位置でシアン、マゼンダ、疎となる色成分を判定して(ステップS76)、その色成分に対してCC法による処理を行う(ステップS77)。このときも実施例1、2と同様に、セルを構成する画素を選択するときに、他方の色成分に演算値を加算し、ドットが生成する位置で減算を行う。これによりシアン、マゼンダともにドットが重なる確率が低くなる。その結果、C、M、Y、K各成分のドットは互いに重ならず、視覚的に快適な画像出力を得ることができるのである。また明度も均一に保たれ、色域も広がる(彩度が向上する)のである。
そして、(0,0)の画素位置で残った色成分に対してCC法による処理を行うことになる。この最後に残った色成分に対しては、実施例1、2と同様にすでに他の色成分に対して加算、減算処理を行ったことになるので、ここでは加算、減算は行わない。そして、これを残り3色の入力データ領域261a、261b、261dすべての画素に"−1"が格納されるまで、すなわち未処理画素がなくなるまで(ステップS78で"NO"が選択)繰り返すことになる。図38(c)にその結果、各出力データ領域262a〜262dに格納される値の例を示す。
誤差拡散法とCC法による処理を組み合わせた本実施例においても、実施例1、2と同様に最も目立ちにくい(明度の高い)色成分に対して誤差拡散処理を行い、それ以外の色成分に対してCC法による処理を行うようにしたので、画質劣化を最小限に抑えハーフトーン処理の高速化を図ることができる。また明度に応じた演算値を加算、減算するようにしたので、単位面積あたりの明度が均一に保たれ、粒状性が改善され視覚的に快適な画像出力を得ることができる。この実施例3においても、実施例1、2と同様に、加算減算処理を行わずにドットの生成する位置をマーキングすることによっても同様の効果を得ることができる。このときの処理も図18乃至図20に示すフローチャートに沿って処理が進められる。この場合に図18のステップS31をY成分に対する誤差拡散処理と変更するだけで、実施例1で説明したものと同様である。
以上、本発明が適用される実施例1から実施例3まで説明したが、本発明はこれに拘泥せず、以下のような変形例においても同様の効果を奏する。
すなわち、実施例1から実施例3において、色変換部211と、本発明が適用されるハーフトーン処理部212とは画像出力装置20において処理が行われていたが、それ以外にも図39に示すように色変換部211とハーフトーン処理部212とがホストコンピュータ10内に設けられている場合でも本発明が適用でき、上述したものと全く同様の効果を奏することができる。この場合、ハーフトーン処理213から出力される量子化データがホストコンピュータ10から画像出力装置20に入力されて、パルス幅変調213から印刷エンジン22にドット生成を示す制御データが出力され印刷が行われることになる。
また、上述の例でホストコンピュータ10以外にも例えば携帯電話やPDA(Personal Digital Assistance)、情報携帯端末において、印刷対象のデータが生成されて画像出力装置20に出力されるようになされていてもよい。さらには、かかる端末に色変換処理部211や本発明が適用されるハーフトーン処理が行われるようにしてもよい。さらには、紙とディスプレイとを組み合わせた、いわゆる電子ペーパーにおいてかかる本発明のハーフトーン処理212が設けられ、2値化(又は多値化)された値で文書や画像を表示したり、画像出力装置20との組み合わせて印刷出力を得ることでも、上述した効果を得ることができる。
また、CC法による処理で、セルを構成する画素を選択するとき、演算した重心位置を用いて選択したが、それ以外にも階調値を考慮せず座標位置のみの中心位置から最も近い画素を選択するようにしてもよい。すなわち、(座標位置の和)/(選択画素の数)により演算した(x、y)の座標位置である。例えば、(0,0)と(1,0)の2つの画素をセルを構成する画素として選択した場合、その中心位置は(0.5,0)、この中心位置から最も近い位置にある未処理画素を選択する。さらに(0,1)を加えた3つの画素の場合、その中心位置は(0.5,0.5)、その画素位置から最も近い画素位置を未処理画素として選択するようにする。要するに、セルを構成する未処理画素を選択するときに常にテーブル等を利用して固定して選択するのではなく、画素選択のための基準点の位置が移動すればよい。このように移動することで、セルの形状が固定の場合と比較してより円状に成長する可能性が高まり、ドット間距離が保たれた快適な画像出力を得られるからである。
さらに上述の例では、画像出力装置20の印刷エンジン22はレーザプリンタの例で説明したが、それ以外にも他にもイエロー、マゼンダ、シアン、ブラック等のインクを吐出させて印刷を行うインクジェットプリンタや、さらにバブルジェット(登録商標)プリンタでも本発明は適用され、同様の効果を奏することができる。
さらに、カラーを表現する色成分としてC、M、Y、Kの4色の例で説明したが、それ以外にもライトシアン、ライトマゼンダを含めた6色や、さらにそれ以外の色成分を含めた複数色の場合でも同様の効果を得ることができる。この場合に、各色成分の明度を比較し最も明度の高い色成分に対して、分散ディザや多値ディザのディザ処理や、誤差拡散処理を行い、それ以外の成分に対してCC法による処理を行う。また、このときCC法による処理では、それ以外の色成分のうち最もドット密度の低いものから順番に処理を行うことになる。
また、ドットサイズの異なる場合でも本発明が適用できる。すなわち、各色の入力データが入力されると、例えばROM25に格納された分版関数を用いて、各色成分ごとにSドット、Lドットの2つの成分(さらにMドットを加えた3つの成分でもよい)に分版させる。最も目立ちにくい(明度の最も高い)色の2つの成分にディザ処理や誤差拡散処理を行い、それ以外の色成分の各ドット成分にCC法による処理を行う。CMYKの4つの色成分のときは、Y成分のS、L2つの成分にディザ処理等を行い、残り3つの色成分の各々2つの成分、合計6つ成分に対してCC法による処理を行うことになる。この6つの
成分のうち最もドット密度が低いものから先にCC法による処理を順次行うことになる。この場合でも、ドット成分ごとに各ドットが重ならずに、ドット間距離が一定に保たれることで粒状性が改善され、局所的な明度の偏りがなくなり視覚的に快適な画像出力を得ることができる。さらに画質の劣化を最小限に抑え、ハーフトーン処理の高速化を図ることができる。
さらに、最も目立つ色成分(最も明度の高い色成分)に対してCC法による処理を行い、それ以外の色成分に対して分散ディザ処理、多値ディザ処理、又は誤差拡散処理を行う場合も考えられる。最も目立つ色のドットに対して画質を考慮し、それ以外の色のドットは処理の高速化を図るのである。実施例1から実施例3と比較しで若干画質は落ちるがハーフトーン処理自体はより高速化を図ることができる。この場合でも、加算減算処理やマーキングによる処理を行うことでドットが重ならずドット間距離が一定に保たれて粒状性が改善され、明度を考慮して加算減算を行うことで明度が均一で視覚的に快適な印刷出力を得ることが可能となる。
本発明が適用されるシステム全体の構成を示す図である。 画像出力装置の具体的構成を示す図である。 分散ディザ法とCC法を組み合わせた処理全体の動作を示すフローチャートである。 Yドット周囲の減算処理の動作を示すフローチャートである。 疎と判定された色のCC法による処理の動作を示すフローチャートである。 疎と判定された色のCC法による処理の動作を示すフローチャートである。 残り2色の減算処理の動作を示すフローチャートである。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 加算、減算処理を行わない場合の処理全体の動作を示すフローチャートである。 他の色成分のCC法による処理の動作を示すフローチャートである。 他の色成分のCC法による処理の動作を示すフローチャートである。 RAM26の内部構成の例を示す図である。 ドット集中型の閾値マトリックスの例を示す図である。 多値ディザ法とCC法とを組み合わせた処理全体の動作を示すフローチャートである。 多値ディザ法の概念を示す図である。 多値ディザ法の概念を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 誤差拡散法とCC法とを組み合わせた処理全体の動作を示すフローチャートである。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 RAM26の内部構成の例を示す図である。 他のシステム全体の構成を示す図である。
符号の説明
10 ホストコンピュータ 20 画像出力装置 21 画像処理部 211 色変換部 212 ハーフトーン処理部 213 パルス幅変調部 22 印刷エンジン 24 CPU 25 ROM 26 RAM 261a シアン入力データ格納領域 261b マゼンダ入力データ格納領域 261c イエロー入力データ格納領域 261d ブラック入力データ格納領域 262a シアン出力データ格納領域 262b マゼンダ出力データ格納領域 262c イエロー出力データ格納領域 262d ブラック出力データ格納領域 263 合計値格納領域 264 拡散誤差格納領域 265 マーク記録用バッファ 270 ワーキングメモリ領域

Claims (6)

  1. 色毎の階調データを、前記色毎に出力画像を構成するドットに対応する出力画像データに変換するハーフトーン処理方法であって、
    少なくとも1つの色の前記階調データについて、各画素の階調値の総和が閾値以上となるまで新たな画素を次々と選択して画素群を形成し、前記画素群のうち、所定の画素に対して前記ドットに対応するデータを付与する第1のハーフトーン処理を行い、
    残りの色の階調データについては、前記第1のハーフトーン処理とは異なる第2のハーフトーン処理を行う、
    ことを特徴とするハーフトーン処理方法。
  2. 請求項1記載のハーフトーン処理方法において、
    前記第2の処理は、ディザ処理もしくは誤差拡散処理であり、
    前記第2の処理によって処理される色はイエローである、ことを特徴とするハーフトーン処理方法。
  3. 請求項1記載のハーフトーン処理方法において、
    前記第1の処理によって処理される色はブラックである、ことを特徴とするハーフトーン処理方法。
  4. 画素ごとにN(Nは整数)種類以上のレベル値を有する、それぞれ色相の異なる複数のカラーデータに対して、M種類(Mは整数)のレベル値を有するデータを出力する画像処理装置において、
    前記複数のカラーデータの少なくとも1つのカラーデータに対して、画素選択のための第1の基準点に基づいて画素ごとの前記N種類のレベル値の総和が閾値以上となるまで画素を選択して画素群を生成し、前記生成した画素群から第2の基準点を決定し、決定した前記第2の基準点に位置する画素に前記M種類のレベル値を付与し、前記画素群を生成する画素は更新された前記第1の基準点に基づいて選択する第1の処理手段と、
    前記複数のカラーデータのうち残りのカラーデータに対して、前記M種類のレベル値を有するデータに変換する第2の処理手段と、
    を備えることを特徴とする画像処理装置。
  5. 画素ごとにN(Nは整数)種類以上のレベル値を有する、それぞれ色相の異なる複数のカラーデータに対して、M種類(Mは整数)のレベル値を有するデータを出力する画像処理方法において、
    前記複数のカラーデータの少なくとも1つのカラーデータに対して、画素選択のための第1の基準点に基づいて画素ごとの前記N種類のレベル値の総和が閾値以上となるまで画素を選択して画素群を生成し、前記生成した画素群から第2の基準点を決定し、決定した前記第2の基準点に位置する画素に前記M種類のレベル値を付与し、前記画素群を生成する画素の選択は更新された前記第1の基準点に基づいて選択する第1の処理工程と、
    前記複数のカラーデータのうち残りのカラーデータに対して、前記M種類のレベル値を有するデータに変換する第2の処理工程と、
    を備えることを特徴とする画像処理方法。
  6. 画素ごとにN(Nは整数)種類以上のレベル値を有する、それぞれ色相の異なる複数のカラーデータに対して、M種類(Mは整数)のレベル値を有するデータを出力する処理をコンピュータに実行させるためのプログラムにおいて、
    前記複数のカラーデータのうち少なくとも1つのカラーデータに対して、画素選択のための第1の基準点に基づいて画素ごとの前記N種類のレベル値の総和が閾値以上となるまで画素を選択して画素群を生成し、前記生成した画素群から第2の基準点を決定し、決定した前記第2の基準点に位置する画素に前記M種類のレベル値を付与し、前記画素群を生成する画素の選択は更新された前記第1の基準点に基づいて選択する第1の処理と、
    前記複数のカラーデータのうち残りのカラーデータに対して、前記M種類のレベル値を有するデータに変換する第2の処理と、
    をコンピュータに実行させるためのプログラム。
JP2004267048A 2003-09-17 2004-09-14 ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム Pending JP2005117642A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004267048A JP2005117642A (ja) 2003-09-17 2004-09-14 ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003324873 2003-09-17
JP2004267048A JP2005117642A (ja) 2003-09-17 2004-09-14 ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2005117642A true JP2005117642A (ja) 2005-04-28

Family

ID=34554519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004267048A Pending JP2005117642A (ja) 2003-09-17 2004-09-14 ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2005117642A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251638A (ja) * 2006-03-16 2007-09-27 Konica Minolta Holdings Inc 画像形成装置、画像形成方法、及び画像形成プログラム
JP2011007981A (ja) * 2009-06-25 2011-01-13 Canon Inc 画像形成装置
JP2011160490A (ja) * 2011-05-24 2011-08-18 Konica Minolta Holdings Inc 画像形成装置、画像形成方法、及び画像形成プログラム
JP2013035209A (ja) * 2011-08-08 2013-02-21 Canon Inc 画像形成装置およびその方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251638A (ja) * 2006-03-16 2007-09-27 Konica Minolta Holdings Inc 画像形成装置、画像形成方法、及び画像形成プログラム
JP2011007981A (ja) * 2009-06-25 2011-01-13 Canon Inc 画像形成装置
JP2011160490A (ja) * 2011-05-24 2011-08-18 Konica Minolta Holdings Inc 画像形成装置、画像形成方法、及び画像形成プログラム
JP2013035209A (ja) * 2011-08-08 2013-02-21 Canon Inc 画像形成装置およびその方法

Similar Documents

Publication Publication Date Title
JP4165570B2 (ja) 画像処理装置,画像処理方法,及び画像処理プログラム
JP2007060111A (ja) 階調処理装置および方法
JP4062175B2 (ja) 画像処理装置、方法、プログラムおよび該プログラムを記録した記録媒体
US7286266B2 (en) Printer and image processing device for the same
JP4479663B2 (ja) 固定セルによるハーフトーン処理を行う画像処理装置,画像処理方法,及び画像処理プログラム
JP2005117642A (ja) ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム
US7433083B2 (en) Halftone-image processing device
US7369710B2 (en) Image processing device, image processing method and image processing program
JPWO2005109851A1 (ja) 画像処理装置、画像処理方法、及びプログラム
JP4742871B2 (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP2005136975A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2005295131A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2012165192A (ja) 印刷装置、および、印刷方法
JP2005080217A (ja) 画像処理装置、画像処理方法、及びプログラム
JP4642411B2 (ja) 黒色の選択的強調
JP4337670B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP7051350B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP2005341142A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP2005039413A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2005064941A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2005269131A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2006025220A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP4020115B2 (ja) 電子写真の画像処理装置及びその方法
JP2005311414A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP2005318402A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体