(57)【特許請求の範囲】
【請求項１】
入力画像データの階調値の分散度合いを検出する検出手段と、
前記検出手段によって検出された前記分散度合いに基づいて、複数の方向のそれぞれについて、その方向のエッジの検出されやすさである検出感度を決定する決定手段と、
前記決定手段によって決定された検出感度で、前記入力画像データに基づく入力画像からエッジを検出するエッジ検出手段と、
を有し、
前記決定手段は、前記分散度合いが小さい場合に、前記分散度合いが大きい場合に比べ低い検出感度を決定する
ことを特徴とするエッジ検出装置。
【請求項２】
前記決定手段は、前記分散度合いが小さい場合に、水平方向に近い方向のエッジの検出感度として、水平方向から遠い方向のエッジの検出感度よりも低い検出感度を決定する
ことを特徴とする請求項１に記載のエッジ検出装置。
【請求項３】
前記検出手段は、前記入力画像データの階調値のヒストグラムの複数のカテゴリのうち、度数が多いカテゴリから順番にＮ個（Ｎは２以上の整数）のカテゴリの度数の総和が大きい場合に、前記総和が小さい場合に比べ小さい分散度合いを決定する
ことを特徴とする請求項１または２に記載のエッジ検出装置。
【請求項４】
前記検出手段は、前記入力画像データの階調値のヒストグラムの複数のカテゴリのうち、度数が閾値より多いカテゴリの総数が少ない場合に、前記総数が多い場合に比べ小さい分散度合いを決定する
ことを特徴とする請求項１または２に記載のエッジ検出装置。
【請求項５】
前記検出手段は、前記入力画像データの階調値が略同一である画素の総数が少ない場合に、前記総数が多い場合に比べ小さい分散度合いを決定する
ことを特徴とする請求項１または２に記載のエッジ検出装置。
【請求項６】
前記検出手段は、前記入力画像データの階調値が所定の画素の前記入力画像データの階
調値と略同一である画素の総数に基づいて、前記分散度合いを決定する
ことを特徴とする請求項５に記載のエッジ検出装置。
【請求項７】
前記検出手段は、
複数の階調値のそれぞれについて、その階調値と前記入力画像データの階調値が略同一である画素の総数を検出し、
検出した複数の総数の最大値に基づいて、前記分散度合いを決定する
ことを特徴とする請求項５に記載のエッジ検出装置。
【請求項８】
前記エッジ検出手段は、２つの参照ブロックの位置を変えながら前記２つの参照ブロックにおける前記入力画像を比較するブロックマッチングの結果に基づいてエッジを検出し、
前記決定手段は、前記検出感度として、前記ブロックマッチングの結果を補正する補正パラメータを決定する
ことを特徴とする請求項１〜７のいずれか１項に記載のエッジ検出装置。
【請求項９】
前記決定手段は、
前記２つの参照ブロックの間の距離に応じて第１補正パラメータを決定し、
前記分散度合いに応じて第２補正パラメータを決定し、
前記第１補正パラメータと前記第２補正パラメータに応じて、前記ブロックマッチングの結果を補正する前記補正パラメータを決定する
ことを特徴とする請求項８に記載のエッジ検出装置。
【請求項１０】
前記エッジ検出手段は、２つの参照ブロックの位置を変えながら前記２つの参照ブロックにおける前記入力画像を比較するブロックマッチングの結果に基づいてエッジを検出し、
前記決定手段は、前記検出感度として、前記ブロックマッチングの結果に応じたエッジの検出結果を補正する補正パラメータを決定する
ことを特徴とする請求項１〜７のいずれか１項に記載のエッジ検出装置。
【請求項１１】
前記検出手段は、所定の画像領域における階調値の分散度合いを検出する
ことを特徴とする請求項１〜１０のいずれか１項に記載のエッジ検出装置。
【請求項１２】
前記エッジ検出手段は、参照範囲内で２つの参照ブロックの位置を変えながら前記２つの参照ブロックにおける前記入力画像を比較するブロックマッチングの結果に基づいてエッジを検出し、
前記参照範囲のサイズは変更可能であり、
前記検出手段は、前記参照範囲のサイズが大きい場合に、前記参照範囲のサイズが小さい場合に比べ大きい画像領域における階調値の分散度合いを検出する
ことを特徴とする請求項１〜１１のいずれか１項に記載のエッジ検出装置。
【請求項１３】
前記入力画像データの解像度が低い場合における前記参照範囲のサイズは、前記入力画像データの解像度が高い場合における前記参照範囲のサイズよりも小さい
ことを特徴とする請求項１２に記載のエッジ検出装置。
【請求項１４】
前記エッジ検出手段による検出結果に基づき、前記入力画像データの解像度を変換する変換手段、をさらに有する
ことを特徴とする請求項１〜１３のいずれか１項に記載のエッジ検出装置。
【請求項１５】
入力画像データの階調値の分散度合いを検出する検出ステップと、
前記検出ステップにおいて検出された前記分散度合いに基づいて、複数の方向のそれぞれについて、その方向のエッジの検出されやすさである検出感度を決定する決定ステップと、
前記決定ステップにおいて決定された検出感度で、前記入力画像データに基づく入力画像からエッジを検出するエッジ検出ステップと、
を有し、
前記決定ステップでは、前記分散度合いが小さい場合に、前記分散度合いが大きい場合に比べ低い検出感度が決定される
ことを特徴とするエッジ検出方法。
【請求項１６】
請求項１５に記載のエッジ検出方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エッジ検出装置、エッジ検出方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、従来よりも解像度の高い高解像度画像を表示する画像表示装置の普及が進んでいる。高解像度画像のうち水平方向の画素数が約４０００個の画像（例えば、水平方向４０９６画素×垂直方向２１６０画素の画像）は、一般的に「４ｋ画像」と呼ばれている。また、画像表示装置に入力される入力画像データの解像度が画像表示装置の画面解像度と異なる場合、入力画像データの解像度を画像表示装置の画面解像度と同じ解像度に変換する必要がある。
【０００３】
画像データの解像度を変換する画像処理には、スケーラ処理等がある。スケーラ処理は、入力画像データの画像サイズを変更（拡大または縮小）することで入力画像データの解像度を変換する画像処理である。この画像処理を一般的な手法（例えばバイキュービック法）を用いて行うと、斜めエッジ（斜め方向のエッジ）の画像領域にジャギーが発生し、画質が著しく劣化する。
【０００４】
ジャギーの発生を抑制する技術は、例えば、特許文献１に開示されている。特許文献１に開示の技術では、画像から斜めエッジが検出され、斜めエッジの画像領域に対して、斜めエッジの傾斜角度（斜めエッジの方向）に応じた画素を用いて補間画素が生成される。また、特許文献１に開示の技術では、注目位置に近い位置と注目位置から離れた位置とのそれぞれについて斜めエッジの存在を示す相関値が得られた場合に、注目位置に近い位置に対応する相関値を用いて注目位置における斜めエッジが検出される。
【０００５】
しかしながら、注目位置に近い位置に対応する相関値を優先して使用すると、斜めエッジの誤検出が生じる。例えば、自然画に含まれる水平線に近い浅い角度の斜め線は局所的に見ると水平線である。そのため、上記斜め線（自然画に含まれる水平線に近い浅い角度の斜め線）と、本来の水平線とを区別することができず、上記斜め線が水平線として誤検出される。その結果、上記斜め線の画像領域において、ジャギーの発生を抑制することができない。
【０００６】
また、注目位置に近い位置に対応する相関値を優先しない方法でも、斜めエッジの誤検出が生じる。例えば、注目位置の斜めエッジを構成する文字とは異なる文字の位置に対応する相関値として、斜めエッジの存在を示す相関値が誤検出されることがある。その結果、誤った相関値を用いて誤った斜めエッジが検出され、誤った斜めエッジが検出された画像領域に大きな画質劣化（画質妨害）が生じる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３３６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、エッジをより高精度に検出することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様は、
入力画像データの階調値の分散度合いを検出する検出手段と、
前記検出手段によって検出された前記分散度合いに基づいて、複数の方向のそれぞれについて、その方向のエッジの検出されやすさである検出感度を決定する決定手段と、
前記決定手段によって決定された検出感度で、前記入力画像データに基づく入力画像からエッジを検出するエッジ検出手段と、
を有し、
前記決定手段は、前記分散度合いが小さい場合に、前記分散度合いが大きい場合に比べ低い検出感度を決定する
ことを特徴とするエッジ検出装置である。
【００１０】
本発明の第２の態様は、
入力画像データの階調値の分散度合いを検出する検出ステップと、
前記検出ステップにおいて検出された前記分散度合いに基づいて、複数の方向のそれぞれについて、その方向のエッジの検出されやすさである検出感度を決定する決定ステップと、
前記決定ステップにおいて決定された検出感度で、前記入力画像データに基づく入力画像からエッジを検出するエッジ検出ステップと、
を有し、
前記決定ステップでは、前記分散度合いが小さい場合に、前記分散度合いが大きい場合に比べ低い検出感度が決定される
ことを特徴とするエッジ検出方法である。
【００１１】
本発明の第３の態様は、上述したエッジ検出方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、エッジをより高精度に検出することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１に係る画像処理装置の構成の一例を示すブロック図
【図２】実施例１に係るエッジ検出部の構成の一例を示す図
【図３】実施例１に係る参照ブロックペアの一例を示す図
【図４】実施例１に係る画素配置と輝度ヒストグラムの一例を示す図
【図５】実施例１に係る画素配置と輝度ヒストグラムの一例を示す図
【図６】実施例１に係る加算度数と階調分散度の関係の一例を示す図
【図７】実施例１に係るブロック距離と検出感度ペナルティの関係の一例を示す図
【図８】実施例１に係る階調分散度と検出感度補正ゲインの関係の一例を示す図
【図９】実施例１に係る補正後のＳＡＤ値の分布の一例を示す図
【図１０】実施例１に係るスケーラ処理の一例を示す図
【図１１】実施例２に係るエッジ検出部の構成の一例を示すブロック図
【図１２】実施例２に係る階調分散度と信頼度ペナルティの関係の一例を示す図
【図１３】実施例３に係るエッジ検出部の構成の一例を示すブロック図
【図１４】実施例３に係る範囲情報と分散検出領域サイズの関係の一例を示す図
【発明を実施するための形態】
【００１４】
＜実施例１＞
以下、本発明の実施例１について説明する。以下では、画像データの画像サイズを変更（拡大または縮小）することで画像データの解像度を変換するスケーラ処理を実行可能な画像処理装置に、本実施例に係るエッジ検出装置が設けられている例を説明する。なお、画像処理装置で実行される画像処理は、スケーラ処理に限られない。例えば、画像処理として、ぼかし処理、エッジ強調処理、輝度変換処理、色変換処理、等が行われてもよい。また、エッジ検出装置は、画像処理装置とは別体の装置であってもよい。
【００１５】
図１は、本実施例に係る画像処理装置の構成の一例を示すブロック図である。図１に示すように、本実施例に係る画像処理装置は、エッジ検出部１０１とスケーラ部１０２を有する。
【００１６】
エッジ検出部１０１は、入力画像データＩＤに基づいて、入力画像データＩＤに基づく画像である入力画像からエッジを検出する。エッジの検出方法は特に限定されないが、本実施例では、２つの参照ブロックの位置（水平方向の位置；水平位置）を変えながら２つの参照ブロック内における入力画像を比較するブロックマッチングの結果に基づいて、エッジが検出される。水平方向は、画像の向きを変えれば、垂直方向や斜め方向など様々な方向になる。エッジ検出部１０１は、エッジの検出結果として角度情報ＡＮＧＬＥを、スケーラ部１０２へ出力する。
【００１７】
角度情報ＡＮＧＬＥは、入力画像内に設定される各注目位置におけるエッジの有無と、注目位置に存在するエッジの方向とを表す。本実施例では、エッジ検出部１０１は、角度情報ＡＮＧＬＥとして−１６〜＋１６の値を出力する。具体的には、エッジ検出部１０１は、エッジが存在する位置における角度情報ＡＮＧＬＥとして、垂直方向に対するエッジの傾斜角度を表す値を出力する。そして、エッジ検出部１０１は、エッジが存在しない位置における角度情報ＡＮＧＬＥとして、「０」を出力する。なお、エッジの方向の表現方法は上記方法（垂直方向に対するエッジの傾斜角度）に限られない。例えば、エッジの方向は、水平方向に対するエッジの傾斜角度で表現されてもよい。
【００１８】
スケーラ部１０２は、角度情報ＡＮＧＬＥに基づいて入力画像データＩＤの解像度を変換するスケーラ処理を行うことにより、画像データＯＤ（解像度が変換された後の入力画像データ）を生成する。そして、スケーラ部１０２は、生成した画像データＯＤを出力する。画像データＯＤは、不図示の記憶部に記録されたり、不図示の表示部で表示されたりする。
【００１９】
次に、エッジ検出部１０１について詳しく説明する。図２は、エッジ検出部１０１の構成の一例を示すブロック図である。図２に示すように、エッジ検出部１０１は、輝度変換部２０１、ブロックバッファ部２０２、ブロックマッチング部２０３、階調分散度検出部２０４、オフセット値決定部２０５、ＳＡＤオフセット部２０６、及び、マッチング角度決定部２０７を有する。
【００２０】
輝度変換部２０１は、入力画像データＩＤの各画素値を輝度値ＹＤＡＴＡに変換し、各輝度値ＹＤＡＴＡをブロックバッファ部２０２と階調分散度検出部２０４に順次出力する。入力画像データＩＤの画素値がＹＣｂＣｒ値（Ｙ値、Ｃｂ値、及び、Ｃｒ値の組み合わせ）である場合には、輝度変換部２０１は、入力画像データＩＤのＹ値を輝度値ＹＤＡＴＡとして使用する。入力画像データＩＤの画素値がＲＧＢ値（Ｒ値、Ｇ値、及び、Ｂ値の組み合わせ）である場合には、輝度変換部２０１は、入力画像データＩＤのＲＧＢ値を輝度値ＹＤＡＴＡに変換する。例えば、以下の式１を用いて輝度値ＹＤＡＴＡが算出される。
ＹＤＡＴＡ＝０．２×Ｒ値＋０．７×Ｇ値＋０．１×Ｂ値  ・・・（式１）
【００２１】
ブロックバッファ部２０２は、輝度変換部２０１から出力された輝度値ＹＤＡＴＡを記憶し、記憶している輝度値ＹＤＡＴＡをブロックマッチング部２０３へ出力する。本実施例では、ブロックバッファ部２０２は、４ライン分のラインメモリを有しており、４ライン分のラインメモリに輝度値ＹＤＡＴＡ（４ライン分の輝度値ＹＤＡＴＡ）を蓄積する。そして、ブロックバッファ部２０２は、水平方向Ｘ１画素×垂直方向Ｙ１ライン分の輝度値ＹＤＡＴＡをラインメモリから読み出し、読み出した輝度値ＹＤＡＴＡをブロックデータＢＬＫＤＡＴＡとしてブロックマッチング部２０３へ出力する。本実施例では、Ｘ１＝２０であり、且つ、Ｙ１＝４である場合の例を説明する。なお、ラインメモリが記憶可能
なデータのライン数、ブロックデータＢＬＫＤＡＴＡの画像領域サイズ（画素数）は、特に限定されない。
【００２２】
例えば、ラインメモリが記憶する輝度値ＹＤＡＴＡ、及び、ラインメモリから読み出すブロックデータＢＬＫＤＡＴＡは、輝度変換部２０１から輝度値ＹＤＡＴＡが出力される度に更新される。そして、ブロックデータＢＬＫＤＡＴＡの更新に応じて、注目位置も更新される。注目位置と、ブロックデータＢＬＫＤＡＴＡに対応する画像領域との位置関係は特に限定されない。本実施例では、ブロックデータＢＬＫＤＡＴＡに対応する画像領域の中心位置が、注目位置として使用される。
【００２３】
図３（Ａ），３（Ｂ）に示すように、ブロックマッチング部２０３は、注目位置Ｐ０に対して、２つの参照ブロックＡ，Ｂを設定し、参照ブロックＡ内の画像（輝度値ＹＤＡＴＡ）と参照ブロックＢ内の画像とを比較する。具体的には、ブロックマッチング部２０３は、参照ブロックＡの複数の画素のそれぞれについて、その画素の輝度値ＹＤＡＴＡと、参照ブロックＢの画素の輝度値ＹＤＡＴＡとの差分の絶対値（差分絶対値）を算出する。参照ブロックＡの画素ＰＡについての差分絶対値を得る際には、参照ブロックＢの複数の画素のうち、参照ブロックＢとの位置関係が、参照ブロックＡと画素ＰＡの位置関係と等しい画素ＰＢが使用される。そして、ブロックマッチング部２０３は、得られた複数の差分絶対値の総和であるＳＡＤ値（差分絶対値和）を算出する。ＳＡＤ値は、参照ブロックＡ内における入力画像と、参照ブロックＢ内における入力画像との非類似度（類似度の逆数）に相当する。参照ブロックＡの中心位置は、注目位置Ｐ０よりも上側に位置し、参照ブロックＢの中心位置は、注目位置Ｐ０よりも下側に位置する。そして、参照ブロックペア（参照ブロックＡと参照ブロックＢの組み合わせ）の水平方向の中心位置は、注目位置Ｐ０の水平位置と一致する。参照ブロックＡ，Ｂの位置関係は、エッジの方向の候補（候補方向）に対応する。
【００２４】
ブロックマッチング部２０３は、参照ブロックＡ，Ｂの水平位置を変えながら複数のＳＡＤ値を算出する。参照ブロックＡ，Ｂの水平位置は、ブロックデータＢＬＫＤＡＴＡの画像領域内（参照範囲内）で変更される。本実施例では、ブロックマッチング部２０３は、ブロック距離が−１６、−１４、−１２、−１０、−８、−６、−４、−２、０、＋２、＋４、＋６、＋８、＋１０、＋１２、＋１４、及び、＋１６である１７個の参照ブロックペアを設定する。そして、ブロックマッチング部２０３は、１７個の参照ブロックペアに対応する１７個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を算出し（ｎはブロック距離）、対象位置に対して算出した複数（１７個）のＳＡＤ値をＳＡＤオフセット部２０６へ出力する。ブロック距離ｎの絶対値は、参照ブロックＡの中心位置と、参照ブロックＢの中心位置との間の水平方向の距離である。
【００２５】
本実施例では、参照ブロックＡの中心位置が注目位置Ｐ０よりも右側に位置する場合に、ブロック距離ｎとして正の値が使用される。そして、参照ブロックＡの中心位置が注目位置Ｐ０よりも左側に位置する場合に、ブロック距離ｎとして負の値が使用される。図３（Ａ）は、ブロック距離ｎ＝−４の場合の例を示す。図３（Ｂ）は、ブロック距離ｎ＝−６の場合の例を示す。ブロック距離ｎの絶対値の増加に伴い、対応する候補方向の垂直方向に対する角度は増加する。本実施例では、図３（Ａ），３（Ｂ）に示すように、参照ブロックＡ，Ｂとして、水平方向４画素×垂直方向３画素の画像領域が設定される。そして、参照ブロックＡ，Ｂとして、垂直方向に１画素分だけずれた２つの参照ブロックが設定される。
【００２６】
なお、参照ブロックＡ，Ｂのサイズ、垂直方向における参照ブロックＡと参照ブロックＢの位置関係、参照ブロックＡ，Ｂの形状、等は特に限定されない。例えば、参照ブロックＡ，Ｂのサイズは、水平方向４画素×垂直方向３画素より大きくても小さくてもよい。
また、垂直方向における参照ブロックＡと参照ブロックＢのずれの大きさは、１画素分の大きさより大きくてもよい。参照ブロックＡ，Ｂの形状は、三角形、五角形、六角形、長方形、台形、ひし形、円形（真円形や楕円形）、等であってもよい。
【００２７】
階調分散度検出部２０４は、入力画像データＩＤの階調値の分散の度合いを検出する。以後、入力画像データＩＤの階調値の分散の度合いを「階調分散度」と記載する。そして、階調分散度検出部２０４は、階調分散度をオフセット値決定部２０５へ出力する。本実施例では、階調分散度として、輝度値ＹＤＡＴＡの分散の度合いが検出される。なお、階調分散度は、輝度値ＹＤＡＴＡの分散の度合いに限られない。例えば、階調分散度は、Ｃｂ値の分散の度合い、Ｃｒ値の分散の度合い、Ｒ値の分散の度合い、Ｇ値の分散の度合い、Ｂ値の分散の度合い、等であってもよい。階調分散度は、複数種類の階調値の分散の度合いであってもよい。階調分散度は、階調値のバラツキ度合いとも言い換えられる。また、階調分散度が高い画像データは、二値度が低い画像データとも言える。
【００２８】
本実施例では、階調分散度検出部２０４は、階調分散度として、所定の画像領域における輝度値ＹＤＡＴＡの分散の度合いを検出する。本実施例では、所定の画像領域は、入力画像の一部の画像領域（水平方向Ｘ２画素×垂直方向Ｙ２画素の画像領域）であり、注目位置が更新される度に更新される。具体的には、所定の画像領域として、注目位置の周辺に存在する水平方向５画素×垂直方向５画素の画像領域が設定される。
【００２９】
なお、所定の画像領域のサイズ、所定の画像領域と注目位置の位置関係、所定の画像領域の形状、等は特に限定されない。例えば、所定の画像領域のサイズは、水平方向５画素×垂直方向５画素より大きくても小さくてもよい。エッジ検出の処理負荷の観点から、所定の画像領域は、小さいことが好ましく、エッジ検出の精度の観点から、所定の画像領域は、ある程度大きいことが好ましい。そのため、所定の画像領域のサイズは、エッジ検出の処理負荷や精度を考慮して決定されることが好ましい。所定の画像領域は、注目位置を含まない画像領域であってもよい。複数の注目位置の間で共有の画像領域が、所定の画像領域として使用されてもよい。入力画像の全画像領域が、所定の画像領域として使用されてもよい。所定の画像領域の形状は、三角形、五角形、六角形、長方形、台形、ひし形、円形（真円形や楕円形）、等であってもよい。
【００３０】
まず、階調分散度検出部２０４は、輝度変換部２０１から出力された、所定の画像領域の輝度値ＹＤＡＴＡ（水平方向５画素×垂直方向５画素の２５画素分の輝度値ＹＤＡＴＡ）から、輝度値ＹＤＡＴＡのヒストグラム（輝度ヒストグラム）を生成する。本実施例では、各カテゴリのビット数が８ビットである輝度ヒストグラムが生成される。そのため、輝度値ＹＤＡＴＡのビット数が８ビット以下である場合には、輝度値ＹＤＡＴＡをそのまま用いて、輝度ヒストグラムが生成される。輝度値ＹＤＡＴＡのビット数が８ビットよりも多い場合には、輝度値ＹＤＡＴＡの下位ビットを切り捨てることにより、輝度値ＹＤＡＴＡのビット数が８ビットに変換される。そして、変換後の輝度値ＹＤＡＴＡ（８ビットの値）を用いて、輝度ヒストグラムが生成される。なお、カテゴリのビット数は、８ビットより多くても少なくてもよい。カテゴリのビット数は、そのカテゴリに含まれる輝度値ＹＤＡＴＡの範囲の大きさに相当する。
【００３１】
次に、階調分散度検出部２０４は、生成した輝度ヒストグラムの複数のカテゴリのうち、度数（画素数）が多いカテゴリから順番にＮ個（Ｎは２以上の整数）のカテゴリの度数の総和を算出する。Ｎの値は特に限定されないが、本実施例ではＮ＝２とする。階調分散度検出部２０４は、生成した輝度ヒストグラムから、度数が１番多いカテゴリの度数Ｄ１ｓｔと、度数が２番目に多いカテゴリの度数Ｄ２ｎｄとを検出する。そして、階調分散度検出部２０４は、度数Ｄ１ｓｔに度数Ｄ２ｎｄを加算することにより、加算度数ＡＤＤを算出する。加算度数ＡＤＤの算出式は、以下の式２である。
ＡＤＤ＝Ｄ１ｓｔ＋Ｄ２ｎｄ  ・・・（式２）
【００３２】
図４（Ａ），５（Ａ）は、所定の画像領域における画素の一例を示す。図４（Ａ），５（Ａ）では、輝度値ＹＤＡＴＡの増加に伴い画素の色が黒から白に変化するように、輝度値ＹＤＡＴＡが色で表現されている。図４（Ｂ），５（Ｂ）は、輝度ヒストグラムの一例を示す。図４（Ｂ）は、図４（Ａ）に示す２５画素の輝度値ＹＤＡＴＡから生成された輝度ヒストグラムを示し、図５（Ｂ）は、図５（Ａ）に示す２５画素の輝度値ＹＤＡＴＡから生成された輝度ヒストグラムを示す。
【００３３】
図４（Ａ），４（Ｂ）の例では、２５画素の階調数が２である。具体的には、２５画素のうち、１５画素が輝度値ＹＤＡＴＡ＝０の画素であり、１０画素が輝度値ＹＤＡＴＡ＝２５５の画素である。そのため、度数Ｄ１ｓｔとして輝度値ＹＤＡＴＡ＝０の度数１５が検出され、度数Ｄ２ｎｄとして輝度値ＹＤＡＴＡ＝２５５の度数２５５が検出され、加算度数ＡＤＤ＝１５＋１０＝２５が算出される。
【００３４】
図５（Ａ），５（Ｂ）の例では、２５画素の階調数が５である。具体的には、輝度値ＹＤＡＴＡ＝０の画素、輝度値ＹＤＡＴＡ＝６４の画素、輝度値ＹＤＡＴＡ＝１２８の画素、輝度値ＹＤＡＴＡ＝１９２の画素、及び、輝度値ＹＤＡＴＡ＝２５５の画素が、それぞれ５画素ずつ存在する。そのため、度数Ｄ１ｓｔ＝度数Ｄ２ｎｄ＝５が検出され、加算度数ＡＤＤ＝５＋５＝１０が算出される。
【００３５】
その後、階調分散度検出部２０４は、加算度数ＡＤＤを階調分散度ＤＲＡＴＥに変換し、階調分散度ＤＲＡＴＥをオフセット値決定部２０５へ出力する。本実施例では、階調分散度検出部２０４は、加算度数ＡＤＤが多い場合に、加算度数ＡＤＤが少ない場合に比べ小さい階調分散度ＤＲＡＴＥを決定する。具体的には、階調分散度検出部２０４は、図６に示す対応関係に基づいて、加算度数ＡＤＤを階調分散度ＤＲＡＴＥに変換する。図６に示す対応関係によれば、閾値ＡＴＨ１以下の加算度数ＡＤＤは、階調分散度ＤＲＡＴＥ＝１に変換され、閾値ＡＴＨ２以上の加算度数ＡＤＤは、階調分散度ＤＲＡＴＥ＝０に変換される。そして、閾値ＡＴＨ１より大きく且つ閾値ＡＴＨ２より小さい加算度数ＡＤＤは、加算度数ＡＤＤの増加に伴い階調分散度ＤＲＡＴＥが１から０へ線形に低下するように、階調分散度ＤＲＡＴＥに変換される。図６の例では、閾値ＡＴＨ１＝６であり、閾値ＡＴＨ２＝１８である。
【００３６】
なお、閾値ＡＴＨ１，ＡＴＨ２は特に限定されない。閾値ＡＴＨ１は６より大きくても小さくてもよいし、閾値ＡＴＨ２は１８より大きくても小さくてもよい。閾値ＡＴＨ１，ＡＴＨ２は、メーカーによって予め定められた固定値であってもよいし、ユーザが変更可能な値であってもよい。閾値ＡＴＨ１，ＡＴＨ２は、画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により決定される値であってもよい。また、加算度数ＡＤＤと階調分散度ＤＲＡＴＥの対応関係は図６の対応関係に限られない。例えば、加算度数ＡＤＤの増加に対して階調分散度ＤＲＡＴＥが非線形に低下してもよい。
【００３７】
なお、階調分散度ＤＲＡＴＥの決定方法は、上記方法に限られない。例えば、輝度ヒストグラムの複数のカテゴリのうち、度数が閾値ＦＴＨより多いカテゴリの総数Ｋに基づいて、階調分散度ＤＲＡＴＥが決定されてもよい。具体的には、総数Ｋが少ない場合に、総数Ｋが多い場合に比べ小さい階調分散度ＤＲＡＴＥが決定されてもよい。ここで、閾値ＦＴＨ＝０とすると、図４の例では総数Ｋ＝２が得られ、図５の例では総数Ｋ＝５が得られる。
【００３８】
なお、閾値ＦＴＨは、メーカーによって予め定められた固定値であってもよいし、ユーザが変更可能な値であってもよい。閾値ＦＴＨは、画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により決定される値であってもよい。また、総数Ｋと階調分散度ＤＲＡＴＥの対応関係は特に限定されない。
【００３９】
階調分散度ＤＲＡＴＥは、輝度ヒストグラムを用いずに決定されてもよい。例えば、所定の画像領域内の複数の画素のうち、入力画像データＩＤの階調値が略同一である画素の総数がカウントされ、カウント結果（総数；カウント値）ｃｎｔに基づいて階調分散度ＤＲＡＴＥが決定されてもよい。具体的には、カウント値ｃｎｔが小さい場合に、カウント値ｃｎｔが大きい場合に比べ小さい階調分散度ＤＲＡＴＥが決定されてもよい。「略同一」は「完全同一」を含む。
【００４０】
なお、カウント値ｃｎｔの取得方法は特に限定されない。例えば、所定の画像領域内の複数の画素のうち、入力画像データＩＤの階調値が所定の画素の入力画像データＩＤの階調値と略同一である画素の総数が、カウント値ｃｎｔとして使用されてもよい。所定の画素は、所定の画像領域内の画素であってもよいし、所定の画像領域外の画素であってもよい。例えば、所定の画素は、注目位置から最も近い画素である。また、複数の階調値のそれぞれについて、その階調値と入力画像データＩＤの階調値が略同一である画素（所定の画像領域内の画素）の総数が検出され、検出された複数の総数の最大値がカウント値ｃｎｔとして使用されてもよい。この方法によれば、１つの階調値のみについて画素数をカウントする構成に比べ、より高精度に階調分散度ＤＲＡＴＥを決定することができる。
【００４１】
オフセット値決定部２０５は、階調分散度ＤＲＡＴＥに基づいて、複数の方向のそれぞれについて、その方向のエッジの検出されやすさである検出感度を決定する。本実施例では、検出感度として、ブロックマッチング部２０３によって得られたＳＡＤ値（ブロックマッチングの結果）を補正する補正パラメータであるオフセット値ＯＦＳＴが決定される。具体的には、ブロックマッチング部２０３によって得られた１７個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）をそれぞれ補正する１７個のオフセット値ＯＦＳＴ（ｎ）が決定される。そして、オフセット値決定部２０５は、オフセット値ＯＦＳＴ（ｎ）をＳＡＤオフセット部２０６へ出力する。なお、検出感度として、上記補正パラメータとは異なる値が決定されてもよい。例えば、「高」、「中」、「低」などが検出感度として決定されてもよい。ブロックマッチングの結果（ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ））に応じたエッジの検出結果を補正する補正パラメータが、検出感度として決定されてもよい。
【００４２】
まず、オフセット値決定部２０５は、ブロック距離ｎの絶対値Ｄ（参照ブロックＡ，Ｂ間の距離）に応じて、第１補正パラメータである検出感度ペナルティＰを決定する。具体的には、オフセット値決定部２０５は、絶対値Ｄと検出感度ペナルティＰの対応関係を表すテーブルＰＴＢＬを、不図示の読み込み部から読み込む。そして、オフセット値決定部２０５は、絶対値Ｄを、テーブルＰＴＢＬにおいて絶対値Ｄに対応付けられている検出感度ペナルティＰに変換する。例えば、ブロック距離ｎ＝−４である場合には、ブロック距離ｎの絶対値Ｄ＝４が、テーブルＰＴＢＬにおいて絶対値Ｄ＝４に対応付けられている検出感度ペナルティＰに変換される。オフセット値決定部２０５は、１７個のブロック距離ｎにそれぞれ対応する１７個の検出感度ペナルティＰ（ｎ）を決定する。
【００４３】
本実施例では、テーブルＰＴＢＬは図７の対応関係を表す。図７の対応関係によれば、絶対値Ｄが大きい場合に、絶対値Ｄが小さい場合に比べ大きい検出感度ペナルティＰが決定される。具体的には、閾値ＢＴＨ１以下の絶対値Ｄは、検出感度ペナルティＰ＝０に変換され、閾値ＢＴＨ２以上の絶対値Ｄは、検出感度ペナルティＰ＝ＰＭＡＸに変換される。そして、閾値ＢＴＨ１より大きく且つ閾値ＢＴＨ２より小さい絶対値Ｄは、絶対値Ｄの増加に伴い検出感度ペナルティＰが０からＰＭＡＸへ線形に増加するように、検出感度ペ
ナルティＰに変換される。ＰＭＡＸは、検出感度ペナルティＰの上限値である。図７の例では、閾値ＢＴＨ１＝４であり、閾値ＢＴＨ２＝１２であり、上限値ＰＭＡＸ＝２５６である。
【００４４】
なお、閾値ＢＴＨ１，ＢＴＨ２は特に限定されない。閾値ＢＴＨ１は４より大きくても小さくてもよいし、閾値ＢＴＨ２は１２より大きくても小さくてもよい。閾値ＢＴＨ１，ＢＴＨ２は、メーカーによって予め定められた固定値であってもよいし、ユーザが変更可能な値であってもよい。閾値ＢＴＨ１，ＢＴＨ２は、画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により決定される値であってもよい。また、絶対値Ｄと検出感度ペナルティＰの対応関係は図７の対応関係に限られない。例えば、絶対値Ｄの増加に対して検出感度ペナルティＰが非線形に増加してもよい。検出感度ペナルティＰが絶対値Ｄに依存しなくてもよい。
【００４５】
なお、検出感度ペナルティＰの決定方法は上記方法に限られない。例えば、絶対値Ｄと検出感度ペナルティＰの対応関係を表す情報として、テーブルＰＴＢＬの代わりに関数が使用されてもよい。また、ブロック距離ｎを用いずに、検出感度ペナルティＰが決定されてもよい。例えば、ユーザ操作に応じて検出感度ペナルティＰが決定（設定）されてもよい。メーカーによって予め定められた固定値が検出感度ペナルティＰとして使用されてもよい。画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により検出感度ペナルティＰが決定されてもよい。
【００４６】
次に、オフセット値決定部２０５は、階調分散度ＤＲＡＴＥに応じて、第２補正パラメータである検出感度補正ゲインＲＧＡＩＮを決定する。具体的には、オフセット値決定部２０５は、図８に示す対応関係に基づいて、階調分散度ＤＲＡＴＥを検出感度補正ゲインＲＧＡＩＮに変換する。図８に示す対応関係によれば、階調分散度ＤＲＡＴＥが大きい場合に、階調分散度ＤＲＡＴＥが小さい場合に比べ小さい検出感度補正ゲインＲＧＡＩＮが決定される。具体的には、閾値ＤＴＨ１以下の階調分散度ＤＲＡＴＥは、検出感度補正ゲインＲＧＡＩＮ＝１に変換され、閾値ＤＴＨ２以上の階調分散度ＤＲＡＴＥは、検出感度補正ゲインＲＧＡＩＮ＝０に変換される。そして、閾値ＤＴＨ１より大きく且つ閾値ＤＴＨ２より小さい階調分散度ＤＲＡＴＥは、階調分散度ＤＲＡＴＥの増加に伴い検出感度補正ゲインＲＧＡＩＮが１から０へ線形に低下するように、検出感度補正ゲインＲＧＡＩＮに変換される。図８の例では、閾値ＤＴＨ１＝０．３であり、閾値ＤＴＨ２＝０．７である。オフセット値決定部２０５は、１つの注目位置に対応する１つの検出感度補正ゲインＲＧＡＩＮを決定する。即ち、１７個のブロック距離ｎに共通の１つの検出感度補正ゲインＲＧＡＩＮが決定される。
【００４７】
なお、閾値ＤＴＨ１，ＤＴＨ２は特に限定されない。閾値ＤＴＨ１は０．３より大きくても小さくてもよいし、閾値ＤＴＨ２は０．７より大きくても小さくてもよい。閾値ＤＴＨ１，ＤＴＨ２は、メーカーによって予め定められた固定値であってもよいし、ユーザが変更可能な値であってもよい。閾値ＤＴＨ１，ＤＴＨ２は、画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により決定される値であってもよい。また、階調分散度ＤＲＡＴＥと検出感度補正ゲインＲＧＡＩＮの対応関係は図８の対応関係に限られない。例えば、階調分散度ＤＲＡＴＥの増加に対して検出感度補正ゲインＲＧＡＩＮが非線形に低下してもよい。
【００４８】
そして、オフセット値決定部２０５は、検出感度ペナルティＰと検出感度補正ゲインＲＧＡＩＮに応じて、オフセット値ＯＦＳＴを決定する。本実施例では、オフセット値決定部２０５は、以下の式３を用いて、オフセット値ＯＦＳＴを算出する。オフセット値決定部２０５は、１７個のブロック距離ｎにそれぞれ対応する１７個のオフセット値ＯＦＳＴ（ｎ）を決定する。
ＯＦＳＴ（ｎ）＝Ｐ（ｎ）×ＲＧＡＩＮ  ・・・（式３）
【００４９】
なお、第１補正パラメータと第２補正パラメータは特に限定されない。例えば、第１補正パラメータを第２補正パラメータに加算することによりオフセット値ＯＦＳＴ（ｎ）が算出されるように、第１補正パラメータと第２補正パラメータが決定されてもよい。
【００５０】
ＳＡＤオフセット部２０６は、ブロックマッチング部２０３により算出された１７個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を、オフセット値決定部２０５により決定された１７個のオフセット値ＯＦＳＴ（ｎ）を用いて補正する。具体的には、以下の式４に示すように、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）にオフセット値ＯＦＳＴ（ｎ）を加算することにより、補正後のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）が算出される。そして、ＳＡＤオフセット部２０６は、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）をマッチング角度決定部２０７へ出力する。
ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）＝ＳＡＤ＿ＡＲＲＡＹ（ｎ）
＋ＯＦＳＴ（ｎ）
・・・（式４）
【００５１】
なお、本実施例では、ＳＡＤ値を補正する補正パラメータとして、ＳＡＤ値に加算するオフセット値が決定される例を説明したが、これに限らない。例えば、ＳＡＤ値に乗算するゲイン値が、ＳＡＤ値を補正する補正パラメータとして決定されてもよい。
【００５２】
マッチング角度決定部２０７は、オフセット値決定部２０５によって決定された検出感度で入力画像からエッジを検出する。具体的には、マッチング角度決定部２０７は、ＳＡＤオフセット部２０６から出力された１７個のＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の最小値ＳＡＤｍｉｎに応じて、角度情報ＡＮＧＬＥを決定する。そして、マッチング角度決定部２０７は、決定した角度情報ＡＮＧＬＥをスケーラ部１０２に出力する。具体的には、マッチング角度決定部２０７は、ＳＡＤｍｉｎであるＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）のｎを、角度情報ＡＮＧＬＥとして決定する。例えば、ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の分布が図９に示す分布であった場合には、角度情報ＡＮＧＬＥ＝−４が得られる。
【００５３】
上述したように、図３（Ａ），３（Ｂ）の参照ブロックＡ，Ｂの位置関係は、エッジの方向の候補（候補方向）に対応する。そのため、「ブロック距離ｎは候補方向に対応する」と言える。具体的には、正の値であるブロック距離ｎは右上がりの候補方向に対応し、負の値であるブロック距離ｎは右下がりの候補方向に対応する。そして、ブロック距離ｎの絶対値が大きいほど水平方向に近く、且つ、ブロック距離ｎの絶対値が小さいほど水平方向から遠い（垂直方向に近い）候補方向に、ブロック距離ｎが対応する。
【００５４】
そして、本実施例では、補正後のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）に基づいて角度情報ＡＮＧＬＥが決定される。そのため、オフセット値ＯＦＳＴを決定する処理は、「検出感度を決定する処理」と言える。そして、補正後のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）に基づいて角度情報ＡＮＧＬＥを決定する処理は、「決定された検出感度でエッジを検出する処理」と言える。
【００５５】
また、本実施例では、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）が小さいほど、ブロック距離ｎに対応する方向（候補方向）のエッジが検出されやすい。そして、ＳＡＤ値
ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）が大きいほど、ブロック距離ｎに対応する方向のエッジが検出されにくい。そして、式４に示すように、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）にオフセット値ＯＦＳＴ（ｎ）を加算することにより、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）が算出される。そのため、オフセット値ＯＦＳＴ（ｎ）が大きいほど大きい低減度合いで、ブロック距離ｎに対応する方向のエッジの検出感度が低減される。
【００５６】
式３に示すように、検出感度ペナルティＰ（ｎ）が一定の場合には、検出感度補正ゲインＲＧＡＩＮが大きいほど大きい値が、オフセット値ＯＦＳＴ（ｎ）として得られる。そして、図８に示すように、階調分散度ＤＲＡＴＥが小さい場合に、階調分散度ＤＲＡＴＥが大きい場合に比べ大きい検出感度補正ゲインＲＧＡＩＮが得られる。そのため、階調分散度ＤＲＡＴＥが小さい場合に、階調分散度ＤＲＡＴＥが大きい場合に比べ大きいオフセット値ＯＦＳＴ（ｎ）が得られる。即ち、階調分散度ＤＲＡＴＥが小さい場合に、階調分散度ＤＲＡＴＥが大きい場合に比べ低い検出感度が決定される。
【００５７】
そして、式３に示すように、検出感度補正ゲインＲＧＡＩＮが一定の場合には、検出感度ペナルティＰ（ｎ）が大きいほど大きい値が、オフセット値ＯＦＳＴ（ｎ）として得られる。そして、図７に示すように、絶対値Ｄが大きい場合に、絶対値Ｄが小さい場合に比べ大きい検出感度ペナルティＰ（ｎ）が得られる。絶対値Ｄは、図３（Ａ），３（Ｂ）の参照ブロックＡと参照ブロックＢの間の水平方向の距離である。そのため、絶対値Ｄが大きいほど、候補方向（図３（Ａ），３（Ｂ）の破線矢印の方向；エッジの方向の候補）は水平方向に近い。したがって、候補方向が水平方向に近い場合に、候補方向が水平方向から遠い場合よりも大きい検出感度ペナルティＰ（ｎ）が得られる。その結果、候補方向が水平方向に近い場合に、候補方向が水平方向から遠い場合よりも大きいオフセット値ＯＦＳＴ（ｎ）が得られる。即ち、候補方向が水平方向に近い場合に、候補方向が水平方向から遠い場合よりも低い検出感度が決定される。
【００５８】
従って、本実施例によれば、階調分散度ＤＲＡＴＥが小さい場合に、水平方向に近い方向のエッジの検出感度として、水平方向から遠い方向のエッジの検出感度よりも低い検出感度が決定される。そして、階調分散度ＤＲＡＴＥが大きい場合に、複数のエッジの方向の間で略同一の検出感度が決定される。
【００５９】
テキスト画像の画像領域では、水平方向から遠い方向のエッジが存在するにも拘らず水平方向に近い方向のエッジが誤検出されることがある。そのため、テキスト画像の画像領域では、水平方向に近い方向のエッジの検出感度が、水平方向から遠い方向のエッジの検出感度よりも低い検出感度に制御されることが好ましい。また、自然画の画像領域では、水平方向から遠い方向のエッジが存在するにも拘らず水平方向に近い方向のエッジが誤検出されることは少ない。そのため、自然画の画像領域では、エッジの検出感度が、複数のエッジの方向の間で略同一の検出感度に制御されることが好ましい。一般的に、テキスト画像の画像領域では階調分散度ＤＲＡＴＥとして小さい値が得られ、自然画の画像領域では階調分散度ＤＲＡＴＥとして大きい値が得られる。そのため、本実施例によれば、上述した好ましい制御を実現することができ、エッジをより高精度に検出することができる。
【００６０】
なお、図６の閾値ＡＴＨ１，ＡＴＨ２、図７の上限値ＰＭＡＸ、図７の閾値ＢＴＨ１，ＢＴＨ２、図８の閾値ＤＴＨ１，ＤＴＨ２、等を調整することで、検出感度を調整することができる（検出感度のチューニング）。例えば、階調分散度ＤＲＡＴＥが低減されるように閾値ＡＴＨ１，ＡＴＨ２が調整されると、検出感度が低減される。上限値ＰＭＡＸが高められると、検出感度が低減される。検出感度ペナルティＰが高められるように閾値ＢＴＨ１，ＢＴＨ２が調整されると、検出感度が低減される。そして、検出感度補正ゲインＲＧＡＩＮが高められるように閾値ＤＴＨ１，ＤＴＨ２が調整されると、検出感度が低減される。
【００６１】
次に、スケーラ部１０２について詳しく説明する。図１０は、スケーラ部１０２で行われるスケーラ処理の一例を示す図である。スケーラ処理では、入力画像に画素が存在しない位置に対して、補間画素（ＳＣ補間画素）が生成される。図１０において、「Ｐ０」は注目位置を示し、「Ｐ１」はＳＣ補間位置（ＳＣ補間画素の生成位置）を示す。注目位置は特に限定されないが、本実施例では、図１０に示すように、入力画像データＩＤの２行２列の４画素の中心位置が注目位置として使用される。注目位置Ｐ０は、ＳＣ補間位置Ｐ１に最も近い注目位置である。ＳＣ補間位置Ｐ１は、スケーラ処理の拡大率や縮小率に依存する。図１０において、「ｉｘ＿ｉ」は、入力画像データＩＤの画素の水平位置を示すための整数値であり、「ｉｙ＿ｉ」は、入力画像データＩＤの画素の垂直位置（垂直方向の位置）を示すための整数値である。また、「ｉｘ＿ｓ」は、ＳＣ補間位置Ｐ１の水平位置を示すための小数値であり、「ｉｙ＿ｓ」は、ＳＣ補間位置Ｐ１の垂直位置を示すための小数値である。ＳＣ補間位置Ｐ１の座標（水平位置，垂直位置）は、（ｉｘ＿ｉ＋ｉｘ＿ｓ，ｉｙ＿ｉ＋ｉｙ＿ｓ）で表すことができる。
【００６２】
本実施例では、スケーラ処理において、角度情報ＡＮＧＬＥに基づいて、入力画像データＩＤの４つ画素Ｕ１，Ｕ２，Ｄ１，Ｄ２が選択される。そして、選択された４つの画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値を用いて、ＳＣ補間位置Ｐ１の画素値ＤＯＵＴが算出される。その後、算出された画素値ＤＯＵＴが、画像データＯＤの画素値として出力される。
【００６３】
画素Ｕ１，Ｕ２は、ＳＣ補間位置Ｐ１の１つ上のライン上の画素であり、画素Ｄ１，Ｄ２は、ＳＣ補間位置Ｐ１の１つ下のライン上の画素である。本実施例では、角度情報ＡＮＧＬＥとして、注目位置を基準とする画素Ｕ，Ｄの水平位置を示す値が使用される。本実施例では、角度情報ＡＮＧＬＥに基づいて画素Ｕ１，Ｄ１が選択される。画素Ｕ１，Ｄ１は、角度情報ＡＮＧＬＥが示すエッジの方向において注目位置Ｐ０に隣接する画素である。そして、画素Ｕ１，Ｄ１の水平位置をＳＣ補間位置Ｐ１の側に１画素分だけシフトさせることにより、画素Ｕ２，Ｄ２が選択される。画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の水平位置Ｕ１（ｘ），Ｕ２（ｘ），Ｄ１（ｘ），Ｄ２（ｘ）は、以下の式５を用いて算出できる。式５において、「ＩＮＴ（Ｘ）」は、Ｘの整数部分を得る関数である。
Ｕ１（ｘ）＝ＩＮＴ（ｉｘ＿ｉ＋ｉｘ＿ｓ＋ＡＮＧＬＥ＿ＳＣ×ｉｙ＿ｓ）
Ｕ２（ｘ）＝Ｕ１（ｘ）＋１
Ｄ１（ｘ）＝Ｕ１（ｘ）−ＡＮＧＬＥ＿ＳＣ
Ｄ２（ｘ）＝Ｄ１（ｘ）＋１
・・・（式５）
【００６４】
図１０の「ｋ」は、ＳＣ補間位置Ｐ１の画素値を算出する際に用いるパラメータであり、画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値の重みを決定するためのパラメータである。図１０に示すように、パラメータｋは、第１位置と画素Ｕ１との間の距離である。第１位置は、ＳＣ補間位置Ｐ１の１つ上のライン上の位置であり、角度情報ＡＮＧＬＥが示すエッジの方向においてＳＣ補間位置Ｐ１に隣接する位置である。パラメータｋは、第２位置と画素Ｄ２との間の距離でもある。第２位置は、ＳＣ補間位置Ｐ１の１つ下のライン上の位置であり、角度情報ＡＮＧＬＥが示すエッジの方向においてＳＣ補間位置Ｐ１に隣接する位置である。パラメータｋは、以下の式６を用いて算出される。
ｋ＝（ｉｘ＿ｓ＋ＡＮＧＬＥ＿ＳＣ×ｉｙ＿ｓ）
−ＩＮＴ（ｉｘ＿ｓ＋ＡＮＧＬＥ＿ＳＣ×ｉｙ＿ｓ）
・・・（式６）
【００６５】
そして、画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値をパラメータｋに基づく重み（ＳＣ補間位置Ｐ１からの距離に基づく重み）で重み付け合成することにより、ＳＣ補間位置Ｐ１の画素値ＤＯＵＴが算出される。具体的には、以下の式７を用いて画素値ＤＯＵＴが算出される。式７において、「ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）」は画素Ｕ１の画素値、「ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）」は画素Ｕ２の画素値、「ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）」は画素Ｄ１の画素値、「ＰＤ（Ｄ２（ｘ），ｉｙ＿ｉ＋１）」は画素Ｄ２の画素値である。
ＤＯＵＴ＝（ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）×（１−ｋ）
＋ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）×ｋ）×（１−ｉｙ＿ｓ）
＋（ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）×ｋ
＋ＰＤ（Ｄ２（ｘ）、ｉｙ＿ｉ＋１）×（１−ｋ））×ｉｙ＿ｓ
・・・（式７）
【００６６】
式７によれば、画素値ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）の重みとして「１−ｋ」（第１位置と画素Ｕ２の間の距離）が使用され、画素値ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）の重みとして「ｋ」（第１位置と画素Ｕ１の間の距離）が使用される。それらの重みを用いて、画素値ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）と画素値ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）が重み付け合成され、第１合成値が算出される。
【００６７】
また、画素値ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）の重みとして「ｋ」（第２位置と画素Ｄ２の間の距離）が使用され、画素値ＰＤ（Ｄ２（ｘ），ｉｙ＿ｉ＋１）の重みとして「１−ｋ」（第２位置と画素Ｄ１の間の距離）が使用される。それらの重みを用いて、画素値ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）と画素値ＰＤ（Ｄ２（ｘ），ｉｙ＿ｉ＋１）が重み付け合成され、第２合成値が算出される。
【００６８】
そして、第１合成値の重みとして「１−ｉｙ＿ｓ」（画素Ｄ１，Ｄ２のラインとＳＣ補間位置Ｐ１との間の垂直距離（垂直方向の距離））が使用される。また、第２合成値の重みとして「ｉｙ＿ｓ」（画素Ｕ１，Ｕ２のラインとＳＣ補間位置Ｐ１との間の垂直距離）が使用される。それらの重みを用いて、第１合成値と第２合成値が重み付け合成され、画素値ＤＯＵＴが算出される。
【００６９】
以上述べたように、本実施例によれば、入力画像データの階調値の分散度合いに基づいて、複数の方向のそれぞれについて、その方向のエッジの検出されやすさである検出感度が決定される。そして、決定された検出感度で、入力画像からエッジが検出される。それにより、エッジをより高精度に検出することができる。例えば、自然画に含まれる水平線に近い浅い角度の斜め線、文字に含まれる斜め線、等を高精度に検出することができる。その結果、エッジの検出結果に基づく種々の処理をより高精度に行うことができる。例えば、スケーラ処理によるジャギーの発生をより高精度に抑制することができる。
【００７０】
＜実施例２＞
以下、本発明の実施例２について説明する。実施例１では、ブロックマッチングの結果であるＳＡＤ値を補正する例を説明した。本実施例では、ブロックマッチングの結果に応じたエッジの検出結果を補正する例を説明する。なお、以下では、実施例１と異なる構成や処理について詳しく説明し、実施例１と同様の構成や処理についての説明は省略する。
【００７１】
本実施例に係る画像処理装置の構成は、実施例１（図１）と同じである。但し、本実施
例では、エッジ検出部１０１の処理が実施例１と異なる。図１１は、本実施例に係るエッジ検出部１０１の構成の一例を示すブロック図である。図１１において、実施例１と同じ機能部には実施例１と同じ符号を付し、その機能部についての説明は省略する。
【００７２】
信頼度ペナルティ決定部３０５は、階調分散度検出部２０４から出力された階調分散度ＤＲＡＴＥに基づいて、信頼度ペナルティＱＰＥＮＡを決定する。そして、信頼度ペナルティ決定部３０５は、決定した信頼度ペナルティＱＰＥＮＡをマッチング角度決定部３０７へ出力する。信頼度ペナルティＱＰＥＮＡは、ブロックマッチングの結果（ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ））に応じた角度情報ＡＮＧＬＥを補正する補正パラメータである。信頼度ペナルティＱＰＥＮＡは「ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）に応じた角度情報ＡＮＧＬＥの非信頼度」とも言える。
【００７３】
本実施例では、信頼度ペナルティ決定部３０５は、図１２に示す対応関係に基づいて、階調分散度ＤＲＡＴＥを信頼度ペナルティＱＰＥＮＡに変換する。図１２に示す対応関係によれば、階調分散度ＤＲＡＴＥが大きい場合に、階調分散度ＤＲＡＴＥが小さい場合に比べ小さい信頼度ペナルティＱＰＥＮＡが決定される。具体的には、閾値ＥＴＨ１以下の階調分散度ＤＲＡＴＥは、信頼度ペナルティＱＰＥＮＡに変換され、閾値ＥＴＨ２以上の階調分散度ＤＲＡＴＥは、信頼度ペナルティＱＰＥＮＡ＝０に変換される。そして、閾値ＥＴＨ１より大きく且つ閾値ＥＴＨ２より小さい階調分散度ＤＲＡＴＥは、階調分散度ＤＲＡＴＥの増加に伴い信頼度ペナルティＱＰＥＮＡが１から０へ線形に低下するように、信頼度ペナルティＱＰＥＮＡに変換される。信頼度ペナルティ決定部３０５は、１つの注目位置に対応する１つの信頼度ペナルティＱＰＥＮＡを決定する。
【００７４】
実施例１で述べたように、テキスト画像の画像領域では、水平方向から遠い方向のエッジが存在するにも拘らず水平方向に近い方向のエッジが誤検出されることがある。そのため、階調分散度ＤＲＡＴＥが小さい場合には、階調分散度ＤＲＡＴＥが大きい場合に比べ、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）に応じた角度情報ＡＮＧＬＥの信頼度が低いと考えられる。図１２に示すような対応関係で階調分散度ＤＲＡＴＥを信頼度ペナルティＱＰＥＮＡに変換するのは、このためである。
【００７５】
なお、閾値ＥＴＨ１，ＥＴＨ２は特に限定されない。閾値ＥＴＨ１，ＥＴＨ２は、メーカーによって予め定められた固定値であってもよいし、ユーザが変更可能な値であってもよい。閾値ＥＴＨ１，ＥＴＨ２は、画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により決定される値であってもよい。また、階調分散度ＤＲＡＴＥと信頼度ペナルティＱＰＥＮＡの対応関係は図１２の対応関係に限られない。例えば、階調分散度ＤＲＡＴＥの増加に対して信頼度ペナルティＱＰＥＮＡが非線形に低下してもよい。
【００７６】
マッチング角度決定部３０７は、ブロックマッチング部２０３から出力された１７個のＳＡＤ＿ＡＲＲＡＹ（ｎ）の最小値ＳＡＤｍｉｎと、信頼度ペナルティ決定部３０５から出力された信頼度ペナルティＱＰＥＮＡとに基づいて、角度情報ＡＮＧＬＥを決定する。具体的には、マッチング角度決定部３０７は、ブロックマッチング部２０３から出力された１７個のＳＡＤ＿ＡＲＲＡＹ（ｎ）の最小値ＳＡＤｍｉｎに応じて、角度情報ＡＮＧＬＥを決定する。ここでは、ＳＡＤｍｉｎであるＳＡＤ＿ＡＲＲＡＹ（ｎ）のｎが、角度情報ＡＮＧＬＥとして決定される。そして、マッチング角度決定部３０７は、信頼度ペナルティ決定部３０５から出力された信頼度ペナルティＱＰＥＮＡに応じて、角度情報ＡＮＧＬＥを補正する。
【００７７】
このように、本実施例では、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）と信頼度ペナルティＱＰＥＮＡとに基づいて角度情報ＡＮＧＬＥが決定される。そのため、信頼度ペナルティＱ
ＰＥＮＡを決定する処理は、「検出感度を決定する処理」と言える。そして、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）と信頼度ペナルティＱＰＥＮＡとに基づいて角度情報ＡＮＧＬＥを決定する処理は、「決定された検出感度でエッジを検出する処理」と言える。
【００７８】
本実施例では、信頼度ペナルティＱＰＥＮＡと閾値ＱＴＨとの比較結果に応じて、以下のように角度情報ＡＮＧＬＥが補正される。なお、閾値ＱＴＨは特に限定されない。閾値ＱＴＨは、メーカーによって予め定められた固定値であってもよいし、ユーザが変更可能な値であってもよい。閾値ＱＴＨは、画像処理装置の動作モード、入力画像データＩＤの種類、等に応じて画像処理装置により決定される値であってもよい。
・ＱＰＥＮＡ＞ＱＴＨの場合：
角度情報ＡＮＧＬＥ＝０に、角度情報ＡＮＧＬＥが補正される。
・ＱＰＥＮＡ≦ＱＴＨの場合：
角度情報ＡＮＧＬＥは補正されない。
【００７９】
このように、本実施例では、信頼度ペナルティＱＰＥＮＡが大きい場合に、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）に応じた角度情報ＡＮＧＬＥの信頼度が低いと判断され、角度情報ＡＮＧＬＥが０に補正される。角度情報ＡＮＧＬＥ＝０は、垂直方向のエッジが存在すること、または、エッジが存在しないことを示す。そして、信頼度ペナルティＱＰＥＮＡが小さい場合に、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）に応じた角度情報ＡＮＧＬＥの信頼度が高いと判断され、角度情報ＡＮＧＬＥは補正されない。
【００８０】
そして、図１２に示すように、階調分散度ＤＲＡＴＥが小さい場合に、階調分散度ＤＲＡＴＥが大きい場合に比べ大きい信頼度ペナルティＱＰＥＮＡが得られる。そのため、信頼度ペナルティＱＰＥＮＡを決定する処理は、「階調分散度ＤＲＡＴＥが小さい場合に、階調分散度ＤＲＡＴＥが大きい場合に比べ低い検出感度を決定する処理」と言うことができる。信頼度ペナルティＱＰＥＮＡを決定する処理は、「階調分散度ＤＲＡＴＥが小さい場合に、水平方向に近い方向のエッジの検出感度として、水平方向から遠い方向のエッジの検出感度よりも低い検出感度を決定する処理」と言うこともできる。そして、信頼度ペナルティＱＰＥＮＡを決定する処理は、「階調分散度ＤＲＡＴＥが大きい場合に、複数のエッジの方向の間で略同一の検出感度を決定する処理」と言うこともできる。
【００８１】
以上述べたように、本実施例によれば、階調分散度に基づいて、エッジの検出結果を補正する補正パラメータが決定される。そして、決定された補正パラメータを用いて、エッジの検出結果が補正される。それにより、エッジをより高精度に検出することができる。
【００８２】
なお、本実施例では、補正後の角度情報ＡＮＧＬＥとして１つの値「０」を使用する例を説明したが、これに限らない。例えば、信頼度ペナルティＱＰＥＮＡが大きいほど大きい補正量（変化量）で、角度情報ＡＮＧＬＥが０に近づけられてもよい。
【００８３】
なお、本実施例では、信頼度ペナルティＱＰＥＮＡに応じて角度情報ＡＮＧＬＥを補正する例を示したが、信頼度ペナルティＱＰＥＮＡに応じて最小値ＳＡＤｍｉｎが補正されてもよい。例えば、最小値ＳＡＤｍｉｎに信頼度ペナルティＱＰＥＮＡを加算する補正が行われてもよい。最小値ＳＡＤｍｉｎが大きいほど、最小値ＳＡＤｍｉｎに応じた角度情報ＡＮＧＬＥの信頼度は低い。そのため、最小値ＳＡＤｍｉｎに信頼度ペナルティＱＰＥＮＡを加算する補正は「角度情報ＡＮＧＬＥの信頼度を下げる補正」と言える。そして、補正後のＳＡＤｍｉｎと閾値との比較結果に応じて、角度情報ＡＮＧＬＥが補正されてもよい。補正後の信頼度（補正後のＳＡＤ値など）に応じて、スケーラ部１０２での補間方法（画素値ＤＯＵＴの決定方法）が変更されてもよい。例えば、信頼度が高い場合に、実
施例１の方法で画素値ＤＯＵＴが決定され、信頼度が低い場合に、ＳＣ補間位置に最も近い４つの画素を用いて画素値ＤＯＵＴが決定されてもよい。
【００８４】
＜実施例３＞
以下、本発明の実施例３について説明する。実施例１では、階調分散度の検出対象の画像領域のサイズが固定されている場合の例を説明した。本実施例では、ブロックマッチングで使用される参照範囲のサイズに応じて、階調分散度の検出対象の画像領域のサイズを決定する例を説明する。なお、以下では、実施例１と異なる構成や処理について詳しく説明し、実施例１と同様の構成や処理についての説明は省略する。
【００８５】
本実施例に係る画像処理装置の構成は、実施例１（図１）と同じである。但し、本実施例では、エッジ検出部１０１の処理が実施例１と異なる。図１３は、本実施例に係るエッジ検出部１０１の構成の一例を示すブロック図である。図１３において、実施例１と同じ機能部には実施例１と同じ符号を付し、その機能部についての説明は省略する。
【００８６】
ブロックバッファ部４０２は、実施例１のブロックバッファ部２０２と同様の処理を行う。但し、本実施例では、ブロックバッファ部４０２は、ブロックデータＢＬＫＤＡＴＡの画像領域のサイズを変更する。具体的には、参照範囲のサイズを示す範囲情報ＲＡＮＧＥが、画像処理装置に入力される。ブロックバッファ部４０２は、範囲情報ＲＡＮＧＥによって示されたサイズを有する画像領域を参照領域として設定し、参照領域のデータをブロックデータＢＬＫＤＡＴＡとして出力する。範囲情報ＲＡＮＧＥを変更することにより参照範囲のサイズが変更可能である。
【００８７】
階調分散度検出部４０４は、実施例１の階調分散度検出部２０４と同様の方法で、階調分散度ＤＲＡＴＥを決定する。但し、本実施例では、階調分散度検出部４０４は、階調分散度ＤＲＡＴＥの検出対象の画像領域（分散検出領域）のサイズを変更する。具体的には、階調分散度検出部４０４は、参照範囲のサイズが大きい場合に、参照範囲のサイズが小さい場合に比べ大きい画像領域を、分散検出領域として設定する。その結果、参照範囲のサイズが大きい場合に、参照範囲のサイズが小さい場合に比べ大きい画像領域における階調値の分散度合いが、階調分散度ＤＲＡＴＥとして検出される。
【００８８】
入力画像データＩＤの解像度が低い場合、広い範囲内で参照ブロックの位置を変更すると、エッジが誤検出される虞がある。そこで、本実施例では、入力画像データＩＤの解像度が低い場合における参照範囲のサイズとして、入力画像データＩＤの解像度が高い場合における参照範囲のサイズよりも小さいサイズを示す情報が、範囲情報ＲＡＮＧＥとして使用される。これにより、入力画像データＩＤの解像度に応じた好適な参照範囲を設定することができる。ひいては、エッジの誤検出を抑制し、より高精度なエッジ検出を実現できる。
【００８９】
また、上述した範囲情報ＲＡＮＧＥが使用されることにより、入力画像データＩＤの解像度が低い場合に、入力画像データＩＤの解像度が高い場合に比べ小さい分散検出領域が設定される。これにより、参照範囲のサイズに応じた好適な分散検出領域を設定することができる。ひいては、より好適な階調分散度ＤＲＡＴＥを得ることができ、より高精度なエッジ検出を実現できる。
【００９０】
範囲情報ＲＡＮＧＥは、例えば、以下の式８を用いて算出された値である。式８において、「ＨＲＥＳＯ」は、入力画像データＩＤの水平解像度（水平方向の画素数）であり、例えば１９２０である。「ＶＲＥＳＯ」は、入力画像データＩＤの垂直解像度（垂直方向の画素数；垂直方向のライン数）であり、例えば１０８０である。「α」は、所定の係数であり、例えば、０以上１以下の任意の値である。
ＲＥＳＯ＝（ＨＲＥＳＯ×ＶＲＥＳＯ）×α  ・・・（式８）
【００９１】
なお、入力画像データＩＤの解像度とは無関係のサイズが、参照範囲のサイズとして使用されてもよい。例えば、ユーザによって選択されたサイズが、参照範囲のサイズとして使用されてもよい。また、外部からの情報（範囲情報ＲＡＮＧＥ）を用いずに、参照範囲のサイズが決定されてもよい。例えば、画像処理装置内において、入力画像データＩＤの解像度を検出する処理、解像度の検出結果に応じて参照範囲のサイズを決定する処理、等が行われてもよい。
【００９２】
本実施例では、範囲情報ＲＡＮＧＥと、分散検出領域のサイズとの対応関係が予め定められている。例えば、図１４に示すような対応関係を示す情報（テーブルや関数）が、不図示のメモリに予め記録されている。そして、階調分散度検出部４０４は、予め定められた上記対応関係と、取得した範囲情報ＲＡＮＧＥとに基づいて、分散検出領域のサイズを決定する。図１４の例では、範囲情報ＲＡＮＧＥ＿Ａに、分散検出領域のサイズ＝３（水平方向の画素数）×３（垂直方向のライン数）が対応付けられており、範囲情報ＲＡＮＧＥ＿Ｂに、サイズ＝５×５が対応付けられている。そして、範囲情報ＲＡＮＧＥ＿Ｃに、サイズ＝７×７が対応付けられており、範囲情報ＲＡＮＧＥ＿Ｄに、サイズ＝９×９が対応付けられている。図１４では、範囲情報ＲＡＮＧＥ＿Ａが示す（参照範囲の）サイズ＜範囲情報ＲＡＮＧＥ＿Ｂが示すサイズ＜ＲＡＮＧＥ＿Ｃが示すサイズ＜ＲＡＮＧＥ＿Ｄが示すサイズである。範囲情報ＲＡＮＧＥ＿Ａが取得された場合には、サイズ＝３×３を有する分散検出領域が設定される。範囲情報ＲＡＮＧＥ＿Ｂ，ＲＡＮＧＥ＿Ｃ，ＲＡＮＧＥ＿Ｄが取得された場合には、同様に、サイズ＝５×５，７×７，９×９を有する分散検出領域が設定される。
【００９３】
以上述べたように、本実施例によれば、参照範囲のサイズに応じて、分散検出領域のサイズが変更される。それにより、階調分散度の算出精度を高めることができ、より高精度なエッジ検出を実現できる。
【００９４】
なお、実施例１〜３はあくまで一例であり、本発明の要旨の範囲内で実施例１〜３の構成を適宜変形したり変更したりすることにより得られる構成も、本発明に含まれる。実施例１〜３の構成を適宜組み合わせて得られる構成も、本発明に含まれる。
【００９５】
＜その他の実施例＞
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９６】
１０１：エッジ検出部  ２０３：ブロックマッチング部
２０４，２０４：階調分散度検出部  ２０５：オフセット値決定部
２０６：オフセット部  ２０７，３０７：マッチング角度決定部
３０５：信頼度ペナルティ決定部
【図１】
0006704726.tif 000002
【図２】
0006704726.tif 000003
【図３】
0006704726.tif 000004
【図４】
0006704726.tif 000005
【図５】
0006704726.tif 000006
【図６】
0006704726.tif 000007
【図７】
0006704726.tif 000008
【図８】
0006704726.tif 000009
【図９】
0006704726.tif 000010
【図１０】
0006704726.tif 000011
【図１１】
0006704726.tif 000012
【図１２】
0006704726.tif 000013
【図１３】
0006704726.tif 000014
【図１４】
0006704726.tif 000015