(57)【要約】【課題】斜めエッジの角度が広域にわたる場合においても、精度よく斜めエッジを検出する。【解決手段】画像処理装置は、入力画像を取得する取得手段と、ブロックマッチングを行って前記入力画像内の２つのブロック間の相関を決定するマッチング手段と、前記相関に基づき、前記入力画像内の検出位置での斜めエッジを検出するエッジ検出手段と、を有し、前記マッチング手段は、垂直方向の位置の異なる第１のブロックと第２のブロックの水平方向の位置を変えながら行う第１のブロックマッチングと、水平方向の位置の異なる第３のブロックと第４のブロックの垂直方向の位置を変えながら行う第２のブロックマッチングと、を実施し、前記エッジ検出手段は、前記マッチング手段が決定した相関が最大のときの２つのブロックを結んだ方向を斜めエッジの方向と決定する。【選択図】図１
2019050475.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を取得する取得手段と、
ブロックマッチングを行って前記入力画像内の２つのブロック間の相関を決定するマッチング手段と、
前記相関に基づき、前記入力画像内の検出位置での斜めエッジを検出するエッジ検出手段と、
を有し、
前記マッチング手段は、垂直方向の位置の異なる第１のブロックと第２のブロックの水平方向の位置を変えながら行う第１のブロックマッチングと、水平方向の位置の異なる第３のブロックと第４のブロックの垂直方向の位置を変えながら行う第２のブロックマッチングと、を実施し、
前記エッジ検出手段は、前記マッチング手段が決定した相関が最大のときの２つのブロックを結んだ方向を斜めエッジの方向と決定する、
ことを特徴とする画像処理装置。
【請求項２】
前記マッチング手段は、前記第１のブロックと前記第２のブロックを前記検出位置を中心とした点対称な位置に設定し、前記第３のブロックと前記第４のブロックを前記検出位置を中心とした点対称な位置に設定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得手段は、前記入力画像の各画素から輝度値を取得し、
前記マッチング手段は、２つのブロックで対応する位置にある画素の輝度値の差分絶対値の和に基づいて相関を決定する、
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記マッチング手段は、前記入力画像の解像度が高いほどブロックマッチングの走査範囲を大きくする、
ことを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記エッジ検出手段は、前記第１のブロックマッチングでの最大の相関である第１の最大相関と、前記第２のブロックマッチングでの最大の相関である第２の最大相関とのうち、より大きな相関が得られる２つのブロックを結ぶ方向を斜めエッジの方向と決定する、
ことを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記エッジ検出手段は、前記第１のブロックと前記第２のブロックが最も離れているときに前記第１の最大相関が得られ、前記第３のブロックと前記第４のブロックが水平に並ぶときに前記第２の最大相関が得られ、かつ、前記第２の最大相関が前記第１の最大相関より大きい場合、前記第１の最大相関を大きくする補正処理を行い、前記第２の最大相関と補正後の前記第１の最大相関のうち、より大きい相関が得られる２つのブロックの結ぶ方向を斜めエッジの方向と決定する、
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記エッジ検出手段は、前記第１のブロックと前記第２のブロックが垂直に並ぶときに前記第１の最大相関が得られ、前記第３のブロックと前記第４のブロックが最も離れているときに前記第２の最大相関が得られ、かつ、前記第１の最大相関が前記第２の最大相関より大きい場合、前記第２の最大相関を大きくする補正処理を行い、前記第１の最大相関と補正後の前記第２の最大相関のうち、より大きい相関が得られる２つのブロックの結ぶ方向を斜めエッジの方向と決定する、
ことを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項８】
前記エッジ検出手段は、前記第１の最大相関と前記第２の最大相関の差が小さいほど、前記補正処理で相関をより大きくする補正を行う、
ことを特徴とする請求項６または請求項７に記載の画像処理装置。
【請求項９】
前記エッジ検出手段は、ブロックマッチングにおける走査範囲が大きいほど、前記補正処理で相関をより大きくする補正を行う、
ことを特徴とする請求項６から８のいずれか１項に記載の画像処理装置。
【請求項１０】
補間位置から近接検出位置の斜めエッジの方向に存在する複数の画素の画素値に基づき、前記補間位置の画素値を生成する補間手段を有し、
前記近接検出位置は前記補間位置に最も近接する検出位置である、
ことを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記補間手段は、前記近接検出位置の斜めエッジの信頼度が閾値より低い場合は、前記補間位置を囲う隣接４点の画素の画素値に基づき、前記補間位置の画素値を生成する、
ことを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記補間手段は、前記補間位置を囲う隣接４点の画素の画素値から決定される第１の補間画素値と、前記補間位置から前記近接検出位置の斜めエッジの方向に存在する複数の画素の画素値から決定される第２の補間画素値とを合成して、前記補間位置の画素値を生成し、前記近接検出位置の斜めエッジの信頼度が低いほど第１の補間画素値に対する合成の割合を高くする、
ことを特徴とする請求項１０に記載の画像処理装置。
【請求項１３】
入力画像を取得する取得工程と、
ブロックマッチングを行って前記入力画像内の２つのブロック間の相関を決定するマッチング工程と、
前記相関に基づき、前記入力画像内の検出位置での斜めエッジを検出するエッジ検出工程と、
を有し、
前記マッチング工程は、垂直方向の位置の異なる第１のブロックと第２のブロックの水平方向の位置を変えながら行う第１のブロックマッチングと、水平方向の位置の異なる第３のブロックと第４のブロックの垂直方向の位置を変えながら行う第２のブロックマッチングと、を実施し、
前記エッジ検出工程は、前記マッチング工程が決定した相関が最大のときの２つのブロックを結んだ方向を斜めエッジの方向と決定する、
ことを特徴とする画像処理方法。
【請求項１４】
請求項１３に記載の方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
近年、従来よりも解像度の高い高解像度画像を表示する画像表示装置の普及が進んでいる。高解像度画像のうち、例えば、水平方向４０９６画素×垂直方向２１６０画素の画像は、一般的に「４ｋ画像」と呼ばれている。また、画像表示装置に入力される入力画像データの解像度が画像表示装置の画面解像度と異なる場合、入力画像データの解像度を画像表示装置の画面解像度と同じ解像度に変換する必要がある。
【０００３】
画像データの解像度を変換する画像処理には、スケーラ処理などがある。スケーラ処理は、入力画像データの画像解像度を変更（拡大または縮小）する画像処理である。これらの画像処理を、例えばバイキュービック法などの一般的な手法を用いて行うと、斜めエッジ（斜め方向のエッジ）の領域にジャギーが発生し、画質が著しく劣化する。
【０００４】
ジャギーの発生を抑制するスケール処理として、例えば、特許文献１に開示されている技術が挙げられる。特許文献１に開示の技術では、補間画素生成回路は、入力された画像から斜め方向のエッジを検出する。具体的には、補間画素位置に対して垂直方向に上１ライン、および下１ラインの画素値からブロックマッチング法を用いて斜めエッジを検出している。また、検出した斜めエッジの傾斜角度（斜めエッジの方向）に応じた画素を用いて補間処理を行い、補間画素を生成することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３３６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の特許文献１では、補間画素生成回路は、補間画素位置に対して水平方向に近い角度範囲の画素情報を用いて斜めエッジを検出しているため、垂直方向に近い角度の斜めエッジの検出精度が十分でない。具体的には、水平方向に対し４５度より大きく９０度より小さい範囲、あるいは９０度より大きく１３５度より小さい範囲の斜めエッジを検出することが出来ない。結果として、一部の斜めエッジに対して、斜めエッジの方向に応じた画素を用いた補間を行うことが出来ず、ジャギーが生じ、画質の劣化が発生してしまう。
【０００７】
そこで、本発明は、斜めエッジの角度が広域にわたる場合においても、精度よく斜めエッジを検出することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１様態は、
入力画像を取得する取得手段と、
ブロックマッチングを行って前記入力画像内の２つのブロック間の相関を決定するマッチング手段と、
前記相関に基づき、前記入力画像内の検出位置での斜めエッジを検出するエッジ検出手段と、
を有し、
前記マッチング手段は、垂直方向の位置の異なる第１のブロックと第２のブロックの水平方向の位置を変えながら行う第１のブロックマッチングと、水平方向の位置の異なる第３のブロックと第４のブロックの垂直方向の位置を変えながら行う第２のブロックマッチングと、を実施し、
前記エッジ検出手段は、前記マッチング手段が決定した相関が最大のときの２つのブロックを結んだ方向を斜めエッジの方向と決定する、
ことを特徴とする画像処理装置である。
【０００９】
本発明の第２様態は、
入力画像を取得する取得工程と、
ブロックマッチングを行って前記入力画像内の２つのブロック間の相関を決定するマッチング工程と、
前記相関に基づき、前記入力画像内の検出位置での斜めエッジを検出するエッジ検出工程と、
を有し、
前記マッチング工程は、垂直方向の位置の異なる第１のブロックと第２のブロックの水平方向の位置を変えながら行う第１のブロックマッチングと、水平方向の位置の異なる第３のブロックと第４のブロックの垂直方向の位置を変えながら行う第２のブロックマッチングと、を実施し、
前記エッジ検出工程は、前記マッチング工程が決定した相関が最大のときの２つのブロックを結んだ方向を斜めエッジの方向と決定する、
ことを特徴とする画像処理方法である。
【発明の効果】
【００１０】
本発明によれば、斜めエッジの角度が広域にわたる場合においても、精度よく斜めエッジを検出することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係る画像処理装置の構成を示す図
【図２】実施形態１に係る水平ブロックマッチング部の参照ブロックペアを示す図
【図３】実施形態１に係る垂直ブロックマッチング部の参照ブロックペアを示す図
【図４】実施形態１に係るブロックマッチングによるＳＡＤ値の分布を示す図
【図５】実施形態１に係るスケーラ処理を示す図
【図６】実施形態１に係る全体処理フローを示す図
【図７】実施形態２に係るエッジ検出部の構成を示す図
【図８】実施形態２に係る水平ブロックマッチング部の参照ブロックペアを示す図
【図９】実施形態２に係る垂直ブロックマッチング部の参照ブロックペアを示す図
【図１０】実施形態２に係るブロックマッチングによるＳＡＤ値の分布を示す図
【図１１】実施形態２に係るＡＮＧＬＥの算出フローを示す図
【図１２】実施形態３に係るエッジ検出部の構成を示す図
【図１３】実施形態３に係る入力画像解像度とブロックサイズの対応関係を示す図
【図１４】実施形態３に係るＡＮＧＬＥの算出フローを示す図
【発明を実施するための形態】
【００１２】
以下、本発明による画像処理装置について、図面を用いて説明する。なお、本発明の技術的範囲は特許請求の範囲によって確定されるものであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせ全てが、本発明に必須とは限らない。
【００１３】
＜実施形態１＞
図１（ａ）は、本実施形態に係る画像処理装置１００の構成を示すブロック図である。画像処理装置１００はエッジ検出部１０１とスケーラ部１０２を備える。図１（ａ）において、エッジ検出部１０１は、入力された入力画像ＩＮに基づいて、補間画素の生成位置に最も近接した入力画像内の検出位置（近接検出位置）に斜めエッジがあるかを判定する。エッジ検出部１０１は、検出位置に斜めエッジがある場合に、その斜めエッジの方向を判定し、斜め方向の角度情報（以下、角度情報ＡＮＧＬＥと記す）をスケーラ部１０２へ出力する。
【００１４】
角度情報ＡＮＧＬＥは、検出位置におけるエッジの有無と、エッジの方向を表す。本実施形態では、エッジ検出部１０１は、エッジが存在する位置における角度情報ＡＮＧＬＥとして水平方向の角度情報−１６Ｈ〜＋１６Ｈ、または垂直方向の角度情報−１６Ｖ〜＋１６Ｖの値を出力する。ここで、水平方向の角度情報は、垂直方向に対するエッジの傾斜角度を表す値で定義される。また、垂直方向の角度情報は、水平方向に対するエッジの傾斜角度を表す値で定義される。例えば、水平方向の角度情報がαＨ（−１６≦α≦＋１６）である場合、水平方向にα、垂直方向に＋１の方向を示す角度情報である。また、垂直方向の角度情報がβＶ（−１６≦β≦＋１６）である場合、水平方向に＋１、垂直方向にβの方向を示す角度情報となる。なお、角度情報内のＨ、およびＶは、エッジの傾斜角度に付与されるインデックスであり、詳細については後述する。また、エッジ検出部１０１は、斜めエッジが存在しない位置における角度情報ＡＮＧＬＥとして、「０」を出力する。動作の詳細については後述する。
【００１５】
スケーラ部１０２は、角度情報ＡＮＧＬＥの結果に基づいて、入力された入力画像ＩＮの解像度の変換および、補間画素の生成を行い、新たな変換後の画像データ（以下、ＳＣ補間画素ＯＵＴと記す）を出力する。ＳＣ補間画素ＯＵＴの生成方法の詳細については後述する。
【００１６】
エッジ検出部１０１の詳細動作について、図１（ｂ）のエッジ検出部の構成を示す図を用いて説明する。エッジ検出部１０１は、輝度変換部２０１、ブロックバッファ部２０２、水平ブロックマッチング部２０３、垂直ブロックマッチング部２０４、マッチング角度算出部２０５を備える。
【００１７】
輝度変換部２０１の動作の詳細について説明する。輝度変換部２０１は、入力画像ＩＮの各画素を輝度値ＹＤＡＴＡに変換する。このとき、入力画像ＩＮがＹＣｂＣｒ色空間の場合には、入力画像ＩＮの輝度値をそのまま輝度値ＹＤＡＴＡとする。また、例えば、入力画像ＩＮがＲＧＢ色空間の場合には、輝度変換部２０１は入力された入力画像ＩＮの各ＲＧＢの値を輝度値ＹＤＡＴＡに変換して生成する。ＲＧＢそれぞれの画素値をＲｄ、Ｇｄ、Ｂｄとすると、輝度値ＹＤＡＴＡは以下の式１で求められる。なお、本実施形態では輝度値を取得し、その輝度値に基づき斜めエッジの検出を行っているが、それに限定することなく、例えば、ＲＧＢの画素値Ｒｄ、Ｇｄ、Ｂｄの平均値に基づいて斜めエッジの検出を行ってもよい。
【数１】
2019050475.tif 000003
【００１８】
ブロックバッファ部２０２の動作の詳細について説明する。ブロックバッファ部２０２は、輝度変換部２０１から出力された輝度値ＹＤＡＴＡを記憶し、記憶した輝度値ＹＤＡＴＡを出力する。また、ブロックバッファ部２０２はラインメモリを備える。ラインメモリのラインサイズは特に限定されないが、本実施形態では、ブロックバッファ部２０２は、２０ライン分のラインメモリを有しており、２０ライン分のラインメモリに輝度値ＹＤＡＴＡを蓄積するものとする。
【００１９】
ブロックバッファ部２０２は、水平方向Ｘ画素×垂直方向Ｙライン分の輝度値ＹＤＡＴＡをラインメモリから読み出し、読み出した輝度値ＹＤＡＴＡをＢＬＫＤＡＴＡ＿Ｈとして水平ブロックマッチング部２０３へ出力する。なお、本実施形態では、ＢＬＫＤＡＴＡ＿Ｈの中心点を検出点Ｐ０とし、ＢＬＫＤＡＴＡ＿Ｈを水平方向に長い長方形にさせる。また、ＢＬＫＤＡＴＡ＿Ｈのサイズはラインメモリから取得できるサイズであれば特に限定されないが、本実施形態では、Ｘ＝２０画素、Ｙ＝４ラインとして説明する。このＢＬＫＤＡＴＡ＿Ｈの水平方向のサイズが大きいほど、ブロックマッチングの走査範囲が大きく設定される。
【００２０】
また、ブロックバッファ部２０２は、同様に、水平方向Ｘ画素×垂直方向Ｙライン分の輝度値ＹＤＡＴＡをラインメモリから読み出し、読み出した輝度値ＹＤＡＴＡをＢＬＫＤＡＴＡ＿Ｖとして垂直ブロックマッチング部２０４へ出力する。なお、本実施形態では、ＢＬＫＤＡＴＡ＿Ｖの中心点を検出点Ｐ０とし、ＢＬＫＤＡＴＡ＿Ｖを垂直方向に長い長方形にさせる。また、ＢＬＫＤＡＴＡ＿Ｖのサイズはラインメモリから取得できるサイズであれば特に限定されないが、本実施形態では、Ｘ＝４画素、Ｙ＝２０ラインとして説明する。このＢＬＫＤＡＴＡ＿Ｖの垂直方向のサイズが大きいほど、ブロックマッチングの走査範囲が大きく設定される。また、ＢＬＫＤＡＴＡ＿ＶとＢＬＫＤＡＴＡ＿Ｈのサイズは同じでもよいし、異なっていてもよい。
【００２１】
水平ブロックマッチング部２０３の動作の詳細について説明する。まず、図２を用いて、水平方向のブロックマッチングについて詳細に説明する。図２は水平ブロックマッチング部の参照ブロックのペアを示す図である。
【００２２】
水平ブロックマッチング部２０３は、ＢＬＫＤＡＴＡ＿Ｈの領域内に２つの参照ブロック（図２の第１のブロック、および第２のブロック）を設定し、２つの参照ブロックの相関を算出する。本実施形態では、２つの参照ブロック内の画像の輝度値ＹＤＡＴＡを比較することで相関を算出する。なお、参照ブロックのサイズは特に限定されないが、本実施形態では、水平方向４画素×垂直方向３画素のサイズを有する領域とする。また、本実施形態のように２つの参照ブロックは検出位置Ｐ０を中心に点対称となるように配置するのが理想的だが、この限りでなく、例えば検出位置Ｐ０から水平方向に１シフトした位置を中心に点対称となってもよい。具体的には、２つの参照ブロック内に位置する同じ位置関係の画素毎に、輝度値ＹＤＡＴＡの差分の絶対値（差分絶対値）を算出し、各画素の差分絶対値の総和であるＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）値を算出する。このＳＡＤ値が小さいほど、２つの参照ブロックの相関が高く、大きいほど相関が低くなる。なお、２つの参照ブロックの一方（図２における第１のブロック）の中心位置は、検出位置Ｐ０よりも上側に位置し、２つの参照ブロックの他方（図２における第２のブロック）の中心位置は、検出位置Ｐ０よりも下側に位置する。２つの参照ブロックの位置関係は、水平方向のエッジの方向の候補（候補方向）に対応する。また、本実施形態では、２つの参照ブロックの相関の算出にＳＡＤ値を用いているが、その限りではない。例えば、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）値やＺＮＣＣ（Ｚｅｒｏ−ｍｅａｎ  Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）値を用いてもよい。
【００２３】
水平ブロックマッチング部２０３は、２つの参照ブロック（第１のブロック、および第２のブロック）の水平方向の位置を変えながら複数のＳＡＤ値を算出する。２つの参照ブロックの水平方向の位置はＢＬＫＤＡＴＡ＿Ｈの領域内で変更され、この２つの参照ブロックが移動する範囲がブロックマッチングの走査範囲となる。本実施形態では、水平ブロックマッチング部２０３は、水平方向のブロック距離が−１６、−１４、−１２、−１０、−８、−６、−４、−２、０、＋２、＋４、＋６、＋８、＋１０、＋１２、＋１４、お
よび＋１６である１７個の参照ブロックペアを設定する。ブロック距離は、２つの参照ブロックの位置関係により決定され、ブロック距離の絶対値は、２つの参照ブロックの一方の中心位置と、２つの参照ブロックの他方の中心位置と、の間の水平方向の距離である。なお、ブロック距離は偶数である必要はなく、奇数であってもよい。
【００２４】
なお、本実施形態では、検出位置Ｐ０よりも上側に位置する参照ブロック（第１のブロック）の中心位置が検出位置Ｐ０よりも右側に位置する場合に、ブロック距離は正の値が使用される。そして、検出位置Ｐ０よりも上側に位置する参照ブロック（第１のブロック）の中心位置が検出位置Ｐ０よりも左側に位置する場合に、ブロック距離は負の値が使用される。ブロック距離の絶対値の増加に伴い、対応する候補方向は水平方向に近づく。なお、図２の例では、水平方向のブロック距離＝−４の場合の例を示している。
【００２５】
そして、水平ブロックマッチング部２０３は、１７個の参照ブロックペアに対応する１７個のＳＡＤ値であるＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）を算出し（ｎはブロック距離）、マッチング角度算出部２０５へ出力する。すなわち、本実施形態ではＳＡＤ＿ＡＲＲＡＹ＿Ｈ（−１６）からＳＡＤ＿ＡＲＲＡＹ＿Ｈ（＋１６）までの１７個を出力する。
【００２６】
次に、垂直ブロックマッチング部２０４の動作の詳細について説明する。まず、図３を用いて、垂直方向のブロックマッチングについて詳細に説明する。図３は垂直ブロックマッチング部の参照ブロックのペアを示す図である。
【００２７】
垂直ブロックマッチング部２０４は、ＢＬＫＤＡＴＡ＿Ｖの領域内に２つの参照ブロック（図３の第３のブロック、および第４のブロック）を設定し、２つの参照ブロック内の画像を比較し相関を算出する。なお、垂直ブロックマッチング部２０４における参照ブロックのサイズは特に限定されないが、本実施形態では、参照ブロックとして、水平方向３画素×垂直方向４画素のサイズを有する領域とする。第３のブロック、および第４のブロックは、第１のブロック、および第２のブロックのブロックサイズと同じであってもよいし、異なっていてもよい。また、本実施形態のように２つの参照ブロックは検出位置Ｐ０を中心に点対称となるように配置するのが理想的だが、この限りでなく、例えば検出位置Ｐ０から垂直方向に１シフトした位置を中心に点対称となってもよい。具体的には、垂直ブロックマッチング部２０４は、２つの参照ブロック内に位置する同じ位置関係の画素毎に、輝度値ＹＤＡＴＡの差分の絶対値を算出し、各画素の差分絶対値の総和であるＳＡＤ値を算出する。このとき、２つの参照ブロックの一方（第３のブロック）の中心位置は、検出位置Ｐ０よりも左側に位置し、２つの参照ブロックの他方（第４のブロック）の中心位置は、検出位置Ｐ０よりも右側に位置する。２つの参照ブロックの位置関係は、垂直方向のエッジの方向の候補（候補方向）に対応する。
【００２８】
なお、本実施形態では、検出位置Ｐ０よりも右側に位置する参照ブロック（第４のブロック）の中心位置が検出位置Ｐ０よりも上側に位置する場合に、ブロック距離として正の値が使用される。そして、検出位置Ｐ０よりも右側に位置する参照ブロック（第４のブロック）の中心位置が検出位置Ｐ０よりも下側に位置する場合に、ブロック距離として負の値が使用される。ブロック距離の絶対値の増加に伴い、対応する候補方向は水平方向に近づく。なお、図３の例では、垂直方向のブロック距離＝−４の場合の例を示している。
【００２９】
垂直ブロックマッチング部２０４におけるＳＡＤ値の算出方法は、水平ブロックマッチング部２０３における水平方向の動作を、垂直方向へ適用すれば同様であるため、詳細説明は省略する。そして、垂直ブロックマッチング部２０４は、１７個の参照ブロックペアに対応する１７個のＳＡＤ値であるＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）を算出し、マッチング角度算出部２０５へ出力する。
【００３０】
次に、マッチング角度算出部２０５の詳細について述べる。マッチング角度算出部２０５には、水平ブロックマッチング部２０３と垂直ブロックマッチング部２０４から、参照ブロックペアに対応するＳＡＤ値が入力される。その後、マッチング角度算出部２０５は、入力された１７個のＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）、および１７個のＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の最小値ＳＡＤｍｉｎに基づいて、角度情報ＡＮＧＬＥを決定する。つまり、最大の相関を得る２つのブロックに対応する角度情報ＡＮＧＬＥを決定する。そして、マッチング角度算出部２０５は、決定した角度情報ＡＮＧＬＥをスケーラ部１０２に出力する。
【００３１】
まず、マッチング角度算出部２０５は、水平ブロックマッチング部２０３から出力された１７個のＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）の最小値ＳＡＤｍｉｎ＿Ｈを算出する。このＳＡＤｍｉｎ＿Ｈは水平ブロックマッチング部２０３で算出される２つのブロック間の相関が最大である最大相関に対応する。この時、ＳＡＤｍｉｎ＿Ｈに対応したＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）のｎの値に、水平方向を表すインデックス「Ｈ」を付与して、水平方向の角度情報ＡＮＧＬＥ＿Ｈと決定する。例えば、ＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）の分布が図４（ａ）に示す分布であった場合には、水平方向の角度情報ＡＮＧＬＥ＿Ｈ＝−４Ｈとなる。また、マッチング角度算出部２０５は、ｎ＝０であった場合は、水平方向を表すインデックス「Ｈ」を付与せず、水平方向の角度情報ＡＮＧＬＥ＿Ｈ＝０（斜めエッジなし）を出力する。なお、本実施形態では２つの参照ブロックの垂直方向の距離を１としているため水平方向の角度情報ＡＮＧＬＥ＿Ｈは水平方向のブロック距離ｎと同値になる。しかし、２つの参照ブロックの垂直方向の距離を１以外（例えば、ａとする）にした場合には、ＡＮＧＬＥ＿Ｈ＝ｎ／ａとなる。これは、角度情報は２つの参照ブロックの水平方向のブロック距離と、垂直方向のブロック距離に依存するためである。
【００３２】
次に、マッチング角度算出部２０５は、垂直ブロックマッチング部２０４から出力された１７個のＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の最小値ＳＡＤｍｉｎ＿Ｖを算出する。このＳＡＤｍｉｎ＿Ｖは垂直ブロックマッチング部２０４で算出される２つのブロック間の相関が最大である最大相関に対応する。この時、ＳＡＤｍｉｎ＿Ｖに対応したＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）のｍの値に、垂直方向を表すインデックス「Ｖ」を付与して、垂直方向の角度情報ＡＮＧＬＥ＿Ｖと決定する。例えば、ＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の分布が図４（ｂ）に示す分布であった場合には、垂直方向の角度情報ＡＮＧＬＥ＿Ｖ＝＋４Ｖとする。また、マッチング角度算出部２０５は、ｍ＝０であった場合は、垂直方向を表すインデックス「Ｖ」を付与せず、垂直方向の角度情報ＡＮＧＬＥ＿Ｖ＝０（斜めエッジなし）を出力する。なお、本実施形態では２つの参照ブロックの水平方向の距離を１としているため垂直方向の角度情報ＡＮＧＬＥ＿Ｖは垂直方向のブロック距離ｍと同値になる。しかし、２つの参照ブロックの水平方向の距離を１以外（例えば、ｂとする）にした場合には、ＡＮＧＬＥ＿Ｖ＝ｍ／ｂとなる。これは、角度情報は２つの参照ブロックの水平方向のブロック距離と、垂直方向のブロック距離に依存するためである。
【００３３】
次に、マッチング角度算出部２０５は、ＳＡＤｍｉｎ＿ＨとＳＡＤｍｉｎ＿Ｖの値を比較して、最終的な角度情報ＡＮＧＬＥを算出する。算出式は以下の通りであり、水平方向の角度情報ＡＮＧＬＥ＿Ｈと垂直方向の角度情報ＡＮＧＬＥ＿Ｖに対応するＳＡＤ値がより小さい方の角度情報を、角度情報ＡＮＧＬＥと決定する。つまり、最大の相関を得る２つの参照ブロックを結んだ方向を斜めエッジの方向とする。
【数２】
2019050475.tif 000004
【００３４】
以上の処理で算出されたＡＮＧＬＥが、マッチング角度算出部２０５から出力される。
【００３５】
次にスケーラ部１０２の詳細動作について説明する。以下、本実施形態における具体的な補間演算の方法を図５（ａ）を用いて説明する。スケーラ部１０２は、角度情報ＡＮＧＬＥを用いたスケーラ処理により、入力画像ＩＮの画像解像度を変更したスケールド画像データを生成する。
【００３６】
図５（ａ）は、本実施形態に係る水平方向のスケーラ処理の一例を示す図である。図５（ａ）において、「Ｐ０」は検出位置（角度情報の検出位置）を示し、「Ｐ１」はスケーラ処理によって新たに生成されるＳＣ補間位置（ＳＣ補間画素の生成位置）を示す。検出位置Ｐ０は、ＳＣ補間位置Ｐ１における近接検出位置であれば、特に限定されない。本実施形態では、図５（ａ）に示すように、入力画像ＩＮの２行２列の４画素の中心位置を検出位置とする。ＳＣ補間位置Ｐ１は、スケーラ処理の拡大率や縮小率に依存する。図５（ａ）において、「ｉｘ＿ｉ」は、入力画像ＩＮの画素の水平位置を示すための整数値であり、「ｉｙ＿ｉ」は、入力画像ＩＮの画素の垂直位置を示すための整数値である。また、「ｉｘ＿ｓ」、および「ｉｙ＿ｓ」は小数値であり、ＳＣ補間位置Ｐ１の座標（水平位置，垂直位置）は、（ｉｘ＿ｉ＋ｉｘ＿ｓ，ｉｙ＿ｉ＋ｉｙ＿ｓ）で表すことができる。なお、検出位置Ｐ０は入力画像ＩＮの２行２列の４画素の中心位置でなくてもよく、例えば、入力画像ＩＮの画素上に存在してもよいし、入力画像ＩＮの２行の２画素の中心位置でもよい。
【００３７】
本実施形態では、スケーラ処理において、角度情報ＡＮＧＬＥに基づいて、ＳＣ補間位置Ｐ１から斜めエッジの方向に存在する入力画像ＩＮの４つの画素Ｕ１，Ｕ２，Ｄ１，Ｄ２が選択される。そして、選択された４つの画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値を用いて、ＳＣ補間位置Ｐ１のＳＣ補間画素値ＯＵＴが算出される。そして、スケーラ部１０２は算出されたＳＣ補間画素値ＯＵＴを、スケールド画像データの画素値として出力する。なお、本実施形態ではＳＣ補間位置Ｐ１から斜めエッジの方向に存在する４点の画素に基づき補正を行うが、それに限らず、斜めエッジの方向に存在する上部下部１点ずつの２点や、上部下部４点ずつの８点の画素に基づき補正を行ってもよい。
【００３８】
画素Ｕ１，Ｕ２は、ＳＣ補間位置Ｐ１の１つ上のライン上の画素であり、画素Ｄ１，Ｄ２は、ＳＣ補間位置Ｐ１の１つ下のライン上の画素である。本実施形態では、角度情報ＡＮＧＬＥに基づいて画素Ｕ１，Ｄ１が選択される。なお、図５（ａ）は、ＡＮＧＬＥ＝３Ｈの場合の例を図示している。
【００３９】
そして、画素Ｕ１，Ｄ１の水平位置をＳＣ補間位置Ｐ１の側に１画素分だけ水平にシフトさせることにより、画素Ｕ２，Ｄ２が選択される。画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の水平位置Ｕ１（ｘ），Ｕ２（ｘ），Ｄ１（ｘ），Ｄ２（ｘ）は、以下の式２を用いて算出できる。式２において、「ＩＮＴ（Ｘ）」は、Ｘの整数部分を得る関数である。
【数３】
2019050475.tif 000005
【００４０】
図５（ａ）の「ｋ」は、ＳＣ補間位置Ｐ１の画素値を算出する際に用いるパラメータであり、画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値の重みを決定するためのパラメータである。図５（ａ）に示すように、パラメータｋは、第１位置と画素Ｕ１との間の距離である。第１位置は、ＳＣ補間位置Ｐ１の１つ上のラインと、ＳＣ補間位置Ｐ１を通る角度情報ＡＮ
ＧＬＥが示す方向の直線との交点である。パラメータｋは、第２位置と画素Ｄ１との間の距離でもある。第２位置は、ＳＣ補間位置Ｐ１の１つ下のラインと、ＳＣ補間位置Ｐ１を通る角度情報ＡＮＧＬＥが示す方向の直線との交点である。パラメータｋは、以下の式３を用いて算出される。
【数４】
2019050475.tif 000006
【００４１】
そして、画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値をパラメータｋに基づく重み（ＳＣ補間位置Ｐ１からの距離に基づく重み）などで重み付け合成することにより、ＳＣ補間位置Ｐ１のＳＣ補間画素値ＯＵＴが算出される。具体的には、以下の式４を用いてＳＣ補間画素値ＯＵＴが算出される。式４において、「ＰＤ（Ｕ１）」は画素Ｕ１の画素値、「ＰＤ（Ｕ２）」は画素Ｕ２の画素値、「ＰＤ（Ｄ１）」は画素Ｄ１の画素値、「ＰＤ（Ｄ２）」は画素Ｄ２の画素値である。
【数５】
2019050475.tif 000007
【００４２】
式４によれば、画素値ＰＤ（Ｕ１）と画素値ＰＤ（Ｕ２）が合成された第１合成値と、画素値ＰＤ（Ｄ１）と画素値ＰＤ（Ｄ２）が合成された第２合成値とが、さらに合成されＳＣ補間画素値ＯＵＴが算出されている。第１合成値が算出されるために、画素値ＰＤ（Ｕ１）の重みとして、第１位置と画素Ｕ２の間の距離である「１−ｋ」が使用され、画素値ＰＤ（Ｕ２）の重みとして第１位置と画素Ｕ１の間の距離である「ｋ」が使用される。それらの重みを用いて、画素値ＰＤ（Ｕ１）と画素値ＰＤ（Ｕ２）が重み付け合成され、第１合成値が算出される。また、第２合成値が算出されるために、画素値ＰＤ（Ｄ１）の重みとして「１−ｋ」（第２位置と画素Ｄ２の間の距離）が使用され、画素値ＰＤ（Ｄ２）の重みとして「ｋ」（第２位置と画素Ｄ１の間の距離）が使用される。それらの重みを用いて、画素値ＰＤ（Ｄ１）と画素値ＰＤ（Ｄ２）が重み付け合成され、第２合成値が算出される。
【００４３】
そして、第１合成値の重みとして「１−ｉｙ＿ｓ」（画素Ｄ１，Ｄ２のラインとＳＣ補間位置Ｐ１との間の垂直距離（垂直方向の距離））が使用される。また、第２合成値の重みとして「ｉｙ＿ｓ」（画素Ｕ１，Ｕ２のラインとＳＣ補間位置Ｐ１との間の垂直距離）が使用される。それらの重みを用いて、第１合成値と第２合成値が重み付け合成され、ＳＣ補間画素値ＯＵＴが算出される。
【００４４】
図５（ａ）では、角度情報ＡＮＧＬＥにＡＮＧＬＥ＿Ｈが適用された場合の例を示した。角度情報ＡＮＧＬＥにＡＮＧＬＥ＿Ｖが適用された場合は、図５（ｂ）のような位置関係になり、検出位置を基準とする画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の垂直位置を示す値が合成に使用される。図５（ａ）と図５（ｂ）は水平方向と垂直方向を入れ替えて考えると同様の処理であるため、詳細説明は省略する。なお、図５（ｂ）は、ＡＮＧＬＥ＝３Ｖの場合の例を図示している。
【００４５】
次に、実施形態１の処理フローを図６のフローチャートを用いて説明する。まず、画像処理装置は入力画像ＩＮを取得する（Ｓ９０１）。画像処理装置は取得した入力画像ＩＮから輝度値ＹＤＡＴＡを取得する（Ｓ９０２）。画像処理装置は入力画像ＩＮを水平ブロックに分割し、そのブロック内の輝度値ＹＤＡＴＡを取得する（Ｓ９１３）。画像処理装置は分割した水平ブロックの内部に、２つのブロックの中間位置が検出位置Ｐ０になるような２つの参照ブロック（第１のブロック、および第２のブロック）を設定する。その２
つの参照ブロックの水平方向の位置を変えながら移動させる。そして、その２つの参照ブロックの水平方向のブロック距離に応じ、参照ブロック間の輝度値の差分絶対値和ＳＡＤを算出する（Ｓ９１４）。画像処理装置は全てのブロック距離においてＳＡＤ値の算出が終了しているのかを確認し、終了している場合はＳ９１６へ、終了していない場合はＳ９１４へ遷移する（Ｓ９１５）。画像処理装置はその後、算出したＳＡＤ値の中で最も小さな値をもつＳＡＤｍｉｎ＿Ｈと、そのＳＡＤｍｉｎ＿Ｈに対応した角度情報ＡＮＧＬＥ＿Ｈ＿ｍｉｎを決定する（Ｓ９１６）。
【００４６】
なお、Ｓ９２３〜Ｓ９２６は、Ｓ９１３〜Ｓ９１６の処理を水平方向と垂直方向を入れ替えて考えると同様であるため、詳細説明は省略する。また、Ｓ９１３〜Ｓ９１６の処理とＳ９２３〜Ｓ９２６の処理は、逐次的にＳ９１３〜Ｓ９１６を実施したあとにＳ９２３〜Ｓ９２６を実施してもよいし、並列的にＳ９１３〜Ｓ９１６とＳ９２３〜Ｓ９２６を同時に行ってもよい。
【００４７】
そして、画像処理装置はＳ９１６、およびＳ９２６の処理の終了を待ち、Ｓ９１６、およびＳ９２６で求めたＳＡＤｍｉｎ＿ＨとＳＡＤｍｉｎ＿Ｖの値を比較する。ＳＡＤｍｉｎ＿Ｈの値がＳＡＤｍｉｎ＿Ｖの値以下であればＳ９１８へ遷移し、それ以外であればＳ９２８へ遷移する（Ｓ９０７）。Ｓ９１８へ遷移した場合は、画像処理装置はＳＣ補間位置Ｐ１に、ＳＣ補間位置Ｐ１に最も近接する検出位置である近接検出位置Ｐ０のＡＮＧＬＥ＿Ｈ＿ｍｉｎの角度情報に基づいた補間画素の生成を行う。Ｓ９２８へ遷移した場合は、画像処理装置はＳＣ補間位置Ｐ１に、ＳＣ補間位置Ｐ１に最も近接する検出位置である近接検出位置Ｐ０のＡＮＧＬＥ＿Ｖ＿ｍｉｎの角度情報に基づいた補間画素の生成を行う。
【００４８】
（効果）
以上示したように、本実施形態によれば、水平方向のブロックマッチングに加えて垂直方向に対してもブロックマッチングを行い、広範囲な領域で斜めエッジの検出を行う。結果として、広範囲な領域においても、斜めエッジの検出精度を高め、高精度な補間画素を生成することが可能になる。
【００４９】
＜実施形態２＞
以下、本発明の実施形態２に係る画像処理装置、および画像処理方法について、図面を用いて説明する。実施形態１では、画像処理装置は検出位置に対し、水平方向、および垂直方向の位置を変えてブロックマッチングを行い、斜めエッジの対応する角度情報ＡＮＧＬＥを算出する例を示した。本実施形態では、実施形態１よりも検出対象範囲を狭めた領域に対して斜めエッジの検出を行うことで、簡易な構成で、かつ高精度に補間画素を生成する例を説明する。なお、実施形態１と同様の構成や処理についての説明は省略する。
【００５０】
本実施形態に係る画像処理装置の構成は、実施形態１の図１（ａ）と同じである。但し、本実施形態では、エッジ検出部１０１の処理が実施形態１と異なる。図７は、本実施形態に係るエッジ検出部１０１の構成の一例を示すブロック図である。ブロックバッファ部３０２、水平ブロックマッチング部３０３、垂直ブロックマッチング部３０４、およびマッチング角度算出部３０５は実施形態１と処理が異なるため、新たに符号を付した。なお、実施形態１と同じ機能部には実施形態１と同じ符号を付し、その機能部についての説明は省略する。
【００５１】
ブロックバッファ部３０２の動作の詳細について説明する。ブロックバッファ部３０２は、輝度変換部２０１から出力された輝度値ＹＤＡＴＡを記憶し、記憶している輝度値ＹＤＡＴＡを出力する。ラインメモリのラインサイズは特に限定されないが、本実施形態では、ブロックバッファ部３０２は、１４ライン分のラインメモリを有しており、１４ライ
ン分のラインメモリに輝度値ＹＤＡＴＡを蓄積する。ブロックバッファ部３０２は、水平方向Ｘ画素×垂直方向Ｙライン分の輝度値ＹＤＡＴＡをラインメモリから読み出し、読み出した輝度値ＹＤＡＴＡをＢＬＫＤＡＴＡ＿Ｈとして出力する。ブロックサイズはラインメモリから取得できるサイズであれば特に限定されないが、本実施形態では、実施形態１のＢＬＫＤＡＴＡ＿Ｈよりサイズの小さいＸ＝１４画素、Ｙ＝４ラインとして説明する。
【００５２】
また、ブロックバッファ部３０２は、水平方向Ｘ画素×垂直方向Ｙライン分の輝度値ＹＤＡＴＡをラインメモリから読み出し、読み出した輝度値ＹＤＡＴＡをＢＬＫＤＡＴＡ＿Ｖとして出力する。ブロックサイズはラインメモリから取得できるサイズであれば特に限定されないが、本実施形態では、実施形態１のＢＬＫＤＡＴＡ＿Ｖよりサイズの小さいＸ＝４画素、Ｙ＝１４ラインとして説明する。
【００５３】
次に、水平ブロックマッチング部３０３の動作の詳細について説明する。まず、図８を用いて、ＳＡＤ値を算出する画素の位置関係について詳細に説明する。
【００５４】
水平ブロックマッチング部３０３は、ＢＬＫＤＡＴＡ＿Ｈの領域内に２つの参照ブロック（図８の第１のブロック、および第２のブロック）を設定し、２つの参照ブロック内の画像（輝度値ＹＤＡＴＡ）を比較する。具体的な比較方法は、実施形態１と同様である。本実施形態では、水平方向のブロック距離が−１０、−８、−６、−４、−２、０、＋２、＋４、＋６、＋８、および＋１０である１１個の参照ブロックペアが設定される。そして、水平ブロックマッチング部３０３は、１１個の参照ブロックペアに対応する１１個のＳＡＤ値であるＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）を算出し（ｎはブロック距離）、マッチング角度算出部３０５へ出力する。なお、ブロック距離は偶数である必要はなく、奇数であってもよい。
【００５５】
次に、垂直ブロックマッチング部３０４の動作の詳細について説明する。まず、図９を用いて、ＳＡＤ値を算出する画素の位置関係について詳細に説明する。
【００５６】
垂直ブロックマッチング部３０４は、ＢＬＫＤＡＴＡ＿Ｖの領域内に２つの参照ブロック（図９の第３のブロック、および第４のブロック）を設定し、２つの参照ブロック内の画像を比較する。具体的な比較方法は、実施形態１と同様である。本実施形態では、垂直方向のブロック距離が−１０、−８、−６、−４、−２、０、＋２、＋４、＋６、＋８、および＋１０である１１個の参照ブロックペアが設定される。そして、垂直ブロックマッチング部３０４は、１１個の参照ブロックペアに対応する１１個のＳＡＤ値であるＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）を算出し（ｍはブロック距離）、マッチング角度算出部３０５へ出力する。なお、ブロック距離は偶数である必要はなく、奇数であってもよい。
【００５７】
次に、マッチング角度算出部３０５の詳細について述べる。マッチング角度算出部３０５は、水平ブロックマッチング部３０３と垂直ブロックマッチング部３０４から参照ブロックペアに対応するＳＡＤの値が入力される。マッチング角度算出部３０５は、その入力された１１個のＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）、およびＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の最小値ＳＡＤｍｉｎに基づいて、角度情報ＡＮＧＬＥを決定する。
【００５８】
以下、図７を用いて具体的に説明する。まず、マッチング角度算出部３０５は、水平ブロックマッチング部３０３から出力された１１個のＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）の最小値ＳＡＤｍｉｎ＿Ｈを算出する。この時、ＳＡＤｍｉｎ＿ＨであるＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）のｎの値に、ｎ＝０以外の場合は、水平方向を表すインデックス「Ｈ」を付与して、水平方向の角度情報ＡＮＧＬＥ＿Ｈと決定する。例えば、ＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）の分布が図１０（ａ）に示す分布であった場合には、水平方向の角度情報ＡＮＧＬＥ＿Ｈ＝−１０Ｈとなる。なお、本実施形態では２つの参照ブロックの垂直方向の距離を１
としているため水平方向の角度情報ＡＮＧＬＥ＿Ｈは水平方向のブロック距離ｎと同値になる。しかし、２つの参照ブロックの垂直方向の距離を１以外（例えば、ａとする）にした場合には、ＡＮＧＬＥ＿Ｈ＝ｎ／ａとなる。これは、角度情報は２つの参照ブロックの水平方向のブロック距離と、垂直方向のブロック距離に依存するためである。
【００５９】
次に、マッチング角度算出部３０５は、垂直ブロックマッチング部３０４から出力された１１個のＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の最小値ＳＡＤｍｉｎ＿Ｖを算出する。この時、ＳＡＤｍｉｎ＿ＶであるＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）のｍの値に、ｍ＝０以外の場合は、垂直方向を表すインデックス「Ｖ」を付与して、垂直方向の角度情報ＡＮＧＬＥ＿Ｖと決定する。例えば、ＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の分布が図１０（ｂ）に示す分布であった場合には、垂直方向の角度情報ＡＮＧＬＥ＿Ｖ＝−２Ｖとなる。なお、本実施形態では２つの参照ブロックの水平方向の距離を１としているため垂直方向の角度情報ＡＮＧＬＥ＿Ｖは垂直方向のブロック距離ｍと同値になる。しかし、２つの参照ブロックの水平方向の距離を１以外（例えば、ｂとする）にした場合には、ＡＮＧＬＥ＿Ｖ＝ｍ／ｂとなる。これは、角度情報は２つの参照ブロックの水平方向のブロック距離と、垂直方向のブロック距離に依存するためである。
【００６０】
水平方向の角度情報ＡＮＧＬＥ＿Ｈと垂直方向の角度情報ＡＮＧＬＥ＿Ｖに基づいて、マッチング角度算出部３０５が、角度情報ＡＮＧＬＥを算出する処理を説明する。実施形態１では、水平方向の角度情報ＡＮＧＬＥ＿Ｈに対応したＳＡＤｍｉｎ＿Ｈと、垂直方向の角度情報ＡＮＧＬＥ＿Ｖに対応したＳＡＤｍｉｎ＿Ｖの値が比較され、ＳＡＤ値が小さい方に対応した角度情報がＡＮＧＬＥとして決定された。本実施形態では、マッチング角度算出部３０５は、ＳＡＤｍｉｎ＿Ｈ、ＳＡＤｍｉｎ＿Ｖ、およびＡＮＧＬＥ＿Ｈ、ＡＮＧＬＥ＿Ｖの値により、角度情報ＡＮＧＬＥが決定される。
【００６１】
角度情報ＡＮＧＬＥが決定される具体的な処理フローを図１１に示す。まず、Ｓ１０１でＳＡＤｍｉｎ＿ＨとＳＡＤｍｉｎ＿Ｖの比較が行われる。ＳＡＤｍｉｎ＿ＨがＳＡＤｍｉｎ＿Ｖと比べ、大きい場合はＳ１０２が実施され、ＳＡＤｍｉｎ＿ＶがＳＡＤｍｉｎ＿Ｈと比べ、大きいまたは同値である場合はＳ１０４が実施される。
【００６２】
次に、Ｓ１０２で、水平ブロックマッチングによる角度情報ＡＮＧＬＥ＿Ｈと、垂直ブロックマッチングによる角度情報ＡＮＧＬＥ＿Ｖを基に判定される。以下の条件１を満たした場合は、Ｓ１０３においてＳＡＤｍｉｎ＿Ｈの補正処理が行われ、満たさなかった場合は、Ｓ１０６が実施される。
【数６】
2019050475.tif 000008
【００６３】
ここで、本実施形態における、ＡＮＧＬＥ＿Ｈ＝＋１０Ｈ、および−１０Ｈは、ブロックマッチングを行う水平方向の検出限界角度である水平限界角度に対応した角度情報である。つまり、水平限界角度は第１ブロックと第２ブロックが最も離れているときの角度情報であり、水平ブロックマッチング部３０３で検出できる角度情報のうち最も水平方向に近い角度情報である。本実施形態では、ＡＮＧＬＥ＿Ｈ＝±１０が水平限界角度とされたが、これに限定されることなく、より広い領域においてブロックマッチングを行う場合は、より絶対値の大きな値とされる。
【００６４】
次に、Ｓ１０３で、ＳＡＤｍｉｎ＿Ｈの補正処理が行われる。具体的には、式５に示した補正処理が行われる。
【数７】
2019050475.tif 000009
【００６５】
式５では、ＳＡＤｍｉｎ＿Ｈから固定値ＴｈＨが減算されることでＳＡＤｍｉｎ＿Ｈに対応する２つの参照ブロックの相関が大きくされる補正方法を示した。しかし、これに限定されることなく他の方法を用いてもよい。例えば、ＳＡＤｍｉｎ＿ＨとＳＡＤｍｉｎ＿Ｖの差分に応じて減算量が決定されてもよい。この場合、ＳＡＤｍｉｎ＿ＨとＳＡＤｍｉｎ＿Ｖの差分が小さいほどＳＡＤｍｉｎ＿Ｈに対して大きな値が減算され、ＳＡＤｍｉｎ＿Ｖに対しては補正処理が行われず、そのままの値がＳＡＤｍｉｎ２＿Ｖとして出力されるなどの方法がある。
【００６６】
Ｓ１０１が「Ｙｅｓ」、Ｓ１０２が「Ｙｅｓ」の条件を満たしている場合、ＳＡＤ値は水平線に対応する角度（ＡＮＧＬＥ＿Ｖ＝０）に対応するＳＡＤｍｉｎ＿Ｖが１番小さい。また、水平限界角度（ＡＮＧＬＥ＿Ｈ＝±１０のどちらか）に対応するＳＡＤ値がＳＡＤｍｉｎ＿Ｈとなる。つまり、第３のブロックと第４のブロックが水平に並ぶ位置であるときの相関が全てのブロックマッチングで算出された中で最も高く、第１のブロックと第２のブロックが最も離れているときの相関が水平ブロックマッチングで算出された相関の中で最も高い。このような場合に、Ｓ１０３で、ＳＡＤｍｉｎ＿Ｈが小さくされる補正が行われることで、水平方向のエッジよりも、水平限界角度（ＡＮＧＬＥ＿Ｈ＝±１０）の斜めエッジが検出されやすく制御される。
【００６７】
次に、Ｓ１０４で、以下の条件２を満たした場合は、Ｓ１０５においてＳＡＤｍｉｎ＿Ｖの補正処理が行われ、満たさなかった場合は、Ｓ１０６が実施される。
【数８】
2019050475.tif 000010
【００６８】
ここで、ＡＮＧＬＥ＿Ｖ＝＋１０Ｖ、および−１０Ｖは、ブロックマッチングを行う垂直方向の検出限界角度である垂直限界角度に対応した角度情報である。つまり、垂直限界角度は、第３のブロックと第４のブロックが最も離れているとき角度情報であり、垂直ブロックマッチング部３０４で検出できる角度情報のうち最も垂直方向に近い角度情報である。
【００６９】
次に、Ｓ１０５では、ＳＡＤｍｉｎ＿Ｖの補正処理が行われる。具体的には、式６に示した補正処理が行われる。
【数９】
2019050475.tif 000011
【００７０】
式６では、ＳＡＤｍｉｎ＿Ｖから固定値ＴｈＶが減算されることでＳＡＤｍｉｎ＿Ｖに対応する２つの参照ブロックの相関が大きくされる補正方法を示した。ＳＡＤｍｉｎ＿Ｈの補正と同様、これに限定されることなく他の方法を用いてもよい。ＴｈＶとＴｈＨは同じ値であってもよいし、異なる値であってもよい。また、ＳＡＤｍｉｎ＿Ｈに対しては補正処理が行われず、そのままの値がＳＡＤｍｉｎ２＿Ｈとして出力される。
【００７１】
Ｓ１０１が「Ｎｏ」、Ｓ１０４が「Ｙｅｓ」の条件を満たしている場合、ＳＡＤ値は垂直線に対応する角度（ＡＮＧＬＥ＿Ｈ＝０）に対応するＳＡＤｍｉｎ＿Ｈが１番小さい。また、垂直限界角度（ＡＮＧＬＥ＿Ｖ＝±１０）に対応するＳＡＤがＳＡＤｍｉｎ＿Ｖと
なる。つまり、第１のブロックと第２のブロックが垂直に並ぶ位置であるときの相関が全てのブロックマッチングで算出された中で最も高く、第３のブロックと第４のブロックが最も離れているときの相関が垂直ブロックマッチングで算出された相関の中で最も高い。このような場合に、Ｓ１０５で、ＳＡＤｍｉｎ＿Ｖが小さくされる補正が行われることで、垂直方向のエッジよりも、垂直限界角度（ＡＮＧＬＥ＿Ｖ＝±１０）の斜めエッジが検出されやすく制御される。
【００７２】
また、条件１、および条件２のいずれも満たさない場合、Ｓ１０６において、ＳＡＤｍｉｎ＿Ｈ、ＳＡＤｍｉｎ＿Ｖの補正は行われず、そのままの値がＳＡＤｍｉｎ２＿Ｈ、ＳＡＤｍｉｎ２＿Ｖとして出力される。
【００７３】
そして、上記が実施された後にＳ１０７で、ＳＡＤｍｉｎ２＿ＨとＳＡＤｍｉｎ２＿Ｖの値が比較される。ＳＡＤｍｉｎ２＿Ｈの方がＳＡＤｍｉｎ２＿Ｖよりも小さい場合は、Ｓ１０８で、ＡＮＧＬＥ＝ＡＮＧＬＥ＿Ｈと決定される。また、ＳＡＤｍｉｎ２＿Ｖの方がＳＡＤｍｉｎ２＿Ｈよりも小さいまたは同値である場合は、Ｓ１０９で、ＡＮＧＬＥ＝ＡＮＧＬＥ＿Ｖと決定される。つまり、補正などが実施された後に最大の相関を得る２つの参照ブロックを結んだ方向が斜めエッジの方向とされる。
【００７４】
ここで、水平ブロックマッチングを行う際に、水平方向のエッジよりも、水平限界角度（ＡＮＧＬＥ＿Ｈ＝±１０）の斜めエッジが検出されやすく制御される理由を説明する。水平限界角度（ＡＮＧＬＥ＿Ｈ＝±１０）よりも水平に近い斜めエッジが、水平方向のエッジであると誤検出される場合がある。特に、本実施形態は実施形態１と比較し、検出範囲が狭いため誤検出の可能性が増大する。斜めエッジをエッジなしと誤検出した場合、本来の斜めエッジの方向に応じた画素補間が行われることが出来ない。つまり、斜めエッジの方向を全く考慮しない補間がされてしまい、斜めジャギー低減効果が低下してしまう。そこで、水平限界角度（ＡＮＧＬＥ＿Ｈ＝±１０）よりも水平線に近い斜めエッジを、水平限界角度（ＡＮＧＬＥ＿Ｈ＝±１０）の位置関係で補間されやすくする。それにより、誤検出による斜めジャギーを低減することが可能となる。垂直方向については、水平と垂直を入れ替えて考えればよいため、詳細説明は省略する。
【００７５】
また、スケーラ部１０２においては、角度情報ＡＮＧＬＥの信頼度に応じて補間方法を切り換えてもよい。例えば、角度情報ＡＮＧＬＥの信頼度が閾値より低い場合には、スケーラ部１０２は、補間位置を囲む隣接４点で補間を行えばよい。また、角度情報の信頼度に応じて、角度情報ＡＮＧＬＥに基づいた補間と、補間位置を囲む隣接４点に基づいた補間をブレンドして補間画素を生成しても構わない。つまり、補間位置を囲う隣接４点の画素の画素値から決定される第１の補間画素値と、補間位置から近接検出位置の斜めエッジの方向に存在する複数の画素の画素値から決定される第２の補間画素値とを合成し、補間位置の画素値を生成する。この場合、近接検出位置の斜めエッジの信頼度が低いほど第１の補間画素値に対する合成の割合を高くする。また、スケーラ部１０２は、ＳＡＤ＿ｍｉｎやＳＡＤ＿ｍｉｎ２の値が高いほど信頼度は低くすることや、ブロックマッチングの走査範囲が広いほど信頼度を高くすることなどで、角度情報ＡＮＧＬＥの信頼度を決定できる。
【００７６】
（効果）
以上、本実施形態によれば、水平方向、および垂直方向に対して、実施形態１と比較してブロックマッチングの検出対象範囲を狭めた場合においても、斜めエッジの誤検出の可能性を抑制し、補間処理におけるジャギーの発生を低減できる。
【００７７】
＜実施形態３＞
以下、本発明の実施形態３に係る画像処理装置、および画像処理方法について、図面を
用いて説明する。実施形態３では、異なる複数の種類の入力解像度の画像信号が入力される例を説明する。なお、以下では、実施形態１と同様の構成や処理についての説明は省略する。
【００７８】
本実施形態に係る画像処理装置の構成は、実施形態１の図１（ａ）と同じである。但し、本実施形態では、エッジ検出部１０１の処理が実施形態１と異なる。図１２は、本実施形態に係るエッジ検出部１０１の構成の一例を示すブロック図である。ブロックバッファ部４０２、水平ブロックマッチング部４０３、垂直ブロックマッチング部４０４、およびマッチング角度算出部４０５は実施形態１と処理が異なるため、新たに符号を付した。図１２において、実施形態１と同じ機能部には実施形態１と同じ符号を付し、その機能部についての説明は省略する。
【００７９】
ブロックバッファ部４０２の動作の詳細について説明する。ブロックバッファ部４０２は、入力画像ＩＮの画像解像度ＲＥＳＯ（以下、入力解像度ＲＥＳＯと記す）に基づいて、ブロックマッチングで用いられるブロックサイズＢＬＫＳＩＺＥ＿Ｈ、およびＢＬＫＳＩＺＥ＿Ｖを決定する。そして、ブロックバッファ部４０２は、ＢＬＫＤＡＴＡ＿Ｈ、およびＢＬＫＤＡＴＡ＿Ｖを出力する。入力解像度ＲＥＳＯは以下の式で算出される値である。
【数１０】
2019050475.tif 000012
【００８０】
ここで、ＨＲＥＳＯは入力画像ＩＮの水平解像度であり、ＶＲＥＳＯは入力画像ＩＮの垂直解像度である。例えば、水平方向１９２０画素×垂直方向１０８０画素の入力画像の場合、ＨＲＥＳＯ＝１９２０、ＶＲＥＳＯ＝１０８０となる。また、αは、０〜１の範囲で任意に設定可能な定数である。
【００８１】
ブロックサイズの具体的な決定方法を以下に示す。予め、メモリに保存しておいた入力画像の解像度に応じたブロックバッファのブロックサイズＢＬＫＳＩＺＥ＿Ｈ、およびＢＬＫＳＩＺＥ＿Ｖが、入力解像度ＲＥＳＯに応じて出力される。図１３は入力画像の画像解像度とブロックサイズの対応関係を示す。図１３において、４つの入力解像度は、ＲＥＳＯ＿Ａ  ＜  ＲＥＳＯ＿Ｂ  ＜  ＲＥＳＯ＿Ｃ  ＜  ＲＥＳＯ＿Ｄの関係である。この対応関係に基づき、ブロックサイズＢＬＫＳＩＺＥ＿Ｈ、およびＢＬＫＳＩＺＥ＿Ｖが設定される。つまり、図１３で示すように、入力解像度を、ＲＥＳＯ＿Ａ、ＲＥＳＯ＿Ｂ、ＲＥＳＯ＿Ｃ、ＲＥＳＯ＿Ｄと大きくなるように変化するに従って、ブロックサイズＢＬＫＳＩＺＥ＿Ｈ、およびＢＬＫＳＩＺＥ＿Ｖは大きく設定される。これは、入力解像度が低い、つまり、画像の粗い解像度に対しては、誤検出防止のため斜めエッジの検出範囲を狭くしている。なお、本実施形態では入力解像度に応じ、予めメモリに保存していたブロックサイズが設定されたが、入力解像度が大きくなるに従いブロックサイズも大きくなるように設定されればその限りではない。例えば、入力解像度に重み係数を乗算してブロックサイズが設定されるなどでもよい。また、入力解像度が大きくなるにしたがって段階的にブロックバッファのブロックサイズが大きくされてもよく、例えばＲＥＳＯ＿ＢとＲＥＳＯ＿Ｃに対応するブロックバッファのブロックサイズが同じ大きさであってもよい。
【００８２】
次に、水平ブロックマッチング部４０３の詳細について述べる。水平ブロックマッチング部４０３は、入力解像度ＲＥＳＯ、およびブロックバッファ部４０２から出力されたＢＬＫＤＡＴＡ＿Ｈから、水平方向のブロックマッチングを行い、ｎ個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）を出力する。ｎは、ブロックマッチングを行う参照ブロックのペアの数であり、入力解像度ＲＥＳＯが大きくなるほど、ｎは大きな値になる。つまり、ＢＬＫ＿ＤＡＴＡ＿Ｈが広範囲になるにつれて、ｎは大きな値となる。例えば、実施形態１と
同様のブロックバッファ、および参照ブロックにてブロックマッチングを行う場合、ｎ＝１７となる。
【００８３】
次に、垂直ブロックマッチング部４０４の詳細について述べる。垂直ブロックマッチング部４０４は、入力解像度ＲＥＳＯ、およびブロックバッファ部４０２から出力されたＢＬＫＤＡＴＡ＿Ｖから、垂直方向のブロックマッチングを行い、ｍ個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）を出力する。入力解像度ＲＥＳＯが大きくなるほど、ｍは大きな値になる。つまり、ＢＬＫ＿ＤＡＴＡ＿Ｖが広範囲になるにつれて、ｍは大きな値となる。例えば、実施形態２と同様のブロックバッファおよび、参照ブロックにてブロックマッチングを行う場合、ｍ＝１１となる。
【００８４】
マッチング角度算出部４０５の詳細について述べる。まず、マッチング角度算出部４０５は、水平ブロックマッチング部４０３から出力されたｎ個のＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）の最小値ＳＡＤｍｉｎ＿Ｈを算出する。また、ＳＡＤｍｉｎ＿ＨであるＳＡＤ＿ＡＲＲＡＹ＿Ｈ（ｎ）に対応した、水平方向の角度情報ＡＮＧＬＥ＿Ｈを算出する。
【００８５】
次に、マッチング角度算出部４０５は、垂直ブロックマッチング部４０４から出力されたｍ個のＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）の最小値ＳＡＤｍｉｎ＿Ｖを算出する。また、ＳＡＤｍｉｎ＿ＶであるＳＡＤ＿ＡＲＲＡＹ＿Ｖ（ｍ）に対応した、垂直方向の角度情報ＡＮＧＬＥ＿Ｖを算出する。
【００８６】
本実施では、マッチング角度算出部４０５は、ＳＡＤｍｉｎ＿Ｈ、ＳＡＤｍｉｎ＿Ｖ、およびＡＮＧＬＥ＿Ｈ、ＡＮＧＬＥ＿Ｖの値、および入力解像度ＲＥＳＯにより、角度情報ＡＮＧＬＥを算出する。
【００８７】
具体的な角度情報ＡＮＧＬＥの算出処理フローを図１４に示す。まず、Ｓ２０１でＳＡＤｍｉｎ＿ＨとＳＡＤｍｉｎ＿Ｖの比較が行われる。ＳＡＤｍｉｎ＿ＨがＳＡＤｍｉｎ＿Ｖと比べ大きい場合はＳ２０２が実施され、ＳＡＤｍｉｎ＿ＶがＳＡＤｍｉｎ＿Ｈと比べ大きいまたは同値である場合はＳ２０４が実施される。
【００８８】
Ｓ２０２では、水平ブロックマッチングによる角度情報ＡＮＧＬＥ＿Ｈと、垂直ブロックマッチングによる角度情報ＡＮＧＬＥ＿Ｖを基に判定が行われる。以下の条件３を満たした場合は、Ｓ２０３においてＳＡＤｍｉｎ＿Ｈの補正処理が行われ、満たさなかった場合は、Ｓ２０６が実施される。
【数１１】
2019050475.tif 000013
【００８９】
ここで、＋（ａ）Ｈ、および−（ａ）Ｈはブロックマッチングを行う水平限界角度に対応した角度情報である。入力解像度ＲＥＳＯが大きいほど、（ａ）Ｈの値は大きい。
【００９０】
Ｓ２０３で、ＳＡＤｍｉｎ＿Ｈの補正処理が行われる。具体的には、式７に示した補正処理が行われる。
【数１２】
2019050475.tif 000014
【００９１】
本実施形態では、ＳＡＤｍｉｎ＿Ｈが小さくされる補正において、固定値ＴｈＨにＧａｉｎＨを乗算した値が減算される。ＧａｉｎＨの値は、入力解像度ＲＥＳＯに応じて決定
し、ＲＥＳＯ（またはブロックマッチングの走査範囲）が大きいほどＧａｉｎＨの値が大きく設定されるように制御される。つまり、水平限界角度が水平方向に近づくほどＧａｉｎＨの値が大きく設定され、補正後の値であるＳＡＤｍｉｎ２＿Ｈが小さくされる。また、ＳＡＤｍｉｎ＿Ｖに対しては補正処理が行われず、そのままの値がＳＡＤｍｉｎ２＿Ｖとして出力される。
【００９２】
Ｓ２０４では、水平ブロックマッチングによる角度情報ＡＮＧＬＥ＿Ｈと、垂直ブロックマッチングによる角度情報ＡＮＧＬＥ＿Ｖを基に判定が行われる。以下の条件４を満たした場合は、Ｓ２０５へにおいてＳＡＤｍｉｎ＿Ｖの補正処理が行われ、満たさなかった場合は、Ｓ２０６が実施される。
【数１３】
2019050475.tif 000015
【００９３】
ここで、＋（ｂ）Ｖ、および−（ｂ）Ｖはブロックマッチングを行う垂直限界角度に対応した角度情報である。入力解像度ＲＥＳＯが大きいほど、（ｂ）Ｖの値は大きい。
【００９４】
Ｓ２０５で、ＳＡＤｍｉｎ＿Ｖの補正処理が行われる。具体的には、式８に示した補正処理が行われる。
【数１４】
2019050475.tif 000016
【００９５】
本実施形態では、ＳＡＤｍｉｎ＿Ｖが小さくされる補正において、固定値ＴｈＶにＧａｉｎＶを乗算した値が減算される。ＧａｉｎＶの値は、入力解像度ＲＥＳＯに応じて決定し、ＲＥＳＯ（またはブロックマッチングの走査範囲）が大きいほどＧａｉｎＶの値が大きく設定されるように制御される。つまり、補正後の値であるＳＡＤｍｉｎ２＿Ｖがより小さくされる。なお、ＧａｉｎＶはＧａｉｎＨと同じ値をとってもよいし、異なる値をとってもよい。また、ＳＡＤｍｉｎ＿Ｈに対しては補正処理が行われず、そのままの値がＳＡＤｍｉｎ２＿Ｈとして出力される。
【００９６】
また、条件３、および条件４のいずれも満たさない場合、Ｓ２０６において、ＳＡＤｍｉｎ＿Ｈ、ＳＡＤｍｉｎ＿Ｖの補正は行われず、そのままの値がＳＡＤｍｉｎ２＿Ｈ、ＳＡＤｍｉｎ２＿Ｖとして出力される。
【００９７】
そして、上記が実施された後にＳ２０７で、ＳＡＤｍｉｎ２＿ＨとＳＡＤｍｉｎ２＿Ｖの値が比較される。ＳＡＤｍｉｎ２＿Ｈの方がＳＡＤｍｉｎ２＿Ｖより小さい場合は、Ｓ２０８で、ＡＮＧＬＥ＝ＡＮＧＬＥ＿Ｈと決定される。また、ＳＡＤｍｉｎ２＿Ｖの方がＳＡＤｍｉｎ２＿Ｈより小さいまたは同値である場合は、Ｓ２０９で、ＡＮＧＬＥ＝ＡＮＧＬＥ＿Ｖと決定される。
【００９８】
ここで、入力解像度ＲＥＳＯに応じて、ＳＡＤ値の補正量を変化させる理由を示す。入力解像度ＲＥＳＯが高い場合は、ブロックマッチングが行われる領域が広く設定されるため、より水平に近い角度まで斜めエッジを画像処理装置は検出することができる。そこで、水平限界角度が水平に近づくほど、ＳＡＤ値がより低くされる補正処理が行なわれる。そして、水平限界角度に対応した斜めエッジで補間画素が生成されることで、水平方向のエッジで補間することによるジャギーの発生を抑制することができる。垂直方向のブロックマッチングが行われる領域が広く設定される理由についても、水平と垂直を入れ替えて考えればよい。以上の処理で算出されたＡＮＧＬＥが、マッチング角度算出部４０５から
出力される。
【００９９】
なお、本実施形態では、入力画像解像度に応じてブロックバッファのブロックサイズを変化させる例を示したが、例えば、検出する必要がある斜めエッジの角度の範囲に応じてブロックバッファのブロックサイズを変化させてもよい。この場合、水平により近い角度を検出する場合には、ＢＬＫＳＩＺＥ＿Ｈをより大きく設定する必要がある。逆に水平に近い角度を検出する必要がない場合には、ＢＬＫＳＩＺＥ＿Ｈを小さく設定すればよい。垂直方向の角度に対しても、同様の考え方でＢＬＫＳＩＺＥ＿Ｖを変化させればよい。
【０１００】
（効果）
以上示したように、本実施形態によれば、入力画像解像度に応じてブロックマッチングを行うブロックサイズを変化させ、ＳＡＤ値の補正の度合いを制御した。つまり、入力画像解像度に応じた最適な画像領域でのブロックマッチングが可能になり、斜めエッジに対して、より高精度に補間画素を生成することが可能になる。
【０１０１】
なお、上記実施形態１、実施形態２、および実施形態３の各機能部は、個別のハードウェアであってもよいし、そうでなくてもよい。２つ以上の機能部の機能が、共通のハードウェアによって実現されてもよい。１つの機能部の複数の機能のそれぞれが、個別のハードウェアによって実現されてもよい。１つの機能部の２つ以上の機能が、共通のハードウェアによって実現されてもよい。また、各機能部は、ＡＳＩＣ、ＦＰＧＡ、ＤＳＰなどのハードウェアによって実現されてもよいし、そうでなくてもよい。例えば、装置が、プロセッサーと、制御プログラムが格納されたメモリとを有していてもよい。そして、装置が有する少なくとも一部の機能部の機能が、プロセッサーがメモリから制御プログラムを読み出して実行することにより実現されてもよい。
（その他の実施例）
【０１０２】
本発明は、上記の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０３】
１０１：エッジ検出部
１０２：スケーラ部
２０１：輝度検出部
２０３：水平ブロックマッチング部
２０４：垂直ブロックマッチング部
２０５：マッチング角度算出部
【図１】
2019050475.tif 000017
【図２】
2019050475.tif 000018
【図３】
2019050475.tif 000019
【図４】
2019050475.tif 000020
【図５】
2019050475.tif 000021
【図６】
2019050475.tif 000022
【図７】
2019050475.tif 000023
【図８】
2019050475.tif 000024
【図９】
2019050475.tif 000025
【図１０】
2019050475.tif 000026
【図１１】
2019050475.tif 000027
【図１２】
2019050475.tif 000028
【図１３】
2019050475.tif 000029
【図１４】
2019050475.tif 000030