JP2010134846A - 画像処理装置及び画像処理プログラム - Google Patents
画像処理装置及び画像処理プログラム Download PDFInfo
- Publication number
- JP2010134846A JP2010134846A JP2008312344A JP2008312344A JP2010134846A JP 2010134846 A JP2010134846 A JP 2010134846A JP 2008312344 A JP2008312344 A JP 2008312344A JP 2008312344 A JP2008312344 A JP 2008312344A JP 2010134846 A JP2010134846 A JP 2010134846A
- Authority
- JP
- Japan
- Prior art keywords
- filter
- image data
- line
- image
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Image Processing (AREA)
Abstract
【課題】無駄な演算を行わないことで、処理性能を高めることができるようにする。
【解決手段】矩形フィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、その領域のフィルタ係数を出力するフィルタ形状判定部2と、画像データ格納部1の一時バッファ1aにより格納されている矩形領域の画像データの中から、フィルタ形状判定部2により特定された領域の画像データを読み出す入力画素セレクタ3とを設け、フィルタ演算部4がフィルタ形状判定部2から出力されたフィルタ係数を用いて、入力画素セレクタ3により読み出された画像データに対するフィルタ演算を行う。
【選択図】図1
【解決手段】矩形フィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、その領域のフィルタ係数を出力するフィルタ形状判定部2と、画像データ格納部1の一時バッファ1aにより格納されている矩形領域の画像データの中から、フィルタ形状判定部2により特定された領域の画像データを読み出す入力画素セレクタ3とを設け、フィルタ演算部4がフィルタ形状判定部2から出力されたフィルタ係数を用いて、入力画素セレクタ3により読み出された画像データに対するフィルタ演算を行う。
【選択図】図1
Description
この発明は、入力画像から矩形領域を選択して、その矩形領域に対するフィルタ処理を行う画像処理装置及び画像処理プログラムに関するものである。
従来より、入力画像から一部の矩形領域を選択し、その矩形領域と等しい大きさの矩形フィルタを使用して、その矩形領域に対するフィルタ演算を行う画像処理装置が広く使われている。
以下の特許文献1に開示されている画像処理装置は、矩形領域に対するフィルタ演算を行う際、メモリ容量を削減しつつ、処理効率低下を防ぐことができるような画像メモリを備えている。
以下の特許文献1に開示されている画像処理装置は、矩形領域に対するフィルタ演算を行う際、メモリ容量を削減しつつ、処理効率低下を防ぐことができるような画像メモリを備えている。
即ち、特許文献1に開示されている画像処理装置は、m画素×nライン(m、nは自然数)の画像からp画素×qライン(p、qは自然数)の矩形領域を選択して、フィルタ処理を実施する場合、その矩形領域の画像データをkビット×s画素(k、sは自然数)のシステムバスを介して、フィルタ回路のメモリ部に転送するが、メモリ容量の削減と処理効率の低下を防ぐため、そのメモリ部が複数のラインメモリを備えるとともに、ラインメモリ毎にフィルタ演算を行う演算回路を備えるようにしている。
従来の画像処理装置は以上のように構成されているので、矩形領域と等しい大きさの矩形フィルタを使用して、その矩形領域に対するフィルタ演算を行う。しかし、その矩形フィルタの中には、一般的に、フィルタ係数が0である領域が多く含まれているが、フィルタ係数が0であるか否かを判定することなく、フィルタ係数が0の領域についてもフィルタ演算を実施するようにしており、無駄な演算(フィルタ係数が0の領域については演算結果が0となるため、演算を省略することができる)が行われている課題があった。
また、フィルタ回路のライン数nと等しい数の演算回路を備えれば、メモリ容量の削減と処理効率の低下を防ぐことができるが、数多くの演算回路を実装する必要があるため、回路規模の増大を招いてしまうなどの課題があった。
また、フィルタ回路のライン数nと等しい数の演算回路を備えれば、メモリ容量の削減と処理効率の低下を防ぐことができるが、数多くの演算回路を実装する必要があるため、回路規模の増大を招いてしまうなどの課題があった。
この発明は上記のような課題を解決するためになされたもので、無駄な演算を行わないことで、処理性能を高めることができる画像処理装置及び画像処理プログラムを得ることを目的とする。
この発明に係る画像処理装置は、画像処理用のフィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、その領域のフィルタ係数を出力するフィルタ形状判定手段と、画像データ格納手段により格納されている矩形領域の画像データの中から、フィルタ形状判定手段により特定された領域の画像データを読み出す画像データ読出し手段とを設け、フィルタ演算手段がフィルタ形状判定手段から出力されたフィルタ係数を用いて、画像データ読出し手段により読み出された画像データに対するフィルタ演算を行うようにしたものである。
この発明によれば、画像処理用のフィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、その領域のフィルタ係数を出力するフィルタ形状判定手段と、画像データ格納手段により格納されている矩形領域の画像データの中から、フィルタ形状判定手段により特定された領域の画像データを読み出す画像データ読出し手段とを設け、フィルタ演算手段がフィルタ形状判定手段から出力されたフィルタ係数を用いて、画像データ読出し手段により読み出された画像データに対するフィルタ演算を行うように構成したので、無駄な演算を行わないことで、処理性能を高めることができる効果がある。
実施の形態1.
図1はこの発明の実施の形態1による画像処理装置を示す構成図である。
図1において、画像データ格納部1は入力画像(静止画又は動画)の中から所定の矩形領域(例えば、M画素×Mラインの矩形領域)を選択し、その矩形領域の画像データを一時バッファ1aに格納する処理を実施する。なお、画像データ格納部1は画像データ格納手段を構成している。
フィルタ形状判定部2は複数の矩形フィルタ(画像処理用のフィルタ)の中からフィルタ演算に使用する矩形フィルタを選択し、その矩形フィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域(矩形フィルタのフィルタ係数が0以外の領域)を特定し、フィルタ演算に必要な領域の画像データの読み出し開始位置と読み出しサイズを指定するとともに、フィルタ演算に必要な領域のフィルタ係数を出力する処理を実施する。なお、フィルタ形状判定部2はフィルタ形状判定手段を構成している。
図1はこの発明の実施の形態1による画像処理装置を示す構成図である。
図1において、画像データ格納部1は入力画像(静止画又は動画)の中から所定の矩形領域(例えば、M画素×Mラインの矩形領域)を選択し、その矩形領域の画像データを一時バッファ1aに格納する処理を実施する。なお、画像データ格納部1は画像データ格納手段を構成している。
フィルタ形状判定部2は複数の矩形フィルタ(画像処理用のフィルタ)の中からフィルタ演算に使用する矩形フィルタを選択し、その矩形フィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域(矩形フィルタのフィルタ係数が0以外の領域)を特定し、フィルタ演算に必要な領域の画像データの読み出し開始位置と読み出しサイズを指定するとともに、フィルタ演算に必要な領域のフィルタ係数を出力する処理を実施する。なお、フィルタ形状判定部2はフィルタ形状判定手段を構成している。
入力画素セレクタ3は画像データ格納部1の一時バッファ1aにより格納されている矩形領域の画像データの中から、フィルタ形状判定部2により指定された読み出し開始位置と読み出しサイズにしたがって、フィルタ演算に必要な領域の画像データを読み出して、その画像データをフィルタ演算部4に出力する処理を実施する。
ただし、入力画素セレクタ3は画像データをフィルタ演算部4に出力するに際して、画像データ格納部1の一時バッファ1aから読み出す画像データのライン番号mを、フィルタ演算部4を構成している1ライン演算器4aの個数Nで除算したときの余りRを求め、N個の1ライン演算器4aのうち、その余りRと等しいライン番号Cを有する1ライン演算器4aに対して、その画像データを出力する。
なお、入力画素セレクタ3は画像データ読出し手段を構成している。
ただし、入力画素セレクタ3は画像データをフィルタ演算部4に出力するに際して、画像データ格納部1の一時バッファ1aから読み出す画像データのライン番号mを、フィルタ演算部4を構成している1ライン演算器4aの個数Nで除算したときの余りRを求め、N個の1ライン演算器4aのうち、その余りRと等しいライン番号Cを有する1ライン演算器4aに対して、その画像データを出力する。
なお、入力画素セレクタ3は画像データ読出し手段を構成している。
フィルタ演算部4はフィルタ形状判定部2から出力されたフィルタ係数を用いて、入力画素セレクタ3から出力された画像データに対するフィルタ演算を実施する。
即ち、フィルタ演算部4は矩形フィルタのライン数Mより少ないライン数Nの1ライン演算器4aから構成されており、N個の1ライン演算器4aがライン単位のフィルタ演算を繰り返し実施することで、フィルタ演算の最終的な結果を出力する。
なお、フィルタ演算部4はフィルタ演算手段を構成している。
即ち、フィルタ演算部4は矩形フィルタのライン数Mより少ないライン数Nの1ライン演算器4aから構成されており、N個の1ライン演算器4aがライン単位のフィルタ演算を繰り返し実施することで、フィルタ演算の最終的な結果を出力する。
なお、フィルタ演算部4はフィルタ演算手段を構成している。
図1の例では、画像処理装置の構成要素である画像データ格納部1、フィルタ形状判定部2、入力画素セレクタ3及びフィルタ演算部4のそれぞれが専用のハードウェア(例えば、MPUを実装している半導体集積回路基板)で構成されているものを想定しているが、画像処理装置がコンピュータで構成される場合(コンピュータには、例えば、パソコンのほかに、後述する画像処理プログラムを実行することが可能な携帯電話、携帯情報端末やデジタルカメラなども含まれる)、画像データ格納部1、フィルタ形状判定部2、入力画素セレクタ3及びフィルタ演算部4の処理内容を記述している画像処理プログラムを当該コンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されている画像処プログラムを実行するようにしてもよい。
図2はこの発明の実施の形態1による画像処理装置の処理内容を示すフローチャートである。
図2はこの発明の実施の形態1による画像処理装置の処理内容を示すフローチャートである。
次に動作について説明する。
画像処理装置は、当該処理装置を搭載しているシステムのCPU(Central Processing Unit)から演算処理開始命令を受けることにより、動作を開始する。
画像データ格納部1は、演算処理開始命令を受けると、入力画像(静止画又は動画)の中から所定の矩形領域(例えば、M画素×Mラインの矩形領域)を選択し、その矩形領域の画像データを一時バッファ1aに格納する(ステップST1)。
画像処理装置は、当該処理装置を搭載しているシステムのCPU(Central Processing Unit)から演算処理開始命令を受けることにより、動作を開始する。
画像データ格納部1は、演算処理開始命令を受けると、入力画像(静止画又は動画)の中から所定の矩形領域(例えば、M画素×Mラインの矩形領域)を選択し、その矩形領域の画像データを一時バッファ1aに格納する(ステップST1)。
フィルタ形状判定部2は、複数の矩形フィルタの中からフィルタ演算に使用する矩形フィルタを選択する。ただし、矩形フィルタの選択方法は、特に限定するものではなく、任意の矩形フィルタが選択されれば足りるため詳細な説明を省略する。
ここで、図3は矩形フィルタの一例を示す説明図である。
図3に示すような24×24の矩形フィルタの組が用いられる場合、後述するフィルタ演算部4では、“灰色の部分の各画素の画素値の総和”と“白色の部分の各画素の画素値の総和”との差分を求めるような演算を実施する。
ここで、図3は矩形フィルタの一例を示す説明図である。
図3に示すような24×24の矩形フィルタの組が用いられる場合、後述するフィルタ演算部4では、“灰色の部分の各画素の画素値の総和”と“白色の部分の各画素の画素値の総和”との差分を求めるような演算を実施する。
具体的には、下記の式(1)に示すようなフィルタ演算が実施され、フィルタ演算の演算結果として、r(k)が得られる。
ただし、a(x,y)はフィルタ係数、p(x,y)は画素値である。画素値としては輝度(Y)、色差(Cb、Cr)などの値が用いられる。
ただし、実際の用途では、矩形フィルタの内部でフィルタ係数が0となる領域が大きいことが多い。
フィルタ演算部4が式(1)の演算を行う場合、フィルタ係数が0となる点(x,y)では、a(x,y)*p(x,y)の演算結果が“0”となるため、演算を省略することができる。
したがって、矩形フィルタの中で0以外の係数が含まれる領域の左上座標を(xmin,ymin)、右下座標を(xmax,ymax)とおくと、式(1)は下記の式(2)のように置き換えることができる。
フィルタ演算部4が式(1)の演算を行う場合、フィルタ係数が0となる点(x,y)では、a(x,y)*p(x,y)の演算結果が“0”となるため、演算を省略することができる。
したがって、矩形フィルタの中で0以外の係数が含まれる領域の左上座標を(xmin,ymin)、右下座標を(xmax,ymax)とおくと、式(1)は下記の式(2)のように置き換えることができる。
そこで、フィルタ形状判定部2は、フィルタ演算部4が式(1)の代わりに式(2)を用いて、フィルタ演算を行えるようにするため、その矩形フィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域(矩形フィルタのフィルタ係数が0以外の領域:図3の斜線部以外の領域)を特定する。
フィルタ形状判定部2は、フィルタ演算に必要な領域を特定すると、フィルタ演算に必要な領域の画像データの読み出し開始位置(xmin,ymin)と、読み出しサイズ(xmax−xmin,ymax−ymin)を指定するとともに、フィルタ演算に必要な領域のフィルタ係数をフィルタ演算部4に出力する(ステップST2)。
ただし、フィルタ形状判定部2は、上記の処理を毎回行うのではなく、予め(xmin,ymin)、(xmax,ymax)の情報を矩形フィルタに付加しておき、その情報を利用するようにしてもよい。
フィルタ形状判定部2は、フィルタ演算に必要な領域を特定すると、フィルタ演算に必要な領域の画像データの読み出し開始位置(xmin,ymin)と、読み出しサイズ(xmax−xmin,ymax−ymin)を指定するとともに、フィルタ演算に必要な領域のフィルタ係数をフィルタ演算部4に出力する(ステップST2)。
ただし、フィルタ形状判定部2は、上記の処理を毎回行うのではなく、予め(xmin,ymin)、(xmax,ymax)の情報を矩形フィルタに付加しておき、その情報を利用するようにしてもよい。
入力画素セレクタ3は、フィルタ形状判定部2から画像データの読み出し開始位置(xmin,ymin)と読み出しサイズ(xmax−xmin,ymax−ymin)の指定を受けると、その読み出し開始位置と読み出しサイズにしたがって、画像データ格納部1の一時バッファ1aにより格納されている矩形領域の画像データの中から、フィルタ演算に必要な領域の画像データを読み出して、その画像データをフィルタ演算部4に出力する(ステップST3)。
ただし、矩形フィルタのライン数がM、フィルタ演算部4を構成している1ライン演算器4aの個数がN(M≧N)であるとき、従来例のように、単純に矩形フィルタの形状に応じて、読み出し開始位置と読み出し方向を決定するようにすると、図4(a)に示すように、フィルタ演算部4を構成している1ライン演算器4aの各々に出力する画像データとして、矩形フィルタのライン数Mと等しいM通りの可能性を考慮する必要がある。図4では、説明の簡略化のため、画像データがライン単位で読み出されるものとしている。
この場合、入力画素セレクタ3は、Mラインから1ラインを選択するセレクタとなり、セレクタの規模が増大する問題点を生じる。
ただし、矩形フィルタのライン数がM、フィルタ演算部4を構成している1ライン演算器4aの個数がN(M≧N)であるとき、従来例のように、単純に矩形フィルタの形状に応じて、読み出し開始位置と読み出し方向を決定するようにすると、図4(a)に示すように、フィルタ演算部4を構成している1ライン演算器4aの各々に出力する画像データとして、矩形フィルタのライン数Mと等しいM通りの可能性を考慮する必要がある。図4では、説明の簡略化のため、画像データがライン単位で読み出されるものとしている。
この場合、入力画素セレクタ3は、Mラインから1ラインを選択するセレクタとなり、セレクタの規模が増大する問題点を生じる。
この実施の形態1では、セレクタ規模の増大を防止するため、入力画素セレクタ3が画像データをフィルタ演算部4に出力するに際して、画像データ格納部1の一時バッファ1aから読み出す画像データのライン番号m(m=0+ymin,1+ymin,・・・,(M−1)+ymin)を、フィルタ演算部4を構成している1ライン演算器4aの個数N(M≧N)で除算したときの余りRを求め、N個の1ライン演算器4aのうち、その余りRと等しいライン番号Cを有する1ライン演算器4aに対して、その画像データを出力するようにしている(図4(b)を参照)。
ここで、図5はフィルタ演算部4を構成している1ライン演算器4a(1ライン演算器4aのライン番号C)と画像データのライン番号mとの対応関係を示す説明図である。
図5では、ライン番号0の1ライン演算器4aである演算器(1)には、ライン番号m(m=0+ymin,1+ymin,・・・,(M−1)+ymin)の画像データのうち、ライン番号mをNで割った余りRが“0”のラインの画像データのみが入力され、ライン番号1の演算器(2)には、ライン番号mをNで割った余りRが“1”のラインの画像データのみが入力され、ライン番号N−1の演算器(N)には、ライン番号mをNで割った余りRが“N−1”のラインの画像データのみが入力される例を示している。
これにより、入力画素セレクタ3では、(M/N)ラインから1ラインを選択するだけでよいので、セレクタ規模をN分の1に削減することができる。
図5では、ライン番号0の1ライン演算器4aである演算器(1)には、ライン番号m(m=0+ymin,1+ymin,・・・,(M−1)+ymin)の画像データのうち、ライン番号mをNで割った余りRが“0”のラインの画像データのみが入力され、ライン番号1の演算器(2)には、ライン番号mをNで割った余りRが“1”のラインの画像データのみが入力され、ライン番号N−1の演算器(N)には、ライン番号mをNで割った余りRが“N−1”のラインの画像データのみが入力される例を示している。
これにより、入力画素セレクタ3では、(M/N)ラインから1ラインを選択するだけでよいので、セレクタ規模をN分の1に削減することができる。
フィルタ演算部4は、フィルタ形状判定部2からフィルタ演算に必要な領域のフィルタ係数を受け、入力画素セレクタ3からフィルタ演算に必要な領域の画像データを受けると、上記の式(2)に示すように、そのフィルタ係数を用いて、その画像データに対するフィルタ演算を実施する。
即ち、フィルタ演算部4におけるN個の1ライン演算器4aは、入力画素セレクタ3から出力された画像データに対応するラインのフィルタ係数を用いて、その画像データに対するフィルタ演算を実施する(ステップST4)。
即ち、フィルタ演算部4におけるN個の1ライン演算器4aは、入力画素セレクタ3から出力された画像データに対応するラインのフィルタ係数を用いて、その画像データに対するフィルタ演算を実施する(ステップST4)。
N個の1ライン演算器4aが設けられている場合、1回の処理サイクルで、Nライン分の画像データに対するフィルタ演算を一度に行うことができるが、画像データのライン数Mが1ライン演算器4aの並列度Nより大きい場合、1回の処理サイクルで、フィルタ演算を終了することができないので(ステップST5)、入力画素セレクタ3が未だフィルタ演算を実施していない画像データをN個の1ライン演算器4aに出力する(ステップST6)。
具体的には、M≧2×Nの場合、少なくとも2以上の処理サイクルを必要とし、例えば、2回目の処理サイクルでは、N+1〜2Nライン目の画像データをN個の1ライン演算器4aに出力する。
具体的には、M≧2×Nの場合、少なくとも2以上の処理サイクルを必要とし、例えば、2回目の処理サイクルでは、N+1〜2Nライン目の画像データをN個の1ライン演算器4aに出力する。
フィルタ演算部4の1ライン演算器4aは、次の処理サイクルに移行する際、今回の処理サイクルの演算結果を図示せぬメモリに格納する。
フィルタ演算部4は、ライン数Mの画像データに対するフィルタ演算が終了すると、図示せぬメモリから各処理サイクルにおける1ライン演算器4aの演算結果を読み出し、それらの演算結果を出力する。
フィルタ演算部4は、ライン数Mの画像データに対するフィルタ演算が終了すると、図示せぬメモリから各処理サイクルにおける1ライン演算器4aの演算結果を読み出し、それらの演算結果を出力する。
ライン数Mの画像データに対するフィルタ演算が終了すると、他の矩形フィルタを用いて、フィルタ演算を実施する必要があれば(ステップST7)、フィルタ形状判定部2が他の矩形フィルタを選択して(ステップST8)、ステップST2の処理に移行し、ステップST3〜ステップST7の処理を繰り返し実施する。
他の矩形フィルタを用いて、フィルタ演算を実施する必要がなければ、例えば、画像処理装置を搭載しているシステムのCPUが、入力画像に含まれている全ての矩形領域についてフィルタ演算が終了しているか否かを判定し(ステップST9)、全ての矩形領域についてフィルタ演算が終了していなければ、ステップST1の処理に戻り、画像データ格納部1がフィルタ演算を未だ実施していない矩形領域の画像データを一時バッファ1aに格納して、ステップST2〜ステップST9の処理を繰り返し実施する。
なお、次の矩形領域の格納処理による性能低下が起こらないようにするためには、次の矩形領域に含まれる画像データをあらかじめ読み出しておくのが望ましい。
全ての矩形領域についてフィルタ演算が終了していれば、一連の処理を終了する。
なお、次の矩形領域の格納処理による性能低下が起こらないようにするためには、次の矩形領域に含まれる画像データをあらかじめ読み出しておくのが望ましい。
全ての矩形領域についてフィルタ演算が終了していれば、一連の処理を終了する。
ここで、フィルタ演算部4を構成している1ライン演算器4aの個数が4個、画像データのライン数Mが24であるとき、4個の1ライン演算器4aに入力される画像データの具体例に説明する。
図6はフィルタ演算部4を構成している4個の1ライン演算器4a(1ライン演算器4aのライン番号C)とライン数24の画像データのライン番号mとの対応関係を示す説明図である。
ただし、図6では、説明の簡単化のため、ライン番号m(m=0,1,2,・・・,23)の画像データが、フィルタ演算に必要な領域の画像データであるとしている。
図6はフィルタ演算部4を構成している4個の1ライン演算器4a(1ライン演算器4aのライン番号C)とライン数24の画像データのライン番号mとの対応関係を示す説明図である。
ただし、図6では、説明の簡単化のため、ライン番号m(m=0,1,2,・・・,23)の画像データが、フィルタ演算に必要な領域の画像データであるとしている。
図6の例では、ライン番号0の1ライン演算器4aである演算器(1)には、ライン番号mの画像データのうち、ライン番号mを“4”で割った余りRが“0”のラインの画像データ(ライン番号0,4,8,・・・,20の画像データ)のみが入力され、ライン番号1の演算器(2)には、ライン番号mを“4”で割った余りRが“1”のラインの画像データ(ライン番号1,5,9,・・・,21の画像データ)のみが入力される。
また、ライン番号2の演算器(3)には、ライン番号mを“4”で割った余りRが“2”のラインの画像データ(ライン番号2,6,10,・・・,22の画像データ)のみが入力され、ライン番号3の演算器(4)には、ライン番号mを“4”で割った余りRが“3”のラインの画像データ(ライン番号3,7,11,・・・,23の画像データ)のみが入力される。
また、ライン番号2の演算器(3)には、ライン番号mを“4”で割った余りRが“2”のラインの画像データ(ライン番号2,6,10,・・・,22の画像データ)のみが入力され、ライン番号3の演算器(4)には、ライン番号mを“4”で割った余りRが“3”のラインの画像データ(ライン番号3,7,11,・・・,23の画像データ)のみが入力される。
以上で明らかなように、この実施の形態1によれば、矩形フィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、その領域のフィルタ係数を出力するフィルタ形状判定部2と、画像データ格納部1の一時バッファ1aにより格納されている矩形領域の画像データの中から、フィルタ形状判定部2により特定された領域の画像データを読み出す入力画素セレクタ3とを設け、フィルタ演算部4がフィルタ形状判定部2から出力されたフィルタ係数を用いて、入力画素セレクタ3により読み出された画像データに対するフィルタ演算を行うように構成したので、無駄な演算を行わないことで、処理性能を高めることができる効果を奏する。
また、この実施の形態1によれば、フィルタ演算部4が矩形フィルタのライン数Mより少ないライン数Nの1ライン演算器4aから構成されており、N個の1ライン演算器4aがライン単位のフィルタ演算を繰り返し実施することで、フィルタ演算の最終的な結果を出力するように構成したので、従来例よりも少ない演算器で(従来例は、フィルタ回路のライン数と等しい数の演算回路を実装)、フィルタ演算を実施することができるようになり、回路規模の低減を図ることができる効果を奏する。
また、この実施の形態1によれば、入力画素セレクタ3が画像データをフィルタ演算部4に出力するに際して、画像データ格納部1の一時バッファ1aから読み出す画像データのライン番号m(m=0+ymin,1+ymin,・・・,(M−1)+ymin)を、フィルタ演算部4を構成している1ライン演算器4aの個数Nで除算したときの余りRを求め、N個の1ライン演算器4aのうち、その余りRと等しいライン番号Cを有する1ライン演算器4aに対して、その画像データを出力するように構成したので、従来より、セレクタ規模をN分の1に削減することができる効果を奏する。
実施の形態2.
上記実施の形態1では、N個の1ライン演算器4aがライン単位のフィルタ演算を繰り返し実施するものについて示したが、入力画素セレクタ3がN個の1ライン演算器4aに対する画像データの割り当てタイミングを制御して、フィルタ演算部4におけるフィルタ演算の処理サイクル数を短縮するようにしてもよい。
具体的には、以下の通りである。
上記実施の形態1では、N個の1ライン演算器4aがライン単位のフィルタ演算を繰り返し実施するものについて示したが、入力画素セレクタ3がN個の1ライン演算器4aに対する画像データの割り当てタイミングを制御して、フィルタ演算部4におけるフィルタ演算の処理サイクル数を短縮するようにしてもよい。
具体的には、以下の通りである。
図7はライン番号7〜12の画像データを4個の1ライン演算器4aに与えて、先頭のライン番号の画像データから順番にフィルタ演算を行う場合の処理サイクルと、各1ライン演算器4aに入力される画像データのライン番号との対応関係を示す説明図である。
単純に、1ライン演算器4aに入力されるライン番号を固定し、先頭のライン番号から順番に処理する方式では、図7に示すように、1サイクル目では、1つの1ライン演算器4aがライン番号7の画像データについてのみフィルタ演算を実施する。
2サイクル目では、4つの1ライン演算器4aがライン番号8〜11の画像データについてフィルタ演算を実施するが、3サイクル目では、1つの1ライン演算器4aがライン番号12の画像データについてのみフィルタ演算を実施する。
図7において、×印を付している箇所では、フィルタ演算が行われておらず、1ライン演算器4aが有効に使用されていない。このため、合計で3サイクルを要している。
単純に、1ライン演算器4aに入力されるライン番号を固定し、先頭のライン番号から順番に処理する方式では、図7に示すように、1サイクル目では、1つの1ライン演算器4aがライン番号7の画像データについてのみフィルタ演算を実施する。
2サイクル目では、4つの1ライン演算器4aがライン番号8〜11の画像データについてフィルタ演算を実施するが、3サイクル目では、1つの1ライン演算器4aがライン番号12の画像データについてのみフィルタ演算を実施する。
図7において、×印を付している箇所では、フィルタ演算が行われておらず、1ライン演算器4aが有効に使用されていない。このため、合計で3サイクルを要している。
そこで、この実施の形態2では、入力画素セレクタ3がN個の1ライン演算器4aに対する画像データの割り当てタイミングを制御して、N個の1ライン演算器4aが有効に使用されるようにしている。
図8は入力画素セレクタ3が4個の1ライン演算器4aに対する画像データの割り当てタイミングを制御する場合の処理サイクルと、各1ライン演算器4aに入力される画像データのライン番号との対応関係を示す説明図である。
1サイクル目では、1つの1ライン演算器4aがライン番号7の画像データについてフィルタ演算を実施するほか、図7では使用されていない3つの1ライン演算器4aについても、ライン番号8〜11の画像データに対するフィルタ演算を実施するように、画像データの割り当てタイミングを制御する。
2サイクル目では、2つの1ライン演算器4aがライン番号11,12の画像データについてフィルタ演算を実施することで、フィルタ演算を完了する。
このため、合計で、2サイクルでフィルタ演算を終了することができる。
図8は入力画素セレクタ3が4個の1ライン演算器4aに対する画像データの割り当てタイミングを制御する場合の処理サイクルと、各1ライン演算器4aに入力される画像データのライン番号との対応関係を示す説明図である。
1サイクル目では、1つの1ライン演算器4aがライン番号7の画像データについてフィルタ演算を実施するほか、図7では使用されていない3つの1ライン演算器4aについても、ライン番号8〜11の画像データに対するフィルタ演算を実施するように、画像データの割り当てタイミングを制御する。
2サイクル目では、2つの1ライン演算器4aがライン番号11,12の画像データについてフィルタ演算を実施することで、フィルタ演算を完了する。
このため、合計で、2サイクルでフィルタ演算を終了することができる。
実施の形態3.
上記実施の形態1,2では、フィルタ演算部4がN個の1ライン演算器4aから構成されているものについて示したが、図9に示すように、フィルタ演算部4がN×L個の1ライン演算器4a、即ち、並列度がN×L(NはY方向の並列度、LはX方向の並列度)の1ライン演算器4aから構成されていてもよい。
この場合、フィルタ演算に必要な領域のX方向のサイズが小さい場合、1ライン演算器4aの利用効率を高くして、処理性能を高めることができる。
上記実施の形態1,2では、フィルタ演算部4がN個の1ライン演算器4aから構成されているものについて示したが、図9に示すように、フィルタ演算部4がN×L個の1ライン演算器4a、即ち、並列度がN×L(NはY方向の並列度、LはX方向の並列度)の1ライン演算器4aから構成されていてもよい。
この場合、フィルタ演算に必要な領域のX方向のサイズが小さい場合、1ライン演算器4aの利用効率を高くして、処理性能を高めることができる。
図10はY方向の並列度がN=4、X方向の並列度がL=2であるとき、フィルタ演算部4を構成している1ライン演算器4aと画像データのライン番号mとの対応関係を示す説明図である。
例えば、4ライン分の1ライン演算器4aで6ライン分の演算を行う場合、図7に示す制御方式では3サイクルを要し、図8に示す制御方式では2サイクルを要する。
この実施の形態3では、図10に示すように、各ラインの演算器を2分割しているので、例えば、ライン番号7〜12の画像データに対するフィルタ演算を行う場合、演算器(1−1)〜(4−1)がライン番号7〜10の画像データ、演算器(1−2)〜(4−2)がライン番号11〜12の画像データに対するフィルタ演算を同一サイクルで並列に実行することにより、同様の演算を1サイクルで終了させることができる。
ただし、矩形フィルタにおいて、フィルタ演算に必要な領域のX方向サイズが、矩形フィルタの全体のX方向サイズの1/2より小さい場合に限られる。
例えば、4ライン分の1ライン演算器4aで6ライン分の演算を行う場合、図7に示す制御方式では3サイクルを要し、図8に示す制御方式では2サイクルを要する。
この実施の形態3では、図10に示すように、各ラインの演算器を2分割しているので、例えば、ライン番号7〜12の画像データに対するフィルタ演算を行う場合、演算器(1−1)〜(4−1)がライン番号7〜10の画像データ、演算器(1−2)〜(4−2)がライン番号11〜12の画像データに対するフィルタ演算を同一サイクルで並列に実行することにより、同様の演算を1サイクルで終了させることができる。
ただし、矩形フィルタにおいて、フィルタ演算に必要な領域のX方向サイズが、矩形フィルタの全体のX方向サイズの1/2より小さい場合に限られる。
この実施の形態3では、矩形フィルタのX方向の有効サイズ(フィルタ演算に必要な領域のX方向サイズ)が横幅の1/L以下のときには、本来、次のサイクルで演算するはずのラインのフィルタ演算を、空いている演算器を使って行うことにより、演算器の利用効率を高め、処理性能を高めることができる。
1 画像データ格納部(画像データ格納手段)、1a 一時バッファ、2 フィルタ形状判定部(フィルタ形状判定手段)、3 入力画素セレクタ(画像データ読出し手段)、4 フィルタ演算部(フィルタ演算手段)、4a 1ライン演算器。
Claims (6)
- 入力画像の中から所定の矩形領域を選択し、上記矩形領域の画像データを格納する画像データ格納手段と、画像処理用のフィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、上記領域のフィルタ係数を出力するフィルタ形状判定手段と、上記画像データ格納手段により格納されている矩形領域の画像データの中から、上記フィルタ形状判定手段により特定された領域の画像データを読み出す画像データ読出し手段と、上記フィルタ形状判定手段から出力されたフィルタ係数を用いて、上記画像データ読出し手段により読み出された画像データに対するフィルタ演算を行うフィルタ演算手段とを備えた画像処理装置。
- フィルタ形状判定手段は、フィルタのフィルタ係数が0以外の領域がフィルタ演算に必要な領域であると判定することを特徴とする請求項1記載の画像処理装置。
- フィルタ演算手段がフィルタのライン数より少ないライン数の演算器から構成されており、複数の演算器がライン単位のフィルタ演算を繰り返し実施することで、フィルタ演算の最終的な結果を得ることを特徴とする請求項1または請求項2記載の画像処理装置。
- 画像データ読出し手段は、画像データ格納手段から読み出す画像データのライン番号をフィルタ演算手段を構成している演算器の数で除算したときの余りを求め、上記複数の演算器のうち、その余りと等しいライン番号を有する演算器に対して、上記画像データを出力することを特徴とする請求項3記載の画像処理装置。
- 画像データ読出し手段がフィルタ演算手段を構成している複数の演算器に対する画像データの割り当てタイミングを制御して、フィルタ演算の処理サイクル数を短縮することを特徴とする請求項4記載の画像処理装置。
- 入力画像の中から所定の矩形領域を選択し、上記矩形領域の画像データを格納する画像データ格納処理手順と、画像処理用のフィルタの形状とフィルタ係数を判別することで、フィルタ演算に必要な領域を特定するとともに、上記領域のフィルタ係数を出力するフィルタ形状判定処理手順と、上記画像データ格納処理手順により格納されている矩形領域の画像データの中から、上記フィルタ形状判定処理手順により特定された領域の画像データを読み出す画像データ読出し処理手順と、上記フィルタ形状判定処理手順から出力されたフィルタ係数を用いて、上記画像データ読出し処理手順により読み出された画像データに対するフィルタ演算を行うフィルタ演算処理手順とをコンピュータに実行させるための画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008312344A JP2010134846A (ja) | 2008-12-08 | 2008-12-08 | 画像処理装置及び画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008312344A JP2010134846A (ja) | 2008-12-08 | 2008-12-08 | 画像処理装置及び画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010134846A true JP2010134846A (ja) | 2010-06-17 |
Family
ID=42346059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008312344A Pending JP2010134846A (ja) | 2008-12-08 | 2008-12-08 | 画像処理装置及び画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010134846A (ja) |
-
2008
- 2008-12-08 JP JP2008312344A patent/JP2010134846A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046702B (zh) | 神经网络计算加速器及其执行的方法 | |
JP2010134697A (ja) | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 | |
CN108073549B (zh) | 卷积运算装置及方法 | |
US20040005006A1 (en) | Image processing apparatus, image processing program and image processing method | |
JP4637640B2 (ja) | 図形描画装置 | |
US7502035B1 (en) | Apparatus, system, and method for multi-sample pixel coalescing | |
CN114596339A (zh) | 一种帧处理设备、方法及帧处理器 | |
US7876330B2 (en) | Color conversion apparatus, filter processing apparatus and color conversion method | |
US8355580B2 (en) | Method and system for generating boundary in the process of rasterizing vector graphic as well as method for producing the system | |
US20070279434A1 (en) | Image processing device executing filtering process on graphics and method for image processing | |
JPH10208030A (ja) | 画像処理装置および処理方法 | |
CN110381321B (zh) | 一种用于运动补偿的插值计算并行实现方法 | |
JP2010134846A (ja) | 画像処理装置及び画像処理プログラム | |
JP4621944B2 (ja) | 画像フィルタ装置、方法およびコンピュータプログラム | |
US20100074336A1 (en) | Fractional motion estimation engine | |
US8503793B2 (en) | Correlation processing apparatus and medium readable by correlation processing apparatus | |
McGuire | Efficient, high-quality bayer demosaic filtering on gpus | |
US7916151B1 (en) | Partial texture loads | |
JP2008035455A (ja) | 画像処理装置、画像処理プログラム | |
JP2009044426A (ja) | 画像処理装置 | |
KR101540300B1 (ko) | 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법 | |
CN115660935B (zh) | 一种分块渲染模式图形处理方法及系统 | |
KR102667134B1 (ko) | 싱글포트 메모리를 포함하는 신경망 하드웨어 가속기 및 그 동작 방법 | |
Sun et al. | CFU: Multi-purpose configurable filtering unit for mobile multimedia applications on graphics hardware | |
JP4203480B2 (ja) | 画像処理プロセッサ |