(57)【特許請求の範囲】
【請求項１】
パイプライン接続され、画像データを処理するデータ処理装置であって、
前記画像データの領域を複数のブロックに分割し、該分割したそれぞれの前記ブロックに含まれるデータ量よりも少ない量のデータを記憶する複数のバッファ部と、
前記複数のバッファ部の情報を保持するバッファ情報通知部と、
前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、入力されたデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部に書き込むデータ書き込み制御部と、
前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、出力するデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部から読み出すデータ読み出し制御部と、
を備え、
前記バッファ情報通知部に保持するバッファ部の情報は、
前記複数のバッファ部のそれぞれが、データの書き込みが可能であるか、またはデータの読み出しが可能であるかを表すバッファ情報と、
前記複数のバッファ部の内、どのバッファ部にデータを書き込むかを表すデータ書き込み情報と、
前記複数のバッファ部の内、どのバッファ部からデータを読み出すかを表すデータ読み出し情報と、
を含み、
前記データ書き込み制御部は、
入力された１つの前記ブロックに含まれる全てのデータの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号を出力し、
前記データ読み出し制御部は、
出力する１つの前記ブロックに含まれる全てのデータの読み出しが完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号を出力する、
ことを特徴とするデータ処理装置。
【請求項２】
前記データ書き込み制御部は、
該データ書き込み制御部が、前記複数のバッファ部にデータを書き込んだ回数と、予め設定されたデータの書き込み回数とに基づいて、データの書き込みが完了したことを判定し、
前記データ読み出し制御部は、
該データ読み出し制御部が、前記複数のバッファ部からデータを読み出した回数と、予め設定されたデータの読み出し回数とに基づいて、データの読み出しが完了したことを判定する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データ書き込み制御部は、
前記バッファ情報通知部に保持された前記データ書き込み情報に基づいて、データを書き込むバッファ部を決定し、該決定したバッファ部に対応する前記バッファ情報に基づいて入力されたデータの書き込みを行い、
前記データ読み出し制御部は、
前記バッファ情報通知部に保持された前記データ読み出し情報に基づいて、データを読み出すバッファ部を決定し、該決定したバッファ部に対応する前記バッファ情報に基づいて出力するデータの読み出しを行う、
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記データ書き込み制御部は、
前記決定したバッファ部へのデータの書き込みが完了したときに、該決定したバッファ部に対応する前記バッファ情報と、前記データ書き込み情報とを変更し、
前記データ読み出し制御部は、
前記決定したバッファ部からデータの読み出しが完了したときに、該決定したバッファ部に対応する前記バッファ情報と、前記データ読み出し情報とを変更する、
ことを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
パイプライン接続され、画像データを処理するデータ処理装置であって、前記画像データの領域を複数のブロックに分割し、該分割したそれぞれの前記ブロックに含まれるデータ量よりも少ない量のデータを記憶する複数のバッファ部と、前記複数のバッファ部の情報を保持するバッファ情報通知部と、前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、入力されたデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部に書き込むデータ書き込み制御部と、前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、出力するデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部から読み出すデータ読み出し制御部と、を有し、前記バッファ情報通知部に保持するバッファ部の情報は、前記複数のバッファ部のそれぞれが、データの書き込みが可能であるか、またはデータの読み出しが可能であるかを表すバッファ情報と、前記複数のバッファ部の内、どのバッファ部にデータを書き込むかを表すデータ書き込み情報と、前記複数のバッファ部の内、どのバッファ部からデータを読み出すかを表すデータ読み出し情報とを含み、前記データ書き込み制御部によって入力された１つの前記ブロックに含まれる全てのデータの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号と、前記データ読み出し制御部によって出力する１つの前記ブロックに含まれる全てのデータの読み出しが完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号と、をそれぞれ出力するデータ処理装置、
を備え、
前記データ書き込み完了信号が出力された後に、前記データ書き込み制御部による画像データの書き込みに係る設定を行い、
前記データ読み出し完了信号が出力された後に、前記データ読み出し制御部による画像データの読み出しに係る設定を行う、
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置および画像処理装置に関する。
【背景技術】
【０００２】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置に備えた画像処理装置においては、１フレームの静止画像を複数のブロックに分割し、分割したブロック毎に複数の画像処理を行うパイプライン処理が知られている。しかし、図８（ａ）に示したように、１フレームの静止画像を複数のブロックに分割した場合、分割したそれぞれのブロック内では処理を行う画像データの流れが連続しているが、異なるブロックとの間ではデータの流れが連続していない（図８（ｂ）参照）。そのため、パイプライン処理の全体を制御するシーケンサが、パイプラインを構成する各処理モジュール（処理部）において処理する画像データの範囲などの設定を、各ブロックのパイプライン処理を開始する前に、毎回設定し直していた（図８（ｃ）参照）。このように一連のパイプライン処理毎に画像処理の動作を制御した場合、パイプラインを構成する処理モジュールのいずれかが動作していない時間的なロスの期間が、それぞれのブロックの処理の間に発生してしまう。この処理モジュールが動作していないロス時間が、１フレームの静止画像の処理時間に影響することとなる。
【０００３】
このロス時間は、１フレームの静止画像を処理するために分割するブロックの大きさによって、１フレームの静止画像の処理に要する時間に対する割合が変わってくる。例えば、図８（ａ）に示したように、１フレームの静止画像を処理するために分割するブロックの大きさが大きい場合、すなわち、それぞれのブロックに含まれる画像データの量が多い場合には、ロス時間よりも画像データを処理している時間の割合の方が大きいため、画像処理全体に対するロス時間の影響は少ない。ところが、図９（ａ）に示したように、１フレームの静止画像を処理するために分割するブロックの大きさが小さい場合、すなわち、それぞれのブロックに含まれる画像データの量が少ない場合には、ロス時間の割合が大きくなり、画像処理全体の処理時間に大きく影響してくる。
【０００４】
この各ブロック間の処理における時間的なロスを低減するための技術が、例えば、特許文献１に開示されている。特許文献１に開示された技術では、パイプラインを構成する各処理モジュール毎に、当該処理モジュールによる処理が完了したことを表す割込み信号（処理完了割込み信号）をシーケンサに出力する。そして、シーケンサは、処理モジュールから処理完了割込み信号が入力されるたびに、その処理モジュールの設定を個別に変更するという技術である。これにより、シーケンサが処理モジュールの設定を変更するタイミングが、分割したブロックの処理を開始するタイミング毎ではなくなり、各処理モジュールの処理が完了したタイミング毎となる。このようにシーケンサが各処理モジュールの設定を変更するタイミングをそれぞれの処理モジュール毎にすることによって、特許文献１の技術では、各ブロック間の処理における時間的なロスを低減し、１フレームの静止画像の処理を高速化している（図９（ｂ）参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１７６６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、パイプラインを構成する処理モジュールの中には、特許文献１に開示された技術を採用して、１つのブロックの処理が完了した後に設定を変更して次のブロックの処理を開始した場合においても、依然として時間的なロスが大きい処理モジュールが存在する。例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によって、共通のデータバスに接続されたＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリに記憶されたデータにアクセスするＤＭＡモジュールにおいては、モジュール内に備えた、データの一時記憶用のバッファの大きさ（容量）や構成によってロス時間が変わってくる。図１０および図１１は、時間的なロスが大きいＤＭＡモジュールの例を説明する図である。図１０（ａ）および図１０（ｂ）は、ＤＭＡモジュールの概略構成を示したブロック図であり、図１０（ａ）は入力ＤＭＡモジュール、図１０（ｂ）は出力ＤＭＡモジュールを示している。また、図１１は、ＤＭＡモジュールを含んだパイプライン処理の一例を示したタイミングチャートである。
【０００７】
図１０（ａ）に示したように、入力ＤＭＡモジュールは、２つのバッファ（バッファＡとバッファＢ）と、ＤＲＡＭに記憶されているデータを共通のデータバスを介して取得して一方のバッファに書き込むＤＭＡインタフェース（Ｉ／Ｆ）と、他方のバッファに記憶されているデータを読み出して次の処理モジュールに出力するバッファ読み出し回路とを備えている。また、図１０（ｂ）に示したように、出力ＤＭＡモジュールは、２つのバッファ（バッファＣとバッファＤ）と、前の処理モジュールから出力されたデータを一方のバッファに書き込むバッファ書き込み回路と、他方のバッファに記憶されているデータを読み出して共通のデータバスを介してＤＲＡＭに出力するＤＭＡインタフェース（Ｉ／Ｆ）とを備えている。図１０（ａ）および図１０（ｂ）に示したような構成のＤＭＡモジュールでは、２つのバッファを用いて、それぞれのバッファの動作（一方のバッファへのデータの書き込み、および他方のバッファからのデータの読み出し）を交互に切り替えることによって、データの入出力を同時期に行っている。
【０００８】
このようなＤＭＡモジュールを含んだパイプライン処理に特許文献１に開示された技術を採用した場合、図１１に示したように、２つのバッファの内、一方のバッファへのデータの書き込みが完了した時点で次の処理モジュールへのデータの出力、またはＤＲＡＭへのデータの出力が行われることとなる。しかし、各ブロック間の処理においては、現在処理しているブロックの処理が完了した後に、次のブロックの処理を開始する。このため、次のブロックの処理においては、２つのバッファの内、一方のバッファへのデータの書き込みが完了するまで、次の処理モジュールへのデータの出力、またはＤＲＡＭへのデータの出力が行われないこととなる。このため、図１１に示したように、ＤＭＡモジュール内のいずれか１つのバッファへの書き込みが完了するまでの時間が、各ブロック間の処理におけるロス時間となってしまう。そして、このロス時間は、パイプラインを構成する他の処理モジュールにも影響してしまう、という問題がある。
【０００９】
このロス時間の問題は、２つのバッファを備えたＤＭＡモジュールのみではなく、例えば、図１２に示したような４つのバッファを備えたＤＭＡモジュールのように、複数のバッファを備え、それぞれのバッファを順次切り替えてデータの入出力を同時期に行う構成の場合も同様である。また、ＤＭＡモジュール内に備えたそれぞれのバッファの容量が大きい場合には、ロス時間の影響がさらに大きなものとなる。
【００１０】
本発明は、上記の課題認識に基づいてなされたものであり、複数のバッファを交互に切り替えて処理を行うデータ処理装置を含むパイプライン処理において、各パイプライン処理の間のロス時間を低減することができるデータ処理装置および画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明のデータ処理装置は、パイプライン接続され、画像データを処理するデータ処理装置であって、前記画像データの領域を複数のブロックに分割し、該分割したそれぞれの前記ブロックに含まれるデータ量よりも少ない量のデータを記憶する複数のバッファ部と、前記複数のバッファ部の情報を保持するバッファ情報通知部と、前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、入力されたデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部に書き込むデータ書き込み制御部と、前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、出力するデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部から読み出すデータ読み出し制御部と、を備え、前記バッファ情報通知部に保持するバッファ部の情報は、前記複数のバッファ部のそれぞれが、データの書き込みが可能であるか、またはデータの読み出しが可能であるかを表すバッファ情報と、前記複数のバッファ部の内、どのバッファ部にデータを書き込むかを表すデータ書き込み情報と、前記複数のバッファ部の内、どのバッファ部からデータを読み出すかを表すデータ読み出し情報と、を含み、前記データ書き込み制御部は、入力された１つの前記ブロックに含まれる全てのデータの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号を出力し、前記データ読み出し制御部は、出力する１つの前記ブロックに含まれる全てのデータの読み出しが完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号を出力する、ことを特徴とする。
【００１２】
また、本発明の前記データ書き込み制御部は、該データ書き込み制御部が、前記複数のバッファ部にデータを書き込んだ回数と、予め設定されたデータの書き込み回数とに基づいて、データの書き込みが完了したことを判定し、前記データ読み出し制御部は、該データ読み出し制御部が、前記複数のバッファ部からデータを読み出した回数と、予め設定されたデータの読み出し回数とに基づいて、データの読み出しが完了したことを判定する、ことを特徴とする。
【００１３】
また、本発明の前記データ書き込み制御部は、前記バッファ情報通知部に保持された前記データ書き込み情報に基づいて、データを書き込むバッファ部を決定し、該決定したバッファ部に対応する前記バッファ情報に基づいて入力されたデータの書き込みを行い、前記データ読み出し制御部は、前記バッファ情報通知部に保持された前記データ読み出し情報に基づいて、データを読み出すバッファ部を決定し、該決定したバッファ部に対応する前記バッファ情報に基づいて出力するデータの読み出しを行う、ことを特徴とする。
【００１４】
また、本発明の前記データ書き込み制御部は、前記決定したバッファ部へのデータの書き込みが完了したときに、該決定したバッファ部に対応する前記バッファ情報と、前記データ書き込み情報とを変更し、前記データ読み出し制御部は、前記決定したバッファ部からデータの読み出しが完了したときに、該決定したバッファ部に対応する前記バッファ情報と、前記データ読み出し情報とを変更する、ことを特徴とする。
【００１５】
また、本発明の画像処理装置は、パイプライン接続され、画像データを処理するデータ処理装置であって、前記画像データの領域を複数のブロックに分割し、該分割したそれぞれの前記ブロックに含まれるデータ量よりも少ない量のデータを記憶する複数のバッファ部と、前記複数のバッファ部の情報を保持するバッファ情報通知部と、前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、入力されたデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部に書き込むデータ書き込み制御部と、前記バッファ情報通知部に保持された前記複数のバッファ部の情報に基づいて前記複数のバッファ部を排他的に制御して、出力するデータを予め決定した順番で順次、前記複数のバッファ部のいずれか１つのバッファ部から読み出すデータ読み出し制御部と、を有し、前記バッファ情報通知部に保持するバッファ部の情報は、前記複数のバッファ部のそれぞれが、データの書き込みが可能であるか、またはデータの読み出しが可能であるかを表すバッファ情報と、前記複数のバッファ部の内、どのバッファ部にデータを書き込むかを表すデータ書き込み情報と、前記複数のバッファ部の内、どのバッファ部からデータを読み出すかを表すデータ読み出し情報とを含み、前記データ書き込み制御部によって入力された１つの前記ブロックに含まれる全てのデータの書き込みが完了したときに、データの書き込みが完了したことを表すデータ書き込み完了信号と、前記データ読み出し制御部によって出力する１つの前記ブロックに含まれる全てのデータの読み出しが完了したときに、データの読み出しが完了したことを表すデータ読み出し完了信号と、をそれぞれ出力するデータ処理装置、を備え、前記データ書き込み完了信号が出力された後に、前記データ書き込み制御部による画像データの書き込みに係る設定を行い、前記データ読み出し完了信号が出力された後に、前記データ読み出し制御部による画像データの読み出しに係る設定を行う、ことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、複数のバッファを交互に切り替えて処理を行うデータ処理装置を含むパイプライン処理において、各パイプライン処理の間のロス時間を低減することができるという効果が得られる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態における画像処理装置の概略構成を示したブロック図である。
【図２】本実施形態の画像処理装置に備えるＤＭＡモジュールの基本構成を示したブロック図である。
【図３】本実施形態における入力ＤＭＡモジュールの概略構成を示したブロック図である。
【図４】本実施形態の入力ＤＭＡモジュールにおけるバッファ制御のタイミングを示したタイミングチャートである。
【図５】本実施形態における出力ＤＭＡモジュールの概略構成を示したブロック図である。
【図６】本実施形態の画像処理装置におけるパイプライン処理のタイミングを示したタイミングチャートである。
【図７】本実施形態の画像処理装置のパイプライン処理における処理内容の一例を説明する図である。
【図８】従来のパイプライン処理におけるブロック分けの方法およびパイプライン処理のタイミングを説明する図である。
【図９】従来のパイプライン処理における別のブロック分けの方法およびパイプライン処理のタイミングを説明する図である。
【図１０】従来のＤＭＡモジュールの概略構成の一例を示したブロック図である。
【図１１】従来のＤＭＡモジュールを含んだパイプライン処理のタイミングの一例を示したタイミングチャートである。
【図１２】従来のＤＭＡモジュールの概略構成の別の一例を示したブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態における画像処理装置の概略構成を示したブロック図である。図１に示した画像処理装置１は、ＤＭＡバス１０と、ＤＲＡＭ２０と、シーケンサ３０と、入力ＤＭＡモジュール４０と、ＹＣ処理モジュール５０と、ＮＲ処理モジュール６０と、出力ＤＭＡモジュール７０と、を備えている。本実施形態の画像処理装置１は、例えば、静止画用カメラなどの撮像装置に備えられる。
【００１９】
ＤＲＡＭ２０は、ＤＭＡバス１０に接続され、撮像装置において処理される様々なデータを記憶する。例えば、撮像装置に備えた図示しないイメージャから出力された静止画像のデータを記憶する。本実施形態の画像処理装置１においては、ＤＲＡＭ２０に記憶された１フレームの静止画像のデータを、図９（ａ）に示したように、複数の小さなブロックに分割して、それぞれのブロック毎に画像処理を行う。本実施形態の画像処理装置１における画像処理は、図１に示したように、入力ＤＭＡモジュール４０、ＹＣ処理モジュール５０、ＮＲ処理モジュール６０、および出力ＤＭＡモジュール７０が直列に接続されたパイプライン処理によって、それぞれの処理モジュールにおける画像処理を順次行う。以下の説明においては、１フレームの静止画像のデータを分割したそれぞれのブロックに含まれるデータを、「ブロック画像データ」という。
【００２０】
シーケンサ３０は、本実施形態の画像処理装置１のパイプライン処理を行う際、パイプラインを構成する各処理モジュールの処理シーケンスを制御する。シーケンサ３０は、パイプライン処理を行うブロックに応じた設定および処理の開始を制御する制御信号を各処理モジュールに出力する。
【００２１】
入力ＤＭＡモジュール４０は、ＤＲＡＭ２０に記憶しているブロック画像データを読み出し、読み出したブロック画像データを、パイプラインを構成する次の処理モジュールであるＹＣ処理モジュール５０に出力するための処理モジュールである。入力ＤＭＡモジュール４０は、シーケンサ３０から入力された制御信号に応じて、ＤＭＡバス１０を介してＤＲＡＭ２０からブロック画像データを読み出し、読み出したブロック画像データを一時記憶する。そして、入力ＤＭＡモジュール４０は、一時記憶したブロック画像データを、ＹＣ処理モジュール５０に出力する。入力ＤＭＡモジュール４０は、ブロック画像データの入力動作および出力動作毎に、シーケンサ３０によって制御される。図１においては、シーケンサ３０から入力される共通リセット信号、入力リセット信号、出力リセット信号、およびＤＭＡ開始トリガ信号と、シーケンサ３０に出力するＤＭＡ完了割込み信号および出力完了割込み信号とを示している。なお、入力ＤＭＡモジュール４０に関する詳細な説明は、後述する。
【００２２】
ＹＣ処理モジュール５０は、入力されたブロック画像データに対して種々のデジタル的な画像処理を行って、Ｙ（輝度）信号とＣ（色）信号とを生成するための処理モジュールである。ＹＣ処理モジュール５０は、シーケンサ３０から入力された制御信号に応じて、入力ＤＭＡモジュール４０から入力されたブロック画像データに応じたＹ信号とＣ信号とを生成し、生成したＹ信号とＣ信号とを、ＮＲ処理モジュール６０に出力する。
ＮＲ処理モジュール６０は、入力されたＹ信号とＣ信号とに対して種々のデジタル的な画像処理を行って、Ｙ信号およびＣ信号に含まれるノイズを低減するための処理モジュールである。ＮＲ処理モジュール６０は、シーケンサ３０から入力された制御信号に応じて、ＹＣ処理モジュール５０から入力されたＹ信号とＣ信号とに含まれるノイズを低減し、ノイズを低減したＹ信号とＣ信号とを、出力ＤＭＡモジュール７０に出力する。なお、以下の説明においては、ノイズを低減したＹ信号とＣ信号とを、「ノイズ低減データ」という。
【００２３】
出力ＤＭＡモジュール７０は、入力されたノイズ低減データを、ＤＲＡＭ２０に書き込む（記憶する）ための処理モジュールである。出力ＤＭＡモジュール７０は、シーケンサ３０から入力された制御信号に応じて、ＮＲ処理モジュール６０から入力されたノイズ低減データを一時記憶する。そして、出力ＤＭＡモジュール７０は、一時記憶したノイズ低減データを、ＤＭＡバス１０を介してＤＲＡＭ２０に出力する。出力ＤＭＡモジュール７０は、ノイズ低減データの入力動作および出力動作毎に、シーケンサ３０によって制御される。図１においては、シーケンサ３０から入力される共通リセット信号、入力リセット信号、出力リセット信号、およびＤＭＡ開始トリガ信号と、シーケンサ３０に出力する入力完了割込み信号およびＤＭＡ完了割込み信号とを示している。なお、出力ＤＭＡモジュール７０に関する詳細な説明は、後述する。
【００２４】
このように、画像処理装置１内の各処理モジュールが、１フレームの静止画像のデータを分割したブロック毎に、シーケンサ３０から出力された制御信号に応じた画像処理を順次処理を行うことによって、各ブロックに対する一連の画像処理を行う。
【００２５】
次に、画像処理装置１内の各処理モジュールについて説明する。図２は、本実施形態の画像処理装置１に備えるＤＭＡモジュールの基本構成を示したブロック図である。図２（ａ）は、入力ＤＭＡモジュール４０の基本構成を示し、図２（ｂ）は、出力ＤＭＡモジュール７０の基本構成を示している。
【００２６】
図２（ａ）に示したように、入力ＤＭＡモジュール４０は、ＤＭＡインタフェース（Ｉ／Ｆ）４１と、２つのバッファ（バッファＡ４２およびバッファＢ４３）と、バッファ読み出し回路４４と、を備えている。
【００２７】
バッファＡ４２およびバッファＢ４３は、ブロック画像データを一時記憶する記憶部である。
ＤＭＡインタフェース４１は、ＤＲＡＭ２０に記憶しているブロック画像データを、ＤＭＡバス１０を介して読み出し、読み出したブロック画像データを、バッファＡ４２またはバッファＢ４３のいずれか一方のバッファに記憶させる。ＤＭＡインタフェース４１は、ＤＲＡＭ２０に記憶しているブロック画像データの読み出しが完了する、すなわち、ＤＭＡインタフェース４１によるＤＭＡ転送が完了すると、ＤＭＡ完了割込み信号を、シーケンサ３０に出力する。
バッファ読み出し回路４４は、バッファＡ４２またはバッファＢ４３のいずれか一方のバッファに記憶されているブロック画像データを読み出して、パイプラインを構成する次の処理モジュール（図１に示した本実施形態においては、ＹＣ処理モジュール５０）に出力する。バッファ読み出し回路４４は、次の処理モジュールへのブロック画像データの出力が完了すると、出力完了割込み信号を、シーケンサ３０に出力する。
【００２８】
入力ＤＭＡモジュール４０は、バッファＡ４２およびバッファＢ４３という２つのバッファを備えた構成である。これにより、ＤＭＡインタフェース４１による一方のバッファへのブロック画像データの書き込みと、バッファ読み出し回路４４による他方のバッファからのブロック画像データの読み出しと、を交互に切り替えることによって、ブロック画像データの入出力を同時期に行うことができる。例えば、ＤＭＡインタフェース４１が、バッファＡ４２にブロック画像データを書き込んでいる場合でも、バッファ読み出し回路４４がバッファＢ４３からブロック画像データを読み出して次の処理モジュールに出力することができる。そして、ＤＭＡインタフェース４１が、バッファＡ４２へのブロック画像データの書き込みが完了したときに、バッファ読み出し回路４４によるバッファＢ４３からのブロック画像データの読み出しが完了している場合には、ＤＭＡインタフェース４１は、引き続きバッファＢ４３にブロック画像データを書き込むことができる。また、このときバッファ読み出し回路４４は、バッファＡ４２へのブロック画像データの書き込みが完了しているため、引き続きバッファＡ４２からブロック画像データを読み出して、次の処理モジュールに出力することができる。
【００２９】
入力ＤＭＡモジュール４０の基本構成においては、リセットを行う制御単位（以下、「ドメイン」という）を分離する。より具体的には、バッファにデータを書き込む部分のリセットドメイン（入力リセットドメイン）と、バッファからデータを読み出す部分のリセットドメイン（出力リセットドメイン）とを、２つのバッファの位置で分離する。そして、入力ＤＭＡモジュール４０は、上記に述べたように、ＤＭＡインタフェース４１によるデータのＤＭＡ入力が完了したことを表すＤＭＡ完了割込み信号、およびバッファ読み出し回路４４によるデータの次の処理モジュールへの出力が完了したことを表す出力完了割込み信号を、それぞれ、シーケンサ３０に出力する。
【００３０】
このような構成によって、本実施形態の画像処理装置１では、シーケンサ３０に入力ＤＭＡモジュール４０から割込み信号（ＤＭＡ完了割込み信号または出力完了割込み信号）が入力されるたびに、シーケンサ３０が割込み信号に応じたドメイン（制御単位）のリセットおよびパイプライン処理を行うブロックに応じた設定の再設定を行う。これにより、入力ＤＭＡモジュール４０では、前のブロックのブロック画像データを次の処理モジュールに出力している最中に、次のブロックのブロック画像データを、ＤＲＡＭ２０から先行して読み出すことができる。
【００３１】
また、図２（ｂ）に示したように、出力ＤＭＡモジュール７０は、バッファ書き込み回路７１と、２つのバッファ（バッファＣ７２およびバッファＤ７３）と、ＤＭＡインタフェース（Ｉ／Ｆ）７４と、を備えている。
【００３２】
バッファＣ７２およびバッファＤ７３は、ノイズ低減データを一時記憶する記憶部である。
バッファ書き込み回路７１は、パイプラインを構成する前の処理モジュール（図１に示した本実施形態においては、ＮＲ処理モジュール６０）から入力されたノイズ低減データを、バッファＣ７２またはバッファＤ７３のいずれか一方のバッファに記憶させる。バッファ書き込み回路７１は、前の処理モジュールからのノイズ低減データの入力が完了すると、入力完了割込み信号を、シーケンサ３０に出力する。
ＤＭＡインタフェース７４は、バッファＣ７２またはバッファＤ７３のいずれか一方のバッファに記憶されているノイズ低減データを読み出して、ＤＭＡバス１０を介してＤＲＡＭ２０に出力する。ＤＭＡインタフェース７４は、ＤＲＡＭ２０へのノイズ低減データの出力が完了する、すなわち、ＤＭＡインタフェース７４によるＤＭＡ転送が完了すると、ＤＭＡ完了割込み信号を、シーケンサ３０に出力する。
【００３３】
出力ＤＭＡモジュール７０は、入力ＤＭＡモジュール４０と同様に、バッファＣ７２およびバッファＤ７３という２つのバッファを備えた構成である。これにより、バッファ書き込み回路７１による一方のバッファへのノイズ低減データの書き込みと、ＤＭＡインタフェース７４による他方のバッファからのノイズ低減データの読み出しと、を交互に切り替えることによって、ノイズ低減データの入出力を同時期に行うことができる。例えば、バッファ書き込み回路７１が、バッファＣ７２にノイズ低減データを書き込んでいる場合でも、ＤＭＡインタフェース７４がバッファＤ７３からノイズ低減データを読み出してＤＭＡバス１０を介してＤＲＡＭ２０に出力することができる。そして、バッファ書き込み回路７１がバッファＣ７２へのノイズ低減データの書き込みが完了したときに、ＤＭＡインタフェース７４によるバッファＤ７３からのノイズ低減データのＤＲＡＭ２０への出力が完了している場合には、バッファ書き込み回路７１は、引き続きバッファＤ７３にノイズ低減データを書き込むことができる。また、このときＤＭＡインタフェース７４は、バッファＣ７２へのノイズ低減データの書き込みが完了しているため、引き続きバッファＣ７２からノイズ低減データを読み出して、ＤＲＡＭ２０に出力することができる。
【００３４】
出力ＤＭＡモジュール７０の基本構成においては、入力ＤＭＡモジュール４０と同様に、リセットを行うドメイン（制御単位）を分離する。より具体的には、バッファにデータを書き込む部分のリセットドメイン（入力リセットドメイン）と、バッファからデータを読み出す部分のリセットドメイン（出力リセットドメイン）とを、２つのバッファの位置で分離する。そして、出力ＤＭＡモジュール７０は、上記に述べたように、バッファ書き込み回路７１による前の処理モジュールからの入力が完了したことを表す入力完了割込み信号、およびＤＭＡインタフェース７４によるデータのＤＭＡ出力が完了したことを表すＤＭＡ完了割込み信号を、それぞれ、シーケンサ３０に出力する。
【００３５】
このような構成によって、本実施形態の画像処理装置１では、シーケンサ３０に出力ＤＭＡモジュール７０から割込み信号（入力完了割込み信号またはＤＭＡ完了割込み信号）が入力されるたびに、シーケンサ３０が割込み信号に応じたドメインのリセットおよびパイプライン処理を行うブロックに応じた設定の再設定を行う。これにより、出力ＤＭＡモジュール７０では、前のブロックのノイズ低減データをＤＲＡＭ２０に出力している最中に、次のブロックのノイズ低減データを、前の処理モジュールから先行して書き込むことができる。
【００３６】
次に、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０についてより詳細に説明する。まず、入力ＤＭＡモジュール４０の構成について説明する。図３は、本実施形態における入力ＤＭＡモジュール４０の概略構成を示したブロック図である。図３においては、図２（ａ）に示したバッファＡ４２およびバッファＢ４３を、それぞれＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成した場合の例を示している。以下の説明においては、バッファＡ４２およびバッファＢ４３を、それぞれＳＲＡＭ＿Ａ４２およびＳＲＡＭ＿Ｂ４３ともいう。
【００３７】
図３に示したように、入力ＤＭＡモジュール４０は、ステートＡ部４２１と、ステートＢ部４３１と、ライトポインタ４０１と、リードポインタ４０２と、を備えている。また、入力ＤＭＡモジュール４０は、ＤＭＡインタフェース４１として、インタフェース（Ｉ／Ｆ）部４１１と、ＳＲＡＭライト制御部４１２と、ライト回数レジスタ４１３と、を備えている。また、入力ＤＭＡモジュール４０は、バッファ読み出し回路４４として、ＳＲＡＭリード制御部４４１と、インタフェース（Ｉ／Ｆ）部４４２と、リード回数レジスタ４４３と、を備えている。
【００３８】
ステートＡ部４２１は、対応するＳＲＡＭ＿Ａ４２が書き込み（ライト）可能な状態であるか、または読み出し（リード）可能な状態であるかを表す情報を保持している。また、ステートＢ部４３１は、ステートＡ部４２１と同様に、対応するＳＲＡＭ＿Ｂ４３が書き込み可能な状態であるか、または読み出し可能な状態であるかを表す情報を保持している。なお、ステートＡ部４２１およびステートＢ部４３１におけるＳＲＡＭが書き込み可能な状態とは、ＳＲＡＭ内に有効なデータが記憶されておらず、データの書き込みを受け付けられる状態である。また、ステートＡ部４２１およびステートＢ部４３１におけるＳＲＡＭの読み出しが可能な状態とは、ＳＲＡＭ内に有効なデータがすでに記憶されており、データの読み出しを受け付けられる状態である。
【００３９】
ライトポインタ４０１は、ＳＲＡＭライト制御部４１２がデータを書き込むＳＲＡＭが、ＳＲＡＭ＿Ａ４２またはＳＲＡＭ＿Ｂ４３のいずれのＳＲＡＭであるかを示す情報を保持している。また、リードポインタ４０２は、ＳＲＡＭリード制御部４４１がデータを読み出すＳＲＡＭが、ＳＲＡＭ＿Ａ４２またはＳＲＡＭ＿Ｂ４３のいずれのＳＲＡＭであるかを示す情報を保持している。
【００４０】
ステートＡ部４２１と、ステートＢ部４３１と、ライトポインタ４０１と、リードポインタ４０２とは、シーケンサ３０から入力された共通リセット信号によって、初期化される。なお、シーケンサ３０からの共通リセット信号の入力によって初期化された場合には、ステートＡ部４２１およびステートＢ部４３１は、共にＳＲＡＭ＿Ａ４２およびＳＲＡＭ＿Ｂ４３が書き込み可能な状態を表し、ライトポインタ４０１およびリードポインタ４０２は、共にＳＲＡＭ＿Ａ４２を示す。
【００４１】
インタフェース部４１１は、シーケンサ３０から入力されたＤＭＡ開始トリガ信号に応じてＤＭＡを開始し、ＤＲＡＭ２０に記憶しているブロック画像データを読み出す。インタフェース部４１１が読み出したブロック画像データは、ＳＲＡＭライト制御部４１２に出力される。
【００４２】
ＳＲＡＭライト制御部４１２は、インタフェース部４１１から入力されたブロック画像データを、ＳＲＡＭ＿Ａ４２またはＳＲＡＭ＿Ｂ４３のいずれか一方のＳＲＡＭに書き込む。ＳＲＡＭライト制御部４１２がブロック画像データを書き込むＳＲＡＭは、ステートＡ部４２１と、ステートＢ部４３１と、ライトポインタ４０１との情報に応じて決定される。なお、ＳＲＡＭライト制御部４１２を含む入力ＤＭＡモジュール４０の動作に関する詳細な説明は、後述する。
【００４３】
ライト回数レジスタ４１３は、シーケンサ３０によって、パイプライン処理を行う当該ブロックのデータ数が設定される。ライト回数レジスタ４１３に設定されるデータ数は、当該ブロックにおいてＤＲＡＭ２０から読み出してＳＲＡＭに書き込む回数に相当する。ＳＲＡＭライト制御部４１２は、ライト回数レジスタ４１３に設定された回数と、ＳＲＡＭに書き込んだ回数とを比較して、一致したときに、ＤＭＡ完了割込み信号をシーケンサ３０に出力し、ブロック画像データのＳＲＡＭへの書き込みを停止する。
【００４４】
インタフェース部４１１と、ＳＲＡＭライト制御部４１２と、ライト回数レジスタ４１３とは、シーケンサ３０から入力された入力リセット信号によって、それぞれの動作の状態が初期化される。
【００４５】
インタフェース部４４２は、本実施形態の画像処理装置１内においてパイプラインを構成する後段のＹＣ処理モジュール５０からのデータ要求信号に応じて、ＳＲＡＭリード制御部４４１から入力されたブロック画像データを出力する。
【００４６】
ＳＲＡＭリード制御部４４１は、ＳＲＡＭ＿Ａ４２またはＳＲＡＭ＿Ｂ４３のいずれか一方のＳＲＡＭに記憶されているブロック画像データを読み出し、インタフェース部４４２に出力する。ＳＲＡＭリード制御部４４１がブロック画像データを読み出すＳＲＡＭは、ステートＡ部４２１と、ステートＢ部４３１と、リードポインタ４０２との情報に応じて決定される。なお、ＳＲＡＭリード制御部４４１を含む入力ＤＭＡモジュール４０の動作に関する詳細な説明は、後述する。
【００４７】
リード回数レジスタ４４３は、シーケンサ３０によって、パイプライン処理を行う当該ブロックのデータ数が設定される。リード回数レジスタ４４３に設定されるデータ数は、当該ブロックにおいて後段のＹＣ処理モジュール５０に出力するためにブロック画像データをＳＲＡＭから読み出す回数に相当する。ＳＲＡＭリード制御部４４１は、リード回数レジスタ４４３に設定された回数と、ＳＲＡＭから読み出した回数とを比較して、一致したときに、出力完了割込み信号をシーケンサ３０に出力し、ＳＲＡＭからのブロック画像データの読み出しを停止する。
【００４８】
ＳＲＡＭリード制御部４４１と、インタフェース部４４２と、リード回数レジスタ４４３とは、シーケンサ３０から入力された出力リセット信号によって、それぞれの動作の状態が初期化される。
【００４９】
ここで、図３に示した入力ＤＭＡモジュール４０の動作について説明する。図４は、本実施形態の入力ＤＭＡモジュール４０におけるバッファ（ＳＲＡＭ）制御のタイミングを示したタイミングチャートである。なお、以下の説明においては、ステートＡ部４２１と、ステートＢ部４３１と、ライトポインタ４０１と、リードポインタ４０２とは、シーケンサ３０から入力された共通リセット信号によって初期化された後の動作について説明する。
【００５０】
まず、入力ＤＭＡモジュール４０へのブロック画像データの入力動作について説明する。シーケンサ３０からＤＭＡ開始トリガ信号が入力され、入力ＤＭＡモジュール４０の入力動作が開始されると、インタフェース部４１１がＤＭＡによってＤＲＡＭ２０に記憶しているブロック画像データを読み出し、ＳＲＡＭライト制御部４１２に読み出したブロック画像データを出力する。その後、ＳＲＡＭライト制御部４１２は、タイミングｔ１において、ライトポインタ４０１の情報を確認する。このとき、ライトポインタ４０１の情報は、ＳＲＡＭ＿Ａ４２を示しているため、引き続きＳＲＡＭライト制御部４１２は、ステートＡ部４２１の情報を確認する。このとき、ステートＡ部４２１は、書き込み可能な状態を表しているため、ＳＲＡＭライト制御部４１２は、インタフェース部４１１から入力されたブロック画像データのＳＲＡＭ＿Ａ４２への書き込みを開始する。
【００５１】
その後、ＳＲＡＭライト制御部４１２によるブロック画像データのＳＲＡＭ＿Ａ４２への書き込みが終了する（例えば、ＳＲＡＭ＿Ａ４２の全ての記憶領域へのデータの書き込みが終了する）と、ＳＲＡＭライト制御部４１２は、タイミングｔ２において、ライトポインタ４０１の情報を、ＳＲＡＭ＿Ｂ４３を示す情報に変更する。また、ＳＲＡＭライト制御部４１２は、ステートＡ部４２１の情報を、読み出し可能な状態を表す情報に変更する。
【００５２】
その後、ＳＲＡＭライト制御部４１２は、タイミングｔ３において、ライトポインタ４０１の情報を確認する。このとき、ライトポインタ４０１の情報は、タイミングｔ２においてＳＲＡＭ＿Ｂ４３を示す情報に変更されているため、引き続きＳＲＡＭライト制御部４１２は、ステートＢ部４３１の情報を確認する。このとき、ステートＢ部４３１は、書き込み可能な状態を表しているため、ＳＲＡＭライト制御部４１２は、インタフェース部４１１から入力されたブロック画像データのＳＲＡＭ＿Ｂ４３への書き込みを引き続き行う。
【００５３】
その後、ＳＲＡＭライト制御部４１２によるブロック画像データのＳＲＡＭ＿Ｂ４３への書き込みが終了すると、ＳＲＡＭライト制御部４１２は、タイミングｔ４において、ライトポインタ４０１の情報を、ＳＲＡＭ＿Ａ４２を示す情報に変更し、さらに、ステートＢ部４３１の情報を、読み出し可能な状態を表す情報に変更する。
【００５４】
以降同様に、ＳＲＡＭライト制御部４１２は、ライトポインタ４０１の情報を確認し、ライトポインタ４０１の情報によって示されているＳＲＡＭ＿Ａ４２またはＳＲＡＭ＿Ｂ４３に対応したステートＡ部４２１またはステートＢ部４３１の情報の確認、および対応するＳＲＡＭへのブロック画像データの書き込みを繰り返す。このように、入力ＤＭＡモジュール４０は、ＳＲＡＭライト制御部４１２が、書き込み可能な状態を表しているＳＲＡＭに対して交互にブロック画像データを書き込むことによって、インタフェース部４１１から入力された全てのブロック画像データを、ＳＲＡＭに書き込むことができる。
【００５５】
なお、ライトポインタ４０１の情報によって示されているＳＲＡＭに対応したステートＡ部４２１またはステートＢ部４３１の情報が書き込み可能な状態を表していない場合には、ＳＲＡＭライト制御部４１２によるブロック画像データのＳＲＡＭへの書き込みは待機される。そして、ライトポインタ４０１の情報によって示されているＳＲＡＭに対応したステートＡ部４２１またはステートＢ部４３１の情報が書き込み可能な状態を表したときに、ＳＲＡＭライト制御部４１２によるブロック画像データのＳＲＡＭへの書き込みが再開される。
【００５６】
そして、ＳＲＡＭライト制御部４１２は、ライト回数レジスタ４１３に設定された回数のＳＲＡＭへのブロック画像データの書き込みを終了すると、ライトポインタ４０１の情報と、ブロック画像データを書き込んだＳＲＡＭに対応するステートＡ部４２１またはステートＢ部４３１の情報とを変更し、さらに、ＤＭＡ完了割込み信号をシーケンサ３０に出力する。
【００５７】
一方、入力ＤＭＡモジュール４０からのブロック画像データの出力動作は、以下のように行われる。シーケンサ３０によって後段のＹＣ処理モジュール５０の動作が開始されると、ＹＣ処理モジュール５０からデータ要求信号が入力ＤＭＡモジュール４０に入力される。このデータ要求信号に応じて、ＳＲＡＭリード制御部４４１は、ＳＲＡＭの読み出しを開始する。まず、ＳＲＡＭリード制御部４４１は、リードポインタ４０２の情報を確認する。このとき、リードポインタ４０２の情報は、ＳＲＡＭ＿Ａ４２を示しているため、引き続きＳＲＡＭリード制御部４４１は、ステートＡ部４２１の情報を確認する。このとき、ステートＡ部４２１の情報が読み出し可能な状態を表していない場合には、ＳＲＡＭリード制御部４４１は、ＳＲＡＭ＿Ａ４２からのブロック画像データの読み出しを待機する。図４に示したタイミングチャートにおいては、タイミングｔ３のときに、ステートＡ部４２１が読み出し可能な状態を表す。従って、ＳＲＡＭリード制御部４４１によるＳＲＡＭ＿Ａ４２からのブロック画像データの読み出しは、タイミングｔ３から開始される。そして、ＳＲＡＭリード制御部４４１は、ＳＲＡＭ＿Ａ４２から読み出したブロック画像データを、インタフェース部４４２に出力する。これにより、インタフェース部４４２は、ＹＣ処理モジュール５０からのデータ要求信号に応じたブロック画像データを、ＹＣ処理モジュール５０に出力する。
【００５８】
その後、ＳＲＡＭリード制御部４４１によるＳＲＡＭ＿Ａ４２からのブロック画像データの読み出しが終了する（例えば、ＳＲＡＭ＿Ａ４２の全ての記憶領域からデータの読み出しが終了する）と、ＳＲＡＭリード制御部４４１は、タイミングｔ５において、リードポインタ４０２の情報を、ＳＲＡＭ＿Ｂ４３を示す情報に変更する。また、ＳＲＡＭリード制御部４４１は、ステートＡ部４２１の情報を、書き込み可能な状態を表す情報に変更する。
【００５９】
その後、ＳＲＡＭリード制御部４４１は、タイミングｔ６において、リードポインタ４０２の情報を確認する。このとき、リードポインタ４０２の情報は、タイミングｔ５においてＳＲＡＭ＿Ｂ４３を示す情報に変更されているため、引き続きＳＲＡＭリード制御部４４１は、ステートＢ部４３１の情報を確認する。このとき、ステートＢ部４３１の情報は、タイミングｔ４において、ＳＲＡＭライト制御部４１２によって読み出し可能な状態に変更されているため、ＳＲＡＭリード制御部４４１は、ＳＲＡＭ＿Ｂ４３からのブロック画像データの読み出しを引き続き行う。
【００６０】
その後、ＳＲＡＭリード制御部４４１によるＳＲＡＭ＿Ｂ４３からのブロック画像データの読み出しが終了すると、ＳＲＡＭリード制御部４４１は、タイミングｔ７において、リードポインタ４０２の情報を、ＳＲＡＭ＿Ａ４２を示す情報に変更し、さらに、ステートＢ部４３１の情報を、書き込み可能な状態を表す情報に変更する。
【００６１】
以降同様に、ＳＲＡＭリード制御部４４１は、リードポインタ４０２の情報を確認し、リードポインタ４０２の情報によって示されているＳＲＡＭ＿Ａ４２またはＳＲＡＭ＿Ｂ４３に対応したステートＡ部４２１またはステートＢ部４３１の情報の確認を繰り返す。このように、入力ＤＭＡモジュール４０は、ＳＲＡＭリード制御部４４１が、読み出し可能な状態を表しているＳＲＡＭから交互にブロック画像データを読み出すことによって、ＹＣ処理モジュール５０から要求された全てのブロック画像データを、ＹＣ処理モジュール５０に出力することができる。
【００６２】
なお、上記に述べたように、リードポインタ４０２の情報によって示されているＳＲＡＭに対応したステートＡ部４２１またはステートＢ部４３１の情報が読み出し可能な状態を表していない場合には、ＳＲＡＭリード制御部４４１によるＳＲＡＭからのブロック画像データの読み出しは待機される。そして、リードポインタ４０２の情報によって示されているＳＲＡＭに対応したステートＡ部４２１またはステートＢ部４３１の情報が読み出し可能な状態を表したときに、ＳＲＡＭリード制御部４４１によるＳＲＡＭからのブロック画像データの読み出しが再開される。
【００６３】
そして、ＳＲＡＭリード制御部４４１は、リード回数レジスタ４４３に設定された回数のＳＲＡＭからのブロック画像データの読み出しを終了、すなわち、後段のＹＣ処理モジュール５０から要求された全てのブロック画像データの出力が完了すると、リードポインタ４０２の情報と、ブロック画像データを読み出したＳＲＡＭに対応するステートＡ部４２１またはステートＢ部４３１の情報とを変更し、さらに、出力完了割込み信号をシーケンサ３０に出力する。
【００６４】
次に、出力ＤＭＡモジュール７０の構成について説明する。図５は、本実施形態における出力ＤＭＡモジュール７０の概略構成を示したブロック図である。図５においては、図２（ｂ）に示したバッファＣ７２およびバッファＤ７３を、それぞれＳＲＡＭで構成した場合の例を示している。以下の説明においては、バッファＣ７２およびバッファＤ７３を、それぞれＳＲＡＭ＿Ｃ７２およびＳＲＡＭ＿Ｄ７３ともいう。
【００６５】
図５に示したように、出力ＤＭＡモジュール７０は、ステートＣ部７２１と、ステートＤ部７３１と、ライトポインタ７０１と、リードポインタ７０２と、を備えている。また、出力ＤＭＡモジュール７０は、バッファ書き込み回路７１として、インタフェース（Ｉ／Ｆ）部７１１と、ＳＲＡＭライト制御部７１２と、ライト回数レジスタ７１３と、を備えている。また、出力ＤＭＡモジュール７０は、ＤＭＡインタフェース７４として、ＳＲＡＭリード制御部７４１と、インタフェース（Ｉ／Ｆ）部７４２と、リード回数レジスタ７４３と、を備えている。
【００６６】
なお、図５に示した出力ＤＭＡモジュール７０は、図３に示した入力ＤＭＡモジュール４０において、入出力するデータがブロック画像データからノイズ低減データ（ノイズ低減後のＹ信号とＣ信号）に代わっている。また、データの入力元がＤＲＡＭ２０から前段のＮＲ処理モジュール６０に代わり、データの出力先がＤＲＡＭ２０に代わっている。しかし、出力ＤＭＡモジュール７０内の各構成要素の動作は、図３に示した入力ＤＭＡモジュール４０内の各構成要素の動作とほぼ同様であるため、以下の説明においては、動作の違いのみを説明する。
【００６７】
ステートＣ部７２１およびステートＤ部７３１は、図３に示した入力ＤＭＡモジュール４０に備えたステートＡ部４２１およびステートＢ部４３１と同様に、対応するＳＲＡＭ＿Ｃ７２およびＳＲＡＭ＿Ｄ７３が書き込み（ライト）可能な状態であるか、または読み出し（リード）可能な状態であるかを表す情報を保持している。なお、ステートＣ部７２１およびステートＤ部７３１におけるＳＲＡＭが書き込み可能な状態およびＳＲＡＭの読み出しが可能な状態とは、それぞれ図３に示したステートＡ部４２１およびステートＢ部４３１と同様の状態である。
【００６８】
ライトポインタ７０１は、図３に示したライトポインタ４０１と同様に、ＳＲＡＭライト制御部７１２がデータを書き込むＳＲＡＭが、ＳＲＡＭ＿Ｃ７２またはＳＲＡＭ＿Ｄ７３のいずれのＳＲＡＭであるかを示す情報を保持している。また、リードポインタ７０２は、図３に示したリードポインタ４０２と同様に、ＳＲＡＭリード制御部７４１がデータを読み出すＳＲＡＭが、ＳＲＡＭ＿Ｃ７２またはＳＲＡＭ＿Ｄ７３のいずれのＳＲＡＭであるかを示す情報を保持している。
【００６９】
ステートＣ部７２１と、ステートＤ部７３１と、ライトポインタ７０１と、リードポインタ７０２とは、図３に示した入力ＤＭＡモジュール４０と同様に、シーケンサ３０から入力された共通リセット信号によって、初期化される。そして、シーケンサ３０からの共通リセット信号の入力によって初期化された場合には、ステートＣ部７２１およびステートＤ部７３１は、共にＳＲＡＭ＿Ｃ７２およびＳＲＡＭ＿Ｄ７３が書き込み可能な状態を表し、ライトポインタ７０１およびリードポインタ７０２は、共にＳＲＡＭ＿Ｃ７２を示す。
【００７０】
インタフェース部７１１は、本実施形態の画像処理装置１内においてパイプラインを構成する前段のＮＲ処理モジュール６０からのデータ出力要求信号に応じて、ＮＲ処理モジュール６０から入力されたノイズ低減データを、ＳＲＡＭライト制御部７１２に出力する。
【００７１】
ＳＲＡＭライト制御部７１２は、図３に示したＳＲＡＭライト制御部４１２と同様に、インタフェース部７１１から入力されたノイズ低減データを、ＳＲＡＭ＿Ｃ７２またはＳＲＡＭ＿Ｄ７３のいずれか一方のＳＲＡＭに書き込む。ＳＲＡＭライト制御部７１２がノイズ低減データを書き込むＳＲＡＭは、ステートＣ部７２１と、ステートＤ部７３１と、ライトポインタ７０１との情報に応じて決定される。
【００７２】
ライト回数レジスタ７１３は、図３に示したライト回数レジスタ４１３と同様に、シーケンサ３０によって、パイプライン処理を行う当該ブロックのデータ数が設定される。ライト回数レジスタ７１３に設定されるデータ数は、当該ブロックにおいて前段のＮＲ処理モジュール６０から出力されるノイズ低減データをＳＲＡＭに書き込む回数に相当する。ＳＲＡＭライト制御部７１２は、ライト回数レジスタ７１３に設定された回数と、ＳＲＡＭに書き込んだ回数とを比較して、一致したときに、入力完了割込み信号をシーケンサ３０に出力し、ノイズ低減データのＳＲＡＭへの書き込みを停止する。
【００７３】
インタフェース部７１１と、ＳＲＡＭライト制御部７１２と、ライト回数レジスタ７１３とは、図３に示した入力ＤＭＡモジュール４０と同様に、シーケンサ３０から入力された入力リセット信号によって、それぞれの動作の状態が初期化される。
【００７４】
インタフェース部７４２は、シーケンサ３０から入力されたＤＭＡ開始トリガ信号に応じてＤＭＡを開始し、ＳＲＡＭリード制御部７４１が読み出したノイズ低減データを、ＤＭＡバス１０を介してＤＲＡＭ２０に出力する。
【００７５】
ＳＲＡＭリード制御部７４１は、図３に示したＳＲＡＭリード制御部４４１と同様に、ＳＲＡＭ＿Ｃ７２またはＳＲＡＭ＿Ｄ７３のいずれか一方のＳＲＡＭに記憶されているノイズ低減データを読み出し、インタフェース部７４２に出力する。ＳＲＡＭリード制御部７４１がノイズ低減データを読み出すＳＲＡＭは、ステートＣ部７２１と、ステートＤ部７３１と、リードポインタ７０２との情報に応じて決定される。
【００７６】
リード回数レジスタ７４３は、図３に示したリード回数レジスタ４４３と同様に、シーケンサ３０によって、パイプライン処理を行う当該ブロックのデータ数が設定される。リード回数レジスタ７４３に設定されるデータ数は、当該ブロックにおいてＤＲＡＭ２０に出力するためにノイズ低減データをＳＲＡＭから読み出す回数に相当する。ＳＲＡＭリード制御部７４１は、リード回数レジスタ７４３に設定された回数と、ＳＲＡＭから読み出した回数とを比較して、一致したときに、ＤＭＡ完了割込み信号をシーケンサ３０に出力し、ＳＲＡＭからのノイズ低減データの読み出しを停止する。
【００７７】
ＳＲＡＭリード制御部７４１と、インタフェース部７４２と、リード回数レジスタ７４３とは、図３に示した入力ＤＭＡモジュール４０と同様に、シーケンサ３０から入力された出力リセット信号によって、それぞれの動作の状態が初期化される。
【００７８】
なお、図５に示した出力ＤＭＡモジュール７０の動作は、上記に述べたように、図３に示した入力ＤＭＡモジュール４０の動作とほぼ同様である。従って、出力ＤＭＡモジュール７０におけるバッファ（ＳＲＡＭ）制御のタイミングは、図４に示した入力ＤＭＡモジュール４０におけるバッファ（ＳＲＡＭ）制御のタイミングと同様に考えることができる。より具体的には、出力ＤＭＡモジュール７０へのノイズ低減データの入力動作は、ＮＲ処理モジュール６０からのデータ出力要求信号に応じて開始され、出力ＤＭＡモジュール７０からのノイズ低減データの出力動作は、シーケンサ３０からのＤＭＡ開始トリガ信号に応じて開始される。従って、図５に示した出力ＤＭＡモジュール７０におけるバッファ（ＳＲＡＭ）制御のタイミングの詳細な説明は省略する。
【００７９】
次に、本実施形態の画像処理装置１内のシーケンサ３０によって行われるパイプライン処理の処理内容について説明する。図６および図７は、本実施形態の画像処理装置１におけるパイプライン処理のタイミングおよびパイプライン処理における処理内容の一例を説明する図である。図６は、１フレームの静止画像のデータを、２つのブロックに分割した場合におけるパイプライン処理のタイミングを示し、図７は、パイプライン処理において、シーケンサ３０がそれぞれの処理モジュールに対して行う処理の内容を示している。なお、図６では、１つのブロック画像データのデータ量が、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０内に備えたバッファが３つ分のデータ量である場合の例として説明を行う。また、パイプライン処理のタイミングに関しては図６を参照し、シーケンサ３０の処理内容に関しては図７を参照して説明を行う。
【００８０】
画像処理装置１がＤＲＡＭ２０に記憶された１フレームの静止画像のデータの画像処理を開始すると、まず、シーケンサ３０は、処理１００を行う。処理１００においてシーケンサ３０は、まず、処理１０１において、パイプラインを構成する全ての処理モジュール（入力ＤＭＡモジュール４０、ＹＣ処理モジュール５０、ＮＲ処理モジュール６０、および出力ＤＭＡモジュール７０）に対して、ブロック画像データを画像処理する際に必要なパラメータや入出力データ数などのレジスタ設定を行う。例えば、入力ＤＭＡモジュール４０内のライト回数レジスタ４１３とリード回数レジスタ４４３、および出力ＤＭＡモジュール７０内のライト回数レジスタ７１３とリード回数レジスタ７４３に、バッファを読み書きする回数が設定される。
【００８１】
続いて、シーケンサ３０は、処理１０２において、全ての処理モジュールの動作の状態を初期化（リセット）する。この処理モジュールのリセットにおいてシーケンサ３０は、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０に対して、共通リセット信号、入力リセット信号、および出力リセット信号を出力し、ＹＣ処理モジュール５０およびＮＲ処理モジュール６０に対して、リセット信号を出力する。その後、シーケンサ３０は、リセットを解除する。これにより、各処理モジュールは、それぞれの処理を開始することができる状態となる。
【００８２】
続いて、シーケンサ３０は、処理１０３において、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０に対して、ＤＭＡ開始トリガ信号を出力する。これにより、入力ＤＭＡモジュール４０は、ＤＭＡによって、ＤＲＡＭ２０からの最初（１つ目）のブロック画像データ（以下、「第１ブロック画像データ」という）の読み出しを開始する。なお、出力ＤＭＡモジュール７０には、ＤＭＡによってＤＲＡＭ２０に出力するノイズ低減データがないため、出力ＤＭＡモジュール７０によるＤＭＡは待機状態である。
【００８３】
その後、入力ＤＭＡモジュール４０は、図４に示したように、入力ＤＭＡモジュール４０内のバッファＡ４２への第１ブロック画像データの書き込みが終了すると、バッファＡ４２から第１ブロック画像データを読み出して、ＹＣ処理モジュール５０に出力する。これにより、ＹＣ処理モジュール５０が、入力された第１ブロック画像データに対する画像処理を開始し、Ｙ信号とＣ信号とを生成して、ＮＲ処理モジュール６０に出力する。
【００８４】
また、ＮＲ処理モジュール６０は、入力されたＹ信号とＣ信号とに対する画像処理を開始し、第１ブロック画像データに対応したノイズ低減データ（以下、「第１ノイズ低減データ」という）を生成して、出力ＤＭＡモジュール７０に出力する。これにより、出力ＤＭＡモジュール７０は、入力された第１ノイズ低減データを、出力ＤＭＡモジュール７０内のバッファＣ７２に書き込む。そして、出力ＤＭＡモジュール７０は、バッファＣ７２への第１ノイズ低減データの書き込みが終了すると、バッファＣ７２から第１ノイズ低減データを読み出して、ＤＭＡによって、ＤＲＡＭ２０に第１ノイズ低減データを出力する。
【００８５】
その後、入力ＤＭＡモジュール４０は、第１ブロック画像データのＤＲＡＭ２０からの読み出しが完了、すなわち、処理１０１においてシーケンサ３０によってライト回数レジスタ４１３に設定された回数と、バッファに書き込んだ回数とが一致したとき、ＤＭＡ完了割込み信号をシーケンサ３０に出力する。
【００８６】
シーケンサ３０は、入力ＤＭＡモジュール４０からＤＭＡ完了割込み信号が入力されると、処理２００を行う。処理２００においてシーケンサ３０は、まず、処理２０１において、入力ＤＭＡモジュール４０内のＤＭＡインタフェース４１側（インタフェース部４１１、ＳＲＡＭライト制御部４１２、およびライト回数レジスタ４１３）に対して、次（２つ目）のブロック画像データ（以下、「第２ブロック画像データ」という）をＤＲＡＭ２０から読み出す際に必要なパラメータや入力データ数などのレジスタ設定を行う。例えば、入力ＤＭＡモジュール４０内のライト回数レジスタ４１３に、バッファに書き込む回数が設定される。
【００８７】
続いて、シーケンサ３０は、処理２０２において、入力ＤＭＡモジュール４０内のＤＭＡインタフェース４１側の動作の状態をリセットする。このＤＭＡインタフェース４１側のリセットにおいてシーケンサ３０は、入力ＤＭＡモジュール４０に対して、入力リセット信号のみを出力する。その後、シーケンサ３０は、入力ＤＭＡモジュール４０に対するリセットを解除した後、処理２０３において、入力ＤＭＡモジュール４０に対して、ＤＭＡ開始トリガ信号を出力する。これにより、入力ＤＭＡモジュール４０は、ＤＭＡによって、ＤＲＡＭ２０からの第２ブロック画像データの読み出しを開始する。
【００８８】
なお、処理２０２においてシーケンサ３０は、入力ＤＭＡモジュール４０に対して共通リセット信号を出力していないため、入力ＤＭＡモジュール４０内のステートＡ部４２１、ステートＢ部４３１、ライトポインタ４０１、およびリードポインタ４０２はリセットされない。このため、入力ＤＭＡモジュール４０が第２ブロック画像データをＤＲＡＭ２０から読み出して入力ＤＭＡモジュール４０内のバッファに書き込む際には、第１ブロック画像データを最後に書き込んだときに使用していたバッファと異なるバッファから、読み出したブロック画像データの書き込みが開始される。より具体的には、図６に示したように、第１ブロック画像データを最後に書き込んだバッファがバッファＡ４２である場合には、第２ブロック画像データを最初に書き込むバッファは、バッファＢ４３となる。これにより、入力ＤＭＡモジュール４０が第２ブロック画像データをバッファに書き込む際に、ＹＣ処理モジュール５０に出力していない第１ブロック画像データが上書きされてしまうことを回避することができる。
【００８９】
その後、入力ＤＭＡモジュール４０は、ＹＣ処理モジュール５０への第１ブロック画像データの出力が完了、すなわち、処理１０１においてシーケンサ３０によってリード回数レジスタ４４３に設定された回数と、バッファから読み出した回数とが一致したとき、出力完了割込み信号をシーケンサ３０に出力する。
【００９０】
シーケンサ３０は、入力ＤＭＡモジュール４０から出力完了割込み信号が入力されると、処理２１０を行う。処理２１０においてシーケンサ３０は、まず、処理２１１において、入力ＤＭＡモジュール４０内のバッファ読み出し回路４４側（ＳＲＡＭリード制御部４４１、インタフェース部４４２、およびリード回数レジスタ４４３）に対して、第２ブロック画像データをＹＣ処理モジュール５０に出力する際に必要なパラメータや出力データ数などのレジスタ設定を行う。例えば、入力ＤＭＡモジュール４０内のリード回数レジスタ４４３に、バッファを読み出す回数が設定される。
【００９１】
続いて、シーケンサ３０は、処理２１２において、入力ＤＭＡモジュール４０内のバッファ読み出し回路４４側の動作の状態をリセットする。このバッファ読み出し回路４４側のリセットにおいてシーケンサ３０は、入力ＤＭＡモジュール４０に対して、出力リセット信号のみを出力する。その後、シーケンサ３０は、入力ＤＭＡモジュール４０に対するリセットを解除する。これにより、入力ＤＭＡモジュール４０は、ＹＣ処理モジュール５０からのデータ要求信号に応じて、第２ブロック画像データの出力を開始することができる状態となる。
【００９２】
なお、処理２１２においてシーケンサ３０は、入力ＤＭＡモジュール４０に対して共通リセット信号を出力していないため、入力ＤＭＡモジュール４０内のステートＡ部４２１、ステートＢ部４３１、ライトポインタ４０１、およびリードポインタ４０２はリセットされない。このため、入力ＤＭＡモジュール４０が第２ブロック画像データの書き込みを開始したバッファから、ＹＣ処理モジュール５０に出力する第２ブロック画像データの読み出しが開始される。より具体的には、図６に示したように、第２ブロック画像データは、最初にバッファＢ４３に書き込まれているため、このバッファＢ４３から第２ブロック画像データの読み出しを開始することとなる。これにより、入力ＤＭＡモジュール４０が第２ブロック画像データをバッファから読み出す際に、異なるバッファに残っているブロック画像データを読み出してＹＣ処理モジュール５０に出力してしまうことを回避することができる。
【００９３】
その後、ＹＣ処理モジュール５０が第１ブロック画像データに対する画像処理が完了したとき、完了割込み信号をシーケンサ３０に出力する。シーケンサ３０は、完了割込み信号が入力されると、処理３００を行う。処理３００においてシーケンサ３０は、まず、処理３０１において、ＹＣ処理モジュール５０に対して、第２ブロック画像データを画像処理する際に必要なパラメータや入出力データ数などのレジスタ設定を行う。続いて、シーケンサ３０は、処理３０２において、ＹＣ処理モジュール５０の動作の状態をリセットした後、リセットを解除する。これにより、ＹＣ処理モジュール５０は、引き続き入力ＤＭＡモジュール４０から入力された第２ブロック画像データに対する画像処理を開始する。
【００９４】
その後、ＮＲ処理モジュール６０が第１ブロック画像データに対する画像処理が完了したとき、完了割込み信号をシーケンサ３０に出力する。シーケンサ３０は、完了割込み信号が入力されると、処理４００を行う。処理４００においてシーケンサ３０は、まず、処理４０１において、ＮＲ処理モジュール６０に対して、第２ブロック画像データを画像処理する際に必要なパラメータや入出力データ数などのレジスタ設定を行う。続いて、シーケンサ３０は、処理４０２において、ＮＲ処理モジュール６０の動作の状態をリセットした後、リセットを解除する。これにより、ＮＲ処理モジュール６０は、引き続きＹＣ処理モジュール５０から入力された第２ブロック画像データのＹ信号とＣ信号とに対する画像処理を開始する。
【００９５】
また、ＮＲ処理モジュール６０が第１ブロック画像データに対する画像処理が完了したとき、出力ＤＭＡモジュール７０においても、出力ＤＭＡモジュール７０内のバッファＣ７２への第１ノイズ低減データの書き込みが完了する。すなわち、処理１０１においてシーケンサ３０によってライト回数レジスタ７１３に設定された回数と、バッファに書き込んだ回数とが一致し、出力ＤＭＡモジュール７０は、入力完了割込み信号をシーケンサ３０に出力する。
【００９６】
シーケンサ３０は、出力ＤＭＡモジュール７０から入力完了割込み信号が入力されると、処理５００を行う。処理５００においてシーケンサ３０は、まず、処理５０１において、出力ＤＭＡモジュール７０内のバッファ書き込み回路７１側（インタフェース部７１１、ＳＲＡＭライト制御部７１２、およびライト回数レジスタ７１３）に対して、ＮＲ処理モジュール６０から出力された第２ブロック画像データに対応したノイズ低減データ（以下、「第２ノイズ低減データ」という）をバッファに書き込む際に必要なパラメータや入力データ数などのレジスタ設定を行う。例えば、出力ＤＭＡモジュール７０内のライト回数レジスタ７１３に、バッファに書き込む回数が設定される。
【００９７】
続いて、シーケンサ３０は、処理５０２において、出力ＤＭＡモジュール７０内のバッファ書き込み回路７１側の動作の状態をリセットする。このバッファ書き込み回路７１側のリセットにおいてシーケンサ３０は、出力ＤＭＡモジュール７０に対して、入力リセット信号のみを出力する。その後、シーケンサ３０は、出力ＤＭＡモジュール７０に対するリセットを解除する。これにより、出力ＤＭＡモジュール７０は、ＮＲ処理モジュール６０からのデータ出力要求信号に応じて、第２ノイズ低減データのバッファへの書き込みを開始することができる状態となる。
【００９８】
なお、処理５０２においてシーケンサ３０は、出力ＤＭＡモジュール７０に対して共通リセット信号を出力していないため、出力ＤＭＡモジュール７０内のステートＣ部７２１、ステートＤ部７３１、ライトポインタ７０１、およびリードポインタ７０２はリセットされない。このため、出力ＤＭＡモジュール７０が第２ノイズ低減データを出力ＤＭＡモジュール７０内のバッファに書き込む際には、第１ノイズ低減データを最後に書き込んだときに使用していたバッファと異なるバッファから、第２ノイズ低減データの書き込みが開始される。より具体的には、図６に示したように、第１ノイズ低減データを最後に書き込んだバッファがバッファＣ７２である場合には、第２ノイズ低減データを最初に書き込むバッファは、バッファＤ７３となる。これにより、出力ＤＭＡモジュール７０が第２ノイズ低減データをバッファに書き込む際に、ＤＲＡＭ２０に出力していない第１ノイズ低減データが上書きされてしまうことを回避することができる。
【００９９】
その後、出力ＤＭＡモジュール７０は、ＤＲＡＭ２０への第１ノイズ低減データの出力が完了、すなわち、処理１０１においてシーケンサ３０によってリード回数レジスタ７４３に設定された回数と、バッファから読み出した回数とが一致したとき、ＤＭＡ完了割込み信号をシーケンサ３０に出力する。
【０１００】
シーケンサ３０は、出力ＤＭＡモジュール７０からＤＭＡ完了割込み信号が入力されると、処理５１０を行う。処理５１０においてシーケンサ３０は、まず、処理５１１において、出力ＤＭＡモジュール７０内のＤＭＡインタフェース７４側（ＳＲＡＭリード制御部７４１、インタフェース部７４２、およびリード回数レジスタ７４３）に対して、第２ノイズ低減データをＤＲＡＭ２０に出力する際に必要なパラメータや出力データ数などのレジスタ設定を行う。例えば、出力ＤＭＡモジュール７０内のリード回数レジスタ７４３に、バッファを読み出す回数が設定される。
【０１０１】
続いて、シーケンサ３０は、処理５１２において、出力ＤＭＡモジュール７０内のＤＭＡインタフェース７４側の動作の状態をリセットする。このＤＭＡインタフェース７４側のリセットにおいてシーケンサ３０は、出力ＤＭＡモジュール７０に対して、出力リセット信号のみを出力する。その後、シーケンサ３０は、出力ＤＭＡモジュール７０に対するリセットを解除した後、処理５１３において、出力ＤＭＡモジュール７０に対して、ＤＭＡ開始トリガ信号を出力する。これにより、出力ＤＭＡモジュール７０は、ＤＭＡによって、ＤＲＡＭ２０への第２ノイズ低減データの出力を開始する。
【０１０２】
なお、処理５１２においてシーケンサ３０は、出力ＤＭＡモジュール７０に対して共通リセット信号を出力していないため、出力ＤＭＡモジュール７０内のステートＣ部７２１、ステートＤ部７３１、ライトポインタ７０１、およびリードポインタ７０２はリセットされない。このため、出力ＤＭＡモジュール７０が第２ノイズ低減データの書き込みを開始したバッファから、ＤＲＡＭ２０に出力する第２ノイズ低減データの読み出しが開始される。より具体的には、図６に示したように、第２ノイズ低減データは、最初にバッファＤ７３に書き込まれているため、このバッファＤ７３から第２ノイズ低減データの読み出しを開始することとなる。これにより、出力ＤＭＡモジュール７０が第２ノイズ低減データをバッファから読み出す際に、異なるバッファに残っているノイズ低減データを読み出してＤＲＡＭ２０に出力してしまうことを回避することができる。
【０１０３】
その後、出力ＤＭＡモジュール７０が、第２ノイズ低減データのＤＲＡＭ２０への出力が完了、すなわち、処理５１１１においてシーケンサ３０によってリード回数レジスタ７４３に設定された回数と、バッファから読み出した回数とが一致したとき、ＤＭＡ完了割込み信号をシーケンサ３０に出力する。この出力ＤＭＡモジュール７０からのＤＭＡ完了割込み信号がシーケンサ３０に入力されることにより、画像処理装置１における１フレームの静止画像のデータのパイプライン処理が終了となる。
【０１０４】
上記に述べたように、本実施形態の画像処理装置１に備えた入力ＤＭＡモジュール４０では、ＤＲＡＭ２０からのブロック画像データの読み出しが完了したときのＤＭＡ完了割込み信号と、ＹＣ処理モジュール５０へのブロック画像データの出力が完了ときの出力完了割込み信号とを、それぞれシーケンサ３０に出力することができる。また、本実施形態の画像処理装置１に備えた出力ＤＭＡモジュール７０では、ＮＲ処理モジュール６０からのノイズ低減データの書き込みが完了したときの入力完了割込み信号と、ＤＲＡＭ２０へのノイズ低減データの出力が完了したときのＤＭＡ完了割込み信号とを、それぞれシーケンサ３０に出力することができる。これにより、本実施形態の画像処理装置１のシーケンサ３０では、入力ＤＭＡモジュール４０が、第１ブロック画像データをＹＣ処理モジュール５０に出力している最中に、第２ブロック画像データをＤＲＡＭ２０から読み出しを開始させることができる。また、出力ＤＭＡモジュール７０が、第１ノイズ低減データをＤＲＡＭ２０に出力している最中に、ＮＲ処理モジュール６０が出力する第２ノイズ低減データのバッファへの書き込みを開始させることができる。このことにより、パイプラインを構成するそれぞれの処理モジュール間でのデータの入出力の待ち時間が短くなるようにパイプライン処理を行うことができる。
【０１０５】
上記に述べたとおり、本発明を実施するための形態によれば、パイプラインを構成するそれぞれの処理モジュールの内、処理の時間的なロスが大きい処理モジュールにおけるリセットの制御単位を、当該処理モジュールの入力側と出力側とで分離する。そして、処理モジュールの入力側または出力側の処理が完了する毎に、処理が完了したことを表す信号をそれぞれ出力するように構成する。より具体的には、例えば、入力ＤＭＡモジュール４０においては、ＤＭＡインタフェース４１側とバッファ読み出し回路４４側とに分離し、ＤＭＡ完了割込み信号と出力完了割込み信号とを、それぞれ出力する。また、出力ＤＭＡモジュール７０においては、バッファ書き込み回路７１側とＤＭＡインタフェース７４側に分離し、入力完了割込み信号とＤＭＡ完了割込み信号とを、それぞれ出力する。これにより、処理モジュールの入力側と出力側との一方の処理が完了したときに、他方の処理が完了していなくとも、次の処理を開始させることができ、パイプラインを構成する前段の処理モジュールから入力されるデータの待ち時間を短くすることができる。これにより、パイプライン処理におけるロス時間を低減することができる。
【０１０６】
なお、本実施形態においては、入力側または出力側のいずれか一方にＤＭＡ転送によってデータを取得するまたは出力する処理モジュール（より具体的には、入力ＤＭＡモジュール４０および出力ＤＭＡモジュール７０）に適用した場合について説明したが、処理モジュールの構成は、本発明を実施するための形態に限定されるものではない。例えば、入力側および出力側の両方がＤＭＡ以外のインタフェースによってデータを取得するまたは出力する処理モジュールに適用することもできる。
【０１０７】
また、本実施形態においては、入力ＤＭＡモジュール４０、ＹＣ処理モジュール５０、ＮＲ処理モジュール６０、および出力ＤＭＡモジュール７０によってパイプラインを構成した場合の一例について説明したが、パイプラインを構成する処理モジュールは、本発明を実施するための形態に限定されるものではない。
【０１０８】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【０１０９】
１・・・画像処理装置
１０・・・ＤＭＡバス
２０・・・ＤＲＡＭ
３０・・・シーケンサ（画像処理装置）
４０・・・入力ＤＭＡモジュール（データ処理装置）
４０１・・・ライトポインタ（バッファ情報通知部）
４０２・・・リードポインタ（バッファ情報通知部）
４１・・・ＤＭＡインタフェース（データ書き込み制御部）
４１１・・・インタフェース部
４１２・・・ＳＲＡＭライト制御部（データ書き込み制御部）
４１３・・・ライト回数レジスタ（データ書き込み制御部）
４２・・・バッファＡ，ＳＲＡＭ＿Ａ（バッファ部）
４２１・・・ステートＡ部（バッファ情報通知部）
４３・・・バッファＢ，ＳＲＡＭ＿Ｂ（バッファ部）
４３１・・・ステートＢ部（バッファ情報通知部）
４４・・・バッファ読み出し回路（データ読み出し制御部）
４４１・・・ＳＲＡＭリード制御部（データ読み出し制御部）
４４２・・・インタフェース部
４４３・・・リード回数レジスタ（データ読み出し制御部）
５０・・・ＹＣ処理モジュール
６０・・・ＮＲ処理モジュール
７０・・・出力ＤＭＡモジュール（データ処理装置）
７０１・・・ライトポインタ（バッファ情報通知部）
７０２・・・リードポインタ（バッファ情報通知部）
７１・・・バッファ書き込み回路（データ書き込み制御部）
７１１・・・インタフェース部
７１２・・・ＳＲＡＭライト制御部（データ書き込み制御部）
７１３・・・ライト回数レジスタ（データ書き込み制御部）
７２・・・バッファＣ，ＳＲＡＭ＿Ｃ（バッファ部）
７２１・・・ステートＣ部（バッファ情報通知部）
７３・・・バッファＤ，ＳＲＡＭ＿Ｄ（バッファ部）
７３１・・・ステートＤ部（バッファ情報通知部）
７４・・・ＤＭＡインタフェース（データ読み出し制御部）
７４１・・・ＳＲＡＭリード制御部（データ読み出し制御部）
７４２・・・インタフェース部
７４３・・・リード回数レジスタ（データ読み出し制御部）
【図１】
0005675278.tif 000002
【図２】
0005675278.tif 000003
【図３】
0005675278.tif 000004
【図４】
0005675278.tif 000005
【図５】
0005675278.tif 000006
【図６】
0005675278.tif 000007
【図７】
0005675278.tif 000008
【図８】
0005675278.tif 000009
【図９】
0005675278.tif 000010
【図１０】
0005675278.tif 000011
【図１１】
0005675278.tif 000012
【図１２】
0005675278.tif 000013