JP2013120999A - 画像処理装置および画像処理方法 - Google Patents
画像処理装置および画像処理方法 Download PDFInfo
- Publication number
- JP2013120999A JP2013120999A JP2011267120A JP2011267120A JP2013120999A JP 2013120999 A JP2013120999 A JP 2013120999A JP 2011267120 A JP2011267120 A JP 2011267120A JP 2011267120 A JP2011267120 A JP 2011267120A JP 2013120999 A JP2013120999 A JP 2013120999A
- Authority
- JP
- Japan
- Prior art keywords
- image
- marker
- decoding
- red
- 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.)
- Pending
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮する。
【解決手段】赤目領域の候補となる赤目候補領域として抽出されたブロックの位置座標を赤目候補領域情報として入力し(S500)、入力した赤目候補領域のブロックの位置座標とRSTマーカーの挿入間隔とに基づいて復号化の開始位置を設定し(S510〜540)、設定した復号化の開始位置から復号化するから(S550〜570)、JPEGデータの先頭から赤目候補領域まで復号化するものに比して、赤目候補領域を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。
【選択図】図6
【解決手段】赤目領域の候補となる赤目候補領域として抽出されたブロックの位置座標を赤目候補領域情報として入力し(S500)、入力した赤目候補領域のブロックの位置座標とRSTマーカーの挿入間隔とに基づいて復号化の開始位置を設定し(S510〜540)、設定した復号化の開始位置から復号化するから(S550〜570)、JPEGデータの先頭から赤目候補領域まで復号化するものに比して、赤目候補領域を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。
【選択図】図6
Description
本発明は、所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置および画像処理方法に関する。
従来、この種の画像処理装置としては、画像を8×8画素に分割したブロック毎に周波数成分に変換しハフマン符号化などの可変長符号化により圧縮した圧縮画像を復号化しながら回転処理するものが提案されている(例えば、特許文献1参照)。この装置では、回転処理に用いるリスタートマーカーが挿入されていない圧縮画像を取得すると、まず、圧縮画像を一旦復号化し、次に、復号化した画像をブロック毎に再び符号化すると共に所定数のブロックの符号化が完了する度にリスタートマーカーを付加していく。これにより、1ストライプ幅(所定数のブロック)毎にリスタートマーカーが挿入された圧縮画像を生成する。こうしてリスタートマーカーが挿入された圧縮画像の回転処理は、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の1段下のブロックを復号化する処理を繰り返し、1ストライプ幅分のすべてのブロックを復号化してから、復号化したブロックを回転させることにより行なわれる。そして、1ストライプ幅分の復号化と回転処理とが完了すると、次のストライプ幅のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。これにより、可変長符号化により符号化後の各ブロックのデータ長が異なるものにおいても、圧縮画像を1ストライプ幅分のブロックずつ順に復号化して回転させることができるとしている。
このように、回転用のリスタートマーカーを用いて、1ストライプ幅分のブロックずつ順に復号化して回転処理を行なうものがあるが、上述した特許文献1では他の画像処理については言及されていない。ここで、圧縮画像に対する処理としては、回転処理に限られず、圧縮画像を復号化してから画像の色や明るさなどを補正する補正処理や画像をトリミングするトリミング処理などがあり、また、画像全体ではなく画像の一部を対象として処理する場合もある。しかし、可変長符号化により各ブロックのデータ長が異なり、ブロックの境を検出するのは困難となるため、処理の対象となる部分のブロックだけを復号化することができず、画像の先頭からそのブロックまで順に復号化していかなければならない。このため、処理の対象となる部分の位置によっては、処理に不必要な部分の復号化に多くの時間を要することがあり、画像処理の遅延に繋がってしまう。
本発明の画像処理装置および画像処理方法は、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することを主目的とする。
本発明の画像処理装置および画像処理方法は、上述の主目的を達成するために以下の手段を採った。
本発明の画像処理装置は、
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置であって、
前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶する記憶手段と、
画像処理の対象となる処理対象部分に関する位置情報を取得する位置情報取得手段と、
前記取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化する部分復号化手段と、
を備えることを要旨とする。
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置であって、
前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶する記憶手段と、
画像処理の対象となる処理対象部分に関する位置情報を取得する位置情報取得手段と、
前記取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化する部分復号化手段と、
を備えることを要旨とする。
この本発明の画像処理装置では、画像処理の対象となる処理対象部分に関する位置情報を取得し、取得した位置情報とリスタートマーカーが挿入された間隔である挿入間隔とに基づいてマーカー挿入済み画像の復号化の開始位置を設定し、設定した開始位置からマーカー挿入済み画像を部分的に復号化する。これにより、画像の先頭から処理対象部分まで復号化するものに比して、処理対象部分を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。
こうした本発明の画像処理装置において、前記部分復号化手段は、前記マーカー挿入済み画像から前記リスタートマーカーを検出し、該検出したリスタートマーカーの次のリスタートマーカーの位置を前記挿入間隔を用いて求めると共に該位置を求めた次のリスタートマーカーまでに前記処理対象部分が含まれるか否かを前記位置情報を参照して判定する判定処理を実行し、前記処理対象部分が含まれると判定したときに前記検出したリスタートマーカーに続く位置を復号化の開始位置に設定して復号化する手段であるものとすることもできる。こうすれば、位置情報とリスタートマーカーの挿入間隔とに基づいて復号化の開始位置を容易に設定することができる。
この態様の本発明の画像処理装置において、前記部分復号化手段は、前記リスタートマーカーを検出する度に前記判定処理を繰り返し実行し、前記処理対象部分が含まれると判定する度に前記検出したリスタートマーカーに続く位置を新たな復号化の開始位置に設定し該設定した開始位置から次のリスタートマーカーまでを部分的に復号化し、前記処理対象部分が含まれないと判定する度に前記検出したリスタートマーカーからその次のリスタートマーカーまでの復号化を省略する手段であるものとすることもできる。こうすれば、処理対象部分が含まれるリスタートマーカー間だけを復号化すればよく、処理対象部分が含まれないリスタートマーカー間の復号化に時間を取られることがないから、画像全体の復号化の時間をさらに短くすることができる。このため、圧縮画像の処理に要する時間をさらに短縮することができる。
また、これらの態様の本発明の画像処理装置において、前記記憶手段は、前記マーカー挿入済み画像として、該画像の先頭から前記挿入間隔を隔てた位置に最初のリスタートマーカーが挿入された画像を記憶する手段であり、前記部分復号化手段は、前記位置情報を参照して前記マーカー挿入済み画像の先頭から前記最初のリスタートマーカーまでに前記処理対象部分が含まれると判定したときには、前記マーカー挿入済み画像の先頭を復号化の開始位置に設定して復号化する手段であるものとすることもできる。
また、前記圧縮画像として、前記リスタートマーカーが挿入されていないマーカー未挿入画像を取得し、該取得したマーカー未挿入画像から前記処理対象部分の候補である処理候補部分を抽出し、該抽出した処理候補部分を精査して前記処理対象部分を確定してから画像処理する本発明の画像処理装置において、前記記憶手段は、前記取得したマーカー未挿入画像を先頭から末尾まで一旦復号化し、該一旦復号化した画像を前記ブロック毎に再び可変長符号化すると共に該ブロックを所定数ずつ可変長符号化する度に前記リスタートマーカーを付加して前記マーカー挿入済み画像を生成して記憶する手段であり、前記位置情報取得手段は、前記一旦復号化された画像から前記処理候補部分を抽出し、該抽出した処理候補部分の位置を前記位置情報として取得する手段であり、前記部分復号化手段は、前記処理候補部分の精査のために、前記設定した開始位置から前記マーカー挿入済み画像を復号化する手段であるものとすることもできる。こうすれば、マーカー未挿入画像であっても、画像処理に要する時間を短縮することができる。また、リスタートマーカーを挿入するのに圧縮画像を一旦復号化しているが、処理候補部分を抽出するためにも圧縮画像を一旦復号化する必要があるから、リスタートマーカーを挿入するためだけに処理負担が大きく増えるのを防止することができる。
この態様の本発明の画像処理装置において、画像中の赤目の領域を前記処理対象部分として画像処理するものとすることもできる。
本発明の画像処理方法は、
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理方法であって、
(a)前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶するステップと、
(b)画像処理の対象となる処理対象部分に関する位置情報を取得するステップと、
(c)前記ステップ(b)で取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化するステップと、
を含むことを要旨とする。
所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理方法であって、
(a)前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶するステップと、
(b)画像処理の対象となる処理対象部分に関する位置情報を取得するステップと、
(c)前記ステップ(b)で取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化するステップと、
を含むことを要旨とする。
この本発明の画像処理方法では、画像処理の対象となる処理対象部分に関する位置情報を取得し、取得した位置情報とリスタートマーカーが挿入された間隔である挿入間隔とに基づいてマーカー挿入済み画像の復号化の開始位置を設定し、設定した開始位置からマーカー挿入済み画像を部分的に復号化する。これにより、画像データの先頭から処理対象部分まで復号化するものに比して、処理対象部分を迅速に復号化することができる。この結果、可変長符号化を伴って圧縮された圧縮画像の処理に要する時間を短縮することができる。なお、この画像処理方法において、上述した画像処理装置のいずれかの態様を実現するようなステップを追加するものとしてもよい。
次に、本発明の実施の形態を図面に基づいて説明する。図1は、本発明の画像処理装置の一実施形態であるプリンター20の構成の概略を示す構成図である。本実施形態のプリンター20は、図示するように、給紙トレイ23から搬送された用紙に印刷用データに基づいてシアン(C),マゼンタ(M),イエロー(Y),ブラック(K)のCMYKの各色のインクを印刷ヘッドから吐出することにより印刷を実行し排紙トレイ24に排紙するインクジェット方式のプリンターユニット30と、図示しないガラス台に載置された原稿に向かって発光した後の反射光をレッド(R)、グリーン(G)、ブルー(B)のRGBの各色に分解して画像データとするフラットベッド式のスキャナーユニット35と、メモリーカードスロット40aに挿入されたメモリーカードMCとの間でデータを格納したファイルの読み書きを行なうカードコントローラー40と、各種モードの設定画面や印刷の設定画面などを表示部52に表示したり各種モードの設定や印刷の設定に関する指示などをユーザーによるボタン群54の操作を介して入力したりする操作パネル50と、装置全体の制御を司るメインコントローラー60とを備える。このプリンター20では、プリンターユニット30やスキャナーユニット35,カードコントローラー40,メインコントローラー60がバス69を介して互いに各種制御信号やデータのやり取りをすることができるよう構成されている。
カードコントローラー40は、メインコントローラー60からの読み出し指令に基づいてメモリーカードMCからファイルを読み出してメインコントローラー60に送信したり、メインコントローラー60からの書き込み指令に基づいてメモリーカードMCにファイルを書き込んだりする。
このメモリーカードMCには、デジタルカメラなどで撮影されてJPEG方式により圧縮されたJPEGデータを格納したファイルなどが記憶されている。このJPEG方式による圧縮では、詳細については省略するが、撮影された画像の各8ビットのRGB値を輝度成分と色差成分とを示すYCbCr値に変換し、8×8画素(64画素)の最小符号化ユニット(1MCU(Minimum Coded Unit),以下、ブロックとする)に分割して、ブロック単位で離散コサイン変換(DCT演算)して周波数成分の大きさを表す8×8成分(64成分)のDCT係数に変換し、変換したDCT係数を量子化して、量子化後のDCT係数をランレングス符号化やグループ符号化,ハフマン符号化などによりエントロピー符号化することで、画像を圧縮している。なお、各ブロックのDCT係数は、ブロックの左上隅の成分がブロック内で変化がなくブロック内の平均値を示すDC係数(直流成分)であり、残りの63成分がブロック内の変化を示すAC係数(交流成分)となる。DC係数は、隣接するブロックのDC係数と値が近いことが多いため、隣接するブロックのDC係数との差分値に関する情報が符号化される。具体的には、差分値がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの差分値に該当するかの情報が、それぞれ対応するハフマン符号化やグループ符号化により符号化される。また、AC係数は、ブロック内の変化が小さく量子化により値0となるものが多いため、値0の連続する個数(ランレングス数)と値0の連続を止める値0でない係数とをセットにした情報が符号化される。具体的には、値0でない係数がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの係数に該当するかの情報,ランレングス数の情報が、それぞれ対応するハフマン符号化やグループ符号化,ランレングス符号化により符号化される。ここで、ハフマン符号化は出現頻度が高いものほど符号化長の短い符号を割り当てる可変長符号化であるため、圧縮対象の画像が通常の人物画像や風景画像などであれば、符号化後の1ブロック当たりのデータ長はブロック毎に異なるものとなる。なお、本実施形態では、ランレングス符号化やグループ符号化,ハフマン符号化をまとめてエントロピー符号化と称することがあり、復号化についても同様とする。
メインコントローラー60は、CPU62を中心とするマイクロプロセッサーとして構成されており、各種処理プログラムや各種データ、各種テーブルなどを記憶したROM64と、一時的に各種データなどを記憶するRAM66とを備える。このメインコントローラー60は、プリンターユニット30やスキャナーユニット35,カードコントローラー40からの各種動作信号や各種検出信号を入力したり、操作パネル50のボタン群54からの操作信号を入力したりする。また、メモリーカードMCからのファイルの読み出し指令をカードコントローラー40に出力したり、印刷指令をプリンターユニット30に出力したり、ボタン群54からのスキャン指示に基づいて原稿の読み取り指令をスキャナーユニット35に出力したり、表示部52に画像データの表示指令を出力したりする。
また、メインコントローラー60は、メモリーカードMCから入力したJPEGデータを表示部52で表示するための表示用データに変換する際には、JPEGデータを上述した圧縮と逆の順即ちハフマン復号化やグループ復号化,ランレングス復号化からなるエントロピー復号化,逆量子化,逆DCTの順に復号化(解凍)し、復号化により得られたYCbCr値をRGB各8ビットのデータに色変換し、RGB各8ビットのデータを表示部52で表示可能な所定のビット数に減らす処理などが行なわれる。また、JPEGデータをプリンターユニット30で印刷するための印刷用データに変換する際には、表示用データと同様にJPEGデータを復号化してRGB各8ビットのデータに色変換してから、さらに、CMYK各8ビットのデータに色変換し、CMYK各8ビットのデータをディザ法や誤差拡散法などにより各2ビットのデータ(2値化データ)に変換する処理などが行なわれる。
このプリンター20では、画像の色補正や画像の向きなどに関する各種設定が可能となっており、例えば、デジタルカメラでの画像撮影時のフラッシュ発光に伴って生じた赤目を補正する赤目補正や画像の向きを回転させる回転処理をしてから印刷する回転印刷などが設定可能となっている。ここで、赤目補正は、赤目として検出された領域の色を黒目の色に置換することなどにより行なわれる。また、回転処理は、対象となる画像がJPEGデータの場合には、JPEGデータに所定数のブロック毎(1ストライプ幅ともいう)に挿入されたリスタートマーカー(RSTマーカー)を用いて行なわれる。なお、RSTマーカーは、JPEGの規格で定められた2バイトのコードであり、FFD0〜FFD7で表される。RSTマーカーを用いた回転処理では、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の1段下のブロックを復号化する処理を繰り返し、1ストライプ幅分のすべてのブロックを復号化すると、復号化したブロックを回転させることにより行なわれる。そして、1ストライプ幅分の回転処理が完了すると、次のストライプ幅分のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。
次に、こうして構成された本実施形態のプリンター20の動作、特に、画像中の赤目を補正して画像を印刷する際の動作について説明する。図2は、CPU31により実行される赤目補正印刷処理ルーチンの一例を示すフローチャートである。このルーチンは、メモリーカードMCがメモリーカードスロット40aに挿入された状態で、表示部52に表示される図示しない画像選択画面からボタン群54の操作により印刷対象の画像が選択されると共に色補正の設定で赤目補正がオンとされて、印刷開始が指示されたときに実行される。
この赤目補正印刷処理ルーチンが実行されると、メインコントローラー60のCPU62は、まず、印刷対象の画像データ(ここではJPEGデータとする)を入力し(ステップS100)、入力したJPEGデータの1ブロック分をハフマン復号化する(ステップS110)。次に、ハフマン復号化した1ブロック分のデータを用いて画像中の赤目の候補である赤目候補領域を抽出する赤目候補領域の抽出処理を実行し(ステップS120)、ハフマン復号化した1ブロック分のデータを必要に応じてRSTマーカーを挿入しながら再びJPEGデータに再構築するJPEGデータの再構築処理を実行する(ステップS130)。これらのステップS110〜S130の処理をすべてのブロックの処理が完了するまで繰り返し(ステップS140)、すべてのブロックの処理が完了するとステップS120で抽出した赤目候補領域が赤目の領域であるか否かを精査して赤目領域を確定する赤目候補領域の精査処理を実行する(ステップS150)。以下、赤目補正印刷処理ルーチンの説明を中断し、赤目候補領域の抽出処理とJPEGデータの再構築処理,赤目候補領域の精査処理の詳細について、順に説明する。なお、赤目候補領域が本発明の処理候補部分に相当し、赤目領域が本発明の処理対象部分に相当する。
まず、赤目候補領域の抽出処理について説明する。図3は、赤目候補領域の抽出処理の一例を示すフローチャートである。この赤目候補領域の抽出処理では、まず、印刷処理ルーチンのステップS110でハフマン復号化した1ブロック分の係数を入力し(ステップS300)、入力した係数をグループ復号化すると共にランレングス復号化して(ステップS310,S320)、1ブロック分の係数のエントロピー復号化を完了させる。次に、エントロピー復号化された係数を逆量子化し(ステップS330)、逆量子化した係数を逆DCT演算して1ブロック分のJPEGデータを復号化する(ステップS340)。そして、復号化により得られたYCbCr値をRGB値に色変換し(ステップS350)、色変換した各画素のRGB値から1ブロック分のRGB値の平均値を算出する(ステップS360)。続いて、算出した1ブロック分のRGB値に基づいて処理中のブロックが赤目であるか否かを判定する(ステップS370)。ここで、赤目であるか否かは、1ブロック分の平均値として算出したRGBの各階調値がRGB空間上において予め設定された赤目の階調値を中心とする領域内に属するか否かにより判定するものとした。
ステップS370で処理中のブロックが赤目であると判定したときには、処理中のブロックを赤目候補領域としてそのブロックの位置をRAM66の赤目候補領域情報に記憶して(ステップS380)、本処理を終了する。ここで、ブロックの位置は、画像の左上隅のブロックである1行1列目のブロックの位置を基準位置(1,1)として、右方向をx座標の正方向,下方向をy座標の正方向とする位置座標(x,y)で表すものとした。このため、例えば、位置座標(2,5)のブロックは、左端から2番目(2列目)で上から5番目(5行目)のブロックとなる。一方、ステップS370で処理中のブロックが赤目ではないと判定したときには、本処理を終了する。この処理により、赤目と判定されたブロックを赤目候補領域としてその位置情報が赤目候補領域情報に記憶されることになり、赤目と判定されないブロックは赤目候補領域とされないことになる。
次に、JPEGデータの再構築処理について説明する。図4は、JPEGデータの再構築処理の一例を示すフローチャートであり、図5は、再構築処理されたJPEGデータの画像の様子を示す説明図である。このJPEGデータの再構築処理では、まず、上述した赤目補正印刷処理ルーチンのステップS110でハフマン復号化した1ブロック分の係数を入力し(ステップS400)、入力した係数をハフマン符号化してJPEGデータを再構築する(ステップS410)。そして、再構築したブロック単位のJPEGデータをRAM66に設けられた再構築用バッファーに格納し(ステップS420)、再構築用バッファーに1ストライプ幅分のデータが格納されたか否かを判定する(ステップS430)。上述したように、1ストライプ幅は、所定数のブロックに相当するから、この判定は所定数のブロックの再構築処理が完了したか否かを判定するものとなる。なお、所定数のブロックとしては、例えば、8ブロックや16ブロック,32ブロックなどとすることができ、本実施形態では16ブロックとして説明する。ステップS430で1ストライプ幅分のデータが格納されていないと判定したときには、そのまま本処理を終了する。なお、本処理を終了すると、図2の赤目補正印刷処理ルーチンに戻って、ステップS140ですべてのブロックの処理が完了するまで、ステップS110〜S130のブロック単位の処理を繰り返すことになる。このため、処理を繰り返すうちに所定数のブロックの処理が完了してステップS430で1ストライプ幅分のデータが格納されたと判定すると、1ストライプ幅分(所定数のブロック)のデータの末尾にRSTマーカーを挿入(付加)して(ステップS440)、本処理を終了する。このRSTマーカーは、上述したように、通常は回転処理に用いられるものであるが、ステップS440では、回転印刷の設定がなされているか否かに拘わらず、1ストライプ幅分(所定数のブロック)のデータの末尾に一律にRSTマーカーを挿入する。その理由については後述するが、この再構築処理により、図5に示すように、所定数のブロック毎に即ち1ストライプ幅毎にRSTマーカーが挿入されたマーカー挿入済みのJPEGデータが再構築されることになる。なお、例えば、画素数が縦1920画素×横2560画素(約500万画素)の場合、ブロック数が縦240ブロック×横320ブロックとなり、1ストライプ幅を16ブロックとすれば、1ブロックラインに20個のRSTマーカーが挿入されることになる。なお、本実施形態では、赤目候補領域の抽出処理と、JPEGデータの再構築処理とを順番に行なうものとして説明したが、それらの処理を並行して同時に行なうものとしてもよい。
続いて、赤目候補領域の精査処理について説明する。図6は、赤目候補領域の精査処理の一例を示すフローチャートである。この赤目候補領域の精査処理では、まず、RAM66に記憶されている赤目候補領域情報を入力し(ステップS500)、入力した赤目候補領域情報のブロックの位置座標とJPEGデータに埋め込まれたRSTマーカーの間隔とから、次のRSTマーカーまでに赤目候補領域(赤目候補のブロック)があるか否かを判定し(ステップS510)、次のRSTマーカーまでに赤目候補領域のブロックがあると判定したときには、そのRSTマーカーが最初の(JPEGデータの先頭に最も近い)マーカーであるか否かを判定する(ステップS520)。赤目候補領域の精査処理が開始された直後であれば、ステップS510では、赤目候補領域情報のブロックの位置座標(x,y)が最初のRSTマーカーまでの16ブロック内に含まれることを示すものであるか否か即ちxが値16以下でyが値1のものがあるか否かを判定する処理となる。なお、最初のRSTマーカー以降のRSTマーカーを用いた判定については、後述する。
ステップS510で次のRSTマーカーまでに赤目候補領域のブロックがあると判定し続くステップS520で最初のRSTマーカーであると判定したときには、JPEGデータの先頭を復号化開始位置に設定する(ステップS530)。復号化開始位置を設定すると、1ブロック分の係数をエントロピー復号化し(ステップS550)、エントロピー復号化した係数を逆量子化し(ステップS560)、逆量子化した係数を逆DCT演算して1ブロック分のJPEGデータを復号化する(ステップS570)。そして、復号化により得られたYCbCr値をRGB値に色変換して(ステップS580)、色変換した1ブロック分のRGB値をRAM66に設けられたブロックラインバッファーに格納する(ステップS590)。これらのステップS550〜S590の処理を、2バイトのコードであるRSTマーカーを検出するまで(ステップS600)、即ち1ストライプ幅分のブロックの処理が完了するまで繰り返す。一方、ステップS510で次のRSTマーカーまでに赤目候補領域がないと判定したときには、各ブロックのデータを読み捨ててダミーデータをブロックラインバッファーに出力する処理を(ステップS610)、RSTマーカーを検出するまで(ステップS620)、繰り返す。
そして、ステップS600またはステップS620でRSTマーカーを検出したときには、ブロックラインバッファーに格納されたデータを用いて赤目候補領域を精査する(ステップS630)。この精査の詳細については省略するが、赤目候補領域のブロックのRGB値などから、赤目に相当する画素の周囲に瞳孔(黒目)に相当する画素や白目に相当する画素があるか否かを判定することなどにより行なわれる。そして、精査の結果、赤目と判定すると(ステップS640)、精査した赤目候補領域を赤目領域に設定しその位置を赤目領域情報としてRAM66に記憶する(ステップS650)。このように、赤目領域の設定は、赤目領域の候補となる赤目候補領域の抽出と、赤目候補領域から赤目領域を設定する赤目候補領域の精査とにより行なわれる。即ち、二段階の処理を経て赤目領域が確定されるのである。そして、すべての赤目候補領域の処理が完了したか否かを判定し(ステップS640)、すべての赤目候補領域の処理が完了していないときには、ステップS510に戻り処理を繰り返す。
上述したステップS600またはステップS620でRSTマーカーを検出した以降にステップS510に戻ったときには、検出したRSTマーカーのさらに次のRSTマーカーまでに赤目候補領域(赤目候補のブロック)があるか否かを判定する。即ち、RSTマーカーを検出する度に次のRSTマーカーまでに赤目候補領域があるか否かを繰り返し判定するのである。この判定は、例えば、次のように行なわれる。検出したRSTマーカーがJPEGデータの先頭からp個目のマーカーであれば、所定数のブロック(ここでは16ブロック)に値pを乗じた(16×p)ブロックの精査処理が既に完了しており、また、次のRSTマーカーは(p+1)個目のマーカーとなる。このため、検出したRSTマーカーに続くブロックは(16×p+1)ブロックとなり、次のRSTマーカーの直前のブロックは(16×(p+1))ブロックとなる。即ち、検出したRSTマーカーから次のRSTマーカーまでの間に(16×p+1)ブロックから(16×(p+1))ブロックが存在することになる。一方、赤目候補領域情報として記憶される位置座標(x,y)のブロックは、上述したように横方向に320ブロックが並ぶ場合には、JPEGデータの先頭から考えると、(320×(y−1)+x)番目のブロックとなる。このため、(320×(y−1)+x)番目のブロックが、(16×p+1)ブロックから(16×(p+1))ブロックまでの間に含まれるか否かを判定することにより、ステップS510の処理が行なわれる。なお、前述したステップS510の説明では、最初のRSTマーカーまでの場合を説明したが、JPEGデータの先頭を0個目のRSTマーカーとみなして、pを値0とすれば同様に判定することができる。
こうして、ステップS510でさらに次のRSTマーカーまでに赤目候補領域があると判定したときには、続くステップS520で最初のRSTマーカーではないと判定して、検出したRSTマーカーに続くJPEGデータの先頭の位置を復号化開始位置に設定する(ステップS540)。復号化開始位置を設定すると、1ブロックずつJPEGデータを復号化してRGBデータに色変換するステップS550〜S590の処理を行なう。このように、RSTマーカーを検出する度に次のRSTマーカーまでに赤目候補領域があるか否かを判定し、次のRSTマーカーまでに赤目候補領域があると判定する度に検出したRSTマーカーに続くデータの先頭の位置を復号化開始位置に設定してJPEGデータを復号化し、次のRSTマーカーまでに赤目候補領域がないと判定する度に次のRSTマーカーまでJPEGデータの復号化を省略するのである。なお、図5に示す画像では、1ストライプ幅中に赤目候補領域が含まれる斜線部分のブロックが復号化され、白色部分のブロックは復号化が省略されるものとなる。
ここで、上述したように、JPEGデータは、可変長符号化であるハフマン符号化により圧縮されており、各ブロックの符号化後のデータ長は通常は一定とならないものである。このため、各ブロックの境の位置も一定にならないため、赤目候補領域の抽出処理で赤目候補のブロックの位置を定めても、そのブロックだけを対象として復号化するのは困難となる。そこで、RSTマーカーを所定数のブロック毎に挿入しておき、RSTマーカーの挿入間隔と赤目候補領域のブロックの位置座標とにより復号化開始位置を設定して、赤目候補のブロックを含む所定数のブロックを対象として復号化するのである。即ち、赤目候補領域が含まれる1ストライプ幅分のブロックだけを復号化し、赤目候補領域が含まれない1ストライプ幅分のブロックの復号化を省略するのである。これにより、赤目候補のブロックまでJPEGデータの先頭から順次復号化するものに比して、復号化の処理負担を大幅に低減して、精査処理を迅速に行なうことができる。赤目補正印刷処理ルーチンのステップS130のJPEGデータの再構築処理(図4のJPEGデータの再構築処理のステップS440)において、回転印刷の設定の有無に拘わらず1ストライプ幅分のデータの末尾にRSTマーカーを一律に挿入するのは、こうした理由による。また、設定された復号化の開始位置からその次のRSTマーカーまでのブロックだけを復号化することにより、復号化の開始位置からJPEGデータの末尾まで一律に復号化するものに比して、赤目候補領域以外の領域の復号化に要する時間を短くすることができるから、復号化の処理負担をさらに低減することができる。さらに、RSTマーカーの挿入は、赤目候補領域を抽出するために復号化したJPEGデータを符号化する際に行なうから、RSTマーカーを挿入するためだけに処理負担が大きく増えることはない。
図2の赤目補正印刷処理ルーチンに戻って、こうして赤目候補領域の抽出処理やJPEGデータの再構築処理,赤目候補領域の精査処理を実行すると、画像を回転させる必要があるか否かを判定する(ステップS160)。この判定は、回転印刷の設定がなされているか否かに基づいて行なうものとした。ステップS160で画像を回転させる必要があると判定したときには、ステップS130で再構築したJPEGデータをRSTマーカーを用いて復号化しながら回転させる回転復号化を行なう(ステップS170)。この回転復号化は、上述したように、RSTマーカーを用いて1ストライプ幅分のすべてのブロックを復号化してから回転させる処理を、ストライプ幅単位で繰り返すことにより行なわれる。一方、ステップS160で画像を回転させる必要がないと判定したときには、JPEGデータを回転させることなく復号化する(ステップS180)。こうしてJPEGデータを復号化すると、復号化により得られたYCbCr値をRGB値に変換し(ステップS190)、赤目候補領域の精査処理により記憶された赤目領域情報をRAM66から読み出して赤目領域に対して赤目補正処理を実行する(ステップS200)。この赤目補正処理は、上述したように、赤目の領域に属する画素のRGBの各階調値をRGB空間上において予め設定された黒目の階調値に置換することなどにより行なわれる。そして、RGB値をCMYK値に変換することなどにより印刷用データを生成し(ステップS210)、生成した印刷用データに基づいてプリンターユニット30により印刷処理を実行して(ステップS220)、本ルーチンを終了する。
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の図2の赤目補正印刷処理ルーチンのステップS110のハフマン復号化とステップS130(図4)のJPEGデータの再構築処理とを実行するメインコントローラー60とRAM66とが本発明の「記憶手段」に相当し、図2の赤目補正印刷処理ルーチンのステップS120(図3)の赤目候補領域の抽出処理を実行するメインコントローラー60が「位置情報取得手段」に相当し、図2の赤目補正印刷処理ルーチンのステップS150(図6)の赤目候補領域の精査処理を実行するメインコントローラー60が「部分復号化手段」に相当する。
以上説明した本実施形態のプリンター20によれば、所定数のブロック毎にRSTマーカーが挿入されたRSTマーカー挿入済みのJPEGデータから部分的に赤目領域を復号化する際には、赤目領域の候補となるブロックを赤目候補領域として抽出してそのブロックの位置座標を取得し、取得した位置座標とRSTマーカーの挿入間隔とに基づいて復号化の開始位置を設定し、設定した復号化の開始位置から復号化するから、JPEGデータの先頭から赤目候補領域まで復号化するものに比して、赤目候補領域を迅速に復号化することができる。この結果、ハフマン符号化を伴って圧縮されたJPEGデータの赤目補正処理に要する時間を短縮することができる。
また、設定された復号化の開始位置からその次のRSTマーカーまでを復号化するから、JPEGデータの末尾まで一律に復号化するものに比して、赤目候補領域以外の領域の復号化に要する時間を短くすることができる。さらに、赤目候補領域を抽出するために復号化されたJPEGデータの符号化に伴ってRSTマーカーを挿入するから、RSTマーカーを挿入するのに処理負担が大きく増えることがなく、RSTマーカーが挿入されていないJPEGデータにおいても赤目候補領域を迅速に復号化することができる。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
上述した実施形態では、設定された復号化の開始位置からその次のRSTマーカーまでを復号化するものとしたが、これに限られず、最初に復号化の開始位置が設定されるとその開始位置からJPEGデータの末尾まで復号化するものとしてもよい。ただし、効率よく復号化するためには、開始位置の次のRSTマーカーまでの復号化に留めておき、RSTマーカーを検出する度に次のRSTマーカーまでに赤目候補領域があるか否かを判定して復号化の開始位置を設定するものが好ましい。
上述した実施形態では、印刷処理を実行する際の赤目の領域の検出を例として説明したが、これに限られず、画像を表示する際の赤目の領域の検出に適用するものなどとしてもよい。また、赤目の領域を検出するものに限られず、人物の肌色を補正する肌色補正処理など他の色補正処理の対象となる領域を検出するものや部分的に画像をトリミングするトリミング処理や明度や彩度を補正するなど各種画像処理の対象となる部分を検出するものであれば、如何なる部分を検出するものとしてもよい。なお、画像処理の対象となる処理領域を、候補領域の抽出と、候補領域からの処理領域の設定との二段階の処理を経て確定するものであれば、前段の候補領域の抽出を行なうために一旦復号化したJPEGデータを再び符号化する再構築処理においてRSTマーカーを挿入するものとしてもよい。
上述した実施形態では、画像処理の対象となる処理領域を、候補領域の抽出と、候補領域からの処理領域の設定との二段階の処理を経て確定するものとしたが、これに限られず、予め処理領域の位置が設定(確定)されているものとしてもよい。
上述した実施形態では、JPEGデータの再構築処理によりRSTマーカーを挿入するものとしたが、これに限られず、予めRSTマーカーが挿入されたJPEGデータを取得するものとしてもよい。
上述した実施形態では、圧縮画像をJPEGデータを例として説明したが、これに限られず、ハフマン符号化などの可変長符号化を伴って圧縮された圧縮画像であればよく、例えばMPEGデータなどとしてもよい。
上述した実施形態では、本発明をプリンター機能(プリンターユニット30)とスキャナー機能(スキャナーユニット35)とを備えるプリンター20に適用して説明したが、これに限られず、さらにFAX機能を備えるものとしてもよいし、あるいは、スキャナー機能を備えないプリンターとしてもよい。また、DCT演算を伴う圧縮方式で圧縮された圧縮画像を解凍し設定されている処理領域に対して画像処理を施すことができる装置であれば、プリンターに限られず、パーソナルコンピューターやデジタルカメラ,ゲーム機器,携帯電話など如何なる装置に適用するものとしてもよい。
20 プリンター、23 給紙トレイ、24 排紙トレイ、30 プリンターユニット、35 スキャナーユニット、40 カードコントローラー、40a メモリーカードスロット、50 操作パネル、52 表示部、54 ボタン群、60 メインコントローラー、62 CPU、64 ROM、66 RAM、69 バス、MC メモリーカード。
Claims (7)
- 所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理装置であって、
前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶する記憶手段と、
画像処理の対象となる処理対象部分に関する位置情報を取得する位置情報取得手段と、
前記取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化する部分復号化手段と、
を備える画像処理装置。 - 前記部分復号化手段は、前記マーカー挿入済み画像から前記リスタートマーカーを検出し、該検出したリスタートマーカーの次のリスタートマーカーの位置を前記挿入間隔を用いて求めると共に該位置を求めた次のリスタートマーカーまでに前記処理対象部分が含まれるか否かを前記位置情報を参照して判定する判定処理を実行し、前記処理対象部分が含まれると判定したときに前記検出したリスタートマーカーに続く位置を復号化の開始位置に設定して復号化する手段である請求項1記載の画像処理装置。
- 前記部分復号化手段は、前記リスタートマーカーを検出する度に前記判定処理を繰り返し実行し、前記処理対象部分が含まれると判定する度に前記検出したリスタートマーカーに続く位置を新たな復号化の開始位置に設定し該設定した開始位置から次のリスタートマーカーまでを部分的に復号化し、前記処理対象部分が含まれないと判定する度に前記検出したリスタートマーカーからその次のリスタートマーカーまでの復号化を省略する手段である請求項2記載の画像処理装置。
- 請求項2または3記載の画像処理装置であって、
前記記憶手段は、前記マーカー挿入済み画像として、該画像の先頭から前記挿入間隔を隔てた位置に最初のリスタートマーカーが挿入された画像を記憶する手段であり、
前記部分復号化手段は、前記位置情報を参照して前記マーカー挿入済み画像の先頭から前記最初のリスタートマーカーまでに前記処理対象部分が含まれると判定したときには、前記マーカー挿入済み画像の先頭を復号化の開始位置に設定して復号化する手段である
画像処理装置。 - 前記圧縮画像として、前記リスタートマーカーが挿入されていないマーカー未挿入画像を取得し、該取得したマーカー未挿入画像から前記処理対象部分の候補である処理候補部分を抽出し、該抽出した処理候補部分を精査して前記処理対象部分を確定してから画像処理する請求項1ないし4いずれか1項に記載の画像処理装置であって、
前記記憶手段は、前記取得したマーカー未挿入画像を先頭から末尾まで一旦復号化し、該一旦復号化した画像を前記ブロック毎に再び可変長符号化すると共に該ブロックを所定数ずつ可変長符号化する度に前記リスタートマーカーを付加して前記マーカー挿入済み画像を生成して記憶する手段であり、
前記位置情報取得手段は、前記一旦復号化された画像から前記処理候補部分を抽出し、該抽出した処理候補部分の位置を前記位置情報として取得する手段であり、
前記部分復号化手段は、前記処理候補部分の精査のために、前記設定した開始位置から前記マーカー挿入済み画像を復号化する手段である
画像処理装置。 - 画像中の赤目の領域を前記処理対象部分として画像処理する請求項5記載の画像処理装置。
- 所定のブロック毎に可変長符号化を伴って圧縮された圧縮画像を復号化して画像処理する画像処理方法であって、
(a)前記圧縮画像として、前記ブロックが所定数ずつ符号化された間隔で複数のリスタートマーカーが挿入されたマーカー挿入済み画像を記憶するステップと、
(b)画像処理の対象となる処理対象部分に関する位置情報を取得するステップと、
(c)前記ステップ(b)で取得された位置情報と前記リスタートマーカーが挿入された間隔である挿入間隔とに基づいて前記マーカー挿入済み画像の復号化の開始位置を設定し、該設定した開始位置から前記マーカー挿入済み画像を部分的に復号化するステップと、
を含む画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011267120A JP2013120999A (ja) | 2011-12-06 | 2011-12-06 | 画像処理装置および画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011267120A JP2013120999A (ja) | 2011-12-06 | 2011-12-06 | 画像処理装置および画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013120999A true JP2013120999A (ja) | 2013-06-17 |
Family
ID=48773467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011267120A Pending JP2013120999A (ja) | 2011-12-06 | 2011-12-06 | 画像処理装置および画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013120999A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015079974A1 (ja) | 2013-11-27 | 2015-06-04 | 日本碍子株式会社 | グレーティング素子および外部共振器型発光装置 |
US10074962B2 (en) | 2014-05-01 | 2018-09-11 | Ngk Insulators, Ltd. | Grating element and external resonator type light emitting device |
-
2011
- 2011-12-06 JP JP2011267120A patent/JP2013120999A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015079974A1 (ja) | 2013-11-27 | 2015-06-04 | 日本碍子株式会社 | グレーティング素子および外部共振器型発光装置 |
US9859684B2 (en) | 2013-11-27 | 2018-01-02 | Ngk Insulators, Ltd. | Grating element and external-resonator-type light emitting device |
US10074962B2 (en) | 2014-05-01 | 2018-09-11 | Ngk Insulators, Ltd. | Grating element and external resonator type light emitting device |
DE112015002094B4 (de) | 2014-05-01 | 2019-08-22 | Ngk Insulators, Ltd. | Lichtemittierende Vorrichtung des äußeren Resonatortyps |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6019573B2 (ja) | 記録装置および画像処理方法 | |
US8849021B2 (en) | Image processing apparatus, method, and storage medium for high speed compression processing | |
US7903888B2 (en) | Image encoding apparatus and image decoding apparatus | |
JP5132517B2 (ja) | 画像処理装置および画像処理方法 | |
JP5874497B2 (ja) | 画像処理装置および画像処理プログラム | |
US8660345B1 (en) | Colorization-based image compression using selected color samples | |
JP6076206B2 (ja) | 方法、プログラム、コンピュータ及び記録媒体 | |
EP2671374B1 (en) | Systems and methods for restoring color and non-color related integrity in an image | |
JP2006129471A (ja) | 画像処理方法及び画像処理装置 | |
JP2009200642A (ja) | 画像符号化装置及びその制御方法 | |
US8401287B2 (en) | Image processing apparatus and processing method thereof | |
US8718392B2 (en) | Method, program, and device for compressing a block of image data based on whether the block is monochromatic | |
JP2006180456A (ja) | 画像圧縮装置と画像復号装置と画像変換装置と画像処理方法 | |
JP4315176B2 (ja) | 印刷装置、印刷方法、および、印刷用プログラム | |
JP2010117787A (ja) | 画像処理装置 | |
JP2013120999A (ja) | 画像処理装置および画像処理方法 | |
JP6108220B2 (ja) | 画像処理装置、画像処理プログラム | |
US7373000B2 (en) | Image processing apparatus | |
US7257260B2 (en) | Method and a device for processing digital image | |
JP2011199432A (ja) | 画像処理装置およびプログラム | |
JP4975770B2 (ja) | 画像復号方法及び装置 | |
JP2013121100A (ja) | 画像処理装置および画像処理方法 | |
JP2013106123A (ja) | 画像処理装置および画像処理方法 | |
JP3979020B2 (ja) | 圧縮画像のサンプリングを実行する画像処理装置 | |
CN117014557B (zh) | 文档图像的压缩方法、装置、电子设备及存储介质 |