(57)【要約】【課題】ユーザの印刷待ち時間の増大を回避しつつ、赤目の位置を検出するための赤目位置検出処理の際におけるメモリ使用量の削減を図ったプリンタ及びその制御方法を提供する。【解決手段】プリンタは、元画像を縮小することにより、縮小画像を生成する、縮小画像生成手段と、前記縮小画像に基づいて、赤目の位置を検出するための処理を行う、第１赤目位置検出手段と、元画像に基づいて画像の印刷をするために、印刷用の画像データの一部を一時的に印刷データ記憶装置に格納する、格納実行手段と、前記印刷データ記憶装置に格納されている画像データに基づいて、赤目の位置を検出するための処理を行う、第２赤目位置検出手段と、前記第１赤目位置検出手段及び前記第２赤目位置検出手段とで検出された赤目の位置に基づいて赤目補正を行う、赤目補正手段と、を備えて構成されている。【選択図】図１
2009130590.tif 000002
【特許請求の範囲】
【請求項１】
元画像を縮小することにより、縮小画像を生成する、縮小画像生成手段と、
前記縮小画像に基づいて、赤目の位置を検出するための処理を行う、第１赤目位置検出手段と、
元画像に基づいて画像の印刷をするために、印刷用の画像データの一部を一時的に印刷データ記憶装置に格納する、格納実行手段と、
前記印刷データ記憶装置に格納されている画像データに基づいて、赤目の位置を検出するための処理を行う、第２赤目位置検出手段と、
前記第１赤目位置検出手段及び前記第２赤目位置検出手段とで検出された赤目の位置に基づいて赤目補正を行う、赤目補正手段と、
を備えることを特徴とするプリンタ。
【請求項２】
前記第１赤目位置検出手段で検出する赤目の元画像に占める大きさの割合は、前記第２赤目位置検出手段で検出する赤目の元画像に占める大きさの割合よりも、大きい、ことを特徴とする請求項１に記載のプリンタ。
【請求項３】
前記縮小画像生成手段は、ＣＰＵの空き時間を用いて前記縮小画像を予め生成して縮小画像記憶装置に格納しておき、
前記第１赤目位置検出手段は、前記縮小画像記憶装置から、この縮小画像を取得して、赤目の位置を検出するための処理を行う、
ことを特徴とする請求項１又は請求項２に記載のプリンタ。
【請求項４】
前記縮小画像記憶装置に格納されている縮小画像を読み出して、表示画面に表示する、縮小画像表示手段を、さらに備えることを特徴とする請求項３に記載のプリンタ。
【請求項５】
前記格納実行手段は、元画像のデータから得られたフルサイズの画像データを、印刷用の画像データとして、前記印刷データ記憶装置に格納する、請求項１乃至請求項４のいずれかに記載のプリンタ。
【請求項６】
前記赤目補正手段で赤目補正をした後に、その画像の印刷を行う、印刷実行手段を、さらに備えることを特徴とする請求項１乃至請求項５のいずれかに記載のプリンタ。
【請求項７】
元画像を縮小することにより、縮小画像を生成する工程と、
前記縮小画像に基づいて、赤目の位置を検出するための処理を行う工程と、
元画像に基づいて画像の印刷をするために、印刷用の画像データの一部を一時的に印刷データ記憶装置に格納する工程と、
前記印刷データ記憶装置に格納されている画像データに基づいて、赤目の位置を検出するための処理を行う工程と、
前記縮小画像に基づいて検出された赤目の位置と、前記印刷データ記憶装置に格納されている画像データに基づいて検出された赤目の位置とに基づいて、赤目補正を行う工程と、
を備えることを特徴とするプリンタの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ及びその制御方法に関し、特に、赤目位置検出処理の際のメモリ使用量の削減を図ったプリンタ及びその制御方法に関する。
【背景技術】
【０００２】
プリンタなどの画像処理装置の中には、事前に画像をサンプリングして縮小画像を生成し、このサンプリングした縮小画像に基づいて画像認識処理を行った上で、実際の画像処理を行うことのできる装置がある。例えば、サンプリングした縮小画像に基づいて赤目の位置を検出する赤目位置検出処理を行い、赤目が検出された場合には、その検出された赤目の位置に基づいて赤目補正処理を行った上で印刷を行うプリンタがある（例えば、特開２００４−１６４２７６号公報参照）。
【０００３】
一般的に、赤目補正処理のために赤目位置検出処理を行う場合、ＶＧＡサイズ（６４０×４８０ピクセル）以上の大きさの画像が必要になる。このため、赤目位置検出処理を精度良く行うために、ＶＧＡサイズの画像を用意するという手法も考えられる。
【０００４】
しかし、ＶＧＡサイズの画像のＲＧＢ画像データを保持するだけで９００ＫＢ程度のメモリ容量が必要となり、メモリ容量が小さい画像処理装置にとっては、負担が大きい。特に、この赤目位置検出処理を含む赤目補正処理を予め組み込んでおく組み込み型のプリンタなどにおいては、搭載されているメモリサイズが小さく、必ずしも十分なメモリ容量を、この画像認識処理のために確保できない場合も多い。
【０００５】
さらに、画像処理装置によっては、ＧＵＩ（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）などのハードウェアにより実現するようにしてもよい。さらには、これらの各処理を、ソフトウェアとハードウェアとが協働して実現するようにしてもよい。
【図面の簡単な説明】
【００８０】
【図１】本実施形態に係る画像処理装置の内部構成の一例を説明するブロック図。
【図２】本実施形態に係る画像処理装置で実行される印刷実行処理の一例を説明するフローチャートを示す図（その１）。
【図３】本実施形態に係る画像処理装置で実行される印刷実行処理の一例を説明するフローチャートを示す図（その２）。
【図４】本実施形態に係る画像処理装置で実行される画像ファイル解凍処理の一例を説明するフローチャートを示す図（その１）。
【図５】本実施形態に係る画像処理装置で実行される画像ファイル解凍処理の一例を説明するフローチャートを示す図（その２）。
【図６】本実施形態に係る画像処理装置で実行される画像ファイル解凍処理の一例を説明するフローチャートを示す図（その３）。
【符号の説明】
【００８１】
１０  画像処理装置
２０  ＣＰＵ
２２  ＲＯＭ
２４  カードインターフェース
２６  通信インターフェース
２８  画面インターフェース
３０  装置制御部
３２  内部バス
３４  ＲＡＭ
４０  ＲＡＭ
４２  印刷ヘッド
４４  キャリッジ
４６  紙送り機構
４８  スキャナ
１００  カード型外部デバイス
１０２  外部デバイス
【図１】
2009130590.tif 000003
【図２】
2009130590.tif 000004
【図３】
2009130590.tif 000005
【図４】
2009130590.tif 000006
【図５】
2009130590.tif 000007
【図６】
2009130590.tif 000008