(57)【要約】【課題】有効なデータが入力されないパイプラインステージにおける消費電力を低減する。【解決手段】データ処理装置１００は、複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部３１０を有するパイプライン処理部３０１と、有効データが入力されるパイプラインステージの処理部３１０にクロックを供給し、有効データが入力されないパイプラインステージの処理部３１０へのクロック供給を停止するクロック制御部３４０を備える。【選択図】図２２
2014182510.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なるパイプラインステージにおいて各前記パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有するパイプライン処理部と、
有効データが入力される前記パイプラインステージの前記処理部にクロックを供給し、有効データが入力されない前記パイプラインステージの前記処理部へのクロック供給を停止するクロック制御部と、
を備えることを特徴とするデータ処理装置。
【請求項２】
メモリと、
前記パイプライン処理部としての第１パイプライン処理部と、
第１パイプライン処理部により処理されて前記メモリに書き込まれたデータを読み出す、前記パイプライン処理部としての第２パイプライン処理部と、を備え、
前記クロック制御部は、第１パイプライン処理部による前記メモリへの書き込みデータ量と、第２パイプライン処理部による前記メモリからの読み出しデータ量とに応じて、第２パイプライン処理部の前記パイプラインステージへの有効データが入力されるか否かを判断することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記パイプラインステージへの有効データの入力を示すフラグを生成するフラグ生成部と、
前記パイプラインステージ毎に、各前記パイプラインステージがデータを処理する期間に前記フラグを各々保持する複数のフラグ保持部と、
前段の前記パイプラインステージの前記フラグを保持する前記フラグ保持部から、後段の前記パイプラインステージの前記フラグを保持する前記フラグ保持部へ、前記フラグを転送する転送路と、
を備え、
前記クロック制御部は、前記フラグに基づき前記パイプラインステージの前記処理部へのクロック供給を制御する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
メモリと、
前記パイプライン処理部としての第１パイプライン処理部と、
第１パイプライン処理部により処理されて前記メモリに書き込まれたデータを読み出す、前記パイプライン処理部としての第２パイプライン処理部と、を備え、
前記フラグ生成部は、第１パイプライン処理部による前記メモリへの書き込みデータ量と、第２パイプライン処理部による前記メモリからの読み出しデータ量とに応じて、第２パイプライン処理部の前記パイプラインステージへの有効データの入力を示すフラグを生成することを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記データ処理装置は、第２パイプライン処理部により処理されて前記メモリに書き込まれるデータを読み出す第３パイプライン処理部を備え、
前記クロック制御部は、第２パイプライン処理部による前記メモリへの書き込みデータ量と、第３パイプライン処理部による前記メモリからの読み出しデータ量とに応じて、第２パイプライン処理部の前記パイプラインステージの前記処理部へのクロック供給を制御する、
ことを特徴とする請求項２又は４に記載のデータ処理装置。
【請求項６】
メモリと、
第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、これら処理部により処理されたデータを前記メモリに書き込む第１パイプライン処理部と、
第１の複数の異なるパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、第１パイプライン処理部により前記メモリに書き込まれたデータを読み出す第２パイプライン処理部と、
第１パイプライン処理部による前記メモリへの書き込みデータ量と、第２パイプライン処理部による前記メモリからの読み出しデータ量とに応じて、第１パイプライン処理部の前記処理部へのクロック供給を制御するクロック制御部と、
を備えることを特徴とするデータ処理装置。
【請求項７】
前記パイプライン処理部毎に、各パイプライン処理部の前記処理部へのクロック供給を制御する第２クロック制御部を備えることを特徴とする請求項１〜６のいずれか一項に記載のデータ処理装置。
【請求項８】
第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第１パイプライン処理部と、
第１の複数のパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第２パイプライン処理部と、
第１パイプライン処理部の前記処理部のクロック供給と、第２パイプライン処理部の前記処理部へのクロック供給を個別に停止するクロック制御部と、
を備えることを特徴とするデータ処理装置。
【請求項９】
データ処理装置におけるクロック供給方法であって、
前記データ処理装置は、複数の異なるパイプラインステージにおいて各前記パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有するパイプライン処理部を備え、
前記クロック供給方法は、
前記パイプラインステージへ有効データが入力されるか否かを判断し、
有効データが入力される前記パイプラインステージの前記処理部にクロックを供給し、
有効データが入力されない前記パイプラインステージの前記処理部へのクロック供給を停止する、
ことを特徴とするクロック供給方法。
【請求項１０】
データ処理装置におけるクロック供給方法であって、
前記データ処理装置は、
メモリと、
第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、これら処理部により処理されたデータを前記メモリに書き込む第１パイプライン処理部と、
第１の複数の異なるパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、第１パイプライン処理部により前記メモリに書き込まれたデータを読み出す第２パイプライン処理部と、を備え、
前記クロック供給方法は、第１パイプライン処理部により前記メモリへ書き込まれるデータ量と、前記メモリから第２パイプライン処理部に読み出すデータ量とに応じて、第１パイプライン処理部の前記パイプラインステージの前記処理部へのクロック供給を制御することを特徴とするクロック供給方法。
【請求項１１】
データ処理装置におけるクロック供給方法であって、
前記データ処理装置は、
第１の複数の異なるパイプラインステージにおいて各前記パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第１パイプライン処理部と、
第１の複数のパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各前記パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第２パイプライン処理部と、を備え、
前記クロック供給方法は、第１パイプライン処理部の前記処理部のクロック供給と、第２パイプライン処理部の前記処理部へのクロック供給を個別に停止することを特徴とするクロック供給方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びクロック供給方法に関し、パイプライン処理によってデータを処理するデータ処理装置へのクロック供給に関する。
【背景技術】
【０００２】
パイプライン処理により情報処理を行う情報処理装置が知られている。関連技術として、ＤＥＣステージでｎｏｐ命令と判別されると、以降の、ＥＸステージ、ＭＥＭステージおよびＷＢステージへクロック停止状態が伝播し、当該ステージに属する構成要素へのクロック信号の供給を停止することが知られている。命令の種類に応じて、処理が行われないステージにおいて、そのステージに属する構成要素へのクロック信号の供給を停止することが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２６９３６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
パイプライン処理で画像処理を行う場合に以下のような課題がある。
【０００５】
（１）パイプラインステージに有効なデータが入力されない場合がある。例えば、複数のパイプラインの処理を連結するために、前段のパイプラインが処理した画像データを記憶装置に書込み、前段のパイプラインが記憶装置に書き込んだ画像データを後段のパイプラインが読み込んで処理する場合を想定する。後段のパイプラインは、前段のパイプラインによるデータ書込を待って読み出しを一時的に中断すると、後段のパイプラインの各パイプラインステージには有効なデータが入力されない期間が発生し、この間に不要な消費電力を消費する。
【０００６】
（２）同様に、前段のパイプラインは、後段のパイプラインによるデータ読み出しが済んでいないアドレスへの上書きを避けるためにパイプラインを停止すると、停止期間に不要な消費電力を消費する。
【０００７】
（３）複数のパイプラインのうち使用しないパイプラインがある場合に、使用しないパイプラインで不要な消費電力を消費する。
【０００８】
本明細書に開示される装置又は方法は、本発明は、上記課題の少なくとも一つを解決することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るデータ処理装置は、複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有するパイプライン処理部と、有効データが入力されるパイプラインステージの処理部にクロックを供給し、有効データが入力されないパイプラインステージの処理部へのクロック供給を停止するクロック制御部を備える。
【００１０】
本発明に係る他のデータ処理装置は、メモリと、第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、これら処理部により処理されたデータをメモリに書き込む第１パイプライン処理部と、第１の複数の異なるパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、第１パイプライン処理部によりメモリに書き込まれたデータを読み出す第２パイプライン処理部と、第１パイプライン処理部によるメモリへの書き込みデータ量と、第２パイプライン処理部によるメモリからの読み出しデータ量とに応じて、第１パイプライン処理部の処理部へのクロック供給を制御するクロック制御部を備える。
【００１１】
本発明に係る他のデータ処理装置は、第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第１パイプライン処理部と、第１の複数のパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第２パイプライン処理部と、第１パイプライン処理部の処理部のクロック供給と、第２パイプライン処理部の処理部へのクロック供給を個別に停止するクロック制御部を備える。
【００１２】
本発明に係るクロック供給方法は、複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有するパイプライン処理部を備えるデータ装置におけるクロック供給方法である。クロック供給方法は、パイプラインステージへ有効データが入力されるか否かを判断し、有効データが入力されるパイプラインステージの処理部にクロックを供給し、有効データが入力されないパイプラインステージの処理部へのクロック供給を停止することを含む。
【００１３】
本発明に係る他のクロック供給方法は、メモリと、第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、これら処理部により処理されたデータをメモリに書き込む第１パイプライン処理部と、第１の複数の異なるパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有し、第１パイプライン処理部によりメモリに書き込まれたデータを読み出す第２パイプライン処理部を備えるデータ処理装置におけるクロック供給方法である。クロック供給方法は、第１パイプライン処理部によりメモリへ書き込まれるデータ量と、メモリから第２パイプライン処理部に読み出すデータ量とに応じて、第１パイプライン処理部のパイプラインステージの処理部へのクロック供給を制御することを含む。
【００１４】
本発明に係る他のクロック供給方法は、第１の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第１パイプライン処理部と、第１の複数のパイプラインステージと異なる第２の複数の異なるパイプラインステージにおいて各パイプラインステージに入力されたデータをそれぞれ処理する複数の処理部を有する第２パイプライン処理部を備えるデータ処理装置におけるクロック供給方法である。クロック供給方法は、第１パイプライン処理部の処理部のクロック供給と、第２パイプライン処理部の処理部へのクロック供給を個別に停止する。
【発明の効果】
【００１５】
本明細書に開示される装置又は方法は、下記の効果の少なくとも一つを奏する。
（１）有効なデータが入力されないパイプラインステージにおける消費電力が低減される。
（２）前段のパイプラインが、後段のパイプラインの読み出しを待ってパイプラインを停止している期間における消費電力が低減される。
（３）複数のパイプラインのうち不使用のパイプラインにおける消費電力が低減される。
【図面の簡単な説明】
【００１６】
【図１】画像処理システムのハードウェア構成の第１例の説明図である。
【図２】画像処理装置の第１例の機能ブロック図である。
【図３】処理部の第１例の機能ブロック図である。
【図４】画像処理装置の第２例の機能ブロック図である。
【図５】読出部の第１例の機能ブロック図である。
【図６】処理部の第２例の機能ブロック図である。
【図７】パイプライン処理部の構成の第１例の説明図（その１）である。
【図８】パイプライン処理部の構成の第１例の説明図（その２）である。
【図９】パイプライン処理部の構成の第１例の説明図（その３）である。
【図１０】パイプライン処理部の構成の第１例の説明図（その４）である。
【図１１】パイプライン処理部の構成の第２例の説明図（その１）である。
【図１２】パイプライン処理部の構成の第２例の説明図（その２）である。
【図１３】パイプライン処理部の構成の第３例の説明図である。
【図１４】画像処理装置の第３例の機能ブロック図である。
【図１５】読出部の第２例の機能ブロック図である。
【図１６】処理部の第３例の機能ブロック図である。
【図１７】画像処理装置の第４例の機能ブロック図である。
【図１８】画像処理システムのハードウェア構成の第２例の説明図である。
【図１９】画像処理装置の第５例の機能ブロック図である。
【図２０】画像処理装置の第６例の機能ブロックの説明図である。
【図２１】パイプラインの第１例の機能ブロック図である。
【図２２】パイプラインの第２例の機能ブロック図である。
【図２３】読出制御部の第１例の機能ブロック図である。
【図２４】画像読取装置の動作の一例の説明図である。
【図２５】図２４の画像データ処理の動作の一例の説明図である。
【図２６】読出制御部の動作の第１例の説明図である。
【図２７】有効データが読み出されている期間のクロック供給を説明するためのタイミングチャート（その１）である。
【図２８】有効データが読み出されている期間のクロック供給を説明するためのタイミングチャート（その２）である。
【図２９】有効データが読み出されていない期間のクロック供給を説明するためのタイミングチャート（その１）である。
【図３０】有効データが読み出されていない期間のクロック供給を説明するためのタイミングチャート（その２）である。
【図３１】画像処理装置の第７例の機能ブロックの説明図である。
【図３２】（Ａ）は読出制御部の第２例の機能ブロック図であり、（Ｂ）は書込制御部の第２例の機能ブロック図である。
【図３３】書込量通知回線の接続例の説明図である。
【図３４】読出制御部の動作の第２例の説明図である。
【図３５】読出制御部の第３例の機能ブロック図である。
【図３６】パイプラインの第３例の機能ブロック図である。
【図３７】（Ａ）は読出制御部の第３例の機能ブロック図であり、（Ｂ）は書込制御部の第３例の機能ブロック図である。
【図３８】読出量通知回線の接続例の説明図である。
【図３９】書込制御部の動作の第１例の説明図である。
【図４０】パイプラインの第４例の機能ブロック図である。
【図４１】（Ａ）は読出制御部の第４例の機能ブロック図であり、（Ｂ）は書込制御部の第４例の機能ブロック図である。
【図４２】読出制御部の動作の第３例の説明図である。
【図４３】書込制御部の動作の第２例の説明図である。
【図４４】有効フラグによるパイプラインの停止を説明するためのタイミングチャート（その１）である。
【図４５】有効フラグによるパイプラインの停止を説明するためのタイミングチャート（その２）である。
【発明を実施するための形態】
【００１７】
以下、本発明に係るデータ処理装置とその構成方法について添付図面を参照して説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１８】
＜１．第１実施例＞
図１は、画像処理システムのハードウェア構成の一例の説明図である。画像処理システム１は、画像読取装置１００と、情報処理装置２００とを有する。画像読取装置１００は、例えばイメージスキャナ、デジタルカメラ等であり、情報処理装置２００は、例えば画像読取装置１００に接続して用いられるパーソナルコンピュータ等である。
【００１９】
画像読取装置１００は、画像入力装置１０１と、画像処理装置１０２と、第１画像メモリ１０３と、第１インタフェース装置１０４と、第１記憶装置１０５と、第１ＣＰＵ１０６を有する。画像読取装置１００は、ＤＭＡ（Direct Memory Access）コントローラ１０８とクロック生成回路１０９を有する。なお、添付する図面においてインタフェースを「ＩＦ」と表記する。また、ＤＭＡコントローラを「ＤＭＡ」と表記する。
【００２０】
画像入力装置１０１は、撮像対象物である原稿、風景、人物等を撮像する撮像センサを有する。なお、以下では、撮像対象物が原稿であるものとして説明する。この撮像センサは、１次元又は２次元に配列されたＣＣＤ、ＣＭＯＳ等の撮像素子と、撮像素子に撮像対象物の像を結像する光学系を備え、各撮像素子は、ＲＧＢ各色に対応するアナログ値を出力する。そして、画像入力装置１０１は、撮像センサが出力した各アナログ値をデジタル値に変換して画素データを生成し、生成した各画素データから構成される画像データ（以下、ＲＧＢ画像と称する）を生成する。このＲＧＢ画像は、各画素データが、例えばＲＧＢ各色毎に８ｂｉｔで表される計２４ｂｉｔのＲＧＢ値からなるカラー画像データとなる。
【００２１】
そして、画像入力装置１０１は、ＲＧＢ画像の各画素のＲＧＢ値を画像処理装置１０２に出力する。
【００２２】
画像入力装置１０１は、生成した画像データに所定の画像処理を施して第１画像メモリ１０３に保存する。また、画像処理装置１０２は、第１画像メモリ１０３から画像データを読み出して、さらに他の画像処理を施して第１画像メモリ１０３に保存する。これらの画像処理には、例えば、シェーディング補正、各画素のＲＧＢ値を輝度値及び色差値（ＹＵＶ値）への変換処理や、ガンマ変換処理、色変更処理、強調処理、原稿の端部を検出する検出処理、入力画像データを補正する補正処理や、画像の回転処理であってよい。
【００２３】
なお、ＹＵＶ値は、例えば以下の式により算出することができる。
Ｙ値＝  ０．３０×Ｒ値＋０．５９×Ｇ値＋０．１１×Ｂ値    （１）
Ｕ値＝−０．１７×Ｒ値−０．３３×Ｇ値＋０．５０×Ｂ値    （２）
Ｖ値＝  ０．５０×Ｒ値−０．４２×Ｇ値−０．０８×Ｂ値    （３）
【００２４】
第１画像メモリ１０３は、不揮発性半導体メモリ、揮発性半導体メモリ、磁気ディスク等の記憶装置を有する。第１画像メモリ１０３は、画像処理装置１０２に接続され、画像処理装置１０２によって画像処理が施された画像データを保存する。
【００２５】
画像処理装置１０２は、第１ＣＰＵ１０６に接続され、第１ＣＰＵ１０６による設定に従って動作する論理回路を含んでいてよい。論理回路は、例えば、LSI（large scale integration）やASIC（Application Specific Integrated Circuit）、FPGA（Field-Programming Gate Array）であってよい。画像処理装置１０２は、第１ＣＰＵ１０６からの制御により、予め第１記憶装置１０５に記憶されているプログラムに基づいて動作するＣＰＵやＤＳＰ（digital signal processor）等のプロセッサを含んでいてもよい。
【００２６】
第１インタフェース装置１０４は、例えばＵＳＢ等のシリアルバスに準じるインターフェース回路を有し、情報処理装置２００と電気的に接続して画像データ及び各種の情報を送受信する。また、第１インタフェース装置１０４にフラッシュメモリ等を接続して第１画像メモリ１０３に保存されている画像データを保存するようにしてもよい。
【００２７】
第１記憶装置１０５は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第１記憶装置１０５には、画像読取装置１００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。
【００２８】
コンピュータプログラムは、例えばＣＤ−ＲＯＭ（compact disk read only memory）、ＤＶＤ−ＲＯＭ（digital versatile disk read only memory）等のコンピュータ読み取り可能な可搬型記録媒体に格納されてもよい。コンピュータプログラムは、可搬型記録媒体から公知のセットアッププログラム等を用いて第１記憶装置１０５にインストールされてもよい。
【００２９】
第１ＣＰＵ１０６は、画像処理装置１０２、第１画像メモリ１０３、第１インタフェース装置１０４、及び第１記憶装置１０５と接続され、これらの各部を制御する。第１ＣＰＵ１０６は、画像入力装置１０１の入力画像生成制御、第１画像メモリ１０３の制御、第１インタフェース装置１０４を介した情報処理装置２００とのデータ送受信制御、第１記憶装置１０５の制御等を行う。また、第１ＣＰＵ１０６は、画像処理装置１０２による画像処理の制御等を行う。
【００３０】
画像データを情報処理装置２００へ出力する場合に、第１インタフェース装置１０４を経由して、第１画像メモリ１０３に格納された画像データを出力してもよい。この場合、ＤＭＡコントローラ１０８は、第１ＣＰＵ１０６の指示に応じて第１画像メモリ１０３に格納された画像データを読み出し、第１インタフェース装置１０４へ転送してよい。
【００３１】
クロック生成回路１０９はクロック信号を生成し、画像処理装置１０２や、画像読取装置１００内のその他の構成要素に動作クロックを供給する。クロック生成回路１０９は、例えばＰＬＬ（Phase Locked Loop）回路であってよい。
【００３２】
情報処理装置２００は、第２インタフェース装置２０１と、第２画像メモリ２０２と、表示装置２０３と、第２記憶装置２０４と、第２ＣＰＵ２０５とを有する。以下、情報処理装置２００の各部について詳細に説明する。
【００３３】
第２インタフェース装置２０１は、画像読取装置１００の第１インタフェース装置１０４と同様のインターフェース回路を有し、情報処理装置２００と画像読取装置１００とを接続する。
【００３４】
第２画像メモリ２０２は、画像読取装置１００の第１画像メモリ１０３と同様の記憶装置を有する。第２画像メモリ２０２には、第２インタフェース装置２０１を介して画像読取装置１００から受信した画像データ及び各種の情報が保存される。
【００３５】
表示装置２０３は、液晶、有機ＥＬ等から構成されるディスプレイ及びディスプレイに画像データを出力するインターフェース回路を有し、第２画像メモリ２０２に保存されている画像データをディスプレイに表示する。
【００３６】
第２記憶装置２０４は、画像読取装置１００の第１記憶装置１０５と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第２記憶装置２０４には、情報処理装置２００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第２記憶装置２０４にインストールされてもよい。
【００３７】
第２ＣＰＵ２０５は、第２インタフェース装置２０１、第２画像メモリ２０２、表示装置２０３及び第２記憶装置２０４と接続され、これらの各部を制御する。第２ＣＰＵ２０５は、第２インタフェース装置２０１を介した画像読取装置１００とのデータ送受信制御、第２画像メモリ２０２の制御、表示装置２０３の表示制御、第２記憶装置２０４の制御等を行う。
【００３８】
なお、図１に示すハードウエア構成は実施例の説明のための例示にすぎない。上述の動作を実行するものであれば、本明細書に記載される画像読取装置１００及び情報処理装置２００は他のどのようなハードウエア構成を採用してもよい。後述の図１８に示すハードウエア構成についても同様である。
【００３９】
図２は、画像処理装置１０２の第１例の機能ブロック図である。画像処理装置１０２は、パイプライン処理により画像データを処理するためのパイプライン処理部１１０を備える。
【００４０】
パイプライン処理部１１０は、複数の異なるパイプラインステージ毎に設けられる処理部１２０ａ〜１２０ｄと共通バス１３０を備える。処理部１２０ａ〜１２０ｄは、各パイプラインステージに入力されるデータをそれぞれ処理する。以下の説明及び添付図面において処理部１２０ａ〜１２０ｄを総称して「処理部１２０」と表記することがある。
【００４１】
共通バス１３０は、マスタ型セレクトコネクタ１３１ａ〜１３１ｄ及び１３３と、スレーブ型セレクトコネクタ１３２ａ〜１３２ｄ及び１３４と、空間制御部１３５を備える。以下の説明において、マスタ型セレクトコネクタ１３１ａ〜１３１ｄを「セレクタ１３１ａ」〜「セレクタ１３１ｄ」と表記することがある。マスタ型セレクトコネクタ１３１ａ〜１３１ｄを総称して「セレクタ１３１」と表記することがある。
【００４２】
以下の説明において、スレーブ型セレクトコネクタ１３２ａ〜１３２ｄを「セレクタ１３２ａ」〜「セレクタ１３２ｄ」と表記することがある。スレーブ型セレクトコネクタ１３２ａ〜１３２ｄを総称して「セレクタ１３２」と表記することがある。マスタ型セレクトコネクタ１３３及びスレーブ型セレクトコネクタ１３４を、それぞれ「セレクタ１３３」及び「セレクタ１３４」と表記することがある。また、添付図面においてマスタ型セレクトコネクタ及びスレーブ型セレクトコネクタを「セレクタ」と表記する。
【００４３】
セレクタ１３１ａは、処理部１２０ａが指定するアドレス情報に従って、処理部１２０ａから出力される画像データの転送先を、処理部１２０ｂ〜１２０ｄ及びセレクタ１３４の間で切り替える。
【００４４】
処理部１２０ａが指定するアドレス情報は、画像データの転送先を示す共通バス１３０上のアドレス情報であってよい。共通バス１３０上のアドレス情報は、共通バス１３０を経由して転送される画像データの転送先を指定するための情報である。以下の説明において共通バス１３０上のアドレス情報を「アドレス情報」と表記することがある。
【００４５】
セレクタ１３１ａには、処理部１２０ａからの画像データの出力線と、セレクタ１３２ｂ〜１３２ｄ及び１３４へのデータ転送線が接続されている。セレクタ１３１ａは、処理部１２０ａが指定するアドレス情報に従って、これらデータ転送線のいずれかを選択して出力線に接続する。
【００４６】
同様に、セレクタ１３１ｂは、処理部１２０ｂが指定するアドレス情報に従って、処理部１２０ｂから出力される画像データの転送先を、処理部１２０ａ、１２０ｃ、１２０ｄ及びセレクタ１３４の間で切り替える。セレクタ１３１ｃは、処理部１２０ｃが指定するアドレス情報に従って、処理部１２０ｃから出力される画像データの転送先を、処理部１２０ａ、１２０ｂ、１２０ｄ及びセレクタ１３４の間で切り替える。セレクタ１３１ｄは、処理部１２０ｄが指定するアドレス情報に従って、処理部１２０ｄから出力される画像データの転送先を、処理部１２０ａ〜１２０ｃ及びセレクタ１３４の間で切り替える。
【００４７】
セレクタ１３２ａは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ａへ入力する画像データの転送元を、処理部１２０ｂ〜１２０ｄ及びセレクタ１３３の間で切り替える。セレクタ１３２ａには、処理部１２０ａへの画像データの入力線と、セレクタ１３１ｂ〜１３１ｄ及び１３３からのデータ転送線が接続されている。セレクタ１３２ａは、セレクト信号に従ってこれらデータ転送線のいずれかを選択して入力線に接続する。
【００４８】
同様に、セレクタ１３２ｂは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ｂへ入力する画像データの転送元を、処理部１２０ａ、１２０ｃ、１２０ｄ及びセレクタ１３３の間で切り替える。セレクタ１３２ｃは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ｃへ入力する画像データの転送元を、処理部１２０ａ、１２０ｂ、１２０ｄ及びセレクタ１３３の間で切り替える。セレクタ１３２ｄは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ｄへ入力する画像データの転送元を、処理部１２０ａ〜１２０ｃ及びセレクタ１３３の間で切り替える。
【００４９】
セレクタ１３３は、入力画像データ受信時に指定されたアドレス情報に基づいて、入力画像データが転送されるパイプラインの最前段の処理部１２０を切り替える。セレクタ１３３には、入力画像データの入力線と、セレクタ１３２ａ〜１３２ｄへのデータ転送線が接続されている。セレクタ１３４は、指定されたアドレス情報に基づいてこれらデータ転送線のいずれかを選択して入力線に接続する。
【００５０】
セレクタ１３４は、空間制御部１３５から受信するセレクト信号に従って、パイプライン処理部１１０から画像データを出力する最後段のパイプラインステージの処理部１２０を切り替える。セレクタ１３３には、出力画像データの出力線と、セレクタ１３１ａ〜１３１ｄからのデータ転送線が接続されている。セレクタ１３４は、セレクト信号に基づいてこれらデータ転送線のいずれかを選択して出力線に接続する。
【００５１】
空間制御部１３５は、セレクタ１３２及びセレクタ１３４の設定のための情報を第１ＣＰＵ１０６から受信する。空間制御部１３５は、第１ＣＰＵ１０６から受信した情報に従って、セレクタ１３２及びセレクタ１３４の選択動作を指定するセレクト信号を生成する。空間制御部１３５は、セレクト信号をセレクタ１３２及びセレクタ１３４へ出力する。したがって、セレクタ１３２及びセレクタ１３４の選択状態は、第１ＣＰＵ１０６からの情報に基づいて可変設定される。
【００５２】
空間制御部１３５が第１ＣＰＵ１０６から受信した情報に従って、セレクタ１３１及びセレクタ１３３の選択動作を指定するセレクト信号を生成し、セレクタ１３１及びセレクタ１３３に与えるように共通バス１３０を構成してもよい。
【００５３】
図３は、処理部１２０ａの第１例の機能ブロック図である。処理部１２０ａは、レジスタ１２１と、スレーブ部１２２と、画像処理部１２３と、マスタ部１２４を備える。他の処理部１２０ｂ〜１２０ｄも同様の構成を有する。
【００５４】
レジスタ１２１には、第１ＣＰＵ１０６から受信した設定情報が格納される。本実施例では、設定情報は、処理部１２０ａの出力画像データの転送先の他の処理部１２０のアドレス情報を含んでいてよい。
【００５５】
スレーブ部１２２は、セレクタ１３２ａから画像データを受信し、画像処理部１２３へ入力する。画像処理部１２３は、処理部１２０ａ固有の画像処理を施し、処理済みの画像データをマスタ部１２４に入力する。
【００５６】
マスタ部１２４は、画像データの転送先を定める他の処理部１２０のアドレス情報をレジスタ１２１から取得する。マスタ部１２４は、レジスタ１２１から取得したアドレス情報をセレクタ１３１ａに与えることにより、画像データの転送先の他の処理部１２０を指定する。マスタ部１２４は、処理済みの画像データをセレクタ１３１ａに送信する。
【００５７】
このように、セレクタ１３１の選択状態は、第１ＣＰＵ１０６からの情報に基づきマスタ部１２４により指定されるアドレス情報によって可変設定される。セレクタ１３１及び１３２は、第１セレクタ及び第２セレクタの一例である。処理部１２０のマスタ部１２４及び空間制御部１３５は、セレクタ１３１及び１３２による選択状態を可変設定する設定部の一例である。
【００５８】
第１ＣＰＵ１０６は、セレクタ１３２及びセレクタ１３４の設定のための情報を空間制御部１３５に与え、レジスタ１２１にアドレス情報を与えることで、処理部１２０による処理順序を設定することができる。
【００５９】
例えば、処理部１２０ａ、１２０ｂ、１２０ｃ及び１２０ｄの順に、各処理部１２０が画像データを処理するようにパイプライン処理部１１０を構成する場合を想定する。処理部１２０ａ、１２０ｂ、１２０ｃ及び１２０ｄの共通バス１３０上のアドレスをそれぞれ以下のように定める。また、セレクタ１３４のデータ出力先の共通バス１３０上のアドレスを以下のように定める。
【００６０】
処理部１２０ａ：「０ｘ１０００００００」
処理部１２０ｂ：「０ｘ１０００１０００」
処理部１２０ｃ：「０ｘ１０００２０００」
処理部１２０ｄ：「０ｘ１０００３０００」
データ出力先：「０ｘ３０００００００」
【００６１】
第１ＣＰＵ１０６は、処理部１２０ａの転送先のアドレスとして、処理部１２０ｂのアドレス「０ｘ１０００１０００」を処理部１２０ａのレジスタ１２１に与える。第１ＣＰＵ１０６は、処理部１２０ｂの転送先のアドレスとして、処理部１２０ｃのアドレス「０ｘ１０００２０００」を処理部１２０ｂのレジスタ１２１に与える。
【００６２】
第１ＣＰＵ１０６は、処理部１２０ｃの転送先のアドレスとして、処理部１２０ｄのアドレス「０ｘ１０００３０００」を処理部１２０ｃのレジスタ１２１に与える。第１ＣＰＵ１０６は、処理部１２０ｄの転送先のアドレスとして、データ出力先のアドレス「０ｘ３０００００００」を処理部１２０ｄのレジスタ１２１に与える。
【００６３】
また、空間制御部１３５は、第１ＣＰＵ１０６からの情報に基づいて、以下の選択動作を実行させるセレクト信号を生成してセレクタ１３２及びセレクタ１３４に出力する。
【００６４】
セレクタ１３２ａは、セレクタ１３３からのデータ転送線を処理部１２０ａのデータ入力線に接続する。セレクタ１３２ｂは、セレクタ１３１ａからのデータ転送線を処理部１２０ｂのデータ入力線に接続する。セレクタ１３２ｃは、セレクタ１３１ｂからのデータ転送線を処理部１２０ｃのデータ入力線に接続する。セレクタ１３２ｄは、セレクタ１３１ｃからのデータ転送線を処理部１２０ｄのデータ入力線に接続する。セレクタ１３４は、セレクタ１３１ｄからのデータ転送線を出力画像データの出力線に接続する。
【００６５】
セレクタ１３３への入力画像データの転送先のアドレスを、処理部１２０ａのアドレス「０ｘ１０００００００」に指定すると、セレクタ１３３は、入力画像データの入力線とセレクタ１３２ａへのデータ転送線を接続する。入力画像データは、セレクタ１３２ａへ転送され、セレクタ１３２ａを経由して処理部１２０ａへ入力される。
【００６６】
処理部１２０ａの画像処理部１２３は入力された画像に画像処理を施す。処理部１２０ａのマスタ部１２４は、処理済みの画像データの転送先としてアドレス「０ｘ１０００１０００」をセレクタ１３１ａに指定する。セレクタ１３１ａは、処理部１２０ａの画像データの出力線と、セレクタ１３２ｂへのデータ転送線を接続する。画像データはセレクタ１３２ｂへ転送され、セレクタ１３２ｂを経由して処理部１２０ｂへ入力される。
【００６７】
処理部１２０ｂの画像処理部１２３は入力された画像に画像処理を施す。処理部１２０ｂのマスタ部１２４は、処理済みの画像データの転送先としてアドレス「０ｘ１０００２０００」をセレクタ１３１ｂに指定する。セレクタ１３１ｂは、処理部１２０ｂの画像データの出力線と、セレクタ１３２ｃへのデータ転送線を接続する。画像データはセレクタ１３２ｃへ転送され、セレクタ１３２ｃを経由して処理部１２０ｃへ入力される。
【００６８】
処理部１２０ｃの画像処理部１２３は入力された画像に画像処理を施す。処理部１２０ｃのマスタ部１２４は、処理済みの画像データの転送先としてアドレス「０ｘ１０００３０００」をセレクタ１３１ｃに指定する。セレクタ１３１ｃは、処理部１２０ｃの画像データの出力線と、セレクタ１３２ｄへのデータ転送線を接続する。画像データはセレクタ１３２ｄへ転送され、セレクタ１３２ｄを経由して処理部１２０ｄへ入力される。
【００６９】
処理部１２０ｄの画像処理部１２３は入力された画像に画像処理を施す。処理部１２０ｄのマスタ部１２４は、処理済みの画像データの転送先としてアドレス「０ｘ３０００００００」をセレクタ１３１ｄに指定する。セレクタ１３１ｄは、処理部１２０ｄの画像データの出力線と、セレクタ１３４へのデータ転送線を接続する。画像データはセレクタ１３４へ転送され、セレクタ１３４を経由してパイプライン処理部１１０から出力される。
【００７０】
このように、第１ＣＰＵ１０６は、空間制御部１３５及びレジスタ１２１を設定することによって、処理部１２０による処理順序を設定することができる。したがって、第１ＣＰＵ１０６は、空間制御部１３５及びレジスタ１２１の設定を変更することで、処理部１２０による処理順序を変更することができる。
【００７１】
また、第１ＣＰＵ１０６は、セレクタ１３２及びセレクタ１３４の設定のための情報を空間制御部１３５に与え、レジスタ１２１にアドレス情報を与えることで、処理部１２０の各々の使用及び不使用を設定することができる。
【００７２】
例えば、処理部１２０ｂを使用せず、処理部１２０ａ、１２０ｃ及び１２０ｄの順に、各処理部１２０が画像データを処理するようにパイプライン処理部１１０を構成する場合を想定する。
【００７３】
この場合、第１ＣＰＵ１０６は、処理部１２０ａの転送先のアドレスとして、処理部１２０ｃのアドレス「０ｘ１０００２０００」を処理部１２０ａのレジスタ１２１に与える。第１ＣＰＵ１０６は、処理部１２０ｃの転送先のアドレスとして、処理部１２０ｄのアドレス「０ｘ１０００３０００」を処理部１２０ｃのレジスタ１２１に与える。第１ＣＰＵ１０６は、処理部１２０ｄの転送先のアドレスとして、データ出力先のアドレス「０ｘ３０００００００」を処理部１２０ｄのレジスタ１２１に与える。
【００７４】
また、空間制御部１３５は、第１ＣＰＵ１０６からの情報に基づいて、以下の選択動作を実行させるセレクト信号を生成してセレクタ１３２及びセレクタ１３４に出力する。
【００７５】
セレクタ１３２ａは、セレクタ１３３からのデータ転送線を処理部１２０ａのデータ入力線に接続する。セレクタ１３２ｃは、セレクタ１３１ａからのデータ転送線を処理部１２０ｃのデータ入力線に接続する。セレクタ１３２ｄは、セレクタ１３１ｃからのデータ転送線を処理部１２０ｄのデータ入力線に接続する。セレクタ１３４は、セレクタ１３１ｄからのデータ転送線を出力画像データの出力線に接続する。
【００７６】
第１ＣＰＵ１０６は、空間制御部１３５及びレジスタ１２１を設定することによって、処理部１２０の使用及び不使用を変更することができる。したがって、第１ＣＰＵ１０６は、空間制御部１３５及びレジスタ１２１の設定を変更することで、パイプラインステージの段数を変更することができる。
【００７７】
本実施例によれば、パイプライン処理部１１０の各パイプラインステージで行う処理の順序やパイプラインステージの段数を容易に変更することができる。したがって、パイプラインステージで行う処理の実行順序の自由度が向上する。
【００７８】
例えば、画像処理装置１０２が、画像入力装置１０１で読み取ったカラー画像の色を画像読取装置１００内の処理で使用するための色に合わせる色合わせ処理を行う場合がある。この場合に画像処理装置１０２は、色変更処理、ガンマ変換処理及び強調処理の順序でこれらの処理を実行する。
【００７９】
また、画像処理装置１０２が、最終的に出力する画像データの色空間を所定の空間に変換する色空間変換処理を行う場合がある。この場合に行う処理順序は、ガンマ変換処理、色変更処理、及び強調処理の順であり、上記色合わせ処理と処理順序が異なる。
【００８０】
本実施例によれば、第１ＣＰＵ１０６が処理部１２０による処理順序を変更することによって、あるパイプライン処理部１１０で行う処理を、例えば、上記色合わせ処理から上記色空間変換処理に容易に変更できるようになる。
【００８１】
＜２．第２実施例＞
図４は、画像処理装置１０２の第２例の機能ブロック図である。図２に示す構成要素と同様の構成要素には図２で使用した参照符号と同じ参照符号を付す。画像処理装置１０２は、画像入力装置１０１又は第１画像メモリ１０３から入力される画像データを最前段のパイプラインステージの処理部１２０に入力するための構成を備える。また、画像処理装置１０２は、第１画像メモリ１０３から画像データを読み出し、最前段のパイプラインステージの処理部１２０に入力するための構成を備える。
【００８２】
画像処理装置１０２は、最後段のパイプラインステージの処理部１２０から第１画像メモリ１０３に画像データを書き込むための構成を備える。画像処理装置１０２は、パイプライン処理部１１０により処理された後に第１画像メモリ１０３に書き込まれた画像データを、画像処理装置１０２から出力するための構成を備える。
【００８３】
なお、以下の説明において最前段のパイプラインステージの処理部を「最前段の処理部」と表記することがある。また、最後段のパイプラインステージの処理部を「最後段の処理部」と表記することがある。
【００８４】
このため、画像処理装置１０２は、ブリッジ部１５０とメモリコントローラ１５１を備える。パイプライン処理部１１０は、読出部１４０を備える。共通バス１３０は、マスタ型セレクトコネクタ１３６と、スレーブ型セレクトコネクタ１６１及び１６２を備える。以下の説明において、マスタ型セレクトコネクタ１３６並びにスレーブ型セレクトコネクタ１６１及び１６２を、それぞれ「セレクタ１３６」、「セレクタ１６１」及び「セレクタ１６２」と表記することがある。
【００８５】
読出部１４０は、メモリコントローラ１５１を介して第１画像メモリ１０３から画像データを読み出しセレクタ１３６へ出力する。セレクタ１３６は、読出部１４０が指定するアドレス情報に従って、読出部１４０が出力される画像データの転送先を、処理部１２０ｂ〜１２０ｄの間で切り替える。
【００８６】
セレクタ１３６には、読出部１４０からの画像データの出力線と、セレクタ１３２ｂ〜１３２ｄへのデータ転送線が接続されている。セレクタ１３６は、読出部１４０が指定するアドレス情報に従ってこれらデータ転送線のいずれかを選択して出力線に接続する。
【００８７】
ブリッジ部１５０は、画像入力装置１０１又は第１画像メモリ１０３から入力される画像データをセレクタ１３３へ出力する。セレクタ１３３は、ブリッジ部１５０が指定するアドレス情報に従って、ブリッジ部１５０によるデータ入力時期において入力画像データの転送先を処理部１２０ｂ〜１２０ｄの間で切り替える。
【００８８】
セレクタ１３３には、ブリッジ部１５０との間で画像データを送受信するための第１データ転送線と、セレクタ１３２ｂ〜１３２ｄへ画像データを送信するための第２データ転送線が接続される。ブリッジ部１５０によるデータ入力時期において、セレクタ１３３は、アドレス情報に従ってこれら第２データ転送線のいずれかを選択して第１データ転送線に接続する。
【００８９】
また、セレクタ１３３には、メモリコントローラ１５１を介して第１画像メモリ１０３から読み出されるデータをセレクタ１６２からセレクタ１３３へ転送する第３データ転送線が接続される。ブリッジ部１５０からのデータ出力時期において、セレクタ１３３は、アドレス情報に従って第３データ転送線と第１データ転送線とを接続する。
【００９０】
セレクタ１３２ｂは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ｂへ入力する画像データの転送元を、読出部１４０、処理部１２０ｃ及び１２０ｄ並びにブリッジ部１５０の間で切り替える。セレクタ１３２ｂには、処理部１２０ｂへの画像データの入力線と、読出部１４０、セレクタ１３１ｃ及び１３１ｄ並びにセレクタ１３３からのデータ転送線が接続されている。セレクタ１３２ｂは、空間制御部１３５から受信するセレクト信号に従ってこれらデータ転送線のいずれかを選択して入力線に接続する。
【００９１】
同様に、セレクタ１３２ｃは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ｃへ入力する画像データの転送元を、読出部１４０、処理部１２０ｂ及び１２０ｄ並びにブリッジ部１５０の間で切り替える。セレクタ１３２ｄは、空間制御部１３５から受信するセレクト信号に従って、処理部１２０ｄへ入力する画像データの転送元を、読出部１４０、処理部１２０ｂ及び１２０ｃ並びにブリッジ部１５０の間で切り替える。
【００９２】
メモリコントローラ１５１は、第１画像メモリ１０３への画像データの書込動作及び第１画像メモリ１０３からの画像データの読出動作を制御する。メモリコントローラ１５１は、第１画像メモリ１０３からデータを読み出す読出アドレス及びデータを書き込む書込アドレスを指定するためのアドレス線１５２に接続される。
【００９３】
セレクタ１６１は、空間制御部１３５からのセレクト信号に従って、読出部１４０、処理部１２０ｂ〜１２０ｄ及びブリッジ部１５０のいずれで第１画像メモリ１０３のアドレスを指定するかを切り替える。
【００９４】
セレクタ１６１には、読出部１４０及びブリッジ部１５０がそれぞれ第１画像メモリ１０３の読出アドレスを指定するアドレス線１６０ａ及び１６０ｅが接続される。セレクタ１６１には、処理部１２０ｂ〜１２０ｄがそれぞれ第１画像メモリ１０３の書込アドレスを指定するアドレス線１６０ｂ〜１６０ｄが接続される。
【００９５】
セレクタ１６１は、空間制御部１３５からのセレクト信号に従って、第１画像メモリ１０３からのデータ読出時期におけるアドレス線１５２の接続先を、アドレス線１６０ａと１６０ｅの間で切り替える。セレクタ１６１は、セレクト信号に従ってこれらアドレス線１６０ａ及び１６０ｅのいずれかを選択して、アドレス線１５２に接続する。
【００９６】
セレクタ１６１は、空間制御部１３５からのセレクト信号に従って、第１画像メモリ１０３へのデータ書込時期におけるアドレス線１５２の接続先を、アドレス線１６０ｂ〜１６０ｄの間で切り替える。セレクタ１６１は、セレクト信号に従ってこれらアドレス線１６０ｂ〜１６０ｄのいずれかを選択して、アドレス線１５２に接続する。
【００９７】
セレクタ１３１ｂは、処理部１２０ｂが指定するアドレス情報に従って、処理部１２０ｂから出力される画像データの転送先を、処理部１２０ｃ及び１２０ｄ並びに第１画像メモリ１０３の間で切り替える。セレクタ１３１ｂには、処理部１２０ｂからの画像データの出力線と、セレクタ１３２ｃ、１３２ｄ及び１６２へのデータ転送線が接続されている。セレクタ１３１ｂは、処理部１２０ｂが指定するアドレス情報に従って、これらデータ転送線のいずれかを選択して出力線に接続する。
【００９８】
同様に、セレクタ１３１ｃは、処理部１２０ｃが指定するアドレス情報に従って、処理部１２０ｃから出力される画像データの転送先を、処理部１２０ｂ及び１２０ｄ並びに第１画像メモリ１０３の間で切り替える。セレクタ１３１ｄは、処理部１２０ｄが指定するアドレス情報に従って、処理部１２０ｄから出力される画像データの転送先を、処理部１２０ｂ及び１２０ｃ並びに第１画像メモリ１０３の間で切り替える。
【００９９】
メモリコントローラ１５１は、第１画像メモリ１０３からの読出データ及び第１画像メモリ１０３からの書込データを転送するためのデータ線１５３に接続される。
【０１００】
セレクタ１６２は、空間制御部１３５からのセレクト信号に従って、第１画像メモリ１０３からのデータ読出時期における読出データの転送先を、読出部１４０及びブリッジ部１５０との間で切り替える。また、セレクタ１６２は、空間制御部１３５からのセレクト信号に従って、第１画像メモリ１０３へのデータ書込時期における書込データの転送元を、処理部１２０ｂ〜１２０ｄの間で切り替える。
【０１０１】
セレクタ１６２には、読出部１４０へのデータ転送線と、セレクタ１３３への第３データ転送線と、セレクタ１３１ｂ〜１３１ｄからのデータ転送線が接続される。
【０１０２】
セレクタ１６２は、空間制御部１３５からのセレクト信号に従って、第１画像メモリ１０３からのデータ読出時期におけるデータ線１５３の接続先を、読出部１４０へのデータ転送線及びセレクタ１３３への第３データ転送線の間で切り替える。セレクタ１６２は、セレクト信号に従って読出部１４０へのデータ転送線及びセレクタ１３３への第３データ転送線のいずれかを選択して、データ線１５３に接続する。
【０１０３】
セレクタ１６２は、空間制御部１３５からのセレクト信号に従って、第１画像メモリ１０３へのデータ書込時期におけるデータ線１５３の接続先を、セレクタ１３１ｂ〜１３１ｄからのデータ転送線の間で切り替える。セレクタ１６２は、セレクト信号に従ってこれらのデータ転送線のいずれかを選択して、データ線１５３に接続する。
【０１０４】
図５は、読出部１４０の第１例の機能ブロック図である。読出部１４０は、レジスタ１４１と、第１マスタ部１４２と、バッファ１４３と、第２マスタ部１４４を備える。
【０１０５】
読出部１４０による第１画像メモリ１０３からの画像データの読み出しを行う場合には、第１ＣＰＵ１０６から受信した設定情報がレジスタ１４１に格納される。本実施例では、設定情報は、例えば、読出部１４０が第１画像メモリ１０３から画像データを読み出すアドレス範囲の先頭アドレス及び長さと、読み出した画像データの転送先の処理部１２０のアドレス情報を含んでいてよい。
【０１０６】
第１マスタ部１４２は、第１画像メモリ１０３から画像データを読み出すアドレス範囲の先頭アドレスと長さをレジスタ１４１から取得する。第１マスタ部１４２は、アドレス範囲の先頭アドレス及び長さとこれまで読み出したデータ量に基づいて読出アドレスを決定し、セレクタ１６１へ出力する。
【０１０７】
セレクタ１６１は、空間制御部１３５からのセレクト信号に従って読出アドレスをメモリコントローラ１５１へ転送する。メモリコントローラ１５１は、第１画像メモリ１０３のこの読出アドレスから画像データを読み出すとセレクタ１６２へ転送する。セレクタ１６２は、空間制御部１３５からのセレクト信号に従って画像データを読出部１４０へ転送する。
【０１０８】
第１マスタ部１４２は、セレクタ１６２から画像データを受信するとバッファ１４３に入力する。バッファ１４３は、画像データを第２マスタ部１４４に入力する。
【０１０９】
第２マスタ部１４４は、画像データの転送先の処理部１２０のアドレス情報をレジスタ１４１から取得する。第２マスタ部１４４は、レジスタ１４１から取得したアドレス情報をセレクタ１３６に与えることにより、画像データの転送先の処理部１２０を指定する。そして、第２マスタ部１４４は画像データをセレクタ１３６に送信する。
【０１１０】
図６は、処理部１２０ｂの第２例の機能ブロック図である。他の処理部１２０ｃ及び１２０ｄも同様の構成を有する。図３に示す構成要素と同様の構成要素には図３で使用した参照符号と同じ参照符号を付す。
【０１１１】
処理部１２０ｂによる第１画像メモリ１０３への画像データの書き込みを行う場合には、第１ＣＰＵ１０６からの設定情報は、画像データを書き込むアドレス範囲の先頭アドレス及び長さを含んでいてよい。また、設定情報は、メモリコントローラ１５１に与えられる共通バス１３０上のアドレス情報を含んでいてよい。
【０１１２】
マスタ部１２４は、第１画像メモリ１０３への画像データの書き込むアドレス範囲の先頭アドレスと長さをレジスタ１２１から取得する。マスタ部１２４は、アドレス範囲の先頭アドレス及び長さとこれまで書き込んだデータ量に基づいて書込アドレスを決定し、セレクタ１６１へ出力する。
【０１１３】
また、マスタ部１２４は、メモリコントローラ１５１のアドレス情報をレジスタ１２１から取得する。マスタ部１２４は、レジスタ１２１から取得したメモリコントローラ１５１のアドレス情報をセレクタ１３１ｂに与えることにより第１画像メモリ１０３を転送先に指定する。そして、マスタ部１２４は、処理済みの画像データをセレクタ１３１ｂに送信する。
【０１１４】
セレクタ１３１ｂは、アドレス情報に従って画像データをセレクタ１６２に転送し、セレクタ１６２は、空間制御部１３５からのセレクト信号に従って画像データをメモリコントローラ１５１へ転送する。セレクタ１６１は、空間制御部１３５からのセレクト信号に従って書込アドレスをメモリコントローラ１５１へ転送する。メモリコントローラ１５１は、指定された書込アドレスに画像データを書き込む。
【０１１５】
次に、パイプライン処理部１１０を構成する第１ＣＰＵ１０６の設定例を説明する。図７〜図１０は、パイプライン処理部１１０の構成例の第１例の説明図である。第１例のパイプライン処理部１１０では、ブリッジ部１５０は、画像入力装置１０１又は第１画像メモリ１０３から入力される画像データを受信する。
【０１１６】
ブリッジ部１５０は、画像データを最前段の処理部１２０ｃに入力する。処理部１２０ｃ、１２０ｄ及び１２０ｂの順に、各処理部１２０が画像データを処理する。最後段の処理部１２０ｂが処理済みの画像データを第１画像メモリ１０３に書き込む。処理部１２０ｂ、１２０ｃ及び１２０ｄ並びにメモリコントローラ１５１の転送先の共通バス１３０上のアドレスをそれぞれ以下のように定める。
【０１１７】
処理部１２０ｂ：「０ｘ１０００１０００」
処理部１２０ｃ：「０ｘ１０００２０００」
処理部１２０ｄ：「０ｘ１０００３０００」
メモリコントローラ１５１：「０ｘ４０００００００」
【０１１８】
第１ＣＰＵ１０６は、ブリッジ部１５０に対して、処理部１２０ｃのアドレス「０ｘ１０００２０００」をブリッジ部１５０の転送先のアドレスとして指定する。第１ＣＰＵ１０６は、処理部１２０ｃの転送先のアドレスとして、処理部１２０ｄのアドレス「０ｘ１０００３０００」を処理部１２０ｃのレジスタ１２１に与える。
【０１１９】
第１ＣＰＵ１０６は、処理部１２０ｄの転送先のアドレスとして、処理部１２０ｂのアドレス「０ｘ１０００１０００」を処理部１２０ｄのレジスタ１２１に与える。第１ＣＰＵ１０６は、処理部１２０ｂの転送先のアドレスとして、メモリコントローラ１５１のアドレス「０ｘ４０００００００」を処理部１２０ｂのレジスタ１２１に与える。また、第１ＣＰＵ１０６は、処理済みの画像データを第１画像メモリ１０３に書き込む書込アドレスを処理部１２０ｂのレジスタ１２１に与える。
【０１２０】
空間制御部１３５は、第１ＣＰＵ１０６からの情報に基づいて、以下の選択動作を実行させるセレクト信号を生成してセレクタ１３２、セレクタ１６１及びセレクタ１６２に出力する。
【０１２１】
セレクタ１３２ｃは、セレクタ１３３からのデータ転送線を処理部１２０ｃのデータ入力線に接続する。セレクタ１３２ｄは、セレクタ１３１ｃからのデータ転送線を処理部１２０ｄのデータ入力線に接続する。セレクタ１３２ｂは、セレクタ１３１ｄからのデータ転送線を処理部１２０ｂのデータ入力線に接続する。
【０１２２】
セレクタ１６１は、第１画像メモリ１０３へのデータ書込時期において処理部１２０ｂのアドレス線１６０ｂをアドレス線１５２に接続する。セレクタ１６２は、第１画像メモリ１０３へのデータ書込時期においてセレクタ１３１ｂからのデータ転送線をデータ線１５３に接続する。
【０１２３】
上記設定によって共通バス１３０に下記（１）〜（５）の経路が設定される。
【０１２４】
（１）ブリッジ部１５０は、入力された画像データの転送先として、アドレス「０ｘ１０００２０００」をセレクタ１３３に指定する。セレクタ１３３は、ブリッジ部１５０の第１データ転送線とセレクタ１３２ｃへのデータ転送線を接続する。入力画像データはセレクタ１３２ｃへ転送され、セレクタ１３２ｃを経由して処理部１２０ｃへ入力される（図７）。
【０１２５】
（２）処理部１２０ｃの画像処理部１２３は入力された画像に画像処理を施す。処理部１２０ｃのマスタ部１２４は、処理済みの画像データの転送先として、アドレス「０ｘ１０００３０００」をセレクタ１３１ｃに指定する。セレクタ１３１ｃは、処理部１２０ｃの画像データの出力線と、セレクタ１３２ｄへのデータ転送線を接続する。画像データはセレクタ１３２ｄへ転送され、セレクタ１３２ｄを経由して処理部１２０ｄへ入力される（図８）。
【０１２６】
（３）処理部１２０ｄの画像処理部１２３は入力された画像に画像処理を施す。処理部１２０ｄのマスタ部１２４は、処理済みの画像データの転送先として、アドレス「０ｘ１０００１０００」をセレクタ１３１ｄに指定する。セレクタ１３１ｄは、処理部１２０ｄの画像データの出力線と、セレクタ１３２ｂへのデータ転送線を接続する。画像データはセレクタ１３２ｂへ転送され、セレクタ１３２ｂを経由して処理部１２０ｂへ入力される（図９）。
【０１２７】
（４）処理部１２０ｂの画像処理部１２３は、入力された画像に画像処理を施す。処理部１２０ｂのマスタ部１２４は、処理済みの画像データを第１画像メモリ１０３に書き込む書込アドレスをアドレス線１６０ｂにセットする。セレクタ１６１は、処理部１２０ｂにより指定された書込アドレスをメモリコントローラ１５１へ転送する（図１０）。
【０１２８】
（５）処理部１２０ｂのマスタ部１２４は、処理済みの画像データの転送先として、アドレス「０ｘ４０００００００」をセレクタ１３１ｂに指定する。セレクタ１３１ｂは、処理部１２０ｂの画像データの出力線と、セレクタ１６２へのデータ転送線を接続する。画像データはセレクタ１６２へ転送され、セレクタ１６２を経由してメモリコントローラ１５１に転送される。メモリコントローラ１５１は、指定された書込アドレスに画像データを書き込む（図１０）。
【０１２９】
図１１及び図１２は、パイプライン処理部１１０の構成例の第２例の説明図である。第２例のパイプライン処理部１１０では、読出部１４０は、第１画像メモリ１０３から画像データを読み出して、画像データを最前段の処理部１２０ｃに入力する。処理部１２０ｃ、１２０ｄ及び１２０ｂの順に、各処理部１２０が画像データを処理する。最後段の処理部１２０ｂが処理済みの画像データを第１画像メモリ１０３に書き込む。
【０１３０】
第１ＣＰＵ１０６は、読出部１４０の転送先のアドレスとして、処理部１２０ｃのアドレス「０ｘ１０００２０００」を読出部１４０のレジスタ１４１に与える。第１ＣＰＵ１０６は、第１画像メモリ１０３から画像データを読み出す読出アドレスを読出部１４０のレジスタ１４１に与える。処理部１２０ｂ〜１２０ｄのレジスタ１２１に与えられる設定は、第１例の構成例と同様である。
【０１３１】
空間制御部１３５は、第１ＣＰＵ１０６からの情報に基づいて、以下の選択動作を実行させるセレクト信号を生成してセレクタ１３２ｃ、セレクタ１６１及びセレクタ１６２に出力する。
【０１３２】
セレクタ１３２ｃは、セレクタ１３６からのデータ転送線を処理部１２０ｃのデータ入力線に接続する。セレクタ１３２ｂ及び１３２ｄの接続状態は、第１例の構成例と同様である。
【０１３３】
セレクタ１６１は、第１画像メモリ１０３からのデータ読出時期において読出部１４０のアドレス線１６０ａをアドレス線１５２に接続する。セレクタ１６１は、第１画像メモリ１０３へのデータ書込時期において処理部１２０ｂのアドレス線１６０ｂをアドレス線１５２に接続する。
【０１３４】
セレクタ１６２は、第１画像メモリ１０３からのデータ読出時期において読出部１４０へのデータ転送線をデータ線１５３に接続する。セレクタ１６２は、第１画像メモリ１０３へのデータ書込時期においてセレクタ１３１ｂからのデータ転送線をデータ線１５３に接続する。
【０１３５】
上記設定によって共通バス１３０に下記（６）〜（８）の経路が設定される。
【０１３６】
（６）読出部１４０の第１マスタ部１４２は、入力する画像データを第１画像メモリ１０３から読み出す読出アドレスをアドレス線１６０ａにセットする。セレクタ１６１は、読出部１４０により指定された読出アドレスをメモリコントローラ１５１へ転送する（図１１）。
【０１３７】
（７）メモリコントローラ１５１は、第１画像メモリ１０３のこの読出アドレスから画像データを読み出すとセレクタ１６２へ転送する。画像データは、セレクタ１６２を経由して読出部１４０へ入力される（図１１）。
【０１３８】
（８）読出部１４０の第２マスタ部１４４は、読み出した画像データの転送先として、アドレス「０ｘ１０００２０００」をセレクタ１３６に指定する。セレクタ１３６は、読出部１４０の画像データの出力線と、セレクタ１３２ｃへのデータ転送線を接続する。画像データはセレクタ１３２ｃへ転送され、セレクタ１３２ｃを経由して処理部１２０ｃへ入力される（図１２）。その後のパイプライン処理部１１０の動作は、図８〜図１０を参照して説明した上記動作と同様である。
【０１３９】
図１３は、パイプライン処理部１１０の構成例の第３例の説明図である。第３例のパイプライン処理部１１０では、パイプライン処理部１１０により処理された後に第１画像メモリ１０３に書き込まれた画像データを、ブリッジ部１５０が読み出して、画像処理装置１０２から出力する。
【０１４０】
なお、上記の第１例の構成に下記の第３例の構成を加えてもよい。この場合に、画像入力装置１０１又は第１画像メモリ１０３から入力画像データを受信するブリッジ部１５０が、処理済みの画像データを第１画像メモリ１０３から読み出して、パイプライン処理部１１０から出力する。
【０１４１】
第１ＣＰＵ１０６は、第１画像メモリ１０３から読み出された画像データを送信する転送元のアドレスとして、メモリコントローラ１５１のアドレス「０ｘ４０００００００」を、ブリッジ部１５０に対して指定する。また、第１ＣＰＵ１０６は、第１画像メモリ１０３から画像データを読み出す読出アドレスを、ブリッジ部１５０に対して指定する。
【０１４２】
空間制御部１３５は、第１ＣＰＵ１０６からの情報に基づいて、以下の選択動作を実行させるセレクト信号を生成してセレクタ１６１及び１６２に出力する。セレクタ１６１は、第１画像メモリ１０３からのデータ読出時期においてブリッジ部１５０のアドレス線１６０ｅをアドレス線１５２に接続する。セレクタ１６２は、第１画像メモリ１０３からのデータ読出時期においてデータ線１５３を、セレクタ１３３への第３データ転送線に接続する。
【０１４３】
上記設定によって共通バス１３０に下記（９）及び（１０）の経路が設定される。
【０１４４】
（９）ブリッジ部１５０は、出力する画像データを第１画像メモリ１０３から読み出す読出アドレスをアドレス線１６０ｅにセットする。セレクタ１６１は、ブリッジ部１５０により指定された読出アドレスをメモリコントローラ１５１へ転送する（図１３）。
【０１４５】
（１０）ブリッジ部１５０は、第１画像メモリ１０３から読み出された画像データを送信するメモリコントローラ１５１のアドレス「０ｘ３０００００００」をセレクタ１３３に指定する。メモリコントローラ１５１は、第１画像メモリ１０３の読出アドレスから画像データを読み出すとセレクタ１６２へ転送する。画像データは、セレクタ１６２を経由してセレクタ１３３へ転送される。画像データは、セレクタ１３３を経由してブリッジ部１５０に入力される（図１３）。
【０１４６】
本実施例によれば、ブリッジ部１５０を介して入力した画像データを、最前段の処理部に設定された任意の処理部１２０に入力することができる。また、最後段の処理部に設定された任意の処理部１２０により第１画像メモリ１０３に書き込まれた画像データをブリッジ部１５０から出力することができる。
【０１４７】
また、本実施例によれば、読出部１４０が第１画像メモリ１０３から画像データを読み出して、最前段の処理部に設定された任意の処理部１２０に入力することができる。第１画像メモリ１０３から画像データを読み出すための第１マスタ部１４２を読出部１４０のみに設けることで、第１画像メモリ１０３から画像データを読み出す機能を処理部１２０毎に設ける冗長な構成が省かれる。なお、各処理部１２０が読出部１４０と同様に第１マスタ部１４２を備え、処理部１２０が第１画像メモリから画像データを読み出すように第２実施例を変形してもよい。
【０１４８】
＜３．第３実施例＞
図１４は、画像処理装置１０２の第３例の機能ブロック図である。画像処理装置１０２は、複数のパイプライン処理部１１０ａ〜１１０ｃを備える。図４に示す構成要素と同様の構成要素には、図４で使用した参照符号と同じ参照符号を付す。
【０１４９】
パイプライン処理部１１０ａは、読出部１４０ａと処理部１２０ａ〜１２０ｃと共通バス１３０ａを備える。パイプライン処理部１１０ｂは、読出部１４０ｂと処理部１２０ｄ〜１２０ｆと共通バス１３０ｂを備える。パイプライン処理部１１０ｃは、読出部１４０ｃと処理部１２０ｇ〜１２０ｉと共通バス１３０ｃを備える。
【０１５０】
パイプライン処理部１１０ａ、読出部１４０ａ、処理部１２０ａ〜１２０ｃ及び共通バス１３０ａの構成は、図４のパイプライン処理部１１０、読出部１４０、処理部１２０ｂ〜１２０ｄ及び共通バス１３０の構成とそれぞれ同じである。パイプライン処理部１１０ｂ及び１１０ｃの構成は、パイプライン処理部１１０ａと同様である。
【０１５１】
なお、以下の説明で、パイプライン処理部１１０ａ〜１１０ｃを総称して「パイプライン処理部１１０」と表記することがある。処理部１２０ａ〜１２０ｉを総称して「処理部１２０」と表記することがある。読出部１４０ａ〜１４０ｃを総称して「読出部１４０」と表記することがある。共通バス１３０ａ〜１３０ｃを総称して「共通バス１３０」と表記することがある。
【０１５２】
パイプライン処理部１１０の各々は、パイプライン処理部１１０ａ、１１０ｂ及び１１０ｃの順で、ブリッジ部１５０から入力された画像データを処理する。なお、パイプライン処理部の順番を変えるように設定することも可能である。
【０１５３】
画像処理装置１０２は、ブリッジ部１５０と接続する共通バス１３０を、共通バス１３０ａ〜１３０ｃの間で切り替えるセレクタ１５４を備える。セレクタ１５４は、第１ＣＰＵ１０６による設定に従って空間制御部１３５が生成するセレクト信号に従って、ブリッジ部１５０と共通バス１３０ａを接続する。
【０１５４】
第１ＣＰＵ１０６は、各パイプライン処理部１１０の処理後の画像データを第１画像メモリ１０３に書き込む書込アドレスの範囲を、各パイプライン処理部１１０の最後段の処理部１２０に対してそれぞれ指定する。
【０１５５】
第１ＣＰＵ１０６は、第１画像メモリ１０３から画像データを読み出す読み出しアドレスの範囲として、パイプライン処理部１１０ａが画像データを書き込むアドレス範囲を、その後段のパイプライン処理部１１０ｂの読出部１４０ｂに対して指定する。第１ＣＰＵ１０６は、パイプライン処理部１１０ｂが画像データを書き込むアドレス範囲を、読み出しアドレスの範囲として読出部１４０ｃに対して指定する。
【０１５６】
第１ＣＰＵ１０６は、パイプライン処理部１１０ｃが画像データを書き込むアドレス範囲を、読み出しアドレスの範囲としてブリッジ部１５０に対して指定する。
【０１５７】
以上のように、セレクタ１５４の接続状態及び各パイプライン処理部１１０の書込アドレスと読出アドレスが設定されることで、ブリッジ部１５０から入力された画像データはパイプライン処理部１１０ａに入力される。パイプライン処理部１１０ａで処理された画像データは、第１画像メモリ１０３を経由してパイプライン処理部１１０ｂに入力され、パイプライン処理部１１０ｂで処理される。
【０１５８】
パイプライン処理部１１０ｂで処理された画像データは、第１画像メモリ１０３を経由してパイプライン処理部１１０ｃに入力され、パイプライン処理部１１０ｃで処理される。パイプライン処理部１１０ｃで処理された画像データは、第１画像メモリ１０３及び共通バス１３０ａを経由してブリッジ部１５０から出力される。
【０１５９】
本実施例によれば、最前段の処理部及び最後段の処理部が任意に設定されるパイプライン処理部１１０を複数連結することができる。また、第１ＣＰＵ１０６は、空間制御部１３５並びにレジスタ１２１及び１４１の設定を変更することで、パイプライン処理部１１０間の処理順序及びパイプライン処理部１１０の接続数を変更することができる。
【０１６０】
＜４．第４実施例＞
図１５は、図１４に示す画像処理装置１０２の読出部１４０ｂの一例の機能ブロック図である。他の読出部１４０ａ及び１４０ｃも同様の構成を有する。図１６は、図１４に示す画像処理装置１０２の処理部１２０ｃの一例の機能ブロック図である。他の処理部１２０ａ、１２０ｂ及び１２０ｄ〜１２０ｉも同様の構成を有する。処理部１２０ｃが、パイプライン処理部１１０ａの最後段の処理部である場合を想定する。図５及び図６に示す構成要素と同様の構成要素には、図５及び図６で使用した参照符号と同じ参照符号を付す。
【０１６１】
第１画像メモリ１０３を経由して前段のパイプライン処理部１１０ａと後段のパイプライン処理部１１０ｂの間で画像データを転送する場合、読出部１４０ｂは書込が行われたアドレスからデータを読み出す。このため、読出部１４０ｂは読出アドレスが書込アドレスを追い越さないようにデータの読み出しを制御する。
【０１６２】
処理部１２０ｃは、書込アドレスが後段のパイプライン処理部１１０ｂの読出アドレスを追い越して、まだ読み出されていないデータが上書きされないようにデータの書き込みを制御する。
【０１６３】
このため、読出部１４０ｂは、読出量通知部１４５と、書込手段選択部１４６と、読出停止部１４７を備える。処理部１２０ｃは、書込量通知部１２５と、読出手段選択部１２６と、書込停止部１２７を備える。
【０１６４】
読出部１４０ｂのレジスタ１４１には、前段のパイプライン処理部１１０ａの最後段の処理部１２０ｃの指定情報と、所定数の画素からなる１ラインの画素数の指定情報が格納される。ラインの画素数は、例えば画像データの主方向の画素数であってよい。これら指定情報は第１ＣＰＵ１０６によって指定される。
【０１６５】
読出部１４０のバッファ１４３は、読出部１４０が第１画像メモリ１０３から読み出した画像データのデータ量を、読出量通知部１４５及びに読出停止部１４７に通知する。読出量通知部１４５及び読出停止部１４７は、読み出した画像データのデータ量とラインの画素数に基づき第１画像メモリ１０３から読み出されたライン数を算出する。読出量通知部１４５は、読み出されたライン数を示す読出量を、他のパイプライン処理部１１０ａ及び１１０ｃの処理部１２０へ通知する。各読出部１４０と、他のパイプライン処理部１１０の処理部１２０との間は、読出量を通知するための読出量通知回線１７１で接続される。
【０１６６】
また、ブリッジ部１５０と各パイプライン処理部１１０の処理部１２０との間も、ブリッジ部１５０が第１画像メモリ１０３から読み出した読出量を通知するための読出量通知回線１７１で接続される。
【０１６７】
処理部１２０ｃのレジスタ１２１には、処理部１２０ｃが第１画像メモリ１０３に書き込んだ画像データを読み出す後段装置の指定情報と、１ラインの画素数の指定情報が格納される。これら指定情報は第１ＣＰＵ１０６によって指定される。
【０１６８】
例えば、パイプライン処理部１１０ａの処理の直後に後段のパイプライン処理部１１０ｂが処理を行う場合には、後段装置は、パイプライン処理部１１０ｂの読出部１４０ｂである。例えば、パイプライン処理部１１０ａの処理の直後にブリッジ部１５０が第１画像メモリ１０３から画像データを読み出して出力する場合には、後段装置はブリッジ部１５０である。
【０１６９】
処理部１２０ｃの画像処理部１２３は、処理部１２０ｃが第１画像メモリ１０３に書き込んだ画像データのデータ量を、書込量通知部１２５及び書込停止部１２７に通知する。書込量通知部１２５及び書込停止部１２７は、書き込んだ画像データのデータ量とラインの画素数に基づき第１画像メモリ１０３に書き込まれたライン数を算出する。書込量通知部１２５は、書き込まれたライン数を示す書込量を、他のパイプライン処理部１１０ｂ及び１１０ｃの読出部１４０へ通知する。各処理部１２０と、他のパイプライン処理部１１０の読出部１４０との間は、書込量を通知するための書込量通知回線１７２で接続される。
【０１７０】
また、ブリッジ部１５０と各パイプライン処理部１１０の処理部１２０との間も、処理部１２０が第１画像メモリ１０３に書き込んだ書込量を通知するための書込量通知回線１７２で接続される。
【０１７１】
読出部１４０の書込手段選択部１４６は、前段のパイプライン処理部１１０ａの最後段の処理部１２０ｃの書込量が通知される書込量通知回線１７２を選択し、選択された回線で通知された書込量を読出停止部１４７に通知する。処理部１２０ｃの読出手段選択部１２６は、後段装置の読出量が通知される読出量通知回線１７１を選択し、選択された回線で通知された読出量を書込停止部１２７に通知する。
【０１７２】
図１７は、画像処理装置１０２の第４例の機能ブロック図である。図１７は、全ての読出量通知回線１７１のうち読出手段選択部１２６によって選択されたものの接続関係を示している。また、図１７は全ての書込量通知回線１７２のうち書込手段選択部１４６によって選択されたものの接続関係を示している。図１７の接続関係は、パイプライン処理部１１０ａ〜１１０ｃの最後段の処理部が、それぞれ処理部１２０ｃ、１２０ｆ及び１２０ｉである場合の例示である。
【０１７３】
読出部１４０ｂと処理部１２０ｃとが読出量通知回線１７１及び書込量通知回線１７２で接続される。読出部１４０ｃと処理部１２０ｆとが読出量通知回線１７１及び書込量通知回線１７２で接続される。ブリッジ部１５０と処理部１２０ｉとが読出量通知回線１７１及び書込量通知回線１７２で接続される。
【０１７４】
図１５及び図１６を参照する。読出停止部１４７は、読出部１４０ｂが第１画像メモリ１０３から読み出した読出量と、書込手段選択部１４６から通知される書込量を比較する。読出停止部１４７は、読出量が書込量以上になる場合には第１画像メモリ１０３からの画像データの読み出しを停止する。読出停止部１４７は、読出量が書込量未満の場合には第１画像メモリ１０３からの画像データの読み出しを許可する。
【０１７５】
書込停止部１２７は、処理部１２０ｃが第１画像メモリ１０３へ書き込んだ書込量と、読出手段選択部１２６から通知される読出量を比較する。書込停止部１２７は、書込量が読出量以上になる場合には第１画像メモリ１０３への画像データの書き込みを停止する。書込停止部１２７は、書込量が読出量未満の場合には第１画像メモリ１０３への画像データの書き込みを許可する。
【０１７６】
本実施例によれば、第１画像メモリ１０３を経由して複数のパイプライン処理部１１０間で画像データを転送する場合、有効データの書き込みがまだ行われていないアドレスからの無効データの読出が防止できる。また、有効データの読み出しがまだ行われていないアドレスへのデータの上書きが防止される。
【０１７７】
＜５．第５実施例＞
図１８は、画像処理システム１のハードウェア構成の第２例の説明図である。図１に示す構成要素と同様の構成要素には図１で使用した参照符号と同じ参照符号を付す。
【０１７８】
画像読取装置１００は、基本画像処理装置１８０と、拡張画像処理装置１８１と、第３画像メモリ１８２を備える。拡張画像処理装置１８１は、上記の画像処理装置１０２と同様の構成を備える。拡張画像処理装置１８１は、基本画像処理装置１８０が実行しない複数の所定の画像処理をそれぞれ行う処理部１２０を含み、そのいずれかを組み合わせたパイプライン処理を行う。
【０１７９】
例えば、画像読取装置１００は、ある画像データに対しては、基本画像処理装置１８０のみで画像処理を施したデータを出力する。画像読取装置１００は、他の画像データに対しては、基本画像処理装置１８０の画像処理を施した画像データを拡張画像処理装置１８１に入力し、拡張画像処理装置１８１で更に処理された画像データを第３画像メモリ１８２へ格納する。基本画像処理装置１８０は、拡張画像処理装置１８１経由で、第３画像メモリ１８２から画像データを読み出して画像読取装置１００から出力する。
【０１８０】
＜６．第６実施例＞
図１９は、画像処理装置１０２の第５例の機能ブロック図である。図２に示す構成要素と同様の構成要素には図２で使用した参照符号と同じ参照符号を付す。画像処理装置１０２は、クロック制御部１７３を備える。クロック制御部１７３は、第１ＣＰＵ１０６による処理部１２０の使用及び不使用の設定に応じて、各処理部１２０へクロック供給を制御する。クロック制御部１７３は、使用されている処理部１２０にクロック信号を供給し、使用されていない処理部１２０へのクロック信号を供給しない。
【０１８１】
本実施例によれば、使用されていない処理部１２０の動作が止まるので消費電力を低減できる。なお、上記の第１実施例〜第５実施例にも同様にクロック制御部１７３を設けてもよい。
【０１８２】
＜７．第７実施例＞
図２０は、画像処理装置１０２の第６例の機能ブロックの説明図である。画像処理装置１０２は、パイプライン３００ａと、メモリコントローラ４００と、読出アクセスバス４０１と、書込アクセスバス４０２の制御用ＣＰＵバス４０３を備える。
【０１８３】
パイプライン３００ａは、パイプライン処理により、画像処理装置１０２に入力された画像データに所定の画像処理を施す。メモリコントローラ４００は、パイプライン３００ａから要求される第１画像メモリ１０３へのメモリアクセスを制御する。メモリコントローラ４００は、第２実施例〜第５実施例におけるメモリコントローラ１５１と等しくてもよい。
【０１８４】
読出アクセスバス４０１及び書込アクセスバス４０２は、それぞれ第１画像メモリ１０３からメモリコントローラ４００への読出データの入力バス、及びメモリコントローラ４００から第１画像メモリ１０３への書込データの出力バスである。
【０１８５】
制御用ＣＰＵバス４０３は、第１ＣＰＵ１０６から出力される各種の制御信号が流れるバスである。第１ＣＰＵ１０６は、パイプライン３００ａの設定情報は、制御用ＣＰＵバス４０３を経由して第１ＣＰＵ１０６からパイプライン３００ａへ送信され、パイプライン３００ａ内のレジスタに保持される。パイプライン３００ａにはクロック生成回路１０９からクロック信号が供給される。
【０１８６】
図２１は、パイプライン３００ａの第１例の機能ブロック図である。パイプライン３００ａは、パイプライン処理部３０１を備える。パイプライン処理部３０１は、処理部３１０ａ〜３１０ｃと、読出部３２０と、書込部３３０と、クロック制御部３４０を備える。また、パイプライン３００ａは、読出バス３０２と、処理データバス３０３と、書込バス３０４を備える。
【０１８７】
処理部３１０ａ〜３１０ｃは、それぞれ第１パイプラインステージ〜第３パイプラインステージにおいて画像データに所定の画像処理を施す。読出部３２０は、第１画像メモリ１０３から処理対象の画像データを読み出して、最前段の処理部３１０ａに入力する。書込部３３０は、最終段の処理部３１０ｃで処理された画像データを第１画像メモリ１０３に書き込む。以下の説明において処理部３１０ａ〜３１０ｃを総称して処理部「３１０」と表記することがある。また第１パイプラインステージ〜第３パイプラインステージをそれぞれ「第１ステージ」〜「第３ステージ」と表記することがある。
【０１８８】
読出バス３０２は、第１画像メモリ１０３から読み出される画像データをメモリコントローラ４００から読出部３２０へ転送するためのバスである。書込バス３０４は、第１画像メモリ１０３へ書き込まれる画像データを書込部３３０からメモリコントローラ４００へ転送するためのバスである。処理データバス３０３は、パイプライン処理部３０１内で処理対象の画像データを転送するバスである。
【０１８９】
読出バス３０２、処理データバス３０３及び書込バス３０４は、第２実施例〜第５実施例による共通バス１３０によって形成されるバスであってよい。処理部３１０は、第２実施例〜第５実施例における処理部１２０であってもよい。
【０１９０】
第２実施例〜第５実施例における最終段の処理部１２０が、書込部３３０として動作してもよい。第２実施例〜第５実施例における読出部１４０が、読出部３２０として動作してもよい。以下の実施例でも同様である。
【０１９１】
クロック制御部３４０は、処理部３１０毎に、処理部３１０に有効な画像データが入力されるか否かを判断する。クロック制御部３４０は、有効な画像データが入力される処理部３１０にクロックを供給する。クロック制御部３４０は、有効な画像データが入力されていない処理部３１０にクロックを供給しない。
【０１９２】
例えば、ある時点で処理部３１０のいずれかに有効な画像データが入力され、同時に他の処理部３１０に有効な画像データが入力されない場合、クロック制御部３４０は、前者の処理部３１０にクロックを供給し後者の処理部３１０へのクロック供給を停止する。
【０１９３】
本実施例によれば、有効な画像データが入力されていない処理部３１０の動作を止めることができるので、消費電力を低減できる。なお、以下の実施例及び添付図面において有効な画像データを「有効データ」と表記することがある。
【０１９４】
＜８．第８実施例＞
図２２は、パイプライン３００ａの第２例の機能ブロック図である。図２１に示す構成要素と同様の構成要素には図２１で使用した参照符号と同じ参照符号を付す。パイプライン３００ａは、読出制御部３２１及び書込制御部３３１を備える。読出制御部３２１は、第２実施例〜第５実施例における読出部１４０であってもよい。第２実施例〜第５実施例における処理部１２０が書込制御部３３１として動作してもよい。以下の実施例でも同様である。
【０１９５】
図２３は、読出制御部３２１の第１例の機能ブロック図である。読出制御部３２１は、上述の読出部３２０と、出力部３２２と、レジスタ３２３を備える。レジスタ３２３は、第１ＣＰＵ１０６から受信した読出制御部３２１の設定情報を格納する。設定情報は、例えば読出制御部３２１の初期設定において与えられ、例えば、読出部３２０が第１画像メモリ１０３から画像データを読み出すアドレス範囲の先頭アドレス及び長さと、処理対象のデータのサイズを含んでいてよい。
【０１９６】
読出部３２０は、アドレス範囲の先頭アドレス及び長さと、すでに読出済みのデータ量に基づいて読出アドレスを決定し、第１画像メモリ１０３からデータを読み出す。出力部３２２は、読み出されたデータを第１ステージの処理部３１０ａへ出力する。
【０１９７】
また、出力部３２２は有効フラグを第１ステージに出力する。読出部３２０が第１画像メモリ１０３から有効データを読み出す場合に、出力部３２２は、有効データの出力期間と有効フラグの値を「オン」にする期間を同期させる。読出部３２０が第１画像メモリ１０３から有効データを読み出さない場合に、出力部３２２は、有効データを出力しない期間と有効フラグの値を「オフ」にする期間を同期させる。
【０１９８】
図２２を参照する。書込制御部３３１は、上述の書込部３３０と、レジスタ３３２を備える。レジスタ３３２は、第１ＣＰＵ１０６から受信した書込制御部３３１の設定情報を格納する。設定情報は、例えば書込制御部３３１の初期設定において与えられ、例えば、書込部３３０が第１画像メモリ１０３へ画像データを書き出すアドレス範囲の先頭アドレス及び長さと、処理対象のデータのサイズを含んでいてよい。
【０１９９】
パイプライン３００ａは、転送路３４１ａ〜３４１ｃと、保持部３４２ａ〜３４２ｃと、ゲート部３４３ａ〜３４３ｃを備える。以下の説明において転送路３４１ａ〜３４１ｃを総称して「転送路３４１」と表記することがある。保持部３４２ａ〜３４２ｃを総称して「保持部３４２」と表記することがある。ゲート部３４３ａ〜３４３ｃを総称して「ゲート部３４３」と表記することがある。転送路３４１、保持部３４２、ゲート部３４３及び読出制御部３２１の出力部３２２は、クロック制御部３４０を形成する。
【０２００】
第１ステージに入力された有効フラグは、第１ステージに設けられた保持部３４２ａに保持される。保持部３４２ａは、受信した有効フラグを処理部３１０ａの画像データの処理期間の間保持し、受信した有効フラグをこの処理期間分だけ遅延させて第２ステージに出力する。転送路３４１ａは、保持部３４２ａから出力された有効フラグを、第２ステージに設けられた保持部３４２ｂへ転送する。
【０２０１】
保持部３４２ｂは、受信した有効フラグを処理部３１０ｂの画像データの処理期間の間保持し、受信した有効フラグをこの処理期間分だけ遅延させて第３ステージに出力する。転送路３４１ｂは、保持部３４２ｂから出力された有効フラグを、第３ステージに設けられた保持部３４２ｃへ転送する。
【０２０２】
保持部３４２ｃは、受信した有効フラグを処理部３１０ｃの画像データの処理期間の間保持し、受信した有効フラグをこの処理期間分だけ遅延させて書込制御部３３１へ出力する。転送路３４１ｃは、保持部３４２ｃから出力された有効フラグを、書込制御部３３１へ転送する。
【０２０３】
上記構成により、あるパイプラインステージに有効データが入力される期間と、入力される有効フラグの値が「オン」である期間が同期する。ゲート部３４３ａは、第１ステージに入力される有効フラグとクロック信号を受信する。有効フラグが「オン」の期間に処理部３１０ａへクロック信号を供給し、有効フラグが「オフ」の期間に処理部３１０ａへのクロック信号の供給を停止する。ゲート部３４３は、例えば、有効フラグとクロック信号との論理積を処理部３１０へ出力する論理回路であってよい。
【０２０４】
ゲート部３４３ｂは、第２ステージに入力される有効フラグとクロック信号を受信する。ゲート部３４３ｂは、有効フラグが「オン」の期間に処理部３１０ｂへクロック信号を供給し、第２ステージに入力される有効フラグが「オフ」の期間に処理部３１０ｂへのクロック信号の供給を停止する。ゲート部３４３ｃは、第３ステージに入力される有効フラグとクロック信号を受信する。ゲート部３４３ｃは、有効フラグが「オン」の期間に処理部３１０ｃへクロック信号を供給し、第３ステージに入力される有効フラグが「オフ」の期間に処理部３１０ｃへのクロック信号の供給を停止する。クロック信号の供給が停止すると、処理部３１０は現在処理中の有効データを保持した状態で動作を停止する。
【０２０５】
図２４は、画像読取装置１００の動作の一例の説明図である。ステップＳ１０において、第１ＣＰＵ１０６は、読出制御部３２１及び書込制御部３３１のレジスタ３２３及び３３２の値を初期設定する。
【０２０６】
ステップＳ１１において、第１ＣＰＵ１０６は、読出制御部３２１の動作を許可するための読出制御部３２１の設定を行う。読出制御部３２１のレジスタ３２３は、読出制御部３２１の動作を許可されているか、読出制御部３２１が動作を停止するように設定されているかを記憶していてよい。
【０２０７】
ステップＳ１２において、パイプライン３００ａは画像データの処理を行う。ステップＳ１２の動作は図２５を参照して後述する。ステップＳ１３において、第１ＣＰＵ１０６は、書込制御部３３１による完了割込が発生したか否かを判断する。完了割込が発生した場合（ステップＳ１３：Ｙ）に動作はステップＳ１４に進む。完了割込が発生しない場合（ステップＳ１３：Ｎ）に動作はステップＳ１２に戻る。
【０２０８】
ステップＳ１４において、第１ＣＰＵ１０６は、読出制御部３２１の動作を停止するための読出制御部３２１の設定を行う。読出制御部３２１の動作停止によりパイプライン３００ａへの有効データの入力が停止する。この結果、ステップＳ１５において、パイプライン３００ａの処理部３１０及び書込制御部３３１が動作を停止する。
【０２０９】
図２５は、図２４の画像データ処理の動作の一例の説明図である。ステップＳ２０において、読出制御部３２１は第１画像メモリ１０３から有効データを読み出して、第１ステージに有効データを出力する。ステップＳ２１において、処理部３１０ａ〜３１０ｃの順に各処理部３１０が有効データを処理する。
【０２１０】
ステップＳ２２において、書込制御部３３１は、処理部３１０ａ〜３１０ｃによって処理された後の有効データを第１画像メモリ１０３へ書き込む。ステップＳ２３において、書込制御部３３１は、レジスタ３３２に記憶された処理対象のデータのサイズに基づいて、全ての有効データの処理が完了したか否かを判断する。全ての有効データの処理が完了していない場合（ステップＳ２３：Ｎ）に動作はステップＳ２０に戻る。
【０２１１】
全ての有効データの処理が完了した場合（ステップＳ２３：Ｙ）に動作はステップＳ２４へ進む。ステップＳ２４において、書込制御部３３１は完了割込を発生させ、第１ＣＰＵ１０６へ通知する。
【０２１２】
図２６は、読出制御部３２１の動作の第１例の説明図である。ステップＳ３１において、読出制御部３２１は、第１画像メモリ１０３から有効データを読み出せるか否かを判断する。読出制御部３２１が有効データが読み出せる場合（ステップＳ３１：Ｙ）に動作はステップＳ３２に進む。読出制御部３２１が有効データが読み出せない場合（ステップＳ３１：Ｎ）に動作はステップＳ３５に進む。
【０２１３】
ステップＳ３２において読出部３２０は、第１画像メモリ１０３から有効データを読み出す。ステップＳ３３において出力部３２２は、有効データを第１ステージに出力する。ステップＳ３４において出力部３２２は、有効フラグの値を「オン」にする。その後に動作はステップＳ３６へ進む。
【０２１４】
ステップＳ３５において出力部３２２は、有効フラグの値を「オフ」にする。その後に動作はステップＳ３６へ進む。ステップＳ３６において読出制御部３２１は、第１ＣＰＵ１０６が、読出制御部３２１の動作を停止する設定を行ったか否かを判断する。動作を停止する設定が行われない場合（ステップＳ３６：Ｎ）に動作はステップＳ３１へ戻る。
【０２１５】
動作を停止する設定が行われた場合（ステップＳ３６：Ｙ）に動作はステップＳ３７へ進む。ステップＳ３７において、出力部３２２は、有効フラグの値を「オフ」にする。
【０２１６】
図２７及び図２８は、有効データが読み出されている期間のクロック供給を説明するためのタイミングチャートである。図示のタイミングチャートは、処理部３１０ａ〜３１０ｃの処理期間が１クロックサイクルである場合の例示である。但し、処理部３１０ａ〜３１０ｃの処理期間は１クロックより長くてもよく、また処理部３１０ａ〜３１０ｃ間で処理期間が異なっていてもよい。
【０２１７】
読出制御部３２１の出力、処理部３１０の入力及び出力、並びに書込制御部３３１のデータ書込のチャートのそれぞれの矩形の中の数字は、各クロックサイクルで読み出された有効データの順序を示す。図２９及び３０のタイミングチャート、図４４及び４５のタイミングチャートでも同様である。
【０２１８】
読出制御部３２１が、期間Ｔ１において有効データを出力するとこれに同期して有効フラグの値が「オン」になる。第１ステージに入力される有効データの値は期間Ｔ１の間に「オン」になるので、処理部３１０ａに期間Ｔ１の間にクロック信号が供給される。処理部３１０ａは、読出制御部３２１から有効データが出力される期間Ｔ１にこれらのデータを処理する。
【０２１９】
処理部３１０ａは、期間Ｔ１より１クロックサイクル遅延した期間Ｔ２で有効データを処理部３１０ｂへ出力する。第２ステージに入力される有効フラグも、第１ステージに入力される有効フラグよりも１クロックサイクル遅延している。第２ステージに入力される有効フラグの値は、期間Ｔ１よりも１クロックサイクル遅い期間Ｔ２において「オン」になり、処理部３１０ｂに期間Ｔ２の間にクロック信号が供給される。処理部３１０ｂは、処理部３１０ａから有効データが出力される期間Ｔ２にこれらのデータを処理する。
【０２２０】
同様に、処理部３１０ｃは、期間Ｔ２よりも１クロックサイクル遅い期間Ｔ３において、処理部３１０ｂから出力される有効データを処理する。
【０２２１】
処理部３１０ｃは、期間Ｔ３より１クロックサイクル遅延した期間Ｔ４で有効データを書込制御部３３１へ出力する。書込制御部３３１へ入力される有効フラグの値は期間Ｔ４で「オン」になる。書込制御部３３１は、有効フラグの値が「オン」になる期間Ｔ４で受信した有効データを第１画像メモリ１０３へ書き込む。
【０２２２】
図２９及び図３０は、有効データが読み出されていない期間のクロック供給を説明するためのタイミングチャートである。読出制御部３２１が期間Ｔ５及びＴ７において有効データを出力すると、これに同期して期間Ｔ５及びＴ７において有効フラグの値が「オン」になる。読出制御部３２１が、期間Ｔ６において有効データを出力しないと、これに同期して期間Ｔ６において有効フラグの値が「オフ」になる。
【０２２３】
第１ステージに入力される有効フラグの値は期間Ｔ５の間に「オン」になるので、処理部３１０ａに期間Ｔ５にクロック信号が供給される。処理部３１０ａは、読出制御部３２１から有効データが出力される期間Ｔ５にこれらのデータを処理する。期間Ｔ５にて処理された有効データは、期間Ｔ５より１クロックサイクル遅延した期間Ｔ８で処理部３１０ｂに出力される。
【０２２４】
有効フラグの値が「オフ」である期間Ｔ６の間には処理部３１０ａにクロック信号が供給されない。読出制御部３２１から無効データが出力される期間Ｔ６の間、処理部３１０ａは動作を停止し、期間Ｔ５に入力した有効データを保持する。また、期間Ｔ６より１クロックサイクル遅延した期間Ｔ９の間の処理部３１０ａの出力は、期間Ｔ５の最後に入力した有効データのまま保持される。
【０２２５】
その後、期間Ｔ７の間に有効フラグの値が「オン」になると処理部３１０ａにクロック信号が供給される。処理部３１０ａは、期間Ｔ６の間に保持した有効データを処理した後、読出制御部３２１から受信する有効データを順次処理する。期間Ｔ７にて処理された有効データは、期間Ｔ７より１クロックサイクル遅延した期間Ｔ１０で処理部３１０ｂに出力される。
【０２２６】
第２ステージに入力される有効フラグは、期間Ｔ８及びＴ１０で「オン」になり、期間Ｔ９で「オフ」になる。処理部３１０ｂには、期間Ｔ８及びＴ１０の期間にクロック信号が供給され、期間Ｔ９にクロック信号が供給されない。したがって、処理部３１０ｂは、処理部３１０ａの出力の変化が停止している期間Ｔ９で動作を停止し、処理部３１０ａから有効データが出力される期間Ｔ８及びＴ１０の期間で動作して有効データを処理する。
【０２２７】
同様に、処理部３１０ｃは、期間Ｔ８及びＴ１０より１クロックサイクル遅延した期間Ｔ１１及びＴ１３に有効データを処理し、期間Ｔ９より１クロックサイクル遅延した期間Ｔ１２に動作を停止する。処理部３１０ｃは、期間Ｔ１１及びＴ１３より１クロックサイクル遅延した期間Ｔ１４及びＴ１６に有効データを出力する。書込制御部３３１は、有効フラグの値が「オン」になる期間Ｔ１４及びＴ１６で受信した有効データを第１画像メモリ１０３へ書き込む。
【０２２８】
本実施例によれば、読出制御部３２１が有効データを読み出した期間に応じて、各処理部３１０に有効データが入力される期間を特定することができる。このため、有効な画像データが入力される処理部３１０にクロックを供給する一方で、クロック制御部３４０は、有効な画像データが入力されていない処理部３１０のクロック供給を停止することができる。
【０２２９】
なお、読出制御部３２１及び書込制御部３３１は、それぞれ第２実施例〜第５実施例における読出部１４０及び最終段の処理部１２０と等しくてもよい。以下の実施例でも同様である。
【０２３０】
＜９．第９実施例＞
図３１は、画像処理装置１０２の第７例の機能ブロックの説明図である。画像処理装置１０２は、複数のパイプライン３００ａ〜３００ｃを備える。図２０に示す構成要素と同様の構成要素には、図２０で使用した参照符号と同じ参照符号を付す。パイプライン３００ｂ及び３００ｃの構成は、パイプライン３００ａの構成と同様である。以下の説明で、パイプライン３００ａ〜３００ｃを総称して「パイプライン３００」と表記することがある。
【０２３１】
パイプライン３００は、パイプライン３００ａ〜３００ｃの順で、画像処理装置１０２に入力された画像データに所定の画像処理を施す。パイプライン３００ａ〜３００ｃ間の画像データの転送は、第１画像メモリ１０３を経由して行われる。すなわち、パイプライン３００ｂは、パイプライン３００ａが処理して第１画像メモリ１０３に書き込まれた画像データを読み出して処理する。パイプライン３００ｃは、パイプライン３００ｂが処理して第１画像メモリ１０３に書き込まれた画像データを読み出して処理する。
【０２３２】
このため、第１ＣＰＵ１０６は、パイプライン３００ｂの読出制御部３２１に対して、画像データを読み出すアドレス範囲として、パイプライン３００ａの書込制御部３３１が画像データを書き込むアドレス範囲を指定する。第１ＣＰＵ１０６は、パイプライン３００ｃの読出制御部３２１に対して、画像データを読み出すアドレス範囲として、パイプライン３００ｂの書込制御部３３１が画像データを書き込むアドレス範囲を指定する。
【０２３３】
図３２の（Ａ）及び図３２の（Ｂ）は、読出制御部３２１の第２例の機能ブロック図及び書込制御部３３１の第２例の機能ブロック図である。図２２及び図２３に示す構成要素と同様の構成要素には、図２２及び図２３で使用した参照符号と同じ参照符号を付す。
【０２３４】
以下、パイプライン３００ｂの読出制御部３２１及びパイプライン３００ａの書込制御部３３１の機能について説明するが、他のパイプライン３００の読出制御部３２１及び書込制御部３３１の機能も同様である。
【０２３５】
第１画像メモリ１０３を経由して前段のパイプライン３００ａと後段のパイプライン３００ｂの間で画像データを転送する場合、読出制御部３２１は書込が行われたアドレスからデータを読み出す。このため、読出制御部３２１は読出アドレスが書込アドレスを追い越さないようにデータの読み出しを制御する構成を有する。
【０２３６】
読出制御部３２１は、選択部３２４と、読出停止部３２５を備える。また、書込制御部３３１は、書込量通知部３３３を備える。書込部３３０は、第１画像メモリ１０３に書き込んだ画像データのデータ量を書込量通知部３３３に通知する。書込量通知部３３３は、第１画像メモリ１０３に書き込んだ画像データのデータ量を、書込量として他のパイプライン３００の読出制御部３２１へ通知する。
【０２３７】
各書込制御部３３１は、他のパイプライン３００の読出制御部３２１と書込量通知回線３０５で接続されている。図３３は、書込量通知回線３０５の接続例の説明図である。パイプライン３００ａの書込制御部３３１は、書込量通知回線３０５を経由してパイプライン３００ｂ及び３００ｃの読出制御部３２１に書込量を通知する。パイプライン３００ｂの書込制御部３３１は、書込量通知回線３０５を経由してパイプライン３００ａ及び３００ｃの読出制御部３２１に書込量を通知する。パイプライン３００ｃの書込制御部３３１は、書込量通知回線３０５を経由してパイプライン３００ａ及び３００ｂの読出制御部３２１に書込量を通知する。
【０２３８】
図３２の（Ａ）を参照する。読出制御部３２１のレジスタ３２３には、前段のパイプライン３００ａの書込制御部３３１から書込量が通知される書込量通知回線３０５を識別するための情報が格納される。この情報は、例えば、前段のパイプライン３００ａの書込制御部３３１と接続する書込量通知回線３０５そのものの識別情報でもよく、書込量通知回線３０５を間接的に特定するための前段のパイプライン３００ａ又はその書込制御部３３１の識別情報でもよい。
【０２３９】
選択部３２４は、レジスタ３２３に格納される情報に基づき、パイプライン３００ａの書込制御部３３１から書込量が通知される書込量通知回線３０５を選択する。選択部３２４は、選択した書込量通知回線３０５で通知された書込量を読出停止部３２５に入力する。
【０２４０】
読出部３２０は、第１画像メモリ１０３から読み出した画像データのデータ量を、読出停止部３２５へ通知する。読出停止部３２５は、第１画像メモリ１０３から読み出した画像データのデータ量である読出量と、書込量通知回線３０５で通知された書込量とを比較する。読出停止部３２５は、読出量が書込量以上になる場合には、読出部３２０による第１画像メモリ１０３からの有効データの読み出しを停止する。読出停止部３２５は、読出量が書込量未満の場合には、読出部３２０による第１画像メモリ１０３からの有効データの読み出しを許可する。
【０２４１】
読出停止部３２５が有効データの読み出しを許可する場合、出力部３２２は、読出部３２０が読み出した有効データを第１ステージの処理部３１０ａへ出力する。また、出力部３２２は、有効データの出力期間と有効フラグの値を「オン」にする期間を同期させる。読出停止部３２５が読出部３２０による有効データの読み出しを停止する場合、出力部３２２は、有効データを出力しない期間と有効フラグの値を「オフ」にする期間を同期させる。選択部３２４と、読出停止部３２５と、書込量通知部３３３は、クロック制御部３４０の構成要素の一部である。
【０２４２】
図３４は、読出制御部３２１の動作の第２例の説明図である。ステップＳ４１において、読出停止部３２５は、読出量が書込量未満であるか否かを判断する。読出量が書込量未満である場合（ステップＳ４１：Ｙ）に動作はステップＳ４２へ進む。読出量が書込量未満でない場合（ステップＳ４１：Ｎ）に動作はステップＳ４５へ進む。ステップＳ４２〜ステップＳ４７の動作は、図２６を参照して説明したステップＳ３６〜Ｓ３７の動作と同様である。
【０２４３】
本実施例によれば、有効データの書き込みがまだ行われていないアドレスからの無効データの読出が防止できる。また、前段の有効データの書き込み待ちにより読出制御部３２１が読み込みを停止した場合に、有効データが入力されない処理部３１０を停止させ、消費電力を低減することができる。
【０２４４】
なお、各パイプライン３００毎に、あるパイプライン３００を動作させ、他のパイプライン３００を停止できるように本実施例を変形してもよい。図３５は、読出制御部３２１の第３例の機能ブロック図である。図３２の（Ａ）に示す構成要素と同様の構成要素には、図３２の（Ａ）で使用した参照符号と同じ参照符号を付す。
【０２４５】
第１ＣＰＵ１０６が、パイプライン３００を動作させる場合には、読出制御部３２１の動作を許可させる。第１ＣＰＵ１０６が、パイプライン３００を動作させない場合には、読出制御部３２１の動作を停止する。レジスタ３２３には、読出制御部３２１のレジスタ３２３は、読出制御部３２１の動作を許可されているか、読出制御部３２１が動作を停止するように設定されているかを指定する設定情報が格納される。出力部３２２は、この設定情報を参照する。
【０２４６】
読出制御部３２１の動作が許可されている場合に、出力部３２２は有効データの出力期間に応じて有効フラグの値を「オン」及び「オフ」に設定する。読出制御部３２１の動作が停止するように設定されている場合に、出力部３２２は有効フラグの値を「オフ」に設定する。このため、パイプライン３００の処理部３１０へのクロック供給が停止され、パイプライン３００が停止する。
【０２４７】
本変形例によれば、第１ＣＰＵ１０６は、動作を停止させるパイプライン３００を個別に設定し、動作を停止させるパイプライン３００の処理部３１０へのクロック供給を停止して処理部３１０の動作を停止させる。このため消費電力を低減することができる。
【０２４８】
＜１０．第１０実施例＞
図３６は、図３１を参照して画像処理装置１０２におけるパイプライン３００ａの第３例の機能ブロック図である。図２２に示す構成要素と同様の構成要素には、図２２で使用した参照符号と同じ参照符号を付す。パイプライン３００ｂ及び３００ｃの構成は、パイプライン３００ａの構成と同様である。以下、パイプライン３００ａ及び３００ｂの機能について説明するが、他のパイプライン３００ｃの機能も同様である。
【０２４９】
第１画像メモリ１０３経由で前段のパイプライン３００ａと後段のパイプライン３００ｂが画像データを転送する場合、パイプライン３００ａの書込制御部３３１は、パイプライン３００ｂがデータを読み出す前に上書きしないようデータの書き込みを制御する。
【０２５０】
このため、パイプライン３００ａの書込制御部３３１は、書込制御部３３１の書込量とパイプライン３００ｂの読出制御部３２１の読出量に応じてパイプライン３００の動作を制御する停止フラグを出力する。書込制御部３３１は、書込量が読出量以上の場合に停止フラグの値を「オン」にする。書込制御部３３１は、書込量が読出量未満の場合に停止フラグの値を「オフ」にする。停止フラグは、ゲート部３４３及び読出制御部３２１に入力される。
【０２５１】
ゲート部３４３は、停止フラグが「オフ」の期間に処理部３１０へクロック信号を供給し、停止フラグが「オン」の期間に処理部３１０へのクロック信号の供給を停止する。ゲート部３４３は、例えば、停止フラグの否定論理とクロック信号との論理積を処理部３１０へ出力する論理回路であってよい。このため、停止フラグが「オン」である期間では処理部３１０は動作を停止し、処理中の有効データを保持する。
【０２５２】
読出制御部３２１は、停止フラグが「オフ」の期間に第１画像メモリ１０３から有効データを読み出して第１ステージに出力する。読出制御部３２１は、停止フラグが「オン」の期間に第１画像メモリ１０３からの有効データの読み出しを停止する。
【０２５３】
図３７の（Ａ）は読出制御部３２１の第３例の機能ブロック図であり、図３７の（Ｂ）は書込制御部３３１の第３例の機能ブロック図である。図３２の（Ａ）及び図３２の（Ｂ）に示す構成要素と同様の構成要素には、図３２の（Ａ）及び図３２の（Ｂ）で使用した参照符号と同じ参照符号を付す。
【０２５４】
読出制御部３２１は、読出量通知部３２６を備える。書込制御部３３１は、選択部３３４と停止部３３５を備える。読出部３２０は、第１画像メモリ１０３から読み出した画像データのデータ量を読出量通知部３２６に通知する。読出量通知部３２６は、第１画像メモリ１０３から読み出した画像データのデータ量を、読出量として他のパイプライン３００の書込制御部３３１へ通知する。
【０２５５】
各読出制御部３２１は、他のパイプライン３００の書込制御部３３１と読出量通知回線３０６で接続されている。図３８は、読出量通知回線３０６の接続例の説明図である。パイプライン３００ａの読出制御部３２１は、読出量通知回線３０６を経由してパイプライン３００ｂ及び３００ｃの書込制御部３３１に読出量を通知する。パイプライン３００ｂの読出制御部３２１は、読出量通知回線３０６を経由してパイプライン３００ａ及び３００ｃの書込制御部３３１に読出量を通知する。パイプライン３００ｃの読出制御部３２１は、読出量通知回線３０６を経由してパイプライン３００ａ及び３００ｂの書込制御部３３１に読出量を通知する。
【０２５６】
図３７の（Ｂ）を参照する。書込制御部３３１のレジスタ３３２には、パイプライン３００ｂの読出制御部３２１から読出量が通知される読出量通知回線３０６を識別するための情報が格納される。選択部３３４は、レジスタ３３２に格納される情報に基づき、パイプライン３００ｂの読出制御部３２１から読出量が通知される読出量通知回線３０６を選択する。選択部３３４は、選択した読出量通知回線３０６で通知された読出量を停止部３３５に入力する。
【０２５７】
書込部３３０は、第１画像メモリ１０３へ書き込んだ画像データのデータ量である書込量を停止部３３５へ通知する。停止部３３５は、読出量通知回線３０６で通知された読出量と書込量を比較する。書込量が読出量以上になる場合には、停止部３３５は書込部３３０による第１画像メモリ１０３への有効データの書き込みを停止する。また、停止フラグの値を「オン」に設定する。
【０２５８】
停止部３３５は、書込量が読出量未満の場合には、書込部３３０による第１画像メモリ１０３への有効データの書き込みを許可する。また、停止フラグの値を「オフ」に設定する。
【０２５９】
読出部３２０及び出力部３２２は、同じパイプライン３００に設けられた書込制御部３３１が出力する停止フラグを入力する。停止フラグの値が「オン」である場合に、読出部３２０は、第１画像メモリ１０３からの有効データの読み出しを停止する。停止フラグの値が「オン」である場合に、出力部３２２は、出力データを現在出力中の有効データのまま維持する。読出量通知部３２６、選択部３３４及び停止部３３５は、クロック制御部３４０の構成要素の一部である。
【０２６０】
図３９は、書込制御部３３１の動作の第１例の説明図である。ステップＳ５０において、停止部３３５は停止フラグの値を「オン」にする。ステップＳ５１において停止部３３５は、書込量が読出量未満であるか否かを判断する。書込量が読出量未満である場合（ステップＳ５１：Ｙ）に動作はステップＳ５２へ進む。書込量が読出量未満でない場合（ステップＳ５１：Ｎ）に動作はステップＳ５０へ戻る。
【０２６１】
ステップＳ５２において停止部３３５は、現在の停止フラグの値が「オン」であるか否かを判断する。停止フラグの値が「オン」である場合（ステップＳ５２：Ｙ）に動作はステップＳ５３へ進む。停止フラグの値が「オン」でない場合（ステップＳ５２：Ｎ）に動作はステップＳ５４へ進む。
【０２６２】
ステップＳ５３において停止部３３５は、停止フラグの値を「オフ」に設定する。その後に動作はステップＳ５４へ進む。ステップＳ５４において、書込部３３０は有効データを第１画像メモリ１０３へ書き込む。
【０２６３】
ステップＳ５５において書込制御部３３１は、全ての有効データの処理が完了したか否かを判断する。全ての有効データの処理が完了していない場合（ステップＳ５５：Ｎ）に動作はステップＳ５１に戻る。全ての有効データの処理が完了した場合（ステップＳ５５：Ｙ）に、ステップＳ５６において書込制御部３３１は、完了割込を発生させ、第１ＣＰＵ１０６へ通知する。
【０２６４】
本実施例によれば、後段のパイプラインによる有効データの読み出しがまだ行われていないアドレスへの、前段のパイプラインのデータ上書きを防止できる。前段のパイプラインによるデータ書き込みを停止する間、各パイプライン３００の処理部３１０へのクロック供給を停止することにより、処理部３１０に有効データを保持させることが可能になる。また、データ書き込みの停止中に処理部３１０へのクロック供給を停止することにより消費電力が低減される。
【０２６５】
＜１１．第１１実施例＞
第９実施例のパイプライン３００の構成は、第１０実施例のパイプライン３００の構成と組み合わせることができる。図４０は、第９実施例及び第１０実施例の構成を組み合わせたパイプラインの機能ブロックの説明図である。図２２及び図３６に示す構成要素と同様の構成要素には、図２２及び図３６で使用した参照符号と同じ参照符号を付す。
【０２６６】
第１パイプライン〜第３パイプラインにそれぞれ設けられたゲート部３４３ａ〜３４３ｃは、個々が設けられたパイプラインステージに入力される有効フラグと、停止フラグと、クロック信号を受信する。ゲート部３４３は、有効フラグが「オン」かつ停止フラグが「オフ」の期間に処理部３１０へクロック信号を供給する。ゲート部３４３は、有効フラグが「オフ」の期間又は停止フラグが「オン」に、処理部３１０へのクロック信号の供給を停止する。ゲート部３４３は、例えば、有効フラグと、停止フラグの否定論理と、クロック信号との論理積を処理部３１０へ出力する論理回路であってよい。
【０２６７】
図４１の（Ａ）は、読出制御部３２１の第４例の機能ブロック図であり、図４１の（Ｂ）は、書込制御部３３１の第４例の機能ブロック図である。図３２の（Ｂ）、図３５、図３７の（Ａ）、及び図３７の（Ｂ）に示す構成要素と同様の構成要素には、図３２の（Ｂ）、図３５、図３７の（Ａ）及び図３７の（Ｂ）で使用した参照符号と同じ参照符号を付す。
【０２６８】
図４２は、読出制御部３２１の動作の第３例の説明図である。ステップＳ６０において出力部３２２は、出力するデータ及び有効フラグの値を現在の出力値のまま維持する。ステップＳ６１において読出部３２０及び出力部３２２は、停止フラグの値が「オン」であるか否かを判断する。停止フラグの値が「オン」である場合（ステップＳ６１：Ｙ）に読出部３２０は、第１画像メモリ１０３からの有効データを読み出さない。その後、動作はステップＳ６０に戻る。停止フラグの値が「オン」でない場合（ステップＳ６１：Ｎ）に動作はステップＳ６２に進む。ステップＳ６２〜Ｓ６６の動作は、図３４を参照して説明したステップＳ４１〜ステップＳ４５の動作と同様である。
【０２６９】
ステップＳ６７において読出制御部３２１は、第１ＣＰＵ１０６が、読出制御部３２１の動作を停止する設定を行ったか否かを判断する。動作を停止する設定が行われない場合（ステップＳ６７：Ｎ）に動作はステップＳ６１へ戻る。動作を停止する設定が行われた場合（ステップＳ６７：Ｙ）に、ステップＳ６８において出力部３２２は、有効フラグの値を「オフ」にする。
【０２７０】
図４３は、書込制御部３３１の動作の第２例の説明図である。ステップＳ７０〜ステップＳ７３の動作は図３９を参照して説明したステップＳ５０〜ステップＳ５３の動作と同様である。ステップＳ７４において書込部３３０は、有効フラグが「オン」であるか否かを判断する。有効フラグが「オン」である場合（ステップＳ７４：Ｙ）に、書込部３３０はステップＳ７５において有効データを第１画像メモリ１０３に書き込む。その後に動作はステップＳ７６に進む。
【０２７１】
有効フラグが「オン」でない場合（ステップＳ７４：Ｎ）に動作はステップＳ７６に進む。この場合に書込部３３０は第１画像メモリ１０３に画像データを書き込まない。ステップＳ７６及びＳ７７の動作は、図３９を参照して説明したステップＳ５５及びＳ５６の動作と同様である。
【０２７２】
図４４及び図４５は、有効フラグによるパイプラインの停止を説明するためのタイミングチャートである。期間Ｔ１７にて停止フラグの値が「オン」になると、読出制御部３２１は、有効データの読出動作を停止し、出力データを現在出力中の有効データのまま維持する。また、各処理部３１０へのクロック供給が停止することにより、各処理部３１０は、停止フラグの値が「オン」に変わった時点でそれぞれが処理していた有効データをそれぞれ保持したまま動作を停止する。
【０２７３】
期間Ｔ１７の後に停止フラグの値が「オフ」になると、読出制御部３２１は、有効データの読出を再開する。また、各処理部３１０はそれぞれ有効データの処理を再開し、再開後の最初のラッチタイミングで、期間Ｔ１７で保持していた有効データを処理したデータを後段の処理部３１０へ出力し、次の有効データを前段の処理部３１０からラッチする。
【符号の説明】
【０２７４】
１    画像処理システム
１００    画像読取装置
１０２    画像処理装置
１１０、１１０ａ〜１１０ｃ、３０１    パイプライン処理部
１２０、１２０ａ〜１２０ｉ、３１０、３１０ａ〜３１０ｃ    処理部
１３０、１３０ａ〜１３０ｃ    共通バス
１３１、１３１ａ〜１３１ｄ、１３３、１３６    マスタ型セレクトコネクタ
１３２ａ〜１３２ｄ、１６１、１６２    スレーブ型セレクトコネクタ
１４０    読出部
３００、３００ａ〜３００ｃ    パイプライン
３２１    読出制御部
３３１    書込制御部
１７３、３４０    クロック制御部
３４１、３４１ａ〜３４１ｃ    転送路
３４２、３４２ａ〜３４２ｃ    保持部
３４３、３４３ａ〜３４３ｃ    ゲート部
【図１】
2014182510.tif 000003
【図２】
2014182510.tif 000004
【図３】
2014182510.tif 000005
【図４】
2014182510.tif 000006
【図５】
2014182510.tif 000007
【図６】
2014182510.tif 000008
【図７】
2014182510.tif 000009
【図８】
2014182510.tif 000010
【図９】
2014182510.tif 000011
【図１０】
2014182510.tif 000012
【図１１】
2014182510.tif 000013
【図１２】
2014182510.tif 000014
【図１３】
2014182510.tif 000015
【図１４】
2014182510.tif 000016
【図１５】
2014182510.tif 000017
【図１６】
2014182510.tif 000018
【図１７】
2014182510.tif 000019
【図１８】
2014182510.tif 000020
【図１９】
2014182510.tif 000021
【図２０】
2014182510.tif 000022
【図２１】
2014182510.tif 000023
【図２２】
2014182510.tif 000024
【図２３】
2014182510.tif 000025
【図２４】
2014182510.tif 000026
【図２５】
2014182510.tif 000027
【図２６】
2014182510.tif 000028
【図２７】
2014182510.tif 000029
【図２８】
2014182510.tif 000030
【図２９】
2014182510.tif 000031
【図３０】
2014182510.tif 000032
【図３１】
2014182510.tif 000033
【図３２】
2014182510.tif 000034
【図３３】
2014182510.tif 000035
【図３４】
2014182510.tif 000036
【図３５】
2014182510.tif 000037
【図３６】
2014182510.tif 000038
【図３７】
2014182510.tif 000039
【図３８】
2014182510.tif 000040
【図３９】
2014182510.tif 000041
【図４０】
2014182510.tif 000042
【図４１】
2014182510.tif 000043
【図４２】
2014182510.tif 000044
【図４３】
2014182510.tif 000045
【図４４】
2014182510.tif 000046
【図４５】
2014182510.tif 000047