(57)【要約】【課題】エッジ強調処理に代表されるフィルタ畳み込み演算を行う事に伴う演算量が多く、処理時間が膨大になってしまう。【解決手段】画像処理装置は、入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する。そして、抽出されていない注目画素のエッジ成分を、注目画素に隣接する画素の抽出されたエッジ成分を用いた補間演算により算出する。【選択図】図２
2017005660.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する抽出手段と、
前記抽出手段で抽出されていない注目画素のエッジ成分を、前記注目画素に隣接する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算により算出する算出手段と
を有する画像処理装置。
【請求項２】
前記抽出手段は、フィルタ畳み込み演算によって前記エッジ成分を抽出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記抽出手段は、エッジ強調処理を行なう前の画素の値からエッジ強調処理を行なった後の画素の値との差分を前記エッジ成分として抽出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記一定周期は前記入力画像の画素配列の行単位であり、
前記算出手段は、前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算を行なうことを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記一定周期は前記入力画像の画素配列の列単位であり、
前記算出手段は、前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算を行なうことを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項６】
前記一定周期は前記入力画像の画素配列の千鳥格子状となる周期であり、
前記算出手段は、前記注目画素の上下左右に位置する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算を行なうことを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項７】
前記算出手段は、前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分を用いるか、または、前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分を用いるかを、画素ごとに切り替えることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分の差が、前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分との差より大きい場合、前記算出手段は、前記注目画素の左右に位置する画素の前記エッジ成分を用いた補間演算を行なうことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分の差が前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分との差より小さい場合、前記注目画素の上下に位置する画素の前記エッジ成分を用いた補間演算を行なうことを特徴とする請求項７に記載の画像処理装置。
【請求項１０】
前記入力画像の解像度に応じて前記抽出手段が前記入力画像に含まれる一定周期の画素のエッジ成分を抽出するか、または、前記抽出手段が前記入力画像に含まれる全ての画素のエッジ成分を抽出するかを切り替える切り替え手段をさらに有することを特徴とする請求項１から９のいずれか一項に記載の画像処理装置。
【請求項１１】
前記抽出手段で抽出されたエッジ成分または前記算出手段で得られたエッジ成分が入力画像のそれぞれの画素の値に加算された画像を出力する出力手段をさらに有することを特徴とする請求項１から１０のいずれか一項に記載の画像処理装置。
【請求項１２】
入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する抽出ステップと、
前記抽出ステップで抽出されていない注目画素のエッジ成分を、前記注目画素に隣接する画素の前記抽出ステップで抽出されたエッジ成分を用いた補間演算により算出する算出ステップと
を有する画像処理方法。
【請求項１３】
コンピュータを、請求項１から１１のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に含まれるエッジ成分を求める技術に関する。
【背景技術】
【０００２】
従来、画像に対してエッジ成分を求め、求めたエッジ成分を付加することでエッジ強調処理が行なわれている。エッジ強調処理を行うことで文字画像であれば可読性が増し、写真であればその写真が鮮鋭になり画質の向上を図る事が可能になる。エッジ成分を求める処理としてはフィルタによる畳みこみ演算を用いるのが一般的である。エッジ強調処理によりエッジ付近のコントラストが強調された画像に変換される。具体的には明るい領域と暗い領域の接する位置では明るい所はより明るく、暗いところはより暗く変換されることで境界部が誇張され、見た目には鮮鋭になったように見える。
【０００３】
カラー画像に対してエッジ強調を行う技術に関しては多くの技術がこれまでも公開されている。
【０００４】
スキャンされた原稿画像に対して、黒い文字を判定しその黒い文字と判定された箇所に対してエッジ強調を行い、またその黒い文字をプリントする時に墨版で生成することで可読性の向上を図る技術がある。例えば色画像データを輝度を示すデータと彩度を示すデータとに分離し、輝度から算出されるエッジ量と彩度とから黒エッジ度合いを求め、そのエッジに対して強調処理を行っている。
【０００５】
また注目画素の周囲の明度と閾値との大小関係から文字やロゴなどのエッジが明瞭なベタ部境界をより鮮鋭に、そうでない絵柄の部分では鮮鋭を抑えるよう選択的に鮮鋭度強調量を制御する処理も開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２７４００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、エッジ強調処理をソフトウェアを用いて行うと、畳み込み演算にかかる処理時間が、入力される画像のサイズや処理するＣＰＵリソースに応じて膨大になる場合がある。畳み込み演算には、通常、その畳み込み演算に用いる処理ウィンドウ内の画素それぞれに対してフィルタ内の対応する位置の係数の乗算を行い、その結果を累積加算する処理を行う。つまりそのウィンドウの大きさが５×５の場合、１画素処理するために２５回の乗算と加算とがそれぞれ必要になり、エッジ強調処理に占めるウェイトが最も大きくなる。また上述のように単純な畳み込み演算によるエッジ強調だけでなく、それに付随したエッジ強調量の補正処理も含めると１画素にかかる演算量は膨大なものになってしまう。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する抽出手段と、前記抽出手段で抽出されていない注目画素のエッジ成分を、前記注目画素に隣接する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算により算出する算出手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、画像に対して畳み込み演算処理を行う際の処理時間を短縮することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る画像形成装置の概略構成を示すブロック図である。
【図２】本発明の実施形態１に係るエッジ強調処理のフロー図である。
【図３】本発明の実施形態１に係るエッジ強調前後のエッジ部の図である。
【図４】本発明の実施形態１に係るフィルタウィンドウをずらした様子の図である。
【図５】本発明の実施形態２に係るエッジ強調処理のフロー図である。
【図６】本発明の実施形態２に係るフィルタウィンドウをずらした様子の図である。
【図７】本発明の実施形態２に係る周波数応答を示した図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。なお以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１２】
[実施形態１]
［画像形成装置の構成］
図１は本実施形態の、エッジ強調を行う機能を有する画像処理装置の構成を示すブロック図である。図１に示すように、画像処理装置は、画像読取部１０１、画像処理部１０２、記憶部１０３、ＣＰＵ１０４、画像出力部１０５、ユーザインタフェース（ＵＩ）部１０６、および送受信部１０７を備える。なお、画像処理装置は、画像データを管理するサーバ、プリントの実行を指示するパーソナルコンピュータ（ＰＣ）などにネットワークなどを介して接続可能である。
【００１３】
画像読取部１０１は、原稿の画像を読み取り、画像データを出力する。画像処理部１０２は、画像読取部１０１や送受信部１０７等より外部から入力される画像データを含む印刷情報を中間情報（以下「オブジェクト」と呼ぶ）に変換し、記憶部１０３のオブジェクトバッファに格納する。さらに、画像処理部１０２は、バッファしたオブジェクトに基づきビットマップデータを生成し、記憶部１０３のバッファに格納する。画像処理部１０２はビットマップデータを生成する処理において、色変換処理や、エッジ強調処理等を行う。詳細に関しては後述する。
【００１４】
記憶部１０３は、例えばＲＯＭ、ＲＡＭ、及びハードディスク（ＨＤ）などから構成される。ＲＯＭは、ＣＰＵ１０４が実行する各種の制御プログラムや画像処理プログラムを格納する。ＲＡＭは、ＣＰＵ１０４がデータや各種情報を格納する参照領域や作業領域として用いられる。また、ＲＡＭとＨＤは、上記のオブジェクトバッファの記憶などに用いられる。また、画像処理に必要な処理パラメータも併せて記憶しておく。このＲＡＭとＨＤ上で画像データを蓄積し、ページのソートや、ソートされた複数ページにわたる原稿を蓄積し、複数部プリント出力を行う。
【００１５】
画像出力部１０５は、記録紙などの記録媒体にカラー画像を形成して出力する。ＵＩ部１０６は、画像処理部での画像処理の種類やレベル調整等を装置へ指示するための操作を行う。例えば前述の画像処理の調整量等の設定を行う。送受信部１０７は、外部からプリント用の画像データを受け取り記憶部１０３への保存や画像出力部１０５への出力を行う。また記憶部１０３内に蓄積されている画像データを機器の外へ送信出力する。
【００１６】
なお、本実施形態においては、画像処理装置は、例えば図１に示すような構成を有する装置、例えばＭＦＰ（Multifunction Peripheral）を例に挙げて説明するが、画像処理装置はこれに限られるものではない。すなわち、画像データを扱う装置であればどのような装置であってもよく、例えばＰＣなどの情報処理装置や撮像装置などでもよい。
【００１７】
次に、本実施形態の画像処理部１０２において行なわれる画像のエッジ強調処理に関して図２を用いて詳細に説明する。以降のフローに示される処理はＣＰＵ１０４からの命令を元に画像処理部１０２により実行される。なお、画像処理部１０２に入力される画像データは各画素ＲＧＢの３色から構成されており、横方向（行方向）と縦方向（列方向）の画素配列として構成されているものとする。
【００１８】
まずステップＳ２０１において画像処理部１０２は、入力されたＲＧＢ画像データに対して色変換処理を行う。例えば、画像処理部１０２は、ＲＧＢの色空間から輝度と色差系の色空間に画素値を変換する処理を行なう。ここではＲＧＢ成分からＹＣｂＣｒへの色変換を行う。色変換式を以下に示す。  
Y  =  0.2990 * R + 0.5870 * G + 0.1140 * B
Cb = -0.1687 * R - 0.3313 * G + 0.5000 * B
Cr =  0.5000 * R - 0.4187 * G - 0.0813 * B  …  式(1)
【００１９】
式（１）においては、入力のＲＧＢ画像のＲｅｄの信号値（例えば８ｂｉｔの信号であれば０〜２５５の値）をＲ、同ＧｒｅｅｎをＧ、同ＢｌｕｅをＢと表している。式（１）は、入力のＲＧＢ成分をＹ（０〜２５５の値）Ｃｂ（−１２８〜１２７の値）Ｃｒ（−１２８〜１２７の値）に変換する処理を示している。この変換により入力のＲＧＢ画像は輝度Ｙと色差Ｃｂ、Ｃｒとへ分離される。ステップＳ２０１において画像処理部１０２は、入力されたＲＧＢ画像データの全ての画素について色変換処理を行なう。すなわち、各画素がＲＧＢ値を有するデータから、各画素がＹＣｂＣｒ値を有するデータに変換が行なわれる。
【００２０】
次にステップＳ２０２において画像処理部１０２は、処理中の画素である注目画素の位置が画素配列中の偶数行か奇数行かを判定する。すなわち、注目画素が偶数行に位置するか奇数行に位置するかを判定する。０行目、２行目、４行目・・といった偶数行であると判定した場合には続くステップＳ２０３に処理を進め、そうでない奇数行の場合にはステップＳ２０５に処理を飛ばす。
【００２１】
次にステップＳ２０３において画像処理部１０２は、ステップＳ２０１における色変換処理後の画素をフィルタウィンドウ分切り出す。色変換後の画素には、前述のように輝度情報Ｙおよび色差情報ＣｂＣｒの信号が含まれている。画像処理部１０２は、色変換後の画像からある決まったサイズのウィンドウに対応する画素を切り出す。具体的には、本実施形態では行方向に５画素、列方向に５画素の５ｘ５のウィンドウとする。本実施形態においては、注目画素を中心とした５ｘ５のウィンドウサイズに対応する画素（計２５画素）を切り出す。この場合、注目画素が画像データにおける偶数行に位置することになる。なお、ここでは５ｘ５のウィンドウを例に挙げて説明したがウィンドウサイズはこれに限られるものではない。
【００２２】
次にステップＳ２０４において画像処理部１０２は、ステップＳ２０３で切り出したウィンドウ内の各画素の輝度Ｙの信号に対してフィルタマトリクスを畳みこむことでエッジ成分の算出を行う。一般的なエッジ強調の手法としてはラプラシアンフィルタを用いて２次微分にあたるエッジ成分を計算し、その値を原画像の信号値に加算するといった手法が用いられる。ステップＳ２０４では、まずエッジ成分の算出までの処理を各画素について行なう。この２次微分成分の計算を、例えば以下に示すフィルタマトリクスを用いて行う。
【００２３】
【表１】
2017005660.tif 000003
【００２４】
このフィルタマトリクスは、５ｘ５のサイズのマトリクスであり、各要素にはフィルタ係数が含まれている。ステップＳ２０３で切り出されたウィンドウ内の各画素の輝度値をこのフィルタマトリクスを用いて畳み込みを行なう。すなわち、ステップＳ３０３で切り出されたウィンドウ内の左上に位置する画素の輝度値とフィルタマトリクス内の左上に位置する係数（−０．０９）とを乗算する。また、ウィンドウ内の左上から一つ右にずらした位置の画素の輝度値と、フィルタマトリクス内の左上から一つ右にずらした係数とを乗算する。このような乗算を２５画素分全てに行い、２５画素分の得られた値を全て加算する。このように求められた加算後の値が注目画素（ここでは５ｘ５のウィンドウ内の中央の画素）のエッジ成分として抽出される。
【００２５】
このように、５ｘ５のフィルタマトリクスの中心（この例だと１．０８を乗じる位置）がこのウィンドウの注目画素になり、この位置の出力結果となる。このフィルタマトリクスのサイズはステップＳ２０３において切り出されるウィンドウのサイズ以下にする必要がある。フィルタマトリクスの方がサイズが大きいと畳み込みで演算されない画素が出てくるので正しくエッジ成分を求められないからである。このステップＳ２０４の畳み込み処理は輝度Ｙに対してのみ行い色差ＣｂＣｒに対しては行わない。こうすることで明るさのみ強調され、エッジ部の色変化をある程度抑える事が可能になる。このようにして得られた輝度のエッジ成分をｄＹとして以降扱う。求められた輝度のエッジ成分は、例えば記憶部１０３内に画像データの画素数と同じサイズの画素数のデータ配列を設けて、注目画素の対応する位置にそれぞれ格納される。
【００２６】
ステップＳ２０４において画像処理部１０２は、画像データに含まれるすべての画素に対して処理を行ったかを判定する。未処理の画素がある場合、ステップＳ２０２に戻り、注目画素を別の画素に変えて処理を繰り返す。
【００２７】
図３は、畳み込み処理の結果の得られる各画素の輝度のエッジ成分と、このエッジ成分を原画像の輝度値に加算した場合の各画素の輝度変化とを２次元のグラフで表した図である。図３では、各画素の座標は横軸の一次元で表している。破線３０１で示したグラフが入力輝度Ｙの信号値のグラフである。実線３０２は各画素における入力輝度値に応じて算出されて出力されたエッジ成分ｄＹのグラフになる。実線３０３は、破線３０１で示す入力の輝度値に実線３０２で示すエッジ成分を各画素について加算した場合の結果の輝度値を示している。実線３０３で示すように、輝度の変化が起っている場所で、暗いところはより暗く、明るい側はより明るくコントラストが現れる。言い変えるとこのエッジ成分ｄＹはエッジ強調処理を行った前後の差分信号と取る事もできる。なお、図３では入力輝度にエッジ成分を加算している例を説明しているが、ステップＳ２０５の処理の時点ではまだエッジ成分は加算していない。その後の処理においてエッジ成分の加算が行なわれる。その様子を、続くステップＳ２０６から説明する。
【００２８】
ステップＳ２０６において画像処理部１０２は、処理中の注目画素の位置が画素配列中の偶数行か奇数行かを判定し、偶数行である場合と奇数行である場合で処理を切り替える。偶数行である場合には以下に続くステップＳ２０７の処理を行なう。奇数行である場合にはステップＳ２０８及びステップＳ２０９の処理を行う。
【００２９】
注目画素の位置が偶数行である場合、ステップＳ２０７において画像処理部１０２は、ステップＳ２０１の処理で求めた注目画素の輝度信号Ｙに対し、ステップＳ２０４で求めたその注目画素のエッジ成分ｄＹを加算し、エッジ強調後の輝度信号Ｙ’を生成する。
【００３０】
一方、注目画素の位置が奇数行である場合においても、本来、画像処理部１０２は、ステップＳ２０１の処理で求めた注目画素の輝度信号Ｙに対して、ステップＳ２０７の処理と同様に注目画素のエッジ成分ｄＹを加算したい。しかしながら画像処理部１０２は、その注目画素の位置でのエッジ成分ｄＹをステップＳ２０４で求めていない。そのため、ステップＳ２０８において画像処理部１０２は、注目画素が含まれている行の上下行の画素から注目画素の位置でのエッジ成分ｄＹを補間生成する。例えば処理中の注目画素の横方向の座標をｘ、縦方向の座標をｙ（ｙは奇数）とした時のｄＹの値をｄＹ（ｘ，ｙ）と表現すると、その未知のｄＹ（ｘ，ｙ）を以下の式（２）で求める。  
dY(x,y) = (dY(x,y-1) + dY(x,y+1)) / 2  …  式(2)
【００３１】
これは結果として、１画素分上下の画素に対してステップＳ２０４のステップでフィルタマトリクスを畳み込んで得られたそれぞれの値を、式（２）で示すようにさらに足して２で割った値となる。図４を用いてその様子を説明する。処理中の注目画素の位置４０１を中心とした５ｘ７のウィンドウ４０２を考える。ここで、注目画素の前の行（図４では一つ上の画素位置）で処理した画素の位置４０３の畳み込みの結果は、次のように考えられる。すなわち、画素の位置４０３を中心として破線で示した５ｘ５のウィンドウ４０４内の画素に対して、下２行０を加えた下記のフィルタＢを畳み込んだ結果と等価である。
【００３２】
【表２】
2017005660.tif 000004
【００３３】
下２行に０を加えた部分についてはエッジ成分としての計算に使われないので、ステップＳ３０４で説明した５ｘ５のマトリクスフィルタを用いた結果と同じになる。
【００３４】
同様に、注目画素の位置４０１の後ろの行（図では一つ下の画素位置）で処理した画素の位置４０５の畳み込みの結果は、次のように考えられる。すなわち、画素の位置４０５を中心として破線で示した５ｘ５のウィンドウ４０６内の画素に対して、上２行０を加えた下記のフィルタＣを畳み込んだ結果と等価となる。
【００３５】
【表３】
2017005660.tif 000005
【００３６】
そして、前述のように注目画素の位置４０１の補間結果は、上記の２つのフィルタを用いて畳み込みを行なった結果を足して、２で割ったものとなる。これは、実数演算をしている限り、上記の２つのフィルタマトリクスを足して２で割った５ｘ７の下記のフィルタＤを５ｘ７のウィンドウ内の画素に畳み込んだ結果と等価になる。
【００３７】
【表４】
2017005660.tif 000006
【００３８】
このフィルタＤの周波数応答は、横方向については、元のステップＳ２０４で用いたフィルタＡの畳み込み結果とほぼ等価な応答になる。また、このときの演算量は２画素分のエッジ成分を加算して２で割るだけで済むので、５ｘ５の２５画素の乗加算を行なう場合と比べて無視出来るレベルに減る。
【００３９】
このようにステップＳ２０８のエッジ成分補間処理では、式（２）に従ってエッジ成分ｄＹを求める。そして、ステップＳ２０９において画像処理部１０２は、ステップＳ２０７と同様に、ステップＳ２０１の処理で求めた輝度信号ＹにステップＳ２０８で求めたエッジ成分ｄＹを加算し、エッジ処理強調後の輝度信号Ｙ’を生成する。
【００４０】
次に、ステップＳ２１０において画像処理部１０２は、輝度、色差の色空間からＲＧＢの色空間へ色変換する。この計算はステップＳ２０１で行った色変換の逆行列演算にあたり式としては以下の様な式になる。  
R = Y'               + 1.4020 * Cr
G = Y' - 0.3441 * Cb - 0.7141 * Cr
B = Y' + 1.7720 * Cb                …  式(3)
【００４１】
式（３）では、輝度信号としてエッジ強調後の輝度信号Ｙ’が用いられている。ステップＳ２１１では全ての画素について処理を行なったかを判定し、未処理の画素があれば注目画素を変更してステップＳ２０６に処理を戻す。
【００４２】
このように、偶数行の画素に対してフィルタ畳み込み演算によりエッジ強調を行う。一方で、奇数行の画素については偶数行で得られたエッジ成分を補間することによりエッジ強調を行なう。このような処理によれば、画像データを構成する全画素に対して畳み込み演算を行うのに対して演算量を半分程度に抑制することが可能になる。
【００４３】
なお本実施形態ではエッジ強調を行う色空間として輝度色差色空間ＹＣｂＣｒを用いたが、輝度色差系の色空間であればＬ＊ａ＊ｂ＊等他の色空間でも同様の事が実現できる。また色変換を行わずＲＧＢ画像のままＲＧＢ信号値それぞれに対して処理を行っても効果は得られる。またＲＧＢを入力としたが、Ｇｒａｙ画像や、ＣＭＹＫ画像でもその効果が損なわれる訳ではない。また、画像データの画素配列のうち、一定周期の画素に対して畳み込み演算を行ない、一定周期に該当しない画素について補間演算を行なう例を説明した。すなわち、偶数行に対して畳み込み演算を行い奇数行で補間を行う例を説明したが、偶数奇数を入れ替えても当然同等の効果が得られる。同様に行単位では無く列単位で畳み込み演算と補間を切り替える事も可能である。また行列共に間引いて畳み込み演算することも可能である。
【００４４】
また本実施形態ではエッジ成分を算出した後にその結果を元の信号に加算することでエッジ強調画像を求める例を説明したが、それに限らずエッジ強調前後の信号値差を算出する事ができれば（ｄＹが算出出来れば）別の処理に応用してもよい。例えばエッジ強調に限らず、スムージングの処理等にも適用は可能である。
【００４５】
また本実施形態ではフィルタ畳み込み演算を用いたオーソドックスなエッジ強調処理に関して説明したが、先に述べたように処理前後の信号値差を算出することができればそれに限らない。例えば黒い文字を判定しエッジ強調のパラメータを切り替えるような処理に対して本実施形態を適用することも可能である。
【００４６】
なお、本実施形態で説明した処理により得られる奇数行の補間結果は必ずしも偶数行でのフィルタ畳み込み結果と等価にはならない。前述したように横方向の周波数応答はほぼ同じを示しているが、縦方向の応答は大きく異なる。この結果、画像によっては不自然な周期の縞が出てしまう場合も起こりうる。しかしながら解像度が高い画像の入力であればそれが気になる事は少ない。
【００４７】
外部装置とネットワークなどを介して接続された場合、そこから送受信部１０７経由で受信される画像データは、送信元のオリジナルのデータによってさまざまな解像度の画像データであることが考えられる。それらを画像処理部１０２はプリント出力される解像度に拡大もしくは縮小処理する事になる。
【００４８】
そこでそれらの入力画像の解像度が処理後に縞が気になるほど低いと判定された場合には偶数行でも奇数行でも一様にフィルタ畳み込み演算を行うよう入力の解像度に応じて処理を切り替える構成でもよい。つまり、画像処理部１０２は、入力画像の解像度が所定の閾値より大きいか否かを判定し、所定の閾値より大きい場合に、図２に示すフローに従ったエッジ強調処理を行う。一方、入力画像の解像度が所定の閾値以下である場合、偶数行か奇数行かによって処理を切り替えるのではなく、いずれについても一様にフィルタ畳み込み演算を行う。入力画像の解像度が所定の閾値以下であるということは画素数が減るということになるので、処理に必要な演算量も少なくなる。つまり、トータルの処理時間は変わらないので、フィルタ畳み込み演算が膨大となってしまう事態はそもそも生じないので前述したような課題は生じなくなる。
【００４９】
［実施形態２］
実施形態１においては画像の偶数行と奇数行とでフィルタ畳み込み演算する画素と補間で生成する画素との切り替えを行っていた。しかしながら前述したように結果として得られる出力画像は全画素に対してフィルタ畳み込み演算を行った結果とは異なり、画像によっては偶数行と奇数行との切り替えにより縞の様なテクスチャが出てしまう事が起こりうる。これは前述のようにステップＳ２０８における補間処理で実質的に用いられていることに相当するフィルタＤの周波数応答が縦方向と横方向とで異なる応答をすることに起因している。
【００５０】
そこで本実施形態２では補間処理で実質的に用いられていることに相当するフィルタの縦と横との周波数応答差を軽減しながらエッジ強調におけるフィルタ畳み込み演算に必要な演算量を削減する構成に関して説明する。なお、実施形態１と同様である画像処理装置の構成に関しての記載および重複するフローの説明は割愛し、本実施形態でポイントとなる点に主眼をおいて説明する。
【００５１】
本実施形態の画像処理部１０２における画像へのエッジ強調処理に関して図５を用いて詳細に説明する。以降のフローに示される処理はＣＰＵ１０４からの命令を元に画像処理部１０２により処理される。
【００５２】
また実施形態１と同様に入力の画像データは各画素ＲＧＢの３色から構成されており、横方向（行方向）と縦方向（列方向）の配列として構成されているものとする。
【００５３】
まずステップＳ５０１において画像処理部１０２は、入力のＲＧＢ画像データに対して色変換処理を行い輝度と色差系の色空間、ここではＲＧＢ成分からＹＣｂＣｒへの色変換を行う。詳細説明はステップＳ２０１と同様のため割愛する。
【００５４】
ステップＳ５０２において画像処理部１０２は、処理中の注目画素の位置が画像配列中の偶数行かつ偶数列か、または、奇数行かつ奇数列か、もしくはそれ以外か、を判定する。これは具体的には横方向の座標をｘ、縦方向の座標をｙとした時に、ｘ，ｙ共に偶数またはｘ，ｙ共に奇数の時と、それ以外の場合、すなわちｘが偶数かつｙが奇数またはｘが奇数かつｙが偶数の場合とで処理を切り替えるための判定になる。ｘ，ｙ共に偶数または共に奇数の場合には続くステップＳ５０３の処理に進み、そうでない場合にはステップＳ５０５に処理を飛ばす。つまり千鳥格子状に処理を飛ばしていくことになる。
【００５５】
次にステップＳ５０３およびステップＳ５０４のステップで画像処理部１０２が行う処理は、それぞれステップＳ２０３およびステップＳ２０４で説明した内容と同じであるため、説明は割愛する。
【００５６】
このステップＳ５０４までの処理をすべての画像データに含まれる全ての画素に対して行う。これらの処理により、画像上において千鳥格子状にステップＳ５０３およびステップＳ５０４の処理を行って千鳥格子状の画素にてエッジ成分を算出していく事になる。その後にエッジ成分の加算処理を行っていく様子を続くステップＳ５０６から説明する。
【００５７】
ステップＳ５０６のステップにおいて画像処理部１０２は、ステップＳ５０２と同様に処理中の注目画素の位置が画素配列中の偶数行かつ偶数列か、または、奇数行かつ奇数列か、もしくはそれ以外か、を判定し処理を切り替える。偶数行かつ偶数列、または、奇数行かつ奇数列の場合には以下に続くステップＳ５０７を行い、それ以外である場合にはステップＳ５０８およびＳ５０９の処理を行う。
【００５８】
ステップＳ５０７のステップにおいて画像処理部１０２は、ステップＳ５０１の処理で求めた注目画素の輝度信号Ｙに対し、注目画素のエッジ成分ｄＹを加算し、エッジ強調後の輝度信号Ｙ’を生成する。
【００５９】
一方、ステップＳ５０８のステップにおいても画像処理部１０２は、ステップＳ５０１の処理で求めた注目画素の輝度信号Ｙに対し、ステップＳ５０６の処理と同様に注目画素のエッジ成分ｄＹを加算したい。しかしながら画像処理部１０２は、その注目画素の位置でのエッジ成分ｄＹをステップＳ５０４では求めていない。そのため、ステップＳ５０８において画像処理部１０２は、注目画素の上下および左右の画素から注目画素の位置でのエッジ成分ｄＹを補間生成する。本実施形態においては、千鳥格子状にエッジ成分を求めているので、実施形態１のステップＳ２０８で説明した上下の画素からの補間だけでなく、左右の画素も用いた補間が可能になる。処理中の注目画素の横方向の座標をｘ，縦方向の座標をｙとした時のエッジ成分ｄＹの値をｄＹ（ｘ，ｙ）と表現する。すなわちｄＹ（ｘ，ｙ）は未知であり、それに隣接する画素のエッジ成分ｄＹ（ｘ−１，ｙ），ｄＹ（ｘ＋１，ｙ），ｄＹ（ｘ，ｙ−１），ｄＹ（ｘ，ｙ＋１）はそれぞれステップＳ５０４で処理済みで既知となっている。この注目画素の上下左右の画素の既知のエッジ成分を用いて注目画素の未知のエッジ成分ｄＹ（ｘ，ｙ）を補間推定する。  
【００６０】
その補間の式は、例えば、
dY(x,y) = (dY(x,y-1) + dY(x,y+1) + dY(x-1,y) + dY(x+1,y))×α / 2  …  式(4)
で求める。ここでαの値は正の実数でフィルタゲインを調整するパラメータであり、１より大きければよりエッジ強調の強度を強くする事になるパラメータになる。この値は元のステップＳ２０４で示したフィルタと結果を近づけるためのパラメータとなる。当然乗算を伴うため処理時間に影響する。なお、式（４）では４点の既知のエッジ成分から補間演算を行う際に、４ではなく２で除算を行っている。この理由は、エッジというものは類似の値が連続している方向と、値が連続していない境界となる方向とから構成されるからである。たとえば、縦線のエッジを考えると、上下方向の画素については類似の値が連続している。一方で、左右方向の画素については値が異なるものになる。４で除算を行うということは、エッジ強調に寄与する画素とエッジ強調に寄与しない画素との両方を考慮した価を求めることになる。しかしながら、本質的にはエッジ強調に寄与する画素のみから補間をすることが望ましい。そこで本実施形態ではエッジ強調に寄与する画素から補間を行なうことを目的として、２で除算を行っている。つまり、本実施形態の処理によれば、結果としてこのエッジ強調に寄与しない画素の関連性を弱めることができる。なお、もちろん蓋然性の問題であり、２で除算を行うことでエッジ強調に寄与する画素とエッジ強調に寄与しない画素との関連性をすべて解決できるわけではない。そこで、本実施形態では、パラメータとしてαを乗算することでフィルタゲインを調整している。
【００６１】
本実施形態ではαを１として以下説明を行う。αを１とした場合、結果として、ステップＳ２０４で示したフィルタマトリクスを注目画素の１画素分上下左右にずらしたマトリクスで注目画素の上下左右の５ｘ５の画素をそれぞれ畳み込む。そして、それぞれ畳み込んだ値を式（４）に従い足して２で割ったものになる。この様子を図６を用いて説明する。注目画素の位置６０１前の行で処理した画素の位置６０３の畳み込みの結果は、次のように考えられる。すなわち、画素の位置６０３を中心として破線で示した５ｘ５のウィンドウ６０４内の画素に対して、下２行０と、左右列に０とを埋めた下記のフィルタＥを畳み込んだ結果と等価である、
【００６２】
【表５】
2017005660.tif 000007
【００６３】
同様に注目画素の位置６０１の後ろの行で処理した画素の位置６０５の畳み込みの結果は、次のように考えられる。すなわち、画素の位置６０５を中心とした５ｘ５ウィンドウ６０６内の画素に対して、上２行０と、左右０とを埋めた下記のフィルタＦを畳み込んだ結果と等価である。
【００６４】
【表６】
2017005660.tif 000008
【００６５】
同様に同様に注目画素の位置６０１の左の列で処理した画素の位置６０７の畳み込みの結果は次のように考えられる。すなわち、画素の位置６０７を中心とした５ｘ５ウィンドウ６０８内の画素に対して、右２列０と、上下０とを埋めた下記のフィルタＧを畳み込んだ結果と等価である。
【００６６】
【表７】
2017005660.tif 000009
【００６７】
同様に、注目画素の位置６０１の右の行で処理した画素の位置６０９の畳み込み結果は次のように考えられる。すなわち、画素の位置６０９を中心とした５ｘ５ウィンドウ６１０内の画素に対して、左２列０と、上下０とを埋めた下記のフィルタＨを畳み込んだ結果と等価である。
【００６８】
【表８】
2017005660.tif 000010
【００６９】
このように、式（４）は上下左右の各画素の位置における各フィルタを用いてそれぞれ対応するウィンドウ内の画素に畳み込みをした結果を足して、２で割ったものになる。
【００７０】
つまり処理中の注目画素の位置６０１を中心とした７ｘ７のウィンドウ６０２はすなわち、実数演算をしている限りフィルタＥ〜Ｈを足して２で割った下記のフィルタＩを用いてウィンドウ６０２の画素に畳み込みをした結果と等価になる。
【００７１】
【表９】
2017005660.tif 000011
【００７２】
このフィルタＩの周波数応答は縦横方向に均等な応答になり、演算量は５ｘ５の２５画素の乗加算に対して無視出来るレベルに減る。またここで先のステップＳ５０８で説明した式（４）で示したαを１以外の値例えばβとすれば、このフィルタマトリクスすべてにその値βが乗じられたものと等価になる。
【００７３】
図７を用いてフィルタＩの周波数応答の例を示す。フィルタＩのフィルタマトリクスは横方向および縦方向に完全に同じ値になっているためＦＦＴした結果は同じになる。図７では横方向の１次元の周波数とその時のゲインを示した図としている。ステップＳ５０４で用いた（すなわち、実施形態１のステップＳ２０４で説明した）５ｘ５のフィルタＡのフィルタマトリクスが実線７０１の様な周波数応答を示している。これに対して、上で示した７ｘ７のフィルタＩのフィルタマトリクスの周波数応答は破線７０２の様になる。この場合ピークの周波数がマトリクスが大きくなることにより低周波側にずれ、そのピーク時のゲインも大きく変化している。式（４）で示したαを１未満、例えば０．８程度にした場合の周波数応答を線７０３に示す。αを制御することでそのピークゲインの調整が可能になり、この値を用いる事で周波数帯こそずれるがピークゲインは元の５ｘ５のフィルタＡのフィルタマトリクスと同等に制御することが可能になる。
【００７４】
ステップＳ５０９において画像処理部１０２は、このようにして求めた注目画素のエッジ成分ｄＹをステップＳ５０７と同様に、ステップＳ５０１の処理で求めた注目画素の輝度信号Ｙに加算し、エッジ強調後の輝度信号Ｙ’を生成する。
【００７５】
次に、ステップＳ５１０のステップにおいて画像処理部１０２は、輝度、色差の色空間から出力のＲＧＢの色空間へ色変換する。この計算はステップＳ２１０で説明行った内容と同じであるため説明を割愛する。ステップＳ５１１では全ての画素について処理を行なったかを判定し、未処理の画素があれば注目画素を変更してステップＳ５０６に処理を戻す。
【００７６】
このように、本実施形態では、千鳥格子状に画像に対してフィルタ畳み込み演算によるエッジ強調を行い、残りの位置を簡単な演算で補間する。このような処理により、画像データを構成する全画素に対して畳み込み演算を行うのに対して演算量を半分程度に抑制することが可能になる。
【００７７】
また先の実施形態１に対して不揃いだった縦方向、横方向の周波数応答が揃い、また図７で示したように、フィルタゲインの調整も行われるため強調される周波数帯こそ異なるが、不自然な縞の発生も押さえる事が可能になる。
【００７８】
［実施形態３］
実施形態１および２において簡単な補間演算を用いる事でフィルタ演算処理を間引いて計算量を削減する方法に関して説明した。しかしながら結果として得られる出力画像は全画素に対してフィルタ畳み込み演算を行った結果とは異なり、画像によっては縞や千鳥格子状のテクスチャが出る場合がある。これは実施形態１のステップＳ２０８では縦横の周波数応答差が、実施形態２のステップＳ５０８では強調される周波数帯が一致しない事に起因する。
【００７９】
そこで本実施形態３では画像に応じて、縦方向の補間を用いるか横方向の補間を用いるかを切り替えながら、エッジ強調におけるフィルタ畳み込み演算に必要な演算量を削減する構成に関して説明する。なお、実施形態１および２と同様である画像処理装置の構成に関しての記載および重複するフローの説明は割愛し、本実施形態においてポイントとなる点に主眼をおいて説明する。
【００８０】
本実施形態の画像処理部１０２における画像へのエッジ強調処理に関して詳細に説明する。なおフロー図は先の実施形態２と変わらないためその説明は割愛し、本実施形態で大きく違いがあるステップＳ５０８のエッジ成分補間に関して詳細説明する。
【００８１】
本実施形態におけるステップＳ５０８のステップで画像処理部１０２は、処理中の注目画素の行の上下行の画素、または、左右列の画素から、注目画素の位置でのエッジ成分ｄＹを補間生成する。注目画素の横方向の座標をｘ、縦方向の座標をｙとした時のエッジ成分ｄＹの値を実施形態２と同様にｄＹ（ｘ，ｙ）と表現する。すなわち実施形態２同様に注目画素のエッジ成分ｄＹ（ｘ，ｙ）は未知でありる。一方、注目画素の上下左右の画素のエッジ成分ｄＹ（ｘ−１，ｙ），ｄＹ（ｘ＋１，ｙ），ｄＹ（ｘ，ｙ−１），ｄＹ（ｘ，ｙ＋１）はそれぞれステップＳ５０４で処理済みで既知となっている。本実施形態では、この未知の注目画素のエッジ成分ｄＹ（ｘ，ｙ）を実施形態２で説明した手法とは別の手法で補間推定する。
【００８２】
処理中の画像が縦線であった場合、注目画素の上下に位置する画素のエッジ成分ｄＹ（ｘ，ｙ−１）およびｄＹ（ｘ，ｙ＋１）は近い値を取り、注目画素の左右に位置する画素のエッジ成分ｄＹ（ｘ−１，ｙ）およびｄＹ（ｘ＋１，ｙ）は大きく異なる値になる。逆に横線の場合は注目画素の左右に位置する画素のエッジ成分ｄＹ（ｘ−１，ｙ）およびｄＹ（ｘ＋１，ｙ）は近い値を取り、注目画素の上下に位置する画素のエッジ成分ｄＹ（ｘ，ｙ−１）およびｄＹ（ｘ，ｙ＋１）は大きく異なる値になる。
【００８３】
これを図３を再度用いて説明する。この図の場合は１次元で表現されているが、実線３０２の変化はエッジの箇所にてエッジがある向きに対して大きく変化している。
【００８４】
本実施形態においては図３の座標方向を横方向ｘとし、画像がｙ方向に続く縦線と仮定する。なお、画像が縦線の場合、ｙ方向については変化がない。従って、画像が縦線の場合に仮に図３を、ｙ方向を横軸の座標方向とした図（不図示）にすると、実線３０２はｙ方向には連続して同じ形になる。つまり、画像が縦線の場合、注目画素の左右の画素のエッジ成分ｄＹ（ｘ−１）とｄＹ（ｘ＋１）との差は大きくなる。一方で、上下の画素のエッジ成分ｄＹ（ｙ−１）とｄＹ（ｙ＋１）との差は小さい。
【００８５】
この特徴を利用し、本実施形態では処理中のウィンドウに含まれる画像が縦方向のエッジなのか横方向のエッジなのかをこのエッジ成分ｄＹの差から判定し、上下から結果を補間するか、左右から結果を補間するか切り替える。
【００８６】
もし（ｄＹ（ｘ，ｙ−１）  −  ｄＹ（ｘ，ｙ＋１））の絶対値が、（ｄＹ（ｘ−１，ｙ）  −  ｄＹ（ｘ＋１，ｙ））の絶対値より小さい場合には、注目画素が含まれるウィンドウ内の画像は縦線と判定する。そして、注目画素のエッジ成分ｄＹ（ｘ，ｙ）の結果は類似の周波数応答を有すると考えられる上下の画素について求めたエッジ成分から下記の式（５）で導かれる値を用いる。  
dY(x,y) = (dY(x,y-1) + dY(x,y+1)) / 2  …  式(5)
【００８７】
もし逆に（ｄＹ（ｘ−１，ｙ）  −  ｄＹ（ｘ＋１，ｙ））の絶対値が、（ｄＹ（ｘ，ｙ−１）  −  ｄＹ（ｘ，ｙ＋１））の絶対値より小さい場合には横線と判定する。そして、注目画素のエッジ成分ｄＹ（ｘ，ｙ）の結果は類似の周波数応答を有すると考えられる左右の画素について求めたエッジ成分から下記の式（６）で導かれる値を用いる。  
dY(x,y) = (dY(x-1,y) + dY(x+1,y)) / 2  …  式(6)
【００８８】
こうすることで、画像が縦線であった場合の横方向の周波数応答は補間で作られた結果とほぼ同等になり、同様に横線であった場合の縦方向の周波数応答もほぼ同等になる。
【００８９】
このようなフローで千鳥格子状に画像に対してフィルタ畳み込み演算によりエッジ強調を行い、残りの位置を簡単な判定を用いて補間する。これにより、画像データを構成する全画素に対して畳み込み演算を行うのに対して演算量を半分程度に抑制することが可能になる。
【００９０】
また先の実施形態に対して画像特徴を用いて切り替えを行うことで、間引かれた画素とそうでない画素の周波数応答が揃い、不自然な縞や千鳥格子状のテクスチャの発生も押さえる事が可能になる。
【００９１】
＜その他の実施形態＞
実施形態２や３では、千鳥格子状にエッジ成分を算出し、エッジ強調処理が行われていない画素については上下左右の画素について処理が行われたエッジ成分を用いて補間演算を行う例を説明した。しかしながら、この例に限られることはなく、エッジ強調処理が行われていない画素について周囲の画素について処理が行われたエッジ成分を用いて補間演算を行う形態であればよい。また、補間の態様によっては上下左右の画素を用いて補間するのではなく、斜めに位置する画素を用いて補間演算を行ってもよい。
【００９２】
また、各実施形態の処理では、すべての画素についてエッジ成分を算出した後に、各画素についてエッジ成分を付加する処理を行う例を説明した。しかしながら、メモリ容量の関係でエッジ強調処理を画素ごとに逐次行うような形態であってもよい。たとえば、実施形態１の例を挙げて説明する。まず第０行目と第２行目については、エッジ強調処理が行われる。そして、第０行目と第２行目の各画素についてのエッジ成分が、エッジ強調処理後の画素値とエッジ強調処理前の画素値との差分から算出される。その後、第１行目の各画素については、第０行目と第２行目について算出されたエッジ成分を用いた補間処理と補間されたエッジ成分を付加するエッジ強調処理が行われる。このように、逐次処理によって同様の処理を行ってもよい。
【００９３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2017005660.tif 000012
【図２】
2017005660.tif 000013
【図３】
2017005660.tif 000014
【図４】
2017005660.tif 000015
【図５】
2017005660.tif 000016
【図６】
2017005660.tif 000017
【図７】
2017005660.tif 000018