関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、2008年4月10日に出願された米国仮出願第61/044,020号、2008年4月10日に出願された米国仮出願第61/044,023号、2008年4月11日に出願された米国仮出願第61/044,240号、および2008年5月30日に出願された米国仮出願第61/057,373号の利益を主張する。
本開示は、デジタルビデオ符号化および復号に関し、より詳細には、ビデオ符号化および復号に使用される予測データを発生するために適用されるフィルタ処理技法に関する。
背景
デジタルビデオ機能は、デジタルテレビ、デジタル直接ブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル録音デバイス、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスに組み込むことができる。デジタルビデオデバイスは、MPEG−2、MPEG−4、またはITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)によって定義された規格に記載されたビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタルビデオをより効率的に送信および受信する。ビデオ圧縮技法では、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を実行することができる。
ブロックベースのインターコーディングは、時間的予測を利用して、ビデオシーケンスの連続したコード化単位のビデオブロック間の時間冗長性を低減または除去する非常に有用なコーディング技法である。コード化単位は、ビデオフレーム、ビデオフレームのスライス、ピクチャのグループ、または符号化ビデオブロックの別の定義された単位を備えることができる。インターコーディングの場合、ビデオ符号器は、動き推定および動き補償を実行して、2つ以上の隣接するコード化単位の対応するビデオブロックの移動を追跡する。動き推定は、1つまたは複数の参照フレームまたは他のコード化単位中の対応する予測ビデオブロックに対するビデオブロックの変位を示す動きベクトルを発生する。動き補償は、動きベクトルを使用して、1つまたは複数の参照フレームまたは他のコード化単位から予測ビデオブロックを発生する。動き補償の後、コード化されている元のビデオブロックから予測ビデオブロックを減算することによって、残差ビデオブロックが形成される。
ビデオ符号器はまた、残差ブロックの通信に関連するビットレートをさらに低減するために、変換、量子化およびエントロピーコーディングプロセスを適用することができる。変換技法は、離散コサイン変換(DCT)または概念的に同様のプロセスを備えることができる。代替的に、ウェーブレット変換、整数変換、または他のタイプの変換を使用することができる。DCTプロセスでは、一例として、ピクセル値のセットが、周波数領域におけるピクセル値のエネルギーを表すことができる変換係数に変換される。量子化は、変換係数に適用され、一般に、任意の所与の変換係数に関連するビット数を低減するプロセスを必要とする。エントロピーコーディングは、一連のコーディングモード、動き情報、コード化ブロックパターン、および量子化変換係数を一括して圧縮する1つまたは複数のプロセスを備える。エントロピーコーディングの例には、限定はしないが、コンテンツ適応型可変長コーディング(CAVLC)およびコンテキスト適応型バイナリ算術コーディング(CABAC)がある。
コード化ビデオブロックは、予測ブロックを生成または識別するために使用できる予測情報と、コード化されているブロックと予測ブロックとの間の差を示す残差データブロックとによって表される。予測情報は、予測データブロックを識別するために使用される1つまたは複数の動きベクトルを備えることができる。動きベクトルが与えられれば、復号器は、残差をコーディングするために使用された予測ブロックを再構成することができる。したがって、残差ブロックのセットおよび動きベクトルのセット(場合によっては、いくつかの追加のシンタックス)が与えられれば、復号器は、最初に符号化されたビデオフレームを再構成することができる。連続したビデオフレームまたは他のタイプのコード化単位はしばしば極めて類似しているので、動き推定および動き補償に基づくインターコーディングは極めて良好な圧縮を達成することができる。符号化ビデオシーケンスは、残差データのブロック、動きベクトル、場合によっては他のタイプのシンタックスを備えることができる。
インターコーディングにおいて達成できる圧縮のレベルを改善するために補間技法が開発された。この場合、ビデオブロックをコーディングするために使用される、動き補償中に発生された予測データを、動き推定に使用されるビデオフレームまたは他のコード化単位のビデオブロックのピクセルから補間することができる。補間は、予測ハーフピクセル(ハーフペル)値および予測クォーターピクセル(クォーターペル)値を発生するためにしばしば実行される。ハーフペル値およびクォーターペル値はサブピクセルロケーションに関連する。ビデオシーケンス中の部分移動をキャプチャするために、部分動きベクトルを使用して、サブピクセル解像度でビデオブロックを識別し、それによって、整数ビデオブロックよりもコード化されているビデオブロックに類似した予測ブロックを与えることができる。
概要
概して、本開示では、ビデオ符号化および/または復号プロセスの予測ステージ中に符号器および復号器によって適用されるフィルタ処理技法について説明する。説明するフィルタ処理技法は、部分補間中に使用される予測データの精度を向上させ、場合によっては、ピクセルの整数ブロックの予測データを改善することができる。本開示には、補間のために使用できる有用な12ピクセルフィルタサポート、係数対称性およびピクセル対称性を使用して、補間のためのフィルタサポートを構成するために符号器と復号器との間で送信する必要があるデータ量を低減する技法、およびサブピクセル補間と同様の方法で整数ピクセルロケーションにおいてデータをフィルタ処理するための技法を含む、いくつかの態様がある。本開示の他の態様は、フィルタのタイプ、場合によっては使用されるフィルタ係数を搬送するために、ビットストリーム中の情報を符号化するための技法に関する。フィルタ係数のための予測符号化技法についても説明する。本開示のこれらおよび他の態様は以下の説明から明らかになろう。
一例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、ピクセルのブロックを得ること、整数ピクセル値に基づいてピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算することであって、サブピクセル値を計算することが、サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用することを備え、サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生することを備える方法を提供する。
別の例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、ピクセルのブロックを取得し、整数ピクセル値に基づいてピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算し、サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用し、サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生するビデオコーダを備える装置を提供する。
別の例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、ピクセルのブロックを得るための手段と、整数ピクセル値に基づいてピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算するための手段であって、サブピクセル値を計算するための手段は、サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用するための手段を備え、サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生するための手段とを備えるデバイスを提供する。
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはデジタル信号プロセッサ(DSP)など、1つまたは複数のプロセッサで実行できる。本技法を実行するソフトウェアは、最初にコンピュータ可読媒体に記憶し、プロセッサにロードして実行することができる。
したがって、本開示はまた、プロセッサによって実行されたとき、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、ピクセルのブロックを得ること、整数ピクセル値に基づいてピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算することであって、サブピクセル値の計算において、命令は、プロセッサに、サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用することを行わせ、サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生することをプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体を企図する。
本開示の1つまたは複数の態様の詳細について添付の図面および以下の説明において述べる。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
図1は、本開示の技法を実装することができる1つの例示的なビデオ符号化および復号システムを示すブロック図である。
図2は、本開示に一致するフィルタ処理技法を実行することができるビデオ符号器の例を示すブロック図である。
図3は、予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図である。
図4は、9つのサブピクセルロケーションに関する12ピクセルフィルタサポートを示す概念図である。
図5は、3つの水平サブピクセルロケーションに関する水平6ピクセルフィルタサポートと、3つの垂直サブピクセルロケーションに関する垂直6ピクセルフィルタサポートとを示す概念図である。
図6は、整数ピクセルロケーションをフィルタ処理するための5ピクセル×5ピクセルフィルタサポートを示す概念図である。
図7は、本開示に一致する、4つの整数ピクセル位置と、フィルタ係数のためのピクセル対称性を使用することができるピクセル位置をグループ化するための陰影付きの15個のサブピクセル位置とを示す概念図である。
図8は、サブピクセルに対する6つの水平線形ピクセルサポート位置を、係数対称性を示す陰影付きで示す概念図である。
図9は、サブピクセルに対する6つの水平線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。
図10は、サブピクセルに対する6つの垂直線形ピクセルサポート位置を、係数対称性を示す陰影付きで示す概念図である。
図11は、サブピクセルに対する6つの垂直線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。
図12は、サブピクセルに対する12個の2次元ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。
図13は、サブピクセルに対する12個の2次元ピクセルサポート位置を、係数対称性を示す陰影付きで示す概念図である。
図14は、サブピクセルに対する12個の2次元ピクセルサポート位置を、係数対称性を示す陰影付きで示す概念図である。
図15は、サブピクセルに対する12個の2次元ピクセルサポート位置を、係数対称性を示す陰影付きで示す概念図である。
図16は、本明細書で説明する方法で符号化されたビデオシーケンスを復号することができるビデオ復号器の例を示すブロック図である。
図17は、本開示に一致する12ピクセルフィルタサポートを利用するビデオ符号器の例示的な動作を示す流れ図である。
図18は、本開示に一致する12ピクセルフィルタサポートを利用するビデオ復号器の例示的な動作を示す流れ図である。
図19は、本開示に一致する係数対称性およびピクセル対称性を利用するビデオ符号器の例示的な動作を示す流れ図である。
図20は、本開示に一致する係数対称性およびピクセル対称性を利用するビデオ復号器の例示的な動作を示す流れ図である。
図21は、本開示に一致する、整数ピクセルロケーションのフィルタ処理を利用して、調整された整数ピクセル値を発生するビデオ符号器の例示的な動作を示す流れ図である。
図22は、本開示に一致する、整数ピクセルロケーションのフィルタ処理を利用して、調整された整数ピクセル値を発生するビデオ復号器の例示的な動作を示す流れ図である。
図23は、固定フィルタまたは適応フィルタに基づくビデオコーディングのレートひずみ定義補間のための技法を示す流れ図である。
図24は、予測コーディングを使用してフィルタ係数を符号化するための技法を示す流れ図である。
図25は、予測コーディングを使用してフィルタ係数を符号化するための技法を示す別の流れ図である。
図26は、予測コーディングを使用してフィルタ係数を復号するための技法を示す流れ図である。
図27は、予測コーディングできるフィルタ係数を示す概念グラフである。
図28は、予測コーディングできるフィルタ係数を示す概念グラフである。
図29は、予測技法が符号化に使用される整数ピクセルフィルタ係数のアレイの例を示す図である。
詳細な説明
本開示では、ビデオ符号化および/または復号プロセスの予測ステージ中に符号器および復号器によって適用されるフィルタ処理技法について説明する。説明するフィルタ処理技法は、部分補間中に使用される予測データの精度を向上させ、場合によっては、ピクセルの整数ブロックの予測データを改善することができる。本開示には、補間のために使用できる有用な12ピクセルフィルタサポート、係数対称性およびピクセル対称性を使用して、補間のためのフィルタサポートを構成するために符号器と復号器との間で送信する必要があるデータ量を低減する技法、およびサブピクセル補間と同様の方法で整数ピクセルロケーションにおいてデータをフィルタ処理するための技法を含む、いくつかの態様がある。これらおよび他の技法について以下で詳細に説明する。
図1は、本開示の技法のうちの1つまたは複数を実装するために使用できる1つの例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル15を介して符号化ビデオを宛先デバイス16に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス16は、広範囲のデバイスのいずれかを備えることができる。場合によっては、ソースデバイス12および宛先デバイス16は、いわゆるセルラー電話または衛星無線電話のワイヤレスハンドセットなどのワイヤレス通信デバイス、または通信チャネル15を介してビデオ情報を伝達することができ、その場合、通信チャネル15がワイヤレスである任意のワイヤレスデバイスを備える。ただし、予測コーディング中のフィルタ処理および予測データの発生に関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるわけではない。本技法はまた、物理的ワイヤ、光ファイバまたは他の物理媒体もしくはワイヤレス媒体を介して通信するデバイスを含む、広範囲の他の設定およびデバイスにおいて有用である。さらに、本符号化技法または復号技法は、必ずしも他のデバイスと通信するわけではないスタンドアロンデバイスにおいても適用できる。
図1の例では、ソースデバイス12は、ビデオソース20と、ビデオ符号器22と、変調器/復調器(モデム)23と、送信機24とを含むことができる。宛先デバイス16は、受信機26と、モデム27と、ビデオ復号器28と、ディスプレイデバイス30とを含むことができる。本開示によれば、ソースデバイス12のビデオ符号器22は、ビデオ符号化プロセスの一部として本開示の技法のうちの1つまたは複数を適用するように構成できる。同様に、宛先デバイス16のビデオ復号器28は、ビデオ復号プロセスの一部として本開示の技法のうちの1つまたは複数を適用するように構成できる。
また、図1の図示のシステム10は例示にすぎない。本開示の様々な技法は、ブロックベースの予測符号化をサポートする任意の符号化デバイスによって、または、ブロックベースの予測復号をサポートする任意の復号デバイスによって実行できる。ソースデバイス12および宛先デバイス16は、ソースデバイス12が宛先デバイス16に送信するためのコード化ビデオデータを発生するような、コーディングデバイスの例にすぎない。場合によっては、デバイス12、16の各々がビデオ符号化構成要素および復号構成要素を含むので、デバイス12、16は、ほぼ対称的に動作することができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話通信のためのビデオデバイス12とビデオデバイス16との間の一方向または双方向のビデオ送信をサポートすることができる。
ソースデバイス12のビデオソース20は、ビデオカメラ、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードなど、ビデオキャプチャデバイスを含むことができる。さらなる代替として、ビデオソース20はソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータ発生ビデオとの組合せを発生することができる。場合によっては、ビデオソース20がビデオカメラである場合、ソースデバイス12および宛先デバイス16は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。各場合において、キャプチャされたビデオ、あらかじめキャプチャされたビデオ、またはコンピュータ発生ビデオをビデオ符号器22によって符号化することができる。次いで、符号化ビデオ情報は、たとえば、符号分割多元接続(CDMA)または別の通信規格などの通信規格に従ってモデム23によって変調され、送信機24および通信チャネル15を介して宛先デバイス16に送信される。モデム23は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含むことができる。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
宛先デバイス16の受信機26は通信チャネル15を介して情報を受信し、モデム27は情報を復調する。送信機24と同様に、受信機26は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを受信するために設計された回路を含むことができる。いくつかの例では、送信機24および/または受信機26を、受信回路と送信回路の両方を含む単一のトランシーバ構成要素内に組み込むことができる。モデム27は、信号復調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含むことができる。いくつかの例では、モデム23および27は、変調と復調の両方を実行するための構成要素を含むことができる。
この場合も、ビデオ符号器22によって実行されるビデオ符号化プロセスは、動き補償中に本明細書で説明する技法のうちの1つまたは複数を実装することができる。ビデオ復号器28によって実行されるビデオ復号プロセスはまた、復号プロセスのその動き補償ステージ中にそのような技法を実行することができる。「コーダ」という用語は、本明細書では、ビデオ符号化またはビデオ復号を実行する専用コンピュータデバイスまたは装置を指すために使用される。「コーダ」という用語は、一般に、任意のビデオ符号器、ビデオ復号器、または複合符号器/復号器(コーデック)を指す。「コーディング」という用語は、符号化または復号を指す。ディスプレイデバイス30は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイまたは別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備えることができる。
図1の例では、通信チャネル15は、無線周波数(RF)スペクトルまたは1つまたは複数の物理的伝送線路など、ワイヤレスまたはワイヤードの任意の通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備えることができる。通信チャネル15は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信チャネル15は、一般にビデオデータをソースデバイス12から宛先デバイス16に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル15は、ソースデバイス12から宛先デバイス16への通信を可能にするのに有用なルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
ビデオ符号器22およびビデオ復号器28は、代替的にMPEG−4、Part10、Advanced Video Coding(AVC)として説明されるITU−T H.264規格など、ビデオ圧縮規格に従って動作することができる。ただし、本開示の技法は、いかなる特定のビデオコーディング規格にも限定されない。図1には示されていないが、いくつかの態様では、ビデオ符号器22およびビデオ復号器28は、それぞれオーディオ符号器および復号器と統合でき、適切なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを含み、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)など他のプロトコルに準拠することができる。
ビデオ符号器22およびビデオ復号器28はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装できる。ビデオ符号器22およびビデオ復号器28の各々を1つまたは複数の符号器または復号器中に含めることができ、そのいずれかは符号化機能および復号機能を与える複合コーデックの一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合できる。
ビデオシーケンスは、一般に一連のビデオフレームを含む。ビデオ符号器22は、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。各ビデオフレームは一連のスライスを含む。各スライスは一連のマクロブロックを含むことができ、それらはサブブロック中に配置することができる。一例として、ITU−T H.264規格は、ルーマ構成要素では16×16、8×8、または4×4、およびクロマ構成要素では8×8など、様々なブロックサイズのイントラ予測、ならびにルーマ構成要素では16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ構成要素では対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、ピクセルデータのブロック、または、たとえば離散コサイン変換(DCT)もしくは概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを備えることができる。
ビデオブロックは、小さいほどより良い解像度が得られ、高い詳細レベルを含むビデオフレームの位置決めに使用することができる。一般に、マクロブロックおよび様々なサブブロックをビデオブロックであると考えることができる。さらに、スライスは、マクロブロックおよび/またはサブブロックなど一連のビデオブロックであると考えることができる。各スライスはビデオフレームの単独で復号可能な単位とすることができる。代替的に、フレーム自体を復号可能なユニットとすることができるか、またはフレームの他の部分を復号可能なユニットとして定義することができる。「コード化単位」という用語は、フレーム全体、フレームのスライス、または使用されるコーディング技法に従って定義される別の単独で復号可能なユニットなど、ビデオフレームの単独で復号可能な任意のユニットを指す。
ビデオブロックを符号化するために、ビデオ符号器22は、イントラ予測またはインター予測を実行して、予測ブロックを発生する。ビデオ符号器22は、符号化すべき元のビデオブロックから予測ブロックを減算して、残差ブロックを発生する。したがって、残差ブロックは、コード化されているブロックと予測ブロックとの間の差を示す。ビデオ符号器22は、残差ブロックに対して変換を実行して、変換係数のブロックを発生することができる。イントラベースまたはインターベースの予測コーディング技法および変換技法の後、ビデオ符号器22は量子化を実行する。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するように係数を量子化するプロセスを指す。量子化の後、コンテキスト適応型可変長コーディング(CAVLC)またはコンテキスト適応型バイナリ算術コーディング(CABAC)など、エントロピーコーディング方法に従ってエントロピーコーディングを実行することができる。ビデオ符号器22によって実行される符号化プロセスの各ステップのそれ以上の詳細について、以下に図2でより詳細に説明する。
宛先デバイス16において、ビデオ復号器28が符号化ビデオデータを受信する。ビデオ復号器28は、CAVLCまたはCABACなど、エントロピーコーディング方法に従って、受信したビデオデータをエントロピー復号して、量子化係数を得る。ビデオ復号器28は、逆量子化(inverse quantization)(逆量子化(de-quantization))機能および逆変換機能を適用して、ピクセル領域中で残差ブロックを再構成する。ビデオ復号器28はまた、符号化ビデオデータ中に含まれる(たとえば、コーディングモード、動きベクトル、フィルタ係数を定義するシンタックスなどの)制御情報またはシンタックス情報に基づいて予測ブロックを発生する。ビデオ復号器28は、予測ブロックを再構成された残差ブロックと加算して、表示のための再構成されたビデオブロックを生成する。ビデオ符号器22によって実行される符号化プロセスの各ステップのそれ以上の詳細について、以下に図16でより詳細に説明する。
本開示の技法によれば、ビデオ符号器22およびビデオ復号器28は、動き補償中に1つまたは複数の補間フィルタ処理技法を使用することができる。特に、本開示の一態様によれば、ビデオ符号器22および/またはビデオ復号器28は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、ピクセルのブロックを得ることと、整数ピクセル値に基づいてピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算することであって、サブピクセル値を計算することが、サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用することを備える、計算することと、サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生することとを行うことができる。12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイの例については、以下にさらに詳細に説明する。
本開示の別の態様によれば、ビデオ符号器22および/またはビデオ復号器28は、補間中に使用されるフィルタ係数の通信のためにソースデバイス12と宛先デバイス16との間で通信する必要があるデータ量を低減するために、対称性の態様を利用することができる。ビデオ符号器22は、15個の異なるサブピクセルロケーションに対して、15個のサブピクセルロケーションの間の係数対称性とピクセル対称性とに基づいて発生された、フィルタ係数の8つのセットを判断し、フィルタ係数の8つのセットを符号化ビットストリームの一部として別のデバイスに出力することができる。このようにして、8つのセットは、ピクセル対称性および係数対称性の態様とともに、すべての15個のハーフペル位置およびクォーターペルピクセル位置に対してフィルタ係数のすべてを定義することができる。その上、垂直次元および水平次元における15個のサブピクセルロケーションのうちの異なるサブピクセルロケーション間のピクセル対称性は存在するが、サブピクセルロケーションの15個のセットのうちの少なくともいくつかについての対角(斜め)次元におけるピクセル対称性は存在しない。15個のロケーションのうちの少なくともいくつかについての対角次元におけるこのピクセル対称性の欠如により、ビデオ符号化および復号における補間およびビデオ品質を改善することができる。
宛先デバイス16のビデオ復号器28は、符号化ビデオビットストリームの一部としてフィルタ係数の8つのセットを受信し、フィルタ係数の8つのセットに基づいて15個の異なるサブピクセルロケーションに対応するフィルタ係数の15個のセットを発生し、15個の異なるサブピクセルロケーションのうちの1つに対応するビデオ復号のための補間予測データを、フィルタ係数の15個のセットのうちの1つに基づいて発生し、補間予測データに基づいて1つまたは複数のビデオブロックを復号することができる。
本開示の別の態様によれば、ビデオ符号器22および/またはビデオ復号器28は、調整された整数ピクセル値を発生するために整数ピクセル位置に対して補間的フィルタ処理を利用することができる。そのような補間的フィルタ処理は、特に照明変更、シーンフェードインまたはフェードアウト中に圧縮を改善し、ノイズを除去し、画像フレームのシャープ化を可能にし、特にフィルタ係数に対称性が課せられないとき、連続したビデオフレーム間の微細な物体の動きの符号化を改善するのに役立つ。
ビデオ符号器22および/またはビデオ復号器28の補間的フィルタ処理技法は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含むピクセルのブロックを得ることと、整数ピクセル位置に対応する、調整された整数ピクセル値を発生するために、ピクセルのブロック内の他の整数ピクセル値に基づいて整数ピクセル値をフィルタ処理することと、調整された整数ピクセル値に基づいて予測ブロックを発生することとを含むことができる。
本開示の別の態様によれば、ビデオ符号器22は、第1の補間フィルタに基づいてビデオデータの符号化のために第1の補間予測データを発生し、第2の補間フィルタに基づいてビデオデータのビデオ符号化のために第2の補間予測データを発生し、レートひずみ分析に基づいて第1の補間予測データと第2の補間予測データとの間で選択し、その選択に基づいてビデオデータを符号化し、その選択を示すためにシンタックスを符号化することができる。第1の補間フィルタは固定補間フィルタを備え、第2の補間フィルタは適応補間フィルタを備えることができるが、本開示は、必ずしもこれらの例に限定されるわけではない。
さらに、追加の補間予測データを発生するために、同じくレートひずみ分析中に考慮される追加の補間フィルタを適用することもできる。言い換えれば、本開示の技法は、2つの補間フィルタに基づいて第1および第2の補間予測データのみを発生することに限定されず、任意の数の補間フィルタに基づいて任意の複数の補間予測データを発生するために適用できる。重要なことには、レートひずみ分析補間予測データは、どのフィルタを選択すべきかを識別するために使用される。
一例では、方法は、複数の異なる補間フィルタに基づいてビデオデータの符号化のための予測データの複数の異なるバージョンを発生することと、レートひずみ分析に基づいて予測データの複数の異なるバージョンの間で選択することと、その選択に基づいてビデオデータを符号化することと、その選択を示すためにシンタックスを符号化することとを備えることができる。
本開示はまた、フィルタ係数を符号化するための技法を企図する。たとえば、ビデオ符号器22は、ビデオ符号化中に予測データの補間のためのフィルタ係数のセットを識別し、固定補間フィルタに関連するフィルタ係数に対するフィルタ係数のセットの予測コーディングに基づいて、フィルタ係数のセットに関連する残差値を発生し、その残差値に量子化を適用し、量子化された残差値を符号化ビットストリームの一部として出力することができる。
ビデオ復号器28は、フィルタ係数のセットに関連する残差値を受信し、残差値と固定補間フィルタに関連するフィルタ係数とのセットに基づいて予測復号を使用してフィルタ係数のセットを発生し、ビデオブロックの予測復号のために使用される予測データを補間するためにフィルタ係数のセットを適用することができる。
図2は、本開示に一致するフィルタ処理技法を実行することができるビデオ符号器50の例を示すブロック図である。ビデオ符号器50は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータデバイスまたは装置の一例である。ビデオ符号器50は、デバイス20のビデオ符号器22、または異なるデバイスのビデオ符号器に対応することがある。ビデオ符号器50はビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行することができるが、説明を簡単にするために、イントラコーディング構成要素は図2に示していない。イントラコーディングは空間的予測を利用して、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去する。インターコーディングは時間的予測を利用して、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は空間ベースの圧縮モードを指し、予測(Pモード)または双方向(Bモード)などのインターモードは、時間ベースの圧縮モードを指す。本開示の技法はインターコーディング中に適用し、したがって、説明を簡単で容易にするために、空間予測ユニットなどのイントラコーディングユニットは図2に示していない。
図2に示すように、ビデオ符号器50は、符号化すべきビデオフレーム内のビデオブロックを受信する。図2の例では、ビデオ符号器50は、予測ユニット32と、メモリ34と、加算器48と、変換ユニット38と、量子化ユニット40と、エントロピーコーディングユニット46とを含む。ビデオブロック再構成のために、ビデオ符号器50はまた、逆量子化ユニット42と、逆変換ユニット44と、加算器51とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図示せず)を含めることもできる。必要な場合、デブロッキングフィルタは一般に、加算器51の出力をフィルタ処理するであろう。
予測ユニット32は、動き推定(ME)ユニット35と、動き補償(MC)ユニット37とを含むことができる。本開示によれば、フィルタ37は、予測ユニット32中に含めることができ、動き推定および/または動き補償の一部として補間または補間的フィルタ処理を実行するために、MEユニット35とMCユニット37の一方または両方によって起動できる。フィルタ37は、実際は、本明細書で説明するように、多数の様々なタイプの補間および補間タイプフィルタ処理を可能にする複数の様々なフィルタを表すことができる。したがって、予測ユニット32は複数の補間または補間的フィルタを含むことができる。符号化プロセス中に、ビデオ符号器50は、コーディングすべき(図2で「ビデオブロック」と標示される)ビデオブロックを受信し、予測ユニット32は、インター予測コーディングを実行して(図2で「予測ブロック」と標示される)予測ブロックを発生する。特に、MEユニット35は、動き推定を実行してメモリ34中の予測ブロックを識別し、MCユニット37は、動き補償を実行して予測ブロックを発生することができる。
動き推定は一般に、ビデオブロックの動きを推定する動きベクトルを発生するプロセスと考えられる。動きベクトルは、たとえば、現在のフレーム(または、他のコード化単位)内のコーディングすべきブロックに対する、予測フレームまたは参照フレーム(または、他のコード化単位、たとえばスライス)内の予測ブロックの変位を示すことができる。参照フレーム(または、参照フレームの部分)は、時間的に、現在のビデオブロックが属するビデオフレーム(または、ビデオフレームの部分)より前に、またはその後に配置されることがある。動き補償は一般に、メモリ34から予測ブロックをフェッチまたは発生するプロセス、あるいは、場合によっては、動き推定によって判断された動きベクトルに基づいて、フィルタ処理された予測データを補間するかまたはさもなければ発生するプロセスと考えられる。
MEユニット35は、コーディングすべきビデオブロックを1つまたは複数の参照フレーム(たとえば、前のフレームおよび/または後続のフレーム)のビデオブロックと比較することによって、そのビデオブロックに適した動きベクトルを選択する。MEユニット35は、部分ピクセル、部分ペル、またはサブピクセル動き推定と呼ばれることがある部分ピクセル精度を用いて動き推定を実行することができる。したがって、部分ピクセル、部分ペル、およびサブピクセル動き推定という用語は、互換的に使用できる。部分ピクセル動き推定では、MEユニット35は、整数ピクセルロケーション以外のロケーションへの変位を示す動きベクトルを選択することができる。このようにして、部分ピクセル動き推定により、予測ユニット32は、整数ピクセル(または、フルピクセル)ロケーションよりも高い精度を用いて動きを追跡し、したがって、より正確な予測ブロックを発生することが可能になる。部分ピクセル動き推定は、ハーフピクセル精度、クォーターピクセル精度、8分の1ピクセル精度または任意のより微細な精度を有することができる。MEユニット35は、動き推定プロセス中に任意の必要な補間のために(1つまたは複数の)フィルタ39を起動することができる。
部分ピクセル動き補償を実行するために、MCユニット37は、補間(補間フィルタ処理と呼ばれることがある)を実行して、サブピクセル解像度(サブピクセル値または部分ピクセル値と本明細書では呼ぶ)におけるデータを発生することができる。MCユニット37は、この補間のために(1つまたは複数の)フィルタ39を起動することができる。予測ユニット32は、本明細書で説明する技法を使用して補間(または、整数ピクセルの補間的フィルタ処理)を実行することができる。
コーディングすべきビデオブロックのための動きベクトルがMEユニット35によって選択されると、MCユニット37は、その動きベクトルに関連する予測ビデオブロックを発生する。MCユニット37は、MCユニット35によって判断された動きベクトルに基づいて、メモリ34から予測ブロックをフェッチすることができる。部分ピクセル精度をもつ動きベクトルの場合、MCユニット37は、そのようなデータをサブピクセル解像度に対して補間するために、たとえば、このプロセスのために(1つまたは複数の)フィルタ39を起動して、メモリ34からのデータをフィルタ処理する。場合によっては、サブピクセル予測データを発生するために使用された補間フィルタ処理技法またはモードは、コード化ビットストリームに含めるための、エントロピーコーディングユニット46への1つまたは複数の補間シンタックス要素として示されることがある。実際、本開示のいくつかの態様は、搬送する必要があるシンタックスの量を低減するための、ピクセル対称性および係数対称性の使用に関係する。
予測ユニット32が予測ブロックを発生した後、ビデオ符号器50は、コーディングされている元のビデオブロックから予測ブロックを減算することによって(図2で「残差ブロック」と標示される)残差ビデオブロックを形成する。加算器48は、この減算演算を実行する1つまたは複数の構成要素を表す。変換ユニット38は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオブロックを生成する。変換ユニット38は、たとえば、概念的にDCTと同様である、H.264規格によって定義される変換などの他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換をも使用することができる。いずれの場合も、変換ユニット38は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域に変換することができる。
量子化ユニット40は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。量子化の後、エントロピーコーディングユニット46が量子化変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット46は、CAVLC、CABAC、または別のエントロピーコーディング方法を実行することができる。
エントロピーコーディングユニット46はまた、ビデオ符号器50の予測ユニット32または他の構成要素から得られた1つまたは複数の予測シンタックス要素をコーディングすることができる。1つまたは複数の予測シンタックス要素は、コーディングモード、1つまたは複数の動きベクトル、サブピクセルデータを発生するために使用された補間技法、フィルタ係数のセットまたはサブセット、あるいは予測ブロックの発生に関連する他の情報を含むことができる。係数予測および量子化ユニット41は、本開示のいくつかの態様によれば、フィルタ係数などの予測シンタックスを予測符号化し、量子化することができる。エントロピーコーディングユニット46によるエントロピーコーディングの後、符号化ビデオとシンタックス要素とを、別のデバイスに送信するか、あるいは後で送信または検索するためにアーカイブすることができる。
逆量子化ユニット42および逆変換ユニット44は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。(図2で「再構成された残差ブロック」と標示される)再構成された残差ブロックは、変換ユニット38に与えられる残差ブロックの再構成されたバージョンを表すことができる。再構成された残差ブロックは、量子化演算および逆量子化演算によって生じた細部の損失により、加算器48によって発生された残差ブロックとは異なることがある。加算器51は、再構成された残差ブロックを、予測ユニット32によって生成された動き補償された予測ブロックに加算して、メモリ34に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレームまたは後続のコード化単位中のブロックをその後コーディングするために使用できる参照ブロックとして予測ユニット32によって使用される。
上述のように、予測ユニット32は、部分ピクセル(または、サブピクセル)精度を用いて動き推定を実行することができる。予測ユニット32は、部分ピクセル動き推定を使用するとき、本開示で説明する補間動作を使用してサブピクセル解像度(たとえば、サブピクセル値または部分ピクセル値)におけるデータを発生することができる。言い換えれば、補間動作を使用して、整数ピクセル位置間の位置における値を計算する。整数ピクセル位置間の距離の半分に配置されるサブピクセル位置をハーフピクセル(ハーフペル)位置と呼び、整数ピクセル位置とハーフピクセル位置との間の距離の半分に配置されるサブピクセル位置をクォーターピクセル(クォーターペル)位置と呼び、整数ピクセル位置(または、ハーフピクセル位置)とクォーターピクセル位置との間の距離の半分に配置されるサブピクセル位置を8分の1ピクセル(8分の1ペル)位置と呼び、以下同様である。
図3は、予測データに関連する整数ピクセル(または、フルピクセル)位置と、補間予測データに関連するサブピクセル(または、部分ピクセル)位置とを示す概念図である。図3の概念図では、異なるボックスが、フレームまたはフレームのブロック内のピクセルおよびサブピクセルロケーションまたは位置を表す。(実線のボックス中の)大文字は整数ピクセルロケーションを表し、(点線のボックス中の)小文字はサブピクセルロケーションを表す。特に、ピクセルロケーションA1〜A6、B1〜B6、C1〜C6、D1〜D6、E1〜E6およびF1〜F6は、フレーム、スライスまたは他のコード化単位内の整数ピクセルロケーションの6×6アレイを表す。サブピクセルロケーション「a」〜「o」は、整数ピクセルC3に関連する15個のサブピクセルロケーション、たとえば、整数ピクセルロケーションC3とC4とD3とD4との間のサブピクセルロケーションを表す。同様のサブピクセルロケーションが、あらゆる整数ピクセルロケーションに対して存在する。サブピクセルロケーション「a」〜「o」は、整数ピクセルC3に関連するあらゆるハーフペルおよびクォーターペルピクセルロケーションを表す。
整数ピクセルロケーションは、ビデオデータが最初に生成されたとき、フォトダイオードなどの物理的センサ要素に関連することがある。フォトダイオードは、センサのロケーションにおける光源の強度を測定し、ピクセル強度値を整数ピクセルロケーションに関連付けることができる。この場合も、各整数ピクセルロケーションは、15個の(または場合によってはより多くの)サブピクセルロケーションの関連するセットを有することができる。整数ピクセルロケーションに関連するサブピクセルロケーションの数は、所望の精度に依存することがある。図3に示す例では、所望の精度はクォーターピクセル精度であり、その場合、整数ピクセルロケーションの各々が15個の異なるサブピクセル位置と対応する。より多いまたはより少ないサブピクセル位置は、所望の精度に基づいて各整数ピクセルロケーションに関連することができる。ハーフピクセル精度の場合、たとえば、各整数ピクセルロケーションは、3つのサブピクセル位置と対応することがある。別の例として、整数ピクセルロケーションの各々は、8分の1のピクセル精度の場合、63個のサブピクセル位置と対応することがある。各ピクセルロケーションは、1つまたは複数のピクセル値、たとえば、1つまたは複数の輝度およびクロミナンス値を定義することができる。
Yが輝度を表し、CbおよびCrが3次元YCbCr色空間のクロミナンスの2つの異なる値を表すことができる。各ピクセルロケーションは実際に、3次元色空間の3つのピクセル値を定義することができる。ただし、本開示の技法は、簡単のために1次元に対する予測に関する。技法について1次元のピクセル値に関して説明する限り、同様の技法を他の次元に拡張することができる。
図3の例では、整数ピクセル「C3」に関連するサブピクセルロケーションがクォーターピクセル精度で示される。ピクセルC3に関連する15個のサブピクセル位置は、「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、および「o」と標示される。他の整数ピクセルロケーションに関連する(以下でさらに詳細に説明するピクセルロケーションC3に関連する15個の異なる部分ロケーションのうちの1つまたは複数を発生するために使用されるもの以外の)他の部分ロケーションのほとんどは、簡単のために示さない。サブピクセルロケーション「b」、「h」および「j」をハーフピクセルロケーションと呼び、サブピクセルロケーション「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、および「o」をクォーターピクセルロケーションと呼ぶ。
ビデオ符号器40の予測ユニット32は、MCユニット37による補間フィルタ処理を使用してサブピクセルロケーション「a」〜「o」のピクセル値を判断することができる。ITU−T H.264規格に一致して、たとえば、予測ユニット32は、ウィーナーフィルタなどの6タップ補間フィルタを使用して、ハーフピクセルロケーションのピクセル値を判断することができる。H.264規格の場合、6タップ補間フィルタのフィルタ係数は一般に、[1,−5,20,20,−5,1]であるが、他の係数を使用することができる。予測ユニット32は最初に水平方向で、次いで垂直方向で補間フィルタを適用することができ、または、その逆も同様である。ハーフピクセル位置「b」および「h」の場合、各タップはそれぞれ、水平方向および垂直方向の整数ピクセル位置に対応することができる。特に、ハーフピクセル位置「b」の場合、6タップフィルタのタップは、C1、C2、C3、C4、C5およびC6に対応する。同様に、ハーフピクセル位置「h」の場合、6タップフィルタのタップは、A3、B3、C3、D3、E3およびF3に対応する。たとえば、サブピクセル位置「b」および「h」のピクセル値を、式(1)および式(2)を使用して計算することができる。
ハーフピクセル位置「j」の場合、6タップフィルタのタップは、位置C1〜C6とD1〜D6との間で水平に、または、位置A3〜F3とA4〜F4との間で垂直に補間されたそれら自体に対応する。ハーフピクセルロケーション「j」を、たとえば、式(3)または式(4)のうちの1つに従って、ハーフピクセル位置のあらかじめ補間されたピクセル値を使用する6タップフィルタを用いて計算することができる。
ただし、(図3に示すように)aaはA3とA4との間の補間に対応し、bbはB3とB4との間の補間に対応し、bはC3とC4との間の補間に対応し、hhはD3とD4との間の補間に対応し、iiはE3とE4との間の補間に対応し、jjはF3とF4との間に補間に対応する。式4では、ccはC1とD1との間の補間に対応し、ddはC2とD2との間の補間に対応し、hはC3とD3との間の補間に対応し、eeはC4とD4との間の補間に対応し、ffはC5とD5との間の補間に対応し、ggはC6とD6との間の補間に対応する。
H.264規格に一致して、予測ユニット32は、双一次補間フィルタと、周囲の整数ピクセルロケーションおよびハーフピクセルロケーションのピクセル値とを使用して、クォーターピクセルロケーション「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、「n」および「o」におけるピクセル値を判断することができる。たとえば、予測ユニット32は、C3のピクセル値と「b」のピクセル値とを使用して、サブピクセル位置「a」に関連するピクセル値を判断し、「b」のピクセル値とC4のピクセル値とを使用して、サブピクセル位置「c」に関連するピクセル値を判断し、以下同様である。
サブピクセルロケーションにおける補間データを発生するためにMCユニット37によって適用される実際のフィルタは、多種多様な実装形態によって異なることがある。一例として、予測ユニット32は、以下で説明する適応補間フィルタ処理(AIF)を使用して、補間値を定義することができる。ITU−T SG16/Q.6/VCEG(Video Coding Expert Group)委員会は、H.264よりも高いコーディング効率を提供するコーディング技術、特にAIFを調査している。AIFは、特に高い解像度(たとえば、720i/pまたは1080i/p)をもつビデオシーケンス上で、H.264規格で使用される補間フィルタ処理よりも大きいコーディング利得を提供する。AIFでは、サブピクセル位置ごとの補間フィルタは、予測誤差エネルギーを最小限に抑えることによって、ビデオフレームごとに分析的に計算される。これは、エイリアシング、量子化誤差および動き推定誤差、カメラノイズ、または元のビデオフレームおよび参照ビデオフレーム中に含まれる他のアーティファクトに対処するのに役立つ。次いで、フレームごとに分析的に導出された適応フィルタ係数は、予測され、量子化され、コード化され、ビデオビットストリームで送信される。本開示の技法の一部は、AIF方式ならびに多くの他の補間方式内で動作することができる。
多くの様々なタイプのAIF方式が、本開示の態様に一致する。たとえば、第1の方式は2次元の分離不可能なAIF(NS−AIF)であり、第2の方式は分離可能なAIF(S−AIF)であり、第3の方式は方向フィルタをもつAIF(D−AIF)である。これらのAIF方式の各々は、異なる補間技法およびサポートを使用するが、すべての3つのAIF方式は、同様の分析プロセスを使用してフィルタ係数を導出することができ、以下に一例として分離不可能なAIFを使用して説明する。
を有すると仮定し、ただし、i,j=0...5であり、SPは、図3に示す15個のサブピクセル位置(「a」〜「o」)のうちの1つを表す。15個のサブピクセル位置のうちの6つ、すなわち「a」、「b」、「c」、「d」、「h」および「l」は1次元(1D)サブピクセル位置であり、予測ユニット32は6タップ補間フィルタを使用してそのようなデータを補間することができることに留意されたい。サブピクセル位置「a」、「b」、「c」、「d」、「h」および「l」は、2つの整数ピクセル位置間の水平線または垂直線に配置されるという点で1Dである。また、参照フレーム中の整数ピクセル位置(図3のA1〜F6)における予測ピクセルが、ピクセル値P
i,j、ただしi,j=0...5をとると仮定する。すなわち、A1は値P
0,0をとり、A6は値P
5,0をとり、F1は値P
5,0をとり、F6は値P
5,5をとる。次いで、サブピクセル位置SPにおける補間値p
SP、SP∈{a,...,o}を、以下の式を使用して予測ユニット32によって計算することができる。
S
x,yを位置(x,y)における現在のビデオフレーム中のピクセル値とする。
は動きベクトルの整数成分であり、FOはフィルタオフセットである。値
は、参照フレーム中の対応するピクセル位置である。たとえば、6タップフィルタの場合、FO=6/2−1=2である。サブピクセル位置SPごとに、現在のフレーム中の実際のピクセル値と補間値との間の予測誤差エネルギー(e
SP)
2が、サブピクセル位置SPに対応する動きベクトル精度を有するすべてのピクセルに対して、予測ユニット32によって蓄積できる。予測誤差エネルギー(e
SP)
2を、以下の式を使用して予測ユニット32によって計算することができる。
サブピクセル位置a〜oの各々に対して、MCユニット37は、フィルタ係数
に対する(e
SP)
2の導関数を計算することによって、式の個々のセットをセットアップすることができる。式の数は、この場合、現在のサブピクセル位置SPに使用されるフィルタ係数の数に等しい。各2次元(2D)サブピクセル位置「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」に対して、予測ユニット32は、6×6タップ2D補間フィルタを使用することができる。サブピクセル位置「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」は、2つの整数ピクセル位置間の垂直線または水平線に配置されないという点で2Dである。この場合、36個の未知数をもつ36個の式のシステムは、MCユニット37によって解決できる。残りの1Dサブピクセル位置「a」、「b」、「c」、「d」、「h」、および「l」は、1D補間フィルタ(たとえば、1D6タップフィルタ)のみを必要とする。1D6タップフィルタの場合、6つの式のシステムは、MCユニット37によって解決できる。
(1つまたは複数の)フィルタ39は、予測データを発生するためにMCユニット37によって使用できる1つのフィルタまたは多くの様々なフィルタのセットを表すことができる。
したがって、AIFフィルタを導出し、適用する1つの例示的なプロセスは、予測ユニット32によって実行できる以下のステップを有することができる。
1.コーディングすべきあらゆるビデオブロックについて動きベクトル(mvx,mvy)を推定する。動き推定中に、固定補間フィルタ(たとえば、H.264/AVCの補間プロセス)を適用することができる。
2.これらの動きベクトルを使用して、現在のビデオフレームにわたってサブピクセル位置SPごとに予測誤差エネルギーを蓄積する。次いで、上記の2つの予測エネルギー式に記載の予測誤差エネルギーを最小限に抑えることによって、サブピクセル位置SPごとに、単独で適応型フィルタ係数
を計算する。
3.新しい動きベクトルを推定する。この動き推定プロセス中に、ステップ2で計算された適応補間フィルタを適用することができる。適応補間フィルタを使用して、エイリアシング、カメラノイズなどによって生じた動き推定誤差を低減し、より良い動き予測を達成する。
上記のように、異なるAIF方式が同じ分析プロセスを使用することができる。異なる方式間の差は、大部分、補間フィルタが分離可能であるか分離不可能であるかにかかわらず、使用される一意のフィルタ係数の数、および、使用されるフィルタサポート(すなわち、サブピクセル位置の少なくとも一部分を補間するために使用される整数ピクセル位置)にある。これらの方式の各々では、符号化し、ビデオビットストリーム中で送信する必要があるフィルタ係数の数を低減するために、AIFフィルタにいくつかの対称性制約を課することがある。
NS−AIFの場合、たとえば、予測ユニット32のMCユニット37は、6つの係数を必要とする(各タップが整数ピクセル位置と対応するので6位置フィルタとも呼ばれる)1D6タップ補間フィルタを使用して、1Dサブピクセル位置「a」、「b」、「c」、「d」、「h」、および「l」を補間することができる。1Dサブピクセルを補間するために使用される6位置フィルタの6つの係数はそれぞれ、図3に示す整数ピクセル位置のうちの1つと対応する。たとえば、サブピクセル位置「a」、「b」、および「c」の場合、係数に対応する6つの整数ピクセル位置は、C1、C2、C3、C4、C5およびC6であり、サブピクセル位置「d」、「h」、および「l」の場合、係数に対応する6つの整数ピクセル位置は、A3、B3、C3、D3、E3およびF3である。これらの整数ピクセル位置は補間フィルタの「フィルタサポート」を表す。
予測ユニット32は、36個のフィルタ係数を必要とする2D6×6補間フィルタを使用して、2Dサブピクセル位置「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」を補間することができる。2Dサブピクセルを補間するために使用される2D6×6補間フィルタの36個の係数はそれぞれ、整数ピクセル位置A1〜A6、B1〜B6、C1〜C6、D1〜D6、E1〜E6およびF1〜F6と対応する。これらの整数ピクセル位置は補間フィルタの「フィルタサポート」を表す。追加の制限が課せられない、たとえば、係数対称性またはピクセル対称性がない場合、ビデオ符号器50は、2Dサブピクセル位置のための36個の係数の9つのセットと、1Dサブピクセル位置のための6つの係数の6つのセットとの合計360個の係数を符号化し、送信することがある。ビデオビットストリーム中のその数の係数を符号化し、送信することにより、コストのかかるビットオーバーヘッドが生じることになる。高いビットオーバーヘッドは、今度は、ひずみの所与のレベルに対するビットレートを増大させるので、望ましくない。
フィルタ係数を送信することに関連するビットオーバーヘッドを低減するために、補間フィルタにいくつかの対称性制限を課して、復号器28に送信する必要がある一意のフィルタ係数の数を低減することができる。2つのタイプの対称性、すなわちピクセル対称性および係数対称性を、単独で、または組合せで課することがある。ピクセル対称性は、異なるサブピクセル位置に対して、フィルタ係数の同じセット(および、そのセットのミラーリングされ、反転され、および/または回転されたバージョン)を実施する。そのようなピクセル対称性が2つ以上のサブピクセルロケーションに関連するフィルタ係数に対して適用する限り、ピクセル対称性をサブピクセル対称性と呼ぶこともある。一方、係数対称性は、様々なフィルタサポート位置にとって他のフィルタサポート位置に対してある方向(たとえば、水平方向、垂直方向またはその両方)で対称的になるように、所与の補間フィルタを補間すべき所与のサブピクセル値に対して実施する。
ピクセル対称性はNS−AIFで使用できる。図3を再び参照すると、
をサブピクセル位置「a」に対するフィルタ係数のセットとし、次いで、サブピクセル位置「c」に対するフィルタ係数のセットは、
、すなわち、逆順序で、または水平に反転された同じ係数である。すなわち、サブピクセル位置「a」における予測ピクセル値p
aと、サブピクセル位置「c」における予測ピクセル値p
cとをそれぞれ、(8)および(9)を使用して計算することができる。
サブピクセル位置「d」および「l」はそれぞれ、サブピクセル位置「a」および「c」と同じ補間フィルタ係数のセットを使用して補間できる。したがって、サブピクセル位置「a」および「c」は、サブピクセル位置「d」および「l」に対するピクセル対称性を有することができる。
本開示の一態様は、サブピクセル位置「d」および「l」に対するサブピクセル位置「a」および「c」との間のピクセル対称性を実際に除去することである。さらに、サブピクセル位置「i」に対するサブピクセル位置「f」に対してピクセル対称性を回避することがある。さらに、サブピクセル位置「n」に対するサブピクセル位置「k」に対してピクセル対称性を回避することがある。そのような場合、対角相関は低くなり、これらの場合に対角対称性を課することが非効率的または非効果的になる。
をサブピクセル位置「e」のための6×6 2Dフィルタ係数のセットとする。その場合、位置「g」のためのフィルタ係数のセットは、
(水平に反転されたバージョン)である。同様に、サブピクセル位置「m」のためのフィルタ係数のセットは、
(垂直に反転されたバージョン)であり、サブピクセル位置「o」のためのフィルタ係数のセットは、
(最初に水平に反転され、次いで垂直に反転された)である。したがって、サブピクセル位置「e」、「g」、「m」および「o」は、ピクセル対称性を有する。上記に与えられた例と同様に、サブピクセル位置「b」と「h」との間の対称性、および位置「f」と「i」と「k」と「n」との間の対称性を課する。そのようなピクセル対称性制約下では、一意のフィルタセットの5つのグループ、すなわち、サブピクセルグループ「a」、「c」、「d」および「l」のためのフィルタ係数の第1のセット、サブピクセルグループ「b」および「h」のためのフィルタ係数の第2のセット、サブピクセルグループ「e」、「g」、「m」および「o」のためのフィルタ係数の第3のセット、グループ「f」、「i」、「k」、および「n」のためのフィルタ係数の第4のセット、ならびにサブピクセルグループ「j」のためのフィルタ係数の第5のセットのみが残る。
さらに、NS−AIFは、これらのフィルタセットの一部に対して、単独で、または上記のサブピクセル対称性との組合せで係数対称性制限を課することができる。場合によっては、対角係数対称性を故意に回避することができ、たとえば、対角係数対称性制約を削除することができる。一例では、サブピクセルロケーション「a」、「c」、「d」および「l」を含むサブピクセル位置の第1のグループのためのフィルタに係数対称性を課さない。しかしながら、係数「b」および「h」を含むサブピクセル位置の第2のグループは、式(10)による係数対称性を有することができる。
同様に、サブピクセル位置「e」、「f」、および「j」を含むサブピクセル位置の第3、第4および第5のグループのための補間フィルタのための係数はそれぞれ、式(11)、(12)、および(13)にそれぞれ与えられる係数対称性を有することができる。
上述のそのようなピクセル対称性および係数対称性制約下では、一意のフィルタ係数の数を、360(対称性制約なし)から、6(a)+3(b)+21(e)+18(f)+6(j)=54係数、すなわち、サブピクセル位置「a」を含むグループのための6つの係数、サブピクセル位置「b」を含むグループのための3つの係数、サブピクセル位置「e」を含むグループのための21個の係数、サブピクセル位置「f」を含むグループのための18個の係数、およびサブピクセル位置「j」を含むグループのための6つの係数まで低減することができる。したがって、NS−AIFでは、ビデオ符号器22は、対称性制約がない場合のように360個ではなく、54個の係数を符号化し、送信することができる。上述のように、54個の係数は、上記の式(7)に基づいて分析的に解決できる。次いで、ビデオ符号器50は、ビットストリーム中の係数を予測し、量子化し、(たとえば、符号付き指数ゴロム符号を使用して)コーディングし、送信することができる。フィルタ係数の予測コーディングについてのさらなる詳細については、以下にさらに詳細に論じる。係数予測および量子化ユニット41は、本開示に一致するフィルタ係数の予測コーディングおよび量子化のために使用できる。
別のAIF方式、すなわち、S−AIFでは、予測ユニット32は、NS−AIFで使用される分離不可能な補間フィルタの代わりに、水平方向および垂直方向で分離可能な補間フィルタを使用することができる。1Dサブピクセル位置の場合、予測ユニット32(たとえば、予測ユニット32のMCユニット37)は、サブピクセルロケーションに応じて、水平方向フィルタのみ、または垂直方向フィルタのみを適用する。一例では、水平方向フィルタおよび垂直方向フィルタは6位置(または6タップ)フィルタを備える。予測ユニット32は、フィルタサポートとして整数ピクセル位置C1、C2、C3、C4、C5、およびC6(図3参照)を用いて、サブピクセル位置「a」、「b」、および「c」に対して水平方向フィルタを適用し、フィルタサポートとして整数ピクセル位置A3、B3、C3、D3、E3およびF3(図3参照)を用いて、サブピクセル位置「d」、「h」、および「l」に対して垂直方向フィルタを適用する。残りのサブピクセル位置、すなわち、2Dサブピクセル位置に対して、予測ユニット32は、最初に水平フィルタ処理、その後に垂直フィルタ処理を適用するか、または垂直フィルタ処理、その後に水平フィルタ処理を適用する。この場合も、分離可能な水平フィルタおよび垂直フィルタのために使用されるフィルタ係数を、上記の式(7)に従って計算することができる。対称性がなければ、S−AIFは、対称性をもたないNS−AIFの場合のように、コーディングし、送信する必要がある係数の数を360係数から144係数まで低減することができる。
S−AIFは、補間フィルタの少なくともいくつかに1つまたは複数の対称性制限をさらに課することができる。NS−AIFのサブピクセル対称性とは異なり、S−AIFの場合、サブピクセル位置「a」および「c」のために使用されるフィルタセットは、対称的、すなわち、互いを水平に反転したバージョンではない。代わりに、サブピクセル位置「a」および「c」のために使用されるフィルタセットの係数はそれぞれ、互いと独立して、
として導出される。垂直移動する各サブピクセル位置に対して、サブピクセル対称性はNS−AIFと同様である。すなわち、サブピクセル位置「d」および「l」のための係数、サブピクセル位置「e」および「m」のための係数、サブピクセル位置「f」および「n」のための係数、ならびにサブピクセル位置「g」および「o」のための係数はそれぞれ、互いを垂直に反転したバージョンである。たとえば、サブピクセル位置「d」のための垂直フィルタの係数が
である場合、サブピクセル位置「l」のための垂直フィルタの係数は
である。したがって、S−AIF中で使用されるサブピクセル対称性は、1次元での垂直サブピクセル対称性のみを有する。しかしながら、S−AIFは水平サブピクセル対称性を有しない。S−AIFでのサブピクセル対称性は、符号化し、送信する必要がある係数の数を144係数から102係数まで低減することができる。
S−AIFは、NS−AIFのように、係数対称性を使用して、ビデオ符号器50によって符号化し、送信する必要がある係数の数をさらに低減することもできる。S−AIFで使用される係数対称性は、S−AIFで1D(水平または垂直)6タップフィルタのみがあることを除いて、NS−AIFと同じとすることができる。言い換えれば、6×6 2Dフィルタがない。S−AIFでは、各サブピクセル位置SP、SP∈{b,h,i,j,k}に対して、フィルタ係数は、式(14)に示す対称性を有することができる。
したがって、サブピクセル対称性と係数対称性の両方を用いて、S−AIFフィルタは一意の1D6タップフィルタの11個のセットを有することができ、そのうちの5つは、各々が3つの一意の係数を有する対称的なフィルタである。残りの6つのフィルタはそれぞれ、6つの一意の係数を有することができる。この場合、ビデオ符号器22は、ビデオビットストリーム中の合計51個の一意のフィルタ係数を量子化し、予測し、コーディングし、送信することができる。
別のAIF方式、D−AIFでは、予測ユニット32は、2Dサブピクセル位置「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」に対して方向フィルタを使用する。方向フィルタは6タップフィルタを備えることができ、係数は対称性を有するので、係数のサブセットのみを送信すればよい。本明細書で説明するように、フィルタサポートは、サブピクセル位置を補間する際に使用される参照フレームからのピクセル位置を指す。MCユニット37は、フィルタサポートとして整数ピクセル位置A1、B2、C3、D4、E5およびF6を有する6位置(または、6タップ)対角補間フィルタを用いて、サブピクセル位置「e」および「o」を計算することができる。予測ユニット32は、フィルタサポートとして整数ピクセル位置A6、B5、C4、D3、E2およびF1を有する6位置対角補間フィルタを用いて、サブピクセル位置「g」および「m」を計算することができる。予測ユニット32は、フィルタサポートとして整数ピクセル位置A1、B2、C3、D4、E5、F6、A6、B5、C4、D3、E2、およびF1を有する12位置対角補間フィルタを用いて、サブピクセル位置「f」、「i」、「j」、「k」および「n」を計算することができる。
D−AIFは、NS−AIFに関して上述したのと同じサブピクセル対称性および係数対称性を使用することができる。サブピクセル対称性に関して、15個のサブピクセル位置を補間するためのフィルタ係数の5つの一意のセットがあり、サブピクセル位置「a」、「c」、「d」および「l」は同じフィルタ係数(たとえば、ミラーリングされ、反転され、および/または回転されたバージョン)を共有し、サブピクセル位置「e」、「g」、「m」および「o」は同じフィルタ係数(たとえば、ミラーリングされ、反転され、および/または回転されたバージョン)を共有し、サブピクセル位置「b」および「h」は同じフィルタ係数(水平フィルタである「b」、および垂直フィルタである「h」)を共有し、サブピクセル位置「f」、「i」、「k」、および「n」は同じフィルタ係数(たとえば、ミラーリングされ、反転され、および/または回転されたバージョン)を共有し、サブピクセル位置「j」はそれ自体のフィルタ係数のセットを有する。
係数対称性に関して、「a」、「c」、「d」および「l」を含む第1のサブピクセルグループのためのフィルタ係数は、6つの一意の係数を有する1D6位置フィルタを使用し(すなわち、第1のグループは対称的ではない)、第2のサブピクセルグループ「b」および「h」のためのフィルタ係数は、3つの一意の係数を有する1D6位置フィルタを使用し(すなわち、bが対称的である)、サブピクセルグループ「e」、「g」、「m」および「o」のためのフィルタ係数の第3のセットは、6つの一意の係数を有する方向6位置フィルタを使用する。グループ「f」、「i」、「k」、および「n」のためのフィルタ係数の第4のセットは、6つの一意の係数を有する12タップフィルタを使用し、グループ「j」のためのフィルタ係数の第5のセットは、3つの一意の係数を有する。D−AIF方式での一意の係数の総数は、6(a)+3(b)+6(e)+6(f)+3(j)=24係数である。これらのフィルタ係数を、予測し、量子化し、コーディングし、ビデオビットストリーム中で送信することができる。
予測ユニット32のMCユニット37は、本明細書で説明する補間技法のうちの1つまたは複数を使用してサブピクセル位置の補間の精度を向上させ、および/または、符号化し、送信する必要がある補間フィルタ係数の数を低減することができる。補間のために使用できる放射形状をもつ有用な12ピクセルフィルタサポート、係数対称性およびピクセル対称性を使用して、補間のためのフィルタサポートを構成するために符号器と復号器との間で送信する必要があるデータ量を低減する技法、従来の技法に対して対称性のいくつかの態様を除去するための技法、およびサブピクセル補間と同様の方法で整数ピクセルロケーションにおいてデータをフィルタ処理するための技法について、以下でより詳細で説明する。オフセット技法についても説明する。さらに、補間フィルタ間で選択するための技法、およびフィルタ係数を予測符号化するための技法についても説明する。
図4は、9つのサブピクセルロケーションに関する12ピクセルフィルタサポートを示す概念図である。本開示によれば、MCユニット37は、陰影付き整数ピクセル値に基づいて、サブピクセル位置「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」のサブピクセル値を計算することができる。この場合、サブピクセル値を計算することは、図4に示すように、サブピクセル位置を囲む12個の(または場合によっては、より多くの)整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用することを備える。フィルタサポート位置は陰影付きで大文字を用いて示し、サブピクセル位置は点線と小文字のボックスとして示す。MCユニット37は、このようにして、ビデオブロックのあらゆるピクセルに対してピクセルを補間し、補間されたサブピクセル値に基づいて予測ブロックを発生することができる。12位置フィルタサポートは、放射形状を有し、NS−AIFで使用される36個の位置フィルタサポートと同様の周波数応答を有するが、補間の複雑さはかなり低減されている。
図3から諒解できるように、サブピクセル値は15個のハーフペル値およびクォーターペル値を備えることができる。フィルタサポート位置の2次元アレイを定義する補間フィルタは、図4に示すように15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される。
サブピクセル位置を囲む、12個以上の整数ピクセル位置のセットは、図4に陰影付きで示されており、9つのハーフペル値およびクォーターペル値を囲む4つの整数ピクセル位置C3、C4、D3およびD4、ならびに4つの整数ピクセル位置を囲む8つの整数ピクセル位置B3、B4、C2、C5、D2、D5、E3およびE4を含むことができる。図4に示すフィルタサポート位置の2次元アレイ中のフィルタサポート位置の各々は、サブピクセル位置に対する2つの整数ピクセル位置内にある。そのようなフィルタ処理は、ビデオ符号器50(図2)によるビデオ符号化プロセス中に、またはビデオ復号器60(図16)によるビデオ復号プロセス中に、動き補償の一部を形成することができる。ビデオ符号化プロセス中に、予測ユニット32は、予測シンタックス要素の一部として係数値の複数のセットをエントロピーコーディングユニット46にフォワーディングする。図4に示すように、サブピクセル位置を囲む12個以上の整数ピクセル位置のセットは、放射形状を有し、補間フィルタ(たとえば、図2の(1つまたは複数の)フィルタ39)によって定義された9つのハーフペル値およびクォーターペル値に空間的に最も近い整数ピクセル位置のセットを備えることができる。
エントロピーコーディングユニット46は、係数値のセットを符号化し、符号化ビットストリームの一部として補間フィルタの係数値を出力し、次いで、符号化ビットストリームは別のデバイスに送信される。図4に示す各異なるサブピクセルロケーションに関して定義された係数値の複数のセットの各々は、12個以上の整数ピクセル位置に対して異なる重み付けを定義することができる。係数値のM個のセットが12個以上の整数ピクセル位置に対してN個の異なる重み付けを定義するように、ピクセル対称性が存在することができ、ただし、MおよびNは正の整数であり、NはMより大きい。言い換えれば、ピクセル対称性はピクセルロケーションの一部が他のピクセルロケーションのミラーリング、反転または回転された重み付けに依拠できるようにするので、他のサブピクセルロケーションとのピクセル対称性を有するロケーションに対して係数をコーディングする必要がない。
図5は、3つの水平サブピクセルロケーションに関する水平6ピクセルフィルタサポートと、3つの垂直サブピクセルロケーションに関する垂直6ピクセルフィルタサポートとを示す概念図である。フィルタサポートロケーションを陰影付きで大文字を用いて示し、サブピクセルロケーションを陰影なしで小文字と点線を用いて示す。MCユニット37は、フィルタサポート位置C1〜C6の1次元アレイを定義する線形補間フィルタを適用することによってロケーション「a」、「b」、および「c」のサブピクセル値を計算することができる。MCユニット37はまた、フィルタサポート位置A3〜F3の1次元アレイを定義する線形補間フィルタを適用することによってロケーション「d」、「h」、および「l」のサブピクセル値を計算することができる。このようにして、線形補間フィルタは、図3に示す15個のハーフペル値およびクォーターペル値のうちの6つのために使用できる。
図6は、整数ピクセルロケーションをフィルタ処理するための5ピクセル×5ピクセルフィルタサポートを示す概念図である。この場合、補間的フィルタ処理は、調整された整数ピクセル値を発生するために整数ピクセルロケーションに関して適用できる。図6では、たとえば、位置C3における整数ピクセル値は、5×5ピクセルアレイA1〜A5、B1〜B5、C1〜C5、D1〜D5およびE1〜E5に基づいてフィルタ処理できる。他のフィルタサポートを整数フィルタ処理に対して定義することができる。この場合、MEユニット35が整数ピクセルのブロックを識別する場合、MCユニット37は、フィルタ処理された整数ピクセル値を発生するために、図6に示す5×5ピクセルアレイ(または他のフィルタサポート)に基づいて、各ピクセルをフィルタ処理することができる。このようにして、補間的フィルタ処理を整数ピクセルに適用することができ、それにより、照明変更、あるいはシーンフェードインまたはフェードアウト時における符号化を改善することができる。さらに、整数フィルタ処理は、ノイズを除去し、画像フレームのシャープ化を可能にし、特にフィルタ係数に対称性が課せられないとき、連続したビデオフレーム間の微細な物体の動きの符号化を改善するのに役立つ。整数ペルフィルタ処理はまた、焦点変更を有するビデオシーケンスの品質および/または圧縮を改善することに極めて有用である。
したがって、ビデオ符号器22および/またはビデオ復号器28は、調整された整数ピクセル値を発生するために整数ピクセル位置に対して補間的フィルタ処理を利用することができる。ビデオ符号器22またはビデオ復号器28は、たとえば、ピクセルのブロック内に整数ピクセル位置に対応する整数ピクセル値を含む、ピクセルのブロックを得ることができる。ビデオ符号器22またはビデオ復号器28は、整数ピクセル位置に対応する調整された整数ピクセル値を発生するために、ピクセルのブロック内の他の整数ピクセル値に基づいて整数ピクセル値をフィルタ処理し、調整された整数ピクセル値に基づいて予測ブロックを発生することができる。次いで、予測ブロックを使用して、プロセスが符号化中に、または復号中に実行されるかに応じて、ビデオブロックを符号化または復号することができる。
符号化プロセス中に本技法を実行した場合、ビデオ符号器22は、符号化されている現在のビデオブロックと予測ブロックとの間の差として残差ビデオブロックを発生することができる。ビデオ符号器22はまた、整数フィルタ処理のためにコード化単位当たりフィルタ係数の1つのセットを符号化するか、または場合によっては、コード化単位内の異なるロケーションにおける整数フィルタ処理のためにコード化単位当たりフィルタ係数の2つ以上のセットを符号化することができる。図6の例では、整数フィルタ処理のためのフィルタサポートは、2次元フィルタ、たとえば、オフセットをもつ5×5フィルタを定義することができる。さらに、フィルタ処理のために使用される少なくともいくつかの係数間に係数対称性が存在するので、フィルタのためのすべての25個の係数を判断するためには、25個の異なる係数のサブセットのみがあればよい。他の多くのフィルタサイズおよび形状を整数ペルフィルタ処理に従って使用することができる。
整数ペルフィルタ処理が復号プロセス中に実行される場合、本技法は、復号されている現在のビデオブロックに関連する残差ビデオブロックと予測ブロックとの和として再構成されたビデオブロックを発生することを備えることができる。この場合、復号デバイス(たとえば、宛先デバイス16)は、整数フィルタ処理のためにコード化単位当たりフィルタ係数の1つのセットを受信するか、または、コード化単位内の異なるロケーションにおける整数フィルタ処理のためにコード化単位当たりフィルタ係数の2つ以上のセットを受信することができる。各コード化単位は、整数ペルフィルタ処理係数の1つまたは複数のセット、ならびにサブペルフィルタ処理係数のセット、たとえば、ハーフペル位置およびクォーターペル位置のためのすべて15個のセットを発生するために使用できる8つのセットを有することができる。
この場合も、整数ピクセル値の補間的フィルタ処理は、特に照明変更、シーンフェードインまたはフェードアウト中に圧縮を改善し、ノイズを除去し、画像フレームのシャープ化を可能にし、特にフィルタ係数に対称性が課せられないとき、連続したビデオフレーム間の微細な物体の動きの符号化を改善するのに役立つ。さらに、整数ペルフィルタ処理はまた、たとえば、焦点変更を有するビデオシーケンス中で、圧縮を改善するのに極めて有用であることがわかる。
従来では、補間的フィルタ処理をAIFでの整数ピクセル位置に対して実行しない。代わりに、参照フレーム中の対応する整数ピクセル位置を単に「そのまま」使用する。しかしながら、本開示によれば、フィルタを補間と同様の方法で整数ピクセルロケーションのために使用することができる。整数ピクセル位置のピクセル値はすでに存在するので、整数ピクセル位置に対する補間フィルタ処理は、技術的に誤った名称である。したがって、整数ピクセル位置のフィルタ処理を、本明細書では補間的フィルタ処理と呼び、新しい調整されたピクセル値を発生するために整数ピクセル値を単にフィルタ処理することとして考える。
目的が参照フレーム中に存在しない値を得ることである、サブピクセル位置のための補間フィルタ処理とは異なり、参照フレーム中の整数位置におけるピクセルはすでに存在する。それでも、参照フレーム中の整数ピクセル位置に対してフィルタ処理を適用することは、いくつかの利益を提供する。たとえば、整数ピクセル位置がオフセットを含むとき、整数ピクセル位置のフィルタ処理により、フレーム間の照明変更をより良くキャプチャすることが可能になる。さらに、整数ピクセル位置に対するフィルタ処理により、整数ピクセル位置がフェードインおよびフェードアウトなどの特殊効果をキャプチャすることが可能になる。整数ピクセル位置に対するフィルタ処理により、いくつかの(カメラノイズなどの)信号ノイズを除去することもでき、および/または、必要な場合、シャープ化を実行する。さらに、整数ピクセルフィルタに対して対称性が課せられない場合、整数ピクセルフィルタは、クォーターピクセルの倍数ではない物体移動などの微細な物体の移動をキャプチャするのに役立つ。最後に、焦点変更が発生するとき、整数ピクセルフィルタ処理はまた、ビデオシーケンスの圧縮を改善することに有用である。
いくつかの例では、整数ピクセル位置の補間フィルタ処理は動きベクトルに依存することがある。言い換えれば、予測ユニット32のMCユニット37は、MEユニット35によって識別される動きベクトルに基づいて補間フィルタ処理を適応的に適用することができる。たとえば、動きベクトルが整数ピクセル位置を指すとき、整数ピクセル位置の補間フィルタ処理を実行することができる。補間フィルタ処理により、整数ピクセル位置の調整されたピクセル値が生じる。動きベクトルがサブピクセル位置を指すとき、整数ピクセル位置のフィルタ処理を整数ピクセル値に関して実行しないが、そのフィルタ処理をサブピクセル値の補間のために使用することができる。このようにして、整数ピクセルフィルタ処理は動きベクトルに基づいて適応していると考えることができる。
整数ピクセル位置の場合、式(15)の形態の5×5補間フィルタを、サブピクセル位置フィルタを導出するために使用される同じ分析プロセスを使用して導出することができる。
ただし、pFPはフィルタ処理された整数ピクセル値であり、Pi,jは位置(i,j)における整数ピクセル値であり、hFP i,jは位置(i,j)のための係数であり、oFPはフィルタオフセットである。いくつかの例では、整数ピクセル位置のための補間フィルタは、フィルタオフセットを有していないことがある(すなわち、oFP=0)。他の例では、フィルタオフセットoFPはいくつかの技法のいずれかを使用することができる。サブピクセル位置ごとに異なるオフセットを定義することができ、たとえば、図3に示すサブピクセル位置ごとに異なる15個のオフセットを定義することができる。整数ピクセルに対して別のオフセットを定義することができ、オフセットの総数は16になる。参照により本明細書に組み込まれる、本出願と同じ日に出願され、整理番号第081399U2号を有し、Karczewiczらによって出願された、同時係属および同一出願人による「OFFSETS AT SUB-PIXEL RESOLUTION」と題する米国特許出願第___号は、異なるピクセルロケーションおよびサブピクセルロケーションのための多くのオフセットの使用について多くの追加の詳細を与える。
送信すべきフィルタ係数の数を低減するために、式(16)に記載の係数対称性を、整数ピクセルフィルタに課することができる。
係数対称性の他の形態を使用することもできる。係数対称性を課するどうかは、符号器によって決定され、復号器に知らされる。(16)に記載の対称性が整数ピクセルフィルタに対して使用された場合、9つのフィルタ係数と1つのオフセットとを復号器に送信する必要がある。
オフセットのコーディングは、最初に整数オフセットをコーディングし、次いで各部分オフセットをコーディングすることによって行われる。この場合、整数オフセットおよび部分オフセットを別様にコーディングする。整数オフセットは、符号付き指数ゴロム符号を使用してコーディングできる。整数オフセットの絶対値に応じて、部分オフセットを整数オフセットとは別様に量子化することができる。たとえば、整数オフセットが大きい絶対値を有するとき、より粗いレベルの量子化を部分オフセットに対して適用することができる。量子化の後、固定長符号を使用して部分オフセットをコーディングすることができる。一例として、以下の擬似コードに、整数オフセット値に基づいて定義された異なる固定長符号を使用して所与の部分オフセットをコーディングする方法を示す。
オフセットIを整数オフセットとする。
オフセットFを部分オフセットとする。
オフセットFビットを、オフセットFを量子化するために使用されるビット数とする。
この場合、ビデオ符号器50は、オフセット値の各々に対して、第1のビット数を所与のオフセット値の整数部分に割り当て、第2のビット数を所与のオフセット値の小数部分に割り当てる係数予測および量子化ユニット41を使用することができ、第1および第2のビット数は、整数部分の絶対値に基づいて判断される。この場合、オフセット値の量子化バージョンは、オフセット値の量子化が上記の擬似コードに一致して実行された後、予測シンタックス要素として予測ユニット32からフォワーディングされる。いずれの場合も、ビデオ符号器50は、第2のビット数とは別様に第1のビット数を符号化することができる。
図7は、本開示に一致する、4つの整数ピクセル位置と、フィルタ係数のためのピクセル対称性を使用することができるピクセル位置をグループ化するための陰影付きの15個のサブピクセル位置とを示す概念図である。特に、図7は、整数ピクセル位置C3に対応するサブピクセル位置「a」〜「o」を示す。図7に示すサブ整数ピクセル位置は、図4および図5のサブ整数ピクセル位置に対応する。すなわち、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」は、図4に示す12ピクセルサポートによって判断された値を有することができるが、サブピクセルロケーション「a」、「b」、および「c」、ならびにサブピクセルロケーション「d」、「h」、および「l」は、図5に示す水平および線形ピクセルサポートによって判断された値を有することができる。
このシナリオでは、ピクセルロケーション「a」のためのフィルタ係数がピクセルロケーション「c」のためのフィルタ係数に対して対称的であるようにピクセル対称性を課することができる。同様に、ピクセルロケーション「d」のためのフィルタ係数がピクセルロケーション「l」のためのフィルタ係数に対して対称的であるようにピクセル対称性を課することができる。ピクセルロケーション「e」のためのフィルタ係数がピクセルロケーション「g」、「m」、および「o」のためのフィルタ係数に対して対称的であるようにピクセル対称性を課し、ピクセルロケーション「i」のためのフィルタ係数がピクセルロケーション「k」のためのフィルタ係数に対して対称的であるようにピクセル対称性を課し、ピクセルロケーション「f」のためのフィルタ係数がピクセルロケーション「n」のためのフィルタ係数に対して対称的であるようにピクセル対称性を課することができる。したがって、復号器がすべての15個のピクセルロケーションのための係数値の完全なセットを発生することができるためには、ビデオビットストリームの一部として係数値の8つのセットのみを通信すればよい。さらに、係数の任意の所与のセットに対して、係数対称性は、係数値のサブセットのみを送信できるようにし、復号器は、サブセットおよび係数対称性に基づいて、所与のピクセルロケーションのための係数値の完全なセットを発生することができる。
本開示の一態様は、サブピクセル位置「d」および「l」に対するサブピクセル位置「a」および「c」との間のピクセル対称性を実際に除去することである。さらに、サブピクセル位置「i」に対するサブピクセル位置「f」に対してピクセル対称性を回避することがある。さらに、サブピクセル位置「n」に対するサブピクセル位置「k」に対してピクセル対称性を回避することがある。そのような場合、対角相関は低くなり、対角対称性を課することが非効率的または非効果的になる。このように、係数のすべての15個のセットを発生するために使用される係数の8つのセットは、ピクセルロケーションの一部に対して対角次元における対称性を回避する限り、一部の従来の技法よりも大きいセットとなることがある。場合によっては、垂直次元における分散を可能にするために、対角ピクセル対称性および対角係数対称性を削除または回避することができる。
図1を再び参照すると、ビデオ符号器22は、フィルタ係数の8つのセットを判断し、また、フィルタ係数の8つのセットを使用して、係数対称性およびピクセル対称性に基づいて15個の異なるサブピクセルロケーションに対応するフィルタ係数のすべての15個のセットを発生し、符号化ビットストリームの一部としてフィルタ係数の8つのセットを出力することができる。フィルタ係数の8つのセットは、符号化ビットストリームのあらゆるコード化単位に対して出力され、または場合によっては、フィルタ係数の8つのセットのうちのいくつかの発生したセットは、コード化単位の異なるエリアに対して出力される。
15個のセットは、図3に示すあらゆるハーフペルおよびクォーターペルサブピクセルロケーションに対応し、8つのセット、係数対称性およびピクセル対称性は、あらゆるハーフペルおよびクォーターペルサブピクセルロケーションのためのフィルタサポートを定義する。宛先デバイス16のビデオ復号器28は、符号化ビデオビットストリームの一部としてフィルタ係数の8つのセットを受信し、フィルタ係数の8つのセットに基づいて15個の異なるサブピクセルロケーションに対応するフィルタ係数の15個のセットを発生し、15個の異なるサブピクセルロケーションのうちの1つに対応するビデオ復号のための補間予測データを、フィルタ係数の15個のセットのうちの1つに基づいて発生し、補間予測データに基づいて1つまたは複数のビデオブロックを復号することができる。
係数対称性をもつ所与のセットが、所与のセットに関連する所与のサブピクセルロケーションのためのフィルタサポートに関連するフィルタ係数のサブセットを備えるように、フィルタ係数の8つのセットのうちの少なくともいくつかは係数対称性を有することができる。したがって、ビデオ復号器28は、2つ以上の異なるサブピクセルロケーション間のピクセル対称性に少なくとも部分的に基づいて、フィルタ係数の15個のセットを発生することができる。その上、係数対称性をもつ所与のセットが、所与のセットに関連する所与のサブピクセルロケーションのためのフィルタサポートに関連するフィルタ係数のサブセットを備えるように、ビデオ復号器28は、2つ以上の異なるサブピクセルロケーション間のピクセル対称性に少なくとも部分的に基づいて、また、所与のセットのために定義された係数対称性に少なくとも部分的に基づいて、フィルタ係数の15個のセットを発生することができる。
この場合も、15個のセットは、あらゆるハーフペルおよびクォーターペルサブピクセルロケーションに対応することができる。垂直次元および水平次元におけるフィルタ係数の15個のセットのうちの異なるセット間にピクセル対称性は存在するが、フィルタ係数の15個のセットのうちの少なくともいくつかに対する対角次元におけるピクセル対称性は存在しない。以下でより詳細に説明するように、8つのセットのうちの2つは、水平フィルタサポートのための15個のセットのうちの3つを定義し、8つのセットのうちの2つは、垂直フィルタサポートのための15個のセットのうちの3つを定義し、8つのセットのうちの4つは、2次元フィルタサポートのための15個のセットのうちの9つを定義することができる。2次元サポートは、放射状に9つのサブピクセル位置を囲む有用な12位置フィルタサポートを備えることができる。
特に、補間予測データは、たとえば、図7に示す15個のハーフペル値およびクォーターペル値を備えることができ、補間フィルタは、たとえば、図4に示す12個のフィルタサポート位置の2次元アレイを定義し、12個のフィルタサポート位置は、たとえば、図4にまた示す15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される。補間予測データを発生することは、たとえば、図5に示すように15個のハーフペル値およびクォーターペル値のうちの6つのためのフィルタサポート位置の1次元アレイを定義する線形補間フィルタを適用することをさらに備えることができる。
水平対称性および対角対称性の欠如は、サブピクセル位置「a」および「c」に関して、またはサブピクセル位置「i」および「k」に関して見られる。この場合、サブ整数ピクセル位置「a」および「c」は水平X軸に沿って対称的であるが、これらのピクセルに対する対角軸に沿って対称性が存在しないので、サブピクセルロケーション「d」および「l」はそれぞれサブピクセル位置「a」および「c」に対して対称的ではない。同様に、サブピクセル位置「i」および「k」は水平X軸に沿って対称的であるが、これらのピクセルに対する対角軸に沿って対称性が存在しないので、サブピクセルロケーション「f」および「n」はそれぞれサブピクセル位置「i」および「k」に対して対称的ではない。
ピクセル対称性は、第1のサブピクセル位置に対する係数の第1のセットが、第2のサブピクセル位置に対する係数の第2のセットに対して対称的であることを意味する。たとえば、ピクセルロケーション「a」はピクセルロケーション「c」に対してピクセル対称性を有し、ピクセルロケーション「d」はピクセルロケーション「l」に対してピクセル対称性を有する。ピクセルロケーション「f」はピクセルロケーション「n」に対してピクセル対称性を有し、ピクセルロケーション「i」はピクセルロケーション「k」に対してピクセル対称性を有する。ピクセルロケーション「e」は、ピクセルロケーション「g」、「m」、および「o」に対してピクセル対称性を有する。図7に示す陰影は、このピクセル対称性を示しており、たとえば、共通の陰影は、他のピクセルロケーションに対して対称的であるピクセルロケーションに対応する。この場合、8つのピクセルロケーションのための係数は(ピクセル対称性の態様とともに)、すべての15個のピクセルロケーションのための係数を定義することができる。さらに、係数の所与のセット内に係数対称性が存在することができるので、係数のそのセット中の係数のサブセットのみをビットストリームとともに通信すればよい。
ビデオ符号器22は、補間予測データに基づいて符号化ビデオデータを発生することができ、補間予測データは、15個のハーフペル値およびクォーターペル値を備え、補間フィルタは、15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される12個のフィルタサポート位置の2次元アレイを定義する。補間予測データに基づいて符号化ビデオデータを発生することは、15個のハーフペル値およびクォーターペル値のうちの6つのためのフィルタサポート位置の1次元アレイを定義する線形補間フィルタを適用することをさらに備えることができる。
図8は、サブピクセル位置「b」に対する6つの水平線形ピクセルサポート位置C1〜C6を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置C1〜C6のための係数のセット全体を定義するために、3つのフィルタ係数のみがC1、C2およびC3のためにあればよいことを意味する。C1はC6と対称的であり、C2はC5と対称的であり、C3はC4と対称的である。したがって、サブピクセル位置「b」を補間するために必要な6つの係数のセットを定義するために、符号化ビデオビットストリームの一部として3つの係数のみを通信すればよい。
図9は、サブピクセルに対する6つの水平線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。したがって、サブピクセル位置「a」に関するフィルタサポートのための係数のセットを定義するためにすべての6つの係数が必要である。しかしながら、上記のように、ピクセル対称性は、サブピクセル位置「a」に関するこれらの同じ係数がまた、サブピクセル位置「c」(図7参照)のためのフィルタサポートを導出するために使用できることを意味する。したがって、サブピクセル位置「a」および「c」を補間するために必要な6つの係数のうちの2つの異なるセットを定義するために、符号化ビデオビットストリームの一部として6つの係数のみを通信すればよい。
図10は、サブピクセル「h」に対する6つの垂直線形ピクセルサポート位置A3、B3、C3、D3、E3およびF3を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置A3、B3、C3、D3、E3およびF3のための係数のセット全体を定義するために、A3、B3およびC3のために3つのフィルタ係数のみがあればよいことを意味する。A3はF3と対称的であり、B3はE3と対称的であり、C3はD3と対称的である。したがって、サブピクセル位置「h」を補間するために必要な6つの係数のセットを定義するために、符号化ビデオビットストリームの一部として3つの係数のみを通信すればよい。
図11は、サブピクセルに対する6つの垂直線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。したがって、サブピクセル位置「d」に関するフィルタサポートのための係数のセットを定義するためにすべての6つの係数が必要である。しかしながら、上記のように、ピクセル対称性は、サブピクセル位置「d」に関するこれらの同じ係数がまた、サブピクセル位置「l」(図7参照)のためのフィルタサポートを導出するために使用できることを意味する。したがって、サブピクセル位置「d」および「l」を補間するために必要な6つの係数のうちの2つの異なるセットを定義するために、符号化ビデオビットストリームの一部として6つの係数のみを通信すればよい。
図12は、サブピクセル位置「e」に対する12個の2次元ピクセルサポート位置(大文字と陰影付きで示す整数ピクセル位置)を示す概念図である。陰影は係数対称性の欠如を示す。したがって、サブピクセル位置「e」に関するフィルタサポートのための係数のセットを定義するために、すべての12個の係数が必要である。しかしながら、上記のように、ピクセル対称性は、サブピクセル位置「e」に関するこれらの同じ係数がまた、サブピクセル位置「g」、「m」、および「o」(図7参照)のためのフィルタサポートを導出するために使用できることを意味する。したがって、12個の係数は、サブピクセル位置「e」のためのフィルタサポートを定義し、これらの同じ係数は、サブピクセル位置「g」、「m」、および「o」のための係数のセットを導出するために使用できる。
図13は、サブピクセル「i」に対する12個の2次元ピクセルサポート位置(大文字で示される整数ピクセル位置)を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置B3、B4、C2、C3、C4およびC5のためのフィルタ係数を使用して、フィルタサポート位置E3、E4、D2、D3、D4およびD5のためのフィルタ係数を定義することができることを意味する。B3はE3と対称的であり、B4はE4と対称的であり、C2はD2と対称的であり、C3はD3と対称的であり、C4はD4と対称的であり、C5はD5と対称的である。したがって、サブピクセル位置「i」を補間するために必要な12個の係数のセットを定義するために、符号化ビデオビットストリームの一部として6つの係数のみを通信すればよい。さらに、上記のように、サブピクセル位置「i」は、サブピクセル位置「k」に対するピクセル対称性を有することができる。したがって、6つの係数の同じサブセットは、サブピクセル位置「i」および「k」のための12個のフィルタ係数のセット全体を定義することができる。
図14は、サブピクセル「f」に対する12個の2次元ピクセルサポート位置(大文字で示される整数ピクセル位置)を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置C2、D2、B3、C3、D3およびE3のためのフィルタ係数を使用して、フィルタサポート位置C5、D5、B4、C4、D4およびE4のためのフィルタ係数を定義することができることを意味する。C2はC5と対称的であり、D2はD5と対称的であり、B3はB4と対称的であり、C3はC4と対称的であり、D3はD4と対称的であり、E3はE4と対称的である。したがって、サブピクセル位置「f」を補間するために必要な12個の係数のセットを定義するために、符号化ビデオビットストリームの一部として6つの係数のみを通信すればよい。さらに、上記のように、サブピクセル位置「f」は、サブピクセル位置「n」に対するピクセル対称性を有することができる。したがって、6つの係数の同じサブセットは、サブピクセル位置「f」および「n」のための12個のフィルタ係数のセット全体を定義することができる。
図15は、サブピクセル「j」に対する12個の2次元ピクセルサポート位置(大文字で示される整数ピクセル位置)を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置B3、B4、C2、C3、C4、C5、D2、D3、D4、D5、E3およびE4のための12個の係数のセット全体を定義するために、B3、C2およびC3のために、3つのフィルタ係数のみがあればよいことを意味する。C3はC4、D3およびD4と対称的であり、C2はD2、C5およびE4と対称的であり、B3はB4、E3およびD5と対称的である。したがって、サブピクセル位置「j」を補間するために必要な12個の係数のセットを定義するために、符号化ビデオビットストリームの一部として3つの係数のみを通信すればよい。
図16は、本明細書で説明する方法で符号化されたビデオシーケンスを復号することができるビデオ復号器の例を示すブロック図である。ビデオ復号器60は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータデバイスまたは装置の一例である。ビデオ復号器60は、量子化係数および予測シンタックス要素を発生するために、受信したビットストリームをエントロピー復号するエントロピー復号ユニット52を含む。予測シンタックス要素は、コーディングモード、1つまたは複数の動きベクトル、サブピクセルデータを発生するために使用される補間技法を識別する情報、補間フィルタ処理中に使用するための係数、および/または予測ブロックの発生に関連する他の情報を含むことができる。
予測シンタックス要素、たとえば、係数は、予測ユニット55にフォワーディングされる。予測を使用して、固定フィルタの係数に対する係数、または互いに対する係数をコーディングした場合、係数予測および逆量子化ユニット53は、実際の係数を定義するために、シンタックス要素を復号することができる。また、量子化を予測シンタックスのいずれかに適用した場合、係数予測および逆量子化ユニット53は、そのような量子化を除去することもできる。たとえば、本開示に従って、フィルタ係数を予測コーディングし、量子化することができ、この場合、係数予測および逆量子化ユニット53は、そのような係数を予測的に復号し、逆量子化するためにビデオ復号器60によって使用できる。
予測ユニット55は、ビデオ符号器50の予測ユニット32に対して上記で詳細に説明したのとほとんど同じ方法で、メモリ62に記憶されている予測シンタックス要素および1つまたは複数のあらかじめ復号されたブロックに基づいて、予測データを発生することができる。特に、予測ユニット55は、動き補償中に本開示の補間フィルタ処理技法のうちの1つまたは複数を実行して、クォーターピクセル精度などの特定の精度で予測ブロックを発生することができる。したがって、本開示の技法のうちの1つまたは複数は、予測ブロックを発生する際に、ビデオ復号器60によって使用できる。予測ユニット55は、本開示の補間および補間的フィルタ処理技法のために使用されるフィルタを備える動き補償ユニットを含むことができる。動き補償構成要素は、説明を簡単で容易にするために図16に示していない。
逆量子化ユニット56は、量子化された係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、H.264復号のために定義されたプロセスとすることができる。逆変換ユニット58は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、たとえば逆DCTまたは概念的に同様の逆変換プロセスを適用する。加算器64は、残差ブロックを、予測ユニット55によって発生された対応する予測ブロックと加算して、ビデオ符号器50によって符号化された元のブロックの再構成されたバージョンを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理することもできる。次いで、復号ビデオブロックは参照フレームストア62に記憶され、参照フレームストア62は参照ブロックをその後の動き補償に供給し、ドライブディスプレイデバイス(図1のデバイス28など)に対して復号ビデオをも生成する。
NS−AIF技法は、36位置フィルタサポート(すなわち、2D6×6フィルタサポート)を有する補間フィルタを使用して、2Dサブピクセル位置のピクセル値を計算することができる。S−AIFは、最初に垂直次元よりも水平方向における補間フィルタ処理のためのフィルタサポートとして、分離可能な整数ピクセル位置を使用する。D−AIFは、2Dサブピクセル位置を計算するための、NS−AIFよりも複雑ではない補間フィルタを使用する。D−AIFでは、6位置フィルタサポートまたは12位置対角フィルタサポートのいずれかを有する補間フィルタを使用して2Dサブピクセル位置を計算する。
D−AIFに記載の対角フィルタサポートを使用することの1つの欠点は、フィルタ処理で使用される整数ピクセル位置が、補間すべき現在の位置からはるかに離れているということである。補間すべき現在の位置とフィルタサポートとして使用されるピクセルの位置との間の距離が増加するにつれて、空間ピクセル相関は減少する。したがって、D−AIFで使用される対角フィルタサポートは、正確な予測を形成することにあまり適していない。
D−AIFによって提供される同じ低複雑度を維持しながら、補間すべき位置とのより高い相関をもつピクセル(すなわち、補間すべき位置により近い、または補間すべき位置からより短い距離のピクセル位置)を使用してより良い予測を行うために、図4に示す12位置フィルタサポートを補間のために使用することができる。本開示で説明する12位置フィルタサポートで使用される整数ピクセル位置は、サブピクセル位置を囲む4つの整数ピクセル位置すなわち、整数ピクセル位置C3、C4、D3およびD4を含み、4つの整数ピクセル位置は、2Dサブピクセル位置のコーナーの近くに配置されるので、「コーナー」整数ピクセル位置と呼ばれる。コーナー整数ピクセル位置に加えて、コーナー整数ピクセル位置に直接隣接する1つまたは複数の整数ピクセル位置を、フィルタサポートで使用することもできる。コーナー整数ピクセル位置に直接隣接する整数ピクセル位置は、コーナー整数ピクセル位置のすぐ上(上部または北の方向)、あるいは、すぐ下(下部または南の方向)の整数ピクセル位置、ならびに、コーナー整数ピクセル位置のすぐ左(または西)、あるいは、すぐ右(または東)の整数ピクセル位置を含むことができる。図4に示す例では、12位置フィルタサポートは、整数ピクセルロケーションB3、B4、C2、C3、C4、C5、D2、D3、D4、D5、E3およびE4を含むことができる。これらの整数ピクセル位置のすべては、補間すべきサブピクセルの2つの整数ピクセル位置内に配置される。
しかしながら、本開示の技法によるフィルタサポートは、追加の整数ピクセルロケーションを含むことができる。たとえば、フィルタサポートは、補間すべきサブピクセル位置の、放射形状を形成する3つの整数ピクセル位置内に配置された整数ピクセルロケーションを含むことができる。
クォーターピクセル位置またはより微細な解像度でも、少なくとも2つの整数ピクセル位置内に配置された整数ピクセル位置に基づいて補間できる。このように、本開示のフィルタサポート技法は、D−AIFによって提供される同じ低複雑度を維持しながら、補間すべき位置とのより高い相関をもつ整数ピクセルを使用して、より良い補間予測を行う。
上述のように、サブピクセル対称性は、1つまたは複数のサブピクセル位置のグループに対して、フィルタ係数の同じセット(ならびにセットのミラーリング、反転および/または回転されたバージョン)を実施することができる。式(5)における分析プロセスなどの分析プロセスを使用することは、すべてのサブピクセル位置、たとえば、クォーターピクセル精度の場合の15個のサブピクセル位置に対して、補間フィルタ係数を導出するために使用できる。補間フィルタ係数の15個のセットの間の相関の分析は、同じ次元(たとえば、垂直または水平次元)におけるサブピクセル位置(1Dサブピクセル位置と2Dサブピクセル位置の両方)のフィルタ係数間の比較的強い相関を明らかにする。それとは反対に、異なる対角方向におけるサブピクセル位置のフィルタ係数間の相関は、著しくより弱くなることがある。
たとえば、両方とも水平次元にあるサブピクセル位置「a」と「c」とのためのフィルタ係数間に高い相関が存在することがある。別の例として、両方とも垂直次元にあるサブピクセル位置「d」と「l」とのためのフィルタ係数間に高い相関が存在することがある。しかしながら、水平次元にあるサブピクセル位置「a」のためのフィルタ係数と、垂直次元にあるサブピクセル位置「d」のためのフィルタ係数との間には、あるとしても、ほとんど相関がない。相関のこれらの観察に基づいて、対角次元におけるサブピクセル位置のフィルタ係数に対してサブピクセル対称性が課されないように、サブピクセル対称性を設計することができる。これは、本明細書で説明するように、いくつかの従来のプロセスのために必要となるセットよりも多いセットとすることができる係数の8つのセットをもたらす。いくつかのピクセルロケーションに対する対角ピクセル対称性を削除することによって、本明細書で説明するように、ビデオ符号化および圧縮を改善することができる。
この場合も、図7は、サブピクセル対称性を有するサブピクセル位置のグループに属するピクセル位置を同じ陰影(またはハッチング)付きで示す。特に、サブピクセル位置「a」および「c」は、サブピクセル対称性を有する第1のグループを形成し、サブピクセル位置「d」および「l」は、サブピクセル対称性を有する第2のグループを形成し、サブピクセル位置「e」、「g」、「m」、および「o」は、サブピクセル対称性を有する第3のグループを形成し、サブピクセル位置「f」および「n」は、サブピクセル対称性を有する第4のグループを形成し、サブピクセル位置「i」および「k」は、サブピクセル対称性を有する第5のグループを形成する。サブピクセル位置「b」、「h」、および「j」は、任意の他のサブピクセル位置とのサブピクセル対称性を有しない。したがって、サブピクセル位置「b」、「h」、および「j」はそれぞれ、それら自体のグループ、すなわち、第6、第7および第8のグループに属するものとして考えられる。様々なタイプのフィルタ処理がコード化単位の様々なエリアまたは機能に対して定義された場合、(係数対称性によりサブセットとすることができる)係数の各グループは、コード化単位当たり1回、または場合によっては、コード化単位当たり複数回通信できる。整数ペル補間的フィルタ処理のための係数はまた、コード化単位当たり1回または数回、送信できる。
NS−AIFおよびD−AIFでは、同じ次元におけるサブピクセル位置、たとえば、垂直次元における2つのサブピクセル位置または水平次元における2つのサブピクセル位置間にサブピクセル対称性が存在する。いくつかの従来のNS−AIFおよびD−AIFでは、異なる次元におけるサブピクセル位置間に対角線的にも対称性が存在する。たとえば、いくつかの従来のNS−AIFおよびD−AIFでは、垂直次元におけるサブピクセル位置「a」と水平方向におけるサブピクセル位置「d」との間にサブピクセル対称性が存在する。水平、垂直および対角次元におけるサブピクセル対称性とともに、補間フィルタ係数のわずか5つの一意のセットをクォーターピクセル精度に対して使用することができる。
一方、いくつかのタイプのS−AIFの場合、水平次元におけるサブピクセル位置ではなく、垂直方向(または次元)におけるサブピクセル位置間にサブピクセル対称性が存在する。言い換えれば、同じ次元におけるサブピクセル位置に対してサブピクセル対称性が常に存在するわけではない。サブピクセル対称性はまた、対角次元において存在しない。したがって、いくつかのS−AIF方式の対称性は、補間係数のより多くのセットを必要とする。特に、クォーターピクセル精度の場合、いくつかのS−AIF方式は、補間係数の11個の一意のセットを必要とする。
本開示で説明し、図7に示すサブピクセル対称性方式は、NS−AIFおよびD−AIFのいくつかのタイプについて上述したサブピクセル対称性よりも正確な予測を生じることができる。特に、図7のサブピクセル対称性方式は、1次元において(たとえば、水平方向または垂直方向において)サブピクセル対称性を課するが、同時に両方の次元において(たとえば、対角線的に)サブピクセル対称性を課するわけではない。
サブピクセル位置に対して対角線的にサブピクセル対称性を課さないことによって、補間フィルタ係数と異なる次元におけるサブピクセル位置との間の弱い相関は、補間に統合されない。補間係数のより多くの(たとえば、5つではなく8つの)セットが必要とされることがあるが、得られた補間予測データはより正確になることがある。ほとんど同じ方法で、対角係数対称性を回避または削除することもできる。
予測ユニット32は、上述のように係数対称性を課することもできる。特に、係数対称性を1次元(たとえば、水平方向または垂直方向)においてフィルタ係数に対して課するが、両方の次元に対して対角的に課するわけではない。たとえば、サブピクセル位置「e」のためのフィルタ係数は、式(11)で表される上述のNS−AIF方式の場合のように対角線的に対称的にならない。係数対称性を以下に式(17)〜(21)で要約する。
サブピクセル位置「f」、「i」、および「j」の場合、図4に関して詳細に説明した12位置フィルタが使用できる例では、いくつかのフィルタ係数、すなわち、
が0に等しいことに留意されたい。したがって、本開示で説明するサブピクセルおよび係数対称性は、フィルタサポート技法とともに、または、フィルタサポート技法とは別個に使用できる。図4で説明した12位置フィルタサポートとともに使用されるとき、復号器に送信する必要があるこれらのサブピクセル位置のための6(a)+3(b)+6(d)+3(h)+12(e)+6(f)+6(i)+3(j)=45個の一意の係数、すなわち、サブピクセル位置「a」を含むグループのための6つの係数、サブピクセル位置「b」を含むグループのための3つの係数、サブピクセル位置「d」を含むグループのための6つの係数、サブピクセル位置「h」を含むグループのための3つの係数、サブピクセル位置「e」を含むグループのための12個の係数、サブピクセル位置「f」を含むグループのための6つの係数、サブピクセル位置「i」を含むグループのための6つの係数、サブピクセル位置「j」を含むグループのための3つの係数がある。
図17は、本開示に一致する12ピクセルフィルタサポートを利用するビデオ符号器の例示的な動作を示す流れ図である。図17の技法について図2のビデオ符号器50の観点から説明するが、他のデバイスでも同様の技法を実行することができる。図示のように、図17では、予測ユニット32のMCユニット37は、整数ピクセル位置に対応する整数ピクセル値を含むピクセルのブロックをメモリ34から得る(171)。(1つまたは複数の)フィルタ39は、サブピクセル位置を囲む12個以上の位置を備えるフィルタサポートに基づいてサブピクセル値を計算する(172)。上記でより詳細に説明したように、12位置フィルタサポートを使用して、15個の可能なサブピクセル補間のうちの9つを発生することができ、線形水平および線形垂直フィルタ処理を使用して、15個の可能なサブピクセル補間のうちの6つを発生することができる。
MCユニット37は、次いで、計算されたサブピクセル値に基づいて予測ブロックを発生する(173)。特に、MCユニット37は、補間サブピクセル値を備える補間予測ブロックを発生し、出力することができる。加算器48は、次いで、たとえば、符号化されているビデオブロックから補間予測ブロックを減算することによって、補間予測ブロックに基づいて現在のビデオブロックを符号化(174)して、残差ブロックを発生する。次いで、それぞれ変換ユニット38および量子化ユニット40によって残差ブロックを変換および量子化する。エントロピーコーディングユニット46によるエントロピーコーディングの後、ビデオ符号器50は、符号化ビデオビットストリームとフィルタ情報とを出力する(175)。フィルタ情報は、本明細書で説明するように、15個のサブペル位置のための係数のすべての15個のセットを発生するために使用される、係数の8つのセットを備えることができる。フィルタ情報は、コード化単位ごとに1回出力され、または場合によっては、コード化単位の様々なエリアが様々なタイプのサブペル補間を使用するならば、コード化単位ごとに数回出力される。
図18は、本開示に一致する12ピクセルフィルタサポートを利用するビデオ復号器の例示的な動作を示す流れ図である。したがって、図18のプロセスは、図17の符号化プロセスとは逆の復号プロセスと考えることができる。図18の技法について図16のビデオ復号器60の観点から説明するが、他のデバイスでも同様の技法を実行することができる。図18に示すように、ビデオ復号器60は、符号化ビデオブロックとフィルタ情報とを受信する(181)。エントロピー復号ユニット52は、この受信情報をエントロピー復号する。予測ユニット55は、本開示の技法に従って補間動き補償を実行する。特に、予測ユニット55は、整数ピクセル位置に対応する整数ピクセル値を含むピクセルのブロックをメモリ62から得る(182)。予測ユニット55は、受信した動きベクトルを使用して、補間をどのように実行するかを判断する。動きベクトルに基づいて、予測ユニット55は、サブピクセル位置を囲む12個以上の位置を備えるフィルタサポートに基づいてサブピクセル値を計算する(183)。このようにして、予測ユニット55は、補間を使用して予測ブロックを発生する(184)。加算器64を呼び出して予測ブロックを残差ブロックに加算(185)することによって、予測ブロックを使用して残差ビデオブロックを復号する。放射状にサブピクセル位置を囲む12位置フィルタサポートの使用を含む、本明細書で説明する補間の様々な態様は、従来の技法よりも優れた品質の補間データを与えることによってビデオ符号化を改善することができる。
図19は、本開示に一致する係数対称性およびピクセル対称性を利用するビデオ符号器の例示的な動作を示す流れ図である。図19の技法について図2のビデオ符号器50の観点から説明するが、他のデバイスでも同様の技法を実行することができる。図示のように、図19では、本明細書で説明するように、ビデオ符号器50の予測ユニット32は、係数対称性とピクセル対称性とに基づいて15個のサブピクセル位置に対してフィルタ係数の8つのセットを定義する(201)。特に、予測ユニット32は、ピクセル対称性を使用して、係数のセットを15個から8つに低減し、さらに、所与のセットの係数間の係数対称性に基づいて、8つのセットの一部または全部について係数の数を低減することができる。予測ユニット32は、次いで、補間フィルタ((1つまたは複数の)フィルタ39など)とフィルタ係数の8つのセットとを使用してビデオデータを符号化する(202)。ビデオ符号器50は、符号化ビデオデータとフィルタ係数の8つのセットとを出力する(203)。補間に使用するフィルタ係数を復号デバイスに通知することができるように、符号化され、ビットストリーム中に出力された係数の8つのセットを、各コード化単位(たとえば、各フレームまたはスライス)とともに送信することができる。代替的に、コード化単位内の様々なロケーションにおいて様々なタイプの補間を可能にするために、係数の8つのセットの様々なグループを符号化し、各コード化単位とともに送信することができる。
図20は、本開示に一致する係数対称性およびピクセル対称性を利用するビデオ復号器の例示的な動作を示す流れ図である。この場合、ビデオ復号器60の予測ユニット55は、フィルタ係数の8つのセットを受信(191)し、その8つのセットと係数対称性とピクセル対称性とに基づいてフィルタ係数の15個のセットを発生する。予測ユニット60は、次いで、その補間フィルタをプログラムし、そのような補間フィルタを適用して、適切に補間予測データを発生する(193)。ビデオ復号器60は、次いで、たとえば、加算器64を呼び出して、予測ユニット55によって補間された正しい予測データを、復号すべき残差ブロックに加算し、予測データに基づいてビデオブロックを復号する(194)。
図21は、本開示に一致する、整数ピクセルロケーションのフィルタ処理を利用して、調整された整数ピクセル値を発生するビデオ符号器の例示的な動作を示す流れ図である。これについては、補間に類似し、サブ整数値を発生しない限り、補間的フィルタ処理として上述した。そうではなく、このプロセスは、元の整数値と元の整数値を囲む他の整数値とに基づいてフィルタ処理される新しい整数値を発生する。
図21の技法について図2のビデオ符号器50の観点から説明するが、他のデバイスでも同様の技法を実行することができる。図示のように、図21では、予測ユニット32のMCユニット37は、整数ピクセルロケーションに対応する整数ピクセル値を含むピクセルのブロックをメモリ34から得る(211)。予測ユニット32の(1つまたは複数の)フィルタ39は、調整された整数ピクセル値を発生するために、ピクセルのブロックの他の整数ピクセル値に基づいて整数ピクセル値をフィルタ処理する(212)。予測ユニット32は、調整された整数ピクセル値に基づいて予測ブロックを発生(213)し、ビデオ符号器50は、たとえば、加算器48を呼び出して、符号化されているビデオブロックから予測ブロックを減算して残差ブロックを発生し、予測ブロックに基づいてビデオブロックを符号化(214)する。変換ユニット38および量子化ユニット40による残差ブロックの変換および量子化、ならびにエントロピーコーディングユニット46によるエントロピーコーディングの後、ビデオ符号器50は、符号化ビデオブロックとフィルタ情報とを出力する(215)。サブペル補間の場合と同様に、整数ピクセルロケーションに対する補間的フィルタ処理は、コード化単位ごとに1回、フィルタ情報の出力および通信に関与し、または場合によっては、コード化単位の様々なエリアが様々なタイプの整数補間的フィルタ処理を使用するならば、コード化単位ごとに数回、フィルタ情報の出力および通信に関与する。
図22は、本開示に一致する、整数ピクセルロケーションのフィルタ処理を利用して、調整された整数ピクセル値を発生するビデオ復号器の例示的な動作を示す流れ図である。ビデオ復号器60の予測ユニット55は、符号化ビデオブロックを受信し、(たとえば、コード化単位ごとに1回)フィルタ情報をも受信する(221)。予測ユニット55は、整数ピクセル位置に対応する整数ピクセル値を含むピクセルのブロックをメモリ62から得る(222)。予測ユニット55は、調整された整数ピクセル値を発生するために、動き補償の一部としてフィルタ(図示せず)を呼び出して、ピクセルのブロックの他の整数ピクセル値に基づいて整数ピクセル値をフィルタ処理する(223)。予測ユニット55は、調整された整数ピクセル値に基づいて予測ブロックを発生する(224)。ビデオ復号器60は、次いで、たとえば、加算器64を呼び出して、予測ユニット55によって補間された予測ブロックを、復号すべき残差ビデオブロックに加算(225)し、予測ブロックに基づいてビデオブロックを復号する。
図23は、候補フィルタの2つのセットに基づくビデオコーディングのレートひずみ定義補間のための技法を示す流れ図である。この場合、予測ユニット32のMCユニット37は、予測データの2つ以上の異なるセットを発生することができ、あるセットは候補補間フィルタの第1のセットに基づき、別のセットは候補補間フィルタの第2のセットに基づく。MCユニット37は、次いで、レートひずみに基づく分析を使用して、レートおよびひずみの観点から最良の結果を生じる補間フィルタを選択することができる。このようにして、MCユニット37は、予測データのどのセットが最良の結果(すなわち、最小ひずみ)を生じるかを考慮するだけでなく、候補フィルタ処理の1つセットがそのフィルタ係数を復号器に搬送するためのビットオーバーヘッドがより少なくて済むことをも考慮する。
図23に示すように、予測ユニット32のMCユニット37は、第1の補間フィルタに基づいてビデオデータの符号化のための第1の補間予測データを発生する(231)。第1の補間フィルタは、一例では、ITU−T H.264補間フィルタに対応するフィルタなど、特定のビデオコーディング規格によって定義されたフィルタに対応する固定補間フィルタを備える。精度の付加のため、場合によっては、固定補間フィルタは、クォーターピクセル値を発生するために使用される、ハーフピクセル値の中間丸めなしのITU−T H.264補間フィルタに対応することができる。この場合、固定補間フィルタは、ハーフピクセル値を発生し、ハーフピクセル解像度に対する補間のために、そのような値を上向きに丸めることができる。しかしながら、そのようなハーフピクセル値がクォーターピクセル解像度に対する補間のためにも使用される限り、MCユニット37は、ハーフピクセル値の丸めなしバージョンを記憶し、クォーターピクセル解像度に対する補間のためにハーフピクセル値の丸めなしバージョンを使用することができる。参照により本明細書に組み込まれる、本出願と同じ日に出願され、整理番号第081399U1号を有し、Karczewiczらによって出願された、同時係属および同一出願人による「ADVANCED INTERPOLATION TECHNIQUES FOR MOTION COMPENSATION IN VIDEO CODING」と題する米国特許出願第____号は、クォーターピクセル値を発生するために使用される、ハーフピクセル値の中間丸めなしの補間フィルタ処理について多くの追加の詳細を与える。
次に、予測ユニット32のMCユニット37は、第2の補間フィルタに基づいてビデオデータのビデオ符号化のための第2の補間予測データを発生する(232)。一例では、第2の補間フィルタは適応補間フィルタを備えることができる。この場合、適応補間に一致して、MCユニット37は、使用すべきフィルタ係数を定義することができる。特に、MCユニット37は、MCユニット37が、あらかじめ設定されたフィルタ係数を用いて開始し、暫定予測データを発生し、次いで、そのようなフィルタ係数がより望ましい予測データを定義するように適応プロセスにおいてフィルタ係数を調整する、適応補間プロセスを実行することができる。
予測ユニット32のMCユニット37が、第1および第2の補間予測データを両方とも発生した後、MCユニット37は、レートひずみ分析に基づいて第1の補間予測データと第2の補間予測データとの間で選択する(233)。このようにして、MCユニット37は、予測データのどのセットが最良の結果(すなわち、最小ひずみ)を生じるかを考慮するだけでなく、第2の補間フィルタに対して第1の補間フィルタに必要とされる異なるデータ量(すなわち、異なるビットレート)をも考慮する。特に、(たとえば、第1の補間フィルタとして)固定補間フィルタが使用される場合、ビデオ符号器50はビットストリーム中のフィルタ係数を符号化する必要はないが、(たとえば、第2の補間フィルタとして)適応補間フィルタが使用される場合、ビデオ符号器50はフィルタ係数を符号化する必要がある。したがって、レートひずみ分析は、固定補間フィルタの使用が、フィルタ係数を復号器に搬送するために追加のビットを必要としないということを考慮することによって、予測データのどのセットが最良の結果(すなわち、最小レートひずみコスト)を生じるかを判断することができる。
より詳細には、レートひずみ分析に基づいて第1の補間予測データと第2の補間予測データとの間で選択する(233)ことは、ビデオデータが第1の補間予測データによって符号化される場合、ビデオデータに関連する第1のレートひずみコストを計算することと、ビデオデータが第2の補間予測データによって符号化される場合、ビデオデータに関連する第2のレートひずみコストを計算することと、第1および第2のレートひずみコストに基づいて第1の補間予測データと第2の補間予測データとの間で選択することとを備えることができる。
ビデオデータが第1の補間予測データによって符号化される場合、ビデオデータに関連するレートひずみコストは、フィルタ係数の符号化に関連するコストを定量化する第1の値に加えて、ビデオデータと第1の補間予測データとの間の差を示す第1の差のメトリック、たとえば、ピクセル値の平均2乗誤差(MSE)またはピクセル値の絶対差の和(SAD)またはピクセル値の2乗差の和(SSD)を備えることができる。この場合、第1の補間フィルタが固定補間フィルタであるならば、コストを定量化する第1の値を0と定義することができる。同様に、第2のレートひずみコストは、フィルタ係数の符号化に関連するコストを定量化する第2の値に加えて、ビデオデータと第2の補間予測データとの間の差を示す第2の差のメトリック(MSE、SADまたはSSD)を備えることができる。第2の補間フィルタが適応補間フィルタである場合、フィルタ係数の符号化に関連するコストを定量化する第2の値は、適応補間フィルタ係数を符号化するために必要なビット数(r)を備えることができ、または場合によっては、この数(r)はラグランジュ乗数(λ)によって乗算される。
レートひずみ分析に基づいて第1の補間予測データと第2の補間予測データとの間で選択(233)した後、予測ユニット32のMCユニット37は、その選択に基づいてビデオデータを符号化(234)し、その選択を示すためにシンタックスを符号化(235)する。シンタックスは、復号器が第1の補間フィルタを使用すべきか第2の補間フィルタを使用すべきかを定義する1ビットフラグまたはマルチビットフラグを備えることができる。復号器が複数のサブピクセルロケーションの各々に対して第1の補間フィルタを使用すべきか第2の補間フィルタを使用すべきかを示すために、ビデオシーケンスの各コード化単位の複数のサブピクセルロケーションの各々に対して図23のプロセスを繰り返すことができる。サブピクセルロケーションは、クォーターピクセル解像度に対する補間に一致する15個の可能なサブピクセルロケーションを備えるか、または異なる数のサブピクセルロケーションを備えることができる。図23のプロセスは、復号器が整数ピクセルロケーションに対して第1の補間フィルタを使用すべきか第2の補間フィルタを使用すべきかを示すために、ビデオシーケンスの各コード化単位の整数ピクセルロケーションに対しても繰り返すことができる。
ビデオ符号器50(図2)が、その選択に基づいてビデオデータを符号化(234)し、その選択を示すためにシンタックスを符号化(235)した後、モデム23および送信機24(図1)は、符号化ビデオデータおよびシンタックスを変調し、宛先デバイス17に送信することができる。第1の補間フィルタが固定であり、第2の補間フィルタが適応型である場合、送信機24は、シンタックスが、符号化ビデオデータを発生するために第2の補間予測データが使用されたことを示すとき、フィルタ係数を送信し、シンタックスが、符号化ビデオデータを発生するために第1の補間予測データが使用されたことを示すとき、フィルタ係数を送信しない。このようにして、第1の補間フィルタが固定であり、第2の補間フィルタが適応型であるとき、シンタックスが、適応補間フィルタ処理が使用されたことを示す場合にのみフィルタ係数を送信し、適応補間フィルタ処理を使用すべきか否かの決定は、予測ビデオ品質だけでなく、送信ビットストリーム中のフィルタ係数の存在に影響を受けるビットレートをも考慮する。しかしながら、他の例では、第1および第2の補間フィルタは、両方とも固定、または両方とも適応型とすることができる。
本開示の技法は、フィルタの3つ以上のセットが符号器によって選択されているときのシナリオを含む多くのシナリオにおいて適用できる。言い換えれば、追加の補間予測データを発生するために、同じくレートひずみ分析中に考慮される追加の補間フィルタをも適用することができる。言い換えれば、本方法は、2つの補間フィルタに基づいて第1および第2の補間予測データのみを発生することに限定されず、任意の数の補間フィルタに基づいて任意の複数の補間予測データを発生するために適用できる。重要なことには、レートひずみ分析補間予測データは、どのフィルタを選択すべきかを識別するために使用される。一例では、ビデオ符号器50によって実行される方法は、複数の異なる補間フィルタに基づいてビデオデータの符号化のための予測データの複数の異なるバージョンを発生することと、レートひずみ分析に基づいて予測データの複数の異なるバージョンの間で選択することと、その選択に基づいてビデオデータを符号化することと、その選択を示すためにシンタックスを符号化することとを備えることができる。
レートひずみ分析に基づいて補間フィルタを選択し、その選択を示すためにシンタックスを発生することに加えて、予測ユニット32のMCユニット37はまた、上記でより詳細に説明した、整数ピクセルフィルタ処理に対する同様のレートひずみ分析を行うことができる。特に、予測ユニット32のMCユニット37は、整数ピクセルロケーションのための予測データの2つ以上の異なるセット、たとえば、整数ピクセルフィルタ処理があるものと整数ピクセルフィルタ処理がないものとを発生し、整数ピクセルフィルタ処理が望まれるかどうかを判断するために、これらの2つの異なるセットに対するレートひずみ分析を行うことができる。したがって、予測ユニット32のMCユニット37は、整数ピクセルフィルタ処理をコード化単位に適用すべきかどうかを示すために、整数予測データの2つの異なるセットに関連するレートひずみ分析に基づいて別のシンタックス要素を発生することができ、整数予測データの第1のセットはフィルタ処理されず、整数予測データの第2のセットはフィルタ処理される。このようにして、整数ピクセルフィルタ処理を行うべきかどうかの決定は、特に、整数ピクセルフィルタ処理が、そのような整数ピクセルフィルタ処理を実行するために使用される整数ピクセルフィルタ係数の符号化および送信に関与するとき、ビデオコーディングの品質だけでなく、整数ピクセルフィルタ処理に関連する可能なビットオーバーヘッドにも基づくことができる。整数フィルタ処理は、N個の整数フィルタ(たとえば、Nは任意の正および複数の整数)をも考慮することができる。N個の整数フィルタの使用に一致して、上記の例は、Nが2であり、フィルタの1つがフィルタ処理を適用しない場合に対応する。
補間フィルタ係数が実際に符号化され、ソースデバイス12から宛先デバイス16に送信されるときはいつでも、本開示はまた、そのような補間フィルタ係数をコーディングするための技法を企図する。フィルタ係数の説明する符号化はデータ圧縮を改善することができる。特に、本開示は、たとえば、固定フィルタ係数に対するフィルタ係数のための予測技法を企図する。さらに、本開示は、フィルタ係数の第1のセットに対するフィルタ係数の第2のセットのための予測技法を企図する。これらの方法では、データ圧縮を可能にするために、様々なフィルタ係数間の不完全な対称性を利用することができる。補間フィルタ係数のためのそのような予測技法の使用に加えて、本開示はまた、有用な量子化技法と、プレフィックスおよびサフィックスコーディングに基づく補間フィルタ係数のエントロピーコーディングとを提供する。以下で、本開示のこれらの態様についてより詳細に説明する。
図24は、予測コーディングを使用してフィルタ係数を符号化するための技法を示す流れ図である。この場合、ビデオ符号器50によって使用されるフィルタ係数を固定フィルタのフィルタ係数に対して予測符号化し、フィルタ係数が符号化ビットストリームの一部として送信されるときのデータ圧縮をさらに改善することができる。
図24に示すように、予測ユニット32のMCユニット37は、ビデオ符号化中に予測データの補間のためのフィルタ係数のセットを識別する(241)。たとえば、MCユニット37は、適応補間フィルタ処理プロセスを実行することによってフィルタ係数のセットを識別することができる。この場合、MCユニット37は、適応補間フィルタ処理プロセスによってフィルタ係数のセットを判断し、適応補間フィルタ処理プロセスで識別したフィルタ係数に基づいて予測データを発生することができる。適応補間フィルタ処理では、本明細書でより詳細に説明するように、MCユニット37は、固定フィルタに基づいて予測データを発生し、次いで、予測データが、コーディングされているビデオデータにより類似するようにフィルタ係数を調整する、2パス手法を実行することができる。その場合、調整されたフィルタ係数は、使用され、ビットストリーム中に符号化されるフィルタ係数を定義する。
フィルタ係数をビットストリームの一部として送信することができるように、そのようなフィルタ係数を符号化するために、係数予測および量子化ユニット41は、固定補間フィルタに関連するフィルタ係数に対するフィルタ係数のセットの予測コーディングに基づいて、フィルタ係数のセットに関連する残差値を発生する(242)。特に、係数予測および量子化ユニット41は、ITU−T H.264補間フィルタ、またはハーフピクセル値の中間丸めなしのITU−T H.264補間フィルタなどの固定フィルタに関連する対応するフィルタ係数から、適応補間フィルタ処理プロセスで判断されたフィルタ係数を減算する。実際のフィルタ係数を送信するのではなく、残差値を符号化し、送信することによって、ビットストリーム中で通信されるデータ量を低減することができる。この場合、フィルタ係数が符号化される方法を知るように復号器をプログラムすることができる。
ビデオ符号器50は、残差係数の予測と量子化との両方を行うために係数予測および量子化ユニット41を呼び出し、エントロピーコーディングユニット46は量子化残差をエントロピーコーディングする(243)。ビデオ符号器50は、次いで、符号化ビットストリームの一部として残差値を出力する(244)。フィルタ係数に関連する残差値の量子化は、残差値を量子化することを含み、異なるフィルタ係数に関連する残差値の少なくともいくつかには異なるレベルの量子化が割り当てられる。このようにして、係数予測および量子化ユニット41は、量子化と精度との望ましい平衡を達成するために、より大きい残差係数により多くの量子化を割り当て、より微細な残差係数により少ない量子化を割り当てることができる。より多くの量子化を使用すると、より多くのデータが削除され、より多くの圧縮を達成することができる。エントロピーコーディングユニット46は、残差値の量子化の後、残差値にプレフィックス符号を割り当て、サフィックス符号を割り当て、符号値を割り当てることによって、残差値をエントロピーコーディングする。ビデオ符号器50は、次いで、符号化ビットストリームの一部として残差値を出力する(244)。
図27は、予測コーディングできるいくつかの例示的なフィルタ係数を示す概念グラフである。この場合、フィルタ係数O1、O2、O3およびO4は、固定補間フィルタに関連するフィルタ係数を定義する。フィルタ係数X1、X2、X3およびX4は、固定補間フィルタのフィルタ係数にかなり類似している所望のフィルタ係数を定義する。したがって、それぞれフィルタ係数O1、O2、O3およびO4に基づいて、フィルタ係数X1、X2、X3およびX4を予測することができる。特に、X1とO1との差として第1の残差を形成することができる。同様に、X2とO2との差として第2の残差を形成し、X3とO3との差として第3の残差を形成し、X4とO4との差として第4の残差を形成することができる。残差は元のフィルタ係数よりも少ないデータを備え、それによってデータ圧縮を促進することができる。
場合によっては、フィルタ係数のセットは、適応補間フィルタに関連するフィルタ係数の全セットの一部分のみを定義するフィルタ係数の第1のセットを備え、フィルタ係数の第2のセットは、フィルタ係数の第1のセットと係数対称性とに基づいて復号器によって判断できる。たとえば、それぞれO1およびO2に基づいて、フィルタ係数X1およびX2を予測符号化することができる。しかしながら、この場合、X3およびX4はX1およびX2と対称的であり、そのような対称性が課されていることが知れるように復号器をプログラムすることができる。したがって、対称性を使用することによって、この単純な例の係数X3およびX4をビットストリームから削除し、係数X1およびX2が予測復号された後、復号器において、知られている係数対称性に基づいて係数X3およびX4を計算することできる。
図25は、予測コーディングを使用してフィルタ係数を符号化するための技法を示す別の流れ図である。しかしながら、この場合、2つの異なるタイプの予測を使用する。図25に示すように、予測ユニット32のMCユニット37は、ビデオ符号化中に予測データの補間のためのフィルタ係数のセットを識別する(251)。図24のプロセスの場合と同様に、図25では、MCユニット37は、適応補間フィルタ処理プロセスを実行することによってフィルタ係数のセットを識別することができる。この場合、MCユニット37は、適応補間フィルタ処理プロセスによってフィルタ係数のセットを判断し、適応補間フィルタ処理プロセスで識別したフィルタ係数に基づいて予測データを発生することができる。適応補間フィルタ処理では、MCユニット37は、固定フィルタに基づいて予測データを発生し、次いで、予測データが、コーディングされているビデオデータにより類似するようにフィルタ係数を調整する、2パス手法を実行することができる。その場合、調整されたフィルタ係数は、使用され、ビットストリーム中に符号化されるフィルタ係数を定義する。
フィルタ係数をビットストリームの一部として送信することができるように、そのようなフィルタ係数を符号化するために、係数予測および量子化ユニット41は、固定補間フィルタに関連するフィルタ係数に対する予測コーディングに基づいて、フィルタ係数の第1のセットに関連する残差値の第1のセットを発生する(252)。特に、係数予測および量子化ユニット41は、ITU−T H.264補間フィルタ、またはハーフピクセル値の中間丸めなしのITU−T H.264補間フィルタなどの固定フィルタに関連する対応するフィルタ係数から、フィルタ係数の第1のセットを減算する。次に、係数予測および量子化ユニット41は、フィルタ係数の第1のセットに対する予測コーディングに基づいて、フィルタ係数の第2のセットに関連する残差値の第2のセットを発生する(253)。特に、係数予測および量子化ユニット41は、係数の第1のセットのミラーリングまたは回転された値からフィルタ係数の第2のセットを減算する。したがって、係数の第1のセットは固定フィルタの係数に基づいて予測コーディングされ、係数の第2のセットは係数の第1のセットに基づいて予測コーディングされる。実際のフィルタ係数を使用するのではなく、残差値を発生することによって、ビットストリーム中で通信されるデータ量を低減することができる。さらに、固定フィルタを使用して係数の第1のセットを予測し、次いで、係数の第1のセットを使用して係数の第2のセットを予測することによって、固定フィルタのみに依拠する予測に対して、さらなるデータ圧縮を達成することができる。
図24のプロセスの場合と同様に、図25では、ビデオ符号器50は、残差係数の予測コーディングと量子化との両方を行うために係数予測および量子化ユニット41を呼び出し、エントロピーコーディングユニット46は量子化残差をエントロピーコーディングする(254)。ビデオ符号器50は、次いで、符号化ビットストリームの一部として残差値を出力する(254)。この場合も、フィルタ係数に関連する残差値の量子化は、残差値を量子化することを含み、異なるフィルタ係数に関連する残差値の少なくともいくつかには異なるレベルの量子化が割り当てられる。このようにして、係数予測および量子化ユニット41は、量子化と精度との望ましい平衡を達成するために、より大きい残差係数により多くの量子化を割り当て、より微細な残差係数により少ない量子化を割り当てることができる。エントロピーコーディングユニット46は、残差値の量子化の後、残差値にプレフィックス符号を割り当て、サフィックス符号を割り当て、符号値を割り当てることによって、残差値をエントロピーコーディングする。ビデオ符号器50は、次いで、符号化ビットストリームの一部として残差値を出力する(255)。
図28は、図25のプロセスに一致する、予測コーディングできるいくつかの例示的なフィルタ係数を示す概念グラフである。この場合、フィルタ係数O
1およびO
2は、固定補間フィルタに関連するフィルタ係数を定義する。フィルタ係数X
1およびX
2は、固定補間フィルタのフィルタ係数にかなり類似している所望のフィルタ係数の第1のセットを定義する。したがって、それぞれフィルタ係数O
1およびO
2に基づいて、フィルタ係数X
1およびX
2を予測することができる。特に、X
1とO
1との差として第1の残差を形成し、X
2とO
2との差として第2の残差を形成することができる。残差は元のフィルタ係数よりも少ないデータを備え、それによってデータ圧縮を促進することができる。次いで、残差は、係数予測および量子化ユニット41によって量子化され、エントロピーコーディングユニット46によってエントロピーコーディングされる。
は、逆量子化された残差を予測フィルタ係数O1およびO2に加算することによって発生される修正フィルタ係数を指す。
次に、たとえば、特に、係数X
1およびX
2に基づいて定義された係数
からの、係数X
1およびX
2の第1のセットに基づいて、フィルタ係数Z
1およびZ
2の第2のセットを予測コーディングする。特に、Z
1と
は、O
1およびO
2よりもZ
1およびZ
2に類似しており、したがって、
を使用してZ1およびZ2を予測符号化することによって、さらなるデータ圧縮を促進することができる。
図26は、予測コーディングを使用してフィルタ係数を復号するための技法を示す流れ図である。図26について図16のビデオ復号器60の観点から説明する。図示のように、ビデオ復号器60は、フィルタ係数のセットに関連する残差値を受信する(261)。ビデオ復号器60は、エントロピー復号ユニット52によって残差値をエントロピー復号し、係数予測および逆量子化ユニット53を呼び出して残差値を逆量子化(262)し、次いで、残差値を予測ユニット55に送信する。予測ユニット56は、残差値の予測復号を使用してフィルタ係数のセットを発生する(263)。
特に、予測ユニット56は、たとえば、図27に概念的に示し、符号化の文脈で上述したように、残差値と固定補間フィルタに関連するフィルタ係数とに基づいてフィルタ係数の全セットを発生することができる。場合によっては、残差値と固定補間フィルタに関連するフィルタ係数とに基づいてフィルタ係数の第1のセットを発生し、対称性に基づいてフィルタ係数の第2のセットを発生することができる。場合によっては、たとえば、図28に概念的に示し、符号化の文脈で上述したように、残差値と固定補間フィルタに関連するフィルタ係数とに基づいてフィルタ係数の第1のセットを発生し、追加の残差値とフィルタ係数の第1のセットとに基づいてフィルタ係数の第2のセットを発生することができる。いずれの場合も、ビデオ復号器60の予測ユニット56は、ビデオブロックの予測復号に使用される予測データを補間するためにフィルタ係数のセットを適用する(264)。特に、予測ユニット56は、補間予測データに基づいてビデオブロックを復号することができるように、予測復号されたフィルタ係数を使用して、そのような補間予測データを発生するためにデータをフィルタ処理する。
この場合も、予測復号されたフィルタ係数のセットは、適応補間フィルタに関連するフィルタ係数の全セットの一部分のみを定義するフィルタ係数の第1のセットを備えることができる。この場合、ビデオ復号器60の係数予測および逆量子化ユニット53は、フィルタ係数の第1のセットと係数対称性とに基づいてフィルタ係数の第2のセットを発生し、予測データを補間するためにフィルタ係数の第1および第2のセットを適用することができる。
別の場合、予測復号されたフィルタ係数のセットは、適応補間フィルタに関連するフィルタ係数の全セットの一部分のみを定義するフィルタ係数の第1のセットを備えることができる。この場合、ビデオ復号器60は、フィルタ係数の全セットに関連する追加の残差値を受信することができる。係数予測および逆量子化ユニット53は、追加の残差値とフィルタ係数の第1のセットとに基づいて予測復号を使用してフィルタ係数の第2のセットを発生し、予測ユニット55は、予測データを補間するためにフィルタ係数の第1および第2のセットを適用することができる。
場合によっては、(図8、図9、図10および図11に示すサブピクセル位置a、b、d、hのためのフィルタを含む)1−Dフィルタを予測するために、H.264/AVCフィルタに基づく固定補間フィルタを使用することができる。図12、図13、図14および図15に示すサブピクセル位置e、f、i、およびjのためのフィルタを含む2−Dフィルタの場合、以下の予測方式の1つを使用することができる。
2.トレーニングセットにわたって収集された平均フィルタなどの固定フィルタ予測を使用する。すなわち、
は、サブピクセル位置SPのための平均フィルタ中の(i,j)番目のフィルタ係数である。
3.係数中の可能な対称性を利用し、すでにコード化された係数を使用して、残りの係数を予測する。
1−Dフィルタの場合、これらの3つの予測方法のいずれをも適用することができる。
予測に関して、図29に、予測技法が符号化に使用される整数ピクセルフィルタ係数のアレイの例を与える。この例では、整数ピクセルフィルタに対称性が課されないと仮定する。係数(h0,0)、(h0,1)、(h1,0)、(h1,1)、(h2,0)、(h2,1)(h0,2)、(h1,2)および(h2,2)を最初に量子化し、コーディングする。次いで、すでにコーディングされた左上の係数(h0,0)、(h0,1)、(h1,0)、(h1,1)および(h2,0)を使用して、右上の係数(h0,3)、(h1,3)、(h2,3)、(h0,4)、(h1,4)、および(h2,4)を予測する。次に、上半分のフィルタ係数(h0,0)、(h0,1)、(h0,2)、(h0,3)(h0,4)、(h1,0)、(h1,1)、(h1,2)、(h1,3)および(h1,4)を量子化し、コーディングした後、それらを使用して下半分のフィルタ係数(h3,0)、(h3,1)、(h3,2)、(h3,3)、(h3,4)、(h4,0)、(h4,1)、(h4,2)、(h4,3)および(h4,4)を予測する。他のフィルタ係数の予測を同様にして行うことができる。たとえば、対角線的に何らかの対称性を有するサブピクセル位置「e」フィルタ(図12参照)の場合、最初に右上の係数を量子化し、コーディングし、次いで、それらを使用して左下の係数を予測することができる。
いずれの場合も、(たとえば、予測ユニット32の係数予測および量子化ユニット41による)係数の予測の後、(たとえば、係数予測および量子化ユニット41によって)予測誤差を量子化する。上記で概説したように、いわゆる「不均一量子化」を使用することができる。この場合、係数予測および量子化ユニット41によって適用される量子化精度は係数ロケーションに依存する。(一般に、フィルタの中心からより遠くに離れている)絶対値がより小さい係数では、より高い精度が望ましいことがわかっている。対照的に、(一般に、フィルタの中心により近い)絶対値がより大きい係数では、より低い精度が望ましい。
係数予測および量子化ユニット41によって、それぞれ以下の行列Q
1D、Q
2D、Q
FPを使用して、1Dフィルタ、2Dフィルタ、および整数ピクセルフィルタ中の係数の量子化精度を指定することができる。行列で与えられるビットの数が、それぞれの係数の符号を符号化するための1ビットを含むことに留意されたい。
係数予測および量子化ユニット41は、単純なプレフィックスコーディング方式に基づいて、量子化された係数予測誤差、すなわち、係数残差をコーディングすることができる。最初に、予測誤差の絶対値の動的範囲をN個のビン、たとえばN=6に分割する。絶対値の動的範囲が[0,...,2
q-1−1]であり、qは(上記の行列で指定されたように)所与の係数位置の量子化精度である場合、各ビンn、n=0,...N−1は、以下の範囲に及ぶ。
この場合、単項プレフィックス符号を使用して、入力絶対値mが属するビンb、b=0,...,N−1をコーディングする(b+1ビットを必要とする)。次いで、(q−N+b−1)ビットの固定長サフィックス符号を使用して、絶対値の残り、m−bstartをコーディングする。最後に、1ビットを使用して予測誤差の符号をコーディングする。
たとえば、1Dフィルタ中の中心係数の場合、係数予測および量子化ユニット41によって9ビット精度を使用して予測誤差を量子化し、すなわち、q=9であり、そのうちの8つのビットが、誤差絶対値を量子化するために使用される。誤差絶対値が97である場合、誤差絶対値は第4のビン内に入り、すなわち、b=4である。したがって、第4のビンを示すために単項プレフィックス符号「11110」を符号化し、(q−N+b−1)=(9−6+4−1)=6ビットの固定長サフィックス符号を使用して、m−bstartの残り=97−64=33を符号化する。最後に、正の符号を示すためにビット「0」を符号化する。
本開示の技法は、ワイヤレスハンドセットおよび集積回路(IC)またはICのセット(すなわち、チップセット)を含む、多種多様なデバイスまたは装置で実施できる。機能的態様を強調するために与えられた任意の構成要素、モジュールまたはユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。
したがって、本明細書で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。ハードウェアで実装する場合、モジュール、ユニットまたは構成要素として説明する特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装できる。ソフトウェアで実装する場合、これらの技法は、プロセッサで実行されると、上記で説明した方法の1つまたは複数を実行する命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現できる。コンピュータ可読媒体は、コンピュータ可読記憶媒体を備え、パッケージング材料を含むことがあるコンピュータプログラム製品の一部をなすことができる。コンピュータ可読記憶媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などを備えることができる。本技法は、追加または代替として、命令またはデータ構造の形態でコードを搬送または伝達し、コンピュータによってアクセス、読取り、および/または実行できるコンピュータ可読通信媒体によって、少なくとも部分的に実現できる。
コードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路またはディスクリート論理回路によって実行できる。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明する機能を、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供することができ、または複合ビデオコーデックに組み込むことができる。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装できる。
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、前記ピクセルのブロックを得ること、
前記整数ピクセル値に基づいて前記ピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算することであって、前記サブピクセル値を計算することが、前記サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用することを備え、
前記サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生すること、
を具備する方法。
[2]
前記サブピクセル値は15個のハーフペル値およびクォーターペル値を備え、前記フィルタサポート位置の2次元アレイを定義する前記補間フィルタは、前記15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される、[1]の方法。
[3]
前記サブピクセル値を計算することは、前記15個のハーフペル値およびクォーターペル値のうちの6つに対してフィルタサポート位置の1次元アレイを定義する線形補間フィルタを適用することをさらに備える、[2]の方法。
[4]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値に空間的に最も近い整数ピクセル位置のセットである、[2]の方法。
[5]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値を囲む4つの整数ピクセル位置と、前記4つの整数ピクセル位置を囲む8つの整数ピクセル位置とを含む、[4]の方法。
[6]
前記フィルタサポート位置の2次元アレイ中の前記フィルタサポート位置の各々は、前記サブピクセル位置に対する2つの整数ピクセル位置内にある、[1]の方法。
[7]
前記方法は、ビデオ符号化プロセスまたはビデオ復号プロセスの一部を形成する、[1]の方法。
[8]
前記方法はビデオ符号化プロセスの一部を形成し、前記方法が、
前記補間フィルタの係数値の複数のセットを符号化すること、
前記補間フィルタの前記係数値を符号化ビットストリームの一部として送信すること
をさらに備える、[1]の方法。
[9]
前記係数値の複数のセットの各々は、前記12個以上の整数ピクセル位置に対して異なる重み付けを定義する、[8]の方法。
[10]
係数値のM個のセットが前記12個以上の整数ピクセル位置に対してN個の異なる重み付けを定義するようにピクセル対称性が存在し、MおよびNは正の整数であり、NはMよりも大きい、[9]の方法。
[11]
ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、前記ピクセルのブロックを取得し、
前記整数ピクセル値に基づいて前記ピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算し、前記サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用し、
前記サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生する、
ビデオコーダを備える装置。
[12]
前記サブピクセル値は15個のハーフペル値およびクォーターペル値を備え、前記フィルタサポート位置の2次元アレイを定義する前記補間フィルタは、前記15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される、[11]の装置。
[13]
前記ビデオコーダは、前記15個のハーフペル値およびクォーターペル値のうちの6つに対してフィルタサポート位置の1次元アレイを定義する線形補間フィルタを適用する、[12]の装置。
[14]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値に空間的に最も近い整数ピクセル位置のセットである、[12]の装置。
[15]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値を囲む4つの整数ピクセル位置と、前記4つの整数ピクセル位置を囲む8つの整数ピクセル位置とを含む、[14]の装置。
[16]
前記フィルタサポート位置の2次元アレイ中の前記フィルタサポート位置の各々は、前記サブピクセル位置に対する2つの整数ピクセル位置内にある、[11]の装置。
[17]
前記ビデオコーダはビデオ符号化プロセスまたはビデオ復号プロセスを実行する、[11]の装置。
[18]
前記装置は送信機をさらに備え、
前記ビデオコーダは前記補間フィルタの係数値の複数のセットを符号化し、
前記送信機は前記補間フィルタの前記係数値を符号化ビットストリームの一部として送信する、[11]の装置。
[19]
前記係数値の複数のセットの各々は、前記12個以上の整数ピクセル位置に対して異なる重み付けを定義する、[18]の装置。
[20]
係数値のM個のセットが前記12個以上の整数ピクセル位置に対してN個の異なる重み付けを定義するようにピクセル対称性が存在し、MおよびNは正の整数であり、NはMよりも大きい、[19]の装置。
[21]
前記ビデオコーダは集積回路を備える、[11]の装置。
[22]
前記ビデオコーダはマイクロプロセッサを備える、[11]の装置。
[23]
前記装置は、前記ビデオコーダを含むワイヤレス通信デバイスを備える、[11]の装置。
[24]
ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、前記ピクセルのブロックを得るための手段と、
前記整数ピクセル値に基づいて前記ピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算するための手段であって、前記サブピクセル値を計算するための手段は、前記サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用するための手段を備え、
前記サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生するための手段と
を具備するデバイス。
[25]
前記サブピクセル値は15個のハーフペル値およびクォーターペル値を備え、前記フィルタサポート位置の2次元アレイを定義する前記補間フィルタは、前記15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される、[24]のデバイス。
[26]
前記サブピクセル値を計算するための手段は、前記15個のハーフペル値およびクォーターペル値のうちの6つに対してフィルタサポート位置の1次元アレイを定義する線形補間フィルタを適用するための手段さらに備える、[25]のデバイス。
[27]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値に空間的に最も近い整数ピクセル位置のセットである、[25]のデバイス。
[28]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値を囲む4つの整数ピクセル位置と、前記4つの整数ピクセル位置を囲む8つの整数ピクセル位置とを含む、[27]のデバイス。
[29]
前記フィルタサポート位置の2次元アレイ中の前記フィルタサポート位置の各々は、前記サブピクセル位置に対する2つの整数ピクセル位置内にある、[24]のデバイス。
[30]
前記デバイスはビデオ符号化プロセスまたはビデオ復号プロセスを実行する、[24]のデバイス。
[31]
前記デバイスはビデオ符号化プロセスを実行し、前記デバイスは、
前記補間フィルタの係数値の複数のセットを符号化するための手段と、
前記補間フィルタの前記係数値を符号化ビットストリームの一部として送信するための手段と
をさらに備える、[24]のデバイス。
[32]
前記係数値の複数のセットの各々は、前記12個以上の整数ピクセル位置に対して異なる重み付けを定義する、[31]のデバイス。
[33]
係数値のM個のセットは前記12個以上の整数ピクセル位置に対してN個の異なる重み付けを定義するようにピクセル対称性が存在し、MおよびNは正の整数であり、NはMよりも大きい、[32]の方法。
[34]
プロセッサによって実行されたとき、
ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、前記ピクセルのブロックを得ること、
前記整数ピクセル値に基づいて前記ピクセルのブロックに関連するサブピクセル位置のサブピクセル値を計算することであって、前記サブピクセル値の計算において、前記プロセッサに、前記サブピクセル位置を放射状に囲む12個以上の整数ピクセル位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用させ、
前記サブピクセル値の少なくともいくつかに基づいて予測ブロックを発生すること
を前記プロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
[35]
前記サブピクセル値は15個のハーフペル値およびクォーターペル値を備え、前記フィルタサポート位置の2次元アレイを定義する前記補間フィルタは、前記15個のハーフペル値およびクォーターペル値のうちの9つを定義するために適用される、[34]のコンピュータ可読記憶媒体。
[36]
前記サブピクセル値の計算において、前記命令は、前記プロセッサに、前記15個のハーフペル値およびクォーターペル値のうちの6つに対してフィルタサポート位置の1次元アレイを定義する線形補間フィルタを適用させる、[35]のコンピュータ可読記憶媒体。
[37]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値に空間的に最も近い整数ピクセル位置のセットである、[35]のコンピュータ可読記憶媒体。
[38]
前記サブピクセル位置を囲む前記12個以上の整数ピクセル位置のセットは、前記補間フィルタによって定義された前記9つのハーフペル値およびクォーターペル値を囲む4つの整数ピクセル位置と、前記4つの整数ピクセル位置を囲む8つの整数ピクセル位置とを含む、[37]のコンピュータ可読記憶媒体。
[39]
前記フィルタサポート位置の2次元アレイ中の前記フィルタサポート位置の各々は、前記サブピクセル位置に対する2つの整数ピクセル位置内にある、[34]のコンピュータ可読記憶媒体。
[40]
前記命令はビデオ符号化ソフトウェアプログラムまたはビデオ復号ソフトウェアプログラムの一部を形成する、[34]のコンピュータ可読記憶媒体。
[41]
前記命令はビデオ符号化ソフトウェアプログラムの一部を形成し、前記命令は、
前記補間フィルタの係数値の複数のセットを符号化すること、
前記補間フィルタの前記係数値を符号化ビットストリームの一部として出力すること
を前記プロセッサに行わせる、[34]のコンピュータ可読記憶媒体。
[42]
前記係数値の複数のセットの各々は、前記12個以上の整数ピクセル位置に対して異なる重み付けを定義する、[41]のコンピュータ可読記憶媒体。
[43]
係数値のM個のセットは前記12個以上の整数ピクセル位置に対してN個の異なる重み付けを定義するようにピクセル対称性が存在し、MおよびNは正の整数であり、NはMよりも大きい、[41]のコンピュータ可読記憶媒体。