(57)【要約】【課題】  画像データのデブロッキングにおいて、ブロッキングアーチファクトを排除する必要性と、ディテールを満足なレベルに維持する必要性との間の許容できるバランスを取り決めること。【解決手段】  デブロッキング動作において、ピクセルの第１のブロック内のピクセル値が比較され、また、前記第１のブロックにおけるピクセル値が前記第１のブロックに隣接するピクセルの第２のブロックにおけるピクセル値と比較される。前記比較の結果に基づいて、デジタルデブロッキングフィルタ及び対象領域が選択され、前記対象領域は、前記選択されたフィルタが適用されるべき、前記第１のブロックにおけるピクセルの数及び第２のブロックにおけるピクセルの数を識別するものである。【選択図】  図３
2010141883.tif 000002
【特許請求の範囲】
【請求項１】
画像データをデブロッキングする方法を行うためのコンピュータ実施可能な命令を有するコンピュータ読み取り可能な媒体において、
前記方法は、
ピクセルの第１のブロック内のピクセル値の比較を行い、前記第１のブロックにおけるピクセル値を、前記第１のブロックに隣接するピクセルの第２のブロックにおけるピクセル値と比較するステップと、
前記比較の結果に基づいて、複数のフィルタからデジタルデブロッキングフィルタを選択し、前記デブロッキングフィルタが適用されるべき対象領域を選択するステップであって、前記対象領域は、前記第１のブロックにおける第１の数のピクセル及び前記第２のブロックにおける第２の数のピクセルを含む、ステップと、
前記デブロックフィルタを前記対象領域に適用して前記第１のブロック及び第２のブロックに対する新しいピクセル値を生成するようにするステップと、
を含む、コンピュータ読み取り可能な媒体。
【請求項２】
前記方法は、更に、
前記ピクセルの第１のブロックに対する第１の値及び前記ピクセルの第２のブロックに対する第２の値を計算するステップであって、前記第１の値は、前記第１のブロックに対する選択されたピクセル値と、前記第１のブロックに隣接し且つ前記第２のブロックを含む第１の複数のブロックに対する選択されたピクセル値との間の差の尺度に基づいており、前記第１の値は、前記第１のブロックに対する第１の複数のピクセル値における偏差の尺度にも基づいており、前記第２の値は、前記第２のブロックに対する選択されたピクセル値と、前記第２のブロックに隣接し且つ前記第１のブロックを含む第２の複数のブロックに対する選択されたピクセル値との間の差の尺度に基づいており、前記第２の値は、前記第２のブロックに対する第２の複数のピクセル値における偏差の尺度にも基づいている、ステップと、
前記複数のフィルタから前記デブロックフィルタを選択するためのインデックスとして前記第１の値及び第２の値のうちの１つを使用するステップと、
を含む、請求項１に記載のコンピュータ読み取り可能な媒体。
【請求項３】
前記方法は、更に、
隣接するピクセルの第１の対についてピクセル値の減算を行うことにより、前記第１のブロックに対する前記選択されたピクセル値と前記第１の複数のブロックに対する前記選択されたピクセル値との間の差を計算するステップであって、前記第１の対の各々は、前記第１のブロックにおけるピクセル及び前記第１の複数のブロックにおけるピクセルに関連付けられている、ステップと、
隣接するピクセルの第２の対についてピクセル値の減算を行うことにより、前記第２のブロックにおける前記選択されたピクセル値と前記第２の複数のブロックにおける前記選択されたピクセル値との間の差を計算するステップであって、前記第２の対の各々は、前記第２のブロックにおけるピクセル及び前記第２の複数のブロックにおけるピクセルに関連付けられている、ステップと、
を含む、請求項２に記載のコンピュータ読み取り可能な媒体。
【請求項４】
前記方法は、更に、
前記第１のブロックに対する前記選択されたピクセル値と前記第１の複数のブロックに対する前記選択されたピクセル値との間の差の各々が第１のしきい値を越える毎に、第１のカウンタ値を増分し、且つ、前記第１のブロックに対する前記選択されたピクセル値と前記第１の複数のブロックに対する前記選択されたピクセル値との間の差の各々が前記第１のしきい値及び第２のしきい値の両方を越える毎に、前記第１のカウンタ値を再び増分するステップであって、前記第１の値は、前記第１のカウンタ値に基づいている、ステップと、
前記第２のブロックに対する前記選択されたピクセル値と前記第２の複数のブロックに対する前記選択されたピクセル値との間の差の各々が前記第１のしきい値を越える毎に、第２のカウンタ値を増分し、且つ、前記第２のブロックに対する前記選択されたピクセル値と前記第２の複数のブロックに対する前記選択されたピクセル値との間の差の各々が前記第１のしきい値及び前記第２のしきい値の両方を越える毎に、前記第２のカウンタ値を再び増分するステップであって、前記第２の値は、前記第２のカウンタ値に基づいている、ステップと、
を含む、請求項２に記載のコンピュータ読み取り可能な媒体。
【請求項５】
前記方法は、更に、
前記第１の複数のピクセル値についての第１の重み付け平均を計算するステップと、
前記第２の複数のピクセル値について第２の重み付け平均を計算するステップと、
前記第１の複数のピクセル値と前記第１の重み付け平均との間の差を加算して、前記第１の複数のピクセル値における偏差を決定するステップと、
前記第２の複数のピクセル値と前記第２の重み付け平均との間の差を加算して、前記第２の複数のピクセル値における偏差を決定するステップと、
を含む、請求項２に記載のコンピュータ読み取り可能な媒体。
【請求項６】
前記第１の値は、前記第１のブロックに対する前記選択されたピクセル値と前記第１の複数のブロックに対する前記選択されたピクセル値との間の差に比例しており且つ前記第１の複数のピクセル値における偏差に逆比例しており、更に、前記第２の値は、前記第２のブロックに対する前記選択されたピクセル値と前記第２の複数のブロックに対する前記選択されたピクセル値との間の差に比例しており且つ前記第２の複数のピクセル値における偏差に逆比例している、請求項２に記載のコンピュータ読み取り可能な媒体。
【請求項７】
前記第１の値及び前記第２の値のうち最小のものが、前記デブロックフィルタを選択するためのインデックスとして使用される、請求項２に記載のコンピュータ読み取り可能な媒体。
【請求項８】
画像データをデブロッキングするコンピュータ実施方法において、
画像データの第１のブロックにおける第１の複数のピクセルに対するピクセル値と画像データの他のブロックの第１のセットにおける第２の複数のピクセルに対するピクセル値との間の差に基づいて第１のメトリックを算出するステップであって、前記第１のブロック及び前記他のブロックの第１のセットは、共通のエッジを有しており、更に、前記第１の複数のピクセル及び前記第２の複数のピクセルは、前記エッジに隣接している、ステップと、
前記第１のブロックにおける第３の複数のピクセルに対するピクセル値と前記第３の複数のピクセルに対する前記ピクセル値から導出される中間値との間の差に基づいて第２のメトリックを算出するステップと、
前記第１のブロックに対する第１の値を計算するステップであって、前記第１の値は、前記第１のメトリック及び前記第２のメトリックの関数である、ステップと、
前記第３の複数のピクセルについて第１の数のピクセル値にデブロックフィルタを適用して、新しいピクセル値を生成するステップであって、前記第１の数は、前記第１の値に基づく、ステップと、
を含む、コンピュータ実施方法。
【請求項９】
第２のブロックにおける第４の複数のピクセルに対するピクセル値と他のブロックの第２のセットにおける第５の複数のピクセルに対するピクセル値との間の差に基づいて第３のメトリックを算出するステップであって、前記第２のブロック及び前記他のブロックの第２のセットは、共通のエッジを有しており、更に、前記第４の複数のピクセル及び前記第５の複数のピクセルは、前記エッジに隣接している、ステップと、
前記第２のブロックにおける第６の複数のピクセルに対するピクセル値と前記第６の複数のピクセルに対するピクセル値から導出される中間値との間の差に基づいて第４のメトリックを算出するステップと、
前記第２のブロックに対する第２の値を計算するステップであって、前記第２の値は、前記第３のメトリック及び前記第４のメトリックの関数である、ステップと、
複数のフィルタから、前記第１の値及び前記第２の値のうちの１つでもって前記複数のフィルタを割り出すことにより、前記デブロックフィルタを選択するステップと、
前記第６の複数のピクセルにおける第２の数のピクセル値に前記デブロックフィルタを適用して、新しいピクセル値を生成するステップであって、前記第２の数は、前記第２の値に基づいている、ステップと、
を更に含む、請求項８に記載のコンピュータ実施方法。
【請求項１０】
前記第１の複数のピクセルに対するピクセル値と前記第２の複数のピクセルに対するピクセル値との間の差の各々を２つのしきい値と比較するステップと、
１つのしきい値を越える場合にカウンタ値を１回増分し、両方のしきい値を越える場合にカウンタ値を２回増分するステップであって、前記第１のメトリックは、前記カウンタ値に対応している、ステップと、
を更に含む、請求項８に記載のコンピュータ実施方法。
【請求項１１】
前記第２のメトリックを算出するステップは、
前記第３の複数のピクセルに対するピクセル値についての重み付け平均を計算する工程と、
前記第３の複数のピクセルに対するピクセル値と前記重み付け平均との間の偏差を計算する工程と、
前記第３の複数のピクセルと前記第１のブロックのエッジとの間の距離に基づいて前記偏差を重み付けして、重み付けされた偏差を生成する工程と、
前記重み付けされた偏差を加算する工程であって、前記第２のメトリックは、前記重み付けされた偏差の和に対応する、工程と、
を含む、請求項８に記載のコンピュータ実施方法。
【請求項１２】
前記第１の値は、前記第１のメトリックに比例しており、且つ前記第２のメトリックに逆比例している、請求項８に記載のコンピュータ実施方法。
【請求項１３】
画像データをデコーディングしデブロッキングするためのシステムにおいて、
第１のピクセル値を有するピクセルを含む第１のブロックと、前記第１のブロックに隣接し且つ第２のピクセル値を有するピクセルを含む第２のブロックとを含むデコードされた画像データを記憶するよう動作するコンピュータ読み取り可能なメモリと、
前記メモリに接続され、且つ複数のデブロックフィルタからデジタルデブロックフィルタを選択し、前記第１のピクセル値のうちの第１の数及び前記第２のピクセル値のうちの第２の数に対して前記デブロックフィルタを適用するよう動作するデブロッカーであって、前記第１の数は、前記第１のブロックに対する選択されたピクセル値と前記第２のブロックを含む第１の複数のブロックに対する選択されたピクセル値との間の差に基づいており、前記第１の数は、前記第１のピクセル値の間の偏差にも基づいており、更に、前記第２の数は、前記第２のブロックに対する選択されたピクセル値と前記第１のブロックを含む第２の複数のブロックに対する選択されたピクセル値との間の差に基づいており、前記第２の数は、前記第２のピクセル値の間の偏差にも基づいており、前記デブロックフィルタは、前記第１の数及び前記第２の数のうちの１つでもって前記複数のフィルタを割り出すことにより選択される、デブロッカーと、
を備えるシステム。
【請求項１４】
前記デブロッカーは、更に、前記第１のブロックに対する選択されたピクセル値と前記第１の複数のブロックに対する選択されたピクセル値との間の差の各々を第１のしきい値及び第２のしきい値と比較し且つそれに応じて第１のカウンタ値を増分するように動作するものであり、前記第１の数は、前記第１のカウンタ値の関数であり、更に、前記デブロッカーは、前記第２のブロックに対する選択されたピクセル値と前記第２の複数のブロックに対する選択されたピクセル値との間の差の各々を前記第１のしきい値及び前記第２のしきい値と比較し且つそれに応じて第２のカウンタ値を増分するように動作し、前記第２の数は、前記第２のカウンタ値の関数である、請求項１３に記載のシステム。
【請求項１５】
前記デブロッカーは、更に、前記第１のピクセル値について第１の重み付け平均を計算し、それから、前記第１のピクセル値と前記第１の重み付け平均との間の差を加算して、前記第１のピクセル値の間の偏差を決定するように動作し、更に、前記デブロッカーは、前記第２のピクセル値について第２の重み付け平均を計算し、次いで前記第２のピクセル値と前記第２の重み付け平均との間の差を加算して、前記第２のピクセル値の間の偏差を決定するように動作する、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明による実施形態は、一般的に、データ処理に関し、より詳細には、ビデオデコーディング及びデブロッキングに関する。
【背景技術】
【０００２】
[0002]ビデオは、各々がピクセルの２次元アレイより成る一連のピクチャー（又はフレーム）を含む。これらピクセルは、ブロックに分割される（例えば、ピクセルの８x８アレイ）。ビデオは、総ビットレートを減少させるようにエンコード（圧縮）され、このビデオが別の装置へとより効率的に送信されるようにし、その別の装置において、デコード（解凍）され、再構成され、表示されるようにすることができる。
【０００３】
[0003]現在のビデオ及び画像圧縮技法は、ブロック変換係数の知覚量子化の如き非可逆処理を含む。ビデオフレーム内の独立ブロックを非可逆エンコーディングすると、デコードされ再構成された画像のブロックエッジにブロッキングアーチファクトとして知られる急な移行が生じてしまうことがあり、レンダリングされた画像が比較的に塊状の外観を呈してしまうことがある。
【０００４】
[0004]ブロッキングアーチファクトの出現を排除又は減少させるため、デコーディング装置は、デブロッキング動作を行う。デブロッキングにおいては、隣接ブロックの間の移行を滑らかなものとし、表示されるビデオの知覚品質を改善するため、デブロックフィルタ（例えば、ローパスデジタルフィルタ）がブロック境界に亘って適用される。
【０００５】
[0005]しかしながら、適切な強度のデブロックフィルタを選択するのに問題がある。もし、選択されたフィルタが弱過ぎる場合には、ブロッキングアーチファクトの出現を効果的に減少させることができない。他方では、もし、選択されたフィルタが強すぎる場合には、多くのディテールが除去され過ぎてしまうことがある。
【０００６】
[0006]デブロックフィルタを適用するピクセルの数を選択するのにも問題がある。一方の極端な場合として、もし、ブロック境界に直ぐ隣接するピクセルのみにフィルタを適用する場合には、ブロッキングアーチファクトは、効果的に減少又は排除されないことがある。他方の極端な場合として、もし、フィルタがブロックにおけるピクセルの全てに亘って適用される場合には、幾つかのピクセル値が不必要に変更されてしまい、そのブロック内のディテールが失われてしまうことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
[0007]従って、ブロッキングアーチファクトを減少又は排除する必要性と、ディテールを満足なレベルに維持する必要性との間の許容できるバランスを取り決めるできるデブロックフィルタを選択できることが重要である。また、画像データのオーバーフィルタリング及び画像ディテールの付随的ロスを避けるために、選択されたデブロックフィルタが適用されるべきピクセルの数を決定できることも重要である。
【課題を解決するための手段】
【０００８】
[0008]本発明の実施形態によれば、デブロッキングするため、ピクセルの第１のブロック内のピクセル値が比較され、また、前記第１のブロックにおけるピクセル値が前記第１のブロックに隣接するピクセルの第２のブロックにおけるピクセル値と比較される。前記比較の結果に基づいて、デジタルデブロッキングフィルタ及び「対象領域」が選択され、前記対象領域は、前記選択されたフィルタが適用されるべき、前記第１のブロックにおけるピクセルの数及び第２のブロックにおけるピクセルの数を識別するものである。
【０００９】
[0009]より特定すると、１つの実施形態では、ピクセルの第１のブロックに対して第１の値が計算され、ピクセルの第２のブロックに対して第２の値が計算され、前記第２のブロックは、前記第１のブロックに隣接するものである。１つの実施形態では、前記第１の値は、前記第１のブロックに対する「アーチファクトカウント」及び前記第１のブロック内の「アクティビティ」に基づいている。前記アーチファクトカウントは、前記第１のブロックに関連するブロッキングアーチファクトの数の尺度を与える。前記アクティビティは、前記第１のブロックでの変動量の尺度を与えており、より特定すると、アクティビティは、選択されたピクセル値の平均又は重み付け平均の如き中間値からの前記選択されたピクセル値の偏差量の尺度を与える。同様の形式において、前記第２の値は、前記第２のブロックに対するアーチファクトカウント及び前記第２のブロック内のアクティビティに基づいている。このような実施形態では、前記第１の値及び前記第２の値は、各々前記アーチファクトカウントに比例しており且つ前記第１のブロック及び前記第２のブロック内の前記アクティビティにそれぞれ反比例している。
【００１０】
[0010]１つの実施形態では、前記アーチファクトカウントは、前記第１のブロックと前記第２のブロックとの間の境界に亘るピクセル値の差を計算し、それらの差を２つのしきい値と比較することにより、決定される。２つのしきい値の使用により、前記アーチファクトの視覚感度をより正確に評価することができ、適切な強度のデブロックフィルタを選択することが容易となる。このような実施形態では、ユーザー（例えば、視聴者）は、個々の好みに基づいて、前記しきい値のうちの少なくとも１つを選択する。
【００１１】
[0011]１つの実施形態では、前述の第１の値及び第２の値のうちの１つが、フィルタのバンクの中からデジタルデブロックフィルタを選択するためのインデックスとして使用され、前記バンクのフィルタは、前記インデックスの値が増大するにつれて、次第に強度が増大していくものである。このような実施形態では、前記第１の値及び前記第２の値のうちの最小のものが、デブロックフィルタを選択するのに使用される。異なる強度のフィルタを有するフィルタバンクの使用により、固定フィルタリング及びフィルタリング判断の間のハードスイッチングに伴う欠点を排除することができる。更にまた、前記フィルタバンクにおけるフィルタの数は、本発明を実施するのに使用されるグラフィック処理装置（ＧＰＵ）のタイプに従って特定することができる。例えば、ロアーエンド又はベースラインＧＰＵに使用する場合には、より少ないタップを有するより少ない数のフィルタを選択することができる。一般的には、計算処理能力の異なるレベルを有する異なる実施を支援するため、フィルタリングの全体の複雑さを縮小又は拡張することができる。
【００１２】
[0012]それから、前記選択されたデブロックフィルタが、前記第１のブロックと前記第２のブロックとの間の境界に亘って、前記境界の一方の側における特定の数のピクセル及び前記境界の他方の側における特定の数のピクセルに対して適用され、前記ブロック境界に亘る移行を滑らかなものとする前記第１のブロック及び前記第２のブロックに対する新しいピクセル値を生成することができる。より特定すると、前記選択されたデブロックフィルタは、前記第１のブロックにおける第１の数のピクセル値及び前記第２のブロックにおける第２の数のピクセル値に対して適用される。１つの実施形態では、前記ピクセル値の第１の数は、前述した第１の値に対応し、前記ピクセル値の第２の数は、前述の第２の値に対応する。従って、前記第１の値及び前記第２の値は、デブロックフィルタを選択すること及び対象領域を定めることの両者のために使用される。
【００１３】
[0013]要するに、本発明の実施形態によれば、デブロックフィルタリングは、適応性（例えば、ブロック当たりのアーチファクトカウント及びアクティビティによって測定されるようなピクセル値の品質に対して）があり、スケーラブル（例えば、グラフィックスカードの能力に対して）であり、且つユーザーにより制御できるものとなる。本発明による実施形態は、広範囲の処理能力に対して十分に適合できるばかりでなく、広範囲のビデオ品質及び低ビットレートビデオ（例えば、インターネットビデオ）の増強の如きアプリケーションに対しても十分に適合できるものである。
【００１４】
[0014]本発明の種々な実施形態のこれらの目的及び他の目的及び効果については、当業者であれば、種々な図面に例示されている実施形態の以下の詳細な説明を読んだ後、認識できよう。
【００１５】
[0015]本発明は、添付図面の各図に、これに限定するものとしてではなく、単なる例示として示されており、これら図において、同様の参照符号は、同様の要素を指している。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態によるデコーダを実施することができるシステムの一例のブロック図である。
【図２】本発明の１つの実施形態によるデコーディング及び後処理パイプラインの一例の要素を示すブロック図である。
【図３】本発明の一実施形態による画像データをデブロッキングするためのコンピュータ実施方法のフローチャートである。
【図４】本発明の一実施形態による画像フレームにおけるブロックのアレイの一例を示している。
【図５】本発明の一実施形態によるブロッキングアーチファクトを計数するのに使用されるしきい値を例示している。
【図６】（Ａ）は、本発明の一実施形態によるブロックにおけるピクセルの行の一例を示している。（Ｂ）は、本発明の一実施形態によるピクセル値の分布の一例を示している。
【図７】本発明の一実施形態による対象領域の一例を示している。
【図８】本発明の一実施形態による画像データを処理するためのコンピュータ実施方法の一例のフローチャートである。
【発明を実施するための形態】
【００１７】
[0025]幾つかの実施形態が添付図面に例示されている、本発明による実施形態について、以下詳細に説明する。これら実施形態に関連して本発明を説明するのであるが、これら説明は、本発明をこれらの実施形態に限定しようとしているものではないことは、理解されよう。反対に、本発明は、特許請求の範囲により定められるような本発明の精神及び範囲内に含まれる代替物、変形物及び均等物を包含しようとしているものである。更にまた、本発明の実施形態の以下の詳細な説明においては、本発明を完全に理解できるようにするため、多くの特定の細部について説明している。しかしながら、本発明は、これらの特定の細部を伴わずとも実施できるものであることは、当業者には認識されよう。一方では、よく知られた方法、手順、構成部分及び回路については、本発明の実施形態の態様を不必要に不明瞭なものとしてしまわないように、詳述していない。
【００１８】
[0026]以下の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに関するオペレーションの手順、ステップ、ロジックブロック、処理及びその他の記号表現の形にてなされている。これらの説明及び表現は、自分の業績の実体を他の当業者に対して最も効果的に伝えるため当業者により使用される手段である。手順、コンピュータ実行ステップ、ロジックブロック、プロセス等は、ここで、且つ一般的に、希望の結果に至る自己矛盾のない一連のステップ又は命令であると考えられている。これらステップは、物理量の物理的操作を必要とするものである。通常、必ずしもそうではないが、これらの量は、コンピュータシステムにおいて記憶されたり、転送されたり、結合されたり、比較されたり、その他の形にて操作されることのできる電気的又は磁気的信号の形を取っている。これらの信号を、ビット、値、要素、記号、文字、用語、数字等として記載するのが、時には、また、主として慣用されているという理由で、便宜的であることが分かっている。
【００１９】
[0027]しかしながら、これらの及び同様の用語の全ては、適当な物理量に関連付けられるものであり、これらの量に適用される単なる便宜的なラベルに過ぎないことを、念頭におかれたい。前述したことから明らかなように、特に断らない限り、本発明を通じて、「エンコーディング」、「デコーディング」、「デブロッキング」、「受け取る」、「送る」、「使用する」、「適用する」、「計算する」、「増分する」、「比較する」、「選択する」、「加算する」、「重み付けする」、「コンピューティング又は算出する」、「アクセスする」等の如き用語を使用する説明は、コンピュータシステムのレジスタ及びメモリ内の物理（電子的）量として表されているデータを操作して、コンピュータシステムのメモリ又はレジスタ又は他の同様の情報記憶、送信又はディスプレイ装置内の物理量として同様に表される他のデータへと変換するコンピュータシステム又は同様の電子的コンピューティング装置の動作及び処理を指していることを、理解されたい。
【００２０】
[0028]図３及び図８は、本発明の実施形態によるデータを処理するためのコンピュータ実施方法の一例のフローチャートである。これらフローチャートでは、特定のステップが示されているが、このようなステップは、典型的な例示である。即ち、本発明の実施形態は、種々な他のステップ又はこれらフローチャートに示されているステップの変形を行うため十分に適合されるものである。
【００２１】
[0029]図３及び図８のフローチャートは、１つ以上のコンピュータ又は他の装置により実行される、プログラムモジュールの如きある形式のコンピュータ使用可能な媒体に存在するコンピュータ実行可能な命令として実施することができる。一般的に、プログラムモジュールは、特定のタスクを行い又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。プログラムモジュールの機能は、種々な実施形態において望まれるように組み合わされ又は分散させることができる。
【００２２】
[0030]一例として、これに限定するものではないが、コンピュータ使用可能な媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は他のデータの如き情報を記憶するための任意の方法又は技法において実施される揮発性及び不揮発性、リムーバブル及びノンリムーバブル媒体を含む。コンピュータ記憶媒体は、これらに限定されないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ又は他のメモリ技法、コンパクトディスクＲＯＭ（ＣＤ-ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）又は他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は希望の情報を記憶するのに使用される任意の他の媒体を含む。
【００２３】
[0031]通信媒体は、搬送波又は他のトランスポート機構の如き変調データ信号におけるコンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを実施することができ、任意の情報配信媒体を含む。用語「変調データ信号」は、信号のもつ諸特性のうちの１つ以上のものが、その信号における情報をエンコードするような仕方にて設定され又は変更されているような信号を意味している。一例として、これに限定するものではないが、通信媒体は、ワイヤードネットワーク又はダイレクトワイヤード接続の如きワイヤード媒体、及び音響、無線周波数（ＲＦ）、赤外線及び他のワイヤレス媒体の如きワイヤード媒体を含む。前述したものの任意のものの組合せも、コンピュータ読み取り可能な媒体の範囲内に含まれるものである。
【００２４】
[0032]以下の説明において、そうではないと言わない限り、「デコーダ」は、デコーディング及びデブロッキングの両方を行う要素（例えば、スタンドアロン又は周辺装置又は統合システム）を指している。「デコーディング」は、そうではないと言わない限り、基本デコーディング動作（例えば、可変長デコーディング、逆量子化、逆変換及びモーション補償）を指しており、一方、「デブロッキング」は、デコーディング結果に対してデブロックフィルタを適用することを指している。「ブロック」は、ピクセルのアレイ（例えば、ＮｘＮアレイ）を指している。用語「ピクセル」は、２次元スクリーンスペースにおける位置を指しており、一方、用語「ピクセル値」は、ピクセルに関連したデータ（例えば、ルマ値、クロマ値等）を指している。
【００２５】
[0033]図１は、本発明によるデコーダを実施することができるシステム１０の一例のブロック図である。図１の実施形態では、このシステムは、バス１５を介してグラフィック処理装置（ＧＰＵ）１２に結合されたホスト中央処理装置（ＣＰＵ）１１を含む。このＧＰＵは、媒体処理装置（ＭＰＵ）とも称される。
【００２６】
[0034]これらＣＰＵ及びＧＰＵは、共に、メモリ１４に結合されている。図１の実施形態では、そのメモリは、共有メモリであり、このメモリは、ＣＰＵ及びＧＰＵの両方のための命令及びデータを記憶する。別の仕方として、ＣＰＵ及びＧＰＵのそれぞれに専用の別々のメモリを設けることができる。このメモリは、結合されるディスプレイ（スクリーン）１３を駆動するピクセルデータを記憶するためのビデオバッファを含むこともできる。
【００２７】
[0035]このシステム１０は、１つの実施では、オンスクリーンカーソル制御装置を含むユーザーインターフェース１６をも含む。このユーザーインターフェースは、キーボード、マウス及び／又はタッチスクリーン装置（タッチパッド）を含むことができる。
【００２８】
[0036]一般的に言うと、このシステム１０は、本発明の実施形態による機能を実施するコンピュータシステムプラットフォームの基本構成部分を含む。このシステム１０は、例えば、多数の異なるタイプのコンピュータシステム（例えば、サーバー、ラップトップ、デスクトップ及びノートブック）のうちの任意のもの、並びに、セットトップボックス又はデジタルテレビジョンの如き家庭用娯楽システム（例えば、ＤＶＤプレーヤー）、又は携帯用又は手持ち型電子装置（例えば、携帯電話、携帯情報端末又は手持ち型ゲーム装置）として実施される。
【００２９】
[0037]図２は、本発明の１つの実施形態によるデコーダ２０の要素を示すブロック図である。一般に、このデコーダは、エンコードされたビットストリーム２１を受け取り、そのビットストリームにおけるデータをデコードし、表示可能な画像データ２４を生成する。
【００３０】
[0038]１つの実施形態では、生の画像データ（例えば、ビデオデータ）は、エムペグフォー（ＭＰＥＧ−４）パート１０又はＭＰＥＧ−４アドバンスドビデオコーディング（ＡＶＣ）としても知られている、Ｈ.２６４の如き圧縮スキームを使用して圧縮（エンコード）される。従って、これらに限定されないが、フレームタイプ（例えば、イントラコードＩ−フレーム、予測Ｐ−フレーム又は双予測Ｂ−フレーム）、マクロブロック予測モード（例えば、インターブロック対イントラブロック）、変換（例えば、離散コサイン変換）係数、テクスチャ係数及びモーションベクトル情報の如きエンコーディングパラメータのセットが生成される。それから、これらエンコーディングパラメータは、例えば、ハフマンコーディングを使用して、可変長コード（ＶＬＣ）へと変換される。そのエンコードされたビットストリームは、そのＶＬＣを含む直列化ビットストリームである。
【００３１】
[0039]デコーダは、本質的には、画像データを再構成するように、エンコーディング処理の逆を行うものである。図２の実施形態では、デコーダは、デコーディングステージ２２及びデブロッキングステージ２３を含むデコーディングパイプライン２６を含む。
【００３２】
[0040]デコーディングステージは、可変長デコーディング、逆量子化、逆変換及びモーション補償の如き基本デコーディング（解凍）動作を行う。一般的に、デコーディングステージは、ＶＬＣを抽出するためエンコーダされたビットストリームを構文解析し、それから、前述したエンコーディングパラメータを再生するようにそのＶＬＣを変換する。次いで、それらエンコーディングパラメータは、元のビデオデータを再構成するのに使用される（より特定すると、元のビデオデータのある変形が構成される）。
【００３３】
[0041]デブロッキングステージにおいては、再構成された画像がレンダリングされる（表示される）ときに、隣接ブロックの間の境界を滑らかなものとするため、デジタルデブロックフィルタが、デコードされるブロックに適用される。図２の実施形態では、デブロッキングステージは、デコーディングステージにおいて行われるデコーディングのタイプとは無関係であり、従って、ループ外デブロッカーとして類別することができる。
【００３４】
[0042]図３は、本発明の一実施形態によるコンピュータ実施デブロッキング方法の概観を与えるフローチャート３０である。ステップ３１において、図４も参照するに、第１のブロックＢ０及び第２のブロックＢ１に対するデコードされるデータ（ピクセル値）にアクセスする。１つの実施形態では、ここで説明しようとしているデブロッキング方法に対しては、計算の数及び複雑さを減少させるために、ルマ平面のみが使用される。主観テストによれば、ブロッキングアーチファクトの知覚に関しては、クロマ値は、ルマ値程には重要ではなく、従って、デブロックフィルタリングの強度を確立するのに、ルマ値のみを使用することができることが示されている。しかしながら、本発明は、ルマ値のみを使用することに限定されない。
【００３５】
[0043]図３のステップ３２において、ブロックＢ０及びＢ１の各々について、「アーチファクトカウント」が決定される。一般的に言って、アーチファクトカウントは、各ブロックに関連したブロッキングアーチファクトの数の尺度である。更なる情報については、図４の説明に関連して与えられる。
【００３６】
[0044]図３のステップ３３において、ブロックＢ０及びＢ１の各々について、「アクティビティ」が決定される。一般的に言って、アクティビティは、ブロック内のピクセル値の偏差の尺度である。更なる情報については、図６の（Ａ）及び（Ｂ）の説明に関連して与えられる。
【００３７】
[0045]図３のステップ３４において、フィルタバンクからデブロックフィルタを選択するのに、両ブロックについてのアーチファクトカウント及びアクティビティが一緒に使用される。より特定すると、１つの実施形態では、第１のブロックについての第１の値Ｎ０が、第１のブロックについてのアーチファクトカウント及びアーチファクトに基づいて計算され、同様にして、第２のブロックについての第２の値Ｎ１が計算される。これら値Ｎ０及びＮ１は、インデックス値Ｎを設定するのに使用され、そのインデックス値は、次いで、フィルタバンクからデブロックフィルタを選択するのに使用される。更なる情報については、図７の説明に関連して与えられる。
【００３８】
[0046]図３のステップ３５において、アーチファクトカウント及びアクティビティは、選択されたデブロックフィルタが適用されるべきブロックＢ０及びＢ１におけるピクセル値の数を選択するための基礎としても使用される。より特定すると、１つの実施形態では、値Ｎ０及びＮ１は、ブロックＢ０及びＢ１の境界に亘って延長し且つ選択されたデブロックフィルタが適用されるべきピクセルの数を定める「対象領域」を特定するのに使用される。更なる情報については、図７の説明に関連して与えられる。
【００３９】
[0047]図３のステップ３６において、選択されたデブロックフィルタは、対象領域に対してブロックＢ０及びＢ１の間の境界に亘って適用される。即ち、選択されたデブロックフィルタは、それらブロックの各々における対応する数の新しい（変更された）ピクセル値を生成するように、ブロックＢ０における特定された数のピクセル値及びブロックＢ１における特定された数のピクセル値に対して適用される。更なる情報については、図７の説明に関連して与えられる。
【００４０】
[0048]１つの実施形態では、前述したような方法が２つのパス、即ち、垂直境界が処理される水平パス及び水平境界が処理される垂直パスにおいて、画像フレームにおけるブロックの全ての水平境界及び垂直境界に対して適用される。これら２つのパスは、順次行われ、この場合には、第１のパスの結果（変更されたピクセル値）は、記憶されて、第２のパスのための入力として使用される。
【００４１】
アーチファクトカウント
[0049]ここで図４を参照するに、画像フレーム４０は、ブロックＢ０及びＢ１を含むブロックのアレイを含む。このフレーム４０は、あるビデオにおけるように、このようなフレームのシーケンスにおける１つのフレームであってよい。
【００４２】
[0050]図４においては、８つ（８）のブロックのみが表されているが、実際には、画像フレームは、このような多数のブロックを含むものである。ブロックＢ０及びＢ１は、互いに隣接しており、即ち、ブロックＢ０及びＢ１は、エッジ又は境界４１を共有している。ブロックＢ１に加えて、ブロックＢ０に隣接する多数の他のブロックがあり、同様に、ブロックＢ０に加えて、ブロックＢ１に隣接する多数の他のブロックがある。
【００４３】
[0051]図４の実施形態例では、各ブロックは、８ｘ８のピクセルのアレイを含む。しかしながら、本発明は、これに限定されるものでなく、他のブロックサイズでも使用できるものである。ここでの説明のため、ブロック境界は、ピクセルの間に入るものとして定義されていることに注意されたい。ピクセルの全てが図４に例示されているのではなく、ブロックＢ０及びＢ１の境界に隣接するピクセルのみが示されている。
【００４４】
[0052]前述したように、本発明の一実施形態によれば、画像フレームにおけるブロックの各々に対して、アーチファクトカウントが決定される。一般的に言って、１つのブロックに対するアーチファクトカウントは、そのブロックと隣接ブロック（その対象ブロックとエッジを共有する４つのブロック）との間の境界に亘る選択されたピクセル値（例えば、ルマ値）の間の差をしきい値処理することにより、決定される。各ブロックに対する測定は、そのブロックの境界の４つ全てに亘って行われる。ブロック当たりのアーチファクトカウントは、記憶され、その後、デブロックフィルタを選択し且つそのフィルタが適用されるピクセルの数を選択するのに、アクティビティ尺度と共に使用される。
【００４５】
[0053]より特定すると、１つの実施形態では、隣接ピクセルの各対について、ピクセル値の減算がなされ、ここで、各対は、ブロック境界の一方の側の１つのピクセルと、そのブロック境界の他方の側の直ぐ隣接するピクセルとからなるものである。ブロックＢ０及びＢ１を例として使用すると、ピクセルｐ０に対するピクセル値とピクセルｑ０に対するピクセル値との間の減算がなされる。同様に、ピクセルｐ１に対するピクセル値とピクセルｑ１に対するピクセル値との間の減算がなされ、そして、ブロックＢ０の４つのエッジの各々の周りについて全てそのような減算がなされる。即ち、ブロックＢ０に対するアーチファクトカウントは、ブロックＢ０とブロックＢ１との間の境界、ブロックＢ０とブロックＢ２との間の境界、ブロックＢ０とブロックＢ３との間の境界及びブロックＢ０とブロックＢ４との間の境界に亘るピクセル値の差に基づいている。
【００４６】
[0054]このような処理は、ブロックＢ１の４つのエッジの各々に沿う各ピクセルに対して繰り返され、最終的には、そのフレームにおける各ブロックに対して繰り返される。２つのピクセル値の間の差の絶対値は、その差が常に正の数であるように、使用される。
【００４７】
[0055]従って、任意のブロックＢＮに対して、
diff（ＢＮ,ｉ）＝
｜[ｐ（ｉ）に対するピクセル値]−[ｑ（ｉ）に対するピクセル値]｜  （１）
ここで、ピクセルｐ（ｉ）は、ブロックＢＮのエッジに位置しており、ｑ（ｉ）は、ピクセルｐ（ｉ）からのブロック境界に亘る、直ぐそれに隣接したピクセルである。隅部のピクセルに対するピクセル値は、水平パスにおいて１回、垂直パスにおいて１回の合計２回使用される。従って、図４の実施形態では、ｉ＝１,２，………,３２である。
【００４８】
[0056]１つの実施形態では、図５を参照するに、差diff（ＢＮ,ｉ）の各々は、それから、第１のしきい値thr１及び第２のしきい値thr２の両者と比較され、ここでは、第２のしきい値は、第１のしきい値より大きい。このような実施形態では、第２のしきい値は、第１のしきい値の定数倍であり、即ち、thr２＝ｎ＊thr１であり、ここで、ｎ＞１である。従って、もし、第１のしきい値が増大される場合には、第２のしきい値も増大される。第１のしきい値と第２のしきい値との間のこのような関係のため、第１のしきい値と第２のしきい値との間の範囲は、第１のしきい値が増大される場合には、増大される。
【００４９】
[0057]これらブロックの各々に、カウンタが関連付けられており、例えば、第１のカウンタがブロックＢ０に関連付けられており、第２のカウンタがブロックＢ１に関連付けられている。図５の実施形態では、「ｉ」の各値に対して、もし、diff（ＢＮ,ｉ）の値が第１のしきい値thr１以上である場合には、ブロックＢＮに関連付けられたカウンタは増分される（例えば、１の値だけ増大される）。もし、diff（ＢＮ,ｉ）の値が第１のしきい値thr１より小さい場合には、ブロックＢＮに関連付けられたカウンタは、diff（ＢＮ,ｉ）とthr１との比だけ増大される。もし、diff（ＢＮ,ｉ）の値が第２のしきい値thr２以上である場合には、ブロックＢＮに関連付けられたカウンタは再び増分される（例えば、更に１の値だけ増大される）。もし、diff（ＢＮ,ｉ）の値が第２のしきい値thr２より小さいが第１のしきい値thr１より大きい場合には、ブロックＢＮに関連付けられたカウンタは、diff（ＢＮ,ｉ）とthr２との比だけ増大される。この実施形態では、カウンタ値は、第２のしきい値thr２が越えられるとしても、２より多い増分だけ増大されることはないことに注意されたい。
【００５０】
[0058]従って、例えば、ブロックＢ０に対して、
Artifactcount（Ｂ０,ｉ）＝
min（１，[diff（Ｂ０,ｉ）/thr１]）＋min[１，diff（Ｂ０,ｉ）/thr２]）  （２）
Artifactcount Ｂ０＝Σ（Artifact count（Ｂ０,ｉ））  （３）
ここで、Artifact count（Ｂ０,ｉ）は、ブロックＢ０に対するカウンタ値がdiff（Ｂ０,ｉ）の各値に対して増大される量であり、Artifact count Ｂ０は、ブロックＢ０に対するカウンタの最終値である。このようにして、ブロックＢ０に対するアーチファクトカウントが累積され、同様にして、ブロックＢ１及びフレームにおける各ブロックに対してアーチファクトカウントが累積される。
【００５１】
[0059]ブロッキングアーチファクトに対する可視感度をより良く評価するため、２つの別々のしきい値が使用される。もし、例えば、あるブロック境界に亘るピクセル値の差が相当に大きく、且つ、もし、そのブロック境界を取り巻く区域が比較的に低い周波数のコンテンツ（低アクティビティ）を有する場合には、そのアーチファクトは、より可視的に気になるものとなろう。このような情況においては、その境界でのブロックエッジは、そのアーチファクトを許容できる程度まで減少させるため、増大長さ（より多くのタップ）を有する強いローパスフィルタを使用すると、より良好に処理されるであろう。こうするために、両しきい値を越えるに十分に大きな各差は、そのカウンタ値に加えられる増分量を２倍とする。もし、アクティビティが低い場合には、増大したローパスフィルタリング能力を有する強いフィルタを選択することで、その代わりとすることができる。
【００５２】
[0060]１つの実施形態では、しきい値は、ユーザーにより制御される。即ち、ユーザーは、例えば、第１のしきい値thr１を特定することができる。何故ならば、第２のしきい値thr２は、第１のしきい値の倍数であり、第２のしきい値もまた、ある意味では、ユーザーにより制御される値であるからである。フィルタの強度は、しきい値thr１を減少することにより増大され、また、その逆とすることもできる。従って、ユーザーは、例えば、自分の個人的好み又はユーザーの装置の表示能力に基づいて、デブロックフィルタリングの強度を確立することができる。ループ外デブロッキングはデコーディングとは無関係であるので、デコードされたコンテンツの同じインスタンスを、一方では、より大きなスクリーンサイズ又はより高い解像度のディスプレイのためにフィルタリングすることができ、また、他方では、より小さなスクリーンサイズ又はより低い解像度のディスプレイのためにフィルタリングすることができる。
【００５３】
[0061]１つの実施においては、ユーザーには、そのユーザーが任意の値の範囲内（例えば、０から１００まで）に位置させることのできるスライダーの如きグラフィックユーザーインターフェース（ＧＵＩ）が与えられる。従って、ユーザーは、必ずしも特定のデブロックフィルタを選択する必要がなく、その代わりに、ユーザーにとって満足な画像品質に対応するセッティングを選択することができ、そして、そのセッティングは、希望の画像品質を生じさせるようなデブロックフィルタにマッピングされているものである。従って、そのＧＵＩは、フィルタバンクにおけるフィルタの数とは無関係であり、異なるタイプのＧＰＵに対する本発明のスケーラビリティを容易なものとしている。
【００５４】
アクティビティの計算
[0062]図６の（Ａ）は、２つの隣接するブロックＢ０及びＢ１及びブロックＢ０におけるピクセルｐ０、ｐ１、………、ｐ７の行を例示しており、一方、図６の（Ｂ）は、これらのピクセルの相対値の一例を例示している。これらの例は、行当たり８つのピクセルを示しているが、本発明は、これに限定されるものではない。
【００５５】
[0063]前述したように、本発明の一実施形態によれば、アクティビティの尺度は、これらブロックの各々に対して決定される。より特定すると、１つの実施形態では、アクティビティの尺度は、各ブロックの各行及び各ブロックの各列に対して決定される。
【００５６】
[0064]一般に、アクティビティは、選択されたピクセル値から導出された中間値からのそれら選択されたピクセル値の偏差の関数として決定される。特に、１つの実施形態では、その中間値は、選択されたピクセル値の重み付け平均である。このような１つの実施形態では、選択されたピクセル値の各々とその重み付け平均との間の差もまた重み付けされる。従って、１つの実施形態では、アクティビティは、選択されたピクセル値の重み付け平均からのそれら選択されたピクセル値の偏差の重み付け関数として決定される。
【００５７】
[0065]前述したように、デブロックフィルタリングは、２つのパス、即ち、水平パスと垂直パスとを使用して達成される。水平パス中では、ピクセルの各行が処理され、即ち、前述した選択されたピクセル値は、ピクセルの行に対応している。垂直パス中では、ピクセルの各列が処理され、即ち、前述した選択されたピクセル値は、ピクセルの列に対応している。
【００５８】
[0066]１つの実施形態では、ピクセルｐ０、ｐ１、………、ｐ７の重み付け平均（ＷＭ）は、次のように決定される。
ＷＭ＝（ｗ０＊ｐ０＋ｗ１＊ｐ１＋………＋ｗ７＊ｐ７）＞＞５    （４）
ここで、ｗ０、ｗ１、……ｗ７は、ｗ０＞ｗ１＞……＞ｗ７及びｗ０＋ｗ１＋……＋ｗ７＝３２であるように選択された重みであり、また、表現を簡単化するため、ｐ０、ｐ１、………、ｐ７は、ピクセル値を表している。一般に、重み付けファクタは、ピクセルが対象境界に近い程より大きくなる。従って、図６の（Ａ）の例では、ピクセルｐ０がブロックＢ０及びブロックＢ１の間の境界により近いので、そのピクセルは、他のピクセルより大きく重み付けされ、以下同様とされる。
【００５９】
[0067]１つの実施形態では、ピクセルｐ０、ｐ１、………、ｐ７に関連するアクティビティは、次のように決定される。
アクティビティ＝ａ＊（ｐ０−ＷＭ）＋ｂ＊（ｐ１−ＷＭ）＋ｃ＊（ｐ２−ＷＭ）
＋ｄ＊（ｐ３−ＷＭ）＋ｅ＊（ｐ４−ＷＭ）＋ｆ＊（ｐ５−ＷＭ）
＋ｇ＊（ｐ６−ＷＭ）＋ｈ＊（ｐ７−ＷＭ）      （５）
ここで、ａ、ｂ、……、ｈは、ａ＞ｂ＞……＞ｈである固定重みである。前述したのと同様に、これら重み付けファクタは、ピクセルが対象境界に近い程より大きくなる。この実施形態では、それら重みは、ブロック境界からのピクセルのマンハッタン距離が増大するにつれて減少する、重み付け平均からの偏差の関連性を示唆するのに使用される。
【００６０】
フィルタ及び対象領域の選択
[0068]この点を要約するに、前述した実施形態によれば、アーチファクトカウントは、各ブロックに対して決定され、アクティビティは、各ブロックの各行及び各列に対して決定される。この情報は、メモリに記憶されたフィルタバンクからデブロックフィルタを選択するのに、且つその選択されたフィルタが適用されるべきピクセルの数（対象領域）を識別するのに使用することができる。
【００６１】
[0069]１つの実施形態では、ブロック当たりのアーチファクトカウント及び行又は列当たりのアクティビティは、第１のブロック（例えば、ブロックＢ０）の各行及び各列に対する第１の値Ｎ０及び第２のブロック（例えば、ブロックＢ１）の各行及び各列に対する第２の値Ｎ１を決定するのに使用される。説明を簡単とするため、ブロックＢ０の単一行及びブロックＢ１の対応する行について、以下説明する。
【００６２】
[0070]図７は、ブロックＢ０の行Ｒ０及びブロックＢ１の対応する行Ｒ１を例示しており、即ち、行Ｒ０及び行Ｒ１は、同じ水平ラインに沿って存在しているものである。
【００６３】
[0071]行Ｒ０に対する第１の値Ｎ０は、次のように決定される。
Ｎ０＝exp（-[Activity Ｒ０]/[Artifact count Ｂ０））    （６）
ここで、Activity Ｒ０は、行Ｒ０に関連したアクティビティを表しており、Artifact count Ｂ０は、ブロックＢ０に対するアーチファクトカウントを表している。同様に、第２の値Ｎ１は、次のように決定される。
Ｎ１＝exp（-[Activity Ｒ１]/[Artifact count Ｂ１））    （７）
【００６４】
[0072]値Ｎ０及びＮ１は、アーチファクトカウントに比例していることに注意されたい。他方、値Ｎ０及びＮ１は、ブロック境界に亘るアクティビティに逆比例している。
【００６５】
[0073]本発明の実施形態によれば、値Ｎ０及びＮ１のうちの１つが、予め選択されたフィルタのバンクからデブロックフィルタを選択するのに使用される。１つの実施形態では、値Ｎ０及びＮ１のうちの最小のものが、フィルタバンクからデブロックフィルタを選択するのに使用される。Ｎ０及びＮ１のうちの最小のものを使用することにより、画像ディテールの連続性を保証することができる。即ち、Ｎ０及びＮ１のうちの最小のものを使用することにより、選択されたフィルタは、最大値の方を使用したとした場合に選択されたであろうフィルタよりも弱いものとなる。従って、この実施形態では、ブロッキングアーチファクトの除去よりも、画像ディテールの方が重んじられることとなる。しかしながら、もし、アーチファクトの除去をより重要であると考える場合には、それに代えて、Ｎ０及びＮ１のうちの最大のものを使用することができる。
【００６６】
[0074]１つの実施形態では、フィルタバンクは、異なる強度の７つ（７）のフィルタを含む。異なる強度のフィルタを有するフィルタバンクを使用することにより、固定フィルタリング及びフィルタリング判断の間のハードスイッチングに伴う欠点を排除することができる。
【００６７】
[0075]１つの実施では、フィルタバンクは、次のようなフィルタ（Ｈ）を含み、ここで、インデックスＮ＝０,１,……,６である。
表１−典型的なフィルタバンク
Ｈ[Ｎ]＝｛０    ０    ０    ０  １２８    ０    ０    ０    ０｝
｛０    ０    ０  ２６    ７６  ２６    ０    ０    ０｝
｛０    ０  −５  ４２    ５４  ４２  −５    ０    ０｝
｛０    １    ７  ３３    ４６  ３３    ７    １    ０｝
｛−２  ２  １５  ３０    ３８  ３０  １５    ２  −２｝
｛８    ８  １６  １６    ３２  １６  １６    ８    ８｝
｛８  １６  １６  １６    １６  １６  １６  １６    ８｝
【００６８】
[0076]前述の例では、フィルタバンクにおけるフィルタは、インデックスＮの値が（より高いアーチファクトカウントに対するように）増大するにつれて、そのフィルタの強度が増大するような順序に配列されている。表１におけるフィルタ係数は例である。異なる仕様を有する異なるフィルタを設計し使用することもできる。
【００６９】
[0077]前述したように、値Ｎ０及びＮ１は、アーチファクトカウントに比例している。前述したように２つのしきい値thr１及びthr２を使用する場合には、アーチファクトカウントは、ブロック境界に亘るピクセル値の間の差が比較的に大きいときには、２倍増分される。従って、もしアーチファクトカウントのみを考慮する（即ち、アクティビティを無視する）場合には、アーチファクトカウントが高い程、Ｎ０及びＮ１の値がより高くなり、それにより、ローパスフィルタリングがより強くなり、ブロッキングアーチファクトをより効果的に排除又は減少させることになる。他方では、値Ｎ０及びＮ１は、ブロック境界に亘るアクティビティに逆比例している。従って、もしアクティビティのみを考慮する（即ち、アーチファクトカウントを無視する）場合には、アクティビティが高い程、Ｎ０及びＮ１の値がより低くなり、それにより、ローパスフィルタリングがより弱くなり、ブロック境界に隣接する区域におけるディテールが失われないようにすることができる。
【００７０】
[0078]１つの実施形態では、Ｎ０及びＮ１のうちの選択された値（例えば、最小のもの）は、最も近い整数へと丸められ、フィルタの１つを選択するためのインデックスＮとして使用される。即ち、Ｎ＝min（Ｎ０,Ｎ１）である。  例えば、もし、Ｎ０及びＮ１が、それぞれ３及び４であることが見出される場合には、Ｎは、３であり、次のフィルタが対象領域に対して適用される。
Ｈ[３]＝{０  １  ７  ３３  ４６  ３３  ７  １  ０}
【００７１】
[0079]Ｎ０及びＮ１の値は、対象領域（選択されたフィルタが適用されるピクセルの数）を定めるのにも使用される。一般に、選択されたフィルタは、ブロックＢ０におけるＮ０個のピクセル及びブロックＢ１におけるＮ１個のピクセルに対して適用される。従って、前述の例では、図７に示されるように、フィルタＨ[３]は、ブロックＢ０における３つのピクセル及びブロックＢ１における４つのピクセルに対して適用される。対象領域は、ブロック境界の各側において異なる数のピクセルを含むことができ、従って、対象領域に対して相当程度の融通性が与えられることに注意されたい。
【００７２】
[0080]本発明による実施形態は、フィルタバンクに７個のフィルタを含むことに限定されない。計算の複雑さを減少させるため、フィルタバンクのフィルタの個数をより少なくすることができる。前述の表で示したような典型的なフィルタよりもより少ないタップを使用しているようなフィルタを使用することもできる。例えば、ロアーエンド又はベースラインＧＰＵに使用するため、多分より少ないタップを有するより少ない数のフィルタを選択することができる。このようにして、ＧＰＵの処理能力に従って異なるＧＰＵ実施を支援するため、フィルタリングの全体の複雑さをスケーラブルなものとすることができる。
【００７３】
[0081]フィルタバンクは、８個以上のフィルタを含むこともできる。フィルタバンクにおけるフィルタの数は、フィルタ及び対象領域の両方を選択するため同じ数Ｎを使用しない実施において増大することができる。例えば、ここで前述したように、Ｎ０及びＮ１の値は、対象領域を定める目的で最も近い整数へと丸めることができるのであるが、それらの実際の値を使用して、８個以上のエントリを含むフィルタバンクを割り出すようにすることもできる。
【００７４】
[0082]Ｎ０及びＮ１の計算される値を、行又は列におけるピクセルの数より大きく、また、Ｎの値及びフィルタバンクにおけるフィルタの数を、行又は列におけるピクセルの数より大きくすることもできることに注意されたい。このような実施においては、対象領域のサイズを決定するため、Ｎ０及びＮ１の値を、行又は列におけるピクセルの数に対応する値へ規制する（例えば、縮小又は拡張する）ことができ、また、フィルタバンクからフィルタを選択するため、スケーラブルでない値を使用することができ、また、必要であるならば、対象領域のサイズを決定するのに使用されるものと同じ又は異なるスケーリングファクタを使用して、それら値をスケーラブルとすることもできる。
【００７５】
[0083]図８は、本発明の一実施形態によるデータを処理するためのコンピュータ実施方法の一例のフローチャート８０である。ステップ８１において、ピクセルの第１のブロック（ブロックＢ０）に対する第１の値（Ｎ０）及びピクセルの第２のブロック（ブロックＢ１）に対する第２の値（Ｎ１）が計算される。第１の値Ｎ０は、ブロックＢ０に対する選択されたピクセル値とブロックＢ１を含むブロックＢ０に隣接するブロックに対する選択されたピクセル値との間の差の尺度に基づく。１つの実施形態では、これらの差は、各々がブロックＢ０におけるピクセル及び隣接ブロックにおける隣接ピクセルに関連した対である隣接ピクセル対に対するピクセル値の減算により得られる（前述の式（１）におけるように）。このような１つの実施形態では、ブロックＢ０に関連したカウンタ値は、これらの差の各々が第１のしきい値（例えば、しきい値thr１）を越える毎に増分され、また、これらの差の各々が第２のしきい値（例えば、しきい値thr２）を越える毎に再び増分される。カウンタ値は、もし、これらの差が第１のしきい値より小さいく又は第１のしきい値と第２のしきい値との間に入る場合には、ある同等量だけ増大されもすることができる（前述の式（２）におけるように）。一般的に言って、第１の値Ｎ０は、ブロックＢ０に対するアーチファクトカウントに基づく。
【００７６】
[0084]第１の値Ｎ０は、ブロックＢ０に対するピクセル値のサブセット（例えば、行Ｒ０）における偏差の尺度にも基づく。１つの実施形態では、このピクセル値のサブセット（行Ｒ０）に対して重み付け平均が計算され、それから、このサブセットにおける各ピクセル値とその重み付け平均との間の差が決定される。このような１つの実施形態では、これらピクセル値と重み付け平均との間の差も重み付けされる（前述の式（５）におけるように）。一般的に言って、第１の値Ｎ０は、ブロックＢ０内のアクティビティにも基づく。
【００７７】
[0085]第２の値Ｎ１は、同様に、ブロックＢ１に対するアーチファクトカウント及びブロックＢ１内のアクティビティに基づく。
【００７８】
[0086]ステップ８２において、第１の値Ｎ０及び第２の値Ｎ１のうちの１つ（Ｎ０又はＮ１）が、フィルタバンク（例えば、表１）からデジタルデブロックフィルタ（Ｈ）を選択するためのインデックス（Ｎ）として使用される。
【００７９】
[0087]ステップ８３において、第１の値Ｎ０及び第２の値Ｎ１が、選択されたデブロックフィルタを適用すべきピクセル値の数（例えば、ブロックＢ０の行Ｒ０及びブロックＢ１の対応する行におけるピクセルの数）を特定するのに使用される。即ち、第１の値Ｎ０及び第２の値Ｎ１は、対象領域（前述の図７の例におけるように）を定めるのに使用される。
【００８０】
[0088]図８のステップ８４において、選択されたデブロックフィルタが、ブロックＢ０におけるピクセル値及びブロックＢ１におけるピクセル値に適用され、新しいピクセル値が生成される。即ち、選択されたデブロックフィルタは、ブロッキングアーチファクトを排除又は減少させるため、対象領域に適用される。
【００８１】
[0089]要するに、本発明の実施形態によれば、ブロッキングアーチファクトの処理と、満足なレベルのディテールの維持との間の許容できるバランスを取り決めるデブロックフィルタが選択される。更に、選択されたデブロックフィルタが適用されるべきピクセルの数を、画像ディテールのオーバーフィルタリングを避けるため、適当に決定することができる。その上、本発明によるデブロックフィルタリングは、適応性があり（例えば、ブロック当たりのアーチファクトカウント及びアクティビティにより測定されるようなピクセル値の品質に対して）、スケーラブルであり（例えば、グラフィックカードの能力に対して）、ユーザーが制御できるものであり、且つ広範囲に亘るビデオ品質及び低ビットレートビデオ（例えば、インターネットビデオ）の増強の如きアプリケーションに対して十分に適合できるものである。
【００８２】
[0090]本発明の特定の実施形態の前述の説明は、例示のための説明として提示されたものである。これら説明は、これが全てであるというものでなく、また、本発明を、ここで開示した形そのものに限定しようとするものでなく、前述したことを考慮するならば、多くの変更及び変形が可能であるものである。これら実施形態は、本発明の原理及びその実際の応用について最良な説明をなし、それにより、他の当業者が、本発明及び種々な実施形態を、意図するような特定の用途に適合するように種々な変更を加えて最良に利用できるようにするために、選択され説明されているのである。本発明の範囲は、特許請求の範囲及びそれらの均等物により定められるものとせんとするものである。
【符号の説明】
【００８３】
１０・・・システム、１１・・・ホスト中央処理装置（ＣＰＵ）、１２・・・グラフィック処理装置（ＧＰＵ）、１３・・・ディスプレイ（スクリーン）、１４・・・メモリ、１５・・・バス、１６・・・ユーザーインターフェース、２０・・・デコーダ、２１・・・エンコードされたビットストリーム、２２・・・デコーディングステージ、２３・・・デブロッキングステージ、２４・・・表示可能な画像データ、２６・・・デコーディングパイプライン、３０・・・フローチャート、４０・・・画像フレーム、４１・・・エッジ又は境界、８０・・・フローチャート、Ｂ０〜Ｂ４、ＢＮ・・・ブロック、ｐ０〜ｐ７・・・ピクセル、ｑ０〜ｑ７・・・ピクセル、Ｒ０、Ｒ１・・・行、Ｎ０・・・第１の値、Ｎ１・・・第２の値、Ｎ・・・インデックス、ＷＭ・・・重み付け平均、ｗ０〜ｗ７・・・重み
【図１】
2010141883.tif 000003
【図２】
2010141883.tif 000004
【図３】
2010141883.tif 000005
【図４】
2010141883.tif 000006
【図５】
2010141883.tif 000007
【図６】
2010141883.tif 000008
【図７】
2010141883.tif 000009
【図８】
2010141883.tif 000010
【外国語明細書】
2010141883000001.pdf