(57)【要約】【課題】可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮する。【解決手段】赤目領域の候補となる赤目候補領域として抽出されたブロックの位置座標を赤目候補領域情報として入力し（Ｓ５００）、入力した赤目候補領域のブロックの位置座標とＲＳＴマーカーの挿入間隔とに基づいて復号化の開始位置を設定し（Ｓ５１０〜５４０）、設定した復号化の開始位置から復号化するから（Ｓ５５０〜５７０）、ＪＰＥＧデータの先頭から赤目候補領域まで復号化するものに比して、赤目候補領域を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。【選択図】図６
2013120999.tif 000002
【特許請求の範囲】
【請求項１】
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置であって、
前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶する記憶手段と、
画像処理の対象となる処理対象部分に関する位置情報を取得する位置情報取得手段と、
前記取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化する部分復号化手段と、
を備える画像処理装置。
【請求項２】
前記部分復号化手段は、前記マーカー挿入済み画像から前記リスタートマーカーを検出し、該検出したリスタートマーカーの次のリスタートマーカーの位置を前記挿入間隔を用いて求めると共に該位置を求めた次のリスタートマーカーまでに前記処理対象部分が含まれるか否かを前記位置情報を参照して判定する判定処理を実行し、前記処理対象部分が含まれると判定したときに前記検出したリスタートマーカーに続く位置を復号化の開始位置に設定して復号化する手段である請求項１記載の画像処理装置。
【請求項３】
前記部分復号化手段は、前記リスタートマーカーを検出する度に前記判定処理を繰り返し実行し、前記処理対象部分が含まれると判定する度に前記検出したリスタートマーカーに続く位置を新たな復号化の開始位置に設定し該設定した開始位置から次のリスタートマーカーまでを部分的に復号化し、前記処理対象部分が含まれないと判定する度に前記検出したリスタートマーカーからその次のリスタートマーカーまでの復号化を省略する手段である請求項２記載の画像処理装置。
【請求項４】
請求項２または３記載の画像処理装置であって、
前記記憶手段は、前記マーカー挿入済み画像として、該画像の先頭から前記挿入間隔を隔てた位置に最初のリスタートマーカーが挿入された画像を記憶する手段であり、
前記部分復号化手段は、前記位置情報を参照して前記マーカー挿入済み画像の先頭から前記最初のリスタートマーカーまでに前記処理対象部分が含まれると判定したときには、前記マーカー挿入済み画像の先頭を復号化の開始位置に設定して復号化する手段である
画像処理装置。
【請求項５】
前記圧縮画像として、前記リスタートマーカーが挿入されていないマーカー未挿入画像を取得し、該取得したマーカー未挿入画像から前記処理対象部分の候補である処理候補部分を抽出し、該抽出した処理候補部分を精査して前記処理対象部分を確定してから画像処理する請求項１ないし４いずれか１項に記載の画像処理装置であって、
前記記憶手段は、前記取得したマーカー未挿入画像を先頭から末尾まで一旦復号化し、該一旦復号化した画像を前記ブロック毎に再び可変長符号化すると共に該ブロックを所定数ずつ可変長符号化する度に前記リスタートマーカーを付加して前記マーカー挿入済み画像を生成して記憶する手段であり、
前記位置情報取得手段は、前記一旦復号化された画像から前記処理候補部分を抽出し、該抽出した処理候補部分の位置を前記位置情報として取得する手段であり、
前記部分復号化手段は、前記処理候補部分の精査のために、前記設定した開始位置から前記マーカー挿入済み画像を復号化する手段である
画像処理装置。
【請求項６】
画像中の赤目の領域を前記処理対象部分として画像処理する請求項５記載の画像処理装置。
【請求項７】
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理方法であって、
（ａ）前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶するステップと、
（ｂ）画像処理の対象となる処理対象部分に関する位置情報を取得するステップと、
（ｃ）前記ステップ（ｂ）で取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化するステップと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、この種の画像処理装置としては、画像を８×８画素に分割したブロック毎に周波数成分に変換しハフマン符号化などの可変長符号化により圧縮した圧縮画像を復号化しながら回転処理するものが提案されている（例えば、特許文献１参照）。この装置では、回転処理に用いるリスタートマーカーが挿入されていない圧縮画像を取得すると、まず、圧縮画像を一旦復号化し、次に、復号化した画像をブロック毎に再び符号化すると共に所定数のブロックの符号化が完了する度にリスタートマーカーを付加していく。これにより、１ストライプ幅（所定数のブロック）毎にリスタートマーカーが挿入された圧縮画像を生成する。こうしてリスタートマーカーが挿入された圧縮画像の回転処理は、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の１段下のブロックを復号化する処理を繰り返し、１ストライプ幅分のすべてのブロックを復号化してから、復号化したブロックを回転させることにより行なわれる。そして、１ストライプ幅分の復号化と回転処理とが完了すると、次のストライプ幅のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。これにより、可変長符号化により符号化後の各ブロックのデータ長が異なるものにおいても、圧縮画像を１ストライプ幅分のブロックずつ順に復号化して回転させることができるとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２４７４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、回転用のリスタートマーカーを用いて、１ストライプ幅分のブロックずつ順に復号化して回転処理を行なうものがあるが、上述した特許文献１では他の画像処理については言及されていない。ここで、圧縮画像に対する処理としては、回転処理に限られず、圧縮画像を復号化してから画像の色や明るさなどを補正する補正処理や画像をトリミングするトリミング処理などがあり、また、画像全体ではなく画像の一部を対象として処理する場合もある。しかし、可変長符号化により各ブロックのデータ長が異なり、ブロックの境を検出するのは困難となるため、処理の対象となる部分のブロックだけを復号化することができず、画像の先頭からそのブロックまで順に復号化していかなければならない。このため、処理の対象となる部分の位置によっては、処理に不必要な部分の復号化に多くの時間を要することがあり、画像処理の遅延に繋がってしまう。
【０００５】
本発明の画像処理装置および画像処理方法は、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置および画像処理方法は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の画像処理装置は、
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置であって、
前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶する記憶手段と、
画像処理の対象となる処理対象部分に関する位置情報を取得する位置情報取得手段と、
前記取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化する部分復号化手段と、
を備えることを要旨とする。
【０００８】
この本発明の画像処理装置では、画像処理の対象となる処理対象部分に関する位置情報を取得し、取得した位置情報とリスタートマーカーが挿入された間隔である挿入間隔とに基づいてマーカー挿入済み画像の復号化の開始位置を設定し、設定した開始位置からマーカー挿入済み画像を部分的に復号化する。これにより、画像の先頭から処理対象部分まで復号化するものに比して、処理対象部分を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。
【０００９】
こうした本発明の画像処理装置において、前記部分復号化手段は、前記マーカー挿入済み画像から前記リスタートマーカーを検出し、該検出したリスタートマーカーの次のリスタートマーカーの位置を前記挿入間隔を用いて求めると共に該位置を求めた次のリスタートマーカーまでに前記処理対象部分が含まれるか否かを前記位置情報を参照して判定する判定処理を実行し、前記処理対象部分が含まれると判定したときに前記検出したリスタートマーカーに続く位置を復号化の開始位置に設定して復号化する手段であるものとすることもできる。こうすれば、位置情報とリスタートマーカーの挿入間隔とに基づいて復号化の開始位置を容易に設定することができる。
【００１０】
この態様の本発明の画像処理装置において、前記部分復号化手段は、前記リスタートマーカーを検出する度に前記判定処理を繰り返し実行し、前記処理対象部分が含まれると判定する度に前記検出したリスタートマーカーに続く位置を新たな復号化の開始位置に設定し該設定した開始位置から次のリスタートマーカーまでを部分的に復号化し、前記処理対象部分が含まれないと判定する度に前記検出したリスタートマーカーからその次のリスタートマーカーまでの復号化を省略する手段であるものとすることもできる。こうすれば、処理対象部分が含まれるリスタートマーカー間だけを復号化すればよく、処理対象部分が含まれないリスタートマーカー間の復号化に時間を取られることがないから、画像全体の復号化の時間をさらに短くすることができる。このため、圧縮画像の処理に要する時間をさらに短縮することができる。
【００１１】
また、これらの態様の本発明の画像処理装置において、前記記憶手段は、前記マーカー挿入済み画像として、該画像の先頭から前記挿入間隔を隔てた位置に最初のリスタートマーカーが挿入された画像を記憶する手段であり、前記部分復号化手段は、前記位置情報を参照して前記マーカー挿入済み画像の先頭から前記最初のリスタートマーカーまでに前記処理対象部分が含まれると判定したときには、前記マーカー挿入済み画像の先頭を復号化の開始位置に設定して復号化する手段であるものとすることもできる。
【００１２】
また、前記圧縮画像として、前記リスタートマーカーが挿入されていないマーカー未挿入画像を取得し、該取得したマーカー未挿入画像から前記処理対象部分の候補である処理候補部分を抽出し、該抽出した処理候補部分を精査して前記処理対象部分を確定してから画像処理する本発明の画像処理装置において、前記記憶手段は、前記取得したマーカー未挿入画像を先頭から末尾まで一旦復号化し、該一旦復号化した画像を前記ブロック毎に再び可変長符号化すると共に該ブロックを所定数ずつ可変長符号化する度に前記リスタートマーカーを付加して前記マーカー挿入済み画像を生成して記憶する手段であり、前記位置情報取得手段は、前記一旦復号化された画像から前記処理候補部分を抽出し、該抽出した処理候補部分の位置を前記位置情報として取得する手段であり、前記部分復号化手段は、前記処理候補部分の精査のために、前記設定した開始位置から前記マーカー挿入済み画像を復号化する手段であるものとすることもできる。こうすれば、マーカー未挿入画像であっても、画像処理に要する時間を短縮することができる。また、リスタートマーカーを挿入するのに圧縮画像を一旦復号化しているが、処理候補部分を抽出するためにも圧縮画像を一旦復号化する必要があるから、リスタートマーカーを挿入するためだけに処理負担が大きく増えるのを防止することができる。
【００１３】
この態様の本発明の画像処理装置において、画像中の赤目の領域を前記処理対象部分として画像処理するものとすることもできる。
【００１４】
本発明の画像処理方法は、
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理方法であって、
（ａ）前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶するステップと、
（ｂ）画像処理の対象となる処理対象部分に関する位置情報を取得するステップと、
（ｃ）前記ステップ（ｂ）で取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化するステップと、
を含むことを要旨とする。
【００１５】
この本発明の画像処理方法では、画像処理の対象となる処理対象部分に関する位置情報を取得し、取得した位置情報とリスタートマーカーが挿入された間隔である挿入間隔とに基づいてマーカー挿入済み画像の復号化の開始位置を設定し、設定した開始位置からマーカー挿入済み画像を部分的に復号化する。これにより、画像データの先頭から処理対象部分まで復号化するものに比して、処理対象部分を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。なお、この画像処理方法において、上述した画像処理装置のいずれかの態様を実現するようなステップを追加するものとしてもよい。
【図面の簡単な説明】
【００１６】
【図１】プリンター２０の構成の概略を示す構成図。
【図２】赤目補正印刷処理ルーチンの一例を示すフローチャート。
【図３】赤目候補領域の抽出処理の一例を示すフローチャート。
【図４】ＪＰＥＧデータの再構築処理の一例を示すフローチャート。
【図５】再構築処理されたＪＰＥＧデータの画像の様子を示す説明図。
【図６】赤目候補領域の精査処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１７】
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本発明の画像処理装置の一実施形態であるプリンター２０の構成の概略を示す構成図である。本実施形態のプリンター２０は、図示するように、給紙トレイ２３から搬送された用紙に印刷用データに基づいてシアン（Ｃ），マゼンタ（Ｍ），イエロー（Ｙ），ブラック（Ｋ）のＣＭＹＫの各色のインクを印刷ヘッドから吐出することにより印刷を実行し排紙トレイ２４に排紙するインクジェット方式のプリンターユニット３０と、図示しないガラス台に載置された原稿に向かって発光した後の反射光をレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）のＲＧＢの各色に分解して画像データとするフラットベッド式のスキャナーユニット３５と、メモリーカードスロット４０ａに挿入されたメモリーカードＭＣとの間でデータを格納したファイルの読み書きを行なうカードコントローラー４０と、各種モードの設定画面や印刷の設定画面などを表示部５２に表示したり各種モードの設定や印刷の設定に関する指示などをユーザーによるボタン群５４の操作を介して入力したりする操作パネル５０と、装置全体の制御を司るメインコントローラー６０とを備える。このプリンター２０では、プリンターユニット３０やスキャナーユニット３５，カードコントローラー４０，メインコントローラー６０がバス６９を介して互いに各種制御信号やデータのやり取りをすることができるよう構成されている。
【００１８】
カードコントローラー４０は、メインコントローラー６０からの読み出し指令に基づいてメモリーカードＭＣからファイルを読み出してメインコントローラー６０に送信したり、メインコントローラー６０からの書き込み指令に基づいてメモリーカードＭＣにファイルを書き込んだりする。
【００１９】
このメモリーカードＭＣには、デジタルカメラなどで撮影されてＪＰＥＧ方式により圧縮されたＪＰＥＧデータを格納したファイルなどが記憶されている。このＪＰＥＧ方式による圧縮では、詳細については省略するが、撮影された画像の各８ビットのＲＧＢ値を輝度成分と色差成分とを示すＹＣｂＣｒ値に変換し、８×８画素（６４画素）の最小符号化ユニット（１ＭＣＵ（Minimum Coded Unit），以下、ブロックとする）に分割して、ブロック単位で離散コサイン変換（ＤＣＴ演算）して周波数成分の大きさを表す８×８成分（６４成分）のＤＣＴ係数に変換し、変換したＤＣＴ係数を量子化して、量子化後のＤＣＴ係数をランレングス符号化やグループ符号化，ハフマン符号化などによりエントロピー符号化することで、画像を圧縮している。なお、各ブロックのＤＣＴ係数は、ブロックの左上隅の成分がブロック内で変化がなくブロック内の平均値を示すＤＣ係数（直流成分）であり、残りの６３成分がブロック内の変化を示すＡＣ係数（交流成分）となる。ＤＣ係数は、隣接するブロックのＤＣ係数と値が近いことが多いため、隣接するブロックのＤＣ係数との差分値に関する情報が符号化される。具体的には、差分値がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの差分値に該当するかの情報が、それぞれ対応するハフマン符号化やグループ符号化により符号化される。また、ＡＣ係数は、ブロック内の変化が小さく量子化により値０となるものが多いため、値０の連続する個数（ランレングス数）と値０の連続を止める値０でない係数とをセットにした情報が符号化される。具体的には、値０でない係数がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの係数に該当するかの情報，ランレングス数の情報が、それぞれ対応するハフマン符号化やグループ符号化，ランレングス符号化により符号化される。ここで、ハフマン符号化は出現頻度が高いものほど符号化長の短い符号を割り当てる可変長符号化であるため、圧縮対象の画像が通常の人物画像や風景画像などであれば、符号化後の１ブロック当たりのデータ長はブロック毎に異なるものとなる。なお、本実施形態では、ランレングス符号化やグループ符号化，ハフマン符号化をまとめてエントロピー符号化と称することがあり、復号化についても同様とする。
【００２０】
メインコントローラー６０は、ＣＰＵ６２を中心とするマイクロプロセッサーとして構成されており、各種処理プログラムや各種データ、各種テーブルなどを記憶したＲＯＭ６４と、一時的に各種データなどを記憶するＲＡＭ６６とを備える。このメインコントローラー６０は、プリンターユニット３０やスキャナーユニット３５，カードコントローラー４０からの各種動作信号や各種検出信号を入力したり、操作パネル５０のボタン群５４からの操作信号を入力したりする。また、メモリーカードＭＣからのファイルの読み出し指令をカードコントローラー４０に出力したり、印刷指令をプリンターユニット３０に出力したり、ボタン群５４からのスキャン指示に基づいて原稿の読み取り指令をスキャナーユニット３５に出力したり、表示部５２に画像データの表示指令を出力したりする。
【００２１】
また、メインコントローラー６０は、メモリーカードＭＣから入力したＪＰＥＧデータを表示部５２で表示するための表示用データに変換する際には、ＪＰＥＧデータを上述した圧縮と逆の順即ちハフマン復号化やグループ復号化，ランレングス復号化からなるエントロピー復号化，逆量子化，逆ＤＣＴの順に復号化（解凍）し、復号化により得られたＹＣｂＣｒ値をＲＧＢ各８ビットのデータに色変換し、ＲＧＢ各８ビットのデータを表示部５２で表示可能な所定のビット数に減らす処理などが行なわれる。また、ＪＰＥＧデータをプリンターユニット３０で印刷するための印刷用データに変換する際には、表示用データと同様にＪＰＥＧデータを復号化してＲＧＢ各８ビットのデータに色変換してから、さらに、ＣＭＹＫ各８ビットのデータに色変換し、ＣＭＹＫ各８ビットのデータをディザ法や誤差拡散法などにより各２ビットのデータ（２値化データ）に変換する処理などが行なわれる。
【００２２】
このプリンター２０では、画像の色補正や画像の向きなどに関する各種設定が可能となっており、例えば、デジタルカメラでの画像撮影時のフラッシュ発光に伴って生じた赤目を補正する赤目補正や画像の向きを回転させる回転処理をしてから印刷する回転印刷などが設定可能となっている。ここで、赤目補正は、赤目として検出された領域の色を黒目の色に置換することなどにより行なわれる。また、回転処理は、対象となる画像がＪＰＥＧデータの場合には、ＪＰＥＧデータに所定数のブロック毎（１ストライプ幅ともいう）に挿入されたリスタートマーカー（ＲＳＴマーカー）を用いて行なわれる。なお、ＲＳＴマーカーは、ＪＰＥＧの規格で定められた２バイトのコードであり、ＦＦＤ０〜ＦＦＤ７で表される。ＲＳＴマーカーを用いた回転処理では、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の１段下のブロックを復号化する処理を繰り返し、１ストライプ幅分のすべてのブロックを復号化すると、復号化したブロックを回転させることにより行なわれる。そして、１ストライプ幅分の回転処理が完了すると、次のストライプ幅分のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。
【００２３】
次に、こうして構成された本実施形態のプリンター２０の動作、特に、画像中の赤目を補正して画像を印刷する際の動作について説明する。図２は、ＣＰＵ３１により実行される赤目補正印刷処理ルーチンの一例を示すフローチャートである。このルーチンは、メモリーカードＭＣがメモリーカードスロット４０ａに挿入された状態で、表示部５２に表示される図示しない画像選択画面からボタン群５４の操作により印刷対象の画像が選択されると共に色補正の設定で赤目補正がオンとされて、印刷開始が指示されたときに実行される。
【００２４】
この赤目補正印刷処理ルーチンが実行されると、メインコントローラー６０のＣＰＵ６２は、まず、印刷対象の画像データ（ここではＪＰＥＧデータとする）を入力し（ステップＳ１００）、入力したＪＰＥＧデータの１ブロック分をハフマン復号化する（ステップＳ１１０）。次に、ハフマン復号化した１ブロック分のデータを用いて画像中の赤目の候補である赤目候補領域を抽出する赤目候補領域の抽出処理を実行し（ステップＳ１２０）、ハフマン復号化した１ブロック分のデータを必要に応じてＲＳＴマーカーを挿入しながら再びＪＰＥＧデータに再構築するＪＰＥＧデータの再構築処理を実行する（ステップＳ１３０）。これらのステップＳ１１０〜Ｓ１３０の処理をすべてのブロックの処理が完了するまで繰り返し（ステップＳ１４０）、すべてのブロックの処理が完了するとステップＳ１２０で抽出した赤目候補領域が赤目の領域であるか否かを精査して赤目領域を確定する赤目候補領域の精査処理を実行する（ステップＳ１５０）。以下、赤目補正印刷処理ルーチンの説明を中断し、赤目候補領域の抽出処理とＪＰＥＧデータの再構築処理，赤目候補領域の精査処理の詳細について、順に説明する。なお、赤目候補領域が本発明の処理候補部分に相当し、赤目領域が本発明の処理対象部分に相当する。
【００２５】
まず、赤目候補領域の抽出処理について説明する。図３は、赤目候補領域の抽出処理の一例を示すフローチャートである。この赤目候補領域の抽出処理では、まず、印刷処理ルーチンのステップＳ１１０でハフマン復号化した１ブロック分の係数を入力し（ステップＳ３００）、入力した係数をグループ復号化すると共にランレングス復号化して（ステップＳ３１０，Ｓ３２０）、１ブロック分の係数のエントロピー復号化を完了させる。次に、エントロピー復号化された係数を逆量子化し（ステップＳ３３０）、逆量子化した係数を逆ＤＣＴ演算して１ブロック分のＪＰＥＧデータを復号化する（ステップＳ３４０）。そして、復号化により得られたＹＣｂＣｒ値をＲＧＢ値に色変換し（ステップＳ３５０）、色変換した各画素のＲＧＢ値から１ブロック分のＲＧＢ値の平均値を算出する（ステップＳ３６０）。続いて、算出した１ブロック分のＲＧＢ値に基づいて処理中のブロックが赤目であるか否かを判定する（ステップＳ３７０）。ここで、赤目であるか否かは、１ブロック分の平均値として算出したＲＧＢの各階調値がＲＧＢ空間上において予め設定された赤目の階調値を中心とする領域内に属するか否かにより判定するものとした。
【００２６】
ステップＳ３７０で処理中のブロックが赤目であると判定したときには、処理中のブロックを赤目候補領域としてそのブロックの位置をＲＡＭ６６の赤目候補領域情報に記憶して（ステップＳ３８０）、本処理を終了する。ここで、ブロックの位置は、画像の左上隅のブロックである１行１列目のブロックの位置を基準位置（１，１）として、右方向をｘ座標の正方向，下方向をｙ座標の正方向とする位置座標（ｘ，ｙ）で表すものとした。このため、例えば、位置座標（２，５）のブロックは、左端から２番目（２列目）で上から５番目（５行目）のブロックとなる。一方、ステップＳ３７０で処理中のブロックが赤目ではないと判定したときには、本処理を終了する。この処理により、赤目と判定されたブロックを赤目候補領域としてその位置情報が赤目候補領域情報に記憶されることになり、赤目と判定されないブロックは赤目候補領域とされないことになる。
【００２７】
次に、ＪＰＥＧデータの再構築処理について説明する。図４は、ＪＰＥＧデータの再構築処理の一例を示すフローチャートであり、図５は、再構築処理されたＪＰＥＧデータの画像の様子を示す説明図である。このＪＰＥＧデータの再構築処理では、まず、上述した赤目補正印刷処理ルーチンのステップＳ１１０でハフマン復号化した１ブロック分の係数を入力し（ステップＳ４００）、入力した係数をハフマン符号化してＪＰＥＧデータを再構築する（ステップＳ４１０）。そして、再構築したブロック単位のＪＰＥＧデータをＲＡＭ６６に設けられた再構築用バッファーに格納し（ステップＳ４２０）、再構築用バッファーに１ストライプ幅分のデータが格納されたか否かを判定する（ステップＳ４３０）。上述したように、１ストライプ幅は、所定数のブロックに相当するから、この判定は所定数のブロックの再構築処理が完了したか否かを判定するものとなる。なお、所定数のブロックとしては、例えば、８ブロックや１６ブロック，３２ブロックなどとすることができ、本実施形態では１６ブロックとして説明する。ステップＳ４３０で１ストライプ幅分のデータが格納されていないと判定したときには、そのまま本処理を終了する。なお、本処理を終了すると、図２の赤目補正印刷処理ルーチンに戻って、ステップＳ１４０ですべてのブロックの処理が完了するまで、ステップＳ１１０〜Ｓ１３０のブロック単位の処理を繰り返すことになる。このため、処理を繰り返すうちに所定数のブロックの処理が完了してステップＳ４３０で１ストライプ幅分のデータが格納されたと判定すると、１ストライプ幅分（所定数のブロック）のデータの末尾にＲＳＴマーカーを挿入（付加）して（ステップＳ４４０）、本処理を終了する。このＲＳＴマーカーは、上述したように、通常は回転処理に用いられるものであるが、ステップＳ４４０では、回転印刷の設定がなされているか否かに拘わらず、１ストライプ幅分（所定数のブロック）のデータの末尾に一律にＲＳＴマーカーを挿入する。その理由については後述するが、この再構築処理により、図５に示すように、所定数のブロック毎に即ち１ストライプ幅毎にＲＳＴマーカーが挿入されたマーカー挿入済みのＪＰＥＧデータが再構築されることになる。なお、例えば、画素数が縦１９２０画素×横２５６０画素（約５００万画素）の場合、ブロック数が縦２４０ブロック×横３２０ブロックとなり、１ストライプ幅を１６ブロックとすれば、１ブロックラインに２０個のＲＳＴマーカーが挿入されることになる。なお、本実施形態では、赤目候補領域の抽出処理と、ＪＰＥＧデータの再構築処理とを順番に行なうものとして説明したが、それらの処理を並行して同時に行なうものとしてもよい。
【００２８】
続いて、赤目候補領域の精査処理について説明する。図６は、赤目候補領域の精査処理の一例を示すフローチャートである。この赤目候補領域の精査処理では、まず、ＲＡＭ６６に記憶されている赤目候補領域情報を入力し（ステップＳ５００）、入力した赤目候補領域情報のブロックの位置座標とＪＰＥＧデータに埋め込まれたＲＳＴマーカーの間隔とから、次のＲＳＴマーカーまでに赤目候補領域（赤目候補のブロック）があるか否かを判定し（ステップＳ５１０）、次のＲＳＴマーカーまでに赤目候補領域のブロックがあると判定したときには、そのＲＳＴマーカーが最初の（ＪＰＥＧデータの先頭に最も近い）マーカーであるか否かを判定する（ステップＳ５２０）。赤目候補領域の精査処理が開始された直後であれば、ステップＳ５１０では、赤目候補領域情報のブロックの位置座標（ｘ，ｙ）が最初のＲＳＴマーカーまでの１６ブロック内に含まれることを示すものであるか否か即ちｘが値１６以下でｙが値１のものがあるか否かを判定する処理となる。なお、最初のＲＳＴマーカー以降のＲＳＴマーカーを用いた判定については、後述する。
【００２９】
ステップＳ５１０で次のＲＳＴマーカーまでに赤目候補領域のブロックがあると判定し続くステップＳ５２０で最初のＲＳＴマーカーであると判定したときには、ＪＰＥＧデータの先頭を復号化開始位置に設定する（ステップＳ５３０）。復号化開始位置を設定すると、１ブロック分の係数をエントロピー復号化し（ステップＳ５５０）、エントロピー復号化した係数を逆量子化し（ステップＳ５６０）、逆量子化した係数を逆ＤＣＴ演算して１ブロック分のＪＰＥＧデータを復号化する（ステップＳ５７０）。そして、復号化により得られたＹＣｂＣｒ値をＲＧＢ値に色変換して（ステップＳ５８０）、色変換した１ブロック分のＲＧＢ値をＲＡＭ６６に設けられたブロックラインバッファーに格納する（ステップＳ５９０）。これらのステップＳ５５０〜Ｓ５９０の処理を、２バイトのコードであるＲＳＴマーカーを検出するまで（ステップＳ６００）、即ち１ストライプ幅分のブロックの処理が完了するまで繰り返す。一方、ステップＳ５１０で次のＲＳＴマーカーまでに赤目候補領域がないと判定したときには、各ブロックのデータを読み捨ててダミーデータをブロックラインバッファーに出力する処理を（ステップＳ６１０）、ＲＳＴマーカーを検出するまで（ステップＳ６２０）、繰り返す。
【００３０】
そして、ステップＳ６００またはステップＳ６２０でＲＳＴマーカーを検出したときには、ブロックラインバッファーに格納されたデータを用いて赤目候補領域を精査する（ステップＳ６３０）。この精査の詳細については省略するが、赤目候補領域のブロックのＲＧＢ値などから、赤目に相当する画素の周囲に瞳孔（黒目）に相当する画素や白目に相当する画素があるか否かを判定することなどにより行なわれる。そして、精査の結果、赤目と判定すると（ステップＳ６４０）、精査した赤目候補領域を赤目領域に設定しその位置を赤目領域情報としてＲＡＭ６６に記憶する（ステップＳ６５０）。このように、赤目領域の設定は、赤目領域の候補となる赤目候補領域の抽出と、赤目候補領域から赤目領域を設定する赤目候補領域の精査とにより行なわれる。即ち、二段階の処理を経て赤目領域が確定されるのである。そして、すべての赤目候補領域の処理が完了したか否かを判定し（ステップＳ６４０）、すべての赤目候補領域の処理が完了していないときには、ステップＳ５１０に戻り処理を繰り返す。
【００３１】
上述したステップＳ６００またはステップＳ６２０でＲＳＴマーカーを検出した以降にステップＳ５１０に戻ったときには、検出したＲＳＴマーカーのさらに次のＲＳＴマーカーまでに赤目候補領域（赤目候補のブロック）があるか否かを判定する。即ち、ＲＳＴマーカーを検出する度に次のＲＳＴマーカーまでに赤目候補領域があるか否かを繰り返し判定するのである。この判定は、例えば、次のように行なわれる。検出したＲＳＴマーカーがＪＰＥＧデータの先頭からｐ個目のマーカーであれば、所定数のブロック（ここでは１６ブロック）に値ｐを乗じた（１６×ｐ）ブロックの精査処理が既に完了しており、また、次のＲＳＴマーカーは（ｐ＋１）個目のマーカーとなる。このため、検出したＲＳＴマーカーに続くブロックは（１６×ｐ＋１）ブロックとなり、次のＲＳＴマーカーの直前のブロックは（１６×（ｐ＋１））ブロックとなる。即ち、検出したＲＳＴマーカーから次のＲＳＴマーカーまでの間に（１６×ｐ＋１）ブロックから（１６×（ｐ＋１））ブロックが存在することになる。一方、赤目候補領域情報として記憶される位置座標（ｘ，ｙ）のブロックは、上述したように横方向に３２０ブロックが並ぶ場合には、ＪＰＥＧデータの先頭から考えると、（３２０×（ｙ−１）＋ｘ）番目のブロックとなる。このため、（３２０×（ｙ−１）＋ｘ）番目のブロックが、（１６×ｐ＋１）ブロックから（１６×（ｐ＋１））ブロックまでの間に含まれるか否かを判定することにより、ステップＳ５１０の処理が行なわれる。なお、前述したステップＳ５１０の説明では、最初のＲＳＴマーカーまでの場合を説明したが、ＪＰＥＧデータの先頭を０個目のＲＳＴマーカーとみなして、ｐを値０とすれば同様に判定することができる。
【００３２】
こうして、ステップＳ５１０でさらに次のＲＳＴマーカーまでに赤目候補領域があると判定したときには、続くステップＳ５２０で最初のＲＳＴマーカーではないと判定して、検出したＲＳＴマーカーに続くＪＰＥＧデータの先頭の位置を復号化開始位置に設定する（ステップＳ５４０）。復号化開始位置を設定すると、１ブロックずつＪＰＥＧデータを復号化してＲＧＢデータに色変換するステップＳ５５０〜Ｓ５９０の処理を行なう。このように、ＲＳＴマーカーを検出する度に次のＲＳＴマーカーまでに赤目候補領域があるか否かを判定し、次のＲＳＴマーカーまでに赤目候補領域があると判定する度に検出したＲＳＴマーカーに続くデータの先頭の位置を復号化開始位置に設定してＪＰＥＧデータを復号化し、次のＲＳＴマーカーまでに赤目候補領域がないと判定する度に次のＲＳＴマーカーまでＪＰＥＧデータの復号化を省略するのである。なお、図５に示す画像では、１ストライプ幅中に赤目候補領域が含まれる斜線部分のブロックが復号化され、白色部分のブロックは復号化が省略されるものとなる。
【００３３】
ここで、上述したように、ＪＰＥＧデータは、可変長符号化であるハフマン符号化により圧縮されており、各ブロックの符号化後のデータ長は通常は一定とならないものである。このため、各ブロックの境の位置も一定にならないため、赤目候補領域の抽出処理で赤目候補のブロックの位置を定めても、そのブロックだけを対象として復号化するのは困難となる。そこで、ＲＳＴマーカーを所定数のブロック毎に挿入しておき、ＲＳＴマーカーの挿入間隔と赤目候補領域のブロックの位置座標とにより復号化開始位置を設定して、赤目候補のブロックを含む所定数のブロックを対象として復号化するのである。即ち、赤目候補領域が含まれる１ストライプ幅分のブロックだけを復号化し、赤目候補領域が含まれない１ストライプ幅分のブロックの復号化を省略するのである。これにより、赤目候補のブロックまでＪＰＥＧデータの先頭から順次復号化するものに比して、復号化の処理負担を大幅に低減して、精査処理を迅速に行なうことができる。赤目補正印刷処理ルーチンのステップＳ１３０のＪＰＥＧデータの再構築処理（図４のＪＰＥＧデータの再構築処理のステップＳ４４０）において、回転印刷の設定の有無に拘わらず１ストライプ幅分のデータの末尾にＲＳＴマーカーを一律に挿入するのは、こうした理由による。また、設定された復号化の開始位置からその次のＲＳＴマーカーまでのブロックだけを復号化することにより、復号化の開始位置からＪＰＥＧデータの末尾まで一律に復号化するものに比して、赤目候補領域以外の領域の復号化に要する時間を短くすることができるから、復号化の処理負担をさらに低減することができる。さらに、ＲＳＴマーカーの挿入は、赤目候補領域を抽出するために復号化したＪＰＥＧデータを符号化する際に行なうから、ＲＳＴマーカーを挿入するためだけに処理負担が大きく増えることはない。
【００３４】
図２の赤目補正印刷処理ルーチンに戻って、こうして赤目候補領域の抽出処理やＪＰＥＧデータの再構築処理，赤目候補領域の精査処理を実行すると、画像を回転させる必要があるか否かを判定する（ステップＳ１６０）。この判定は、回転印刷の設定がなされているか否かに基づいて行なうものとした。ステップＳ１６０で画像を回転させる必要があると判定したときには、ステップＳ１３０で再構築したＪＰＥＧデータをＲＳＴマーカーを用いて復号化しながら回転させる回転復号化を行なう（ステップＳ１７０）。この回転復号化は、上述したように、ＲＳＴマーカーを用いて１ストライプ幅分のすべてのブロックを復号化してから回転させる処理を、ストライプ幅単位で繰り返すことにより行なわれる。一方、ステップＳ１６０で画像を回転させる必要がないと判定したときには、ＪＰＥＧデータを回転させることなく復号化する（ステップＳ１８０）。こうしてＪＰＥＧデータを復号化すると、復号化により得られたＹＣｂＣｒ値をＲＧＢ値に変換し（ステップＳ１９０）、赤目候補領域の精査処理により記憶された赤目領域情報をＲＡＭ６６から読み出して赤目領域に対して赤目補正処理を実行する（ステップＳ２００）。この赤目補正処理は、上述したように、赤目の領域に属する画素のＲＧＢの各階調値をＲＧＢ空間上において予め設定された黒目の階調値に置換することなどにより行なわれる。そして、ＲＧＢ値をＣＭＹＫ値に変換することなどにより印刷用データを生成し（ステップＳ２１０）、生成した印刷用データに基づいてプリンターユニット３０により印刷処理を実行して（ステップＳ２２０）、本ルーチンを終了する。
【００３５】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の図２の赤目補正印刷処理ルーチンのステップＳ１１０のハフマン復号化とステップＳ１３０（図４）のＪＰＥＧデータの再構築処理とを実行するメインコントローラー６０とＲＡＭ６６とが本発明の「記憶手段」に相当し、図２の赤目補正印刷処理ルーチンのステップＳ１２０（図３）の赤目候補領域の抽出処理を実行するメインコントローラー６０が「位置情報取得手段」に相当し、図２の赤目補正印刷処理ルーチンのステップＳ１５０（図６）の赤目候補領域の精査処理を実行するメインコントローラー６０が「部分復号化手段」に相当する。
【００３６】
以上説明した本実施形態のプリンター２０によれば、所定数のブロック毎にＲＳＴマーカーが挿入されたＲＳＴマーカー挿入済みのＪＰＥＧデータから部分的に赤目領域を復号化する際には、赤目領域の候補となるブロックを赤目候補領域として抽出してそのブロックの位置座標を取得し、取得した位置座標とＲＳＴマーカーの挿入間隔とに基づいて復号化の開始位置を設定し、設定した復号化の開始位置から復号化するから、ＪＰＥＧデータの先頭から赤目候補領域まで復号化するものに比して、赤目候補領域を迅速に復号化することができる。この結果、ハフマン符号化を伴って圧縮されたＪＰＥＧデータの赤目補正処理に要する時間を短縮することができる。
【００３７】
また、設定された復号化の開始位置からその次のＲＳＴマーカーまでを復号化するから、ＪＰＥＧデータの末尾まで一律に復号化するものに比して、赤目候補領域以外の領域の復号化に要する時間を短くすることができる。さらに、赤目候補領域を抽出するために復号化されたＪＰＥＧデータの符号化に伴ってＲＳＴマーカーを挿入するから、ＲＳＴマーカーを挿入するのに処理負担が大きく増えることがなく、ＲＳＴマーカーが挿入されていないＪＰＥＧデータにおいても赤目候補領域を迅速に復号化することができる。
【００３８】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３９】
上述した実施形態では、設定された復号化の開始位置からその次のＲＳＴマーカーまでを復号化するものとしたが、これに限られず、最初に復号化の開始位置が設定されるとその開始位置からＪＰＥＧデータの末尾まで復号化するものとしてもよい。ただし、効率よく復号化するためには、開始位置の次のＲＳＴマーカーまでの復号化に留めておき、ＲＳＴマーカーを検出する度に次のＲＳＴマーカーまでに赤目候補領域があるか否かを判定して復号化の開始位置を設定するものが好ましい。
【００４０】
上述した実施形態では、印刷処理を実行する際の赤目の領域の検出を例として説明したが、これに限られず、画像を表示する際の赤目の領域の検出に適用するものなどとしてもよい。また、赤目の領域を検出するものに限られず、人物の肌色を補正する肌色補正処理など他の色補正処理の対象となる領域を検出するものや部分的に画像をトリミングするトリミング処理や明度や彩度を補正するなど各種画像処理の対象となる部分を検出するものであれば、如何なる部分を検出するものとしてもよい。なお、画像処理の対象となる処理領域を、候補領域の抽出と、候補領域からの処理領域の設定との二段階の処理を経て確定するものであれば、前段の候補領域の抽出を行なうために一旦復号化したＪＰＥＧデータを再び符号化する再構築処理においてＲＳＴマーカーを挿入するものとしてもよい。
【００４１】
上述した実施形態では、画像処理の対象となる処理領域を、候補領域の抽出と、候補領域からの処理領域の設定との二段階の処理を経て確定するものとしたが、これに限られず、予め処理領域の位置が設定（確定）されているものとしてもよい。
【００４２】
上述した実施形態では、ＪＰＥＧデータの再構築処理によりＲＳＴマーカーを挿入するものとしたが、これに限られず、予めＲＳＴマーカーが挿入されたＪＰＥＧデータを取得するものとしてもよい。
【００４３】
上述した実施形態では、圧縮画像をＪＰＥＧデータを例として説明したが、これに限られず、ハフマン符号化などの可変長符号化を伴って圧縮された圧縮画像であればよく、例えばＭＰＥＧデータなどとしてもよい。
【００４４】
上述した実施形態では、本発明をプリンター機能（プリンターユニット３０）とスキャナー機能（スキャナーユニット３５）とを備えるプリンター２０に適用して説明したが、これに限られず、さらにＦＡＸ機能を備えるものとしてもよいし、あるいは、スキャナー機能を備えないプリンターとしてもよい。また、ＤＣＴ演算を伴う圧縮方式で圧縮された圧縮画像を解凍し設定されている処理領域に対して画像処理を施すことができる装置であれば、プリンターに限られず、パーソナルコンピューターやデジタルカメラ，ゲーム機器，携帯電話など如何なる装置に適用するものとしてもよい。
【符号の説明】
【００４５】
２０  プリンター、２３  給紙トレイ、２４  排紙トレイ、３０  プリンターユニット、３５  スキャナーユニット、４０  カードコントローラー、４０ａ  メモリーカードスロット、５０  操作パネル、５２  表示部、５４  ボタン群、６０  メインコントローラー、６２  ＣＰＵ、６４  ＲＯＭ、６６  ＲＡＭ、６９  バス、ＭＣ  メモリーカード。
【図１】
2013120999.tif 000003
【図２】
2013120999.tif 000004
【図３】
2013120999.tif 000005
【図４】
2013120999.tif 000006
【図５】
2013120999.tif 000007
【図６】
2013120999.tif 000008