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