(57)【要約】【課題】  ビットマップ画像を対象として、少ない負荷で画像のぼやけを精度良く検出する画像処理装置の提供。【解決手段】  プリンタ１００のＣＰＵ１６０は、注目ウィンドウの画像データを８画素×８画素のブロックに分割し、このブロックごとに、画素値の変化を表す係数群を算出し、その係数群の変化形状に近似する基本エッジパターンをエッジパターンテーブル１８１から選出する。そして、この基本エッジパターンについて、注目ブロックと隣接するブロックが同じ傾き方向であれば、これらのブロック同士のぼやけ幅（画素値の変化の勾配の幅）を累積加算するエッジ連結処理を実行して、注目ブロックのぼやけ幅を算出し、ブロックぼやけ判定を行う。そして、この判定結果を集計して、ウィンドウぼやけ判定処理を行う。対象画像内に１つでも合焦ウィンドウがあれば、対象画像が合焦画像であると判断する。【選択図】図４
2008129912.tif 000002
【特許請求の範囲】
【請求項１】
画素の集合体として構成されたビットマップ画像のぼやけを検出する画像処理装置であって、
前記画像を構成する画素毎に、画像データを入力する画像データ入力部と、
前記画像の少なくとも一部を、所定の数の画素からなるブロックを単位として複数に分割し、該ブロック毎に該ブロックに属する画素の前記入力した画像データに基づいて、該画像データの前記ブロック内での所定方向の変化を表す複数の係数からなる係数群を算出するブロックパターン算出部と、
前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶するパターン記憶部と、
前記算出された係数群の変化のパターンを、前記記憶された複数の基本パターンと照合し、近似する基本パターンを選出するパターン照合部と、
前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記画像データが表す画像のぼやけを判定するぼやけ判定部と
を備えた画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記ぼやけ判定部は、
前記基本パターンが選出されたブロックの、前記選出された基本パターンの係数群の各係数の変化が形成する第１の勾配と、該ブロックに隣接するブロックで選出された基本パターンの係数群の各係数の変化が形成する第２の勾配との連続性を検定する連続性検定手段と、
前記連続性検出手段の検定結果により、前記各勾配が連続しない時には、前記基本パターンが選出されたブロックの前記勾配の幅を、前記ブロックのぼやけ度を表すぼやけ幅として検出し、前記各勾配が連続する時には、前記ブロックに分割された画像内における前記各ブロックの前記所定方向の連なりに沿って、前記各勾配が連続する範囲を前記ぼやけ幅として検出するぼやけ幅検出手段と、
該検出されたぼやけ幅の長さに基づいて、前記画像データが表す画像のぼやけを判定するぼやけ判定手段と
を備えた画像処理装置。
【請求項３】
請求項２記載の画像処理装置であって、
前記パターン記憶部は、前記基本パターンと、該各基本パターンにそれぞれ一意に割り振られたパターン番号とを対応付けて記憶する手段を備え、
前記パターン照合部は、前記算出された係数群の変化形状に近似する基本パターンとして、前記パターン番号を前記パターン記憶部から選出する手段を備え、
前記連続性検定手段は、前記選出されたパターン番号を参照して、前記第１の勾配と前記第２の勾配との連続性を検定する手段を備えた
画像処理装置。
【請求項４】
請求項３記載の画像処理装置であって、
前記パターン記憶部は、更に、前記パターン番号に対応付けて、前記各基本パターンの前記勾配の幅を記憶する手段を備え、
前記ぼやけ幅検出手段は、前記各勾配が連続しない時には、前記パターン番号が選出されたブロックの、前記パターン番号に対応付けられた前記勾配の幅を前記パターン記憶部から読み出して、前記ぼやけ幅を検出し、前記各勾配が連続する時には、前記ブロックに分割された画像内における前記各ブロックの前記所定方向の連なりに沿って、前記パターン番号に対応付けられた前記勾配の幅を前記パターン記憶部から読み出し、該勾配の幅の累積値として、前記ぼやけ幅を検出する手段を備えた
画像処理装置。
【請求項５】
請求項２ないし請求項４のいずれか記載の画像処理装置であって、
前記ぼやけ判定手段は、
前記検出されたぼやけ幅の長さに基づいて、前記ブロック毎にぼやけの状況を判定するブロックぼやけ判定手段と、
該判定の結果を集計して、画像全体のぼやけ判定を行う画像ぼやけ判定手段と
を備えた画像処理装置。
【請求項６】
請求項２ないし請求項４のいずれか記載の画像処理装置であって、
前記ぼやけ判定手段は、
前記検出されたぼやけ幅の長さに基づいて、前記ブロック毎にぼやけの状況を判定するブロックぼやけ判定手段と、
前記画像データ内の、所定数の前記ブロックで構成されるウィンドウ領域に含まれる全ブロックについて、前記ブロックぼやけ判定部に判定されたぼやけの状況を集計し、該集計結果に基づき、該ウィンドウ領域内がぼやけているか否かを判断するウィンドウぼやけ判定手段と、
前記画像データ中において、前記ウィンドウ領域を移動させていった結果、少なくとも１カ所、ぼやけていないと判断された前記ウィンドウ領域が存在する場合に、前記画像データが表す画像全体がぼやけていないと判断する画像ぼやけ判定手段と
を備えた画像処理装置。
【請求項７】
請求項２ないし請求項６記載の画像処理装置であって、
前記所定方向は、水平方向および垂直方向であり、
前記ブロックパターン算出部は、前記係数群として、前記画像データの前記ブロック内での水平方向の変化を表す第１の係数群と、前記画像データの前記ブロック内での垂直方向の変化を表す第２の係数群とを算出する手段を備え、
前記パターン照合部は、前記第１の係数群と前記第２の係数群とについて、それぞれ、前記近似する基本パターンを選出する手段を備え、
前記ぼやけ検出手段は、水平方向および垂直方向についてそれぞれ、前記ぼやけ幅を検出する水平／垂直ぼやけ幅検出手段を備え、
前記ぼやけ判定手段は、前記水平方向と垂直方向とについてそれぞれ算出された前記ぼやけ幅のうち、大きい方のぼやけ幅の長さに基づき、前記画像データが表す画像のぼやけを判定する水平／垂直ぼやけ判定手段を備えた
画像処理装置。
【請求項８】
請求項１ないし請求項７のいずれか記載の画像処理装置であって、
前記パターン照合部は、前記算出された係数群が所定の分散の範囲内となるような条件を満たす時には、前記基本パターンの選出を行わない
画像処理装置。
【請求項９】
請求項１ないし請求項８のいずれか記載の画像処理装置であって、
前記パターン照合部は、前記複数種類の基本パターンの中から、前記算出された係数群との平均誤差が最小となる基本パターンを前記パターン記憶部から選出する
画像処理装置。
【請求項１０】
請求項１ないし請求項８のいずれか記載の画像処理装置であって、
前記パターン照合部は、前記複数種類の基本エッジパターンと前記算出された係数群との平均誤差を該複数種類の基本パターンの並びの順に計算する誤差計算処理を実行し、該計算された誤差が所定の閾値以下となった場合には、前記誤差計算処理を打ち切ると共に、該誤差が所定の閾値以下となった基本パターンを前記パターン記憶部から選出する
画像処理装置。
【請求項１１】
請求項１ないし請求項１０のいずれか記載の画像処理装置であって、
前記ブロックは、水平方向と垂直方向にそれぞれ８画素で構成される
画像処理装置。
【請求項１２】
請求項１ないし請求項１１のいずれか記載の画像処理装置であって、
前記画像データは、ＲＧＢ色空間の各階調値であり、
前記係数群は、前記ＲＧＢ色空間の各階調値から算出される画素ごとの輝度値または明度に基づいて算出される
画像処理装置。
【請求項１３】
請求項１ないし請求項１２のいずれか記載の画像処理装置であって、
更に、前記ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備える
画像処理装置。
【請求項１４】
請求項１３に記載の画像処理装置であって、
更に、前記提示された画像の中からユーザによって選択された画像を印刷する印刷部を備える
画像処理装置。
【請求項１５】
画素の集合体として構成されたビットマップ画像のぼやけを検出するぼやけ検出方法であって、
前記画像を構成する画素毎に、画像データを入力し、
前記画像の少なくとも一部を、所定の数の画素からなるブロックを単位として複数に分割し、該ブロック毎に該ブロックに属する画素の前記入力した画像データに基づいて、該画像データの前記ブロック内での所定方向の変化を表す複数の係数からなる係数群を算出し、
前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶されたパターン記憶部と、前記算出された係数群の変化のパターンとを照合して、近似する基本パターンを選出し、
前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記画像データが表す画像のぼやけを判定する
ぼやけ検出方法。
【請求項１６】
画素の集合体として構成されたビットマップ画像のぼやけを検出するためのコンピュータプログラムであって、
前記画像を構成する画素毎に、画像データを入力する機能と、
前記画像の少なくとも一部を、所定の数の画素からなるブロックを単位として複数に分割し、該ブロック毎に該ブロックに属する画素の前記入力した画像データに基づいて、該画像データの前記ブロック内での所定方向の変化を表す複数の係数からなる係数群を算出する機能と、
前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶されたパターン記憶部と、前記算出された係数群の変化のパターンとを照合して、近似する基本パターンを選出する機能と、
前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記画像データが表す画像のぼやけを判定する機能と
をコンピュータに実現させるコンピュータプログラム。
【請求項１７】
請求項１６に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画素の集合体として構成されたビットマップ画像のぼやけを検出する技術に関する。
【背景技術】
【０００２】
近年、デジタルスチルカメラが普及し、デジタルデータの写真画像を撮影する機会が増えている。これらのデジタル写真画像には、被写体ブレや手ブレによるぼやけ画像も含まれており、ユーザが画像を印刷するのに先立ち、ぼやけが生じている画像を印刷の対象から排除することが必要である。近年普及している小型液晶ディスプレイを備えたプリンタでは、ユーザが印刷する画像を液晶ディスプレイで確認・選択してから印刷することが可能であるが、このような小型の液晶ディスプレイでは、画像の細部まで確認することはできず、正確なぼやけの判定は困難であった。一方、こうしたぼやけ画像を排除するためのぼやけ検出技術に関連し、下記特許文献１には、撮像した画像を８画素×８画素を単位とする複数のブロックに分割して、離散コサイン変換された各ブロックについて周波数分析を行い、ブロック毎に像のシャープさ（逆に言えば、ぼやけ度合い）を判別する技術が記載されている。
【０００３】
【特許文献１】特開平４−１７０８７２号公報
【特許文献２】特開平１０−２７１５１６号公報
【０００４】
しかし、ビットマップのように離散的な周波数成分の係数をデータとして有しない形式の画像では、当該画像をＪＰＥＧなどの離散的な周波数成分の係数をデータとして有する形式に変換した後に、特許文献１に記載の技術によって数百万画素あるいはそれ以上の高解像度な画像のぼやけを分析しようとすると、演算量が膨大となり、それに伴いメモリの使用量も多くなる。このような問題は、特に、プリンタやデジタルカメラ、フォトビューワー等といった、ＣＰＵパワーやメモリ容量に制限のある小型機器でぼやけの検出を行う場合に看過できない問題となる。
【０００５】
また、近年のデジタルスチルカメラで撮影される画像の解像度は、数百万ないし１０００万画素もの高解像度であるため、特許文献１に記載のように８画素×８画素だけで構成されるブロック内だけでぼやけやシャープさを判別することは困難であった。具体的に言えば、Ｌ版の印刷用紙（約横１３０ｍｍ×縦９０ｍｍ）に６００万画素（約横３０００画素×縦２０００画素）の画像を印刷した場合には、横８画素は、約０．３５ｍｍの幅に相当し、このような狭い幅の中だけで画像がシャープであるかぼやけているかを客観的に判別することは困難である。つまり、近年撮影される高解像度な画像において、特許文献１に記載の技術を直接適用することは困難になってきている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した種々の問題を考慮し、本発明が解決しようとする課題は、離散的な周波数成分の係数をデータとして有しないビットマップ画像を対象として、少ない負荷で画像のぼやけを精度良く検出することである。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明の画像処理装置は、
画素の集合体として構成されたビットマップ画像のぼやけを検出する画像処理装置であって、
前記画像を構成する画素毎に、画像データを入力する画像データ入力部と、
前記画像の少なくとも一部を、所定の数の画素からなるブロックを単位として複数に分割し、該ブロック毎に該ブロックに属する画素の前記入力した画像データに基づいて、該画像データの前記ブロック内での所定方向の変化を表す複数の係数からなる係数群を算出するブロックパターン算出部と、
前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶するパターン記憶部と、
前記算出された係数群の変化のパターンを、前記記憶された複数の基本パターンと照合し、近似する基本パターンを選出するパターン照合部と、
前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記画像データが表す画像のぼやけを判定するぼやけ判定部と
を備えたことを要旨とする。
【０００８】
かかる構成の画像処理装置は、画像を複数のブロックに分割し、所定方向の画像データの変化を表す係数群を算出して、この係数群の変化のパターンと近似した基本パターンをパターン記憶部から選出し、選出された基本パターンの画像内における配置に基づいて、画像のぼやけを判定する。従って、基本パターンを利用して、効率的にぼやけの判定を行うことができる。
【０００９】
なお、ビットマップ画像とは、色情報を持った画素の集合体として構成される画像データであり、例えば、ＰＮＧ形式のデータ、ＢＭＰ形式のデータ、ＪＰＥＧ形式のデータをビットマップ展開したデータなど、種々の画像データである。
【００１０】
また、かかる構成の画像処理装置において、ぼやけ判定部は、基本パターンが選出されたブロックの、選出された基本パターンの係数群の各係数の変化が形成する第１の勾配と、該ブロックに隣接するブロックで選出された基本パターンの係数群の各係数の変化が形成する第２の勾配との連続性を検定する連続性検定手段と、連続性検出手段の検定結果により、各勾配が連続しない時には、基本パターンが選出されたブロックの勾配の幅を、ブロックのぼやけ度を表すぼやけ幅として検出し、各勾配が連続する時には、ブロックに分割された画像内における各ブロックの所定方向の連なりに沿って、各勾配が連続する範囲をぼやけ幅として検出するぼやけ幅検出手段と、該検出されたぼやけ幅の長さに基づいて、画像データが表す画像のぼやけを判定するぼやけ判定手段とを備えたものとしてもよい。
【００１１】
このような構成によれば、ブロックの連なりに沿って、選出した基本パターンの係数群の各係数の変化が形成する勾配の連続性を検出し、勾配が連続する場合には、複数ブロックに跨って勾配が連続する範囲をぼやけ幅として検出する。従って、ぼやけの幅が１つのブロックのサイズを超える場合においても、精度良く画像がぼやけているか否かを判断することができる。
【００１２】
また、かかる構成の画像処理装置において、パターン記憶部は、基本パターンと、該各基本パターンにそれぞれ一意に割り振られたパターン番号とを対応付けて記憶する手段を備え、パターン照合部は、算出された係数群の変化形状に近似する基本パターンとして、パターン番号をパターン記憶部から選出する手段を備え、連続性検定手段は、選出されたパターン番号を参照して、第１の勾配と第２の勾配との連続性を検定する手段を備えたものとしてもよい。
【００１３】
このような構成によれば、基本パターンの各勾配の連続性を検定するにあたり、パターン番号を用いるので、基本パターンから直接的に検定する場合と比べ、パターン照合処理を高速化するとともに、使用するメモリ容量を削減することができる。
【００１４】
また、かかる構成の画像処理装置において、パターン記憶部は、更に、パターン番号に対応付けて、各基本パターンの勾配の幅を記憶する手段を備え、ぼやけ幅検出手段は、各勾配が連続しない時には、パターン番号が選出されたブロックの、パターン番号に対応付けられた勾配の幅をパターン記憶部から読み出して、ぼやけ幅を検出し、各勾配が連続する時には、ブロックに分割された画像内における各ブロックの所定方向の連なりに沿って、パターン番号に対応付けられた勾配の幅をパターン記憶部から読み出し、該勾配の幅の累積値として、ぼやけ幅を検出する手段を備えたものとしてもよい。
【００１５】
このような構成によれば、各基本パターンの係数群の各係数の変化が形成する勾配の幅が、パターン記憶部に予め記憶されているため、ぼやけ幅の算出を高速化することができる。
【００１６】
また、かかる構成の画像処理装置において、ぼやけ判定手段は、検出されたぼやけ幅の長さに基づいて、ブロック毎にぼやけの状況を判定するブロックぼやけ判定手段と、該判定の結果を集計して、画像全体のぼやけ判定を行う画像ぼやけ判定手段とを備えたものとしてもよい。このような構成によれば、画像全体としてのぼやけの印象を判定することができる。
【００１７】
あるいは、かかる構成の画像処理装置において、ぼやけ判定手段は、検出されたぼやけ幅の長さに基づいて、ブロック毎にぼやけの状況を判定するブロックぼやけ判定手段と、画像データ内の、所定数のブロックで構成されるウィンドウ領域に含まれる全ブロックについて、ブロックぼやけ判定部に判定されたぼやけの状況を集計し、該集計結果に基づき、該ウィンドウ領域内がぼやけているか否かを判断するウィンドウぼやけ判定手段と、画像データ中において、ウィンドウ領域を移動させていった結果、少なくとも１カ所、ぼやけていないと判断されたウィンドウ領域が存在する場合に、画像データが表す画像全体がぼやけていないと判断する画像ぼやけ判定手段とを備えたものとしてもよい。
【００１８】
このような構成によれば、所定数のブロックによって構成されるウィンドウ領域毎にぼやけの有無を判断することができるので、より人の感性に近い精度で画像にぼやけが生じているかを判断することが可能になる。また、ぼやけていないウィンドウ領域が１箇所でも検出されると、残りのウィンドウ領域についてのぼやけ判定処理を省略できるため、処理を高速化できる。なお、所定のウィンドウ領域としては、例えば、画像データがＬ版の印刷用紙に印刷されると想定すると、１ｃｍ×１ｃｍや２ｃｍ×２ｃｍの領域とすることができる。このようなサイズのウィンドウ領域内が画像中のいずれかの箇所でぼやけていないと判断されれば、その領域に焦点が合っているものと判断することができるためである。
【００１９】
また、かかる構成の画像処理装置において、所定方向は、水平方向および垂直方向であり、ブロックパターン算出部は、係数群として、画像データのブロック内での水平方向の変化を表す第１の係数群と、画像データのブロック内での垂直方向の変化を表す第２の係数群とを算出する手段を備え、パターン照合部は、第１の係数群と第２の係数群とについて、それぞれ、近似する基本パターンを選出する手段を備え、ぼやけ検出手段は、水平方向および垂直方向についてそれぞれ、ぼやけ幅を検出する水平／垂直ぼやけ幅検出手段を備え、ぼやけ判定手段は、水平方向と垂直方向とについてそれぞれ算出されたぼやけ幅のうち、大きい方のぼやけ幅の長さに基づき、画像データが表す画像のぼやけを判定する水平／垂直ぼやけ判定手段を備えたものとしてもよい。
【００２０】
このような構成によれば、１つのブロックについて、水平方向のぼやけ幅と垂直方向のぼやけ幅とを算出することができるので、これらのうち、大きい方のぼやけ幅を用いれば、より精度良く画像のぼやけを判定することが可能になる。
【００２１】
また、かかる構成の画像処理装置において、パターン照合部は、算出された係数群が所定の分散の範囲内となるような条件を満たす時には、基本パターンの選出を行わないものとしてもよい。
【００２２】
このような構成によれば、算出した係数群によりブロック内の画素値の変化が小さいと判断される場合には、基本パターンの選出を省略できるため、処理を高速化できる。
【００２３】
また、かかる構成の画像処理装置において、パターン照合部は、複数種類の基本パターンの中から、算出された係数群との平均誤差が最小となる基本パターンをパターン記憶部から選出するものとしてもよい。
【００２４】
このような構成によれば、パターン照合部は、複数種類の基本パターンの中から最も近似する基本パターンを選出できるため、高い精度でぼやけを検出し、ぼやけ判定を行うことができる。
【００２５】
あるいは、かかる構成の画像処理装置において、パターン照合部は、複数種類の基本エッジパターンと算出された係数群との平均誤差を該複数種類の基本パターンの並びの順に計算する誤差計算処理を実行し、該計算された誤差が所定の閾値以下となった場合には、誤差計算処理を打ち切ると共に、該誤差が所定の閾値以下となった基本パターンをパターン記憶部から選出するものとしてもよい。
【００２６】
このような構成によれば、パターン照合部は、複数種類の基本パターンの中から所定の誤差の範囲内にある基本パターンを検出した場合、誤差計算処理を打ち切るので、パターン照合処理を高速化できる。
【００２７】
また、かかる構成の画像処理装置において、ブロックは、水平方向と垂直方向にそれぞれ８画素で構成されるものとしてもよい。
【００２８】
このような構成によれば、ブロックパターン算出に要する処理時間と、エッジパターン照合に要する処理時間のバランスを適正に保って、ぼやけ判定処理を高速化できる。
【００２９】
また、かかる構成の画像処理装置において、画像データは、ＲＧＢ色空間の各階調値であり、係数群は、ＲＧＢ色空間の各階調値から算出される画素ごとの輝度値または明度に基づいて算出されるものとしてもよい。
【００３０】
このような構成によれば、輝度値または明度の変化に基づくエッジを用いて、ぼやけ判定が行えるため、精度の高いぼやけ判定を行うことができる。
【００３１】
また、かかる構成の画像処理装置において、更に、ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備えるものとしてもよい。
【００３２】
このような構成であれば、ユーザは、撮影に成功した画像のみを確認することができる。ユーザに提示する方法としては、例えば、表示装置に画像を表示させるものとすることができる。その他、ぼやけていないと判定された画像の一覧を印刷してユーザに提示するものとしてもよい。
【００３３】
また、かかる構成の画像処理装置において、更に、提示された画像の中からユーザによって選択された画像を印刷する印刷部を備えるものとしてもよい。
【００３４】
このような構成であれば、ユーザは、手ブレや被写体ブレによって画像にぼやけの生じている画像を意識することなく、撮影に成功した画像の中から所望の画像を容易に印刷することができる。
【００３５】
なお、本発明は、上述した画像処理装置としての構成のほか、コンピュータが画像のぼやけを検出するぼやけ検出方法や、画像のぼやけを検出するためのコンピュータプログラムとしても構成することができる。かかるコンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００３６】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
Ａ．プリンタのハードウェア構成：
Ｂ．印刷処理：
Ｃ．ぼやけ判定処理：
Ｃ−１．ぼやけ判定処理の流れ：
Ｃ−２．ブロックパターン算出：
Ｃ−３．エッジパターン照合処理：
Ｃ−４．エッジ連結処理：
Ｃ−５．ブロックぼやけ判定処理：
Ｃ−６．ウィンドウぼやけ判定処理：
【００３７】
Ａ．プリンタのハードウェア構成：
図１は、本願の画像処理装置の実施例としてのプリンタ１００の外観を示す説明図である。プリンタ１００は、いわゆる複合機タイプのプリンタであり、光学的に画像を読み込むスキャナ１１０や、画像データの記録されたメモリカードＭＣを挿入するためのメモリカードスロット１２０、デジタルカメラ等の機器を接続するＵＳＢインタフェース１３０等を備えている。プリンタ１００は、スキャナ１１０によって取り込んだ画像や、メモリカードＭＣから読み取った画像、ＵＳＢインタフェース１３０を介してデジタルカメラから読み取った画像を印刷用紙Ｐに印刷することができる。また、プリンタケーブルやＵＳＢケーブルによって接続された図示しないパーソナルコンピュータから入力した画像の印刷も行うことができる。
【００３８】
プリンタ１００は、印刷に関する種々の操作を行うための操作パネル１４０を備えている。操作パネル１４０の中央部には、液晶ディスプレイ１４５が備えられている。この液晶ディスプレイ１４５は、メモリカードＭＣやデジタルカメラなどから読み取った画像の表示や、プリンタ１００の各種機能を利用する際のＵＩ（ユーザインタフェース）の表示に利用される。
【００３９】
プリンタ１００は、メモリカードＭＣやデジタルカメラ等から入力した複数の画像データの中から、ぼやけている画像（以下「ぼやけ画像」という）を排除して、ピントが１カ所でも合っている画像（以下、「合焦画像」という）のみを抽出し、液晶ディスプレイ１４５に表示する機能を有している。ユーザは、こうして液晶ディスプレイ１４５に表示された画像の中から、所望の画像を選択することで、印刷に適した画像のみを印刷することが可能となる。
【００４０】
図２は、プリンタ１００の内部構成を示す説明図である。図示するように、プリンタ１００は、印刷用紙Ｐに印刷を行う機構として、インクカートリッジ２１２を搭載したキャリッジ２１０や、キャリッジ２１０を主走査方向に駆動するキャリッジモータ２２０、印刷用紙Ｐを副走査方向に搬送する紙送りモータ２３０等を備えている。
【００４１】
キャリッジ２１０は、シアン、マゼンタ、イエロ、ブラック、ライトシアン、ライトマゼンタの色を現す各インクに対応して、計６種類のインクヘッド２１１を備えている。キャリッジ２１０には、これらのインクが収容されたインクカートリッジ２１２が装着されており、インクカートリッジ２１２からインクヘッド２１１に供給されたインクは、図示しないピエゾ素子を駆動することで印刷用紙Ｐに吐出される。
【００４２】
キャリッジ２１０は、プラテン２７０の軸方向と並行に設置された摺動軸２８０に移動自在に保持されている。キャリッジモータ２２０は、制御ユニット１５０からの指令に応じて駆動ベルト２６０を回転させることで、プラテン２７０の軸方向と平行に、すなわち、主走査方向にキャリッジ２１０を往復運動させる。紙送りモータ２３０は、プラテン２７０を回転させることで、プラテン２７０の軸方向と垂直に印刷用紙Ｐを搬送する。つまり、紙送りモータ２３０は、キャリッジ２１０を相対的に副走査方向に移動させることができる。
【００４３】
プリンタ１００は、上述したインクヘッド２１１やキャリッジモータ２２０、紙送りモータ２３０の動作を制御するための制御ユニット１５０を備えている。制御ユニット１５０には、図１に示したスキャナ１１０やメモリカードスロット１２０、ＵＳＢインタフェース１３０、操作パネル１４０、液晶ディスプレイ１４５が接続されている。
【００４４】
制御ユニット１５０は、ＣＰＵ１６０とＲＡＭ１７０とＲＯＭ１８０とによって構成されている。ＲＯＭ１８０には、プリンタ１００の動作を制御するための制御プログラムが記憶されており、更に、後述する種々の処理で使用されるエッジパターンテーブル１８１が記憶されている。
【００４５】
ＣＰＵ１６０はＲＯＭ１８０に記憶された制御プログラムをＲＡＭ１７０に展開して実行することで図示する各機能部（１６１〜１６６）として動作する。これらの機能部の機能については、後に詳述する。ＲＡＭ１７０には、制御プログラムを実行するためのワークエリアのほか、図示するパターン番号バッファ１７１や、縦累積バッファ１７２、横累積バッファ１７３と呼ばれる記憶領域がそれぞれ確保されている。
【００４６】
Ｂ．印刷処理：
図３は、プリンタ１００のＣＰＵ１６０が実行する印刷処理のフローチャートである。この印刷処理は、メモリカードＭＣ等から画像データを入力して印刷を行うための処理である。
【００４７】
操作パネル１４０を用いたユーザの所定の操作に応じてこの印刷処理が実行されると、まず、ＣＰＵ１６０は、画像データ入力部１６１を用いて、メモリカードスロット１２０に挿入されたメモリカードＭＣから、画素毎のＲＧＢ色空間データから構成されているビットマップ画像データを入力する（ステップＳ１０）。なお、ここでは、メモリカードＭＣからビットマップ画像データを入力するものとするが、ＵＳＢインタフェース１３０を介して接続されたデジタルカメラやコンピュータ等から入力するものとしてもよい。
【００４８】
次に、ＣＰＵ１６０は、ステップＳ１０によって入力したビットマップ画像データについて、ぼやけ判定処理を行う（ステップＳ２０）。このぼやけ判定処理の詳細については「Ｃ．ぼやけ判定処理」で後述する。
【００４９】
１つのビットマップ画像データについてぼやけ判定処理を終了すると、ＣＰＵ１６０は、メモリカードＭＣ内のすべてのビットマップ画像データを入力してぼやけ判定処理を行ったか否かを判断する（ステップＳ３０）。かかる処理によって、全てのビットマップ画像データのぼやけ判定処理を行っていないと判断した場合には（ステップＳ３０：Ｎｏ）、処理をステップＳ１０に戻し、次のビットマップ画像データを入力する。
【００５０】
上記ステップＳ３０によって、全てのビットマップ画像データについてぼやけ判定処理が終了したと判断した場合には（ステップＳ３０：Ｙｅｓ）、ＣＰＵ１６０は、ステップＳ２０によってぼやけていないと判定された画像、すなわち、合焦画像を、液晶ディスプレイ１４５に一覧表示する（ステップＳ４０）。
【００５１】
合焦画像の一覧を液晶ディスプレイ１４５に表示すると、ＣＰＵ１６０は、操作パネル１４０を介して、ユーザから、印刷の対象となる画像の選択を受け付ける（ステップＳ５０）。そして、選択された画像を、インクヘッド２１１や紙送りモータ２３０、キャリッジモータ２２０等を制御して印刷する（ステップＳ６０）。
【００５２】
以上で説明した印刷処理では、メモリカードＭＣ内の全てのビットマップ画像データを入力するものとしたが、メモリカードＭＣ内に複数のフォルダが生成されている場合には、ユーザによって指定されたフォルダについてのみビットマップ画像データを入力するものとしてもよい。
【００５３】
かかる構成の印刷処理装置は、画像のぼやけの判定を行い、合焦画像と判定された画像のみを表示して、印刷指示を受け付けるので、ユーザが視覚的にぼやけの判定を行うことが困難な小型の液晶ディスプレイを搭載した印刷装置であっても、ユーザは、撮影に成功した画像のみを確認しながら、所望の画像を容易に印刷することができる。
【００５４】
Ｃ．ぼやけ判定処理：
Ｃ−１．ぼやけ判定処理の流れ：
図４は、図３に示した印刷処理のステップＳ２０で実行されるぼやけ判定処理のフローチャートである。この処理が開始されると、まず、ＣＰＵ１６０は、ぼやけ判定を行うべきウィンドウ（以下、「注目ウィンドウ」という）をその連なりに沿って移動する（ステップＳ１００）。最初の移動先は、ビットマップ画像データの最も左上に存在するウィンドウである。注目ウィンドウは、ステップＳ１００の処理が実行される度に、右方向へウィンドウの幅分だけ移動し、画像の右端まで到達すると、左端に戻ると共にウィンドウの高さ分だけ下に移動し、再度、右方向へ移動する。なお、本実施例において、上述のウィンドウとは、Ｌ版の印刷用紙において、最小の合焦エリアと想定される約１ｃｍ×約１ｃｍのサイズの領域を表しており、このウィンドウ領域を単位としたぼやけ判定結果に基づき、最終的に画像全体のぼやけ判定を行うものである。
【００５５】
注目ウィンドウを移動すると、ＣＰＵ１６０は、ブロックパターン算出部１６２を用いて、現在の注目ウィンドウのブロックパターンを算出する（ステップＳ１１０）。このブロックパターンの算出とは、ビットマップ画像データを所定の画素数で構成されるブロックを単位として分割して、このブロックごとに、画素値の変化を表す係数群を算出する処理である（詳細な処理内容については、「Ｃ−２．ブロックパターン算出」で後述）。
【００５６】
本実施例において、上述のブロックは、図５（ａ）に示すように、水平方向と垂直方向がそれぞれ８画素からなる計６４画素で構成されるものとした。Ｌ版の印刷用紙（約１３ｃｍ×縦約９ｃｍ）に、６００万画素（横約３０００画素×縦約２０００画素）の画像を印刷すると、８画素×８画素の１ブロックのサイズは、約０．３５ｍｍ×約０．３５ｍｍになる。そのため、約１ｃｍ×約１ｃｍのウィンドウ領域内には、図５（ｂ）に示すように、２８×２８個のブロックが存在することになる。なお、本実施例では、上述のように、Ｌ版の印刷用紙に６００万画素の画像を印刷することを想定して、ウィンドウのサイズを約１ｃｍ×約１ｃｍとしているが、印刷対象の用紙サイズ、画像の画素数、ＣＰＵの処理速度等に応じて、ウィンドウサイズが適宜変更されることは言うまでもない。例えば、Ａ４版で印刷する場合や、３００万画素の画像を印刷する場合、ＣＰＵの処理速度を向上できる場合などは、ウィンドウサイズを大きく、例えば、約２ｃｍ×約２ｃｍとしてもよい。
【００５７】
ブロックパターンを算出すると、ＣＰＵ１６０は、パターン照合部１６３を用いて、エッジパターン照合処理を実行する（ステップＳ１２０）。この処理は、ブロック内の画素値の代表的な変化形状を係数群によって表した複数種類の基本エッジパターンを分類して記憶したエッジパターンテーブル１８１から、上記ステップＳ１１０において算出された係数群の変化形状に近似する基本エッジパターンをエッジパターンテーブル１８１から選出し、その基本エッジパターンに割り振られたパターン番号をＲＡＭ１７０に確保したパターン番号バッファ１７１に保存するための処理である（詳細な処理内容については「Ｃ−３．エッジパターン照合処理」で後述）。
【００５８】
エッジパターン照合処理が行われると、ＣＰＵ１６０は、エッジ連結部１６４を用いて、パターン番号バッファ１７１等を参照して、エッジ連結処理を実行する（ステップＳ１３０）。このエッジ連結処理では、上記ステップＳ１２０で選出された基本エッジパターンについて、注目ブロックと隣接するブロックが同じ傾き方向であれば、これらのブロック同士のぼやけ幅（画素値の変化の勾配の幅）を累積加算し、注目ブロックのぼやけ幅が算出される（詳細な処理内容については、「Ｃ−４．エッジ連結処理」で後述）。
【００５９】
エッジ連結処理が行われると、ＣＰＵ１６０は、ブロックぼやけ判定部１６５を用いて、ブロックぼやけ判定処理を実行する（ステップＳ１４０）。この処理は、エッジ連結処理によって算出されたぼやけ幅に基づき、注目ブロックがぼやけているか否かを判定するための処理である。本実施例においては、かかる処理の実行結果として、注目ブロックが、「ぼやけブロック」、「合焦ブロック」、「平坦ブロック」のいずれかの判定結果として取得される。なお、本実施例における「平坦」とは、ブロック内の色の変化が少ない状態をいい、平坦ブロックは、ぼやけの判定を行いにくいため、ぼやけブロックと合焦ブロック以外にこのような区分を設けている（詳細な処理内容については「Ｃ−５．ブロックぼやけ判定処理」で後述）。
【００６０】
ブロックぼやけ判定処理の判定がなされると、ＣＰＵ１６０は、ウィンドウぼやけ判定部１６６を用いて、その注目ウィンドウ領域全体について、ウィンドウぼやけ判定処理を行う（ステップ１５０）。この処理は、上記ステップＳ１４０でなされたブロックごとのぼやけ判定結果を集計して、ウィンドウ領域としてのぼやけ判定を行うものである（詳細な処理内容については「Ｃ−６．ウィンドウぼやけ判定処理」で後述）。
【００６１】
上記ステップＳ１５０においてウィンドウぼやけ判定処理が終了すると、ＣＰＵ１６０は、この判定処理の判定結果に基づき、現在のウィンドウ領域が合焦ウィンドウであるか否かを判断する（ステップＳ１６０）。その結果、当該ウィンドウが合焦ウィンドウであれば（ステップＳ１６０：Ｙｅｓ）、現在入力しているビットマップ画像が合焦していると判定し（ステップＳ１７０）、上述した一連のぼやけ判定処理を終了する。つまり、画像内のいずれかのウィンドウ領域が合焦ウィンドウであると判定された時点で、図３のステップＳ１０で入力したビットマップ画像が合焦画像であると判断することになる。こうすることで、画像内のいずれかのウィンドウ領域が合焦ウィンドウであれば、画像内のすべてのウィンドウ領域についてぼやけの有無を判定する必要がないため、ぼやけ判定処理に要する時間を高速化することができる。
【００６２】
これに対して、上記ステップＳ１５０においてウィンドウぼやけ判定処理を行ったウィンドウ領域が、ぼやけウィンドウであると判断された場合には（ステップＳ１６０：Ｎｏ）、ＣＰＵ１６０は、続いて、現在の注目ウィンドウが、最終ウィンドウであるかを判断する（ステップＳ１８０）。この結果、現在の注目ウィンドウが、最終ウィンドウであると判断されれば（ステップＳ１８０：Ｙｅｓ）、どのウィンドウ領域も合焦ウィンドウではなかったと判断できるため、現在入力しているビットマップ画像はぼやけ画像であると判定して（ステップＳ１９０）、上述した一連のぼやけ判定処理を終了する。一方、現在の注目ウィンドウが最終ウィンドウでなければ（ステップＳ１８０：Ｎｏ）、ＣＰＵ１６０は、上記ステップＳ１００へ処理を戻し、次の位置のウィンドウについて、上述した種々の処理を繰り返し実行する。
【００６３】
かかる構成の画像処理装置は、ブロックごとのぼやけ幅を連結処理して、複数のブロック間に及ぶぼやけ幅を算出することができるので、ぼやけの幅が１つのブロックのサイズを超える場合においても、精度良く画像がぼやけているか否かを判断することができる。また、複数のブロックによって構成されるウィンドウ領域毎にぼやけの有無を判断することができるので、より人の感性に近い精度で画像にぼやけが生じているかを判断することが可能になる。このようなサイズのウィンドウ領域内が画像中のいずれかの箇所でぼやけていないと判断されれば、その領域に焦点が合っているものと判断することができるためである。
【００６４】
なお、本実施例では、注目ウィンドウは、ステップＳ１００の処理が実行される度に、最初の移動先である最も左上に存在するウィンドウから右方向へウィンドウの幅分だけ移動し、画像の右端まで到達すると、左端に戻ると共にウィンドウの高さ分だけ下に移動し、再度、右方向へ移動する設定としたが、これに限られるものではなく、種々の方法が設定可能である。例えば、最初の移動先を画像の真ん中に位置するウィンドウとし、そこから同心円的に外周に移動していく設定としたり、最初の移動先を最も右下に存在するウィンドウとし、そこから左方向に移動し、画像の左端まで到達すると、右端に戻ると共に再度右方向へ移動する設定としたりできる。また、対象画像の種類、例えば、風景写真画像と肖像写真画像に応じて、別々の設定とすることも可能である。例えば、対象画像が肖像写真画像の場合には、上述の最初の移動先を画像の真ん中に位置するウィンドウとする設定とすれば、人物が存在する領域、すなわち、合焦しているウィンドウを含む領域は、画像の中央部付近にあることが多いため、合焦ウィンドウをより早く検出でき、ぼやけ判定処理を高速化できる。
【００６５】
また、本実施例では、注目ウィンドウは、順次移動していき、最終的には、画像全体に注目ウィンドウが及ぶものとしたが、これに限られるものではなく、画像の限られた領域のみを移動するものとしてもよい。例えば、肖像写真画像の場合は、上述の通り、合焦しているウィンドウを含む領域は、画像中央部付近にあることが多いため、画像の中央部のみを注目ウィンドウが移動するものとすれば、ぼやけ判定の精度を保ちつつ、処理を高速化できる。
【００６６】
また、本実施例では、注目ウィンドウの移動は、ウィンドウの幅または高さ分ずつ移動することとしたが、これに限られるものではなく、移動幅を大きく、例えば、ウィンドウの幅または高さの１．５倍の幅ずつ移動するものとしてもよい。こうすれば、ウィンドウぼやけ判定処理を行うウィンドウ数が少なくなり、ぼやけ判定処理を高速化できる。また、逆に、移動幅を小さく、例えば、数画素分ずつ移動するものとしたり、ウィンドウの幅または高さの半分ずつ移動するものとしたりしてもよい。こうすれば、本実施例のウィンドウを跨ぐような合焦領域が存在する場合についても正確にぼやけ判定を行うことができ、ぼやけ判定処理の精度を向上させることができる。
【００６７】
また、本実施例では、ぼやけ判定処理は、ブロックごとのぼやけ判定結果を集計して、ウィンドウ単位で行うものとしたが、ウィンドウをさらに小さなサブウィンドウに分割して、まず、サブウィンドウ単位でブロックごとのぼやけ判定結果を集計して、さらにその結果を集計して、ウィンドウ単位のぼやけ判定を行うこととしてもよい。こうすれば、ぼやけ判定処理に利用されるバッファをコンパクト化することができる。
【００６８】
あるいは、ぼやけ判定処理は、ブロックごとのぼやけ判定結果を集計して、画像単位で行うものとしてもよい。こうすれば、画像全体としてのぼやけの印象を判定することができる。
【００６９】
Ｃ−２．ブロックパターン算出
図６は、図４に示したぼやけ判定処理のステップＳ１１０で実行されるブロックパターン算出のフローチャートである。ＣＰＵ１６０は、ブロックパターン算出部１６２を用いて、次の手順により、ブロックパターンの算出処理を実行する。
【００７０】
この処理が開始されると、ＣＰＵ１６０は、ビットマップ画像データを、図５（ａ）で示したように、水平方向と垂直方向がそれぞれ８画素からなる計６４画素で構成されるブロックに分割する（ステップＳ２００）。
【００７１】
次に、ＣＰＵ１６０は、ステップＳ２００で分割したブロックごとに、ピットマップ画像データの各画素のＲＧＢ成分を輝度値に変換する（ステップＳ２１０）。上述の変換は、具体的には、次式（１）を用いて、ＲＧＢ色空間の各階調値Ｒ，Ｇ，ＢからＹＣｂＣｒ色空間のＹ成分（輝度値）を算出する。
Ｙ＝０．２９９Ｒ＋０．５８７Ｇ＋０．１１４Ｂ・・・（１）
【００７２】
次に、ＣＰＵ１６０は、ステップＳ２１０で変換した輝度値を用いて、ブロック内の水平方向、垂直方向の輝度値の変化を表す水平方向輝度パターン及び垂直方向輝度パターンを算出し（ステップＳ２２０）、さらに、これらを正規化して、水平方向正規化輝度パターン及び垂直方向正規化輝度パターンを算出し（ステップＳ２３０）、図４に示したぼやけ判定処理に戻る。
【００７３】
ステップＳ２２０，Ｓ２３０については、図７を用いて詳述する。図７は、ブロック内の各画素の輝度値から当該ブロック内の水平方向または垂直方向の輝度変化を表す正規化輝度パターンの算出方法を示す説明図である。図中に示すＦ１１〜Ｆ８８は、ステップＳ２１０で変換された、ブロック内の各画素の輝度値を表している。
【００７４】
ステップＳ２２０では、上述の通り、ステップＳ２１０で変換された輝度値を用いて、ブロック内の水平方向の輝度変化を表す水平方向輝度パターンと、ブロック内の垂直方向の輝度変化を垂直方向輝度パターンとを算出する。本実施例においては、ステップＳ２００で分割されたブロックは、水平方向、垂直方向共に８画素で構成されるため、上述の輝度パターンは、水平方向、垂直方向共に８要素係数で構成される係数群となる。ブロック内の水平方向の輝度変化を表す水平方向輝度パターンＦＬｍ（ｍは１〜８の整数）は、ブロック内の水平方向のｍ列目に属する垂直方向の８画素の輝度値の平均値として算出される。例えば、図示するように、ブロック内の水平方向の１列目の画素の輝度パターンＦＬ１は、この１列目に属する８画素の輝度値Ｆ１１〜Ｆ８１の平均値となる。同様に、ブロック内の垂直方向の輝度変化を表す垂直方向輝度パターンＦＶｎ（ｎは１〜８の整数）は、垂直方向のｎ行目に属する水平方向の８画素の輝度値の平均値として算出される。例えば、図示するように、垂直方向の２行目の画素の輝度パターンＦＶ２は、この２行目に属する８画素の輝度値Ｆ２１〜Ｆ２８の平均値となる。すなわち、ＦＬｍ、ＦＶｎ（ｍ，ｎは１〜８の整数）は、次式（２），（３）により算出される。
【００７５】
【数１】
2008129912.tif 000003
【数２】
2008129912.tif 000004
【００７６】
なお、本実施例では、水平方向輝度パターンＦＬｍ及び垂直方向輝度パターンＦＶｎは、上式（２），（３）により算出するものとしたが、これに限られるものではない。例えば、ブロック内の水平方向の輝度変化を表す水平方向輝度パターンＦＬｍは、水平方向のｍ列目に属する垂直方向の８画素の輝度値の和として与えるなど、対応する方向の画素の輝度値を相対的に表すことが可能な算出方法であればよい。
【００７７】
次に、ステップＳ２３０では、図７に図示するように、ステップＳ２２０で算出した８要素係数で構成される係数群である、水平方向輝度パターンＦＬ１〜ＦＬ８、垂直方向輝度パターンＦＶ１〜ＦＶ８をそれぞれ正規化する。これにより、同数の係数群である、水平方向正規化輝度パターン（本願の第１の係数群としての実施例）ＲＬ１〜ＲＬ８、垂直方向正規化輝度パターン（本願の第２の係数群としての実施例）ＲＶ１〜ＲＶ８を算出する。本実施例においては、上述の正規化は、次式（４），（５）の正規化関数によって、行うものとした。
【００７８】
【数３】
2008129912.tif 000005
【数４】
2008129912.tif 000006
【００７９】
このように正規化を行うことにより、各要素係数の値は異なるが、相対的な変化量は同じであるようなステップＳ２２０の複数の輝度パターンを、同一のパターンとして扱うことができるようになるため、後述する基本エッジパターンとのマッチングを効率化することができる。
【００８０】
なお、本実施例においては、数式（４），（５）に示した正規化関数を用いたが、これに限られるものではない。例えば、正規化輝度パターンの各要素係数の和が０となるような別の正規化関数や、各要素係数について絶対値を計算し、それらの絶対値の大きさの比に応じて、正規化後の各要素係数の合計が１となるような正規化関数を用いてもよい。
【００８１】
また、本実施例では、図４におけるステップＳ１１０のブロックパターン算出に要する処理時間と、ステップＳ１２０のエッジパターン照合及びステップＳ１３０のエッジ連結処理に要する処理時間のバランスを適正に保って、ぼやけ判定処理の高速化を図るために、図６のステップＳ２００において、水平方向と垂直方向がそれぞれ８画素からなる計６４画素で構成されるブロックに分割したが、これに限られるものではない。ＣＰＵ１６０の性能や画像の画素数、印刷用紙のサイズ等に応じて、さらに小さいブロック、例えば水平方向と垂直方向がそれぞれ４画素からなる計１６画素のブロックとしたり、さらに大きなブロック、例えば、水平方向と垂直方向がそれぞれ１６画素からなる計２５６画素のブロックとしたりしてもよい。この場合、分割されたブロックの構成画素数に応じて、図７に示した各係数群の要素数も変わることとなる。
【００８２】
また、本実施例では、図６のステップＳ２１０において、ＲＧＢ色空間の各階調値からＹＣｂＣｒのＹ成分（輝度値）を算出して、この値を用いて、ステップＳ２２０で輝度パターンを算出したが、これに限られるものではない。例えば、ＲＧＢ色空間のうち最も人間の眼の分光感度が高いＧ成分の階調値を用いたり、ＨＳＶ色空間のＶ成分（明度）を用いたりしてもよい。なお、ＨＳＶ色空間のＶ成分は、ＲＧＢ色空間の各階調値の最大値として与えられる。
【００８３】
Ｃ−３．エッジパターン照合処理：
図８は、図４に示したぼやけ判定処理のステップＳ１２０で実行されるエッジパターン照合処理のフローチャートである。ＣＰＵ１６０は、パターン照合部１６３を用いて、次の手順により、エッジパターン照合処理を実行する。
【００８４】
この処理が実行されると、まず、ＣＰＵ１６０は、注目ブロックについて、ぼやけ判定処理のステップＳ１１０で算出した係数群である、水平方向正規化輝度パターンＲＬ１〜ＲＬ８と垂直方向正規化輝度パターンＲＶ１〜ＲＶ８とを取得する（ステップＳ３００）。当該エッジパターン照合処理では、水平方向正規化輝度パターンＲＬ１〜ＲＬ８と垂直方向正規化輝度パターンＲＶ１〜ＲＶ８とについてそれぞれ同様の処理が実行されるため、以下では、これらを代表して、水平方向正規化輝度パターンＲＬ１〜ＲＬ８に対する処理を説明する。
【００８５】
ＣＰＵ１６０は、上記ステップＳ３００によって、水平方向正規化輝度パターンＲＬ１〜ＲＬ８を取得すると、この係数群の最大値と最小値の差Ｄｅ１を求め、これが所定の閾値Ｔｈ１以上であるか否かを判断する（ステップＳ３１０）。水平方向正規化輝度パターンの最大値と最小値の差Ｄｅ１は、次式（６）によって求めることができる。
Ｄｅ１＝ＭＡＸ（ＲＬｍ）−ＭＩＮ（ＲＬｍ）（ｍは１〜８の整数）・・・（６）
【００８６】
上記ステップＳ３１０において、係数群の最大値と最小値の差Ｄｅ１が所定の閾値Ｔｈ１以上であると判断されれば（ステップＳ３１０：Ｙｅｓ）、そのブロックの水平方向には、なんらかの輝度変化があると判断できる。そこで、ＣＰＵ１６０は、ＲＯＭ１８０に記憶されたエッジパターンテーブル１８１を参照して（ステップＳ３５０）、水平方向正規化輝度パターンＲＬ１〜ＲＬ８との平均誤差Ｅが所定の閾値Ｔｈ２以下となる基本エッジパターンがあるか否かを判断する（ステップＳ３６０）。
【００８７】
なお、本実施例では、輝度変化の存在を判断するために、上式（５）による水平方向正規化輝度パターンＲＬ１〜ＲＬ８の最大値と最小値の差Ｄｅ１を用いたが、これに限られるものではない。例えば、水平方向正規化輝度パターンＲＬ１〜ＲＬ８の分散値など、ブロック内の輝度変化の大きさを判断できる他の指標値を用いてもよい。
【００８８】
ここで、エッジパターンテーブル１８１について説明する。図９は、エッジパターンテーブル１８１の一例を示す説明図である。このエッジパターンテーブル１８１には、「Ａ１」から「Ａ１６」までのパターン番号（図の１列目）に対して１６種類の基本エッジパターン（図の２列目）が対応付けて記録されている。基本エッジパターンの横軸はブロック内の係数の位置を表しており、縦軸は係数値を表している。つまり、基本エッジパターンは、水平方向正規化輝度パターンと同様に、８つの係数値からなるデータである。
【００８９】
これらの基本エッジパターンは、１ブロック内で傾きの符号が変化しない輝度変化の典型的な形状を、予め１６種類に分類したものである。本実施例では、このように、基本エッジパターンを１６種類に分類するものとするが、より多くのパターンに分類するものとしてもよい。
【００９０】
また、エッジパターンテーブル１８１には、基本エッジパターンに対応付けて左側エッジ幅ＬＷと、中央エッジ幅ＭＷと、右側エッジ幅ＲＷという３種類のパラメータが記録されている。左側エッジ幅ＬＷは、輝度パターンの左側に存在する平坦部の幅を表しており、右側エッジ幅ＲＷは、輝度パターンの右側に存在する平坦部の幅を表している。また、中央エッジ幅ＭＷは、左側エッジ幅ＬＷと右側エッジ幅ＲＷとに挟まれる勾配部分の幅を表している。
【００９１】
なお、図９には省略したが、このエッジパターンテーブル１８１には、「Ａ１」から「Ａ１６」までの基本エッジパターンが定義されたパターンテーブルＡに加え、図１０（ａ）に示すように、これらパターンテーブルＡに属する基本エッジパターンを左右反転させたエッジパターンがパターン番号Ｂ１〜Ｂ１６に定義されたパターンテーブルＢ、上下反転させたエッジパターンがパターン番号Ｃ１〜Ｃ１６に定義されたパターンテーブルＣ、上下および左右に反転させたエッジパターンがパターン番号Ｄ１〜Ｄ１６に定義されたパターンテーブルＤが定義されている。つまり、全体で、６４種類の基本エッジパターンがこのエッジパターンテーブル１８１に定義されている。
【００９２】
ここで説明を図８に戻す。ステップＳ３６０において、水平方向正規化輝度パターンＲＬ１〜ＲＬ８との平均誤差Ｅが所定の閾値Ｔｈ２以下となる基本エッジパターンがあると判断されれば（ステップＳ３６０：Ｙｅｓ）、ＣＰＵ１６０は、最も平均誤差Ｅが小さくなる基本エッジパターンに対応付けられたパターン番号を取得し、パターン番号バッファ１７１に保存する（ステップＳ３７０）。一方、所定の閾値Ｔｈ２以下となる基本エッジパターンがないと判断されれば（ステップＳ３６０：Ｎｏ）、近似する基本エッジパターンが検索されなかったとして、パターン番号「不明」を取得し、パターン番号バッファ１７１に保存する（ステップＳ３８０）。
【００９３】
なお、本実施例では、水平方向正規化輝度パターンＲＬ１〜ＲＬ８と、基本エッジパターンＰｍ（ｍは１〜８までの整数）との平均誤差Ｅは、次式（７）を用いて算出するものとしたが、他の方法により誤差を算出してもよい。
【００９４】
【数５】
2008129912.tif 000007
【００９５】
また、前記ステップＳ３１０において、係数群の最大値と最小値の差Ｄｅ１が所定の閾値Ｔｈ１未満であると判断されれば（ステップＳ３１０：Ｎｏ）、そのブロック内の水平方向には、大きな輝度変化はないと判断できる。そこで、ＣＰＵ１６０は、前ブロックが平坦ブロックであり、かつ、注目ブロックと前ブロックとの輝度差Ｄｅ２が所定の閾値Ｔｈ３以上であるか否かを判断する（ステップＳ３２０）。この結果、前ブロックが平坦ブロックであり、かつ、注目ブロックと前ブロックとの輝度差Ｄｅ２が所定の閾値Ｔｈ３以上であれば（ステップＳ３２０：Ｙｅｓ）、前ブロックと注目ブロックとの間に幅の短い輝度変化があると判断できることから、そこには幅１のエッジが存在するものとみなして、パターン番号「幅１」を取得し、パターン番号バッファ１７１に保存する（ステップＳ３４０）。
【００９６】
なお、本実施例においては、前ブロックと注目ブロックとの輝度差Ｄｅ２は、次式（８）により算出するものとしたが、これに限られるものではなく、前ブロックと注目ブロックの輝度差を反映できる方法であればよい。
【００９７】
【数６】
2008129912.tif 000008
【００９８】
一方、前ブロックが平坦ブロックであり、かつ、注目ブロックと前ブロックとの輝度差Ｄｅ２が所定の閾値Ｔｈ３以上でなければ、注目ブロック内に大きな輝度変化はなく、また、前ブロックとの間にも大きな輝度変化はないことから、この注目ブロックは平坦であると判断して、パターン番号「平坦」を取得し、パターン番号バッファ１７１に保存する（ステップＳ３３０）。以上の処理によって、注目ブロックのパターン番号が決定すると、上述した一連のエッジパターン照合処理は終了し、図４に示したぼやけ判定処理に戻る。
【００９９】
かかる構成のエッジパターン照合処理は、ブロック内の画素値の変化が小さいと判断される場合には、ステップＳ３５０ないしステップＳ３７０の基本エッジパターンの選出を省略できるため、エッジパターン照合処理を高速化することができる。
【０１００】
なお、本実施例においては、ステップＳ３６０において、水平方向正規化輝度パターンＲＬ１〜ＲＬ８との平均誤差Ｅが所定の閾値Ｔｈ２以下となる基本エッジパターンがあると判断されれば（ステップＳ３６０：Ｙｅｓ）、ＣＰＵ１６０は、最も誤差が小さくなる基本エッジパターンに対応付けられたパターン番号を取得するものとしたが、このような態様に限られるものではない。例えば、エッジパターンテーブル１８１の各基本エッジパターンの並びの順に誤差を計算していき、所定の閾値Ｔｈ２以下となる基本エッジパターンがあると判断されれば、その時点で、誤差計算処理を打ち切り、誤差が所定の閾値Ｔｈ２以下となる基本エッジパターンに対応付けられたパターン番号を取得するものとしてもよい。このような態様とすれば、エッジパターン照合処理を高速化することができる。また、この場合、エッジパターンテーブル１８１の各基本エッジパターンの並びの順は、経験的に見いだされた存在しやすい形状の順に配列すれば、より効果的である。
【０１０１】
また、ステップＳ３６０で、水平方向正規化輝度パターンＲＬ１〜ＲＬ８との平均誤差Ｅが所定の閾値Ｔｈ２以下となる基本エッジパターンがあるか否かを判断する場合において、ＣＰＵ１６０は、水平方向正規化輝度パターンＲＬ１〜ＲＬ８と、エッジパターンテーブル１８１に記憶された各々の基本エッジパターンとの誤差を計算する前に、まず、次式（９），（１０）により求められるＳ１，Ｓ２を計算して、水平方向正規化輝度パターンＲＬ１〜ＲＬ８が、上述のパターンテーブルＡ〜Ｄのいずれのパターンに該当するかを判断し、該当するパターンテーブルに含まれる１６種類の基本エッジパターンについて、誤差計算を行うこととしてもよい。
【０１０２】
Ｓ１＝ＲＬ１+ＲＬ２+ＲＬ３+ＲＬ４−ＲＬ５−ＲＬ６−ＲＬ７−ＲＬ８・・・（９）
Ｓ２＝ＲＬ１+ＲＬ２−ＲＬ３−ＲＬ４+ＲＬ５+ＲＬ６−ＲＬ７−ＲＬ８・・（１０）
【０１０３】
上式（９），（１０）を用いれば、図１０（ｂ）に示すように、水平方向正規化輝度パターンＲＬ１〜ＲＬ８から求められるＳ１，Ｓ２がともにプラスの値となる場合には、水平方向正規化輝度パターンＲＬ１〜ＲＬ８は、パターンテーブルＡのパターンに該当すると判断できる。同様に、Ｓ１，Ｓ２がともにマイナスの値となる場合にはパターンテーブルＢ、Ｓ１がマイナスでＳ２がプラスの値となる場合にはパターンテーブルＣ、Ｓ１がプラスでＳ２がマイナスの値となる場合にはパターンテーブルＤのパターンに該当すると判断できる。
【０１０４】
こうすれば、パターンテーブルＡ〜Ｄに含まれる６４種類の基本エッジパターンについて、水平方向正規化輝度パターンＲＬ１〜ＲＬ８との誤差計算を行う必要があるところを、パターンテーブルＡ〜Ｄのうちいずれかひとつのパターンテーブルに含まれる１６種類の基本エッジパターンについて誤差計算を行えばよいことにでき、エッジパターン照合処理を高速化できる。
【０１０５】
Ｃ−４．エッジ連結処理：
図１１は、図４に示したぼやけ判定処理のステップＳ１３０で実行されるエッジ連結処理のフローチャートである。この処理は、上下左右に隣接したブロックに基づき、中央のブロック（注目ブロック）のぼやけ幅を決定するための処理である。かかる処理は、水平方向と垂直方向とについて行われるが、説明を簡単にするため、特記しない限り、水平方向に対して行われる処理の説明をする。ＣＰＵ１６０は、エッジ連結部１６４を用いて、次の手順により、エッジ連結処理を実行する。
【０１０６】
この処理が開始されると、まず、ＣＰＵ１６０は、エッジ連結処理を行うべき注目ブロックをその連なりに沿って移動する（ステップＳ５００）。最初の移動先は、注目ウィンドウの最も左上に存在するブロックである。注目ブロックは、ステップＳ５００の処理が実行される度に、右方向へ移動し、注目ウィンドウの右端まで到達すると、左端に戻ると共にブロックの高さ分だけ下に移動し、再度、右方向へ移動する。
【０１０７】
注目ブロックを移動すると、ＣＰＵ１６０は、現在の注目ブロックのパターン番号をパターン番号バッファ１７１から取得する（ステップＳ５１０）。
【０１０８】
次に、ＣＰＵ１６０は、ステップＳ５１０で取得したパターン番号が、「幅１」であるかを判断する（ステップＳ５２０）。その結果、パターン番号が「幅１」であれば（ステップＳ５２０：Ｙｅｓ）、上記ステップＳ１２０のエッジパターン照合処理において、注目ブロックと、注目ブロックの前ブロックとの間に、幅１のエッジが存在するとみなされているため（図８のステップＳ３４０参照）、注目ブロックのぼやけ幅を「１」と確定する（ステップＳ５３０）。こうして確定したぼやけ幅を、以下では、「確定ぼやけ幅ＤＷ」というものとする。
【０１０９】
上記ステップＳ５２０において、パターン番号が「幅１」ではないと判断されれば（ステップＳ５２０：Ｎｏ）、次に、ＣＰＵ１６０は、パターン番号が「不明」または「平坦」であるかを判断する（ステップＳ５４０）。この判断の結果、パターン番号が「不明」または「平坦」であれば（ステップＳ５４０：Ｙｅｓ）、上記ステップＳ１２０のエッジパターン照合処理において、注目ブロックの水平方向の輝度変化が基本エッジパターンのいずれにも近似しないか、平坦であると判定されていることになる（図８のステップＳ３３０，Ｓ３８０参照）。本実施例では、基本エッジパターンのいずれにも近似しない場合も「平坦」として扱い、注目ブロックの確定ぼやけ幅ＤＷを「０」と確定する（ステップＳ５５０）。
【０１１０】
上記ステップＳ５４０において、パターン番号が「不明」または「平坦」ではないと判断されれば（ステップＳ５４０：Ｎｏ）、ＣＰＵ１６０は、注目ブロックの右側（垂直方向のエッジ連結処理の場合には下側）に隣接するブロック（以下、「隣接ブロックという」）のパターン番号をパターン番号バッファ１７１から取得する（ステップＳ５６０）。そして、注目ブロックのパターン番号と、隣接ブロックのパターン番号とを対比して、これらのブロックの基本エッジパターンの傾き方向が一致するかを判断する（ステップＳ５７０）。
【０１１１】
図１２は、注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致する例を示す説明図である。図示した例では、両ブロックの傾きは、共に右下がりであるため、両者の傾き方向は一致しているといえる。注目ブロックと隣接ブロックの傾き方向が一致する組み合わせとしては、以下のようなパターン番号の組み合わせがある。つまり、ＣＰＵ１６０は、注目ブロックのパターン番号と隣接ブロックのパターン番号の組み合わせが、以下に示す（１）から（８）のいずれかの組み合わせに含まれれば、これらの傾き方向が一致すると判断することができる。
【０１１２】
注目ブロックＮｏ．    隣接ブロックＮｏ．
（１）Ａ１〜Ａ１６          Ａ１〜Ａ１６
（２）Ａ１〜Ａ１６          Ｄ１〜Ｄ１６
（３）Ｂ１〜Ｂ１６          Ｂ１〜Ｂ１６
（４）Ｂ１〜Ｂ１６          Ｃ１〜Ｃ１６
（５）Ｃ１〜Ｃ１６          Ｃ１〜Ｃ１６
（６）Ｃ１〜Ｃ１６          Ｂ１〜Ｂ１６
（７）Ｄ１〜Ｄ１６          Ｄ１〜Ｄ１６
（８）Ｄ１〜Ｄ１６          Ａ１〜Ａ１６
【０１１３】
図１３は、注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致しない例を示す説明図である。図示した例では、注目ブロックの傾きが右下がりであるのに対して、隣接ブロックの傾きが右上がりであることから、両者の傾きは一致していないと言える。両ブロックの傾き方向が一致しないパターン番号の組み合わせは、上述した（１）から（８）以外の組み合わせである。
【０１１４】
上記ステップＳ５７０において、傾き方向が一致すると判断された場合には（ステップＳ５７０：Ｙｅｓ）、ＣＰＵ１６０は、続いて、注目ブロックの右側エッジ幅ＲＷと、隣接ブロックの左側エッジ幅ＬＷの加算値が、所定の連結誤差閾値Ｔｈ４以内であるかを判断する（ステップＳ５８０）。なお、この判断に先立ち、ＣＰＵ１６０は、隣接ブロックのパターン番号から、エッジパターンテーブル１８１を参照して、その左側エッジ幅ＬＷを取得するものとする。
【０１１５】
図１４は、注目ブロックの右側エッジ幅ＲＷと隣接ブロックの左側エッジ幅ＬＷの加算値と連結誤差閾値Ｔｈ４との比較の様子を示す説明図である。図示するように、注目ブロックの基本エッジパターンの右側に存在する平坦部（右側エッジ幅ＲＷ）と、隣接ブロックの基本エッジパターンの左側に存在する平坦部（左側エッジ幅ＬＷ）との和が大きく、連結誤差閾値Ｔｈ４を超えるような場合には、注目ブロックと隣接ブロックとでは勾配が連続せず、別々のぼやけ部分を形成していると判断することができる。そのため、上記ステップＳ５８０では、「Ｎｏ」と判定される。これに対して、上述した和が小さく、連結誤差閾値Ｔｈ４以下となる場合には、注目ブロックのエッジパターンと隣接ブロックのエッジパターンとは連続した勾配であると考えることができるため、上記ステップＳ５８０では、「Ｙｅｓ」と判定される。
【０１１６】
上記ステップＳ５８０において、注目ブロックの右側エッジ幅ＲＷと、隣接ブロックの左側エッジ幅ＬＷの加算値が、所定の連結誤差閾値Ｔｈ４以内であると判定されれば（ステップＳ５８０：Ｙｅｓ）、ＣＰＵ１６０は、これまで左側（垂直方向のエッジ連結処理にあっては、上側）のブロックに累積されている累積ぼやけ幅ＣＷを横累積バッファ１７３（垂直方向のエッジ連結処理にあっては、縦累積バッファ１７２）から読み込む。そして、この累積ぼやけ幅ＣＷに注目ブロックの左側エッジ幅ＬＷと中央エッジ幅ＭＷとを加算する処理を行う（ステップＳ５９０）。こうして新たな累積ぼやけ幅ＣＷを求めると、ＣＰＵ１６０は、新たな値を横累積バッファ１７３（垂直方向のエッジ連結処理にあっては縦累積バッファ１７２）に上書きして更新する。こうすることで、隣接ブロック同士でエッジパターンの傾きが一方向に連続していく場合には、各ブロックのぼやけ幅を順次累積していくことができる。なお、本実施例においては、上記ステップＳ５９０では、ＣＰＵ１６０は、注目ブロックの確定ぼやけ幅ＤＷを便宜的に「０」と確定する。つまり、ぼやけ幅を累積する場合には、その累積途中のブロックについては、一律に平坦なブロックであるとみなすのである。
【０１１７】
図１５は、上記ステップＳ５９０における累積ぼやけ幅ＣＷの算出概念を示す説明図である。図示するように、上記ステップＳ５９０では、これまでの累積ぼやけ幅ＣＷに対して、注目ブロックの左側エッジ幅ＬＷと中央エッジ幅ＭＷとを加算した値を、新たな累積ぼやけ幅ＣＷとする。なお、かかる演算に先立ち、ＣＰＵ１６０は、エッジパターンテーブル１８１を参照して、注目ブロックのパターン番号に対応する左側エッジ幅ＬＷと中央エッジ幅ＭＷとを取得するものとする。
【０１１８】
上記ステップＳ５７０において、注目ブロックの傾き方向と隣接ブロックの傾き方向とが一致しないと判断された場合（ステップＳ５７０：Ｎｏ）、もしくは、上記ステップＳ５８０において、注目ブロックの右側エッジ幅ＲＷと隣接ブロックの左側エッジ幅ＬＷとの和が連結誤差閾値Ｔｈ４を超えると判断された場合（ステップＳ５８０：Ｎｏ）には、ＣＰＵ１６０は、横累積バッファ１７３（垂直方向のエッジ連結処理にあっては、縦累積バッファ１７２）から読み込んだ累積ぼやけ幅ＣＷが「０」であるかを判断する（ステップＳ６００）。この判断によって累積ぼやけ幅ＣＷが「０」であると判断されれば（ステップＳ６００：Ｙｅｓ）、注目ブロックはぼやけの生じる開始点であり、更に、上記ステップＳ５７０，Ｓ５８０における判定結果によれば、右側（垂直方向のエッジ連結処理にあっては、下側）の隣接ブロックともエッジパターンが連続しないことになるため、注目ブロックは、単独のエッジパターンを有すると判断することができる。従って、ＣＰＵ１６０は、注目ブロックの中央エッジ幅ＭＷを確定ぼやけ幅ＤＷとして確定する（ステップＳ６１０）。なお、ＣＰＵ１６０は、かかる処理に先立ち、エッジパターンテーブル１８１を参照して、注目ブロックのパターン番号に対応する中央エッジ幅ＭＷを取得するものとする。
【０１１９】
上記ステップＳ６００において、累積ぼやけ幅ＣＷが「０」ではないと判断されれば、注目ブロックは、右側（垂直方向のエッジ連結処理にあっては、下側）の隣接ブロックとは連続しないが、左側（垂直方向のエッジ連結処理にあっては、上側）の隣接ブロックとは連続することになる。つまり、注目ブロックは、ぼやけ部分の終端に該当することになる。そのため、ＣＰＵ１６０は、横累積バッファ１７３（垂直方向のエッジ連結処理にあっては、縦累積バッファ１７２）から読み込んだ累積ぼやけ幅ＣＷに注目ブロックの左側エッジ幅ＬＷと中央エッジ幅ＭＷとを加算し、この値を確定ぼやけ幅ＤＷとして確定する（ステップＳ６２０）。なお、ＣＰＵ１６０は、かかる処理に先立ち、エッジパターンテーブル１８１を参照して、注目ブロックのパターン番号に対応する左側エッジ幅ＬＷと中央エッジ幅ＭＷとを取得するものとする。
【０１２０】
続いて、ＣＰＵ１６０は、現在の注目ブロックが、注目ウィンドウ領域の最終ブロックであるかを判断する（ステップＳ６３０）。この結果、現在の注目ブロックが、最終ブロックであると判断されれば（ステップＳ６３０：Ｙｅｓ）、上述した一連のエッジ連結処理を終了し、図４に示したぼやけ判定処理に戻る。一方、現在の注目ブロックが最終ブロックでなければ（ステップＳ６３０：Ｎｏ）、ＣＰＵ１６０は、上記ステップＳ５００へ処理を戻し、次の位置のブロックについて、上述した種々の処理を繰り返し実行する。
【０１２１】
かかる構成のエッジ連結処理は、基本エッジパターンに対応付けられたパターン番号と、基本エッジパターンに対応付けられたエッジ幅（ＬＷ、ＭＷ、ＲＷ）を用いて、エッジの連結を行うので、エッジパターン照合処理を高速化することができる。
【０１２２】
Ｃ−５．ブロックぼやけ判定処理：
図１６は、図４に示したぼやけ判定処理のステップＳ１４０で実行されるブロックぼやけ判定処理のフローチャートである。この処理は、上述したエッジ連結処理に引き続いて実行される処理であり、注目ブロックが合焦しているか否かを判定する処理である。ＣＰＵ１６０は、ブロックぼやけ判定部１６５を用いて、次の手順により、ブロックぼやけ判定処理を実行する。
【０１２３】
この処理が開始されると、まず、ＣＰＵ１６０は、ブロックぼやけ判定処理を行うべき注目ブロックをその連なりに沿って移動する（ステップＳ７００）。最初の移動先は、注目ウィンドウの最も左上に存在するブロックである。注目ブロックは、ステップＳ７００の処理が実行される度に、右方向へ移動し、注目ウィンドウの右端まで到達すると、左端に戻ると共にブロックの高さ分だけ下に移動し、再度、右方向へ移動する。
【０１２４】
次に、ＣＰＵ１６０は、上記ステップＳ１３０のエッジ連結処理で確定された注目ブロックの水平および垂直方向の確定ぼやけ幅ＤＷを取得し（ステップＳ７１０）、２つの確定ぼやけ幅ＤＷのうち、大きい方の値を有する確定ぼやけ幅ＤＷを、最大確定ぼやけ幅ＭＤＷとして決定する（ステップＳ７２０）。
【０１２５】
最大確定ぼやけ幅ＭＤＷを決定すると、ＣＰＵ１６０は、この最大確定ぼやけ幅ＭＤＷが「０」であるか否かを判断する（ステップＳ７３０）。その結果、最大確定ぼやけ幅ＭＤＷが「０」であれば（ステップＳ７３０：Ｙｅｓ）、水平方向、垂直方向共に大きな輝度変化がない（本実施例では、基本エッジパターンが不明なものや、ぼやけの途中に存在するブロックを含む）ということであり、ＣＰＵ１６０は、注目ブロックは「平坦ブロック」であると判定する（ステップＳ７４０）。
【０１２６】
上記ステップＳ７３０において、最大確定ぼやけ幅ＭＤＷが「０」でなければ（ステップＳ７３０：Ｎｏ）、ＣＰＵ１６０は、最大確定ぼやけ幅ＭＤＷが所定のぼやけ幅閾値Ｔｈ５（例えば、「１６」）以下であるか否かを判定する（ステップＳ７５０）。かかる判定の結果、最大確定ぼやけ幅ＭＤＷがこの条件を満たせば（ステップＳ７５０：Ｙｅｓ）、注目ブロックは「合焦ブロック」であると判定する（ステップＳ７７０）。これに対して、最大確定ぼやけ幅ＭＤＷが所定のぼやけ幅閾値Ｔｈ５よりも大きければ（ステップＳ７５０：Ｎｏ）、注目ブロックは「ぼやけブロック」であると判定する（ステップＳ７６０）。
【０１２７】
以上の処理により、現在の注目ブロックが、「合焦ブロック」か「ぼやけブロック」か「平坦ブロック」かの判定が終了すると、続いて、ＣＰＵ１６０は、現在の注目ブロックが、注目ウィンドウ領域の最終ブロックであるかを判断する（ステップＳ７８０）。この結果、現在の注目ブロックが、最終ブロックであると判断されれば（ステップＳ７８０：Ｙｅｓ）、上述した一連のブロックぼやけ判定処理を終了し、図４に示したぼやけ判定処理に戻る。一方、現在の注目ブロックが最終ブロックでなければ（ステップＳ７８０：Ｎｏ）、ＣＰＵ１６０は、上記ステップＳ７００へ処理を戻し、次の位置のブロックについて、上述した種々の処理を繰り返し実行する。
【０１２８】
以上で説明したブロックぼやけ判定処理によれば、水平方向の確定ぼやけ幅ＤＷと垂直方向の確定ぼやけ幅ＤＷとのうち、その値が大きい方の確定ぼやけ幅ＤＷを最大確定ぼやけ幅ＭＤＷとして決定し、この最大確定ぼやけ幅ＭＤＷが所定のぼやけ幅閾値Ｔｈ５以上であれば、注目ブロックがぼやけていると判断する。よって、一方向で判断する場合と比べて、精度良くぼやけ判定を行うことができる。
【０１２９】
Ｃ−６．ウィンドウぼやけ判定処理：
図１７は、図４に示したぼやけ判定処理のステップＳ１５０で実行されるウィンドウぼやけ判定処理のフローチャートである。上述したブロックぼやけ判定処理がブロック毎にぼやけの有無を判定する処理であるのに対して、このウィンドウぼやけ判定処理は、ブロックぼやけ判定処理の結果に基づき、図５（ｂ）に示したウィンドウ領域毎にぼやけの有無を判定する処理である。ＣＰＵ１６０は、ウィンドウぼやけ判定部１６６を用いて、次の手順により、ウィンドウぼやけ判定処理を実行する。
【０１３０】
この処理が実行されると、ＣＰＵ１６０は、上記ステップ１４０のブロックぼやけ判定処理の判定結果を用いて、注目ウィンドウ内の全てのブロックについて、合焦ブロック数とぼやけブロック数を集計する（ステップＳ８００）。
【０１３１】
上記ステップＳ８００によって、ブロック数を集計すると、ＣＰＵ１６０は、次式（１１）で示すように、合焦ブロック数Ｎｆを、合焦ブロック数Ｎｆとぼやけブロック数Ｎｎの和で除して得られる合焦ブロック率Ｒｆを計算し、この合焦ブロック率Ｒｆが所定の合焦閾値Ｔｈ６以上であるかを判断する（ステップＳ８１０）。
【０１３２】
Ｒｆ＝Ｎｆ／（Ｎｆ＋Ｎｎ）・・・（１１）
【０１３３】
かかる判定の結果、合焦ブロックの総数が合焦閾値Ｔｈ６以上であれば（ステップＳ８１０：Ｙｅｓ）、現在の注目ウィンドウを「合焦ウィンドウ」と判定し（ステップＳ８３０）、合焦密度閾値に満たなければ（ステップＳ８１０：Ｎｏ）、「ぼやけウィンドウ」と判定して、図４に示したぼやけ判定処理に戻る（ステップＳ８２０）。
【０１３４】
なお、本実施例では、ウィンドウぼやけ判定に上式（１０）で得られる合焦ブロック率Ｒｆを用いたが、これに限られるものではない。例えば、合焦ブロック数が所定の閾値以上であるか否かで、ウィンドウぼやけ判定を行うなど、他の方法を用いてもよい。また、平坦ブロック数を加味した方法、例えば、平坦ブロック数が注目ウィンドウの総ブロック数に対して、所定の割合以上を占める場合は、合焦ブロック率Ｒｆの値にかかわらず「ぼやけウィンドウ」として扱うなどの方法を用いてもよい。
【０１３５】
以上、本発明の幾つかの実施例、変形例について説明したが、本発明はこうした実施例に限られるものではなく、本発明の要旨を脱しない範囲において、種々なる態様で実施できることは勿論である。例えば、本発明の画像処理装置は、実施例に示したプリンタに限らず、デジタルスチルカメラ、カメラ付携帯電話、写真画像を拡大確認するためのフォトビューアなどに搭載することができる。もとより、コンピュータに搭載して、コンピュータのモニタで写真画像を取捨選択する場合にも採用可能である。また、ぼやけ検出方法、ぼやけ検出プログラム、またはプログラムを記録したコンピュータで読み取り可能な記録媒体等の形態でも実現することができる。
【図面の簡単な説明】
【０１３６】
【図１】画像処理装置の実施例としてのプリンタ１００の外観を示す説明図である。
【図２】プリンタ１００の内部構成を示す説明図である。
【図３】プリンタ１００のＣＰＵ１６０が実行する印刷処理のフローチャートである。
【図４】印刷処理で実行されるぼやけ判定処理のフローチャートである。
【図５】ブロックとウィンドウの概念を示す説明図である。
【図６】ぼやけ判定処理で実行されるブロックパターン算出のフローチャートである。
【図７】ブロック内の各画素の輝度値から当該ブロック内の水平方向または垂直方向の輝度変化を表す正規化輝度パターンの算出方法を示す説明図である。
【図８】ぼやけ判定処理で実行されるエッジパターン照合処理のフローチャートである。
【図９】エッジパターンテーブル１８１の一例を示す説明図である。
【図１０】エッジパターンテーブル１８１のパターンテーブルを示す説明図である。
【図１１】ぼやけ判定処理で実行されるエッジ連結処理のフローチャートである。
【図１２】注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致する例を示す説明図である。
【図１３】注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致しない例を示す説明図である。
【図１４】注目ブロックの右側エッジ幅ＲＷと隣接ブロックの左側エッジ幅ＬＷの加算値と連結誤差閾値Ｔｈ４との比較の様子を示す説明図である。
【図１５】累積ぼやけ幅ＣＷの算出概念を示す説明図である。
【図１６】ぼやけ判定処理で実行されるブロックぼやけ判定処理のフローチャートである。
【図１７】ぼやけ判定処理で実行されるウィンドウぼやけ判定処理のフローチャートである。
【符号の説明】
【０１３７】
１００…プリンタ
１１０…スキャナ
１２０…メモリカードスロット
１３０…ＵＳＢインタフェース
１４０…操作パネル
１４５…液晶ディスプレイ
１５０…制御ユニット
１６０…ＣＰＵ
１６１…画像データ入力部
１６２…ブロックパターン算出部
１６３…パターン照合部
１６４…エッジ連結部
１６５…ブロックぼやけ判定部
１６６…ウィンドウぼやけ判定部
１７０…ＲＡＭ
１７１…パターン番号バッファ
１７２…縦累積バッファ
１７３…横累積バッファ
１８０…ＲＯＭ
１８１…エッジパターンテーブル
２１０…キャリッジ
２１１…インクヘッド
２１２…インクカートリッジ
２２０…キャリッジモータ
２３０…モータ
２６０…駆動ベルト
２７０…プラテン
２８０…摺動軸
Ｐ…印刷用紙
ＭＣ…メモリカード
【図１】
2008129912.tif 000009
【図２】
2008129912.tif 000010
【図３】
2008129912.tif 000011
【図４】
2008129912.tif 000012
【図５】
2008129912.tif 000013
【図６】
2008129912.tif 000014
【図７】
2008129912.tif 000015
【図８】
2008129912.tif 000016
【図９】
2008129912.tif 000017
【図１０】
2008129912.tif 000018
【図１１】
2008129912.tif 000019
【図１２】
2008129912.tif 000020
【図１３】
2008129912.tif 000021
【図１４】
2008129912.tif 000022
【図１５】
2008129912.tif 000023
【図１６】
2008129912.tif 000024
【図１７】
2008129912.tif 000025