[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6838725B2 - カメラ装置 - Google Patents

カメラ装置 Download PDF

Info

Publication number
JP6838725B2
JP6838725B2 JP2016206052A JP2016206052A JP6838725B2 JP 6838725 B2 JP6838725 B2 JP 6838725B2 JP 2016206052 A JP2016206052 A JP 2016206052A JP 2016206052 A JP2016206052 A JP 2016206052A JP 6838725 B2 JP6838725 B2 JP 6838725B2
Authority
JP
Japan
Prior art keywords
image data
bus
processing
processing unit
memory
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.)
Active
Application number
JP2016206052A
Other languages
English (en)
Other versions
JP2018067836A (ja
Inventor
松尾 茂
松尾  茂
佐々本 学
学 佐々本
敦 市毛
敦 市毛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2016206052A priority Critical patent/JP6838725B2/ja
Priority to US16/335,760 priority patent/US10911739B2/en
Priority to PCT/JP2017/037122 priority patent/WO2018074340A1/ja
Priority to EP17863146.1A priority patent/EP3531296B1/en
Publication of JP2018067836A publication Critical patent/JP2018067836A/ja
Application granted granted Critical
Publication of JP6838725B2 publication Critical patent/JP6838725B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/207Image signal generators using stereoscopic image cameras using a single 2D image sensor
    • H04N13/225Image signal generators using stereoscopic image cameras using a single 2D image sensor using parallax barriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/10Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used
    • B60R2300/105Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used using multiple cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/10Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used
    • B60R2300/107Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used using stereoscopic cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • B60R2300/303Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing using joined images, e.g. multiple camera images
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8093Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for obstacle warning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)
  • Measurement Of Optical Distance (AREA)
  • Memory System (AREA)
  • Studio Devices (AREA)

Description

本発明は、カメラ装置に関する。
車両の走行安全性を向上させるために、車両に搭載したカメラで前方の障害物を検知して、その障害物に衝突する可能性がある場合は、ドライバへの警報や自動ブレーキを行うシステムが研究されている。
車両の前方を監視するセンサとして、ミリ波レーダー、レーザレーダ、カメラなどがある。カメラの種類としては、単眼カメラと、複数のカメラを使用したステレオカメラがある。ステレオカメラは、所定の間隔の2つのカメラで撮影された重複領域の視差を利用して、撮影された物体までの距離を計測することができる。このため、前方の物体までの衝突危険度を的確に把握することができる。
ステレオカメラは、2つのカメラで撮影された画像の視差を求めて、その視差を距離に変換する。視差を求めるためには、2つのカメラ間の画像のマッチング判定を行う必要がある。このマッチング処理は演算量が多いためハードウェアで処理する方式が考案されている。しかし今後、カメラの撮影画素数の増加や、高フレームレート化が進むことが予想され、視差演算の更なる高速化が必要になってくる。
そこで、幾何補正処理、テクスチャ検出処理、視差演算処理などを小領域ごとに並列処理を行い、高速化を実現する方法が提案されている(例えば、特許文献1参照)。
また、複数の処理モジュールを持ち、複数の領域に分割された画像メモリの各領域ごとに並列画像処理を行う方法が提案されている(例えば、特許文献2参照)。
特開2012−18014号公報 特開2007−72867号公報
特許文献1では、ステレオカメラの視差の算出に必要な演算を細かいステップに分割して、それらの演算をパイプライン化して高速処理を実現している。この方法によれば、並列処理される演算が高速化され、その演算に必要な画像データ量も増える。そのため更なる高速化のためパイプライン処理段数を増やしていけば、メモリのバストラフィックが増大し、処理速度の向上を妨げるという課題がある。
特許文献2では、同じ演算機能を持った複数の機能モジュールを用意して、それらを並列動作させることで高速化を実現している。この方法によれば、機能モジュールの数に応じて演算は高速化が可能になる。しかし、機能モジュールが増えるほどメインメモリのバストラフィックが増大し、高速化を妨げるという課題がある。
本発明の目的は、バストラフィックを抑制しつつ、画像データを高速に処理することができるカメラ装置を提供することにある。
上記目的を達成するために、本発明の一例は、第1のバスと、前記第1のバスに接続され、画像データを記憶する第1のメモリと、第2のメモリと、第2のバスと、前記第1のバス及び前記第2のバスに接続され、前記第1のバスを介して前記第1のメモリから前記画像データを読み出し、読み出した前記画像データを前記第2のバスに出力するメモリアクセス管理部と、前記第2のバスに接続され、前記第2のバスに出力された前記画像データを処理する複数の処理部と、を備え、前記複数の処理部の各々は、少なくとも、画像データをアフィン変換するアフィン変換部または、前記アフィン変換された画像データから視差演算を行う視差演算部を含み、前記メモリアクセス管理部は、前記複数の処理部の各々の処理実行状態に応じて、前記第2のバスを介して前記画像データを各処理部に出力し、前記複数の処理部は、各処理部に出力された各画像データの処理を並列して行うカメラ装置であって、前記複数の処理部は、少なくとも第1の処理部と第2の処理部を含み、前記第1の処理部は、第1のラインから第2のラインまでの前記画像データを受信し、受信した前記画像データの歪みを補正し、前記第2の処理部は、前記第1のラインと前記第2のラインの間に位置する第3のラインから、第4のラインまでの前記画像データを受信し、受信した前記画像データの歪みを補正し、前記メモリアクセス管理部は、前記第1の処理部が前記画像データを受信でき、かつ、前記第2の処理部が前記画像データを受信できない場合、前記第3のラインから前記第2のラインまでの前記画像データを前記第2のメモリに記憶し、前記第2のラインの次のライン以降の前記画像データの読み出しを中止し、前記第2の処理部が前記画像データを受信できるようになった場合、前記第2のメモリに記憶された前記第3のラインから前記第2のラインまでの前記画像データを前記第2のバスに出力する

本発明によれば、バストラフィックを抑制しつつ、画像データを高速に処理することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
ステレオカメラ装置の機能ブロック図である。 アフィン変換処理の説明図である。 アフィン変換処理による画像メモリの重複アクセスを示す図である。 視差演算の説明図である。 画像メモリの区分と処理部の分担を説明するための図である。 メモリアクセス管理のブロック図である。 処理管理のブロック図である。 画像メモリのアクセスと処理部へのデータ配信のタイムチャートの例を示す図である。 メモリアクセス管理の処理フローである。 処理管理のブロック図である。 メモリアクセス管理にローカルメモリを設けた第2の実施形態のブロック図である。 図11の動作タイムチャートの例を示す図である。 メモリバッファの動作と演算処理の処理期間の例を示す図である。 画像データの領域と優先度の対応関係を示す図である。
以下、図面を用いて、本発明の第1〜第2の実施形態によるステレオカメラ装置(カメラ装置)の構成及び動作について説明する。ステレオカメラ装置は、例えば、車外の障害物の認識等に用いられる車載ステレオカメラ装置である。なお、各図において、同一符号は同一部分を示す。
(第1の実施形態)
図1は、ステレオカメラ装置10のブロック図を示したものである。撮影部20として右カメラ22と左カメラ21の2つのカメラを持つ。撮影部20は、左カメラ21及び右カメラ22が撮影した画像を輝度補正やノイズ除去を行った後、メモリバス70を経由して、画像メモリ50の中のソース画像右220とソース画像左210の領域に書き込む。このようにして書き込まれたソース画像右220とソース画像左210は、メモリアクセス管理40によって内部バス80に転送される。
換言すれば、画像メモリ50(第1のメモリ)は、メモリバス70(第1のバス)に接続され、ソース画像右220及びソース画像左210(画像データ)を記憶する。メモリアクセス管理40(メモリアクセス管理部)は、メモリバス70及び内部バス80(第2のバス)に接続され、メモリバス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(第2のバス)に出力された画像データを記憶する。アフィン変換A302(アフィン変換部)は、メモリバッファA301に記憶された画像データをアフィン変換する。視差演算A303(視差演算部)は、アフィン変換A302によってアフィン変換された画像データから視差を演算する。
処理管理A300は内部バス80の画像データをメモリバッファA301に取り込むための制御を行う。処理部B31と処理部C32は処理部A30と同じ機能を持ち、これらが並列処理を行うことで、高速な画像処理を実現する。
換言すれば、処理部A30、処理部B31及び処理部C32(複数の処理部)は、内部バス80(第2のバス)に接続され、内部バス80に出力された画像データを処理する。
また、CPU60はステレオカメラ装置10の制御を行いながら、視差画像502を用いて障害物の検知などの処理を行う。
また、ステレオカメラ装置10では、CPU60、撮影部20、メモリアクセス管理40、処理部A30、処理部B31、処理部C31、内部バス80が同一のSoC(System on a Chip)90に搭載されることを想定している。SoC90の各処理部は、メモリバス70経由で画像メモリをアクセスする。従って、システムの高速化のためには、メモリバス70のバストラフィックを低減させる必要がある。
図2は、アフィン変換A302の処理の概要を示したものである。左カメラ21及び右カメラ22が撮影した画像は、レンズによって画像の歪みが発生し、その歪みを持ったまま、ソース画像右220、ソース画像左210に書き込まれる。図2のソース画像右220の画像は、矩形パターンを撮影した時の歪みの例を示したものである。この画像をアフィン変換A302でアフィン処理を行うとアフィン変換後右2209の画像のように、正しい矩形パターンに変換される。この処理は、ソース画像左210に対しても同様に行う。また、アフィン変換B312、アフィン変換C322も同じ機能を持つ。
図3は、アフィン変換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のトラフィックの増加を防止する。
図4は、視差演算A303の視差演算処理を示したものである。右カメラ22が撮影した画像を基準画像とし、例えば8画素x 8画素のような基準ブロック画像221を定義する。ブロック画像のサイズはこの例に限るものではない。一方、左カメラ21が撮影した画像の中で、前記基準ブロック画像221と同じ縦位置(Y座標)と横位置(X座標)を基準として、探索幅(例えば128画素)の参照画像を選択する。その後、前記基準ブロック画像221と前記参照画像との差分を計算する。この差分計算はSADと呼ばれ、次の計算を行う。
Figure 0006838725
但し、Iは前記参照画像の中の8x8画像ブロック、Tは前記基準ブロック画像221の画像データであり、i,jは画像ブロック内の座標である。1つの視差を算出するために、前記参照画像の参照位置を1つずつずらしながら前記探索幅の分だけ演算を行い、最もSAD値が小さくなる位置を探索する。
図4に示す、車両の前方窓から見た実際の風景230には、前方車両200がある。右カメラ22で撮影したソース画像右220と、左カメラ21で撮影したソース画像左210がある時、前方車両200の一部201は、ソース画像右220では基準ブロック画像221の位置に撮影され、ソース画像左210では参照ブロック画像211の位置に撮影される。
この結果、基準ブロック画像221の位置と参照ブロック画像211には視差dが生じる。この視差dは、前方車両200がステレオカメラ装置10に近い場合は大きい値となり、遠いものは小さい値となる。このように求めた視差を、画像全体で求める。この視差dを用いて、三角測量の原理で前方車両200(被写体)からステレオカメラ装置10までの距離を測定することが出来る。視差dから距離Zは次の式で求められる。
Figure 0006838725
但し、fは右及び左カメラの焦点距離、Bは右カメラ22と左カメラ21の距離(基線長)である。また、視差データを3次元変換するために、上記Zを求めた地点の3次元上のX,Y方向の距離を次の式で表す。
Figure 0006838725
Figure 0006838725
但し、xrはソース画像右220上でのx座標、yrはソース画像右220上でのy座標である。以上のように、ステレオカメラ装置10で撮影した画像によって、被写体の3次元空間上の位置(X,Y,Z)をステレオカメラ装置10からの距離Zで求めることができる。
図5は、画像メモリ50のソース画像と各処理部の分担について説明したものである。ソース画像右220をブロックライン単位で横方向に分割する。ブロックライン2210は処理部A30、ブロックライン2211は処理部B31、ブロックライン2212は処理部C32が処理を行う。ブロックライン2213は処理部A30が担当し、以降、ブロックラインごとに処理部A30から処理部C32まで順に分担する。また、重複ライン2220は処理部A30と処理部B31の両方に必要な領域で、重複領域2221は処理部B31と処理部C32の両方に必要な領域である。ソース画像左210についても同じように分割する。
図6はメモリアクセス管理A40の構成を示したものである。メモリアクセス管理A40が画像メモリ50から画像データを読み出す時に使用するメモリバス70は、メモリアドレスバス71メモリデータバス72により構成される。アクセス制御4010は、制御信号103により画像メモリ50のソース画像右220とソース画像左210に1ラスタ(1ライン)以上の画像が書き込まれたことを検知し、画像メモリ50の中のソース画像右220のアドレスをメモリアドレスバス71に出力し、画像メモリ50はそのアドレスが示すデータをメモリデータバス72に出力する。その出力されたデータをデータバッファ4013に取り込む(記憶する)。
この後、制御信号100、101、102により各処理部がデータの受信が可能になったことを確認して、画像メモリ50から読み込んだデータのアドレスをアドレスバッファ4012に入れ、内部バス80の内部アドレスバス81に出力する。また内部データバス82には、データバッファ4013のデータを出力する。ソース画像右220の1ラスタ分のデータのアクセスが終了したら、ソース画像左210の1ラスタ分のデータをアクセスする。以降、ソース画像右220とソース画像左210を交互にアクセスする。
換言すれば、メモリアクセス管理A40(メモリアクセス管理部)は、画像データを1ラインずつ読み出し、読み出した画像データを1ラインずつ内部バス80(第2のバス)に出力する。これにより、複数の処理部は、それぞれ、内部バス80に出力された1ラインの画像データを適宜受信することができる。
図7は、処理部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も同様の処理を行う。
図8は、画像メモリ50のアクセスと各処理部の処理のタイミングを示したタイムチャートである。本来ならばソース画像右220とソース画像左210の両方についてアクセスされるが、ここではソース画像右220について説明する。まず、撮影部20で撮影された画像は、ソース画像書き込みラインが示すタイミングで書き込まれるものとする。
データ5001は、撮影部20が書き込む最初のライン0(画像の最上位ラスタ)であり、データ5002はライン1であり、以降同じように連続するラスタデータが書き込まれる。一方、メモリアクセス管理40は、データ5003でソース画像右220の最初のラインを読み出し、その後データ5004の順に、1ラインずつ読みだしていく。期間5005には、処理部A30がデータを受信する。期間5006には、処理部A30と処理部B31が重複して受信する。
期間5007には、処理部B31がデータを受信する。期間5008には、処理部B31と処理部C32が重複して受信する。期間5009は処理C32がデータを受信する。期間5010はメモリアクセス管理40が読み出したデータが、処理部A30のメモリバッファA301に取り込まれる期間を示す。つまり、処理部A30の処理管理A300は、内部データバス82に出力されるライン0からライン13までのデータをメモリバッファA301に取り込む。
換言すれば、処理部A30(第1の処理部)は、ライン0(第1のライン)からライン13(第2のライン)までの画像データを受信する。なお、処理部A30は、図1を用いて説明したように、受信した画像データの歪みを補正する(アフィン変換)。
期間5011はメモリアクセス管理40が読み出したデータが、処理部B31のメモリバッファB311に取り込まれる期間を示す。つまり、処理部B31の処理管理B310は、内部データバス82に出力されるライン10からライン23までのデータをメモリバッファB311に取り込む。
換言すれば、処理部B31(第2の処理部)は、ライン0(第1のライン)とライン13(第2のライン)の間に位置するライン10(第3のライン)から、ライン23(第4のライン)までの画像データを受信する。これにより、ライン10からライン13までの画像データについて、処理部A30及び処理部B31は並列処理を行うことができる。なお、処理部B31は、図1を用いて説明したように、受信した画像データの歪みを補正する。
期間5012はメモリアクセス管理40が読み出したデータが、処理部C32のメモリバッファC321に取り込まれる期間を示す。つまり、処理部C32の処理管理C320は、内部データバス82に出力されるライン20からライン33までのデータをメモリバッファC321に取り込む。
この図において、ソース画像右220のデータはライン0以降、最後まで1回のアクセスとなっている。しかし、例えば期間5006などの重複期間において、メモリバッファA301とメモリバッファB311が内部データバス82上の同じデータを同時に取り込むことで、各処理部(例えば、処理部Aと処理部B)は、データを受け取ることが可能となっている。
換言すれば、メモリアクセス管理40(メモリアクセス管理部)が画像メモリ50(第1のメモリ)から読み出すデータの量は、複数の処理部(処理部A30、処理部B31、処理部C32等)のそれぞれが処理するデータの量の総和よりも少ない。
このため、重複したデータのアクセスを無くし、バストラフィックの増加を防止する。処理部A30は、メモリバッファA301に1つのブロックラインに相当するデータが揃った時点でアフィン変換処理を開始する。処理部B31、処理部C32も同様である。
図13に、メモリバッファの動作と演算処理の処理期間の例を示す。メモリアクセス管理40が画像メモリ50を1ラインずつ読みだしながらメモリバッファにデータが格納される時間、つまり5010、5011、5012を合わせた期間よりも、アフィン変換処理と視差演算処理の方が処理時間、つまり5013、5014、5015の期間が十分遅いため、処理部A30から処理部C32のアフィン変換と視差演算処理が並列で処理される期間5016pが存在する。また、撮影部20が撮影した画像を画像メモリ50への書き込み期間5016と、メモリアクセス管理40のメモリリードも並列処理できるので、システムを高速化できる。
図9は、メモリアクセス管理40の処理フローを示したものである。撮影部20がソース画像右220、またはソース画像左210に1ライン以上のデータを書き込んだかどうかを判定し、1ライン以上のデータが書き込まれるまで処理を待つ(S110)。データが1ライン以上書き込まれたら、そのデータをソース画像右220(またはソース画像左210)からリードする(S120)。
1ライン分のアクセスが終了したら次のアクセスのため、アドレスを更新しておく(S130)。その読み出したデータを内部バス80に出力する(S140)。ソース画像右220(またはソース画像左210)の最後のラインを読み出すまで処理を繰り返す(S150)。以上のように、メモリアクセス管理40は、同じラインのアクセスの繰り返し無しで、ソース画像右220(またはソース画像左210)をリードする。
換言すれば、メモリアクセス管理40(メモリアクセス管理部)は、画像メモリ50(第1のメモリ)に1ライン以上の画像データが書き込まれたことを検知する。メモリアクセス管理40は、画像メモリ50に1ライン以上の画像データが書き込まれたことが検知された場合、メモリバス70(第1のバス)を介して画像メモリ50から画像データを1ラインずつ読み出し、読み出した画像データを内部バス80(第2のバス)に出力する。
図10は、処理管理A300の動作フローを示したものである。内部アドレスバス81にメモリアクセス管理40から送られてくるアドレスを取得する(S210)。その取得したアドレスが開始アドレス3001以上で、かつ、終了アドレス3003以下かを判定する(S220)。条件が成立すればその時の内部データバス82からデータを取り込んでメモリバッファA301に格納する。その後、規定された処理を終了するまで繰り返す(S240)。
この処理は、処理管理B310、処理管理C320も同様であり、それぞれに設定された開始アドレス3001と終了アドレス3003によるアドレスの比較によって、内部バス80からデータを受信するかどうかを独立して判定する。従って、複数の処理部で同時に条件が成立すれば、同時にデータを取り込むことができる。
以上の第1の実施形態によれば、複数の処理部に共通に使用される重複領域について、メモリアクセス管理40は画像メモリ50の重複アクセスを防ぐことができるため、メモリバス70のトラフィックの増加を防ぐことができる。
すなわち、バストラフィックを抑制しつつ、画像データを高速に処理することができる。
(第2の実施形態)
次に、図11を用いて、第2の実施形態として、メモリアクセス管理40にローカルメモリ4015(第2のメモリ)を持つ場合の動作について説明する。ローカルメモリ4015は図3で示した重複ライン2203以上の容量を持つことを想定している。これにより、各処理部へのデータ配信のタイミングを調整することができる。
各処理部は視差演算の結果の視差画像を画像メモリ50にメモリバス70を経由して書き込む。このため、メモリバス70の動作状態によって視差画像の書き込みが待たされる可能性がある。そのため、各処理部の動作可能なタイミングがずれてしまう。図8では、複数の処理部が同時にメモリアクセス管理40からのデータを受信していたが、各処理部の動作タイミングがすれることで、この同時受信ができなくなる可能性がある。そのため、重複ライン分をローカルメモリ4015に記憶して、各処理部には個別にデータを送信する。
図12は、第2の実施形態の動作タイムチャートを示したものである。図8との違いは、再送期間5013があることである。期間5010で、データ5003のライン0からライン13までをメモリバッファA301に送信した後、メモリアクセス管理40は、ソース画像右220のアクセスを一時休止する。これは処理部B31の動作が図8の時よりも少し遅くなり、処理部B31が重複部分を処理部A30と同時に受信できないケースを想定したものである。メモリアクセス管理40は、再送期間5013にライン10のデータを再び内部バス80(ローカルバス)に送信して処理部B31に送る。
換言すれば、メモリアクセス管理40(メモリアクセス管理部)は、処理部A30(第1の処理部)が画像データを受信でき、かつ、処理部B31(第2の処理部)が画像データを受信できない場合、ライン10(第3のライン)からライン13(第2のライン)までの画像データをローカルメモリ4015(第2のメモリ)に記憶し、ライン13の次のライン14以降の画像データの読み出しを中止する。続いて、メモリアクセス管理40は、処理部B31が画像データを受信できるようになった場合、ローカルメモリ4015に記憶されたライン10からライン13までの画像データを内部バス80(第2のバス)に出力する。
以上の第2の実施形態によれば、ローカルメモリ4015を持つことで、各処理部の動作タイミングがずれても、画像メモリ50の重複アクセスを防ぐことができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
上記実施形態では、撮影部20(撮像部)は2つのカメラから構成されるが、撮影部20を構成するカメラの数は任意である。撮影部20が1つのカメラから構成される場合、視差演算はできないが、画像データの歪みを補正するため本発明を適用すればアフィン変換処理を高速に行うことができる。
メモリアクセス管理40(メモリアクセス管理部)は、画像データの領域に対応する優先度に従って、その領域の画像データを読み出し、読み出した領域の画像データを内部バス80(第2のバス)に出力してもよい。これにより、優先度の高い領域の画像データが先に配信され、その領域を担当する処理部によって処理される。画像データの領域と優先度は、例えば、図14に示すように、所定のメモリ(記憶装置)に対応付けて記憶される。
なお、本発明の実施形態は、以下の態様であってもよい。
(1)画像データを記憶する画像メモリと、前記画像メモリと並列に配置され、前記画像データを処理する複数の処理部と、
前記画像メモリから前記画像データを読み出し、前記複数の処理部に画像データを配信するメモリアクセス管理部と、を備えるカメラ装置。
(2)前記メモリアクセス管理部は、前記画像データを同時に配信する、(1)に記載のカメラ装置。
(3)前記各処理部の前記処理領域は、他の処理部の前記処理領域と一部重複して設定される、(1)に記載のカメラ装置。
(4)前記メモリアクセス管理部が前記画像メモリから読みだすデータ量は、前記複数の処理部に必要なデータ量の総和よりも少ないことを特徴とする、(1)に記載のカメラ装置。
上記の実施形態(1)〜(4)によれば、複数の処理部で共通に使用される画像データをメモリアクセス管理部が代表して画像メモリから読み出す。その共通な画像データは、メモリアクセス管理部によって必要に応じて各処理部に配信されるため、処理部が増えても、画像メモリのバストラフィックの増加を抑えることができる。このため、処理部の並列度に応じた高速処理が可能となる。
10…ステレオカメラ装置
20…撮影部
21…左カメラ
22…右カメラ
30…処理部A
31…処理部B
32…処理部C
40…メモリアクセス管理
50…画像メモリ
60…CPU
70…メモリバス
80…内部バス
90…SoC
210ソース画像左
220…ソース画像右
300…処理管理A
301…メモリバッファA
302…アフィン変換A
303…視差演算A
310…処理管理B
311…メモリバッファB
312…アフィン変換B
313…視差演算B
320…処理管理C
321…メモリバッファC
322…アフィン変換C
323…視差演算C
4015…ローカルメモリ

Claims (6)

  1. 第1のバスと、前記第1のバスに接続され、画像データを記憶する第1のメモリと、第2のメモリと、第2のバスと、前記第1のバス及び前記第2のバスに接続され、前記第1のバスを介して前記第1のメモリから前記画像データを読み出し、読み出した前記画像データを前記第2のバスに出力するメモリアクセス管理部と、前記第2のバスに接続され、前記第2のバスに出力された前記画像データを処理する複数の処理部と、を備え、前記複数の処理部の各々は、少なくとも、画像データをアフィン変換するアフィン変換部または、前記アフィン変換された画像データから視差演算を行う視差演算部を含み、前記メモリアクセス管理部は、前記複数の処理部の各々の処理実行状態に応じて、前記第2のバスを介して前記画像データを各処理部に出力し、前記複数の処理部は、各処理部に出力された各画像データの処理を並列して行うカメラ装置であって、
    前記複数の処理部は、少なくとも第1の処理部と第2の処理部を含み、
    前記第1の処理部は、第1のラインから第2のラインまでの前記画像データを受信し、受信した前記画像データの歪みを補正し、
    前記第2の処理部は、前記第1のラインと前記第2のラインの間に位置する第3のラインから、第4のラインまでの前記画像データを受信し、受信した前記画像データの歪みを補正し、
    前記メモリアクセス管理部は、
    前記第1の処理部が前記画像データを受信でき、かつ、前記第2の処理部が前記画像データを受信できない場合、前記第3のラインから前記第2のラインまでの前記画像データを前記第2のメモリに記憶し、前記第2のラインの次のライン以降の前記画像データの読み出しを中止し、
    前記第2の処理部が前記画像データを受信できるようになった場合、前記第2のメモリに記憶された前記第3のラインから前記第2のラインまでの前記画像データを前記第2のバスに出力することを特徴とするカメラ装置。
  2. 請求項に記載のカメラ装置であって、
    前記複数の処理部は、それぞれ、
    処理の実行状態を検知する処理管理部を備え、
    前記メモリアクセス管理部は、
    それぞれの前記処理管理部によって検知された前記実行状態からそれぞれの前記処理部が前記画像データを受信できるか否かを判定する
    ことを特徴とするカメラ装置。
  3. 請求項1に記載のカメラ装置であって、
    前記メモリアクセス管理部が前記第1のメモリから読み出すデータの量は、前記複数の処理部のそれぞれが処理するデータの量の総和よりも少ない
    ことを特徴とするカメラ装置。
  4. 請求項1に記載のカメラ装置であって、
    前記複数の処理部は、それぞれ、
    互いに異なる領域の前記画像データを処理し、
    それぞれの前記領域は、
    他の前記領域と重なる部分を有し、
    前記メモリアクセス管理部は、
    前記領域に対応する優先度に従って、前記領域の前記画像データを読み出し、読み出した前記領域の前記画像データを前記第2のバスに出力する
    ことを特徴とするカメラ装置。
  5. 請求項1に記載のカメラ装置であって、
    さらに、撮影画像を前記第1のメモリに書き込む撮像部を備え、
    前記撮像部、前記第1のバス、前記第2のバス、前記複数の処理部、および前記メモリアクセス管理部は、同一のSystem on Chipに搭載されることを特徴とするカメラ装置。
  6. 第1のバスと、前記第1のバスに接続され、画像データを記憶する第1のメモリと、第2のバスと、前記第1のバス及び前記第2のバスに接続され、前記第1のバスを介して前記第1のメモリから前記画像データを読み出し、読み出した前記画像データを前記第2のバスに出力するメモリアクセス管理部と、前記第2のバスに接続され、前記第2のバスに出力された前記画像データを処理する複数の処理部と、を備え、前記複数の処理部の各々は、少なくとも、画像データをアフィン変換するアフィン変換部または、前記アフィン変換された画像データから視差演算を行う視差演算部を含み、前記メモリアクセス管理部は、前記複数の処理部の各々の処理実行状態に応じて、前記第2のバスを介して前記画像データを各処理部に出力し、前記複数の処理部は、各処理部に出力された各画像データの処理を並列して行うカメラ装置であって、
    前記複数の処理部は、第1の処理部と第2の処理部を含み、
    前記第1の処理部に出力される第1の画像データと、前記第2の処理部に出力される第2の画像データは重複部分を含む異なる領域の画像データであり、
    前記メモリアクセス管理部は、前記第1の処理部に前記第1の画像データが出力される第1の期間と、前記第2の処理部に前記第2の画像データが出力される第2の期間との間に、再送期間を設定し、前記再送期間の間に、前記重複部分の少なくとも一部を前記第2の処理部に再送することを特徴とするカメラ装置。
JP2016206052A 2016-10-20 2016-10-20 カメラ装置 Active JP6838725B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016206052A JP6838725B2 (ja) 2016-10-20 2016-10-20 カメラ装置
US16/335,760 US10911739B2 (en) 2016-10-20 2017-10-13 Camera device
PCT/JP2017/037122 WO2018074340A1 (ja) 2016-10-20 2017-10-13 カメラ装置
EP17863146.1A EP3531296B1 (en) 2016-10-20 2017-10-13 Camera device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016206052A JP6838725B2 (ja) 2016-10-20 2016-10-20 カメラ装置

Publications (2)

Publication Number Publication Date
JP2018067836A JP2018067836A (ja) 2018-04-26
JP6838725B2 true JP6838725B2 (ja) 2021-03-03

Family

ID=62018534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016206052A Active JP6838725B2 (ja) 2016-10-20 2016-10-20 カメラ装置

Country Status (4)

Country Link
US (1) US10911739B2 (ja)
EP (1) EP3531296B1 (ja)
JP (1) JP6838725B2 (ja)
WO (1) WO2018074340A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190217791A1 (en) 2018-01-12 2019-07-18 Uber Technologies, Inc. Systems and Methods for Streaming Processing for Autonomous Vehicles

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2910303B2 (ja) * 1990-06-04 1999-06-23 株式会社日立製作所 情報処理装置
JP4304795B2 (ja) * 1999-09-28 2009-07-29 株式会社ニコン 電子カメラ
JP2007072867A (ja) 2005-09-08 2007-03-22 Sharp Corp 画像メモリおよび画像処理システム
US8369632B2 (en) 2009-04-08 2013-02-05 Olympus Corporation Image processing apparatus and imaging apparatus
JP5249116B2 (ja) * 2009-04-08 2013-07-31 オリンパス株式会社 画像処理装置
JP5443844B2 (ja) * 2009-06-17 2014-03-19 オリンパス株式会社 画像処理装置及び撮像装置
US8537244B2 (en) * 2009-12-16 2013-09-17 Samsung Electronics Co., Ltd. Image processing apparatus and method, and computer-readable medium having stored thereon computer program for executing the method
US9001227B2 (en) * 2010-04-05 2015-04-07 Qualcomm Incorporated Combining data from multiple image sensors
JP5392198B2 (ja) 2010-07-06 2014-01-22 株式会社リコー 測距装置及び撮像装置
JP5867903B2 (ja) * 2012-03-13 2016-02-24 カシオ計算機株式会社 画像処理装置、画像処理方法、及びプログラム
WO2014141654A1 (ja) * 2013-03-13 2014-09-18 パナソニック株式会社 測距装置、撮像装置および測距方法
EP3035667B1 (en) * 2013-08-12 2024-06-19 Nikon Corporation Electronic device

Also Published As

Publication number Publication date
JP2018067836A (ja) 2018-04-26
US10911739B2 (en) 2021-02-02
EP3531296A4 (en) 2020-05-27
US20190253694A1 (en) 2019-08-15
EP3531296A1 (en) 2019-08-28
WO2018074340A1 (ja) 2018-04-26
EP3531296B1 (en) 2022-05-18

Similar Documents

Publication Publication Date Title
US10484665B2 (en) Camera parameter set calculation method, recording medium, and camera parameter set calculation apparatus
KR102538592B1 (ko) 탑-뷰 영상 생성 장치 및 그 방법
JP2008039491A (ja) ステレオ画像処理装置
US11263758B2 (en) Image processing method and apparatus
US20160275694A1 (en) Image processor, photographing device, program, apparatus control system, and apparatus
WO2016051981A1 (ja) 車載画像認識装置
WO2016063545A1 (ja) ステレオカメラ装置及びステレオカメラ装置を備える車両
CN111882655A (zh) 三维重建的方法、装置、系统、计算机设备和存储介质
JP6778620B2 (ja) 区画線検出装置、区画線検出システム、及び区画線検出方法
CN111295667A (zh) 图像立体匹配的方法和辅助驾驶装置
JP7089355B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP2010288060A (ja) 周辺表示装置
JP6838725B2 (ja) カメラ装置
JP6789888B2 (ja) ステレオカメラ装置
JP6305232B2 (ja) 情報処理装置、撮像装置、撮像システム、情報処理方法およびプログラム。
JP6202356B2 (ja) 画像処理装置及び方法、並びに撮像装置
US10726528B2 (en) Image processing apparatus and image processing method for image picked up by two cameras
JP4539427B2 (ja) 画像処理装置
JP6602412B2 (ja) 情報処理装置及び方法、情報処理システム、ならびにプログラム。
EP4235574A1 (en) Measuring device, moving device, measuring method, and storage medium
JP2006300890A (ja) 画像処理検査装置及び画像処理検査方法
JP6566367B2 (ja) 三次元位置計測システム、移動体、三次元位置計測方法、及びプログラム
KR102479253B1 (ko) 차량용 카메라 영상 기반 공차 보정 방법
JP7492599B2 (ja) 車載カメラ装置
JP6432033B2 (ja) 車載装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210128

R150 Certificate of patent or registration of utility model

Ref document number: 6838725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250