(57)【特許請求の範囲】
【請求項１】
ビデオデータのブロックをコーディングする方法であって、
取得する手段が、ピクセルの矩形ブロック内の整数ピクセル位置に対応する整数ピクセル値を備える前記ピクセルの矩形ブロックを備えるビデオデータを、ビデオメモリから取得することと、
計算する手段が、前記ピクセルの矩形ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することと、ここにおいて、前記サブピクセル値を計算することは、
計算する前記手段が、前記ピクセルの矩形ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、
計算する前記手段が、前記ピクセルの矩形ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することと
を備え、ここにおいて、前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、フィルタサポート位置の前記第１のセットが、前記ピクセルの矩形ブロックに関する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記ピクセルの矩形ブロックに関する前記走査順序に対して直角に構成されたフィルタサポート位置を備える、
生成する手段が、前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成することと
を備え、
前記ピクセルの矩形ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算することは、
前記ピクセルの矩形ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算することと、ここにおいて、フィルタ係数の前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ピクセルの矩形ブロックに関する走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちのもう一方よりも多いフィルタ係数を備える、
前記計算された第３のサブピクセル値にさらに基づいて前記ピクセルの予測ブロックを生成することと
をさらに備える、方法。
【請求項２】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ピクセルの矩形ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ピクセルの矩形ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項１に記載の方法。
【請求項３】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える
請求項１に記載の方法。
【請求項４】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
請求項１に記載の方法。
【請求項５】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置のセットに対応する、請求項１に記載の方法。
【請求項６】
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の水平軸と、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、請求項１に記載の方法。
【請求項７】
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記ピクセルの矩形ブロック内のサブピクセル位置に対応する、請求項１に記載の方法。
【請求項８】
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすることをさらに備える、請求項１に記載の方法。
【請求項９】
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記ピクセルの矩形ブロックに関する前記走査順序に対して平行である、  請求項１に記載の方法。
【請求項１０】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が６つの係数を備える
請求項１に記載の方法。
【請求項１１】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が７つの係数を備える
請求項１に記載の方法。
【請求項１２】
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすること
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記方法がビデオ符号化プロセスの一部を形成し、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記方法が、
符号化されるべきピクセルのブロックを受信することと、ここにおいて、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
をさらに備える、請求項１に記載の方法。
【請求項１４】
前記方法がビデオ復号プロセスの一部を形成し、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記方法が、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することと、ここにおいて、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、
をさらに備える、請求項１に記載の方法。
【請求項１５】
ビデオデータのブロックをコーディングするための装置であって、前記装置がビデオコーダを備え、前記ビデオコーダが、
ピクセルの矩形ブロック内の整数ピクセル位置に対応する整数ピクセル値を備える前記ピクセルの矩形ブロックを取得することと、
前記ピクセルの矩形ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することと、ここにおいて、前記サブピクセル値を計算するために、前記ビデオコーダが、
前記ピクセルの矩形ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、
前記ピクセルの矩形ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することと
を行うように構成され、ここにおいて、前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、フィルタサポート位置の前記第１のセットが、前記ピクセルの矩形ブロックに関する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記ピクセルの矩形ブロックに関する前記走査順序に対して直角に構成されたフィルタサポート位置を備える、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成すること
を行うように構成され、
前記ピクセルの矩形ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するために、前記ビデオコーダが、
前記ピクセルの矩形ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算することと、ここにおいて、フィルタ係数の前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ピクセルの矩形ブロックに関する走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちのもう一方よりも多いフィルタ係数を備える、
前記計算された第３のサブピクセル値にさらに基づいて前記ピクセルの予測ブロックを生成することと
を行うようにさらに構成された装置。
【請求項１６】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ピクセルの矩形ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ピクセルの矩形ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項１５に記載の装置。
【請求項１７】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える
請求項１５に記載の装置。
【請求項１８】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
請求項１５に記載の装置。
【請求項１９】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置のセットに対応する、請求項１５に記載の装置。
【請求項２０】
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の水平軸と、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、請求項１５に記載の装置。
【請求項２１】
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記ピクセルの矩形ブロック内のサブピクセル位置に対応する、請求項１５に記載の装置。
【請求項２２】
前記ビデオコーダが、
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
ようにさらに構成された、請求項１５に記載の装置。
【請求項２３】
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記ピクセルの矩形ブロックに関する前記走査順序に対して平行である、請求項１５に記載の装置。
【請求項２４】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が６つの係数を備える
請求項１５に記載の装置。
【請求項２５】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が７つの係数を備える
請求項１５に記載の装置。
【請求項２６】
前記ビデオコーダが、
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
ようにさらに構成された、請求項１５に記載の装置。
【請求項２７】
前記ビデオコーダがビデオエンコーダを備え、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記ビデオエンコーダが、
符号化されるべきピクセルのブロックを受信することと、ここにおいて、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
を行うようにさらに構成された、請求項１５に記載の装置。
【請求項２８】
前記ビデオコーダがビデオデコーダを備え、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記ビデオデコーダが、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することと、ここにおいて、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、
を行うようにさらに構成された、請求項１５に記載の装置。
【請求項２９】
前記装置が、
集積回路、
マイクロプロセッサ、または、
前記ビデオコーダを含むワイヤレス通信デバイス
のうちの少なくとも１つを備える、請求項１５に記載の装置。
【請求項３０】
ビデオデータのブロックをコーディングするためのデバイスであって、前記デバイスが、
ピクセルの矩形ブロック内の整数ピクセル位置に対応する整数ピクセル値を備える前記ピクセルの矩形ブロックを取得するための手段と、
前記ピクセルの矩形ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するための手段と、ここにおいて、前記サブピクセル値を計算するための前記手段が、
前記ピクセルの矩形ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算するための手段と、
前記ピクセルの矩形ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算するための手段と、
を備え、ここにおいて、前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、フィルタサポート位置の前記第１のセットが、前記ピクセルの矩形ブロックに関する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記ピクセルの矩形ブロックに関する前記走査順序に対して直角に構成されたフィルタサポート位置を備える、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するための手段と
を備え、
前記ピクセルの矩形ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するための前記手段が、
前記ピクセルの矩形ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算するための手段と、ここにおいて、フィルタ係数の前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ピクセルの矩形ブロックに関する走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちのもう一方よりも多いフィルタ係数を備える、
前記計算された第３のサブピクセル値にさらに基づいて前記ピクセルの予測ブロックを生成するための手段と
をさらに備える、デバイス。
【請求項３１】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ピクセルの矩形ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ピクセルの矩形ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項３０に記載のデバイス。
【請求項３２】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える
請求項３０に記載のデバイス。
【請求項３３】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
請求項３０に記載のデバイス。
【請求項３４】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置のセットに対応する、請求項３０に記載のデバイス。
【請求項３５】
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の水平軸と、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、請求項３０に記載のデバイス。
【請求項３６】
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記ピクセルの矩形ブロック内のサブピクセル位置に対応する、請求項３０に記載のデバイス。
【請求項３７】
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
をさらに備える、請求項３０に記載のデバイス。
【請求項３８】
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記ピクセルの矩形ブロックに関する前記走査順序に対して平行である、請求項３０に記載のデバイス。
【請求項３９】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が６つの係数を備える
請求項３０に記載のデバイス。
【請求項４０】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が７つの係数を備える
請求項３０に記載のデバイス。
【請求項４１】
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
をさらに備える、請求項３０に記載のデバイス。
【請求項４２】
前記デバイスがビデオ符号化プロセスの一部として使用され、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記デバイスが、
符号化されるべきピクセルのブロックを受信するための手段と、ここにおいて、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算するための手段と、
前記残差ブロックを符号化するための手段と
をさらに備える、請求項３０に記載のデバイス。
【請求項４３】
前記デバイスがビデオ復号プロセスの一部として使用され、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記デバイスが、
ピクセルの符号化された残差ブロックを受信するための手段と、
前記残差ブロックを復号するための手段と、
ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算するための手段と、ここにおいて、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、
をさらに備える、請求項３０に記載のデバイス。
【請求項４４】
実行されたとき、１つまたは複数のプロセッサにビデオデータのブロックをコーディングさせる命令を備えるコンピュータ可読記憶媒体であって、前記命令が、前記１つまたは複数のプロセッサに、
ピクセルの矩形ブロック内の整数ピクセル位置に対応する整数ピクセル値を備える前記ピクセルの矩形ブロックを取得することと、
前記ピクセルの矩形ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することと、ここにおいて、前記１つまたは複数のプロセッサに前記サブピクセル値を計算させる前記命令が、前記１つまたは複数のプロセッサに、
前記ピクセルの矩形ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、
前記ピクセルの矩形ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することと
を行わせる命令を備え、ここにおいて、前記第１の１次元アレイが、前記第２の１次元アレイよりも多いフィルタ係数を備え、フィルタサポート位置の前記第１のセットが、前記ピクセルの矩形ブロックに関する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記ピクセルの矩形ブロックに関する前記走査順序に対して直角に構成されたフィルタサポート位置を備える、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成すること
を行わせ、
前記１つまたは複数のプロセッサに、前記ピクセルの矩形ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算させる前記命令が、前記１つまたは複数のプロセッサに、
前記ピクセルの矩形ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算することと、ここにおいて、前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ピクセルの矩形ブロックに関する走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちのもう一方よりも多いフィルタ係数を備える、
前記計算された第３のサブピクセル値にさらに基づいて前記ピクセルの予測ブロックを生成することと
を行わせる命令をさらに備える、コンピュータ可読記憶媒体。
【請求項４５】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ピクセルの矩形ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ピクセルの矩形ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項４６】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える
請求項４４に記載のコンピュータ可読記憶媒体。
【請求項４７】
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
請求項４４に記載のコンピュータ可読記憶媒体。
【請求項４８】
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置のセットに対応する、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項４９】
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の水平軸と、前記ピクセルの矩形ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５０】
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記ピクセルの矩形ブロック内のサブピクセル位置に対応する、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５１】
前記１つまたは複数のプロセッサに、
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
命令をさらに備える、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５２】
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記ピクセルの矩形ブロックに関する前記走査順序に対して平行である、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５３】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が６つの係数を備える
請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５４】
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記もう一方が７つの係数を備える
請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５５】
前記１つまたは複数のプロセッサに、
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
命令をさらに備える、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５６】
前記コンピュータ可読記憶媒体がビデオ符号化プロセスの一部として使用され、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記１つまたは複数のプロセッサに、
符号化されるべきピクセルのブロックを受信することと、ここにおいて、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
を行わせる命令をさらに備える、請求項４４に記載のコンピュータ可読記憶媒体。
【請求項５７】
前記コンピュータ可読記憶媒体がビデオ復号プロセスの一部として使用され、前記ピクセルの矩形ブロックがピクセルの参照ブロックを備え、前記１つまたは複数のプロセッサに、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算することと、ここにおいて、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、
を行わせる命令をさらに備える、請求項４４に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１１年１月５日に出願された米国仮出願第６１／４３０，１０１号の利益を主張する。
【０００２】
本開示は、デジタルビデオ符号化および復号に関し、より詳細には、ビデオ符号化および復号プロセスにおいて使用される予測データを生成するために適用されるフィルタ処理技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測、または他の参照ピクチャ中の参照サンプルに関する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
空間的予測または時間的予測は、コーディングされるべきブロックについての予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差を示す残差データとに従って符号化され得る。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され得、次いで量子化され得る残差変換係数を生じる。最初に２次元アレイに構成された量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【０００６】
ビデオデータのブロックのインター予測コーディングにおいて達成され得る圧縮のレベルを改善するために補間フィルタ処理技法が開発された。これらの技法によれば、コーディングされているビデオデータの特定のブロックについての動き補償中に生成される予測データ、たとえば、予測ブロックは、ブロックについての動き推定において使用された参照ビデオフレーム、または別の参照コード化ユニットのビデオデータの参照ブロックのピクセルの値を補間することによって生成され得る。補間フィルタ処理、または単に「補間」は、予測ブロックを定義する予測ハーフピクセル（たとえば、「ハーフペル」）値とクォーターピクセル（たとえば、「クォーターペル」）値とを生成するためにしばしば実行される。ハーフペル値およびクォーターペル値は、参照ブロック内のサブピクセル位置に対応する。分数動きベクトルは、ビデオシーケンス中の分数移動をキャプチャするために、そのようなサブピクセル解像度で参照ブロック内の予測ブロックを識別し、それによって、元の参照ブロック、すなわち整数ピクセル解像度での参照ブロックよりもコーディングされているブロックに類似する予測ブロックを与えるために使用され得る。
【発明の概要】
【０００７】
概して、本開示では、ビデオコーディングプロセスの予測段階中にビデオコーディングシステムによって実行される補間フィルタ処理技法について説明する。説明する技法は、いくつかの事例では、望ましいビデオ圧縮および再構成ビデオ品質を依然として与えながら、ビデオコーディングシステムの複雑さを低減し、ビデオデータのブロックについての予測データを生成するときにシステムによって実行されるメモリアクセスの数を低減する。本開示には、参照ブロックに関連する走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より長い（すなわち、より多いフィルタ係数または「タップ」を含む）補間フィルタと、走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より短い（すなわち、より少ないタップを含む）補間フィルタとの使用とを含むいくつかの態様がある。
【０００８】
一例では、ビデオデータのブロックをコーディングする方法は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを含む。サブピクセル値を計算することは、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを含み、第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択される。本方法は、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成することをさらに含む。
【０００９】
別の例では、ビデオデータのブロックをコーディングするための装置は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成されたビデオコーダを含む。サブピクセル値を計算するために、ビデオコーダは、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成される。第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択される。ビデオコーダは、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成される。
【００１０】
別の例では、ビデオデータのブロックをコーディングするためのデバイスは、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得するための手段と、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するための手段とを含む。サブピクセル値を計算するための手段は、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算するための手段と、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算するための手段とを含み、第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択される。本デバイスは、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するための手段をさらに含む。
【００１１】
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装され得る。ハードウェアで実装する場合、装置は、集積回路、プロセッサ、ディスクリート論理、またはそれらの任意の組合せとして実現され得る。ソフトウェアで実装した場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはデジタル信号プロセッサ（ＤＳＰ）など、１つまたは複数のプロセッサにおいて実行され得る。本技法を実行するソフトウェアは、最初に有形コンピュータ可読媒体に記憶され、プロセッサにロードされ、実行され得る。
【００１２】
したがって、本開示はまた、実行されたとき、プロセッサにビデオデータのブロックをコーディングさせる命令を含むコンピュータ可読記憶媒体を企図し、命令は、プロセッサに、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを行わせる。プロセッサにサブピクセル値を計算させる命令は、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算させることと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとをプロセッサに行わせる命令を含み、第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択される。命令はさらに、プロセッサに、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成させる。
【００１３】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１４】
【図１】本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオ符号化および復号システムの例を示すブロック図。
【図２】本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオエンコーダの例を示すブロック図。
【図３】本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号するための技法を実装し得るビデオデコーダの例を示すブロック図。
【図４】ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する予測サブピクセルとを示す概念図。
【図５】ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する水平および垂直「１Ｌ」予測サブピクセルとを示す概念図。
【図６】ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する非水平および非垂直「２Ｌ」予測サブピクセルとを示す概念図。
【図７】係数対称性をもつ８タップ補間フィルタと、サブピクセル位置に対する対応する水平フィルタサポート位置とを示す概念図。
【図８】係数対称性をもたない８タップ補間フィルタと、サブピクセル位置に対する対応する水平フィルタサポート位置とを示す概念図。
【図９】係数対称性をもつ６タップ補間フィルタと、サブピクセル位置に対する対応する垂直フィルタサポート位置とを示す概念図。
【図１０】係数対称性をもたない６タップ補間フィルタと、サブピクセル位置に対する対応する垂直フィルタサポート位置とを示す概念図。
【図１１】本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを符号化する方法の例を示す流れ図。
【図１２】本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号する方法の例を示す流れ図。
【発明を実施するための形態】
【００１５】
本開示では、概して、ビデオコーディングプロセスの予測段階中にビデオコーディングシステムによって実行される補間フィルタ処理技法について説明する。説明する技法は、望ましいビデオ圧縮および再構成ビデオ品質を与えながら、ビデオコーディングシステムの複雑さを低減し、ビデオデータのブロックについての予測データを生成するときにシステムによって実行されるメモリアクセスの数を低減する。本開示には、参照ブロックに関連する走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より長い（すなわち、より多いフィルタ係数または「タップ」を含む）補間フィルタの使用と、走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より短い（すなわち、より少ないタップを含む）補間フィルタとの使用を含むいくつかの態様がある。
【００１６】
本開示では、「コーディング」という用語は、エンコーダにおいて生じる符号化またはデコーダにおいて生じる復号を指す。同様に、コーダという用語は、エンコーダ、デコーダ、または複合エンコーダ／デコーダ（コーデック）を指す。いくつかの事例では、ビデオエンコーダは、ビデオを復号するための能力を含み得る。コーダ、エンコーダ、デコーダおよびコーデックという用語はすべて、本開示に一致するビデオデータのコーディング（符号化および／または復号）のために設計された特定の機械を指す。
【００１７】
概して、ビデオデータのコード化ブロックについての予測データを生成する目的で補間フィルタを設計するとき、比較的より長い補間フィルタ、すなわち、比較的より多いフィルタ係数を備える補間フィルタ（たとえば、６つのタップの代わりに、８つのフィルタ係数または「タップ」をもつフィルタ）を使用することが望ましいことがある。特定の補間フィルタの各フィルタ係数は、ビデオデータの参照ブロックの、フィルタサポート位置とも呼ばれる参照整数ピクセルに対応し得る。したがって、補間フィルタの（たとえば、値として表される）各フィルタ係数は、補間フィルタについてのフィルタサポート位置として働く参照ブロックのそれのそれぞれの参照整数ピクセルの値に関連し得る。したがって、ビデオデータのコード化ブロックについての予測サブピクセル値を生成するためにより多いフィルタ係数をもつより長い補間フィルタを使用すると、比較的より多い参照整数ピクセル値を使用することになり得る。このようにしてより長い補間フィルタを使用すると、コード化ブロックについてのより良い予測データ、すなわち、コード化ブロックとより類似した予測データを生成することになり得る。ブロックについてのより良い予測データは、より良い再構成ビデオ品質を生じ得、ブロックについてのより少ない残差データを生成することになり得、したがって、コード化ブロックの圧縮を改善し得る。
【００１８】
しかしながら、上記で説明したようにより長い補間フィルタを使用すると、補間フィルタを使用するビデオコーディングシステムのより大きい複雑さを生じ得る。たとえば、より長い補間フィルタは比較的より多いフィルタ係数を備えるので、補間フィルタを使用する予測サブピクセル値の計算はより複雑であり得る。たとえば、コーディングプロセスは、より多い入力（たとえば、参照整数ピクセルの値）、項（たとえば、参照整数ピクセルの値によって乗算されるフィルタ係数の値）、および／または演算（たとえば、より多い乗算および加算）を必要とし得る。さらに、より長い補間フィルタは、前に説明したように比較的より多いフィルタ係数を備えるので、予測サブピクセル値を計算するために参照整数ピクセル値を取り出すために必要なメモリアクセスの数も増大し、場合によってはビデオコーディングシステムの全体的な性能に悪影響を及ぼし得る。
【００１９】
さらに、場合によっては、ビデオデータの参照ブロックの参照整数ピクセル値は、参照ブロックに関連する走査順序に従ってシステムメモリ（たとえば、キャッシュまたはバッファメモリ）に記憶され得る。たとえば、参照ブロックに関連する走査順序は、ビデオコーディングシステム内のビデオデータの様々なタイプのブロック（たとえば、参照ブロックおよび予測ブロック）についての整数ピクセル値とサブピクセル値とを記憶するために使用される走査順序に対応し得る。これらの場合、走査順序に従って配置された（たとえば、ラスタ走査順序について参照ブロック内で水平方向の）参照ブロックの隣接する参照整数ピクセルの値をシステムメモリから取り出すには、走査順序に従って配置されていない（たとえば、ラスタ走査順序について参照ブロック内で垂直方向に配置された）参照ブロックの隣接する参照整数ピクセルの値を取り出すよりも少ないメモリアクセス（すなわち「読取り」サイクル）を必要とし得る。たとえば、各参照整数ピクセル値が８ビットコードワードを使用して表される、３２ビットデータバスを含むビデオコーディングシステムの場合、走査順序に従って配置された、たとえば走査順序に対して並行である、４つの隣接する参照整数ピクセルの値は、単一の読取りサイクルを使用してシステムメモリから取り出され得る。一方、同じビデオコーディングシステムの場合、走査順序に従って配置されていない、たとえば、走査順序に対して直角な４つの隣接する参照整数ピクセルの値は、４つもの別個の読取りサイクルを使用してシステムメモリから取り出され得、参照整数ピクセル値の各々は、別個の読取りサイクルを使用して取り出される。
【００２０】
本開示では、「走査順序に対して平行な」および「走査順序に対して直角な」という句は、概して、補間フィルタが水平フィルタサポート位置を使用するのか、垂直フィルタサポート位置を使用するのかを識別するために使用される。「水平フィルタサポート位置」は、概して、ビデオデータの参照ブロック内のピクセルデータの共通の行中にあるフィルタサポート位置のセットを指す。「垂直フィルタサポート位置」は、概して、ピクセルデータの共通の列中にあるフィルタサポート位置のセットを指す。走査順序に応じて、「走査順序に対して平行な」という句は、水平フィルタサポート位置または垂直フィルタサポート位置のいずれかに対応することができる。同様に、走査順序に応じて、「走査順序に対して直角な」という句は、水平フィルタサポート位置または垂直フィルタサポート位置のいずれかに対応することができる。一例として、水平（すなわち、１行ずつの）走査順序に言及するとき、「走査順序に対して平行な」という句は水平フィルタサポート位置を指すことができ、「走査順序に対して直角な」という用語は垂直フィルタサポート位置を指すことができる。典型的なラスタ走査順序（すなわち、左から右に、上から下に）は、水平、または１行ずつの走査順序の例である。別の例として、垂直（すなわち、１列ずつの）走査順序に言及するとき、「走査順序に対して平行な」という句は垂直フィルタサポート位置を指すことができ、「走査順序に対して直角な」という句は水平フィルタサポート位置を指すことができる。回転ラスタ走査順序は、垂直、または列ごとの走査順序の例である。さらに、本開示では、「走査順序に従って配置された」という句は、概して、走査順序に対して平行であることを意味するために使用され得、「走査順序に従って配置されていない」という句は、概して、走査順序に対して直角であることを意味するために使用され得る。
【００２１】
上記で説明したように、より長い補間フィルタは比較的より多いフィルタ係数を備えるので、フィルタを使用して予測サブピクセル値を計算するために参照整数ピクセル値を取り出すために必要なメモリアクセスの数は増加し得る。この増加は、参照ブロックに関連する走査順序に対する参照整数ピクセルの位置に依存し得る。したがって、メモリアクセスの数は、走査順序に対する参照ブロック内の（参照整数ピクセルに対応する）特定の補間フィルタに関連するフィルタサポート位置の配向に応じて増加し得る。たとえば、参照整数ピクセルの値を取り出すために必要なメモリアクセスの数は、走査順序に対して直角に構成された参照整数ピクセルの所与の数の値を取り出すときのほうが、走査順序に対して平行に構成された参照整数ピクセルの同数の値を取り出すときよりも多くなり得る。すなわち、メモリアクセスの数は、特定の補間フィルタに関連するフィルタサポート位置が走査順序に対して直角に構成されたときのほうが、同じフィルタサポート位置が走査順序に対して平行に構成されたときよりも多くなり得る。
【００２２】
複雑さの望ましくない増加または上記で説明したメモリアクセスの数における増加なしにより長い補間フィルタの恩恵を潜在的に取得するために、本開示の技法は、特定の補間フィルタに関連するフィルタサポート位置が走査順序に対して平行に構成されたか、走査順序に対して直角に構成されたかに応じて、適応的な比較的より長い補間フィルタと比較的より短い補間フィルタとの混合の使用を含む。たとえば、走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値が生成されるべきである場合は、より長い補間フィルタが使用され得る。しかしながら、走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値が生成されるべきである場合は、より短い補間フィルタが使用され得る。
【００２３】
この例では、この場合も、参照ブロックに関連する走査順序は、ビデオコーディングシステム内のビデオデータの様々なタイプのブロックについての整数ピクセルおよびサブピクセル値を記憶するために使用される走査順序に対応し得る。したがって、必要とされるメモリアクセス、または読取りサイクルは、走査順序に対して平行に配置された参照ブロックの隣接する参照整数ピクセルの値を取り出すほうが、走査順序に対して直角に配置された参照ブロックの隣接する参照整数ピクセルの値を取り出すよりも少なくなり得る。したがって、ビデオコーディングシステムの複雑さは、場合によっては、予測サブピクセル値を生成するために、より少ないフィルタ係数を備える補間フィルタ、したがってより少ない対応する参照整数ピクセル値を使用することによって低減され得る。さらに、ビデオコーディングシステムによって実行されるメモリアクセスの数は、場合によっては、予測サブピクセル値を生成するために、ビデオコーディングシステムメモリからより少ない参照整数ピクセルの値を取り出すことによって、あるいはより少ないメモリアクセスまたは読取りサイクルを使用して参照整数ピクセルの値を取り出すことによって低減され得る。その結果、本開示の技法は、限られたリソース（たとえば、ハードウェアおよび／またはソフトウェアリソース）を有するセルラー電話、ＰＤＡなどのビデオコーディングシステムにとって特に利益であり得る。
【００２４】
本開示で使用する「より長い」および「より短い」という用語は、概して、相対語であるものとする。たとえば、より長い補間フィルタは、より短い補間フィルタよりも多いフィルタ係数を含むと見なされ得る。同様に、より短い補間フィルタは、より長い補間フィルタよりも少ないフィルタ係数を含むと見なされ得る。しかしながら、「より長い」および「より短い」という用語は、特定の補間フィルタについてのフィルタ係数の最大数または最小数のようなものを表すものではない。例として示されるように、本開示の技法は、多数の形状およびサイズの補間フィルタに適合する。
【００２５】
本開示の他の態様は、特定の補間フィルタ内に含まれるいくつかのフィルタ係数のうちの１つまたは複数と、フィルタ係数の各々の値とを搬送するためにビットストリーム中の情報を符号化するための技法を含む。本開示のこれらおよび他の態様は以下の説明から明らかになろう。したがって、本開示の技法は、コーディングされているビデオデータの１つまたは複数のブロックについての予測データを生成するとき、適応タップサイズをもつ低複雑度補間フィルタを使用することを可能にし得る。
【００２６】
図１は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオ符号化および復号システム１０の例を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスを備えるか、または、通信チャネル１６を介してビデオ情報を通信することができる任意のワイヤレスデバイスを備え得、後者の場合、通信チャネル１６はワイヤレスである。
【００２７】
ただし、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングすることに関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。これらの技法は、概して、オーバージエアテレビジョン放送と、ケーブルテレビジョン伝送と、衛星テレビジョン伝送と、ストリーミングインターネットビデオ伝送と、記憶媒体上に符号化され、または記憶媒体から取り出され、復号される符号化デジタルビデオとを含む、符号化または復号が実行される任意のシナリオ、または他のシナリオに適用され得る。したがって、通信チャネル１６は必要とされず、本開示の技法は、たとえば、符号化デバイスと復号デバイスとの間のデータ通信なしで、符号化が適用される設定または復号が適用される設定に適用され得る。
【００２８】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０および／または宛先デバイス１４のビデオデコーダ３０は、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス１４は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００２９】
図１の図示されたシステム１０は一例にすぎない。適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００３０】
ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００３１】
宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調する。この場合も、上記で説明したビデオ符号化プロセスは、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための本明細書で説明する技法のうちの１つまたは複数を実装し得る。チャネル１６を介して通信される情報は、ビデオデータのブロック（たとえば、マクロブロック、またはコーディングユニット）の特性および／または処理を記述するシンタックス要素、たとえば、ブロックについての予測データを識別する動きベクトルデータを含む、同じくビデオデコーダ３０によって使用される、ビデオエンコーダ２０によって定義されるシンタックス情報と、他の情報とを含み得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３２】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに適した任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。他の例では、符号化デバイスまたは復号デバイスは、そのようなデバイス間の通信なしに本開示の技法を実装し得る。たとえば、符号化デバイスは、本開示の技法に一致する、符号化ビットストリームを符号化し、記憶し得る。代替的に、復号デバイスは、本開示の技法に一致する、符号化ビットストリームを受信または取り出し、ビットストリームを復号し得る。
【００３３】
ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は特定のコーディング規格に限定されない。他の例としては、ＭＰＥＧ−２、ＩＴＵ−Ｔ  Ｈ．２６３、および現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格がある。概して、本開示の技法について、ＨＥＶＣに関して説明するが、これらの技法は、同様に他のビデオコーディング規格と併せて使用され得ることを理解されたい。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３４】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよびデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
【００３５】
ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ（ＧＯＰ）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ中、ＧＯＰの１つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ、たとえば、ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオフレーム内のビデオブロックに対して動作する。ＩＴＵ−Ｔ  Ｈ．２６４規格によれば、ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。他の規格、たとえば、以下でさらに詳細に説明するＨＥＶＣによれば、ビデオブロックは、コーディングユニット（たとえば、最大コーディングユニット）、またはコーディングユニットのパーティションに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは、複数のスライス、すなわち、ビデオフレームの部分を含み得る。各スライスは複数のビデオブロックを含み得、ビデオブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
【００３６】
指定のコーディング規格に応じて、ビデオブロックは、１６×１６、８×８、４×４、２×２など、様々な「Ｎ×Ｎ」サブブロックサイズに区分され得る。本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、Ｎ×Ｍピクセルを備え得、Ｍは必ずしもＮに等しいとは限らない。一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格では、サイズが１６×１６ピクセルであるブロックはマクロブロックと呼ばれることがあり、１６×１６ピクセルよりも小さいブロックは、１６×１６マクロブロックのパーティションと呼ばれることがある。他の規格、たとえば、ＨＥＶＣでは、ブロックは、より一般的にそれらのサイズに関して、たとえば、各々が固定サイズではなく可変サイズを有する、コーディングユニットおよびそれのパーティションとして定義され得る。
【００３７】
ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、所与のビデオブロックについての残差データへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得、残差データは、ブロックについてのビデオデータと、ブロックについて生成された予測データとの間のピクセル差分を表す。場合によっては、ビデオブロックは、変換領域中に量子化変換係数のブロックを備え得、所与のビデオブロックについての残差データへの変換の適用後に、得られた変換係数も量子化される。
【００３８】
ブロック区分は、ブロックベースビデオコーディング技法における重要な目的を果たす。ビデオデータをコーディングするためにより小さいブロックを使用すると、高い詳細レベルを含むビデオフレームのロケーションについてのデータの予測が向上し得、したがって、残差データとして表される、生じる誤差（すなわち、ソースビデオデータからの予測データの偏差）が低減され得る。しかしながら、残差データを潜在的に低減する一方で、そのような技法は、より小さいブロックがビデオフレームに対してどのように区分されるかを示す追加のシンタックス情報を必要とすることがあり、その結果、コード化ビデオビットレートが増加することがある。したがって、いくつかの技法では、ブロック区分は、残差データの望ましい低減と、追加のシンタックス情報に起因するコード化ビデオデータのビットレートの生じた増加とのバランスをとることに依存し得る。
【００３９】
概して、ブロックおよびそれの様々なパーティション（すなわち、サブブロック）は、ビデオブロックと見なされ得る。さらに、スライスは、複数のビデオブロック（たとえば、マクロブロック、またはコーディングユニット）、および／またはサブブロック（マクロブロックのパーティション、またはサブコーディングユニット）であると見なされ得る。各スライスは、「コード化ユニット」と呼ばれることがある、ビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が単独で復号可能な単位であり得るか、またはフレームの他の部分が単独で復号可能な単位として定義され得る。さらに、シーケンスとも呼ばれるＧＯＰは、単独で復号可能なユニットとして定義され得る。
【００４０】
高効率ビデオコーディング（ＨＥＶＣ）と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。新生のＨＥＶＣ規格はＨ．２６５と呼ばれることもある。規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＭは、たとえば、イントラ予測コーディングされるブロックのサイズに基づいて、３５個ものイントラ予測符号化モードを与える。
【００４１】
ＨＭでは、ビデオデータのブロックをコーディングユニット（ＣＵ）と呼ぶ。ＣＵは、圧縮のために様々なコーディングツールがそれに適用される基本ユニットとして働く矩形画像領域を指し得る。Ｈ．２６４では、それはマクロブロックとも呼ばれ得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関する最大コーディングユニット（ＬＣＵ）である最大ＣＵを規定し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＣＵは、サブＣＵに区分、または「分割」され得る。
【００４２】
ＬＣＵは、ＬＣＵがどのように区分されるかを示す４分木データ構造に関連し得る。概して、４分木データ構造はＬＣＵのＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応し、他のノードはＬＣＵのサブＣＵに対応する。所定のＣＵが４つのサブＣＵに分割された場合、分割されたＣＵに対応する４分木中のノードは４つの子ノードを含み、子ノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵについてのシンタックス情報を与え得る。たとえば、４分木中のノードは、ノードに対応するＣＵが４つのサブＣＵに分割されるかどうかを示す、ＣＵについての分割フラグを含み得る。所与のＣＵについてのシンタックス情報は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００４３】
分割されないＣＵ（すなわち、所与の４分木中の終端、または「リーフ」ノードに対応するＣＵ）は、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、ＣＵについての予測を実行するためにそのＰＵについての参照サンプルを取り出すためのデータを含む。たとえば、ＣＵがイントラモード符号化されるとき、ＰＵは、ＰＵについてのイントラ予測モードを記述するデータを含み得る。別の例として、ＣＵがインターモード符号化されるとき、ＰＵは、ＰＵについての動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル、もしくは「クォーターペル」精度、または１／８ピクセル、もしくは「１／８ペル」精度）、動きベクトルが指す参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０またはリスト１）を記述し得る。ＣＵの１つまたは複数のＰＵを定義するＣＵについてのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。
【００４４】
１つまたは複数のＰＵを有するＣＵは、１つまたは複数の変換ユニット（ＴＵ）をも含み得る。上記で説明したように、１つまたは複数のＰＵを使用したＣＵについての予測の後に、ビデオエンコーダは、１つまたは複数のＰＵに対応するＣＵのそれぞれの部分についての１つまたは複数の残差ブロックを計算し得る。残差ブロックは、ＣＵについてのビデオデータと１つまたは複数のＰＵについての予測データとの間のピクセル差分を表し得る。残差値のセットは、量子化変換係数のセットを定義するために、変換され、走査され、量子化され得る。ＴＵは、ＣＵに関して上記で説明した４分木データ構造と実質的に同様である、変換係数についてのパーティション情報を示すパーティションデータ構造を定義し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵについての対応するＰＵよりも大きいことも小さいこともある。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズに対応し得る。一例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。この場合、ＲＱＴのリーフノードはＴＵと呼ばれることがあり、対応する残差サンプルは変換され、量子化され得る。
【００４５】
予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後、および変換係数を生成するための（Ｈ．２６４／ＡＶＣで使用される４×４または８×８整数変換、あるいは離散コサイン変換ＤＣＴなどの）任意の変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ｎはｍよりも大きい。
【００４６】
量子化の後、量子化データ（すなわち、量子化変換係数）のエントロピーコーディングが実行され得る。エントロピーコーディングは、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、確率区間区分エントロピーコーディング（ＰＩＰＥ：probability interval partitioning entropy coding）、または別のエントロピーコーディング方法など、いくつかのエントロピーコーディング技法のいずれかに準拠し得る。たとえば、量子化変換係数についての絶対値および対応する符号として表される、係数値（たとえば、「＋１」または「−１」）は、エントロピーコーディング技法を使用して符号化され得る。
【００４７】
上記で説明した予測、変換、および量子化は、指定されたコーディング規格に応じて、ビデオデータの任意のブロックについて、たとえば、ＣＵのＰＵおよび／またはＴＵに対して、またはマクロブロックに対して実行され得ることに留意されたい。適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングすることに関係する、本開示の技法は、マクロブロック、またはＣＵのＴＵを含む、ビデオデータの任意のブロック、たとえば、量子化変換係数の任意のブロックに適用され得る。さらに、ビデオデータのブロック（たとえば、マクロブロック、またはＣＵのＴＵ）は、対応するビデオデータのルミナンス成分（Ｙ）と第１のクロミナンス成分（Ｕ）と第２のクロミナンス成分（Ｖ）との各々を含み得る。したがって、本開示の技法は、ビデオデータの所与のブロックのＹ成分とＵ成分とＶ成分との各々について実行され得る。
【００４８】
前に説明したように、より長い補間フィルタ、すなわち、より多いフィルタ係数を備える補間フィルタは、より短い補間フィルタと比較して、ビデオデータのコード化ブロックについてより良い予測データを生成し得る。より長い補間フィルタは、より短い補間フィルタを使用して生成された予測ブロックよりも、より類似する予測ブロック、またはコード化ブロックにより厳密に一致する予測ブロックを生成し得る。しかしながら、前に説明したように、コード化ブロックについての予測データを生成するためにより長い補間フィルタを使用すると、複雑さが増加し得、より多数のメモリアクセスが必要とされ得る。
【００４９】
本開示では、より低い複雑さを有し、他のシステムと比較してより少ないメモリアクセスを必要とするコーディングシステムを使用するビデオデータのブロックのコーディングを可能にし得る技法について説明する。一例として、参照ブロックに関連する走査順序に従って配置された（すなわち、走査順序に対して平行である）ビデオデータの参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するとき、より長い補間フィルタを使用することによって、および走査順序に従って配置されていない（すなわち、走査順序に対して直角に配置された）参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するとき、より短い補間フィルタを使用することによって、コーディングシステムの複雑さおよびメモリアクセスの数は低減され得る。その結果、複雑さがより少ない計算を使用して予測サブピクセル値が生成され得、メモリからより少ない参照整数ピクセルの値を取り出すことによって、および／またはより少ない読取りサイクルを使用して値を取り出すことによって、メモリアクセスの数が低減され得る。
【００５０】
いくつかの例では、ソースデバイス１２のビデオエンコーダ２０は、ビデオデータのいくつかのブロック（たとえば、１つまたは複数のマクロブロック、またはＣＵのＴＵ）を符号化するように構成され得、宛先デバイス１４のビデオデコーダ３０は、ビデオエンコーダ２０からの符号化されたビデオデータを、たとえば、モデム２８および受信機２６から受信するように構成され得る。いずれの場合も、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータの参照ブロックを使用してコーディングされているブロックについての予測ブロックを生成することによってビデオデータの特定のブロックをコーディングするように構成され得る。
【００５１】
本開示の技法によれば、一例として、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成され得る。たとえば、サブピクセル値を計算するために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成され得る。この例では、第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成され得る。
【００５２】
この例では、フィルタサポート位置の第１のセットは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を含むことができ、フィルタサポート位置の第２のセットは、走査順序に対して直角に構成されたフィルタサポート位置を含むことができる。
【００５３】
本開示で使用する「フィルタ係数の１次元アレイ」という用語は、概して、ビデオデータの参照ブロック内のピクセルデータの単一の行またはピクセルデータの単一の列に対応するフィルタサポート位置を有するフィルタ係数について説明するために使用される。「フィルタ係数の２次元アレイ」という用語は、概して、参照ブロックのピクセルデータの２つ以上の行およびピクセルデータの２つ以上の列に対応するフィルタサポート位置を有するフィルタ係数について説明するために使用される。
【００５４】
上記で説明した方法で適応タップサイズをもつ低複雑度補間フィルタを使用してピクセルの予測ブロック（prediction block）または「予測ブロック（predictive block）」を生成した後に、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予測ブロックを使用してビデオデータのブロックをコーディングし得る。
【００５５】
このようにして、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照ブロックに関連する走査順序に従って配置された（すなわち、走査順序に対して平行である）ビデオデータの参照ブロックの参照整数ピクセルの値を使用するとき、比較的より長い補間フィルタを使用して予測サブピクセル値を生成し得、走査順序に従って配置されていない（すなわち、走査順序に対して直角に配置された）参照ブロックの参照整数ピクセルの値を使用するとき、比較的より短い補間フィルタを使用して予測サブピクセル値を生成し得る。たとえば、前に説明したように、参照ブロックに関連する走査順序は、ビデオコーディングシステム内のビデオデータの様々なタイプのブロックについての整数ピクセルおよびサブピクセル値を記憶するために使用される走査順序に対応し得る。いくつかの例では、参照ブロックに関連する走査順序は、水平（たとえば、「ラスタ」）走査順序、または垂直（たとえば、「回転ラスタ」）走査順序を備え得る。他の例では、参照ブロックに関連する走査順序は、他の走査順序を備え得る。
【００５６】
いずれの場合も、本開示の技法によれば、走査順序に従って配置された参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するときは、補間フィルタによって使用される参照整数ピクセル値を取り出すのに、概して、比較的より少ないメモリ読取りサイクルを必要とするので、より長い補間フィルタが使用され得る。この例では、システムメモリから参照整数ピクセル値を取り出すほうが、概して、走査順序に従って配置されていない同じ数の参照整数ピクセル値を取り出すよりも少ないメモリ読取りサイクルを必要とし得る。このようにして、より長い補間フィルタは、比較的より多いフィルタ係数を含み得、場合によっては、比較的より短い補間フィルタを使用して生成された予測サブピクセル値と比較してより良い予測サブピクセル値を生じる。
【００５７】
対照的に、走査順序に従って配置されていない（すなわち、走査順序に対して直角な）参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するときは、補間フィルタによって使用される参照整数ピクセル値を取り出すのに、概して、より多いメモリアクセスを必要とするので、より短い補間フィルタが使用され得る。この例では、システムメモリから参照整数ピクセル値を取り出すのに、概して、走査順序に従って配置された同じ数の参照整数ピクセル値を取り出すよりも多いメモリ読取りサイクルを必要とし得る。したがって、比較的より少ないフィルタ係数を含むより短い補間フィルタが使用され得る。より短い補間フィルタの使用は、ビデオコーディングシステムの複雑さとメモリアクセスの数を低減することと、良好な予測データを生成することとの間の望ましい妥協を表すことができる。たとえば、前にも説明したように、この例では、より少ないフィルタ係数を含む補間フィルタを使用することによって、本開示の技法は、十分に良好な予測サブピクセル値を生成しながら、低減された複雑さと、低減されたメモリアクセスの数とをもつビデオコーディングシステムを使用することを可能にする。
【００５８】
本開示の技法によれば、より長い補間フィルタに関連する参照ブロック内のフィルタサポート位置は、走査順序に対して平行に構成され得、より短い補間フィルタに関連する参照ブロック内のフィルタサポート位置は、走査順序に対して直角に構成され得る。一例として、走査順序が水平（すなわち、１行ずつの）走査順序を備えるとき、参照ブロック内の水平フィルタサポート位置に関連する補間フィルタは、より多くのフィルタ係数をもつ比較的より長い補間フィルタを備え得、参照ブロック内の垂直フィルタサポート位置に関連する補間フィルタは、より少ないフィルタ係数をもつ比較的短いフィルタを備え得る。同様に、別の例として、走査順序が垂直（すなわち、１列ずつの）走査順序を備えるとき、参照ブロック内の垂直フィルタサポート位置に関連する補間フィルタは、より多くのフィルタ係数をもつ比較的より長い補間フィルタを備え得、参照ブロック内の水平フィルタサポート位置に関連する補間フィルタは、より少ないフィルタ係数をもつ比較的短い補間フィルタを備え得る。
【００５９】
一例として、予測ブロックが、ビデオデータの矩形Ｎ×Ｎ参照ブロックに基づいてビデオデータのコード化ブロックについて生成されるとき、参照ブロックに関連する走査順序に従って配置された参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、より長い補間フィルタが使用され得る。さらに、この例では、走査順序に従って配置されていない参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、より短い補間フィルタが使用され得る。
【００６０】
この例によって示されるように、比較的より長い補間フィルタを使用することは、前に説明したように、概してビデオデータのコード化ブロックについてより良い予測データを生成するのに有利であり得、本開示の技法によれば、いくつかの事例では、予測データを生成するために比較的より長い補間フィルタと比較的により短い補間フィルタとが使用され得る。言い換えれば、本開示の技法は、最長の可能な補間フィルタ（たとえば、参照ブロックの次元に対応する長さを有する補間フィルタ、または「Ｎタップ」補間フィルタ）を常に使用するのではなく、走査順序に従って配置されていない参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するときは、より短い補間フィルタ（たとえば、「（Ｎ−２）タップ」補間フィルタ）を使用することを提案する。
【００６１】
たとえば、一例として、Ｎ×Ｎ参照ブロックがビデオデータの８×８ブロックを備え、参照ブロックに関連する走査順序が水平走査順序を備えるとき、予測サブピクセル値を生成するために使用される水平補間フィルタは８つのフィルタ係数を含み得、予測サブピクセルを生成するために使用される垂直補間フィルタは、８つではなく、６つのフィルタ係数を含み得る。したがって、垂直寸法中の参照ブロックのいくつかの参照整数ピクセルは、予測ブロックを生成するための補間フィルタ処理では未使用であり得る。別の例として、ビデオデータの非矩形Ｎ×Ｍ参照ブロックに基づいてビデオデータのコード化ブロックについて予測ブロックが生成されるとき、参照ブロックに関連する走査順序に従って配置された参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、この場合も、より長い補間フィルタが使用され得る。同様に、走査順序に従って配置されていない参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、より短い補間フィルタが使用され得る。
【００６２】
この例によって示されるように、本開示の技法は、最長の可能な補間フィルタ（たとえば、参照ブロックの対応する次元に対応する長さを有する補間フィルタ、すなわち、「Ｎタップ」または「Ｍタップ」補間フィルタ）を常に使用するのではなく、走査順序に従って配置されていない、または走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するときは、より短い補間フィルタを使用することを提案する。
【００６３】
このようにして、水平補間フィルタが垂直補間フィルタよりも多いフィルタ係数を使用するのか、またはその逆であるのかは、たとえば、ブロックの形状とは反対に、参照ブロックの走査順序に基づいて選択され得る。この選択は、たとえば、ビデオコーディング規格の一部として定義され得、デオエンコーダとビデオデコーダの両方がその規格に従って補間フィルタ処理を実行する。そのような実装形態では、ビデオエンコーダは、走査順序に対して平行である補間フィルタの場合のほうが、走査順序に対して直角である補間フィルタの場合よりも多いフィルタ係数を判断し、シグナリングし得る。しかしながら、他の実装形態では、ビデオデコーダは、規格とは無関係に動作し得るか、または規格への最適化を実装し得る。そのような実装形態では、走査順序に対して直角である補間フィルタの場合、ビデオエンコーダは一定数のフィルタ係数を判断し、シグナリングし得るが、ビデオデコーダはシグナリングされたフィルタ係数のすべてを適用し得るとは限らない。たとえば、走査順序に対して直角である補間フィルタの場合、ビデオエンコーダは８つのフィルタ係数をシグナリングし得るが、ビデオデコーダは、８つのフィルタ係数のうちの６つのみを記憶および／または適用し得る。
【００６４】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００６５】
図２は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオエンコーダ２０の例を示すブロック図である。ビデオエンコーダ２０は、マクロブロック、ＣＵ、およびパーティションまたはそれのサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得、単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００６６】
図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内のビデオデータの現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、メモリ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理するであろう。
【００６７】
符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して所与の受信ビデオブロックのインター予測コーディングを実行し得る。イントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して所与の受信ビデオブロックのイントラ予測コーディングを実行し得る。
【００６８】
モード選択ユニット４０は、コーディング結果（たとえば、得られたコーディングレートおよびひずみレベル）に基づいて、およびコーディングされている所与の受信ブロックを含むフレームまたはスライスについてのフレームまたはスライスタイプに基づいて、コーディングモード、すなわち、１つのモードまたは複数のイントラコーディングまたはインターコーディングモードのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照フレームまたは参照スライス中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与え得る。概して、イントラ予測は、隣接する、前にコーディングされたブロックに対して現在のブロックを予測することを伴い、一方、インター予測は、現在のブロックを時間的に予測するために、動き推定および動き補償を伴う。
【００６９】
動き推定ユニット４２と動き補償ユニット４４とは、ビデオエンコーダ２０のインター予測要素を表す。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコード化ユニット）内でコーディングされている現在のブロックに対する予測参照フレーム（または他のコード化ユニット）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングすべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、ブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００７０】
動き推定ユニット４２は、ビデオブロックをメモリ６４中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックについての動きベクトルを計算し得る。動き補償ユニット４４はまた、この比較のために、参照フレーム、たとえば、ＩフレームまたはＰフレームのサブ整数ピクセルを補間し得る。例として、ＩＴＵ  Ｈ．２６４規格には、２つのリスト、すなわち、符号化されている現在のフレームよりも前の表示順序を有する参照フレームを含むリスト０と、符号化されている現在のフレームよりも後の表示順序を有する参照フレームを含むリスト１とが記載されている。したがって、メモリ６４に記憶されたデータは、これらのリストに従って編成され得る。
【００７１】
動き推定ユニット４２は、メモリ６４からの１つまたは複数の参照フレームのブロックを、現在のフレーム、たとえば、ＰフレームまたはＢフレームの符号化されるべきブロックと比較し得る。メモリ６４中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット４２によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット４２および／または動き補償ユニット４４はまた、サブ整数ピクセル位置についての値がメモリ６４に記憶されていない場合、メモリ６４に記憶された参照フレームのサブ整数ピクセル位置についての値を計算するように構成され得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送り得る。動きベクトルによって識別される参照フレームブロックは、インター予測ブロック、または、より一般的に、予測ブロックと呼ばれることがある。動き補償ユニット４４は、予測ブロックに基づいて予測データを計算し得る。
【００７２】
イントラ予測モジュール４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測モジュール４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測モジュール４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を判断する。イントラ予測モジュール４６は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックについてのひずみおよびレートから比を計算し得る。
【００７３】
たとえば、イントラ予測またはインター予測を使用して、現在のブロックを予測した後、ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測モジュール４６によって計算された予測データを減算することによって残差ビデオブロックを形成し得る。加算器５０は、この減算演算を実行し得る１つまたは複数の構成要素を表す。変換モジュール５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成し得る。変換モジュール５２は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換モジュール５２は変換を残差ブロックに適用し、残差変換係数のブロックを生成し得る。変換は、残差情報をピクセル領域から周波数領域などの変換領域に変換し得る。量子化ユニット５４は、ビットレートをさらに低減するために残差変換係数を量子化し得る。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００７４】
量子化の後に、エントロピー符号化ユニット５６は、量子化変換係数をエントロピー符号化し、これはＣＡＶＬＣ、ＣＡＢＡＣ、ＰＩＰＥ、または別のエントロピーコーディング方法を使用することを含む。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００７５】
場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、上記で説明した量子化変換係数をエントロピーコーディングすることに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６は、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素を用いて、ブロック（たとえば、マクロブロック、ＣＵ、またはＬＣＵ）、またはブロックを含むビデオフレームについてのヘッダ情報を構成し得る。いくつかのコーディング規格によれば、そのようなシンタックス要素は、前に説明したように、ブロックについての予測データを生成するために使用されるブロックについての動きベクトルデータを含み得る。また前に説明したように、動きベクトルデータは、補間フィルタを使用して予測データを生成するために使用され得、それにより、予測データを生成する際にビデオエンコーダ２０の複雑さおよびメモリアクセスの数を増加させ得る。したがって、本開示は、動きベクトルデータを使用して予測データを生成するときに、ビデオエンコーダ２０の複雑さおよびメモリアクセスの数を低減し得る技法について説明する。
【００７６】
上記で説明したように、動き推定ユニット４２は、分数ピクセル（または「サブピクセル」）精度を用いてビデオデータのブロックの動き推定を実行し得る。動き推定ユニット４２が分数ピクセル動き推定を使用するとき、動き推定ユニット４２は、本開示で説明する補間フィルタ処理技法を使用して、サブピクセル解像度における動きベクトルデータ（たとえば、サブピクセル値または分数ピクセル値に対応する動きベクトルデータ）を生成し得る。言い換えれば、補間フィルタ処理技法は、ビデオデータの参照ブロック内の整数ピクセル位置間の位置における値を計算するために使用され得る。参照ブロック内の２つの隣接する整数ピクセル位置間の半分に配置されたサブピクセル位置は、ハーフピクセル（または「ハーフペル」）位置と呼ばれることがあり、参照ブロック内の整数ピクセル位置とハーフピクセル位置との間の半分に配置されたサブピクセル位置は、クォーターピクセル（または、「クォーターペル」）位置と呼ばれることがあり、整数ピクセル位置またはハーフピクセル位置と、クォーターピクセル位置との間の半分に配置されたサブピクセル位置は、１／８ピクセル（または「１／８ペル」）位置と呼ばれることがあり、以下同様である。動き補償ユニット４４は、次に、コーディングされているビデオデータのブロックの動き補償を実行するために、動き推定ユニット４２によって生成された動きベクトルデータを使用して予測ブロックを生成し得る。動き推定ユニット４２はまた、ビデオデータの符号化ブロックを復号するために使用されるべき動きベクトルデータをビデオデコーダ、たとえば、ビデオデコーダ３０にシグナリングし得る。
【００７７】
いくつかの例では、ビデオエンコーダ２０は、ビデオデータのいくつかのブロック（たとえば、１つまたは複数のマクロブロック、またはＣＵのＴＵ）を符号化するように構成され得る。たとえば、ビデオエンコーダ２０は、ビデオデータの参照ブロックを使用して符号化されているブロックについての予測ブロックを生成することによってビデオデータの特定のブロックを符号化するように構成され得る。
【００７８】
本開示の技法によれば、一例として、ビデオエンコーダ２０は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成され得る。たとえば、サブピクセル値を計算するために、ビデオエンコーダ２０は、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成され得る。この例では、第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオエンコーダ２０は、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成され得る。この例では、フィルタサポート位置の第１のセットは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を含むことができ、フィルタサポート位置の第２のセットは、走査順序に対して直角に構成されたフィルタサポート位置を含むことができる。
【００７９】
いくつかの例では、フィルタサポート位置の第１のセットとフィルタサポート位置の第２のセットとのうちの１つが、ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え得、フィルタサポート位置の第１のセットとフィルタサポート位置の第２のセットとのうちの別の１つが、ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備え得る。
【００８０】
一例では、フィルタ係数の第１の１次元アレイは８つの係数を備え得、フィルタ係数の第２の１次元アレイは６つの係数を備え得る。同様に、別の例では、フィルタ係数の第１の１次元アレイは８つの係数を備え得、フィルタ係数の第２の１次元アレイは７つの係数を備え得る。
【００８１】
他の例では、フィルタサポート位置の第１のセットとフィルタサポート位置の第２のセットとのうちの少なくとも１つが、ブロック内の整数ピクセル位置のセットに対応し得る。
【００８２】
さらに他の例では、第１のサブピクセルと第２のサブピクセルとのうちの少なくとも１つが、ブロック内の整数ピクセル位置との共通の水平軸と、ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にあり得る。
【００８３】
さらに他の例では、以下の条件、すなわち（１）フィルタサポート位置の第１のセットのうちのフィルタサポート位置のうちの１つが、第２のサブピクセル値に対応するブロック内のサブピクセル位置に対応することと、（２）フィルタサポート位置の第２のセットのうちのフィルタサポート位置のうちの１つが、第１のサブピクセル値に対応するブロック内のサブピクセル位置に対応することとのうちの１つが満たされ得る。
【００８４】
いくつかの例では、ビデオエンコーダ２０は、第１および第２の１次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、フィルタ係数の各々の値とをコーディングするようにさらに構成され得る。
【００８５】
さらに、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するために、ビデオエンコーダ２０は、ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって第３のサブピクセル値を計算するようにさらに構成され得る。フィルタ係数の２次元アレイの水平寸法と垂直寸法とのうちの１つが、ブロックに関連する走査順序に基づいて２次元アレイの水平寸法と垂直寸法とのうちの別の１つよりも多いフィルタ係数を備えるように選択され得る。この例では、より多いフィルタ係数を備えるように選択された水平寸法と垂直寸法とのうちの１つが、走査順序に対して平行であり得る。
【００８６】
一例では、フィルタ係数の２次元アレイの水平寸法と垂直寸法とのうちの１つが８つの係数を備え得、２次元アレイの水平寸法と垂直寸法とのうちの他の１つが６つの係数を備え得る。同様に、別の例では、フィルタ係数の２次元アレイの水平寸法と垂直寸法とのうちの１つが８つの係数を備え得、２次元アレイの水平寸法と垂直寸法とのうちの他の１つが７つの係数を備え得る。
【００８７】
いくつかの例では、ビデオエンコーダ２０は、２次元アレイ内に含まれるいくつかのフィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを符号化するようにさらに構成され得る。
【００８８】
最後に、上記で説明した方法で適応タップサイズをもつ低複雑度補間フィルタを使用してピクセルの予測ブロック（prediction block）、または「予測ブロック（predictive block）」を生成した後に、ビデオエンコーダ２０は、予測ブロックを使用してビデオデータのブロックを符号化し得る。たとえば、ビデオエンコーダ２０は、符号化されるべきピクセルのブロックを受信し、ピクセルの残差ブロックを生成するために符号化されるべきピクセルのブロックから予測ブロックを減算し、残差ブロックを符号化するようにさらに構成され得る。
【００８９】
逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、たとえば、本開示の技法に一致する参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、再構成された残差ブロックを動き補償予測ブロックに加算することによって参照ブロックを計算し、得られた参照ブロックをメモリ６４のフレームのうちの１つとして記憶し得る。動き推定ユニット４２および動き補償ユニット４４はその後、上記で説明した方法での動き推定および動き補償のために、たとえば、サブ整数ピクセル値を計算するために参照ブロックに１つまたは複数の補間フィルタを適用することによって、参照ブロックを使用し得る。たとえば、加算器６２は、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、メモリ６４に記憶するための再構成されたビデオブロック、すなわち、参照ブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００９０】
したがって、本開示の技法は、ビデオエンコーダ２０が、ブロックを符号化するために使用されるビデオデータの１つまたは複数のブロックについての予測データを生成するとき、適応タップサイズをもつ低複雑度補間フィルタを使用することを可能にし得る。このようにして、本開示の技法を使用するとき、ビデオエンコーダ２０についての複雑さとメモリアクセスの数とが相対的に低減され得る。
【００９１】
このようにして、ビデオエンコーダ２０は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成されたビデオコーダの例を表す。サブピクセル値を計算するために、ビデオコーダは、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成される。第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオエンコーダは、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成される。
【００９２】
図３は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号するための技法を実装し得るビデオデコーダ３０の例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測モジュール７４と、逆量子化ユニット７６と、逆変換モジュール７８と、メモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信した動きベクトルに基づいて予測データを生成し得る。
【００９３】
動き補償ユニット７２は、ビットストリーム中で受信された動きベクトルを使用して、メモリ８２中の参照フレーム中の予測（prediction）、または「予測（predictive）」ブロックを識別し得る。イントラ予測モジュール７４は、ビットストリーム中で受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。
【００９４】
イントラ予測モジュール７４は、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために符号化ブロックについてのイントラ予測モードの指示を使用し得る。ブロックがインター予測モード符号化される例では、動き補償ユニット７２は、符号化ブロックについての動き補償予測（prediction）、または「予測」データを取り出すために、動きベクトルを定義する情報を受信し得る。いずれの場合も、動き補償ユニット７２またはイントラ予測モジュール７４は、予測ブロックを定義する情報を加算器８０に与え得る。
【００９５】
逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格によって定義される、またはＨＥＶＣテストモデルによって実行される、従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、各ブロックについてビデオエンコーダ２０によって計算される量子化パラメータＱＰYの使用を含み得る。
【００９６】
逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、本開示の技法に一致する補間フィルタに基づいて、補間を実行する。いくつかの例では、サブピクセル精度をもつ動き推定に使用されるべき補間フィルタについての識別子、たとえば、１つまたは複数のシグナリングビットは、シンタックス要素中に含まれ得る。他の例では、補間フィルタは、ビデオエンコーダ２０とビデオデコーダ３０との両方にとって利用可能な静的プロパティを有し得る。動き補償ユニット７２は、前に説明したように、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合も、いくつかの例では、動き補償ユニット７２は、受信したシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【００９７】
動き補償ユニット７２は、符号化ブロックについてのシンタックス情報のいくつかを使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されるブロックのサイズと、符号化ビデオシーケンスのフレームまたはスライスの各ブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化ブロックまたはパーティションについての１つまたは複数の参照フレーム（および参照フレームリスト）と、符号化ビデオシーケンスを復号するための他の情報とを判断する。イントラ予測モジュール７４はまた、上記で説明したように、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために符号化ブロックについてのシンタックス情報を使用し得る。
【００９８】
加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測モジュール７４によって生成される対応する予測ブロックと合計して、復号ブロックを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理し得る。復号されたビデオブロックは、次いで、メモリ８２に記憶され、メモリ８２は、参照ブロックを後続の動き補償に与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【００９９】
いくつかの例では、ビデオデコーダ３０は、ビデオデータのいくつかのブロック（たとえば、１つまたは複数のマクロブロック、またはＣＵのＴＵ）を復号するように構成され得る。たとえば、ビデオデコーダ３０は、ビデオデータの参照ブロックを使用して復号されているブロックについての予測ブロックを生成することによってビデオデータの特定のブロックを復号するように構成され得る。本開示の技法によれば、一例として、ビデオデコーダ３０は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成され得る。たとえば、サブピクセル値を計算するために、ビデオデコーダ３０は、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成され得る。この例では、第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオデコーダ３０は、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成され得る。この例では、フィルタサポート位置の第１のセットは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を含むことができ、フィルタサポート位置の第２のセットは、走査順序に対して直角に構成されたフィルタサポート位置を含むことができる。
【０１００】
いくつかの例では、フィルタサポート位置の第１のセットとフィルタサポート位置の第２のセットとのうちの１つが、ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え得、フィルタサポート位置の第１のセットとフィルタサポート位置の第２のセットとのうちの別の１つが、ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備え得る。
【０１０１】
一例では、フィルタ係数の第１の１次元アレイは８つの係数を備え得、フィルタ係数の第２の１次元アレイは６つの係数を備え得る。同様に、別の例では、フィルタ係数の第１の１次元アレイは８つの係数を備え得、フィルタ係数の第２の１次元アレイは７つの係数を備え得る。
【０１０２】
他の例では、フィルタサポート位置の第１のセットとフィルタサポート位置の第２のセットとのうちの少なくとも１つが、ブロック内の整数ピクセル位置のセットに対応し得る。
【０１０３】
さらに他の例では、第１のサブピクセルと第２のサブピクセルとのうちの少なくとも１つが、ブロック内の整数ピクセル位置との共通の水平軸と、ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にあり得る。
【０１０４】
さらに他の例では、以下の条件、すなわち（１）フィルタサポート位置の第１のセットのうちのフィルタサポート位置のうちの１つが、第２のサブピクセル値に対応するブロック内のサブピクセル位置に対応することと、（２）フィルタサポート位置の第２のセットのうちのフィルタサポート位置のうちの１つが、第１のサブピクセル値に対応するブロック内のサブピクセル位置に対応することとのうちの１つが満たされ得る。
【０１０５】
いくつかの例では、ビデオデコーダ３０は、第１および第２の１次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを復号するようにさらに構成され得る。
【０１０６】
さらに、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するために、ビデオデコーダ３０は、ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって第３のサブピクセル値を計算するようにさらに構成され得る。フィルタ係数の２次元アレイの水平寸法と垂直寸法とのうちの１つが、ブロックに関連する走査順序に基づいて２次元アレイの水平寸法と垂直寸法とのうちの別の１つよりも多いフィルタ係数を備えるように選択され得る。この例では、より多いフィルタ係数を備えるように選択された水平寸法と垂直寸法とのうちの１つが、走査順序に対して平行であり得る。
【０１０７】
一例では、フィルタ係数の２次元アレイの水平寸法と垂直寸法とのうちの１つが８つの係数を備え得、２次元アレイの水平寸法と垂直寸法とのうちの他の１つが６つの係数を備え得る。同様に、別の例では、フィルタ係数の２次元アレイの水平寸法と垂直寸法とのうちの１つが８つの係数を備え得、２次元アレイの水平寸法と垂直寸法とのうちの他の１つが７つの係数を備え得る。
【０１０８】
いくつかの例では、ビデオデコーダ３０は、２次元アレイ内に含まれるいくつかのフィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを復号するようにさらに構成され得る。
【０１０９】
最後に、上記で説明した方法で適応タップサイズをもつ低複雑度補間フィルタを使用してピクセルの予測（prediction）ブロック、または「予測（predictive）ブロック」を生成した後に、ビデオデコーダ３０は、予測ブロックを使用してビデオデータのブロックを復号し得る。たとえば、ビデオデコーダ３０は、ピクセルの符号化された残差ブロックを受信し、その残差ブロックを復号し、ピクセルの復号されたブロックを生成するために復号された残差ブロックを予測ブロックに加算するようにさらに構成され得る。
【０１１０】
このようにして、ビデオデコーダ３０は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成されたビデオコーダの例を表す。サブピクセル値を計算するために、ビデオコーダは、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成される。第１の１次元アレイは、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオコーダは、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成される。
【０１１１】
図４は、ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する予測サブピクセルとを示す概念図である。図４の例では、ビデオデータの参照ブロック内で、実線の境界をもつボックスは参照整数ピクセル位置を表し、破線の境界をもつボックスは予測サブピクセル位置を表す。（実線の境界をもつボックス中の）大文字は参照整数ピクセルを示し、（破線の境界をもつボックス中の）小文字は予測サブピクセルを示す。特に、ピクセルＡ１〜Ａ８、Ｂ１〜Ｂ８、Ｃ１〜Ｃ８、Ｄ１〜Ｄ８、Ｅ１〜Ｅ８、およびＦ１〜Ｆ８は、参照フレーム、スライス、または別のコード化ユニットの参照ブロック内の整数ピクセルの８×６（すなわち、水平方向に８ピクセル、垂直方向に６ピクセルの）アレイを表す。サブピクセル「ａ」〜「ｏ」は、整数ピクセルＣ４に関連する１５個のサブピクセル（すなわち、整数ピクセルＣ４とＣ５とＤ４とＤ５との間に配置された１５個のサブピクセル）を表す。同様のサブピクセルが、上記で説明したのと実質的に同様に図４の他の整数ピクセルロケーションについて存在し得るが、簡単のために図示しない。図４の例では、サブピクセル「ａ」〜「ｏ」は、整数ピクセルＣ４に関連するあらゆるハーフペルおよびクォーターペルピクセルを表す。また、図４に示すサブピクセル「ａａ」〜「ｌｌ」について、以下で詳細に説明する。
【０１１２】
概して、各整数ピクセルは、フォトダイオードなど、関連するビデオデータを生成するために使用された物理センサー要素に関連し得る。フォトダイオードは、整数ピクセルの位置に対応するセンサーのロケーションにおける光源の強度を測定し、ピクセル強度値、たとえば、ピクセル値を整数ピクセルに関連付け得る。この場合も、各整数ピクセルは、１５個の（または場合によってはより多くの）サブピクセルの関連するセットを有し得る。特定の整数ピクセルに関連するサブピクセルの数は、予測データを生成するために使用される所望の精度に依存することがある。図４の例では、所望の精度はクォーターピクセル、またはクォーターペル精度であり、その場合、整数ピクセルの各々は１５個のサブピクセルに対応する。前に説明したように、所望の精度に応じて、より多いまたはより少ないサブピクセルが各整数ピクセルに関連し得る。一例として、ハーフピクセル、またはハーフペル精度の場合、各整数ピクセルは３つのサブピクセルに対応し得る。たとえば、整数ピクセルＣ４はサブピクセル「ｂ」、「ｈ」、および「ｊ」に対応し得る。別の例として、１／８ピクセル、または１／８ペル精度の場合、各整数ピクセルは６３個のサブピクセル（図示せず）に対応し得る。
【０１１３】
さらに、各整数ピクセルおよびサブピクセルは、１つまたは複数のピクセル値、たとえば、１つまたは複数のルミナンス値およびクロミナンス値に関連し得る。たとえば、前に説明したように、３次元ＹＣｂＣｒ色空間内で、ビデオデータのブロックのＹ成分はルミナンスデータを表し得、ブロックのＣｂ成分およびＣｒ成分はクロミナンスデータをそれぞれ表し得る。したがって、３次元色空間の場合、各整数ピクセルおよびサブピクセルは、３つのピクセル値、たとえば、Ｙ値とＣｂ値とＣｒ値に関連し得る。しかしながら、本開示の技法は、簡単のために、ビデオデータの特定のブロックの単一の構成要素、または「次元」に関する予測データを生成することを指すことがある。技法について１つの構成要素または次元のピクセル値に関して説明する限り、同様の技法が他の構成要素または次元に拡張され得る。場合によっては、ビデオデータのブロックについてのクロミナンスデータは、ブロックについてのルミナンスデータに対するサブサンプリングであり得る。しかしながら、どのようにそれぞれのデータがサンプリングされるかにかかわらず、本明細書で説明する補間フィルタ処理技法は、ビデオデータのブロックのルミナンスデータとクロミナンスデータとに等しく適用され得る。
【０１１４】
図４の例には、クォーターピクセル精度の場合の、整数ピクセルＣ４に関連するサブピクセル「ａ」〜「ｏ」が示されている。整数ピクセルＣ４に関連する１５個のサブピクセルは、前に説明したように、「ａ」、「ｂ」、「ｃ」、「ｄ」、「ｅ」、「ｆ」、「ｇ」、「ｈ」、「ｉ」、「ｊ」、「ｋ」、「ｌ」、「ｍ」、「ｎ」、および「ｏ」と標示される。他の整数ピクセルに関連する他の分数ロケーションの大部分は、簡単のために図示していない。サブピクセル「ｂ」、「ｈ」および「ｊ」をハーフピクセルと呼ぶことがあり、サブピクセル「ａ」、「ｃ」、「ｄ」、「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｋ」、「ｌ」、「ｍ」、および「ｏ」をクォーターピクセルと呼ぶことがある。さらに、本開示では、整数ピクセルと同じ水平軸に沿って配向されたサブピクセルを水平サブピクセルと呼ぶことがある。サブピクセル「ａ」、「ｂ」、および「ｃ」は水平サブピクセルの例である。整数ピクセルと同じ垂直軸の上に配向されたサブピクセルを垂直サブピクセルと呼ぶことがある。サブピクセル「ｄ」、「ｈ」、および「ｌ」は、垂直サブピクセルの例である。本開示の態様は、適応タップサイズをもつ低複雑度補間フィルタを使用して水平サブピクセルと垂直サブピクセルとについてのピクセル値を判断することを含み、したがって、本開示では、水平サブピクセルと垂直サブピクセルとをまとめて１Ｌサブピクセルと呼ぶことがある。本開示では、「１Ｌ」という用語は、適応タップサイズをもつ単一の低複雑度線形補間フィルタを使用して水平および垂直サブピクセルの各ピクセル値が判断されることを示す。
【０１１５】
同様に、本開示では、特定の整数ピクセルに関連するすべての他のサブピクセルを２Ｌサブピクセルと呼ぶことがある。サブピクセル「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、および「ｏ」は、２Ｌサブピクセルの例である。本開示の態様はまた、適応タップサイズをもつ低複雑度補間フィルタを使用して２Ｌサブピクセルについてのピクセル値を決定することを含む。たとえば、２Ｌサブピクセルの各ピクセル値は、適応タップサイズをもつ、１つは垂直方向に適用され、１つは水平方向に適用される２つの分離可能な低複雑度線形補間フィルタ、または適応タップサイズをもつ２次元低複雑度線形補間フィルタを使用して判断される。
【０１１６】
ビデオエンコーダ２０の動き補償ユニット４４および／またはビデオデコーダ３０の動き補償ユニット７２は、本開示の補間フィルタ処理技法を使用して、サブピクセル「ａ」〜「ｏ」についてのピクセル値を判断し得る。ハーフピクセル「ｂ」および「ｈ」の場合、タップとも呼ばれる各フィルタ係数は、それぞれ水平方向および垂直方向にある整数ピクセルに対応し得る。特に、ハーフピクセル「ｂ」の場合、８タップフィルタのタップは整数ピクセルＣ１〜Ｃ８に対応する。同様に、ハーフピクセル「ｈ」の場合、６タップフィルタのタップは、Ａ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４に対応する。たとえば、サブピクセル「ｂ」および「ｈ」についてのピクセル値を、以下の式（１）および式（２）を使用して計算することができる。
【数１】
0005805787.tif 000002
【数２】
0005805787.tif 000003
【０１１７】
いくつかの実装形態では、２５６による除算を８ビットの右シフトによって実装することができる。サブピクセル「ｂ」の場合と同様に、クォーターピクセル「ａ」および「ｃ」の場合、８タップフィルタのタップは、Ｃ１〜Ｃ８に対応し得るが、サブピクセル「ｂ」とは異なり、前に説明したように、フィルタ係数は非対称であり、サブピクセル「ｂ」の場合とは異なり得る。たとえば、サブピクセル「ａ」および「ｃ」についてのピクセル値を、以下の式（３）および式（４）を使用して計算することができる。
【数３】
0005805787.tif 000004
【数４】
0005805787.tif 000005
【０１１８】
いくつかの実装形態では、２５６による除算を８ビットの右シフトによって実装することができる。サブピクセル「ｈ」の場合と同様に、クォーターピクセル「ｄ」および「ｌ」の場合、６タップフィルタのタップは、Ａ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４に対応し得るが、サブピクセル「ｂ」とは異なり、フィルタ係数は非対称であり、サブピクセル「ｈ」の場合とは異なり得る。たとえば、サブピクセル「ｄ」および「ｌ」についてのピクセル値を、以下の式（５）および式（６）を使用して計算することができる。
【数５】
0005805787.tif 000006
【数６】
0005805787.tif 000007
【０１１９】
いくつかの実装形態では、２５６による除算を８ビットの右シフトによって実装することができる。上記の式（１）〜式（６）について与えられた例示的な係数は、概して、水平サブピクセルと垂直サブピクセルの両方について同じ係数を使用するが、水平サブピクセルについての係数と垂直サブピクセルについての係数が同じである必要はない。たとえば、式（１）と式（２）、式（３）と式（５）、および式（４）と式（６）はそれぞれ、上記の例では同じ係数を有するが、いくつかの実装形態では、各々は異なる係数を有し得る。
【０１２０】
動き補償ユニット４４および動き補償ユニット７２はまた、本開示の補間フィルタ処理技法を使用して、２Ｌサブピクセル「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、および「ｏ」についてのピクセル値を判断し得る。２Ｌサブピクセルについて、水平フィルタ処理の後に垂直フィルタ処理が行われ、またはその逆も同様である。第１のフィルタ処理演算は中間サブピクセル値を判断し、第２のフィルタ処理演算は、中間サブピクセル値を利用して、補間サブピクセルについてのピクセル値を判断する。たとえば、サブピクセル「ｊ」についての値を判断するために、以下の式を使用して、サブピクセル「ａａ」、「ｂｂ」、「ｂ」、「ｊｊ」、「ｋｋ」、および「ｌｌ」についての中間値を判断するために、６つの８タップ水平フィルタが使用され得る。
【数７】
0005805787.tif 000008
【数８】
0005805787.tif 000009
【数９】
0005805787.tif 000010
【数１０】
0005805787.tif 000011
【数１１】
0005805787.tif 000012
【数１２】
0005805787.tif 000013
【０１２１】
いくつかの実装形態では、２５６による除算を８ビットの右シフトによって実装することができる。上記の中間値に６タップ垂直フィルタを適用すると、サブピクセル「ｊ」についての値を、以下の式を使用して判断することができる。
【数１３】
0005805787.tif 000014
【０１２２】
いくつかの実装形態では、２５６による除算を８ビットの右シフトによって実装することができる。代替的に、サブピクセル「ｃｃ」、「ｄｄ」、「ｅｅ」、「ｈ」、「ｆｆ」、「ｇｇ」、「ｈｈ」、および「ｌｌ」についての中間値を発見するために８つの６タップ垂直フィルタを使用することができ、サブピクセル「ｊ」についてのピクセル値を判断するために、それらの中間値に８タップ水平フィルタを適用することができる。
【０１２３】
サブピクセル「ｊ」について上記で説明したプロシージャと同様に、サブピクセルの中間値を判断するために６つの８タップ水平フィルタ処理演算を最初に実行し、次いで、水平フィルタ処理によって判断された中間値に６タップ垂直フィルタを適用することによって、または、サブピクセルの中間値を判断するために８つの６タップ垂直フィルタ処理演算を最初に実行し、次いで、垂直フィルタ処理によって判断された中間値に８タップ水平フィルタを適用することによって、サブピクセル「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｋ」、「ｍ」、「ｎ」、および「ｏ」についてのピクセル値を判断することができる。サブピクセル「ｊ」について上記で例として使用された水平フィルタと垂直フィルタの両方が対称係数を使用するが、他の２Ｄサブピクセルについてのピクセル値を判断するために使用される水平フィルタまたは垂直フィルタの一方または両方が対称的でないことがある。一例として、サブピクセル「ｅ」、「ｇ」、「ｍ」、および「ｏ」についての水平フィルタと垂直フィルタの両方が非対称係数を使用し得る。サブピクセル「ｆ」および「ｎ」は、対称係数をもつ水平フィルタと非対称係数をもつ垂直フィルタとを使用し得、サブピクセル「ｉ」および「ｋ」は、非対称係数をもつ水平フィルタと対称係数をもつ垂直フィルタとを使用し得る。
【０１２４】
再び図２および図３を参照すると、サブピクセル位置における補間データを生成するために動き補償ユニット４２および／または動き補償ユニット７２によって適用される実際のフィルタは、多種多様な実装形態によって異なることがある。一例として、ビデオエンコーダ２０は、ビデオデコーダ３０に対してビデオエンコーダ２０によって使用されたフィルタの厳密なプロパティを定義する様々なフィルタパラメータをビットストリーム中でビデオデコーダ３０に送信し得る。別の例として、ビデオエンコーダ２０とビデオデコーダ３０の両方は交換フィルタ処理を利用し得、複数のフィルタがビデオエンコーダ２０とビデオデコーダ３０の両方によって知られており、使用されるべき特定のフィルタの指示はビットストリーム中でビデオエンコーダ２０からビデオデコーダ３０にシグナリングされる。さらに別の例として、ビデオエンコーダ２０とビデオデコーダ３０の両方が、ビデオエンコーダ２０とビデオデコーダ３０の両方によって知られている固定数のフィルタを利用し、シンタックス情報、またはビデオエンコーダ２０およびビデオデコーダ３０のうちのそれぞれの１つのプロパティに基づいて使用されるべき適切なフィルタを単独で選択し得る。いずれの場合も、ビデオエンコーダ２０および／またはビデオデコーダ３０は、本開示の技法に一致する方法で、使用されるべき適切なフィルタ、すなわち、適切な長さのフィルタを選択し得る。
【０１２５】
動き補償ユニット４４および／または動き補償ユニット７２は、水平方向および垂直方向において分離可能な補間フィルタを使用し得る。１Ｌサブピクセルについて、動き補償ユニット４４および／または動き補償ユニット７２は、サブピクセルの位置に応じて水平方向フィルタのみまたは垂直方向フィルタのみを適用し得る。一例では、水平方向フィルタは８位置（または８タップ）フィルタを備え、垂直方向フィルタは６位置（または６タップ）フィルタを備える。動き補償ユニット４４および／または動き補償ユニット７２は、フィルタサポート位置として整数ピクセルＣ１〜Ｃ８を使用して、サブピクセル「ａ」、「ｂ」、および「ｃ」に対して水平方向フィルタを適用し、フィルタサポート位置として整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４を使用して、サブピクセル「ｄ」、「ｈ」、および「ｌ」に対して垂直方向フィルタを適用し得る。残りのサブピクセル、すなわち、２Ｌサブピクセルについて、動き補償ユニット４４および／または動き補償ユニット７２は、最初に水平フィルタ処理を適用し、その後に垂直フィルタ処理を適用するか、または最初に垂直フィルタ処理を適用し、その後に水平フィルタ処理を適用し得る。２Ｌサブピクセルに対して使用される水平フィルタの各々は８タップフィルタであり得、２Ｌサブピクセルに対して使用される垂直フィルタの各々は６タップフィルタであり得る。
【０１２６】
さらに、動き補償ユニット４４および／または動き補償ユニット７２は、単一の２次元「非分離可能」補間フィルタ使用して、２Ｌサブピクセルのピクセル値を判断し得る。この場合、フィルタの水平寸法は８つのフィルタ係数を備え得、フィルタの垂直寸法は６つのフィルタ係数を備え得る。
【０１２７】
本開示では、例として、８タップフィルタと６タップフィルタ、および８係数フィルタ寸法と６係数フィルタ寸法について説明するが、他のフィルタ長および次元も使用され得、本開示の範囲内であることに留意されたい。たとえば、水平フィルタサポート位置を使用して１Ｌサブピクセルおよび２Ｌサブピクセルについてのピクセル値を判断するために、８タップフィルタが使用され得、垂直フィルタサポート位置を使用して１Ｌサブピクセルおよび２Ｌサブピクセルについてのピクセル値を判断するために、７タップフィルタが使用され得、またはその逆も同様であり、より長い長さを有するフィルタは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置に対応する。
【０１２８】
さらに、水平フィルタサポート位置を使用して２Ｌサブピクセルについてのピクセル値を判断するために、８つのフィルタ係数を備える水平寸法をもつ２次元フィルタが使用され得、垂直フィルタサポート位置を使用して２Ｌサブピクセルについてのピクセル値を判断するために、７つのフィルタ係数を備える垂直寸法をもつフィルタが使用され得、またはその逆も同様であり、より長い長さを有するフィルタの次元、または言い換えれば、最大フィルタ係数を含むフィルタの次元は、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置に対応する。同様に、より短い長さを有するフィルタ、およびより短い長さを有するフィルタの次元は、走査順序に対して直角に構成されたフィルタサポート位置に対応する。代替的に、他の例では、水平フィルタサポート位置を使用して１Ｌおよび／または２Ｌサブピクセルについての値を判断するために、６タップフィルタ、または６つの係数フィルタ寸法が使用され得、垂直フィルタサポート位置を使用して１Ｌおよび／または２Ｌサブピクセルについての値を判断するために、４タップフィルタ、および４つの係数フィルタ寸法が使用され得、またはその逆も同様である。
【０１２９】
図５は、ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する水平および垂直「１Ｌ」予測サブピクセルとを示す概念図である。図４を参照しながら前に説明したように、サブピクセル「ａ」、「ｂ」、「ｃ」、「ｄ」、「ｈ」、および「ｉ」を１Ｌサブピクセルと呼ぶことがある。さらに、サブピクセル「ａ」、「ｂ」、および「ｃ」を水平１Ｌサブピクセルと呼ぶことがあり、サブピクセル「ｄ」、「ｈ」、および「ｌ」を垂直１Ｌサブピクセルと呼ぶことがある。
【０１３０】
図６は、ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する非水平および非垂直「２Ｌ」予測サブピクセルとを示す概念図である。図４に関して前に説明したように、サブピクセル「ｅ」、「ｆ」、「ｇ」、「ｉ」、「ｊ」、「ｋ」、「ｍ」、「ｎ」、および「ｏ」を２Ｌサブピクセルと呼ぶことがある。
【０１３１】
図７は、係数対称性をもつ８タップ補間フィルタを示す概念図である。図７は、サブピクセル位置（サブピクセル「ｂ」）に対する８つの水平フィルタサポート位置（整数ピクセルＣ１〜Ｃ８）を示す。図７では、整数ピクセルのシェーディングは、対応する係数と、他の影つきでないない整数ピクセルに対応する係数との間の対称性を示す。特に、サブピクセル「ｂ」の左側の整数ピクセルのシェーディングは、対応する係数がサブピクセル「ｂ」の右側の影つきでない整数ピクセルに対応する係数に対して対称であることを示す。図７の例では、係数対称性は、フィルタサポート位置として整数ピクセルＣ１〜Ｃ８を使用して、サブピクセル「ｂ」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルＣ１〜Ｃ４に対応する４つのフィルタ係数のみが必要とされることを意味する。たとえば、整数ピクセルＣ１に対応する係数は整数ピクセルＣ８に対応する係数に対して対称であり、整数ピクセルＣ２に対応する係数は整数ピクセルＣ７に対応する係数に対して対称であり、整数ピクセルＣ３に対応する係数は整数ピクセルＣ６に対応する係数に対して対称であり、整数ピクセルＣ４に対応する係数は整数ピクセルＣ５に対応する係数に対して対称である。したがって、サブピクセル「ｂ」を補間するために必要とされる８つのフィルタ係数の全セットを定義するためには、４つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ２０によってビデオデコーダ３０にシグナリングされるか、またはビデオエンコーダ２０とビデオデコーダ３０とにローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ３０において（および、いくつかの場合ではビデオエンコーダ２０において）生成され得る。特に、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて残りの係数を生成するようにプログラムされ得る。
【０１３２】
図８は、係数対称性をもたない８タップ補間フィルタを示す概念図である。図８は、サブピクセル位置（サブピクセル「ａ」）に対する８つの水平フィルタサポート位置（整数ピクセルＣ１〜Ｃ８）を示す。係数対称性の欠如により、フィルタサポート位置として整数ピクセルＣ１〜Ｃ８を使用して、サブピクセル「ａ」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルＣ１〜Ｃ８に対応する８つのフィルタ係数が通信される必要がある。しかしながら、サブピクセル「ａ」を補間するために導出された同じフィルタ係数が（図４および図５に示したように）サブピクセル「ｃ」を補間するために使用され得る点で、係数対称性は依然として当てはまり得る。たとえば、サブピクセル「ａ」を補間するときに整数ピクセルＣ１に対応する係数は、サブピクセル「ｃ」を補間するときに整数ピクセルＣ８に対応する係数であり得、サブピクセル「ａ」を補間するときに整数ピクセルＣ２に対応する係数は、サブピクセル「ｃ」を補間するときに整数ピクセルＣ７に対応する係数であり得、サブピクセル「ａ」を補間するときに整数ピクセルＣ３に対応する係数は、サブピクセル「ｃ」を補間するときに整数ピクセルＣ６に対応する係数であり得、サブピクセル「ａ」を補間するときに整数ピクセルＣ４に対応する係数は、サブピクセル「ｃ」を補間するときに整数ピクセルＣ５に対応する係数であり得るように、整数ピクセルＣ１〜Ｃ８に対応するサブピクセル「ａ」を補間するために使用される８つのフィルタ係数は、係数を「反転する」ことによってサブピクセル「ｃ」を補間するために使用され得る。したがって、この場合も、サブピクセル「ａ」およびサブピクセル「ｃ」の各々を補間するために必要とされる８つのフィルタ係数の全セットを定義するために、８つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ２０によってビデオデコーダ３０に通信されるか、またはビデオエンコーダ２０およびビデオデコーダ３０にローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ３０において（および、いくつかの場合ではビデオエンコーダ２０において）生成され得る。特に、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて、たとえば、説明したように係数を反転することによって残りの係数を生成するようにプログラムされ得る。
【０１３３】
図７および図８の例は、水平補間フィルタの例を示す。図７および図８の各々の補間フィルタは、サブピクセル位置（すなわち、サブピクセル「ｂ」または「ａ」）に対するビデオデータの参照ブロック（たとえば、図４に示した参照ブロック）内の８つの水平フィルタサポート位置（整数ピクセルＣ１〜Ｃ８）に対応する８つのフィルタ係数を含む。
【０１３４】
図９は、係数対称性をもつ６タップ補間フィルタを示す概念図である。図９は、サブピクセル位置（サブピクセル「ｈ」）に対する６つの垂直フィルタサポート位置（整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４）を示す。この場合も、図９の例では、係数対称性は、フィルタサポート位置として整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４を使用して、サブピクセル「ｈ」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルＡ４、Ｂ４、およびＣ４に対応する３つのフィルタ係数のみが必要とされることを意味する。たとえば、整数ピクセルＡ４に対応する係数は、整数ピクセルＦ４に対応する係数に対して対称であり、整数ピクセルＢ４に対応する係数は、整数ピクセルＥ４に対応する係数に対して対称であり、整数ピクセルＣ４に対応する係数は、整数ピクセルＤ４に対応する係数に対して対称である。したがって、サブピクセル「ｈ」を補間するために必要とされる６つのフィルタ係数の全セットを定義するために、３つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ２０によってビデオデコーダ３０に通信されるか、またはビデオエンコーダ２０とビデオデコーダ３０とにローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ３０において（および、いくつかの場合ではビデオエンコーダ２０において）生成され得る。特に、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて残りの係数を生成するようにプログラムされ得る。
【０１３５】
図１０は、係数対称性をもたない６タップ補間フィルタを示す概念図である。図１０は、サブピクセル位置（サブピクセル「ｄ」）に対する６つの垂直フィルタサポート位置（整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４）を示す。この場合も、フィルタサポート位置として整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４を使用して、サブピクセル「ｄ」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４に対応するすべての６つのフィルタ係数が必要とされる。しかしながら、サブピクセル「ｄ」を補間するために導出された同じフィルタ係数が（図４および図５に示したように）サブピクセル「ｌ」を補間するために使用され得る点で、係数対称性は依然として当てはまり得る。たとえば、サブピクセル「ｄ」を補間するときに整数ピクセルＡ４に対応する係数は、サブピクセル「ｌ」を補間するときに整数ピクセルＦ４に対応する係数であり得、サブピクセル「ｄ」を補間するときに整数ピクセルＢ４に対応する係数は、サブピクセル「ｌ」を補間するときに整数ピクセルＥ４に対応する係数であり得、サブピクセル「ｄ」を補間するときに整数ピクセルＣ４に対応する係数は、サブピクセル「ｌ」を補間するときに整数ピクセルＤ４に対応する係数であり得るように、整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４に対応するサブピクセル「ｄ」を補間するために使用される６つのフィルタ係数は、係数を反転することによってサブピクセル「ｌ」を補間するために使用され得る。したがって、この場合も、サブピクセル「ｄ」およびサブピクセル「ｌ」の各々を補間するために必要とされる６つのフィルタ係数の全セットを定義するために、６つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ２０によってビデオデコーダ３０に通信されるか、またはビデオエンコーダ２０およびビデオデコーダ３０にローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ３０において（および、いくつかの場合ではビデオエンコーダ２０において）生成され得る。特に、ビデオエンコーダ２０および／またはビデオデコーダ３０は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて、たとえば、説明したように係数を反転することによって残りの係数を生成するようにプログラムされ得る。
【０１３６】
図９および図１０の例は、垂直補間フィルタの例を示す。図９および図１０の各々の補間フィルタは、サブピクセル位置（すなわち、サブピクセル「ｈ」または「ｄ」）に対するビデオデータの参照ブロック（たとえば、図４に示す参照ブロック）内の６つの垂直フィルタサポート位置（整数ピクセルＡ４、Ｂ４、Ｃ４、Ｄ４、Ｅ４、およびＦ４）に対応する６つのフィルタ係数を含む。
【０１３７】
図１１は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを符号化する方法の例を示す流れ図である。図１１の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図１１の技法について、ビデオエンコーダ２０（図１および図２）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図１１に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０１３８】
ビデオエンコーダ２０は、ビデオデータの１つまたは複数のブロックを符号化し得る。最初に、いくつかの例では、ビデオエンコーダ２０は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得する（１１００）。たとえば、ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。前にも説明したように、ピクセルのブロックは、ビデオデータの特定のブロックを符号化するための予測ブロックを生成するために使用されるビデオデータの参照ブロックを備え得る。
【０１３９】
ビデオエンコーダ２０は、さらに、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算する（１１０２）。さらに、ビデオエンコーダ２０は、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算する。ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように第１の１次元アレイを選択する（１１０４）。
【０１４０】
ビデオエンコーダ２０は、さらに、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成する（１１０６）。たとえば、ピクセルの予測ブロック（prediction block）を「予測ブロック（predictive block）」と呼ぶことがあり、上記で説明したようにビデオデータのブロックを符号化するために使用され得る。
【０１４１】
いくつかの例では、ビデオエンコーダ２０は、さらに、符号化されるべきピクセルのブロックを受信し、ピクセルの残差ブロックを生成するために符号化されるべきピクセルのブロックから予測ブロックを減算し、残差ブロックを符号化する（１１０８）。たとえば、符号化されるべきピクセルのブロックはまた、前にも説明したように、マクロブロック、またはＣＵのＴＵであり得る。
【０１４２】
最後に、いくつかの例では、ビデオエンコーダ２０は、第１および第２の１次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを符号化する（１１１０）。
【０１４３】
このようにして、図１１の方法は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、サブピクセル値を計算することが、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを含み、第１の１次元アレイが、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成することとを含む、ビデオデータのブロックをコーディングする方法の例を表す。
【０１４４】
図１２は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号する方法の例を示す流れ図である。図１２の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図１２の技法について、ビデオデコーダ３０（図１および図３）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図１２に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０１４５】
ビデオデコーダ３０は、ビデオデータの１つまたは複数のブロックを復号し得る。最初に、いくつかの例では、ビデオデコーダ３０は、フィルタ係数の第１および第２の１次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを復号する（１２００）。
【０１４６】
ビデオデコーダ３０は、さらに、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得する（１２０２）。たとえば、ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。前にも説明したように、ピクセルのブロックは、ビデオデータの特定のブロックを復号するための予測ブロックを生成するために使用されるビデオデータの参照ブロックを備え得る。
【０１４７】
ビデオデコーダ３０は、さらに、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算する（１２０４）。さらに、ビデオデコーダ３０は、さらに、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算する。ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように第１の１次元アレイを選択する（１２０６）。
【０１４８】
ビデオデコーダ３０は、さらに、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成する（１２０８）。たとえば、ピクセルの予測ブロック（prediction block）を「予測ブロック（predictive block）」と呼ぶことがあり、上記で説明したようにビデオデータのブロックを復号するために使用することがある。
【０１４９】
最後に、いくつかの例では、ビデオデコーダ３０は、ピクセルの符号化された残差ブロックを受信し、その残差ブロックを復号し、ピクセルの復号されたブロックを生成するために復号された残差ブロックを予測ブロックに加算する（１２１０）。たとえば、ピクセルの復号されたブロックはまた、前にも説明したように、マクロブロック、またはＣＵのＴＵであり得る。
【０１５０】
このようにして、図１２の方法は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、サブピクセル値を計算することが、ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを含み、第１の１次元アレイが、ブロックに関連する走査順序に基づいて第２の１次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成することとを含む、ビデオデータのブロックをコーディングする方法の例を表す。
【０１５１】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１５２】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１５３】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１５４】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示した技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明したように１つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１５５】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲を付記する。
［Ｃ１］
ビデオデータのブロックをコーディングする方法であって、前記方法が、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、前記サブピクセル値を計算することが、
前記ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、
前記ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することと
を備え、
前記第１の１次元アレイが、前記ブロックに関連する走査順序に基づいて前記第２の１次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成することと
を備える、方法。
［Ｃ２］
フィルタサポート位置の前記第１のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、［Ｃ１］に記載の方法。
［Ｃ３］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、［Ｃ１］記載の方法。
［Ｃ４］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える［Ｃ１］に記載の方法。
［Ｃ５］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
［Ｃ１］に記載の方法。
［Ｃ６］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置のセットに対応する、［Ｃ１］に記載の方法。
［Ｃ７］
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、［Ｃ１］に記載の方法。
［Ｃ８］
以下の条件、すなわち、
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記第２のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第２のセットのうちの前記フィルタサポート位置のうちの１つが、前記第１のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの１つが満たされる、［Ｃ１］に記載の方法。
［Ｃ９］
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすることをさらに備える、［Ｃ１］に記載の方法。
［Ｃ１０］
前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算することが、
前記ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算することをさらに備え、
フィルタ係数の前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ブロックに関連する前記走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの別の１つよりも多いフィルタ係数を備えるように選択される［Ｃ１］に記載の方法。
［Ｃ１１］
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記走査順序に対して平行である、［Ｃ１０］に記載の方法。
［Ｃ１２］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが６つの係数を備える
［Ｃ１０］に記載の方法。
［Ｃ１３］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが７つの係数を備える
［Ｃ１０］に記載の方法。
［Ｃ１４］
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすることをさらに備える、［Ｃ１０］に記載の方法。
［Ｃ１５］
前記方法がビデオ符号化プロセスの一部を形成し、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記方法が、
符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ１６］
前記方法がビデオ復号プロセスの一部を形成し、ピクセルの前記ブロックがピクセルの前記参照ブロックを備え、前記方法が、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ１７］
ビデオデータのブロックをコーディングするための装置であって、前記装置がビデオコーダを備え、前記ビデオコーダが、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することと
を行うように構成され、前記サブピクセル値を計算するために、前記ビデオコーダが、
前記ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、
前記ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行うように構成され、
前記第１の１次元アレイが、前記ブロックに関連する走査順序に基づいて前記第２の１次元アレイよりも多いフィルタ係数を備えるように選択され、前記ビデオコーダが、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成すること
を行うように構成された、装置。
［Ｃ１８］
フィルタサポート位置の前記第１のセットが、前記ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、［Ｃ１７］に記載の装置。
［Ｃ１９］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、［Ｃ１７］に記載の装置。
［Ｃ２０］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える［Ｃ１７］に記載の装置。
［Ｃ２１］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
[Ｃ１７]に記載の装置。
［Ｃ２２］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置のセットに対応する、［Ｃ１７］に記載の装置。
［Ｃ２３］
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、［Ｃ１７］に記載の装置。
［Ｃ２４］
以下の条件、すなわち、
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記第２のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第２のセットのうちの前記フィルタサポート位置のうちの１つが、前記第１のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの１つが満たされる、［Ｃ１７］に記載の装置。
［Ｃ２５］
前記ビデオコーダが、
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
ようにさらに構成された、［Ｃ１７］に記載の装置。
［Ｃ２６］
前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するために、前記ビデオコーダが、
前記ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算するようにさらに構成され、
フィルタ係数の前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ブロックに関連する前記走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの他方よりも多いフィルタ係数を備えるように選択される
［Ｃ１７］に記載の装置。
［Ｃ２７］
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記走査順序に対して平行である、［Ｃ２６］に記載の装置。
［Ｃ２８］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが６つの係数を備える［Ｃ２６］に記載の装置。
［Ｃ２９］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが７つの係数を備える［Ｃ２６］に記載の装置。
［Ｃ３０］
前記ビデオコーダが、
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
ようにさらに構成された、［Ｃ２６］に記載の装置。
［Ｃ３１］
前記ビデオコーダがビデオエンコーダを備え、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記ビデオエンコーダが、
符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
を行うようにさらに構成された、［Ｃ１７に記載の装置。
［Ｃ３２］
前記ビデオコーダがビデオデコーダを備え、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記ビデオデコーダが、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
を行うようにさらに構成された、［Ｃ１７］に記載の装置。
［Ｃ３３］
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと
のうちの少なくとも１つを備える、［Ｃ１７］に記載の装置。
［Ｃ３４］
ビデオデータのブロックをコーディングするためのデバイスであって、前記デバイスが、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得するための手段と、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するための手段であって、前記サブピクセル値を計算するための前記手段が、
前記ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算するための手段と、
前記ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算するための手段と
を備え、
前記第１の１次元アレイが、前記ブロックに関連する走査順序に基づいて前記第２の１次元アレイよりも多いフィルタ係数を備えるように選択される、計算するための手段と、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成するための手段と
を備える、デバイス。
［Ｃ３５］
フィルタサポート位置の前記第１のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、［Ｃ３４］に記載のデバイス。
［Ｃ３６］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、［Ｃ３４］に記載のデバイス。
［Ｃ３７］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える
［Ｃ３４］に記載のデバイス。
［Ｃ３８］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
［Ｃ３４］に記載のデバイス。
［Ｃ３９］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置のセットに対応する、［Ｃ３４］に記載のデバイス。
［Ｃ４０］
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、［Ｃ３４］に記載のデバイス。
［Ｃ４１］
以下の条件、すなわち、
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記第２のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第２のセットのうちの前記フィルタサポート位置のうちの１つが、前記第１のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの１つが満たされる、［Ｃ３４］に記載のデバイス。
［Ｃ４２］
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
をさらに備える、［Ｃ３４］に記載のデバイス。
［Ｃ４３］
前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するための前記手段が、
前記ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算するための手段をさらに備え、
フィルタ係数の前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ブロックに関連する前記走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの別の１つよりも多いフィルタ係数を備えるように選択される
［Ｃ３４］に記載のデバイス。
［Ｃ４４］
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記走査順序に対して平行である、［Ｃ４３］に記載のデバイス。
［Ｃ４５］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが６つの係数を備える
［Ｃ４３］に記載のデバイス。
［Ｃ４６］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが７つの係数を備える
［Ｃ４３］に記載のデバイス。
［Ｃ４７］
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
をさらに備える、［Ｃ４３］に記載のデバイス。
［Ｃ４８］
前記デバイスがビデオ符号化プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記デバイスが、
符号化されるべきピクセルのブロックを受信するための手段であって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信するための手段と、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算するための手段と、
前記残差セグメントを符号化するための手段と
をさらに備える、［Ｃ３４］に記載のデバイス。
［Ｃ４９］
前記デバイスがビデオ復号プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記デバイスが、
ピクセルの符号化された残差ブロックを受信するための手段と、
前記残差ブロックを復号するための手段と、
ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算するための手段であって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算するための手段と
をさらに備える、［Ｃ３４］に記載のデバイス。
［Ｃ５０］
実行されたとき、プロセッサにビデオデータのブロックをコーディングさせる命令を備えるコンピュータ可読記憶媒体であって、前記命令が、前記プロセッサに、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを行わせ、前記プロセッサに前記サブピクセル値を計算させる前記命令が、前記プロセッサに、
前記ブロック内のフィルタサポート位置の第１のセットに対応するフィルタ係数の第１の１次元アレイを定義する第１の補間フィルタを適用することによって、第１のサブピクセル値を計算することと、
前記ブロック内のフィルタサポート位置の第２のセットに対応するフィルタ係数の第２の１次元アレイを定義する第２の補間フィルタを適用することによって、第２のサブピクセル値を計算することとを行わせ、
前記第１の１次元アレイが、前記ブロックに関連する走査順序に基づいて前記第２の１次元アレイよりも多いフィルタ係数を備えるように選択され、前記命令が、前記プロセッサに、
前記計算されたサブピクセル値のうちの１つまたは複数に基づいてピクセルの予測ブロックを生成すること
を行わせる、コンピュータ可読記憶媒体。
［Ｃ５１］
フィルタサポート位置の前記第１のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第２のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５２］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの１つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの別の１つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５３］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが６つの係数を備える
［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５４］
フィルタ係数の前記第１の１次元アレイが８つの係数を備え、
フィルタ係数の前記第２の１次元アレイが７つの係数を備える
［Ｃ４４］に記載のコンピュータ可読記憶媒体。
［Ｃ５５］
フィルタサポート位置の前記第１のセットとフィルタサポート位置の前記第２のセットとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置のセットに対応する、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５６］
前記第１のサブピクセルと前記第２のサブピクセルとのうちの少なくとも１つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの１つの上にある、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５７］
以下の条件、すなわち、
フィルタサポート位置の前記第１のセットのうちの前記フィルタサポート位置のうちの１つが、前記第２のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第２のセットのうちの前記フィルタサポート位置のうちの１つが、前記第１のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの１つが満たされる、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５８］
前記プロセッサに、
前記第１および第２の１次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
命令をさらに備える、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ５９］
前記プロセッサに、前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算させる前記命令が、前記プロセッサに、
前記ブロック内のフィルタサポート位置の２次元セットに対応するフィルタ係数の２次元アレイを定義する第３の補間フィルタを適用することによって、第３のサブピクセル値を計算させる命令をさらに備え、
前記２次元アレイの水平寸法と垂直寸法とのうちの１つが、前記ブロックに関連する前記走査順序に基づいて前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの別の１つよりも多いフィルタ係数を備えるように選択される、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ６０］
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記１つが、前記走査順序に対して平行である、［Ｃ５９］に記載のコンピュータ可読記憶媒体。
［Ｃ６１］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが６つの係数を備える
［Ｃ５９］に記載のコンピュータ可読記憶媒体。
［Ｃ６２］
フィルタ係数の前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記１つが８つの係数を備え、
前記２次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の１つが７つの係数を備える
［Ｃ５９］に記載のコンピュータ可読記憶媒体。
［Ｃ６３］
前記プロセッサに、
前記２次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの１つまたは複数を識別する１つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
命令をさらに備える、［Ｃ５９］に記載のコンピュータ可読記憶媒体。
［Ｃ６４］
前記コンピュータ可読記憶媒体がビデオ符号化プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記プロセッサに、
符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
を行わせる命令をさらに備える、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
［Ｃ６５］
前記コンピュータ可読記憶媒体がビデオ復号プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記プロセッサに、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
を行わせる命令をさらに備える、［Ｃ５０］に記載のコンピュータ可読記憶媒体。
【図１】
0005805787.tif 000015
【図２】
0005805787.tif 000016
【図３】
0005805787.tif 000017
【図４】
0005805787.tif 000018
【図５】
0005805787.tif 000019
【図６】
0005805787.tif 000020
【図７】
0005805787.tif 000021
【図８】
0005805787.tif 000022
【図９】
0005805787.tif 000023
【図１０】
0005805787.tif 000024
【図１１】
0005805787.tif 000025
【図１２】
0005805787.tif 000026