(57)【要約】【課題】  部分的な空白を挟んだ上方からの誤差による画像上端の画質低下を防ぐ技術を提供する。【解決手段】  誤差拡散法による量子化処理において、部分的な空白を挟んだ上方からの誤差による画像上端の画質低下を防ぐために、入力ラスタデータに含まれる左右の空白ピクセルと同じ幅だけ上記誤差バッファを初期化する。【選択図】  図１
2007129443.tif 000002
【特許請求の範囲】
【請求項１】
ラスタ単位で画像データを入力する画像入力工程と、上記入力された入力ラスタデータに対して誤差拡散法による量子化処理を行って出力ラスタデータを作成する量子化工程と、上記量子化処理で発生した誤差を次のラスタに伝播するための誤差記憶部と、上記量子化工程で作成された上記出力ラスタデータを出力するための画像出力工程とを有し、上記画像入力工程から入力されるラスタデータに含まれる左右の空白ピクセルと同じ領域の上記誤差記憶部を初期化する誤差初期化工程を有する事を特徴とした画像処理方法。
【請求項２】
上記画像データが2色以上から成り立ち、上記誤差初期化工程は、各色の上記左右空白ピクセルのうちの最小幅を抽出し、全色の上記誤差記憶部について上記抽出した最小幅の領域を初期化する事を特徴とする請求項１に記載の画像処理方法。
【請求項３】
上記誤差初期化工程は、上記誤差記憶部を初期化した領域を記憶し、次のラスタについては上記左右空白ピクセル数の増分だけ上記誤差記憶部を初期化する事を特徴とする請求項１または２に記載の画像処理方法。
【請求項４】
ラスタ単位で画像データを入力する画像入力装置と、上記入力された入力ラスタデータに対して誤差拡散法による量子化処理を行って出力ラスタデータを作成する量子化装置と、上記量子化装置内に上記量子化処理で発生した誤差を次のラスタに伝播するための誤差記憶装置と、上記量子化装置で作成された上記出力ラスタデータを出力するための画像出力装置とを有し、上記画像入力装置から入力されるラスタデータに含まれる左右の空白ピクセルと同じ領域の上記誤差記憶装置を初期化する誤差初期化装置を上記量子化装置内に有する事を特徴とした画像処理装置。
【請求項５】
上記画像データが2色以上から成り立ち、上記誤差初期化装置は、各色の上記左右空白ピクセルのうちの最小幅を抽出し、全色の上記誤差記憶装置について上記抽出した最小幅の領域を初期化する事を特徴とする請求項４に記載の画像処理装置。
【請求項６】
上記誤差初期化装置は、上記誤差記憶装置を初期化した領域を記憶し、次のラスタについては上記左右空白ピクセル数の増分だけ上記誤差記憶装置を初期化する事を特徴とする請求項４または５に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに対して量子化処理を行う画像処理方法および、その装置に関し、特に誤差拡散法によって量子化処理を行う画像処理装置に関するものである。
【背景技術】
【０００２】
従来、コンピュータ等で作成した文書や画像の印刷装置として、ヘッドから印刷媒体にインク滴を吐出して画像形成を行うインクジェットプリンタ等が提案されている。プリンタドライバはアプリケーションプログラムから得られる入力画像に対して、色変換を行い、誤差拡散法などの疑似階調化手段によって量子化を行い、インクジェットプリンタに送って出力画像を形成する。この誤差拡散法については”An Adaptive Algorithm for Spatial Gray Scale” in society for Information Display 1975 Symposium Digest of Technical Papers, 1975, 36で発表されている。この方法は、３値化を例に説明すると、着目画素をP、その画素の濃度をlValue、P点の周辺未処理画素をP0、P1、P2、P3、３値化のための閾値をT1,T2(T1<T2)、３値化の結果をbinData、binDataの各出力値に対する基準値をV0,V1,V2(V0<V1<V2)とすると、図6に示すように着目点Pにおける量子化誤差Eを周辺画素P0、P1、P2、P3に経験的に求めた重み係数W0、W1、W2、W3で重み付け処理して振り分けてマクロ的に出力画像の平均濃度を入力画像の濃度と等しくする方法である。
【０００３】
lValue < T1 ならばbinData = 0、V = V0    ・・・式１
T1 <= lValue < T2 ならばbinData = 1、V = V1    ・・・式２
T2 <  lValue      ならばbinData = 2、V = V2    ・・・式３
Pが1画素あたり8bit256階調の場合の一例としてV0,V1,V2,T1,T2に以下の値を挙げる。
【０００４】
V0=0          ・・・式４
V1=128        ・・・式５
V2=255        ・・・式６
T1=64        ・・・式７
T2=192       ・・・式８
このとき、以下の式によりEと、周辺画素P0、P1、P2、P3に対する誤差E0、E1、E2、E3を求めることができる。
【０００５】
E = lValue  V      ・・・式９
E0 = E × W0         ・・・式１０
E1 = E × W1         ・・・式１１
E2 = E × W2         ・・・式１２
E3 = E × W3         ・・・式１３
(重み係数の例：W0=7/16,W1=1/16,W2=5/16,W3=3/16)
誤差拡散処理は主走査方向に１ラスタずつ行われるため、副走査方向への誤差は一般的に誤差バッファと呼ばれる記憶装置に記憶されて次のラスタの処理時に使用される。
【０００６】
しかし、図４に示すような入力画像401内に図形402,403がある場合、図形402の後端で発生した誤差が図形403の上端に伝播してしまい、画像上端の画質が低下するという問題があった。そこで参考文献１においては、入力画素値が「0」でなければ通常の誤差拡散処理を行い、「0」であれば「0」を自動的に出力し、誤差の算出および分配を行わずに着目画素の誤差メモリをリセットする方法が提案されており、空白ラスタ404において誤差バッファをゼロクリヤする事で誤差の伝播を防いでいる。同様に、参考文献2においては、何も描画されていない空白ラスタが３ライン以上続く場合には誤差バッファをゼロクリヤする事で誤差の伝播を防ぐ方法が提案されている。
【特許文献１】特開2002-209105号公報
【特許文献２】特開2000-341523号公報
【非特許文献１】An Adaptive Algorithm for Spatial Gray Scale” in society for Information Display 1975 Symposium Digest of Technical Papers, 1975, 36
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術においては以下のような欠点があった。参考文献1の方法においては、図5に示すハッチパターンと呼ばれる規則的なドット配列を量子化する場合、入力画素値が「0」の画素を処理するたびに誤差伝播がなくなるため、パターンを構成する画素501の濃度が低いとドットが全く発生しなくなるという問題があった。また参考文献2の方法においては、図2に示すような入力画像201内に図形202,203,204が配置される場合には、図形202と図形204の間に空白ラスタがないために誤差バッファはゼロクリヤされず、図形202の後端で発生した誤差はそのまま図形204に伝播してしまうという問題があった。
【０００８】
本発明は以上のような従来の問題点を解決するためになされたものであり、部分的な空白を挟んだ上方からの誤差による画像上端の画質低下を防ぐ技術を提供する事を目的とする。
【課題を解決するための手段】
【０００９】
上述した目的を達成するために、本発明の画像処理方法は、ラスタ単位で画像データを入力する画像入力工程と、上記入力された入力ラスタデータに対して誤差拡散法による量子化処理を行って出力ラスタデータを作成する量子化工程と、上記量子化処理で発生した誤差を次のラスタに伝播するための誤差記憶部と、上記量子化工程で作成された上記出力ラスタデータを出力するための画像出力工程とを有し、上記画像入力工程から入力されるラスタデータに含まれる左右の空白ピクセルと同じ領域の上記誤差記憶部を初期化する誤差初期化工程を有する事を特徴とする。
【発明の効果】
【００１０】
以上説明したように、本発明の第一の実施例によれば、図2のような複数の図形が配置されているが空白ラスタがない画像において、それぞれの図形の上端の画質低下を防ぐことを可能にした。また、第二の実施例によれば、カラー画像において各色の左右空白の最小値の領域だけ誤差バッファを初期化する事で、色によって誤差バッファが初期化される領域が変わらないようにし、特定の色だけの画質低下を防ぐ事を可能にした。また、第三の実施例によれば、左右空白ピクセル数の増加分だけ誤差バッファの初期化を行う事で誤差バッファの初期化に必要な時間を最小限にする事を可能にした。
【発明を実施するための最良の形態】
【００１１】
図1は本発明の第一の実施形態の画像処理の基本アルゴリズムを説明するための図である。画像処理の構成は大きく分けて、図2の入力画像201を入力ラスタデータ205に分割して量子化部102に送る画像入力部101と、入力ラスタデータ205を誤差拡散法によって出力ラスタデータに変換する量子化部102と、出力ラスタデータをプリンタ等に送る画像出力部103とで構成されている。また量子化部102は、着目ラスタで発生した誤差を次のラスタに伝播するための誤差記憶部104と、画像入力部101から送られる左右空白ピクセル数に従って誤差記憶部104の対応領域を初期化する誤差初期化部105から構成されている。尚、本実施例の入力画像201は1画素あたり8bit256階調で表現されたグレースケール画像であり、量子化部102はこの入力画像201を2bit3階調に変換するが、その限りではない。
【００１２】
図7は本実施例の処理の流れを示すフローチャートである。尚、"a = 10"は変数aへ10を代入、"a = = 10"は変数aが10と等しいかの比較を意味する。まず、画像入力部101は入力画像201の幅(width)、高さ(height)を測定し(S701)、カウンタvposを0で初期化する(S702)。次に全てのラスタの量子化処理が終了したか確認するために、vposとheightを比較する(S703)。全てのラスタの量子化処理が終わった場合(vpos==height)はそのまま終了する。一方、量子化処理をしていないラスタが残っている場合は、画像入力部101はvposを1加算し(S704)、入力画像201の先頭からvpos番目の入力ラスタデータ205を不図示の一次バッファに読み出す(S705)。入力ラスタデータ205は黒で示された実データの左右を空白データで挟んだ形で構成されており、画像入力部101は左空白データのピクセル数(srcLeft)、右空白データのピクセル数(srcRight)を測定し、入力ラスタデータ205と共に量子化部102に送る(S706)。図3は誤差記憶部104を模式化したものであり、その大きさは入力画像の幅(width)と同じである。誤差初期化部105は、この誤差記憶部301の斜線で示した左端からsrcLeftの領域と、右端からsrcRightの領域を「0」で初期化する(S707)。そして、量子化部102は入力ラスタデータ205の量子化処理を行い(S708)、S703に戻って全てのラスタの量子化処理が終了したか確認する。
【００１３】
図8は本実施例における誤差拡散による量子化部102の模式図である。本実施例では、画像入力部101から送られた入力ラスタデータ801を左から順番に量子化処理するが、右から順に処理したり、数ラスタごとに方向を切り替えても構わない。まず、カウンタhposをsrcLeft+1で初期化し、左からhpos番目の着目画素804の画素値inValを加算部805に送る。加算部805には同時にLatch810から誤差E0と誤差記憶部803の左からhpos番目から読み出された前ラスタからの誤差err0が送られ、以下の加算処理を行って誤差補正値lValueを比較部807と減算部808に出力する。
【００１４】
lValue = inVal + E0 + err0        ・・・式１４
閾値設定部806は閾値Tを比較部807に送る。この閾値Tは固定値であっても、入力値や座標などの要素で変動するものであっても構わないが、本実施例では式７、式８のT1,T2を使用する。出力決定部807は加算部805から出力された誤差補正値lValueと閾値設定部806から出力されたT1,T2を使用して式１、式２、式３の比較演算を行い、量子化結果binDataを出力バッファ802に出力し、基準値Vを減算部808に出力する。尚、減算部808は加算部805から出力されたlValueと、出力決定部807から出力された基準値Vから以下の減算処理を行ってEを誤差分配部809に出力する。
【００１５】
E = lValue  V            ・・・式１５
誤差分配部809は減算部808から出力された誤差Eを用いて式１０、式１１、式１２、式１３の計算を行い、配分誤差E0,E1,E2,E3をそれぞれLatch810、Latch811、加算部812、加算部814に送る。配分される誤差は図6の誤差窓601に対応しており、分配誤差E0はLatch810に入力され、1ピクセル分遅延された後、再び加算部805に入力される。また、分配誤差E1はLatch811に入力され、1ピクセル分遅延が加えられた後、加算部812に入力され、分配誤差E2と足し合わされる。加算部812の出力はLatch813に入力され、1ピクセル分遅延が加えられた後、加算部814に入力され、分配誤差E3と足し合わされる。そして、加算部814の出力Esumは誤差バッファ803の左からhpos-2番目に書き込まれる。そして、hposに1を加算して、次の画素へ処理が移る。この処理はhposがwidth-srcRightになるまで続けられる。
【００１６】
図9は本発明の第二の実施例における入力画像を示す図である。本実施例は入力画像901がカラー画像である点が第一の実施例と異なり、第一の実施例と同様の構成や処理については、その詳細説明を省略する。図9の入力画像901はプリンタの表示色であるCyan,Magenta,Yellow,Blackで表現されている。そして、図10は入力画像を色ごとのレイヤに分割したものであり、Cyan,Magenta,Yellow,Blackの各色のレイヤを、それぞれレイヤ1001,1002,1003,1004で示す。本実施例の処理の流れを図7のフローチャートを用いて説明する。まず、画像入力部101は入力画像901を各色のレイヤ1001,1002,1003,1004の形で読み込み、印字領域の幅(width)、高さ(height)を測定し(S701)、カウンタvposを0で初期化する(S702)。次に全てのラスタの量子化処理が終了したか確認するために、vposとheightを比較する(S703)。全てのラスタの量子化処理が終わった場合(vpos==height)はそのまま終了する。一方、量子化処理をしていないラスタが残っている場合は、画像入力部101はvposを1加算し(S704)、ページの先頭からvpos番目の入力ラスタデータ902を色毎に1005,1006,1007,1008の形で不図示の一次バッファに読み出す(S705)。図11は各色の入力ラスタデータであり、画像入力部101は各色の左空白データのピクセル数(leftX)、右空白データのピクセル数(rightX)を測定する(XはC,M,Y,Kのいずれか)。そして、leftX,rightXの最小値をそれぞれsrcLeft,srcRightとして、各色の入力ラスタデータと共に量子化部102に送る(S706)。誤差記憶部105は色ごとにwidthの領域を持ち、誤差初期化部105は、全色についてその左端からsrcLeftの領域と、右端からsrcRightの領域を初期化する(S707)。そして、色毎に1ラスタの量子化処理を行い(S708)、S703に戻って全てのラスタの量子化処理が終了したか確認する。
【００１７】
図12は本発明の第三の実施例における処理の流れを示すフローチャートである。尚、本実施例はsrcLeft,srcRightが前のラスタより増えた分だけ誤差バッファを初期化する点が第一の実施例と異なり、第一の実施例と同様の構成や処理については、その詳細説明を省略する。S1201において、前ラスタの左空白ピクセル数(srcLeft2)と、着目ラスタ205の左空白ピクセル数(srcLeft)を比較し、srcLeftの方が大きい場合はS1202に進んで増えた左空白ピクセル数(srcLeft-srcLeft2)だけ、図13に示す誤差記憶部1301の対応領域1302を初期化してS1203に進む。一方、S1201の比較結果が否の場合は直接S1203に進む。S1203,S1204においてはS1201,S1202と同様に右空白ピクセルの増加分だけ誤差記憶部1301の対応領域1303を初期化する。そして、S708で1ラスタの量子化処理を終わった後に、srcLeft,srcRightをそれぞれsrcLeft2,srcRight2に保存する(S1205)。
【図面の簡単な説明】
【００１８】
【図１】本発明の第一の実施例における画像処理を説明する図
【図２】本発明の第一の実施例における入力画像を示す図
【図３】本発明の第一の実施例における誤差記憶部を示す模式図
【図４】従来技術における入力画像を示す図
【図５】従来技術におけるハッチパターンによる入力画像を示す図
【図６】本発明の第一の実施例における誤差配分窓の一例を示す模式図
【図７】本発明の第一の実施例の処理の流れを示すフローチャート
【図８】本発明の第一の実施例における量子化部を示す模式図
【図９】本発明の第二の実施例における入力画像を示す図
【図１０】本発明の第二の実施例における色ごとのレイヤに分かれた入力画像を示す図
【図１１】本発明の第二の実施例における各色のラスタデータを示す図
【図１２】本発明の第三の実施例における処理の流れを示すフローチャート
【図１３】本発明の第三の実施例における誤差記憶部を示す模式図
【符号の説明】
【００１９】
201,401,901    入力画像
202,203,204,402,403  図形
205,801,902,1005,1006,1007,1008  入力ラスタデータ
301,803,1301  誤差記憶部
802  出力ラスタデータ
1001,1002,1003,1004  レイヤ
【図１】
2007129443.tif 000003
【図２】
2007129443.tif 000004
【図３】
2007129443.tif 000005
【図４】
2007129443.tif 000006
【図５】
2007129443.tif 000007
【図６】
2007129443.tif 000008
【図７】
2007129443.tif 000009
【図８】
2007129443.tif 000010
【図９】
2007129443.tif 000011
【図１０】
2007129443.tif 000012
【図１１】
2007129443.tif 000013
【図１２】
2007129443.tif 000014
【図１３】
2007129443.tif 000015