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