(57)【要約】【課題】経済的で高速のデータのフィルタリング方法を得る。【解決手段】本発明によるデータのフィルタリング方法は、一連の平均計算を行うことによって、複数ｍ個のフィルタ係数をｍ個の入力データ項目に適用して出力データ項目を作るステップを含む。各フィルタ係数は２のマイナス累乗またはゼロという値を有し、それらの和は１である。一連の平均計算は、その各々に最小のフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、第１の平均データと他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含む。計算されたデータのデータ幅は平均された入力データのデータ幅を超えないようになっている。【選択図】図３Ａ
2004297811.tif 000002
【特許請求の範囲】
【請求項１】
データのフィルタリング方法であって、
一連の平均計算を行うことによって、複数ｍ個のフィルタ係数を複数ｍ個の入力データ項目に適用してフィルタリングされた出力データ項目を得るステップを含み、各フィルタ係数は２のマイナス累乗またはゼロという値を有し、それらの和は１であって、該一連の平均計算は、
その各々に最も小さいフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、
該第１の平均データと、他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含み、
一連の平均計算によって該複数ｍ個のフィルタ係数が該複数ｍ個の入力データ項目に適用され、計算されたデータのデータ幅が平均される該入力データのデータ幅を超えないようになっている、データのフィルタリング方法。
【請求項２】
請求項１記載の方法において、前記一連の平均計算は、最も小さいフィルタ係数が適用される２個の入力データ項目を平均して第１の平均データを作るステップと、該第１の平均データと他の第１の平均データまたは最小のフィルタ係数の２倍のフィルタ係数が適用される入力データ項目とを平均するステップとを含む、データのフィルタリング方法。
【請求項３】
請求項１記載の方法において、前記一連の平均計算は更に続いて平均計算を行うステップを含み、その計算ステップにおいて、入力データ組間で平均し、該入力データ組は平均化された入力データまたは個々の入力データ項目を含み、入力データの各組に適用されるフィルタ係数の和が等しくなる入力データ組間の平均のみがとられる、データのフィルタリング方法。
【請求項４】
請求項１記載の方法において、ｍ  ｘ  ｎ個のフィルタ係数の配列が複数ｍ個の入力データ項目に適用されて、複数ｎ個の出力データ項目をつくるステップを繰り返す、データのフィルタリング方法。
【請求項５】
請求項４記載の方法において、前記一連の平均計算を実行するステップは、入力データのうち２個が共通のフィルタ係数を適用される頻度に依存して平均する入力データを選択するステップを含み、このステップにおいて、計算された入力データの平均を再び使うことができるように、複数回共通のフィルタ係数を適用される２個のデータを平均するように選択する、データのフィルタリング方法。
【請求項６】
請求項１記載の方法において、前記複数個のフィルタ係数を前記入力データに適用するのに先立って、前記係数がすべて２のマイナス累乗であって、それらの和が１になるように前記係数を調整するステップを更に含む、データのフィルタリング方法。
【請求項７】
請求項６記載の方法において、前記各係数の値が２のマイナス累乗であるように前記フィルタ係数を調整するステップは、この性質を持たないフィルタ係数を要素の和に分割し、該各要素は２のマイナス累乗の値を持つようにする、データのフィルタリング方法。
【請求項８】
請求項１記載の方法において、前記フィルタ係数はローパス・フィルタに関連している、データのフィルタリング方法。
【請求項９】
請求項８記載の方法において、前記フィルタ係数はデブロッキング・フィルタに関連している、データのフィルタリング方法。
【請求項１０】
請求項１記載の方法において、前記入力データはピクセルの配列に関連している、データのフィルタリング方法。
【請求項１１】
請求項１０記載の方法において、前記入力データは１０ピクセルの配列を含み、前記フィルタ係数は出力データが８ピクセルの配列を含むようになっている、データのフィルタリング方法。
【請求項１２】
複数ｍ個の入力データ項目に複数ｍ個のフィルタ係数を適用するコンピュータ・プログラム製品であって、
プロセッサが一連の平均計算を行うのを制御することによって、フィルタ係数を複数ｍ個の入力データ項目と組み合わせてフィルタリングされた出力データ項目を作るように該プロセッサを制御することができるフィルタリング・ロジックを含み、各フィルタ係数は２のマイナス累乗という値を有し、フィルタ係数の和は１であって、該一連の平均計算は、
最も小さいフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、
該第１の平均データと他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含み、
一連の平均計算によって該複数ｍ個のフィルタ係数が該複数ｍ個の入力データ項目に適用され、計算されたデータのデータ幅が該入力データのデータ幅を超えないようになっている、コンピュータ・プログラム製品。
【請求項１３】
請求項１２記載のコンピュータ・プログラム製品において、前記一連の平均計算は、最も小さいフィルタ係数が適用される２個の入力データ項目を平均して第１の平均データを作るステップと、該第１の平均データと他の第１の平均データまたは該最小のフィルタ係数の２倍のフィルタ係数が適用される入力データ項目とを平均するステップとを含む、コンピュータ・プログラム製品
【請求項１４】
請求項１２記載のコンピュータ・プログラム製品において、前記一連の平均計算は更に続いて平均計算を行うステップを含み、その計算ステップにおいて、入力データ組間で平均し、該入力データ組は平均化された入力データまたは個々の入力データ項目を含み、入力データの各組に適用されるフィルタ係数の和が等しくなる入力データ組間の平均のみがとられる、コンピュータ・プログラム製品。
【請求項１５】
請求項１２記載のコンピュータ・プログラム製品において、前記フィルタリング・ロジックは前記プロセッサを制御して前記一連の平均計算を繰り返し、ｍ  ｘ  ｎ個のフィルタ係数の配列を複数ｍ個の入力データ項目に適用して、複数ｎ個の出力データ項目をつくるようになっている、コンピュータ・プログラム製品。
【請求項１６】
請求項１５記載のコンピュータ・プログラム製品において、前記フィルタリング・ロジックは更に該プロセッサを制御して、入力データ項目の対が共通のフィルタ係数を適用される頻度に依存して平均される入力データ対を選択するステップを含み、このステップにおいて、計算された入力データの平均を再び使うことができるように、複数回共通のフィルタ係数を適用される２個のデータを平均するように選択する、コンピュータ・プログラム製品。
【請求項１７】
請求項１２記載のコンピュータ・プログラム製品において、前記フィルタリング・ロジックの前段に係数調整ロジックを更に含み、該係数調整ロジックはプロセッサを制御して、前記係数が各々２のマイナス累乗であって、それらの和が１になるように前記フィルタ係数を調整する、コンピュータ・プログラム製品。
【請求項１８】
請求項１７記載のコンピュータ・プログラム製品において、前記係数調整ロジックはプロセッサを制御して、２のマイナス累乗の値を持たないフィルタ係数を要素の和に分割し、各要素が２のマイナス累乗の値を持つようにする、コンピュータ・プログラム製品。
【請求項１９】
請求項１２記載のコンピュータ・プログラム製品において、前記フィルタリング・ロジックはローパス・フィルタを含む、コンピュータ・プログラム製品。
【請求項２０】
請求項１９記載のコンピュータ・プログラム製品において、前記ローパス・フィルタはデブロッキング・フィルタを含む、コンピュータ・プログラム製品。
【請求項２１】
請求項１２記載のコンピュータ・プログラム製品において、前記入力データはピクセルの配列に関連している、コンピュータ・プログラム製品。
【請求項２２】
請求項２１記載の方法において、前記入力データは１０ピクセルの配列を含み、前記フィルタ係数はフィルタリングされたデータが８ピクセルの配列を含むようになっている、コンピュータ・プログラム製品。
【請求項２３】
請求項１２記載のコンピュータ・プログラム製品において、前記入力データ項目は８ビットから成る、コンピュータ・プログラム製品。
【請求項２４】
請求項１２記載のコンピュータ・プログラム製品において、前記フィルタリング・ロジックは複数個のＳＩＭＤ命令を含む、コンピュータ・プログラム製品。
【請求項２５】
請求項２４記載のコンピュータ・プログラム製品において、請求項２３に従属するときには、前記フィルタリング・ロジックは４個の入力データ項目を並列に処理する、コンピュータ・プログラム製品。
【請求項２６】
請求項２４記載のコンピュータ・プログラム製品において、前記フィルタリング・ロジックは、前記フィルタリングされた出力データを記憶するかそれとも捨てるかを指示するのに、けた上げフラグをセットする、コンピュータ・プログラム製品。
【請求項２７】
入力データをフィルタリングするプロセッサを含むデータ処理装置であって、
該プロセッサが一連の平均計算を行うのを制御することによって、複数ｍ個のフィルタ係数を複数ｍ個の入力データ項目に適用してフィルタリングされた出力データ項目をつくるように該プロセッサを制御するフィルタリング・ロジックを含み、各フィルタ係数は２のマイナス累乗という値を有し、フィルタ係数の和は１であって、該一連の平均計算は、
最も小さいフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、
該第１の平均データと、他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含み、
一連の平均計算によって該複数ｍ個のフィルタ係数が該複数ｍ個の入力データ項目に適用され、計算されたデータのデータ幅が該入力データのデータ幅を超えないようになっている、データ処理装置。
【請求項２８】
請求項２７記載のデータ処理装置において、前記一連の平均計算は、最も小さいフィルタ係数が適用される２個の入力データ項目を平均して第１の平均データを作るステップと、該第１の平均データと他の第１の平均データまたは前記最小のフィルタ係数の２倍のフィルタ係数が適用される入力データ項目とを平均するステップとを含む、データ処理装置。
【請求項２９】
請求項２７記載のデータ処理装置において、前記一連の平均計算は更に続いて平均計算を行うステップを含み、その計算ステップにおいて、入力データ組間で平均し、該入力データ組は平均化された入力データまたは個々の入力データ項目を含み、入力データの各組に適用されるフィルタ係数の和が等しくなる入力データ組間の平均のみがとられる、データ処理装置。
【請求項３０】
請求項２７記載のデータ処理装置において、前記フィルタリング・ロジックは前記プロセッサを制御して前記一連の平均計算を繰り返し、ｍ  ｘ  ｎ個のフィルタ係数の配列を複数ｍ個の入力データ項目に適用して、複数ｎ個の出力データ項目をつくる、データ処理装置。
【請求項３１】
請求項３０記載のデータ処理装置において、前記フィルタリング・ロジックは更に該プロセッサを制御して、入力データ項目のうちの２個が共通のフィルタ係数を適用される頻度に依存して平均される入力データを選択するステップを含み、このステップにおいて、計算された入力データの平均を再び使うことができるように、複数回共通のフィルタ係数を適用される２個のデータを平均するように選択する、データ処理装置。
【請求項３２】
請求項２７記載のデータ処理装置において、前記フィルタリング・ロジックの前段に係数調整ロジックを更に含み、該係数調整ロジックはプロセッサを制御して、前記フィルタ係数が各々２のマイナス累乗であって、それらの和が１になるように前記フィルタ係数を調整する、データ処理装置。
【請求項３３】
請求項３２記載のデータ処理装置において、前記係数調整ロジックはプロセッサを制御して、２のマイナス累乗の値を持たないフィルタ係数を要素の和に分割し、各要素が２のマイナス累乗の値を持つようにする、データ処理装置。
【請求項３４】
請求項２７記載のデータ処理装置において、前記フィルタリング・ロジックはローパス・フィルタを含む、データ処理装置。
【請求項３５】
請求項２７記載のデータ処理装置において、前記入力データはピクセルの配列に関連している、データ処理装置。
【請求項３６】
請求項３５記載のデータ処理装置において、前記入力データは１０ピクセルの配列を含み、前記フィルタ係数はフィルタリングされたデータが８ピクセルの配列を含むようになっている、データ処理装置。
【請求項３７】
請求項２７記載のデータ処理装置において、前記各入力データ項目は８ビットから成る、データ処理装置。
【請求項３８】
請求項２７記載のデータ処理装置において、前記フィルタリング・ロジックは複数個のＳＩＭＤ命令を含む、データ処理装置。
【請求項３９】
請求項３８記載のデータ処理装置において、請求項３７に従属するときには、前記プロセッサは４個の入力データ項目を並列に処理することができる３２ビットのレジスタを含む、データ処理装置。
【請求項４０】
請求項３８記載のデータ処理装置において、前記プロセッサは更に少なくとも１個のけた上げフラグを含み、前記フィルタリング・ロジックは前記フィルタリングされた出力データを記憶するかそれとも捨てるかを指示するのにけた上げフラグをセットする、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータのフィルタリングの分野に関するものであり、特に、ある好ましい実施例ではビデオデコーダにおけるデブロッキング・フィルタの分野に関するものである。
【背景技術】
【０００２】
ビデオデコーダの分野、たとえばＭＰＥＧデコーダの分野では、画像を改良するのにデブロッキング・フィルタを使うことが知られている。このことはたとえば移動電話機にビデオデータを送るときのように、低いビットレートがある場合に特に重要である。
【０００３】
デブロッキング・フィルタはいくつかの判断ロジックから成り、どこにブロックの境界があるかを判断する、すなわち水平ラインとまたは垂直ラインを検出して、そのラインが画像の一部であるかそれとも単に除去すべきブロックの境界であるかを判断するのに使われる。この判断ロジックに続いて、ローパス・フィルタをブロックの境界に適用することができる。
【０００４】
ＭＰＥＧ−４標準に使われているデブロッキング・フィルタの例を説明する。このフィルタのマトリクス表記を図１に示す。
このフィルタのインパルス応答は以下の通りである。
（１，１，２，２，４，２，２，１，１）／１６
これが適用されると、フィルタは１０ピクセル（Ｘ０からＸ９）の入力配列に演算を施して、中の８ピクセル（ｙ１からｙ８）を更新する。フィルタが入力データ以外のピクセルにアクセスするときはいつでも、適当な境界ピクセルが代用される。このフィルタのマトリクス表記を図１に示す。図１はＭＰＥＧデコーダにおけるデブロッキング・フィルタとして働くローパス・フィルタのマトリクス表記である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このフィルタをデコードされたデータに適用する際のひとつの欠点は、高価であるということと、ＭＰＥＧ−４デコーダ自体の２倍のサイクル数が必要になる場合があるということである。
【課題を解決するための手段】
【０００６】
本発明が提供する第１の態様はデータのフィルタリング方法であって、一連の平均計算を行うことによって、複数ｍ個のフィルタ係数を複数ｍ個の入力データ項目に適用して出力データ項目を作るステップを含む。各フィルタ係数は２のマイナス累乗またはゼロという値を有し、それらの和は１である。該一連の平均計算は、その各々に最も小さいフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、該第１の平均データと、他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含む。一連の平均計算によって該複数ｍ個のフィルタ係数が該複数ｍ個の入力データ項目に適用され、計算されたデータのデータ幅が平均された該入力データのデータ幅を超えないようになっている。
【０００７】
本発明はフィルタ係数が一般的に２のマイナス累乗であって、それらの和が１になるというフィルタの性質を認識して、一連の平均計算を使用することにより、これらの性質を利用して入力データとフィルタ係数とを結合するものである。２個の数の平均は２個の数の和を２で割ったものであるから、適当な一連の平均演算によって、２のマイナス累乗というフィルタ係数を入力データに適用することができる。一連の平均計算を用いてデータを操作する利点は、２個の数の平均のデータ幅が大きい方の数のデータ幅より決して大きくならないということである。したがって、もし入力データが一連の８ビットの数であれば、フィルタ係数を入力データに適用したとき、８ビット幅よりも大きいレジスタを使う必要がなくて、フィルタリングされた出力データ項目が得られるであろう。このことによりフィルタ計算を行うのに必要なレジスタの数をかなり減らすことができるので、いくつかの計算を並列に行うことが可能になり、計算速度をかなり上げることができる。
【０００８】
ある実施例における平均計算は、最も小さいフィルタ係数が適用される４個以上のデータ項目を一緒に平均するステップを含む。好ましくは、一連の平均計算は最も小さいフィルタ係数が適用される２個の入力データ項目を平均して第１の平均データを作るステップと、該第１の平均データと他の第１の平均データ、または適用される最小のフィルタ係数の２倍のフィルタ係数が適用される入力データ項目とを平均するステップとを含む。
【０００９】
好ましい実施例では、前記一連の平均計算は更に続いて平均計算を行うステップを含む。その計算ステップでは、入力データの組間で平均し、該入力データの組は平均化された入力データまたは個々の入力データ項目を含み、入力データの各組に適用されるフィルタ係数の和が等しくなる入力データ組間でのみ平均をとる。
【００１０】
一連の平均計算はフィルタ係数が適切に入力データに適用されるように行われる。この規則は前述の通りであり、この規則に従って平均する例を以下に示すが、より小さいフィルタ係数が適用される一対の平均化入力データ項目とより小さいフィルタ係数の２倍のフィルタ係数が適用される入力データ項目とを平均するような平均化ステップを含む。あるいはより小さいフィルタ係数が適用される二対の平均化された入力データ項目と、より小さいフィルタ係数の４倍のフィルタ係数が適用される入力データ項目とを平均するか、それともより小さいフィルタ係数の２倍のフィルタ係数が適用される一対の平均化された入力データ項目とを平均するかのいずれかのステップを含む。
【００１１】
フィルタ係数は複数個の入力データ項目に適用される１行の係数を含み、１個の出力データ項目をつくるが、好ましい実施例では、本発明の第１の実施態様のステップをくりかえし実行し、ｍ  ｘ  ｎ個のフィルタ係数の配列を複数ｍ個の入力データ項目に適用して、ｎ個の出力データ項目をつくる。
【００１２】
好ましい実施例では、一連の平均計算を実行するステップは、入力データのうち２個が共通のフィルタ係数を適用される頻度に依存して平均する入力データを選択するステップを含む。このステップにおいて、計算された入力データの平均を再び使うことができるように、複数回共通のフィルタ係数が適用される２個のデータを平均するように選択する。
【００１３】
この計算方法は共通のフィルタ係数が適用される場合、ある入力データ項目の平均が種々の出力データ項目の計算に使うことができることを意味する。ある規則が守られれば、平均されるデータ項目を選択することができる。したがって、フィルタの性能を改良する方法は、いくつかの計算においてその平均が必要とされるデータ項目を平均して、その結果を再使用するように平均化するデータを選択することである。
【００１４】
ある実施例では、フィルタ係数は２のマイナス累乗であって和が１になるという性質を有するが、そうでない場合もある。しかしながらこのことは本発明がそのような環境で使うことができないということを必ずしも意味するものではない。ある実施例では、複数個のフィルタ係数を入力データに適用するのに先立って、係数がすべて２のマイナス累乗であって、それらの和が１になるように係数を調整するステップを更に含む。
【００１５】
好ましくは、各係数の値が２のマイナス累乗であるように調整するフィルタ係数の調整ステップは、この性質を持たないフィルタ係数を要素の和に分割し、該各要素が２のマイナス累乗の値を持つようにする。
【００１６】
したがって、前述したＭＰＥＧ−４フィルタの例では、フィルタ係数の隅に見える６は４＋２に分割されて、それから入力データに適用することができる。それからデータは適当な平均計算を使って組み合わされる。
【００１７】
本方法は複数の種々のフィルタに適用することができるが、特にローパス・フィルタ、好ましくはデブロッキング・フィルタに関連している場合に適用可能である。
【００１８】
好ましい実施例では、入力データはピクセルの配列に関連している。本発明の実施例のフィルタは特にビデオデータをフィルタリングするのが得意である。入力データが１０ピクセルの配列を含み、出力データが８ピクセルの配列を含むようにフィルタ係数が調整されている場合に有利に使うことができる。したがって、フィルタは１０ピクセルの入力配列に作用して、中の８ピクセルを更新する。
【００１９】
本発明が提供する別の態様は、複数ｍ個の入力データ項目に複数ｍ個のフィルタ係数を適用するコンピュータ・プログラム製品であって、プロセッサが一連の平均計算を行うのを制御することによって、フィルタ係数を複数ｍ個の入力データ項目と組み合わせて出力データ項目を作るように該プロセッサを制御することができるフィルタリング・ロジックを含む。各フィルタ係数は２のマイナス累乗という値を有し、フィルタ係数の和は１である。該一連の平均計算は、最も小さいフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、該第１の平均データと、他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含む。一連の平均計算によって該複数ｍ個のフィルタ係数が入力データ項目に適用され、計算されたデータのデータ幅が該入力データのデータ幅を超えないようになっている。
【００２０】
入力データ項目はある実施例では任意のサイズでもよいが、各入力データ項目は８ビットから成る。このことは多くのふつうのプロセッサにより処理するのに特に適している。
【００２１】
フィルタリング・ロジックは多くの種々の形式を含むことが可能であるが、好ましい実施例では、複数個のＳＩＭＤ命令を含む。この命令形式はこれらの計算を行うのに特に適している。
【００２２】
８ビットのデータを処理するのにＳＩＭＤを使うことは、３２ビットのレジスタを有するプロセッサを使う場合に、４個の入力データを並列に処理することができることを意味する。このことにより、計算の処理速度をかなり高めることになる。
【００２３】
好ましくは、フィルタリング・ロジックは、フィルタリングされた出力データを記憶するかそれとも捨てるかを指示するのに、けた上げフラグをセットするようになっている。
【００２４】
本発明の実施例の特徴は、計算がすべて平均計算なので、けた上げフラグが全く必要でないこと、そのためデータを記憶すべきかそれとも捨ててよいかというような他のことを指示するのにけた上げフラグを使うことができることである。このことはある実施例では特に重要であり、その場合、フィルタリングをするか否かの判断が並列に計算中の個々の入力データ項目に対してなされて、ある結果は記憶する必要があり、またある結果は捨ててよいということになる。
【００２５】
本発明が提供する更に別の態様は、入力データをフィルタリングするプロセッサを含むデータ処理装置であって、該プロセッサが一連の平均計算を行うのを制御することによって、複数ｍ個のフィルタ係数を複数ｍ個の入力データ項目に適用してフィルタリングされた出力データ項目をつくるように該プロセッサを制御することができるフィルタリング・ロジックを含む。各フィルタ係数は２のマイナス累乗という値を有し、フィルタ係数の和は１である。該一連の平均計算は、最も小さいフィルタ係数が適用される入力データ項目を平均して第１の平均データを得るステップと、該第１の平均データと、他の平均入力データまたはより大きいフィルタ係数が適用される入力データ項目とを平均するステップとを含む。一連の平均計算によって該複数ｍ個のフィルタ係数が入力データ項目に適用され、計算されたデータのデータ幅が該入力データのデータ幅を超えないようになっている。
【００２６】
次に本発明について、図面を参照しながら実施例を詳細に説明することにより、本発明の上記目的、他の目的、特徴および利点を明らかにする。
【実施例１】
【００２７】
図２はデブロッキングに先だって、ＭＰＥＧ−４でエンコードされ、それからデコードされたデータから構成された画像を模式図で示す。見てわかるように、画像はデータのブロックから成る。ＡとＢはブロックの境界をまたいでいるピクセルのラインから成る。画像から「ブロック」効果を除去するために、デブロッキング・フィルタによりフィルタリングするのが必要なのはこれらのラインである。
【００２８】
データのデブロッキング・フィルタリングはデコーディングの後で行う。ＭＰＥＧデコーディングはあるデータのフィードバックを含むので、フィードバックの過程で誤差が拡大しないように計算を正確に行うことが重要である。フィードバックループの後でデブロッキング・フィルタリングを行うので、計算されたデータが厳密に正確でないとしてもさほど重要ではない。
【００２９】
デブロッキング・フィルタはある判断ロジックを含む、このことはここでは関係ないが、その後に続いてローパスフィルタがブロック境界（ＡとＢ）に適用される。
【００３０】
デブロッキングの中で使われるローパス・フィルタは一般に、そのフィルタ係数が２分の１であって和が１になるということが注目されてきた。フィルタ係数のこの性質を利用すれば、一連の平均演算を使って出力データを計算することができるであろうと注目された。このことは作業用データが計算中に固定ビット数で表されるという利点を有するであろう。種々の平均化段階でデータの丸め（rounding）がいくらか行われるので、このようにして出力データを計算することは完全に正確にはならないであろうということに注意すべきである。しかし上述のように、このことはプロセスのこの時点では重要でない。
【００３１】
始めの方で１０ピクセルの入力配列に操作を加えて中の８ピクセルを更新するというデブロッキング・フィルタを示したが（図１参照）、この例を用いて図３Ａと３Ｂに示すように、平均のシーケンスとしてｙ５を計算することができる。
【００３２】
ｙ５を計算するために入力データを平均する方法がいくつか可能である。図３Ａに一連の平均としてｙ５を計算する一例を示し、図３Ｂには別の方法を示す。これら二つの方法はツリー表記を用いた一連の平均操作として示してある。このやり方はハフマンツリーを作るのとよく似ている。デブロッキング・フィルタに関してハフマンツリーを使うことは以前から考えられていたものではないし、ハフマンツリーが一般的に使われる別の分野でそうすることが自明であるというわけでも決してないということに現時点で注目すべきである。マトリクスの各行に対して適当なツリーを選ぶことができる。
【００３３】
図３Ａと３Ｂからわかるように、ｙ５を計算する方法はいくつか可能であり、各々は平均する入力値にいくらか相違がある。異なる入力値を平均しても同じ答になるという可能性があるので、計算を実行するのにいくつかのやり方を選ぶことができる。いくつかの異なる計算において適用される同じフィルタ係数を有する入力値を選んで一緒に平均することができるので、この平均の結果は後の計算で再利用することができる。たとえば、ｘ６とｘ７の平均はまたｙ３とｙ８の計算にも使うことができよう。同様に、ｘ８とｘ９の平均はｙ６の計算にも使うことができよう。
【００３４】
したがって、マトリクスの各行に対して適当なツリーが選ばれる。利用可能なＣＰＵのレジスタ数によるが、ツリーを最適に選択すればマトリクス行間で最大数の共通の副表記（Sub expressions）が得られる。
【００３５】
ツリーの形成を助けるために、元のフィルタをインパルス応答付きのフィルタの積に因数分解することがしばしば可能である。図１に示したフィルタはインパルス応答を有する２個のフィルタ（１，１，１，０，１）／４と（１，０，１，１，１）／４の積に因数分解することができる。これは最良のツリー構成をほのめかすが、改良することができる。
【００３６】
ハフマンツリーの分布に従って平均され、この結果、入力データの組の間で平均だけがとられることに注目すべきである。この場合、平均をとった入力データ項目の数とそれらに適用すべきフィルタ係数との積は等しい。すなわち、ｘ８，ｘ９，ｘ１，ｘ２の各々に適用されるフィルタ係数は１であるから、これらが最初に平均される。もしも４個すべての平均が使われたならば、これらは４というフィルタ係数を適用されるデータ入力項目（ｘ５）か、あるいは２というフィルタ係数を適用される２つのデータ入力項目の平均（ｘ３，ｘ４，ｘ６またはｘ７のうちの２個の平均）等々のいずれかと平均されなければならない。
【実施例２】
【００３７】
見てわかるように各データポイントは一般に一度だけ使われる。しかし、フィルタ係数が２のマイナス累乗でないという場合もある。たとえば、図１に示したマトクスの隅の６をごらんいただきたい。これらは２＋４の和に分割することによって処理される。このような係数の分割は一般にプログラマによってなされるのであって、プロセッサが行うのではない。もっともプロセッサがこうした演算を行うようにプログラムされる場合もあろうが。このようにして修正分割された係数はプロセッサに入力される。図４はｙ８を計算するときにどのようにこのことが適用されるかを示す。
【００３８】
本発明の一実施例において、この方法はＡＲＭｖ６（Advanced RISC Machines of Cambridge England）の８ビットのＳＩＭＤ命令を使って実行される。このことはデブロッキング・フィルタが８ビットのＳＩＭＤの中で実行され、４個の入力値が並列に計算できることを意味する。このことによって、速度が１６ビットＳＩＭＤの２倍改良される。一般にデブロッキング・フィルタはＭＰＥＧ−４デコーダの２倍高価であるという事実を考慮すると、非常に魅力的である。
【００３９】
本発明の実施例の更なる利点は、計算中にデータ幅が決して増えないので、けた上げフラグが決して必要とされないということである。したがってこれらは他の情報を持つのに使うことができる。本発明の一実施例によるデブロッキング・フィルタにおいて、フィルタリングするか否かの判断が各境界のピクセルにおいてなされる。４個のピクセルを並列に処理するとき、それらすべてが必要とされるわけではない。４個のピクセルの組をフレームバッファに書き込む前に、ＳＥＬ命令が更新されたピクセルおよび／または元のピクセルの適当な組み合わせを選択する。これらはけた上げフラグが持っている情報によって指示される。
【００４０】
以上本発明の特定の実施例について説明したが、本発明はそれに限定されるものではなく、本発明の範囲内で多くの修正や追加が可能であることは明らかであろう。たとえば、本発明の範囲を逸脱することなく、独立請求項の特徴の種々組み合わせを従属請求項の特徴によって作ることができよう。
【００４１】
付図を参照しながら本発明の実施例を説明したが、本発明はこれらの実施例に正確に限定されるものではなく、当業者なら請求の範囲に記載された本発明の範囲内で種々の変更や修正をなし得ることを理解されたい。
【図面の簡単な説明】
【００４２】
【図１】ＭＰＥＧデコーダにおけるデブロッキング・フィルタとして働く既知のローパス・フィルタのマトリクス表記である。
【図２】デブロッキング・フィルタリング前のデコードされたＭＰＥＧ−４画像のブロックを模式図で示す。
【図３Ａ】一連の入力ピクセルの平均として計算され、フィルタリングされたピクセルを示す。
【図３Ｂ】一連の入力ピクセルの平均として計算され、フィルタリングされたピクセルを示す。
【図４】はじめは２のマイナス累乗でないフィルタ係数の適用を示す。
【符号の説明】
【００４３】
Ａ、Ｂ  ピクセルのライン
【図１】
2004297811.tif 000003
【図２】
2004297811.tif 000004
【図３Ａ】
2004297811.tif 000005
【図３Ｂ】
2004297811.tif 000006
【図４】
2004297811.tif 000007