以下、図面を参照しながら本発明の例示的な実施形態について説明する。
(第1実施形態)
まず、図1を参照して、複数の撮像光学系により結像された撮像画像から画像信号を生成し、画像処理、圧縮処理を施し記録を行う画像処理装置として機能する撮像装置について説明する。なお、本実施形態では撮像装置の内部で画像処理と圧縮処理を行う例をあげて説明を行うが、これらに限られるものではない。例えば撮像装置は生成した画像データを通信を介して外部のサーバやクラウドなどの外部の処理装置に転送し、この外部の処理装置において、画像処理と圧縮処理を行う構成としてもよい。図1は、本実施形態に係る撮像装置の構成を示すブロック図である。撮像装置は、結像光学部101と、撮像素子102と、A/D変換回路103と、非可逆画像処理部104と、CPU105とを備える。結像光学部101は、レンズや絞り等からなり、焦点調節や露出調節を行う。撮像素子102は、光学像を電気信号に変換するCCD等の撮像素子である。A/D変換回路103は、撮像素子102からのアナログ画像信号をデジタル画像データに変換する。出力されるRAWデータは、画素に全ての色データ揃っていないような例えばベイヤ配列のデータである。非可逆画像処理部104は、A/D変換回路103から出力された画像データに対してノイズ低減、デモザイク、色変換、ガンマ変換等の非可逆な画像処理を施す。CPU105は、バスを介して各種制御を司る。
なお、非可逆な画像処理は、撮像画像の本画像記録用の画像処理であり、撮像画像の領域ごとにベタ部かエッジ部かまたエッジ部の場合は、エッジの方向など画像特徴の特徴量を抽出し、これに適したノイズ除去処理、デモザイク処理を含む現像処理を施す。また、被写体によっては画像領域ごとに適した露出補正を行う場合もある。よって、これらの画像処理は、撮像画像の特徴に応じた一般的に非可逆な処理であり、また処理に必要なパラメータ数も多い。
また、撮像装置は、表示部106と、メモリ107と、記録部108と、可逆画像処理部109と、加減算処理部110と、圧縮伸張処理部111と、通信部112とを備え、通信部112を介し外部サーバ113に接続する。表示部106は、液晶モニター等で構成され、メモリ107に格納された画像データを表示する表示部である。また、表示部106は、シャッターボタンやメニューボタン、方向キー、決定キーなどユーザーが撮像装置に各種の指示や設定などを入力するための入力デバイスを兼ねる。メモリ107は、非可逆画像処理部104、または可逆画像処理部109から出力された画像データを一時的に格納するDRAMなどで構成される。また、後述する圧縮伸張処理部111の圧縮データのバッファ領域、表示部106用表示データの格納領域としても使用する。記録部108は、SDカード等で構成され、メモリ107に格納された画像圧縮データなどをJPEGやHEIFなどのファイル形式として記録する。可逆画像処理部109は、A/D変換回路103から出力された画像データに対してデモザイク処理、色変換、ガンマ処理等の可逆な画像処理を施す。なお、可逆画像処理は、RAW復元用の画像データ生成のための画像処理であり、画質優先で無く可逆性が優先され、パラメータ数も最小限に抑えることを特徴としている。
加減算処理部110は、撮影時には可逆画像処理部109の出力画像データと非可逆画像処理部104の出力画像データの差分画像を生成する。また、記録後の再処理時のRAW復元においては本記録画像と差分画像データを加算しRAW復元用の画像データを生成する。圧縮伸張処理部111は、撮影時には非可逆画像処理部104の出力画像データの圧縮処理、または加減算処理部110の出力差分画像データの圧縮処理を行う。非可逆画像処理部104の出力画像データの圧縮は、JPEG圧縮やHEVC圧縮などが考えられる。加減算処理部110の出力差分画像データの圧縮は可逆なロスレス圧縮が好ましいが記録ファイルサイズの圧縮を優先し非可逆な圧縮とすることでも構わない。これら圧縮データはメモリ107に格納する。また、記録後の再処理時には圧縮されたこれらの画像データを伸張処理する。通信部112は、WiFiなどの外部通信機器とデータの送受信を行う。外部サーバ113は、ネットワークおよびクラウドサーバのようなサーバである。
次に、図2を用いて、本実施形態に係る処理フローについて説明する。図2(A)は、撮影時の処理フローの例を示す図である。RAWデータ201は、撮像されたRAWデータであり、A/D変換回路103から出力されたベイヤ配列のRAWデータである。次に、非可逆画像処理202は、非可逆画像処理部104で行う非可逆な画像処理である。本画像YUVデータ203は、非可逆画像処理202の出力である本画像記録用のYUVデータである。そして、本画像YUVデータ203は、メモリ107に書き込まれる。次に、HEVC圧縮204は、圧縮伸張処理部111で行うHEVC圧縮処理であり、本画像YUVデータ203をHEVC圧縮する。なお、本実施形態では、HEVC圧縮手段を例にしているが、JPEG圧縮のような別の圧縮方式でも構わない。そして、圧縮処理204後の圧縮データは、メモリ107に書き込まれる。
一方、可逆画像処理206は、可逆画像処理部109で行う可逆な画像処理である。本実施形態で使用する可逆パラメータは、非可逆画像処理202で使用されたパラメータに基づいて生成する。非可逆画像処理パラメータからの可逆パラメータの生成は、CPU105で処理する。この処理について後述で詳しく説明する。次に、RAW復元用YUVデータ207は、可逆画像処理206の出力であるRAW復元用YUVデータである。そして、RAW復元用YUVデータ207は、メモリ107に書き込まれる。次に、差分生成処理208は、加減算処理部110で行う差分生成処理であり、メモリ107上の非可逆な画像処理後の本画像YUVデータ203、可逆な画像処理後のRAW復元用YUVデータ207の差分データ209を生成する。そして、差分データ209は、加減算処理部110での差分生成処理208の出力であり、メモリ107に書き込まれる。次に、圧縮処理210は、圧縮伸張処理部111で行う差分データ209の圧縮処理である。RAWの復元性を考えると可逆圧縮がよいが、RAW復元性より圧縮後のデータサイズを優先する場合は非可逆な圧縮処理でもよい。
そして、HEIFファイル205は、本画像YUVデータ203のHEVC圧縮処理204後の圧縮データとして、差分データ209の圧縮処理210後の圧縮データは、HEIFファイル205として形成されて記録部108に記録する。また、可逆画像処理206で使用した可逆パラメータもこのHEIFファイル205に付加し記録する。
図2(B)は、HEIFファイル205からRAWを復元する処理フローである。HEIFファイル221は、撮影時に記録部108で記録された記録ファイルであって、図2(A)のHEIFファイル205である。HEIFファイル221からHEVC圧縮された本画像YUV圧縮データを読み出し、圧縮伸張処理部111でHEVC伸張処理222を行い、伸張本画像YUVデータ223を出力する。そして、出力された伸張本画像YUVデータ223は、メモリ107に書き込まれる。一方、HEIFファイル221から圧縮された差分データを読み出し、圧縮伸張処理部111で伸張処理228を行い、伸張差分データ229を出力する。そして、出力された伸張差分データ229は、メモリ107に書き込まれる。
次に、伸張本画像YUVデータ223と伸張差分データ229をメモリ107から読み出し加減算処理部110で加算処理224を行い、RAW復元用YUVデータ225を出力する。出力されたRAW復元用YUVデータ225は、メモリ107に書き込まれる。なお、RAW復元用YUVデータ225は、撮影時のRAW復元用YUVデータ207を伸張復元したものである。
また、HEIFファイル221からは撮影時にHEVC圧縮データ、差分圧縮データともに記録していた可逆パラメータを読み出す。読み出した可逆パラメータに対して、パラメータ逆変換処理230を行い逆変換パラメータを生成する。次に、RAW復元用YUVデータ225をメモリ107から読み出し、可逆画像処理部109にて可逆画像処理の逆変換処理226を行い、復元RAWデータ227を生成し、メモリ107に書き込む。このときの逆変換処理226の処理パラメータは、パラメータ逆変換処理230で生成した逆変換パラメータを使用する。なお、パラメータ逆変換処理230は、CPU105で処理する。
図2(C)は、復元したRAWデータに対して改めて、図2(A)で示した非可逆画像処理とは異なる、高負荷かつ高度な非可逆画像処理を行う処理フローである。ここで、高度な非可逆画像処理とは、例えば、ディープラーニングを画像処理に応用したような、非常に高画質な画像処理ではあるが、画像1枚あたりの処理時間は、長く撮影時に処理することが製品機能上好ましくないものである。例えば、画像1枚あたり数十秒から数分以上かかるような画像処理である。
まず、復元RAWデータ241は、図2(B)で復元された復元RAWデータ227である。高度な非可逆画像処理A242は、メモリ107から復元RAWデータ227を読み出し、非可逆画像処理部104で画像処理を施し処理後RAWデータ243を出力する。出力された処理後RAWデータ243は、メモリ107に書き込まれる。
次に、高度な非可逆画像処理B244は、メモリ107から処理後RAWデータ243を読み出し、非可逆画像処理部104で画像処理を施し処理後本画像YUVデータ245を出力する。出力された処理後本画像YUVデータ245は、メモリ107に書き込まれる。次に、処理後本画像YUVデータ245は、圧縮伸張処理部111でHEVC圧縮処理246を行い、HEVC圧縮データは、メモリ107に書き込まれる。
一方、選択器248は、処理フローの切替えスイッチであり、復元RAWデータ241と処理後RAWデータ243のどちらを選択するかを切り替える。選択器248は、今回の復元対象のRAWデータをどちらとするかを選択する。選択器248で選択されたRAWは、可逆画像処理部109で可逆画像処理249されRAW復元用YUVデータ250を出力する。出力されたRAW復元用YUVデータ250は、メモリ107に書き込まれる。本実施形態で使用する可逆パラメータは、高度な非可逆画像処理B244のパラメータに基づいて生成する。生成手法は、図2(A)の可逆画像処理206の可逆パラメータの生成と同様であるため説明を省略する。なお、可逆パラメータの生成については、CPU105で処理される。
次に、処理後本画像YUVデータ245とRAW復元用YUVデータ250をメモリ107から読み出し加減算処理部110で差分生成処理251を行い、生成された差分データ252をメモリ107に書き込む。次に、差分データ252は、圧縮伸張処理部111で圧縮し圧縮データを出力する。出力された圧縮データは、メモリ107に書き込まれる。次に、HEIFファイル247は、HEIFファイルを示しており、前処理後本画像YUVデータ245のHEVC圧縮処理246後の圧縮データと差分データ252の圧縮処理253後の圧縮データをHEIFファイル247として形成して、記録部108に記録する。また、可逆画像処理249で使用した可逆パラメータもこのHEIFファイル247に付加し記録する。
なお、図2(A)の処理フローについて、撮影時の処理フローとして説明したが、図2(B)の処理フローにより復元された復元RAWデータ227に対する処理にも適用できる。また、図2(C)の処理フローの処理後RAWデータ243にも適用できる。
図3は、図2(A)で示した処理フローのタイミングチャートを説明する図である。V信号301は、静止画撮影が行われたタイミングを表している。本実施形態では、高速な連写が行われ、V信号301のタイミングで連続した撮影が行われていることを示す。図3に示すように、撮像によるRAWデータ201の取得、非可逆画像処理202、HEVC圧縮処理204、可逆画像処理206、差分生成処理208、差分データの圧縮処理210、HEIFファイル205の記録は、各々連続した撮影画像に対し順次並列に処理する。また、非可逆画像処理からHEVC圧縮、あるいは、可逆画像処理から、差分生成、差分データ圧縮に対しては画像1枚の処理が完了する前から追いかけて処理するようなタイミングチャートとしている。
期間T1は、撮影からHEIFファイル205が記録されるまでの一連の処理全体の処理時間である。一連の処理のように処理完了の待ち合わせを極力無くしフォワード処理のみで構成することにより画像1枚の全体処理時間T1を極力短くすることができる。また、これにより各処理に必要なメモリバッファのライフタイムの長期化を抑え使用メモリ量を抑えることができる。
図4は、図2(A)とは異なる差分データ生成の処理フローの例を示す図である。RAWデータ401は、撮像されたRAWデータであり、A/D変換回路103から出力されたベイヤ配列のRAWデータである。また、図2(B)の処理フローにより復元された復元RAWデータ227でもよい。さらに、図2(C)の処理フローの処理後RAWデータ243でもよい。
画像処理402は、非可逆画像処理部104で行う非可逆な画像処理である。本画像用YUVデータ403は、非可逆画像処理402の出力である本画像記録用のYUVデータである。出力された本画像用YUVデータ403は、メモリ107に書き込まれる。次に、HEVC圧縮処理404は、圧縮伸張処理部111で行うHEVC圧縮処理であり、本画像用YUVデータ403をHEVC圧縮する。なお、本実施形態では、HEVC圧縮手段を例にしているが、JPEG圧縮など別の圧縮方式でもよい。そして、圧縮処理404後の圧縮データは、メモリ107に書き込まれる。
一方、可逆画像処理406は、可逆画像処理部109で行う可逆な画像処理である。本実施形態で使用する可逆パラメータは、非可逆画像処理402で使用されたパラメータに基づいて生成する。この生成については、後述で詳しく説明する。次に、RAW復元用YUVデータ407は、可逆画像処理406の出力であるRAW復元用YUVデータである。出力されたRAW復元用YUVデータ407は、メモリ107に書き込まれる。
次に、HEVC伸張処理412は、圧縮伸張処理部111で行うHEVC伸張処理である。HEVC圧縮処理404で出力されたメモリ107上のHEVC圧縮データを伸張処理し、メモリ107に伸張本画像YUVデータ411を書き込む。次に、差分生成処理408は、加減算処理部110で行う差分生成処理であり、メモリ107上の伸張本画像YUVデータ411、RAW復元用YUVデータ407の差分データ409を生成する。なお、差分データ409は、加減算処理部110での差分生成処理408の出力であり、メモリ107に書き込まれる。次に、圧縮処理410は、圧縮伸張処理部111で行う差分データ409の圧縮処理である。RAWの復元性を考えると可逆圧縮がよいが、RAW復元性より圧縮後のデータサイズを優先する場合は非可逆な圧縮処理でもよい。
そして、本画像用YUVデータ403のHEVC圧縮処理404後の圧縮データ、差分データ409の圧縮処理410後の圧縮データは、HEIFファイル405として形成され、記録部108に記録される。また、可逆画像処理406で使用した可逆パラメータもこのHEIFファイル405に付加し記録される。なお、図4で記録されたHEIFファイル405は、図2(B)の処理フローにより復元RAWデータ227に復元ができる。また、図4の処理フローは、撮影時だけでなく、図2(C)の処理フローの処理後RAWデータ243にも適用できる。
次に、図5は、図4で示した処理フローのタイミングチャートを説明する図である。V信号501は、静止画撮影が行われたタイミングを表している。本実施形態では、高速な連写が行われ、V信号501のタイミングで連続した撮影が行われていることを示している。図5で示すように、撮像によるRAWデータ401の取得、非可逆画像処理402、HEVC圧縮処理404、可逆画像処理406は各々連続した撮影画像に対し順次並列に処理する。
HEVC伸張処理412は、HEVC圧縮処理404を待って行う。そして、差分生成処理408、差分データの圧縮処理410、HEIFファイル405の記録部108への記録は、HEVC伸張処理412の開始を待って順次処理が開始される。非可逆画像処理からHEVC圧縮、あるいは可逆画像処理から、差分生成、差分データ圧縮に対しては画像1枚の処理が完了する前から追いかけて処理するようなタイミングチャートとしている。
期間T2は、撮影からHEIFファイル405が記録されるまでの一連の処理全体の処理時間である。本実施形態において、期間T2は、図3のタイミングチャートで示した期間T1より長い時間がかかることがわかる。つまり、図4で示した処理フローでは、各処理に必要なメモリバッファのライフタイムが図2(A)に示す処理フローより長くなり、使用メモリ量は多くなる傾向がある。
一方、図4に示す処理フローでは、本画像用YUVデータ403でなく、伸張本画像YUVデータ411とRAW復元用YUVデータ407との差分生成処理408を行い、差分データ409を取得している。そのため、図2(B)に示す処理フローによる復元RAWを生成した際に復元処理の誤差が抑えられ結果として復元RAWの品質が向上する傾向がある。
次に、図6は、図2(A)に示す可逆画像処理206、およびその逆変換処理である図2(B)に示す可逆画像処理の逆変換処理226の処理フローを説明する図である。まず、図6(A)は、可逆画像処理206の処理フローの例を示す図である。ベイヤ配列のRAWデータ601は、撮像された図2(A)のRAWデータ201であってよく、図2(C)の復元RAWデータ241、処理後RAWデータ243であってもよい。
次に、デモザイク処理602は、ベイヤ配列の画像データから各画素位置で不足している色を補間し、RGB全色を生成する。ガンマ補正処理603は、本記録画像のガンマ特性に合わせたガンマ補正を行う。マトリクス変換処理604は、RGB色空間からYUV色空間への変換を行う。歪曲補正処理605は、レンズの歪曲収差の補正を行う。RAW復元用YUVデータ606は、可逆画像処理206の出力データである。図2(A)に示す処理フローでは、RAW復元用YUVデータ207に相当する。なお、各処理の詳細については後述説明する。
図6(B)は、可逆画像処理の逆変換処理226の処理フローの例を示す図である。RAW復元用YUVデータ621は、可逆画像処理の逆変換226の入力画像データである。なお、図2(B)に示す処理フローでは、RAW復元用YUVデータ225である。歪曲補正の逆変換処理622は、歪曲補正処理605の逆変換処理を行う。マトリクス逆変換処理623は、マトリクス変換処理604の逆変換処理であり、YUV色空間からRGB色空間への変換を行う。逆ガンマ補正処理624は、ガンマ補正処理603の逆変換処理を行う。再ベイヤ化625は、画素ごとにRGB全色そろった画像データからベイヤ配列の画像データを生成する。復元RAWデータ626は、図2(B)に示す処理フローでは、可逆画像処理の逆変換処理226の出力の復元RAWデータ227である。なお、各処理の詳細については後述する。
次に、図7を参照して、デモザイク処理の例について説明する。ベイヤ配列の画像データ701は、1行目、3行目、以降の奇数行目は、画素ごとにRGの色の画素値が繰り返し配置されている。2行名、4行目、以降の偶数行目は画素ごとにGBの色の画素値が繰り返し配置されている。
補間処理702は、R色の補間処理を示す。ベイヤ画像の奇数行目に1画素おきにR画素を配置しており、これらはそのまま出力される。ベイヤ配列のGの位置のR画素値は、左右または上下R画素の間となっているので、この2つのR画素値の平均から求める。ベイヤ配列のBの位置のR画素値は、左上、右上、左下、右下の4つのR画素値の平均から求める。補間処理703は、G色の補間処理を示す。ベイヤ配列のG色はそのまま出力する。ベイヤ配列のRまたはBの画素位置のG画素値は、左右のG画素値の平均から求める。補間処理704は、B色の補間処理を示す。ベイヤ画像の偶数行目に1画素おきにB画素を配置しており、これらはそのまま出力される。ベイヤ配列のGの位置のB画素値は、左右または上下B画素の間となっているのでこの2つのB画素値の平均から求める。ベイヤ配列のRの位置のB画素値は、左上、右上、左下、右下の4つのB画素値の平均から求める。データ705は、各色の補間処理(702、703、704)後の各画素RGBが揃った出力画像データを示す。
次に、図8を参照して、再ベイヤ化処理の例について説明する。データ801は、再ベイヤ化前の各画素RGBが揃った出力画像データである。R画素値802は、データ801のR画素を示す。このR画素値802からR画素値805のような配置で間引きを行う。間引かれた箇所は0値となる。G画素値803は、データ801のG画素を示す。このG画素値803からG画素値806のような配置で間引きを行う。間引かれた箇所は0値となる。B画素値804は、データ801のB画素を示す。このB画素値804からB画素値807のような配置で間引きを行う。間引かれた箇所は0値となる。間引かれた各色の画素値(805、806、807)を合わせることで再ベイヤ化データ808を生成する。
図9(A)はガンマ補正処理の例を示す図である。本実施形態では、3点の折れ線で定義される近似によってガンマ補正を処理する。折れ線は、原点(0,0)と(BP1,BC1)、(BP2,BC2)、(BP3,BC3)の3点の入力に対する出力値によって直線の始点が定義され、各直線の傾きは、GR0、GR1、GR2、GR3で定義される。原点と3点の間は、定義された各直線によって入力に対する出力が決まる。ガンマ補正の典型例としては、図9(A)のように上に凸のカーブを近似する折れ線として定義する。
図9(B)は逆ガンマ補正処理の例を示す図である。この実現方法は、図9(A)ガンマ補正処理と同様であり、3点の(BP1,BC1)、(BP2,BC2)、(BP3,BC3)の定義、各直線の傾きGR0、GR1、GR2、GR3の定義が図9(A)と異なる。なお、逆ガンマ補正の典型例としては、図9(B)のように下に凸のカーブを近似する折れ線として定義する。なお、いずれも、3点の折れ線で定義処理することとして説明したが、同様な定義パラメータを増やし、折れ線の点の数を増やすことで入出力定義折れ線を目的のカーブにより近似させてもよい。
図10は、マトリクス変換の例を示す図である。図10(A)は、RGBからYUVへの変換を示し、3×3のマトリクス変換によって処理する。3×3マトリクスの係数a00、a01、a02、a10、a11、a12、a20、a21、a22は、ビデオや記録形式などの規格で色空間変換の係数として定義されたものでよい。本実施形態の場合、HEVC圧縮の対象となるYUV空間の規格に合わせることが好ましい。次に、図10(B)は、YUVからRGBへの逆変換を示し、3×3のマトリクス変換によって処理する。3×3マトリクスの係数b00、b01、b02、b10、b11、b12、b20、b21、b22は、ビデオや記録形式などの規格で色空間変換の係数として定義されたものでよい。本実施形態の場合、HEVC圧縮の対象となるYUV空間の規格に合わせることが好ましい。この3×3マトリクスは、図10(A)で定義した3×3マトリクスの逆行列に相当する。
図11は、歪曲収差補正の例を示す図である。画像データ1101は、レンズの歪曲収差のある画像データである。例えば、歪曲収差補正処理により画像データ1101を、画像データ1102のように補正する。また、歪曲逆補正処理では、逆に補正後の画像データ1102に対して歪曲収差戻しを行い、補正前の画像データ1101を得る。この実施方法としては、像高中心からの距離ごとに拡縮率を定義し、これに基づいた画素位置から再サンプリングする方法がある。
次に、図12(A)を参照して、加減算処理部110による差分生成処理について説明する。加減算処理部110による差分生成処理は、図2(A)に示す処理フローの差分生成処理208、図2(C)に示す処理フローの差分生成処理251、図4に示す処理フローの差分生成処理408に該当する。
本画像YUVデータ1201は、図2(A)に示す処理フローにおける本画像YUVデータ203に相当する。また、図2(C)に示す処理フローにおける処理後本画像YUVデータ245、図4に示す処理フローの伸張本画像YUVデータ411に相当する。RAW復元用YUVデータ1205は、図2(A)に示す処理フローにおけるRAW復元用YUVデータ207に相当する。また、図2(C)に示す処理フローにおけるRAW復元用YUVデータ250、図4に示す処理フローのRAW復元用YUVデータ407に相当する。422-444変換処理1202は、YUV422形式からYUV444形式に変換を行う処理である。つまり、UVについて水平方向に奇数画素位置のUV値を補間して、YUV444形式に変換を行う。例えば、補間処理は、隣接2画素値の平均から求める。
シフタ1203は、bitシフタである。422-444変換処理1202の出力のbit数がRAW復元用YUVデータ1205のbit数より小さい場合、bit幅が合うように左シフトし下位bitは0埋めする。なお、422-444変換処理1202およびシフタ1203は、本画像YUVデータがRAW復元用YUVデータとデータ形式として、輝度に対する色成分のサンプリング比、輝度および色成分の有効ビット数に差がある場合にこれを合わせる目的で行う。差分データ1204は、図2(A)に示す処理フローにおける差分データ209に相当する。また、図2(C)に示す処理フローにおける差分データ252に相当する。RAW復元用YUVデータ1205からシフタ1203の出力を減算し差分データ1204を生成出力する。
次に、図12(B)を参照して、加減算処理部110による加算処理について説明する。加減算処理部110による加算処理は、図2(B)に示す処理フローの加算処理224に相当する。本画像YUVデータ1221は図2(B)に示す処理フローにおける伸張本画像YUVデータ223に相当する。差分データ1225は、図2(B)に示す処理フローにおける伸張差分データ229に相当する。422-444変換処理1222は、YUV422形式からYUV444形式に変換を行う処理である。つまり、UVについて水平方向に奇数画素位置のUV値を補間して444形式に変換を行う。例えば、補間処理は、隣接2画素値の平均から求める。
シフタ1223は、bitシフタである。422-444変換処理1222の出力のbit数が差分データ1225のbit数より小さい場合、bit幅が合うように左シフトし下位bitは0埋めする。なお、422-444変換処理1222およびシフタ1223は、本画像YUVデータが差分データ1225とデータ形式として、輝度に対する色成分のサンプリング比、輝度および色成分の有効ビット数に差がある場合にこれを合わせる目的で行う。RAW復元用YUVデータ1224は、図2(B)に示す処理フローにおけるRAW復元用YUVデータ225に相当する。差分データ1225とシフタ1223の出力を加算しRAW復元用YUVデータ1224を生成出力する。
次に、図13を参照して、記録部108に記録する記録データのデータ構成について説明する。データ構成は、図2(A)に示す処理フローのHEIFファイル205、図2(B)に示す処理フローのHEIFファイル221、図2(C)に示す処理フローのHEIFファイル247に相当する。HEIFファイル1301は、ヘッダ1302と、HEVC本画像1303と、差分画像圧縮データ1304と、可逆画像処理パラメータ1305を含む。ヘッダ1302は、構成する複数のコンテナデータのへのリンク情報を含む。HEVC本画像1303は、HEVC圧縮された本画像データであり、図2(A)に示すHEVC圧縮処理204および図2(C)に示すHEVC圧縮処理246の出力圧縮データに相当する。また、画像データのサイズ、データ形式などの情報も含む。差分画像圧縮データ1304は、図2(A)に示す圧縮処理210および図(C)に示す圧縮処理253の出力圧縮データに相当する。また、画像データのサイズ、データ形式などの情報も含む。可逆画像処理パラメータ1305は、図(A)に示す可逆画像処理206で使用した可逆パラメータである。
次に、図14を参照して、ネットワーク経由での画像処理について説明する。図2(C)に示す処理フローでは、撮像装置内で復元したRAWデータに対して改めて高度な非可逆画像処理を行うことを説明した。本図では、撮像装置内でなく通信部112を介しネットワーク経由で外部サーバ113などにおいて高度な非可逆画像処理を行う場合を示す。高度な非可逆画像処理とは、例えばディープラーニングを画像処理に応用したような、非常に高画質な画像処理ではあるが、画像1枚あたりの処理時間は長く撮影時に処理することが製品機能上好ましくないものである。例えば、画像1枚あたり数十秒から数分以上かかるような画像処理である。
まず、ステップS1401では、外部サーバで未処理の記録データであるHEIFファイル205があるか否かを判定する。未処理のHEIFファイル205がある場合(YES)、ステップS1402に進む。未処理のHEIFファイル205がない場合(NO)、処理を終了する。次に、ステップS1402では、外部サーバにHEIFファイル205を送付する。つまり、HEIFファイル205は、通信部112を介しネットワーク経由で外部サーバ113に送付される。次に、ステップS1403では、外部サーバによる非可逆画像処理が完了した旨の通知が受信されたか否かを判定する。なお、この通知は、通信部112を介して受信される。完了通知が受信されていない場合(NO)、ステップS1403にて通知があるまで待機する。完了通知があった場合(YES)、ステップS1404に進む。次に、ステップ1404では、外部サーバ113から通信部112を介して非可逆画像処理を行った画像が圧縮格納されたHEIFファイルを受信、記録部108に保存し、ステップS1401に戻る。以上、未処理のHEIFファイル205が無くなるまでこれを繰り返す。
次に、図4に示す処理フローで示した伸張処理ありの差分生成を行う場合と、図2(A)に示す処理フローで示した伸張処理なしの差分生成を行う場合との切替え制御について説明する。図15は、伸張ありと伸張なしを切り替える条件を管理する表であり、例えば、ユーザーはこの表をメニューで表示し切り替える条件を選択する。図15に示す例では、低速連写モード時は「伸張あり」であり、図4で示した処理フローでRAW復元用YUVデータ407と伸張本画像YUVデータ411との差分から差分データ409が生成される。一方、高速連写モード時は「伸張なし」であり、図2(A)で示した処理フローでRAW復元用YUVデータ207と本画像YUVデータとの差分から差分データ209が生成される。これにより記録速度優先の「伸張なし」かRAW復元の品質優先の「伸張あり」かを指定管理された条件で切り替え処理する。
なお、図15では高速連写/低速連写が切替え条件でありこれについて説明したが、他の再生編集時/撮影時、単写撮影/連写撮影、連写代表画像/その他の画像、が選択された場合も同様である。例えば、「撮影時」は、あらゆる撮影モードで動作している場合であり、「再生編集時」は、それ以外の動作モードを示す。「連写」は、連写撮影モードで動作している場合で、「単写」は、単写撮影の撮影モードのことである。「高速連写」は、ある連写速度以上の連写モードを示し、「低速連写」は、単写撮影を含むある連写速度以下の撮影モードを示す。「連写代表画像」は、連写撮影において自動で選択される代表記録画像を示しており、この画像に対しては「伸張あり」で処理する。これに対する「その他」はその他の連写画像であり、「伸張なし」で処理することを示す。なお、本実施形態では、「常に伸張あり」、「常に伸張なし」という選択肢もありこれも選択できる。なお、本実施形態では、ユーザーがメニューでこれらの条件を選択する例について説明した。しかしながら、これに限定することなく、例えば、撮像装置の機能ごとの要求処理速度、可能使用メモリに応じて条件を予め決定し自動的に「伸張あり」「伸張なし」を選択してもよい。
以上、本実施形態では、RAW復元ができる記録ファイル生成において、処理速度の速さ、使用メモリ量の少なさを極力優先した場合について説明した。また、伸張画像との差分によるRAW復元性が高い方式とを条件によって切り替える場合についても説明した。従って、本実施形態によれば、各撮影モードにおいてRAW復元可能な記録ファイル生成処理を最適な処理速度と品質で処理が可能となる。
(第2実施形態)
以下、本実施形態に係る撮像装置について説明する。本実施形態に係る撮像装置の構成は、第1実施形態の図1を用いて説明した構成と同じであり、図6から図11で説明した可逆な画像処理およびその逆変換処理についても同様である。また図13、図14、図15で説明した実施形態も同様である。
次に、図16を参照して、本実施形態の処理フローについて説明する。図16(A)は、撮影時の処理フローの例を示す図である。図16(A)は、図2(A)、図4とは異なる差分データ生成の処理フローの例を示す。まず、RAWデータ1601は、撮像されたRAWデータであり、A/D変換回路103から出力されたベイヤ配列のRAWデータである。また、図2(B)に示す処理フローにより復元された復元RAWデータ227であってもよい。さらに、図2(C)に示す処理フローの処理後RAWデータ243であってもよい。次に、非可逆画像処理1602は、非可逆画像処理部104で行う非可逆な画像処理である。本画像YUVデータ1603は、非可逆画像処理1602の出力である本画像記録用のYUVデータである。そして、本画像記録用の本画像YUVデータ1603は、メモリ107に書き込まれる。HEVC圧縮処理1604は、圧縮伸張処理部111で行うHEVC圧縮処理であり本画像YUVデータ1603をHEVC圧縮する。なお、本実施形態では、HEVC圧縮手段を例に説明しているが、JPEG圧縮など別の圧縮方式でもよい。そして、HEVC圧縮処理1604後の圧縮データは、メモリ107に書き込まれる。
次に、HEVC伸張処理1612は、圧縮伸張処理部111で行うHEVC伸張処理である。HEVC圧縮処理1604で出力されたメモリ107上のHEVC圧縮データを伸張処理し、メモリ107に伸張本画像YUVデータ1611を書き込む。次に、可逆画像処理の逆変換処理1607は、可逆画像処理部109で行う可逆な画像処理の逆変換処理である。本実施形態で使用する逆変換パラメータは、非可逆画像処理402で使用されたパラメータに基づいた可逆パラメータをパラメータ逆変換処理1613で逆変換パラメータに変換して生成する。なお、非可逆画像処理パラメータからの可逆パラメータの生成、パラメータ逆変換処理1613は、CPU105で処理する。
そして、可逆画像処理の逆変換処理1607で出力した逆変換RAWデータ1606は、メモリ107に書き込まれる。差分生成処理1608は加減算処理部110で行う差分生成処理であり、メモリ107上の逆変換RAWデータ1606、RAWデータ1601の差分データ1609を生成する。差分データ1609は、加減算処理部110での差分生成処理1608の出力であり、メモリ107に書き込まれる。圧縮処理1610は、圧縮伸張処理部111で行う差分データ1609の圧縮処理である。RAWの復元性を考えると可逆圧縮がよいが、RAW復元性より圧縮後のデータサイズを優先する場合は非可逆な圧縮処理でもよい。HEIFファイル1605は、HEIFファイルを示しており、本画像YUVデータ1603のHEVC圧縮処理1604後の圧縮データ、差分データ1609の圧縮処理1610後の圧縮データはHEIFファイルとして形成され記録部108に記録する。また、可逆画像処理の逆変換処理1607で使用した逆変換パラメータもこのHEIFファイル1605に付加し記録する。図16(A)で記録されたHEIFファイル1605は、撮影時だけでなく、図2(C)に示す処理フローの処理後RAWデータ243にも適用できる。
次に、図16(B)は、図16(A)で記録したHEIFファイル1605からRAWを復元する処理フローである。HEIFファイル1621は、撮影時に記録部108で記録された記録ファイルで、図16(A)のHEIFファイル1605に相当する。HEIFファイル1621からHEVC圧縮された本画像YUV圧縮データを読み出し、圧縮伸張処理部111でHEVC伸張処理1622を行い、伸張本画像YUVデータ1623を出力する。伸張本画像YUVデータ1623は、メモリ107に書き込まれる。
一方、HEIFファイル1621から圧縮された差分データを読み出し、圧縮伸張処理部111で伸張処理1628を行い、伸張差分データ1629を出力する。伸張差分データ1629はメモリ107に書き込まれる。次に、伸張本画像YUVデータ1623は、可逆画像処理の逆変換処理1624を行う。このときの逆変換パラメータは、HEIFファイル1621から読み出し使用する。可逆画像処理の逆変換処理1624の出力は、逆変換RAWデータ1625であり、メモリ107に書き込まれる。次に、逆変換RAWデータ1625と伸張差分データ1629をメモリ107から読み出し加減算処理部110で加算処理224を行い、復元RAWデータ1627を出力する。出力された復元RAWデータ1627は、メモリ107に書き込まれる。なお、復元RAWデータ1627は、撮影時のRAWデータ1601を復元したものである。
このように非可逆画像処理1602の逆変換処理でなく可逆画像処理の逆変換処理1607で行うことで処理負荷を極力軽減し処理時間短縮、使用メモリの削減が可能である。また、非可逆画像処理1602の逆変換処理に必要なパラメータと比較し可逆画像処理の逆変換処理1607の逆変換パラメータは、最低限のパラメータ数で済む。そのため、パラメータの逆変換処理1613についても処理負荷を軽減し処理時間短縮、使用メモリの削減が可能である。また、HEIFファイル1605に格納するパラメータのサイズを最小化できる。
図17は、図16(A)で示した処理フローのタイミングチャートを説明する図である。V信号1701は、静止画撮影が行われたタイミングを表している。本実施形態では、高速な連写が行われ、V信号1701のタイミングで連続した撮影が行われていることを示している。
図17で示すように、撮像によるRAWデータ1601取得、非可逆画像処理1602、HEVC圧縮処理1604は各々連続した撮影画像に対し順次並列に処理する。次に、HEVC伸張1612は、HEVC圧縮処理1604を待って行う。HEVC伸張1612、可逆画像処理の逆変換処理1607、差分生成処理1608、圧縮処理1610、HEIFファイル1605の記録部108への記録は、HEVC伸張1612の開始を待って順次処理が開始される。非可逆画像処理からHEVC圧縮、あるいはHEVC伸張から、可逆画像逆変換処理、差分生成、差分データ圧縮に対しては画像1枚の処理が完了する前から追いかけて処理するようなタイミングチャートとしている。
期間T3は、撮影からHEIFファイル1605が記録されるまでの一連の処理全体の処理時間である。T3は、図3のタイミングチャートで示した期間T1より長い時間が掛かることがわかる。つまり、図16で示した処理フローでは、各処理に必要なメモリバッファのライフタイムが図2(A)に示す処理フローより長くなり、使用メモリ量は多くなる傾向がある。
一方、図16に示す処理フローでは、本画像YUVデータ1603でなく、直接RAWデータ1601と逆変換RAWデータ1606との差分を差分生成処理1608で差分データ1609を取得している。そのため、図16(B)に示す処理フローによる復元RAWを生成した際に復元処理の誤差が抑えられ結果として復元RAWの品質が向上する傾向がある。
本実施形態では、第1実施形態の図15を用いて説明した「伸張あり」、「伸張なし」の切替えの対象となる処理フローは、図16(A)の処理フローと図2(A)の処理フローとなる。どちらの処理フローに従って記録するHEIFファイルを生成するかを切り替える。また、本実施形態において、HEIFファイルからのRAW復元処理について、「伸張あり」の場合は、図16(B)に示す処理フローであり、「伸張なし」の場合は、図2(B)に示す処理フローによって行われる。
以上、本実施形態では、逆変換RAWとの差分によるRAW復元性が高い方式とを条件によって切り替える場合について説明した。従って、本実施形態によれば、各撮影モードにおいてRAW復元可能な記録ファイル生成処理を最適な処理速度と品質で処理が可能となる。
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。