(57)【要約】【課題】一のフレームを使用する複数の画像処理を並行して実行する際に遅延が発生することを抑制できるバッファ管理装置を提供することを課題とする。【解決手段】バッファ管理装置１０は、動画像に含まれるフレームを一時的に保存する複数のバッファを管理する。バッファ管理装置１０において、入力バッファ設定部１１は、複数のバッファのうち一のバッファを、フレームが書き込まれる入力バッファに設定する。参照バッファ設定部１３は、一のフレームが入力バッファに入力された場合、入力バッファを参照バッファに設定する。参照管理部１４は、第１〜第Ｎ（Ｎは２以上の自然数）処理部のうち、参照バッファを参照する画像処理装置の数を示す参照値を管理する。バッファ解放部１５は、参照バッファを参照する画像処理装置が存在しないことを参照値が示す場合、参照バッファを待機バッファに設定する。【選択図】図２
2020167492.tif 000002
【特許請求の範囲】
【請求項１】
動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理装置であって、
前記複数のフレームバッファのうち一のバッファを、前記フレームが書き込まれる入力バッファに設定する入力バッファ設定部と、
前記一のフレームが前記入力バッファに入力された場合、前記入力バッファを参照バッファに設定する参照バッファ設定部と、
第１〜第Ｎ（Ｎは２以上の自然数）処理部のうち、前記参照バッファを参照する処理部の数を示す参照値を管理する参照管理部と、
前記参照バッファを参照する処理部が存在しないことを前記参照値が示し、かつ、前記参照バッファと異なるバッファが新たに参照バッファに設定された場合、前記参照バッファを前記入力バッファとして使用可能な待機バッファに設定することにより前記参照バッファを解放するバッファ解放部と、を備えるバッファ管理装置。
【請求項２】
請求項１に記載のバッファ管理装置であって、
前記参照管理部は、
第ｋ（ｋは１以上Ｎ以下の自然数）処理部が前記参照バッファの参照を要求した場合に前記参照値を増加させ、前記第ｋ処理部が前記参照バッファの参照を終了した場合に前記参照値を減少させる参照状態管理部、を含むバッファ管理装置。
【請求項３】
請求項１又は２に記載のバッファ管理装置であって、さらに、
前記入力バッファに入力されたフレームに所定の画像処理を実行することにより加工フレームを生成し、生成された加工フレームを待機バッファに入力する画像加工部、を備え、
前記参照バッファ設定部は、前記画像加工部により生成されたフレームが入力された待機バッファを、参照バッファに設定する、バッファ管理装置。
【請求項４】
請求項１〜３のいずれか１項に記載のバッファ管理装置であって、さらに、
前記第１〜第Ｎ処理部の各々の実行周期と前記第１〜第Ｎ処理部の各々の処理時間とに基づいて前記第１〜第Ｎ処理部をグループ化し、グループ化により生成されたグループの数に基づいて、前記バッファ管理装置により管理されるフレームバッファの数を決定する決定部と、を備えるバッファ管理装置。
【請求項５】
請求項４に記載のバッファ管理装置であって、
前記参照管理部は、
前記グループ化により生成された一のグループが第１処理部及び第２処理部を含む場合、前記第１処理部が前記参照バッファを参照する期間が、前記第２処理部が前記参照バッファを参照する期間と重複するように、前記第１処理部及び前記第２処理部の実行タイミングを制御するタイミング制御部、を含むバッファ管理装置。
【請求項６】
動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理方法であって、
前記複数のフレームバッファのうち一のバッファを、前記フレームが書き込まれる入力バッファに設定するステップと、
前記一のフレームが前記入力バッファに入力された場合、前記入力バッファを参照バッファに設定するステップと、
第１〜第Ｎ（Ｎは２以上の自然数）処理部のうち、前記参照バッファを参照する処理部の数を示す参照値を管理するステップと、
前記参照バッファを参照する処理部が存在しないことを前記参照値が示し、かつ、前記参照バッファと異なるバッファが新たに参照バッファに設定された場合、前記参照バッファを前記入力バッファとして使用可能な待機バッファに設定することにより前記参照バッファを解放するステップと、を備えるバッファ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像に含まれるフレームを一時的に保存するためのバッファを管理するバッファ管理装置に関する。
【背景技術】
【０００２】
近年、自動車等の移動体に搭載されたカメラにより撮影された動画像を用いて、移動体の運転を支援する運転支援装置の開発が進められている。運転支援装置は、例えば、白線検出装置や、障害物検出装置を含む複数の画像処理装置を搭載する。複数の画像処理装置は、動画像に含まれるフレームを用いた複数の画像処理を並行して実行する。運転支援装置は、これらの画像処理の検出結果に基づいて、移動体が走行中の車線から逸脱しないように、あるいは、障害物を回避するように移動体を制御する。
【０００３】
複数の画像処理装置が、動画像に含まれるフレームを用いた画像処理を並行して実行する場合、フレームバッファが複数の画像処理装置の各々に割り当てられる。例えば、特許文献１は、複数の画像出力装置が接続されている画像処理装置を開示している。画像処理装置は、分割された複数のメモリ領域を複数の画像出力装置に割り当てる。
【０００４】
しかし、フレームバッファが複数の画像処理装置の各々に割り当てられた場合、動画像のフレームを全てのフレームバッファにコピーしなければならない。フレームのコピーに要する時間は、フレームバッファの数に比例して増加する。複数の画像処理装置は、フレームのコピーが終了するまで待機しなければならず、フレームを用いた処理の遅延が発生するという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−２３７４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一のフレームを使用する複数の画像処理を並行して実行する際に遅延が発生することを抑制できるバッファ管理装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、第１の発明は、動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理装置であって、入力バッファ設定部と、参照バッファ設定部と、参照管理部と、バッファ解放部とを備える。入力バッファ設定部は、複数のフレームバッファのうち一のバッファを、フレームが書き込まれる入力バッファに設定する。参照バッファ設定部は、一のフレームが入力バッファに入力された場合、入力バッファを参照バッファに設定する。参照管理部は、第１〜第Ｎ（Ｎは２以上の自然数）処理部のうち、参照バッファを参照する処理部の数を示す参照値を管理する。バッファ解放部は、参照バッファを参照する処理部が存在しないことを参照値が示し、かつ、参照バッファと異なるバッファが新たに参照バッファに設定された場合、参照バッファを入力バッファとして使用可能な待機バッファに設定することにより参照バッファを解放する。
【０００８】
第１の発明によれば、第１〜第Ｎ処理部の各々に対応するバッファにフレームをコピーすることなく、第１〜第Ｎ処理部は、バッファに保存されたフレームを参照することができる。第１〜第Ｎ処理部は、遅延を発生させることなく、参照バッファに一時的に保存されたフレームを用いた画像処理を並行して実行できる。また、参照バッファを参照する処理部が存在しない場合、参照バッファは、開放される。従って、フレームバッファが設定されるメモリの記憶容量が圧迫されることを抑制できる。
【０００９】
第２の発明は、第１の発明であって、参照管理部は、参照状態管理部を含む。参照状態管理部は、第ｋ（ｋは１以上Ｎ以下の自然数）処理部が参照バッファの参照を要求した場合に参照値を増加させ、第ｋ処理部が参照バッファの参照を終了した場合に参照値を減少させる。
【００１０】
第２の発明によれば、参照バッファを参照する処理部の数をリアルタイムに把握することができる。参照バッファを参照する処理部が存在しない場合、バッファ解放部は、この参照バッファを速やかに待機バッファに変更することができる。従って、メモリの記憶容量が圧迫されることをさらに防ぐことができる。
【００１１】
第３の発明は、第１又は第２の発明であって、さらに、画像加工部を備える。画像加工部は、入力バッファに入力されたフレームに所定の画像処理を実行することにより加工フレームを生成し、生成された加工フレームを待機バッファに入力する。参照バッファ設定部は、画像加工部により生成されたフレームが入力された待機バッファを、参照バッファに設定する。
【００１２】
第３の発明によれば、第１〜第Ｎ処理部のうち少なくとも２つの処理部が加工フレームを保存された参照バッファを参照した場合、当該２つの処理部は、個別に所定の画像処理を実行しなくてもよい。これにより、２つの処理部の各々が加工フレームを生成しなくてもよいため、２つの処理部の負荷を軽減することができ、加工フレームを保存する記憶領域を削減することができる。
【００１３】
第４の発明は、第１〜第３の発明のいずれかであって、さらに、決定部を備える。決定部は、第１〜第Ｎ処理部の各々の実行周期と第１〜第Ｎ処理部の各々の処理時間とに基づいて第１〜第Ｎ処理部をグループ化し、グループ化により生成されたグループの数に基づいて、バッファ管理装置により管理されるフレームバッファの数を決定する。
【００１４】
第４の発明によれば、第１〜第Ｎ処理部をグループ化することにより、バッファ管理装置により管理されるフレームバッファの数を特定することができる。これにより、フレームバッファが設定されるメモリを効率的に使用することができる。
【００１５】
第５の発明は、第４の発明であって、参照管理部は、タイミング制御部を含む。タイミング制御部は、グループ化により生成された一のグループが第１処理部及び第２処理部を含む場合、第１処理部が参照バッファを参照する期間が、第２処理部が参照バッファを参照する期間と重複するように、第１処理部及び第２処理部の実行タイミングを制御する。
【００１６】
第５の発明によれば、第１処理部が参照バッファを参照する期間を、第２処理部が参照バッファを参照する期間と重複させることができるため、バッファ管理装置により管理されるフレームバッファの数を削減することができる。これにより、フレームバッファが設定されるメモリをさらに効率的に使用することができる。
【００１７】
第６の発明は、動画像に含まれるフレームを一時的に保存する複数のフレームバッファを管理するバッファ管理方法であって、ａ）ステップと、ｂ）ステップと、ｃ）ステップと、ｄ）ステップとを備える。ａ）ステップは、複数のフレームバッファのうち一のバッファを、フレームが書き込まれる入力バッファに設定する。ｂ）ステップは、一のフレームが入力バッファに入力された場合、入力バッファを参照バッファに設定する。ｃ）ステップは、第１〜第Ｎ（Ｎは２以上の自然数）処理部のうち、参照バッファを参照する処理部の数を示す参照カウント値を管理する。ｄ）ステップは、参照バッファを参照する処理部が存在しないことを参照値が示し、かつ、参照バッファと異なるバッファが新たに参照バッファに設定された場合、参照バッファを入力バッファとして使用可能な待機バッファに設定することにより参照バッファを解放する。
【００１８】
第６の発明は、第１の発明に用いられる。
【発明の効果】
【００１９】
本発明によれば、一のフレームを使用する複数の画像処理を並行して実行する際に遅延が発生することを抑制できるバッファ管理装置を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施の形態に係るバッファ管理装置を搭載する画像処理システムの構成を示す機能ブロック図である。
【図２】図１に示すバッファ管理装置の構成を示す機能ブロック図である。
【図３】図２に示す参照管理部の構成を示す参照管理部の構成を示す機能ブロック図である。
【図４】図１に示すバッファ管理装置により管理されるフレームバッファの状態変化の一例を示す図である。
【図５】図１に示すバッファ管理装置により実行される参照バッファ設定処理のフローチャートである。
【図６】図１に示す画像処理装置の各々の実行周期及び処理時間の一例を示すタイムチャートである。
【図７】図２に示すバッファ管理リストの変化の一例を示す図である。
【図８】図１に示すバッファ管理装置により実行される参照バッファ管理処理のフローチャートである。
【図９】図８に示す要求受付処理のフローチャートである。
【図１０】図７に示す参照リストの変化の一例を示す図である。
【図１１】図８に示す参照終了処理のフローチャートである。
【図１２】図８に示す未参照バッファ解放処理のフローチャートである。
【図１３】本発明の第２の実施の形態に係るバッファ管理装置の構成を示す機能ブロック図である。
【図１４】図１３に示すバッファ管理装置により実行される要求受付処理のフローチャートである。
【図１５】図１４に示す参照バッファ特定処理のフローチャートである。
【図１６】ＣＰＵバス構成を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００２２】
［第１の実施の形態］
［１．画像処理システム１００の概略］
図１は、本発明の第１の実施の形態に係るバッファ管理装置１０を備える画像処理システム１００の構成を示す機能ブロック図である。図１を参照して、カメラ１Ｆ、１Ｌ、１Ｒ及び１Ｂと、画像処理システム１００と、運転支援装置２０１と、記録装置２０２と、表示装置２０３とは、図示しない自動車等の車両に搭載される。
【００２３】
カメラ１Ｆ、１Ｌ、１Ｒ及び１Ｂは、車両の周辺を撮影して動画像を生成する。カメラ１Ｆは、車両の前方を撮影するフロントカメラであり、動画像２Ｆを生成する。カメラ１Ｌは、車両の左方を撮影する左サイドカメラであり、動画像２Ｌを生成する。カメラ１Ｒは、車両の右方を撮影する右サイドカメラであり、動画像２Ｒを生成する。カメラ１Ｂは、車両の右方を撮影するリアカメラであり、動画像２Ｂを生成する。動画像２Ｆ、２Ｌ、２Ｒ及び２Ｂは、画像処理システム１００に供給される。
【００２４】
画像処理システム１００は、カメラ１Ｆ、１Ｌ、１Ｒ及び１Ｂから動画像２Ｆ、２Ｌ、２Ｒ及び２Ｂを受ける。画像処理システム１００は、その受けた動画像２Ｆ、２Ｌ、２Ｒ及び２Ｂの各々に含まれるフレームを用いた複数の画像処理を並行して実行する。
【００２５】
画像処理システム１００は、道路に描かれた白線を検出する白線検出処理の結果を示す白線検出データ２２１と、車両の移動量を示す移動量データ２３１とを運転支援装置２０１に出力する。運転支援装置２０１は、受けた白線検出データ２２１及び移動量データ２３１に基づいて、車両の運転者を支援する運転支援処理を実行する。運転支援処理は、例えば、車両が現在走行中の車線から逸脱することを抑制する車線逸脱抑制処理である。
【００２６】
画像処理システム１００は、動画像２Ｆを符号化する符号化処理を実行し、符号化された動画像２４１を記録装置２０２に出力する。記録装置２０２は、ドライブレコーダである。記録装置２０２は、画像処理システム１００から受けた動画像２４１を記録する。
【００２７】
画像処理システム１００は、動画像２Ｆ、２Ｌ、２Ｒ及び２Ｂの各々に含まれるフレームを変換して俯瞰画像２５１を生成する俯瞰画像生成処理を実行する。俯瞰画像２５１は、車両及びその周辺の領域を俯瞰した画像である。表示装置２０３は、車両の車室内に配置され、画像処理システム１００から受けた俯瞰画像２５１を表示する。
【００２８】
［２．画像処理システム１００の構成］
図１を参照して、画像処理システム１００は、バッファ管理装置１０と、画像取得部２１と、白線検出装置２２と、移動量検出装置２３と、符号化装置２４と、俯瞰画像生成装置２５とを備える。
【００２９】
画像取得部２１は、動画像２Ｆをカメラ１Ｆから取得し、取得した動画像２Ｆをバッファ管理装置１０に供給する。動画像２Ｆは、複数のフレーム３Ｆを含む。複数のフレーム３Ｆは、カラー画像である。画像取得部２１は、フレーム単位で動画像２Ｆを取得する。つまり、画像取得部２１は、フレーム３Ｆをカメラ１Ｆから取得するたびに、その取得したフレーム３Ｆをバッファ管理装置１０に供給する。
【００３０】
バッファ管理装置１０は、フレーム３Ｆを画像取得部２１から受け、その受けたフレーム３Ｆをフレームバッファに一時的に保存する。バッファ管理装置１０は、白線検出装置２２、移動量検出装置２３、符号化装置２４及び俯瞰画像生成装置２５がフレームバッファに一時的に保存されたフレーム３Ｆを任意のタイミングで参照できるように、フレームバッファを管理する。バッファ管理装置１０の構成については、後述する。
【００３１】
白線検出装置２２と、移動量検出装置２３と、符号化装置２４と、俯瞰画像生成装置２５とは、フレーム３Ｆを用いた画像処理を並行して実行する。以下の説明において、白線検出装置２２と、移動量検出装置２３と、符号化装置２４と、俯瞰画像生成装置２５とを総称して、「４つの画像処理装置」と記載する場合がある。
【００３２】
白線検出装置２２は、バッファ管理装置１０により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム３Ｆを参照する。白線検出装置２２は、参照したフレーム３Ｆを用いて、白線検出処理を実行する。具体的には、白線検出装置２２は、参照したフレーム３Ｆから道路に描かれた白線を検出し、白線の検出結果を示す白線検出データ２２１を運転支援装置２０１に出力する。
【００３３】
移動量検出装置２３は、バッファ管理装置１０により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム３Ｆを参照する。移動量検出装置２３は、参照したフレームを用いて、移動量検出処理を実行する。具体的には、移動量検出装置２３は、参照したフレーム３Ｆに含まれる物体の位置と、過去のフレーム３Ｆに含まれる当該物体の位置とに基づいて、車両の移動量を検出する。移動量検出装置２３は、移動量の検出結果を示す移動量データ２３１を運転支援装置２０１に出力する。
【００３４】
符号化装置２４は、バッファ管理装置１０により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム３Ｆを参照する。符号化装置２４は、参照したフレーム３Ｆを用いて、動画像２Ｆを符号化する符号化処理を実行する。動画像２Ｆの符号化には、例えば、Ｈ．２６４が用いられる。符号化装置２４は、符号化された動画像２４１を記録装置２０２に出力する。
【００３５】
俯瞰画像生成装置２５は、バッファ管理装置１０により管理されるフレームバッファにアクセスして、当該フレームバッファに保存されたフレーム３Ｆを参照する。俯瞰画像生成装置２５は、動画像２Ｌ、２Ｒ及び２Ｂの各々に含まれるフレームを参照する。俯瞰画像生成装置２５は、参照した４つのフレームを用いて、俯瞰画像生成処理を実行する。具体的には、俯瞰画像生成装置２５は、参照した４つのフレームの各々を、車両の上に設定された仮想視点から見た画像に変換する。俯瞰画像生成装置２５は、変換された４つのフレームを合成して俯瞰画像２５１を生成し、その生成した俯瞰画像２５１を表示装置２０３に出力する。
【００３６】
［３．バッファ管理装置１０の構成］
図２は、図１に示すバッファ管理装置１０の構成を示す機能ブロック図である。図２を参照して、バッファ管理装置１０は、入力バッファ設定部１１と、書き込み部１２と、参照バッファ設定部１３と、参照管理部１４と、バッファ解放部１５と、決定部１６と、アクセス制御部１７と、メモリ１８とを備える。
【００３７】
入力バッファ設定部１１は、メモリ１８に設定されたフレームバッファ３１〜３４のうち、一の待機バッファを特定する。待機バッファとは、入力バッファとして使用可能なフレームバッファである。フレームバッファ３１〜３４については、後述する。入力バッファ設定部１１は、特定した一のフレームバッファを入力バッファに設定する。
【００３８】
書き込み部１２は、フレーム３Ｆを画像取得部２１から取得し、その取得したフレーム３Ｆを入力バッファ設定部１１により設定された入力バッファに書き込む。
【００３９】
参照バッファ設定部１３は、書き込み部１２が入力バッファへのフレームの書き込みを終了した場合、書き込みの終了した入力バッファを参照バッファに設定する。
【００４０】
参照管理部１４は、４つの画像処理装置のうち、参照バッファを参照する画像処理部の数を示す参照値４１〜４４を管理する。参照値４１〜４４は、フレームバッファ３１〜３４に対応する。参照バッファごとに生成される。参照値４１〜４４を総称する場合、「参照値４０」と記載する場合がある。参照値４０の詳細については後述する。
【００４１】
バッファ解放部１５は、参照バッファに設定されたフレームバッファの参照値４０に基づいて、参照バッファを参照する画像処理装置の有無を判断する。バッファ解放部１５は、参照バッファを参照する画像処理装置が存在しない場合、参照バッファを待機バッファに変更する。
【００４２】
決定部１６は、４つの画像処理装置の各々の実行周期と４つの画像処理装置の１周期当たりの処理時間とに基づいて、４つの画像処理装置をグループ化する。決定部１６は、グループ化により生成されたグループの数に基づいて、バッファ管理装置１０により管理されるフレームバッファの数を決定する。これにより、バッファ管理装置１０は、フレームバッファが設定されるメモリ１８を効率的に使用することが可能となる。本実施の形態では、フレームバッファの数は４である。
【００４３】
決定部１６は、決定したフレームバッファの数に基づいて、フレームバッファとして使用される複数の記憶領域をメモリ１８において確保する。決定部１６は、確保した複数の記憶領域をフレームバッファ３１〜３４に設定する。
【００４４】
アクセス制御部１７は、入力バッファ設定部１１と、書き込み部１２と、参照バッファ設定部１３と、参照管理部１４と、バッファ解放部１５と、決定部１６と、４つの画像処理装置との各々からメモリ１８へのアクセスを制御する。
【００４５】
メモリ１８は、バッファ管理装置１０のメインメモリであり、具体的には、ＲＡＭ（Random Access Memory）である。メモリ１８は、フラッシュメモリ等の不揮発性記憶装置であってもよい。
【００４６】
メモリ１８は、バッファ管理リスト３０と、参照値４０とを記憶する。バッファ管理リスト３０は、フレームバッファ３１〜３４の各々の状態を記録する。バッファ管理リスト３０の詳細については、後述する。
【００４７】
［４．参照管理部１４の構成］
図３は、図２に示す参照管理部１４の構成を示す機能ブロック図である。図３を参照して、参照管理部１４は、参照状態管理部１４１と、タイミング制御部１４２とを含む。
【００４８】
参照状態管理部１４１は、４つの画像処理装置からの参照要求に応じて、４つの画像処理装置によるフレームバッファへのアクセスを制御する。
【００４９】
具体的には、白線検出装置２２が参照要求２２Ｂを出力した場合、参照状態管理部１４１は、参照バッファを特定し、特定した参照バッファへのアクセスを許可する許可通知２２Ｃを白線検出装置２２に出力する。
【００５０】
同様に、参照状態管理部１４１は、参照要求２３Ｂを移動量検出装置２３から受けた場合、参照バッファへのアクセスを許可する許可通知２３Ｃを移動量検出装置２３に出力する。参照状態管理部１４１は、参照要求２４Ｂを符号化装置２４から受けた場合、参照バッファへのアクセスを許可する許可通知２４Ｃを符号化装置２４に出力する。参照状態管理部１４１は、参照要求２５Ｂを俯瞰画像生成装置２５から受けた場合、参照バッファへのアクセスを許可する許可通知２５Ｃを俯瞰画像生成装置２５に出力する。
【００５１】
参照状態管理部１４１は、参照値４１〜４４を、フレームバッファ３１〜３４を参照する画像処理装置の数に応じて変化させる。例えば、参照状態管理部１４１は、フレームバッファ３１の参照を符号化装置２４に許可した場合、参照値４１をインクリメントする。その後、参照状態管理部１４１は、符号化装置２４から参照終了通知２４Ｄを受けた場合、参照値４１をデクリメントする。参照値４１がゼロである場合、フレームバッファ３１を参照する画像処理装置は存在しない。参照状態管理部１４１は、一の参照バッファを参照する画像処理装置の数をリアルタイムに把握できる。従って、参照状態管理部１４１は、一の参照バッファを参照する画像処理装置が存在しない場合、速やかに参照バッファを解放できる。
【００５２】
タイミング制御部１４２は、決定部１６により生成された一のグループが複数の画像処理装置を含む場合、一のグループに含まれる画像処理装置の実行開始タイミングを制御する。例えば、一のグループが２つの画像処理装置を含む場合、タイミング制御部１４２は、一方の画像処理部が参照バッファを参照する期間が他方の画像処理部が参照バッファを参照する期間と重複するように、白線検出装置２２及び移動量検出装置２３の実行開始タイミングを制御する。
【００５３】
［５．バッファ管理装置１０の動作］
［５．１．フレームバッファの変化］
図４は、図２に示すフレームバッファ３１の状態変化を示す図である。図４を参照しながら、フレームバッファ３１が待機バッファ、入力バッファ、参照バッファに変化するタイミングを説明する。フレームバッファ３１の変化を説明するにあたり、フレームバッファ３１及び３２以外のバッファの説明を省略する。図４において、参照値４１を、フレームバッファ３１に右下に示している。
【００５４】
最初に、フレームバッファ３１が待機バッファに設定されている。４つの画像処理装置は、待機バッファを参照できない。フレームバッファ３１が待機バッファに設定されている場合、参照値４１は、０である。
【００５５】
図４に示していないが、フレームバッファ３１が待機バッファに設定されている期間において、フレームバッファ３２が入力バッファに設定されている。書き込み部１２は、フレーム３Ｆをフレームバッファ３２に書き込む。フレームバッファ３２への書き込みが終了した場合、バッファ管理装置１０は、次のフレーム３Ｆを一時的に保存するために、フレームバッファ３１を入力バッファに設定する（ステップＳ１）。
【００５６】
バッファ管理装置１０は、次のフレーム３Ｆを、入力バッファに設定されたフレームバッファ３１に書き込む（ステップＳ２）。４つの画像処理装置は、待機バッファを参照できない。従って、フレームバッファ３１の書き込み中において、参照値４１は、０である。フレームバッファ３１への書き込みが終了した場合、バッファ管理装置１０は、フレームバッファ３１を入力バッファから参照バッファに変更する（ステップＳ３）。
【００５７】
フレームバッファ３１が参照バッファに設定された時点で、フレームバッファ３１の参照値４１は０である。フレームバッファ３２が、参照バッファに既に設定され、符号化装置２４及び俯瞰画像生成装置２５により参照されている。従って、フレームバッファ３２の参照値４２は２である。
【００５８】
白線検出装置２２がバッファ管理装置１０に参照要求２２Ｂを出力する（ステップＳ４）。フレームバッファ３１が最も新しい参照バッファであるため、バッファ管理装置１０は、フレームバッファ３１の参照を白線検出装置２２に許可し、参照値４１をインクリメントする。参照値４１は０から１に変化する。白線検出装置２２は、フレームバッファ３１を参照して白線検出処理を実行する。
【００５９】
移動量検出装置２３がバッファ管理装置１０に参照要求２３Ｂを出力する（ステップＳ５）。フレームバッファ３１が最も新しい参照バッファであるため、バッファ管理装置１０は、フレームバッファ３１の参照を移動量検出装置２３に許可し、参照値４１をインクリメントする。参照値４１は１から２に変化する。移動量検出装置２３は、フレームバッファ３１を参照して移動量検出処理を実行する。
【００６０】
白線検出装置２２がバッファ管理装置１０に参照終了通知２２Ｄを出力する（ステップＳ６）。バッファ管理装置１０が参照値４１をデクリメントするため、参照値４１は、２から１に変化する。移動量検出装置２３がバッファ管理装置１０に参照終了通知２３Ｄを出力する（ステップＳ７）。バッファ管理装置１０が参照値４１をデクリメントするため、参照値４１が１から０に変化する。
【００６１】
参照値４１が減少して０に変化した場合、バッファ管理装置１０は、フレームバッファ３１を参照バッファから待機バッファに変更する（ステップＳ８）。フレームバッファ３２は、参照値４２が０に変化した時点で待機バッファに変更される。以下、フレームバッファの状態変化が繰り返される。
【００６２】
このように、画像処理装置がフレームバッファの参照を要求した場合、バッファ管理装置１０は、最新の参照バッファの参照を要求元に許可し、最新の参照バッファの参照値をインクリメントする。参照が終了した場合、バッファ管理装置１０は、参照バッファの参照値をデクリメントする。参照バッファの参照値が０に変化した場合、バッファ管理装置１０は、参照バッファを解放して待機バッファに変更する。
【００６３】
複数の画像処理装置が１つのフレームバッファを共用できるため、複数の画像処理装置の各々は、フレーム３Ｆのコピー終了を待つことなく、フレーム３Ｆを用いた画像処理を開始できる。バッファ管理装置１０は、一のフレームを使用する複数の画像処理を並行して実行する際の遅延を抑制できる。
【００６４】
［５．２．参照バッファの設定］
図５は、図１に示すバッファ管理装置１０により実行される参照バッファ設定処理のフローチャートである。以下、図５を参照しながら、フレームバッファが参照バッファに設定されるまでの期間におけるバッファ管理装置１０の動作を詳しく説明する。
【００６５】
バッファ管理装置１０は、画像処理システム１００が搭載された車両のイグニッションスイッチがオンされた場合に図５に示す処理を開始する。つまり、図５に示す処理は、バッファ管理装置１０の電源がオンされた場合に開始される。ステップＳ１１〜Ｓ１５の処理は、初期化処理に相当する。
【００６６】
（初期化処理）
決定部１６が、４つの画像処理装置をグループ化する（ステップＳ１１）。具体的には、４つの画像処理装置が、４つの画像処理装置の各々の実行周期と、４つの画像処理装置の各々の処理時間とに基づいて分類される。
【００６７】
図６は、４つの画像処理装置の実行周期及び処理時間の一例を示すタイムチャートである。図６を参照して、４つの画像処理装置の各々は、周期的に画像処理を実行する。
【００６８】
実行周期は、画像処理装置が画像処理を開始するタイミングの間隔である。例えば、白線検出装置２２が時刻Ｔｂ及びＴｉの各々において白線検出処理を開始するため、白線検出装置２２の実行周期Ｐ２は、時刻Ｔｂから時刻Ｔｉまでの期間に相当する。
【００６９】
処理時間は、画像処理装置が画像処理を開始してから終了するまでの時間の長さである。例えば、白線検出装置２２により実行される白線検出処理の開始時刻は時刻Ｔｂであり、白線検出処理の終了時刻は時刻Ｔｅである。白線検出装置の処理時間Ｑ２は、時刻Ｔａから時刻Ｔｅまでの期間に相当する。
【００７０】
白線検出装置２２の実行周期Ｐ２は、移動量検出装置２３の実行周期Ｐ３と一致する。白線検出装置２２の処理時間Ｑ２は、移動量検出装置２３の実行周期Ｑ３と一致する。このため、決定部１６は、白線検出装置２２及び移動量検出装置２３を第１グループに分類する。
【００７１】
符号化装置２４の実行周期Ｐ４は、俯瞰画像生成装置２５の実行周期Ｐ５と一致する。符号化装置２４の処理時間Ｑ４は、俯瞰画像生成装置２５の処理時間Ｑ５と一致する。このため、決定部１６は、符号化装置２４及び俯瞰画像生成装置２５を、第１グループと別の第２グループに分類する。
【００７２】
再び、図５を参照して、決定部１６は、ステップＳ１１により生成されたグループの数に基づいて、バッファ管理装置１０により管理されるフレームバッファの数を決定する（ステップＳ１２）。上述のように、４つの画像処理装置が２つのグループに分類された場合、決定部１６は、フレームバッファの数を４に決定する。以下、詳しく説明する。
【００７３】
第１グループが、白線検出装置２２及び移動量検出装置２３を含む場合、決定部１６は、後述するように、白線検出装置２２がフレームバッファを参照する期間と移動量検出装置２３がフレームバッファを参照する期間とを重複させる。これにより、第１グループは、参照バッファを共用できる。第２グループが、符号化装置２４及び俯瞰画像生成装置２５を含む場合、決定部１６は、符号化装置２４がフレームバッファを参照する期間と、俯瞰画像生成装置２５がフレームバッファを参照する期間とを重複される。これにより、第２グループは、参照バッファを共用できる。従って、参照バッファの数は、最大で２つである。また、画像取得部２１は、動画像２Ｆをフレーム単位で取得するため、入力バッファの数は１つであればよい。待機バッファは、１つであればよい。入力バッファが参照バッファに設定された後に、直ちに待機バッファを入力バッファへ変更できればよいためである。この結果、決定部１６は、フレームバッファの数を、４つに決定する。なお、フレームバッファの数が４より多くすることは妨げられない。
【００７４】
決定部１６は、ステップＳ１２で決定されたフレームバッファの数に基づいて、メモリ１８においてフレームバッファを生成する（ステップＳ１３）。例えば、フレームバッファの数が４である場合、決定部１６は、フレーム３Ｆのデータサイズに対応する４つの記憶領域をメモリ１８において確保する。決定部１６は、確保した４つの記憶領域をフレームバッファ３１〜３４に設定する。
【００７５】
決定部１６は、ステップＳ１２で生成されたフレームバッファ３１〜３４の管理に用いるバッファ管理リスト３０を生成する（ステップＳ１４）。
【００７６】
図７は、図２に示すバッファ管理リスト３０の変化の一例を示す図である。図７を参照して、バッファ管理リスト３０Ａ〜３０Ｃは、ＩＤと、フレーム番号と、アドレス区間と、バッファ状態と、参照値と、参照権とを記録する。ＩＤは、フレームバッファ３１〜３４を一意に特定する識別番号である。フレーム番号は、フレームバッファ３１〜３４に書き込まれるフレームを一意に特定する番号である。フレーム番号は、時間の経過とともに増加する。なお、カメラ１Ｆが、各フレームに付与されるフレーム番号を決定してもよいし、バッファ管理装置１０が決定してもよい。
【００７７】
アドレス区間は、メモリ１８においてフレームバッファ３１〜３４が設定された記憶領域を示す。バッファ状態は、フレームバッファ３１〜３４が待機バッファ、入力バッファ及び参照バッファのうちどのバッファに設定されているかを示す。参照値４０は、フレームバッファ３１〜３４を参照している画像処理装置の数である。参照権は、フレームバッファ３１〜３４の参照権が４つの画像処理装置に付与されているか否かを示す。
【００７８】
バッファ管理リスト３０Ａは、ステップＳ１４が実行された時点に生成される。バッファ管理リスト３０Ａにおいて、フレームバッファ３１〜３４は待機バッファに設定される。４つの画像処理装置が待機バッファを参照できないため、参照値４０は全てゼロであり、参照権は設定されない。また、フレームが書き込まれていないため、フレームバッファ３１〜３４のフレーム番号は記録されない。
【００７９】
参照管理部１４において、タイミング制御部１４２は、ステップＳ１１で生成されたグループごとに、画像処理の開始を指示する（ステップＳ１５）。例えば、図６を参照して、タイミング制御部１４２が、時刻Ｔｂにおいて、画像処理の開始を指示する制御信号２２Ａ及び２３Ａを、第１グループに分類された白線検出装置２２及び移動量検出装置２３に出力する。白線検出装置２２及び移動量検出装置２３は、時刻Ｔａから画像処理を開始する。白線検出装置２２及び移動量検出装置２３は、同じ実行周期及び同じ処理時間を有するため、時刻Ｔｉにおいても同時に画像処理を開始する。
【００８０】
同様に、タイミング制御部１４２は、時刻Ｔｄにおいて、画像処理の開始を指示する制御信号２４Ａ及び２５Ａを、第２グループに分類された符号化装置２４及び俯瞰画像生成装置２５に出力する。
【００８１】
このように、バッファ管理装置１０は、画像処理を開始するタイミングをグループごとに揃えることにより、一のグループに含まれる画像処理装置がフレーム３Ｆを参照する期間を重複させる。一のグループに含まれる画像処理装置が、一の参照バッファを共用することができるため、バッファ管理装置１０は、フレームバッファを効率的に使用できる。フレームバッファの数を削減することができるため、メモリ１８の記憶容量の圧迫を抑制することができる。
【００８２】
なお、タイミング制御部１４２は、ステップＳ１５を定期的に実行してもよい。これにより、白線検出装置２２が画像処理を開始するタイミングと、移動量検出装置２３が画像処理を開始するタイミングとのずれが、時間の経過とともに拡大することを防ぐことができる。フレームバッファの効率的な使用を維持することができる。
【００８３】
（待機バッファから参照バッファへの変化）
図５を参照して、ステップＳ１１〜Ｓ１５が終了した後に、バッファ管理装置１０は、フレームバッファ３１〜３４の管理を開始する。
【００８４】
入力バッファ設定部１１は、ステップＳ１３で生成されたフレームバッファ３１〜３４のうちフレームバッファ３１を入力バッファに設定する（ステップＳ１６）。ステップＳ１５は、図４に示すステップＳ１に相当する。入力バッファ設定部１１は、図７に示すバッファ管理リスト３０Ａにおいて、フレームバッファ３１のバッファ状態を「待機」から「入力」に変更する。バッファ管理リスト３０Ａは、バッファ管理リスト３０Ｂに変化する。入力バッファ設定部１１は、入力バッファの設定を書き込み部１２に通知する。
【００８５】
書き込み部１２は、ステップＳ１４で設定された入力バッファにフレーム３Ｆを書き込む（ステップＳ１７）。ステップＳ１７は、図４に示すステップＳ２に対応する。具体的には、書き込み部１２は、入力バッファ設定部１１からの通知を受けた場合、バッファ管理リスト３０に基づいて入力バッファに設定されたフレームバッファ３１を特定する。書き込み部１２は、画像取得部２１が取得したフレーム３Ｆを、フレームバッファ３１に書き込む。
【００８６】
フレームバッファ３１への書き込みが終了した場合、書き込み部１２は、書き込み終了を参照状態管理部１４１に通知する。参照状態管理部１４１は、書き込み終了の通知を受けた場合、フレームバッファ３１を参照バッファに設定し（ステップＳ１８）、フレームバッファ３１の参照権を４つの画像処理装置に付与する（ステップＳ１９）。
【００８７】
この結果、図７に示すバッファ管理リスト３０Ｂが、バッファ管理リスト３０Ｃに変化する。具体的には、バッファ管理リスト３０Ｃにおいて、フレームバッファ３１に書き込まれたフレーム３Ｆのフレーム番号が記録される。フレームバッファ３１のバッファ状態が、「入力」から「参照」に変更される。参照状態管理部１４１は、４つの画像処理装置に参照権を付与したことを示す「付与：１〜４」をフレームバッファ３１の参照権の欄に記録する。参照権の欄に記録される数値は、４つの画像処理装置の各々に割り当てられるコードである。「１」は、白線検出装置２２を示す。「２」は、移動量検出装置２３を示す。「３」は、符号化装置２４を示す。「４」は、俯瞰画像生成装置２５を示す。
【００８８】
以下の説明において、バッファ管理リスト３０のうち、参照バッファに設定されたフレームバッファのレコードを「参照リスト５１」と記載する。参照リスト５１に含まれるレコードの数は、参照バッファの数に応じて変化する。
【００８９】
バッファ管理装置１０は、バッファ管理を終了するか否かを判断する（ステップＳ２０）。具体的には、画像処理システム１００の電源がオフされる場合、バッファ管理装置１０は、バッファ管理の終了を決定し（ステップＳ２０においてＹｅｓ）、図５に示す処理を終了する。例えば、車両のイグニッションスイッチがオフされた場合、バッファ管理装置１０は、バッファ管理を終了する。
【００９０】
バッファ管理装置１０は、バッファ管理を継続する場合（ステップＳ２０においてＮｏ）、ステップＳ１６に戻る。次のフレームが書き込まれる入力バッファを設定するためである。入力バッファ設定部１１は、ステップＳ１６を再び実行する場合、待機バッファの中から入力バッファを選択する。
【００９１】
［５．３．参照バッファの管理］
図８は、図１に示すバッファ管理装置１０により実行される参照バッファ管理処理のフローチャートである。図８に示す参照バッファ管理処理において、参照バッファの参照値及び参照権が、４つの画像処理装置の参照状況に応じて変更される。また、参照バッファを参照する画像処理装置が存在しない場合、参照バッファが待機バッファに変更される。
【００９２】
バッファ管理装置１０は、図５に示す参照バッファ設定処理と、図８に示す参照バッファ管理処理とを並行して実行する。つまり、入力バッファへの書き込みと、参照バッファの管理とが並行して実行される。
【００９３】
図８を参照して、参照状態管理部１４１は、参照要求を受けたか否かを判断する（ステップＳ２１）。参照状態管理部１４１は、参照要求を受けた場合（ステップＳ２１においてＹｅｓ）、参照バッファの参照を許可する要求受付処理（ステップＳ２２）を実行する。要求受付処理（ステップＳ２２）の詳細については後述する。
【００９４】
その後、参照状態管理部１４１は、未参照バッファ解放処理（ステップＳ２５）を実行する。未参照バッファは、参照バッファのうち、４つの画像処理装置のいずれからもアクセスされていないバッファである。参照状態管理部１４１が所定の条件を満たす未参照バッファを解放することにより、フレームバッファを効率的に使用することができる。未参照バッファ解放処理（ステップＳ２５）の詳細については後述する。
【００９５】
参照状態管理部１４１は、参照要求を受けていない場合（ステップＳ２１においてＮｏ）、参照終了通知を受けたか否かを判断する（ステップＳ２３）。参照状態管理部１４１は、参照終了通知を受けた場合（ステップＳ２３においてＹｅｓ）、参照終了に応じて参照バッファの設定を変更する参照終了処理（ステップＳ２４）を実行する。その後、参照状態管理部１４１は、ステップＳ２５に進む。参照終了処理（ステップＳ２４）の詳細については後述する。
【００９６】
参照状態管理部１４１は、参照終了通知を受けていない場合（ステップＳ２３にいてＮｏ）、未参照バッファ解放処理を実行する（ステップＳ２５）。
【００９７】
バッファ管理装置１０は、バッファ管理を終了するか否かを判断する（ステップＳ２６）。ステップＳ２６は、図５に示すステップＳ２０と同様の処理である。バッファ管理装置１０は、バッファ管理の終了を決定した場合（ステップＳ２６においてＹｅｓ）、図８に示す処理を終了する。バッファ管理装置１０は、バッファ管理を終了しない場合（ステップＳ２６においてＮｏ）、ステップＳ２１に戻る。
【００９８】
［５．３．１．要求受付処理（ステップＳ２２）］
図９は、図８に示す要求受付処理（ステップＳ２２）のフローチャートである。第１グループに分類された白線検出装置２２及び移動量検出装置２３が参照を要求する場合を例にして、図９に示す要求受付処理（ステップＳ２２）を詳しく説明する。最初に白線検出装置が参照を要求し、その次に移動量検出装置２３が参照を要求する。
【００９９】
白線検出装置２２が参照を要求してから移動量検出装置２３が参照を要求するまでの期間において、フレームバッファ３１のみが参照バッファに設定されていると仮定する。つまり、バッファ管理装置１０が、図７に示すバッファ管理リスト３０Ｃを保持している場合において、白線検出装置２２及び移動量検出装置２３が参照を要求する。
【０１００】
（白線検出装置２２が参照を要求した場合）
図９を参照して、参照状態管理部１４１は、白線検出装置２２から参照要求２２Ｂを受けた場合、最新の参照バッファを特定する（ステップＳ２２１）。具体的には、参照状態管理部１４１は、バッファ管理リスト３０Ｃを参照して、フレームバッファ３１を特定する。フレームバッファ３１のみが、参照バッファに設定されているためである。
【０１０１】
以下、図９及び図１０を参照しながら、要求受付処理（ステップＳ２２）の詳細な説明を続ける。図１０は、図７に示す参照リスト５１の変化の一例を示す図である。図１０に示す参照リスト５１Ａは、図７に示すバッファ管理リスト３０Ｃが有する参照リスト５１と同じである。
【０１０２】
参照状態管理部１４１は、白線検出装置２２がステップＳ２２１で特定したフレームバッファ３１の参照権を有しているか否かを判断する（ステップＳ２２２）。参照リスト５１Ａにおいて、参照権が白線検出装置２２に付与されている（ステップＳ２２２においてＹｅｓ）。このため、参照状態管理部１４１は、参照リスト５１Ａに記録されている参照値４１をインクリメントする（ステップＳ２２３）。参照値４１が０から１へ増加することにより、参照リスト５１Ａが参照リスト５１Ｂに変化する。
【０１０３】
参照状態管理部１４１は、許可通知２２Ｃを白線検出装置２２に出力することにより、フレームバッファ３１の参照を白線検出装置２２に許可する（ステップＳ２２４）。これにより、白線検出装置２２は、フレームバッファ３１にアクセスすることができる。白線検出装置２２は、フレームバッファ３１に書き込まれたフレーム３Ｆを用いて、白線検出処理を開始する。その後、参照状態管理部１４１は、図９に示す処理を終了する。
【０１０４】
ステップＳ２２２の説明に戻る。白線検出装置２２の参照権が取り消されている場合（ステップＳ２２２においてＮｏ）、参照状態管理部１４１は、白線検出装置２２がフレームバッファ３１を参照済みであると判断する。この場合、参照状態管理部１４１は、新たな参照バッファが設定されるまで待機する（ステップＳ２２５）。
【０１０５】
参照状態管理部１４１は、新たな参照バッファが設定された場合（ステップＳ２２５においてＹｅｓ）、ステップＳ２２１に戻る。これにより、白線検出装置２２は、新たに設定された参照バッファを用いて、白線検出処理を実行することが可能となる。
【０１０６】
（移動量検出装置２３が参照を要求した場合）
白線検出装置２２に続いて、移動量検出装置２３が参照要求２３Ｂをバッファ管理装置１０に出力する。バッファ管理装置１０は、参照要求２２Ｂを受けた時点で、図１０に示す参照リスト５１Ｂを保持している。
【０１０７】
図９及び図１０を参照して、参照状態管理部１４１は、フレームバッファ３１を最新の参照バッファとして特定する（ステップＳ２２１）。白線検出装置２２が参照を要求してから移動量検出装置２３が参照を要求するまでの期間において、フレームバッファ３１のみが参照バッファに設定されているためである。
【０１０８】
参照リスト５１Ｂにおいて、フレームバッファ３１の参照権が移動量検出装置２３に設定されている（ステップＳ２２２においてＹｅｓ）。参照状態管理部１４１は、参照リスト５１Ｂに記録されている参照値４１をインクリメントする（ステップＳ２２３）。参照値４１が１から２へ増加するため、参照リスト５１Ｂが参照リスト５１Ｃに変化する。
【０１０９】
参照状態管理部１４１は、許可通知２３Ｃを移動量検出装置２３に出力することにより、フレームバッファ３１の参照を移動量検出装置２３に許可する（ステップＳ２２４）。れにより、移動量検出装置２３は、フレームバッファ３１にアクセスできる。移動量検出装置２３は、フレームバッファ３１に書き込まれたフレーム３Ｆを用いて、移動量検出処理を開始する。その後、参照状態管理部１４１は、図９に示す処理を終了する。
【０１１０】
フレームバッファ３１のみが参照バッファに設定されている期間において、符号化装置２４及び俯瞰画像生成装置２５が、バッファ管理装置１０に参照を要求する場合があり得る。この場合においても、参照状態管理部１４１が図９に示す処理を実行するため、参照値４１は、最大で４まで増加する。
【０１１１】
［５．３．２．参照終了処理（ステップＳ２４）］
図１１は、図８に示す参照終了処理（ステップＳ２４）のフローチャートである。参照状態管理部１４１は、参照終了通知を受けた場合、図１１に示す処理を開始する。
【０１１２】
図１０及び図１１を参照しながら、白線検出装置２２及び移動量検出装置２３がフレームバッファ３１を参照している場合を例にして、参照終了処理（ステップＳ２４）を説明する。最初に、白線検出装置２２が参照終了通知２２Ｄを出力し、続いて、移動量検出装置２３が参照終了通知２３Ｄを出力すると仮定する。
【０１１３】
（白線検出装置２２が参照終了を通知した場合）
参照状態管理部１４１は、参照終了通知２２Ｄを白線検出装置２２から受けた場合、フレームバッファ３１を白線検出装置２２が参照していたバッファとして特定する（ステップＳ２４１）。
【０１１４】
参照状態管理部１４１は、ステップＳ２４１で特定したフレームバッファ３１の参照値４１をデクリメントする（ステップＳ２４２）。参照リスト５１Ｃにおいて、参照値４１が２から１に減少する。参照状態管理部１４１は、白線検出装置２２に付与されていたフレームバッファ３１の参照権を取り消す（ステップＳ２４３）。参照リスト５１Ｃの参照権の欄において、「付与：２〜４」及び「取り消し：１」が記録される。つまり、白線検出装置２２の参照権が取り消されたことが、参照リスト５１Ｃに記録される。フレームバッファ３１の参照権は、移動量検出装置２３、符号化装置２４及び俯瞰画像生成装置に継続して付与される。この結果、参照リスト５１Ｃは、参照リスト５１Ｄに変化する。
【０１１５】
参照状態管理部１４１は、参照値４１がゼロに変化したか否かを判断する（ステップＳ２４４）。移動量検出装置２３がフレームバッファ３１の参照を継続しているため、参照リスト５１Ｄの参照値は１である（ステップＳ２４４においてＮｏ）。参照状態管理部１４１は、フレームバッファ３１を参照バッファのまま維持し（ステップＳ２４６）、図１１に示す処理を終了する。
【０１１６】
（移動量検出装置２３が参照終了を通知した場合）
続いて、参照状態管理部１４１は、参照終了通知２３Ｄを移動量検出装置２３から受けた場合、図１１に示す処理を再び開始する。参照状態管理部１４１は、フレームバッファ３１を移動量検出装置２３が参照していたバッファとして特定する（ステップＳ２４１）。移動量検出装置２３がフレームバッファ３１を参照していたためである。
【０１１７】
参照状態管理部１４１は、ステップＳ２４１で特定したフレームバッファ３１の参照値４１をデクリメントする（ステップＳ２４２）。参照リスト５１Ｄにおいて、参照値４１が１から０に減少する。参照状態管理部１４１は、移動量検出装置２３に付与されていたフレームバッファ３１の参照権を取り消す（ステップＳ２４３）。図１０に示す参照リスト５１Ｄの参照権の欄において、「付与：３〜４」及び「取り消し：１〜２」が記録される。つまり、白線検出装置２２及び移動量検出装置２３の参照権が取り消されたことが記録される。フレームバッファ３１の参照権が符号化装置２４及び俯瞰画像生成装置に継続して付与される。この結果、参照リスト５１Ｄは、参照リスト５１Ｅに変化する。
【０１１８】
参照値が１から０に変化したため（ステップＳ２４４においてＹｅｓ）。参照状態管理部１４１は、フレームバッファ３１を参照している画像処理装置が存在しないと判断する。参照状態管理部１４１は、フレームバッファ３１を参照バッファから待機バッファに変更する（ステップＳ２４５）。具体的には、参照リスト５１Ｅにおいて、フレームバッファ３１のバッファ状態が、「参照」から「待機」に変更される。
【０１１９】
フレームバッファ３１が最新の参照バッファである期間において、符号化装置２４及び俯瞰画像生成装置２５が参照を要求しない。この場合、フレームバッファ３１は、符号化装置２４及び俯瞰画像生成装置２５により参照されることなく、参照バッファから待機バッファに変更される。なお、フレームバッファ３１は、待機バッファにされた後に入力バッファに再び設定される。従って、符号化装置２４及び俯瞰画像生成装置２５は、再び参照バッファに設定されたフレームバッファ３１を参照することがあり得る。
【０１２０】
［５．３．３．未参照バッファ解放処理（ステップＳ２５）］
図１２は、図８に示す未参照バッファ解放処理（ステップＳ２５）のフローチャートである。以下、図１２を参照して、参照状態管理部１４１は、未参照バッファが存在するか否かを判断する（ステップＳ２５１）。未参照バッファは、上述のように、参照バッファのうち、４つの画像処理装置のいずれにもアクセスされていないバッファである。
【０１２１】
未参照バッファが存在しない場合（ステップＳ２５１においてＮｏ）、参照状態管理部１４１は、図１２に示す処理を終了する。
【０１２２】
未参照バッファが存在する場合（ステップＳ２５１においてＹｅｓ）、参照状態管理部１４１は、未参照時間が所定時間を超えているか否かを判断する（ステップＳ２５２）。フレームバッファ３２が未参照バッファである場合、未参照時間は、フレームバッファ３２が参照バッファに設定された時刻から、フレームバッファ３２の参照が許可されるまでの時間である。
【０１２３】
未参照時間が所定時間を超えていない場合（ステップＳ２５２においてＮｏ）、参照状態管理部１４１は、図１２に示す処理を終了する。この場合、未参照バッファは、待機バッファに変更されない。
【０１２４】
未参照時間が所定時間を超えた場合（ステップＳ２５２においてＹｅｓ）、参照状態管理部１４１は、未参照バッファを解放する（ステップＳ２５３）。つまり、参照状態管理部１４１は、未参照バッファを待機バッファに変更する。
【０１２５】
所定時間は、例えば、動画像２Ｆのフレーム間隔である。未参照時間がフレーム間隔に相当する時間を超えた場合、新たなフレームが書き込まれた最新の参照バッファが設定される。この場合、４つの画像処理装置が未参照バッファを参照しなくてもよい。従って、参照状態管理部１４１は、未参照時間が所定時間を超えた未参照バッファを待機バッファに変更する。フレームバッファが設定バッファから待機バッファへ変更される上限時間を設定することにより、フレームバッファを有効に利用することが可能となる。
【０１２６】
［５．４．参照バッファが設定される期間の具体例］
以下、図６を参照しながら、参照バッファが設定される期間の具体例を説明する。図６を参照して、フレームバッファ３１が、時刻Ｔａから時刻Ｔｃまでの期間において最新バッファである。フレームバッファ３２が、時刻Ｔｃから時刻Ｔｆまでの期間において最新バッファである。フレームバッファ３３が、時刻Ｔｆから時刻Ｔｈまでの期間において最新バッファである。フレームバッファ３４が、時刻Ｔｈから時刻Ｔｊまでの期間において最新バッファである。
【０１２７】
白線検出装置２２及び移動量検出装置２３が、時刻Ｔｂにおいて、バッファの参照を要求する。時刻Ｔｂは、時刻Ｔａよりも後であり、かつ、時刻Ｔｃよりも前である。白線検出装置２２及び移動量検出装置２３は、時刻Ｔｂにおいて最新の参照バッファであるフレームバッファ３１を、時刻Ｔｂから時刻Ｔｅまでの期間Ａにおいて参照する。時刻Ｔｅは、時刻Ｔｃよりも後であり、かつ、時刻Ｔｆよりも前である。フレームバッファ３１の参照値４１は、時刻Ｔｂにおいて０から２に増加し、時刻Ｔｅにおいて２から０に減少する。従って、フレームバッファ３１が参照バッファに設定される期間は、時刻Ｔａから時刻Ｔｅまでである。時刻Ｔｃから時刻Ｔｅまでの期間において、参照バッファは、フレームバッファ３１及び３２の２つである。
【０１２８】
符号化装置２４及び俯瞰画像生成装置２５が、時刻Ｔｄにおいて、バッファの参照を要求する。時刻Ｔｄは、時刻Ｔｃよりも後であり、かつ、時刻Ｔｅよりも前である。符号化装置２４及び俯瞰画像生成装置２５は、時刻Ｔｄにおいて最新の参照バッファであるフレームバッファ３２を、時刻Ｔｄから時刻Ｔｇの期間Ｂにおいて参照する。時刻Ｔｇは、時刻Ｔｆよりも後であり、かつ、時刻Ｔｈよりも前である。フレームバッファ３２の参照値４２は、時刻Ｔｄにおいて０から２に増加し、時刻Ｔｇにおいて２から０に減少する。この結果、フレームバッファ３２は、時刻Ｔｃから時刻Ｔｇまでの期間において、参照バッファに設定される。時刻Ｔｆから時刻Ｔｇまでの期間において、参照バッファは、フレームバッファ３２及び３３２つである。
【０１２９】
バッファ管理装置１０は、画像処理装置からの参照要求を受けた場合、最新の参照バッファを参照要求元に参照させる。フレームバッファが参照バッファに設定される期間を短縮できるため、フレームバッファを効率よく利用できる。
【０１３０】
フレームバッファ３３は、時刻Ｔｆから時刻Ｔｈまでの期間において、最新の参照バッファである。しかし、４つの画像処理装置は、時刻Ｔｆから時刻Ｔｈまでの期間において、参照を要求しない。画像処理が、時刻Ｔｆから時刻Ｔｈまでの期間において開始されないためである。フレームバッファ３３は、時刻Ｔｆから時刻Ｔｈまでの期間Ｃにおいて未参照バッファである。期間Ｃがフレーム間隔に相当するため、フレームバッファ３３は、時刻Ｔｈにおいて、参照バッファから待機バッファに変更される。
【０１３１】
白線検出装置２２及び移動量検出装置２３が、時刻Ｔｉにおいて、バッファの参照を要求する。時刻Ｔｉは、時刻Ｔｈよりも後であり、かつ、時刻Ｔｉよりも前である。この場合、白線検出装置２２及び移動量検出装置２３は、フレームバッファ３１を、時刻Ｔｉから時刻Ｔｋまの期間において参照する。時刻Ｔｋは、時刻Ｔｊよりも後の時刻である。フレームバッファ３１の参照値４１は、時刻Ｔｉにおいて０から２に変化し、時刻Ｔｋにおいて２から０に変化する。この結果、フレームバッファ３１は、期間Ｄにおいて、参照バッファに設定される。
【０１３２】
以上説明したように、バッファ管理装置１０は、画像処理装置からフレームバッファの参照要求を受けた場合、最新の参照バッファの参照を画像処理装置に許可する。これにより、複数の画像処理装置が１つのフレームバッファを共用できるため、複数の画像処理装置の各々は、フレーム３Ｆのコピー終了を待つことなく、フレーム３Ｆを用いた画像処理を開始できる。また、参照バッファを参照する画像処理装置が存在しない場合、バッファ管理装置１０は、参照バッファを解放するため、フレームバッファを効率的に使用することができる。
【０１３３】
［第２の実施の形態］
［１．バッファ管理装置１０Ａの構成］
図１３は、本発明の第２の実施の形態に係るバッファ管理装置１０Ａの構成を示す機能ブロック図である。図１３を参照して、バッファ管理装置１０Ａは、図２に示すバッファ管理装置１０の構成に加えて、画像加工部１９を備える。
【０１３４】
バッファ管理装置１０Ａは、画像加工部１９をさらに備える点を除き、バッファ管理装置１０の構成と同じ構成を備える。従って、バッファ管理装置１０Ａに関する説明のうち、画像加工部１９に関連する説明以外の説明を省略する。
【０１３５】
画像加工部１９は、参照バッファに保存されたフレーム３Ｆに対して所定の画像処理を実行して、加工フレームを生成する。本実施の形態において、所定の画像処理は、カラー画像をグレースケール画像に変換するグレースケール変換処理である。画像加工部１９は、待機バッファのうちいずれか１つのバッファを選択する。画像加工部１９は、カラー画像から生成したグレースケール画像を、選択したバッファに保存する。画像加工部１９は、グレースケール画像が保存されたバッファを、参照バッファに設定する。
【０１３６】
白線検出装置２２及び移動量検出装置２３の各々は、画像処理の負荷を軽減するためにグレースケール画像を使用する。つまり、白線検出装置２２及び移動量検出装置２３の各々は、前処理として、グレースケール変換処理を実行する。白線検出装置２２及び移動量検出装置２３が個別にグレースケール変換処理を実行した場合、画像処理システム１００の効率が低下する。
【０１３７】
本実施の形態において、画像加工部１９により生成されたグレースケール画像が参照バッファに保存される。これにより、グレースケール画像の生成処理の実行回数を抑制できるため、画像処理の効率を向上させることができ、加工フレームを保存する記憶領域を削減することができる。
【０１３８】
［２．バッファ管理装置１０Ａの動作］
図１４は、図１３に示すバッファ管理装置１０Ａにより実行される要求受付処理のフローチャートである。バッファ管理装置１０Ａは、図１０に示す要求受付処理に代えて、図１４に示す要求受付処理を実行する。図１４に示す要求受付処理は、図１０に示す要求受付処理が備えるステップＳ２２１に代えて、参照バッファ特定処理（ステップＳ５００）を実行する。これにより、バッファ管理装置１０Ａは、カラー画像を参照する画像処理装置と、グレースケール画像を参照する画像処理装置とに対して、適切な参照バッファを割り当てることができる。
【０１３９】
図１４を参照して、参照状態管理部１４１は、参照要求を受けた場合、参照要求元が参照するバッファを特定するバッファ特定処理を実行する（ステップＳ５００）。参照状態管理部１４１は、ステップＳ５００の実行後、ステップＳ２２２に進む。図１４に示すステップＳ２２２以降の処理は、図１０に示す処理と同じであるため、その説明を省略する。
【０１４０】
図１５は、図１４に示す参照バッファ特定処理（Ｓ５００）のフローチャートである。白線検出装置２２及び移動量検出装置２３がグレースケール画像を使用し、符号化装置２４及び俯瞰画像生成装置２５がカラー画像を使用する場合を例にして、参照バッファ特定処理（ステップＳ５００）を詳しく説明する。
【０１４１】
図１５を参照して、参照状態管理部１４１は、参照要求元がグレースケール画像を参照するか否かを判断する（ステップＳ５０１）。
【０１４２】
符号化装置２４及び俯瞰画像生成装置２５が参照要求元である場合、参照状態管理部１４１は、参照要求元がカラー画像を参照すると判断する（ステップＳ５０１においてＮｏ）。この場合、参照状態管理部１４１は、カラー画像を保存した最新の参照バッファを特定する（ステップＳ５０８）。ステップＳ５０８は、図１０に示すステップＳ２２１に相当する。その後、参照状態管理部１４１は、図１５に示す処理を終了する。
【０１４３】
白線検出装置２２及び移動量検出装置２３が参照要求元である場合、参照状態管理部１４１は、参照要求元がグレースケール画像を参照すると判断する（ステップＳ５０１においてＹｅｓ）。この場合、参照状態管理部１４１は、グレースケール画像を保存した参照バッファが存在するか否かを判断する（ステップＳ５０２）。
【０１４４】
グレースケール画像を保存した参照バッファが存在する場合（ステップＳ５０２においてＹｅｓ）、参照状態管理部１４１は、グレースケール画像を保存した最新の参照バッファを特定する（ステップＳ５０７）。参照状態管理部１４１は、ステップＳ５０７で特定した参照バッファを、参照要求元が参照するバッファに決定し、図１５に示す処理を終了する。
【０１４５】
グレースケール画像を保存した参照バッファが存在しない場合（ステップＳ５０２においてＮｏ）、参照状態管理部１４１は、カラー画像を保存する最新の参照バッファを特定する。画像加工部１９は、参照状態管理部１４１によって特定された参照バッファに保存されたフレーム３Ｆから、グレースケール画像を生成する（ステップＳ５０３）。画像加工部１９は、グレースケール変換処理を実行する間、ステップＳ５０３で特定した参照バッファを参照する。従って、参照状態管理部１４１は、本実施の形態において、４つの画像処理装置だけでなく、画像加工部１９に参照権を付与する。参照状態管理部１４１は、画像加工部１９からの参照要求及び参照終了通知に応じて、参照値を変化させる。
【０１４６】
画像加工部１９は、待機バッファに設定されたフレームバッファの中から一のバッファを選択する（ステップＳ５０４）。画像加工部１９は、ステップＳ５０３で生成したグレースケール画像を、ステップＳ５０４で選択したバッファに保存する（ステップＳ５０５）。画像加工部１９は、ステップＳ５０５においてグレースケール画像が保存されたバッファを参照バッファに設定する（ステップＳ５０６）。
【０１４７】
参照状態管理部１４１は、ステップＳ５０６で設定された参照バッファを、グレースケール画像が保存された最新の参照バッファとして特定する（ステップＳ５０７）。その後、バッファ管理装置１０Ａは、図１５に示す処理を終了する。
【０１４８】
バッファ管理装置１０Ａにおいて、決定部１６は、入力バッファに設定されるフレームバッファの数と、待機バッファに設定されるフレームバッファの数と、グレースケール画像を保存するフレームバッファの数とを、ステップＳ１１で生成されたグループの数に加えた数値のバッファ数として算出する。決定部１６は、算出したバッファ数のフレームバッファを生成すればよい。
【０１４９】
入力バッファに設定されるフレームバッファの数と、待機バッファに設定されるフレームバッファの数とは、それぞれ１である。グレースケール画像を保存するフレームバッファの数は、グレースケール画像を使用する画像処理装置を含むグループの数に一致する。
【０１５０】
以上説明したように、バッファ管理装置１０Ａは、参照バッファに保存されたフレームからグレースケール画像を生成し、生成されたグレースケール画像を保存したバッファを参照バッファに設定する。これにより、グレースケール画像の生成処理の実行回数を抑制できるため、画像処理の効率を向上させることができる。
【０１５１】
［変形例］
上記実施の形態において、４つの画像処理装置が、白線検出装置２２、移動量検出装置２３、符号化装置２４及び俯瞰画像生成装置２５である例を説明したが、これに限られない。画像処理システム１００は、並行して実行される複数の画像処理装置を備えていればよい。
【０１５２】
上記実施の形態において、画像加工部１９が、カラー画像からグレースケール画像を生成する例を説明したが、これに限られない。画像加工部１９は、少なくとも２つの画像処理装置が参照する画像をフレーム３Ｆから生成すればよい。例えば、画像加工部１９は、カラー画像からエッジ抽出画像を生成してもよい。
【０１５３】
上記実施の形態において、バッファ管理装置１０が、４つのフレームバッファを管理する例を説明したが、これに限られない。バッファ管理装置１０は、並行して実行する画像処理装置の数や、画像処理装置のグループ化により生成されたグループの数に応じて決定すればよい。
【０１５４】
上記実施の形態において、バッファ管理装置１０が、４つの画像処理装置の実行周期及び処理時間の両者に基づいて、４つの画像処理装置をグループ化する例を説明したが、これに限られない。バッファ管理装置１０は、４つの画像処理装置の実行周期及び処理時間の少なくとも一方に基づいて、４つの画像処理装置をグループ化すればよい。
【０１５５】
上記実施の形態において、４つの画像処理装置が、バッファ管理装置１０により管理されるフレームバッファを参照する例を説明したが、これに限られない。画像処理装置の数は、２つ以上であればよい。また、バッファ管理装置１０により管理されるフレームを参照する装置は、画像処理装置に限定されない。フレームバッファに保存されたフレームを使用する装置であればよい。
【０１５６】
上記実施の形態において、バッファ管理装置１０が、カメラ１Ｆにより生成された動画像２Ｆのフレーム３Ｆを取得する例を説明したが、これに限られない。バッファ管理装置１０は、カメラ１Ｌ、１Ｒ及び１Ｂの各々に生成された動画像のフレームを取得してもよい。また、カメラ１Ｆ、１Ｌ、１Ｒ及び１Ｂの各々に対応したバッファ管理装置１０を用いてもよい。
【０１５７】
上記実施の形態において、バッファ管理装置１０は、４つの画像処理装置をグループ化して複数のグループを生成する例を説明したが、これに限られない。バッファ管理装置１０は、グループ化をしなくてもよい。
【０１５８】
上記実施の形態で説明したバッファ管理装置１０及び１０Ａの各機能ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１５９】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１６０】
また、上記各実施の形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施の形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０１６１】
また、上記実施の形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【０１６２】
例えば、上記実施の形態（変形例を含む）において、バッファ管理装置１０及び１０Ａの各機能ブロックをソフトウェアにより実現する場合、図１６に示したハードウェア構成（例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、入力部、出力部等をバスＢｕｓにより接続したハードウェア構成）を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【０１６３】
また、上記実施の形態における処理方法の実行順序は、必ずしも、上記実施の形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０１６４】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、大容量ＤＶＤ、次世代ＤＶＤ、半導体メモリを挙げることができる。
【０１６５】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０１６６】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【０１６７】
１００  画像処理システム
１０，１０Ａ  バッファ管理装置
１１  入力バッファ設定部
１２  書き込み部
１３  参照バッファ設定部
１４  参照管理部
１５  バッファ解放部
１７  アクセス制御部
１８  メモリ
１９  画像加工部
２１  画像取得部
２２  白線検出装置
２３  移動量検出装置
２４  符号化装置
２５  俯瞰画像生成装置
１４１  参照状態管理部
１４２  タイミング制御部
【図１】
2020167492.tif 000003
【図２】
2020167492.tif 000004
【図３】
2020167492.tif 000005
【図４】
2020167492.tif 000006
【図５】
2020167492.tif 000007
【図６】
2020167492.tif 000008
【図７】
2020167492.tif 000009
【図８】
2020167492.tif 000010
【図９】
2020167492.tif 000011
【図１０】
2020167492.tif 000012
【図１１】
2020167492.tif 000013
【図１２】
2020167492.tif 000014
【図１３】
2020167492.tif 000015
【図１４】
2020167492.tif 000016
【図１５】
2020167492.tif 000017
【図１６】
2020167492.tif 000018