(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164863
(43)【公開日】2024-11-28
(54)【発明の名称】動画ノイズ低減装置及び動画ノイズ低減方法
(51)【国際特許分類】
H04N 23/60 20230101AFI20241121BHJP
H04N 23/54 20230101ALI20241121BHJP
H04N 25/70 20230101ALI20241121BHJP
H04N 25/707 20230101ALI20241121BHJP
【FI】
H04N23/60 500
H04N23/54
H04N25/70
H04N25/707
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023080527
(22)【出願日】2023-05-16
(71)【出願人】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】小林 敏秀
【テーマコード(参考)】
5C024
5C122
【Fターム(参考)】
5C024CX03
5C024CY17
5C024CY26
5C024EX12
5C024GX03
5C024HX29
5C024JX09
5C024JX46
5C122DA13
5C122EA22
5C122FC06
5C122FH12
5C122FH13
5C122FH16
5C122FH23
5C122HB02
(57)【要約】
【課題】高精度の動画ノイズ低減技術を提供する。
【解決手段】フィルタ部は、所定のフレームレートで撮像するイメージセンサからの画像データを低周波数成分と第1の高周波数成分とに分離する。動きベクトル推定部34は、輝度が変化した画素の情報を非同期で出力するイベントセンサからのデータを所定のフレームレートよりも高いフレームレートで読み出して動きベクトルを推定する。動き補償部32は、動きベクトルに基づいて動き補償を行う。フィルタ部は、第1の高周波数成分と動き補償により得られた画像から取り出された第2の高周波数成分とを所定の割合で加算することによって第3の高周波数成分を生成し、低周波数成分と第3の高周波数成分とを加算することによって画像データのノイズを低減する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
所定のフレームレートで撮像するイメージセンサからの画像データを低周波数成分と第1の高周波数成分とに分離するフィルタ部と、
輝度が変化した画素の情報を非同期で出力するイベントセンサからのデータを前記所定のフレームレートよりも高いフレームレートで読み出して動きベクトルを推定する動きベクトル推定部と、
前記動きベクトルに基づいて動き補償を行う動き補償部とを含み、
前記フィルタ部は、前記第1の高周波数成分と前記動き補償により得られた画像から取り出された第2の高周波数成分とを所定の割合で加算することによって第3の高周波数成分を生成し、前記低周波数成分と前記第3の高周波数成分とを加算することによって前記画像データのノイズを低減することを特徴とする動画ノイズ低減装置。
【請求項2】
動きベクトルを推定する画像データのブロック範囲は、動き補償を行う画像データのブロック範囲よりも大きいことを特徴とする請求項1に記載の動画ノイズ低減装置。
【請求項3】
前記動きベクトルの推定の時、動きベクトルの算出開始タイミングを前記イメージセンサのシャッタスピードによって変更することを特徴とする請求項1または2に記載の動画ノイズ低減装置。
【請求項4】
前記フィルタ部は、被写体までの距離を検出する距離センサからの測距画像データに対してノイズ低減を行う場合、前記測距画像データを低周波数成分と高周波数成分とに分離することなく、前記距離センサからの全周波数帯域の測距画像と前記動き補償により得られた全周波数帯域の測距画像とを所定の割合で加算することによって前記測距画像データのノイズを低減することを特徴とする請求項1に記載の動画ノイズ低減装置。
【請求項5】
所定のフレームレートで撮像するイメージセンサからの画像データを低周波数成分と第1の高周波数成分とに分離するフィルタリングステップと、
輝度が変化した画素の情報を非同期で出力するイベントセンサからのデータを前記所定のフレームレートよりも高いフレームレートで読み出して動きベクトルを推定する動きベクトル推定ステップと、
前記動きベクトルに基づいて動き補償を行う動き補償ステップとを含み、
前記フィルタリングステップは、前記第1の高周波数成分と前記動き補償により得られた画像から取り出された第2の高周波数成分とを所定の割合で加算することによって第3の高周波数成分を生成し、前記低周波数成分と前記第3の高周波数成分とを加算することによって前記画像データのノイズを低減することを特徴とする動画ノイズ低減方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画ノイズ低減装置及び動画ノイズ低減方法に関する。
【背景技術】
【0002】
撮像された動画のノイズを低減するために、従来技術では、例えば単純にフレーム間の映像を数フレーム分加算し、フレーム数で割り算して平均化することで、ランダムノイズを低減する。この平均を算出するフレームの区間をフレームごとに更新する移動平均によって平均化を行う。この場合、動きのある被写体に対しては、ブレが発生するため、平均化によって得られる映像はノイズの乗ったブラーが生じるという課題がある。一方、TOF(Time Of Flight)センサによって静止物の距離を精密に測る場合はブレの問題がないため、このノイズ除去方法は有効であり、平均するフレーム数が増えるほど効果が上がり、測距カメラのノイズ除去においてよく使われている。
【0003】
画像の各画素の輝度変化を非同期に検出し、輝度変化のある画素の座標を時間の情報とともに出力する高速かつ低遅延なイベントベースビジョンセンサ(EVS(Event-based Vision Sensor))(「イベントベースセンサ」とも呼ぶ)が開発されている。特許文献1には、非同期のイベントベースセンサによって生成された信号の処理技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
動画のノイズ低減の精度を上げるためには、ブレのある動画に対して高速フレームレートで被写体の動きを捉え、高精度で動きベクトルを推定し、動き補償された画像を用いてノイズ低減を行うことが必要である。特許文献1には、イベントベースセンサを用いて画像の動き情報を取得する技術は開示されておらず、また、イベントベースセンサから出力される非同期データから生成レートを推定するが、生成レートを高フレームに対応させるために必要となるメモリの読み出し、書き込みの高速化を図る方法は開示されていない。
【0006】
本発明はこうした状況に鑑みてなされたものであり、その目的は、高精度の動画ノイズ低減技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様の動画ノイズ低減装置は、所定のフレームレートで撮像するイメージセンサからの画像データを低周波数成分と第1の高周波数成分とに分離するフィルタ部と、輝度が変化した画素の情報を非同期で出力するイベントセンサからのデータを前記所定のフレームレートよりも高いフレームレートで読み出して動きベクトルを推定する動きベクトル推定部と、前記動きベクトルに基づいて動き補償を行う動き補償部とを含む。前記フィルタ部は、前記第1の高周波数成分と前記動き補償により得られた画像から取り出された第2の高周波数成分とを所定の割合で加算することによって第3の高周波数成分を生成し、前記低周波数成分と前記第3の高周波数成分とを加算することによって前記画像データのノイズを低減する。
【0008】
本発明の別の態様は、動画ノイズ低減方法である。この方法は、所定のフレームレートで撮像するイメージセンサからの画像データを低周波数成分と第1の高周波数成分とに分離するフィルタリングステップと、輝度が変化した画素の情報を非同期で出力するイベントセンサからのデータを前記所定のフレームレートよりも高いフレームレートで読み出して動きベクトルを推定する動きベクトル推定ステップと、前記動きベクトルに基づいて動き補償を行う動き補償ステップとを含む。前記フィルタリングステップは、前記第1の高周波数成分と前記動き補償により得られた画像から取り出された第2の高周波数成分とを所定の割合で加算することによって第3の高周波数成分を生成し、前記低周波数成分と前記第3の高周波数成分とを加算することによって前記画像データのノイズを低減する。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、高精度の動画ノイズ低減技術を提供することができる。
【図面の簡単な説明】
【0011】
【
図2】
図2(a)~
図2(c)は、イベントベースセンサが出力するイベント信号を説明する図である。
【
図3】実施の形態1の動画ノイズ低減装置の基本構成図である。
【
図4】動きベクトル推定に用いるブロック範囲を説明する図である。
【
図6】動きベクトル推定部の動作を説明するタイミングチャートである。
【
図7】より高速のシャッタスピードの場合の動きベクトル推定部の動作を説明するタイミングチャートである。
【
図8】画像のピクセルの水平方向及び垂直方向の読み出し方法を説明する図である。
【
図9】フレーム内の被写体の動きを説明する図である。
【
図10】
図9の被写体の動きによる明るさ変化を示すイベントベースセンサの符号データを説明する図である。
【
図11A】画像のブロックの各ピクセルの縦方向係数と周辺係数を示す図である。
【
図11B】画像のブロックの各ピクセルの縦動き量の重みづけ係数を示す図である。
【
図12A】
図10のEVS出力の明るい側(プラス側)の符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す図である。
【
図12B】
図10のEVS出力の暗い側(マイナス側)の符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す図である。
【
図13A】画像のブロックの各ピクセルの横方向係数と周辺係数を示す図である。
【
図13B】画像のブロックの各ピクセルの横動き量の重みづけ係数を示す図である。
【
図14A】
図10のEVS出力の明るい側(プラス側)の符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す図である。
【
図14B】
図10のEVS出力の暗い側(マイナス側)の符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す図である。
【
図15】1フレーム前の被写体の動きを説明する図である。
【
図16】
図15の被写体の動きによる明るさ変化を示すイベントベースセンサの符号データを説明する図である。
【
図17A】
図16の明るさ変化のプラスの符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す図である。
【
図17B】
図16の明るさ変化のマイナスの符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す図である。
【
図18A】
図16の明るさ変化のプラスの符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す図である。
【
図18B】
図16の明るさ変化のマイナスの符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す図である。
【
図19】動きベクトルによって動き探索対象のブロックを移動させる方法を示す図である。
【
図20A】探索1回目における8×8ピクセルのエリアの1ピクセル単位探索を説明する図である。
【
図20B】探索2回目における1/4ピクセル単位で補間して探索する方法を示す。
【
図21】従来のブロッキングマッチングを説明する図である。
【
図22】プリズムを用いたEVSとRGBセンサの配置を説明する図である。
【
図23】
図23(a)及び
図23(b)は、プリズムを用いたEVSとRGBセンサとTOFセンサの配置を説明する図である。
【
図24】実施の形態5の動画ノイズ低減装置の基本構成図である。
【発明を実施するための形態】
【0012】
(実施の形態1)
実施の形態1において、EVSの出力データを使用することによって高速フレームレートで被写体の動きを捉え、高精度で動きベクトルを推定し、動き補償された画像を用いてノイズ低減を行う構成を説明する。
【0013】
本実施の形態では、RGBセンサで画像のR、G、Bデータを取得すると同時に、イベントベースセンサ(EVS)によって画像の輝度変化データを取得し、輝度変化データを用いることで、RGBセンサの1フレーム以内に動きベクトルを演算し、動き補償を行い、動き補償された画像を用いてフレーム間移動平均によるノイズ低減を行う。
【0014】
図1は、EVS10の構成図である。EVS10は、受光部12と輝度変化検出部16を含む。受光部12は、電流電圧変換器13とフォトダイオード14を含む。輝度変化検出部16は、非同期差分検出器17と比較器18を含む。
【0015】
受光部12において、フォトダイオード14はピクセル毎に入射光を電流に変換し、電流電圧変換器13に与える。電流電圧変換器13は、各ピクセルで検出された電流を電圧に変換し、輝度変化検出部16に与える。
【0016】
輝度変化検出部16において、非同期差分検出器17は、各ピクセルの検出された電圧と基準電圧の差分を非同期で検出し、比較器18に与える。比較器18は、電圧差分がプラスの閾値を超えた場合、プラスイベント信号を出力し、マイナスの閾値を超えた場合、マイナスイベント信号を出力し、それ以外の場合は、ゼロを出力する。
【0017】
このように、EVS10は、ピクセル毎に検出された光を電圧に変換し、その変換電圧を任意の幅と電圧レベルを設定したスレッシュホールド(threshold)レベル(以下、簡単に「スレッシュレベル」と呼ぶ)で比較し、光がプラスのスレッシュレベルより明るいとプラスイベント信号に1を立て、光がマイナスのスレッシュレベルより暗いとマイナスイベント信号に1を立て、それ以外はどちらも0を出す。プラス、マイナスいずれかのスレッシュレベルを超えると、基準スレッシュレベルの電圧レベルをその時の電圧レベルに再設定する。どちらも0のときは、そのピクセルのデータは出力しない。0のときは何も出力しないため、画像内であるスレッシュレベル幅の明るさの変化があったピクセルだけ1個の極性を表すデータを出力すればよく、つまり1ビットのデータが出力される。またその出力が画面のx、y座標のどのアドレス位置であるかを示すデータも併せて出力する。
【0018】
図2(a)~
図2(c)は、EVS10が出力するイベント信号を説明する図である。被写体が図中の矢印に沿って移動したとする。
図2(a)では符号15aの位置のピクセルの輝度が閾値を超え、ピクセルの座標、時刻、明暗極性を含むイベント信号(x
1,y
1,t
1,±
1)が出力される。
図2(b)では符号15bの位置のピクセルの輝度が閾値を超え、ピクセルの座標、時刻、明暗極性を含むイベント信号(x
2,y
2,t
2,±
2)が出力される。
図2(c)では符号15cの位置のピクセルの輝度が閾値を超え、ピクセルの座標、時刻、明暗極性を含むイベント信号(x
3,y
3,t
3,±
3)が出力される。
【0019】
このように、EVS10では、各ピクセルについて通常のセンサの12ビットA/Dデータのように多ビットで出力せず、輝度変化のあるスレッシュレベルを超えたタイミング時点のピクセルのデータだけを出力するため、非常に高速にマイクロ秒のオーダーで非同期にイベント信号を出力することができる。本実施の形態は、このように高速に輝度変化を検出することができるEVS10の出力データを用いる。
【0020】
図3は、実施の形態1の動画ノイズ低減装置200の基本構成図である。
【0021】
カメラなどのRGBセンサから取得されたRAW信号は、カメラプロセスを施されR、G、BもしくはY、Cb、Crの動画像のデータになり、動画ノイズ低減装置200に入力される。あるいはBAYERパターンのR、Gr、Gb、B信号のそれぞれを動画ノイズ低減装置200に入力してもよい。さらにはTOFセンサから得られる情報から出力される測距画像を動画ノイズ低減装置200に入力してもよい。ここでは説明をわかりやすくするためにY信号が入力された場合の例を説明する。入力されたY信号は、ローパスフィルタ(LPF(Low Pass Filter))部20に入力される。
【0022】
LPF部20は、例えば0.25Z^(-2)+0.5Z^(-1)+0.25Z^0のような水平方向のローパスフィルタを含む。ここでZは1ピクセルのスキャン時間である。さらにLPF部20は、例えば0.25L^(-2)+0.5L^(-1)+0.25L^0のような垂直方向のローパスフィルタを含む。ここでLは1ラインのスキャン時間である。
【0023】
Y信号は同時にdly(遅延)回路22において遅延され、減算部23においてLPF出力と遅延量を合わせて、Y信号からLPF信号を引き算し、高周波数信号を得る。この高周波数信号を除算部24において係数Xで割り算する。このXはフレーム間移動平均のゲイン調整になり、このXでノイズの低減量を調整する。加算部25において、この1/X倍した高周波数信号NHPFと後述する1フレーム遅延して動き補償したフィードバックの高周波数信号FDRとを足し算する。加算部27において、この足し算した結果を上記のLPF部20の出力結果に足し算し、フレーム間で移動平均されたノイズの低減されたYDNR信号を得る。YDNR信号は同時にフレームメモリ30に蓄積される。
【0024】
動きベクトル推定部34は、EVS10のデータから動いている被写体の動きベクトルを算出し予想し、動き補償部32に与える。動き補償部32は、動きベクトルに合わせてブロック毎に動きベクトル量分だけずらして動き補償し、予測画像を生成する。
【0025】
動きベクトル推定部34は、探索開始点を決定し、後述の動き探索を行う。
図4は、動きベクトル推定に用いるブロック範囲を説明する図である。ここでは、
図4に示すように、動き補償対象ブロック範囲40に対して、動きベクトル推定ブロック範囲42を広くとるようにする。
図4の例では、動き補償対象ブロック範囲40を8×8とし、動きベクトル推定ブロック範囲42を24×24とする。
【0026】
図5は、動きベクトル推定部34のブロック図である。動きベクトル推定部34は、カメラの同期の時間間隔で動きベクトルを読み出す。
【0027】
EVSからスレッシュレベルを超えた明暗の変化のあったピクセルの座標アドレスのy座標EVS_y、x座標EVS_xと明暗の符号EVS_pmが非同期タイミングでバッファリングブロックに入力される。バッファリングブロックは非同期に入力されたEVS信号を内部のクロックに置き換え、ブロック内部の処理のディレー(delay)を吸収するためのメモリであり、例えばFIFOメモリを用いる。
【0028】
バッファリング出力のEVS_yb、EVS_xbからフレームメモリA+、フレームメモリB+、フレームメモリA-、フレームメモリB-に明暗符号を一時的に保存するためのこれらのメモリのライトアドレスEVS_WADRSを作成する。フレームメモリA+、フレームメモリB+は後述する任意の期間にEVSが明るい方向に変化したピクセルを保存するためのメモリである。フレームメモリA-、フレームメモリB-は後述する任意の期間にEVSが暗い方向に変化したピクセルを保存するためのメモリである。
【0029】
RGBセンサが例えば1/60秒のフレームレートで動作しているとして、それに対してEVSは最高でマイクロ秒のオーダーで非同期にてデータを出力するため、このフレームメモリにおいて任意の周期に更新するように読み出しRGBセンサのデータと同期がとれるようにする。そのためEVSのデータはこれらのフレームメモリにおいてアドレスに対応したメモリ領域に保存する。フレームメモリは例えばRGBセンサの1/24倍の周期で速く読み出して出力データの更新を行うことにより、RGBデータの1/24倍周期のデータとして取り出せるようになる。この1/24倍周期は、
図4の24×24ピクセルのブロック分割に回路構成上都合が良い周期であるが、ブロック分割のピクセルやフレームメモリの構成で任意の周期に変更してもよい。ここではわかりやすくするためにRGBの1/24倍周期で説明する。
【0030】
RGBセンサの1/24倍周期であるので非常に高速な処理を行う必要があるが、通常のFPGAのハードウェア構成では処理スピードの制約で実現が難しいため、本実施の形態では次のような工夫をして実現する。
【0031】
図6は、動きベクトル推定部34の動作を説明するタイミングチャートである。
図5のSSGでRGBセンサの1/24倍の周期にあたるx24frmパルスを発生する。
図6のRGBセンサVSYNCは、1/60秒周期に1回HIGH信号になる。それに対してx24frm信号は、
図6のように1/24倍の1/1440秒周期でHIGH、LOWを繰り返すパルスになる。明るい方向に変化したピクセルを保存するフレームメモリA+とフレームメモリB+はこのx24frmのHIGH、LOWに合わせて片側がEVSデータを書き込んでいる間に、もう片方は読み出して0を書き込む作業を行う。同様に暗い方向に変化したピクセルを保存するフレームメモリA-とフレームメモリB-はこのx24frmのHIGH、LOWに合わせて片側がEVSデータを書き込んでいる間に、もう片方は読み出して0を書き込む作業を行う。
【0032】
図6に示すように、フレームメモリA+、フレームメモリA-はx24frmがLOWの時にセンサの明るさの符号に対応したアドレスに書き込み、HIGHの時は書き込んだデータを画面上部のアドレス0から順番に読み出す。通常1ピクセルずつメモリから読み出すにはRGB信号の24倍のクロックスピードで読み出す必要があるが、EVSの明るさデータは1ビットであることに注目し、24ライン分を24ビットデータとして扱う工夫をすることで、24ライン分を一度に読み出すことができるようにする。このことで通常のRGBで扱うクロックスピードと同等のスピードで読み出しが可能となる。このデータを24ビット化する方法を次に示す。
【0033】
EVSのピクセルサイズが例えば1280(x軸)×720(y軸)の場合、EVS_ybは10BITでEVS_yb[9:0]、EVS_xbは11BITでEVS_xb[10:0]で表され、その時のライトアドレスEVS_WADRSは動きベクトル推定ブロック範囲を24×24とした場合、次式で求められる。
EVS_WADRS=INT(EVS_yb/24)×2^11+EVS_xb
・・・・(1)
【0034】
EVS_pmはピクセルが明るくなった場合は1、暗くなった場合は0で入力される。バッファを通ってブロック内部のクロックで読み出されたEVS_pmをEVS_pmbとする。(2)式のようにEVS_ybからBITSHIFTを求め、(3)式のようにEVS_pmbをBITSHIFT分だけシフトレジスタでビットシフトした値を出力する。
BITSHIFT=EVS_yb-INT(EVS_yb/24)×24
・・・・(2)
ShiftRegister=2^BITSHIFT×EVS_pmb
・・・(3)
【0035】
例えばEVS_ybが1000の場合、BITSHIFT=16になり、ShiftRegister=2^16になる。この値はEVS_WADRSと同期して明るい方向検出用のフレームメモリA+、フレームメモリB+のブロックに出力される。EVS_pmbをインバータした信号は、暗くなった場合が1、明るくなった場合が0であり、シフトレジスタに入力され、EVS_WADRSに従い、(2)式、(3)式の出力信号をフレームメモリA-、フレームメモリB-のブロックに出力する。このようにすることでフレームメモリの1アドレスに24ライン分書き込むことができる。シフトレジスタは同時にイベントが発生したEVS_ybのラインアドレスが24BITの何ビット目かを表すYADR信号を発生する。次式のYADR信号を出力する。
YADR=2^BITSHIFT ・・・(4)
【0036】
上記で述べたようにx24frmパルスに従いフレームメモリA、フレームメモリBに書き込むが、x24frmの書き込み期間に、隣接する24ラインのデータが複数個入力されることもあるので、書き込みフェーズ時にEVS_WADRSのアドレスを一度保存された状態のものを読み出し、読み出した24ビットデータを新たにシフトレジスタで発生した信号とOR(論理和)をとる。この時に読み出した24ビットのうちYADRで示す1の立っているビットの値が1で、新たにシフトレジスタで発生したYADRで示すビットが0であった場合、そのビットはORを取らずに0にする。このように一度保存されていた24ビットデータを読み出すためにEVS_WADRSは1クロック(CLK)分ディレーさせるレジスタを通し、フレームメモリのアドレスに入力する。このようにすることでx24frmの書き込みパルス期間に最新の明暗それぞれの符号データが書き込まれるようになる。
【0037】
フレームメモリA+、フレームメモリA-はx24frmがLOWの時に、フレームメモリB+、フレームメモリB-はx24frmがHIGHの時に、上記の書き込みが行われ、フレームメモリA+、フレームメモリA-はx24frmがHIGHの時に、フレームメモリB+、フレームメモリB-はx24frmがLOWの時に、下記の読み込み及び0の書き込みが行われる。読み込みアドレスEVS_RADRSは
図5のRアドレス発生部で発生され、ピクセルサイズが例えば1280(x)×720(y)の場合、1280×720の全てのピクセルに対するアドレスを、アドレス0から順に(1)式の法則に合うように(5)式のアドレスを発生し、フレームメモリのデータをx24frmの示す読みだし期間に読み出す。
EVS_RADRS=INT(yadrs/24)×2^11+xadrs
・・・・(5)
xadrs=0~1279、yadrs=0~29
【0038】
1アドレス読み出ししたらただちに、そのアドレスに24ビットの0の書き込みを行う。0の書き込みは、1280×720の全てのピクセルに対するアドレスを、EVS_RADRSと同様にアドレス0から順に発生させることで行う。フレームメモリA+とフレームメモリB+の読み込みデータを、またフレームメモリA-とフレームメモリB-の読み込みデータをx24frmパルスで切り替えることで全ての60フレームの24倍のフレーム分のプラス符号データとマイナス符号データを読み出す。
【0039】
この読み出しデータは1データ24ライン分の符号データであるが、動きベクトル算出は8ピクセル×8ライン単位で行うためディレー調整48ラインメモリで、
図8のように水平方向は24ピクセルを8ピクセルずつずらして読み出していき、垂直方向は24ラインデータを8ラインずつずらして読み出す。読み出しは書き込みの3倍以上のクロックスピードで読み出す。同時に60フレームの24倍のフレーム分のプラス符号データとマイナス符号データを読み出したデータは、1/(24×60)秒のフレーム単位のフレームメモリで遅延させて、同様に
図8のように24ピクセルを8ピクセルずつ、24ラインデータを8ラインずつずらして読み出す。このようにすることで、各ブロックのベクトル計算は隣り合うブロックとオーバーラップ部分を含んで計算することができる。
【0040】
続いて動きベクトルの算出方法を説明する。
図9に24×24ピクセル範囲にある円の被写体が1/(24×60)秒のフレーム単位で右上に動いている様子を示している。図の中の数字はY信号のコード値になる。
図10は、
図9の2個目の円と3個目の円の動きによる明るさ変化を示すEVS信号の符号データになる。
【0041】
動き方向の検出は、Y軸の縦方向の重みづけ係数とX軸の横方向の重みづけ係数をそれぞれプラス側符号とマイナス側符号に掛け合わせて、下記に説明するように24×24ピクセルの総和を24×60フレーム単位の現在のフレームに対して求め、1フレーム前のフレームに対して同様の総和を求め、両者の差分を取ることで、Y軸、X軸方向の動き量を求める。
【0042】
図11Aは、24×24ピクセルのブロックに対して1ライン毎に1だけ増える縦方向係数を示す。
図11Aのブロックの周囲にはブロックの四隅に行くほど小さくなる数字が書かれており、これを8で割った数が周辺係数である。すなわち2の場合は、2/8が周辺係数であり、8の場合は、8/8=1が周辺係数である。縦動き量の重みづけ係数は、
図11Bに示すように、
図11Aの各ピクセルの縦方向係数に周辺係数をかけた値である。たとえば、X=1、Y=3のピクセルの場合、縦方向係数は3であり、X方向の周辺係数は2/8であり、Y方向の周辺係数は6/8であるから、縦動き量の重みづけ係数は、3×(2/8)×(6/8)≒0.6となる。周辺係数をかける理由は、ブロックの境界にまたがるような動きの場合、そのデータの動き推定への寄与度を小さくするためである。
【0043】
図13Aは、24×24ピクセルのブロックに対して水平方向1ピクセル毎に1だけ増える横方向係数を示す。
図13Aのブロックの周囲にはブロックの四隅に行くほど小さくなる数字が書かれており、これを8で割った数が周辺係数である。横動き量の重みづけ係数は、
図13Bに示すように、
図13Aの各ピクセルの横方向係数に周辺係数をかけた値である。
【0044】
図12Aは、
図10のEVS出力の明るい側(プラス側)の符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す。この計算は、
図5の垂直方向プラス側の重みづけ部で行われ、その結果をVPとする。
図10のEVS出力でプラスとなったピクセルは20個あり、このプラスとなったピクセルについて
図12Aの重みづけ値を合計すると185であり、平均すると185/20≒9.25である。
【0045】
図12Bは、
図10のEVS出力の暗い側(マイナス側)の符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す。この計算は、
図5の垂直方向マイナス側の重みづけ部で行われ、その結果をVMとする。
図10のEVS出力でマイナスとなったピクセルは19個あり、このマイナスとなったピクセルについて
図12Bの重みづけ値を合計すると-235となり、平均すると-235/19≒-12.37となる。
【0046】
図14Aは、
図10のEVS出力の明るい側(プラス側)の符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す。この計算は、
図5の水平方向プラス側の重みづけ部で行われ、その結果をHPとする。
図10のEVS出力でプラスとなったピクセルは20個あり、このプラスとなったピクセルについて
図14Aの重みづけ値を合計すると359であり、平均すると359/20≒17.95である。
【0047】
図14Bは、
図10のEVS出力の暗い側(マイナス側)の符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す。この計算は、
図5の水平方向マイナス側の重みづけ部で行われ、その結果をHMとする。
図10のEVS出力でマイナスとなったピクセルは19個あり、このマイナスとなったピクセルについて
図14Bの重みづけ値を合計すると-290となり、平均すると-290/19≒-15.26となる。
【0048】
このように、縦動き方向の24×24ピクセルのブロックのプラス側の重みづけされた値を24×24ピクセルのすべてについて合計した値を求め、24×24ピクセルのブロックのプラス側の数で割り、平均値を求める。
図12Aおよび
図12Bの例では縦プラス側の平均が9.25、縦マイナス側の平均が-12となる。この平均値の計算は、
図5の垂直方向P1BLOCK平均部、垂直方向M1BLOCK平均部で行われ、VPSUM信号、VMSUM信号が出力される。VPSUM=9.25、VMSUM=-12.37である。
【0049】
横動き方向の24×24ピクセルのブロックのプラス側の重みづけされた値を24×24ピクセルのすべてについて合計した値を求め、24×24ピクセルのブロックのプラス側の数で割り、平均値を求める。
図14Aおよび
図14Bの例では横プラス側の平均が18、縦マイナス側の平均が-15となる。この計算は、
図5の水平方向P1BLOCK平均のブロック、水平方向M1BLOCK平均のブロックで行われ、HPSUM信号、HMSUM信号が出力される。HPSUM=17.95、HMSUM=-15.26である。
【0050】
上記の24×24ピクセルのブロックの明るさ変化の平均の計算を1フレーム前の状態でも行う。
図5のディレー調整フレームメモリにおいて60フレームの1/24倍の周期単位で1フレーム前の映像について同様に行う。
【0051】
図15は、1フレーム前の被写体の動きとY信号の状態を示す。
図16は、
図15の1個目の円と2個目の円の動きによる明るさ変化によるEVS信号の符号データを示す。プラスの符号データは18ピクセルあり、マイナスの符号データは18ピクセルある。
【0052】
図17Aは、
図16の明るさ変化のプラスの符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す。プラスのピクセルの重みづけ値は、合計すると217であり、平均すると217/18≒12.06である。
【0053】
図17Bは、
図16の明るさ変化のマイナスの符号データに
図11Bの縦動き量の重みづけ係数を掛け算した結果を示す。マイナスのピクセルの重みづけ値は、合計すると-288であり、平均すると-288/18≒-16.0である。
【0054】
図5では、縦方向プラス側の平均値がVPSUM1f信号、縦方向マイナス側の平均値がVMSUM1f信号である。VPSUM1f=12.06、VMSUM1f=-16.0である。
【0055】
図18Aは、
図16の明るさ変化のプラスの符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す。プラスのピクセルの重みづけ値は、合計すると278であり、平均すると278/18≒15.44である。
【0056】
図18Bは、
図16の明るさ変化のマイナスの符号データに
図13Bの横動き量の重みづけ係数を掛け算した結果を示す。マイナスのピクセルの重みづけ値は、合計すると-240であり、平均すると-240/18≒-13.33である。
【0057】
図5では、横方向プラス側の平均値がHPSUM1f信号、横方向マイナス側の平均値がHMSUM1f信号になる。HPSUM1f=15.44、HMSUM1f=-13.33である。
【0058】
縦方向の動きベクトルは、現在のフレームの縦方向の動き量の重みづけ平均値と、1フレーム前の縦方向の動き量の重みづけ平均値の差により求められる。この差が24×24ブロック内の被写体の平均的な縦方向の移動量になる。これをプラス、マイナスの両方で求め、その平均を24×60フレーム周期の1フレームの縦方向の動きベクトル量VVECT1Frとする。
【0059】
マイナス側の平均はマイナス値として扱い、垂直動きベクトル量VVECT1Frを次式で求める。
VVECT1Fr=((VPSUM-VPSUM1f)+(-1)×(VMSUM-VMSUM1f))/2
・・・(6)
【0060】
図17A及び
図17Bの例では、VVECT=((9.25-12.06)-(-12.37+16.0))/2≒-3.2となる。この値がマイナスの時は画面上方に移動していることを示し、プラスの時は画面下方に移動していることを示す。
【0061】
横方向の動きベクトルは、現在のフレームの横方向の動き量の重みづけ平均値と、1フレーム前の横方向の動き量の重みづけ平均値の差により求められる。この差が24×24ブロック内の被写体の平均的な横方向の移動量になる。これをプラス、マイナスの両方で求め、その平均を24×60フレーム周期の1フレームの横方向の動きベクトル量HVECT1Frとする。
【0062】
マイナス側の平均はマイナス値として扱い、水平動きベクトル量HVECT1Frを次式で求める。
HVECT1Fr=((HPSUM-HPSUM1f)+(-1)×(HMSUM-HMSUM1f))/2
・・・(7)
【0063】
図18A及び
図18Bの例では、HVECT=((17.95-15.44)-(-15.26+13.33))/2=2.22となる。この値がマイナスの時は画面左方向に移動していることを示し、プラスの時は画面右方向に移動していることを示す。
【0064】
VVECT1FrとHVECT1Frのベクトル量は24×60=1440fpsという非常に短い時間の動き量であるから、通常被写体の動きは1280×720ピクセルのセンサであれば24×24ピクセル以内の数ピクセル以内の動き量で収まる。このベクトル計算を8×8ブロック毎に順番に行い、ブロックナンバーカウンタが出力するブロックナンバー値をアドレスとしてブロック別動きベクトル24Fr足し算メモリに保存される。1440fps単位でブロック別動きベクトル24Fr足し算メモリに垂直方向、水平方向のベクトルが足されるように計算し、24フレーム分足し算したら、その総和VVECT24Fr、HVECT24Frを出力し、次のブロック別動きベクトルメモリに保存する。出力後、ブロック別動きベクトル24Fr足し算メモリの足し算値を0にリセットする。この24フレーム分足し算した結果のベクトルが、60FPS単位のベクトルとなり、R、G、Bの画像の動きベクトルとなる。
【0065】
ここでブロック別動きベクトル24Fr足し算メモリの足し算を0にリセットするタイミングは、60FrmVrstパルスがHIGHの時に行うが、そのタイミングは、RGBセンサのシャッタ蓄積時間に応じて変えることでより正確な動きベクトルを得ることができる。
【0066】
図6は、RGBセンサが1/60秒のシャッタスピードの場合のリセットタイミング60FrmVrstを示している。
図6の最上部に8×8ピクセル内の被写体の動きを示す。RGBセンサはこの例では60FPSで動き、その同期信号VSYNCが
図6のタイミングになる。ここではRGBセンサは、全画素同時タイミングで映像を取得するグローバルシャッタのセンサであるとする。シャッタスピードが1/60秒の場合、VSYNCのタイミングの被写体から次のVSYNCのタイミングまで露光されるので、
図6のRGB1/60秒蓄積の欄のVSYNC手前の状態のように、1/60秒の動き分、RGBセンサが捉えた被写体が右上方向にぶれている。さらに次のVSYNCでは被写体が下がってきた場合、右下方向にぶれている。一方EVSは非同期に高速に輝度変化を検出するのでぶれがない。このぶれがないEVS出力データから動きベクトルを算出するとき、ベクトルを算出する開始点と終点の時間がRGBセンサの被写体のブレの中心のタイミングになることがよい。
【0067】
図6の被写体の黒丸で表示する部分から開始し、次の黒丸で表示する部分までの間でベクトル算出すると、RGBセンサの被写体のブレの中心タイミングでのベクトルを求めることになり、フレーム間ノイズ除去において次のフレームのブレの中心との比較ができるようになる。そのため60FrmVrstのリセットタイミングを
図6のようにVSYNC間の中点に1フレーム分のディレーを足したタイミングにする。この1フレーム分のディレーは内部の処理のメモリによるディレーを考慮している。この60FrmVrstのリセットタイミングは、VSYNCから次式のディレー量で発生させる。RGBセンサのフレームレートをRGBFPS、イベントセンサ用のフレームメモリの蓄積周期をEVSFPS、シャッタスピードをRGBSHとすると、60FrmVrstのリセットタイミング60FrmVrstTimingは、次式で求められる。
60FrmVrstTiming=INT((RGBSH/2)/(1/EVSFPS))×(1/EVSFPS)+1/EVSFPS
・・・(8)
【0068】
例えば、RGBセンサのフレームレートRGBFP=60(FPS)、シャッタスピードRGBSH=1/60(秒)、イベントセンサ用のフレームメモリの蓄積レートEVSFPS=24×RGBFPであれば、(8)式より、0.009027778秒になる。これはx24frmの変化周期の13フレーム分になる。
【0069】
図7は、シャッタスピードRGBSHが1/1500秒の時の例である。シャッタスピードに合わせて(8)式でディレー量を求める。これはx24frmのパルス変化周期の1フレーム分になる。
【0070】
このシャッタスピードで変化させる60FrmVrstのタイミングで、1440FPS単位の24フレーム分のベクトルをブロック別動きベクトル24Fr足し算メモリにおいて足し算し、この足し算されたベクトル値をブロック別動きベクトルメモリに書き込み、そのメモリのデータをVSYNCのタイミングでブロック毎に読み出しVVECT、HVECTの動きパラメータを得る。
【0071】
このように動きベクトル推定部34において動きパラメータを取得し、その動きパラメータを
図3の動き補償部32に入力する。動き補償部32は、RGBセンサのフレームレートで1フレーム遅れたY信号に対して、8×8ピクセルのブロック分割の範囲を動きパラメータのマイナス値で移動させ、新たに入力されたY信号差分をとる。
【0072】
図19は、動きベクトルによって動き探索対象のブロックを移動させる方法を示す図である。
図19の場合、動きベクトルは、水平方向HVECTが10.2、垂直方向VVECTが-10.5である。1フレーム前のY信号にその動きベクトル分をマイナスした8×8ピクセルのエリアのデータを
図3の1フレームのフレームメモリから取り出す。動きベクトルが小さい場合は、1/4ピクセルの位相精度で補間して求める。このデータと新たに入って来たY信号の8×8ピクセルのエリア間で
図20Aのような順番で1フレーム遅れの動きベクトルで得られた8×8エリアをずらして相関を求めデータを探索する。
【0073】
図20Aは、探索1回目における8×8ピクセルのエリアの1ピクセル単位探索を示し、
図20Bは、探索2回目における1/4ピクセル単位でピクセルデータを補間して探索する方法を示す。相関値があるスレッシュ以下になった時点でさらに1/4ピクセル単位でデータ補間して探索することにより、相関度の高い位相を求める。もし全ての探索を行い相関がスレッシュ以下の場合は、移動は行わず同じブロックのフレーム差分をとる。
【0074】
この探索はフレーム間ノイズ除去を行う際により高い精度で行うことができるが、処理の遅延にもつながるので、必要ない場合は行わなくてもよい。
【0075】
この探索は
図21のような従来のブロックマッチングで用いられる広い探索よりも探索範囲が狭い。これは動きベクトルを求める際に24×60FPSの高速で被写体に追従してベクトルを求めているので、動きベクトル時点で精度が良いためである。
【0076】
このように探索を行い1フレーム前とマッチングが取れた時点の8×8エリアについて
図3のHPF部28においてハイパスフィルタ(HPF(High Pass Filter))を行う。
【0077】
HPF部28は、例えば-0.25Z^(-2)+0.5Z^(-1)-0.25Z^0のような水平方向のハイパスフィルタを含む。ここでZは1ピクセルのスキャン時間である。さらにHPF部28は、例えば-0.25L^(-2)+0.5L^(-1)-0.25L^0のような垂直方向のハイパスフィルタを含む。ここでLは1ラインのスキャン時間である。
【0078】
HPF部28は、上記のような3TAPの場合、8×8エリアのハイパスフィルタが正確に行われるように実際は8×8エリアよりも上下左右1ピクセル広い10×10エリアのデータを用いて行う。
【0079】
HPF部28で取り出された高周波数成分に対して
図3の乗算部26において(1-1/X)を掛け算し、FDRを得る。このFDRを毎フレーム計算し、加算部25において1/X倍したNHPFと足し算することで巡回型の移動平均された高周波数成分が得られる。この移動平均された高周波数成分を
図3の加算部27においてLPFに足し算する。このようにすることで動き補償のとれたフレーム単位の移動平均値が得られ、フレーム間に相関のないランダムノイズに対してノイズの低減が行われる。
【0080】
(実施の形態2)
EVSは特殊なセンサであるためセンサのラインアップが少なく、EVSの画素数とRGBセンサの画素数が一致しないことがある。実施の形態2では、EVSとRGBセンサの有効画素数に違いがある場合、実施の形態1で説明した水平動きベクトル、垂直動きベクトルの値にイベントセンサとRGBセンサの有効画素数の比をかける。
【0081】
例えば、EVSが1280×720ピクセルであり、RGBセンサが1920×1080ピクセルであり、両者は同じ画角の有効ピクセルであるとすると、水平方向の比HPIX_Ratio及び垂直方向の比VPIX_Ratioは次式で求められる。
HPIX_Ratio=1920/1280=1.5
VPIX_Ratio=1080/720=1.5
【0082】
動きベクトル推定部34は、水平方向の比HPIX_Ratio、垂直方向の比VPIX_Ratioをそれぞれ水平方向の動きベクトルHVECT、垂直方向の動きベクトルVVECTに掛け合わせ、補正後の水平方向の動きベクトルHVECT’、垂直方向の動きベクトルVVECT’を求め、出力する。
HVECT’=HVECT×HPIX_Ratio ・・・(9)
VVECT’=VVECT×VPIX_Ratio ・・・(10)
【0083】
(実施の形態3)
実施の形態3では、実施の形態1及び実施の形態2においてEVSとRGBセンサが同光軸になるようにプリズムを用いて配置する。RGBセンサはイメージセンサの一例である。RGBセンサの代わりに白黒の画像データを取得するセンサを用いてもよい。
【0084】
図22は、プリズムを用いたEVSとRGBセンサの配置を説明する図である。レンズから入射した像光をプリズムで分光し、EVSとRGBセンサの像が同光軸となるように配置する。この構成により得られるRGBセンサの出力データとEVSの出力データを用いて、実施の形態1または実施の形態2のノイズ低減処理を行う。ノイズ低減処理は、RGBセンサのR、G、B信号のそれぞれに対して行ってもよく、R、G、BをY、Cb、Crに変換したY、Cb、Cr信号のそれぞれに対して行ってもよく、R、Gr、Gb、B信号のベイヤ(Bayer)パターンの信号のそれぞれのチャンネルに対して行ってもよい。
【0085】
(実施の形態4)
実施の形態4では、実施の形態1及び実施の形態2においてEVSとRGBセンサとTOF(Time Of Flight)センサを同光軸になるようにプリズムを用いて配置する。TOFセンサは距離センサの一例である。
【0086】
図23(a)及び
図23(b)は、プリズムを用いたEVSとRGBセンサとTOFセンサの配置を説明する図である。レンズにより可視光の環境光とレーザーダイオードアレイのVCSEL(Vertical Cavity Surface Emitting Laser)から発光された近赤外光、ここでは例えば波長が940nmの赤外光が被写体に当たって反射した光がプリズムに入射される。プリズムは、例えば
図23のように可視光反射ダイクロイック膜で可視光と近赤外光に分け、近赤外光をTOFセンサに入射する。可視光はさらにプリズムによって分光され、RGBセンサとEVSに入射される。
【0087】
プリズムの構造は
図23(a)の配置、
図23(b)の配置のいずれでもよい。RGBセンサとEVSとTOFセンサは同光軸上に配置される。TOFセンサは内部にプロセッサを持っており、距離データDを出力する。RGBセンサの出力データとEVSの出力データとTOFセンサの距離データを用いて実施の形態1または実施の形態2のノイズ低減処理を行う。ノイズ低減処理は、RGBセンサのR、G、B信号のそれぞれに対して行ってもよく、R、G、BをY、Cb、Crに変換したY、Cb、Cr信号のそれぞれに対して行ってもよく、R、Gr、Gb、B信号のベイヤ(Bayer)パターンの信号のそれぞれのチャンネルに対して行ってもよい。また同時にTOFセンサの距離データDに対しても、実施の形態1または実施の形態2のノイズ低減を行う。この時、
図3の動きベクトル推定部34はRGB映像に対しても、測距映像に対しても共通でよい。
【0088】
(実施の形態5)
実施の形態5では、実施の形態4の配置において、TOFセンサから出力される距離データに対して上記の動き補償を用いたフレーム間移動平均によるノイズ低減を行うが、その際、距離データを低周波数成分と高周波数成分に分離せずに、全周波数帯域で行う。
【0089】
図24は、実施の形態5の動画ノイズ低減装置210の構成図である。
図3の動画ノイズ低減装置200の構成から高周波数成分を取り出す構成と高周波数成分を低周波成分に足し算する構成が省かれている。それ以外は実施の形態1で説明した通りである。
【0090】
TOFセンサからの距離画像データは、動画ノイズ低減装置210に入力されると、低周波数成分と高周波数成分に分離されることなく、除算部24において係数Xで割り算され、全周波数帯域のNHPFが得られる。動き補償部32から出力される1フレーム遅延して動き補償された全周波数帯域の距離画像データが乗算部26において(1-1/X)倍され、FDRが得られる。加算部25において、1/X倍した全周波数帯域のNHPFと(1-1/X)倍された動き補償された全周波数帯域のFDRとが足し算され、フレーム間で移動平均されたノイズの低減された全周波数帯域のYDNR信号が得られる。
【0091】
測距センサの距離データは、周波数の低い部分でのノイズ除去を行った方が、距離データを利用して点群化して3Dモデリング化する際に効果が得られることがある。そのため、LPFとHPFで周波数帯域を分離することなく、全周波数帯域でノイズ低減を行う。一方RGBセンサからの映像信号に対しては、実施の形態1と同様に周波数帯域を分けて高周波数成分に対してノイズ低減を行う。この時、
図3の動きベクトル推定部34はRGB映像に対しても、測距映像に対しても共通でよい。
【0092】
以上説明した動画ノイズ低減装置200、210の各種の処理は、CPUやメモリ等のハードウェアを用いた装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバと送受信することも、地上波あるいは衛星ディジタル放送のデータ放送として送受信することも可能である。
【0093】
動画ノイズ低減装置200、210によれば、EVSで高フレームレートの動きベクトルを算出し、その後ブロックマッチングを行うことで、動きのある被写体の追従性を向上でき、ブロックマッチングを広範囲に広げなくてもよいというメリットがある。またEVSはシャッタの概念がなく、EVSは暗いところから明るいところまでダイナミックレンジが広いため、暗い被写体でも追従性が良い。
【0094】
また輝度変化が起きた画素の明暗2種類の1ビットの信号で動き推定することができるため、演算スピードが向上し、高速のデータ更新が可能になる。これによって動いている物体の追従性も良くなり、フレーム間の探索範囲が抑えられる。その結果、動いている物体に対するノイズ低減の精度が向上し、フレーム間の残像が抑えられる。したがって、高品位な映像および測距データが得られ、また装置全体の回路規模と処理時間を抑えることができる。
【0095】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0096】
10 EVS、 12 受光部、 13 電流電圧変換器、 14 フォトダイオード、 16 輝度変化検出部、 17 非同期差分検出器、 18 比較器、 20 LPF部、 22 dly回路、 23 減算部、 24 除算部、 25 加算部、 26 乗算部、 27 加算部、 28 HPF部、 30 フレームメモリ、 32 動き補償部、 34 動きベクトル推定部、 36 SSG、 200、210 動画ノイズ低減装置。