JP2018093346A - 画像処理装置及びその制御方法、プログラム、記憶媒体 - Google Patents
画像処理装置及びその制御方法、プログラム、記憶媒体 Download PDFInfo
- Publication number
- JP2018093346A JP2018093346A JP2016234420A JP2016234420A JP2018093346A JP 2018093346 A JP2018093346 A JP 2018093346A JP 2016234420 A JP2016234420 A JP 2016234420A JP 2016234420 A JP2016234420 A JP 2016234420A JP 2018093346 A JP2018093346 A JP 2018093346A
- Authority
- JP
- Japan
- Prior art keywords
- image
- motion vector
- vector detection
- blur correction
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
【課題】画像信号を複数の画像処理プロセッサで並列処理する場合に、動きベクトルの検出精度を向上させる画像処理装置及び方法を提供する。【解決手段】撮像装置1000は、撮像された画像に対して動きベクトルの検出及び画像の記録・表示処理等を並列して行う。動きベクトル検出部106−1は、1/4縮小輝度信号を用いて第1の動きベクトルを検出し、結果をDRAM105−1に格納する。動きベクトル検出部106−2は、1/2縮小輝度信号を用いて第2の動きベクトルを検出し、結果をDRAM105−2に格納する。画像処理プロセッサは、動きベクトル検出部が検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして第1の動きベクトルを選択し、動きベクトル検出部が検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして第2の動きベクトルを選択する。【選択図】図1
Description
本発明は、複数のフレーム画像間で動きベクトルを検出する画像処理装置に関するものである。
近年、デジタルカメラなどの撮像装置においては、撮像素子の多画素化や動画像の高フレームレート化などに伴い、画像処理プロセッサで処理するデータ量が増大している。処理するデータ量が増大すると、1つの画像処理プロセッサで処理することが出来なくなるため、複数の画像処理プロセッサを搭載し、複数の画像処理プロセッサで処理を分担するという方法が提案されている。
複数の画像処理プロセッサで処理を分担する例として、特許文献1には、複数の画像処理プロセッサを直列に接続し、画像の領域を分割し、各々の画像処理プロセッサで分担して処理することが開示されている。
特許文献1に記載された技術においては、上述したように画像の領域を分割し、各々の画像処理プロセッサで分担して処理している。そのため、ベクトル検出処理などの画像信号から評価値を取得する処理においては、分割境界の評価値を取得するために画像信号をオーバーラップさせて分割読みをする必要があり、各画像処理プロセッサの処理負荷を大きくしてしまうという課題がある。
そこで、これを解決する1つの方法として、画像信号を分割せずに、1つの画像処理プロセッサで処理が出来る画像サイズまで画像を縮小処理して評価値取得用の画像信号を生成し、評価値処理を1つの画像処理プロセッサで一括処理することが考えられる。
しかし、画像信号を高い縮小率で縮小すると、縮小前の画像信号が有するテクスチャ情報が消失するため、ベクトル検出精度が低下してしまうという課題が生じる。
本発明は上述した課題に鑑みてなされたものであり、その目的は、画像信号を複数の画像処理プロセッサで並列処理する場合に、動きベクトルの検出精度を向上させることができる画像処理装置を提供することである。
本発明に係わる画像処理装置は、入力された画像を複数のプロセッサで並列に処理する画像処理装置であって、前記入力された画像から生成され、該入力された画像よりも解像度が低い第1の解像度の画像を用いて第1の動きベクトルを検出する第1の動きベクトル検出手段を有する第1のプロセッサと、前記入力された画像から生成され、前記第1の解像度よりも解像度が高い第2の解像度の画像を用いて第2の動きベクトルを検出する第2の動きベクトル検出手段を有する第2のプロセッサと、を備え、前記第1のプロセッサと前記第2のプロセッサの少なくとも一方は、前記第1の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして前記第1の動きベクトルを選択し、前記第1の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして前記第2の動きベクトルを選択する選択手段を有することを特徴とする。
本発明によれば、画像信号を複数の画像処理プロセッサで並列処理する場合に、動きベクトルの検出精度を向上させることができる画像処理装置を提供することが可能となる。
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の画像処理装置の第1の実施形態である撮像装置1000の構成を示すブロック図である。撮像装置1000は、3つの画像処理チップを備えて構成され、それぞれの画像処理チップが、撮像された画像に対して動きベクトルの検出、及び画像の記録・表示処理等を並列に行う。本実施形態における3つの画像処理チップは同一構成のチップであり、それぞれマスターチップ200−1、第1のスレーブチップ200−2、第2のスレーブチップ200−3と呼ぶ。図1では、説明に必要となるブロックのみを記載しているため、構成が異なって示されているが、3つの画像処理チップは同一構成である。図番号の後に「−1」が記載されているものがマスターチップ側の機能ブロックである。図番号の後に「−2」が記載されているものが第1のスレーブチップ側の画像処理装置の機能ブロック、図番号の後に「−3」が記載されているものが第2のスレーブチップ側の画像処理装置の機能ブロックである。
図1は、本発明の画像処理装置の第1の実施形態である撮像装置1000の構成を示すブロック図である。撮像装置1000は、3つの画像処理チップを備えて構成され、それぞれの画像処理チップが、撮像された画像に対して動きベクトルの検出、及び画像の記録・表示処理等を並列に行う。本実施形態における3つの画像処理チップは同一構成のチップであり、それぞれマスターチップ200−1、第1のスレーブチップ200−2、第2のスレーブチップ200−3と呼ぶ。図1では、説明に必要となるブロックのみを記載しているため、構成が異なって示されているが、3つの画像処理チップは同一構成である。図番号の後に「−1」が記載されているものがマスターチップ側の機能ブロックである。図番号の後に「−2」が記載されているものが第1のスレーブチップ側の画像処理装置の機能ブロック、図番号の後に「−3」が記載されているものが第2のスレーブチップ側の画像処理装置の機能ブロックである。
本実施形態では、1つのチップだけでは記録画像の生成処理が間に合わないため、第1のスレーブチップ200−2、第2のスレーブチップ200−3で分担して処理を行う。また、本実施形態では、マスターチップ200−1で処理速度優先のベクトル検出、第1のスレーブチップ200−2で検出精度優先のベクトル検出を行う。本実施形態におけるベクトル検出処理は、記録画像生成処理とは異なり、2つのチップで分担処理しても処理時間は大きく短縮できない。これは、ベクトル検出処理を2つのチップで分担処理しても、画像分割境界の評価値を取得するために、分割画像をオーバーラップさせて処理する必要があり、処理データ量を大きく減らすことが出来ないためである。そのため、本実施形態では、マスターチップ200−1で、処理時間が間に合うサイズまで縮小した画像を用いて、第1のスレーブチップ200−2より高レートで処理時間優先のベクトル検出を行う。第1のスレーブチップ200−2では、マスターチップ程の画像縮小はせずに、マスターチップ200−1より低レートで検出精度優先のベクトル検出を行う。
撮像装置1000は、撮影光学系100、撮影光学系駆動部101、撮像素子102、撮像素子駆動部103、画像処理プロセッサであるマスターチップ200−1、第1のスレーブチップ200−2、第2のスレーブチップ200−3を備える。
マスターチップ200−1において、画像縮小部107−1は、撮像素子102から出力される画像信号を縮小する。本実施形態では、撮像素子102からの出力データレートが高く、マスターチップ200−1は、撮像データレートと同じ速度で記録画像を生成することが出来ないため、撮像データをDRAM105−1に一旦書き込む。この時、撮像データのDRAM105−1への書き込みデータレートが高いため、DRAM105−1の使用可能帯域の多くを使用してしまう。よって、本実施形態では、同じくDRAM105−1の使用可能帯域の多くを使用する記録画像の生成処理は、マスターチップ200−1では行わない。
ベクトル検出処理はDRAM105−1の使用可能帯域の多くは使用しないため、マスターチップ200−1で行うことは可能である。DRAM105−1へ書き込まれた撮像データは、撮像データレートより遅いレートでDRAM105−1から読み出され、第1のスレーブチップ200−2、第2のスレーブチップ200−3へ転送される。第1のスレーブチップ200−2、第2のスレーブチップ200−3への転送レートは低いため、第1のスレーブチップ200−2、第2のスレーブチップ200−3は記録画像生成処理を行うことが可能である。
本実施形態では、撮像素子102は、水平3840画素、垂直2160ラインの画像データを出力し、画像縮小部107−1は、水平1/4、垂直1/4に縮小した水平960画素、垂直540ラインの画像データを生成する。また、本実施形態では、画像の輝度信号のみを使用してベクトル検出処理を行うため、画像縮小部107−1は、縮小した輝度信号のみを出力する。以降、画像縮小部107−1が出力するデータは、1/4縮小輝度信号と呼ぶ。
マスターチップ200−1は、画像データを1/4まで縮小することで、ベクトル検出処理に要する時間を短縮している。データ転送制御部104−1はDRAM105−1とのデータ転送を制御する。ベクトル検出部106−1は、1/4縮小輝度信号を用いて動きベクトルを検出し、結果をDRAM105−1に格納する。CPU108−1はバスを介して各種制御を司る。通信部109−1は、DRAM105−1から読み出された撮像データ、及び1/4縮小画像から求めたベクトル検出結果を第1のスレーブチップ200−2へ転送する。通信部109−1は、第1のスレーブチップ200−2から像ブレ補正演算結果を受け取る。CPU108−1は、受け取った像ブレ補正演算結果を用いて撮影光学系駆動部11を制御し、光学像ブレ補正処理を行う。
次に、第1のスレーブチップ200−2の構成について説明する。第1の通信部109−2は、マスターチップ200−1とのデータ転送を制御する。画像縮小部107−2は、マスターチップ200−1から送られた画像を水平1/2、垂直1/2に縮小した水平1920画素、垂直180ラインの輝度信号を生成する。以降、画像縮小部107−2が出力するデータは、1/2縮小輝度信号と呼ぶ。動きベクトル検出部106−2は、1/2縮小輝度信号を用いて動きベクトルを検出し、結果をDRAM105−2に格納する。データ転送制御部104−2はDRAM105−2とのデータ転送を制御する。
画像分割部116−2は、マスターチップ200−1から送られた画像を分割し、上半分の画像をDRAM105−2に書き込み、下半分の画像は第2の通信部117−2を介して第2のスレーブチップ200−3へ転送する。第1の信号処理部110−2は、画像信号にノイズ除去処理等の処理を施す。第1の信号処理部110での処理は、他の処理に比べ処理に時間を要するため、第1のスレーブチップ200−2と第2のスレーブチップ200−3で処理を分担している。第1のスレーブチップ200−2は上半分の画像、第2のスレーブチップ200−3は下半分の画像を第1の信号処理部110で処理する。
CPU108−2は、1/4縮小輝度信号から求めたベクトル検出結果と、1/2縮小輝度信号から求めたベクトル検出結果のどちらか一方を選択して像ブレ補正演算を行う。像ブレ補正演算結果は、マスターチップ200−1及び第2の信号処理部111−2に送られる。第2の信号処理部111−2は、第1のスレーブチップ200−2と第2のスレーブチップ200−3の第1の信号処理部110で処理された画像に対して、像ブレ補正演算結果を用いて電子像ブレ補正処理を行う。電子像ブレ補正処理された画像は、記録部制御部112−2によって記録部113−2に記録され、表示部制御部114−2によって表示部115−2に表示される。本実施形態において、光学像ブレ補正処理と電子像ブレ補正処理で選択する動きベクトルの検出結果は同じである。
次に、第2のスレーブチップ200−3の構成について説明する。第1の通信部109−3は、第1のスレーブチップ200−2とのデータ転送を制御する。データ転送制御部104−3はDRAM105−3とのデータ転送を制御する。CPU108−3は第2のスレーブチップ200−3の各種制御を司る。第1の信号処理部110−3は、第1のスレーブチップ200−2から送られた下半分の画像に対して、ノイズ除去処理等の処理を施す。第1の信号処理部110−3で処理された画像は、第1の通信部109−3を介して第1のスレーブチップ200−2へ送られる。
次に、動きベクトル検出部106によるベクトル検出方法について図2を用いて説明する。本実施形態では、縮小輝度信号を複数領域(以降、グリッドと呼ぶ)に分割したグリッド毎にベクトル検出を行う。図2では、縮小輝度信号220を、水平方向6個、垂直方向4個のグリッドに分割している。DRAM105には、現時点の縮小輝度信号と、1フレーム前の縮小輝度信号の2フレーム分の縮小輝度信号が記憶されている。本実施形態では、現時点の縮小輝度信号をテンプレート画像とし、1フレーム前の縮小輝度信号をサーチ画像として、グリッド毎にテンプレートマッチングを行う。グリッド201では、サーチ画像203と、テンプレート画像202とでテンプレートマッチングを行う。他のグリッドについても同様のテンプレートマッチングを行い、グリッド毎にベクトル検出を行う。本実施形態では、グリッド毎に求めたベクトル検出結果の平均値を一画面全体のベクトル検出結果とするが、必ずしも平均値でなくてもよい。
本実施形態では、テンプレートマッチングの相関値算出方法の一例として、差分絶対値和(Sum of Absolute Difference、以下SADと略す)を使用する。SADの計算式を(式1)に示す。
(式1)において、f(i,j)はテンプレート202内の座標(i,j)における画素値を表しており、g(i,j)はサーチ画像203内の座標(i,j)における画素値を表す。SADでは、各画素値f(i,j)及びg(i,j)について差の絶対値を計算し、その総和を求めることで相関値S_SADを得ることが出来る。従って、相関値S_SADの値が小さい程、テンプレート画像202とサーチ画像203が類似していることを表している。なお、本実施形態では、相関値の一例としてSADを使用しているが、これに限られるものではなく、差分二乗和(SSD)や正規化相互相関(NCC)等の他の相関値を用いてもよい。
次に、1/4縮小輝度信号から求めたベクトル検出結果と、1/2縮小輝度信号から求めたベクトル検出結果のCPU108−2による選択方法について図3を用いて説明する。
撮影光学系100に対して光学像ブレ補正を行う場合、出来るだけ早くベクトル検出結果を撮影光学系100へフィードバックすることが望ましい。そのため、本実施形態では、ベクトル検出結果を毎フレーム撮影光学系100へフィードバックして光学像ブレ補正を行う。CPU108−2は、マスターチップ200−1で1/4縮小輝度信号から毎フレーム求めたベクトル検出結果と、第1のスレーブチップ200−2で1/2縮小輝度信号から2フレームおきに求めたベクトル検出結果を受け取る。
本実施形態では、ベクトル検出に使用する画像が1フレーム目、偶数フレーム目、奇数フレーム目によってベクトル検出結果の選択方法が異なる。1フレーム目の画像(図3において、時刻T1で入力される画像)で動きベクトルを検出する場合、時刻T2までにベクトルを検出して撮影光学系100にフィードバックする必要がある。マスターチップ200−1は1/4縮小輝度信号を使用するため、時刻T2までにベクトル検出を行うことは可能である。第1のスレーブチップ200−2は1/2縮小輝度信号を使用するため、時刻T2までにベクトル検出を行うことは出来ない。そのため、CPU108−2は、マスターチップ200−1で求めたベクトル検出結果を選択する。
偶数フレーム目の画像(図3において、時刻T2,T4,T6で入力される画像)でベクトル検出する場合について、図3の2フレーム目の画像(図3において、時刻T2で入力される画像)でベクトル検出する場合を例に挙げて説明する。CPU108−2は、マスターチップ200−1において、1フレーム目、2フレーム目の画像で求めた2つのベクトル検出結果の差が予め設定された閾値未満であるか否かを判断する。閾値未満(所定値未満)であればCPU108−2は、第1のスレーブチップ200−2で1フレーム目の画像から求めたベクトル検出結果を選択する。これは、1フレーム目と2フレーム目から求めたベクトル検出結果の差が小さいのであれば、1フレーム目の解像度の高い1/2縮小輝度信号から求めたベクトル検出結果を選択した方が、高い検出精度のベクトル検出結果を使用出来るからである。閾値以上(所定値以上)であれば、CPU108−2は、マスターチップ200−1で2フレーム目の画像から求めたベクトル検出結果を選択する。
1フレーム目以外の奇数フレーム目の画像(図3において、時刻T3,T5で入力される画像)でベクトル検出する場合について、図3の3フレーム目の画像(図3において、時刻T3で入力される画像)でベクトル検出する場合を例に挙げて説明する。CPU108−2は、マスターチップ200−1において、1フレーム目、2フレーム目の画像で求めたベクトル検出結果の差と、2フレーム目、3フレーム目の画像で求めたベクトル検出結果の差それぞれが予め設定された閾値未満であるか否かを判断する。共に閾値未満であればCPU108−2は、第1のスレーブチップ200−2で1フレーム目の画像から求めたベクトル検出結果を選択する。これは、1フレーム目と2フレーム目と3フレーム目の画像から求めたベクトル検出結果の差が小さいのであれば、1フレーム目の解像度の高い1/2縮小輝度信号から求めたベクトル検出結果を選択した方が、高い検出精度のベクトル検出結果を使用出来るからである。閾値以上であればCPU108−2は、マスターチップ200−1で3フレーム目の画像から求めたベクトル検出結果を選択する。
このように、複数フレーム間のベクトル検出結果の差が小さい場合は1/2縮小輝度信号から求めた検出精度を優先したベクトル検出結果を選択し、差が大きい場合は1/4縮小輝度信号から求めた検出時間を優先したベクトル検出結果を選択する。
図4を用いて、本実施形態における画像処理の動作の流れについて説明する。図4は、4フレームの画像データを処理する流れを示している。本実施形態では、60fpsでデータを処理する。よって、1フレームのデータを約16.6ms(=1/60秒)で処理する。
時刻T1における処理について説明する。撮像素子102からは、1フレーム目のデータが8.3msで出力される。マスターチップ200−1は、撮像素子102から出力されたデータから1/4縮小輝度信号を生成してベクトル検出を行う。また、マスターチップ200−1は撮像素子102から出力されたデータをDRAM105−1に書き込み、撮像素子102の出力データレートより遅いレートでDRAM105−1からデータを読み出して第1のスレーブチップ200−2へ転送する。また、マスターチップ200−1は、1/4縮小輝度信号から求めたベクトル検出結果を第1のスレーブチップ200−2へ転送する。
第1のスレーブチップ200−2は、マスターチップ200−1から転送された画像データから1/2縮小輝度信号を生成してベクトル検出を行う。また、第1のスレーブチップ200−2は、マスターチップ200−1から転送された画像データの上半分をDRAM105−2へ書き込み、下半分を第2のスレーブチップ200−3へ転送する。また、第1のスレーブチップ200−2は、マスターチップ200−1から転送された1フレーム目のベクトル検出結果から像ブレ補正制御に必要なパラメータを演算し、マスターチップ200−1へ転送する。マスターチップ200−1は、受け取った像ブレ補正演算結果を用いて光学像ブレ補正処理を行う。第2のスレーブチップ200−3は、第1のスレーブチップ200−2から受け取った下半分の画像データをDRAM105−3へ書き込む。
次に、時刻T2における処理について説明する。撮像素子102から2フレーム目のデータが出力され、マスターチップ200−1は、1フレーム目と同様に処理を行う。第1のスレーブチップ200−2は、時刻T2において1フレーム目のベクトル検出が完了していないため、2フレーム目のベクトル検出は行わない。第1のスレーブチップ200−2は、第1のスレーブチップ200−2による1フレーム目のベクトル検出結果と、マスターチップ200−1によるベクトル検出結果のどちらか一方を選択し、像ブレ補正演算した結果をマスターチップ200−1へ転送する。この時、CPU108−2は、マスターチップ200−1の1フレーム目のベクトル検出結果も不図示の内部メモリに記憶している。また、第1のスレーブチップ200−2は、マスターチップ200−1から転送された2フレーム目の画像データの上半分をDRAM105−2へ書き込み、下半分を第2のスレーブチップ200−3へ転送する。また、第1のスレーブチップ200−2は、DRAM105−2へ書き込まれた1フレーム目の上半分の画像データに対し、第1の信号処理部110−2による処理を行い、DRAM105−2へ書き込む。第2のスレーブチップ200−3は、DRAM105−3へ書き込まれた1フレーム目の下半分の画像データに対して第1の信号処理部110−3による処理を行い、第1のスレーブチップ200−2へ転送する。
次に、時刻T3における処理について説明する。時刻T1、時刻T2の処理と同じ処理については説明を省略する。第1のスレーブチップ200−2は、第1のスレーブチップ200−2と第2のスレーブチップ200−3それぞれの第1の信号処理部110で処理された画像データに対し、第2の信号処理部111−2による処理を行い、DRAM105−2へ書き込む。
次に、時刻T4における処理について説明する。時刻T1〜3の処理と同じ処理については説明を省略する。第1のスレーブチップ200−2は、第2の信号処理部111−2で処理された画像データを記録部113−2へ書き込む。
図5は、本実施形態におけるベクトル検出シーケンスを示すフローチャートである。第1のスレーブチップ200−2のCPU108−2は、画像信号の撮像が開始され(S501)、1フレーム目であれば(S502)、マスターチップ200−1で検出された1フレーム目のベクトル検出結果を選択する(S503)。偶数フレーム目であれば(S504)、現フレームを2Nフレーム目とすると、2Nフレーム目と(2N−1)フレーム目のベクトル検出結果の差と予め設定された閾値とを比較する(S505)。閾値未満であれば、第1のスレーブチップ200−2で求めた(2N−1)フレーム目のベクトル検出結果を選択する(S506)。閾値以上であれば、マスターチップ200−1で検出された2Nフレーム目のベクトル検出結果を選択する(S507)。
1フレーム目以外の奇数フレーム目であれば、現フレームを(2N+1)フレーム目とすると、(2N−1)と2N、及び2Nと(2N+1)フレーム目のベクトル検出結果の差と予め設定された閾値とをそれぞれ比較する(S508)。共に閾値未満であれば、第1のスレーブチップ200−2で求められた(2N−1)フレーム目のベクトル検出結果を選択する(S509)。1つでも閾値以上であれば、マスターチップ200−1で検出した(2N+1)フレーム目のベクトル検出結果を選択する(S510)。画像信号の撮像が終了するまで上記シーケンスを繰り返す(S511)。
以上説明したように、第1の実施形態におけるベクトル検出処理により、複数フレーム間のベクトル検出結果の差が小さければ高い解像度の画像を使用したベクトル検出結果を選択することで、ベクトル検出精度を向上させることが出来る。
なお、本実施形態では、マスターチップで1/4縮小輝度信号、第1のスレーブチップで1/2縮小輝度信号を生成したが、これとは異なる縮小率の縮小輝度信号を生成してもよい。また、本実施形態では、撮像素子が水平3840画素、垂直2160ラインの画像データを60fpsで出力したが、異なる画素数、及びフレームレートでもよい。また、本実施形態では、マスターチップで60fps、スレーブチップで30fpsのレートで動きベクトルを検出したが、これとは異なるレートで動きベクトルを検出してもよい。また、本実施形態では、3つのチップで画像データを処理したが、必ずしも3つのチップでなくてもよい。また、本実施形態では、マスターチップと第1のスレーブチップで求めた動きベクトルのどちらを選択するかを毎フレーム判断したが、撮影モードの切り替わり直後の数フレームのみでどちらを選択するか判断し、以降のフレームでは常に選択したベクトル検出結果を使用してもよい。
<第2の実施形態>
以下、本発明の第2の実施形態について説明する。第2の実施形態の撮像装置の構成、ベクトル検出方法は第1の実施形態と同様であるため、説明を省略する。第2の実施形態では、光学像ブレ補正処理と電子像ブレ補正処理とで異なるベクトル検出結果を選択する場合がある点が第1の実施形態と異なる。本実施形態における光学像ブレ補正処理で選択するベクトル検出結果は第1の実施形態と同じであり、電子像ブレ補正処理で選択するベクトル検出結果が第1の実施形態と異なる場合がある。
以下、本発明の第2の実施形態について説明する。第2の実施形態の撮像装置の構成、ベクトル検出方法は第1の実施形態と同様であるため、説明を省略する。第2の実施形態では、光学像ブレ補正処理と電子像ブレ補正処理とで異なるベクトル検出結果を選択する場合がある点が第1の実施形態と異なる。本実施形態における光学像ブレ補正処理で選択するベクトル検出結果は第1の実施形態と同じであり、電子像ブレ補正処理で選択するベクトル検出結果が第1の実施形態と異なる場合がある。
1/4縮小輝度信号から求めたベクトル検出結果と、1/2縮小輝度信号から求めたベクトル検出結果のCPU108−2による選択方法について図6を用いて説明する。図6(a)は、1/4縮小輝度信号と1/2縮小輝度信号のベクトル検出タイミングを説明する図である。図6(b)は、本実施形態における画像処理の流れを説明する図である。
光学像ブレ補正を行う場合は、出来るだけ早くベクトル検出結果を撮影光学系100へフィードバックすることが望ましいが、電子像ブレ補正処理を行う場合は、画像データを記録部113−2へ記録するまでに像ブレ補正処理が完了していればよい。本実施形態における1フレーム目、偶数フレーム目における電子像ブレ補正処理のベクトル検出結果の選択方法は、第1の実施形態と同じであるため、説明を省略する。
1フレーム目以外の奇数フレーム目の画像(図6において、時刻T3,T5で入力される画像)で電子像ブレ補正処理のためのベクトル検出を行う場合について、図6の3フレーム目の画像(図3において、T3で入力される画像)でベクトル検出する場合を例に挙げて説明する。
光学像ブレ補正を行う場合、図6の時刻T3で入力された3フレーム目の画像に対して、時刻T4までにベクトルを検出して光学系にフィードバックする必要がある。マスターチップ200−1は、時刻T3で入力された3フレーム目の画像に対して、時刻T4までにベクトル検出を行うことが可能である。第1のスレーブチップ200−2は、時刻T3で入力された3フレーム目の画像に対して、時刻T4までにベクトル検出を行うことは出来ない。
電子像ブレ補正処理を行う場合、時刻T3で入力された3フレーム目の画像は、時刻T5で電子像ブレ補正の処理を行い、時刻T6で記録部に記録する。時刻T3で入力された3フレーム目の画像に対して、第1のスレーブチップ200−2は、時刻T5までにベクトル検出を行うことが出来る。そのため、電子像ブレ補正処理を行う場合は、第1のスレーブチップ200−2で求めたベクトル検出結果を選択することが可能である。
CPU108−2は、マスターチップ200−1において、3フレーム目、4フレーム目の画像で求めたベクトル検出結果の差が予め設定された閾値未満であるか否かを判断する。閾値未満であればCPU108−2は、電子像ブレ補正処理のために、第1のスレーブチップ200−2で3フレーム目の画像から求めたベクトル検出結果を選択する。これは、3フレーム目と4フレーム目の画像から求めたベクトル検出結果の差が小さいのであれば、3フレーム目の解像度の高い1/2縮小輝度信号から求めたベクトル検出結果を選択した方が、高い検出精度のベクトル検出結果を使用出来るからである。閾値以上であればCPU108−2は、マスターチップ200−1で3フレーム目の画像から求めたベクトル検出結果を選択する。
図7は、本実施形態における、電子像ブレ補正処理を行う場合のベクトル検出シーケンスを示す図である。
第1のスレーブチップ200−2のCPU108−2は、画像信号の撮像が開始され(S71)、1フレーム目であれば(S702)、マスターチップ200−1で検出した1フレーム目のベクトル検出結果を選択する(S703)。偶数フレーム目であれば(S704)、2Nフレーム目の画像を電子像ブレ補正処理する場合、2Nと(2N−1)フレーム目のベクトル検出結果の差と予め設定された閾値とを比較する(S705)。閾値未満であれば、第1のスレーブチップ200−2で求めた(2N−1)フレーム目のベクトル検出結果を選択する(S706)。閾値以上であれば、マスターチップ200−1で検出した2Nフレーム目のベクトル検出結果を選択する(S707)。1フレーム目以外の奇数フレーム目であれば、(2N+1)フレーム目の画像を電子像ブレ補正処理する場合、(2N+1)と(2N+2)フレーム目のベクトル検出結果の差と予め設定された閾値とを比較する(S708)。閾値未満であれば、第1のスレーブチップ200−2で求めた(2N+1)フレーム目のベクトル検出結果を選択する(S709)。閾値以上であれば、マスターチップ200−1で検出した(2N+1)フレーム目のベクトル検出結果を選択する(S710)。画像信号の撮像が終了するまで上記シーケンスを繰り返す(S711)。
以上説明したように、第2の実施形態におけるベクトル検出処理により、電子像ブレ補正処理を行う場合は、光学像ブレ補正処理と異なるベクトル検出結果を選択することで、第1の実施形態より精度の高い電子像ブレ補正処理を行うことが出来る。
なお、本実施形態では、マスターチップで1/4縮小輝度信号、第1のスレーブチップで1/2縮小輝度信号を生成したが、これとは異なる縮小率の縮小輝度信号を生成してもよい。また、本実施形態では、撮像素子が水平3840画素、垂直2160ラインの画像データを60fpsで出力したが、異なる画素数、及びフレームレートでもよい。また、本実施形態では、マスターチップで60fps、スレーブチップで30fpsのレートで動きベクトルを検出したが、異なるレートで動きベクトルを検出してもよい。また、本実施形態では、3つのチップで画像データを処理したが、必ずしも3つのチップでなくてもよい。また、本実施形態では、マスターチップと第1のスレーブチップで求めた動きベクトルのどちらを選択するかを毎フレーム判断したが、撮影モードの切り替わり直後の数フレームのみでどちらを選択するか判断し、以降のフレームでは常に選択したベクトル検出結果を使用してもよい。
<第3の実施形態>
以下、本発明の第3の実施形態について説明する。第3の実施形態における、ベクトル検出方法、ベクトル検出結果の選択方法、ベクトル検出シーケンスは第1の実施形態と同様であるため、説明を省略する。第3の実施形態では、撮像装置の構成、画像処理の流れが第1の実施形態と異なる。本実施形態では、マスターチップと第1のスレーブチップの2チップで画像処理を行う。本実施形態では、撮像素子のデータ出力レートが第1の実施形態より低いため、マスターチップでも記録画像の生成処理を行う。
以下、本発明の第3の実施形態について説明する。第3の実施形態における、ベクトル検出方法、ベクトル検出結果の選択方法、ベクトル検出シーケンスは第1の実施形態と同様であるため、説明を省略する。第3の実施形態では、撮像装置の構成、画像処理の流れが第1の実施形態と異なる。本実施形態では、マスターチップと第1のスレーブチップの2チップで画像処理を行う。本実施形態では、撮像素子のデータ出力レートが第1の実施形態より低いため、マスターチップでも記録画像の生成処理を行う。
図8は、第3の実施形態の撮像装置の構成を示す図である。第1の実施形態と同じ構成の箇所については説明を省略する。本実施形態における撮像装置は、マスターチップと第1のスレーブチップの2つのチップを備えて構成される。本実施形態では、1つのチップだけでは記録画像の生成処理が間に合わないため、マスターチップ、第1のスレーブチップで分担して処理を行う。また、本実施形態では、マスターチップで処理速度優先のベクトル検出を行い、第1のスレーブチップで検出精度優先のベクトル検出を行う。本実施形態では、マスターチップでは、処理時間が間に合うサイズまで縮小した画像を用いて、第1のスレーブチップより高レートで処理時間優先のベクトル検出を行う。第1のスレーブチップでは、マスターチップ程画像縮小はせずに、マスターチップより低レートで検出精度優先のベクトル検出を行う。
図8において、マスターチップ820−1の第1の縮小部809−1は、1/2縮小輝度信号(水平1/2、垂直1/2にした輝度信号)を生成する。動きベクトル検出部806−1は、第2の画像縮小部1806−1を有しており、1/2縮小輝度信号を更に水平1/2、垂直1/2にした1/4縮小輝度信号を生成する。動きベクトル検出部806−1は、1/4縮小輝度信号を用いてベクトル検出を行う。また、画像分割部807−1は、撮像素子802が出力した画像データの上半分をDRAM805−1に書き込み、下半分を第1のスレーブチップ820−2へ転送する。また、画像分割部807−1は、第1の画像縮小部809−1が出力した1/2縮小輝度信号の上半分を第1のスレーブチップ820−2へ転送する。第1の信号処理部810−1は、画像信号にノイズ除去処理等の処理を施す処理部であり、DRAM805−1から読み出した上半分の画像に対して信号処理を行い、DRAM805−1へ書き込む。第1のスレーブチップ820−2の第1の信号処理部810−2は、マスターチップ820−1から送られた下半分画像に対して信号処理を行い、マスターチップ820−1へ転送する。第1のスレーブチップ820−2の画像縮小部809−2は、マスターチップ820−1から送られた下半分画像に対して1/2縮小輝度信号を生成し、DRAM805−2に書き込む。第1のスレーブチップ820−2の動きベクトル検出部806−2は、マスターチップ820−1から送られてきた上半分の1/2縮小輝度信号と、DRAM805−2から読み出した下半分の1/2縮小輝度信号とを用いてベクトル検出を行う。動きベクトル検出部806−2は、検出したベクトル検出結果をマスターチップ820−1へ転送する。
マスターチップ820−1のCPU808−1は、マスターチップ820−1と第1のスレーブチップ820−2のそれぞれで求めたベクトル検出結果のどちらか一方を選択し、像ブレ補正処理の演算を行う。マスターチップ820−1の第2の信号処理部811−1は、マスターチップ820−1と第1のスレーブチップ820−2のそれぞれの第1の信号処理部810で処理した画像に対し、電子像ブレ補正処理を行う。電子像ブレ補正処理された画像は、記録部制御部812−1によって記録部813−1に記録され、表示部制御部814−1によって表示部815−1に表示される。
図9を用いて、本実施形態における画像処理の流れについて説明する。図9は、4フレームの画像データを処理する流れを示している。第1の実施形態と同じ処理の箇所は説明を省略する。
まず、時刻T1における処理について説明する。マスターチップ820−1の第1の画像縮小部809−1は、撮像素子802から出力されたデータから1/2縮小輝度信号を生成する。生成した1/2縮小輝度信号は、DRAM805−1に書き込むと共に、上半分データを第1のスレーブチップ820−2へ転送する。マスターチップ820−1の動きベクトル検出部806−1は、DRAM805−1から読み出した1/2縮小輝度信号を更に1/2した1/4縮小輝度信号を生成してベクトル検出を行う。マスターチップ820−1のCPU808−1は、ベクトル検出結果を用いて像ブレ補正処理を行う。
また、マスターチップ820−1は、撮像素子802から出力されたデータの上半分をDRAM805−1に書き込み、下半分を第1のスレーブチップ820−2へ転送する。第1のスレーブチップ820−2は、マスターチップ820−1から送られた1フレーム目の下半分の画像データをDRAM805−2に書き込むと共に、1/2縮小輝度信号を生成する。第1のスレーブチップ820−2は、マスターチップ820−1から送られた上半分の1/2縮小輝度信号と、第1のスレーブチップ820−2で生成した下半分の1/2縮小輝度信号を用いて一画面のベクトル検出を行う。
次に、時刻T2における処理について説明する。時刻T1と同じ処理については説明を省略する。マスターチップ820−1は、DRAM805−1から1フレーム目の上半分画像データを読み出し、第1の信号処理部810−1で処理を行ってDRAM805−1に書き込む。第1のスレーブチップ820−2は、時刻T2において1フレーム目のベクトル検出が完了していないため、2フレーム目のベクトル検出は行わない。第1のスレーブチップ820−2は、1フレーム目の1/2縮小輝度信号から求めたベクトル検出結果をマスターチップ820−1へ転送する。マスターチップ820−1は、第1のスレーブチップ820−2による1フレーム目のベクトル検出結果と、マスターチップによるベクトル検出結果のどちらか一方を選択し、像ブレ補正処理を行う。ベクトル検出結果の選択方法は第1の実施形態と同じである。第1のスレーブチップ820−2は、DRAM805−2から1フレーム目の下半分の画像データを読み出し、第1の信号処理部810−2で処理を行ってマスターチップ820−1に転送する。
次に、時刻T3における処理について説明する。時刻T1,T2と同じ処理については説明を省略する。マスターチップ820−1は、マスターチップ820−1と第1のスレーブチップ820−2それぞれの第1の信号処理部810で処理した画像データに対し、第2の信号処理部811−2で処理を行った一画面データをDRAM805−1に書き込む。
次に、時刻T4における処理について説明する。時刻T1〜3と同じ処理については説明を省略する。マスターチップ820−1は、第2の信号処理部811−1で処理した画像データを記録部813−1へ書き込む。
以上説明したように、第3の実施形態におけるベクトル検出処理により、スレーブチップに撮像画像の一部分のデータしか入力されない場合においても、縮小輝度信号をチップ間で通信することにより、ベクトル検出精度を向上させることが出来る。本実施形態では、一画面の撮像画像データでなくサイズを縮小した輝度信号のみをスレーブチップに入力することにより、チップ間通信データ量を削減している。
なお、本実施形態では、上半分の1/2縮小輝度信号を一度にスレーブチップへ転送したが、複数回に分けて転送してもよい。例えば、上半分の1/2縮小輝度信号の転送途中で一度転送を止め、撮像素子が出力した画像データの下半分の転送を行って転送が完了したら、上半分の1/2縮小輝度信号の残りのデータを転送してもよい。ここで、複数回に分けて縮小輝度信号を転送する場合、1回に転送するデータ量がベクトル検出を行うグリッドのデータ量の倍数となるように制御してもよい。スレーブチップは、グリッド単位でベクトル検出を行うため、グリッド単位でスレーブチップに縮小輝度信号を転送することで、複数回に分けて転送することによるスレーブチップのベクトル検出の入力データ待ち時間を削減することが出来る。
なお、本実施形態では、マスターチップで1/4縮小輝度信号、第1のスレーブチップで1/2縮小輝度信号を用いてベクトル検出を行ったが、これとは異なる縮小率の縮小輝度信号を用いてベクトル検出を行ってもよい。また、本実施形態では、マスターチップで60fps、スレーブチップで30fpsのレートで動きベクトルを検出したが、異なるレートで動きベクトルを検出してもよい。また、本実施形態では、2つのチップで画像データを処理したが、複数のチップに一画面の撮像画像データが入力されない場合において、縮小輝度信号をチップ間で通信する構成であれば、必ずしも2つのチップでなくてもよい。また、本実施形態では、マスターチップと第1のスレーブチップで求めた動きベクトルのどちらを選択するかを毎フレーム判断したが、撮影モードの切り替わり直後の数フレームのみでどちらを選択するか判断し、以降のフレームでは常に選択したベクトル検出結果を使用してもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:撮影光学系、101:撮影光学系駆動部、102:撮像素子、103:撮像素子駆動部、200−1:マスターチップ、200−2:第1のスレーブチップ、200−3:第2のスレーブチップ
Claims (13)
- 入力された画像を複数のプロセッサで並列に処理する画像処理装置であって、
前記入力された画像から生成され、該入力された画像よりも解像度が低い第1の解像度の画像を用いて第1の動きベクトルを検出する第1の動きベクトル検出手段を有する第1のプロセッサと、
前記入力された画像から生成され、前記第1の解像度よりも解像度が高い第2の解像度の画像を用いて第2の動きベクトルを検出する第2の動きベクトル検出手段を有する第2のプロセッサと、を備え、
前記第1のプロセッサと前記第2のプロセッサの少なくとも一方は、前記第1の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして前記第1の動きベクトルを選択し、前記第1の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして前記第2の動きベクトルを選択する選択手段を有することを特徴とする画像処理装置。 - 前記第1または第2の動きベクトルを用いて光学像ブレ補正を行う光学像ブレ補正手段と、前記第1または第2の動きベクトルを用いて電子像ブレ補正を行う電子像ブレ補正手段とをさらに備え、前記選択手段は、前記光学像ブレ補正手段と電子像ブレ補正手段のそれぞれに対して同じ動きベクトルを選択することを特徴とする請求項1に記載の画像処理装置。
- 前記第1または第2の動きベクトルを用いて光学像ブレ補正を行う光学像ブレ補正手段と、前記第1または第2の動きベクトルを用いて電子像ブレ補正を行う電子像ブレ補正手段とをさらに備え、前記選択手段は、前記光学像ブレ補正手段と電子像ブレ補正手段のそれぞれに対して異なる動きベクトルを選択することを特徴とする請求項1に記載の画像処理装置。
- 前記第1および第2のプロセッサは、互いにデータを転送するための通信手段を有し、前記通信手段は、前記第1または第2の動きベクトル検出手段が動きベクトルを検出するために必要なデータを通信することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
- 前記通信手段は、前記第1または第2の動きベクトル検出手段が動きベクトルを検出するために必要なデータとして、前記入力された画像よりも解像度が低い画像のデータを通信することを特徴とする請求項4に記載の画像処理装置。
- 前記通信手段は、前記第1または第2の動きベクトル検出手段が動きベクトルを検出するために必要なデータとして、前記入力された画像から生成した輝度信号のデータを通信することを特徴とする請求項4に記載の画像処理装置。
- 前記第1および第2の動きベクトル検出手段は、画像を複数に分割したグリッドごとに動きベクトルを検出し、前記通信手段は、前記第1または第2の動きベクトル検出手段が動きベクトルを検出するために必要なデータとして、前記グリッドを単位として画像のデータを通信することを特徴とする請求項4に記載の画像処理装置。
- 前記第1または第2のプロセッサには、前記画像処理装置に入力された画像の一部が入力されることを特徴とする請求項1乃至7のいずれか1項に記載の画像処理装置。
- 画像を撮像する撮像手段と、
請求項1乃至8のいずれか1項に記載の画像処理装置と、
を備えることを特徴とする撮像装置。 - 画像を撮像するモードを切り替える切り替え手段をさらに備え、
前記選択手段は、前記切り替え手段により前記モードが切り替えられた直後のみ、像ブレ補正処理に用いる動きベクトルとして前記第1の動きベクトルを用いるか前記第2の動きベクトルを用いるかを選択することを特徴とする請求項9に記載の撮像装置。 - 入力された画像を複数のプロセッサで並列に処理する画像処理装置を制御する方法であって、
第1のプロセッサが、前記入力された画像から生成され、該入力された画像よりも解像度が低い第1の解像度の画像を用いて第1の動きベクトルを検出する第1の動きベクトル検出工程と、
第2のプロセッサが。前記入力された画像から生成され、前記第1の解像度よりも解像度が高い第2の解像度の画像を用いて第2の動きベクトルを検出する第2の動きベクトル検出工程と、
前記第1のプロセッサと前記第2のプロセッサの少なくとも一方が、前記第1の動きベクトル検出工程において検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして前記第1の動きベクトルを選択し、前記第1の動きベクトル検出工程において検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして前記第2の動きベクトルを選択する選択工程と、
を有することを特徴とする画像処理装置の制御方法。 - 請求項11に記載の制御方法の各工程を前記第1のプロセッサおよび第2のプロセッサに実行させるためのプログラム。
- 請求項11に記載の制御方法の各工程を前記第1のプロセッサおよび第2のプロセッサに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016234420A JP2018093346A (ja) | 2016-12-01 | 2016-12-01 | 画像処理装置及びその制御方法、プログラム、記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016234420A JP2018093346A (ja) | 2016-12-01 | 2016-12-01 | 画像処理装置及びその制御方法、プログラム、記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018093346A true JP2018093346A (ja) | 2018-06-14 |
Family
ID=62566470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016234420A Pending JP2018093346A (ja) | 2016-12-01 | 2016-12-01 | 画像処理装置及びその制御方法、プログラム、記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018093346A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866702A (zh) * | 2019-03-11 | 2021-05-28 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
-
2016
- 2016-12-01 JP JP2016234420A patent/JP2018093346A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866702A (zh) * | 2019-03-11 | 2021-05-28 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN112866702B (zh) * | 2019-03-11 | 2022-03-01 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
US11902563B2 (en) | 2019-03-11 | 2024-02-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Encoding and decoding method and device, encoder side apparatus and decoder side apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI609586B (zh) | 具備多個相機模組之電子裝置以及增加電子裝置所拍攝之訊框速率之方法 | |
CN106408502B (zh) | 实时视频帧预处理硬件 | |
JP2021060590A (ja) | 取込まれた像のパススルー表示 | |
CN103460242A (zh) | 信息处理装置、信息处理方法、以及位置信息的数据结构 | |
US20120162511A1 (en) | Multi-sensor video frame synchronization apparatus and methods | |
JP2006079584A (ja) | 複数の映像ラインを利用した映像整合方法及びそのシステム | |
CN107409176A (zh) | 多相机同步脉冲同步化 | |
KR101601263B1 (ko) | 비동기 센서들에 요구하는 씬의 3d 재구성 방법 | |
JP6694234B2 (ja) | 距離測定装置 | |
CN109661815B (zh) | 存在相机阵列的显著强度变化的情况下的鲁棒视差估计 | |
JP2006054887A (ja) | スケーリング可能な解像度を備えたカメラ | |
US9424623B2 (en) | Image processor | |
CN111416923B (zh) | 图像处理器和图像处理方法 | |
JP2019175112A (ja) | 画像処理装置、撮像装置、画像処理方法、及びプログラム | |
CN108540689B (zh) | 图像信号处理器、应用处理器及移动装置 | |
US20190005633A1 (en) | Image processing apparatus, image processing method, and storage medium | |
JP2018093346A (ja) | 画像処理装置及びその制御方法、プログラム、記憶媒体 | |
JP5968011B2 (ja) | 画像処理装置及びその制御方法 | |
EP3429186B1 (en) | Image registration method and device for terminal | |
KR102080927B1 (ko) | 스테레오 영상 생성 방법 및 장치 | |
US9264609B2 (en) | Image processing apparatus using overlap width data | |
US10452583B2 (en) | Data transfer device and data transfer method having a shorter time interval between pieces of final transfer data in a frame image | |
JP6838725B2 (ja) | カメラ装置 | |
JP2017055309A (ja) | 撮像装置及びその制御方法 | |
JP2015087450A (ja) | 撮像装置および撮像処理プログラム |