(57)【特許請求の範囲】
【請求項１】
パイプライン接続された複数の画像処理モジュールを用いて、画像データを処理するデータ処理装置であって、
前記画像処理モジュールは、
前記画像データの領域を複数行から成る複数の重複ブロックに分割し、第１のブロックにおける最後の行の画像処理を行う際に必要とするデータ数と、該第１のブロックの次に処理を行う第２のブロックにおける最初の行の画像処理を行う際に必要とするデータ数とを合わせた数のデータを記憶する記憶容量のバッファ部と、
入力データを、前記バッファ部に書き込むデータ書き込み制御部と、
前記バッファ部に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データを出力するデータ読み出し制御部と、
前記データ書き込み制御部がデータを書き込む前記バッファ部内の記憶領域、および前記データ読み出し制御部がデータを読み出す前記バッファ部内の記憶領域を決定するバッファ領域決定部と、
を備え、
前記データ書き込み制御部は、
前記バッファ領域決定部によって決定された前記記憶領域に前記入力データを書き込み、前記入力データの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号を出力し、
前記データ読み出し制御部は、
前記バッファ領域決定部によって決定された前記記憶領域に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データの出力が完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号を出力する、
ことを特徴とするデータ処理装置。
【請求項２】
前記データ書き込み制御部は、
前記バッファ領域決定部によって決定された前記バッファ部内の書き込み可能領域に前記入力データを書き込み、予め定められた数の前記入力データの前記バッファ部への書き込みが完了したときに、データの書き込みが完了したと判定し、
前記データ読み出し制御部は、
前記バッファ領域決定部によって決定された前記バッファ部内の読み出し可能領域からデータを読み出し、予め定められた数の前記バッファ部からの読み出しが完了し、該読み出したデータに基づいて生成した出力データの出力が完了したときに、データの読み出しが完了したと判定し、
前記バッファ領域決定部は、
前記データ書き込み制御部による前記入力データの書き込み状態、および前記データ読み出し制御部によるデータの読み出し状態に応じて、前記バッファ部内の前記書き込み可能領域および前記読み出し可能領域を変更する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記バッファ領域決定部は、
前記データ書き込み制御部によってデータが書き込まれた前記バッファ部内の前記記憶領域を、有効なデータが記憶され、該記憶されたデータを読み出すことができる前記読み出し可能領域に決定し、
前記データ読み出し制御部によってデータが読み出された前記バッファ部内の前記記憶領域を、空き領域であり、前記入力データを書き込むことができる前記書き込み可能領域に決定する、
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記データ読み出し制御部は、
前記読み出したデータに基づいてフィルタ処理した出力データを生成するフィルタ処理部、
を備え、
前記記憶容量は、
前記フィルタ処理部がフィルタ処理を行う際に必要とするデータ数に基づいて決定する、
ことを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
パイプライン接続された複数の画像処理モジュールを用いて、画像データを処理するデータ処理装置であって、前記画像処理モジュールは、前記画像データの領域を複数行から成る複数の重複ブロックに分割し、第１のブロックにおける最後の行の画像処理を行う際に必要とするデータ数と、該第１のブロックの次に処理を行う第２のブロックにおける最初の行の画像処理を行う際に必要とするデータ数とを合わせた数のデータを記憶する記憶容量のバッファ部と、入力データを、前記バッファ部に書き込むデータ書き込み制御部と、前記バッファ部に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データを出力するデータ読み出し制御部と、前記データ書き込み制御部がデータを書き込む前記バッファ部内の記憶領域、および前記データ読み出し制御部がデータを読み出す前記バッファ部内の記憶領域を決定するバッファ領域決定部と、を有し、前記データ書き込み制御部が前記バッファ領域決定部によって決定された前記記憶領域に前記入力データを書き込み、前記入力データの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号と、前記データ読み出し制御部が前記バッファ領域決定部によって決定された前記記憶領域に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データの出力が完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号と、をそれぞれ出力するデータ処理装置、
を備え、
前記データ書き込み完了信号が出力された後に、前記データ書き込み制御部による画像データの書き込みに係る設定を行い、
前記データ読み出し完了信号が出力された後に、前記データ読み出し制御部による画像データの読み出しに係る設定を行う、
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置および画像処理装置に関する。
【背景技術】
【０００２】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置においては、撮像装置の画素数の向上、連写速度の向上に伴って、膨大な画素数の画像データを短時間で処理する画像処理装置が望まれている。このような画像データの処理を高速化するための技術として、図１４（ａ）に示したように、画像処理にパイプライン処理を用いる技術が知られている（特許文献１参照）。この特許文献１で開示された技術によると、１フレームの静止画像を、複数の重複（オーバーラップ）部分、いわゆる「のり代部分」を持つブロックに分割する。そして、分割したブロック毎に、「フレームメモリ→イメージプロセス１→イメージプロセス２→・・・→イメージプロセスｎ→ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）処理→フレームメモリ」というように、複数の画像処理を直結した処理を行うようになっている。しかし、分割したそれぞれのブロック内では処理を行う画像データの流れが連続しているが、異なるブロックとの間ではデータの流れが連続していない（図１４（ｂ）参照）。そのため、パイプライン処理の全体を制御するシーケンサが、パイプラインを構成する各処理モジュール（処理部）において処理する画像データの範囲などの設定を、各ブロックのパイプライン処理を開始する前に、毎回設定し直していた（図１４（ｃ）参照）。このように一連のパイプライン処理毎に画像処理の動作を制御した場合、パイプラインを構成する処理モジュールのいずれかが動作していない時間的なロスの期間が、それぞれのブロックの処理の間に発生してしまう。この処理モジュールが動作していないロス時間が、１フレームの静止画像の処理時間に影響することとなる。
【０００３】
また、画像データの処理をさらに高速化するための技術として、図１５に示したように、パイプラインを構成する各処理モジュール毎に、当該処理モジュールによる処理が完了したことを表す割込み信号を、シーケンサに出力する技術も開示されている（特許文献２参照）。この特許文献２で開示された技術では、シーケンサが、処理モジュールから割込み信号が入力されるたびに、その処理モジュールの設定を個別に変更する。これにより、シーケンサがそれぞれの処理モジュールの設定を変更するタイミングが、分割したブロックの処理を開始するタイミング毎ではなくなり、各処理モジュールの処理が完了したタイミング毎となる。このようにシーケンサが各処理モジュールの設定を変更するタイミングをそれぞれの処理モジュール毎にすることによって、特許文献２の技術では、各ブロック間の処理における時間的なロスを低減し、１フレームの静止画像の処理を高速化している（図１６（ａ）参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３１２３２７号公報
【特許文献２】特開２０１０−１７６６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、パイプラインを構成する処理モジュールの１つの処理モジュールに着目（例えば、図１６（ｂ）に示したように、ＹＣ処理モジュールに着目）してみると、処理モジュールに入力してから出力されるまでに遅延時間が生じている。この遅延時間と、処理モジュールの設定の変更に要する時間とを合わせた時間、すなわち、最初のブロックに対応した出力が完了してから次のブロックに対応した出力が開始されるまでの時間は、画像データの処理の高速化におけるロス時間となってしまう、という問題がある。
【０００６】
このロス時間の問題は、例えば、タップ数が大きいフィルタ処理を行う処理モジュールや、撮像装置のレンズの歪曲収差を補正する処理モジュールなどのように、処理モジュールに入力してから出力されるまでの遅延時間が長い処理モジュール程、より顕著な問題となる。
【０００７】
本発明は、上記の課題認識に基づいてなされたものであり、処理モジュールに入力してから出力されるまでの遅延時間が長いデータ処理を含むパイプライン処理において、各パイプライン処理におけるロス時間を低減することができるデータ処理装置および画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明のデータ処理装置は、パイプライン接続された複数の画像処理モジュールを用いて、画像データを処理するデータ処理装置であって、  前記画像処理モジュールは、前記画像データの領域を複数行から成る複数の重複ブロックに分割し、第１のブロックにおける最後の行の画像処理を行う際に必要とするデータ数と、該第１のブロックの次に処理を行う第２のブロックにおける最初の行の画像処理を行う際に必要とするデータ数とを合わせた数のデータを記憶する記憶容量のバッファ部と、入力データを、前記バッファ部に書き込むデータ書き込み制御部と、前記バッファ部に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データを出力するデータ読み出し制御部と、前記データ書き込み制御部がデータを書き込む前記バッファ部内の記憶領域、および前記データ読み出し制御部がデータを読み出す前記バッファ部内の記憶領域を決定するバッファ領域決定部と、を備え、前記データ書き込み制御部は、前記バッファ領域決定部によって決定された前記記憶領域に前記入力データを書き込み、前記入力データの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号を出力し、前記データ読み出し制御部は、前記バッファ領域決定部によって決定された前記記憶領域に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データの出力が完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号を出力する、ことを特徴とする。
【０００９】
また、本発明の前記データ書き込み制御部は、前記バッファ領域決定部によって決定された前記バッファ部内の書き込み可能領域に前記入力データを書き込み、予め定められた数の前記入力データの前記バッファ部への書き込みが完了したときに、データの書き込みが完了したと判定し、前記データ読み出し制御部は、前記バッファ領域決定部によって決定された前記バッファ部内の読み出し可能領域からデータを読み出し、予め定められた数の前記バッファ部からの読み出しが完了し、該読み出したデータに基づいて生成した出力データの出力が完了したときに、データの読み出しが完了したと判定し、前記バッファ領域決定部は、前記データ書き込み制御部による前記入力データの書き込み状態、および前記データ読み出し制御部によるデータの読み出し状態に応じて、前記バッファ部内の前記書き込み可能領域および前記読み出し可能領域を変更する、ことを特徴とする。
【００１０】
また、本発明の前記バッファ領域決定部は、前記データ書き込み制御部によってデータが書き込まれた前記バッファ部内の前記記憶領域を、有効なデータが記憶され、該記憶されたデータを読み出すことができる前記読み出し可能領域に決定し、前記データ読み出し制御部によってデータが読み出された前記バッファ部内の前記記憶領域を、空き領域であり、前記入力データを書き込むことができる前記書き込み可能領域に決定する、ことを特徴とする。
【００１１】
また、本発明の前記データ読み出し制御部は、前記読み出したデータに基づいてフィルタ処理した出力データを生成するフィルタ処理部、を備え、前記記憶容量は、前記フィルタ処理部がフィルタ処理を行う際に必要とするデータ数に基づいて決定する、ことを特徴とする。
【００１３】
また、本発明の画像処理装置は、パイプライン接続された複数の画像処理モジュールを用いて、画像データを処理するデータ処理装置であって、前記画像処理モジュールは、前記画像データの領域を複数行から成る複数の重複ブロックに分割し、第１のブロックにおける最後の行の画像処理を行う際に必要とするデータ数と、該第１のブロックの次に処理を行う第２のブロックにおける最初の行の画像処理を行う際に必要とするデータ数とを合わせた数のデータを記憶する記憶容量のバッファ部と、入力データを、前記バッファ部に書き込むデータ書き込み制御部と、前記バッファ部に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データを出力するデータ読み出し制御部と、前記データ書き込み制御部がデータを書き込む前記バッファ部内の記憶領域、および前記データ読み出し制御部がデータを読み出す前記バッファ部内の記憶領域を決定するバッファ領域決定部と、を有し、前記データ書き込み制御部が前記バッファ領域決定部によって決定された前記記憶領域に前記入力データを書き込み、前記入力データの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号と、前記データ読み出し制御部が前記バッファ領域決定部によって決定された前記記憶領域に記憶されているデータを読み出し、該読み出したデータに基づいて生成した出力データの出力が完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号と、をそれぞれ出力するデータ処理装置、を備え、前記データ書き込み完了信号が出力された後に、前記データ書き込み制御部による画像データの書き込みに係る設定を行い、前記データ読み出し完了信号が出力された後に、前記データ読み出し制御部による画像データの読み出しに係る設定を行う、ことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、処理モジュールに入力してから出力されるまでの遅延時間が長いデータ処理を含むパイプライン処理において、各パイプライン処理におけるロス時間を低減することができるという効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態における画像処理装置の概略構成を示したブロック図である。
【図２】本実施形態の画像処理装置に備える画像処理モジュールの概略構成を示したブロック図である。
【図３】本実施形態の画像処理装置における処理モジュールの制御タイミングおよび制御内容の一例を説明する図である。
【図４】本実施形態の処理モジュールにおいて行う歪補正処理を説明する図である。
【図５】本実施形態の処理モジュールにおける歪補正処理方法の一例を説明する図である。
【図６】本実施形態の処理モジュールに備えたデータバッファの構成例を説明する図である。
【図７】本実施形態の処理モジュールに備えたデータバッファの動作例を説明する図である。
【図８】本実施形態の処理モジュールに備えたデータバッファにデータを書き込む動作例を説明する図である。
【図９】本実施形態の処理モジュールに備えたデータバッファからデータを読み出す動作例を説明する図である。
【図１０】本実施形態の処理モジュールにおけるパイプライン処理のタイミングを示したタイミングチャートである。
【図１１】本実施形態の処理モジュールにおけるパイプライン処理の制御内容の一例を説明する図である。
【図１２】従来の処理モジュールにおけるパイプライン処理と、本実施形態の処理モジュールにおけるパイプライン処理とを比較した図である。
【図１３】本実施形態の処理モジュールに備えるデータバッファの記憶領域の数を決定する方法を説明する図である。
【図１４】従来のパイプライン処理を行う画像処理装置の概略構成および動作を説明する図である。
【図１５】従来のパイプライン処理を高速化した画像処理装置の概略構成を示したブロック図である。
【図１６】従来のパイプライン処理を高速化した画像処理装置の動作を説明する図である。
【図１７】従来の画像処理装置に備える画像処理モジュールのデータバッファの構成例および動作例を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態における画像処理装置の概略構成を示したブロック図である。図１に示した画像処理装置１は、ＤＭＡバス１０と、ＤＲＡＭ２０と、シーケンサ３０と、入力ＤＭＡモジュール４０と、画像処理モジュールＡ５０と、画像処理モジュールＢ６０と、出力ＤＭＡモジュール７０と、を備えている。本実施形態の画像処理装置１は、例えば、静止画用カメラなどの撮像装置に備えられる。
【００１７】
ＤＲＡＭ２０は、ＤＭＡバス１０に接続され、撮像装置において処理される様々なデータを記憶する。例えば、撮像装置に備えた図示しないイメージャから出力された静止画像のデータを記憶する。本実施形態の画像処理装置１においては、ＤＲＡＭ２０に記憶された１フレームの静止画像のデータを、図１４（ｂ）に示したように、複数の重複（オーバーラップ）したブロックに分割して、それぞれのブロック毎に画像処理を行う。本実施形態の画像処理装置１における画像処理は、図１に示したように、入力ＤＭＡモジュール４０、画像処理モジュールＡ５０、画像処理モジュールＢ６０、および出力ＤＭＡモジュール７０が直列に接続されたパイプライン処理によって、それぞれの処理モジュールにおける画像処理を順次行う。以下の説明においては、１フレームの静止画像のデータを分割したそれぞれのブロックに含まれるデータを、「ブロック画像データ」という。
【００１８】
シーケンサ３０は、本実施形態の画像処理装置１のパイプライン処理を行う際、パイプラインを構成する各処理モジュールの処理シーケンスを制御する。シーケンサ３０は、パイプライン処理を行うブロックに応じた設定および処理の開始を制御する制御信号を各処理モジュールに出力する。
【００１９】
入力ＤＭＡモジュール４０は、ＤＲＡＭ２０に記憶しているブロック画像データを読み出し、読み出したブロック画像データを、パイプラインを構成する次の処理モジュールである画像処理モジュールＡ５０に出力するための処理モジュールである。入力ＤＭＡモジュール４０は、シーケンサ３０から入力された制御信号に応じて、ＤＭＡバス１０を介してＤＲＡＭ２０からブロック画像データを読み出し、読み出したブロック画像データを一時記憶する。そして、入力ＤＭＡモジュール４０は、画像処理モジュールＡ５０から入力されたデータ要求信号に応じて、一時記憶したブロック画像データを、画像処理モジュールＡ５０に出力する。図１においては、シーケンサ３０から入力される出力データ数設定信号、リセット信号、およびＤＭＡ開始トリガ信号と、シーケンサ３０に出力する完了割込み信号とを示している。
【００２０】
画像処理モジュールＡ５０は、入力ＤＭＡモジュール４０から入力されたブロック画像データに対して種々のデジタル的な画像処理を行って、画像処理後のブロック画像データ（以下、「画像処理データ」という）を、パイプラインを構成する次の処理モジュールである画像処理モジュールＢ６０に出力するための処理モジュールである。画像処理モジュールＡ５０は、シーケンサ３０から入力された制御信号に応じて、入力ＤＭＡモジュール４０から入力されたブロック画像データを一時記憶する。そして、一時記憶したブロック画像データに対して画像処理を行い、画像処理モジュールＢ６０から入力されたデータ要求信号に応じて、画像処理データを、画像処理モジュールＢ６０に出力する。画像処理モジュールＡ５０は、ブロック画像データの入力動作および出力動作毎に、シーケンサ３０によって制御される。図１においては、シーケンサ３０から入力される共通リセット信号、入力データ数設定信号、入力部リセット信号、出力データ数設定信号、および出力部リセット信号と、シーケンサ３０に出力する入力完了割込み信号および出力完了割込み信号とを示している。なお、画像処理モジュールＡ５０に関する詳細な説明は、後述する。
【００２１】
画像処理モジュールＢ６０は、画像処理モジュールＡ５０から入力された画像処理データに対して、さらに種々のデジタル的な画像処理を行って、画像処理後のブロック画像データを、パイプラインを構成する次の処理モジュールである出力ＤＭＡモジュール７０に出力するための処理モジュールである。なお、画像処理モジュールＢ６０は、ブロック画像データに対して行う画像処理の内容が、画像処理モジュールＡ５０と異なるのみであるため、詳細な説明は省略する。
【００２２】
出力ＤＭＡモジュール７０は、画像処理モジュールＢ６０から入力された画像処理後のブロック画像データを、ＤＲＡＭ２０に書き込む（記憶する）ための処理モジュールである。出力ＤＭＡモジュール７０は、シーケンサ３０から入力された制御信号に応じて、画像処理モジュールＢ６０から入力された画像処理後のブロック画像データを一時記憶する。そして、出力ＤＭＡモジュール７０は、一時記憶した画像処理後のブロック画像データを、ＤＭＡバス１０を介してＤＲＡＭ２０に出力する。図１においては、シーケンサ３０から入力される入力データ数設定信号、リセット信号、およびＤＭＡ開始トリガ信号と、シーケンサ３０に出力するＤＭＡ完了割込み信号とを示している。
【００２３】
このように、画像処理装置１内の各処理モジュールが、１フレームの静止画像のデータを分割したブロック毎に、シーケンサ３０から出力された制御信号に応じた画像処理を順次処理を行うことによって、各ブロックに対する一連の画像処理を行う。
【００２４】
次に、画像処理装置１内の画像処理モジュールについて説明する。なお、上記に述べたように、画像処理モジュールＡ５０と画像処理モジュールＢ６０とは、画像処理の内容が異なるのみであるため、以下の説明においては、代表して画像処理モジュールＡ５０について説明する。また、画像処理モジュールＡ５０は、画像処理としてフィルタ処理を行う処理モジュールである場合について説明する。図２は、本実施形態の画像処理装置１に備える画像処理モジュールＡ５０の概略構成を示したブロック図である。図２に示したように、画像処理モジュールＡ５０は、入力部５１と、データバッファ５２と、出力部５３と、調停部５４と、データバッファ領域決定部５５と、を備えている。また、出力部５３は、フィルタ処理部５３１を備えている。
【００２５】
データバッファ５２は、ブロック画像データを一時記憶する記憶部である。データバッファ５２は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などで構成される。
【００２６】
入力部５１は、シーケンサ３０から入力された入力データ数設定信号によって設定された数のブロック画像データを、前段の処理モジュール（図１に示した本実施形態においては、入力ＤＭＡモジュール４０）から読み出し、読み出したブロック画像データを、データバッファ５２に書き込む（ライトする）。入力部５１は、シーケンサ３０から入力された入力部リセット信号によって初期化される。また、入力部５１は、設定された数のブロック画像データの読み出しと、データバッファ５２への書き込みとが完了する、すなわち、入力処理が完了すると、入力完了割込み信号を、シーケンサ３０に出力する。また、入力部５１が、データバッファ５２にブロック画像データを書き込む際には、調停部５４から入力されるバッファ空き量情報と、データバッファ領域決定部５５から入力されるライト領域情報とに基づいて生成したライトコマンドによって、データバッファ５２の対応する記憶領域にライトデータが書き込まれる。また、入力部５１は、ライトデータの書き込みが完了したときに、ライト完了通知を調停部５４に出力する。
【００２７】
出力部５３は、データバッファ５２に記憶しているブロック画像データを読み出し（リードし）、出力部５３内に備えるフィルタ処理部５３１によってフィルタ処理を行った画像処理データを、後段の処理モジュール（図１に示した本実施形態においては、画像処理モジュールＢ６０）から入力されたデータ要求信号に応じて出力する。出力部５３が出力する画像処理データの数は、シーケンサ３０から入力された出力データ数設定信号によって設定される。出力部５３は、シーケンサ３０から入力された出力部リセット信号によって初期化される。また、出力部５３は、データバッファ５２に記憶しているブロック画像データの読み出しと、設定された数の画像処理データの出力とが完了する、すなわち、出力処理が完了すると、出力完了割込み信号を、シーケンサ３０に出力する。また、出力部５３が、データバッファ５２に記憶しているブロック画像データを読み出す際には、調停部５４から入力される有効データ量情報と、データバッファ領域決定部５５から入力されるリード領域情報とに基づいて生成したリードコマンドによって、データバッファ５２の対応する記憶領域からリードデータを読み出す。また、出力部５３は、リードデータの読み出しが完了したときに、リード完了通知を調停部５４に出力する。
【００２８】
フィルタ処理部５３１におけるフィルタ処理としては、例えば、ローパスフィルタ処理、ノイズ低減フィルタ処理、歪補正処理、画像リサイズ処理など、様々な画像処理が考えられる。なお、以下の説明においては、出力部５３内にフィルタ処理部５３１を備える場合の例について説明するが、例えば、入力部５１内にフィルタ処理部を備える構成とすることもできる。入力部５１内にフィルタ処理部を備える構成とした場合には、入力部５１がデータバッファ５２に書き込むデータが画像処理データとなり、出力部５３はデータバッファ５２に記憶された画像処理データを出力することとなる。
【００２９】
データバッファ領域決定部５５は、データバッファ５２に備えた記憶領域の内、どの記憶領域を使用するかを決定する。より具体的には、データバッファ領域決定部５５は、入力部５１がブロック画像データを書き込む記憶領域と、出力部５３がブロック画像データを読み出す記憶領域とを、それぞれ決定する。そして、決定した入力部５１が書き込む記憶領域の情報を、ライト領域情報として入力部５１に出力する。また、出力部５３が読み出す記憶領域の情報を、リード領域情報として出力部５３に出力する。
【００３０】
調停部５４は、データバッファ５２に備えた記憶領域を管理する。より具体的には、調停部５４は、データバッファ５２にデータを記憶していない記憶領域（以下、「空き領域」という）の情報を、バッファ空き量情報として入力部５１に出力する。このバッファ空き量情報は、入力部５１がデータバッファ５２にブロック画像データを書き込む際に、ブロック画像データを書き込もうとしているデータバッファ５２の記憶領域が空き領域であるか否かの判断に用いられる。入力部５１は、ブロック画像データを書き込もうとしているデータバッファ５２の記憶領域が空き領域である場合に、当該記憶領域がデータを格納（書き込み：ライト）することが可能であると判断し、ブロック画像データの書き込みを実行する。
【００３１】
また、調停部５４は、データバッファ５２に記憶している有効なデータの情報を、有効データ量情報として出力部５３に出力する。この有効データ量情報は、出力部５３がデータバッファ５２からブロック画像データを読み出す際に、ブロック画像データを読み出そうとしているデータバッファ５２の記憶領域に有効なデータが記憶されているか否かの判断に用いられる。出力部５３は、ブロック画像データを読み出そうとしているデータバッファ５２の記憶領域に有効なデータが記憶されている場合に、当該記憶領域からデータを取得（読み出し：リード）することが可能であると判断し、ブロック画像データの読み出しを実行する。
【００３２】
また、調停部５４は、入力部５１から入力されるライト完了通知、および出力部５３から入力されるリード完了通知に基づいて、バッファ空き量情報および有効データ量情報を更新する。
【００３３】
調停部５４およびデータバッファ領域決定部５５は、シーケンサ３０から入力された共通リセット信号によって、初期化される。すなわち、入力部リセット信号または出力部リセット信号では、初期化されない。これは、入力部５１または出力部５３のいずれか一方がリセットを行うタイミングであっても、他方は処理を実行しており、リセットするタイミングではない場合があるため、入力部リセット信号または出力部リセット信号によって、処理を行う際の情報であるバッファ空き量情報または有効データ量情報が初期化されてしまうことを回避するためである。なお、シーケンサ３０からの共通リセット信号の入力によって初期化された場合には、バッファ空き量情報は、データバッファ５２の記憶領域が全て空き領域であることを表す情報に初期化され、有効データ量情報は、データバッファ５２の全ての記憶領域に有効なデータが記憶されていないことを表す情報に初期化される。
【００３４】
このような構成によって、画像処理モジュールＡ５０では、リセットを行う制御単位（以下、「ドメイン」という）を分離する。より具体的には、ブロック画像データを入力する側のリセットドメイン（入力リセットドメイン）と、画像処理データを出力する側のリセットドメイン（出力リセットドメイン）とを、データバッファ５２の位置で分離する。そして、画像処理モジュールＡ５０は、上記に述べたように、入力部５１によるブロック画像データの入力処理が完了したことを表す入力完了割込み信号、および出力部５３による画像処理データの出力処理が完了したことを表す出力完了割込み信号を、それぞれ、シーケンサ３０に出力する。
【００３５】
これにより、本実施形態の画像処理装置１では、シーケンサ３０に画像処理モジュールＡ５０または画像処理モジュールＢ６０から割込み信号（入力完了割込み信号または出力完了割込み信号）が入力されるたびに、シーケンサ３０が割込み信号に応じたドメイン（制御単位）のリセットおよびパイプライン処理を行うブロックに応じた設定の再設定を行うことができる。このことにより、画像処理モジュールＡ５０および画像処理モジュールＢ６０では、前の処理モジュールからから出力されたブロック画像データを画像処理して次の処理モジュールに出力している最中に、前の処理ブロックから出力される次のブロック画像データを、先行して入力処理を開始することができる。
【００３６】
ここで、図１に示した画像処理装置１における処理モジュールの制御について説明する。なお、以下の説明においては、画像処理装置１におけるパイプライン処理において、シーケンサ３０と画像処理モジュールＡ５０とに注目して説明する。図３は、本実施形態の画像処理装置１における画像処理モジュールＡ５０の制御タイミングおよび制御内容の一例を説明する図である。画像処理装置１のパイプライン処理のタイミングに関しては図３（ａ）を参照し、シーケンサ３０の処理内容に関しては図３（ｂ）を参照して説明を行う。
【００３７】
画像処理装置１がＤＲＡＭ２０に記憶された１フレームの静止画像のデータの画像処理を開始すると、まず、シーケンサ３０は、処理１００を行う。処理１００においてシーケンサ３０は、まず、処理１１０において、パイプラインを構成する全ての処理モジュール（入力ＤＭＡモジュール４０、画像処理モジュールＡ５０、画像処理モジュールＢ６０、および出力ＤＭＡモジュール７０）に対して、ブロック画像データを画像処理する際に必要なパラメータや入出力データ数などのレジスタ設定を行う。例えば、入力ＤＭＡモジュール４０には、ＤＲＡＭ２０から読み出して画像処理モジュールＡ５０に出力する出力データ数が設定される。また、画像処理モジュールＡ５０の入力部５１には、入力ＤＭＡモジュール４０から入力される入力データ数が設定され、出力部５３には、ブロック画像データを画像処理する際に必要なパラメータや、画像処理データを次の画像処理モジュールＢ６０に出力する際の出力データ数が設定される。
【００３８】
続いて、シーケンサ３０は、処理１２０において、全ての処理モジュールの動作の状態を初期化（リセット）する。この処理モジュールのリセットにおいてシーケンサ３０は、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０に対して、リセット信号を出力し、画像処理モジュールＡ５０および画像処理モジュールＢ６０に対して、共通リセット信号、入力部リセット信号、および出力部リセット信号を出力する。その後、シーケンサ３０は、リセットを解除する。これにより、各処理モジュールは、それぞれの処理を開始することができる状態となる。このとき、画像処理モジュールＡ５０は、入力ＤＭＡモジュール４０に対してデータ要求信号を出力する。
【００３９】
続いて、シーケンサ３０は、処理１３０において、シーケンサ３０は、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０に対して、ＤＭＡ開始トリガ信号を出力する。これにより、入力ＤＭＡモジュール４０は、ＤＭＡによって、ＤＲＡＭ２０からの最初（１つ目）のブロック画像データ（以下、「第１ブロック画像データ」という）を読み出し、画像処理モジュールＡ５０に第１ブロック画像データを出力することができる状態となる。ここで、入力ＤＭＡモジュール４０には、画像処理モジュールＡ５０からデータ要求信号が入力されているため、入力ＤＭＡモジュール４０がＤＲＡＭ２０から読み出した第１ブロック画像データは、画像処理モジュールＡ５０に出力される。
【００４０】
そして、画像処理モジュールＡ５０内の入力部５１は、入力された第１ブロック画像データを、データバッファ５２に書き込む。また、画像処理モジュールＡ５０内の出力部５３は、データバッファ５２に記憶している第１ブロック画像データを読み出し、フィルタ処理部５３１によってフィルタ処理を行った画像処理データを、画像処理モジュールＢ６０から入力されたデータ要求信号に応じて出力する。
【００４１】
その後、画像処理モジュールＡ５０は、入力部５１によるデータバッファ５２への第１ブロック画像データの書き込みが終了する、すなわち、処理１１０においてシーケンサ３０によって設定された入力データ数の第１ブロック画像データをデータバッファ５２に書き込んだとき、入力完了割込み信号をシーケンサ３０に出力する。
【００４２】
シーケンサ３０は、画像処理モジュールＡ５０から入力完了割込み信号が入力されると、処理２００を行う。処理２００においてシーケンサ３０は、まず、処理２１０において、画像処理モジュールＡ５０の入力部５１に対して、入力ＤＭＡモジュール４０から入力される次（２つ目）のブロック画像データ（以下、「第２ブロック画像データ」という）の入力データ数を設定する。
【００４３】
続いて、シーケンサ３０は、処理２２０において、画像処理モジュールＡ５０内の入力部５１側の動作の状態をリセットする。この入力部５１側のリセットにおいてシーケンサ３０は、画像処理モジュールＡ５０に対して、入力部リセット信号のみを出力する。その後、シーケンサ３０は、画像処理モジュールＡ５０に対するリセットを解除する。これにより、画像処理モジュールＡ５０は、入力ＤＭＡモジュール４０に対して第２ブロック画像データを要求するデータ要求信号を出力し、第２ブロック画像データのデータバッファ５２への書き込みを開始する。
【００４４】
なお、処理２２０においてシーケンサ３０は、画像処理モジュールＡ５０に対して共通リセット信号を出力していないため、画像処理モジュールＡ５０内の調停部５４およびデータバッファ領域決定部５５はリセットされない。このため、画像処理モジュールＡ５０内の入力部５１が第２ブロック画像データをデータバッファ５２に書き込む際には、第１ブロック画像データを最後に書き込んだデータバッファ５２の記憶領域の次の記憶領域から、第２ブロック画像データの書き込みが開始される。これにより、入力部５１が第２ブロック画像データをデータバッファ５２に書き込む際に、出力部５３がフィルタ処理を行って画像処理モジュールＢ６０に出力していない第１ブロック画像データが上書きされてしまうことを回避することができる。
【００４５】
その後、画像処理モジュールＡ５０は、出力部５３によるデータバッファ５２からの第１ブロック画像データの読み出し、およびフィルタ処理部５３１によるフィルタ処理後の画像処理データの画像処理モジュールＢ６０への出力が終了する、すなわち、処理１１０においてシーケンサ３０によって設定された出力データ数のフィルタ処理後の画像処理データを出力したとき、出力完了割込み信号をシーケンサ３０に出力する。
【００４６】
シーケンサ３０は、画像処理モジュールＡ５０から出力完了割込み信号が入力されると、処理３００を行う。処理３００においてシーケンサ３０は、まず、処理３１０において、画像処理モジュールＡ５０の出力部５３に対して、第２ブロック画像データを画像処理する際に必要なパラメータや、画像処理データを画像処理モジュールＢ６０に出力する出力データ数を設定する。
【００４７】
続いて、シーケンサ３０は、処理３２０において、画像処理モジュールＡ５０内の出力部５３側の動作の状態をリセットする。この出力部５３側のリセットにおいてシーケンサ３０は、画像処理モジュールＡ５０に対して、出力部リセット信号のみを出力する。その後、シーケンサ３０は、画像処理モジュールＡ５０に対するリセットを解除する。これにより、画像処理モジュールＡ５０は、データバッファ５２に記憶している第２ブロック画像データに対するフィルタ処理後の画像処理データを、画像処理モジュールＢ６０から入力されたデータ要求信号に応じて出力する。
【００４８】
なお、処理３２０においてシーケンサ３０は、画像処理モジュールＡ５０に対して共通リセット信号を出力していないため、画像処理モジュールＡ５０内の調停部５４およびデータバッファ領域決定部５５はリセットされない。このため、画像処理モジュールＡ５０内の出力部５３が第２ブロック画像データをデータバッファ５２から読み出す際には、第１ブロック画像データを最後に読み出したデータバッファ５２の記憶領域の次の記憶領域から、第２ブロック画像データの読み出しが開始される。これにより、出力部５３が第２ブロック画像データをデータバッファ５２から読み出す際に、データバッファ５２に残っている第１ブロック画像データを読み出してフィルタ処理を行って画像処理モジュールＢ６０に出力してしまうことを回避することができる。
【００４９】
その後、画像処理モジュールＡ５０は、入力部５１によるデータバッファ５２への第２ブロック画像データの書き込みが終了する、すなわち、処理２１０においてシーケンサ３０によって設定された入力データ数の第２ブロック画像データをデータバッファ５２に書き込んだとき、入力完了割込み信号をシーケンサ３０に出力する。
【００５０】
シーケンサ３０は、画像処理モジュールＡ５０から入力完了割込み信号が入力されると、処理４００を行う。処理４００においてシーケンサ３０は、処理２００と同様に、入力ＤＭＡモジュール４０から入力される次（３つ目）のブロック画像データ（以下、「第３ブロック画像データ」という）に対応した処理を行う。より具体的には、シーケンサ３０は、処理４１０において、画像処理モジュールＡ５０の入力部５１に対して、第３ブロック画像データの入力データ数を設定する。そして、シーケンサ３０は、処理４２０において、画像処理モジュールＡ５０内の入力部５１側の動作の状態をリセットおよびリセットの解除を行う。これにより、画像処理モジュールＡ５０は、入力ＤＭＡモジュール４０に対して第３ブロック画像データを要求するデータ要求信号を出力し、第３ブロック画像データのデータバッファ５２への書き込みを開始する。
【００５１】
その後、画像処理モジュールＡ５０は、出力部５３によるデータバッファ５２からの第２ブロック画像データの読み出し、およびフィルタ処理部５３１によるフィルタ処理後の画像処理データの画像処理モジュールＢ６０への出力が終了する、すなわち、処理３１０においてシーケンサ３０によって設定された出力データ数のフィルタ処理後の画像処理データを出力したとき、出力完了割込み信号をシーケンサ３０に出力する。
【００５２】
シーケンサ３０は、画像処理モジュールＡ５０から出力完了割込み信号が入力されると、処理５００を行う。処理５００においてシーケンサ３０は、処理３００と同様に、第３ブロック画像データに対応した処理を行う。より具体的には、シーケンサ３０は、処理５１０において、画像処理モジュールＡ５０の出力部５３に対して、第３ブロック画像データを画像処理する際に必要なパラメータや、画像処理データを画像処理モジュールＢ６０に出力する出力データ数を設定する。そして、シーケンサ３０は、処理５２０において、画像処理モジュールＡ５０内の出力部５３側の動作の状態をリセットおよびリセットの解除を行う。これにより、画像処理モジュールＡ５０は、データバッファ５２に記憶している第３ブロック画像データに対するフィルタ処理後の画像処理データを、画像処理モジュールＢ６０から入力されたデータ要求信号に応じて出力する。
【００５３】
以降、同様に、画像処理モジュールＡ５０から割込み信号が入力される毎に、シーケンサ３０は、入力された割込み信号に応じた処理を、画像処理装置１における１フレームの静止画像のデータのパイプライン処理が終了となるまで繰り返す。
【００５４】
上記に述べたように、本実施形態の画像処理装置１に備えた画像処理モジュールＡ５０では、入力ＤＭＡモジュール４０からのブロック画像データの入力処理が完了したときの入力完了割込み信号と、画像処理モジュールＢ６０へのフィルタ処理後の画像処理データの出力処理が完了ときの出力完了割込み信号とを、それぞれシーケンサ３０に出力することができる。また、本実施形態の画像処理装置１に備えた画像処理モジュールＢ６０では、画像処理モジュールＡ５０からのフィルタ処理後の画像処理データの入力処理が完了したときの入力完了割込み信号と、出力ＤＭＡモジュール７０への画像処理データの出力処理が完了ときの出力完了割込み信号とを、それぞれシーケンサ３０に出力することができる。このように、画像処理モジュールＡ５０および画像処理モジュールＢ６０では、入力部５１側の制御（入力リセットドメイン）と、出力部５３側の制御（出力リセットドメイン）とを、分離することができる。これにより、画像処理モジュールＡ５０および画像処理モジュールＢ６０では、前の画像処理データの出力処理を実行している最中に、次のブロック画像データの入力処理を開始することができる。
【００５５】
このように、画像処理データの出力処理が完了する前に、次のブロック画像データの入力処理を開始することによって、画像処理モジュールＡ５０および画像処理モジュールＢ６０のそれぞれで、前の画像処理データの出力処理の完了から次の画像処理データの出力処理の開始までのロス時間を低減することができ、パイプライン処理の効率を向上させることができる。特に、ブロック画像データが入力されてからフィルタ処理後の画像処理データが出力されるまでの入出力の遅延時間が長い処理モジュール（例えば、以下に説明する歪補正処理モジュール）においては、高い効果を得ることができる。
【００５６】
＜適用例＞
次に、画像処理モジュールＡ５０を実際の画像処理に適用した場合の動作例について説明する。以下の説明においては、画像処理モジュールＡ５０が、出力部５３に備えたフィルタ処理部５３１によって歪補正処理を行う場合の例について説明する。図４は、本実施形態の画像処理モジュールＡ５０において行う歪補正処理を説明する図である。
【００５７】
一般的に歪補正処理においては、歪補正前の入力データが入力されてから、歪補正処理後の出力データが出力されるまでの入出力の遅延時間が長い。これは、歪補正処理においては、１つの補正後の出力データを得るために、複数の入力データが処理に用いられるからである。例えば、図４（ａ）に示すように、歪補正後の１つのラインＸの出力データを得るためには、範囲Ｙ分の入力データが必要である。このため、範囲Ｙ分の入力データが処理モジュールに入力されるまで、補正後のラインＸの出力データを出力することができない。このことにより、パイプライン処理における歪補正処理に起因するロス時間が長くなってしまう。
【００５８】
画像処理モジュールＡ５０による歪補正処理においては、図４（ｂ）に示すように、１フレームの静止画像のデータを複数のブロックに分割する。そして、分割したブロックに含まれるブロック画像データ毎に歪補正処理を行う。画像処理モジュールＡ５０においては、上記に述べたように、前のブロック画像データに対応した画像処理データの出力処理、すなわち、歪補正処理を実行している最中に、次のブロック画像データの入力処理を行うことができる。より具体的には、最初のブロック１のブロック画像データに対して歪補正処理を行っている最中に、ブロック２のブロック画像データの入力を開始することができる。このため、画像処理モジュールＡ５０では、ブロック１の歪補正処理における入出力の遅延時間以外の遅延時間を短縮することができ、パイプライン処理のロス時間を低減することができる。
【００５９】
＜歪補正処理の方法例＞
ここで、画像処理モジュールＡ５０による歪補正処理の動作の説明に先立って、画像処理モジュールＡ５０における歪補正処理の処理方法および各構成要素の構成について説明する。まず、画像処理モジュールＡ５０における歪補正処理の方法について説明する。図５は、本実施形態の画像処理モジュールＡ５０における歪補正処理方法の一例を説明する図である。歪補正処理に画像処理モジュールＡ５０を適用した場合の本適用例においては、画像処理モジュールＡ５０内のフィルタ処理部５３１は、図５（ａ）に示したような、１フレームの静止画像のデータを水平方向に複数のブロック（以下、「ブロックライン」という）に分割したブロック画像データ毎に歪補正処理を行う。そして、フィルタ処理部５３１は、静止画像の上（ブロックライン１）から順次歪補正処理を行うものとする。
【００６０】
より具体的には、フィルタ処理部５３１は、まず、図５（ｂ）に示すように、ブロックライン１の歪補正処理を行う。そして、ブロックライン１の歪補正処理が終了した後に、図５（ｃ）および図５（ｄ）に示すように、ブロックライン２、続いてブロックライン３というように、順次、歪補正処理を行っていく。
【００６１】
なお、フィルタ処理部５３１が歪補正処理を行う際に静止画像のデータを分割する方法は、図５に示した水平方向のみの分割に限定されるものではなく、例えば、図４（ａ）に示したように、水平方向に加えて垂直方向にも分割し、分割したそれぞれのブロック毎に歪補正処理を行う構成とすることもできる。
【００６２】
＜データバッファの構成例＞
続いて、本適用例におけるデータバッファ５２の構成について説明する。図６および図７は、本実施形態の画像処理モジュールＡ５０に備えたデータバッファ５２の構成例および動作例を説明する図である。本適用例の画像処理モジュールＡ５０に備えたデータバッファ５２は、図６（ａ）に示したように、ブロックラインの垂直方向の幅を１ラインとし、ブロックラインの水平方向に１６ライン分の記憶領域（領域１〜領域１６）で構成されているものとする。
【００６３】
そして、上記に述べたように、ブロックライン１→ブロックライン２→ブロックライン３というように、順次、歪補正処理を行っていく（図６（ｂ）参照）。このとき、画像処理モジュールＡ５０には、入力ＤＭＡモジュール４０から、図６（ｃ）に示したような順番でブロック画像データが入力される。より具体的には、最初に、ブロックライン１の１ライン目のブロック画像データが入力され、続いて、ブロックライン１の２ライン目のブロック画像データが入力される。その後、ブロックライン１の２０ライン目のブロック画像データが入力されると、続いて、ブロックライン２の１ライン目のブロック画像データが入力される。以降、同様に、ブロックライン２の２ライン目のブロック画像データ・・・ブロックライン２の２０ライン目のブロック画像データ、ブロックライン３の１ライン目のブロック画像データ・・・ブロックライン３の２０ライン目のブロック画像データというように、入力ＤＭＡモジュール４０から順次ブロック画像データが入力される。
【００６４】
なお、以下の説明においては、画像処理モジュールＡ５０に入力されるブロック画像データに対して、ブロックライン、およびブロックライン内のライン数を区別するための符号を付与して説明する。例えば、ブロックライン１の１ライン目のブロック画像データは、「ブロック画像データＩＢＬ１−１」という。また、例えば、ブロックライン３の２０ライン目のブロック画像データは、「ブロック画像データＩＢＬ３−２０」という。また、フィルタ処理部５３１によって歪み補正処理がされた後に、画像処理モジュールＡ５０から出力される歪補正処理後の画像処理データに対しても、同様に、ブロックライン、およびブロックライン内のライン数を区別するための符号を付与して説明する。例えば、歪補正処理後の画像処理データにおいて、ブロックライン１の１ライン目の画像処理データは、「画像処理データＯＢＬ１−１」という。また、例えば、ブロックライン３の１６ライン目の画像処理データは、「画像処理データＯＢＬ３−１６」という。
【００６５】
図７は、入力ＤＭＡモジュール４０から本適用例の画像処理モジュールＡ５０に２０ラインのブロック画像データが入力され、本適用例の画像処理モジュールＡ５０から画像処理モジュールＢ６０に１６ラインの歪補正処理後の画像処理データが出力される場合のパイプライン処理のタイミングを示している。
【００６６】
＜データバッファへのデータ書き込みの例＞
続いて、本適用例においてブロック画像データをデータバッファ５２に書き込む動作について説明する。図８は、本実施形態の画像処理モジュールＡ５０に備えたデータバッファ５２にブロック画像データを書き込む動作例を説明する図である。
【００６７】
本適用例の画像処理モジュールＡ５０内に備えたデータバッファ５２の構成は、図６（ａ）に示したように、１６ライン分の記憶領域で構成されている。すなわち、データバッファ５２の記憶領域は、領域１〜領域１６のみである。このため、画像処理モジュールＡ５０では、データバッファ５２が、領域１と領域１６とを仮想的にリング状につなげられたリングバッファの形式であるものとして、入力部５１が、入力ＤＭＡモジュール４０から入力されたブロック画像データの書き込みを制御する。ブロック画像データを書き込むデータバッファ５２の領域は、データバッファ領域決定部５５によって決定される。
【００６８】
図８では、ブロックライン１→ブロックライン２→ブロックライン３というように、順次、ブロック画像データをデータバッファ５２に書き込む場合において、各ブロックラインが２０ラインであったときに、それぞれのブロック画像データが記憶されるデータバッファ５２の記憶領域を示している。なお、図８においては、説明を容易にするため、データバッファ５２の記憶領域（領域１〜領域１６）の状態を、時系列に４回並べて表している。
【００６９】
より具体的には、画像処理装置１におけるパイプライン処理が開始されると、データバッファ領域決定部５５は、データバッファ５２の領域１〜領域１６を、ブロック画像データＩＢＬ１−１〜ブロック画像データＩＢＬ１−１６を書き込む記憶領域として決定する（図８（ａ）参照）。また、データバッファ領域決定部５５は、領域１〜領域１６に記憶しているブロック画像データＩＢＬ１−１〜ブロック画像データＩＢＬ１−１６が、フィルタ処理部５３１による歪補正処理に使用され、調停部５４によって空き領域であると判断される毎に、空き領域であると判断されたデータバッファ５２の領域１〜領域１６を、順次、次のブロック画像データを書き込む記憶領域として決定する（図８（ｂ）〜図８（ｄ）参照）。
【００７０】
図８（ｂ）においては、データバッファ５２の領域１〜領域４が、ブロック画像データＩＢＬ１−１７〜ブロック画像データＩＢＬ１−２０を書き込む記憶領域として決定され、データバッファ５２の領域５〜領域１６が、ブロック画像データＩＢＬ２−１〜ブロック画像データＩＢＬ１−１２を書き込む記憶領域として決定された場合を表している。なお、入力部５１は、データバッファ５２の領域４へのブロック画像データＩＢＬ１−２０の書き込みが完了したときに、入力完了割込み信号を、シーケンサ３０に出力する。
【００７１】
また、図８（ｃ）においては、データバッファ５２の領域１〜領域８が、ブロック画像データＩＢＬ２−１３〜ブロック画像データＩＢＬ２−２０を書き込む記憶領域として決定され、データバッファ５２の領域９〜領域１６が、ブロック画像データＩＢＬ３−１〜ブロック画像データＩＢＬ１−８を書き込む記憶領域として決定された場合を表している。なお、入力部５１は、データバッファ５２の領域８へのブロック画像データＩＢＬ２−２０の書き込みが完了したときに、入力完了割込み信号を、シーケンサ３０に出力する。
【００７２】
また、図８（ｄ）においては、データバッファ５２の領域１〜領域１２が、ブロック画像データＩＢＬ３−９〜ブロック画像データＩＢＬ３−２０を書き込む記憶領域として決定された場合を表している。なお、入力部５１は、データバッファ５２の領域１２へのブロック画像データＩＢＬ３−２０の書き込みが完了したときに、入力完了割込み信号を、シーケンサ３０に出力する。
【００７３】
＜データバッファからのデータ読み出しの例＞
続いて、本適用例においてデータバッファ５２に記憶されているブロック画像データを読み出す動作について説明する。図９は、本実施形態の画像処理モジュールＡ５０に備えたデータバッファ５２からブロック画像データを読み出す動作例を説明する図である。
【００７４】
データバッファ５２に記憶されているブロック画像データを読み出す際には、出力部５３が、フィルタ処理部５３１による歪補正処理を行うために必要なブロック画像データがデータバッファ５２内に記憶されているか否かを判断し、必要なブロック画像データが記憶されていると判断された場合に、データバッファ５２の読み出しを行う。歪補正処理を行うために必要なブロック画像データがデータバッファ５２内に記憶されているか否かの判断は、調停部５４から出力される有効データ量情報に基づいて行われる。
【００７５】
図９では、データバッファ５２のそれぞれの記憶領域に記憶されている２０ラインのブロック画像データを用いて歪み補正処理を行い、１６ラインの画像処理データを出力する場合を示している。なお、図９においては、歪補正処理に関係するデータバッファ５２の領域のみにブロック画像データの符号を示している。
【００７６】
ここで、図９を参照して、データバッファ５２に記憶されているブロック画像データを読み出して、歪補正処理後の画像処理データを生成する場合の動作例について説明する。まず、図９（ａ）を参照して、画像処理データＯＢＬ１−１を出力するために、ブロック画像データＩＢＬ１−１〜ブロック画像データＩＢＬ１−４が必要である場合について説明する。出力部５３は、調停部５４から出力される有効データ量情報が、データバッファ５２の領域１〜領域４に記憶されているブロック画像データが有効なデータであるか否かを判断する。そして、データバッファ５２の領域１〜領域４に記憶されているブロック画像データが有効なデータである場合、出力部５３は、データバッファ５２の領域１〜領域４に記憶されているブロック画像データを読み出し、フィルタ処理部５３１による歪補正処理後の画像処理データＯＢＬ１−１を出力する。
【００７７】
また、出力部５３は、次の画像処理データＯＢＬ１−２を出力するために必要としないデータバッファ５２の記憶領域に対応するリード完了通知を、調停部５４に出力する。調停部５４は、リード完了通知が入力されたデータバッファ５２の記憶領域を、空き領域とする。図９（ａ）においては、画像処理データＯＢＬ１−１を出力するために必要であったが、画像処理データＯＢＬ１−２を出力するためには必要でないブロック画像データＩＢＬ１−１を記憶しているデータバッファ５２の領域１に対応するリード完了通知を出力し、領域１を空き領域とする場合を示している。この空き領域となったデータバッファ５２の記憶領域には、入力部５１によって、順次、次に入力されたブロック画像データが書き込まれる。
【００７８】
以降、出力部５３は、画像処理データＯＢＬ１−２〜画像処理データＯＢＬ１−１６を出力するために必要なデータバッファ５２の記憶領域を、調停部５４から出力される有効データ量情報に基づいて順次判断し、フィルタ処理部５３１による歪補正処理後の画像処理データＯＢＬ１−２〜画像処理データＯＢＬ１−１６を順次出力する。また、出力部５３は、画像処理データを出力した後に、次の画像処理データを出力するために必要としないデータバッファ５２の記憶領域に対応するリード完了通知を、調停部５４に順次出力する。そして、調停部５４は、入力されたリード完了通知に基づいて、データバッファ５２の記憶領域を、順次空き領域とし、空き領域となったデータバッファ５２の記憶領域には、入力部５１によって、順次、次に入力されたブロック画像データが書き込まれる。
【００７９】
図９（ｂ）においては、画像処理データＯＢＬ１−２を出力するために、ブロック画像データＩＢＬ１−２〜ブロック画像データＩＢＬ１−５が必要である場合を示している。図９（ｃ）においては、画像処理データＯＢＬ１−１６を出力するために、ブロック画像データＩＢＬ１−１６〜ブロック画像データＩＢＬ１−２０が必要である場合を示している。図９（ｃ）においてブロックライン１における画像処理データＯＢＬ１−１６の出力が完了する。これにより、ブロック画像データＩＢＬ１−１６〜ブロック画像データＩＢＬ１−２０は、次のブロックライン２に対応した画像処理データＯＢＬ１−１を出力するために必要ではないため、出力部５３は、データバッファ５２の領域１〜領域４および領域１６に対応するリード完了通知を、調停部５４に出力する。なお、出力部５３は、次の画像処理モジュールＢ６０への画像処理データＯＢＬ１−１６の出力が完了したときに、出力完了割込み信号を、シーケンサ３０に出力する。
【００８０】
そして、出力部５３は、画像処理データＯＢＬ２−１を出力するために必要なブロック画像データＩＢＬ２−１〜ブロック画像データＩＢＬ２−５が、データバッファ５２の領域５〜領域９に記憶されているか否かを、調停部５４から出力される有効データ量情報に基づいて判断する。そして、データバッファ５２の領域５〜領域９に記憶されているブロック画像データが有効なデータである場合、出力部５３は、データバッファ５２の領域５〜領域９に記憶されているブロック画像データを読み出し、フィルタ処理部５３１による歪補正処理後の画像処理データＯＢＬ２−１を出力する（図９（ｄ）参照）。
【００８１】
以降、出力部５３は、画像処理データを出力するために必要なデータバッファ５２の記憶領域を、調停部５４から出力される有効データ量情報に基づいて順次判断し、データバッファ５２の記憶領域に記憶されているブロック画像データが有効なデータである場合に、ブロック画像データの読み出しと、画像処理データの出力とを順次行う。また、出力部５３は、画像処理データを出力した後に、次の画像処理データを出力するために必要としないデータバッファ５２の記憶領域に対応するリード完了通知を、調停部５４に順次出力して、データバッファ５２の記憶領域を順次空き領域とする。
【００８２】
＜動作例＞
続いて、本適用例の画像処理モジュールＡ５０における歪み補正処理の動作について説明する。図１０および図１１は、本実施形態の画像処理モジュールＡ５０におけるパイプライン処理のタイミングおよび制御内容の一例を説明する図である。図１０および図１１においては、説明を容易にするため、図４〜図９を用いて説明した本適用例の画像処理モジュールＡ５０の構成を簡略化した場合の例を示している。図１０および図１１の説明を行うための変更点は以下である。まず、１フレームの静止画像のデータを、２つのブロックラインに分割する。また、データバッファ５２は８ライン分の記憶領域（領域１〜領域８）とする。また、入力部５１には、１２ラインのブロック画像データが入力され、出力部５３からは、１１ラインの画像処理データが出力されるものとする。なお、ブロック画像データおよび画像処理データには、ブロックライン、およびブロックライン内のライン数を区別するための符号を、上記と同様に付与して説明する。なお、画像処理モジュールＡ５０のパイプライン処理のタイミングに関しては図１０を参照し、このときのシーケンサ３０による画像処理モジュールＡ５０の制御内容に関しては図１１を参照して説明を行う。
【００８３】
画像処理装置１がＤＲＡＭ２０に記憶された１フレームの静止画像のデータの画像処理を開始すると、まず、シーケンサ３０は、処理１００を行う。処理１００においては、図３で説明した処理１００と同様に、シーケンサ３０が、パイプラインを構成する全ての処理モジュールに対するパラメータや入出力データ数などのレジスタ設定を行い、全ての処理モジュールの動作状態の初期化（リセット）を行う。これにより、画像処理モジュールＡ５０は、歪み補正処理を開始することができる状態となり、調停部５４が出力するバッファ空き量情報は、データバッファ５２の記憶領域が全て空き領域であることを表す情報に初期化され、有効データ量情報は、データバッファ５２の全ての記憶領域に有効なデータが記憶されていないことを表す情報に初期化される。また、データバッファ領域決定部５５が出力するライト領域情報に含まれるライト先頭バッファ領域と、リード領域情報に含まれるリード先頭バッファ領域とは、データバッファ５２の領域１となる。また、入力部５１は、入力ＤＭＡモジュール４０に対してブロック画像データのデータ要求信号を出力する。なお、以下の説明においては、調停部５４とデータバッファ領域決定部５５とを合わせて、「共通部」ともいう。
【００８４】
そして、シーケンサ３０は、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０に対するＤＭＡ開始トリガ信号を出力する。これにより、入力ＤＭＡモジュール４０は、ＤＭＡによって、ＤＲＡＭ２０からのブロック画像データＩＢＬ１−１を読み出し、読み出したブロック画像データＩＢＬ１−１を、画像処理モジュールＡ５０に出力する（タイミングｔ１）。入力ＤＭＡモジュール４０からブロック画像データＩＢＬ１−１が入力されると、入力部５１は、入力されたブロック画像データＩＢＬ１−１をデータバッファ５２の領域１に書き込む。また、入力部５１は、ブロック画像データＩＢＬ１−１のデータバッファ５２の領域１への書き込みが完了すると、ライト完了通知を調停部５４に出力する。調停部５４は、入力部５１からライト完了通知が入力されると、領域１の状態を表すステータスを、「データあり」の状態に変更する（タイミングｔ２）。
【００８５】
以降、入力ＤＭＡモジュール４０からブロック画像データが入力される毎に、入力部５１は、入力されたブロック画像データをデータバッファ５２の対応する記憶領域に書き込み、対応するライト完了通知を調停部５４に出力する。そして、調停部５４は、ライト完了通知が入力されたデータバッファ５２に対応する領域のステータスを、「データあり」の状態に変更していく。
【００８６】
その後、調停部５４は、歪補正処理後の画像処理データを生成するために必要なブロック画像データがデータバッファ５２内に記憶されたときに、有効データ量情報をデータバッファ５２内の記憶領域に有効なデータが記憶されていることを表す状態に変更する。図１０では、画像処理データＯＢＬ１−１を出力するために、ブロック画像データＩＢＬ１−１〜ブロック画像データＩＢＬ１−３が必要であり、ブロック画像データＩＢＬ１−３が、データバッファ５２の領域３に書き込まれたときに有効データ量情報を変更する場合を示している。出力部５３は、調停部５４からの有効データ量情報が入力されると、データバッファ５２の領域１〜領域３から、ブロック画像データＩＢＬ１−１からブロック画像データＩＢＬ１−３を読み出し、フィルタ処理部５３１によって歪み補正処理を行って、画像処理データＯＢＬ１−１を出力する（タイミングｔ３）。
【００８７】
また、出力部５３は、画像処理データＯＢＬ１−１を出力すると、次の画像処理データＯＢＬ１−２を出力するためには必要でないブロック画像データＩＢＬ１−１を記憶しているデータバッファ５２の領域１に対応するリード完了通知を調停部５４に出力する。調停部５４は、出力部５３からリード完了通知が入力されると、ブロック画像データＩＢＬ１−１を記憶していたデータバッファ５２の領域１のステータスを、「データなし」の状態、すなわち、空き領域の状態に変更する（タイミングｔ４）。
【００８８】
以降、出力部５３は、調停部５４から入力される有効データ量情報に基づいて、データバッファ５２の対応する記憶領域からブロック画像データを読み出し、フィルタ処理部５３１によって歪み補正処理を行った画像処理データを出力する。
【００８９】
その後、図１０のタイミングｔ５〜タイミングｔ６の期間は、画像処理データＯＢＬ１−３を出力するために必要なブロック画像データＩＢＬ１−３〜ブロック画像データＩＢＬ１−６がデータバッファ５２の対応する記憶領域に書き込まれていないため、有効データ量情報が有効なデータが記憶されていないことを表す状態となっており、出力部５３の処理が待たされている状態を示している。出力部５３は、ブロック画像データＩＢＬ１−３〜ブロック画像データＩＢＬ１−６がデータバッファ５２に書き込まれた後に、ブロック画像データＩＢＬ１−３〜ブロック画像データＩＢＬ１−６のデータバッファ５２からの読み出しを再開し、フィルタ処理部５３１によって歪み補正処理を行った画像処理データＯＢＬ１−３を出力する。
【００９０】
また、図１０のタイミングｔ７は、データバッファ５２の領域８に書き込むブロック画像データＩＢＬ１−８が入力ＤＭＡモジュール４０から入力された後、ブロック画像データＩＢＬ１−９が入力されたタイミングである。このとき、調停部５４におけるデータバッファ５２の領域１のステータスは、「データなし」の状態であるため、入力部５１は、引き続きブロック画像データＩＢＬ１−９をデータバッファ５２の領域１に書き込む。
【００９１】
その後、入力部５１は、ブロックライン１の最後のブロック画像データＩＢＬ１−１２を、データバッファ５２の領域４への書き込みが完了すると、ライト完了通知を調停部５４に出力するとともに、入力完了割込み信号をシーケンサ３０に出力する（タイミングｔ８）。
【００９２】
シーケンサ３０は、画像処理モジュールＡ５０から入力完了割込み信号が入力されると、処理２００を行う。処理２００においては、図３で説明した処理２００と同様に、シーケンサ３０が、画像処理モジュールＡ５０の入力部５１に対して、入力ＤＭＡモジュール４０から入力されるブロックライン２のブロック画像データの入力データ数の設定を行い、入力部５１側の動作の状態のリセットを行うための入力部リセット信号を出力する（タイミングｔ９）。これにより、画像処理モジュールＡ５０は、ブロックライン２のブロック画像データの入力を開始することができる状態となり、入力部５１は、入力ＤＭＡモジュール４０に対してブロックライン２のブロック画像データのデータ要求信号を出力する。なお、共通部（調停部５４およびデータバッファ領域決定部５５）は、リセットされないため、入力部５１は、入力ＤＭＡモジュール４０から入力されたブロックライン２のブロック画像データをデータバッファ５２の領域５から順次書き込みを行う。このとき、データバッファ領域決定部５５が出力するライト領域情報に含まれるライト先頭バッファ領域は、データバッファ５２の領域５となる。
【００９３】
その後、図１０のタイミングｔ１０〜タイミングｔ１１の期間は、画像処理データＯＢＬ１−１１を出力するために、出力部５３がデータバッファ５２の領域８に記憶されているブロック画像データＩＢＬ１−８が使用されている、すなわち、出力部５３によるブロック画像データＩＢＬ１−８の読み出しが完了していないため、入力部５１によるデータバッファ５２の領域８へのブロック画像データＩＢＬ２−４の書き込みが待たされている状態を示している。そして、出力部５３は、画像処理データＯＢＬ１−１１の出力が完了すると、リード完了通知を調停部５４に出力するとともに、出力完了割込み信号をシーケンサ３０に出力する（タイミングｔ１１）。入力部５１は、出力部５３によるブロック画像データＩＢＬ１−８の読み出しが完了した後に、データバッファ５２の領域８へのブロック画像データＩＢＬ２−４の書き込みを再開する。
【００９４】
シーケンサ３０は、画像処理モジュールＡ５０から出力完了割込み信号が入力されると、処理３００を行う。処理３００においては、図３で説明した処理３００と同様に、シーケンサ３０が、画像処理モジュールＡ５０の出力部５３に対して、ブロックライン２のブロック画像データに対して歪み補正処理を行うために必要なパラメータや、画像処理データの出力データ数の設定を行い、出力部５３側の動作の状態のリセットを行うための出力部リセット信号を出力する（タイミングｔ１２）。これにより、画像処理モジュールＡ５０は、ブロックライン２のブロック画像データに対する歪み補正処理を開始できる状態となり、出力部５３は、データバッファ５２に記憶しているブロックライン２のブロック画像データの読み出しと、画像処理データの出力とを開始する。なお、共通部（調停部５４およびデータバッファ領域決定部５５）は、リセットされないため、出力部５３は、データバッファ５２の領域５からブロックライン２のブロック画像データの読み出しを順次行う。このとき、データバッファ領域決定部５５が出力するリード領域情報に含まれるリード先頭バッファ領域は、データバッファ５２の領域５となる。
【００９５】
その後、入力部５１は、ブロックライン２の最後のブロック画像データＩＢＬ２−１２を、データバッファ５２の領域８への書き込みが完了すると、ライト完了通知を調停部５４に出力するとともに、入力完了割込み信号をシーケンサ３０に出力する（タイミングｔ１３）。なお、タイミングｔ１３においてシーケンサ３０に入力完了割込み信号が入力されるが、シーケンサ３０は、画像処理モジュールＡ５０に対して何も行わない。これは、タイミングｔ１３において入力された入力完了割込み信号は、全てのブロックラインのブロック画像データが画像処理モジュールＡ５０に入力されたことを表しているのみであり、画像処理モジュールＡ５０に次のブロックラインに対する設定をする必要がないからである。
【００９６】
その後、出力部５３は、画像処理データＯＢＬ２−１１の出力が完了すると、リード完了通知を調停部５４に出力するとともに、出力完了割込み信号をシーケンサ３０に出力する（タイミングｔ１４）。
【００９７】
シーケンサ３０は、画像処理モジュールＡ５０から出力完了割込み信号が入力されると、処理６００を行う。処理６００においてシーケンサ３０は、画像処理モジュールＡ５０の全体をリセットし、画像処理モジュールＡ５０における処理を完了する。より具体的には、シーケンサは、共通リセット信号、入力部リセット信号、および出力部リセット信号を画像処理モジュールＡ５０に出力して、画像処理モジュールＡ５０の処理を完了する。
【００９８】
上記に述べたように、本適用例の画像処理モジュールＡ５０では、入力ＤＭＡモジュール４０からのブロック画像データの入力処理が完了したときの入力完了割込み信号と、歪み補正処理を行った画像処理データの出力処理が完了ときの出力完了割込み信号とを、それぞれシーケンサ３０に出力することができる。また、データバッファ５２の使用状態に応じて、ブロック画像データのデータバッファ５２への書き込み制御、およびデータバッファ５２からのブロック画像データの読み出し制御を調停することができる。
【００９９】
このようにして、本適用例の画像処理モジュールＡ５０では、前の画像処理データの出力処理を実行している最中に、次のブロック画像データの入力処理を開始することができる。図１２は、従来の処理モジュールにおけるパイプライン処理と、本実施形態の処理モジュールにおけるパイプライン処理とを比較した図である。なお、図１２（ａ）は、従来の処理モジュールにおけるパイプライン処理を示し、図１２（ｂ）は、本実施形態の処理モジュールにおけるパイプライン処理を示している。従来の処理モジュールでは、図１２（ａ）に示したように、前に入力されたデータに対応した出力が完了してから次に入力されたデータに対応した出力が開始されるまでの時間が、ロス時間となっている。これに対して、本適用例の画像処理モジュールＡ５０（本実施形態の処理モジュール）では、図１２（ｂ）に示したように、画像処理モジュールＡ５０における入出力の遅延時間は変わらないが、画像処理データの出力処理が完了する前に、次のブロック画像データの入力処理を開始することができるため、前の画像処理データの出力処理の完了から次の画像処理データの出力処理の開始までのロス時間を、従来の処理モジュールよりも低減することができる。これにより、特に、ブロック画像データが入力されてから画像処理データが出力されるまでの入出力の遅延時間が長い処理モジュールにおいて、パイプライン処理の効率を向上させることができる。
【０１００】
＜データバッファのバッファサイズ決定方法の例＞
なお、図１０に示したパイプライン処理のタイミングにおいては、出力部５３の処理が待たされている期間（タイミングｔ５〜タイミングｔ６）、および入力部５１によるデータバッファ５２へのブロック画像データの書き込みが待たされている期間（タイミングｔ１０〜タイミングｔ１１）が存在している。このように、処理が待たされる時間も処理モジュールの入出力の遅延時間に影響し、パイプライン処理におけるロス時間となってしまう。このような処理モジュール内の処理が待たされることによるロス時間は、データバッファ５２のバッファサイズを最適化することによって、低減することもできる。
【０１０１】
ここで、本適用例におけるデータバッファ５２のバッファサイズを決定する方法について説明する。図１３は、本実施形態の画像処理モジュールＡ５０に備えるデータバッファ５２の記憶領域の数（バッファサイズ）を決定する方法を説明する図である。本適用例の画像処理モジュールＡ５０においては、歪量が最も大きいブロックラインの最後のラインの画像処理データを出力するために必要なブロック画像データの数と、その次のブロックラインの最初のラインの画像処理データを出力するために必要なブロック画像データの数とに基づいて決定することができる。
【０１０２】
例えば、ブロックライン１の最後のラインの画像処理データ（例えば、図９（ｃ）に示した画像処理データＯＢＬ１−１６）を出力するために必要なブロック画像データの数が図１３に示した範囲（糊代）Ｍであり、次のブロックライン２の最初のラインの画像処理データ（例えば、図９（ｄ）に示した画像処理データＯＢＬ２−１）を出力するために必要なブロック画像データの数が図１３に示した範囲（糊代）Ｎであると仮定する。この場合において、出力部５３側から考えると、画像処理データＯＢＬ１−１６を出力した直後に画像処理データＯＢＬ２−１を出力することができれば、画像処理モジュールＡ５０内の処理が待たされる時間、すなわちロス時間を最小にすることができる。すなわち、画像処理データＯＢＬ１−１６の歪み補正処理を行っている間に、画像処理データＯＢＬ２−１を出力するために必要なブロック画像データがデータバッファ５２に書き込まれていれば、ロス時間を最小にすることができる。これは、データバッファ５２に、画像処理データＯＢＬ１−１６を出力するために使用する範囲Ｍのブロック画像データと、画像処理データＯＢＬ２−１を出力するために使用する範囲Ｎのブロック画像データとが、画像処理データＯＢＬ１−１６の歪み補正処理を行っている間、格納されている必要があることを表している。このため、範囲Ｍと範囲Ｎとを合計した数を、データバッファ５２のバッファサイズに決定する。
【０１０３】
このようにして、フィルタ処理部５３１によって行うフィルタ処理に必要なブロック画像データの数に応じてデータバッファ５２のバッファサイズを決定することにより、最適な回路規模で、ロス時間を低減することができる。なお、本適用例では、歪み補正処理に必要なブロック画像データの数に基づいてバッファサイズを決定する方法を説明したが、バッファサイズの決定方法は、フィルタ処理部５３１が行うフィルタ処理の種類によって異なる。例えば、フィルタ処理部５３１によるフィルタ処理が、ローパスフィルタ処理であれば、フィルタのタップ数（フィルタサイズ）に応じた必要なデータ数に基づいてバッファサイズを決定する。
【０１０４】
上記に述べたとおり、本発明を実施するための形態によれば、パイプラインを構成するそれぞれの処理モジュールの内、入出力の遅延時間に起因する時間的なロスが大きい処理モジュールにおけるリセットの制御単位を、当該処理モジュールの入力側と出力側とで分離する。そして、処理モジュールの入力側または出力側の処理が完了する毎に、処理が完了したことを表す信号をそれぞれ出力するように構成する。より具体的には、例えば、画像処理モジュールＡ５０においては、入力部５１側と出力部５３側とに分離し、入力完了割込み信号と出力完了割込み信号とを、それぞれ出力する。これにより、処理モジュールの入力側または出力側のいずれか一方の処理が完了したときに、他方の処理が完了していなくとも、次の処理を開始させることができ、当該処理モジュールにおける入出力の遅延時間に起因するロス時間を短くすることができる。これにより、パイプライン処理におけるロス時間を低減することができる。
【０１０５】
なお、本実施形態においては、歪み補正処理を行う画像処理モジュールに適用した場合について説明したが、適用することができる画像処理モジュールは、本発明を実施するための形態に限定されるものではない。例えば、ローパスフィルタ処理、ノイズ低減フィルタ処理、画像リサイズ処理など、大きなフィルタ処理を行う様々な画像処理モジュールに適用することができる。
【０１０６】
また、本実施形態においては、入力ＤＭＡモジュール４０、画像処理モジュールＡ５０、画像処理モジュールＢ６０、および出力ＤＭＡモジュール７０によってパイプラインを構成した場合の一例について説明したが、パイプラインを構成する処理モジュールは、本発明を実施するための形態に限定されるものではない。
【０１０７】
なお、特許文献１には、ロス時間を短縮するために、２つのバッファを用いる方法も開示されている（図１７（ａ）参照）。２つのバッファを使用する場合には、図１７（ｂ）に示したように、一方のバッファ（例えば、バッファＡ）に画像データを書き込んでいる（Ｗｒｉｔｅしている）ときには、他方のバッファ（例えば、バッファＢ）に書き込まれている画像データを読み出して（Ｒｅａｄして）出力するように、切り替え制御を行っている。しかしながら、フィルタ処理を行う処理モジュールにおいては、フィルタ処理を行うために大容量のバッファを使用することが考えられるため、１つの処理モジュール内に大容量のバッファを２つ備えると、処理モジュールの回路規模が大きくなってしまう。本実施形態においては、バッファを仮想的にリング状につなげることによって、１つのバッファのみでフィルタ処理を行うことができる。このため、従来の２つのバッファを用いた処理モジュールよりも、小さい回路規模でフィルタ処理を行う処理モジュールを実現することができる。
【０１０８】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【０１０９】
１・・・画像処理装置
１０・・・ＤＭＡバス
２０・・・ＤＲＡＭ
３０・・・シーケンサ（画像処理装置）
４０・・・入力ＤＭＡモジュール
５０・・・画像処理モジュールＡ（データ処理装置）
５１・・・入力部（データ書き込み制御部）
５２・・・データバッファ（バッファ部）
５３・・・出力部（データ読み出し制御部）
５３１・・・フィルタ処理部（データ読み出し制御部、フィルタ処理部）
５４・・・調停部（バッファ領域決定部）
５５・・・データバッファ領域決定部（バッファ領域決定部）
６０・・・画像処理モジュールＢ（データ処理装置）
７０・・・出力ＤＭＡモジュール
【図１】
0005784299.tif 000002
【図２】
0005784299.tif 000003
【図３】
0005784299.tif 000004
【図４】
0005784299.tif 000005
【図５】
0005784299.tif 000006
【図６】
0005784299.tif 000007
【図７】
0005784299.tif 000008
【図８】
0005784299.tif 000009
【図９】
0005784299.tif 000010
【図１０】
0005784299.tif 000011
【図１１】
0005784299.tif 000012
【図１２】
0005784299.tif 000013
【図１３】
0005784299.tif 000014
【図１４】
0005784299.tif 000015
【図１５】
0005784299.tif 000016
【図１６】
0005784299.tif 000017
【図１７】
0005784299.tif 000018