(57)【要約】【課題】処理負担の軽減や使用するメモリ容量の低減を図りつつ、画像のぼやけを精度良く検出する。【解決手段】画像データがぼやけているか否かを判定するに当たり、印刷装置は、まず、画像データから帯領域毎にＤＣＴ係数を読み出してメモリ部に記憶し、その帯領域内のＤＣＴ係数と所定の基本エッジパターンとの比較に基づき、ブロック毎にぼやけているか否か判定する。そして、ぼやけていないと判定されたブロックが多く存在するウィンドウ領域については、ＤＣＴ係数を輝度値に逆変換した上で、この輝度値に基づきエッジを検出し、エッジが多く含まれていれば、画像データ全体がぼやけていないと判定する。【選択図】図７
2008123346.tif 000002
【特許請求の範囲】
【請求項１】
画像がぼやけているか否かを判定するぼやけ判定装置であって、
複数の画素からなるブロックを単位として画素値を空間領域から周波数領域に変換して得られた係数が記録されている画像データを参照する画像データ参照部と、
前記画像データ内の係数の連なりを、前記画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと比較することにより、前記ブロック毎にぼやけているか否かを判定するブロックぼやけ判定部と、
前記画像データを、複数のブロックからなるウィンドウ領域に区切り、ぼやけていないと判定されたブロックを所定個以上含むウィンドウ領域を抽出するウィンドウ抽出部と、
前記抽出されたウィンドウ領域について、前記係数を、前記周波数領域から前記空間領域に逆変換して、該係数に応じた画素値を取得するデコード部と、
前記取得された画素値の勾配変化に基づき、前記抽出されたウィンドウ領域内に存在するエッジを検出するエッジ検出部と、
前記抽出されたいずれかのウィンドウ領域が、前記エッジを所定個数以上含む場合に、前記画像データはぼやけていないと判定する画像ぼやけ判定部と
を備えるぼやけ判定装置。
【請求項２】
請求項１に記載のぼやけ判定装置であって、
前記画像データを、少なくとも一方向に連続して配置されたブロックを含む帯領域に区切り、該帯領域毎に前記係数を一時的に記憶する帯領域記憶部を備え、
前記ブロックぼやけ判定部は、前記帯領域記憶部に記憶された係数の連なりを、前記複数種類の基本エッジパターンと比較し、
前記ウィンドウ抽出部は、前記帯領域をこれよりも小さな領域である前記ウィンドウ領域に区切り、前記抽出を行う
ぼやけ判定装置。
【請求項３】
請求項１または請求項２に記載のぼやけ判定装置であって、
前記エッジ検出部は、前記抽出されたウィンドウ領域内の、複数の方向別に、該方向に沿ったエッジを検出する
ぼやけ判定装置。
【請求項４】
請求項３に記載のぼやけ判定装置であって、
前記エッジ検出部は、前記検出の方向と、前記画素値の勾配方向とのなす角が、所定の角度範囲に収まる画素が、前記検出の方向に連続して連なる画素の範囲を、１つのエッジとして検出する
ぼやけ判定装置。
【請求項５】
請求項４に記載のぼやけ判定装置であって、
前記エッジ検出部は、前記１つのエッジとして検出された各画素の画素値の勾配方向と、前記検出の方向とのなす角の平均値が、所定の角度以下である場合に、該エッジは、前記方向に沿ったエッジであると判断する
ぼやけ判定装置。
【請求項６】
請求項３ないし請求項５のいずれかに記載のぼやけ判定装置であって、
前記エッジ検出部は、前記複数の方向として、少なくとも水平方向、垂直方向、斜め４５度方向を含む方向別に前記エッジを検出する
ぼやけ判定装置。
【請求項７】
請求項６に記載のぼやけ判定装置であって、
前記エッジ検出部は、前記検出の方向のすべてについて、前記検出を行う画素の数が同一になるように、前記ウィンドウ領域内において前記エッジの検出を行う部位が設定されている
ぼやけ判定装置。
【請求項８】
請求項３ないし請求項７のいずれかに記載のぼやけ判定装置であって、
前記画像ぼやけ判定部は、前記抽出されたいずれかのウィンドウ領域が、前記検出の方向のすべての方向について、前記エッジを所定個数以上含み、かつ、前記各方向別のエッジの幅の平均が、すべて所定の幅以下の場合に、前記画像データはぼやけていないと判定する
ぼやけ判定装置。
【請求項９】
請求項１ないし請求項８のいずれかに記載のぼやけ判定装置であって、
前記ブロックぼやけ判定部は、隣接するブロック間で、前記係数の連なりに対応する前記基本エッジパターンの勾配の方向が一致する場合に、前記勾配の幅を累積加算し、該累積加算された勾配の幅に基づき、前記隣接するブロックに跨って、ぼやけが存在するか否かを判定する
ぼやけ判定装置。
【請求項１０】
請求項１ないし請求項９のいずれかに記載のぼやけ判定装置であって、
前記画像データは、ＪＰＥＧ規格に基づき生成されたデータであり、前記係数は、前記画素値をブロック毎に離散コサイン変換して得られた係数である
ぼやけ判定装置。
【請求項１１】
画像がぼやけているか否かを判定するぼやけ判定方法であって、
複数の画素からなるブロックを単位として画素値を空間領域から周波数領域に変換して得られた係数が記録されている画像データを参照し、
前記画像データ内の係数の連なりを、前記画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと比較することにより、前記ブロック毎にぼやけているか否かを判定し、
前記画像データを、複数のブロックからなるウィンドウ領域に区切り、ぼやけていないと判定されたブロックを所定個以上含むウィンドウ領域を抽出し、
前記抽出されたウィンドウ領域について、前記係数を、前記周波数領域から前記空間領域に逆変換して、該係数に応じた画素値を取得し、
前記取得された画素値の勾配変化に基づき、前記抽出されたウィンドウ領域内に存在するエッジを検出し、
前記抽出されたいずれかのウィンドウ領域が、前記エッジを所定個数以上含む場合に、前記画像データはぼやけていないと判定する
ぼやけ判定方法。
【請求項１２】
画像がぼやけているか否かを判定して印刷する印刷装置であって、
複数の画素からなるブロックを単位として画素値を空間領域から周波数領域に変換して得られた係数が記録されている画像データを参照する画像データ参照部と、
前記画像データ内の係数の連なりを、前記画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと比較することにより、前記ブロック毎にぼやけているか否かを判定するブロックぼやけ判定部と、
前記画像データを、複数のブロックからなるウィンドウ領域に区切り、ぼやけていないと判定されたブロックを所定個以上含むウィンドウ領域を抽出するウィンドウ抽出部と、
前記抽出されたウィンドウ領域について、前記係数を、前記周波数領域から前記空間領域に逆変換して、該係数に応じた画素値を取得するデコード部と、
前記取得された画素値の勾配変化に基づき、前記抽出されたウィンドウ領域内に存在するエッジを検出するエッジ検出部と、
前記抽出されたいずれかのウィンドウ領域が、前記エッジを所定個数以上含む場合に、前記画像データはぼやけていないと判定する画像ぼやけ判定部と
前記ぼやけていないと判定された画像データの印刷を行う印刷部と
を備える印刷装置。
【請求項１３】
画像がぼやけているか否かを判定するためのコンピュータプログラムであって、
複数の画素からなるブロックを単位として画素値を空間領域から周波数領域に変換して得られた係数が記録されている画像データを参照する画像データ参照機能と、
前記画像データ内の係数の連なりを、前記画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと比較することにより、前記ブロック毎にぼやけているか否かを判定するブロックぼやけ判定機能と、
前記画像データを、複数のブロックからなるウィンドウ領域に区切り、ぼやけていないと判定されたブロックを所定個以上含むウィンドウ領域を抽出するウィンドウ抽出機能と、
前記抽出されたウィンドウ領域について、前記係数を、前記周波数領域から前記空間領域に逆変換して、該係数に応じた画素値を取得するデコード機能と、
前記取得された画素値の勾配変化に基づき、前記抽出されたウィンドウ領域内に存在するエッジを検出するエッジ検出機能と、
前記抽出されたいずれかのウィンドウ領域が、前記エッジを所定個数以上含む場合に、前記画像データはぼやけていないと判定する画像ぼやけ判定機能と
をコンピュータに実現させるコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のぼやけを検出する技術に関する。
【背景技術】
【０００２】
近年、デジタルスチルカメラが普及し、これに使用されるメモリカードの容量も増大している。そのため、一般のユーザが、画像を大量に保有する場合が増えている。デジタルスチルカメラは、フィルム代が不要であり、気軽に撮影を行えることから、被写体ブレや手ブレ等を意識することなく撮影が行われることが多い。従って、被写体ブレや手ブレに起因して画像にぼやけが生じている場合が比較的多く、撮影された画像を印刷装置によって印刷しようとすると、正常な画像を選別する作業が事前に必要であった。
【０００３】
大量の画像の中から正常な画像を選別する作業は、非常に煩雑な作業である。そこで、ユーザが画像を印刷するのに先立ち、自動的にぼやけが生じている画像を印刷の対象から排除する技術が望まれている。こうしたぼやけの検出技術に関連し、下記特許文献１には、画像を撮像したデジタルスチルカメラにおいて、画像のぼやけの有無を検出する技術が開示されている。
【０００４】
【特許文献１】特開２００６−１９８７４号公報
【０００５】
しかし、近年のデジタルスチルカメラは、数百万ないし一千万画素もの高解像度の画像を撮像するため、デジタルスチルカメラや印刷装置等の小型機器でぼやけの検出を行おうとすると、処理能力の高いＣＰＵや多くのメモリ容量が必要となり、製造コストが増加することになる。そこで、特許文献１では、フレームメモリに記憶された画像を縮小して、この縮小画像に基づいてぼやけの判定を行っている（特許文献１の段落００６９〜００７０参照）。
【０００６】
しかし、画像を縮小すると、ぼやけた画像がシャープに変化することが一般的に知られている。そのため、縮小画像を用いたぼやけの検出処理では、精度良くぼやけを検出することができない場合があった。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した種々の問題を考慮し、本発明が解決しようとする課題は、処理負担の軽減や使用するメモリ容量の低減を図りつつ、画像のぼやけを精度良く検出することにある。
【課題を解決するための手段】
【０００８】
上記課題を踏まえ、本発明のぼやけ判定装置を次のように構成した。すなわち、
画像がぼやけているか否かを判定するぼやけ判定装置であって、
複数の画素からなるブロックを単位として画素値を空間領域から周波数領域に変換して得られた係数が記録されている画像データを参照する画像データ参照部と、
前記画像データ内の係数の連なりを、前記画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと比較することにより、前記ブロック毎にぼやけているか否かを判定するブロックぼやけ判定部と、
前記画像データを、複数のブロックからなるウィンドウ領域に区切り、ぼやけていないと判定されたブロックを所定個以上含むウィンドウ領域を抽出するウィンドウ抽出部と、
前記抽出されたウィンドウ領域について、前記係数を、前記周波数領域から前記空間領域に逆変換して、該係数に応じた画素値を取得するデコード部と、
前記取得された画素値の勾配変化に基づき、前記抽出されたウィンドウ領域内に存在するエッジを検出するエッジ検出部と、
前記抽出されたいずれかのウィンドウ領域が、前記エッジを所定個数以上含む場合に、前記画像データはぼやけていないと判定する画像ぼやけ判定部と
を備えることを要旨とする。
【０００９】
本発明のぼやけ判定装置は、画像データがぼやけているか否かを判定するに当たり、まず、画像データから係数を読み出して、その係数と所定の基本エッジパターンとの比較に基づき、ブロック毎にぼやけているか否か判定する。そして、ぼやけていないと判定されたブロックが所定個以上存在するウィンドウ領域については、係数を画素値に逆変換した上で、この画素値に基づきエッジを検出し、エッジが多く含まれていれば、画像データ全体がぼやけていないと判定する。
【００１０】
このような構成のぼやけ判定装置によれば、係数に基づくぼやけ判定の結果、ぼやけていないと判定されたブロックが所定個数以上含まれるウィンドウ領域についてのみ、係数から画素値への逆変換を行うため、逆変換を行う範囲を制限することができる。この結果、処理負担を軽減することができる。また、ぼやけていないと判定されたブロックが所定個数以上含まれるウィンドウ領域について、更に、その画素値を用いてエッジを検出するので、ぼやけているか否かを精度良く判断することができる。更に、本発明では、１箇所でもウィンドウ領域がぼやけていないと判断されれば、画像データ全体がぼやけていないと判定するため、ぼやけの判定を高速に行うことが可能になる。
【００１１】
なお、本発明においてぼやけの判定対象となる画像データは、例えば、ＪＰＥＧ規格に基づき生成されているものとすることができる。この場合、係数とは、画素値をブロック毎に離散コサイン変換して得られた、いわゆるＤＣＴ係数のことをいう。なお、空間領域から周波数領域への変換は、離散コサイン変換以外にも、例えば、フーリエ変換やウェーブレット変換などによって行うことも可能である。
【００１２】
上記構成のぼやけ判定装置において、
前記画像データを、少なくとも一方向に連続して配置されたブロックを含む帯領域に区切り、該帯領域毎に前記係数を一時的に記憶する帯領域記憶部を備え、
前記ブロックぼやけ判定部は、前記帯領域記憶部に記憶された係数の連なりを、前記複数種類の基本エッジパターンと比較し、
前記ウィンドウ抽出部は、前記帯領域をこれよりも小さな領域である前記ウィンドウ領域に区切り、前記抽出を行うものとしてもよい。
【００１３】
このような構成によれば、画像データを帯領域毎に分割して帯領域記憶部に記憶するため、画像データを記憶するための記憶容量を低減することができる。また、帯領域内の係数に基づき、ブロック毎にぼやけの判定を行い、ぼやけていないと判定されたブロックを所定個以上含むウィンドウ領域についてのみ周波数領域から空間領域への逆変換を行うため、帯領域全体について逆変換を行う必要がない。そのため、処理負担を軽減することができる。
【００１４】
上記構成のぼやけ判定装置において、
前記エッジ検出部は、前記抽出されたウィンドウ領域内の、複数の方向別に、該方向に沿ったエッジを検出するものとしてもよい。
【００１５】
このような構成であれば、１つのウィンドウ領域について、様々な方向から被写体のぼやけ部分であるエッジを検出することができるので、精度良くぼやけの判定を行うことが可能になる。
【００１６】
上記構成のぼやけ判定装置において、
前記エッジ検出部は、前記検出の方向と、前記画素値の勾配方向とのなす角が、所定の角度範囲に収まる画素が、前記検出の方向に連続して連なる画素の範囲を、１つのエッジとして検出するものとしてもよい。
【００１７】
このような構成であれば、画素毎にその画素値の勾配方向がまちまちの方向を向いていたとしても、検出方向と画素値の勾配方向とのなす角が所定の角度範囲に収まるか否かに基づき、容易に１つのエッジを構成しているかを判断することができる。なお、所定の角度範囲とは、例えば、０度以上９０度未満（好ましくは、０度以上８０度以下）の範囲とすることができる。
【００１８】
上記構成のぼやけ判定装置において、
前記エッジ検出部は、前記１つのエッジとして検出された各画素の画素値の勾配方向と、前記検出の方向とのなす角の平均値が、所定の角度以下である場合に、該エッジは、前記方向に沿ったエッジであると判断するものとしてもよい。
【００１９】
このような構成であれば、１つのエッジとして検出された画素群のそれぞれの勾配方向に偏りがある場合などに、そのエッジを、現在の検出方向のエッジとして扱うことを排除することができる。従って、各方向のエッジの検出を精度良く行うことができる。なお、所定の角度以下とは、例えば、４５度程度とすることができる。
【００２０】
上記構成のぼやけ判定装置において、
前記エッジ検出部は、前記複数の方向として、少なくとも水平方向、垂直方向、斜め４５度方向を含む方向別に前記エッジを検出するものとしてもよい。
【００２１】
このように、水平方向、垂直方向、斜め４５度の検出方向にエッジの検出を行えば、ウィンドウ領域内に生じているエッジの多くを検出することが可能になる。
【００２２】
上記構成のぼやけ判定装置において、
前記エッジ検出部は、前記検出の方向のすべてについて、前記検出を行う画素の数が同一になるように、前記ウィンドウ領域内において前記エッジの検出を行う部位が設定されているものとしてもよい。
【００２３】
このような構成であれば、水平方向・垂直方向と、斜め方向とで、エッジの検出を行う画素数を統一することができるので、処理の効率化を図ることが可能になる。
【００２４】
上記構成のぼやけ判定装置において、
前記画像ぼやけ判定部は、前記抽出されたいずれかのウィンドウ領域が、前記検出の方向のすべての方向について、前記エッジを所定個数以上含み、かつ、前記各方向別のエッジの幅の平均が、すべて所定の幅以下の場合に、前記画像データはぼやけていないと判定するものとしてもよい。
【００２５】
このような構成であれば、エッジが所定個数含まれ、更に、各方向別のエッジの幅の平均が所定の幅以下の場合にその画像データはぼやけていないと判定するので、精度良くぼやけの有無を判定することが可能になる。
【００２６】
上記構成のぼやけ判定装置において、
前記ブロックぼやけ判定部は、隣接するブロック間で、前記係数の連なりに対応する前記基本エッジパターンの勾配の方向が一致する場合に、前記勾配の幅を累積加算し、該累積加算された勾配の幅に基づき、前記隣接するブロックに跨って、ぼやけが存在するか否かを判定するものとしてもよい。
【００２７】
このような構成であれば、ぼやけ部分が複数のブロックに跨っていたとしても、精度良くブロック毎のぼやけを判定することができる。
【００２８】
なお、本発明は、上述したぼやけ判定装置としての構成のほか、印刷装置や、ぼやけ判定方法、コンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００２９】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
Ａ．印刷装置の構成：
Ｂ．印刷処理：
Ｃ．ぼやけ判定処理：
Ｄ．効果：
【００３０】
Ａ．印刷装置の構成：
図１は、本発明の実施例としての印刷装置１００の外観を示す説明図である。印刷装置１００は、いわゆる複合機タイプの印刷装置であり、光学的に画像を読み込むスキャナ１１０や、画像データの記録されたメモリカードＭＣを挿入するためのメモリカードスロット１２０、デジタルカメラ等の機器を接続するＵＳＢインタフェース１３０等を備えている。印刷装置１００は、スキャナ１１０によって取り込んだ画像や、メモリカードＭＣから読み取った画像、ＵＳＢインタフェース１３０を介してデジタルカメラから読み取った画像を印刷用紙Ｐに印刷することができる。また、プリンタケーブルやＵＳＢケーブルによって接続された図示していないパーソナルコンピュータから入力した画像の印刷も行うことができる。
【００３１】
印刷装置１００は、印刷に関する種々の操作を行うための操作パネル１４０を備えている。操作パネル１４０の中央部には、液晶ディスプレイ１４５が備えられている。この液晶ディスプレイ１４５は、メモリカードＭＣやデジタルカメラなどから読み取った画像の表示や、印刷装置１００の各種機能を利用する際のＧＵＩ（グラフィカルユーザインタフェース）の表示に利用される。
【００３２】
印刷装置１００は、メモリカードＭＣやデジタルカメラ等から入力した複数の画像データの中から、ぼやけている画像（以下「ぼやけ画像」という）を排除して、ピントが１カ所でも合っている画像（以下、「合焦画像」という）のみを抽出し、液晶ディスプレイ１４５に表示する機能を有している。ユーザは、こうして液晶ディスプレイ１４５に表示された画像の中から、所望の画像を選択することで、印刷に適した画像のみを印刷することが可能となる。以下では、このぼやけ画像を排除する機能を実現するための印刷装置１００の構成および処理について詳細に説明する。
【００３３】
図２は、印刷装置１００の内部構成を示す説明図である。図示するように、印刷装置１００は、印刷用紙Ｐに印刷を行う機構として、インクカートリッジ２１２を搭載したキャリッジ２１０や、キャリッジ２１０を主走査方向に駆動するキャリッジモータ２２０、印刷用紙Ｐを副走査方向に搬送する紙送りモータ２３０等を備えている。
【００３４】
キャリッジ２１０は、シアン、マゼンタ、イエロ、ブラック、ライトシアン、ライトマゼンタの色を現す各インクに対応して、計６種類のインクヘッド２１１を備えている。キャリッジ２１０には、これらのインクが収容されたインクカートリッジ２１２が装着されており、インクカートリッジ２１２からインクヘッド２１１に供給されたインクは、図示しないピエゾ素子を駆動することで印刷用紙Ｐに吐出される。
【００３５】
キャリッジ２１０は、プラテン２７０の軸方向と並行に設置された摺動軸２８０に移動自在に保持されている。キャリッジモータ２２０は、制御ユニット１５０からの指令に応じて駆動ベルト２６０を回転させることで、プラテン２７０の軸方向と平行に、すなわち、主走査方向にキャリッジ２１０を往復運動させる。紙送りモータ２３０は、プラテン２７０を回転させることで、プラテン２７０の軸方向と垂直に印刷用紙Ｐを搬送する。つまり、紙送りモータ２３０は、キャリッジ２１０を相対的に副走査方向に移動させることができる。
【００３６】
印刷装置１００は、上述したインクヘッド２１１やキャリッジモータ２２０、紙送りモータ２３０の動作を制御するための制御ユニット１５０を備えている。制御ユニット１５０には、図１に示したスキャナ１１０やメモリカードスロット１２０、ＵＳＢインタフェース１３０、操作パネル１４０、液晶ディスプレイ１４５が接続されている。
【００３７】
制御ユニット１５０は、ＣＰＵ１６０とＲＡＭ１７０とＲＯＭ１８０とによって構成されている。ＲＯＭ１８０には、印刷装置１００の動作を制御するための制御プログラムや、後述するぼやけ判定処理で用いられるエッジパターンテーブル１８１が記憶されている。ＣＰＵ１６０はＲＯＭ１８０に記憶された制御プログラムをＲＡＭ１７０に展開して実行することで図示する各機能部（１６１〜１６４）として動作する。
【００３８】
制御ユニット１５０は、ＣＰＵ１６０によって実現される機能部として、画像データ参照部１６１、係数ぼやけ判定部１６２、ＪＰＥＧデコーダ１６３、輝度ぼやけ判定部１６４を備えている。以下、これらの機能部の働きについて簡単に説明する（詳細な働きについては後述する各種処理内容を参照）。
【００３９】
画像データ参照部１６１は、メモリカードスロット１２０やＵＳＢインタフェース１３０を介して、メモリカードＭＣやデジタルカメラに記録されたＪＰＥＧ形式の画像データ（以下、「ＪＰＥＧデータ」という）を参照する機能部である。ＪＰＥＧデータには、８画素×８画素のブロック単位で画像が記録されている。この各ブロック内の画像データは、（１）ＲＧＢ色空間からＹＣｂＣｒ色空間への画素値の色変換、（２）空間領域から周波数領域への離散コサイン変換（ＤＣＴ変換）、（３）データの情報量を削減する量子化、（４）エントロピー符号化の一種であるハフマン符号化、が順次行われることでデータ量が圧縮されている。
【００４０】
図３は、ＪＰＥＧデータ内にブロック毎にデータが記録されている様子を示す説明図である。図示するように、ＪＰＥＧデータには、８画素×８画素のブロックが、行毎に記録されている。なお、ＪＰＥＧデータの中には、他の記録順によって各ブロックのデータが記録されているものもあるが、本実施例では、図３に示した記録順で各ブロックが記録されているものとする。
【００４１】
ＪＰＥＧデコーダ１６３（図２参照）は、画像データ参照部１６１が参照したＪＰＥＧデータをビットマップ形式のデータにデコードする機能部である。
【００４２】
図４は、ＪＰＥＧデコーダ１６３の詳細な構成を示す説明図である。図示するように、ＪＰＥＧデコーダ１６３は、ハフマン復号部１９１と、逆量子化処理部１９２と、逆ＤＣＴ変換部１９３と、色空間変換部１９４とによって構成されている。
【００４３】
ハフマン復号部１９１は、ハフマン符号化によって可逆圧縮されたＪＰＥＧデータのビットストリームを復号する機能を有する。
【００４４】
逆量子化処理部１９２は、ハフマン復号部１９１によって復号したデータに対して、所定の量子化テーブルを用いて逆量子化を行い、ブロック毎に、８×８個のＤＣＴ係数を求める機能部である。
【００４５】
逆ＤＣＴ変換部１９３は、逆量子化処理部１９２によって求められたＤＣＴ係数に対して逆ＤＣＴ変換を行い、ＹＣｂＣｒ形式の画像データを求める機能部である。
【００４６】
色空間変換部１９４は、逆ＤＣＴ変換部１９３によって得られたＹＣｂＣｒ形式のデータをＲＧＢ形式のビットマップデータに変換する機能部である。
【００４７】
ここで、説明を図２に戻す。係数ぼやけ判定部１６２（本願の「ブロックぼやけ判定部」に相当する）は、ＪＰＥＧデコーダ１６３が備えるハフマン復号部１９１および逆量子化処理部１９２を用いてＪＰＥＧデータをハフマン復号および逆量子化し、この結果得られたＤＣＴ係数に基づき、ぼやけの判断を行う機能部である。
【００４８】
図５は、逆量子化処理部１９２によって取得されたＤＣＴ係数の配列を示す説明図である。図示するように、各ブロックからは、逆量子化が行われた段階で、Ｆ００からＦ７７までの計６４個のＤＣＴ係数が得られる。これらのうち、最も左上に存在する係数Ｆ００は、直流成分と呼ばれ、他の係数は、交流成分と呼ばれる。各係数は、図中の右側および下側に位置するものほど、周波数の高い値となる。
【００４９】
係数ぼやけ判定部１６２は、図中に「第１の係数群」と記載した水平方向のみの交流成分である係数Ｆ０１〜Ｆ０７と、図中に「第２の係数群」と記載した垂直方向のみの交流成分である係数Ｆ１０〜Ｆ７０とを抽出して、これらの係数群に基づき、ぼやけの判定を行う。かかる判定処理の詳細については後述する。
【００５０】
輝度ぼやけ判定部１６４（本願の「画像ぼやけ判定部」に相当する）（図２参照）は、係数ぼやけ判定部１６２がＤＣＴ係数に基づきぼやけの判定を行った結果、合焦していると推測された領域について、更に、その領域の輝度値に基づきぼやけの判定を行う機能部である。かかるぼやけの判定処理の詳細については後述する。
【００５１】
Ｂ．印刷処理：
図６は、印刷装置１００のＣＰＵ１６０が実行する印刷処理のフローチャートである。この印刷処理は、メモリカードＭＣ等に記録された画像データを印刷するための処理である。
【００５２】
操作パネル１４０を用いたユーザの所定の操作に応じてこの印刷処理の実行が開始されると、まず、ＣＰＵ１６０は、画像データ参照部１６１によって、メモリカードＭＣに記録されたＪＰＥＧデータを１つ参照する（ステップＳ１０）。なお、ここでは、メモリカードＭＣ内のＪＰＥＧデータを参照するものとするが、ＵＳＢインタフェース１３０を介して接続されたデジタルカメラやコンピュータ内のＪＰＥＧデータを参照するものとしてもよい。
【００５３】
ＪＰＥＧデータを参照すると、ＣＰＵ１６０は、入力したＪＰＥＧデータについてぼやけ判定処理を行う（ステップＳ２０）。このぼやけ判定処理の詳細については後述する。
【００５４】
１つのＪＰＥＧデータについてぼやけ判定処理を終了すると、ＣＰＵ１６０は、メモリカードＭＣ内の全てのＪＰＥＧデータを参照したかを判断する（ステップＳ３０）。かかる処理によって、全てのＪＰＥＧデータを参照していないと判断した場合には（ステップＳ３０：Ｎｏ）、処理をステップＳ１０に戻し、次のＪＰＥＧデータを参照して、そのＪＰＥＧデータについてぼやけ判定処理を行う。
【００５５】
上記ステップＳ３０によって、全てのＪＰＥＧデータを参照したと判断した場合には（ステップＳ３０：Ｙｅｓ）、ＣＰＵ１６０は、ステップＳ２０のぼやけ判定処理によって合焦画像であると判定されたＪＰＥＧデータを、液晶ディスプレイ１４５に一覧表示する（ステップＳ４０）。
【００５６】
合焦画像の一覧を液晶ディスプレイ１４５に表示すると、ＣＰＵ１６０は、操作パネル１４０を介して、ユーザから、印刷の対象となる画像の選択を受け付ける（ステップＳ５０）。そして、選択された画像を、インクヘッド２１１や紙送りモータ２３０、キャリッジモータ２２０等を制御して印刷する（ステップＳ６０）。
【００５７】
以上で説明した印刷処理では、メモリカードＭＣ内の全てのＪＰＥＧデータを参照するものとしたが、メモリカードＭＣ内に複数のフォルダが生成されている場合には、ユーザによって指定されたフォルダ内に含まれるＪＰＥＧデータのみを参照するものとしてもよい。また、同一年、同一月、あるいは、同一日に撮像されたＪＰＥＧデータのみを参照するものとしてもよい。
【００５８】
Ｃ．ぼやけ判定処理：
図７は、図６に示した印刷処理のステップＳ２０で実行されるぼやけ判定処理のフローチャートである。このぼやけ判定処理は、現在参照しているＪＰＥＧデータが、合焦画像であるか、ぼやけ画像であるかを判定するための処理である。
【００５９】
当該ぼやけ判定処理が実行されると、ＣＰＵ１６０は、まず、現在参照しているＪＰＥＧデータの中から、所定の帯領域毎にブロックデータを読み込み、ＪＰＥＧデコーダ１６３を用いて、これをハフマン復号および逆量子化し、ＤＣＴ係数を取得する（ステップＳ１００）。取得したＤＣＴ係数は、ＲＡＭ１７０に一時的に記憶する。
【００６０】
図８は、上述した帯領域の概念を示す説明図である。図示するように、本実施例において「帯領域」とは、横方向のブロック数が、ＪＰＥＧデータの横方向のブロック数と同一であり、縦方向のブロック数が、所定の数（例えば、３０ブロック）を有する帯状の領域のことをいう。上記ステップＳ１００では、この帯領域内のブロックデータをＪＰＥＧデータから読み込みつつ、このデータをハフマン復号および逆量子化することで、ＤＣＴ係数を取得する。このように、画像全体ではなく、帯領域毎にＪＰＥＧデータからデータを読み込むことで、ＲＡＭ１７０の記憶容量を削減することが可能になる。
【００６１】
ここで説明を図７に戻す。上記ステップＳ１００によって、帯領域内のＤＣＴ係数をＲＡＭ１７０に記憶すると、次に、ＣＰＵ１６０は、係数ぼやけ判定部１６２を用いて、ＲＡＭ１７０に記憶されたＤＣＴ係数に基づき、係数ぼやけ判定処理を行う（ステップＳ１１０）。
【００６２】
図９は、係数ぼやけ判定処理のフローチャートである。この処理は、ＲＡＭ１７０に記憶されたすべてのブロックについて、それぞれが「合焦ブロック」であるか「ぼやけブロック」であるかを判定するための処理である。この係数ぼやけ判定処理は、ブロックの水平方向と垂直方向についてそれぞれ同様の処理が実行されるため、以下では、特記しない限り、水平方向のぼやけ分析処理を行う場合について説明する。
【００６３】
この処理が実行されると、ＣＰＵ１６０は、まず、各ブロックを構成する８×８個のＤＣＴ係数の中から、図５に示した水平方向の交流成分である係数群Ｆ０ｉ（ｉ＝１〜７）（垂直方向のぼやけ分析処理にあっては、係数群Ｆｊ０（ｊ＝１〜７））を取得する（ステップＳ３００）。
【００６４】
係数群を取得すると、ＣＰＵ１６０は、下記式（１）に基づき、取得した各係数の絶対値の和Ｓを求め、この値が、所定の平坦閾値を超えるかを判断する（ステップＳ３１０）。
【００６５】
Ｓ＝Σ｜Ｆ０ｉ｜  （ｉ＝１〜７）    ・・・（１）
【００６６】
上記ステップＳ３１０において、和Ｓが所定の平坦閾値以下であると判断されれば（ステップＳ３１０：Ｎｏ）、そのブロックの係数が表す輝度変化が平坦であるとみなし、分析対象のブロックは、「ぼやけブロック」であると判定する（ステップＳ３２０）。
【００６７】
一方、ステップＳ３１０において、和Ｓが所定の平坦閾値を超えると判断されれば（ステップＳ３１０：Ｙｅｓ）、そのブロックには、何らかの輝度変化があると判断できるため、ＣＰＵ１６０は、後述するエッジパターンとの比較が容易となるように、まず、取得した各係数を下記式（２）によって正規化する（ステップＳ３３０）。この正規化処理によれば、正規化後の各係数値Ｆｒ０１〜Ｆｒ０７は、係数群の絶対値の和Ｓで、それぞれの係数値Ｆ０１〜Ｆ０７を除算した値となる。
【００６８】
Ｆｒ０ｉ＝Ｆ０ｉ／Ｓ    （ｉ＝１〜７）    ・・・（２）
【００６９】
次に、ＣＰＵ１６０は、ＲＯＭ１８０に記憶されたエッジパターンテーブル１８１を参照して（ステップＳ３４０）、正規化後の各係数値Ｆｒ０１〜Ｆｒ０７によって表される勾配形状がいずれかの基本エッジパターンに近似するかを判断する（ステップＳ３５０）。
【００７０】
図１０は、エッジパターンテーブル１８１の一例を示す説明図である。このエッジパターンテーブル１８１には、「Ａ１」から「Ａ１６」までのパターン番号（図の１列目）に対して１６種類の基本エッジパターン（図の３列目）が対応付けて記録されている。基本エッジパターンの横軸は、ブロック内の係数の位置（Ｆ０１〜Ｆ０７もしくはＦ１０〜Ｆ７０）を表しており、縦軸は、正規化後の係数値Ｆｒを表している。つまり、基本エッジパターンは、７つの係数値からなるデータとして構成されている。
【００７１】
各基本エッジパターンは、図１０の２列目に示した輝度パターンに基づき生成されている。すなわち、図の２列目に示した輝度パターンをＤＣＴ変換して正規化したものが図１０の３列目に示す基本エッジパターンとなる。なお、図中の輝度パターンは、実際には、エッジパターンテーブル１８１には記録されておらず、理解の便のために記載している。各輝度パターンは、１ブロック内の輝度変化の典型的な形状を、予め１６種類に分類したものである。本実施例では、このように、基本エッジパターンを１６種類に分類するものとするが、より多くのパターンに分類するものとしてもよい。
【００７２】
エッジパターンテーブル１８１には、更に、基本エッジパターンに対応付けて、左側エッジ幅ＬＷと、中央エッジ幅ＭＷと、右側エッジ幅ＲＷという３種類のパラメータが記録されている。左側エッジ幅ＬＷは、輝度パターンの左側に存在する平坦部の幅を表しており、右側エッジ幅ＲＷは、輝度パターンの右側に存在する平坦部の幅を表している。また、中央エッジ幅ＭＷは、左側エッジ幅ＬＷと右側エッジ幅ＲＷとに挟まれる勾配部分の幅を表している。
【００７３】
なお、図示を省略しているが、このエッジパターンテーブル１８１には、「Ａ１」から「Ａ１６」までの基本エッジパターンに加え、これらの基本エッジパターンを左右反転させたエッジパターンがパターン番号Ｂ１〜Ｂ１６に定義されており、上下反転させたエッジパターンがパターン番号Ｃ１〜Ｃ１６に定義されている。また、「Ａ１」から「Ａ１６」までの基本エッジパターンを上下および左右に反転させたエッジパターンがパターン番号Ｄ１〜Ｄ１６に定義されている。つまり、全体で、６４種類の基本エッジパターンがこのエッジパターンテーブル１８１に定義されている。
【００７４】
図９のステップＳ３５０では、ステップＳ３３０で正規化を行った各係数値Ｆｒ０１〜Ｆｒ０７と、基本エッジパターンを構成する各係数値Ｆｂ０１〜Ｆｂ０７との差の絶対値の合計ＳＤを下記式（３）に従って算出し、この合計値ＳＤが最小となる基本エッジパターンをエッジパターンテーブル１８１の中から選択する。そして、選択された基本エッジパターンについての合計値ＳＤが、所定の閾値よりも小さければ、形状が近似する基本エッジパターンが検索されたと判断する（ステップＳ３５０：Ｙｅｓ）。一方、上述した演算によって得られた値ＳＤが、所定の閾値よりも大きい場合には、近似する基本エッジパターンが検索されなかったと判断し（ステップＳ３５０：Ｎｏ）、分析対象のブロックを「ぼやけブロック」であると判定する（ステップＳ３２０）。
【００７５】
ＳＤ＝Σ｜Ｆｒ０ｉ−Ｆｂ０ｉ｜    （ｉ＝１〜７）    ・・・（３）
【００７６】
上記ステップＳ３５０において、形状が近似する基本エッジパターンが検索されたと判断されれば、ＣＰＵ１６０は、その基本エッジパターンに対応付けられた中央エッジ幅ＭＷをエッジパターンテーブル１８１から取得する（ステップＳ３６０）。そして、その中央エッジ幅ＭＷが、所定のぼやけ幅閾値よりも狭いかを判断する（ステップＳ３７０）。この判断の結果、中央エッジ幅ＭＷがぼやけ幅閾値よりも狭ければ（ステップＳ３７０：Ｙｅｓ）、分析対象のブロックが「合焦ブロック」であると判定する（ステップＳ３８０）。中央エッジ幅ＭＷが狭ければ、そのブロック内の輝度変化が急峻であり、被写体の輪郭がはっきりとブロック内に現れていると判断できるためである。これに対して、中央エッジ幅ＭＷがぼやけ幅閾値よりも広ければ（ステップＳ３７０：Ｎｏ）、輪郭がぼやけていると判断できるため、そのブロックを「ぼやけブロック」であると判定する（ステップＳ３２０）。こうして分析対象のブロックが、「合焦ブロック」であるか「ぼやけブロック」であるかを判定すると、ＣＰＵ１６０は、上述した一連の係数ぼやけ判定処理を終了して、処理を図７のぼやけ判定処理に戻す。
【００７７】
なお、上述した係数ぼやけ分析処理は、ブロック内の水平方向と垂直方向とについてそれぞれ行われるが、少なくともいずれか一方のぼやけ分析処理において、「合焦ブロック」と判定されれば、他方の分析処理で「ぼやけブロック」と判定されたとしてもそのブロックは、合焦ブロックであると判定するものとする。
【００７８】
ところで、上述した係数ぼやけ判定処理では、ブロック毎にぼやけの有無を判別するものとしたが、これに対して、隣接したブロック間のぼやけ幅を累積していくことで、ブロックを跨って存在するぼやけを検出することもできる。
【００７９】
図１１ないし図１３は、ぼやけ幅を累積する概念を示す説明図である。ぼやけ幅を累積するにあたっては、図９に示した係数ぼやけ分析処理のステップＳ３５０によって、ブロック毎に近似する基本エッジパターンを選択した後に、ＣＰＵ１６０は、隣接ブロック同士でエッジパターンの傾き方向が一致するかを判断する。図１１には、隣接ブロック同士のエッジパターンの傾き方向が一致する例を示し、図１２には、一致しない例を示している。
【００８０】
図１１のように隣接ブロック同士の傾き方向が一致すれば、そのエッジパターン同士は、画像中において、同じぼやけ部分を形成している場合がある。そのため、ＣＰＵ１６０は、現在注目しているブロックの右側エッジ幅ＲＷとこれに隣接しているブロックの左側エッジ幅ＬＷの加算値が、図１３に示すように、所定の連結誤差閾値内であるかを判定し、連結誤差閾値内であれば、これらのブロックのエッジパターンは、同じぼやけ部分を形成していると判断できる。そこで、このような場合には、ＣＰＵ１６０は、図９のステップＳ３６０において、両ブロックのぼやけ幅を累積加算し、ブロックを跨ったぼやけ幅を算出する。そして、ステップＳ３７０において、累積加算したぼやけ幅と所定のぼやけ幅閾値とを比較して、そのブロックが合焦ブロックであるかぼやけブロックであるかを判断する。
【００８１】
なお、上述した処理をブロックの連なり（横方向および縦方向）に沿って逐次実行していけば、２つの隣接ブロックだけではなく、複数のブロックに跨って存在するぼやけの幅を算出することができる。従って、図９のステップＳ３７０では、その結果算出されたぼやけ幅と、所定のぼやけ幅閾値とを比較すれば、ブロックのサイズを超えるぼやけ幅に基づき、分析対象のブロックが合焦ブロックかぼやけブロックかを判断することができる。なお、複数のブロックにぼやけ幅が跨る場合には、ぼやけの途中部分に位置するブロックについては、一律にぼやけブロックであると判断し、ぼやけの終端に位置するブロックに累積されたぼやけ幅に基づき、そのブロックが合焦ブロックであるか否かを判断するものとする。
【００８２】
このように、ぼやけ幅を累積するものとすれば、画像内のぼやけ部分が１ブロックのサイズを超えるような高解像度な画像においても、精度良く、ぼやけの有無を判断することができる。例えば、６００万画素（約３０００画素×２０００画素）の画像を、Ｌ版サイズ（約１３ｃｍ×約９ｃｍ）の印刷用紙に印刷すると、８×８画素からなる１ブロックの実サイズは、０．３５ｍｍ×０．３５ｍｍほどの大きさになる。そのため、１ブロックのサイズ内でぼやけの有無を判定することが困難であるが、上述した方法によってぼやけ幅を累積していけば、０．３５ｍｍを超えるぼやけ幅についても検出することが可能となり、精度良く画像がぼやけているかを判断することができる。
【００８３】
ここで、説明を図７のぼやけ判定処理に戻す。上述した係数ぼやけ判定処理（ステップＳ１１０）によって、帯領域内の各ブロックについてそれぞれ「ぼやけブロック」であるか「合焦ブロック」であるかを判定すると、次に、ＣＰＵ１６０は、図８に示すように、帯領域を横方向に複数の領域（以下、かかる領域を「ウィンドウ領域」という）に区分し、それぞれのウィンドウ領域について、その中に含まれる合焦ブロックの数を集計して、その集計値が、所定数以上となるウィンドウ領域を抽出する（ステップＳ１２０）。ウィンドウ領域の大きさとしては、例えば、Ｌ版の印刷用紙において、実用的に合焦か否かを判断可能な１ｃｍ×１ｃｍ相当の大きさとすることができる（６００万画素の画像をＬ版の用紙に印刷するものとすると、３０×３０ブロック程度の大きさ）。
【００８４】
上記ステップＳ１２０において、該当するウィンドウ領域が抽出されれば（ステップＳ１３０：Ｙｅｓ）、そのウィンドウ領域は、合焦ブロックを多く含むことから、合焦している領域であると推測できる。そこで、ＣＰＵ１６０は、輝度ぼやけ判定部１６４を用いて、以下のステップＳ１４０〜Ｓ１７０に係る処理を実行することで、ウィンドウ領域内の輝度値に基づき、より厳密なぼやけの判定を行う。
【００８５】
すなわち、まず、ＣＰＵ１６０は、ステップＳ１２０で抽出された１つ目のウィンドウ領域内のＤＣＴ係数を、ＪＰＥＧデコーダ１６３を用いてデコードし、ビットマップ形式のデータに変換する（ステップＳ１４０）。
【００８６】
ウィンドウ領域内のデータをビットマップ形式に変換すると、ＣＰＵ１６０は、そのウィンドウ領域内の上下方向、左右方向、および、斜め方向の各方向別に各画素の輝度値に基づき、そのウィンドウ領域内に存在するエッジの数およびエッジ幅の検出を行う（ステップＳ１５０）。なお、ビットマップ形式のデータは、Ｒ，Ｇ，Ｂ各色の画素値によって表されるため、ＣＰＵ１６０は、この検出処理に先立ち、これらの値から、周知の演算式である下記式（４）によって輝度値Ｌを求める。
【００８７】
輝度値Ｌ＝（0.298912＊Ｒ＋0.586611＊Ｇ＋0.114478＊Ｂ）  ・・・（４）
【００８８】
図１４は、輝度値に基づいてエッジ幅およびエッジ数を検出する概念を示す説明図である。ここでは、図中に「エッジ検出方向」と示した直線上に存在するエッジを検出する場合について説明する。図１４内に示した各格子は、ウィンドウ領域内の各画素を表しており、それぞれが輝度値を有している。
【００８９】
「エッジ検出方向」と示した直線上の各画素の上には、それぞれ、矢印を付している。この矢印の方向は、それぞれ各画素の輝度勾配の方向を示している。例えば、図中に示した画素Ｄの輝度勾配のベクトル量Ａは、その周囲に隣接する画素の輝度値を図示するようにＬ１，Ｌ２，Ｌ３，Ｌ４とすれば、下記式（５）によって算出することができる。
【００９０】
Ａ＝（（Ｌ３−Ｌ２）／２，（Ｌ４−Ｌ１）／２）  ・・・（５）
【００９１】
上記ステップＳ１５０では、エッジ検出方向の直線上に位置する各画素の輝度勾配と、エッジ検出方向とのなす角θが所定の角度（例えば、８０°）以下である画素が続く場合に、その連続した画素群を、１つのエッジであると検出し、その画素の続く長さをエッジ幅として検出する。ただし、輝度勾配がゼロ、すなわち、ベクトル量Ａが（０，０）の場合には、その画素はエッジを構成しないものとする。もちろんそのベクトルの大きさが予め設定した値以下の場合にも、エッジを構成しないものとしてもよい。なお、エッジ検出方向が、図１４のように、水平（あるいは垂直）から４５°に傾いていれば、その画素の続く長さに、２の平方根（ルート２）を乗じて得た値が、エッジ幅となる。このようにしてエッジの検出を行うと、図１４の場合には、図中、「エッジ幅」と示した部分が、１つのエッジとして検出され、その幅は、画素数「４」に、ルート２を乗じて得た値、即ち、約５．６６と検出される。なお、上述した輝度勾配とエッジ検出方向とのなす角θは、エッジ検出方向のベクトル量を「Ｂ」とすると（図１４の場合には、Ｂ＝（１，１））、ベクトルの内積によって下記式（６）によって求めることができる。
【００９２】
ｃｏｓθ＝（Ａ・Ｂ）／（｜Ａ｜・｜Ｂ｜）  ・・・（６）
【００９３】
上記ステップＳ１５０では、更に、検出されたエッジを構成する各画素について、その輝度勾配とエッジ検出方向とのなす角θの平均が、４５°以下である場合に、そのエッジは、そのエッジ検出方向と同じ方向を向くものであると判断する。つまり、各画素の輝度勾配とエッジ検出方向とのなす角θがすべて８０°以内に収まったとしても、その平均値が４５°を超えていれば、現在のエッジ検出方向のエッジとしてカウントしないものとする。このようにすることで、各方向別にエッジの有無を精度良く判定することができる。
【００９４】
図１４では、１つの検出方向について、１つの直線上に存在するエッジを検出しているが、その検出方向に存在するエッジは、必ずこの直線上に存在するとは限らない。そこで、本実施例では、より広い範囲でエッジの検出を行うため、１つの検出方向につき、２ないし３の直線上において上述した検出処理を繰り返し行う。
【００９５】
図１５は、１つのウィンドウ領域内においてエッジの検出を行う方向と検出を行う直線の位置とを示す説明図である。図１５に示すように、本実施例においてエッジの検出を行う方向は、（１）下から上、（２）左下から右上、（３）左から右、（４）左上から右下、（５）上から下、（６）右上から左下、（７）右から左、（８）右下から左上、の計８方向である。また、図示するように、水平方向あるいは垂直方向のエッジの検出は、１つのウィンドウ領域において異なる直線上で２回行い、斜め方向のエッジの検出は、１つのウィンドウ領域において異なる直線上で３回行う。このように水平・垂直方向と斜め方向とで検出の回数を異なるものとしたのは、エッジの検出を行う画素数を統一するためである。例えば、図１５に示したウィンドウ領域が６×６の画素で構成されているとすると、図の（１）の場合には、図中に破線で示すように、６画素×２本で計１２画素についてエッジの検出を行うことになり、（２）の場合には、３画素＋６画素＋３画素で、やはり、計１２画素についてエッジの検出を行うことになる。なお、本実施例では、２ないし３の直線上においてエッジの検出を行うものとしたが、それ以上の数の直線上においてエッジの検出を行うものとしても構わない。
【００９６】
上記ステップＳ１５０では、図１５に示したように８方向についてエッジの数を検出すると、図１５の（１）と（５）、（２）と（６）、（３）と（７）、（４）と（８）についてそれぞれエッジの数を合計する。つまり、水平方向、垂直方向、斜め４５°方向、斜めマイナス４５°方向の４方向について、それぞれエッジの数を求める。そして、ＣＰＵ１６０は、この４方向のすべてにおいて、エッジの数が所定の閾値（例えば、４個）未満であるかを判断する（ステップＳ１６０）。
【００９７】
上記ステップＳ１６０において、各方向のいずれもが所定の閾値以上の数のエッジを含んでいると判断すれば（ステップＳ１６０：Ｎｏ）、ＣＰＵ１６０は、各方向毎に、それぞれ含まれているエッジの幅の平均値を算出する。そして、算出された４つの平均値が、すべて所定の閾値以下であるかどうかを判断する（ステップＳ１７０）。その結果、この４つの平均値が、すべて所定の閾値以下であれば、その画像は、「合焦画像」であると判断し（ステップＳ１８０）、当該ぼやけ判定処理を終了する。この場合には、４方向のすべてにおいて、十分な個数のエッジを含んでおり、更に、そのエッジの幅も十分に小さく、そのウィンドウ領域は合焦していると判断できるためである。また、画像全体のうち、１箇所でもウィンドウ領域が合焦していれば、その画像の中のどこかにピントが合っている正常な画像であると判断できるため、他のウィンドウ領域や帯領域についてぼやけの判定を行うことなく、上記ステップＳ１８０では、「合焦画像」であると判断する。
【００９８】
上記ステップＳ１６０において、４方向のいずれもが、閾値未満の数のエッジしか含んでいないと判断されれば（ステップＳ１６０：Ｎｏ）、そのウィンドウ領域は、十分な数のエッジを含んでいないことになるため、ぼやけていると判断することができる。そのため、ＣＰＵ１６０は、現在のウィンドウ領域についてのぼやけの判定処理を終了し、上記ステップＳ１２０の処理によって他のウィンドウ領域が抽出されていないかを判断する（ステップＳ１９０）。その結果、他のウィンドウ領域が抽出されていれば（ステップＳ１９０：Ｎｏ）、処理をステップＳ１４０に戻して、そのウィンドウ領域について、ビットマップ形式へのデコードを行い、輝度値に基づくぼやけ判定処理を行う。
【００９９】
ステップＳ１２０の処理によって抽出されたすべてのウィンドウ領域について上述した輝度値に基づくぼやけの判定を完了した場合（ステップＳ１９０：Ｙｅｓ）、もしくは、ステップＳ１２０において、合焦ブロックが所定数以上含まれるウィンドウ領域が１つも抽出されなかった場合には（ステップＳ１３０：Ｎｏ）、ＣＰＵ１６０は、現在の帯領域が、画像の終端に位置するかを判断する（ステップＳ２００）。その結果、現在の帯領域が画像の終端であれば（ステップＳ２００：Ｙｅｓ）、合焦しているウィンドウ領域が１つも存在していなかったことになるので、現在の画像を、「ぼやけ画像」と判定する（ステップＳ２１０）。これに対して、現在の帯領域が、画像の終端でなければ（ステップＳ２００：Ｎｏ）、ＣＰＵ１６０は、処理をステップＳ１００に戻して、次の帯領域についてハフマン復号および逆量子化を行い、上述した一連の処理を繰り返す。
【０１００】
以上で説明したぼやけ判定処理が完了すれば、ＣＰＵ１６０は、処理を図６に示した印刷処理に戻す。こうして、メモリカードＭＣに記録されたすべてのＪＰＥＧデータに対して上述したぼやけ判定処理を行えば、ぼやけている画像を排除して、合焦しているＪＰＥＧデータのみをユーザに提示することができる。
【０１０１】
なお、上記ぼやけ判定処理のステップＳ１４０，Ｓ１５０では、ＪＰＥＧデータを、一旦、ビットマップ形式のデータにデコードしてから、ＲＧＢ値に基づき輝度値Ｌを求めるものとしたが、ＪＰＥＧデコーダ１６３の逆ＤＣＴ変換部１９３によって得られるデータは、輝度値を含むＹＣｂＣｒ形式のデータであるため、この出力値「Ｙ」をそのまま用いるものとしてもよい。このようにすれば、ビットマップ形式までデコードする必要がないので、処理速度を向上させることができる。
【０１０２】
Ｄ．効果：
以上で説明した本実施例の印刷装置１００によれば、メモリカードＭＣ等に記録されたＪＰＥＧデータを帯領域毎に分割してＲＡＭ１７０に記憶するため、ＲＡＭ１７０の記憶容量を低減することができる。
【０１０３】
また、本実施例では、輝度値に基づくぼやけの判定に先立ち、ＲＡＭ１７０に記憶した帯領域内のＤＣＴ係数に基づき、ブロック毎にぼやけの判定を行う。従って、帯領域全体についてデコードすることなく、各ブロックがぼやけているか否かを簡易的に判別することができるので、ＣＰＵ１６０の処理負担を軽減することができる。
【０１０４】
また、本実施例では、ＤＣＴ係数を用いたぼやけの判定処理によって合焦ブロックと判断されたブロックが多く含まれるウィンドウ領域についてのみ、ビットマップ形式までデコードを行う。そのため、ビットマップ形式までデコードする範囲を制限することができるので、ＣＰＵ１６０の処理負担を軽減することができる。
【０１０５】
また、本実施例では、ＤＣＴ係数によるぼやけの判定に加え、ビットマップ形式に変換された領域について、更に、その輝度値を用いてぼやけの有無を判断する。そのため、精度良く、ぼやけの有無を判断することができる。
【０１０６】
更に、本実施例では、１箇所でもウィンドウ領域が合焦していると判断されれば、画像全体が合焦画像であると判断するため、ぼやけの判定を高速に行うことが可能になる。
【０１０７】
以上、本発明の一実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、上述した各種処理をコンピュータが実行する構成とすれば、コンピュータによってぼやけの判定を行うことが可能になる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施例としての印刷装置１００の外観を示す説明図である。
【図２】印刷装置１００の内部構成を示す説明図である。
【図３】ＪＰＥＧデータ内にブロック毎にデータが記録されている様子を示す説明図である。
【図４】ＪＰＥＧデコーダ１６３の詳細な構成を示す説明図である。
【図５】ＤＣＴ係数の配列を示す説明図である。
【図６】印刷処理のフローチャートである。
【図７】ぼやけ判定処理のフローチャートである。
【図８】帯領域の概念を示す説明図である。
【図９】係数ぼやけ判定処理のフローチャートである。
【図１０】エッジパターンテーブル１８１の一例を示す説明図である。
【図１１】ぼやけ幅を累積する概念を示す説明図である。
【図１２】ぼやけ幅を累積する概念を示す説明図である。
【図１３】ぼやけ幅を累積する概念を示す説明図である。
【図１４】輝度値に基づいてエッジ幅およびエッジ数を検出する概念を示す説明図である。
【図１５】１つのウィンドウ領域内においてエッジの検出を行う方向と検出を行う直線の位置とを示す説明図である。
【符号の説明】
【０１０９】
１００...印刷装置
１１０...スキャナ
１２０...メモリカードスロット
１４０...操作パネル
１４５...液晶ディスプレイ
１５０...制御ユニット
１６０...ＣＰＵ
１６１...画像データ参照部
１６２...係数ぼやけ判定部
１６３...ＪＰＥＧデコーダ
１６４...輝度ぼやけ判定部
１７０...ＲＡＭ
１８０...ＲＯＭ
１８１...エッジパターンテーブル
１９１...ハフマン復号部
１９２...逆量子化処理部
１９３...逆ＤＣＴ変換部
１９４...色空間変換部
２１０...キャリッジ
２１１...インクヘッド
２１２...インクカートリッジ
２２０...キャリッジモータ
２３０...モータ
２６０...駆動ベルト
２７０...プラテン
２８０...摺動軸
【図１】
2008123346.tif 000003
【図２】
2008123346.tif 000004
【図３】
2008123346.tif 000005
【図４】
2008123346.tif 000006
【図５】
2008123346.tif 000007
【図６】
2008123346.tif 000008
【図７】
2008123346.tif 000009
【図８】
2008123346.tif 000010
【図９】
2008123346.tif 000011
【図１０】
2008123346.tif 000012
【図１１】
2008123346.tif 000013
【図１２】
2008123346.tif 000014
【図１３】
2008123346.tif 000015
【図１４】
2008123346.tif 000016
【図１５】
2008123346.tif 000017