(第1の実施形態)
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の説明においては、本発明の第1の実施形態の画像処理装置が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置100」という)に搭載されている場合について説明する。図1は、本発明の第1の実施形態における画像処理装置の概略構成を示したブロック図である。なお、図1には、本発明の第1の実施形態の画像処理装置1に関連する撮像装置100内の構成要素として、フレームメモリ500と、外部画像処理装置600とを併せて示している。
図1に示した画像処理装置1は、データバス10と、画像処理部20と、を備えている。また、画像処理部20は、4つの画像処理モジュール21(画像処理モジュール21−1〜画像処理モジュール21−4)と、外部入出力モジュール22と、を備えている。画像処理モジュール21のそれぞれは、糊代領域の画像データを一時的に保存するための糊代保存バッファ212を備えている。より具体的には、画像処理モジュール21−1は糊代保存バッファ212−1を備え、画像処理モジュール21−2は糊代保存バッファ212−2を備え、画像処理モジュール21−3は糊代保存バッファ212−3を備え、画像処理モジュール21−4は糊代保存バッファ212−4を備えている。また、外部入出力モジュール22は、糊代領域の画像データを一時的に保存するための糊代保存バッファ22222を備えている。
なお、図1においては、撮像装置100に備えたそれぞれの構成要素や画像処理装置1においてデータバス10に接続される他の構成要素の図示を省略している。撮像装置100に備える他の構成要素としては、例えば、レンズによって結像された被写体の光学像を光電変換する固体撮像素子(イメージセンサ)や、撮像装置100によって撮像した画像を表示する表示装置などがある。画像処理装置1に備える他の構成要素としては、例えば、画像処理装置1の全体の動作を制御する制御部、固体撮像素子が撮像して出力した画素信号に対して予め定めた信号処理(前処理)を施す前処理部、画像処理部20によって処理された画像のデータを撮像装置100に備えた表示装置に表示させるための表示処理を行う表示処理部などがある。また、画像処理装置1に備える他の構成要素としては、例えば、画像処理部20によって処理された画像のデータを撮像装置100に備えた記録装置に記録させるための記録処理を行う記録処理部などもある。また、撮像装置100に備える他の構成要素としては、例えば、画像処理装置1や外部画像処理装置600に備えたそれぞれの構成要素を制御するシステム制御部などもある。
フレームメモリ500は、画像処理装置1内のデータバス10に接続され、撮像装置100において処理される様々なデータを記憶するデータ記憶部である。フレームメモリ500は、例えば、DRAM(Dynamic Random Access Memory)などによって構成される。フレームメモリ500は、例えば、画像処理装置1に備えた不図示の前処理部が不図示の固体撮像装置から出力された静止画像の画像信号に対して前処理を施した画像データを記憶する。また、フレームメモリ500は、例えば、画像処理装置1に備えた画像処理部20が、不図示の前処理部が前処理を施した画像データに対して予め定めた画像処理を施した静止画像の画像データを記憶する。このように、フレームメモリ500は、撮像装置100や画像処理装置1におけるそれぞれの処理段階の画像データを記憶する。
画像処理装置1においては、フレームメモリ500に記憶された1フレームの静止画像のデータを予め定めた大きさの複数の矩形領域に分割し、画像処理部20が、それぞれの矩形領域ごとに画像処理を行う。以下の説明においては、1フレームの静止画像のデータを分割したそれぞれの矩形領域に含まれるデータを、「ブロック画像データ」という。
画像処理部20は、入力されたブロック画像データに対して、画像処理装置1において予め定められた種々の画像処理を行うパイプライン処理部である。より具体的には、画像処理部20は、画像処理モジュール21−1〜画像処理モジュール21−4が直列に接続されたパイプライン処理によって、画像処理装置1における画像処理を順次行う。画像処理部20は、ブロック画像データに含まれるそれぞれの画素のデータ(以下、「画素データ」という)を、例えば、予め定めた数の列ごとにフレームメモリ500から読み出し、読み出した画素データを1つの処理単位として画像処理を行う。以下の説明においては、画像処理部20が画像処理を行う1つの処理単位の画素データにおいて、同じ列に含まれる連続した複数の画素データを、「ユニットライン」という。
また、画像処理部20は、パイプライン処理に含まれる画像処理を選択する機能や、パイプライン処理によって行う画像処理の順番を変更する機能、すなわち、パイプラインの構成を変更する機能を備えている。より具体的には、画像処理部20は、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれによる画像処理を順次行うパイプラインを構成することもできるが、画像処理モジュール21−1〜画像処理モジュール21−4のいずれか1つまたは複数によって画像処理を行うパイプラインや、画像処理モジュール21−1〜画像処理モジュール21−4の順番を変更して画像処理を行うパイプラインを構成することができる。以下の説明においては、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれを区別せずに表すときには、「画像処理モジュール21」という。なお、画像処理部20におけるパイプラインの構成は、例えば、不図示のシステム制御部や、画像処理装置1に備えた不図示の制御部によって変更(設定)される。以下の説明においては、不図示のシステム制御部や、画像処理装置1に備えた不図示の制御部を区別せずに、単に「制御部」という。
また、画像処理部20は、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが実行する画像処理とは異なる画像処理をパイプライン処理に組み込む機能を備えている。ここで、パイプライン処理に組み込む画像処理は、画像処理モジュール21−1〜画像処理モジュール21−4のいずれの画像処理モジュール21においても実行しない画像処理であり、画像処理部20の外部に備えた構成要素によって実行される画像処理(以下、「外部画像処理」という)である。
図1に示した撮像装置100の構成では、画像処理装置1の外部に備えた外部画像処理装置600が実行する画像処理を、外部画像処理としてパイプライン処理に組み込むことができる。画像処理部20では、外部入出力モジュール22を、外部画像処理を実行する画像処理モジュールとしてパイプラインの構成内に組み込むことによって、外部画像処理装置600が実行する外部画像処理がパイプライン処理に組み込まれる。なお、上述したように、画像処理部20におけるパイプラインの構成は、例えば、不図示の制御部によって変更(設定)される。従って、画像処理部20では、外部入出力モジュール22をパイプラインに組み込むか否かの設定や、パイプラインに組み込む際の外部入出力モジュール22の位置の設定などが、例えば、不図示の制御部によって、上述したパイプラインの構成を変更する機能の設定と共に行われる。
図1には、画像処理モジュール21−2と画像処理モジュール21−3との間に外部入出力モジュール22を組み込むことによって、外部画像処理装置600によって実行される外部画像処理がパイプラインに組み込まれている構成を示している。つまり、図1に示した画像処理部20では、画像処理モジュール21−1による画像処理、画像処理モジュール21−2による画像処理、外部画像処理装置600による画像処理、画像処理モジュール21−3による画像処理、および画像処理モジュール21−4による画像処理を順次行うパイプラインを構成している状態を示している。
なお、画像処理部20において外部入出力モジュール22をパイプラインに組み込む位置は、上述したように、例えば、不図示の制御部によって設定される。つまり、画像処理部20では、外部入出力モジュール22をパイプラインに組み込む位置は、図1に示した位置に限定されるものではなく、パイプライン内のいかなる位置にも組み込むことができる。つまり、画像処理部20において外部入出力モジュール22は、パイプラインの先頭、途中、最後尾など、いかなる位置にも組み込むことができる。このため、画像処理部20では、外部入出力モジュール22のみをパイプラインに組み込む、つまり、外部画像処理装置600による外部画像処理のみをパイプライン処理として行うことができる。
なお、画像処理部20では、パイプライン処理においてそれぞれの画像処理モジュール21や外部入出力モジュール22が出力した画素データの出力先の切り替え、つまり、画像処理部20に備えたそれぞれの画像処理モジュール21や外部入出力モジュール22の接続は、不図示の制御部による設定に応じて、例えば、画像処理部20に備えた不図示の接続切り替え部が行う。不図示の接続切り替え部は、パイプラインの構成において隣接する画像処理モジュール21や外部入出力モジュール22の間でやり取りされる制御信号などの接続の切り替えも行う。つまり、画像処理部20では、不図示の接続切り替え部が、画像処理部20が行う画像処理の順番や、パイプラインに組み込む外部画像処理の位置を変更する。
画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれは、入力された画素データに対して予め定めた種々のデジタル的な画像処理を行う処理モジュールである。画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれは、例えば、不図示の制御部からの制御に応じて、フレームメモリ500に記憶されているブロック画像データに含まれるそれぞれの画素データ、前段に接続された他の画像処理モジュール21から出力された画素データ、または前段に接続された外部入出力モジュール22から出力された画素データに対して予め定めた種々のデジタル的な画像処理を行う。画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが行う画像処理には、種々の画像処理がある。画像処理モジュール21が行う画像処理には、例えば、それぞれの画素データに対応するY(輝度)信号とC(色)信号とを生成するYC処理、それぞれの画素データに含まれるノイズを低減するノイズ低減処理、それぞれの画素データで表される画像における高周波成分の抑圧を行うLPF(ローパスフィルタ)処理、画像における被写体の輪郭を強調するエッジ強調処理などが含まれている。また、画像処理モジュール21が行う画像処理には、例えば、HPF(ハイパスフィルタ)処理や、バイラテラルフィルタ処理のようにある空間の画素情報を使用して特徴値を算出する処理なども含まれている。なお、それぞれのフィルタ処理におけるフィルタサイズは、例えば、3画素×3画素や10画素×10画素など、様々である。
画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれには、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれは、データバス10を介してフレームメモリ500から読み出した画素データや、前段に接続された他の画像処理モジュール21または外部入出力モジュール22から出力された画素データを、データバッファやデータバッファの一部として構成された糊代保存バッファ212に一時記憶し、一時記憶した画素データに対してそれぞれの画像処理を施す。そして、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれは、画像処理を施した画素データを、後段に接続された他の画像処理モジュール21、後段に接続された外部入出力モジュール22、またはフレームメモリ500に出力する。
図1に示した画像処理部20では、画像処理モジュール21−1が、フレームメモリ500に記憶されているブロック画像データに含まれるそれぞれの画素データを、データバス10を介してユニットラインごとに読み出し、読み出した画素データに対して画像処理を施した画素データを、後段に接続された画像処理モジュール21−2に出力する。また、図1に示した画像処理部20では、画像処理モジュール21−2が、前段に接続された画像処理モジュール21−1から出力された画素データに対して画像処理を施した画素データを、後段に接続された外部入出力モジュール22に出力する。また、図1に示した画像処理部20では、画像処理モジュール21−3が、前段に接続された外部入出力モジュール22から出力された画素データに対して画像処理を施した画素データを、後段に接続された画像処理モジュール21−3に出力する。また、図1に示した画像処理部20では、画像処理モジュール21−4が、前段に接続された画像処理モジュール21−3から出力された画素データに対して画像処理を施した画素データを、データバス10を介してフレームメモリ500に出力して書き込ませる(記憶させる)。なお、画像処理モジュール21によるフレームメモリ500からの画素データの読み出しや、フレームメモリ500への画像データの書き込みは、DMA(Direct Memory Access)による方法であってもよい。
なお、以下の説明においては、画像処理モジュール21が画像処理を施した後の画素データを、フレームメモリ500に記憶されている画像処理を行う対象の画素データと区別して表す場合には、「処理画素データ」という。
外部入出力モジュール22は、画像処理部20の外部に備えた構成要素によって実行される外部画像処理を、パイプライン処理に組み込むためのインターフェースモジュールである。外部入出力モジュール22は、例えば、不図示の制御部からの制御に応じて、前段に接続された画像処理モジュール21から出力された画素データ(処理画素データ)を、データバス10を介さずに直接、接続されている外部画像処理装置600に出力する。また、外部入出力モジュール22は、例えば、不図示の制御部からの制御に応じて、接続されている外部画像処理装置600からデータバス10を介さずに直接入力された外部画像処理が施された画素データを、後段に接続された画像処理モジュール21に出力する。
外部入出力モジュール22は、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。外部入出力モジュール22は、前段に接続された画像処理モジュール21から出力された処理画素データを、データバッファやデータバッファの一部として構成された糊代保存バッファ22222に一時記憶し、一時記憶した処理画素データを、データバス10を介さずに外部画像処理装置600に直接出力する。また、外部入出力モジュール22は、外部画像処理装置600からデータバス10を介さずに直接入力された外部画像処理が施された画素データを、データバッファに一時記憶し、一時記憶した外部画像処理が施された画素データを、処理画素データとして後段に接続された画像処理モジュール21に出力する。
なお、上述したように、画像処理部20においては、外部入出力モジュール22のみをパイプラインに組み込む、つまり、外部画像処理装置600による外部画像処理のみをパイプライン処理として行うこともできる。この場合、外部入出力モジュール22は、データバス10を介してフレームメモリ500から読み出した画素データを、データバッファやデータバッファの一部として構成された糊代保存バッファ22222に一時記憶してから、データバス10を介さずに外部画像処理装置600に直接出力する。また、外部入出力モジュール22は、外部画像処理装置600からデータバス10を介さずに直接入力された外部画像処理が施された画素データを、データバッファに一時記憶してから、データバス10を介してフレームメモリ500に出力して書き込ませる(記憶させる)。なお、外部入出力モジュール22によるフレームメモリ500からの画素データの読み出しや、フレームメモリ500への画像データの書き込みも、DMAによる方法であってもよい。
なお、外部入出力モジュール22の構成や、外部入出力モジュール22が外部画像処理を画像処理部20のパイプライン処理に組み込むときの動作などに関する詳細な説明は、後述する。以下の説明においては、外部画像処理を施した後の画素データを、フレームメモリ500に記憶されている画像処理を行う対象の画素データや、画像処理モジュール21のいずれかが画像処理を施した後の画素データ(処理画素データ)と区別して表す場合には、「外部処理画素データ」という。また、以下の説明においては、画像処理モジュール21のそれぞれが出力する処理画素データと、外部入出力モジュール22が出力する外部処理画素データとを区別せずに表す場合には、単に「処理画素データ」という。
このように、画像処理部20では、フレームメモリ500に記憶された1フレームの静止画像のデータを複数の矩形領域のブロック画像データに分割する。そして、画像処理部20では、それぞれの画像処理モジュール21が、例えば、不図示の制御部からの制御に応じた画像処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次を行うことによって、それぞれのブロック画像データに対するパイプライン処理を行う。これにより、画像処理部20では、フレームメモリ500に記憶された1フレームの静止画像のデータに対する一連の画像処理を行う。また、画像処理部20では、いずれの画像処理モジュール21においても実行しない外部画像処理を、例えば、不図示の制御部からの制御に応じて、画像処理部20の外部に備えた構成要素(図1においては、外部画像処理装置600)に実行させて、パイプライン処理に組み込む。このとき、画像処理部20では、外部入出力モジュール22を、外部画像処理を実行する画像処理モジュールとしてパイプラインの構成に組み込む。これにより、画像処理装置1では、画像処理部20によって実行することができない画像処理であっても、画像処理部20がパイプライン処理を行っているのと同様に処理することができる。つまり、画像処理装置1では、画像処理部20におけるパイプライン処理を拡張することができる。
なお、図1に示した撮像装置100の構成では、外部画像処理装置600が、画像処理装置1に備えた画像処理部20内の外部入出力モジュール22に直接接続されている構成を示した。従って、外部入出力モジュール22は、外部画像処理装置600との間でデータの受け渡しを行うための不図示の外部インターフェース部を備えている構成である。しかし、外部入出力モジュール22の構成は、外部インターフェース部を備えている構成に限定されるものではない。例えば、外部入出力モジュール22に外部インターフェース部を備えず、画像処理装置1と、画像処理装置1の外部に備えた外部画像処理装置600とを接続し、画像処理部20(より具体的には、外部入出力モジュール22)と外部画像処理装置600との間でデータの受け渡しを行う不図示の外部インターフェース部を、画像処理装置1内、つまり、画像処理部20の外部に備える構成であってもよい。この場合、外部入出力モジュール22は、画像処理装置1内に備えた不図示の外部インターフェース部を介して、それぞれの画素データ(処理画素データ)や外部処理画素データの受け渡し(伝送)を行う。つまり、画像処理装置1内に備えた不図示の外部インターフェース部が、データバス10を介さずに直接、外部入出力モジュール22から出力された画素データ(処理画素データ)を外部画像処理装置600に伝送し、外部画像処理装置600から伝送されてきた外部処理画素データを、データバス10を介さずに直接、外部入出力モジュール22に出力する。
なお、本発明においては、外部入出力モジュール22または画像処理装置1内に備える不図示の外部インターフェース部における外部画像処理装置600との間のデータ伝送の仕様や方式に関しては、特に制限はしない。つまり、不図示の外部インターフェース部におけるデータの伝送方式は、複数のシステムLSIの間でのデータの伝送に用いられる、既存の様々な仕様や方式を採用することができる。例えば、不図示の外部インターフェース部における外部画像処理装置600へのデータの伝送方式として、複数のシステムLSIの間でのデータの伝送に用いられる、AXI(Advanced eXtensible Interface)仕様や、PCI−Express(Peripheral Component Interconnect−Express)などの高速シリアルバス仕様など、予め定めた種々の仕様に従った方式を採用してもよい。また、不図示の外部インターフェース部におけるデータの伝送方式として、複数のシステムLSIの間でのデータの伝送に用いられる仕様や方式を複数採用し、画像処理装置1に接続されるシステムLSI(図1においては、外部画像処理装置600)に採用されているデータ伝送の仕様や方式に応じて、不図示の外部インターフェース部におけるデータ伝送の方式を変更する構成であってもよい。
なお、外部入出力モジュール22または画像処理装置1内に備える不図示の外部インターフェース部は、外部画像処理装置600との間でデータの受け渡しを行う際に、外部入出力モジュール22から出力される画素データの形式と、外部画像処理装置600が処理するデータの形式とを合わせる機能を備えていてもよい。例えば、不図示の外部インターフェース部は、外部画像処理装置600に画素データを伝送する際に、外部入出力モジュール22から出力された画素データの形式を、外部画像処理装置600に伝送する際の仕様に応じた形式に変換する機能を備えていてもよい。また、不図示の外部インターフェース部は、外部画像処理装置600から外部処理画素データを受け取る際に、外部画像処理装置600の仕様に応じた形式で伝送されるデータを、外部入出力モジュール22が処理する形式、つまり、画像処理モジュール21が引き続き画像処理を行う画素データの形式に変換する機能を備えていてもよい。
外部画像処理装置600は、撮像装置100において画像処理装置1の外部に備えられ、画像処理装置1に備えた画像処理部20内に構成されるパイプラインに組み込まれる予め定めたデジタル的な画像処理(外部画像処理)を行う画像処理装置(システムLSI)である。外部画像処理装置600は、画像処理装置1に備えた画像処理部20内の外部入出力モジュール22から出力された画素データに対して、画像処理装置1に備えた画像処理部20内のいずれの画像処理モジュール21においても実行しない予め定めた種々のデジタル的な画像処理、つまり、画像処理装置1において実行する画像処理を拡張するための外部画像処理を実行する。外部画像処理装置600が行う外部画像処理には、種々の画像処理がある。外部画像処理装置600が行う外部画像処理には、例えば、ブロック画像データに含まれるそれぞれの画素の位置(座標)の変換を伴う画像補間処理なども含まれている。この画像補間処理には、例えば、画像の大きさ(サイズ)を変更(拡大や縮小)するリサイズ処理、画像に含まれる倍率色収差や歪曲収差などの歪みの補正を行う歪補正処理、台形補正などの画像の形状の補正を行う形状補正処理など、種々の処理が含まれている。外部画像処理装置600は、外部画像処理を施した画素データ(外部処理画素データ)を、外部入出力モジュール22に出力する。
なお、外部画像処理装置600は、例えば、不図示の制御部からの制御に応じた外部画像処理を、外部入出力モジュール22から出力された画素データに対して施し、外部画像処理を施した外部処理画素データを、外部入出力モジュール22に出力する構成であってもよい。また、外部画像処理装置600は、入力された画素データに対して外部画像処理を施す際に、外部画像処理装置600内のデータバスに接続され、撮像装置100において外部画像処理を実行する際の様々なデータを一時的に記憶する、例えば、DRAMなどの不図示のデータ記憶部を用いる構成であってもよい。また、外部画像処理装置600は、不図示の外部インターフェース部を備えている構成であってもよい。
このような構成によって撮像装置100では、画像処理装置1に備えた画像処理部20内の画像処理モジュール21のそれぞれが実行する画像処理によるパイプライン処理に、外部画像処理装置600が実行する外部画像処理を組み込む。これにより、撮像装置100では、画像処理装置1のみでは実行することができない画像処理であっても、外部画像処理装置600を画像処理装置1に接続することによって、画像処理装置1に備えた画像処理部20がパイプライン処理を行っているのと同様に、画像処理を拡張することができる。
次に、画像処理装置1において画像処理部20に備えた画像処理モジュール21の動作について説明する。図2は、本発明の第1の実施形態における画像処理装置1内の画像処理部20が分割して画像処理を行う際の画像データの領域の一例を示した図である。また、図3および図4は、本発明の第1の実施形態における画像処理装置1内の画像処理部20が分割して行う画像処理の処理方向と糊代領域との関係の一例を示した図である。
上述したように、画像処理装置1では、フレームメモリ500に記憶された1フレームの静止画像のデータを予め定めた大きさの複数の矩形領域に分割し、画像処理部20が、それぞれの矩形領域ごとに、矩形領域に含まれるブロック画像データに対して画像処理を行う。図2には、1フレームの静止画像のデータを水平方向(行方向,横方向)と垂直方向(列方向,縦方向)とにそれぞれ5つに分割した場合、つまり、矩形領域R1〜矩形領域R25の25個の矩形領域に25分割した場合の一例を示している。
画像処理装置1では、分割したそれぞれの矩形領域に含まれるブロック画像データに対して、画像処理部20に備えたそれぞれの画像処理モジュール21および外部入出力モジュール22、つまり、外部画像処理装置600が、予め定められた種々の画像処理を順次行うことによって、1フレームの静止画像のデータに対する一連の画像処理をパイプライン処理で行う。
ここで、それぞれの画像処理モジュール21が、図2に示したように分割された1フレームの静止画像のデータに対するパイプライン処理の動作について説明する。画像処理装置1に備えた画像処理部20において、それぞれの画像処理モジュール21および外部入出力モジュール22が画像処理を行う方向、つまり、画像処理を行う対象の矩形領域を進める方向(順番)は、不図示の制御部が設定する。このとき、不図示の制御部は、1フレームの静止画像のデータに対する画像処理がより早く完了するように、例えば、撮像装置100の動作モードや画像処理装置1において実行する画像処理の種類に応じて、画像処理を行う対象の矩形領域を進める方向(順番)を設定する(切り替える)。
例えば、フレームメモリ500に記憶されている1フレームの静止画像のデータに応じた画像を撮像装置100に備えた表示装置に表示させる場合、表示装置が画像を表示する方向は、水平方向(行方向,横方向)である。この場合、不図示の制御部は、表示処理に対応するパイプライン処理が早く完了するように、表示処理を行う対象の矩形領域を水平方向(行方向,横方向)、いわゆる、ラスター順に進めながらそれぞれの画像処理モジュール21および外部入出力モジュール22がパイプライン処理を行うように設定する。
また、例えば、フレームメモリ500に記憶されている1フレームの静止画像のデータに応じた画像を撮像装置100に装着されたメモリーカードなどの記録装置に記録させる場合、例えば、JPEG処理などの静止画処理や、MPEG処理、H.264処理などの動画処理などの記録処理は、8×8画素の単位で行われる。この場合、不図示の制御部は、記録処理に対応するパイプライン処理が早く完了するように、記録処理を行う対象の矩形領域を垂直方向(列方向,縦方向)に進めながらそれぞれの画像処理モジュール21および外部入出力モジュール22がパイプライン処理を行うように設定する。これにより、それぞれの画像処理モジュール21および外部入出力モジュール22は、不図示の制御部によって設定された方向(順番)で、それぞれの矩形領域に含まれるブロック画像データに対する画像処理を行う。
以下に、パイプラインを構成する1つの画像処理モジュール21(より具体的には、画像処理モジュール21−1)の動作に注目して、画像処理を行う対象の矩形領域を進める方向(順番)と糊代領域との関係について説明する。まず、図3を用いて、画像処理を行う対象の矩形領域を水平方向(行方向,横方向)に進める場合の方向(順番)と糊代領域との関係について説明する。図3には、画像処理モジュール21−1が、処理を行う対象の矩形領域を水平方向(行方向,横方向)に進めながら画像処理を行う場合の一例を模式的に示している。矩形領域を水平方向(行方向,横方向)に進めながら画像処理を行う場合、画像処理モジュール21−1が画像処理を行う対象の矩形領域は、図3の(a)に示したように、矩形領域R1、矩形領域R2、矩形領域R3、・・・、矩形領域R6、・・・というように、水平方向(行方向,横方向)に移動する。
画像処理モジュール21−1は、最初に、矩形領域R1に対応するブロック画像データに含まれるそれぞれの画素データを、ユニットラインごとにフレームメモリ500から読み出す。このとき、画像処理モジュール21−1では、読み出した矩形領域R1のそれぞれのユニットラインの画素データの内、矩形領域R2の糊代領域に位置するそれぞれの画素データを糊代保存バッファ212−1に保存する。これにより、糊代保存バッファ212−1には、矩形領域R2に対する画像処理を行う際に用いる矩形領域R1と重複する糊代領域に含まれるそれぞれのユニットラインの画素データが事前に保存される。そして、画像処理モジュール21−1は、読み出した矩形領域R1の画素データに対して画像処理を行った処理画素データを、画像処理モジュール21−2に出力する。
その後、画像処理モジュール21−1は、次に矩形領域R2に対応するブロック画像データに含まれるそれぞれの画素データに対して画像処理を行う際に、糊代保存バッファ212−1に保存した画素データの続きから、矩形領域R2に対応するブロック画像データに含まれるそれぞれの画素データを、ユニットラインごとにフレームメモリ500から読み出す。このとき、画像処理モジュール21−1では、読み出した矩形領域R2のそれぞれのユニットラインの画素データの内、矩形領域R3の糊代領域に位置するそれぞれの画素データを糊代保存バッファ212−1に保存する。これにより、糊代保存バッファ212−1には、矩形領域R3に対する画像処理を行う際に用いる矩形領域R2と重複する糊代領域に含まれるそれぞれのユニットラインの画素データが事前に保存される。そして、画像処理モジュール21−1は、糊代保存バッファ212−1に保存した画素データと読み出した矩形領域R2の画素データとを合わせた状態で、矩形領域R2の画素データに対する画像処理を行い、画像処理した後の処理画素データを、画像処理モジュール21−2に出力する。
その後、画像処理モジュール21−1は、次に矩形領域R3に対応するブロック画像データに含まれるそれぞれの画素データに対して画像処理を行う際にも同様に、糊代保存バッファ212−1に保存した画素データの続きから、矩形領域R3に対応するブロック画像データに含まれるそれぞれの画素データを、ユニットラインごとにフレームメモリ500から読み出す。このとき、画像処理モジュール21−1では、同様に、読み出した矩形領域R3のそれぞれのユニットラインの画素データの内、矩形領域R4の糊代領域に位置するそれぞれの画素データを糊代保存バッファ212−1に保存する。そして、画像処理モジュール21−1は、同様に、糊代保存バッファ212−1に保存した画素データと読み出した矩形領域R3の画素データとを合わせた状態で、矩形領域R3の画素データに対する画像処理を行った処理画素データを、画像処理モジュール21−2に出力する。
このように、画像処理モジュール21−1は、次の矩形領域の糊代領域(ここでは、それぞれの矩形領域の右端の領域)に位置するそれぞれの画素データを糊代保存バッファ212−1に保存しながら、処理を行う対象の矩形領域を水平方向(行方向,横方向)に進めて、1フレームの静止画像のデータの全体に対する画像処理を行った処理画素データを、画像処理モジュール21−2に順次出力する。なお、画像処理モジュール21−2〜画像処理モジュール21−4および外部入出力モジュール22の動作も、画像処理を行う対象の画素データが、前段の画像処理モジュール21または外部入出力モジュール22が出力した処理画素データとなる以外は、上述した画像処理モジュール21−1の動作と同様である。これにより、画像処理部20では、それぞれの画像処理モジュール21および外部入出力モジュール22、つまり、外部画像処理装置600が、それぞれの矩形領域に含まれるブロック画像データに対する画像処理を順次行うパイプライン処理を行う。
なお、それぞれの画像処理モジュール21および外部入出力モジュール22(外部画像処理装置600)は、異なる矩形領域に対する画像処理を同時期に平行して行うことができる。例えば、図1に示した画像処理部20では、画像処理モジュール21−4が矩形領域R1に対する画像処理を、画像処理モジュール21−3が矩形領域R2に対する画像処理を、外部入出力モジュール22(外部画像処理装置600)が矩形領域R3に対する画像処理を、画像処理モジュール21−2が矩形領域R4に対する画像処理を、画像処理モジュール21−1が矩形領域R5に対する画像処理を、それぞれ平行して行うことができる。
また、それぞれの画像処理モジュール21は、同じ矩形領域に対する画像処理を行うこともできる。例えば、図1に示した画像処理部20では、画像処理モジュール21−4と画像処理モジュール21−3とが矩形領域R2に対する画像処理を、外部入出力モジュール22(外部画像処理装置600)が矩形領域R3に対する画像処理を、画像処理モジュール21−2と画像処理モジュール21−1とが矩形領域R4に対する画像処理を、それぞれ平行して行うことができる。
また、外部入出力モジュール22(外部画像処理装置600)は、異なる矩形領域に対する画像処理を同時期に行うことができる。例えば、図1に示した画像処理部20では、画像処理モジュール21−4が矩形領域R1に対する画像処理を、画像処理モジュール21−3が矩形領域R2に対する画像処理を、外部入出力モジュール22(外部画像処理装置600)が矩形領域R3および矩形領域R4に対する画像処理を、画像処理モジュール21−2が矩形領域R5に対する画像処理を、画像処理モジュール21−1が矩形領域R6に対する画像処理を、それぞれ平行して行うことができる。
続いて、図4を用いて、画像処理を行う対象の矩形領域を垂直方向(列方向,縦方向)に進める場合の方向(順番)と糊代領域との関係について説明する。図4には、画像処理モジュール21−1が、処理を行う対象の矩形領域を垂直方向(列方向,縦方向)に進めながら画像処理を行う場合の一例を模式的に示している。矩形領域を垂直方向(列方向,縦方向)に進めながら画像処理を行う場合、画像処理モジュール21−1が画像処理を行う対象の矩形領域は、図4の(a)に示したように、矩形領域R1、矩形領域R6、矩形領域R11、・・・、矩形領域R2、・・・というように、垂直方向(列方向,縦方向)に移動する。
画像処理モジュール21−1は、最初に、矩形領域R1に対応するブロック画像データに含まれるそれぞれの画素データを、ユニットラインごとにフレームメモリ500から読み出す。このとき、画像処理モジュール21−1では、読み出した矩形領域R1のそれぞれのユニットラインの画素データの内、矩形領域R6の糊代領域に位置するそれぞれの画素データを糊代保存バッファ212−1に保存する。これにより、糊代保存バッファ212−1には、矩形領域R6に対する画像処理を行う際に用いる矩形領域R1と重複する糊代領域に含まれるそれぞれのユニットラインの画素データが事前に保存される。そして、画像処理モジュール21−1は、読み出した矩形領域R1の画素データに対して画像処理を行った処理画素データを、画像処理モジュール21−2に出力する。
その後、画像処理モジュール21−1は、次に矩形領域R6に対応するブロック画像データに含まれるそれぞれの画素データに対して画像処理を行う際に、糊代保存バッファ212−1に保存した画素データの続きから、矩形領域R6に対応するブロック画像データに含まれるそれぞれの画素データを、ユニットラインごとにフレームメモリ500から読み出す。このとき、画像処理モジュール21−1では、読み出した矩形領域R6のそれぞれのユニットラインの画素データの内、矩形領域R11の糊代領域に位置するそれぞれの画素データを糊代保存バッファ212−1に保存する。これにより、糊代保存バッファ212−1には、矩形領域R11に対する画像処理を行う際に用いる矩形領域R6と重複する糊代領域に含まれるそれぞれのユニットラインの画素データが事前に保存される。そして、画像処理モジュール21−1は、糊代保存バッファ212−1に保存した画素データと読み出した矩形領域R6の画素データとを合わせた状態で、矩形領域R6の画素データに対する画像処理を行い、画像処理した後の処理画素データを、画像処理モジュール21−2に出力する。
その後、画像処理モジュール21−1は、次に矩形領域R11に対応するブロック画像データに含まれるそれぞれの画素データに対して画像処理を行う際にも同様に、糊代保存バッファ212−1に保存した画素データの続きから、矩形領域R11に対応するブロック画像データに含まれるそれぞれの画素データを、ユニットラインごとにフレームメモリ500から読み出す。このとき、画像処理モジュール21−1では、同様に、読み出した矩形領域R11のそれぞれのユニットラインの画素データの内、矩形領域R16の糊代領域に位置するそれぞれの画素データを糊代保存バッファ212−1に保存する。そして、画像処理モジュール21−1は、同様に、糊代保存バッファ212−1に保存した画素データと読み出した矩形領域R11の画素データとを合わせた状態で、矩形領域R11の画素データに対する画像処理を行った処理画素データを、画像処理モジュール21−2に出力する。
このように、画像処理モジュール21−1は、次の矩形領域の糊代領域(ここでは、それぞれの矩形領域の下端の領域)に位置するそれぞれの画素データを糊代保存バッファ212−1に保存しながら、処理を行う対象の矩形領域を垂直方向(列方向,縦方向)に進めて、1フレームの静止画像のデータの全体に対する画像処理を行った処理画素データを、画像処理モジュール21−2に順次出力する。なお、画像処理モジュール21−2〜画像処理モジュール21−4および外部入出力モジュール22の動作も、画像処理を行う対象の画素データが、前段の画像処理モジュール21または外部入出力モジュール22が出力した処理画素データとなる以外は、上述した画像処理モジュール21−1の動作と同様である。これにより、画像処理部20では、それぞれの画像処理モジュール21および外部入出力モジュール22、つまり、外部画像処理装置600が、それぞれの矩形領域に含まれるブロック画像データに対する画像処理を順次行うパイプライン処理を行う。
なお、それぞれの画像処理モジュール21および外部入出力モジュール22(外部画像処理装置600)は、画像処理を行う対象の矩形領域を水平方向(行方向,横方向)に進める場合と同様に、異なる矩形領域に対する画像処理を同時期に平行して行うことができる。例えば、図1に示した画像処理部20では、画像処理モジュール21−4が矩形領域R1に対する画像処理を、画像処理モジュール21−3が矩形領域R6に対する画像処理を、外部入出力モジュール22(外部画像処理装置600)が矩形領域R11に対する画像処理を、画像処理モジュール21−2が矩形領域R16に対する画像処理を、画像処理モジュール21−1が矩形領域R21に対する画像処理を、それぞれ平行して行うことができる。
また、それぞれの画像処理モジュール21は、画像処理を行う対象の矩形領域を水平方向(行方向,横方向)に進める場合と同様に、同じ矩形領域に対する画像処理を行うこともできる。例えば、図1に示した画像処理部20では、画像処理モジュール21−4と画像処理モジュール21−3とが矩形領域R16に対する画像処理を、外部入出力モジュール22(外部画像処理装置600)が矩形領域R11に対する画像処理を、画像処理モジュール21−2と画像処理モジュール21−1とが矩形領域R6に対する画像処理を、それぞれ平行して行うことができる。
また、外部入出力モジュール22(外部画像処理装置600)は、画像処理を行う対象の矩形領域を水平方向(行方向,横方向)に進める場合と同様に、異なる矩形領域に対する画像処理を同時期に行うことができる。例えば、図1に示した画像処理部20では、画像処理モジュール21−4が矩形領域R1に対する画像処理を、画像処理モジュール21−3が矩形領域R6に対する画像処理を、外部入出力モジュール22(外部画像処理装置600)が矩形領域R11および矩形領域R16に対する画像処理を、画像処理モジュール21−2が矩形領域R21に対する画像処理を、画像処理モジュール21−1が矩形領域R2に対する画像処理を、それぞれ平行して行うことができる。
次に、画像処理装置1において画像処理部20に備えた外部入出力モジュール22の構成および動作について説明する。なお、上述したように、外部入出力モジュール22は、パイプライン内のいかなる位置にも組み込むことができるが、以下の説明においては、図1に示した画像処理部20のように、外部入出力モジュール22を2つの画像処理モジュール21の間の位置に組み込む、つまり、外部入出力モジュール22の前段および後段のそれぞれに画像処理モジュール21が接続されているものとして説明する。
まず、画像処理部20に備えた外部入出力モジュール22における外部画像処理装置600との間での処理画素データの受け渡し動作の概念について説明する。上述したように、画像処理部20において外部画像処理を行うための処理画素データは、外部入出力モジュール22が、データバス10を介さずに直接、外部画像処理装置600に出力される。なお、上述したように、画像処理部20では、それぞれの画像処理モジュール21が、複数のユニットラインを1つの処理単位として画像処理を行う。このため、画像処理部20において外部画像処理を行う処理画素データも、1つの処理単位ごとに外部入出力モジュール22に入力され、外部画像処理を施した外部処理画素データも、1つの処理単位ごとに外部入出力モジュール22から出力される。つまり、画像処理部20においては、外部入出力モジュール22と、外部入出力モジュール22の前段および後段に接続された画像処理モジュール21との間の画素データの受け渡しも、1つの処理単位ごとに行われる。しかし、画像処理装置1に接続された外部画像処理装置600は、画像処理部20に備えたそれぞれの画像処理モジュール21と同様に、必ずしも1つの処理単位ごとに外部画像処理を行うとは限らない。このため、外部入出力モジュール22は、前段に接続された画像処理モジュール21から出力された処理画素データを1つの処理単位ごとに受け付け、受け付けた処理画素データを、外部画像処理を行う処理単位ごとに外部画像処理装置600に出力する。また、外部入出力モジュール22は、外部画像処理装置600から出力された外部処理画素データを外部画像処理の処理単位ごとに受け付け、受け付けた外部処理画素データを、それぞれの画像処理モジュール21が画像処理を行う1つの処理単位ごとに後段に接続された画像処理モジュール21に出力する。
図5は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた外部入出力モジュール22の概略構成を示したブロック図である。図5には、外部入出力モジュール22の概念的な動作を説明するための基本的な構成を示している。図5に示したように、外部入出力モジュール22は、画像処理モジュール入力制御部221と、出力バッファ部222と、外部出力制御部223と、外部入力制御部224と、入力バッファ部225と、画像処理モジュール出力制御部226と、を備えている。
画像処理モジュール入力制御部221は、外部入出力モジュール22の前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)、つまり、外部画像処理装置600に出力する処理画素データを、出力バッファ部222に一時的に記憶させる制御を行う。このとき、画像処理モジュール入力制御部221における出力バッファ部222への処理画素データの記憶の制御は、外部出力制御部223との間でやり取りされる出力バッファフラグ情報OBFIと、出力バッファリード完了信号OBRCとの情報に基づいて行う。出力バッファフラグ情報OBFIは、出力バッファ部222における処理画素データの記憶の状態を表すフラグ情報であり、書き込み中状態と、バッファフル状態と、バッファエンプティ状態との3つの状態がある。書き込み中状態は、出力バッファ部222が処理画素データを記憶している途中(書き込み中)であることを表している。バッファフル状態は、出力バッファ部222の記憶容量に処理画素データを記憶することができる容量が空いていないことを表している。バッファエンプティ状態は、出力バッファ部222の記憶容量に処理画素データを記憶することができる空き容量があることを表している。また、出力バッファリード完了信号OBRCは、外部出力制御部223が出力バッファ部222に記憶されている処理画素データの読み出しを完了したことを表す信号である。
出力バッファ部222は、外部入出力モジュール22に入力された入力データ(処理画素データ)を一時的に記憶するデータバッファ部である。出力バッファ部222は、例えば、SRAM(Static Random Access Memory)などのメモリで構成される。出力バッファ部222は、外部入出力モジュール22の前段に接続された画像処理モジュール21から出力された予め定めた数のユニットライン分の処理画素データを一時的に記憶することができる記憶容量をもっている。出力バッファ部222は、画像処理モジュール入力制御部221からの制御に応じて、入力された入力データ(処理画素データ)を一時的に記憶する。出力バッファ部222がもっている記憶容量は、糊代保存バッファ22222に対応する記憶容量を含んでいる。出力バッファ部222は、入力された入力データ(処理画素データ)の内、糊代領域に含まれるそれぞれのユニットラインの処理画素データを、糊代保存バッファ22222に対応する記憶容量に一時的に記憶する。
なお、糊代保存バッファ22222に対応する記憶容量は、出力バッファ部222がもっている記憶容量の内の予め定めた記憶容量が割り当てられた構成であっても、出力バッファ部222において糊代領域以外の処理画素データを一時的に記憶するメモリと異なるメモリで構成されてもよい。つまり、出力バッファ部222は、1つのメモリの記憶領域を複数に分割して使用する構成であっても、記憶する処理画素データに対応した複数のメモリを備えた構成であってもよい。ただし、糊代保存バッファ22222の記憶容量は、外部画像処理装置600が空間フィルタ処理を行う際に、フィルタサイズに応じて必要となる糊代領域の大きさ(幅)の処理画素データを記憶することができる記憶容量であることが望ましい。この糊代保存バッファ22222の記憶容量は、糊代領域の大きさ(幅)に応じて処理画素データを記憶することができる記憶容量を変更することができる構成であってもよい。
また、出力バッファ部222は、外部出力制御部223からの制御に応じて、記憶している処理画素データを、外部出力データとして外部画像処理装置600に出力する。このとき、出力バッファ部222では、糊代領域以外の処理画素データと、糊代保存バッファ22222に対応する記憶容量に一時的に記憶された糊代領域の処理画素データとを合わせた状態で、外部画像処理装置600に出力する。なお、出力バッファ部222における処理画素データの保存(記憶)と出力(読み出し)の考え方は、画像処理モジュール21における処理画素データの保存と出力との動作の考え方と同様である。
外部出力制御部223は、出力バッファ部222に記憶された入力データ(処理画素データ)を読み出し、接続されている外部画像処理装置600に出力させる制御を行う。このとき、外部出力制御部223における出力バッファ部222に記憶された処理画素データの読み出し制御は、画像処理モジュール入力制御部221との間でやり取りされる出力バッファフラグ情報OBFIと、出力バッファリード完了信号OBRCとの情報に基づいて行う。
外部入力制御部224は、接続されている外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を、入力バッファ部225に一時的に記憶させる制御を行う。このとき、外部入力制御部224における入力バッファ部225への外部処理画素データの記憶の制御は、画像処理モジュール出力制御部226との間でやり取りされる入力バッファフラグ情報IBFIと、入力バッファリード完了信号IBRCとの情報に基づいて行う。入力バッファフラグ情報IBFIは、入力バッファ部225における外部処理画素データの記憶の状態を表すフラグ情報であり、出力バッファフラグ情報OBFIと同様に、書き込み中状態と、バッファフル状態と、バッファエンプティ状態との3つの状態がある。書き込み中状態は、入力バッファ部225が外部処理画素データを記憶している途中(書き込み中)であることを表している。バッファフル状態は、入力バッファ部225の記憶容量に外部処理画素データを記憶することができる容量が空いていないことを表している。バッファエンプティ状態は、入力バッファ部225の記憶容量に外部処理画素データを記憶することができる空き容量があることを表している。また、入力バッファリード完了信号IBRCは、出力バッファリード完了信号OBRCと同様に、画像処理モジュール出力制御部226が入力バッファ部225に記憶されている外部処理画素データの読み出しを完了したことを表す信号である。
入力バッファ部225は、外部入出力モジュール22に入力された外部入力データ(外部処理画素データ)を、一時的に記憶するデータバッファである。入力バッファ部225も、出力バッファ部222と同様に、例えば、SRAMなどのメモリで構成される。入力バッファ部225は、外部画像処理装置600から出力された予め定めた数のユニットライン分の外部処理画素データを、出力データとして一時的に記憶することができる記憶容量をもっている。入力バッファ部225は、外部入力制御部224からの制御に応じて、入力された入力データ(外部処理画素データ)を一時的に記憶する。また、入力バッファ部225は、画像処理モジュール出力制御部226からの制御に応じて、記憶している外部処理画素データを、出力データとして外部入出力モジュール22の後段に接続された画像処理モジュール21に出力する。
画像処理モジュール出力制御部226は、入力バッファ部225に記憶された外部入力データ(外部処理画素データ)を読み出し、外部入出力モジュール22の後段に接続された画像処理モジュール21に出力させる制御を行う。このとき、画像処理モジュール出力制御部226における入力バッファ部225に記憶された外部処理画素データの読み出し制御は、外部入力制御部224との間でやり取りされる入力バッファフラグ情報IBFIと、入力バッファリード完了信号IBRCとの情報に基づいて行う。
このような構成によって外部入出力モジュール22は、画像処理装置1に接続された外部画像処理装置600と、前段および後段に接続された画像処理モジュール21との間での処理画素データの受け渡しのタイミングを制御する。つまり、外部入出力モジュール22は、外部画像処理装置600が、あたかも画像処理部20内に備えた画像処理モジュール21であるかのように、外部画像処理装置600と画像処理モジュール21との間での処理画素データの受け渡しのタイミングを制御する。
なお、外部画像処理装置600においては、外部画像処理を行うために必要な入力データ(処理画素データ)の数、つまり、ユニットラインの数が、外部画像処理装置600が実行する外部画像処理の内容によって異なる。このため、出力バッファ部222および入力バッファ部225の記憶容量は、少なくとも、外部画像処理装置600が外部画像処理を行う際に要する数、つまり、外部画像処理装置600における外部画像処理の処理単位を満足し、かつ、画像処理部20におけるパイプライン処理がスムーズに行われる数の処理画素データまたは外部処理画素データを記憶することができる記憶容量であることが望ましい。例えば、出力バッファ部222および入力バッファ部225の記憶容量は、想定される外部画像処理の内容、前段への接続が想定される画像処理モジュール21から処理画素データが出力されてから、後段への接続が想定される画像処理モジュール21に外部処理画素データが出力されるまでの遅延時間などに基づいて、パイプライン処理が正常に行われるような記憶容量に予め決定されることが望ましい。なお、出力バッファ部222や入力バッファ部225の記憶容量は、予め定めた余裕を持った記憶容量に決定されてもよい。
ここで、外部入出力モジュール22における概略の動作について説明する。図6は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた外部入出力モジュール22における画像処理モジュール入力制御部221の概略の動作を示したフローチャートである。また、図7は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた外部入出力モジュール22における外部出力制御部223の概略の動作を示したフローチャートである。
まず、図6を用いて、外部入出力モジュール22に備えた画像処理モジュール入力制御部221の概略の動作について説明する。外部入出力モジュール22が動作を開始すると、まず、画像処理モジュール入力制御部221は、出力バッファフラグ情報OBFIをバッファエンプティ状態に変更する(ステップS101)。
続いて、画像処理モジュール入力制御部221は、前段に接続された画像処理モジュール21から処理画素データが出力され、出力バッファ部222への処理画素データの書き込みを開始するか否かを判定する(ステップS102)。
ステップS102における判定の結果、出力バッファ部222への処理画素データの書き込みを開始しない場合(ステップS102の“NO”)、画像処理モジュール入力制御部221は、ステップS101に戻って、出力バッファフラグ情報OBFIのバッファエンプティ状態を継続し、出力バッファ部222への処理画素データの書き込みを開始するか否かの判定を繰り返す。つまり、画像処理モジュール入力制御部221は、前段に接続された画像処理モジュール21から処理画素データが出力されるのを待つ。
一方、ステップS102における判定の結果、出力バッファ部222への処理画素データの書き込みを開始する場合(ステップS102の“YES”)、画像処理モジュール入力制御部221は、出力バッファフラグ情報OBFIを書き込み中状態に変更する(ステップS103)。
続いて、画像処理モジュール入力制御部221は、前段に接続された画像処理モジュール21から出力された処理画素データを、出力バッファ部222に一時的に記憶させる制御、つまり、出力バッファ部222への処理画素データの書き込み動作を行わせる(ステップS104)。
続いて、画像処理モジュール入力制御部221は、前段に接続された画像処理モジュール21から出力された処理画素データの出力バッファ部222への書き込みが完了したか否かを判定する(ステップS105)。
ステップS105における判定の結果、出力バッファ部222への処理画素データの書き込みが完了していない場合(ステップS105の“NO”)、画像処理モジュール入力制御部221は、ステップS103に戻って、出力バッファフラグ情報OBFIの書き込み中状態を継続し、出力バッファ部222への処理画素データの書き込み動作を繰り返す。
一方、ステップS105における判定の結果、出力バッファ部222への処理画素データの書き込みが完了した場合(ステップS105の“YES”)、画像処理モジュール入力制御部221は、出力バッファフラグ情報OBFIをバッファフル状態に変更する(ステップS106)。
続いて、画像処理モジュール入力制御部221は、外部出力制御部223によって出力バッファ部222に記憶された(書き込まれた)処理画素データの読み出しが完了したか否か、つまり、処理画素データが外部画像処理装置600に出力されたか否かを判定する(ステップS107)。なお、このステップS107における処理画素データの読み出しが完了したか否かの判定は、外部出力制御部223から出力バッファリード完了信号OBRCが入力されたか否かを確認することによって行うことができる。
ステップS107における判定の結果、出力バッファ部222に記憶された(書き込まれた)処理画素データの読み出しが完了していない場合(ステップS107の“NO”)、画像処理モジュール入力制御部221は、ステップS106に戻って、出力バッファフラグ情報OBFIのバッファフル状態を継続し、出力バッファ部222からの処理画素データの読み出しが完了したか否かの判定を繰り返す。つまり、画像処理モジュール入力制御部221は、外部画像処理装置600への処理画素データへの出力が完了するのを待つ。
一方、ステップS107における判定の結果、出力バッファ部222に記憶された(書き込まれた)処理画素データの読み出しが完了した場合(ステップS107の“YES”)、画像処理モジュール入力制御部221は、ステップS101に戻って、前段に接続された画像処理モジュール21から出力される次の処理画素データに対する同様の処理を繰り返す。
続いて、図7を用いて、外部入出力モジュール22に備えた外部出力制御部223の概略の動作について説明する。外部入出力モジュール22が動作を開始すると、まず、外部出力制御部223は、画像処理モジュール入力制御部221から出力された出力バッファフラグ情報OBFIがバッファフル状態であるか否かを確認する(ステップS201)。
ステップS201における確認の結果、出力バッファフラグ情報OBFIがバッファフル状態でない場合(ステップS201の“NO”)、外部出力制御部223は、ステップS201に戻って、出力バッファフラグ情報OBFIのバッファフル状態の確認を繰り返す。つまり、外部出力制御部223は、前段に接続された画像処理モジュール21から出力された処理画素データが出力バッファ部222に記憶される(書き込まれる)のを待つ。
一方、ステップS201における確認の結果、出力バッファフラグ情報OBFIがバッファフル状態である場合(ステップS201の“YES”)、外部出力制御部223は、出力バッファ部222からの処理画素データを出力させる制御、つまり、出力バッファ部222からの処理画素データの読み出し動作を行わせる(ステップS202)。これにより、外部入出力モジュール22から外部画像処理装置600に、処理画素データの出力が開始される。
続いて、外部出力制御部223は、出力バッファ部222からの処理画素データの読み出し、つまり、外部画像処理装置600への処理画素データの出力が完了したか否かを判定する(ステップS203)。
ステップS203における判定の結果、出力バッファ部222からの処理画素データの読み出しが完了していない場合(ステップS203の“NO”)、外部出力制御部223は、ステップS202に戻って、出力バッファ部222からの処理画素データの読み出し動作を繰り返す。
一方、ステップS203における判定の結果、出力バッファ部222からの処理画素データの読み出しが完了した場合(ステップS203の“YES”)、外部出力制御部223は、このことを表す出力バッファリード完了信号OBRCを画像処理モジュール入力制御部221に出力する(ステップS204)。そして、外部出力制御部223は、ステップS101に戻って、出力バッファフラグ情報OBFIがバッファフル状態であるか否かの確認、つまり、次に外部画像処理装置600に出力する処理画素データに対する同様の処理を繰り返す。
このような処理によって、画像処理モジュール入力制御部221と外部出力制御部223とは、出力バッファ部222に記憶されている処理画素データの状態を通知しながら、つまり、互いに連携しながら、前段に接続された画像処理モジュール21から出力された処理画素データを、外部画像処理装置600に出力する。
なお、外部入出力モジュール22に備えた外部入力制御部224と画像処理モジュール出力制御部226とのそれぞれの概略の動作は、画像処理モジュール入力制御部221と外部出力制御部223とのそれぞれの概略の動作と同様に考えることができる。より具体的には、外部入力制御部224における概略の動作は、画像処理モジュール入力制御部221の概略の動作と同様に考えることができ、画像処理モジュール出力制御部226における概略の動作は、外部出力制御部223の概略の動作と同様に考えることができる。さらに具体的には、外部入力制御部224における概略の動作は、画像処理モジュール入力制御部221の概略の動作において、前段に接続された画像処理モジュール21を外部画像処理装置600に、処理画素データを外部処理画素データに、出力バッファ部222を入力バッファ部225に、それぞれ置き換える。また、画像処理モジュール出力制御部226における概略の動作は、外部出力制御部223の概略の動作において、外部画像処理装置600を後段に接続された画像処理モジュール21に、処理画素データを外部処理画素データに、出力バッファ部222を入力バッファ部225に、それぞれ置き換える。そして、外部入力制御部224と画像処理モジュール出力制御部226とのそれぞれの概略の動作は、画像処理モジュール入力制御部221と外部出力制御部223とのそれぞれの概略の動作における出力バッファフラグ情報OBFIを入力バッファフラグ情報IBFIに、出力バッファリード完了信号OBRCを入力バッファリード完了信号IBRCに、それぞれ置き換える。これらの置き換えによって、外部入力制御部224と画像処理モジュール出力制御部226とのそれぞれの概略の動作は、画像処理モジュール入力制御部221と外部出力制御部223とのそれぞれの概略の動作と同様に考えることができる。従って、外部入力制御部224と画像処理モジュール出力制御部226とのそれぞれの概略の動作に関する詳細な説明は省略する。
次に、画像処理装置1において画像処理部20に備えた外部入出力モジュール22のより詳細な構成および動作について説明する。図8は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた外部入出力モジュール22の構成を示したブロック図である。図8には、外部入出力モジュール22における基本的な構成を示している。図8に示した外部入出力モジュール22は、図5に示した概念的な動作を説明する構成と同様に、画像処理モジュール入力制御部221と、出力バッファ部222と、外部出力制御部223と、外部入力制御部224と、入力バッファ部225と、画像処理モジュール出力制御部226と、を備えている。
外部入出力モジュール22では、画像処理モジュール入力制御部221、出力バッファ部222、および外部出力制御部223の構成によって、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を出力バッファ部222に一時記憶し、接続されている外部画像処理装置600からのデータ出力の要求に応じて、出力バッファ部222に一時記憶した処理画素データを、外部出力データとして出力する。また、外部入出力モジュール22では、外部入力制御部224、入力バッファ部225、および画像処理モジュール出力制御部226の構成によって、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を入力バッファ部225に一時記憶し、後段に接続された画像処理モジュール21からのデータ出力の要求に応じて、入力バッファ部225に一時記憶した外部処理画素データを、出力データとして出力する。以下の説明においては、画像処理モジュール入力制御部221、出力バッファ部222、および外部出力制御部223の構成を、「外部出力部」といい、外部入力制御部224、入力バッファ部225、および画像処理モジュール出力制御部226の構成を、「外部入力部」という。
まず、外部入出力モジュール22における外部出力部について説明する。
出力バッファ部222は、上述したように、外部入出力モジュール22に入力された入力データ(処理画素データ)を、一時的に記憶するデータバッファである。図8に示した出力バッファ部222は、セレクタ2221と、データバッファ部2222と、セレクタ2223と、を備えている。また、データバッファ部2222は、出力バッファ22221aおよび糊代保存バッファ22222aからなるデータバッファの組と、出力バッファ22221bおよび糊代保存バッファ22222bからなるデータバッファの組との2組のデータバッファを備えている。データバッファ部2222は、それぞれのデータバッファの組における処理画素データの記憶(書き込み)と出力(読み出し)とを逆の動作に交互に切り替えることによって、1つの処理単位の処理画素データの書き込みと読み出しとを同時期に行うことができるように動作する、いわゆる、ダブルバッファの構成である。
セレクタ2221は、出力バッファ部222において処理画素データを書き込むデータバッファの組を選択する選択部である。セレクタ2221は、画像処理モジュール入力制御部221から出力された出力バッファライト選択信号OBWSに応じて、出力バッファ22221aと糊代保存バッファ22222aとからなるデータバッファの組、または出力バッファ22221bと糊代保存バッファ22222bとからなるデータバッファの組のいずれか一方のデータバッファの組を、処理画素データを書き込むデータバッファの組として選択する。以下の説明においては、出力バッファ22221aと糊代保存バッファ22222aとからなるデータバッファの組において出力バッファ22221aと糊代保存バッファ22222aとのそれぞれを区別せずに表すときには、「データバッファ組a」という。また、出力バッファ22221bと糊代保存バッファ22222bとからなるデータバッファの組において出力バッファ22221bと糊代保存バッファ22222bとのそれぞれを区別せずに表すときには、「データバッファ組b」という。そして、セレクタ2221は、外部入出力モジュール22に入力された入力データ(処理画素データ)を、選択したデータバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組に出力する。
セレクタ2223は、出力バッファ部222において記憶している処理画素データを読み出すデータバッファの組を選択する選択部である。セレクタ2223は、外部出力制御部223から出力された出力バッファリード選択信号OBRSに応じて、データバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組を、記憶している処理画素データを読み出すデータバッファの組として選択する。そして、セレクタ2223は、選択したデータバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組から読み出された処理画素データを、外部出力データとして外部画像処理装置600に出力する。これにより、外部出力データ(処理画素データ)が、外部画像処理装置600に入力される。
データバッファ組aおよびデータバッファ組bのそれぞれは、予め定めた数のユニットライン分の処理画素データを一時的に記憶する記憶容量のデータバッファである。セレクタ2221によって処理画素データを書き込むデータバッファとして選択されたデータバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組は、画像処理モジュール入力制御部221から出力された出力バッファライト信号OBWに応じて、セレクタ2221を介して入力された入力データ(処理画素データ)を書き込む(記憶する)。このとき、選択されたデータバッファの組では、糊代領域以外の処理画素データが出力バッファ22221に書き込まれ(記憶され)、糊代領域の処理画素データが糊代保存バッファ22222に書き込まれる(記憶される)。一方、セレクタ2223によって記憶している処理画素データを読み出すデータバッファの組として選択されたデータバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組は、外部出力制御部223から出力された出力バッファリード信号OBRに応じて、記憶している処理画素データを読み出して、セレクタ2223に出力する。このとき、選択されたデータバッファの組では、糊代領域の処理画素データが糊代保存バッファ22222から読み出され(出力され)、糊代領域以外の処理画素データが出力バッファ22221から読み出される(出力される)。
画像処理モジュール入力制御部221は、上述したように、外部入出力モジュール22の前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)の出力バッファ部222への記憶(書き込み)を制御する。図8に示した画像処理モジュール入力制御部221は、出力バッファ空き容量管理部2211と、出力バッファ書き込み管理部2212と、を備えている。
出力バッファ空き容量管理部2211は、出力バッファ書き込み管理部2212から出力された出力バッファ空き情報OBEIに基づいて、出力バッファ部222に備えたデータバッファ組aおよびデータバッファ組bのそれぞれにおける空いている記憶容量を判定し、空いている記憶容量を判定した結果に基づいて、外部入出力モジュール22の動作状態を表す状態通知信号を、前段に接続された画像処理モジュール21に出力する。また、出力バッファ空き容量管理部2211は、空いている記憶容量を判定した結果に基づいて、空いている記憶容量があるデータバッファの組への入力データ(処理画素データ)の記憶(書き込み)を予約するための出力バッファライト予約信号OBWRを、出力バッファ書き込み管理部2212に出力する。
より具体的には、出力バッファ空き容量管理部2211は、出力バッファ書き込み管理部2212から出力された出力バッファ空き情報OBEIが表すデータバッファ組aおよびデータバッファ組bの空き容量に関する情報に基づいて、データバッファ部2222に、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を書き込む(一時記憶する)ための空いている記憶容量があるか否かを判定する。このとき、出力バッファ空き容量管理部2211は、出力バッファ空き情報OBEIに基づいて、外部出力制御部223によって読み出されていない処理画素データを記憶しているデータバッファの組とは異なる他方のデータバッファの組に、空いている記憶容量があるか否かを判定する。
そして、出力バッファ空き容量管理部2211は、空いている記憶容量を判定した結果、外部出力制御部223によって読み出されるべき処理画素データをすでに記憶しているデータバッファの組とは異なる方のデータバッファの組に空いている記憶容量がある場合、このデータバッファの組は、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を書き込むことができる状態であると判定する。この場合、出力バッファ空き容量管理部2211は、入力データを受け付けることができる状態であることを表す状態通知信号として、入力データ(処理画素データ)の出力を要求するデータリクエスト信号を、前段に接続された画像処理モジュール21に出力する。そして、出力バッファ空き容量管理部2211は、出力したデータリクエスト信号に応じて前段に接続された画像処理モジュール21から入力データ(処理画素データ)を出力することを表すデータアクノリッジ信号が入力されると、データアクノリッジ信号に対応する入力データ(処理画素データ)を受け取って書き込む(一時記憶する)ことを予約する出力バッファライト予約信号OBWRを、出力バッファ書き込み管理部2212に出力する。なお、出力バッファ空き容量管理部2211が出力する出力バッファライト予約信号OBWRには、入力データ(処理画素データ)の書き込み(一時記憶)を予約するデータバッファの組の情報が含まれている。
一方、出力バッファ空き容量管理部2211は、空いている記憶容量を判定した結果、データバッファの組に空いている記憶容量がない場合、いずれのデータバッファの組にも、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を書き込むことができない状態であると判定する。この場合、出力バッファ空き容量管理部2211は、入力データを受け付けることができない状態であることを表す状態通知信号として、入力データ(処理画素データ)の出力を要求しないことを表すデータリクエスト信号を、前段に接続された画像処理モジュール21に出力する。なお、出力バッファ空き容量管理部2211は、入力データ(処理画素データ)の出力を要求しないことを、データリクエスト信号と異なる信号で表してもよい。
出力バッファ書き込み管理部2212は、出力バッファ部222に備えたデータバッファ組aおよびデータバッファ組bのそれぞれにおいて空いている記憶容量を監視し、空いている記憶容量を監視した結果を表す出力バッファ空き情報OBEIを出力バッファ空き容量管理部2211に出力する。
より具体的には、出力バッファ書き込み管理部2212は、出力バッファ部222に備えた出力バッファ22221aと、糊代保存バッファ22222aと、出力バッファ22221bと、糊代保存バッファ22222bとのそれぞれにおいて空いている記憶容量を監視する。そして、出力バッファ書き込み管理部2212は、監視しているそれぞれのデータバッファごとに、空いている記憶容量を表す情報を、出力バッファ空き情報OBEIとして出力バッファ空き容量管理部2211に出力する。
また、出力バッファ書き込み管理部2212は、出力バッファ空き容量管理部2211から出力された出力バッファライト予約信号OBWRに基づいて、入力データ(処理画素データ)の書き込みを制御するための制御信号を出力バッファ部222に出力する。
より具体的には、出力バッファ書き込み管理部2212は、出力バッファ空き容量管理部2211から出力された出力バッファライト予約信号OBWRに含まれているデータバッファの組の情報に基づいて、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を書き込む(一時記憶する)データバッファの組を選択するための出力バッファライト選択信号OBWSを、出力バッファ部222に備えたセレクタ2221に出力する。そして、出力バッファ書き込み管理部2212は、出力バッファライト予約信号OBWRに応じて、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を書き込むタイミングを表す出力バッファライト信号OBWを、出力バッファ部222内の選択したデータバッファの組に出力する。このとき、出力バッファ書き込み管理部2212は、前段に接続された画像処理モジュール21から入力データ(処理画素データ)と共に出力された、ユニットラインに含まれるそれぞれの処理画素データが、有効な処理画素データであるか否かを表すデータ有効信号に基づいて、現在入力された入力データが有効な処理画素データであるか否かを判定する。そして、出力バッファ書き込み管理部2212は、有効な入力データ(処理画素データ)のみを書き込むタイミングの出力バッファライト信号OBWを、出力バッファライト予約信号OBWRに含まれているデータバッファの組に出力する。これにより、出力バッファ部222は、有効な入力データ(処理画素データ)のみが、予約されたデータバッファの組に書き込まれる(一時記憶される)。
なお、出力バッファ書き込み管理部2212は、有効な入力データ(処理画素データ)の内、糊代領域以外の処理画素データを出力バッファ22221aまたは出力バッファ22221bに書き込み、後側の矩形領域と重複する糊代領域の処理画素データを糊代保存バッファ22222aまたは糊代保存バッファ22222bに書き込むタイミングの出力バッファライト信号OBWを、出力バッファライト予約信号OBWRに含まれているデータバッファの組に対して出力する。出力バッファ書き込み管理部2212による入力データ(処理画素データ)の書き込み先の切り替えは、例えば、有効な入力データ(処理画素データ)の個数を計数し、予め定めた数の入力データ(処理画素データ)を出力バッファ22221aまたは出力バッファ22221bに書き込んだ後、次の入力データ(処理画素データ)の書き込み先を、糊代保存バッファ22222aまたは糊代保存バッファ22222bに切り替える。
また、出力バッファ書き込み管理部2212は、出力バッファ空き情報OBEI、出力バッファ空き容量管理部2211から出力された出力バッファライト予約信号OBWR、および外部出力制御部223から出力された出力バッファリード完了信号OBRCのそれぞれの情報に基づいた出力バッファフラグ情報OBFIを、外部出力制御部223に出力する。
より具体的には、出力バッファ書き込み管理部2212は、出力バッファ空き情報OBEIがデータバッファ組aおよびデータバッファ組bの両方、またはいずれか一方に空いている記憶容量があることを表している場合には、バッファエンプティ状態を表す出力バッファフラグ情報OBFIを外部出力制御部223に出力する。また、出力バッファ書き込み管理部2212は、出力バッファ空き容量管理部2211から、入力データ(処理画素データ)の記憶(書き込み)を予約することを表す出力バッファライト予約信号OBWRが入力されている場合には、書き込み中状態であることを表す出力バッファフラグ情報OBFIを外部出力制御部223に出力する。また、出力バッファ書き込み管理部2212は、出力バッファライト信号OBWによって出力バッファ部222への有効な入力データ(処理画素データ)の書き込みが完了したときに、バッファフル状態であることを表す出力バッファフラグ情報OBFIを外部出力制御部223に出力する。そして、出力バッファ書き込み管理部2212は、外部出力制御部223から出力バッファリード完了信号OBRCが入力されると、バッファエンプティ状態を表す出力バッファフラグ情報OBFIを外部出力制御部223に出力する。なお、出力バッファフラグ情報OBFIは、出力バッファ部222に備えた出力バッファ22221aと、糊代保存バッファ22222aと、出力バッファ22221bと、糊代保存バッファ22222bとのそれぞれに対応する複数の情報によって構成される情報であってもよい。
外部出力制御部223は、上述したように、出力バッファ部222に記憶された入力データ(処理画素データ)の出力(読み出し)を制御する。図8に示した外部出力制御部223は、出力バッファデータ量管理部2231と、出力バッファ読み出し管理部2232と、を備えている。
出力バッファデータ量管理部2231は、出力バッファ読み出し管理部2232から出力された出力バッファデータ量情報OBDIに基づいて、出力バッファ部222に備えたデータバッファ組aおよびデータバッファ組bのそれぞれに記憶されている入力データ(処理画素データ)のデータ量を判定する。そして、出力バッファデータ量管理部2231は、外部画像処理装置600からのデータ出力の要求に応じて、データバッファの組からの入力データ(処理画素データ)の出力(読み出し)を予約するための出力バッファリード予約信号OBRRを、出力バッファ読み出し管理部2232に出力する。
より具体的には、出力バッファデータ量管理部2231は、出力バッファ読み出し管理部2232から出力された出力バッファデータ量情報OBDIが表すデータバッファ組aおよびデータバッファ組bに記憶しているデータ量に関する情報に基づいて、データバッファ部2222に、外部画像処理装置600に出力する入力データ(処理画素データ)が書き込まれている(一時記憶されている)か否かを判定する。このとき、出力バッファデータ量管理部2231は、出力バッファデータ量情報OBDIに基づいて、画像処理モジュール入力制御部221によって入力データ(処理画素データ)の書き込みがされているデータバッファの組とは異なる他方のデータバッファの組に書き込みが完了している入力データ(処理画素データ)があるか否かを判定する。
そして、出力バッファデータ量管理部2231は、処理画素データのデータ量を判定した結果、外部画像処理装置600に外部出力データとして出力する処理画素データがすでにデータバッファの組に記憶されている場合、このデータバッファの組は、処理画素データを読み出して外部画像処理装置600に出力することができる状態であると判定する。この場合、出力バッファデータ量管理部2231は、外部画像処理装置600から外部出力データ(処理画素データ)の出力を要求するデータ出力要求信号が入力されると、データ出力要求信号に対応する外部出力データ(処理画素データ)の読み出し(出力)を予約する出力バッファリード予約信号OBRRを、出力バッファ読み出し管理部2232に出力する。
なお、出力バッファデータ量管理部2231が出力する出力バッファリード予約信号OBRRには、処理画素データの書き込みが完了していると判定したデータバッファの組の情報、つまり、処理画素データを読み出すデータバッファの組の情報が含まれている。また、出力バッファリード予約信号OBRRには、外部画像処理装置600から要求された外部出力データ(処理画素データ)のデータ量、つまり、データバッファ部2222から読み出して出力する入力データ(処理画素データ)の数を表す情報も含まれている。なお、出力バッファデータ量管理部2231は、データ出力要求信号による外部出力データ(処理画素データ)の出力を受け付けたこと表すデータ出力受け付け信号を、外部画像処理装置600に出力してもよい。
一方、出力バッファデータ量管理部2231は、処理画素データのデータ量を判定した結果、外部出力データとして出力する処理画素データがデータバッファの組に記憶されていない場合、いずれのデータバッファの組からも、処理画素データを読み出すことができない状態であると判定する。この場合、出力バッファデータ量管理部2231は、データ出力要求信号による外部出力データ(処理画素データ)の出力を受け付けることができない状態であることを表すデータ出力受け付け信号を、外部画像処理装置600に出力してもよい。なお、このときのデータ出力受け付け信号は、外部出力データ(処理画素データ)の出力を受け付けることができない状態であることを、データ出力受け付け信号の論理レベルで表してもよいし、データ出力受け付け信号と異なる信号で表してもよい。
出力バッファ読み出し管理部2232は、画像処理モジュール入力制御部221から出力された出力バッファフラグ情報OBFIに基づいて、出力バッファ部222に備えたデータバッファ組aおよびデータバッファ組bのそれぞれに書き込まれている入力データ(処理画素データ)のデータ量を監視し、データ量を監視した結果を表す出力バッファデータ量情報OBDIを出力バッファデータ量管理部2231に出力する。
より具体的には、出力バッファ読み出し管理部2232は、出力バッファ部222に備えた出力バッファ22221aと、糊代保存バッファ22222aと、出力バッファ22221bと、糊代保存バッファ22222bとのそれぞれに書き込まれているデータ量を監視する。そして、出力バッファ読み出し管理部2232は、監視しているそれぞれのデータバッファごとに、書き込まれているデータ量を表す情報を、出力バッファデータ量情報OBDIとして出力バッファデータ量管理部2231に出力する。
また、出力バッファ読み出し管理部2232は、出力バッファデータ量管理部2231から出力された出力バッファリード予約信号OBRRに基づいて、出力バッファ部222に記憶された入力データ(処理画素データ)の読み出し(出力)を制御するための制御信号を出力バッファ部222に出力する。
より具体的には、出力バッファ読み出し管理部2232は、出力バッファデータ量管理部2231から出力された出力バッファリード予約信号OBRRに含まれているデータバッファの組の情報に基づいて、記憶された処理画素データを読み出す(出力する)データバッファの組を選択するための出力バッファリード選択信号OBRSを、出力バッファ部222に備えたセレクタ2223に出力する。そして、出力バッファ読み出し管理部2232は、出力バッファリード予約信号OBRRに応じて、外部画像処理装置600から要求されたデータ量の処理画素データを読み出して外部画像処理装置600に出力するタイミングを表す出力バッファリード信号OBRを、出力バッファ部222内の選択したデータバッファの組に出力する。これにより、出力バッファ部222は、出力バッファリード信号OBRに応じて、記憶している要求されたデータ量の処理画素データを読み出して、外部出力データとして外部画像処理装置600に出力する。このとき、出力バッファ読み出し管理部2232は、データバッファの組から外部出力データとして読み出した(出力した)ユニットラインに含まれるそれぞれの外部出力データ(処理画素データ)が、有効な処理画素データであるか否かを表す出力データ有効信号を、外部画像処理装置600に出力する。
なお、出力バッファ読み出し管理部2232は、糊代領域の処理画素データが糊代保存バッファ22222aまたは糊代保存バッファ22222bに記憶されている場合には、まず、前側の矩形領域と重複する糊代領域の処理画素データを糊代保存バッファ22222aまたは糊代保存バッファ22222bから読み出すタイミングの出力バッファリード信号OBRを、出力バッファリード予約信号OBRRに含まれているデータバッファの組に対して出力する。次に、出力バッファ読み出し管理部2232は、糊代領域以外の処理画素データを出力バッファ22221aまたは出力バッファ22221bから読み出すタイミングの出力バッファリード信号OBRを、出力バッファリード予約信号OBRRに含まれているデータバッファの組に対して出力する。その後、出力バッファ読み出し管理部2232は、後側の矩形領域と重複する糊代領域の処理画素データを出力バッファ22221aまたは出力バッファ22221bから読み出すタイミングの出力バッファリード信号OBRを、出力バッファリード予約信号OBRRに含まれているデータバッファの組に対して出力する。これにより、出力バッファ部222は、糊代領域の処理画素データと糊代領域以外の処理画素データとを合わせた状態の外部出力データを、外部画像処理装置600に出力することになる。出力バッファ読み出し管理部2232による入力データ(処理画素データ)の読み出し先の切り替えは、例えば、出力バッファ部222から読み出した処理画素データの個数を計数し、予め定めた数の入力データ(処理画素データ)を糊代保存バッファ22222aまたは糊代保存バッファ22222bから読み出した後、次の入力データ(処理画素データ)の読み出し先を、出力バッファ22221aまたは出力バッファ22221bに切り替える。
また、出力バッファ読み出し管理部2232は、出力バッファリード予約信号OBRRに応じて、外部画像処理装置600から要求されたデータ量の処理画素データの読み出しが完了すると、データバッファ部2222からの入力データ(処理画素データ)の読み出しが完了したことを表す出力バッファリード完了信号OBRCを、画像処理モジュール入力制御部221に出力する。この出力バッファリード完了信号OBRCも、例えば、出力バッファ部222から読み出した処理画素データの個数を計数することによって出力することができる。
このような構成によって、外部入出力モジュール22における外部出力部は、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を糊代領域以外の処理画素データと糊代領域の処理画素データとに分けてデータバッファの組に一旦記憶する。そして、外部入出力モジュール22における外部出力部は、接続されている外部画像処理装置600からのデータ出力の要求に応じて、データバッファの組に記憶している糊代領域の処理画素データと糊代領域以外の処理画素データとをそれぞれ読み出して、外部出力データとして出力する。
続いて、外部入出力モジュール22における外部入力部について説明する。
入力バッファ部225は、上述したように、外部入出力モジュール22に入力された外部入力データ(外部処理画素データ)を、一時的に記憶するデータバッファである。図8に示した入力バッファ部225は、セレクタ2251と、データバッファ部2252と、セレクタ2253と、を備えている。また、データバッファ部2252は、入力バッファ2252aと入力バッファ2252bとの2つのデータバッファを備えている。データバッファ部2252は、出力バッファ部222に備えたデータバッファ部2222と同様に、データバッファを2つ備えたダブルバッファの構成である。データバッファ部2252では、それぞれのデータバッファにおける外部処理画素データの記憶(書き込み)と出力(読み出し)とを逆の動作に交互に切り替えることによって、1つの処理単位の外部処理画素データの書き込みと読み出しとを同時期に行うことができるように動作する。
セレクタ2251は、入力バッファ部225において外部処理画素データを書き込むデータバッファを選択する選択部である。セレクタ2251は、外部入力制御部224から出力された入力バッファライト選択信号IBWSに応じて、入力バッファ2252aまたは入力バッファ2252bのいずれか一方のデータバッファを、外部処理画素データを書き込むデータバッファとして選択する。そして、セレクタ2251は、外部入出力モジュール22に入力された外部入力データ(外部処理画素データ)を、選択した入力バッファ2252aまたは入力バッファ2252bのいずれか一方のデータバッファに出力する。
セレクタ2253は、入力バッファ部225において記憶している外部処理画素データを読み出すデータバッファを選択する選択部である。セレクタ2253は、画像処理モジュール出力制御部226から出力された入力バッファリード選択信号IBRSに応じて、入力バッファ2252aまたは入力バッファ2252bのいずれか一方のデータバッファを、記憶している外部処理画素データを読み出すデータバッファとして選択する。そして、セレクタ2253は、選択した入力バッファ2252aまたは入力バッファ2252bのいずれか一方のデータバッファから読み出された外部処理画素データを、出力データとして後段に接続された画像処理モジュール21に出力する。
入力バッファ2252aおよび入力バッファ2252bのそれぞれは、予め定めた数のユニットライン分の外部処理画素データを一時的に記憶する記憶容量のデータバッファである。セレクタ2251によって外部処理画素データを書き込むデータバッファとして選択された入力バッファ2252aまたは入力バッファ2252bのいずれか一方のデータバッファは、外部入力制御部224から出力された入力バッファライト信号IBWに応じて、セレクタ2251を介して入力された外部入力データ(外部処理画素データ)を書き込む(記憶する)。一方、セレクタ2253によって記憶している外部処理画素データを読み出すデータバッファとして選択された入力バッファ2252aまたは入力バッファ2252bのいずれか一方のデータバッファは、画像処理モジュール出力制御部226から出力された入力バッファリード信号IBRに応じて、記憶している外部処理画素データを読み出して、セレクタ2253に出力する。
なお、データバッファ部2252は、出力バッファ部222に備えたデータバッファ部2222と異なり、糊代領域に対応する糊代保存バッファを備えていない構成である。これは、外部入出力モジュール22の後段に接続された画像処理モジュール21が糊代保存バッファ212を備えている構成であることから、データバッファ部2252には糊代保存バッファを備える必要がないためである。しかし、例えば、後段に接続される画像処理モジュール21が糊代保存バッファ212を備えていない構成であることも考えられる場合には、データバッファ部2252も、データバッファ部2222と同様に、糊代保存バッファを備える構成にしてもよい。
外部入力制御部224は、上述したように、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)の入力バッファ部225への記憶(書き込み)を制御する。図8に示した外部入力制御部224は、入力バッファ空き容量管理部2241と、入力バッファ書き込み管理部2242と、を備えている。
入力バッファ空き容量管理部2241は、入力バッファ書き込み管理部2242から出力された入力バッファ空き情報IBEIに基づいて、入力バッファ部225に備えた入力バッファ2252aおよび入力バッファ2252bのそれぞれにおける空いている記憶容量を判定する。そして、入力バッファ空き容量管理部2241は、外部画像処理装置600からのデータ入力の要求に応じて、データバッファへの外部入力データ(外部処理画素データ)の記憶(書き込み)を予約するための入力バッファライト予約信号IBWRを、入力バッファ書き込み管理部2242に出力する。
より具体的には、入力バッファ空き容量管理部2241は、入力バッファ書き込み管理部2242から出力された入力バッファ空き情報IBEIが表す入力バッファ2252aおよび入力バッファ2252bの空き容量に関する情報に基づいて、データバッファ部2252に、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を書き込む(一時記憶する)ための空いている記憶容量があるか否かを判定する。このとき、入力バッファ空き容量管理部2241は、入力バッファ空き情報IBEIに基づいて、画像処理モジュール出力制御部226によって読み出されていない外部処理画素データを記憶しているデータバッファとは異なる他方のデータバッファに、空いている記憶容量があるか否かを判定する。
そして、入力バッファ空き容量管理部2241は、空いている記憶容量を判定した結果、画像処理モジュール出力制御部226によって読み出されるべき外部処理画素データをすでに記憶しているデータバッファとは異なる方のデータバッファに空いている記憶容量がある場合、このデータバッファは、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を書き込むことができる状態であると判定する。この場合、入力バッファ空き容量管理部2241は、外部画像処理装置600から外部入力データ(外部処理画素データ)の入力を要求するデータ入力要求信号が入力されると、データ入力要求信号に対応する外部入力データ(外部処理画素データ)の書き込み(一時記憶)を予約する入力バッファライト予約信号IBWRを、入力バッファ書き込み管理部2242に出力する。
なお、入力バッファ空き容量管理部2241が出力する入力バッファライト予約信号IBWRには、外部入力データ(外部処理画素データ)の書き込み(一時記憶)を予約するデータバッファの情報が含まれている。また、入力バッファライト予約信号IBWRには、外部画像処理装置600から出力される外部入力データ(外部処理画素データ)のデータ量、つまり、データバッファ部2252に書き込む(一時記憶する)外部入力データ(外部処理画素データ)の数を表す情報も含まれている。なお、入力バッファ空き容量管理部2241は、データ入力要求信号による外部入力データ(外部処理画素データ)の入力を受け付けたこと表すデータ入力受け付け信号を、外部画像処理装置600に出力してもよい。
一方、入力バッファ空き容量管理部2241は、空いている記憶容量を判定した結果、データバッファに空いている記憶容量がない場合、いずれのデータバッファにも、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を書き込むことができない状態であると判定する。この場合、入力バッファ空き容量管理部2241は、データ入力要求信号に応じて外部入力データ(外部処理画素データ)の入力を受け付けることができない状態であることを表すデータ入力受け付け信号を、外部画像処理装置600に出力してもよい。なお、このときのデータ入力受け付け信号は、外部入力データ(外部処理画素データ)の入力を受け付けることができない状態であることを、データ入力受け付け信号の論理レベルで表してもよいし、データ入力受け付け信号と異なる信号で表してもよい。また、入力バッファ空き容量管理部2241は、外部入力データ(外部処理画素データ)の出力を要求する、または要求しないことを、データ入力受け付け信号と異なる信号(例えば、外部データ出力要求信号など、)で表してもよい。
入力バッファ書き込み管理部2242は、入力バッファ部225に備えた入力バッファ2252aおよび入力バッファ2252bのそれぞれにおいて空いている記憶容量を監視し、空いている記憶容量を監視した結果を表す入力バッファ空き情報IBEIを入力バッファ空き容量管理部2241に出力する。
より具体的には、入力バッファ書き込み管理部2242は、入力バッファ部225に備えた入力バッファ2252aと入力バッファ2252bとのそれぞれにおいて空いている記憶容量を監視する。そして、入力バッファ書き込み管理部2242は、監視しているそれぞれのデータバッファごとに、空いている記憶容量を表す情報を、入力バッファ空き情報IBEIとして入力バッファ空き容量管理部2241に出力する。
また、入力バッファ書き込み管理部2242は、入力バッファ空き容量管理部2241から出力された入力バッファライト予約信号IBWRに基づいて、外部入力データ(外部処理画素データ)の書き込みを制御するための制御信号を入力バッファ部225に出力する。
より具体的には、入力バッファ書き込み管理部2242は、入力バッファ空き容量管理部2241から出力された入力バッファライト予約信号IBWRに含まれているデータバッファの情報に基づいて、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を書き込む(一時記憶する)データバッファを選択するための入力バッファライト選択信号IBWSを、入力バッファ部225に備えたセレクタ2251に出力する。そして、入力バッファ書き込み管理部2242は、入力バッファライト予約信号IBWRに応じて、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を書き込むタイミングを表す入力バッファライト信号IBWを、入力バッファ部225内の選択したデータバッファに出力する。このとき、入力バッファ書き込み管理部2242は、外部画像処理装置600から外部入力データ(外部処理画素データ)と共に出力された、ユニットラインに含まれるそれぞれの外部処理画素データが、有効な外部処理画素データであるか否かを表す入力データ有効信号に基づいて、現在入力された外部入力データが有効な外部処理画素データであるか否かを判定する。そして、入力バッファ書き込み管理部2242は、有効な外部入力データ(外部処理画素データ)のみを書き込むタイミングの入力バッファライト信号IBWを、入力バッファライト予約信号IBWRに含まれているデータバッファに出力する。これにより、入力バッファ部225は、有効な外部入力データ(外部処理画素データ)のみが、予約されたデータバッファに書き込まれる(一時記憶される)。
なお、入力バッファライト予約信号IBWRには、外部画像処理装置600から出力される外部入力データ(外部処理画素データ)の数を表す情報も含まれている。このため、入力バッファ書き込み管理部2242は、外部画像処理装置600から出力される数の外部入力データ(外部処理画素データ)を、入力バッファ部225に書き込ませる(一時記憶させる)。入力バッファ書き込み管理部2242が入力バッファ部225に書き込ませる外部入力データ(外部処理画素データ)の数は、例えば、外部画像処理装置600から入力された有効な外部入力データ(外部処理画素データ)の個数を計数することによって、入力バッファライト予約信号IBWRが表す数の外部入力データ(外部処理画素データ)を入力バッファ2252aまたは入力バッファ2252b書き込ませる(一時記憶させる)。
また、入力バッファ書き込み管理部2242は、入力バッファ空き情報IBEI、入力バッファ空き容量管理部2241から出力された入力バッファライト予約信号IBWR、および画像処理モジュール出力制御部226から出力された入力バッファリード完了信号IBRCのそれぞれの情報に基づいた入力バッファフラグ情報IBFIを、画像処理モジュール出力制御部226に出力する。
より具体的には、入力バッファ書き込み管理部2242は、入力バッファ空き情報IBEIが入力バッファ2252aおよび入力バッファ2252abの両方、またはいずれか一方に空いている記憶容量があることを表している場合には、バッファエンプティ状態を表す入力バッファフラグ情報IBFIを画像処理モジュール出力制御部226に出力する。また、入力バッファ書き込み管理部2242は、入力バッファ空き容量管理部2241から、外部入力データ(外部処理画素データ)の記憶(書き込み)を予約することを表す入力バッファライト予約信号IBWRが入力されている場合には、書き込み中状態であることを表す入力バッファフラグ情報IBFIを画像処理モジュール出力制御部226に出力する。また、入力バッファ書き込み管理部2242は、入力バッファライト信号IBWによって入力バッファ部225への有効な外部入力データ(外部処理画素データ)の書き込みが完了したときに、バッファフル状態であることを表す入力バッファフラグ情報IBFIを画像処理モジュール出力制御部226に出力する。そして、入力バッファ書き込み管理部2242は、画像処理モジュール出力制御部226から入力バッファリード完了信号IBRCが入力されると、バッファエンプティ状態を表す入力バッファフラグ情報IBFIを画像処理モジュール出力制御部226に出力する。なお、入力バッファフラグ情報IBFIは、入力バッファ部225に備えた入力バッファ2252aと入力バッファ2252bとのそれぞれに対応する複数の情報によって構成される情報であってもよい。
画像処理モジュール出力制御部226は、上述したように、入力バッファ部225に記憶された外部入力データ(外部処理画素データ)の出力(読み出し)を制御する。図8に示した画像処理モジュール出力制御部226は、入力バッファデータ量管理部2261と、入力バッファ読み出し管理部2262と、を備えている。
入力バッファデータ量管理部2261は、入力バッファ読み出し管理部2262から出力された入力バッファデータ量情報IBDIに基づいて、入力バッファ部225に備えた入力バッファ2252aおよび入力バッファ2252bのそれぞれに記憶されている外部入力データ(外部処理画素データ)のデータ量を判定する。そして、入力バッファデータ量管理部2261は、後段に接続された画像処理モジュール21からのデータ出力の要求に応じて、データバッファからの外部入力データ(外部処理画素データ)の出力(読み出し)を予約するための入力バッファリード予約信号IBRRを、入力バッファ読み出し管理部2262に出力する。
より具体的には、入力バッファデータ量管理部2261は、入力バッファ読み出し管理部2262から出力された入力バッファデータ量情報IBDIが表す入力バッファ2252aおよび入力バッファ2252bに記憶しているデータ量に関する情報に基づいて、データバッファ部2252に、後段に接続された画像処理モジュール21に出力する外部入力データ(外部処理画素データ)が書き込まれている(一時記憶されている)か否かを判定する。このとき、入力バッファデータ量管理部2261は、入力バッファデータ量情報IBDIに基づいて、外部入力制御部224によって外部入力データ(外部処理画素データ)の書き込みがされているデータバッファとは異なる他方のデータバッファに書き込みが完了している外部入力データ(外部処理画素データ)があるか否かを判定する。
そして、入力バッファデータ量管理部2261は、外部処理画素データのデータ量を判定した結果、後段に接続された画像処理モジュール21に出力データとして出力する外部処理画素データがすでにデータバッファに記憶されている場合、このデータバッファは、外部処理画素データを読み出して後段に接続された画像処理モジュール21に出力することができる状態であると判定する。この場合、入力バッファデータ量管理部2261は、後段に接続された画像処理モジュール21から出力データ(外部処理画素データ)の出力を要求するデータリクエスト信号が入力されると、データリクエスト信号に対応する出力データ(外部処理画素データ)の読み出し(出力)を予約する入力バッファリード予約信号IBRRを、入力バッファ読み出し管理部2262に出力する。
なお、入力バッファデータ量管理部2261が出力する入力バッファリード予約信号IBRRには、外部処理画素データの書き込みが完了していると判定したデータバッファの情報、つまり、外部処理画素データを読み出すデータバッファの情報が含まれている。また、入力バッファデータ量管理部2261は、データリクエスト信号による出力データ(外部処理画素データ)の出力を受け付けたこと表すデータアクノリッジ信号を、後段に接続された画像処理モジュール21に出力する。
一方、入力バッファデータ量管理部2261は、外部処理画素データのデータ量を判定した結果、出力データとして出力する外部処理画素データがデータバッファに記憶されていない場合、いずれのデータバッファからも、外部処理画素データを読み出すことができない状態であると判定する。この場合、入力バッファデータ量管理部2261は、データリクエスト信号による出力データ(外部処理画素データ)の出力を受け付けることができない状態であることを表すデータアクノリッジ信号を、後段に接続された画像処理モジュール21に出力する。なお、このときのデータアクノリッジ信号は、出力データ(外部処理画素データ)の出力を受け付けることができない状態であることを、データアクノリッジ信号の論理レベルで表してもよいし、データアクノリッジ信号と異なる信号で表してもよい。
入力バッファ読み出し管理部2262は、入力バッファ書き込み管理部2242から出力された入力バッファフラグ情報IBFIに基づいて、入力バッファ部225に備えた入力バッファ2252aおよび入力バッファ2252bのそれぞれに書き込まれている外部入力データ(外部処理画素データ)のデータ量を監視し、データ量を監視した結果を表す入力バッファデータ量情報IBDIを入力バッファデータ量管理部2261に出力する。
より具体的には、入力バッファ読み出し管理部2262は、入力バッファ部225に備えた入力バッファ2252aと入力バッファ2252bとのそれぞれに書き込まれているデータ量を監視する。そして、入力バッファ読み出し管理部2262は、監視しているそれぞれのデータバッファごとに、書き込まれているデータ量を表す情報を、入力バッファデータ量情報IBDIとして入力バッファデータ量管理部2261に出力する。
また、入力バッファ読み出し管理部2262は、入力バッファデータ量管理部2261から出力された入力バッファリード予約信号IBRRに基づいて、入力バッファ部225に記憶された外部入力データ(外部処理画素データ)の読み出し(出力)を制御するための制御信号を入力バッファ部225に出力する。
より具体的には、入力バッファ読み出し管理部2262は、入力バッファデータ量管理部2261から出力された入力バッファリード予約信号IBRRに含まれているデータバッファの情報に基づいて、記憶された外部処理画素データを読み出す(出力する)データバッファを選択するための入力バッファリード選択信号IBRSを、入力バッファ部225に備えたセレクタ2253に出力する。そして、入力バッファ読み出し管理部2262は、入力バッファリード予約信号IBRRに応じて、後段に接続された画像処理モジュール21から要求されたデータ量の外部処理画素データを読み出して後段に接続された画像処理モジュール21に出力するタイミングを表す入力バッファリード信号IBRを、入力バッファ部225内の選択したデータバッファに出力する。これにより、入力バッファ部225は、入力バッファリード信号IBRに応じて、記憶している要求されたデータ量の外部処理画素データを読み出して、出力データとして後段に接続された画像処理モジュール21に出力する。このとき、入力バッファ読み出し管理部2262は、データバッファから出力データとして読み出した(出力した)ユニットラインに含まれるそれぞれの外部入力データ(外部処理画素データ)が、有効な外部処理画素データであるか否かを表すデータ有効信号を、後段に接続された画像処理モジュール21に出力する。
また、入力バッファ読み出し管理部2262は、入力バッファリード予約信号IBRRに応じて、後段に接続された画像処理モジュール21から要求されたデータ量の外部処理画素データの読み出しが完了すると、データバッファ部2252からの外部入力データ(外部処理画素データ)の読み出しが完了したことを表す入力バッファリード完了信号IBRCを、外部入力制御部224に出力する。この入力バッファリード完了信号IBRCは、例えば、入力バッファ部225から読み出した外部処理画素データの個数を計数することによって出力することができる。
このような構成によって、外部入出力モジュール22における外部入力部は、接続されている外部画像処理装置600から出力された外部入力データ(外部処理画素データ)を入力バッファ部225に一旦記憶し、後段に接続された画像処理モジュール21からのデータ出力の要求に応じて、入力バッファ部225に記憶している外部処理画素データを読み出して、出力データとして出力する。
このような構成によって画像処理部20に備えた外部入出力モジュール22は、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)の接続されている外部画像処理装置600への出力と、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)の後段に接続された画像処理モジュール21への出力とを行う。これにより、外部入出力モジュール22は、画像処理部20においてパイプラインが構成された、前段に接続された画像処理モジュール21と後段に接続された画像処理モジュール21との間に、接続された外部画像処理装置600による外部画像処理を組み込むことができる。これにより、画像処理装置1では、画像処理部20に構成されたパイプライン処理の中に、外部画像処理装置600による外部画像処理を組み込んだ一連の画像処理を実行することができる。
また、画像処理部20に備えた外部入出力モジュール22は、画像処理を行う1フレームの静止画像のデータを予め定めた大きさの複数の矩形領域に分割し、それぞれの矩形領域ごとに画像処理を行う際に、隣接する矩形領域同士で重複する糊代領域に含まれる画素データを保存しておく糊代保存バッファ22222を備える。これにより、外部入出力モジュール22では、次の矩形領域に対する画像処理を行う際に糊代保存バッファ22222に保存している画像データを再度読み出す必要がなく、画像処理を行う際にデータバス10のバス帯域が圧迫されてしまうのを回避して、画像処理装置1の消費電力を低減することができる。
なお、図8に示した外部入出力モジュール22の構成では、リクエスト信号、アクノリッジ信号、および有効信号によって、前段または後段に接続された画像処理モジュール21や、外部画像処理装置600との間で画素データのやり取りをする構成を示した。しかし、外部入出力モジュール22が、前段または後段に接続された画像処理モジュール21や、外部画像処理装置600との間で画素データをやり取りする方法は、リクエスト信号、アクノリッジ信号、および有効信号による方法に限定されるものではなく、他の様々な方法によるデータの伝送方法を採用してもよい。
本第1の実施形態によれば、入力された画像データ(静止画像のデータ)に対して予め定めた処理を行う複数の処理モジュール(画像処理モジュール21−1〜画像処理モジュール21−4)を直列に接続してパイプラインを構成し、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが処理を順次行うことによってパイプライン処理を行う画像処理部(画像処理部20)がデータバス(データバス10)に接続され、1つのフレームの静止画像のデータの領域を予め定めた大きさの複数のブロック(矩形領域,例えば、矩形領域R1〜矩形領域R25)に分割し、データバス10に接続されたデータ記憶部(フレームメモリ500)から矩形領域に含まれる画像データ(ブロック画像データ)をそれぞれの矩形領域ごとにデータバス10を介して読み出して画像処理を行う画像処理装置(画像処理装置1)であって、画像処理部20は、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが行う処理と異なる処理を行う処理モジュールとしてパイプライン内に組み込まれる外部入出力モジュール(外部入出力モジュール22)、を備え、外部入出力モジュール22は、パイプラインにおいて組み込まれた位置の前段に位置する処理モジュールである第1の処理モジュール(例えば、画像処理モジュール21−2)が矩形領域に含まれる画像データ(画素データ)に対して処理を行った処理データ(入力データ,画素データ,処理画素データ)を、データバス10を介さずに直接、画像処理部20の外部の外部処理部(外部画像処理装置600)に(外部出力データとして)出力し、外部画像処理装置600によって処理データ(入力データ,画素データ,処理画素データ)に対して外部処理(外部画像処理)が行われて入力された外部処理データ(外部入力データ,外部処理画素データ)を、データバス10を介さずに直接、パイプラインにおいて第1の処理モジュール(例えば、画像処理モジュール21−2)の後段に位置する処理モジュールである第2の処理モジュール(例えば、画像処理モジュール21−3)に出力する、画像処理装置(画像処理装置1)が構成される。
また、本第1の実施形態によれば、外部入出力モジュール22は、処理データ(入力データ,画素データ,処理画素データ)を一時的に記憶する出力バッファ部(出力バッファ部222)と、外部処理データ(外部入力データ,外部処理画素データ)を一時的に記憶する入力バッファ部(入力バッファ部225)と、を備え、第1の処理モジュール(例えば、画像処理モジュール21−2)が出力した処理データ(処理画素データ)を出力バッファ部222に一旦記憶し、外部画像処理装置600からの要求に応じて出力バッファ部222に記憶した処理データ(処理画素データ)を(外部出力データとして)出力し、外部画像処理装置600が出力した外部処理データ(外部入力データ,外部処理画素データ)を入力バッファ部225に一旦記憶し、第2の処理モジュールからの要求に応じて入力バッファ部225に記憶した外部処理データ(外部入力データ,外部処理画素データ)を(出力データとして)出力する、画像処理装置1が構成される。
また、本第1の実施形態によれば、外部入出力モジュール22は、出力バッファ部222の記憶容量に基づいて、出力バッファ部222への処理データ(入力データ,画素データ,処理画素データ)の書き込みを制御する処理モジュール入力制御部(画像処理モジュール入力制御部221)と、出力バッファ部222に記憶されている処理データ(入力データ,画素データ,処理画素データ)のデータ量に基づいて、出力バッファ部222からの処理データ(入力データ,画素データ,処理画素データ)の読み出しを制御する外部出力制御部(外部出力制御部223)と、入力バッファ部225の記憶容量に基づいて、入力バッファ部225への外部処理データ(外部入力データ,外部処理画素データ)の書き込みを制御する外部入力制御部(外部入力制御部224)と、入力バッファ部225に記憶されている外部処理データ(外部入力データ,外部処理画素データ)のデータ量に基づいて、入力バッファ部225からの外部処理データ(外部入力データ,外部処理画素データ)の読み出しを制御する処理モジュール出力制御部(画像処理モジュール出力制御部226)と、をさらに備える、画像処理装置1が構成される。
また、本第1の実施形態によれば、画像処理モジュール入力制御部221は、第1の処理モジュール(例えば、画像処理モジュール21−2)が処理を行った矩形領域ごとに、処理データ(入力データ,画素データ,処理画素データ)を出力バッファ部222に書き込ませ、外部出力制御部223は、外部画像処理装置600が外部画像処理を行う単位(例えば、ユニットライン)ごとに、出力バッファ部222に記憶されている処理データ(入力データ,画素データ,処理画素データ)を読み出させ、外部入力制御部224は、外部画像処理装置600が外部画像処理を行った単位ごとに、外部処理データ(外部入力データ,外部処理画素データ)を入力バッファ部225に書き込ませ、画像処理モジュール出力制御部226は、第2の処理モジュール(例えば、画像処理モジュール21−3)が処理を行う矩形領域ごとに、入力バッファ部225に記憶されている外部処理データ(外部入力データ,外部処理画素データ)を読み出させる、画像処理装置1が構成される。
また、本第1の実施形態によれば、出力バッファ部222は、第1の処理モジュール(例えば、画像処理モジュール21−2)が出力した処理データ(入力データ,画素データ,処理画素データ)の内、パイプライン処理を行う際に処理を行う対象の矩形領域を進める方向の後側に隣接する矩形領域と重複する糊代領域の処理データ(入力データ,画素データ,処理画素データ)を一時的に記憶する糊代保存バッファ(糊代保存バッファ22222、例えば、糊代保存バッファ22222aや糊代保存バッファ22222b)と、糊代領域以外の処理データ(入力データ,画素データ,処理画素データ)を一時的に記憶する出力バッファ(出力バッファ22221,例えば、出力バッファ22221aや出力バッファ22221b)と、を備え、画像処理モジュール入力制御部221は、第1の処理モジュール(例えば、画像処理モジュール21−2)が処理を行った矩形領域ごとに、糊代領域以外の処理データ(入力データ,画素データ,処理画素データ)を出力バッファ(例えば、出力バッファ22221aまたは出力バッファ22221b)に書き込ませ、糊代領域の処理データ(入力データ,画素データ,処理画素データ)を糊代保存バッファ(例えば、糊代保存バッファ22222aまたは糊代保存バッファ22222b)に書き込ませ、外部出力制御部223は、外部画像処理装置600からの要求に応じて糊代保存バッファ(例えば、糊代保存バッファ22222aまたは糊代保存バッファ22222b)に記憶した処理データ(入力データ,画素データ,処理画素データ)を読み出させた後に、出力バッファ(例えば、出力バッファ22221bまたは出力バッファ22221a)に記憶した処理データ(入力データ,画素データ,処理画素データ)を読み出させる、画像処理装置1が構成される。
また、本第1の実施形態によれば、外部入出力モジュール22は、パイプラインの先頭、途中、および最後尾の少なくとも1つの位置に組み込まれる、画像処理装置1が構成される。
また、本第1の実施形態によれば、出力バッファ部222の記憶容量および入力バッファ部225の記憶容量は、1つのフレームの画像データ(静止画像のデータ)に含まれる全ての画素のデータ(画素データ)を記憶するための記憶容量よりも少ない、画像処理装置1が構成される。
上述したように、第1の実施形態の画像処理装置1では、パイプライン処理を行う画像処理部20内に外部画像処理装置600がデータバス10を介さずに直接接続される外部入出力モジュール22を備える。これにより、第1の実施形態の画像処理装置1では、パイプライン処理の途中の処理画素データを、画像処理装置1の外部に接続された外部画像処理装置600に伝送することができる。そして、第1の実施形態の画像処理装置1では、外部画像処理装置600が画像処理を施した処理画素データ(外部処理画素データ)に対して、パイプライン処理における続きの画像処理を行うことができる。このことにより、第1の実施形態の画像処理装置1では、すでに構成されたパイプライン処理による画像処理の中に、拡張性を持たせるための外部画像処理装置600による画像処理を組み込むことができる。
しかも、第1の実施形態の画像処理装置1では、外部画像処理装置600によって拡張する画像処理に用いる画素データを、フレームメモリ500などの記憶部を用いずに、外部画像処理装置600との間で伝送することができる。このため、第1の実施形態の画像処理装置1では、すでに構成されたパイプライン処理が分断されることなく、拡張する画像処理を組み込んだ状態で、一連の画像処理を行うことができる。
また、第1の実施形態の画像処理装置1では、外部入出力モジュール22に、画像処理を行う1フレームの画像のデータを予め定めた大きさの複数の矩形領域に分割してそれぞれの矩形領域ごとに画像処理を行う際に、隣接する矩形領域同士で重複する糊代領域に含まれる画素データを保存しておく糊代保存バッファ22222を備える。これにより、第1の実施形態の画像処理装置1では、外部入出力モジュール22接続された外部画像処理装置600において分割した矩形領域ごとに画像処理を行う際にも、次の矩形領域に対する画像処理を行う際に糊代保存バッファ22222に保存している画像データを再度読み出す必要がなく、外部画像処理装置600によって拡張する画像処理を、糊代領域を含めて行うことができる。これにより、第1の実施形態の画像処理装置1では、フレームメモリ500が接続されたデータバス10のバス帯域の圧迫や、画像処理装置1の消費電力の増大などが起こらず、第1の実施形態の画像処理装置1を搭載した撮像装置100の性能を低下させることなく、画像処理を拡張することができる。
なお、第1の実施形態の画像処理装置1では、画像処理装置1内の画像処理部20に備えた画像処理モジュール21−2と画像処理モジュール21−3との間に、外部画像処理装置600による外部画像処理を組み込む構成について説明した。しかし、上述したように、第1の実施形態の画像処理装置1では、不図示の接続切り替え部によって、画像処理部20が行う画像処理の順番や、パイプラインに組み込む外部画像処理の位置を変更することができる。従って、第1の実施形態の画像処理装置1においてパイプライン処理の中に外部画像処理を組み込む位置は、第1の実施形態において説明した位置に限定されるものではない。例えば、不図示の接続切り替え部の設定によって、画像処理モジュール21−1と画像処理モジュール21−2との間に、外部画像処理装置600による外部画像処理を組み込むこともできる。
また、第1の実施形態の画像処理装置1では、画像処理部20に備えた外部入出力モジュール22が、画像処理装置1の外部に備えた外部画像処理装置600と接続され、外部画像処理装置600との間で画素データのやり取りをする構成を示した。つまり、第1の実施形態の画像処理装置1では、パイプライン処理に組み込んで拡張する画像処理を実行する構成要素が、画像処理装置1の外部に接続された外部画像処理装置600である構成を説明した。しかし、外部入出力モジュール22と接続して画像処理を拡張するための構成要素(処理装置)は、第1の実施形態において示した画像処理装置1の外部の構成要素に限定されるものではない。例えば、CPUやDSPなどによるソフトウェア処理を、拡張する画像処理としてパイプライン処理の中に組み込むこともできる。このCPUやDSPなどの構成要素は、画像処理部20の外部の構成要素であるが、画像処理装置1の中に備えている構成要素である。この場合、画像処理を拡張するための構成要素(処理装置)としてのCPUやDSPなどと外部入出力モジュール22とを、データバス10を介さずに画像処理装置1の中で接続することによって、同様に、画像処理部20においてすでに構成されたパイプライン処理による画像処理の中に、拡張性を持たせるための画像処理を組み込むことができる。
なお、画像処理においては、それぞれの矩形領域ごとに異なる設定で処理を行うものもある。例えば、座標データに対する処理、歪み補正処理、シェーディング補正処理などにおいては、それぞれの矩形領域ごとに異なる設定値(設定パラメータ)を設定する必要がある。この場合、画像処理モジュール21や外部画像処理装置600は、それぞれの矩形領域に紐付けられている設定パラメータに基づいて、それぞれの画像処理を行う必要がある。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。なお、以下の説明においても、本発明の第2の実施形態の画像処理装置が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置200」という)に搭載されている場合について説明する。図9は、本発明の第2の実施形態における画像処理装置の概略構成を示したブロック図である。なお、図9には、本発明の第2の実施形態の画像処理装置2に関連する撮像装置200内の構成要素として、フレームメモリ500と、外部画像処理装置600とを併せて示している。
図9に示した画像処理装置2は、データバス10と、画像処理部40と、を備えている。また、画像処理部40は、パラメータ設定部41と、4つの画像処理モジュール21(画像処理モジュール21−1〜画像処理モジュール21−4)と、外部入出力モジュール42と、を備えている。画像処理モジュール21のそれぞれは、対応する糊代保存バッファ212を備えている。また、外部入出力モジュール42は、糊代領域の画像データを一時的に保存するための糊代保存バッファ22222を備えている。
図9に示した画像処理装置2の構成は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20が、画像処理部40に代わった構成である。また、図9に示した画像処理装置2に備えた画像処理部40は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20に備えた外部入出力モジュール22が、外部入出力モジュール42に代わった構成である。
なお、画像処理装置2および画像処理装置2に備えた画像処理部40における他の構成要素は、図1に示した第1の実施形態の画像処理装置1または画像処理装置1に備えた画像処理部20における構成要素と同様である。従って、以下の説明においては、画像処理装置2および画像処理装置2に備えた画像処理部40の構成要素において、図1に示した第1の実施形態の画像処理装置1または画像処理装置1に備えた画像処理部20の構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。なお、図9においても、図1に示した撮像装置100と同様に、撮像装置200に備えたそれぞれの構成要素や画像処理装置2においてデータバス10に接続される他の構成要素の図示を省略している。
画像処理部40は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、フレームメモリ500に記憶された1フレームの静止画像のデータを予め定めた大きさの複数の矩形領域に分割したそれぞれの矩形領域ごとに、画像処理装置2において予め定められた種々の画像処理を行う。また、画像処理部40も、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、パイプラインの構成を変更する機能を備えている。
また、画像処理部40も、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが実行する画像処理とは異なる画像処理をパイプライン処理に組み込む機能を備えている。ただし、画像処理装置2では、それぞれの矩形領域に対応する設定パラメータが紐付けられており、画像処理モジュール21やパイプライン処理に組み込む画像処理を行う構成要素(図9の構成では、外部画像処理装置600)が、それぞれの矩形領域に紐付けられた設定パラメータに基づいてそれぞれの画像処理を行う。しかし、以下の説明においては、説明を容易にするため、画像処理装置2に備えた画像処理部40内の画像処理モジュール21、および画像処理装置2の外部に備えた外部画像処理装置600のそれぞれが、矩形領域に紐付けられた設定パラメータに基づいてそれぞれの画像処理を行うものとして説明する。従って、外部画像処理装置600において実行してパイプライン処理に組み込む画像処理(外部画像処理)は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、画像処理モジュール21−1〜画像処理モジュール21−4のいずれの画像処理モジュール21においても実行しない画像処理である。
なお、画像処理装置2においても、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、画像処理部40におけるパイプラインの構成が、例えば、不図示の制御部によって変更(設定)される。
図9には、画像処理モジュール21−2と画像処理モジュール21−3との間に外部入出力モジュール42を組み込むことによって、外部画像処理装置600によって実行される外部画像処理がパイプラインに組み込まれている構成を示している。つまり、図9に示した画像処理部40でも、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、画像処理モジュール21−1による画像処理、画像処理モジュール21−2による画像処理、外部画像処理装置600による画像処理、画像処理モジュール21−3による画像処理、および画像処理モジュール21−4による画像処理を順次行うパイプラインを構成している状態を示している。
なお、画像処理装置2においても、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、外部入出力モジュール42をパイプラインに組み込む位置は、例えば、不図示の制御部によって設定される。従って、画像処理装置2においても、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、外部入出力モジュール42をパイプラインに組み込む位置は、図9に示した位置に限定されるものではなく、パイプライン内のいかなる位置にも組み込むことができる。
パラメータ設定部41は、画像処理部40内に備えた画像処理モジュール21が画像処理を行う際に、画像処理を行う対象のそれぞれの矩形領域に対応する設定パラメータを設定する。より具体的には、例えば、1フレームの静止画像のデータを、図2に示したように矩形領域R1〜矩形領域R25の25個の矩形領域に25分割した場合、パラメータ設定部41は、画像処理モジュール21−1が矩形領域R1に対する画像処理を行う際に、矩形領域R1に対応する設定パラメータを画像処理モジュール21−1に設定する。また、パラメータ設定部41は、画像処理部40においてパイプラインに組み込まれた外部入出力モジュール42が、外部画像処理を行う対象のそれぞれの矩形領域に含まれるブロック画像データを外部画像処理装置600に出力する際に、外部画像処理装置600に出力するブロック画像データが含まれる(属する)矩形領域に対応する設定パラメータを設定する。より具体的には、パラメータ設定部41は、前段に接続された画像処理モジュール21から出力された画素データ(処理画素データ)を外部画像処理装置600に出力する際に、この処理画素データが属する矩形領域に対応する設定パラメータを外部入出力モジュール42に設定する。
外部入出力モジュール42は、第1の実施形態における外部入出力モジュール22と同様に、画像処理部40の外部に備えた構成要素によって実行される外部画像処理を、パイプライン処理に組み込むためのインターフェースモジュールである。外部入出力モジュール42は、第1の実施形態における外部入出力モジュール22と同様に、例えば、不図示の制御部からの制御に応じて、前段に接続された画像処理モジュール21から出力された画素データ(処理画素データ)を、データバス10を介さずに直接、接続されている外部画像処理装置600に出力する。このとき、外部入出力モジュール42は、画素データ(処理画素データ)を外部画像処理装置600に出力する際に、パラメータ設定部41によって設定された設定パラメータを紐付けて出力する。例えば、外部入出力モジュール42は、設定パラメータを、外部画像処理装置600に出力する画素データ(処理画素データ)の先頭や後尾に付加する、いわゆる、ヘッダ情報やマーカ情報などの付加情報に含めることによって、画素データ(処理画素データ)に設定パラメータを紐付けて出力してもよい。なお、本発明においては、外部入出力モジュール42が画素データ(処理画素データ)を外部画像処理装置600に出力する際に設定パラメータを紐付ける方式に関しては、特に制限はしない。
また、外部入出力モジュール42は、第1の実施形態における外部入出力モジュール22と同様に、例えば、不図示の制御部からの制御に応じて、接続されている外部画像処理装置600からデータバス10を介さずに直接入力された外部画像処理が施された画素データを、後段に接続された画像処理モジュール21に出力する。また、外部入出力モジュール42は、第1の実施形態における外部入出力モジュール22と同様に、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備えている。図9には、図1に示した第1の実施形態における外部入出力モジュール22と同様に、データバッファやデータバッファの一部として構成された糊代保存バッファ22222を備えた構成の外部入出力モジュール42を示している。
このように、画像処理部40でも、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、それぞれの画像処理モジュール21が、不図示の制御部からの制御に応じてそれぞれのブロック画像データに含まれる画素データに画像処理をユニットラインごとに順次を行って、1フレームの静止画像のデータに対する一連のパイプライン処理を行う。また、画像処理部40でも、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、いずれの画像処理モジュール21においても実行しない外部画像処理を、例えば、不図示の制御部からの制御に応じて、画像処理部40の外部に備えた構成要素(図9においては、外部画像処理装置600)に実行させて、パイプライン処理に組み込む。このとき、画像処理部40でも、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、外部入出力モジュール42を、外部画像処理を実行する画像処理モジュールとしてパイプラインの構成に組み込む。
このような構成によって、画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、画像処理部40によって実行することができない画像処理であっても、画像処理部40がパイプライン処理を行っているのと同様に処理して、画像処理部40におけるパイプライン処理を拡張することができる。このことにより、撮像装置200でも、第1の実施形態の撮像装置100と同様に、画像処理装置2に備えた画像処理部40内の画像処理モジュール21のそれぞれが実行する画像処理によるパイプライン処理に、外部画像処理装置600が実行する外部画像処理を組み込んで、画像処理装置2に備えた画像処理部40がパイプライン処理を行っているのと同様に、画像処理を拡張することができる。
なお、画像処理装置2において画像処理部40に備えた画像処理モジュール21の動作は、第1の実施形態の画像処理装置1において画像処理部20に備えた画像処理モジュール21の動作と同様である。従って、画像処理装置2における画像処理部40に備えた画像処理モジュール21の動作に関する詳細な説明は省略する。
次に、画像処理装置2において画像処理部40に備えた外部入出力モジュール42の構成および動作について説明する。外部入出力モジュール42の基本的な構成は、図5に示した第1の実施形態の画像処理装置1において画像処理装置1の画像処理部20内に備えた外部入出力モジュール22の基本的な構成と同様である。従って、外部入出力モジュール42の基本的な構成、および外部入出力モジュール42における外部画像処理装置600との間での処理画素データの受け渡し動作の概念に関する詳細な説明は省略する。
図10は、本発明の第2の実施形態における画像処理装置2内の画像処理部40に備えた外部入出力モジュール42の構成を示したブロック図である。図10には、外部入出力モジュール42における基本的な構成を示している。図10に示した外部入出力モジュール42は、画像処理モジュール入力制御部221と、出力バッファ部422と、外部出力制御部423と、外部入力制御部224と、入力バッファ部225と、画像処理モジュール出力制御部226と、を備えている。図10に示した外部入出力モジュール42は、第1の実施形態の画像処理装置1に備えた画像処理部20の外部入出力モジュール22に備えた出力バッファ部222が出力バッファ部422に、外部出力制御部223が外部出力制御部423に、それぞれ代わった構成である。外部入出力モジュール42は、上述したように、第1の実施形態の画像処理装置1に備えた画像処理部20の外部入出力モジュール22の機能に、パラメータ設定部41が設定する設定パラメータに対応する機能が追加されている。
なお、外部入出力モジュール42における他の構成要素は、図8に示した第1の実施形態の画像処理装置1に備えた画像処理部20の外部入出力モジュール22における構成要素と同様である。従って、以下の説明においては、外部入出力モジュール42に備えた構成要素において、図8に示した第1の実施形態における外部入出力モジュール22に備えた構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
外部入出力モジュール42では、画像処理モジュール入力制御部221、出力バッファ部422、および外部出力制御部423の構成が、外部出力部である。外部入出力モジュール42でも、外部入出力モジュール22と同様に、外部出力部の構成によって、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を出力バッファ部422に一時記憶し、接続されている外部画像処理装置600からのデータ出力の要求に応じて、出力バッファ部422に一時記憶した処理画素データを読み出して、外部出力データとして出力する。なお、外部入出力モジュール42においては、外部入力部の構成は、外部入出力モジュール22と同様である。つまり、外部入出力モジュール42においても、外部入力制御部224、入力バッファ部225、および画像処理モジュール出力制御部226の構成が、外部入力部である。
出力バッファ部422は、第1の実施形態における外部入出力モジュール22に備えた出力バッファ部222と同様に、外部入出力モジュール42に入力された入力データ(処理画素データ)を、一時的に記憶するデータバッファである。図10に示した出力バッファ部422は、セレクタ2221と、セレクタ4221と、データバッファ部4222と、セレクタ4223と、を備えている。また、データバッファ部4222は、出力バッファ22221a、糊代保存バッファ22222a、および設定値バッファ42223aからなるデータバッファの組と、出力バッファ22221b、糊代保存バッファ22222b、および設定値バッファ42223bからなるデータバッファの組との2組のデータバッファを備えている。出力バッファ部422は、第1の実施形態の画像処理装置1に備えた画像処理部20の外部入出力モジュール22内の出力バッファ部222に備えたデータバッファ部2222がデータバッファ部4222に、セレクタ2223がセレクタ4223にそれぞれ代わり、セレクタ4221が追加された構成である。また、データバッファ部4222は、第1の実施形態の画像処理装置1に備えた画像処理部20の外部入出力モジュール22内の出力バッファ部222に備えたデータバッファ部2222に、設定値バッファ42223aおよび設定値バッファ42223bが追加された構成である。データバッファ部4222も、第1の実施形態における外部入出力モジュール22内の出力バッファ部222に備えたデータバッファ部2222と同様に、それぞれのデータバッファの組における処理画素データの記憶(書き込み)と出力(読み出し)とを逆の動作に交互に切り替えるデータバッファを2つ備えたダブルバッファの構成である。
なお、出力バッファ部422における他の構成要素は、図8に示した第1の実施形態における外部入出力モジュール22内の出力バッファ部222における構成要素と同様である。従って、以下の説明においては、出力バッファ部422に備えた構成要素において、出力バッファ部222に備えた構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
セレクタ4221は、出力バッファ部422においてパラメータ設定部41から出力された設定パラメータを書き込むデータバッファの組を選択する選択部である。セレクタ4221は、画像処理モジュール入力制御部221から出力された出力バッファライト選択信号OBWSに応じて、セレクタ2221が選択した処理画素データを書き込むデータバッファの組と同じデータバッファの組に属する設定値バッファ42223aまたは設定値バッファ42223bのいずれか一方のデータバッファを、設定パラメータを書き込むデータバッファとして選択する。そして、セレクタ4221は、外部入出力モジュール42に入力された設定パラメータを、選択した設定値バッファ42223aまたは設定値バッファ42223bのいずれか一方のデータバッファに出力する。以下の説明においては、出力バッファ22221aと、糊代保存バッファ22222aと、設定値バッファ42223aとからなるデータバッファの組を「データバッファ組a」といい、出力バッファ22221bと、糊代保存バッファ22222bと、設定値バッファ42223bとからなるデータバッファの組を「データバッファ組b」という。
セレクタ4223は、出力バッファ部422において記憶している処理画素データおよび設定パラメータを読み出すデータバッファの組を選択する選択部である。セレクタ4223は、外部出力制御部423から出力された出力バッファリード選択信号OBRSに応じて、データバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組を、記憶している処理画素データおよび設定パラメータを読み出すデータバッファの組として選択する。そして、セレクタ4223は、選択したデータバッファ組aまたはデータバッファ組bのいずれか一方のデータバッファの組から読み出された処理画素データに、同じく読み出された設定パラメータを紐付けて、設定パラメータが紐付けられた外部出力データとして外部画像処理装置600に出力する。これにより、外部画像処理装置600に、設定パラメータが紐付けられた外部出力データ(処理画素データ)が出力され、外部画像処理装置600は、外部出力データ(処理画素データ)に紐付けられた設定パラメータに基づいて、それぞれの矩形領域に含まれるブロック画像データに対して外部画像処理を行う。
設定値バッファ42223aおよび設定値バッファ42223bのそれぞれは、パラメータ設定部41から出力された設定パラメータを一時的に記憶する記憶容量のデータバッファである。セレクタ4221によって設定パラメータを書き込むデータバッファとして選択された設定値バッファ42223aまたは設定値バッファ42223bのいずれか一方のデータバッファは、画像処理モジュール入力制御部221から出力された出力バッファライト信号OBWに応じて、セレクタ4221を介して入力された設定パラメータを書き込む(記憶する)。一方、セレクタ4223によって記憶している設定パラメータを読み出すデータバッファとして選択された設定値バッファ42223aまたは設定値バッファ42223bのいずれか一方のデータバッファは、外部出力制御部423から出力された出力バッファリード信号OBRに応じて、記憶している設定パラメータを読み出して、セレクタ4223に出力する。
なお、設定値バッファ42223aと設定値バッファ42223bとのそれぞれは、糊代保存バッファ22222aや糊代保存バッファ22222bと同様に、対応する出力バッファ22221aや出力バッファ22221bの記憶容量として構成されてもよい。言い換えれば、出力バッファ部222がもっている記憶容量は、糊代保存バッファ22222や設定値バッファ42223に対応する記憶容量を含んでいてもよい。
外部出力制御部423は、第1の実施形態における外部入出力モジュール22に備えた外部出力制御部223と同様に、出力バッファ部422に記憶された入力データ(処理画素データ)の出力(読み出し)を制御する。図10に示した外部出力制御部423は、出力バッファデータ量管理部2231と、出力バッファ読み出し管理部4232と、を備えている。外部出力制御部423は、第1の実施形態における外部入出力モジュール22に備えた外部出力制御部223内の出力バッファ読み出し管理部2232が、出力バッファ読み出し管理部4232に代わった構成である。
なお、外部出力制御部423における他の構成要素は、図8に示した第1の実施形態における外部入出力モジュール22内の外部出力制御部223における構成要素と同様である。従って、以下の説明においては、外部出力制御部423に備えた構成要素において、外部出力制御部223に備えた構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
出力バッファ読み出し管理部4232は、第1の実施形態における外部入出力モジュール22内の外部出力制御部223に備えた出力バッファ読み出し管理部2232と同様に、画像処理モジュール入力制御部221から出力された出力バッファフラグ情報OBFIに基づいて出力バッファ部422に書き込まれているデータ量を監視した結果を表す出力バッファデータ量情報OBDIを出力バッファデータ量管理部2231に出力する。また、出力バッファ読み出し管理部4232は、第1の実施形態における出力バッファ読み出し管理部2232と同様に、出力バッファデータ量管理部2231から出力された出力バッファリード予約信号OBRRに基づいて、出力バッファ部422に記憶された入力データ(処理画素データ)の読み出し(出力)を制御するための出力バッファリード選択信号OBRSと出力バッファリード信号OBRとを、出力バッファ部422に出力する。これにより、出力バッファ部422は、出力バッファリード信号OBRに応じて、記憶している要求されたデータ量の処理画素データ(矩形領域の処理画素データを含む)と設定パラメータとのそれぞれを読み出し、設定パラメータが紐付けられた外部出力データとして外部画像処理装置600に出力する。このとき、出力バッファ読み出し管理部4232は、第1の実施形態における出力バッファ読み出し管理部2232と同様に、出力データ有効信号を、外部画像処理装置600に出力する。また、出力バッファ読み出し管理部4232は、第1の実施形態における出力バッファ読み出し管理部2232と同様に、外部画像処理装置600から要求されたデータ量の処理画素データの読み出しが完了すると、出力バッファリード完了信号OBRCを、画像処理モジュール入力制御部221に出力する。
また、出力バッファ読み出し管理部4232では、出力バッファ部422に記憶している1つの矩形領域に対応する入力データ(処理画素データ)の読み出し(出力)が完了すると、矩形領域の読み出しが完了したことを表す矩形領域読み出し完了フラグを、パラメータ設定部41に出力する。これにより、パラメータ設定部41は、次に外部画像処理装置600によって外部画像処理を行う対象の矩形領域に対応する設定パラメータを外部入出力モジュール42に出力する。そして、外部入出力モジュール42は、パラメータ設定部41から出力された設定パラメータを、セレクタ4221が選択した設定値バッファ42223aまたは設定値バッファ42223bのいずれか一方のデータバッファに書き込む(記憶する)。
このような構成によって、外部入出力モジュール42における外部出力部は、第1の実施形態の外部入出力モジュール22における外部出力部と同様に、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)を糊代領域以外の処理画素データと糊代領域の処理画素データとに分けてデータバッファの組に一旦記憶する。このとき、外部入出力モジュール42における外部出力部では、パラメータ設定部41から出力されたそれぞれの矩形領域に対応する設定パラメータも、処理画素データに対応するデータバッファの組に一旦記憶する。そして、外部入出力モジュール42における外部出力部は、第1の実施形態の外部入出力モジュール22における外部出力部と同様に、外部画像処理装置600からのデータ出力の要求に応じて、データバッファの組に記憶している糊代領域の処理画素データと糊代領域以外の処理画素データとをそれぞれ読み出す。このとき、外部入出力モジュール42における外部出力部では、読み出している糊代領域の処理画素データと糊代領域以外の処理画素データとに対応する設定パラメータもデータバッファの組から読み出し、データバッファの組から読み出した糊代領域と糊代領域以外との処理画素データに紐付けて、設定パラメータが紐付けられた外部出力データとして外部画像処理装置600に出力する。
なお、外部入出力モジュール42における外部入力部の構成は、上述したように、第1の実施形態における外部入出力モジュール22と同様である。従って、外部入出力モジュール42における外部入力部に関する詳細な説明は省略する。
このような構成によって画像処理部40に備えた外部入出力モジュール42は、前段に接続された画像処理モジュール21から出力された入力データ(処理画素データ)とパラメータ設定部41から出力された設定パラメータとのそれぞれの外部画像処理装置600への出力と、外部画像処理装置600から出力された外部入力データ(外部処理画素データ)の後段に接続された画像処理モジュール21への出力とを行う。これにより、外部入出力モジュール42は、画像処理部40においてパイプラインが構成された、前段に接続された画像処理モジュール21と後段に接続された画像処理モジュール21との間に、接続された外部画像処理装置600による外部画像処理を組み込むことができる。これにより、画像処理装置2では、それぞれの矩形領域ごとに異なる設定パラメータを設定する必要がある場合でも、画像処理部40に構成されたパイプライン処理の中に、外部画像処理装置600による外部画像処理を組み込んだ一連の画像処理を実行することができる。そして、画像処理装置2では、第1の実施形態の画像処理装置1と同様に、画像処理を行う際にデータバス10のバス帯域が圧迫されてしまうのを回避して、画像処理装置2の消費電力を低減することができる。
なお、図10に示した外部入出力モジュール42の構成でも、図8に示した第1の実施形態における外部入出力モジュール22と同様に、リクエスト信号、アクノリッジ信号、および有効信号によって画素データのやり取りをする構成を示したが、外部入出力モジュール42においても、他の様々なデータの伝送方法によって画素データをやり取りしてもよい。
本第2の実施形態によれば、出力バッファ部(出力バッファ部422)は、ブロック(矩形領域,例えば、矩形領域R1〜矩形領域R25)に含まれる画像データ(画素データ)に対して処理を行う際の設定値(設定パラメータ)を一時的に記憶する設定値バッファ(設定値バッファ42223、例えば、設定値バッファ42223aや設定値バッファ42223b)、をさらに備え、処理モジュール入力制御部(画像処理モジュール入力制御部221)は、第1の処理モジュール(例えば、画像処理モジュール21−2)が処理を行った矩形領域ごとに、対応する設定パラメータを設定値バッファ(例えば、設定値バッファ42223aまたは設定値バッファ42223b)に書き込ませ、外部出力制御部(外部出力制御部423)は、外部処理部(外部画像処理装置600)からの要求に応じて、糊代保存バッファ(例えば、糊代保存バッファ22222aまたは糊代保存バッファ22222b)および出力バッファ(例えば、出力バッファ22221bまたは出力バッファ22221a)から読み出させる処理データ(入力データ,画素データ,処理画素データ)に紐付ける設定パラメータを、設定値バッファ(例えば、設定値バッファ42223bまたは設定値バッファ42223a)から読み出させる、画像処理装置(画像処理装置2)が構成される。
また、本第2の実施形態によれば、画像処理部(画像処理部40)は、矩形領域に対応する設定パラメータを設定する設定部(パラメータ設定部41)、をさらに備え、外部出力制御部423は、矩形領域に対応する処理データ(入力データ,画素データ,処理画素データ)の糊代保存バッファ(例えば、糊代保存バッファ22222aまたは糊代保存バッファ22222b)および出力バッファ(例えば、出力バッファ22221bまたは出力バッファ22221a)からの読み出しと、設定パラメータの設定値バッファ(例えば、設定値バッファ42223bまたは設定値バッファ42223a)からの読み出しとが完了したことを表す読み出し完了信号(矩形領域読み出し完了フラグ)をパラメータ設定部41に出力し、パラメータ設定部41は、矩形領域読み出し完了フラグに応じて、次に糊代保存バッファ(例えば、糊代保存バッファ22222bまたは糊代保存バッファ22222a)および出力バッファ(例えば、出力バッファ22221aまたは出力バッファ22221b)から読み出す処理データ(入力データ,画素データ,処理画素データ)に紐付ける設定パラメータを出力する、画像処理装置2が構成される。
また、本第2の実施形態によれば、設定パラメータは、矩形領域ごとに異なる値である、画像処理装置2が構成される。
上述したように、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、外部入出力モジュール42によって、すでに構成されたパイプライン処理が分断されることなく、拡張性を持たせるために画像処理部40の外部に接続した外部画像処理装置600による画像処理を、パイプライン処理による画像処理の中に組み込むことができる。これにより、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、フレームメモリ500が接続されたデータバス10のバス帯域の圧迫や、画像処理装置2の消費電力の増大などが起こらず、第2の実施形態の画像処理装置2を搭載した撮像装置200の性能を低下させることなく、画像処理を拡張することができる。
なお、第2の実施形態の画像処理装置2では、画像処理部40に備えたパラメータ設定部41が、それぞれの矩形領域に対応する設定パラメータを設定する構成について説明した。しかし、設定パラメータを設定する構成要素は、パラメータ設定部41に限定されるものではない。例えば、画像処理装置2や外部画像処理装置600に備えたそれぞれの構成要素を制御する不図示のシステム制御部や、画像処理装置2に備えた不図示の制御部が、それぞれの矩形領域に対応する設定パラメータを設定する構成であってもよい。
また、第2の実施形態の画像処理装置2でも、画像処理装置2内の画像処理部40に備えた画像処理モジュール21−2と画像処理モジュール21−3との間に、外部画像処理装置600による外部画像処理を組み込む構成について説明した。しかし、第2の実施形態の画像処理装置2でも、画像処理部40が行う画像処理の順番や、パイプラインに組み込む外部画像処理の位置の変更に対する考え方は、第1の実施形態の画像処理装置1と同様である。また、第2の実施形態の画像処理装置2でも、画像処理部40に備えた外部入出力モジュール42と接続して画像処理を拡張するための構成要素(処理装置)は、第1の実施形態の画像処理装置1と同様に、画像処理装置2の外部の構成要素に限定されるものではない。
なお、第1の実施形態の画像処理装置1では、画像処理部20に外部入出力モジュール22を1つ備え、第2の実施形態の画像処理装置2では、画像処理部40に外部入出力モジュール42を1つ備えた構成について説明した。しかし、本発明の画像処理装置では、画像処理部に備える外部入出力モジュールの数は、第1の実施形態および第2の実施形態において示した数、すなわち、1つに限定されるものではない。つまり、本発明の画像処理装置では、画像処理部に複数の外部入出力モジュールを備える構成にしてもよい。画像処理部に複数の外部入出力モジュールを備えることによって、画像処理部の外部に備えた構成要素によって実行される画像処理を、画像処理部においてすでに構成されたパイプライン内の複数の位置に組み込むことができる。
また、第1の実施形態および第2の実施形態では、画像処理部20および画像処理部40に備える画像処理モジュール21が、糊代保存バッファ212を備える構成である場合について説明した。しかし、画像処理部20および画像処理部40に備える画像処理モジュール21の構成は、第1の実施形態および第2の実施形態において示した構成に限定されるものではない。つまり、画像処理部20および画像処理部40に備える画像処理モジュール21は、糊代保存バッファ212を備えない構成であってもよい。このとき、画像処理部20および画像処理部40に備える一部の画像処理モジュール21が、糊代保存バッファ212を備えない構成であってもよい。
また、第1の実施形態および第2の実施形態では、画像処理部においてパイプライン処理の途中まで実行した処理画素データを画像処理部の外部に一旦出力し、画像処理部の外部で画像処理を施した外部処理画素データが入力された後に、画像処理部においてパイプライン処理の続きの画像処理を行う構成について説明した。しかし、画像処理装置に備えた画像処理部において、途中からパイプライン処理を実行する構成や、途中までパイプライン処理を実行する構成も考えられる。つまり、画像処理装置では、画像処理部においてパイプライン処理を実行した処理画素データを画像処理部の外部に出力するのみ、または画像処理装置(または画像処理部)の外部の構成要素において外部画像処理が施された外部処理画素データが画像処理装置に入力されるのみである構成も考えられる。この場合、画像処理部に備えた外部入出力モジュールにおいて、画像処理部の外部への処理画素データの出力に関連する構成要素、または画像処理部の外部からの外部処理画素データの入力に関連する構成要素のいずれか一方を動作させることによって、外部の構成要素への処理画素データの出力のみ、または外部の構成要素からの外部処理画素データの入力のみを行う構成を実現することができる。つまり、外部入出力モジュールにおいて、外部出力部のみを動作させることによって外部の構成要素への処理画素データの出力のみを行い、外部入力部のみを動作させることによって外部の構成要素からの外部処理画素データの入力のみを行う構成にすることもできる。このことにより、第1の実施形態および第2の実施形態では、すでに画像処理装置に構成されたパイプライン処理による画像処理の中に、画像処理装置の開発時に想定されていなかった外部の構成要素(外部画像処理装置600)による画像処理を組み込むことができる。
また、第1の実施形態および第2の実施形態では、外部入出力モジュールを、画像処理部に備えたそれぞれの画像処理モジュールによってすでに構成されたパイプラインの途中に組み込む構成について説明した。しかし、画像処理装置に備えた画像処理部において、外部入出力モジュールのみを動作させる、つまり、画像処理装置の外部の構成要素(外部画像処理装置600)のみがパイプライン処理を実行する構成も考えられる。この場合、画像処理装置では、外部入出力モジュールがフレームメモリから画素データ読み出して画像処理部の外部に一旦出力し、画像処理部の外部で画像処理を施した外部処理画素データをフレームメモリに格納する。このことにより、第1の実施形態および第2の実施形態では、すでに画像処理装置に構成されたパイプライン処理による画像処理ではなく、外部の構成要素(外部画像処理装置600)による画像処理を、画像処理装置における画像処理とすることができる。
本第1の実施形態および第2の実施形態の構成によれば、入力された画像データ(静止画像のデータ)に対して予め定めた処理を行う複数の処理モジュール(画像処理モジュール21−1〜画像処理モジュール21−4)を直列に接続してパイプラインを構成し、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが処理を順次行うことによってパイプライン処理を行う画像処理部(画像処理部20または画像処理部40)がデータバス(データバス10)に接続され、1つのフレームの静止画像のデータの領域を予め定めた大きさの複数のブロック(矩形領域,例えば、矩形領域R1〜矩形領域R25)に分割し、データバス10に接続されたデータ記憶部(フレームメモリ500)から矩形領域に含まれる画像データ(ブロック画像データ)をそれぞれの矩形領域ごとにデータバス10を介して読み出して画像処理を行う画像処理装置(画像処理装置1または画像処理装置2)であって、画像処理部20または画像処理部40は、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれが行う処理と異なる処理を行う処理モジュールとしてパイプライン内に組み込まれる外部入出力モジュール(外部入出力モジュール22または外部入出力モジュール42)、を備え、外部入出力モジュール22または外部入出力モジュール42は、パイプラインにおいて組み込まれた位置の前段に位置する処理モジュールである第1の処理モジュール(例えば、画像処理モジュール21−2)が矩形領域に含まれる画像データ(画素データ)に対して処理を行った処理データ(入力データ,画素データ,処理画素データ)を、データバス10を介さずに直接、画像処理部20または画像処理部40の外部の外部処理部(外部画像処理装置600)に出力するか、もしくは、画像処理部20または画像処理部40の外部の外部画像処理装置600から入力された外部処理データ(外部入力データ,外部処理画素データ)を、データバス10を介さずに直接、パイプラインにおいて組み込まれた位置の後段に位置する処理モジュールである第2の処理モジュール(例えば、画像処理モジュール21−3)に出力するか、もしくは、処理データ(入力データ,画素データ,処理画素データ)のデータバス10を介さない画像処理部20または画像処理部40の外部の外部画像処理装置600への直接の出力、および外部画像処理装置600によって処理データ(入力データ,画素データ,処理画素データ)に対して外部処理(外部画像処理)が行われて入力された外部処理データ(外部入力データ,外部処理画素データ)のデータバス10を介さない第2の処理モジュール(例えば、画像処理モジュール21−3)への直接の出力の両方を行う、画像処理装置(画像処理装置1または画像処理装置2)が構成される。
なお、第1の実施形態および第2の実施形態では、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれは、画像処理部または画像処理装置内のクロック信号のタイミングでそれぞれの画像処理をパイプライン処理しているが、外部画像処理装置600が画像処理を行うタイミングは、画像処理部または画像処理装置におけるクロック信号のタイミングであるとは限らない。つまり、外部画像処理装置600が画像処理を行う際の処理レートは、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれにおける処理レートと同様であるとは限らない。また、第1の実施形態および第2の実施形態において、外部画像処理装置600として、例えば、CPUやDSPなど、ソフトウェア処理や複数クロックで1画素を処理するような処理装置を用いた場合にも、画像処理を行う際の処理レートが画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれにおける処理レートと同様になるとは限らない。つまり、画像処理モジュール21−1〜画像処理モジュール21−4のそれぞれにおける処理レートは高いが、外部画像処理装置600における処理レートが低いなど、画像処理装置と外部画像処理装置600との間で処理レートが異なることもある。また、例えば、外部画像処理装置600に多くの処理画素データを一時的に記憶しておくことができる記憶装置を備えている場合、外部画像処理装置600が、処理画素データを予め定めた数だけ記憶装置に一時記憶した後、一時記憶した処理画素データに対して画像処理を行うと、画像処理装置と外部画像処理装置600との間で処理レートが異なることもある。このように、画像処理装置と外部画像処理装置600との間で処理レートが異なる場合であっても、第1の実施形態および第2の実施形態では、それぞれの画像処理モジュール21および外部入出力モジュール22(外部画像処理装置600)は、それぞれの矩形領域に対する画像処理を同時期に平行して行うことができる。
上記に述べたように、本発明の各実施形態によれば、画像処理装置に備えた画像処理部に、画像処理部の外部に備えた構成要素と、データバスを介さずに直接接続するための外部入出力モジュールを備える。つまり、本発明の各実施形態では、画像処理部において実行する画像処理を拡張するため、画像処理部に備えたいずれの画像処理モジュールにおいても実行しない画像処理を行う画像処理装置と、データバスを介さずに直接接続するための外部入出力モジュールを備える。これにより、本発明の各実施形態では、画像処理部に備えたそれぞれの画像処理モジュールによってすでに構成されたパイプライン処理が分断されることなく、画像処理部に備えたそれぞれの画像処理モジュールが実行する一連のパイプライン処理の中に、外部入出力モジュールと接続された画像処理部の外部に備えた構成要素が実行する画像処理を、画像処理モジュールが実行する画像処理として組み込むことができる。このことにより、本発明の各実施形態では、画像処理部に備えたそれぞれの画像処理モジュールがパイプライン処理を行っているのと同様に、画像処理部のパイプライン処理による一連の画像処理を拡張することができる。
しかも、本発明の各実施形態では、画像処理装置に備えた外部入出力モジュールに、画像処理を行う1フレームの画像のデータを予め定めた大きさの複数の矩形領域に分割してそれぞれの矩形領域ごとに画像処理を行う際に、隣接する矩形領域同士で重複する糊代領域に含まれる画素データを保存しておく糊代保存バッファを備える。これにより、本発明の各実施形態では、外部入出力モジュールと接続された画像処理部の外部に備えた構成要素において分割した矩形領域ごとに画像処理を行う際にも、次の矩形領域に対する画像処理を行う際に必要となる糊代保存バッファに保存している画像データを再度読み出す必要がなく、画像処理部の外部に備えた構成要素によって拡張する画像処理を、糊代領域を含めて行うことができる。このことにより、本発明の各実施形態では、データバスのバス帯域の圧迫や、画像処理装置の消費電力の増大などが起こらず、画像処理装置を搭載した撮像装置の性能を低下させることなく、画像処理を拡張することができる。例えば、第1の実施形態の画像処理装置1を搭載することによって、基本的な画像処理を行う撮像装置を実現し、画像処理装置1と外部画像処理装置600との両方を搭載することによって、高機能な画像処理を行う撮像装置を実現することができる。
なお、本発明の各実施形態では、画像処理装置に備えた画像処理部内にパイプラインを構成するそれぞれの処理モジュールを備えた構成について説明した。しかし、パイプライン構成によって一連の処理を行う処理装置は、画像処理装置の他にも種々の処理装置が考えられる。また、パイプライン構成による一連の処理の拡張が求められるシステムも撮像装置の他にも種々のシステムが考えられる。従って、本発明の考え方を適用することができる処理装置やシステムは、本発明の各実施形態で示した画像処理装置や撮像装置に限定されるものではなく、複数の処理モジュールを直列に接続することによってパイプラインを構成してパイプライン処理を行う処理装置を搭載したシステムであれば、本発明の考え方を同様に適用することができ、本発明と同様の効果を得ることができる。
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更ができる。
また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。