以下、図面を参照して本発明に係る画像処理装置を有するカメラについて説明するが、各実施形態について説明する前に、本発明の特徴が明確になるように、先ず従来技術による画像処理装置を有するカメラ151について図10を用いて説明する。
カメラ151は、CPU102に予め格納されたプログラムによって動作し、使用者の操作パネル103の操作に基づいて、システムバス104を介してカメラ151の各部を制御する。
レンズ105から入射した被写体光は撮像素子106に結像され、タイミングジェネレータ(TG)107のタイミングに基づいて、光を電気信号に変換する。電気信号に変換されたアナログ画像信号は、アナログフロントエンド(AFE)108でノイズ除去や増幅が行われ、アナログデジタル変換部(A/D)109でデジタル画像データに変換される。デジタル画像データは、撮影画像の生データ(RAWデータ)としてRAWメモリ110に一時的に記憶される。
補間色処理回路111は、RAWメモリ110からRAWデータを読み出して、補間処理やRGBデータから輝度色差(YCrCb)データへの変換処理を行って、メモリ112に一時的に記憶する。
圧縮回路113は、メモリ112からYCrCbデータを読み出して、画像圧縮処理を行う。圧縮回路113が生成した画像圧縮データは、使用者による操作パネル103からの指示や設定に応じて、メモリカードIF114を介して接続されているメモリカード115に保存される。尚、RAWメモリ110,メモリ112,補間色処理回路111および圧縮回路113の間のデータの入出力は、システムバス104を介して行われ、CPU102によって制御される。
次に、これらの一連の動作について図11を用いて説明する。尚、ここでは、圧縮回路113は、JPEG規格の画像圧縮処理を行うJPEGエンコーダ113として説明する。同図において、補間色処理回路111によって補間色処理されたYCrCbデータは、メモリ112に設けられた2フレーム分の記憶エリアYUV1およびYUV2に交互に記憶される。尚、CPU102は、メモリ112に記憶されたYCrCbデータを読み出して、表示回路116を介して液晶モニタ117に撮影された画像を表示する。
JPEGエンコーダ113は、メモリ112から補間色処理されたYCrCbデータを読み出して、画像圧縮処理を行う。この時、2フレーム分の記憶エリアYUV1およびYUV2に記憶されている補間色処理済の方のYCrCbデータを交互に読み出して画像圧縮処理を行い、生成した1フレーム分のJPEGコードを順番にメモリ112の画像圧縮データの記憶エリアに記憶する。例えば、図11において、1フレーム目がJPEGcode1,2フレーム目がJPEGcode2,3フレーム目がJPEGcode3で、xフレーム目がJPEGcodexとなるように画像圧縮データを記憶する。
次に、上記の処理と時間の関係について、図12を用いて説明する。図12は、補間色処理回路111とJPEGエンコーダ113との処理時間の関係を説明した図である。
尚、一般に、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間の方が長く、画像圧縮処理がボトルネックとなって、全体の処理時間を左右する。図12は、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍ぐらいを想定したものである。
タイミングt1からタイミングt6までの時間は、補間色処理回路111が7つの画像フレームを連続して処理した場合の時間である。補間色処理回路111は、タイミングt1でフレーム501の画像データの補間色処理を開始し、タイミングt2で補間色処理を完了する。つまり、タイミングt2の時点で、図11のメモリ112の記憶エリアYUV1に処理されたYCrCbデータの記憶が終了し、フレーム501は処理済となる。
次に、補間色処理回路111は、フレーム501の処理が終わったタイミングt2から次のフレーム502の補間色処理を開始する。同時に、JPEGエンコーダ113は、記憶エリアYUV1に記憶された補間色処理が終了したフレーム501のYCrCbデータを読み出して、JPEG規格に基づいた画像圧縮処理を開始する。
ところが、先に説明したように、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍ぐらい長いので、フレーム502の補間色処理が先に終了する。この時点で、JPEGエンコーダ113は、記憶エリアYUV1に記憶されたフレーム501の画像圧縮処理中なので、補間色処理回路111は記憶エリアYUV1を使用することができない。タイミングt3で、JPEGエンコーダ113はフレーム501の画像圧縮処理を終了し、JPEGcode1の生成を完了する。この時点で、記憶エリアYUV1が使用可能となり、補間色処理回路111は、次のフレーム503の補間色処理を開始し、処理されたYCrCbデータを記憶エリアYUV1に書き込んでいく。同時に、JPEGエンコーダ113は、記憶エリアYUV2に記憶された補間色処理が終了したフレーム502のYCrCbデータを読み出して、画像圧縮処理を開始する。
ところが、フレーム502の場合と同様に、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍ぐらい長いので、フレーム503の補間色処理が先に終了する。この時点で、JPEGエンコーダ113は、記憶エリアYUV2に記憶されたフレーム502の画像圧縮処理中なので、補間色処理回路111は記憶エリアYUV2を使用することができない。このため、JPEGエンコーダ113がフレーム502の画像圧縮処理を終了するタイミングt4で、補間色処理回路111は、次のフレーム504の補間色処理を開始し、処理されたYCrCbデータを記憶エリアYUV2に書き込んでいく。同時に、JPEGエンコーダ113は、記憶エリアYUV1に記憶された補間色処理が終了したフレーム503のYCrCbデータを読み出して、画像圧縮処理を開始する。
同様に、JPEGエンコーダ113がフレーム503の画像圧縮処理を終了するタイミングt5で、補間色処理回路111は、次のフレーム505の補間色処理を開始し、処理されたYCrCbデータを記憶エリアYUV1に書き込んでいく。同時に、JPEGエンコーダ113は、記憶エリアYUV2に記憶された補間色処理が終了したフレーム504のYCrCbデータを読み出して、画像圧縮処理を開始する。
このように、補間色処理回路111が連続して処理すれば、点線で示したフレーム1からフレーム7までの補間色処理が行える処理時間内に、図10の構成では、フレーム501から505の5つのフレームしか処理できない。
次に、上記のような課題を解決する本発明に係る各実施形態について、順に説明する。
(第1の実施形態)
図1は、第1の実施形態に係る画像処理装置を有するカメラ101aの構成を示すブロック図である。カメラ101aの基本構成は、先に説明した図10のカメラ151と同じで、CPU102に予め格納されたプログラムによって動作し、使用者の操作パネル103の操作に基づいて、システムバス104を介してカメラ101aの各部を制御する。ここでは、図10と異なる部分について説明する。
図10と異なる部分は、圧縮回路113と同等の圧縮回路113aと113bとを設けたことで、レンズ105から入射した被写体光が撮像素子106で電気信号に変換され、AFE108およびA/D109を介して撮影したデジタル画像データがRAWメモリ110に記憶される部分までは同じである。
また、補間色処理回路111aは、図10の補間色処理回路111と同様に、RAWメモリ110からRAWデータを読み出して、補間処理やRGBデータから輝度色差(YCrCb)データへの変換処理を行って、メモリ112に一時的に記憶するが、メモリ112への記憶の仕方が異なる。この様子を図2に示す。尚、ここでは、圧縮回路113aおよび113bは、JPEG規格の画像圧縮処理を行うJPEGエンコーダ113aおよび113bに置き換えて説明する。補間色処理されたYCrCbデータは、メモリ112に設けられた3フレーム分の記憶エリアYUV1,YUV2およびYUV3に巡回的に記憶される。
JPEGエンコーダ113aおよびbは、交互に、メモリ112から補間色処理されたYCrCbデータを読み出して、JPEG規格の画像圧縮処理を行う。この時、3フレーム分の記憶エリアYUV1,YUV2およびYUV3に記憶されている補間色処理済のYCrCbデータを巡回的に読み出して画像圧縮処理を行う。例えば、補間色処理回路111aが記憶エリアYUV1への処理済みのデータの記憶が完了した場合は、JPEGエンコーダ113aが記憶エリアYUV1のYCrCbデータを読み出して画像圧縮処理を行う。次に、補間色処理回路111aが記憶エリアYUV2への処理済みのデータの記憶が完了した場合は、JPEGエンコーダ113bが記憶エリアYUV2のYCrCbデータを読み出して画像圧縮処理を行う。さらに、補間色処理回路111aが記憶エリアYUV3への処理済みのデータの記憶が完了した場合は、JPEGエンコーダ113aが記憶エリアYUV3のYCrCbデータを読み出して画像圧縮処理を行う。このように、補間色処理回路111aは、記憶エリアYUV1,YUV2およびYUV3に処理済みのYCrCbデータを巡回的に書き込み、同時に、記憶エリアYUV1,YUV2およびYUV3の中の処理済みの記憶エリアからYCrCbデータをJPEGエンコーダ113aおよびbは交互に読み出して、画像圧縮処理を行う。
JPEGエンコーダ113aおよびbが交互に生成した画像圧縮データは、例えば、1フレーム目がJPEGcode1,2フレーム目がJPEGcode2,3フレーム目がJPEGcode3で、xフレーム目がJPEGcodexとなるようにメモリ112の画像圧縮データの記憶エリアに記憶される。
次に、上記の処理と時間の関係について、図3を用いて説明する。図3は、補間色処理回路111aとJPEGエンコーダ113aおよびbとの処理時間の関係を説明した図である。図12と比較するために、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍ぐらいを想定したもので、図12のタイミングt1からタイミングt6までの時間は、図3のt11からt18までの時間に対応し、補間色処理回路111aが7つの画像フレームを連続して処理した場合の時間を示している。
補間色処理回路111aは、タイミングt11でフレーム201の画像データの補間色処理を開始し、タイミングt12で補間色処理を完了する。つまり、タイミングt12の時点で、図2のメモリ112の記憶エリアYUV1に処理されたYCrCbデータの記憶が終了し、フレーム201は処理済となる。
次に、補間色処理回路111aは、フレーム201の処理が終わったタイミングt12から次のフレーム202の補間色処理を開始する。同時に、JPEGエンコーダ113aは、記憶エリアYUV1に記憶された補間色処理が終了したフレーム201のYCrCbデータを読み出して、画像圧縮処理を開始する。
次に、補間色処理回路111aは、フレーム202の処理が終わったタイミングt13から次のフレーム203の補間色処理を開始する。同時に、JPEGエンコーダ113bは、記憶エリアYUV2に記憶された補間色処理が終了したフレーム202のYCrCbデータを読み出して、画像圧縮処理を開始する。
同様に、タイミングt14では、補間色処理回路111aが次のフレーム204の補間色処理を開始し、JPEGエンコーダ113aは、記憶エリアYUV3に記憶された補間色処理が終了したフレーム203の画像圧縮処理を開始する。
以降、タイミングt15では、補間色処理回路111aは次のフレーム205の処理を開始し、JPEGエンコーダ113bは補間色処理が終了したフレーム204の画像圧縮処理を開始する。タイミングt16では、補間色処理回路111aは次のフレーム206の処理を開始し、JPEGエンコーダ113aは補間色処理が終了したフレーム205の画像圧縮処理を開始する。タイミングt17では、補間色処理回路111aは次のフレーム207の処理を開始し、JPEGエンコーダ113bは補間色処理が終了したフレーム206の画像圧縮処理を開始する。
このように、JPEGエンコーダ113aが画像圧縮処理を行っている場合は、JPEGエンコーダ113bが画像圧縮処理を行い、逆に、JPEGエンコーダ113bが画像圧縮処理を行っている場合は、JPEGエンコーダ113aが画像圧縮処理を行うので、補間色処理回路111aはフレーム201から207の7つのフレームを連続して処理することができる。
尚、本実施形態の説明では、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍程度の長さとしたが、例えば、2.5倍程度の場合は、補間色処理回路で補間色処理したYCrCbデータを格納する記憶エリアを4フレーム分(YUV1,YUV2,YUV3およびYUV4)と、JPEGエンコーダを3つ設けることにより、3つのJPEGエンコーダが巡回的に、4フレーム分の記憶エリアから補間色処理済みのYCrCbデータを処理済みのものから順番に読み出して画像圧縮処理することにより実現できる。
つまり、圧縮回路の個数は次の式で計算できる。圧縮回路の個数=(画像圧縮回路の1フレームの処理時間)÷(補間色処理回路の1フレームの処理時間)の計算値を切り上げた整数値。例えば、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍程度の時、圧縮回路の個数は2個となり、2.5倍の時は3個、3.5倍の時は4個のように計算できる。尚、補間色処理回路で補間色処理したYCrCbデータを格納する記憶エリアの数は、圧縮回路の個数+1個の記憶エリアが少なくとも必要である。
このように、図10の場合は、補間色処理回路111が7つのフレームを連続して処理する時間に、図10の場合は5フレームの補間色処理と、約4フレームの画像圧縮データしか生成できなかったが、本実施形態の図3では7フレームの補間色処理と、約6フレームの画像圧縮データを生成することができる。
(第2の実施形態)
次に、第2の実施形態に係る画像処理装置を有するカメラ101bのブロック図を図4に示す。カメラ101bの基本構成は、第1の実施形態の図1のカメラ101と同じであるが、補間色処理回路111bと圧縮回路113cおよび113dとの間にバッファ118aおよび118bをそれぞれ設けた構成になっている。つまり、補間色処理回路111bと、圧縮回路113cおよび113dとが、システムバス104とは別に、バッファ118aおよび118bを介して直接接続された構成になっている。
同図において、レンズ105から入射した被写体光が撮像素子106で電気信号に変換され、AFE108およびA/D109を介して撮影したデジタル画像データがRAWメモリ110に記憶される部分までは、第1の実施形態と同じである。
その後、補間色処理回路111bは、図10の補間色処理回路111と同様に、RAWメモリ110からRAWデータを読み出して、補間処理やRGBデータから輝度色差(YCrCb)データへの変換処理を行って、メモリ112に一時的に記憶すると共に、補間色処理しているフレームの一部の処理済みデータをバッファ118aおよび118bに記憶する。
一方、圧縮回路113cおよび113dは、バッファ118aおよび118bに記憶された処理済みデータを読み出して画像圧縮処理を行い、システムバス104を介してメモリ112の画像圧縮データの記憶エリアに記憶する。この様子を図5に示す。尚、第1の実施形態と同様に、ここでは、圧縮回路113cおよび113dを、JPEG規格の画像圧縮処理を行うJPEGエンコーダ113cおよび113dに置き換えて説明する。
図5において、補間色処理されたYCrCbデータは、図11と同様に、メモリ112に設けられた2フレーム分の記憶エリアYUV1およびYUV2に交互に記憶される。同時に、補間色処理されたYCrCbデータの一部は、バッファ118aおよび118bに記憶される。ここで、バッファ118aは記憶エリアYUV1に記憶されるフレームに対応し、バッファ118bは記憶エリアYUV2に記憶されるフレームに対応する。
JPEGエンコーダ113cおよび113dは、バッファ118aおよび118bに画像圧縮処理可能なデータ量が溜まり次第、画像圧縮処理を起動する。
ここで、画像圧縮処理可能なデータ量について説明する。一般に、本実施形態のようなJPEG規格の画像圧縮処理を行う場合、画像圧縮処理可能なデータ量は、YCrCbデータ(YUVデータ)のYとUVとの画素数比率によって異なる。例えば、YUV422と称される画像データは、横方向の画素数において、Yデータの2画素分がUおよびVデータの1画素分に間引かれている。一方、JPEG規格の圧縮処理は、YとUとVのそれぞれに対して、8×8画素の単位で離散コサイン変換が行われるので、UおよびVデータが水平方向に8画素が揃うには、横方向16画素で縦方向8画素の16×8画素の処理単位が最低限必要である。
実際には、バッファ118aおよび118bの切替時間や読み書きの時間が必要なので、複数の処理単位が必要となる。現実的には、例えば、8ライン分のバッファ118aおよび118bを備えるのが好ましい。この場合、横方向の画素数が1600画素の場合は、1600÷16=100の処理単位を確保できることになる。
図5において、JPEGエンコーダ113cおよびdが交互に生成した画像圧縮データは、第1の実施形態と同様に、1フレーム目がJPEGcode1,2フレーム目がJPEGcode2,3フレーム目がJPEGcode3で、xフレーム目がJPEGcodexとなるようにメモリ112の画像圧縮データの記憶エリアに記憶される。
次に、上記の処理と時間の関係について、図6を用いて説明する。図6は、補間色処理回路111bとJPEGエンコーダ113cおよび113dとの処理時間の関係を説明した図である。図12および図3と比較するために、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍ぐらいを想定したもので、図12のタイミングt1からタイミングt6までの時間は、図6のタイミングt21からタイミングt28までの時間に相当し、補間色処理回路111bが7つの画像フレームを連続して処理した場合の時間を示している。また、時間taは、画像圧縮処理可能なデータ量が溜まる時間を示しており、ここでは8ライン分のデータ量が溜まるまでの補間色処理回路111bの処理時間に相当する。
図6において、補間色処理回路111bは、タイミングt21でフレーム301の画像データの補間色処理を開始し、処理が終了した部分からメモリ112の記憶エリアYUV1およびバッファ118aに記憶していく。タイミングt1から時間taが経過した時点で、JPEGエンコーダ113cが起動され、バッファ118aに記憶されたデータの画像圧縮処理を行い、JPEGcode1を生成し始める。
タイミングt22で、補間色処理回路111bは、フレーム301の1フレーム分の補間色処理を完了すると同時に、フレーム302の補間色処理を開始し、処理が終了した部分からメモリ112の記憶エリアYUV2およびバッファ118bに記憶していく。タイミングt22から時間taが経過した時点で、JPEGエンコーダ113dが起動され、バッファ118bに記憶されたデータの画像圧縮処理を行い、JPEGcode2を生成し始める。
次のタイミングt23で、補間色処理回路111bは、フレーム302の1フレーム分の補間色処理を完了すると同時に、フレーム303の補間色処理を開始し、処理が終了した部分からメモリ112の記憶エリアYUV1およびバッファ118aに記憶していく。タイミングt23から時間taが経過した時点で、JPEGエンコーダ113cが起動され、バッファ118aに記憶されたデータの画像圧縮処理を行い、JPEGcode3を生成し始める。
以下同様に、タイミングt24,t25,t26およびt27において、それぞれのタイミングから時間taが経過した時点で、JPEGエンコーダ113cまたは113dが起動され、バッファ118aまたは118bに記憶されたデータの画像圧縮処理を行い、JPEGcode4から7を生成する。
このように、補間色処理回路111bが1フレーム全体の処理を終えなくても、バッファ118aまたは118bに記憶された処理済みのデータを用いて画像圧縮処理を行うことができる。また、第1の実施形態と同様に、JPEGエンコーダ113cが前のフレームの画像圧縮処理を行っている間に、JPEGエンコーダ113dが次のフレームの画像圧縮処理を行い、逆に、JPEGエンコーダ113dが前のフレームの画像圧縮処理を行っている間に、JPEGエンコーダ113cが次のフレームの画像圧縮処理を行うので、1フレームの画像圧縮処理の時間が1フレームの補間色処理の時間より長い場合でも、補間色処理回路111bはフレーム301から307の7つのフレームを連続して処理することができる。
尚、本実施形態の説明では、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍程度の長さとしたが、例えば、2.5倍程度の場合は、補間色処理回路で補間色処理したYCrCbデータを格納するバッファとJPEGエンコーダをそれぞれ3つ設けることにより、3つのJPEGエンコーダが巡回的に、3つのバッファから補間色処理済みのYCrCbデータを読み出して画像圧縮処理することにより実現できる。
つまり、バッファおよび圧縮回路の個数は次の式で計算できる。バッファおよび圧縮回路の個数=(画像圧縮回路の1フレームの処理時間)÷(補間色処理回路の1フレームの処理時間)の計算値を切り上げた整数値。例えば、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍程度の時、バッファおよび圧縮回路の個数は2個となり、2.5倍の時は3個、3.5倍の時は4個のように計算できる。尚、補間色処理回路で処理したYCrCbデータを格納する記憶エリアの数は変わらないが、補間色処理回路は、バッファの数と同数のフレームのデータを巡回的にバッファに記憶する必要がある。
このように、第1の実施形態の図3の場合は、7フレームの補間色処理を行う間に、約6フレームの画像圧縮データを生成することができたが、本実施形態では約7フレームの画像圧縮データを生成することができる。また、補間色処理したYCrCbデータを格納するメモリ112内の記憶エリアを、第1の実施形態に比べて1フレーム分少なくすることができ、補間色処理を連続して行いながら、メモリのコストを削減することが可能となる。
尚、本実施形態ではバッファ118aおよび118bを設けたが、補間色処理したYCrCbデータを格納するメモリ112内の記憶エリアに画像圧縮処理可能なデータ量が溜まり次第、圧縮回路113cおよび113dがこのデータを読み出して画像圧縮処理するようにしても構わない。
(第3の実施形態)
次に、第3の実施形態に係る画像処理装置を有するカメラ101cのブロック図を図7に示す。カメラ101cの基本構成は、第2の実施形態の図4のカメラ101bと同じであるが、圧縮回路113eおよび113fの出力がデータ並べ替え用バッファ119を介してシステムバス104に接続された構成になっている。
同図において、レンズ105から入射した被写体光が撮像素子106で電気信号に変換され、AFE108およびA/D109を介して撮影したデジタル画像データがRAWメモリ110に記憶される部分までは、第1および第2の実施形態と同じである。
その後、補間色処理回路111cは、図10の補間色処理回路111と同様に、RAWメモリ110からRAWデータを読み出して、補間処理やRGBデータから輝度色差(YCrCb)データへの変換処理を行って、メモリ112に一時的に記憶すると共に、補間色処理しているフレームの一部の処理済みデータをバッファ118aおよび118bに記憶する。
一方、圧縮回路113eおよび113fは、バッファ118aおよび118bに記憶された処理済みデータを所定のデータ量毎(処理単位毎)に読み出して画像圧縮処理を行い、データ並べ替え用バッファ119に記憶する。ここで、データ並べ替え用バッファ119に記憶する際に、圧縮回路113eおよび113fが出力する画像圧縮データを交互に並べ替えて記憶する。その後、並べ替えられた1フレーム分の画像圧縮データは、第1および第2の実施形態と同様に、システムバス104を介してメモリ112の画像圧縮データの記憶エリアに記憶される。尚、この時、データ並べ替え用バッファ119に記憶する際に並べ替えるのではなく、CPU102がデータ並べ替え用バッファ119から画像圧縮データを読み出す際に、画像圧縮データを並べ替えて読み出し、メモリ112の画像圧縮データの記憶エリアに記憶するようにしても構わない。
次に、これらの一連の様子を図8を用いて説明する。尚、第1および第2の実施形態と同様に、ここでは、圧縮回路113eおよび113fを、JPEG規格の画像圧縮処理を行うJPEGエンコーダ113eおよび113fに置き換えて説明する。
図8において、補間色処理回路111cが出力するYCrCbデータは、メモリ112に設けられた1フレーム分の記憶エリアYUV1に記憶される。同時に、補間色処理されたYCrCbデータの一部は、第2の実施形態と同様に、バッファ118aおよび118bに記憶される。ここで、記憶エリアYUV1に記憶されるフレームは、複数の部分に分割され、部分毎にバッファ118aおよびバッファ118bに交互に記憶される。ここで、分割する部分は、例えば、8ライン毎,16ライン毎などである。従って、バッファ118aおよびバッファ118bに記憶容量は、少なくとも、分割された部分を記憶できる容量であればよい。
JPEGエンコーダ113eおよび113fは、バッファ118aおよび118bに画像圧縮処理可能なデータ量が溜まり次第、画像圧縮処理を起動する。尚、画像圧縮処理可能なデータ量は、第2の実施形態と同じで、例えば、YUV422の場合は横方向16画素で縦方向8画素の16×8画素の処理単位が画像圧縮処理可能なデータ量となる。
次に、上記の処理と時間の関係について、図9を用いて説明する。図9は、補間色処理回路111cとJPEGエンコーダ113eおよび113fとの処理時間の関係を説明した図である。図12,図3および図6と比較するために、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍ぐらいを想定したもので、図12のタイミングt1からタイミングt6までの時間は、図9のタイミングt31からタイミングt38までの時間に相当し、補間色処理回路111cが7つの画像フレームを連続して処理した場合の時間を示している。また、時間taは、画像圧縮処理可能なデータ量が溜まる時間を示しており、ここでは8ライン分のデータ量が溜まるまでの補間色処理回路111cの処理時間に相当する。
図9において、補間色処理回路111cは、タイミングt31でフレーム401の画像データの補間色処理を開始し、処理が終了した部分からメモリ112の記憶エリアYUV1およびバッファ118aに記憶していく。タイミングt31から時間taが経過した時点で、JPEGエンコーダ113eが起動され、バッファ118aに記憶されたデータの画像圧縮処理を開始し、JPEGcode1を部分的に生成し始める。
一方、タイミングt31から時間taが経過した時点で、補間色処理回路111cは、フレーム401の画像データの補間色処理したデータをメモリ112の記憶エリアYUV1に引き続き記憶しながら、今度はバッファ118bに記憶していく。タイミングt31から時間ta×2が経過した時点で、今度はJPEGエンコーダ113fが起動され、バッファ118bに記憶されたデータの画像圧縮処理を開始し、JPEGcode1を部分的に生成し始める。
同様に、時間taが経過する毎に(或いは、補間色処理回路111cが所定の部分を処理する毎に)、補間色処理回路111cは処理したデータをバッファ118aおよび118bに交互に記憶し、JPEGエンコーダ113eおよび113fは、それぞれのバッファ118aおよび118bから画像圧縮可能なデータ量を読み出して、画像圧縮処理を行い、画像圧縮データをデータ並べ替え用バッファ119に記憶する。このようにして、JPEGエンコーダ113eおよび113fは、JPEGcode1が処理単位毎に交互に分割された画像圧縮データJPEGcode1(408)とJPEGcode1(409)とをデータ並べ替え用バッファ119に出力する。
ここで、JPEGエンコーダ113eおよび113fが交互に生成した画像圧縮データは、第2の実施形態とは異なり、例えば、1フレーム目のJPEGcode1が、画像圧縮できる処理単位毎に分割されて交互に出力される。仮に、JPEGcode1がJPEGcode1−1,JPEGcode1−2,JPEGcode1−3,JPEGcode1−4の4つの処理単位に分割されていたとすると、JPEGエンコーダ113eがJPEGcode1−1を出力し、次にJPEGエンコーダ113fがJPEGcode1−2を出力し、次にJPEGエンコーダ113eがJPEGcode1−3を出力し、次にJPEGエンコーダ113fがJPEGcode1−4を出力する。データ並べ替え用バッファ119では、これらの分割されて交互に出力される画像圧縮データJPEGcode1−1,JPEGcode1−2,JPEGcode1−3,JPEGcode1−4を並べ替え、各圧縮画像データを連続的につなぎ合わせることで、1フレーム分の画像圧縮データJPEGcode1を生成する。データ並べ替え用バッファ119に生成された1フレーム目の画像圧縮データJPEGcode1は、第1および第2の実施形態と同様に、メモリ112の画像圧縮データの記憶エリアに記憶される。
タイミングt32においても、タイミングt31の場合と同様に、補間色処理回路111cは、フレーム402の画像データの補間色処理を行い、タイミングt32から時間taが経過した時点で、JPEGエンコーダ113eが起動され、さらに時間taが経過した時点で、JPEGエンコーダ113fが起動されて、それぞれJPEGcode2を部分的に生成し、データ並べ替え用バッファ119で1フレーム分の画像圧縮データJPEGcode2を生成する。
以下同様に、タイミングt33ではフレーム403の画像データが処理されて画像圧縮データJPEGcode3が生成され、タイミングt34ではフレーム404の画像データが処理されて画像圧縮データJPEGcode4が生成され、タイミングt35ではフレーム405の画像データから画像圧縮データJPEGcode5が、タイミングt36ではフレーム406の画像データから画像圧縮データJPEGcode6が、タイミングt37ではフレーム407の画像データから画像圧縮データJPEGcode7が、それぞれ生成される。
尚、本実施形態ではデータ並べ替え用バッファ119を設けたが、メモリ112内で分割された画像圧縮データの並べ替えを行うようにしても構わない。
また、本実施形態の説明では、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍程度の長さとしたが、例えば、2.5倍程度の場合は、第2の実施形態と同様に、補間色処理回路で補間色処理したYCrCbデータを格納するバッファとJPEGエンコーダをそれぞれ3つ設けることにより、1フレームの画像データを処理単位毎に巡回的に3分割して、3つのJPEGエンコーダが画像圧縮処理することにより実現できる。尚、この場合は、データ並べ替え用バッファ119は3分割して出力される画像圧縮データを並べ替えて、1フレーム分の画像圧縮データに変換する。
本実施形態でのバッファおよび圧縮回路の個数は次の式で概算できる。バッファおよび圧縮回路の個数≒(画像圧縮回路の1フレームの処理時間)÷(補間色処理回路の1フレームの処理時間)の計算値を切り上げた整数値。例えば、補間色処理に掛かる時間よりも画像圧縮処理に掛かる時間が1.5倍程度の時、バッファおよび圧縮回路の個数は2個となり、2.5倍の時は3個、3.5倍の時は4個のように概算できる。尚、上式は図9の時間ta≒0とした場合で、時間taが全体の処理時間に対して十分に短い場合に成立する。
このように、本実施形態では、補間色処理回路111cが1フレーム全体の処理を終えなくても、バッファ118aまたは118bに記憶された処理済みのデータを用いて画像圧縮処理を行うことができる。しかも、1つのフレームを分割して2つのJPEGエンコーダ113eおよびJPEGエンコーダ113fで画像圧縮処理を行うので、補間色処理回路111cの処理時間とほぼ同じ処理時間で画像圧縮処理を終えることができる。
(第4の実施形態)
次に、第4の実施形態に係る画像処理装置を有するカメラについて説明する。尚、本実施形態のカメラの基本構成は、第1の実施形態の図1のカメラ101aと同じである。また、補間色処理回路111a,JPEGエンコーダ113a,JPEGエンコーダ113bがメモリ112を介してデータを入出力する構成を示す図2も第1の実施形態と同じである。
本実施形態では、JPEGエンコーダ113aおよびJPEGエンコーダ113bが画像圧縮処理を行う際に、圧縮後の符号量が所定範囲内に収まるようにする固定長圧縮を行う。一般に、JPEG規格の画像圧縮処理は、8×8画素程度の画素ブロック毎にDCT(離散コサイン変換)などの直交変換を行って、画像データを空間周波数成分データに変換する。さらに、空間周波数成分毎の量子化係数で定義した量子化テーブルを用いて、量子化を行う。量子化ビット数が多いほど画像は精細になるが、圧縮処理後の符号量も多くなるので、固定長圧縮を行う場合は量子化テーブルにスケールファクタと呼ばれる係数を乗算して割り当てる量子化ビット数を調整する処理が行われる。その後、調整した量子化テーブルを用いてDCT変換された空間周波数成分データを量子化する。つまり、(DCT係数)÷(量子化テーブル×スケールファクタ)の計算により量子化される。量子化されたデータはジグザグスキャンによる一次元化の後、ハフマン符号化などの可変長符号化が行われ、画像圧縮処理が完了する。
ところが、圧縮後の符号量は、一度、圧縮を行ってみる必要があり、本実施形態では、図13のように処理する。図13は、1フレーム目(1f)から8フレーム目(8f)までの連続するフレームを圧縮処理する場合の補間色処理回路111a,JPEGエンコーダ113a,JPEGエンコーダ113bの処理期間と、メモリ112内のバッファYUV1,YUV2,YUV3の使用期間の時間関係を示した図である。尚、3フレーム目(3f)と4フレーム目(4f)との間、4フレーム目(4f)と5フレーム目(5f)との間に、それぞれ空き期間があるが、バッファYUV1,YUV2,YUV3が空くまでの補間色処理回路111aの処理待ち時間である。実際には、この期間に撮影された画像は、図1のRAWメモリ110にバッファされている。
また、本実施形態では、JPEGエンコーダ113aおよびJPEGエンコーダ113bは、共通の量子化テーブルを用い、JPEGエンコーダ113aはスケールファクタSaを、JPEGエンコーダ113bはスケールファクタSbをそれぞれ使用する。また、各スケールファクタの記憶領域はメモリ112内に確保されている。尚、一連の画像の圧縮処理を開始する際には、予め定義されたスケールファクタSaの初期値およびスケールファクタSbの初期値がそれぞれの設定され、一連の画像の圧縮処理を行っている間は、画像の圧縮処理毎にその符号量から次に圧縮処理する時のスケールファクタSaおよびスケールファクタSbを予測して、それぞれのスケールファクタSaおよびスケールファクタSbを更新する。
図13において、1フレーム目(1f)の補間色処理は、補間色処理回路111aがタイミングt41〜t42の期間にバッファYUV1を用いて行われる。1フレーム目(1f)の補間色処理が終了すると、JPEGエンコーダ113aはタイミングt42〜t45の期間にバッファYUV1を用いて1フレーム目(1f)の画像圧縮処理を行う。
先ず、JPEGエンコーダ113aは、最初に設定された初期値のスケールファクタSaを用いて、初期タイミングt42〜t61の期間に1フレーム目(1f)の画像の1回目の圧縮処理(予備圧縮処理)を行う。次に、JPEGエンコーダ113aは、1回目の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。
タイミングt61〜t45の期間では、JPEGエンコーダ113aは、更新されたスケールファクタSaを用いて、1フレーム目(1f)の画像の2回目の圧縮処理を行い、2回目の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。
同様に、2フレーム目(2f)の補間色処理は、補間色処理回路111aがタイミングt42〜t43の期間にバッファYUV2を用いて行われる。2フレーム目(2f)の補間色処理が終了すると、JPEGエンコーダ113bはタイミングt43〜t47の期間にバッファYUV2を用いて2フレーム目(2f)の画像圧縮処理を行う。
先ず、JPEGエンコーダ113bは、最初に設定された初期値のスケールファクタSbを用いて、初期タイミングt43〜t62の期間に2フレーム目(2f)の画像の1回目の圧縮処理(予備圧縮処理)を行う。次に、JPEGエンコーダ113bは、1回目の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSbの更新を行う。
タイミングt62〜t47の期間では、JPEGエンコーダ113bは、更新されたスケールファクタSbを用いて、2フレーム目(2f)の画像の2回目の圧縮処理を行い、2回目の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSbの更新を行う。
3フレーム目(3f)の補間色処理は、補間色処理回路111aがタイミングt43〜t44の期間にバッファYUV3を用いて行われる。3フレーム目(3f)の補間色処理が終了すると、1フレーム目(1f)の圧縮処理を終えたJPEGエンコーダ113aが、タイミングt45〜t47の期間にバッファYUV3を用いて3フレーム目(3f)の画像圧縮処理をスケールファクタSaを用いて行う。さらに、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。ここで、3フレーム目(3f)の補間色処理はタイミングt44で終了しているが、JPEGエンコーダ113aは1フレーム目(1f)の圧縮処理を実行中なので、この圧縮処理が終了するタイミングt45を待って3フレーム目(3f)の圧縮処理を行う。
4フレーム目(4f)の補間色処理は、補間色処理回路111aがタイミングt45〜t46の期間にバッファYUV1を用いて行われる。ここで、3フレーム目(3f)の補間色処理が終了するタイミングt44では、1フレーム目(1f)の圧縮処理でバッファYUV1が使用されているので、バッファYUV1が空くタイミングt45を待って4フレーム目(4f)の補間色処理が行われる。タイミングt46で4フレーム目(4f)の補間色処理が終了すると、JPEGエンコーダ113bの2フレーム目(2f)の圧縮処理が終了するタイミングt47を待って、4フレーム目(4f)の画像圧縮処理をスケールファクタSbを用いて行う。さらに、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSbの更新を行う。
次に、5フレーム目(5f)の処理はバッファYUV2を用いて行われる。補間色処理回路111aは、タイミングt47〜t48の間で補間色処理を行い、JPEGエンコーダ113aは、タイミングt48〜t53の間でスケールファクタSaを用いて画像圧縮処理を行い、その符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。
同様に、6フレーム目(6f)の処理はバッファYUV3を用いて行われる。補間色処理回路111aは、タイミングt48〜t49の間で補間色処理を行い、JPEGエンコーダ113bは、タイミングt49〜t54の間でスケールファクタSbを用いて画像圧縮処理を行い、その符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSbの更新を行う。
同様に、7フレーム目(7f)の処理はバッファYUV1を用いて行われる。補間色処理回路111aは、タイミングt49〜t50の間で補間色処理を行い、JPEGエンコーダ113bは、タイミングt50〜t55の間でスケールファクタSaを用いて画像圧縮処理を行い、その符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。
同様に、8フレーム目(8f)の処理はバッファYUV2を用いて行われる。補間色処理回路111aは、タイミングt50〜t51の間で補間色処理を行い、JPEGエンコーダ113bは、タイミングt51〜t56の間でスケールファクタSbを用いて画像圧縮処理を行い、その符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSbの更新を行う。以降、同様に、一連の撮影が終了するまで行われる。
このように、本実施形態に係る画像処理装置を有するカメラ101aは、連続して撮影された画像の圧縮処理を行う場合に、奇数フレームの画像圧縮処理をJPEGエンコーダ113aが行い、偶数フレームの画像圧縮処理をJPEGエンコーダ113bが行うので、画像圧縮掛かる処理時間に左右されることなく高速に画像圧縮処理を行うことができる。
また、JPEGエンコーダ113aおよびJPEGエンコーダ113bのそれぞれに独立したスケールファクタSaとスケールファクタSbとを設け、奇数フレームおよび偶数フレームのそれぞれの最初のフレームのみで予備圧縮して適切なスケールファクタを求めるので、以降のフレームでは予備圧縮することなく、更新された適切なスケールファクタで画像圧縮処理を行うことができ、効率的な固定長圧縮処理を実現できる。
尚、本実施形態では、JPEGエンコーダ113aおよびJPEGエンコーダ113bのそれぞれに独立したスケールファクタSaおよびスケールファクタSbを用いるようにしたが、スケールファクタSaとスケールファクタSbを1つにして、JPEGエンコーダ113aとJPEGエンコーダ113bとで、共用するようにしても構わない。
(第5の実施形態)
次に、第5の実施形態に係る画像処理装置を有するカメラについて説明する。尚、本実施形態のカメラの基本構成は、第1の実施形態の図1のカメラ101aと同じである。また、補間色処理回路111a,JPEGエンコーダ113a,JPEGエンコーダ113bがメモリ112を介してデータを入出力する構成を示す図2も第1の実施形態と同じである。
本実施形態においても、第4の実施形態と同様に、JPEGエンコーダ113aおよびJPEGエンコーダ113bは、共通の量子化テーブルを用い、固定長圧縮を行う。第4の実施形態と異なるのは、図13では、奇数フレームおよび偶数フレームのそれぞれの最初のフレームで予備圧縮して適切なスケールファクタを求めるようにしたが、本実施形態では、奇数フレームの最初のフレームだけで予備圧縮した時の符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaおよびスケールファクタSbの両方を更新する。以降、第4の実施形態と同様に、奇数フレームの画像圧縮処理にはスケールファクタSaを用い、偶数フレームの画像圧縮処理にはスケールファクタSbを用いる。
このため、本実施形態では、図14に示すように、2フレーム目(2f)の画像圧縮処理がタイミングt45で終了し、4フレーム目(4f)の画像圧縮処理が待たされることなく、処理することができる。また、2フレーム目(2f)の処理に使用しているバッファYUV2もタイミングt45で解放されるので、5フレーム目(5f)の補間色処理も待たされることなく、タイミングt46から処理することができる。尚、図14において、タイミングt**’のように「’」が付加されているタイミングは、図13の「’」の無い同じ番号のタイミングt**とは少し異なるタイミングであることを示している。例えば、図13のタイミングt47は5フレーム目(5f)の補間色処理の開始時点を示しているが、図14のタイミングt47’は同じ5フレーム目(5f)の補間色処理の開始時点を示しているが、4フレーム目(4f)の補間色処理の終了タイミングt46に連続したタイミングになっている。
このように、本実施形態に係る画像処理装置を有するカメラ101aは、連続して撮影された画像の圧縮処理を行う場合に、奇数フレームの画像圧縮処理をJPEGエンコーダ113aが行い、偶数フレームの画像圧縮処理をJPEGエンコーダ113bが行うので、画像圧縮掛かる処理時間に左右されることなく高速に画像圧縮処理を行うことができる。
また、JPEGエンコーダ113aおよびJPEGエンコーダ113bのそれぞれに独立したスケールファクタSaおよびスケールファクタSbを設け、奇数フレームの最初のフレームのみで予備圧縮した時の符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaおよびスケールファクタSbの両方を更新するので、2フレーム目(2f)の予備圧縮処理を行う必要がなく、第4の実施形態に比べて、圧縮処理時間を短くすることができる。また、3フレーム目(3f)以降のフレームでは、第4の実施形態と同様に処理されるので、常に更新された適切なスケールファクタで画像圧縮処理を行うことができ、効率的な固定長圧縮処理を実現できる。
尚、本実施形態では、JPEGエンコーダ113aおよびJPEGエンコーダ113bのそれぞれに独立したスケールファクタSaおよびスケールファクタSbを用いるようにしたが、スケールファクタSaとスケールファクタSbを1つにして、JPEGエンコーダ113aとJPEGエンコーダ113bとで、共用するようにしても構わない。
(第6の実施形態)
次に、第6の実施形態に係る画像処理装置を有するカメラについて説明する。尚、本実施形態のカメラの基本構成は、第1の実施形態の図1のカメラ101aと同じである。また、補間色処理回路111a,JPEGエンコーダ113a,JPEGエンコーダ113bがメモリ112を介してデータを入出力する構成を示す図2も第1の実施形態と同じである。
本実施形態においても、第5の実施形態と同様に、JPEGエンコーダ113aおよびJPEGエンコーダ113bは、共通の量子化テーブルを用い、固定長圧縮を行い、奇数フレームの最初のフレームだけで予備圧縮した時の符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaおよびスケールファクタSbの両方を更新する。
本実施形態が第5の実施形態と異なる点は、同じフレームの異なるサイズの画像の圧縮処理を行うことである。例えば、一般的な電子カメラは、撮影した画像を保存するための画像(本画像)以外に、図1の液晶モニタ117に表示するためのプレビュ画像や、一覧表示するためのサムネイル画像など複数のサイズの画像を圧縮する必要がある。例えば、本画像は3072×2304画素、プレビュ画像は640×480画素、サムネイル画像は160×120画素などのように画像を構成する画素数が大きく異なり、画素数が多くなるほど圧縮処理に時間を要する。本実施形態では、本画像とプレビュ画像の2つのサイズの画像を圧縮処理する場合について説明する。
実際の電子カメラでは、ほとんどプレビュ表示が行われているので、特に説明しなかったが、図14に示す第5の実施形態でも本画像の圧縮処理に含めてプレビュ画像の圧縮処理が行われていると考えることができる。この様子を示したのが図15である。図15は図14と全く同じタイミングで各処理を示しているが、各圧縮処理の斜線で示した部分がプレビュ画像の圧縮処理を行っている期間である。例えば、1フレーム目(1f)の1回目の圧縮処理の後ろの部分に斜線で示した1フレーム目(1f)の1回目のプレビュ画像の圧縮処理を行う期間が示されている。同様に、1フレーム目(1f)の2回目の圧縮処理、2フレーム目(2f)から8フレーム目(8f)までの各圧縮処理の後ろの部分に斜線で示したプレビュ画像の圧縮処理を行う期間が示されている。
また、プレビュ画像も本画像と同様に、JPEGエンコーダ113aおよびJPEGエンコーダ113bは、共通の量子化テーブルを用いて固定長圧縮を行う。また、JPEGエンコーダ113aおよびJPEGエンコーダ113bは、プレビュ画像の奇数フレーム用のスケールファクタScと、プレビュ画像の偶数フレーム用のスケールファクタSdとを用いる。プレビュ画像の奇数フレーム用のスケールファクタScと、プレビュ画像の偶数フレーム用のスケールファクタSdの記憶領域は、メモリ112に確保されている。また、スケールファクタScおよびスケールファクタSdの更新手順も、本画像のスケールファクタSaおよびスケールファクタSbの更新手順と同じように考えることができ、1フレーム目(1f)のプレビュ画像の1回目の予備画像圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタScおよびスケールファクタSdを更新する。さらに、更新されたスケールファクタScを用いて1フレーム目(1f)のプレビュ画像の2回目の圧縮処理を行い、更新されたスケールファクタSdを用いて2フレーム目(2f)のプレビュ画像の圧縮処理を行う。以降、スケールファクタScおよびスケールファクタSdを更新しながら、奇数フレームおよび偶数フレームのプレビュ画像の圧縮処理を繰り返し行う。
このように、第5の実施形態の処理では、サイズの異なる本画像とプレビュ画像の圧縮処理は、同じフレームの処理として同じJPEGエンコーダがシリーズに行う必要があった。これに対して、本実施形態では、図16に示すように、同じフレームの本画像の圧縮処理と、同じフレームのプレビュ画像の圧縮処理とを別のJPEGエンコーダで並列処理するようになっている。
尚、図16に示した本画像の画像圧縮処理期間は、分かり易いように、図15に示した各フレームの画像圧縮処理期間からプレビュ画像の圧縮処理時間を示した斜線部分だけ短くした図になっている。また、図16において、タイミングt**’’のように「’’」が付加されているタイミングは、図15の「’」が付加された番号または「’」の無い番号のタイミングとは少し異なるタイミングであることを示している。例えば、図15のタイミングt45は4フレーム目(4f)の補間色処理の開始時点を示しているが、図16のタイミングt45’’は同じ4フレーム目(4f)の補間色処理の開始時点を示しているが、プレビュ画像の圧縮処理時間だけタイミングt45よりも早くなっている。
さらに、本実施形態では、図17に示すように、本画像処理用バッファYUV1〜YUV3以外に、プレビュ画像処理用のサブバッファYUV1〜YUV3の領域をメモリ112内に確保している。但し、補間色処理は本画像もプレビュ画像も処理用バッファYUV1〜YUV3を用いて行われる。
図16において、1フレーム目(1f)の補間色処理は、補間色処理回路111aがタイミングt41〜t42の期間にバッファYUV1を用いて行われる。1フレーム目(1f)の補間色処理が終了すると、JPEGエンコーダ113aはバッファYUV1を用いて、1フレーム目(1f)の本画像の1回目の圧縮処理(予備圧縮処理)を初期値のスケールファクタSaを用いて行う。
同時に、JPEGエンコーダ113bはサブバッファYUV1を用いて、1フレーム目(1f)のプレビュ画像の1回目の圧縮処理(予備圧縮処理)を初期値のスケールファクタSdを用いて行い、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。さらに、1フレーム目(1f)のプレビュ画像の2回目の圧縮処理を行い、2回目の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSdの更新を行う。
JPEGエンコーダ113aは、1回目の本画像の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。さらに、タイミングt61’’で1フレーム目(1f)の本画像の2回目の圧縮処理を行い、2回目の圧縮処理で得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。
同様に、2フレーム目(2f)の補間色処理は、補間色処理回路111aがタイミングt42〜t43の期間にバッファYUV2を用いて行われる。2フレーム目(2f)の補間色処理が終了すると、JPEGエンコーダ113bはタイミングt43〜t47の期間にバッファYUV2を用いて2フレーム目(2f)の画像圧縮処理を行う。
また、1フレーム目(1f)の画像圧縮処理を終えたJPEGエンコーダ113aは、2フレーム目(2fs)のプレビュ画像の圧縮処理をスケールファクタScを用いて行い、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタScの更新を行う。
3フレーム目(3f)の補間色処理は、補間色処理回路111aがタイミングt43〜t44の期間にバッファYUV3を用いて行われる。3フレーム目(3f)の補間色処理が終了すると、2フレーム目(2fs)のプレビュ画像の圧縮処理を終えたJPEGエンコーダ113aが、タイミングt45’’〜t47’’の期間にバッファYUV3を用いて3フレーム目(3f)の画像圧縮処理をスケールファクタSaを用いて行う。さらに、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSaの更新を行う。ここで、3フレーム目(3f)の補間色処理はタイミングt44で終了しているが、JPEGエンコーダ113aは2フレーム目(2fs)のプレビュ画像の圧縮処理を実行中なので、この圧縮処理が終了するタイミングt45’’を待って3フレーム目(3f)本画像の圧縮処理を行う。
同時に、JPEGエンコーダ113bは、3フレーム目(3fs)のプレビュ画像の圧縮処理をスケールファクタSdを用いて行い、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSdの更新を行う。
4フレーム目(4f)の補間色処理は、補間色処理回路111aがタイミングt45’’〜t46’’の期間にバッファYUV1を用いて行われる。ここで、3フレーム目(3f)の補間色処理が終了するタイミングt44では、1フレーム目(1f)の本画像の圧縮処理でバッファYUV1が使用されているので、バッファYUV1が空くタイミングt45’’を待って4フレーム目(4f)の補間色処理が行われる。タイミングt46’’で4フレーム目(4f)の補間色処理が終了すると、JPEGエンコーダ113bは、4フレーム目(4f)本画像の圧縮処理をスケールファクタSbを用いて行う。さらに、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタSbの更新を行う。
同時に、JPEGエンコーダ113aは、3フレーム目(3f)の本画像の圧縮処理が終了するタイミングt47’’を待って、4フレーム目(4fs)のプレビュ画像の圧縮処理をスケールファクタScを用いて行い、得られた符号量に基づいて、次の圧縮処理を行った時の符号量が所定範囲内に収まるようなスケールファクタを予測して、スケールファクタScの更新を行う。
以降、同様に、5フレーム目(5f)から8フレーム目(8f)までの本画像の圧縮処理が行われる間に、5フレーム目(5fs)から8フレーム目(8fs)までのプレビュ画像の圧縮処理が本画像とは異なるJPEGエンコーダで並列して行われる。
このように、本実施形態に係る画像処理装置を有するカメラ101aは、連続して撮影された画像をサイズの異なる2種類の圧縮処理を行う場合に、同じフレームの本画像の圧縮処理と、同じフレームのプレビュ画像の圧縮処理とを別のJPEGエンコーダで並列処理することができるので、より高速に画像圧縮処理を行うことができる。
尚、本実施形態では、本画像の圧縮処理において、JPEGエンコーダ113aおよびJPEGエンコーダ113bのそれぞれに独立したスケールファクタSaおよびスケールファクタSbを用いるようにしたが、スケールファクタSaとスケールファクタSbを1つにして、JPEGエンコーダ113aとJPEGエンコーダ113bとで、共用するようにしても構わない。同様に、プレビュ画像の圧縮処理において、JPEGエンコーダ113aおよびJPEGエンコーダ113bのそれぞれに独立したスケールファクタScおよびスケールファクタSdを用いるようにしたが、スケールファクタScとスケールファクタSdを1つにして、JPEGエンコーダ113aとJPEGエンコーダ113bとで、共用するようにしても構わない。さらに、本画像とプレビュ画像とのスケールファクタSa,スケールファクタSb,スケールファクタSc,スケールファクタSdを1つにして、JPEGエンコーダ113aとJPEGエンコーダ113bとで、共用するようにしても構わない。
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。