(57)【要約】【課題】ユーザ待ち時間の増大を回避しつつ、赤目の位置を検出するための画像認識処理の際におけるメモリ使用量の削減を図った画像処理装置及びその制御方法を提供する。【解決手段】画像処理装置は、元画像を縮小することにより、第１の縮小画像を生成する、第１縮小手段と、前記第１の縮小画像を拡大することにより、前記第１の縮小画像より大きいサイズで且つ元画像より小さいサイズの第２の縮小画像を生成する、第２縮小手段と、前記第２の縮小画像に基づいて、赤目の位置検出を行い、検出された赤目の位置に基づいて赤目補正を行う、赤目補正手段とを備えて構成されている。【選択図】図１
2009124576.tif 000002
【特許請求の範囲】
【請求項１】
元画像を縮小することにより、第１の縮小画像を生成する、第１縮小手段と、
前記第１の縮小画像を拡大することにより、前記第１の縮小画像より大きいサイズで且つ元画像より小さいサイズの第２の縮小画像を生成する、第２縮小手段と、
前記第２の縮小画像に基づいて、赤目の位置検出を行い、検出された赤目の位置に基づいて赤目補正を行う、赤目補正手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記第１縮小手段が第１の縮小画像を生成する際に用いる補間アルゴリズムと、前記第２縮小手段が第２の縮小画像を生成する際に用いる補間アルゴリズムは、同じである、ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補間アルゴリズムは、元画像を縮小する際に圧縮された画像情報が第１の縮小画像に畳み込まれ、この畳み込まれた画像情報が、第１の縮小画像を拡大して第２の縮小画像を生成する際に再度取り出せるアルゴリズムである、ことを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記第１縮小手段は、Ｂｉ−Ｌｉｎｅａｒ法を用いて、第１の縮小画像を生成し、
前記第２縮小手段も、Ｂｉ−Ｌｉｎｅａｒ法を用いて、第２の縮小画像を生成する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記第１縮小手段は、Ｂｉ−Ｃｕｂｉｃ法を用いて、第１の縮小画像を生成し、
前記第２縮小手段も、Ｂｉ−Ｃｕｂｉｃ法を用いて、第２の縮小画像を生成する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記第１縮小手段が第１の縮小画像を生成する際に用いる補間アルゴリズムと、前記第２縮小手段が第２の縮小画像を生成する際に用いる補間アルゴリズムは、異なる、ことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記赤目補正手段で赤目補正された画像の印刷を行う、印刷実行手段を、さらに備えることを特徴とする請求項１乃至請求項６のいずれかに記載の画像処理装置。
【請求項８】
元画像を縮小することにより、第１の縮小画像を生成する工程と、
前記第１の縮小画像を拡大することにより、前記第１の縮小画像より大きいサイズで且つ元画像より小さいサイズの第２の縮小画像を生成する工程と、
前記第２の縮小画像に基づいて、赤目の位置検出を行い、検出された赤目の位置に基づいて赤目補正を行う工程と、
を備えることを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその制御方法に関し、特に、画像認識処理の際のメモリ使用量の削減を図った画像処理装置及びその制御方法に関する。
【背景技術】
【０００２】
プリンタなどの画像処理装置の中には、事前に画像をサンプリングして縮小画像を生成し、このサンプリングした縮小画像に基づいて画像認識処理を行った上で、実際の画像処理を行うことのできる装置がある。例えば、サンプリングした縮小画像に基づいて赤目補正処理を行ったり、自動画像補正処理を行ったりする画像認識処理を行った上で、その画像の印刷を行うプリンタがある。
【０００３】
赤目補正処理とは、撮像した際に生じた人間の赤目を検出し、この赤目を赤目ではない状態に補正する処理である。自動画像補正処理とは、ＡＰＦ（Auto Photo Fine）とも呼ばれている処理であり、画像全体の明度、彩度、輝度などについての統計情報を取得し、この統計情報に基づいて、これら明度、彩度、輝度のバランスを最適化する処理である。この自動画像補正処理を行う際には、顔認識処理も行われ、画像内における人間の顔を認識して検出し、この顔の肌色が綺麗に見えるように、色補正をする。
【０００４】
これらの画像認識処理をするためには、元画像データに基づくフル画像を使用する必要はなく、縮小した画像を使用すれば十分である（例えば、特開２００２−２７１７９４号公報参照）。
【０００５】
しかしながら、この画像認識処理をするために必要な縮小画像のサイズは、その処理内容によって異なる。例えば、上述した自動画像補正処理や顔認識処理においては、ＱＶＧＡサイズ（３２０×２４０ピクセル）で足りるが、赤目補正処理を精度良く行うためにはＶＧＡ（６４０×４８０ピクセル）以上の画像サイズが必要となる。
【０００６】
これらの処理を同時に行おうとする場合には、単純には、両者を包含する画像サイズであるＶＧＡ以上のサイズの縮小画像に基づいて、処理を行えばよい。しかし、ＶＧＡサイズの画像のＲＧＢ画像データを保持するだけで９００ＫＢ程度のメモリ容量が必要となり、メモリ容量が小さい画像処理装置にとっては、負担が大きい。特に、これらの画像認識処理を予め組み込んでおく組み込み型のプリンタなどにおいては、搭載されているメモリサイズが小さく、必ずしも十分なメモリ容量を、この画像認識処理のために確保できない場合も多い。
【０００７】
さらに、画像処理装置によっては、ＧＵＩ（Graphical User Interface）画面に、縮小画像を高速表示するために、ＣＰＵの空き時間を利用して、事前に、元画像データから縮小画像を生成するようにしている。そして、この生成した縮小画像をキャッシュしておき、ＧＵＩ画面に表示する必要が生じた場合には、このキャッシュされた縮小画像を読み出して表示する。
【０００８】
このような画像処理装置において、キャッシュされている縮小画像を用いて、画像認識処理を行おうとすると、キャッシュする縮小画像もＶＧＡで生成しなければならない。しかし、例えば２０枚の縮小画像をキャッシュしようとすると、縮小画像をキャッシュするために大きなメモリ容量を確保しなければならず、その分、コストアップになってしまうという問題がある。
【０００９】
一方、キャッシュされている縮小画像を利用することなく、画像認識処理の都度、元画像データに基づいて、ＶＧＡサイズの画像を生成するのでは、画像生成に余分な時間がかかってしまう。特に、この画像認識処理は、プリンタで印刷を開始する直前に行うことが多いため、縮小画像を生成するための時間が、そのままユーザの印刷待ち時間になってしまう。このため、ユーザの印刷待ち時間の増大を招き、ユーザにとって、使い勝手が悪くなるという問題が生じる。
【特許文献１】特開２００２−２７１７９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そこで本発明は、前記課題に鑑みてなされたものであり、ユーザ待ち時間の増大を回避しつつ、赤目の位置を検出するための画像認識処理の際におけるメモリ使用量の削減を図った画像処理装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明に係る画像処理装置は、
元画像を縮小することにより、第１の縮小画像を生成する、第１縮小手段と、
前記第１の縮小画像を拡大することにより、前記第１の縮小画像より大きいサイズで且つ元画像より小さいサイズの第２の縮小画像を生成する、第２縮小手段と、
前記第２の縮小画像に基づいて、赤目の位置検出を行い、検出された赤目の位置に基づいて赤目補正を行う、赤目補正手段と、
を備えることを特徴とする。
【００１２】
この場合、前記第１縮小手段が第１の縮小画像を生成する際に用いる補間アルゴリズムと、前記第２縮小手段が第２の縮小画像を生成する際に用いる補間アルゴリズムは、同じであるようにしてもよい。
【００１３】
また、前記補間アルゴリズムは、元画像を縮小する際に圧縮された画像情報が第１の縮小画像に畳み込まれ、この畳み込まれた画像情報が、第１の縮小画像を拡大して第２の縮小画像を生成する際に再度取り出せるアルゴリズムであるようにしてもよい。
【００１４】
また、前記第１縮小手段は、Ｂｉ−Ｌｉｎｅａｒ法を用いて、第１の縮小画像を生成し、
前記第２縮小手段も、Ｂｉ−Ｌｉｎｅａｒ法を用いて、第２の縮小画像を生成するようにしてもよい。
【００１５】
また、前記第１縮小手段は、Ｂｉ−Ｃｕｂｉｃ法を用いて、第１の縮小画像を生成し、
前記第２縮小手段も、Ｂｉ−Ｃｕｂｉｃ法を用いて、第２の縮小画像を生成するようにしてもよい。
【００１６】
また、前記第１縮小手段が第１の縮小画像を生成する際に用いる補間アルゴリズムと、前記第２縮小手段が第２の縮小画像を生成する際に用いる補間アルゴリズムは、異なるようにしてもよい。
【００１７】
また、画像処理装置は、前記赤目補正手段で赤目補正された画像の印刷を行う、印刷実行手段を、さらに備えるようにしてもよい。
【００１８】
本発明に係る画像処理装置の制御方法は、
元画像を縮小することにより、第１の縮小画像を生成する工程と、
前記第１の縮小画像を拡大することにより、前記第１の縮小画像より大きいサイズで且つ元画像より小さいサイズの第２の縮小画像を生成する工程と、
前記第２の縮小画像に基づいて、赤目の位置検出を行い、検出された赤目の位置に基づいて赤目補正を行う工程と、
を備えることを特徴とする。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明の技術的範囲を限定するものではない。
【００２０】
図１は、本実施形態に係る画像処理装置１０の内部構成の一例を説明するブロック図である。この図１から分かるように、本実施形態における画像処理装置１０は、プリンタにより構成されており、より具体的には、カラーのインクジェットプリンタにより構成されている。但し、画像処理装置１０は、プリンタに限定されるものではなく、例えばフォトビューアなどの画像表示装置により、構成することもできる。
【００２１】
図１に示すように、画像処理装置１０は、ＣＰＵ（Central Processing Unit）２０と、ＲＯＭ（Read Only Memory）２２と、カードインターフェース２４と、通信インターフェース２６と、画面インターフェース２８と、装置制御部３０とを備えて構成されており、これらは内部バス３２を介して、相互に接続されている。
【００２２】
ＣＰＵ２０には、専用の揮発性記憶装置であるＲＡＭ（Random Access Memory）３４が接続されている。例えば、このＣＰＵ２０は、ＲＯＭ２２に格納されている各種のプログラムを読み込んで実行することにより、この画像処理装置１０の各種の制御を行う。プログラムを実行する際には、ＣＰＵ２０は、必要に応じて、ＲＡＭ３４に一時的なデータを格納する。
【００２３】
ＲＯＭ２２は、不揮発性記憶装置の一例であり、画像処理装置１０における各種のプログラムやデータが、不揮発的に格納されている。カードインターフェース２４は、画像処理装置１０に、ＰＣカードなどのカード型外部デバイス１００を挿入して利用するためのインターフェースである。例えば、ＰＣカードの場合、フラッシュメモリカード、ハードディスク、ＳＣＳＩカード、モデムカードなどの様々な種類がある。
【００２４】
通信インターフェース２６は、画像処理装置１０に、カメラなどの撮像装置や、ノート型やディスクトップ型のパーソナルコンピュータなど、各種の外部デバイス１０２を接続するためのインターフェースである。画像処理装置１０と外部デバイス１０２との間の接続規格は、ＵＳＢやＲＳ２３２Ｃなどの有線規格を用いてもよいし、ＩｒＤＡやＢｌｕｅｔｈｏｏｔｈなどの無線規格を用いてもよい。
【００２５】
画面インターフェース２８は、画像処理装置１０に設けられている表示画面３６のインターフェースである。表示画面３６は、例えばＬＣＤ（Liquid Crystal Display）により構成されている。本実施形態では、この表示画面３６には、例えば、印刷する画像をユーザが任意に選択するための縮小画像が表示される。また、この表示画面３６は、タッチパネルで構成されており、ユーザが画像処理装置１０に指示を入力するためのユーザインターフェースも兼ねている。
【００２６】
装置制御部３０は、ＲＡＭ４０と、印刷ヘッド４２と、キャリッジ４４と、紙送り機構４６と、スキャナ４８とに接続されており、これら印刷ヘッド４２と、キャリッジ４４と、紙送り機構４６と、スキャナ４８についての機械的な制御を行う。ＲＡＭ４０は、装置制御部３０専用の揮発性記憶装置であり、装置制御部３０が、これら機械的制御を行う上で必要なデータが一時的に格納される。この装置制御部３０は、例えば、ＡＳＩＣ（Application Specific IC）により構成されている。
【００２７】
本実施形態においては、特に、装置制御部３０は、印刷ヘッド４２とキャリッジ４４と紙送り機構４６とを用いた印刷の全体的な制御を行う。すなわち、キャリッジ４４に搭載された印刷ヘッド４２から印刷インクを吐出させつつ、キャリッジ４４を走査方向（紙送り方向と交差する方向）に交互に移動させながら紙などの印刷媒体に印刷を行う。紙送り機構４６は、紙などの印刷媒体を、キャリッジ４４による印刷に合わせて、紙送り方向に順次送り出すことにより、印刷媒体に対する印刷を行わせる。
【００２８】
また、装置制御部３０は、スキャナ４８を用いた画像読み込み時の制御も行う。例えば、ユーザがスキャナ４８の画像読み取り面にセットした原稿を、ラインイメージセンサを用いて読み込み、ＲＡＭ４４に画像データとして一時的に格納するための一連の処理の制御を行う。
【００２９】
次に、図２及び図３に基づいて、本実施形態に係る画像処理装置１０が実行する印刷実行処理について説明する。これら図２及び図３は、画像処理装置１０が実行する印刷実行処理の一例を説明するためのフローチャートを示す図である。この印刷実行処理は、例えば、ＲＯＭ２２に格納されている印刷実行処理プログラムをＣＰＵ２０が読み込んで実行することにより、実現される処理である。また、この印刷実行処理は、ユーザが画像処理装置１０に、印刷を行う画像やレイアウトなどを指定して、印刷を指示した場合に、起動される処理である。
【００３０】
まず、図２に示すように、画像処理装置１０は、印刷ライン位置の初期化を行って、変数Ｎに１をセットする（ステップＳ１０）。つまり、印刷ライン位置を、その印刷媒体のページの先頭に設定する。
【００３１】
次に、画像処理装置１０は、印刷ライン位置Ｎにある画像の画像ファイルを検索して取得する（ステップＳ１２）。例えば、ユーザが印刷を指定した画像が、カード型外部デバイス１００に格納されている場合には、画像処理装置１０は、カード型外部デバイス１００を検索して、ユーザの指定した画像の画像データを取得する。また、既にＲＡＭ３４に画像データを読み込んでいる場合には、ＲＡＭ３４から印刷ライン位置Ｎにおける画像ファイルを取得する。なお、印刷ライン位置Ｎを印刷するのに複数の画像ファイルが必要であれば、必要なすべての画像ファイルを取得する。
【００３２】
次に、画像処理装置１０は、ステップＳ１２で取得した画像ファイルの印刷ライン位置Ｎにおける画像の解凍処理を行う（ステップＳ１４）。この解凍処理についての詳細は、後述する。
【００３３】
次に、画像処理装置１０は、ユーザが赤目補正をするように指定しているかどうかを判断する（ステップＳ１６）。ユーザが赤目補正をするように指定している場合（ステップＳ１６：ＹＥＳ）には、ステップＳ１４で解凍することにより得られた画像について、赤目補正処理を行う（ステップＳ１８）。赤目補正処理を行った後の画像データは、再び、データバッファに格納される。一方、赤目補正をするように指定されていない場合（ステップＳ１６：ＮＯ）には、このステップＳ１８の処理をスキップする。
【００３４】
次に、画像処理装置１０は、ユーザが自動画像補正をするように指定しているかどうかを判断する（ステップＳ２０）。ユーザが自動画像補正をするように指定している場合（ステップＳ２０：ＹＥＳ）には、ステップＳ１４で解凍することにより得られた画像について、自動画像補正を行う（ステップＳ２２）。すなわち、画像全体の明度、彩度、輝度などについての統計情報を取得し、この統計情報に基づいて、これら明度、彩度、輝度のバランスを最適化する処理を行う。自動画像補正処理を行った後の画像データは、再び、データバッファに格納される。一方、自動画像補正をするように指定されていない場合（ステップＳ２０：ＮＯ）には、このステップＳ２２の処理をスキップする。
【００３５】
次に、図３に示すように、画像処理装置１０は、ユーザに指定されたサイズに画像サイズを変換する（ステップＳ３０）。続いて、画像処理装置１０は、得られた画像を指定されたレイアウトに配置する（ステップＳ３２）。例えば、指定されたレイアウトにおいては、印刷ライン位置Ｎの走査方向に複数の画像が配置されている場合には、画像処理装置１０は、これら複数の画像を指定されたレイアウトで配置する。
【００３６】
次に、画像処理装置１０は、ステップＳ３２で得られた画像についてハーフトーン処理を行った上で（ステップＳ３４）、印刷ライン位置Ｎの印刷を実行する（ステップＳ３６）。すなわち、キャリッジ４４を走査方向に移動して、印刷ライン位置Ｎの印刷を行う。
【００３７】
次に、画像処理装置１０は、変数Ｎに１を加算し（ステップＳ３８）、変数Ｎが印刷媒体のページ長より長くなったかどうかを判断する（ステップＳ４０）。すなわち、印刷媒体のページの最後まで印刷を行ったかどうかを判断する。変数Ｎが印刷媒体のページ長以下である場合（ステップＳ４０：ＮＯ）には、上述したステップＳ１２からを繰り返す。
【００３８】
一方、変数Ｎが印刷媒体のページ長を越えていた場合（ステップＳ４０：ＹＥＳ）、すなわち印刷媒体の最後まで印刷を終えた場合には、画像処理装置１０は、この印刷実行処理を終了する。
【００３９】
次に、図４乃至図６に基づいて、本実施形態に係る画像処理装置１０が実行する画像ファイル解凍処理について説明する。これら図４乃至図６は、画像処理装置１０が実行する画像ファイル解凍処理の一例を説明するためのフローチャートを示す図である。この画像ファイル解凍処理は、例えば、ＲＯＭ２２に格納されている画像ファイル解凍処理プログラムをＣＰＵ２０が読み込んで実行することにより、実現される処理である。また、この画像ファイル解凍処理は、上述した図２のステップＳ１４で実行される処理である。
【００４０】
まず、図４に示すように、画像処理装置１０は、印刷ライン位置Ｎが画像の先頭であるかどうかを判断する（ステップＳ５０）。すなわち、印刷ライン位置Ｎに、画像の先頭となる部分が含まれているかどうかを判断する。印刷ライン位置Ｎが画像の先頭である場合（ステップＳ５０：ＹＥＳ）には、ユーザによる印刷の指定が、自動画像補正又は赤目補正の少なくとも一方を行うように指定しているかどうかを判断する（ステップＳ５２）。
【００４１】
自動画像補正又は赤目補正のうちの少なくとも一方を行う指定になっている場合（ステップＳ５２：ＹＥＳ）には、処理対象になっている画像の縮小画像が、キャッシュメモリに存在するかどうかを判断する（ステップＳ５４）。例えば、本実施形態においては、ＲＡＭ３４にキャッシュメモリが形成されており、画像処理装置１０は、このＲＡＭ３４のキャッシュメモリの領域に、処理対象となっている画像の縮小画像が存在するかどうかを判断する。なお、印刷ライン位置Ｎに複数の画像が含まれている場合には、その複数の画像のすべての縮小画像が、キャッシュメモリに存在するかどうかを判断する。
【００４２】
本実施形態においては、画像処理装置１０は、ＣＰＵ２０の空き時間を利用して、カード型外部デバイス１００に格納されている画像ファイルに基づいて、縮小画像を生成するよう設計されている。例えば、カード型外部デバイス１００には、ＪＰＧ等の形式で、元画像のデータである画像ファイルが格納されている。この画像ファイルに基づいて、例えば、ＱＶＧＡ（３２０×２４０ピクセル）のサイズの縮小画像を、順次生成して、キャッシュメモリに格納しておく。そして、表示画面３６に縮小画像を表示する処理が発生した場合には、キャッシュメモリに格納されているＱＶＧＡサイズの縮小画像のデータを読み出して、そのまま表示に使えるようにしている。
【００４３】
このようにすることにより、表示画面３６に縮小画像を表示する際に生じるユーザの待ち時間の短縮を図っている。特に、表示画面３６に複数の縮小画像を並べて表示する場合、必要になった時点で、すべての縮小画像を元画像から生成すると、相応の処理時間がかかってしまう。このため、ＣＰＵ２０の空き時間を利用して、縮小画像を予め生成しておくことにより、縮小画像の一覧を表示し終えるのに要する時間を格段に短くすることができるのである。
【００４４】
また、本実施形態では、ＣＰＵ２０が元画像から縮小画像を生成する際には、例えば、Ｂｉ−Ｌｉｎｅａｒ法や、Ｂｉ−Ｃｕｂｉｃ法による補間アルゴリズムを用いる。Ｂｉ−Ｌｉｎｅａｒ法や、Ｂｉ−Ｃｕｂｉｃ法は、縮小した画像を再度、同じ補間アルゴリズムを用いて拡大すると、縮小時に畳み込まれた画像情報が、再度取り出せる圧縮手法の一例である。無論、縮小時に失われた情報までもが、再現できる訳ではない。
【００４５】
ステップＳ５４において、処理対象になっている画像の縮小画像が、キャッシュメモリに存在しないと判断した場合（ステップＳ５４：ＮＯ）には、画像処理装置１０は、処理対象の画像ファイルの解凍を行う（ステップＳ５６）。例えば、ステップＳ１２で取得した画像ファイルがＪＰＧ形式であった場合には、ＪＰＧ形式の画像ファイルの解凍を行う。
【００４６】
次に、画像処理装置１０は、ステップＳ５６で得られた画像の縮小を行う（ステップＳ５８）。すなわち、本実施形態では、ステップＳ５６で得られた元画像を、ＱＶＧＡサイズに縮小する。元画像を縮小する際には、例えば、上述したＢｉ−Ｌｉｎｅａｒ法や、Ｂｉ−Ｃｕｂｉｃ法などの補間アルゴリズムを用いる。なお、１／２、１／４、１／８などの所定の圧縮率である場合には、ステップＳ５６でＪＰＧ形式の画像を解凍する際に、圧縮された状態で解凍することも可能である。この場合、ステップＳ５８は省略可能である。
【００４７】
次に、画像処理装置１０は、生成したＱＶＧＡサイズの縮小画像を、キャッシュメモリに格納する（ステップＳ６０）。すなわち、ステップＳ５８で生成された縮小画像を、ＲＡＭ３４のキャッシュメモリの領域に格納する。
【００４８】
次に、画像処理装置１０は、処理対象となっているすべての画像の画像ファイルの解凍が終了したかどうかを判断する（ステップＳ６２）。処理対象となっている画像の画像ファイルが複数の場合には、画像処理装置１０は、処理対象となっているすべての画像の縮小画像が、キャッシュメモリに格納されているかどうかを判断する。
【００４９】
処理対象となっているすべての画像の画像ファイルの解凍が終了していないと判断した場合（ステップＳ６２：ＮＯ）には、上述したステップＳ５６に戻り、次の画像ファイルの解凍を続ける。
【００５０】
一方、処理対象となっているすべての画像の画像ファイルの解凍が終了したと判断した場合（ステップＳ６２：ＹＥＳ）、及び、処理対象のすべての画像の縮小画像がキャッシュメモリに格納されていると判断した場合（ステップＳ５４：ＹＥＳ）には、画像処理装置１０は、ユーザが自動画像補正を指定しているかどうかを判断する（ステップＳ６４）。
【００５１】
ユーザが自動画像補正を指定している場合（ステップＳ６４：ＹＥＳ）には、画像処理装置１０は、キャッシュメモリに格納されているＱＶＧＡサイズの縮小画像に基づいて、顔認識処理を行う（ステップＳ６６）。すなわち、人間の顔はある程度の大きさを備えているため、ＶＧＡサイズより小さいＱＶＧＡサイズの縮小画像を用いても精度良く認識することが可能であり、処理時間も短くすることができる。このため、本実施形態では、顔認識処理は、キャッシュメモリに格納されているＱＶＧＡサイズの縮小画像を用いて行うこととしている。
【００５２】
次に、画像処理装置１０は、認識された顔の画像の肌色が綺麗に見え、且つ、背景等も綺麗に見えるように色補正するためのパラメータを決定する（ステップＳ６８）。すなわち、画像全体を統計的に計算することにより、明度、彩度、輝度のバランスを最適化するパラメータを決定する。この決定されたパラメータに基づいて、上述したステップＳ２２では、自動画像補正処理を行う。
【００５３】
次に、このステップＳ６８の処理の後、又は、上述したステップＳ６４でユーザが自動画像補正を指定していないと判断した場合（ステップＳ６４：ＮＯ）には、画像処理装置１０は、図５に示すように、ユーザが赤目補正を指定したかどうかを判断する（ステップＳ８０）。
【００５４】
ユーザが赤目補正を指定したと判断した場合（ステップＳ８０：ＹＥＳ）には、画像処理装置１０は、キャッシュメモリに格納されている縮小画像（以下においては、適宜、第１の縮小画像という）を拡大して、第２の縮小画像を生成する（ステップＳ８２）。具体的には、画像処理装置１０は、キャッシュメモリにあるＱＶＧＡサイズ（３２０×２４０ピクセル）の縮小画像を拡大して、ＶＧＡサイズ（６４０×４８０ピクセル）の縮小画像を生成する。
【００５５】
キャッシュメモリに格納されている第１の縮小画像を拡大して第２の縮小画像を生成する際に用いる補間アルゴリズムは、この第１の縮小画像を生成した際に用いた補間アルゴリズムと同じ手法を用いる。例えば、Ｂｉ−Ｌｉｎｅａｒ法を用いてキャッシュメモリに格納する第１の縮小画像を生成していた場合には、Ｂｉ−Ｌｉｎｅａｒ法を用いて画像の拡大を行う。一方、Ｂｉ−Ｃｕｂｉｃ法を用いてキャッシュメモリに格納する第１の縮小画像を生成していた場合には、Ｂｉ−Ｃｕｂｉｃ法を用いて画像の拡大を行う。これらＢｉ−Ｌｉｎｅａｒ法又はＢｉ−Ｃｕｂｉｃ法を用いてキャッシュメモリに格納する第１の縮小画像を生成していた場合には、それぞれ、Ｂｉ−Ｌｉｎｅａｒ法又はＢｉ−Ｃｕｂｉｃ法を用いて画像の拡大を行うことにより、画像を縮小する際に第１の縮小画像に畳み込まれていた画像情報については、再現することができる。なお、この第２の縮小画像は、ＶＧＡサイズの画像であるので、ＪＰＧ形式の画像ファイルの元画像よりは、サイズの小さい画像である。
【００５６】
次に、画像処理装置１０は、ステップＳ８２で生成された第２の縮小画像を用いて、赤目位置の検出を行う（ステップＳ８４）。すなわち、ＱＶＧＡサイズの縮小画像を用いて赤目の位置を検出するのではなく、これよりも大きなＶＧＡサイズの縮小画像を用いて赤目の位置を検出する。このように大きなサイズの縮小画像を用いて赤目の位置を検出することにより、赤目の位置検出の精度を向上させることができる。このステップＳ８４で赤目が検出された場合には、検出された赤目の位置に基づいて、上述したステップＳ１８で赤目補正処理を行う。
【００５７】
このステップＳ８４の処理の後、又は、上述したステップＳ８０で赤目補正が指定されていないと判断した場合（ステップＳ８０：ＮＯ）、又は、上述したステップＳ５２で自動画像補正及び赤目補正のいずれも指定されていないと判断した場合（ステップＳ５２：ＮＯ）には、画像処理装置１０は、処理対象の画像が回転（ローテート）を必要とする画像であるかどうかを判断する（ステップＳ８６）。すなわち、画像によっては、例えば、時計回り方向又は反時計回り方向に９０度回転して、印刷する必要があるので、そのような指定がなされているかどうかを判断する。
【００５８】
処理対象の画像が回転を必要とする画像である場合（ステップＳ８６：ＹＥＳ）には、画像処理装置１０は、ローテート情報マップを作成する（ステップＳ８８）。次に、画像処理装置１０は、画像内で解凍処理が済んだ位置を特定するためのファイルポインタをリセットする（ステップＳ９０）。
【００５９】
このステップＳ９０の後、又は、上述したステップＳ８６で画像の回転がないと判断した場合（ステップＳ８６：ＮＯ）、又は、上述したステップＳ５０で印刷ライン位置Ｎに画像の先頭が含まれていないと判断した場合（ステップＳ５０：ＮＯ）には、画像処理装置１０は、データバッファに、印刷ライン位置Ｎの画像データがあるかどうかを判断する（ステップＳ９２）。すなわち、解凍を終えて印刷処理可能な印刷ライン位置Ｎの画像データが、データバッファにあるかどうかを判断する。なお、本実施形態においては、データバッファは、例えばＲＡＭ３４に形成されている。また、印刷ライン位置Ｎに複数の画像がある場合には、これらすべての画像の画像データが、データバッファにあるかどうかを判断する。
【００６０】
データバッファに印刷ライン位置Ｎの画像データがないと判断した場合（ステップＳ９２：ＮＯ）には、画像処理装置１０は、ハフマンテーブル、量子化テーブルを用いて、印刷ライン位置Ｎの画像データについて、ハフマン解凍を行い（ステップＳ９４）、逆量子化を行う（ステップＳ９６）。そして、画像処理装置１０は、さらに、逆ＤＣＴ（Discrete Cosine Transform）変換を行い（ステップＳ９８）、ＹＣＣの色空間で定義されている画像データを、ＲＧＢの色空間の定義に変換する（ステップＳ１００）。そして、画像処理装置１０は、得られた画像データを、ＲＡＭ３４に形成されているデータバッファに格納する（ステップＳ１０２）。
【００６１】
次に、画像処理装置１０は、図６に示すように、処理対象の画像が回転（ローテート）を必要とする画像であるかどうかを判断する（ステップＳ１１０）。処理対象の画像が回転を必要とする画像である場合（ステップＳ１１０：ＹＥＳ）には、画像処理装置１０は、ローテート情報マップを更新する（ステップＳ１１２）。一方、処理対象の画像が回転を必要とする画像でない場合（ステップＳ１１０：ＮＯ）には、このステップＳ１１２の処理はスキップする。
【００６２】
次に、画像処理装置１０は、画像内で解凍処理が済んだ位置を特定するためのファイルポインタを更新し、セーブしておく（ステップＳ１１４）。
【００６３】
このステップＳ１１４の後、又は、上述したステップＳ９２でデータバッファに印刷ライン位置Ｎの画像データが存在すると判断した場合（ステップＳ９２：ＹＥＳ）には、画像処理装置１０は、データバッファから印刷ライン位置Ｎの画像データを取得する（ステップＳ１１６）。
【００６４】
次に、画像処理装置１０は、印刷ライン位置Ｎが、処理対象の画像の最後の位置であるかどうかを判断する（ステップＳ１１８）。すなわち、印刷ライン位置Ｎに処理対象の画像の最後の位置が含まれているかどうかを判断する。印刷ライン位置Ｎが処理対象の画像の最後の位置である場合（ステップＳ１１８：ＹＥＳ）には、この解凍処理をしていた画像ファイルをクローズし、解凍処理を行うために取得していたハフマンテーブル及び量子化テーブルを解放する（ステップＳ１２０）。一方、印刷ライン位置Ｎが処理対象の画像の最後の位置ではない場合（ステップＳ１１８：ＮＯ）には、画像処理装置１０は、このステップＳ１２０をスキップする。
【００６５】
これにより、本実施形態に係る画像ファイル解凍処理が終了する。すなわち、印刷実行処理のステップＳ１４が終了する。
【００６６】
以上のように、本実施形態に係る画像処理装置１０によれば、ＱＶＧＡサイズの第１の縮小画像を拡大したＶＧＡサイズの第２の縮小画像を用いて、赤目の位置を検出するようにしたので、赤目検出の精度を高くすることができる。すなわち、小さいＱＶＧＡサイズの第１の縮小画像で赤目検出をすると見落とされるような赤目であっても、これを拡大したＶＧＡサイズの第２の縮小画像で赤目検出をすることにより、正しく検出できるようになる。
【００６７】
また、ＱＶＧＡサイズの第１の縮小画像は、ＣＰＵ２０の空き時間を利用して、キャッシュメモリに既に格納されている可能性があり、キャッシュメモリにＱＶＧＡサイズの第１の縮小画像が格納されている場合には、新たにＱＶＧＡサイズの第１の縮小画像を生成する必要はなく、赤目検出に要する処理時間の増大を回避することができる。
【００６８】
また、自動画像補正処理においては、顔認識処理を含めて、ＱＶＧＡサイズの第１の縮小画像に基づいてこれを行うようにしたので、自動画像補正の増大も回避することができる。すなわち、大きな画像で自動画像補正処理を行うと、その分、処理時間が増大するが、ＱＶＧＡサイズの第１の縮小画像で自動画像補正処理を行うこととしているため、そのような処理時間の増大を回避することができる。
【００６９】
また、キャッシュメモリにＱＶＧＡサイズの第１の縮小画像が格納されていない場合には、元画像に基づいて、ＱＶＧＡサイズの第１の縮小画像を生成することになるが、このＱＶＧＡサイズの第１の縮小画像は、自動画像補正処理をする際にも必要となる縮小画像であるため、赤目検出で必要なＶＧＡサイズの第２の縮小画像を生成するためだけに、ＱＶＧＡサイズの第２の縮小画像生成するという事態が生じるのを極力避けることができる。
【００７０】
さらに、自動画像補正処理における顔認識処理は、小さなＱＶＧＡサイズの第１の縮小画像に基づいて行うこととしたので、顔認識処理及び自動画像補正処理に要する時間の増大を、回避することができる。すなわち、顔認識処理を、赤目位置検出処理と同じＶＧＡサイズで行うことによる処理時間の増大を回避することができる。例えば、顔認識処理をＶＧＡサイズの第２の縮小画像で行う場合、ＱＶＧＡサイズの第１の縮小画像で行う場合と比べて、およそ４倍の処理時間がかかることになる。本実施形態によれば、このような処理時間の増大を回避することができる。
【００７１】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態では、第１の縮小画像のサイズが３２０×２４０ピクセルのＱＶＧＡであり、この第１の縮小画像より大きいサイズの第２の縮小画像が６４０×４８０ピクセルのＶＧＡである場合を例に説明したが、第１及び第２の縮小画像のサイズは、これらに限定されるものではない。
【００７２】
また、上述した実施形態では、画像を拡大縮小する補間アルゴリズムとして、Ｂｉ−Ｌｉｎｅａｒ法、Ｂｉ−Ｃｕｂｉｃ法を用いた例を説明したが、他の補間アルゴリズムを用いて画像を拡大縮小することもできる。例えば、単純間引きによる手法で、元画像から第１の縮小画像を生成し、この第１の縮小画像のデータを単純に水増しして第２の縮小画像を生成するようにしてもよい。ここで、単純間引きとは、例えば、元画像を構成するピクセルをふるいにかけて、１０ピクセル毎に抽出するような縮小手法である。また、単純水増しとは、例えば、第１の縮小画像を構成する各ピクセルの間に、隣接するピクセルと同じ値を割り付けて、ピクセル数を増大させるような拡大手法である。
【００７３】
また、画像を縮小して第１の縮小画像を生成する際の補間アルゴリズムと、第１の縮小画像を拡大して第２の縮小画像を生成する際の補間アルゴリズムは、必ずしも同じである必要はない。例えば、単純間引きによる縮小で第１の縮小画像を生成し、Ｂｉ−Ｌｉｎｅａｒ法により第１の縮小画像から第２の縮小画像を生成するようにしてもよい。或いは、Ｂｉ−Ｌｉｎｅａｒ法よる縮小で第１の縮小画像を生成し、データを単純に水増しする手法により第１の縮小画像から第２の縮小画像を生成するようにしてもよい。
【００７４】
さらに、上述した実施形態では、第１の縮小画像及び第２の縮小画像のサイズをそれぞれＱＶＧＡ、ＶＧＡのサイズで固定したが、これは、各種の設定に応じて可変にしてもよい。例えば、印刷モードが標準の時は、上述した実施形態のように第２の縮小画像のサイズをＶＧＡにするが、印刷モードが高品位の時は、第２の縮小画像サイズをＸＶＧＡ（１０２４×７６８ピクセル）にしてもよい。また、ＣＰＵ２０がキャッシュメモリとして使用できるメモリの空き容量に基づいて、第１の縮小画像及び第２の縮小画像のサイズを変更するようにしてもよい。
【００７５】
さらに、上述した図４乃至図６の画像ファイル解凍処理は、高速モードにおける印刷の場合に実行し、高精細モードにおける印刷の場合には、赤目検出の精度を上げるために、元画像から、別途、第２の縮小画像を生成するようにしてもよい。この切り替えは、ユーザの指示に基づいて行うようにしてもよいし、或いは、印刷モードが標準の時は上述した実施形態の手法で第２の縮小画像を生成し、印刷モードが高品位の時は、元画像から別途、第２の縮小画像を生成するようにしてもよい。
【００７６】
さらに、上述の実施形態で説明した印刷実行処理及び画像ファイル解凍処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＲＯＭ、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、この記録媒体に記録されたプログラムを画像処理装置１０に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【００７７】
また、画像処理装置１０は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、画像処理装置１０の備える他のプログラムを活用するために、その画像処理装置１０が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を含むプログラムを、記録媒体に記録するようにしてもよい。
【００７８】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、画像処理装置１０に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【００７９】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ画像処理装置１０は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
【００８０】
また、上述した実施形態では、印刷実行処理及び画像ファイル解凍処理をソフトウェアにより実現する場合を例に説明したが、これらの各処理をＡＳＩＣ（Application Specific IC）などのハードウェアにより実現するようにしてもよい。さらには、これらの各処理を、ソフトウェアとハードウェアとが協働して実現するようにしてもよい。
【図面の簡単な説明】
【００８１】
【図１】本実施形態に係る画像処理装置の内部構成の一例を説明するブロック図。
【図２】本実施形態に係る画像処理装置で実行される印刷実行処理の一例を説明するフローチャートを示す図（その１）。
【図３】本実施形態に係る画像処理装置で実行される印刷実行処理の一例を説明するフローチャートを示す図（その２）。
【図４】本実施形態に係る画像処理装置で実行される画像ファイル解凍処理の一例を説明するフローチャートを示す図（その１）。
【図５】本実施形態に係る画像処理装置で実行される画像ファイル解凍処理の一例を説明するフローチャートを示す図（その２）。
【図６】本実施形態に係る画像処理装置で実行される画像ファイル解凍処理の一例を説明するフローチャートを示す図（その３）。
【符号の説明】
【００８２】
１０  画像処理装置
２０  ＣＰＵ
２２  ＲＯＭ
２４  カードインターフェース
２６  通信インターフェース
２８  画面インターフェース
３０  装置制御部
３２  内部バス
３４  ＲＡＭ
４０  ＲＡＭ
４２  印刷ヘッド
４４  キャリッジ
４６  紙送り機構
４８  スキャナ
１００  カード型外部デバイス
１０２  外部デバイス
【図１】
2009124576.tif 000003
【図２】
2009124576.tif 000004
【図３】
2009124576.tif 000005
【図４】
2009124576.tif 000006
【図５】
2009124576.tif 000007
【図６】
2009124576.tif 000008