(57)【要約】  ビデオ処理システム用雑音フィルタは、ブロックセレクタと、コスト計算器と、コスト表と、コスト比較器と、係数フィルタとを含む。ブロックセレクタは、量子化ユニットからのデータを受け取るように結合され、別のフィルタリング用のブロックを選択する。選択されたブロックは、コスト表を使用してそのブロック内の各係数のコストを判定するコスト計算器に供給され、コストの合計が求められる。コスト比較器は、合計を閾値と比較し、その合計が予め設定された閾値を超える場合に、係数フィルタを使用して係数をフィルタリングする。次いで、雑音フィルタは、ＶＬＣユニットに対してフィルタデータを出力する。【特許請求の範囲】
【請求項１】
ビデオ信号から雑音をフィルタリングするための方法であって、
ビデオデータの複数のブロックを受信するステップと、
フィルタリング用のブロックを選択するステップと、
選択された前記ブロックの合計コストを判定するステップと、
前記合計コストが予め定義された閾値を超えるかどうかを判定するステップと、
前記合計コストが前記予め定義された閾値を超えない場合に、選択された前記ブロックをフィルタリングするステップと
を含む方法。
【請求項２】
前記選択するステップは、前記ブロックの係数が小さい場合に前記ブロックを選択するステップを含む、請求項１に記載の方法。
【請求項３】
選択するステップは、
前記ブロック内の係数の値を判定するステップと、
前記係数の前記値がある範囲内にあるかどうかを判定するステップと、
前記係数が前記範囲内にある場合に前記ブロックを選択するステップと
を含む、請求項１に記載の方法。
【請求項４】
前記範囲は、１と−１の間である、請求項３に記載の方法。
【請求項５】
前記ブロック内の前記係数の前記値を判定するステップは、前記ブロック内の複数の係数の前記値を判定し、前記ブロックは、全ての前記値が前記範囲内にある場合に選択される、請求項３に記載の方法。
【請求項６】
選択された前記ブロックの前記合計コストを判定するステップは、
前記ブロック内の第１の係数のコストを計算するステップと、
前記ブロック内の第２の係数のコストを計算するステップと、
前記第１の係数の前記コストと前記第２の係数の前記コストとを合計コストのために合計するステップと
をさらに含む、請求項３に記載の方法。
【請求項７】
前記コストは、前記係数を可変長符号化するコストと関係付けられる、請求項１に記載の方法。
【請求項８】
前記コストは、係数間の前記ランレングス（連続するゼロの数）の関数となる値である、請求項１に記載の方法。
【請求項９】
前記コストを計算する前記ステップは、ある表から係数に関連する値を検索するステップを含む、請求項６に記載の方法。
【請求項１０】
選択された前記ブロックをフィルタリングする前記ステップは、少なくとも１つの非ゼロの係数をゼロに変更するステップを含む、請求項１に記載の方法。
【請求項１１】
選択された前記ブロックをフィルタリングする前記ステップは、複数の非ゼロの係数をゼロに変更するステップを含む、請求項１に記載の方法。
【請求項１２】
選択された前記ブロックをフィルタリングする前記ステップは、全ての非ゼロの係数をゼロに変更するステップを含む、請求項１に記載の方法。
【請求項１３】
ビデオデータ用フィルタであって、
ビデオデータを受信するように結合された入力部と、出力部とを有し、フィルタリング用のブロックを選択するブロックセレクタと、
入力部と出力部とを有し、ビデオデータのブロックの合計コストを判定するコスト計算器であって、前記ブロックセレクタの前記出力部に結合された入力部を有するコスト計算器と、
前記コスト計算器の前記出力部に結合された入力部と、フィルタリング済みのビデオデータを供給する出力部とを有し、前記ビデオデータ信号をフィルタリングする係数フィルタと
を備えるフィルタ。
【請求項１４】
前記ブロックセレクタは、フィルタリング用のブロックを、前記ブロックが小さい係数を有する場合に選択する、請求項１３に記載のフィルタ。
【請求項１５】
前記ブロックセレクタは、フィルタリング用のブロックを、前記ブロックが１と−１との間ないにある係数を有する場合に選択する、請求項１３に記載のフィルタ。
【請求項１６】
前記コスト計算器は、複数の係数値と、関連するコストの値とを有するコスト表を有し、該コスト表は前記コスト計算器に結合されている、請求項１３に記載のフィルタ。
【請求項１７】
前記コスト計算器は、前記係数を可変長符号化する前記コストと関係付けられるコストの値を生成する、請求項１３に記載のフィルタ。
【請求項１８】
前記コスト計算器は、係数間の前記ランレングス（連続するゼロの数）の関数となるコストの値を生成する、請求項１３に記載のフィルタ。
【請求項１９】
前記コスト計算器の前記出力部に結合された第１の入力部と、前記閾値の値を受け取るように結合された第２の入力部と、前記係数フィルタの前記入力部に結合された前記出力部とを有し、コストの値を予め定義された閾値と比較し、前記コストの値が前記閾値未満である場合にフィルタリングを行うコスト比較器をさらに備える請求項１３に記載のフィルタ。
【請求項２０】
複数の入力部と、前記複数の入力部からの出力を選択する出力部とを有するスイッチをさらに備え、前記スイッチの第１の入力部は前記ブロックセレクタの前記出力部に結合され、前記スイッチの第２の入力部は前記コスト計算器の前記出力部に結合され、前記スイッチの第３の入力部は前記係数フィルタの前記出力部に結合される、請求項１３に記載のフィルタ。
【請求項２１】
前記係数フィルタは、少なくとも１つの係数値をゼロに変更することによって前記ビデオデータをフィルタリングする、請求項１３に記載のフィルタ。
【請求項２２】
前記係数フィルタは、複数の係数値をゼロに変更することによって前記ビデオデータをフィルタリングする、請求項１３に記載のフィルタ。
【請求項２３】
前記係数フィルタは、全ての前記非ゼロの係数値をゼロに変更することによって前記ビデオデータをフィルタリングする、請求項１３に記載のフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、参照により本明細書に組み込まれる２００４年５月７日に出願された「Ｖｉｄｅｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ」と題する米国仮特許出願第６０／５６８８９２号の利益を主張する。
【０００２】
本発明は一般に、ビデオ画像処理に関し、より詳細には、画像のビデオ圧縮において使用される雑音フィルタに関する。
【背景技術】
【０００３】
デジタルテレビジョンとストリーミングメディアの登場により、ここ数年でビデオ画像の処理および圧縮を可能にするいくつかの新しい技法が開発された。さらに、動画像専門家グループ（ＭＰＥＧ）によって開発されたデジタル圧縮形式のオーディオ／ビジュアル情報を符号化する規格など、いくつかの規格も開発された。近年、ＭＰＥＧ−４や拡張ビデオコーティング（ＡＶＣ）Ｈ．２６４など様々な新しい規格が開発されまたは開発中であり、これらはデジタルビデオデータの処理を定義する追加のパラメータを提供する。さらに、ビデオデータを処理し圧縮するのに使用されるいくつかの異なる変換タイプも存在する。
【０００４】
既存の手法の１つの問題は、ビデオ処理中にしばしば元の信号に雑音が導入され、または追加されることである。図１は、オーディオ／ビジュアル情報をデジタル圧縮形式に符号化する従来の手法１００を示す。ライン１１０上で、生のビデオ信号が動き推定ユニット１０２に入力され、動き推定ユニット１０２は、それ以前のフレームを基に各動き補償予測フレームがどのように作成されるかを決定する動きベクトルを生成する。次いで、離散コサイン変換（ＤＣＴ）ユニット１０４が、その信号を素周波数成分に変換する。これは、（画像の視覚的品質に関する）重要性が異なる複数の部分（すなわちスペクトルのサブバンド）に画像を分離させる。次いでライン１１２上で、量子化ユニット１０６が、変換済みのベクトルを処理して、元の画像データを表す索引を生成する。量子化ユニット１０６は、入力ベクトルを解釈し、最も低い歪みをもたらすコードワードの索引を出力する。この場合では、最も低い歪みは、入力ベクトルとコードブック内の各コードワードとの間のユークリッド距離を評価することによって発見される。最近傍コードワードが発見されると、そのコードワードの索引が、チャネル１１２を介して送られる。可変長符号化（ＶＬＣ）ユニット１０８がこの索引を受け取り、可変長符号化を実施して量子化画像をさらに圧縮する。ＶＬＣユニット１０８の出力がライン１１４上に供給され、圧縮画像データが提供される。
【０００５】
図１から分かるように、動き推定ユニット１０２、ＤＣＴユニット１０４、量子化ユニット１０６、ＶＬＣユニット１０８、または入力ライン１１０との間にある結合の内のいずれかは、ビデオ信号に雑音が導入される恐れのある領域である可能性がある。雑音はしばしば、元のビデオが背景雑音を有するときに発生する。このことは、いくつかの理由から問題となる。第１に、元の信号への雑音の追加は、表示されるビデオ出力に影響を及ぼす。例えば、追加された雑音は、ちらつきを発生させることがあり、それをビデオ画像に追加することもある。第２に、雑音は、符号化の処理中に追加のビットを必要とする追加的な係数を導入することにより、画像の処理に必要とされる計算資源を増加させる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、背景雑音の影響を少なくする雑音フィルタを含む改良型のビデオ処理システムが必要とされている。より具体的には、量子化と、Ｈ．２６４などに基づく可変長符号化との間にビデオ信号が修正できる雑音フィルタが必要とされている。
【課題を解決するための手段】
【０００７】
上記の必要は、ビデオデータの処理中に雑音をフィルタリングするためのシステムおよび方法によって満たされる。本発明の雑音フィルタは、量子化ユニットとＶＬＣユニットの間で結合されることが好ましい。雑音フィルタは、ブロックセレクタと、コスト（ｃｏｓｔ）計算器と、コスト表と、コスト比較器と、係数フィルタとを備えることが好ましい。ブロックセレクタは、量子化ユニットからのデータを受け取るように結合され、別のフィルタリング用のブロックを選択する。選択されたブロックは、コスト表を使用してそのブロック内の各係数のコストを判定するコスト計算器に供給され、コストの合計が求められる。コスト比較器は、合計を閾値と比較し、その合計が予め設定された閾値未満である場合に、係数フィルタを使用して係数をフィルタリングする。次いで、雑音フィルタは、ＶＬＣに対してフィルタデータを出力する。本発明は、ビデオ信号をフィルタリングするための方法を含む。この方法は、小さい係数を有するブロックを選択するステップと、前記ブロック内の前記係数の合計コストを判定するステップと、前記合計を閾値と比較するステップと、前記合計が予め設定された閾値未満である場合に、前記係数をゼロにセットすることによって前記係数をフィルタリングするステップとを含むことが好ましい。
【発明を実施するための最良の形態】
【０００８】
ここで図２を参照すると、ビデオ処理システム２００における本発明の一実施形態が示される。便宜のためまた理解を容易にするために、同様の参照番号は、図１に関して上述した従来技術と比較される同様の構成要素を表すために使用される。図２に示されるように、本発明によるシステム２００は、動き推定ユニット１０２と、ＤＣＴユニット１０４と、量子化ユニット１０６と、雑音フィルタ２０２と、ＶＬＣユニット１０８とを備えることが好ましい。動き推定ユニット１０２は、生のビデオデータを受信する入力ライン１１０に結合される。当業者には理解されるように、動き推定ユニット１０２、ＤＣＴユニット、および量子化ユニット１０６は、直列的に結合され、従来の機能を実施する。とりわけ、ＤＣＴユニットは、空間的な画像ピクセルの値を変換係数に変換する。量子化ユニット１０６は、これらの係数を解釈し、より有意でない係数ほど粗く量子化する。量子化ユニット１０６は、信号ライン１１２に結合された出力部を有する。雑音フィルタの入力部は、信号ライン１１２に結合される。雑音フィルタ２０２は有利なことに、量子化後にフィルタリングを行い、小さい値を除去する。雑音フィルタは、量子化行列を検査し、全ての係数が予め定義された範囲内にあるかどうかを判定する。係数が範囲内にあり、係数のコストが閾値を下回る場合は、その信号はフィルタリングされた後に、雑音フィルタ２０２によって信号ライン２０４上に出力される。ＶＬＣユニット１０８の入力部は、信号ライン２０４に結合され、フィルタリング済みの信号を受け取る。ＶＬＣユニット１０８は、従来の様式の可変長符号化を実施した後に、信号ライン１１４上に圧縮済みのビデオデータを出力する。
【０００９】
次に図３を参照すると、本発明の雑音フィルタ２０２がより詳細に示される。雑音フィルタ２０２は、ブロックセレクタ３０２と、コスト計算器３０４と、コスト表３０６と、コスト比較器３０８と、係数フィルタ３１０と、スイッチ３１２とを備えることが好ましい。
【００１０】
本発明は、信号をブロック単位でフィルタリングする。これらのブロックは、８×８のＤＣＴピクセルブロックであることが好ましい。ブロックセレクタ３０２は、量子化ユニット１０６からのデータを受け取るライン１１２に結合され、別のフィルタリング用のブロックを選択する。本発明は有利なことに、複数のレベルのフィルタリング基準を有する。まず、フィルタリング用のブロックがブロックセレクタ３０２によって選択され、そのブロックにフィルタが適用されるかどうかがコスト比較器３０８によって判定されるが、これについてはコスト比較器３０８に関して以下で説明する。例示的な一実施形態では、ブロックセレクタ３０２は、ブロック内の全ての係数が−１から１の範囲内にあるフィルタリング用のブロックだけを選択する。言い換えれば、ブロック内に−１から１の範囲を外れる係数が１つでも存在する場合には、そのブロックはフィルタリングされず、係数はブロックセレクタ３０２からスイッチ３１２に送られ、フィルタリングされずにライン２０４上に出力される。雑音によって、典型的には量子化後の係数の値が小さくなる。したがって、ブロックを選択するためのこの方法は、量子化後の雑音の除去に効果的である。当業者なら、ブロックセレクタ３０２は、他の様々な基準を使用してどのブロックがフィルタリングされるかを判定することができ、上記の範囲は使用され得る方法の１つの例に過ぎないことを理解するであろう。
【００１１】
フィルタリングに関する上記の第１の基準を満たすブロックは、コスト計算器３０４に引き渡される。コスト計算器３０４は、ブロック内の全ての係数のコストの値を判定し、合計を求める。コスト計算器３０４は、ブロックセレクタ３０２の出力部と、コスト表３０６と、コスト比較器３０８とに結合される。コストは、コスト表３０６内で係数を探索することによって判定される。コスト計算器３０４は、ブロック内の非ゼロの各係数値のコストを判定する。例示的な一実施形態では、コストは、可変長符号化と関係付けられ、ピクセル符号化の際のジグザグ走査指令後のランレングス（連続するゼロの数）の関数となる値である。当業者なら、それらが可変長符号化のコストと関係付けられる限り他の様々な方法を使用してコストの値が計算され得、上記は使用され得る方法の１つの例に過ぎないことを理解するであろう。好ましい実施形態では、かかるコストは係数毎に計算され、コスト表３０６に記憶される。以下は１つの例示的な表である。
【００１２】
ｃｏｎｓｔ  ｉｎｔ  ｇ＿ＭＰＥＧＣｏｅｆｆＣｏｓｔ［６４］＝
｛
４，４，３，３，３，３，２，２，２，２，２，２，２，２，２，２，
２，１，１，１，１，１，１，１，１，１，１，１，１，１，１，１，
１，１，１，１，１，１，１，１，１，０，０，０，０，０，０，０，
０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０
｝；
当業者なら、この表がプログラム可能であることを理解するであろう。ブロック内の非ゼロの各係数値のコストは、コスト計算器３０４によって判定され合計が求められる。次いで、この値は、ブロックの係数と共にコスト比較器３０８に送られる。
【００１３】
コスト比較器３０８は、ブロックの合計コストを閾値と比較する。コスト比較器３０８は、閾値の値を記憶するレジスタ３１２と、コスト計算器３０４と、スイッチ３１２と、係数フィルタ３１０とに結合される。コスト比較器３０８は、コスト計算器３０４から受け取ったブロックの合計コストをレジスタ３１２に記憶された閾値の値と比較する。ブロックの合計コストが閾値を超える場合には、係数は、コスト比較器３０８によって変更もフィルタリングもされずに出力される。コストが閾値を超える場合には、コストラン（ｃｏｓｔ  ｒｕｎ）が大きい故に、係数が雑音を表す可能性は低く、したがって、それらの係数はフィルタリングされない。このことは、フィルタが多くのＤＣＴ低周波数成分の存在する場所をフィルタアウトしないことを有効に示す。ユーザは所望の通りに閾値を設定することにより、フィルタリングをしない能力または選択肢を有効に有する。当業者には理解されるように、閾値の値は、１つの例示的なビデオサンプルを使用し検査することによって設定されることが好ましい。
【００１４】
ブロックの合計コストが閾値を超えない場合には、そのブロックは、係数フィルタ３１０に送られ、そこでフィルタリングされた後にスイッチ３１２に出力される。係数フィルタ３１０は、ブロックの係数を受け取るためにコスト比較器に結合された入力部と、フィルタリング済みのブロックを供給する出力部とを有する。一実施形態では、係数フィルタ３１０は、ブロック内の全ての係数をゼロの値にセットする（量子化行列全体をゼロで埋める）ことによって信号をフィルタリングする。当業者なら、係数の一部または選択された係数をゼロにすることなどによって係数をフィルタリングする他の方法も存在し、それらの方法は全て本発明に含まれることを理解するであろう。ブロックの合計コストが閾値よりも低い場合には、係数が雑音を表す可能性が高く、読者は、全ての係数をゼロにすることにより、通常のＶＬＣでは予期されない故に符号化にかなりの追加ビットを必要とする余分な係数を排除する。言い換えれば、余分な係数を排除することによって、ＶＬＣユニット１０８の符号化効率が高められる。本発明は、圧縮ビデオの画像品質に影響を及ぼすことなくビットレートを減少させるので特に有利である。
【００１５】
次に図４を参照して、本発明によるフィルタリングに関する方法の第１の実施形態が説明される。この方法は、ステップ４０２で入力ビデオデータを受信することから開始する。次いでステップ４０４で、小さい係数を有するデータブロックが選択される。ブロックセレクタ３０２に関して上述したように、この方法は、その内の全ての係数が１から−１の範囲内にあるブロックを選択することが好ましい。次にステップ４０６で、選択されたブロック内の係数の合計コストが判定される。次いで４０８で、この合計コストが閾値と比較される。合計コストが閾値を超える場合には、係数は、フィルタによって変更されずに出力されるが、合計コストが閾値未満でありまたはそれと等しい場合には、そのブロックの全ての係数はゼロにセットされ、出力される。
【００１６】
次に図５Ａおよび５Ｂを参照して、本発明によるフィルタリングに関する第２の実施形態が説明される。図５Ａに示されるように、このプロセスは、ステップ５０２で、フィルタ２０２が量子化ユニット１０６からビデオデータの第１のブロックまたは次のブロックを受け取るところから開始する。次いで５０４で、ブロック内の全ての係数の値が判定される。次いで５０６で、この方法は、ブロックの全ての係数が所定の範囲内にあるかどうかを判定する。例えば、そのブロックの全ての係数が１から−１の間の値をとるかどうかを判定する。そうでない場合には、５０８で、この方法は、追加のフィルタリングを行うことなくブロックを出力し、ステップ５１０に進んでそれ以上処理すべきブロックが存在するかどうかを判定する。それ以上処理すべきビデオデータのブロックが存在する場合には、この方法は、ステップ５０２に戻ってそれらの処理を開始する。存在しない場合には、この方法は完了し終了する。
【００１７】
図５Ｂに示されるように、ステップ５０６で、この方法がブロックの全ての係数が所定の範囲内にあると判定した場合は、そのブロックがフィルタリングに適格とされ、この方法は、ステップ５１２に進む。この方法は、ブロックの非ゼロの係数を選択し、その係数のコストを計算する。このコストは、探索表にアクセスして係数に関連する値の有無を確認することによって計算される。このコストがコストの合計に加算され、次いで５１８で、この方法は、それぞれのコストを計算すべき係数がそれ以上存在するかどうか判定する。存在する場合には、この方法は、ステップ５１２に戻り、非ゼロの係数に対してステップ５１２、５１４、５１６、および５１８を実施する。非ゼロの係数がそれ以上存在しない場合には、５２０で、コストの合計すなわちＳＵＭが、予め設定された閾値と比較される。合計が閾値を超える場合には、５２４で、ＳＵＭがゼロにリセットされ、この方法は、ビデオデータのブロックがフィルタリングなしで出力される図５Ａのステップ５０８に進む。合計が閾値を超えない場合には、５２６で、この方法は、ＳＵＭをゼロにリセットし、そのブロックのフィルタリングを行う。より具体的には、５２８で、この方法は、ブロックの全ての係数をゼロに変更し、次いで５３０で、ビデオデータのブロックを変更済みの係数と共に出力する。ステップ５３０の後に、この方法は、それ以上フィルタリングすべきブロックが存在するかどうかを判定する図５Ａのステップ５１０に戻る。
【００１８】
上記の記載は、好ましい諸実施形態の動作を示すために含まれるものであり、本発明の範囲を限定するものではない。本発明の範囲は、添付の特許請求の範囲によってのみ限定されるものである。関連技術分野の当業者なら、上記の論述を読めば本発明の趣旨および範囲に包含されていない多くの変形形態が明らかとなるであろう。
【図面の簡単な説明】
【００１９】
【図１】従来技術によるビデオ処理システムのブロック図である。
【図２】本発明の一実施形態による雑音フィルタを含むビデオ処理システムのブロック図である。
【図３】本発明の一実施形態による雑音フィルタのブロック図である。
【図４】本発明による雑音をフィルタリングするための方法の第１の実施形態に関する流れ図である。
【図５Ａ】本発明による雑音をフィルタリングするための方法の第２の実施形態に関する流れ図である。
【図５Ｂ】本発明による雑音をフィルタリングするための方法の第２の実施形態に関する流れ図である。
【図１】
2008507161.tif 000002
【図２】
2008507161.tif 000003
【図３】
2008507161.tif 000004
【図４】
2008507161.tif 000005
【図５Ａ】
2008507161.tif 000006
【図５Ｂ】
2008507161.tif 000007