(57)【要約】【課題】画像データの演算処理を実行できない時間の増大を抑えながら、回路規模を削減したアクセラレータ回路を提供する。【解決手段】バッファ回路２０は、第１の画像データを格納するバッファメモリ２２と、バッファメモリ２２に格納された第１の画像データのうちの３×３の領域の第１の画素データを格納する２次元レジスタ２３と、第２の画像データを格納するバッファメモリ２５と、バッファメモリ２５に格納された第２の画像データのうちの３×３の領域の第２の画素データを格納する２次元レジスタ２６と、制御回路２８と、セレクタ２７とを備える。制御回路２８は、２次元レジスタ２３に第１の画素データが格納されているとき第１の画素データを演算回路３０に送り、２次元レジスタ２６に第２の画素データが格納されているとき第２の画素データを演算回路３０に送るようにセレクタ２７を制御する。【選択図】図２
2015207101.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置のためのアクセラレータ回路において、上記アクセラレータ回路は、
複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、
上記複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備え、
上記バッファ回路は、
上記複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリ及び複数Ｎ個の２次元レジスタと、
制御回路と、
セレクタとを備え、
上記各バッファメモリは、上記複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納し、
上記各２次元レジスタは、上記複数Ｎ個のバッファメモリのうちの対応する１つに格納された画像データのうちの上記予め決められたサイズの領域の画素データを一時的に格納し、
上記セレクタは、上記制御回路の制御下で、上記複数Ｎ個の２次元レジスタのうちの１つに格納された画素データを選択して上記演算回路に送り、
上記制御回路は、上記複数Ｎ個の２次元レジスタのうちの１つに画素データが格納されているとき上記画素データを上記演算回路に送るように上記セレクタを制御することを特徴とするアクセラレータ回路。
【請求項２】
上記各バッファメモリは、上記各２次元レジスタの行数以下の個数のラインメモリを備えることを特徴とする請求項１記載のアクセラレータ回路。
【請求項３】
画像処理装置のためのアクセラレータ回路において、上記アクセラレータ回路は、
複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、
上記複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備え、
上記バッファ回路は、
複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリと、
制御回路と、
セレクタとを備え、
上記各バッファメモリは、上記複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納し、
上記セレクタは、上記制御回路の制御下で、上記複数Ｎ個のバッファメモリのうちの１つに格納された画像データを選択して上記演算回路に送り、
上記演算回路は、上記バッファ回路から送られた上記画像データのうちの上記予め決められたサイズの領域の画素データを一時的に格納する２次元レジスタを備え、
上記制御回路は、上記複数Ｎ個のバッファメモリのうちの１つに画素データが格納されているとき上記画素データを上記演算回路に送るように上記セレクタを制御することを特徴とするアクセラレータ回路。
【請求項４】
上記各バッファメモリは、上記各２次元レジスタの行数以下の個数のラインメモリを備えることを特徴とする請求項３記載のアクセラレータ回路。
【請求項５】
プロセッサ及びメインメモリを備えた画像処理装置であって、上記画像処理装置は、
請求項１〜４のうちの１つに記載のアクセラレータ回路と、
上記画像処理装置の外部から取得された画像データを第１の画像データとして上記アクセラレータ回路に入力する画像入力回路と、
上記メインメモリ上の画像データを第２の画像データとして上記アクセラレータ回路に転送するＤＭＡ制御回路とを備えたことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置のためのアクセラレータ回路に関する。本発明はまた、そのようなアクセラレータ回路を備えた画像処理装置に関する。
【背景技術】
【０００２】
一般に、専用ハードウェア装置を用いて画像を処理することにより、汎用プロセッサ上でソフトウェアにより画像を処理する場合よりも、処理時間を短縮することができる。このため、予め決められた単純な演算処理を行う専用ハードウェア装置であるアクセラレータ回路が使用されることがある。特に、画像データに２次元フィルタを適用する場合には、アクセラレータ回路を用いることで処理時間が大幅に短くなる。
【０００３】
特許文献１によれば、画像出力装置たるプリンタは、例えばソフトウェアにより描画処理を行うＣＰＵと、例えばハードウェアにより高速に描画処理を行う描画アクセラレータを有する。ＣＰＵは、ホストコンピュータからの出力命令に基づき描画命令を解釈し、描画アクセラレータに対して、描画命令の処理対象領域の例えば先頭ブロックから描画処理を行わせ、同時にＣＰＵ自体も描画命令の処理対象領域の例えば終端ブロックから描画処理を行う。そして、描画アクセラレータとＣＰＵでそれぞれ描画処理を完了した領域の和が描画命令の処理対象領域と等しくなった場合、ＣＰＵは、該描画命令の処理を終了する。これにより、廉価で、容易かつ高速に描画処理を行って出力するプリンタなどの画像出力装置を提供する。
【０００４】
特許文献２の画像処理装置は、画像データにソフトウェアの演算処理を行う１つ以上のプロセッサ、画像データに既定の演算処理を行う１つ以上のハードウェアアクセラレータ、メモリ部、及びメモリ部への画像データの読み書きを制御するバッファ制御部を備える。メモリ部の記憶領域は、少なくとも「プロセッサの個数＋ハードウェアアクセラレータの個数−１」個のバッファ領域に、物理的に分割される。バッファ制御部は、プロセッサ及びハードウェアアクセラレータのそれぞれからのアクセスに応じて、分割されたそれぞれのバッファ領域のうち、対応するバッファ領域への画像データの書き込み及び読み出しを制御する。これにより、回路規模が増大することなく、所望の画像処理の演算に柔軟に変更することができる画像処理回路を備えた画像処理装置を提供する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のアクセラレータ回路として、画像処理装置の外部から入力された画像データを処理してからメインメモリに送るものと、メインメモリからＤＭＡ（Direct Memory Access）転送された画像データを処理し、処理後にメインメモリに戻すものとがある。前者のアクセラレータ回路では、メインメモリ上の画像データを処理することができない。従って、画像処理装置の外部から入力された画像データ及びメインメモリ上の画像データの両方を処理するためには、２種類のアクセラレータ回路を併用する必要があり、回路規模が大きくなってしまう。特に、２次元フィルタとして機能するアクセラレータ回路では、高速処理のためには２次元空間の個数だけ乗算器を必要とし、回路規模が特に大きくなってしまうという問題がある。
【０００６】
回路規模を削減するために、画像処理装置の外部から入力された画像データ及びメインメモリ上の画像データの一方を、セレクタを用いて選択的に、１つのアクセラレータ回路に入力することが考えられる。しかし、セレクタを切り換えてから演算処理が可能になるまで（２次元フィルタでは、２次元レジスタにデータが書き込まれるまで）の遅延時間が存在する。アクセラレータ回路に入力される画像データを頻繁に切り換える場合には、そのたびに遅延時間が発生し、演算処理を実行できない時間が長くなる。
【０００７】
本発明の目的は、画像データの演算処理を実行できない時間の増大を抑えながら、回路規模を削減したアクセラレータ回路を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の態様に係るアクセラレータ回路によれば、
画像処理装置のためのアクセラレータ回路において、上記アクセラレータ回路は、
複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、
上記複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備え、
上記バッファ回路は、
上記複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリ及び複数Ｎ個の２次元レジスタと、
制御回路と、
セレクタとを備え、
上記各バッファメモリは、上記複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納し、
上記各２次元レジスタは、上記複数Ｎ個のバッファメモリのうちの対応する１つに格納された画像データのうちの上記予め決められたサイズの領域の画素データを一時的に格納し、
上記セレクタは、上記制御回路の制御下で、上記複数Ｎ個の２次元レジスタのうちの１つに格納された画素データを選択して上記演算回路に送り、
上記制御回路は、上記複数Ｎ個の２次元レジスタのうちの１つに画素データが格納されているとき上記画素データを上記演算回路に送るように上記セレクタを制御することを特徴とする。
【発明の効果】
【０００９】
本発明のアクセラレータ回路によれば、画像データの演算処理を実行できない時間の増大を抑えながら、回路規模を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係る画像処理装置２の構成を示すブロック図である。
【図２】図１のアクセラレータ回路１４の詳細構成を示すブロック図である。
【図３】図２のアクセラレータ回路１４の動作を説明するタイミングチャートである。
【図４】比較例に係るアクセラレータ回路４０の詳細構成を示すブロック図である。
【図５】図４のアクセラレータ回路４０の動作を説明するタイミングチャートである。
【図６】本発明の第２の実施形態に係るアクセラレータ回路１４Ａの詳細構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照して詳細に解説する。
【００１２】
第１の実施形態．
図１は、本発明の第１の実施形態に係る画像処理装置２の構成を示すブロック図である。画像処理装置２は、外部のカメラ１で撮影された画像を取得して処理し、処理された画像（出力画像）を出力する。画像処理装置２は、バス１１、画像入力回路１２、ＤＭＡ制御回路１３、アクセラレータ回路１４、プロセッサ１５、メインメモリ１６、クロック発生器１７、及び画像出力回路１８を備える。ＤＭＡ制御回路１３、アクセラレータ回路１４、プロセッサ１５、メインメモリ１６、クロック発生器１７、及び画像出力回路１８は、バス１１を介して互いに接続されている。クロック発生器１７は、クロックＣＬＫを発生して他の構成要素に供給する。画像入力回路１２は、画像処理装置２の外部（カメラ１）から取得された画像データを第１の画像データとしてアクセラレータ回路１４に入力する。ＤＭＡ制御回路１３は、メインメモリ１６上の画像データを第２の画像データとしてアクセラレータ回路１４にＤＭＡ転送する。アクセラレータ回路１４は、例えば２次元フィルタの演算を実行する。アクセラレータ回路１４は、画像入力回路１２から入力された画像データを処理してメインメモリ１６に送り、また、メインメモリ１６からＤＭＡ転送された画像データを処理し、処理後にメインメモリ１６に戻す。ここで、アクセラレータ回路１４によって処理された画像データもまた、ＤＭＡ制御回路１３によって、メインメモリ１６にＤＭＡ転送される。プロセッサ１５は、アクセラレータ回路１４を制御し、また、メインメモリ１６上の画像データをソフトウェアにより処理する。プロセッサ１５によって処理された画像データは、最終的に、画像出力回路１８から出力画像として出力される。
【００１３】
ここで、図４及び図５を参照して、比較例に係るアクセラレータ回路について説明する。
【００１４】
図４は、比較例に係るアクセラレータ回路４０の詳細構成を示すブロック図である。図１の画像処理装置２がアクセラレータ回路１４に代えて図４のアクセラレータ回路４０を備えた場合を考える。図４のアクセラレータ回路４０は、インターフェース回路４１、４２、セレクタ４３、バッファメモリ４４、２次元レジスタ４５、４６、乗算回路４７、加算器４８、及び制御回路４９を備える。アクセラレータ回路４０は、画像データのうちの予め決められたサイズ（３×３）の領域の画素データに対して、２次元フィルタの演算を実行する。
【００１５】
制御回路４９には、プロセッサ１５からの制御信号と、クロック発生器１７からのクロックＣＬＫとが入力される。インターフェース回路４１は、画像入力回路１２から、画像データＰＤＡＴＡ１、クロックＰＣＬＫ１、及びイネーブル信号Ｈ＿ＥＮ１を受信する。画像データＰＤＡＴＡ１は、カメラ１で取得された画像データである。クロックＰＣＬＫ１は、カメラ１のクロックを示す。イネーブル信号Ｈ＿ＥＮ１は、画像データＰＤＡＴＡ１の水平データが有効であることを示す。インターフェース回路４２は、ＤＭＡ制御回路１３から、画像データＰＤＡＴＡ２、クロックＰＣＬＫ２、及びイネーブル信号Ｈ＿ＥＮ２を受信する。画像データＰＤＡＴＡ２は、メインメモリ１６からＤＭＡ転送された画像データである。クロックＰＣＬＫ２は、クロック発生器１７によって発生されたクロックＣＬＫである。イネーブル信号Ｈ＿ＥＮ２は、画像データＰＤＡＴＡ２の水平データが有効であることを示す。セレクタ４３は、制御回路４９からの選択信号ＳＥＬの制御下で、画像データＰＤＡＴＡ１及びＰＤＡＴＡ２の一方を選択してバッファメモリ４４に送る。バッファメモリ４４は、複数（例えば３個）のラインメモリＬＭ０〜ＬＭ２を備え、選択された画像データを一時的に格納する。画像データ内のあるラインの画素に対して２次元フィルタの演算を行う場合、前後のラインの画素を参照する必要があるので、まず、ラインメモリＬＭ０〜ＬＭ２に３ラインの画素データを格納する。３ラインの画素データが格納できたら、各ラインメモリＬＭ０〜ＬＭ２から２次元レジスタ４５に画素データを送り、３×３の領域を用意する。２次元レジスタ４５は、バッファメモリ４４に格納された画像データのうちの３×３の領域の画素データＸｉｊ（０≦ｉ，ｊ≦２）を一時的に格納する。２次元レジスタ４６は、２次元フィルタのための３×３個の演算パラメータＣｉｊ（０≦ｉ，ｊ≦２）を予め格納している。乗算回路４７は９個の乗算器を含む。乗算回路４７及び加算器４８は、画素データＸｉｊ及び演算パラメータＣｉｊに対して以下の演算を行い、その結果として、処理された画像データＡＯＵＴを出力する。
【００１６】
【数１】
2015207101.tif 000003
【００１７】
図５は、図４のアクセラレータ回路４０の動作を説明するタイミングチャートである。
イネーブル信号Ｈ＿ＥＮ１がローレベルであるとき、画像データＰＤＡＴＡ１は不定である。最初のラインの画素データＨ１は、ラインメモリＬＭ０及びＬＭ２に格納される。画素データＨ１がラインメモリＬＭ２にも格納されるのは、不自然さを生じさせることなく、２次元レジスタ４５の３×３の領域が画像データで充填されることを早めるためである。次のラインの画素データＨ２は、ラインメモリＬＭ１に格納される。これと同時に、ラインメモリＬＭ０〜ＬＭ２に格納された画素データを２次元レジスタ４５に送り、２次元レジスタ４５上で３×３の領域の画素データＸｉｊを構成する。次いで、画素データＸｉｊ及び演算パラメータＣｉｊに対して数１の演算を行い、その演算結果のデータＨ１’を、処理された画像データＡＯＵＴとして出力する。
【００１８】
図５からわかるように、比較例のアクセラレータ回路４０では、画像データを入力してから処理された画像データが出力されるまでの遅延時間は、最低でも１ライン分はかかってしまう。そのため、例えば一方の画像データＰＤＡＴＡ１の処理中に他方の画像データＰＤＡＴＡ２を選択するようにセレクタ４３を切り換えても、画像データＰＤＡＴＡ１の処理が終了するまでは、画像データＰＤＡＴＡ２の処理を開始することができない。画像データＰＤＡＴＡ１の処理結果の画像データＡＯＵＴが出力されるまで、画像データＰＤＡＴＡ２の入力を止める必要がある。従って、図４のように、アクセラレータ回路４０がセレクタ４３を備えていても、画像処理装置の外部から入力された画像データ及びメインメモリ上の画像データを時分割で切り換えて処理することは現実的ではなかった。
【００１９】
次に、図２及び図３を参照して、実施形態のアクセラレータ回路１４について説明する。
【００２０】
図２は、図１のアクセラレータ回路１４の詳細構成を示すブロック図である。アクセラレータ回路１４は、バッファ回路２０及び演算回路３０を備える。バッファ回路２０は、画像入力回路１２から送られた第１の画像データと、ＤＭＡ制御回路１３から送られた第２の画像データとを取得して、一時的に格納する。演算回路３０は、第１又は第２の画像データのうちの予め決められたサイズ（３×３）の領域の画素データに対して、２次元フィルタの演算を実行する。
【００２１】
バッファ回路２０は、インターフェース回路２１、２４、バッファメモリ２２、２５、２次元レジスタ２３、２６、セレクタ２７、及び制御回路２８を備える。制御回路２８には、プロセッサ１５からの制御信号と、クロック発生器１７からのクロックＣＬＫとが入力される。制御回路２８は、イネーブル信号ＤＡＴＡ＿ＥＮ１、ＤＡＴＡ＿ＥＮ２をインターフェース回路２１、２４にそれぞれ送り、選択信号ＳＥＬをセレクタ２７に送る。
【００２２】
インターフェース回路２１は、画像入力回路１２から、画像データＰＤＡＴＡ１、クロックＰＣＬＫ１、及びイネーブル信号Ｈ＿ＥＮ１を受信する。イネーブル信号ＤＡＴＡ＿ＥＮ１は、画像データＰＤＡＴＡ１が有効であることを示す。インターフェース回路２１は、イネーブル信号ＤＡＴＡ＿ＥＮ１がハイレベルのときに画像データＰＤＡＴＡ１を取り込み、取り込んだ回数を示すカウント信号ＣＮＴ１を１だけインクリメントして制御回路２８に送る。インターフェース回路２１は、取り込んだ画像データＰＤＡＴＡ１をクロックＣＬＫで再取得して画像データＤＡＴＡ１を生成し、バッファメモリ２２に送る。バッファメモリ２２は、複数（例えば３個）のラインメモリＬＭ０〜ＬＭ２を備え、画像データＤＡＴＡ１を一時的に格納する。制御回路２８は、カウント信号ＣＮＴ１を用いて、バッファメモリ２２のラインメモリの書き込みアドレスを管理する。２次元レジスタ２３は、バッファメモリ２２に格納された画像データのうちの予め決められたサイズ（３×３）の領域の画素データＸｉｊ（０≦ｉ，ｊ≦２）を一時的に格納する。
【００２３】
インターフェース回路２４は、ＤＭＡ制御回路１３から、画像データＰＤＡＴＡ２、クロックＰＣＬＫ２、及びイネーブル信号Ｈ＿ＥＮ２を受信する。イネーブル信号ＤＡＴＡ＿ＥＮ２は、画像データＰＤＡＴＡ２が有効であることを示す。インターフェース回路２４は、イネーブル信号ＤＡＴＡ＿ＥＮ２がハイレベルのときに画像データＰＤＡＴＡ２を取り込み、取り込んだ回数を示すカウント信号ＣＮＴ２を１だけインクリメントして制御回路２８に送る。インターフェース回路２４は、取り込んだ画像データＰＤＡＴＡ２をクロックＣＬＫで再取得して画像データＤＡＴＡ２を生成し、バッファメモリ２５に送る。バッファメモリ２５は、複数（例えば３個）のラインメモリＬＭ０〜ＬＭ２を備え、画像データＤＡＴＡ２を一時的に格納する。制御回路２８は、カウント信号ＣＮＴ２を用いて、バッファメモリ２５のラインメモリの書き込みアドレスを管理する。２次元レジスタ２６は、バッファメモリ２５に格納された画像データのうちの予め決められたサイズ（３×３）の領域の画素データＸｉｊ（０≦ｉ，ｊ≦２）を一時的に格納する。
【００２４】
バッファメモリ２２、２５のそれぞれは、３個のラインメモリＬＭ０〜ＬＭ２を備えることに限らず、２次元レジスタ２３、２６の行数以下の個数のラインメモリを備えてもよい。
【００２５】
セレクタ２７は、制御回路２８からの選択信号ＳＥＬの制御下で、第１及び第２の画素データの一方を選択して演算回路３０に送る。制御回路２８は、２次元レジスタ２３の全要素に画素データが格納されているときのみ、当該画素データを演算回路３０に送るようにセレクタ２７を制御する。制御回路２８は、２次元レジスタ２６の全要素に画素データが格納されているときのみ、当該画素データを演算回路３０に送るようにセレクタ２７を制御する。
【００２６】
演算回路３０は、２次元レジスタ３１、乗算回路３２、及び加算器３３を備える。２次元レジスタ３１は、２次元フィルタのための３×３個の演算パラメータＣｉｊ（０≦ｉ，ｊ≦２）を予め格納している。乗算回路３２は９個の乗算器を含む。乗算回路３２及び加算器３３は、画素データＸｉｊ及び演算パラメータＣｉｊに対して数１の演算を行い、その結果として、処理された画像データＡＯＵＴを出力する。
【００２７】
上述したように、バッファ回路２０は、第１及び第２の画像データを一時的に格納するために、バッファメモリ２２、２５及び２次元レジスタ２３、２６を備えている。これにより、セレクタ２７を切り換えてから画像データを入力してから処理された画像データが出力されるまでの遅延時間を短縮し、画像処理装置２の外部から入力された画像データ及びメインメモリ１６上の画像データを時分割で切り換えて処理することができる。
【００２８】
セレクタ２７は、２次元レジスタ２３の全要素に画素データが格納されているときのみ、当該画素データを演算回路３０に送り、また、２次元レジスタ２６の全要素に画素データが格納されているときのみ、当該画素データを演算回路３０に送るように制御される。従って、セレクタ２７を切り換えてから処理された画像データが出力されるまでの遅延時間は、乗算回路３２及び加算器３３に起因する遅延時間のみになり、画像データの処理は数クロックで完了する。
【００２９】
例えば、カメラ１から画像処理装置２へのデータ転送速度が画像処理装置２内の半分である場合、アクセラレータ回路１４の使用率は、有効データ期間内でも約５０％になる。さらに、水平ブランキングの期間及び垂直ブランキングの期間が存在するので、アクセラレータ回路１４の使用率はさらに低くなる。そのような状況下では、画像処理装置２の外部から入力された画像データ及びメインメモリ１６上の画像データのいずれかを処理するようにセレクタ２７を制御することで、両方の画像データを処理することができる。
【００３０】
図３は、図２のアクセラレータ回路１４の動作を説明するタイミングチャートである。図３のタイミングチャートを参照し、具体的にクロック単位で説明する。例えば、カメラ１のクロックＰＣＬＫ１及び画像データＰＤＡＴＡ１の速度は、画像処理装置２のクロックＣＬＫの半分の速度であると仮定する。インターフェース回路２１は、取り込んだ画像データＰＤＡＴＡ１をクロックＣＬＫで再取得して画像データＤＡＴＡ１を生成し、バッファメモリ２２に送る。図３では、画像データＰＤＡＴＡ１、ＤＡＴＡ１に含まれる画素データを「Ｐｍ（ｎ）」で示す。「Ｐｍ（ｎ）」において、「ｍ」は水平画素データの番号を示し、「ｎ」はライン番号を示す。「Ｎ」は演算対象の画素データを含むライン番号を示す。３×３の２次元フィルタの演算処理には３ライン分の画素データが必要であり、Ｎ−１、Ｎ、Ｎ＋１番目のラインの画素データがすべてそろったときにＮ番目のラインの画素データに対する演算処理を行うことができる。図３では、図示の簡単化のために、画像データＰＤＡＴＡ１、ＤＡＴＡ１について、Ｎ＋１番目のラインの画素データのみを示す。バッファメモリ２２に格納された画像データＤＡＴＡ１の画素データは、４つの区間にわたる画素データ（Ｐ０（Ｎ＋１）〜Ｐ３（Ｎ＋１）、Ｐ４（Ｎ＋１）〜Ｐ７（Ｎ＋１）、…）ごとに、２次元レジスタ２３に格納される。２次元レジスタ２３の要素Ｘ００、Ｘ０１、Ｘ０２はシフトレジスタを構成し、要素Ｘ００に新たな画素データが入力されると、以前のデータが要素Ｘ０１、Ｘ０２へシフトする。同様に、２次元レジスタ２３の要素Ｘ１０、Ｘ１１、Ｘ１２はシフトレジスタを構成し、要素Ｘ１０に新たな画素データが入力されると、以前のデータが要素Ｘ１１、Ｘ１２へシフトする。同様に、２次元レジスタ２３の要素Ｘ２０、Ｘ２１、Ｘ２２はシフトレジスタを構成し、要素Ｘ２０に新たな画素データが入力されると、以前のデータが要素Ｘ２１、Ｘ２２へシフトする。２次元レジスタ２３の全要素に画素データが格納されたとき、制御回路２８は選択信号ＳＥＬをハイレベルに設定し、画素データを演算回路３０に転送する。説明の簡単化のため、乗算及び加算が１クロックで完了すると仮定する。この場合、２次元レジスタ２３に格納された画素データをセレクタ２７で選択してから１クロックで処理された画像データＡＯＵＴが出力される。従って、選択信号ＳＥＬがローレベルの期間は、メインメモリ１６上から転送された画像データＰＤＡＴＡ２を処理することができる。
【００３１】
実施形態のアクセラレータ回路１４によれば、セレクタ２７は、２次元レジスタ２３又は２６の全要素に画素データが格納されているときのみ、当該画素データを演算回路３０に送るように制御される。従って、セレクタ２７を切り換えてから処理された画像データが出力されるまでの遅延時間を、乗算回路３２及び加算器３３に起因する遅延時間のみに削減することができる。セレクタ２７を切り換えてから処理された画像データが出力されるまでの遅延時間が非常に少なくなるので、画像処理装置２の外部から入力された画像データ及びメインメモリ１６上の画像データを時分割で切り換えて処理することができる。
【００３２】
比較例のアクセラレータ回路４０では、セレクタ４３を切り換えてから演算処理が可能になる前に、バッファメモリ４４及び２次元レジスタ４５に画素データを格納する必要があり、多大な遅延が発生していた。一方、実施形態のアクセラレータ回路１４によれば、２次元レジスタ２３又は２６の全要素に画素データが格納されているときのみ、セレクタ２７を切り換えるので、乗算及び加算の他の遅延が発生しない。
【００３３】
実施形態のアクセラレータ回路１４によれば、画像データの演算処理を実行できない時間の増大を抑えながら、回路規模を削減することができる。
【００３４】
図１のアクセラレータ回路１４は、２つのデータソース（画像入力回路１２及びＤＭＡ制御回路１３）を備えていたが、３つ以上のデータソースを備えていてもよい。この場合、アクセラレータ回路は、複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備える。、バッファ回路は、複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリ及び複数Ｎ個の２次元レジスタと、制御回路と、セレクタとを備える。各バッファメモリは、複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納する。各２次元レジスタは、複数Ｎ個のバッファメモリのうちの対応する１つに格納された画像データのうちの予め決められたサイズの領域の画素データを一時的に格納する。セレクタは、制御回路の制御下で、複数Ｎ個の２次元レジスタのうちの１つに格納された画素データを選択して演算回路に送る。制御回路は、複数Ｎ個の２次元レジスタのうちの１つに画素データが格納されているとき画素データを演算回路に送るようにセレクタを制御する。
【００３５】
第２の実施形態．
図６は、本発明の第２の実施形態に係るアクセラレータ回路１４Ａの詳細構成を示すブロック図である。図６のアクセラレータ回路１４Ａは、バッファ回路２０Ａ及び演算回路３０Ａを備える。アクセラレータ回路１４Ａでは、画素データを格納する２次元レジスタが、バッファ回路２０Ａにではなく、演算回路３０Ａに設けられている。
【００３６】
バッファ回路２０Ａは、図２の２次元レジスタ２３、２６及びセレクタ２７に代えて、バッファメモリ２２、２５にそれぞれ格納された第１及び第２の画像データの一方を選択して演算回路３０Ａに送るセレクタ２７Ａを備える。演算回路３０Ａは、図２の構成要素に加えて、バッファ回路２０Ａから送られた第１又は第２の画像データのうちの予め決められたサイズの領域の画素データを一時的に格納する２次元レジスタ３４を備える。制御回路２８は、バッファメモリ２２に第１の画素データが格納されているときのみ、第１の画素データを演算回路３０Ａに送るようにセレクタ２７Ａを制御する。制御回路２８は、バッファメモリ２５に第２の画素データが格納されているときのみ、第２の画素データを演算回路３０Ａに送るようにセレクタ２７Ａを制御する。
【００３７】
アクセラレータ回路１４Ａは、図２の２つの２次元レジスタ２３、２５に代えて１つの２次元レジスタ３４を備えたことにより、図２のアクセラレータ回路１４よりもさらに回路規模を削減することができる。しかし、セレクタ２７Ａを切り換えてから２次元レジスタ３４に画素データを格納する必要があるので、セレクタ２７Ａを切り換えてから処理された画像データが出力されるまでに、図２のアクセラレータ回路１４よりも２クロック余分な遅延時間が生じてしまう。
【００３８】
図６のアクセラレータ回路１４Ａは、２つのデータソース（画像入力回路１２及びＤＭＡ制御回路１３）を備えていたが、３つ以上のデータソースを備えていてもよい。この場合、アクセラレータ回路は、複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備える。バッファ回路は、複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリと、制御回路と、セレクタとを備える。各バッファメモリは、複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納する。セレクタは、制御回路の制御下で、複数Ｎ個のバッファメモリのうちの１つに格納された画像データを選択して演算回路に送る。演算回路は、バッファ回路から送られた画像データのうちの予め決められたサイズの領域の画素データを一時的に格納する２次元レジスタを備える。制御回路は、複数Ｎ個のバッファメモリのうちの１つに画素データが格納されているとき画素データを演算回路に送るようにセレクタを制御する。
【００３９】
変形例．
図２及び図６のアクセラレータ回路１４、１４Ａにおいて、バッファメモリ２２、２５として、ラインメモリに代えて、フレームメモリ、又はフレームの一部を保存するメモリなどを使用してもよい。図２及び図６のアクセラレータ回路１４、１４Ａにおいて、２次元レジスタ２３、２６、３４として、シフトレジスタ、ルックアップテーブルなどを使用してもよい。
【００４０】
制御回路２８は、プロセッサ１５の制御下で、２次元レジスタ３１に格納された演算パラメータを書き換えてもよい。
【００４１】
アクセラレータ回路１４、１４Ａは、２次元フィルタの演算を実行することに限定されず、ラベリング、輪郭追跡、パターンマッチングなど、２次元のオペレータを使用する他の任意の画像処理を実行するように構成されてもよい。この場合、バッファ回路２０、２０Ａは図２及び図６と同様に構成されるが、演算回路３０、３０Ａは、乗算回路及び加算器に加えて、判定回路を備える必要がある。
【００４２】
本発明の態様に係るアクセラレータ回路及び画像処理装置によれば、以下の構成を備える。
【００４３】
本発明の第１の態様に係るアクセラレータ回路によれば、
画像処理装置のためのアクセラレータ回路において、上記アクセラレータ回路は、
複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、
上記複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備え、
上記バッファ回路は、
上記複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリ及び複数Ｎ個の２次元レジスタと、
制御回路と、
セレクタとを備え、
上記各バッファメモリは、上記複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納し、
上記各２次元レジスタは、上記複数Ｎ個のバッファメモリのうちの対応する１つに格納された画像データのうちの上記予め決められたサイズの領域の画素データを一時的に格納し、
上記セレクタは、上記制御回路の制御下で、上記複数Ｎ個の２次元レジスタのうちの１つに格納された画素データを選択して上記演算回路に送り、
上記制御回路は、上記複数Ｎ個の２次元レジスタのうちの１つに画素データが格納されているとき上記画素データを上記演算回路に送るように上記セレクタを制御することを特徴とする。
【００４４】
本発明の第２の態様に係るアクセラレータ回路によれば、第１の態様に係るアクセラレータ回路において、
上記各バッファメモリは、上記各２次元レジスタの行数以下の個数のラインメモリを備えることを特徴とする。
【００４５】
本発明の第３の態様に係るアクセラレータ回路によれば、
画像処理装置のためのアクセラレータ回路において、上記アクセラレータ回路は、
複数Ｎ個のデータソースから画像データを取得して一時的に格納するバッファ回路と、
上記複数Ｎ個のデータソースのうちの１つから取得された画像データのうちの予め決められたサイズの領域の画素データに対して予め決められた演算を実行する演算回路とを備え、
上記バッファ回路は、
複数Ｎ個のデータソースに対応する複数Ｎ個のバッファメモリと、
制御回路と、
セレクタとを備え、
上記各バッファメモリは、上記複数Ｎ個のデータソースのうちの対応する１つから取得された画像データを一時的に格納し、
上記セレクタは、上記制御回路の制御下で、上記複数Ｎ個のバッファメモリのうちの１つに格納された画像データを選択して上記演算回路に送り、
上記演算回路は、上記バッファ回路から送られた上記画像データのうちの上記予め決められたサイズの領域の画素データを一時的に格納する２次元レジスタを備え、
上記制御回路は、上記複数Ｎ個のバッファメモリのうちの１つに画素データが格納されているとき上記画素データを上記演算回路に送るように上記セレクタを制御することを特徴とする。
【００４６】
本発明の第４の態様に係るアクセラレータ回路によれば、第３の態様に係るアクセラレータ回路において、
上記各バッファメモリは、上記各２次元レジスタの行数以下の個数のラインメモリを備えることを特徴とする。
【００４７】
本発明の第５の態様に係る画像処理装置によれば、
プロセッサ及びメインメモリを備えた画像処理装置であって、上記画像処理装置は、
請求項１〜４のうちの１つに記載のアクセラレータ回路と、
上記画像処理装置の外部から取得された画像データを第１の画像データとして上記アクセラレータ回路に入力する画像入力回路と、
上記メインメモリ上の画像データを第２の画像データとして上記アクセラレータ回路に転送するＤＭＡ制御回路とを備えたことを特徴とする。
【符号の説明】
【００４８】
１…カメラ、
２…画像処理装置２、
１１…バス、
１２…画像入力回路、
１３…ＤＭＡ制御回路、
１４、１４Ａ…アクセラレータ回路、
１５…プロセッサ、
１６…メインメモリ、
１７…クロック発生器、
１８…画像出力回路、
２０、２０Ａ…バッファ回路、
２１、２４…インターフェース回路、
２２、２５…バッファメモリ、
２３、２６、３１、３４…２次元レジスタ、
２７、２７Ａ…セレクタ、
２８…制御回路、
３０、３０Ａ…演算回路、
３２…乗算回路、
３３…加算器。
【先行技術文献】
【特許文献】
【００４９】
【特許文献１】特開２００２−２１１０５０号公報
【特許文献２】特開２０１３−２３９１２０号公報
【図１】
2015207101.tif 000004
【図２】
2015207101.tif 000005
【図３】
2015207101.tif 000006
【図４】
2015207101.tif 000007
【図５】
2015207101.tif 000008
【図６】
2015207101.tif 000009