<第1実施形態の説明>
図1は、撮像装置、動画像圧縮装置、動画像復号装置の一例である第1実施形態の電子カメラの構成例を示す図である。
第1実施形態の電子カメラ100は動画撮影機能を有しており、動画撮影モードの1つとしてRAW動画像記録モードを有している。RAW動画像記録モードでの電子カメラ100は、デジタル現像処理前のRAW形式の動画像(RAW動画像)に圧縮符号化を施して記録する。なお、デジタル現像処理とは、未加工のRAW画像を写真に相当する画像に変換する画像処理である。一例として、デジタル現像処理には、色補間処理、階調変換処理、ホワイトバランス調整処理、色変換処理が含まれる。
電子カメラ100は、撮像光学系101と、撮像素子102と、信号処理部103と、画像処理エンジン104と、第1メモリ105および第2メモリ106と、記録I/F107と、モニタ108と、操作部109とを有している。ここで、信号処理部103、第1メモリ105、第2メモリ106、記録I/F107、モニタ108および操作部109は、それぞれ画像処理エンジン104と接続されている。なお、操作部109は、ユーザの操作(例えば動画撮影の指示や、モード切り替えの指示など)を受け付けるスイッチである。
撮像光学系101は、例えばズームレンズやフォーカスレンズを含む複数のレンズで構成されている。なお、簡単のため、図1では撮像光学系101を1枚のレンズで図示する。
撮像素子102は、撮像光学系101を通過した光束による被写体の結像を撮像(撮影)するデバイスである。撮像素子102の出力は、画像処理エンジン104に接続されている。上記の撮像素子102は、順次走査方式の固体撮像素子(例えばCCD)であってもよく、XYアドレス方式の固体撮像素子(例えばCMOS)であってもよい。
ここで、撮像素子102の受光面には、複数の受光素子(画素)がマトリクス状に配列されている。そして、撮像素子102の画素には、それぞれが異なる色成分の光を透過させる複数種類のカラーフィルタが所定の色配列に従って配置される。そのため、撮像素子102の各画素は、カラーフィルタでの色分解によって各色成分に対応する電気信号を出力する。例えば、第1実施形態では、赤色(R)、緑色(G)、青色(B)のカラーフィルタが2行2列のベイヤ配列にしたがって受光面に周期的に配置されている。一例として、撮像素子102の画素配列の奇数行にはG,Bの画素が交互に並ぶとともに、画素配列の偶数行にはR,Gの画素が交互に並んでいる。そして、画素配列の全体では緑色画素が市松模様をなすように配置されている。これにより、撮像素子102は、撮影時にカラーの画像を取得することができる。本明細書の説明では、奇数行の緑色画素をG1と表記することがあり、偶数行の緑色画素をG2と表記することがある。また、ベイヤ配列での各色画素の配列パターンは上述の例に限定されることなく、奇数行に赤画素、偶数行に青画素を配置するものであってもよい。なお、図2(a)〜(d)に、ベイヤ配列での各色画素の配列例を示す。
信号処理部103は、撮像素子102から入力される画像信号に対して、アナログ信号処理(相関二重サンプリング、黒レベル補正など)と、A/D変換処理と、デジタル信号処理(欠陥画素補正など)とを順次施す。信号処理部103から出力される画像(RAW画像)のデータは、画像処理エンジン104に入力される。
画像処理エンジン104は、電子カメラ100の動作を統括的に制御するプロセッサである。例えば、画像処理エンジン104は、撮像素子102から入力される画像信号を用いて、オートフォーカス(AF)、自動露出(AE)の制御を行う。
また、画像処理エンジン104は、現像処理部111と、画像変換部112と、圧縮処理部113と、復号処理部114とを有する。現像処理部111は、RAW画像に対して上述したデジタル現像処理を行う。
画像変換部112は、RAW動画像記録モードにおいて、RAW動画像の各フレームを画素の色成分に基づいて複数の画像にそれぞれ分離する。例えば、画像変換部112は、RAW動画像の1フレームの画素を色別に分離して並べ替える。そして、画像変換部112は、例えば、奇数行の緑色成分(G1)に対応する第1画素群を含む第1画像と、偶数行の緑色成分(G2)に対応する第2画素群を含む第2画像とに分離する。なお、第1画像および第2画像の例については後述する。
また、画像変換部112は、RAW動画像記録モードにおいて、上述した第1画像および第2画像を時間軸方向に交互に配列して出力する。また、画像変換部112は、RAW動画像記録モードで圧縮された動画像データを復号するときに、第1画像および第2画像を並べ替えて元のRAW画像に復元する。
圧縮処理部113は、動画像の各フレームを所定サイズのブロック単位に分割し、動き補償予測を用いて動画像のデータを圧縮符号化する。また、RAW動画像記録モードでの圧縮処理部113は、画像変換部112で時間軸方向に配列された第1画像および第2画像を画像間予測符号化圧縮する。なお、圧縮処理部113の構成例については後述する。
復号処理部114は、圧縮処理部113で圧縮符号化された動画像のデータを復号する。なお、復号処理部114の構成例については後述する。
なお、画像処理エンジン104に含まれる現像処理部111、画像変換部112、圧縮処理部113および復号処理部114の機能ブロックは、ハードウェア的には任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現される。
第1メモリ105は、画像処理の前工程や後工程で画像のデータを一時的に記憶する。例えば、第1メモリ105は、揮発性の記憶媒体であるSDRAMである。また、第2メモリ106は、画像処理エンジン104で実行されるプログラムや、このプログラムで使用される各種データを記憶する。例えば、第2メモリ106は、フラッシュメモリ等の不揮発性メモリである。
記録I/F107は、不揮発性の記憶媒体110を接続するためのコネクタを有している。そして、記録I/F107は、コネクタに接続された記憶媒体110に対して動画像のデータの書き込み/読み込みを実行する。記憶媒体110は、ハードディスクや、半導体メモリを内蔵したメモリカードなどである。なお、図1では記憶媒体110の一例としてメモリカードを図示する。
モニタ108は、各種の画像を表示する表示デバイスである。例えば、モニタ108は、画像処理エンジン104の制御により、動画撮影時のビューファインダ表示や、撮影した動画像の再生表示を行う。
次に、図3を参照しつつ、圧縮処理部113の構成例を説明する。図3では、ハードウェアやソフトウェアの連携によって実現される機能ブロックで圧縮処理部113の各部を示している。
ここで、動き補償予測を行う画像圧縮符号化方式としては、例えば、ISO/IEC13818−2に規定されるMPEG−2などが知られている。上述の画像圧縮符号化方式では、Iピクチャ、Pピクチャ、Bピクチャを用いてフレーム内またはフレーム間で圧縮符号化が行われる。Iピクチャは画面内のみで完結する符号化により得られる画面内符号化画像である。Pピクチャは参照画像最大1枚を用いる予測符号化により得られる画面間予測符号化画像である。Bピクチャは参照画像最大2枚を用いる予測符号化により得られる画面間双予測符号化画像である。
圧縮処理部113は、第1蓄積部11、減算部12、直交変換部13、量子化部14、符号化部15、逆量子化部16、逆直交変換部17、加算部18、第2蓄積部19、予測情報生成部20、予測部21を有している。
第1蓄積部11は、画像変換部112から出力される第1画像および第2画像を蓄積する。第1蓄積部11に蓄積された第1画像および第2画像は、符号化対象の画像として入力順に減算部12へ出力される。なお、符号化の完了した画像は第1蓄積部11から順次消去される。
減算部12は、PピクチャまたはBピクチャを生成するときには、入力された原画像と予測部21で生成された後述の予測値との差分信号(予測誤差値)を出力する。また、減算部12は、Iピクチャを生成するときには、入力された原画像の信号をそのまま出力する。
直交変換部13は、Iピクチャを生成するときには、減算器をスルーして入力された原画像の信号に対して直交変換を行う。また、直交変換部13は、Pピクチャ又はBピクチャを生成するときには、上述の差分信号に対して直交変換を行う。
量子化部14は、直交変換部13から入力されたブロック単位の周波数係数(直交変換係数)を量子化係数に変換する。量子化部14の出力は、符号化部15および逆量子化部16にそれぞれ入力される。
符号化部15は、量子化係数や、動きベクトル等の予測情報を可変長符号化し、動画像の符号化ビットストリームを外部へ出力する。
逆量子化部16は、ブロック単位で量子化係数を逆量子化して周波数係数を復号する。逆直交変換部17は、逆量子化部16で復号された周波数係数を逆直交変換して予測誤差値(または原画像の信号)を復号する。
加算部18は、復号された予測誤差値と、予測部21で生成された後述の予測値とを加算する。そして、加算部18から出力されたピクチャの復号値(参照画像)は第2蓄積部19に蓄積される。なお、以後の動き補償予測で参照されない画像は第2蓄積部19から順次消去される。
予測情報生成部20は、第2蓄積部19の参照画像を用いて、符号化対象の画像を予測するための予測情報(動きベクトルなど)を生成する。予測情報は、予測部21および符号化部15に出力される。
予測部21は、予測情報および参照画像に基づいて、符号化対象の画像をブロック単位で予測した予測値を出力する。この予測値は、減算部12および加算部18に出力される。
なお、或るブロックについて動き補償予測を行う場合、符号化対象の画像が予測値と完全に一致すると予測情報のみがデータ化される。また、符号化対象の画像が予測値と部分的に一致する場合、予測情報と差分の画像がデータ化される。また、符号化対象の画像が予測値からすべて外れる場合には、ブロック全体分の画像がすべてデータ化される。
次に、図4を参照しつつ、復号処理部114の構成例を説明する。図4では、ハードウェアやソフトウェアの連携によって実現される機能ブロックで復号処理部114の各部を示している。なお、復号処理部114の機能ブロックは、圧縮処理部113の同名称の機能ブロックと共有化されていてもよい。
復号処理部114は、符号復号部31、逆量子化部32、逆直交変換部33、加算部34、第1蓄積部35、第2蓄積部36、予測部37を有している。
符号復号部31は、入力される動画像の符号化ビットストリームを復号し、量子化係数や、動きベクトル等の予測情報を出力する。なお、復号された量子化係数は逆量子化部32に入力され、復号された予測情報は予測部37に入力される。
逆量子化部32は、ブロック単位で量子化係数を逆量子化して周波数係数を復号する。逆直交変換部33は、逆量子化部32で復号された周波数係数を逆直交変換して予測誤差値(または原画像の信号)を復号する。
加算部34は、復号された予測誤差値と予測部37で生成された予測値とを加算することで、復号された画像をブロック単位で出力する。そして、加算部34から出力された画像の復号値は第1蓄積部35および第2蓄積部36にそれぞれ入力される。
第1蓄積部35は、復号した第1画像および第2画像を画像変換部112に出力するまで蓄積する。なお、画像変換部112への出力が完了した画像は第1蓄積部35から順次消去される。また、第2蓄積部36は、画像の復号値を参照画像として蓄積する。なお、以後の動き補償予測で参照されない画像は第2蓄積部36から順次消去される。
予測部37は、予測情報および参照画像に基づいて、復号対象の画像をブロック単位で予測した予測値を加算部34に出力する。
(RAW動画像記録モードでの第1動作例)
以下、第1実施形態におけるRAW動画像記録モードでの第1動作例を説明する。図5は、RAW動画像記録モードでの電子カメラの動作を示す流れ図である。なお、図5の処理は、例えば、RAW動画像撮影モードの起動時に画像処理エンジン104がプログラムを実行することで開始される。なお、第1実施形態での電子カメラは、例えば30fpsのフレームレートで動画像の撮影を行う。
ステップ#101:画像処理エンジン104は、撮像素子102を駆動させて画像を撮像する。撮像素子102から出力された画像信号は、信号処理部103の信号処理を経て画像処理エンジン104に入力される。これにより、画像処理エンジン104は、RAW動画像の1フレームを構成する、符号化対象のRAW画像のデータを取得する。なお、図6は、符号化対象のRAW画像の例を示す図である。なお、以下の説明において、RAW画像の水平方向画素数はHで示し、RAW画像の垂直方向画素数はVで示す。
ステップ#102:画像変換部112は、入力された符号化対象のRAW画像に対して色成分の並べ替えを行う。
図7(a)〜(d)は、第1動作例におけるRAW画像の色成分の並べ替えで生成される画像を示す図である。第1動作例での画像変換部112は、RAW画像をG1,B,R,G2の4つの色成分に分離する。そして、画像変換部112は、分離したG1画素,B画素,R画素,G2画素を、色配列の位置に応じて並べ替える。これにより、1つのRAW画像から、G1画像,B画像,R画像,G2画像の4つの画像が生成される。G1画像は第1画像の一例であり、G2画像は第2画像の一例である。なお、G1画像,B画像,R画像,G2画像は、それぞれRAW画像の1/4の画像サイズ(V/2×H/2)となる。
ここで、第1動作例での画像変換部112は、圧縮処理部113に動画像を出力するときに、G1画像とG2画像とを時間軸方向に交互に配列して1つのチャネルで出力する。なお、第1動作例での画像変換部112は、圧縮処理部113に動画像を出力するときに、B画像,R画像についてはそれぞれ別のチャネルで出力する。
ステップ#103:圧縮処理部113は、符号化対象のRAW画像から生成された複数の画像をそれぞれ圧縮符号化する。
ここで、第1動作例での圧縮処理部113は、順次生成されるB画像を画像間予測符号化圧縮し、B成分の動画像データを生成する。同様に、圧縮処理部113は、順次生成されるR画像を画像間予測符号化圧縮し、R成分の動画像データを生成する。B画像,R画像は、単体ではモノクロ画像とみなすことができ、画像内では隣接画素との相関も高くなる。そのため、圧縮処理部113は、B画像およびR画像をそれぞれ効率よく動画像として圧縮できる。
また、第1動作例での圧縮処理部113は、時間軸方向に交互に配列されたG1画像およびG2画像を画像間予測符号化圧縮し、G成分の動画像データを生成する。
G1画像,G2画像は、それぞれ単体ではB画像,R画像と同様にモノクロ画像とみなすことができる。また、G1画像,G2画像は、1つのRAW画像の同色画素を奇数列と偶数列とで分離して再配列したものである。同じRAW画像から分離されたG1画像,G2画像は、いずれも同じ時点の被写体を撮像した画像であり、色配列での画素位置の違いによる絵柄のズレは生じるものの画像間の相関は非常に高くなる。また、時間軸方向に前後した2つのRAW画像から分離されたG1画像,G2画像も、ほぼ同様の被写体が撮像されている可能性が高いため、画像間の相関は高くなる。そのため、第1動作例では、時間軸方向に交互に配列されたG1画像およびG2画像を、画像をブロック分割してブロックごとの画素補間、もしくは、画素ずらしを適応的に切り替える画像間予測符号化圧縮をすることで、RAW動画像の圧縮符号化の効率をより向上させる。
画像をブロック分割してブロックごとの画素補間、もしくは、画素ずらしを適応的に切り替える画像間予測符号化は、例えば、動き補償予測符号化を適用することで容易にできる。
ここで、第1画像,第2画像を画像間予測符号化圧縮する場合、圧縮処理部113は以下のように動き補償予測を行えばよい。以下の説明では、IピクチャとしてのRAW画像をIフレームと称し、PピクチャとしてのRAW画像をPフレームと称し、BピクチャとしてのRAW画像をBフレームと称する。また、図8から図11において、n番目のRAW画像から分離した第1画像は「n−1」と表記し、n番目のRAW画像から分離した第2画像は「n−2」と表記する。
図8は、RAW画像がすべてIフレームである場合の動き補償予測の例を示している。図8の例では、圧縮処理部113は、各々の第1画像に対して画面内符号化圧縮を行う。また、圧縮処理部113は、同じRAW画像から分離された第1画像(Iピクチャ)を参照し、第1画像の復号値を用いて各ブロックで動き補償予測を行う。これにより、第2画像が画像間予測符号化圧縮される。なお、Iフレームの場合、第1画像はIピクチャとなり、第2画像はPピクチャとなる。
図9は、RAW画像がIフレーム,Pフレームである場合の動き補償予測の例を示している。Iフレームでの動き補償予測は、図8の例と同様であるので重複説明は省略する。
図9の例において、Pフレームでの第1画像の動き補償予測では、それぞれ1フレーム過去のRAW画像から分離した第1画像(Iピクチャ/Pピクチャ)または第2画像(Pピクチャ)が参照画像の候補となる。また、Pフレームでの第2画像の動き補償予測では、1フレーム過去のRAW画像から分離した第2画像(Pピクチャ)または同じRAW画像から分離された第1画像(Pピクチャ)が参照画像の候補となる。Pフレームの各画像を圧縮する場合、圧縮処理部113は、参照画像の候補のうちからブロックごとに参照画像を1つ選択し、その参照画像の復号値を用いて各ブロックの動き補償予測を行う。なお、Pフレームの場合、第1画像および第2画像はいずれもPピクチャとなる。
図10、図11は、RAW画像がIフレーム,Pフレーム,Bフレームである場合の動き補償予測の例を示している。Iフレームでの動き補償予測は、図8の例と同様であるので重複説明は省略する。
図10に示すように、Pフレームでの第1画像の動き補償予測では、それぞれIフレームに対応する第1画像(Iピクチャ)または第2画像(Pピクチャ)が参照画像の候補となる。また、Pフレームでの第2画像の動き補償予測では、Iフレームの第2画像(Pピクチャ)またはPフレームの第1画像(Pピクチャ)が参照画像の候補となる。Pフレームの各画像を圧縮する場合、圧縮処理部113は、参照画像の候補のうちからブロックごとに参照画像を1つ選択し、その参照画像の復号値を用いて各ブロックの動き補償予測を行う。なお、Pフレームの場合、第1画像および第2画像はいずれもPピクチャとなる。
また、図11に示すように、Bフレームでの第1画像,第2画像の動き補償予測では、(1)過去側でBフレームから直近のIフレーム(もしくはPフレーム)から分離した第1画像または第2画像のうち1つと、(2)未来側でBフレームから直近のIフレーム(もしくはPフレーム)から分離した第1画像または第2画像のうち1つとが、それぞれ参照画像の候補となる。Bフレームの各画像を圧縮する場合、圧縮処理部113は、参照画像の候補のうちからブロックごとに過去と未来の参照画像を1つずつ選択し、2つの参照画像の復号値を用いて各ブロックの動き補償予測を行う。
また、RAW画像の同じ色配列から抽出されたG1画素とG2画素は、第1画像,第2画像で同じ画素位置にそれぞれ配置される。しかし、上述のように、第1画像と第2画像との間では色配列での画素位置の違いによる絵柄のズレが生じる。そのため、第1画像と第2画像との間で動き補償予測を行うとき、圧縮処理部113の予測情報生成部20は、色配列での画素位置の違いを考慮して、G1,G2成分間での予測を以下の(A),(B)のように行うことが好ましい。かかるG1,G2成分間での予測は符号化対象の画像のブロック単位で独立に行われる。
ここで、以下の(A),(B)の説明に関し、図12〜図25ではRAW画像でのG1画素,G2画素の配列を丸印で示す。また、図12〜図25では1つの色配列の範囲(第1画像および第2画像の標本点)を枠線で示す。また、第1画像と第2画像との間において、予測先画像の注目画素の位置に対する予測元画像の参照画素の位置ズレを、動きベクトルMV[x,y]と称する。動きベクトルMVは、右方向のズレによりxが増加し、左方向のズレによりxが減少する。同様に、動きベクトルMVは、下方向のズレによりyが増加し、上方向のズレによりyが減少する。以下の説明では、予測元画像が第1画像であり、予測先画像が第2画像である例を説明するが、両者の関係は逆であってもよい。
(A)画素補間処理による予測
図12、図13は、画素補間処理による画素値の予測例を示す図である。画素補間処理では、第1画像と第2画像との間で、予測元画像での複数画素の補間値により予測先画像の注目画素の値が予測される。
図12、図13は、予測先画像(第2画像)の注目画素G2xの値を、注目画素に隣接する予測元画像(第1画像)の4画素(G1a〜G1d)の平均値で求める例を示している。図12、図13の場合、注目画素の画素値を4つの隣接画素の平均で予測するため、予測元画像の復号値に含まれる符号化歪みを抑制できる。
図12の例では、色配列の左上にG1画素、色配列の右下にG2画素が配置されている。図12の場合、画素G1aと画素G2xとが同じ標本点に属するが、注目画素(G2x)は補間により画素G1b〜G1dの影響を受ける。そのため、予測元画像での参照画素の範囲は、注目画素(G2x)の位置に対して右に0.5画素、下に0.5画素ずれる。よって、図12の例での動きベクトルMVは[0.5,0.5]となる。
また、図13の例では、色配列の右上にG1画素、色配列の左下にG2画素が配置されている。図13の場合、画素G1bと画素G2xとが同じ標本点に属するが、注目画素(G2x)は補間により画素G1a,G1c,G1dの影響を受ける。そのため、予測元画像での参照画素の範囲は、注目画素(G2x)の位置に対して左に0.5画素、下に0.5画素ずれる。よって、図13の例での動きベクトルMVは[−0.5,0.5]となる。
上述した画素補間処理による動き補償予測は、絵柄の変化が比較的に少ないブロックで選択される確率が高い。動画像には動きのない部分も数多く含まれるため、第1画像と第2画像との圧縮符号化では、図12、図13の予測が選択される頻度も高くなる。そのため、符号化部15は、画素補間処理による動き補償予測の場合に最短の符号を割り当てて、圧縮効率を高めてもよい。
例えば、第1動作例での第1画像と第2画像との圧縮符号化において、符号化部15は、図12の場合には動きベクトルMV[0.5,0.5]による動き補償予測に最短の符号を割り当てても良い。また、第1動作例での第1画像と第2画像との圧縮符号化において、符号化部15は、図13の場合には動きベクトルMV[−0.5,0.5]による動き補償予測に最短の符号を割り当てても良い。
上述の予測値の算出方法は、適用される符号化方式に依存する。そのため、画素補間処理による予測は、図12、図13の例に限定されるものではない。例えば、図14のように、予測先画像(第2画像)の注目画素G2xの値を、予測元画像(第1画像)の16個のG1画素による補間値(例えば16個のG1成分の平均値または重み付け平均値)で求めてもよい。なお、図14の例での動きベクトルMVは[0.5,0.5]である。
(B)画素ずらし処理による予測
図15〜図25は、画素ずらし処理による画素値の予測例を示す図である。画素ずらし処理では、第1画像と第2画像との間で、予測先画像の注目画素の値が予測元画像で異なる位置の画素の値から予測される。
図15〜図18は、色配列の左上にG1画素、色配列の右下にG2画素が配置されている場合である。
図15の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では右上に位置する画素G1bの値から予測される。図15の場合、予測元画像の参照画素(G1bの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)の位置に対して右に1画素ずれる。よって、図15の例での動きベクトルMVは[1,0]となる。
図16の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では左下に位置する画素G1cの値から予測される。図16の場合、予測元画像の参照画素(G1cの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)の位置に対して下に1画素ずれる。よって、図16の例での動きベクトルMVは[0,1]となる。なお、図15,図16のような動き補償予測は、左下から右上への斜めエッジを含む絵柄のブロックで選択される確率が高い。
図17の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では左上に位置する画素G1aの値から予測される。図17の場合、予測元画像の参照画素(G1aの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)と同じ位置である。よって、図17の例での動きベクトルMVは[0,0]となる。
図18の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では右下に位置する画素G1dの値から予測される。図18の場合、予測元画像の参照画素(G1dの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)の位置に対して右に1画素、下に1画素ずれる。よって、図18の例での動きベクトルMVは[1,1]となる。なお、図17,図18のような動き補償予測は、右下から左上への斜めエッジを含む絵柄のブロックで選択される確率が高い。
一方、図19〜図22は、色配列の右上にG1画素、色配列の左下にG2画素が配置されている場合である。
図19の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では右上に位置する画素G1bの値から予測される。図19の場合、予測元画像の参照画素(G1bの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)と同じ位置である。よって、図19の例での動きベクトルMVは[0,0]となる。
図20の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では左下に位置する画素G1cの値から予測される。図20の場合、予測元画像の参照画素(G1cの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)の位置に対して左に1画素、下に1画素ずれる。よって、図20の例での動きベクトルMVは[−1,1]となる。なお、図19,図20のような動き補償予測は、左下から右上への斜めエッジを含む絵柄のブロックで選択される確率が高い。
図21の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では左上に位置する画素G1aの値から予測される。図21の場合、予測元画像の参照画素(G1aの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)の位置に対して左に1画素ずれる。よって、図21の例での動きベクトルMVは[−1,0]となる。
図22の場合、予測先画像(第2画像)の注目画素G2xの値が、RAW画像では右下に位置する画素G1dの値から予測される。図22の場合、予測元画像の参照画素(G1dの属する標本点)は、予測先画像での注目画素(G2xの属する標本点)の位置に対して下に1画素ずれる。よって、図22の例での動きベクトルMVは[0,1]となる。なお、図21,図22のような動き補償予測は、右下から左上への斜めエッジを含む絵柄のブロックで選択される確率が高い。
図15〜図22では、注目画素に対してRAW画像では斜め45度で隣接する参照画素を予測に用いる例を説明したが、上述の例に限定されるものではない。他の例として、図23〜図25を説明する。なお、図23〜図25は、色配列の左上にG1画素、色配列の右下にG2画素が配置されている場合である。
図23は、予測先画像(第2画像)の注目画素G2xの値が、2つ右の色配列に属する画素G1fの値から予測される例を示している。図23の例での動きベクトルMVは[2,0]となる。
図24は、予測先画像(第2画像)の注目画素G2xの値が、左下の色配列に属する画素G1gの値から予測される例を示している。図24の例での動きベクトルMVは[1,1]となる。なお、図23,図24のような動き補償予測は、左下から右上に約18.4度(=tan−1(1/3))で傾いたエッジを含む絵柄のブロックで選択される確率が高い。
図25は、予測先画像(第2画像)の注目画素G2xの値が、1つ右の色配列に属する画素G1gと2つ右の色配列に属する画素G1fとの平均値で予測される例を示している。図25の例での動きベクトルMVは[1.5,0]となる。なお、図25のような動き補償予測は、左下から右上に約26.6度(=tan−1(1/2))で傾いたエッジを含む絵柄のブロックで選択される確率が高い。
圧縮処理部113は、斜めエッジを含む絵柄のブロックでは、図15〜図25の画素ずらし処理による予測をエッジの角度や方向に応じて選択する。これにより、第1画像と第2画像との予測誤差を小さくでき、より効率的に符号化をすることができる。
#103において、図12〜図14に示す画素補間処理や、図15〜図22の画素ずらし処理によれば、圧縮処理部113は動きベクトルの探索範囲を、注目画素の位置から空間方向に±1画素差の範囲にできる。また、図23〜図25の画素ずらし処理によれば、圧縮処理部113は動きベクトルの探索範囲を、注目画素の位置から空間方向に±2画素差の範囲にできる。
ところで、異なるRAW画像から分離された第1画像と第2画像との動き補償予測と比べると、同じRAW画像から分離された第1画像と第2画像との動き補償予測では、上述した画素補間処理や画素ずらし処理を適用できる頻度が高くなる。そのため、同じRAW画像から分離された第1画像と第2画像との動き補償予測では、圧縮処理部113は、画素補間処理や画素ずらし処理により動きベクトルの探索範囲を狭く設定することができ、演算負荷を抑制することができる。
ステップ#104:画像処理エンジン104は、記録I/F107を介して、圧縮符号化された画像のデータ(#103)を記憶媒体110に記録する。
ステップ#105:画像処理エンジン104は、動画撮影の終了指示を受け付けたか否かを判定する。上記要件を満たす場合(YES側)には#106に処理が移行する。一方、上記要件を満たさない場合(NO側)には#101に戻って、画像処理エンジン104は上記動作を繰り返す。#101から#105のNO側のループにより、順次取得されるRAW画像のフレームが色成分の入れ替え後に圧縮符号化され、記録媒体に動画像が記録されることとなる。
ステップ#106:画像処理エンジン104は、RAW動画像の付帯データを生成する。上記の付帯データには、元のRAW画像の画像サイズおよび色配列のパターン、画像変換部112による画像の並べ替えの方式(第1画像および第2画像の画素配列、画像サイズ)など、圧縮したRAW動画像の復号に用いる情報が含まれる。
そして、#106での画像処理エンジン104は、圧縮されたRAW動画像データを含む圧縮RAW動画像ファイルのヘッダ領域に上述の付帯データを記録する。以上で、図5の流れ図の説明を終了する。
なお、以下説明するRAW動画像記録モードの各動作例は、いずれも上述した第1動作例の変形例であって、画像変換部112でのRAW画像の並べ替え(#102)が相違する。そのため、以下の動作例の説明では、図5の流れ図に従って第1動作例と異なる部分を説明し、上述した第1動作例との重複説明はいずれも省略する。
(RAW動画像記録モードでの第2動作例)
図26(a),(b)は、第2動作例におけるRAW画像の色成分の並べ替えで生成される画像を示す図である。
第2動作例の場合、#102での画像変換部112は、RAW画像をG1,B,R,G2の4つの色成分に分離する。画像変換部112は、画素の並べ替えにより、それぞれ2つの色成分を含む第1画像および第2画像を1つのRAW画像から生成する。そして、#102での画像変換部112は、圧縮処理部113に動画像を出力するときに、第1画像と第2画像とを時間軸方向に交互に配列して1つのチャネルで出力する。
ここで、第2動作例での第1画像は、RAW画像のG1画素,B画素から生成される(図26(a))。この第1画像では、G1画素,B画素が水平方向に分離した状態で配置されている。第1画像の左側は、RAW画像での色配列の位置に応じてG1画素が配列され、G1成分のモノクロ画像を構成している。また、第1画像の右側は、RAW画像での色配列の位置に応じてB画素が配列され、B成分のモノクロ画像を構成している。
第2動作例での第2画像は、RAW画像のG2画素,R画素から生成される(図26(b))。この第2画像では、G2画素,R画素が水平方向に分離した状態で配置されている。第2画像の左側に、RAW画像での色配列の位置に応じてG2画素が配列され、G2成分のモノクロ画像を構成している。また、第2画像の右側は、RAW画像での色配列の位置に応じてR画素が配列され、R成分のモノクロ画像を構成している。なお、第2動作例での第1画像および第2画像の水平方向の画像サイズはRAW画像と同じであり、垂直方向の画像サイズはRAW画像の1/2である。
また、第2動作例の場合、#103での圧縮処理部113は、時間軸方向に交互に配列された第1画像および第2画像を画像間予測符号化圧縮し、圧縮された動画像のデータを生成する。第1画像および第2画像の左側部分の圧縮については、圧縮処理部113は、上述した第1動作例のG1画像およびG2画像の場合と同様に画像間予測符号化圧縮を行えばよい。なお、第1画像の右側部分および第2画像の右側部分は異なる色成分である。このため、圧縮処理部13の画像間予測符号化は、異なるフレームの第1画像の右側部分間、もしくは異なるフレームの第2画像の右側部分間、すなわち同じ色成分間では効率的に機能する。しかしながら、同じフレームの第1画像の右側部分と第2画像の右側部分との間、すなわち異なる色成分間では画面内符号化の圧縮とほぼ等価となる。
上述の第2動作例の場合、第1画像のG1成分と第2画像のG2成分の圧縮については、第1動作例でのG1画像およびG2画像の画像間予測符号化圧縮とほぼ同様の効果を得ることができる。
なお、第1画像および第2画像の水平方向の画像サイズをRAW画像と同じにし、第1画像および第2画像の垂直方向の画像サイズをRAW画像の1/2とした場合には、動画像の偶奇フィールドを交互に圧縮するフィールド間予測符号化圧縮に対応した圧縮処理装置で適用することが容易である。また、動画像の左右視点画像を圧縮する2視点間予測符号化圧縮に対応した圧縮処理装置でも適用することが容易である。
また、図27(a),(b)は、第2動作例の変形例1におけるRAW画像の色成分の並べ替えで生成される画像を示す図である。図27の例では、第2画像の右側にG2画素が配列され、第2画像の左側にR画素が配列されている点で、図26の例と相違する。
図27の場合、#103での圧縮処理部113は、第1画像と第2画像との間でG1,G2成分の動き補償予測をするときに、G1画素の領域とG2画素の領域との位置ズレを考慮してx方向にH/2分の位置補正を行えばよい。例えば、圧縮処理部113は、動きベクトルMVに[−H/2,0]のオフセットを付与すればよい。これにより、上述の図26の場合とほぼ同様の効果を得ることができる。
また、図28(a),(b)は、第2動作例の変形例2におけるRAW画像の色成分の並べ替えで生成される画像を示す図である。図28の例では、第1画像および第2画像の水平方向の画像サイズがRAW画像の1/2であり、垂直方向の画像サイズはRAW画像と同じである。そして、図28の第1画像では、G1画素,B画素が垂直方向に分離した状態で配置されている。第1画像の上側にはRAW画像での色配列の位置に応じてG1画素が配列され、第1画像の下側にはRAW画像での色配列の位置に応じてB画素が配列されている。また、図28の第2画像では、G2画素,R画素が垂直方向に分離した状態で配置されている。第2画像の上側にはRAW画像での色配列の位置に応じてG2画素が配列され、第2画像の下側にはRAW画像での色配列の位置に応じてR画素が配列されている。図28の例でも、上述の図26の場合とほぼ同様の効果を得ることができる。
(RAW動画像記録モードでの第3動作例)
図29(a),(b)は、第3動作例におけるRAW画像の色成分の並べ替えで生成される画像を示す図である。
第3動作例の場合、#102での画像変換部112は、RAW画像をG1,B,R,G2の4つの色成分に分離する。画像変換部112は、第1動作例と同様に、1つのRAW画像からG1画像,B画像,R画像,G2画像の4つの画像を生成する。そして、画像変換部112は、これらの画像をグループ化していわゆる4:4:4形式の動画像フレームを生成する。
図29の例では、画像変換部112は、第1フィールドのグループにG1画像,B画像,R画像を含める。また、画像変換部112は、第2フィールドのグループにG2画像と、4:4:4形式に合わせるためにB画像,R画像に対応するダミーデータとを含める。そして、画像変換部112は、上述の第1フィールドと第2フィールドとを時間軸方向に交互に配列して出力する。
第3動作例の場合、#103での圧縮処理部113は、第1フィールドのG1画像,B画像,R画像をそれぞれフレーム内圧縮する。また、圧縮処理部113は、上述した第1動作例と同様に、G1画像を参照して第2フィールドのG2画像を画像間予測符号化圧縮すればよい。
第2動作例の場合、第2画像の画像間予測符号化圧縮については、第1動作例の場合とほぼ同様の効果を得ることができる。なお、図29の構成によれば、第1フィールドのG1画像,B画像,R画像を復号すれば、第2フィールドを復号せずに簡易的に動画像を再生することができる。
また、図30(a),(b)は、第3動作例の変形例におけるRAW画像の色成分の並べ替えで生成される画像を示す図である。図30の例では、画像変換部112は、第1フィールドのグループにG1画像,B画像と、ダミーデータとを含める。また、画像変換部112は、第2フィールドのグループにG2画像,R画像と、ダミーデータとを含める。この図30の例においても、第2画像の画像間予測符号化圧縮については、第1動作例の場合とほぼ同様の効果を得ることができる。
(RAW動画像の復号動作例)
以下、図31の流れ図を参照しつつ、RAW動画像記録モードで圧縮されたRAW動画像の復号動作の例を説明する。なお、図31の処理は、画像処理エンジン104がプログラムを実行することで開始される。また、図31の例では、RAW動画像記録モードで生成された圧縮RAW動画像ファイルが記憶媒体110に記録されていることを前提とする。
ステップ#201:画像処理エンジン104は、上述のRAW動画像記録モードで生成された圧縮RAW動画像ファイルのうち、ヘッダ領域に含まれる付帯データを参照する。これにより、画像処理エンジン104は、元のRAW画像の画像サイズおよび色配列のパターン、画像変換部112による画像の並べ替えの方式(第1画像および第2画像の画素配列、画像サイズ)などの情報を取得する。
ステップ#202:画像処理エンジン104は、圧縮RAW動画像ファイルのうちで復号対象となる画像のデータを記憶媒体110から取得する。
ステップ#203:画像処理エンジン104は、#202で取得した画像の復号処理を行う。#203の復号処理は、RAW動画像記録モードにおける#103の圧縮符号化の逆処理である。
例えば、動き補償予測を用いて圧縮された画像は、復号された予測誤差値と参照画像の予測値との加算によってブロック単位で復号される。また、G1成分を含む第1画像とG2成分を含む第2画像との復号では、上述した画素補間処理や画素ずらし処理を適用して画像の復号が行われる。
ステップ#204:画像変換部112は、上述の付帯データから得た情報に基づいて、#203で復号された画像の並べ替えを行う。#204の並べ替え処理は、RAW動画像記録モードにおける#102の逆処理である。画像変換部112は、時間軸方向に交互に配列された第1画像と第2画像から1フレーム分のG1画素とG2画素を取得する。そして、画像変換部112は、G1,B,R,G2画素を並べ替えて、圧縮前のRAW画像の1フレームを復元する。なお、復元された圧縮前のRAW画像は、例えば記憶媒体110や電子カメラ100内のメモリに保持される。
ステップ#205:画像処理エンジン104は、圧縮RAW動画像ファイルの全フレームの復号が完了したか否かを判定する。
上記要件を満たす場合(YES側)には、画像処理エンジン104は図32の流れ図の処理を終了する。RAW画像はベイヤ配列に従って各色成分がモザイク状に配置された状態にあるため、動画像を再生する場合にはユーザはRAW画像に現像処理を施す必要がある。なお、RAW動画像の場合、撮影後にユーザが現像処理を自由に行うことができるので、画像表現の自由度が大きく向上する。
一方、上記要件を満たさない場合(NO側)には#202に戻って、画像処理エンジン104は上記動作を繰り返す。#201から#205のNO側のループにより、圧縮前のRAW動画像の各フレームが順次復元されることとなる。以上で、図31の説明を終了する。
<第2実施形態の説明>
図32は、第2実施形態での動画像復号装置の構成例を示す図である。第2実施形態での動画像復号装置は、上述の圧縮RAW動画像ファイルを復号するプログラムがインストールされたコンピュータである。
図32に示すコンピュータ201は、データ読込部202、記憶装置203、CPU204、メモリ205および入出力I/F206、バス207を有している。データ読込部202、記憶装置203、CPU204、メモリ205および入出力I/F206は、バス207を介して相互に接続されている。さらに、コンピュータ201には、入出力I/F206を介して、入力デバイス208(キーボード、ポインティングデバイスなど)とモニタ209とがそれぞれ接続されている。なお、入出力I/F206は、入力デバイス208からの各種入力を受け付けるとともに、モニタ209に対して表示用のデータを出力する。
データ読込部202は、上述の圧縮RAW動画像ファイルのデータや、プログラムを外部から読み込むときに用いられる。データ読込部202は、例えば、着脱可能な記憶媒体からデータを取得する読込デバイス(光ディスク、磁気ディスク、光磁気ディスクの読込装置など)や、公知の通信規格に準拠して外部の装置と通信を行う通信デバイス(USBインターフェース、LANモジュール、無線LANモジュールなど)である。
記憶装置203は、例えば、ハードディスクや、不揮発性の半導体メモリなどの記憶媒体である。この記憶装置203には、上述のプログラムや、プログラムの実行に必要となる各種データが記憶されている。なお、記憶装置203には、データ読込部202から読み込んだ圧縮RAW動画像ファイルのデータなどを記憶しておくこともできる。
CPU204は、コンピュータ201の各部を統括的に制御するプロセッサである。このCPU204は、プログラムの実行によって、第1実施形態の現像処理部111、画像変換部112、復号処理部114として機能する。
メモリ205は、プログラムでの各種演算結果を一時的に記憶する。このメモリ205は、例えば揮発性のSDRAMである。
ここで、第2実施形態での動画像復号装置では、データ読込部202または記憶装置203から圧縮RAW動画像ファイルを取得し、CPU204が図31の流れ図の各処理を実行する。かかる第2実施形態においても、第1実施形態におけるRAW動画像の復号動作例とほぼ同様の効果を得ることができる。
<実施形態の補足事項>
(補足1):上述の実施形態で圧縮符号化を行うときに、B画素値,R画素値は、対応する色配列でのG画素値との差分値に置き換えてもよい。
(補足2):また、上述の実施形態において、ISO/IEC14496−10に規定する、一般にAVC(Advanced Video Coding)と呼ばれる方式に基づき動画像を符号化してもよく、少なくともフィールド間予測符号化、もしくは2視点間予測符号化に相当する動き補償予測を含む他の符号化方式に基づき動画像を符号化してもよい。
(補足3):さらに、動画圧縮する動画像の各フレームの画像信号は、撮像素子の出力階調を保持する画像信号でもよいし、より少ない階調に変換した、すなわち量子化した画像信号でもよい。
例えば、撮像素子の出力がサンプル当たり14bitの画像信号を、一様量子化や、低値の量子化誤差が小さな重み付け量子化により、サンプル当たり10bitの画像信号に変換した後に、動画像圧縮装置が動画圧縮してもよい。動画像圧縮装置は、予め定めた特性により量子化してもよいし、画像仕様や画像内容に応じて決定した特性により量子化してもよい。
一方、動画像復号装置は、圧縮した動画像のデータの復号後に、動画圧縮前の量子化特性に基づいた逆量子化をすることで、圧縮前の画像信号を復元すればよい。なお、上述した動画圧縮前の量子化特性を示す情報は、例えば、動画像のデータに付随して動画像圧縮装置が画像ファイルのヘッダ領域等に記録するか、もしくは、圧縮した動画像のデータに付随させて動画像圧縮装置が後段の装置に伝送すればよい。例えば、上記の場合には、量子化特性を示す情報として、予め定めた標準の量子化特性か否かを示す符号、予め定めた複数の量子化特性の1つを示す符号、復号に用いる逆量子化入出力特性を示すテーブル情報等を、それぞれ記録または伝送すればよい。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図する。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物によることも可能である。