(57)【要約】      （修正有）【課題】画像信号を複数の画像処理プロセッサで並列処理する場合に、動きベクトルの検出精度を向上させる画像処理装置及び方法を提供する。【解決手段】撮像装置１０００は、撮像された画像に対して動きベクトルの検出及び画像の記録・表示処理等を並列して行う。動きベクトル検出部１０６−１は、１／４縮小輝度信号を用いて第１の動きベクトルを検出し、結果をＤＲＡＭ１０５−１に格納する。動きベクトル検出部１０６−２は、１／２縮小輝度信号を用いて第２の動きベクトルを検出し、結果をＤＲＡＭ１０５−２に格納する。画像処理プロセッサは、動きベクトル検出部が検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして第１の動きベクトルを選択し、動きベクトル検出部が検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして第２の動きベクトルを選択する。【選択図】図１
2018093346.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像を複数のプロセッサで並列に処理する画像処理装置であって、
前記入力された画像から生成され、該入力された画像よりも解像度が低い第１の解像度の画像を用いて第１の動きベクトルを検出する第１の動きベクトル検出手段を有する第１のプロセッサと、
前記入力された画像から生成され、前記第１の解像度よりも解像度が高い第２の解像度の画像を用いて第２の動きベクトルを検出する第２の動きベクトル検出手段を有する第２のプロセッサと、を備え、
前記第１のプロセッサと前記第２のプロセッサの少なくとも一方は、前記第１の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして前記第１の動きベクトルを選択し、前記第１の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして前記第２の動きベクトルを選択する選択手段を有することを特徴とする画像処理装置。
【請求項２】
前記第１または第２の動きベクトルを用いて光学像ブレ補正を行う光学像ブレ補正手段と、前記第１または第２の動きベクトルを用いて電子像ブレ補正を行う電子像ブレ補正手段とをさらに備え、前記選択手段は、前記光学像ブレ補正手段と電子像ブレ補正手段のそれぞれに対して同じ動きベクトルを選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１または第２の動きベクトルを用いて光学像ブレ補正を行う光学像ブレ補正手段と、前記第１または第２の動きベクトルを用いて電子像ブレ補正を行う電子像ブレ補正手段とをさらに備え、前記選択手段は、前記光学像ブレ補正手段と電子像ブレ補正手段のそれぞれに対して異なる動きベクトルを選択することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記第１および第２のプロセッサは、互いにデータを転送するための通信手段を有し、前記通信手段は、前記第１または第２の動きベクトル検出手段が動きベクトルを検出するために必要なデータを通信することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記通信手段は、前記第１または第２の動きベクトル検出手段が動きベクトルを検出するために必要なデータとして、前記入力された画像よりも解像度が低い画像のデータを通信することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記通信手段は、前記第１または第２の動きベクトル検出手段が動きベクトルを検出するために必要なデータとして、前記入力された画像から生成した輝度信号のデータを通信することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記第１および第２の動きベクトル検出手段は、画像を複数に分割したグリッドごとに動きベクトルを検出し、前記通信手段は、前記第１または第２の動きベクトル検出手段が動きベクトルを検出するために必要なデータとして、前記グリッドを単位として画像のデータを通信することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記第１または第２のプロセッサには、前記画像処理装置に入力された画像の一部が入力されることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
画像を撮像する撮像手段と、
請求項１乃至８のいずれか１項に記載の画像処理装置と、
を備えることを特徴とする撮像装置。
【請求項１０】
画像を撮像するモードを切り替える切り替え手段をさらに備え、
前記選択手段は、前記切り替え手段により前記モードが切り替えられた直後のみ、像ブレ補正処理に用いる動きベクトルとして前記第１の動きベクトルを用いるか前記第２の動きベクトルを用いるかを選択することを特徴とする請求項９に記載の撮像装置。
【請求項１１】
入力された画像を複数のプロセッサで並列に処理する画像処理装置を制御する方法であって、
第１のプロセッサが、前記入力された画像から生成され、該入力された画像よりも解像度が低い第１の解像度の画像を用いて第１の動きベクトルを検出する第１の動きベクトル検出工程と、
第２のプロセッサが。前記入力された画像から生成され、前記第１の解像度よりも解像度が高い第２の解像度の画像を用いて第２の動きベクトルを検出する第２の動きベクトル検出工程と、
前記第１のプロセッサと前記第２のプロセッサの少なくとも一方が、前記第１の動きベクトル検出工程において検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして前記第１の動きベクトルを選択し、前記第１の動きベクトル検出工程において検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして前記第２の動きベクトルを選択する選択工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項１２】
請求項１１に記載の制御方法の各工程を前記第１のプロセッサおよび第２のプロセッサに実行させるためのプログラム。
【請求項１３】
請求項１１に記載の制御方法の各工程を前記第１のプロセッサおよび第２のプロセッサに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のフレーム画像間で動きベクトルを検出する画像処理装置に関するものである。
【背景技術】
【０００２】
近年、デジタルカメラなどの撮像装置においては、撮像素子の多画素化や動画像の高フレームレート化などに伴い、画像処理プロセッサで処理するデータ量が増大している。処理するデータ量が増大すると、１つの画像処理プロセッサで処理することが出来なくなるため、複数の画像処理プロセッサを搭載し、複数の画像処理プロセッサで処理を分担するという方法が提案されている。
【０００３】
複数の画像処理プロセッサで処理を分担する例として、特許文献１には、複数の画像処理プロセッサを直列に接続し、画像の領域を分割し、各々の画像処理プロセッサで分担して処理することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４８４３７４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された技術においては、上述したように画像の領域を分割し、各々の画像処理プロセッサで分担して処理している。そのため、ベクトル検出処理などの画像信号から評価値を取得する処理においては、分割境界の評価値を取得するために画像信号をオーバーラップさせて分割読みをする必要があり、各画像処理プロセッサの処理負荷を大きくしてしまうという課題がある。
【０００６】
そこで、これを解決する１つの方法として、画像信号を分割せずに、１つの画像処理プロセッサで処理が出来る画像サイズまで画像を縮小処理して評価値取得用の画像信号を生成し、評価値処理を１つの画像処理プロセッサで一括処理することが考えられる。
【０００７】
しかし、画像信号を高い縮小率で縮小すると、縮小前の画像信号が有するテクスチャ情報が消失するため、ベクトル検出精度が低下してしまうという課題が生じる。
【０００８】
本発明は上述した課題に鑑みてなされたものであり、その目的は、画像信号を複数の画像処理プロセッサで並列処理する場合に、動きベクトルの検出精度を向上させることができる画像処理装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明に係わる画像処理装置は、入力された画像を複数のプロセッサで並列に処理する画像処理装置であって、前記入力された画像から生成され、該入力された画像よりも解像度が低い第１の解像度の画像を用いて第１の動きベクトルを検出する第１の動きベクトル検出手段を有する第１のプロセッサと、前記入力された画像から生成され、前記第１の解像度よりも解像度が高い第２の解像度の画像を用いて第２の動きベクトルを検出する第２の動きベクトル検出手段を有する第２のプロセッサと、を備え、前記第１のプロセッサと前記第２のプロセッサの少なくとも一方は、前記第１の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値以上の場合は、像ブレ補正処理に用いる動きベクトルとして前記第１の動きベクトルを選択し、前記第１の動きベクトル検出手段が検出した複数の動きベクトルの差が所定値未満の場合は、像ブレ補正処理に用いる動きベクトルとして前記第２の動きベクトルを選択する選択手段を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像信号を複数の画像処理プロセッサで並列処理する場合に、動きベクトルの検出精度を向上させることができる画像処理装置を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の画像処理装置の第１の実施形態である撮像装置の構成を示すブロック図。
【図２】ベクトル検出方法を説明する図。
【図３】第１におけるベクトル検出結果の選択方法を説明する図。
【図４】第１の実施形態における画像処理の流れを説明する図。
【図５】第１の実施形態におけるベクトル検出シーケンスを示す図。
【図６】第２の実施形態におけるベクトル検出結果の選択方法、画像処理の流れを説明する図。
【図７】第２の実施形態におけるベクトル検出シーケンスを示す図。
【図８】第３の実施形態における撮像装置の構成を示す図。
【図９】第３の実施形態における画像処理の流れを説明する図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【００１３】
＜第１の実施形態＞
図１は、本発明の画像処理装置の第１の実施形態である撮像装置１０００の構成を示すブロック図である。撮像装置１０００は、３つの画像処理チップを備えて構成され、それぞれの画像処理チップが、撮像された画像に対して動きベクトルの検出、及び画像の記録・表示処理等を並列に行う。本実施形態における３つの画像処理チップは同一構成のチップであり、それぞれマスターチップ２００−１、第１のスレーブチップ２００−２、第２のスレーブチップ２００−３と呼ぶ。図１では、説明に必要となるブロックのみを記載しているため、構成が異なって示されているが、３つの画像処理チップは同一構成である。図番号の後に「−１」が記載されているものがマスターチップ側の機能ブロックである。図番号の後に「−２」が記載されているものが第１のスレーブチップ側の画像処理装置の機能ブロック、図番号の後に「−３」が記載されているものが第２のスレーブチップ側の画像処理装置の機能ブロックである。
【００１４】
本実施形態では、１つのチップだけでは記録画像の生成処理が間に合わないため、第１のスレーブチップ２００−２、第２のスレーブチップ２００−３で分担して処理を行う。また、本実施形態では、マスターチップ２００−１で処理速度優先のベクトル検出、第１のスレーブチップ２００−２で検出精度優先のベクトル検出を行う。本実施形態におけるベクトル検出処理は、記録画像生成処理とは異なり、２つのチップで分担処理しても処理時間は大きく短縮できない。これは、ベクトル検出処理を２つのチップで分担処理しても、画像分割境界の評価値を取得するために、分割画像をオーバーラップさせて処理する必要があり、処理データ量を大きく減らすことが出来ないためである。そのため、本実施形態では、マスターチップ２００−１で、処理時間が間に合うサイズまで縮小した画像を用いて、第１のスレーブチップ２００−２より高レートで処理時間優先のベクトル検出を行う。第１のスレーブチップ２００−２では、マスターチップ程の画像縮小はせずに、マスターチップ２００−１より低レートで検出精度優先のベクトル検出を行う。
【００１５】
撮像装置１０００は、撮影光学系１００、撮影光学系駆動部１０１、撮像素子１０２、撮像素子駆動部１０３、画像処理プロセッサであるマスターチップ２００−１、第１のスレーブチップ２００−２、第２のスレーブチップ２００−３を備える。
【００１６】
マスターチップ２００−１において、画像縮小部１０７−１は、撮像素子１０２から出力される画像信号を縮小する。本実施形態では、撮像素子１０２からの出力データレートが高く、マスターチップ２００−１は、撮像データレートと同じ速度で記録画像を生成することが出来ないため、撮像データをＤＲＡＭ１０５−１に一旦書き込む。この時、撮像データのＤＲＡＭ１０５−１への書き込みデータレートが高いため、ＤＲＡＭ１０５−１の使用可能帯域の多くを使用してしまう。よって、本実施形態では、同じくＤＲＡＭ１０５−１の使用可能帯域の多くを使用する記録画像の生成処理は、マスターチップ２００−１では行わない。
【００１７】
ベクトル検出処理はＤＲＡＭ１０５−１の使用可能帯域の多くは使用しないため、マスターチップ２００−１で行うことは可能である。ＤＲＡＭ１０５−１へ書き込まれた撮像データは、撮像データレートより遅いレートでＤＲＡＭ１０５−１から読み出され、第１のスレーブチップ２００−２、第２のスレーブチップ２００−３へ転送される。第１のスレーブチップ２００−２、第２のスレーブチップ２００−３への転送レートは低いため、第１のスレーブチップ２００−２、第２のスレーブチップ２００−３は記録画像生成処理を行うことが可能である。
【００１８】
本実施形態では、撮像素子１０２は、水平３８４０画素、垂直２１６０ラインの画像データを出力し、画像縮小部１０７−１は、水平１／４、垂直１／４に縮小した水平９６０画素、垂直５４０ラインの画像データを生成する。また、本実施形態では、画像の輝度信号のみを使用してベクトル検出処理を行うため、画像縮小部１０７−１は、縮小した輝度信号のみを出力する。以降、画像縮小部１０７−１が出力するデータは、１／４縮小輝度信号と呼ぶ。
【００１９】
マスターチップ２００−１は、画像データを１／４まで縮小することで、ベクトル検出処理に要する時間を短縮している。データ転送制御部１０４−１はＤＲＡＭ１０５−１とのデータ転送を制御する。ベクトル検出部１０６−１は、１／４縮小輝度信号を用いて動きベクトルを検出し、結果をＤＲＡＭ１０５−１に格納する。ＣＰＵ１０８−１はバスを介して各種制御を司る。通信部１０９−１は、ＤＲＡＭ１０５−１から読み出された撮像データ、及び１／４縮小画像から求めたベクトル検出結果を第１のスレーブチップ２００−２へ転送する。通信部１０９−１は、第１のスレーブチップ２００−２から像ブレ補正演算結果を受け取る。ＣＰＵ１０８−１は、受け取った像ブレ補正演算結果を用いて撮影光学系駆動部１１を制御し、光学像ブレ補正処理を行う。
【００２０】
次に、第１のスレーブチップ２００−２の構成について説明する。第１の通信部１０９−２は、マスターチップ２００−１とのデータ転送を制御する。画像縮小部１０７−２は、マスターチップ２００−１から送られた画像を水平１／２、垂直１／２に縮小した水平１９２０画素、垂直１８０ラインの輝度信号を生成する。以降、画像縮小部１０７−２が出力するデータは、１／２縮小輝度信号と呼ぶ。動きベクトル検出部１０６−２は、１／２縮小輝度信号を用いて動きベクトルを検出し、結果をＤＲＡＭ１０５−２に格納する。データ転送制御部１０４−２はＤＲＡＭ１０５−２とのデータ転送を制御する。
【００２１】
画像分割部１１６−２は、マスターチップ２００−１から送られた画像を分割し、上半分の画像をＤＲＡＭ１０５−２に書き込み、下半分の画像は第２の通信部１１７−２を介して第２のスレーブチップ２００−３へ転送する。第１の信号処理部１１０−２は、画像信号にノイズ除去処理等の処理を施す。第１の信号処理部１１０での処理は、他の処理に比べ処理に時間を要するため、第１のスレーブチップ２００−２と第２のスレーブチップ２００−３で処理を分担している。第１のスレーブチップ２００−２は上半分の画像、第２のスレーブチップ２００−３は下半分の画像を第１の信号処理部１１０で処理する。
【００２２】
ＣＰＵ１０８−２は、１／４縮小輝度信号から求めたベクトル検出結果と、１／２縮小輝度信号から求めたベクトル検出結果のどちらか一方を選択して像ブレ補正演算を行う。像ブレ補正演算結果は、マスターチップ２００−１及び第２の信号処理部１１１−２に送られる。第２の信号処理部１１１−２は、第１のスレーブチップ２００−２と第２のスレーブチップ２００−３の第１の信号処理部１１０で処理された画像に対して、像ブレ補正演算結果を用いて電子像ブレ補正処理を行う。電子像ブレ補正処理された画像は、記録部制御部１１２−２によって記録部１１３−２に記録され、表示部制御部１１４−２によって表示部１１５−２に表示される。本実施形態において、光学像ブレ補正処理と電子像ブレ補正処理で選択する動きベクトルの検出結果は同じである。
【００２３】
次に、第２のスレーブチップ２００−３の構成について説明する。第１の通信部１０９−３は、第１のスレーブチップ２００−２とのデータ転送を制御する。データ転送制御部１０４−３はＤＲＡＭ１０５−３とのデータ転送を制御する。ＣＰＵ１０８−３は第２のスレーブチップ２００−３の各種制御を司る。第１の信号処理部１１０−３は、第１のスレーブチップ２００−２から送られた下半分の画像に対して、ノイズ除去処理等の処理を施す。第１の信号処理部１１０−３で処理された画像は、第１の通信部１０９−３を介して第１のスレーブチップ２００−２へ送られる。
【００２４】
次に、動きベクトル検出部１０６によるベクトル検出方法について図２を用いて説明する。本実施形態では、縮小輝度信号を複数領域（以降、グリッドと呼ぶ）に分割したグリッド毎にベクトル検出を行う。図２では、縮小輝度信号２２０を、水平方向６個、垂直方向４個のグリッドに分割している。ＤＲＡＭ１０５には、現時点の縮小輝度信号と、１フレーム前の縮小輝度信号の２フレーム分の縮小輝度信号が記憶されている。本実施形態では、現時点の縮小輝度信号をテンプレート画像とし、１フレーム前の縮小輝度信号をサーチ画像として、グリッド毎にテンプレートマッチングを行う。グリッド２０１では、サーチ画像２０３と、テンプレート画像２０２とでテンプレートマッチングを行う。他のグリッドについても同様のテンプレートマッチングを行い、グリッド毎にベクトル検出を行う。本実施形態では、グリッド毎に求めたベクトル検出結果の平均値を一画面全体のベクトル検出結果とするが、必ずしも平均値でなくてもよい。
【００２５】
本実施形態では、テンプレートマッチングの相関値算出方法の一例として、差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＡＤと略す）を使用する。ＳＡＤの計算式を（式１）に示す。
【００２６】
【数１】
2018093346.tif 000003
【００２７】
（式１）において、ｆ（ｉ，ｊ）はテンプレート２０２内の座標（ｉ，ｊ）における画素値を表しており、ｇ（ｉ，ｊ）はサーチ画像２０３内の座標（ｉ，ｊ）における画素値を表す。ＳＡＤでは、各画素値ｆ（ｉ，ｊ）及びｇ（ｉ，ｊ）について差の絶対値を計算し、その総和を求めることで相関値Ｓ＿ＳＡＤを得ることが出来る。従って、相関値Ｓ＿ＳＡＤの値が小さい程、テンプレート画像２０２とサーチ画像２０３が類似していることを表している。なお、本実施形態では、相関値の一例としてＳＡＤを使用しているが、これに限られるものではなく、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いてもよい。
【００２８】
次に、１／４縮小輝度信号から求めたベクトル検出結果と、１／２縮小輝度信号から求めたベクトル検出結果のＣＰＵ１０８−２による選択方法について図３を用いて説明する。
【００２９】
撮影光学系１００に対して光学像ブレ補正を行う場合、出来るだけ早くベクトル検出結果を撮影光学系１００へフィードバックすることが望ましい。そのため、本実施形態では、ベクトル検出結果を毎フレーム撮影光学系１００へフィードバックして光学像ブレ補正を行う。ＣＰＵ１０８−２は、マスターチップ２００−１で１／４縮小輝度信号から毎フレーム求めたベクトル検出結果と、第１のスレーブチップ２００−２で１／２縮小輝度信号から２フレームおきに求めたベクトル検出結果を受け取る。
【００３０】
本実施形態では、ベクトル検出に使用する画像が１フレーム目、偶数フレーム目、奇数フレーム目によってベクトル検出結果の選択方法が異なる。１フレーム目の画像（図３において、時刻Ｔ１で入力される画像）で動きベクトルを検出する場合、時刻Ｔ２までにベクトルを検出して撮影光学系１００にフィードバックする必要がある。マスターチップ２００−１は１／４縮小輝度信号を使用するため、時刻Ｔ２までにベクトル検出を行うことは可能である。第１のスレーブチップ２００−２は１／２縮小輝度信号を使用するため、時刻Ｔ２までにベクトル検出を行うことは出来ない。そのため、ＣＰＵ１０８−２は、マスターチップ２００−１で求めたベクトル検出結果を選択する。
【００３１】
偶数フレーム目の画像（図３において、時刻Ｔ２，Ｔ４，Ｔ６で入力される画像）でベクトル検出する場合について、図３の２フレーム目の画像（図３において、時刻Ｔ２で入力される画像）でベクトル検出する場合を例に挙げて説明する。ＣＰＵ１０８−２は、マスターチップ２００−１において、１フレーム目、２フレーム目の画像で求めた２つのベクトル検出結果の差が予め設定された閾値未満であるか否かを判断する。閾値未満（所定値未満）であればＣＰＵ１０８−２は、第１のスレーブチップ２００−２で１フレーム目の画像から求めたベクトル検出結果を選択する。これは、１フレーム目と２フレーム目から求めたベクトル検出結果の差が小さいのであれば、１フレーム目の解像度の高い１／２縮小輝度信号から求めたベクトル検出結果を選択した方が、高い検出精度のベクトル検出結果を使用出来るからである。閾値以上（所定値以上）であれば、ＣＰＵ１０８−２は、マスターチップ２００−１で２フレーム目の画像から求めたベクトル検出結果を選択する。
【００３２】
１フレーム目以外の奇数フレーム目の画像（図３において、時刻Ｔ３，Ｔ５で入力される画像）でベクトル検出する場合について、図３の３フレーム目の画像（図３において、時刻Ｔ３で入力される画像）でベクトル検出する場合を例に挙げて説明する。ＣＰＵ１０８−２は、マスターチップ２００−１において、１フレーム目、２フレーム目の画像で求めたベクトル検出結果の差と、２フレーム目、３フレーム目の画像で求めたベクトル検出結果の差それぞれが予め設定された閾値未満であるか否かを判断する。共に閾値未満であればＣＰＵ１０８−２は、第１のスレーブチップ２００−２で１フレーム目の画像から求めたベクトル検出結果を選択する。これは、１フレーム目と２フレーム目と３フレーム目の画像から求めたベクトル検出結果の差が小さいのであれば、１フレーム目の解像度の高い１／２縮小輝度信号から求めたベクトル検出結果を選択した方が、高い検出精度のベクトル検出結果を使用出来るからである。閾値以上であればＣＰＵ１０８−２は、マスターチップ２００−１で３フレーム目の画像から求めたベクトル検出結果を選択する。
【００３３】
このように、複数フレーム間のベクトル検出結果の差が小さい場合は１／２縮小輝度信号から求めた検出精度を優先したベクトル検出結果を選択し、差が大きい場合は１／４縮小輝度信号から求めた検出時間を優先したベクトル検出結果を選択する。
【００３４】
図４を用いて、本実施形態における画像処理の動作の流れについて説明する。図４は、４フレームの画像データを処理する流れを示している。本実施形態では、６０ｆｐｓでデータを処理する。よって、１フレームのデータを約１６．６ｍｓ（＝１／６０秒）で処理する。
【００３５】
時刻Ｔ１における処理について説明する。撮像素子１０２からは、１フレーム目のデータが８．３ｍｓで出力される。マスターチップ２００−１は、撮像素子１０２から出力されたデータから１／４縮小輝度信号を生成してベクトル検出を行う。また、マスターチップ２００−１は撮像素子１０２から出力されたデータをＤＲＡＭ１０５−１に書き込み、撮像素子１０２の出力データレートより遅いレートでＤＲＡＭ１０５−１からデータを読み出して第１のスレーブチップ２００−２へ転送する。また、マスターチップ２００−１は、１／４縮小輝度信号から求めたベクトル検出結果を第１のスレーブチップ２００−２へ転送する。
【００３６】
第１のスレーブチップ２００−２は、マスターチップ２００−１から転送された画像データから１／２縮小輝度信号を生成してベクトル検出を行う。また、第１のスレーブチップ２００−２は、マスターチップ２００−１から転送された画像データの上半分をＤＲＡＭ１０５−２へ書き込み、下半分を第２のスレーブチップ２００−３へ転送する。また、第１のスレーブチップ２００−２は、マスターチップ２００−１から転送された１フレーム目のベクトル検出結果から像ブレ補正制御に必要なパラメータを演算し、マスターチップ２００−１へ転送する。マスターチップ２００−１は、受け取った像ブレ補正演算結果を用いて光学像ブレ補正処理を行う。第２のスレーブチップ２００−３は、第１のスレーブチップ２００−２から受け取った下半分の画像データをＤＲＡＭ１０５−３へ書き込む。
【００３７】
次に、時刻Ｔ２における処理について説明する。撮像素子１０２から２フレーム目のデータが出力され、マスターチップ２００−１は、１フレーム目と同様に処理を行う。第１のスレーブチップ２００−２は、時刻Ｔ２において１フレーム目のベクトル検出が完了していないため、２フレーム目のベクトル検出は行わない。第１のスレーブチップ２００−２は、第１のスレーブチップ２００−２による１フレーム目のベクトル検出結果と、マスターチップ２００−１によるベクトル検出結果のどちらか一方を選択し、像ブレ補正演算した結果をマスターチップ２００−１へ転送する。この時、ＣＰＵ１０８−２は、マスターチップ２００−１の１フレーム目のベクトル検出結果も不図示の内部メモリに記憶している。また、第１のスレーブチップ２００−２は、マスターチップ２００−１から転送された２フレーム目の画像データの上半分をＤＲＡＭ１０５−２へ書き込み、下半分を第２のスレーブチップ２００−３へ転送する。また、第１のスレーブチップ２００−２は、ＤＲＡＭ１０５−２へ書き込まれた１フレーム目の上半分の画像データに対し、第１の信号処理部１１０−２による処理を行い、ＤＲＡＭ１０５−２へ書き込む。第２のスレーブチップ２００−３は、ＤＲＡＭ１０５−３へ書き込まれた１フレーム目の下半分の画像データに対して第１の信号処理部１１０−３による処理を行い、第１のスレーブチップ２００−２へ転送する。
【００３８】
次に、時刻Ｔ３における処理について説明する。時刻Ｔ１、時刻Ｔ２の処理と同じ処理については説明を省略する。第１のスレーブチップ２００−２は、第１のスレーブチップ２００−２と第２のスレーブチップ２００−３それぞれの第１の信号処理部１１０で処理された画像データに対し、第２の信号処理部１１１−２による処理を行い、ＤＲＡＭ１０５−２へ書き込む。
【００３９】
次に、時刻Ｔ４における処理について説明する。時刻Ｔ１〜３の処理と同じ処理については説明を省略する。第１のスレーブチップ２００−２は、第２の信号処理部１１１−２で処理された画像データを記録部１１３−２へ書き込む。
【００４０】
図５は、本実施形態におけるベクトル検出シーケンスを示すフローチャートである。第１のスレーブチップ２００−２のＣＰＵ１０８−２は、画像信号の撮像が開始され（Ｓ５０１）、１フレーム目であれば（Ｓ５０２）、マスターチップ２００−１で検出された１フレーム目のベクトル検出結果を選択する（Ｓ５０３）。偶数フレーム目であれば（Ｓ５０４）、現フレームを２Ｎフレーム目とすると、２Ｎフレーム目と（２Ｎ−１）フレーム目のベクトル検出結果の差と予め設定された閾値とを比較する（Ｓ５０５）。閾値未満であれば、第１のスレーブチップ２００−２で求めた（２Ｎ−１）フレーム目のベクトル検出結果を選択する（Ｓ５０６）。閾値以上であれば、マスターチップ２００−１で検出された２Ｎフレーム目のベクトル検出結果を選択する（Ｓ５０７）。
【００４１】
１フレーム目以外の奇数フレーム目であれば、現フレームを（２Ｎ＋１）フレーム目とすると、（２Ｎ−１）と２Ｎ、及び２Ｎと（２Ｎ＋１）フレーム目のベクトル検出結果の差と予め設定された閾値とをそれぞれ比較する（Ｓ５０８）。共に閾値未満であれば、第１のスレーブチップ２００−２で求められた（２Ｎ−１）フレーム目のベクトル検出結果を選択する（Ｓ５０９）。１つでも閾値以上であれば、マスターチップ２００−１で検出した（２Ｎ＋１）フレーム目のベクトル検出結果を選択する（Ｓ５１０）。画像信号の撮像が終了するまで上記シーケンスを繰り返す（Ｓ５１１）。
【００４２】
以上説明したように、第１の実施形態におけるベクトル検出処理により、複数フレーム間のベクトル検出結果の差が小さければ高い解像度の画像を使用したベクトル検出結果を選択することで、ベクトル検出精度を向上させることが出来る。
【００４３】
なお、本実施形態では、マスターチップで１／４縮小輝度信号、第１のスレーブチップで１／２縮小輝度信号を生成したが、これとは異なる縮小率の縮小輝度信号を生成してもよい。また、本実施形態では、撮像素子が水平３８４０画素、垂直２１６０ラインの画像データを６０ｆｐｓで出力したが、異なる画素数、及びフレームレートでもよい。また、本実施形態では、マスターチップで６０ｆｐｓ、スレーブチップで３０ｆｐｓのレートで動きベクトルを検出したが、これとは異なるレートで動きベクトルを検出してもよい。また、本実施形態では、３つのチップで画像データを処理したが、必ずしも３つのチップでなくてもよい。また、本実施形態では、マスターチップと第１のスレーブチップで求めた動きベクトルのどちらを選択するかを毎フレーム判断したが、撮影モードの切り替わり直後の数フレームのみでどちらを選択するか判断し、以降のフレームでは常に選択したベクトル検出結果を使用してもよい。
【００４４】
＜第２の実施形態＞
以下、本発明の第２の実施形態について説明する。第２の実施形態の撮像装置の構成、ベクトル検出方法は第１の実施形態と同様であるため、説明を省略する。第２の実施形態では、光学像ブレ補正処理と電子像ブレ補正処理とで異なるベクトル検出結果を選択する場合がある点が第１の実施形態と異なる。本実施形態における光学像ブレ補正処理で選択するベクトル検出結果は第１の実施形態と同じであり、電子像ブレ補正処理で選択するベクトル検出結果が第１の実施形態と異なる場合がある。
【００４５】
１／４縮小輝度信号から求めたベクトル検出結果と、１／２縮小輝度信号から求めたベクトル検出結果のＣＰＵ１０８−２による選択方法について図６を用いて説明する。図６（ａ）は、１／４縮小輝度信号と１／２縮小輝度信号のベクトル検出タイミングを説明する図である。図６（ｂ）は、本実施形態における画像処理の流れを説明する図である。
【００４６】
光学像ブレ補正を行う場合は、出来るだけ早くベクトル検出結果を撮影光学系１００へフィードバックすることが望ましいが、電子像ブレ補正処理を行う場合は、画像データを記録部１１３−２へ記録するまでに像ブレ補正処理が完了していればよい。本実施形態における１フレーム目、偶数フレーム目における電子像ブレ補正処理のベクトル検出結果の選択方法は、第１の実施形態と同じであるため、説明を省略する。
【００４７】
１フレーム目以外の奇数フレーム目の画像（図６において、時刻Ｔ３，Ｔ５で入力される画像）で電子像ブレ補正処理のためのベクトル検出を行う場合について、図６の３フレーム目の画像（図３において、Ｔ３で入力される画像）でベクトル検出する場合を例に挙げて説明する。
【００４８】
光学像ブレ補正を行う場合、図６の時刻Ｔ３で入力された３フレーム目の画像に対して、時刻Ｔ４までにベクトルを検出して光学系にフィードバックする必要がある。マスターチップ２００−１は、時刻Ｔ３で入力された３フレーム目の画像に対して、時刻Ｔ４までにベクトル検出を行うことが可能である。第１のスレーブチップ２００−２は、時刻Ｔ３で入力された３フレーム目の画像に対して、時刻Ｔ４までにベクトル検出を行うことは出来ない。
【００４９】
電子像ブレ補正処理を行う場合、時刻Ｔ３で入力された３フレーム目の画像は、時刻Ｔ５で電子像ブレ補正の処理を行い、時刻Ｔ６で記録部に記録する。時刻Ｔ３で入力された３フレーム目の画像に対して、第１のスレーブチップ２００−２は、時刻Ｔ５までにベクトル検出を行うことが出来る。そのため、電子像ブレ補正処理を行う場合は、第１のスレーブチップ２００−２で求めたベクトル検出結果を選択することが可能である。
【００５０】
ＣＰＵ１０８−２は、マスターチップ２００−１において、３フレーム目、４フレーム目の画像で求めたベクトル検出結果の差が予め設定された閾値未満であるか否かを判断する。閾値未満であればＣＰＵ１０８−２は、電子像ブレ補正処理のために、第１のスレーブチップ２００−２で３フレーム目の画像から求めたベクトル検出結果を選択する。これは、３フレーム目と４フレーム目の画像から求めたベクトル検出結果の差が小さいのであれば、３フレーム目の解像度の高い１／２縮小輝度信号から求めたベクトル検出結果を選択した方が、高い検出精度のベクトル検出結果を使用出来るからである。閾値以上であればＣＰＵ１０８−２は、マスターチップ２００−１で３フレーム目の画像から求めたベクトル検出結果を選択する。
【００５１】
図７は、本実施形態における、電子像ブレ補正処理を行う場合のベクトル検出シーケンスを示す図である。
【００５２】
第１のスレーブチップ２００−２のＣＰＵ１０８−２は、画像信号の撮像が開始され（Ｓ７１）、１フレーム目であれば（Ｓ７０２）、マスターチップ２００−１で検出した１フレーム目のベクトル検出結果を選択する（Ｓ７０３）。偶数フレーム目であれば（Ｓ７０４）、２Ｎフレーム目の画像を電子像ブレ補正処理する場合、２Ｎと（２Ｎ−１）フレーム目のベクトル検出結果の差と予め設定された閾値とを比較する（Ｓ７０５）。閾値未満であれば、第１のスレーブチップ２００−２で求めた（２Ｎ−１）フレーム目のベクトル検出結果を選択する（Ｓ７０６）。閾値以上であれば、マスターチップ２００−１で検出した２Ｎフレーム目のベクトル検出結果を選択する（Ｓ７０７）。１フレーム目以外の奇数フレーム目であれば、（２Ｎ＋１）フレーム目の画像を電子像ブレ補正処理する場合、（２Ｎ＋１）と（２Ｎ＋２）フレーム目のベクトル検出結果の差と予め設定された閾値とを比較する（Ｓ７０８）。閾値未満であれば、第１のスレーブチップ２００−２で求めた（２Ｎ＋１）フレーム目のベクトル検出結果を選択する（Ｓ７０９）。閾値以上であれば、マスターチップ２００−１で検出した（２Ｎ＋１）フレーム目のベクトル検出結果を選択する（Ｓ７１０）。画像信号の撮像が終了するまで上記シーケンスを繰り返す（Ｓ７１１）。
【００５３】
以上説明したように、第２の実施形態におけるベクトル検出処理により、電子像ブレ補正処理を行う場合は、光学像ブレ補正処理と異なるベクトル検出結果を選択することで、第１の実施形態より精度の高い電子像ブレ補正処理を行うことが出来る。
【００５４】
なお、本実施形態では、マスターチップで１／４縮小輝度信号、第１のスレーブチップで１／２縮小輝度信号を生成したが、これとは異なる縮小率の縮小輝度信号を生成してもよい。また、本実施形態では、撮像素子が水平３８４０画素、垂直２１６０ラインの画像データを６０ｆｐｓで出力したが、異なる画素数、及びフレームレートでもよい。また、本実施形態では、マスターチップで６０ｆｐｓ、スレーブチップで３０ｆｐｓのレートで動きベクトルを検出したが、異なるレートで動きベクトルを検出してもよい。また、本実施形態では、３つのチップで画像データを処理したが、必ずしも３つのチップでなくてもよい。また、本実施形態では、マスターチップと第１のスレーブチップで求めた動きベクトルのどちらを選択するかを毎フレーム判断したが、撮影モードの切り替わり直後の数フレームのみでどちらを選択するか判断し、以降のフレームでは常に選択したベクトル検出結果を使用してもよい。
【００５５】
＜第３の実施形態＞
以下、本発明の第３の実施形態について説明する。第３の実施形態における、ベクトル検出方法、ベクトル検出結果の選択方法、ベクトル検出シーケンスは第１の実施形態と同様であるため、説明を省略する。第３の実施形態では、撮像装置の構成、画像処理の流れが第１の実施形態と異なる。本実施形態では、マスターチップと第１のスレーブチップの２チップで画像処理を行う。本実施形態では、撮像素子のデータ出力レートが第１の実施形態より低いため、マスターチップでも記録画像の生成処理を行う。
【００５６】
図８は、第３の実施形態の撮像装置の構成を示す図である。第１の実施形態と同じ構成の箇所については説明を省略する。本実施形態における撮像装置は、マスターチップと第１のスレーブチップの２つのチップを備えて構成される。本実施形態では、１つのチップだけでは記録画像の生成処理が間に合わないため、マスターチップ、第１のスレーブチップで分担して処理を行う。また、本実施形態では、マスターチップで処理速度優先のベクトル検出を行い、第１のスレーブチップで検出精度優先のベクトル検出を行う。本実施形態では、マスターチップでは、処理時間が間に合うサイズまで縮小した画像を用いて、第１のスレーブチップより高レートで処理時間優先のベクトル検出を行う。第１のスレーブチップでは、マスターチップ程画像縮小はせずに、マスターチップより低レートで検出精度優先のベクトル検出を行う。
【００５７】
図８において、マスターチップ８２０−１の第１の縮小部８０９−１は、１／２縮小輝度信号（水平１／２、垂直１／２にした輝度信号）を生成する。動きベクトル検出部８０６−１は、第２の画像縮小部１８０６−１を有しており、１／２縮小輝度信号を更に水平１／２、垂直１／２にした１／４縮小輝度信号を生成する。動きベクトル検出部８０６−１は、１／４縮小輝度信号を用いてベクトル検出を行う。また、画像分割部８０７−１は、撮像素子８０２が出力した画像データの上半分をＤＲＡＭ８０５−１に書き込み、下半分を第１のスレーブチップ８２０−２へ転送する。また、画像分割部８０７−１は、第１の画像縮小部８０９−１が出力した１／２縮小輝度信号の上半分を第１のスレーブチップ８２０−２へ転送する。第１の信号処理部８１０−１は、画像信号にノイズ除去処理等の処理を施す処理部であり、ＤＲＡＭ８０５−１から読み出した上半分の画像に対して信号処理を行い、ＤＲＡＭ８０５−１へ書き込む。第１のスレーブチップ８２０−２の第１の信号処理部８１０−２は、マスターチップ８２０−１から送られた下半分画像に対して信号処理を行い、マスターチップ８２０−１へ転送する。第１のスレーブチップ８２０−２の画像縮小部８０９−２は、マスターチップ８２０−１から送られた下半分画像に対して１／２縮小輝度信号を生成し、ＤＲＡＭ８０５−２に書き込む。第１のスレーブチップ８２０−２の動きベクトル検出部８０６−２は、マスターチップ８２０−１から送られてきた上半分の１／２縮小輝度信号と、ＤＲＡＭ８０５−２から読み出した下半分の１／２縮小輝度信号とを用いてベクトル検出を行う。動きベクトル検出部８０６−２は、検出したベクトル検出結果をマスターチップ８２０−１へ転送する。
【００５８】
マスターチップ８２０−１のＣＰＵ８０８−１は、マスターチップ８２０−１と第１のスレーブチップ８２０−２のそれぞれで求めたベクトル検出結果のどちらか一方を選択し、像ブレ補正処理の演算を行う。マスターチップ８２０−１の第２の信号処理部８１１−１は、マスターチップ８２０−１と第１のスレーブチップ８２０−２のそれぞれの第１の信号処理部８１０で処理した画像に対し、電子像ブレ補正処理を行う。電子像ブレ補正処理された画像は、記録部制御部８１２−１によって記録部８１３−１に記録され、表示部制御部８１４−１によって表示部８１５−１に表示される。
【００５９】
図９を用いて、本実施形態における画像処理の流れについて説明する。図９は、４フレームの画像データを処理する流れを示している。第１の実施形態と同じ処理の箇所は説明を省略する。
【００６０】
まず、時刻Ｔ１における処理について説明する。マスターチップ８２０−１の第１の画像縮小部８０９−１は、撮像素子８０２から出力されたデータから１／２縮小輝度信号を生成する。生成した１／２縮小輝度信号は、ＤＲＡＭ８０５−１に書き込むと共に、上半分データを第１のスレーブチップ８２０−２へ転送する。マスターチップ８２０−１の動きベクトル検出部８０６−１は、ＤＲＡＭ８０５−１から読み出した１／２縮小輝度信号を更に１／２した１／４縮小輝度信号を生成してベクトル検出を行う。マスターチップ８２０−１のＣＰＵ８０８−１は、ベクトル検出結果を用いて像ブレ補正処理を行う。
【００６１】
また、マスターチップ８２０−１は、撮像素子８０２から出力されたデータの上半分をＤＲＡＭ８０５−１に書き込み、下半分を第１のスレーブチップ８２０−２へ転送する。第１のスレーブチップ８２０−２は、マスターチップ８２０−１から送られた１フレーム目の下半分の画像データをＤＲＡＭ８０５−２に書き込むと共に、１／２縮小輝度信号を生成する。第１のスレーブチップ８２０−２は、マスターチップ８２０−１から送られた上半分の１／２縮小輝度信号と、第１のスレーブチップ８２０−２で生成した下半分の１／２縮小輝度信号を用いて一画面のベクトル検出を行う。
【００６２】
次に、時刻Ｔ２における処理について説明する。時刻Ｔ１と同じ処理については説明を省略する。マスターチップ８２０−１は、ＤＲＡＭ８０５−１から１フレーム目の上半分画像データを読み出し、第１の信号処理部８１０−１で処理を行ってＤＲＡＭ８０５−１に書き込む。第１のスレーブチップ８２０−２は、時刻Ｔ２において１フレーム目のベクトル検出が完了していないため、２フレーム目のベクトル検出は行わない。第１のスレーブチップ８２０−２は、１フレーム目の１／２縮小輝度信号から求めたベクトル検出結果をマスターチップ８２０−１へ転送する。マスターチップ８２０−１は、第１のスレーブチップ８２０−２による１フレーム目のベクトル検出結果と、マスターチップによるベクトル検出結果のどちらか一方を選択し、像ブレ補正処理を行う。ベクトル検出結果の選択方法は第１の実施形態と同じである。第１のスレーブチップ８２０−２は、ＤＲＡＭ８０５−２から１フレーム目の下半分の画像データを読み出し、第１の信号処理部８１０−２で処理を行ってマスターチップ８２０−１に転送する。
【００６３】
次に、時刻Ｔ３における処理について説明する。時刻Ｔ１，Ｔ２と同じ処理については説明を省略する。マスターチップ８２０−１は、マスターチップ８２０−１と第１のスレーブチップ８２０−２それぞれの第１の信号処理部８１０で処理した画像データに対し、第２の信号処理部８１１−２で処理を行った一画面データをＤＲＡＭ８０５−１に書き込む。
【００６４】
次に、時刻Ｔ４における処理について説明する。時刻Ｔ１〜３と同じ処理については説明を省略する。マスターチップ８２０−１は、第２の信号処理部８１１−１で処理した画像データを記録部８１３−１へ書き込む。
【００６５】
以上説明したように、第３の実施形態におけるベクトル検出処理により、スレーブチップに撮像画像の一部分のデータしか入力されない場合においても、縮小輝度信号をチップ間で通信することにより、ベクトル検出精度を向上させることが出来る。本実施形態では、一画面の撮像画像データでなくサイズを縮小した輝度信号のみをスレーブチップに入力することにより、チップ間通信データ量を削減している。
【００６６】
なお、本実施形態では、上半分の１／２縮小輝度信号を一度にスレーブチップへ転送したが、複数回に分けて転送してもよい。例えば、上半分の１／２縮小輝度信号の転送途中で一度転送を止め、撮像素子が出力した画像データの下半分の転送を行って転送が完了したら、上半分の１／２縮小輝度信号の残りのデータを転送してもよい。ここで、複数回に分けて縮小輝度信号を転送する場合、１回に転送するデータ量がベクトル検出を行うグリッドのデータ量の倍数となるように制御してもよい。スレーブチップは、グリッド単位でベクトル検出を行うため、グリッド単位でスレーブチップに縮小輝度信号を転送することで、複数回に分けて転送することによるスレーブチップのベクトル検出の入力データ待ち時間を削減することが出来る。
【００６７】
なお、本実施形態では、マスターチップで１／４縮小輝度信号、第１のスレーブチップで１／２縮小輝度信号を用いてベクトル検出を行ったが、これとは異なる縮小率の縮小輝度信号を用いてベクトル検出を行ってもよい。また、本実施形態では、マスターチップで６０ｆｐｓ、スレーブチップで３０ｆｐｓのレートで動きベクトルを検出したが、異なるレートで動きベクトルを検出してもよい。また、本実施形態では、２つのチップで画像データを処理したが、複数のチップに一画面の撮像画像データが入力されない場合において、縮小輝度信号をチップ間で通信する構成であれば、必ずしも２つのチップでなくてもよい。また、本実施形態では、マスターチップと第１のスレーブチップで求めた動きベクトルのどちらを選択するかを毎フレーム判断したが、撮影モードの切り替わり直後の数フレームのみでどちらを選択するか判断し、以降のフレームでは常に選択したベクトル検出結果を使用してもよい。
【００６８】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６９】
１００：撮影光学系、１０１：撮影光学系駆動部、１０２：撮像素子、１０３：撮像素子駆動部、２００−１：マスターチップ、２００−２：第１のスレーブチップ、２００−３：第２のスレーブチップ
【図１】
2018093346.tif 000004
【図２】
2018093346.tif 000005
【図３】
2018093346.tif 000006
【図４】
2018093346.tif 000007
【図５】
2018093346.tif 000008
【図６】
2018093346.tif 000009
【図７】
2018093346.tif 000010
【図８】
2018093346.tif 000011
【図９】
2018093346.tif 000012