(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
ピクセルのセットの中心値を決定することであって、前記中心値が前記ピクセルの値に基づく、決定することと、
前記中心値に基づいて、ピクセル値の帯域を帯域の２つ以上のグループに分割することであって、ピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備える、分割することと、
前記帯域の２つ以上のグループに基づいて、前記帯域に対するオフセット値を決定することとを備える、方法。
【請求項２】
前記中心値を決定することがシンタックス要素を受信することを備え、ピクセル値の前記帯域を帯域の２つ以上のグループに分割することが前記シンタックス要素に基づいて帯域の前記２つ以上のグループを決定することを備える、請求項１に記載の方法であって、前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用することをさらに備える、方法。
【請求項３】
ビデオデータを符号化するための方法であって、
ピクセルのセットの中心値を決定することであって、前記中心値が前記ピクセルの値に基づく、決定することと、
前記中心値に基づいて、ピクセル値の帯域を帯域の２つ以上のグループに分割することであって、ピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備える、分割することと、
前記帯域の２つ以上のグループに基づいて、前記帯域に対するオフセット値を決定することと、
符号化されたビットストリームに含めるためのシンタックス要素を生成することと
を備え、前記シンタックス要素が前記中心値を示す、方法。
【請求項４】
前記中心値を決定することが、ピクセルの前記セットの平均値を決定することを備える、請求項１または３に記載の方法。
【請求項５】
前記中心値を決定することが、ピクセルの前記セットの中央値を決定することを備える、請求項１または３に記載の方法。
【請求項６】
ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、請求項１または３に記載の方法。
【請求項７】
前記帯域の２つ以上のグループに基づいて前記帯域に対するオフセット値を決定することが、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成することを備える、請求項１または３に記載の方法。
【請求項８】
前記帯域の２つ以上のグループに基づいて前記帯域に対するオフセット値を決定することが、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することを備える、請求項１または３に記載の方法。
【請求項９】
ビデオ復号デバイスであって、前記ビデオ復号デバイスが、
ビデオデータを記憶するメモリと、
前記ビデオデータのピクセルのセットの中心値を決定し、このとき前記中心値が前記ピクセルの値に基づき、さらに、前記中心値に基づいてピクセル値の帯域を帯域の２つ以上のグループに分割し、このときピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備え、さらに、前記帯域の２つ以上のグループに基づいて前記帯域に対するオフセット値を決定するように構成された１つまたは複数のプロセッサを備えるビデオデコーダと、
を備える、デバイス。
【請求項１０】
前記１つまたは複数のプロセッサは、
シンタックス要素を受信することによって前記中心値を決定し、
前記シンタックス要素に基づいて帯域の２つ以上のグループを決定することによって、ピクセル値の前記帯域を帯域の前記２つ以上のグループに分割し、
前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用する
ようにさらに構成される、請求項９に記載のデバイス。
【請求項１１】
ビデオ符号化デバイスであって、
ビデオデータを記憶するメモリと、
ピクセルのセットの中心値を決定し、このとき前記中心値が前記ピクセルの値に基づき、さらに、前記中心値に基づいてピクセル値の帯域を帯域の２つ以上のグループに分割し、このときピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備え、さらに、前記帯域の２つ以上のグループに基づいて前記帯域に対するオフセット値を決定し、さらに、符号化されたビットストリーム中に含めるためにシンタックス要素を生成するように構成された１つまたは複数のプロセッサを備えるビデオエンコーダと、
を備え、前記シンタックス要素が前記中心値を示す、デバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、ピクセルの前記セットの平均値に基づいて前記中心値を決定するようにさらに構成される、請求項９または１１に記載のデバイス。
【請求項１３】
前記１つまたは複数のプロセッサは、ピクセルの前記セットの中央値に基づいて前記中心値を決定するようにさらに構成される、請求項９または１１に記載のデバイス。
【請求項１４】
ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、請求項９または１１に記載のデバイス。
【請求項１５】
前記１つまたは複数のプロセッサは、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成することによって、前記帯域の２つ以上のグループに基づいて前記帯域に対する前記オフセット値を決定するようにさらに構成される、請求項９または１１に記載のデバイス。
【請求項１６】
前記１つまたは複数のプロセッサは、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、前記帯域の２つ以上のグループに基づいて前記帯域に対する前記オフセット値を決定するようにさらに構成される、請求項９または１１に記載のデバイス。
【請求項１７】
前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、請求項９または１１に記載のデバイス。
【請求項１８】
１つまたは複数のプロセッサに、
ピクセルのセットの中心値を決定させ、このとき前記中心値が前記ピクセルの値に基づき、
前記中心値に基づいて、ピクセル値の帯域を帯域の２つ以上のグループへと分割させ、このときピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備え、
前記帯域の２つ以上のグループに基づいて、前記帯域に対するオフセット値を決定させるように動作可能な命令を記憶する、コンピュータ可読記憶媒体。
【請求項１９】
前記１つまたは複数のプロセッサがビデオデコーダを備え、前記命令が、前記１つまたは複数のプロセッサに、
シンタックス要素を受信することによって前記中心値を決定させ、
前記シンタックス要素に基づいて帯域の２つ以上のグループを決定することによって、ピクセル値の前記帯域を帯域の前記２つ以上のグループへと分割させ、
前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用させる、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記１つまたは複数のプロセッサがビデオデコーダを備え、前記コンピュータ可読記憶媒体が、前記１つまたは複数のプロセッサに、符号化されたビットストリーム中に含めるためにシンタックス要素を生成させるさらなる命令を記憶し、前記シンタックス要素が前記中心値を示す、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記命令が、前記１つまたは複数のプロセッサに、ピクセルの前記セットの平均値を決定することによって前記中心値を決定させる、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記命令が、前記１つまたは複数のプロセッサに、ピクセルの前記セットの中央値を決定することによって前記中心値を決定させる、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２３】
ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記命令が、前記１つまたは複数のプロセッサに、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成することによって、前記帯域の２つ以上のグループに基づいて前記帯域に対する前記オフセット値を決定させる、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記命令が、前記１つまたは複数のプロセッサに、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、前記帯域の２つ以上のグループに基づいて前記帯域に対する前記オフセット値を決定させる、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２６】
ビデオデータを復号するための装置であって、
ピクセルのセットの中心値を決定するための手段であって、前記中心値が前記ピクセルの値に基づく、手段と、
前記中心値に基づいて、ピクセル値の帯域を帯域の２つ以上のグループに分割するための手段であって、ピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備える、手段と、
前記帯域の２つ以上のグループに基づいて、前記帯域に対するオフセット値を決定するための手段とを備える、装置。
【請求項２７】
ビデオデコーダを備え、前記中心値を決定するための前記手段がシンタックス要素を受信するための手段を備え、ピクセル値の前記帯域を帯域の２つ以上のグループに分割するための前記手段が前記シンタックス要素に基づいて帯域の前記２つ以上のグループを決定するための手段を備える、請求項２６に記載の装置であって、前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用するための手段をさらに備える、装置。
【請求項２８】
ビデオデータを符号化するための装置であって、
ピクセルのセットの中心値を決定するための手段であって、前記中心値が前記ピクセルの値に基づく、手段と、
前記中心値に基づいて、ピクセル値の帯域を帯域の２つ以上のグループに分割するための手段であって、ピクセル値の前記帯域の各帯域がピクセル値のある範囲を備え、前記帯域の２つ以上のグループの各グループが１つまたは複数の帯域を備える、手段と、
前記帯域の２つ以上のグループに基づいて、前記帯域に対するオフセット値を決定するための手段と、
符号化されたビットストリームに含めるためのシンタックス要素を生成するための手段と
を備え、前記シンタックス要素が前記中心値を示す、装置。
【請求項２９】
前記中心値を決定するための前記手段が、ピクセルの前記セットの平均値を決定するための手段を備える、請求項２６または２８に記載の装置。
【請求項３０】
前記中心値を決定するための前記手段が、ピクセルの前記セットの中央値を決定するための手段を備える、請求項２６または２８に記載の装置。
【請求項３１】
ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、請求項２６または２８に記載の装置。
【請求項３２】
前記帯域の２つ以上のグループに基づいて前記帯域に対する前記オフセット値を決定するための前記手段が、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成するための手段を備える、請求項２６または２８に記載の装置。
【請求項３３】
前記帯域の２つ以上のグループに基づいて前記帯域に対する前記オフセット値を決定するための前記手段が、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成するための手段を備える、請求項２６または２８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１１年１１月４日に出願された米国仮出願第６１／５５６，０８５号の優先権を主張する。
【０００２】
本開示は全般にビデオコーディングに関し、より具体的には、ビデオコーディングプロセスにおけるサンプル適応オフセット（ＳＡＯ）フィルタリングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法のような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することにより、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶することができる。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）は、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コーディングされたブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データが、ピクセル領域から変換領域に変換されてよく、これにより残差変換係数が生じ、その残差変換係数が、次いで量子化され得る。最初は２次元アレイで構成される、量子化された変換係数は、変換係数の１次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
【発明の概要】
【０００６】
本開示は全般に、サンプル適応オフセット（ＳＡＯ）フィルタリングに関する技法を説明し、より具体的には、符号化されたビットストリーム中で、帯域ベースのＳＡＯフィルタリングのために使用される係数をシグナリングするための技法を説明する。本開示は、中心値に基づいて帯域のグルーピングを適応的に決定し、帯域に対するオフセット値をシグナリングするための決定されたグルーピングを使用するための技法を説明する。
【０００７】
一例では、ビデオデータをコーディングするための方法は、ピクセルのセットの中心値を決定することであって、中心値がピクセルの値に基づく、決定することと、中心値に基づいてピクセル値の帯域をグループに分割することと、グループに基づいて帯域に対するオフセット値を決定することとを含む。
【０００８】
別の例では、ビデオコーディングデバイスはビデオコーダを含み、このビデオコーダは、ピクセルのセットの中心値を決定し、このとき中心値がピクセルの値に基づき、さらに、中心値に基づいてピクセル値の帯域をグループに分割し、グループに基づいて帯域に対するオフセット値を決定するように構成される。
【０００９】
別の例では、コンピュータ可読記憶媒体は、１つまたは複数のプロセッサに、ピクセルのセットの中心値を決定させ、このとき中心値がピクセルの値に基づき、さらに、中心値に基づいてピクセル値の帯域をグループへと分割させ、グループに基づいて帯域に対するオフセット値を決定させる命令を記憶する。
【００１０】
別の例では、ビデオデータをコーディングするための装置は、ピクセルのセットの中心値を決定するための手段であって、中心値がピクセルの値に基づく、手段と、中心値に基づいてピクセル値の帯域をグループに分割するための手段と、グループに基づいて帯域に対するオフセット値を決定するための手段とを含む。
【図面の簡単な説明】
【００１１】
【図１】本開示で説明されるサンプル適応オフセットフィルタリング技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】エッジベースのサンプル適応オフセットフィルタリングのためのエッジオフセット分類の例を示す図。
【図３Ａ】帯域ベースのサンプル適応オフセットフィルタリングのための帯域オフセット分類のための帯域の例示的なグルーピングを示す図。
【図３Ｂ】帯域ベースのサンプル適応オフセットフィルタリングのための帯域オフセット分類のための帯域の例示的なグルーピングを示す図。
【図４】本開示で説明されるサンプル適応オフセットフィルタリング技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【図５】本開示で説明されるサンプル適応オフセットフィルタリング技法を実施し得る例示的なビデオデコーダを示すブロック図。
【図６】本開示で説明されるサンプル適応オフセットフィルタリングを示す流れ図。
【発明を実施するための形態】
【００１２】
サンプル適応オフセット（ＳＡＯ）フィルタリングは、ビデオコーディングにおいて使用されるある種のループフィルタリングである。一般に、いくつかの例では、ビデオフレーム（たとえば、再構成された画像）中のピクセルへのオフセット値の加算により、符号化されたビデオデータを記憶または送信するのに必要なビットオーバーヘッドを大幅に増やすことなく、コーディングを改善することができる。ＳＡＯフィルタリングにより得られる可能性のあるコーディングの改善は、たとえば、復号された画像が元の画像によりよく似ているということであり得る。以下でより詳しく説明されるように、ＳＡＯ技法は、エッジの尺度、帯域の尺度、または他のタイプの尺度のような、ピクセル（またはブロック）分類の尺度に応じて、異なるオフセット値が異なるピクセル（またはピクセルのブロック）に適用されることを可能にする。
【００１３】
以下でより詳しく説明されるように、いくつかの構成では、ＳＡＯフィルタユニットは、本開示では一般に帯域オフセットフィルタリングおよびエッジオフセットフィルタリングと呼ばれる、２つのタイプのオフセットフィルタリングを実行するように構成され得る。ＳＡＯフィルタユニットはまた、時にはオフセットを適用しないことがあり、このこと自体が、第３のタイプのオフセットフィルタリングであると考えられ得る。ＳＡＯフィルタによって適用されるオフセットフィルタリングのタイプは、明示的に、または暗黙的に、ビデオデコーダにシグナリングされ得る。  エッジオフセットフィルタリングを適用する場合、ピクセルは、コーディングユニットのエッジ情報に基づいて分類されてよく、オフセットは、エッジ分類に基づいてピクセルに対して決定され得る。図２を参照して以下でより詳しく説明されるように、通常はエッジベースのＳＡＯに４個のバリエーションがあり、この場合、ピクセルの値は８個の隣接するピクセルのうちの２個と比較される。どの２個のピクセルが比較のために使用されるかは、エッジベースのオフセットのどのバリエーションが使用されるかに依存する。大きさの差に基づいて、オフセットがピクセル値に加算される。
【００１４】
帯域オフセットフィルタリングを適用する場合、ピクセルは、強度値のようなピクセル値に基づいて様々な帯域に分類されてよく、各帯域は関連するオフセットを有する。帯域は、ある範囲のピクセル値を含む。たとえば、０〜２５５の範囲にわたるピクセル値は、３２個の等しい帯域（０〜３１と名付けられる）に分割され得るので、ピクセル値０〜７が第１の帯域であり、ピクセル値８〜１５が第２の帯域であり、ピクセル値１６〜２３が第３の帯域であり、すべての３２個の帯域に対して以下同様である。どの特定のオフセット値をピクセルまたはピクセルのグループに適用するかを決定するために、帯域が使用され得る。たとえば、ピクセルの値が１０である（これは、上の例では第２の帯域、すなわち値８〜１５の中にある）場合、第２の帯域と関連付けられるオフセットがピクセル値に加算され得る。
【００１５】
様々な帯域のオフセットをシグナリングし生成する目的で、帯域は、２つ以上のグループへとグルーピングされ得る。帯域オフセットフィルタリングでは、ピクセルは、たとえば、上で説明されたように３２個の帯域（帯域０〜３１）に分類されてよく、帯域は２つのグループにグルーピングされてよい（たとえば、１６個の帯域の２つのグループ、４個の帯域の１つのグループと２８個の帯域の１つのグループ、８個の帯域の１つのグループと２４個の帯域の１つのグループ、または他のそのようなグルーピング）。帯域のグルーピングは、その帯域に対するオフセット値が符号化されたビデオビットストリーム中でシグナリングされる順序を決定するために使用されてよく、かつ／または、特定の帯域が０以外のオフセット値を有するかどうかを判定するために使用されてよい。帯域に対するオフセットは、現在の値が現在の値と前の値の差としてシグナリングされる、異なるコーディング技法を使用してシグナリングされ得る。いくつかの例では、そのようなコーディング技法を使用することによって達成されるビットの節約の量は、値がシグナリングされる順序に依存し得る。たとえば、値が近いオフセット値が連続してシグナリングされる例では、より多くのビットの節約が達成され得る。いくつかの例では、第２のグループのような特定のグループに対するすべてのオフセット値が、０であると仮定され得る。
【００１６】
いくつかの技法によれば、帯域のグルーピングは静的である。たとえば、ある技法によれば、中間の１６個の帯域（帯域８〜２３）が常に１６個の１つのグループを構成し、一方、一番左側の８個の帯域（帯域０〜７）および一番右側の８個の帯域（帯域２４〜３１）が１６個の帯域の第２のグループを構成する。本開示は、帯域のグルーピングを動的に決定するための技法を説明する。以下でより詳しく説明されるように、ビデオエンコーダまたはビデオデコーダは、ピクセル値に基づいて中心値を動的に決定することによって、帯域のグルーピングを動的に決定することができる。いくつかの構成では、ビデオデコーダがピクセル値に基づいて中心値を決定する必要がなく、代わりに、ビットストリーム中の明示的なシグナリングに基づいて中心値を決定できるように、中心値を示すものが符号化されたビデオビットストリーム中でシグナリングされ得る。中心値は、帯域の第１のグループを決定するために使用されてよく、残りの帯域が帯域の第２のグループを構成し得る。以下の例でより明らかにされるように、本開示で使用される中心値という用語は、一般に、帯域のグループの中心を特定のピクセル値に揃えるために、または概略的に揃えるために使用され得る、任意の値を指す。したがって、本開示で使用されるような中心値は、帯域のグループの中心が揃えられる対象の特定のピクセル値であってよく、または、帯域または帯域のグループの開始ピクセル値または終了ピクセル値のような、何らかの他の値であってよい。いくつかの例では、中心値は、ピクセル値を特定するのではなく、ある特定の帯域を、グループの最初の帯域、グループの最後の帯域として、または、帯域のグループの中心が特定のピクセル値に揃えられ得る際の基準となる何らかの他のそのような特定物として、特定することができる。
【００１７】
いくつかの例では、帯域のグルーピングの動的な決定により、ＳＡＯフィルタリングのためのオフセット係数のシグナリングを改善することができるので、ビデオコーディング品質全体を改善することができる。帯域のグルーピングのこの動的な決定はまた、他の帯域に対するオフセット値が０であるという仮定のもとで、どの帯域のグループに対してＳＡＯフィルタリングが最もビデオコーディング品質を向上させるかを判定するために使用され得る。
【００１８】
図１は、本開示で説明される適応ＳＡＯ技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されるように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。
【００１９】
宛先デバイス１４は、リンク１６を介して、復号されるべき符号化されたビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、符号化されたビデオデータをソースデバイス１２がリアルタイムで宛先デバイス１４に直接送信することを可能にするための、通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、高周波（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２０】
代替的に、符号化されたデータは、出力インターフェース２２から記憶デバイス３２に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイス３２からアクセスされ得る。記憶デバイス３２は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたデータ記憶媒体またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイス３２は、ソースデバイス１２によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイス３２から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。記憶デバイス３２からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２１】
本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００２２】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。しかしながら、本開示で説明される技法は、一般にビデオコーディングに適用可能であってよく、ワイヤレスおよび／または有線の用途に適用され得る。
【００２３】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化されたビデオデータは、さらに（または代替的に）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのために記憶デバイス３２に記憶され得る。
【００２４】
宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を通じて符号化されたビデオデータを受信する。リンク１６を通じて通信され、または記憶デバイス３２上に与えられた符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ３０のようなビデオデコーダが使用するための、ビデオエンコーダ２０によって生成される種々のシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
【００２５】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースをとるように構成されてよい。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、種々のディスプレイデバイスのいずれかを備え得る。
【００２６】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格のようなビデオ圧縮規格に従って動作することができ、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）に準拠し得る。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ８」または「ＷＤ８」と呼ばれるＨＥＶＣ規格の最近のドラフトは、文書ＪＣＴＶＣ−Ｈ１００３、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  （ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ８」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）、第１０回会合：スウェーデン  ストックホルム、２０１２年７月１１〜２０日に記載されおり、この文書は、２０１２年１０月２日現在、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１０＿Ｓｔｏｃｋｈｏｌｍ／ｗｇ１１／ＪＣＴＶＣ−Ｊ１００３−ｖ８．ｚｉｐのリンクからダウンロード可能である。
【００２７】
代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格のような、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２８】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、各々オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んでよい。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２９】
ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、種々の適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されてよい。
【００３０】
ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９個のイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００３１】
一般に、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記載する。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割されてよく、各子ノードが今度は親ノードとなり、別の４つの子ノードに分割されてよい。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コーディングされたビデオブロックを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
【００３２】
ＣＵは、コーディングノードと、コーディングノードと関連付けられる予測ユニット（ＰＵ）と変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大で６４×６４以上のピクセルをもつツリーブロックのサイズにまで及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵと関連付けられるシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が非方形になるように区分され得る。ＣＵと関連付けられるシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が方形または非方形であり得る。
【００３３】
ＨＥＶＣ規格は、ＣＵごとに異なり得る、ＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズが決定されるが、常にそうであるとは限らない。ＴＵは通常、ＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用してより小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵと関連付けられるピクセル差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
【００３４】
一般に、ＰＵは、予測プロセスに関連するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００３５】
一般に、ＴＵは、変換プロセスおよび量子化プロセスのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数の変換ユニット（ＴＵ）も含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、エントロピーコーディングのための直列化された変換係数を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得る、ピクセル差分値を備える。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードとＰＵとＴＵとを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指す、「ビデオブロック」という用語も使用し得る。
【００３６】
ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は、一般に、一連の１つまたは複数のビデオピクチャを備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、一定のサイズまたは可変のサイズを有してよく、指定されたコーディング規格に従ってサイズが異なる場合がある。
【００３７】
一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮというＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎという対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮというＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００３８】
本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負の整数値を表す。ブロック中のピクセルは行と列で構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００３９】
ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備えてよく、ＴＵは、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００４０】
変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を提供するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられてよく、ただし、ｎはｍよりも大きい。
【００４１】
いくつかの例では、ビデオエンコーダ２０は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化された変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための、符号化されたビデオデータと関連付けられるシンタックス要素をエントロピー符号化し得る。
【００４２】
ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が０ではないかどうかに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに対して可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００４３】
一般に、いくつかの例では、ビデオフレーム中のピクセルへのオフセット値の加算により、コーディングを改善することができる。たとえば、オフセット値は、照明の変化、量子化誤差を補償するために、またはより一般的には、再構成されたビデオデータを元のビデオデータにより近くするために、再構成されたビデオブロックのピクセルに適用され得る。ＳＡＯ技法は、ピクセル（またはブロック）のピクセル値に応じて、異なるオフセット値が異なるピクセル（またはピクセルのブロック）に適用されることを可能にする。ピクセルに適用されるオフセット値は、ピクセルの値に基づいて決定され得る。たとえば、ピクセルが第１の帯域内にある値を有する場合、第１の帯域と関連付けられるオフセットがピクセルに適用され得る。ピクセルが第２の帯域内にある値を有する場合、第２の帯域と関連付けられるオフセットがピクセルに適用されてよく、すべての帯域に対して以下同様である。
【００４４】
あるタイプのＳＡＯの実装形態では、各々の区分（ＬＣＵのセットを構成する）は、３つのオフセットタイプ（ピクセル分類とも呼ばれる）のうちの１つを有し得る。３つのオフセットタイプは、オフセットなし、帯域分類ベースのオフセットタイプ０／１、およびエッジ分類ベースのタイプ０／１／２／３である。各帯域分類オフセットタイプは１６個の可能なオフセット値を有するが、各エッジ分類ベースタイプは４つの可能なオフセット値を有する。これらのオフセットタイプのうちの１つが、区分に対して使用されるものとして選ばれた場合、対応するオフセットタイプとオフセット値とを示す情報が符号化されたビデオビットストリーム中でシグナリングされ得る。
【００４５】
図２は、ＳＡＯフィルタリングのためのある実装形態において使用される、４つの可能なエッジオフセット分類を示す概念図である。図２の例では、エッジオフセットタイプは、エッジ情報に基づいて各ピクセルを分類する。図２に示されるエッジ分類の各々に対して、現在のピクセル（すなわち、コーディングされている特定のピクセル）のエッジタイプが、現在のピクセル（Ｃ）の値を隣接ピクセル（１および２）の値と比較することによって計算される。分類０のＳＡＯエッジオフセット（ＳＡＯ＿ＥＯ＿０）では、現在のピクセルは左および右の隣接ピクセルと比較される。分類１のＳＡＯエッジオフセット（ＳＡＯ＿ＥＯ＿１）では、現在のピクセルは上および下の隣接ピクセルと比較される。分類２のＳＡＯエッジオフセット（ＳＡＯ＿ＥＯ＿２）では、現在のピクセルは左上および右下の隣接ピクセルと比較される。分類３のＳＡＯエッジオフセット（ＳＡＯ＿ＥＯ＿３）では、現在のピクセルは左下および右上の隣接ピクセルと比較される。
【００４６】
最初に、現在のピクセルのエッジタイプは０であると仮定される。現在のピクセルＣの値が左と右の隣接ピクセル（１と２）の両方の値に等しい場合、エッジタイプは０のままである。現在のピクセルＣの値が隣接ピクセル１の値よりも大きい場合、エッジタイプは１だけ増やされる。現在のピクセルＣの値が隣接ピクセル１の値よりも小さい場合、エッジタイプは１だけ減らされる。同様に、現在のピクセルＣの値が隣接ピクセル２の値よりも小さい場合、エッジタイプは１だけ増やされ、現在のピクセルＣの値が隣接ピクセル２の値よりも小さい場合、エッジタイプは１だけ減らされる。
【００４７】
したがって、現在のピクセルＣは、−２、−１、０、１、または２というエッジタイプを有し得る。現在のピクセルＣの値が隣接ピクセル１および２の両方の値より小さい場合、エッジタイプは−２である。現在のピクセルＣの値が一方の隣接ピクセルより小さいが他方の隣接ピクセルに等しい場合、エッジタイプは−１である。現在のピクセルＣの値が両方の隣接ピクセルと同じである場合、または、現在のピクセルＣの値が一方の隣接ピクセルより大きいが他方の隣接ピクセルより小さい場合、エッジタイプは０である。現在のピクセルＣの値が一方の隣接ピクセルより大きいが他方の隣接ピクセルに等しい場合、エッジタイプは１である。現在のピクセルＣの値が隣接ピクセル１と２の両方の値より大きい場合、エッジタイプは２である。各々の０ではないエッジタイプ値に対して、４つのオフセット値が決定され、デコーダによる使用のために符号化されたビデオビットストリーム中でシグナリングされる（すなわち、ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ1、ｅｏｆｆｓｅｔ2）。
【００４８】
上記の説明に鑑みて、各エッジオフセット分類に対して、エッジタイプ値が以下の擬似コードによって計算され得る。
【数１】
0005833249.tif 000002
【００４９】
図３Ａは、強度値に基づく例示的な帯域を示す概念図である。例として、ピクセル値は０〜２５５にわたると仮定するが、他の範囲も使用され得る。そのような例では、図３Ａに示される最大値は２５５に等しく、図３Ａに示される３２個の帯域の各々は８という範囲を有する。一番左側の帯域はピクセル値０〜７であり、次の帯域は８〜１５のピクセル値に対するものであり、次の帯域はピクセル値１６〜２３に対するものであり、ピクセル値２４８〜２５５に対するものである一番右側の帯域まで以下同様である。帯域オフセットでは、ピクセルは、強度に基づいて異なる帯域に分類される（すなわち、帯域オフセット分類では、ピクセルは３２個の帯域のうちの１つに分類される）。ピクセル値がどの帯域に入るかに基づいて、あるオフセットがピクセルに加算される。たとえば、ピクセルの値が１９である場合、ピクセル値は、ピクセル値１６から２３にわたる第３の帯域に入る。したがって、第３の帯域と関連付けられるオフセットは、１９というピクセル値に加算される。
【００５０】
各帯域と関連付けられるオフセット値をシグナリングする目的で、帯域は、２つ以上のグループへとグルーピングされ得る。いくつかの実装形態では、中心にある１６個の帯域（帯域８〜２３）が１つのグループに分類され、残りの帯域（帯域０〜７および２４〜３１）が第２のグループに分類される。帯域の各グループに対して、１６個のオフセット値（すなわち、ｂｏｆｆｓｅｔ0、…、ｂｏｆｆｓｅｔ15）が決定され、ビデオデコーダによる使用のために符号化されたビデオビットストリーム中でシグナリングされる。いくつかの実装形態では、第２のグループのようなグループに対するすべてのオフセット値は０であると仮定されてよく、この場合、そのグループに対するオフセット値のシグナリングは、符号化されたビデオビットストリームに含まれなくてよい。
【００５１】
図３Ａに示されるように、中間の１６個の帯域（帯域８〜２３）が帯域の第１のグループを構成し、一方、一番左側の８個の帯域（帯域０〜７）が帯域の第２のグループの第１の部分を構成し、一番右側の８個の帯域（帯域２４〜３１）が帯域の第２のグループの第２の部分を構成する。現在の技法では、帯域のグルーピングは固定されている。本開示は、帯域のグルーピングを適応的に決定するための技法を説明する。たとえば、本開示は、ピクセルの値に基づいてピクセルのセットの中心値を決定するための技法を説明する。中心値は、たとえば、帯域のグループの決定された中心に基づいて決定されてよく、帯域のグループの中心は、ピクセルのセットの平均値に基づいて、ピクセルのセットの中央値に基づいて、または、ヒストグラムのピークがあるピクセルを決定することによって、決定され得る。
【００５２】
ピクセル値の帯域は、中心値に基づいてグループに分割され得る。たとえば、中心値は、帯域の１つのグループの中心を決定するために使用され得る。再び３２個の帯域（帯域０〜３１）と２つのグループとを仮定すると、中心の右側の８個の帯域および中心の左側の８個の帯域は、帯域の第１のグループであり得る。残りの１６個の帯域は第２のグループであり得る。したがって、１つのグループが常に中間の１６個の帯域により構成される従来の技法とは異なり、本開示は、帯域のグルーピングが実際のピクセル値に基づいて決定される中心値に基づいて適応的であり得る、技法を説明する。
【００５３】
図３Ｂは、本開示の技法に従って使用され得る、多くの可能なグルーピングの１つを示す。図３Ｂの例では、中心は、帯域１８の近くであると決定される。したがって、帯域の第１のグループは、中心の左側の８個の帯域（帯域１１〜１８）と、中心の右側の８個の帯域（帯域１９〜２６）とを含む。帯域の第２のグループは残りの帯域を含み、残りの帯域はこの例では帯域０〜４および帯域２７〜３１である。図３Ｂもやはり、多くの可能な状況の１つを表す。図３Ｂの主な目的は、本開示の技法によれば、帯域の第１のグループを決定するための中心が適応的に決定されてよく、図３Ａに示される位置または任意の他の位置に固定される必要がないことを示すことである。中心値を決定し帯域のグルーピングを適応的に決定するための技法が、以下でより詳しく説明される。
【００５４】
図４は、本開示で説明されるＳＡＯフィルタリング技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００５５】
図４の例では、ビデオエンコーダ２０は、区分モジュール３５と、予測モジュール４１と、参照ピクチャメモリ６４と、加算器５０と、変換モジュール５２と、量子化モジュール５４と、エントロピー符号化モジュール５６とを含む。予測モジュール４１は、動き推定モジュール４２と、動き補償モジュール４４と、イントラ予測モジュール４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化モジュール５８と、逆変換モジュール６０と、加算器６２とを含む。ブロック境界をフィルタリングして再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ７２も含まれ得る。図４に示されるように、ビデオエンコーダ２０はまた、サンプル適応オフセット（ＳＡＯ）フィルタ７４と適応ループフィルタ（ＡＬＦ）７６とを含む、追加のループフィルタを含む。デブロッキングフィルタ７２、ＳＡＯフィルタ７４、およびＡＬＦ７６は図４ではループ内フィルタとして示されるが、いくつかの構成では、デブロッキングフィルタ７２、ＳＡＯフィルタ７４、およびＡＬＦ  ７６は、ループ後フィルタとして実装され得る。
【００５６】
図４に示されるように、ビデオエンコーダ２０はビデオデータを受信し、区分モジュール３５はデータをビデオブロックに区分する。この区分は、たとえば、ＬＣＵおよびＣＵの４分木構造に従った、スライス、タイル、または他のより大きいユニットへの区分、さらにはビデオブロック区分を含み得る。ビデオエンコーダ２０は、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを全般に示す。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。予測モジュール４１は、誤り結果（たとえば、コーディングレートおよび歪みのレベル）に基づいて、現在ビデオブロックに対して、複数のイントラコーディングモードのうちの１つ、または複数のインターコーディングモードのうちの１つのような、複数の可能なコーディングモードのうちの１つを選択し得る。予測モジュール４１は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器５０に与えて、残差ブロックデータを生成し、加算器６２に与えて、参照ピクチャとして使用するための符号化されたブロックを再構成することができる。
【００５７】
予測モジュール４１内のイントラ予測モジュール４６は、コーディングされるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する、現在のビデオブロックのイントラ予測コーディングを実行して、空間圧縮を行うことができる。予測モジュール４１内の動き推定モジュール４２および動き補償モジュール４４は、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対する、現在のビデオブロックのインター予測コーディングを実行して、時間圧縮を行うことができる。
【００５８】
動き推定モジュール４２は、ビデオシーケンスの所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、予測されたスライス（Ｐスライス）、双方向予測されたスライス（Ｂスライス）または、一般化されたＰ／Ｂスライス（ＧＰＢスライス）と指定し得る。動き推定モジュール４２および動き補償モジュール４４は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定モジュール４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００５９】
予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵに厳密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定モジュール４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００６０】
動き推定モジュール４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定モジュール４２は、計算された動きベクトルをエントロピー符号化モジュール５６と動き補償モジュール４４とに送る。
【００６１】
動き補償モジュール４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償モジュール４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ２０は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を実行する１つまたは複数のコンポーネントを表す。動き補償モジュール４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロックおよびビデオスライスと関連付けられるシンタックス要素を生成し得る。
【００６２】
イントラ予測モジュール４６は、上で説明されたように、動き推定モジュール４２と動き補償モジュール４４とによって実行されるインター予測の代替として、現在のブロックに対してイントラ予測を実行し得る。特に、イントラ予測モジュール４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測モジュール４６は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測モジュール４６（または、いくつかの例では、モード選択モジュール４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測モジュール４６は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み（または誤差）の量、ならびに、符号化されたブロックを生成するために使用されたビットレート（すなわち、ビット数）を決定する。イントラ予測モジュール４６は、どのイントラ予測モードがブロックに対して最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックに対する歪みおよびレートから比率を計算することができる。
【００６３】
いずれの場合も、あるブロックに対するイントラ予測モードを選択した後、イントラ予測モジュール４６は、エントロピー符号化モジュール５６にブロックに対する選択されたイントラ予測モードを示す情報を提供し得る。エントロピー符号化モジュール５６は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、送信されるビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る、構成データを含み得る。
【００６４】
予測モジュール４１が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ２０は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換モジュール５２に適用され得る。変換モジュール５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【００６５】
変換モジュール５２は、得られた変換係数を量子化モジュール５４に送り得る。量子化モジュール５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化モジュール５４は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化モジュール５６が走査を実行し得る。
【００６６】
量子化の後に、エントロピー符号化モジュール５６は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化モジュール５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、あるいは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化モジュール５６によるエントロピー符号化の後に、符号化されたビットストリームは、ビデオデコーダ３０に送信されるか、あるいはビデオデコーダ３０による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化モジュール５６はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【００６７】
逆量子化モジュール５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償モジュール４４は、残差ブロックを参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つの予測ブロックに加算することによって、参照ブロックを計算し得る。動き補償モジュール４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを動き補償モジュール４４によって生成された動き補償された予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ブロックを生成する。
【００６８】
メモリ６４への記憶の前に、再構成された残差ブロックは、１つまたは複数のフィルタによってフィルタリングされ得る。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタ７２も適用されて、再構成された残差ブロックをフィルタリングすることができる。ピクセル遷移を平滑化し、または他の方法でビデオ品質を改善するために、（コーディングループ内またはコーディングループ後の）他のループフィルタも使用され得る。これらの他のフィルタの１つの例が、ＳＡＯフィルタ７４である。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定モジュール４２と動き補償モジュール４４とによって参照ブロックとして使用され得る。
【００６９】
ＳＡＯフィルタ７４は、ビデオコーディングの品質を改善するように、ＳＡＯフィルタリングのためのオフセット値を決定することができる。ビデオコーディングの品質を改善することは、たとえば、再構成された画像が元の画像とより厳密に一致するようにするオフセット値を決定することを伴い得る。ビデオエンコーダ２０は、たとえば、異なるオフセット値を伴う複数のパスを使用してビデオデータをコーディングし、レート歪みの計算に基づいて決定されるような、最良のコーディング品質をもたらすオフセット値を、符号化されたビットストリーム中に含めるために選ぶことができる。
【００７０】
いくつかの構成では、ＳＡＯフィルタ７４は、上で説明されたように、２つのタイプのオフセット（たとえば、帯域オフセットおよびエッジオフセット）を適用するように構成され得る。ＳＡＯフィルタ７４はまた、時にはオフセットを適用しないことがあり、このこと自体が、第３のタイプのオフセットであると考えられ得る。ＳＡＯフィルタ７４によって適用されるオフセットのタイプは、明示的に、または暗黙的に、ビデオデコーダにシグナリングされ得る。エッジオフセットを適用する場合、ピクセルは、図２によるエッジ情報に基づいて分類されてよく、フィルタは、エッジ分類に基づいて決定され得る。帯域オフセットを適用する場合、ＳＡＯフィルタ７４は、強度値のようなピクセル値に基づいてピクセルを異なる帯域に分類することができ、各帯域は関連するオフセットを有する。
【００７１】
様々な帯域に対するオフセットをシグナリングし生成する目的で、ＳＡＯフィルタ７４は、図３Ａおよび図３Ｂの例に示されるように、３２個の帯域を２つ以上のグループにグルーピングすることができる。ＳＡＯフィルタ７４は、たとえば、３２個の帯域の各々を２つのグループ（すなわち、１６個の帯域の２つのグループ）にグルーピングすることができる。本開示は全般に、等しいサイズの２つのグループへの帯域のグルーピングを説明するが、２つより多くのグループおよび等しくないサイズのグループも使用され得る。本開示は、これらのグループがどのように決定されるかを決定するための技法を説明する。
【００７２】
各帯域は、あるピクセル値の範囲にわたり得る。ピクセル値はたとえば、ピクセル強度値であってよく、ＲＧＢ値、輝度値、クロミナンス値、または任意の他のタイプのピクセル値を表し得る。本開示で説明される技法は、たとえば、ビデオデータのクロマサンプル、ビデオデータのルーマサンプル、またはビデオデータのクロマサンプルとルーマサンプルの両方に適用され得る。
【００７３】
いくつかの実装形態では、帯域の第１のグループは、可能なピクセル値の範囲の中心（すなわち、最大値／２）に中心があり得る。したがって、たとえば、ピクセル値の範囲が０〜２５５である場合、帯域の第１のグループの中心は、ピクセル値１２７とピクセル値１２８の間にあることがあり、第１のグループは値６４〜１９１にわたる。第２のグループの第１の部分はピクセル値０〜６３にわたってよく、第２のグループの第２に部分はピクセル値１９２〜２５５にわたってよい。第１のグループは１６個の帯域を含み、第２のグループは１６個の帯域（第１の部分に８個の帯域および第２の部分に８個の帯域）を含む。この例示的なグルーピングが図３Ａに示される。本開示の例は全般に、３２個の帯域の各帯域のサイズが等しいと仮定するが、いくつかの実装形態では、等しくないサイズの帯域が使用され得る。
【００７４】
本開示の技法によれば、ＳＡＯフィルタ７４は、帯域の静的なグルーピングを使用する代わりに、第１のグループの中心を適応的に決定することができる。ＳＡＯフィルタ７４は、たとえば、フレームのある領域におけるピクセルのピクセル値の平均または中央値に基づいて、第１のグループの中心を決定することができる。ＳＡＯフィルタ７４はまた、ヒストグラムのピークがあるピクセルに基づいて、第１のグループの中心を決定することができる。ＳＡＯフィルタ７４が第１のグループの中心を決定すると、ＳＡＯフィルタ７４は次いで、第２のグループを決定することができる。再び、３２個の帯域を仮定すると、第１のグループは、中心の左側に概ね８個の帯域を、中心の右側に概ね８個の帯域を含み得る。残りの帯域は第２のグループを形成し得る。
【００７５】
一例として、最小のピクセル値が２５６であり、ＳＡＯフィルタ７４が、上で説明された技法のいずれかに基づいて、帯域の第１のグループの中心がピクセル値９０にあると決定すると仮定する。そのような場合、図３Ａの静的なグルーピングに対して、帯域の第１のグループは左に移動することができ、第２のグループの第１の部分をより小さくしつつ、第２のグループの第２の部分をより大きくする。しかしながら、ＳＡＯフィルタ７４が、帯域の第１のグループの中心が１７０にあると決定すると、第１のグループは図３Ａの静的なグルーピングに対して右に移動し、第２のグループの第１の部分をより大きくしつつ、第２のグループの第２の部分をより小さくする。ＳＡＯフィルタ７４は、平均、中央値、またはヒストグラム値のピークを決定するための本開示で説明された技法のいずれかに従って、中心を決定することができ、または、何らかの他の方式で決定され得る。
【００７６】
中心を決定した後で、ＳＡＯフィルタ７４は、帯域の第１のグループを決定することができる。ＳＡＯフィルタ７４は、中心の左側の８個の帯域と中心の右側の８個の帯域と特定することによって、帯域の第１のグループを決定することができる。いくつかの例では、決定された中心はある帯域内に入り得る。再び３２個の等しい帯域（帯域０〜３１）と０〜２５５のピクセル値とを仮定すると、帯域１２は９６〜１０３という値の範囲を有する。たとえば、ＳＡＯフィルタ７４が９９という中心を決定すると、中心は、帯域１２によって包含されるピクセル値の範囲内に入る。そのような例では、ＳＡＯフィルタ７４は、中心の左側の８個の帯域の１つとして帯域１２を常に含み、または、中心の右側の８個の帯域の１つとして帯域１２を常に含むように構成され得る。ＳＡＯフィルタ７４が中心の左側の８個の帯域の１つとして帯域１２を特定する場合、帯域の第１のグループは帯域５〜２０を含み、一方、第２のグループは帯域０〜４と２１〜３１とを含む。ＳＡＯフィルタ７４が中心の右側の８個の帯域の１つとして帯域１２を特定する場合、帯域の第１のグループは帯域６〜２１を含み、一方、第２のグループは帯域０〜５と２２〜３１とを含む。ＳＡＯフィルタ７４はまた、帯域内で中心がどこにあるかに基づいて、帯域１２を、中心の左側の帯域とともに含めるか、または中心の右側の帯域とともに含めるかを、判定するように構成され得る。９９は１０３よりも９６に近いので、ＳＡＯフィルタ７４は、９９という中心を決定したことに応答して、中心の左側の帯域の１つとして帯域１２を特定するように構成され得る。しかしながら、９６よりも１０３に近い１０１という中心を決定したことに応答して、ＳＡＯフィルタ７４は、中心の右側の帯域の１つとして帯域１２を特定するように構成され得る。
【００７７】
本開示の技法は全般に、３２個の帯域と１６個の帯域の２つのグループとを伴う例を使用して説明されてきたが、本開示の技法は全般に、より多数または少数の帯域とより多数または少数のグループとを使用するＳＡＯ方式に適用可能である。多くの可能な例の１つとして、本開示の技法は、４個の帯域の第１のグループと２８個の帯域の第２のグループとを決定するために使用されてよく、第２のグループのオフセットはすべてが０という値を有すると仮定される。別の例では、１６個の帯域、６４個の帯域、または何らかの他の数の帯域が使用され得る。
【００７８】
ＳＡＯフィルタ７４は、これらのグルーピングに基づいて、帯域のオフセットを生成しシグナリングすることができる。帯域の各グループに対して（やはり１６個の帯域のグループを仮定する）、１６個のオフセット値が決定され、ビデオデコーダによる使用のために、符号化されたビデオビットストリーム中でシグナリングされ得る。一例では、１６個の帯域オフセット値のグループを送信するのに必要なビットの数は、グループ内の帯域オフセット値の相関を利用することによって、減らされ得る。別の例では、隣接する区分の帯域オフセット値は、現在の区分のグループに対する帯域オフセット値を予測するために使用され得る。隣接する区分は、現在の区分の原因である区分であり得る（すなわち、隣接する区分はすでに符号化されている）。隣接する区分の例には、現在の位置の上または左の区分のような空間的に隣接する区分、または、以前に符号化されたフレーム中の区分（たとえば、同じ位置にある区分）のような時間的に隣接する区分がある。
【００７９】
中心を見つけるための技法は、各ＬＣＵまたはＬＣＵのグループに適用され得る。技法は、たとえば、上で論じられた４分木区分と同様の方式で決定されるフレームの領域に適用され得る。フレームは４つの領域に区分されてよく、各領域は４つのより小さい領域に区分されてよく、以下同様である。ＳＡＯフィルタ７４は、ＬＣＵのグループまたはフレームの他の領域内のすべてのピクセル値に基づいて、上で説明されたように中心値を決定することができ、または、ＬＣＵまたはＬＣＵのグループ中の利用可能なピクセル値のすべてよりも少数のピクセル値を利用する方式で、サブサンプリングピクセルによって中心値を決定することができる。
【００８０】
図４のビデオエンコーダ２０は、の値に基づいてピクセルのセットの中心値を決定し、中心値に基づいてピクセル値の帯域をグループに分割し、グループに基づいて帯域に対するオフセット値を決定するように構成される、ビデオエンコーダの例を表す。ビデオエンコーダ２０は、ピクセルのセットの平均値を決定し、ピクセルのセットの中央値を決定し、かつ／またはヒストグラムのピクセルがあるピクセルを決定することによって、ピクセルの第１のセットの中心を決定することができる。ビデオエンコーダ２０は、第１のグループの第２の帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。ビデオエンコーダ２０は、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。ビデオエンコーダ２０はまた、グループに基づいて、帯域オフセット値をビデオデコーダにシグナリングすることができる。いくつかの実装形態では、ビデオエンコーダ２０は、決定された中心値を示すシンタックス要素を、符号化されたビットストリームに含めるために生成することができる。いくつかの例では、シンタックス要素は、帯域のグループに対して決定される中心の明示的な指示であってよいが、シンタックス要素は、必ずしも、決定された中心の明示的な指示である必要はない。たとえば、中心値は、ビデオエンコーダ２０によって決定される帯域の同じグルーピングをビデオデコーダが再構成することを可能にするために、特定のグループの最初のまたは最後の帯域を特定することができる。そのような例では、符号化されたビットストリームにおいて中心が明示的にシグナリングされなくても、ビデオデコーダによって再構成される帯域のグルーピングは、ビデオエンコーダによって決定されるグルーピングと同じ中心に揃えられ得る。
【００８１】
図５は、本開示で説明される技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図５の例では、ビデオデコーダ３０は、エントロピー復号モジュール８０と、予測モジュール８１と、逆量子化モジュール８６と、逆変換モジュール８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測モジュール８１は、動き補償モジュール８２と、イントラ予測モジュール８４とを含む。ビデオデコーダ３０は、いくつかの例では、図４のビデオエンコーダ２０に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
【００８２】
復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す、符号化されたビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号モジュール８０は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号モジュール８０は、予測モジュール８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００８３】
ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるとき、予測モジュール８１のイントラ予測モジュール８４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた（たとえば、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測モジュール８１の動き補償モジュール８２は、エントロピー復号モジュール８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０とリスト１とを構成し得る。
【００８４】
動き補償モジュール８２は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償モジュール８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスの参照ピクチャリストのうちの１つまたは複数に対する構成情報と、スライスの各々のインター符号化されたビデオブロックの動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【００８５】
動き補償モジュール８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償モジュール８２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間された値を計算し得る。この場合、動き補償モジュール８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００８６】
逆量子化モジュール８６は、ビットストリーム中で与えられエントロピー復号モジュール８０によって復号された、量子化された変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を判定し、同様に、適用されるべき逆量子化の程度を判定するための、ビデオスライス中の各ビデオブロックに対してビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換モジュール８８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。
【００８７】
動き補償モジュール８２が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換モジュール８８からの残差ブロックを動き補償モジュール８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数のコンポーネントを表す。加算器９０によって形成された復号されたビデオブロックは次いで、デブロッキングフィルタ９３、ＳＡＯフィルタ９４、および適応ループフィルタ９５によってフィルタリングされ得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する、参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【００８８】
ＳＡＯフィルタ９４は、上で論じられたＳＡＯフィルタ７４と同じフィルタリング（たとえば、エッジオフセットおよび帯域オフセット）を適用するように構成され得る。このようにして、帯域オフセットを実行することの一部として、ＳＡＯフィルタ７４は、図４を参照して上で説明されたように、帯域の第１のグループに対する中心値を決定することができる。中心値は、たとえば、ピクセル値の平均、ピクセル値の中央値のような尺度に基づいて決定されてよく、または、ＬＣＵもしくはＬＣＵのグループに対するヒストグラムのピークがあるピクセルに基づいて決定されてよい。
【００８９】
いくつかの実装形態では、ＳＡＯフィルタ９４は、ビデオエンコーダによって決定された中心の指示を、ビデオビットストリームにおいて受信することができる。この指示は、ビデオエンコーダによって計算されるような実際の中心値という形態をとってよく、または、第１のグループに対する第１の帯域の特定、第２のグループの第１の部分の最後の帯域の指示、第１のグループに対する中間値、または、ビデオエンコーダによって使用される帯域の同じグルーピングをＳＡＯフィルタ９４が決定することを可能にする何らかの他のそのような情報という形態をとってよい。中心値に基づいて決定された第１のグループおよび第２のグループに基づいて、ＳＡＯフィルタ９４は、符号化されたビットストリーム中で受信された情報に基づいて、オフセット値を生成することができる。第２のグループのようなグループの１つに対して、オフセット値は、すべてが０に等しいと仮定され得る。
【００９０】
ＬＣＵのグループに対して、ＳＡＯフィルタ９４は、ＬＣＵのグループに対する平均のピクセル値を決定することによって、中心値を決定することができる。ＳＡＯフィルタ９４は、ＬＣＵのグループ中のピクセルのすべてまたは一部のピクセル値を加算し、値が加算の一部として使用されたピクセルの数によって除算することによって、平均のピクセル値を決定することができ、得られる値は、ＬＣＵのグループに対する平均のピクセル値である。ＳＡＯフィルタユニット９４は次いで、上で説明された方式で、決定された平均のピクセル値を使用して、帯域のグルーピングを決定することができる。
【００９１】
代替的に、ＬＣＵのグループに対して、ＳＡＯフィルタ９４は、ＬＣＵのグループに対するピクセル値の中央値を決定することによって、中心値を決定することができる。ＳＡＯフィルタ９４は、ＬＣＵのグループのピクセル値の半分がその値より大きくなり、ＬＣＵのグループのピクセル値の半分がその値より小さくなるような値を特定することによって、ピクセル値の中央値を決定することができる。ＳＡＯフィルタユニット９４は次いで、上で説明された方式で、決定されたピクセル値の中央値を使用して、帯域のグルーピングを決定することができる。
【００９２】
代替的に、ＬＣＵのグループに対して、ＳＡＯフィルタ９４は、ＬＣＵまたはＬＣＵのグループに対してヒストグラムのピークがどこにあるかを判定することによって、中心値を決定することができる。ヒストグラムは一般に、ＬＣＵのグループに対するピクセル値の分布の統計的な表現であると考えられ得る。したがって、ＳＡＯフィルタ９４は、ＬＣＵのグループ中で最も頻繁に現れる１つまたは複数のピクセル値を特定することによって、ヒストグラムのピークを判定することができる。ＳＡＯフィルタユニット９４は次いで、上で説明された方式で、ヒストグラム中のピークの判定された値を使用して、帯域のグルーピングを決定することができる。
【００９３】
中心値（たとえば、平均、中央値、ヒストグラムのピーク）をどのように決定するかということの３つの例は、ＳＡＯフィルタ７４とＳＡＯフィルタ９４のいずれか、またはこれらの両方によって実行されてよく、中心値が決定され得る唯一の３つの可能な技法ではない。帯域オフセット値をシグナリングするための帯域のグルーピングを動的に決定することに全般に関連する本開示の技法は、中心値を決定するための他のそのような技法と適合し得ると考えられる。
【００９４】
図５のビデオデコーダ３０は、ピクセルの値に基づいてピクセルのセットの中心値を決定し、中心値に基づいてピクセル値の帯域をグループに分割し、グループに基づいて帯域に対するオフセット値を決定するように構成される、ビデオデコーダの例を表す。いくつかの実装形態では、ビデオデコーダ３０は、中心値を示すシンタックス要素を受信することによって、中心値を決定することができる。上で説明されたように、シンタックス要素は、中心値の明示的な指示であってもそうではなくてもよい。いくつかの実装形態では、ビデオデコーダ３０は、ピクセルのセットの平均値を決定し、ピクセルのセットの中央値を決定し、かつ／またはヒストグラムのピクセルがあるピクセルを決定することによって、中心値を決定することができる。ビデオデコーダ３０は、第１のグループの第２の帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。ビデオデコーダ３０は、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。ビデオデコーダ３０はまた、グループに基づいて、ビデオエンコーダからシグナリングされた帯域オフセット値を再構成することができる。
【００９５】
このようにして、図５のビデオデコーダ３０は、グループに対するピクセルの値に基づいてピクセルのセットの中心値を決定し、中心値に基づいてピクセル値の帯域をグループに分割し、グループに基づいて帯域に対するオフセット値を決定するように構成される、ビデオデコーダの例を表す。ビデオデコーダ３０は、中心値を示すシンタックス要素を受信することによって中心値を決定し、ピクセルのセットの平均値を決定することによって中心値を決定し、ピクセルのセットの中央値を決定することによって中心値を決定することができ、または、中心値を決定することは、ヒストグラムのピークがあるピクセルを決定することを備える。ピクセルのセットは、たとえば、最大コーディングユニット（ＬＣＵ）のグループを含み得る。ビデオデコーダ３０は、第１のグループの第２の帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。ビデオデコーダ３０は、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。
【００９６】
図６は、本開示で説明されるＳＡＯフィルタリング技法を示す流れ図を示す。図６の技法は、ビデオエンコーダ２０またはビデオデコーダ３０のような、ＳＡＯフィルタリングモジュールを伴うビデオコーダによって実行され得る。図６の技法は、ビデオデコーダ３０を参照して説明されるが、図６の技法は、広範囲のビデオコーディングデバイスに適用可能であり、ビデオデコーダのみに限定されないことを理解されたい。
【００９７】
ビデオデコーダ３０は、ピクセルの値に基づいて、ピクセルのセットの中心値を決定する（６１０）。ビデオデコーダ３０は、たとえば、ピクセルのセットの平均値を決定し、ピクセルのセットの中央値を決定し、ヒストグラムのピクセルがあるピクセルを決定することによって、中心値を決定することができる。ビデオデコーダ３０は、中心値に基づいて、ピクセル値の帯域をグループに分割する（６２０）。ビデオデコーダ３０は、グループに基づいて帯域に対するオフセット値を決定する（６３０）。ビデオデコーダ３０は、第１のグループの第２の帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。ビデオデコーダ３０はまた、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、グループに基づいて帯域に対するオフセット値を決定することができる。
【００９８】
１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は全般に、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【００９９】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピーディスク（登録商標）（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１００】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明される技法の実装に適切な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内で提供されてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、１つまたは複数の回路または論理要素中で完全に実装され得る。
【０１０１】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【０１０２】
様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  ビデオデータをコーディングするための方法であって、
ピクセルのセットの中心値を決定することであって、前記中心値が前記ピクセルの値に基づく、決定することと、
前記中心値に基づいて、ピクセル値の帯域を帯域のグループに分割することと、
前記グループに基づいて、前記帯域に対するオフセット値を決定することとを備える、方法。
［Ｃ２］  ビデオデコーダによって実行され、前記中心値を決定することがシンタックス要素を受信することを備え、ピクセル値の前記帯域を帯域のグループに分割することが前記シンタックス要素に基づいて帯域の前記グループを決定することを備える、Ｃ１に記載の方法であって、前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用することをさらに備える、方法。
［Ｃ３］  ビデオエンコーダによって実行される、Ｃ１に記載の方法であって、
符号化されたビットストリームに含めるためのシンタックス要素を生成することをさらに備え、前記シンタックス要素が前記中心値を示す、方法。
［Ｃ４］  前記中心値を決定することが、ピクセルの前記セットの平均値を決定することを備える、Ｃ１に記載の方法。
［Ｃ５］  前記中心値を決定することが、ピクセルの前記セットの中央値を決定することを備える、Ｃ１に記載の方法。
［Ｃ６］  前記中心値を決定することが、ヒストグラムのピークがある前記ピクセルを決定することを備える、Ｃ１に記載の方法。
［Ｃ７］  ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、Ｃ１に記載の方法。
［Ｃ８］  前記グループに基づいて前記帯域に対するオフセット値を決定することが、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成することを備える、Ｃ１に記載の方法。
［Ｃ９］  前記グループに基づいて前記帯域に対するオフセット値を決定することが、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することを備える、Ｃ１に記載の方法。
［Ｃ１０］  ビデオコーダを備えるビデオコーディングデバイスであって、前記ビデオコーダが、
ピクセルのセットの中心値を決定し、このとき前記中心値が前記ピクセルの値に基づき、さらに、前記中心値に基づいてピクセル値の帯域をグループに分割し、前記グループに基づいて前記帯域に対するオフセット値を決定するように構成される、ビデオコーディングデバイス。
［Ｃ１１］  前記ビデオコーダがビデオデコーダを備え、前記ビデオコーダが、
シンタックス要素を受信することによって前記中心値を決定し、
前記シンタックス要素に基づいて帯域のグループを決定することによって、ピクセル値の前記帯域を帯域の前記グループに分割し、
前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用するように構成される、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１２］  前記ビデオコーダがビデオエンコーダを備え、前記ビデオコーダがさらに、符号化されたビットストリーム中に含めるためにシンタックス要素を生成するように構成され、前記シンタックス要素が前記中心値を示す、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１３］  前記ビデオコーダが、ピクセルの前記セットの平均値に基づいて前記中心値を決定するように構成される、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１４］  前記ビデオコーダが、ピクセルの前記セットの中央値に基づいて前記中心値を決定するように構成される、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１５］  前記ビデオコーダが、ヒストグラムのピークがあるピクセルに基づいて前記中心値を決定するように構成される、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１６］  ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１７］  前記ビデオコーダが、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成することによって、前記グループに基づいて前記帯域に対する前記オフセット値を決定するように構成される、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１８］  前記ビデオコーダが、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、前記グループに基づいて前記帯域に対する前記オフセット値を決定するように構成される、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ１９］  集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、Ｃ１０に記載のビデオコーディングデバイス。
［Ｃ２０］  １つまたは複数のプロセッサに、
ピクセルのセットの中心値を決定させ、このとき前記中心値が前記ピクセルの値に基づき、
前記中心値に基づいて、ピクセル値の帯域をグループへと分割させ、
前記グループに基づいて、前記帯域に対するオフセット値を決定させるように動作可能な命令を記憶する、コンピュータ可読記憶媒体。
［Ｃ２１］  前記１つまたは複数のプロセッサがビデオデコーダを備え、前記命令が、前記１つまたは複数のプロセッサに、
シンタックス要素を受信することによって前記中心値を決定させ、
前記シンタックス要素に基づいて帯域のグループを決定することによって、ピクセル値の前記帯域を帯域の前記グループへと分割させ、
前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用させる、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２２］  前記１つまたは複数のプロセッサがビデオデコーダを備え、前記コンピュータ可読記憶媒体が、前記１つまたは複数のプロセッサに、符号化されたビットストリーム中に含めるためにシンタックス要素を生成させるさらなる命令を記憶し、前記シンタックス要素が前記中心値を示す、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２３］  前記命令が、前記１つまたは複数のプロセッサに、ピクセルの前記セットの平均値を決定することによって前記中心値を決定させる、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２４］  前記命令が、前記１つまたは複数のプロセッサに、ピクセルの前記セットの中央値を決定することによって前記中心値を決定させる、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２５］  前記命令が、前記１つまたは複数のプロセッサに、ヒストグラムのピークがあるピクセルを決定することによって前記中心値を決定させる、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２６］  ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２７］  前記命令が、前記１つまたは複数のプロセッサに、前記第１のグループの第２の帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、前記グループに基づいて前記帯域に対する前記オフセット値を決定させる、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２８］  前記命令が、前記１つまたは複数のプロセッサに、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成することによって、前記グループに基づいて前記帯域に対する前記オフセット値を決定させる、Ｃ２０に記載のコンピュータ可読記憶媒体。
［Ｃ２９］  ビデオデータをコーディングするための装置であって、
ピクセルのセットの中心値を決定するための手段であって、前記中心値が前記ピクセルの値に基づく、手段と、
前記中心値に基づいて、ピクセル値の帯域をグループに分割するための手段と、
前記グループに基づいて、前記帯域に対するオフセット値を決定するための手段とを備える、装置。
［Ｃ３０］  ビデオデコーダを備え、前記中心値を決定するための前記手段がシンタックス要素を受信するための手段を備え、ピクセル値の前記帯域を帯域のグループに分割するための前記手段が前記シンタックス要素に基づいて帯域の前記グループを決定するための手段を備える、Ｃ２９に記載の装置であって、前記オフセット値に基づいてサンプル適応オフセット（ＳＡＯ）フィルタを適用するための手段をさらに備える、装置。
［Ｃ３１］  ビデオエンコーダを備える、Ｃ２９に記載の装置であって、
符号化されたビットストリームに含めるためのシンタックス要素を生成するための手段をさらに備え、前記シンタックス要素が前記中心値を示す、装置。
［Ｃ３２］  前記中心値を決定するための前記手段が、ピクセルの前記セットの平均値を決定するための手段を備える、Ｃ２９に記載の装置。
［Ｃ３３］  前記中心値を決定するための前記手段が、ピクセルの前記セットの中央値を決定するための手段を備える、Ｃ２９に記載の装置。
［Ｃ３４］  前記中心値を決定するための前記手段が、ヒストグラムのピークがある前記ピクセルを決定するための手段を備える、Ｃ２９に記載の装置。
［Ｃ３５］  ピクセルの前記セットが、最大コーディングユニット（ＬＣＵ）のグループを備える、Ｃ２９に記載の装置。
［Ｃ３６］  前記グループに基づいて前記帯域に対する前記オフセット値を決定するための前記手段が、第１のグループの第２の帯域オフセットに基づいて、前記第１のグループの帯域に対する帯域オフセット値を生成するための手段を備える、Ｃ２９に記載の装置。
［Ｃ３７］  前記グループに基づいて前記帯域に対する前記オフセット値を決定するための前記手段が、隣接する区分に対して決定された帯域オフセットに基づいて、第１のグループの帯域に対する帯域オフセット値を生成するための手段を備える、Ｃ２９に記載の装置。
【図１】
0005833249.tif 000003
【図２】
0005833249.tif 000004
【図３Ａ】
0005833249.tif 000005
【図３Ｂ】
0005833249.tif 000006
【図４】
0005833249.tif 000007
【図５】
0005833249.tif 000008
【図６】
0005833249.tif 000009