(57)【特許請求の範囲】
【請求項１】
メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続され、前記画像処理部が行う前記パイプライン処理の設定を行うシステム制御部を備えた画像処理装置であって、
前記処理モジュールのそれぞれは、
前記データを前記処理の単位ごとに一時的に記憶するデータバッファと、
前記システム制御部による処理内容の設定に応じて、前記処理の演算を行う演算部と、
前記システム制御部によるデータの転送経路の設定に応じて、前記データを前記演算部に転送する前記処理モジュール内の経路を選択すると共に、前記データバッファの動作を停止するか否かを制御する制御部と、
を備え、
前記画像処理部は、
前記システム制御部によるパイプライン構成の設定に応じて、前記パイプラインを構成する前記処理モジュール同士の接続を切り替える接続切り替え部、
をさらに備える、
ことを特徴とする画像処理装置。
【請求項２】
複数の前記処理モジュールの内、少なくとも１つの前記処理モジュールは、
予め定めた複数の前記処理の演算を排他的に行う前記演算部である第２の演算部を備えた第２の処理モジュールであり、
前記システム制御部は、
前記第２の処理モジュールが前記データに対して行う前記処理の内容、および前記第２の処理モジュールに隣接して接続された前記処理モジュールに備えた前記データバッファの記憶容量に基づいて、
前記転送経路の設定、および前記パイプライン構成の設定を行う、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記システム制御部は、
前記第２の処理モジュールが前記処理内容の設定に応じた前記処理の演算を行う際に余っている前記データバッファの記憶容量がある場合、前記第２の演算部と、隣接して接続された前記処理モジュールに備えた前記演算部とを１つの演算部であるものとし、
余っている前記記憶容量が、隣接して接続された前記処理モジュールに備えた前記データバッファの記憶容量の代わりに用いることができる容量である場合、隣接して接続された前記処理モジュールの前記転送経路の設定を、前記データを前記データバッファに記憶せずにスルーして前記演算部に転送する経路にすると共に、隣接して接続された前記処理モジュールに備えた前記データバッファの動作を停止させ、
余っている前記記憶容量が、隣接して接続された前記処理モジュールに備えた前記データバッファの記憶容量の代わりに用いることができない容量である場合、隣接して接続された前記処理モジュールの前記転送経路の設定を、前記データを前記データバッファに一旦記憶してから読み出して前記演算部に転送する経路にする、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記システム制御部は、
前記第２の処理モジュールに備えた前記データバッファの余っている記憶容量を、前記データバッファの全体の記憶容量と、前記第２の処理モジュールが前記処理内容の設定に応じた前記処理の演算を行う際に使用する前記データバッファの記憶容量とに基づいて算出する、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記処理モジュールおよび前記第２の処理モジュールは、
前記データバッファから読み出した前記データを転送する経路、および前記データバッファをスルーして前記データを転送する経路のいずれか一方の経路を、前記データを転送する経路として選択するセレクタ、
をさらに備える、
ことを特徴とする請求項２から請求項４のいずれか１の項に記載の画像処理装置。
【請求項６】
前記データは、
画像に含まれるそれぞれの画素に対応した画素データであり、
前記第２の演算部は、
前記画像に含まれるそれぞれの画素の座標の変換機能を利用した画像補間処理によって複数の前記処理の演算を排他的に行う演算部であり、
前記システム制御部は、
前記第２の処理モジュールに備えた前記データバッファの余っている記憶容量を、前記データバッファの全体の記憶容量と、前記第２の処理モジュールが前記画像補間処理の設定値に応じた前記画像補間処理の演算を行う際に使用する前記データバッファの記憶容量とに基づいて算出する、
ことを特徴とする請求項２から請求項５のいずれか１の項に記載の画像処理装置。
【請求項７】
前記画像補間処理は、
前記画像の大きさを変更するリサイズ処理と、
前記画像に含まれる歪曲収差の歪みを補正する歪補正処理と、
を少なくとも含む、
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第２の処理モジュールに隣接して接続された前記処理モジュールは、
前記パイプラインの構成において前記第２の処理モジュールの後段に接続された前記処理モジュールである、
ことを特徴とする請求項２から請求項７のいずれか１の項に記載の画像処理装置。
【請求項９】
メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続され、前記画像処理部が行う前記パイプライン処理の設定を行うシステム制御部を備えた画像処理装置における画像処理方法であって、
前記処理モジュールのそれぞれが、
前記システム制御部による処理内容の設定に応じて、前記処理の演算を行う演算ステップと、
前記システム制御部によるデータの転送経路の設定に応じて、前記処理の演算を行う演算部に前記データを転送する前記処理モジュール内の経路を選択すると共に、前記データを前記処理の単位ごとに一時的に記憶するデータバッファの動作を停止するか否かを制御する制御ステップと、
を含み、
前記画像処理部が、
前記システム制御部によるパイプライン構成の設定に応じて、前記パイプラインを構成する前記処理モジュール同士の接続を切り替える接続切り替えステップ、
をさらに含む、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置に搭載されるシステムＬＳＩなど、多くの画像処理装置では、接続された１つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を、内蔵している複数の処理ブロックで共有している。このようなシステムＬＳＩにおいては、内蔵している複数の処理ブロックが、システムＬＳＩ内部のデータバスに接続され、それぞれの処理ブロックは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によってＤＲＡＭへのアクセスを行う。
【０００３】
また、このようなシステムＬＳＩに備える処理ブロックの中には、複数の処理モジュールを備え、それぞれの処理モジュールを直列に接続することによってパイプライン処理を行う処理ブロックもある。例えば、撮像装置に備えたシステムＬＳＩでは、画像処理を行う画像処理部が、パイプライン処理を行う処理ブロックである。そして、画像処理部では、それぞれの画像処理を行う複数の画像処理モジュールを直列に接続したパイプライン処理によって、画像処理部における画像処理の高速化を実現している。一般的に、パイプライン処理を行う複数の処理モジュールを備えた処理ブロックでは、それぞれの処理モジュール間でデータの受け渡しを行うためのデータバッファが設けられ、このデータバッファによって、それぞれの処理モジュールにおける処理の遅延を吸収し、パイプライン処理が正常に行われるようにしている。
【０００４】
例えば、特許文献１には、処理モジュールであるそれぞれの処理ステージ間にデータバッファであるダブルバッファを設けたパイプライン構成の画像処理装置の技術が開示されている。特許文献１に開示された画像処理装置では、ダブルバッファを介してそれぞれの処理ステージ間でのデータの受け渡しを行うことにより、それぞれの処理ステージによる処理を順次行うパイプライン処理を実現している。
【０００５】
特許文献１に開示された画像処理装置では、前段の処理ステージが処理を行ったデータを一旦ダブルバッファに記憶し、ダブルバッファに記憶されたデータを後段の処理ステージが読み出すことによって、前段の処理ステージから後段の処理ステージにデータを受け渡している。つまり、特許文献１に開示された画像処理装置では、前段の処理ステージから後段の処理ステージにデータを受け渡す際に、前段の処理ステージによるダブルバッファへのデータの書き込みと、後段の処理ステージによるダブルバッファからのデータの読み出しとが必ず行われている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−３３４２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、処理モジュールでは、実行する処理ごとに、必要なデータバッファの記憶容量が異なる。このため、パイプライン処理を行う処理ブロックにおいては、それぞれの処理モジュールに備えるデータバッファの記憶容量を、それぞれの処理モジュールが実行する処理、それぞれの処理モジュールにデータが入力されてから処理を行った後のデータを出力するまでの遅延時間、前段および後段の処理モジュールに備えたバッファの記憶容量や遅延時間などに基づいて決定している。これは、それぞれの処理モジュールにおけるパイプライン処理が（一時）停止してしまわないように、つまり、パイプラインストール状態とならないようにするためである。
【０００８】
また、処理ブロックに備えた処理モジュールには、１つの処理を実行する処理モジュールに限らず、複数種類の処理を実行する機能を備えた処理モジュールもある。このような処理モジュールでは、実行するそれぞれの処理機能を考慮し、必要とする最大数のデータを記憶することができるだけの記憶容量を持ったデータバッファを備えることになる。なお、一般的には、データバッファの記憶容量は、予め定めた余裕を持った記憶容量に決定される。
【０００９】
しかしながら、複数種類の処理機能を備えた処理モジュールにおいては、常に最大数の記憶容量を必要とするとは限らず、実行する処理によっては、備えているデータバッファの全ての記憶容量を使用しないこともある。この場合、複数種類の処理機能を備えた処理モジュールは、必要以上に多くの記憶容量を備えた状態になっている。  
【００１０】
データバッファでは、データを書き込んだり読み出したりする動作に伴って電力を消費する。このため、特許文献１に開示された画像処理装置では、パイプライン処理を行うそれぞれの処理ステージにおいて、ダブルバッファへのデータの書き込みと、ダブルバッファからのデータの読み出しとのそれぞれの動作のときに、ダブルバッファの動作に伴った電力を消費することになる。つまり、特許文献１に開示された画像処理装置では、前段の処理ステージによるダブルバッファへの書き込みと、後段の処理ステージによるダブルバッファの読み出しとによって、ダブルバッファが電力を消費する。そして、特許文献１に開示された画像処理装置では、複数種類の処理機能を備えた処理ステージがある場合でも、この処理ステージが実行する処理によらずに、ダブルバッファが、動作に伴う電力を消費している。
【００１１】
本発明は、上記の課題認識に基づいてなされたものであり、パイプライン処理の性能を低下させることなく、消費電力を低減することができる画像処理装置および画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明の第１の態様によれば、画像処理装置は、メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続され、前記画像処理部が行う前記パイプライン処理の設定を行うシステム制御部を備えた画像処理装置であって、前記処理モジュールのそれぞれは、前記データを前記処理の単位ごとに一時的に記憶するデータバッファと、前記システム制御部による処理内容の設定に応じて、前記処理の演算を行う演算部と、前記システム制御部によるデータの転送経路の設定に応じて、前記データを前記演算部に転送する前記処理モジュール内の経路を選択すると共に、前記データバッファの動作を停止するか否かを制御する制御部と、を備え、前記画像処理部は、前記システム制御部によるパイプライン構成の設定に応じて、前記パイプラインを構成する前記処理モジュール同士の接続を切り替える接続切り替え部、をさらに備える。
【００１３】
本発明の第２の態様によれば、上記第１の態様の画像処理装置において、複数の前記処理モジュールの内、少なくとも１つの前記処理モジュールは、予め定めた複数の前記処理の演算を排他的に行う前記演算部である第２の演算部を備えた第２の処理モジュールであり、前記システム制御部は、前記第２の処理モジュールが前記データに対して行う前記処理の内容、および前記第２の処理モジュールに隣接して接続された前記処理モジュールに備えた前記データバッファの記憶容量に基づいて、前記転送経路の設定、および前記パイプライン構成の設定を行ってもよい。
【００１４】
本発明の第３の態様によれば、上記第２の態様の画像処理装置において、前記システム制御部は、前記第２の処理モジュールが前記処理内容の設定に応じた前記処理の演算を行う際に余っている前記データバッファの記憶容量がある場合、前記第２の演算部と、隣接して接続された前記処理モジュールに備えた前記演算部とを１つの演算部であるものとし、余っている前記記憶容量が、隣接して接続された前記処理モジュールに備えた前記データバッファの記憶容量の代わりに用いることができる容量である場合、隣接して接続された前記処理モジュールの前記転送経路の設定を、前記データを前記データバッファに記憶せずにスルーして前記演算部に転送する経路にすると共に、隣接して接続された前記処理モジュールに備えた前記データバッファの動作を停止させ、余っている前記記憶容量が、隣接して接続された前記処理モジュールに備えた前記データバッファの記憶容量の代わりに用いることができない容量である場合、隣接して接続された前記処理モジュールの前記転送経路の設定を、前記データを前記データバッファに一旦記憶してから読み出して前記演算部に転送する経路にしてもよい。
【００１５】
本発明の第４の態様によれば、上記第３の態様の画像処理装置において、前記システム制御部は、前記第２の処理モジュールに備えた前記データバッファの余っている記憶容量を、前記データバッファの全体の記憶容量と、前記第２の処理モジュールが前記処理内容の設定に応じた前記処理の演算を行う際に使用する前記データバッファの記憶容量とに基づいて算出してもよい。
【００１６】
本発明の第５の態様によれば、上記第２の態様から上記第４の態様のいずれか一態様の画像処理装置において、前記処理モジュールおよび前記第２の処理モジュールは、前記データバッファから読み出した前記データを転送する経路、および前記データバッファをスルーして前記データを転送する経路のいずれか一方の経路を、前記データを転送する経路として選択するセレクタ、をさらに備えてもよい。
【００１７】
本発明の第６の態様によれば、上記第２の態様から上記第５の態様のいずれか一態様の画像処理装置において、前記データは、画像に含まれるそれぞれの画素に対応した画素データであり、前記第２の演算部は、前記画像に含まれるそれぞれの画素の座標の変換機能を利用した画像補間処理によって複数の前記処理の演算を排他的に行う演算部であり、前記システム制御部は、前記第２の処理モジュールに備えた前記データバッファの余っている記憶容量を、前記データバッファの全体の記憶容量と、前記第２の処理モジュールが前記画像補間処理の設定値に応じた前記画像補間処理の演算を行う際に使用する前記データバッファの記憶容量とに基づいて算出してもよい。
【００１８】
本発明の第７の態様によれば、上記第６の態様の画像処理装置において、前記画像補間処理は、前記画像の大きさを変更するリサイズ処理と、前記画像に含まれる歪曲収差の歪みを補正する歪補正処理と、を少なくとも含んでもよい。
【００１９】
本発明の第８の態様によれば、上記第２の態様から上記第７の態様のいずれか一態様の画像処理装置において、前記第２の処理モジュールに隣接して接続された前記処理モジュールは、前記パイプラインの構成において前記第２の処理モジュールの後段に接続された前記処理モジュールであってもよい。
【００２０】
本発明の第９の態様によれば、画像処理方法は、メモリと、入力されたデータに対して予め定めた処理を行う複数の処理モジュールが直列に接続されたパイプラインが構成され、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部とがデータバスに接続され、前記画像処理部が行う前記パイプライン処理の設定を行うシステム制御部を備えた画像処理装置における画像処理方法であって、前記処理モジュールのそれぞれが、前記システム制御部による処理内容の設定に応じて、前記処理の演算を行う演算ステップと、前記システム制御部によるデータの転送経路の設定に応じて、前記処理の演算を行う演算部に前記データを転送する前記処理モジュール内の経路を選択すると共に、前記データを前記処理の単位ごとに一時的に記憶するデータバッファの動作を停止するか否かを制御する制御ステップと、を含み、前記画像処理部が、前記システム制御部によるパイプライン構成の設定に応じて、前記パイプラインを構成する前記処理モジュール同士の接続を切り替える接続切り替えステップ、をさらに含む。
【発明の効果】
【００２１】
本発明によれば、パイプライン処理の性能を低下させることなく、消費電力を低減することができる画像処理装置および画像処理方法を提供することができるという効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態における画像処理装置の概略構成を示したブロック図である。
【図２】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュール間のデータの転送方法の一例を示した図である。
【図３】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの概略構成を示したブロック図である。
【図４】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの概略構成を示したブロック図である。
【図５】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールに備えた入力バッファの一例を説明する図である。
【図６】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの接続の一例を示した図である。
【図７】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの動作の一例を示したタイミングチャートである。
【図８】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの別の接続の一例を示した図である。
【図９】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールの別の動作の一例を示したタイミングチャートである。
【図１０】本発明の実施形態の画像処理装置に備えた画像処理部における画像処理モジュールに備えた入力バッファの記憶容量と画像処理に用いる入力バッファの記憶容量との関係の一例を説明する図である。
【図１１】本発明の実施形態の画像処理装置に備えた画像処理部においてパイプラインを構成する際の処理手順を示したフローチャートである。
【図１２】本発明の実施形態の画像処理装置に備えた画像処理部において異なる設定をした場合の画像処理モジュールの動作の一例を示したタイミングチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本発明の実施形態における画像処理装置の概略構成を示したブロック図である。図１に示した画像処理装置１は、ＤＭＡバス１０と、ＤＲＡＭ２０と、画像処理部３０と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）バス６０と、ＣＰＵ５０と、を備えている。また、画像処理部３０は、接続切り替え部３１と、入力ＤＭＡモジュール３２と、５つの画像処理モジュール３３−１〜画像処理モジュール３３−５と、出力ＤＭＡモジュール３４と、を備えている。画像処理装置１は、例えば、静止画用カメラなどの撮像装置に備えられる。
【００２４】
なお、図１においては、画像処理装置１に備えられ、ＤＭＡバス１０およびＣＰＵバス６０のいずれか一方または両方に接続される他の構成要素の図示を省略している。画像処理装置１に備える他の構成要素としては、例えば、撮像装置に備えたレンズによって結像された被写体の光学像を光電変換する固体撮像素子を制御する撮像処理部、画像処理部３０によって処理された画像のデータを記録するための記録処理を行う記録処理部、画像処理部３０によって処理された画像のデータを画像処理装置１に備えた表示部に表示させるための表示処理部などがある。
【００２５】
ＤＲＡＭ２０は、ＤＭＡバス１０に接続され、撮像装置において処理される様々なデータを記憶する。例えば、撮像装置に備えた図示しない固体撮像素子から出力された静止画像のデータを記憶する。画像処理装置１においては、ＤＲＡＭ２０に記憶された１フレームの静止画像のデータを、予め定めた複数の小さなブロックに分割し、画像処理部３０が、それぞれのブロックごとに画像処理を行う。
【００２６】
ＣＰＵ５０は、ＣＰＵバス６０に接続され、画像処理装置１に備えたそれぞれの構成要素や撮像装置に備えた構成要素を制御するシステム制御部である。ＣＰＵ５０は、それぞれの構成要素を制御するためのプログラムやデータに応じて、撮像装置の全体を制御する。なお、ＣＰＵ５０が撮像装置の全体を制御するためのプログラムやデータは、ＤＭＡバス１０に接続されたＤＲＡＭ２０から、ＤＭＡバス１０とＣＰＵバス６０とを接続する不図示のバス接続部を介して読み出す構成であってもよい。
【００２７】
画像処理部３０は、図１に示したように、入力ＤＭＡモジュール３２、画像処理モジュール３３−１〜画像処理モジュール３３−５、および出力ＤＭＡモジュール３４が直列に接続されたパイプライン処理によって、画像処理装置１における画像処理を順次行う。画像処理部３０が行う画像処理の内容や動作は、ＣＰＵバス６０を介して接続されたＣＰＵ５０によって制御（設定）される。例えば、画像処理部３０が行う画像処理の処理モードや、画像処理を行う際のフィルタ係数や歪み係数などの値（パラメータ）、画像処理部３０内のデータバッファの構成や動作などが、ＣＰＵ５０によって設定される。
【００２８】
以下の説明においては、１フレームの静止画像のデータを分割したそれぞれのブロックに含まれるデータを、「ブロック画像データ」という。画像処理部３０は、ブロック画像データに含まれるそれぞれの画素のデータ（以下、「画素データ」という）を、例えば、予め定めた数の列ごとにＤＲＡＭ２０から読み出し、読み出した画素データを１つの処理単位として画像処理を行う。以下の説明においては、画像処理部３０が画像処理を行う１つの処理単位の画素データにおいて、同じ列に含まれる連続した複数の画素データを、「ユニットライン」という。
【００２９】
また、画像処理部３０は、１フレームの静止画像のデータに対して行う画像処理を選択する機能を備えている。より具体的には、画像処理部３０は、画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれによる画像処理を順次行うこともできるが、画像処理モジュール３３−１〜画像処理モジュール３３−５のいずれか１つまたは複数によって画像処理を行ったり、画像処理モジュール３３−１〜画像処理モジュール３３−５の順番を変更して画像処理を行ったりすることができる。以下の説明においては、画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれを区別せずに表すときには、「画像処理モジュール３３」という。
【００３０】
接続切り替え部３１は、画像処理部３０に備えたそれぞれの構成要素が出力した画像データの出力先を切り替える、つまり、画像処理部３０に備えたそれぞれの構成要素同士の接続を切り替える。例えば、画像処理部３０によって画像処理モジュール３３−２のみの画像処理を行う場合には、入力ＤＭＡモジュール３２の出力端子と画像処理モジュール３３−２の入力端子とを接続し、画像処理モジュール３３−２の出力端子と出力ＤＭＡモジュール３４の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。また、例えば、画像処理部３０によって画像処理モジュール３３−５、画像処理モジュール３３−１の順番で画像処理を行う場合には、入力ＤＭＡモジュール３２の出力端子と画像処理モジュール３３−５の入力端子とを接続し、画像処理モジュール３３−５の出力端子と画像処理モジュール３３−１の入力端子とを接続し、画像処理モジュール３３−１の出力端子と出力ＤＭＡモジュール３４の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。なお、接続切り替え部３１は、ＣＰＵバス６０を介して接続されたＣＰＵ５０からの制御に応じて、画像処理部３０に備えたそれぞれの構成要素の接続の切り替えを行う。
【００３１】
入力ＤＭＡモジュール３２は、ＤＲＡＭ２０に記憶されているブロック画像データに含まれるそれぞれの画素データをユニットラインごとに読み出し、読み出した画素データを、接続切り替え部３１を介して、次に画像処理を行う処理モジュールであるいずれかの画像処理モジュール３３に出力するための処理モジュールである。入力ＤＭＡモジュール３２は、ＣＰＵバス６０を介して接続されたＣＰＵ５０からの制御に応じて、ＤＭＡバス１０を介してＤＲＡＭ２０から画素データを読み出し、読み出した画素データを接続切り替え部３１によって接続が切り替えられた接続先の画像処理モジュール３３に出力する。
【００３２】
なお、入力ＤＭＡモジュール３２は、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。このため、入力ＤＭＡモジュール３２は、ＤＭＡバス１０を介してＤＲＡＭ２０から読み出した画素データをデータバッファに一時記憶し、データバッファに一時記憶した画素データを、接続切り替え部３１によって接続が切り替えられた接続先の画像処理モジュール３３に出力することもできる。
【００３３】
画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれは、接続切り替え部３１によって接続が切り替えられた接続先の入力ＤＭＡモジュール３２または画像処理モジュール３３から、接続切り替え部３１を介して入力された画素データに対して予め定めた種々のデジタル的な画像処理を行う処理モジュールである。画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれは、ＣＰＵバス６０を介して接続されたＣＰＵ５０からの制御に応じて、接続切り替え部３１を介して入力された画素データに対して画像処理を施し、画像処理を施した画素データを、接続切り替え部３１によって接続が切り替えられた接続先の画像処理モジュール３３または出力ＤＭＡモジュール３４に出力する。
【００３４】
画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれが行う画像処理には、種々の画像処理がある。例えば、それぞれの画素データに対応するＹ（輝度）信号とＣ（色）信号とを生成するＹＣ処理、それぞれの画素データに含まれるノイズを低減するノイズ低減処理、それぞれの画素データで表される画像における高周波成分の抑圧を行うＬＰＦ処理、画像における被写体の輪郭を強調するエッジ強調処理などが含まれている。また、例えば、ブロック画像データに含まれるそれぞれの画素の位置（座標）の変換を伴う画像補間処理なども含まれている。この画像補間処理には、例えば、画像の大きさ（サイズ）を変更（拡大や縮小）するリサイズ処理、画像に含まれる倍率色収差や歪曲収差などの歪みの補正を行う歪補正処理、台形補正などの画像の形状の補正を行う形状補正処理など、種々の処理が含まれている。このように、画像処理モジュール３３には、予め定めた１つの画像処理の機能を備えた構成の画像処理モジュール３３もあれば、同じ処理機能（上述した例では、座標の変換機能）を利用することによって、複数の画像処理を排他的に行う構成の画像処理モジュール３３もある。
【００３５】
なお、画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれにも、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。そして、画像処理モジュール３３−１〜画像処理モジュール３３−５のそれぞれでは、接続切り替え部３１を介して入力された画素データをデータバッファに一時記憶するか否かが、ＣＰＵ５０によって制御される。例えば、ＣＰＵ５０は、いずれかの画像処理モジュール３３に備えたデータバッファを、その画像処理モジュール３３の前段または後段に接続された他の画像処理モジュール３３のデータバッファとして利用するように制御する。つまり、ＣＰＵ５０は、画像処理モジュール３３自身に備えたデータバッファを、他の画像処理モジュール３３に備えたデータバッファと共有するように考えて制御することができる。なお、ＣＰＵ５０によるそれぞれの画像処理モジュール３３に備えたデータバッファの制御方法に関する詳細な説明は、後述する。
【００３６】
なお、以下の説明においては、画像処理を施した後の画素データを、ＤＲＡＭ２０に記憶されている画像処理を行う対象の画素データと区別して表す場合には、「処理画素データ」という。
【００３７】
出力ＤＭＡモジュール３４は、接続切り替え部３１によって接続が切り替えられた接続先の画像処理モジュール３３から、接続切り替え部３１を介して入力された処理画素データを、ＤＲＡＭ２０に書き込む（記憶する）ための処理モジュールである。出力ＤＭＡモジュール３４は、ＣＰＵバス６０を介して接続されたＣＰＵ５０からの制御に応じて、接続切り替え部３１を介して入力された処理画素データを、ＤＭＡバス１０を介してＤＲＡＭ２０に出力する。
【００３８】
なお、出力ＤＭＡモジュール３４も、予め定めた数のユニットライン分の処理画素データを一時的に記憶することができるデータバッファを備えている。このため、出力ＤＭＡモジュール３４は、接続切り替え部３１を介して入力された処理画素データをデータバッファに一時記憶し、データバッファに一時記憶した処理画素データを、ＤＭＡバス１０を介してＤＲＡＭ２０に出力することもできる。
【００３９】
このように、画像処理部３０では、それぞれの処理モジュールが、１フレームの静止画像のデータをブロック画像データに分割し、ＣＰＵバス６０を介して接続されたＣＰＵ５０からの制御に応じた画像処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次を行うことによって、それぞれのブロック画像データに対する一連の画像処理を行う。
【００４０】
次に、画像処理部３０に備えたそれぞれの処理モジュールの構成および動作について説明する。まず、画像処理部３０に備えたそれぞれの処理モジュール間の画素データの受け渡し方法について説明する。
【００４１】
図２は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール３３間のデータの転送方法の一例を示した図である。図２には、画像処理モジュール３３−１が画像処理を行った処理画素データを、画像処理モジュール３３−２に出力する場合の一例を示している。なお、上述したように、画像処理部３０においては、それぞれの処理モジュールが出力する画素データは、接続切り替え部３１を介して次に処理を行う処理モジュールに出力される。しかし、図２においては、接続切り替え部３１の図示を省略し、画像処理モジュール３３−１から画像処理モジュール３３−２に、処理画素データを直接出力するものとして示している。
【００４２】
上述したように、画像処理部３０では、それぞれの処理モジュールが、複数のユニットラインを１つの処理単位として画像処理を行う。このため、画像処理部３０に備えたそれぞれの処理モジュール間での画素データの受け渡しも、１つの処理単位ごとに行われる。図２には、前段の画像処理モジュール３３−１が、８つのユニットラインのそれぞれの処理画素データを１つの処理単位として、後段の画像処理モジュール３３−２に出力する場合を示している。なお、１つのユニットラインには、画像処理を施した同じ列に含まれる連続した複数の処理画素データが含まれている。
【００４３】
なお、図２においては、画像処理モジュール３３−１と画像処理モジュール３３−２との間の処理画素データの受け渡し方法（転送方法）の一例を示しているが、入力ＤＭＡモジュール３２と画像処理モジュール３３との間の画素データの受け渡し方法や、画像処理モジュール３３と出力ＤＭＡモジュール３４との間の処理画素データの受け渡し方法も、図２と同様である。また、図２においては、８つのユニットラインのそれぞれの処理画素データを１つの処理単位として受け渡している一例を示しているが、それぞれの処理モジュールの間で受け渡しを行うユニットラインの数は、図２に示した数、つまり、８つに限定されるものではない。
【００４４】
＜第１の構成＞
次に、画像処理部３０に備えたそれぞれの処理モジュールの第１の構成について説明する。第１の構成の画像処理モジュール３３は、予め定めた１つの画像処理の演算機能を備えた構成の画像処理モジュール３３である。図３は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール３３の概略構成を示したブロック図である。図３には、第１の構成の画像処理モジュール３３における基本的な構成を示している。図３に示した第１の構成の画像処理モジュール３３は、入力バッファ３３１と、セレクタ３３２と、演算部３３３と、制御部３３４と、を備えている。また、制御部３３４は、設定レジスタ３３４１を備えている。
【００４５】
入力バッファ３３１は、画像処理モジュール３３に入力された入力データを、一時的に記憶するデータバッファである。入力バッファ３３１は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリで構成される。入力バッファ３３１は、前段の処理モジュールから入力された予め定めた数のユニットライン分の画素データを、入力データとして記憶することができる記憶容量をもっている。入力バッファ３３１は、制御部３３４から入力されたバッファ制御信号に応じて、入力された入力データを一時記憶する。
【００４６】
画像処理モジュール３３では、入力された入力データ（画素データ）に対して施す画像処理によって必要なユニットラインの数が異なる。それぞれの画像処理モジュール３３に備える入力バッファ３３１が一時記憶するユニットライン数、つまり、入力バッファ３３１の記憶容量は、それぞれの画像処理モジュール３３が行う画像処理の内容、それぞれの画像処理モジュール３３に画素データが入力されてから画像処理を施した後の画素データを出力するまでの遅延時間、前段および後段に接続された処理モジュールに備えた入力バッファ３３１の記憶容量や遅延時間などに基づいて予め決定されている。
【００４７】
なお、入力バッファ３３１は、予め定めた数のユニットライン分の画素データ（入力データ）を記憶する記憶容量の組を２つ備え、一方の記憶容量の組への画素データの書き込みと、他方の記憶容量の組からの画素データの読み出しとを交互に切り替えることによって、１つの処理単位の画素データの入出力を同時期に行うことができるように動作する、いわゆる、ダブルバッファで構成されていてもよい。
【００４８】
セレクタ３３２は、演算部３３３に出力する画素データを選択する選択部である。セレクタ３３２は、制御部３３４から入力されたスルー選択信号に応じて、入力バッファ３３１に一時記憶された入力データ（画素データ）、または画像処理モジュール３３に現在入力されている入力データ（画素データ）のいずれか一方の入力データ（画素データ）を、演算部３３３に出力する。つまり、セレクタ３３２は、前段の処理モジュールから入力されて入力バッファ３３１に一時記憶された画素データ、または前段の処理モジュールから現在入力されているそのままの画素データのいずれか一方の画素データを、演算部３３３に転送する。
【００４９】
演算部３３３は、入力された画素データに対して予め定めた種々のデジタル的な画像処理の演算を行う。演算部３３３は、制御部３３４から入力されたモード選択信号に応じた画像処理の演算を行う。演算部３３３は、画像処理の演算を行って生成した処理画素データを、出力データとして画像処理モジュール３３の外部に出力する。つまり、演算部３３３は、生成した処理画素データを、接続切り替え部３１を介して他の画像処理モジュール３３または出力ＤＭＡモジュール３４に出力する。
【００５０】
制御部３３４は、画像処理モジュール３３の前段に接続された他の処理モジュールとの間での入力データ（画素データ）と、後段に接続された他の処理モジュールとの間での出力データ（処理画素データ）との受け渡しの制御を行う。このとき、制御部３３４は、画像処理モジュール３３の動作状態を表す状態通知信号を、前段および後段の処理モジュールに出力する。
【００５１】
また、制御部３３４は、ＣＰＵ５０から入力された設定信号によって設定レジスタ３３４１に記憶された設定に基づいて、制御部３３４自身を備えた画像処理モジュール３３内のそれぞれの構成要素の動作を制御する。設定レジスタ３３４１には、演算部３３３が行う画像処理の演算を行う際の処理モードやパラメータ、セレクタ３３２を介して演算部３３３に入力する入力データ（画素データ）を選択するパラメータなどが、ＣＰＵ５０によって記憶（設定）される。そして、制御部３３４は、ＣＰＵ５０によって設定レジスタ３３４１に設定されたセレクタ３３２のパラメータに応じた入力データ（画素データ）の経路を選択するためのスルー選択信号を、セレクタ３３２に出力する。これにより、セレクタ３３２は、スルー選択信号に応じた経路で、入力データ（画素データ）を演算部３３３に転送する。また、制御部３３４は、ＣＰＵ５０によって設定レジスタ３３４１に設定された演算部３３３の処理モードやパラメータに応じた動作をするためのモード選択信号を、演算部３３３に出力する。これにより、演算部３３３は、セレクタ３３２を介して入力された入力データ（画素データ）に対して、モード選択信号に応じた画像処理の演算を行う。
【００５２】
より具体的には、ＣＰＵ５０によって設定レジスタ３３４１に設定されたセレクタ３３２のパラメータが、画像処理モジュール３３に入力された入力データ（画素データ）を一時記憶することを表している場合、制御部３３４は、入力バッファ３３１に一時記憶された入力データ（画素データ）を演算部３３３に出力する経路を選択するためのスルー選択信号を、セレクタ３３２に出力する。これにより、セレクタ３３２は、制御部３３４によって入力バッファ３３１に一時記憶された画素データが読み出された際に、読み出された画素データを演算部３３３に転送する。そして、制御部３３４は、入力バッファ３３１に空いている記憶容量があるか否かによって、入力バッファ３３１の動作を制御する。
【００５３】
入力バッファ３３１に空いている記憶容量がある場合、入力バッファ３３１は、画像処理モジュール３３に入力された入力データ（画素データ）を一時記憶することができる状態である。この場合、制御部３３４は、前段の処理モジュールからの入力データを受け付けることができる状態であることを表す状態通知信号として、入力データ（画素データ）の出力を要求するデータリクエスト信号を、前段の処理モジュールに出力する。そして、制御部３３４は、出力したデータリクエスト信号に応じて前段の処理モジュールから入力データ（画素データ）を出力することを表すデータアクノリッジ信号が入力されると、データアクノリッジ信号に対応する入力データ（画素データ）を受け取って一時記憶する（書き込む）ように制御するためのバッファ制御信号を生成し、生成したバッファ制御信号を入力バッファ３３１に出力する。このとき、制御部３３４は、前段の処理モジュールから入力データ（画素データ）と共に入力されたデータ有効信号に基づいて、現在入力された入力データ（画素データ）が有効なデータであるか否かを判定する。このデータ有効信号は、ユニットラインに含まれるそれぞれの画素データが、有効な画素データであるか否かを表す信号である。そして、制御部３３４は、有効な入力データ（画素データ）のみが入力バッファ３３１に書き込まれるタイミングのバッファ制御信号を生成する。これにより、演算部３３３は、制御部３３４によって入力バッファ３３１に一時記憶された画素データが読み出された際に、入力バッファ３３１に一時記憶された有効な画素データに対して、モード選択信号に応じた画像処理の演算を行うことができる。
【００５４】
また、制御部３３４は、後段の処理モジュールから入力されたデータリクエスト信号に応じて、演算部３３３が画像処理の演算を行った出力データ（処理画素データ）を出力することを表すデータアクノリッジ信号を、後段の処理モジュールに出力する。このとき、制御部３３４は、入力バッファ３３１に一時記憶された入力データ（画素データ）を読み出すように制御するためのバッファ制御信号を生成し、生成したバッファ制御信号を入力バッファ３３１に出力する。これにより、入力バッファ３３１に一時記憶された有効な入力データ（画素データ）が、セレクタ３３２を介して演算部３３３に入力される。そして、演算部３３３は、入力された有効な画素データに対してモード選択信号に応じた画像処理の演算を行い、画像処理の演算を行った後の処理画素データを、出力データとして後段の処理モジュールに出力する。なお、演算部３３３が画像処理の演算を行って生成したユニットラインに含まれるそれぞれの出力データ（処理画素データ）が、有効な処理画素データであるか否かを表すデータ有効信号は、演算部３３３が画像処理の演算を行う際に生成して処理画素データと共に出力する。しかし、このデータ有効信号は、制御部３３４が、演算部３３３に画素データが入力されてから処理画素データが出力されるまでの遅延時間（以下、「レイテンシ」という）に基づいて生成して出力してもよい。
【００５５】
一方、入力バッファ３３１に空いている記憶容量がない場合、入力バッファ３３１は、画像処理モジュール３３に入力された入力データ（画素データ）を一時記憶することができない状態である。この場合、制御部３３４は、前段の処理モジュールからの入力データを受け付けることができない状態であることを表す状態通知信号として、入力データ（画素データ）の出力を要求しないことを表す信号を、前段の処理モジュールに出力する。なお、このときの状態通知信号は、前段の処理モジュールに入力データ（画素データ）の出力を要求しないことを、入力データ（画素データ）の出力を要求するデータリクエスト信号の論理レベルで表してもよいし、例えば、パイプライン処理が（一時）停止していることを表すパイプラインストール信号など、データリクエスト信号と異なる信号で表してもよい。そして、制御部３３４は、入力バッファ３３１に一時記憶している画素データを保持するように制御するためのバッファ制御信号を生成し、生成したバッファ制御信号を入力バッファ３３１に出力する。
【００５６】
また、ＣＰＵ５０によって設定レジスタ３３４１に設定されたセレクタ３３２のパラメータが、画像処理モジュール３３に入力された入力データ（画素データ）を一時記憶しないことを表している場合、制御部３３４は、前段の処理モジュールから入力された入力データ（画素データ）を入力バッファ３３１に一時記憶せずに直接、演算部３３３に出力する経路を選択するためのスルー選択信号を、セレクタ３３２に出力する。つまり、制御部３３４は、前段の処理モジュールから入力された入力データ（画素データ）を、入力バッファ３３１をスルーして演算部３３３に転送する経路を選択するためのスルー選択信号を、セレクタ３３２に出力する。これにより、セレクタ３３２は、現在入力されている入力データ（画素データ）をそのまま、演算部３３３に転送する。このとき、制御部３３４は、前段の処理モジュールから入力データ（画素データ）と共に入力されたデータ有効信号に基づいて、現在入力された入力データ（画素データ）が有効なデータであるか否かを判定し、データ有効信号が有効であることを表している入力データ（画素データ）のタイミングを、演算部３３３に通知する。なお、制御部３３４は、有効な入力データ（画素データ）のタイミングを通知するために、入力されたデータ有効信号を演算部３３３に出力してもよい。これにより、演算部３３３は、直接入力された有効な画素データに対してモード選択信号に応じた画像処理の演算を行い、画像処理の演算を行った後の処理画素データを、出力データとして後段の処理モジュールに出力する。また、制御部３３４は、後段の処理モジュールから入力されたデータリクエスト信号に応じたデータアクノリッジ信号を、後段の処理モジュールに出力する。なお、演算部３３３が画像処理の演算を行った出力データ（処理画素データ）が、有効な処理画素データであるか否かを表すデータ有効信号は、ＣＰＵ５０によって設定レジスタ３３４１に設定されたセレクタ３３２のパラメータが、画像処理モジュール３３に入力された入力データ（画素データ）を一時記憶することを表している場合と同様である。
【００５７】
このような構成によって画像処理部３０に備えた第１の構成の画像処理モジュール３３は、ＣＰＵ５０からの制御に応じて、前段の処理モジュールからの入力データ（画素データ）の受け付けと、画像処理の演算を行う画素データの選択（切り替え）と、演算部３３３による画像処理の演算とを行う。
【００５８】
＜第２の構成＞
次に、画像処理部３０に備えたそれぞれの処理モジュールの第２の構成について説明する。上述したように、画像処理部３０に備えた画像処理モジュール３３には、予め定めた１つの画像処理の機能を備えた構成の画像処理モジュール３３のみではなく、座標の変換機能などの同じ処理機能を利用することによって、複数の画像処理を排他的に行う構成の画像処理モジュール３３もある。第２の構成の画像処理モジュール３３は、座標の変換機能を利用することによって種々の画像補間処理を排他的に行う、複数の画像処理の演算機能を備えた構成の画像処理モジュール３３である。以下の説明においては、第２の構成の画像処理モジュール３３を、「画像処理モジュール４３」という。
【００５９】
図４は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール４３の概略構成を示したブロック図である。図４には、第２の構成の画像処理モジュール４３における基本的な構成を示している。図４に示した第２の構成の画像処理モジュール４３は、入力バッファ４３１と、セレクタ３３２と、演算部４３３と、制御部４３４と、を備えている。また、演算部４３３は、座標算出部４３３１と、補間演算部４３３２と、を備えている。また、制御部４３４は、設定レジスタ３３４１と、バッファリードアドレス生成部４３４２と、を備えている。
【００６０】
画像処理モジュール４３は、複数の画像処理の演算機能を備えている点が第１の構成の画像処理モジュール３３と異なるが、画像処理モジュール４３も、第１の構成の画像処理モジュール３３と同様に、画像処理部３０においてパイプライン処理を行う構成要素である。このため、第２の構成の画像処理モジュール４３の構成要素には、図３に示した第１の構成の画像処理モジュール３３に備えた構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、画像処理モジュール４３の構成要素において、第１の構成の画像処理モジュール３３の構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素における異なる点のみを説明する。
【００６１】
入力バッファ４３１は、第１の構成の画像処理モジュール３３に備えた入力バッファ３３１と同様に、前段の処理モジュールから入力された予め定めた数のユニットライン分の入力データ（画素データ）を記憶することができる記憶容量をもったデータバッファであり、制御部４３４から入力されたバッファ制御信号（バッファライト信号）に応じて、入力された入力データを一時記憶する。また、入力バッファ４３１は、第１の構成の画像処理モジュール３３に備えた入力バッファ３３１と同様に、制御部４３４から入力されたバッファ制御信号（バッファリード信号）に応じて一時記憶された画素データを読み出してセレクタ３３２に出力する。
【００６２】
画像処理モジュール４３でも、第１の構成の画像処理モジュール３３に備えた入力バッファ３３１と同様に、入力バッファ４３１が一時記憶するユニットライン数（入力バッファ４３１の記憶容量）が予め決定されている。ただし、画像処理モジュール４３は、複数の画像処理の演算機能によって、種々の画像補間処理を排他的に行う。このため、画像処理モジュール４３では、画像処理モジュール４３が実行するそれぞれの画像処理（画像補間処理）ごとに、必要とするユニットライン数、つまり、入力バッファ４３１の記憶容量が異なる。また、画像処理モジュール４３が同じ画像処理を実行する場合でも、画像処理（画像補間処理）の設定値（パラメータ）によって、必要とするユニットライン数（入力バッファ４３１の記憶容量）が異なる。
【００６３】
このため、画像処理モジュール４３では、画像処理モジュール４３が実行するそれぞれの画像処理（画像補間処理）において用いるユニットライン数の画素データを記憶することができるようにするため、必要とする最大のユニットライン数に対応する記憶容量が、入力バッファ４３１の記憶容量として予め決定されている。
【００６４】
ここで、入力バッファ４３１が一時記憶するユニットライン数、すなわち、入力バッファ４３１の記憶容量の一例について説明する。図５は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール４３に備えた入力バッファ４３１の一例を説明する図である。図５には、座標の変換機能を利用することによって、リサイズ処理、歪補正処理、形状補正処理などの画像補間処理を行うことができる構成の画像処理モジュール４３に備えた入力バッファ４３１の一例を模式的に示している。
【００６５】
上述したように、入力バッファ４３１は、予め定めた数のユニットライン分の画素データを記憶することができる記憶容量を備えている。図５（ａ）には、列方向に連続した複数の画素データのそれぞれを一時記憶する１つのユニットラインに対応したユニットライン記憶領域４３１１を、行方向に複数並べた構成の入力バッファ４３１を示している。なお、図５（ａ）に示した入力バッファ４３１の構成は、第１の構成の画像処理モジュール３３に備えた入力バッファ３３１と同様である。
【００６６】
入力バッファ４３１の記憶容量は、上述したように、複数の画像処理の演算機能を備えた構成の画像処理モジュール４３が実行するそれぞれの画像処理において必要とする最大のユニットライン数に対応する記憶容量に決められる。しかし、画像処理モジュール４３では、実行する画像処理によって、必要なユニットライン数が異なる。図５（ｂ−１）〜図５（ｂ−３）と図５（ｃ−１）および図５（ｃ−２）とには、画像処理モジュール４３が実行する画像処理において必要なユニットライン数の一例を模式的に示している。
【００６７】
例えば、画像処理モジュール４３が歪曲収差の歪補正処理を行う場合、歪補正処理を行った後の１つのユニットライン分の処理画素データを出力するために必要な画素データのユニットライン数は、撮像装置に備えたレンズの歪曲収差の特性に基づいてＣＰＵ５０によって設定レジスタ３３４１に設定された歪み係数の値（パラメータ）に応じて決まる。画像処理モジュール４３が歪曲収差の歪補正処理を行う場合、入力バッファ４３１に一時記憶された画素データを歪み係数の値に基づいて用いることによって、歪曲収差の歪補正処理を行った１つのユニットライン分の画素データを生成する。このため、画像処理モジュール４３が歪曲収差の歪補正処理を行う場合には、図５（ｂ−１）〜図５（ｂ−３）に示したように、画像処理モジュール４３に備えた入力バッファ４３１が一時記憶することができるユニットライン数の内、歪み係数の値に応じた予め定めた数のユニットライン数の画素データを記憶するユニットライン記憶領域４３１１が使用される。図５（ｂ−１）〜図５（ｂ−３）には、画像処理モジュール４３が歪曲収差の歪補正処理を行って１つのユニットライン分の処理画素データを生成する際に入力バッファ４３１から読み出す画素データの入力バッファ４３１内の位置の一例を模式的に示している。
【００６８】
歪み係数の値が小さい場合、すなわち、レンズの歪みが少ない場合には、画像処理モジュール４３は、図５（ｂ−１）に示した位置の画素データを用いることによって歪曲収差の歪補正処理を行った１つのユニットライン分の処理画素データを生成することができる。つまり、レンズの歪みが少ない場合には、少ないユニットライン数の画素データを用いて、入力された入力データ（画素データ）に対して歪曲収差の歪補正処理を行うことができる。しかし、歪曲収差の歪補正処理では、歪み係数の値が大きくなるにつれて、すなわち、レンズの歪みが大きくなるにつれて、歪曲収差の歪補正処理に用いるユニットライン数が多くなる。つまり、図５（ｂ−２）、図５（ｂ−３）に示したように、歪曲収差の歪補正処理に用いる画素データの位置の範囲が、歪み係数の値が大きくなるにつれて広がるため、必要なユニットライン数が多くなる。
【００６９】
また、例えば、画像処理モジュール４３がリサイズ処理を行う場合、リサイズ処理を行った後の１つのユニットライン分の処理画素データを出力するために必要な画素データのユニットライン数は、ＣＰＵ５０によって設定レジスタ３３４１に設定されたリサイズ率の値（パラメータ）に応じて決まる。画像処理モジュール４３がリサイズ処理を行う場合、入力バッファ４３１に一時記憶された画素データをリサイズ率のパラメータに基づいた間隔ごとに用いることによって、リサイズ処理を行った１つのユニットライン分の処理画素データを生成する。このため、画像処理モジュール４３がリサイズ処理を行う場合には、図５（ｃ−１）および図５（ｃ−２）に示したように、画像処理モジュール４３に備えた入力バッファ４３１が一時記憶することができるユニットライン数の内、リサイズ率に応じた予め定めた数のユニットライン数の画素データを記憶するユニットライン記憶領域４３１１のみが使用される。図５（ｃ−１）および図５（ｃ−２）には、画像処理モジュール４３がリサイズ処理を行って１つのユニットライン分の処理画素データを生成する際に入力バッファ４３１から読み出す画素データの入力バッファ４３１内の位置の一例を模式的に示している。
【００７０】
例えば、画像を縮小する場合において、リサイズ率の値が小さい場合、すなわち、画像の縮小率が小さい場合には、画像処理モジュール４３は、図５（ｃ−１）に示したような、少ないユニットライン数の範囲内の予め定めた位置の画素データを読み出してリサイズ処理を行うことによって、入力された入力データ（画素データ）に対してリサイズ処理を行った１つのユニットライン分の処理画素データを生成することができる。一方、リサイズ率の値が大きい場合、すなわち、画像の縮小率が大きい場合には、リサイズ処理に用いるユニットライン数の範囲が大きくなる。つまり、画像処理モジュール４３は、図５（ｃ−２）に示したように、より多くのユニットライン数の範囲内の予め定めた位置の画素データを読み出すことによって、リサイズ処理を行った１つのユニットライン分の処理画素データを生成することになる。
【００７１】
このように、複数の画像処理の演算機能を備えた構成の画像処理モジュール４３では、実行するそれぞれの画像処理において必要なユニットライン数が異なるため、それぞれの画像処理が必要とする最大のユニットライン分の画素データを記憶することができる記憶容量が、入力バッファ４３１の記憶容量として予め決定されている。
【００７２】
なお、画像処理モジュール４３が倍率色収差の歪補正処理を行う場合、台形補正などの形状補正処理を行う場合、また、その他のフィルタ処理を行う場合などにおける入力バッファ４３１の記憶容量の決定方法も図５に示した一例と同様に考えることができる。
【００７３】
なお、入力バッファ４３１も、第１の構成の画像処理モジュール３３に備えた入力バッファ３３１と同様に、ダブルバッファで構成されていてもよい。
【００７４】
セレクタ３３２は、制御部４３４から入力されたスルー選択信号に応じて、入力バッファ４３１から読み出された画素データ、または前段の処理モジュールから現在入力されているそのままの入力データ（画素データ）のいずれか一方の画素データを、演算部４３３に転送する。
【００７５】
演算部４３３は、入力された画素データに対して、制御部４３４から入力されたモード選択信号に応じた画像処理（画像補間処理）の演算（リサイズ処理、歪補正処理、または形状補正処理などの画像補間処理の演算）を行う。演算部４３３では、画像処理の演算を行う際に用いる画素データの位置（座標）を、演算部４３３自体が決定する。そして、演算部４３３は、決定した座標に位置する画素データに基づいて、画像処理の演算を行う。
【００７６】
より具体的には、座標算出部４３３１が、制御部４３４から入力されたモード選択信号、つまり、ＣＰＵ５０によって設定レジスタ３３４１に設定された画像処理（画像補間処理）の設定値（リサイズ率のパラメータや歪み係数のパラメータなど）に基づいて、画素データを補間する補間演算を行う際に用いる画素データの座標を算出する。そして、座標算出部４３３１は、算出した座標の情報（以下、「座標情報」という）を、補間演算部４３３２と制御部４３４とのそれぞれに出力する。
【００７７】
補間演算部４３３２は、座標算出部４３３１から出力された座標情報と、この座標情報に基づいて入力バッファ４３１から読み出されてセレクタ３３２を介して入力された画素データとに基づいて、補間演算（例えば、バイリニア補間やバイキュービック補間）を行う。演算部４３３は、補間演算を行って生成した処理画素データを出力データとして、接続切り替え部３１を介して後段の処理モジュールに出力する。
【００７８】
制御部４３４は、第１の構成の画像処理モジュール３３に備えた制御部３３４と同様に、画像処理モジュール４３の前段および後段に接続された処理モジュールとの間での入力データ（画素データ）および出力データ（処理画素データ）との受け渡しの制御を行う。なお、このときに制御部４３４が前段および後段の処理モジュールに出力する状態通知信号は、第１の構成の画像処理モジュール３３に備えた制御部３３４と同様である。
【００７９】
また、制御部４３４は、第１の構成の画像処理モジュール３３に備えた制御部３３４と同様に、ＣＰＵ５０から入力された設定信号によって設定レジスタ３３４１に記憶された設定に基づいて、制御部４３４自身を備えた画像処理モジュール４３内のそれぞれの構成要素の動作を制御する。画像処理モジュール４３には、セレクタ３３２のパラメータ、演算部４３３が行う補間演算を行う際の処理モード（リサイズ処理モード、歪補正処理モード、形状補正処理モード）、画像処理（画像補間処理）の設定値（リサイズ率や歪み係数のパラメータなど）が、ＣＰＵ５０によって設定レジスタ３３４１に記憶（設定）される。なお、設定レジスタ３３４１に設定されたパラメータや処理モードに応じてセレクタ３３２や演算部４３３に出力するスルー選択信号やモード選択信号は、第１の構成の画像処理モジュール３３に備えた制御部３３４と同様である。
【００８０】
また、制御部４３４は、演算部４３３から入力された座標情報に基づいて、入力バッファ４３１に一時記憶されている画素データを読み出し、読み出した画素データを、セレクタ３３２を介して演算部４３３に転送する。
【００８１】
より具体的には、バッファリードアドレス生成部４３４２が、演算部４３３から入力された座標情報に示された、補間演算を行う際に用いる画素データの座標に対応する画素データが一時記憶された入力バッファ４３１の記憶領域を指定するためのアドレス（以下、「バッファリードアドレス」という）を生成する。そして、制御部４３４は、バッファリードアドレス生成部４３４２が生成したバッファリードアドレスを含むバッファ制御信号（バッファリード信号）を入力バッファ４３１に出力する。これにより、演算部４３３に備えた座標算出部４３３１が算出した座標に位置する画素データが入力バッファ４３１から読み出され、セレクタ３３２を介して演算部４３３に転送される。なお、制御部４３４における入力バッファ４３１の動作の制御は、演算部４３３から入力された座標情報に示された画素データを入力バッファ４３１から読み出して転送する以外は、第１の構成の画像処理モジュール３３に備えた制御部３３４と同様である。
【００８２】
このような構成によって画像処理部３０に備えた第２の構成の画像処理モジュール３３（画像処理モジュール４３）は、第１の構成の画像処理モジュール３３と同様に、ＣＰＵ５０からの制御に応じて、前段の処理モジュールからの入力データ（画素データ）の受け付けと、画像処理の演算を行う画素データの選択（切り替え）と、演算部３３３による画像処理の演算とを行う。
【００８３】
そして、画像処理部３０では、パイプライン接続されたそれぞれの処理モジュールが、それぞれのブロック画像データに含まれるユニットラインごとの画素データに対する画像処理の演算を順次行うことによって、それぞれのブロック画像データに対する一連の画像処理、つまり、パイプライン処理を行う。
【００８４】
なお、画像処理装置１では、画像処理部３０に備えたそれぞれの処理モジュールによるパイプライン構成や、画像処理部３０がパイプライン処理よって１フレームの静止画像のデータに対して行う画像処理などを、必要に応じてＣＰＵ５０が設定することができる。つまり、画像処理装置１では、画像処理部３０に備えた接続切り替え部３１によって、画像処理部３０に備えたそれぞれの処理モジュールの接続を切り替えることによって、様々なパイプライン構成を実現することができる。また、画像処理モジュール３３に備えた制御部３３４内の設定レジスタ３３４１に設定する演算部３３３の処理モードやフィルタ係数などのパラメータと、画像処理モジュール４３に備えた制御部４３４内の設定レジスタ３３４１に設定する演算部４３３の処理モードや歪み係数などのパラメータとを、画像処理部３０において実行する画像処理ごとに設定することができる。また、画像処理モジュール３３に備えた演算部３３３に入力データを転送する経路のパラメータと、画像処理モジュール４３に備えた演算部４３３に入力データを転送する経路のパラメータとを、画像処理部３０において実行する画像処理ごとに設定することができる。例えば、撮像装置に歪曲収差の大きいレンズが装着された場合には、画像処理部３０内のパイプライン構成を、歪曲収差の歪補正処理を行う構成とし、歪曲収差の歪補正処理を行う画像処理モジュール４３における歪み係数のパラメータを、装着されたレンズの歪曲収差の特性に対応する値にすることができる。
【００８５】
次に、画像処理部３０に備えたそれぞれの処理モジュールの動作について説明する。図６は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール（画像処理モジュール３３および画像処理モジュール４３）の接続の一例を示した図である。図６には、画像処理モジュール３３−１、画像処理モジュール４３−２、画像処理モジュール３３−３、および画像処理モジュール３３−４が直列に接続されたパイプライン構成によって、一連のパイプライン処理を行う構成を示している。なお、図６では、画像処理部３０に備えた入力ＤＭＡモジュール３２および出力ＤＭＡモジュール３４の図示を省略している。
【００８６】
上述したように、画像処理モジュール３３は、ＹＣ処理、ノイズ低減処理、ＬＰＦ処理、エッジ強調処理などの画像処理の機能を備えており、画像処理モジュール４３は、リサイズ処理、歪補正処理、形状補正処理などの複数の画像処理の演算機能を備えている。図６に示したパイプライン構成の一例は、例えば、画像処理モジュール３３−１がＹＣ処理を行い、画像処理モジュール４３−２が歪曲収差の歪補正処理を行い、画像処理モジュール３３−３がノイズ低減処理を行い、画像処理モジュール３３−４がエッジ強調処理を行うパイプライン構成である。
【００８７】
画像処理部３０では、上述したように、接続切り替え部３１が、ＣＰＵ５０からの制御に応じて、画像処理部３０内のそれぞれの処理モジュールの接続を切り替える。図６には、接続切り替え部３１がそれぞれの処理モジュールの間で画素データや処理画素データの受け渡しを行うために接続を切り替える入力信号および出力信号として、データリクエスト信号ＲＥＱ、データアクノリッジ信号ＡＣＫ、入力データＤＡＴ、出力データＤＡＴ、およびデータ有効信号ＶＡＬＩＤのそれぞれを示している。なお、図６においては、接続切り替え部３１内の入力信号および出力信号に、その信号を出力する側の処理モジュールに付与した「−」に続く数字の部分を付与して示している。例えば、画像処理モジュール４３−２が出力し、画像処理モジュール３３−１に入力されるデータリクエスト信号ＲＥＱを「データリクエスト信号ＲＥＱ２」として示している。
【００８８】
より具体的には、図６のパイプライン構成の一例では、接続切り替え部３１が、画像処理モジュール３３−１の前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの出力端子と、画像処理モジュール３３−１のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの入力端子とを接続する。また、接続切り替え部３１は、画像処理モジュール３３−１のデータリクエスト信号ＲＥＱの出力端子と、画像処理モジュール３３−１の前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）のデータリクエスト信号ＲＥＱの入力端子とを接続する。これにより、画像処理モジュール３３−１の前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）の出力信号であるデータアクノリッジ信号ＡＣＫ０、データ有効信号ＶＡＬＩＤ０、および入力データＤＡＴ０が画像処理モジュール３３−１に、画像処理モジュール３３−１の出力信号であるデータリクエスト信号ＲＥＱ１が、前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）にそれぞれ入力される。
【００８９】
また同様に、接続切り替え部３１は、画像処理モジュール４３−２の前段の画像処理モジュール３３−１のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの出力端子と、画像処理モジュール４３−２のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの入力端子とを接続する。また、接続切り替え部３１は、画像処理モジュール４３−２のデータリクエスト信号ＲＥＱの出力端子と、画像処理モジュール４３−２の前段の画像処理モジュール３３−１のデータリクエスト信号ＲＥＱの入力端子とを接続する。これにより、画像処理モジュール４３−２の前段の画像処理モジュール３３−１の出力信号であるデータアクノリッジ信号ＡＣＫ１、データ有効信号ＶＡＬＩＤ１、および処理画素データＤＡＴ１が画像処理モジュール４３−２に、画像処理モジュール４３−２の出力信号であるデータリクエスト信号ＲＥＱ２が、前段の画像処理モジュール３３−１にそれぞれ入力される。
【００９０】
また同様に、接続切り替え部３１は、画像処理モジュール３３−３の前段の画像処理モジュール４３−２のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの出力端子と、画像処理モジュール３３−３のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの入力端子とを接続する。また、接続切り替え部３１は、画像処理モジュール３３−３のデータリクエスト信号ＲＥＱの出力端子と、画像処理モジュール３３−３の前段の画像処理モジュール４３−２のデータリクエスト信号ＲＥＱの入力端子とを接続する。これにより、画像処理モジュール３３−３の前段の画像処理モジュール４３−２の出力信号であるデータアクノリッジ信号ＡＣＫ２、データ有効信号ＶＡＬＩＤ２、および処理画素データＤＡＴ２が画像処理モジュール３３−３に、画像処理モジュール３３−３の出力信号であるデータリクエスト信号ＲＥＱ３が、前段の画像処理モジュール４３−２にそれぞれ入力される。
【００９１】
また同様に、接続切り替え部３１は、画像処理モジュール３３−４の前段の画像処理モジュール３３−３のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの出力端子と、画像処理モジュール３３−４のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの入力端子とを接続する。また、接続切り替え部３１は、画像処理モジュール３３−４のデータリクエスト信号ＲＥＱの出力端子と、画像処理モジュール３３−４の前段の画像処理モジュール３３−３のデータリクエスト信号ＲＥＱの入力端子とを接続する。これにより、画像処理モジュール３３−４の前段の画像処理モジュール３３−３の出力信号であるデータアクノリッジ信号ＡＣＫ３、データ有効信号ＶＡＬＩＤ３、および処理画素データＤＡＴ３が画像処理モジュール３３−４に、画像処理モジュール３３−４の出力信号であるデータリクエスト信号ＲＥＱ４が、前段の画像処理モジュール３３−３にそれぞれ入力される。
【００９２】
また同様に、接続切り替え部３１は、画像処理モジュール３３−４の後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの入力端子と、画像処理モジュール３３−４のデータアクノリッジ信号ＡＣＫ、データ有効信号ＶＡＬＩＤ、および入力データＤＡＴの出力端子とを接続する。また、接続切り替え部３１は、画像処理モジュール３３−４のデータリクエスト信号ＲＥＱの入力端子と、画像処理モジュール３３−４の後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）のデータリクエスト信号ＲＥＱの出力端子とを接続する。これにより、画像処理モジュール３３−４の出力信号であるデータアクノリッジ信号ＡＣＫ４、データ有効信号ＶＡＬＩＤ４、および処理画素データＤＡＴ４が画像処理モジュール３３−４の後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）に、画像処理モジュール３３−４の後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）の出力信号であるデータリクエスト信号ＲＥＱ５が、画像処理モジュール３３−４にそれぞれ入力される。
【００９３】
また、図６のパイプライン構成の一例では、ＣＰＵ５０が、それぞれの画像処理モジュール３３の制御部３３４に備えた設定レジスタ３３４１、および画像処理モジュール４３の制御部４３４に備えた設定レジスタ３３４１に、入力された入力データＤＡＴを一時記憶することを表すセレクタ３３２のパラメータを設定している。これにより、それぞれの画像処理モジュール３３の制御部３３４は、入力バッファ３３１に一時記憶された入力データＤＡＴを演算部３３３に出力する経路を選択するためのスルー選択信号をセレクタ３３２に出力し、セレクタ３３２は、制御部３３４によって読み出された入力データＤＡＴを演算部３３３に転送する。また、画像処理モジュール４３の制御部４３４は、入力バッファ４３１に一時記憶された入力データＤＡＴを演算部４３３に出力する経路を選択するためのスルー選択信号をセレクタ３３２に出力し、セレクタ３３２は、制御部４３４によって読み出された入力データＤＡＴを演算部４３３に転送する。
【００９４】
より具体的には、画像処理モジュール３３−１では、制御部３３４から出力されたスルー選択信号によって、入力された入力データＤＡＴ０を一旦入力バッファ３３１に記憶し、読み出された入力データＤＡＴ０を演算部３３３に転送する経路が選択されている。また、画像処理モジュール４３−２では、制御部４３４から出力されたスルー選択信号によって、入力された処理画素データＤＡＴ１を一旦入力バッファ４３１に記憶し、読み出された処理画素データＤＡＴ１を演算部４３３に転送する経路が選択されている。また、画像処理モジュール３３−３では、制御部３３４から出力されたスルー選択信号によって、入力された処理画素データＤＡＴ２を一旦入力バッファ３３１に記憶し、読み出された処理画素データＤＡＴ２を演算部３３３に転送する経路が選択されている。また、画像処理モジュール３３−４では、制御部３３４から出力されたスルー選択信号によって、入力された処理画素データＤＡＴ３を一旦入力バッファ３３１に記憶し、読み出された処理画素データＤＡＴ３を演算部３３３に転送する経路が選択されている。
【００９５】
図６に示したようにそれぞれの処理モジュールを接続したパイプライン構成を構成することによって、画像処理部３０は、それぞれのブロック画像データに対するＹＣ処理、歪曲収差の歪補正処理、ノイズ低減処理、およびエッジ強調処理の一連の画像処理（パイプライン処理）を行う。このパイプライン処理において、画像処理部３０に備えたそれぞれの処理モジュールは、入力された入力データＤＡＴまたは処理画素データＤＡＴを入力バッファ３３１または入力バッファ４３１に一旦記憶してから読み出して、後段の処理モジュールに順次出力する。
【００９６】
図７は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール（画像処理モジュール３３および画像処理モジュール４３）の動作の一例を示したタイミングチャートである。図７には、画像処理部３０が、図６に示したパイプライン構成によって一連のパイプライン処理を行う場合において、画像処理モジュール３３−１から画像処理モジュール３３−４までの処理画素データの受け渡しの一例を示している。
【００９７】
図７には、それぞれの処理モジュールにおける入力データおよび出力データ（処理画素データＤＡＴ）のいずれか一方または両方と、それぞれの処理モジュールが前段の処理モジュールに出力するデータリクエスト信号ＲＥＱとを示している。また、図７には、それぞれの処理モジュールにおいて入力バッファ３３１または入力バッファ４３１への処理画素データＤＡＴの書き込みを表すバッファ制御信号（バッファライト信号）、入力バッファ３３１または入力バッファ４３１からの処理画素データＤＡＴの読み出しを表すバッファ制御信号（バッファリード信号）のいずれか一方または両方を示している。
【００９８】
なお、以下の説明においては、説明を容易にするため、データアクノリッジ信号ＡＣＫおよびデータ有効信号ＶＡＬＩＤのタイミングは、出力データ（処理画素データＤＡＴ）のタイミングと同様のタイミングである、つまり、それぞれの処理モジュールから出力される出力データ（処理画素データＤＡＴ）は、全て有効な処理画素データであるものとして説明する。従って、図７においては、それぞれの処理モジュールにおけるデータアクノリッジ信号ＡＣＫおよびデータ有効信号ＶＡＬＩＤの図示を省略している。
【００９９】
また、図７の説明においては、１つのユニットラインを１つの処理単位として画像処理を行うものとして説明する。そして、図７には、入力データ（処理画素データＤＡＴ）、バッファライト信号を出力している期間、バッファリード信号を出力している期間、および出力データ（処理画素データＤＡＴ）のそれぞれに、何番目のユニットラインであるかを表す数字を示している。
【０１００】
なお、画像処理モジュール３３−１は、５つのユニットライン分の処理画素データＤＡＴ０を記憶することができる記憶容量の入力バッファ３３１を備え、画像処理モジュール４３−２は、５つのユニットライン分の処理画素データＤＡＴ１を記憶することができる記憶容量の入力バッファ４３１を備えた構成であるものとして説明する。また、画像処理モジュール３３−３および画像処理モジュール３３−４のそれぞれは、２つのユニットライン分の処理画素データＤＡＴを記憶することができる記憶容量の入力バッファ３３１を備えた構成であるものとして説明する。つまり、画像処理モジュール３３−１に備えた入力バッファ３３１は、５つのユニットライン記憶領域（以下、「ユニットライン記憶領域３３１１」という）を備え、画像処理モジュール４３−２に備えた入力バッファ４３１は、５つのユニットライン記憶領域４３１１を備え、画像処理モジュール３３−３および画像処理モジュール３３−４のそれぞれに備えた入力バッファ３３１は、２つのユニットライン記憶領域３３１１を備えているものとして説明する。そして、図７には、それぞれの処理モジュールに備えたデータバッファ内のいずれのユニットライン記憶領域に処理画素データＤＡＴを一時記憶するかを表すため、バッファライト信号およびバッファリード信号を出力しているそれぞれの期間に示した何番目のユニットラインであるかを表す数字に続く「（）：括弧」内に、ユニットライン記憶領域を表す数字を示す。
【０１０１】
なお、以下の説明においては、それぞれの処理モジュールに備えた構成要素を区別するため、それぞれの構成要素に付与した符号に続いて、処理モジュールのそれぞれに付与した「−」と、それに続く数字の部分を付与して表す。例えば、画像処理モジュール３３−１に備えた入力バッファ３３１を「入力バッファ３３１−１」とし、画像処理モジュール４３−２に備えた入力バッファ４３１を「入力バッファ４３１−２」として表す。
【０１０２】
また、図７の説明においては、画像処理部３０がパイプライン処理を開始した後、画像処理モジュール３３−１から出力された５つのユニットライン分の処理画素データＤＡＴ１が画像処理モジュール４３−２に備えた入力バッファ４３１−２にすでに一時記憶され、次に処理を行う５つのユニットライン分の入力データ（画素データ）が画像処理モジュール３３−１に備えた入力バッファ３３１−１にすでに一時記憶されている状態からの動作を説明する。つまり、画像処理モジュール４３−２に備えた入力バッファ４３１−２の１番目〜５番目のユニットライン記憶領域４３１１−２に、１番目〜５番目のユニットラインの処理画素データＤＡＴ１がすでに一時記憶され、画像処理モジュール３３−１に備えた入力バッファ３３１−１の１番目〜５番目のユニットライン記憶領域３３１１−１に、６番目〜１０番目のユニットラインの処理画素データＤＡＴ０がすでに一時記憶されている状態からの動作を説明する。
【０１０３】
上述した状態のとき、画像処理モジュール３３−４に備えた制御部３３４−４が、処理画素データＤＡＴ３の出力を要求するデータリクエスト信号ＲＥＱ４を画像処理モジュール３３−３に出力すると、画像処理モジュール３３−３に備えた制御部３３４−３は、後段の画像処理モジュール３３−４から入力されたデータリクエスト信号ＲＥＱ４に応じて、データアクノリッジ信号ＡＣＫ３を出力する。そして、制御部３３４−３は、処理画素データＤＡＴ２の出力を要求するデータリクエスト信号ＲＥＱ３を画像処理モジュール４３−２に出力する。
【０１０４】
なお、図７においては、データリクエスト信号ＲＥＱが“Ｈｉｇｈ”レベルの期間が、それぞれの処理モジュールが処理画素データＤＡＴを受け付けることができる状態であるリクエスト期間を表し、データリクエスト信号ＲＥＱが“Ｌｏｗ”レベルの期間が、それぞれの処理モジュールが処理画素データＤＡＴを受け付けることができない状態であるリクエストネゲート期間を表している。
【０１０５】
画像処理モジュール４３−２に備えた制御部４３４−２は、後段の画像処理モジュール３３−３から入力されたデータリクエスト信号ＲＥＱ３に応じて、データアクノリッジ信号ＡＣＫ２を出力する。そして、制御部４３４−２は、入力バッファ４３１−２に一時記憶している１番目のユニットラインのそれぞれの処理画素データＤＡＴ１を読み出すためのバッファリード信号を生成する。これにより、演算部４３３−２には、１番目のユニットラインのバッファリードの期間に、入力バッファ４３１−２の１番目のユニットライン記憶領域４３１１−２から読み出されたそれぞれの処理画素データＤＡＴ１がセレクタ３３２−２を介して転送される。そして、演算部４３３−２は、セレクタ３３２−２を介して入力された１番目のユニットラインのそれぞれの処理画素データＤＡＴ１に対して、制御部４３４−２から出力されたモード選択信号に応じた歪曲収差の歪補正処理の演算を行って生成した処理画素データＤＡＴ２を、画像処理モジュール３３−３に出力する。なお、画像処理モジュール４３−２から出力される１番目のユニットラインに対応した処理画素データＤＡＴ２は、演算部４３３−２が歪曲収差の歪補正処理の演算を行うことによって発生する、処理画素データＤＡＴ１が入力されてから処理画素データＤＡＴ２が出力されるまでの遅延時間Ｄ２（レイテンシＤ２）だけ遅れて出力される。
【０１０６】
なお、制御部４３４−２は、入力バッファ４３１−２に一時記憶している１番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了すると、引き続き、２番目以降のユニットラインの処理画素データＤＡＴ１を入力バッファ４３１−２から読み出すためのバッファリード信号を順次生成する。これにより、演算部４３３−２には、それぞれのユニットラインのバッファリードの期間に、入力バッファ４３１−２のそれぞれのユニットライン記憶領域４３１１−２から順次読み出されたそれぞれの処理画素データＤＡＴ１がセレクタ３３２−２を介して順次転送される。そして、演算部４３３−２は、セレクタ３３２−２を介して順次入力されたそれぞれのユニットラインのそれぞれの処理画素データＤＡＴ１に対して歪曲収差の歪補正処理の演算を行って生成した２番目以降のユニットラインの処理画素データＤＡＴ２を、画像処理モジュール３３−３に順次出力する。
【０１０７】
また、制御部４３４−２によって１番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了すると、入力バッファ４３１−２は、１つのユニットライン記憶領域４３１１−２（１番目のユニットライン記憶領域４３１１−２）に処理画素データＤＡＴ１が記憶されていない（１番目のユニットライン記憶領域４３１１−２が空いている）状態になる。つまり、画像処理モジュール４３−２は、画像処理モジュール３３−１から次の処理画素データＤＡＴ１を受け付けることができる状態になる。このため、制御部４３４−２は、画像処理モジュール４３−２が処理画素データＤＡＴ１を受け付けることができる状態になったことを表すために、画像処理モジュール３３−１に出力しているデータリクエスト信号ＲＥＱ２を“Ｈｉｇｈ”レベルにする。これにより、画像処理モジュール３３−１は、データリクエスト信号ＲＥＱ２に応じて、入力バッファ３３１に一時記憶している６番目以降のユニットラインのそれぞれの画素データに対してＹＣ処理の演算を行って生成したそれぞれのユニットラインに対応した処理画素データＤＡＴ１を、遅延時間Ｄ１（レイテンシＤ１）だけ遅れたタイミングから、画像処理モジュール４３−２に順次出力する。
【０１０８】
なお、画像処理モジュール３３−１に備えた制御部３３４−１は、入力バッファ３３１に一時記憶している６番目のユニットラインのそれぞれの画素データの読み出しが終了すると、入力バッファ３３１−１の１番目のユニットライン記憶領域３３１１−１が空いている状態になり、前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）から次の入力データ（画素データ）を受け付けることができる状態になる。このため、制御部３３４−１は、画像処理モジュール４３−２と同様に、前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）に出力しているデータリクエスト信号ＲＥＱ１を“Ｈｉｇｈ”レベルにして、入力データ（画素データ）を受け付けることができる状態になったことを表してもよい。これにより、前段の処理モジュール（例えば、入力ＤＭＡモジュール３２）は、データリクエスト信号ＲＥＱ１に応じて、次のユニットラインのそれぞれの入力データ（画素データ）を、画像処理モジュール３３−１に順次出力する。
【０１０９】
制御部４３４−２は、前段の画像処理モジュール３３−１から６番目以降のユニットラインに対応した処理画素データＤＡＴ１が入力されると、入力されたそれぞれのユニットラインの処理画素データＤＡＴ１を入力バッファ４３１−２内の空いているユニットライン記憶領域４３１１−２に書き込むためのバッファライト信号を生成する。これにより、それぞれのユニットラインのバッファライトの期間において、６番目以降のユニットラインに対応したそれぞれの処理画素データＤＡＴ１が順次、入力バッファ４３１−２に一時記憶される。より具体的には、６番目のユニットラインに対応した処理画素データＤＡＴ１が、最初に空いている状態になった１番目のユニットライン記憶領域４３１１−２に書き込まれ、一時記憶される。続いて、７番目のユニットラインに対応した処理画素データＤＡＴ１が、次に空いている状態になった２番目のユニットライン記憶領域４３１１−２に書き込まれ、一時記憶される。以降、同様に、制御部４３４−２によって読み出されて空いている状態になった入力バッファ４３１−２内のそれぞれのユニットライン記憶領域４３１１−２に、それぞれのユニットラインに対応した処理画素データＤＡＴ１が順次書き込まれ、一時記憶される。
【０１１０】
このようにして、画像処理モジュール４３−２は、前段の画像処理モジュール３３−１から入力された処理画素データＤＡＴ１を入力バッファ４３１−２に一旦記憶してから読み出して、歪曲収差の歪補正処理を行った処理画素データＤＡＴ２を、後段の画像処理モジュール３３−３に順次出力する。
【０１１１】
画像処理モジュール３３−３に備えた制御部３３４−３は、前段の画像処理モジュール４３−２から１番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２が入力されると、入力されたそれぞれの処理画素データＤＡＴ２を入力バッファ３３１−３内の空いているユニットライン記憶領域３３１１−３に書き込むためのバッファライト信号を生成する。なお、図７においては、画像処理部３０がパイプライン処理を開始した最初の段階で、入力バッファ３３１−３には処理画素データＤＡＴ２が一時記憶されていない、つまり、入力バッファ３３１−３の全てのユニットライン記憶領域３３１１−３が空いている状態である。このため、画像処理モジュール３３−３における１番目のユニットラインのバッファライトの期間に、画像処理モジュール４３−２から入力された１番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２が、入力バッファ３３１−３の１番目のユニットライン記憶領域３３１１−３に書き込まれ、一時記憶される。
【０１１２】
なお、入力バッファ３３１−３は、２つのユニットライン記憶領域３３１１−３を備えている。つまり、１番目のユニットライン記憶領域３３１１−３に処理画素データＤＡＴ２が書き込まれても、２番目のユニットライン記憶領域３３１１−３が空いている状態である。このため、制御部３３４−３は、１番目のユニットラインのそれぞれの処理画素データＤＡＴ２の入力バッファ３３１−３への書き込みが終了すると、引き続き、２番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２を入力バッファ３３１−３に書き込むためのバッファライト信号を順次生成する。これにより、入力バッファ３３１−３には、画像処理モジュール３３−３における２番目のユニットラインのバッファライトの期間において、画像処理モジュール４３−２から入力された２番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２が、入力バッファ３３１−３の２番目のユニットライン記憶領域３３１１−３に書き込まれ、一時記憶される。
【０１１３】
また、画像処理モジュール３３−３には、後段の画像処理モジュール３３−４から、処理画素データＤＡＴ３の出力を要求するデータリクエスト信号ＲＥＱ４が入力されている。このため、制御部３３４−３は、１番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２の入力バッファ３３１−３への書き込みが終了すると、入力バッファ３３１−３に一時記憶している１番目のユニットラインのそれぞれの処理画素データＤＡＴ２を読み出すためのバッファリード信号を生成する。これにより、演算部３３３−３には、１番目のユニットラインのバッファリードの期間に、入力バッファ３３１−３の１番目のユニットライン記憶領域３３１１−３から読み出されたそれぞれの処理画素データＤＡＴ２がセレクタ３３２−３を介して転送される。そして、演算部３３３−３は、セレクタ３３２−３を介して入力された１番目のユニットラインのそれぞれの処理画素データＤＡＴ２に対して、制御部３３４−３から出力されたモード選択信号に応じたノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を、遅延時間Ｄ３（レイテンシＤ３）だけ遅れたタイミングから画像処理モジュール３３−４に出力する。
【０１１４】
なお、制御部３３４−３は、２番目のユニットラインのそれぞれの処理画素データＤＡＴ２の入力バッファ３３１−３への書き込みが終了している場合には、入力バッファ３３１−３からの１番目のユニットラインのそれぞれの処理画素データＤＡＴ２の読み出しに引き続き、２番目のユニットラインのそれぞれの処理画素データＤＡＴ２の読み出しを行う。これにより、演算部３３３−３は、２番目のユニットラインのそれぞれの処理画素データＤＡＴ２に対してノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を画像処理モジュール３３−４に出力する。
【０１１５】
また、制御部３３４−３によって１番目のユニットラインのそれぞれの処理画素データＤＡＴ２の読み出しが終了すると、入力バッファ３３１−３の１番目のユニットライン記憶領域３３１１−３が空いている状態になる。このため、制御部３３４−３は、２番目のユニットラインのそれぞれの処理画素データＤＡＴ２の入力バッファ３３１−３への書き込みに引き続き、３番目のユニットラインのバッファライトの期間において、３番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２の入力バッファ３３１−３の１番目のユニットライン記憶領域３３１１−３への書き込みを行う。
【０１１６】
このように、画像処理モジュール３３−３では、入力バッファ３３１−３内の２つのユニットライン記憶領域３３１１−３に対して、一方のユニットライン記憶領域３３１１−３への処理画素データＤＡＴ２の書き込みと、他方のユニットライン記憶領域３３１１−３からの処理画素データＤＡＴ２の読み出しとを交互に行う。これにより、画像処理モジュール３３−３では、それぞれのユニットラインのバッファライトの期間に、前段の画像処理モジュール４３−２から順次入力された処理画素データＤＡＴ２が順次書き込まれ、それぞれのユニットラインのバッファリードの期間に、入力バッファ３３１−３に一時記憶されたそれぞれのユニットラインの処理画素データＤＡＴ２が順次読み出される。そして、画像処理モジュール３３−３では、入力バッファ３３１−３から順次読み出した処理画素データＤＡＴ２に対して演算部３３３−３がノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を、画像処理モジュール３３−４に順次出力する。
【０１１７】
このようにして、画像処理モジュール３３−３でも、画像処理モジュール４３−２と同様に、前段の画像処理モジュール４３−２から順次入力された処理画素データＤＡＴ２を入力バッファ３３１−３に一旦記憶してから読み出し、読み出した処理画素データＤＡＴ２に対してノイズ低減処理を行った処理画素データＤＡＴ３を、後段の画像処理モジュール３３−４に順次出力する。
【０１１８】
そして、画像処理モジュール３３−４は、前段の画像処理モジュール３３−３から順次入力されたそれぞれの処理画素データＤＡＴ３に対してエッジ強調処理を順次行って、生成した処理画素データＤＡＴ４を、後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）に順次出力する。なお、図７において説明した図６に示したパイプライン構成の画像処理部３０では、画像処理モジュール３３−４に備えた入力バッファ３３１−４は、２つのユニットライン記憶領域３３１１−４を備えている。このため、画像処理モジュール３３−４でも、画像処理モジュール３３−３と同様に、入力バッファ３３１−４内の一方のユニットライン記憶領域３３１１−４への処理画素データＤＡＴ３の書き込みと、他方のユニットライン記憶領域３３１１−４からの処理画素データＤＡＴ３の読み出しとを交互に行う。そして、画像処理モジュール３３−４では、入力バッファ３３１−４から順次読み出した処理画素データＤＡＴ３に対して演算部３３３−４がエッジ強調処理の演算を行う。
【０１１９】
このように、画像処理部３０では、パイプラインを構成するそれぞれの処理モジュールに備えたデータバッファ（入力バッファ３３１や入力バッファ４３１）に、入力データを（画素データや処理画素データ）を一旦記憶することによって演算部（演算部３３３や演算部４３３）における処理の遅延を吸収し、それぞれの処理モジュール間の処理画素データＤＡＴの流れが滞らずに、パイプライン処理がスムーズに行われるようにしている。つまり、後段の処理モジュールへの処理画素データＤＡＴの出力が（一時）停止したり、前段の処理モジュールへの処理画素データＤＡＴの要求が（一時）停止したりするようなパイプラインストール状態を回避する構成にしている。
【０１２０】
ところで、図７に示した画像処理部３０における画像処理モジュール３３および画像処理モジュール４３の動作の一例では、画像処理モジュール３３−３は、入力バッファ３３１−３内の一方のユニットライン記憶領域３３１１−３への処理画素データＤＡＴ２の書き込みと、他方のユニットライン記憶領域３３１１−３からの処理画素データＤＡＴ２の読み出しとを交互に行っている。つまり、画像処理モジュール３３−３では、前段の画像処理モジュール４３−２から順次入力された処理画素データＤＡＴ２を入力バッファ３３１−３に一時記憶した後すぐに読み出し、読み出した処理画素データＤＡＴ２に対して演算部３３３−３がノイズ低減処理を行っている。このため、画像処理モジュール３３−３における処理画素データＤＡＴ２の入力バッファ３３１−３への書き込みと読み出しとを行わずに、演算部３３３−３が、画像処理モジュール４３−２から現在入力されている処理画素データＤＡＴ２に対して直接ノイズ低減処理の演算を行う構成にすることも考えられる。つまり、画像処理装置１では、ＣＰＵ５０が、画像処理部３０においてパイプラインを構成する画像処理モジュール３３−３の制御部３３４−３に備えた設定レジスタ３３４１に設定するセレクタ３３２のパラメータによって、画像処理モジュール４３−２から入力された処理画素データＤＡＴ２を、入力バッファ３３１−３に一時記憶せずに演算部３３３−３に直接出力する経路を選択することも考えられる。この構成にすることによって、画像処理部３０では、画像処理モジュール３３−３に備えた入力バッファ３３１−３の動作を停止するように制御することができ、入力バッファ３３１−３の消費電力を削減することができる。なお、入力バッファ３３１−３の動作の停止は、ＣＰＵ５０によって設定される。しかし、制御部３３４−３が、動作を停止するように入力バッファ３３１−３を制御してもよい。
【０１２１】
次に、画像処理部３０において、入力データをデータバッファに一時記憶せずにそのまま画像処理の演算を行う構成とした場合のそれぞれの処理モジュールの動作について説明する。図８は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール（画像処理モジュール３３および画像処理モジュール４３）の別の接続の一例を示した図である。図８には、図６に示した画像処理モジュールの接続の一例と同様に、画像処理モジュール３３−１、画像処理モジュール４３−２、画像処理モジュール３３−３、および画像処理モジュール３３−４が直列に接続されたパイプライン構成によって、一連のパイプライン処理を行う構成を示している。なお、図８でも、図６に示したパイプライン構成の一例と同様に、画像処理部３０に備えた入力ＤＭＡモジュール３２および出力ＤＭＡモジュール３４の図示を省略している。
【０１２２】
図８に示したパイプライン構成の一例も、図６に示したパイプライン構成の一例と同様に、例えば、画像処理モジュール３３−１がＹＣ処理を行い、画像処理モジュール４３−２が歪曲収差の歪補正処理を行い、画像処理モジュール３３−３がノイズ低減処理を行い、画像処理モジュール３３−４がエッジ強調処理を行うパイプライン構成である。
【０１２３】
なお、図８においても、それぞれの処理モジュールに備えた構成要素を区別するため、それぞれの構成要素に付与した符号に続いて、処理モジュールのそれぞれに付与した「−」と、それに続く数字の部分を付与して表し、接続切り替え部３１内の入力信号および出力信号に、その信号を出力する側の処理モジュールに付与した「−」に続く数字の部分を付与して表す。
【０１２４】
図８のパイプライン構成の一例では、ＣＰＵ５０が、画像処理モジュール３３−３の制御部３３４−３に備えた設定レジスタ３３４１−３に、入力された入力データＤＡＴを一時記憶せずにそのまま、演算部３３３−３に転送することを表すセレクタ３３２−３のパラメータを設定している。これにより、画像処理モジュール３３−３の制御部３３４−３は、前段の画像処理モジュール４３−２から入力されている処理画素データＤＡＴ２を入力バッファ３３１−３に一時記憶せずに直接、演算部３３３−３に出力する経路を選択するためのスルー選択信号をセレクタ３３２−３に出力し、セレクタ３３２−３は、画像処理モジュール４３−２から現在入力されている処理画素データＤＡＴ２を演算部３３３に転送する。
【０１２５】
また、図８のパイプライン構成の一例では、画像処理モジュール３３−３において、入力された処理画素データＤＡＴ２をそのまま演算部３３３−３に転送する経路を選択させることに伴って、ＣＰＵ５０は、接続切り替え部３１における画像処理モジュール４３−２〜画像処理モジュール３３−４のデータリクエスト信号ＲＥＱとデータアクノリッジ信号ＡＣＫとの接続を変更する。
【０１２６】
より具体的には、図８のパイプライン構成の一例では、接続切り替え部３１が、画像処理モジュール４３−２のデータリクエスト信号ＲＥＱの入力端子と、後段の画像処理モジュール３３−４のデータリクエスト信号ＲＥＱの出力端子とを接続し、画像処理モジュール４３−２のデータアクノリッジ信号ＡＣＫの出力端子と、後段の画像処理モジュール３３−４のデータアクノリッジ信号ＡＣＫの入力端子とを接続している。これにより、画像処理モジュール４３−２の後段の画像処理モジュール３３−４の出力信号であるデータリクエスト信号ＲＥＱ４が画像処理モジュール４３−２に、画像処理モジュール４３−２の出力信号であるデータアクノリッジ信号ＡＣＫ２が、画像処理モジュール４３−２の後段の画像処理モジュール３３−４にそれぞれ入力される。つまり、図８のパイプライン構成の一例では、画像処理モジュール３３−４が前段の画像処理モジュール３３−３に処理画素データＤＡＴ３の出力を要求するデータリクエスト信号ＲＥＱ４を、さらに前段の画像処理モジュール４３−２が受け取り、画像処理モジュール４３−２が、入力されたデータリクエスト信号ＲＥＱ４に応じたデータアクノリッジ信号ＡＣＫ２を、さらに後段の画像処理モジュール３３−４に出力するように接続している。
【０１２７】
これは、画像処理モジュール３３−３が、画像処理モジュール４３−２から入力された処理画素データＤＡＴ２をそのまま演算部３３３−３に転送して画像処理の演算を行う構成にすることによって、画像処理モジュール４３−２に備えた演算部４３３−２と、画像処理モジュール３３−３に備えた演算部３３３−３とが、１つの演算部であると考えるためである。
【０１２８】
なお、演算部４３３−２と演算部３３３−３とを１つの演算部であると考えた場合であっても、画像処理の演算を行う順番は変更しない。このため、接続切り替え部３１は、画像処理モジュール３３−３の前段の画像処理モジュール４３−２のデータ有効信号ＶＡＬＩＤおよび入力データＤＡＴの出力端子と、画像処理モジュール３３−３のデータ有効信号ＶＡＬＩＤおよび入力データＤＡＴの入力端子とを接続する。また、接続切り替え部３１は、画像処理モジュール３３−３の後段の画像処理モジュール３３−４のデータ有効信号ＶＡＬＩＤおよび入力データＤＡＴの入力端子と、画像処理モジュール３３−３のデータ有効信号ＶＡＬＩＤおよび入力データＤＡＴの出力端とを接続する。これにより、画像処理モジュール４３−２の出力信号であるデータ有効信号ＶＡＬＩＤ２および処理画素データＤＡＴ２が後段の画像処理モジュール３３−３に、画像処理モジュール３３−３の出力信号であるデータ有効信号ＶＡＬＩＤ３および処理画素データＤＡＴ３が後段の画像処理モジュール３３−４にそれぞれ入力される。
【０１２９】
なお、その他の画像処理モジュール３３の制御部３３４に備えた設定レジスタ３３４１、および画像処理モジュール４３の制御部４３４に備えた設定レジスタ３３４１におけるセレクタ３３２のパラメータは、図６に示したパイプライン構成の一例と同様である。従って、画像処理モジュール３３−１および画像処理モジュール３３−４は、入力された入力データＤＡＴを入力バッファ３３１に一旦記憶してから読み出して、演算部３３３に転送する。また、画像処理モジュール４３は、入力された入力データＤＡＴを入力バッファ４３１に一旦記憶してから読み出して、演算部４３３に転送する。このため、接続切り替え部３１における画像処理モジュール３３−１と画像処理モジュール４３−２との間のデータリクエスト信号ＲＥＱ２、データアクノリッジ信号ＡＣＫ１、入力データＤＡＴ１、およびデータ有効信号ＶＡＬＩＤ１のそれぞれの接続は、図６に示したパイプライン構成の一例と同様である。
【０１３０】
図８に示したようにそれぞれの処理モジュールを接続したパイプライン構成を構成することによって、画像処理部３０は、それぞれのブロック画像データに対するＹＣ処理、歪曲収差の歪補正処理、ノイズ低減処理、およびエッジ強調処理の一連の画像処理（パイプライン処理）を行う。このパイプライン処理において、画像処理部３０に備えた画像処理モジュール４３−２と画像処理モジュール３３−３とは、歪曲収差の歪補正処理とノイズ低減処理とを行う１つの画像処理モジュールであるものとして動作し、生成した処理画素データＤＡＴ３を、後段の画像処理モジュール３３−４に順次出力する。つまり、図８のパイプライン構成の一例では、画像処理モジュール４３−２に備えた入力バッファ４３１−２が、演算部４３３−２と演算部３３３−３との両方の演算部における処理の遅延を吸収し、画像処理モジュール４３−２から画像処理モジュール３３−４までの間の処理画素データＤＡＴの流れが滞らずに、パイプライン処理がスムーズに行われるように動作している。
【０１３１】
図９は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール（画像処理モジュール３３および画像処理モジュール４３）の別の動作の一例を示したタイミングチャートである。図９には、画像処理部３０が、図８に示したパイプライン構成によって一連のパイプライン処理を行う場合において、画像処理モジュール３３−１から画像処理モジュール３３−４までの処理画素データの受け渡しの一例を示している。
【０１３２】
なお、図９に示したそれぞれの処理モジュールの動作の一例においても、図６のパイプライン構成でパイプライン処理を行う場合における図７に示したそれぞれの処理モジュールの動作の一例と同様に、それぞれの処理モジュールにおける入力データおよび出力データ（処理画素データＤＡＴ）、データリクエスト信号ＲＥＱ、およびバッファ制御信号（バッファライト信号およびバッファリード信号）を示している。また、図９に示したそれぞれの処理モジュールの動作の一例においても、データアクノリッジ信号ＡＣＫおよびデータ有効信号ＶＡＬＩＤのタイミングは、出力データ（処理画素データＤＡＴ）のタイミングと同様のタイミングであるものとし、それぞれの処理モジュールにおけるデータアクノリッジ信号ＡＣＫおよびデータ有効信号ＶＡＬＩＤの図示を省略している。
【０１３３】
また、図９の説明においても、図７に示したそれぞれの処理モジュールの動作の一例と同様に、１つのユニットラインを１つの処理単位として画像処理を行うものとし、入力データ（処理画素データＤＡＴ）、バッファライトの期間、バッファリードの期間、および出力データ（処理画素データＤＡＴ）のそれぞれに、何番目のユニットラインであるかを表す数字を示して説明する。また、図９の説明においても、図７に示したそれぞれの処理モジュールの動作の一例と同様に、バッファライトおよびバッファリードのそれぞれの期間に示した何番目のユニットラインであるかを表す数字に続く「（）：括弧」内に、入力バッファ３３１および入力バッファ４３１内のいずれのユニットライン記憶領域４３１１に処理画素データＤＡＴを一時記憶するかを表す数字を示して説明する。
【０１３４】
なお、図９の説明においても、それぞれの処理モジュールに備えた入力バッファ３３１または入力バッファ４３１の記憶容量、つまり、ユニットライン記憶領域３３１１またはユニットライン記憶領域４３１１の数は、図７に示したそれぞれの処理モジュールの動作の一例と同様であるものとして説明する。ただし、図８に示したパイプライン構成では、画像処理モジュール３３−３が、入力された処理画素データＤＡＴ２をそのまま演算部３３３−３に転送する経路が選択されているため、画像処理モジュール３３−３は、入力バッファ３３１−３を備えていない構成と同様である。
【０１３５】
また、図９の説明においても、図７に示したそれぞれの処理モジュールの動作の一例と同様に、画像処理部３０がパイプライン処理を開始した後、５つのユニットライン分の処理画素データＤＡＴ１が画像処理モジュール４３−２に備えた入力バッファ４３１−２にすでに一時記憶され、次に処理を行う５つのユニットライン分の入力データ（画素データ）が画像処理モジュール３３−１に備えた入力バッファ３３１−１にすでに一時記憶されている状態からの動作を説明する。
【０１３６】
なお、図９においても、図７に示したそれぞれの処理モジュールの動作の一例と同様に、データリクエスト信号ＲＥＱが“Ｈｉｇｈ”レベルの期間が、それぞれの処理モジュールが処理画素データＤＡＴを受け付けることができる状態であるリクエスト期間を表し、データリクエスト信号ＲＥＱが“Ｌｏｗ”レベルの期間が、それぞれの処理モジュールが処理画素データＤＡＴを受け付けることができない状態であるリクエストネゲート期間を表している。
【０１３７】
上述した状態のとき、画像処理モジュール３３−４に備えた制御部３３４−４が、処理画素データＤＡＴ３の出力を要求するデータリクエスト信号ＲＥＱ４を画像処理モジュール４３−２に出力すると、画像処理モジュール４３−２に備えた制御部４３４−２は、後段の画像処理モジュール３３−４から入力されたデータリクエスト信号ＲＥＱ４に応じて、データアクノリッジ信号ＡＣＫ２を出力する。そして、制御部４３４−２は、入力バッファ４３１−２に一時記憶している１番目のユニットラインのそれぞれの処理画素データＤＡＴ１を読み出すためのバッファリード信号を生成する。これにより、演算部４３３−２には、１番目のユニットラインのバッファリードの期間に、入力バッファ４３１−２の１番目のユニットライン記憶領域４３１１−２から読み出されたそれぞれの処理画素データＤＡＴ１がセレクタ３３２−２を介して転送される。そして、演算部４３３−２は、セレクタ３３２−２を介して入力された１番目のユニットラインのそれぞれの処理画素データＤＡＴ１に対して、制御部４３４−２から出力されたモード選択信号に応じた歪曲収差の歪補正処理の演算を行って生成した処理画素データＤＡＴ２を、遅延時間Ｄ２（レイテンシＤ２）だけ遅れたタイミングから画像処理モジュール３３−３に出力する。
【０１３８】
なお、以降の画像処理モジュール４３−２および画像処理モジュール３３−１の動作は、図７に示したそれぞれの処理モジュールの動作の一例と同様である。従って、画像処理モジュール４３−２および画像処理モジュール３３−１の動作に関する詳細な説明は省略する。
【０１３９】
画像処理モジュール３３−３は、前段の画像処理モジュール４３−２から１番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２が入力されると、画像処理モジュール３３−３に備えたセレクタ３３２−３は、入力されたそれぞれの処理画素データＤＡＴ２をそのまま、演算部３３３−３に転送する。そして、演算部３３３−３は、セレクタ３３２−３を介して前段の画像処理モジュール４３−２から入力された１番目のユニットラインのそれぞれの処理画素データＤＡＴ２に対して、制御部３３４−３から出力されたモード選択信号に応じたノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を、遅延時間Ｄ３（レイテンシＤ３）だけ遅れたタイミングから画像処理モジュール３３−４に出力する。
【０１４０】
その後、画像処理モジュール３３−３は、前段の画像処理モジュール４３−２から２番目のユニットラインのそれぞれの処理画素データＤＡＴ２が入力されると、セレクタ３３２−３は、入力されたそれぞれの処理画素データＤＡＴ２をそのまま、演算部３３３−３に転送する。これにより、演算部３３３−３は、２番目のユニットラインのそれぞれの処理画素データＤＡＴ２に対してノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を画像処理モジュール３３−４に出力する。
【０１４１】
以降同様に、画像処理モジュール３３−３は、前段の画像処理モジュール４３−２から順次入力されたそれぞれのユニットラインの処理画素データＤＡＴ２に対して演算部３３３−３がノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を、画像処理モジュール３３−４に順次出力する。
【０１４２】
このようにして、画像処理モジュール３３−３では、前段の画像処理モジュール４３−２から順次入力された処理画素データＤＡＴ２に対して直接ノイズ低減処理を行った処理画素データＤＡＴ３を、後段の画像処理モジュール３３−４に順次出力する。
【０１４３】
そして、画像処理モジュール３３−４は、前段の画像処理モジュール３３−３から順次入力されたそれぞれの処理画素データＤＡＴ３に対してエッジ強調処理を順次行って、生成した処理画素データＤＡＴ４を、後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）に順次出力する。なお、画像処理モジュール３３−４の動作は、図７に示したそれぞれの処理モジュールの動作の一例と同様である。従って、画像処理モジュール３３−４の動作に関する詳細な説明は省略する。
【０１４４】
このように、図８に示したパイプライン構成の画像処理部３０でも、図６に示したパイプライン構成の画像処理部３０と同様に、パイプラインストール状態を回避して一連のパイプライン処理を行うことができる。しかも、図８に示したパイプライン構成の画像処理部３０では、画像処理モジュール４３−２に備えた演算部４３３−２と、画像処理モジュール３３−３に備えた演算部３３３−３とが１つの演算部であると考え、画像処理モジュール４３−２に備えた入力バッファ４３１−２の記憶容量によって演算部４３３−２と演算部３３３−３との両方の演算部における処理の遅延を吸収する。つまり、図８に示したパイプライン構成の画像処理部３０では、画像処理モジュール４３−２が、複数の画像処理の演算機能（リサイズ処理、歪補正処理、形状補正処理など）を備えていることに伴って、入力バッファ４３１−２が多くのユニットライン記憶領域４３１１−２を備えているということを利用して、演算部４３３−２におけるレイテンシＤ２と演算部３３３−３におけるレイテンシＤ３を合わせた遅延時間を吸収する。言い換えれば、画像処理モジュール４３−２に備えた入力バッファ４３１−２を、画像処理モジュール４３−２と画像処理モジュール３３−３との両方の処理モジュールに備えたデータバッファ（入力バッファ）として扱うことによって、演算部４３３−２におけるレイテンシＤ２の吸収に加えて、演算部３３３−３におけるレイテンシＤ３を吸収するために用いる。つまり、入力バッファ４３１−２を、画像処理モジュール３３−２に備えた演算部３３３−３の緩衝用として、入力バッファ３３１−３の代わりに用いる。これにより、図８に示したパイプライン構成の画像処理部３０では、画像処理モジュール３３−３に備えた入力バッファ３３１−３の動作を停止するように制御することができ、入力バッファ３３１−３の消費電力を削減することができる。なお、入力バッファ３３１−３の動作の停止は、ＣＰＵ５０によって設定される。しかし、制御部３３４−３が、動作を停止するように入力バッファ３３１−３を制御してもよい。
【０１４５】
ここで、画像処理部３０においてパイプラインを構成する複数の処理モジュールに備えたそれぞれの演算部を１つの演算部として考えて、いずれかの処理モジュールに備えたデータバッファ（入力バッファ）に複数の演算部における処理の遅延を吸収させる構成にするための考え方について説明する。図１０は、本発明の実施形態の画像処理装置１に備えた画像処理部３０における画像処理モジュール４３に備えた入力バッファ４３１の記憶容量と画像処理に用いる入力バッファ４３１の記憶容量との関係の一例を説明する図である。図１０には、画像処理モジュール４３に備えた入力バッファ４３１の記憶容量と、画像処理モジュール４３が実行する画像処理において必要な画素データのユニットライン数、つまり、実際に使用する記憶容量との関係の一例を模式的に示している。
【０１４６】
図５において説明したように、画像処理モジュール４３において必要なユニットライン数、つまり、ユニットライン記憶領域４３１１の数は、実行する画像処理に応じてＣＰＵ５０によって設定された歪み係数の値やリサイズ率の値などのパラメータによって異なる。このため、画像処理モジュール４３−２に備えた入力バッファ４３１−２の記憶容量の中で、画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いることができる記憶容量、つまり、余っている記憶容量は、画像処理モジュール４３−２が実行する画像処理の演算によって異なる。図１０には、画像処理モジュール４３−２が画像処理（画像補間処理）を行う際に使用する入力バッファ４３１−２の記憶容量を表す記憶領域の範囲（以下、「補間領域」という）と、画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いることができる記憶容量を表す記憶領域の範囲（以下、「バッファ領域」という）との関係を模式的に示している。
【０１４７】
例えば、画像処理モジュール４３−２が歪曲収差の歪補正処理を行う場合、歪補正処理に必要な画素データのユニットライン数は、撮像装置に備えたレンズの歪曲収差の特性に基づいてＣＰＵ５０によって設定レジスタ３３４１に設定された歪み係数の値（パラメータ）に応じて決まる。このため、図１０（ａ−１）〜図１０（ａ−３）に示したように、画像処理モジュール４３−２に備えた入力バッファ４３１−２において、歪曲収差の歪補正処理（画像補間処理）を行うために使用するユニットライン数に対応する補間領域と、画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いることができるバッファ領域とは、歪み係数の値ごとに異なる。
【０１４８】
より具体的には、歪み係数の値が小さい場合には、図１０（ａ−１）に示したように、画像処理モジュール４３−２は、少ないユニットライン数の画素データを用いて歪曲収差の歪補正処理を行うことができるため、入力バッファ４３１−２内の補間領域は狭い範囲になり、広い範囲のバッファ領域を画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いることができる。つまり、入力バッファ４３１−２内に広い範囲のバッファ領域を確保することができる。このため、画像処理モジュール４３−２では、入力バッファ４３１−２内に確保したバッファ領域の範囲内であれば、画像処理モジュール３３−３に備えた入力バッファ３３１−３が多くのユニットライン記憶領域３３１１−３を備えたデータバッファであっても、入力バッファ４３１−２を入力バッファ３３１−３の代わりに用いることができる。
【０１４９】
しかし、図１０（ａ−２）、図１０（ａ−３）に示したように、歪み係数の値が大きくなるにつれて、歪曲収差の歪補正処理に用いるユニットライン数が多くなり、入力バッファ４３１−２内の補間領域が広い範囲になる。つまり、入力バッファ４３１−２内に確保することができるバッファ領域は、歪み係数の値が大きくなるにつれて、逆に狭い範囲となっていく。このため、画像処理モジュール４３−２では、入力バッファ４３１−２を入力バッファ３３１−３の代わりに用いることが困難になってくる。
【０１５０】
また、例えば、画像処理モジュール４３−２がリサイズ処理を行う場合、リサイズ処理に必要な画素データのユニットライン数は、ＣＰＵ５０によって設定レジスタ３３４１に設定されたリサイズ率の値（パラメータ）に応じて決まる。このため、図１０（ｂ−１）および図１０（ｂ−２）に示したように、画像処理モジュール４３−２に備えた入力バッファ４３１−２において、リサイズ処理（画像補間処理）を行うために使用するユニットライン数に対応する補間領域と、画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いることができるバッファ領域とは、リサイズ率の値ごとに異なる。
【０１５１】
より具体的には、例えば、画像を縮小する場合において、リサイズ率の値が小さい場合には、図１０（ｂ−１）に示したように、画像処理モジュール４３−２は、少ないユニットライン数の範囲内の予め定めた位置の画素データを読み出してリサイズ処理を行うことができるため、入力バッファ４３１−２内の補間領域は狭い範囲になり、広い範囲のバッファ領域を確保することができる。このため、画像処理モジュール４３−２では、確保したバッファ領域を、画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いることができる。
【０１５２】
一方、リサイズ率の値が大きい場合には、図１０（ｂ−２）に示したように、画像処理モジュール４３−２は、より多くのユニットライン数の範囲内の予め定めた位置の画素データを読み出すことによってリサイズ処理を行うため、入力バッファ４３１−２内の補間領域が広い範囲になり、入力バッファ４３１−２内に確保することができるバッファ領域は、リサイズ率の値が大きくなると、逆に狭い範囲となる。このため、画像処理モジュール４３−２では、入力バッファ４３１−２を入力バッファ３３１−３の代わりに用いることが困難になってくる。
【０１５３】
なお、画像処理モジュール４３が倍率色収差の歪補正処理を行う場合、台形補正などの形状補正処理を行う場合、また、その他のフィルタ処理を行う場合などにおける入力バッファ４３１の記憶容量の決定方法も図１０に示した一例と同様に考えることができる。
【０１５４】
ＣＰＵ５０は、画像処理部３０において実行する画像処理（パイプライン処理）が決定すると、上述したような考え方に基づいて、画像処理部３０においてパイプラインを構成する。つまり、画像処理部３０において実行するパイプライン処理が決定すると、パイプラインにおいて直列に接続するそれぞれの処理モジュールが決定されるため、ＣＰＵ５０は、それぞれの処理モジュールに備えているデータバッファの記憶容量と、それぞれの処理モジュールが実際に使用する記憶容量とを把握することができる。このとき、ＣＰＵ５０は、パイプラインを構成するそれぞれの処理モジュールに備えたデータバッファ内に確保することができるバッファ領域の大きさを求める。そして、ＣＰＵ５０は、把握したそれぞれの記憶容量に基づいて、パイプライン構成内で流れるそれぞれのデータの経路を設定する。つまり、ＣＰＵ５０は、求めたバッファ領域の大きさに基づいて、パイプラインを構成するそれぞれの処理モジュールごとに、入力データをデータバッファに一旦記憶してから読み出して演算部に転送するか、入力データをそのまま演算部に転送するかを決定する。
【０１５５】
より具体的には、例えば、図６および図８に示したパイプライン構成の一例では、ＣＰＵ５０は、画像処理モジュール４３−２に備えた入力バッファ４３１−２内に確保することができるバッファ領域の大きさ、つまり、ユニットライン数（ユニットライン記憶領域４３１１−２の数）を求める。そして、ＣＰＵ５０は、求めた入力バッファ４３１−２におけるバッファ領域（ユニットライン数）に基づいて、画像処理モジュール３３−３において、処理画素データＤＡＴ２を入力バッファ３３１−３に一旦記憶してから読み出して演算部３３３−３に転送する経路を選択するか、処理画素データＤＡＴ２をそのまま演算部３３３−３に転送する経路を選択するかを決定する。そして、ＣＰＵ５０は、ここで決定した経路に基づいて、画像処理モジュール３３−３に備えた制御部３３４−３内の設定レジスタ３３４１−３に、演算部３３３−３に処理画素データＤＡＴ２を転送する経路を選択するセレクタ３３２−３のパラメータを設定する。すなわち、ＣＰＵ５０は、求めた入力バッファ４３１−２のバッファ領域（ユニットライン数）が画像処理モジュール３３−３に備えた入力バッファ３３１−３が処理画素データＤＡＴ２を一時記憶するユニットライン数（ユニットライン記憶領域３３１１−３の数）よりも大きい場合には、入力された処理画素データＤＡＴ２をそのまま演算部３３３−３に転送することを表すセレクタ３３２−３のパラメータを設定する。一方、ＣＰＵ５０は、求めた入力バッファ４３１−２のバッファ領域（ユニットライン数）が画像処理モジュール３３−３に備えた入力バッファ３３１−３が処理画素データＤＡＴ２を一時記憶するユニットライン数よりも小さい場合には、入力された処理画素データＤＡＴ２を入力バッファ３３１−３に一時記憶してから読み出して演算部３３３−３に転送することを表すセレクタ３３２−３のパラメータを設定する。そして、ＣＰＵ５０は、ここで決定した経路に基づいて、接続切り替え部３１に対して、画像処理部３０内にパイプラインを構成したそれぞれの処理モジュールの接続を切り替えるための制御（設定）を行う。
【０１５６】
なお、例えば、画像処理モジュール３３−３も、複数の画像処理の演算機能を備えた構成であることも考えられる。この場合には、画像処理モジュール３３−３が実行する画像処理の演算によって、入力バッファ３３１−３に処理画素データＤＡＴ２を一時記憶するユニットライン数（ユニットライン記憶領域３３１１−３の数）が異なる。このため、ＣＰＵ５０は、画像処理モジュール３３−３に備えた演算部３３３−３が画像処理の演算を実行する際のレイテンシも含めて、処理画素データＤＡＴ２を入力バッファ３３１−３に一旦記憶してから読み出して演算部３３３−３に転送する経路を選択するか、処理画素データＤＡＴ２をそのまま演算部３３３−３に転送する経路を選択するかを決定する。
【０１５７】
また、画像処理モジュール４３−２では、入力バッファ４３１−２を画像処理モジュール３３−２に備えた入力バッファ３３１−３の代わりに用いた後でも、入力バッファ４３１−２には、バッファ領域に余裕がある（余っている）ことも考えられる。この場合には、余裕がある（余っている）入力バッファ４３１−２のバッファ領域を、パイプライン構成においてさらに後段に接続された他の処理モジュールに備えたデータバッファの代わりとして用いることもできる。
【０１５８】
次に、ＣＰＵ５０が画像処理部３０内にパイプラインを構成する際の処理手順、つまり、ＣＰＵ５０によるそれぞれの処理モジュールに備えたデータバッファの制御方法について説明する。図１１は、本発明の実施形態の画像処理装置１に備えた画像処理部３０においてパイプラインを構成する際の処理手順を示したフローチャートである。なお、以下の説明においては、図６および図８に示したパイプライン構成の一例において、画像処理モジュール４３−２に備えた入力バッファ４３１−２の記憶容量の一部を画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いる設定を行う場合について説明する。
【０１５９】
画像処理装置１において実行する画像処理が決定すると、ＣＰＵ５０は、まず、画像処理部３０において決定した画像処理を実行する際にそれぞれの処理モジュールが実際に使用するデータバッファの記憶容量を算出する（ステップＳ１００）。図６および図８に示したパイプライン構成の一例では、パイプラインを構成する画像処理モジュール４３−２が実際に使用する入力バッファ４３１−２の記憶容量（補間領域）と、画像処理モジュール３３−３が実際に使用する入力バッファ３３１−３の記憶容量を算出する。
【０１６０】
なお、ステップＳ１００においてＣＰＵ５０が算出する画像処理モジュール３３−３が実際に使用する入力バッファ３３１−３の記憶容量は、画像処理モジュール３３−３が予め定めた１つの画像処理の機能を備えた構成の処理モジュールである場合には、画像処理モジュール３３−３に備えた入力バッファ３３１−３の記憶容量である。なお、画像処理モジュール３３−３が１つの画像処理の機能を実行する場合においても、例えば、フィルタ係数などのパラメータによって実際に使用する入力バッファ３３１−３の記憶容量が変わる場合もある。この場合、ＣＰＵ５０は、例えば、フィルタ係数などのパラメータに基づいて、画像処理モジュール３３−３が実際に使用する入力バッファ３３１−３の記憶容量を算出する。また、画像処理モジュール３３−３が複数の画像処理の演算機能を備えた構成の処理モジュールである場合にも、画像処理モジュール３３−３が実行する画像処理の演算において使用する入力バッファ３３１−３の記憶容量が、ステップＳ１００においてＣＰＵ５０が算出する画像処理モジュール３３−３が実際に使用する入力バッファ３３１−３の記憶容量である。
【０１６１】
また、ステップＳ１００においてＣＰＵ５０は、画像処理モジュール４３−２が行う画像処理（画像補間処理）や、この画像処理（画像補間処理）の設定値（パラメータ）に基づいて、画像処理モジュール４３−２が実際に使用する入力バッファ４３１−２の記憶容量（補間領域）を算出する。
【０１６２】
続いて、ＣＰＵ５０は、記憶容量を提供する処理モジュールのデータバッファに確保することができる記憶容量（バッファ領域）を算出する（ステップＳ１０１）。図６および図８に示したパイプライン構成の一例では、記憶容量を提供する処理モジュールである画像処理モジュール４３−２に備えた入力バッファ４３１−２に確保することができるバッファ領域を算出する。
【０１６３】
なお、ステップＳ１０１においてＣＰＵ５０は、入力バッファ４３１−２の全体の記憶容量と、ステップＳ１００において算出した画像処理モジュール４３−２が実際に使用する入力バッファ４３１−２の記憶容量（補間領域）との差分を取ることによって、画像処理モジュール４３−２に備えた入力バッファ４３１−２に確保することができる記憶容量（バッファ領域）を算出する。
【０１６４】
続いて、ＣＰＵ５０は、算出したバッファ領域が、記憶容量の提供を受ける処理モジュールが使用するデータバッファの記憶容量を満たすか否かを判定する（ステップＳ１０２）。図６および図８に示したパイプライン構成の一例では、ステップＳ１０１において算出したバッファ領域が、画像処理モジュール４３−２に備えた入力バッファ４３１−２の記憶容量の提供を受ける処理モジュールである画像処理モジュール３３−３に対して、ステップＳ１００において算出した記憶容量を満足するか否かを判定する。
【０１６５】
ステップＳ１０２において、算出したバッファ領域が、記憶容量の提供を受ける処理モジュールが使用するデータバッファの記憶容量を満たさない判定した場合（ステップＳ１０２の“ＮＯ”）、ＣＰＵ５０は、記憶容量の提供を受ける処理モジュールの入力データをデータバッファに一旦記憶してから読み出して演算部に転送する経路を選択する（ステップＳ１０３）。つまり、ＣＰＵ５０は、入力バッファ４３１−２に確保されたバッファ領域（記憶容量）が、画像処理モジュール３３−３が画像処理を実行する際に使用する入力バッファ３３１−３の記憶容量未満である場合には、画像処理モジュール３３−３の入力データ（処理画素データＤＡＴ２）を入力バッファ３３１−３に一旦記憶してから読み出して演算部３３３−３に転送する経路を選択する。
【０１６６】
一方、ステップＳ１０２において、算出したバッファ領域が、記憶容量の提供を受ける処理モジュールが使用するデータバッファの記憶容量を満たすと判定した場合（ステップＳ１０２の“ＹＥＳ”）、ＣＰＵ５０は、記憶容量の提供を受ける処理モジュールの入力データを演算部に直接転送する経路を選択する（ステップＳ１０４）。つまり、ＣＰＵ５０は、入力バッファ４３１−２に確保されたバッファ領域（記憶容量）が、画像処理モジュール３３−３が画像処理を実行する際に使用する入力バッファ３３１−３の記憶容量以上である場合には、画像処理モジュール３３−３の入力データ（処理画素データＤＡＴ２）をそのまま演算部３３３−３に転送する経路を選択する。
【０１６７】
続いて、ＣＰＵ５０は、記憶容量の提供を受ける他の処理モジュールがあるか否かを判定する（ステップＳ１０５）。つまり、ＣＰＵ５０は、入力バッファ４３１−２に確保されたバッファ領域（記憶容量）を提供する画像処理モジュール３３−３以外の処理モジュールがあるか否かを確認する。
【０１６８】
ステップＳ１０５において、記憶容量の提供を受ける他の処理モジュールがあると判定した場合（ステップＳ１０５の“ＹＥＳ”）、ＣＰＵ５０は、ステップＳ１０１に戻って、入力バッファ４３１−２に確保されたバッファ領域（記憶容量）を画像処理モジュール３３−３に提供した後でも残っているバッファ領域（記憶容量）を算出し、ステップＳ１０２〜ステップＳ１０５までの処理を繰り返す。
【０１６９】
一方、ステップＳ１０５において、記憶容量の提供を受ける他の処理モジュールがないと判定した場合（ステップＳ１０５の“ＮＯ”）、ＣＰＵ５０は、ステップＳ１０６に進む。
【０１７０】
続いて、ＣＰＵ５０は、パイプラインを構成するそれぞれの処理モジュールに、ステップＳ１０１〜ステップＳ１０５までの処理において選択した入力データの経路を設定する（ステップＳ１０６）。より具体的には、ステップＳ１０３によって画像処理モジュール３３−３における入力データ（処理画素データＤＡＴ２）の経路を選択した場合には、ＣＰＵ５０は、画像処理モジュール３３−３に備えた制御部３３４−３内の設定レジスタ３３４１−３に、入力された処理画素データＤＡＴ２を入力バッファ３３１−３に一時記憶してから読み出して演算部３３３−３に転送することを表すセレクタ３３２−３のパラメータを設定する。一方、ステップＳ１０４によって画像処理モジュール３３−３における入力データ（処理画素データＤＡＴ２）の経路を選択した場合には、ＣＰＵ５０は、入力された処理画素データＤＡＴ２をそのまま演算部３３３−３に転送することを表すセレクタ３３２−３のパラメータを設定する。
【０１７１】
続いて、ＣＰＵ５０は、パイプラインを構成するそれぞれの処理モジュールの接続の切り替えを、接続切り替え部３１に設定する（ステップＳ１０７）。より具体的には、ステップＳ１０３によって画像処理モジュール３３−３が入力データをデータバッファに一旦記憶してから演算部に転送する経路を選択した場合には、ＣＰＵ５０は、画像処理モジュール３３−３のデータリクエスト信号ＲＥＱの出力端子と、画像処理モジュール４３−２のデータリクエスト信号ＲＥＱの入力端子とを接続し、画像処理モジュール４３−２のデータアクノリッジ信号ＡＣＫの出力端子と、画像処理モジュール３３−３のデータアクノリッジ信号ＡＣＫの入力端子とを接続するように、接続切り替え部３１を制御する。一方、ステップＳ１０４によって画像処理モジュール３３−３が入力データを演算部に直接転送する経路を選択した場合には、ＣＰＵ５０は、画像処理モジュール３３−３の後段の画像処理モジュール３３−４のデータリクエスト信号ＲＥＱの出力端子と、画像処理モジュール４３−２のデータリクエスト信号ＲＥＱの入力端子とを接続し、画像処理モジュール４３−２のデータアクノリッジ信号ＡＣＫの出力端子と、画像処理モジュール３３−４のデータアクノリッジ信号ＡＣＫの入力端子とを接続するように、接続切り替え部３１を制御する。
【０１７２】
このステップＳ１０６およびステップＳ１０７の処理によって、画像処理部３０内に、図６または図８に示したパイプライン構成の一例のようなパイプラインが構成される。なお、ＣＰＵ５０は、上述した処理を、画像処理部３０において実行する画像処理（パイプライン処理）が決定するごとに行う。これにより、画像処理装置１では、決定した画像処理部３０の画像処理（パイプライン処理）ごとに、最適なパイプライン構成が構成される。
【０１７３】
このように、画像処理装置１では、画像処理部３０においてパイプラインを構成する複数の処理モジュールに備えたそれぞれの演算部を１つの演算部として考え、多くのユニットライン数の画素データを一時記憶することができる処理モジュールに備えたデータバッファにおいて画像処理の演算に使用せずに余っている記憶容量を、他の処理モジュールに備えたデータバッファの代わりに用いる。
【０１７４】
ここで、仮に、他の処理モジュールに備えたデータバッファの代わりに用いることができる記憶容量（余っている記憶容量）が少ないにも関わらず、入力データをそのまま演算部に転送する構成にしてしまった場合のそれぞれの処理モジュールの動作について説明する。図１２は、本発明の実施形態の画像処理装置１に備えた画像処理部３０において異なる設定をした場合の画像処理モジュール（画像処理モジュール３３および画像処理モジュール４３）の動作の一例を示したタイミングチャートである。図１２には、画像処理部３０が、図８に示したパイプライン構成によって一連のパイプライン処理を行う場合において、画像処理モジュール３３−１から画像処理モジュール３３−４までの処理画素データの受け渡しの一例を示している。なお、図１２に示したそれぞれの処理モジュールの動作の一例は、本発明の画像処理装置１における効果を説明するための一例であり、本発明の画像処理装置１において実行する動作とは異なるものである。
【０１７５】
なお、図１２に示したそれぞれの処理モジュールの動作の一例においても、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様に、それぞれの処理モジュールにおける入力データおよび出力データ（処理画素データＤＡＴ）、データリクエスト信号ＲＥＱ、およびバッファ制御信号（バッファライト信号およびバッファリード信号）を示している。また、図１２に示したそれぞれの処理モジュールの動作の一例においても、データアクノリッジ信号ＡＣＫおよびデータ有効信号ＶＡＬＩＤのタイミングは、出力データ（処理画素データＤＡＴ）のタイミングと同様のタイミングであるものとし、それぞれの処理モジュールにおけるデータアクノリッジ信号ＡＣＫおよびデータ有効信号ＶＡＬＩＤの図示を省略している。
【０１７６】
また、図１２の説明においても、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様に、１つのユニットラインを１つの処理単位として画像処理を行うものとし、入力データ（処理画素データＤＡＴ）、バッファライトの期間、バッファリードの期間、および出力データ（処理画素データＤＡＴ）のそれぞれに、何番目のユニットラインであるかを表す数字を示して説明する。また、図１２の説明においても、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様に、バッファライトおよびバッファリードのそれぞれの期間に示した何番目のユニットラインであるかを表す数字に続く「（）：括弧」内に、入力バッファ３３１および入力バッファ４３１内のいずれのユニットライン記憶領域４３１１に処理画素データＤＡＴを一時記憶するかを表す数字を示して説明する。
【０１７７】
なお、図１２の説明においては、画像処理モジュール３３−１は、５つのユニットライン分の処理画素データＤＡＴ０を記憶することができる記憶容量の入力バッファ３３１を備え、画像処理モジュール３３−３および画像処理モジュール３３−４のそれぞれは、２つのユニットライン分の処理画素データＤＡＴを記憶することができる記憶容量の入力バッファ３３１を備えた構成であるものとして説明する。ただし、図１２の説明においては、画像処理モジュール３３−３に備えた入力バッファ３３１の代わりに用いることができる記憶容量（余っている記憶容量）が少ないことを表すため、画像処理モジュール４３−２は、２つのユニットライン分の処理画素データＤＡＴ１を記憶することができる記憶容量の入力バッファ４３１を備えた構成であるものとして説明する。つまり、画像処理モジュール３３−１に備えた入力バッファ３３１は、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様に、５つのユニットライン記憶領域３３１１を備え、画像処理モジュール３３−３および画像処理モジュール３３−４のそれぞれに備えた入力バッファ３３１は、２つのユニットライン記憶領域３３１１を備えているものとして説明する。そして、画像処理モジュール４３−２に備えた入力バッファ４３１は、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と異なり、２つのユニットライン記憶領域４３１１を備えているものとして説明する。
【０１７８】
また、図１２の説明においては、画像処理部３０がパイプライン処理を開始した後、２つのユニットライン分の処理画素データＤＡＴ１が画像処理モジュール４３−２に備えた入力バッファ４３１−２にすでに一時記憶され、次に処理を行う５つのユニットライン分の入力データ（画素データ）が画像処理モジュール３３−１に備えた入力バッファ３３１−１にすでに一時記憶されている状態からの動作を説明する。つまり、画像処理モジュール４３−２に備えた入力バッファ４３１−２の１番目および２番目のユニットライン記憶領域４３１１−２に、１番目および２番目のユニットラインの処理画素データＤＡＴ１がすでに一時記憶され、画像処理モジュール３３−１に備えた入力バッファ３３１−１の１番目〜５番目のユニットライン記憶領域３３１１−１に、３番目〜７番目のユニットラインの処理画素データＤＡＴ０がすでに一時記憶されている状態からの動作を説明する。
【０１７９】
なお、図１２においても、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様に、データリクエスト信号ＲＥＱが“Ｈｉｇｈ”レベルの期間が、それぞれの処理モジュールが処理画素データＤＡＴを受け付けることができる状態であるリクエスト期間を表し、データリクエスト信号ＲＥＱが“Ｌｏｗ”レベルの期間が、それぞれの処理モジュールが処理画素データＤＡＴを受け付けることができない状態であるリクエストネゲート期間を表している。
【０１８０】
上述した状態のとき、画像処理モジュール３３−４に備えた制御部３３４−４が、処理画素データＤＡＴ３の出力を要求するデータリクエスト信号ＲＥＱ４を画像処理モジュール４３−２に出力すると、画像処理モジュール４３−２に備えた制御部４３４−２は、後段の画像処理モジュール３３−４から入力されたデータリクエスト信号ＲＥＱ４に応じて、データアクノリッジ信号ＡＣＫ２を出力する。そして、制御部４３４−２は、入力バッファ４３１−２に一時記憶している１番目のユニットラインのそれぞれの処理画素データＤＡＴ１を読み出すためのバッファリード信号を生成する。これにより、演算部４３３−２には、１番目のユニットラインのバッファリードの期間に、入力バッファ４３１−２の１番目のユニットライン記憶領域４３１１−２から読み出されたそれぞれの処理画素データＤＡＴ１がセレクタ３３２−２を介して転送される。そして、演算部４３３−２は、セレクタ３３２−２を介して入力された１番目のユニットラインのそれぞれの処理画素データＤＡＴ１に対して、制御部４３４−２から出力されたモード選択信号に応じた歪曲収差の歪補正処理の演算を行って生成した処理画素データＤＡＴ２を、遅延時間Ｄ２（レイテンシＤ２）だけ遅れたタイミングから画像処理モジュール３３−３に出力する。
【０１８１】
なお、制御部４３４−２は、入力バッファ４３１−２に一時記憶している１番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了すると、引き続き、２番目のユニットラインの処理画素データＤＡＴ１を入力バッファ４３１−２から読み出すためのバッファリード信号を順次生成する。これにより、演算部４３３−２は、セレクタ３３２−２を介して入力された２番目のユニットラインのそれぞれの処理画素データＤＡＴ１に対して歪曲収差の歪補正処理の演算を行って生成した２番目のユニットラインの処理画素データＤＡＴ２を、画像処理モジュール３３−３に出力する。
【０１８２】
また、制御部４３４−２によって１番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了すると、入力バッファ４３１−２は、１番目のユニットライン記憶領域４３１１−２が空いている状態になるため、制御部４３４−２は、画像処理モジュール３３−１に出力しているデータリクエスト信号ＲＥＱ２を“Ｈｉｇｈ”レベルにする。これにより、画像処理モジュール３３−１は、データリクエスト信号ＲＥＱ２に応じて、入力バッファ３３１に一時記憶している３番目のユニットラインのそれぞれの画素データに対してＹＣ処理の演算を行って生成した３番目のユニットラインに対応した処理画素データＤＡＴ１を、遅延時間Ｄ１（レイテンシＤ１）だけ遅れたタイミングから、画像処理モジュール４３−２に出力する。制御部４３４−２は、前段の画像処理モジュール３３−１から３番目のユニットラインに対応した処理画素データＤＡＴ１が入力されると、入力された３番目のユニットラインの処理画素データＤＡＴ１を入力バッファ４３１−２内の空いている１番目のユニットライン記憶領域４３１１−２に書き込むためのバッファライト信号を生成する。これにより、３番目のユニットラインのバッファライトの期間において、３番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ１が、入力バッファ４３１−２内の１番目のユニットライン記憶領域４３１１−２に書き込まれ、一時記憶される。
【０１８３】
また、制御部４３４−２によって２番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了すると、入力バッファ４３１−２は、２番目のユニットライン記憶領域４３１１−２が空いている状態になるため、制御部４３４−２は、画像処理モジュール３３−１に出力しているデータリクエスト信号ＲＥＱ２を“Ｈｉｇｈ”レベルの状態を維持する。これにより、画像処理モジュール３３−１は、データリクエスト信号ＲＥＱ２に応じて、引き続き、入力バッファ３３１に一時記憶している４番目のユニットラインのそれぞれの画素データに対してＹＣ処理の演算を行って生成した４番目のユニットラインに対応した処理画素データＤＡＴ１を、画像処理モジュール４３−２に出力する。制御部４３４−２は、前段の画像処理モジュール３３−１から４番目のユニットラインに対応した処理画素データＤＡＴ１が入力されると、入力された４番目のユニットラインの処理画素データＤＡＴ１を入力バッファ４３１−２内の空いている２番目のユニットライン記憶領域４３１１−２に書き込むためのバッファライト信号を生成する。これにより、４番目のユニットラインのバッファライトの期間において、４番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ１が、入力バッファ４３１−２内の２番目のユニットライン記憶領域４３１１−２に書き込まれ、一時記憶される。
【０１８４】
また、制御部４３４−２は、入力バッファ４３１−２内の２番目のユニットライン記憶領域４３１１−２への４番目のユニットラインのそれぞれの処理画素データＤＡＴ１を開始すると、入力バッファ４３１−２の全てのユニットライン記憶領域４３１１−２が空いていない状態になる。このため、制御部４３４−２は、画像処理モジュール４３−２が処理画素データＤＡＴ１を受け付けることができない状態になったことを表すために、画像処理モジュール３３−１に出力しているデータリクエスト信号ＲＥＱ２を“Ｌｏｗ”レベルにする。これにより、画像処理モジュール３３−１は、データリクエスト信号ＲＥＱ２に応じて、入力バッファ３３１に一時記憶している５番目以降のユニットラインのそれぞれの画素データに対してＹＣ処理の演算を行って生成したそれぞれのユニットラインに対応した処理画素データＤＡＴ１の画像処理モジュール４３−２への出力を停止する。
【０１８５】
その後、同様に、制御部４３４−２は、入力バッファ４３１−２のユニットライン記憶領域４３１１−２の状態に応じてデータリクエスト信号ＲＥＱ２のレベルを変更することによって、画像処理モジュール４３−２が処理画素データＤＡＴ１を受け付けることができるか否かの状態を画像処理モジュール３３−１に通知する。そして、制御部４３４−２は、それぞれのユニットラインのバッファライトの期間において、前段の画像処理モジュール３３−１から入力された５番目以降のユニットラインに対応したそれぞれの処理画素データＤＡＴ１を順次、入力バッファ４３１−２に一時記憶する。
【０１８６】
このようにして、画像処理モジュール４３−２は、前段の画像処理モジュール３３−１から入力された処理画素データＤＡＴ１を入力バッファ４３１−２に一旦記憶してから読み出して、歪曲収差の歪補正処理を行った処理画素データＤＡＴ２を、後段の画像処理モジュール３３−３に順次出力する。
【０１８７】
ところで、画像処理モジュール４３−２では、図１２に示したように、入力バッファ４３１−２に一時記憶している２番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了したときには、３番目のユニットラインの処理画素データＤＡＴ１が入力バッファ４３１−２に一時記憶されていない状態である。このため、制御部３３４−４は、２番目のユニットラインのそれぞれの処理画素データＤＡＴ１の読み出しが終了した後に、引き続き３番目のユニットラインの処理画素データＤＡＴ１を入力バッファ４３１−２から読み出すことができない。このことにより、画像処理モジュール４３−２から後段の画像処理モジュール３３−３への３番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２の出力は、一旦停止される。そして、画像処理モジュール４３−２からの３番目のユニットラインのそれぞれの処理画素データＤＡＴ２の出力が再開されるのは、制御部４３４−２によって３番目のユニットラインの処理画素データＤＡＴ１が入力バッファ４３１−２に一時記憶された後に読み出され、演算部４３３−２が歪曲収差の歪補正処理の演算を行って３番目のユニットラインの処理画素データＤＡＴ２を生成した後のタイミングになる。このときも、画像処理モジュール４３−２から出力される３番目のユニットラインに対応した処理画素データＤＡＴ２は、演算部４３３−２におけるレイテンシＤ２だけ遅れて出力されることになる。
【０１８８】
画像処理モジュール３３−３は、前段の画像処理モジュール４３−２から１番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ２が入力されると、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様に、入力されたそれぞれの処理画素データＤＡＴ２をそのまま演算部３３３−３に転送される。そして、演算部３３３−３は、転送された１番目のユニットラインのそれぞれの処理画素データＤＡＴ２に対してノイズ低減処理の演算を行って生成した処理画素データＤＡＴ３を、遅延時間Ｄ３（レイテンシＤ３）だけ遅れたタイミングから画像処理モジュール３３−４に出力する。
【０１８９】
このとき、画像処理モジュール３３−３でも、図１２に示したように、画像処理モジュール４３−２からの３番目のユニットラインのそれぞれの処理画素データＤＡＴ２の出力が一旦停止されることに伴って、画像処理モジュール３３−３から後段の画像処理モジュール３３−４への３番目のユニットラインに対応したそれぞれの処理画素データＤＡＴ３の出力が一旦停止される。そして、画像処理モジュール３３−３でも、３番目のユニットラインのそれぞれの処理画素データＤＡＴ３の出力が再開されるのは、画像処理モジュール４３−２からの３番目のユニットラインのそれぞれの処理画素データＤＡＴ２の出力が再開され、演算部３３３−３がノイズ低減処理の演算を行って３番目のユニットラインの処理画素データＤＡＴ３を生成した後のタイミングになる。このときも、画像処理モジュール３３−３から出力される３番目のユニットラインに対応した処理画素データＤＡＴ３は、演算部３３３−３におけるレイテンシＤ３だけ遅れて出力される。
【０１９０】
このことから、画像処理モジュール３３−４には、２番目のユニットラインと３番目のユニットラインとの間に、処理画素データＤＡＴ３が入力されていない期間が発生してしまう。この画像処理モジュール３３−４に処理画素データＤＡＴ３が入力されていない期間が、図１２に示したそれぞれの処理モジュールの動作の一例におけるパイプラインストール状態の期間である。
【０１９１】
なお、図１２に示したそれぞれの処理モジュールの動作の一例においても、画像処理モジュール３３−４の動作は、図９に示した本発明の画像処理装置１におけるそれぞれの処理モジュールの動作の一例と同様であるため、画像処理モジュール３３−４に処理画素データＤＡＴ３が入力されていないパイプラインストール状態の期間が、画像処理モジュール３３−４の後段の処理モジュール（例えば、出力ＤＭＡモジュール３４）にも伝搬することになる。
【０１９２】
このように、他の処理モジュールに備えたデータバッファの代わりに用いることができる記憶容量（余っている記憶容量）が少ないにも関わらず、入力データをそのまま演算部に転送する構成にしてしまった場合には、一連のパイプライン処理において、パイプラインストール状態が発生してしまう。つまり、ＣＰＵ５０が、画像処理部３０内にパイプラインを構成したそれぞれの処理モジュールに対して、入力データを演算部に転送する経路を正しく設定しないと、構成したパイプラインにおいてパイプラインストール状態が発生してしまう。
【０１９３】
しかしながら、本発明の画像処理装置１では、上述したような方法によって、ＣＰＵ５０が画像処理部３０内にパイプラインを構成したそれぞれの処理モジュールに対して、入力データを演算部に転送する経路を正しく設定することによって、構成したパイプラインにおけるパイプラインストール状態を回避して一連のパイプライン処理を行うことができる。しかも、いずれかの処理モジュールに備えたデータバッファを、他の処理モジュールに備えたデータバッファの代わりに用いることにより、ＣＰＵ５０は、他の処理モジュールに備えたデータバッファ動作を停止するように制御することができ、停止したデータバッファの消費電力を削減することができる。
【０１９４】
本実施形態によれば、メモリ（ＤＲＡＭ２０）と、入力されたデータ（画素データまたは処理画素データ）に対して予め定めた処理を行う複数の処理モジュール（画像処理モジュール３３−１〜画像処理モジュール３３−５）が直列に接続されたパイプラインが構成され、それぞれの処理モジュール（画像処理モジュール３３および画像処理モジュール４３）が処理を順次行うことによってパイプライン処理を行う画像処理部（画像処理部３０）とがデータバス（ＤＭＡバス１０）に接続され、画像処理部３０が行うパイプライン処理の設定を行うシステム制御部（ＣＰＵ５０）を備えた画像処理装置（画像処理装置１）であって、画像処理モジュール３３および画像処理モジュール４３のそれぞれは、画素データまたは処理画素データを処理の単位ごとに一時的に記憶するデータバッファ（入力バッファ３３１または入力バッファ４３１）と、ＣＰＵ５０による処理内容の設定（処理モードやパラメータ）に応じて、処理の演算を行う演算部（演算部３３３または演算部４３３）と、ＣＰＵ５０による画素データまたは処理画素データの転送経路の設定（パラメータ）に応じて、画素データまたは処理画素データを演算部３３３または演算部４３３に転送する画像処理モジュール３３または画像処理モジュール４３内の経路を選択すると共に、入力バッファ３３１または入力バッファ４３１の動作を制御する制御部（制御部３３４または制御部４３４）と、を備え、画像処理部３０は、ＣＰＵ５０によるパイプライン構成の設定に応じて、パイプラインを構成する処理モジュール（画像処理モジュール３３および画像処理モジュール４３）同士の接続を切り替える接続切り替え部（接続切り替え部３１）、をさらに備える画像処理装置（画像処理装置１）が構成される。
【０１９５】
また、本実施形態によれば、複数の画像処理モジュール３３および画像処理モジュール４３の内、少なくとも１つの処理モジュールは、予め定めた複数の処理の演算を排他的に行う演算部である第２の演算部（演算部４３３）を備えた第２の処理モジュール（画像処理モジュール４３）であり、ＣＰＵ５０は、画像処理モジュール４３がデータに対して行う処理の内容、および画像処理モジュール４３に隣接して接続された画像処理モジュール３３および画像処理モジュール４３に備えた入力バッファ３３１または入力バッファ４３１の記憶容量に基づいて、転送経路の設定、およびパイプライン構成の設定を行う画像処理装置１が構成される。
【０１９６】
また、本実施形態によれば、ＣＰＵ５０は、画像処理モジュール４３が処理内容の設定に応じた処理の演算を行う際に余っている入力バッファ４３１の記憶容量（バッファ領域）がある場合、演算部４３３と、隣接して接続された画像処理モジュール３３に備えた演算部３３３とを１つの演算部であるものとし、余っている記憶容量（バッファ領域）が、隣接して接続された画像処理モジュール３３に備えた入力バッファ３３１の記憶容量の代わりに用いることができる容量である場合、隣接して接続された画像処理モジュール３３の転送経路の設定を、画素データまたは処理画素データを入力バッファ３３１に記憶せずにスルーして演算部３３３に転送する経路にすると共に、隣接して接続された画像処理モジュール３３に備えた入力バッファ３３１の動作を停止させ、バッファ領域が、隣接して接続された画像処理モジュール３３に備えた入力バッファ３３１の記憶容量の代わりに用いることができない容量である場合、隣接して接続された画像処理モジュール３３の転送経路の設定を、画素データまたは処理画素データを入力バッファ３３１に一旦記憶してから読み出して演算部３３３に転送する経路にする画像処理装置１が構成される。
【０１９７】
また、本実施形態によれば、ＣＰＵ５０は、画像処理モジュール４３に備えた入力バッファ４３１の余っている記憶容量（バッファ領域）を、入力バッファ４３１の全体の記憶容量と、画像処理モジュール４３が処理内容の設定に応じた処理の演算を行う際に使用する入力バッファ４３１の記憶容量（補間領域）とに基づいて算出する画像処理装置１が構成される。
【０１９８】
また、本実施形態によれば、画像処理モジュール３３および画像処理モジュール４３は、入力バッファ３３１または入力バッファ４３１から読み出した画素データまたは処理画素データを転送する経路、および入力バッファ３３１または入力バッファ４３１をスルーして画素データまたは処理画素データを転送する経路のいずれか一方の経路を、画素データまたは処理画素データを転送する経路として選択するセレクタ（セレクタ３３２）、をさらに備える画像処理装置１が構成される。
【０１９９】
また、本実施形態によれば、画素データまたは処理画素データは、画像に含まれるそれぞれの画素に対応した画素データであり、演算部４３３は、画像に含まれるそれぞれの画素の座標の変換機能を利用した画像補間処理によって複数の処理の演算を排他的に行う演算部であり、ＣＰＵ５０は、画像処理モジュール４３に備えた入力バッファ４３１の余っている記憶容量（バッファ領域）を、入力バッファ４３１の全体の記憶容量と、画像処理モジュール４３が画像補間処理の設定値に応じた画像補間処理の演算を行う際に使用する入力バッファ４３１の記憶容量（補間領域）とに基づいて算出する画像処理装置１が構成される。
【０２００】
また、本実施形態によれば、画像補間処理は、画像の大きさを変更するリサイズ処理と、画像に含まれる歪曲収差の歪みを補正する歪補正処理と、を少なくとも含む画像処理装置１が構成される。
【０２０１】
また、本実施形態によれば、画像処理モジュール４３に隣接して接続された画像処理モジュール３３は、パイプラインの構成において画像処理モジュール４３の後段に接続された画像処理モジュール３３である画像処理装置１が構成される。
【０２０２】
また、本実施形態によれば、メモリ（ＤＲＡＭ２０）と、入力されたデータ（画素データまたは処理画素データ）に対して予め定めた処理を行う複数の処理モジュール（画像処理モジュール３３−１〜画像処理モジュール３３−５）が直列に接続されたパイプラインが構成され、それぞれの処理モジュール（画像処理モジュール３３および画像処理モジュール４３）が処理を順次行うことによってパイプライン処理を行う画像処理部（画像処理部３０）とがデータバス（ＤＭＡバス１０）に接続され、画像処理部３０が行うパイプライン処理の設定を行うシステム制御部（ＣＰＵ５０）を備えた画像処理装置（画像処理装置１）における画像処理方法であって、画像処理モジュール３３および画像処理モジュール４３のそれぞれが、ＣＰＵ５０による処理内容の設定（処理モードやパラメータ）に応じて、処理の演算を行う演算ステップと、ＣＰＵ５０による画素データまたは処理画素データの転送経路の設定（パラメータ）に応じて、処理の演算を行う演算部（演算部３３３または演算部４３３）に画素データまたは処理画素データを転送する画像処理モジュール３３または画像処理モジュール４３内の経路を選択すると共に、画素データまたは処理画素データを処理の単位ごとに一時的に記憶するデータバッファ（入力バッファ３３１または入力バッファ４３１）の動作を制御する制御ステップと、を含み、画像処理部３０が、ＣＰＵ５０によるパイプライン構成の設定に応じて、パイプラインを構成する処理モジュール（画像処理モジュール３３および画像処理モジュール４３）同士の接続を切り替える接続切り替えステップ、をさらに含む画像処理方法が構成される。
【０２０３】
上記に述べたとおり、本発明を実施するための形態によれば、画像処理装置に備えた画像処理部に、それぞれの処理モジュールの接続を切り替える、つまり、画像処理部に構成するパイプラインの接続を切り替える接続切り替え部を備える。これにより、本発明を実施するための形態では、画像処理装置に備えた画像処理部が実行する画像処理（パイプライン処理）を決定するごとに、画像処理部内の処理モジュールの接続を切り替え、パイプライン構成内で流れるそれぞれのデータの経路を変更する（切り替える）ことができる。
【０２０４】
また、本発明を実施するための形態によれば、画像処理装置に備えた画像処理部において、パイプラインを構成する複数の処理モジュールのそれぞれに、入力された入力データを、一旦データバッファに記憶してから読み出して演算部に転送する経路、またはデータバッファをスルーして演算部に転送する経路のいずれか一方の経路を選択する（切り替える）構成を備える。これにより、本発明を実施するための形態では、画像処理装置に備えた画像処理部が実行する画像処理（パイプライン処理）を決定するごとに、それぞれの処理モジュール内で流れる入力データの経路を変更する（切り替える）ことができる。このとき、本発明を実施するための形態では、画像処理部が実行する画像処理（パイプライン処理）によっては、画像処理部においてパイプラインを構成する複数の処理モジュールに備えたそれぞれの演算部を１つの演算部として考える。そして、本発明を実施するための形態では、複数の演算部を１つの演算部として考えた場合、多くの記憶容量をもっているデータバッファを備えた処理モジュールにおいて画像処理の演算に使用せずに余っている記憶容量を、１つの演算部として考えた他の処理モジュールに備えたデータバッファの代わりに用いる。つまり、本発明を実施するための形態では、画像処理の演算に使用せずに余っている記憶容量を、他の処理モジュールに備えたデータバッファの記憶容量として提供する。さらに、本発明を実施するための形態では、データバッファの記憶容量が提供された処理モジュールに備えたデータバッファをスルーする経路で入力データを演算部に転送するように制御し、データバッファの動作を停止させる。これにより、本発明を実施するための形態では、動作を停止したデータバッファにおける消費電力を削減することができる。このことにより、本発明を実施するための形態では、従来の処理モジュールでパイプラインを構成したときのように必ずデータバッファへのデータの書き込みとデータバッファからのデータの読み出しとを行わなくても、所望の画像処理を行うことができ、パイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。つまり、本発明を実施するための形態では、画像処理部に備えられたそれぞれの処理モジュールによるパイプライン処理によって、所望の画像処理を行うときのパイプライン処理の性能を低下させずに、パイプライン処理における消費電力を低減することができる。
【０２０５】
なお、本発明を実施するための形態では、画像処理部３０内のパイプライン構成において、複数の画像処理の演算機能を備えた画像処理モジュール４３に備えた演算部４３３−２と、画像処理モジュール４３の後段に接続された画像処理モジュール３３−３に備えた演算部３３３−３とを１つの演算部であると考えた場合について説明した。つまり、本発明を実施するための形態では、画像処理モジュール４３に備えた入力バッファ４３１−２を、画像処理モジュール３３−３に備えた入力バッファ３３１−３の代わりに用いる場合について説明した。しかし、画像処理部３０内のパイプライン構成において、１つの演算部であると考えることができる他の処理モジュールに備えた演算部は、本発明を実施するための形態で説明したような、後段の処理モジュールに備えた演算部に限定されるものではない。例えば、前段の処理モジュールに備えた演算部と合わせて１つの演算部であると考えることもできる。この場合であっても同様に、本発明の考え方を適用することができる。
【０２０６】
また、本発明を実施するための形態では、画像処理部３０においてパイプラインを構成する画像処理モジュール４３の後段に接続された画像処理モジュール３３−３に備えた入力バッファ３３１−３の動作を停止することによって、入力バッファ３３１−３の消費電力を削減する場合について説明した。しかし、それぞれの処理モジュールに備えたデータバッファの構成は、図５（ａ）に示したように、１つのユニットラインに対応したユニットライン記憶領域４３１１を複数並べた構成である。このため、データバッファの構成を、ユニットライン記憶領域４３１１ごと、または予め定めた数のユニットライン記憶領域４３１１ごとに、動作を制御する構成にしてもよい。この構成にした場合には、データバッファにおいて、動作を制御する単位ごとにユニットライン記憶領域４３１１の動作を停止するように制御することもできるようになる。
【０２０７】
なお、本発明を実施するための形態では、画像処理装置に備えた画像処理部において、パイプラインを構成するそれぞれの画像処理モジュールに、画像処理モジュール自身に備えたデータバッファをスルーするか否かの選択（切り替え）を制御する機能を備えた構成について説明した。しかし、上述したように、画像処理部においてパイプラインを構成する処理モジュールである入力ＤＭＡモジュールと出力ＤＭＡモジュールとにもデータバッファを備えている。従って、入力ＤＭＡモジュールや出力ＤＭＡモジュールにも、画像処理モジュールと同様に、自身に備えたデータバッファをスルーするか否かの選択（切り替え）を制御する機能を備えてもよい。この機能を備えることによって、入力ＤＭＡモジュールや出力ＤＭＡモジュールでも、画像処理モジュールと同様の効果を得ることができる。
【０２０８】
また、本発明を実施するための形態では、画像処理装置に備えた画像処理部内にパイプラインを構成するそれぞれの処理モジュールを備えた構成について説明した。しかし、パイプライン構成によって一連の処理を行う処理装置は、画像処理装置の他にも種々の処理装置が考えられる。従って、本発明の考え方を適用することができる処理装置は、本発明を実施するための形態で示した画像処理装置に限定されるものではなく、複数の処理モジュールを直列に接続することによってパイプラインを構成してパイプライン処理を行う処理装置であれば、本発明の考え方を同様に適用することができ、本発明と同様の効果を得ることができる。
【０２０９】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【０２１０】
１・・・画像処理装置
１０・・・ＤＭＡバス（データバス）
２０・・・ＤＲＡＭ（メモリ）
３０・・・画像処理部（画像処理部）
３１・・・接続切り替え部（画像処理部，接続切り替え部）
３２・・・入力ＤＭＡモジュール（画像処理部）
３３，３３−１，３３−２，３３−３，３３−４，３３−５・・・画像処理モジュール（画像処理部，処理モジュール）
３３１・・・入力バッファ（処理モジュール，データバッファ）
３３１１・・・ユニットライン記憶領域（処理モジュール，データバッファ）
３３２・・・セレクタ（処理モジュール，セレクタ）
３３３・・・演算部（処理モジュール，演算部）
３３４・・・制御部（処理モジュール，制御部）
３３４１・・・設定レジスタ（処理モジュール，制御部）
３４・・・出力ＤＭＡモジュール（画像処理部）
４３，４３−２・・・画像処理モジュール（画像処理部，処理モジュール）
４３１・・・入力バッファ（処理モジュール，データバッファ）
４３１１・・・ユニットライン記憶領域（処理モジュール，データバッファ）
４３３・・・演算部（処理モジュール，演算部）
４３３１・・・座標算出部（処理モジュール，演算部）
４３３２・・・補間演算部（処理モジュール，演算部）
４３４・・・制御部（処理モジュール，制御部）
４３４２・・・バッファリードアドレス生成部（処理モジュール，制御部）
５０・・・ＣＰＵ（システム制御部）
６０・・・ＣＰＵバス
【図１】
0006580381.tif 000002
【図２】
0006580381.tif 000003
【図３】
0006580381.tif 000004
【図４】
0006580381.tif 000005
【図５】
0006580381.tif 000006
【図６】
0006580381.tif 000007
【図７】
0006580381.tif 000008
【図８】
0006580381.tif 000009
【図９】
0006580381.tif 000010
【図１０】
0006580381.tif 000011
【図１１】
0006580381.tif 000012
【図１２】
0006580381.tif 000013