しかしながら、上記特許文献1には、縦方向の出力解像度と、横方向の出力解像度との比が、1:1である場合のみが考慮されており、出力解像度の縦横比が異なる場合に適用すべき誤差拡散範囲については何ら考慮されていない。例えば、インクジェット方式のプリンタの場合、紙送り方向(以下、縦方向と称する)における記録用紙の搬送距離を細かく制御することができるから、その縦方向の出力解像度を、紙送り方向に垂直な方向(以下、横方向と称する)の最大の出力解像度よりも大きくできる場合がある。この場合、画像の出力解像度を、例えば、600dpi×2400dpiとできる。
図7は、従来例のように、解像度の縦横比が異なる画像に同じ誤差拡散範囲を適用する場合を説明する図であって、(a)は、600dpi×600dpiの出力解像度の画像における誤差拡散範囲を模式的に示す図である。図7(b)は、600dpi×2400dpiの出力解像度の画像における誤差拡散範囲を模式的に示す図である。図7(a),(b)において、注目画素に対応する画素には*を図示し、周辺画素に対応する画素はグレー色で図示している。誤差拡散処理においては、周辺画素の誤差が注目画素に収集されて、注目画素の値が2値化される。図7(a),(b)に示すように、解像度の縦横比が異なる2種類の画像に対し、同一の誤差伝播マトリクスを適用し、同一の誤差拡散範囲および同一の係数で誤差拡散処理を行うと、注目画素に対して誤差を反映させる範囲の大きさおよび形状が異なることとなる。
その結果、縦方向と横方向と解像度が等しい場合を想定して設計された誤差伝播マトリクスを、縦方向と横方向との解像度が異なる画像に対して適用すると、画像の粒状性(画像のざらつき)に方向性が生じるという問題点を、本発明者は見いだした。
ここで、画像の粒状性を評価する指標として一般的に知られている、粒状性評価値(Graininess Scale:以下、GSと称する)について説明する。このGSは、一般的には以下の手順で求めることができる。
まず、評価対象の画像を空間周波数解析することによりウィナースペクトルを求める。そして、このウィナースペクトルを同心円で(すなわち半径毎に)積分することにより、各空間周波数成分の強度を表すパワースペクトルを求める。そして、得られたパワースペクトルに、人間の視覚度特性(Visual Transfer Function)を畳み込み演算することにより、GSを求めることができる。このように、GSは、各空間周波数成分の強度と、人間の視覚度特性とに基づいて算出されるから、人の目にとって画像のざらつきがどの程度目立つかを的確に表現することができる。なお、GSの算出方法は、Dooleyによって一般式が導かれているのでこれ以上の詳細な説明は省略する。
本発明者は、画像の粒状性の方向性を評価するために、ウィナースペクトルを角度毎に積分し、角度毎のGSを求めた。
図8は、従来例のように、解像度の縦横比が異なる画像に同じ誤差伝播マトリクスを用いて誤差拡散処理した場合の画像のGSを、角度毎に求めた結果を表すグラフである。同グラフにおいて、縦軸はGSであり、横軸は角度を表している。また、実線で示すグラフが1200dpi×1200dpiの画像のGS測定結果を表し、一点鎖線で示すグラフが600dpi×2400dpiの画像のGS測定結果を表している。なお、角度90°が画像の縦方向に相当し、角度0°,180°が画像の横方向に相当する。
図8に示すように、1200dpi×1200dpiの画像のGSは、角度毎の違いがあまり表れていない。すなわち、縦方向の粒状性と横方向の粒状性とでは、見た目上、あまり大きな違いがないことが分かる。
これに対し、600dpi×2400dpiの画像のGSは、90°の場合が最も低く、0°,180°の場合に高い。すなわち、横方向の粒状性が縦方向の粒状性よりも高い。この場合、横方向に粒状性が目立ち、画像においては粒状性が模様のように視認され、画質を低下させるおそれがある。
本発明は、上記問題点を解決するためになされたものであり、縦方向の解像度と横方向の解像度が異なる場合であっても、出力画像の粒状性に方向性が生じることを抑制できる画像処理装置および画像処理プログラムを提供することを目的としている。
この目的を達成するために、請求項1記載の画像処理装置は、周辺画素から誤差を収集し又は周辺画素へ誤差を拡散して、各画素の値をn値化する誤差拡散処理を実行し、印刷部に印刷を行わせるものであって、前記周辺画素の範囲を規定すると共に、注目画素に対する各周辺画素の位置に応じて前記誤差に重み付けをするために用いられる係数群が設定される誤差伝播マトリクスと、前記印刷部に印刷させる出力画像の解像度の縦横比を判断する判断手段と、前記判断手段により判断される前記解像度の縦横比に応じた前記係数群を、前記誤差伝播マトリクスに設定する設定手段と、前記設定手段により前記係数群が設定された前記誤差伝播マトリクスを用いて、前記出力画像の元となる画像データに対し誤差拡散処理を実行する実行手段とを備え、前記出力画像の縦方向の解像度と横方向の解像度とのうち、一方向の解像度が他方向の解像度よりも大きい場合、前記設定手段は、前記注目画素に対して前記一方向に位置する周辺画素について設定する前記係数群の総和が、前記注目画素に対して前記他方向に位置する周辺画素について設定する前記係数群の総和よりも大きくなるように、前記係数群を設定するものであり、前記一方向への誤差の重み付けの程度を示す一方向指数が、前記他方向への誤差の重み付けの程度を示す他方向指数よりも大きくなるように、前記係数群を前記誤差伝播マトリクスに設定するものであり、前記一方向指数は、前記注目画素から前記一方向にn画素、前記他方向にm画素離れた周辺画素について設定される係数に、n/(n+m)を乗算して得られる値を各係数について算出し、それらの総和として表される値であり、前記他方向指数は、前記注目画素から前記一方向にn画素、前記他方向にm画素離れた周辺画素について設定される係数に、m/(n+m)を乗算して得られる値を各係数について算出し、それらの総和として表される値である。
請求項2記載の画像処理装置は、請求項1記載の画像処理装置において、前記設定手段は、前記誤差伝播マトリクスに設定される前記係数群を、前記出力画像の解像度の縦横比に応じて変更する一方、前記誤差伝播マトリクスが規定する前記周辺画素の範囲を変更しないものである。
請求項5記載の画像処理プログラムは、周辺画素から誤差を収集し又は周辺画素へ誤差を拡散して、各画素の値をn値化する誤差拡散処理のためのプログラムであって、前記周辺画素の範囲を規定すると共に、注目画素に対する各周辺画素の位置に応じて前記誤差に重み付けをするために用いられる係数群が設定される誤差伝播マトリクスを備え、印刷部に印刷を行わせるコンピュータを、前記印刷部に印刷させる出力画像の解像度の縦横比を判断する判断手段と、前記判断手段により判断される前記解像度の縦横比に応じた前記係数群を、前記誤差伝播マトリクスに設定する設定手段と、前記設定手段により前記係数群が設定された前記誤差伝播マトリクスを用いて、前記出力画像に対し誤差拡散処理を実行する実行手段として機能させ、前記出力画像の縦方向の解像度と横方向の解像度とのうち、一方向の解像度が他方向の解像度よりも大きい場合、前記設定手段は、前記注目画素に対して前記一方向に位置する周辺画素について設定する前記係数群の総和が、前記注目画素に対して前記他方向に位置する周辺画素について設定する前記係数群の総和よりも大きくなるように、前記係数群を設定するものであり、前記一方向への誤差の重み付けの程度を示す一方向指数が、前記他方向への誤差の重み付けの程度を示す他方向指数よりも大きくなるように、前記係数群を前記誤差伝播マトリクスに設定するものであり、前記一方向指数は、前記注目画素から前記一方向にn画素、前記他方向にm画素離れた周辺画素について設定される係数に、n/(n+m)を乗算して得られる値を各係数について算出し、それらの総和として表される値であり、前記他方向指数は、前記注目画素から前記一方向にn画素、前記他方向にm画素離れた周辺画素について設定される係数に、m/(n+m)を乗算して得られる値を各係数について算出し、それらの総和として表される値である。
なお本発明は、画像処理装置、該画像処理装置を含む印刷装置、画像処理方法、画像処理装置を制御するコンピュータプログラム、該コンピュータプログラムを記録する記録媒体等の種々の態様で実現可能である。
請求項1記載の画像処理装置によれば、出力画像の解像度の縦横比に応じた係数群が、誤差伝播マトリクスに設定され、その誤差伝播マトリクスを用いて出力画像の元となる画像データに対し誤差拡散処理が実行されるので、縦方向の解像度と横方向の解像度が異なる場合であっても、出力画像の粒状性に方向性が生じることを抑制できるという効果がある。
また、注目画素に対して一方向にある周辺画素と、注目画素に対して他方向にある周辺画素とでは、より解像度が大きい一方向にある周辺画素について設定する係数群の総和の方が大きく重み付けされるので、縦方向の解像度と横方向の解像度が異なる場合であっても出力画像の粒状性に方向性が生じることを抑制できるという効果がある。
更に、一方向への誤差の重み付けの程度を示す一方向指数と、他方向への誤差の重み付けの程度を示す他方向指数との関係が、注目画素からの距離に応じた大小関係となるように係数群が設定されるので、縦方向の解像度と横方向の解像度との大小関係及び注目画素からの距離に対応した適切な係数群を設定できるという効果がある。
なお、「出力画像の解像度の縦横比」とは、出力画像の縦方向の解像度と横方向の解像度との比を意味している。
請求項2記載の画像処理装置によれば、請求項1記載の画像処理装置の奏する効果に加え、誤差伝播マトリクスに設定される係数群は、出力画像の解像度の縦横比に応じて変更されるので、出力画像の粒状性に方向性が生じることを抑制できるという効果がある。また、誤差伝播マトリクスが規定する周辺画素の範囲は変更されないので、誤差を一時的に格納するために必要なバッファの容量は一定であり、必要最低限の容量でバッファを設計できるという効果がある。さらに、誤差伝播マトリクスが規定する周辺画素の範囲を変更しないので、出力画像の解像度の縦横比が異なる場合であっても、共通のプログラムで誤差拡散処理を実行可能であるという効果がある。誤差伝播マトリクスが規定する周辺画素の範囲(すなわち、誤差伝播マトリクスの形状)が異なる場合、それぞれに専用のプログラムを準備しなければならず、多種類の解像度に対応することが困難となるのである。
請求項3記載の画像処理装置によれば、請求項2記載の画像処理装置の奏する効果に加え、複数セットの係数群が記憶された記憶手段から、出力画像の解像度の縦横比に対応する係数群が呼び出されて誤差伝播マトリクスに設定されるので、記憶手段にそれほど大きな負荷をかけずに、多種類の解像度に対応可能であるという効果がある。すなわち、出力画像の解像度として想定される解像度の縦横比毎の係数群を記憶しておけば良く、想定される解像度の縦横比毎のプログラムを準備する必要がない。
請求項4記載の画像処理装置によれば、請求項1から3のいずれかに記載の画像処理装置の奏する効果に加え、一方向の解像度が他方向の解像度のk倍である場合、一方向指数が他方向指数のk倍以上となるように係数群が設定されるので、解像度の縦横比に応じた適切な係数群を設定できるという効果がある。
請求項5記載の画像処理プログラムによれば、コンピュータで実行されることにより、請求項1の画像処理装置と同様の作用効果を奏する。
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の画像処理装置の実施形態であるパーソナルコンピュータ10(以下、PC10と称する)と、PC10に接続されたプリンタ40との電気的構成を示すブロック図である。本実施形態のPC10は、プリンタ40を制御して印刷を行わせるものであり、プリンタ40に印刷させる出力画像の縦方向の解像度と横方向の解像度とが異なる場合であっても、出力画像の粒状性に方向性が生じることを抑制できるように構成されている。
図1に示すように、PC10は、CPU11、ROM13、RAM15、ハードディスクドライブ17(以下、HDD17と称す)、インターフェイス19、入力装置21、表示装置23を主に有し、これらはバスライン20を介して互いに接続されている。
CPU11は、ROM13やHDD17に記憶される固定値やプログラムに従って、バスライン20により接続された各部を制御する。ROM13は、PC10の動作を制御するためのプログラムなどが格納されたメモリであり、RAM15は、CPU11の処理に必要なデータなどを一時的に記憶するための読み書き可能なメモリであり、誤差バッファ15aを備える。誤差バッファ15aは、誤差拡散処理において各画素から発生する誤差を格納するバッファである。本実施形態では、5×3画素分の誤差が格納できるように、誤差バッファ15aが設計される。
HDD17は、ハードディスクドライブであり、本発明の画像処理プログラムの一例であるプリンタドライバ17a、誤差拡散マトリクス17b、第1係数群17c、第2係数群17d、第3係数群17eを備える。誤差伝播マトリクス17bには、係数群17c,17d,17eのいずれかが設定される。CPU11は、誤差伝播マトリクス17bに設定された係数群に基づいて、画像データを誤差拡散処理する。なお、各係数群17c,17d,17eは、複数個の係数から構成される数値データであると共に、各係数が誤差伝播マトリクス17bのいずれの位置に設定されるかを示す位置データも含むデータである。係数群17c,17d,17eについては、図2,図3を参照して詳細に説明する。
入力装置21は、ユーザ指示を入力するためのものであり、例えば、キーボードやマウスなどで構成される。表示装置23は、例えば、CRTディスプレイや液晶ディスプレイなどにより構成され、各種処理内容や入力されたデータなどを視覚的に表示するものである。
プリンタ40は、インクジェット方式のプリンタであり、プリンタ40の動作を制御する制御部50を備える。この制御部50は、演算装置であるCPU41と、そのCPU41により実行される各種の制御プログラムやデータを記憶したROM43と、PC10から供給された印刷データや制御信号を記憶するためのメモリであるRAM45とを備えている。また、CPU41、ROM43、RAM45は、バスラインを介して互いに接続されており、バスラインは、集積回路であるASIC(Application Specific Integrated Circuit)46に接続されている。
さらに、制御部50は、プリンタ40と外部機器とを通信可能に接続するためのインターフェイス47と、印刷部49とに接続されている。
印刷部49は、画像が印刷される記録用紙を搬送する用紙搬送機構、インクを吐出するためのノズルが形成されたインクヘッド、そのインクジェッドを記録用紙の搬送方向に対し垂直な方向へ往復移動させるキャリッジ等を備える。CPU41は、PC10から入力される画像データに基づき、印刷部49を駆動して、行単位で画像を印刷させる。なお、本実施形態においては、記録用紙の搬送方向を縦方向と称し、記録用紙の搬送方向に垂直な方向を横方向と称している。
図2(a)は、誤差伝播マトリクス17bの構成を模式的に示す図である。誤差伝播マトリクス17bは、注目画素に対する各周辺画素の位置に応じて周辺画素から発生した誤差に重み付けをするために用いられる13個の係数Kが要素として設定される。説明の都合上、図2および図3においては、注目画素に対応する位置にアスタリスクを付している。誤差伝播マトリクス17bにおいて係数Kが設定された各位置は、それぞれ注目画素に対応する周辺画素の位置を規定している。換言すれば、誤差伝播マトリクス17bにおいて係数Kが設定された範囲が、周辺画素の範囲を規定している。
本実施形態の誤差拡散処理では、出力画像の左上端を構成する画素から順番に右方向へ、上から下方向へ、1つずつ注目画素として選択し、その注目画素の階調を表す値を、例えば、大ドット、中ドット、小ドット、ドット無しのいずれかに4値化(n値化に対応)する。具体的には、誤差バッファ15aに記憶された各周辺画素の誤差に、誤差伝播マトリクス17bに設定された各係数による重み付けをして、注目画素の値に加算する。なお、重み付けの際には、注目画素に対する各周辺画素の位置に対応した誤差伝播マトリクス17b内の要素として設定された係数Kが、各周辺画素の誤差に掛け合わされる。すなわち、係数Kとして「0」が設定されている位置については、対応する周辺画素の誤差は収集されるものの係数「0」が乗算されることにより、注目画素にはその誤差が反映されない。
そして、周辺画素から収集した誤差を加算した注目画素の値が、大ドット、中ドット、小ドット、ドット無しのいずれかに振り分けるための閾値と比較され、その閾値との大小関係に応じて、いずれかの値に4値化されて出力される。そして、注目画素の値を4値化する際に生じた誤差は、誤差バッファ15aに格納され、未処理の画素に伝播される。
図2(b)は、第1係数群17cが設定された誤差伝播マトリクス17bを模式的に示す図であり、図2(c)は、第2係数群17dが設定された誤差伝播マトリクス17bを模式的に示す図であり、図2(d)は、第3係数群17eが設定された誤差伝播マトリクス17bを模式的に示す図である。
なお、図2(b)から(d)に示すように、どの係数群を設定する場合においても、誤差伝播マトリクス17bにおいて係数が設定される位置は同一である。すなわち、設定する係数群を変更したとしても、変更するのは値のみであり、誤差伝播マトリクス17bが規定する周辺画素の範囲は、変更されない。換言すれば、誤差伝播マトリクス17bの形状は変更しない。したがって、係数群17c,17d,17eのうちいずれを誤差伝播マトリクス17bに設定する場合においても、共通のプログラムによる同一の処理で誤差拡散処理を実行可能である。また、誤差を一時的に格納するために必要な誤差バッファ15aの容量は、係数群17c,17d,17eのいずれを設定する場合も一定であり、必要最低限の容量で誤差バッファ15aを設計することができる。
図2(b)と図2(c)を比較すると明らかなように、第2係数群17dは、第1係数群17cに比較して、注目画素に対し縦方向に位置する周辺画素の係数が大きく、横方向に位置する周辺画素の係数が小さい。その結果、第2係数群17dが設定された誤差伝播マトリクス17bを用いれば、第1係数群17cが設定された誤差伝播マトリクス17bを用いる場合に比較して、注目画素に対し縦方向に位置する周辺画素の誤差の重みを大きくして、注目画素に反映できる。本実施形態のPC10は、出力画像の解像度の縦横比が1:1の場合(すなわち、縦方向の解像度と横方向の解像度が高い場合)、第1係数群17cを誤差伝播マトリクス17bに設定するが、縦方向の解像度が横方向の解像度の2倍である場合(例えば、600dpi×1200dpi)、第2係数群17dを誤差伝播マトリクス17bに設定するように構成されている。
同様に、図2(b)と図2(d)を比較すると明らかなように、第3係数群17eは、第1係数群17cに比較して、注目画素に対し横方向に位置する周辺画素の係数が大きく、縦方向に位置する周辺画素の係数が小さい。その結果、第3係数群17eが設定された誤差伝播マトリクス17bを用いれば、第1係数群17cが設定された誤差伝播マトリクス17bを用いる場合に比較して、注目画素に対し横方向に位置する周辺画素の誤差の重みを大きくして、注目画素に反映できる。本実施形態のPC10は、出力画像の解像度の縦横比が1:1の場合(すなわち、縦方向の解像度と横方向の解像度が高い場合)、第1係数群17cを誤差伝播マトリクス17bに設定するが、縦方向の解像度が横方向の解像度の1/2倍である場合(例えば、600dpi×300dpi)、第3係数群17eを誤差伝播マトリクス17bに設定するように構成されている。
その結果、本実施形態のPC10によれば、出力画像の縦方向の解像度と横方向の解像度が異なる場合であっても、出力画像の粒状性に方向性が生じることを抑制できるという効果が得られるのであるが、効果の詳細は後述する。
図3は、PC10が実行する印刷制御処理を示すフローチャートである。まず、CPU11は、ステップ(以下、ステップを省略)S301において、プリンタ40に印刷させる出力画素の元となる画像データを取得する(S302)。この画像データは、画像を構成する各画素の階調を、例えば256段階で表す値を画素毎に含む多階調の画像データである。次に、CPU11は、プリンタ40に印刷させる出力画像の解像度(すなわち出力解像度)を取得する(S304)。なお、本実施形態においては、S302で取得する画像データとプリンタ40に印刷させる出力画像の解像度は等しいものとして説明する。
次に、CPU11は、取得した解像度の縦横比を判断する(S306)。次に、CPU11は、出力画像の解像度の縦横比に応じた係数群をHDD17から呼び出し、誤差伝播マトリクス17bに設定する。
具体的には、縦方向の解像度と横方向の解像度とが等しい場合(S306,縦:横=1:1)、縦指数が1程度の第1係数群17aを誤差伝播マトリクス17bに設定する(S310)。一方、縦方向の解像度が横方向の解像度の2倍である場合(S306,縦:横=2:1)、縦指数が2以上の第2係数群17cを誤差伝播マトリクス17bに設定する(S308)。一方、縦方向の解像度が横方向の解像度の1/2倍である場合(S306,縦:横=1:2)、縦指数が0.5以下の第3係数群17dを誤差伝播マトリクス17bに設定する(S312)。
なお、「縦指数」とは、誤差伝播マトリクス17bにおける縦と横の誤差伝播比率を表す指標であり、縦指数が1より大きい場合、誤差は横方向よりも縦方向に大きく影響を及ぼし、縦指数が1未満である場合、誤差は縦方向よりも横方向に大きく影響を及ぼすことを表している。縦指数については、図4を参照して後述する。
そして、このようにして縦横比に応じた係数群が設定された誤差伝播マトリクス17bを用いて、画像データに対して誤差拡散処理を実行し、各画素の値を4値化して(S314)、プリンタ40へ出力する(S316)。
その結果、プリンタ40においては、画像データに基づいて大ドット、中ドット、または小ドットを記録用紙上に形成させ、出力画像を印刷させることができる。
本実施形態の印刷制御処理によれば、出力画像の解像度の縦横比に応じた係数群が、誤差伝播マトリクス17bに設定され、その誤差伝播マトリクス17bを用いて誤差拡散処理が実行されるので、プリンタ40において印刷される出力画像の縦方向の解像度と横方向の解像度が異なる場合であっても、出力画像の粒状性に方向性が生じることを抑制できる。
誤差伝播マトリクス17bに設定する係数群は、上述した係数群17c,17d,17eに限られず、様々に変更可能である。また、その種類も3種類に限られず、プリンタ40で印刷可能な出力画像の縦方向解像度および横方向解像度の全組み合わせについて、対応する係数群を準備し、HDD17に記憶しておいても良い。組み合わせ毎に記憶するのは係数群だけで良く、誤差拡散処理は共通のプログラムで実行可能であるため、メモリをそれほど圧迫しないからである。
以下、誤差伝播マトリクス17bに設定する係数群と、その係数群を設定することにより得られる効果との関係について説明するが、各係数群の特性を表すために、縦指数というパラメータを用いているので、まず縦指数の算出方法について説明する。
図4は、縦指数の算出方法を説明するための図であり、係数Kが設定された誤差伝播マトリクス17bを図示している。まず、設定された係数群の縦方向の指数を算出する。縦方向の指数は、縦方向への誤差の影響の度合いを表す値である。注目画素から縦方向にn画素、横方向にm画素離れた周辺画素について設定される係数に、n/(n+m)を乗算して得られる値を、各係数について算出し、それらの総和として、縦方向の指数を算出することができる。図4に示す例では、アンダーラインが付された係数Kには「1」を乗算し、囲み線で囲まれた係数Kには「2/3」を乗算し、グレー背景の係数Kには「1/2」を乗算し、無印の係数Kには「1/3」を乗算し、斜体の係数Kには「0」を乗算する。すなわち、縦方向の指数は、以下の式で求められる。
縦方向の指数=(K13+K23)+(K12+K14)・2/3+(K11+K22+K24+K15)・1/2+(K21+K25)・1/3+(K30+K31+K32)・0
次に、横方向の指数を算出する。横方向の指数は、横方向への誤差の影響の度合いを表す値である。注目画素から縦方向にn画素、横方向にm画素離れた周辺画素について設定される係数に、m/(n+m)を乗算して得られる値を、各係数について算出し、それらの総和として、横方向の指数を算出することができる。図4に示す例では、アンダーラインが付された係数Kには「0」を乗算し、囲み線で囲まれた係数Kには「1/3」を乗算し、グレー背景の係数Kには「1/2」を乗算し、無印の係数Kには「2/3」を乗算し、斜体の係数Kには「1」を乗算する。すなわち、横方向の指数は、以下の式で求められる。
横方向の指数=(K13+K23)・0+(K12+K14)・1/3+(K11+K22+K24+K15)・1/2+(K21+K25)・2/3+(K30+K31+K32)
そして、横方向の指数に対する縦方向の指数の比(縦方向の指数/横方向の指数)を、本実施形態では、「縦指数」と称している。すなわち、縦指数が大きいほど、横方向に比べて縦方向への誤差の影響の度合いが強い。
図5は、本発明の効果を調査するために設定した様々な係数群を、縦指数という概念で分類して示す図である。これらの係数群は、本発明に適用し得る。図5において、各マトリクスの最上段には係数群の名称(例えば、Jarvis、test1など)と、縦指数とを並べて記載している。図5に示すJarvisは、(J.F.Jarvis,C.N.Judice,and W.H.Ninke,"A Survey of Techniques for the Display of Continuous Tone Pictures on Bilevel Displays",Computer Graphicsand Image Processing.5,13-40(1976))で示された誤差伝播マトリクスの係数群であり、上述した縦指数を算出すると「1」となる。なお、Jarvisは上記実施形態の第1係数群17c(図2(b)参照)と同一である。
一方、test1からtest4は、縦指数が1未満であるように設定される係数群である。すなわち、横方向の指数が縦方向の指数よりも大きい。したがって、test1からtest4の係数群は、縦方向よりも横方向の解像度が大きい出力画像を印刷させる際の誤差拡散処理に適用することが望ましい。反対に、test5からtest9は、縦指数が1より大であるように設定される係数群である。すなわち、縦方向の指数が横方向の指数よりも大きい。したがって、test5からtest9の係数群は、横方向よりも縦方向の解像度が大きい出力画像を印刷させる際の誤差拡散処理に適用することが望ましい。なお、test9は上記実施形態の第3係数群17e(図2(b)参照)と同一である。
図6を参照して、縦指数と、出力画像に発生する粒状性の方向性との関係について調べた実験結果を説明する。図6は、出力画像の粒状性評価値(GS)を角度毎に算出した結果を表すグラフである。図6において、破線で示す600×2400は、Jarvisを設定した誤差伝播マトリクス17bで誤差拡散処理した600dpi×2400dpiの出力画像の角度毎のGSを表す。一点鎖線で示す1200×1200は、Jarvisを設定した誤差伝播マトリクス17bで誤差拡散処理した1200dpi×1200dpiの出力画像の角度毎のGSを表す。
上述したようにJarvisは、縦指数1の係数群であるから、縦方向の解像度と横方向の解像度とが等しい場合(1200×1200)、角度毎のGSに大きな起伏は表れず粒状性に方向性を生じさせていないことが分かる。一方、縦方向の解像度が横方向の解像度の4倍である場合(600×2400)、90度の角度(縦方向)では粒状性が低いのに対し、0度,180度(横方向)では粒状性が強く表れている。すなわち、出力画像の粒状性に方向性が生じていることがグラフから読み取れる。
図6において、点線で示すtest5、実線で示すtest8はそれぞれ、test5、test8の係数群が設定された誤差伝播マトリクス17bを用いて誤差拡散処理を行った、600dpi×2400dpiの出力画像の角度毎のGSを表す。図5に示したように、test5、test8は、共に縦指数が1より大きい係数群である。これらのtest5,test8によれば、Jarvisの誤差伝播マトリクス17bで誤差拡散処理した600dpi×2400dpiの出力画像に比較して、角度毎の粒状性の起伏は小さく抑制され、粒状性の方向性が低減していることが分かる。さらに、test8よりも大きい縦指数を有するtest5は、test8に比較して、粒状性の方向性が一層低減している。
表1は、jarvis,test1〜test9のそれぞれについて、角度毎のGSを求め、それらの最大値等をまとめて表した表である。表1において、600×2400は、Jarvisを設定した誤差伝播マトリクス17bによって処理した、600dpi×2400dpiの出力画像の角度毎のGSの最大値等を表し、jarvisは、Jarvisを設定した誤差伝播マトリクス17bによって処理した、1200dpi×1200dpiの出力画像の角度毎のGSの最大値等を表し、test1〜test9は、test1〜test9をそれぞれ設定した誤差伝播マトリクス17bによって処理した、600dpi×2400dpiの出力画像の角度毎のGSの最大値等を表す。
表1において、最大差は、角度毎のGSの最大値と最小値との差であり、標準偏差は、角度毎のGSの標準偏差である。したがって、最大差と標準偏差が大きいほど、粒状性に方向性が生じていると判断できる。また、粒状性評価値は、方向性を考慮しない(すなわち同心円状で積分したパワースペクトルに基づいて求められる)GSである。
ここで、表1から明らかなように縦方向の解像度が横方向の解像度の4倍である600dpi×2400dpiの画像に、縦指数が1未満のtest1〜test4、縦指数が1であるjarvisを適用した場合に比較して、縦指数が1より大きいtest5〜test9を適用した場合は、最大差と標準偏差とが低くなっている。さらに、表1に示す縦指数と、最大値、標準偏差との相関係数を求めると、−0.64となり、相関があると判断できる。一方、縦指数と方向性を考慮しない粒状性評価値との間では、相関係数は、−0.44となり、縦指数と粒状性評価値との間では相関が低いと判断できる。
上記実施形態において、CPU11がコンピュータの一例であり、プリンタドライバ17aが画像処理プログラムの一例であり、HDD17が記憶手段の一例であり、プリンタ40が印刷部の一例であり、S306を実行するCPU11が判断手段の一例であり、S308,S310,S312を実行するCPU11が設定手段の一例であり、S314を実行するCPU11が実行手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、処理済みの周辺画素から注目画素へ誤差を収集する(集中させる)方式のマトリクスについて説明したが、注目画素で発生した誤差を未処理の周辺画素へ分配する方式の誤差伝播マトリクスを用いて誤差拡散処理が行われる場合にも、本発明は適用可能である。
また、上記実施形態では、特許請求の範囲に記載のkの一例として、k=2の場合を例に取って説明した。すなわち、縦方向の解像度が横方向の解像度の2倍である場合、縦指数が2以上の第2係数群17dを誤差伝播マトリクス17bに設定し(S308)、横方向の解像度が縦方向の解像度の2倍である場合(S306,縦:横=1:2)、縦指数が0.5以下(すなわち、横方向の指数が縦方向の指数の2倍以上)である第3係数群17eを誤差伝播マトリクス17bに設定することとした(S312)。しかしながら、上記実施形態は一例であり、kは2以外の値であっても良い。また、上記実施形態では、縦方向の解像度が横方向の解像度のk倍である場合、縦指数k以上の係数群が誤差伝播マトリクス17bに設定されるものとして説明したが、必ずしもこの関係が成立していなくても良く、解像度がより大きい一方向の指数が、解像度がより小さい他方向の指数よりも大きい関係が成立している係数群を設定すれば、粒状性の方向性を抑制する、という効果を奏することができる。
また、上記実施形態では、PC10において印刷制御処理(図3)が実行されるものとして説明したが、この印刷制御処理は、例えば、プリンタ40の制御部50において実行されても良い。この場合、プリンタ40(図1参照)が本発明の画像処理装置の一例に相当し、印刷部49が印刷部の一例に相当する。また、CPU41がコンピュータの一例に相当し、ROM43に格納されたプログラムが画像処理プログラムの一例に相当する。