(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022178317
(43)【公開日】2022-12-02
(54)【発明の名称】画像処理装置、画像処理方法、並びにプログラム
(51)【国際特許分類】
H04N 5/225 20060101AFI20221125BHJP
H04N 5/232 20060101ALI20221125BHJP
【FI】
H04N5/225 800
H04N5/232 290
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021085043
(22)【出願日】2021-05-20
(71)【出願人】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】山本 俊昭
【テーマコード(参考)】
5C122
【Fターム(参考)】
5C122DA03
5C122EA67
5C122FA18
5C122HA42
5C122HA89
5C122HB01
(57)【要約】
【課題】高フレームレートの動画像を生成する。
【解決手段】フレームベースの第1の撮像素子と、イベントベースの第2の撮像素子と、第1の撮像素子からのフレームデータと、第2の撮像素子からのイベントデータを用いて、補間フレームを生成する生成部とを備える。生成部は、補間フレームに、所定の時間内に発生したイベントデータを積算した積算イベントデータを加算することで補間フレームを生成する。本技術は、例えば、フレームベースの撮像素子とイベントベースの撮像素子を備える画像処理装置に適用できる。
【選択図】
図5
【特許請求の範囲】
【請求項1】
フレームベースの第1の撮像素子と、
イベントベースの第2の撮像素子と、
前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する生成部と
を備える画像処理装置。
【請求項2】
前記生成部は、前記補間フレームに、所定の時間内に発生した前記イベントデータを積算した積算イベントデータを加算することで前記補間フレームを生成する
請求項1に記載の画像処理装置。
【請求項3】
前記生成部は、前記第1の撮像素子の第1の露光時間で得られた第1のフレームデータと、前記第1の露光時間内に得られた複数の前記積算イベントデータを用いて、前記第1の露光時間内の先頭の補間フレームを生成する
請求項2に記載の画像処理装置。
【請求項4】
前記生成部は、前記補間フレームに、所定の時間内に発生した前記イベントデータを積算した積算イベントデータを加算または減算することで前記補間フレームを生成する
請求項1に記載の画像処理装置。
【請求項5】
前記生成部は、
第1の露光時間内の補間フレームとして生成された複数の補間フレームのうちの最後尾の補間フレームと、
前記第1の露光時間よりも後の第2の露光時間において前記第1の撮像素子で得られた第2のフレームデータと、前記第2の露光時間内に得られた前記積算イベントデータを加算することで、生成された複数の補間フレームのうちの先頭の補間フレームと、
前記第1の露光時間と前記第2の露光時間との間の非露光時間において得られた前記積算イベントデータと
を用いて、前記非露光時間における補間フレームを生成する
請求項4に記載の画像処理装置。
【請求項6】
前記生成部は、
前記非露光時間の前半に位置する前記補間フレームを生成する場合、前記最後尾の補間フレームと、前記非露光時間の前半に得られた前記積算イベントデータを用いて前記補間フレームを生成し、
前記非露光時間の後半に位置する前記補間フレームを生成する場合、前記先頭の補間フレームと、前記非露光時間の後半に得られた前記積算イベントデータを用いて前記補間フレームを生成する
請求項5に記載の画像処理装置。
【請求項7】
露光時間内の所定の時刻における静止画像を、前記露光時間内に取得された前記イベントデータを、前記フレームデータに加算および減算することで生成する
請求項1に記載の画像処理装置。
【請求項8】
フレームベースの第1の撮像素子と、
イベントベースの第2の撮像素子と
を備える画像処理装置が、
前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する
画像処理方法。
【請求項9】
フレームベースの第1の撮像素子と、
イベントベースの第2の撮像素子と
を備える画像処理装置を制御するコンピュータに、
前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する
ステップを含む処理を実行させるためのプログラム。
【請求項10】
イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する生成部
を備える画像処理装置。
【請求項11】
前記第1のフレームと前記第2のフレームは、フレームベースの撮像素子により撮像されたフレームである
請求項10に記載の画像処理装置。
【請求項12】
前記第1のフレームと前記第2のフレームは、前記生成部により生成された補間フレームである
請求項10に記載の画像処理装置。
【請求項13】
画像処理装置が、
イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する
画像処理方法。
【請求項14】
コンピュータに、
イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する
ステップを含む処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、画像処理装置、画像処理方法、並びにプログラムに関し、例えば、画像を補間することで高フレームレートとするようにした画像処理装置、画像処理方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、撮像装置などにおいて、垂直同期信号などの同期信号に同期して画像データ(フレーム)を撮像する同期型の撮像素子が用いられている。この一般的な同期型の撮像素子では、同期信号の周期、例えば、1/60秒ごとに画像データが取得される。
【0003】
近年、画素アドレス毎に、その画素の輝度の変化量が閾値を超えた旨をアドレスイベントとして検出する非同期型の撮像素子も用いられるようになりつつある。このように、画素毎にアドレスイベントを検出する撮像素子は、DVS(Dynamic Vision Sensor)と称されることもある。
【0004】
非同期型の撮像素子からのデータにより同期型の撮像素子のフレームレートを制御することが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、低照度の被写体を撮影しているような場合でも、高フレームレートの撮影が行えるようにすることが望まれている。
【0007】
本技術は、このような状況に鑑みてなされたものであり、高フレームレートの動画像を生成することができるようにするものである。
【課題を解決するための手段】
【0008】
本技術の一側面の第1の画像処理装置は、フレームベースの第1の撮像素子と、イベントベースの第2の撮像素子と、前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する生成部とを備える画像処理装置である。
【0009】
本技術の一側面の第1の画像処理方法は、フレームベースの第1の撮像素子と、イベントベースの第2の撮像素子とを備える画像処理装置が、前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する画像処理方法である。
【0010】
本技術の一側面の第1のプログラムは、フレームベースの第1の撮像素子と、イベントベースの第2の撮像素子とを備える画像処理装置を制御するコンピュータに、前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成するステップを含む処理を実行させるためのプログラムである。
【0011】
本技術の一側面の第2の画像処理装置は、イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する生成部を備える画像処理装置である。
【0012】
本技術の一側面の第2の画像処理方法は、画像処理装置が、イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する画像処理方法である。
【0013】
本技術の一側面の第2のプログラムは、コンピュータに、イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成するステップを含む処理を実行させるためのプログラムである。
【0014】
本技術の一側面の第1の画像処理装置、画像処理方法、並びにプログラムにおいては、フレームベースの第1の撮像素子と、イベントベースの第2の撮像素子とが備えられ、第1の撮像素子からのフレームデータと、第2の撮像素子からのイベントデータが用いられて、補間フレームが生成される。
【0015】
本技術の一側面の第2の画像処理装置、画像処理方法、並びにプログラムにおいては、イベントベースの撮像素子から得られたイベントデータと、フレームデータとが用いられて、第1のフレームと第2のフレームの間を補間する補間フレームが生成される。
【0016】
なお、画像処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【0017】
また、プログラムは、伝送媒体を介して伝送することにより、または、記録媒体に記録して、提供することができる。
【図面の簡単な説明】
【0018】
【
図1】本技術を適用した画像処理装置の一実施の形態の構成を示す図である。
【
図4】フレーム補間の処理について説明するための図である。
【
図5】フレーム内補間の処理について説明するための図である。
【
図7】フレーム間補間の処理について説明するための図である。
【
図8】カメラ部の処理について説明するためのフローチャートである。
【
図9】イベント積算部の処理について説明するためのフローチャートである。
【
図10】補間処理について説明するためのフローチャートである。
【
図11】フレーム内補間の処理について説明するためのフローチャートである。
【
図12】フレーム間補間の処理について説明するためのフローチャートである。
【
図13】急激な輝度変化時の対処法について説明するための図である。
【
図14】静止画像の生成について説明するための図である。
【
図15】静止画像の生成について説明するための図である。
【
図16】パーソナルコンピュータの構成例を示す図である。
【発明を実施するための形態】
【0019】
以下に、本技術を実施するための形態(以下、実施の形態という)について説明する。
【0020】
<画像処理装置の構成>
図1は、本技術を適用した画像処理装置の一実施の形態の構成を示す図である。本技術を適用した画像処理装置11は、レンズ21、カメラ部22、画像生成部23を備える。
【0021】
カメラ部22は、ハーフミラー31、フレームベースイメージャ32、イベントベースイメージャ33、イメージャ間補正演算部34、およびキャリブレーション部35を備える。画像生成部23は、イベント積算部41、データ保存部42、および補間画像生成部43を備える。
【0022】
画像処理装置11は、垂直同期信号などの同期信号に同期して画像データ(フレーム)を撮像する同期型の撮像素子としてフレームベースイメージャ32を備える。フレームベースイメージャ32では、同期信号の周期、例えば、1/60秒毎に画像データが取得される。
【0023】
画像処理装置11は、画素アドレス毎に、その画素の輝度の変化量が閾値を超えた旨をアドレスイベントとして検出する非同期型の撮像素子としてイベントベースイメージャ33を備える。イベントベースイメージャ33のような画素毎にアドレスイベントを検出する撮像素子は、DVS(Dynamic Vision Sensor)と称されることがある。
【0024】
画像処理装置11は、動画像や静止画像を撮影する。画像処理装置11は、フレームベースイメージャ32で撮影された動画像(連続したフレーム)に、イベントベースイメージャ33から得られるイベントデータを用いて、補間するフレーム(以下、補間フレームと記述する)を生成し、高フレームレートの動画像を生成する。画像処理装置11は、フレームベースイメージャ32で撮影された静止画像(1フレーム)に、イベントベースイメージャ33からの得られるイベントデータを用いて、ノイズを低減した静止画像を生成する。
【0025】
画像処理装置11のレンズ21を介してカメラ部22に入力された光は、ハーフミラー31により分光され、フレームベースイメージャ32とイベントベースイメージャ33に、それぞれ供給される。ハーフミラー31の代わりに、プリズムなどでも良い。
【0026】
フレームベースイメージャ32は、デジタルカメラなどに用いられる一般的な可視光のイメージャを適用できる。フレームベースイメージャ32としては、カラー画像を撮影するイメージャであっても良いし、白黒画像を撮影するイメージャであっても良い。ここでは、フレームベースイメージャ32として、カラー画像または白黒画像を撮影するイメージャである場合を例に挙げて説明を続けるが、IR(赤外光)イメージャや、偏光イメージャなども本技術のフレームベースイメージャ32として適用できる。
【0027】
イベントベースイメージャ33は、画素毎に輝度変化を非同期で検出し、検出したデータだけを、座標と時間を組み合わせた情報として出力する。イベントベースイメージャ33には、輝度の変化の符号を出力するもの、換言すれば階調を出力は無く、輝度が明るくなった場合+1、暗くなった場合-1を出力するイメージャがある。イベントベースイメージャ33には、輝度の変化量を出力するもの、換言すれば階調を出力するイメージャもある。以下の説明では、特に断りがない場合、輝度の変化量を出力するイメージャである場合を例に挙げて説明する。イベントベースイメージャ33から出力されるデータを、イベントデータと適宜記載し、イベントデータは、輝度の変化量を含むデータであるとする。
【0028】
イメージャ間補正演算部34は、フレームベースイメージャ32とイベントベースイメージャ33との間の正規化係数を演算する。フレームベースイメージャ32の画素数とイベントベースイメージャ33の画素数が異なる場合、画素数を合わせた処理が行えるように、正規化が行われる。フレームベースイメージャ32の感度とイベントベースイメージャ33の感度が異なる場合、感度を合わせた処理が行えるように、正規化が行われる。
【0029】
画素数や感度以外のイメージャ間で差分を解消するための処理が、イメージャ間補正演算部34においてさらに実行されるようにしても良い。イメージャ間補正演算部34は、イメージャ間のピクセルの位置や感度などの差分情報(正規化係数)を演算する。
【0030】
キャリブレーション部35は、フレームベースイメージャ32からのフレームデータとイベントベースイメージャ33からのイベントデータを、後段(画像生成部23)で合成する際に、適切に行えるように、イメージャ間の補正演算を、イメージャ間補正演算部34で演算された正規化係数を用いて、イベントベースイメージャ33からのデータに補正を施す。
【0031】
フレームベースイメージャ32からのフレームデータは、イメージャ間補正演算部34と、画像生成部23のデータ保存部42に供給される。イベントベースイメージャ33からのイベントデータは、イメージャ間補正演算部34とキャリブレーション部35に供給される、キャリブレーション部35により、補正が施されたイベントベースイメージャ33からのイベントデータは、画像生成部23のイベント積算部41に供給される。
【0032】
画像生成部23のイベント積算部41は、キャリブレーション部35を介して入力されるイベントベースイメージャ33からのイベントデータを、一定時間蓄積し、蓄積されたイベントデータを積算し、一定時間間隔毎の変化の差分情報を生成する。イベントベースイメージャ33からは、輝度の変化があったとき、換言すれば、イベントが発生したときに、イベントデータが出力されるため、イベントベースイメージャ33からの出力は、不定期である。イベント積算部41により、所定の期間内のイベントデータが積算されることで、イベント積算部41からのデータ(以下、適宜、積算イベントデータと記述する)は、所定の周期でデータ保存部42に供給され、保存される。
【0033】
データ保存部42は、フレームベースイメージャ32で撮影された動画データと、イベント積算部41からの積算イベントデータを保存する。データ保存部42は、補間画像生成部43で補間された補間フレームも保存する。データ保存部42は、DRAM(Dynamic Random Access Memory)などの一時保存用メモリデバイスや、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリなどの常時保存デバイスなどで構成することができる。
【0034】
データ保存部42に保存された動画データは、このままデータ保存部42に記憶されたり、他の記録媒体に記録されたり、後段の図示していない処理部に出力されたり、ディスプレイに出力され表示されたりする。データ保存部42に、補間フレームが保存されている場合には、直接動画像出力(レンダリング済み動画像の出力)も行える。
【0035】
補間画像生成部43は、データ保存部42に保存されているフレームベースイメージャ32からの動画データと、イベントベースイメージャ33からの一定時間間隔の被写体差分情報を用いて、後述するフレーム間補間画像と、フレーム内補間画像を生成する。補間画像生成部43により生成された補間画像は、データ保存部42に保存されたり、他の記録媒体に記録されたり、後段の図示していない処理部に出力されたり、ディスプレイに出力され表示されたりする。
【0036】
補間画像生成部43は、フレームベースイメージャ32とイベントベースイメージャ33からの出力を随時受け付け、補間処理をリアルタイムに行い動画出力する(オンザフライ動画出力を行う)ように構成されていても良い。
【0037】
図2は、画像処理装置11の他の構成例を示す図である。
図2に示した画像処理装置11’(
図1に示した画像処理装置11と区別を付けるためにダッシュを付して記述する)は、フレームベースイメージャ32とイベントベースイメージャ33が合わさったハイブリッドイメージャ51で構成されている点が異なる。
【0038】
画像処理装置11’のカメラ部22’は、ハイブリッドイメージャ51を含む構成であるため、ハーフミラー31、イメージャ間補正演算部34、およびキャリブレーション部35が省略された構成とされている。このように、ハイブリッドイメージャ51を用いることもできる。
【0039】
以下の説明では、
図1に示した画像処理装置11を例に挙げて説明を続ける。
【0040】
画像処理装置11は、
図3のAに示したように、レンズ21、カメラ部22、および画像生成部23が一体化された構成とされていても良い。
図3のBに示したように、レンズ21とカメラ部22は、一体化された構成とされ、画像生成部23は、別体で構成されている構成であっても良い。
【0041】
換言すれば、画像生成部23は、画像処理装置11に内蔵されるように構成しても良いし、カメラ部22と別体として構成されるようにしても良い。カメラ部22と画像生成部23を別体で構成する場合、カメラ部22と画像生成部23は、所定のネットワークを介して接続されている構成とすることもできる。画像生成部23は、例えば、パーソナルコンピュータ(PC)で構成されていても良い。画像生成部23を、PCなどの外部機器として構成した場合、AI(Artificial Intelligence)やニューラルネットワークなどにより高度な後処理が行われるように構成することもできる。
【0042】
<補間フレームの生成について>
画像処理装置11は、フレームベースイメージャ32で撮像される動画像(フレーム)に、フレームを補間し、高フレームレートの動画像に変換する処理を実行する。
図4を参照し、画像処理装置11が行う補間フレームの生成に係わる処理の概要について説明する。
【0043】
フレームベースイメージャ32において、時刻T1から時刻T2は露光時間であり、この露光時間にフレームP1が取得される。時刻T2から時刻T3は、非露光時間である。時刻T3から時刻T4は露光時間であり、この露光時間にフレームP2が取得される。
【0044】
イベントベースイメージャ33からは不定期にイベントデータが出力されるが、イベント積算部41からは、定期的に積算イベントデータが出力される。
図4では、時刻T1から時刻T2の露光時間内に、積算イベントデータΔPa1、積算イベントデータΔPa2、積算イベントデータΔPa3、積算イベントデータΔPa4、積算イベントデータΔPa5が、間隔Δtの間隔で出力(データ保存部42に保持)される。
【0045】
時刻T2乃至T3の非露光時間内には、積算イベントデータΔPb1、積算イベントデータΔPb2、積算イベントデータΔPb3、積算イベントデータΔPb4が、間隔Δtの間隔で出力(データ保存部42に保持)される。
【0046】
時刻T3乃至T4の露光時間内には、積算イベントデータΔPa6、積算イベントデータΔPa7、積算イベントデータΔPa8が、間隔Δtの間隔で出力(データ保存部42に保持)される。
【0047】
露光時間内に補間フレームを生成するのを、ここではフレーム内補間と記述し、非露光時間内に補間フレームを生成するのを、フレーム間補間と記述する。フレーム内補間において補間される補間フレームを、補間フレームPaと記述し、フレーム間補間において補間される補間フレームを、補間フレームPbと記述する。
【0048】
フレーム内補間に用いられる積算イベントデータ、換言すれば、露光時間内に生成される積算イベントデータを、積算イベントデータΔPaと記述する。フレーム間補間に用いられる積算イベントデータ、換言すれば、非露光時間内に生成される積算イベントデータを、積算イベントデータΔPbと記述する。
【0049】
ここでは、説明のため、積算イベントデータΔPaと積算イベントデータΔPbに分けて説明を続けるが、積算イベントデータΔPaと積算イベントデータΔPbは、ともに、所定の時間内に発生したイベントデータを積算したデータであり、積算イベントデータΔPaと積算イベントデータΔPbが異なるデータであることを示す記載ではない。
【0050】
図4に示した例では、時刻T1から時刻T2における露光時間内に、フレーム内補間が行われることで、補間フレームPa1乃至Pa5の5枚のフレームが生成される。補間フレームPa1乃至Pa5は、フレームP1と、積算イベントデータΔPa1乃至ΔPa4が用いられて生成される。
【0051】
時刻T2から時刻T3における非露光時間内に、フレーム間補間が行われることで、補間フレームPb1乃至Pb4の4枚のフレームが生成される。補間フレームPb1乃至Pb4は、補間フレームPa5と、時刻T3から時刻T4で行われるフレーム内補間で生成された補間フレームPa6と、積算イベントデータΔPb1乃至ΔPb4が用いられて生成される。
【0052】
時刻T3から時刻T4における露光時間内に、フレーム内補間が行われることで、補間フレームPa6乃至Pa9の4枚のフレームが生成される。補間フレームPa6乃至Pa9は、フレームP2と、積算イベントデータΔPa6乃至ΔPa8が用いられて生成される。
【0053】
このように、フレーム内補間は、フレームベースイメージャ32から得られたフレームデータと、イベントベースイメージャ33から得られたイベントデータ(積算イベントデータ)が用いられて補間フレームPaが生成される補間処理である。
【0054】
フレーム間補間は、イベントベースイメージャ33からの得られた積算イベントデータと、フレーム内補間において得られた補間フレームPaが用いられて補間フレームPbが生成される処理である。
【0055】
<フレーム内補間>
図5を参照し、フレーム内補間についてさらに説明を加える。
図5では、
図4における時刻T1から時刻T2における露光時間において実行されるフレーム内補間を例に挙げている。
【0056】
図5において、フレームP1は、露光時間においてフレームベースイメージャ32により撮影されたフレーム(動画像を構成する画像)を表す。所定の間隔Δtの間にイベントベースイメージャ33から出力されたイベントデータは、イベント積算部41(
図1)で積算され、積算イベントデータΔPaとして補間画像生成部43に供給される。
図5に示した例では、露光時間内に、積算イベントデータΔPa1乃至Pa4が生成される。
【0057】
補間フレームPa1乃至Pa5は、フレーム内補間の処理が実行されることで補間されるフレーム、換言すれば新たに生成されるフレームである。ここで、フレームP1と補間フレームPa1乃至Pa5の間には、以下の関係が成り立つ。以下に示す各式においては、フレームP1をP1と表し、補間フレームPa1乃至Pa5をそれぞれ、Pa1、Pa2、Pa3、Pa4、Pa5と表し、積算イベントデータΔPa1乃至Pa4をそれぞれ、ΔPa1、ΔPa2、ΔPa3、ΔPa4と表す。
【0058】
P1=(Pa1+Pa2+Pa3+Pa4+Pa5)/5 ・・・(1)
【0059】
補間フレームPa1乃至Pa5を平均化した画像は、フレームP1に近似しており、上記した関係式(1)の関係が成り立つ。
【0060】
補間フレームPa1乃至Pa5と、積算イベントデータΔPa1乃至Pa5との間には、以下のような関係式(2)が成り立つ。
【0061】
Pa2=Pa1+ΔPa1
Pa3=Pa2+ΔPa2=Pa1+ΔPa1+ΔPa2
Pa4=Pa3+ΔPa3=Pa1+ΔPa1+ΔPa2+ΔPa3
Pa5=Pa4+ΔPa4=Pa1+ΔPa1+ΔPa2+ΔPa3+ΔPa4
・・・(2)
【0062】
補間フレームPa2は、前の補間フレームPa1に、補間フレームPa1からの差分である積算イベントデータΔPa1を加算したフレームとなる。同様に、補間フレームPa3は、前の補間フレームPa2に、補間フレームPa2からの差分である積算イベントデータΔPa2を加算したフレームとなる。
【0063】
同様に、補間フレームPa4は、前の補間フレームPa3に、補間フレームPa3からの差分である積算イベントデータΔPa3を加算したフレームとなる。同様に、補間フレームPa5は、前の補間フレームPa4に、補間フレームPa4からの差分である積算イベントデータΔPa4を加算したフレームとなる。
【0064】
式(2)を、式(1)に代入し、整理すると次式(3)が得られる。
P1×5=Pa1×5+ΔPa1×4+ΔPa2×3
+ΔPa3×2+ΔPa4 ・・・(3)
【0065】
式(3)から、フレームP1は、補間フレームPa1と積算イベントデータΔPa1乃至Pa4を用いて表せることがわかる。さらに、式(3)を変形し、補間フレームPa1に関する式にすると次式(4)が得られる。
【0066】
Pa1=P1―(ΔPa1×4+ΔPa2×3+ΔPa3×2+ΔPa4)/5
・・・(4)
【0067】
式(4)から、補間フレームPa1は、フレームP1と、積算イベントデータΔPa1乃至ΔPa4を用いて生成できることがわかる。
【0068】
式(4)に基づき、補間フレームPa1が生成されると、式(2)から補間フレームPa2乃至Pa5も生成することができる。すなわち、例えば、補間フレームPa2は、生成された補間フレームPa1に、積算イベントデータΔPa1を加算することで生成される。補間フレームPa3乃至Pa5も同様に、補間フレームPa2乃至Pa4と、積算イベントデータΔPa2乃至Pa4を用いて生成される。
【0069】
式(4)を一般的に表すと、次式(5)となる。
【数1】
【0070】
式(5)において、Pa1は、フレーム内補間において最初に生成される補間フレームPaを表している。Pは、フレーム内補間が実行される露光時間のときに取得されたフレームPを表している。nは、フレーム内補間において生成される補間フレームの枚数を表し、例えば、
図5に示した例では、n=5である。
【0071】
ΔPa1乃至ΔPn-1は、フレーム内補間が実行される露光時間の間に取得された積算イベントデータΔPa1乃至ΔPan-1を表している。
【0072】
補間フレームの枚数nは、次式(6)により算出される。
【数2】
【0073】
フレーム内補間数nは、露光時間を、露光時間と非露光時間を加算した値で除算した値に補間レートを乗算した値とされる。AE(Auto Exposure)機能が有効にされている場合、露光時間は動的に変化する。よって、フレーム内補間数nは、露光時間が動的に変化するような場合、フレーム毎に露光時間が取得され、フレーム毎に算出、設定される。
【0074】
補間レートは、元の動画を何倍に補間するかを表す値であり、次式(7)により定義される。
【数3】
【0075】
補間レートは、補間後のフレームレートを、補間前のフレームレートで除算した値と定義することができる。
【0076】
例えば、
図5に示した例では、露光時間内に5枚の補間フレームを生成するので、補間レートは5である。補間レートまたは補間後のフレームレートは、予め設定されている値としても良いし、ユーザにより設定されるようにしても良い。
【0077】
フレーム内補間数nは、積算イベントデータΔPaを生成する間隔Δt(イベントデータを蓄積している時間)に係わる。すなわち、フレーム内補間数nは、露光時間内に何枚の補間フレームを生成するかである。換言すれば、露光時間を均等に、フレーム内補間数nで分割し、その分割した時間間隔毎に、補間フレームPaが生成される。露光時間を均等に分割した時間が、間隔Δtに相当し、間隔Δt毎に、積算イベントデータΔPaが生成され、補間フレームPaが生成される。間隔Δtは、次式(8)で算出される。
【0078】
【0079】
間隔Δtは、1を、補正前のフレームレートに補間レートを乗算した値で除算した値とされる。
図6に示すように、所定の時刻tkから時刻tk+Δtまでの間に発生したイベントデータが積算され、時刻tk+Δtにおける積算イベントデータΔPaとして出力される。
【0080】
図6において、白い四角形は輝度が明るい方に変化したピクセルを表し、黒い四角形は輝度が暗い方に変化したピクセルを表している。間隔Δtの間に蓄積されたイベントデータが積算されることで、積算イベントデータΔPaが生成される。
【0081】
イベントベースイメージャ33から出力されるイベントデータは、例えば、次式(9)のように表される。以下、イベントデータをeで表す。
e=[x,y,p]te ・・・(9)
【0082】
イベントデータeは、イベントが発生している座標[x,y]と、そのピクセルにおける輝度の変化量pまたは輝度の変化の符号pを要素として有する。pは、イベントデータとして階調出力がある場合には、階調出力であり、階調出力がない場合には、+1または-1の符号である。式(9)においてteは、イベントが発生した時刻となる。
【0083】
イベントデータeがカラーの場合、イベントデータeは、以下のように表される。
e=[x,y,pR、pG、pB]te ・・・(10)
【0084】
式(10)において、pRは、赤(R)における輝度の変化量(または符号)を表し、pGは、緑(G)における輝度の変化量(または符号)を表し、pBは、青(B)における輝度の変化量(または符号)を表す。以下の説明では、イベントデータeは、式(9)で表されるデータである場合を例に挙げて説明を続けるが、カラーである場合には、適宜、式(10)されるデータであると読み替えることで実施できる。
【0085】
イベントベースイメージャ33のピクセル数や感度がフレームベースイメージャ32と異なる場合、上記したように処理により補間フレームPaを生成するために、イベントデータeを、フレームベースイメージャ32からの出力に適したデータに正規化する必要がある。
【0086】
キャリブレーション部35(
図1)で正規化されたイベントデータe(イベントデータe
Nとする)は、次式(11)で表される。
e
N=[x
N,y
N,p
N]
te ・・・(11)
【0087】
イベント積算部41(
図1)には、キャリブレーション部35でキャリブレーションされたイベントデータe
nが供給される。イベント積算部41では、間隔Δtの間、キャリブレーション部35から供給されるイベントデータe
nを積算する。
【0088】
イベント積算部41は、次式(12)に基づく演算を行い、積算イベントデータΔPaを算出する。
【0089】
【0090】
式(12)は、例えば
図6に示したように、時刻tkから時刻tk+Δt、すなわち間隔Δtの間に発生したイベントデータeであり、正規化されたイベントデータe
Nを積算する式である。
【0091】
なお、フレームベースでダイナミックレンジの上限または下限になっているピクセルに対しては、式(12)における演算の対象からは除外される。これは、ダイナミックレンジ範囲外の輝度変化を除外するためである。
【0092】
このように、フレーム内補間において補間フレームPaの生成に必要な積算イベントデータΔPaや、積算イベントデータΔPaを算出するのに必要な間隔Δtなどが算出される。そしてそれらの値と、フレームPと、積算イベントデータΔPaが用いられてフレーム内補間の処理が実行され、補間フレームPaが生成される。
【0093】
<フレーム間補間について>
図7を参照し、フレーム間補間について説明を加える。
図7では、
図4における時刻T2から時刻T3における非露光時間において実行されるフレーム間補間を例に挙げている。
【0094】
図7において、フレームP1とフレームP2は、露光時間においてフレームベースイメージャ32により撮影されたフレーム(動画像を構成する画像)を表す。所定の間隔Δt間にイベントベースイメージャ33から出力されたイベントデータは積算され、積算イベントデータΔPbが生成される。
図7に示した例では、非露光時間内に、積算イベントデータΔPb1乃至Pb4が生成される。
【0095】
ここでは、フレーム間補間に係わる積算イベントデータΔPbは、積算イベントデータΔPbと記載するが、イベントデータや、そのイベントデータから積算イベントデータを算出する処理などは、上記した積算イベントデータΔPaの場合と同様である。補間フレームPbが生成される周期は、間隔Δtに相当し、この間隔Δtも、上記したフレーム内補間に係わる間隔Δtが用いられる。
【0096】
フレーム間補間は、非露光時間に行われる補間である。フレーム間補間は、フレームベースイメージャ32の画素数が多いなどで、フレームベースイメージャ32からの画素値の読み出しにかかる時間が長くなり、非露光時間があるような場合に行われる補間処理である。
【0097】
図7に示した例において補間フレームPb1乃至Pb4は、フレーム間補間の処理が実行されることで補間されるフレーム、換言すれば新たに生成されるフレームである。フレーム間補間は、読み出しされているフレームPを用いたフレーム内補間により生成された補間フレームPaと、読み出しされているフレームPの次に撮影されるフレームPを用いたフレーム内補間により生成された補間フレームPaが用いられて生成される。
【0098】
図7に示した例においては、読み出しされているフレームPは、フレームP1であり、フレームP1より次に撮影されるフレームPは、フレームP2である。フレーム間補間に用いられる補間フレームPaは、フレームP1をフレーム内補間したときに生成された補間フレームPaのうちの最後尾のフレームである補間フレームPa5と、フレームP2をフレーム内補間したときに生成される先頭のフレームである補間フレームPa6である。
【0099】
フレーム間補間においては、非露光時間が前半と後半に分けられる。前半は、読み出しが行われているフレームP1を用いたフレーム内補間で生成された複数の補間フレームPaのうちの最後尾画像である補間フレームPa5が用いられる。後半は、フレームP1の次に読み出しが行われるフレームP2を用いたフレーム内補間で生成される複数の補間フレームPaのうちの先頭画像である補間フレームPa6が用いられる。
【0100】
フレーム間補間において、
図7に示した例のように、4枚の補間フレームPb1乃至Pb4が生成される場合、非露光時間の前半に位置する補間フレームPb1と補間フレームPb2は、補間フレームPa5が用いられて生成され、非露光時間の後半に位置する補間フレームPb3と補間フレームPb4は、補間フレームPaが用いられて生成される。
【0101】
フレーム間補間における最初の補間フレームPb1は、補間フレームPa5に、積算イベントデータΔPb1を加算することで生成される。補間フレームPb1の次の補間フレームPb2は、補間フレームPb1に、積算イベントデータΔPb2を加算することで生成される。式で表すと以下のようになる。
【0102】
Pb1=Pa5+ΔPb1
Pb2=Pb1+ΔPb2=Pa5+ΔPb1+ΔPb2 ・・・(13)
【0103】
補間フレームPb2は、補間フレームPb1に積算イベントデータΔPb2を加算することで生成されても良いが、補間フレームPa5に積算イベントデータΔPb1と積算イベントデータΔPb2を加算することで生成されても良い。
【0104】
フレーム間補間における最後尾の補間フレームPb4は、補間フレームPa6から、積算イベントデータΔPb4を減算することで生成される。補間フレームPb4より1つ前の補間フレームPb3は、補間フレームPb4から、積算イベントデータΔPb3を減算することで生成される。式で表すと以下のようになる。
【0105】
Pb4=Pa6-ΔPb4
Pb3=Pb4-ΔPb3=Pa6-ΔPb4-ΔPb3 ・・・(14)
【0106】
補間フレームPb3は、補間フレームPb4から積算イベントデータΔPb3を減算することで生成されても良いが、補間フレームPa6から積算イベントデータΔPb3と積算イベントデータΔPb4を減算することで生成されても良い。
【0107】
このように、非露光時間の後半に位置する補間フレームPb3と補間フレームPb4は、時間的に近い補間フレームPa6が用いられて生成される。
【0108】
このように、非露光時間の前半においては、フレーム内補間により生成された補間フレームPaに、積算イベントデータΔPbが加算されることで補間フレームPbが生成される。一方、非露光時間の後半においては、フレーム内補間により生成された補間フレームPaから、積算イベントデータΔPbが減算されることで補間フレームPbが生成される。
【0109】
図7に示した例のように、フレーム間補間において、偶数枚の補間フレームが生成される場合、非露光時間の前半と後半のそれぞれの期間において同一枚数が生成される。フレーム間補間において、奇数枚の補間フレームが生成される場合、非露光時間の前半と後半のそれぞれの期間における枚数は異なる枚数となる。
【0110】
フレーム間補間において、例えば5枚の補間フレームPbが生成される場合、非露光時間の前半に2枚生成され、後半に3枚生成されるようにしても良いし、前半に3枚生成され、後半に2枚生成されるようにしても良い。
【0111】
奇数枚の補間フレームPbが生成される場合に、真ん中の補間フレームPbを非露光時間の前半に含めるか、後半に含めるか、換言すれば、積算イベントデータΔPbを加算することで生成するか、積算イベントデータΔPbを減算することで生成するかは、予め設定されていても良い。例えば真ん中の補間フレームPbは、積算イベントデータΔPbを減算することで生成すると設定されているようにしても良い。
【0112】
真ん中の補間フレームPbを生成するときに、積算イベントデータΔPbを加算することで生成する場合に、加算される積算イベントデータΔPbと、積算イベントデータΔPbを減算することで生成する場合に、減算される積算イベントデータΔPbとが比較され、小さい方の積算イベントデータΔPbが用いられるように設定されるようにしても良い。すなわち、変化量が小さい方の積算イベントデータΔPbが用いられて補間フレームPbが生成されるようにしても良い。
【0113】
フレーム間補間の処理により生成する補間フレームPbの枚数mは、次式(15)により算出される。
【0114】
【0115】
フレーム間補間数mは、非露光時間を、露光時間と非露光時間を加算した値で除算した値に補間レートを加算した値とされる。AE(Auto Exposure)機能が有効にされている場合、露光時間(非露光時間)は動的に変化する。よって、フレーム間補間数mは、露光時間が動的に変化するような場合、フレーム毎に露光時間と非露光時間が取得(算出)され、フレーム毎に枚数mは算出、設定される。
【0116】
式(15)に含まれる補間レートは、上述した場合と同じく、予め設定されている(演算により求められる)値が用いられる、または、ユーザにより設定された値が用いられる。補間レートを用いて上述した式(8)により求められる間隔Δtも、フレーム間補間における処理時の間隔Δtとして用いられる。
【0117】
ここでは、フレーム間補間に用いられるフレームは、フレーム内補間の処理時に生成された補間フレームPaである場合を例に挙げて説明した。フレーム内補間とフレーム間補間の処理は、撮影時に行われる、換言すれば、撮影と同時にリアルタイムで行われるように構成しても良いが、フレーム内補間により生成された補間フレームPaを記録しておき、撮影よりも後のタイミングでその記録されている補間フレームPaが用いられてフレーム間補間が行われるようにしても良い。
【0118】
フレーム間補間に用いられる補間フレームは、生成された補間フレーム以外のフレームが用いられるようにしても良い。例えば、
図7において、補間フレームPa5の代わりに、フレームP1を用い、補間フレームPa6の代わりにフレームP2が用いられて、上記した処理が実行されることで、フレーム間補間が行われるようにしても良い。
【0119】
上述したフレーム内補間の処理を、フレーム間補間の処理と同様に行うようにし、生成される補間フレームは、全て、上述したフレーム間補間の処理で生成されるようにすることもできる。例えば、
図7に示した例において、フレームP2を取得する露光時間と、フレームP2を読み出す非露光時間を足し合わせた期間において、前半は、フレームP1に積算イベントデータΔPbを加算することで補間フレームが生成されるようにし、後半は、フレームP2から積算イベントデータΔPbが減算されることで補間フレームが生成されるようにしても良い。
【0120】
<カメラ部の処理>
上述したように、フレーム内補間の処理により、補間フレームPaを生成し、フレーム間補間の処理により、補間フレームPbを生成することで、高フレームレートの動画像を生成する画像処理装置11(
図1)の処理について、さらに説明を加える。
【0121】
図8のフローチャートを参照し、画像処理装置11のカメラ部22の処理について説明する。
図8のフローチャートに示したカメラ部22の処理は、例えば、カメラ部22が起動されたときに開始される。
【0122】
ステップS11において、フレームベースイメージャ32とイベントベースイメージャ33とのイメージャ間のピクセル座標変換情報が取得される。ピクセル座標変換情報は、カメラ部22の製造過程で得られるデータとして、例えばイメージャ間補正演算部34に保存されている。ピクセル座標変換情報は、工場出荷時の調整値である。
【0123】
ステップS12において、フレームベースイメージャ32とイベントベースイメージャ33とのイメージャ間の輝度正規化係数が取得される。輝度正規化係数は、カメラ部22の製造過程で得られるデータとして、例えばイメージャ間補正演算部34に保存されている。輝度正規化係数も、ピクセル座標変換情報と同じく工場出荷時の調整値である。
【0124】
ステップS13において、カメラ部22における撮影が開始される。フレームベースイメージャ32における動画像の撮影と、イベントベースイメージャ33におけるイベントの検出が開始される。
【0125】
ステップS14において、フレームベースイメージャ32からの出力か否かが判定される。フレームベースイメージャ32からの出力、すなわちフレームPのデータである場合、ステップS17に処理が進められる。ステップS17において、フレームベースイメージャ32からの出力は、画像生成部23のデータ保存部42に出力され、保存される。
【0126】
一方、ステップS14において、フレームベースイメージャ32からの出力ではないと判定された場合、換言すれば、イベントベースイメージャ33からの出力であると判定された場合、ステップS15に処理は進められる。
【0127】
ステップS15において、イベントが発生したピクセルの座標が、フレームの座標へと変換される。キャリブレーション部35は、ステップS11において取得されたピクセル座標変換情報を用いて、イベントの座標情報を、フレームベースイメージャ32の座標に変換する。
【0128】
ステップS16において、イベントが発生したピクセルの輝度が、フレームの輝度へと変換される。キャリブレーション部35は、ステップS12において取得された輝度正規化係数を用いて、イベントの輝度変化を、フレームベースイメージャ32の輝度変化量に変換する。
【0129】
ステップS17において、キャリブレーション部35によりキャリブレーションされたイベントデータは、画像生成部23のイベント積算部41(
図1)に出力され、イベント積算部41の積算処理が開始されるまで記憶される。
【0130】
ステップS18において、撮影は終了か否かが判定される。例えば、ユーザにより撮影終了時に操作されるボタンが操作された場合、ステップS18において、撮影は終了したと判定され、カメラ部22における処理も終了される。一方、ステップS18において、撮影は終了していないと判定された場合、ステップS13に処理は戻され、それ以降の処理が繰り返される。すなわち、フレームベースイメージャ32による動画像の撮影が継続され、イベントベースイメージャ33によるイベントの検出が継続される。
【0131】
<イベント積算部の処理について>
図9のフローチャートを参照し、画像生成部23のイベント積算部41(
図1)の処理について説明する。
【0132】
ステップS31において、補正前のフレームレートと補正後のフレームレートが取得される。ステップS32において、間隔Δtが算出される。間隔Δtは、上記したように、式(8)により算出される。式(8)における補間レートは、式(7)に基づき算出される。式(7)は、補間後のフレームレートを補間後のフレームレートで除算することで補間レートを算出する式である。
【0133】
ステップS31において取得された補正前のフレームレートと補正後のフレームレートと、式(7)、式(8)に基づき、間隔ΔtがステップS32において算出される。
【0134】
ステップS33において、間隔Δt時間が経過するまで待機状態が維持される。イベント積算部41には、待機状態中でも、キャリブレーション部35を介して、イベントベースイメージャ33からのイベントデータが供給される。イベント積算部41は、間隔Δt時間の間に供給されたイベントデータを蓄積する。
【0135】
ステップS34において、間隔Δtの間に発生したイベントデータを積算し、積算した積算イベントデータを、データ保存部42に供給し、保存させる。または補間画像生成部43に供給される。ここでは、積算イベントデータは、データ保存部42に一旦記憶された後、補間フレームが生成されるときに、必要に応じて、補間画像生成部43により読み出されるとして説明を続ける。
【0136】
ステップS35において、終了か否かが判定される。例えば、カメラ部22による撮影が終了された場合、イベント積算部41による処理も終了される。または所定の時間内に、キャリブレーション部35からイベントデータが供給されなかった場合、ステップS35において、終了と判定される。ステップS35において、終了ではないと判定された場合、ステップS33に処理が戻され、それ以降の処理が繰り返される。すなわち、積算イベントデータの生成が、継続して行われる。
【0137】
<補間処理について>
上述したカメラ部22の処理や、イベント積算部41の処理がそれぞれ行われている一方で、補間画像生成部43における補間フレームの生成に係わる処理も実行される。
図10のフローチャートを参照し、補間画像生成部43が行う補間処理について説明する。
【0138】
ステップS51において、処理対象とされるフレームPに割り振る番号kが1に設定される。ステップS52において、番号kが割り振られたフレームPに対するフレーム内補間(k)が実行される。ステップS53において、番号k+1が割り振られたフレームPに対するフレーム内補間(k+1)が実行される。
【0139】
ステップS54において、番号kが割り振られたフレームPに対してフレーム間補間(k)が実行される。フレーム間補間(k)を実行するためには、フレーム内補間(k)において生成された最後尾の補間フレームPaと、フレーム内補間(k+1)において生成された先頭の補間フレームPaが必要である。よって、ステップS52において、フレーム内補間(k)が実行され、最後尾の補間フレームPaが取得され、ステップS53において、フレーム内補間(k+1)が実行され、先頭の補間フレームPaが取得された後、ステップS54において、フレーム間補間(k)が実行される。
【0140】
図4を再度参照する。
図4において、k=1が割り振られたフレームPが、フレームP1であり、フレームP1が処理対象とされているとする。このような場合、ステップS52においては、フレームP1に対するフレーム内補間(k)の処理が実行される。
図4に示した例では、時刻T1から時刻T2に該当する露光時間における補間フレームを生成するフレーム内補間の処理が実行される。
【0141】
ステップS53において、フレームP2に対するフレーム内補間(k+1)の処理が実行される。
図4に示した例では、時刻T3から時刻T4に該当する露光時間における補間フレームを生成するフレーム内補間の処理が実行される。
【0142】
ステップS52の処理が実行されることで、時刻T1から時刻T2における最後尾の補間フレームPa5が取得される。次にステップS53の処理が実行されることで、時刻T3から時刻T4における先頭の補間フレームPa6が取得される。
【0143】
ステップS54においては、フレームP1に対するフレーム間補間(k)が実行される。フレームP1に対するフレーム間補間(k)とは、
図4においては、フレームP1の読み出し期間に該当する時刻T2から時刻T3における非露光時間において実行されるフレーム間補間の処理のことである。ステップS54の処理が実行されるときには、補間フレームPa5と補間フレームPa6が取得されているので、これらの補間フレームPaが用いられて、補間フレームPb1乃至Pb4が生成される。
【0144】
ステップS55において、番号kが2に変更されて、処理がステップS53に戻される。ステップS53において、フレームP3に対するフレーム内補間(k+1)が実行され、ステップS54において、フレームP2に対するフレーム間補間(k)が実行される。
【0145】
2回目以降のステップS54の処理においては、フレーム間補間(k)を実行するのに必要な最後尾の補間フレームPaと先頭の補間フレームPaは取得済みであるため、ステップS52の処理は実行されない。すなわち、フレームの補間処理が開始されたとき(k=1と設定されたとき)に、2回続けてフレーム内補間の処理が実行されるが、それ以降は、フレーム内補間の処理とフレーム間補間の処理が交互に繰り返される処理が継続される。
【0146】
図10に示したフローチャートの処理に戻り、ステップS52およびステップS53においてそれぞれ実行されるフレーム内補間に関する処理については、
図11のフローチャートを参照して後述する。ステップS54において実行されるフレーム間補間に関する処理については、
図12のフローチャートを参照して後述する。
【0147】
ステップS55において、番号kの値が1だけ増やされ、次のフレームが処理対象とされる。ステップS56において、終了か否かが判定される。例えば、データ保存部42に保存されている全てのフレームを処理した場合や、カメラ部22の撮影が終了された場合など、ステップS56において、終了であると判定される。
【0148】
一方、ステップS56において、終了ではないと判定された場合、ステップS53に処理が戻され、それ以降の処理が繰り返される。
【0149】
<フレーム内補間に関する処理について>
図11のフローチャートを参照し、ステップS52およびステップS53において実行されるフレーム内補間の処理について説明する。フレーム内補間については、
図4、
図5を参照して説明したため、重複する説明などは適宜省略する。
【0150】
ステップS71において、補間レートが取得される。ステップS72において、露光時間が取得される。ステップS73において、補間するフレーム数nが算出される。
【0151】
フレーム内補間において補間されるフレーム数nは、上述した式(6)に基づき算出され、補間レートと、露光時間と、非露光時間が用いられて算出される。式(6)において(露光時間+非露光時間)は、フレームレートから算出できる。ステップS73においては、ステップS71において取得された補間レート、ステップS72において取得された露光時間、およびフレームレートから算出される(露光時間+非露光時間)が用いられ、補間する補間フレーム数nが算出される。
【0152】
ステップS74において、フレームベースイメージャ32からのk番目の画像(フレーム)が取得される。取得されるフレームは、フレームベースイメージャ32から直接的に補間画像生成部43に供給されるフレームであっても良いし、データ保存部42に保存されているフレームであっても良い。ステップS74において取得されるk番目のフレームは、ここではフレームPと表す。
【0153】
ステップS75において、第1番目の補間フレームPa1が生成される。
図5を参照して説明したように、第1の補間フレームPa1は、フレームPと、露光時間内に取得された積算イベントデータΔPaが用いられて、式(5)に基づき生成される。
【0154】
ステップS76において、iが2に設定される。ステップS77において、第i番目の補間フレームPaiが生成される。補間フレームPaiは、1つ前の補間フレームPai-1に積算イベントデータΔPai-1を加算することで生成される。例えば、
図5に示した例では、補間フレームPa2は、補間フレームPa1に、積算イベントデータΔPa1が加算されることで生成される。
【0155】
ステップS78において、iが1だけ増加される。ステップS79において、iがn以下(i≦n)であるか否かが判定される。ステップS79において、iがn以下であると判定された場合、ステップS77に処理が戻され、それ以降の処理が繰り返される。すなわち、補間する補間フレーム数nとして設定された枚数になるまで、補間フレームPaの生成が繰り返される。
【0156】
一方、ステップS79において、iはn以下ではない判定された場合、換言すれば、iはnよりも大きくなったと判定された場合、処理対象とされている露光時間における補間フレームPaの生成に係わる処理は終了される。
【0157】
<フレーム間補間に関する処理について>
図12のフローチャートを参照し、ステップS54(
図10)において実行されるフレーム間補間の処理について説明する。フレーム間補間については、
図4、
図7を参照して説明したため、重複する説明などは適宜省略する。
【0158】
ステップS91において、補間レートが取得される。ステップS92において、露光時間(非露光時間でも良い)が取得される。ステップS93において、補間するフレーム数mが算出される。
【0159】
図10に示したフローチャートに基づき処理が実行される場合、例えば、ステップS54において、フレーム間補間(k)が実行される前の時点で、フレーム内補間(k)が実行されており、補間レートと露光時間が取得されているため、ステップS91とステップS92の処理を省略し、既に取得されている補間レートと露光時間が用いられるようにしても良い。
【0160】
ステップS93において補間する補間フレーム数mは、上述した式(15)に基づき算出される。ステップS93においては、ステップS91において取得された補間レート、ステップS92において取得された露光時間(または非露光時間)、およびフレームレートから算出される(露光時間+非露光時間)が用いられ、補間する補間フレーム数mが算出される。
【0161】
図7を参照して説明したように、フレーム間補間においては、非露光時間を前半と後半に分け、前半は積算イベントデータΔPbが加算されることで補間フレームPbが生成され、後半は積算イベントデータΔPbが減算されることで補間フレームPbが生成される。ステップS94乃至S98の処理は、非露光時間の前半における補間フレームPbの生成に関する処理であり、ステップS99乃至S103の処理は、非露光時間の後半における補間フレームPbの生成に関する処理である。
【0162】
ステップS94において、kフレーム目のフレーム内補間の最後尾の補間フレームPaが取得される。データ保存部42に保存されている最後尾の補間フレームPaが取得される。ステップS94において取得されるk番目のフレームPの補間フレームPaを、ここでは補間フレームPa0と表す。
【0163】
ステップS95において、iが1に設定される。ステップS96において、第i番目の補間フレームPbiが生成される。補間フレームPbiは、1つ前の補間フレームPbi-1に積算イベントデータΔPbiを加算することで生成される。第1番目の補間フレームPb1は、最後尾の補間フレームPaを用いて生成されるが、この最後尾の補間フレームPaも、補間フレームであり、補間フレームPb0(i=1)として扱うことができる。
【0164】
例えば、
図7に示した例においてi=1の場合、補間フレームPb1は、補間フレームPa1(補間フレームPb0に該当)に、積算イベントデータΔPb1が加算されることで生成される。
図7に示した例においてi=2の場合、補間フレームPb2は、補間フレームPb1に、積算イベントデータΔPb2が加算されることで生成される。
【0165】
ステップS97において、iが1だけ増加される。ステップS98において、iが(m/2)以下(i≦m/2)であるか否かが判定される。ステップS98において、iが(m/2)以下であると判定された場合、ステップS96に処理が戻され、それ以降の処理が繰り返される。すなわち、補間する補間フレーム数mとして設定された枚数の半分の枚数になるまで、補間フレームPbの生成が繰り返される。
【0166】
一方、ステップS98において、iが(m/2)以下ではないと判定された場合、処理は、ステップS99に進められる。
【0167】
ステップS99において、k+1フレーム目のフレーム内補間の先頭の補間フレームPaが取得される。データ保存部42に保存されている先頭の補間フレームPaが取得される。ステップS99において取得されるk+1番目のフレームPの補間フレームPaを、ここでは補間フレームPam+1と表す。
【0168】
ステップS100において、iがmに設定される。ステップS101において、第i番目の補間フレームPbiが生成される。補間フレームPbiは、1つ後の補間フレームPbi+1から積算イベントデータΔPbiを減算することで生成される。第i番目の補間フレームPb1は、先頭の補間フレームPam+1が用いられて生成されるが、この先頭の補間フレームPam+1も、補間フレームであり、補間フレームPbm+1(i=m)として扱うことができる。
【0169】
例えば、
図7に示した例においてi=mであり、mが4である場合、補間フレームPb4は、補間フレームPa6(補間フレームPbm+1に該当)から、積算イベントデータΔPb4が減算されることで生成される。
図7に示した例においてi=m-1=3の場合、補間フレームPb3は、補間フレームPb4から、積算イベントデータΔPb3が減算されることで生成される。
【0170】
ステップS102において、iが1だけ減算される。ステップS103において、iが(m/2)より大きい(m/2<i)か否かが判定される。ステップS103において、iが(m/2)より大きいと判定された場合、ステップS101に処理が戻され、それ以降の処理が繰り返される。すなわち、補間する補間フレーム数mとして設定された枚数のうち、既にステップS94乃至S98の処理で生成された補間フレームPbの枚数を除いた枚数になるまで、補間フレームPbの生成が繰り返される。
【0171】
このように、フレームベースイメージャ32から取得される動画像に対して、イベントベースイメージャ33からのイベントデータが用いられて補間フレームが生成されることで、高フレームレート化された動画像が生成される。
【0172】
<急激な輝度変化への対処>
上述した実施の形態は、イベントベースイメージャ33からの出力として、階調出力がある場合と、階調出力がない場合(符号の出力の場合)のどちらにも対応できる。
【0173】
イベントベースイメージャ33からの出力が、階調出力がない場合であっても、一般的に、イベントベースイメージャ33からの出力は、フレームベースイメージャ32の出力よりも多いため、階調出力がある場合と遜色なく扱えると想定できる。
【0174】
例えば、フレームベースイメージャ32がハイダイナミックレンジ(HDR)に対応しているような場合、国際標準規格 ITU-R BT.2100によると、階調は10または12bitであり、72db、約4000階調に対応することが記載されている。フレームベースイメージャ32の動画のフレームレートを120FPSと仮定した場合、約8.3msec/Frameとなる。
【0175】
本出願人が製品化しているイベントベースイメージャ33は、124db以上のHDR特性を有し、低照度、例えば40mlxでもイベントの検出が可能であり、高時間分解能(1μ秒単位の精度)である。
【0176】
これらのことから、イベントベースイメージャ33は、フレームベースイメージャ32に対して、輝度分解能、時間分解能ともに十分な精度を有していると想定できる。仮に、イベントベースイメージャ33からの出力に、階調出力がなく、輝度変化を表す符号(+1、または-1)を出力するような場合であっても、上記した性能から、イベントベースからフレームベースへの輝度の階調換算は、イベントベースの何イベント分が、フレームベースの1階調に相当するか、単純な比例演算で算出することができる。
【0177】
このようなことから、上記したように、イベントベースイメージャ33からの出力は、階調出力がある場合と、階調出力がない場合(符号の出力の場合)のどちらの場合も本技術に適用できる。
【0178】
なお、急激な輝度変化があったような場合、比例換算から外れることが想定される。このような場合、
図13を参照して説明するような方法で対応することができる。
【0179】
図13のAに示したように、露光時間Aにおいて取得されたフレームP(の所定の座標のピクセル)と、次の露光時間Bにおいて取得されたフレームPx(の所定の座標のピクセル)の輝度に大きな差がある場合に、その間に発生したイベントの発生密度が求められる。
図13のAのような状況の場合、
図13のBに示すように、イベントの発生密度は、非露光時間にピークになるようなグラフとなる。
【0180】
この発生密度を時間積分し、該当するピクセルの輝度に加算することで、
図13の補間輝度カーブが求められる。この補間輝度カーブから求められる輝度階調が、イベントベースイメージャ33からのイベントデータとして扱われる。例えば、非露光時間において、時刻t1乃至t4のそれぞれに補間フレームPbを生成するような場合であり、
図13のCのグラフの縦軸を輝度変換量とした場合、時刻t1のときのイベントデータe1は、時刻t1のところで補間輝度カーブと交わる値とされる。
【0181】
同じく、時刻t2のときのイベントデータe2は、時刻t2のところで補間輝度カーブと交わる値とされ、時刻t3のときのイベントデータe3は、時刻t3のところで補間輝度カーブと交わる値とされ、時刻t4のときのイベントデータe4は、時刻t4のところで補間輝度カーブと交わる値とされる。
【0182】
このように、輝度が急激に変化したような場合には、イベントベースの発生密度から生成される補間輝度カーブを用いて、イベントデータに含まれる輝度変化量が設定されるようにしても良い。輝度の急激な変化は、
図13のBに示したようなイベントベース発生密度に関するグラフを作成し、閾値を超えるピークがあるグラフが得られたときには、輝度の急激な変化があったと判定される仕組みを設けても良い。
【0183】
<静止画への適用>
上述した実施の形態においては、動画像を生成する場合を例に挙げて説明したが、本技術は、静止画像を生成する場合にも適用できる。
【0184】
上述した動画像に関するフレーム内補間の処理は、動きぼけを除去した静止画像の生成に適用できる。静止画像は、
図5を参照して説明したフレーム内補間の処理において、補間枚数を無限に近づけた場合の1画像と見なすことができ、次式(16)により求めることができる。
【0185】
【0186】
式(16)において、TEは、フレームベースイメージャ32の露光時間を表す。Tは、求める静止画像の時刻を表す。Tが表す時刻は、露光開始時を0としたときの時刻である。teは、イベントの発生時刻を表す。ΔPteは、teに発生したイベントのイベントデータ(輝度差分画像)を表す。
【0187】
式(16)は、
図14に示すようなグラフで表される係数を乗算して足し合わせることを意味している。
図14を参照するに、露光時間の0から時刻T
Eの間に、時刻Tがある。時刻0から時刻Tまでの間の係数は、0から(T/T
E)まで1次関数的に増加する。この部分は、式(16)の右辺の第2項の演算に係わる。
【0188】
時刻Tから時刻TEまでの間の係数は、(―1+T/TE)から0まで1次関数的に増加する。この部分は、式(16)の右辺の第3項の演算に係わる。
【0189】
式(16)に基づいて、時刻Tにおける静止画像P
Tを求めるようにした場合、精度が高い処理を行うことができる。一方で、
図15に示すように、露光時間の中間の時刻を時刻Tとして、静止画像P
Tを求めるようにした場合、換言すれば、簡易的に静止画像P
Tを求めるようにした場合、式(17)により静止画像P
Tを求めることができる。
【0190】
【0191】
フレームベースイメージャ32が、時刻0から時刻TEまで露光した結果、フレームPが得られた場合であり、その露光時間の中点(時刻T)における静止画像が求められる場合、式(17)に示したように、フレームPと、時刻0から時刻Tまでの積算イベントデータΔP1と、時刻Tから時刻TEまでの積算イベントデータΔP2とを用いて算出できる。
【0192】
時刻Tは、上記した例では、露光時間の中点の時刻を例に挙げたが、中点以外が設定されているようにし、簡易的に求められるようにすることもできる。
【0193】
時刻Tを変え、複数の静止画像が生成されるようにすることもできる。例えば、露光時間を5等分し、時刻T1、時刻T2、時刻T3、時刻T4、および時刻T5(=時刻TE)のそれぞれにおいて静止画像PTを生成するようにしても良い。このように複数、この場合、5枚の静止画像PTが生成されるようにした場合、生成された5枚の静止画像PTが全て保存されるようにしても良い。5枚の静止画像PTをユーザに提示し、ユーザにより選択された1または複数の静止画像PTが保存されるようにしても良い。
【0194】
このようにして、フレームベースイメージャ32により得られたフレームPと、イベントベースイメージャ33から得られたイベントデータ(積算イベントデータΔP)とを用いて、動きぼけを除去した静止画像を生成することもできる。
【0195】
本技術によれば、高フレームレートの撮像装置を実現することができる。イベントベースイメージャ33からのイベントデータを用いているため、低照度の被写体であっても、高フレームレートの撮影が可能となる。連続撮影時間の制限をなくす、もしくは軽減することが可能となる。本技術によれば、静止画像のデブラー(動きぼけ除去)機能を追加することも可能である。
【0196】
<記録媒体について>
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0197】
図16は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、及びドライブ1010が接続されている。
【0198】
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体1011を駆動する。
【0199】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0200】
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0201】
コンピュータでは、プログラムは、リムーバブル記録媒体1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
【0202】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0203】
本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0204】
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【0205】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0206】
なお、本技術は以下のような構成も取ることができる。
(1)
フレームベースの第1の撮像素子と、
イベントベースの第2の撮像素子と、
前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する生成部と
を備える画像処理装置。
(2)
前記生成部は、前記補間フレームに、所定の時間内に発生した前記イベントデータを積算した積算イベントデータを加算することで前記補間フレームを生成する
前記(1)に記載の画像処理装置。
(3)
前記生成部は、前記第1の撮像素子の第1の露光時間で得られた第1のフレームデータと、前記第1の露光時間内に得られた複数の前記積算イベントデータを用いて、前記第1の露光時間内の先頭の補間フレームを生成する
前記(2)に記載の画像処理装置。
(4)
前記生成部は、前記補間フレームに、所定の時間内に発生した前記イベントデータを積算した積算イベントデータを加算または減算することで前記補間フレームを生成する
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5)
前記生成部は、
第1の露光時間内の補間フレームとして生成された複数の補間フレームのうちの最後尾の補間フレームと、
前記第1の露光時間よりも後の第2の露光時間において前記第1の撮像素子で得られた第2のフレームデータと、前記第2の露光時間内に得られた前記積算イベントデータを加算することで、生成された複数の補間フレームのうちの先頭の補間フレームと、
前記第1の露光時間と前記第2の露光時間との間の非露光時間において得られた前記積算イベントデータと
を用いて、前記非露光時間における補間フレームを生成する
前記(4)に記載の画像処理装置。
(6)
前記生成部は、
前記非露光時間の前半に位置する前記補間フレームを生成する場合、前記最後尾の補間フレームと、前記非露光時間の前半に得られた前記積算イベントデータを用いて前記補間フレームを生成し、
前記非露光時間の後半に位置する前記補間フレームを生成する場合、前記先頭の補間フレームと、前記非露光時間の後半に得られた前記積算イベントデータを用いて前記補間フレームを生成する
前記(5)に記載の画像処理装置。
(7)
露光時間内の所定の時刻における静止画像を、前記露光時間内に取得された前記イベントデータを、前記フレームデータに加算および減算することで生成する
前記(1)に記載の画像処理装置。
(8)
フレームベースの第1の撮像素子と、
イベントベースの第2の撮像素子と
を備える画像処理装置が、
前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する
画像処理方法。
(9)
フレームベースの第1の撮像素子と、
イベントベースの第2の撮像素子と
を備える画像処理装置を制御するコンピュータに、
前記第1の撮像素子からのフレームデータと、前記第2の撮像素子からのイベントデータを用いて、補間フレームを生成する
ステップを含む処理を実行させるためのプログラム。
(10)
イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する生成部
を備える画像処理装置。
(11)
前記第1のフレームと前記第2のフレームは、フレームベースの撮像素子により撮像されたフレームである
前記(10)に記載の画像処理装置。
(12)
前記第1のフレームと前記第2のフレームは、前記生成部により生成された補間フレームである
前記(10)または(11)に記載の画像処理装置。
(13)
画像処理装置が、
イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する
画像処理方法。
(14)
コンピュータに、
イベントベースの撮像素子から得られたイベントデータと、フレームデータとを用いて、第1のフレームと第2のフレームの間を補間する補間フレームを生成する
ステップを含む処理を実行させるためのプログラム。
【符号の説明】
【0207】
11 画像処理装置, 21 レンズ, 22 カメラ部, 23 画像生成部, 31 ハーフミラー, 32 フレームベースイメージャ, 33 イベントベースイメージャ, 34 イメージャ間補正演算部, 35 キャリブレーション部, 41 イベント積算部, 42 データ保存部, 43 補間画像生成部, 51 ハイブリッドイメージャ