(57)【要約】【課題】バストラフィックを抑制しつつ、画像データを高速に処理することができるカメラ装置を提供する。【解決手段】画像メモリ50は、メモリバス70に接続され、ソース画像右220及びソース画像左210を記憶する。メモリアクセス管理40は、メモリバス70及び内部バス80に接続され、メモリバス70を介して画像メモリ50からソース画像右220及びソース画像左210をそれぞれ読み出し、読み出したソース画像右220及びソース画像左210を内部バス80に出力する。処理部A30、処理部B31及び処理部C32は、内部バス80に接続され、内部バス80に出力された画像データを処理する。【選択図】図１
2018067836.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスと、
前記第１のバスに接続され、画像データを記憶する第１のメモリと、
第２のバスと、
前記第１のバス及び前記第２のバスに接続され、前記第１のバスを介して前記第１のメモリから前記画像データを読み出し、読み出した前記画像データを前記第２のバスに出力するメモリアクセス管理部と、
前記第２のバスに接続され、前記第２のバスに出力された前記画像データを処理する複数の処理部と、
を備えることを特徴とするカメラ装置。
【請求項２】
請求項１に記載のカメラ装置であって、
前記メモリアクセス管理部は、
前記画像データを１ラインずつ読み出し、読み出した前記画像データを１ラインずつ前記第２のバスに出力する
ことを特徴とするカメラ装置。
【請求項３】
請求項２に記載のカメラ装置であって、
前記複数の処理部は、
少なくとも第１の処理部と第２の処理部を含み、
前記第１の処理部は、
第１のラインから第２のラインまでの前記画像データを受信し、受信した前記画像データの歪みを補正し、
前記第２の処理部は、
前記第１のラインと前記第２のラインの間に位置する第３のラインから、第４のラインまでの前記画像データを受信し、受信した前記画像データの歪みを補正する
ことを特徴とするカメラ装置。
【請求項４】
請求項３に記載のカメラ装置であって、
第２のメモリを備え、
前記メモリアクセス管理部は、
前記第１の処理部が前記画像データを受信でき、かつ、前記第２の処理部が前記画像データを受信できない場合、前記第３のラインから前記第２のラインまでの前記画像データを前記第２のメモリに記憶し、前記第２のラインの次のライン以降の前記画像データの読み出しを中止し、
前記第２の処理部が前記画像データを受信できるようになった場合、前記第２のメモリに記憶された前記第３のラインから前記第２のラインまでの前記画像データを前記第２のバスに出力する
ことを特徴とするカメラ装置。
【請求項５】
請求項４に記載のカメラ装置であって、
前記複数の処理部は、それぞれ、
処理の実行状態を検知する処理管理部を備え、
前記メモリアクセス管理部は、
それぞれの前記処理管理部によって検知された前記実行状態からそれぞれの前記処理部が前記画像データを受信できるか否かを判定する
ことを特徴とするカメラ装置。
【請求項６】
請求項１に記載のカメラ装置であって、
前記メモリアクセス管理部が前記第１のメモリから読み出すデータの量は、前記複数の処理部のそれぞれが処理するデータの量の総和よりも少ない
ことを特徴とするカメラ装置。
【請求項７】
請求項１に記載のカメラ装置であって、
前記複数の処理部は、それぞれ、
互いに異なる領域の前記画像データを処理し、
それぞれの前記領域は、
他の前記領域と重なる部分を有し、
前記メモリアクセス管理部は、
前記領域に対応する優先度に従って、前記領域の前記画像データを読み出し、読み出した前記領域の前記画像データを前記第２のバスに出力する
ことを特徴とするカメラ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ装置に関する。
【背景技術】
【０００２】
車両の走行安全性を向上させるために、車両に搭載したカメラで前方の障害物を検知して、その障害物に衝突する可能性がある場合は、ドライバへの警報や自動ブレーキを行うシステムが研究されている。
【０００３】
車両の前方を監視するセンサとして、ミリ波レーダー、レーザレーダ、カメラなどがある。カメラの種類としては、単眼カメラと、複数のカメラを使用したステレオカメラがある。ステレオカメラは、所定の間隔の２つのカメラで撮影された重複領域の視差を利用して、撮影された物体までの距離を計測することができる。このため、前方の物体までの衝突危険度を的確に把握することができる。
【０００４】
ステレオカメラは、２つのカメラで撮影された画像の視差を求めて、その視差を距離に変換する。視差を求めるためには、２つのカメラ間の画像のマッチング判定を行う必要がある。このマッチング処理は演算量が多いためハードウェアで処理する方式が考案されている。しかし今後、カメラの撮影画素数の増加や、高フレームレート化が進むことが予想され、視差演算の更なる高速化が必要になってくる。
【０００５】
そこで、幾何補正処理、テクスチャ検出処理、視差演算処理などを小領域ごとに並列処理を行い、高速化を実現する方法が提案されている（例えば、特許文献１参照）。
【０００６】
また、複数の処理モジュールを持ち、複数の領域に分割された画像メモリの各領域ごとに並列画像処理を行う方法が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１８０１４号公報
【特許文献２】特開２００７−７２８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、ステレオカメラの視差の算出に必要な演算を細かいステップに分割して、それらの演算をパイプライン化して高速処理を実現している。この方法によれば、並列処理される演算が高速化され、その演算に必要な画像データ量も増える。そのため更なる高速化のためパイプライン処理段数を増やしていけば、メモリのバストラフィックが増大し、処理速度の向上を妨げるという課題がある。
【０００９】
特許文献２では、同じ演算機能を持った複数の機能モジュールを用意して、それらを並列動作させることで高速化を実現している。この方法によれば、機能モジュールの数に応じて演算は高速化が可能になる。しかし、機能モジュールが増えるほどメインメモリのバストラフィックが増大し、高速化を妨げるという課題がある。
【００１０】
本発明の目的は、バストラフィックを抑制しつつ、画像データを高速に処理することができるカメラ装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、第１のバスと、前記第１のバスに接続され、画像データを記憶する第１のメモリと、第２のバスと、前記第１のバス及び前記第２のバスに接続され、前記第１のバスを介して前記第１のメモリから前記画像データを読み出し、読み出した前記画像データを前記第２のバスに出力するメモリアクセス管理部と、前記第２のバスに接続され、前記第２のバスに出力された前記画像データを処理する複数の処理部と、を備える。
【発明の効果】
【００１２】
本発明によれば、バストラフィックを抑制しつつ、画像データを高速に処理することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】ステレオカメラ装置の機能ブロック図である。
【図２】アフィン変換処理の説明図である。
【図３】アフィン変換処理による画像メモリの重複アクセスを示す図である。
【図４】視差演算の説明図である。
【図５】画像メモリの区分と処理部の分担を説明するための図である。
【図６】メモリアクセス管理のブロック図である。
【図７】処理管理のブロック図である。
【図８】画像メモリのアクセスと処理部へのデータ配信のタイムチャートの例を示す図である。
【図９】メモリアクセス管理の処理フローである。
【図１０】処理管理のブロック図である。
【図１１】メモリアクセス管理にローカルメモリを設けた第２の実施形態のブロック図である。
【図１２】図１１の動作タイムチャートの例を示す図である。
【図１３】メモリバッファの動作と演算処理の処理期間の例を示す図である。
【図１４】画像データの領域と優先度の対応関係を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を用いて、本発明の第１〜第２の実施形態によるステレオカメラ装置（カメラ装置）の構成及び動作について説明する。ステレオカメラ装置は、例えば、車外の障害物の認識等に用いられる車載ステレオカメラ装置である。なお、各図において、同一符号は同一部分を示す。
【００１５】
（第１の実施形態）
図１は、ステレオカメラ装置10のブロック図を示したものである。撮影部20として右カメラ22と左カメラ21の２つのカメラを持つ。撮影部20は、左カメラ21及び右カメラ22が撮影した画像を輝度補正やノイズ除去を行った後、メモリバス70を経由して、画像メモリ50の中のソース画像右220とソース画像左210の領域に書き込む。このようにして書き込まれたソース画像右220とソース画像左210は、メモリアクセス管理40によって内部バス80に転送される。
【００１６】
換言すれば、画像メモリ50（第１のメモリ）は、メモリバス70（第１のバス）に接続され、ソース画像右220及びソース画像左210（画像データ）を記憶する。メモリアクセス管理40（メモリアクセス管理部）は、メモリバス70及び内部バス80（第２のバス）に接続され、メモリバス70を介して画像メモリ50からソース画像右220及びソース画像左210をそれぞれ読み出し、読み出したソース画像右220及びソース画像左210を内部バス80に出力する。
【００１７】
処理部A30、処理部B31、処理部C32（複数の処理部）に代わり、メモリアクセス管理40が画像メモリ50から画像データを読み出すため、ある領域の画像データについて処理を行う処理部が複数ある場合に、メモリバス70のトラフィックが抑制される。また、メモリアクセス管理40が画像データを内部バス80に出力するため、複数の処理部が適宜、並列処理を行うことができる。これにより、画像データを高速に処理することができる。
【００１８】
メモリアクセス管理40は、制御信号103によって、撮影部20が画像メモリ50に書き込んだ画像の量を検知し、画像メモリ50のアクセスタイミングを制御する。またメモリアクセス管理40は、制御信号100、101、102によって、各処理部の実行状態を検知し、各処理部が画像データの受信が可能な状態かどうかを判定する。
【００１９】
換言すれば、処理管理部としての処理管理A300、B310、C320はそれぞれ、処理部A30、処理部B31、処理部C32の処理の実行状態を検知する。メモリアクセス管理40（メモリアクセス管理部）は、制御信号100、101、102を介して、処理部A30、処理部B31、処理部C32の処理の実行状態を取得し、取得した実行状態から処理部A30、処理部B31、処理部C32が画像データを受信できるか否かを判定する。これにより、メモリアクセス管理40は、画像データを処理する処理部が画像データを受信できる場合に、画像データを配信することができる。
【００２０】
処理部A30は、内部バス80からソース画像右220とソース画像左210のデータを受け取り、メモリバッファA301に格納する。格納された画像データはアフィン変換A302でアフィン変換処理を行い歪み補正を行った後、視差演算A303で左右の画像の視差を計算し視差データを算出する。算出された視差データは画像メモリ50の視差画像502の領域に書き込まれる。
【００２１】
換言すれば、メモリバッファA301は、内部バス80（第２のバス）に出力された画像データを記憶する。アフィン変換A302（アフィン変換部）は、メモリバッファA301に記憶された画像データをアフィン変換する。視差演算A303（視差演算部）は、アフィン変換A302によってアフィン変換された画像データから視差を演算する。
【００２２】
処理管理A300は内部バス80の画像データをメモリバッファA301に取り込むための制御を行う。処理部B31と処理部C32は処理部A30と同じ機能を持ち、これらが並列処理を行うことで、高速な画像処理を実現する。
【００２３】
換言すれば、処理部A30、処理部B31及び処理部C32（複数の処理部）は、内部バス80（第２のバス）に接続され、内部バス80に出力された画像データを処理する。
【００２４】
また、CPU60はステレオカメラ装置10の制御を行いながら、視差画像502を用いて障害物の検知などの処理を行う。
【００２５】
また、ステレオカメラ装置10では、CPU60、撮影部20、メモリアクセス管理40、処理部A30、処理部B31、処理部C31、内部バス80が同一のSoC(System on a Chip)90に搭載されることを想定している。SoC90の各処理部は、メモリバス70経由で画像メモリをアクセスする。従って、システムの高速化のためには、メモリバス70のバストラフィックを低減させる必要がある。
【００２６】
図２は、アフィン変換A302の処理の概要を示したものである。左カメラ21及び右カメラ22が撮影した画像は、レンズによって画像の歪みが発生し、その歪みを持ったまま、ソース画像右220、ソース画像左210に書き込まれる。図２のソース画像右220の画像は、矩形パターンを撮影した時の歪みの例を示したものである。この画像をアフィン変換A302でアフィン処理を行うとアフィン変換後右2209の画像のように、正しい矩形パターンに変換される。この処理は、ソース画像左210に対しても同様に行う。また、アフィン変換B312、アフィン変換C322も同じ機能を持つ。
【００２７】
図３は、アフィン変換A302が変換処理を行う時のメモリアクセスの例を示したものである。ソース画像右220の中の曲線2204をアフィン変換後右2209の直線2206に変換する例では、Aブロックライン2201の領域の画像データを読み込んで、その領域全体のアフィン変換処理を行う。また、曲線2205を直線2207に変換する場合は、Bブロックライン2202の領域を読み込んで処理を行う。この時に、Aブロックライン2201とBブロックライン2202は重複ライン2203で示す領域が重なっている。
【００２８】
換言すれば、処理部A30及び処理部B31（複数の処理部）は、それぞれ、互いに異なる領域の画像データを処理する。それぞれの領域は、他の領域と重なる部分を有する。
【００２９】
例えば、Aブロックライン2201を処理部A30が、Bブロックライン2202を処理部B31が分担して処理すると、前記重複ライン2203の画像データは、処理部A30と処理部B31の両方に読み込まれることになる。従って、処理部A30と処理部B31が独自に画像メモリ50をアクセスする場合は、前記重複ライン2203の分だけメモリバス70のバストラフィックが増大することになる。
【００３０】
そのため、本実施形態では、メモリアクセス管理40が各処理部の代わりに画像メモリ50をアクセスし、そのアクセスしたデータを各処理部に配信することで、メモリバス70のトラフィックの増加を防止する。
【００３１】
図４は、視差演算A303の視差演算処理を示したものである。右カメラ22が撮影した画像を基準画像とし、例えば8画素x 8画素のような基準ブロック画像221を定義する。ブロック画像のサイズはこの例に限るものではない。一方、左カメラ21が撮影した画像の中で、前記基準ブロック画像221と同じ縦位置（Y座標）と横位置（X座標）を基準として、探索幅（例えば128画素）の参照画像を選択する。その後、前記基準ブロック画像221と前記参照画像との差分を計算する。この差分計算はSADと呼ばれ、次の計算を行う。
【００３２】
【数１】
2018067836.tif 000003
【００３３】
但し、Iは前記参照画像の中の8x8画像ブロック、Tは前記基準ブロック画像221の画像データであり、i,jは画像ブロック内の座標である。１つの視差を算出するために、前記参照画像の参照位置を１つずつずらしながら前記探索幅の分だけ演算を行い、最もSAD値が小さくなる位置を探索する。
【００３４】
図４に示す、車両の前方窓から見た実際の風景230には、前方車両200がある。右カメラ22で撮影したソース画像右220と、左カメラ21で撮影したソース画像左210がある時、前方車両200の一部201は、ソース画像右220では基準ブロック画像221の位置に撮影され、ソース画像左210では参照ブロック画像211の位置に撮影される。
【００３５】
この結果、基準ブロック画像221の位置と参照ブロック画像211には視差dが生じる。この視差dは、前方車両200がステレオカメラ装置10に近い場合は大きい値となり、遠いものは小さい値となる。このように求めた視差を、画像全体で求める。この視差dを用いて、三角測量の原理で前方車両200（被写体）からステレオカメラ装置10までの距離を測定することが出来る。視差dから距離Zは次の式で求められる。
【００３６】
【数２】
2018067836.tif 000004
【００３７】
但し、fは右及び左カメラの焦点距離、Bは右カメラ22と左カメラ21の距離（基線長）である。また、視差データを3次元変換するために、上記Zを求めた地点の3次元上のX,Y方向の距離を次の式で表す。
【００３８】
【数３】
2018067836.tif 000005
【００３９】
【数４】
2018067836.tif 000006
【００４０】
但し、xrはソース画像右220上でのx座標、yrはソース画像右220上でのy座標である。以上のように、ステレオカメラ装置10で撮影した画像によって、被写体の3次元空間上の位置（X,Y,Z）をステレオカメラ装置10からの距離Zで求めることができる。
【００４１】
図５は、画像メモリ50のソース画像と各処理部の分担について説明したものである。ソース画像右220をブロックライン単位で横方向に分割する。ブロックライン2210は処理部A30、ブロックライン2211は処理部B31、ブロックライン2212は処理部C32が処理を行う。ブロックライン2213は処理部A30が担当し、以降、ブロックラインごとに処理部A30から処理部C32まで順に分担する。また、重複ライン2220は処理部A30と処理部B31の両方に必要な領域で、重複領域2221は処理部B31と処理部C32の両方に必要な領域である。ソース画像左210についても同じように分割する。
【００４２】
図６はメモリアクセス管理A40の構成を示したものである。メモリアクセス管理A40が画像メモリ50から画像データを読み出す時に使用するメモリバス70は、メモリアドレスバス71メモリデータバス72により構成される。アクセス制御4010は、制御信号103により画像メモリ50のソース画像右220とソース画像左210に1ラスタ（１ライン）以上の画像が書き込まれたことを検知し、画像メモリ50の中のソース画像右220のアドレスをメモリアドレスバス71に出力し、画像メモリ50はそのアドレスが示すデータをメモリデータバス72に出力する。その出力されたデータをデータバッファ4013に取り込む（記憶する）。
【００４３】
この後、制御信号100、101、102により各処理部がデータの受信が可能になったことを確認して、画像メモリ50から読み込んだデータのアドレスをアドレスバッファ4012に入れ、内部バス80の内部アドレスバス81に出力する。また内部データバス82には、データバッファ4013のデータを出力する。ソース画像右220の１ラスタ分のデータのアクセスが終了したら、ソース画像左210の１ラスタ分のデータをアクセスする。以降、ソース画像右220とソース画像左210を交互にアクセスする。
【００４４】
換言すれば、メモリアクセス管理A40（メモリアクセス管理部）は、画像データを１ラインずつ読み出し、読み出した画像データを１ラインずつ内部バス80（第２のバス）に出力する。これにより、複数の処理部は、それぞれ、内部バス80に出力された１ラインの画像データを適宜受信することができる。
【００４５】
図７は、処理部A30の中の処理管理A300の構成を示したものである。内部バス80の内部アドレスバス81は比較器3002と比較器3004に接続される。比較器3002は開始アドレス3001と大小関係を比較する。開始アドレス3001は、処理部A30が処理すべきデータの領域の開始アドレスを示しており、比較器3002で開始アドレス3001以上のアドレスを内部アドレスバス81が示していることを判定する。
【００４６】
終了アドレス3003は、処理部A30が処理すべきデータの領域の終了アドレスを示しており、比較器3004で終了アドレス3003以下のアドレスを内部アドレスバス81が示していることを判定する。これらの判定結果はAND（論理積）3005に送られ、ここで、両方が成立したときのみ、内部データバス82のデータが内部データバッファ3006に取り込まれる。開始アドレス3001と終了アドレス3003は複数セットを持っていてもよい。処理管理B310、処理管理C320も同様の処理を行う。
【００４７】
図８は、画像メモリ50のアクセスと各処理部の処理のタイミングを示したタイムチャートである。本来ならばソース画像右220とソース画像左210の両方についてアクセスされるが、ここではソース画像右220について説明する。まず、撮影部20で撮影された画像は、ソース画像書き込みラインが示すタイミングで書き込まれるものとする。
【００４８】
データ5001は、撮影部20が書き込む最初のライン0（画像の最上位ラスタ）であり、データ5002はライン1であり、以降同じように連続するラスタデータが書き込まれる。一方、メモリアクセス管理40は、データ5003でソース画像右220の最初のラインを読み出し、その後データ5004の順に、１ラインずつ読みだしていく。期間5005には、処理部A30がデータを受信する。期間5006には、処理部A30と処理部B31が重複して受信する。
【００４９】
期間5007には、処理部B31がデータを受信する。期間5008には、処理部B31と処理部C32が重複して受信する。期間5009は処理C32がデータを受信する。期間5010はメモリアクセス管理40が読み出したデータが、処理部A30のメモリバッファA301に取り込まれる期間を示す。つまり、処理部A30の処理管理A300は、内部データバス82に出力されるライン0からライン13までのデータをメモリバッファA301に取り込む。
【００５０】
換言すれば、処理部A30（第１の処理部）は、ライン0（第１のライン）からライン13（第２のライン）までの画像データを受信する。なお、処理部A30は、図１を用いて説明したように、受信した画像データの歪みを補正する（アフィン変換）。
【００５１】
期間5011はメモリアクセス管理40が読み出したデータが、処理部B31のメモリバッファB311に取り込まれる期間を示す。つまり、処理部B31の処理管理B310は、内部データバス82に出力されるライン10からライン23までのデータをメモリバッファB311に取り込む。
【００５２】
換言すれば、処理部B31（第２の処理部）は、ライン0（第１のライン）とライン13（第２のライン）の間に位置するライン10（第３のライン）から、ライン23（第４のライン）までの画像データを受信する。これにより、ライン10からライン13までの画像データについて、処理部A30及び処理部B31は並列処理を行うことができる。なお、処理部B31は、図１を用いて説明したように、受信した画像データの歪みを補正する。
【００５３】
期間5012はメモリアクセス管理40が読み出したデータが、処理部C32のメモリバッファC321に取り込まれる期間を示す。つまり、処理部C32の処理管理C320は、内部データバス82に出力されるライン20からライン33までのデータをメモリバッファC321に取り込む。
【００５４】
この図において、ソース画像右220のデータはライン0以降、最後まで１回のアクセスとなっている。しかし、例えば期間5006などの重複期間において、メモリバッファA301とメモリバッファB311が内部データバス82上の同じデータを同時に取り込むことで、各処理部（例えば、処理部Aと処理部B）は、データを受け取ることが可能となっている。
【００５５】
換言すれば、メモリアクセス管理40（メモリアクセス管理部）が画像メモリ50（第１のメモリ）から読み出すデータの量は、複数の処理部（処理部A30、処理部B31、処理部C32等）のそれぞれが処理するデータの量の総和よりも少ない。
【００５６】
このため、重複したデータのアクセスを無くし、バストラフィックの増加を防止する。処理部A30は、メモリバッファA301に１つのブロックラインに相当するデータが揃った時点でアフィン変換処理を開始する。処理部B31、処理部C32も同様である。
【００５７】
図１３に、メモリバッファの動作と演算処理の処理期間の例を示す。メモリアクセス管理40が画像メモリ50を1ラインずつ読みだしながらメモリバッファにデータが格納される時間、つまり5010、5011、5012を合わせた期間よりも、アフィン変換処理と視差演算処理の方が処理時間、つまり5013、5014、5015の期間が十分遅いため、処理部A30から処理部C32のアフィン変換と視差演算処理が並列で処理される期間5016pが存在する。また、撮影部20が撮影した画像を画像メモリ50への書き込み期間5016と、メモリアクセス管理40のメモリリードも並列処理できるので、システムを高速化できる。
【００５８】
図９は、メモリアクセス管理40の処理フローを示したものである。撮影部20がソース画像右220、またはソース画像左210に1ライン以上のデータを書き込んだかどうかを判定し、１ライン以上のデータが書き込まれるまで処理を待つ(S110)。データが1ライン以上書き込まれたら、そのデータをソース画像右220（またはソース画像左210）からリードする(S120)。
【００５９】
１ライン分のアクセスが終了したら次のアクセスのため、アドレスを更新しておく(S130)。その読み出したデータを内部バス80に出力する（S140）。ソース画像右220（またはソース画像左210）の最後のラインを読み出すまで処理を繰り返す(S150)。以上のように、メモリアクセス管理40は、同じラインのアクセスの繰り返し無しで、ソース画像右220（またはソース画像左210）をリードする。
【００６０】
換言すれば、メモリアクセス管理40（メモリアクセス管理部）は、画像メモリ50（第１のメモリ）に１ライン以上の画像データが書き込まれたことを検知する。メモリアクセス管理40は、画像メモリ50に１ライン以上の画像データが書き込まれたことが検知された場合、メモリバス70（第１のバス）を介して画像メモリ50から画像データを１ラインずつ読み出し、読み出した画像データを内部バス80（第２のバス）に出力する。
【００６１】
図１０は、処理管理A300の動作フローを示したものである。内部アドレスバス81にメモリアクセス管理40から送られてくるアドレスを取得する（S210）。その取得したアドレスが開始アドレス3001以上で、かつ、終了アドレス3003以下かを判定する（S220）。条件が成立すればその時の内部データバス82からデータを取り込んでメモリバッファA301に格納する。その後、規定された処理を終了するまで繰り返す(S240)。
【００６２】
この処理は、処理管理B310、処理管理C320も同様であり、それぞれに設定された開始アドレス3001と終了アドレス3003によるアドレスの比較によって、内部バス80からデータを受信するかどうかを独立して判定する。従って、複数の処理部で同時に条件が成立すれば、同時にデータを取り込むことができる。
【００６３】
以上の第１の実施形態によれば、複数の処理部に共通に使用される重複領域について、メモリアクセス管理40は画像メモリ50の重複アクセスを防ぐことができるため、メモリバス70のトラフィックの増加を防ぐことができる。
【００６４】
すなわち、バストラフィックを抑制しつつ、画像データを高速に処理することができる。
【００６５】
（第２の実施形態）
次に、図１１を用いて、第２の実施形態として、メモリアクセス管理40にローカルメモリ4015（第２のメモリ）を持つ場合の動作について説明する。ローカルメモリ4015は図３で示した重複ライン2203以上の容量を持つことを想定している。これにより、各処理部へのデータ配信のタイミングを調整することができる。
【００６６】
各処理部は視差演算の結果の視差画像を画像メモリ50にメモリバス70を経由して書き込む。このため、メモリバス70の動作状態によって視差画像の書き込みが待たされる可能性がある。そのため、各処理部の動作可能なタイミングがずれてしまう。図８では、複数の処理部が同時にメモリアクセス管理40からのデータを受信していたが、各処理部の動作タイミングがすれることで、この同時受信ができなくなる可能性がある。そのため、重複ライン分をローカルメモリ4015に記憶して、各処理部には個別にデータを送信する。
【００６７】
図１２は、第２の実施形態の動作タイムチャートを示したものである。図８との違いは、再送期間5013があることである。期間5010で、データ5003のライン0からライン13までをメモリバッファA301に送信した後、メモリアクセス管理40は、ソース画像右220のアクセスを一時休止する。これは処理部B31の動作が図８の時よりも少し遅くなり、処理部B31が重複部分を処理部A30と同時に受信できないケースを想定したものである。メモリアクセス管理40は、再送期間5013にライン10のデータを再び内部バス80（ローカルバス）に送信して処理部B31に送る。
【００６８】
換言すれば、メモリアクセス管理40（メモリアクセス管理部）は、処理部A30（第１の処理部）が画像データを受信でき、かつ、処理部B31（第２の処理部）が画像データを受信できない場合、ライン10（第３のライン）からライン13（第２のライン）までの画像データをローカルメモリ4015（第２のメモリ）に記憶し、ライン13の次のライン14以降の画像データの読み出しを中止する。続いて、メモリアクセス管理40は、処理部B31が画像データを受信できるようになった場合、ローカルメモリ4015に記憶されたライン10からライン13までの画像データを内部バス80（第２のバス）に出力する。
【００６９】
以上の第２の実施形態によれば、ローカルメモリ4015を持つことで、各処理部の動作タイミングがずれても、画像メモリ50の重複アクセスを防ぐことができる。
【００７０】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００７１】
上記実施形態では、撮影部20（撮像部）は２つのカメラから構成されるが、撮影部20を構成するカメラの数は任意である。撮影部20が１つのカメラから構成される場合、視差演算はできないが、画像データの歪みを補正するため本発明を適用すればアフィン変換処理を高速に行うことができる。
【００７２】
メモリアクセス管理40（メモリアクセス管理部）は、画像データの領域に対応する優先度に従って、その領域の画像データを読み出し、読み出した領域の画像データを内部バス80（第２のバス）に出力してもよい。これにより、優先度の高い領域の画像データが先に配信され、その領域を担当する処理部によって処理される。画像データの領域と優先度は、例えば、図１４に示すように、所定のメモリ（記憶装置）に対応付けて記憶される。
【００７３】
なお、本発明の実施形態は、以下の態様であってもよい。
【００７４】
（１）画像データを記憶する画像メモリと、前記画像メモリと並列に配置され、前記画像データを処理する複数の処理部と、
前記画像メモリから前記画像データを読み出し、前記複数の処理部に画像データを配信するメモリアクセス管理部と、を備えるカメラ装置。
【００７５】
（２）前記メモリアクセス管理部は、前記画像データを同時に配信する、（１）に記載のカメラ装置。
【００７６】
（３）前記各処理部の前記処理領域は、他の処理部の前記処理領域と一部重複して設定される、（１）に記載のカメラ装置。
【００７７】
（４）前記メモリアクセス管理部が前記画像メモリから読みだすデータ量は、前記複数の処理部に必要なデータ量の総和よりも少ないことを特徴とする、（１）に記載のカメラ装置。
【００７８】
上記の実施形態（１）〜（４）によれば、複数の処理部で共通に使用される画像データをメモリアクセス管理部が代表して画像メモリから読み出す。その共通な画像データは、メモリアクセス管理部によって必要に応じて各処理部に配信されるため、処理部が増えても、画像メモリのバストラフィックの増加を抑えることができる。このため、処理部の並列度に応じた高速処理が可能となる。
【符号の説明】
【００７９】
１０…ステレオカメラ装置
２０…撮影部
２１…左カメラ
２２…右カメラ
３０…処理部Ａ
３１…処理部Ｂ
３２…処理部Ｃ
４０…メモリアクセス管理
５０…画像メモリ
６０…ＣＰＵ
７０…メモリバス
８０…内部バス
９０…ＳｏＣ
２１０ソース画像左
２２０…ソース画像右
３００…処理管理Ａ
３０１…メモリバッファＡ
３０２…アフィン変換Ａ
３０３…視差演算Ａ
３１０…処理管理Ｂ
３１１…メモリバッファＢ
３１２…アフィン変換Ｂ
３１３…視差演算Ｂ
３２０…処理管理Ｃ
３２１…メモリバッファＣ
３２２…アフィン変換Ｃ
３２３…視差演算Ｃ
４０１５…ローカルメモリ
【図１】
2018067836.tif 000007
【図２】
2018067836.tif 000008
【図３】
2018067836.tif 000009
【図４】
2018067836.tif 000010
【図５】
2018067836.tif 000011
【図６】
2018067836.tif 000012
【図７】
2018067836.tif 000013
【図８】
2018067836.tif 000014
【図９】
2018067836.tif 000015
【図１０】
2018067836.tif 000016
【図１１】
2018067836.tif 000017
【図１２】
2018067836.tif 000018
【図１３】
2018067836.tif 000019
【図１４】
2018067836.tif 000020