特開2020-167492(P2020-167492A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通テン株式会社の特許一覧

<>
  • 特開2020167492-バッファ管理装置 図000003
  • 特開2020167492-バッファ管理装置 図000004
  • 特開2020167492-バッファ管理装置 図000005
  • 特開2020167492-バッファ管理装置 図000006
  • 特開2020167492-バッファ管理装置 図000007
  • 特開2020167492-バッファ管理装置 図000008
  • 特開2020167492-バッファ管理装置 図000009
  • 特開2020167492-バッファ管理装置 図000010
  • 特開2020167492-バッファ管理装置 図000011
  • 特開2020167492-バッファ管理装置 図000012
  • 特開2020167492-バッファ管理装置 図000013
  • 特開2020167492-バッファ管理装置 図000014
  • 特開2020167492-バッファ管理装置 図000015
  • 特開2020167492-バッファ管理装置 図000016
  • 特開2020167492-バッファ管理装置 図000017
  • 特開2020167492-バッファ管理装置 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-167492(P2020-167492A)
(43)【公開日】2020年10月8日
(54)【発明の名称】バッファ管理装置
(51)【国際特許分類】
   H04N 5/91 20060101AFI20200911BHJP
   G06F 12/00 20060101ALI20200911BHJP
【FI】
   H04N5/91
   G06F12/00 580
【審査請求】未請求
【請求項の数】6
【出願形態】OL
【全頁数】26
(21)【出願番号】特願2019-65283(P2019-65283)
(22)【出願日】2019年3月29日
(71)【出願人】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(72)【発明者】
【氏名】安東 俊明
【テーマコード(参考)】
5B160
5C053
【Fターム(参考)】
5B160GA00
5C053LA01
(57)【要約】
【課題】一のフレームを使用する複数の画像処理を並行して実行する際に遅延が発生することを抑制できるバッファ管理装置を提供することを課題とする。
【解決手段】バッファ管理装置10は、動画像に含まれるフレームを一時的に保存する複数のバッファを管理する。バッファ管理装置10において、入力バッファ設定部11は、複数のバッファのうち一のバッファを、フレームが書き込まれる入力バッファに設定する。参照バッファ設定部13は、一のフレームが入力バッファに入力された場合、入力バッファを参照バッファに設定する。参照管理部14は、第1〜第N(Nは2以上の自然数)処理部のうち、参照バッファを参照する画像処理装置の数を示す参照値を管理する。バッファ解放部15は、参照バッファを参照する画像処理装置が存在しないことを参照値が示す場合、参照バッファを待機バッファに設定する。
【選択図】図2
【特許請求の範囲】
【請求項1】
動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理装置であって、
前記複数のフレームバッファのうち一のバッファを、前記フレームが書き込まれる入力バッファに設定する入力バッファ設定部と、
前記一のフレームが前記入力バッファに入力された場合、前記入力バッファを参照バッファに設定する参照バッファ設定部と、
第1〜第N(Nは2以上の自然数)処理部のうち、前記参照バッファを参照する処理部の数を示す参照値を管理する参照管理部と、
前記参照バッファを参照する処理部が存在しないことを前記参照値が示し、かつ、前記参照バッファと異なるバッファが新たに参照バッファに設定された場合、前記参照バッファを前記入力バッファとして使用可能な待機バッファに設定することにより前記参照バッファを解放するバッファ解放部と、を備えるバッファ管理装置。
【請求項2】
請求項1に記載のバッファ管理装置であって、
前記参照管理部は、
第k(kは1以上N以下の自然数)処理部が前記参照バッファの参照を要求した場合に前記参照値を増加させ、前記第k処理部が前記参照バッファの参照を終了した場合に前記参照値を減少させる参照状態管理部、を含むバッファ管理装置。
【請求項3】
請求項1又は2に記載のバッファ管理装置であって、さらに、
前記入力バッファに入力されたフレームに所定の画像処理を実行することにより加工フレームを生成し、生成された加工フレームを待機バッファに入力する画像加工部、を備え、
前記参照バッファ設定部は、前記画像加工部により生成されたフレームが入力された待機バッファを、参照バッファに設定する、バッファ管理装置。
【請求項4】
請求項1〜3のいずれか1項に記載のバッファ管理装置であって、さらに、
前記第1〜第N処理部の各々の実行周期と前記第1〜第N処理部の各々の処理時間とに基づいて前記第1〜第N処理部をグループ化し、グループ化により生成されたグループの数に基づいて、前記バッファ管理装置により管理されるフレームバッファの数を決定する決定部と、を備えるバッファ管理装置。
【請求項5】
請求項4に記載のバッファ管理装置であって、
前記参照管理部は、
前記グループ化により生成された一のグループが第1処理部及び第2処理部を含む場合、前記第1処理部が前記参照バッファを参照する期間が、前記第2処理部が前記参照バッファを参照する期間と重複するように、前記第1処理部及び前記第2処理部の実行タイミングを制御するタイミング制御部、を含むバッファ管理装置。
【請求項6】
動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理方法であって、
前記複数のフレームバッファのうち一のバッファを、前記フレームが書き込まれる入力バッファに設定するステップと、
前記一のフレームが前記入力バッファに入力された場合、前記入力バッファを参照バッファに設定するステップと、
第1〜第N(Nは2以上の自然数)処理部のうち、前記参照バッファを参照する処理部の数を示す参照値を管理するステップと、
前記参照バッファを参照する処理部が存在しないことを前記参照値が示し、かつ、前記参照バッファと異なるバッファが新たに参照バッファに設定された場合、前記参照バッファを前記入力バッファとして使用可能な待機バッファに設定することにより前記参照バッファを解放するステップと、を備えるバッファ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像に含まれるフレームを一時的に保存するためのバッファを管理するバッファ管理装置に関する。
【背景技術】
【0002】
近年、自動車等の移動体に搭載されたカメラにより撮影された動画像を用いて、移動体の運転を支援する運転支援装置の開発が進められている。運転支援装置は、例えば、白線検出装置や、障害物検出装置を含む複数の画像処理装置を搭載する。複数の画像処理装置は、動画像に含まれるフレームを用いた複数の画像処理を並行して実行する。運転支援装置は、これらの画像処理の検出結果に基づいて、移動体が走行中の車線から逸脱しないように、あるいは、障害物を回避するように移動体を制御する。
【0003】
複数の画像処理装置が、動画像に含まれるフレームを用いた画像処理を並行して実行する場合、フレームバッファが複数の画像処理装置の各々に割り当てられる。例えば、特許文献1は、複数の画像出力装置が接続されている画像処理装置を開示している。画像処理装置は、分割された複数のメモリ領域を複数の画像出力装置に割り当てる。
【0004】
しかし、フレームバッファが複数の画像処理装置の各々に割り当てられた場合、動画像のフレームを全てのフレームバッファにコピーしなければならない。フレームのコピーに要する時間は、フレームバッファの数に比例して増加する。複数の画像処理装置は、フレームのコピーが終了するまで待機しなければならず、フレームを用いた処理の遅延が発生するという問題がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平08−237413号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の目的は、一のフレームを使用する複数の画像処理を並行して実行する際に遅延が発生することを抑制できるバッファ管理装置を提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するため、第1の発明は、動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理装置であって、入力バッファ設定部と、参照バッファ設定部と、参照管理部と、バッファ解放部とを備える。入力バッファ設定部は、複数のフレームバッファのうち一のバッファを、フレームが書き込まれる入力バッファに設定する。参照バッファ設定部は、一のフレームが入力バッファに入力された場合、入力バッファを参照バッファに設定する。参照管理部は、第1〜第N(Nは2以上の自然数)処理部のうち、参照バッファを参照する処理部の数を示す参照値を管理する。バッファ解放部は、参照バッファを参照する処理部が存在しないことを参照値が示し、かつ、参照バッファと異なるバッファが新たに参照バッファに設定された場合、参照バッファを入力バッファとして使用可能な待機バッファに設定することにより参照バッファを解放する。
【0008】
第1の発明によれば、第1〜第N処理部の各々に対応するバッファにフレームをコピーすることなく、第1〜第N処理部は、バッファに保存されたフレームを参照することができる。第1〜第N処理部は、遅延を発生させることなく、参照バッファに一時的に保存されたフレームを用いた画像処理を並行して実行できる。また、参照バッファを参照する処理部が存在しない場合、参照バッファは、開放される。従って、フレームバッファが設定されるメモリの記憶容量が圧迫されることを抑制できる。
【0009】
第2の発明は、第1の発明であって、参照管理部は、参照状態管理部を含む。参照状態管理部は、第k(kは1以上N以下の自然数)処理部が参照バッファの参照を要求した場合に参照値を増加させ、第k処理部が参照バッファの参照を終了した場合に参照値を減少させる。
【0010】
第2の発明によれば、参照バッファを参照する処理部の数をリアルタイムに把握することができる。参照バッファを参照する処理部が存在しない場合、バッファ解放部は、この参照バッファを速やかに待機バッファに変更することができる。従って、メモリの記憶容量が圧迫されることをさらに防ぐことができる。
【0011】
第3の発明は、第1又は第2の発明であって、さらに、画像加工部を備える。画像加工部は、入力バッファに入力されたフレームに所定の画像処理を実行することにより加工フレームを生成し、生成された加工フレームを待機バッファに入力する。参照バッファ設定部は、画像加工部により生成されたフレームが入力された待機バッファを、参照バッファに設定する。
【0012】
第3の発明によれば、第1〜第N処理部のうち少なくとも2つの処理部が加工フレームを保存された参照バッファを参照した場合、当該2つの処理部は、個別に所定の画像処理を実行しなくてもよい。これにより、2つの処理部の各々が加工フレームを生成しなくてもよいため、2つの処理部の負荷を軽減することができ、加工フレームを保存する記憶領域を削減することができる。
【0013】
第4の発明は、第1〜第3の発明のいずれかであって、さらに、決定部を備える。決定部は、第1〜第N処理部の各々の実行周期と第1〜第N処理部の各々の処理時間とに基づいて第1〜第N処理部をグループ化し、グループ化により生成されたグループの数に基づいて、バッファ管理装置により管理されるフレームバッファの数を決定する。
【0014】
第4の発明によれば、第1〜第N処理部をグループ化することにより、バッファ管理装置により管理されるフレームバッファの数を特定することができる。これにより、フレームバッファが設定されるメモリを効率的に使用することができる。
【0015】
第5の発明は、第4の発明であって、参照管理部は、タイミング制御部を含む。タイミング制御部は、グループ化により生成された一のグループが第1処理部及び第2処理部を含む場合、第1処理部が参照バッファを参照する期間が、第2処理部が参照バッファを参照する期間と重複するように、第1処理部及び第2処理部の実行タイミングを制御する。
【0016】
第5の発明によれば、第1処理部が参照バッファを参照する期間を、第2処理部が参照バッファを参照する期間と重複させることができるため、バッファ管理装置により管理されるフレームバッファの数を削減することができる。これにより、フレームバッファが設定されるメモリをさらに効率的に使用することができる。
【0017】
第6の発明は、動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理方法であって、a)ステップと、b)ステップと、c)ステップと、d)ステップとを備える。a)ステップは、複数のフレームバッファのうち一のバッファを、フレームが書き込まれる入力バッファに設定する。b)ステップは、一のフレームが入力バッファに入力された場合、入力バッファを参照バッファに設定する。c)ステップは、第1〜第N(Nは2以上の自然数)処理部のうち、参照バッファを参照する処理部の数を示す参照カウント値を管理する。d)ステップは、参照バッファを参照する処理部が存在しないことを参照値が示し、かつ、参照バッファと異なるバッファが新たに参照バッファに設定された場合、参照バッファを入力バッファとして使用可能な待機バッファに設定することにより参照バッファを解放する。
【0018】
第6の発明は、第1の発明に用いられる。
【発明の効果】
【0019】
本発明によれば、一のフレームを使用する複数の画像処理を並行して実行する際に遅延が発生することを抑制できるバッファ管理装置を提供することができる。
【図面の簡単な説明】
【0020】
図1】本発明の第1の実施の形態に係るバッファ管理装置を搭載する画像処理システムの構成を示す機能ブロック図である。
図2図1に示すバッファ管理装置の構成を示す機能ブロック図である。
図3図2に示す参照管理部の構成を示す参照管理部の構成を示す機能ブロック図である。
図4図1に示すバッファ管理装置により管理されるフレームバッファの状態変化の一例を示す図である。
図5図1に示すバッファ管理装置により実行される参照バッファ設定処理のフローチャートである。
図6図1に示す画像処理装置の各々の実行周期及び処理時間の一例を示すタイムチャートである。
図7図2に示すバッファ管理リストの変化の一例を示す図である。
図8図1に示すバッファ管理装置により実行される参照バッファ管理処理のフローチャートである。
図9図8に示す要求受付処理のフローチャートである。
図10図7に示す参照リストの変化の一例を示す図である。
図11図8に示す参照終了処理のフローチャートである。
図12図8に示す未参照バッファ解放処理のフローチャートである。
図13】本発明の第2の実施の形態に係るバッファ管理装置の構成を示す機能ブロック図である。
図14図13に示すバッファ管理装置により実行される要求受付処理のフローチャートである。
図15図14に示す参照バッファ特定処理のフローチャートである。
図16】CPUバス構成を示す図である。
【発明を実施するための形態】
【0021】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0022】
[第1の実施の形態]
[1.画像処理システム100の概略]
図1は、本発明の第1の実施の形態に係るバッファ管理装置10を備える画像処理システム100の構成を示す機能ブロック図である。図1を参照して、カメラ1F、1L、1R及び1Bと、画像処理システム100と、運転支援装置201と、記録装置202と、表示装置203とは、図示しない自動車等の車両に搭載される。
【0023】
カメラ1F、1L、1R及び1Bは、車両の周辺を撮影して動画像を生成する。カメラ1Fは、車両の前方を撮影するフロントカメラであり、動画像2Fを生成する。カメラ1Lは、車両の左方を撮影する左サイドカメラであり、動画像2Lを生成する。カメラ1Rは、車両の右方を撮影する右サイドカメラであり、動画像2Rを生成する。カメラ1Bは、車両の右方を撮影するリアカメラであり、動画像2Bを生成する。動画像2F、2L、2R及び2Bは、画像処理システム100に供給される。
【0024】
画像処理システム100は、カメラ1F、1L、1R及び1Bから動画像2F、2L、2R及び2Bを受ける。画像処理システム100は、その受けた動画像2F、2L、2R及び2Bの各々に含まれるフレームを用いた複数の画像処理を並行して実行する。
【0025】
画像処理システム100は、道路に描かれた白線を検出する白線検出処理の結果を示す白線検出データ221と、車両の移動量を示す移動量データ231とを運転支援装置201に出力する。運転支援装置201は、受けた白線検出データ221及び移動量データ231に基づいて、車両の運転者を支援する運転支援処理を実行する。運転支援処理は、例えば、車両が現在走行中の車線から逸脱することを抑制する車線逸脱抑制処理である。
【0026】
画像処理システム100は、動画像2Fを符号化する符号化処理を実行し、符号化された動画像241を記録装置202に出力する。記録装置202は、ドライブレコーダである。記録装置202は、画像処理システム100から受けた動画像241を記録する。
【0027】
画像処理システム100は、動画像2F、2L、2R及び2Bの各々に含まれるフレームを変換して俯瞰画像251を生成する俯瞰画像生成処理を実行する。俯瞰画像251は、車両及びその周辺の領域を俯瞰した画像である。表示装置203は、車両の車室内に配置され、画像処理システム100から受けた俯瞰画像251を表示する。
【0028】
[2.画像処理システム100の構成]
図1を参照して、画像処理システム100は、バッファ管理装置10と、画像取得部21と、白線検出装置22と、移動量検出装置23と、符号化装置24と、俯瞰画像生成装置25とを備える。
【0029】
画像取得部21は、動画像2Fをカメラ1Fから取得し、取得した動画像2Fをバッファ管理装置10に供給する。動画像2Fは、複数のフレーム3Fを含む。複数のフレーム3Fは、カラー画像である。画像取得部21は、フレーム単位で動画像2Fを取得する。つまり、画像取得部21は、フレーム3Fをカメラ1Fから取得するたびに、その取得したフレーム3Fをバッファ管理装置10に供給する。
【0030】
バッファ管理装置10は、フレーム3Fを画像取得部21から受け、その受けたフレーム3Fをフレームバッファに一時的に保存する。バッファ管理装置10は、白線検出装置22、移動量検出装置23、符号化装置24及び俯瞰画像生成装置25がフレームバッファに一時的に保存されたフレーム3Fを任意のタイミングで参照できるように、フレームバッファを管理する。バッファ管理装置10の構成については、後述する。
【0031】
白線検出装置22と、移動量検出装置23と、符号化装置24と、俯瞰画像生成装置25とは、フレーム3Fを用いた画像処理を並行して実行する。以下の説明において、白線検出装置22と、移動量検出装置23と、符号化装置24と、俯瞰画像生成装置25とを総称して、「4つの画像処理装置」と記載する場合がある。
【0032】
白線検出装置22は、バッファ管理装置10により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム3Fを参照する。白線検出装置22は、参照したフレーム3Fを用いて、白線検出処理を実行する。具体的には、白線検出装置22は、参照したフレーム3Fから道路に描かれた白線を検出し、白線の検出結果を示す白線検出データ221を運転支援装置201に出力する。
【0033】
移動量検出装置23は、バッファ管理装置10により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム3Fを参照する。移動量検出装置23は、参照したフレームを用いて、移動量検出処理を実行する。具体的には、移動量検出装置23は、参照したフレーム3Fに含まれる物体の位置と、過去のフレーム3Fに含まれる当該物体の位置とに基づいて、車両の移動量を検出する。移動量検出装置23は、移動量の検出結果を示す移動量データ231を運転支援装置201に出力する。
【0034】
符号化装置24は、バッファ管理装置10により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム3Fを参照する。符号化装置24は、参照したフレーム3Fを用いて、動画像2Fを符号化する符号化処理を実行する。動画像2Fの符号化には、例えば、H.264が用いられる。符号化装置24は、符号化された動画像241を記録装置202に出力する。
【0035】
俯瞰画像生成装置25は、バッファ管理装置10により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム3Fを参照する。俯瞰画像生成装置25は、動画像2L、2R及び2Bの各々に含まれるフレームを参照する。俯瞰画像生成装置25は、参照した4つのフレームを用いて、俯瞰画像生成処理を実行する。具体的には、俯瞰画像生成装置25は、参照した4つのフレームの各々を、車両の上に設定された仮想視点から見た画像に変換する。俯瞰画像生成装置25は、変換された4つのフレームを合成して俯瞰画像251を生成し、その生成した俯瞰画像251を表示装置203に出力する。
【0036】
[3.バッファ管理装置10の構成]
図2は、図1に示すバッファ管理装置10の構成を示す機能ブロック図である。図2を参照して、バッファ管理装置10は、入力バッファ設定部11と、書き込み部12と、参照バッファ設定部13と、参照管理部14と、バッファ解放部15と、決定部16と、アクセス制御部17と、メモリ18とを備える。
【0037】
入力バッファ設定部11は、メモリ18に設定されたフレームバッファ31〜34のうち、一の待機バッファを特定する。待機バッファとは、入力バッファとして使用可能なフレームバッファである。フレームバッファ31〜34については、後述する。入力バッファ設定部11は、特定した一のフレームバッファを入力バッファに設定する。
【0038】
書き込み部12は、フレーム3Fを画像取得部21から取得し、その取得したフレーム3Fを入力バッファ設定部11により設定された入力バッファに書き込む。
【0039】
参照バッファ設定部13は、書き込み部12が入力バッファへのフレームの書き込みを終了した場合、書き込みの終了した入力バッファを参照バッファに設定する。
【0040】
参照管理部14は、4つの画像処理装置のうち、参照バッファを参照する画像処理部の数を示す参照値41〜44を管理する。参照値41〜44は、フレームバッファ31〜34に対応する。参照バッファごとに生成される。参照値41〜44を総称する場合、「参照値40」と記載する場合がある。参照値40の詳細については後述する。
【0041】
バッファ解放部15は、参照バッファに設定されたフレームバッファの参照値40に基づいて、参照バッファを参照する画像処理装置の有無を判断する。バッファ解放部15は、参照バッファを参照する画像処理装置が存在しない場合、参照バッファを待機バッファに変更する。
【0042】
決定部16は、4つの画像処理装置の各々の実行周期と4つの画像処理装置の1周期当たりの処理時間とに基づいて、4つの画像処理装置をグループ化する。決定部16は、グループ化により生成されたグループの数に基づいて、バッファ管理装置10により管理されるフレームバッファの数を決定する。これにより、バッファ管理装置10は、フレームバッファが設定されるメモリ18を効率的に使用することが可能となる。本実施の形態では、フレームバッファの数は4である。
【0043】
決定部16は、決定したフレームバッファの数に基づいて、フレームバッファとして使用される複数の記憶領域をメモリ18において確保する。決定部16は、確保した複数の記憶領域をフレームバッファ31〜34に設定する。
【0044】
アクセス制御部17は、入力バッファ設定部11と、書き込み部12と、参照バッファ設定部13と、参照管理部14と、バッファ解放部15と、決定部16と、4つの画像処理装置との各々からメモリ18へのアクセスを制御する。
【0045】
メモリ18は、バッファ管理装置10のメインメモリであり、具体的には、RAM(Random Access Memory)である。メモリ18は、フラッシュメモリ等の不揮発性記憶装置であってもよい。
【0046】
メモリ18は、バッファ管理リスト30と、参照値40とを記憶する。バッファ管理リスト30は、フレームバッファ31〜34の各々の状態を記録する。バッファ管理リスト30の詳細については、後述する。
【0047】
[4.参照管理部14の構成]
図3は、図2に示す参照管理部14の構成を示す機能ブロック図である。図3を参照して、参照管理部14は、参照状態管理部141と、タイミング制御部142とを含む。
【0048】
参照状態管理部141は、4つの画像処理装置からの参照要求に応じて、4つの画像処理装置によるフレームバッファへのアクセスを制御する。
【0049】
具体的には、白線検出装置22が参照要求22Bを出力した場合、参照状態管理部141は、参照バッファを特定し、特定した参照バッファへのアクセスを許可する許可通知22Cを白線検出装置22に出力する。
【0050】
同様に、参照状態管理部141は、参照要求23Bを移動量検出装置23から受けた場合、参照バッファへのアクセスを許可する許可通知23Cを移動量検出装置23に出力する。参照状態管理部141は、参照要求24Bを符号化装置24から受けた場合、参照バッファへのアクセスを許可する許可通知24Cを符号化装置24に出力する。参照状態管理部141は、参照要求25Bを俯瞰画像生成装置25から受けた場合、参照バッファへのアクセスを許可する許可通知25Cを俯瞰画像生成装置25に出力する。
【0051】
参照状態管理部141は、参照値41〜44を、フレームバッファ31〜34を参照する画像処理装置の数に応じて変化させる。例えば、参照状態管理部141は、フレームバッファ31の参照を符号化装置24に許可した場合、参照値41をインクリメントする。その後、参照状態管理部141は、符号化装置24から参照終了通知24Dを受けた場合、参照値41をデクリメントする。参照値41がゼロである場合、フレームバッファ31を参照する画像処理装置は存在しない。参照状態管理部141は、一の参照バッファを参照する画像処理装置の数をリアルタイムに把握できる。従って、参照状態管理部141は、一の参照バッファを参照する画像処理装置が存在しない場合、速やかに参照バッファを解放できる。
【0052】
タイミング制御部142は、決定部16により生成された一のグループが複数の画像処理装置を含む場合、一のグループに含まれる画像処理装置の実行開始タイミングを制御する。例えば、一のグループが2つの画像処理装置を含む場合、タイミング制御部142は、一方の画像処理部が参照バッファを参照する期間が他方の画像処理部が参照バッファを参照する期間と重複するように、白線検出装置22及び移動量検出装置23の実行開始タイミングを制御する。
【0053】
[5.バッファ管理装置10の動作]
[5.1.フレームバッファの変化]
図4は、図2に示すフレームバッファ31の状態変化を示す図である。図4を参照しながら、フレームバッファ31が待機バッファ、入力バッファ、参照バッファに変化するタイミングを説明する。フレームバッファ31の変化を説明するにあたり、フレームバッファ31及び32以外のバッファの説明を省略する。図4において、参照値41を、フレームバッファ31に右下に示している。
【0054】
最初に、フレームバッファ31が待機バッファに設定されている。4つの画像処理装置は、待機バッファを参照できない。フレームバッファ31が待機バッファに設定されている場合、参照値41は、0である。
【0055】
図4に示していないが、フレームバッファ31が待機バッファに設定されている期間において、フレームバッファ32が入力バッファに設定されている。書き込み部12は、フレーム3Fをフレームバッファ32に書き込む。フレームバッファ32への書き込みが終了した場合、バッファ管理装置10は、次のフレーム3Fを一時的に保存するために、フレームバッファ31を入力バッファに設定する(ステップS1)。
【0056】
バッファ管理装置10は、次のフレーム3Fを、入力バッファに設定されたフレームバッファ31に書き込む(ステップS2)。4つの画像処理装置は、待機バッファを参照できない。従って、フレームバッファ31の書き込み中において、参照値41は、0である。フレームバッファ31への書き込みが終了した場合、バッファ管理装置10は、フレームバッファ31を入力バッファから参照バッファに変更する(ステップS3)。
【0057】
フレームバッファ31が参照バッファに設定された時点で、フレームバッファ31の参照値41は0である。フレームバッファ32が、参照バッファに既に設定され、符号化装置24及び俯瞰画像生成装置25により参照されている。従って、フレームバッファ32の参照値42は2である。
【0058】
白線検出装置22がバッファ管理装置10に参照要求22Bを出力する(ステップS4)。フレームバッファ31が最も新しい参照バッファであるため、バッファ管理装置10は、フレームバッファ31の参照を白線検出装置22に許可し、参照値41をインクリメントする。参照値41は0から1に変化する。白線検出装置22は、フレームバッファ31を参照して白線検出処理を実行する。
【0059】
移動量検出装置23がバッファ管理装置10に参照要求23Bを出力する(ステップS5)。フレームバッファ31が最も新しい参照バッファであるため、バッファ管理装置10は、フレームバッファ31の参照を移動量検出装置23に許可し、参照値41をインクリメントする。参照値41は1から2に変化する。移動量検出装置23は、フレームバッファ31を参照して移動量検出処理を実行する。
【0060】
白線検出装置22がバッファ管理装置10に参照終了通知22Dを出力する(ステップS6)。バッファ管理装置10が参照値41をデクリメントするため、参照値41は、2から1に変化する。移動量検出装置23がバッファ管理装置10に参照終了通知23Dを出力する(ステップS7)。バッファ管理装置10が参照値41をデクリメントするため、参照値41が1から0に変化する。
【0061】
参照値41が減少して0に変化した場合、バッファ管理装置10は、フレームバッファ31を参照バッファから待機バッファに変更する(ステップS8)。フレームバッファ32は、参照値42が0に変化した時点で待機バッファに変更される。以下、フレームバッファの状態変化が繰り返される。
【0062】
このように、画像処理装置がフレームバッファの参照を要求した場合、バッファ管理装置10は、最新の参照バッファの参照を要求元に許可し、最新の参照バッファの参照値をインクリメントする。参照が終了した場合、バッファ管理装置10は、参照バッファの参照値をデクリメントする。参照バッファの参照値が0に変化した場合、バッファ管理装置10は、参照バッファを解放して待機バッファに変更する。
【0063】
複数の画像処理装置が1つのフレームバッファを共用できるため、複数の画像処理装置の各々は、フレーム3Fのコピー終了を待つことなく、フレーム3Fを用いた画像処理を開始できる。バッファ管理装置10は、一のフレームを使用する複数の画像処理を並行して実行する際の遅延を抑制できる。
【0064】
[5.2.参照バッファの設定]
図5は、図1に示すバッファ管理装置10により実行される参照バッファ設定処理のフローチャートである。以下、図5を参照しながら、フレームバッファが参照バッファに設定されるまでの期間におけるバッファ管理装置10の動作を詳しく説明する。
【0065】
バッファ管理装置10は、画像処理システム100が搭載された車両のイグニッションスイッチがオンされた場合に図5に示す処理を開始する。つまり、図5に示す処理は、バッファ管理装置10の電源がオンされた場合に開始される。ステップS11〜S15の処理は、初期化処理に相当する。
【0066】
(初期化処理)
決定部16が、4つの画像処理装置をグループ化する(ステップS11)。具体的には、4つの画像処理装置が、4つの画像処理装置の各々の実行周期と、4つの画像処理装置の各々の処理時間とに基づいて分類される。
【0067】
図6は、4つの画像処理装置の実行周期及び処理時間の一例を示すタイムチャートである。図6を参照して、4つの画像処理装置の各々は、周期的に画像処理を実行する。
【0068】
実行周期は、画像処理装置が画像処理を開始するタイミングの間隔である。例えば、白線検出装置22が時刻Tb及びTiの各々において白線検出処理を開始するため、白線検出装置22の実行周期P2は、時刻Tbから時刻Tiまでの期間に相当する。
【0069】
処理時間は、画像処理装置が画像処理を開始してから終了するまでの時間の長さである。例えば、白線検出装置22により実行される白線検出処理の開始時刻は時刻Tbであり、白線検出処理の終了時刻は時刻Teである。白線検出装置の処理時間Q2は、時刻Taから時刻Teまでの期間に相当する。
【0070】
白線検出装置22の実行周期P2は、移動量検出装置23の実行周期P3と一致する。白線検出装置22の処理時間Q2は、移動量検出装置23の実行周期Q3と一致する。このため、決定部16は、白線検出装置22及び移動量検出装置23を第1グループに分類する。
【0071】
符号化装置24の実行周期P4は、俯瞰画像生成装置25の実行周期P5と一致する。符号化装置24の処理時間Q4は、俯瞰画像生成装置25の処理時間Q5と一致する。このため、決定部16は、符号化装置24及び俯瞰画像生成装置25を、第1グループと別の第2グループに分類する。
【0072】
再び、図5を参照して、決定部16は、ステップS11により生成されたグループの数に基づいて、バッファ管理装置10により管理されるフレームバッファの数を決定する(ステップS12)。上述のように、4つの画像処理装置が2つのグループに分類された場合、決定部16は、フレームバッファの数を4に決定する。以下、詳しく説明する。
【0073】
第1グループが、白線検出装置22及び移動量検出装置23を含む場合、決定部16は、後述するように、白線検出装置22がフレームバッファを参照する期間と移動量検出装置23がフレームバッファを参照する期間とを重複させる。これにより、第1グループは、参照バッファを共用できる。第2グループが、符号化装置24及び俯瞰画像生成装置25を含む場合、決定部16は、符号化装置24がフレームバッファを参照する期間と、俯瞰画像生成装置25がフレームバッファを参照する期間とを重複される。これにより、第2グループは、参照バッファを共用できる。従って、参照バッファの数は、最大で2つである。また、画像取得部21は、動画像2Fをフレーム単位で取得するため、入力バッファの数は1つであればよい。待機バッファは、1つであればよい。入力バッファが参照バッファに設定された後に、直ちに待機バッファを入力バッファへ変更できればよいためである。この結果、決定部16は、フレームバッファの数を、4つに決定する。なお、フレームバッファの数が4より多くすることは妨げられない。
【0074】
決定部16は、ステップS12で決定されたフレームバッファの数に基づいて、メモリ18においてフレームバッファを生成する(ステップS13)。例えば、フレームバッファの数が4である場合、決定部16は、フレーム3Fのデータサイズに対応する4つの記憶領域をメモリ18において確保する。決定部16は、確保した4つの記憶領域をフレームバッファ31〜34に設定する。
【0075】
決定部16は、ステップS12で生成されたフレームバッファ31〜34の管理に用いるバッファ管理リスト30を生成する(ステップS14)。
【0076】
図7は、図2に示すバッファ管理リスト30の変化の一例を示す図である。図7を参照して、バッファ管理リスト30A〜30Cは、IDと、フレーム番号と、アドレス区間と、バッファ状態と、参照値と、参照権とを記録する。IDは、フレームバッファ31〜34を一意に特定する識別番号である。フレーム番号は、フレームバッファ31〜34に書き込まれるフレームを一意に特定する番号である。フレーム番号は、時間の経過とともに増加する。なお、カメラ1Fが、各フレームに付与されるフレーム番号を決定してもよいし、バッファ管理装置10が決定してもよい。
【0077】
アドレス区間は、メモリ18においてフレームバッファ31〜34が設定された記憶領域を示す。バッファ状態は、フレームバッファ31〜34が待機バッファ、入力バッファ及び参照バッファのうちどのバッファに設定されているかを示す。参照値40は、フレームバッファ31〜34を参照している画像処理装置の数である。参照権は、フレームバッファ31〜34の参照権が4つの画像処理装置に付与されているか否かを示す。
【0078】
バッファ管理リスト30Aは、ステップS14が実行された時点に生成される。バッファ管理リスト30Aにおいて、フレームバッファ31〜34は待機バッファに設定される。4つの画像処理装置が待機バッファを参照できないため、参照値40は全てゼロであり、参照権は設定されない。また、フレームが書き込まれていないため、フレームバッファ31〜34のフレーム番号は記録されない。
【0079】
参照管理部14において、タイミング制御部142は、ステップS11で生成されたグループごとに、画像処理の開始を指示する(ステップS15)。例えば、図6を参照して、タイミング制御部142が、時刻Tbにおいて、画像処理の開始を指示する制御信号22A及び23Aを、第1グループに分類された白線検出装置22及び移動量検出装置23に出力する。白線検出装置22及び移動量検出装置23は、時刻Taから画像処理を開始する。白線検出装置22及び移動量検出装置23は、同じ実行周期及び同じ処理時間を有するため、時刻Tiにおいても同時に画像処理を開始する。
【0080】
同様に、タイミング制御部142は、時刻Tdにおいて、画像処理の開始を指示する制御信号24A及び25Aを、第2グループに分類された符号化装置24及び俯瞰画像生成装置25に出力する。
【0081】
このように、バッファ管理装置10は、画像処理を開始するタイミングをグループごとに揃えることにより、一のグループに含まれる画像処理装置がフレーム3Fを参照する期間を重複させる。一のグループに含まれる画像処理装置が、一の参照バッファを共用することができるため、バッファ管理装置10は、フレームバッファを効率的に使用できる。フレームバッファの数を削減することができるため、メモリ18の記憶容量の圧迫を抑制することができる。
【0082】
なお、タイミング制御部142は、ステップS15を定期的に実行してもよい。これにより、白線検出装置22が画像処理を開始するタイミングと、移動量検出装置23が画像処理を開始するタイミングとのずれが、時間の経過とともに拡大することを防ぐことができる。フレームバッファの効率的な使用を維持することができる。
【0083】
(待機バッファから参照バッファへの変化)
図5を参照して、ステップS11〜S15が終了した後に、バッファ管理装置10は、フレームバッファ31〜34の管理を開始する。
【0084】
入力バッファ設定部11は、ステップS13で生成されたフレームバッファ31〜34のうちフレームバッファ31を入力バッファに設定する(ステップS16)。ステップS15は、図4に示すステップS1に相当する。入力バッファ設定部11は、図7に示すバッファ管理リスト30Aにおいて、フレームバッファ31のバッファ状態を「待機」から「入力」に変更する。バッファ管理リスト30Aは、バッファ管理リスト30Bに変化する。入力バッファ設定部11は、入力バッファの設定を書き込み部12に通知する。
【0085】
書き込み部12は、ステップS14で設定された入力バッファにフレーム3Fを書き込む(ステップS17)。ステップS17は、図4に示すステップS2に対応する。具体的には、書き込み部12は、入力バッファ設定部11からの通知を受けた場合、バッファ管理リスト30に基づいて入力バッファに設定されたフレームバッファ31を特定する。書き込み部12は、画像取得部21が取得したフレーム3Fを、フレームバッファ31に書き込む。
【0086】
フレームバッファ31への書き込みが終了した場合、書き込み部12は、書き込み終了を参照状態管理部141に通知する。参照状態管理部141は、書き込み終了の通知を受けた場合、フレームバッファ31を参照バッファに設定し(ステップS18)、フレームバッファ31の参照権を4つの画像処理装置に付与する(ステップS19)。
【0087】
この結果、図7に示すバッファ管理リスト30Bが、バッファ管理リスト30Cに変化する。具体的には、バッファ管理リスト30Cにおいて、フレームバッファ31に書き込まれたフレーム3Fのフレーム番号が記録される。フレームバッファ31のバッファ状態が、「入力」から「参照」に変更される。参照状態管理部141は、4つの画像処理装置に参照権を付与したことを示す「付与:1〜4」をフレームバッファ31の参照権の欄に記録する。参照権の欄に記録される数値は、4つの画像処理装置の各々に割り当てられるコードである。「1」は、白線検出装置22を示す。「2」は、移動量検出装置23を示す。「3」は、符号化装置24を示す。「4」は、俯瞰画像生成装置25を示す。
【0088】
以下の説明において、バッファ管理リスト30のうち、参照バッファに設定されたフレームバッファのレコードを「参照リスト51」と記載する。参照リスト51に含まれるレコードの数は、参照バッファの数に応じて変化する。
【0089】
バッファ管理装置10は、バッファ管理を終了するか否かを判断する(ステップS20)。具体的には、画像処理システム100の電源がオフされる場合、バッファ管理装置10は、バッファ管理の終了を決定し(ステップS20においてYes)、図5に示す処理を終了する。例えば、車両のイグニッションスイッチがオフされた場合、バッファ管理装置10は、バッファ管理を終了する。
【0090】
バッファ管理装置10は、バッファ管理を継続する場合(ステップS20においてNo)、ステップS16に戻る。次のフレームが書き込まれる入力バッファを設定するためである。入力バッファ設定部11は、ステップS16を再び実行する場合、待機バッファの中から入力バッファを選択する。
【0091】
[5.3.参照バッファの管理]
図8は、図1に示すバッファ管理装置10により実行される参照バッファ管理処理のフローチャートである。図8に示す参照バッファ管理処理において、参照バッファの参照値及び参照権が、4つの画像処理装置の参照状況に応じて変更される。また、参照バッファを参照する画像処理装置が存在しない場合、参照バッファが待機バッファに変更される。
【0092】
バッファ管理装置10は、図5に示す参照バッファ設定処理と、図8に示す参照バッファ管理処理とを並行して実行する。つまり、入力バッファへの書き込みと、参照バッファの管理とが並行して実行される。
【0093】
図8を参照して、参照状態管理部141は、参照要求を受けたか否かを判断する(ステップS21)。参照状態管理部141は、参照要求を受けた場合(ステップS21においてYes)、参照バッファの参照を許可する要求受付処理(ステップS22)を実行する。要求受付処理(ステップS22)の詳細については後述する。
【0094】
その後、参照状態管理部141は、未参照バッファ解放処理(ステップS25)を実行する。未参照バッファは、参照バッファのうち、4つの画像処理装置のいずれからもアクセスされていないバッファである。参照状態管理部141が所定の条件を満たす未参照バッファを解放することにより、フレームバッファを効率的に使用することができる。未参照バッファ解放処理(ステップS25)の詳細については後述する。
【0095】
参照状態管理部141は、参照要求を受けていない場合(ステップS21においてNo)、参照終了通知を受けたか否かを判断する(ステップS23)。参照状態管理部141は、参照終了通知を受けた場合(ステップS23においてYes)、参照終了に応じて参照バッファの設定を変更する参照終了処理(ステップS24)を実行する。その後、参照状態管理部141は、ステップS25に進む。参照終了処理(ステップS24)の詳細については後述する。
【0096】
参照状態管理部141は、参照終了通知を受けていない場合(ステップS23にいてNo)、未参照バッファ解放処理を実行する(ステップS25)。
【0097】
バッファ管理装置10は、バッファ管理を終了するか否かを判断する(ステップS26)。ステップS26は、図5に示すステップS20と同様の処理である。バッファ管理装置10は、バッファ管理の終了を決定した場合(ステップS26においてYes)、図8に示す処理を終了する。バッファ管理装置10は、バッファ管理を終了しない場合(ステップS26においてNo)、ステップS21に戻る。
【0098】
[5.3.1.要求受付処理(ステップS22)]
図9は、図8に示す要求受付処理(ステップS22)のフローチャートである。第1グループに分類された白線検出装置22及び移動量検出装置23が参照を要求する場合を例にして、図9に示す要求受付処理(ステップS22)を詳しく説明する。最初に白線検出装置が参照を要求し、その次に移動量検出装置23が参照を要求する。
【0099】
白線検出装置22が参照を要求してから移動量検出装置23が参照を要求するまでの期間において、フレームバッファ31のみが参照バッファに設定されていると仮定する。つまり、バッファ管理装置10が、図7に示すバッファ管理リスト30Cを保持している場合において、白線検出装置22及び移動量検出装置23が参照を要求する。
【0100】
(白線検出装置22が参照を要求した場合)
図9を参照して、参照状態管理部141は、白線検出装置22から参照要求22Bを受けた場合、最新の参照バッファを特定する(ステップS221)。具体的には、参照状態管理部141は、バッファ管理リスト30Cを参照して、フレームバッファ31を特定する。フレームバッファ31のみが、参照バッファに設定されているためである。
【0101】
以下、図9及び図10を参照しながら、要求受付処理(ステップS22)の詳細な説明を続ける。図10は、図7に示す参照リスト51の変化の一例を示す図である。図10に示す参照リスト51Aは、図7に示すバッファ管理リスト30Cが有する参照リスト51と同じである。
【0102】
参照状態管理部141は、白線検出装置22がステップS221で特定したフレームバッファ31の参照権を有しているか否かを判断する(ステップS222)。参照リスト51Aにおいて、参照権が白線検出装置22に付与されている(ステップS222においてYes)。このため、参照状態管理部141は、参照リスト51Aに記録されている参照値41をインクリメントする(ステップS223)。参照値41が0から1へ増加することにより、参照リスト51Aが参照リスト51Bに変化する。
【0103】
参照状態管理部141は、許可通知22Cを白線検出装置22に出力することにより、フレームバッファ31の参照を白線検出装置22に許可する(ステップS224)。これにより、白線検出装置22は、フレームバッファ31にアクセスすることができる。白線検出装置22は、フレームバッファ31に書き込まれたフレーム3Fを用いて、白線検出処理を開始する。その後、参照状態管理部141は、図9に示す処理を終了する。
【0104】
ステップS222の説明に戻る。白線検出装置22の参照権が取り消されている場合(ステップS222においてNo)、参照状態管理部141は、白線検出装置22がフレームバッファ31を参照済みであると判断する。この場合、参照状態管理部141は、新たな参照バッファが設定されるまで待機する(ステップS225)。
【0105】
参照状態管理部141は、新たな参照バッファが設定された場合(ステップS225においてYes)、ステップS221に戻る。これにより、白線検出装置22は、新たに設定された参照バッファを用いて、白線検出処理を実行することが可能となる。
【0106】
(移動量検出装置23が参照を要求した場合)
白線検出装置22に続いて、移動量検出装置23が参照要求23Bをバッファ管理装置10に出力する。バッファ管理装置10は、参照要求22Bを受けた時点で、図10に示す参照リスト51Bを保持している。
【0107】
図9及び図10を参照して、参照状態管理部141は、フレームバッファ31を最新の参照バッファとして特定する(ステップS221)。白線検出装置22が参照を要求してから移動量検出装置23が参照を要求するまでの期間において、フレームバッファ31のみが参照バッファに設定されているためである。
【0108】
参照リスト51Bにおいて、フレームバッファ31の参照権が移動量検出装置23に設定されている(ステップS222においてYes)。参照状態管理部141は、参照リスト51Bに記録されている参照値41をインクリメントする(ステップS223)。参照値41が1から2へ増加するため、参照リスト51Bが参照リスト51Cに変化する。
【0109】
参照状態管理部141は、許可通知23Cを移動量検出装置23に出力することにより、フレームバッファ31の参照を移動量検出装置23に許可する(ステップS224)。れにより、移動量検出装置23は、フレームバッファ31にアクセスできる。移動量検出装置23は、フレームバッファ31に書き込まれたフレーム3Fを用いて、移動量検出処理を開始する。その後、参照状態管理部141は、図9に示す処理を終了する。
【0110】
フレームバッファ31のみが参照バッファに設定されている期間において、符号化装置24及び俯瞰画像生成装置25が、バッファ管理装置10に参照を要求する場合があり得る。この場合においても、参照状態管理部141が図9に示す処理を実行するため、参照値41は、最大で4まで増加する。
【0111】
[5.3.2.参照終了処理(ステップS24)]
図11は、図8に示す参照終了処理(ステップS24)のフローチャートである。参照状態管理部141は、参照終了通知を受けた場合、図11に示す処理を開始する。
【0112】
図10及び図11を参照しながら、白線検出装置22及び移動量検出装置23がフレームバッファ31を参照している場合を例にして、参照終了処理(ステップS24)を説明する。最初に、白線検出装置22が参照終了通知22Dを出力し、続いて、移動量検出装置23が参照終了通知23Dを出力すると仮定する。
【0113】
(白線検出装置22が参照終了を通知した場合)
参照状態管理部141は、参照終了通知22Dを白線検出装置22から受けた場合、フレームバッファ31を白線検出装置22が参照していたバッファとして特定する(ステップS241)。
【0114】
参照状態管理部141は、ステップS241で特定したフレームバッファ31の参照値41をデクリメントする(ステップS242)。参照リスト51Cにおいて、参照値41が2から1に減少する。参照状態管理部141は、白線検出装置22に付与されていたフレームバッファ31の参照権を取り消す(ステップS243)。参照リスト51Cの参照権の欄において、「付与:2〜4」及び「取り消し:1」が記録される。つまり、白線検出装置22の参照権が取り消されたことが、参照リスト51Cに記録される。フレームバッファ31の参照権は、移動量検出装置23、符号化装置24及び俯瞰画像生成装置に継続して付与される。この結果、参照リスト51Cは、参照リスト51Dに変化する。
【0115】
参照状態管理部141は、参照値41がゼロに変化したか否かを判断する(ステップS244)。移動量検出装置23がフレームバッファ31の参照を継続しているため、参照リスト51Dの参照値は1である(ステップS244においてNo)。参照状態管理部141は、フレームバッファ31を参照バッファのまま維持し(ステップS246)、図11に示す処理を終了する。
【0116】
(移動量検出装置23が参照終了を通知した場合)
続いて、参照状態管理部141は、参照終了通知23Dを移動量検出装置23から受けた場合、図11に示す処理を再び開始する。参照状態管理部141は、フレームバッファ31を移動量検出装置23が参照していたバッファとして特定する(ステップS241)。移動量検出装置23がフレームバッファ31を参照していたためである。
【0117】
参照状態管理部141は、ステップS241で特定したフレームバッファ31の参照値41をデクリメントする(ステップS242)。参照リスト51Dにおいて、参照値41が1から0に減少する。参照状態管理部141は、移動量検出装置23に付与されていたフレームバッファ31の参照権を取り消す(ステップS243)。図10に示す参照リスト51Dの参照権の欄において、「付与:3〜4」及び「取り消し:1〜2」が記録される。つまり、白線検出装置22及び移動量検出装置23の参照権が取り消されたことが記録される。フレームバッファ31の参照権が符号化装置24及び俯瞰画像生成装置に継続して付与される。この結果、参照リスト51Dは、参照リスト51Eに変化する。
【0118】
参照値が1から0に変化したため(ステップS244においてYes)。参照状態管理部141は、フレームバッファ31を参照している画像処理装置が存在しないと判断する。参照状態管理部141は、フレームバッファ31を参照バッファから待機バッファに変更する(ステップS245)。具体的には、参照リスト51Eにおいて、フレームバッファ31のバッファ状態が、「参照」から「待機」に変更される。
【0119】
フレームバッファ31が最新の参照バッファである期間において、符号化装置24及び俯瞰画像生成装置25が参照を要求しない。この場合、フレームバッファ31は、符号化装置24及び俯瞰画像生成装置25により参照されることなく、参照バッファから待機バッファに変更される。なお、フレームバッファ31は、待機バッファにされた後に入力バッファに再び設定される。従って、符号化装置24及び俯瞰画像生成装置25は、再び参照バッファに設定されたフレームバッファ31を参照することがあり得る。
【0120】
[5.3.3.未参照バッファ解放処理(ステップS25)]
図12は、図8に示す未参照バッファ解放処理(ステップS25)のフローチャートである。以下、図12を参照して、参照状態管理部141は、未参照バッファが存在するか否かを判断する(ステップS251)。未参照バッファは、上述のように、参照バッファのうち、4つの画像処理装置のいずれにもアクセスされていないバッファである。
【0121】
未参照バッファが存在しない場合(ステップS251においてNo)、参照状態管理部141は、図12に示す処理を終了する。
【0122】
未参照バッファが存在する場合(ステップS251においてYes)、参照状態管理部141は、未参照時間が所定時間を超えているか否かを判断する(ステップS252)。フレームバッファ32が未参照バッファである場合、未参照時間は、フレームバッファ32が参照バッファに設定された時刻から、フレームバッファ32の参照が許可されるまでの時間である。
【0123】
未参照時間が所定時間を超えていない場合(ステップS252においてNo)、参照状態管理部141は、図12に示す処理を終了する。この場合、未参照バッファは、待機バッファに変更されない。
【0124】
未参照時間が所定時間を超えた場合(ステップS252においてYes)、参照状態管理部141は、未参照バッファを解放する(ステップS253)。つまり、参照状態管理部141は、未参照バッファを待機バッファに変更する。
【0125】
所定時間は、例えば、動画像2Fのフレーム間隔である。未参照時間がフレーム間隔に相当する時間を超えた場合、新たなフレームが書き込まれた最新の参照バッファが設定される。この場合、4つの画像処理装置が未参照バッファを参照しなくてもよい。従って、参照状態管理部141は、未参照時間が所定時間を超えた未参照バッファを待機バッファに変更する。フレームバッファが設定バッファから待機バッファへ変更される上限時間を設定することにより、フレームバッファを有効に利用することが可能となる。
【0126】
[5.4.参照バッファが設定される期間の具体例]
以下、図6を参照しながら、参照バッファが設定される期間の具体例を説明する。図6を参照して、フレームバッファ31が、時刻Taから時刻Tcまでの期間において最新バッファである。フレームバッファ32が、時刻Tcから時刻Tfまでの期間において最新バッファである。フレームバッファ33が、時刻Tfから時刻Thまでの期間において最新バッファである。フレームバッファ34が、時刻Thから時刻Tjまでの期間において最新バッファである。
【0127】
白線検出装置22及び移動量検出装置23が、時刻Tbにおいて、バッファの参照を要求する。時刻Tbは、時刻Taよりも後であり、かつ、時刻Tcよりも前である。白線検出装置22及び移動量検出装置23は、時刻Tbにおいて最新の参照バッファであるフレームバッファ31を、時刻Tbから時刻Teまでの期間Aにおいて参照する。時刻Teは、時刻Tcよりも後であり、かつ、時刻Tfよりも前である。フレームバッファ31の参照値41は、時刻Tbにおいて0から2に増加し、時刻Teにおいて2から0に減少する。従って、フレームバッファ31が参照バッファに設定される期間は、時刻Taから時刻Teまでである。時刻Tcから時刻Teまでの期間において、参照バッファは、フレームバッファ31及び32の2つである。
【0128】
符号化装置24及び俯瞰画像生成装置25が、時刻Tdにおいて、バッファの参照を要求する。時刻Tdは、時刻Tcよりも後であり、かつ、時刻Teよりも前である。符号化装置24及び俯瞰画像生成装置25は、時刻Tdにおいて最新の参照バッファであるフレームバッファ32を、時刻Tdから時刻Tgの期間Bにおいて参照する。時刻Tgは、時刻Tfよりも後であり、かつ、時刻Thよりも前である。フレームバッファ32の参照値42は、時刻Tdにおいて0から2に増加し、時刻Tgにおいて2から0に減少する。この結果、フレームバッファ32は、時刻Tcから時刻Tgまでの期間において、参照バッファに設定される。時刻Tfから時刻Tgまでの期間において、参照バッファは、フレームバッファ32及び332つである。
【0129】
バッファ管理装置10は、画像処理装置からの参照要求を受けた場合、最新の参照バッファを参照要求元に参照させる。フレームバッファが参照バッファに設定される期間を短縮できるため、フレームバッファを効率よく利用できる。
【0130】
フレームバッファ33は、時刻Tfから時刻Thまでの期間において、最新の参照バッファである。しかし、4つの画像処理装置は、時刻Tfから時刻Thまでの期間において、参照を要求しない。画像処理が、時刻Tfから時刻Thまでの期間において開始されないためである。フレームバッファ33は、時刻Tfから時刻Thまでの期間Cにおいて未参照バッファである。期間Cがフレーム間隔に相当するため、フレームバッファ33は、時刻Thにおいて、参照バッファから待機バッファに変更される。
【0131】
白線検出装置22及び移動量検出装置23が、時刻Tiにおいて、バッファの参照を要求する。時刻Tiは、時刻Thよりも後であり、かつ、時刻Tiよりも前である。この場合、白線検出装置22及び移動量検出装置23は、フレームバッファ31を、時刻Tiから時刻Tkまの期間において参照する。時刻Tkは、時刻Tjよりも後の時刻である。フレームバッファ31の参照値41は、時刻Tiにおいて0から2に変化し、時刻Tkにおいて2から0に変化する。この結果、フレームバッファ31は、期間Dにおいて、参照バッファに設定される。
【0132】
以上説明したように、バッファ管理装置10は、画像処理装置からフレームバッファの参照要求を受けた場合、最新の参照バッファの参照を画像処理装置に許可する。これにより、複数の画像処理装置が1つのフレームバッファを共用できるため、複数の画像処理装置の各々は、フレーム3Fのコピー終了を待つことなく、フレーム3Fを用いた画像処理を開始できる。また、参照バッファを参照する画像処理装置が存在しない場合、バッファ管理装置10は、参照バッファを解放するため、フレームバッファを効率的に使用することができる。
【0133】
[第2の実施の形態]
[1.バッファ管理装置10Aの構成]
図13は、本発明の第2の実施の形態に係るバッファ管理装置10Aの構成を示す機能ブロック図である。図13を参照して、バッファ管理装置10Aは、図2に示すバッファ管理装置10の構成に加えて、画像加工部19を備える。
【0134】
バッファ管理装置10Aは、画像加工部19をさらに備える点を除き、バッファ管理装置10の構成と同じ構成を備える。従って、バッファ管理装置10Aに関する説明のうち、画像加工部19に関連する説明以外の説明を省略する。
【0135】
画像加工部19は、参照バッファに保存されたフレーム3Fに対して所定の画像処理を実行して、加工フレームを生成する。本実施の形態において、所定の画像処理は、カラー画像をグレースケール画像に変換するグレースケール変換処理である。画像加工部19は、待機バッファのうちいずれか1つのバッファを選択する。画像加工部19は、カラー画像から生成したグレースケール画像を、選択したバッファに保存する。画像加工部19は、グレースケール画像が保存されたバッファを、参照バッファに設定する。
【0136】
白線検出装置22及び移動量検出装置23の各々は、画像処理の負荷を軽減するためにグレースケール画像を使用する。つまり、白線検出装置22及び移動量検出装置23の各々は、前処理として、グレースケール変換処理を実行する。白線検出装置22及び移動量検出装置23が個別にグレースケール変換処理を実行した場合、画像処理システム100の効率が低下する。
【0137】
本実施の形態において、画像加工部19により生成されたグレースケール画像が参照バッファに保存される。これにより、グレースケール画像の生成処理の実行回数を抑制できるため、画像処理の効率を向上させることができ、加工フレームを保存する記憶領域を削減することができる。
【0138】
[2.バッファ管理装置10Aの動作]
図14は、図13に示すバッファ管理装置10Aにより実行される要求受付処理のフローチャートである。バッファ管理装置10Aは、図10に示す要求受付処理に代えて、図14に示す要求受付処理を実行する。図14に示す要求受付処理は、図10に示す要求受付処理が備えるステップS221に代えて、参照バッファ特定処理(ステップS500)を実行する。これにより、バッファ管理装置10Aは、カラー画像を参照する画像処理装置と、グレースケール画像を参照する画像処理装置とに対して、適切な参照バッファを割り当てることができる。
【0139】
図14を参照して、参照状態管理部141は、参照要求を受けた場合、参照要求元が参照するバッファを特定するバッファ特定処理を実行する(ステップS500)。参照状態管理部141は、ステップS500の実行後、ステップS222に進む。図14に示すステップS222以降の処理は、図10に示す処理と同じであるため、その説明を省略する。
【0140】
図15は、図14に示す参照バッファ特定処理(S500)のフローチャートである。白線検出装置22及び移動量検出装置23がグレースケール画像を使用し、符号化装置24及び俯瞰画像生成装置25がカラー画像を使用する場合を例にして、参照バッファ特定処理(ステップS500)を詳しく説明する。
【0141】
図15を参照して、参照状態管理部141は、参照要求元がグレースケール画像を参照するか否かを判断する(ステップS501)。
【0142】
符号化装置24及び俯瞰画像生成装置25が参照要求元である場合、参照状態管理部141は、参照要求元がカラー画像を参照すると判断する(ステップS501においてNo)。この場合、参照状態管理部141は、カラー画像を保存した最新の参照バッファを特定する(ステップS508)。ステップS508は、図10に示すステップS221に相当する。その後、参照状態管理部141は、図15に示す処理を終了する。
【0143】
白線検出装置22及び移動量検出装置23が参照要求元である場合、参照状態管理部141は、参照要求元がグレースケール画像を参照すると判断する(ステップS501においてYes)。この場合、参照状態管理部141は、グレースケール画像を保存した参照バッファが存在するか否かを判断する(ステップS502)。
【0144】
グレースケール画像を保存した参照バッファが存在する場合(ステップS502においてYes)、参照状態管理部141は、グレースケール画像を保存した最新の参照バッファを特定する(ステップS507)。参照状態管理部141は、ステップS507で特定した参照バッファを、参照要求元が参照するバッファに決定し、図15に示す処理を終了する。
【0145】
グレースケール画像を保存した参照バッファが存在しない場合(ステップS502においてNo)、参照状態管理部141は、カラー画像を保存する最新の参照バッファを特定する。画像加工部19は、参照状態管理部141によって特定された参照バッファに保存されたフレーム3Fから、グレースケール画像を生成する(ステップS503)。画像加工部19は、グレースケール変換処理を実行する間、ステップS503で特定した参照バッファを参照する。従って、参照状態管理部141は、本実施の形態において、4つの画像処理装置だけでなく、画像加工部19に参照権を付与する。参照状態管理部141は、画像加工部19からの参照要求及び参照終了通知に応じて、参照値を変化させる。
【0146】
画像加工部19は、待機バッファに設定されたフレームバッファの中から一のバッファを選択する(ステップS504)。画像加工部19は、ステップS503で生成したグレースケール画像を、ステップS504で選択したバッファに保存する(ステップS505)。画像加工部19は、ステップS505においてグレースケール画像が保存されたバッファを参照バッファに設定する(ステップS506)。
【0147】
参照状態管理部141は、ステップS506で設定された参照バッファを、グレースケール画像が保存された最新の参照バッファとして特定する(ステップS507)。その後、バッファ管理装置10Aは、図15に示す処理を終了する。
【0148】
バッファ管理装置10Aにおいて、決定部16は、入力バッファに設定されるフレームバッファの数と、待機バッファに設定されるフレームバッファの数と、グレースケール画像を保存するフレームバッファの数とを、ステップS11で生成されたグループの数に加えた数値のバッファ数として算出する。決定部16は、算出したバッファ数のフレームバッファを生成すればよい。
【0149】
入力バッファに設定されるフレームバッファの数と、待機バッファに設定されるフレームバッファの数とは、それぞれ1である。グレースケール画像を保存するフレームバッファの数は、グレースケール画像を使用する画像処理装置を含むグループの数に一致する。
【0150】
以上説明したように、バッファ管理装置10Aは、参照バッファに保存されたフレームからグレースケール画像を生成し、生成されたグレースケール画像を保存したバッファを参照バッファに設定する。これにより、グレースケール画像の生成処理の実行回数を抑制できるため、画像処理の効率を向上させることができる。
【0151】
[変形例]
上記実施の形態において、4つの画像処理装置が、白線検出装置22、移動量検出装置23、符号化装置24及び俯瞰画像生成装置25である例を説明したが、これに限られない。画像処理システム100は、並行して実行される複数の画像処理装置を備えていればよい。
【0152】
上記実施の形態において、画像加工部19が、カラー画像からグレースケール画像を生成する例を説明したが、これに限られない。画像加工部19は、少なくとも2つの画像処理装置が参照する画像をフレーム3Fから生成すればよい。例えば、画像加工部19は、カラー画像からエッジ抽出画像を生成してもよい。
【0153】
上記実施の形態において、バッファ管理装置10が、4つのフレームバッファを管理する例を説明したが、これに限られない。バッファ管理装置10は、並行して実行する画像処理装置の数や、画像処理装置のグループ化により生成されたグループの数に応じて決定すればよい。
【0154】
上記実施の形態において、バッファ管理装置10が、4つの画像処理装置の実行周期及び処理時間の両者に基づいて、4つの画像処理装置をグループ化する例を説明したが、これに限られない。バッファ管理装置10は、4つの画像処理装置の実行周期及び処理時間の少なくとも一方に基づいて、4つの画像処理装置をグループ化すればよい。
【0155】
上記実施の形態において、4つの画像処理装置が、バッファ管理装置10により管理されるフレームバッファを参照する例を説明したが、これに限られない。画像処理装置の数は、2つ以上であればよい。また、バッファ管理装置10により管理されるフレームを参照する装置は、画像処理装置に限定されない。フレームバッファに保存されたフレームを使用する装置であればよい。
【0156】
上記実施の形態において、バッファ管理装置10が、カメラ1Fにより生成された動画像2Fのフレーム3Fを取得する例を説明したが、これに限られない。バッファ管理装置10は、カメラ1L、1R及び1Bの各々に生成された動画像のフレームを取得してもよい。また、カメラ1F、1L、1R及び1Bの各々に対応したバッファ管理装置10を用いてもよい。
【0157】
上記実施の形態において、バッファ管理装置10は、4つの画像処理装置をグループ化して複数のグループを生成する例を説明したが、これに限られない。バッファ管理装置10は、グループ化をしなくてもよい。
【0158】
上記実施の形態で説明したバッファ管理装置10及び10Aの各機能ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0159】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0160】
また、上記各実施の形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施の形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0161】
また、上記実施の形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0162】
例えば、上記実施の形態(変形例を含む)において、バッファ管理装置10及び10Aの各機能ブロックをソフトウェアにより実現する場合、図16に示したハードウェア構成(例えば、CPU、ROM、RAM、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【0163】
また、上記実施の形態における処理方法の実行順序は、必ずしも、上記実施の形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0164】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0165】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0166】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【0167】
100 画像処理システム
10,10A バッファ管理装置
11 入力バッファ設定部
12 書き込み部
13 参照バッファ設定部
14 参照管理部
15 バッファ解放部
17 アクセス制御部
18 メモリ
19 画像加工部
21 画像取得部
22 白線検出装置
23 移動量検出装置
24 符号化装置
25 俯瞰画像生成装置
141 参照状態管理部
142 タイミング制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16