(57)【要約】【課題】画像を表示するまでの処理の高速化と高画質な画像の表示の両立を実現可能とした画像処理装置、制御方法、プログラム、及び記憶媒体を提供する。【解決手段】情報処理装置のＣＰＵ１０１は、制御プログラムにより以下の処理を実行する。メインスレッドではハーフデコード処理を行い、１／２解像度ＲＡＷデータを取得する。現像パラメータに基づき現像処理を行い、表示解像度に基づき変倍処理を行い、表示部１０８に画像を表示する。表示解像度が１００％未満でない場合は、サブスレッドでフルデコード処理を開始する。フルデコード処理ではフル解像度ＲＡＷデータを取得し、１／２解像度ＲＡＷデータを破棄し、フル解像度ＲＡＷデータで置き換える。表示解像度が１００％未満の場合は、表示部１０８に表示すべき画像に変化が生じた場合は現像処理をやり直し、表示を更新するように制御する。【選択図】図４
2008204182.tif 000002
【特許請求の範囲】
【請求項１】
色配列の周期性が異なる複数色の画素からなる原画像の画像信号から画像を生成する画像処理装置であって、
前記画像信号を圧縮した圧縮画像信号を記憶する記憶手段と、
前記圧縮画像信号をデコードする信号処理手段と、
前記信号処理手段によりデコードされた画像信号を画素間引きして原画像を縮小した縮小画像を生成する第１の画像生成手段と、
前記信号処理手段によりデコードされた画像信号を画素補間して原画像と同じ大きさの等倍画像を生成する第２の画像生成手段と、
表示手段に表示する画像の表示解像度を指定する解像度指定手段と、
前記解像度指定手段により指定された表示解像度に基づき、前記第１の画像生成手段により生成された前記縮小画像の表示と、前記第２の画像生成手段により生成された前記等倍画像の表示とを切り替える切替手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記表示手段に表示する画像の画像調整パラメータを指定する画像調整指定手段を更に備え、
前記表示手段に前記縮小画像を表示する際に、前記画像調整指定手段により指定された画像調整パラメータを前記縮小画像に適用することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記信号処理手段によるデコード済みの画像信号をキャッシュする第２の記憶手段を更に備え、
前記第１の画像生成手段で処理を行った際に前記デコード済みの画像信号を前記第２の記憶手段にキャッシュし、前記第２の記憶手段にキャッシュされた前記デコード済みの画像信号を前記第２の画像生成手段で処理を行う際に使用することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記圧縮画像信号をキャッシュする第３の記憶手段を更に備え、
前記第１の画像生成手段で処理を行った際に前記圧縮画像信号を前記第３の記憶手段にキャッシュし、前記第３の記憶手段にキャッシュされた前記圧縮画像信号を前記第２の画像生成手段で処理を行う際に使用することを特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
前記画像処理装置が搭載される装置は、情報処理装置、撮像装置を含む群から選択されることを特徴とする請求項１乃至４のいずれかに記載の画像処理装置。
【請求項６】
色配列の周期性が異なる複数色の画素からなる原画像の画像信号から画像を生成する画像処理装置の制御方法であって、
前記画像信号を圧縮した圧縮画像信号をデコードする信号処理ステップと、
前記信号処理ステップによりデコードされた画像信号を画素間引きして原画像を縮小した縮小画像を生成する第１の画像生成ステップと、
前記信号処理ステップによりデコードされた画像信号を画素補間して原画像と同じ大きさの等倍画像を生成する第２の画像生成ステップと、
表示手段に表示する画像の表示解像度を指定する解像度指定ステップと、
前記解像度指定ステップにより指定された表示解像度に基づき、前記第１の画像生成ステップにより生成された前記縮小画像の表示と、前記第２の画像生成ステップにより生成された前記等倍画像の表示とを切り替える切替ステップと、
を備えることを特徴とする制御方法。
【請求項７】
色配列の周期性が異なる複数色の画素からなる原画像の画像信号から画像を生成する画像処理装置の制御方法をコンピュータに実行させるプログラムであって、前記制御方法は、
前記画像信号を圧縮した圧縮画像信号をデコードする信号処理ステップと、
前記信号処理ステップによりデコードされた画像信号を画素間引きして原画像を縮小した縮小画像を生成する第１の画像生成ステップと、
前記信号処理ステップによりデコードされた画像信号を画素補間して原画像と同じ大きさの等倍画像を生成する第２の画像生成ステップと、
表示手段に表示する画像の表示解像度を指定する解像度指定ステップと、
前記解像度指定ステップにより指定された表示解像度に基づき、前記第１の画像生成ステップにより生成された前記縮小画像の表示と、前記第２の画像生成ステップにより生成された前記等倍画像の表示とを切り替える切替ステップと、
を備えることを特徴とするプログラム。
【請求項８】
前記請求項７記載のプログラムを格納することを特徴とするコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示対象の画像データに画像処理を施す画像処理装置、制御方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
従来、デジタルスチルカメラ等の撮像装置には、ＣＭＯＳ形やＣＣＤ形等の撮像素子により被写体の光学像を光電変換して得た撮影画像の電気信号をデジタルデータに変換し、RAW画像データとして保存する機能を有するものがある。この種の撮像装置では、RAW画像データ（以下RAWデータ）に対して色補間処理、ガンマ補正処理、ホワイトバランス調整処理等を施し、プリンタ等の画像出力装置で印刷出力する画像を作成する。
【０００３】
上記の撮像素子は、R、G、Bの各色を受容する受容体が規則的に並べられた構造であるため、RAWデータとして保存されるデジタルデータも同様の並びとなる。この並び方の規則には、例えばR、G、Bの各色が図６に示すように並んだBayer配列（周期性が異なる複数色の画素からなる色配列）がある。図６は、Bayer配列の各画素の並びを示す図である。
【０００４】
ここで、Bayer配列の各画素位置の指示方法について図７を参照しながら説明する。図７は、Bayer配列の各画素の指定方法を示す図である。図７に示すような２次元のBayer配列において、行、列は、それぞれ左上を原点として、右方向に１、２、・・・、２m列目、下方向に１、２、・・・、２n行目と数えるものとする。
【０００５】
Bayer配列を２行ずつ及び２列ずつで分割し、各２×２の画素の固まりをブロックと呼ぶ。また、ブロックを一単位とした配列をブロック配列と呼ぶ。即ち、２m×２nの画素を持つBayer配列は、m×nのブロック配列となる。Bayer配列の行、列をそれぞれ画素行、画素列と呼び、ブロック配列の行、列をそれぞれブロック行、ブロック列と呼ぶものとする。i列目のブロック列には２i-１、２i列目の画素列が含まれ、j行目のブロック行には２j-１行、２j行目の画素行が含まれる。
【０００６】
i列目、j行目のブロックに含まれる４画素は、R(i、j)、G(i、j)a(ブロック内左上)、G(i、j)b(ブロック内左上)、B(i、j)、のように表すものとする。本明細書では以下、Bayer配列の各画素を指示する際には上記の法則に従うものとする。
【０００７】
Bayer配列のRAWデータからRGB画像を作成する場合、一般には、２m×２nの解像度のRAWデータから、２m×２nの解像度のRGB画像を作成する。その際、各画素は１つの色情報しか持たないため、各画素の他の色情報を周りの画素の色情報から補間する。
【０００８】
例えば、図７のR(２、２)の画素におけるG、Bの値を、G=(G(２、１)b+G(２、２)a+G(３、２)a+G(２、２)b)/４、B=(B(２、１)+B(３、２)+B(２、２)+B(３、２))/４のように、周囲４画素の平均とする方法がある。この場合、B(２、２)の画素におけるR、Gの値も同様に、R=(R(１／２)+R(２、２)+R(１、３)+R(２、３))/４、G=(G(２、２)a+G(１／２)b+G(２、２)b+G(２、３)a)/４と算出できる。G(２、２)aの画素におけるR、Bの値は、R=(R(１／２)+R(２、２))/２、B=(B(２、１)+ B(２、２))/２のように周囲の２画素の平均により算出できる。この方法を、以下「フルデコード」と呼ぶ。
【０００９】
しかし、デジタルスチルカメラ（以下デジタルカメラ）で撮影される画像の解像度は非常に高く、RAWデータの画素補間処理には非常に多くの時間を要する。そこで、RAWデータを扱うデジタルスチルカメラ等の撮像装置では、処理の高速化のために様々な工夫がされている。
【００１０】
例えば、縮小RGB画像の作成を高速化するために、RAWデータの画素補間を行う時に元の４分の１の画素数のRGB画像を直接得る方法がある。この方法を、以下「ハーフデコード」と呼ぶ。
【００１１】
従来は、２m×２nの解像度のRAWデータから縮小画像を作成する場合、一度２m×２nの解像度のRGB画像を作成し、そこから縮小画像を作成していた。ハーフデコードでは、図８に示すように、RAWデータの１ブロックの範囲をRGB画像の１画素とすることで、２m×２nの解像度のRAWデータからm×nの解像度のRGB画像を直接作成し、縮小RGB画像の作成を高速化する。
【００１２】
ハーフデコードを行う時の画素補間方法の例を図９を用いて説明する。図９（ａ）はRAWデータのi列目、j行目のブロックとその周囲８ブロックに含まれる画素配列を表している。図９（ｃ）は、図９（ａ）を補間して得られる縮小RGB画像を表している。図９（ｂ）は、縮小RGB画像のi列目、j行目の画素のR、G、B値を算出する際に参照する、RAWデータの画素を斜線で表している。
【００１３】
縮小RGB画像のi列目、j行目の画素のR、G、B値をそれぞれR´(i、j)、G´(i、j)、B´(i、j)とすると、各値は図９（ｂ）で斜線で示されている画素を参照し、
R´(i、j)= R(i、j)
G´(i、j)=(G(i、j)a+G(i、j)b)/２                      ・・・式(１)
B´(i、j)= B(i、j)
と算出することができる。
【００１４】
上記技術分野に関する先行技術としては以下のような技術が提案されている（例えば、特許文献１、特許文献２、特許文献３参照）。
【特許文献１】特開２００３−３４８３３５号公報
【特許文献２】特開２００４−０５６６４１号公報
【特許文献３】特開２００６−２２７６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、上記Bayer配列のRAWデータからRGB画像を作成する際に、フルデコードは処理速度が遅く、ハーフデコードは１００％表示以上の表示解像度における表示画質が悪いという問題があり、一長一短であった。従来は、一般に、アプリケーションソフトウェアの用途に応じて設計時にフルデコードとハーフデコードのどちらを使うかを決めるか、もしくはアプリケーションソフトウェアの実行時にオプションに基づいてどちらを使うかを決めていた。従って、特にアプリケーションソフトウェアの実行時に操作者が画面解像度を自由に変更できるような装置においては、フルデコードとハーフデコードの適切な選択は困難であった。
【００１６】
上記特許文献１（特開２００３−３４８３３５号公報）によれば、フルデコードにより作成したフルデコード画像を縮小して縮小画像を作り、まず縮小画像を現像し表示してからフルデコード画像を現像し表示する。この方法では、現像時間を短縮することができるが、最も時間のかかる画素補間処理をまず最初に実行するので、画像を表示するまでの時間に関して十分な高速化ができないという問題があった。
【００１７】
また、上記特許文献２（特開２００４−０５６６４１号公報）によれば、処理対象とする画像のサムネール画像を作成してファイルに埋め込むことにより画像表示を高速に行う。この方法は、RAW画像とは独立したビットストリームのサムネール画像をまず表示するもので、簡単な画像確認のためにデコード自体を行わないで済ませるものであり、デコード自体を高速化することはできないという問題があった。
【００１８】
また、上記特許文献３（特開２００６−２２７６９８号公報）によれば、表示解像度ないし印刷解像度に応じてハーフデコードとフルデコードを切り替えるものである。この方法では、上記のようにアプリケーションの実行時に操作者が画面解像度を自由に変更できるような装置においては適用できないという問題があった。
【００１９】
本発明の目的は、画像を表示するまでの高速化と高画質な画像の表示の両立を実現可能とした画像処理装置、制御方法、プログラム、及び記憶媒体を提供することにある。
【課題を解決するための手段】
【００２０】
上述の目的を達成するために、本発明の画像処理装置は、色配列の周期性が異なる複数色の画素からなる原画像の画像信号から画像を生成する画像処理装置であって、前記画像信号を圧縮した圧縮画像信号を記憶する記憶手段と、前記圧縮画像信号をデコードする信号処理手段と、前記信号処理手段によりデコードされた画像信号を画素間引きして原画像を縮小した縮小画像を生成する第１の画像生成手段と、前記信号処理手段によりデコードされた画像信号を画素補間して原画像と同じ大きさの等倍画像を生成する第２の画像生成手段と、表示手段に表示する画像の表示解像度を指定する解像度指定手段と、前記解像度指定手段により指定された表示解像度に基づき、前記第１の画像生成手段により生成された前記縮小画像の表示と、前記第２の画像生成手段により生成された前記等倍画像の表示とを切り替える切替手段と、を備えることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、指定された表示解像度に基づき、デコード済みの画像信号を画素間引きして原画像を縮小した縮小画像の表示と、デコード済みの画像信号を画素補間して原画像と同じ大きさの等倍画像の表示とを切り替える。これにより、画像を表示するまでの処理の高速化と高画質な画像の表示の両立を実現することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２３】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る画像処理装置としての情報処理装置の構成を示すブロック図である。
【００２４】
図１において、情報処理装置１００は、例えばパーソナルコンピュータ（以下ＰＣ）として構成されており、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ハードディスクドライブ（以下ＨＤＤ）１０４を備えている。情報処理装置は、更に、フロッピー（登録商標）ディスクドライブ（以下ＦＤＤ）１０５、キーボード１０６、マウス１０７、表示部１０８、プリンタインタフェース（以下プリンタＩ／Ｆ）１０９を備えている。
【００２５】
ＣＰＵ１０１は、情報処理装置全体の制御を司るものであり、制御プログラムを実行することで、後述の図４のフローチャートに示す処理を含む各種処理を実行する。ＲＯＭ１０２には、制御プログラムが格納されている。ＲＡＭ１０３は、ＣＰＵ１０１の作業領域や一時記憶領域を提供するものであり、後述のBayerデータ、圧縮RAWデータがキャッシュされる。ＨＤＤ１０４は、圧縮RAWデータをＨＤに対し書き込み／読み出し可能に記憶する。なお、ＨＤＤ１０４のＨＤに制御プログラムを格納してもよい。
【００２６】
ＦＤＤ１０５は、任意のデータをＦＤに対し書き込み／読み出し可能に記憶する。キーボード１０６、マウス１０７は、情報処理装置に対してそれぞれ各種データ入力、各種指示を行う際に用いる。表示部１０８は、ＣＰＵ１０１による制御に基づきＣＲＴ表示方式或いは液晶表示方式により後述の図２に示す画面などを表示する。プリンタＩ／Ｆ１０９は、情報処理装置１００とプリンタ２００との間のインタフェースを司る。
【００２７】
図２は、情報処理装置のアプリケーションソフトウェアの画面構成例を示す図である。
【００２８】
図２において、アプリケーションソフトウェアの画面は、表示部１０８に表示されるものであり、画像表示領域６１、表示解像度指定スライダ６２、画像調整スライダ６３、スクロールバー６４、６５を有する。表示解像度指定スライダ６２は、表示解像度を指定する際に操作者がマウス１０７等を介して操作する。画像調整スライダ６３は、後述する現像パラメータを決定する際に操作者がマウス１０７等を介して操作する。スクロールバー６４、６５は、画像表示領域６１における画像の位置を制御する際に操作者がマウス１０７等を介して操作する。
【００２９】
ＨＤＤ１０４には、上述したように圧縮RAWデータが格納されている。ＣＰＵ１０１は、後述する手順に従ってRAWデータを処理することで表示部１０８に表示するのに適した画像を生成し、画像表示領域６１に表示する。
【００３０】
操作者は表示解像度指定スライダ６２を用いて画像が表示されるべき解像度を選択する。図２の例では表示解像度指定スライダ６２が「Fit」の位置に設定されているため、画像表示領域６１には画像全体が丁度収まるように変倍されて表示されている。表示解像度指定スライダ６２が「５０％」の位置に設定された場合には、画像データを５０％に縮小して画像表示領域６１に表示する。「１００％」、「２００％」の位置に設定された場合も同様である。
【００３１】
ここで、画像表示領域６１に画像を表示する場合、必ずしも画像の全体が表示領域６１に収まるとは限らない。そのため、画像が画像表示領域６１よりも大きい場合には、操作者がスクロールバー６４、６５を用いて画像表示領域６１の表示部分をスクロールし、画像の所望の部分を表示させるようにする。
【００３２】
画像調整スライダ６３は、後述する現像処理において画像に適用する現像パラメータ（画像調整パラメータ）を決定する際に操作する。現像パラメータとは、例えば露出を決定する数値である。現像パラメータの数値が大きいほど、即ち画像調整スライダ６３を右に移動するほど画像は全体が明るくなった状態で画像表示領域６１に表示される。
【００３３】
他方、現像パラメータの数値が小さいほど、即ち画像調整スライダ６３を左に移動するほど画像は全体が暗くなった状態で画像表示領域６１に表示される。操作者は表示部１０８に表示される画像表示領域６１を見ながら画像調整スライダ６３を操作することで、画像の露出が適切になるように調節することができる。
【００３４】
次に、上記構成を有する本実施の形態の情報処理装置における動作を図１乃至図４を参照しながら詳細に説明する。
【００３５】
まず、情報処理装置におけるRAW現像処理の流れを図３に基づき説明する。
【００３６】
図３は、情報処理装置におけるRAW現像処理のデータの流れを示す図である。
【００３７】
図３において、圧縮RAWデータ７１は、デジタルカメラ（不図示）により撮像された画像データであり、ＨＤＤ１０４に記憶されている。圧縮状態の圧縮RAWデータ７１から伸張されたデコード済みのRAWデータ、即ち上述したBayerデータ７２は、ＲＡＭ１０３にキャッシュされる。ここまではハーフデコードとフルデコードで共通の処理であるが、これ以降はハーフデコードとフルデコードで別々の処理に進む。
【００３８】
図３の上方はハーフデコード処理の流れを示している。Bayerデータ７２は、既に説明した縮小処理（画素間引き処理）により１／２解像度RAWデータ７３となる。１／２解像度RAWデータ７３は、デジタルカメラの撮像素子の特性に基づいた色空間のデータであるので、そのままでは表示部１０８に表示するのに適さない。そこで、１／２解像度RAWデータ７３に公知のゲイン補正処理、ガンマ補正処理、ホワイトバランス補正処理を施すことにより、表示部１０８の画面表示に適した公知のsRGB色空間データ等に変換する。これらの処理をまとめて以下現像処理と呼ぶ。
【００３９】
表示部１０８に表示される画像調整スライダ６３の値は、現像処理に含まれるゲイン補正処理を実行する際に現像パラメータとして適用される。これにより、操作者による画像調整スライダ６３の操作に基づく指示に従って、異なる現像結果を得ることができる。ガンマ補正処理やホワイトバランス処理も処理パラメータを受け取るようにすることができ、表示部１０８に別途ユーザインタフェースを設けて操作者が指示するようにしてもよい。
【００４０】
１／２解像度RAWデータ７３は、上記現像処理を経てハーフデコード画像７４となる。ハーフデコード画像７４は、操作者により表示解像度指定スライダ６２で指定される表示解像度に応じて、公知のバイリニア補間処理等の変倍処理を施され、表示部１０８の画像表示領域６１に表示される。
【００４１】
このとき、ハーフデコード画像７４は既に元々の５０％の表示解像度に縮小されていることを考慮する。即ち、表示解像度指定スライダ６２が「５０％」を示している場合には、既に適当な表示解像度となっているため変倍は必要ない。表示解像度指定スライダ６２が「２００％」を示している場合には、ここで４倍の拡大補間処理を行うことで、トータルで２００％の表示解像度とする。他の表示解像度の場合も同様である。
【００４２】
図３の下方はフルデコード処理の流れを示している。Bayerデータ７２は、既に説明した画素補間処理によりフル解像度RAWデータ７５となる。フル解像度RAWデータ７５は、公知のスムージングフィルタ等を用いた偽色緩和処理を施された後、上記現像処理を経てフルデコード画像７７となる。フルデコード画像７７は、操作者により表示解像度指定スライダ６２で指定される表示解像度に応じて、公知のバイリニア補間処理等の変倍処理を施され、表示部１０８の画像表示領域６１に表示される。
【００４３】
ここでは、フルデコード処理におけるフル解像度RAWデータ７５は、上記ハーフデコード処理における１／２解像度RAWデータ７３と異なり、１００％の表示解像度を持っている。そのため、例えば表示解像度指定スライダ６２が「５０％」を示しているときには、その値どおりに１／２倍の縮小処理を行う。
【００４４】
後述するように、フルデコード処理は必ずハーフデコード処理の後に実行される。従って、ハーフデコード処理を行った際にＲＡＭ１０３にキャッシュされたBayerデータを、フルデコード処理の際に使用することができるので、フルデコード処理を行う時に再び伸張処理を行う必要がない。このような構成をとることで伸張処理を軽減し、処理全体の負荷を軽減することができる。
【００４５】
次に、情報処理装置におけるハーフデコード処理及びフルデコード処理について図４に基づき説明する。
【００４６】
図４は、情報処理装置におけるハーフデコード処理及びフルデコード処理の流れを示すフローチャートである。
【００４７】
図４において、情報処理装置のＣＰＵ１０１は、メインスレッドにおいてハーフデコード処理を行い、１／２解像度RAWデータ７３を得る（ステップＳ１０１）。次に、ＣＰＵ１０１は、操作者により設定された画像調整スライダ６３の調整値である現像パラメータ（画像調整パラメータ）に基づいて現像処理を行う（ステップＳ１０２）。次に、ＣＰＵ１０１は、操作者により設定された表示解像度指定スライダ６２の調整値である表示解像度に基づいて画像の変倍処理を行い、表示部１０８の画像表示領域６１に画像を表示する（ステップＳ１０３）。
【００４８】
次に、ＣＰＵ１０１は、操作者により設定された表示解像度指定スライダ６２の調整値（表示解像度）が１００％未満であるかどうかを判断する（ステップＳ１０４）。表示解像度が１００％未満と判定した場合はステップＳ１０６に進み、表示解像度が１００％未満でないと判定した場合はステップＳ１０５に進む。本実施の形態においては、表示解像度が１００％未満というのは表示解像度指定スライダ６２の値が「５０％」を指すときである。
【００４９】
また、表示解像度指定スライダ６２の値が「Fit」を指すときには以下のようにしてもよい。即ち、画像表示領域６１の画素数と画像データの画素数とを比較し、画像データの画素数の方が画像表示領域６１の画素数より小さいか否かという判定を行うことで、より厳密に表示解像度が１００％未満かどうかの判定を行うようにしてもよい。
【００５０】
表示解像度が１００％未満でない場合、ＣＰＵ１０１は、フルデコード処理を開始すべくサブスレッドを起動し（ステップＳ１０５）、ステップＳ１０６に進む。ステップＳ１０４で表示解像度が１００％未満と判定した場合またはステップＳ１０５を終了した場合、ＣＰＵ１０１は、操作者による表示解像度指定スライダ６２の操作により表示解像度が変化したかどうかを判断する（ステップＳ１０６）。表示解像度が変化していると判定した場合はステップＳ１０２に戻り、表示解像度が変化していないと判定した場合はステップＳ１０７に進む。
【００５１】
表示解像度が変化していない場合、ＣＰＵ１０１は、操作者による画像調整スライダ６３の操作により現像パラメータが変化したかどうかを判断する（ステップＳ１０７）。現像パラメータが変化していると判定した場合はステップＳ１０２に戻り、現像パラメータが変化していないと判定した場合はステップＳ１０８に進む。
【００５２】
現像パラメータが変化していない場合、ＣＰＵ１０１は、後述するサブスレッドのフルデコード処理により主画像が差し替わったかどうかを判断する（ステップＳ１０８）。主画像が差し替わったと判定した場合はステップＳ１０２に戻り、主画像が差し替わっていないと判定した場合はステップＳ１０９に進む。
【００５３】
主画像が差し替わった場合、ＣＰＵ１０１は、メインスレッドを終了するかどうかを判断する（ステップＳ１０９）。メインスレッドを終了すると判断した場合はメインスレッドを終了し、メインスレッドを終了しないと判断した場合はステップＳ１０６に戻る。即ち、ステップＳ１０６からステップＳ１０９までは、操作者の操作やサブスレッドによる動作を監視するループを形成しており、画像表示領域６１に表示すべき画像に変化が生じた場合には現像処理をやり直して表示を更新するように制御する。
【００５４】
上記メインスレッドのステップＳ１０５でサブスレッドが起動されると、ＣＰＵ１０１は、サブスレッドにおいてフルデコード処理を行い、フル解像度RAWデータ７５を得る（ステップＳ１５１）。既に説明したように、Bayerデータ７２はＲＡＭ１０３にキャッシュされているので、圧縮RAWデータを伸張する処理は省略することができる。次に、ＣＰＵ１０１は、メインスレッドにおいて現像を行う対象である１／２解像度RAWデータ７３を破棄し、フル解像度RAWデータ７５で置き換え（ステップＳ１５２）、サブスレッドを終了する。ステップＳ１５２の処理を以下「主画像の差し替え」と呼ぶ。
【００５５】
上記サブスレッド側の処理により、操作者から見ると、表示部１０８の画像表示領域６１に表示されている画像が操作者自身の操作とは非同期的に高精細な画像に変化するように見える。ただし、元々のRAWデータは同一であるし、ステップＳ１０２で同一の現像処理を行っているので、画像の変化は微小であり操作者の作業を妨げる程ではない。
【００５６】
また、元々１００％未満の表示解像度に縮小して画像の表示を行っている場合には、画像が高精細になる変化はより一層微小で、ほとんど操作者には違いを判別できない程度である。そのため、主スレッド側で判断して表示解像度が１００％未満の場合にはサブスレッドを起動せず、従って、主画像の差し替えを行わない。このようにして無駄なフルデコード処理を省略することで、システム全体の処理の負荷を軽減している。
【００５７】
次に、本実施の形態のハーフデコード及びフルデコードの両方を用いるシステムと、従来行われていたようなハーフデコードもしくはフルデコードのどちらか一方だけを用いるシステムとの相違を説明する。
【００５８】
従来のハーフデコードだけを用いるシステムでは、表示解像度が１００％あるいは２００％になった場合に画像解像度が十分でなく、画質が低くなってしまうという問題がある。また、従来のフルデコードだけを用いるシステムでは、フルデコードを開始してから画像が表示されるまでに時間がかかってしまうので、操作者の作業効率を低下させてしまうという問題がある。
【００５９】
これに対し、本実施の形態では、まずハーフデコードを行い、現像処理及び表示処理を行う。これにより、迅速に画像を表示することができ、操作者の作業を妨げない。また、操作者が画像調整等の作業を行っている間にフルデコードを行い、準備ができた時点で主画像の差し替えを行って表示を更新する。これにより、操作者が表示解像度を上げて画像の細部を検証する等のより詳細な作業を行う場合でも、画質が低下しているように見えない。以上の動作により、表示対象画像の処理の高速化と高画質な画像の表示の両立を実現することが可能となる。
【００６０】
また、本実施の形態のシステムと、従来別途行われていた、画像本体とは別に簡易表示のための所謂サムネールデータを保持し、一旦サムネール画像を画面に表示しておき、画像本体のデコード終了時点で画像を差し替えるシステムとの相違を説明する。
【００６１】
従来のシステムでは以下の問題がある。サムネール画像の表示はあくまで簡易的な表示のためのものであって、一般に主画像とは非常に異なる解像度・画質のものであるので、サムネール画像を見ながら画像を調整するという作業は困難である。また、サムネール画像を拡大して画面に表示したものだけで作業が完了することはなく、必ず主画像のデコード及び差し替えを行う必要がある。
【００６２】
これに対し、本実施の形態では、ハーフデコード画像を表示している間でも問題なく作業を進めることができる。その上、ハーフデコード画像だけで表示に十分である場合にはフルデコードを行わないため、作業効率を高めつつも全体の処理負荷を軽減できるという効果がある。
【００６３】
更に、本実施の形態では、ハーフデコード及びフルデコードは途中までの処理が同一であるので、Bayerデータ７２をＲＡＭ１０３にキャッシュする。これにより、同じ処理を繰り返さないようにして更に負荷を軽減している。サムネールデータは主画像データ（画像本体）とは一般に独立したビットストリームであるので、従来方式では本実施の形態のこのような効果を得ることができない。
【００６４】
この点は、標準的な符号化方式である、FlashPixやJPEG2000等の所謂階層符号データを用いて段階的に表示を行う従来システムも、サムネールデータを使う従来システムと同等である。階層符号画像においては解像度ごとにビットストリームが別々になっている。FlashPixでは完全に独立したビットストリームである。JPEG2000では構成により一部のビットストリームを共通にできる。いずれにせよ階層間で完全に同一のビットストリームになることはあり得ない。
【００６５】
従って、従来システムでは、本実施の形態でBayerデータ７２をキャッシュしているようには処理途中のデータを再利用することができないため、システム全体の負荷を十分に軽減することができない。
【００６６】
これに対し、本実施の形態では、デジタルカメラで撮影されたBayer配列のRAWデータ特有の性質を利用する。これにより、サムネールデータや階層符号データを用いた従来システムでは不可能であった、画像を表示するまでの高速化と高画質な画像の表示の両立が可能となる。
【００６７】
以上説明したように、本実施の形態によれば、まずハーフデコードを行って画像を表示部１０８に表示し、更にフルデコードを行い、表示部１０８の表示画像を差し替える。また、現在の表示解像度に応じて、ハーフデコード画像の解像度が十分である場合はフルデコードを行わず、表示解像度が高くなった場合にフルデコードを行い、表示部１０８の表示画像を差し替える。また、ハーフデコードとフルデコードは共通のデータを用いるため、圧縮画像をデコードしたデコード済みRAWデータをキャッシュする。即ち、デコード処理を繰り返し行わないようにすることで、処理を更に高速にする。これにより、画像を表示するまでの処理の高速化と高画質な画像の表示の両立を実現することが可能となる。
【００６８】
［第２の実施の形態］
本発明の第２の実施の形態は、圧縮RAWデータをデコード後にキャッシュするようにした上記第１の実施の形態に対して、図５で説明する点において相違する。本実施の形態のその他の要素は、上記第１の実施の形態（図１、図２）の対応するものと同一なので、説明を省略する。
【００６９】
図５は、本実施の形態に係る情報処理装置におけるRAW現像処理のデータの流れを示す図である。
【００７０】
図５において、図３との相違点はキャッシュの用い方のみであり、相違点を中心に説明する。本実施の形態では、ＨＤＤ１０４から読み出した圧縮RAWデータをキャッシュするようにし、必要に応じてこのキャッシュした圧縮RAWデータを繰り返しデコードする。即ち、表示部１０８に画像を表示する際には、まずハーフデコードを実行するので、このときにＨＤＤ１０４の圧縮RAWデータ７１−１をＲＡＭ１０３にキャッシュする。その後、フルデコードを実行する際に、キャッシュされた圧縮RAWデータ７１−２を再びデコードして用いるようにする。
【００７１】
本実施の形態は、上記第１の実施の形態と比較して、デコード処理が２回行われるという違いがあるため、処理速度は低下する。しかしながら、ＲＡＭ１０３にキャッシュされる圧縮RAWデータは圧縮状態でありデータ量が少ないため、処理に要するＲＡＭ１０３の容量を節約することができ、コストを低減することができる。従って、処理速度とコストの両方を鑑みて、適切な方の実施の形態を選択すればよい。
【００７２】
また、本実施の形態と上記第１の実施の形態とは、必ずしも排他的に実施されるべきものではなく、処理を実行するときのＲＡＭ１０３の空き容量を参照して両実施の形態を適宜切り替えるようにしてもよい。即ち、ＲＡＭ１０３の空き容量が十分多い場合は第１の実施の形態を採用し、ＲＡＭ１０３の空き容量が少ない場合は本実施の形態を採用するようにすればよい。その理由は、特に本発明が汎用のＰＣで実施される際には同時に実行されている他のプロセスの状態によって、ＲＡＭ１０３の空き容量が動的に変化するためである。
【００７３】
以上説明したように、本実施の形態によれば、ハーフデコードとフルデコードは共通のデータを用いるため、ＨＤＤ１０４から読み出した圧縮画像データをＲＡＭ１０３にキャッシュする。即ち、画像データの読み出しを繰り返し行わないようにすることで、処理を更に高速にする。これにより、画像を表示するまでの処理の高速化と高画質な画像の表示の両立を実現することが可能となる。
【００７４】
［他の実施の形態］
上記実施の形態では、フルデコード処理を実行するとハーフデコード画像を破棄して差し替えるという構成をとったが、これに限定されるものではない。フルデコード画像とハーフデコード画像の両方の画像を保持しておき、表示解像度に応じて適宜どちらの画像を用いるかを決定してもよい。例えば、４０％の表示解像度の時にフルデコード画像とハーフデコード画像の両方の画像があれば、フルデコード画像を４０％に縮小するよりもハーフデコード画像を８０％に縮小する方が、縮小処理に要する時間も短くて済む上に画質も良好となる。
【００７５】
また、上記実施の形態は、ＰＣにおける処理を念頭においているが、これに限定されるものではない。例えばデジタルカメラの背面部の液晶表示部に画像を表示する際にも適用することができる。この場合は、ＰＣの表示部１０８をデジタルカメラの背面部の液晶表示部に、キーボード１０６を操作ボタン類に、ＨＤＤ１０４をフラッシュメモリにそれぞれ適宜置き換えればよい。
【００７６】
また、上記実施の形態では、RAWデータの種類等に依存して、フルデコードは必ずしも非常に負荷が高い処理でない場合がある。例えば、旧式あるいは低価格のデジタルカメラで撮影された画像で、画素数がさほど多くないRAWデータを処理する場合や、フルデコード処理自体が簡略な設定になっている場合などである。このような場合、ハーフデコード処理の全体が単に無駄になってしまうので、ハーフデコードを行わないようにすればよい。具体的には、ＨＤＤ１０４から圧縮RAWデータを読み出した時点で画像の画素数が分かるので、適当に定めたスレッショルドよりも画素数が少ない場合にはハーフデコードを行わず、初めからフルデコードを行うようにすればよい。
【００７７】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読出す処理である。
【００７８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７９】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００８０】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【００８１】
更に、前述した実施の形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施の形態に係る画像処理装置としての情報処理装置の構成を示すブロック図である。
【図２】情報処理装置のアプリケーションソフトウェアの画面構成例を示す図である。
【図３】情報処理装置におけるRAW現像処理のデータの流れを示す図である。
【図４】情報処理装置におけるハーフデコード処理及びフルデコード処理の流れを示すフローチャートである。
【図５】本発明の第２の実施の形態に係る情報処理装置におけるRAW現像処理のデータの流れを示す図である。
【図６】Bayer配列の各画素の並びを示す図である。
【図７】Bayer配列の各画素の指定方法を示す図である。
【図８】ハーフデコードのイメージを示す図である。
【図９】ハーフデコードを行う時の画素補間方法の例を示す図である。
【符号の説明】
【００８３】
６１  画像表示領域
６２  表示解像度指定スライダ（解像度指定手段）
６３  画像調整スライダ（画像調整指定手段）
１０１  ＣＰＵ（切替手段）
１０２  ＲＯＭ
１０３  ＲＡＭ（第２の記憶手段、第３の記憶手段）
１０４  ＨＤＤ（記憶手段）
１０８  表示部（表示手段）
【図１】
2008204182.tif 000003
【図２】
2008204182.tif 000004
【図３】
2008204182.tif 000005
【図４】
2008204182.tif 000006
【図５】
2008204182.tif 000007
【図６】
2008204182.tif 000008
【図７】
2008204182.tif 000009
【図８】
2008204182.tif 000010
【図９】
2008204182.tif 000011