A.第1実施例:
図1は、本発明の一実施例としての画像処理システムを示す説明図である。この画像処理システムは、ネットワーク900と、携帯端末300と、サーバ400と、複合機100と、を有している。携帯端末300とサーバ400と複合機100とは、それぞれ、ネットワーク900に接続されている。携帯端末300は、ユーザの指示に従って、画像データIM1を、サーバ400に送信する。サーバ400は、受信した画像データIM1を用いて、印刷用の画像データIM2を生成し、生成した画像データIM2を、複合機100に送信する。複合機100は、受信した画像データIM2を用いて、画像を印刷する。
携帯端末300は、例えば、携帯電話やタブレットコンピュータである。携帯端末300は、データ処理装置310を有している。データ処理装置310は、いわゆるコンピュータであり、図示しないプロセッサ(例えば、CPU)と記憶装置(例えば、DRAMとフラッシュメモリ)とを有している。データ処理装置310のプロセッサは、記憶装置に格納されたプログラムを実行することによって、画像データ処理部320と、データ送信部322と、のそれぞれの処理部の機能を実現する。画像データ処理部320は、ユーザの指示に従って、印刷すべき画像を表す画像データIM1を準備する。例えば、画像データ処理部320は、携帯端末300に設けられた図示しない撮像部によって生成された画像データを、ユーザの指示に従って、印刷対象の画像データIM1として選択する。そして、データ送信部322は、画像データIM1を、ネットワーク900を介して、サーバ400に送信する。画像データIM1の形式としては、任意の形式を採用可能である(例えば、JPEG形式)。
サーバ400は、データ処理装置410を有している。データ処理装置410は、いわゆるコンピュータであり、図示しないプロセッサ(例えば、CPU)と記憶装置(例えば、DRAMとハードディスクドライブ)とを有している。データ処理装置410のプロセッサは、記憶装置に格納されたプログラムを実行することによって、画像データ生成部420と、データ送信部422と、のそれぞれの処理部の機能を実現する。画像データ生成部420は、携帯端末300から受信した画像データIM1を用いて、複合機100による印刷のための画像データIM2を生成する。例えば、データ処理装置410は、画像データIM1に対するラスタライズを行って、予め決められた画素密度のビットマップ形式の画像データIM2を生成する。また、データ処理装置410は、いわゆるジャギーを抑制するために、いわゆるアンチエイリアス処理を実行する。以下、画像データIM2として、300dpiのJPEGデータが生成されることとする。データ送信部422は、画像データIM2を、ネットワーク900を介して、複合機100に送信する。
複合機100は、プロセッサ110と、揮発性記憶装置120と、不揮発性記憶装置130と、表示部140と、操作部150と、通信インタフェース160と、印刷実行部180と、を有している。
プロセッサ110は、データ処理を行う装置であり、例えば、いわゆるCPUである。揮発性記憶装置120は、例えば、いわゆるDRAMであり、不揮発性記憶装置130は、例えば、いわゆるフラッシュメモリである。不揮発性記憶装置130は、プロセッサ110によって実行されるプログラム132と、ディザマトリクスDMを表すデータと、を格納している。プロセッサ110は、プログラム132を実行することによって、種々の機能を実現する。第1実施例では、プロセッサ110は、データ取得部210と、前処理部220と、エッジ特定部230と、二値化処理部260と、データ出力部270と、のそれぞれの処理部の機能を実現する。各処理部の詳細については、後述する。
なお、破線で示された処理部240、250、280は、後述する別の実施例において、プロセッサ110によって実現される。具体的には、オブジェクト種類特定部240は、第3実施例で実現され、マトリクス選択部250は、第4実施例で実現され、指示受信部280は、第5実施例で実現される。また、プロセッサ110は、プログラム(例えば、プログラム132)の実行に利用される種々の中間データを、記憶装置(例えば、揮発性記憶装置120、または、不揮発性記憶装置130)に、一時的に格納する。
表示部140は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部150は、ユーザによって操作される装置であり、例えば、表示部140上に重ねて配置されたタッチパネルである。ユーザは、操作部150を操作することによって、画像処理の指示等の種々の指示を入力可能である。通信インタフェース160は、ネットワークに接続するためのインタフェースであり、例えば、IEEE802.11a/b/g/nの規格に従った無線インタフェースである。通信インタフェース160は、ネットワーク900に接続されている。
印刷実行部180は、印刷媒体(例えば、紙)上に画像を印刷する装置である。第1実施例では、印刷実行部180は、シアンCとマゼンタMとイエロYとブラックKのそれぞれのトナーを用いるレーザ式のカラープリンタである。ただし、印刷実行部180としては、他の方式のプリンタ(例えば、インクジェット式プリンタ)を採用可能である。
図2は、複合機100によって実行される印刷処理のフローチャートである。複合機100(図1)は、通信インタフェース160を通じて印刷用の画像データIM2を受信したことに応じて、この印刷処理を開始する。最初のステップS100では、データ取得部210は、通信インタフェース160を通じて画像データIM2を取得する。
次のステップS110では、前処理部220が、画像データIM2のデータ変換処理を行う。このデータ変換処理は、画像データIM2を、印刷処理用の画素密度のビットマップデータに変換する処理である。生成されるビットマップデータは、例えば、赤Rと緑Gと青Bとの3つの色成分の階調値(例えば、0から255までの256階調)で複数の画素(以下「印刷画素」とも呼ぶ)のそれぞれの色を表している。以下、各色成分の階調値のことを「画素値」とも呼ぶ。また、ビットマップデータとして、600dpiのデータが生成されることとする。
次のステップS120では、前処理部220は、ビットマップデータの色変換を行う。前処理部220は、所定のルックアップテーブルに従って、印刷画素毎に、赤Rと緑Gと青Bの画素値を、複数のトナーのそれぞれの画素値(ここでは、シアンC、マゼンタM、イエロY、ブラックKのそれぞれの画素値)に、変換する。各トナーの画素値は、各画素位置におけるトナーの量(すなわち、トナーによって表される色の濃度)を表す階調値である(以下、単に「色材階調値」とも呼ぶ)。第1実施例では、色材階調値は、0%から100%までの3以上の多階調(例えば、0から255までの256階調)で表現されている。0%は、ゼロのトナー量を示し、100%は、所定の最高トナー量を示している。以下、0%を示す階調値(本実施例では、ゼロ)を「最低階調値」と呼び、100%を示す階調値(本実施例では、255)を「最高階調値」と呼ぶ。また、色変換済のビットマップデータを、「入力画像データ」とも呼び、入力画像データによって表される画像を「入力画像」とも呼び、入力画像データによって表される画素値を「入力画素値」とも呼ぶ。
図3(A)は、入力画像の例を示す概略図である。図中には、ブラックKの入力画素値によって表される画像の一部分が示されている。図示された画像は、黒色の文字「dev」を表している。図中では、濃い色の領域は、入力画素値が大きい領域を示し、薄い色の領域は、入力画素値が小さい領域を示している。文字の輪郭では、サーバ400によるアンチエイリアス処理によって、輪郭の内側から外側に向かって徐々に入力画素値が小さくなっている。
図3(A)の下部には、部分拡大図が示されている。図中の矩形pxは、印刷画素を示している。複数の印刷画素pxは、第1方向D1と、第1方向D1と垂直な第2方向D2と、に沿って格子状に配置されている。各印刷画素pxに付されたハッチングの濃さは、入力画素値の大きさを示している。ハッチングが濃いほど、入力画素値が大きい。図中には、第2方向D2に沿って延びる5本の画素列Ca〜Ceが示されている。これらの画素列Ca〜Ceは、この順番に、第1方向D1に向かって並んでいる。
図示された部分拡大図は、文字「d」の右側の輪郭、すなわち、第2方向D2に沿って延びる輪郭の一部を示している。第1画素列Caと第2画素列Cbとは、文字「d」を表す印刷画素を示し、入力画素値は、比較的大きい(例えば、100%)。第5画素列Ceは、背景を表す印刷画素を示し、入力画素値は、比較的小さい(例えば、ゼロ%)。間の画素列Cc、Cdは、文字「d」の輪郭の近傍を表す印刷画素を示し、入力画素値は、文字「d」の入力画素値(例えば、100%)と背景の入力画素値(例えば、ゼロ%)との間の値に設定されている。文字「d」の内部の画素列Cbから外部の画素列Ceまで第1方向D1に沿って画素列を辿ると、入力画素値は、徐々に小さくなる。このように文字「d」の輪郭は、中間調を用いて、表現されている。
図3(B)は、図3(A)の入力画像を、ディザマトリクスDMを用いて二値化した場合の、二値画像の参考例を示す概略図である。図3(B)の下部には、部分拡大図が示されている。この部分拡大図は、図3(A)の部分拡大図と同じ領域を示している。二値化処理によって、各印刷画素の二値化された画素値(「二値画素値」と呼ぶ)は、「オン」と「オフ」とのいずれかに決定される。「オン」は、当該印刷画素にトナーが付着することを示し、「オフ」は、当該印刷画素にトナーが付着しないことを示している。すなわち、「オフ」は、「オン」と比べて、二値画素値によって表される色が明るいことを示している。ハッチングが付された印刷画素pxは、二値画素値が「オン」である画素(「オン画素」と呼ぶ)を示し、ハッチングのない印刷画素pxは、二値画素値が「オフ」である画素(「オフ画素」と呼ぶ)を示している。
図示するように、文字の輪郭の近傍には、細かい凹凸パターン(すなわち、オン画素がまばらに出現するパターン)が形成されており、文字の輪郭が滑らかではない。部分拡大図に示すように、細かい凹凸パターンは、中間調を表す領域(ここでは、画素列Cc、Cd)に生じている。このような細かい凹凸パターンは、中間調を表すパターンであり、ディザマトリクスDMに従って決まるパターンである。
このように、文字(ひいては、グラフィックス等のオブジェクト)の輪郭の近傍に中間調を表す領域が配置される場合、輪郭の近傍に細かい凹凸パターンが形成され得る。このような凹凸パターンは、オブジェクトの形状を表すものではないので、不自然に目立つ場合がある。そこで、第1実施例では、二値化処理部260は、オブジェクトのエッジの近傍の中間調の領域の二値化処理を、ディザマトリクスDMを用いずに行うことによって、このような凹凸パターンが形成されることを抑制する。
図2の次のステップS130では、二値化処理部260は、二値化処理に利用される処理フラグを決定する。第1実施例では、処理フラグは、「ディザ」と「オフ」とのいずれかに決定される。「ディザ」は、二値画素値の決定にディザマトリクスDMを用いることを示している。「オフ」は、ディザマトリクスDMを用いずに二値画素値を「オフ」に決定することを示している。後述するように、第1実施例では、二値化処理部260は、図3(A)の画素列Cc、Cdのように、エッジの近傍の中間調を表す領域において、処理フラグを「オフ」に決定し、他の領域では、処理フラグを「ディザ」に決定する。処理フラグの決定の詳細については、後述する。
図2の次のステップS140では、二値化処理部260は、入力画像データの二値化処理を実行することによって、二値画像データを生成する。二値画像データは、各印刷画素における各トナーの二値画素値を表している。第1実施例では、二値化処理部260は、ブラックKの二値画素値を、処理フラグに従って決定する。他の色成分(ここでは、シアンCとマゼンタMとイエロY)については、二値化処理部260は、全ての印刷画素の二値画素値を、ディザマトリクスDMを用いて決定する。
図4は、処理フラグを用いる二値化処理のフローチャートである。最初のステップS200では、二値化処理部260は、入力画像の複数の印刷画素の中から、未処理の1つの印刷画素を、対象画素として選択し、対象画素の入力画素値を取得する(以下「対象画素値」と呼ぶ)。次のステップS210では、二値化処理部260は、対象画素の処理フラグを特定する。
次のステップS220では、二値化処理部260は、処理フラグが「オフ」であるか否かを判定する。処理フラグが「オフ」である場合(S220:Yes)、次のステップS230で、二値化処理部260は、対象画素の二値画素値を「オフ」に決定する。例えば、図3(A)の画素列Cc、Cdでは、二値画素値が「オフ」に決定される。そして、処理は、ステップS270に移行する。
処理フラグが「オフ」ではない場合、すなわち、処理フラグが「ディザ」である場合(S220:No)、次のステップS260で、二値化処理部260は、ディザマトリクスDMと対象画素の入力画素値とを用いて、対象画素の二値画素値を決定する。例えば、図3(A)の画素列Ca、Cb、Ceでは、二値画素値は、ディザマトリクスDMと対象画素の入力画素値とに応じて、決定される。そして、処理は、ステップS270に移行する。
ステップS270では、二値化処理部260は、入力画像の全ての画素の処理が終了したか否かを判定する。未処理の画素が残っている場合(S270:No)、二値化処理部260は、ステップS200に戻る。全ての画素の処理が終了した場合(S270:Yes)、図4の処理は終了する。
図3(C)は、第1実施例で得られる二値画像の例を示す概略図である。図中には、図3(A)の入力画像を二値化して得られる二値画像の例が、示されている。図3(C)の下部には、部分拡大図が示されている。この部分拡大図は、図3(A)の部分拡大図と同じ領域を示している。
図示するように、文字を表す画素列Ca、Cbでは、二値画素値が「オン」に決定され、背景を表す第5画素列Ceでは、二値画素値が「オフ」に決定される。これらの画素列Ca、Cb、Ceでは、二値画素値は、ディザマトリクスDMを用いて決定される。そして、中間調を表す画素列Cc、Cdでは、二値画素値が、ディザマトリクスDMを用いずに、「オフ」に決定される。この結果、図3(B)のような細かい凹凸パターンが形成されることを、抑制できる。
図2の次のステップS150では、データ出力部270は、二値化処理によって生成された二値画像データを用いて印刷データを生成し、生成した印刷データを、印刷実行部180に供給する。印刷データは、印刷実行部180によって解釈可能な形式の画像データである。印刷データは、二値画像を表すデータに加えて、印刷実行部180に対するコマンドを含み得る。印刷実行部180は、受信した印刷データに従って、画像を印刷する。
次に、図2のステップS130で実行される処理フラグ決定処理について説明する。図5は、処理フラグ決定処理のフローチャートである。最初のステップS310では、二値化処理部260は、入力画像の複数の印刷画素の中から、未処理の1つの印刷画素を、対象画素として選択し、対象画素の入力画素値(ここでは、ブラックKの入力画素値)を取得する。次のステップS315では、エッジ特定部230は、入力画像データを解析することによって、対象画素の近傍の4つの画素のそれぞれの第1エッジ判定を行う。図5のステップS315の右側には、対象画素Ptと、第1エッジ判定の対象の4つの画素P11、P12、P21、P22が示されている。4つの画素P11、P12、P21、P22は、対象画素Ptを中心として第1方向D1に沿って並ぶ4つの画素である。ここで、第1方向D1を「+D1方向」とも呼び、第1方向D1の反対方向を「−D1方向」とも呼ぶ。また、対象画素Ptの−D1方向側の画素を「前画素」とも呼び、対象画素Ptの+D1方向側の画素を「後画素」とも呼ぶ。2つの前画素P11、P12は、対象画素Ptから−D1方向に向かって、この順に並んでいる。2つの後画素P21、P22は、対象画素Ptから+D1方向に向かって、この順に並んでいる。
図6は、第1エッジ判定のフローチャートである。最初のステップS400では、エッジ特定部230は、判定対象画素Petの両隣の画素Pna、Pnbのそれぞれの入力画素値Va、Vbを特定する。第1画素Pnaは、判定対象画素Petの−D1方向側の隣の画素であり、第2画素Pnbは、判定対象画素Petの+D1方向側の隣の画素である。そして、二値化処理部260は、特定された入力画素値Va、Vbの差分の絶対値Vd1を算出する(「絶対差分Vd1」と呼ぶ)。次のステップS410では、エッジ特定部230は、絶対差分Vd1が、所定のエッジ閾値より大きいか否かを判定する。エッジ閾値は、例えば、最高階調値の半分の値である(本実施例では、256の半分の128)。絶対差分Vd1がエッジ閾値よりも大きい場合(S410:Yes)、エッジ特定部230は、次のステップS420で、判定対象画素Petがエッジ画素であると判定し、図6の処理を終了する。例えば、図3(A)の例では、第2画素列Cbの画素がエッジ画素であると、判定される。絶対差分Vd1がエッジ閾値以下である場合(S410:No)、エッジ特定部230は、次のステップS430で、判定対象画素Petがエッジ画素でないと判定し、図6の処理を終了する。
以上のように、エッジ特定部230は、第1方向D1に沿った入力画素値の変化が大きい場合に、判定対象画素Petがエッジ画素であると判定する。エッジ特定部230は、このような第1エッジ判定を、図5に示す4つの画素P11、P12、P21、P22のそれぞれについて、実行する。
図5の次のステップS320では、二値化処理部260は、対象画素値が、所定の第1閾値以下であるか否かを判定する。第1閾値は、中間調として扱われる入力画素値の上限に対応し、例えば、200に設定されている。対象画素値が第1閾値よりも大きい場合(S320:No)、次のステップS336で、二値化処理部260は、処理フラグを「ディザ」に決定し、ステップS390に移行する。例えば、図2(A)の文字を表す画素列Ca、Cbの画素pxの入力画素値(100%である256)は、第1閾値よりも大きいので、画素列Ca、Cbの画素pxの処理フラグは「ディザ」に決定される。
対象画素値が第1閾値以下である場合(S320:Yes)、次のステップS330で、二値化処理部260は、第1前画素P11の入力画素値が第2閾値以下であるか否かを判定する。第2閾値は、背景のように薄い色として扱われる入力画素値の上限に対応し、例えば、50に設定されている。第1前画素P11の入力画素値が第2閾値よりも大きい場合(S330:No)、次のステップS340で、二値化処理部260は、第1後画素P21の入力画素値が第2閾値以下であるか否かを判定する。第1後画素P21の入力画素値が第2閾値以下である場合(S340:Yes)、次のステップS342で、二値化処理部260は、2つの前画素P11、P12のうちの少なくとも一方がエッジ画素であるが否かを判定する。前画素P11、P12のうちの少なくとも一方がエッジ画素である場合(S342:Yes)、次のステップS344で、二値化処理部260は、処理フラグを「オフ」に決定する。そして、処理は、ステップS390に移行する。
図5のステップS344を示す箱の中には、ステップS344で処理フラグが「オフ」に決定される場合の、対象画素Ptと4つの画素P11、P12、P21、P22とのそれぞれの入力画素値の例の概略図が示されている。図中では、ハッチングが濃いほど、入力画素値が大きい。対象画素Ptに付されたマーク「x」は、処理フラグが「オフ」であることを示している。また、エッジ画素には、符号「e」が付されている。第1後画素P21には、薄い色を示す符号「w」が付されている。以下、符号wが付された画素、すなわち、入力画素値が第2閾値以下である画素を、「薄画素w」とも呼ぶ。
第1前画素P11がエッジ画素eである場合には、対象画素Ptは、エッジ画素eと薄画素wとに挟まれている。例えば、図3(A)の例では、第3画素列Ccの画素が対象画素Ptである場合、−D1方向側の隣の第2画素列Cbの画素がエッジ画素eであり、+D1方向側の隣の第4画素列Cdの画素が薄画素wである。従って、第3画素列Ccの画素の処理フラグは、「オフ」に決定される。
第2前画素P12がエッジ画素eである場合には、対象画素Ptは、エッジ画素eと薄画素wとの間に配置されている。薄画素wは対象画素Ptの隣の画素である。エッジ画素eと対象画素Ptとの間には、1つの画素が挟まれている。例えば、図3(A)の例では、第4画素列Cdの画素が対象画素Ptである場合、−D1方向側の第2画素列Cbの画素がエッジ画素eであり、+D1方向側の隣の第5画素列Ceの画素が薄画素wである。従って、第4画素列Cdの画素の処理フラグは、「オフ」に決定される。
ステップS340の判定結果が「No」である場合と、ステップS342の判定結果が「No」である場合とには、二値化処理部260は、ステップS346で、処理フラグを「ディザ」に決定し、ステップS390に移行する。
このように、ステップS340、S342、S344では、二値化処理部260は、+D1方向に向かって入力画素値が小さくなるエッジの近傍において、エッジ画素eと薄画素wとの間に配置された中間調の対象画素Ptの処理フラグを、「オフ」に決定する。
一方、ステップS330、S332、S334では、二値化処理部260は、−D1方向に向かって入力画素値が小さくなるエッジの近傍において、エッジ画素eと薄画素wとの間に配置された中間調の対象画素Ptの処理フラグを、「オフ」に決定する。具体的には、ステップS330では、二値化処理部260は、第1前画素P11の入力画素値が第2閾値以下であるか否かを判定する。第1前画素P11の入力画素値が第2閾値以下である場合(S330:Yes)、次のステップS332で、二値化処理部260は、2つの後画素P21、P22のうちの少なくとも一方がエッジ画素であるが否かを判定する。後画素P21、P22のうちの少なくとも一方がエッジ画素である場合(S332:Yes)、次のステップS334で、二値化処理部260は、処理フラグを「オフ」に決定する。そして、処理は、ステップS390に移行する。ステップS332の判定結果が「No」である場合には、二値化処理部260は、ステップS336で、処理フラグを「ディザ」に決定し、ステップS390に移行する。
図5のステップS334を示す箱の中には、ステップS334で処理フラグが「オフ」に決定される場合の、対象画素Ptと4つの画素P11、P12、P21、P22とのそれぞれの入力画素値の例の概略図が示されている。第1後画素P21がエッジ画素eである場合には、対象画素Ptは、エッジ画素eと薄画素wとに挟まれている。第2後画素P22がエッジ画素eである場合には、対象画素Ptは、エッジ画素eと薄画素wとの間に配置されている。薄画素wは対象画素Ptの隣の画素である。エッジ画素eと対象画素Ptとの間には、1つの画素が挟まれている。
ステップS390では、二値化処理部260は、入力画像の全ての画素の処理が終了したか否かを判定する。未処理の画素が残っている場合(S390:No)、二値化処理部260は、ステップS310に戻る。全ての画素の処理が終了した場合(S390:Yes)、図5の処理は終了する。
以上のように、二値化処理部260は、ディザマトリクスを用いる二値画素値の決定処理(図4:S260、図5:S336、S346)と、二値画素値を所定値に決定する決定処理(図4:S230、図5:S334、S344)と、の中から、印刷画素毎に決定処理を選択する(図5:S320、S330、S332、S340、S342)。以下、ディザマトリクスを用いる二値画素値決定処理と、二値画素値を所定値に決定する決定処理と、を組み合わせた二値化処理を「組合せ二値化処理」とも呼ぶ。
第1実施例では、エッジ画素eから第1方向D1と平行な方向に向かって画素を辿る場合に、エッジ画素eから数えて1つ目の位置と2つ目の位置とに配置された画素が、ディザマトリクスDMを用いずに処理フラグ(すなわち、二値画素値)が決定され得る対象画素Ptの候補である(図5:S332、S342)。以下、エッジ画素eから見た、これらの候補の対象画素Ptの位置、すなわち、エッジ画素eから数えて1つ目の位置と2つ目の位置とを、「第1相対位置」とも呼ぶ。また、エッジ画素eから見て、対象画素Ptを挟んで対向する位置の画素であって、対象画素Ptの隣に配置された画素が、薄画素wの候補である(以下「参照画素」とも呼ぶ)。以下、エッジ画素eから見た参照画素の位置を「第2相対位置」とも呼ぶ。
また、対象画素Ptの処理フラグ(すなわち、二値画素値)が「オフ」に決定されるための条件(以下「オフ決定条件」とも呼ぶ)は、以下の第1および第2条件が満たされることである。
第1条件)第1相対位置に配置された対象画素Ptの対象画素値が第1閾値以下である(S320:Yes、かつ、(S332:Yes、または、S342:Yes))
第2条件)第2相対位置に配置された参照画素の入力画素値が第2閾値以下である((S330:Yes、かつ、S332:Yes)、または、(S340:Yes、かつ、S342:Yes))
第1条件と第2条件との少なくとも一方が満たされない場合には、二値化処理部260は、対象画素Ptの処理フラグを「ディザ」に決定する(すなわち、二値画素値がディザマトリクスDMを用いて決定される)。以上により、図3(C)で説明したように、ディザマトリクスDMに起因して画質が低下することを抑制できる。
また、薄画素wの候補である参照画素は、対象画素Ptの隣の画素である。従って、参照画素の隣の画素で、ディザマトリクスDMに起因して画質が低下することを抑制できる。なお、参照画素は、対象画素Ptから離れた画素であってもよい。例えば、対象画素Ptから、エッジ画素eに向かう方向とは反対方向側に向かって画素を辿る場合に、対象画素Ptから数えてL番目(Lは2以上の整数)の画素を、参照画素として採用してもよい。
また、ディザマトリクスDMを用いずに処理フラグが「オフ」に決定され得る対象画素Ptは、エッジ画素eの隣の画素を含む(図5:S334、S344)。従って、エッジ画素eの隣の画素で、ディザマトリクスDMに起因して画質が低下することを抑制できる。また、ディザマトリクスDMを用いずに処理フラグが「オフ」に決定され得る対象画素Ptは、エッジ画素eから離れた画素を含む(図5:S334、S344)。従って、エッジ画素eから離れた画素で、ディザマトリクスDMに起因して画質が低下することを抑制できる。
また、二値化処理部260は、ディザマトリクスDMを用いずに二値画素値を決定する場合に、二値画素値を「オン」ではなく「オフ」に決定する。従って、図3(B)のように濃度の高い画素によって画質が低下することを抑制できる。
また、入力画像データは、シアンCとマゼンタMとイエロYとブラックKとのそれぞれの入力画素値を表している。そして、二値化処理部260は、ブラックKの入力画素値に対して、組合せ二値化処理を実行する。従って、シアンCとマゼンタMとイエロYと比べて目立ちやすいブラックKのトナーによって細かい凹凸パターンが形成されることを抑制できる。また、二値化処理部260は、シアンCとマゼンタMとイエロYとそれぞれの入力画素値に対しては、処理フラグを用いずに、ディザマトリクスDMを用いた二値化処理を実行する。従って、シアンCとマゼンタMとイエロYとのそれぞれのパターンが不自然に変更されることを抑制できる。ただし、ブラックKに加えて(または、ブラックKに代えて)、シアンCとマゼンタMとイエロYとの少なくとも1つに、組合せ二値化処理を適用してもよい。
B.第2実施例:
図7、図8は、処理フラグ決定処理の別の実施例のフローチャートである。図7、図8の処理は、図5の処理の代わりに、利用可能である。第2実施例の処理フラグ決定処理では、第1方向D1に沿って入力画素値が大きく変化するエッジ(すなわち、第1方向D1と交差する方向に延びるエッジ)の近傍の中間調の領域に加えて、第2方向D2に沿って入力画素値が大きく変化するエッジの近傍の中間調の領域において、処理フラグが「オフ」に決定される。印刷処理に用いられる画像処理システムのハードウェア構成は、図1に示す画像処理システム1000の構成と同じである。また、図2、図4の処理は、第2実施例でも、同様に実行される。
図7、図8の手順は、図5の手順に、以下の変更を行ったものである。
(変更B−1)ステップS315とステップS320との間に、ステップS317を追加する。
(変更B−2)図8のステップS350〜S356、S360〜S366を追加する。
(変更B−3)ステップS340の判定結果が「No」である場合に、処理は、ステップS346に移行する代わりに、図8のステップS350に移行する。
(変更B−4)図8の処理が終了すると、処理は、図7のステップS390に移行する。
図7、図8中のステップのうち、図5のステップと同じステップには、同じ符号を付して、説明を省略する。
追加されたステップS317では、エッジ特定部230は、入力画像データを解析することによって、第2方向D2に向かって順番に連続して並ぶ5つの画素P32、P31、Pt、P41、P42のうちの、対象画素Ptを除く4つの画素P31、P32、P41、P42のそれぞれの第2エッジ判定を行う。
図9は、エッジ特定部230によって実行される第2エッジ判定のフローチャートである。第2エッジ判定は、図6に示す第1エッジ判定を、第1方向D1の代わりに第2方向D2に沿って行うように変更したものである。まず、判定対象画素Petの−D2方向および+D2方向に隣接する2つの画素Pnc、Pndの間の画素値Vc、Vdの差分の絶対値である絶対差分Vd2が算出される(S450)。そして、絶対差分Vd2がエッジ閾値よりも大きい場合(S460:Yes)、判定対象画素Petはエッジ画素であると判定される(S470)。絶対差分Vd2がエッジ閾値以下である場合(S460:No)、判定対象画素Petはエッジ画素ではないと判定される(S480)。
図7のステップS320、S330〜S336、S340〜S346は、図5の同じ符号のステップと、それぞれ同じである。すなわち、第1方向D1に沿って入力画素値が大きく変化するエッジの近傍の中間調の領域の処理は、図5の第1実施例と同じである。図8に示すステップS350〜S356、S360〜S366では、第2方向D2に沿って入力画素値が大きく変化するエッジの近傍の中間調の領域が、処理される。
ステップS350〜S356では、二値化処理部260は、図5のステップS330〜S336で第1方向D1に沿って並ぶ画素P12、P11、Pt、P21、P22に適用される条件を、第2方向D2に沿って並ぶ画素P32、P31、Pt、P41、P42に、適用する。すなわち、第1上画素P31の画素値が第2閾値以下であり(S350:Yes)、かつ、2つの下画素P41、P42の少なくとも一方がエッジ画素である場合(S352:Yes)、処理フラグが「オフ」に決定される(S354)。ステップS350の判定結果が「No」である場合、処理は、後述するステップS360に移行する。ステップS350の判定結果が「Yes」であり、かつ、ステップS352の判定結果が「No」である場合、処理フラグが「ディザ」に決定される(S356)。
ステップS354を示す箱の中には、ステップS354で処理フラグが「オフ」に決定される場合の、画素P32、P31、Pt、P41、P42のそれぞれの入力画素値の例の概略図が示されている。図示するように、−D2方向に向かって入力画素値が徐々に小さくなっている。対象画素Ptの隣の第1下画素P41がエッジ画素eである場合には、エッジ画素eと薄画素wとに挟まれる対象画素Ptの処理フラグが「オフ」に決定される。対象画素Ptから離れた第2下画素P42がエッジ画素eである場合、エッジ画素eと薄画素wとの間に配置された対象画素Ptの処理フラグが「オフ」に決定される。この場合、薄画素wは、対象画素Ptの隣の画素であり、エッジ画素eと対象画素Ptとの間には、1つの画素が挟まれている。
このように、ステップS350、S352、S354では、二値化処理部260は、−D2方向に向かって入力画素値が徐々に小さくなるエッジの近傍の中間調を表す領域において、処理フラグを「オフ」に決定する。
ステップS360、S362、S364では、二値化処理部260は、+D2方向に向かって入力画素値が徐々に小さくなるエッジの近傍において、エッジ画素eと薄画素wとの間に配置された中間調の対象画素Ptの処理フラグを、「オフ」に決定する。すなわち、第1下画素P41の画素値が第2閾値以下であり(S360:Yes)、かつ、2つの上画素P31、P32の少なくとも一方がエッジ画素である場合(S362:Yes)、処理フラグが「オフ」に決定される(S364)。ステップS360、S362の少なくとも一方の判定結果が「No」である場合、処理フラグが「ディザ」に決定される(S366)。
図8のステップS364を示す箱の中には、ステップS364で処理フラグが「オフ」に決定される場合の、対象画素Ptと4つの画素P31、P32、P41、P42とのそれぞれの入力画素値の例の概略図が示されている。第1上画素P31がエッジ画素eである場合には、対象画素Ptは、エッジ画素eと薄画素wとに挟まれている。第2上画素P32がエッジ画素eである場合には、対象画素Ptは、エッジ画素eと薄画素wとの間に配置されている。薄画素wは対象画素Ptの隣の画素である。エッジ画素eと対象画素Ptとの間には、1つの画素が挟まれている。
以上のように、第2実施例では、第1方向D1に沿って入力画素値が大きく変化するエッジの近傍の中間調の領域に加えて、第2方向D2に沿って入力画素値が大きく変化するエッジの近傍の中間調の領域においても、二値化処理部260は、処理フラグを「オフ」に決定する(すなわち、二値画素値が「オフ」に決定される)。従って、オブジェクトのエッジ(例えば、輪郭)の+D1方向側の凹凸パターンと−D1方向側の凹凸パターンとに加えて、+D2方向側の凹凸パターンと−D2方向側の凹凸パターンとを、抑制できる。
なお、第2実施例では、第1相対位置(すなわち、エッジ画素eから見た、処理フラグが「オフ」に決定され得る対象画素Ptの候補の相対位置)は、第1方向D1または第2方向D2に沿ってエッジ画素eから数えて1つ目の位置と2つ目の位置とである。また、第2相対位置(すなわち、エッジ画素eから見た参照画素の位置)は、対象画素Ptの隣の位置のうちの、エッジ画素eから見て、対象画素Ptを挟んで対向する位置である。
また、第2実施例では、対象画素Ptの処理フラグ(すなわち、二値画素値)が「オフ」に決定されるためのオフ決定条件は、以下の第1および第2条件が満たされることである。
第1条件)第1相対位置に配置された対象画素Ptの対象画素値が第1閾値以下である(S320:Yes、かつ、(S332:Yes、または、S342:Yes、または、S352:Yes、または、S362:Yes))
第2条件)第2相対位置に配置された参照画素の入力画素値が第2閾値以下である((S330:Yes、かつ、S332:Yes)、または、(S340:Yes、かつ、S342:Yes)、または、(S350:Yes、かつ、S352:Yes)、または、(S360:Yes、かつ、S362:Yes))
C.第3実施例:
図10は、処理フラグ決定処理の別の実施例のフローチャートである。図10の処理は、図5の処理の代わりに、利用可能である。第3実施例の処理フラグ決定処理では、印刷画素によって表されるオブジェクトの種類に応じて、組合せ二値化処理を行うか否かが決定される。印刷処理に用いられる画像処理システムのハードウェア構成は、図1に示す画像処理システム1000の構成と同じである。また、図2、図4の処理は、第3実施例でも、同様に実行される。
図10の手順は、図5の手順に、以下の変更を行ったものである。
(変更C−1)ステップS310の前に、ステップS300を追加する。
(変更C−2)ステップS310とステップS315との間に、ステップS312を追加する。
図10中のステップのうち、図5のステップと同じステップには、同じ符号を付して、説明を省略する。
ステップS300では、オブジェクト種類特定部240は、入力画像から、オブジェクトの種類毎に、オブジェクト領域を抽出する。本実施例では、オブジェクト種類特定部240は、オブジェクトを表すオブジェクト領域として、文字を表す文字領域と、文字以外の画像を表す非文字領域と、を抽出する。非文字領域としては、例えば、文字以外の画像(例えば、写真、イラスト、線画等)を表す領域が抽出される。図11は、入力画像の例を示している。図11の入力画像IIは、写真Opと、文字列Otと、イラストOgと、を表している。オブジェクト種類特定部240、入力画像IIを解析することによって、写真Opを表す領域である第1非文字領域OAg1と、文字列Otを表す領域である文字領域OAtと、イラストOgを表す領域である第2非文字領域OAg2と、を抽出する。
オブジェクトの種類毎にオブジェクト領域を抽出する方法としては、公知の方法を採用可能である。例えば、入力画像を複数の処理領域(例えば、矩形領域)に分割し、処理領域毎に入力画素値(例えば、ブラックKの入力画素値)の分散を算出する。そして、分散が所定の閾値(「文字閾値」と呼ぶ)よりも小さい処理領域を「文字」に分類し、分散が文字閾値よりも大きい処理領域を「非文字」に分類する。そして、同じ種類の処理領域が連続することによって構成される1つの連続な領域を、1つのオブジェクト領域として抽出する。なお、オブジェクト種類特定部240は、処理領域内の全ての画素の入力画素値が最低階調値である場合、その処理領域をオブジェクト領域から除外する。なお、オブジェクト領域の抽出には、分散に限らず、他の種々の情報を採用可能である。また、複数の情報を組み合わせることによって、複数の種類のそれぞれのオブジェクト領域を抽出してもよい。
図10のステップS312では、二値化処理部260は、対象画素を含むオブジェクト領域の種類が「文字」であるか否かを判定する。オブジェクト領域の種類が「文字」ではない場合(S312)、二値化処理部260は、ステップS336で処理フラグを「ディザ」に決定し、ステップS390に移行する。オブジェクト領域の種類が「文字」である場合、二値化処理部260は、ステップS315に移行する。以降の処理は、図5の実施例と同じである。
このように、第3実施例では、二値化処理部260は、文字領域では、図5の実施例と同様に、各印刷画素毎に条件に従って処理フラグを「オフ」または「ディザ」に決定する(すなわち、組合せ二値化処理を実行する)。この結果、文字がぼやけて見えることを抑制できる。また、二値化処理部260は、非文字領域では、全ての印刷画素に対して、ディザマトリクスDMを用いた二値化処理を実行する。この結果、写真やイラスト等の非文字オブジェクトの印刷結果が不自然に見える可能性を低減できる。なお、ユーザは、文字のオブジェクトを観察する場合には、他の種類のオブジェクトを観察する場合と比べて、文字を認識するために、細かい形状を認識しようとする。従って、文字のエッジの近傍の細かい凹凸パターンは、他の種類のオブジェクトのエッジの近傍の細かい凹凸パターンと比べて、目立ちやすい。そこで、第3実施例では、組合せ二値化処理の対象として、文字領域を採用している。
なお、第3実施例では、対象画素Ptの処理フラグ(すなわち、二値画素値)が「オフ」に決定されるためのオフ決定条件は、第1実施例で説明した第1および第2条件に加えて、以下の第3条件が満たされることである。
第3条件)対象画素Ptによって表されるオブジェクトの種類が、特定の種類(ここでは、文字)である(S312:Yes)。
D.第4実施例:
図12は、処理フラグ決定処理の別の実施例のフローチャートである。図12の処理は、図5の処理の代わりに、利用可能である。第4実施例では、二値化処理部260は、互いに異なる複数のディザマトリクスを利用利用可能である。複数のディザマトリクスとしては、例えば、互いに線数が異なる複数のディザマトリクスが利用される。二値化処理部260は、二値化処理に利用されるディザマトリクスに応じて、組合せ二値化処理を行うか否かを決定する。印刷処理に用いられる画像処理システムのハードウェア構成は、図1に示す画像処理システム1000の構成と同じである。また、図2、図4の処理は、第4実施例でも、同様に実行される。なお、線数は、いわゆる「スクリーン線数」を示している。スクリーン線数は、印刷解像度の尺度の一つであり、単位長さ当たりの、オン画素によって表現可能な線の数に相当する(単位は、LPI(Lines Per Inch))。
図12の手順は、図5の手順に、以下の変更を行ったものである。
(変更D−1)ステップS310の前に、ステップS304を追加する。
(変更D−2)ステップS310とステップS315との間に、ステップS314を追加する。
図12中のステップのうち、図5のステップと同じステップには、同じ符号を付して、説明を省略する。
ステップS304では、オブジェクト種類特定部240は、入力画像から、オブジェクトの種類毎に、オブジェクト領域を抽出する。そして、マトリクス選択部250は、オブジェクト領域毎に、オブジェクトの種類に応じて、ディザマトリクスを選択する。
図13は、入力画像と、抽出されるオブジェクト領域と、選択されるディザマトリクスと、の例を示す概略図である。入力画像IIは、図11の入力画像IIと同じである。オブジェクト種類特定部240は、非文字領域の代わりに、非文字領域が細分化された2つの領域である、写真を表す写真領域と、グラフィックを表すグラフィック領域と、を抽出する。グラフィックは、文字と写真以外の画像であり、例えば、イラスト、表、ヒストグラムやパイチャート等のチャート、線図、模様等である。図13の例では、オブジェクト種類特定部240は、入力画像IIを解析することによって、写真Opを表す領域である写真領域OApと、文字列Otを表す領域である文字領域OAtと、イラストOgを表す領域であるグラフィック領域OAgと、を抽出する。
文字領域と写真領域とグラフィック領域とを抽出する方法としては、公知の方法を採用可能である。例えば、図10で説明したオブジェクト領域の抽出方法を修正して得られる以下の方法を採用可能である。まず、入力画像を複数の処理領域に分割し、処理領域毎に入力画素値(例えば、ブラックKの入力画素値)の分散を算出する。分散が上記の文字閾値よりも小さい処理領域を文字領域に分類し、分散が所定の閾値である写真閾値(写真閾値>文字閾値)よりも大きい処理領域を写真領域に分類し、分散が文字閾値以上写真閾値以下である処理領域をグラフィック領域に分類する。
マトリクス選択部250は、オブジェクト領域毎に、オブジェクトの種類に応じて、ディザマトリクスを選択する。図4のステップS260では、二値化処理部260は、対象画素を含むオブジェクト領域のためにマトリクス選択部250によって選択されたディザマトリクスを用いることによって、二値画素値を決定する。
第4実施例では、第1線数L1の第1ディザマトリクスDM1と、第1線数L1よりも少ない第2線数L2の第2ディザマトリクスDM2と、からディザマトリクスが選択される(これらのディザマトリクスDM1、DM2を表すデータは、不揮発性記憶装置130に格納されている)。第1ディザマトリクスDM1は、トナー像の比較的細かいパターンを表現可能であり、第2ディザマトリクスDM2は、トナー像の比較的粗いパターンを表現可能である。マトリクス選択部250は、オブジェクトの種類が「写真」または「文字」である場合に、第1ディザマトリクスDM1を選択する。従って、写真と文字との細かい形状を、細かい第1ディザマトリクスDM1を用いることによって、適切に印刷できる。また、マトリクス選択部250は、オブジェクトの種類が「グラフィック」である場合に、粗い第2ディザマトリクスDM2を選択する。従って、グラフィックに含まれ得る広いベタ領域(すなわち、色が均一な領域)を印刷する場合に、トナー像の位置ズレ等によってトナー像のパターンがモアレを形成することを、抑制できる。なお、イラストや棒グラフ等のグラフィックは、文字と写真とに比べて、ベタ領域を含む場合が多い。このようなベタ領域では、いわゆるバンディング等の印刷不良が目立ちやすい。そこで、第4実施例では、グラフィックには、文字と写真とに比べて、粗いディザマトリクスが適用される。この結果、ベタ領域の画質低下を抑制できる。
図12のステップS314では、二値化処理部260は、対象画素を含むオブジェクト領域に適用されるディザマトリクスの線数が、所定の閾値未満であるか否かを判定する。第4実施例では、第1ディザマトリクスDM1の線数L1が、200LPI(Line Per Inch)であり、第2ディザマトリクスDM2の線数L2が、150LPIであり、閾値が180LPIであることとする。この場合、ステップS314の判定は、ディザマトリクスが第2ディザマトリクスDM2であるか否かを判定することと、同じである。
ディザマトリクスが第2ディザマトリクスDM2ではない場合(S314:No)、二値化処理部260は、ステップS336で処理フラグを「ディザ」に決定し、ステップS390に移行する。ディザマトリクスが第2ディザマトリクスDM2である場合(S314:Yes)、二値化処理部260は、ステップS315に移行する。以降の処理は、図5の実施例と同じである。
粗い第2ディザマトリクスDM2が利用される場合には、中間調の領域に、トナー像の粗い凹凸パターンが形成され得る。第4実施例では、二値化処理部260は、粗い第2ディザマトリクスDM2が利用される領域では、図5の実施例と同様に、各印刷画素毎に条件に従って処理フラグを「オフ」または「ディザ」に決定する(すなわち、組合せ二値化処理を実行する)。従って、粗い凹凸パターンが目立つことを抑制できる。また、二値化処理部260は、細かい第1ディザマトリクスDM1が利用される領域では、全ての印刷画素に対して、第1ディザマトリクスDM1を用いた二値化処理を実行する。この結果、オブジェクトの印刷結果が不自然に見える可能性を低減できる。
なお、第4実施例では、対象画素Ptの処理フラグ(すなわち、二値画素値)が「オフ」に決定されるためのオフ決定条件は、第1実施例で説明した第1および第2条件に加えて、以下の第4条件が満たされることである。
第4条件)対象画素Ptの二値化処理のために選択されたディザマトリクスが、特定のディザマトリクス(ここでは、粗い第2ディザマトリクスDM2)である(S314:Yes)。
E.第5実施例:
図14は、印刷処理の別の実施例のフローチャートである。図14の処理は、図2の処理の処理の代わりに、利用可能である。第5実施例の印刷処理では、ユーザの指示に従って、組合せ二値化処理を行うか否かが決定される。印刷処理に用いられる画像処理システムのハードウェア構成は、図1に示す画像処理システム1000の構成と同じである。また、図4の処理は、第5実施例でも、同様に実行される。処理フラグ決定処理としては、種々の処理(例えば、上述の第1〜第4実施例、および、後述する第6実施例のそれぞれの処理フラグ決定処理から任意に選択された処理)を採用可能である。
図14の手順は、図2の手順に、以下の変更を行ったものである。
(変更E−1)ステップS120に続くステップS122を追加する。
(変更E−2)ステップS122に続くステップS125を追加する。
図14中のステップのうち、図2のステップと同じステップには、同じ符号を付して、説明を省略する。
ステップS122では、指示受信部280が、操作部150を通じて入力されたユーザ指示を受信する。この指示は、特定の条件を満たす画素についてディザマトリクスを用いずに二値画素値を決定する処理(以下「特定二値決定処理」と呼ぶ)を許容するか否かを示している。特定二値決定処理が許容されることは、特定二値決定処理を含む組合せ二値化処理が許容されることを、示している。次のステップS125では、二値化処理部260は、ユーザ指示が、特定二値決定処理を許容しているか否かを判定する。ユーザ指示が特定二値決定処理を許容する場合(S125:Yes)、二値化処理部260は、ステップS130で処理フラグ決定処理を実行し、ステップS140に移行する。ユーザ指示が特定二値決定処理を許容しない場合(S125:No)、二値化処理部260は、ステップS130をスキップして、ステップS140に移行する。二値化処理部260は、ステップS130がスキップされた場合、全ての印刷画素の処理フラグが「ディザ」に設定されていることとして、二値化処理を実行する。
以上のように、第5実施例では、二値化処理部260は、ユーザの指示に従って、特定二値決定処理(すなわち、組合せ二値化処理)を行うか否かを決定する。従って、ユーザ指示に適した二値化処理を実現できる。
なお、第5実施例では、対象画素Ptの処理フラグ(すなわち、二値画素値)が「オフ」に決定されるためのオフ決定条件は、以下の第5条件を含んでいる。
第5条件)ユーザ指示が、特定二値決定処理を許容することを示す(S125:Yes)。
例えば、第1実施例の処理フラグ決定処理(図5)が適用される場合には、オフ決定条件は、第1実施例で説明した第1および第2条件に加えて、上述の第5条件が満たされることである。
F.第6実施例:
図15は、二値化処理の別の実施例のフローチャートである。図15の処理は、図4の処理の代わりに、利用可能である。印刷処理としては、図2の処理と図14の処理とから任意に選択された処理を採用可能である。印刷処理に用いられる画像処理システムのハードウェア構成は、図1に示す画像処理システム1000の構成と同じである。
後述するように、第6実施例では、処理フラグは、「ディザ」と「オフ」と「オン」とのいずれかに決定される。図15の手順は、このような処理フラグに対応するために、図4の手順に、以下の変更を行ったものである。
(変更F−1)ステップS220の判定結果が「No」である場合に実行されるステップとして、ステップS240を追加する。このステップS240では、二値化処理部260は、処理フラグが「オン」であるか否かを判定する。
(変更F−2)ステップS240の判定結果が「Yes」である場合に実行されるステップとして、ステップS250を追加する。このステップS250では、二値化処理部260は、二値画素値を「オン」に決定する。ステップS250の後、処理は、ステップS270に移行する。
(変更F−3)ステップS240の判定結果が「No」である場合に、ステップS260が実行される。ステップS260の後、処理は、ステップS270に移行する。
図15中のステップのうち、図4のステップと同じステップには、同じ符号を付して、説明を省略する。
このように、二値化処理部260は、処理フラグが「オフ」と「オン」と「ディザ」とのいずれであるのかを判定する(S220、S240)。そして、二値化処理部260は、処理フラグに応じて、二値画素値を決定する(S230、S250、S260)。
図16、図17は、第6実施例における処理フラグ決定処理(図2、図14:S130)のフローチャートである。第6実施例の処理フラグ決定処理では、二値化処理部260は、処理フラグを「ディザ」以外に決定する場合に、対象画素値に応じて、処理フラグを「オフ」または「オン」に決定する。図16、図17の手順は、図5の手順に、以下の変更を行ったものである。
(変更F−A)ステップS334、S344を省略し、この代わりに、ステップS332の判定結果が「Yes」である場合と、ステップS342の判定結果が「Yes」である場合と、に実行される処理として、共通のステップS370(図17)を追加する。このステップS370では、二値化処理部260は、対象画素値が第3閾値未満であるか否かを判定する。
(変更F−B)ステップS370の判定結果が「No」である場合に実行されるステップとして、ステップS372(図17)を追加する。このステップS372では、二値化処理部260は、処理フラグを「オン」に決定する。ステップS372の後、処理は、ステップS390(図16)に移行する。
(変更F−C)ステップS370の判定結果が「Yes」である場合に実行されるステップSとして、ステップS374(図17)を追加する。このステップS374では、二値化処理部260は、処理フラグを「オフ」に決定する。ステップS374の後、処理は、ステップS390(図16)に移行する。
図16、図17中のステップのうち、図5のステップと同じステップには、同じ符号を付して、説明を省略する。
このように、二値化処理部260は、図16のステップS320、S330、S332の全ての判定結果が「Yes」である場合と、ステップS320、S340、S342の全ての判定結果が「Yes」である場合とに、図17のステップS370で、対象画素値が第3閾値未満であるか否かを判定する。第3閾値は、対象画素値によって表される色が、最低階調値によって表される色と、最高階調値によって表される色と、のいずれの色に近いのかを判定するための閾値であり、例えば、最低階調値と最高階調値との平均値である128に設定されている。
対象画素値が第3閾値未満である場合(S370:Yes)、次のステップS374で、二値化処理部260は、処理フラグを「オフ」に決定する。このステップS374では、図5のステップS334、S344と同様に、エッジ画素eと薄画素wとの間の対象画素Ptの処理フラグが「オフ」に決定される。ステップS374を示す箱の中には、処理フラグが「オフ」に決定される場合の画素Pt、P11、P12、P21、P22のそれぞれの入力画素値の概略が示されている。
対象画素値が第3閾値以上である場合(S370:No)、次のステップS372で、二値化処理部260は、処理フラグを「オン」に決定する。このステップS372では、エッジ画素eと薄画素wとの間の対象画素Ptの処理フラグが「オン」に決定される。ステップS372を示す箱の中には、処理フラグが「オン」に決定される場合の画素Pt、P11、P12、P21、P22のそれぞれの入力画素値の概略が示されている。この概略図は、ステップS374の概略図の「オフ」を「オン」に変更したものである。対象画素Ptに付された黒丸は、処理フラグが「オン」であることを示している。
例えば、図3(A)の例において、第3画素列Ccの入力画素値が第3閾値以上であり、第4画素列Cdの入力画素値が第3閾値未満であると仮定する。この場合、第3画素列Ccの処理フラグ(すなわち、二値画素値)が「オン」に決定され、第4画素列Cdの処理フラグ(すなわち、二値画素値)が「オフ」に決定される。この結果、図3(B)のような細かい凹凸パターンが形成されることを抑制できる。さらに、二値画素値が「オン」に設定される領域が小さくなることを抑制できる。例えば、図3(C)の例において、文字「d」の上下に延びるラインが細くなることを抑制できる。
なお、第3閾値としては、128、すなわち、最低階調値と最高階調値との平均値、に限らず、種々の値を採用可能である。第3閾値を大きくすれば、中間調の領域において二値画素値が「オン」に決定されることを抑制でき、第3閾値を小さくすれば、中間調の領域において二値画素値が「オフ」に決定されることを抑制できる。このような傾向を考慮して、実験的に第3閾値を決定すればよい。一般的には、第1閾値よりも小さく、かつ、最低階調値よりも大きい値を、第3閾値として採用可能である。
なお、第6実施例では、対象画素Ptの処理フラグ(すなわち、二値画素値)が「オフ」に決定されるためのオフ決定条件は、第1実施例で説明した第1および第2条件に加えて、以下の第6条件が満たされることである。
第6条件)第1相対位置に配置された対象画素Ptの画素値が、第3閾値未満であること(S370:Yes)。
オフ決定条件のうち、第6条件が満たされずに、第6条件以外の条件(ここでは、第1条件と第2条件)が満たされる場合、二値化処理部260は、対象画素Ptの処理フラグ(すなわち、二値画素値)を、ディザマトリクスを用いずに、「オン」に決定する。
C.変形例:
(1)上記各実施例の処理フラグ決定処理において、第1閾値としては、200に限らず、最高階調値よりも小さい種々の値を採用可能である。第1閾値を大きくすることによって、 入力画像中の中間調の領域においてディザマトリクスに起因する細かい凹凸パターンが目立つことを抑制できる。一方、第1閾値を小さくすることによって、濃度の変化が緩やかなグラデーション領域において二値画素値がディザマトリクスを用いずに決定されることを抑制できる。このような傾向を考慮して、実験的に第1閾値を決定すればよい。一般的には、第1閾値としては、最高階調値よりも小さく、そして、第1閾値と最高階調値との間の差が、第1閾値と最低階調値との間の差よりも、小さいような値、すなわち、最低階調値よりも最高階調値に近い値を、採用可能である。
(2)上記各実施例の処理フラグ決定処理において、第2閾値としては、50に限らず、種々の値を採用可能である。第2閾値を大きくすることによって、入力画像中の中間調の領域においてディザマトリクスに起因する細かい凹凸パターンが目立つことを抑制できる。一方、第2閾値を小さくすることによって、濃度の変化が緩やかなグラデーション領域において二値画素値がディザマトリクスを用いずに決定されることを抑制できる。このような傾向を考慮して、実験的に第2閾値を決定すればよい。一般的には、第2閾値としては、第2閾値と最高階調値との間の差が、第2閾値と最低階調値との間の差よりも、大きいような値、すなわち、最高階調値よりも最低階調値に近い値を、採用可能である。
(3)上記各実施例の処理フラグ決定処理において、第1相対位置、すなわち、ディザマトリクスを用いずに二値画素値が決定され得る対象画素Ptの相対位置としては、エッジ画素eから見て1つ目の画素位置と2つ目の画素位置とに限らず、種々の位置を採用可能である。一般的には、第1相対位置としては、エッジ画素eの近傍(例えば、エッジ画素eからのユークリッド距離が10画素分の距離以下の範囲)から予め選択された位置を採用可能である。ここで、第1相対位置は、エッジ画素eから離れた画素位置を含むことが好ましい。この構成によれば、エッジ画素eから離れた中間調の領域において、細かい凹凸パターンが形成されることを抑制できる。また、第1相対位置は、エッジ画素eの隣の画素位置を含むことが好ましい。この構成によれば、エッジ画素eの隣の画素位置において、細かい凹凸パターンが形成されることを抑制できる。
(4)上記各実施例の処理フラグ決定処理において、第2相対位置、すなわち、入力画素値が第2閾値以下であるか否かが判定される参照画素の相対位置としては、対象画素Ptの隣の画素に限らず、種々の位置を採用可能である。例えば、対象画素Ptから離れた画素位置を、第2相対位置として採用可能である。一般的には、エッジ画素eから見て対象画素Ptを挟んで対向する位置を採用可能である。
(5)図10の処理フラグ決定処理において、組合せ二値化処理が適用されるオブジェクトの種類としては、文字に限らず、任意の種類を採用可能である。例えば、グラフィックを採用してもよい。一般には、種々の種類のオブジェクトの印刷結果を用いて、予め実験的に、印刷済の画像中のエッジの近傍においてディザマトリクスに起因する細かい凹凸パターンが目立ちやすいオブジェクトの種類を特定すればよい。そして、二値化処理部260は、特定された種類のオブジェクトを表す領域の印刷画素に、組合せ二値化処理を適用すればよい。
(6)図10の実施例において、入力画像中のオブジェクトの種類を特定する方法としては、入力画像を解析する方法に限らず、他の任意の方法を採用可能である。例えば、入力画像を表す画像データとして、ページ記述言語(page description language)で表された画像データを利用可能である場合には、オブジェクト種類特定部240は、ページ記述言語で表された描画コマンドを解析することによって、入力画像に含まれるオブジェクトの種類を特定してもよい。
(7)図12の実施例において、二値化処理に利用される複数のディザマトリクスとしては、線数が互いに異なる複数のディザマトリクスに限らず、同じ入力画素値に対して互いに異なる二値画像のパターンを形成可能な種々のディザマトリクスを採用可能である。例えば、入力画素値が均等なベタ領域において入力画素値を徐々に大きくする場合の、二値画像の変化(例えば、ドットの成長過程)が互いに異なる複数のディザマトリクスを採用可能である。
また、二値化処理に利用されるディザマトリクスを選択する方法としては、オブジェクトの種類を用いる方法に限らず、任意の方法を採用可能である.例えば、入力画像データが、入力画像中の特定の領域に適用すべきディザマトリクスを定めている場合には、マトリクス選択部250は、特定の領域のためのディザマトリクスとして、入力画像データによって定められたディザマトリクスを選択すればよい。
いずれの場合も、複数のディザマトリクスを用いたそれぞれの印刷結果を用いて、予め実験的に、印刷済の画像中のエッジの近傍においてディザマトリクスに起因する細かい凹凸パターンが目立ちやすいディザマトリクスを、特定すればよい。そして、二値化処理部260は、特定されたディザマトリクスを用いる場合に、組合せ二値化処理を実行すればよい。
(8)ディザマトリクスを用いずに二値画素値を決定するための条件としては、上記各実施例の条件に限らず、種々の条件を採用可能である。例えば、以下の第7条件を含む条件を採用してもよい。
第7条件)第1相対位置に配置された対象画素Ptの入力画素値(すなわち、対象画素値)が、エッジ画素eの入力画素値よりも小さく、かつ、第2相対位置に配置された参照画素の入力画素値よりも大きい。
この第7条件を採用すれば、エッジ画素eから薄画素wへ向かって濃度が徐々に薄くなる領域において、ディザマトリクスを用いずに二値化処理が行われるので、エッジ画素eの近傍にアンチエイリアス処理によって生じる中間調の領域において、ディザマトリクスに起因する細かい凹凸パターンが形成されることを抑制できる。
(9)ディザマトリクスを用いずに二値画素値を所定値(例えば、「オフ」)に決定するための条件としては、上記各実施例の条件に限らず、種々の条件を採用可能である。例えば、上述した第1〜第7条件のうちの、第1条件と第2条件とを含む任意の組合せを、二値画素値を「オフ」に決定するための条件として採用可能である。また、上述した第1〜第7条件のうちの、第1条件と第2条件とを含み、第6条件を含まない、任意の組合せを、二値画素値を「オン」に決定するための条件として採用可能である。
(10)図7、図8で説明した第1方向D1と第2方向D2との両方向の処理フラグ決定処理を、他の実施例に適用してもよい。両方向の処理フラグ決定処理を図15の実施例に適用する場合には、図17で説明した処理、すなわち、対象画素値と第3閾値との比較結果に応じて処理フラグを「オン」または「オフ」に決定する処理を、図7、図8のステップS334、S344、S354、S364の代わりに適用すればよい。
(11)上記各実施例において、二値化処理部260は、処理フラグを「オフ」に決定する代わりに「オン」に決定してもよい。例えば、二値化処理部260は、図5、図7、図8、図10、図12、ステップS334、S344、S354、S364において、処理フラグを「オン」に決定してもよい。この場合、エッジ画素e(図3)の近傍の中間調の領域において、二値画素値が「オン」に決定されることによって、ディザマトリクスに起因する細かい凹凸パターンが形成されることを抑制できる。
(12)上記各実施例において、エッジ画素eの検出方法としては、画素位置の変化に対する画素値の変化が大きい画素をエッジ画素eとして検出する種々の方法を採用可能である。例えば、エッジ特定部230は、いわゆるソーベルフィルタを用いて得られるエッジ強度が所定の閾値よりも大きい印刷画素を、エッジ画素eとして検出してもよい。
(13)印刷実行部180によって用いられる色材としては、シアンCとマゼンタMとイエロYとブラックKとの組合せに限らず、他の任意の組合せを採用可能である。例えば、ブラックKのみを利用可能であってもよい。また、ブラックKが省略されてシアンCとマゼンタMとイエロYとを利用可能であってもよい。また、レッドやグリーン等の他の色相の色材を利用可能であってもよい。いずれの場合も、組合せ二値化処理は、細かい凹凸パターンが目立ちやすい色材に、適用することが好ましい。例えば、シアンCとマゼンタMとイエロYの色材を利用可能である場合、シアンCとマゼンタMとの少なくとも一方に組合せ二値化処理を適用することが好ましい。また、一般的に、ブラックKの色材の細かい凹凸パターンは、有彩色の色材の細かい凹凸パターンと比べて、目立ちやすい。従って、ブラックKを含む複数の色材を利用可能である場合、少なくともブラックKに、組合せ二値化処理を適用することが好ましい。
(14)複合機100に供給される画像データIM2の形式としては、JPEG形式に限らず、種々の形式を採用可能である。例えば、図2で説明したラスタライズと色変換とが実行済の画像データ、すなわち、入力画像データが、画像データIM2として、複合機100に供給されてもよい。この場合、複合機100の前処理部220を省略可能である。また、印刷用の画像データIM2を生成する装置としては、サーバ400に限らず、任意の装置を採用可能である。例えば、携帯端末300が、画像データIM2を生成してもよい。
また、印刷実行部180が、二値化処理部260によって生成される二値画像データを利用することとしてもよい。この場合、データ出力部270は、二値化処理部260によって生成された二値画像データを、そのまま、印刷データとして、印刷実行部180に供給すればよい。一般的には、データ出力部270は、二値画像データを利用して、印刷実行部180によって印刷のために利用可能な形式の画像データである印刷データを、印刷実行部180に供給すればよい。
(15)入力画像データを用いて印刷のために二値化処理を実行する(例えば、二値画像データを生成する)画像処理装置としては、複合機100に限らず、種々の装置を採用可能である。例えば、パーソナルコンピュータ、デジタルカメラ、または、携帯電話が、入力画像データを用いて二値化処理を実行してもよい。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、入力画像データを用いる二値化処理の機能を一部ずつ分担して、全体として、二値化処理の機能を提供してもよい(これらの装置を備えるシステムが画像処理装置に対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図1の二値化処理部260の機能を、論理回路を有する専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。