説明

間引きフィルタおよび間引きプログラム

【課題】標本化の間隔が不均一である場合にも適用可能な間引きフィルタおよび間引きプログラムを提供する。
【解決手段】間引きフィルタ1は、注目する出力標本点P1近傍に存在する複数の出力標本点を順次選択するためのインデックスkを生成する第1計数手段10と、インデックスkに基づき隣接する2つの出力標本点を選択し、選択した2つの出力標本点間を区分として、区分内の整数値を標本点位置xとして順次生成し、標本点位置xを時間方向に正規化して正規化座標vを生成する第2計数手段20と、正規化座標vを基本関数f(x)に代入し、関数値f(v)を生成する関数値生成手段30と、関数値f(v)に2つの出力標本点間の距離の逆数を乗算し、区分ごとのタップ係数h(x)を生成する区分タップ係数生成手段40と、標本点位置xとタップ係数h(x)とに基づき入力標本点に対応するタップ係数を生成するタップ係数生成手段50と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号の標本化に先立って適用する間引きフィルタであって、特に標本化の間隔が不均一である場合にも適用可能なデジタル処理による間引きフィルタおよび間引きプログラムに関する。
【背景技術】
【0002】
従来、アナログ信号を標本化したり、すでに標本化されている信号をより粗い標本化間隔でさらに標本化(サブサンプリング)したりする場合、ナイキスト周波数を超える入力信号のスペクトルが折り返して折り返し歪みが生じることを軽減する目的で、標本化の前に間引きフィルタ(デシメーションフィルタ)を適用することが行われている。
【0003】
あらゆる信号入力に対して折り返し歪みを完全に抑制するためには、間引きフィルタは、標本化周波数の1/2を超える周波数を遮断する低域通過フィルタである必要がある。一方、標本化後の信号の劣化を抑えるためには、間引きフィルタは、標本化周波数の1/2以下の周波数については、振幅ゲインが1であり、位相が不変であることが望ましい。これらの条件を理想的に満足する間引きフィルタは、理想低域通過フィルタと呼ばれる。
【0004】
従来の間引きフィルタは、理想低域通過フィルタを近似するよう、アナログ電子回路(例えば、LC共振回路)で構成されたり、遅延器や乗算器、加算器などからなるデジタル回路(デジタルフィルタ)や、計算機やALU(Arithmetic Logic Unit)を用いたデジタルフィルタで構成されたりしている。とくにデジタルフィルタで構成された間引きフィルタでは、理想低域通過フィルタのインパルス応答(sinc関数)を有限長で打ち切ったタップ係数を有する間引きフィルタがよく用いられる。
【0005】
従来の間引きフィルタとしては、例えば特許文献1から4に示されるように演算装置のアーキテクチャに関して工夫したものが知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表平7−500461号公報
【特許文献2】特開平6−244733号公報
【特許文献3】特開平2−140009号公報
【特許文献4】特開2001−77667号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
このような従来の間引きフィルタは、サブサンプリングが等間隔でなされることを前提としている。このため、従来の間引きフィルタを用いて不等間隔のサブサンプリングを行うと、標本化間隔が狭い箇所においては高域が必要以上に失われて劣化(ぼけ)が生じる一方、標本化間隔が広い箇所においては折り返し歪みが生じ、信号の品質が劣化してしまう。また、局所的にぼけや折り返しが現れてしまうため、信号全体として均質性が損なわれてしまう。このような信号の品質の劣化は、例えば画像信号においては、むらとして認知され、音声信号においては断続的あるいは周波数の変化するビートとして認知される。
【0008】
そこで、本発明は、不等間隔のサブサンプリングを行う場合にも適用可能な間引きフィルタおよび間引きプログラムを提供することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決した請求項1に係る間引きフィルタは、入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置を示す予め定められた出力標本点位置のリストである出力標本点リストと、前記出力標本点リスト中の注目する出力標本点を識別する注目インデックスと、に基づいて、前記入力標本点に対するタップ係数を生成するものであり、第1計数手段と、第2計数手段と、関数値生成手段と、区分タップ係数生成手段と、タップ係数生成手段と、を備えることを特徴とする。
【0010】
かかる構成によれば、間引きフィルタは、第1計数手段によって、注目する出力標本点近傍に存在する複数の出力標本点を順次選択するための計数値を生成する。
また、間引きフィルタは、第2計数手段によって、第1計数手段で生成された計数値に基づき、隣接する2つの出力標本点を選択すると共に、選択した2つの出力標本点間を区分として、この区分内の整数値を標本点位置として順次生成し、さらに、この標本点位置を時間方向に正規化して正規化座標を生成する。
【0011】
さらに、間引きフィルタは、関数値生成手段によって、第2係数手段で生成された正規化座標を、等間隔でのサブサンプリングに用いられるインパルス応答波形に代入し、関数値を生成する。なお、等間隔でのサブサンプリングとは、例えば、入力信号の一定区間であるフレームを複数のブロックに分割してブロックごとに同一の標本化間隔でサブサンプリングを行うものであってもよい。
【0012】
そして、間引きフィルタは、区分タップ係数生成手段によって、区分に応じて関数値生成手段で生成された関数値に2つの出力標本点間の距離の逆数を乗算して区分ごとのタップ係数を生成する。つまり、等間隔のサブサンプリングに用いられるインパルス応答波形を、区分ごとに、隣接する出力標本点間の間隔に対応させて伸縮させることで、区分ごとの間隔が異なる場合であっても、それぞれの間隔に応じた適正なタップ係数を生成することができる。
【0013】
そして、間引きフィルタは、タップ係数生成手段によって、順次生成される標本点位置の時系列にしたがって、区分ごとのタップ係数を整列させて接続したタップ係数リストを生成する。これにより、標本化の間隔が等間隔および不等間隔のいずれの場合であっても、タップ係数リストに基づいてサブサンプリング装置でサブサンプリングを行うことができる。
【0014】
また、請求項2に記載の間引きフィルタは、入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置となる隣接する出力標本点間を区分として、この区分ごとに、等間隔のサブサンプリングに用いられるインパルス応答波形を、前記隣接する出力標本点間の間隔に応じてスケーリングを行い、前記区分ごとに、当該スケーリングされたインパルス応答波形に対応したタップ係数を生成するスケーリング手段と、前記区分ごとのタップ係数を接続することで、前記入力標本点に対するタップ係数を生成するタップ係数生成手段と、を備えることを特徴とする。
【0015】
かかる構成によれば、間引きフィルタは、入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置となる隣接する出力標本点間を区分として、この区分ごとに、等間隔のサブサンプリングに用いられるインパルス応答波形を、隣接する出力標本点間の間隔に応じてスケーリングを行うことで、インパルス応答波形を区分ごとに出力標本点間の間隔に対応させることができる。
【0016】
これによれば、等間隔でサブサンプリングを行う場合、従来と同様の間引きフィルタとしての動作を得ることができ、一方、不等間隔でサブサンプリングを行う場合、標本点の粗密に応じた加重を行うことができる。
【0017】
また、請求項3に係る間引きフィルタは、請求項1または請求項2に記載の間引きフィルタにおいて、前記インパルス応答波形として、sinc関数または定義域を限ったsinc関数を用いることを特徴とする。
かかる構成によれば、間引きフィルタは、等間隔のサブサンプリングを行う場合、入力信号のナイキスト周波数を超える周波数成分の折り返しを抑制することができる。さらに、間引きフィルタは、不等間隔のサブサンプリングを行う場合、近似的な折り返しを抑制することができる。
【0018】
また、請求項4に係る間引きフィルタは、請求項1または請求項2に記載の間引きフィルタにおいて、前記インパルス応答波形として、2つのsinc関数の積または定義域を限った2つのsinc関数の積を用いることを特徴とする。
かかる構成によれば、間引きフィルタは、等間隔のサブサンプリングを行う場合、入力信号のナイキスト周波数を超える周波数成分の折り返しを抑制することができる。さらに、間引きフィルタは、不等間隔のサブサンプリングを行う場合、近似的な折り返しを抑制することができる。
【0019】
また、請求項5に記載の間引きプログラムは、入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置を示す予め定められた出力標本点位置のリストである出力標本点リストと、前記出力標本点リスト中の注目する出力標本点を識別する注目インデックスと、に基づいて、前記入力標本点に対するタップ係数を生成するために、コンピュータを、関数値生成手段、第1計数手段、第2計数手段、区分タップ係数生成手段、タップ係数生成手段、として機能させる構成とした。
【0020】
かかる構成によれば、間引きプログラムは、第1計数手段によって、注目する出力標本点近傍に存在する複数の出力標本点を順次選択するための計数値を生成する。
また、間引きプログラムは、第2計数手段によって、第1計数手段で生成された計数値に基づき、隣接する2つの出力標本点を選択すると共に、選択した2つの出力標本点間を区分として、この区分内の整数値を標本点位置として順次生成し、さらに、この標本点位置を時間方向に正規化して正規化座標を生成する。
【0021】
また、間引きプログラムは、関数値生成手段によって、第2係数手段で生成された正規化座標を、等間隔でのサブサンプリングに用いられるインパルス応答波形に代入し、関数値を生成する。
そして、間引きプログラムは、区分タップ係数生成手段によって、区分に応じて関数値生成手段で生成された関数値に2つの出力標本点間の距離の逆数を乗算して区分ごとのタップ係数を生成する。
【0022】
そして、間引きプログラムは、タップ係数生成手段によって、順次生成される標本点位置の時系列にしたがって、区分ごとのタップ係数を整列させて接続したタップ係数リストを生成することで、入力標本点に対するタップ係数を生成する。
【発明の効果】
【0023】
請求項1、2および5に記載の発明によれば、サブサンプリングの間隔が不均一の場合でもこれに応じた適正なタップ係数を得ることが可能となるので、その後サブサンプリングを行ったときの信号の品質の劣化を防止することができる。さらに、区分ごとに生成したタップ係数を、順次生成される標本点位置の時系列にしたがって整列させて接続するという簡素な手法により、サブサンプリングの間隔が等間隔および不等間隔のいずれの場合であっても入力標本点に応じた適正なタップ係数の生成を実現することができるので、構成が簡素となり、安価となる。
【0024】
請求項3および4に記載の発明によれば、サブサンプリングの間隔が等間隔および不等間隔のいずれの場合であっても、折り返しを抑制することが可能となり、その後サブサンプリングを行ったときの信号の品質の劣化を防止することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施形態に係る間引きフィルタの概要を説明するための図であり、(a)は、等間隔でサブサンプリングを行うときの間引きフィルタのインパルス応答波形を模式的に示すものであり、(b)は、不等間隔でサブサンプリングを行うときの間引きフィルタのインパルス応答波形を模式的に示すものである。
【図2】本発明の実施形態に係る間引きフィルタの構成を示すブロック図である。
【図3】(a)は、本発明の実施形態に係る間引きフィルタの正規化座標演算手段で標本点位置を正規化する様子を説明するための概念図、(b)は、標本点位置生成手段で、標本点位置を生成する様子を説明するための概念図である。
【図4】本発明の実施形態に係る間引きフィルタで入力標本点に対応するタップ係数を生成する様子を説明する図であり、(a)は、タップ係数を生成するときに用いる基本関数、(b)は、等間隔のサブサンプリングを行うときに間引きフィルタで生成されるタップ係数、(c)は、等間隔のサブサンプリングを行うときに間引きフィルタで生成されるタップ係数を示すものである。
【図5】本発明の実施形態に係る間引きフィルタの動作を示すフローチャートである。
【図6】本発明の実施形態に係る間引きフィルタを適用した任意間隔のサブサンプリング装置の構成を示すブロック図である。
【図7】サブサンプリング装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0026】
[間引きフィルタの概要]
以下、本発明の実施形態について説明する。
間引きフィルタは、例えば図6に示すサブサンプリング装置Sに適用され、すでに標本化された入力信号zに対し、さらに標本化(サブサンプリング)を施す際に、このサブサンプリング前に適用されるものである。なお、サブサンプリング装置Sについては後記する。
【0027】
次に、図1を参照して本実施形態に係る間引きフィルタの概要を説明する。
本実施形態に係る間引きフィルタ1は、図1(a)、(b)に示すように、入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置を示す予め定められた標本点位置群を示す(yi=0,1,…,N−1(Nは自然数。以下、「出力標本点リスト」という。)のうち、注目するn番目(nは0以上N−1以下の整数。)の出力標本点Pのタップ係数を求めたい場合、複数の出力標本点のうち、n番目の出力標本点の近傍の出力標本点をインデックスkに基づいて順次選択し、隣接する2つの出力標本点を区分として、この区分ごとに入力信号をサンプリングしてタップ係数を求め、区分ごとに求めたタップ係数を整列させて接続することで、間引きフィルタ1のタップ係数としている。なお、図1(a)、(b)では、インパルス応答波形の一部と2つの隣接する標本点による区分とを分かりやすくするために、一部を破線で示した。
【0028】
図1(a)は、出力標本点の間隔が均一(等間隔)な場合に間引きフィルタ1で生成されるタップ係数を示しており、(b)は、出力標本点の間隔が不均一な場合に間引きフィルタ1で生成されるタップ係数を示している。つまり、本実施形態に係る間引きフィルタ1は、隣接する出力標本点間を区分とし、この区分ごとにタップ係数を求めるようになっているので、出力標本点の間隔が均一な場合のみならず、不均一な場合も、それぞれの間隔に応じた適正なタップ係数を求めることができる。このように、本実施形態に係る間引きフィルタ1は、入力信号の性質に合わせて、適正なサブサンプリングを行うことを可能としている。なお、従来の間引きフィルタは、出力標本点の間隔が等間隔の場合(図1(a)に示す状態)しか、注目する出力標本点のタップ係数を生成することができなかった。
【0029】
[間引きフィルタの構成]
次に、本実施形態に係る間引きフィルタ1の構成について図2を参照して説明する。
間引きフィルタ1は、図2に示すように、第1計数手段10と、第2計数手段20と、関数値生成手段30と、区分タップ係数生成手段40と、タップ係数生成手段50と、を備えている。
【0030】
第1計数手段10(スケーリング手段)は、−W以上W−1以下の整数を順次昇順あるいは降順としたインデックスk(計数値)を生成するものである。このインデックスkは、注目する出力標本点Pの近傍の出力標本点のうち、注目する出力標本点Pのタップ係数を求めるのに使用する出力標本点の範囲を定めるものである。ここで、Wは、間引きフィルタ1の基本関数の定義域を決定する自然数であり、Wが大きいほどフィルタ特性は向上するが、演算量は増大することになる。言い換えれば、Wは、注目する出力標本点P1のタップ係数を求めるときに、その前後の出力標本点をいくつ用いるかという範囲を定めるものである。ここでは、第1計数手段10が予め設定された定義域を持っていることとし、W=3として説明する。
【0031】
したがって、間引きフィルタ1は、注目する出力標本点Pをn番目の出力標本点yとしたときに、n−3番目の出力標本点yn−3、n−2番目の出力標本点yn−2、n−1番目の出力標本点yn−1、n番目の出力標本点y、n+1番目の出力標本点yn+1、n+2番目の出力標本点yn+2を用いて、n番目の出力標本点yのタップ係数を求めることになる。第1計数手段10によって生成されたインデックスkは、第2計数手段20に出力される。
【0032】
第2計数手段20(スケーリング手段)は、第1計数手段10で生成されたインデックスkに基づき、隣接する2つの出力標本点を選択すると共に、選択した2つの出力標本点間を区分として、この区分内の整数値を標本点位置として順次生成し、さらに、この標本点位置を時間方向に正規化して正規化座標を生成するものである。第2計数手段20は、出力標本点選択手段21と、標本点位置生成手段22と、正規化座標計算手段23と、正規化係数計算手段24と、を備えている。
【0033】
出力標本点選択手段21は、タップ係数h(x)を生成する区分を決定するものである。出力標本点選択手段21は、第1計数手段10で生成されたインデックスkが入力されると、外部から入力された出力標本点リスト(yi=0,1,…,N−1の中から、注目するn+k番目の出力標本点yn+kおよび出力標本点yn+kに隣接するn+k+1番目の出力標本点yn+k+1を選択するようになっている。この出力標本点yn+kおよび出力標本点yn+k+1間を区分とする。
出力標本点選択手段21は、選択した出力標本点yn+kおよびyn+k+1を標本点位置生成手段22に出力する。
【0034】
標本点位置生成手段22は、出力標本点選択手段21によって選択された区分内で、yn+k<x≦yn+k+1を満たす整数値を標本点位置xとして順次生成するものである。
【0035】
標本点位置生成手段22によって生成された標本点位置xは、正規化座標計算手段23とタップ係数生成手段50に順次出力される。なお、区分は、yn+k<x≦yn+k+1に代えて、yn+k≦x<yn+k+1としてもよいし、基本関数fが各区分kの両端において値0をとる場合、yn+k<x<yn+k+1としてもよい。
【0036】
正規化座標計算手段23は、基本関数f(x)を時間方向に伸縮させる基準となる正規化座標vを演算するものである。正規化座標計算手段23は、区分ごとに標本点位置生成手段22によって順次生成される標本点位置xを、次に示す(1)式で変換することで、標本点位置xを、図3(a)に示すように、2つの出力標本点yn+kおよびyn+k+1間の間隔に合わせてk〜k+1の間で正規化する演算を行い、正規化座標vを得る。
【0037】
【数1】

【0038】
正規化座標計算手段23によって演算された正規化座標vは、関数値生成手段30に出力される。
【0039】
正規化係数計算手段24は、基本関数f(x)の区分ごとの振幅値を、x方向の伸縮比に合わせて正規化するための正規化係数aを演算するものである。正規化係数計算手段24は、次の(2)式に示すように、出力標本点選択手段21によって選択された2つの出力標本点yn+kおよびyn+k+1間の距離、つまり、区分における基本関数f(x)の時間方向の伸縮比(図3(a)に示す幅)の逆数を計算し、基本関数f(x)を振幅方向に伸縮させる基準となる正規化係数aを得る。
【0040】
【数2】

【0041】
正規化係数計算手段24によって計算された正規化係数aは、区分タップ係数生成手段40に出力される。
【0042】
なお、仮に、選択した2つの出力標本点yn+kおよびyn+k+1間に、yn−1<x≦yn+1を満たす整数値が存在しない場合、標本点位置生成手段22は、次の(3)式に示す数値を1回だけ正規化座標計算手段23とタップ係数生成手段50に出力する。
【0043】
【数3】

【0044】
ここで、関数R(y)は、引数yを整数に丸める演算であり、四捨五入、小数点以下切捨て、小数点以下切り上げなど、任意の丸めによることができる。例えば、図3(b)に示すように、出力標本点選択手段21によって選択された出力標本点yn+kが“10.2”であり、出力標本点yn+k+1が“10.4”であり、区分内に整数値が存在しない場合、区分外で最も近い位置にある整数(ここでは、“10”)を、標本点位置xとして正規化座標計算手段23とタップ係数生成手段50に出力する。
【0045】
関数値生成手段30(スケーリング手段)は、正規化座標計算手段23から入力された正規化座標vを基本関数f(x)に代入して関数値f(v)を得るものである。なお、関数値生成手段30は、基本関数f(x)を予め持っていてもよいし、正規化座標計算手段23から正規化座標vが入力された時点で生成してもよい。
【0046】
ここで、基本関数f(x)とは、出力標本点の間隔が“1”の等間隔標本化を行う際に適用されるべき間引きフィルタのインパルス応答である。基本関数f(x)の設計は任意であるが、例えば次の(4)式に示すようなsinc関数、または、定義域を限ったsinc関数を用いることができる。
【0047】
【数4】

【0048】
ここで、sinc関数は、次の(5)式により定義される。
【0049】
【数5】

【0050】
前記したように、W=3としているので、図4(a)では、定義域を−3以上3以下に限ったsinc関数を示している。
【0051】
また、基本関数f(x)として、例えば次の(6)式に示すように、2つのsinc関数の積、または、定義域を限った2つのsinc関数の積を用いることができる。
【0052】
【数6】

【0053】
ここで、Lは0以外の実数の定数である。例えば、L=3とし、定義域を−3以上3以下に限った場合には、等間隔標本化におけるLanczos−3補間に相当する。また例えば、L=4とし、定義域を−4以上4以下に限った場合には、等間隔標本化におけるLanczos−4補間に相当する。
【0054】
ここでは、基本関数f(x)を区分[k,k+1)あるいは(k,k+1](kは整数。以下、単に「区分k」という。)に分け、区分kごとに出力標本点間の間隔に合わせてx方向に伸縮し、y方向には、x方向の伸縮比の逆数である正規化係数aを乗算したものを等間隔で標本化を行う場合に適用される間引きフィルタのインパルス応答h(x)としている。
すなわち、関数値生成手段30は、間引きフィルタ1のインパルス応答h(x)を次に示す(7)式により定義する。
【0055】
【数7】

【0056】
このようにして(7)式により求められたインパルス応答波形h(x)を入力信号z(x)に畳み込むことで、間引きフィルタ1としての動作が得られる。
【0057】
例えば、等間隔のサブサンプリングを行う場合には、図4(b)に示すようなインパルス応答h(x)となる。基本関数f(x)としてsinc関数を用いた場合、インパルス応答h(x)は、係数を途中で打ち切ったsinc関数となるため、等間隔のサブサンプリングを行う場合に用いられる間引きフィルタ1に相当するものとなる。
【0058】
一方、不等間隔のサブサンプリングを行う場合には、図4(c)に示すようなインパルス応答となり、出力標本点間隔の粗い場所ほど、なだらかなインパルス応答が畳み込まれるようになる。つまり、出力標本点間隔が大きければ大きいほど、基本関数f(x)のインパルス応答波形は、時間方向に伸張し、振幅方向に縮小したものとなる。一方、出力標本点間隔が小さければ小さいほど、基本関数f(x)のインパルス応答波形は、時間方向に縮小し、振幅方向に伸張したものとなる。
【0059】
このように、間引きフィルタ1では、サブサンプリングの標本化間隔が等間隔の場合も不等間隔の場合も、(7)式一つで対応することができる。つまり、間引きフィルタ1は、等間隔でサブサンプリングを行うときに適用されるべき間引きフィルタとの互換性を保ちつつ、不等間隔でサブサンプリングを行うときにも適用可能となっている。関数値生成手段30で生成された関数値f(v)は、区分タップ係数生成手段40に出力される。
【0060】
区分タップ係数生成手段40(スケーリング手段)は、標本点位置生成手段22によって選択された区分ごとにタップ係数h(x)を生成するものである。
区分タップ係数生成手段40は、次の(8)式に示すように、正規化係数計算手段24から入力された正規化係数aと、関数値生成手段30から入力されたインパルス応答波形(関数値)f(v)とを乗算して区分ごとのタップ係数h(x)を算出する。
【0061】
つまり、関数値生成手段30から入力された区分ごとの関数値f(v)は、基本関数f(x)の対応する区分ごとのx方向(時間方向)の伸縮比が反映された結果であるので、区分タップ係数生成手段40では、正規化係数計算手段24によって計算された基本関数f(x)の対応する区分ごとのy方向(振幅方向)の伸縮比を乗算することで、区分ごとの、基本関数f(x)をx方向およびy方向に伸縮させる基準となるタップ係数h(x)を生成することができる。区分タップ係数生成手段40によって生成されたタップ係数h(x)は、タップ係数生成手段50に順次出力される。
【0062】
【数8】

【0063】
タップ係数生成手段50は、順次生成される標本点位置(x)の時系列にしたがって、区分タップ係数生成手段40で生成された区分ごとのタップ係数を整列させて接続したタップ係数リスト([x,h])j=0,1,…,M−1を生成することにより、入力標本点に対するタップ係数h(x)を生成する。このタップ係数h(x)は、後記するサブサンプリング装置において、入力信号と畳み込まれるべき係数となるものである。
【0064】
タップ係数生成手段50は、タップ係数リスト([x,h])j=0,1,…,M−1は、標本点位置生成手段22から順次入力されるM個の標本点位置xと、区分タップ係数生成手段40から順次入力される区分ごとのタップ係数h(x)との対応付けをリスト化することにより、タップ係数リスト([x,h])j=0,1,…,M−1を生成している。
タップ係数生成手段50によって生成されたタップ係数リスト([x,h])j=0,1,…,M−1は、外部に出力される。
【0065】
また、タップ係数生成手段50は、タップ係数リスト([x,h])j=0,1,…,M−1の出力に先立って、区分タップ係数生成手段40から順次入力される区分ごとのタップ係数h(x)の総和Hを算出し、その係数成分(hj=0,1,…,M−1をHで除することにより正規化してからタップ係数リスト([x,h])j=0,1,…,M−1を出力するようにしてもよい。
【0066】
[間引きフィルタの動作]
次に、間引きフィルタ1の動作について図3を参照して説明する。
間引きフィルタ1は、第1計数手段10によって、−W以上W−1以下の整数を順次昇順あるいは降順としたインデックスを生成する。間引きフィルタ1は、第1計数手段10によって、生成したインデックスkを、第2計数手段20に出力する(ステップS101)。
【0067】
間引きフィルタ1は、第2計数手段20の出力標本点選択手段21によって、第1計数手段10から入力されたインデックスkと、外部から入力された出力標本点リスト(yi=0,1,…,N−1に基づき、n+k番目およびn+k+1番目の2つの出力標本点yn+kおよびyn+k+1を選択する(ステップS102)。
【0068】
間引きフィルタ1は、第2計数手段20の標本点位置生成手段22によって、出力標本点選択手段21により選択された2つの出力標本点yn+kおよびyn+k+1間に、yn+k<x≦yn+k+1を満たす整数値が存在するか否かを検索する(ステップS103)。間引きフィルタ1は、第2計数手段20の標本点位置生成手段22によって、整数値が存在すると判断した場合(ステップS103においてYes)、整数値を標本点位置xとして正規化座標計算手段23とタップ係数生成手段50に順次出力する(ステップS104)。
【0069】
一方、間引きフィルタ1は、第2計数手段20の標本点位置生成手段22によって、区分内に、yn+k<x≦yn+k+1を満たす整数値が存在しないと判断した場合(ステップS103においてNo)、区分外で最も近い位置にある整数値を、標本点位置xとして正規化座標計算手段23とタップ係数生成手段50に1回だけ出力する(ステップS105)。
【0070】
間引きフィルタ1は、第2計数手段20の正規化座標計算手段23によって、第1計数手段10から入力された標本点位置xを、前記した(1)式で変換することで、区分kごとに出力標本点間の間隔に合わせてx方向に伸縮して正規化する演算を行い、正規化座標vを得る。正規化座標計算手段23は、正規化座標vを、関数値生成手段30に出力する(ステップS106)。
【0071】
間引きフィルタ1は、第2計数手段20の正規化係数計算手段24によって、標本点位置生成手段22により選択された2つの出力標本点yn+kおよびyn+k+1に対し、前記した(2)式により、基本関数f(x)の振幅方向(y方向)にx方向の伸縮比の逆数を計算し、正規化係数aを得る。正規化係数計算手段24は、正規化係数aを区分タップ係数生成手段40に出力する(ステップS107)。
【0072】
間引きフィルタ1は、関数値生成手段30によって、第2計数手段20から入力された正規化座標vを基本関数fに代入し、関数値f(v)を生成する。関数値生成手段30は、生成した関数値f(v)を、タップ係数生成手段50に出力する(ステップS108)。
【0073】
間引きフィルタ1は、区分タップ係数生成手段40によって、正規化係数計算手段24から入力された正規化係数aと、関数値生成手段30から入力されたインパルス応答波形(関数値)f(v)とを乗算して区分ごとのタップ係数h(x)を算出する。区分タップ係数生成手段40は、算出された区分ごとのタップ係数h(x)を、タップ係数生成手段50に順次出力する(ステップS109)。
【0074】
間引きフィルタ1は、タップ係数生成手段50によって、標本点位置生成手段22から順次入力されるM個の標本点位置xと、区分タップ係数生成手段40から順次入力される区分ごとのタップ係数h(x)との対応付けをリスト化したタップ係数リスト([x,h])j=0,1,…,M−1を生成する。間引きフィルタ1は、タップ係数生成手段50によって、タップ係数リスト([x,h])j=0,1,…,M−1を、外部に出力する(ステップS110)。
【0075】
以上説明した間引きフィルタ1によれば、次のような効果を得ることができる。
間引きフィルタ1によれば、入力信号を区分に分割し、区分ごとにタップ係数を生成し、区分ごとに生成したタップ係数を接続することにより、等間隔のサブサンプリングの場合のみならず、不等間隔のサブサンプリングの場合にも適用可能とすることができる。
【0076】
なお、間引きフィルタ1は、コンピュータを、第1計数手段10、第2計数手段20、関数値生成手段30、区分タップ係数生成手段40、タップ係数生成手段50として機能させるための間引きプログラムがCPU(Central Processing Unit)によって実行されることによって、実現されることとしてもよい。
【0077】
以上、本発明の一実施形態について説明したが、本発明は、これに限定されず、本発明の趣旨を逸脱しない範囲で変更することができることはもちろんである。
例えば、前記した実施形態では、基本関数の定義域をW=3と定めたが、これに限定されず、定義域を定めないこととしてもよい。
【0078】
[サブサンプリング装置の概略]
次に、前記した実施形態で説明した間引きフィルタ1を適用したサブサンプリング装置について図4および図5を参照して説明する。
ここで、サブサンプリング装置Sは、標本化された入力信号をさらに標本化するものである。サブサンプリング装置Sにおける標本化の間隔は、等間隔であってもよいし、不等間隔であってもよい。サブサンプリング装置Sにおける標本化の最小間隔は、入力信号の標本化の間隔よりも狭くないことが好ましい。
【0079】
[サブサンプリング装置の構成]
サブサンプリング装置Sは、図4に示すように、間引きフィルタ1と、第3計数手段2と、入力バッファ3と、畳み込み手段4と、出力バッファ5と、を備えている。なお、間引きフィルタ1の構成は、前記した実施形態で説明したとおりであるので、ここでは適宜図1を参照し、詳しい説明を省略する。
【0080】
第3計数手段2は、複数の出力標本点のうち、注目する出力標本点を識別するためのインデックスn(注目インデックス)を生成するものである。生成されたインデックスnは、間引きフィルタ1に出力される。
【0081】
間引きフィルタ1は、ここでは、第3計数手段2で生成されたインデックスnを参照し、タップ係数生成手段50で生成したタップ係数リスト([x,h])j=0,1,…,M−1を、座標成分(xj=0,1,…,M−1と、係数成分(hj=0,1,…,M−1とに分け、座標成分(xj=0,1,…,M−1を入力バッファ3へ、係数成分(hj=0,1,…,M−1を畳み込み手段4へそれぞれ出力する機能を有している。
【0082】
入力バッファ3は、外部から入力された入力信号zのうち、サブサンプリングに必要な区分を蓄えておく記憶手段である。
入力バッファ3は、間引きフィルタ1から入力されたタップ係数リスト([x,h])j=0,1,…,M−1の座標成分(xj=0,1,…,M−1を参照し、各座標における入力信号値を畳み込み手段4に出力する。入力バッファ3から畳み込み手段4に出力される信号列は、(z(x))j=0,1,…,M−1である。
【0083】
畳み込み手段4は、入力バッファ3から出力された信号列(z(x))j=0,1,…,M−1に対し、間引きフィルタ1から入力されたタップ係数リスト([x,h])j=0,1,…,M−1の係数成分(hj=0,1,…,M−1を畳み込むものである。
【0084】
なお、間引きフィルタ1により生成される入力標本点に対するタップ係数h(x)は、入力信号zにおけるある閉区分内の標本点位置xに対して定義されるので、つまり、入力信号zに対し、有限のタップ長の畳み込みを行う。以下の説明では、出力されるタップ係数群のタップ長をM(Mは自然数)とし、j番目(jは0以上M−1以下の整数)のタップ位置(標本点位置)をxとし、タップ係数をhとする。
【0085】
畳み込み手段4は、タップ係数リスト([x,h])j=0,1,…,M−1の係数成分(hj=0,1,…,M−1が、すでにその総和によって正規化されている場合、次に示す(9)式によって、出力信号値s(n)を正規化する。
【0086】
【数9】

【0087】
一方、タップ係数リスト([x,h])j=0,1,…,M−1の係数成分(hj=0,1,…,M−1が正規化されていない場合、畳み込み手段4は、畳み込みに際して、次に示す(10)式によりタップ係数リスト([x,h])j=0,1,…,M−1の係数成分(hj=0,1,…,M−1の総和による正規化を行う。
畳み込み手段4による畳み込みの結果は、出力信号値s(n)として出力バッファ5に出力される。
【0088】
【数10】

【0089】
出力バッファ5は、第3計数手段2で生成されたインデックスnに対応したアドレスに出力信号値s(n)を蓄積して記憶する記憶手段であり、出力すべき信号系列を保持するものである。蓄積された出力信号値s(n)は、出力信号sとして逐次外部に出力される。
【0090】
入力バッファ3および出力バッファ5は、例えばRAM(Random Access Memory)、ハードディスク等によって実現される。
【0091】
[サブサンプリング装置の動作]
次に、サブサンプリング装置Sの動作について図5を参照して説明する。
ステップS201において、サブサンプリング装置Sは、第3計数手段2によって、外部からの操作指令の入力を受け付けると、サブサンプリング数の出力信号の標本点を走査するためのインデックスnを生成する。そして、サブサンプリング装置Sは、第3計数手段2によって、生成したインデックスnを、間引きフィルタ1に出力する。なお、ステップS201において、サブサンプリング装置Sは、入力バッファ3によって入力信号zが入力されると、第3計数手段2によってインデックスnを生成するようにしてもよい。
【0092】
ステップS202において、サブサンプリング装置Sは、間引きフィルタ1によって、外部から出力標本点リスト(yi=0,1,…,N−1の入力を受け付けると、タップ係数リスト([x,h])j=0,1,…,M−1を生成する。
【0093】
ステップS203において、サブサンプリング装置Sは、間引きフィルタ1によって、生成したタップ係数リスト([x,h])j=0,1,…,M−1を座標成分(xj=0,1,…,M−1と、係数成分(hj=0,1,…,M−1とに分ける。そして、サブサンプリング装置Sは、間引きフィルタ1によって、座標成分(xj=0,1,…,M−1を入力バッファ3へ出力し、係数成分(hj=0,1,…,M−1を畳み込み手段4へ出力する。
【0094】
ステップS204において、サブサンプリング装置Sは、入力バッファ3によって、間引きフィルタ1から入力された座標成分(xj=0,1,…,M−1に基づき、各座標における入力信号値を畳み込み手段4に出力する。
【0095】
ステップS205において、サブサンプリング装置Sは、畳み込み手段4によって、入力バッファ3から出力された信号列(z(x))j=0,1,…,M−1に対し、間引きフィルタ1から入力された係数成分(hj=0,1,…,M−1を畳み込む。そして、サブサンプリング装置Sは、畳み込み手段4によって、畳み込みの結果として出力信号値s(n)を出力バッファ5に出力する。
【0096】
ステップS206において、サブサンプリング装置Sは、出力バッファ5によって、畳み込み手段4から出力信号値s(n)が入力されると、第3計数手段2から入力された出力標本点のインデックスnを参照し、インデックスnに対応する出力信号sを外部に出力する。
【0097】
サブサンプリング装置Sは、以上のように動作する。
以上説明したサブサンプリング装置Sによれば、任意の標本化間隔で入力信号のサブサンプリングを行うことができる。
【産業上の利用可能性】
【0098】
本発明に係る間引きフィルタは、例えば、入力信号の局所的な波形の粗密に応じて、適応的な不等間隔の標本化を行う際に用いることで、折り返し歪みの軽減を図ることができる。また例えば、本発明に係る間引きフィルタを画像の水平および垂直方向に逐次適用することで、画像のワーピングやモーフィングにおける折り返し歪み防止のフィルタとして利用することも可能である。
【符号の説明】
【0099】
1 間引きフィルタ
10 第1計数手段(スケーリング手段)
20 第2計数手段(スケーリング手段)
30 関数値生成手段(スケーリング手段)
40 区分タップ係数生成手段(スケーリング手段)
50 タップ係数生成手段
S サブサンプリング装置
2 第3計数手段
3 入力バッファ
4 畳み込み手段
5 出力バッファ

【特許請求の範囲】
【請求項1】
入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置を示す予め定められた出力標本点位置のリストである出力標本点リストと、前記出力標本点リスト中の注目する出力標本点を識別する注目インデックスと、に基づいて、前記入力標本点に対するタップ係数を生成する間引きフィルタであって、
前記注目する出力標本点近傍に存在する複数の前記出力標本点を順次選択するための計数値を生成する第1計数手段と、
前記第1計数手段で生成された前記計数値に基づき、隣接する2つの出力標本点を選択すると共に、選択した前記2つの出力標本点間を区分として、この区分内の整数値を標本点位置として順次生成し、さらに、この標本点位置を時間方向に正規化して正規化座標を生成する第2計数手段と、
前記第2係数手段で生成された前記正規化座標を、等間隔でのサブサンプリングに用いられるインパルス応答波形に代入し、関数値を生成する関数値生成手段と、
前記区分に応じて前記関数値生成手段で生成された前記関数値に前記2つの出力標本点間の距離の逆数を乗算して前記区分ごとのタップ係数を生成する区分タップ係数生成手段と、
前記順次生成される標本点位置の時系列にしたがって、前記区分ごとのタップ係数を整列させて接続したタップ係数リストを生成することで、前記入力標本点に対するタップ係数を生成するタップ係数生成手段と、
を備えることを特徴とする間引きフィルタ。
【請求項2】
入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置となる隣接する出力標本点間を区分として、この区分ごとに、等間隔のサブサンプリングに用いられるインパルス応答波形を、前記隣接する出力標本点間の間隔に応じてスケーリングを行い、前記区分ごとに、当該スケーリングされたインパルス応答波形に対応したタップ係数を生成するスケーリング手段と、前記区分ごとのタップ係数を接続することで、前記入力標本点に対するタップ係数を生成するタップ係数生成手段と、を備えることを特徴とする間引きフィルタ。
【請求項3】
前記インパルス応答波形として、sinc関数または定義域を限ったsinc関数を用いることを特徴とする請求項1または2に記載の間引きフィルタ。
【請求項4】
前記インパルス応答波形として、2つのsinc関数の積または定義域を限った2つのsinc関数の積を用いることを特徴とする請求項1または2に記載の間引きフィルタ。
【請求項5】
入力信号の標本点である入力標本点をサブサンプリングするために用いられる標本点位置を示す予め定められた出力標本点位置のリストである出力標本点リストと、前記出力標本点リスト中の注目する出力標本点を識別する注目インデックスと、に基づいて、前記入力標本点に対するタップ係数を生成するために、
コンピュータを、
前記注目する出力標本点近傍に存在する複数の前記出力標本点を順次選択するための計数値を生成する第1計数手段、
前記第1計数手段で生成された前記計数値に基づき、隣接する2つの出力標本点を選択すると共に、選択した前記2つの出力標本点間を区分として、この区分内の整数値を標本点位置として順次生成し、さらに、この標本点位置を時間方向に正規化して正規化座標を生成する第2計数手段、
前記第2係数手段で生成された前記正規化座標を、等間隔でのサブサンプリングに用いられるインパルス応答波形に代入し、関数値を生成する関数値生成手段、
前記区分に応じて前記関数値生成手段で生成された前記関数値に前記2つの出力標本点間の距離の逆数を乗算して前記区分ごとのタップ係数を生成する区分タップ係数生成手段と、
前記順次生成される標本点位置の時系列にしたがって、前記区分ごとのタップ係数を整列させて接続したタップ係数リストを生成することで、前記入力標本点に対するタップ係数を生成するタップ係数生成手段、
として機能させるための間引きプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−228993(P2011−228993A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2010−97764(P2010−97764)
【出願日】平成22年4月21日(2010.4.21)
【出願人】(000004352)日本放送協会 (2,206)