説明

デジタル信号処理装置およびプログラム

【課題】 1演算周期内に実行可能な乗加算処理の回数を増加させることが可能なDSPを提供する。
【解決手段】 制御部1は、各演算周期において、当該演算周期での信号処理結果を得るのに必要な乗加算処理の一部を乗加算器MAC0に実行させ、残りの乗加算処理を当該演算周期の直前の1または複数の演算周期において乗加算器MAC1に実行させ、各演算周期において、乗加算器MAC0およびMAC1に実行させる乗加算処理のうち共通のサンプルを対象とした複数の乗加算処理を実行するために当該共通のサンプルをデータメモリ3から読み出し、当該複数の乗加算処理を乗加算器MAC0およびMAC1に実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、音声、画像等のフィルタ処理に好適なデジタル信号処理装置およびプログラムに関する。
【背景技術】
【0002】
周知の通り、DSP(Digital Signal Processor;デジタル信号処理装置)は、高速動作可能な乗加算器を備えており、一定時間長の演算周期毎にこの乗加算器を利用した各種の信号処理を繰り返すプロセッサである。例えば音声信号の信号処理を実行するDSPの場合、音声信号のサンプリング周期を演算周期とし、演算周期毎に処理対象サンプル列を更新しつつ処理対象サンプル列の各サンプルに対する係数の乗算処理と乗算結果の加算処理を繰り返す。音声信号に対するFIR(Finite Impulse Response;有限インパルス応答)フィルタ処理を例に挙げると、あるサンプリング周期(演算周期)T(n)において、DSPは次式に示す各乗加算処理を乗加算器に順次実行させる。
ACC=C(0)*X(n)
ACC+=C(1)*X(n−1)
ACC+=C(2)*X(n−2)

ACC+=C(k−2)*X(n−k+2)
ACC+=C(k−1)*X(n−k+1)
……(1)
【0003】
ここで、X(n)は、当該サンプリング周期T(n)において、処理対象サンプル列に加わったサンプル、X(n−j)は、当該サンプリング周期T(n)のjサンプリング周期だけ前のサンプリング周期T(n−j)において処理対象サンプル列に加わったサンプルである。また、“*”は乗算処理を示す。また、“ACC=”は、右辺の乗算結果をアキュムレータACCに格納する処理を示し、“ACC+=”は、右辺の乗算結果を現状のアキュムレータACCの格納内容に加えたものをアキュムレータACCに格納する処理を示す。
【0004】
そして、新たなサンプリング周期T(n+1)になると、DSPは次式に示す各乗加算処理を乗加算器に順次実行させる。
ACC=C(0)*X(n+1)
ACC+=C(1)*X(n)
ACC+=C(2)*X(n−1)

ACC+=C(k−2)*X(n−k+3)
ACC+=C(k−1)*X(n−k+2)
……(2)
【0005】
このように、サンプリング周期T(n+1)では、新たなサンプルX(n+1)を処理対象サンプル列に加えるとともに、最も古いサンプルX(n−k+1)を処理対象サンプル列から追い出すサンプル列更新処理が行われ、このサンプル列更新処理を経た処理対象サンプル列X(n+1)〜X(n−k+2)に対して、サンプリング周期T(n)において使用したものを同じ係数列C(0)〜C(k−1)を用いた乗加算処理(この例では畳み込み演算処理)が実行される。
【0006】
以上、音声信号に対するFIRフィルタ処理を例に挙げたが、IIRフィルタ(Infinite
Impulse Response;無限インパルス応答)処理等の他の信号処理を実行する動作も基本的に上記と同様である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−319941号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、DSPを利用した電子機器として高機能なものを実現しようとすると、DSPの実行対象である信号処理が大規模化し、1演算周期の間に実行すべき乗加算処理の回数が増加することとなる。しかしながら、乗加算器が1演算周期の間に実行可能な乗加算処理の回数には限界がある。従来技術の下では、この乗加算処理の実行回数の限界がDSPを利用した電子機器の高機能化の障害となっていた。
【0009】
この問題を解決するために、例えば2個の乗加算器をDSPに設けることが考えられる。この2個の乗加算器を利用して、2種類の乗加算処理を並列実行させることができれば、計算上は、1演算周期内に実行可能な乗加算処理の回数を2倍にすることができる。
【0010】
しかしながら、2個の乗加算器を利用した2種類の乗加算処理を並列実行するためには、それらの乗加算処理に使用する2個のサンプルをメモリから読み出さなくてはならない。現状の技術では、メモリのアクセス時間の制約があるため、乗加算器が乗加算処理を1回実行する1サイクルの間に2個のサンプルをメモリから読み出すことは困難である。このため、1演算周期内に実行可能な乗加算処理の回数を増加させることは困難である。
【0011】
この問題を解決するために、例えばメモリの1アドレスに対応した記憶領域内にサンプル2個を格納し、必要なサンプルを読み出すためのメモリアクセス回数を減らす方法を採ることも考えられる。すなわち、例えば前掲式(1)の演算に使用するサンプルX(n)およびX(n−1)の組、サンプルX(n−2)およびX(n−3)の組、…を各々1アドレスに対応した各記憶領域に格納しておくのである。
【0012】
この場合、上述したサンプリング周期T(n)では、サンプルX(n)およびX(n−1)の組を1回のメモリアクセスにより読み出して係数C(0)およびC(1)と各サンプルとの乗算および乗算結果の加算を実行し、後続のサンプルの組についても同様の演算を繰り返すことが可能である。
【0013】
しかしながら、次のサンプリング周期T(n+1)になると、前掲式(2)に示すように、係数C(0)およびC(1)との乗算に使用するサンプルは、サンプルX(n+1)およびX(n)の組となる。これらのサンプルの組は、1アドレスに対応した記憶領域に格納されていないため、1回のメモリアクセスにより読み出すことはできない。
【0014】
このように1アドレスに対応した記憶領域に2個のサンプルを格納する方法を採ったとしても、複数の演算周期を通じてみると、メモリアクセス回数を減らすことができない。結局、この方法を採ったとしても、1演算周期内に実行可能な乗加算処理の回数を増加させることは困難である。
【0015】
本発明は以上説明した事情に鑑みてなされたものであり、1演算周期内に実行可能な乗加算処理の回数を増加させることが可能なDSPおよびそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【0016】
この発明は、演算周期毎に、処理対象サンプル列を更新しつつ、処理対象サンプル列の各サンプルと係数とを乗算し、各乗算結果を加算した信号処理結果を生成する信号処理を繰り返すデジタル信号処理装置において、係数とサンプルとを乗算し、乗算結果と他のデータとの加算を行う乗加算処理を各々実行する複数の乗加算器と、各演算周期において、当該演算周期での信号処理結果を得るのに必要な乗加算処理の一部を前記複数の乗加算器のうちの1つの乗加算器に実行させ、残りの乗加算処理を当該演算周期の直前の1または複数の演算周期において前記複数の乗加算器のうちの他の乗加算器に実行させ、各演算周期において、前記複数の乗加算器に実行させる乗加算処理のうち共通のサンプルを対象とした複数の乗加算処理を実行するために当該共通のサンプルをメモリから読み出し、当該複数の乗加算処理を前記複数の乗加算器に実行させる制御手段とを具備することを特徴とするデジタル信号処理装置を提供する。また、この発明は、コンピュータを上記複数の乗加算器および制御手段として機能させるプログラムを提供する。
【0017】
かかる発明によれば、複数の連続した演算周期内において、共通のサンプルを対象とする複数の乗加算処理が1回のメモリからのサンプル読み出し後に同時に実行される。従って、1演算周期内に実行可能な乗加算処理の回数を増加させることができる。
【0018】
なお、DSPの高速化技術に関する文献として特許文献1がある。しかしながら、この特許文献1は、FIRフィルタ処理において、同一係数との乗算を行うサンプルを予め加算して加算結果を当該係数と乗算することにより乗算回数を減らす技術を開示するものであり、本願発明のようにサンプルのメモリからの読み出し回数を減らす手段を開示するものではない。
【図面の簡単な説明】
【0019】
【図1】この発明の第1実施形態であるDSPの構成を示すブロック図である。
【図2】同DSPの実行対象の例である各種のフィルタ処理を示す図である。
【図3】同DSPの第1のフィルタ処理実行例を示す図である。
【図4】同DSPの第2のフィルタ処理実行例を示す図である。
【図5】同DSPの第3のフィルタ処理実行例を示す図である。
【図6】この発明の第2実施形態であるDSPのフィルタ処理実行例を示す図である。
【発明を実施するための形態】
【0020】
以下、図面を参照し、この発明の実施形態について説明する。
<第1実施形態>
図1は、この発明の第1実施形態であるDSPの構成を示すブロック図である。
図1に示すように、本実施形態によるDSPは、制御部1と、2個の乗加算器MAC0およびMAC1と、レジスタ部2と、データメモリ3とを有する。制御部1は、フィルタ処理を実行するためのプログラムを記憶したプログラムメモリと、このプログラムに記憶されたプログラムの各命令を順次読み出して解釈し、乗加算器MAC0およびMAC1の制御、レジスタ部2の制御等を行う命令デコーダと、フィルタ処理に使用される係数を記憶する係数メモリを含む。レジスタ部2は、各種のレジスタの集合体である。このレジスタ部2を構成する各レジスタには、乗加算器MAC0およびMAC1の各乗加算結果を記憶するためのアキュムレータACC0およびACC1や、フィルタ処理に使用する係数を記憶するためのレジスタ(図示略)が含まれる。データメモリ3は、信号処理に使用する処理対象サンプル列を記憶するためのメモリである。このデータメモリ3は、図示の例では、DSPに内蔵された要素であるが、DSPの外付けのメモリであってもよい。
【0021】
データメモリ3には、演算周期毎に新たに処理対象サンプル列に加わるサンプルが書き込まれる。制御部1は、プログラムメモリに記憶されたプログラムに従って乗加算器MAC0およびMAC1とレジスタ部2を制御し、現時点までにデータメモリ3に記憶された処理対象サンプル列を使用したフィルタ処理を実行する。
【0022】
本実施形態の特徴は、制御部1がフィルタ処理のために実行するプログラムの内容、特にフィルタ処理を構成する各種の乗加算処理を乗加算器MAC0およびMAC1に実行させる手順にある。さらに詳述すると、本実施形態において制御部1は、各演算周期において、当該演算周期での信号処理結果を得るのに必要な乗加算処理の一部を乗加算器MAC0に実行させ、残りの乗加算処理を当該演算周期の直前の演算周期において乗加算器MAC1に実行させ、各演算周期において、乗加算器MAC0およびMAC1に実行させる乗加算処理のうち共通のサンプルを対象とした複数の乗加算処理を実行するために当該サンプルをデータメモリ3から読み出し、当該複数の乗加算処理を乗加算器MAC0およびMAC1に実行させる。
【0023】
図2は、本実施形態によるDSPの実行対象の例である各種のフィルタ処理を示す図である。図2(a)は周知のFIRフィルタ処理、図2(b)は周知のIIRフィルタ処理、図2(c)は画像に対して実行される周知のフィルタ処理を各々示している。以下、これらの各例について、本実施形態において実行されるフィルタ処理の手順を説明する。
【0024】
図3は、本実施形態によるDSPの図2(a)のフィルタ処理の実行例を示す図である。仮に1個の乗加算器のみを使用するとした場合、図2(a)のフィルタ処理結果を得るために、演算周期T(n)では、次式の演算を1個の乗加算器に実行させる必要がある。
ACC=C(0)*X(n)
ACC+=C(1)*X(n−1)
ACC+=C(2)*X(n−2)
ACC+=C(3)*X(n−3)
……(3)
この場合、サンプルX(n)〜X(n−3)を得るために、1演算周期内に4回のメモリアクセスを行う必要がある。
【0025】
また、1つ前の演算周期T(n−1)では、次式の演算を1個の乗加算器に実行させる必要がある。
ACC=C(0)*X(n−1)
ACC+=C(1)*X(n−2)
ACC+=C(2)*X(n−3)
ACC+=C(3)*X(n−4)
……(4)
この場合も、サンプルX(n−1)〜X(n−4)を得るために、1演算周期内に4回のメモリアクセスを行う必要がある。
【0026】
しかしながら、2つの演算周期T(n−1)およびT(n)を通じて見ると、両演算周期において実行すべき乗加算処理群は、共通するサンプルX(n−1)、X(n−2)、X(n−3)を対象とした乗加算処理の組を含んでいる。
【0027】
そこで、制御部1は、演算周期T(n)では前掲式(3)の各乗加算処理の一部のみを乗加算器MAC0に実行させ、残りの乗加算処理を直前の演算周期T(n−1)に乗加算器MAC1に実行させ、この演算周期T(n−1)における乗加算器MAC1の乗加算処理の結果を演算周期T(n)に乗加算器MAC0に引き継がせる。具体的には次の通りである。
【0028】
まず、制御部1は、演算周期T(n−1)において次式の乗加算処理を乗加算器MAC1に実行させる。
ACC1=C(1)*X(n−1)
ACC1+=C(3)*X(n−3)
……(5)
【0029】
次に制御部1は、演算周期T(n)において次式の乗加算処理を乗加算器MAC0に実行させる。
ACC0=ACC1
ACC0+=C(0)*X(n)
ACC0+=C(2)*X(n−2)
……(6)
この結果、演算周期T(n)では最終的に前掲式(3)の演算処理結果と同じものがアキュムレータACC0に格納されることとなる。
【0030】
以上の関係は演算周期T(n)と演算周期T(n+1)との間でも成立する。1個の乗加算器MACのみが使用可能であるとすると、演算周期T(n+1)では、次式の演算を乗加算器MACに実行させる必要がある。
ACC=C(0)*X(n+1)
ACC+=C(1)*X(n)
ACC+=C(2)*X(n−1)
ACC+=C(3)*X(n−2)
……(7)
そして、1つ前の演算周期T(n)では、前掲式(3)の演算を1個の乗加算器MACに実行させる必要がある。
【0031】
そこで、制御部1は、演算周期T(n)において次式の乗加算処理を乗加算器MAC1に実行させる。
ACC1=C(1)*X(n)
ACC1+=C(3)*X(n−2)
……(8)
【0032】
次に制御部1は、演算周期T(n+1)において次式の乗加算処理を乗加算器MAC0に実行させる。
ACC0=ACC1
ACC0+=C(0)*X(n+1)
ACC0+=C(2)*X(n−1)
……(9)
この結果、演算周期T(n+1)では最終的に前掲式(7)の演算処理結果と同じものがアキュムレータACC0に格納されることとなる。
【0033】
ここで、演算周期T(n)に着目すると、共通のサンプルX(n)を使用した2つの乗加算処理の組と、共通のサンプルX(n−2)を使用した2つの乗加算処理の組が実行対象となっている。
【0034】
そこで、演算周期T(n)において、制御部1は、サンプルX(n)をデータメモリ3から読み出して、次式の乗加算処理を乗加算器MAC0およびMAC1に同時に実行させる。
ACC0+=C(0)*X(n)
ACC1=C(1)*X(n)
……(10)
【0035】
次に、制御部1は、サンプルX(n−2)をデータメモリ3から読み出して、次式の乗加算処理を乗加算器MAC0およびMAC1に同時に実行させるのである。
ACC0+=C(2)*X(n−2)
ACC1+=C(3)*X(n−2)
……(11)
他の演算周期T(n−1)およびT(n+1)についても同様である。
【0036】
このように1個の乗加算器MACを使用したフィルタ処理では1演算周期内に4回のメモリアクセスが必要であったが、本実施形態における2個の乗加算器MAC0およびMAC1を使用したフィルタ処理では、1演算周期内に2回のメモリアクセスを行えば済む。
【0037】
図4は、本実施形態によるDSPの図2(b)のフィルタ処理の実行例を示す図である。仮に1個の乗加算器のみを使用するとした場合、図2(b)のフィルタ処理結果を得るために、演算周期T(n)では、次式の演算を1個の乗加算器MACに実行させる必要がある。
ACC+=C(0)*X(n)
ACC+=C(1)*X(n−1)
ACC+=C(2)*X(n−2)
ACC+=C(3)*Y(n−1)
ACC+=C(4)*Y(n−2)
……(12)
上記式(13)の各演算を実行することにより、最終的に演算周期T(n)におけるIIRフィルタの出力信号Y(n)がアキュムレータACCに格納される。
この場合、1演算周期内に5回のメモリアクセスを行う必要がある。
【0038】
また、1つ前の演算周期T(n−1)では、次式の演算を1個の乗加算器MACに実行させる必要がある。
ACC+=C(0)*X(n−1)
ACC+=C(1)*X(n−2)
ACC+=C(2)*X(n−3)
ACC+=C(3)*Y(n−2)
ACC+=C(4)*Y(n−3)
……(13)
この場合も、1演算周期内に5回のメモリアクセスを行う必要がある。
【0039】
そこで、制御部1は、演算周期T(n)では前掲式(12)の各乗加算処理の一部のみを乗加算器MAC0に実行させ、残りの乗加算処理を直前の演算周期T(n−1)に乗加算器MAC1に実行させ、この演算周期T(n−1)における乗加算器MAC1の乗加算処理の結果を演算周期T(n)に乗加算器MAC0に引き継がせる。具体的には次の通りである。
【0040】
まず、制御部1は、演算周期T(n−1)において次式の乗加算処理を乗加算器MAC1に実行させる。
ACC1=C(1)*X(n−1)
ACC1+=C(4)*Y(n−2)
……(14)
【0041】
次に制御部1は、演算周期T(n)において次式の乗加算処理を乗加算器MAC0に実行させる。
ACC0=ACC1
ACC0+=C(0)*X(n)
ACC0+=C(2)*X(n−2)
ACC0+=C(3)*Y(n−1)
……(15)
この結果、演算周期T(n)では最終的に前掲式(12)の演算処理結果と同じものがアキュムレータACC0に格納されることとなる。
【0042】
以上の関係は演算周期T(n)と演算周期T(n+1)との間でも成立する。このため、演算周期T(n)において乗加算器MAC0およびMAC1が実行する乗加算処理の内容は図4に示す通りとなる。そこで、演算周期T(n)において制御部1は、サンプルX(n)をデータメモリ3から読み出して、ACC0+=C(0)*X(n)なる乗加算処理とACC1=C(1)*X(n)なる乗加算処理とを乗加算器MAC0およびMAC1に各々実行させる。次いでサンプルX(n−2)をデータメモリ3から読み出して、ACC0+=C(2)*X(n−2)なる乗加算処理を乗加算器MAC0に実行させる。次いでサンプルY(n−1)をデータメモリ3から読み出して、ACC0+=C(3)*Y(n−1)なる乗加算処理とACC1+=C(4)*Y(n−1)なる乗加算処理とを乗加算器MAC0およびMAC1に各々実行させる。
【0043】
以上のように図2(b)のIIRフィルタ処理を1個の乗加算器を使用して実行する場合には1演算周期内に5回のメモリアクセスが必要であったが、本実施形態における2個の乗加算器MAC0およびMAC1を使用したIIRフィルタ処理では、1演算周期内に3回のメモリアクセスを行えば済む。
【0044】
図5は、本実施形態によるDSPの図2(c)のフィルタ処理の実行例を示す図である。図2(c)のフィルタ処理では、演算周期毎に3行3列の9個の画素P(ix+Δx、iy+Δy)(Δx=−1〜+1、Δy=−1〜+1)に係数C(0)〜C(8)を乗算して加算し、3行3列の画素行列の中心の画素P(ix、iy)についてのフィルタ処理結果を生成する。そして、演算周期毎に係数の乗算対象となる3行3列の画素を横方向に1画素シフトする(ix=ix+1)。
【0045】
図5に示すように、仮に1個の乗加算器を使用して図2(c)のフィルタ処理を行うとすると、データメモリ3からのサンプルの読み出しを1演算周期当たり9回行う必要がある。しかし、本実施形態によるDSPの図2(c)のフィルタ処理の実行例では、上述した図2(a)のフィルタ処理、図2(b)のフィルタ処理と同様、各演算周期においてフィルタ処理結果を得るために必要な乗加算処理の一部のみを乗加算器MAC0に実行させ、残りをその直前の演算周期において乗加算器MAC1に実行させる。これにより、図5に示すように、1演算周期当たりのデータメモリ3からのサンプル読み出し回数を6回に減らしている。
【0046】
<第2実施形態>
この発明の第2実施形態であるDSPは、3個の乗加算器MAC0、MAC1およびMAC2を有している。図6は本実施形態によるDSPのFIRフィルタ処理の実行例を示す図である。仮に1個の乗加算器のみを使用するとした場合、演算周期T(n+1)では、5次のFIRフィルタ処理を実行するために、次式の演算を1個の乗加算器MACに実行させる必要がある。
ACC+=C(0)*X(n+1)
ACC+=C(1)*X(n)
ACC+=C(2)*X(n−1)
ACC+=C(3)*X(n−2)
ACC+=C(4)*X(n−3)
ACC+=C(5)*X(n−4)
……(16)
この場合、1演算周期内に6回のメモリアクセスを行う必要がある。1つ前の演算周期T(n)、さらに1つ前の演算周期T(n−1)も同様である。
【0047】
しかし、3個の連続した演算周期T(n−1)〜T(n+1)に着目すると、それらの演算周期のフィルタ処理結果を得るための乗加算処理群は、共通のサンプルを対象にした3個の乗加算処理の組を複数組含んでいる。
【0048】
そこで、本実施形態では、上記第1実施形態の制御部1(図1参照)に相当する制御手段が、演算周期T(n+1)では前掲式(16)の各乗加算処理の一部のみを乗加算器MAC0に実行させ、残りの乗加算処理の一部を直前の演算周期T(n)に乗加算器MAC1に実行させ、残った乗加算処理をさらに1つ前の演算周期T(n−1)に乗加算器MAC2に実行させ、演算周期T(n−1)における乗加算器MAC2の乗加算処理の結果を演算周期T(n)において乗加算器MAC1に引き継がせ、演算周期T(n)における乗加算器MAC1の乗加算処理の結果を演算周期T(n+1)において乗加算器MAC0に引き継がせる。具体的には次の通りである。
【0049】
まず、演算周期T(n−1)では、次式の乗加算処理を乗加算器MAC2に実行させる。
ACC2=C(2)*X(n−1)
ACC2+=C(5)*X(n−4)
……(17)
【0050】
次に演算周期T(n)では、次式の乗加算処理を乗加算器MAC1に実行させる。
ACC1=ACC2
ACC1+=C(1)*X(n)
ACC1+=C(4)*X(n−3)
……(18)
【0051】
次に演算周期T(n+1)では、次式の乗加算処理を乗加算器MAC0に実行させる。
ACC0=ACC1
ACC0+=C(0)*X(n+1)
ACC0+=C(3)*X(n−2)
……(19)
この結果、演算周期T(n+1)では最終的に前掲式(16)の演算処理結果と同じものがアキュムレータACC0に格納されることとなる。
【0052】
本実施形態では、他の演算周期においても、各演算周期でのフィルタ処理結果を得るために、以上と同様に、一部の乗加算処理の先行する演算周期への振り分けを行う。この結果、図6から明らかなように、各演算周期においてサンプルをデータメモリから読み出す回数は3回で済む。
従って、本実施形態によれば、上記第1実施形態と比べ、1演算周期内に実行可能な乗加算処理の回数をさらに増加させることができる。
【0053】
<他の実施形態>
以上、この発明の一実施形態について説明したが、これ以外にも、この発明には他の実施形態が考えられる。例えば次の通りである。
【0054】
(1)例えば上記第1実施形態では、各演算周期において、サンプルをメモリから読み出す回数が最小となるように、当該演算周期におけるフィルタ処理結果を得るための乗加算処理群の中の一部を先行する演算周期に振り分け、乗加算器MAC1に実行させた。しかし、サンプルのメモリからの読み出し回数を減らすために、先行する演算周期において乗加算器MAC1に実行させる乗加算処理を増やすと、乗加算器MAC1の空き時間が減り、却って好ましくない事態が発生する場合もあり得る。例えば乗加算器MAC0およびMAC1に実行させているフィルタ処理以外のフィルタ処理を乗加算器MAC1に実行させたいが、乗加算器MAC1の空き時間が少なくなると後者のフィルタ処理の実行が困難になるといった事態である。従って、必ずしも各演算周期においてサンプルをメモリから読み出す回数を最小とする必要はなく、他のフィルタ処理の実行等に支障が生じない範囲で、サンプルのメモリからの読み出し回数を減らせばよい。
【0055】
(2)上記各実施形態によれば、1演算周期内に実行可能な乗加算処理の回数を増やすことができるが、処理対象となるサンプルがDSPに与えられてからフィルタ処理結果が出力されるまでのレイテンシが長くなる。そこで、例えば次のようにフィルタ処理の内容に合わせて乗加算処理の実行方法を切り換えてもよい。
a.各演算周期のフィルタ処理結果を得るための乗加算処理の回数が多く、かつ、レイテンシが大きくても構わないフィルタ処理については上記各実施形態を適用する。
b.各演算周期のフィルタ処理結果を得るための乗加算処理の回数が少なく、かつ、レイテンシの小さいことが要求されるフィルタ処理については、1個の乗加算器を使用して実行する。
【符号の説明】
【0056】
1……制御部、2……レジスタ部、3……データメモリ、MAC0,MAC1……乗加算器。

【特許請求の範囲】
【請求項1】
演算周期毎に、処理対象サンプル列を更新しつつ、処理対象サンプル列の各サンプルと係数とを乗算し、各乗算結果を加算した信号処理結果を生成する信号処理を繰り返すデジタル信号処理装置において、
係数とサンプルとを乗算し、乗算結果と他のデータとの加算を行う乗加算処理を各々実行する複数の乗加算器と、
各演算周期において、当該演算周期での信号処理結果を得るのに必要な乗加算処理の一部を前記複数の乗加算器のうちの1つの乗加算器に実行させ、残りの乗加算処理を当該演算周期の直前の1または複数の演算周期において前記複数の乗加算器のうちの他の乗加算器に実行させ、各演算周期において、前記複数の乗加算器に実行させる乗加算処理のうち共通のサンプルを対象とした複数の乗加算処理を実行するために当該共通のサンプルをメモリから読み出し、当該複数の乗加算処理を前記複数の乗加算器に実行させる制御手段と
を具備することを特徴とするデジタル信号処理装置。
【請求項2】
コンピュータを、
係数とサンプルとを乗算し、乗算結果と他のデータとの加算を行う乗加算処理を各々実行する複数の乗加算器と、
各演算周期において、当該演算周期での信号処理結果を得るのに必要な乗加算処理の一部を前記複数の乗加算器のうちの1つの乗加算器に実行させ、残りの乗加算処理を当該演算周期の直前の1または複数の演算周期において前記複数の乗加算器のうちの他の乗加算器に実行させ、各演算周期において、前記複数の乗加算器に実行させる乗加算処理のうち共通のサンプルを対象とした複数の乗加算処理を実行するために当該共通のサンプルをメモリから読み出し、当該複数の乗加算処理を前記複数の乗加算器に実行させる制御手段と
して機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−205298(P2012−205298A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−71203(P2011−71203)
【出願日】平成23年3月28日(2011.3.28)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】