(57)【特許請求の範囲】
【請求項１】
入力画像を所定の複数画素単位でブロック化し、各ブロック内の各画素の値と、該各ブロックに配分された誤差とを加算して求めた各ブロックのブロック値を出力するブロック化手段と、
前記ブロック化手段が出力した各ブロックのブロック値に基づいて、ブロックごとに、該各ブロック内でそれぞれディザ処理をするディザ処理手段と、
前記ディザ処理により生じた各ブロックの誤差を、該各ブロックの周囲のブロックに対して拡散させる誤差拡散処理手段と、を備えたことを特徴とするハーフトーン処理装置。
【請求項２】
入力画像を所定の複数画素単位でブロック化し、各ブロックに配分された誤差を含めて、各ブロック内の各画素の値を平均化したブロック値を、ブロックごとに出力するブロック化手段と、
前記ブロック化手段が出力した各ブロックのブロック値に基づいて、ブロックごとに、該各ブロック内でそれぞれディザ処理をするディザ処理手段と、
前記ディザ処理により生じた各ブロックの誤差を、該各ブロックの周囲のブロックに対して拡散させる誤差拡散処理手段と、を備えたことを特徴とするハーフトーン処理装置。
【請求項３】
前記ブロック化手段は、入力画像をｎ×ｎ画素のブロックサイズでブロック化する請求項１または２に記載のハーフトーン処理装置。
【請求項４】
前記ブロックサイズは、入力画像中に存在するエッジよりも小さくなるように設定されている請求項３に記載のハーフトーン処理装置。
【請求項５】
入力画像の性質に応じて前記ブロックサイズを設定するブロックサイズ設定手段を更に備えた請求項３または４に記載のハーフトーン処理装置。
【請求項６】
指定された出力画像の品質に応じて前記ブロックサイズを設定するブロックサイズ設定手段を更に備えた請求項３または４に記載のハーフトーン処理装置。
【請求項７】
入力画像の複数画素を含むブロックについて、該ブロック内の各画素の値と、該ブロックに配分された誤差とを加算して求めた該ブロックのブロック値を出力するステップと、
前記出力されたブロック値に基づいて、前記ブロック内でディザ処理をするステップと、
前記ディザ処理により生じた前記ブロックの誤差を、該ブロックの周囲のブロックに対して拡散させるステップと、を含んでなることを特徴とするハーフトーン処理方法。
【請求項８】
入力された画像データに基づいて印刷を行うプリンタにおいて、
前記入力された画像データをＣＭＹ表色系データに変換する色変換手段と、
前記色変換された画像データをハーフトーン処理して印刷用イメージデータを生成するハーフトーン処理手段と、
前記生成された印刷用イメージデータに基づいて印刷を行うための印刷手段とを備え、
前記ハーフトーン処理手段は、
入力された画像データを所定の複数画素単位でブロック化し、各ブロック内の各画素の値と、該各ブロックに配分された誤差とを加算したブロック値を、ブロックごとに出力するブロック化手段と、
前記ブロック化手段が出力した各ブロックのブロック値に基づいて、ブロックごとに、該各ブロック内でそれぞれディザ処理をするディザ処理手段と、
前記ディザ処理により生じた各ブロックの誤差を、該各ブロックの周囲のブロックに対して拡散させる誤差拡散処理手段と、を含んでなることを特徴とするプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多階調の入力画像をハーフトーン処理するのに用いて好適なハーフトーン処理装置及びハーフトーン処理方法に関する。
【０００２】
【従来の技術】
例えば、プリンタ等の画像出力機器では、ドットの有無によって画像を表現するため、本質的に二階調で画像を表現する。そこで、プリンタ等の機器では、複数のドットから各画素を表現し、階調値に応じてドットのオンオフパターンを変化させることにより、擬似的な連続階調を実現している。
【０００３】
この中間階調表現技術はハーフトーン（halftone）と呼ばれ、ハーフトーンの方法としては、例えば、ディザ法（dither）や誤差拡散法が知られている。ディザ法では、ディザマトリクス等を用いることにより、入力された画素の階調をドットの粗密に変換する。誤差拡散法では、各画素の入力階調と出力されるハーフトーンセルの階調値との誤差を計算し、累積誤差が零となるように、入力値と出力値との差分を周囲の画素に分散させる。従って、誤差拡散法の方が、単純なディザ法よりも高度な処理を行っており、その分、ハーフトーン処理の精度が向上している。
【０００４】
【発明が解決しようとする課題】
上述した通り、誤差拡散法によれば、累積誤差が０となるように、各画素に割り当てるドットの粗密パターンを決定していくため、演算量が多く、ＣＰＵの負荷が増大する。特に、カラー画像の場合は、各画素各色成分毎に演算を行う必要があるため、ＣＰＵの負担が大きい。
【０００５】
従って、パーソナルコンピュータやワークステーション等のように、演算能力の優れたＣＰＵと多くのメモリを利用できる場合はともかく、例えば、プリンタやデジタルカメラあるいはスキャナ等の機器に組み込まれる組込型ＣＰＵは、一般的に演算能力が低いため、誤差拡散法によってハーフトーン処理を行うと、他の処理を行うことができず、印刷処理全体の効率が低下する。
【０００６】
本発明は、上記のような課題に鑑みなされたもので、その目的は、高速にハーフトーン処理を行えるようにしたハーフトーン処理装置及びハーフトーン処理方法を提供することにある。
【０００７】
【課題を解決するための手段】
上記目的達成のため、本発明では、それぞれ処理単位を変えた複数のハーフトーンアルゴリズムを用いて、ハーフトーン処理を行う。
【０００８】
即ち、本発明のハーフトーン処理装置は、入力画像を所定の複数画素単位でブロック化するブロック化手段と、ブロック単位で誤差拡散させる誤差拡散処理手段と、誤差拡散された各ブロックを該各ブロック内でそれぞれディザ処理するデザ処理手段とを備えている。
【０００９】
ブロック化手段は、入力画像を所定の複数画素単位で扱う。例えば、ブロック化手段は、ｎ×ｎ画素のブロックサイズでブロック化し、ブロック内の各画素の値を加算して出力させる。あるいは、ブロック化手段は、ブロック内の各画素の値を平均化して出力することもできる。誤差拡散処理手段は、ブロック単位で誤差拡散処理を行う。即ち、誤差拡散処理手段は、あるブロックの入力値（加算値又は平均値）と出力値との誤差を、該ブロックの周辺に位置する他のブロックに所定の比率で分散させる。ディザ処理手段は、例えば、所定のディザマトリクスを用いる等により、各ブロック内でディザ処理を行う。各ブロック内でディザ処理を行う一方、ブロック単位で誤差拡散処理を行うことにより、ブロックサイズによっても相違するが、誤差拡散に要する演算を少なくして、高速にハーフトーン処理を行うことができる。
【００１０】
ここで、ブロックサイズは、入力画像中に存在するエッジよりも小さくなるように設定することができる。本発明では、複数画素からなるブロック単位で誤差拡散処理を行うため、ブロックサイズよりも狭いエッジ（強いエッジ）が存在すると、ブロック単位の誤差拡散によってエッジの急峻さが失われる可能性があるためである。
【００１１】
そこで、好適な実施形態では、更に、入力画像の性質に応じてブロックサイズを設定するブロックサイズ設定手段を備えている。入力画像の性質としては、例えば、急峻なエッジの少ない風景等の画像であるか、エッジの多いテキストやグラフィックス主体の画像であるか、入力画像の解像度（低解像度の画像か高解像度の画像か）等を挙げることができる。
【００１２】
また、ブロックサイズ設定手段は、出力画像の品質に応じてブロックサイズを設定することもできる。例えば、ユーザーが処理時間よりも出力品質を重視するような場合には、ブロックサイズを小さく設定し、試し刷りやサムネイル印刷のように出力品質をそれほど問わない場合は、ブロックサイズを大きく設定することができる。
【００１３】
【発明の実施の形態】
以下、図１〜図７に基づき、本発明の実施の形態をプリンタに適用した場合を例に挙げて説明する。
【００１４】
１．第１の実施の形態
図１〜図４は本発明の第１の実施の形態に係るハーフトーン処理装置が適用されたプリンタの構成を示すブロック図である。
【００１５】
プリンタ１は、それぞれ後述するように、メモリカード２，復号部３，ＲＧＢ変換部４，拡大／縮小処理部５，ＣＭＹＫ色変換部６，ハーフトーン処理部７及びプリントエンジン８を備えて構成されている。
【００１６】
例えば、「原画像保持手段」として表現可能なメモリカードは、プリンタ１に着脱可能に設けられており、ディジタルカメラ等で撮影した画像データ（原画像データ）を内部に記録している。メモリカード２には、例えば、JPEG（Joint Photographic Experts Group）やExif（Exchangeable Image File Format）等の圧縮ファイル形式で複数の画像データが格納可能である。
【００１７】
メモリカード２から読み出された画像データは、復号部３により復号され、ＲＧＢ変換部４によりＲＧＢ表色系のイメージデータに変換される。拡大／縮小処理部５は、例えば、最近傍補間法等により、ＲＧＢ変換された画像データを所定の倍率に拡大したり縮小したりするものである。なお、拡大／縮小処理以外に、回転等の他の処理を行うように構成してもよい。
【００１８】
ＣＭＹＫ色変換部６は、指定された拡大処理等が行われたＲＧＢ表色系の画像データをＣＭＹ表色系の画像データに変換するものである。そして、ＣＭＹＫ色変換された画像データは、ハーフトーン処理部７によってハーフトーン処理され、プリントエンジン８に入力される。
【００１９】
ハーフトーン処理部７は、ブロック化処理部１１，ディザ処理部１２及び誤差拡散処理部１３を備えている。
【００２０】
「ブロック化手段」としてのブロック化処理部１１は、入力された多階調のＣＭＹＫカラー画像データを、ｎ×ｎ画素のサイズでブロック化し、ブロック内の画素の階調値を加算して出力するものである。
【００２１】
図２及び図３と共に後述するように、「ディザ処理手段」としてのディザ処理部１２は、例えば、ディザマトリクス等を用いることにより、ブロック毎にディザリングを行う。「誤差拡散手段」としての誤差拡散処理部１３は、ディザリングの終了したブロックの誤差を、該ブロックの周辺に存在する他のブロックに所定の比率で配分することにより、ブロック単位で累積誤差が零となるように処理を行うものである。
【００２２】
次に、図２及び図３を参照して、本実施の形態によるハーフトーン処理を説明する。
【００２３】
図２（ａ）に示すように、ハーフトーン処理部７に入力された画像データが、それぞれ多階調の値を有する画素ａ１〜ａ３６から構成されているとする。ブロック化処理部１１は、ｎ×ｎ画素（図の例では、ｎ＝２）のサイズで複数の画素をブロック化する。なお、ここで、ブロック化するとは、ハーフトーン処理に際して、ブロック単位で扱うという意味である。図２（ｂ）に示すように、各ブロックＡＳ１〜ＡＳ９の値は、該各ブロックを構成する各画素の階調値を加算したものとなる。
【００２４】
図３（ａ）に示すように、各ブロックＡＳ１〜ＡＳ９のそれぞれについて、Ｔｈ１〜Ｔｈ４の値が設定されたディザマトリクスを適用することにより、各ブロック毎にディザリングする。これにより、多階調の画像が二値化され、擬似的に階調表現される。ブロックをディザリングした時に発生した誤差は、累積誤差が零となるように周囲のブロックに分散される。
【００２５】
図３（ｂ）は、具体的に数値をいれた処理の一例である。ここで、原画像の各画素は、それぞれ０〜１５の１６階調を有するものとする。図３（ｂ）の左側に示すように、ある画像ブロックを構成する各画素の値が４，５，３，５である場合、これらを加算した値は「１７」となる。
【００２６】
次に、この加算されたブロックに対して、ディザマトリクスを適用する。ここで、１６階調の画素を４個加算しているため、ブロックの階調値は、６４階調を有することになる。従って、ディザマトリクスの値は、０〜６３の範囲内に存在する。図３（ｂ）の右側に示すように、ディザマトリクスを適用した結果、加算値「１７」よりも小さい値が設定された箇所（マトリクス値「１２」の箇所）にのみ「１」がセットされ、他の箇所には「０」がそれぞれセットされる。これにより、４画素を加算してなる一つのブロックが二値化される。なお、ブロック内の画素の階調値を平均化してもよい。その場合、ディザマトリクスの値は０〜１５の範囲に制限される。
【００２７】
ここで、このディザリングの結果に着目すると、４つの領域のうち１つのみが「１」であり、他は全て「０」である。一つのブロック全体で考えた場合、４つの領域全てに「１」がセットされた場合が６４階調であるから、一つの領域に「１」がセットされた場合は、このブロックは１５階調で二値化出力されたものとみなすことができる。そして、このブロック全体の合計階調値は「１７」であるから、出力階調値「１５」との差分は「２」となる。この二値化誤差「２」を周辺のブロックに所定比率で配分することにより、誤差を拡散し、全体として累積誤差が零になるようにすればよい。
【００２８】
そして、以下同様、次のブロックについて、再び４画素の階調値を合計して、ディザリングし、入力値と出力値との誤差を周辺のブロックに分配する。この処理を入力画像の全体にわたって行うと、印刷用の二値化イメージデータが生成される。なお、先の説明では、４画素の合計値を「１７」であると述べたが、より正確には、それより以前にディザリングされたブロックから配分される誤差が加算される。ここで、注意すべき点は、４画素からなるブロック内でディザリングを行い、誤差拡散はブロック単位で行っている点である。
【００２９】
次に、図４に基づき本実施の形態の作用を説明する。以下、ステップを「Ｓ」と略記する。
【００３０】
まず、ＣＭＹＫ色変換された原画像から１ブロック分の画素データを読出し（Ｓ１）、各画素の階調値を加算する（Ｓ２）。次に、ディザマトリクスを適用する等して、このブロックをディザリングし（Ｓ３）、出力された二値化データを保持しておく（Ｓ４）。そして、入力値（ブロックを構成する各画素の階調値合計）と出力値（ブロックの二値化結果）との誤差を算出し（Ｓ５）、この誤差を周辺のブロックに所定の比率で拡散させる（Ｓ６）。
【００３１】
全ブロックについてハーフトーン処理が終了したか否かを判定し（Ｓ７）、処理が完了していない場合は、次のブロックにポインタを移動させ（Ｓ８）、上述したＳ１〜Ｓ６の処理を繰り返す。原画像の全体を二値化した場合には、ハーフトーン処理を終了する。
【００３２】
このように構成される本実施の形態では、それぞれ処理単位の異なる複数のハーフトーン処理アルゴリズムを用いてハーフトーン処理を行うため、以下の効果を奏する。
【００３３】
第１に、ｎ×ｎ画素のブロック内でディザリングし、誤差拡散はブロック単位で行うため、１画素単位で誤差拡散する従来方法に比較して、およそｎの二乗倍だけ処理を高速化することができる。従って、例えば、プリンタ等の機器に組み込まれたＣＰＵに与える負荷を少なくすることができ、この負担軽減分だけ他の処理にＣＰＵ資源を割り当てることができる。
【００３４】
第２に、ブロックサイズｎを、２〜４程度の比較的小さい値に設定することにより、画質の大幅な劣化を招くことなく、高速にハーフトーン処理を行うことができる。特に、例えば、１００万画素程度の比較的低解像度の自然画像をハーフトーン処理する場合等は、印刷出力される画像の品質を低下させずに、高速な処理を行うことができる。自然画像中にはそれほど強いエッジが存在せず、しかも低解像度であるため、急峻さの目立つエッジが存在する可能性も少ない。自然画像の場合は、テキストやグラフィックスとは異なり、画像が滑らかに変化するため、２００〜３００dpi程度の解像度があれば十分実用に耐える。一方、プリントエンジン８は、通常６００dpi程度の印刷解像度を有する。従って、２×２画素のブロックにまとめてハーフトーン処理を行う場合でも、ハーフトーン処理の入力段階では３００dpi以上の画素密度を維持することができ、印刷品質上の問題は殆どない。
【００３５】
２．第２の実施の形態
次に、図５に基づいて本発明の第２の実施の形態を説明する。以下の各実施の形態では、上述した構成要素と同一の構成要素に同一の符号を付し、その説明を省略するものとする。本実施の形態は、ランダムディザによってハーフトーンを行う場合の一例である。本実施の形態では、説明の便宜上、それぞれ１６階調を有するIn00，In01，In10，In11の４つの画素からなるブロックを、ハーフトーン処理する場合を例に挙げて説明する。なお、出力画素は、Out00，Out01，Out10，Out11とする。
【００３６】
まず、ブロック内の各画素の階調値を加算する（Ｓ１１）。次に、乱数Randを取得し（Ｓ１２）、例えば、この取得した乱数Randの値と２進数の「１５」とのＡＮＤを取ることにより、乱数Randの値が０〜１５の範囲内に収まるよう制限する（Ｓ１３）。
【００３７】
次に、ブロック内の階調加算値SUMと乱数Randとを比較する（Ｓ１４）。階調加算値SUMが乱数Rand以上の場合は、出力画素Out00の値として「１」をセットすると共に、階調加算値SUMと出力値「１５」との誤差を算出する（Ｓ１５）。一方、階調加算値SUMが乱数Randよりも小さい場合は、出力画素Out00の値として「０」をセットする（Ｓ１６）。
【００３８】
以下、同様にして、Out01〜Out11の各出力画素の値を決定していく（Ｓ１７〜Ｓ３１）。最後に、各出力画素Out00〜Out11で発生した誤差を積算し、この誤差を周辺に位置する他のブロックに所定の比率で拡散させる（Ｓ３２）。
【００３９】
このように構成される本実施の形態でも、前記第１の実施の形態と同様の効果を得ることができる。
【００４０】
３．第３の実施の形態
次に、図６及び図７に基づいて本発明の第３の実施の形態を説明する。本実施の形態の特徴は、原画像の特性や出力画像の品質等に応じてブロックサイズを設定するブロックサイズ設定部２１を備えている点にある。
【００４１】
即ち、「ブロックサイズ設定手段」としてのブロックサイズ設定部２１には、原画像の特性及び出力画像の品質等が入力されている。ここで、原画像の特性としては、例えば、原画像の種類（自然画像かテキスト又はグラフィック画像か）、原画像の解像度等を挙げることができる。印刷品質や印刷モードとしては、例えば、試し刷り印刷か否か、サムネイル印刷か否か、画像拡大率、指定された印刷解像度等を挙げることができる。
【００４２】
図７のフローチャートに示すように、ブロックサイズ設定部２１は、印刷モードや印刷品質等を取得し（Ｓ４１）、最適なブロックサイズを設定するようになっている（Ｓ４２）。
【００４３】
具体的には、例えば、テキストやグラフィックス主体の画像が入力された場合は、ブロックサイズｎを小さく設定し（ｎ＝１を含む）、自然画像が入力された場合は、ブロックサイズｎを大きめに設定することができる。また、例えば、試し刷り印刷やサムネイル一覧印刷等のように、印刷品質をそれほど問わない印刷モードの場合には、ブロックサイズｎを大きめに設定することができる。なお、ブロックサイズｎは、ユーザーが手動で設定できるようにしてもよい。
【００４４】
このように構成される本実施の形態でも、前記各実施の形態と同様の効果を得ることができる。また、これに加えて、原画像の特性や出力画像の品質に応じたブロックサイズを設定できるため、使い勝手がより向上する。
【００４５】
なお、当業者であれば、前記各実施の形態に記載された本発明の要旨の範囲内で種々の追加、変更、組合せ等が可能である。
【００４６】
【発明の効果】
以上説明した通り、本発明に係るハーフトーン処理装置及びハーフトーン処理方法によれば、演算量を低減することができ、短時間でハーフトーン処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るハーフトーン処理装置を適用したプリンタのブロック図である。
【図２】原画像をブロック化する様子を示す説明図であって、図２（ａ）は原画像、図２（ｂ）はｎ×ｎ画素でブロック化した様子をそれぞれ示す。
【図３】ハーフトーン処理方法を示す説明図であって、図３（ａ）はブロックにディザマトリクスを適用して二値化する様子を示し、図３（ｂ）は具体的な数値を入れてハーフトーン処理の全体概要を示す説明図である。
【図４】ハーフトーン処理方法の概略を示すフローチャートである。
【図５】本発明の第２の実施の形態に係るハーフトーン処理方法の要部を概略的に示すフローチャートである。
【図６】本発明の第３の実施の形態に係るハーフトーン処理装置を適用したプリンタのブロック図である。
【図７】ハーフトーン処理方法の概略を示すフローチャートである。
【符号の説明】
１  プリンタ
２  メモリカード
３  復号部
４  ＲＧＢ変換部
５  拡大／縮小処理部
６  ＣＭＹＫ色変換部
７  ハーフトーン処理部
８  プリントエンジン
１１  ブロック化処理部
１２  ディザ処理部
１３  誤差拡散処理部
２１  ブロックサイズ設定部
【図１】
0003859122.tif 000002
【図２】
0003859122.tif 000003
【図３】
0003859122.tif 000004
【図４】
0003859122.tif 000005
【図５】
0003859122.tif 000006
【図６】
0003859122.tif 000007
【図７】
0003859122.tif 000008