(57)【要約】【課題】複数の処理ユニットで１つの画像を分担して処理する場合に、各処理ユニットに入力するデータ量を低減することが可能な画像処理装置を提供する。【解決手段】本願に係る画像処理装置は、１つの画像を形成する画像信号から得られる第１の画像信号に画像処理を施す第１の処理手段と、画像を形成する画像信号から得られる第２の画像信号に画像処理を施す第２の処理手段と、第１の処理手段と第２の処理手段における画像処理の進行に応じて、第１の処理手段と第２の処理手段との間の画像信号の通信を制御する制御手段と、を有し、第１の画像信号と第２の画像信号とは、画像の領域が重複しないように画像の領域を分割した画像信号であり、制御手段は、第１の処理手段が第１の画像信号に画像処理を施す際に追加的に必要となる画像の領域の画像信号を、第２の処理手段から第１の処理手段に転送するように通信を制御する。【選択図】図１
2018029245.tif 000002
【特許請求の範囲】
【請求項１】
１つの画像を形成する画像信号から得られる第１の画像信号に画像処理を施す第１の処理手段と、
前記画像を形成する画像信号から得られる第２の画像信号に前記画像処理を施す第２の処理手段と、
前記第１の処理手段と前記第２の処理手段における前記画像処理の進行に応じて、前記第１の処理手段と前記第２の処理手段との間の画像信号の通信を制御する制御手段と、を有し、
前記第１の画像信号と前記第２の画像信号とは、前記画像の領域が重複しないように前記画像の領域を分割した画像信号であり、
前記制御手段は、前記第１の処理手段が前記第１の画像信号に前記画像処理を施す際に追加的に必要となる前記画像の領域の画像信号を、前記第２の処理手段から前記第１の処理手段に転送するように前記通信を制御する、ことを特徴とする画像処理装置。
【請求項２】
前記画像処理は、順に処理される第１の画像処理と第２の画像処理とを含み、
前記制御手段は、前記第１の処理手段が前記第２の画像処理を施す際に追加的に必要となる前記画像の領域の画像信号を、前記第２の処理手段が前記第１の画像処理を施した後の画像信号から転送するように前記通信を制御する、ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記追加的に必要となる前記画像の領域の画像信号は、前記第１の処理手段が前記画像処理を施す画像信号に含まれない、前記画像の領域を分割した境界から所定の範囲内にある領域の画像信号である、ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記制御手段は、前記追加的に必要となる前記画像の領域の画像信号を、前記境界からライン単位で取得して転送するように前記通信を制御する、ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第２の画像処理は動きベクトルを検出する処理であり、
前記制御手段は、前記追加的に必要となる前記画像の領域の画像信号を、前記動きベクトルを探索するために必要となる枠の領域のうち、前記境界を超えた領域ごとに取得して転送するように前記通信を制御する、ことを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記追加的に必要となる前記画像の領域の画像信号について、前記画像処理を施すために必要となる枠の領域のうち、前記境界を超えた領域ごとに取得する画像信号のデータ量が、前記境界から所定のライン数で取得する画像信号のデータ量を下回るかを判定する判定手段を更に有する、ことを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記制御手段は、前記判定手段により、前記境界を超えた領域ごとに取得する画像信号のデータ量が、前記境界から前記所定のライン数で取得する画像信号のデータ量を下回ると判定された場合、前記境界を超えた領域ごとに取得する画像信号を取得して転送するように前記通信を制御する、ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記判定手段は、データ量を判定する際に、前記第２の処理手段において施された画像処理により得られる画像信号のビット深度を考慮する、ことを特徴とする請求項６又は７に記載の画像処理装置。
【請求項９】
前記判定手段は、データ量を判定する際に、前記第２の処理手段において施された画像処理により得られる画像信号の解像度を考慮する、ことを特徴とする請求項６又は７に記載の画像処理装置。
【請求項１０】
前記第１の処理手段と前記第２の処理手段とは、それぞれ異なる画像処理プロセッサに含まれる、ことを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記制御手段は、複数の画像処理プロセッサのうちのいずれかにより実行される、ことを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
第１の処理手段が、１つの画像を形成する画像信号から得られる第１の画像信号に画像処理を施す第１の処理工程と、
第２の処理手段が、前記画像を形成する画像信号から得られる第２の画像信号に前記画像処理を施す第２の処理工程と、
制御手段が、前記第１の処理手段と前記第２の処理手段における前記画像処理の進行に応じて、前記第１の処理手段と前記第２の処理手段との間の画像信号の通信を制御する制御工程と、を有し、
前記第１の画像信号と前記第２の画像信号とは、前記画像の領域が重複しないように前記画像の領域を分割した画像信号であり、
前記制御工程では、前記第１の処理工程において前記第１の画像信号に前記画像処理を施す際に追加的に必要となる前記画像の領域の画像信号を、前記第２の処理工程で得られる画像信号から転送するように前記通信を制御する、ことを特徴とする画像処理装置の制御方法。
【請求項１３】
請求項１から１１のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項１４】
請求項１から１１のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラムを格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびその制御方法ならびにプログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラ等の撮像装置において、撮像素子の多画素化や動画像の高フレームレート化等に伴って撮像素子から出力される画像信号のデータ量が増大し、当該画像信号を処理する画像処理プロセッサの処理量が増大している。
【０００３】
データ量が増大すると単一の画像処理プロセッサでは処理能力が十分でなくなる場合があるため、複数の画像処理プロセッサを採用して並列に動作させ、各画像処理プロセッサの負荷を分散させる技術が知られている（特許文献１）。特許文献１では、互いに接続された複数の画像処理プロセッサにおいて、各プロセッサの内部温度や内部バスのデータ転送量等を示す分割制御情報に応じて処理の割合を決定し、当該割合で分割したデータを各プロセッサで処理する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１０１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、画像の上下で分割した画像信号を別々のプロセッサでそれぞれフィルタ処理等を行う場合、分割した境界の付近を処理するためには境界を超えた領域（分割された他方）のデータが必要となることがある。この点、特許文献１では、境界を超えた領域のデータ（例えば２つのプロセッサが共通して必要とするデータ）を、データ分割の際にどのように扱うかを考慮していない。各プロセッサのためにデータを分割する場合、各プロセッサが必要とする分割境界を超えたデータを予め考慮し、余分な領域を設けるようにデータを分割することも考えられる。しかし、データ量が増大するほど、余分な領域のデータ量も増大し、各プロセッサにおける処理時間や消費電力が増加することになる。このため、複数の画像処理プロセッサ（処理ユニット）で１つの画像を分担して処理する場合に、それぞれが処理するデータ量をより低減することができる技術が望まれている。
【０００６】
本発明は、上述の問題点に鑑みてなされたものである。すなわち、複数の処理ユニットで１つの画像を分担して処理する場合に、各処理ユニットに入力するデータ量を低減することが可能な画像処理装置およびその制御方法ならびにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、１つの画像を形成する画像信号から得られる第１の画像信号に画像処理を施す第１の処理手段と、画像を形成する画像信号から得られる第２の画像信号に画像処理を施す第２の処理手段と、第１の処理手段と第２の処理手段における画像処理の進行に応じて、第１の処理手段と第２の処理手段との間の画像信号の通信を制御する制御手段と、を有し、第１の画像信号と第２の画像信号とは、画像の領域が重複しないように画像の領域を分割した画像信号であり、制御手段は、第１の処理手段が第１の画像信号に画像処理を施す際に追加的に必要となる画像の領域の画像信号を、第２の処理手段から第１の処理手段に転送するように通信を制御する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の処理ユニットで１つの画像を分担して処理する場合に、各処理ユニットに入力するデータ量を低減することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像処理装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【図２】第１の実施形態に係る画像処理部の機能構成例を示すブロック図
【図３】第１の実施形態に係るマスター側画像処理プロセッサで処理される画像データ（（ａ）：上半分、（ｂ）：下半分）の例を示す図
【図４】第１の実施形態に係るセンサ補正部で実行されるフィルタ処理に用いられるフィルタ係数の例を示す図
【図５】第１の実施形態に係るコーデック部の機能構成例を示すブロック図
【図６】第１の実施形態に係るコーデック部が処理するマクロブロック境界の構成例を示す図
【図７】第１の実施形態に係るコーデック部が処理する画像データの境界領域のデータ例を画素信号の単位で示す図（ａ）と、符号化のブロック単位で示す図（ｂ）
【図８】第２の実施形態に係る画像処理部の機能構成例を示すブロック図
【図９】第２の実施形態に係るベクトル検出部の機能構成例と、データ転送部との関係とを合わせて説明する図
【図１０】第２の実施形態に係るベクトル検出部の一連の動作を示すフローチャート
【図１１】第２の実施形態に係るベクトル検出部が画像データを読み出すためのグリッド配置と特徴点、テンプレートマッチング領域の関係を示す図
【図１２】第２の実施形態における、画像データを上下分割する際の境界領域に関するベクトル検出処理及びデータ通信処理に係る一連の動作を示すフローチャート
【図１３】第２の実施形態に係るベクトル検出部が処理する画像データの領域を説明する図
【図１４】第２の実施形態に係るマスター側画像処理プロセッサ１００で処理される上半分の画像データの例（ａ）、及びスレーブ側画像処理プロセッサ１１７で処理される下半分の画像データの例（ｂ）を示す図
【発明を実施するための形態】
【００１０】
（第１の実施形態）
以下、例示的な実施形態について、図面を参照して詳細に説明する。なお、以下では画像処理装置の一例として、分割した画像データを複数の処理部で処理可能な任意のデジタルカメラを用いる例を説明する。しかし、本実施形態は、デジタルカメラに限らず、分割した画像データを複数の処理部で処理することが可能な任意の機器にも適用可能である。これらの機器には、例えばパーソナルコンピューター、スマートフォンを含む携帯電話機、ゲーム機、タブレット端末、時計型や眼鏡型の情報端末、医療機器、監視システムや車載用システムの機器、データセンタで動作するサーバ機器などが含まれてよい。また、以下の例では、分割した画像データを複数の画像処理プロセッサで分担して処理する例を説明するが、複数の装置や複数の仮想マシンの間で画像データを分担して処理する場合に適用してもよい。
【００１１】
（デジタルカメラ１５０の構成）
図１を参照して、本実施形態に係るデジタルカメラ１５０の機能構成例について説明する。デジタルカメラ１５０は、画像処理プロセッサであるマスター側画像処理プロセッサ１００と、画像処理プロセッサであるスレーブ側画像処理プロセッサ１１７とを有する。なお、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７で共通するブロックは、同一番号を付加して説明を省略する。図１に示す例では、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７とは異なる構成要素を有するが、同じ構成であって良い。
【００１２】
ＲＡＷデコード部１０１は、メディア１１１に格納された、圧縮されたＲＡＷデータの伸張処理を行う。ＲＡＷデータとは、後述する撮像部１１９の撮像素子から出力される、１つの画像を形成する画像信号（画像データ）をＡＤ変換したＲ、Ｇ、ＢのＢａｙｅｒ配列のデータである。画像処理部１０２は、入力された画像データに対し後述する画像処理を施す。画像処理部１０２についての詳細な機能構成や処理内容については後述する。
【００１３】
表示制御部１０３は、システム制御部１１４からの指示に応じて、メモリ１０９に格納された画像データや操作メニュー等の表示画像を表示部１１８に表示させる。表示部１１８は、例えばＬＣＤやＯＬＥＤ等で構成される表示パネルを含み、撮影された画像やデジタルカメラ１５０を操作するための操作メニュー等を表示する。表示部１１８は、表示パネル上に後述する操作部に含まれるタッチパネルを備えてもよい。
【００１４】
通信部１０４は、メモリ１０９に格納された画像データを一方の画像処理プロセッサに送信し、又は一方の画像処理プロセッサから送信された画像データを受信する。データ転送部１０５は、メモリ１０９やメディア１１１への読み込み書き込みといったデータ転送を行うための複数のＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓコントローラ（以下、ＤＭＡＣと記載）で構成される。
【００１５】
システムバス１０６は、システム制御部１１４、ＲＡＷデコード部１０１、画像処理部１０２、表示制御部１０３、通信部１０４、データ転送部１０５、メモリ制御部１０８、メディア制御部１１０、不揮発性メモリ制御部１１２を接続する。主用途は、システム制御部１１４から各処理ブロックを制御するときに使用するバスである。
【００１６】
データバス１０７は、データ転送部１０５、メモリ制御部１０８、メディア制御部１１０を接続する。主用途は、画像データ等の読み込み、書き込み時に使用するバスである。
【００１７】
メモリ制御部１０８は、システム制御部１１４或いはデータ転送部１０５からの指示に応じて、メモリ１０９にデータを書き込んだり、メモリ１０９からデータを読み出したりする。メモリ１０９は、例えばＤＲＡＭ等から構成され、所定枚数の静止画像や所定時間の動画像、音声等のデータやシステム制御部１１４の動作時の変数等を格納するのに十分な記憶容量を備える。図１に示す例では、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７のそれぞれが対応するメモリ１０９と接続される例を示しているが、それぞれのプロセッサが１つの共通のメモリを利用する構成であってもよい。
【００１８】
メディア制御部１１０は、システム制御部１１４からの指示に応じて、メディア１１１にデータを書き込んだり、メディア１１１からデータを読み出したりする。メディア１１１は、半導体メモリ等の記録媒体を含み、圧縮された静止画や動画データを記録する。
【００１９】
不揮発性メモリ制御部１１２は、システム制御部１１４からの指示に応じて、不揮発性メモリ１１３にデータを書き込んだり、不揮発性メモリ１１３からデータを読み出したりする。不揮発性メモリ１１３は、例えばＥＥＰＲＯＭ等の、電気的に消去・記録が可能なメモリを含み、システム制御部１１４が実行するデジタルカメラ１５０を制御するためのプログラムやシステム制御部１１４の動作用の定数等を記憶する。図１に示す例では、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７のそれぞれが対応する不揮発性メモリ１１３と接続される例を示しているが、それぞれのプロセッサが１つの不揮発性メモリを利用する構成であってもよい。
【００２０】
システム制御部１１４は、ＣＰＵ等の演算用回路を含み、デジタルカメラ１５０やマスター側画像処理プロセッサ１００を構成する各機能ブロックに対して様々な指示や各種の制御処理を実行して、デジタルカメラ１５０全体の動作を制御する。システム制御部１１４は、不揮発性メモリ１１３に記録されたプログラムをメモリ１０９に展開、実行することにより、本実施形態の各処理を実現する。また、システム制御部１１４は、バスを通じて各機能ブロックの動作を制御する。
【００２１】
通信データ制御部１１５は、システム制御部に含まれ、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７間における画像データの授受命令を制御する。また、通信データ制御部１１５は、処理対象の画像データをマスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７に分けて処理させるために画像データの分割サイズを算出する。なお、画像データ量によってはマスター側画像処理プロセッサ１００又はスレーブ側画像処理プロセッサ１１７のみで処理することもある。通信データ制御部１１５の処理の詳細については後述する。
【００２２】
操作部１１６は、ユーザにより操作されるスイッチ、ボタン及びタッチパネル等を含み、電源のＯＮ／ＯＦＦ、シャッターのＯＮ／ＯＦＦ、メニュー操作等の各種ユーザ操作を検出してシステム制御部１１４に通知する。撮像部１１９は、受光した被写体像を電気信号に変換して画像データを生成するＣＣＤやＣＭＯＳセンサ等の撮像素子や、撮像素子からのアナログ信号をデジタル信号に変換するＡＤ変換器等を含む。
【００２３】
（画像処理部１０２の構成）
次に、図２を参照して、画像処理部１０２の構成及び各部の処理について説明する。センサ補正部２０１は、撮像素子又はデータ転送部１０５から入力される画像データに対して画素補正、黒レベル補正、シェーディング補正、傷補正等の処理を行う。センサ補正部２０１は、処理した画像データをデータ転送部１０５若しくは光学補正部２０２又はその両方へ出力する。光学補正部２０２は、センサ補正部２０１又はデータ転送部１０５から入力される画像データに対して倍率色収差補正等の光学レンズに関する補正処理を行う。光学補正部２０２は、処理した画像データをデータ転送部１０５又は現像処理部２０３又はその両方へ出力する。
【００２４】
現像処理部２０３は、光学補正部２０２又はデータ転送部１０５から入力される画像データに対して、ガンマ補正や輝度・色生成等の処理を行い、処理した画像データをデータ転送部１０５又はＮＲ処理部２０４又はその両方へ出力する。ＮＲ処理部２０４は、現像処理部２０３又はデータ転送部１０５から入力される画像データに対して、データ転送部１０５からＮＲ（Ｎｏｉｓｅ  Ｒｅｄｕｃｔｉｏｎ）処理済みの１フレーム前の画像データを入力して、フレーム間のＮＲ処理を行う。ＮＲ処理部２０４は、処理した画像データをデータ転送部１０５若しくは幾何学変形部２０５、又はその両方へ出力する。なお、画像データの入力は、データ転送部１０５から２画像分のデータを同時に入力してもよい。幾何学変形部２０５は、ＮＲ処理部２０４又はデータ転送部１０５から入力される画像データに対して、幾何変形処理、例えば光学レンズの歪みを除去する歪補正等の処理を行う。幾何学変形部２０５は、処理した画像データをデータ転送部１０５若しくはコーデック部２０６、又はその両方へ出力する。
【００２５】
コーデック部２０６は、幾何学変形部２０５又はデータ転送部１０５から入力される画像データに対してＪＰＥＧ形式やＭＰＥＧ形式等への圧縮符号化を行う。あるいは、圧縮符号化された画像データが入力された場合、当該画像データに対して、伸長処理を行って非圧縮の画像データを作成し、データ転送部１０５へ出力する。なお、コーデック部の処理の詳細については後述する。
【００２６】
（画像を分割して処理する場合に必要となる画像データの例）
次に、図３（ａ）〜（ｂ）を参照して、分割した画像データ（ここでは上下２分割）を複数の画像処理プロセッサに入力する場合に、各画像処理ブロックが処理を実行するために必要となるデータ量について説明する。
【００２７】
図３（ａ）は、マスター側画像処理プロセッサ１００で処理される、画像の上半分の画像データを示している。また、図３（ｂ）は、スレーブ側画像処理プロセッサ１１７で処理される、画像の下半分の画像データを示している。図３（ａ）において、ＶＩＮ＿Ｍはマスター側画像処理プロセッサ１００の画像処理部１０２に入力される画像データのライン数を示しており、領域３０７で示されるＶＯＵＴ＿Ｍが出力される画像データのライン数を表す。
【００２８】
ＶＡＤＤ１＿Ｍは、画像処理部１０２のセンサ補正部２０１による処理において使用された後、削除される画像データ領域（３０１）のライン数を示す。また、ＶＡＤＤ２＿Ｍ、ＶＡＤＤ３＿Ｍは、それぞれ光学補正部２０２、現像処理部２０３による処理において使用された後に削除される画像データ領域（３０２〜３０３）を示す。同様に、ＶＡＤＤ４＿Ｍ、ＶＡＤＤ５＿Ｍ、ＶＡＤＤ６＿Ｍは、それぞれＮＲ処理部２０４、幾何学変形部２０５、コーデック部２０６による処理において使用された後に、削除される画像データ領域（３０４〜３０６）のライン数を示す。なお、図３（ｂ）に示す、スレーブ側画像処理プロセッサの画像処理部１０２において処理される画像データについては後述する。
【００２９】
図４は、本実施形態に係るセンサ補正部２０１で実施されるフィルタ処理のフィルタ係数の例を示す図である。センサ補正部２０１は、９×９ｔａｐのフィルタ係数を有する。センサ補正部２０１は、現像処理部２０３に入力される画像データの処理対象画素の画素値ｐ（ｘ，ｙ）と、処理対象画素を中心とする９×９画素の周辺画素からなる参照画素とを用いて、式（１）に示す演算を行い、画素値ｑ（ｘ，ｙ）を出力する。
【００３０】
【数１】
2018029245.tif 000003
【００３１】
この例では、センサ補正部２０１に入力される画像データのライン数ＶＩＮ＿Ｍに対して、終端の４ライン分に関しては、フィルタ処理で使用される下端側の参照画素が存在しないため、センサ補正部２０１はフィルタ処理を行うことができない。このため、センサ補正部２０１から出力される画像データのライン数は、（ＶＩＮ＿Ｍ−４）ライン分、すなわち、ＶＡＤＤ１＿Ｍ＝４となる。
【００３２】
図４のフィルタ処理を行った場合、同様に上端側で４ライン分、左右端側で４画素分については参照画素が存在せず、フィルタ処理を行うことができないため、入力画像データのサイズに対して、出力画像データのサイズは減少する。なお、以下の説明では、上下分割された際の境界部分のライン数についてのみ記述する。なお、境界部分は、マスター側画像処理プロセッサ１００の処理では画像データの下端部、スレーブ側画像処理プロセッサ１１７では画像データの上端部に該当する。
【００３３】
更に、マスター側画像処理プロセッサ１００が具備する光学補正部２０２の処理ではＶＡＤＤ２＿Ｍ＝９ライン分が必要となる。また、次の現像処理部２０３の処理では、ＶＡＤＤ３＿Ｍ＝１３ライン、ＮＲ処理部２０４の処理ではＶＡＤＤ４＿Ｍ＝１１ライン、幾何学変形部２０５の処理ではＶＡＤＤ５＿Ｍ＝１３５ラインが必要となる。コーデック部２０６の処理ではＶＡＤＤ６＿Ｍ＝４ライン分が必要となる。したがって、ＶＡＤＤ１＿ＭからＶＡＤＤ６＿Ｍまでの合計ライン数として１９２ラインが必要となる。
【００３４】
仮に、別途図７を参照して後述するような、処理途中のデータを各画像処理プロセッサ間で転送する構成でない場合、上述した１９２ライン分の余分なデータに対する処理が必要となる。すなわち、出力画像データとしてＶＯＵＴ＿Ｍライン分のデータ量を確保するため、まず（ＶＯＵＴ＿Ｍ＋１９２）ライン分の入力画像データを画像処理部１０２へ入力する必要がある。そして、画像処理部１０２の各処理部で削除される画像データも含めて前段の処理部において処理する必要がある。
【００３５】
再び図３（ｂ）を参照して、スレーブ側画像処理プロセッサ１１７の画像処理部１０２が使用する画像データについて説明する。図３（ｂ）では、ＶＩＮ＿Ｓはスレーブ側画像処理プロセッサ１１７の画像処理部１０２に入力される画像データのライン数を表し、また、領域３１７で示されるＶＯＵＴ＿Ｓは出力される画像データのライン数を表している。
【００３６】
図３（ｂ）のＶＡＤＤ１＿Ｓは、センサ補正部２０１による処理後に削除される画像データ領域の上端部のライン数を示す。同様にＶＡＤＤ２＿Ｓは光学補正部２０２、ＶＡＤＤ３＿Ｓは現像処理部２０３の処理後に削除される画像データ領域（３１２、３１３）を示す。また、ＶＡＤＤ４＿ＳはＮＲ処理部２０４、ＶＡＤＤ５＿Ｓは幾何学変形部２０５、ＶＡＤＤ６＿Ｓはコーデック部２０６の処理後に削除される画像データ領域（３１４〜３１６）下端部のライン数を示す。
【００３７】
マスター側の処理において上述したように、各画像処理プロセッサ間で処理途中のデータを転送しない場合、ＶＡＤＤ１＿ＳからＶＡＤＤ６＿Ｓまでの合計ライン数である１９２ラインのデータが必要となる。すなわち、処理途中のデータを各画像処理プロセッサ間で転送しない場合、マスター側画像処理プロセッサ１００およびスレーブ側画像処理プロセッサ１１７は、それぞれが処理する画像データ領域の処理を重複して行う必要がある。
【００３８】
（コーデック部２０６の構成と各部の動作）
図５は、本実施形態に係るコーデック部２０６の構成を示している。動き予測部５０１は、上述した上下分割された上側の画像データを、（例えばデータ転送部１０５から）マクロブロック単位でクラスタ順に取得する。動き予測部５０１は、符号化対象画像と、参照フレームバッファ５１０から入力される参照画像との間でブロックマッチングを行い、動きベクトル検出を行う。動き予測部５０１は、符号化対象画像と検出された動きベクトル位置の参照画像との間で画素の差分をとり、その差分画像を直交変換部５０２に出力する。直交変換部５０２は、入力された差分画像に対して離散コサイン変換を行い、変換係数を生成し、量子化部５０３に出力する。量子化部５０３は、送られてきた変換係数に対して、量子化制御部５０４が出力する量子化パラメータに従って量子化する。量子化された変換係数はエントロピー符号化部５０５、ならびにローカルデコード画像作成のため逆量子化部５０６に出力される。エントロピー符号化部５０５は、量子化後の変換係数に対して可変長符号化を行う。エントロピー符号化部５０５は、これに動きベクトルや量子化パラメータ、マクロブロックの分割情報などの符号化方式情報を可変長符号化したものを付加し、符号化ストリームを生成する。また、符号化の際にマクロブロックごとの発生符号量を算出し、量子化制御部５０４に出力する。
【００３９】
量子化制御部５０４は、量子化パラメータを決定する。量子化制御部５０４は、符号化を行う当該マクロブロックが画像の分割境界に接しているかどうかを示す情報（画像の境界情報）を取得する。符号化を行うマクロブロックが画像の分割境界に接していない場合には、エントロピー符号化部５０５から発生符号量を受け取り、目標とする符号量になるように量子化パラメータを決定し、量子化部５０３に出力する。逆量子化部５０６は、入力された量子化後の変換係数に対して逆量子化を行い、ローカルデコード用の変換係数を生成する。この変換係数は逆直交変換部５０７に出力される。逆直交変換部５０７は、入力された変換係数に対して逆離散コサイン変換を行い、差分画像を生成する。差分画像は動き補償部５０８に出力される。動き補償部５０８では、動きベクトル位置の参照画像を参照フレームバッファ５１０から読み出し、入力された差分画像を加算することにより、ローカルデコード用の画像データを生成する。
【００４０】
動き補償部５０８によって生成された画像データは、デブロッキング・フィルタ５０９に出力される。デブロッキング・フィルタ５０９は、入力された画像データに対してデブロッキング・フィルタをかける。デブロッキング・フィルタ後の画像がローカルデコード画像として参照フレームバッファ５１０に格納される。
【００４１】
このようにしてコーデック部２０６は、符号化ストリーム、ローカルデコード画像を生成する。なお、デブロッキング・フィルタ５０９は、例えばＨ．２６４符号化方式に応じたデブロッキング・フィルタ処理を行う。ただし、実際にブロック境界にフィルタ処理を行なうかどうかは、当該ブロック境界の画素値や符号化パラメータによって決定される。
【００４２】
図６は、本実施形態のコーデック部２０６が処理するマクロブロック境界の構成を示している。６０１で囲まれる水平方向のブロック境界は、画素値ｐ０〜ｑ３で構成されるブロック及び画素値ｑ０〜ｑ３で構成されるブロックが隣接している。同様に６０２で囲まれる垂直方向のブロック境界は、画素値ｐ０〜ｑ３で構成されるブロック及び画素値ｑ０〜ｑ３で構成されるブロックが隣接している。
【００４３】
Ｈ．２６４符号化方式の規格に準拠する場合、コーデック部２０６は以下の式（２）の条件が成立したときにブロック境界にデブロッキング・フィルタ処理を行う。
【００４４】
Ｂｓ＞０
｜ｐ０−ｑ０｜＜α  かつ  ｜ｐ１−ｑ０｜＜β  かつ  ｜ｑ１−ｑ０｜＜β  …（２）
ここで、Ｂｓ値（Ｂｏｕｎｄａｒｙ  Ｓｔｒｅｎｇｔｈ）は画像のブロック境界の強度を示す数値であり、ｐ、ｑとイントラ（画面内）・マクロブロックとの関係で決まる数値である。α、βはそれぞれＩｎｄｅｘＡ、ＩｎｄｅｘＢという値に対するテーブルで定義される。ＩｎｄｅｘＡ、ＩｎｄｅｘＢは、量子化パラメータ及びフィルタ強度に対するオフセット値から算出される。
【００４５】
Ｂｓ＜４の場合には、入力をｐ１、ｐ０、ｑ０、ｑ１として、４タップのＦＩＲフィルタの処理によりｐ’０とｑ’０（ｐ’０はｐ０、ｑ’０はｑ０のデブロッキング・フィルタ処理後の画素値）が生成される。また、｜ｐ２−ｐ０｜＜βの場合には、入力をｐ２、ｐ１、ｐ０、ｑ１として、４タップのＦＩＲフィルタの処理により、ｐ’１（ｐ’１はｐ１のデブロッキング・フィルタ処理後の画素値）が生成される。また、｜ｑ２−ｑ０｜＜βの場合には、入力をｑ２、ｑ１、ｑ０、ｐ１として、４タップのＦＩＲフィルタの処理により、ｑ’１（ｑ’１はｑ１のデブロッキング・フィルタ処理後の画素値）が生成される。
【００４６】
Ｂｓ＝４の場合には、以下の処理が成される。｜ｐ２−ｐ０｜＜βかつ｜ｐ０−ｐ０｜＜α／４＋２の場合、入力をｐ２、ｐ１、ｐ０、ｑ０、ｑ１として、５タップのＦＩＲフィルタの処理によりｐ’０が生成される。また、入力をｐ２、ｐ１、ｐ０、ｑ１として、４タップのＦＩＲフィルタの処理によりｐ’１が生成される。輝度信号の場合は入力をｐ３、ｐ２、ｐ１、ｐ０、ｑ０として、５タップのＦＩＲフィルタの処理によりｐ’２が生成される。それ以外の場合には、入力をｐ１、ｐ０、ｑ１として、３タップのＦＩＲフィルタの処理によりｐ’０が生成される。
【００４７】
｜ｑ２−ｑ０｜＜βかつ｜ｐ０−ｐ０｜＜α／４＋２の場合、入力をｑ２、ｑ１、ｑ０、ｐ０、ｐ１として、５タップのＦＩＲフィルタの処理によりｑ’０が生成される。また、入力をｑ２、ｑ１、ｑ０、ｐ０として、４タップのＦＩＲフィルタの処理によりｑ’１が生成される。輝度信号の場合は入力をｑ３、ｑ２、ｑ１、ｑ０、ｐ０として、５タップのＦＩＲフィルタの処理によりｑ’２が生成される。それ以外の場合には、入力をｑ１、ｑ０、ｐ１として、３タップのＦＩＲフィルタの処理によりｑ’０が生成される。
【００４８】
（本実施形態に係る画像の分割とプロセッサ間の通信処理）
次に、本実施形態に係る画像の分割とプロセッサ間の処理について説明する。すなわち、本実施形態では、各プロセッサに入力する画像データのデータ量を削減するために、図３を参照して説明した画像の分割を行わずに、以下に説明する画像の分割を行う。なお、この画像の分割により、画像処理部１０２内の各ブロックにおける処理の進行に応じてプロセッサ間で通信を要するが、各通信の方法は共通する。このため、各ブロックの例としてのコーデック部２０６の処理と、コーデック部２０６の処理に対応するプロセッサ間の通信を例に説明する。
【００４９】
図７（ａ）は、マスター側画像処理プロセッサ１００に含まれるコーデック部２０６が処理する画像データの境界領域を画素単位で示している。図中の一つの四角形が一画素を表す。図７（ｂ）は、コーデック部２０６が処理する画像データの境界領域を符号化のブロック単位で示す図である。図７（ｂ）に示す四角形の一つは図７（ａ）で示した４×４画素の符号化ブロックを表している。図７（ａ）及び（ｂ）に示す点線７０１は、画像データを上下分割する際の境界を示し、マスター側画像処理プロセッサ１００が点線７０１より上側の画像データを処理し、スレーブ側画像処理プロセッサ１１７が点線７０１より下側の画像データを処理する。本実施形態では、１つの画像を、２つの画像処理プロセッサに入力する共通の画素データ領域が存在しないように分割する。すなわち、図３に示した例ではＶＡＤＤ６＿Ｍ＝０、ＶＡＤＤ６＿Ｓ＝０とする。
【００５０】
マスター側画像処理プロセッサ１００におけるデブロッキング・フィルタ５０９が領域７０２に含まれるブロックを処理する場合、上述の通り、隣接する下側の画像データにおける所定の範囲内の領域７０３のブロックが必要となる。そのため、マスター側画像処理プロセッサ１００におけるデブロッキング・フィルタ５０９は、スレーブ側画像処理プロセッサ１１７の通信部１０４から領域７０３のブロックを取得することにより、ブロック境界のデブロッキング・フィルタの処理を実行する。なお、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７との間の通信（画像データの転送）は、通信データ制御部１１５の制御により実行される。領域７０３のブロックは、スレーブ側画像処理プロセッサ１１７において幾何学変形部２０５までの同様の処理が施されているため、（マスター側の）コーデック部２０６における連続したデブロッキング・フィルタの処理が可能である。
【００５１】
一方、スレーブ側画像処理プロセッサ１１７のデブロッキング・フィルタ５０９が領域７０３に含まれるブロックを処理する場合、隣接する上側の画像データにおける所定の範囲内の領域７０２のブロックが必要となる。そのため、マスター側画像処理プロセッサ１００の通信部１０４から、領域７０２へのデブロッキング・フィルタによる処理が済んだブロックを取得し、上下分割に該当するブロック境界のデブロッキング・フィルタの処理を実施する。領域７０２のブロックは、領域７０３と同様、マスター側画像処理プロセッサ１００において幾何学変形部２０５まで同様の画像処理が施されているため、（スレーブ側の）コーデック部２０６における連続したデブロッキング・フィルタの処理が可能である。なお、デブロッキング・フィルタは全てのブロック境界で適応されるわけではないので、適用される箇所のブロックのみ各画像処理プロセッサ間で転送するようにしてもよい。
【００５２】
以上説明したように、本実施形態によれば、１つの画像をマスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７とで分担して処理する場合に、共通する領域を持たない画像データを各プロセッサに入力するようにした。そして、画像処理を実行する各段階の進行に応じて、各々の段階で追加的に必要となる境界付近の画像データを互いのプロセッサ間で通信するようにした。このようにすることで、各プロセッサの画像処理部１０２内の各ブロックで処理する所定のライン数の分（例えばコーデック部２０６では図３（ａ）に示したＶＡＤＤ６＿Ｍ＝４分）を削減することができる。（例えばＶＡＤＤ６＿Ｍの）ライン数分のデータを削減することにより、処理の前段であるセンサ補正部２０１から幾何学変形部２０５における余分な領域に対する処理を不要にし、処理時間短縮、低消費電力化を実現することができる。
【００５３】
（第２の実施形態）
次に第２の実施形態について説明する。第２の実施形態では、画像処理部１０２が動きベクトルを検出するベクトル検出部を備え、当該ベクトル検出部による動きベクトルの検出処理において分割境界を跨いだ、必要なデータを取得する構成を説明する。第２の実施形態に係るデジタルカメラ１５０の構成は、画像処理部１０２の内部構成の一部が異なるが、他の構成は第１の実施形態に係るデジタルカメラ１５０の構成と同様である。このため、同一の構成については同一の符号を付して重複する説明は省略し、相違点について重点的に説明する。
【００５４】
（画像処理部１０２の構成）
まず、図８を参照して、本実施形態に係る画像処理部１０２の構成を説明する。第１の実施形態と同様に、現像処理部２０３が処理した画像データはＮＲ処理部２０４若しくはデータ転送部１０５又はその両方へ出力される。また、ＮＲ処理部２０４が処理した画像データは、データ転送部１０５若しくは縮小処理部８０１又はその両方へ出力される。
【００５５】
縮小処理部８０１は、予め設定された比率に従って画像データの縮小処理を行い、縮小した画像データをデータ転送部１０５へ出力する。縮小された画像データは、データ転送部１０５を介してベクトル検出部８０２へ入力される。ベクトル検出部は、現在のフレームと、現在のフレームの前のフレームとをテンプレートマッチングすることにより、各点（各座標位置）におけるベクトルデータを検出する。検出したベクトルデータは動画データに対する防振等の処理に使用される。
【００５６】
次に、ベクトル検出部８０２の処理について説明する。まず、図１１では、ベクトル検出部８０２が読み出すグリッド配置とテンプレート領域等の関係を示している。すなわち、所定のサイズのグリッド１１０２が、水平及び垂直方向に、それぞれ設定された個数の分だけ配置される（図１１の例では、水平５×垂直４の合計２０個のグリッドが配置されている）。各グリッドでは、特徴点１１０３が一つ抽出され、この特徴点１１０３を中心として、設定されたサイズの矩形状のサーチ領域１１０５及びテンプレート領域１１０４が設けられる。
【００５７】
（ベクトル検出部８０２の構成及び一連の動作）
図９及び図１０を参照して、ベクトル検出部８０２が行うベクトル検出処理の概要を説明しながら、ベクトル検出部８０２の機能構成例を説明する。なお、以下の一連の動作はシステム１１４が不揮発性メモリ１１３に記憶されたプログラムを展開、実行してプロセッサを構成する各部あるいは通信データ制御部１１５を制御することにより行われる。また、ベクトル検出部８０２による処理は、例えば分割された入力画像データが、データ転送部１０５の有するＲＤＤＭＡＣ１（９２１）に入力可能になった場合に開始される。
【００５８】
Ｓ１００１において、読み出しを制御するＲＤＤＭＡＣ１（９２１）は、ベクトル検出対象となる現フレームの入力画像データ９４１を、図１１に示した所定のグリッド１１０２のサイズごとにメモリ１０９から読み出す。なお、メモリ１０９に記憶されている入力画像データ９４１は、上述した画像処理部１０２内の各ブロックにおいて各画像処理が施されている。ＲＤＤＭＡＣ１（９２１）によってグリッド単位で読み出された入力画像データ９４１は、後段ブロックのテンプレートマッチング用画像生成部９０１と特徴点算出部９０２とに出力される。
【００５９】
Ｓ１００２において、テンプレートマッチング用画像生成部９０１は、ベクトル検出時におけるテンプレートマッチングに使用するテンプレートマッチング用画像を生成し、書き込みを制御するＷＲＤＭＡＣ１（９３１）に出力する。テンプレートマッチング用画像生成部９０１は、例えばバンドパスフィルタ回路を含み、テンプレートマッチング処理に不要となる画像信号の高周波成分と低周波成分とをカットする。また、テンプレートマッチング処理の演算量を削減するため、テンプレートマッチング用画像生成部９０１では入力画像データに対して２値化処理を行う。具体的には、入力画像データ９４１が１４ｂｉｔのビット深度を有する輝度データである場合、バンドパスフィルタ回路によるフィルタ処理では、当該輝度データは閾値判定によって１ｂｉｔのビット深度を有する２値データに変換される。
【００６０】
Ｓ１００３において、ＷＲＤＭＡＣ１（９３１）は、入力されたテンプレートマッチング用画像データ１（９４２）を書き出す処理を行う。また、メモリ１０９には前フレームで生成されたテンプレートマッチング用画像データ２（９４３）が格納されている。なお、上述したようにテンプレートマッチング用画像データ１（９４２）とテンプレートマッチング用画像データ２（９４３）とは２値データである。
【００６１】
Ｓ１００４において、特徴点算出部９０２は、Ｓ１００２及びＳ１００３における処理と並列して、現フレームにおけるグリッド単位の画像データに対して特徴点算出処理を行う。特徴点算出部９０２は、特徴フィルタ部、特徴評価部、特徴点決定部からなる。特徴フィルタ部は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。特徴フィルタ部は、例えばバンドパスフィルタを用いて不要な画像信号の高周波成分と低周波成分をカットし、水平方向の微分フィルタを適用して得られる信号と、垂直方向の微分フィルタを適用して得られる信号の各々に平滑化フィルタ処理を適用する。更に、特徴評価部は、特徴フィルタ部によってフィルタ処理されたグリッドに対し、画素ごとに２つのエッジの交点や曲率が極大となる曲線状の点など、画素の周辺の微分値が多方向に大きい点を、特徴評価式を用いて評価することにより特徴値として算出する。本実施形態に係る特徴評価部の処理の一例としてのＳｈｉ ａｎｄ Ｔｏｍａｓｉの手法について説明する。まず、特徴点算出部９０２は、水平微分フィルタと垂直微分フィルタを施した結果から、自己相関行列Ｈを作成する。自己相関行列Ｈの式を、式（３）に示す。
【００６２】
【数２】
2018029245.tif 000004
式（３）では、Ｉｘは水平微分フィルタを施した結果を、Ｉｙは垂直微分フィルタを施した結果をそれぞれ表し、ガウシアンフィルタＧを畳み込む。次に、特徴点算出部９０２は、式（４）に示すＳｈｉ ａｎｄ Ｔｏｍａｓｉの特徴評価式を算出する。
【００６３】
【数３】
2018029245.tif 000005
式（４）は、式（３）における自己相関行列Ｈの固有値λ１、λ２のうち、小さい方の固有値を特徴値とすることを示す。
【００６４】
特徴点決定部は、特徴評価部によって画素ごとに算出された、グリッド内において最も大きい特徴値を持つ画素を特徴点と決定する。なお、決定された特徴点は、特徴点算出部９０２の内部メモリやレジスタにグリッドごとに格納される。当該メモリやレジスタは、前フレームの特徴点と現フレームの特徴点とを格納するための容量を有している。そして、特徴点決定部は、対応するグリッドのテンプレートマッチング処理が開始される際に、前フレームで算出された特徴点を特徴点座標情報９５１としてＲＤＤＭＡＣ２（９２２）に入力する。
【００６５】
Ｓ１００５において、ＲＤＤＭＡＣ２（９２２）は、所定のサイズの矩形領域を、現フレームで生成されたテンプレートマッチング用画像データ１及び前フレームで生成されたテンプレートマッチング用画像データ２から読み出す。所定のサイズの矩形領域は、入力された前フレームで算出された特徴点座標情報９５１に基づいて、特徴点１１０３を中心とした領域として抽出される。なお、テンプレートマッチング用画像データ１からサーチ領域１１０５を読み出し、前フレームで生成されたテンプレートマッチング用画像データ２から、テンプレート領域１１０４を読み出す。読み出された各画像データはそれぞれ、サーチ領域画像データ９５３、テンプレート領域画像データ９５４として、テンプレートマッチング処理部９０３へ入力される。
【００６６】
Ｓ１００６において、テンプレートマッチング処理部９０３は、入力されたサーチ領域画像データ９５３とテンプレート領域画像データ９５４との相関値を算出し、算出した相関値に基づいてベクトル値を算出する。本実施形態では、相関値の算出方法として、例えば差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＡＤと略す）を求める。
【００６７】
【数４】
2018029245.tif 000006
ここで、ｆ（ｉ，ｊ）はテンプレート領域画像データ９５４内の座標（ｉ，ｊ）における画素値を表しており、ｇ（ｉ，ｊ）はサーチ領域画像データ９５３において相関値算出の対象となる領域内の各画素値を表す。相関値算出対象領域は、テンプレート領域画像データ９５４と同じ大きさである。ＳＡＤでは、それぞれの領域内の各画素値ｆ（ｉ，ｊ）及びｇ（ｉ，ｊ）について差の絶対値を計算し、その総和を求めることにより相関値Ｓ＿ＳＡＤを得る。従って、相関値Ｓ＿ＳＡＤの値が小さいほど領域間の輝度値の差分が小さく、それぞれの相関値算出領域内のテクスチャが類似していることを表す。換言すれば、相関値Ｓ＿ＳＡＤが最も小さくなる変位を求めることにより、画像の間の対応する領域を探索することができる。このとき、サーチ領域画像データ９５３とテンプレート領域画像データ９５４とは１ｂｉｔの２値データであるため、相関値Ｓ＿ＳＡＤを求めるための演算量は少なくて済む利点がある。なお、本実施形態では、相関値の一例としてＳＡＤを使用しているが、これに限るものではなく、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いても良い。テンプレートマッチング処理部９０３は、相関値が最小値となる位置に基づいてグリッドの動きベクトルを算出し、算出したベクトル情報９５５をＷＲＤＭＡＣ２（９３２）に出力する。
【００６８】
Ｓ１００７において、ＷＲＤＭＡＣ２（９３２）は、データバス１０７を介してメモリ１０９に対してベクトル情報９５５を書き出す。ベクトル検出部８０２は、ＷＲＤＭＡＣ２（９３２）によるベクトル情報９５５のメモリ１０９への書き込みが終了すると、動きベクトル検出処理を終了する。なお、上述の処理では１フレーム分の処理を説明したが、各フレームについて同様の処理を施してベクトルデータを算出する。
【００６９】
（ベクトル検出処理及びデータ通信処理に係る一連の動作）
次に、図１２を参照して、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７の、上下分割した画像データの境界領域に関するベクトル検出処理及びプロセッサ間のデータ通信処理について説明する。
【００７０】
一連の動作の説明するために、図１３及び図１４を参照して、ベクトル検出部８０２が処理を行う画像データ領域について説明する。図１４は、図３と同様に、マスター側画像処理プロセッサ１００とスレーブ側画像処理との間で画像データの通信を行わない場合に必要となるデータ量を示している。図１４（ａ）は、マスター側画像処理プロセッサ１００で処理される上半分の画像データを示し、図１４（ｂ）は、スレーブ側画像処理プロセッサ１１７で処理される下半分の画像データを示す。図１４（ａ）における、ＶＩＮ＿Ｍはマスター側画像処理プロセッサ１００の画像処理部１０２に入力される画像データのライン数を、領域１４０７で示されるＶＯＵＴ＿Ｍは出力される画像データのライン数を表す。更に、ＶＡＤＤ１＿Ｍは、センサ補正部２０１の処理で使用後、削除される画像データ領域上端部のライン数を示す。同様にＶＡＤＤ２＿Ｍは光学補正部２０２、ＶＡＤＤ３＿Ｍは現像処理部２０３、ＶＡＤＤ４＿ＭはＮＲ処理部２０４の処理で使用後、削除される画像データ領域（１４０１〜１４０４）上端部のライン数を示す。また、ＶＡＤＤ５＿Ｍは、縮小処理部８０１、ＶＡＤＤ６＿Ｍはベクトル検出部８０２の処理で使用後、削除される画像データ領域（１４０５〜１４０６）上端部のライン数を示す。
【００７１】
同様に、図１４（ｂ）においてＶＩＮ＿Ｓはスレーブ側画像処理プロセッサ１１７の画像処理部１０２に入力される画像データのライン数を、領域１４１７で示されるＶＯＵＴ＿Ｓは出力される画像データのライン数を表す。更に、ＶＡＤＤ１＿Ｓは、センサ補正部２０１の処理で使用後、削除される画像データ領域下端部のライン数を示す。同様にＶＡＤＤ２＿Ｓは光学補正部２０２、ＶＡＤＤ３＿Ｓは現像処理部２０３、ＶＡＤＤ４＿ＳはＮＲ処理部２０４の処理で使用後、削除される画像データ領域（１４１１〜１４１４）下端部のライン数を示す。ＶＡＤＤ５＿Ｓは縮小処理部８０１、ＶＡＤＤ６＿Ｓはベクトル検出部８０２の処理で使用後、削除される画像データ領域（１４１５〜１４１６）下端部のライン数を示す。
【００７２】
撮像素子からのアナログ信号をＡＤ変換器でデジタル信号に変換して出力する画像データが、例えば水平３８４０×垂直２１６０画素である場合を例に説明する。マスター側画像処理プロセッサ１００のＡＤ変換器から出力された画像データの上半分のデータは、マスター側画像処理プロセッサの画像処理部１０２に転送される。一方、画像データの下半分のデータは、各処理プロセッサの通信部１０４を介して、スレーブ側画像処理プロセッサ１１７に転送される。
【００７３】
これに対して、本実施形態では、マスター側画像処理プロセッサ１００とスレーブ側画像処理プロセッサ１１７との間で画像データを通信する。別途後述するように、通信データ制御部１１５が、画像データの上側のどの領域をマスター側画像処理プロセッサ１００で処理し、下側のどの領域までスレーブ側画像処理プロセッサ１１７に転送するかを判定する。通信データ制御部１１５の処理内容の詳細は後述する。
【００７４】
本実施形態では、例えば水平３８４０×垂直２１６０画素の画像データに対して、縮小処理部８０１が水平、垂直方向共に１／２に縮小処理を行う。通信データ制御部１１５の判定により、水平方向が丁度半分の位置で各々の画像処理プロセッサに転送された場合、縮小処理部８０１は、図１３に示す水平１９２０×垂直５４０画素の画像データを出力する。
【００７５】
上述したベクトル検出処理の通り、前フレームで取得した特徴点を中心に前フレームの２値画像データからテンプレート領域画像データ、現フレームの２値画像データからサーチ領域画像データを読み出してテンプレートマッチングを行う。なお、テンプレート領域画像データは、例えば水平４８×垂直４８画素、サーチ領域画像データは、例えば水平９６×垂直９６画素である。
【００７６】
図１３に示す点線より上側の５４０画素のデータは、マスター側画像処理プロセッサ１００内で処理するデータである。しかし、例えばグリッド１３５１についてみると、マスター側画像処理プロセッサ１００では保持していない領域のデータが必要となる。すなわち、特徴点１３３１がグリッド１３５１の下端寄りに存在するため、テンプレート領域１３０１とサーチ領域１３１１の下端の斜線領域１３２１（例えば水平９６×垂直３２画素）はマスター側画像処理プロセッサ１００の処理対象外となる。同様に、グリッド１３５３では、特徴点１３３３がグリッドの下端寄りに存在するため、テンプレート領域１３０３とサーチ領域１３１３の下端の斜線領域１３２３（水平９６×垂直４２画素）はマスター側画像処理プロセッサ１００の処理対象外となる。
【００７７】
反対に、図１３に示す点線より下側の５４０画素のデータは、スレーブ側画像処理プロセッサ１１７内で処理するデータであるが、例えばグリッド１３５２では、スレーブ側画像処理プロセッサ１１７では保持していない領域のデータが必要となる。すなわち、グリッド１３５２の特徴点１３３２がグリッドの上端寄りに存在するため、テンプレート領域１３０２とサーチ領域１３１２の上端の斜線領域１３２２（水平９６×垂直３８画素）はスレーブ側画像処理プロセッサ１１７の処理対象外となる。同様に、グリッド１３５４では、特徴点１３３４がグリッドの上端寄りに存在するため、テンプレート領域１３０４とサーチ領域１３１４（水平９６×垂直３２画素）の上端の斜線領域１３２４はスレーブ側画像処理プロセッサ１１７の処理対象外となる。
【００７８】
次に、図１２を参照して、図１３に示した状況における、画像データの境界領域に関するベクトル検出処理及びプロセッサ間のデータ通信処理について説明する。なお、以下の一連の動作はシステム１１４が不揮発性メモリ１１３に記憶されたプログラムを展開、実行してプロセッサを構成する各部あるいは通信データ制御部１１５を制御することにより行われる。
【００７９】
Ｓ１２００において、通信データ制御部１１５は、ベクトル検出部８０２の特徴点算出部９０２で算出された直前のフレームの特徴点座標を用いて、テンプレート領域画像データとサーチ領域画像データを算出する。図１３に示した例では、例えば特徴点１３３１に対して、サーチ領域１３１１とテンプレート領域１３０１を算出する。
【００８０】
Ｓ１２０１において、通信データ制御部１１５は、画像データを上下分割した上側の画像データに含まれるグリッドのテンプレート領域画像データとサーチ領域画像データが、下側の画像データの領域に含まれるかを判定する。図１３に示した例では、通信データ制御部１１５は、テンプレート領域画像データ１３０１、１３０３とサーチ領域画像データ１３１１、１３１３の斜線領域１３２１、１３２３が下側の画像データの領域に含まれると判定する。同様に、通信データ制御部１１５は、上下分割した下側の画像データに含まれるグリッドのテンプレート領域画像データとサーチ領域画像データが、上側の画像データの領域に含まれるかを判定する。図１３に示した例では、通信データ制御部１１５は、テンプレート領域画像データ１３０２、１３０４とサーチ領域画像データ１３１２、１３１４の斜線領域１３２２、１３２４が上側の画像データの領域に含まれると判定する。通信データ制御部１１５は、テンプレート領域画像データ又はサーチ領域画像データが反対側の画像データの領域に含まれると判定した場合、Ｓ１２０２に処理を進め、そうでない場合にはＳ１２０９に処理を進める。
【００８１】
Ｓ１２０２において、通信データ制御部１１５は、入力画像データのビット深度ｂｉｔＡと、テンプレート領域画像データ、サーチ領域画像データのビット深度であるｂｉｔＢを判定する。前述のとおり、ｂｉｔＡ＝１４ｂｉｔ、ｂｉｔＢ＝１ｂｉｔとなる。また、Ｓ１２０３において、通信データ制御部１１５は、入力画像データの画像解像度ｓｉｚｅＡとテンプレート領域画像データ及びサーチ領域画像データの画像解像度ｓｉｚｅＢを判定する。前述のとおり、縮小処理部８０１において、入力画像データを１／２倍に縮小しており、２値データの画像サイズで画素数を算出するため、ｓｉｚｅＡ＝２、ｓｉｚｅＢ＝１となる。
【００８２】
Ｓ１２０４において、通信データ制御部１１５は、上下分割した境界を越えたテンプレート領域画像データとサーチ領域画像データを含む画像データをセンサ補正部２０１から入力して処理した際に必要なラインの画素数ｐｉｘｎｕｍＡを算出する。ここで、マスター側画像処理プロセッサ１００の画素数をＰｉｘｎｕｍＡ＿Ｍ、スレーブ側画像処理プロセッサ１１７の画素数をＰｉｘｎｕｍＡ＿Ｓとする。図１３に示した例では、斜線領域１３２１及び１３２３を含む分割境界からのライン単位の画素数となる。すなわち、垂直方向の画素数が大きい斜線領域１３２３の４２画素であるため、マスター側画像処理プロセッサ１００の画素数ＰｉｘｎｕｍＡ＿Ｍは１９２０×４２＝８０６４０画素となる。同様に、ＰｉｘｎｕｍＡ＿Ｓは、斜線領域１３２２、１３２４を含むライン単位の画素数となる。すなわち、垂直方向の画素数が大きい斜線領域１３２２の３８画素であるため、スレーブ側画像処理プロセッサ１１７の画素数ＰｉｘｎｕｍＡ＿Ｓは１９２０×３８＝７２９６０画素となる。
【００８３】
次に、テンプレート領域画素データとサーチ領域画素データの画素数ｐｉｘｎｕｍＢを算出する。ここで、マスター側画像処理プロセッサ１００の画素数をＰｉｘｎｕｍＢ＿Ｍ、スレーブ側画像処理プロセッサ１１７の画素数をＰｉｘｎｕｍＢ＿Ｓとする。図１３において、斜線領域１３２１（水平９６×垂直３２画素）と、斜線領域１３２３（水平９６×垂直４２画素）のテンプレート領域画像データとサーチ領域画像データの画素数が、ＰｉｘｎｕｍＢ＿Ｍとなる。従って、ＰｉｘｎｕｍＢ＿Ｍは、９６×３２＋４８×８＋９６×４２＋４８×１８＝８３５２画素となる。同様に、斜線領域１３２２（水平９６×垂直３８画素）と、斜線領域１３２４（水平９６×垂直３２画素）のテンプレート領域画像データとサーチ領域画像データの画素数が、ＰｉｘｎｕｍＢ＿Ｓとなる。従って、ＰｉｘｎｕｍＢ＿Ｓ＝９６×３８＋４８×１０＋９６×３２＋４８×１６＝７９６８画素となる。
【００８４】
Ｓ１２０５において、通信データ制御部１１５は、処理に必要なラインの処理データ量ｄａｔａｓｉｚｅＡとテンプレート領域画像データとサーチ領域画像データの処理データ量ｄａｔａｓｉｚｅＢとを算出する。具体的には、通信データ制御部１１５は、ｄａｔａｓｉｚｅＡとｄａｔａｓｉｚｅＢとを、Ｓ１２０２〜１２０４において得られたビット深度、画像解像度、画素数を考慮して算出する。なお、マスター側画像処理プロセッサ１００の処理データ量をｄａｔａｓｉｚｅＡ＿Ｍ、ｄａｔａｓｉｚｅＢ＿Ｍとし、スレーブ側画像処理プロセッサ１１７の処理データ量をｄａｔａｓｉｚｅＡ＿Ｓ、ｄａｔａｓｉｚｅＢ＿Ｓとする。
【００８５】
図１３に示した例では、マスター側画像処理プロセッサ１００の処理データ量は、
・ｄａｔａｓｉｚｅＡ＿Ｍ＝ｂｉｔＡ×ｓｉｚｅＡ＾２×ＰｉｘｎｕｍＡ＿Ｍ＝１４×２＾２×８０６４０＝４５１５８４０［ｂｉｔ］
・ｄａｔａｓｉｚｅＢ＿Ｍ＝ｂｉｔＢ×ｓｉｚｅＢ＾２×ＰｉｘｎｕｍＢ＿Ｍ＝１×１＾２×８３５２＝８３５２［ｂｉｔ］
である。
【００８６】
一方、スレーブ側画像処理プロセッサ１１７の処理データ量は、
・ｄａｔａｓｉｚｅＡ＿Ｓ＝ｂｉｔＡ×ｓｉｚｅＡ＾２×ＰｉｘｎｕｍＡ＿Ｓ＝１４×２＾２×７２９６０＝４０８５７６０［ｂｉｔ］
・ｄａｔａｓｉｚｅＢ＿Ｓ＝ｂｉｔＢ×ｓｉｚｅＢ＾２×ＰｉｘｎｕｍＢ＿Ｓ＝１×１＾２×７９６８＝７９６８［ｂｉｔ］
となる。
【００８７】
従って、これらを合算した処理データ量は、ｄａｔａｓｉｚｅＡ＝ｄａｔａｓｉｚｅＡ＿Ｍ＋ｄａｔａｓｉｚｅＡ＿Ｓ＝８６０１６００［ｂｉｔ］、ｄａｔａｓｉｚｅＢ＝ｄａｔａｓｉｚｅＢ＿Ｍ＋ｄａｔａｓｉｚｅＢ＿Ｓ＝１６３２０［ｂｉｔ］となる。
【００８８】
Ｓ１２０６において、通信データ制御部１１５は、Ｓ１２０５で算出した処理データ量を比較する。通信データ制御部１１５は、ｄａｔａｓｉｚｅＡ＜ｄａｔａｓｉｚｅＢを満たす、すなわちｄａｔａｓｉｚｅＡがｄａｔａｓｉｚｅＢを下回る場合、Ｓ１２０７に処理を進め、満たさない場合にはＳ１２０９に処理を進める。図１３の例では、通信データ制御部１１５は条件を満たさないと判定して、Ｓ１２０９に処理を進める。
【００８９】
Ｓ１２０７において、マスター側画像処理プロセッサ１００の通信部１０４は、（システム制御部１１４の指示に応じて）入力画像データの内、上下分割された下半分の画像データをスレーブ側画像処理プロセッサ１１７に転送する。併せて入力画像データの内、上下分割された上半分の画像データの内、テンプレート領域画像データ及びサーチ領域画像データを含むライン単位の画像データをスレーブ側画像処理プロセッサ１１７に転送する。図１３に示した例では、斜線領域１３２２を含む３８画素ライン分と下半分の画像データの５４０画素ラインをスレーブ側画像処理プロセッサ１１７に転送する。
【００９０】
Ｓ１２０８において、マスター側画像処理プロセッサ１００又はスレーブ側画像処理プロセッサ１１７は、上下分割された半分の画像データと、テンプレート領域画像データ及びサーチ領域画像データを含むラインの画像データとを、画像処理部１０２内の画像処理モジュールで順次処理する。すなわち、マスター側画像処理プロセッサ１００は、上下分割された上半分の画像データと、テンプレート領域画像データ及びサーチ領域画像データを含むラインの画像データとを順次処理する。例えば縮小処理部８０１は、図１４（ａ）で示したＶＯＵＴ＿Ｍ＝５４０とＶＡＤＤ６＿Ｍ＝４２を含むライン分の出力画像データを処理し、処理後のデータをベクトル検出部８０２が処理する。また、スレーブ側画像処理プロセッサ１１７では、上下分割された下半分の画像データと、テンプレート領域画像データ及びサーチ領域画像データを含むラインの画像データを順次処理する。縮小処理部８０１では、図１４（ｂ）で示したＶＯＵＴ＿Ｓ＝５４０とＶＡＤＤ６＿Ｓ＝３８を含むライン分の画像データを処理し、処理後のデータをベクトル検出部８０２が処理する。
【００９１】
Ｓ１２０９において、マスター側画像処理プロセッサ１００の通信部１０４は、スレーブ側画像処理プロセッサ１１７のベクトル検出部８０２で必要なテンプレート領域画像データ及びサーチ領域画像データをスレーブ側画像処理プロセッサ１１７に転送する。同様にスレーブ側画像処理プロセッサ１１７の通信部１０４は、マスター側画像処理プロセッサ１００のベクトル検出部８０２で必要なテンプレート領域画像データ及びサーチ領域画像データをマスター側画像処理プロセッサ１００に転送する。図１３の例では、マスター側画像処理プロセッサ１００の通信データ制御部１１５は、ベクトル検出部８０２で処理された２値データの内、斜線領域１３２２及び１３２４の画像データをスレーブ側画像処理プロセッサ１１７に転送する。一方、スレーブ側画像処理プロセッサ１１７の通信データ制御部１１５は、ベクトル検出部８０２で処理された２値データの内、斜線領域１３２１及び１３２３の画像データをマスター側画像処理プロセッサ１００に転送する。
【００９２】
Ｓ１２１０において、マスター側画像処理プロセッサ１００では、上下分割された上半分の画像データを画像処理部１０２内の各ブロックで順次処理する。例えば縮小処理部８０１は、図１４（ａ）で示したＶＯＵＴ＿Ｍ＝５４０のライン分の画像データを処理し、処理後のデータをベクトル検出部８０２が処理する。ベクトル検出部８０２では、（ベクトル検出処理に必要な）上下分割した下半分の画像データに含まれるテンプレート領域画像データとサーチ領域画像データは、スレーブ側画像処理プロセッサ１１７から転送されたデータを用いる。
【００９３】
一方、スレーブ側画像処理プロセッサ１１７では、上下分割された下半分の画像データを画像処理部１０２内の各ブロックで順次処理する。例えば縮小処理部８０１は、図１４（ｂ）に示したＶＯＵＴ＿Ｓ＝５４０のライン分の画像データを処理し、処理後のデータをベクトル検出部８０２が処理する。ベクトル検出部８０２では、（ベクトル検出処理に必要な）上下分割した上半分の画像データに含まれるテンプレート領域画像データとサーチ領域画像データは、マスター側画像処理プロセッサ１００から転送されたデータを用いる。
【００９４】
通信データ制御部１１５は、Ｓ１２０８又はＳ１２１０の処理を完了すると、本一連の動作を終了する。なお、図１２で示した一連の動作は、１フレームごとに行っても良いし、複数フレームごとに行っても良い。また、動画の撮影時だけでなく動画を再生する場合にも適用してもよい。更に、動画を再生する場合には、例えばＳ１２０５までの処理を予め実行しておいて算出したデータを記録しておくようにしてもよい。また、上述した実施形態では、２つの画像処理プロセッサ間で行う処理について説明したが、３つ以上の画像処理プロセッサの間で行う処理にも適用可能である。また、上述した実施形態では、画像を上下に分割にした場合を例に説明したが、画像を左右に分割する場合や３つ以上に分割した場合にも適用可能である。
【００９５】
以上説明したように本実施形態では、ベクトル検出部８０２において追加的に必要となるデータ量が枠ごとに算出可能であり、当該追加的に必要となるデータをライン単位で取得する場合よりもデータ量が少なくなる場合、枠ごとに転送するようにした。このようにすれば、（画像処理部１０２の）処理の前段に用いられるブロックにおける処理画像データ量を削減することができるとともに、転送するデータ量を削減し、処理全体の処理時間短縮、低消費電力化が可能になる。
【００９６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９７】
１００…マスター側画像処理プロセッサ、１０２…画像処理部、１０４…通信部、１１５…通信データ制御部、１１７…スレーブ側画像処理プロセッサ
【図１】
2018029245.tif 000007
【図２】
2018029245.tif 000008
【図３】
2018029245.tif 000009
【図４】
2018029245.tif 000010
【図５】
2018029245.tif 000011
【図６】
2018029245.tif 000012
【図７】
2018029245.tif 000013
【図８】
2018029245.tif 000014
【図９】
2018029245.tif 000015
【図１０】
2018029245.tif 000016
【図１１】
2018029245.tif 000017
【図１２】
2018029245.tif 000018
【図１３】
2018029245.tif 000019
【図１４】
2018029245.tif 000020