(57)【要約】【課題】従来のフィルタ係数計算方法は、フィルタ係数の補正方法の自由度が低い問題があった。【解決手段】本発明のフィルタ係数計算方法は（２ｎ＋１）行（２ｎ＋１）列（ｎは整数）のフィルタ関数を算出するフィルタ係数計算方法であって、外部から入力される設定値σに応じて第１のフィルタ関数を計算し、第１のフィルタ関数に含まれる値の総和と総和の理想値との誤差を算出し、誤差が奇数であれば、誤差に含まれる奇数誤差を第１のフィルタ関数の中心に位置する第１の原点係数ｋａに第１の補正値として与え、誤差のうち奇数誤差を除く偶数誤差を第１の原点係数ｋａと第１の原点係数を中心点とする点対称の位置に配置される係数対（ｋｂ〜ｋｅ）とのいずれか一方に第２の補正値として与える。【選択図】図４
2010130460.tif 000002
【特許請求の範囲】
【請求項１】
（２ｎ＋１）行（２ｎ＋１）列（ｎは整数）のフィルタ関数を算出するフィルタ係数計算方法であって、
外部から入力される設定値に応じて第１のフィルタ関数を計算し、
前記第１のフィルタ関数に含まれる値の総和と前記総和の理想値との誤差を算出し、
前記誤差が奇数であれば、前記誤差に含まれる奇数誤差を前記第１のフィルタ関数の中心に位置する第１の原点係数に第１の補正値として与え、
前記誤差のうち前記奇数誤差を除く偶数誤差を前記第１の原点係数と前記第１の原点係数を中心点とする点対称の位置に配置される係数対とのいずれか一方に第２の補正値として与える
フィルタ係数計算方法。
【請求項２】
前記係数対を構成する２つの第１の周辺係数には、前記第２の補正値を等分した値がそれぞれ与えられる請求項１に記載のフィルタ係数計算方法。
【請求項３】
前記第２の補正値は、前記第１の周辺係数の重みに応じて複数の前記係数対に振り分けられる請求項２に記載のフィルタ係数計算方法。
【請求項４】
前記設定値に基づき前記第１のフィルタ関数とは異なる第２のフィルタ関数を計算し、
前記第２のフィルタ関数の中心に位置する第２の原点係数を前記第１の原点係数に置き換えた第３のフィルタ関数を生成し、
前記第３のフィルタ関数に含まれる値の総和と前記総和の理想値との誤差を算出し、
前記誤差を前記第１の原点係数を中心点とする点対称の位置に配置される係数対に第３の補正値として与える請求項１乃至３のいずれか１項に記載のフィルタ係数計算方法。
【請求項５】
前記係数対を構成する２つの第２の周辺係数には、前記第３の補正値を等分した値がそれぞれ与えられる請求項４に記載のフィルタ係数計算方法。
【請求項６】
前記第３の補正値は、前記第２の周辺係数の重みに応じて複数の前記係数対に振り分けられる請求項５に記載のフィルタ係数計算方法。
【請求項７】
前記第１のフィルタ関数及び前記誤差がそれぞれ２進数の値で示される場合、前記誤差の最下位ビットが１であるときは、前記第１の原点係数の最下位ビットを操作することで前記第１の補正値を与える請求項１乃至６のいずれか１項に記載のフィルタ係数計算方法。
【請求項８】
前記フィルタ関数は、ガウシアンフィルタである請求項１乃至７のいずれか１項に記載のフィルタ係数計算方法。
【請求項９】
前記フィルタ関数は、ラプラシアンフィルタである請求項１乃至７のいずれか１項に記載のフィルタ係数計算方法。
【請求項１０】
外部から入力される設定値に応じて（２ｎ＋１）行（２ｎ＋１）列（ｎは整数）の第１のフィルタ関数を計算する重み係数算出部と、
前記第１のフィルタ関数に含まれる値の総和と前記総和の理想値との誤差を算出する誤差算出部と、
前記誤差が奇数であれば、前記誤差に含まれる奇数誤差を前記第１のフィルタ関数の中心に位置する第１の原点係数に第１の補正値として与え前記第１の原点係数を補正する奇数誤差補正部と、
前記誤差のうち前記奇数誤差を除く偶数誤差を前記第１の原点係数と前記第１の原点係数を中心点とする点対称の位置に配置される係数対とのいずれか一方に第２の補正値として与え前記第１のフィルタ関数の誤差を補正する偶数誤差補正部と、
を有するフィルタ係数計算装置。
【請求項１１】
前記偶数誤差補正部は、前記係数対を構成する２つの第１の周辺係数に前記第２の補正値を等分した値をそれぞれ与える請求項１０に記載のフィルタ係数計算装置。
【請求項１２】
前記偶数誤差補正部は、前記第２の補正値を前記第１の周辺係数の重みに応じて複数の前記係数対に振り分ける請求項１１に記載のフィルタ係数計算装置。
【請求項１３】
前記重み係数算出部は、前記設定値に基づき前記第１のフィルタ関数とは異なる第２のフィルタ関数を計算し、
前記誤差算出部は、前記第２のフィルタ関数の中心に位置する第２の原点係数を前記第１の原点係数に置き換えた第３のフィルタ関数に含まれる値の総和と前記総和の理想値との誤差を算出し、
前記偶数誤差補正部は、前記誤差を前記第１の原点係数を中心点とする点対称の位置に配置される係数対に第３の補正値として与える請求項１０乃至１２のいずれか１項に記載のフィルタ係数計算装置。
【請求項１４】
前記偶数誤差補正部は、前記係数対を構成する２つの第２の周辺係数に前記第３の補正値を等分した値をそれぞれ与える請求項１３に記載のフィルタ係数計算装置。
【請求項１５】
前記偶数誤差補正部は、前記第３の補正値を前記第２の周辺係数の重みに応じて複数の前記係数対に振り分けられる請求項１４に記載のフィルタ係数計算装置。
【請求項１６】
前記奇数誤差補正部は、前記第１のフィルタ関数及び前記誤差がそれぞれ２進数の値で示される場合、前記誤差の最下位ビットが１であるときは、前記第１の原点係数の最下位ビットを操作することで前記第１の補正値を与える請求項１０乃至１５のいずれか１項に記載のフィルタ係数計算装置。
【請求項１７】
前記偶数誤差補正部は、係数を補正した後の前記第１のフィルタ関数をフィルタ係数格納レジスタに格納する請求項１０乃至１６のいずれか１項に記載のフィルタ係数計算装置。
【請求項１８】
前記誤差算出部は、前記フィルタ係数格納レジスタに格納された前記第１のフィルタ関数の前記第１の原点係数を読み出して、前記第２のフィルタ係数の前記第２の原点係数を前記第１の原点係数と置き換え、
前記偶数誤差補正部は、係数を補正した後の前記第２のフィルタ関数のうち前記第１の原点係数を除く周辺係数を前記フィルタ係数格納レジスタに格納する請求項１０乃至１７のいずれか１項に記載のフィルタ係数計算装置。
【請求項１９】
前記フィルタ関数は、ガウシアンフィルタである請求項１０乃至１８のいずれか１項に記載のフィルタ係数計算装置。
【請求項２０】
前記フィルタ関数は、ラプラシアンフィルタである請求項１０乃至１８のいずれか１項に記載のフィルタ係数計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフィルタ係数計算方法及びフィルタ係数計算装置に関し、特に奇数行・奇数列の行列式により表されるフィルタ関数の係数の補正を行うフィルタ係数計算方法及びフィルタ係数計算装置に関する。
【背景技術】
【０００２】
近年、テレビ等の表示機器の大型化及び高精細化が進んでいる。しかし、表示装置に表示するソース画像は表示機器よりも解像度が低いことがある。このような場合、ソース画像を拡大して表示することが行われるが、この拡大処理後の画像にはボケが生じる問題がある。そこで、このような画像の拡大処理を行う場合、ガウシアンフィルタやラプラシアンフィルタを用いて拡大後の画像にフィルタ処理を施すことで画像の先鋭化を行い、画像のボケを防止することが行われている。
【０００３】
また、ガウシアンフィルタやラプラシアンフィルタは、フィルタ関数の算出処理中に値の正規化処理を含む。この正規化では除算を用いるため、係数に丸め誤差が生じ、正規化後のフィルタ関数は理想値との誤差を有することがある。そのため、フィルタ係数の正規化を行った場合に生じる正規化誤差を補正する必要がある。
【０００４】
そこで、正規化により発生したフィルタ係数の正規化誤差の解消方法が特許文献１に開示されている。特許文献１に記載のフィルタ回路１００を図６に示す。図６に示すようにフィルタ回路１００は、重み係数算出部１０１、重み正規化手段１０２、最大重み係数算出手段１０３、正規化誤差補正手段１０４、着目画素値生成部１０５を有する。
【０００５】
重み係数算出部１０１は、周辺画素及び着目画素の情報から周辺がその重み係数を求める。重み正規化手段１０２は、重み係数算出部１０１で算出された各周辺が素の重み係数を正規化する。最大重み係数算出手段１０３は、重み係数算出部１０１で算出された周辺画素の重み係数のうち最大のものを選択する。正規化誤差補正手段１０４は、重み正規化手段で発生した正規化誤差を補正する。着目画素値生成部１０５は、正規化誤差補正手段１０４で誤差が修正された正規化重み係数と、周辺画素の画素値と、似基づき着目画素位置の補間データを算出する。
【０００６】
このフィルタ回路１００では、最大重み係数算出手段１０３により選択された最大重み係数を修正して正規化誤差を修正する。つまり、フィルタ回路１００では、係数の値を変更したとしてもその変更を最大重み係数とすることで誤差補正の影響を小さくすることができる。
【特許文献１】特開２００４−２５３９４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ガウシアンフィルタ及びラプラシアンフィルタでは、最大重み係数は、フィルタを構成する行列式の中心部に近い重み係数ほど値が大きくなることになる。そのため、フィルタ回路１００では、正規化誤差の補正に起因して変更される重み係数はどのようなフィルタにおいてもほぼ同じ位置にある重み係数となる。従って、フィルタ回路１００では、正規化誤差の補正方法に自由度がなくフィルタ特性に応じた柔軟な補正を行うことができない問題がある。
【課題を解決するための手段】
【０００８】
本発明にかかるフィルタ係数計算方法の一態様は、（２ｎ＋１）行（２ｎ＋１）列（ｎは整数）のフィルタ関数を算出するフィルタ係数計算方法であって、外部から入力される設定値に応じて第１のフィルタ関数を計算し、前記第１のフィルタ関数に含まれる値の総和と前記総和の理想値との誤差を算出し、前記誤差が奇数であれば、前記誤差に含まれる奇数誤差を前記第１のフィルタ関数の中心に位置する第１の原点係数に第１の補正値として与え、前記誤差のうち前記奇数誤差を除く偶数誤差を前記第１の原点係数と前記第１の原点係数を中心点とする点対称の位置に配置される係数対とのいずれか一方に第２の補正値として与える。
【０００９】
本発明にかかるフィルタ係数計算装置の一態様は、外部から入力される設定値に応じて（２ｎ＋１）行（２ｎ＋１）列（ｎは整数）の第１のフィルタ関数を計算する重み係数算出部と、前記第１のフィルタ関数に含まれる値の総和と前記総和の理想値との誤差を算出する誤差算出部と、前記誤差が奇数であれば、前記誤差に含まれる奇数誤差を前記第１のフィルタ関数の中心に位置する第１の原点係数に第１の補正値として与え前記第１の原点係数を補正する奇数誤差補正部と、前記誤差のうち前記奇数誤差を除く偶数誤差を前記第１の原点係数と前記第１の原点係数を中心点とする点対称の位置に配置される係数対とのいずれか一方に第２の補正値として与え前記第１のフィルタ関数の誤差を補正する偶数誤差補正部と、を有する。
【００１０】
本発明にかかるフィルタ係数計算方法及びフィルタ係数計算装置によれば、フィルタ関数と理想値との誤差が奇数であれば、その誤差に含まれる奇数誤差を原点係数に第１の補正値として与える。そして、奇数誤差を除く偶数誤差は、原点係数と周辺係数のいずれに振り分けることもできる。また、誤差が偶数であれば、その誤差を原点係数と周辺係数のいずれにも振り分けることができる。従って、本発明にかかるフィルタ係数計算方法及びフィルタ係数計算装置によれば、フィルタ関数に含まれるフィルタ係数の補正方法の自由度を向上させることができる。
【発明の効果】
【００１１】
本発明にかかるフィルタ係数計算方法及びフィルタ係数計算装置は、フィルタ関数の補正方法に関して自由度の高い誤差補正方法を提供する。
【発明を実施するための最良の形態】
【００１２】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。まず、本実施の形態にかかるフィルタ係数計算装置１０により生成されるフィルタ関数について説明する。本実施の形態にかかるフィルタ係数計算装置１０では、ガウシアンフィルタ又はラプラシアンフィルタのいずれかに対応するフィルタ関数を生成する。そこで、以下の説明では、ガウシアンフィルタとラプラシアンフィルタのフィルタ関数の算出方法についてそれぞれ説明する。
【００１３】
また、本実施の形態にかかるフィルタ係数計算装置１０では、１つの設定値σに基づき同一の原点係数と異なる周辺係数を有する複数のフィルタ関数を生成する。なお、ここで設定値σは後述のσ(標準偏差)である。一般に、画像処理におけるフィルタ処理はガウス分布の正規分布に従う。設定値σは、この正規分布特性から、測定精度や、カメラ・レンズの特性に応じて、最適な値が決定されるものである。本実施例の説明では、このσは、適切な手段を用いて求められており、フィルタ係数計算装置１０に与えられるものとする。また、本実施の形態において扱うフィルタ関数は、（２ｎ＋１）行（２ｎ＋１）列（ｎは整数）の行列式で表される。つまり、本実施の形態において扱うフィルタ関数は奇数行奇数列の行列式であって、（２ｎ＋１）×（２ｎ＋１）個の係数からなる。本明細書では、この係数をフィルタ係数（あるいは単に係数）と称する。また、この行列式に含まれるフィルタ係数のうち中心に位置する係数を以降では原点係数と称し、その他の係数を周辺係数と称す。これらのフィルタ関数は、例えば入力画像データの輝度や色の変化方向に対応するものである。
【００１４】
そこで、フィルタ関数の一例を図１、図２に示す。図１に示すフィルタ関数は、図面下側から図面上側に向かって輝度が変化する入力画像データに対応する第１のフィルタ関数を示す。図２に示すフィルタ関数は、図面左下から図面右上に向かって輝度が変化する入力画像データに対応する第２のフィルタ関数を示す。なお、フィルタ関数は、画像データの輝度の変化の方向ごとに、あるいは色の変化の方向ごとに用意されるのが一般である。本実施例では、入力画像データの輝度についての変化方向に対応するフィルタ関数を例としてあげている。また、図１、２に示すように、第１のフィルタ関数と第２のフィルタ関数の原点係数は、ともにｋａである。一方、第１のフィルタ関数の周辺係数（図中のｋｂ〜ｋｅ）と第２のフィルタ関数の周辺係数（図中のｋｆ〜ｋｉ）は、互いに異なる値である。また、図１、２に示すように、第１のフィルタ関数及び第２のフィルタ関数は、原点係数を中心点として点対称に位置する周辺係数が同じ値となる。複数のフィルタの原点係数が同一値になること及び点対称に位置する周辺係数が同じ値になる理由は後述する。
【００１５】
次に、ガウシアンフィルタの計算方法について説明する。ガウシアンフィルタは、平均化フィルタの１つであって、フィルタの原点に近いほど大きい重みをつけた加重平均化フィルタである。このときガウシアンフィルタでは、重み係数をガウス分布に基づき設定する。また、ガウシアンフィルタは係数の合計値が１となる。つまり、ｘ行ｙ列のフィルタ関数に含まれる係数をｋ（ｘ、ｙ）で表した場合（１）式が成り立つ。
2010130460.tif 000003
【００１６】
また、ガウシアンフィルタの係数は、それぞれ（２）式で表される。なお、（２）式は、２次元のガウス分布である場合であって、σ２は分布を表す。なお、ここでσは標準偏差である。
2010130460.tif 000004
【００１７】
そして、ガウシアンフィルタでは（２）式により求まった各係数の合計を算出し、その合計値でそれぞれの係数を除算することで係数の正規化を行う。また、原点係数はｘ＝０、ｙ＝０であることから、同一の設定値σに基づき複数のフィルタを生成した場合、その値は同一になることが（２）式からわかる。また、点対称の位置にある係数は、（ｘ２＋ｙ２）により求まる値が同一となるため、点対称の位置にある係数は同一値となることが（２）式からわかる。
【００１８】
続いて、ラプラシアンフィルタの計算方法について説明する。ラプラシアンフィルタも、加重平均化フィルタである。このときラプラシアンフィルタでは、重み係数を２次元ガウス分布に基づき設定する。また、ラプラシアンフィルタは係数の合計値が０となる。つまり、ｘ行ｙ列のフィルタ関数に含まれる係数をｋ（ｘ、ｙ）で表した場合（３）式が成り立つ。
2010130460.tif 000005
【００１９】
また、ラプラシアンフィルタの係数は、それぞれ２次元ガウス分布に基づいたラプラシアンの計算式で表される。このラプラシアンの計算式を（４）式に示す。なお、（４）式のσ２は分布を表す。なお、ここでσは標準偏差である。
2010130460.tif 000006
【００２０】
そして、ラプラシアンフィルタでは（４）式により求まった各係数の平均値を算出し、それぞれの係数から算出された平均値を引くことで係数の正規化を行う。また、原点係数はｘ＝０、ｙ＝０であることから、同一の設定値σに基づき複数のフィルタを生成した場合、その値は同一になることが（４）式からわかる。また、点対称の位置にある係数は、（ｘ２＋ｙ２）により求まる値が同一となるため、点対称の位置にある係数は同一値となることが（４）式からわかる。
【００２１】
本実施の形態にかかるフィルタ係数計算装置１０では、上記フィルタ関数の算出と、上記フィルタ関数の算出において発生した正規化誤差の補正と、を行う。以下、本実施の形態におけるフィルタ係数計算装置１０の詳細と、フィルタ係数計算装置１０における正規化誤差の補正方法について説明する。
【００２２】
図４に本実施の形態にかかるフィルタ係数計算装置１０のブロック図を示す。図３では、フィルタ係数計算装置１０に加えてフィルタ係数格納レジスタ２０が示されている。本実施の形態では、フィルタ係数計算装置１０が生成したフィルタ関数に含まれるフィルタ係数をフィルタ係数計算装置１０とは別に設けられるフィルタ係数格納レジスタ２０に保存する。図３では、２つのフィルタ関数が格納されるフィルタ係数格納レジスタ２０を例として示している。このフィルタ係数格納レジスタ２０は、フィルタ係数計算装置１０とは異なる半導体基板上に形成されているものでも良く、同一の半導体基板上に形成されるものであっても良い。図３に示すように、フィルタ係数計算装置１０は、重み係数算出部１１、正規化誤差判定部１２、奇数誤差補正部１３、偶数誤差補正部１４を有する。
【００２３】
重み係数算出部１１は、外部からフィルタ係数算出要求信号が入力されると、設定値σに応じた第１のフィルタ関数を生成する。この第１のフィルタ関数は、奇数行奇数列の行列式であって奇数個のフィルタ係数を含む。また、第１のフィルタ関数は、前述したガウシアンフィルタ又はラプラシアンフィルタである。設定値σは、（２）式又は（４）式において用いられるσであって、外部から入力される。本実施の形態では、輝度の変化方向に対応した複数のフィルタ関数を生成する場合において同一の設定値σを用いる。
【００２４】
正規化誤差判定部１２は、重み係数算出部１１において生成された第１のフィルタ関数の正規化誤差を算出し、正規化誤差が奇数であるか偶数であるかを判定する。この正規化誤差は、第１のフィルタ関数がガウシアンフィルタである場合は（１）式で示される条件と第１のフィルタ関数のフィルタ係数の総和との誤差である。一方、第１のフィルタ関数がラプラシアンフィルタである場合、正規化誤差は（３）式で示される条件と第１のフィルタ関数のフィルタ係数の総和との誤差である。また、正規化誤差判定部１２は、輝度の変化方向に対応した複数のフィルタ関数の正規化誤差を計算する場合、２つ目以降に生成されるフィルタ関数（以降、２つ目以降のフィルタ関数を第２のフィルタ関数と称す）の原点係数を１つ目のフィルタ関数（第１のフィルタ関数）の原点係数と置き換えて第３のフィルタ関数を生成する。そして、正規化誤差判定部１２は、第３のフィルタ関数の正規化誤差について奇数であるか偶数であるかを判定する。
【００２５】
本実施の形態では、フィルタ係数を２進数の値として扱う。このような場合、正規化誤差判定部１２は、正規化誤差がとして算出された値の下位１ビットを参照することで、正規化誤差が奇数であるか偶数であるかを判定することができる。例えば、正規化誤差の下位１ビットが１であれば正規化誤差は奇数と判断され、下位１ビットが０であれば正規化誤差は偶数と判断される。
【００２６】
なお、本実施の形態におけるフィルタ関数では、原点係数を中心に点対称に位置する２つの周辺係数が同一値であるため、周辺係数において発生する正規化誤差は必ず偶数になる。また、フィルタ関数の正規化誤差が奇数である場合その奇数成分は原点係数に起因し、複数のフィルタ関数の原点係数が同じである。そのため、本実施の形態では、１つ目のフィルタ関数（第１のフィルタ関数）の正規化誤差が奇数である場合、２つ目以降のフィルタ関数（第２のフィルタ関数）の正規化誤差も奇数となる。また、１つ目のフィルタ関数（第１のフィルタ関数）の正規化誤差が偶数である場合、２つ目以降のフィルタ関数（第２のフィルタ関数）の正規化誤差も偶数となる。なお、正規化誤差判定部１２により第２のフィルタ関数の原点係数が置き換えられると第２のフィルタ係数の正規化誤差は、偶数となる。これは、正規化誤差が奇数である場合、後述する奇数誤差補正部１３で、原点係数が偶数に補正されるためである。
【００２７】
奇数誤差補正部１３は、正規化誤差判定部１２において正規化誤差が奇数と判断された場合に、正規化誤差に含まれる奇数誤差を補正する。このとき、奇数誤差補正部１３は、奇数誤差を第１の補正値として原点係数に与える。奇数誤差の大きさは、正規化誤差と同一値でも良く、また、正規化誤差よりも小さな奇数の値であっても良い。本実施の形態では、フィルタ係数が２進数で表される。そのため、原点係数を偶数の値とするためには、原点係数の下位１ビットの値が０となるような第１の補正値を与えればよい。つまり、本実施の形態では、第１の補正値は、原点係数の下位１ビットの値が０となるような値であれば良く、その大きさについては特に制限はない。なお、正規化誤差が偶数であった場合、奇数誤差補正部１３は、特に何らの補正を行うことなく第１のフィルタ関数を後段に接続される偶数誤差補正部１４に出力する。本実施の形態では、２つ目以降の第２のフィルタ係数は、原点係数の置き換えにより正規化誤差が偶数となるため、２回目以降のフィルタ関数生成処理では奇数誤差補正部１３は実質的な動作は行わない。
【００２８】
偶数誤差補正部１４は、奇数誤差補正部１３から出力された第１のフィルタ係数に対して偶数誤差の補正を行う。この偶数誤差は、第２の補正値であって、正規化誤差が奇数である場合は正規化誤差から奇数誤差を除く値であり、正規化誤差が偶数である場合はこの正規化誤差と同一値である。偶数誤差補正部１４は、第２の補正値を原点関数を中心とする点対称の関係にある２つの周辺係数と、原点係数と、のいずれか一方に与える。より具体的には、２つの周辺係数に第２の補正値を与える場合、偶数誤差補正部１４は、第２の補正値を等分し、等分された第２の補正値をそれぞれ２つの周辺係数に与える。
【００２９】
そして偶数誤差補正部１４において補正された第１のフィルタ関数に含まれるフィルタ係数をフィルタ係数格納レジスタ２０に格納する。このとき、本実施の形態では、第１のフィルタ関数（１つ目のフィルタ関数）の原点係数ｋａ（０，０）を予め定められたアドレスに格納する。また、第１のフィルタ関数の周辺係数の値は、原点係数を中心とした点対称の関係にあるものが同一値にあるため、この２つの周辺係数の値を１つのレジスタに格納する。図３に示す例では、１つのレジスタに係数ｋｂ（０，１）と係数ｋｂ（０，１）と点対称の関係にある係数ｋｂ（０，−１）との２つの周辺係数に対応する値が格納される。また、第２のフィルタ関数のフィルタ係数は、周辺係数のみをフィルタ係数格納レジスタ２０に格納し、第２のフィルタ関数の原点係数（ｋａ（０，０）)は、第１のフィルタ関数の原点係数（ｋａ（０，０）)と同一であるため、改めてフィルタ係数格納レジスタ２０に格納しない。図３に示す例では、第１のフィルタ関数は、係数ｋａと係数ｋｂ〜ｋｅにより構成され、第２のフィルタ関数は、係数ｋａと係数ｋｆ〜ｋｉにより構成される。なお、フィルタ係数格納レジスタ２０に格納される第１のフィルタ関数の原点係数は、正規化誤差判定部１２により参照される。
【００３０】
続いて、本実施の形態におけるフィルタ係数計算装置１０のフィルタ係数の計算及び係数補正のフローについて説明する。図４にフィルタ係数計算装置１０のフィルタ係数の計算及び係数補正のフローチャートを示す。
【００３１】
図４に示すように、フィルタ係数計算装置１０は、フィルタ係数算出要求信号が入力されるとフィルタ関数の生成を開始する。フィルタ関数を生成するにあたり、まず、変数ｉを値ｍで初期化する（ステップＳ１）。値ｍは、生成するフィルタ関数の枚数を示す値であり１以上の整数である。値ｍは、フィルタ係数算出要求信号等の信号により与えられるものでも良く、予め設定されたものでも良い。
【００３２】
続いて、重み係数算出部１１が第１のフィルタ関数に含まれるフィルタ係数を算出する（ステップＳ２）。そして、正規化誤差判定部１２において変数ｉが値ｍと同じであるか否かを判断する（ステップＳ３）。このとき、変数ｉが値ｍと同一値であれば、重み係数算出部１１が出力したフィルタ関数は１つ目のフィルタ関数（第１のフィルタ関数）であると判断される。そのため、ステップＳ４を行わずにステップＳ５に進む。
【００３３】
ステップＳ５では、正規化誤差判定部１２が第１のフィルタ関数の正規化誤差を算出する。そして、正規化誤差判定部１２は、算出された正規化誤差が奇数であるか偶数であるかを判断する（ステップＳ６）。このステップＳ６の判断において、正規化誤差が奇数であった場合（ステップＳ６のＹｅｓの枝）、奇数誤差補正部１３が原点係数に対して奇数の値を有する第１の補正値を与える（ステップＳ７）。そして、処理をステップＳ５に戻す。そして、再度正規化誤差判断部１２において、正規化誤差を算出する。その後、補正後のフィルタ関数の正規化誤差が奇数か否かを判断する。このとき、ステップＳ６における補正により正規化誤差は偶数となっているため、その後はステップＳ８（ステップＳ６のＮｏの枝）に進む。なお、１回目のステップＳ６の処理において正規化誤差が偶数と判断された場合は、ステップＳ７を実行することなくステップＳ８に進む。
【００３４】
本実施の形態におけるステップＳ８では、各係数の重みに応じて第２の補正値を周辺係数のそれぞれに振り分ける。なお、ステップＳ８の補正処理においては、第２の補正値を原点係数にのみ与えても良く、また点対称関係にある１組の周辺係数のみに与えても良い。
【００３５】
そして、ステップＳ８において補正されたフィルタ関数のフィルタ係数をフィルタ係数格納レジスタに保存する（ステップＳ９）。続いて、重み係数算出部において変数ｉが０であるか否を判定する（ステップＳ１０）。ステップＳ１０において変数ｉが０でなければ（ステップＳ１０のＮｏの枝）、変数ｉの値を１つ減じる（ステップＳ１１）。そして、再度ステップＳ２の処理戻り２つめのフィルタ関数（第２のフィルタ関数）を生成する。
【００３６】
２つ目以降のフィルタ関数を生成する場合、ステップＳ３の判断においてＮｏの枝に進みステップＳ３を実行する。ステップＳ３では、第２のフィルタ関数の原点係数を第１のフィルタ関数の原点係数に置き換える。この置き換え処理により、第２のフィルタ関数の原点係数は第１の原点係数と同じ値となり、かつ、第２のフィルタ関数の正規化誤差は偶数となる。そのため、２つ目以降のフィルタ関数の生成処理では、ステップＳ６においてＮｏの枝に進む処理のみとなる。そして、フィルタ係数計算装置１０は、変数ｉが０となるまでステップＳ２〜Ｓ１１の処理を繰り返し、ステップＳ１０において変数ｉが０となったと判断されると処理を終了する。
【００３７】
上記説明より、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０は、正規化誤差が奇数であれば、正規化誤差に含まれる奇数誤差を原点係数で補正し、残りの偶数誤差については原点係数と周辺係数とのいずれでも補正することができる。つまり、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０は、正規化誤差の補正方法をフィルタ関数作成者の意志により自由に選択することができる。上述の実施例(図３)では、２つのフィルタ関数を用いる場合を示したが、本発明は、図４に示すフローチャートのようにフィルタ関数が３つ以上の場合であっても、あるいは１つの場合であっても適用が可能である。
【００３８】
また、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０によれば、偶数誤差を複数の周辺係数に割り振ることもできる。例えば、周辺係数の重みに応じて正規化誤差を周辺係数に割り振ることで、周辺係数間の比を崩さずに正規化誤差を補正できる。このような補正を行うことでフィルタ関数の精度を向上させることができる。
【００３９】
また、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０は、フィルタ関数に含まれるフィルタ係数の桁数を減じるときに特に有効である。フィルタ係数の桁数を減じた場合、フィルタ係数に丸め誤差が発生し、この丸め誤差により、（１）式や（３）式の条件とフィルタ係数との間に誤差が生じる。しかし、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０は、この丸め誤差を正規化誤差として算出し、奇数誤差補正部１３と偶数誤差補正部１４とにより補正することができる。
【００４０】
また、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０は、複数のフィルタ関数を用いる場合に、フィルタ係数を格納するフィルタ係数格納レジスタの容量を抑制することができる。本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０では、複数のフィルタ係数間で原点係数が共通である。つまり、フィルタ係数格納レジスタは、原点係数を格納する為のレジスタを１つ有していればよい。従って、本実施の形態にかかるフィルタ係数計算方法及びフィルタ係数計算装置１０は、生成するフィルタ関数の関数が増加しても、原点係数を格納するためのレジスタの個数は増加しない。
【００４１】
実施の形態２
実施の形態１では、フィルタ係数計算装置１０及びフィルタ係数計算方法について説明したが、実施の形態２では、フィルタ係数計算装置１０により計算されたフィルタ関数を利用する画像処理装置について説明する。図５に実施の形態２にかかる画像処理装置を示す。この画像処理装置は、フィルタ係数計算装置１０、フィルタ係数格納レジスタ２０、画像処理回路３０を有する。なお、フィルタ係数計算装置１０及びフィルタ係数格納レジスタ２０は実施の形態１において説明したものと同一である以下の説明では説明を省略する。また、フィルタ係数計算装置１０、フィルタ係数格納レジスタ２０及び画像処理回路３０は、同一の半導体基板上に形成されるものでも良く、個別の半導体基板上に形成されたものであっても良い。また、図５に示す実施の形態２にかかる画像処理装置では、２つのフィルタ関数を用いる場合を示している。なお、本発明は、このような画像処理装置のスペックに応じて２つ以上のフィルタ関数を用いる場合にも適用が可能である。
【００４２】
画像処理回路３０は、フィルタ処理部３１、３２を有する。フィルタ処理部３１、３２は、フィルタ係数格納レジスタ２０から読み出したフィルタ係数により構成されるフィルタ関数を用いて入力画像データにフィルタ処理を施す。そして、フィルタ処理部３１、３２は、処理後のデータを出力画像データとして出力する。
【００４３】
フィルタ処理部３１、３２は、異なるフィルタ係数を読み出す。本実施の形態では、フィルタ処理部３１はフィルタ係数ｋａ〜ｋｅを読み出し、フィルタ処理部３２はフィルタ係数ｋａ及びフィルタ係数ｋｆ〜ｋｉを読み出す。つまり、フィルタ処理部３１、３２は、入力画像データの輝度変化方向に対応して設けられるものである。なお、フィルタ処理部３１、３２は、異なるフィルタ関数に基づき画像処理を施せれば良く、１つの処理部として設けることも可能である。
【００４４】
このような、画像処理装置に対して、フィルタ係数計算装置１０により生成されたフィルタ関数を与えると、フィルタ処理の精度を向上させながら画像処理回路３０の回路規模を小さくすることができる。
【００４５】
一般的に、画像処理回路３０の回路規模は、どのような演算精度で演算を行うかに大きな影響を受ける。例えば、フィルタ係数を精度よく表現する為にフィルタ係数のビット数（桁数）を大きくすると回路規模が増大する問題が生じる。また、回路規模を抑制するためにフィルタ係数を表現するビット数を小さくするとフィルタ係数に丸め誤差が生じ、フィルタ関数の誤差が大きくなり、演算精度が低下する問題が生じる。しかし、フィルタ係数計算装置１０を用いるとこれらの問題を解決することができる。
【００４６】
フィルタ係数計算装置１０は、フィルタ係数のビット数を抑制した場合に生じる丸め誤差を含めて補正したフィルタ関数を生成することができる。そのため、フィルタ係数計算装置１０により生成されるフィルタ関数を画像処理回路３０に入力することで、画像処理回路３０の演算ビット数を抑制し、回路規模の増大を抑制することができる。また、フィルタ係数計算装置１０により生成されるフィルタ関数は、丸め誤差を含めた誤差を補正できるため、このフィルタ関数を用いることで画像処理回路３０の画像処理の精度を向上させることができる。
【００４７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、フィルタ関数は、ガウシアンフィルタ及びラプラシアンフィルタとは異なるフィルタであっても良い。
【図面の簡単な説明】
【００４８】
【図１】実施の形態１にかかる第１のフィルタ関数の概略図である。
【図２】実施の形態１にかかる第２のフィルタ関数の概略図である。
【図３】実施の形態１にかかるフィルタ係数計算装置のブロック図である。
【図４】実施の形態１にかかるフィルタ係数計算装置の処理フローを示すフローチャートである。
【図５】実施の形態２にかかる画像処理装置のブロック図である。
【図６】特許文献１に記載のフィルタ回路のブロック図である。
【符号の説明】
【００４９】
１０    フィルタ係数計算装置
１１    重み係数算出部
１２    正規化誤差判定部
１３    奇数誤差補正部
１４    偶数誤差補正部
２０    フィルタ係数格納レジスタ
３０    画像処理回路
３１、３２    フィルタ処理部
ｋａ〜ｋｉ    フィルタ係数
【図１】
2010130460.tif 000007
【図２】
2010130460.tif 000008
【図３】
2010130460.tif 000009
【図４】
2010130460.tif 000010
【図５】
2010130460.tif 000011
【図６】
2010130460.tif 000012