(57)【特許請求の範囲】
【請求項１】
複数のピクセルの１つのブロックの第１のサブピクセル位置の第１のサブピクセル値を計算することと、前記第１のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上にあり、前記複数のピクセルの１つのブロックは、前記複数のピクセルの１つのブロック内の整数ピクセル位置に対応する整数ピクセル値を含み、前記第１のサブピクセル値を計算することは、複数のフィルタサポート位置に対応する複数のフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することを含み、前記第１のサブピクセル値は、1つのピクセル位置および複数の整数ピクセル位置に対応する前記複数のフィルタサポート位置に対応する、
前記複数のピクセルの１つのブロックの第２のサブピクセル位置の第２のサブピクセル値を計算することと、前記第２のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上になく、前記第２のサブピクセル値を計算することは、複数の水平フィルタサポート位置に対応する複数のフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することと、複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することとを含み、
前記第２のサブピクセル位置が、１／４ピクセル位置であり、
前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を有し、
前記第１の１次元アレイが、前記第３の１次元アレイよりも多いフィルタ係数を有する、
少なくとも前記第１のサブピクセル値と前記第２のサブピクセル値とに基づいて予測ブロックを生成することと、を含む、
ビデオ信号を予測する方法。
【請求項２】
前記第１の補間フィルタが８タップフィルタを備え、
前記第２の補間フィルタが６タップフィルタを備え、
前記第３の補間フィルタが６タップフィルタを備える、請求項１に記載の方法。
【請求項３】
前記第１の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項１に記載の方法。
【請求項４】
前記方法がビデオ符号化プロセスの一部を形成し、
複数のシグナリングビットを符号化すること、を更に備え、前記シグナリングビットが、１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項１に記載の方法。
【請求項５】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを別々に識別する、請求項４に記載の方法。
【請求項６】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを備える組合せを識別する、請求項４に記載の方法。
【請求項７】
前記方法がビデオ符号化プロセスの一部を形成し、
フラグを符号化すること、を更に含み、前記フラグは、１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された１つの補間フィルタであることを示す、請求項１に記載の方法。
【請求項８】
前記方法がビデオ復号プロセスの一部を形成し、
複数のシグナリングビットを復号すること、を更に備え、前記シグナリングビットが、１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項１に記載の方法。
【請求項９】
複数のピクセルの１つのブロックを記憶するように構成されるメモリと、前記複数のピクセルの１つのブロックは前記複数のピクセルの１つのブロック内の複数の整数ピクセル位置に対応する複数の整数ピクセル値を含む、
前記メモリに結合され、
前記複数のピクセルの１つのブロックの１つの第１のサブピクセル位置の第１のサブピクセル値と前記複数のピクセルの１つのブロックの１つの第２のサブピクセル位置の１つの第２のサブピクセル値とを計算し、前記第１のサブピクセル値は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上の１つのサブピクセル位置に対応し、前記第２のサブピクセル値が、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上にない１つのサブピクセル位置に対応する、
少なくとも前記第１のサブピクセル値と前記第２のサブピクセル値とに基づいて予測ブロックを生成するように構成されたプロセッサとを備え、
前記第２のサブピクセル位置が、１／４ピクセル位置であり、
前記第１のサブピクセル値が、複数の整数ピクセル位置に対応する複数のフィルタサポート位置に対応する複数のフィルタ係数の第１の１次元アレイを定義する１つの第１の補間フィルタを適用することによって計算され、
前記第２のサブピクセル値が、複数の水平整数ピクセル位置に対応する複数の水平フィルタサポート位置に対応する複数のフィルタ係数の第２の１次元アレイを定義する１つの第２の補間フィルタを適用し、複数の垂直整数ピクセル位置に対応する複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することによって計算され、
前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、
前記第１の１次元アレイが、前記第３の１次元アレイよりも多いフィルタ係数を備える、ビデオ信号を予測するための装置。
【請求項１０】
前記第１の補間フィルタが８タップフィルタを備え、
前記第２の補間フィルタが６タップフィルタを備え、
前記第３の補間フィルタが６タップフィルタを備える、請求項９に記載の装置。
【請求項１１】
前記第１の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項９に記載の装置。
【請求項１２】
前記プロセッサが、複数のシグナリングビットを生成するように更に構成され、前記シグナリングビットが、１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項９に記載の装置。
【請求項１３】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを別々に識別する、請求項１２に記載の装置。
【請求項１４】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを備える組合せを識別する、請求項１２に記載の装置。
【請求項１５】
前記プロセッサが、送信のためのフラグを生成するように更に構成され、前記フラグは、１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された前記補間フィルタであることを示す、請求項９に記載の装置。
【請求項１６】
前記プロセッサが、複数のシグナリングビットを復号するように更に構成され、前記シグナリングビットが、１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項９に記載の装置。
【請求項１７】
前記プロセッサが１つのフラグを復号するように更に構成され、前記フラグは、１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された１つの補間フィルタであることを示す、請求項９に記載の装置。
【請求項１８】
前記プロセッサがビデオ符号化装置の構成要素である、請求項９に記載の装置。
【請求項１９】
前記プロセッサがビデオ復号装置の構成要素である、請求項９に記載の装置。
【請求項２０】
複数のピクセルの１つのブロックの１つの第１のサブピクセル位置の１つの第１のサブピクセル値を計算するための手段と、前記第１のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上にあり、前記複数のピクセルの１つのブロックは、前記複数のピクセルの１つのブロック内の複数の整数ピクセル位置に対応する複数の整数ピクセル値を含み、前記第１のサブピクセル値を計算することは、複数の整数ピクセル位置に対応する複数のフィルタサポート位置に対応する複数のフィルタ係数の１つの第１の１次元アレイを定義する１つの第１の補間フィルタを適用することを含み、
前記複数のピクセルの１つのブロックの１つの第２のサブピクセル位置の１つの第２のサブピクセル値を計算するための手段と、前記第２のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上になく、前記第２のサブピクセル値を計算することは、複数の水平整数ピクセル位置に対応する複数の水平フィルタサポート位置に対応する複数のフィルタ係数の１つの第２の１次元アレイを定義する１つの第２の補間フィルタを適用することと、複数の垂直整数ピクセル位置に対応する複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の１つの第３の１次元アレイを定義する１つの第３の補間フィルタを適用することとを含み、
少なくとも前記第１のサブピクセル値と前記第２のサブピクセル値とに基づいて１つの予測ブロックを生成するための手段と、を具備し、
前記第２のサブピクセル位置が、１／４ピクセル位置であり、
前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、
前記第１の１次元アレイが、前記第３の１次元アレイよりも多いフィルタ係数を備える、ビデオ信号を予測するための装置。
【請求項２１】
前記第１の補間フィルタが８タップフィルタを備え、
前記第２の補間フィルタが６タップフィルタを備え、
前記第３の補間フィルタが６タップフィルタを備える、請求項２０に記載の装置。
【請求項２２】
前記第１の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項２０に記載の装置。
【請求項２３】
複数のシグナリングビットを復号化するための手段を更に含み、前記シグナリングビットが、１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項２０に記載の装置。
【請求項２４】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを別々に識別する、請求項２３に記載の装置。
【請求項２５】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを備える組合せを識別する、請求項２３に記載の装置。
【請求項２６】
フラグを符号化する手段を更に備え、前記フラグは、１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された１つの補間フィルタであることを示す、請求項２０に記載の装置。
【請求項２７】
複数のシグナリングビットを復号化するための手段を更に備え、前記シグナリングビットは１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項２０に記載の装置。
【請求項２８】
フラグを復号するための手段を更に備え、前記フラグは１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された１つの補間フィルタであることを示する、請求項２０に記載の装置。
【請求項２９】
１つ以上のプロセッサによって実行されたとき、
複数のピクセルの１つのブロックの１つの第１のサブピクセル位置の１つの第１のサブピクセル値を計算することと、前記第１のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上にあり、前記複数のピクセルの１つのブロックは、前記複数のピクセルの１つのブロック内の複数の整数ピクセル位置に対応する複数の整数ピクセル値を含み、前記第１のサブピクセル値を計算することは、複数の整数ピクセル位置に対応する複数のフィルタサポート位置に対応する複数のフィルタ係数の１つの第１の１次元アレイを定義する１つの第１の補間フィルタを適用することを含み、
前記複数のピクセルの１つのブロックの１つの第２のサブピクセル位置の１つの第２のサブピクセル値を計算することと、前記第２のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上になく、前記第２のサブピクセル値を計算することは、複数の水平整数ピクセル位置に対応する複数の水平フィルタサポート位置に対応する複数のフィルタ係数の１つの第２の１次元アレイを定義する１つの第２の補間フィルタを適用することと、複数の垂直整数ピクセル位置に対応する複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の１つの第３の１次元アレイを定義する１つの第３の補間フィルタを適用することとを含み、
少なくとも前記第１のサブピクセル値と前記第２のサブピクセル値とに基づいて１つの予測ブロックを生成することと、を前記１つ以上のプロセッサに行わせる、１つ以上の命令を有形に記憶し、
前記第２のサブピクセル位置が、１／４ピクセル位置であり、
前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、
前記第１の１次元アレイが、前記第３の１次元アレイよりも多いフィルタ係数を備える、コンピュータ可読記憶媒体。
【請求項３０】
前記第１の補間フィルタが８タップフィルタを備え、
前記第２の補間フィルタが６タップフィルタを備え、
前記第３の補間フィルタが６タップフィルタを備える、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記第１の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記１つ以上のプロセッサによって実行されたとき、
前記プロセッサに複数のシグナリングビットを符号化させる１つ以上の追加の命令を記憶し、前記シグナリングビットは１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを別々に識別する、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記シグナリングビットが、前記第２の補間フィルタと前記第３の補間フィルタとを備える組合せを識別する、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記１つ以上のプロセッサによって実行されたとき、
前記プロセッサに１つのフラグを符号化させる１つ以上の追加の命令を記憶し、前記フラグは１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された１つの補間フィルタであることを示す、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記１つ以上のプロセッサによって実行されたとき、
前記プロセッサに複数のシグナリングビットを復号化させる１つ以上の追加の命令を記憶し、前記シグナリングビットは１つのサブピクセル位置に対して使用されるべき１つの特定の補間フィルタを識別する、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３７】
前記１つ以上のプロセッサによって実行されたとき、
前記プロセッサに1つのフラグを復号化させる１つ以上の追加の命令を記憶し、前記フラグは１つのサブピクセル位置に対して使用されるべき１つの補間フィルタが前記サブピクセル位置に対して前に使用された１つの補間フィルタであることを示す、請求項２９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１０年４月１２日に出願された米国仮出願第６１／３２３，２５０号、２０１０年６月２日に出願された米国仮出願第６１／３５０，７４３号、及び２０１０年７月２日に出願された米国仮出願第６１／３６１，１８８号の利益を主張する。
【０００２】
本開示は、デジタルビデオ符号化及び復号に関し、より詳細には、ビデオ符号化及び復号において使用される予測データを生成するために適用されるフィルタ処理技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録機器、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、スマートフォンなどを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行し得る。
【０００４】
ブロックベースのインター符号化は、ビデオシーケンスの連続する符号化ユニットのビデオブロック間の時間的冗長性を低減又は除去するために時間的予測を利用する、非常に有用な符号化技法である。符号化ユニットは、ビデオフレーム、ビデオフレームのスライス、ピクチャのグループ、又は符号化ビデオブロックの別の定義されたユニットを備え得る。インター符号化の場合、ビデオエンコーダは、２つ以上の隣接する符号化ユニットの対応するビデオブロックの移動を追跡するために動き推定及び動き補償を実行する。動き推定は、１つ以上の参照フレーム又は他の符号化ユニット中の対応する予測ビデオブロックに対するビデオブロックの変位を示す、動きベクトルを生成する。動き補償は、その動きベクトルを使用して、１つ以上の参照フレーム又は他の符号化ユニットから予測ビデオブロックを生成する。動き補償の後、符号化されている元のビデオブロックから予測ビデオブロックを減算することによって、残差ビデオブロックが形成される。
【０００５】
ビデオエンコーダはまた、残差ブロックの通信に関連するビットレートを更に低減するために、変換、量子化及びエントロピー符号化プロセスを適用し得る。変換技法は、離散コサイン変換（ＤＣＴ）又は概念的に同様のプロセスを備え得る。代替的に、ウェーブレット変換、整数変換、又は他のタイプの変換が使用され得る。ＤＣＴプロセスでは、一例として、ピクセル値のセットが、周波数領域におけるピクセル値のエネルギーを表し得る変換係数（transform coefficient）に変換される。量子化は、変換係数に適用され、一般に、所与の変換係数に関連するビット数を低減するプロセスを伴う。エントロピー符号化は、一連の符号化モード、動き情報、符号化ブロックパターン、及び量子化変換係数をまとめて圧縮する１つ以上のプロセスを備える。エントロピー符号化の例には、限定はしないが、コンテンツ適応型可変長符号化（ＣＡＶＬＣ：content adaptive variable length coding）及びコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ：context adaptive binary arithmetic coding）がある。
【０００６】
符号化ビデオブロックは、予測ブロックを生成又は識別するために使用され得る予測情報と、符号化されているブロックと予測ブロックとの間の差を示す残差データブロックとによって表され得る。予測情報は、予測データブロックを識別するために使用される１つ以上の動きベクトルを備え得る。動きベクトルが与えられれば、デコーダは、残差を符号化するために使用された予測ブロックを再構成することができる。従って、残差ブロックのセットと動きベクトルのセット（場合によっては幾つかの追加のシンタックス）とが与えられれば、デコーダは、最初に符号化されたビデオフレームを再構成することができる。連続するビデオフレーム又は他のタイプの符号化ユニットはしばしば極めて類似しているので、動き推定及び動き補償に基づくインター符号化は極めて良好な圧縮を達成することができる。符号化ビデオシーケンスは、残差データブロック、動きベクトル、場合によっては他のタイプのシンタックスを備え得る。
【０００７】
インター符号化において達成され得る圧縮レベルを改善するために、補間技法が開発されている。この場合、ビデオブロックを符号化するために使用される、動き補償中に生成された予測データは、動き推定において使用されるビデオフレーム又は他の符号化ユニットのビデオブロックのピクセルから補間され得る。補間は、予測１／２ピクセル（１／２ペル）値と予測１／４ピクセル（１／４ペル）値とを生成するためにしばしば実行される。１／２ペル値と１／４ペル値とはサブピクセルロケーションに関連する。ビデオシーケンス中の分数移動をキャプチャするために、分数動きベクトルを使用して、ビデオブロックをサブピクセル解像度で識別し、それによって、整数ビデオブロックよりも符号化されているビデオブロックに類似している予測ブロックを与え得る。
【発明の概要】
【０００８】
概して、本開示では、ビデオ符号化及び／又は復号プロセスの予測段階中にエンコーダ及びデコーダによって適用されるフィルタ処理技法について説明する。説明するフィルタ処理技法の態様は、分数補間中に使用される予測データの精度を向上させ得、場合によっては、ピクセル（画素）の整数ブロックの予測データを改善し得る。本開示には、幾つかのサブピクセル位置を指す幾つかの動きベクトルのための相対的に長いフィルタと、他のサブピクセル位置を指す動きベクトルのための相対的に短いフィルタとを使用することを含む、幾つかの態様がある。
【０００９】
補間目的のための良好な周波数応答をもつフィルタを設計するために、相対的に長いフィルタ（例えば、６個の代わりに８個の係数又はタップ）を使用することが望ましいことがある。そのようなより長いフィルタは、ビデオコーダの圧縮効率を改善することができるが、計算量が大きくなる。計算量の大きい増加なしにより長いフィルタを用いてより良い性能の利益を得るために、本開示で説明する技法は、長いフィルタと短いフィルタとの混合の使用を含む。例えば、動きベクトルが、単一のフィルタ処理が必要とされる位置を指す場合、８タップフィルタが使用され得る。２つのフィルタ処理演算が必要とされる位置の場合、６タップフィルタが使用され得る。従って、最悪計算量は、依然として、Ｈ．２６４規格の場合と同じである、６タップフィルタを用いた２つのフィルタ処理演算によって制限されるが、８タップフィルタの使用は、Ｈ．２６４規格と比較して改善された予測データを生成し得る。
【００１０】
本開示の他の態様は、使用されるフィルタのタイプ、場合によっては使用されるフィルタ係数を搬送するために、ビットストリーム中の情報を符号化するための技法に関する。本開示のこれら及び他の態様は以下の説明から明らかになろう。
【００１１】
一例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得することと、フィルタサポート位置に対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用すること含み、第１のサブピクセル位置の第１のサブピクセル値を計算することと、水平フィルタサポート位置に対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することを含み、第２のサブピクセル位置の第２のサブピクセル値を計算することと、少なくとも第１のサブピクセル値と第２のサブピクセル値とに基づいて予測ブロックを生成することとを含み、前記第２のサブピクセル値を計算することは垂直フィルタサポート位置に対応するフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することとを含み、第１の１次元アレイが、第２の１次元アレイよりも多いフィルタ係数を有し、第１の１次元アレイが、第３の１次元アレイよりも多いフィルタ係数を備える、方法を提供する。
【００１２】
別の例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得することと、第１のサブピクセル値と第２のサブピクセル値とを計算することと、少なくとも第１のサブピクセル値と第２のサブピクセル値とに基づいて予測ブロックを生成することとを行うように構成される予測ユニットを備え、第１のサブピクセル値が、フィルタサポート位置に対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって計算され、第２のサブピクセル値が、水平フィルタサポート位置に対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用し、垂直フィルタサポート位置に対応するフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することによって計算され、第１の１次元アレイが、第２の１次元アレイよりも多いフィルタ係数を有し、第１の１次元アレイが、第３の１次元アレイよりも多いフィルタ係数を有する、装置を提供する。
【００１３】
別の例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得するための手段と、第１のサブピクセル位置の第１のサブピクセル値を計算するための手段と、第２のサブピクセル位置の第２のサブピクセル値を計算するための手段と、少なくとも第１のサブピクセル値と第２のサブピクセル値とに基づいて予測ブロックを生成するための手段と具備し、第１のサブピクセル値を計算することが、フィルタサポート位置に対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することを含み、第２のサブピクセル値を計算することが、水平フィルタサポート位置に対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することと、垂直フィルタサポート位置に対応するフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することとを含み、第１の１次元アレイが、第２の１次元アレイよりも多いフィルタ係数を有し、第１の１次元アレイが、第３の１次元アレイよりも多いフィルタ係数を有する、装置を提供する。
【００１４】
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はデジタル信号プロセッサ（ＤＳＰ）など、１つ以上のプロセッサで実行され得る。本技法を実行するソフトウェアは、最初にコンピュータ可読媒体に記憶され、プロセッサにロードされ、実行され得る。
【００１５】
従って、本開示はまた、１つ以上のプロセッサによって実行されたとき、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得することと、第１のサブピクセル位置の第１のサブピクセル値を計算することと、第２のサブピクセル位置の第２のサブピクセル値を計算することと、少なくとも第１のサブピクセル値と第２のサブピクセル値とに基づいて予測ブロックを生成することとを１つ以上のプロセッサに行わせる、１つ以上の命令を有形に記憶し、第１のサブピクセル値を計算することが、フィルタサポート位置に対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することを含み、第２のサブピクセル値を計算することが、水平フィルタサポート位置に対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することと、垂直フィルタサポート位置に対応するフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することとを含み、第１の１次元アレイが、第２の１次元アレイよりも多いフィルタ係数を有し、第１の１次元アレイが、第３の１次元アレイよりも多いフィルタ係数を有する、非一時的コンピュータ可読記憶媒体を意図する。
【００１６】
本開示の１つ以上の態様の詳細は、添付の図面及び下記の説明に記載されている。本開示で説明する技法の他の特徴、目的、及び利点は、これらの説明及び図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１７】
【図１】本開示の技法を実装し得る１つの例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】本開示に一致するフィルタ処理技法を実行し得るビデオエンコーダの一例を示すブロック図。
【図３】予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図。
【図４】予測データに関連する整数ピクセル位置と、補間予測データに関連する垂直サブピクセル位置及び水平サブピクセル位置とを示す概念図。
【図５】予測データに関連する整数ピクセル位置と、補間予測データに関連する非垂直及び非水平サブピクセル２Ｌサブピクセル位置とを示す概念図。
【図６】サブピクセルロケーションに対する、係数対称性をもつ水平８ピクセルフィルタサポートを示す概念図。
【図７】サブピクセルロケーションに対する、係数対称性をもたない水平８ピクセルフィルタサポートを示す概念図。
【図８】サブピクセルロケーションに対する、係数対称性をもつ垂直８ピクセルフィルタサポートを示す概念図。
【図９】サブピクセルロケーションに対する、係数対称性をもたない垂直８ピクセルフィルタサポートを示す概念図。
【図１０】本明細書で説明する方法で符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図。
【図１１】本開示に一致するフィルタシグナリングのための技法を示すための流れ図。
【図１２】本開示に一致するフィルタシグナリングのための技法を示すための流れ図。
【図１３】本開示に一致するフィルタシグナリングのための技法を示すための流れ図。
【図１４】本開示に一致するフィルタシグナリングのための技法を示すための流れ図。
【図１５】本開示に一致する補間フィルタ処理のための技法を示すための流れ図。
【発明を実施するための形態】
【００１８】
本開示では、ビデオ符号化及び／又は復号プロセスの予測段階中にエンコーダ及びデコーダによって適用されるフィルタ処理技法について説明する。説明するフィルタ処理技法は、分数補間中に使用される予測データの精度を改善し得、場合によっては、ピクセルの整数ブロックの予測データを改善し得る。本開示には、幾つかのサブピクセル位置を指す幾つかの動きベクトルのための相対的に長いフィルタと、他のサブピクセル位置を指す動きベクトルのための相対的に短いフィルタとの使用を含む、幾つかの態様がある。より長いフィルタは、概して、タップとも呼ばれる、より多い数のフィルタ係数をもつ補間フィルタを指し、より短いフィルタは、概して、より少ないタップをもつ補間フィルタを指す。概して、「より長いフィルタ」及び「より短いフィルタ」という句は、より長いフィルタがより短いフィルタよりも長く、より短いフィルタがより長いフィルタよりも短いことを意味する相対語である。但し、より長いフィルタがより短いフィルタよりも長く、より短いフィルタがより長いフィルタよりも短い限り、これらのフレーズは、場合によっては特定の長さを必要としない。例えば、８タップフィルタと６タップフィルタとを参照する場合は、８タップフィルタはより長いフィルタとなり、６タップフィルタはより短いフィルタとなる。しかしながら、８タップフィルタと１０タップフィルタとを参照する場合は、８タップフィルタはより短いフィルタとなる。
【００１９】
より多いタップをもつフィルタは、概して、より少ないタップをもつフィルタと比較して、補間目的のためのより良好な周波数応答を与える。例えば、８個のタップをもつフィルタは、概して、６個のタップをもつフィルタよりも良好な周波数応答を生成する。より短いフィルタと比較して、より長いフィルタは、ビデオコーダの圧縮効率を改善し得るが、計算量が大きくなる。計算量の大きい増加なしにより長いフィルタを用いてより良い性能の利益を得るために、本開示の態様は、長いフィルタと短いフィルタとの混合の使用を含む。例えば、動きベクトルが、単一のフィルタ処理演算が必要とされるサブピクセルロケーションを指す場合、８タップフィルタが使用され得る。２つのフィルタ処理演算が必要とされるサブピクセルロケーションの場合、２つの６タップフィルタなど、より短いフィルタが使用され得る。従って、より短いフィルタとより長いフィルタとの間のタップの数の差が大きすぎない限り、最悪計算量は、依然として、一般に、より短いフィルタを用いた２つのフィルタ処理演算によって制限される。
【００２０】
図１は、本開示の態様を実装するために使用され得る１つの例示的なビデオ符号化及び復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１５を介して符号化ビデオデータを宛先機器１６に送信するソース機器１２を含む。ソース機器１２及び宛先機器１６は、広範囲の機器のいずれかを備え得る。場合によっては、ソース機器１２及び宛先機器１６は、所謂セルラー電話又は衛星無線電話のワイヤレスハンドセットなどのワイヤレス通信機器か、或いは通信チャネル１５を介してビデオ情報を通信することができる任意のワイヤレス機器（その場合、通信チャネル１５はワイヤレスである）を備える。但し、予測符号化中のフィルタ処理及び予測データの生成に関係する本開示の技法は、必ずしもワイヤレスアプリケーション又は設定に限定されるとは限らない。従って、本開示の態様はまた、物理的ワイヤ、光ファイバー又は他の物理媒体若しくはワイヤレス媒体を介して通信する機器を含む、広範囲の他の設定及び機器において有用であり得る。更に、本符号化技法又は復号技法は、必ずしも他の機器と通信するとは限らないスタンドアロン機器においても適用され得る。
【００２１】
図１の例では、ソース機器１２は、ビデオソース２０と、ビデオエンコーダ２２と、変調器／復調器（モデム）２３と、送信機２４とを含み得る。宛先機器１６は、受信機２６と、モデム２７と、ビデオデコーダ２８と、表示装置３０とを含み得る。本開示によれば、ソース機器１２のビデオエンコーダ２２は、ビデオ符号化プロセスの一部として本開示の技法のうちの１つ又は複数を適用するように構成され得る。同様に、宛先機器１６のビデオデコーダ２８は、ビデオ復号プロセスの一部として本開示の技法のうちの１つ又は複数を適用するように構成され得る。
【００２２】
また、図１の図示のシステム１０は例示にすぎない。本開示の様々な技法は、ブロックベースの予測符号化をサポートする任意の符号化装置によって、又はブロックベースの予測復号をサポートする任意の復号装置によって実行され得る。ソース機器１２及び宛先機器１６は、ソース機器１２が宛先機器１６に送信するための符号化ビデオデータを生成するような、符号化装置の例にすぎない。場合によっては、機器１２、１６の各々がビデオ符号化構成要素と復号構成要素とを含むので、機器１２、１６は、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオ電話通信のためのビデオ機器１２とビデオ機器１６との間の一方向又は双方向のビデオ送信をサポートし得る。
【００２３】
ソース機器１２のビデオソース２０は、ビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ、又はビデオコンテンツプロバイダからのビデオフィードなど、ビデオキャプチャ機器を含み得る。さらなる代替として、ビデオソース２０は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース２０がビデオカメラである場合、ソース機器１２及び宛先機器１６は、所謂カメラ付き携帯電話又はテレビ電話を形成し得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ又はコンピュータ生成ビデオは、ビデオエンコーダ２２によって符号化され得る。次いで、符号化されたビデオ情報は、例えば、符号分割多元接続（ＣＤＭＡ）又は別の通信規格などの通信規格に従ってモデム２３によって変調され、送信機２４及び通信チャネル１５を介して宛先機器１６に送信され得る。モデム２３は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、及び１つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。
【００２４】
宛先機器１６の受信機２６は通信チャネル１５を介して情報を受信し、モデム２７はその情報を復調する。送信機２４と同様に、受信機２６は、増幅器、フィルタ、及び１つ以上のアンテナを含む、データを受信するために設計された回路を含み得る。幾つかの例では、送信機２４及び／又は受信機２６は、受信回路と送信回路の両方を含む単一のトランシーバ構成要素内に組み込まれ得る。モデム２７は、信号復調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。幾つかの例では、モデム２３及び２７は、変調と復調の両方を実行するための構成要素を含み得る。
【００２５】
また、ビデオエンコーダ２２によって実行されるビデオ符号化プロセスは、動き補償中に本明細書で説明する技法のうちの１つ以上を実装し得る。ビデオデコーダ２８によって実行されるビデオ復号プロセスはまた、復号プロセスのそれの動き補償段階中にそのような技法を実行し得る。「コーダ」という用語は、本明細書では、ビデオ符号化又はビデオ復号を実行する専用コンピュータ機器又は装置を指すために使用される。「コーダ」という用語は、一般に、任意のビデオエンコーダ、ビデオデコーダ、又は複合エンコーダ／デコーダ（コーデック）を指す。「符号化」という用語は、符号化又は復号を指す。表示装置３０は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００２６】
図１の例では、通信チャネル１５は、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的伝送線路など、ワイヤレス又はワイヤードの任意の通信媒体、或いはワイヤレス及びワイヤードの媒体の任意の組合せを備え得る。通信チャネル１５は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル１５は、概して、ビデオデータをソース機器１２から宛先機器１６に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル１５は、ソース機器１２から宛先機器１６への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【００２７】
ビデオエンコーダ２２及びビデオデコーダ２８は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）とも記載されるＩＴＵ−Ｔ  Ｈ．２６４規格など、１つ以上のビデオ圧縮規格に従って動作し得るか、又は次世代ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定のビデオ符号化規格にも限定されない。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２２及びビデオデコーダ２８は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２８】
ビデオエンコーダ２２及びビデオデコーダ２８はそれぞれ、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、或いはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２２及びビデオデコーダ２８の各々は１つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれかは符号化機能及び復号機能を与える複合コーデックの一部としてそれぞれモバイル機器、加入者機器、ブロードキャスト機器、サーバなどに統合され得る。
【００２９】
ビデオシーケンスは、一般に一連のビデオフレームを含む。ビデオエンコーダ２２は、ビデオデータを符号化するために個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定の符号化規格に応じてサイズが異なり得る。各ビデオフレームは一連のスライスを含む。各スライスは一連のマクロブロックを含み得、それらのマクロブロックはサブブロックに構成され得る。一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、又は４×４、及びクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、ピクセルデータのブロック、又は、例えば離散コサイン変換（ＤＣＴ）若しくは概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを備え得る。
【００３０】
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションに対して使用され得る。概して、マクロブロック及び様々なサブブロックはビデオブロックであると見なされ得る。更に、スライスは、マクロブロック及び／又はサブブロックなど、一連のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。「符号化ユニット」という用語は、フレーム全体、フレームのスライス、又は使用される符号化技法に従って定義される別の単独で復号可能なユニットなど、ビデオフレームの単独で復号可能な任意のユニットを指す。
【００３１】
ビデオブロックを符号化するために、ビデオエンコーダ２２は、イントラ予測又はインター予測を実行して、予測ブロックを生成する。ビデオエンコーダ２２は、符号化されるべき元のビデオブロックから予測ブロックを減算して、残差ブロックを生成する。従って、残差ブロックは、符号化されているブロックと予測ブロックとの間の差を示す。ビデオエンコーダ２２は、残差ブロックに対して変換を実行して、変換係数のブロックを生成し得る。イントラベース又はインターベースの予測符号化技法及び変換技法の後、ビデオエンコーダ２２は量子化を実行する。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するように係数を量子化するプロセスを指す。量子化の後、コンテキスト適応型可変長符号化（ＣＡＶＬＣ）又はコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）など、エントロピー符号化方法に従ってエントロピー符号化が実行され得る。ビデオエンコーダ２２によって実行される符号化プロセスの各ステップのそれ以上の詳細について、図２において以下でより詳細に説明する。
【００３２】
宛先機器１６において、ビデオデコーダ２８が符号化ビデオデータを受信する。ビデオデコーダ２８は、量子化係数を得るために、ＣＡＶＬＣ又はＣＡＢＡＣなど、エントロピー符号化方法に従って、受信したビデオデータをエントロピー復号する。ビデオデコーダ２８は、逆量子化（inverse quantization）（逆量子化（de-quantization））機能及び逆変換機能を適用して、ピクセル領域中で残差ブロックを再構成する。ビデオデコーダ２８はまた、符号化ビデオデータ中に含まれる（例えば、符号化モード、動きベクトル、フィルタ係数を定義するシンタックスなどの）制御情報又はシンタックス情報に基づいて予測ブロックを生成する。ビデオデコーダ２８は、予測ブロックを再構成された残差ブロックと加算して、表示のための再構成されたビデオブロックを生成する。ビデオデコーダ２８によって実行される復号プロセスの各ステップのそれ以上の詳細について、図１０に関して以下でより詳細に説明する。
【００３３】
本開示の態様によれば、ビデオエンコーダ２２及びビデオデコーダ２８は、動き補償中に１つ以上の補間フィルタ処理技法を使用し得る。特に、本開示の一態様によれば、ビデオエンコーダ２２及び／又はビデオデコーダ２８は、整数ピクセル位置に対応する整数ピクセル値を含んでいるピクセルのブロックを取得し得、ピクセルのブロックのサブピクセル値を決定するためにより長いフィルタとより短いピクセルとの混合を使用し得る。
【００３４】
図２は、本開示に一致するフィルタ処理技法を実行し得るビデオエンコーダ５０の一例を示すブロック図である。ビデオエンコーダ５０は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータ機器又は装置の一例である。ビデオエンコーダ５０は、機器２０のビデオエンコーダ２２、又は異なる機器のビデオエンコーダに対応し得る。ビデオエンコーダ５０は、ビデオフレーム内のブロックのイントラ符号化及びインター符号化を実行し得るが、説明を簡単にするために、イントラ符号化構成要素は図２に示していない。イントラ符号化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測を利用する。インター符号化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測を利用する。イントラモード（Ｉモード）は空間ベースの圧縮モードを指すことがあり、予測（Ｐモード）又は双方向（Ｂモード）などのインターモードは、時間ベースの圧縮モードを指すことがある。本開示の技法はインター符号化中に適用し、従って、説明を簡単で容易にするために、空間予測ユニットなどのイントラ符号化ユニットは図２に示していない。
【００３５】
図２に示すように、ビデオエンコーダ５０は、符号化されるべきビデオフレーム内のビデオブロックを受信する。図２の例では、ビデオエンコーダ５０は、予測ユニット３２と、メモリ３４と、加算器４８と、変換ユニット３８と、量子化ユニット４０と、エントロピー符号化ユニット４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ５０はまた、逆量子化ユニット４２と、逆変換ユニット４４と、加算器５１とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図示せず）をも含め得る。所望される場合、デブロッキングフィルタは、一般に、加算器５１の出力をフィルタ処理するであろう。
【００３６】
予測ユニット３２は、動き推定（ＭＥ）ユニット３５と、動き補償（ＭＣ）ユニット３７とを含み得る。フィルタユニット３９は、本開示によれば、予測ユニット３２中に含められ得、動き推定及び／又は動き補償の一部として補間又は補間のようなフィルタ処理を実行するために、ＭＥユニット３５とＭＣユニット３７の一方又は両方によって起動され得る。フィルタユニット３９は、実際は、本明細書で説明するように、多数の様々なタイプの補間及び補間タイプフィルタ処理を可能にする複数の様々なフィルタを表し得る。従って、予測ユニット３２は複数の補間又は補間のようなフィルタを含み得る。更に、フィルタユニット３９は、複数のサブピクセルロケーションのための複数のフィルタインデックスを含み得る。フィルタインデックスは、ビットパターン及びサブピクセルロケーションを特定の補間フィルタに関連付ける。符号化プロセス中に、ビデオエンコーダ５０は、符号化されるべき（図２で「ビデオブロック」と標示される）ビデオブロックを受信し、予測ユニット３２は、インター予測符号化を実行して（図２で「予測ブロック」と標示される）予測ブロックを生成する。特に、ＭＥユニット３５は、メモリ３４中の予測ブロックを識別するために動き推定を実行し得、ＭＣユニット３７は、予測ブロックを生成するために動き補償を実行し得る。
【００３７】
動き推定は、一般に、ビデオブロックの動きを推定する、動きベクトルを生成するプロセスと考えられる。動きベクトルは、例えば、現在のフレーム（又は、他の符号化ユニット）内の符号化されるべきブロックに対する、予測フレーム又は参照フレーム（又は、他の符号化ユニット、例えばスライス）内の予測ブロックの変位を示し得る。参照フレーム（又は、参照フレームの部分）は、時間的に、現在のビデオブロックが属するビデオフレーム（又は、ビデオフレームの部分）より前に、又はその後に配置され得る。動き補償は、一般に、メモリ３４から予測ブロックをフェッチ又は生成するプロセス、或いは、動き推定によって決定された動きベクトルに基づいて、フィルタ処理された予測データを補間するか、又は場合によっては生成するプロセスと考えられる。
【００３８】
ＭＥユニット３５は、符号化されるべきビデオブロックを１つ以上の参照フレーム（例えば、前のフレーム及び／又は後続のフレーム）のビデオブロックと比較することによって、そのビデオブロックに適した動きベクトルを選択する。ＭＥユニット３５は、分数ピクセル、分数ペル、又はサブピクセル動き推定と呼ばれることがある分数ピクセル精度を用いて動き推定を実行し得る。従って、分数ピクセル、分数ペル、及びサブピクセル動き推定という用語は、互換的に使用され得る。分数ピクセル動き推定では、ＭＥユニット３５は、整数ピクセルロケーション以外のロケーションへの変位を示す動きベクトルを選択し得る。このようにして、分数ピクセル動き推定により、予測ユニット３２は、整数ピクセル（又は、フルピクセル）ロケーションよりも高い精度を用いて動きを追跡し、従って、より正確な予測ブロックを生成することが可能になる。分数ピクセル動き推定は、１／２ピクセル精度、１／４ピクセル精度、１／８ピクセル精度又は任意のより微細な精度を有し得る。ＭＥユニット３５は、動き推定プロセス中に任意の必要な補間のために（１つ又は複数の）フィルタ３９を起動し得る。
【００３９】
分数ピクセル動き補償を実行するために、ＭＣユニット３７は、（補間フィルタ処理と呼ばれることがある）補間を実行して、（本明細書ではサブピクセル値又は分数ピクセル値と呼ぶ）サブピクセル解像度におけるデータを生成し得る。ＭＣユニット３７は、この補間のために（１つ又は複数の）フィルタ３９を起動し得る。予測ユニット３２は、本明細書で説明する技法を使用して補間（又は、整数ピクセルの補間様フィルタ処理）を実行し得る。
【００４０】
符号化されるべきビデオブロックのための動きベクトルがＭＥユニット３５によって選択されると、ＭＣユニット３７は、その動きベクトルに関連する予測ビデオブロックを生成する。ＭＣユニット３７は、ＭＣユニット３５によって決定された動きベクトルに基づいて、メモリ３４から予測ブロックをフェッチし得る。分数ピクセル精度をもつ動きベクトルの場合、ＭＣユニット３７は、そのようなデータをサブピクセル解像度に対して補間するために、例えば、このプロセスのために（１つ又は複数の）フィルタ３９を起動して、メモリ３４からのデータをフィルタ処理する。場合によっては、サブピクセル予測データを生成するために使用された補間フィルタ処理技法又はモードは、符号化ビットストリームに含めるための、エントロピー符号化ユニット４６への１つ以上の補間シンタックス要素として示されることがある。
【００４１】
予測ユニット３２が予測ブロックを生成すると、ビデオエンコーダ５０は、符号化されている元のビデオブロックから予測ブロックを減算することによって（図２で「残差ブロック」と標示される）残差ビデオブロックを形成する。加算器４８は、この減算演算を実行する１つ以上の構成要素を表す。変換ユニット３８は、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオブロックを生成する。変換ユニット３８は、例えば、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義された変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。いずれの場合も、変換ユニット３８は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域に変換し得る。
【００４２】
量子化ユニット４０は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の後、エントロピー符号化ユニット４６が量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット４６は、ＣＡＶＬＣ、ＣＡＢＡＣ、又は別のエントロピー符号化方法を実行し得る。
【００４３】
エントロピー符号化ユニット４６はまた、ビデオエンコーダ５０の予測ユニット３２又は他の構成要素から得られた１つ以上の予測シンタックス要素を符号化し得る。１つ以上の予測シンタックス要素は、符号化モード、１つ以上の動きベクトル、サブピクセルデータを生成するために使用された補間技法、フィルタ係数のセット又はサブセット、或いは予測ブロックの生成に関連する他の情報を含み得る。係数予測及び量子化ユニット４１は、本開示の幾つかの態様によれば、フィルタ係数などの予測シンタックスを予測符号化し、量子化し得る。エントロピー符号化ユニット４６によるエントロピー符号化の後、符号化ビデオとシンタックス要素は、別の機器に送信されるか、或いは後で送信又は検索するためにアーカイブされ得る。
【００４４】
逆量子化ユニット４２及び逆変換ユニット４４は、それぞれ逆量子化及び逆変換を適用して、例えば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。（図２で「再構成された残差ブロック」と標示される）再構成された残差ブロックは、変換ユニット３８に与えられる残差ブロックの再構成されたバージョンを表し得る。再構成された残差ブロックは、量子化演算及び逆量子化演算によって生じた細部の損失により、加算器４８によって生成された残差ブロックとは異なり得る。加算器５１は、再構成された残差ブロックを、予測ユニット３２によって生成された動き補償された予測ブロックに加算して、メモリ３４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム又は後続の符号化ユニット中のブロックをその後符号化するために使用され得る参照ブロックとして予測ユニット３２によって使用され得る。
【００４５】
上記で説明したように、予測ユニット３２は、分数ピクセル（又は、サブピクセル）精度を用いて動き推定を実行し得る。予測ユニット３２は、分数ピクセル動き推定を使用するとき、本開示で説明する補間演算を使用してサブピクセル解像度（例えば、サブピクセル値又は分数ピクセル値）におけるデータを生成し得る。言い換えれば、補間演算を使用して、整数ピクセル位置間の位置における値を計算する。整数ピクセル位置間の距離の１／２に配置されるサブピクセル位置は１／２ピクセル（１／２ペル）位置と呼ばれることがあり、整数ピクセル位置と１／２ピクセル位置との間の距離の１／２に配置されるサブピクセル位置は１／４ピクセル（１／４ペル）位置と呼ばれることがあり、整数ピクセル位置（又は、１／２ピクセル位置）と１／４ピクセル位置との間の距離の１／２に配置されるサブピクセル位置は１／８ピクセル（１／８ペル）位置などと呼ばれる。
【００４６】
図３は、予測データに関連する整数ピクセル（又は、フルピクセル）位置と、補間予測データに関連するサブピクセル（又は、分数ピクセル）位置とを示す概念図である。図３の概念図では、異なるボックスが、フレーム又はフレームのブロック内のピクセル及びサブピクセルロケーション又は位置を表す。（実線のボックス中の）大文字は整数ピクセルロケーションを表し、（点線のボックス中の）小文字はサブピクセルロケーションを表す。特に、ピクセルロケーションＡ１〜Ａ６、Ｂ１〜Ｂ６、Ｃ１〜Ｃ６、Ｄ１〜Ｄ６、Ｅ１〜Ｅ６及びＦ１〜Ｆ６は、フレーム、スライス、又は他の符号化ユニット内の整数ピクセルロケーションの６×６アレイを表す。また、本開示で後述する例とともに使用されるべき追加の整数ピクセルロケーションＧ３及びＨ３が図３に示されている。サブピクセルロケーション「ａ」〜「ｏ」は、整数ピクセルＣ３に関連する１５個のサブピクセルロケーション、例えば、整数ピクセルロケーションＣ３とＣ４とＤ３とＤ４との間のサブピクセルロケーションを表す。同様のサブピクセルロケーションが、あらゆる整数ピクセルロケーションに対して存在し得る。サブピクセルロケーション「ａ」〜「ｏ」は、整数ピクセルＣ３に関連するあらゆる１／２ペル及び１／４ペルピクセルロケーションを表す。
【００４７】
整数ピクセルロケーションは、ビデオデータが最初に生成されたとき、フォトダイオードなどの物理的センサ要素に関連し得る。フォトダイオードは、センサのロケーションにおける光源の強度を測定し、ピクセル強度値を整数ピクセルロケーションに関連付け得る。この場合も、各整数ピクセルロケーションは、１５個の（又は場合によってはより多くの）サブピクセルロケーションの関連するセットを有し得る。整数ピクセルロケーションに関連するサブピクセルロケーションの数は所望の精度に依存し得る。図３に示す例では、所望の精度は１／４ピクセル精度であり、その場合、整数ピクセルロケーションの各々は、１５個の異なるサブピクセル位置と対応する。より多い又はより少ないサブピクセル位置は、所望の精度に基づいて各整数ピクセルロケーションに関連し得る。１／２ピクセル精度の場合、例えば、各整数ピクセルロケーションは、３つのサブピクセル位置と対応し得る。別の例として、整数ピクセルロケーションの各々は、１／８ピクセル精度の場合、６３個のサブピクセル位置と対応し得る。各ピクセルロケーションは、１つ以上のピクセル値、例えば、１つ以上の輝度及びクロミナンス値を定義し得る。
【００４８】
Ｙが輝度を表し得、Ｃｂ及びＣｒが３次元ＹＣｂＣｒ色空間のクロミナンスの２つの異なる値を表し得る。各ピクセルロケーションは、実際に、３次元色空間の３つのピクセル値を定義し得る。但し、本開示の技法は、簡単のために１次元に関する予測を指すことがある。技法について１次元のピクセル値に関して説明する限り、同様の技法が他の次元に拡張され得る。場合によっては、クロミナンス値は予測より前にサブサンプリングされるが、人間の視覚はピクセル色よりもピクセル強度により反応するので、予測は、一般に、サブサンプリングなしに輝度空間中で行われる。
【００４９】
図３の例では、整数ピクセル「Ｃ３」に関連する、サブピクセル位置とも呼ばれる、サブピクセルロケーションが１／４ピクセル精度について示されている。ピクセルＣ３に関連する１５個のサブピクセル位置は、「ａ」、「ｂ」、「ｃ」、「ｄ」、「ｅ」、「ｆ」、「ｇ」、「ｈ」、「ｉ」、「ｊ」、「ｋ」、「ｌ」、「ｍ」、「ｎ」、及び「ｏ」と標示される。他の整数ピクセルロケーションに関連する他の分数ロケーションの大部分は、簡単のために図示していない。サブピクセルロケーション「ｂ」、「ｈ」及び「ｊ」は１／２ピクセルロケーションと呼ばれることがあり、サブピクセルロケーション「ａ」、「ｃ」、「ｄ」、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｋ」、「ｌ」、「ｍ」、及び「ｏ」は１／４ピクセルロケーションと呼ばれることがある。更に、本開示では、整数ピクセルと同じ水平軸に沿って配向されたサブピクセル位置は、水平サブピクセルと呼ばれることがある。サブピクセル「ａ」、「ｂ」、及び「ｃ」は水平サブピクセルの例である。整数ピクセルと同じ垂直軸の上に配向されたサブピクセルは、垂直サブピクセルと呼ばれることがある。サブピクセル「ｄ」、「ｈ」、及び「ｌ」は、垂直サブピクセルの例である。本開示の態様は、単一の線形補間フィルタを使用して水平サブピクセルと垂直サブピクセルとのピクセル値を決定することを含み、従って、本開示では、水平サブピクセルと垂直サブピクセルとをまとめて１Ｌサブピクセルと呼ぶことがある。図４は、整数ピクセル（Ｃ１〜Ｃ６、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、及びＦ３）のグループに対する１Ｌサブピクセル（ａ、ｂ、ｃ、ｄ、ｈ、ｌ）を示す概念図である。
【００５０】
本開示の態様は、水平方向に適用される線形補間フィルタと垂直方向に適用される線形補間フィルタとの２つの線形補間フィルタを使用して、サブピクセル「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」などの非垂直、非水平サブピクセルのピクセル値を決定することを含む。従って、本開示では、サブピクセル「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」などの非垂直、非水平サブピクセルを２Ｌサブピクセルと呼ぶことがある。図５は、整数ピクセル（Ｃ１〜Ｃ６、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、及びＦ３）のグループに対する２Ｌサブピクセル（ｅ、ｆ、ｇ、ｉ、ｊ、ｋ、ｍ、ｎ、ｏ）を示す概念図である。
【００５１】
図６は、サブピクセル位置「ｂ」に対する８つの水平線形ピクセルサポート位置Ｃ０〜Ｃ７を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置Ｃ０〜Ｃ７の係数のセット全体を定義するために、Ｃ０、Ｃ１、Ｃ２及びＣ３の４つのフィルタ係数のみがあればよいことを意味する。Ｃ０はＣ７と対称であり、Ｃ１はＣ６と対称であり、Ｃ２はＣ５と対称であり、Ｃ３はＣ４と対称である。従って、サブピクセル位置「ｂ」を補間するために必要とされる８つの係数のセットを定義するために、符号化ビデオビットストリームの一部として４つの係数のみを通信するか、又はフィルタユニット３９によって記憶すればよい。残りの係数は、通信された係数に基づいてデコーダにおいて生成され得る。特に、デコーダは、対称性が適用することを知るようにプログラムされ得、対称性は、通信された係数に基づいて残りの係数をどのように生成すべきかを定義することができる。
【００５２】
図７は、サブピクセルに対する８つの水平線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。従って、サブピクセル位置「ａ」に関するフィルタサポートのための係数のセットを定義するために、全ての８つの係数が必要とされる。しかしながら、ピクセル対称性は、サブピクセル位置「ａ」に関するこれらの同じ係数が、サブピクセル位置「ｃ」のフィルタサポートを導出するためにも使用され得ることを意味する。サブピクセル位置「ａ」に関するフィルタサポートのための８つの係数が１次元アレイと見なされた場合、サブピクセル「ａ」の値を決定したときのＣ７の係数はサブピクセル「ｃ」の値を決定したときのＣ０の係数であり得、Ｃ６の係数はＣ１の係数であり得るなどのように、サブピクセル「ｃ」のための８つの係数はアレイを反転することによって発見され得る。従って、例えば、適応補間フィルタ処理（ＡＩＦ：adaptive interpolation filtering）を使用する場合、フィルタ係数はビデオエンコーダ２２において計算され、サブピクセル位置「ａ」及び「ｃ」を補間するために必要とされる８つの係数の２つの異なるセットを定義するために、ビットストリーム中で８つの係数のみをビデオデコーダ２８に通信すればよい。
【００５３】
図８は、サブピクセル「ｈ」に対する８つの垂直線形ピクセルサポート位置Ｇ３、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、Ｆ３、及びＨ３を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置Ｇ３、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、Ｆ３、及びＨ３の係数のセット全体を定義するために、Ｇ３、Ａ３、Ｂ３及びＣ３の４つのフィルタ係数のみがあればよいことを意味する。Ｇ３はＨ３と対称であり、Ａ３はＦ３と対称であり、Ｂ３はＥ３と対称であり、Ｃ３はＤ３と対称である。対称性により、Ｇ３に関連する係数をＨ３とともに使用したり、Ａ３に関連する係数をＦ３とともに使用したりすることなどが可能である。従って、例えば、ＡＩＦを使用する場合、サブピクセル位置「ｈ」を補間するために必要とされる８つの係数のセットを定義するために、符号化ビデオビットストリームの一部として４つの係数のみを通信すればよい。
【００５４】
図９は、サブピクセルに対する８つの垂直線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。従って、サブピクセル位置「ｄ」に関するフィルタサポートのための係数のセットを定義するために、全ての８つの係数が必要とされる。しかしながら、図７に関して上記したように、ピクセル対称性は、サブピクセル位置「ｄ」に関するこれらの同じ係数が、サブピクセル位置「ｌ」のフィルタサポートを導出するためにも使用され得ることを意味する。従って、例えば、ＡＩＦを使用する場合、サブピクセル位置「ｄ」及び「ｌ」を補間するために必要とされる８つの係数の２つの異なるセットを定義するために、ビットストリーム中で８つの係数のみをビデオデコーダ２８に通信すればよい。
【００５５】
ビデオエンコーダ４０の予測ユニット３２は、フィルタ処理ユニット３９による補間フィルタ処理を使用してサブピクセルロケーション「ａ」〜「ｏ」のピクセル値を決定し得る。１／２ピクセル位置「ｂ」及び「ｈ」の場合、タップとも呼ばれる各フィルタ係数は、それぞれ水平方向及び垂直方向の整数ピクセル位置に対応し得る。特に、１／２ピクセル位置「ｂ」の場合、８タップフィルタのタップは、Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５、Ｃ６、及びＣ７に対応する。サブピクセル位置Ｃ０及びＣ７は、図３に示されていないが、例えば、図６及び図７に見られ得る。同様に、１／２ピクセル位置「ｈ」の場合、８タップフィルタのタップは、Ｇ３、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、Ｆ３、及びＨ３に対応する。例えば、サブピクセル位置「ｂ」及び「ｈ」のピクセル値は、式（１）及び式（２）を使用して計算され得る。
【００５６】
b = ((-3*C0 + 12*C1 - 39*C2 + 158*C3 + 158*C4 - 39*C5 + 12*C6 - 3*C7) + 128)/256  (1)
h = ((-3*G3 + 12*A3 - 39*B3 + 158*C3 + 158*D3 - 39*E3 + 12*F3 - 3*H3) + 128)/256  (2)
幾つかの実装形態では、２５６による除算は、８ビットの右シフトによって実装され得る。位置「ｂ」の場合と同様に、１／４ピクセル位置「ａ」及び「ｃ」の場合、８タップフィルタのタップは、Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５、Ｃ６、及びＣ７に対応し得るが、位置「ｂ」の場合とは異なり、フィルタ係数は非対称であり、位置「ｂ」の場合とは異なり得る。例えば、サブピクセル位置「ａ」及び「ｃ」のピクセル値は、式（３）及び式（４）を使用して計算され得る。
【００５７】
a = ((-3*C0 + 12*C1 - 37*C2 + 229*C3 + 71*C4 - 21*C5 + 6*C6 - C7) + 128)/256   (3)
c = ((-C0 + 6*C1 - 21*C2 + 71*C3 + 229*C4 - 37*C5 + 12*C6 - 3*C7) + 128)/256   (4)
幾つかの実装形態では、２５６による除算は、８ビットの右シフトによって実装され得る。位置「ｈ」の場合と同様に、１／４ピクセル位置「ｄ」及び「ｌ」の場合、８タップフィルタのタップは、Ｇ３、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、Ｆ３、及びＨ３に対応し得るが、位置「ｈ」の場合とは異なり、フィルタ係数は非対称であり、位置「ｈ」の場合とは異なり得る。例えば、サブピクセル位置「ｄ」及び「ｌ」のピクセル値は、式（５）及び式（６）を使用して計算され得る。
【００５８】
d = ((-3*G3 + 12*A3 - 37*B3 + 229*C3 + 71*D3 - 21*E3 + 6*F3 - H3) + 128)/256   (5)
l = ((-G3 + 6*A3 - 21*B3 + 71*C3 + 229*D3 - 37*E3 + 12*F3 - 3*H3) + 128)/256   (6)
幾つかの実装形態では、２５６による除算は、８ビットの右シフトによって実装され得る。上記の式（１）〜式（６）について与えられた例示的な係数は、概して、水平サブピクセルと垂直サブピクセルの両方について同じ係数を使用するが、水平サブピクセルの係数と垂直サブピクセルの係数が同じである必要はない。例えば、式（１）と式（２）、式（３）と式（５）、及び式（４）と式（６）はそれぞれ、上記の例において同じ係数を有するが、幾つかの実装形態では、各々は異なる係数を有し得る。
【００５９】
ビデオエンコーダ４０の予測ユニット３２は、フィルタ処理ユニット３９による補間フィルタ処理を使用して、２Ｌサブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のピクセル値を決定し得る。２Ｌサブピクセル位置について、水平フィルタ処理の後に垂直フィルタ処理が行われ、又はその逆も同様である。第１のフィルタ処理演算は中間値を決定し、第２のフィルタ処理演算は、中間値を利用して、サブピクセルロケーションのピクセル値を決定する。例えば、「ｊ」の値を決定するために、以下の式を使用して、「ａａ」、「ｂｂ」、「ｂ」、「ｈｈ」、「ｉｉ」、及び「ｊｊ」の中間値を決定するために、６タップ水平フィルタが使用され得る。
【００６０】
aa = ((8*A1 - 40*A2 + 160*A3 + 160*A4 - 40*A5 + 8*A6) + 128)/256                   (7)
bb = ((8*B1 - 40*B2 + 160*B3 + 160*B4 - 40*B5 + 8*B6) + 128)/256                   (8)
b   = ((8*C1 - 40*C2 + 160*C3 + 160*C4 - 40*C5 + 8*C6) + 128)/256                  (9)
hh = ((8*D1 - 40*D2 + 160*D3 + 160*D4 - 40*D5 + 8*D6) + 128)/256                   (10)
ii   = ((8*E1 - 40*E2 + 160*E3 + 160*E4 - 40*E5 + 8*E6) + 128)/256                 (11)
jj   = ((8*F1 - 40*F2 + 160*F3 + 160*F4 - 40*F5 + 8*F6) + 128)/                     (12)
幾つかの実装形態では、２５６による除算は、８ビットの右シフトによって実装され得る。６タップ垂直フィルタを上記の中間値に適用すると、「ｊ」の値は、以下の式を使用して決定され得る。
【００６１】
j =  ((8*aa - 40*bb + 160*c3 + 160*hh - 40*ii + 8*jj) + 128)/256.                    (13)
幾つかの実装形態では、２５６による除算は、８ビットの右シフトによって実装され得る。代替的に、６タップ垂直フィルタは、「ｃｃ」、「ｄｄ」、「ｈ」、「ｅｅ」、「ｆｆ」、及び「ｇｇ」の中間値を発見するために使用され得、６タップ水平フィルタは、「ｊ」のピクセル値を決定するためにそれらの中間値に適用され得る。
【００６２】
サブピクセル「ｊ」について上記で説明したプロシージャと同様に、中間値を決定するために垂直フィルタ処理演算を最初に実行し、次いで、垂直フィルタ処理によって決定された中間値に６タップ水平フィルタを適用することによって、又は中間値を決定するために水平フィルタ処理演算を最初に実行し、次いで、水平フィルタ処理によって決定された中間値に６タップ垂直フィルタを適用することによって、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のピクセル値が決定され得る。サブピクセル「ｊ」について上記で例として使用された水平フィルタと垂直フィルタの両方が対称係数を使用するが、他の２Ｄサブピクセル値のピクセル値を決定するために使用される水平フィルタ又は垂直フィルタの一方又は両方が対称的でないことがある。例えば、例示的な一実装形態では、サブピクセルロケーション「ｅ」、「ｇ」、「ｍ」、及び「ｏ」の水平フィルタと垂直フィルタの両方が非対称係数を使用し得る。サブピクセルロケーション「ｆ」及び「ｎ」は、対称係数をもつ水平フィルタと非対称係数をもつ垂直フィルタとを使用し得、サブピクセルロケーション「ｉ」及び「ｋ」は、非対称係数をもつ水平フィルタと対称係数をもつ垂直フィルタとを使用し得る。
【００６３】
サブピクセルロケーションにおいて補間データを生成するためにフィルタ処理ユニット３９によって適用される実際のフィルタには、多種多様な実装形態があり得る。一例として、予測ユニット３２はＡＩＦを利用し得、フィルタ係数は、ビデオエンコーダ２２によって計算され、ビットストリーム中でビデオデコーダ２８に送信される。別の例として、予測ユニット３２は交換フィルタ処理を利用し得、複数のフィルタがビデオエンコーダ２２とビデオデコーダ２８の両方によって知られており、使用されるべき特定のフィルタはビットストリーム中でビデオエンコーダ２２からビデオデコーダ２８にシグナリングされる。交換フィルタ処理の一例では、ビデオエンコーダ２２及びビデオデコーダ２８は、各サブピクセル位置について４つの一意のフィルタを記憶し得、サブピクセル位置に対して使用されるべき特定のフィルタは、２ビットを使用してビデオエンコーダ２２からビデオデコーダ２８にシグナリングされ得る。
【００６４】
予測ユニット３２は、水平方向及び垂直方向において分離可能な補間フィルタを使用し得る。１Ｌサブピクセル位置について、予測ユニット３２（例えば、予測ユニット３２のＭＣユニット３７）は、サブピクセルロケーションに応じて水平方向フィルタのみ又は垂直方向フィルタのみを適用する。一例では、水平方向フィルタ及び垂直方向フィルタは８位置（又は８タップ）フィルタを備える。予測ユニット３２は、フィルタサポートとして整数ピクセル位置Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５、Ｃ６、及びＣ７（Ｃ０及びＣ７は図３に図示せず）を用いて、サブピクセル位置「ａ」、「ｂ」、及び「ｃ」に対して水平方向フィルタを適用し、フィルタサポートとして整数ピクセル位置Ｇ３、Ａ３、Ｂ３、Ｃ３、Ｄ３、Ｅ３、Ｆ３、及びＨ３（図３参照）を用いて、サブピクセル位置「ｄ」、「ｈ」、及び「ｌ」に対して垂直方向フィルタを適用する。残りのサブピクセル位置、即ち、２Ｌサブピクセル位置について、予測ユニット３２は、最初に水平フィルタ処理を適用し、その後に垂直フィルタ処理を適用するか、又は最初に垂直フィルタ処理を適用し、その後に水平フィルタ処理を適用する。２Ｌサブピクセル位置に対して使用される水平フィルタ及び垂直フィルタは、それぞれ６タップフィルタであり得る。
【００６５】
本開示では、例として８タップフィルタと６タップフィルタとを使用するが、他のフィルタ長も使用され得、本開示の範囲内であることに留意することが重要である。例えば、６タップフィルタが１Ｌサブピクセルロケーションの値を決定するために使用され得、４タップフィルタが２Ｌサブピクセルロケーションの値を決定するために使用されるか、又は１０タップフィルタが１Ｌサブピクセルロケーションの値を決定するために使用され得、８タップフィルタ又は６タップフィルタが２Ｌサブピクセルロケーションの値を決定するために使用される。
【００６６】
図１０は、本明細書で説明する方法で符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ６０は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータ機器又は装置の一例である。ビデオデコーダ６０は、量子化係数及び予測シンタックス要素を生成するために、受信したビットストリームをエントロピー復号するエントロピー復号ユニット５２を含む。予測シンタックス要素は、符号化モード、１つ以上の動きベクトル、サブピクセルデータを生成するために使用される補間技法を識別する情報、補間フィルタ処理中に使用するための係数、及び／又は予測ブロックの生成に関連する他の情報を含み得る。
【００６７】
予測シンタックス要素、例えば、係数は、予測ユニット５５に転送される。固定フィルタの係数に対して又は互いに対して係数を符号化するために予測が使用された場合、係数予測及び逆量子化ユニット５３は、実際の係数を定義するためにシンタックス要素を復号することができる。また、量子化が予測シンタックスのいずれかに適用された場合、係数予測及び逆量子化ユニット５３は、そのような量子化を除去することもできる。例えば、フィルタ係数は、本開示に従って予測符号化され、量子化され得、この場合、係数予測及び逆量子化ユニット５３は、そのような係数を予測的に復号し、逆量子化するためにビデオデコーダ６０によって使用され得る。
【００６８】
予測ユニット５５は、ビデオエンコーダ５０の予測ユニット３２に関して上記で詳細に説明したのと殆んど同じ方法で、メモリ６２に記憶された予測シンタックス要素と１つ以上の前に復号されたブロックとに基づいて、予測データを生成し得る。特に、予測ユニット５５は、動き補償中に本開示の補間フィルタ処理技法のうちの１つ又は複数を実行して、１／４ピクセル精度などの特定の精度で予測ブロックを生成し得る。従って、本開示の技法のうちの１つ又は複数は、予測ブロックを生成する際にビデオデコーダ６０によって使用され得る。予測ユニット５５は、本開示の補間及び補間のようなフィルタ処理技法のために使用されるフィルタを備える動き補償ユニットを含み得る。動き補償構成要素は、説明を簡単で容易にするために図１０に示していない。
【００６９】
逆量子化ユニット５６は、量子化された係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、Ｈ．２６４復号のために定義されたプロセスであり得る。逆変換ユニット５８は、ピクセル領域における残差ブロックを生成するために、変換係数に、逆変換、例えば、逆ＤＣＴ又は概念的に同様の逆変換プロセスを適用する。加算器６４は、残差ブロックを、予測ユニット５５によって生成された対応する予測ブロックと加算して、ビデオエンコーダ５０によって符号化された元のブロックの再構成されたバージョンを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理することもある。次いで、復号ビデオブロックは参照フレームストア６２に記憶され、参照フレームストア６２は、その後の動き補償のために参照ブロックを与え、（図１の機器２８などの）表示装置を駆動するために復号ビデオをも生成する。
【００７０】
例えば、予測ユニット５５によって使用される特定の補間フィルタは、ソース機器１２から符号化ビデオビットストリーム中で受信された予測シンタックス要素に基づいて決定され得る。図１１は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す。図１１の方法は、例えば、Ｐスライスのサブピクセルロケーションのフィルタを決定するために使用され得る。ビデオデコーダ６０は、ソース機器１２から符号化ビットストリームを受信する。フレームヘッダ又はスライスヘッダ内のシンタックス要素などの符号化ユニットのシンタックス要素から、予測ユニット５５は、制限セットを識別するビットを読み取る（１１０１）。制限セットは、予測ユニット５５に対して、その符号化ユニットのサブピクセルロケーションに対してフィルタインデックスのどのセットを使用すべきかを識別する。各サブピクセルロケーションがそれ自体のフィルタインデックスを有し得るか、又はサブピクセルロケーションのグループがフィルタインデックスを共有し得る。フィルタインデックスは、特定のフィルタをビットの特定のパターンに関連付ける。例えば、フィルタ選択をシグナリング（信号伝達）するためにサブピクセルロケーション当たり２ビットを使用する場合、ビットパターン００は第１のフィルタに対応し、ビットパターン０１は第２のフィルタに対応し、ビットパターン１０は第３のフィルタに対応し、ビットパターン１１は第４のフィルタに対応し得る。各サブピクセルロケーションは、それ自体の一意のフィルタインデックスと一意のフィルタとを有し得るので、ビットパターン００は、例えば、サブピクセルロケーション「ｅ」の場合と、例えば、サブピクセルロケーション「ｊ」の場合とで異なるフィルタに対応し得る。
【００７１】
図１１の例では、３つの制限セットを使用する。符号化ユニットのヘッダが、第１の制限セットが使用されるべき予測ユニット５５への信号を含んでいる場合（１１０２）、符号化ユニットのために決定された全てのサブピクセル値に対して、各サブピクセル値の水平フィルタと垂直フィルタの両方が垂直シグナリングビットと水平シグナリングビットとを使用して別々にシグナリングされ得る。従って、垂直シグナリングビット及び水平シグナリングビットに対してそれぞれ２ビットを使用する場合、１Ｌサブピクセル位置のフィルタは、合計２ビットを使用してシグナリングされ、２Ｌ位置のフィルタは、垂直シグナリングビットに対して２ビットと、水平シグナリングビットに対して２ビットとの、合計４ビットを使用してシグナリングされる。
【００７２】
ロケーション「ａ」、「ｂ」、及び「ｃ」以外のサブピクセルロケーションの場合、ビットストリーム中の２つの垂直シグナリングビットは、使用されるべき４つの垂直フィルタのうちの１つを識別する（１１０３）。ロケーション「ａ」、「ｂ」、及び「ｃ」の場合、ビットストリーム中に垂直シグナリングビットが存在し得ず、垂直フィルタは選択され得ない。本開示によれば、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」のために選択された垂直フィルタは、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された垂直フィルタよりも長くなり得る。例えば、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」のために選択された垂直フィルタは、８タップフィルタを備え得、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された垂直フィルタは、６タップフィルタを備え得る。
【００７３】
ロケーション「ｄ」、「ｈ」、及び「ｌ」以外のサブピクセルロケーションの場合、２つの水平シグナリングビットは、使用されるべき４つの垂直フィルタのうちの１つを識別する（１１０４）。ロケーション「ｄ」、「ｈ」、及び「ｌ」の場合、ビットストリーム中にシグナリングビットが存在し得ず、水平フィルタは選択され得ない。本開示によれば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」のために選択された水平フィルタは、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された水平フィルタよりも長くなり得る。例えば、サブピクセルロケーション「ａ」、「ｂ」及び「ｃ」のために選択された水平フィルタは、８タップフィルタを備え得、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された水平フィルタは、６タップフィルタを備え得る。
【００７４】
水平フィルタ及び垂直フィルタが選択されると、これらのフィルタは、上記で説明したように、サブピクセルロケーションの値を決定するために使用され得る。サブピクセルがロケーション「ａ」、「ｂ」、又は「ｃ」に位置する場合、式１、式３、及び式４に関して上記で説明したように、そのサブピクセル値を決定するために単一の水平フィルタが使用され得る。サブピクセルが「ｄ」、「ｈ」、又は「ｌ」に位置する場合、式２、式５、及び式６に関して上記で説明したように、そのサブピクセル値を決定するために単一の垂直フィルタが使用され得る。サブピクセルが「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」に位置する場合、式７〜式１３に関して上記で説明したように、サブピクセルロケーションの値を決定するために垂直フィルタと水平フィルタの両方が使用され得る。
【００７５】
符号化ユニットのヘッダが、第２の制限セットが使用されるべき予測ユニット５５への信号を含んでいる場合（１１０７）、符号化ユニットのために決定された全てのサブピクセル値に対して、各サブピクセル値の水平フィルタと垂直フィルタの両方がサブピクセルロケーション当たり２つのシグナリングビットを使用して一緒にシグナリングされ得る。シグナリングビットに基づいて、１つのフィルタ又はフィルタのペアを選択する（１１０８）。サブピクセルロケーション「ａ」、「ｂ」、又は「ｃ」の場合、２つのシグナリングビットは、その特定のサブピクセルロケーションに関連する４つの水平フィルタのうちの１つを識別するために使用され得る。サブピクセルロケーション「ｄ」、「ｈ」、又は「ｌ」の場合、２つのシグナリングビットは、その特定のサブピクセルロケーションに関連する４つの垂直フィルタのうちの１つを識別するために使用され得る。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」の場合、２つのシグナリングビットは、水平フィルタと垂直フィルタとの４つのペアのうちの１つを識別するために使用され得る。従って、制限セット１は、合計１６個の水平垂直の組合せについて、２つの水平シグナリングビットが４つの水平フィルタのうちの１つを識別することを可能にし、２つの垂直シグナリングビットが４つの垂直フィルタのうちの１つを識別することを可能にするが、制限セット２は、４つの水平垂直の組合せのみを可能にする。しかしながら、制限セット２は、フィルタ選択をシグナリングするために必要とされるビットの総数を低減する。シグナリングビットによって識別されたフィルタ又はフィルタの組合せに基づいて、上記で説明したのと同様にしてサブピクセルロケーションの値を決定する（１１０９）。符号化ユニットのヘッダが、第３の制限セットが使用されるべき予測ユニット５５への信号を含んでいる場合（１１１１）、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを使用する（１１１２）。例えば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」がそれぞれ４つの可能な対応する水平フィルタを有することができる制限セット１及び２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」は、それぞれ１つの対応する水平フィルタを有する。サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」がそれぞれ４つの可能な対応する垂直フィルタを有することができる制限セット１及び２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」は、それぞれ１つの対応する垂直フィルタを有する。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」がそれぞれ１６個及び４個の可能な水平垂直フィルタの組合せを有する制限セット１及び２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット３は利用可能なフィルタを低減し得ると同時に、制限セット３は、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減し得る。
【００７６】
図１２は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す。図１２の方法は、例えば、Ｂスライスのサブピクセルロケーションのフィルタを決定するために使用され得る。Ｐスライスの３つの制限セットを含む図１１とは異なり、図１２の例では、２つの制限セットのみを含む。制限セット１は、図１１に関して説明したように、符号化効率を改善するためにＢスライスを使用するときに除外され得る。Ｂスライスは、一般に、Ｐスライスよりも少ないビットを用いて符号化される。Ｐスライス及びＢスライスの場合と同じ制限セットを使用することにより、各分数ピクセル位置の補間フィルタの選択をシグナリングするために同数のビットが使用され得るが、補間フィルタをシグナリングするオーバーヘッドは、全体的なビットの割合として、Ｐスライスの場合よりもＢスライスの場合のほうがはるかに高くなり得る。このより高いオーバーヘッドにより、Ｂスライスの場合、レート歪みトレードオフは、Ｐスライスの場合ほど好都合でないことがある。従って、幾つかの実装形態では、制限セット１は、Ｂスライスに対して使用されないことがある。
【００７７】
符号化ユニットのヘッダが、第２の制限セットがＢスライスに対して使用されるべき予測ユニット５５への信号を含んでいる場合（１２０７）、符号化ユニットのために決定された全てのサブピクセル値に対して、各サブピクセル値の水平フィルタと垂直フィルタの両方がサブピクセルロケーション当たり２つのシグナリングビットを使用して一緒にシグナリングされ得る。シグナリングビットに基づいて、１つのフィルタ又はフィルタのペアを選択する（１２０８）。サブピクセルロケーション「ａ」、「ｂ」、又は「ｃ」の場合、２つのシグナリングビットは、その特定のサブピクセルロケーションに関連する４つの水平フィルタのうちの１つを識別するために使用され得る。サブピクセルロケーション「ｄ」、「ｈ」、又は「ｌ」の場合、２つのシグナリングビットは、その特定のサブピクセルロケーションに関連する４つの垂直フィルタのうちの１つを識別するために使用され得る。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」の場合、２つのシグナリングビットは、水平フィルタと垂直フィルタとの４つのペアのうちの１つを識別するために使用され得る。シグナリングビットによって識別されたフィルタ又はフィルタの組合せに基づいて、上記で説明したのと同様にしてサブピクセルロケーションの値を決定する（１２０９）。符号化ユニットのヘッダが、第３の制限セットが使用されるべき予測ユニット５５への信号を含んでいる場合（１２１１）、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを使用する（１２１２）。例えば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」がそれぞれ４つの可能な対応する水平フィルタを有することができる制限セット２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」は、それぞれ１つの対応する水平フィルタを有する。サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」がそれぞれ４つの可能な対応する垂直フィルタを有することができる制限セット２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」は、それぞれ１つの対応する垂直フィルタを有する。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」がそれぞれ４つの可能な水平垂直フィルタの組合せを有することができる制限セット２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット３は、制限セット２と比較して利用可能なフィルタを低減し得ると同時に、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減する。
【００７８】
図１３は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す流れ図である。図１３の方法は、図１１に関連してＰスライスについて説明した方法の変更である。符号化ユニットのヘッダが、第１の制限セットが使用され得る予測ユニット５５への信号を含んでいる場合（１３０２）、符号化ユニットのために決定された全てのサブピクセル値に対して、ビットストリーム中でフラグも送信され得る。フラグは、そのサブピクセルロケーションに対して前に使用された同じフィルタ選択を使用するように、又は異なるフィルタを使用するように予測ユニット５５に伝える１ビット信号である。特定のサブピクセルロケーションに対して前のフィルタが使用されるべきであることをフラグが示す場合（１３１４、はい）、その特定のサブピクセルロケーションに対して最も最近使用された水平フィルタ、垂直フィルタ、又は水平フィルタと垂直フィルタとの組合せを再び使用して、特定のサブピクセルロケーションの値を決定する（１３１５）。同じフィルタが使用されるべきであることをフラグが示す場合、水平フィルタ及び／又は垂直フィルタをシグナリングするために場合によっては使用される２又は４ビットは送信される必要がなく、送信されるビットが低減することになる。しかしながら、特定のサブピクセルロケーションに対して異なるフィルタが使用されるべきであることをフラグが示す場合（１３１４、いいえ）、サブピクセルロケーションの水平フィルタと垂直フィルタの両方は、図１１に関連して上記で説明したように、垂直シグナリングビットと水平シグナリングビットとを使用して別々にシグナリングされ得る。
【００７９】
ロケーション「ａ」、「ｂ」、及び「ｃ」以外のサブピクセルロケーションの場合、ビットストリーム中の２つの垂直シグナリングビットは、使用されるべき４つの垂直フィルタのうちの１つを識別する（１３０３）。ロケーション「ａ」、「ｂ」、及び「ｃ」の場合、ビットストリーム中に垂直シグナリングビットが存在し得ず、垂直フィルタは選択され得ない。本開示によれば、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」のために選択された垂直フィルタは、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された垂直フィルタよりも長くなり得る。例えば、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」のために選択された垂直フィルタは、８タップフィルタを備え得、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された垂直フィルタは、６タップフィルタを備え得る。
【００８０】
ロケーション「ｄ」、「ｈ」、及び「ｌ」以外のサブピクセルロケーションの場合、２つの水平シグナリングビットは、使用されるべき４つの垂直フィルタのうちの１つを識別する（１３０４）。ロケーション「ｄ」、「ｈ」、及び「ｌ」の場合、ビットストリーム中に水平シグナリングビットが存在し得ず、水平フィルタは選択されない。本開示によれば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」のために選択された水平フィルタは、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された水平フィルタよりも長くなり得る。例えば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」のために選択された水平フィルタは、８タップフィルタを備え得、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された水平フィルタは、６タップフィルタを備え得る。
【００８１】
水平フィルタ及び垂直フィルタが選択されると、これらのフィルタは、上記で説明したように、サブピクセルロケーションの値を決定するために適用され得る。サブピクセルがロケーション「ａ」、「ｂ」、又は「ｃ」に位置する場合、そのサブピクセル値を決定するために単一の水平フィルタが使用され得る。サブピクセルが「ｄ」、「ｈ」、又は「ｌ」に位置する場合、そのサブピクセル値を決定するために単一の垂直フィルタが使用され得る。サブピクセルが「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」に位置する場合、サブピクセルロケーションの値を決定するために垂直フィルタと水平フィルタの両方が使用され得る。
【００８２】
符号化ユニットのヘッダが、第３の制限セットが使用され得る予測ユニット５５への信号を含んでいる場合（１３１１）、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを選択する（１３１２）。例えば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」がそれぞれ４つの可能な対応する水平フィルタを有することができる制限セット１及び２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」は、それぞれ１つの対応する水平フィルタを有する。サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」がそれぞれ４つの可能な対応する垂直フィルタを有することができる制限セット１及び２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」は、それぞれ１つの対応する垂直フィルタを有する。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」がそれぞれ１６個及び４個の可能な水平垂直フィルタの組合せを有する制限セット１の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット３は、利用可能なフィルタを低減し得ると同時に、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減する。
【００８３】
図１４は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す流れ図である。図１４の方法は、図１２に関連してＢスライスについて説明した方法の変更を備え得る。符号化ユニットのヘッダが、第２の制限セットが使用され得る予測ユニット５５への信号を含んでいる場合（１４０７）、符号化ユニットのために決定された全てのサブピクセル値に対して、ビットストリーム中でフラグが送信され得る。フラグは、そのサブピクセルロケーションに対して前に使用された同じフィルタ選択を使用するように、又は異なるフィルタを使用するように予測ユニット５５に伝える１ビット信号である。特定のサブピクセルロケーションに対して前のフィルタが使用されるべきであることをフラグが示す場合（１４１４、はい）、その特定のサブピクセルロケーションに対して最も最近使用された水平フィルタ、垂直フィルタ、又は水平フィルタと垂直フィルタとの組合せを再び使用して、特定のサブピクセルロケーションの値を決定する（１４１５）。しかしながら、特定のサブピクセルロケーションに対して異なるフィルタが使用されるべきであることをフラグが示す場合（１４１４、いいえ）、サブピクセルロケーションの水平フィルタと垂直フィルタの両方は、図１２に関連して上記で説明したように、シグナリングビットを使用してシグナリングされ得る。
【００８４】
シグナリングビットに基づいて、１つのフィルタ又はフィルタのペアを選択する（１４０８）。サブピクセルロケーション「ａ」、「ｂ」、又は「ｃ」の場合、２つのシグナリングビットは、その特定のサブピクセルロケーションに関連する４つの水平フィルタのうちの１つを識別するために使用され得る。サブピクセルロケーション「ｄ」、「ｈ」、又は「ｌ」の場合、２つのシグナリングビットは、その特定のサブピクセルロケーションに関連する４つの垂直フィルタのうちの１つを識別するために使用され得る。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」の場合、２つのシグナリングビットは、水平フィルタと垂直フィルタとの４つのペアのうちの１つを識別するために使用され得る。シグナリングビットによって識別されたフィルタ又はフィルタの組合せに基づいて、上記で説明したのと同様にしてサブピクセルロケーションの値を決定する（１４０９）。
【００８５】
符号化ユニットのヘッダが、第３の制限セットが使用され得る予測ユニット５５への信号を含んでいる場合（１４１１）、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを使用する（１４１２）。例えば、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」がそれぞれ４つの可能な対応する水平フィルタを有することができる制限セット２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」は、それぞれ１つの対応する水平フィルタを有する。サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」がそれぞれ４つの可能な対応する垂直フィルタを有することができる制限セット２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」は、それぞれ１つの対応する垂直フィルタを有する。サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」がそれぞれ４つの可能な水平垂直フィルタの組合せを有することができる制限セット２の場合とは異なり、制限セット３の場合、サブピクセルロケーション「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、又は「ｏ」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット３は、制限セット２と比較して利用可能なフィルタを低減し得ると同時に、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減する。
【００８６】
本開示によれば、図１１、図１２、図１３、及び図１４の例では、サブピクセルロケーション「ａ」、「ｂ」、及び「ｃ」のために選択された水平フィルタならびにサブピクセルロケーション「ｄ」、「ｈ」、及び「ｌ」のために選択された垂直フィルタは、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、及び「ｏ」のために選択された水平フィルタならびに垂直フィルタよりも長くなり得る。更に、図１１、図１２、図１３、及び図１４の例では、概して、４つのフィルタのうちの１つを選択するために２つのシグナリングビットを使用することについて説明しているが、より多い又はより少ないシグナリングビットも使用され得る。例えば、１つのシグナリングビットが２つのフィルタのうちの１つを選択するために使用され得るか、又は３つのシグナリングビットが８つの可能なフィルタのうちの１つを選択するために使用され得る。
【００８７】
本開示では、概して、１／４ピクセル動きベクトル精度に基づいて、１Ｌ位置のより長いフィルタと２Ｌ位置のより短いフィルタとを使用するための技法について説明したが、本開示の技法は、１／８ピクセル精度及び１／２ピクセル精度などの他の動きベクトル精度にも適用され得る。例えば、１／８ピクセル精度を使用するとき、７個の水平ピクセル位置及び７個の垂直ピクセル位置（即ち、１４個の１Ｌ位置）と、４９個の２Ｌ位置とがあり得る。
【００８８】
更に、幾つかの実装形態では、動きベクトル精度は、１／４ピクセル精度と１／８ピクセル精度との間などで、符号化中に適応的に切り替えられ得る。そのような実装形態では、本開示の技法は、１／４ピクセルロケーションと１／８ピクセルロケーションの両方において適用され得る。他の実装形態では、本開示の技法は、例えば、１／４ピクセルロケーションのみに適用され得、固定の、非切替え可能フィルタを使用するなどの異なるフィルタ選択技法は、１／８ピクセルロケーションにおいて使用される。固定の、非切替え可能フィルタが１／８ピクセルロケーションに対して使用される例では、フィルタ選択は、１／４ピクセルロケーションについてはデコーダにシグナリングされ得るが、１／８ピクセル位置についてはシグナリングされ得ない。
【００８９】
更に、図１１〜図１４の例及び本開示における他の例について、概して２Ｌ位置の分離可能フィルタを使用して説明したが、幾つかの実装形態では、２Ｌ位置のシグナリングビットは、１つ以上の非分離可能フィルタを識別するために使用され得ることが企図される。一例として、制限セット２について上記で説明した２つのシグナリングビットは、２つの非分離可能フィルタと２つの分離可能フィルタとを含む４つのフィルタ間で選択するために使用され得る。
【００９０】
図１５は、本開示の態様を実装する方法を示すフローチャートである。図１５の技法は、例えば、図１、図２、及び図１０に示された機器によって実行され得る。図１のビデオエンコーダ２２とビデオデコーダ２８の両方と図１０のビデオデコーダ６０とを含む、他の機器は、図１５の方法の態様をも実行し得るが、図１５の方法について図２の観点から説明する。予測ユニット３２のＭＣユニット３７は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含むメモリ３４からピクセルのブロックを取得する（１５０１）。フィルタ処理ユニット３９は、ピクセルのブロックに関連するサブピクセル位置に対応するサブピクセル値を計算する。フィルタ処理ユニット３９は、フィルタサポート位置に対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、整数ピクセル位置との共通の垂直軸又は整数ピクセル位置との共通の水平軸のいずれかの上のサブピクセル位置（例えば、図４の１Ｌサブピクセル位置参照）について、第１のサブピクセル値を計算する（１５０２）。例えば、第１の補間フィルタは、８タップフィルタを備え得、第１の補間フィルタのフィルタサポート位置は、整数ピクセル位置のセットに対応する。フィルタ処理ユニット３９は、水平フィルタサポート位置に対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することと、垂直フィルタサポート位置に対応するフィルタ係数の第３の１次元アレイを定義する第３の補間フィルタを適用することとによって第２のサブピクセル値を計算する（１５０３）。第２のサブピクセル値は、整数ピクセル位置との共通の垂直軸の上になく、整数ピクセル位置との共通の水平軸の上にないサブピクセル位置（例えば、図５の２Ｌサブピクセル位置参照）に対応する。例えば、第２及び第３の補間フィルタは、それぞれ６タップフィルタであり得る。本開示の一態様によれば、第１の１次元アレイは、第２の１次元アレイよりも多いフィルタ係数を含み、第３の１次元アレイよりも多いフィルタ係数を含む。
【００９１】
第１のサブピクセル値及び第２のサブピクセル値などのサブピクセル値に基づいて、ＭＣユニット３７は、予測ブロックを生成する（１５０４）。特に、ＭＣユニット３７は、ビデオ符号化プロセスの一部として、補間サブピクセル値をもつ補間予測ブロックを生成し、出力し得る。予測ユニット３２はまた、その予測ブロックを用いて、サブピクセル位置に対して使用されるべき特定の補間フィルタを識別するシグナリングビットを出力する（１５０５）。シグナリングビットは、第２の補間フィルタと第３の補間フィルタとを別々に識別し得るか、又は第２の補間フィルタと第３の補間フィルタとの組合せを識別し得る。予測ユニット３２はまた、サブピクセル位置に対して使用されるべき補間フィルタがサブピクセル位置に対して前に使用された補間フィルタであることを示すフラグを出力する（１５０６）。
【００９２】
本開示の技法は、ワイヤレスハンドセット、及び集積回路（ＩＣ）又はＩＣのセット（即ち、チップセット）を含む、多種多様な機器又は装置において実装され得る。機能的態様を強調するために与えられた任意の構成要素、モジュール又はユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。
【００９３】
従って、本明細書で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ハードウェアで実装する場合、モジュール、ユニット又は構成要素として説明した特徴は、集積論理装置に一緒に、又は個別であるが相互運用可能な論理装置として別々に実装され得る。ソフトウェアで実装する場合、これらの技法は、プロセッサで実行されると、上記で説明した方法の１つ又は複数を実行する命令を備えるコンピュータ可読媒体に少なくとも部分的によって実現され得る。コンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気又は光学データ記憶媒体などを備え得る。本技法は、追加又は代替として、命令又はデータ構造の形態でコードを搬送又は通信し、コンピュータによってアクセス、読取り、及び／又は実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【００９４】
コードは、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、又は他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のソフトウェアモジュール又はハードウェアモジュール内に提供され得、或いは複合ビデオコーデックに組み込まれ得る。また、本技法は、１つ以上の回路又は論理要素中に十分に実装され得る。
【００９５】
本開示の様々な態様について説明した。これら及び他の態様は以下の特許請求の範囲内に入る。
【図１】
0005607236.tif 000002
【図２】
0005607236.tif 000003
【図３】
0005607236.tif 000004
【図４】
0005607236.tif 000005
【図５】
0005607236.tif 000006
【図６】
0005607236.tif 000007
【図７】
0005607236.tif 000008
【図８】
0005607236.tif 000009
【図９】
0005607236.tif 000010
【図１０】
0005607236.tif 000011
【図１１】
0005607236.tif 000012
【図１２】
0005607236.tif 000013
【図１３】
0005607236.tif 000014
【図１４】
0005607236.tif 000015
【図１５】
0005607236.tif 000016