1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る半導体集積回路(10)は、複数のカメラ(31〜34)と半導体メモリ(35)とが接続可能に構成される。そしてこの半導体集積回路は、上記カメラで撮影することで得られた画像データを取り込むための複数の第1インタフェース(11〜14)と、上記半導体メモリとの間でデータのやり取りを可能にする第2インタフェース(21)と、上記第2インタフェースが結合されたバス(22)とを含む。また上記半導体集積回路は、それぞれ上記第1インタフェースに対応して配置され、それぞれ対応する第1インタフェースを介して伝達された画像データに対して所定のデータ処理を施すための複数の画像処理モジュール(15〜18)を含む。そして上記画像処理モジュール(15〜18)は、予め指定された領域内の画像データについて歪み補正を行い、その歪み補正後の上記領域内の画像データを、上記バス及び上記第2インタフェースを介して上記半導体メモリに書き込む処理を含む。
上記の構成によれば、複数の画像処理モジュールにより、予め指定された領域内の画像データについて歪み補正が行われ、その歪み補正後の上記領域内の画像データが、上記バス及び上記第2インタフェースを介して上記半導体メモリに書き込まれるようになっている。このため、予め指定された領域以外の画像データが、上記画像処理モジュールでの歪み補正対象から外されることにより、画像処理モジュールからバス及び第2インタフェースを介して半導体メモリに転送される画像データの量を大幅に削減することができるので、上記半導体メモリに対する書き込みアクセスによる上記バスの負荷を軽減することができ、上記バスを利用する他のデータ処理を不所望に遅延させずに済む。また、上記画像処理モジュールでは、予め指定された領域内の画像データについて歪み補正を行い、その歪み補正後の上記領域内の画像データを、上記バス及び上記第2インタフェースを介して上記半導体メモリに書き込む処理が行われることで、予め指定された領域内の画像データの切り出し処理と、切り出された領域における画像の歪み補正処理とを同時に行うことができる。このため、予め指定された領域内の画像データの切り出し処理と、切り出された領域における画像の歪み補正処理とを別々の処理ブロックで別個に行う場合に比べて、処理の高速化を図ることができる。
〔2〕上記〔1〕において、上記半導体集積回路での処理済みの画像を表示装置に表示するために、上記半導体集積回路には、上記複数の画像処理モジュールで処理された画像データを上記半導体メモリから取り込んで合成して表示装置に表示制御するための表示制御部(19)を設けることができる。
〔3〕上記〔2〕において、上記画像処理モジュールには、上記第1インタフェースを介して入力された画像データを格納するためのラインメモリ(41)と、予め形成されたディスプレイリストを格納するためのディスプレイリストバッファ(43)と、上記ディスプレイリストに従って、上記ラインメモリ内の画像データについて上記歪み補正を行うための処理ブロック(42)とを設けることができる。
〔4〕上記〔3〕において、上記ディスプレイリストには、上記ラインメモリに格納されている画像データを座標変換してから上記半導体メモリに格納することを指示するための第1命令(描画命令)と、所定の条件成立までは次のディスプレイリストの実行を待たせるための第2命令(SYNCW命令)とを記述することができる。また上記ディスプレイリストには、上記処理ブロックでの処理により1画面分の画像データが得られた時点で所定の割込み信号を形成するための第3命令(TRAP命令)を記述することができる。上記第1命令、上記第2命令、及び上記第3命令は上記処理部ブロックにおいて実行される。
〔5〕上記〔4〕において、上記半導体集積回路には、上記バスに結合された中央処理装置(20)を設けることができる。上記中央処理装置は、上記ディスプレイリストにおける上記第3命令に起因する割込み信号に対応する割込み処理によって、上記半導体メモリ内の対応する画像データを、上記バスを介して上記表示制御部に書き込む処理を含む。
〔6〕上記〔5〕において、上記複数のカメラの撮影タイミングの適正化を図るため、上記複数のカメラの撮影タイミングを制御するための同期信号を外部出力可能なポート(151)を設けることができる。
〔7〕上記〔6〕に記載の半導体集積回路と、それに結合された上記複数のカメラ及び上記半導体メモリとを備えて全周囲映像システム(100)を構成することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
図1には、本発明に係る半導体集積回路の一例とされるプロセッサを含む全周囲映像システムが示される。図1に示される全周囲映像システム100は、プロセッサ10、複数のカメラ31〜34、半導体メモリ(DDR)35、及び表示装置(LCD)36を含む。
プロセッサ10は、特に制限されないが、全周囲映像システムの動作に必要な機能が実装されたSoCとされ、公知の半導体集積回路製造技術によって単結晶シリコン基板などの一つの半導体基板に形成される。図1に示されるプロセッサ10には、カメラ接続用端子T1〜T4、半導体メモリ接続用端子T5、表示装置接続用端子T6が設けられている。カメラ接続用端子T1〜T4にはカメラ31〜34が接続される。カメラ31〜34は、車両の前後左右を撮影するために当該車両に取り付けられたものである。このカメラ31〜34には、魚眼レンズを備えたカメラを適用することができる。魚眼レンズは約180度の画角を有し、広範囲の画像を映し出すことができるが、その画像は歪曲し、特に画像の周辺部は歪みが著しいため、歪み補正が行われる。尚、魚眼レンズに起因する歪みを補正する技術自体は公知である(例えば特許文献1参照)。半導体メモリ(DDR)35は、特に制限されないが、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)とされ、クロック信号の立ち上がり/立ち下がりのそれぞれでデータをやり取りし、理論上は同一クロックで動作するSDRAMの2倍のデータ転送速度を得ることができる。表示装置(LCD)36は、車内の液晶ディスプレイとされる。
図1に示されるプロセッサ10は、特に制限されないが、インタフェース11〜14,21、画像処理モジュール(IMR)15〜18、表示制御部(DU)19、及び中央処理装置(CPU)20を含む。画像処理モジュール15〜18、表示制御部19、中央処理装置20及びインタフェース21は、バス22によって互いに信号のやり取りが可能に結合される。インタフェース11〜14は、それぞれカメラ接続用端子T1〜T4に結合され、対応するカメラ31〜34からの画像データを取り込む。インタフェース21は、半導体メモリ接続用端子T5に対応して配置され、半導体メモリ35との間でデータのやり取りを可能にする。画像処理モジュール15〜18は、それぞれインタフェース11〜14に対応して配置され、予め指定された領域内の画像データについて歪み補正を行い、その歪み補正後の上記領域内の画像データを、上記インタフェース21を介して上記半導体メモリ35に書き込む機能を有する。尚、画像処理モジュール15〜18では、上記歪み補正処理の他に輝度や色相を補正することができる。表示制御部19は、インタフェース21を介して上記半導体メモリ35内の歪み補正処理後の撮影データを取り込んで重ね合わせ処理を行い、その処理結果を表示装置36に出力する。中央処理装置20は、所定のプログラムを実行することによって各部の動作制御を行う。この動作制御には、画像処理モジュール15〜18や表示制御部19における各レジスタへの初期設定、半導体メモリ35へのディスプレイリスト(DL)の設定、画像処理モジュール15〜18で処理された画像データの格納先とされる半導体メモリ35内データ格納領域の切り替え、表示制御部19のデータ取込アドレスの再設定等が含まれる。
図2には、図1に示されるプロセッサ10における主要部の画像が模式的に示される。
魚眼レンズを備えたカメラ31〜34での撮影により、画像1,2,3,4が得られる。ここでは、カメラ31により車両の前方の画像1が得られ、カメラ32により車両の後方の画像2が得られ、カメラ33により車両の右側の画像3が得られ、カメラ34により車両の左側の画像4が得られるものとする。このような画像データが、それぞれ対応するインタフェース11,12,13,14を介して画像処理モジュール15,16,17,18に伝達される。図2におけるA,B,C,Dは、それぞれカメラ31〜34で撮影され、端子T1〜T4を介してプロセッサ10へ入力され、インタフェース11,12,13,14から出力された画像を示している。画像処理モジュール15では、入力された画像1(画像A)の予め指定された領域(点線で囲まれた領域)内の画像について、魚眼レンズに起因する歪みが補正され、その歪み補正後の上記領域内の画像が半導体メモリ35に書き込まれる。画像処理モジュール16では、入力された画像2(画像B)の予め指定された領域(点線で囲まれた領域)内の画像について、魚眼レンズに起因する歪みが補正され、その歪み補正後の上記領域内の画像が180度回転されてから半導体メモリ35に書き込まれる。画像処理モジュール17では、入力された画像3(画像C)の予め指定された領域(点線で囲まれた領域)内の画像について、魚眼レンズに起因する歪みが補正され、その歪み補正後の上記領域内の画像が右方向に90度回転されてから半導体メモリ35に書き込まれる。画像処理モジュール18では、入力された画像4(画像D)の予め指定された領域(点線で囲まれた領域)内の画像について、魚眼レンズに起因する歪みが補正され、その歪み補正後の上記領域内の画像が左方向に90度回転されてから半導体メモリ35に書き込まれる。このようにして半導体メモリ35に書き込まれた画像は、表示制御部19によって読み出される。表示制御部19では、半導体メモリ35から読み出した画像が、表示制御部19内の各プレーンに格納され、上記各プレーンの画像が、例えば図3に示されるように、所定位置に配置されるように合成されて表示装置36に伝達されて表示される。
図4には、画像処理モジュール15の構成例が示される。
画像処理モジュール15は、特に制限されないが、ラインメモリ41、処理ブロック42、ディスプレイリストバッファ43、メモリ制御レジスタ44、ラインメモリ制御レジスタ45、IMR制御レジスタ(CR)46を含む。
ラインメモリ41は、インタフェース11を介して入力された画像データを表示系の走査線に対応して格納するためのメモリである。
処理ブロック42は、予め指定された領域内の画像データについて歪み補正を行う。また、この処理ブロック42では上記領域内の画像データについて輝度や色相も補正することができる。処理ブロック42での処理は、所定のディスプレイリスト(DL)に従って行われる。処理ブロック42はDMA(Direct Memory Access)機能を有し、処理ブロック42で処理された画像データは、このDMA機能によりバス22及びインタフェース21を介して画像メモリ35に書き込まれる。
上記ディスプレイリストは、処理ブロック42での処理を一まとめにしたリストである。このディスプレイリストは、予め設定されて半導体メモリ35に格納されており、画像処理モジュール15により、必要に応じてディスプレイリストバッファ43にフェッチされる。
メモリ制御レジスタ44は、半導体メモリ35の制御に用いられるレジスタであり、DLスタートアドレスレジスタDLSARと、ディスティネーションスタートアドレスレジスタDSARとを含む。DLスタートアドレスレジスタDLSARは、半導体メモリ35においてディスプレイリストが格納されている記憶領域の先頭アドレスが保持される。ディスティネーションスタートアドレスレジスタDSARには、半導体メモリ35において歪み補正後のデータが格納される記憶領域の先頭アドレスが保持される。
ラインメモリ制御レジスタ45は、ラインメモリ41の制御に用いられるレジスタであり、先頭ライン指定レジスタLSPR、メッシュサイズレジスタLMSR、終了ライン指定レジスタLEPRを含む。先頭ライン指定レジスタLSPRは、後述するSYNCW(SYNChronize Wait)命令による待ち受け解除のためのラインメモリ数を設定するためのレジスタである。メッシュサイズレジスタLMSRは、SYNCW命令による待ち受け解除のためのラインメモリ数設定レジスタである。終了ライン指定レジスタLEPRは、SYNCW命令による待ち受け解除を行わないためのラインメモリ数設定レジスタである。
IMR制御レジスタ46は、レンダリングスタートビット(RSビット)を有し、このレンダリングスタートビットが論理値“1”に設定されると、DLスタートアドレスレジスタDLSARに設定されたアドレスからディスプレイリストが読み出されてディスプレイリストバッファ43に書き込まれる。
尚、他の画像処理モジュール16〜18は、画像モジュール15と同一構成とされるため、それについての詳細な説明は省略する。
図5には、ディスプレイリストのフォーマットが示される。
ディスプレイリストには、特に制限されないが、描画命令(TRIangl命令)、SYNCW(SYNChronize Wait)命令、TRAP命令が記述される。
描画命令は、画像処理モジュールにおけるラインメモリ41に格納されている画像データの座標をu,v座標系から、それとは異なるX,Y座標系に変換してから半導体メモリ35に格納することを指示するための命令とされる。この座標変換において、ラインメモリ41に格納されている画像データのうち、必要とされる領域内の画像データのみが切り出されて、それについての歪み補正が行われる。つまり、u,v座標系からX,Y座標系への変換の際に、必要とされる領域内の画像の切り出し(指定された領域の画像の切り出し)、及び当該領域内の画像についての歪み補正が行われる。尚、画像処理モジュール16〜18での座標変換においては、表示装置36での画像表示との関係で180度回転処理や90度回転処理が併せて実行される(図2及び図3参照)。描画命令は、図5の(A)に示されるように32ビット構成とされ、複数行から成る。1行目における0〜15ビット目には、描画命令で使用される変換前座標(u,v)及び変換後座標(X,Y)の個数を示す頂点数Nが割り当てられ、16〜23ビット目は予約済み(Reserved)とされ、34〜31ビット目には描画命令であることを示すオペコード(OP CODE)が割り当てられる。描画命令の2行目以降の行数は、頂点数Nの2倍(=N×2)とされる。これは、変換前座標(u,v)と変換後座標(X,Y)とが交互に記述されるからである。例えば図5の(A)に示される場合には、座標(変換前座標)(u0,v0)を座標(変換後座標)(X0,Y0)に変換し、座標(u1,v1)を座標(X1,Y1)に変換し、座標(u(N−1),v(N−1))を座標(X(N−1),Y(N−1))に変換することが指示される。
SYNCW命令は、条件成立までは次のディスプレイリスト(DL)の実行を待たせるための命令とされる。SYNCW命令は、図5の(B)に示されるように、32ビット構成とされる。0〜15ビット目までは予約済みとされ、16ビット目にはディスプレイリストの実行待ちを示すSELビットが割り当てられ、17〜23ビット目は予約済みとされ、24〜31ビット目にはSYNCW命令であることを示すオペコードが割り当てられる。ここで、上記SELビットが論理値“1”の場合、画像表示系の垂直同期信号VSYNC信号が入力された後、ラインメモリ41に、LSPRの設定値とLMSRの設定値との合計値(LSPR+LMSR)によって示されるラインメモリ数にまで画像データが格納されるまでディスプレイリストの実行が待たされる。また上記SELビットが論理値“0”の場合、LMSRに設定されたラインメモリ数の画像データが格納されるまでディスプレイリストの実行が待たされる。
TRAP命令は、CPU20への割り込みを発生させるための命令とされ、図5の(C)に示されるように32ビット構成とされる。TRAP命令の0〜23ビット目は予約済みとされ、24〜31ビットにはTRAP命令であることを示すオペコードが割り当てられる。
図6には、ラインメモリ41と、先頭ライン指定レジスタLSPR、メッシュサイズレジスタLMSR、終了ライン指定レジスタLEPR、SYNCW命令の関係が示される。ここでは一例として、先頭ライン指定レジスタLSPRに「3」が設定され、メッシュサイズレジスタLMSRによって「4」が設定され、終了ライン指定レジスタLEPRに「15」が設定されているものとする。フェッチされたディスプレイリストにおけるSYNCW命令のSELビットが論理値“1”の場合、LSPR+LMSR(=3+4)によるラインメモリ数まで画像データが格納されるまでディスプレイリストの実行が待たされる。このため、1ラインから3ラインまでのデータは処理ブロック42に取り込まれず、この段階ではSYNCW命令の待ち受け解除も行われない(61)。LSPR+LMSR(=3+4)によるラインメモリ数まで画像データが格納され、条件成立によりSYNCW命令の待ち受け解除されると、次のディスプレイリストがフェッチされる。フェッチされたSYNCW命令のSELビットが論理値“0”の場合、LMSRによるライン数、つまり4ラインから7ラインまでの画像データが処理ブロック42に取り込まれ、SYNCW命令の待ち受けが解除される(62)。次にフェッチされたSYNCW命令のSELビットが論理値“0”の場合、LMSRによるライン数、つまり8ラインから11ラインまでの画像データが処理ブロック42に取り込まれ、SYNCW命令の待ち受けが解除される(63)。同様に、次にフェッチされたSYNCW命令のSELビットが論理値“0”の場合、LMSRによるライン数、つまり12ラインから15ラインまでの画像データが処理ブロック42に取り込まれ、SYNCW命令の待ち受けが解除される(64)。本例では終了ライン指定レジスタLEPRに「15」が設定されているため、16ライン以降の画像データは処理ブロック42に取り込まれない。
図7には、処理ブロック42で行われる歪み補正処理が模式的に示される。
図7の(A)はラインメモリ41に格納された画像を示し、図7の(B)は、歪み補正されて半導体メモリ35に格納される画像を示す。ラインメモリ41には、カメラで撮影されることで得られた画像が書き込まれるが、歪み補正の対象とされるのは、ラインメモリ41に格納された画像の一部の領域内の画像とされる。図7の(A)に示される例では、4ライン目から19ライン目に格納された画像701が歪み補正の対象とされ、処理ブロック42に取り込まれる。歪み補正は、ラインメモリに41に格納されている画像データの座標をu,v座標系から、それとは異なるX,Y座標系に変換する際に行われる。つまり、u,v座標系からX,Y座標系への座標変換において、魚眼レンズを備えたカメラの特性を考慮して座標が修正されることにより歪みが補正された画像702を得ることができる。画像701における頂点71〜75は、歪み補正後の画像702における頂点71’〜75’に対応している。歪み補正のための座標変換の内容は、ディスプレイリストにおける描画命令(図5(A)参照)によって決定される。
ここで、図1に示される構成に対して、画像処理モジュール15〜18において図7に示されるような一部の領域に対する歪み補正処理を行わない場合には、カメラ31〜34での撮影により得られた画像データがそのままのサイズで、バス22及びインタフェース21を介して半導体メモリ35に書き込まれることになる。その場合、上記半導体メモリ35に対する書き込みアクセス及び読み出しアクセスによるバス22の負荷が重くならざるを得ない。特にSoCの場合には、上記半導体メモリ35に対する書き込みアクセスによるバス22の負荷の増大によって、上記バス22を利用する他のデータ処理が不所望に遅延することが考えられる。
これに対して図1に示される構成によれば、ラインメモリ41に格納された画像データのうち、4ライン目から19ライン目に格納された画像701が歪み補正の対象とされる。しかも、ラインメモリ41に格納された画像のu,v座標系のu座標方向(図面の左右方向)における処理対象は、描画命令(図5の(A)参照)において指定される座標(u,v)によって制限される。このようにして歪み補正の処理対象とされる領域が特定される。歪み補正の処理対象とされる領域は、表示制御部19で合成されて表示装置36に表示される画像のサイズを勘案して決定される。つまり、図3に示されるような画像表示を行うために不必要な領域の画像データは、画像処理モジュール15〜18での歪み補正対象から外す。それにより、画像処理モジュール15〜18からバス22及びインタフェース21を介して半導体メモリ35に転送される画像データの量を大幅に削減することができるので、上記半導体メモリ35に対する書き込みアクセスによるバス22の負荷を軽減することができ、上記バス22を利用する他のデータ処理を不所望に遅延させずに済む。
図8には、表示制御部19の構成例が示される。
表示制御部19は、プレーンP1〜P4、重ね合わせ処理部81、プレーン制御レジスタ82、重ね合わせ処理制御レジスタ83、及び表示制御レジスタ84を含む。
プレーンP1〜P4は表示面を意味しており、それぞれ二つのバッファB0,B1を含んで成る。バッファB0,B1には、処理ブロック42で歪み補正された画像データが書き込まれる。二つのバッファB0,B1が設けられているのは、バッファB0,B1の一方に画像データの書き込みが行われている期間に、他方のバッファから保持データの読み出しを可能とすることで、プレーン毎の画像データの入出力の円滑化を図るためである。
重ね合わせ処理部81は、プレーンP1〜P4から出力された画像データを重ね合わせてから表示装置36に出力する。
プレーン制御レジスタ82は、プレーンP1〜P4の動作を制御するためのもので、プレーン表示領域開始アドレスレジスタPnDSA0R,PnDSA1R、プレーンモードレジスタPnMRを含む。このプレーン表示領域開始アドレスレジスタPnDSA0R,PnDSA1R、プレーンモードレジスタPnMRは、それぞれプレーンP1〜P4に対応して4個配置される。つまり、プレーン表示領域開始アドレスレジスタPnDSA0Rは、それぞれプレーンP1〜P4に対応するP1DSA0R,P2DSA0R,P3DSA0R,P4DSA0Rを含み、プレーン表示領域開始アドレスレジスタPnDSA1Rは、それぞれプレーンP1〜P4に対応するP1DSA1R,P2DSA1R,P3DSA1R,P4DSA1Rを含む。同様にプレーンモードレジスタPnMRは、それぞれプレーンP1〜P4に対応するP1MR,P2MR,P3MR,P4MRを含む。プレーン表示領域開始アドレスレジスタPnDSA0Rには、プレーンP1〜P4におけるバッファB0の表示領域開始アドレスが設定される。プレーン表示領域開始アドレスレジスタPnDSA1Rには、プレーンP1〜P4におけるバッファB1の表示領域開始アドレスが設定される。プレーンモードレジスタPnMRには、プレーンP1〜P4において重ね合わせ処理部81へ画像データを出力するためのバッファ(B0又はB1)が設定される。
重ね合わせ処理制御レジスタ83は、重ね合わせ処理部81の動作を制御するためのもので、表示プレーン優先順位レジスタDPPRを含む。この表示プレーン優先順位レジスタDPPRには、プレーンP1〜P4の表示のON/OFFと重ね合わせの優先順位が設定される。
表示制御レジスタ84は、表示装置36への画像表示を制御するためのもので、表示イネーブル(DEN)ビットを設定可能な表示システム制御レジスタDSYSRを含む。表示イネーブル(DEN)ビットがイネーブル状態にされると、プレーン表示領域開始アドレスレジスタPnDSA0R又はPnDSA1Rに設定されたアドレスから画像データを対応するプレーンのバッファに取り込まれる。
図9には、半導体メモリ35における記憶領域が示される。
半導体メモリ35には、ディスプレイリスト(DL)を格納するためのディスプレイリスト格納領域91、及び歪み補正後画像データを格納するための歪み補正後画像データ格納領域92が形成される。
ディスプレイリスト格納領域91には、画像処理モジュール15用のディスプレイリストを格納するためのIMR15用格納領域、画像処理モジュール16用のディスプレイリストを格納するためのIMR16用格納領域、画像処理モジュール17用のディスプレイリストを格納するためのIMR17用格納領域、画像処理モジュール18用のディスプレイリストを格納するためのIMR18用格納領域が含まれる。このIMR15用格納領域、IMR16用格納領域、IMR17用格納領域、IMR18用格納領域には、IMR15用格納領域について代表的に示されるように、SYNCW命令、描画命令、TRAP命令を含むディスプレイリストが格納される。
歪み補正後画像データ格納領域92には、IMR15歪み補正後画像データ格納領域、IMR16歪み補正後画像データ格納領域、IMR17歪み補正後画像データ格納領域、IMR18歪み補正後画像データ格納領域が含まれる。IMR15歪み補正後画像データ格納領域には、画像処理モジュール15からの歪み補正後画像データが格納される。IMR16歪み補正後画像データ格納領域には、画像処理モジュール16からの歪み補正後画像データが格納される。IMR17歪み補正後画像データ格納領域には、画像処理モジュール17からの歪み補正後画像データが格納される。IMR18歪み補正後画像データ格納領域には、画像処理モジュール18からの歪み補正後画像データが格納される。このIMR15歪み補正後画像データ格納領域、IMR16歪み補正後画像データ格納領域、IMR17歪み補正後画像データ格納領域、IMR18歪み補正後画像データ格納領域には、IMR15歪み補正後画像データ格納領域について代表的に示されるように、二つの歪み補正処理後画像データ格納領域93,94が含まれる。歪み補正処理後画像データ格納領域93の先頭アドレスは「10」とされ、歪み補正処理後画像データ格納領域94の先頭アドレスは「11」とされる。
図10及び図11にはプロセッサ10における処理のフローチャートが示される。尚、図10に示される処理と図11に示される処理とは連続している。
尚、画像処理モジュール(IMR)15に対してプレーンP1が対応され、画像処理モジュール(IMR)16に対してプレーンP2が対応され、画像処理モジュール(IMR)17に対してプレーンP3が対応され、画像処理モジュール(IMR)18に対してプレーンP4が対応されるものとする。
先ず、図10に基づいて、初回の1画面分の処理について説明する。
中央処理装置20によって、画像処理モジュール(IMR)15〜18のディスプレイリスト(DL)が半導体メモリ(DDR)35に格納される(S1)。
中央処理装置20によって、画像処理モジュール15〜18の各レジスタ(図4参照)に所定の値が設定される(S2)。画像処理モジュール15〜18におけるディスティネーションスタートアドレスレジスタDSARには、半導体メモリ35における歪み補正処理後画像データ格納領域93の先頭アドレスが設定される。ここで半導体メモリ35における歪み補正処理後画像データ格納領域93の先頭アドレスは、例えば図9に示される例では「アドレス10」とされる。
画像処理モジュール15〜18がディスプレイリストのフェッチを開始するために、中央処理装置20によって、画像処理モジュール15〜18におけるIMR制御レジスタ(CR)46のレンダリングスタートビット(RS)ビットがセットされる(S3)。
以上の設定が行われた後、画像処理モジュール15〜18は、半導体メモリ35からディスプレイリストのフェッチを開始し、フェッチしたディスプレイリストを順次実行する(S4)。このとき、画像処理モジュール15〜18によってフェッチされたディスプレイリストにおけるSYNCW命令のSELビットは論理値“1”とされる。画像処理モジュール15〜18は、実行したSYNCW命令のSELビットが論理値“1”の場合、画像表示系の垂直同期信号VSYNCが入力された後、ラインメモリ41に、LSPRの設定値とLMSRの設定値との合計値(LSPR+LMSR)によって示されるラインメモリ数にまで画像データが格納されるまで次のディスプレイリストのフェッチ待ち状態とされる(S5)。
ラインメモリ41に、LSPRの設定値とLMSRの設定値との合計値(LSPR+LMSR)によって示されるラインメモリ数にまで画像データが格納されると、画像処理モジュール15〜18は、半導体メモリ35からディスプレイリストをフェッチし、当該ディスプレイリストにおける描画命令(TRIangl命令)を実行する(S6)。この描画命令は、例えば図7に示されるように、画像処理モジュールにおけるラインメモリ41に格納されている画像データの座標をu,v座標系から、それとは異なるX,Y座標系に変換してから半導体メモリ35に格納される。ここでは、画像処理モジュール15〜18におけるディスティネーションスタートアドレスレジスタDSARには、半導体メモリ35における歪み補正処理後画像データ格納領域93の先頭アドレスが「アドレス10」とされるため、上記描画命令の実行による座標変換後の画像データは、画像データ格納領域93の「アドレス10」から順に格納される。尚、画像処理モジュール16〜18での座標変換においては180度回転処理や90度回転処理が併せて実行される。ステップS6の処理後、次のディスプレイリストのフェッチを開始するが、フェッチしたSYNCW命令のSELビットは論理値“0”のため、LMSRで示されるラインメモリ数に画像データが格納されるまでディスプレイリストの実行待ち状態となる(S7)。
上記ステップS6,S7の処理は、終了ライン指定レジスタLEPRで指定したラインメモリ数に達するまで、換言すれば1画面分の画像データが得られるまで繰返される(S8)。
画像処理モジュール16〜18において、1画面分の画像データが得られたら、ディスプレイリストにおけるTRAP命令が実行され、中央処理装置20に対する割り込みが発生される(S9)。中央処理装置20は、上記割り込みに対応する所定の割込み処理によって、半導体メモリ35における歪み補正処理後画像データ格納領域を、それまでの領域から別の領域に変更する(S10)。例えば画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20での割り込み処理において、画像処理モジュール15におけるディスティネーションスタートアドレスレジスタDSARには、半導体メモリ35における歪み補正処理後画像データ格納領域94の先頭アドレス(アドレス11)が設定される。これにより、画像処理モジュール15での歪み補正処理後の画像データの格納領域が、それまでの歪み補正処理後画像データ格納領域93から歪み補正処理後画像データ格納領域94に変更される。尚、他の画像処理モジュール16〜18においても同様にTRAP命令が実行され、中央処理装置20に対する割り込みが発生されることで歪み補正処理後画像データ格納領域の変更が行われる。
そして画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20によって、画像処理モジュール15におけるIMR制御レジスタ(CR)46のレンダリングスタートビット(RS)ビットがセットされ、再び上記ステップS4〜S8の処理が繰返される(S11)。他の画像処理モジュール16〜18でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合も、画像処理モジュール15の場合と同様に上記ステップS4〜S8の処理が繰返される。
また、画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合、中央処理装置20は、プレーン表示領域開始アドレスレジスタPnDSA0RにおけるP1DSA0Rに半導体メモリ35における歪み補正処理後画像データ格納領域93における先頭アドレス(アドレス10)を設定する(S12)。これにより、表示制御部19におけるプレーンP1のバッファB0に、歪み補正処理後画像データ格納領域93の画像データを書き込むことができる。尚、画像処理モジュール16〜18でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合にも、画像処理モジュール15でTRAP命令が実行された場合と同様に半導体メモリ35における歪み補正処理後画像データ格納領域93における先頭アドレスが設定される。
中央処理装置20が画像処理モジュール15〜18の全てに対して、上記ステップS10〜S12の処理を終了した場合には、表示制御部19における表示制御レジスタ84における表示システム制御レジスタDSYSRの表示イネーブル(DEN)ビットがイネーブル状態にされ、プレーン表示領域開始アドレスレジスタに設定されたアドレスから画像データが対応するプレーンP1〜P4のバッファB0に取り込まれる(S13)。さらに中央処理装置20によって表示プレーン優先順位レジスタDPPRが設定され、この表示プレーン優先順位レジスタDPPRに設定された優先順で、プレーンP1〜P4のバッファB0からの出力データが重ね合わせ処理部81で重ね合わされてから表示装置36へ出力されて表示される(S13)。
上記ステップS1〜S13によって初回の1画面分の処理が行われる。
次に、図11に基づいて、2回目の1画面分の処理について説明する。
2回目の1画面分の処理では、上記ステップS1〜S7に相当する処理は不要とされ、上記ステップS4〜S8の処理が行われる。そして1画面分の画像データに対して描画処理実行後、TRAP命令が実行されて中央処理装置20に対する割り込みが発生される(S14)。この割り込みにより中央処理装置20は、半導体メモリ35における歪み補正処理後画像データ格納領域を、それまでの領域から別の領域に変更する(S15)。例えば画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20での割り込み処理において、画像処理モジュール15におけるディスティネーションスタートアドレスレジスタDSARには、半導体メモリ35における歪み補正処理後画像データ格納領域93の先頭アドレス(アドレス10)が設定される。これにより、画像処理モジュール15での歪み補正処理後の画像データの格納領域が、それまでの歪み補正処理後画像データ格納領域94から歪み補正処理後画像データ格納領域93に変更される。尚、他の画像処理モジュール16〜18においても同様にTRAP命令が実行され、中央処理装置20に対する割り込みが発生されることで歪み補正処理後画像データ格納領域の変更が行われる。
そして画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20によって、画像処理モジュール15におけるIMR制御レジスタ(CR)46のレンダリングスタートビット(RS)がセットされ、再び上記ステップS4〜S8の処理が繰返される(S16)。
画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20は、プレーン表示領域開始アドレスレジスタPnDSA0RにおけるP1DSA1R(プレーンP1に対応するもの)に、半導体メモリ35における歪み補正処理後画像データ格納領域93における先頭アドレス(アドレス11)を設定する(S17)。これは、表示制御部19におけるプレーンP1のバッファB1に歪み補正処理後画像データ格納領域93の画像データを格納するためである。尚、画像処理モジュール16〜18でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合にも、画像処理モジュール15でTRAP命令が実行された場合と同様に半導体メモリ35における歪み補正処理後画像データ格納領域93における先頭アドレスが設定される。
画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合、中央処理装置20は、次のフレーム出力時にバッファB1からの画像データが重ね合わせ処理部81に出力されるように表示制御部19におけるプレーンモードレジスタPnMRに値を設定する(S18)。尚、画像処理モジュール16〜18でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合にも、画像処理モジュール15でTRAP命令が実行された場合と同様にプレーンモードレジスタPnMRに値が設定される。
次に、図11に基づいて、3回目の1画面分の処理について説明する。
3回目の1画面分の処理では、上記ステップS1〜S7に相当する処理は不要とされ、上記ステップS4〜S8の処理が行われる。そして1画面分の画像データに対して描画処理実行後、TRAP命令が実行されて中央処理装置20に対する割り込みが発生される(S19)。この割り込みにより中央処理装置20は、半導体メモリ35における歪み補正処理後画像データ格納領域を、それまでの領域から別の領域に変更する(S20)。例えば画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20での割り込み処理において、画像処理モジュール15におけるディスティネーションスタートアドレスレジスタDSARには、半導体メモリ35における歪み補正処理後画像データ格納領域94の先頭アドレス(アドレス11)が設定される。これにより、画像処理モジュール15での歪み補正処理後の画像データの格納領域が、それまでの歪み補正処理後画像データ格納領域93から歪み補正処理後画像データ格納領域94に変更される。尚、他の画像処理モジュール16〜18においても同様にTRAP命令が実行され、中央処理装置20に対する割り込みが発生されることで歪み補正処理後画像データ格納領域の変更が行われる。
そして画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20によって、画像処理モジュール15におけるIMR制御レジスタ(CR)46のレンダリングスタートビット(RS)ビットがセットされ、再び上記ステップS4〜S8の処理が繰返される(S21)。
画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合には、中央処理装置20は、プレーン表示領域開始アドレスレジスタPnDSA0RにおけるP1DSA0R(プレーンP1に対応するもの)に半導体メモリ35における歪み補正処理後画像データ格納領域93における先頭アドレス(アドレス10)を設定する(S22)。これは、表示制御部19におけるプレーンP1のバッファB0に歪み補正処理後画像データ格納領域93の画像データを格納するためである。尚、画像処理モジュール16〜18でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合にも、画像処理モジュール15でTRAP命令が実行された場合と同様に半導体メモリ35における歪み補正処理後画像データ格納領域93における先頭アドレスが設定される。
画像処理モジュール15でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合、中央処理装置20は、次のフレーム出力時にバッファB0からの画像データが重ね合わせ処理部81に出力されるように表示制御部19におけるプレーンモードレジスタPnMRに値を設定する(S23)。尚、画像処理モジュール16〜18でTRAP命令が実行されて中央処理装置20への割り込みが発生された場合にも、画像処理モジュール15でTRAP命令が実行された場合と同様にプレーンモードレジスタPnMRに値が設定される。
以上、初回の1画面分の処理(S1〜S13)、2回目の1画面分の処理(S14〜S18)、3回目の1画面分の処理(S19〜S23)について説明したが、4回目以降の1画面分の処理については、上記2回目の1画面分の処理(S14〜S18)と、上記3回目の1画面分の処理(S19〜S23)とが交互に繰返される。
《実施の形態2》
実施の形態2について説明する。
例えば図12に示されるように、カメラの撮影タイミングSH1から次の撮影タイミングSH2までの間に、撮影タイミングSH1で得られた画像データについての歪み補正処理や、その処理画像データの半導体メモリ35への書き込みが終了していれば特に支障は無い。しかし図13に示されるように、カメラの撮影タイミングSH1から次の撮影タイミングSH2までの間に、撮影タイミングSH1で得られた画像データについての歪み補正処理や、その処理画像データの半導体メモリ35への書き込みが終了しない場合には、表示装置36での画像表示を円滑に行うことができない。そこで図15に示されるように、プロセッサ10に、バス22に結合された汎用ポート151と、この汎用ポート151からの出力信号をカメラ31〜34に伝達するための端子T7を設ける。汎用ポート151から端子T7を介してカメラ31〜34にカメラ同期信号が伝達されるようになっている。このカメラ同期信号は、画像処理モジュール(IMR)15〜18が1画面分のデータ処理を完了した後、中央処理装置20が汎用ポートに所定の値を設定することで、パルス状に出力されるものとする。カメラ31〜34では、端子T7を介して伝達されたカメラ同期信号に同期して撮影が行われる。かかる構成によれば、例えば図14に示されるように、画像処理モジュール(IMR)15〜18が1画面分のデータ処理を完了した後に、カメラ同期信号に同期して撮影タイミングSH2でカメラ31〜34での撮影を行うことができるため、表示装置36での画像表示を円滑に行うことができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、画像処理モジュール15〜18における処理ブロック43において、歪み補正後の画像データに対して、特許文献1に記載されているような視点変換処理を行うことで俯瞰画像を作成するようにしても良い。