JP2008028886A - 画像処理装置およびぼやけ検出方法 - Google Patents
画像処理装置およびぼやけ検出方法 Download PDFInfo
- Publication number
- JP2008028886A JP2008028886A JP2006201586A JP2006201586A JP2008028886A JP 2008028886 A JP2008028886 A JP 2008028886A JP 2006201586 A JP2006201586 A JP 2006201586A JP 2006201586 A JP2006201586 A JP 2006201586A JP 2008028886 A JP2008028886 A JP 2008028886A
- Authority
- JP
- Japan
- Prior art keywords
- image
- block
- blur
- processing apparatus
- image processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】画像のぼやけを高速に検出する。
【解決手段】プリンタ100は、JPEGデータを入力すると、その画像の上部20%の領域をスキップ領域として設定する。そして、このスキップ領域を除く領域のJPEGデータに対して、ハフマン復号および逆量子化を行ってDCT係数を求め、このDCT係数に基づき、ブロック内の画像がぼやけているか否かを判定する。そして、1カ所でも合焦しているブロックが検出されれば、その画像はぼやけていないと判定する。
【選択図】図7
【解決手段】プリンタ100は、JPEGデータを入力すると、その画像の上部20%の領域をスキップ領域として設定する。そして、このスキップ領域を除く領域のJPEGデータに対して、ハフマン復号および逆量子化を行ってDCT係数を求め、このDCT係数に基づき、ブロック内の画像がぼやけているか否かを判定する。そして、1カ所でも合焦しているブロックが検出されれば、その画像はぼやけていないと判定する。
【選択図】図7
Description
本発明は、画像のぼやけを検出する技術に関する。
近年、デジタルスチルカメラが普及し、これに使用されるメモリカードの容量も増大している。そのため、一般のユーザが、画像を大量に保有する場合が増えている。デジタルスチルカメラは、フィルム代が不要であり、気軽に撮影を行えることから、被写体ブレや手ブレ等を意識することなく撮影が行われることが多い。従って、被写体ブレや手ブレに起因して画像にぼやけが生じている場合が比較的多く、撮影された画像をプリンタによって印刷しようとすると、正常な画像を選別する作業が事前に必要であった。
大量の画像の中から正常な画像を選別する作業は、非常に煩雑な作業である。そこで、このような問題に対処するために、ユーザが画像を印刷するのに先立ち、ぼやけが生じている画像を印刷の対象から自動的に排除する技術が望まれている。こうしたぼやけの検出技術に関連し、下記特許文献1には、撮像した画像を8画素×8画素を単位とする複数のブロックに分割して離散コサイン変換し、変換後の各ブロックについて周波数分析を行い、ブロック毎に像のシャープさ(逆に言えば、ぼやけ度合い)を判別する技術が記載されている。
しかし、近年のデジタルスチルカメラで撮影される画像の解像度は、数百万ないし1000万画素もの高解像度であるため、全てのブロックについて周波数分析を行ってシャープであるかぼやけているかを判別したのでは、演算量が膨大となり処理速度が低下する。このような問題は、特に、プリンタやデジタルカメラ、フォトビューワー等といった、CPUパワーに限界のある小型機器でぼやけの検出を行う場合に看過できない問題となる。
ぼやけの検出に伴う上述した種々の問題を考慮し、本発明が解決しようとする課題は、画像のぼやけを高速に検出することにある。
上記課題を踏まえ、本発明の画像処理装置を次のように構成した。すなわち、
複数の画素からなるブロックの集合として構成された画像のぼやけを検出する画像処理装置であって、
前記ブロックを単位として画素値を周波数領域に変換して得られた係数が該ブロック毎に記録されて構成された画像データを入力する画像データ入力部と、
前記入力した画像データが表す画像の所定の領域に、ぼやけの検出の対象としないスキップ領域を設定するスキップ領域設定部と、
前記入力した画像データを構成する各ブロックが、前記スキップ領域に属するか否かを判断する領域判断部と、
前記スキップ領域に属しないと判断されたブロックの前記係数に基づき、前記画像のぼやけを判定するぼやけ判定部と
を備えることを要旨とする。
複数の画素からなるブロックの集合として構成された画像のぼやけを検出する画像処理装置であって、
前記ブロックを単位として画素値を周波数領域に変換して得られた係数が該ブロック毎に記録されて構成された画像データを入力する画像データ入力部と、
前記入力した画像データが表す画像の所定の領域に、ぼやけの検出の対象としないスキップ領域を設定するスキップ領域設定部と、
前記入力した画像データを構成する各ブロックが、前記スキップ領域に属するか否かを判断する領域判断部と、
前記スキップ領域に属しないと判断されたブロックの前記係数に基づき、前記画像のぼやけを判定するぼやけ判定部と
を備えることを要旨とする。
本発明の画像処理装置によれば、ぼやけの検出の対象としないスキップ領域以外の領域に属するブロックの係数に基づいて画像のぼやけを判定する。従って、画像全体についてぼやけの判定を行うよりも短時間でぼやけの判定を行うことが可能になる。
上記構成の画像処理装置において、
前記スキップ領域設定部は、前記画像データが表す画像の最上部から所定の幅を有する領域に前記スキップ領域を設定するものとしてもよい。
前記スキップ領域設定部は、前記画像データが表す画像の最上部から所定の幅を有する領域に前記スキップ領域を設定するものとしてもよい。
風景や人物を撮影した場合、画像の上部は、空や背景などが撮影されていることが多い。このような領域は、通常、ピントが合っていない領域であるため、かかる領域を上記構成のように最初からスキップ領域として設定すれば、スキップ領域以外の被写体が撮影されている部分に基づき、効率よくぼやけの判定を行うことが可能になる。前記所定の幅としては、例えば、前記画像データの最上部から該画像の高さに対して15%から25%までの範囲内(好ましくは20%)で設定することができる。
上記構成の画像処理装置において、
前記画像データには、該画像が撮影された際の撮影条件を示す情報が記録されており、
前記スキップ領域設定部は、前記撮影条件に応じて前記スキップ領域の大きさを設定するものとしてもよい。
前記画像データには、該画像が撮影された際の撮影条件を示す情報が記録されており、
前記スキップ領域設定部は、前記撮影条件に応じて前記スキップ領域の大きさを設定するものとしてもよい。
このような構成によれば、画像撮影時の撮影条件に応じて柔軟にスキップ領域を設定することができる。
かかる構成の画像処理装置において、
前記撮影条件とは、絞り値、シャッタスピード、焦点距離の少なくともいずれか1つであり、
前記スキップ領域設定部は、前記絞り値が小さいほど、または、前記シャッタスピードが遅いほど、または、前記焦点距離が長いほど、前記スキップ領域を狭く設定するものとすることができる。
前記撮影条件とは、絞り値、シャッタスピード、焦点距離の少なくともいずれか1つであり、
前記スキップ領域設定部は、前記絞り値が小さいほど、または、前記シャッタスピードが遅いほど、または、前記焦点距離が長いほど、前記スキップ領域を狭く設定するものとすることができる。
小さな絞り値、遅いシャッタスピード、長い焦点距離といった撮影条件によって撮影された画像には、手ブレや被写体ブレによってぼやけが発生している可能性が高い。従って、上記構成によれば、ぼやけが生じている可能性の高い画像について、スキップ領域を狭く設定することができるので、このような画像について、より広い領域に基づき、精度良く、ぼやけの判定を行うことが可能になる。
上記構成の画像処理装置において、
前記画像データは、JPEG規格に基づいて生成されたデータであり、
前記各ブロックを構成する係数は、前記JPEG規格に基づくハフマン符号化によって可変長のビット列に圧縮されて前記画像データに記録されており、該ビット列には、該ビット列のデータ長を表すデータ長パラメータが記録されており、
前記領域判断部は、前記ブロックが前記スキップ領域に属する場合に、該ブロックの前記ビット列中に記録された前記データ長パラメータに基づき、該ブロックのデータを読み飛ばす手段を備えるものとしてもよい。
前記画像データは、JPEG規格に基づいて生成されたデータであり、
前記各ブロックを構成する係数は、前記JPEG規格に基づくハフマン符号化によって可変長のビット列に圧縮されて前記画像データに記録されており、該ビット列には、該ビット列のデータ長を表すデータ長パラメータが記録されており、
前記領域判断部は、前記ブロックが前記スキップ領域に属する場合に、該ブロックの前記ビット列中に記録された前記データ長パラメータに基づき、該ブロックのデータを読み飛ばす手段を備えるものとしてもよい。
JPEG規格では、画像データをデコードする際に、一般的に、(1)ハフマン復号、(2)逆量子化、(3)逆DCT変換、(4)色変換、の各処理を順番に行う必要があるが、上記構成によれば、ハフマン復号の処理の過程において、画像データ中のデータ長パラメータに基づき、スキップ領域内に属するブロックのデータを読み飛ばすことができる。このため、スキップ領域内のブロックについては、逆量子化や逆DCT変換等の処理が不要となり、ぼやけの判定を短時間に行うことが可能になる。
かかる構成の画像処理装置において、
前記各ブロックを構成する係数は、直流成分の係数と交流成分の係数とからなり、
前記データ長パラメータは、前記直流成分の係数のビット長を表すパラメータと、前記交流成分の係数うち、ゼロではない係数のビット長を表すパラメータとによって構成されているものとすることができる。
前記各ブロックを構成する係数は、直流成分の係数と交流成分の係数とからなり、
前記データ長パラメータは、前記直流成分の係数のビット長を表すパラメータと、前記交流成分の係数うち、ゼロではない係数のビット長を表すパラメータとによって構成されているものとすることができる。
このような構成であれば、直流成分の係数のビット長を表すパラメータと、交流成分の係数うち、ゼロではない係数のビット長を表すパラメータとに基づき、スキップ領域内に属するブロックのデータを効率よく読み飛ばすことができる。
上記構成の画像処理装置において、
前記画像データは、JPEG規格に基づいて生成されたデータであり、
前記領域判断部は、前記画像データに対して、ハフマン復号および逆量子化を行って前記各ブロックから前記係数を抽出した後に、該各ブロックが前記所定のスキップ領域に属するか否かを判断するものとしてもよい。
前記画像データは、JPEG規格に基づいて生成されたデータであり、
前記領域判断部は、前記画像データに対して、ハフマン復号および逆量子化を行って前記各ブロックから前記係数を抽出した後に、該各ブロックが前記所定のスキップ領域に属するか否かを判断するものとしてもよい。
このような構成であれば、逆DCT変換や色変換を行うことなく、逆量子化を行った段階で、各ブロックが前記所定のスキップ領域に属するか否かを判断するので、効率よくスキップ領域内のブロックを読み飛ばすことができる。
上記構成の画像処理装置において、
前記ブロック内の画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと該各エッジパターンが表す勾配の幅とが対応付けて記憶されたエッジパターン記憶部と、
前記領域判断部によって前記スキップ領域に属しないと判断されたブロックについて、該ブロックから、所定方向の周波数成分を表す係数群を抽出する抽出部と、
前記抽出した係数群が表す勾配形状に近似する基本エッジパターンを前記エッジパターン記憶部から選出する選出部とを備え、
前記ぼやけ判定部は、前記選出された基本エッジパターンに対応付けられた前記勾配の幅と所定の閾値とを比較して、前記ブロック毎にぼやけの有無を判定し、ぼやけの生じていないブロックが少なくとも1つ存在する場合に、前記画像はぼやけていないと判定するものとしてもよい。
前記ブロック内の画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと該各エッジパターンが表す勾配の幅とが対応付けて記憶されたエッジパターン記憶部と、
前記領域判断部によって前記スキップ領域に属しないと判断されたブロックについて、該ブロックから、所定方向の周波数成分を表す係数群を抽出する抽出部と、
前記抽出した係数群が表す勾配形状に近似する基本エッジパターンを前記エッジパターン記憶部から選出する選出部とを備え、
前記ぼやけ判定部は、前記選出された基本エッジパターンに対応付けられた前記勾配の幅と所定の閾値とを比較して、前記ブロック毎にぼやけの有無を判定し、ぼやけの生じていないブロックが少なくとも1つ存在する場合に、前記画像はぼやけていないと判定するものとしてもよい。
このような構成であれば、入力した画像データに記録された周波数領域の係数を画素値に変換することなく、ぼやけの有無を判定することができるので、高速にぼやけの判定を行うことができる。また、ぼやけの生じていないブロックが少なくとも1つ検出されれば、それ以上、ブロック毎にぼやけの有無を判別する必要がないため、更に処理の高速化を図ることができる。
上記構成の画像処理装置において、
前記ぼやけ判定部は、隣接する前記ブロック間で、前記基本エッジパターンの勾配の方向が一致する場合に、前記勾配の幅を累積加算し、該累積加算された勾配の幅と、前記所定の閾値とを比較するものとしてもよい。
前記ぼやけ判定部は、隣接する前記ブロック間で、前記基本エッジパターンの勾配の方向が一致する場合に、前記勾配の幅を累積加算し、該累積加算された勾配の幅と、前記所定の閾値とを比較するものとしてもよい。
このような構成であれば、1つのブロックのサイズを超えるぼやけの幅を検出することができるので、高解像度な画像であっても、精度良く、ぼやけの判定を行うことが可能になる。なお、勾配の方向が一致するとは、勾配の角度までが厳密に一致することをいうのではなく、傾きの符号(プラスかマイナスか)が一致すれば、勾配の方向が一致するものとする。
上記構成の画像処理装置において、
更に、前記ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備えるものとしてもよい。
更に、前記ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備えるものとしてもよい。
このような構成によれば、ユーザは、撮影に成功した画像のみを確認することができる。ユーザに提示する方法としては、例えば、表示装置に画像を表示させるものとすることができる。その他、ぼやけていないと判定された画像の一覧を印刷してユーザに提示するものとしてもよい。
上記構成の画像処理装置において、
更に、前記提示された画像の中からユーザによって選択された画像を印刷する印刷部を備えるものとしてもよい。
更に、前記提示された画像の中からユーザによって選択された画像を印刷する印刷部を備えるものとしてもよい。
このような構成によれば、ユーザは、手ブレや被写体ブレによって画像にぼやけの生じている画像を意識することなく、撮影に成功した画像の中から所望の画像を容易に印刷することができる。
なお、本発明は、上述した画像処理装置としての構成のほか、コンピュータが画像のぼやけを検出するぼやけ検出方法や、画像のぼやけを検出するためのコンピュータプログラムとしても構成することができる。かかるコンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやCD−ROM、DVD−ROM、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
A.第1実施例:
(A1)プリンタの構成:
(A2)印刷処理:
(A3)ぼやけ判定処理:
(A4)ぼやけ分析処理:
B.第2実施例:
C.変形例:
A.第1実施例:
(A1)プリンタの構成:
(A2)印刷処理:
(A3)ぼやけ判定処理:
(A4)ぼやけ分析処理:
B.第2実施例:
C.変形例:
A.第1実施例:
(A1)プリンタの構成:
図1は、本願の画像処理装置の実施例としてのプリンタ100の外観を示す説明図である。プリンタ100は、いわゆる複合機タイプのプリンタであり、光学的に画像を読み込むスキャナ110や、画像データの記録されたメモリカードMCを挿入するためのメモリカードスロット120、デジタルカメラ等の機器を接続するUSBインタフェース130等を備えている。プリンタ100は、スキャナ110によって取り込んだ画像や、メモリカードMCから読み取った画像、USBインタフェース130を介してデジタルカメラから読み取った画像を印刷用紙Pに印刷することができる。また、プリンタケーブルやUSBケーブルによって接続された図示していないパーソナルコンピュータから入力した画像の印刷も行うことができる。
(A1)プリンタの構成:
図1は、本願の画像処理装置の実施例としてのプリンタ100の外観を示す説明図である。プリンタ100は、いわゆる複合機タイプのプリンタであり、光学的に画像を読み込むスキャナ110や、画像データの記録されたメモリカードMCを挿入するためのメモリカードスロット120、デジタルカメラ等の機器を接続するUSBインタフェース130等を備えている。プリンタ100は、スキャナ110によって取り込んだ画像や、メモリカードMCから読み取った画像、USBインタフェース130を介してデジタルカメラから読み取った画像を印刷用紙Pに印刷することができる。また、プリンタケーブルやUSBケーブルによって接続された図示していないパーソナルコンピュータから入力した画像の印刷も行うことができる。
プリンタ100は、印刷に関する種々の操作を行うための操作パネル140を備えている。操作パネル140の中央部には、液晶ディスプレイ145が備えられている。この液晶ディスプレイ145は、メモリカードMCやデジタルカメラなどから読み取った画像の表示や、プリンタ100の各種機能を利用する際のGUI(グラフィカルユーザインタフェース)の表示に利用される。
プリンタ100は、メモリカードMCやデジタルカメラ等から入力した複数の画像データの中から、ぼやけている画像(以下「ぼやけ画像」という)を排除して、ピントが1カ所でも合っている画像(以下、「合焦画像」という)のみを抽出し、液晶ディスプレイ145に表示する機能を有している。ユーザは、こうして液晶ディスプレイ145に表示された画像の中から、所望の画像を選択することで、印刷に適した画像のみを印刷することが可能となる。以下では、このぼやけ画像を排除する機能を実現するためのプリンタ100の構成および処理について詳細に説明する。
図2は、プリンタ100の内部構成を示す説明図である。図示するように、プリンタ100は、印刷用紙Pに印刷を行う機構として、インクカートリッジ212を搭載したキャリッジ210や、キャリッジ210を主走査方向に駆動するキャリッジモータ220、印刷用紙Pを副走査方向に搬送する紙送りモータ230等を備えている。
キャリッジ210は、シアン、マゼンタ、イエロ、ブラック、ライトシアン、ライトマゼンタの色を現す各インクに対応して、計6種類のインクヘッド211を備えている。キャリッジ210には、これらのインクが収容されたインクカートリッジ212が装着されており、インクカートリッジ212からインクヘッド211に供給されたインクは、図示しないピエゾ素子を駆動することで印刷用紙Pに吐出される。
キャリッジ210は、プラテン270の軸方向と並行に設置された摺動軸280に移動自在に保持されている。キャリッジモータ220は、制御ユニット150からの指令に応じて駆動ベルト260を回転させることで、プラテン270の軸方向と平行に、すなわち、主走査方向にキャリッジ210を往復運動させる。紙送りモータ230は、プラテン270を回転させることで、プラテン270の軸方向と垂直に印刷用紙Pを搬送する。つまり、紙送りモータ230は、キャリッジ210を相対的に副走査方向に移動させることができる。
プリンタ100は、上述したインクヘッド211やキャリッジモータ220、紙送りモータ230の動作を制御するための制御ユニット150を備えている。制御ユニット150には、図1に示したスキャナ110やメモリカードスロット120、USBインタフェース130、操作パネル140、液晶ディスプレイ145が接続されている。
制御ユニット150は、CPU160とRAM170とROM180とによって構成されている。ROM180には、プリンタ100の動作を制御するための制御プログラムや、後述する処理で用いられるエッジパターンテーブル181が記憶されている。CPU160はROM180に記憶された制御プログラムをRAM170に展開して実行することで図示する各機能部(161〜165)として動作する。
制御ユニット150は、CPU160によって実現される機能部として、画像データ入力部161、スキップ領域設定部162、JPEGデコーダ163、領域判断部164、ぼやけ判定部165を備えている。以下、これらの機能部の働きについて簡単に説明する(詳細な働きについては後述する各種処理内容を参照)。
画像データ入力部161は、メモリカードスロット120やUSBインタフェース130を介して、メモリカードMCやデジタルカメラからJPEG形式の画像データ(以下、「JPEGデータ」という)を入力する機能部である。JPEGデータには、8画素×8画素のMCU(Minimum Coded Unit)と呼ばれるブロック単位で画像が記録されている。この各ブロック内の画像データは、(1)RGB色空間からYCbCr色空間への画素値の色変換、(2)空間領域から周波数領域へのDCT(Discrete Cosine Transform)変換、(3)データの情報量を削減する量子化、(4)エントロピー符号化の一種であるハフマン符号化、が順次行われることでデータ量が圧縮されている。
図3は、JPEGデータ内に各ブロックのデータが記録されている順序の一例を示す説明図である。図示するように、JPEGデータには、8画素×8画素のブロックが、行毎に記録されている。なお、JPEGデータの中には、他の記録順によって各ブロックのデータが記録されているものもあるが、本実施例では、図3に示した記録順で各ブロックが記録されているものとする。
スキップ領域設定部162は、画像データ入力部161が入力した画像に対して、ぼやけの検出の対象としない領域(以下、「スキップ領域」という)を設定する機能部である。本実施例では、このスキップ領域として、画像の上部20%の幅の領域を設定する。
JPEGデコーダ163は、画像データ入力部161が入力したJPEGデータをデコードする機能部である。
図4は、JPEGデコーダ163の詳細な構成を示す説明図である。図示するように、JPEGデコーダ163は、ハフマン復号部191と、逆量子化処理部192と、逆DCT変換部193と、色空間変換部194とによって構成されている。
ハフマン復号部191は、ハフマン符号化によって「1」と「0」とによって表されたJPEGデータのビットストリームをハフマン復号する機能を有する。
逆量子化処理部192は、ハフマン復号部191によって復号したデータに対して、所定の量子化テーブルを用いて逆量子化を行い、各ブロック内の8×8個のDCT係数を求める機能部である。
逆DCT変換部193は、逆量子化処理部192によって求められたDCT係数に対して逆DCT変換を行い、YCbCr形式の画像データを求める機能部である。
色空間変換部194は、逆DCT変換部193によって得られたYCbCr形式のデータをRGB形式のビットマップデータに変換する機能部である。
ここで説明を図2に戻す。領域判断部164は、JPEGデータ内の各ブロックが、上述したスキップ領域に属するか否かを判断する機能部である。
ぼやけ判定部165は、領域判断部164によってスキップ領域に属しないと判断されたブロックのDCT係数に基づき、画像のぼやけを判断する機能を有する。つまり、本実施例では、図4に示したJPEGデコーダ163の逆量子化処理部192によって得られたDCT係数に基づき、ブロック毎にぼやけの判断を行う。
図5は、逆量子化処理部192によって取得されたDCT係数の配列を示す説明図である。図示するように、各ブロックからは、逆量子化が行われた段階で、F00からF77までの計64個のDCT係数が得られる。これらのうち、最も左上に存在する係数F00は、直流成分と呼ばれ、他の係数は、交流成分と呼ばれる。各係数は、図中の右側および下側に位置するものほど、周波数の高い値となる。ぼやけ判定部165は、図中に「第1の係数群」と記載した水平方向のみの交流成分である係数F01〜F07と、図中に「第2の係数群」と記載した垂直方向のみの交流成分である係数F10〜F70とを抽出して、これらの係数群に基づき、ぼやけの判定を行う。かかる判定処理の詳細については後述する。
(A2)印刷処理:
図6は、プリンタ100のCPU160が実行する印刷処理のフローチャートである。この印刷処理は、メモリカードMC等から画像データを入力して印刷を行うための処理である。
図6は、プリンタ100のCPU160が実行する印刷処理のフローチャートである。この印刷処理は、メモリカードMC等から画像データを入力して印刷を行うための処理である。
操作パネル140を用いたユーザの所定の操作に応じてこの印刷処理の実行が開始されると、まず、CPU160は、画像データ入力部161によってメモリカードスロット120に挿入されたメモリカードMCからJPEGデータを入力する(ステップS10)。なお、ここでは、メモリカードMCからJPEGデータを入力するものとするが、USBインタフェース130を介して接続されたデジタルカメラやコンピュータ等から入力するものとしてもよい。
JPEGデータを入力すると、CPU160は、入力したJPEGデータについてぼやけ判定処理を行う(ステップS20)。このぼやけ判定処理の詳細については後述する。
1つのJPEGデータについてぼやけ判定処理を終了すると、CPU160は、メモリカードMC内からすべてのJPEGデータを入力したかを判断する(ステップS30)。かかる処理によって、全てのJPEGデータを入力していないと判断した場合には(ステップS30:No)、処理をステップS10に戻し、次のJPEGデータを入力して、そのJPEGデータについてぼやけ判定処理を行う。
上記ステップS30によって、全てのJPEGデータを入力したと判断した場合には(ステップS30:Yes)、CPU160は、ステップS20によってぼやけていないと判定された画像、すなわち、合焦画像を、液晶ディスプレイ145に一覧表示する(ステップS40)。
合焦画像の一覧を液晶ディスプレイ145に表示すると、CPU160は、操作パネル140を介して、ユーザから、印刷の対象となる画像の選択を受け付ける(ステップS50)。そして、選択された画像を、インクヘッド211や紙送りモータ230、キャリッジモータ220等を制御して印刷する(ステップS60)。
以上で説明した印刷処理では、メモリカードMC内の全てのJPEGデータを入力するものとしたが、メモリカードMC内に複数のフォルダが生成されている場合には、ユーザによって指定されたフォルダついてのみJPEGデータを入力するものとしてもよい。
(A3)ぼやけ判定処理:
図7は、図6に示した印刷処理のステップS20で実行されるぼやけ判定処理のフローチャートである。この処理が開始されると、まず、CPU160は、スキップ領域設定部162を用いてスキップ領域を設定する(ステップS100)。スキップ領域とは、ぼやけの分析を省略する領域であり、本実施例では、画像の最上部から20%の幅をスキップ領域として設定するものとした。通常、被写体は画像の中心部に撮影されていることが多く、画像の上部には空や背景など、もともとピントが合っていないものが撮影されていることが多いためである。なお、本実施例では、画像の上部20%の範囲をスキップ領域に設定するものとしたが、15%から25%までの範囲内において設定することも可能である。
図7は、図6に示した印刷処理のステップS20で実行されるぼやけ判定処理のフローチャートである。この処理が開始されると、まず、CPU160は、スキップ領域設定部162を用いてスキップ領域を設定する(ステップS100)。スキップ領域とは、ぼやけの分析を省略する領域であり、本実施例では、画像の最上部から20%の幅をスキップ領域として設定するものとした。通常、被写体は画像の中心部に撮影されていることが多く、画像の上部には空や背景など、もともとピントが合っていないものが撮影されていることが多いためである。なお、本実施例では、画像の上部20%の範囲をスキップ領域に設定するものとしたが、15%から25%までの範囲内において設定することも可能である。
スキップ領域を設定すると、CPU160は、JPEGデコーダ163のハフマン復号部191、逆量子化処理部192を用いて、JPEGデータから8×8の1ブロック分のDCT係数を取得する(ステップS110)(図5参照)。
DCT係数を取得すると、CPU160は、領域判断部164を用いて、そのブロックがステップS100で設定したスキップ領域内であるかを判断する(ステップS120)。この結果、スキップ領域外であれば、そのブロックに対して、ぼやけ判定部165を用いてぼやけ分析処理を実行し(ステップS130)、スキップ領域内であれば、このぼやけ分析処理は実行しない。ぼやけ分析処理の詳細は後述するが、この処理では、分析対象のブロックが、合焦しているブロック(以下、「合焦ブロック」という)であるか、ぼやけているブロック(以下、「ぼやけブロック」という)であるかが分析結果として出力される。
CPUは、上記ステップS130においてぼやけ分析処理を行うと、その分析の結果、現在のブロックが合焦ブロックであると判定されたか否かを判断する(ステップS140)。その結果、現在のブロックが合焦ブロックであると判断されれば(ステップS140:Yes)、現在、ぼやけの判定を行っている画像を、「合焦画像」であると判定し(ステップS150)、上述した一連のぼやけ判定処理を終了する。つまり、画像内で1カ所でも合焦しているブロックが検出された場合には、ぼやけ判定処理を終了し、その画像自体が合焦画像であると判断するのである。
これに対して、現在のブロックが合焦ブロックではなく、ぼやけブロックと判定されれば(ステップS140:No)、CPU160は、JPEGデータ内に、次にデコードすべきブロックがあるかを判断する(ステップS160)。そして、次のブロックが存在すれば(ステップS160:Yes)、上記ステップS110に処理を戻して、次のブロックからDCT係数を取得し、上述した一連の処理を行う。一方、次のブロックが存在しなければ(ステップS160:No)、現在、ぼやけの判定を行っている画像を「ぼやけ画像」であると判定し(ステップS170)、上述した一連のぼやけ判定処理を終了する。
(A4)ぼやけ分析処理:
図8は、図7のステップS130で実行されるぼやけ分析処理のフローチャートである。このぼやけ分析処理は、現在入力しているブロックが「合焦ブロック」であるか「ぼやけブロック」であるかを分析するための処理である。このぼやけ分析処理は、ブロックの水平方向と垂直方向についてそれぞれ同様の処理が実行されるため、以下では、特記しない限り、水平方向のぼやけ分析処理を行う場合について説明する。
図8は、図7のステップS130で実行されるぼやけ分析処理のフローチャートである。このぼやけ分析処理は、現在入力しているブロックが「合焦ブロック」であるか「ぼやけブロック」であるかを分析するための処理である。このぼやけ分析処理は、ブロックの水平方向と垂直方向についてそれぞれ同様の処理が実行されるため、以下では、特記しない限り、水平方向のぼやけ分析処理を行う場合について説明する。
この処理が実行されると、CPU160は、まず、ぼやけ判定処理(図7参照)のステップS110で取得した8×8個のDCT係数の中から、図5に示した水平方向の交流成分である係数群F01〜F07(垂直方向のぼやけ分析処理にあっては、係数群F10〜F70)を取得する(ステップS200)。
係数群を取得すると、CPU160は、下記式(1)に基づき、取得した各係数の絶対値の和Sを求め、この値が、所定の平坦閾値を超えるかを判断する(ステップS210)。
S=Σ|F0i| (i=1〜7) ・・・(1)
上記ステップS210において、和Sが所定の平坦閾値以下であると判断されれば(ステップS210:No)、そのブロックの係数が表す輝度変化が平坦であるとみなし、分析対象のブロックは、「ぼやけブロック」であると判定する(ステップS220)。
一方、ステップS210において、和Sが所定の平坦閾値を超えると判断されれば(ステップS210:Yes)、そのブロックには、何らかの輝度変化があると判断できるため、CPU160は、ブロック内のぼやけの幅を求めるため、まず、取得した各係数を下記式(2)によって正規化する(ステップS230)。この正規化処理によれば、正規化後の各係数値Fr01〜Fr07は、係数群の絶対値の和Sで、それぞれの係数値F01〜F07を除算した値となる。
Fr0j=F0j/S (j=1〜7) ・・・(2)
次に、CPU160は、ROM180に記憶されたエッジパターンテーブル181を参照して(ステップS240)、正規化後の各係数値Fr01〜Fr07によって表される勾配形状がいずれかの基本エッジパターンに近似するかを判断する(ステップS250)。
図9は、エッジパターンテーブル181の一例を示す説明図である。このエッジパターンテーブル181には、「A1」から「A16」までのパターン番号(図の1列目)に対して16種類の基本エッジパターン(図の3列目)が対応付けて記録されている。基本エッジパターンの横軸は、ブロック内の係数の位置(F01〜F07もしくはF10〜F70)を表しており、縦軸は、正規化後の係数値Frを表している。つまり、基本エッジパターンは、7つの係数値からなるデータである。
各基本エッジパターンは、図の2列目に示した輝度パターンに基づき生成されている。すなわち、図の2列目に示した輝度パターンをDCT変換して正規化したものが図の3列目に示す基本エッジパターンとなる。なお、図中の輝度パターンは、実際には、エッジパターンテーブル181には記録されておらず、理解の便のために記載している。各輝度パターンは、1ブロック内の輝度変化の典型的な形状を、予め16種類に分類したものである。本実施例では、このように、基本エッジパターンを16種類に分類するものとするが、より多くのパターンに分類するものとしてもよい。
エッジパターンテーブル181には、更に、基本エッジパターンに対応付けて左側エッジ幅LWと、中央エッジ幅MWと、右側エッジ幅RWという3種類のパラメータが記録されている。左側エッジ幅LWは、輝度パターンの左側に存在する平坦部の幅を表しており、右側エッジ幅RWは、輝度パターンの右側に存在する平坦部の幅を表している。また、中央エッジ幅MWは、左側エッジ幅LWと右側エッジ幅RWとに挟まれる勾配部分の幅を表している。
なお、図示を省略しているが、このエッジパターンテーブル181には、「A1」から「A16」までの基本エッジパターンに加え、これらの基本エッジパターンを左右反転させたエッジパターンがパターン番号B1〜B16に定義されており、上下反転させたエッジパターンがパターン番号C1〜C16に定義されている。また、「A1」から「A16」までの基本エッジパターンを上下および左右に反転させたエッジパターンがパターン番号D1〜D16に定義されている。つまり、全体で、64種類の基本エッジパターンがこのエッジパターンテーブル181に定義されている。
図8のステップS250では、ステップS230で正規化を行った各係数値Fr01〜Fr07と、基本エッジパターンを構成する各係数値Fb01〜Fb07との差の絶対値の合計SDを下記式(3)に従って算出し、この合計値SDが最小となる基本エッジパターンをエッジパターンテーブル181の中から選択する。そして、選択された基本エッジパターンについての合計値SDが、所定の閾値よりも小さければ、形状が近似する基本エッジパターンが検索されたと判断する(ステップS250:Yes)。一方、上述した演算によって得られた値SDが、所定の閾値よりも大きい場合には、近似する基本エッジパターンが検索されなかったと判断し(ステップS250:No)、分析対象のブロックを「ぼやけブロック」であると判定する(ステップS220)。
SD=Σ|Fr0k−Fb0k| (k=1〜7) ・・・(3)
上記ステップS250において、形状が近似する基本エッジパターンが検索されたと判断されれば、CPU160は、その基本エッジパターンに対応付けられた中央エッジ幅MWをエッジパターンテーブル181から取得する(ステップS260)。そして、その中央エッジ幅MWが、所定のぼやけ幅閾値よりも狭いかを判断する(ステップS270)。この判断の結果、中央エッジ幅MWがぼやけ幅閾値よりも狭ければ(ステップS270:Yes)、分析対象のブロックが「合焦ブロック」であると判定する(ステップS280)。中央エッジ幅MWが狭ければ、そのブロック内の輝度変化が急峻であり、被写体の輪郭がはっきりとブロック内に現れていると判断できるためである。これに対して、中央エッジ幅MWがぼやけ幅閾値よりも広ければ(ステップS270:No)、輪郭がぼやけていると判断できるため、そのブロックを「ぼやけブロック」であると判定する(ステップS220)。こうして分析対象のブロックが、「合焦ブロック」であるか「ぼやけブロック」であるかを判定すると、CPU160は、上述した一連のぼやけ分析処理を終了して、処理を図7のぼやけ判定処理にリターンする。
なお、上述したように、このぼやけ分析処理は、ブロック内の水平方向と垂直方向とについてそれぞれ行われるが、少なくともいずれか一方のぼやけ分析処理において、「合焦ブロック」と判定されれば、他方の分析処理で「ぼやけブロック」と判定されたとしてもそのブロックは、合焦ブロックであると判定するものとする。
以上で説明した第1実施例によれば、入力した画像の上部に位置するスキップ領域内のブロックについては、ぼやけの分析を行わないため、入力したJPEGデータが、合焦画像であるか、ぼやけ画像であるかを高速に判別することができる。特に、プリンタ100に搭載されるCPUは、処理能力が比較的低いものが多いため、スキップ領域をとばしてぼやけの分析を行うことで、大幅に処理時間を短縮することができる。
また、本実施例では、図7に示したように、スキップ領域を除いた領域内で、1カ所でも合焦ブロックが検出されれば、その時点で、ぼやけ判定処理を終了し、入力した画像が合焦画像であると判定する。従って、画像がぼやけているか否かを更に高速に判別することが可能になる。
更に、本実施例では、JPEGデータをデコードして8×8個のDCT係数を取得した後、そのすべてのDCT係数を用いるのではなく、水平方向のみの交流成分と、垂直方向のみの交流成分のみを用いてぼやけの判定を行うため、演算量が削減され、処理速度を向上させることができる。
B.第2実施例:
上述した第1実施例では、JPEGデータ内の各ブロックを逆量子化して、8×8個のDCT係数を取得した後に、ブロックがスキップ領域に属するか否かを判断するものとした。これに対して、第2実施例では、逆量子化を行う前にブロックがスキップ領域に属するか否かを判断することとし、更に、効率的にブロックを読み飛ばす処理を行うものとする。なお、プリンタ100のハードウェア構成は、第1実施例と同様であるため、以下では、第1実施例とは異なる処理内容のぼやけ判定処理についてのみ説明する。
上述した第1実施例では、JPEGデータ内の各ブロックを逆量子化して、8×8個のDCT係数を取得した後に、ブロックがスキップ領域に属するか否かを判断するものとした。これに対して、第2実施例では、逆量子化を行う前にブロックがスキップ領域に属するか否かを判断することとし、更に、効率的にブロックを読み飛ばす処理を行うものとする。なお、プリンタ100のハードウェア構成は、第1実施例と同様であるため、以下では、第1実施例とは異なる処理内容のぼやけ判定処理についてのみ説明する。
図10は、第2実施例において実行されるぼやけ判定処理のフローチャートである。この処理が開始されると、まず、CPU160は、第1実施例と同様に、スキップ領域を設定する(ステップS300)。
スキップ領域を設定すると、CPU160は、これから入力するブロックの位置がスキップ領域内であるか否かを判定する(ステップS310)。JPEGデータには、図4に示すようにブロックが行毎に格納されているため、実際にJPEGデータをデコードしなくても、これから入力するブロックがスキップ領域内であるかを判定することができる。
上記ステップS310において、これから入力するブロックがスキップ領域内ではないと判断されれば(ステップS310:No)、CPU160は、JPEGデコーダ163のハフマン復号部191と逆量子化処理部192とを用いて、JPEGデータをデコードし、8×8個のDCT係数を取得する(ステップS320)。そして、これらのDCT係数に基づき、図8に示したぼやけ分析処理を実行する(ステップS330)。このぼやけ分析処理の処理内容は第1実施例と同一である。ぼやけ分析処理が完了すると、CPU160は、その分析結果が「合焦ブロック」であるかを判定し(ステップS340)、「合焦ブロック」であれば(ステップS340:Yes)、現在、ぼやけの判定を行っている画像を、「合焦画像」であると判定して(ステップS350)、上述した一連のぼやけ判定処理を終了する。
上記ステップS310において、これから入力するブロックがスキップ領域内であると判断されれば、CPU160は、ハフマン復号部191を用いて、JPEGデータの中で、1ブロック分のデータを読み飛ばすスキップ処理を実行する(ステップS360)。以下、図11および図12を用いて、このスキップ処理の詳細について説明する。
図11は、JPEGデータを構成する1ブロック分のビット列の一例を示す説明図である。ここでは56ビットのビット列を示した。JPEG規格においては、ハフマン符号化によって、8×8個のDCT係数が、可変長のビット列に圧縮されるため、各ブロックを表すビット列は、まちまちのビット長となる。ハフマン復号部191は、図12に示すハフマンテーブルを参照しつつ、このビット列の復号を行う。
図12は、ハフマン復号部191が用いるハフマンテーブルの一例を示す説明図である。1つのハフマンテーブルには、DCハフマンテーブルとADハフマンテーブルとが含まれる。DCハフマンテーブルは、図5に示した直流成分のDCT係数「F00」を復号するためのテーブルであり、ACハフマンテーブルは、これを除く63個の交流成分のDCT係数を復号するためのテーブルである。DCハフマンテーブルには、シンボルSSSSと2進符号とが対応付けて記憶されており、ACハフマンテーブルには、シンボルRRRRとシンボルSSSSおよび2進符号とが対応付けて記憶されている。
ハフマン復号部191は、JPEGデータのビットストリームを読み込み、最初の2ビットがまず、DCハフマンテーブルのシンボルSSSSの番号0に対応する2進符号「00」に一致するかを判断する。そして、最初の2ビットが、「00」でなければ、最初の3ビットが、シンボルSSSSの番号1〜5に一致するかを判断する。それでもなお、どのシンボルにも該当しない場合には、1ビットずつビット列を読み進み、シンボルSSSSの番号6〜11のいずれかに一致するかを判断する。このようにして、いずれかのシンボルが決定すると、そのシンボルSSSSの番号が、直流成分のDCT係数を表すビット列の長さとなる。図11に示した例では、最初の3ビットが「110」であるため、図12のDCハフマンテーブルによれば、シンボルの番号が、「5」となる。そのため、次の5ビットの2進数で表される値「10001」が、直流成分のDCT係数「17」となる。
ただし、上記ステップS340のスキップ処理では、DCT係数の読み込みまでは行わず、シンボルSSSSの番号が判明した時点で、その番号の値分、ビット列を読み飛ばす(スキップする)。つまり、図11の場合には、先頭から9ビット目まで、読み飛ばすことになる。
以上のようにして、ハフマン復号部191は、直流成分のDCT係数を読み飛ばすと、読み飛ばした先のビット列が、ACハフマンテーブルのいずれかのシンボルに該当するかを判断する。交流成分のシンボルは、「RRRR」というゼロレングス(ゼロの個数)を表すシンボルと、「SSSS」というDCT係数のビット列の長さを表すシンボルとからなる。図11に示したビット列では、9ビット目と10ビット目のビット列が「01」となるため、ACハフマンテーブルを参照すると、シンボルRRRRは、「0」となり、シンボルSSSSは、「2」となる。つまり、ゼロレングスは「0」であり、DCT係数の値が2ビットで表されていることになる。従って、この「01」のビット列に続く2ビットの値は、「01」であるから、最初の交流成分のDCT係数の値は、「1」となる。ただし、ハフマン復号部191は、交流成分についても、直流成分と同じく、DCT係数の読み込みは行わない。従って、シンボルSSSSが判明した時点で、そのシンボルの番号の値分、ビット列を読み飛ばす。図11に示したビット列では、9ビット目と10ビット目によってシンボルSSSSが判明すると、このシンボルSSSSの番号が「2」であるため、11ビット目と12ビット目のビット列「01」を読み飛ばすことになる。
以上で説明したように、ハフマン復号部191は、直流成分のシンボルSSSSと交流成分のシンボルSSSSとをブロックのデータ長を判別するためのデータ長パラメータとして取り扱い、このパラメータに基づいてビット列を読み進めていくことにより、DCT係数の値までをデコードすることなく、効率的に1ブロック先のデータまで、ビット列の読み込みをスキップすることができる。なお、1ブロック分の最後には、ブロックの終端を表すビット列「1010(EOB)」が記録されていることがあるが、ブロックの最後のDCT係数がゼロではない場合には、このEOBは記録されないため、かかるEOBの値のみを手掛かりとすることでブロックの終端を判別することはできない。従って、上述したように、ビット列の先頭からシンボルSSSSを解析して、DCT係数を読み飛ばす方法が、最も効率的に1ブロック先までビット列を読み飛ばす方法となる。
ここで説明を図10に戻す。上記ステップS360において、スキップ処理を実行した後、あるいは、ステップS330におけるぼやけ分析処理の分析結果が「ぼやけブロック」であった場合には(ステップS340:No)、CPU160は、次に読み込むべきブロックがあるかを判定する(ステップS370)。その結果、次のブロックがあると判定された場合には(ステップS370:Yes)、ステップS310に処理を戻し、次のブロックについて、上述した一連の処理を繰り返して実行する。これに対して、次のブロックが存在しないと判定されれば(ステップS370:No)、現在、ぼやけの判定を行っている画像を「ぼやけ画像」であると判定し(ステップS380)、上述した一連のぼやけ判定処理を終了する。
以上で説明した第2実施例のぼやけ判定処理によれば、JPEGデータをハフマン復号や逆量子化して8×8個のDCT係数を取得するまでもなく、部分的なハフマン復号を行う処理のみで、スキップ領域内のブロックを効率的に読み飛ばすことができる。従って、画像がぼやけているか否かを高速に判別することが可能になる。
C.変形例:
以上、本発明の種々の実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、上記実施例では、プリンタ100がぼやけの判定を行うものとしたが、上述した各種処理を実行するためのプログラムをコンピュータにインストールすることで、コンピュータがぼやけの判定を行うものとしてもよい。その他、以下のような変形が可能である。
以上、本発明の種々の実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、上記実施例では、プリンタ100がぼやけの判定を行うものとしたが、上述した各種処理を実行するためのプログラムをコンピュータにインストールすることで、コンピュータがぼやけの判定を行うものとしてもよい。その他、以下のような変形が可能である。
(C1)変形例1:
上述した各実施例のぼやけ判定処理では、画像の上部20%の領域をスキップ領域に設定した。これに対して、本変形例では、JPEGデータに記録された撮影条件を示すパラメータの値に応じて、このスキップ領域の大きさを設定するものとする。
上述した各実施例のぼやけ判定処理では、画像の上部20%の領域をスキップ領域に設定した。これに対して、本変形例では、JPEGデータに記録された撮影条件を示すパラメータの値に応じて、このスキップ領域の大きさを設定するものとする。
図13は、スキップ領域の大きさを設定するスキップ領域設定処理のフローチャートである。かかる処理は、図7に示した第1実施例のぼやけ判定処理のステップS100や図10に示した第2実施例のぼやけ判定処理のステップS300に代えて実行される処理である。
このスキップ領域設定処理が実行されると、まず、CPU160は、入力したJPEGデータのヘッダ情報を解析する(ステップS400)。そして、スキップ領域の設定に用いるパラメータ値を取得する(ステップS410)。デジタルカメラで撮影されたJPEGデータには、通常、EXIFという規格に基づいて、そのヘッダ情報にシャッタスピードや絞り値、焦点距離など、種々の撮影条件を示すパラメータが記録される。本変形例では、そのうち、シャッタスピードの値を取得するものとする。
シャッタスピードの値を取得すると、CPU160は、所定のマップや関数に基づき、その値に応じて、スキップ領域の大きさを設定する(ステップS420)。本変形例では、シャッタスピードが遅い値ほど、スキップ領域が画像の上部0%から25%の間で狭くなるように設定を行う。シャッタスピードが遅くなるほど、手ブレ等の影響が出やすくなり、その結果、画像にぼやけが生ずる確率が高くなる。そこで、本変形例では、シャッタスピードが遅いほど、スキップ領域を狭くすることで、ぼやけ分析をおこなう範囲を大きくするものとした。こうすることで、精度良く、画像のぼやけの有無を判別することが可能になる。
なお、本変形例では、シャッタスピードの値に応じてスキップ領域の面積を可変するものとしたが、その他にも、例えば、絞り値や焦点距離などのパラメータに応じてスキップ領域の面積を可変させるものとしてもよい。この場合、絞り値が小さいほど、あるいは、焦点距離が長いほど、スキップ領域を狭く設定するものとする。こうすることで、ボヤケが生じている可能性が高い画像ほど、スキップ領域を狭く設定し、ぼやけ分析をより広範囲で行うことが可能になる。
(C2)変形例2:
上述した実施例では、ぼやけ分析処理において、ブロック毎にぼやけの有無を判別するものとした。これに対して、隣接したブロック間のぼやけ幅を累積していくことで、ブロックを跨って存在するぼやけ幅を検出することもできる。
上述した実施例では、ぼやけ分析処理において、ブロック毎にぼやけの有無を判別するものとした。これに対して、隣接したブロック間のぼやけ幅を累積していくことで、ブロックを跨って存在するぼやけ幅を検出することもできる。
図14ないし図16は、ぼやけ幅を累積する概念を示す説明図である。この変形例では、図8に示したぼやけ分析処理のステップS250によって、ブロック毎に基本エッジパターンを決定した後に、CPU160は、隣接ブロック同士でエッジパターンの傾き方向が一致するかを判断するものとする。図14には、隣接ブロック同士のエッジパターンの傾き方向が一致する例を示し、図15には、一致しない例を示している。
図14のように両者の傾き方向が一致すれば、そのエッジパターン同士は、画像中において、同じぼやけ部分を形成している場合がある。そのため、CPU160は、現在注目しているブロックの右側エッジ幅RWとこれに隣接しているブロックの左側エッジ幅LWの加算値が、図16に示すように、所定の連結誤差閾値内であるかを判定し、連結誤差閾値内であれば、これらのブロックのエッジパターンは、同じぼやけ部分を形成していると判断できる。そこで、このような場合には、CPU160は、図8のステップS260において、両ブロックのぼやけ幅を累積加算し、ブロックを跨ったぼやけ幅を算出する。そして、ステップS270において、累積加算したぼやけ幅と所定のぼやけ幅閾値とを比較して、そのブロックが合焦ブロックであるかぼやけブロックであるかを判断する。
なお、上述した処理をブロックの連なり(横方向および縦方向)に沿って逐次実行していくことで、2つの隣接ブロックだけではなく、複数のブロックに跨って存在するぼやけの幅を算出することができる。従って、図8のステップS270では、その結果算出されたぼやけ幅と、所定のぼやけ幅閾値とを比較すれば、1つのブロックのサイズを超えるぼやけ幅に基づき、分析対象のブロックが合焦ブロックかぼやけブロックかを判断することができる。なお、複数のブロックにぼやけ幅が跨る場合には、ぼやけの途中部分に位置するブロックについては、一律にぼやけブロックであると判断し、ぼやけの終端に位置するブロックに累積されたぼやけ幅に基づき、そのブロックが合焦ブロックであるか否かを判断するものとする。上述したぼやけ判定処理では、ぼやけの位置の精度は求められず、1カ所でも合焦ブロックがあるかどうかを判定するからである。
以上で説明した変形例によれば、ぼやけ部分が1ブロックのサイズを超えるような高解像度な画像においても、精度良く、ぼやけの有無を判断することができる。例えば、600万画素(3000画素×2000画素)の画像を、L版サイズ(約13cm×約9cm)の印刷用紙に印刷すると、8×8画素からなる1ブロックの実サイズは、0.35mm×0.35mmほどの大きさになる。そのため、1ブロックのサイズ内でぼやけの有無を判定することが困難であるが、本変形例によってぼやけ幅を連結していけば、0.35mmを超えるぼやけ幅についても検出することが可能となり、精度良く画像がぼやけているかを判断することができる。
(C3)変形例3:
上記実施例および変形例では、スキップ領域は、画像の上部に位置する所定の幅の領域であるものとして説明した。しかし、スキップ領域の形状はこれに限られない。
上記実施例および変形例では、スキップ領域は、画像の上部に位置する所定の幅の領域であるものとして説明した。しかし、スキップ領域の形状はこれに限られない。
図17ないし図19は、スキップ領域のバリエーションを示す説明図である。図17には、画像の周囲をスキップ領域に設定する例を示し、図18には、画像の左右端をスキップ領域に設定する例を示した。このようなスキップ領域によっても、中心に撮影されている被写体に基づき、画像のぼやけを効率よく判別することができる。
また、図19には、カメラを縦位置にして撮影した場合の画像を示している。このような場合には、画像の右側(あるいは左側)の端部にスキップ領域を設定することができる。スキップ領域を画像中のどの位置に設定するかは、ユーザ自身が操作パネル140を用いて設定できるものとしてもよいし、CPU160が、JPEGデータのヘッダ情報を解析して、撮影時のカメラの位置が縦位置か横位置かを判別し、その判別結果に応じて設定するものとしてもよい。
なお、上記実施例や本変形例では、スキップ領域を矩形状に設定する例を示しているが、略円形状や台形状等に設定するものとしてもよい。
(C4)変形例4:
上記実施例では、ブロック毎にぼやけの分析を行う際に、各ブロックから抽出した水平方向および垂直方向の係数群と、エッジパターンテーブル181に記録された基本エッジパターンとを照合して、そのブロックがぼやけているか否かを判定するものとした。しかし、ぼやけの分析方法はかかる方法に限られない。例えば、各ブロックの高周波成分の係数値(例えば、図5において、係数F44〜F47,F54〜F57,F64〜F67,F74〜F77)の和が所定の閾値を超える場合に、そのブロックは合焦ブロックであると判断することもできる。急峻な輝度変化を有するブロックほど、高周波成分の係数値が大きくなるからである。従って、このような方法によっても、ブロック毎にぼやけの分析を行うことができる。
上記実施例では、ブロック毎にぼやけの分析を行う際に、各ブロックから抽出した水平方向および垂直方向の係数群と、エッジパターンテーブル181に記録された基本エッジパターンとを照合して、そのブロックがぼやけているか否かを判定するものとした。しかし、ぼやけの分析方法はかかる方法に限られない。例えば、各ブロックの高周波成分の係数値(例えば、図5において、係数F44〜F47,F54〜F57,F64〜F67,F74〜F77)の和が所定の閾値を超える場合に、そのブロックは合焦ブロックであると判断することもできる。急峻な輝度変化を有するブロックほど、高周波成分の係数値が大きくなるからである。従って、このような方法によっても、ブロック毎にぼやけの分析を行うことができる。
100…プリンタ
110…スキャナ
120…メモリカードスロット
130…USBインタフェース
140…操作パネル
145…液晶ディスプレイ
150…制御ユニット
160…CPU
161…画像データ入力部
162…スキップ領域設定部
163…JPEGデコーダ
164…領域判断部
165…ぼやけ判定部
170…RAM
180…ROM
181…エッジパターンテーブル
191…ハフマン復号部
192…逆量子化処理部
193…逆DCT変換部
194…色空間変換部
210…キャリッジ
211…インクヘッド
212…インクカートリッジ
220…キャリッジモータ
230…紙送りモータ
260…駆動ベルト
270…プラテン
280…摺動軸
110…スキャナ
120…メモリカードスロット
130…USBインタフェース
140…操作パネル
145…液晶ディスプレイ
150…制御ユニット
160…CPU
161…画像データ入力部
162…スキップ領域設定部
163…JPEGデコーダ
164…領域判断部
165…ぼやけ判定部
170…RAM
180…ROM
181…エッジパターンテーブル
191…ハフマン復号部
192…逆量子化処理部
193…逆DCT変換部
194…色空間変換部
210…キャリッジ
211…インクヘッド
212…インクカートリッジ
220…キャリッジモータ
230…紙送りモータ
260…駆動ベルト
270…プラテン
280…摺動軸
Claims (15)
- 複数の画素からなるブロックの集合として構成された画像のぼやけを検出する画像処理装置であって、
前記ブロックを単位として画素値を周波数領域に変換して得られた係数が該ブロック毎に記録されて構成された画像データを入力する画像データ入力部と、
前記入力した画像データが表す画像の所定の領域に、ぼやけの検出の対象としないスキップ領域を設定するスキップ領域設定部と、
前記入力した画像データを構成する各ブロックが、前記スキップ領域に属するか否かを判断する領域判断部と、
前記スキップ領域に属しないと判断されたブロックの前記係数に基づき、前記画像のぼやけを判定するぼやけ判定部と
を備える画像処理装置。 - 請求項1に記載の画像処理装置であって、
前記スキップ領域設定部は、前記画像データが表す画像の最上部から所定の幅を有する領域に前記スキップ領域を設定する
画像処理装置。 - 請求項2に記載の画像処理装置であって、
前記スキップ領域設定部は、前記画像データの最上部から該画像の高さに対して15%から25%までの範囲内で前記所定の幅を設定する
画像処理装置。 - 請求項1に記載の画像処理装置であって、
前記画像データには、該画像が撮影された際の撮影条件を示す情報が記録されており、
前記スキップ領域設定部は、前記撮影条件に応じて前記スキップ領域の大きさを設定する
画像処理装置。 - 請求項4に記載の画像処理装置であって、
前記撮影条件とは、絞り値、シャッタスピード、焦点距離の少なくともいずれか1つであり、
前記スキップ領域設定部は、前記絞り値が小さいほど、または、前記シャッタスピードが遅いほど、または、前記焦点距離が長いほど、前記スキップ領域を狭く設定する
画像処理装置。 - 請求項1ないし請求項5のいずれかに記載の画像処理装置であって、
前記画像データは、JPEG規格に基づいて生成されたデータであり、
前記各ブロックを構成する係数は、前記JPEG規格に基づくハフマン符号化によって可変長のビット列に圧縮されて前記画像データに記録されており、該ビット列には、該ビット列のデータ長を表すデータ長パラメータが記録されており、
前記領域判断部は、前記ブロックが前記スキップ領域に属する場合に、該ブロックの前記ビット列中に記録された前記データ長パラメータに基づき、該ブロックのデータを読み飛ばす手段を備える
画像処理装置。 - 請求項6に記載の画像処理装置であって、
前記各ブロックを構成する係数は、直流成分の係数と交流成分の係数とからなり、
前記データ長パラメータは、前記直流成分の係数のビット長を表すパラメータと、前記交流成分の係数うち、ゼロではない係数のビット長を表すパラメータとによって構成されている
画像処理装置。 - 請求項1ないし請求項5のいずれかに記載の画像処理装置であって、
前記画像データは、JPEG規格に基づいて生成されたデータであり、
前記領域判断部は、前記画像データに対して、ハフマン復号および逆量子化を行って前記各ブロックから前記係数を抽出した後に、該各ブロックが前記所定のスキップ領域に属するか否かを判断する
画像処理装置。 - 請求項1ないし請求項8のいずれかに記載の画像処理装置であって、
前記ブロック内の画素値の変化の代表的な勾配形状を前記係数によって表した複数種類の基本エッジパターンと該各エッジパターンが表す勾配の幅とが対応付けて記憶されたエッジパターン記憶部と、
前記領域判断部によって前記スキップ領域に属しないと判断されたブロックについて、該ブロックから、所定方向の周波数成分を表す係数群を抽出する抽出部と、
前記抽出した係数群が表す勾配形状に近似する基本エッジパターンを前記エッジパターン記憶部から選出する選出部とを備え、
前記ぼやけ判定部は、前記選出された基本エッジパターンに対応付けられた前記勾配の幅と所定の閾値とを比較して、前記ブロック毎にぼやけの有無を判定し、ぼやけの生じていないブロックが少なくとも1つ存在する場合に、前記画像はぼやけていないと判定する
画像処理装置。 - 請求項9に記載の画像処理装置であって、
前記ぼやけ判定部は、隣接する前記ブロック間で、前記基本エッジパターンの勾配の方向が一致する場合に、前記勾配の幅を累積加算し、該累積加算された勾配の幅と、前記所定の閾値とを比較する
画像処理装置。 - 請求項1ないし請求項10のいずれかに記載の画像処理装置であって、
更に、前記ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備える
画像処理装置。 - 請求項11に記載の画像処理装置であって、
更に、前記提示された画像の中からユーザによって選択された画像を印刷する印刷部を備える
画像処理装置 - コンピュータが、複数の画素からなるブロックの集合として構成された画像のぼやけを検出するぼやけ検出方法であって、
前記ブロックを単位として画素値を周波数領域に変換して得られた係数が該ブロック毎に記録されて構成された画像データを入力し、
前記入力した画像データが表す画像の所定の領域に、ぼやけの検出の対象としないスキップ領域を設定し、
前記入力した画像データを構成する各ブロックが、前記スキップ領域に属するか否かを判断し、
前記スキップ領域に属しないと判断されたブロックの前記係数に基づき、前記画像のぼやけを判定する
ぼやけ検出方法。 - コンピュータが、複数の画素からなるブロックの集合として構成された画像のぼやけを検出するためのコンピュータプログラムであって、
前記ブロックを単位として画素値を周波数領域に変換して得られた係数が該ブロック毎に記録されて構成された画像データを入力する機能と、
前記入力した画像データが表す画像の所定の領域に、ぼやけの検出の対象としないスキップ領域を設定する機能と、
前記入力した画像データを構成する各ブロックが、前記スキップ領域に属するか否かを判断する機能と、
前記スキップ領域に属しないと判断されたブロックの前記係数に基づき、前記画像のぼやけを判定する機能と
をコンピュータに実現させるコンピュータプログラム。 - 請求項14に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006201586A JP2008028886A (ja) | 2006-07-25 | 2006-07-25 | 画像処理装置およびぼやけ検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006201586A JP2008028886A (ja) | 2006-07-25 | 2006-07-25 | 画像処理装置およびぼやけ検出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008028886A true JP2008028886A (ja) | 2008-02-07 |
Family
ID=39119048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006201586A Withdrawn JP2008028886A (ja) | 2006-07-25 | 2006-07-25 | 画像処理装置およびぼやけ検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008028886A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376551A (zh) * | 2023-12-04 | 2024-01-09 | 淘宝(中国)软件有限公司 | 视频编码加速方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09130714A (ja) * | 1995-11-01 | 1997-05-16 | Canon Inc | 画像情報抽出装置および方法 |
JPH11175703A (ja) * | 1997-12-16 | 1999-07-02 | Konica Corp | 画像表示方法及び画像表示装置 |
-
2006
- 2006-07-25 JP JP2006201586A patent/JP2008028886A/ja not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09130714A (ja) * | 1995-11-01 | 1997-05-16 | Canon Inc | 画像情報抽出装置および方法 |
JPH11175703A (ja) * | 1997-12-16 | 1999-07-02 | Konica Corp | 画像表示方法及び画像表示装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376551A (zh) * | 2023-12-04 | 2024-01-09 | 淘宝(中国)软件有限公司 | 视频编码加速方法及电子设备 |
CN117376551B (zh) * | 2023-12-04 | 2024-02-23 | 淘宝(中国)软件有限公司 | 视频编码加速方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4193881B2 (ja) | 画像処理装置およびぼやけ検出方法 | |
US7660483B2 (en) | Method and apparatus for removing noise from a digital image | |
US8331671B2 (en) | Image processing apparatus and image encoding method related to non-photo image regions | |
US20080137982A1 (en) | Blurring determination device, blurring determination method and printing apparatus | |
CN104008401B (zh) | 一种图像文字识别的方法及装置 | |
US20090284801A1 (en) | Image processing apparatus and image processing method | |
KR20070037691A (ko) | Jpeg 검출기들 및 jpeg 이미지 히스토리 평가기들 | |
US20080031549A1 (en) | Image processing apparatus, image reading apparatus, image forming apparatus, image processing method, and recording medium | |
JP5049921B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2004135313A (ja) | 画像処理装置およびその方法 | |
US7924468B2 (en) | Camera shake determination device, printing apparatus and camera shake determination method | |
US7986839B2 (en) | Image processing method, image processing apparatus, image forming apparatus, and storage medium | |
JP4513764B2 (ja) | 画像判定装置および画像判定方法 | |
JP2008028886A (ja) | 画像処理装置およびぼやけ検出方法 | |
JP2020093494A (ja) | 画像出力装置、画像出力方法および出力画像データ生産方法 | |
US20200175308A1 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
US10931852B2 (en) | Image processing apparatus, image processing method, and storage medium, with determining whether or not character clipping rectangle determined to be non-character region is character region | |
JP2008165734A (ja) | ぼやけ判定装置、ぼやけ判定方法および印刷装置 | |
JP4910971B2 (ja) | 手ぶれ判定装置、および、手ぶれ判定方法 | |
JP2008123346A (ja) | ぼやけ判定装置、ぼやけ判定方法および印刷装置 | |
JP5517028B2 (ja) | 画像処理装置 | |
JP2008140331A (ja) | 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体 | |
JP2009237657A (ja) | 画像判定装置、画像判定方法および画像判定プログラム | |
JP6025803B2 (ja) | 画像処理装置 | |
RU2737001C1 (ru) | Устройство и способ обработки изображений и носитель данных |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101026 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20101118 |