(57)【要約】【課題】回路規模の増大を抑制しつつ、複数のフィルタ処理を適切に実装することができる画像処理回路を提供する。【解決手段】画像データに対してフィルタを用いたフィルタ処理を実行する画像処理回路において、画像データに対してフィルタを用いたフィルタ処理を実行する画像処理回路において、前記画像データにおける注目データ及び注目データ近傍のデータ群から、フィルタタップのＭ（Ｍ：自然数）個のデータを生成する生成手段と、所定のビット数の係数を保持する複数の乗算器と、前記フィルタを構成するフィルタ係数に基づいて、前記係数を前記生成手段が生成したＭ個の前記フィルタタップのデータに割り当てる設定手段と、を備える。【選択図】図１
2018088231.tif 000002
【特許請求の範囲】
【請求項１】
画像データに対してフィルタを用いたフィルタ処理を実行する画像処理回路において、
前記画像データにおける注目データ及び該注目データ近傍のデータ群から、フィルタタップのＭ（Ｍ：自然数）個のデータを生成する生成手段と、
所定のビット数の係数を保持する複数の乗算器と、
前記フィルタを構成するフィルタ係数に基づいて、前記係数を前記生成手段が生成したＭ個の前記フィルタタップのデータに割り当てる設定手段と、
を有することを特徴とする画像処理回路。
【請求項２】
前記生成手段により生成された前記フィルタタップの前記Ｍ個のデータと前記フィルタ係数を対応付けて積和演算を実行する演算手段をさらに有する請求項１に記載の画像処理回路。
【請求項３】
前記乗算器が保持する前記所定のビット数は、前記フィルタ係数のビット数よりも少ないビット幅のビット数であることを特徴とする請求項１または２に記載の画像処理回路。
【請求項４】
前記設定手段は、前記演算手段が積和演算する前記フィルタそれぞれのビット幅を上回るように前記係数を割り当てることを特徴とする請求項１乃至３の何れか一項に記載の画像処理回路。
【請求項５】
前記複数の乗算器それぞれは、前記フィルタ係数のビット幅の公約数の乗算ができることを特徴とする請求項１乃至４の何れか一項に記載の画像処理回路。
【請求項６】
前記演算手段は、互いに異なる複数のフィルタを用いて積和演算を実行し、
前記複数の乗算器として、前記複数のフィルタごとの最大総乗算数とスループットとに応じた数の乗算器を有することを特徴とする請求項２に記載の画像処理回路。
【請求項７】
前記生成手段は、
前記フィルタが前記フィルタ係数の対称性を有しない場合は、前記画像データにおける前記注目データおよび該注目データ近傍のデータをそのままフィルタタップのＭ個のデータとして前記演算手段に供給し、
前記フィルタが前記フィルタ係数の対称性を有する場合は、前記注目データおよび該注目データ近傍のデータを畳み込み加算することにより前記フィルタタップの前記Ｍ個のデータを生成し、前記演算手段に供給する、
ことを特徴とする請求項１乃至６の何れか一項に記載の画像処理回路。
【請求項８】
前記設定手段は、前記注目データからの距離が近い前記データ群に対して前記係数を優先的に対応付けることを特徴とする請求項１から７のいずれか１項に記載の画像処理回路。
【請求項９】
前記設定手段は、前記注目データからの距離が近い前記データ群に対して前記係数をより多く対応付けることを特徴とする請求項１から８のいずれか１項に記載の画像処理回路。
【請求項１０】
前記演算手段は、少なくとも前記画像データの解像度により重み付けした空間的距離と前記画像データのフレームレートによる重み付けした時間的距離のいずれかに基づいて前記係数を前記フィルタタップに対応付けることを特徴とする請求項１から９のいずれか１項に記載の画像処理回路。
【請求項１１】
前記設定手段は、前記空間的距離と前記時間的距離を合成した距離に基づいて、前記係数を前記フィルタタップに対応付けることを特徴とする請求項１０に記載の画像処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号データに対してフィルタ処理を行う画像処理回路に関する。
【背景技術】
【０００２】
デジタル機器の発展に伴い、画像データなどのデジタル信号データに対する様々なフィルタ処理を高速に実行することが求められている。高速であることが要求されるフィルタ処理は、専用ハードウェアであるフィルタ回路によって実現することが一般的である。一方で、専用のフィルタ回路は、その回路規模が大きく複雑化するほど製品コストを上昇させてしまうため、従来から回路規模削減のための技術が提案されている。
【０００３】
特許文献１は、フィルタ係数の対称性を利用して、対称な係数に対するタップの出力どうしを予め加算し、加算出力及び中央タップの出力を演算語長に応じてビットシフトしてからそれぞれのフィルタ係数を乗算する乗算器に供給する技術を開示する。これにより、対称な係数を有するフィルタにおける乗算回数を削減している。
特許文献２は、乗算係数を係数値が大の部分では倍精度で、係数が小の部分では単精度で記憶させ、倍精度係数については上位桁及び下位桁に分けて入力サンプル列と乗算を行うことにより、倍精度乗算を実行する技術を開示する。
また、特許文献３は、可変遅延フィルタユニット内のトランスバーサルフィルタをフィルタ中央からフィルタ端へ向かって係数ビット数が小さくなるように構成することで、乗算器のビット幅を小さくする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６１−１１８０１２号公報
【特許文献２】特開昭６２−１０５５１８号公報
【特許文献３】特開平５−１０３２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来、様々なフィルタ処理に対応可能なフィルタを１つのフィルタ回路で構成するためには、各フィルタ処理に求められる仕様（例えば、フィルタタップ数、フィルタ係数等）のうち、最大の仕様を満たす構成要素を選択しなければならなかった。
例えば、フィルタタップ数は、各フィルタ処理のうち最大のものを選択する必要があった。
また、フィルタ係数は可変のものを選択し、フィルタ係数のビット幅は最大のものを選択とする必要があった。このように、複数のフィルタ処理のうち最大の仕様を満たすよう構成されたフィルタ回路では、実際には使用されることのない仕様も実現可能な、回路規模が増大し非効率な回路構成となってしまう。
【０００６】
ここで、特許文献１及び特許文献３に開示された技術は、特定のフィルタ処理を個別に最適化するフィルタ回路であるため、複数のフィルタ処理を切り替えて使用することを想定したものではない。
また、特許文献２記載の技術では、１回の倍精度の乗算のために２回の単精度の乗算を実行し、桁シフタによって桁合わせを行ってから累積加算しているため、高速なフィルタ処理用途のフィルタ回路には適切ではない。
本発明は上記課題を解決するために成されたものであり、回路規模の増大を抑制しつつ、複数のフィルタ処理を適切に実装することができる画像処理回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る信号処理装置のある態様によれば、画像データに対してフィルタを用いたフィルタ処理を実行する画像処理回路において、前記画像データにおける注目データ及び注目データ近傍のデータ群から、フィルタタップのＭ（Ｍ：自然数）個のデータを生成する生成手段と、所定のビット数の係数を保持する複数の乗算器と、前記フィルタを構成するフィルタ係数に基づいて、前記係数を前記生成手段が生成したＭ個の前記フィルタタップのデータに割り当てる設定手段と、を有する画像処理回路が提供される。
【発明の効果】
【０００８】
以上の構成を有する本発明によれば、回路規模の増大を抑制しつつ、複数のフィルタ処理を適切に実装することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１におけるフィルタ回路の構成例を示すブロック図
【図２】実施形態１におけるフィルタタップを説明する図
【図３】実施形態１における注目データの供給を説明する図
【図４】実施形態１におけるフィルタタップのデータの供給を説明する図
【図５】実施形態１におけるフィルタ係数の割り当てを説明する図
【図６】実施形態１におけるフィルタ係数の割り当てを説明する図
【図７】実施形態２におけるフィルタ回路の構成例を示すブロック図
【図８】実施形態２における係数対称性のある場合のタップデータを説明する図
【図９】フィルタタップとタップデータの間の位置関係を示す図
【図１０】実施形態２におけるフィルタ係数の割り当て処理のフローチャート
【図１１】実施形態２における注目データからタップデータへの距離順を示す図
【図１２】実施形態２におけるＩＩＲフィルタ処理の例
【図１３】実施形態２におけるフィルタ係数の割り当て処理のフローチャート
【図１４】実施形態２における注目データからタップデータへの距離順算出を説明する図
【図１５】実施形態３におけるフィルタ回路の構成例を示すブロック図
【図１６】実施形態３におけるタップデータ圧縮を説明する図
【図１７】実施形態３におけるフレーム間フィルタ処理時のタップデータを説明する図
【図１８】公知技術を適用したフィルタ演算回路の概要を示す模式図
【図１９】実施形態１におけるフィルタ演算回路を示す模式図
【図２０】実施形態１におけるフィルタ演算回路を示す模式図
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施形態に必ずしも限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１１】
＜実施形態１＞
以下、画像処理回路であるフィルタ回路の実施形態１を説明する。実施形態１では、フィルタ係数の対称性の有無に応じて、画像データに対する２種類のＦＩＲ（Ｆｉｎｉｔｅ  Ｉｎｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタ処理を切り替えるものとして説明する。なお、フィルタは、画像データにおける各画素から生成したタップデータを保持する複数のタップからなる。各タップにはフィルタ係数が対応し、タップデータとフィルタ係数との積和を算出するために用いられる。例えば図２（ａ）に示すフィルタは、５画素×５画素の領域に対応するウィンドウにおいて、５タップ×５タップ（合計２５タップ）に対応するフィルタ係数を有することになる。ここで、フィルタにおいて中心に位置するタップを中央タップと呼ぶ。画像データに対してフィルタを用いたフィルタ処理を実行する際には、画像データにおける各画素に対してフィルタの中央タップを順次、対応付ける。以降、中央タップに対応する処理対象の画素を注目画素とよぶ。従って、図２（ａ）に示すフィルタを用いた演算においては、中央タップに対応する注目画素の画素値と（注目データ）、その近傍の画素（図２（ａ）のフィルタの場合は２４画素）の画素値それぞれがタップデータとしてフィルタ回路に入力されることになる。
【００１２】
（第１の実施形態の構成）
図１は、第１の実施形態におけるフィルタ回路の構成例を示すブロック図である。本実施形態のフィルタ回路は、画像データ入力部１０と、フィルタタップ供給部１１と、フィルタ演算部１２と、正規化部１３と、画像データ出力部１４とを備える。
画像データ入力部１０は、外部の装置から入力されるデジタル信号データ（以下、「画像データ」を例として説明する。）を、フィルタタップ供給部１１に供給する。フィルタタップ供給部１１は、画像データにおける注目画素に対して実現すべきフィルタ処理に必要なタップ数のフィルタタップのデータ（タップデータ）をフィルタ演算部１２に供給する。フィルタ演算部１２は、フィルタタップ供給部１１により供給されたタップデータに対してフィルタ演算（積和演算）を行い、積和演算結果を正規化部１３に供給する。正規化部１３は、フィルタ演算部１２で算出した積和演算結果を正規化して画像データ出力部１４に供給する。画像データ出力部１４は、正規化部１３で正規化された出力データを出力用の画像データとして外部の装置に出力する。
【００１３】
（フィルタ処理概要）
以下、本実施形態のフィルタ回路が実行するフィルタ処理の概要を説明する。
図１８〜図２０は、フィルタ演算部１２における処理を説明する模式図である。
図１８（ａ）及び（ｂ）は公知技術を適用したフィルタ演算部１００、１１０を模式的に示している。このフィルタ演算部１００、１１０では、入力されるタップデータに対して乗算器１０２、１０２、１０３（１０５、１０６）が一対一に対応付けられている。各乗算器には、予め設定されたフィルタ係数が対応付けられており、各乗算器は、フィルタ係数とタップデータとを乗算する。画像処理装置において、複数の異なるフィルタを用いたフィルタ演算を実現するためには、各フィルタに応じて様々な乗算器が必要となる。
【００１４】
例えば、図１８（ａ）に示すフィルタ演算部１００では、タップデータが３つ（タップデータ１、タップデータ２、タップデータ３）あり、夫々のタップデータに対して４ビットの乗算、８ビットの乗算、４ビットの乗算が必要となる。一方、図１８（ｂ）に示すフィルタ演算部１１０では、タップデータが２つ（タップデータ１、タップデータ２）あり、夫々のタップデータに６ビットの乗算、８ビットの乗算が必要となる。
図１８（ａ）に示すフィルタ演算部１００は、必要な乗算器（乗算器１０１〜１０３）の数が多く、図１８（ｂ）に示すフィルタ演算部１１０は、必要な乗算器（乗算器１０５、１０６）のビット数が大きい。このため、フィルタ演算部１００とフィルタ演算部１１０を共通の回路で実現するためには、少なくとも８ビットの乗算器、６ビットの乗算器、及び４ビットの乗算器を用意しておき、切り替えて使用する必要がある。
【００１５】
図１９及び図２０は、本実施形態におけるフィルタ演算部１２を模式的に示している。このフィルタ演算部１２では、所定のビット数（ここでは２ビット）の乗算が可能な乗算器を複数供えている。なお、１つのタップデータに対して複数の乗算器が対応付けられる。このように、本実施形態では、各フィルタ演算に必要なビット数に応じて、タップデータに対して乗算器を割当てる。例えば、図１９に示すように、４ビットの乗算が必要な場合は２つの乗算器１１１（１１３）を割り当て、８ビットの乗算が必要な場合は４つの乗算器１１２を割り当てる。また、図２０のフィルタ演算回路の場合には、６ビットの乗算のために３つの乗算器１１５を割り当て、８ビットの乗算には４つの乗算器を割り当てればよい。
【００１６】
ただし、この場合、図１９に示すフィルタ演算のためには、２ビットの乗算が可能な乗算器は８つ必要である。このため、フィルタ回路を共用する場合、図２０に示すフィルタ演算では１つの乗算器が余る。そこで、本実施形態では、係数割り当て部１２において、８ビットの演算に相当する演算に５つの乗算器１１６を割り当てて、１０ビット相当の演算としている。これにより、図１８（ａ）、（ｂ）のフィルタ回路を共用した場合に比較して、複数のフィルタ処理を切り替えるフィルタ処理回路において必要とする乗算器の規模を抑えることができる。また、１つの乗算器のビット数をフィルタ係数のビット数より小さくすることで、図２０に示す場合のように、余った乗算器をいずれかのタップデータに対して割り当てることができる。すなわち、フィルタのビット幅を上回るように乗算器に対応する係数を割り当てることができる。
これにより、余りの乗算器を割り当てられたタップデータに対しては、より高精度なフィルタ係数を設定できる。特に本実施形態では、乗算器が余る場合は、注目データからの距離が近いタップデータに対して割り当てを優先する。その結果、フィルタ演算においてより重要な注目データ近傍のタップデータに対してより精度良くフィルタ演算することが可能となる。
【００１７】
（フィルタ処理詳細）
以下、本実施形態におけるフィルタ回路が実行するフィルタ処理を詳細に説明する。画像データ入力部１０は、外部の装置からフィルタ処理の対象となるデジタル画像データ（画像データ）を取得し、フィルタタップ供給部１１に画像データを供給する。画像データを入力する外部の装置としては、例えばイメージセンサのようにリアルタイムに画像データを取得する機器でもよいし、主記憶装置のように画像データを一時的に保持する記憶装置であってもよい。
フィルタタップ供給部１１は、後段のフィルタ演算部１２におけるフィルタ処理に応じて、画像データにおける注目画素に対して実現すべきフィルタ処理に必要なタップ数を有するタップデータをフィルタ演算部１２に供給する。なお、本実施形態では、後段のフィルタ演算部１２は、複数のフィルタ処理を切り替える。複数のフィルタ処理のそれぞれに必要なタップ数、フィルタ係数等については、予めフィルタタップ供給部１１及びフィルタ演算部１２のレジスタ等に保持しておけばよい。本実施形態では、以下、フィルタ演算部１２において、図２（ａ）に示す係数対称性の無い５×５タップのフィルタと、図２（ｂ）に示す係数対称性の有る４×４タップのフィルタを切り替える例について説明する。
【００１８】
なお、図２（ａ）に示す５×５タップのフィルタでは、フィルタ係数に対称性はない。この場合中央のタップに対して注目画素が対応し、注目画素の画素値が注目データとして、注目画素を中心とする５画素×５画素の領域に含まれる近傍画素の画素値がタップデータとして入力される。つまり、注目画素に対するフィルタ処理結果は、注目画素を中心とした５画素×５画素の画素値の積和演算により得られる。
一方、係数対称性のある４×４タップのフィルタについて説明する。本来、７×７タップのフィルタにおけるフィルタ係数について考える。図２（ｃ）は、７×７タップのフィルタ係数のうち中心位置を中央タップとして、等方的なフィルタ係数である例を示す。ここで、同じアルファベットは同じ値のフィルタ係数であることを意味する。この場合、７×７タップのフィルタ係数と対応する４９画素の画素値との積和演算ではなく、同じフィルタ係数に対応する画素の画素値の和（タップデータ）を算出した後に、フィルタ係数を積算してもよい。
そこで、本実施形態では、図２（ｃ）に示すフィルタを用いたフィルタ処理をするために、同じフィルタ係数は省略して４×４タップのフィルタとして保持するものとする。つまり図２（ｂ）に示すフィルタでは、中央タップは左上に位置する。また、図２（ｂ）に示すフィルタを用いたフィルタ処理では、注目画素のフィルタ処理結果は、注目画素を中心とした７画素×７画素の画素値とフィルタ係数との積和演算により得られることになる。
【００１９】
一般的にＦＩＲフィルタは、フィルタの性能を高めるために比較的大きなタップ数を必要とする。一方で、フィルタタップ数を多くすると、タップデータを保持するためのバッファ（シフトレジスタ等）や、タップデータとフィルタ係数の乗算を多く必要とする。このため、フィルタのタップ数は少ない方がよい。
ここで、前述の通りフィルタ係数に対称性がある場合、係数対称性を利用してフィルタのタップ数を減らす。係数対称性のあるフィルタを用いたフィルタ演算について以下に説明するように、フィルタタップ数を増加させずにフィルタ性能を高めることができる。
図３及び図４は、フィルタ係数に対称性がある場合における、フィルタタップ供給部１１がタップデータを供給する方法を説明する図である。
図３は、画像データを示している。画像データ入力部１０は、各画素の画像データ（画素値）を主走査方向及び副走査方向の順番で、フィルタタップ供給部１１に順次に入力する。フィルタタップ供給部１１は、所定数の画素の画像データ（画素値）を保持するラインメモリ等のバッファ３１を備えている。
【００２０】
画像データ入力部１０から新たに画像データ３２が供給されると、フィルタ処理を行う範囲の中心の画像データ（注目画素データまたは注目データ）３８の近傍のデータ群を用いた処理が可能な状態となる。なお、図３では、画像データ３８の近傍のデータ群を、画像データ３８を中心とした７画素×７画素分の画像データとした例を示している。
このような状態となると、フィルタタップ供給部１１は、画像データ入力部１０から入力された画像データ３２と、予めバッファ３１に格納されている画像データ列３３を読み出し、フィルタ処理に必要な１カラム分のデータを取得する。ここで、１カラム分のデータとは、画像データ３２及び画像データ３２から副走査方向と逆に所定数（この場合は６）の画像データ（すなわち６ライン前迄のラインの同一カラムのデータ）のことである。
【００２１】
フィルタタップ供給部１１は、取得した１カラム分の画像データを、図４に示すように、第１の対称軸３４により折り返し加算する。更に、フィルタタップ供給部１１は、折り返し加算したデータ３９を主走査方向（例えば画像データの横［Ｘ］方向）に連続するシフトレジスタ３５に格納する。なお、シフトレジスタ３５は、画像データ入力部１０から新たな画素の画像データ３２が入力される度に、格納している画像データを主走査方向にシフトさせ、空いた領域に第１の対称軸３４により折り返し加算されたデータ３９を格納する。
【００２２】
さらに、フィルタタップ供給部１１は、シフトレジスタ３５中のデータを第２の対称軸３６により折り返し加算して、フィルタ係数に対称性がある場合のＭ（Ｍ：自然数）個のタップデータを生成する。以上の折り返し加算により、図２（ｃ）に示すフィルタにおいて同じフィルタ係数に対応する画像データ（画素値）を加算したことになる。従って、図２（ｂ）に示すフィルタを用いたフィルタ処理回路のタップデータ数は１６個である。ここで生成されたタップデータのうち、タップデータ３７は、入力された画像データ３２に対して、主走査方向及び副走査方向に３画素ずつ遅延した図３中の画像データ３８（すなわち注目データ）そのものである。
換言すると、画像データ３８を通る第１の対称軸３４及び第２の対称軸３６によって、７画素×７画素の領域の画像データを折り畳み加算（畳み込み加算）して、Ｍ（４×４：１６）個のタップデータが生成される。このようなタップデータ群をフィルタ演算回路の入力として用いてフィルタ処理を行う。これにより、図２（ｃ）に示すフィルタを用いて７画素×７画素の領域の４９個の画像データをそのままタップデータ群とした場合と同等のフィルタ性能のフィルタ処理を行うことが可能となる。
【００２３】
次に、フィルタ演算部１２は、フィルタタップ供給部１１により供給されたフィルタタップのそれぞれのタップデータに乗算器（係数に対応する）を対応付けて（割り当てて）積和演算を実行することで、フィルタ演算を行う。
以下、本実施形態では、フィルタ仕様に応じて、符号付き８ビットのＮ（Ｎ：自然数、例えば２５）個の乗算器の、タップデータに対する割り当てを切り替えてフィルタ演算を行う例について説明する。１つの乗算器は、符号を含めた８ビットの係数Ｃ（ｚ）（ｚ：０〜２４）を設定可能である。所定ビット幅の係数Ｃ（ｚ）は、１つ、もしくは複数によって１つのフィルタ係数を構成する。例えばここでは、１つの乗算器を１つのタップデータに割り当てると、８ビットの係数Ｃ（ｚ）（ｚ：０〜２４）と入力されたタップデータとを乗算することができる。すなわち、フィルタ演算部１２は、フィルタ係数の対称性の有無に応じ、タップデータの数（Ｍ）と、フィルタ係数のビット数を決定づける乗算器の数（Ｎ）に基づいて、それぞれのタップデータに乗算器を割り当ててフィルタ演算を行う。本実施形態においてフィルタ演算部１２は、８ビットの係数を設定可能な乗算器を２５個、保持しているものとする。
【００２４】
なお、予め用意する乗算器の個数と乗算可能なビット幅は、例えば、ｋビットのフィルタ係数からなるａ×ａタップのフィルタと、ｌビットのフィルタ係数からなるｂ×ｂタップのフィルタで共有する場合、以下のように決定することができる。
乗算器のビット幅ｃを、ｋビットとｌビットのうち、符号ビットを除く絶対値の有効ビット幅における（最大公約数＋１（符号ビット））以上とする。すなわち、乗算器の数は、フィルタ係数のビット幅の公約数の乗算ができるようにする。乗算器のビット幅ｃを、ｋビットとｌビットの最大公約数以外の公約数＋１とすることも可能だが、乗算器のビット幅を小さくすると回路上のオーバーヘッドが大きくなる。このため、最大公約数が１ビットの場合には、乗算器のビット幅ｃを２ビット以上にすることが好ましい。
また、乗算器の個数ｄは、乗算器のビット幅ｃが決まれば、ａ×ａタップのフィルタと、ｂ×ｂタップのフィルタにおける総乗算数（乗算器によるタップ毎の乗算回数の合計）が大きい方に決まる。もしくは、上記で算出した論理的な乗算器の個数ｄに対して、フィルタ回路のスループット（サイクル当りの乗算数、もしくは乗算器の時分割数の逆数）を乗じることで、物理的な乗算器の個数ｄ´を算出することができる。本実施形態における乗算器の個数は、論理的な乗算器の個数もしくはスループットが１の場合の物理的な乗算器の個数を示す。すなわち、乗算器の数は、複数のフィルタごとの最大総乗算数とスループットとに応じた数とすることができる。
【００２５】
図５は、図２（ａ）に示すフィルタ係数の対称性が無い場合のフィルタに対するタップデータの例を示す。図５の場合は、フィルタタップ供給部１１は、フィルタタップのタップデータの数（Ｍ）とフィルタ係数の数が等しいため、注目データとその周囲の５画素×５画素分の画像データをそのままタップデータとしてフィルタ演算部１２に供給する。また乗算器の数も２５個であり、タップデータの数（Ｍ）とフィルタ係数の数と等しい。すなわち、タップデータＴ（ｘ，ｙ）と乗算器とを１対１に対応付ければよく、フィルタ演算部１２は、積和演算Ｓ＝Σ（Ｔ（ｚ％５，ｚ÷５）＊Ｃ（ｚ））を実行してフィルタ処理を行う。ここで、％は剰余算を意味しており、÷は余りを切り捨てる除算を意味している。
【００２６】
一方、図６は、フィルタ係数に対称性が有る場合のフィルタタップのタップデータに対する乗算器の割り当て方法を示す。この場合は、フィルタタップのタップデータの数（Ｍ）が１６であるのに対し、乗算器の数（Ｎ）がＭより大きい２５である。このため、タップデータと乗算器（８ビットの係数）を１対１に対応付けると、乗算器が７個余ることになる。
そこで、本実施形態では、フィルタ演算部１２は、１順目として、まず、図６（ａ）及び図６（ｄ）に示すように、１６個のタップデータのそれぞれに乗算器を１つずつ割り当てる（１対１に対応付ける）。つまり、８ビットの係数Ｃ（０）〜Ｃ（１５）が各タップに対応することになる。そして、フィルタ演算部１２は、対応付けた乗算器とタップデータに対して、部分的な積和演算を行う。
【００２７】
さらに、フィルタ演算部１２は、２順目として、図６（ｄ）に示すように、残った９個の乗算器をフィルタタップのタップデータに割り当てる。従って残りの乗算器に対応する係数Ｃ（１６）〜Ｃ（２４）が、図６（ｃ）に示す通りに各タップに対応付けられる。２つの乗算器を割り当てられたタップデータは、１６ビットのフィルタ係数が対応付けられたことを意味する。ここで、本実施形態では、フィルタ演算部１２は、フィルタ中心の画素データ３８（注目画素データ）から近傍の画素データへの距離に応じて、乗算器をフィルタタップのタップデータに割り当てる。フィルタの中心の画素データ３８（注目画素データ）は、対称軸を通っており、この対称軸に折り畳まれたものがフィルタタップとなっている。このため、フィルタ中心の画素データ３８から各フィルタタップを形成する各画素データまでの距離は同一となる。従って、この場合、フィルタタップ上における距離に応じて、乗算器を割り当てればよい。
【００２８】
フィルタ中心の画像データ３８に対応するＴ（０，０）のタップデータからの距離に応じて順番付けすると、図６（ｂ）に示すとおりとなる。ただし、図６（ｂ）では、フィルタ中心から同距離に位置するタップデータについては、右上に位置するタップデータを優先している。
フィルタ演算部１２は、フィルタ中心からの距離の順番に従って残りの９個の乗算器をタップデータに割り当てる。上記の割り当てにより、図６（ｃ）に示すように、フィルタの中心に近いタップデータには８ビットの係数に対応する乗算器が２つ割り当てられ、フィルタの周辺部のタップデータには８ビットの係数に対応する乗算器が１つ割り当てられる。すなわち、フィルタ演算部１２は、注目データからの距離が近いデータ群（タップデータ）に対してフィルタ係数のビット数を優先的に対応付ける。この結果、注目データからの距離が近いデータ群（タップデータ）に対してより多くのビット数のフィルタ係数が対応付けされる。
【００２９】
フィルタ係数に対称性が有る場合のフィルタ演算では、フィルタ演算部１２は、上記のように１順目に割り当てた係数を用いて、部分的な積和演算Ｓ（１）＝Σ（Ｔ（ｚ％４、ｚ÷４）＊Ｃ（ｚ））（ｚ：０〜１５）を実行する。ただし、ｚ＝０〜８の係数については、対応するタップデータに割り当てた２つの係数を使用したフィルタ係数のダイナミックレンジの拡大に影響を及ばす符号ビットについては、無視するか、若しくは、符号なしを示す０に設定する。さらに、フィルタ演算部１２は、２順目に割り当てた係数を用いて、部分的な積和演算Ｓ（２）＝Σ（Ｔ（Ｄ（ｚ））＊Ｃ（ｚ））（ｚ：１６〜２４）を実行する。ここで、Ｄ（ｚ）は、係数Ｃ（ｚ）が割り当てられたフィルタタップのフィルタ中心からの距離順を示し、Ｔ（Ｄ（ｚ））は、距離順Ｄ（ｚ）に対応するタップデータを示すものとする。
【００３０】
次に、フィルタ演算部１２は、上記により算出した部分的な積和演算結果を合成し、積和演算Ｓ＝Ｓ（２）＊１２８＋Ｓ（１）を実行する。ここで、積和演算Ｓ（２）の結果に乗じられる１２８は、１順目の係数レンジ（０〜１２７）の上位の桁を表現するための値であり、係数のビット幅から符号ビット分を除いた値による２のべき乗となる。これにより、部分的な積和演算Ｓ（１）により７ビットレンジの係数が表現され、部分的な積和演算Ｓ（２）により、その上位の符号付き８ビットの係数が表現される。このように算出した積和演算Ｓの結果は、フィルタ中心部分において、フィルタ係数のダイナミックレンジが符号付き１５ビット相当のフィルタ結果となる。したがって、回路規模を増大させることなく、フィルタ中心におけるフィルタ係数のビット幅を拡大することができる。なお、上記では、タップデータに対する乗算器（所定ビット幅の係数を保持する）の割り当てを変更する処理を例に説明したが、これに替えて、タップデータに対する係数のビット数の対応付けを変更する処理を行ってもよい。
【００３１】
上記のフィルタ処理は、フィルタタップ供給部１１がフィルタ演算部１２に供給する画像データの画素を順次移動させながら、画像データの全範囲にわたって実行する。これにより、画像データ全体に対するフィルタ処理が実行される。
上記のフィルタ処理が実行された後、正規化部１３は、フィルタ演算部１２で算出した積和演算Ｓの結果を、出力する画像データのレンジ（ビット幅）に合せて正規化する。
画像データ出力部１４は、正規化部１３で正規化された出力データを外部の装置に出力する。外部の装置としては、ディスプレイのような表示装置でもよいし、主記憶装置のように画像データを一時的に保持する記憶装置でもよい。
【００３２】
以上説明したように、本実施形態では、画像データに対する複数のフィルタ回路を、フィルタ係数の対称性に応じて設定することにより、回路規模の増大を抑制しつつ、複数のフィルタ処理を適切に実装することができる。
フィルタ処理では、フィルタの中心に近い部分（中心部）のフィルタ係数の絶対値がフィルタの周辺部に比べて大きいことがあり、この傾向はタップの数が多くなると更に強くなる。本実施形態では、フィルタ係数の対称性が有る場合に、フィルタタップ供給部１１が、画像データを折り返し加算してすることで、実質的にフィルタタップのタップデータ数を拡大してフィルタタップを生成する。
【００３３】
また、実質的にフィルタタップのタップデータ数を拡大したことで、フィルタの中心部で求められるフィルタ係数のダイナミックレンジも拡大することが求められる。ここで、本実施形態では、フィルタ演算部１２が、フィルタ中心の注目画素データから近傍の画素データへの距離に応じて、乗算器をタップデータへ割り当てる。これにより、フィルタ中心におけるビット幅を拡大してダイナミックレンジを拡大することができる。
このように、本実施形態によれば、フィルタタップのタップデータ数もフィルタ係数のダイナミックレンジも拡大しつつ、複数のフィルタの切り替えが可能なフィルタ回路を実現することができる。しかも、このようなフィルタ回路の実現に際して、フィルタ演算における演算量や係数レジスタ等の演算リソースをそれに伴い増大させることもなく、回路規模の増加を抑制することができる。
また、本実施形態では、フィルタタップの数よりも乗算器の数が多い場合にも、フィルタ中心からの距離に応じて乗算器を割り当てることが可能であり、効率的な演算リソースの使用が可能となる。
【００３４】
＜実施形態２＞
実施形態１では、フィルタ係数の対称性に応じて画像データに対するフィルタ処理を切り替える例を説明したが、以下、本発明の実施形態２に係るフィルタ回路を、信号データに対する様々なフィルタ処理を切り替えながら処理を行う場合の例として説明する。なお実施形態１ではフィルタ処理に用いるフィルタのタップに対して乗算器を割り当てるとして説明したが、本実施形態では、乗算器に対応する係数を割り当ての対象として説明するが、乗算器と係数は対応しているので、実質的には同じことを意味する。
本実施形態のフィルタ回路のブロック図を図７に示す。本実施形態におけるフィルタ回路は、信号データ入力部５１と、フィルタタップ供給部５３と、係数割り当て部５０と、フィルタ演算部５４と、正規化部５５と、信号データ出力部５２とを備える。各構成要素について実施形態１で説明した構成要素に対応するものについては説明を省略する。
【００３５】
信号データ入力部５１は、外部の装置からフィルタ処理の対象となる信号データを入力する。
信号データ出力部５２は、外部の装置へフィルタ処理済みの信号データを出力する。
係数割り当て部５０は、フィルタタップ供給部５３から得られる注目画素データの位置情報とタップデータの位置関係から、注目画素データからの距離に応じた、タップデータへの所定ビット幅の係数の割り当てを行う。フィルタ演算部５４は、係数の割り当ての情報に基づいて、タップデータと各係数の積和演算を実行する。本実施形態で説明する係数割り当て部５０は、実施形態１で説明したフィルタ演算部１２の機能を一部切り出したものに該当する。
【００３６】
（フィルタ処理詳細）
以下、実施形態２が実現するフィルタ処理として、係数対称性のある２次元ＦＩＲフィルタ処理と、１次元ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｎｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタ処理とを切り替える例について説明する。なお、以下、２次元ＦＩＲフィルタ処理が対象とする信号データは画像データ等の２次元のデータであり、１次元ＩＩＲフィルタ処理が処理対象とする信号データは画像データの1ライン分のデータあるいは音声データ等の１次元のデータである場合を例に説明する。
【００３７】
２次元ＦＩＲフィルタ処理の係数対称性については、実施形態１で説明したＸ軸Ｙ軸の２軸に加え、もう１軸の対称性をもたせた例について説明する。すなわち、図８（ａ）で示すようにＸ軸Ｙ軸対称となるようなフィルタ係数（図中の数は、同一のフィルタ係数を示す）から、さらに、対角軸による対称性を持たせると図８（ｂ）に示すようなフィルタ係数となる。図８（ｂ）に示すフィルタ係数は、Ｘ軸、Ｙ軸に差がなく等方性のあるフィルタ係数となっている。このようなフィルタ係数をフィルタ中心の注目画素データを通るそれぞれの対称軸によって折り畳み加算すると、図９に示すフィルタタップと、タップデータの間の位置関係とを得ることができる。なお、タップデータ６０はフィルタ中心の画像データ（注目画素データ）そのものである。
本実施形態において、係数割り当て部５０は、図１０のフローチャートに示す処理によって、各タップデータへの係数の割り当て数をカウントする係数割り当てカウンタＣｃｎｔ（ｘ）の値を得る。なお、本実施形態では、フィルタタップのタップデータの数をＭ個とし、係数の数をＮ個とする。
【００３８】
ステップＳ１において、係数割り当て部５０は、フィルタの中心からの距離順ソート結果Ｄ（ｘ）を算出する。図９に示すフィルタタップ供給部５３から出力されるフィルタの中心の位置とタップデータの間の位置関係の情報を元に距離順のソートを行うと、図１１に示すような結果Ｄ（ｘ）が得られる。
ステップＳ２において、係数割り当て部５０は、係数割り当てカウンタＣｃｎｔ（ｘ）を初期化し、全てのタップデータに対するカウント値を０にする。また、係数割り当て部５０は、タップ位置ｘを０に初期化する。
【００３９】
ステップＳ３において、係数割り当て部５０は、全ての係数割り当てカウンタＣｃｎｔ（ｘ）の合計値が係数の数Ｎとなったか否かを判断する。全ての係数割り当てカウンタＣｃｎｔ（ｘ）の合計値が係数の数Ｎとなった場合は、全ての係数の割り当てが完了しており、係数割り当て部５０は、フローチャートの処理を終了し、係数をフィルタ演算部５４に出力する。全ての係数割り当てカウンタＣｃｎｔ（ｘ）の合計値がＮに達していない場合には、ステップＳ４に進む。
【００４０】
ステップＳ４において、係数割り当て部５０は、距離順に係数の割り当てを実行し、現在のタップ位置ｘの係数割り当てカウンタＣｃｎｔ（ｘ）をインクリメント（増加）させる。なお、係数割り当てカウンタＣｃｎｔ（ｘ）のカウント値は、各タップに割り当てられた係数の数に相当する。
ステップＳ５において、係数割り当て部５０は、タップ位置ｘの更新を行う。タップ位置ｘを１増加させて、フィルタタップのタップデータの数Ｍ以上となっている場合には、係数割り当て部５０は、タップ位置ｘをＭで割って余りをタップ位置ｘとする。このステップＳ５においてタップ位置の更新を行った後に、係数割り当て部５０は、ステップＳ３に戻り、処理の終了判定を実行する。
【００４１】
以上の処理により、フィルタタップのタップデータの数Ｍ及び係数の数Ｎに依らず、タップデータ毎の係数割り当てカウント値、すなわち、割り当てられた係数の数が算出される。
係数割り当て部５０は、得られた係数の数に応じて、フィルタの中心からの距離が近い順に順番にフィルタタップのタップデータに係数の割り当てを行う。さらに、係数割り当て部５０は、フィルタタップの全てのタップデータに係数を割り当てた後に、再度フィルタ中心から順番に係数の割り当てを行う。従って、フィルタタップ全面に均等に係数が割り当てられ、かつ、余った係数はフィルタの中心に割り当てられるため、タップ数の多いフィルタ処理にも対応可能となる。
【００４２】
フィルタ演算部５４では、上記で得られたタップデータ毎の係数の対応付けの数（割り当て数）に従って、タップデータとの積和演算を行い、フィルタ演算を実行する。例えば、符号付きｖビットの係数が１つのみ割り当てられたタップデータでは、フィルタ演算部５４は、部分積Ｐ＝Ｔ（ｘ，ｙ）＊Ｃ（ｚ）を算出する。また、係数がｗ個割り当てられたタップデータでは、フィルタ演算部５４は、部分積Ｐ＝Ｔ（ｘ，ｙ）＊Ｃ（ｚ）＋Ｔ（ｘ，ｙ）＊Ｃ（ｚ＋１）＊（２＾（ｖ−１））＋・・・＋Ｔ（ｘ，ｙ）＊Ｃ（ｚ＋ｗ）＊（２＾（（ｖ−１）＊ｗ））を算出する。ただし、所定ビット幅の係数Ｃ（ｚ）以外の係数は、正の数か、もしくは、符号ビットを除いた（ｖ−１）ビットの係数である必要がある。上記の複数個の係数が割り当てられたタップデータの部分積で、２のべき乗を乗じる演算を等価なビットシフト演算と考えると、係数の割り当て数とフィルタ演算における乗算の回数は一致する。従って、係数に対応させる乗算器の対応付けを考える場合も、図１０に示すフローチャートに従って処理すればよい。なお、フィルタ演算部５４では、タップデータ毎の部分積の総和をとって、フィルタ演算結果とする。
【００４３】
次に、１次元ＩＩＲフィルタの例について説明する。
図１２は、ＩＩＲフィルタの典型的な処理の例を示す。図１２の上部のパスは、ＦＩＲフィルタと等価なフィードフォワードパスとなっており、下部のパスはフィルタ結果をもとに補正値を算出するフィードバックパスになっている。図１２では、フィードフォワードパスにおけるタップデータを注目データＴ（０）とし、時間軸方向に遅延したタップデータをＴ（１）、Ｔ（２）、Ｔ（３）、Ｔ（４）としている。また、フィードバックパスにおけるタップデータは、出力結果を１つずつ遅延させたＴ（５）、Ｔ（６）、Ｔ（７）、Ｔ（８）から成る。フィルタ演算部５４は、これらのタップデータに所定の係数を乗じてフィルタ処理結果を得る。
一般的に、ＩＩＲフィルタはＦＩＲフィルタに比べ、少ないタップ数で同等のフィルタ性能を出すことができる。一方で、ＩＩＲフィルタは、係数感度が高く出力安定性が悪いという欠点を持っている。このため、ＩＩＲフィルタには、フィルタ係数のビット幅がかなり必要で、必要なビット幅は用途により異なる。
【００４４】
本実施形態では、タップデータ毎に必要なビット幅をＰ（Ｔ（ｘ））とする。各タップデータに対する係数の割り当てについて、図１３に示すフローチャートを用いて説明する。
ステップＳ１において、係数割り当て部５０は、フィルタの中心からの距離順ソート結果Ｄ（ｘ）を算出する。本実施形態のＩＩＲフィルタ処理の場合、注目画素データとなるタップデータと、その他のデータ群との距離は時間的な距離となる。注目画素データとデータ群のデータを入力、もしくは、出力されたときの時間軸を直線上に並べると、図１４（ａ）のようになる。これを時間距離順に並べると、図１４（ｂ）に示す順番になる。但し、同一時間距離となるフィードフォワードパスのタップデータとフィードバックパスのタップデータでは、フィードバックパスのタップデータを優先させている。ＩＩＲフィルタの場合は、特にフィードバックパスの方が、係数感度が高いため最終的に割り当てる係数を多くするためである。
ステップＳ２からステップＳ５の説明は、前述の通りであるため説明を省略する。
【００４５】
ステップＳ６において、係数割り当て部５０は、タップ位置ｘのタップデータＴ（ｘ）の要求ビット幅Ｐ（Ｔ（ｘ））を満たしているか否かの判定を行う。割り当てを行う係数のビット幅をｗとすると、Ｃｃｎｔ（ｘ）が０の場合は割り当てる係数のビット幅は０であり、それ以外の場合は割り当てる係数のビット幅は（Ｃｃｎｔ（ｘ）−１）＊（ｗ−１）＋ｗとなる。係数割り当て部５０は、このビット幅が、要求ビット幅Ｐ（Ｔ（ｘ））以上か否かを判定し、越えていない場合にはステップＳ３に進む。ビット幅が要求ビット幅Ｐ（Ｔ（ｘ））を越えている場合には、係数割り当て部５０は、ステップＳ５に進み、タップデータＴ（ｘ）への係数の割り当てを完了する。
【００４６】
上記の処理において、係数割り当て部５０は、距離順に並べたタップデータＴ（ｘ）の要求ビット幅Ｐ（Ｔ（ｘ））を満たすように係数の割り当てを行う。係数が全タップデータＴ（ｘ）の要求ビット幅Ｐ（Ｔ（ｘ））を満たすだけのビット幅と個数が無い場合には、係数割り当て部５０は、注目データから距離の遠いタップデータに関しては、係数を割り当てない。ＩＩＲフィルタは、ＦＩＲフィルタに比べて少ないフィルタタップで同等のフィルタ性能を実現でき、係数感度が高いためにタップデータの要求ビット幅を満たす必要があるため、上記のような係数の割り当てが望ましい。
フィルタ演算部５４は、上記で得られたタップデータ毎のフィルタ係数に従って、タップデータとの積和演算を行い、フィルタ演算を実行する。
【００４７】
以上説明したように、本実施形態では、フィルタタップ数がＭ個の様々なフィルタ処理に対し、Ｎ個の係数を割り当ててフィルタ処理する。いずれのフィルタ処理においても、予め用意していた係数を最大限活用し、様々なフィルタ処理を実現することができる。
これにより、本実施形態では、回路規模の増大を抑制しつつ、複数のフィルタ処理を適切に実装することができる。なお、本実施形態で用いた係数はタップデータに１対１に対応するものではなく、フィルタ処理における乗算リソースに設定する乗数という位置付けである。従って、本実施形態における係数を乗算リソースと言い換えてもよい。
【００４８】
＜実施形態３＞
本発明の第３の実施形態に係るフィルタ回路は、映像データに対してフレーム間とフレーム内のフィルタ処理を切り替え可能とするものである。
本実施形態のフィルタ回路のブロック図を図１５に示す。本実施形態のフィルタ回路は、映像データ入力部７０と、タップデータ圧縮部７１と、タップデータ記憶部７２と、フィルタタップ供給部７４と、フィルタ演算部７５と、係数割り当て部７６と、正規化部７７と、映像データ出力部７３とを備える。各構成要素について、実施形態１及び実施形態２において説明した構成要素に対応するものについては説明を省略する。
映像データ入力部７０は、外部の装置から処理対象となる映像データを入力する。映像データは、フレームの画像データ毎に順次入力される。
映像データ出力部７３は、外部の装置へフィルタ処理済みの映像データを出力する。
タップデータ圧縮部７１は、フィルタ処理対象となるフレーム内のタップデータを圧縮し、フィルタタップ供給部７４若しくはタップデータ記憶部７２に出力する。
【００４９】
ここで、タップデータの圧縮方法について、図１６を用いて説明する。図１６（ａ）に示すのは、フレーム内にのみフィルタ処理を施す場合のフィルタタップである。タップデータ圧縮部７１は、このフィルタの中心を注目画素データとしてＸＹ軸に対して折りたたみ加算し、図１６（ｂ）のタップデータを算出する。タップデータ圧縮部７１は、このタップデータを注目画素データ８０に対応するタップデータ群としてタップデータ記憶部７２に出力する。１つの注目画素データに対して、多数のタップデータが記憶され、それが複数フレーム分のデータ容量となるため、出来る限りタップデータを少容量にすることが望ましい。例えば、タップデータ生成時、別の対称軸による折り返し加算を実施してタップデータ数を削減してもよいし、タップデータ群に対して公知のデータ圧縮技術を利用してデータ容量を削減してもよい。
タップデータ記憶部７２は、タップデータ圧縮部７１で生成された注目データに対するタップデータを一時的に保持し、フィルタタップ供給部７４の要求に応じて、注目データに対するタップデータを供給する。
【００５０】
フィルタタップ供給部７４は、フィルタ処理の切り替えに応じて、タップデータをフィルタ演算部７５に供給する。フィルタ処理がフレーム内のフィルタ処理である場合には、フィルタタップ供給部７４は、タップデータ圧縮部７１で圧縮されたタップデータをバイパスしてフィルタ演算部７５に供給する。若しくは、フィルタタップ供給部７４は、入力される映像データをもとにフレーム内のフィルタタップのデータを生成する。フレーム間のフィルタ処理である場合には、フィルタタップ供給部７４は、タップデータ圧縮部７１で生成された図１６（ｂ）で示したタップデータと、タップデータ記憶部７２から読み出されるタップデータを用いてフィルタ処理に必要なタップデータを供給する。
【００５１】
図１７に示すように、あるフレームの注目画素データ９０とタップデータ９１は、タップデータ圧縮部７１で生成されたものである。また、注目画素データ９０と同じ位置にあり、フレームが異なる画像データに対するタップデータ９３及び９４は、タップデータ記憶部７２より読み出されたものである。フィルタタップ供給部７４は、複数の注目画素データのうち、時間軸上のフレームの中心となる画像データ９２を注目画素データと設定し、フィルタ演算部７５、及び係数割り当て部７６に出力する。
係数割り当て部７６は、フィルタタップ供給部７４から得られる注目データの位置情報とタップデータの位置関係から、注目データからの各タップデータへの距離に応じた係数の割り当てを行う。
【００５２】
（フィルタ処理詳細）
以下、本実施形態におけるフィルタ処理の詳細について説明する。なお、フレーム内のフィルタ処理である場合には、他の実施形態で示してきたため、フレーム間のフィルタ処理について図１７を使用して説明する。
係数割り当て部７６は、フレーム間のタップデータを、注目データ９２から各フレームのタップデータへの距離順にソートして、係数を設定する。注目データとタップデータ間の距離は、同一フレーム内のタップデータに対する空間的な距離Ｄｓ（ｘ）と、フレーム間のタップデータに対する時間的な距離Ｄｔ（ｘ）に分けられる。係数割り当て部７６は、それぞれの距離の合成により、距離Ｄ（ｘ）＝ａ＊Ｄｓ（ｘ）＋ｂ＊Ｄｔ（ｘ）（ａ，ｂ：重み係数）を算出し、この距離Ｄ（ｘ）に基づいて、注目データからの距離順にソート処理を行う。なお、重み係数となっているａ及びｂに関しては、映像データの解像度とフレームレートの相対関係により変化する。距離順が定まった後に、係数を割り当てる方法は、図１０、若しくは、図１３のフローチャートに従えばよい。
【００５３】
以上説明したように、本実施形態では、映像データに対してフレーム内のフィルタ処理とフレーム間のフィルタ処理を切り替える例を示した。どちらのフィルタ処理を選択した場合でも、予め用意している乗算リソースを効率的に使用することができ、フィルタ性能を最大限に高めることができる。
これにより、本実施形態では、回路規模の増大を抑制しつつ、複数のフィルタ処理を適切に実装することができる。
なお、映像データの解像度、フレームレートに応じて、タップデータ間の空間的距離と時間的距離の比率を変更することで、より重要なタップデータの感度を高めることが可能となる。
【符号の説明】
【００５４】
１０…画像データ入力部、１１、５３、７４…フィルタタップ供給部、１２、５４、７５…フィルタ演算部、１３、５５、７７…正規化部、１４…画像データ出力部、５０…係数割り当て部、５１…信号データ入力部、５２…信号データ出力部、７０…映像データ入力部、７１…タップデータ圧縮部、７２…タップデータ記憶部、７３…映像データ出力部
【図１】
2018088231.tif 000003
【図２】
2018088231.tif 000004
【図３】
2018088231.tif 000005
【図４】
2018088231.tif 000006
【図５】
2018088231.tif 000007
【図６】
2018088231.tif 000008
【図７】
2018088231.tif 000009
【図８】
2018088231.tif 000010
【図９】
2018088231.tif 000011
【図１０】
2018088231.tif 000012
【図１１】
2018088231.tif 000013
【図１２】
2018088231.tif 000014
【図１３】
2018088231.tif 000015
【図１４】
2018088231.tif 000016
【図１５】
2018088231.tif 000017
【図１６】
2018088231.tif 000018
【図１７】
2018088231.tif 000019
【図１８】
2018088231.tif 000020
【図１９】
2018088231.tif 000021
【図２０】
2018088231.tif 000022