(57)【特許請求の範囲】
【請求項１】
順次入力される時系列信号を記憶する記憶手段と、
前記記憶手段に記憶された複数の前記時系列信号と複数のフィルタ係数とをそれぞれ乗算し、各乗算結果の総和を算出することにより補間信号を生成する生成手段と、
生成される前記補間信号に対応した位相データに基づき、前記補間信号の生成毎に、前記複数のフィルタ係数をリアルタイム算出する演算手段と
を備えることを特徴とするフィルタ演算装置。
【請求項２】
前記演算手段は、
補間関数に対応する近似関数に前記位相データが適用され、前記位相データを含む所定の共通項で整理された状態の変形式に基づいて、前記位相データを乗算する位相データ乗算手段と、
前記変形式に基づいて、前記位相データ、または前記位相データ乗算手段の出力を加算する位相データ加算手段とを備える
ことを特徴とする請求項１に記載のフィルタ演算装置。
【請求項３】
前記演算手段の位相データ演算手段と位相データ加算手段は、ソフトウエアプログラムで構成されている
ことを特徴とする請求項２に記載のフィルタ演算装置。
【請求項４】
前記近似関数は、キュービック近似法に基づく関数である
ことを特徴とする請求項２に記載のフィルタ演算装置。
【請求項５】
順次入力される時系列信号を記憶する記憶ステップと、
記憶された複数の前記時系列信号と複数のフィルタ係数とをそれぞれ乗算し、各乗算結果の総和を算出することにより補間信号を生成する生成ステップと、
生成される前記補間信号に対応した位相データに基づき、前記補間信号の生成毎に、前記複数のフィルタ係数をリアルタイム算出する演算ステップと
を含むことを特徴とするフィルタ演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フィルタ演算装置および方法に関し、特に、画像の拡大、縮小、または画素数の変換を目的として補間演算を行う場合、補間フィルタ係数を求める演算を簡略化することにより、演算を行うハードウェア、またはソフトウェアの規模を小さくすることができるようにしたフィルタ演算装置および方法に関する。
【０００２】
【従来の技術】
画像の拡大、縮小、または画素数の変換は、原画像の画素が存在していない画素間の画素データを求める補間近似を行うことにより実現される。
【０００３】
補間近似とは、補間関数の畳込演算を実施することである。理論上理想的な補間近似は、標本化定理によれば、図８に示すsinc関数、f(x)=sinc(x)=sin(x)/xを補間関数として、ｘがマイナス無限大からプラス無限大までの区間で畳込演算を行うことであるが、実際にはこの計算は不可能である。従って、補間近似を行うには、sinc関数を他の関数で近似し、有限区間で畳込演算を行う必要がある。
【０００４】
sinc関数を他の関数で近似するには、図９に示す最近傍近似法、図１０に示す双一次近似法、または図１１に示すキュービック近似法が一般的に用いられる。各近似法の補間近似関数は、それぞれ、次に示すように、f1(x)，f2(x)，またはf3(x)と表わされる。
【０００５】
f1(x)=1                                       ｜x｜≦1/2
f1(x)=0                                       ｜x｜＞1/2
【０００６】
f2(x)=1-｜x｜                                 ｜x｜≦1
f2(x)=0                                       ｜x｜＞1
【０００７】
f3(x)= ｜x｜3 -2｜x｜2 +1                       ｜x｜≦1
f3(x)=-｜x｜3 +5｜x｜2 -8｜x｜+4            １＜｜x｜≦2
f3(x)=0                                       ｜x｜＞2
【０００８】
なお、図８乃至図１１の横軸は、原画像の画素の間隔で正規化している。１つの補間点の画素データを演算するために、最近傍近似法では１画素、双一次近似法では２画素、またキュービック近似法では補間点近傍の４画素の原画像画素データを標本として必要とする。
【０００９】
【発明が解決しようとする課題】
画像の拡大、縮小、または画素数を変換する補間近似には、双一次近似法が使われることが多かった。双一次近似法では、補間フィルタ係数が簡単に演算できるが、標本を２画素しか使用していないために、画像が不鮮明で画質が悪くなる課題があった。
【００１０】
そこで、高画質な変換画像を実現するために、標本を４画素使用して補間するキュービック近似法の利用が考えられた。しかしながら、画像の拡大や縮小或いは画素数変換では、補間フィルタ係数を画素毎に頻繁に切り替える必要があり、補間近似関数が３次式であることから、補間フィルタ係数をリアルタイムで演算することが困難であると考えられていた。従って、自在な比率の変換を実現するためには、比率に応じた多数の補間フィルタ係数を記憶する記憶部品を用意する必要があり、演算毎に記憶部品の中から補間フィルタ係数を選択し、転送する等、処理が複雑となる。従って、キュービック近似法は双一次近似法と比較して、演算を行うハードウェア、またはソフトウェアの規模が大きくなる課題があった。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、キュービック近似法を用いて演算を行うハードウェア、またはソフトウェアの規模を小さくすることができるようにするものである。
【００１２】
【課題を解決するための手段】
本発明のフィルタ演算装置は、順次入力される時系列信号を記憶する記憶手段と、記憶手段に記憶された複数の時系列信号と複数のフィルタ係数とをそれぞれ乗算し、各乗算結果の総和を算出することにより補間信号を生成する生成手段と、生成される補間信号に対応した位相データに基づき、補間信号の生成毎に、複数のフィルタ係数をリアルタイム算出する演算手段とを備えることを特徴とする。
【００１３】
本発明のフィルタ演算方法は、順次入力される時系列信号を記憶する記憶ステップと、記憶された複数の時系列信号と複数のフィルタ係数とをそれぞれ乗算し、各乗算結果の総和を算出することにより補間信号を生成する生成ステップと、生成される補間信号に対応した位相データに基づき、補間信号の生成毎に、複数のフィルタ係数をリアルタイム算出する演算ステップとを含むことを特徴とする。
【００１４】
本発明においては、順次入力される時系列信号が記憶され、記憶された複数の時系列信号と複数のフィルタ係数とがそれぞれ乗算され、各乗算結果の総和が算出されることにより補間信号が生成される。なお、生成される補間信号に対応した位相データに基づき、補間信号の生成毎に、複数のフィルタ係数がリアルタイム算出される。
【００１６】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。
【００１７】
すなわち、請求項１に記載のフィルタ演算装置は、順次入力される時系列信号を記憶する記憶手段（例えば、図１のメモリ１２）と、記憶手段に記憶された複数の時系列信号と複数のフィルタ係数とをそれぞれ乗算し、各乗算結果の総和を算出することにより補間信号を生成する生成手段と（例えば、図１の乗算回路１３および総和回路１４）、生成される補間信号に対応した位相データに基づき、補間信号の生成毎に、複数のフィルタ係数をリアルタイム算出する演算手段（例えば、図１の補間フィルタ係数演算装置１１）とを備えることを特徴とする。
【００１８】
但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００１９】
はじめに、本発明を適用した畳込演算装置１の構成について、図１を参照して説明する。この畳込演算装置１は、補間近似をキュービック近似法により実現するものである。
【００２０】
補間フィルタ係数演算装置１１は、外部の装置（図示せず）より入力される位相Ｐに対応する４個の補間フィルタ係数（FC1乃至4）を演算し、４個の補間フィルタ係数をそれぞれ乗算回路１３−１乃至１３−４（以下、乗算回路１３−１乃至１３−４を個々に区別する必要がない場合、単に乗算回路１３と記述する）に出力するようになされている。縦属に接続されたメモリ或いはレジスタ１２−１乃至１２−４（以下、メモリ１２−１乃至１２−４を個々に区別する必要がない場合、単にメモリ１２と記述する）は、シフトレジスタとして機能し、クロック信号により制御される。
【００２１】
メモリ或いはレジスタ１２−１乃至１２−４は、それぞれに入力される水平走査されたワード単位の時系列画素データを記憶し、後段に順次転送するとともに、乗算回路１３−１乃至１３−４に出力するようになされている。乗算回路１３−１乃至１３−４は、入力された２個のデータを乗算して総和回路１４に出力し、総和回路１４は、入力された４個のデータを加算するようになされている。
【００２２】
次に、畳込演算装置１の動作について、図２と図３を参照して説明する。図２は、メモリ１２−１乃至１２−４がシフトレジスタとして機能する動作を示しており、サイクルが、クロック信号によって進められる度に、メモリ１２−１乃至１２−４は、記憶しているデータを１つ後段にシフトする場合としない場合がある。すなわち、メモリ１２−１ないし１２−４はクロックに同期して、画素データＲ1，Ｒ2，Ｒ3，・・・・が順次入力される場合と入力およびシフトが停止する場合がある。なお、メモリ１２−１乃至１２−３に画素データが記憶されるサイクル４以降の動作が、図３のフローチャートに対応している。画素データ（例えば、Ｒ1）と補間点の画素データ（例えば、Ｑ1）の位置関係は後述する。
【００２３】
ステップＳ３１においてデータの入力とレジスタのシフトを行う必要があるか否か判断され、必要であればステップＳ３２に進み、必要でなければステップＳ３３に進む。ステップＳ３２においては、画素データの入力とレジスタのシフトが行われる。このとき、メモリ１２−１乃至１２−４は、それまで記憶していた画素データを、それぞれ乗算回路１３−１乃至１３−４に出力する。ステップＳ３３において、画像を変換する比率に対応した位相Ｐが補間フィルタ演算装置１１に入力される。ステップＳ３４において、補間フィルタ係数演算装置１１は、位相Ｐに対応する４個の補間フィルタ係数FC1乃至FC4を演算し、これを、ステップＳ３５において、乗算回路１３−１乃至１３−４にそれぞれ出力する。ステップＳ３６において、乗算回路１３−１乃至１３−４は、入力された補間フィルタ係数と画素データを乗算し、総和回路１４に出力する。ステップＳ３７において、総和回路１４は、乗算回路１３−１乃至１３−４から出力された４個のデータを加算し、出力する。ステップＳ３８において、画素データの終わりが判断される。このとき、画素データが終わりであれば補間処理は終了され、終わりでなければステップＳ３１に戻り、同様の処理が繰り返される。
【００２４】
次に、補間フィルタ係数演算装置１１の具体的構成について説明するが、その前に、キュービック近似法における補間フィルタ係数の計算方法について説明する。
【００２５】
キュービック近似法では、上述したように、以下の補間近似関数を使用する。
【００２６】
f3(x)= ｜x｜3 -2｜x｜2 +1               ｜x｜≦1         ・・・（１）
f3(x)=-｜x｜3 +5｜x｜2 -8｜x｜+4     1＜｜x｜≦2         ・・・（２）
f3(x)=0                               ｜x｜＞2           ・・・（３）
【００２７】
ここでは、図４を参照して、補間点の位相について説明する。図４において、横軸は水平方向の各画素の位置を表しており、原画像の画素の間隔で正規化している。図中、黒丸印は、原画像の画素の位置を表わし、左からＲi-1，Ｒi，Ｒi+1およびＲi+2とする。Ｑiは補間する位置（補間点）を表わし、補間点を基準として左方向に最も近い画素Ｒiから位相Ｐ（０≦Ｐ＜１）だけ離れている。補間フィルタ係数FC4乃至FC1は、補間近似関数の中心を補間点に合わせたときの、補間点Ｑiの近傍の画素Ｒi-1，Ｒi，Ｒi+1およびＲi+2にそれぞれ対応する補間近似関数の値である。すなわち、画素Ｒi-1に対応する補間フィルタ係数はFC4であり、画素Ｒiに対応する補間フィルタ係数はFC3であり、画素Ｒi+1に対応する補間フィルタ係数はFC2であり、さらに画素Ｒi+2に対応する補間フィルタ係数はFC1である。
【００２８】
実際の演算に、（１）式と（２）式を用いると、１個の補間フィルタ係数を求める度に３次式の演算が必要となり、キュービック近似法で必要な４つの補間フィルタ係数を全て求めるには、多くの演算を行う必要があることがわかる。例えば、（１）式を用いて１つの補間フィルタ係数を算出するには、３回の乗算と２回の加（減）算が必要である。また、（２）式を用いて１つの補間フィルタ係数を算出するには、４回の乗算と３回の加（減）算が必要である。結局、１つの補間点の画素データを得るため、４つの補間フィルタ係数を算出するには、乗算が１４回、加（減）算が１０回必要となる。
【００２９】
そこで、４個の補間フィルタ係数を算出する演算の回数を減らすために、距離ｘの関数である（１）式と（２）式を、位相Ｐ（０≦Ｐ＜１）の関数として書き換えると、以下の式になる。
【００３０】
FC4を求めるには、Ｒi-1とＱiの距離x=1+Ｐを（２）式に代入する。
FC4=-(1+P)3 +5(1+P)2 -8(1+P)+4
=-P3 +2P2 -P                                         ・・・（４）
【００３１】
FC3を求めるには、ＲiとＱiの距離x=Ｐを（１）式に代入する。
FC3=P3 -2P2 +1                                          ・・・（５）
【００３２】
FC2を求めるには、Ｒi+1とＱiの距離x=1-Ｐを（１）式に代入する。
FC2=(1-P)3 -2(1-P)2 +1
=-P3 +P2 +P                                          ・・・（６）
【００３３】
FC1を求めるには、Ｒi+2とＱiの距離x=2-Ｐを（２）式に代入する。
FC1=-(2-P)3 +5(2-P)2 -8(2-P)+4
=P3 -P2                                              ・・・（７）
【００３４】
（４）式乃至（７）式の演算を実現する演算装置５を図５に示す。この演算装置５は、入力された位相Ｐを乗算する乗算回路５１−１，５１−２、入力された２個のデータを加算する加算回路５２−１乃至５２−６、入力されたデータに１を加算する１の加算回路５３、および入力されたデータに２を乗算する２の乗算回路５４の合計１０個の回路で構成されており、演算は１０回行われる。
【００３５】
さらに、演算の回数を減少させるため、（４）式乃至（７）式を、共通項（Ｐ3−Ｐ2）に注目して書き換えると以下の式になる。
【００３６】
FC4=-P3 +2P2 -P
=-[{(P3 -P2 )-P2 }+P]                                ・・・（８）
【００３７】
FC3=P3 -2P2 +1
={(P3 -P2 )-P2 }+1                                   ・・・（９）
【００３８】
FC2=-P3 +P2 +P
=P-(P3 -P2 )                                       ・・・（１０）
【００３９】
FC1=P3 -P2                                                 ・・・（１１）
【００４０】
（８）式乃至（１１）式の演算を実現する演算装置６を図６に示す。この演算装置６は、入力された位相Ｐを乗算する乗算回路６１−１，６１−２、入力された２個のデータを加算する加算回路６２−１乃至６２−４（以下、加算回路６２−１乃至６２−４を個々に区別する必要がない場合、単に加算回路６２と記述する）、入力されたデータに１を加算する１の加算回路６３、および入力されたデータの符号を反転する符号反転回路６４の合計８個の回路で構成されており、演算は８回行われる。演算装置６は、演算装置５と比較して演算回路が２個減少している。
【００４１】
別の式変形として、（４）式乃至（７）式から、共通項（１−Ｐ）を括りだして書き換えると、以下の式になる。
【００４２】
FC4=-P3 +2P2 -P
=P{P(1-P)}-P(1-P)                                  ・・・（１２）
【００４３】
FC3=P3 -2P2 +1
=｛1+P(1-P)}-[P+P{P(1-P)}]                         ・・・（１３）
【００４４】
FC2=-P3 +P2 +P
=P+P{P(1-P)}                                       ・・・（１４）
【００４５】
FC1=P3 -P2
=-P{P(1-P)}                                        ・・・（１５）
【００４６】
（１２）式乃至（１５）式の演算を実現する演算装置７を図７に示す。この演算装置７は、入力された２個のデータを乗算する乗算回路７１−１，７１−２（以下、乗算回路７１−１，７１−２を個々に区別する必要がない場合、単に乗算回路７１と記述する）、入力された２個のデータを加算する加算回路７２−１乃至７２−３（以下、加算回路７２−１乃至７２−３を個々に区別する必要がない場合、単に加算回路７２と記述する）、入力されたデータに１を加算する１の加算回路７３、入力されたデータを１から減算する１からの減算回路７４、および入力されたデータの符号を反転する符号反転回路７５の合計８個の回路で構成されており、演算は８回行われる。演算装置７と演算装置６を比較すると、加算回路６２が１個減少し、１からの減算回路７４が増加している。
【００４７】
ここで、１からの減算について説明する。１からの減算が適用されるのは、共通項（１−Ｐ）の演算であり、Ｐは０から１の間の数であるので、（１−Ｐ）も０から１の間の数である。例えば、Ｐ＝０．３７５とすると（１−Ｐ）は０．６２５であり、それぞれを２進数で表すとＰ＝０．０１１、（１−Ｐ）＝０．１０１となる。２進数０．１０１は、２進数０．０１１の、２の補数１．１０１の符号を表す最上位の桁を無視することにより得られるので、通常の加（減）算に比較して簡単な処理である。
【００４８】
従って、補間フィルタ係数を求めるには、（１２）式乃至（１５）式を使う演算装置７が、最も効率的であり、規模が小さいことがわかる。その結果、任意の位相（比率）の補間フィルタ係数を、迅速に、リアルタイムでソフトウェアプログラムにより演算することが可能となる。よって、補間フィルタ係数演算装置１１には、演算装置７を用いている。
【００４９】
補間フィルタ係数演算装置１１の構成は、演算装置７の構成と全く同様であるので、以後、図７の演算装置７を補間フィルタ係数演算装置１１と読み替える。
【００５０】
次に、補間フィルタ係数演算装置１１の動作について説明する。補間フィルタ係数演算装置１１に位相Ｐが入力されると、Ｐは１からの減算回路７３に入力され、１からの減算回路７３は、１−Ｐを出力する。出力された１−Ｐは、乗算回路７１−１に入力され、乗算回路７１−１は、Ｐと１−Ｐを乗算してＰ（１−Ｐ）を出力する。出力されたＰ（１−Ｐ）は、乗算回路７１−２に入力され、乗算回路７１−２は、ＰとＰ（１−Ｐ）を乗算してＰ｛Ｐ（１−Ｐ）｝を出力する。出力されたＰ｛Ｐ（１−Ｐ）｝は、符号反転回路７５に入力され、符号反転回路７５は、Ｐ｛Ｐ（１−Ｐ）｝の符号を反転して−Ｐ｛Ｐ（１−Ｐ）｝をFC1として出力する。
【００５１】
乗算回路７１−２から出力されたＰ｛Ｐ（１−Ｐ）｝は、加算回路７２−１に入力され、加算回路７２−１は、Ｐ｛Ｐ（１−Ｐ）｝とＰを加算してＰ＋Ｐ｛Ｐ（１−Ｐ）｝をFC2として出力する。
【００５２】
乗算回路７１−１から出力されたＰ（１−Ｐ）は、１の加算回路７４に入力され、１の加算回路７４は、Ｐ（１−Ｐ）に１を加算して、１＋Ｐ（１−Ｐ）を出力する。出力された１＋Ｐ（１−Ｐ）は、加算回路７２−２に入力され、加算回路７２−２は、１＋Ｐ（１−Ｐ）から加算回路７２−１から出力されたＰ＋Ｐ｛Ｐ（１−Ｐ）｝を減算して｛１＋Ｐ（１−Ｐ）｝−［Ｐ＋Ｐ｛Ｐ（１−Ｐ）｝］をFC3として出力する。
【００５３】
乗算回路７１−１から出力されたＰ（１−Ｐ）と乗算回路７１−２から出力されたＰ｛Ｐ（１−Ｐ）｝は、加算回路７２−３に入力され、加算回路７２−３は、Ｐ｛Ｐ（１−Ｐ）｝からＰ（１−Ｐ）を減算し、Ｐ｛Ｐ（１−Ｐ）｝−Ｐ（１−Ｐ）をFC4として出力する。
【００５４】
なお、メモリ１２は、画像を水平方向に拡大、縮小するような場合、画素単位のメモリでよいが、垂直方向に拡大、縮小する場合には、水平走査期間に対応するメモリとする必要がある。
【００５５】
また、補間近似方法としては、キュービック近似法以外の方法を用いることもできる。さらに、本発明は、画素データを処理する場合に限らず、音響データ、音声データ、機械振動データを処理する場合にも適用することができる。
【００５６】
【発明の効果】
以上のように、本発明によれば、任意の位相のフィルタ係数を、規模の小さいハードウェア、またはソフトウェアで迅速に求めることができる。
【図面の簡単な説明】
【図１】畳込演算装置の構成を示すブロック図である。
【図２】図１の畳込演算装置の処理されるデータを説明する図である。
【図３】図１の畳込演算装置の動作を説明するフローチャートである。
【図４】補間点の位相を説明する図である。
【図５】図１の補間フィルタ係数演算装置の構成例を示すブロック図である。
【図６】図１の補間フィルタ係数演算装置の他の構成例を示すブロック図である。
【図７】図１の補間フィルタ係数演算装置のさらに他の構成例を示すブロック図である。
【図８】  sinc関数を示す図である。
【図９】最近傍近似法での補間近似関数を示す図である。
【図１０】双一次近似法での補間近似関数を示す図である。
【図１１】キュービック近似法での補間近似関数を示す図である。
【符号の説明】
１  畳込演算装置，  ５  演算装置，  ６  演算装置，  ７  演算装置，  １１  補間フィルタ係数演算装置，  １２  メモリ，  １３  乗算回路，  １４  総和回路，  ５１  乗算回路，  ５２  加算回路，  ５３  １の加算回路，  ５４  ２の乗算回路，６１  乗算回路，  ６２  加算回路，  ６３  １の加算回路，  ６４  符号反転回路，  ７１  乗算回路，  ７２  加算回路，  ７３  １からの減算回路，  ７４  １の加算回路，  ７５  符号反転回路
【図１】
0003951072.tif 000002
【図２】
0003951072.tif 000003
【図３】
0003951072.tif 000004
【図４】
0003951072.tif 000005
【図５】
0003951072.tif 000006
【図６】
0003951072.tif 000007
【図７】
0003951072.tif 000008
【図８】
0003951072.tif 000009
【図９】
0003951072.tif 000010
【図１０】
0003951072.tif 000011
【図１１】
0003951072.tif 000012