[第1実施形態]
図1は、一の実施形態に係る映像処理装置100の構成を示すブロック図である。映像処理装置100は、変更部110と、算出部120と、合成部130とを含んで構成される。映像処理装置100は、必要に応じて、他の構成要素を含んでもよい。
映像処理装置100は、入力された映像に映像処理を実行し、実行後の映像を出力する。ここでいう映像は、時間的に連続する複数のフレームの画像(以下「フレーム画像」ともいう。)によって構成される。フレーム画像は、デジタル画像であり、複数の画素によって構成される。本実施形態において、フレーム画像は、モノクロ画像であってもカラー画像であってもよい。映像処理装置100に入力される映像は、ビデオカメラ等で撮影された映像であってもよいが、アニメーション映像であってもよい。映像処理装置100の構成要素は、ソフトウェアを用いて実現されてもよい。
変更部110は、フレーム画像の画素値を変更する。ここでいう画素値は、輝度又は彩度と相関を有する。より詳細には、画素値は、画素の輝度又は彩度そのものを表す値と、画素の輝度又は彩度を算出可能な値とを含み得る。例えば、画素値は、所定の表色系を用いて記述された画素の階調値であってもよい。
変更部110は、時間的に連続する複数のフレーム画像のうち、画素値が前後のフレーム画像に対して所定のレベル以上異なる領域を含むフレーム画像の画素値を変更する。画素値が前後のフレーム画像に対して所定のレベル以上異なる領域は、再生される映像において瞬時的に明るく(又は暗く)なるか明滅する領域であるともいえる。以下においては、説明の便宜上、この領域のことを「明滅領域」ともいう。明滅領域は、フレーム画像の一部又は全体のいずれであってもよい。
明滅領域を含むフレーム画像、すなわち変更部110により画素値が変更されるフレーム画像のことを、以下においては「第1のフレーム画像」ともいう。一方、明滅領域を含まないフレーム画像のことを、以下においては「第2のフレーム画像」ともいう。
変更部110は、時間的に連続する複数のフレーム画像のうち、第1のフレーム画像と、1以上の第2のフレーム画像とに基づいて、第1のフレーム画像の画素値を変更してもよい。例えば、変更部110は、第1のフレーム画像の画素値を、当該画素値と、1又は複数の第2のフレーム画像の画素値に応じて定められる値との範囲内において変更してもよい。
第1のフレーム画像は、一連の映像の中に複数存在し得る。変更部110は、フレーム画像が第1のフレーム画像に相当するかを当該フレーム画像の画素値に基づいて判定してもよい。あるいは、フレーム画像が第1のフレーム画像であるか否かは、変更部110よりも前段にある構成要素によってあらかじめ判定されてもよい。
変更部110は、明滅領域の明滅を緩和させるように第1のフレーム画像の画素値を変更する。ある態様において、変更部110は、第1のフレーム画像と当該フレーム画像の前後の第2のフレーム画像との輝度又は彩度の差が変更前より小さくなるように第1のフレーム画像の画素値を変更する。なお、ここでいう第1のフレーム画像の前後の第2のフレーム画像は、当該第1のフレーム画像の直前又は直後の第2のフレーム画像のみに限定されない。また、別の態様において、変更部110は、第1のフレーム画像の画素値を所定の割合(又は所定値)だけ減少させてもよい。
変更部110は、第1のフレーム画像の一部の画素の画素値を変更してもよいし、第1のフレーム画像の全部の画素の画素値を変更してもよい。また、画素値の変更量(すなわち変更前後の差分)は、あらかじめ決められていてもよいし、画素毎又は所定の領域毎に異なってもよい。例えば、変更部110は、第1のフレーム画像の特定の位置の画素の画素値を、当該フレーム画像の前後の第2のフレーム画像における同一の位置の画素の画素値との差分に応じた変更量で変更してもよい。
算出部120は、第2のフレーム画像と変更部110により画素値が変更された第1のフレーム画像との合成率を算出する。合成率は、例えば、0以上1以下の数値である。この場合、合成率が「1」であることは、第1のフレーム画像の画素に対して第2のフレーム画像の対応する画素を合成しないことを意味する。また、合成率が「0」であることは、第1のフレーム画像の画素を第2のフレーム画像の対応する画素に置き換えることを意味する。
算出部120は、第2のフレーム画像と変更後の第1のフレーム画像との画素値の差に基づいて合成率を算出する。例えば、算出部120は、変更後の第1のフレーム画像と第2のフレーム画像との画素値の差が大きい場合には合成率を大きくし、その差が小さい場合には合成率を小さくする。
算出部120は、1つの第1のフレーム画像に対して1つの合成率を算出してもよい。この場合、合成部130は、第1のフレーム画像の全画素に対して同一の合成率を適用する。一方、算出部120は、第1のフレーム画像に対して定義される所定の領域毎に合成率を算出してもよい。
合成部130は、第2のフレーム画像と変更後の第1のフレーム画像とを算出部120により算出された合成率を用いて合成する。合成部130は、合成後のフレーム画像を第1のフレーム画像に相当するフレーム画像として出力する。すなわち、映像処理装置100は、第1のフレーム画像に対して、画素値の変更と、第2のフレーム画像との合成とを含む映像処理を実行することによって第1のフレーム画像を補正する。
なお、合成部130による合成は、第1のフレーム画像の画素値の変更と言い換えることができる。すなわち、合成部130は、変更部110により変更された第1のフレーム画像の画素値を再度変更するための構成要素であるともいえる。したがって、映像処理装置100は、第1のフレーム画像の画素値を2段階の異なる手法で変更しているともいえる。
図2は、映像処理装置100が実行する処理を示すフローチャートである。なお、映像処理装置100は、図2に示される処理を逐次的に(すなわち、先のフレーム画像から後のフレーム画像へと順に)実行してもよいし、複数のフレーム画像に対して並列に実行してもよい。
ステップS11において、変更部110は、時間的に連続する複数のフレーム画像のうち、第1のフレーム画像の画素値を変更する。変更部110は、複数のフレーム画像のうちの第2のフレーム画像については、画素値を変更しなくてよい。
ステップS12において、算出部120は、合成率を算出する。具体的には、算出部120は、ステップS11において変更された第1のフレーム画像の画素値と、第1のフレーム画像の前後の第2のフレーム画像の画素値の差に基づいて合成率を算出する。
ステップS13において、合成部130は、第2のフレーム画像とステップS11において画素値が変更された第1のフレーム画像とを合成する。具体的には、合成部130は、第2のフレーム画像の画素値とステップS11において画素値が変更された第1のフレーム画像の画素値とを、ステップS12において算出された合成率を用いて合成する。
以上のとおり、本実施形態の映像処理装置100は、変更部110によって一旦変更された第1のフレーム画像の画素値を、合成部130による合成によってさらに変更する構成を有する。この構成は、変更部110による変更によって輝度又は彩度の変化が抑制された第1のフレーム画像に対して第2のフレーム画像の色情報を反映させることを可能にする。したがって、このような構成を有する映像処理装置100は、当該構成を有しない場合に比べ、明滅する映像をより自然な映像になるように補正することが可能である。
例えば、カメラのフラッシュのような強い光が照射された被写体の映像は、その被写体本来の色情報(色調、階調など)が失われる可能性がある。色情報が失われる現象は、一般的には白飛びともいう。また、色情報は、被写体が明るい場合だけでなく、被写体が暗い場合にも失われる可能性がある。
明滅により被写体の色情報が失われた映像は、その明滅を緩和する補正が実行されただけでは、色情報の正確な再現(復元)を行うことができない。したがって、このような補正が行われただけの映像は、色調や階調が不自然な映像になりがちである。
一方、明滅を緩和する補正が実行されたフレーム画像に対し、明滅領域を含まないフレーム画像(すなわち色情報が失われていないフレーム画像)との合成が行われると、失われた色情報を明滅領域が含まれないフレーム画像から取得することが可能である。
したがって、映像処理装置100は、合成部130による合成が行われない場合に比べ、明滅領域の色調や階調がより自然に知覚される映像を出力することが可能である。すなわち、映像処理装置100は、明滅する映像を自然な映像になるように補正することを可能にする。
[第2実施形態]
図3は、別の実施形態に係る映像処理システム200の構成を示すブロック図である。映像処理システム200は、入力部210と、映像処理部220と、出力部230とを含んで構成される。映像処理システム200は、複数の装置の組み合わせであってもよいが、単一の装置であってもよい。
なお、以降の説明において、既出の実施形態に記載された用語と同一の用語は、特に定義又は説明がある場合を除き、既出の実施形態と同様の意味で用いられる。また、以降の説明において、既出の実施形態で用いられた符号を付された構成要素は、既に同一の符号が付されて説明された構成要素と同様の構成を少なくとも有する。
入力部210は、映像処理部220の入力側に接続され、映像処理部220に映像データを供給する。入力部210は、ビデオカメラなどの撮影装置、他の装置から映像データを受信する通信装置、映像データを記憶する記憶装置などを含み得る。映像データは、あらかじめ生成されていてもよく、リアルタイムに生成されてもよい。
映像データは、複数のフレーム画像を含むデータである。映像データのフレームレートは、特定の値に限定されない。映像データに含まれる個々のフレーム画像に相当するデータのことを、以下においては「フレームデータ」という。本実施形態のフレーム画像は、カラー画像であるとする。
なお、入力部210は、映像処理部220に映像データを供給する前に、映像データに対して周知の映像処理を実行してもよい。例えば、入力部210は、オリジナルの映像データに対してガンマ補正を実行した映像データを映像処理部220に供給するように構成されてもよい。
映像処理部220は、明滅する映像を自然な映像になるように補正する映像処理を実行する。映像処理部220は、第1実施形態の映像処理装置100の一例に相当する。映像処理部220は、入力部210により入力された映像データに対して映像処理を実行し、実行後の映像データを出力部230に供給する。
出力部230は、映像処理部220により映像処理が実行された映像データを出力する。ここでいう出力は、映像の表示(再生)、送信、記録などを含み得る。例えば、出力部は、テレビジョン装置やプロジェクタといった表示装置、映像データを他の装置に送信する通信装置、映像データを記憶媒体に記録する記録装置などを含み得る。
図4は、映像処理部220のより詳細な構成を示すブロック図である。映像処理部220は、判定部221と、変更部222と、算出部223と、合成部224とを含んで構成される。
判定部221は、映像処理部220に入力された映像データに含まれるフレーム画像が明滅領域を含むか判定する。判定部221は、所定数のフレーム画像に基づいて、当該所定数のフレーム画像に含まれる特定のフレーム画像が明滅領域を含むか判定する。
本実施形態において、判定部221は、特定のフレーム画像がその前後のフレーム画像に比して所定のレベル以上明るい領域を含むか判定する。このような領域のことを、以下においては「明領域」ともいう。明領域は、第1実施形態における明滅領域の一例に相当する。また、判定部221により明領域を含むと判定されたフレーム画像のことを、以下においては「フラッシュフレーム」ともいう。フラッシュフレームは、第1実施形態の第1のフレーム画像の一例に相当する。
判定部221は、時刻tにおけるフレーム画像がフラッシュフレームであるかを、時刻(t−m)から時刻(t+n)までの(m+n+1)フレーム分のフレーム画像を用いて判定することができる。ここにおいて、m及びnは、1以上の整数である。また、mとnは同値であってもよい。
なお、以下においては、時刻(t−m)から時刻(t+n)までの(m+n+1)フレームのうち時刻tのフレームを除いたフレームのことを、時刻tのフレームに対する「近接フレーム」ともいう。また、説明の便宜上、近接フレームのフレーム画像のことを「近接フレーム画像」ともいう。近接フレーム画像は、第1実施形態の第2のフレーム画像の一例に相当し得る。
本実施形態において、判定部221は、局所領域輝度を用いて判定を実行する。ここにおいて、局所領域輝度とは、フレーム画像を構成するある画素と当該画素の周辺の画素の輝度値の平均値をいう。局所領域輝度は、フレーム画像を構成する画素のそれぞれについて算出される。
例えば、画素値がRGB表色系で記述された色情報である場合、判定部221は、各画素の色情報を輝度値に変換する。判定部221は、ある画素と当該ある画素の周辺の画素とに対して平滑化処理を実行することによって、当該ある画素の局所領域輝度を算出する。局所領域輝度の算出方法は、以下に例示されるように、複数の方法が考えられる。
ここでいう輝度値は、例えば、YUV表色系(YCbCr表色系又はTPbPr表色系でもよい。)におけるY値、XYZ表色系におけるY刺激値、Lab表色系におけるL値、HSV表色系におけるV値のいずれであってもよい。また、判定部221は、映像データにガンマ補正などの変換処理があらかじめ実行されている場合には、当該変換処理の逆変換処理を実行してから輝度値を算出してもよい。
ここで、フレーム画像の各画素を、2次元直交座標系の座標x、yによって表すものとする。判定部221は、位置(x,y)の画素の局所領域輝度lt(x,y)を、次の式(1)によって算出することができる。ここにおいて、Yt(x+i,y+j)は、位置(x+i,y+j)の画素の輝度値を表す。また、p及びqは、適当な値があらかじめ定められればよい。式(1)が示す局所領域輝度lt(x,y)は、具体的には、位置(x,y)の画素の上下それぞれのp画素と左右それぞれのq画素の輝度値の平均値である。
あるいは、判定部221は、次の式(2)によって局所領域輝度lt(x,y)を算出してもよい。ここにおいて、w(i,j)は、位置(i,j)の画素にあらかじめ設定された重みを表す。すなわち、式(2)による局所領域輝度lt(x,y)は、位置(x,y)の画素とその周辺の画素の輝度値の重み付き平均である。なお、w(i,j)は、画素の位置に応じて異なり得る。
重みw(i,j)は、ガウシアン重みであってもよいが、他の重みが設定されてもよい。例えば、判定部221は、次の式(3)によって重みw(i,j)を算出してもよい。ここにおいて、σは、あらかじめ設定されたパラメータである。
判定部221は、このように算出された局所領域輝度の変化率を算出する。局所領域輝度の変化率とは、判定対象のフレーム画像のある画素の局所領域輝度と、当該フレーム画像と比較される他のフレーム画像(近接フレーム画像)における同一の位置の画素の局所領域輝度との変化の比率をいう。例えば、時刻tのフレーム画像の位置(x,y)の画素と時刻(t+k)のフレーム画像の位置(x,y)の画素との局所領域輝度の変化率をrt-(t+k)(x,y)とした場合、判定部221は、次の式(4)によって変化率rt-(t+k)(x,y)を算出することができる。この変化率rt-(t+k)(x,y)は、判定対象のフレーム画像の画素の局所領域輝度の方が比較対象のフレーム画像の画素の局所領域輝度よりも高い場合に正であり、そうでない場合に負(又は0)である。なお、kは、−m≦k≦nを満たす。
判定部221は、局所領域輝度の変化率に基づいて明領域を判定する。具体的には、判定部221は、局所領域輝度の変化率が所定の(正の)閾値以上である領域を明領域であると判定する。なお、ここでいう領域は、1以上の画素により構成され得る。
判定部221は、局所領域輝度の変化率に関する閾値に加え、変化率が当該閾値以上である領域の面積に関する閾値を用いて明領域を判定してもよい。例えば、判定部221は、局所領域輝度の変化率が第1の閾値α以上である領域の面積率が第2の閾値β以上である場合に、当該領域を明領域であると判定してもよい。ここでいう面積率は、フレーム画像の総面積に対する局所領域輝度の変化率が第1の閾値α以上である領域の面積の比率をいう。
例えば、NHK及び民放連により制定された上述のガイドラインは、避けるべき点滅映像の判断基準を「点滅が同時に起こる面積が画面の1/4を超え、かつ、輝度変化が10パーセント以上の場合」としている。この判断基準に従う場合、上述の閾値α、βは、それぞれα=0.1、β=0.25である。
判定部221は、局所領域輝度の変化率が所定の基準を満たす近接フレーム画像が近接フレーム中に1つでもあれば、判定対象のフレーム画像をフラッシュフレームであると判定してもよい。また、判定部221は、局所領域輝度の変化率が所定の基準を満たす近接フレーム画像が所定数以上ある場合に、判定対象のフレーム画像をフラッシュフレームであると判定してもよい。あるいは、判定部221は、局所領域輝度の変化率が所定の基準を満たす近接フレーム画像が判定対象のフレーム画像の前後それぞれに1以上ある場合に当該フレーム画像をフラッシュフレームであると判定してもよい。
判定部221は、局所領域輝度の比較結果を表すデータを生成してもよい。あるフレーム画像がフラッシュフレームであると判定された場合、当該フラッシュフレームに対応する(n+m)フレーム分の近接フレーム画像の中には、当該フラッシュフレームの明領域との局所領域輝度の差が閾値以上になるものとそうでないものとが存在する。
図5は、局所領域輝度の比較結果を表すデータの一例を説明するための図である。この例において、局所領域輝度の比較結果を表すデータは、「判定フラグ」という。判定フラグは、フラッシュフレームの明領域における局所領域輝度と近接フレーム画像における同一の位置の領域における局所領域輝度との差が所定の閾値以上である場合には「1」を示し、そうでない場合には「0」を示すフラグである。
図5の例において、時刻t−1、t、t+2におけるフレーム画像は、いずれも明領域を含むフレーム画像であるとする。また、時刻t−1、t+2における近接フレーム画像は、時刻tにおけるフレーム画像(フラッシュフレーム)の明領域に相当する領域の局所領域輝度と当該フラッシュフレームの明領域の局所領域輝度との差が所定の閾値未満であるとする。この場合、時刻t−1、t+2における近接フレーム画像に対して割り当てられる判定フラグは、いずれも「0」である。
一方、時刻t−2、t+1における近接フレーム画像は、時刻tのフラッシュフレームの明領域に相当する領域の局所領域輝度と当該フラッシュフレームの明領域の局所領域輝度との差が所定の閾値以上であるとする。この場合、これらの近接フレーム画像は、フラッシュフレームにおいて明領域であると判定された領域と同一の位置が明領域ではなくなっている。このような近接フレーム画像に対して割り当てられる判定フラグは、いずれも「1」である。
変更部222は、判定部221により明領域を含むと判定されたフレーム画像、すなわちフラッシュフレームの画素値を変更する。変更部222は、フラッシュフレームの画素値を近接フレーム画像の画素値に基づいて変更する。変更部222により画素値が変更されたフレーム画像のことを、以下においては「補正フレーム画像」ともいう。
変更部222は、フラッシュフレームの画素値の変更に用いる近接フレーム画像を選択する。このとき、変更部222は、1又は複数の近接フレーム画像を選択する。なお、変更部222により選択される近接フレーム画像は、判定部221においてフラッシュフレームの判定に用いられた近接フレーム画像と同一のフレーム画像である必要はない。例えば、変更部222により選択される近接フレーム画像は、明領域を含まない近接フレーム画像のいずれかであってもよい。変更部222によりこのとき選択される近接フレーム画像は、第1実施形態の第2のフレーム画像の一例に相当する。
変更部222は、近接フレーム画像の選択に判定フラグを用いてもよい。例えば、変更部222は、判定フラグが「1」である近接フレーム画像のうち、時刻tのフラッシュフレームに最も近い(時間差が最も少ない)近接フレーム画像を選択する。また、変更部222は、判定フラグが「1」である時刻tより前の近接フレーム画像のうち時刻tに最も近い近接フレーム画像と、判定フラグが「1」である時刻tより後の近接フレーム画像のうち時刻tに最も近い近接フレーム画像とを1つずつ選択してもよい。
図6A〜図6Dは、近接フレーム画像の選択例を説明するための図である。これらの図において、判定フラグが「1」である近接フレーム画像には、ハッチングが付されている。また、判定フラグが「0」である近接フレーム画像には、ハッチングが付されていない。
図6Aの例において、1つの近接フレーム画像を選択する場合、変更部222は、時刻t−1、t+1の一方の近接フレーム画像を選択する。一方、この例において、時刻tの前後から近接フレーム画像を1つずつ選択する場合、変更部222は、時刻t−1、t+1の双方の近接フレーム画像を選択する。
図6Bの例において、1つの近接フレーム画像を選択する場合、変更部222は、時刻t+1の近接フレーム画像を選択する。一方、この例において、時刻tの前後から近接フレーム画像を1つずつ選択する場合、変更部222は、時刻t−2、t+1の近接フレーム画像を選択する。
図6Cの例において、1つの近接フレーム画像を選択する場合、変更部222は、時刻t+1の近接フレーム画像を選択する。一方、この例において、時刻tの前後から近接フレーム画像を1つずつ選択する場合、変更部222は、時刻t−2、t+1の近接フレーム画像を選択する。
図6Dの例において、1つの近接フレーム画像を選択する場合、変更部222は、時刻t−2、t+2の一方の近接フレーム画像を選択する。一方、この例において、時刻tの前後から近接フレーム画像を1つずつ選択する場合、変更部222は、時刻t−2、t+2の双方の近接フレーム画像を選択する。
なお、変更部222は、他の方法によって近接フレーム画像を選択してもよい。例えば、変更部222は、上述の例よりも多くの近接フレーム画像を選択してもよい。また、変更部222は、時刻tの前後を問わず、判定フラグが「1」である近接フレーム画像のうち、時刻tのフレームに近い順に所定数のフレーム分の近接フレーム画像を選択してもよい。
また、変更部222が選択する近接フレーム画像の数は、特に限定されない。例えば、選択される近接フレーム画像の数は、被写体又はカメラの単位時間当たりの動きに応じて決められてもよい。具体的には、変更部222は、被写体又はカメラの単位時間当たりの動きが大きい(すなわち、高速移動している)ほど、選択される近接フレーム画像の数を少なくしてもよい。
変更部222は、選択された近接フレーム画像に基づいてフラッシュフレームの画素値を変更する。本実施形態において、変更部222は、上述された局所領域輝度の変化率を用いてフラッシュフレームの画素値を変更する。具体的には、変更部222は、次の式(5)を用いて、局所領域輝度lt(x,y)をlt’(x,y)に変更する。ここにおいて、r(x,y)は、選択された1又は複数の近接フレーム画像とフラッシュフレームの各画素について算出される局所領域輝度の変化率を表す。r(x,y)は、近接フレーム画像が複数選択された場合には、複数の近接フレーム画像の局所領域輝度の平均値に基づいて算出されてもよい。また、r’(x,y)は、r’(x,y)<r(x,y)を満たす。変更部222は、フラッシュフレームを構成する全ての画素についてこの変換を実行する。
式(5)において、r’(x,y)は、変化率rに応じた関数によって決められてもよい。例えば、r’(x,y)は、変化率rが大きくなるほど値が小さくなる線形関数によって決められてもよい。
図7は、r’(x,y)/r(x,y)、すなわち輝度値の変更率に対応する関数の一例を示す図である。この例において、r’(x,y)/r(x,y)は、r(x,y)<r1、r(x,y)>r2において一定の値c1、c2をとる。値c1は0以上であり、値c2は1以下である。このようにすることで、白飛びした領域や黒潰れした領域の補正量を少なくし、全体として自然な画像に補正することが可能である。
あるいは、変更部222は、任意の輝度変換関数を設定し、色情報が既知の対象について光源の色温度や照度を変えて撮影した際の輝度変化に基づいて、輝度変換関数のパラメータをあらかじめ学習し、輝度変換関数の逆関数を用いてもよい。
また、変更部222は、r’(x,y)の上限及び下限を次のように設定してもよい。例えば、r’(x,y)の下限は、時刻(t+k)の近接フレーム画像の局所領域輝度lt+k(x,y)を基準に定めた値、例えばlt+k(x,y)+Xであってもよい(Xは所定の定数)。r’(x,y)の上限も、下限と同様に設定されればよい。あるいは、変更部222は、局所領域輝度の変化率r(x,y)が所定の輝度変化量の範囲内である場合のみに画素値を変更する処理を実行してもよい。
算出部223は、変更部222による処理結果に基づいて合成率を算出する。以下においては、算出部223により算出された合成率をWとする。例えば、算出部223は、局所領域輝度の変化率r(x,y)に基づいて合成率Wを算出してもよい。ただし、ここで用いられる局所領域輝度は、補正フレーム画像の局所領域輝度、すなわち変更部222による変更後の画素値に基づいて算出される局所領域輝度である。つまり、ここで用いられる局所領域輝度の変化率は、補正フレーム画像のある画素の局所領域輝度と、当該補正フレーム画像に対応する近接フレーム画像における同一の位置の画素の局所領域輝度との変化の比率を表す。
具体的には、算出部223は、局所領域輝度の変化率r(x,y)が大きい画素ほど近接フレーム画素(第2のフレーム画像)の輝度値(又は画素値)に近付くように合成率Wを設定する。換言すれば、算出部223は、局所領域輝度の変化率r(x,y)が大きい画素に対して近接フレーム画像の寄与を大きくする。また、算出部223は、式(5)におけるr’(x,y)/r(x,y)に基づいて合成率Wを算出してもよい。
合成率Wは、局所領域輝度の変化率r(x,y)がある一定の範囲内の数値である場合に一定値(0を含む。)としてもよい。また、合成率Wは、r’(x,y)/r(x,y)を所定の係数倍した値であってもよい。
算出部223は、1又は複数の画素単位で合成率Wを算出する。例えば、算出部223は、所定数の画素毎、換言すれば所定サイズの領域毎に合成率Wを算出してもよい。この場合、算出部223は、所定数の画素の局所領域輝度の変化率r(x,y)を平均するなどして合成率Wを算出する。
合成部224は、算出部223により算出された合成率Wに基づいて補正フレーム画像と近接フレーム画像(第2のフレーム画像)とを合成する。例えば、合成部224は、補正フレーム画像のある画素の画素値と近接フレーム画像における同一の位置の画素の画素値とを合成率Wに応じた比率で合成する。また、第2のフレーム画像に相当する近接フレーム画像が複数ある場合、合成部224は、これら複数の近接フレーム画像の画素値の平均値に基づいて合成を実行してもよい。
例えば、合成率Wが0以上1以下の数値である場合、合成部224は、補正フレーム画像のある画素の画素値をW倍した値と、近接フレーム画像における同一の位置の画素の画素値を(1−W)倍した値とを加算した値を合成後の画素値として出力する。合成部224は、このような計算を画素毎又は所定サイズの領域毎に実行する。
図8は、映像処理システム200が実行する処理を示すフローチャートである。なお、映像処理システム200は、第1実施形態の映像処理装置100と同様に、図8に示される処理を逐次的に実行してもよいし、複数のフレーム画像に対して並列に実行してもよい。
ステップS21において、入力部210は、映像データを映像処理部220に入力する。映像処理部220は、所定のタイミングでステップS21以降の処理を実行する。例えば、映像処理部220は、ステップS21以降の処理が実行可能な所定フレーム分のフレーム画像データが入力されたタイミングでステップS21の処理を開始してもよい。あるいは、映像処理部220は、映像データの全部が入力されてからステップS21の処理を開始してもよい。
ステップS22において、映像処理部220は、フレーム画像がフラッシュフレームであるかを判定部221において判定する。判定部221は、映像データを構成する各フレーム画像について、この判定を実行する。映像処理部220は、ステップS22における判定結果に応じて異なる処理を実行する。
具体的には、映像処理部220は、フラッシュフレームであると判定されたフレーム画像に対して、ステップS23〜S25の処理を実行する(ステップS22:YES)。一方、映像処理部220は、フラッシュフレームであると判定されなかったフレーム画像に対しては、ステップS23〜S25の処理を実行しない(ステップS22:NO)。換言すれば、映像処理部220は、特定のフレーム画像に対して選択的にステップS23〜S25の処理を実行する。
ステップS23において、映像処理部220は、フラッシュフレームの画素値を変更部222において変更する。変更部222は、フラッシュフレームの画素値を当該フラッシュフレームに対応する近接フレーム画像の画素値に基づいて変更する。
ステップS24において、映像処理部220は、合成率を算出部223において算出する。算出部223は、ステップS23において変更されたフレーム画像、すなわち補正フレーム画像の画素値と、当該フラッシュフレームに対応して選択された近接フレーム画像の画素値との差に基づいて合成率を算出する。
ステップS25において、映像処理部220は、補正フレーム画像と近接フレーム画像とを合成部224において合成する。合成部224は、ステップS24において算出された合成率を用いて各画素の画素値を算出し、算出された画素値を出力する。以下においては、合成後のフレーム画像のことを「合成フレーム画像」という。
ステップS26において、出力部230は、映像データを出力する。出力部230は、入力部210により入力された映像データにフラッシュフレームが含まれていた場合、補正された映像データ、すなわち合成フレーム画像を含む映像データを出力する。一方、出力部230は、入力部210により入力された映像データにフラッシュフレームが含まれていなかった場合、入力された映像データをそのまま補正せずに出力する。
以上のとおり、本実施形態の映像処理システム200は、変更部222によって一旦変更されたフレーム画像(フラッシュフレーム)の画素値を、合成部224による合成によってさらに変更する構成を有する。したがって、映像処理システム200は、第1実施形態の映像処理装置100と同様の作用効果を奏することが可能である。
また、本実施形態の映像処理システム200は、局所領域輝度の変化率を算出し、これに基づいてフレーム画像の画素値を変更する構成を有する。このような構成は、当該構成を有しない場合(例えば、フレーム画像全体を一律の合成率で合成する場合)に比べ、より微細な領域単位での合成を実行することを可能にする。
[第3実施形態]
本実施形態は、第2実施形態と同様の構成の映像処理システム200を用いる実施形態である。ただし、本実施形態は、映像処理システム200が実行する一部の処理が第2実施形態と相違する。本実施形態の説明は、第2実施形態と相違する部分について詳述され、第2実施形態と共通する部分については適宜省略される。
本実施形態の映像処理システム200は、局所領域輝度に代えて矩形領域の輝度を用いる点において第2実施形態と相違する。ここにおいて、矩形領域とは、フレーム画像に対して定義される所定サイズの領域をいう。矩形領域は、例えば、フレーム画像を縦方向及び横方向に一定の間隔で分割した正方形又は長方形の領域である。
図9は、矩形領域の一例を示す図である。図9の例において、矩形領域は、フレーム画像を縦方向及び横方向にそれぞれ10等分した領域である。本実施形態の判定部221は、局所領域輝度の変化率に代えて、このような矩形領域の輝度に基づいてフラッシュフレームを判定する。具体的には、判定部221は、ある矩形領域に含まれる各画素の輝度の平均値(又は他の代表値)を矩形領域の輝度とする。また、判定部221は、矩形領域の輝度を判定対象のフレーム画像とその近接フレーム画像とについて算出し、それぞれの変化率を算出する。
判定部221は、式(4)に代えて次の式(6)を用いて変化率Rt-(t+k)(i,j)を算出する。ここにおいて、Lt(i,j)は、時刻tにおける矩形領域(i,j)の輝度を表す。また、iは、最大値がxの約数である1以上の値であり、jは最大値がyの約数である1以上の値である。図9の例の場合、iの最大値はx/10であり、jの最大値はy/10である。
判定部221は、このように算出された変化率に基づき、第2実施形態と同様の要領でフレーム画像がフラッシュフレームであるか判定する。例えば、判定部221は、フレーム画像がフラッシュフレームであるかを矩形領域の変化率に基づいて判定してもよい。判定部221は、1以上(又は所定数以上)の矩形領域が明領域である場合に、フレーム画像がフラッシュフレームであると判定する。
本実施形態の変更部222は、矩形領域の輝度の変化率を用いてフラッシュフレームの画素値を変更する。具体的には、変更部222は、式(5)に代えて次の式(7)を用いて矩形領域の輝度lt(x,y)をlt’(x,y)に変更する。ここにおいて、R(i,j)は、位置(x,y)が属する矩形領域(i,j)について算出される輝度の変化率を表す。また、R’(i,j)は、r’(x,y)と同様に、R’(i,j)<R(i,j)を満たす。
また、変更部222は、1つのフレーム画像に含まれる複数の矩形領域を用いて輝度値の変更率R’(i,j)/R(i,j)を算出してもよい。
図10は、輝度値の変更方法の他の例を示す図である。ここにおいて、変化率がR(i,j)である矩形領域に属する画素(x,y)の輝度をlt(x,y)とする。また、画素(x,y)と変化率がR(i,j)である矩形領域の中心との距離をd1、画素(x,y)と変化率がR(i,j−1)である矩形領域の中心との距離をd2、画素(x,y)と変化率がR(i+1,j)である矩形領域の中心との距離をd3、画素(x,y)と変化率がR(i+1,j−1)である矩形領域の中心との距離をd4とする(ただし、d4>d3>d2>d1)。このとき、変更部222は、輝度lt(x,y)の変更量を各矩形領域の中心との距離の比率に応じて算出してもよい。例えば、変更部222は、それぞれの矩形領域の変化率を1/d4:1/d3:1/d2:1/d1の比率で重み付け加算することによってR’(i,j)を算出することができる。あるいは、変更部222は、バイキュービック補間などの周知の補間アルゴリズムを用いてR’(i,j)を算出してもよい。
また、変更部222は、矩形領域のサイズをフレーム画像の位置に応じて異ならせてもよい。例えば、変更部222は、エッジの周辺や色の変化が大きい領域においては矩形領域のサイズを他の領域よりも小さくして矩形領域輝度の変化率を算出してもよい。
あるいは、変更部222は、フレーム画像の位置に応じて局所領域輝度の変化率と矩形領域の輝度の変化率を組み合わせて用いてもよい。例えば、変更部222は、エッジの周辺や色の変化が大きい領域においては局所領域輝度を用い、他の領域においては矩形領域の輝度を用いて変化率を算出してもよい。
このようにすることで、被写体の細かいテクスチャや被写体の凹凸によってフラッシュ光の当たり方が局所的に異なる領域に対しては細かい粒度で算出された変化量を用いてフレーム画像の画素値を変更することができる。一方で、平坦な壁面や人物の肌のような同一色の領域に対しては同一の変化量を用いてフレーム画像の画素値を変更することができる。これにより、画像特徴が平坦な領域上での疑似境界線の発生を抑制したり、画像特徴が変動する領域上で局所毎の輝度変化に応じた画素値の変更を実現したりすることが可能である。
[変形例]
本開示は、上述された第1実施形態〜第3実施形態に限定されない。本開示は、当業者が把握し得る変形又は応用を適用した形態を含み得る。例えば、本開示は、以下に記載される変形例を含む。また、本開示は、本明細書に記載された事項を必要に応じて適宜に組み合わせた形態を含み得る。例えば、特定の実施形態を用いて説明された事項は、矛盾を生じない範囲において、他の実施形態に対しても適用され得る。
(変形例1)
変更部222は、選択された複数の近接フレーム画像に対して動き推定(動き補償)を適用し、新たなフレーム画像を生成してもよい。このように生成されたフレーム画像のことを、以下においては「推定フレーム画像」ともいう。変更部222は、フラッシュフレームと推定フレーム画像との間で算出された局所領域輝度(又は矩形領域の輝度)の変化率に基づいてフラッシュフレームの画素値を変更してもよい。
変更部222は、周知のさまざまな方法を用いて推定フレーム画像を生成してもよい。例えば、変更部222は、近接フレーム画像間のオプティカルフローに基づいて大局的な移動量と局所的な移動量とを推定し、推定された移動量に基づいてフラッシュフレームと同時刻に相当する推定フレーム画像を生成してもよい。
また、フラッシュフレームの画素値を変更するとき、変更部222は、動きが激しい領域については矩形領域の輝度の変化率を用いて画素値を変更し、他の領域については局所領域輝度の変化率を用いて画素値を変更してもよい。
また、算出部223は、動きの激しいフレームや領域に応じて合成率を一定値にしたり、大局的又は局所的な移動量に基づいて合成率を算出したりしてもよい。
(変形例2)
判定部221は、フレーム画像が(明領域に代えて)暗領域を含むかを判定してもよいし、フレーム画像が明領域と暗領域のいずれかを含むかを判定してもよい。ここにおいて、暗領域とは、特定のフレーム画像において、前後のフレーム画像の同じ位置の領域に比して所定のレベル以上暗い領域をいう。暗領域は、明領域と同様に、第1実施形態における明滅領域の一例に相当する。
例えば、カメラのフラッシュが散発的に焚かれた場合、明領域が発生する。一方、複数のカメラによってフラッシュが多量に焚かれると、輝度が全体的に大きくなる。このような状況においては、暗領域が瞬時的に発生する可能性が高まる。
判定部221は、局所領域輝度の変化率が所定の正の閾値以上である領域を明領域であると判定する。一方、判定部221は、局所領域輝度の変化率が所定の負の閾値以下である領域を暗領域であると判定する。明領域の判定方法と暗領域の判定方法は、閾値などの数値に相違はあるものの、判定の具体的な方法自体は共通である。また、変更部222による変更、算出部223による合成率の算出、合成部224によるフレーム画像の合成といった処理についても、明領域の場合と暗領域の場合とで共通の方法を用いることができる。
(変形例3)
本開示に係る各装置(映像処理装置100及び映像処理システム200)の具体的なハードウェア構成は、さまざまなバリエーションが含まれ、特定の構成に限定されない。例えば、各装置は、ソフトウェアを用いて実現されてもよく、複数のハードウェアを用いて各種処理を分担するように構成されてもよい。
図11は、各装置を実現するコンピュータ装置300のハードウェア構成の一例を示すブロック図である。コンピュータ装置300は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、記憶装置304と、ドライブ装置305と、通信インタフェース306と、入出力インタフェース307とを備える。本開示に係る各装置は、図11に示される構成(又はその一部)によって実現され得る。
CPU301は、RAM303を用いてプログラム308を実行する。プログラム308は、ROM302に記憶されていてもよい。また、プログラム308は、メモリカード等の記録媒体309に記録され、ドライブ装置305によって読み出されてもよいし、外部装置からネットワーク310を介して送信されてもよい。通信インタフェース306は、ネットワーク310を介して外部装置とデータをやり取りする。入出力インタフェース307は、周辺機器(入力装置、表示装置など)とデータをやり取りする。通信インタフェース306及び入出力インタフェース307は、データを取得又は出力するための構成要素として機能することができる。
なお、各装置の構成要素は、単一の回路(プロセッサ等)によって構成されてもよいし、複数の回路の組み合わせによって構成されてもよい。ここでいう回路(circuitry)は、専用又は汎用のいずれであってもよい。
上述された実施形態において単体の装置として説明された構成は、複数の装置に分散して設けられてもよい。例えば、映像処理装置100又は映像処理システム200は、クラウドコンピューティング技術などを用いて、複数のコンピュータ装置によって実現されてもよい。