(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】信号処理装置、信号処理方法、および検出センサ
(51)【国際特許分類】
H04N 25/50 20230101AFI20240806BHJP
H04N 25/47 20230101ALI20240806BHJP
H04N 25/60 20230101ALI20240806BHJP
【FI】
H04N25/50
H04N25/47
H04N25/60
(21)【出願番号】P 2021562556
(86)(22)【出願日】2020-11-18
(86)【国際出願番号】 JP2020042908
(87)【国際公開番号】W WO2021111873
(87)【国際公開日】2021-06-10
【審査請求日】2023-09-28
(31)【優先権主張番号】P 2019218055
(32)【優先日】2019-12-02
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】海津 俊
【審査官】辻本 寛司
(56)【参考文献】
【文献】国際公開第2019/135303(WO,A1)
【文献】特開2018-022490(JP,A)
【文献】特開2004-007402(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 25/50
H04N 25/47
H04N 25/60
(57)【特許請求の範囲】
【請求項1】
受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、
前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、
前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部と
を備える信号処理装置。
【請求項2】
前記変化検知部は、前記第1の輝度変化を第1の値で出力し、前記第2の輝度変化を第2の値で出力する
請求項1に記載の信号処理装置。
【請求項3】
前記変化検知部は、
前記第1の輝度変化を検知する第1の変化検知部と、
前記第2の輝度変化を検知する第2の変化検知部と
を有する
請求項1に記載の信号処理装置。
【請求項4】
前記第1の変化検知部および前記第2の変化検知部は、前記第1の輝度変化または前記第2の輝度変化をオンオフ信号として表す
請求項3に記載の信号処理装置。
【請求項5】
前記係数生成部は、前記時刻に応じたsin関数およびcos関数の値を前記係数として生成する
請求項1に記載の信号処理装置。
【請求項6】
前記係数生成部は、検知したい周期に応じた前記sin関数およびcos関数の値を前記係数として生成する
請求項5に記載の信号処理装置。
【請求項7】
前記係数生成部は、前記sin関数およびcos関数を近似したsin近似関数およびcos近似関数の値を前記係数として生成する
請求項5に記載の信号処理装置。
【請求項8】
前記sin近似関数およびcos近似関数は、前記sin関数およびcos関数を、1と-1の2値を取る信号に近似した関数である
請求項7に記載の信号処理装置。
【請求項9】
前記係数生成部は、前記時刻に対して1または-1を対応付けたテーブルに基づいて、1または-1を出力する
請求項8に記載の信号処理装置。
【請求項10】
前記積算部の積算結果に基づいて、前記輝度変化が特定の周波数で発生しているフリッカ量を推定するフリッカ量推定部をさらに備える
請求項1に記載の信号処理装置。
【請求項11】
前記変化検知部と、
前記係数生成部と、
前記積算部と、
前記フリッカ量推定部と
を備えるフリッカ検出部を複数備え、
複数の前記フリッカ検出部それぞれは、前記フリッカ量を推定する周波数が異なる
請求項10に記載の信号処理装置。
【請求項12】
前記フリッカ量推定部の推定結果に基づいて、前記受光部の感度パラメータを制御する制御部をさらに備える
請求項10に記載の信号処理装置。
【請求項13】
前記受光部は、複数のブロックに分割され、
前記複数のブロックに対応して複数の前記積算部を備え、
複数の前記積算部は、前記輝度変化が発生したブロック単位で、前記乗算結果を積算する
請求項1に記載の信号処理装置。
【請求項14】
信号処理装置が、
受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出し、
前記輝度変化が検出された時刻に応じた係数を生成し、
前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する
信号処理方法。
【請求項15】
入射光の光電変換を行って電気信号を生成する画素が格子状に配置された受光部と、
前記受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、
前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、
前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部と
を備える検出センサ。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、信号処理装置、信号処理方法、および検出センサに関し、特に、輝度変化を示す出力から、フリッカ情報を検出できるようにした信号処理装置、信号処理方法、および検出センサに関する。
【背景技術】
【0002】
画素の輝度変化をイベントとして、イベントが発生した場合に、イベントの発生を表すイベントデータを出力するイメージセンサが提案されている(例えば、特許文献1参照)。
【0003】
ここで、垂直同期信号に同期して撮像を行い、その垂直同期信号の周期で1フレーム(画面)の画像データであるフレームデータを出力するイメージセンサは、同期型のイメージセンサということができる。これに対して、イベントデータを出力するイメージセンサは、イベントが発生すると、イベントデータを出力するため、非同期型(又はアドレス制御型)のイメージセンサということができる。非同期型のイメージセンサは、例えば、DVS(Dynamic Vision Sensor)と呼ばれる。
【0004】
DVSでは、輝度変化のある画素の情報を出力するが、例えば、室内の光源がフリッカしている場合など、画面全体に輝度変化が生じて多くのイベントが発生してしまうことがある。この場合、フリッカ起因による多数のイベントに、本来取得したいイベントが埋もれてしまい、本来取得したい情報が捉えられないため、フリッカ起因による多数のイベントを除去する必要がある。
【0005】
同期型のイメージセンサである一般的なCMOSイメージセンサにおいて、例えば、フリッカの発生しないシャッタ時間で撮影した画像と、それよりも短いシャッタ時間で撮影した画像の差分、あるいは、比率を用いてフリッカ成分を検出する技術が開示されている(例えば、特許文献2参照)。
【0006】
しかしながら、DVSは輝度変化自体を捉えるセンサであり、所定のシャッタ時間を規定して撮影する方法ではないため、この方法は適用できない。
【0007】
DVS向けのノイズ除去方法としては、例えば、2x2単位の画素でイベント出力を制御することで、フリッカも除去する技術が提案されている(例えば、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0008】
【文献】特表2017-535999号公報
【文献】特開2004-7402号公報
【非特許文献】
【0009】
【文献】Chenghan Li , et. Al.,A 132 by 104 10m-Pixel 250W 1kefps Dynamic Vision Sensor with Pixel-Parallel Noise and Spatial Redundancy Suppression 2019 Symposium on VLSI Circuits
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、非特許文献1の技術は、有効なイベントまで除去する場合があり、所望の結果が得られない場合がある。
【0011】
本技術は、このような状況に鑑みてなされたものであり、輝度変化を示す出力から、フリッカ情報を検出できるようにするものである。
【課題を解決するための手段】
【0012】
本技術の第1の側面の信号処理装置は、受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部とを備える。
【0013】
本技術の第1の側面の信号処理方法は、信号処理装置が、受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出し、前記輝度変化が検出された時刻に応じた係数を生成し、前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する。
【0014】
本技術の第1の側面においては、受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化が検出され、前記輝度変化が検出された時刻に応じた係数が生成され、前記第1の輝度変化と前記係数の乗算結果とが積算されるとともに、前記第2の輝度変化と前記係数の乗算結果とが積算される。
【0015】
本技術の第2の側面の検出センサは、入射光の光電変換を行って電気信号を生成する画素が格子状に配置された受光部と、前記受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部とを備える。
【0016】
本技術の第2の側面においては、入射光の光電変換を行って電気信号を生成する画素が格子状に配置された受光部と、前記受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部とが設けられる。
【0017】
なお、本技術の第1の側面の信号処理装置は、コンピュータにプログラムを実行させることにより実現することができる。コンピュータに実行させるプログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【0018】
信号処理装置および検出センサは、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【図面の簡単な説明】
【0019】
【
図1】本技術を適用したセンサとしてのDVSの一実施の形態の構成例を示すブロック図である。
【
図3】
図1の画素回路の詳細構成例を示すブロック図である。
【
図4】フレームデータを生成する方法の例を説明する図である。
【
図5】光源フリッカによるイベント発生原理を説明する図である。
【
図6】電源周波数50Hzの光源下でイベントを検出した結果を示す図である。
【
図7】フリッカ検出部の第1構成例を示すブロック図である。
【
図8】フリッカ検出部の第2構成例を示すブロック図である。
【
図9】第2構成例に係るフリッカ検出部の詳細な構成例を示す図である。
【
図10】sin関数およびcos関数とsin近似関数およびcos近似関数の例を示す図である。
【
図11】
図10の畳み込み係数生成部の回路構成例を示す図である。
【
図12】
図11に示した論理回路で動作させた場合のタイミングチャートを示す図である。
【
図13】フリッカ検出部の第3構成例を示すブロック図である。
【
図14】
図1のDVSによるフリッカ制御処理を説明するフローチャートである。
【
図15】フリッカ制御処理の処理結果を示す図である。
【
図16】画素アレイ部を分割したブロックを説明する図である。
【
図17】フリッカ検出部の第4構成例を示すブロック図である。
【
図18】DVSのその他の構成例を示すブロック図である。
【
図19】DVSのチップ構成例を示す斜視図である。
【発明を実施するための形態】
【0020】
以下、添付図面を参照しながら、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。説明は以下の順序で行う。
1.DVSの構成例
2.光源フリッカによるイベント発生原理
3.フリッカ検出部の第1構成例
4.フリッカ検出部の第2構成例
5.フリッカ検出部の第3構成例
6.フリッカ制御処理の処理フロー
7.フリッカ検出部の第4構成例
8.DVSのその他の構成例
9.DVSのチップ構成例
【0021】
<1.DVSの構成例>
図1は、本技術を適用したセンサ(イベント検出センサ)としてのDVSの一実施の形態の構成例を示すブロック図である。
【0022】
DVS1は、画素アレイ部11と、信号処理部12とを備える。
【0023】
画素アレイ部11は、入射光の光電変換を行って電気信号を生成する画素31を含む複数の画素回路21が2次元平面上に格子状に配置されて構成される。画素アレイ部11は、画素31において、入射光の光電変換を行って電気信号を生成する撮像を行う。さらに、画素アレイ部11は、画素回路21において、画素31の電気信号の変化であるイベントの発生を表すイベントデータを生成し、信号処理部12に出力する。
【0024】
画素アレイ部11において、複数の画素回路21が配置された部分は、全体として、入射光を受光して、光電変換を行う部分であるので、受光部ともいう。
【0025】
信号処理部12は、イベント出力部22、フリッカ検出部23、および、画素パラメータ制御部24を備える。
【0026】
イベント出力部22は、画素アレイ部11のいずれかの画素回路21でイベントの発生が検出された場合、イベントの位置情報である画素回路21の座標(xn,yn)、イベントの時刻情報であるタイムスタンプtn、および、イベントの極性pnを生成し(n=0,1,2,3・・)、出力フラグであるvalid信号をHighにして、DVS1の外部と、フリッカ検出部23とに出力する。
【0027】
図2は、イベント出力部22が出力するイベントデータの概念図を示している。
【0028】
座標(xn,yn)は、イベントが発生した画素アレイ部11内の画素回路21の位置を表す。
【0029】
タイムスタンプtnは、例えば、所定のクロック信号に基づくカウンタにおいて、イベントが発生したときのカウント値を表す。イベントが発生したタイミングで出力するカウント値は、イベントどうしの間隔がイベントの発生時のまま維持されている限り、イベントが発生した(相対的な)時刻を表す時刻情報であるということができる。
【0030】
イベントの極性pnは、画素31において、所定の閾値を超える輝度変化(光量変化)がイベントとして発生した場合の輝度変化の方向を表し、輝度変化がプラス方向の変化(以下、正極性という。)か、または、マイナス方向の変化(以下、負極性という。)かを表す。具体的には、イベントの極性pnは、正極性のとき+1で表され、負極性のとき-1で表される。
【0031】
図2に示されるように、イベントが発生した場合、出力フラグであるvalid信号がHighに設定され、座標(xn,yn)、タイムスタンプtn、および、イベントの極性pnが出力される。
【0032】
図1に戻り、フリッカ検出部23は、イベント出力部22から供給されるイベントデータを用いて、フリッカ量を検出(推定)し、DVS1の外部と、画素パラメータ制御部24とに出力する。
【0033】
画素パラメータ制御部24は、フリッカ検出部23で検出されたフリッカ量に基づいて、画素回路21の感度パラメータを調整(制御)する。すなわち、画素パラメータ制御部24は、フリッカ量が多い場合には、イベントとして捉える輝度変化の閾値を上げて、イベントを発生しにくくし、フリッカ量が少ない場合には、輝度変化の閾値を下げて、イベントを発生しやすくなるように制御する。
【0034】
<画素回路21の構成例>
図3は、
図1の画素回路21の詳細構成例を示すブロック図である。
【0035】
画素回路21は、画素31と、イベント検出部32とを備える。
【0036】
画素31は、光電変換素子としてのPD(PhotoDiode)51を備える。画素31は、PD51において、PD51に入射する光を受光し、光電変換を行って、電気信号としての光電流(Iph)を生成して流す。
【0037】
イベント検出部32は、画素31の光電変換によって生成される光電流に所定の閾値を超える変化(閾値以上の変化を必要に応じて含む)が発生した場合に、その光電流の変化をイベントとして検出する。イベント検出部32は、イベント(の検出)に対して、イベントフラグを出力する。
【0038】
ここで、画素31で生成される光電流の変化は、画素31に入射する光の光量変化とも捉えることができるので、イベントは、画素31の光量変化(閾値を超える光量変化)であるともいうことができる。
【0039】
イベント検出部32は、電流電圧変換部41、減算部42、及び、出力部43を備える。
【0040】
電流電圧変換部41は、画素31からの光電流を、その光電流の対数に対応する電圧(以下、光電圧ともいう)Voに変換し、減算部42に出力する。
【0041】
電流電圧変換部41は、FET61ないし63で構成される。FET61及び63としては、例えば、N型のMOS FETを採用することができ、FET62としては、例えば、P型のMOS(PMOS) FETを採用することができる。
【0042】
FET61のソースは、FET63のゲートと接続され、FET61のソースとFET63のゲートとの接続点には、画素31による光電流が流れる。FET61のドレインは、電源VDDに接続され、そのゲートは、FET63のドレインに接続される。
【0043】
FET62のソースは、電源VDDに接続され、そのドレインは、FET61のゲートとFET63のドレインとの接続点に接続される。FET62のゲートには、所定のバイアス電圧Vbiasが印加される。
【0044】
FET63のソースは接地される。
【0045】
電流電圧変換部41において、FET61のドレインは電源VDD側に接続されており、ソースフォロアになっている。ソースフォロアになっているFET61のソースには、画素31のPD51が接続され、これにより、FET61(のドレインからソース)には、画素31のPD51の光電変換により生成される電荷による光電流が流れる。FET61は、サブスレッショルド領域で動作し、FET61のゲートには、そのFET61に流れる光電流の対数に対応する光電圧Voが現れる。以上のように、電流電圧変換部41では、FET61により、画素31からの光電流が、その光電流の対数に対応する光電圧Voに変換される。
【0046】
光電圧Voは、FET61のゲートとFET63のドレインとの接続点から、減算部42に出力される。
【0047】
減算部42は、電流電圧変換部41からの光電圧Voについて、現在の光電圧と、現在と微小時間だけ異なるタイミングの光電圧との差を演算し、その差に対応する差信号Voutを、出力部43に出力する。
【0048】
減算部42は、コンデンサ71、オペアンプ72、コンデンサ73、及び、スイッチ74を備える。
【0049】
コンデンサ71の一端は、電流電圧変換部41(のFET62と63との接続点)に接続され、他端は、オペアンプ72の入力端子に接続される。したがって、オペアンプ72の(反転)入力端子には、コンデンサ71を介して光電圧Voが入力される。
【0050】
オペアンプ72の出力端子は、出力部43に接続される。
【0051】
コンデンサ73の一端は、オペアンプ72の入力端子に接続され、他端は、オペアンプ72の出力端子に接続される。
【0052】
スイッチ74は、コンデンサ73の両端の接続をオン/オフするように、コンデンサ73に接続される。スイッチ74は、出力部43からのリセット信号に従ってオン/オフすることにより、コンデンサ73の両端の接続をオン/オフする。
【0053】
コンデンサ73及びスイッチ74は、スイッチドキャパシタを構成する。オフになっているスイッチ74が一時的にオンにされ、再び、オフにされることにより、コンデンサ73は、電荷が放電され、新たに電荷を蓄積することができる状態にリセットされる。
【0054】
スイッチ74をオンした際のコンデンサ71の、電流電圧変換部41側の光電圧VoをVinitと表すとともに、コンデンサ71の容量(静電容量)をC1と表すこととする。オペアンプ72の入力端子は、仮想接地になっており、スイッチ74がオンである場合にコンデンサ71に蓄積される電荷Qinitは、式(1)により表される。
Qinit = C1 ×Vinit ・・・(1)
【0055】
また、スイッチ74がオンである場合には、コンデンサ73の両端は短絡されるため、コンデンサ73に蓄積される電荷はゼロとなる。
【0056】
その後、スイッチ74がオフになった場合の、コンデンサ71の、電流電圧変換部41側の光電圧Voを、Vafterと表すこととすると、スイッチ74がオフになった場合にコンデンサ71に蓄積される電荷Qafterは、式(2)により表される。
Qafter = C1×Vafter ・・・(2)
【0057】
コンデンサ73の容量をC2と表すこととすると、コンデンサ73に蓄積される電荷Q2は、オペアンプ72の出力電圧である差信号Voutを用いて、式(3)により表される。
【0058】
Q2 = -C2×Vout ・・・(3)
【0059】
スイッチ74がオフする前後で、コンデンサ71の電荷とコンデンサ73の電荷とを合わせた総電荷量は変化しないため、式(4)が成立する。
Qinit = Qafter + Q2 ・・・(4)
【0060】
式(4)に式(1)ないし式(3)を代入すると、式(5)が得られる。
Vout = -(C1/C2)×(Vafter - Vinit) ・・・(5)
【0061】
式(5)によれば、減算部42では、光電圧Vafter及びVinitの減算、すなわち、光電圧VafterとVinitとの差Vafter - Vinitに対応する差信号Voutの算出が行われる。式(5)によれば、減算部42の減算のゲインはC1/C2となる。したがって、減算部42は、コンデンサ73のリセット後の光電圧Voの変化をC1/C2倍した電圧を、差信号Voutとして出力する。
【0062】
出力部43は、減算部42が出力する差信号Voutと、イベントの検出に用いられる所定の閾値(電圧)+Vth及び-Vthとを比較する。出力部43は、差信号Voutが閾値+Vth以上である場合、又は、閾値-Vth以下である場合、イベントとしての光量変化が検出された(発生した)として、イベントフラグを出力する。
【0063】
例えば、出力部43は、差信号Voutが閾値+Vth以上である場合に、正極性のイベントが検出されたとして、+1のイベントフラグを出力し、差信号Voutが閾値-Vth以下である場合に、負極性のイベントが検出されたとして、-1のイベントフラグを出力する。
【0064】
イベントが検出されると、出力部43は、スイッチ74を一時的にオンにしてオフにするリセット信号を出力することで、コンデンサ73をリセットする。
【0065】
なお、スイッチ74がオンにされたままにされると、差信号Voutは、所定のリセットレベルに固定され、イベント検出部32では、イベントとしての光量変化を検出することができなくなる。同様に、スイッチ74がオフにされたままにされる場合も、イベント検出部32では、イベントとしての光量変化を検出することができなくなる。
【0066】
以上のように構成される画素回路21では、所定の閾値を超える輝度変化(光量変化)をイベントとして捉え、イベントフラグを出力することができる。画素パラメータ制御部24による、イベントとして捉える輝度変化の閾値の調整は、出力部43の閾値(電圧)+Vth及び-Vthを変更することで行うことができる。あるいはまた、減算部42のコンデンサ71の容量C1とコンデンサ73の容量C2を可変容量とすることで、ゲインC1/C2を調整し、差信号Voutのレベルを変更することで行ってもよい。
【0067】
<イベントデータに応じたフレームデータの生成>
図4は、イベントデータに応じて、フレームデータを生成する方法の例を説明する図である。
【0068】
図4では、x軸、y軸、及び、時間軸tで構成される3次元(時)空間において、イベントデータとしての点が、そのイベントデータに含まれるイベントの時刻t、及び、イベントの位置(としての座標)(x, y)にプロットされている。
【0069】
すなわち、イベントデータに含まれるイベントの時刻t、及び、イベントの位置(x, y)で表される3次元空間上の位置(x, y, t)を、イベントの時空間位置ということとすると、
図4では、イベントデータが、イベントの時空間位置(x, y, t)に、点としてプロットされている。
【0070】
DVS1から出力されるイベントデータを画素値として、所定のフレーム間隔ごとに、所定のフレーム間隔の先頭から所定のフレーム幅内のイベントデータを用いて、イベント画像を生成することができる。
【0071】
フレーム幅及びフレーム間隔は、時間による指定とすることもできるし、イベントデータの数による指定とすることもできる。フレーム幅及びフレーム間隔の一方が、時間による指定であり、他方が、イベントデータの数による指定でもよい。
【0072】
ここで、フレーム幅及びフレーム間隔が、時間による指定であって、フレーム幅とフレーム間隔とが同一である場合、フレームボリュームは、隙間なく接した状態となる。また、フレーム間隔がフレーム幅より大である場合、フレームボリュームは、隙間を空けて並んだ状態となる。フレーム幅がフレーム間隔より大である場合、フレームボリュームは、一部が重複する形で並んだ状態となる。
【0073】
イベント画像の生成は、例えば、イベントの位置(x, y)のフレームの画素(の画素値)を白色に、フレームの他の位置の画素をグレー等の所定の色にセットすることで行うことができる。
【0074】
その他、フレームデータの生成は、イベントデータについて、イベントとしての光量変化の極性を特定することができる場合には、その極性を考慮して行うことができる。例えば、極性が正である場合には、画素を白色にセットし、極性が負である場合には、画素を黒色にセットすることができる。
【0075】
<2.光源フリッカによるイベント発生原理>
図5を参照して、光源フリッカによるイベント発生原理について説明する。
【0076】
電源周波数が50Hzの光源を用いた環境下でイベント検出を行うと、光源は、電源周波数50Hzの2倍の100Hzでフリッカを発生させる。
【0077】
図5に示されるように、電源周波数が50Hzの光源の1周期は20msecであり、DVS1で検出される発光強度は、その倍の10msecの周期でフリッカが発生する。
【0078】
正極性のイベント(以下、正イベントとも称する。)と、負極性のイベント(以下、負イベント)とに分けると、
図5に示されるように、正イベントと負イベントとが5msecで交互に検出される。
【0079】
図6は、実際に、電源周波数50Hzの光源下でイベントを検出した結果を示している。
【0080】
図6では、イベント数を1msec間隔で、10msec分積算した結果、換言すれば、フレーム幅を10msec、フレーム間隔を1msecとした場合の正イベントと負イベントそれぞれのイベント数が示されている。
【0081】
このように、正イベントと負イベントそれぞれを見ると、電源周波数50Hzの光源下では、10msecを一周期としたイベントが発生している。
【0082】
そこで、DVS1のフリッカ検出部23は、正イベントと負イベントとに分けてイベントを積算し、変化の周期性を検知することで、フリッカの有無を検出する。
【0083】
なお、以下の説明では、フリッカ検出部23が、電源周波数50Hzの光源下で発生する10msecを一周期としたフリッカを検出する場合を例にして説明する。
【0084】
<3.フリッカ検出部の第1構成例>
図7は、フリッカ検出部23の第1構成例を示すブロック図である。
【0085】
フリッカ検出部23は、+変化検知部101、-変化検知部102、積算部選択信号生成部103、積算部104-1ないし104-10、積算部105-1ないし105-10、および、フリッカ量推定部106を備える。
【0086】
+変化検知部101は、イベント出力部22から供給されるイベントデータの極性pnのうち、正イベントを検知して、積算部104-1ないし104-10のいずれか一つに供給する。
【0087】
-変化検知部102は、イベント出力部22から供給されるイベントデータの極性pnのうち、負イベントを検知して、積算部105-1ないし105-10のいずれか一つに供給する。
【0088】
積算部選択信号生成部103は、イベント出力部22から供給されるタイムスタンプtnに基づいて、1msecの時間間隔で、積算部104-1ないし104-10を順次切り替える。同様に、積算部選択信号生成部103は、1msecの時間間隔で、積算部105-1ないし105-10を順次切り替える。
【0089】
換言すれば、+変化検知部101で検知された正イベントが、積算部選択信号生成部103からの選択信号により選択された積算部104-1ないし104-10のいずれかに供給される。-変化検知部102で検知された負イベントが、積算部選択信号生成部103からの選択信号により選択された積算部105-1ないし105-10のいずれかに供給される。
【0090】
積算部104-1ないし104-10それぞれは、1msecの時間に発生したイベントを記憶するメモリであり、+変化検知部101から供給される正イベントを記憶する。
【0091】
積算部105-1ないし105-10それぞれは、1msecの時間に発生したイベントを記憶するメモリであり、-変化検知部102から供給される負イベントを記憶する。
【0092】
フリッカ量推定部106は、積算部104-1ないし104-10に記憶された10msec分の正イベントの積算情報と、積算部105-1ないし105-10に記憶された10msec分の負イベントの積算情報とに基づいて、フリッカ量を推定する。
【0093】
すなわち、フリッカ量推定部106は、正イベントおよび負イベントそれぞれについて、
図6に示したような、10msecを一周期とするイベントの周期性を検知することで、特定の周波数(この例では50Hz)で発生しているフリッカ量を推定する。
【0094】
したがって、フリッカ検出部23の第1構成例によれば、輝度変化を示す出力から、フリッカ情報を検出することができる。
【0095】
以上のように、10msecを一周期としたフリッカを検出する場合には、正イベントおよび負イベントそれぞれについて、1msecの時間のイベントを記憶するメモリ(積算部104および105)を10msec分用意する構成が有り得る。
【0096】
しかしながら、第1構成例では、多くのメモリ容量を確保する必要があり、10msecの時間幅で記憶可能なイベント数によっても、メモリ容量はさらに増大する。
【0097】
そこで、以下では、少ないメモリ容量で実現する、その他の構成について説明する。
【0098】
<4.フリッカ検出部の第2構成例>
図8は、フリッカ検出部23の第2構成例を示すブロック図である。
【0099】
フリッカ検出部23は、+変化検知部121、-変化検知部122、畳み込み係数生成部123、積算部124ないし126、および、フリッカ量推定部127を備える。
【0100】
+変化検知部121は、イベント出力部22から供給されるイベントデータの極性pnのうち、正イベントを検知して、積算部125に供給する。+変化検知部121は、正イベントを検知した場合をHigh(1)、検知していない場合をLow(0)とするオンオフ信号で表す。
【0101】
-変化検知部122は、イベント出力部22から供給されるイベントデータのうち、負イベントを検知して、積算部126に供給する。-変化検知部122は、負イベントを検知した場合をHigh(1)、検知していない場合をLow(0)とするオンオフ信号で表す。
【0102】
畳み込み係数生成部123は、タイムスタンプtnを引数として、積算部125および126で行われる畳み込み演算の係数(畳み込み係数)を生成することにより、イベントとしての輝度変化が発生した時刻に応じた係数を生成する。具体的には、畳み込み係数生成部123は、検知したいフリッカ周期のsin関数およびcos関数に、タイムスタンプtnを引数として代入し、その結果得られる値(関数値)を、畳み込み係数として、積算部125および126に供給する。なお、sin関数およびcos関数の代わりに、sin関数およびcos関数を近似した近似関数を用いて、近似関数にタイムスタンプtnを引数として代入して得られる近似値を、積算部125および126に供給してもよい。
【0103】
積算部124は、イベント発生の有無を示すvalid信号に基づいて、イベント数を積算し、積算結果をフリッカ量推定部127に供給する。
【0104】
積算部125は、正イベント発生をオンオフ信号として、畳み込み係数生成部123から供給される畳み込み係数を乗算して積算する。積算結果は、フリッカ量推定部127に供給される。
【0105】
積算部126は、負イベント発生をオンオフ信号として、畳み込み係数生成部123から供給される畳み込み係数を乗算して積算する。積算結果は、フリッカ量推定部127に供給される。
【0106】
フリッカ量推定部127は、積算部124ないし126それぞれから供給される積算結果を用いて、フリッカ周波数の振幅成分を計算し、特定の周波数(フリッカ周波数)で発生しているフリッカ量(フリッカらしさ)を推定する。
【0107】
図9は、
図8に示した第2構成例に係るフリッカ検出部23を実現する論理回路の構成例を示している。
【0108】
+変化検知部121は、AND回路141を備える。
【0109】
-変化検知部122は、インバータ151と、AND回路152とを備える。
【0110】
積算部124は、カウンタ161と、出力部162とを備える。
【0111】
積算部125は、乗算器171および172、積分器173および174、並びに、出力部175および176を備える。
【0112】
積算部126は、乗算器181および182、積分器183および184、並びに、出力部185および186を備える。
【0113】
+変化検知部121のAND回路141には、valid信号と、正極性または負極性を示す極性pnとが入力される。AND回路141は、valid信号と極性pnとのAND(論理積)を演算し、演算結果を、積算部125の乗算器171および172に供給する。
【0114】
-変化検知部122のインバータ151は、入力される極性pnの論理を反転させ、AND回路152に供給する。AND回路152には、valid信号と、反転後の極性pnとが入力される。AND回路152は、valid信号と、反転後の極性pnとのAND(論理積)を演算し、演算結果を、積算部126の乗算器181および182に供給する。
【0115】
畳み込み係数生成部123は、検知したいフリッカ周期のsin関数およびcos関数に、タイムスタンプtnを代入して得られる関数値を、畳み込み係数として、積算部125および126に供給する。
【0116】
なお、本実施の形態では、
図10乃至
図12を参照して説明するように、sin関数およびcos関数を、1と-1の2値を取る信号に近似したsin近似関数およびcos近似関数を用いて、タイムスタンプtnに応じた関数値を算出する。sin近似関数の関数値は、乗算器172および182に供給され、cos近似関数の関数値は、乗算器171および181に供給される。
【0117】
畳み込み係数生成部123は、積算結果の出力タイミングを示すイネーブル信号を、出力部162、出力部175および176、並びに、出力部185および186に供給する。
【0118】
積算部124のカウンタ161は、イベント発生の有無を示すvalid信号に基づいて、イベント数sumをカウントし、カウント結果を出力部162に供給する。
【0119】
出力部162は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオン(High)のタイミングで、カウンタ161のイベント数sumを取得して、フリッカ量推定部127(
図8)に供給する。
【0120】
積算部125の乗算器171は、+変化検知部121のAND回路141のAND演算結果と、cos近似関数の関数値とを乗算した乗算結果を、積分器173に供給する。乗算器172は、+変化検知部121のAND回路141のAND演算結果と、sin近似関数の関数値とを乗算した乗算結果を、積分器174に供給する。
【0121】
積分器173は、乗算器171から供給される乗算結果を積分し、出力部175に供給する。積分器174は、乗算器172から供給される乗算結果を積分し、出力部176に供給する。
【0122】
出力部175は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオンのタイミングで、積分器173の積分値cos_posを取得して、フリッカ量推定部127に供給する。
【0123】
出力部176は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオンのタイミングで、積分器174の積分値sin_posを取得して、フリッカ量推定部127に供給する。
【0124】
積算部126の乗算器181は、-変化検知部122のAND回路152のAND演算結果と、cos近似関数の関数値とを乗算した乗算結果を、積分器183に供給する。乗算器182は、-変化検知部122のAND回路152のAND演算結果と、sin近似関数の関数値とを乗算した乗算結果を、積分器184に供給する。
【0125】
積分器183は、乗算器181から供給される乗算結果を積分し、出力部185に供給する。積分器184は、乗算器182から供給される乗算結果を積分し、出力部186に供給する。
【0126】
出力部185は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオンのタイミングで、積分器183の積分値cos_negを取得して、フリッカ量推定部127に供給する。
【0127】
出力部186は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオンのタイミングで、積分器184の積分値sin_negを取得して、フリッカ量推定部127に供給する。
【0128】
フリッカ量推定部127は、積算部124ないし126それぞれから供給される積算結果を用いて、フリッカ周波数の振幅成分を計算し、フリッカ量(フリッカらしさ)を推定する。
【0129】
具体的には、フリッカ量推定部127は、イベント数sum、積分値cos_pos、sin_pos、cos_neg、およびsin_negを用いた式(6)または式(7)により、フリッカ量EST_FLを算出する。
【数1】
【0130】
積分値cos_posは、cos関数の位相に反応した正イベントを表し、積分値sin_posは、sin関数の位相に反応した正イベントを表す。積分値cos_negは、cos関数の位相に反応した負イベントを表し、積分値sin_negは、sin関数の位相に反応した負イベントを表す。ターゲットとする周期のフリッカが発生していない場合には、検出されるイベントは略均一となり、フリッカ量EST_FLは小さい値となる。一方、ターゲットとする周期のフリッカが発生している場合には、式(6)または式(7)の分子の値が大きくなり、フリッカ量EST_FLは大きい値となる。
【0131】
なお、イネーブル信号がオンとなるタイミングは、例えば、検出したいフリッカ周期(1周期)と同じ10msecとすることができる。この場合、出力部162、175、176、185、および、186は、フリッカ周期単位で、イベント数sumや、積分値cos_pos、sin_pos、cos_neg、および、sin_negを積算する。あるいはまた、積算する期間は、フリッカ周期の整数倍の周期としてもよい。
【0132】
図10は、畳み込み係数生成部123が生成するsin関数およびcos関数、または、それを近似したsin近似関数およびcos近似関数の例を示している。
【0133】
畳み込み係数生成部123は、
図10の上段に示されるように、検知したいフリッカ周期を1周期とするsin関数およびcos関数に対して、タイムスタンプtnを代入して得られる関数値を生成してもよいが、本実施の形態では、
図10の下段に示されるような、sin関数およびcos関数を、1と-1の2値を取る信号に近似したsin近似関数およびcos近似関数を用いて、タイムスタンプtnに応じた関数値を算出する。
【0134】
sin近似関数およびcos近似関数をsin_approx(t)およびcos_approx(t)で表すと、sin近似関数およびcos近似関数は、次式で表すことができる。
【数2】
【0135】
式(8)および式(9)のfは、フリッカ周期であり、tは、タイムスタンプtnである。この近似により、sin近似関数およびcos近似関数は、
図10に示されるように、sin関数およびcos関数が正のときには+1を、sin関数およびcos関数が負のときには-1を出力する信号に近似される。いまフリッカ周期は10msecとしているので、sin近似関数およびcos近似関数の出力は、5msec単位で、+1と-1とが切り替わる。
【0136】
このようなsin近似関数およびcos近似関数は、例えば、畳み込み係数生成部123内において1周期の各時刻(タイムスタンプtn)に対して、+1または-1を対応付けたテーブルを記憶し、テーブルに基づいてsin近似関数およびcos近似関数の関数値を出力する構成を採用することができる。
【0137】
その他、sin近似関数およびcos近似関数は、
図11に示されるような論理回路で、実現することもできる。
【0138】
図11は、
図10に示したsin近似関数およびcos近似関数を採用した場合の畳み込み係数生成部123の回路構成例を示している。
【0139】
図11の畳み込み係数生成部123は、フリッカ周期に対応したカウントを行うカウンタ201を備える。
【0140】
また、畳み込み係数生成部123は、タイムスタンプtnに応じたcos近似関数の関数値cos_approxを出力する構成として、比較器202および203、セレクタ204、並びに、フリップフロップ205を有する。
【0141】
さらに、畳み込み係数生成部123は、タイムスタンプtnに応じたsin近似関数の関数値sin_approxを出力する構成として、比較器211および212、セレクタ213、並びに、フリップフロップ214を有する。
【0142】
さらに、畳み込み係数生成部123は、イネーブル信号を出力する構成として、比較器221を有する。
【0143】
カウンタ201には、フリッカ周期に対応したカウント数cycleが入力され、カウンタ201は、カウント値cntを、0から開始してカウント数cycleまでカウントすると、カウント値cntをリセットして、再度0からカウントする処理を繰り返す。カウント値cntは、比較器202、203、211、212、および、221に供給される。
【0144】
比較器202には、設定値cos_ptimが供給され、比較器202は、カウンタ201から供給されるカウント値cntと設定値cos_ptimを比較し、設定値cos_ptimと一致したタイミングで、+1をセレクタ204に出力する。設定値cos_ptim以外のカウント値cntでは、例えば、0が出力される。
【0145】
比較器203には、設定値cos_ntimが供給され、比較器203は、カウンタ201から供給されるカウント値cntと設定値cos_ntimを比較し、設定値cos_ntimと一致したタイミングで、-1をセレクタ204に出力する。設定値cos_ntim以外のカウント値cntでは、例えば、0が出力される。
【0146】
セレクタ204は、比較器202から+1が供給されるタイミングで、+1を選択してフリップフロップ205に出力し、比較器202から-1が供給されるタイミングで、-1を選択してフリップフロップ205に出力し、それ以外のタイミングでは、フリップフロップ205からフィードバックされる値をフリップフロップ205に出力する。
【0147】
フリップフロップ205は、セレクタ204から入力される値(+1または-1)を、次に更新されるまで保持して出力する。フリップフロップ205から出力される値が、cos近似関数の関数値cos_approxとなる。
【0148】
比較器211には、設定値sin_ptimが供給され、比較器211は、カウンタ201から供給されるカウント値cntと設定値sin_ptimを比較し、設定値sin_ptimと一致したタイミングで、+1をセレクタ213に出力する。設定値sin_ptim以外のカウント値cntでは、例えば、0が出力される。
【0149】
比較器212には、設定値sin_ntimが供給され、比較器212は、カウンタ201から供給されるカウント値cntと設定値sin_ntimを比較し、設定値sin_ntimと一致したタイミングで、-1をセレクタ213に出力する。設定値sin_ntim以外のカウント値cntでは、例えば、0が出力される。
【0150】
セレクタ213は、比較器211から+1が供給されるタイミングで、+1を選択してフリップフロップ214に出力し、比較器212から-1が供給されるタイミングで、-1を選択してフリップフロップ214に出力し、それ以外のタイミングでは、フリップフロップ214からフィードバックされる値をフリップフロップ214に出力する。
【0151】
フリップフロップ214は、セレクタ213から入力される値(+1または-1)を、次に更新されるまで保持して出力する。フリップフロップ214から出力される値が、sin近似関数の関数値sin_approxとなる。
【0152】
比較器221には、設定値(cycle-1)が供給され、比較器221は、カウンタ201から供給されるカウント値cntと設定値(cycle-1)を比較し、設定値(cycle-1)と一致したタイミングで、イネーブル信号をHighに設定する。設定値(cycle-1)以外のカウント値cntでは、Lowのイネーブル信号が出力される。
【0153】
図12は、
図11に示した論理回路で動作させた場合のタイミングチャートを示している。
【0154】
図11の論理回路により、
図10に示したsin近似関数sin_approx(t)およびcos近似関数cos_approx(t)が実現されている。
【0155】
イネーブル信号は、フレーム周期、具体的には電源周波数50Hzの光源下で発生するフリッカを検出する場合には10msec単位で、Highとなっている。
【0156】
<5.フリッカ検出部の第3構成例>
図13は、フリッカ検出部23の第3構成例を示すブロック図である。
【0157】
なお、
図13において、
図9に示した第2構成例に係るフリッカ検出部23の構成と対応する部分には同一の符号を付してあり、その部分の説明は適宜省略する。
【0158】
図13のフリッカ検出部23は、畳み込み係数生成部123、変化検知部251、積算部124および252、並びに、フリッカ量推定部253を備える。
【0159】
畳み込み係数生成部123と積算部124は、
図9に示した第2構成例に係るフリッカ検出部23の構成と同一であり、変化検知部251、積算部252、および、フリッカ量推定部253が、
図9の+変化検知部121、-変化検知部122、積算部125および126、並びに、フリッカ量推定部127に代えて設けられている。
【0160】
図9に示した第2構成例では、イベントの極性と、sin近似関数およびcos近似関数の関数値との乗算結果を、正極性と負極性とで個別に積算した後、フリッカ量推定部127において減算する構成とされていた。
【0161】
これに対して、
図13の第3構成例では、イベントの極性と、sin近似関数およびcos近似関数の関数値との乗算結果を、極性に応じて加減算してから積算する構成とされている。
【0162】
変化検知部251は、セレクタ271および272を有する。
【0163】
セレクタ271は、イベント出力部22からイベントの極性pnが供給されたタイミングで、+1または-1を選択してセレクタ272に出力する。具体的には、セレクタ271は、イベントの極性pnとして正極性を表す+1が供給された場合、+1を選択してセレクタ272に出力し、イベントの極性pnとして負極性を表す-1が供給された場合、-1を選択してセレクタ272に出力する。
【0164】
セレクタ272は、イベント発生を示すHighのvalid信号が供給されたタイミングでセレクタ271の出力(+1または-1)を選択して積算部252に出力し、それ以外のタイミングでは0を選択して積算部252に出力する。したがって、セレクタ272は、+1、-1、または0のいずれかを積算部252に出力する。
【0165】
積算部252は、乗算器281および282、積分器283および284、並びに、出力部285および286を有する。
【0166】
乗算器281は、変化検知部251のセレクタ272の出力(+1、-1、または0のいずれか)と、畳み込み係数生成部123から供給されるcos近似関数の関数値とを乗算した乗算結果を、積分器283に供給する。セレクタ272の出力が0である場合には、乗算に影響がないので、乗算器281は、+1または-1と、cos近似関数の関数値とを乗算した乗算結果を、積分器283に供給する。
【0167】
乗算器282は、変化検知部251のセレクタ272の出力(+1、-1、または0のいずれか)と、畳み込み係数生成部123から供給されるsin近似関数の関数値とを乗算した乗算結果を、積分器284に供給する。セレクタ272の出力が0である場合には、乗算に影響がないので、乗算器282は、+1または-1と、sin近似関数の関数値とを乗算した乗算結果を、積分器284に供給する。
【0168】
積分器283は、乗算器281から供給される乗算結果を積分し、出力部285に供給する。積分器284は、乗算器282から供給される乗算結果を積分し、出力部286に供給する。
【0169】
出力部285は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオンのタイミングで、積分器283の積分値cos_sumを取得して、フリッカ量推定部253に供給する。
【0170】
出力部286は、例えばフリップフロップで構成され、畳み込み係数生成部123から供給されるイネーブル信号がオンのタイミングで、積分器284の積分値sin_sumを取得して、フリッカ量推定部253に供給する。
【0171】
フリッカ量推定部253は、出力部162、285、および286から供給される積算結果を用いて、フリッカ周波数の振幅成分を計算し、フリッカ量(フリッカらしさ)を推定する。
【0172】
具体的には、フリッカ量推定部253は、イベント数sum、積分値cos_sumおよびsin_sumを用いた式(10)または式(11)により、フリッカ量EST_FLを算出する。
【数3】
【0173】
式(10)および式(11)においても、ターゲットとする周期のフリッカが発生していない場合には、フリッカ量EST_FLは小さい値となり、ターゲットとする周期のフリッカが発生している場合には、フリッカ量EST_FLは大きい値となる。
【0174】
図13の第3構成例では、
図9の第2構成例のように、正極性と負極性とを個別に積算してから減算するのではなく、正極性と負極性とに応じて加減算してから積算する構成とすることより、乗算器と積分器とからなる積算部を1/2の構成で実現することができ、より軽量に演算を行うことができる。
【0175】
<6.フリッカ制御処理の処理フロー>
図14のフローチャートを参照して、DVS1によるフリッカ制御処理について説明する。この処理は、例えば、DVS1に対してイベント検出(撮像)の開始が指示されたとき、開始される。
【0176】
初めに、ステップS1において、画素アレイ部11は、輝度変化をイベントとして検出する。イベントが検出された場合、イベントフラグが、イベントを検出した画素回路21からイベント出力部22へ供給される。
【0177】
ステップS2において、イベント出力部22は、画素回路21からのイベントフラグを取得し、イベントデータを生成して、DVS1の外部と、フリッカ検出部23とに出力する。具体的には、イベント出力部22は、イベントデータとして、イベントフラグに対応するイベントの極性pnに、イベントの位置情報である画素回路21の座標(xn,yn)と、イベントの時刻情報であるタイムスタンプtnとを付加し、出力フラグであるvalid信号をHighにして、DVS1の外部と、フリッカ検出部23とに出力する。
【0178】
ステップS3において、フリッカ検出部23は、所定の蓄積期間が経過したかを判定する。所定の蓄積期間は、畳み込み係数生成部123がイネーブル信号をHighとする期間(周期)であり、例えば、フリッカ周期と同じか、または、フリッカ周期の整数倍の期間とすることができる。
【0179】
ステップS3で、所定の蓄積期間が経過したと判定されるまで、ステップS1ないしS3の処理が繰り返される。これにより、イベントデータの発生に応じてイベント数および積分値が更新される。そして、ステップS3で、所定の蓄積期間が経過したと判定された場合、処理はステップS4に進む。
【0180】
ステップS4において、フリッカ検出部23は、所定の蓄積期間にイベント出力部22から供給されたイベントデータを用いて、フリッカ量を検出(推定)し、DVS1の外部と、画素パラメータ制御部24とに出力する。フリッカ量は、式(6)または式(7)のフリッカ量EST_FLや、式(10)または式(11)のフリッカ量EST_FLにより算出される。
【0181】
ステップS5において、画素パラメータ制御部24は、フリッカ検出部23から供給されたフリッカ量に基づいて、フリッカが検出されたかを判定する。例えば、算出されたフリッカ量EST_FLが、所定の閾値以上である場合、画素パラメータ制御部24は、フリッカが検出されたと判定する。
【0182】
ステップS5で、フリッカが検出されていないと判定された場合、処理はステップS1に戻り、上述したステップS1ないしS5の処理が繰り返される。
【0183】
一方、ステップS5で、フリッカが検出されたと判定された場合、処理はステップS6に進み、画素パラメータ制御部24は、検出されたフリッカ量に基づいて、画素回路21の感度パラメータを調整(制御)する。例えば、画素パラメータ制御部24は、画素回路21の出力部43の閾値(電圧)+Vth及び-Vthを変更する。
【0184】
その後、処理はステップS1に戻り、上述した処理が繰り返される。
【0185】
図15は、DVS1によるフリッカ制御処理の処理結果の例を示している。
【0186】
図15の画像301で示される撮影シーンにおいて、電源周波数が50Hzの光源を用いた環境下で、DVS1によるイベント検出が実行された。撮影シーンは、背景の前を、画面内の右から左へ人が歩いて移動する様子を示している。画像301は、一般的なCMOSイメージセンサで撮影した画像である。
【0187】
画像302は、DVS1によるイベント検出のフレームデータ(フレーム画像)である。画像302は、イベント検出センサとしてのDVS1の感度が高い状態であり、画面内全体でイベントが検出され、移動している人を検出したイベントはノイズに埋もれている。
【0188】
画像303は、フリッカ制御処理により画像302よりもセンサ感度を落とした後の、イベント検出のフレームデータ(フレーム画像)である。
【0189】
画像303では、フリッカを捉えたノイズは低減され、フリッカより大きい動き(主に、移動している人)のみが、イベントとして検出されている。
【0190】
したがって、フリッカ制御処理によれば、輝度変化を示す出力から、フリッカ量(フリッカ情報)を検出することができる。そして、フリッカ量が多い場合に、フリッカを抑制し、優位なイベントのみを抽出することができる。
【0191】
なお、上述したフリッカ量制御処理では、感度を下げる処理についてのみ説明したが、センサ感度が低すぎる場合にも、センサ感度を上げて(輝度変化の閾値を下げて)、より微小なイベントを検出するような制御も可能である。
【0192】
<7.フリッカ検出部の第4構成例>
次に、フリッカ検出部23の第4構成例について説明する。
【0193】
次の第4構成例では、
図16に示されるように、画素アレイ部11全体の複数の画素回路21をM個(M>1)のブロックBLに分割し、ブロックBLごとに、フリッカ量が検出される。
図16の例は、M=16、即ち画素アレイ部11全体の複数の画素回路21を、4x4の16個のブロックBLに分割した例を示している。なお、垂直方向と水平方向の分割数は同じである必要はない。
【0194】
図17は、第4構成例に係るフリッカ検出部23の構成例を示すブロック図である。
【0195】
図17において、
図8の第2構成例と対応する部分については同一の符号を付してあり、その部分の説明は適宜省略する。
【0196】
図17の第4構成例は、積算部125および126が、分割されたブロックBLの数と同じ個数(すなわちM個)設けられている点と、ブロック選択部331が新たに設けられている点が、
図8の第2構成例と異なる。
【0197】
ブロック選択部331には、イベント出力部22から供給されるイベントデータの位置情報である座標(xn,yn)が供給される。ブロック選択部331は、積算部125-1ないし125-Mのうち、イベントが発生した位置(ブロックBL)に対応する積算部125-m(mは1ないしMのいずれか1つ)を選択する。積算部126-1ないし126-Mについても同様に、ブロック選択部331は、積算部126-1ないし126-Mのうち、イベントが発生した位置(ブロックBL)に対応する積算部126-mを選択する。
【0198】
+変化検知部121で検知された正イベント検知結果は、選択された積算部125-mに供給される。-変化検知部122で検知された負イベント検知結果は、選択された積算部126-mに供給される。
【0199】
積算部125-1ないし125-M、および、積算部126-1ないし126-Mそれぞれの動作は、
図8および
図9の積算部125と同様である。従って、第4構成例では、
図9の積分値cos_pos、sin_pos、cos_neg、およびsin_negが、ブロックBL単位で計算される。
【0200】
フリッカ量推定部127は、ブロックBL単位で、フリッカ量EST_FLを算出する。
【0201】
以上の第4構成例に係るフリッカ検出部23によれば、ブロックBL単位で、フリッカ量を推定することができる。
【0202】
画素パラメータ制御部24は、ブロックBL単位で、画素回路21の感度パラメータを調整(制御)する。
【0203】
また、フリッカは画素アレイ部11内の広い領域で全体的に発生する場合が多いため、画素パラメータ制御部24は、画面全体で発生している場合には、イベント検出の感度を下げ、一部のブロックBLに集中して検出されている場合には、イベント検出の感度を変更しないように制御することができる。
【0204】
あるいはまた、画素パラメータ制御部24が画面全体で感度パラメータを変更する場合においても、複数のブロックBLのうち、フリッカ量が所定の順番のブロックBLのフリッカ量に応じて、感度パラメータを変更するような制御が可能である。例えば、フリッカ量が少ない方から2番目のブロックBLのフリッカ量に基づいて、感度パラメータを変更するような制御を行うことができる。
【0205】
<8.DVSのその他の構成例>
図18は、DVS1のその他の構成例を示すブロック図である。
【0206】
図18においては、
図1と対応する部分については同一の符号を付してあり、その部分の説明は適宜省略する。
【0207】
図18では、フリッカ検出部23-1ないし23-R(R>1)が設けられており、フリッカ検出部23が複数個(R個)設けられている点が、
図1のDVS1と異なり、その他の点で、
図1のDVS1と共通する。
【0208】
図18のDVS1は、複数のフリッカ検出部23-1ないし23-Rを備えることにより、複数のフリッカ周波数を検知することができる。すなわち、フリッカ検出部23-1ないし23-Rそれぞれは、検出対象として設定されるフリッカの周波数が異なる。
【0209】
例えば、R=2として、フリッカ検出部23-1および23-2において検出するフリッカの周波数を、100Hzと120Hzと設定すると、西日本地域と東日本地域とに対応したフリッカの検知が可能となる。
【0210】
あるいはまた、フリッカ検出部23-1ないし23-Rにおいて検出するフリッカの周波数を、25Hz、50hz、100Hz、200Hz、400Hz、・・・のように設定すると、任意の周波数のイベントのみを検出することができ、フリッカを含む周波数解析が可能となる。
【0211】
<9.DVSのチップ構成例>
図19は、DVS1のチップ構成例を示す斜視図である。
【0212】
DVS1は、例えば、
図19のAに示されるように、第1のダイ(基板)351と、第2のダイ(基板)352とが積層された1つのチップで構成することができる。
【0213】
第1のダイ351には、画素アレイ部11(としての回路)が構成され、第2のダイ352には、信号処理部12を含むロジック回路が構成される。
【0214】
なお、DVS1は、第1のダイ351と第2のダイ352とに加えて、もう1つのロジックダイを積層した3層で構成してもよい。あるいはまた、4層以上のダイ(基板)の積層で構成してもよい。
【0215】
あるいはまた、DVS1は、
図19のBに示されるように、第1のチップ371と、第2のチップ372とを、中継基板(インターポーザ基板)373上に形成して構成することができる。例えば、第1のチップ371には、画素アレイ部11(としての回路)が含まれ、第2のチップ372には、信号処理部12が含まれるように構成することができる。
【0216】
なお、第1のチップ371と第2のチップ372とは、
図19のBのように、中継基板373を用いて一体とせずに、別々に分離されてもよい。
【0217】
以上、本技術を適用してDVS1によれば、DVS1の出力から、フリッカ情報を検出することができる。
【0218】
また、フリッカ検出部23の第2構成例ないし第4構成例を採用した場合には、フリッカ検出部23の第1構成例を採用した場合よりも、少ないメモリ容量で、フリッカの検出を実現することができる。
【0219】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0220】
例えば、上述した複数の構成例の全てまたは一部を組み合わせた形態を採用することができる。
【0221】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0222】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0223】
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、本明細書に記載されたもの以外の効果があってもよい。
【0224】
なお、本技術は、以下の構成を取ることができる。
(1)
受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、
前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、
前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部と
を備える信号処理装置。
(2)
前記変化検知部は、前記第1の輝度変化を第1の値で出力し、前記第2の輝度変化を第2の値で出力する
前記(1)に記載の信号処理装置。
(3)
前記変化検知部は、
前記第1の輝度変化を検知する第1の変化検知部と、
前記第2の輝度変化を検知する第2の変化検知部と
を有する
前記(1)に記載の信号処理装置。
(4)
前記第1の変化検知部および前記第2の変化検知部は、前記第1の輝度変化または前記第2の輝度変化をオンオフ信号として表す
前記(3)に記載の信号処理装置。
(5)
前記係数生成部は、前記時刻に応じたsin関数およびcos関数の値を前記係数として生成する
前記(1)乃至(4)のいずれかに記載の信号処理装置。
(6)
前記係数生成部は、検知したい周期に応じた前記sin関数およびcos関数の値を前記係数として生成する
前記(5)に記載の信号処理装置。
(7)
前記係数生成部は、前記sin関数およびcos関数を近似したsin近似関数およびcos近似関数の値を前記係数として生成する
前記(5)または(6)に記載の信号処理装置。
(8)
前記sin近似関数およびcos近似関数は、前記sin関数およびcos関数を、1と-1の2値を取る信号に近似した関数である
前記(7)に記載の信号処理装置。
(9)
前記係数生成部は、前記時刻に対して1または-1を対応付けたテーブルに基づいて、1または-1を出力する
前記(8)に記載の信号処理装置。
(10)
前記積算部の積算結果に基づいて、前記輝度変化が特定の周波数で発生しているフリッカ量を推定するフリッカ量推定部をさらに備える
前記(1)乃至(9)のいずれかに記載の信号処理装置。
(11)
前記変化検知部と、
前記係数生成部と、
前記積算部と、
前記フリッカ量推定部と
を備えるフリッカ検出部を複数備え、
複数の前記フリッカ検出部それぞれは、前記フリッカ量を推定する周波数が異なる
前記(10)に記載の信号処理装置。
(12)
前記フリッカ量推定部の推定結果に基づいて、前記受光部の感度パラメータを制御する制御部をさらに備える
前記(10)または(11)に記載の信号処理装置。
(13)
前記受光部は、複数のブロックに分割され、
前記複数のブロックに対応して複数の前記積算部を備え、
複数の前記積算部は、前記輝度変化が発生したブロック単位で、前記乗算結果を積算する
前記(1)乃至(12)のいずれかに記載の信号処理装置。
(14)
信号処理装置が、
受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出し、
前記輝度変化が検出された時刻に応じた係数を生成し、
前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する
信号処理方法。
(15)
入射光の光電変換を行って電気信号を生成する画素が格子状に配置された受光部と、
前記受光部で検出された輝度変化のうち、プラス方向の第1の輝度変化と、マイナス方向の第2の輝度変化を検出する変化検知部と、
前記輝度変化が検出された時刻に応じた係数を生成する係数生成部と、
前記第1の輝度変化と前記係数の乗算結果とを積算するとともに、前記第2の輝度変化と前記係数の乗算結果とを積算する積算部と
を備える検出センサ。
【符号の説明】
【0225】
1 DVS, 11 画素アレイ部, 12 信号処理部, 21 画素回路, 22 イベント出力部, 23 フリッカ検出部, 24 画素パラメータ制御部, 31 画素, 32 イベント検出部, 121 +変化検知部, 122 -変化検知部, 123 畳み込み係数生成部, 124ないし126 積算部, 127 フリッカ量推定部, 251 変化検知部, 252 積算部, 253 フリッカ量推定部, 331 ブロック選択部