以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。後に第1〜第3実施例を説明するが、まず、各実施例に共通する事項又は各実施例にて参照される事項について説明する。
図1は、本実施形態に係る運転支援システムが適用される車両100を上方から見た平面図であり、その車両100へのカメラの設置状態を表している。図2は、車両100を左斜め前方から見た図である。図1及び図2には、車両100としてトラックが示されているが、車両100はトラック以外の車両(普通乗用車など)であってもよい。また、車両100は地面(例えば路面)上に配置されているものとする。
図1に示す如く、車両100の前部、右側部、後部及び左側部に、夫々、カメラCA1、CA2、CA3及びCA4が取り付けられている。また、本実施形態において、カメラCA1、CA2、CA3及びCA4を区別せずに、単にカメラ或いは各カメラと呼ぶ場合もある。
また、図2に示す如く、カメラCA1は、例えば車両100のフロントミラー上部に設置され、カメラCA4は、例えば車両100の左側面の最上部に設置される。図2には示されていないが、カメラCA3は、例えば車両100の後部の最上部に設置され、カメラCA2は、例えば車両100の右側面の最上部に設置される。
カメラCA1の光軸の向きが車両100の前方斜め下向きになるように、且つ、カメラCA2の光軸の向きが車両100の右方斜め下向きになるように、且つ、カメラCA3の光軸の向きが車両100の後方斜め下向きになるように、且つ、カメラCA4の光軸の向きが車両100の左方斜め下向きになるように、カメラCA1〜CA4は車両100に設置される。
図2には、カメラCA1とCA4の視野(即ち、撮影領域)が斜線領域によって示されている。カメラCA1は、車両100前方の所定領域内に位置する被写体(路面を含む)を撮像する。カメラCA2は、車両100右側の所定領域内に位置する被写体を撮像する。カメラCA3は、車両100後方の所定領域内に位置する被写体を撮像する。カメラCA4は、車両100左側の所定領域内に位置する被写体を撮像する。
図3に、本発明の実施形態に係る運転支援システムの全体構成ブロック図を示す。運転支援システムは、カメラCA1〜CA4の他、デコーダDEC1〜DEC4及び符号11〜17にて参照される各部位を備える。
カメラCA1〜CA4として、CCD(Charge Coupled Devices)を用いたカメラや、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサを用いたカメラが用いられる。カメラCA1〜CA4の夫々は、外部同期信号を必要としない内部同期カメラである。即ち、各カメラは内部クロックを発生する内部クロック発生回路を備えており、カメラCA1〜CA4は、各々の内部クロックに従い、各々が独立したタイミングで映像信号を出力する。このため、カメラCA1〜CA4からの映像信号は互いに非同期であり、各カメラを非同期カメラと呼ぶこともできる。
各カメラから出力される映像信号をVinにて表す。各カメラは、所定のフレーム周期にて順次撮像を行い、撮像によって得られた画像を表す画像データを含む映像信号Vinを出力する。この撮像によって得られた画像は画像処理回路11に入力されるため、その画像を以下、「入力画像」と呼ぶことにする。映像信号Vinは、入力画像の画像データDinと垂直同期信号Vsync及び水平同期信号Hsyncを含む。
カメラCA1に関する画像や信号、データ等がチャネルch1に対応するものとする。同様に、カメラCA2、CA3、CA4に関する画像や信号、データ等が、夫々、チャネルch2、ch3及びch4に対応するものとする。
カメラCA1、CA2、CA3及びCA4からの映像信号Vinは、夫々、デコーダDEC1、DEC2、DEC3及びDEC4によって画像データと垂直同期信号Vsync及び水平同期信号Hsyncに同期分離されて画像処理回路11に送られる。画像処理回路11に送られた画像データは、RAM部12内のフレームメモリ領域12aに書き込まれて記憶される。RAM部12は、SRAM(Static Random Access Memory)やSDARM(Synchronous Dynamic Random Access Memory)などから形成される。
RAM部12内のLUT領域12bには、各カメラからの入力画像の各画素と画像処理回路11の出力画像の各画素との対応関係を表すテーブルデータが記憶される。このテーブルデータに従ってフレームメモリ領域12a内に書き込まれた入力画像の画像データを読み出すことで出力画像の画像データが得られ、出力画像の画像データをエンコーダ13に送ることで出力画像が表示画像として表示装置14の表示画面上に表示される。尚、以下の説明において、単に表示画面といった場合、それは、表示装置14の表示画面を意味するものとする。
上記のテーブルデータは、運転支援システムの電源投入時などの適切なタイミングにおいて不揮発性メモリであるFROM(Flash Read Only Memory)15からLUT領域12bに送られてLUR領域12b内に記憶される。テーブルデータは複数個あり、複数のテーブルデータが個別にLUT領域12bに格納される。LUT領域12bに格納された複数のテーブルデータの夫々はLUT(ルックアップテーブル)を形成する。LUTによって規定される入力画像の各画素と出力画像の各画素との対応関係は、複数のLUT間で互いに異なる。
形成される複数のLUTは、第1及び第2LUTを含むものとする。第1LUTは、各カメラからの入力画像より図18に示すような出力画像を生成して表示装置14に表示させるためのLUTであり、第2LUTは、各カメラからの入力画像より図20に示すような出力画像を生成して表示装置14に表示させるためのLUTである。
第1LUTを用いると、表示画面の全表示領域を用いて全周鳥瞰画像が表示される。各カメラからの入力画像を地面上に投影して合成することにより全周鳥瞰画像は形成される。図18の表示画面上には、全周鳥瞰画像の中央位置に車両100の車体のイラストが重畳表示されている。尚、図18において、車体のイラスト内に示された矢印は、車両100の進行方向を示している。
第2LUTを用いると、表示画面の全表示領域が左側領域と右上領域と右下領域に3分割される。そして、左側領域に全周鳥瞰画像が表示され、右上領域にカメラCA3の入力画像が拡大表示され、右下領域に付加情報が表示される。付加情報は、車両100に設けられたセンサ等によって計測された車両100の走行速度や車両100のエンジンの回転数などであり、それらを表す情報は車両100に設けられたCAN(コントロールエリアネットワーク)を介して運転支援システムに伝達される。
尚、出力画像を生成する時点で付加情報を付加して図20のような表示画像を得ることも可能であるが、付加情報を含まない出力画像を画像処理回路11にて生成した後に図示されない別回路で付加情報を表す画像を出力画像に重畳することによって、図20のような表示画像を得ることも可能である。図18又は図20における車体のイラストに関しても同様である。付加情報や車体のイラストを表示画面上で描画すること自体は本実施形態の特徴的な技術に関与しないので、以下の説明では、それらを描画するための処理を無視する。
LUT領域12bに形成された複数のLUTの内の何れか1つがMPU(Micro Processing Unit)16に選択され、選択されたLUTを用いて出力画像(及び表示画像)が生成される。操作部17に対する操作内容に応じて或るいはCANを介してMPU16に与えられるLUT選択信号に応じて、MPU16は何れのLUTを選択するかを決定すると共に決定内容に応じたLUT選択情報を画像処理回路11に送る(図12参照)。尚、操作部17は、ユーザによる操作を受け付け、その操作内容はMPU16に伝達される。
出力画像の映像信号をVoutで表し、その映像信号Voutに含まれる画像データ、垂直同期信号及び水平同期信号を夫々Dout、Vsync2及びHsync2で表す。入力画像の映像信号Vinと出力画像の映像信号Voutは互いに非同期である。即ち、画像処理回路11は、入力画像の映像信号Vinの垂直同期信号Vsync及び水平同期信号Hsyncと独立して、出力画像の映像信号Voutの垂直同期信号Vsync2及び水平同期信号Hsync2を生成及び出力し、その垂直同期信号Vsync2及び水平同期信号Hsync2の生成及び出力のタイミングに同期させて出力画像の画像データDoutを出力する。エンコーダ13は、画像処理回路11からの垂直同期信号Vsync2及び水平同期信号Hsync2と画像データDoutとを結合して映像信号Voutを生成し、これを表示装置14に供給することで出力画像を表示画面上に表示させる。
表示装置14は、液晶ディスプレイパネル等から形成される。カーナビゲーションシステムなどに含まれる表示装置を、運転支援システムにおける表示装置14として流用しても良い。運転支援システムを形成する各部位は車両100の適切な部分に設置されるが、表示装置14は車両100の運転席付近に設置される。
図4(a)及び(b)に示す如く、入力画像又は出力画像上の画素の水平位置及び垂直位置を表す記号としてx及びyを導入し、入力画像又は出力画像上における各画素の位置を(x,y)にて表す。入力画像上の画素に対するx及びyは、それぞれ、その画素の属する、入力画像の垂直ライン及び水平ラインの位置を表している。出力画像上の画素に対するx及びyは、それぞれ、その画素の属する、出力画像の垂直ライン及び水平ラインの位置を表している。入力画像に関し、xが大きくなれば入力画像上の位置は右方向に向かい、yが大きくなれば入力画像上の位置は下方向に向かう。同様に、出力画像に関し、xが大きくなれば出力画像上の位置は右方向に向かい、yが大きくなれば出力画像上の位置は下方向に向かう。
入力画像の水平方向及び垂直方向の画素数を夫々Xsize及びYsizeとする。以下の説明では、Xsize=640且つYsize=480、であるとする。出力画像の水平方向及び垂直方向の画素数は、入力画像のそれらと同じであるとする。従って、xは「0≦x<Xsize」を満たす各整数値を取り、yは「0≦y<Ysize」を満たす各整数値を取る。
映像信号Vin及びVoutをインターレース方式による映像信号とすることも可能であるが、今、映像信号Vin及びVoutがノンインターレース方式による映像信号であるものとし、入力画像の画像データ及び出力画像の画像データがラスター走査順に入力及び出力されるものとする。つまり、1枚の入力画像に関し、位置(0,0)、(1,0)、(2,0)、・・・、(Xsize−1,0)、(0,1)、(1,1)、(2,1)、・・・、(Xsize−1,1)、・・・、(0,Ysize−2)、・・・、(Xsize−1,Ysize−2)、(0,Ysize−1)、・・・、(Xsize−1,Ysize−1)の画素信号の順番で、入力画像の画像データが画像処理回路11に入力される。出力画像の画像データも同様である。画素信号とは、画像を形成する画素の輝度又は輝度及び色を表す値である。入力画像を形成する各画素の画素信号によって入力画像の画像データが形成され、出力画像を形成する各画素の画素信号によって出力画像の画像データが形成される。
本例では説明を簡単にするため、出力画像のフレーム周期は、入力画像のそれと同じであるとする。従って、垂直同期信号VsyncとVsync2の発生周期は同じである。更に説明を簡単にするため、本例では、或る入力画像の画素信号の入力周期(画像処理回路11への入力周期)と出力画像の画素信号の出力周期(画像処理回路11からの出力周期)は同じであるものとする(ピクセルクロックは同じであるものとする)。
図3のフレームメモリ領域12a内には、図5に示す如く、カメラごとに4つのフレームメモリが設けられる。カメラCA1に対して4つのフレームメモリM1[1]〜M1[4]が設けられ、カメラCA2に対して4つのフレームメモリM2[1]〜M2[4]が設けられ、カメラCA3に対して4つのフレームメモリM3[1]〜M3[4]が設けられ、カメラCA4に対して4つのフレームメモリM4[1]〜M4[4]が設けられる。各フレームメモリは、入力画像の画像データを1枚分記憶可能である。カメラCA1にて周期的に取得された入力画像は、M1[1]、M1[2]、M1[3]、M1[4]、M1[1]・・・の順番で4フレーム前の入力画像を最新フレームの入力画像で上書きするように循環的に(サイクリックに)記憶されてゆく。カメラCA2〜CA4に対しても同様である。
本実施形態に係る運転支援システムは、入力画像が取得されてから該入力画像に基づく出力画像が表示されるまでの遅延を低減する機能を備えている。この機能の基本原理について説明する。
図18に示す如く表示画面の全表示領域を使って全周鳥瞰画像が表示されるように、第1LUTを用いて各入力画像から出力画像を生成する場合を考える。ch4に対応する画像にのみ着目した、図19と対比されるべき図6を参照する。図6には、ch4の入力画像の入力タイミングと出力画像の出力タイミングとの関係が示されている。第1、第2、第3、第4及び第5フレームにおけるch4の入力画像が、順次、画像処理回路11に与えられ、それらはch4用のフレームメモリ(即ち、フレームメモリM4[1]〜M4[4])に循環的に記憶されてゆく(第1フレームの入力画像は不図示)。画像処理回路11は、タイミングt1、t2、t3及びt4において、夫々、出力画像301、302、303及び304用の垂直同期信号Vsync2を発生する。
図6に示す例の場合、タイミングt1において、第1フレームのch4の入力画像の全画像データがフレームメモリ領域12aに保持されている一方で、第2フレームのch4の入力画像の画像データはフレームメモリ領域12aに書き込まれている最中である。しかしながら、ch4の入力画像が反映される領域は出力画像301内の下方に位置しており、ch4の入力画像の画像データを実際にフレームメモリ領域12aから読み出す開始タイミングtAにおいては、第2フレームのch4の入力画像の全画像データがフレームメモリ領域12aに書き込まれている(尚、タイミングtAは、タイミングt1とt2との間のタイミングである)。
従って、この場合、画像処理装置11は、第2フレームのch4の入力画像を用いて出力画像301を生成する。同様に、第3、4、5フレームのch4の入力画像を用いて、夫々、出力画像302、303及び304を生成して表示する。尚、図6において、出力画像301〜304内の、ch4に対応する部分に記載された数値は、ch4のフレーム番号を表している。
図6に示す例では、タイミングtAにおいて第2フレームのch4の入力画像の全画像データがフレームメモリ領域12aに書き込まれているが、図7に示す如く、タイミングtAにおいて第2フレームのch4の入力画像の全画像データがフレームメモリ領域12aに書き込まれていなかったとしても、第2フレームのch4の入力画像を用いて出力画像301が生成されうる。タイミングtAにおいては未だ書き込まれていない第2フレームのch4の入力画像の一部画像データ306が、仮に、タイミングtA直後では読み出されず、タイミングt2近辺に出力画像301の一部画像データとして読み出されるならば、他の条件にも依存するが図7のような状況においても第2フレームのch4の入力画像を用いて出力画像301を生成することが可能である。
次に、図20に示すような表示画像が表示されるように、第2LUTを用いて各入力画像から出力画像を生成する場合を考える。ch3に対応する画像にのみ着目した、図21と対比されるべき図8を参照する。図8には、ch3の入力画像の入力タイミングと出力画像の出力タイミングとの関係が示されている。第1、第2、第3、第4及び第5フレームにおけるch3の入力画像が、順次、画像処理回路11に与えられ、それらはch3用のフレームメモリ(即ち、フレームメモリM3[1]〜M3[4])に循環的に記憶されてゆく(第1フレームの入力画像は不図示)。画像処理回路11は、タイミングt11、t12、t13及びt14において、夫々、出力画像311、312、313及び314用の垂直同期信号Vsync2を発生する。
図8に示す例の場合、タイミングt11において、第1フレームのch3の入力画像の全画像データがフレームメモリ領域12aに保持されている一方で、第2フレームのch3の入力画像の画像データはフレームメモリ領域12aに書き込まれている最中である。タイミングt11直後から表示画面の右上領域にch3の入力画像に基づく画像を描画する必要があるため、出力画像311の右上領域には第1フレームのch3の入力画像を適用する。一方、出力画像311の左側領域に描画されるべき全周鳥瞰画像内のch3の対応領域は、出力画像311内の下方に位置しており、この領域に対するch3の画像データを実際にフレームメモリ領域12aから読み出す開始タイミングtBにおいては、第2フレームのch3の入力画像の全画像データがフレームメモリ領域12aに書き込まれている(尚、タイミングtBは、タイミングt11とt12との間のタイミングである)。
従って、画像処理装置11は、出力画像311に含まれる全周鳥瞰画像内のch3の対応領域に対して第2フレームのch3の入力画像を用いることも可能であり、この場合、出力画像311内に、第1フレームと第2フレームのch3の入力画像が混在することになる。出力画像312〜314に対しても同様である。このように画面下部のch3の画像の分だけでも最新の情報を運転者に提示できれば、安全上のメリットはある。尚、図8において、出力画像311〜314内の、ch3に対応する部分に記載された数値は、ch3のフレーム番号を表している。
上述のような出力画像の生成のために、基本的には、以下のような判断処理を行う。説明の単純化のため、ch4の入力画像の一部矩形領域を切り出した画像を、そのまま、出力画像の所定領域に嵌め込んで出力画像を生成する場合を考える。図9は、この状況に対応するch4の入力画像と出力画像の関係を表している。具体的な例として、位置(100,100)と位置(300,300)とを結ぶ線分を対角線として有する矩形領域内の画像をch4の入力画像から切り出し、その切り出し画像を、位置(50,100)を起点として出力画像内に嵌め込むことを想定する。位置(50,100)と位置(250,300)とを結ぶ線分を対角線として有する、出力画像内の矩形領域に、その切り出し画像が嵌め込まれる。この場合、出力画像上の位置(50,100)の画素の画素信号を読み出す時点において、最新フレームのch4の位置(100,100)の画素信号が書き込まれて読み出し可能であるならば、その最新フレームのch4の入力画像を出力可能である。
一般に、出力画像の位置(Xout,Yout)に入力画像の位置(Xin,Yin)の画素の像を表示する場合、Youtの水平ラインの画素信号の出力時点で着目フレームの(Yin+α)の水平ラインの各画素信号がフレームメモリ領域12aに書き込まれていると、その着目フレームの入力画像を用いて出力画像を生成することが可能となる。ここで、αは、SDRAMへのアクセス時間に代表される、回路内部の処理自体にかかるレイテンシ(遅延時間)をライン数で表したものである。αの値は、システムの処理速度などに依存して予め定められる。フレーム内補間(映像信号がインターレース方式の映像信号である場合は、フィールド内補間)を使用しない回路であれば、αを1とすれば十分である。以下、α=1であるとする。
従って、図9に示す例の場合は、Yout=50且つ(Yin+α)≒(100+1)=101より、50番目の水平ラインの画素信号の出力時点で着目フレームの101番目の水平ラインの各画素信号がフレームメモリ領域12aに書き込まれていると、その着目フレームの入力画像を用いて出力画像を生成することが可能となる。つまり、ch4用のフレームメモリM4[1]〜M4[4]の内、最新の入力画像の画像データが書きこまれるべきフレームメモリ(図10の例において、M4[3])に着目し、50番目の水平ラインの各画素信号が出力されるべきタイミングにおいて着目したフレームメモリの101番目の水平ラインの各画素信号が書き込まれているか否かを判定すればよい。そして、書き込まれておれば、着目したフレームメモリ内の画像データを用いて出力画像を生成し、書き込まれていなければ、1つ前のフレームの入力画像が保持されているフレームメモリ(図10の例において、M4[2])内の画像データを用いて出力画像を生成する。
説明の単純化のため、切り出し画像を出力画像にそのまま嵌め込む例を説明したが、入力画像の画像データに、レンズ歪補正、鳥瞰変換及び(又は)画像の拡大/縮小処理を施す場合は、入力画像の画素と出力画像の画素との関係は非常に複雑となる。尚、鳥瞰変換とは、入力画像を地面に投影して鳥瞰画像を得るための変換を意味し、全周鳥瞰画像も鳥瞰変換を利用して得られる。
図11に、図18に対応する全周鳥瞰画像を得るための第1LUTのテーブルデータを模式的に表す。図11は、(640×480)の画像サイズに適合したLUTのテーブルデータを表しており、このLUTのテーブルデータには(640×480)個の入力画素位置情報が含まれている。各入力画素位置情報には、画素の水平位置及び垂直位置を表す情報とチャネル番号とが含まれている。LUT上のアドレス(p,q)における入力画素位置情報は、出力画像上の位置(p,q)の画素に対する入力画素位置情報である(p及びqは、0≦p<Xsize且つ0≦q<Ysize、を満たす整数)。
例えば、図11におけるLUT上のアドレス(0,0)には入力画素位置情報(600,80,ch1)が格納されており、これは、“ch1の入力画像における位置(600,80)の画素の画素信号を出力画像における位置(0,0)の画素の画素信号として読み出すべき”ことを規定している。また例えば、図11におけるLUT上のアドレス(1,0)には入力画素位置情報(10,78,ch2)が格納されており、これは、“ch2の入力画像における位置(10,78)の画素の画素信号を出力画像における位置(1,0)の画素の画素信号として読み出すべき”ことを規定している。また例えば、図11におけるLUT上のアドレス(0,1)には入力画素位置情報(601,79,ch1)が格納されており、これは、“ch1の入力画像における位置(601,79)の画素の画素信号を出力画像における位置(0,1)の画素の画素信号として読み出すべき”ことを規定している。
図9に示す例では、入力画像上の水平ラインと該水平ラインに対する出力画像上の水平ラインとのライン位置の相違は常に50ライン分であったが、鳥瞰変換などを実現すべく図11に示すようなLUTを用いると、この相違を表す(Yin−Yout)の値は、出力画像上の画素の位置によって様々の値をとる。最新の画像を表示するためには(Yin−Yout)の値を正確に把握する必要がある。
そこで、LUTによって入力画像上の位置(Xin,Yin)における画素が出力画像上の位置(Xout,Yout)に対応付けられていると考えた時の(Yin−Yout)をΔYとおき、LUT上で一塊となっているチャネル毎に全てのΔYの値を求める。そして、チャネル毎にΔYの値の最大値ΔYMAXを求め、その塊が表示される最初の水平ラインの画素信号の読み出しタイミングにおいて(Yout_top+ΔYMAX+α)番目の水平ラインの画素信号が書き込まれている最新のフレームメモリを出力画像生成用のフレームメモリとして選択するようにする。Yout_topは、上記の塊が表示される最初の水平ラインの番号を表す。これにより、映像遅延の最小化が図られる。
具体例を挙げてΔYMAX等の意義を説明する。図9に示す例では、ch1に対するΔYは全て50であるためch1に対するΔYMAXは50となる。一方で、ch1の入力画像に基づく画像が表示される、出力画像上の最初の水平ラインの番号は、Yout_top=50である。従って、ch1に対する(Yout_top+ΔYMAX+α)は、50+50+1=101より、101となる。従って、ch1の入力画像が表示される最初の水平ライン、即ち50(=Yout_top)番目の水平ラインの画素信号の読み出しタイミングにおいて101(=Yout_top+ΔYMAX+α)番目の水平ラインの画素信号が書き込まれている最新のフレームメモリを出力画像生成用のフレームメモリとして選択するようにする。
図11に示す例では、LUT上のアドレス(0,0)に対するΔYは(Yin−Yout)=80−0より80となり且つLUT上のアドレス(0,1)に対するΔYは(Yin−Yout)=79−1より78となる。この2つのΔYは、ch1に対するΔYである。ch1に関して、LUT上の他のアドレスに対しても同様にΔYを求め、求めたΔYの最大値をch1に対するΔYMAXとする。一方、図11に示すLUTを用いると、ch1の入力画像に基づく画像が表示される、出力画像上の最初の水平ラインの番号Yout_topは0である(LUT上のアドレス(0,0)における入力画素位置情報はch1に対するものであるため)。従って、仮にch1に対するΔYMAXが120であるなら、ch1に対する(Yout_top+ΔYMAX+α)は、0+120+1=121より、121となる。ch2、ch3及びch4の夫々に対しても、ΔYMAX及びYout_topが同様にして求められる。尚、図11のLUTを用いる場合、ch4に対するYout_topだけが0以外の値をとる。
以下、ch1〜ch4に対するΔYMAXをΔYMAX1〜ΔYMAX4で表すこととし、ch1〜ch4に対するYout_topをYout_top1〜Yout_top4で表すことする。図3のLUT領域12b内に形成されるLUTごとにΔYMAX1〜ΔYMAX4及びYout_top1〜Yout_top4の値は定められ、出力画像を形成するために使用するLUTを指定すれば、その指定されたLUT内のテーブルデータに基づいてΔYMAX1〜ΔYMAX4及びYout_top1〜Yout_top4の値は自動的に決まる。各LUT内のテーブルデータは予め定められるものであるため、各LUTに対するΔYMAX1〜ΔYMAX4及びYout_top1〜Yout_top4の値も予め定めておくこととができる。
上述した出力画像の生成処理に関する実施例として、以下に、第1〜第3実施例を例示する。或る実施例に記載した事項は、矛盾なき限り、他の実施例にも適用可能である。
<<第1実施例>>
まず、第1実施例について説明する。図12は、第1実施例に係る画像処理回路11の内部構成をも示す、運転支援システムの一部ブロック図である。第1実施例に係る画像処理回路11は、図12の符号21〜25にて参照される各部位を備える。RAM部12は書き込みアドレス生成回路21、LUTアドレス生成回路23及び読み出しアドレス生成回路24の他、MPU16からもアクセスされる(MPU16によるアクセスの様子は不図示)。従って、RAM部12に対するデータの読み書きは実際には調停回路25による調停制御の下で実行されるが、説明の簡略化のため、この調停回路25の存在を無視して以下の説明を行うものとする。
チャネル数は4であるが各チャネルのデータに対する画像処理回路11の動作は4つのチャネル間で同様である。従って、チャネルの番号を表す変数iを導入し、適宜、iを用いて説明の簡略化を図る(iは、1、2、3又は4である)。例えば、デコーダDECiとは、チャネルch1を考える場合はデコーダDEC1を意味し、チャネルch2を考える場合はデコーダDEC2を意味する。
書き込みアドレス生成回路21は、図3のデコーダDECiからの垂直同期信号Vsync及び水平同期信号HsyncとデコーダDECiからの画素信号の出力間隔に同期したピクセルクロック(不図示)とに基づいて、現時点において図3のデコーダDECiから送られてくる画素信号(画像データDinを形成する画素信号)が書き込まれるべきRAM部12上のアドレス(以下、書き込みアドレスという)を生成し、これをRAM部12に与える。書きこみアドレスは、RAM部12内のフレームメモリMi[1]〜Mi[4]上のアドレスである。
図3のデコーダDECiからの画素信号は、フレームメモリMi[1]〜Mi[4]内の、書き込みアドレスにて指定されたアドレスに書き込まれる。現時点において入力される画素信号がフレームメモリMi[1]〜Mi[4]の内の何れのフレームメモリに格納されるべきかをも、書き込みアドレス生成回路21は管理している。また、書き込みアドレスは、読み出しアドレス生成回路24にも与えられる。
映像出力アドレス生成回路22は、映像信号Vinとは非同期で駆動し、出力画像用の垂直同期信号Vsync2及び水平同期信号Hsync2を生成して出力すると共に、垂直同期信号Vsync2及び水平同期信号Hsync2に同期した映像出力アドレスを生成し、該映像出力アドレスをLUTアドレス生成回路23に送る。
LUTアドレス生成回路23は、MPU16から送られてくるLUT選択情報に従って、RAM部12のLUT領域12bに格納されている複数のLUTの内の1つのLUTを選択する。選択されたLUTを、以下「指定LUT」と呼ぶ。そして、LUTアドレス生成回路23は、映像出力アドレスに応じた、指定LUT上のアドレス(以下、LUTアドレスという)を生成する。このLUTアドレスはRAM部12に送られて、指定LUT上のLUTアドレスにおけるデータがRAM部12からLUT情報として読み出され、このLUT情報は読み出しアドレス生成回路24に送られる。LUT情報は、図11を用いて示した、(600,80,ch1)などの入力画素位置情報と同じものである。
読み出しアドレス生成回路24は、入力画像の画像データの入力タイミングと出力画像の画像データの出力タイミングとのタイミング関係と、指定LUTに対するΔYMAX1〜ΔYMAX4及びYout_top1〜Yout_top4に応じて作成される読み出しメモリ切替情報と、に基づいて、出力画像の生成に利用可能な最新の入力画像が格納されるフレームメモリをチャネル毎に1つずつ選択する。入力画像の画像データの入力タイミングは書き込みアドレスによって特定される。出力画像の画像データの出力タイミングは、垂直同期信号Vsync2及び水平同期信号Hsync2に基づいて、又は、映像出力アドレスに基づいて特定される。
選択したフレームメモリを、以下、「指定フレームメモリ」という。つまり、上記タイミング関係と読み出しメモリ切替情報に基づいて、ch1用のフレームメモリM1[1]〜M1[4]の内の1つをch1用の指定フレームメモリとして選択し、且つ、ch2用のフレームメモリM2[1]〜M2[4]の内の1つをch2用の指定フレームメモリとして選択し、ch3用のフレームメモリM3[1]〜M3[4]の内の1つをch3用の指定フレームメモリとして選択し、ch4用のフレームメモリM4[1]〜M4[4]の内の1つをch4用の指定フレームメモリとして選択する。この選択は、読み出しメモリ切替情報に基づく、指定フレームメモリの切替判定を介して行われる(詳細は後述)。
読み出しアドレス生成回路24は、LUT情報によって指定されるチャネル及び画素位置の画素信号を指定フレームメモリから読み出すべく、LUT情報に基づいて指定フレームメモリ上の読み出しアドレスを生成する。この読み出しアドレスに書き込まれていた画素信号は、出力画像の、映像出力アドレスに対応する位置の画素の画素信号としてエンコーダ13に出力される。
以下、特に記述無き限り、指定LUTが第1LUTであって且つ第1LUTのテーブルデータが図11に示すそれと同じである場合を想定する。
また、映像出力に関し、全期間は、出力画像上の各位置(0,0)〜(Xsize−1,Ysize−1)における画素信号が実際に出力される有効映像期間と、ブランキング期間を含む無効映像期間と、に分類される(図4(b)参照)。映像出力アドレス生成回路22から出力される映像出力アドレスは、無効映像期間をも含むアドレスであるため、その映像出力アドレスの水平成分(換言すれば、垂直ラインの番号を表す成分)及び垂直成分(換言すれば、水平ラインの番号を表す成分)は夫々Xsize及びYsize以上の値を示す場合がある。
本実施例及び後述の各実施例では、映像出力アドレス生成回路22からの、無効映像期間をも含めた映像出力アドレスの水平成分及び垂直成分の最大値を夫々Xsize’及びYsize’とする。即ち、映像出力アドレス生成回路22は、(0,0)、(1,0)、(2,0)、・・・、(Xsize’,0)、(0,1)、(1,1)、(2,1)、・・・、(Xsize’,Ysize’)の順に映像出力アドレスを生成するものとする。ここで、Xsize’>Xsize、且つ、Ysize’>Ysizeである。
上述してきた位置(x,y)は、出力画像上に実際に描写される画素の座標を表している。出力画像上に実際に描写される画素が配列される座標系を、有効映像座標系と呼ぶ。一方、無効映像期間をも含めた座標系を無効映像座標系と呼ぶ。有効映像座標系は、無効映像座標系に内包される。無効映像座標系上の座標を(x’,y’)で表す。以下、有効映像座標系上の座標(x,y)を有効映像座標とも呼び、無効映像座標系上の座標(x’,y’)を無効映像座標とも呼ぶ。そして、今、有効映像座標(0,0)に対応する無効映像座標(x’,y’)が(20,20)であり、無効映像座標(20,20)から出力画像上の実際の画素が配列されるものとする。
有効映像座標(0,0)の1水平ライン前の座標は無効映像座標(20,19)に相当し、無効映像座標(20,19)を有効映像座標で表すと(0,−1)となるものとして以下の説明を行う。また、説明の簡略化のため、映像出力アドレス生成回路22から出力される映像出力アドレスが無効映像期間に属するアドレス(例えば、(0,−1))である場合は、LUTアドレス生成回路23からLUTアドレス(0,0)が出力されるものとする。
尚、映像出力アドレスを基にしてLUTアドレスの生成を介してフレームメモリから読み出される画素信号と、垂直同期信号Vsync2及び水平同期信号Hsync2とのタイミング関係は、調停回路25とエンコーダ13との間に設けられた図示されないFIFO(First In, First Out)により調整されるものとする。また、エンコーダ13の前段に映像信号Voutを受ける同期付加回路(不図示)が設けられ、その同期付加回路によって、映像信号Voutに無効映像期間の同期信号が付加されると共に同期信号以外の信号の信号レベルが決定される。
具体的な数値を挙げて画素信号の読み出し動作の説明を具体化する。映像出力アドレス生成回路22は、SDRAMへのアクセス時間を含むレイテンシを考慮し、着目した画素が実際に表示されるタイミングよりも1水平ライン分早く、その画素に対応する映像出力アドレスを生成する。例えば、出力画像の位置(0,0)の画素信号をエンコーダ13に出力しようとする場合、映像出力アドレス生成回路22は、映像出力アドレス(0,−1)をLUTアドレス生成回路23に送る。LUTアドレス生成回路23は、映像出力アドレス(0,−1)に応じたLUTアドレスを生成する。このLUTアドレスは、出力画像上の位置(0,0)に対応した入力画素位置情報(即ち、(600,80,ch1);図11参照)が格納された指定LUT上のアドレスである。実際には、LUTアドレスはSDRAMの全体メモリ空間上のアドレスであるが、図11を参照して説明したように、出力画像上の位置(0,0)に対応した入力画素位置情報が格納されているLUT上のアドレスを(0,0)と捉えているため、LUTアドレスは(0,0)となる。
LUTアドレス(0,0)におけるデータはLUT情報として読み出される。このLUT情報は、出力画像上の位置(0,0)に対応した入力画素位置情報(600,80,ch1)である(図11参照)。今、ch1に対する指定フレームメモリがフレームメモリM1[3]であるとした場合、読み出しアドレス生成回路24は、このLUT情報に基づき、ch1の入力画像における位置(600,80)の画素の画素信号が書き込まれているフレームメモリM1[3]上のアドレスを、読み出しアドレスとして生成する。この読み出しアドレスに従って読み出された画素信号は、出力画像の位置(0,0)の画素信号としてエンコーダ13に出力される。以上のような動作を出力画像上の各位置に対して実行することにより、出力画像の全体を表す画像データDoutがエンコーダ13に出力され、出力画像が表示画面上に表示されるようになる。
図13に、読み出しメモリ切替情報の構成を示す。読み出しメモリ切替情報は、切替判定タイミングを規定する切替判定タイミング情報と切替判定条件を規定する切替判定条件情報とをチャネルごとに含んでいる。chiに対する切替判定タイミング情報は(Yout_topi−α)であり、chiに対する切替判定条件情報は(Yout_topi+ΔYMAXi)である(上述したように、iは1、2、3又は4である)。読み出しメモリ切替情報はLUTごとに設定されており、指定LUTが或るLUTから他のLUTに切り替えられると、その切り替え時の垂直帰線期間にMPU16から切り替え先のLUTに適応した読み出しメモリ切替情報が読み出しアドレス生成回路24に送られる。
読み出しアドレス生成回路24は、各チャネルを対象とし、切替判定タイミング情報によって規定される切替判定タイミングにおいて、対象となるチャネルの入力画像を読み出すべきフレームメモリを切り替えるか否かを判断する。この判断は、対象となるチャネルに対する切替判定条件が満たされるか否かを判定することによって行われる。
ch4に着目してより具体的に説明する(図10の状況を想定する)。出力画像の(Yout_top4−α)番目の水平ライン、即ち、ch4の切替判定タイミング情報によって表される(Yout_top4−α)番目の水平ラインの画素信号をRAM部12から読み出してエンコーダ13に出力すべきタイミングが、ch4に対する切替判定タイミングである。尚、切替判定タイミングを認識できるように、読み出しアドレス生成回路24は、適宜、垂直同期信号Vsync2及び水平同期信号Hsync2や映像出力アドレスを参照する。
読み出しアドレス生成回路24は、この切替判定タイミングにおいて、ch4の入力画像を読み出すべきフレームメモリを切り替えるか否かを書き込みアドレスに基づいて判断する。この判断前におけるch4の指定フレームメモリがフレームメモリM4[2]である場合は、指定フレームメモリをフレームメモリM4[2]からch4の最新の入力画像の画像データが書き込まれている最中であることが想定されるフレームメモリM4[3]に切り替えるか否かを判断する。
この切り替えに関する判断は、ch4の最新の入力画像における(Yout_top4+ΔYMAX4)番目の水平ラインの各画素信号が、ch4の切替判定タイミングにおいて、フレームメモリM4[3]に既に書き込まれているか否かを判定することによって行われる。即ち、ch4の切替判定条件情報によって表される(Yout_top4+ΔYMAX4)番目の水平ラインの各画素信号が、ch4の切替判定タイミングにおいて、フレームメモリM4[3]に既に書き込まれているか否かを判定することによって、この切り替えに関する判断を行う。そして、書き込みアドレスに基づいて、それが既に書き込まれていると判定された場合は出力画像の形成にフレームメモリM4[3]を利用できるためch4の指令フレームメモリをフレームメモリM4[2]からフレームメモリM4[3]へと切り替え、それが既に書き込まれていると判定されなかった場合はch4の指令フレームメモリをフレームメモリM4[2]のままとする。
このように、読み出しアドレス生成回路24は、各カメラからの画像データの入力タイミングと出力画像の画像データの出力タイミングとのタイミング関係を考慮して、チャネルごとに出力画像の形成に利用される指定フレームメモリを複数のフレームメモリの中から選択する。この際、この選択動作を、チャネルごとに個別に設定された切替判定タイミング(換言すれば、選択タイミング)において行うようにする。上述の説明から理解されるように、切替判定タイミング情報を含む読み出しメモリ切替情報は、各チャネルの入力画像に基づく画像を出力画像上のどの位置にどのように配置するかに依存して決定され、その決定内容はLUTによって表現される。
また、切替判定条件は、ΔYMAX1〜ΔYMAX4に依存する。一方で、入力画像上の各画素と出力画像上の各画素との対応関係を規定するLUTのテーブルデータが定まれば自動的にΔYMAX1〜ΔYMAX4が決まる。従って、切替判定条件に基づく指定フレームメモリの切替判定はそのテーブルデータに基づいて実行されていると解釈することができる。
また、図18に示すような表示画像を得るための第1LUTが指定LUTとなっている場合、各チャネルの切替判定タイミングの個数は1枚の出力画像に対して1つであるが、指定LUTによっては、それを2つ以上とすることもできる。例えば、図20に示すような表示画像を得るための第2LUTが指定LUTとなっている場合は、ch3の入力画像に基づく画像が配置される領域が1枚の出力画像中に2つ設けられるため、ch3の切替判定タイミングの個数を1枚の出力画像に対して2つとすることも可能である。この場合、その2つの切替判定タイミングの夫々に対して切替判定条件が設定される。そして、各切替判定タイミングにおいて、対応する切替判定条件の成立/不成立を判定し、その判定結果に基づいてch3に対する指定フレームメモリの選択を行えば良い。
<<第2実施例>>
第1実施例では、ライン単位で指定フレームメモリの切替判定を行うことで映像出力における遅延の低減を図っているが、回路規模の増大が許されるなら、画素単位で該切替判定を行うことも可能である。画素単位で指定フレームメモリの切替判定を行えば、遅延の低減効果が更に高まる。画素単位で指定フレームメモリの切替判定を行う実施例を、第2実施例として説明する。第2実施例は、第1実施例の一部を変形した実施例に相当する。そのため、第1実施例との相違点にのみ着目して説明を行う。
まず、図3のLUT領域12b内の各LUTに着目し、上述したΔYの代わりにΔXYを求める。具体的には(図11参照)、LUTによって入力画像上の位置(Xin,Yin)(即ち、無効映像期間をも含めた無効映像座標(Xin’,Yin’))における画素が出力画像上の位置(Xout,Yout)(即ち、無効映像期間をも含めた無効映像座標(Xout’,Yout’))に対応付けられていると考えた時の(Xin+Yin・Xsize’−(Xout+Yout・Xsize’))をΔXYとおき、LUT上で一塊となっているチャネル毎に全てのΔXYの値を求める。そして、チャネル毎にΔXYの値の最大値ΔXYMAXを求め、その塊が表示される最初の画素の画素信号の読み出しタイミングにおいて(XYout_top+ΔXYMAX+α’)の画素の画素信号が書き込まれている最新のフレームメモリを出力画像生成用のフレームメモリとして選択するようにする。
XYout_topは、上記の塊が表示される最初の画素の画素番号を表し、その画素の位置(換言すれば座標)が(x,y)である場合、即ち無効映像期間をも含めた該画素の座標が(x’,y’)である場合は、XYout_top=x’+y’・Xsize’、と定義される。α’は、SDRAMへのアクセス時間に代表される、回路内部の処理自体にかかるレイテンシ(遅延時間)を画素数で表したものである。α’の値は、システムの処理速度などに依存して予め定められる。
具体例を挙げてΔXY等の意義を説明する。Xsize’=720且つYsize’=525であるとし、図11に示すLUTを例にとる。LUT上のアドレス(0,0)に対するΔXYは(Xin+Yin・Xsize’−(Xout+Yout・Xsize’))=600+80・720−(0+0・720)=58200より58200となり且つLUT上のアドレス(0,1)に対するΔXYは(Xin+Yin・Xsize’−(Xout+Yout・Xsize’))=601+79・720−(0+1・720)=56761より56761となる。この2つのΔXYは、ch1に対するΔXYである。ch1に関する、LUT上の他のアドレスに対しても同様にΔXYを求め、求めたΔXYの最大値をch1に対するΔXYMAXとする。
一方、図11に示すLUTを用いると、ch1の入力画像に基づく画像が表示される、出力画像上の最初の画素の画素番号XYout_topは0である(LUT上のアドレス(0,0)における入力画素位置情報はch1に対するものであるため)。従って、仮にch1に対するΔXYMAXが60000であるなら、ch1に対する(XYout_top+ΔXYMAX+α’)は、(60000+α’)となる。ch2、ch3及びch4の夫々に対しても、ΔXYMAX及びXYout_topが同様にして求められる。
以下、ch1〜ch4に対するΔXYMAXをΔXYMAX1〜ΔXYMAX4で表すこととし、ch1〜ch4に対するXYout_topをXYout_top1〜XYout_top4で表すことする。図3のLUT領域12b内に形成されるLUTごとにΔXYMAX1〜ΔXYMAX4及びXYout_top1〜XYout_top4の値は定められ、出力画像を形成するために使用する指定LUTを定まれば、その指定LUT内のテーブルデータに基づいてΔXYMAX1〜ΔXYMAX4及びXYout_top1〜XYout_top4の値は自動的に決まる。各LUT内のテーブルデータは予め定められるものであるため、各LUTに対するΔXYMAX1〜ΔXYMAX4及びXYout_top1〜XYout_top4の値も予め定めておくこととができる。
第2実施例に係る画像処理回路11の内部構成は、図12のそれと同じであり、画像処理回路11内の各部の動作は基本的には第1実施例と同じである。但し、画素単位の切替判定を行うべく、読み出しメモリ切替情報は、第1実施例のそれと異なる。
図14に、第2実施例に係る読み出しメモリ切替情報の構成を示す。読み出しメモリ切替情報は、切替判定タイミングを規定する切替判定タイミング情報と切替判定条件を規定する切替判定条件情報とをチャネルごとに含んでいる。chiに対する切替判定タイミング情報は(XYout_topi−α’)であり、chiに対する切替判定条件情報は(XYout_topi+ΔXYMAXi)である(上述したように、iは1、2、3又は4である)。読み出しメモリ切替情報はLUTごとに設定されており、指定LUTが或るLUTから他のLUTに切り替えられると、その切り替え時の垂直帰線期間にMPU16から切り替え先のLUTに適応した読み出しメモリ切替情報が読み出しアドレス生成回路24に送られる。
読み出しアドレス生成回路24は、各チャネルを対象とし、切替判定タイミング情報によって規定される切替判定タイミングにおいて、対象となるチャネルの入力画像を読み出すべきフレームメモリを切り替えるか否かを判断する。この判断は、対象となるチャネルに対する切替判定条件が満たされるか否かを判定することによって行われる。
ch4に着目してより具体的に説明する(図10の状況を想定する)。出力画像の(XYout_top4−α’)番目の画素、即ち、ch4の切替判定タイミング情報によって表される(XYout_top4−α’)番目の画素の画素信号をRAM部12から読み出してエンコーダ13に出力すべきタイミングが、ch4に対する切替判定タイミングである。尚、切替判定タイミングを認識できるように、読み出しアドレス生成回路24は、適宜、垂直同期信号Vsync2及び水平同期信号Hsync2や映像出力アドレスを参照する。
読み出しアドレス生成回路24は、この切替判定タイミングにおいて、ch4の入力画像を読み出すべきフレームメモリを切り替えるか否かを判断する。この判断前におけるch4の指定フレームメモリがフレームメモリM4[2]である場合は、指定フレームメモリをフレームメモリM4[2]からch4の最新の入力画像の画像データが書き込まれている最中であることが想定されるフレームメモリM4[3]に切り替えるか否かを判断する。
この切り替えに関する判断は、ch4の最新の入力画像における(XYout_top4+ΔXYMAX4)番目の画素の画素信号が、ch4の切替判定タイミングにおいて、フレームメモリM4[3]に既に書き込まれているか否かを判定することによって行われる。即ち、ch4の切替判定条件情報によって表される(XYout_top4+ΔXYMAX4)番目の画素の画素信号が、ch4の切替判定タイミングにおいて、フレームメモリM4[3]に既に書き込まれているか否かを判定することによって、この切り替えに関する判断を行う。そして、書き込みアドレスに基づいて、それが既に書き込まれていると判定された場合は出力画像の形成にフレームメモリM4[3]を利用できるためch4の指令フレームメモリをフレームメモリM4[2]からフレームメモリM4[3]へと切り替え、それが既に書き込まれていると判定されなかった場合はch4の指令フレームメモリをフレームメモリM4[2]のままとする。
第1実施例では、切替判定タイミングをライン単位で設定し、入出力画像間の対応する水平ラインの位置の相違ΔYの最大値(ΔYMAX1〜ΔYMAX4)に基づいて指定フレームメモリの切替判定(換言すれば、指定フレームメモリの選択)を行っているのに対し、第2実施例では、切替判定タイミングを画素単位で設定し、入出力画像間の対応する画素の位置の相違ΔXYの最大値(ΔXYMAX1〜ΔXYMAX4)に基づいて指定フレームメモリの切替判定(換言すれば、指定フレームメモリの選択)を行っている。
尚、第1実施例でも述べたのと同様、指定LUTによっては、或るチャネルの切替判定タイミングの個数が1枚の出力画像に対して2以上となりうる。例えば、第2LUTが指定LUTとなっている場合は、ch3の切替判定タイミングの個数を1枚の出力画像に対して2つとすることも可能である。この場合、その2つの切替判定タイミングの夫々に対して切替判定条件が設定される。そして、各切替判定タイミングにおいて、対応する切替判定条件の成立/不成立を判定し、その判定結果に基づいてch3に対する指定フレームメモリの選択を行えば良い。
<<第3実施例>>
第1及び第2実施例では、画像処理回路11内部で指定フレームメモリの選択などをも行っているが、第1及び第2実施例の画像処理回路11が行っていた機能の一部を、演算処理手段としてのMPU16に担わせることも当然に可能である。このことを具体化した実施例として、第3実施例を説明する。
図15は、第3実施例に係る画像処理回路11の内部構成をも示す、運転支援システムの一部ブロック図である。第3実施例に係る画像処理回路11は、図15の符号21〜23、24a、25及び26にて参照される各部位を備える。第3実施例でも、調停回路25の存在を無視した説明を行う。
図15の書き込みアドレス生成回路21、映像出力アドレス生成回路22及びLUTアドレス生成回路23の各動作は、第1実施例で示したものと同じである。LUTアドレス生成回路23が生成したLUTアドレスに従ってRAM部12から読み出されたLUT情報は、読み出しアドレス生成回路24aに送られる。
読み出しアドレス生成回路24aには、MPU16からフレームメモリ指定情報が与えられる。フレームメモリ指定情報は、各チャネルの指定フレームメモリを定める情報である。読み出しアドレス生成回路24aは、フレームメモリ指定情報に従って各チャネルの指定フレームメモリを特定し、LUT情報によって指定されるチャネル及び画素位置の画素信号を指定フレームメモリから読み出すべく、LUT情報に基づいて指定フレームメモリ上の読み出しアドレスを生成する。この読み出しアドレスに書き込まれていた画素信号は、出力画像の、映像出力アドレスに対応する位置の画素の画素信号としてエンコーダ13に出力される。
MPU16にてフレームメモリ指定情報を作成するために、MPU16が入力画像の画像データの入力タイミングと出力画像の画像データの出力タイミングを正確に把握する必要がある。そこで、図15に示す構成では、書き込みアドレス生成回路21が生成した書き込みアドレスをレジスタ26に与えるようにし、垂直同期信号Vsync2の発生時点における書き込みアドレスをレジスタ26にラッチさせてMPU16に与える。一方で、垂直同期信号Vsync2の発生時点において、MPU16に対する割り込み要求を発生させるようにする。これにより、MPU16は、割り込み要求発生時点を垂直同期信号Vsync2の発生時点として把握すると共に、その時点における書き込みアドレスを同時に認識する。即ち、入力画像の画像データの入力タイミングと出力画像の画像データの出力タイミングとのタイミング関係がMPU16において認識される。
MPU16は、指定LUTに適応した図13に示すような読み出しメモリ切替情報を予め認識している。そして、MPU16は、切替判定タイミングをMPU16に内蔵されたタイマ(不図示)を用いて認識し、その切替判定タイミングにおいて切替判定条件の成立/不成立を判断することにより指定フレームメモリの切替判断及びその判断結果に応じたフレームメモリ指定情報の更新を行う(尚、切替判定タイミングがVsync2の発生時点と同じであるのなら、タイマの使用は必要ない)。
指定LUTが第1LUTであって且つ図13に示す読み出しメモリ切替情報が定められている場合を想定し、ch4に対するMPU16の動作について説明する。出力画像の(Yout_top4−α)番目の水平ライン、即ち、ch4の切替判定タイミング情報によって表される(Yout_top4−α)番目の水平ラインの画素信号をRAM部12から読み出してエンコーダ13に出力すべきタイミングが、ch4に対する切替判定タイミングである。この切替判定タイミングにおいてタイマによる割り込み要求が発生するようにVsync2の発生時点を基準にタイマを設定しておくことで、MPU16は、この切替判定タイミングを認識する。図16に、タイマによる割り込み要求の様子を示す。
そして、MPU16は、この切替判定タイミングにおいて、ch4の入力画像を読み出すべきフレームメモリを切り替えるか否かの判断を、レジスタ26から与えられた書き込みアドレスに基づいて実行する。判断の主体がMPU16に変わっただけで、この判断の方法自体は第1実施例で述べたものと同様である。判断結果は、フレームメモリ指定情報に反映される。
尚、第1実施例でも述べたのと同様、指定LUTによっては、或るチャネルの切替判定タイミングの個数が1枚の出力画像に対して2以上となりうる。例えば、第2LUTが指定LUTとなっている場合は、ch3の切替判定タイミングの個数を1枚の出力画像に対して2つとすることも可能である。この場合、その2つの切替判定タイミングの夫々に対して切替判定条件が設定される。そして、各切替判定タイミングにおいて、MPU16が、対応する切替判定条件の成立/不成立を判定し、その判定結果に基づいてch3に対する指定フレームメモリの選択を行えば良い。例えば、第2LUTを指定LUTとして用いた場合、ch3に対しては、Vsync2の発生タイミングと(Yout_top3−α)で表されるタイミングが切替判定タイミングとされ、後者のタイミングにおいてタイマによる割り込み要求が発生するようにしておく(図17参照)。
また、ライン単位で指定フレームメモリの切替判定を行う例を示したが、第2実施例に記載した事項を第3実施例に適用することも可能である。即ち、回路規模の増大が許されるなら、第2実施例で示したように、画素単位で該切替判定を行うことも可能である。
また、第1又は第2実施例の如くハードウェアが主体となって指定フレームメモリの切替判定を行うようにすると、時間の管理が正確になり、映像出力における遅延を良好に低減することができる。これに対し、第3実施例では、MPU16がリアルタイム制御に介在するため、Vsync2による割り込みやタイマによる割り込みの処理優先順位によっては、時間管理に誤差が発生しうる。このため、映像出力における遅延の低減効果は第1実施例のそれよりも若干小さいと言えるが、一方で、読み出しアドレス生成回路の回路構成を簡素化できるというメリットがある。
<<変形等>>
上述した説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。上述の実施形態の変形例または注釈事項として、以下に、注釈1〜注釈5を記す。各注釈に記載した内容は、矛盾なき限り、任意に組み合わせることが可能である。
[注釈1]
上述の例では、1つのチャネルに対して設けられているフレームメモリの個数が4であるが、その個数を2以上の任意の個数とすることができる。
[注釈2]
上述の例では、入力画像上の各画素と出力画像上の各画素との対応関係を規定する対応情報としてLUT(テーブルデータ)を用意し、該LUTを用いて各入力画像から出力画像を形成するようにしているが、LUTを用いる場合と等価な出力画像が得られるのであればLUTの使用は必須ではない。例えば、上記の対応情報に応じた幾何学的変換を各入力画像に施すことよって出力画像を得るようにしていもよい。
[注釈3]
図3の運転支援システムは、ハードウェア、或いは、ハードウェアとソフトウェアの組み合わせによって実現可能である。特に、図12又は図15に示される、画像処理装置11内の各部位の機能は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実現可能である。
[注釈4]
車両に対する運転支援システムに本発明を適用した場合の実施形態を上述したが、本発明は、車両用途に限定されない。即ち、本発明は、互いに非同期の複数カメラからの入力画像に対して画像処理を施して出力画像を得る様々な装置及びシステム(監視システムなど)に適用可能であり、特にリアルタイム性を要求する用途全てに適用可能である。尚、画像処理の内容によっては画像処理にかかる時間が大きくなるが、その際は、上述のレイテンシ(α又はα’)を大きな値に設定しておくことで対応可能である。
また、カメラからの映像信号がデコーダを介して画像処理回路に入力される構成を上述の実施形態にて示したが、本発明に係る映像信号の入出力形態は、上述の実施形態におけるそれに限定されない。例えば、カメラからの映像信号をネットワークを介して受信する形態であっても、その映像信号を一旦復号してフレームメモリに蓄えることができるのであれば、本発明を適用可能である。但し、この場合は、入力される映像信号がフレーム途中で途切れる可能性があることを想定し、入力画像を形成する画素の内、表示に使用する画素全ての画素信号の受信を待って実際の表示を行う必要がある。
従って、ネットワークを介した映像信号受信を第1実施例に適用する場合、例えば、表示に使用する画素が属する最後の水平ラインに1ラインを加えた水平ライン上の画素の画素信号が受信された時に、指定フレームメモリ(即ち、表示に使用するフレームメモリ)の切替判定を行うようにする。同様に、ネットワークを介した映像信号受信を第2実施例に適用する場合、例えば、表示に使用する最後の画素の次の画素の画素信号が受信された時に、指定フレームメモリの切替判定を行うようにする。第3実施例では、タイマを用いて切替判定タイミングの予測を行っているため、ネットワークを介した映像信号受信をそのまま第3実施例に使用することができない。ネットワークを介した映像信号受信を第3実施例に適用する場合は、表示に使用する最後の画素の受信時にMPU16に対して割り込み要求が発生するようにしておき、その割り込み要求に対応してMPU16内で実行される割り込みルーチン中において、指定フレームメモリの切替判定を行う必要がある。
[注釈5]
例えば、以下のように考えることができる。各カメラから取得した入力画像より出力画像を生成する画像処理装置は、主として、図3の画像処理回路11、RAM部12及びMPU16によって形成される。第1又は第2実施例では、指定フレームメモリを選択する選択手段は画像処理回路11に内在しているが、第3実施例では、選択手段はMPU16に内在している。