JP5573706B2 - 画像処理装置及び画像処理プログラム - Google Patents

画像処理装置及び画像処理プログラム Download PDF

Info

Publication number
JP5573706B2
JP5573706B2 JP2011018683A JP2011018683A JP5573706B2 JP 5573706 B2 JP5573706 B2 JP 5573706B2 JP 2011018683 A JP2011018683 A JP 2011018683A JP 2011018683 A JP2011018683 A JP 2011018683A JP 5573706 B2 JP5573706 B2 JP 5573706B2
Authority
JP
Japan
Prior art keywords
value
error
image
pixel
target pixel
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.)
Active
Application number
JP2011018683A
Other languages
English (en)
Other versions
JP2012160879A (ja
Inventor
雅司 久野
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2011018683A priority Critical patent/JP5573706B2/ja
Publication of JP2012160879A publication Critical patent/JP2012160879A/ja
Application granted granted Critical
Publication of JP5573706B2 publication Critical patent/JP5573706B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、画像に誤差拡散処理を行う画像処理装置に関する。
従来、ハーフトーン処理の一つとして誤差拡散処理が知られている。誤差拡散処理は、主走査方向に1ラスタずつ行われるため、副走査方向への誤差は誤差バッファに記憶されて次のラスタの処理時に使用される。
特許文献1には、同一ページ内の異なった画像に対して誤差拡散処理を行う場合に、1つ目の画像の処理の後に誤差バッファを初期化して、2つ目の画像に誤差が伝播することを防ぐことにより、2つ目の画像の先頭における画質低下を回避する技術が開示されている。
特開2003−319178号公報
しかしながら、特許文献1に記載の技術では、画像の主走査方向両端部における画質については全く考慮されていない。
本発明は、こうした問題にかんがみてなされたものであり、画像の主走査方向両端部における画質の低下を抑制する技術を提供することを目的としている。
本明細書は上記目的を達成する構成を開示する。第1の構成は、画像に誤差拡散処理を行う画像処理装置であって、注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段と、前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段と、を備え、前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする。
このような画像処理装置によれば、画像の主走査方向両端部における画質の低下を抑制することができる。すなわち、誤差拡散処理においては、注目画素が画像の主走査方向における最端部まで走査されるため、注目画素を基準とした周辺範囲が画像の外側にはみ出し、周辺範囲内の一部の参照位置が注目画素の主走査方向において画像の外側に位置する場合がある。この場合にも、注目画素の主走査方向において画像の外側に位置する参照位置の誤差値として、画像内の画素のうち、その参照位置の周辺に位置する特定の画素の誤差値を用いた代替値が、注目画素の入力値に加算される。したがって、参照位置が注目画素の主走査方向において画像の外側に位置する場合にも、注目画素の入力値に対して加算される誤差値を、画像内の画素の誤差値に基づく適切な値に近づけることができる。その結果、画像の主走査方向両端部における画質の低下を抑制することができる。なお、画素の誤差値を用いた代替値には、画素の誤差値そのものの他、画素の誤差値に乱数を加算した値や、1つ以上の画素の誤差値を用いた算術演算で得られる値(例えば複数の画素の誤差値の平均値)なども含まれる。また、注目画素の主走査方向において画像の外側に位置するすべての参照位置について代替値を用いることに限定されるものではなく、代替値を用いない参照位置が含まれていても同様の効果が得られる。
また、第2の構成は、第1の構成の画像処理装置であって、前記補正手段は、前記一部の参照位置についての誤差値として、前記一部の参照位置とともに前記周辺範囲に含まれ得る画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理装置によれば、注目画素の主走査方向において画像の外側に位置する参照位置と関連性の高い誤差値を用いた代替値を得ることができる。
また、第3の構成は、第1又は第2の構成の画像処理装置であって、前記補正手段は、前記周辺範囲内の前記複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて前記注目画素の入力値に加算して、前記補正入力値を算出し、前記一部の参照位置についての誤差値として、前記一部の参照位置から最も近くに位置する前記画像内の画素を基準とした前記周辺範囲に含まれる画素の誤差値のうち、前記重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理装置によれば、注目画素の主走査方向において画像の外側に位置する参照位置と最も関連性の高い誤差値を用いた代替値を得ることができる。
なお、第1又は第2の構成の画像処理装置であって、前記補正手段は、前記周辺範囲内の前記複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて前記注目画素の入力値に加算して、前記補正入力値を算出し、前記一部の参照位置についての誤差値として、前記一部の参照位置とともに周辺範囲に含まれ得る画素の誤差値のうち、その周辺範囲における重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算することを特徴とする構成としてもよい。
また、第4の構成は、第1〜第3の構成のいずれか1つの画像処理装置であって、前記変換手段は、前記注目画素の誤差値を算出して誤差バッファに登録し、前記誤差バッファは、前記画像を構成する画素の誤差値が登録される第1の領域と、前記画像よりも外側において前記周辺範囲に含まれ得る領域を構成する仮想画素の誤差値として前記代替値が登録される第2の領域とを含むことを特徴とする。このような画像処理装置によれば、誤差バッファを、画像よりも外側において周辺範囲に含まれ得る領域まで拡張しているため、画像の主走査方向両端部の画素を、それ以外の画素と同様に処理することができる。したがって、画像の主走査方向両端部の画素を、それ以外の画素と区別して処理する場合に比べて、処理を速くすることができる。
また、第5の構成は、第4の構成の画像処理装置であって、前記誤差拡散処理は、前記画像の1ライン分ずつ順に行われ、前記補正手段は、1ライン分の誤差拡散処理が終了すると、次に誤差拡散処理を行うラインの第2の領域に前記代替値を登録することを特徴とする。このような画像処理装置によれば、誤差拡散処理が1ライン分終了した段階で代替値を登録するようにしているため、1ライン分よりも細かな単位(例えば1画素単位)で代替値を登録する場合と比較して、処理を単純化することができる。
また、第6の構成は、画像に誤差拡散処理を行う画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段、及び、前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段としてコンピュータを機能させ、前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理プログラムによれば、第1の構成の画像処理装置としてコンピュータを機能させることができ、これにより前述した効果を得ることができる。
印刷システムの概略構成を表すブロック図である。 (a)は誤差拡散処理の処理ブロック図、(b)は誤差拡散処理で使用される誤差マトリクスを示す図、(c)は誤差拡散処理で使用される誤差バッファを示す図である。 (a)は画像の上方及び左右方向の拡張領域の画素の誤差値を初期化する誤差拡散処理によりベタパターンの画像を処理した結果であり、(b)は誤差拡散処理後の画像におけるドット数を副走査方向に沿った列ごとに集計したグラフである。 パーソナルコンピュータがプリンタドライバの機能として実行する処理(誤差拡散フロー)のフローチャートである。 誤差拡散処理のフローチャートである。 (a)は実施形態の誤差拡散処理によりベタパターンの画像を処理した結果であり、(b)は誤差拡散処理後の画像におけるドット数を副走査方向に沿った列ごとに集計したグラフである。
以下、本発明が適用された実施形態について、図面を用いて説明する。
[1.全体構成]
図1は、実施形態の印刷システムの概略構成を表すブロック図である。この印刷システムは、パーソナルコンピュータ1とプリンタ2とがデータ通信可能に構成されたものである。
パーソナルコンピュータ1は、汎用の情報処理装置であり、制御部11、記憶部12、通信部13、操作部14及び表示部15を備えている。
制御部11は、パーソナルコンピュータ1の各部を統括制御するものであり、CPU111、ROM112及びRAM113を備えている。記憶部12は、記憶データの書換えが可能な不揮発性の記憶装置であり、本実施形態ではハードディスク装置が用いられている。そして、記憶部12には、オペレーティングシステム(OS)121、グラフィックツール等のアプリケーションプログラム122、パーソナルコンピュータ1からプリンタ2を利用可能とするためのソフトウェア(プログラム)であるプリンタドライバ123などがインストールされている。通信部13は、プリンタ2との間でデータ通信を行うためのインタフェースである。操作部14は、ユーザからの外部操作による指令を入力するための入力装置であり、本実施形態ではキーボードやポインティングデバイス(マウスやタッチパッド等)が用いられている。表示部15は、各種情報をユーザが視認可能な画像として表示するための出力装置であり、本実施形態では液晶ディスプレイが用いられている。
一方、プリンタ2は、インクジェット方式の印刷装置であり、制御部21、記憶部22、通信部23、操作部24、表示部25及び印刷実行部26を備えている。
制御部21は、プリンタ2の各部を統括制御するものであり、CPU211、ROM212及びRAM213を備えている。記憶部22は、記憶データの書換えが可能な不揮発性の記憶装置であり、本実施形態ではフラッシュメモリが用いられている。通信部23は、パーソナルコンピュータ1との間でデータ通信を行うためのインタフェースである。操作部24は、ユーザからの外部操作による指令を入力するための入力装置であり、各種操作ボタンを備えている。表示部25は、各種情報をユーザが視認可能な画像として表示するための出力装置であり、小型の液晶ディスプレイが用いられている。印刷実行部26は、記録媒体としての用紙の搬送方向と直交する方向へ往復移動可能な印刷ヘッド27を備え、印刷ヘッド27の往復動作中に、画像を構成する各画素が二値(ドットのオン/オフ)で表現された印刷データに基づいてインク滴を吐出することで、用紙に画像を印刷する。
[2.処理の概要]
次に、本実施形態の印刷システムで実行される処理の概要について説明する。パーソナルコンピュータ1では、実行中のアプリケーションプログラム122において印刷開始操作が行われることによりプリンタドライバ123が起動する。プリンタドライバ123が起動すると、パーソナルコンピュータ1の制御部11は、印刷対象の画像を表す256階調(0〜255のいわゆる8ビットレンジ)のRGB値で表現された画像データを、256階調のCMYK値で表現された画像データに変換する色変換処理を行う。さらに、色変換処理後の画像データを、二値のCMYK値で表現された画像データ(印刷データ)に変換する誤差拡散処理を行い、印刷データをプリンタ2に供給する。その結果、プリンタ2は、パーソナルコンピュータ1から供給された印刷データの表す画像を印刷実行部26で印刷する。
図2(a)はパーソナルコンピュータ1で実行される誤差拡散処理の処理ブロック図、図2(b)は誤差拡散処理で使用される誤差マトリクスを示す図、図2(c)は誤差拡散処理で使用される誤差バッファを示す図である。誤差拡散処理では、処理対象の画像を構成する画素のうちの1つが、注目画素(処理対象の画素)として順に選択される。注目画素は、画像の左上隅の画素を起点として主走査方向(横方向)に順にシフトし、画像の端部に到達すると、次の行(副走査方向に1画素分シフトした行)の端部から主走査方向に順にシフトする。この繰り返しにより、画像を構成するすべての画素が注目画素として選択される。なお、本実施形態では、主走査方向において注目画素がシフトする方向が行ごとに反転する双方向処理を採用している。
そして、誤差拡散処理では、注目画素の周辺に存在する処理済みの画素の誤差値が、注目画素の階調値(入力値)に加算されることにより、補正入力値が算出され、補正入力値としきい値との比較に基づき、二値化後の出力値(ドットの有無)が決定される。また、補正入力値から出力値への階調変換(二値化)によって生じた誤差値が、未処理の周辺画素に分配されるように誤差バッファに登録される。
補正入力値は、誤差マトリクスに従い、注目画素を基準とした複数の参照位置の画素の誤差値が、注目画素に対する相対位置に応じた重み付けで、その注目画素の入力値に加算されることにより算出される。本実施形態では、前述したように双方向処理を採用しているため、図2(b)に示す2種類の誤差マトリクス(第1の誤差マトリクス及び第2の誤差マトリクス)が行ごとに交互に使用される。本実施形態で使用される誤差マトリクスは、注目画素(◎印で示す画素)の周辺の12個の参照位置(周辺画素)について、注目画素に誤差値を加算する際の重み付け係数(この例では1,3,5,7の数値)が規定されたものである。これらの誤差マトリクスに従い、誤差バッファに登録されている周辺画素の誤差値を、各周辺画素の重み付け係数に応じた比率で注目画素の入力値に加算することで、補正入力値が算出される。
誤差バッファは、図2(c)に示すように、処理済みの画素(画像を構成する画素)の誤差値が登録される処理領域(行0以降でかつ列c〜hの白色部分)と、誤差マトリクスが処理領域からはみ出ることにより参照位置となる画素の誤差値が登録される拡張領域(行−2,−1でかつ列c〜hと、列a,b,i,jの灰色部分)とからなる。したがって、誤差マトリクスの列数がM個(本実施形態では5個)である場合、拡張領域の列数はM−1個(誤差マトリクスの列数から注目画素が位置する列数である1を差し引いた数であり、本実施形態では4個)となる。また、本実施形態では、処理領域の行数は、画像に含まれる全ラスタ分の行数と一致する。すなわち、処理領域には、画像に含まれる全画素の誤差値が登録可能となっている。なお、別の実施形態では、誤差バッファは、3行分の記憶領域(処理領域及び拡張領域)であってもよい。すなわち、誤差バッファと同じ行数分の記憶領域であってもよい。この場合には、3行分の記憶領域が、行ごとに入れ替えて使用される。つまり、図2(c)に示す行0の画素c0〜h0を処理する際には、行−2(画素a−2〜j−2),行−1(画素a−1〜j−1),行0(画素a0〜j0)の3ライン分として使用され、行1の画素c1〜h1を処理する際には、行−2の画素の誤差値は参照されないため、行−2のために使用されていた記憶領域が、行1(画素a1〜j1)のために使用される。
ところで、誤差拡散処理の開始直後においては、注目画素が画像の上端部に位置することにより、画像上方の拡張領域(図2(c)でいう行−2,−1)が参照位置となるため、処理済みの画素の誤差値がほとんど反映されない。その結果、画像の上端部において、ドット遅れや、ドットが過大に出力される現象が発生しやすいという問題がある。ただし、この現象は、画像上方の拡張領域の画素の誤差値を、あらかじめ何らかの値(例えば0を基準とした振り幅を持つ乱数)で初期化するといった対策をとることである程度抑制される。
一方、注目画素が画像の左右両端部(主走査方向両端部)に位置する場合にも、画像の左右方向の拡張領域(図2(c)でいう行0以降の列a,b,i,j)が参照位置となるため、画像の左右両端部においても同様の現象(ドット遅れ等)が発生する。しかしながら、この現象については、画像の左右方向の拡張領域の画素(主走査方向において画像の外側に位置する画素)の誤差値を乱数等で初期化しても、抑制効果が少ないという問題があった。図3(a)は、画像の上方及び左右方向の拡張領域の画素の誤差値を乱数で初期化する誤差拡散処理により一様のベタパターンの画像を処理した結果である。また、図3(b)は、誤差拡散処理後の画像におけるドット数を副走査方向に沿った列ごとに集計したグラフである。図3(b)において、画像の上方の拡張領域のみ画素の誤差値を初期化し、画像の左右方向の拡張領域については画素の誤差値を初期化しない場合の結果が実線で示されており、画像の上方及び左右方向の拡張領域の画素の誤差値を初期化した場合の結果が破線で示されている。これらの図から明らかなように、画像の左右方向の拡張領域の画素の誤差値を初期化しない場合及び初期化した場合のいずれにおいても、画像の左右両端部においてドットが少なくなる現象が発生しており、初期化による抑制効果がほとんど見られない。
そこで、本実施形態では、画像の左右方向の拡張領域の画素の誤差値として、画像内の処理済みの画素の誤差値を登録することで、画像の左右両端部におけるドット遅れなどの現象を抑制する。
[3.具体的処理手順]
次に、パーソナルコンピュータ1の制御部11(具体的にはCPU111)が、プリンタドライバ123の機能として実行する処理(誤差拡散フロー)について、図4のフローチャートを用いて説明する。
制御部11は、まずS11で、誤差拡散処理の対象となる画像データのすべてのラスタについて、後述するS12〜S14の処理を行ったか否かを判定する。このS11で、未処理のラスタが存在すると判定した場合には、未処理のラスタのうち、画像における位置が最も上方のラスタを処理対象として選択した後、S12へ移行する。
S12で、制御部11は、処理対象のラスタに属するすべての画素について、後述するS13の処理を行ったか否かを判定する。このS12で、未処理の画素が存在すると判定した場合には、前述した双方向処理の順序(図2(c)でいうc0,d0,…,g0,h0,h1,g1,…,d1,c1,c2,d2,…といった順序)に基づき、未処理の画素のうちの1つを注目画素として選択した後、S13へ移行する。
S13で、制御部11は、注目画素のドットの形成態様(ドットの有無)を決定するための誤差拡散処理を行う。この誤差拡散処理の詳細について、図5のフローチャートを用いて説明する。
制御部11は、誤差拡散処理を開始すると、まずS21で、誤差マトリクスを用いて誤差バッファから周辺画素の誤差値を収集し、収集した誤差値を注目画素の入力値に加算して、補正入力値を算出する。具体的には、各周辺画素について誤差バッファに登録されている誤差値と、その周辺画素について設定されている重み付け係数とを乗算し、すべての周辺画素についての算出値の総和を重み付け係数の総和で除算した値を収集誤差値として、入力値に加算する。
続いて、制御部11は、S22で、補正入力値が、あらかじめ設定されているしきい値(本実施形態では128)よりも大きいか否かを判定する。このS22で、補正入力値がしきい値よりも大きいと判定した場合には、S23へ移行し、注目画素の出力ドットをドットありに決定した後、S25へ移行する。一方、S22で、補正入力値がしきい値以下であると判定した場合には、S24へ移行し、注目画素の出力ドットをドットなしに決定した後、S25へ移行する。
続いて、制御部11は、S25で、注目画素の出力ドットを相対値に変換する。相対値とは、出力ドットを入力値のレンジに換算した値であり、相対値表(図2(a))にあらかじめ登録されている。本実施形態では、ドットありの相対値が255に設定されており、ドット無しの相対値が0に設定されている。
続いて、制御部11は、S26で、補正入力値から相対値を減算した値を、注目画素の誤差値として誤差バッファに登録する。これにより、図4のS13の誤差拡散処理を終了し、S12へ戻る。
一方、制御部11は、S12で、処理対象のラスタに属するすべての画素についてS13の処理を行った(未処理の画素が存在しない)と判定した場合には、S14へ移行する。そして、S14で、誤差バッファにおいて処理領域に登録されている特定の画素の誤差値を、画像の左右方向の拡張領域の画素の誤差値として登録する処理を行う。具体的には、画像の左右方向の拡張領域の画素のうち、次に処理対象となるラスタと同じ行に位置する画素の誤差値として、その画素に隣接する(最も近くに位置する)画像内の画素を注目画素とした場合に重み付け係数の最も大きい処理済みの周辺画素の誤差値を登録する。
ここで、S14の処理の具体例について説明する。図2(c)に示す画素c0から画素h0まで誤差拡散処理(S13)を行った後のS14の処理では、画像の左方向の拡張領域の画素a1,b1の誤差値として、画素c0の誤差値をコピーする。つまり、画像内の画素のうち、画素a1,b1に隣接する画素c1を注目画素とした場合に、重み付け係数の最も大きい周辺画素である画素c0の誤差値が、画素a1,b1の誤差値として登録される。なお、画素c1を処理する際に使用される誤差マトリクスは第2の誤差マトリクス(図2(b))であり、重み付け係数が最も大きいのは画素c0,d1であるが、画素d1は未処理であるため、画素c0の誤差値が用いられる。
同様に、画像の右方向の拡張領域の画素i1,j1の誤差値として、画素h0の誤差値をコピーする。つまり、画像内の画素のうち、画素i1,j1に隣接する画素h1を注目画素とした場合に、重み付け係数の最も大きい周辺画素である画素h0の誤差値が、画素i1,j1の誤差値として登録される。なお、画素h1を処理する際に使用される誤差マトリクスも第2の誤差マトリクスであり、重み付け係数が最も大きいのは画素h0,i1であるが、画素i1は処理されないため、画素h0の誤差値が用いられる。
以降のラスタも同様に処理される。すなわち、画素h1から画素c1まで誤差拡散処理(S13)を行った後のS14の処理では、画素a2,b2の誤差値として画素c1の誤差値をコピーし、画素i2,j2の誤差値として画素h1の誤差値をコピーする。また、画素c2から画素h2まで誤差拡散処理(S13)を行った後のS14の処理では、画素a3,b3の誤差値として画素c2の誤差値をコピーし、画素i3,j3の誤差値として画素h2の誤差値をコピーする。また、画素h3から画素c3まで誤差拡散処理(S13)を行った後のS14の処理では、画素a4,b4の誤差値として画素c3の誤差値をコピーし、画素i4,j4の誤差値として画素h3の誤差値をコピーする。なお、画素a0,b0,i0,j0については処理済みの誤差値がコピーされない(例えば乱数で初期化されたままの状態となる)が、全体から見れば僅かな領域であるため大きな影響はない。
このようなS14の処理の後、図4のS11へ戻る。そして、制御部11は、S11で、処理対象の画像データのすべてのラスタについてS12以降の処理を行った(未処理のラスタが存在しない)と判定した場合に、図4の処理を終了する。
[4.効果]
以上説明したように、本実施形態によれば、注目画素を基準とする参照位置が画像の左右方向の拡張領域に位置する場合に、その参照位置の画素の誤差値として、その参照位置から最も近くに位置する画像内の画素を注目画素とした場合に誤差マトリクスに含まれる画素のうち、重み付け係数が最も大きい参照位置の画素の誤差値を、注目画素の入力値に加算する。したがって、参照位置が画像の左右方向の拡張領域に位置する場合にも、その参照位置と最も関連性の高い誤差値が加算されるため、画像内の画素の誤差値に基づく適切な値に近づけることができる。その結果、画像の左右端部における画質の低下を抑制することができる。
図6(a)は、本実施形態の誤差拡散処理で一様のベタパターンの画像を処理した結果である。また、図6(b)は、誤差拡散処理後の画像におけるドット数を副走査方向に沿った列ごとに集計したグラフである。図6(b)において、画像の上方の拡張領域のみ画素の誤差値を初期化し、画像の左右方向の拡張領域については画素の誤差値を初期化しない場合の結果が実線で示されており、本実施形態の誤差拡散処理の結果が破線で示されている。これらの図から明らかなように、本実施形態の誤差拡散処理によれば、画像の左右両端部においてドットが極端に少なくなる現象を大幅に改善することができる。
また、本実施形態の誤差拡散処理では、誤差バッファが、画像よりも外側において誤差マトリクスに含まれ得る領域まで拡張されており、画像の左右端部の画素を、それ以外の画素と同様に処理することができるため、処理を速くすることができる。
また、誤差拡散処理が1ライン分終了するごとに、画像の左右方向の拡張領域の画素のうち、次に処理対象となるラスタの画素の誤差値を登録するようにしているため、1ライン分よりも細かな単位(例えば1画素単位)で誤差値を登録する場合と比較して、処理を単純化することができる。
なお、パーソナルコンピュータ1が画像処理装置に相当し、プリンタドライバ123が画像処理プログラムに相当する。また、S21の処理が補正手段としての処理に相当し、S14,S22〜S26の処理が変換手段としての処理に相当する。
[5.他の実施形態]
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。
(1)上記実施形態では、誤差バッファにおいて、誤差マトリクスが処理領域からはみ出ることにより参照位置となる拡張領域に誤差値を登録するようにしているが、これに代えて、拡張領域を用意することなく、参照位置が画像の外側に位置する場合には特定の画素の誤差値を読み込むようにしてもよい。図2(c)の画素c2の処理を例にとって説明する。画素c2を処理する際に使用される誤差マトリクスは第1の誤差マトリクス(図2(b))であるが、注目画素c2の左側の周辺画素(画素a0,b0,a1,b1,a2,b2)の誤差値は存在しない。そこで、画素a0,b0の誤差値の代替値として画素c−1の誤差値を使用し、画素a1,b1の誤差値の代替値として画素c0の誤差値を使用し、画素a2,b2の誤差値の代替値として画素c1の誤差値を使用するようにしてもよい。このようにすれば、拡張領域を用意することなく、上記実施形態と同様の効果を得ることができる。
(2)上記実施形態では、誤差バッファにおける画像の左右方向の拡張領域の画素の誤差値として、画像内の左右最端列(図2(c)でいう列c及び列h)の画素の誤差値を登録するようにしているが、左右最端列よりも内側の列d及び列gの画素も拡張領域の誤差値の影響を受けるため、列d及び列gの画素の誤差値についても拡張領域の画素の誤差値として登録するようにしてもよい。
この処理の具体例について説明する。図2(c)に示す画素c0から画素h0まで誤差拡散処理(S13)を行った後のS14の処理で、画素a1の誤差値として画素c0の誤差値をコピーし、画素b1の誤差値として画素d0の誤差値をコピーする。つまり、画像内の画素のうち、画素a1,b1に隣接する画素c1を注目画素とした場合に、第2の誤差マトリクス(図2(b))において重み付け係数の大きい処理済みの周辺画素である画素c0,d0の誤差値が、画素a1,b1の誤差値として登録される。このように、画素a1,b1の誤差値として2つの画素c0,d0の誤差値を利用することで、画素c0を画素a1,b1の両方に利用する場合に比べて、誤差値が平滑化されてしまうことを防ぐことができる。
同様に、画素i1の誤差値として画素g0の誤差値をコピーし、画素j1の誤差値として画素h0の誤差値をコピーする。つまり、画像内の画素のうち、画素i1,j1に隣接する画素h1を注目画素とした場合に、第2の誤差マトリクスにおいて重み付け係数の大きい処理済みの周辺画素である画素g0,h0の誤差値が、画素i1,j1の誤差値として登録される。
以降のラスタも同様に処理される。すなわち、画素h1から画素c1まで誤差拡散処理(S13)を行った後のS14の処理では、画素a2,b2の誤差値として画素c1,d1の誤差値をコピーし、画素i2,j2の誤差値として画素g1,h1の誤差値をコピーする。また、画素c2から画素h2まで誤差拡散処理(S13)を行った後のS14の処理では、画素a3,b3の誤差値として画素c2,d2の誤差値をコピーし、画素i3,j3の誤差値として画素g2,h2の誤差値をコピーする。また、画素h3から画素c3まで誤差拡散処理(S13)を行った後のS14の処理では、画素a4,b4の誤差値として画素c3,d3の誤差値をコピーし、画素i4,j4の誤差値として画素g3,h3の誤差値をコピーする。
なお、画素a1の誤差値として画素c0の誤差値をコピーし、画素b1の誤差値として画素d0の誤差値をコピーするといった対応関係はあくまでも一例であり、例えばこれとは逆に、画素a1の誤差値として画素d0の誤差値をコピーし、画素b1の誤差値として画素c0の誤差値をコピーするようにしてもよい。
(3)上記実施形態では、誤差バッファにおける画像の左右方向の拡張領域の画素の誤差値として、画像内の処理済みの画素の誤差値をそのまま登録するようにしているが、これに限定されるものではない。例えば、処理済みの画素の誤差値に乱数を加算して登録してもよい。このようにすれば、注目画素の入力値に加算される誤差値として同じ値が複数発生しにくくすることができる。なお、乱数の加算により本来の誤差値を逸脱しないように(元々の誤差値が無意味とならないように)、例えば0を基準とした振り幅を持つ乱数を加算する(乱数の平均値を0にする)ことや、乱数の振り幅をその誤差値の絶対値よりも小さくする(例えば誤差値が100であれば振り幅を20程度にする)ことが好ましい。また、画素の誤差値に乱数を加算した値に代えて、1つ以上の画素の誤差値を用いた算術演算で得られる値としてもよい。例えば、画素a1,b1の誤差値として、画素c0,d0の誤差値の平均値をコピーするといったように、複数の処理済みの画素の誤差値の平均値を、誤差バッファにおける画像の左右方向の拡張領域の画素の誤差値として登録するようにしてもよい。
(4)上記実施形態では、画像の左右方向の拡張領域の画素の誤差値として、その画素の位置から最も近い画像内の画素を基準にして、その画素を注目画素とした場合に誤差マトリクスに含まれる特定の画素の誤差値を登録するようにしているが、これに限定されるものではなく、拡張領域の画素から最も近い画素以外の特定の画素を基準にしてもよい。例えば、画素a1,b1の誤差値として、画素c1を注目画素(基準)とした場合を例に説明したが、画素c1と隣接する画素d1を注目画素(基準)としてもよい。すなわち、拡張領域内の画素に登録する誤差値は、該画素の周辺に位置する処理領域内の画素であって、誤差拡散処理済みの画素の誤差値を用いるとよい。
(5)上記実施形態では、2階調を表現可能なプリンタ2を例示したが、これに限定されるものではなく、3階調以上を表現可能なプリンタであってもよい。この場合、誤差拡散処理では、プリンタで表現可能な3階調以上のCMYK値で表現された画像データ(印刷データ)を生成する。
(6)上記実施形態では、誤差拡散処理がパーソナルコンピュータ1側で実行される構成を例示したが、これに限定されるものではなく、例えばプリンタ2側で実行されるように構成することも可能である。
1…パーソナルコンピュータ、2…プリンタ、11,21…制御部、12,22…記憶部、13,23…通信部、14,24…操作部、15,25…表示部、26…印刷実行部、27…印刷ヘッド、111,211…CPU、112,212…ROM、113,213…RAM、121…OS、122…アプリケーションプログラム、123…プリンタドライバ

Claims (10)

  1. 画像に誤差拡散処理を行う画像処理装置であって、
    前記画像を構成する画素のみから選択される注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段と、
    前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段と、
    を備え、
    前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算すること
    を特徴とする画像処理装置。
  2. 請求項1に記載の画像処理装置であって、
    前記補正手段は、
    前記周辺範囲内の前記複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて前記注目画素の入力値に加算して、前記補正入力値を算出し、
    前記一部の参照位置についての誤差値として、前記一部の参照位置から最も近くに位置する前記画像内の画素を基準とした前記周辺範囲に含まれる画素の誤差値のうち、前記重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算すること
    を特徴とする画像処理装置。
  3. 画像に誤差拡散処理を行う画像処理装置であって、
    注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて加算して、補正入力値を算出する補正手段と、
    前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段と、
    を備え、
    前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置から最も近くに位置する前記画像内の画素を基準とした前記周辺範囲に含まれる画素の誤差値のうち、前記重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算すること
    を特徴とする画像処理装置。
  4. 請求項1から請求項3までのいずれか1項に記載の画像処理装置であって、
    前記変換手段は、前記注目画素の誤差値を算出して誤差バッファに登録し、
    前記誤差バッファは、前記画像を構成する画素の誤差値が登録される第1の領域と、前記画像よりも外側において前記周辺範囲に含まれ得る領域を構成する仮想画素の誤差値として前記代替値が登録される第2の領域とを含むこと
    を特徴とする画像処理装置。
  5. 請求項4に記載の画像処理装置であって、
    前記誤差拡散処理は、前記画像の1ライン分ずつ順に行われ、
    前記補正手段は、1ライン分の誤差拡散処理が終了すると、次に誤差拡散処理を行うラインの第2の領域に前記代替値を登録すること
    を特徴とする画像処理装置。
  6. 画像に誤差拡散処理を行う画像処理装置であって、
    注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段と、
    前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段と、
    を備え、
    前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算し、
    前記変換手段は、前記注目画素の誤差値を算出して誤差バッファに登録し、
    前記誤差バッファは、前記画像を構成する画素の誤差値が登録される第1の領域と、前記画像よりも外側において前記周辺範囲に含まれ得る領域を構成する仮想画素の誤差値として前記代替値が登録される第2の領域とを含み、
    前記誤差拡散処理は、前記画像の1ライン分ずつ順に行われ、
    前記補正手段は、1ライン分の誤差拡散処理が終了すると、次に誤差拡散処理を行うラインの第2の領域に前記代替値を登録すること
    を特徴とする画像処理装置。
  7. 請求項1から請求項6までのいずれか1項に記載の画像処理装置であって、
    前記補正手段は、前記一部の参照位置についての誤差値として、前記一部の参照位置とともに前記周辺範囲に含まれ得る画素の誤差値を用いた代替値を、前記注目画素の入力値に加算すること
    を特徴とする画像処理装置。
  8. 画像に誤差拡散処理を行う画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、
    前記画像を構成する画素のみから選択される注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段、及び、
    前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段
    としてコンピュータを機能させ、
    前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算すること
    を特徴とする画像処理プログラム。
  9. 画像に誤差拡散処理を行う画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、
    注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて加算して、補正入力値を算出する補正手段、及び、
    前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段
    としてコンピュータを機能させ、
    前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置から最も近くに位置する前記画像内の画素を基準とした前記周辺範囲に含まれる画素の誤差値のうち、前記重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算すること
    を特徴とする画像処理プログラム。
  10. 画像に誤差拡散処理を行う画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、
    注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段、及び、
    前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段
    としてコンピュータを機能させ、
    前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算し、
    前記変換手段は、前記注目画素の誤差値を算出して誤差バッファに登録し、
    前記誤差バッファは、前記画像を構成する画素の誤差値が登録される第1の領域と、前記画像よりも外側において前記周辺範囲に含まれ得る領域を構成する仮想画素の誤差値として前記代替値が登録される第2の領域とを含み、
    前記誤差拡散処理は、前記画像の1ライン分ずつ順に行われ、
    前記補正手段は、1ライン分の誤差拡散処理が終了すると、次に誤差拡散処理を行うラインの第2の領域に前記代替値を登録すること
    を特徴とする画像処理プログラム。
JP2011018683A 2011-01-31 2011-01-31 画像処理装置及び画像処理プログラム Active JP5573706B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011018683A JP5573706B2 (ja) 2011-01-31 2011-01-31 画像処理装置及び画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011018683A JP5573706B2 (ja) 2011-01-31 2011-01-31 画像処理装置及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2012160879A JP2012160879A (ja) 2012-08-23
JP5573706B2 true JP5573706B2 (ja) 2014-08-20

Family

ID=46841069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011018683A Active JP5573706B2 (ja) 2011-01-31 2011-01-31 画像処理装置及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP5573706B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3690860B2 (ja) * 1996-03-07 2005-08-31 富士通株式会社 画像処理装置
JP2000022950A (ja) * 1998-07-02 2000-01-21 Mitsubishi Electric Corp 多値画像処理装置
JP3848017B2 (ja) * 1999-06-25 2006-11-22 キヤノン株式会社 画像処理装置及び画像処理方法
JP2002077612A (ja) * 2000-09-01 2002-03-15 Matsushita Electric Ind Co Ltd 画像処理方法および画像処理装置
JP2002290734A (ja) * 2001-03-26 2002-10-04 Mutoh Ind Ltd 画像処理方法

Also Published As

Publication number Publication date
JP2012160879A (ja) 2012-08-23

Similar Documents

Publication Publication Date Title
JP4935916B2 (ja) 画像処理プログラム及び画像処理装置
JP2017130751A (ja) 画像処理装置及び画像処理方法、プログラム
JP6482265B2 (ja) ディザ閾値マトリクスの生成方法及びプログラム
JP5115575B2 (ja) 画像処理プログラム及び画像処理装置
JP4501791B2 (ja) 画像処理方法及び画像処理プログラム
JP2007053749A (ja) スキャナによって獲得されるデジタル画像を変換する変換方法、装置、およびコンピュータプログラム
JP5863001B2 (ja) 画像処理装置、画像形成装置およびプログラム
JP2006295624A (ja) 画像処理装置およびその方法、並びに、コンピュータプログラムおよび記録媒体
JP5003777B2 (ja) 画像処理プログラム及び画像処理装置
JP5573706B2 (ja) 画像処理装置及び画像処理プログラム
JP2015115957A (ja) 二値周期からマルチビット非周期へのハーフトーン及び解像度の変換
JP4548302B2 (ja) 画像出力システム、画像出力制御装置、画像出力方法、画像出力プログラム及びこのプログラムをコンピュータ読み取り可能に記憶した記憶媒体
JP7242272B2 (ja) ディザマトリクスの生成装置、生成方法、当該ディザマトリクスを用いた画像処理装置、画像処理方法、及びプログラム
JP7381211B2 (ja) 画像処理装置および画像処理方法
US10404892B2 (en) Image forming apparatus for outputting a halftone image and image forming method
JP5834672B2 (ja) 画像処理装置、画像処理方法、画像形成装置、プログラムおよび記録媒体
JP2000332995A (ja) 画像データ生成方法および記録媒体
JP6834559B2 (ja) 画像処理プログラム及び画像処理装置
JP2008205559A (ja) 画像処理装置、画像処理方法、及びそのプログラム
JP7031763B2 (ja) 画像処理プログラム及び画像処理装置
JP7322549B2 (ja) 画像処理方法および画像処理装置
JP2011077587A (ja) 画像処理装置、画像処理方法およびプログラム
JP4753253B2 (ja) 画像処理装置
JP6798229B2 (ja) 画像処理装置、及び画像処理方法
JP2020080039A (ja) インクジェット印刷システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140616

R150 Certificate of patent or registration of utility model

Ref document number: 5573706

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150