画像処理装置およびその制御方法ならびにプログラム

申请号 JP2016159681 申请日 2016-08-16 公开(公告)号 JP2018029245A 公开(公告)日 2018-02-22
申请人 キヤノン株式会社; 发明人 谷口 浩之;
摘要 【課題】複数の処理ユニットで1つの画像を分担して処理する場合に、各処理ユニットに入 力 するデータ量を低減することが可能な画像処理装置を提供する。 【解決手段】本願に係る画像処理装置は、1つの画像を形成する画像 信号 から得られる第1の画像信号に画像処理を施す第1の処理手段と、画像を形成する画像信号から得られる第2の画像信号に画像処理を施す第2の処理手段と、第1の処理手段と第2の処理手段における画像処理の進行に応じて、第1の処理手段と第2の処理手段との間の画像信号の通信を制御する制御手段と、を有し、第1の画像信号と第2の画像信号とは、画像の領域が重複しないように画像の領域を分割した画像信号であり、制御手段は、第1の処理手段が第1の画像信号に画像処理を施す際に追加的に必要となる画像の領域の画像信号を、第2の処理手段から第1の処理手段に転送するように通信を制御する。 【選択図】図1
权利要求

1つの画像を形成する画像信号から得られる第1の画像信号に画像処理を施す第1の処理手段と、 前記画像を形成する画像信号から得られる第2の画像信号に前記画像処理を施す第2の処理手段と、 前記第1の処理手段と前記第2の処理手段における前記画像処理の進行に応じて、前記第1の処理手段と前記第2の処理手段との間の画像信号の通信を制御する制御手段と、を有し、 前記第1の画像信号と前記第2の画像信号とは、前記画像の領域が重複しないように前記画像の領域を分割した画像信号であり、 前記制御手段は、前記第1の処理手段が前記第1の画像信号に前記画像処理を施す際に追加的に必要となる前記画像の領域の画像信号を、前記第2の処理手段から前記第1の処理手段に転送するように前記通信を制御する、ことを特徴とする画像処理装置。前記画像処理は、順に処理される第1の画像処理と第2の画像処理とを含み、 前記制御手段は、前記第1の処理手段が前記第2の画像処理を施す際に追加的に必要となる前記画像の領域の画像信号を、前記第2の処理手段が前記第1の画像処理を施した後の画像信号から転送するように前記通信を制御する、ことを特徴とする請求項1に記載の画像処理装置。前記追加的に必要となる前記画像の領域の画像信号は、前記第1の処理手段が前記画像処理を施す画像信号に含まれない、前記画像の領域を分割した境界から所定の範囲内にある領域の画像信号である、ことを特徴とする請求項2に記載の画像処理装置。前記制御手段は、前記追加的に必要となる前記画像の領域の画像信号を、前記境界からライン単位で取得して転送するように前記通信を制御する、ことを特徴とする請求項3に記載の画像処理装置。前記第2の画像処理は動きベクトルを検出する処理であり、 前記制御手段は、前記追加的に必要となる前記画像の領域の画像信号を、前記動きベクトルを探索するために必要となる枠の領域のうち、前記境界を超えた領域ごとに取得して転送するように前記通信を制御する、ことを特徴とする請求項3に記載の画像処理装置。前記追加的に必要となる前記画像の領域の画像信号について、前記画像処理を施すために必要となる枠の領域のうち、前記境界を超えた領域ごとに取得する画像信号のデータ量が、前記境界から所定のライン数で取得する画像信号のデータ量を下回るかを判定する判定手段を更に有する、ことを特徴とする請求項3に記載の画像処理装置。前記制御手段は、前記判定手段により、前記境界を超えた領域ごとに取得する画像信号のデータ量が、前記境界から前記所定のライン数で取得する画像信号のデータ量を下回ると判定された場合、前記境界を超えた領域ごとに取得する画像信号を取得して転送するように前記通信を制御する、ことを特徴とする請求項6に記載の画像処理装置。前記判定手段は、データ量を判定する際に、前記第2の処理手段において施された画像処理により得られる画像信号のビット深度を考慮する、ことを特徴とする請求項6又は7に記載の画像処理装置。前記判定手段は、データ量を判定する際に、前記第2の処理手段において施された画像処理により得られる画像信号の解像度を考慮する、ことを特徴とする請求項6又は7に記載の画像処理装置。前記第1の処理手段と前記第2の処理手段とは、それぞれ異なる画像処理プロセッサに含まれる、ことを特徴とする請求項1から9のいずれか1項に記載の画像処理装置。前記制御手段は、複数の画像処理プロセッサのうちのいずれかにより実行される、ことを特徴とする請求項10に記載の画像処理装置。第1の処理手段が、1つの画像を形成する画像信号から得られる第1の画像信号に画像処理を施す第1の処理工程と、 第2の処理手段が、前記画像を形成する画像信号から得られる第2の画像信号に前記画像処理を施す第2の処理工程と、 制御手段が、前記第1の処理手段と前記第2の処理手段における前記画像処理の進行に応じて、前記第1の処理手段と前記第2の処理手段との間の画像信号の通信を制御する制御工程と、を有し、 前記第1の画像信号と前記第2の画像信号とは、前記画像の領域が重複しないように前記画像の領域を分割した画像信号であり、 前記制御工程では、前記第1の処理工程において前記第1の画像信号に前記画像処理を施す際に追加的に必要となる前記画像の領域の画像信号を、前記第2の処理工程で得られる画像信号から転送するように前記通信を制御する、ことを特徴とする画像処理装置の制御方法。請求項1から11のいずれか1項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。請求項1から11のいずれか1項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラムを格納する記録媒体。

说明书全文

本発明は、画像処理装置およびその制御方法ならびにプログラムに関する。

近年、デジタルカメラ等の撮像装置において、撮像素子の多画素化や動画像の高フレームレート化等に伴って撮像素子から出される画像信号のデータ量が増大し、当該画像信号を処理する画像処理プロセッサの処理量が増大している。

データ量が増大すると単一の画像処理プロセッサでは処理能力が十分でなくなる場合があるため、複数の画像処理プロセッサを採用して並列に動作させ、各画像処理プロセッサの負荷を分散させる技術が知られている(特許文献1)。特許文献1では、互いに接続された複数の画像処理プロセッサにおいて、各プロセッサの内部温度や内部バスのデータ転送量等を示す分割制御情報に応じて処理の割合を決定し、当該割合で分割したデータを各プロセッサで処理する技術を開示している。

特開2016−10112号公報

ところで、画像の上下で分割した画像信号を別々のプロセッサでそれぞれフィルタ処理等を行う場合、分割した境界の付近を処理するためには境界を超えた領域(分割された他方)のデータが必要となることがある。この点、特許文献1では、境界を超えた領域のデータ(例えば2つのプロセッサが共通して必要とするデータ)を、データ分割の際にどのように扱うかを考慮していない。各プロセッサのためにデータを分割する場合、各プロセッサが必要とする分割境界を超えたデータを予め考慮し、余分な領域を設けるようにデータを分割することも考えられる。しかし、データ量が増大するほど、余分な領域のデータ量も増大し、各プロセッサにおける処理時間や消費電力が増加することになる。このため、複数の画像処理プロセッサ(処理ユニット)で1つの画像を分担して処理する場合に、それぞれが処理するデータ量をより低減することができる技術が望まれている。

本発明は、上述の問題点に鑑みてなされたものである。すなわち、複数の処理ユニットで1つの画像を分担して処理する場合に、各処理ユニットに入力するデータ量を低減することが可能な画像処理装置およびその制御方法ならびにプログラムを提供することを目的とする。

この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、1つの画像を形成する画像信号から得られる第1の画像信号に画像処理を施す第1の処理手段と、画像を形成する画像信号から得られる第2の画像信号に画像処理を施す第2の処理手段と、第1の処理手段と第2の処理手段における画像処理の進行に応じて、第1の処理手段と第2の処理手段との間の画像信号の通信を制御する制御手段と、を有し、第1の画像信号と第2の画像信号とは、画像の領域が重複しないように画像の領域を分割した画像信号であり、制御手段は、第1の処理手段が第1の画像信号に画像処理を施す際に追加的に必要となる画像の領域の画像信号を、第2の処理手段から第1の処理手段に転送するように通信を制御する、ことを特徴とする。

本発明によれば、複数の処理ユニットで1つの画像を分担して処理する場合に、各処理ユニットに入力するデータ量を低減することが可能になる。

第1の実施形態に係る画像処理装置の一例としてのデジタルカメラの機能構成例を示すブロック図

第1の実施形態に係る画像処理部の機能構成例を示すブロック図

第1の実施形態に係るマスター側画像処理プロセッサで処理される画像データ((a):上半分、(b):下半分)の例を示す図

第1の実施形態に係るセンサ補正部で実行されるフィルタ処理に用いられるフィルタ係数の例を示す図

第1の実施形態に係るコーデック部の機能構成例を示すブロック図

第1の実施形態に係るコーデック部が処理するマクロブロック境界の構成例を示す図

第1の実施形態に係るコーデック部が処理する画像データの境界領域のデータ例を画素信号の単位で示す図(a)と、符号化のブロック単位で示す図(b)

第2の実施形態に係る画像処理部の機能構成例を示すブロック図

第2の実施形態に係るベクトル検出部の機能構成例と、データ転送部との関係とを合わせて説明する図

第2の実施形態に係るベクトル検出部の一連の動作を示すフローチャート

第2の実施形態に係るベクトル検出部が画像データを読み出すためのグリッド配置と特徴点、テンプレートマッチング領域の関係を示す図

第2の実施形態における、画像データを上下分割する際の境界領域に関するベクトル検出処理及びデータ通信処理に係る一連の動作を示すフローチャート

第2の実施形態に係るベクトル検出部が処理する画像データの領域を説明する図

第2の実施形態に係るマスター側画像処理プロセッサ100で処理される上半分の画像データの例(a)、及びスレーブ側画像処理プロセッサ117で処理される下半分の画像データの例(b)を示す図

(第1の実施形態) 以下、例示的な実施形態について、図面を参照して詳細に説明する。なお、以下では画像処理装置の一例として、分割した画像データを複数の処理部で処理可能な任意のデジタルカメラを用いる例を説明する。しかし、本実施形態は、デジタルカメラに限らず、分割した画像データを複数の処理部で処理することが可能な任意の機器にも適用可能である。これらの機器には、例えばパーソナルコンピューター、スマートフォンを含む携帯電話機、ゲーム機、タブレット端末、時計型や眼鏡型の情報端末、医療機器、監視システムや車載用システムの機器、データセンタで動作するサーバ機器などが含まれてよい。また、以下の例では、分割した画像データを複数の画像処理プロセッサで分担して処理する例を説明するが、複数の装置や複数の仮想マシンの間で画像データを分担して処理する場合に適用してもよい。

(デジタルカメラ150の構成) 図1を参照して、本実施形態に係るデジタルカメラ150の機能構成例について説明する。デジタルカメラ150は、画像処理プロセッサであるマスター側画像処理プロセッサ100と、画像処理プロセッサであるスレーブ側画像処理プロセッサ117とを有する。なお、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117で共通するブロックは、同一番号を付加して説明を省略する。図1に示す例では、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117とは異なる構成要素を有するが、同じ構成であって良い。

RAWデコード部101は、メディア111に格納された、圧縮されたRAWデータの伸張処理を行う。RAWデータとは、後述する撮像部119の撮像素子から出力される、1つの画像を形成する画像信号(画像データ)をAD変換したR、G、BのBayer配列のデータである。画像処理部102は、入力された画像データに対し後述する画像処理を施す。画像処理部102についての詳細な機能構成や処理内容については後述する。

表示制御部103は、システム制御部114からの指示に応じて、メモリ109に格納された画像データや操作メニュー等の表示画像を表示部118に表示させる。表示部118は、例えばLCDやOLED等で構成される表示パネルを含み、撮影された画像やデジタルカメラ150を操作するための操作メニュー等を表示する。表示部118は、表示パネル上に後述する操作部に含まれるタッチパネルを備えてもよい。

通信部104は、メモリ109に格納された画像データを一方の画像処理プロセッサに送信し、又は一方の画像処理プロセッサから送信された画像データを受信する。データ転送部105は、メモリ109やメディア111への読み込み書き込みといったデータ転送を行うための複数のDirect Memory Accessコントローラ(以下、DMACと記載)で構成される。

システムバス106は、システム制御部114、RAWデコード部101、画像処理部102、表示制御部103、通信部104、データ転送部105、メモリ制御部108、メディア制御部110、不揮発性メモリ制御部112を接続する。主用途は、システム制御部114から各処理ブロックを制御するときに使用するバスである。

データバス107は、データ転送部105、メモリ制御部108、メディア制御部110を接続する。主用途は、画像データ等の読み込み、書き込み時に使用するバスである。

メモリ制御部108は、システム制御部114或いはデータ転送部105からの指示に応じて、メモリ109にデータを書き込んだり、メモリ109からデータを読み出したりする。メモリ109は、例えばDRAM等から構成され、所定枚数の静止画像や所定時間の動画像、音声等のデータやシステム制御部114の動作時の変数等を格納するのに十分な記憶容量を備える。図1に示す例では、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117のそれぞれが対応するメモリ109と接続される例を示しているが、それぞれのプロセッサが1つの共通のメモリを利用する構成であってもよい。

メディア制御部110は、システム制御部114からの指示に応じて、メディア111にデータを書き込んだり、メディア111からデータを読み出したりする。メディア111は、半導体メモリ等の記録媒体を含み、圧縮された静止画や動画データを記録する。

不揮発性メモリ制御部112は、システム制御部114からの指示に応じて、不揮発性メモリ113にデータを書き込んだり、不揮発性メモリ113からデータを読み出したりする。不揮発性メモリ113は、例えばEEPROM等の、電気的に消去・記録が可能なメモリを含み、システム制御部114が実行するデジタルカメラ150を制御するためのプログラムやシステム制御部114の動作用の定数等を記憶する。図1に示す例では、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117のそれぞれが対応する不揮発性メモリ113と接続される例を示しているが、それぞれのプロセッサが1つの不揮発性メモリを利用する構成であってもよい。

システム制御部114は、CPU等の演算用回路を含み、デジタルカメラ150やマスター側画像処理プロセッサ100を構成する各機能ブロックに対して様々な指示や各種の制御処理を実行して、デジタルカメラ150全体の動作を制御する。システム制御部114は、不揮発性メモリ113に記録されたプログラムをメモリ109に展開、実行することにより、本実施形態の各処理を実現する。また、システム制御部114は、バスを通じて各機能ブロックの動作を制御する。

通信データ制御部115は、システム制御部に含まれ、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117間における画像データの授受命令を制御する。また、通信データ制御部115は、処理対象の画像データをマスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117に分けて処理させるために画像データの分割サイズを算出する。なお、画像データ量によってはマスター側画像処理プロセッサ100又はスレーブ側画像処理プロセッサ117のみで処理することもある。通信データ制御部115の処理の詳細については後述する。

操作部116は、ユーザにより操作されるスイッチ、ボタン及びタッチパネル等を含み、電源のON/OFF、シャッターのON/OFF、メニュー操作等の各種ユーザ操作を検出してシステム制御部114に通知する。撮像部119は、受光した被写体像を電気信号に変換して画像データを生成するCCDやCMOSセンサ等の撮像素子や、撮像素子からのアナログ信号をデジタル信号に変換するAD変換器等を含む。

(画像処理部102の構成) 次に、図2を参照して、画像処理部102の構成及び各部の処理について説明する。センサ補正部201は、撮像素子又はデータ転送部105から入力される画像データに対して画素補正、黒レベル補正、シェーディング補正、傷補正等の処理を行う。センサ補正部201は、処理した画像データをデータ転送部105若しくは光学補正部202又はその両方へ出力する。光学補正部202は、センサ補正部201又はデータ転送部105から入力される画像データに対して倍率色収差補正等の光学レンズに関する補正処理を行う。光学補正部202は、処理した画像データをデータ転送部105又は現像処理部203又はその両方へ出力する。

現像処理部203は、光学補正部202又はデータ転送部105から入力される画像データに対して、ガンマ補正や輝度・色生成等の処理を行い、処理した画像データをデータ転送部105又はNR処理部204又はその両方へ出力する。NR処理部204は、現像処理部203又はデータ転送部105から入力される画像データに対して、データ転送部105からNR(Noise Reduction)処理済みの1フレーム前の画像データを入力して、フレーム間のNR処理を行う。NR処理部204は、処理した画像データをデータ転送部105若しくは幾何学変形部205、又はその両方へ出力する。なお、画像データの入力は、データ転送部105から2画像分のデータを同時に入力してもよい。幾何学変形部205は、NR処理部204又はデータ転送部105から入力される画像データに対して、幾何変形処理、例えば光学レンズの歪みを除去する歪補正等の処理を行う。幾何学変形部205は、処理した画像データをデータ転送部105若しくはコーデック部206、又はその両方へ出力する。

コーデック部206は、幾何学変形部205又はデータ転送部105から入力される画像データに対してJPEG形式やMPEG形式等への圧縮符号化を行う。あるいは、圧縮符号化された画像データが入力された場合、当該画像データに対して、伸長処理を行って非圧縮の画像データを作成し、データ転送部105へ出力する。なお、コーデック部の処理の詳細については後述する。

(画像を分割して処理する場合に必要となる画像データの例) 次に、図3(a)〜(b)を参照して、分割した画像データ(ここでは上下2分割)を複数の画像処理プロセッサに入力する場合に、各画像処理ブロックが処理を実行するために必要となるデータ量について説明する。

図3(a)は、マスター側画像処理プロセッサ100で処理される、画像の上半分の画像データを示している。また、図3(b)は、スレーブ側画像処理プロセッサ117で処理される、画像の下半分の画像データを示している。図3(a)において、VIN_Mはマスター側画像処理プロセッサ100の画像処理部102に入力される画像データのライン数を示しており、領域307で示されるVOUT_Mが出力される画像データのライン数を表す。

VADD1_Mは、画像処理部102のセンサ補正部201による処理において使用された後、削除される画像データ領域(301)のライン数を示す。また、VADD2_M、VADD3_Mは、それぞれ光学補正部202、現像処理部203による処理において使用された後に削除される画像データ領域(302〜303)を示す。同様に、VADD4_M、VADD5_M、VADD6_Mは、それぞれNR処理部204、幾何学変形部205、コーデック部206による処理において使用された後に、削除される画像データ領域(304〜306)のライン数を示す。なお、図3(b)に示す、スレーブ側画像処理プロセッサの画像処理部102において処理される画像データについては後述する。

図4は、本実施形態に係るセンサ補正部201で実施されるフィルタ処理のフィルタ係数の例を示す図である。センサ補正部201は、9×9tapのフィルタ係数を有する。センサ補正部201は、現像処理部203に入力される画像データの処理対象画素の画素値p(x,y)と、処理対象画素を中心とする9×9画素の周辺画素からなる参照画素とを用いて、式(1)に示す演算を行い、画素値q(x,y)を出力する。

この例では、センサ補正部201に入力される画像データのライン数VIN_Mに対して、終端の4ライン分に関しては、フィルタ処理で使用される下端側の参照画素が存在しないため、センサ補正部201はフィルタ処理を行うことができない。このため、センサ補正部201から出力される画像データのライン数は、(VIN_M−4)ライン分、すなわち、VADD1_M=4となる。

図4のフィルタ処理を行った場合、同様に上端側で4ライン分、左右端側で4画素分については参照画素が存在せず、フィルタ処理を行うことができないため、入力画像データのサイズに対して、出力画像データのサイズは減少する。なお、以下の説明では、上下分割された際の境界部分のライン数についてのみ記述する。なお、境界部分は、マスター側画像処理プロセッサ100の処理では画像データの下端部、スレーブ側画像処理プロセッサ117では画像データの上端部に該当する。

更に、マスター側画像処理プロセッサ100が具備する光学補正部202の処理ではVADD2_M=9ライン分が必要となる。また、次の現像処理部203の処理では、VADD3_M=13ライン、NR処理部204の処理ではVADD4_M=11ライン、幾何学変形部205の処理ではVADD5_M=135ラインが必要となる。コーデック部206の処理ではVADD6_M=4ライン分が必要となる。したがって、VADD1_MからVADD6_Mまでの合計ライン数として192ラインが必要となる。

仮に、別途図7を参照して後述するような、処理途中のデータを各画像処理プロセッサ間で転送する構成でない場合、上述した192ライン分の余分なデータに対する処理が必要となる。すなわち、出力画像データとしてVOUT_Mライン分のデータ量を確保するため、まず(VOUT_M+192)ライン分の入力画像データを画像処理部102へ入力する必要がある。そして、画像処理部102の各処理部で削除される画像データも含めて前段の処理部において処理する必要がある。

再び図3(b)を参照して、スレーブ側画像処理プロセッサ117の画像処理部102が使用する画像データについて説明する。図3(b)では、VIN_Sはスレーブ側画像処理プロセッサ117の画像処理部102に入力される画像データのライン数を表し、また、領域317で示されるVOUT_Sは出力される画像データのライン数を表している。

図3(b)のVADD1_Sは、センサ補正部201による処理後に削除される画像データ領域の上端部のライン数を示す。同様にVADD2_Sは光学補正部202、VADD3_Sは現像処理部203の処理後に削除される画像データ領域(312、313)を示す。また、VADD4_SはNR処理部204、VADD5_Sは幾何学変形部205、VADD6_Sはコーデック部206の処理後に削除される画像データ領域(314〜316)下端部のライン数を示す。

マスター側の処理において上述したように、各画像処理プロセッサ間で処理途中のデータを転送しない場合、VADD1_SからVADD6_Sまでの合計ライン数である192ラインのデータが必要となる。すなわち、処理途中のデータを各画像処理プロセッサ間で転送しない場合、マスター側画像処理プロセッサ100およびスレーブ側画像処理プロセッサ117は、それぞれが処理する画像データ領域の処理を重複して行う必要がある。

(コーデック部206の構成と各部の動作) 図5は、本実施形態に係るコーデック部206の構成を示している。動き予測部501は、上述した上下分割された上側の画像データを、(例えばデータ転送部105から)マクロブロック単位でクラスタ順に取得する。動き予測部501は、符号化対象画像と、参照フレームバッファ510から入力される参照画像との間でブロックマッチングを行い、動きベクトル検出を行う。動き予測部501は、符号化対象画像と検出された動きベクトル位置の参照画像との間で画素の差分をとり、その差分画像を直交変換部502に出力する。直交変換部502は、入力された差分画像に対して離散コサイン変換を行い、変換係数を生成し、量子化部503に出力する。量子化部503は、送られてきた変換係数に対して、量子化制御部504が出力する量子化パラメータに従って量子化する。量子化された変換係数はエントロピー符号化部505、ならびにローカルデコード画像作成のため逆量子化部506に出力される。エントロピー符号化部505は、量子化後の変換係数に対して可変長符号化を行う。エントロピー符号化部505は、これに動きベクトルや量子化パラメータ、マクロブロックの分割情報などの符号化方式情報を可変長符号化したものを付加し、符号化ストリームを生成する。また、符号化の際にマクロブロックごとの発生符号量を算出し、量子化制御部504に出力する。

量子化制御部504は、量子化パラメータを決定する。量子化制御部504は、符号化を行う当該マクロブロックが画像の分割境界に接しているかどうかを示す情報(画像の境界情報)を取得する。符号化を行うマクロブロックが画像の分割境界に接していない場合には、エントロピー符号化部505から発生符号量を受け取り、目標とする符号量になるように量子化パラメータを決定し、量子化部503に出力する。逆量子化部506は、入力された量子化後の変換係数に対して逆量子化を行い、ローカルデコード用の変換係数を生成する。この変換係数は逆直交変換部507に出力される。逆直交変換部507は、入力された変換係数に対して逆離散コサイン変換を行い、差分画像を生成する。差分画像は動き補償部508に出力される。動き補償部508では、動きベクトル位置の参照画像を参照フレームバッファ510から読み出し、入力された差分画像を加算することにより、ローカルデコード用の画像データを生成する。

動き補償部508によって生成された画像データは、デブロッキング・フィルタ509に出力される。デブロッキング・フィルタ509は、入力された画像データに対してデブロッキング・フィルタをかける。デブロッキング・フィルタ後の画像がローカルデコード画像として参照フレームバッファ510に格納される。

このようにしてコーデック部206は、符号化ストリーム、ローカルデコード画像を生成する。なお、デブロッキング・フィルタ509は、例えばH.264符号化方式に応じたデブロッキング・フィルタ処理を行う。ただし、実際にブロック境界にフィルタ処理を行なうかどうかは、当該ブロック境界の画素値や符号化パラメータによって決定される。

図6は、本実施形態のコーデック部206が処理するマクロブロック境界の構成を示している。601で囲まれる平方向のブロック境界は、画素値p0〜q3で構成されるブロック及び画素値q0〜q3で構成されるブロックが隣接している。同様に602で囲まれる垂直方向のブロック境界は、画素値p0〜q3で構成されるブロック及び画素値q0〜q3で構成されるブロックが隣接している。

H.264符号化方式の規格に準拠する場合、コーデック部206は以下の式(2)の条件が成立したときにブロック境界にデブロッキング・フィルタ処理を行う。

Bs>0 |p0−q0|<α かつ |p1−q0|<β かつ |q1−q0|<β …(2) ここで、Bs値(Boundary Strength)は画像のブロック境界の強度を示す数値であり、p、qとイントラ(画面内)・マクロブロックとの関係で決まる数値である。α、βはそれぞれIndexA、IndexBという値に対するテーブルで定義される。IndexA、IndexBは、量子化パラメータ及びフィルタ強度に対するオフセット値から算出される。

Bs<4の場合には、入力をp1、p0、q0、q1として、4タップのFIRフィルタの処理によりp’0とq’0(p’0はp0、q’0はq0のデブロッキング・フィルタ処理後の画素値)が生成される。また、|p2−p0|<βの場合には、入力をp2、p1、p0、q1として、4タップのFIRフィルタの処理により、p’1(p’1はp1のデブロッキング・フィルタ処理後の画素値)が生成される。また、|q2−q0|<βの場合には、入力をq2、q1、q0、p1として、4タップのFIRフィルタの処理により、q’1(q’1はq1のデブロッキング・フィルタ処理後の画素値)が生成される。

Bs=4の場合には、以下の処理が成される。|p2−p0|<βかつ|p0−p0|<α/4+2の場合、入力をp2、p1、p0、q0、q1として、5タップのFIRフィルタの処理によりp’0が生成される。また、入力をp2、p1、p0、q1として、4タップのFIRフィルタの処理によりp’1が生成される。輝度信号の場合は入力をp3、p2、p1、p0、q0として、5タップのFIRフィルタの処理によりp’2が生成される。それ以外の場合には、入力をp1、p0、q1として、3タップのFIRフィルタの処理によりp’0が生成される。

|q2−q0|<βかつ|p0−p0|<α/4+2の場合、入力をq2、q1、q0、p0、p1として、5タップのFIRフィルタの処理によりq’0が生成される。また、入力をq2、q1、q0、p0として、4タップのFIRフィルタの処理によりq’1が生成される。輝度信号の場合は入力をq3、q2、q1、q0、p0として、5タップのFIRフィルタの処理によりq’2が生成される。それ以外の場合には、入力をq1、q0、p1として、3タップのFIRフィルタの処理によりq’0が生成される。

(本実施形態に係る画像の分割とプロセッサ間の通信処理) 次に、本実施形態に係る画像の分割とプロセッサ間の処理について説明する。すなわち、本実施形態では、各プロセッサに入力する画像データのデータ量を削減するために、図3を参照して説明した画像の分割を行わずに、以下に説明する画像の分割を行う。なお、この画像の分割により、画像処理部102内の各ブロックにおける処理の進行に応じてプロセッサ間で通信を要するが、各通信の方法は共通する。このため、各ブロックの例としてのコーデック部206の処理と、コーデック部206の処理に対応するプロセッサ間の通信を例に説明する。

図7(a)は、マスター側画像処理プロセッサ100に含まれるコーデック部206が処理する画像データの境界領域を画素単位で示している。図中の一つの四形が一画素を表す。図7(b)は、コーデック部206が処理する画像データの境界領域を符号化のブロック単位で示す図である。図7(b)に示す四角形の一つは図7(a)で示した4×4画素の符号化ブロックを表している。図7(a)及び(b)に示す点線701は、画像データを上下分割する際の境界を示し、マスター側画像処理プロセッサ100が点線701より上側の画像データを処理し、スレーブ側画像処理プロセッサ117が点線701より下側の画像データを処理する。本実施形態では、1つの画像を、2つの画像処理プロセッサに入力する共通の画素データ領域が存在しないように分割する。すなわち、図3に示した例ではVADD6_M=0、VADD6_S=0とする。

マスター側画像処理プロセッサ100におけるデブロッキング・フィルタ509が領域702に含まれるブロックを処理する場合、上述の通り、隣接する下側の画像データにおける所定の範囲内の領域703のブロックが必要となる。そのため、マスター側画像処理プロセッサ100におけるデブロッキング・フィルタ509は、スレーブ側画像処理プロセッサ117の通信部104から領域703のブロックを取得することにより、ブロック境界のデブロッキング・フィルタの処理を実行する。なお、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117との間の通信(画像データの転送)は、通信データ制御部115の制御により実行される。領域703のブロックは、スレーブ側画像処理プロセッサ117において幾何学変形部205までの同様の処理が施されているため、(マスター側の)コーデック部206における連続したデブロッキング・フィルタの処理が可能である。

一方、スレーブ側画像処理プロセッサ117のデブロッキング・フィルタ509が領域703に含まれるブロックを処理する場合、隣接する上側の画像データにおける所定の範囲内の領域702のブロックが必要となる。そのため、マスター側画像処理プロセッサ100の通信部104から、領域702へのデブロッキング・フィルタによる処理が済んだブロックを取得し、上下分割に該当するブロック境界のデブロッキング・フィルタの処理を実施する。領域702のブロックは、領域703と同様、マスター側画像処理プロセッサ100において幾何学変形部205まで同様の画像処理が施されているため、(スレーブ側の)コーデック部206における連続したデブロッキング・フィルタの処理が可能である。なお、デブロッキング・フィルタは全てのブロック境界で適応されるわけではないので、適用される箇所のブロックのみ各画像処理プロセッサ間で転送するようにしてもよい。

以上説明したように、本実施形態によれば、1つの画像をマスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117とで分担して処理する場合に、共通する領域を持たない画像データを各プロセッサに入力するようにした。そして、画像処理を実行する各段階の進行に応じて、各々の段階で追加的に必要となる境界付近の画像データを互いのプロセッサ間で通信するようにした。このようにすることで、各プロセッサの画像処理部102内の各ブロックで処理する所定のライン数の分(例えばコーデック部206では図3(a)に示したVADD6_M=4分)を削減することができる。(例えばVADD6_Mの)ライン数分のデータを削減することにより、処理の前段であるセンサ補正部201から幾何学変形部205における余分な領域に対する処理を不要にし、処理時間短縮、低消費電力化を実現することができる。

(第2の実施形態) 次に第2の実施形態について説明する。第2の実施形態では、画像処理部102が動きベクトルを検出するベクトル検出部を備え、当該ベクトル検出部による動きベクトルの検出処理において分割境界を跨いだ、必要なデータを取得する構成を説明する。第2の実施形態に係るデジタルカメラ150の構成は、画像処理部102の内部構成の一部が異なるが、他の構成は第1の実施形態に係るデジタルカメラ150の構成と同様である。このため、同一の構成については同一の符号を付して重複する説明は省略し、相違点について重点的に説明する。

(画像処理部102の構成) まず、図8を参照して、本実施形態に係る画像処理部102の構成を説明する。第1の実施形態と同様に、現像処理部203が処理した画像データはNR処理部204若しくはデータ転送部105又はその両方へ出力される。また、NR処理部204が処理した画像データは、データ転送部105若しくは縮小処理部801又はその両方へ出力される。

縮小処理部801は、予め設定された比率に従って画像データの縮小処理を行い、縮小した画像データをデータ転送部105へ出力する。縮小された画像データは、データ転送部105を介してベクトル検出部802へ入力される。ベクトル検出部は、現在のフレームと、現在のフレームの前のフレームとをテンプレートマッチングすることにより、各点(各座標位置)におけるベクトルデータを検出する。検出したベクトルデータは動画データに対する防振等の処理に使用される。

次に、ベクトル検出部802の処理について説明する。まず、図11では、ベクトル検出部802が読み出すグリッド配置とテンプレート領域等の関係を示している。すなわち、所定のサイズのグリッド1102が、水平及び垂直方向に、それぞれ設定された個数の分だけ配置される(図11の例では、水平5×垂直4の合計20個のグリッドが配置されている)。各グリッドでは、特徴点1103が一つ抽出され、この特徴点1103を中心として、設定されたサイズの矩形状のサーチ領域1105及びテンプレート領域1104が設けられる。

(ベクトル検出部802の構成及び一連の動作) 図9及び図10を参照して、ベクトル検出部802が行うベクトル検出処理の概要を説明しながら、ベクトル検出部802の機能構成例を説明する。なお、以下の一連の動作はシステム114が不揮発性メモリ113に記憶されたプログラムを展開、実行してプロセッサを構成する各部あるいは通信データ制御部115を制御することにより行われる。また、ベクトル検出部802による処理は、例えば分割された入力画像データが、データ転送部105の有するRDDMAC1(921)に入力可能になった場合に開始される。

S1001において、読み出しを制御するRDDMAC1(921)は、ベクトル検出対象となる現フレームの入力画像データ941を、図11に示した所定のグリッド1102のサイズごとにメモリ109から読み出す。なお、メモリ109に記憶されている入力画像データ941は、上述した画像処理部102内の各ブロックにおいて各画像処理が施されている。RDDMAC1(921)によってグリッド単位で読み出された入力画像データ941は、後段ブロックのテンプレートマッチング用画像生成部901と特徴点算出部902とに出力される。

S1002において、テンプレートマッチング用画像生成部901は、ベクトル検出時におけるテンプレートマッチングに使用するテンプレートマッチング用画像を生成し、書き込みを制御するWRDMAC1(931)に出力する。テンプレートマッチング用画像生成部901は、例えばバンドパスフィルタ回路を含み、テンプレートマッチング処理に不要となる画像信号の高周波成分と低周波成分とをカットする。また、テンプレートマッチング処理の演算量を削減するため、テンプレートマッチング用画像生成部901では入力画像データに対して2値化処理を行う。具体的には、入力画像データ941が14bitのビット深度を有する輝度データである場合、バンドパスフィルタ回路によるフィルタ処理では、当該輝度データは閾値判定によって1bitのビット深度を有する2値データに変換される。

S1003において、WRDMAC1(931)は、入力されたテンプレートマッチング用画像データ1(942)を書き出す処理を行う。また、メモリ109には前フレームで生成されたテンプレートマッチング用画像データ2(943)が格納されている。なお、上述したようにテンプレートマッチング用画像データ1(942)とテンプレートマッチング用画像データ2(943)とは2値データである。

S1004において、特徴点算出部902は、S1002及びS1003における処理と並列して、現フレームにおけるグリッド単位の画像データに対して特徴点算出処理を行う。特徴点算出部902は、特徴フィルタ部、特徴評価部、特徴点決定部からなる。特徴フィルタ部は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。特徴フィルタ部は、例えばバンドパスフィルタを用いて不要な画像信号の高周波成分と低周波成分をカットし、水平方向の微分フィルタを適用して得られる信号と、垂直方向の微分フィルタを適用して得られる信号の各々に平滑化フィルタ処理を適用する。更に、特徴評価部は、特徴フィルタ部によってフィルタ処理されたグリッドに対し、画素ごとに2つのエッジの交点や曲率が極大となる曲線状の点など、画素の周辺の微分値が多方向に大きい点を、特徴評価式を用いて評価することにより特徴値として算出する。本実施形態に係る特徴評価部の処理の一例としてのShi and Tomasiの手法について説明する。まず、特徴点算出部902は、水平微分フィルタと垂直微分フィルタを施した結果から、自己相関行列Hを作成する。自己相関行列Hの式を、式(3)に示す。

式(3)では、Ixは水平微分フィルタを施した結果を、Iyは垂直微分フィルタを施した結果をそれぞれ表し、ガウシアンフィルタGを畳み込む。次に、特徴点算出部902は、式(4)に示すShi and Tomasiの特徴評価式を算出する。

式(4)は、式(3)における自己相関行列Hの固有値λ1、λ2のうち、小さい方の固有値を特徴値とすることを示す。

特徴点決定部は、特徴評価部によって画素ごとに算出された、グリッド内において最も大きい特徴値を持つ画素を特徴点と決定する。なお、決定された特徴点は、特徴点算出部902の内部メモリやレジスタにグリッドごとに格納される。当該メモリやレジスタは、前フレームの特徴点と現フレームの特徴点とを格納するための容量を有している。そして、特徴点決定部は、対応するグリッドのテンプレートマッチング処理が開始される際に、前フレームで算出された特徴点を特徴点座標情報951としてRDDMAC2(922)に入力する。

S1005において、RDDMAC2(922)は、所定のサイズの矩形領域を、現フレームで生成されたテンプレートマッチング用画像データ1及び前フレームで生成されたテンプレートマッチング用画像データ2から読み出す。所定のサイズの矩形領域は、入力された前フレームで算出された特徴点座標情報951に基づいて、特徴点1103を中心とした領域として抽出される。なお、テンプレートマッチング用画像データ1からサーチ領域1105を読み出し、前フレームで生成されたテンプレートマッチング用画像データ2から、テンプレート領域1104を読み出す。読み出された各画像データはそれぞれ、サーチ領域画像データ953、テンプレート領域画像データ954として、テンプレートマッチング処理部903へ入力される。

S1006において、テンプレートマッチング処理部903は、入力されたサーチ領域画像データ953とテンプレート領域画像データ954との相関値を算出し、算出した相関値に基づいてベクトル値を算出する。本実施形態では、相関値の算出方法として、例えば差分絶対値和(Sum of Absolute Difference、以下SADと略す)を求める。

ここで、f(i,j)はテンプレート領域画像データ954内の座標(i,j)における画素値を表しており、g(i,j)はサーチ領域画像データ953において相関値算出の対象となる領域内の各画素値を表す。相関値算出対象領域は、テンプレート領域画像データ954と同じ大きさである。SADでは、それぞれの領域内の各画素値f(i,j)及びg(i,j)について差の絶対値を計算し、その総和を求めることにより相関値S_SADを得る。従って、相関値S_SADの値が小さいほど領域間の輝度値の差分が小さく、それぞれの相関値算出領域内のテクスチャが類似していることを表す。換言すれば、相関値S_SADが最も小さくなる変位を求めることにより、画像の間の対応する領域を探索することができる。このとき、サーチ領域画像データ953とテンプレート領域画像データ954とは1bitの2値データであるため、相関値S_SADを求めるための演算量は少なくて済む利点がある。なお、本実施形態では、相関値の一例としてSADを使用しているが、これに限るものではなく、差分二乗和(SSD)や正規化相互相関(NCC)等の他の相関値を用いても良い。テンプレートマッチング処理部903は、相関値が最小値となる位置に基づいてグリッドの動きベクトルを算出し、算出したベクトル情報955をWRDMAC2(932)に出力する。

S1007において、WRDMAC2(932)は、データバス107を介してメモリ109に対してベクトル情報955を書き出す。ベクトル検出部802は、WRDMAC2(932)によるベクトル情報955のメモリ109への書き込みが終了すると、動きベクトル検出処理を終了する。なお、上述の処理では1フレーム分の処理を説明したが、各フレームについて同様の処理を施してベクトルデータを算出する。

(ベクトル検出処理及びデータ通信処理に係る一連の動作) 次に、図12を参照して、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117の、上下分割した画像データの境界領域に関するベクトル検出処理及びプロセッサ間のデータ通信処理について説明する。

一連の動作の説明するために、図13及び図14を参照して、ベクトル検出部802が処理を行う画像データ領域について説明する。図14は、図3と同様に、マスター側画像処理プロセッサ100とスレーブ側画像処理との間で画像データの通信を行わない場合に必要となるデータ量を示している。図14(a)は、マスター側画像処理プロセッサ100で処理される上半分の画像データを示し、図14(b)は、スレーブ側画像処理プロセッサ117で処理される下半分の画像データを示す。図14(a)における、VIN_Mはマスター側画像処理プロセッサ100の画像処理部102に入力される画像データのライン数を、領域1407で示されるVOUT_Mは出力される画像データのライン数を表す。更に、VADD1_Mは、センサ補正部201の処理で使用後、削除される画像データ領域上端部のライン数を示す。同様にVADD2_Mは光学補正部202、VADD3_Mは現像処理部203、VADD4_MはNR処理部204の処理で使用後、削除される画像データ領域(1401〜1404)上端部のライン数を示す。また、VADD5_Mは、縮小処理部801、VADD6_Mはベクトル検出部802の処理で使用後、削除される画像データ領域(1405〜1406)上端部のライン数を示す。

同様に、図14(b)においてVIN_Sはスレーブ側画像処理プロセッサ117の画像処理部102に入力される画像データのライン数を、領域1417で示されるVOUT_Sは出力される画像データのライン数を表す。更に、VADD1_Sは、センサ補正部201の処理で使用後、削除される画像データ領域下端部のライン数を示す。同様にVADD2_Sは光学補正部202、VADD3_Sは現像処理部203、VADD4_SはNR処理部204の処理で使用後、削除される画像データ領域(1411〜1414)下端部のライン数を示す。VADD5_Sは縮小処理部801、VADD6_Sはベクトル検出部802の処理で使用後、削除される画像データ領域(1415〜1416)下端部のライン数を示す。

撮像素子からのアナログ信号をAD変換器でデジタル信号に変換して出力する画像データが、例えば水平3840×垂直2160画素である場合を例に説明する。マスター側画像処理プロセッサ100のAD変換器から出力された画像データの上半分のデータは、マスター側画像処理プロセッサの画像処理部102に転送される。一方、画像データの下半分のデータは、各処理プロセッサの通信部104を介して、スレーブ側画像処理プロセッサ117に転送される。

これに対して、本実施形態では、マスター側画像処理プロセッサ100とスレーブ側画像処理プロセッサ117との間で画像データを通信する。別途後述するように、通信データ制御部115が、画像データの上側のどの領域をマスター側画像処理プロセッサ100で処理し、下側のどの領域までスレーブ側画像処理プロセッサ117に転送するかを判定する。通信データ制御部115の処理内容の詳細は後述する。

本実施形態では、例えば水平3840×垂直2160画素の画像データに対して、縮小処理部801が水平、垂直方向共に1/2に縮小処理を行う。通信データ制御部115の判定により、水平方向が丁度半分の位置で各々の画像処理プロセッサに転送された場合、縮小処理部801は、図13に示す水平1920×垂直540画素の画像データを出力する。

上述したベクトル検出処理の通り、前フレームで取得した特徴点を中心に前フレームの2値画像データからテンプレート領域画像データ、現フレームの2値画像データからサーチ領域画像データを読み出してテンプレートマッチングを行う。なお、テンプレート領域画像データは、例えば水平48×垂直48画素、サーチ領域画像データは、例えば水平96×垂直96画素である。

図13に示す点線より上側の540画素のデータは、マスター側画像処理プロセッサ100内で処理するデータである。しかし、例えばグリッド1351についてみると、マスター側画像処理プロセッサ100では保持していない領域のデータが必要となる。すなわち、特徴点1331がグリッド1351の下端寄りに存在するため、テンプレート領域1301とサーチ領域1311の下端の斜線領域1321(例えば水平96×垂直32画素)はマスター側画像処理プロセッサ100の処理対象外となる。同様に、グリッド1353では、特徴点1333がグリッドの下端寄りに存在するため、テンプレート領域1303とサーチ領域1313の下端の斜線領域1323(水平96×垂直42画素)はマスター側画像処理プロセッサ100の処理対象外となる。

反対に、図13に示す点線より下側の540画素のデータは、スレーブ側画像処理プロセッサ117内で処理するデータであるが、例えばグリッド1352では、スレーブ側画像処理プロセッサ117では保持していない領域のデータが必要となる。すなわち、グリッド1352の特徴点1332がグリッドの上端寄りに存在するため、テンプレート領域1302とサーチ領域1312の上端の斜線領域1322(水平96×垂直38画素)はスレーブ側画像処理プロセッサ117の処理対象外となる。同様に、グリッド1354では、特徴点1334がグリッドの上端寄りに存在するため、テンプレート領域1304とサーチ領域1314(水平96×垂直32画素)の上端の斜線領域1324はスレーブ側画像処理プロセッサ117の処理対象外となる。

次に、図12を参照して、図13に示した状況における、画像データの境界領域に関するベクトル検出処理及びプロセッサ間のデータ通信処理について説明する。なお、以下の一連の動作はシステム114が不揮発性メモリ113に記憶されたプログラムを展開、実行してプロセッサを構成する各部あるいは通信データ制御部115を制御することにより行われる。

S1200において、通信データ制御部115は、ベクトル検出部802の特徴点算出部902で算出された直前のフレームの特徴点座標を用いて、テンプレート領域画像データとサーチ領域画像データを算出する。図13に示した例では、例えば特徴点1331に対して、サーチ領域1311とテンプレート領域1301を算出する。

S1201において、通信データ制御部115は、画像データを上下分割した上側の画像データに含まれるグリッドのテンプレート領域画像データとサーチ領域画像データが、下側の画像データの領域に含まれるかを判定する。図13に示した例では、通信データ制御部115は、テンプレート領域画像データ1301、1303とサーチ領域画像データ1311、1313の斜線領域1321、1323が下側の画像データの領域に含まれると判定する。同様に、通信データ制御部115は、上下分割した下側の画像データに含まれるグリッドのテンプレート領域画像データとサーチ領域画像データが、上側の画像データの領域に含まれるかを判定する。図13に示した例では、通信データ制御部115は、テンプレート領域画像データ1302、1304とサーチ領域画像データ1312、1314の斜線領域1322、1324が上側の画像データの領域に含まれると判定する。通信データ制御部115は、テンプレート領域画像データ又はサーチ領域画像データが反対側の画像データの領域に含まれると判定した場合、S1202に処理を進め、そうでない場合にはS1209に処理を進める。

S1202において、通信データ制御部115は、入力画像データのビット深度bitAと、テンプレート領域画像データ、サーチ領域画像データのビット深度であるbitBを判定する。前述のとおり、bitA=14bit、bitB=1bitとなる。また、S1203において、通信データ制御部115は、入力画像データの画像解像度sizeAとテンプレート領域画像データ及びサーチ領域画像データの画像解像度sizeBを判定する。前述のとおり、縮小処理部801において、入力画像データを1/2倍に縮小しており、2値データの画像サイズで画素数を算出するため、sizeA=2、sizeB=1となる。

S1204において、通信データ制御部115は、上下分割した境界を越えたテンプレート領域画像データとサーチ領域画像データを含む画像データをセンサ補正部201から入力して処理した際に必要なラインの画素数pixnumAを算出する。ここで、マスター側画像処理プロセッサ100の画素数をPixnumA_M、スレーブ側画像処理プロセッサ117の画素数をPixnumA_Sとする。図13に示した例では、斜線領域1321及び1323を含む分割境界からのライン単位の画素数となる。すなわち、垂直方向の画素数が大きい斜線領域1323の42画素であるため、マスター側画像処理プロセッサ100の画素数PixnumA_Mは1920×42=80640画素となる。同様に、PixnumA_Sは、斜線領域1322、1324を含むライン単位の画素数となる。すなわち、垂直方向の画素数が大きい斜線領域1322の38画素であるため、スレーブ側画像処理プロセッサ117の画素数PixnumA_Sは1920×38=72960画素となる。

次に、テンプレート領域画素データとサーチ領域画素データの画素数pixnumBを算出する。ここで、マスター側画像処理プロセッサ100の画素数をPixnumB_M、スレーブ側画像処理プロセッサ117の画素数をPixnumB_Sとする。図13において、斜線領域1321(水平96×垂直32画素)と、斜線領域1323(水平96×垂直42画素)のテンプレート領域画像データとサーチ領域画像データの画素数が、PixnumB_Mとなる。従って、PixnumB_Mは、96×32+48×8+96×42+48×18=8352画素となる。同様に、斜線領域1322(水平96×垂直38画素)と、斜線領域1324(水平96×垂直32画素)のテンプレート領域画像データとサーチ領域画像データの画素数が、PixnumB_Sとなる。従って、PixnumB_S=96×38+48×10+96×32+48×16=7968画素となる。

S1205において、通信データ制御部115は、処理に必要なラインの処理データ量datasizeAとテンプレート領域画像データとサーチ領域画像データの処理データ量datasizeBとを算出する。具体的には、通信データ制御部115は、datasizeAとdatasizeBとを、S1202〜1204において得られたビット深度、画像解像度、画素数を考慮して算出する。なお、マスター側画像処理プロセッサ100の処理データ量をdatasizeA_M、datasizeB_Mとし、スレーブ側画像処理プロセッサ117の処理データ量をdatasizeA_S、datasizeB_Sとする。

図13に示した例では、マスター側画像処理プロセッサ100の処理データ量は、 ・datasizeA_M=bitA×sizeA^2×PixnumA_M=14×2^2×80640=4515840[bit] ・datasizeB_M=bitB×sizeB^2×PixnumB_M=1×1^2×8352=8352[bit] である。

一方、スレーブ側画像処理プロセッサ117の処理データ量は、 ・datasizeA_S=bitA×sizeA^2×PixnumA_S=14×2^2×72960=4085760[bit] ・datasizeB_S=bitB×sizeB^2×PixnumB_S=1×1^2×7968=7968[bit] となる。

従って、これらを合算した処理データ量は、datasizeA=datasizeA_M+datasizeA_S=8601600[bit]、datasizeB=datasizeB_M+datasizeB_S=16320[bit]となる。

S1206において、通信データ制御部115は、S1205で算出した処理データ量を比較する。通信データ制御部115は、datasizeA

S1207において、マスター側画像処理プロセッサ100の通信部104は、(システム制御部114の指示に応じて)入力画像データの内、上下分割された下半分の画像データをスレーブ側画像処理プロセッサ117に転送する。併せて入力画像データの内、上下分割された上半分の画像データの内、テンプレート領域画像データ及びサーチ領域画像データを含むライン単位の画像データをスレーブ側画像処理プロセッサ117に転送する。図13に示した例では、斜線領域1322を含む38画素ライン分と下半分の画像データの540画素ラインをスレーブ側画像処理プロセッサ117に転送する。

S1208において、マスター側画像処理プロセッサ100又はスレーブ側画像処理プロセッサ117は、上下分割された半分の画像データと、テンプレート領域画像データ及びサーチ領域画像データを含むラインの画像データとを、画像処理部102内の画像処理モジュールで順次処理する。すなわち、マスター側画像処理プロセッサ100は、上下分割された上半分の画像データと、テンプレート領域画像データ及びサーチ領域画像データを含むラインの画像データとを順次処理する。例えば縮小処理部801は、図14(a)で示したVOUT_M=540とVADD6_M=42を含むライン分の出力画像データを処理し、処理後のデータをベクトル検出部802が処理する。また、スレーブ側画像処理プロセッサ117では、上下分割された下半分の画像データと、テンプレート領域画像データ及びサーチ領域画像データを含むラインの画像データを順次処理する。縮小処理部801では、図14(b)で示したVOUT_S=540とVADD6_S=38を含むライン分の画像データを処理し、処理後のデータをベクトル検出部802が処理する。

S1209において、マスター側画像処理プロセッサ100の通信部104は、スレーブ側画像処理プロセッサ117のベクトル検出部802で必要なテンプレート領域画像データ及びサーチ領域画像データをスレーブ側画像処理プロセッサ117に転送する。同様にスレーブ側画像処理プロセッサ117の通信部104は、マスター側画像処理プロセッサ100のベクトル検出部802で必要なテンプレート領域画像データ及びサーチ領域画像データをマスター側画像処理プロセッサ100に転送する。図13の例では、マスター側画像処理プロセッサ100の通信データ制御部115は、ベクトル検出部802で処理された2値データの内、斜線領域1322及び1324の画像データをスレーブ側画像処理プロセッサ117に転送する。一方、スレーブ側画像処理プロセッサ117の通信データ制御部115は、ベクトル検出部802で処理された2値データの内、斜線領域1321及び1323の画像データをマスター側画像処理プロセッサ100に転送する。

S1210において、マスター側画像処理プロセッサ100では、上下分割された上半分の画像データを画像処理部102内の各ブロックで順次処理する。例えば縮小処理部801は、図14(a)で示したVOUT_M=540のライン分の画像データを処理し、処理後のデータをベクトル検出部802が処理する。ベクトル検出部802では、(ベクトル検出処理に必要な)上下分割した下半分の画像データに含まれるテンプレート領域画像データとサーチ領域画像データは、スレーブ側画像処理プロセッサ117から転送されたデータを用いる。

一方、スレーブ側画像処理プロセッサ117では、上下分割された下半分の画像データを画像処理部102内の各ブロックで順次処理する。例えば縮小処理部801は、図14(b)に示したVOUT_S=540のライン分の画像データを処理し、処理後のデータをベクトル検出部802が処理する。ベクトル検出部802では、(ベクトル検出処理に必要な)上下分割した上半分の画像データに含まれるテンプレート領域画像データとサーチ領域画像データは、マスター側画像処理プロセッサ100から転送されたデータを用いる。

通信データ制御部115は、S1208又はS1210の処理を完了すると、本一連の動作を終了する。なお、図12で示した一連の動作は、1フレームごとに行っても良いし、複数フレームごとに行っても良い。また、動画の撮影時だけでなく動画を再生する場合にも適用してもよい。更に、動画を再生する場合には、例えばS1205までの処理を予め実行しておいて算出したデータを記録しておくようにしてもよい。また、上述した実施形態では、2つの画像処理プロセッサ間で行う処理について説明したが、3つ以上の画像処理プロセッサの間で行う処理にも適用可能である。また、上述した実施形態では、画像を上下に分割にした場合を例に説明したが、画像を左右に分割する場合や3つ以上に分割した場合にも適用可能である。

以上説明したように本実施形態では、ベクトル検出部802において追加的に必要となるデータ量が枠ごとに算出可能であり、当該追加的に必要となるデータをライン単位で取得する場合よりもデータ量が少なくなる場合、枠ごとに転送するようにした。このようにすれば、(画像処理部102の)処理の前段に用いられるブロックにおける処理画像データ量を削減することができるとともに、転送するデータ量を削減し、処理全体の処理時間短縮、低消費電力化が可能になる。

(その他の実施形態) 本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

100…マスター側画像処理プロセッサ、102…画像処理部、104…通信部、115…通信データ制御部、117…スレーブ側画像処理プロセッサ

QQ群二维码
意见反馈