(57)【特許請求の範囲】
【請求項１】
データバスと、
撮像装置からの第１画像データが入力され、前記データバスを介して、第２画像データを記憶部に出力する画像入力部と、
前記記憶部に格納された前記第２画像データが、前記データバスを介して入力され、画像表示装置に第３画像データを出力する画像出力部を有し、
前記画像入力部においては、前記第１画像データにアフィン変換のうち拡大処理以外の処理を行い、
前記画像出力部においては、前記第２画像データにアフィン変換のうち拡大処理を行うことを特徴とする半導体装置。
【請求項２】
前記画像出力部においては、前記アフィン変換中の縮小処理を行わないことを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記画像入力部において、前記第１画像データに対し縮小処理を行い、前記第２画像データを出力することを特徴とする請求項１に記載の半導体装置。
【請求項４】
前記画像入力部は、前記第１画像データに対して縮小処理、移動処理、回転処理及びせん断処理を行い、
前記画像出力部は、前記第２画像データに対して前記拡大処理を行う請求項１に記載の半導体装置。
【請求項５】
前記画像入力部は、前記第１画像データの第１の領域に対して縮小処理を行い、
前記画像出力部は、前記第２画像データの前記第１の領域とは異なる第２の領域に対して、前記拡大処理を行う請求項１に記載の半導体装置。
【請求項６】
前記第１及び第２の領域の位置は、前記第１及び第２画像データのｘ座標またはｙ座標のみで判定される請求項５に記載の半導体装置。
【請求項７】
前記画像入力部は、
前記第１画像データを前記撮像装置から取得するビデオ入力部と、
前記第１画像データをアフィン変換するための画像補正部
を有することを特徴とする請求項１に記載の半導体装置。
【請求項８】
前記画像出力部は、
前記第２画像データをアフィン変換するための画像補正部と、
前記第３画像データを前記画像表示装置に出力するビデオ出力部
を有することを特徴とする請求項１に記載の半導体装置。
【請求項９】
前記画像出力部は、前記画像表示装置に表示された画像を投影する投影面の形状に応じて予め設定された歪み情報に基づいて、歪みが補正された前記第３画像データを、アフィン変換を用いて再度歪ませて、前記画像表示装置に出力することを特徴とする請求項１に記載の半導体装置。
【請求項１０】
前記画像出力部は、前記拡大処理を行うために予め設定された拡大情報に基づいて、前記拡大処理を行う請求項１に記載の半導体装置。
【請求項１１】
前記拡大情報は、前記画像出力部に格納されている請求項１０に記載の半導体装置。
【請求項１２】
前記拡大情報は、前記記憶部に格納されている請求項１０に記載の半導体装置。
【請求項１３】
前記画像入力部は、前記第１画像データの歪みを補正するために用いる歪み補正情報に基づいて、前記拡大情報を生成する請求項１０に記載の半導体装置。
【請求項１４】
撮像部と、
前記撮像部から出力される第１画像データが入力される画像入力部と、
データバスと、
前記画像入力部から出力される第２画像データが前記データバスを介して格納される記憶部と、
前記記憶部に格納された前記第２画像データが、前記データバスを介して入力される画像出力部と、
前記画像出力部から出力される第3画像データが入力される画像表示装置を有し、
前記画像入力部においては、前記第１画像データにアフィン変換のうち拡大処理以外の処理を行い、
前記画像出力部においては、前記第２画像データにアフィン変換のうち拡大処理を行うことを特徴とする電子装置。
【請求項１５】
前記画像出力部においては、前記アフィン変換中の縮小処理を行わないことを特徴とする請求項１４に記載の電子装置。
【請求項１６】
前記画像入力部において、前記第１画像データに対し縮小処理を行い、前記第２画像データを出力することを特徴とする請求項１４に記載の電子装置。
【請求項１７】
(a) 撮像装置からの第１画像データを取得する工程；
(b) 前記第１画像データが入力される画像入力部において、前記第１画像データに対してアフィン変換のうち拡大処理以外の処理を行うことで第２画像データを生成する工程；
(c) 前記第２画像データをデータバスを介して記憶部に格納する工程；
(d) 前記記憶部に格納された前記第２画像データを、前記データバスを介して、画像表示装置に第３画像データを出力する画像出力部に入力する工程；
(e) 前記画像出力部において、前記第２画像データに対しアフィン変換のうち拡大処理を行うことで前記第３画像データを生成する工程；
(f) 前記第３画像データを前記画像表示装置に出力する工程
を含む画像処理方法。
【請求項１８】
前記画像出力部におけるアフィン変換は縮小処理を含まないことを特徴とする請求項１７に記載の画像処理方法。
【請求項１９】
前記画像入力部におけるアフィン変換は縮小処理を含むことを特徴とする請求項１７に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、電子装置、及び画像処理方法に関し、例えば画像処理を行う半導体装置、電子回路、及び画像処理方法に好適に利用できるものである。
【背景技術】
【０００２】
近年、車載カメラを用いたドライバーへの情報提供技術が拡がりを見せている。代表的な技術として、車両後方のカメラによるバックガイドモニタや、車両の四隅に取り付けたカメラ画像を合成するアラウンドビューモニタが知られている。
【０００３】
このような車載カメラのレンズには、一般に広い範囲を撮影できるレンズが用いられる。そのため、性能の低いレンズを使用すると、撮影される画像が歪んでしまう。したがって、車載カメラが撮影した画像の歪みを補正する必要がある。
【０００４】
例えば、特許文献１には、車両後方に設けられたＣＣＤカメラが撮像した画像を補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２７１４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本願の発明者等は、半導体装置の開発に際し、様々な課題を見出した。本願で開示される各実施の形態は、例えば画像処理等に好適な半導体装置を提供する。さらに詳細な特徴は、本明細書の記述及び添付図面によって明らかにされる。
【課題を解決するための手段】
【０００７】
本明細書に開示される一つの態様は半導体装置を含み、当該半導体装置は、撮像装置からの第１画像データが入力され、データバスを介して、第２画像データを記憶部に出力する画像入力部と、記憶部に格納された第２画像データが、データバスを介して入力され、画像表示装置に第３画像データを出力する画像出力部を有する。第３画像データは第１画像データをアフィン変換することで生成される。また、画像入力部においては、アフィン変換中の拡大処理を行わない。
【発明の効果】
【０００８】
前記一実施の形態によれば、例えば画像処理等に好適であって、良質な半導体装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】比較例にかかる半導体装置の詳細なブロック図である。
【図２】アフィン変換における変換行列のパラメータを説明するための図である。
【図３】アフィン変換における変換行列の合成を説明するための図である。
【図４】アフィン変換における変換行列の合成を説明するための図である。
【図５】比較例にかかる半導体装置のブロック図である。
【図６】比較例にかかる半導体装置の動作例を示すフローチャートである。
【図７】比較例にかかる歪み補正処理の過程を説明するための図である。（ａ）は、歪み補正処理前の画像データである。（ｂ）は、出力側画像補正処理部による補正処理が行われた画像データである。
【図８】入力部における拡大処理の処理負担を説明するためのブロック図である。
【図９】入力部における拡大処理の処理負担を説明するためのタイミングチャートである。
【図１０】入力部における縮小処理の処理負担を説明するためのブロック図である。
【図１１】入力部における縮小処理の処理負担を説明するためのタイミングチャートである。
【図１２】出力部における拡大処理の処理負担を説明するためのブロック図である。
【図１３】出力部における拡大処理の処理負担を説明するためのタイミングチャートである。
【図１４】出力部における拡大処理の処理負担を説明するためのブロック図である。
【図１５】出力部における拡大処理の処理負担を説明するためのタイミングチャートである。
【図１６】実施の形態１にかかる半導体装置のブロック図である。
【図１７】実施の形態１にかかる半導体装置の詳細なブロック図である。
【図１８】実施の形態１にかかる半導体装置の動作例を示すフローチャートである。
【図１９】実施の形態１にかかる歪み補正処理の過程を説明するための図である。（ａ）は、歪み補正処理前の画像データである。（ｂ）は、入力側画像補正処理部による補正処理が行われた画像データである。（ｃ）は、出力側画像補正処理部による補正処理が行われた画像データである。
【図２０】実施の形態１にかかる半導体装置のブロック図における画像データの状態を示した図である。
【図２１】実施の形態１の変形例１にかかる半導体装置のブロック図である。
【図２２】実施の形態１の変形例２にかかる拡大領域及び非拡大領域を説明するための図である。
【図２３】実施の形態１の変形例３にかかる半導体装置のブロック図である。
【図２４】実施の形態１の変形例４にかかる半導体装置のブロック図である。
【図２５】実施の形態２にかかる半導体装置のブロック図である。
【図２６】実施の形態３にかかる半導体装置のブロック図である。
【発明を実施するための形態】
【００１０】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１１】
＜歪み補正処理の概要＞
図１に本発明者らが検討した比較例にかかる半導体装置９のブロック図を示す。半導体装置９は、外部のカメラ９１から取り込んだ画像データの歪みを補正して、外部のモニタ９２に補正後の画像を表示させるものである。
【００１２】
半導体装置９は、ビデオ入力部１１０と、歪み補正部９００と、共有バス１３０と、ビデオ出力部１５０と、制御部１６０と、メモリコントローラ１７０と、内蔵メモリ１８０と、を備える。
【００１３】
＜ビデオ入力部１１０の構成＞
ビデオ入力部１１０は、入力タイミング制御部１１１と、ノイズ除去・色変換部１１２と、を備える。入力タイミング制御部１１１は、カメラ９１が生成した画像データを取得し、後段の処理部に取得した画像データを出力するタイミングを制御する。つまり、入力タイミング制御部１１１は、歪み補正部９００の動作クロックに応じたタイミングで、取得した画像データを出力する。
【００１４】
ノイズ除去・色変換部１１２は、入力タイミング制御部１１１から出力された画像データのノイズを除去する。ノイズ除去・色変換部１１２におけるノイズ除去処理は、フィルタ処理や平滑化等の公知の手法を用いることができる。また、ノイズ除去・色変換部１１２は、例えば、ＹＵＶで表現された色情報をＲＧＢで表現された色情報に変換する処理等を行う。
【００１５】
なお、図１に示す具体例においては、半導体装置９が、４つのカメラ９１により撮像された４つの画像データそれぞれに対して歪み補正処理を行う場合を示している。カメラ９１は、例えば、車の四方に設けられるカメラである。アラウンドビューモニタでは、４つのカメラを用いて車の周囲全て（３６０°）を撮像する必要があるため、それぞれのカメラ９１には、広角レンズが搭載される。さらに、カメラ９１の低コスト化を考えると、歪みの少ない高性能のレンズを使用することは難しい。そのため、カメラ９１の撮像処理により生成された画像データは、被写体が歪んだ画像データとなる。
【００１６】
＜歪み補正部９００の構成＞
歪み補正部９００は、ラインメモリ１２１と、コマンド解釈部１２２と、変換処理部１２９と、フィルタリング部１２４と、を備える。ラインメモリ１２１には、ノイズ除去・色変換部１１２から、ライン毎に画像データの画素が格納される。
【００１７】
コマンド解釈部１２２は、共有バス１３０を介して、メモリ部９３に予め格納された歪み補正情報を読み出す。そして、コマンド解釈部１２２は、読み出した歪み補正情報を解釈し、変換処理部１２９に対して、ラインメモリ１２１に格納された画像データの補正処理を指示する。ここで、歪み補正情報とは、ラインメモリ１２１に格納された画像データに対して歪み補正を行うための情報である。歪み補正情報は、例えば、画像データに含まれる画素の拡大率及び縮小率や、拡大縮小処理を行うべき画素のアドレス、画像データの画素を移動させる場合の移動前後のアドレス等を含む情報である。
【００１８】
変換処理部１２９は、コマンド解釈部１２２の指示に応じて、ラインメモリ１２１に格納された画像データに対して補正処理を行う。本実施の形態においては、変換処理部１２９は、ラインメモリ１２１に格納された画像データに対して、アフィン変換を用いて、歪み補正処理を行う。より詳細には、変換処理部１２９は、歪み補正情報に基づいて、ラインメモリ１２１に格納された画像データの画素毎にアドレスを指定して、画素の移動（平行移動処理、回転処理、せん断処理）や画素の削除（縮小処理）、画素の追加（拡大処理）を行う。
【００１９】
フィルタリング部１２４は、変換処理部１２９により補正された画像データに含まれる複数の画素単位でぼかし処理や線形補間処理等のフィルタリングを行う。フィルタリングが行われた複数の画素は、共有バス１３０を介して、メモリ部９３に格納される。つまり、歪み補正部９００は、複数の画素単位で、補正後の画像データを、共有バス１３０を介して、メモリ部９３に出力する。なお、メモリ部９３における画像データの読み出し、書き込み、及びリフレッシュ等の動作は、メモリコントローラ１７０によって制御される。勿論、画像データが格納されるメモリ部９３は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）を用いることができる。勿論、メモリ部９３は、ＤＲＡＭに限られず、ＳＲＡＭ（Static Random Access Memory）等のメモリ装置であってもよい。また、メモリ部９３は、半導体装置１の内部に設けられていてもよい。
【００２０】
なお、共有バス１３０は、歪み補正部９００と、ビデオ出力部１５０と、制御部１６０と、内蔵メモリ１８０と、メモリコントローラ１７０と、を接続するバスである。共有バス１３０は、画像データや、歪み補正情報、制御部１６０からの指令情報等を伝送するバスである。
【００２１】
＜制御部１６０の構成＞
制御部１６０は、ＣＰＵ(Central Processing Unit)１６１と、割り込みコントローラ１６２と、周辺ＩＰ１６３と、を備える。
【００２２】
ＣＰＵ１６１は、内蔵メモリ１８０に予め格納された制御プログラムに基づいて、半導体装置１の各部に対して、各種動作を実行させる。なお、内蔵メモリ１８０は、ＣＰＵ１６１のワークエリアとしても用いられ、例えば、ＳＲＡＭ等を用いる。
【００２３】
割り込みコントローラ１６２には、歪み補正部９００による画像データの書き込み完了や、ビデオ出力部１５０による表示完了に応じて出力される割り込み要求が入力される。割り込みコントローラ１６２は、入力された割り込み要求に基づいて、ＣＰＵ１６１に割り込み信号を出力し、ＣＰＵ１６１の処理順序を制御する。
【００２４】
周辺ＩＰ１６３は、例えば、半導体装置１の外部との通信を行うための通信用回路等である。
【００２５】
＜ビデオ出力部１５０の構成＞
ビデオ出力部１５０は、調整部１５１と、出力タイミング制御部１５２と、を備える。調整部１５１は、共有バス１３０を介して、メモリ部９３から読み出された画像データの色彩等を調整する。具体的には、調整部１５１は、入力された画像データに対して、例えば、輝度補正やガンマ補正、ディザリング等の処理を行い、モニタ９２に表示される画像の色彩を調整する。
【００２６】
出力タイミング制御部１５２は、歪み補正された画像データをモニタ９２に出力するタイミングを制御する。つまり、出力タイミング制御部１５２は、モニタ９２の動作クロックに応じたタイミングで、歪み補正後の画像データを出力し、モニタ９２に画像を表示させる。
【００２７】
＜アフィン変換の説明＞
ここで、歪み補正部９００において行われる画像データのアフィン変換について詳細に説明する。歪み補正処理は、画像データの拡大処理、縮小処理、平行移動処理、回転処理、及びせん断処理の５つの処理によって行われる。アフィン変換は、これらの補正処理を、行列計算を用いて行う画像データの幾何学的変換である。
【００２８】
アフィン変換は、一般に以下の式（１）に示す行列計算によって行われる。なお、アフィン変換前の画素の座標を（ｘ，ｙ）とし、変換後の座標を（ｘ´，ｙ´）とする。変換後の座標（ｘ´，ｙ´）は、変換前の座標（ｘ，ｙ）に変換行列をかけることにより算出される。変換行列内のａ〜ｆまでの値（パラメータ）を設定することにより、上記した拡大処理、縮小処理、平行移動処理、回転処理、及びせん断処理を実現することができる。
【００２９】
【数１】
0005925579.tif 000002
【００３０】
各補正処理におけるａ〜ｆの具体的な値について図２（ａ）〜（ｆ）に示す。図２（ａ）〜（ｆ）は、補正処理に必要な変換行列及び補正処理前後の画像データの状態を示している。
【００３１】
また、アフィン変換においては、拡大処理、縮小処理、平行移動処理、回転処理、及びせん断処理を一度の行列演算で行うことができる。具体的には、図２（ａ）〜（ｆ）に示した変換行列を合成して１つの変換行列を生成し、生成した変換行列を用いて、式（１）の演算を行うことにより、複数種類の補正処理を一度の行列演算で行うことができる。
【００３２】
例えば、アフィン変換を用いて、回転処理と平行移動処理を行う場合について、図３を用いて説明する。図３（ａ）に示すように、始めに回転処理を行うための変換行列を変換前の画像データにかける。その後、回転処理が行われた画像データに対して平行移動処理を行うための変換行列をかける。これにより、回転処理及び平行移動処理を行うことができる。この場合、回転処理のための行列演算及び平行移動処理のための行列演算の計２回の行列演算が行われる。
【００３３】
一方、図３（ｂ）に示すように、回転処理を行うための変換行列と平行移動処理を行うための変換行列とを予め合成し、１つの変換行列を生成する。そして、変換前の画像データに合成した変換行列をかけてもよい。これにより、１回の行列演算のみで、複数種類の補正処理を同時に行うことができる。
【００３４】
つまり、図３（ａ）に示した補正処理の場合、回転処理用のアフィン変換ハードウェア及びパラメータ（変換行列）と、平行移動処理用のアフィン変換ハードウェア及びパラメータ（変換行列）が必要となる（図４（ａ）参照）。これに対して、図３（ｂ）に示した合成した変換行列を用いた補正処理の場合、アフィン変換ハードウェア及びパラメータ（合成した変換行列）は１つで足りる（図４（ｂ）参照）。そのため、合成した変換行列を用いたアフィン変換は、それぞれの補正処理を分けて行うアフィン変換に比べて、ハードウェア数及びパラメータ数の削減や、行列演算の処理負担の軽減を図ることができる。これらの理由から、通常、歪み補正処理のアフィン変換は、複数の補正処理を合成した変換行列を用いて、１箇所で、かつ、１回の行列演算により行われる。
【００３５】
上述した半導体装置９も同様に、拡大処理、縮小処理、平行移動処理、回転処理、及びせん断処理を行うための変換行列を予め合成しておき、合成した変換行列を用いて、１箇所（歪み補正部９００）でアフィン変換を行う。
【００３６】
＜半導体装置９の動作例＞
続いて、半導体装置９の動作について説明する。なお、説明の便宜のために、図１のブロック図を簡略化したブロック図を図５に示す。図５に示したブロック図においては、各ブロックから出力される画像データの状態も示している。なお、図５に示すように、以下の説明においては、アフィン変換に含まれる補正処理のうち、平行移動処理、回転処理、及びせん断処理を合わせて移動処理と称す場合もある。
【００３７】
また、半導体装置９の動作例を示すフローチャートを図６に示す。図６においては、カメラ９１から入力された１画面（１フレーム）分の画像データに対する処理を示している。そのため、複数フレームの画像データを用いて、モニタ９２に動画像を表示させるためには、図６のフローが繰り返されることになる。
【００３８】
なお、以下の説明においては、被写体は、正方形のマス目が並んだ物体であるとする。図７に歪み補正処理によって変化する画像データを示す。図７（ａ）は、歪み補正前の画像データである。図７（ｂ）は、歪み補正部９００により歪み補正処理が行われた画像データである。
【００３９】
また、カメラ９１のレンズは魚眼レンズであるとする。そのため、カメラ９１により撮像された画像データ（歪み補正前の画像データ）は、図７（ａ）に示すように歪んだ画像データとなる。このとき、図７（ａ）に示した画像データにおいては、歪みを補正するために拡大処理をすべき領域（図７（ａ）の斜線部）と、非拡大領域（縮小処理をすべき領域）とが偏在している。具体的には、図７（ａ）の斜線で示した領域（画像データの周辺部の領域）が拡大領域（第１の領域）であり、それ以外の領域（画像データの中央部の領域）が非拡大領域（第２の領域）である。矩形の非拡大領域が拡大領域に囲まれている。
【００４０】
まず、カメラ９１の撮像処理により生成された画像データが、ビデオ入力部１１０に入力される。このときの画像データは、図７（ａ）に示した通り、歪んだ画像データである（図５参照）。
【００４１】
ビデオ入力部１１０は、入力された画像データに対して、ノイズ除去処理や、色変換処理等を行い、歪み補正部９００に出力する。ビデオ入力部１１０では、歪み補正処理は行われていないため、このときの画像データも歪んだ画像データである（図５参照）。
【００４２】
歪み補正部９００は、入力された１画面の画像データに対して、ビデオ入力ループを行う（ステップＳ９０１）。ビデオ入力ループにおいて、歪み補正部９００は、入力された画像データに対してアフィン変換を行う（ステップＳ９０１１）。より詳細には、歪み補正部９００は、メモリ部９３に予め格納された歪み補正情報に基づいて、ビデオ入力部１１０から入力された画像データに対して、縮小処理、拡大処理、及び移動処理（平行移動処理、回転処理、及びせん断処理）を行う。これにより、歪みが補正された画像データ（図７（ｂ））が生成される。歪み補正部９００は、共有バス１３０を介して、歪み補正後の画像データをメモリ部９３に格納する（図５参照）。
【００４３】
次に、ビデオ出力部１５０の動作について説明する。ビデオ出力部１５０は、ビデオ出力の同期信号が入力されたか否かを検出する（ステップＳ９０２）。ビデオ出力部１５０は、ビデオ出力の同期信号が入力されたことを検出すると（ステップＳ９０２：Ｙｅｓ）、１画面分のビデオ出力ループを実行する（ステップＳ９０３）。ステップＳ９０３のビデオ出力ループにおいて、ビデオ出力部１５０は、共有バス１３０を介して、メモリ部９３に格納された歪み補正後の画像データを複数の画素毎に読み出し、読み出した画像データに基づいて、歪み補正が行われた画像をモニタ９２に表示させる（ステップＳ９０３１）。つまり、歪み補正部９００から出力された画像データ（図７（ｂ）に示す歪み補正後の画像データ）は、共有バス１３０から出力された後、アフィン変換（歪み補正処理）は行われずに、モニタ９２に表示される。以上の動作により、１画面分の歪み補正処理は終了する。
【００４４】
このように、半導体装置９の構成においては、共有バス１３０を経由する前段階において、カメラ９１から入力された画像データに対して、縮小処理及び拡大処理を含むアフィン変換が行われる。
【００４５】
＜縮小処理・拡大処理の処理負担の説明＞
ここで、歪み補正処理に含まれる縮小処理及び拡大処理の処理負担について、４つのケースに分けて説明する。
【００４６】
はじめに、図８のブロック図に示すように、ビデオ入力部１１０の直後において画像データの拡大処理を行い、共有バス１３０に出力するケースについて説明する。図８に示したケースでは、ビデオ入力部１１０から出力された画像データ（画素１〜４）を、歪み補正部９００において２倍のデータ量に拡大する。図８に示したケースのタイミングチャートを図９に示す。図９（ａ）は、ビデオ入力クロック（ビデオ入力部１１０の動作クロック）と、歪み補正クロック（歪み補正部９００の動作クロック）とが同じ周波数である場合のタイミングチャートである。図９（ｂ）は、歪み補正クロックが、ビデオ入力クロックの２倍の周波数である場合のタイミングチャートである。なお、以下の説明において、ビデオ入力データとは、カメラ９１からビデオ入力部１１０に入力される画素である。また、歪み補正出力とは、歪み補正部９００から出力される拡大処理が行われた画素である。
【００４７】
まず、ビデオ入力クロックと歪み補正クロックとが同じ周波数である場合について、図９（ａ）を参照して説明する。ビデオ入力部１１０には、カメラ９１が生成した画像データに含まれる画素１〜４が、ビデオ入力クロックに同期して入力される。具体的には、時刻ｔ１において画素１が入力され、時刻ｔ２において画素２が入力され、時刻ｔ３において画素３が入力され、時刻ｔ４において画素４が入力される。なお、カメラ９１の撮像処理は連続して行われている（動画を撮影している）ため、カメラ９１からビデオ入力部１１０に画像データが継続的に入力される。
【００４８】
一方、歪み補正部９００は、歪み補正クロックに同期して拡大処理を行う。このとき、歪み補正部９００は、１クロックにつき１画素を処理（拡大処理）できるものとする。そのため、歪み補正部９００は、１つの画素１を２つの画素１に拡大する処理に２クロック必要とする。つまり、歪み補正部９００は、時刻ｔ２、ｔ３において画素１を処理する。
【００４９】
次に、歪み補正部９００は、画素２の拡大処理を行う必要がある。画素２は、時刻ｔ３において歪み補正部９００に入力される。しかし、歪み補正部９００は、時刻ｔ３において画素１を処理しているため、画素２を処理することができない。
【００５０】
そして、歪み補正部９００は、時刻ｔ４において入力された画素３の拡大処理を行う。画素３の拡大処理にも２クロック必要となるため、歪み補正部９００は、時刻ｔ５に入力されてくる画素４の処理を行うことができない。つまり、ビデオ入力クロックと歪み補正クロックとが同じ周波数の場合、歪み補正部９００は、画素２、４について処理することができない。
【００５１】
これに対して、歪み補正クロックがビデオ入力クロックの２倍の周波数である場合について、図９（ｂ）を参照して説明する。時刻ｔ２〜時刻ｔ３の間において、ビデオ入力クロックは１クロック経過するのに対して、歪み補正クロックは２クロック経過する。そのため、歪み補正部９００は、時刻ｔ２〜時刻ｔ３の間に画素１の拡大処理を完了することができる。その結果、歪み補正部９００は、時刻ｔ３において入力される画素２についても、時刻ｔ３〜時刻ｔ４の間に拡大処理を行うことができる。歪み補正部９００は、それ以降も同様にビデオ入力クロックが１クロック経過する間に、１画素を２画素に拡大することができる。したがって、歪み補正クロックがビデオ入力クロックの２倍の周波数の場合、歪み補正部９００は、画素１〜４の全ての画素について拡大処理することができる。
【００５２】
このように、ビデオ入力部１１０の直後（共有バス１３０の直前）において画像データの拡大処理を行い、共有バス１３０に出力するケースにおいて、拡大処理を実現するためには、歪み補正クロックの周波数が、ビデオ入力クロックの周波数よりも高いか、あるいは入力１画素に対して１サイクル（クロック）で同時に複数画素出力できる必要がある。そのため、歪み補正部９００に高い性能が要求される。
【００５３】
次に、図１０のブロック図に示すように、ビデオ入力部１１０の直後において画像データの縮小処理を行い、共有バス１３０に出力するケースについて説明する。図１０に示したケースでは、ビデオ入力部１１０から出力された画像データ（画素１〜４）を、歪み補正部９００において１／２倍のデータ量（画素１、３）に縮小する処理について説明する。図１０に示したケースのタイミングチャートを図１１に示す。図１１（ａ）は、ビデオ入力クロックと、歪み補正クロックとが同じ周波数である場合のタイミングチャートである。図１１（ｂ）は、歪み補正クロックが、ビデオ入力クロックの１／２倍の周波数である場合のタイミングチャートである。
【００５４】
まず、ビデオ入力クロックと歪み補正クロックとが同じ周波数である場合について、図１１（ａ）を参照して説明する。図９（ａ）と同様に、ビデオ入力部１１０には、カメラ９１が生成した画像データに含まれる画素１〜４が、ビデオ入力クロックに同期して入力される。
【００５５】
歪み補正部９００は、ビデオ入力部１１０から２画素（画素１、２）入力される間に、１画素（画素１）のみを処理すればよい。時刻ｔ２において歪み補正部９００に入力された画素１の処理は、時刻ｔ３には完了するため、時刻ｔ３〜ｔ４の間に空き時間が生じる。そして、歪み補正部９００は、時刻ｔ４〜ｔ５において画素３を処理する。つまり、ビデオ入力クロックと歪み補正クロックとが同じ周波数の場合、歪み補正部９００は、画素１〜４を画素１、３に縮小する処理を行うことができる。
【００５６】
これに対して、歪み補正クロックがビデオ入力クロックの１／２倍の周波数である場合について、図１１（ｂ）を参照して説明する。この場合、ビデオ入力クロックが２クロック経過する間に、歪み補正クロックは１クロックしか経過しない。そのため、歪み補正部９００は、画素１及び画素２が入力されている間（時刻ｔ２〜ｔ４）に、画素１しか処理できない。同様に、歪み補正部９００は、画素３及び画素４が入力されている間（時刻ｔ４〜ｔ６）に、画素３しか処理できない。しかし、画素２及び画素４は、縮小処理により元々削除されるべき画素である。つまり、歪み補正クロックがビデオ入力クロックの１／２倍の周波数の場合であっても、歪み補正部９００は、画素１〜４を画素１、３に縮小する処理を行うことができる。
【００５７】
このように、図１０に示したビデオ入力部１１０の直後（共有バス１３０の直前）において画像データの縮小処理を行い、共有バス１３０に出力するケースにおいては、歪み補正クロックの周波数が、ビデオ入力クロックの周波数より低いか、あるいは入力１画素に対して複数サイクル（クロック）かけても、縮小処理を実現することができる。そのため、歪み補正部９００には、高速の処理性能は要求されず、低い処理性能でも対応することができる。
【００５８】
次に、図１２のブロック図に示すように、ビデオ出力部１５０の直前において画像データの拡大処理を行い、モニタ９２に表示するケースについて説明する。図１２に示したケースでは、共有バス１３０を介して読み出された画像データ（画素１〜４）を、歪み補正部９００において２倍のデータ量に拡大して表示する処理について説明する。図１２に示したケースのタイミングチャートを図１３に示す。図１３（ａ）は、バスクロック（共有バス１３０の動作クロック）と、表示クロックとが同じ周波数である場合のタイミングチャートである。図１３（ｂ）は、バスクロックが、表示クロックの１／２倍の周波数である場合のタイミングチャートである。
【００５９】
図１３において、バス入力データとは、共有バス１３０を介して読み出されるデータである。共有バス１３０には、バスクロックに同期して、一度に複数のまとまった画素が読み出される。図１３に示した例においては、一度に２画素のデータが読み出される。具体的には、共有バス１３０には、時刻ｔ１において、画素１及び画素２が読み出される。また、時刻ｔ５において、画素３及び画素４が読み出される。
【００６０】
バスクロックと、表示クロックとが同じ周波数である場合について、図１３（ａ）を参照して説明する。時刻ｔ１において、共有バス１３０に画素１及び画素２が読み出される。そして、歪み補正部９００は、表示クロックに同期して、共有バス１３０を介して読み出した画素をモニタ９２に表示させる。なお、歪み補正部９００は、１クロックにつき１画素を表示可能であるとする。歪み補正部９００は、時刻ｔ１において、共有バス１３０を介して読み出した画素１及び画素２を図示しないメモリに保持しておき、時刻ｔ２、ｔ３において画素１を表示し、時刻ｔ４、ｔ５において画素２を表示する。同様に、歪み補正部９００は、時刻ｔ５において、共有バス１３０を介して読み出した画素３及び画素４を保持し、時刻ｔ６、ｔ７において画素３を表示し、時刻ｔ８、ｔ９において画素４を表示する。これにより、画素１〜４の拡大処理が行われる。
【００６１】
これに対して、バスクロックが表示クロックの１／２倍の周波数である場合について、図１３（ｂ）を参照して説明する。表示クロックが２クロック経過する間に、バスクロックは１クロックしか経過しない。そのため、歪み補正部９００は、バスクロックが２クロック経過する間に、表示クロック４クロック分（４画素）の処理をすることができる。つまり、歪み補正部９００は、画素１及び画素２が入力されてから、画素３及び画素４が入力されるまでの間（時刻ｔ３〜ｔ６）に、画素１を２画素、画素２を２画素表示させることができる。そして、歪み補正部９００は、時刻ｔ７〜ｔ１０において、画素３及び画素４を２画素ずつ表示させることができる。つまり、バスクロックが表示クロックの１／２倍の周波数の場合であっても、歪み補正部９００は、画素１〜４を拡大して表示する処理を行うことができる。
【００６２】
次に、図１４のブロック図に示すように、ビデオ出力部１５０の直前において画像データの縮小処理を行い、モニタ９２に出力するケースについて説明する。図１４に示したケースでは、共有バス１３０を介して読み出された画像データ（画素１〜４）を、歪み補正部９００において１／２倍のデータ量に縮小して表示する処理について説明する。図１４に示したケースのタイミングチャートを図１５に示す。図１５（ａ）は、バスクロックと、表示クロックとが同じ周波数である場合のタイミングチャートである。図１５（ｂ）は、バスクロックが、表示クロックの１／２倍の周波数である場合のタイミングチャートである。
【００６３】
バスクロックと、表示クロックとが同じ周波数である場合について、図１５（ａ）を参照して説明する。歪み補正部９００は、表示クロックに同期して、共有バス１３０を介して読み出した画素をモニタ９２に表示させる。なお、歪み補正部９００は、１クロックにつき１画素を表示可能であるとする。歪み補正部９００は、時刻ｔ１において読み出した画素１及び画素２のうち、時刻ｔ２において画素１をモニタ９２に表示させる。また、歪み補正部９００は、時刻ｔ２において読み出した画素３及び画素４のうち、時刻ｔ３において画素３をモニタ９２に表示させる。これにより、画素１〜４を画素１及び画素３に縮小する処理が行われる。
【００６４】
これに対して、バスクロックが表示クロックの１／２倍の周波数である場合について、図１５（ｂ）を参照して説明する。この場合、歪み補正部９００は、時刻ｔ１において共有バス１３０が読み出した画素１及び画素２のうち、画素１を時刻ｔ２において表示させることはできる。しかし、歪み補正部９００は、時刻ｔ３において共有バス１３０が読み出した画素３及び画素４を、同時刻の時刻ｔ３において表示させることはできない。
【００６５】
このように、ビデオ出力部１５０の直前において画像データの縮小処理を行い、モニタ９２に出力するケースにおいて、縮小処理を実現するためには、共有バス１３０から得られる入力データレートが、表示のために必要とされる出力データレートより高い必要がある。そのため、共有バス１３０には広いバス帯域が要求される。
【００６６】
以上のように、共有バス１３０に画像データを出力する前にｎ倍の拡大処理を行う場合、歪み補正部９００は、カメラ９１から取り込んだ１画素に対して、ｎ画素を生成し、共有バス１３０に出力する必要がある。そのため、大きな拡大率に対応するために高い処理性能とメモリ帯域が要求される。したがって、大きな拡大率に対応するためには、半導体装置１の論理を大きくし、共有バス１３０の帯域を広くする必要があり、製品のコストが増加してしまう。一方、共有バス１３０に画像データを出力する前に１／ｎ倍の縮小処理を行う場合、歪み補正部９００は、カメラ９１から取り込んだｎ画素に対して１画素しか生成しなくてよい。そのため、必要な処理性能は低くなり、共有バス１３０に要求されるバス帯域も狭くなる。
【００６７】
また、共有バス１３０から出力された画像データを表示する前にｎ倍の拡大処理を行う場合、歪み補正部９００は、共有バス１３０を介して取得した１画素をｎ画素として出力（表示）できる。一方、共有バス１３０から出力された画像データを表示する前に１／ｎ倍の縮小処理を行う場合、歪み補正部９００は、共有バス１３０を介して取得したｎ画素を１画素としてしか出力（表示）できない。そのため、共有バス１３０から出力された画像データを表示する前においては、拡大処理を行うよりも縮小処理を行う方が、広いバス帯域を必要とする。
【００６８】
図１に示した比較例にかかる半導体装置９においては、共有バス１３０に画像データが出力される前に、歪み補正部９００において、画像データの拡大処理を含む歪み補正処理が行われている（図５参照）。そのため、共有バス１３０を経由する前に、画像データのデータ量が増加してしまう。したがって、共有バス１３０のバス帯域を広く確保しておく必要がある。また、歪み補正部９００の歪み補正クロックを、ビデオ入力クロックの２倍以上の周波数としなければならず、歪み補正部９００に要求される性能が高くなってしまう。その結果、製品コストが増加してしまうという問題がある。以下で説明する実施の形態にかかる半導体装置によれば、このような半導体装置９の課題を解決することができる。
【００６９】
＜実施の形態１＞
以下、図面を参照して実施の形態の概要について説明する。まず、本実施の形態にかかる半導体装置１について図１６を参照して説明する。図１６は、本実施の形態にかかる半導体装置１のブロック図である（図５に示した半導体装置９のブロック図に対応）。図１６に示した半導体装置１の構成は、図１に示した半導体装置９の構成に比べて、歪み補正部９００に代えて、入力側画像補正部１２０が設けられている点、共有バス１３０とビデオ出力部１５０との間に出力側画像補正部１４０が追加されている点が異なる。
【００７０】
＜半導体装置１の構成の概要＞
半導体装置１は、画像入力部１１と、画像出力部１２と、共有バス１３０と、制御部１６０と、を備える。半導体装置１は、外部のカメラ９１から取り込んだ画像データの歪みを補正して、外部のモニタ９２に歪み補正後の画像を表示させるものである。
【００７１】
画像入力部１１は、カメラ９１の撮像処理により生成された画像データ（第１画像データ）を取得する。そして、画像入力部１１は、入力側画像補正部１２０において補正された画像データ（第２画像データ）を、共有バス１３０を介して、メモリ部９３に格納する。画像入力部１１は、ビデオ入力部１１０及び入力側画像補正部１２０を有する。
【００７２】
画像出力部１２は、メモリ部９３に格納された画像データを、共有バス１３０を介して読み出す。そして、画像出力部１２は、入力側画像補正部１２０及び出力側画像補正部１４０において補正された画像データ（第３画像データ）に基づいて、モニタ９２に歪み補正後の画像を表示する。画像出力部１２は、出力側画像補正部１４０及びビデオ出力部１５０を有する。
【００７３】
共有バス１３０（データバス）は、画像入力部１１と、画像出力部１２と、メモリ部９３とをそれぞれ接続するためのバスである。
【００７４】
入力側画像補正部１２０と、出力側画像補正部１４０は、アフィン変換を用いて、画像入力部１１が取得した画像データの歪みを補正する。入力側画像補正部１２０は、画像入力部１１に設けられている。入力側画像補正部１２０は、画像入力部１１において、アフィン変換に含まれる画像データの補正処理のうち、少なくとも縮小処理を行う。図１６に示すように、本実施の形態においては、入力側画像補正部１２０は、縮小処理に加えて、移動処理（平行移動処理、回転処理、及びせん断処理）も行う。
【００７５】
これに対して、出力側画像補正部１４０は、画像出力部１２に設けられている。図１６に示すように、出力側画像補正部１４０は、画像出力部１２において、アフィン変換に含まれる画像変換処理のうち、少なくとも拡大処理を行う。
【００７６】
図１６のブロック図の詳細なブロック図を図１７に示す。（図１に示した半導体装置９のブロック図に対応）。なお、入力側画像補正部１２０及び出力側画像補正部１４０以外の構成については図１に示した半導体装置９と同様であるので、説明を適宜省略する。
【００７７】
＜入力側画像補正部１２０の構成＞
入力側画像補正部１２０は、ビデオ入力部１１０から入力された補正前の画像データ（第１画像データ）に対して、アフィン変換における補正処理のうち、少なくとも縮小処理を行う。本実施の形態においては、入力側画像補正部１２０は、入力された画像データに対して、縮小処理に加えて、移動処理（回転処理、平行移動処理、及びせん断処理）を行う。ただし、入力側画像補正部１２０は、拡大処理を行わない。
【００７８】
つまり、入力側画像補正部１２０は、縮小処理、平行移動処理、回転処理、及びせん断処理を行うための変換行列を予め合成しておく。そして、入力側画像補正部１２０は、合成された変換行列を用いて、アフィン変換（第１アフィン変換）を行う。言い換えると、入力側画像補正部１２０においては、アフィン変換に含まれる拡大処理以外の補正処理が１回の行列演算で行われる。なお、入力側画像補正部１２０における第１アフィン変換には、縮小処理、平行移動処理、回転処理、及びせん断処理が含まれるが、拡大処理は含まれない。
【００７９】
入力側画像補正部１２０は、カメラ９１から取得した画像データ（第１画像データ）に対して縮小処理及び移動処理を行うことにより、補正処理後の画像データ（第２画像データ）を生成する。入力側画像補正部１２０は、生成した画像データを共有バス１３０を介して、半導体装置１外部のメモリ部９３に格納する。通常、カメラ９１の動作クロックと、モニタ９２の動作クロックとは同期していないため、画像データを一旦メモリ部９３に格納することにより、画像データの出力のタイミングを調整している。
【００８０】
入力側画像補正部１２０は、ラインメモリ１２１と、コマンド解釈部１２２と、変換処理部１２３と、フィルタリング部１２４と、を備える。なお、変換処理部１２３以外は、半導体装置９の歪み補正部９００と同様の動作を行うため、説明を省略する。
【００８１】
変換処理部１２３は、コマンド解釈部１２２の指示に応じて、ラインメモリ１２１に格納された画像データに対して補正処理を行う。本実施の形態においては、変換処理部１２３は、ラインメモリ１２１に格納された画像データに対して、縮小処理、平行移動処理、回転処理、及びせん断処理を行う。より詳細には、変換処理部１２３は、歪み補正情報に基づいて、ラインメモリ１２１に格納された画像データの画素毎にアドレスを指定して、画素の移動（平行移動処理、回転処理、せん断処理）や画素の削除（縮小処理）を行う。つまり、変換処理部１２３は、画像データの拡大処理を行わない。
【００８２】
＜出力側画像補正部１４０の構成＞
出力側画像補正部１４０は、入力側画像補正部１２０により補正処理され、メモリ部９３に格納されている画像データ（第２画像データ）を、共有バス１３０を介して読み出す。そして、出力側画像補正部１４０は、読み出した画像データに対して、アフィン変換における補正処理のうち、拡大処理（第２アフィン変換）を行い、歪み補正後の画像データ（第３画像データ）を生成する。ただし、出力側画像補正部１４０は、縮小処理を行わない。言い換えると、出力側画像補正部１４０における第２アフィン変換には、拡大処理が含まれるが、縮小処理は含まれない。
【００８３】
つまり、半導体装置１は、入力側画像補正部１２０による補正処理と出力側画像補正部１４０の補正処理によって、ビデオ入力部１１０に入力された画像データに対して、アフィン変換を用いた歪み補正処理を行う。言い換えると、歪み補正された画像データ（第３画像データ）は、カメラ９１から入力された補正前の画像データ（第１画像データ）をアフィン変換することにより生成される。出力側画像補正部１４０は、メモリ部９３に格納されている画像データ（第２画像データ）に対して拡大処理を行い、歪み補正後の画像データ（第３画像データ）を生成する。出力側画像補正部１４０は、生成した画像データをビデオ出力部１５０に出力する。
【００８４】
＜半導体装置１の動作例＞
続いて、図１８のフローチャートを参照して、本実施の形態にかかる半導体装置１の動作例について説明する。なお、図１８においては、カメラ９１から入力された１画面（１フレーム）分の画像データに対する処理を示している。そのため、複数フレームの画像データを用いて、モニタ９２に動画像を表示させるためには、図１８のフローが繰り返されることになる。
【００８５】
なお、以下の説明においては、被写体は、図７に示した被写体と同様に、正方形のマス目が並んだ物体であるとする。図１９に歪み補正処理の過程で変化する画像データを示す。図１９（ａ）は、歪み補正前の画像データ（第１画像データ）である。図１９（ｂ）は、入力側画像補正部１２０により横方向の拡大処理以外の補正処理が行われた画像データ（第２画像データ）である。図１９（ｃ）は、出力側画像補正部１４０により横方向の拡大処理が行われた画像データ、つまり、歪み補正が完了した画像データ（第３画像データ）である。
【００８６】
また、カメラ９１のレンズは魚眼レンズであるとする。そのため、図７において説明したように、カメラ９１により撮像された画像データ（歪み補正前の画像データ）は、図１９（ａ）に示すように歪んだ画像データとなる。また、拡大領域（第１の領域）と非拡大領域（第２の領域）とが偏在している。具体的には、図１９（ａ）の斜線で示した領域が拡大領域であり、それ以外の領域が非拡大領域である。矩形の非拡大領域が拡大領域に囲まれている。
【００８７】
以下で歪み補正処理の詳細について説明する。なお、図１６に示したブロック図に、各ブロックから出力される画像データの状態を追記したブロック図を図２０に示す。以下の説明では、図２０のブロック図も適宜参照して説明する。
【００８８】
＜画像入力部１１の動作＞
まず、カメラ９１の撮像処理により生成された画像データが、ビデオ入力部１１０に入力される。このときの画像データは、図１９（ａ）に示した通り、歪んだ画像データである（図２０参照）。
【００８９】
ビデオ入力部１１０は、入力された画像データに対して、ノイズ除去処理や、色変換処理等を行い、入力側画像補正部１２０に出力する。ビデオ入力部１１０では、歪み補正処理は行われていない。このため、図２０に示すように、入力側画像補正部１２０に入力される画像データも歪んだ画像データ（第１画像データ）である。
【００９０】
次に、入力側画像補正部１２０は、ビデオ入力部１１０から入力された１画面分の画像データに対して、ビデオ入力ループを実行する（ステップＳ１０１）。ステップＳ１０１のビデオ入力ループにおいて、入力側画像補正部１２０は、入力された画像データに対して、アフィン変換の補正処理のうち、拡大処理以外の処理（第１アフィン変換）を実行する（ステップＳ１０１１）。
【００９１】
具体的には、入力側画像補正部１２０は、メモリ部９３に予め格納された歪み補正情報に基づいて、入力された画像データに含まれる複数の画素毎に、縮小、回転、平行移動、及びせん断の処理を行う。なお、入力側画像補正部１２０においては、必ずしも、縮小、回転、平行移動、及びせん断の処理の全ての処理が行われていなくてもよい。入力側画像補正部１２０においては、少なくとも、縮小処理と、その他の補正処理（回転、平行移動、及びせん断）のうちのいずれか１つの処理と、が行われていればよい。いずれの補正処理を行うかは、画像データの歪み具合に応じて適宜決定される。
【００９２】
より詳細には、コマンド解釈部１２２が、メモリ部９３に格納されている歪み補正情報を読み出し、変換処理部１２３に出力する。この時の歪み補正情報は、ユーザにより予め設定された情報であって、拡大率の大きな個所が指定され、その指定された個所の拡大率を下げるための情報であるものとする。
【００９３】
ディスプレイ表示モジュールは、一般にライン単位でデータを読み出すことを考えると、ｘ方向に拡大率を下げる（縮小させる）方が望ましい。ここでは、例えば、ｘ方向に１／２倍の拡大率とする。このように、拡大領域の拡大率を一律の倍率とすることにより、後述する拡大処理において、拡大すべき領域全ての拡大率が一律の倍率となる。このため拡大処理において用いるパラメータの数を減らすことができる。
【００９４】
このとき、入力側画像補正部１２０において、画像データ全体（拡大領域及び非拡大領域）を一様の倍率で縮小し、出力側画像補正部１４０において、画像データ全体を一様の倍率で拡大する方法も考えられる。しかし、拡大する必要の無い非拡大領域（カメラ９１から入力された画像データのままで、表示に十分な大きさの領域）まで、縮小してしまうと、非拡大領域の画素も削減されることとなる。その結果、モニタ９２に表示される画像の画質が劣化してしまう。これに対して、本実施の形態においては、入力側画像補正部１２０が、画像データに含まれる一部の領域である拡大領域のみを一様の倍率で縮小させている。そのため、画素が削除される領域を減らすことができ、モニタ９２に表示される画像の画質の劣化を抑制することができる。
【００９５】
変換処理部１２３は、ラインメモリ１２１に格納された画素のアドレス指定し、マッピング情報に基づいて、画素の移動や画素の削除を行う。これにより、ビデオ入力部１１０から入力された画像データに対して、縮小、回転、平行移動、せん断の補正処理が行われる。
【００９６】
なお、入力側画像補正部１２０において行われる画像データの縮小処理とは、画素を削減する処理である。そのため、変換処理部１２３による変換処理後の画像データは、カメラ９１から入力された画像データ（図１９（ａ）参照）よりも少ない画素数の画像データ（図１９（ｂ）参照）となる。その結果、入力側画像補正部１２０からメモリ部９３に出力される画像データ量が減少する。したがって、縮小処理後の画像データが伝送される共有バス１３０のバス帯域を低減することができる。なお、図１９（ａ）に示した画像データのうち、非拡大領域については、各マス目の倍率が均等になるようにマッピング情報が生成され、変換処理部１２３によって適宜縮小処理がなされる。
【００９７】
その後、フィルタリング部１２４は、変換処理部１２３によって変換された画像データに含まれる複数画素毎に、ぼかし処理や線形補間処理を行う。そして、フィルタリング部１２４は、共有バス１３０を介して、複数の画素毎に変換後の画像データをメモリ部９３に格納する。入力側画像補正部１２０は、上記の変換処理を画素毎に繰り返す（ループ処理を行う）。これにより、ラインメモリ１２１に格納された１画面分の画像データに対して、縮小、回転、平行移動、及びせん断の処理が行われた画像データ（第２画像データ）が、メモリ部９３に格納される（図２０参照）。
【００９８】
＜画像出力部１２の動作＞
次に、出力側画像補正部１４０及びビデオ出力部１５０の動作について説明する。出力側画像補正部１４０及びビデオ出力部１５０は、ビデオ出力の同期信号が入力されたか否かを検出する（ステップＳ１０２）。出力側画像補正部１４０及びビデオ出力部１５０は、ビデオ出力の同期信号が入力されたことを検出すると（ステップＳ１０２：Ｙｅｓ）、１画面分のビデオ出力ループを実行する（ステップＳ１０３）。ステップＳ１０２のビデオ出力ループにおいて、出力側画像補正部１４０は、メモリ部９３に格納された画像データ（第２画像データ）に対して、アフィン変換に含まれる補正処理のうち、拡大処理（第２アフィン変換）を実行する（ステップＳ１０３１）。
【００９９】
具体的には、出力側画像補正部１４０は、共有バス１３０を介して、メモリ部９３から複数の画素毎に画像データを取得する。このとき、出力側画像補正部１４０が取得する画像データは、入力側画像補正部１２０により、拡大処理以外の補正処理が行われた画像データ（第２画像データ）である。つまり、出力側画像補正部１４０が共有バス１３０を介して取得する画像データは、縮小処理が行われた画像データである（図２０参照）。そのため、出力側画像補正部１４０が取得する画像データは、カメラ９１から入力された画像データよりも少ない画素数の画像データとなる。その結果、メモリ部９３から出力側画像補正部１４０に出力される画像データ量が減少するため、バス帯域を低減することができる。
【０１００】
そして、出力側画像補正部１４０は、出力側画像補正部１４０に設けられたレジスタ１４０１に予め格納された拡大情報に基づいて、取得した画素の拡大処理を行う。そして、出力側画像補正部１４０は、拡大処理を行った画素をビデオ出力部１５０に出力する。つまり、ビデオ出力部１５０には、入力側画像補正部１２０及び出力側画像補正部１４０により歪み補正された画像データ（第３画像データ）が出力される。拡大情報をレジスタ１４０１に予め格納しておくことにより、出力側画像補正部１４０が、他のメモリ（例えば、メモリ部９３）から共有バス１３０を介して拡大情報を読み出す処理を省略できる。なお、拡大情報とは、メモリ部９３に格納された画像データのうち、拡大処理すべき画素を示す情報である。例えば、拡大情報とは、拡大すべき画素のアドレス情報及び拡大率等を含む情報である。
【０１０１】
ビデオ出力部１５０は、出力側画像補正部１４０から入力された画素に対して、色彩調整を行い、モニタ９２に表示させる（ステップＳ１０３２）。出力側画像補正部１４０及びビデオ出力部１５０は、上記の拡大処理及び表示処理を画素毎に繰り返す（ループ処理を行う）。これにより、歪み補正された１画面分の画像データ（図１９（ｃ）参照）がモニタ９２に表示される。以上の動作により、１画面分の歪み補正処理は終了する。
【０１０２】
以上のように、本実施の形態にかかる半導体装置１の構成によれば、入力側画像補正部１２０が、カメラ９１から入力された画像データ（第１画像データ）に対して、拡大処理以外のアフィン変換（縮小処理、平行移動処理、回転処理、せん断処理）を行う。つまり、入力側画像補正部１２０では、拡大処理は行われない。そして、入力側画像補正部１２０は、共有バス１３０を介して、補正した画像データ（第２画像データ）をメモリ部９３に格納する。また、出力側画像補正部１４０は、共有バス１３０を介して、入力側画像補正部１２０により補正された画像データをメモリ部９３から読み出す。出力側画像補正部１４０は、読み出した画像データ（第２画像データ）に対して拡大処理を行い、歪み補正後の画像データ（第３画像データ）をビデオ出力部１５０に出力する。そして、ビデオ出力部１５０は、歪み補正された画像をモニタ９２に表示させる。このため、共有バス１３０を経由する画像データは、拡大処理は行われておらず、入力側画像補正部１２０により縮小処理されたデータとなる。つまり、共有バス１３０を経由する画像データは、拡大処理後の画像データよりも小さいデータ量の画像データである。言い換えると、画像データは、縮小処理された状態で共有バス１３０を経由する。したがって、共有バス１３０のバス帯域を広く確保しておく必要はなく、図２に示した半導体装置９の構成に比べてバス帯域を低減することができる。その結果、バス設計が容易になり、半導体装置１の論理を小さくすることができる。
【０１０３】
また、出力側画像補正部１４０は、アフィン変換に含まれる拡大処理のみを行う。言い換えると、出力側画像補正部１４０では、拡大処理のための行列演算が１回行われる。つまり、本実施の形態にかかる半導体装置１は、アフィン変換を用いて歪み補正を行うが、縮小処理、平行移動処理、回転処理、及びせん断処理を行うための行列演算と、拡大処理を行うための行列演算とを、分けて計算する。そのため、歪んだ画像データの１画面に対して、入力側画像補正部１２０で１回（第１アフィン変換）、出力側画像補正部１４０で１回（第２アフィン変換）、の計２回の行列演算（アフィン変換）が行われる。このように、本実施の形態にかかる半導体装置１の構成においては、アフィン変換に含まれる補正処理のうち、縮小処理の行列演算と、拡大処理の行列演算とを、敢えて分けて計算する。これにより、画像データが共有バス１３０を経由する前に、画像データを縮小させ、画像データが共有バス１３０の経由後に、画像データを拡大させることができる。その結果、共有バス１３０のバス帯域を低減することができる。
【０１０４】
さらに、本実施の形態にかかる半導体装置１においては、入力側画像補正部１２０が、ビデオ入力部１１０の直後（共有バス１３０の直前）において、画像データの縮小処理を行っている。そのため、図１０及び図１１を用いて説明した通り、入力側画像補正部１２０の歪み補正クロックをビデオ入力クロックよりも低い周波数とすることができる。
【０１０５】
加えて、出力側画像補正部１４０が、ビデオ出力部１５０の直前（共有バス１３０の直後）において、画像データの拡大処理を行っている。そのため、共有バス１３０に求められる入力データレートを、拡大処理を行わない場合に比べて下げることができる。その結果、入力側画像補正部１２０及び共有バス１３０の処理負担を軽減することができる。
【０１０６】
これに対して、半導体装置９の処理においては、図５において明らかなように、拡大処理のみ行われていない画像データ（図１９（ｂ）参照）は生成されない。そのため、拡大処理後の画像データが、共有バス１３０を経由して、メモリ部９３に格納される。そして、メモリ部９３に格納された拡大処理後の画像データが、共有バス１３０を経由して、ビデオ出力部１５０に出力される。つまり、共有バス１３０は、データ量の大きい拡大処理後の画像データを伝送しなければならない。したがって、共有バス１３０は、広いバス帯域を確保しなければならない。
【０１０７】
＜変形例１＞
本実施の形態にかかる半導体装置１の変形例１について説明する。図２１は、本実施の形態の変形例１にかかる半導体装置２の構成である。図２１に示した半導体装置２においては、出力側画像補正部１４０が参照する拡大情報が、外部のメモリ部９３に格納されている点で、図１６に示した半導体装置１とは異なる。なお、その他の構成については半導体装置１と同様であるので、説明を適宜省略する。
【０１０８】
出力側画像補正部１４０は、メモリ部９３に格納された画像データ（第２画像データ）を読み出す際に、合わせて拡大情報も読み出す。そして、出力側画像補正部１４０は、メモリ部９３から読み出した拡大情報に基づいて、メモリ部９３から読み出した画像データに対して、拡大処理を行う。
【０１０９】
以上のように、変形例１にかかる半導体装置２の構成によれば、外部のメモリ部９３に拡大情報を予め格納しておく。これにより、半導体装置２の出力側画像補正部１４０に拡大情報を持たせておく必要がなくなる。その結果、半導体装置２のメモリコストを削減することができる。
【０１１０】
＜変形例２＞
本実施の形態にかかる変形例２について説明する。上述した実施の形態１においては、変換処理部１２３が生成するマッピング情報は、拡大領域と非拡大領域とを細かく設定できる分、マッピング情報が複雑となっていた。
【０１１１】
変形例２においては、画像データがｙ軸に応じて３つの領域に分割され、各領域に対して拡大領域または非拡大領域が設定されている。具体的には、図２２に示すように、画像データ中のｙ軸の座標がｙ１以上の領域は、拡大領域（第１の領域）として設定する。また、ｙ軸の座標がｙ２以上ｙ１未満の領域は、非拡大領域（第２の領域）として設定する。さらに、ｙ軸の座標がｙ２未満の領域は拡大領域（第１の領域）として設定する。つまり、補正前の画像データ（第１画像データ）及び拡大処理前の画像データ（第２画像データ）における拡大領域及び非拡大領域は、ｙ軸の座標のみで判定される。
【０１１２】
以上のように、変形例２にかかる半導体装置の構成によれば、拡大領域と非拡大領域とがｙ軸の座標のみで判断できる。このような領域設定とすることにより、領域の設定が容易となる。具体的には、上述の実施の形態１においては、拡大領域を矩形の領域として設定する必要があった。しかし、変形例２おいては、拡大領域を設定する際に、ｙ軸の座標を２箇所決定するだけでよい。そのため、設定パラメータを少なくすることができ、変換処理部１２３におけるマッピングの解析も容易となる。
【０１１３】
さらに、拡大領域か否かの判定も容易に行うことができる。具体的には、変換処理部１２３は、歪み補正情報に基づいて、予め設定された２箇所のｙ座標と、現在処理しているｙ座標とを比較するだけで、当該領域（画素）を拡大すべきか否かを判定することができる。勿論、ｙ軸の２点ではなく、ｘ軸の２点のみを用いて、拡大領域と非拡大領域とを設定してもよいことは言うまでもない。
【０１１４】
＜変形例３＞
以下、図面を参照して変形例３について説明する。変形例３にかかる半導体装置３のブロック図を図２３に示す。上述した実施の形態１においては、ユーザが、拡大情報を設定し、出力側画像補正部１４０のレジスタ１４０１または外部のメモリ部９３に予め格納していた。変形例３にかかる半導体装置３においては、入力側画像補正部２２０が拡大情報を生成する点に特徴を有する。なお、その他の構成については半導体装置１と同様であるので、説明を適宜省略する。
【０１１５】
入力側画像補正部２２０の変換処理部１２３は、メモリ部９３に格納され、補正前の画像データ（第１画像データ）の歪みを補正するための歪み補正情報に基づいて、マッピング情報を生成する。そして、変換処理部１２３は、マッピング情報に基づいて、拡大処理以外の補正処理を行う。
【０１１６】
このとき、変換処理部１２３は、歪み補正情報に基づいて、拡大情報を生成する。具体的には、変換処理部１２３は、歪み補正情報に基づいて、拡大率を抽出する。変換処理部１２３は、抽出した拡大率が所定の拡大率（例えば２倍）を超えているか否かを判定する。そして、変換処理部１２３は、所定の拡大率を超える拡大率の画素は拡大せずに、当該画素の拡大率及びアドレスを用いて、拡大情報を生成する。変換処理部１２３は、生成した拡大情報を、共有バス１３０を介して、メモリ部９３に格納する。
【０１１７】
そして、出力側画像補正部１４０は、メモリ部９３に格納された拡大情報も読み出す。出力側画像補正部１４０は、メモリ部９３から読み出した拡大情報に基づいて、メモリ部９３から読み出した画像データに対して、拡大処理を行う。
【０１１８】
以上のように、変形例３にかかる半導体装置３の構成によれば、入力側画像補正部２２０が、歪み補正情報に基づいて、拡大情報を自動生成する。このため、ユーザは、出力側画像補正部１４０の拡大処理のために、予め拡大情報を別途設定する必要がない。つまり、歪み補正処理のためにユーザが設定する情報は、歪み補正情報だけでよい。その結果、ユーザの手間を省くことができる。
【０１１９】
なお、拡大情報を生成する処理部は変換処理部１２３に限られない。入力側画像補正部２２０内の他の処理部が生成してもよいし、入力側画像補正部２２０外部に拡大情報を生成するための処理部を別途設けてもよい。
【０１２０】
＜変形例４＞
本実施の形態にかかる変形例４について説明する。変形例４にかかる半導体装置４のブロック図を図２４に示す。半導体装置４は、入力側画像補正部２２０が生成した拡大情報を、出力側画像補正部１４０に直接出力する点に特徴を有する。なお、その他の構成については変形例３にかかる半導体装置３と同様であるので、説明を適宜省略する。
【０１２１】
具体的には、入力側画像補正部２２０は、生成した拡大情報を、一旦メモリ部９３に格納することなく、出力側画像補正部１４０のレジスタ１４０１に格納する。そして、出力側画像補正部１４０は、共有バス１３０を介してメモリ部９３から読み出した画像データ（第２画像データ）に対して、レジスタ１４０１に格納されている拡大情報に基づいて拡大処理を行う。
【０１２２】
以上のように、変形例４にかかる半導体装置４の構成によれば、拡大情報をメモリ部９３に格納しておく必要がないため、メモリ部９３のメモリコストを削減できる。また、拡大情報は、入力側画像補正部２２０により、レジスタ１４０１に格納されるため、出力側画像補正部１４０がメモリ部９３から拡大情報を読み出す処理も省略できる。その結果、出力側画像補正部１４０の処理負担を軽減することができる。勿論、上記の変形例３と同様に、拡大情報は、入力側画像補正部２２０により自動生成されるため、ユーザの手間も省くことができる。
【０１２３】
＜実施の形態２＞
以下、図面を参照して実施の形態２について説明する。本実施の形態にかかる半導体装置５のブロック図を図２５に示す。半導体装置５においては、ビデオ入力部１１０と入力側画像補正部１２０とが直結されていない。なお、その他の構成については半導体装置１と同様であるので、説明を適宜省略する。
【０１２４】
ビデオ入力部１１０は、カメラ９１から入力された画像データを、入力側画像補正部１２０に直接出力せず、共有バス１３０を介して、一旦メモリ部９３に出力する。つまり、カメラ９１により生成された画像データ（第１画像データ）は、歪み補正されることなく、メモリ部９３に格納される。
【０１２５】
入力側画像補正部１２０は、共有バス１３０を介して、ビデオ入力部１１０によりメモリ部９３に格納された画像データを読み出す。また、入力側画像補正部１２０は、共有バス１３０を介して、メモリ部９３に予め格納された歪み補正情報を読み出す。そして、入力側画像補正部１２０は、歪み補正情報に基づいて、縮小処理及び移動処理（平行移動処理、回転処理、及びせん断処理）を行う。入力側画像補正部１２０は、共有バス１３０を介して、補正処理を行った画像データ（第２画像データ）をメモリ部９３に格納する。以降の処理（出力側画像補正部１４０及びビデオ出力部１５０）については、実施の形態１と同様であるため、説明を省略する。
【０１２６】
以上のように、本実施の形態にかかる半導体装置５の構成によれば、入力側画像補正部１２０は、ビデオ入力部１１０と直結していない。そのため、入力側画像補正部１２０をビデオ入力部１１０と一体のハードウェアとしなくてもよい。言い換えると、入力側画像補正部１２０は、ＣＰＵの制御により動作するソフトウェアでもよい。入力側画像補正部１２０をソフトウェアとすることにより、ビデオ入力部１１０を含む画像入力部１１（図１６参照）のハードウェアの構成を簡易な構成とすることができる。さらに、入力側画像補正部１２０の配置位置も特定されないため、設計の自由度が向上させることができる。
【０１２７】
勿論、本実施の形態においても、画像データの拡大処理は、メモリ部９３に格納された画像データ（第２画像データ）が共有バス１３０を経由した後に、出力側画像補正部１４０において行われる。そのため、拡大処理された画像データが共有バス１３０を経由することがない。その結果、共有バス１３０のバス帯域を低減することができる。
【０１２８】
＜実施の形態３＞
以下、図面を参照して実施の形態３について説明する。本実施の形態にかかる半導体装置６のブロック図を図２６に示す。半導体装置６は、図１６に示した半導体装置１の構成と同様であるが、出力側画像補正部２４０が、拡大処理以外の補正処理も行う点に特徴を有する。具体的には、出力側画像補正部２４０は、拡大処理により歪みが補正された画像を再度歪ませる。なお、その他の構成については半導体装置１と同様であるので、説明を適宜省略する。
【０１２９】
また、本実施の形態にかかる半導体装置６は、ユーザが直接見るモニタ９２に画像を表示させるものではなく、例えば、プロジェクタ等の投影機の液晶パネル９４に画像を表示させるものである。液晶パネル９４に表示された画像は、スクリーンや壁等に拡大投影される。つまり、ユーザが見る画像は、投影機から拡大投影され、スクリーンに映った画像となる。
【０１３０】
このとき、拡大投影される画像自体が歪んでいるため、平面のスクリーン等に画像が投影されると、スクリーンに映った画像は歪んだものとなってしまう。しかし、投影される面が歪んでいる場合、つまり、曲面スクリーンに画像を投影する場合には、曲面スクリーンに映った画像は歪みのない画像となる。そのため、例えば、自動車のフロントガラス等に画像を投影する場合には、本実施の形態にかかる半導体装置６の構成は好適である。
【０１３１】
出力側画像補正部２４０は、上述した実施の形態１、２と同様に、共有バス１３０を介して、メモリ部９３から画像データを読み出す。そして、出力側画像補正部２４０は、拡大情報に基づいて、読み出した画像データに対して拡大処理を行う。これにより、画像データは、歪みが補正された画像データ（第３画像データ）となる。
【０１３２】
加えて、出力側画像補正部２４０は、歪みが補正された画像データ（第３画像データ）を再度歪ませる。具体的には、出力側画像補正部２４０は、メモリ部９３に予め格納された歪み情報に基づいて、歪みが補正された画像データに対して、縮小処理、拡大処理、平行移動処理、回転処理、及びせん断処理を行う。これにより、出力側画像補正部２４０は、再度画像データを歪ませる。ここで、歪み情報とは、歪みの無い画像を、歪ませるためのパラメータである。例えば、歪み情報とは、投影する曲面スクリーンの形状や曲率に応じて予め設定されたアフィン変換の変換行列等である。なお、曲面投影の詳細な原理については、公知の技術を用いることができるため、詳細な説明は省略する。
【０１３３】
そして、ビデオ出力部１５０は、出力側画像補正部２４０から出力された歪んだ画像データに基づいて、歪んだ画像を液晶パネル９４に表示させる。これにより、液晶パネル９４には、歪んだ画像が表示される。そして、図示しない投影機により、液晶パネル９４に表示された画像が拡大投影される。
【０１３４】
以上のように、本実施の形態にかかる半導体装置６の構成によれば、出力側画像補正部２４０が、歪み情報に基づいて、歪み補正された画像データ（第３画像データ）を再度歪ませる。そして、ビデオ出力部１５０は、液晶パネル９４に歪んだ画像を表示させる。このため、半導体装置６から出力された画像データが曲面スクリーンに投影された場合であっても、ユーザには歪みが無い画像が見えるため、画像の視認性を向上させることができる。
【０１３５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で 種々の変更及び組み合わせが可能であることはいうまでもない。
【０１３６】
例えば、入力側画像補正部１２０において、画像データの縮小処理のみを行い、出力側画像補正部１４０において、縮小処理された画像データに対して、拡大処理、回転処理、平行移動処理、及びせん断処理を行ってもよい。また、入力側画像補正部１２０において、縮小処理と、回転処理、平行移動処理、及びせん断処理のうちの一部の処理と、を行い、出力側画像補正部１４０において、拡大処理と、回転処理、平行移動処理、及びせん断処理のうちの残りの処理と、を行ってもよい。さらに、入力側画像補正部１２０において、拡大処理の一部を行ってもよい。例えば、入力側画像補正部１２０が、画像データの一部の領域のみ拡大処理を行い、出力側画像補正部１４０が、他の領域の拡大処理を行ってもよい。また、例えば４倍の拡大処理が必要な場合に、入力側画像補正部１２０において２倍の拡大処理を行い、出力側画像補正部１４０においてさらに２倍の拡大処理を行ってもよい。
【０１３７】
また、上述の実施の形態においては、半導体装置が、半導体装置外部のカメラ９１及びモニタ９２接続されている例を示したが、撮像部（カメラ９１に対応）と、表示部（モニタ９２に対応）と、半導体装置とを備える１つの電子機器として実施されてもよい。撮像部及び表示部を含む電子機器は、例えば、車のカーナビゲーション装置として用いられる。
【符号の説明】
【０１３８】
１〜６  半導体装置
１１  画像入力部
１２  画像出力部
９１  カメラ
９２  モニタ
９３  メモリ部
９４  液晶パネル
１１０  ビデオ入力部
１１１  入力タイミング制御部
１１２  ノイズ除去・色変換部
１２０  入力側画像補正部
１２１  ラインメモリ
１２２  コマンド解釈部
１２３、１２９  変換処理部
１２４  フィルタリング部
１３０  共有バス
１４０、２４０  出力側画像補正部
１５０  ビデオ出力部
１５１  調整部
１５２  出力タイミング制御部
１６０  制御部
１６１  ＣＰＵ
１６２  割り込みコントローラ
１６３  周辺ＩＰ
１７０  メモリコントローラ
１８０  内蔵メモリ
９００  歪み補正部
【図１】
0005925579.tif 000003
【図２】
0005925579.tif 000004
【図３】
0005925579.tif 000005
【図４】
0005925579.tif 000006
【図５】
0005925579.tif 000007
【図６】
0005925579.tif 000008
【図７】
0005925579.tif 000009
【図８】
0005925579.tif 000010
【図９】
0005925579.tif 000011
【図１０】
0005925579.tif 000012
【図１１】
0005925579.tif 000013
【図１２】
0005925579.tif 000014
【図１３】
0005925579.tif 000015
【図１４】
0005925579.tif 000016
【図１５】
0005925579.tif 000017
【図１６】
0005925579.tif 000018
【図１７】
0005925579.tif 000019
【図１８】
0005925579.tif 000020
【図１９】
0005925579.tif 000021
【図２０】
0005925579.tif 000022
【図２１】
0005925579.tif 000023
【図２２】
0005925579.tif 000024
【図２３】
0005925579.tif 000025
【図２４】
0005925579.tif 000026
【図２５】
0005925579.tif 000027
【図２６】
0005925579.tif 000028