(57)【要約】ビデオコーダが、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定するように構成される技法が説明されている。ビデオコーダはさらに、参照バッファ中の該数の参照サンプルに対応する複数の値を生成するようにさらに構成される。ビデオコーダはさらに、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成するように構成される。ビデオコーダはさらに、予測情報に基づいて、ビデオデータのブロックを再構築するように構成される。【選択図】図１５
2019530351.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータのブロックを処理する方法であって、
補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定することと、
前記参照バッファ中の前記数の参照サンプルに対応する複数の値を生成することと、
前記補間フィルタおよび前記複数の値を使用して、イントラ予測のための予測情報を生成することと、
前記予測情報に基づいて、前記ビデオデータのブロックを再構築することと、
を備える、方法。
【請求項２】
前記ビデオデータのブロックは、ビデオデータのＭｘＮブロックであり、前記参照サンプルの数を決定することは、
前記参照サンプルの数が２＊（Ｍ＋Ｎ）＋１よりも大きいと決定すること、
を備える、請求項１に記載の方法。
【請求項３】
前記参照サンプルの数を決定することは、
２＊（Ｍ＋Ｎ）＋１からしきい値分だけ前記参照サンプルの数を、前記ビデオデータのブロックの行と列との両方に沿って拡張すること、
を備える、請求項２に記載の方法。
【請求項４】
前記補間フィルタの前記１つまたは複数の特性は、前記補間フィルタにおけるフィルタタップの数を備え、前記参照サンプルの数を決定することは、
前記補間フィルタにおける前記フィルタタップの数に基づいて、前記しきい値を決定すること、
を備える、請求項３に記載の方法。
【請求項５】
前記補間フィルタの前記１つまたは複数の特性は、前記補間フィルタのイントラ予測方向を備え、前記参照サンプルの数を決定することは、
前記補間フィルタの前記イントラ予測方向を使用して、前記しきい値を決定すること、
を備える、請求項３に記載の方法。
【請求項６】
２＊（Ｍ＋Ｎ）＋１から前記しきい値分だけ拡張された少なくとも１つの値を使用して、線形モデルの線形パラメータを導くことと、
前記線形パラメータに基づいて、前記ビデオデータのブロックについてのクロマサンプルを推測することと、
をさらに備える、請求項３に記載の方法。
【請求項７】
２＊（Ｍ＋Ｎ）＋１から前記しきい値分だけ拡張された少なくとも１つの値を使用して、予想ブロックを生成すること、
をさらに備える、請求項３に記載の方法。
【請求項８】
２＊（Ｍ＋Ｎ）＋１から前記しきい値分だけ拡張された少なくとも１つの値を使用して、予測されたＤＣ値を予測すること、
をさらに備える、請求項３に記載の方法。
【請求項９】
前記参照バッファについての前記複数の値を生成することは、隣接する再構築された画像サンプルを使用して、前記複数の値のうちの１つまたは複数の値を満たすことを備える、請求項１に記載の方法。
【請求項１０】
前記参照バッファについての前記複数の値を生成することは、前記参照バッファにおける利用可能な参照サンプル値から前記複数の値のうちの１つまたは複数の値を埋めることを備える、請求項１に記載の方法。
【請求項１１】
前記参照バッファについての前記複数の値を生成することは、前記参照バッファにおける利用可能な参照サンプル値から前記複数の値のうちの１つまたは複数の値を導くことを備える、請求項１に記載の方法。
【請求項１２】
前記ビデオデータのブロックを再構築することは、
前記予測情報を使用して、前記ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定することと、
前記コーディングユニットについての残差データを決定することと、
前記残差データの対応するサンプルと前記コーディングユニットについての前記予測ブロックとを合計することによって、前記コーディングユニットのコーディングブロックを再構築することと、
を備える、請求項１に記載の方法。
【請求項１３】
前記ビデオデータのブロックを再構築することは、
前記予測情報を使用して、前記ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定することと、
前記コーディングユニットについての前記残差データを、残差データが前記コーディングユニットのコーディングブロックと前記コーディングユニットについての前記予測ブロックとの間の差分を示すように、決定することと、
前記コーディングユニットについての前記残差データを１つまたは複数の変換ブロックに分割することと、
１つまたは複数の係数ブロックを生成するために、前記１つまたは複数の変換ブロックに変換を適用することと、
前記１つまたは複数の係数ブロックにおける係数を量子化することと、
を備える、請求項１に記載の方法。
【請求項１４】
ビデオデータのブロックを処理するための装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定することと、
前記参照バッファ中の前記数の参照サンプルに対応する複数の値を生成することと、
前記補間フィルタおよび前記複数の値を使用して、イントラ予測のための予測情報を生成することと、
前記予測情報に基づいて、前記ビデオデータのブロックを再構築することと、
を行うように構成された１つまたは複数のプロセッサと
を備える、装置。
【請求項１５】
前記ビデオデータのブロックは、ビデオデータのＭｘＮブロックであり、前記参照サンプルの数を決定するために、前記１つまたは複数のプロセッサは、
前記参照サンプルの数が２＊（Ｍ＋Ｎ）＋１よりも大きいと決定するように構成される、請求項１４に記載の装置。
【請求項１６】
前記参照サンプルの数を決定するために、前記１つまたは複数のプロセッサは、
２＊（Ｍ＋Ｎ）＋１からしきい値分だけ前記参照サンプルの数を、前記ビデオデータのブロックの行と列との両方に沿って拡張するように構成される、請求項１５に記載の装置。
【請求項１７】
前記補間フィルタの前記１つまたは複数の特性は、前記補間フィルタにおけるフィルタタップの数を備え、前記参照サンプルの数を決定するために、前記１つまたは複数のプロセッサは、
前記補間フィルタにおける前記フィルタタップの数に基づいて、前記しきい値を決定するように構成される、請求項１６に記載の装置。
【請求項１８】
前記補間フィルタの前記１つまたは複数の特性は、前記補間フィルタのイントラ予測方向を備え、前記参照サンプルの数を決定するために、前記１つまたは複数のプロセッサは、
前記補間フィルタの前記イントラ予測方向を使用して、前記しきい値を決定するように構成される、請求項１６に記載の装置。
【請求項１９】
前記１つまたは複数のプロセッサは、
２＊（Ｍ＋Ｎ）＋１から前記しきい値分だけ拡張された少なくとも１つの値を使用して、線形モデルの線形パラメータを導くことと、
前記線形パラメータに基づいて、前記ビデオデータのブロックについてのクロマサンプルを推測することと、
を行うように構成される、請求項１６に記載の装置。
【請求項２０】
前記１つまたは複数のプロセッサは、
２＊（Ｍ＋Ｎ）＋１から前記しきい値分だけ拡張された少なくとも１つの値を使用して、予想ブロックを生成するように構成される、請求項１６に記載の装置。
【請求項２１】
前記１つまたは複数のプロセッサは、
２＊（Ｍ＋Ｎ）＋１から前記しきい値分だけ拡張された少なくとも１つの値を使用して、予測されたＤＣ値を予測するように構成される、請求項１６に記載の装置。
【請求項２２】
前記参照バッファについての前記複数の値を生成するために、前記１つまたは複数のプロセッサは、隣接する再構築された画像サンプルを使用して、前記複数の値のうちの１つまたは複数の値を満たすように構成される、請求項１４に記載の装置。
【請求項２３】
前記参照バッファについての前記複数の値を生成するために、前記１つまたは複数のプロセッサは、前記参照バッファにおける利用可能な参照サンプル値から前記複数の値のうちの１つまたは複数の値を埋めるように構成される、請求項１４に記載の装置。
【請求項２４】
前記参照バッファについての前記複数の値を生成するために、前記１つまたは複数のプロセッサは、前記参照バッファにおける利用可能な参照サンプル値から前記複数の値のうちの１つまたは複数の値を導くように構成される、請求項１４に記載の装置。
【請求項２５】
前記ビデオデータのブロックを再構築するために、前記１つまたは複数のプロセッサは、
前記予測情報を使用して、前記ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定することと、
前記コーディングユニットについての残差データを決定することと、
前記残差データの対応するサンプルと前記コーディングユニットについての前記予測ブロックとを合計することによって、前記コーディングユニットのコーディングブロックを再構築することと、
を行うように構成される、請求項１４に記載の装置。
【請求項２６】
前記ビデオデータのブロックを再構築するために、前記１つまたは複数のプロセッサは、
前記予測情報を使用して、前記ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定することと、
前記コーディングユニットについての残差データを、前記残差データが前記コーディングユニットのコーディングブロックと前記コーディングユニットについての前記予測ブロックとの間の差分を示すように、決定することと、
前記コーディングユニットについての前記残差データを１つまたは複数の変換ブロックに分割することと、
１つまたは複数の係数ブロックを生成するために、前記１つまたは複数の変換ブロックに変換を適用することと、
前記１つまたは複数の係数ブロックにおける係数を量子化することと、
を行うように構成される、請求項１４に記載の装置。
【請求項２７】
前記装置は、カメラ、コンピュータ、モバイルデバイス、ブロードキャストリシーバデバイス、またはセットトップボックスのうちの１つまたは複数を備える、請求項１４に記載の装置。
【請求項２８】
前記装置は、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス、
のうちの少なくとも１つを備える、請求項１４に記載の装置。
【請求項２９】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたと、１つまたは複数のプロセッサに、
補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定することと、
前記参照バッファ中の前記数の参照サンプルに対応する複数の値を生成することと、
前記補間フィルタおよび前記複数の値を使用して、イントラ予測のための予測情報を生成することと、
前記予測情報に基づいて、前記ビデオデータのブロックを再構築することと、
を行わせる、非一時的コンピュータ可読記憶媒体。
【請求項３０】
ビデオデータを処理するための装置であって、
補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定するための手段と、
前記参照バッファ中の前記数の参照サンプルに対応する複数の値を生成するための手段と、
前記補間フィルタおよび前記複数の値を使用して、イントラ予測のための予測情報を生成するための手段と、
前記予測情報に基づいて、前記ビデオデータのブロックを再構築するための手段と、
を備える、装置。
【発明の詳細な説明】
【関連出願】
【０００１】
[0001]本願は、２０１６年９月２８日付で出願された米国仮出願第６２／４０１，０６７号の利益を主張し、この内容全体が、参照により本明細書に組み込まれている。
【技術分野】
【０００２】
[0002]本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力（Digital video capabilities）は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲーム機、セルラ式または衛星無線電話、いわゆる「スマートフォン」、ビデオ電話会議デバイス、ビデオストリーミングデバイス等を含む、幅広い範囲のデバイス中に組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンスドビデオコーディング（ＡＶＣ）、ＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ）規格、およびそのような規格の拡張版によって定義されている規格に説明されているもののような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに内在する冗長性を低減または取り除くために、空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（即ち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）、および／またはコーディングノードとも称され得る、ビデオブロックに分割され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対して空間予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対して空間予測を、または他の参照ピクチャ中の参照サンプルに対して時間予測を使用し得る。空間または時間予測は結果として、コーディングされるべきブロックについての予測ブロック（predictive block）をもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表現する。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコーディングされるブロックと予測ブロックとの間の差分を示す残差データにしたがって符号化される。イントラコーディングされるブロックは、イントラコーディングモードおよび残差データにしたがって符号化される。さらなる圧縮のために、残差データはピクセルドメインから変換ドメインに変換され得、その結果、残差変換係数が生じ、該残差変換係数はその後量子化され得る。
【発明の概要】
【０００５】
[0005]一般に本開示は、イントラ予測と併せて使用される補間フィルタリングに関する技法を説明する。本明細書で説明される１つまたは複数の技法は、ＨＥＶＣの拡張版またはビデオコーディング規格の次世代版といったアドバンスドビデオコーデックのコンテキストで使用され得る。
【０００６】
[0006]一例では、本開示は、ビデオデータのブロックを処理する方法を説明し、該方法は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定することを含む。方法はさらに、参照バッファ中の該数の参照サンプルに対応する複数の値を生成することを含む。方法はさらに、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成することを含む。方法はさらに、予測情報に基づいて、ビデオデータのブロックを再構築することを含む。
【０００７】
[0007]一例では、本開示は、ビデオデータを記憶するように構成されたメモリと、１つまたは複数のプロセッサとを含むビデオデータのブロックを処理するための装置を説明する。１つまたは複数のプロセッサは、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定するように構成される。１つまたは複数のプロセッサは、参照バッファ中の該数の参照サンプルに対応する複数の値を生成するように構成される。１つまたは複数のプロセッサは、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成するように構成される。１つまたは複数のプロセッサは、予測情報に基づいて、ビデオデータのブロックを再構築するように構成される。
【０００８】
[0008]一例では、本開示は、命令を記憶する非一時的コンピュータ可読記憶媒体を説明し、該命令は、実行されると、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定させる。命令はさらに、１つまたは複数のプロセッサに、参照バッファ中の該数の参照サンプルに対応する複数の値を生成させる。命令はさらに、１つまたは複数のプロセッサに、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成させる。命令はさらに、１つまたは複数のプロセッサに、予測情報に基づいて、ビデオデータのブロックを再構築させる。
【０００９】
[0009]一例では、本開示は、ビデオデータのブロックを処理するための装置を説明し、それは、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定するための手段を含む。装置はさらに、参照バッファ中の該数の参照サンプルに対応する複数の値を生成するための手段を含む。装置はさらに、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成するための手段を含む。装置はさらに、予測情報に基づいて、ビデオデータのブロックを再構築するための手段を含む。
【００１０】
[0010]本開示の１つまたは複数の態様の詳細は、添付の図面および以下の説明において述べられる。本開示において説明される技法の他の特徴、目的、および利点が、説明、図面、および請求項から明らかになるだろう。
【図面の簡単な説明】
【００１１】
【図１】本開示で説明される１つまたは複数の技法を利用し得る例となるビデオ符号化および復号システムを例示するブロック図である。
【図２】１６ｘ１６ブロックについてのイントラ予測の例である。
【図３】例となるイントラ予測モードを示す概念図である。
【図４】例となるｐｌａｎａｒイントラ予測モードを示す概念図である。
【図５】ａｎｇｕｌａｒ予測モードに基づく双線形補間の例を示す概念図である。
【図６】イントラ予測において使用される例となる参照サンプルを示す概念図である。
【図７】ａｎｇｕｌａｒイントラ予測のための例となる正および負の予測方向を示す概念図である。
【図８】ａｎｇｕｌａｒイントラ予測についての例となる参照サンプルマッピングプロセスを示す概念図である。
【図９】他の例となるイントラ予測モードを示す概念図である。
【図１０】ａｎｇｕｌａｒ予測モードに基づく例となる４タップ補間の例を示す概念図である。
【図１１】境界ロケーションにおける例となる４タップ補間を示す概念図である。
【図１２Ａ】成分間線形予測モデル予測モードのための線形予測パラメータの導出に使用されるクロマサンプルのロケーションを示す概念図である。
【図１２Ｂ】成分間線形予測モデル予測モードのための線形予測パラメータの導出に使用されるルーマサンプルのロケーションを示す概念図である。
【図１３】本開示で説明される１つまたは複数の技法を実装し得る例となるビデオエンコーダを例示するブロック図である。
【図１４】本開示で説明される１つまたは複数の技法を実装し得る例となるビデオデコーダを例示するブロック図である。
【図１５】本開示の第１の例となるコーディング方法を例示するフローチャートである。
【図１６】本開示の第２の例となるコーディング方法を例示するフローチャートである。
【図１７】本開示の第３の例となるコーディング方法を例示するフローチャートである。
【発明を実施するための形態】
【００１２】
[0029]一般に本開示は、ビデオコーディングにおけるイントラ予測のための補間フィルタに関する技法を説明する。補間フィルタは、ＨＥＶＣの拡張版またはビデオコーディング規格の次世代版といったアドバンスドビデオコーデックのコンテキストで使用され得る。
【００１３】
[0030]ビデオエンコーダは、ビデオエンコーダからビデオデコーダへの出力に適した形態のビデオデータの残差ブロックを生成し得る。ビデオデコーダは、補間フィルタを使用して予測ブロックを生成し、残差ブロックおよび予測ブロックを使用してビデオデータのコーディングブロックを生成し得る。ビデオエンコーダからビデオデコーダに送信されるデータの量が低減されるように、残差ブロックを表現するために使用されるデータの量を低減することが望ましい。一般に、補間フィルタの精度が増加すると、残差ブロックを表現するためのビデオエンコーダからビデオデコーダに送信されるデータの量は減少する。
【００１４】
[0031]ビデオコーディングでは、４タップ補間フィルタが、参照サンプルバッファに記憶された参照サンプルを使用し得る。いくつかの技法では、ＭｘＮブロックについての参照サンプルバッファは、イントラ予測のために２＊（Ｍ＋Ｎ）＋１個の参照サンプルを含み得る。（たとえば、４タップに対して）より長いタップフィルタ、たとえば６タップ、８タップ、または別のより長いタップフィルタは、４タップ補間フィルタと比較して、コーディングパフォーマンスをさらに改善し得る。しかしながら、そのようなより長いタップ補間フィルタは通常、４タップ補間フィルタと比較して、より多くの参照サンプルを取得する際の複雑性に起因して、ビデオコーディングのためには実装されない。
【００１５】
[0032]加えて、ブロック境界近くに配置される参照ピクセルについて、ビデオエンコーダおよびデコーダは、ある特定の補間フィルタのための参照サンプルバッファに記憶された参照サンプルの範囲外の（即ち利用可能でない）参照サンプルにアクセスし得る。範囲外の参照ピクセルを順応させるために、いくつかの技法は、ビデオエンコーダおよび／またはビデオデコーダが利用可能でない参照サンプルに関する近隣参照値を使用するクリッピングオペレーション（clipping operation）を実行することを含み得、これは、結果的に参照サンプルバッファに記憶された参照サンプルの範囲外の参照サンプルを生じさせないより少ないタップを有する補間フィルタと比較して、複雑性が加わり得る。
【００１６】
[0033]さらには、補間フィルタリングのためのいくつかの技法は、丸めオペレーションを実行するイントラ参照サンプルマッピングプロセスを含み得る。しかしながら、丸めオペレーションは、予測された方向に沿って予測誤差を提示し得、これにより結果として生じる残差ブロックに誤差を加える。
【００１７】
[0034]イントラ予測のために静的な数（たとえば、２＊（Ｍ＋Ｎ）＋１のような固定の数）の参照サンプルを含むＭｘＮブロックについての参照サンプルバッファに依存するのではなく、ビデオコーダ（たとえば、ビデオデコーダ、ビデオエンコーダ等）は、画像ブロック予測に使用される補間フィルタの１つまたは複数の特性に順応する、動的な（たとえば適応可能または修正可能な）数の参照サンプルを含む参照サンプルバッファを生成し得る。このように、動的な数の参照サンプルを使用するビデオコーダは、静的な数（たとえば、２＊（Ｍ＋Ｎ）＋１個）の参照サンプルを使用するビデオコーダと比較して、より長いタップフィルタを許容する参照サンプルの数を選択し得る。さらに、動的な数の参照サンプルを使用するビデオコーダは、静的な数（たとえば、２＊（Ｍ＋Ｎ）＋１個）の参照サンプルを使用するビデオコーダと比較して、クリッピングオペレーションの数を低減または消去するように、参照サンプルの数を選択し得る。さらに、動的な数の参照サンプルを使用するビデオコーダは、丸めオペレーション(rounding operation)を実行するイントラ参照サンプルマッピングプロセスを低減または消去するように、参照サンプルを選択し得、これにより、静的な数（たとえば、２＊（Ｍ＋Ｎ）＋１個）の参照サンプルを使用するビデオコーダと比較して、結果として生じる残差ブロックに対する誤差を低減する。
【００１８】
[0035]ブロック、スライス、タイル、またはピクチャに単一の補間フィルタを適用するのではなく、ビデオコーダは、ブロック、スライス、タイル、またはピクチャの各々について１つの補間フィルタを選択し得る。このように、マルチプル補間フィルタ（a multiple interpolations filters）を使用するビデオコーダは、全ブロック、スライス、タイル、またはピクチャについて単一の補間フィルタを使用するビデオコーダと比較して、より効率的なより長いタップの補間フィルタの使用を許すために、より多くの参照サンプルを取得する際の複雑性に基づいて、補間フィルタを選択し得る。
【００１９】
[0036]参照値を導くために最も近い隣接参照を使用するのではなく、ビデオコーダは、値を導くために、隣接参照サンプルに補間フィルタを適用し得る。このように、補間フィルタを適用するビデオコーダは、参照値を導くために、最も近い隣接参照を使用するビデオコーダと比較して、結果として生じる残差ブロックの誤差を低減し得る。
【００２０】
[0037]図１は、本開示の技法を利用し得る例となるビデオ符号化および復号システム１０を例示するブロック図である。図１で示されているように、システム１０は、宛先デバイス１４によって後に復号されるべき符号化されたビデオデータを提供するソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（即ちラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、タブレットコンピュータ、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲーム機、ビデオストリーミングデバイス、または同様のものを含む、幅広いデバイスの何れも備え得る。いくつかのケースでは、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。したがって、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信デバイスであり得る。ソースデバイス１２は、例となるビデオコーディングデバイス、より具体的には例となるビデオ符号化デバイス（即ち、ビデオデータを符号化するためのデバイス）である。宛先デバイス１４は、例となるビデオコーディングデバイス、より具体的には例となるビデオ復号デバイス（即ち、ビデオデータを復号するためのデバイス）である。本明細書で使用される場合、ビデオコーダは、ビデオデコーダ（たとえば、ビデオ復号デバイス）、ビデオエンコーダ（たとえば、ビデオ符号化デバイス）、または別のビデオコーディングデバイスを指し得る。
【００２１】
[0038]図１の例では、ソースデバイス１２は、ビデオソース１８、ビデオデータを記憶するように構成された記憶媒体１９、ビデオエンコーダ２０、および出力インターフェース２４を含む。宛先デバイス１４は、入力インターフェース２６、符号化されたビデオデータを記憶するように構成された記憶媒体２８、ビデオデコーダ３０、およびディスプレイデバイス３２を含む。他の例では、ソースデバイス１２および宛先デバイス１４は、他のコンポーネントまたは配列を含む。たとえば、ソースデバイス１２は、外部のカメラのような外部のビデオソースからビデオデータを受信し得る。同様に、宛先デバイス１４は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェース接続し得る。
【００２２】
[0039]図１の例示されているシステム１０は一例に過ぎない。ビデオデータを処理するための技法は、何れのデジタルビデオ符号化および／または復号デバイスによっても実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるけれども、本技法は、通常「ＣＯＤＥＣ」と称されるビデオエンコーダ／デコーダによっても実行され得る。ソースデバイス１２および宛先デバイス１４は単に、ソースデバイス１２が宛先デバイス１４への送信のためのコーディングされたビデオデータを生成するようなコーディングデバイスの例に過ぎない。いくつかの例では、ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２および宛先デバイス１４の各々がビデオ符号化および復号コンポーネントを含むような実質的に対称的な形でオペレートし得る。したがってシステム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオ電話のために、ソースデバイス１２と宛先デバイス１４との間の一方向または二方向ビデオ送信をサポートし得る。
【００２３】
[0040]ソースデバイス１２のビデオソース１８は、ビデオカメラのようなビデオキャプチャデバイス、以前にキャプチャされたビデオを保有するビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ処理されたビデオの組合せを生成し得る。ソースデバイス１２は、ビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体（たとえば、記憶媒体１９）を備え得る。本開示で説明されている技法は、ビデオコーディング全般に適用可能であり得、ワイヤレスおよび／または有線アプリケーションに適用され得る。各ケースでは、キャプチャされた、事前キャプチャされた、またはコンピュータ処理されたビデオは、ビデオエンコーダ２０によって符号化され得る。出力インターフェース２４は、符号化されたビデオ情報をコンピュータ可読媒体１６に出力し得る。
【００２４】
[0041]宛先デバイス１４は、コンピュータ可読媒体１６を介して、復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることが可能な何れのタイプの媒体またはデバイスも備え得る。いくつかの例では、コンピュータ可読媒体１６は、ソースデバイス１２がリアルタイムに符号化されたビデオデータを直接宛先デバイス１４に送信することを可能にする通信媒体を備える。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格にしたがって変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理的な伝送線といった何れのワイヤレスまたは有線通信媒体も備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークといったパケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするのに役立ち得る何れの他の機器も含み得る。宛先デバイス１４は、符号化されたビデオデータおよび復号されたビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体を備え得る。
【００２５】
[0042]いくつかの例では、符号化されたデータは、出力インターフェース２４から記憶デバイスに出力され得る。同様に、符号化されたデータは、記憶デバイスから入力インターフェースによってアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または非揮発性メモリ、あるいは符号化されたビデオデータを記憶するためのあらゆる他の適したデジタル記憶媒体といった様々な分散型または局所的にアクセスされるデータ記憶媒体の何れも含み得る。さらなる例では、記憶デバイスは、ファイルサーバ、またはソースデバイス１２によって生成された符号化されたビデオを記憶し得る別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイスから、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶すること、およびその符号化されたビデオデータを宛先デバイス１４に送信することが可能な何れのタイプのサーバでもあり得る。例となるファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ：network attached storage）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、符号化されたビデオデータに、インターネット接続を含むあらゆる規格データ接続を通じてアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル（たとえばＷｉ−Ｆｉ接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデム等）、またはその両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００２６】
[0043]本技法は、無線テレビブロードキャスト、ケーブルテレビ送信、衛星テレビ送信、ＨＴＴＰを介した動的適応型ストリーミング（ＤＡＳＨ：dynamic adaptive streaming over HTTP）のようなインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションといった様々なマルチメディアアプリケーションの何れもサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオ電話といったアプリケーションをサポートするために、一方向または二方向ビデオ送信をサポートするように構成され得る。
【００２７】
[0044]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたは有線ネットワーク送信といった一時的な媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体といった記憶媒体（つまり非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、ソースデバイス１２から符号化されたビデオデータを受信し、たとえばネットワーク送信を介して、該符号化されたビデオデータを宛先デバイス１４に提供し得る。同様に、ディスクスタンピング設備（disc stamping facility）のような媒体製造設備（medium production facility）のコンピューティングデバイスは、ソースデバイス１２から符号化されたビデオデータを受信し、該符号化されたビデオデータを保有するディスクを製造し得る。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むように理解され得る。
【００２８】
[0045]宛先デバイス１４の入力インターフェース２６は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ブロックおよび他のコーディングされたユニット、たとえばピクチャグループ（ＧＯＰ）の特性および／または処理を記述するシンタックス要素を含む、ビデオエンコーダ２０のビデオエンコーダ２０によって定義され、ビデオデコーダ３０によっても使用されるシンタックス情報を含み得る。記憶媒体２８は、入力インターフェース２６によって受信される符号化されたビデオデータ（たとえば、ビットストリーム）のような符号化されたビデオデータを記憶するように構成され得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスといった様々なディスプレイデバイスの何れも備え得る。
【００２９】
[0046]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらのあらゆる組合せといった、様々な適したエンコーダ回路またはデコーダ回路の何れとしても実装され得る。本技法がソフトウェアにおいて部分的に実装されるとき、デバイスは、適した非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアにおいて該命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれ得、エンコーダまたはデコーダのどちらも、それぞれのデバイスにおいて組み合わされたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。
【００３０】
[0047]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、既存または将来的な規格のようなビデオコーディング規格にしたがってオペレートし得る。例となるビデオコーディング規格は、限定されないが、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４ビジュアル、および（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）ＩＴＵ−Ｔ  Ｈ．２６４を含み、そのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）およびマルチビュービデオコーディング（ＭＶＣ：Multi-View Video Coding）拡張版も含む。加えて、新たなビデオコーディング規格、即ち高効率ビデオコーディング（ＨＥＶＣ）あるいはＩＴＵ−Ｔ  Ｈ．２６５（その範囲およびスクリーンコンテンツコーディング拡張版を含む）と、３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）と、マルチビュー拡張（ＭＶ−ＨＥＶＣ）と、スケーラブル拡張（ＳＨＶＣ）とが、ＩＴＵ−Ｔ  ＶＣＥＧ（Video Coding Experts Group）およびＩＳＯ／ＩＥＣ  ＭＰＥＧ（Motion Picture Experts Group）のＪＣＴ−ＶＣ（Joint Collaboration Team on Video Coding）およびＪＣＴ−３Ｖ（Joint Collaboration Team on 3D Video Coding Extension Development）によって近年開発されてきた。以下、ＨＥＶＣ  ＷＤと称される最新のＨＥＶＣドラフト仕様書は、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。
【００３１】
[0048]いくつかの例では、ビデオエンコーダ２０は、マルチプル補間フィルタから１つの補間フィルタを選択し、該補間フィルタを使用して、ビデオデータのブロックを再構築するための予測情報を生成するように構成され得る。たとえば、ビデオエンコーダ２０は、マルチプルフィルタのうちの他のフィルタと比較して、最大量の利用可能な参照サンプルを参照サンプルバッファから使用し、参照サンプルバッファに含まれない参照サンプルは何れも使用しないだろうフィルタを選択し得る。同様に、ビデオデコーダ３０は、マルチプル補間フィルタから１つの補間フィルタを選択し、該補間フィルタを使用して、ビデオデータのブロックを再構築するための予測情報を生成するように構成され得る。たとえば、ビデオデコーダ３０は、マルチプルフィルタのうちの他のフィルタと比較して、最大量の利用可能な参照サンプルを参照サンプルバッファから使用し、参照サンプルバッファに含まれない参照サンプルは何れも使用しないだろうフィルタを選択し得る。
【００３２】
[0049]より具体的には、たとえば、ビデオエンコーダ２０は、ビデオブロックについて、ターゲット補間フィルタタイプおよびターゲット補間フィルタタップを決定するように構成され得る。たとえば、ビデオエンコーダ２０は、ビデオブロックについてブロックの高さおよび／または幅に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオエンコーダ２０は、ビデオブロックの形状に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオエンコーダ２０は、ビデオブロックの面積サイズ（area size）に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオエンコーダ２０は、イントラ予測モードに基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオエンコーダ２０は、隣接復号情報（たとえば、隣接ブロックの再構築されたサンプル値）に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。何れのケースでも、ビデオエンコーダ２０は、ビデオブロックについてターゲット補間フィルタタイプおよびターゲット補間フィルタタップに対応する１つの補間フィルタを選択し、該選択された補間フィルタを使用して、ビデオブロックを再構築するための予測情報を生成し得る。
【００３３】
[0050]同様に、たとえば、ビデオデコーダ３０は、ビデオブロックについて、ターゲット補間フィルタタイプおよびターゲット補間フィルタタップを決定するように構成され得る。たとえば、ビデオデコーダ３０は、ビデオブロックについてブロックの高さおよび／または幅に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオデコーダ３０は、ビデオブロックの形状に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオデコーダ３０は、ビデオブロックの面積サイズに基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオデコーダ３０は、イントラ予測モードに基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。いくつかの事例では、ビデオデコーダ３０は、隣接復号情報（たとえば、隣接ブロックの再構築されたサンプル値）に基づいて、ターゲット補間フィルタタイプおよび／またはターゲット補間フィルタタップを決定するように構成され得る。何れのケースでも、ビデオデコーダ３０は、ビデオブロックについてターゲット補間フィルタタイプおよびターゲット補間フィルタタップに対応する１つの補間フィルタを選択し、該選択された補間フィルタを使用して、ビデオブロックを再構築するための予測情報を生成し得る。
【００３４】
[0051]ビデオエンコーダ２０は、単一のビデオブロックに異なるフィルタを適用するように構成され得る。たとえば、ビデオエンコーダ２０は、ビデオブロックの第１の部分（たとえば、サブブロック）についてマルチプル補間フィルタから第１の補間フィルタを選択し、ビデオブロックの第２の部分（たとえば、サブブロック）についてマルチプル補間フィルタから第２の補間フィルタを選択するように構成され得、ここで、第１の補間フィルタと第２の補間フィルタとは異なる。たとえば、ビデオエンコーダ２０が参照サンプルバッファに含まれる参照サンプルを使用して４タップ補間フィルタを適用し得るとき、および参照サンプルバッファが６タップ補間フィルタについて少なくとも１つの参照サンプルを含まないとき、ビデオエンコーダ２０は、ビデオブロックの第１の部分（たとえば、サブブロック）についてマルチプル補間フィルタから４タップ補間フィルタを選択するように構成され得る。この例では、ビデオエンコーダ２０が参照サンプルバッファに含まれる参照サンプルを使用して６タップ補間フィルタを適用し得るとき、ビデオエンコーダ２０は、ビデオブロックの第２の部分（たとえば、サブブロック）についてマルチプル補間フィルタから６タップ補間フィルタを選択するように構成され得る。ビデオエンコーダ２０は予想ブロック（prediction blocks）を決定し得、ここで、予想ブロックを決定することは、ビデオブロックの第１の部分に第１の補間フィルタを適用すること、およびビデオブロックの第２の部分に第２の補間フィルタを適用することを含む。
【００３５】
[0052]同様に、ビデオデコーダ３０は、単一のビデオブロックに異なるフィルタを適用するように構成され得る。たとえば、ビデオデコーダ３０は、ビデオブロックの第１の部分（たとえば、サブブロック）についてマルチプル補間フィルタから第１の補間フィルタを選択し、ビデオブロックの第２の部分（たとえば、サブブロック）についてマルチプル補間フィルタから第２の補間フィルタを選択するように構成され得、ここで、第１の補間フィルタと第２の補間フィルタとは異なる。たとえば、ビデオデコーダ３０が参照サンプルバッファに含まれる参照サンプルを使用して４タップ補間フィルタを適用し得るとき、および参照サンプルバッファが６タップ補間フィルタについて少なくとも１つの参照サンプルを含まないとき、ビデオデコーダ３０は、ビデオブロックの第１の部分（たとえば、サブブロック）についてマルチプル補間フィルタから４タップ補間フィルタを選択するように構成され得る。この例では、ビデオデコーダ３０が参照サンプルバッファに含まれる参照サンプルを使用して６タップ補間フィルタを適用し得るとき、ビデオデコーダ３０は、ビデオブロックの第２の部分（たとえば、サブブロック）についてマルチプル補間フィルタから６タップ補間フィルタを選択するように構成され得る。ビデオデコーダ３０は予想ブロックを決定し得、ここで、予想ブロックを決定することは、ビデオブロックの第１の部分に第１の補間フィルタを適用すること、およびビデオブロックの第２の部分に第２の補間フィルタを適用することを含む。
【００３６】
[0053]いくつかの例では、ビデオエンコーダ２０は、拡張参照サンプルについての値を導き、該拡張参照サンプルについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成するように構成され得る。同様に、ビデオデコーダ３０は、拡張参照サンプルについての値を導き、該拡張参照サンプルについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成するように構成され得る。
【００３７】
[0054]より具体的には、たとえば、ビデオエンコーダ２０は、拡張参照サンプルバッファのための拡張参照サンプルを生成するために、参照サンプルバッファに含まれる参照サンプルに第１のフィルタを適用するように構成され得、ここで、該拡張参照サンプルバッファは、参照サンプルバッファからの参照サンプルおよび拡張参照サンプルを含む。この例では、ビデオエンコーダ２０は、ビデオデータのブロックを再構築するための予測情報を生成するために、拡張参照サンプルバッファに含まれる１つまたは複数の参照サンプルに第２のフィルタを適用し得る。同様に、たとえば、ビデオデコーダ３０は、拡張参照サンプルバッファのための拡張参照サンプルを生成するために、参照サンプルバッファに含まれる参照サンプルに第１のフィルタを適用するように構成され得、ここで、該拡張参照サンプルバッファは、参照サンプルバッファからの参照サンプルおよび拡張参照サンプルを含む。この例では、ビデオデコーダ３０は、ビデオデータのブロックを再構築するための予測情報を生成するために、拡張参照サンプルバッファに含まれる１つまたは複数の参照サンプルに第２のフィルタを適用し得る。
【００３８】
[0055]ビデオエンコーダ２０は、拡張参照サンプルバッファについての値を生成し、該拡張参照サンプルバッファについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成するように構成され得る。同様に、ビデオデコーダ３０は、拡張参照サンプルバッファについての値を生成し、該拡張参照サンプルバッファについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成するように構成され得る。
【００３９】
[0056]より具体的には、たとえば、ビデオエンコーダ２０は、参照サンプルバッファに含まれる参照サンプルに対して補完的である、拡張参照サンプルバッファのための１つまたは複数の参照サンプルを生成し得る。いくつかの例では、ビデオエンコーダ２０は、補間フィルタのフィルタタイプおよび／またはフィルタタップにしたがって、１つまたは複数の参照サンプルを生成し得る。言い換えると、たとえば、ビデオエンコーダ２０は、補間フィルタによって適用されるべき参照サンプルは全て、拡張参照サンプルバッファから抽出可能であるように、１つまたは複数の参照サンプルを生成し得る。
【００４０】
[0057]同様に、たとえば、ビデオデコーダ３０は、参照サンプルバッファに含まれる参照サンプルに対して補完的である拡張参照サンプルバッファのための１つまたは複数の参照サンプルを生成し得る。いくつかの例では、ビデオデコーダ３０は、補間フィルタのフィルタタイプおよび／またはフィルタタップにしたがって、１つまたは複数の参照サンプルを生成し得る。言い換えると、たとえば、ビデオデコーダ３０は、補間フィルタによって適用されるべき参照サンプルは全て、拡張参照サンプルバッファから抽出可能であるように、１つまたは複数の参照サンプルを生成し得る。
【００４１】
[0058]ＨＥＶＣおよび他のビデオコーディングの仕様では、ビデオシーケンスは通常、一連のピクチャを含む。ピクチャは「フレーム」とも称され得る。ピクチャは、ＳＬ、ＳＣｂ、およびＳＣｒで表される３つのサンプルアレイを含み得る。ＳＬは、ルーマサンプルの二次元アレイ（即ちブロック）である。ＳＣｂは、Ｃｂ色差サンプルの二次元アレイである。ＳＣｒは、Ｃｒ色差サンプルの二次元アレイである。色差サンプルは、本明細書では「クロマ」サンプルとも称され得る。他の事例では、ピクチャはモノクロであり得、ルーマサンプルのアレイのみを含み得る。
【００４２】
[0059]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０は、ビデオデータのピクチャのブロックを符号化し得る。ビデオエンコーダ２０は、ビットストリームに、ビデオブロックの符号化表現を含め得る。たとえば、ＨＥＶＣでは、ピクチャの符号化表現を生成するために、ビデオエンコーダ２０は、コーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、１つまたは複数のコーディングツリーブロック（ＣＴＢ）を備え得、１つまたは複数のコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。たとえば、ＣＴＵの各々は、ルーマサンプルの１つのコーディングツリーブロック、クロマサンプルの２つの対応するコーディングツリーブロック、および該コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロのピクチャまたは３つの別個の色平面（color plane）を有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロック、および該コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。コーディングツリーブロックは、ＮｘＮサンプルブロックであり得る。ＣＴＵは、「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）とも称され得る。シンタックス構造は、ゼロか、またはビットストリーム中に指定された順序で一緒に存在するより多くのシンタックス要素として定義され得る。ＣＴＢのサイズは、（厳密には、８ｘ８ＣＴＢサイズはサポートされ得るが）ＨＥＶＣメインプロファイルでは１６ｘ１６〜６４ｘ６４の範囲に及び得る。
【００４３】
[0060]ＨＥＶＣでは、１つのスライスは、ラスター走査順に連続して並べられた整数の数のＣＴＵを含む。したがって、ＨＥＶＣでは、スライス中の最大コーディングユニットは、コーディングツリーブロック（ＣＴＢ）と呼ばれる。
【００４４】
[0061]ＨＥＶＣでは、ピクチャのコーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、ＣＴＵのコーディングツリーブロックに対して四分木分割を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分け得、これにより名前が「コーディングツリーユニット」なのである。コーディングブロックは、Ｎ×Ｎサンプルブロックである。コーディングユニット（ＣＵ）は、１つまたは複数のコーディングブロック、および該１つまたは複数のコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。たとえば、ＣＵは、ルーマサンプルアレイ、ＣｂサンプルアレイおよびＣｒサンプルアレイを有するピクチャの、ルーマサンプルの１つのコーディングブロックおよびクロマサンプルの２つの対応するコーディングブロック、ならびに該コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロック、および該コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。したがって、ＣＴＢは四分木を保有し得、そのノードはＣＵである。
【００４５】
[0062]さらに、ビデオエンコーダ２０は、ＣＵを符号化し得る。たとえば、ＣＵを符号化するために、ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予想ブロックに分割し得る。予想ブロックは、同じ予測が適用される矩形（即ち、正方形または非正方形）のサンプルブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、ＣＵの１つまたは複数の予想ブロック、および該１つまたは複数の予想ブロックを予測するために使用されるシンタックス構造を備え得る。たとえば、ＰＵは、ルーマサンプルの予想ブロック、クロマサンプルの２つの対応する予想ブロック、および該予想ブロックを予測するために使用されるシンタックス構造を備え得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＰＵは、単一の予想ブロック、および該予想ブロックを予測するために使用されるシンタックス構造を備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵの予想ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ予想ブロック）についての予測ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）を生成し得る。
【００４６】
[0063]ＨＥＶＣでは、各ＣＵは１つのモードでコーディングされ、該モードはイントラモードまたはインターモードのどちらかであり得るだろう。ＣＵがインターコーディングされる（即ち、インターモードが適用される）とき、ＣＵは２つまたは４つのＰＵにさらに分割され得るか、またはさらなる分割が適用されないときはたった１つのＰＵになり得る。１つのＣＵに２つのＰＵが存在するとき、該２つのＰＵは、ハーフサイズの矩形であり得るか、またはＣＵの１／４サイズまたは３／４サイズの２つの矩形サイズであり得る。
【００４７】
[0064]ＣＵがインターコーディングされるとき、１セットの動き情報がＰＵ毎に存在する。加えて、各ＰＵは、該１セットの動き情報を導くために、一意のインター予測モードを用いてコーディングされる。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵを含むピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ＣＵがイントラコーディングされるとき、２Ｎｘ２ＮおよびＮｘＮが唯一の（the only）許容可能なＰＵ形状であり、各ＰＵ内では、単一のイントラ予測モードがコーディングされる（一方で、クロマ予測モードがＣＵレベルではシグナリングされる）。ＮｘＮイントラＰＵ形状は、現在のＣＵサイズがシーケンスパラメータセット（ＳＰＳ）で定義されている最小ＣＵサイズに等しいときにのみ許容される。
【００４８】
[0065]ビデオエンコーダ２０は、ＣＵについての１つまたは複数の残差ブロックを生成し得る。たとえばビデオエンコーダ２０は、ＣＵについてルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つにおけるルーマサンプルと、ＣＵの元のルーマコーディングブロックにおける対応するサンプルとの間の差分を示す。加えてビデオエンコーダ２０は、ＣＵについてのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つにおけるＣｂサンプルと、ＣＵの元のＣｂコーディングブロックにおける対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵについてのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つにおけるＣｒサンプルと、ＣＵの元のＣｒコーディングブロックにおける対応するサンプルとの間の差分を示し得る。
【００４９】
[0066]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロックを１つまたは複数の変換ブロックに分解し得る。たとえば、ビデオエンコーダ２０は、ＣＵの残差ブロックを１つまたは複数の変換ブロックに分解するために四分木分割を使用し得る。変換ブロックは、同じ変換が適用される矩形（たとえば、正方形または非正方形）のサンプルブロックである。ＣＵの変換ユニット（ＴＵ）は、１つまたは複数の変換ブロックを備え得る。たとえば、ＴＵは、ルーマサンプルの変換ブロック、クロマサンプルの２つの対応する変換ブロック、および該変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがってＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックを有し得る。ＴＵのルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロのピクチャまたは３つの別個の色平面を有するピクチャでは、ＴＵは、単一の変換ブロック、および該変換ブロックのサンプルを変換するために使用されるシンタックス構造を備え得る。
【００５０】
[0067]ビデオエンコーダ２０は、ＴＵについての係数ブロックを生成するために、ＴＵの変換ブロックに１つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の二次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２０は、ＴＵについてのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵについてのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００５１】
[0068]いくつかの例では、ビデオエンコーダ２０は、変換ブロックへの変換の適用を省略する。そのような例では、ビデオエンコーダ２０は、変換係数と同じ方法で残差サンプル値が扱われる得ることを扱い得る。したがって、ビデオエンコーダ２０が変換の適用を省略する例では、変換係数および係数ブロックについての以下の考察が、残差サンプルの変換ブロックに適用可能であり得る。
【００５２】
[0069]係数ブロックを生成した後、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は一般に、変換係数を表現するために使用されるデータの量を出来る限り低減するために変換係数が量子化されるプロセスを指し、これは、さらなる圧縮を提供する。いくつかの例では、ビデオエンコーダ２０は量子化を省略する。ビデオエンコーダ２０が係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素を生成し得る。ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素のうちの１つまたは複数をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を実行し得る。
【００５３】
[0070]ビデオデコーダ２０は、符号化されたビデオデータを含むビットストリームを出力し得る。たとえば、ビットストリームは、ビデオデータのコーディングされたピクチャの表現を形成するビットのシーケンスおよび関連付けられたデータを備え得る。したがってビットストリームは、ビデオデータの符号化表現を備える。いくつかの例では、コーディングされたピクチャの表現は、ブロックの符号化表現を含み得る。したがって、ビデオエンコーダ２０は、ビットストリームにおいて、ブロックの符号化表現におけるブロックの変換係数をシグナリングし得る。いくつかの事例では、ビデオエンコーダ２０は、ブロックの各変換係数をシグナリングするために１つまたは複数のシンタックス要素を使用し得る。
【００５４】
[0071]ビットストリームは、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのシーケンスを備え得る。ＮＡＬユニットは、ＮＡＬユニットにおけるデータのタイプのインジケーション、および必要に応じてエミュレーション防止ビットが点在している生バイトシーケンスペイロード（ＲＢＳＰ）の形態でそのデータを保有するバイトを含むシンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み得、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化される整数の数のバイトを保有するシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰはゼロビットを含む。
【００５５】
[0072]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するためにビットストリームを解析し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、ビデオエンコーダ２０によって実行されるプロセスと概ね互恵的で（generally reciprocal）得る。たとえば、ビデオデコーダ３０は、現在ＣＵのＰＵについての予測ブロックを決定するために、ＰＵの動きベクトルを使用し得る。加えて、ビデオデコーダ３０は、現在ＣＵのＴＵの係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵの変換ブロックを再構築するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在ＣＵのＰＵについての予測ブロックのサンプルを、現在ＣＵのＴＵの変換ブロックの対応するサンプルに加えることによって、現在ＣＵのコーディングブロックを再構築し得る。ピクチャの各ＣＵについてのコーディングブロックを再構築することによって、ビデオデコーダ３０は、ピクチャを再構築し得る。
【００５６】
[0073]イントラ予測が以下で論じられる。いくつかの例では、イントラ予測モードは、ＨＥＶＣおよび／またはＨＥＶＣ拡張版のうちの１つまたは複数において定義され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、空間的に隣接する再構築された画像サンプルを使用して画像ブロック予測を実行し得る。１６×１６画像ブロックについてのイントラ予測の例が、図２で示されている。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、（正方形２０２の）１６ｘ１６画像ブロックを、上および左の隣接する再構築されたサンプル（参照サンプル）によって（矢印２０４によって示されているような）選択された予測方向に沿って予測し得る。
【００５７】
[0074]ＨＥＶＣは、ルーマブロックのイントラ予測について、図３で例示されるようなｐｌａｎａｒモード、ＤＣモード、および３３個のａｎｇｕｌａｒモードを含む３５個のモードを定義する。ＨＥＶＣにおいて定義されているイントラ予測の３５個のモードは、表１においてインデックス付けされている。
【表１】
2019530351.tif 000003
【００５８】
[0075]通常最も頻繁に使用されるイントラ予測モードであるｐｌａｎａｒモードでは、予測サンプルは、図４で示されているように生成される。Ｎ×Ｎブロックについてｐｌａｎａｒ予測を実行するために、（ｘ，ｙ）に位置する各サンプルｐｘｙについて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、双線形フィルタ（bilinear filter）を用いて、４つの特定の隣接する再構築されたサンプル、即ち参照サンプルを使用して予測情報を計算し得る。４つの参照サンプルは、右上の再構築されたサンプルＴＲ、左下の再構築されたサンプルＢＬ、現在のサンプルの、同じＴによって表されている列（ｒｘ，−１）およびＬによって表されている行（ｒ−１，ｙ）に位置する２つの再構築されたサンプルを含み得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の通り、ｐｌａｎａｒモードを公式化し得る。
pxy = (N-x-1) L + (N-y-1) T + x・TR + y・BL
【００５９】
[0076]図４で示されているように、ＤＣモードでは、ビデオエンコーダ２０および／またはビデオデコーダ３０は、１つまたは複数の隣接する再構築されたサンプルの平均値で予想ブロックを満たし得る。一般に、ビデオエンコーダ２０および／またはビデオデコーダ３０は、平滑に変化する一定の画像領域をモデリングするためにｐｌａｎａｒモードとＤＣモードとの両方を適用し得る。
【００６０】
[0077]全体で３３個の異なる予測方向を含む、ＨＥＶＣにおけるａｎｇｕｌａｒイントラ予測モードについて、イントラ予測は以下の通り説明される。各所与のａｎｇｕｌａｒイントラ予測について、ビデオエンコーダ２０および／またはビデオデコーダ３０は、それにしたがってイントラ予測方向を識別し得る。たとえば、図３にしたがうと、イントラモード１０は、純水平（pure horizontal）の予測方向に対応し、イントラモード２６は、純垂直（pure vertical）の予測方向に対応する。特定のイントラ予測方向を前提とすると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予想ブロックの各サンプルについて、図５における例で示されているように、予測方向に沿って隣接する再構築されたサンプルの行および／または列にそれぞれの座標（ｘ，ｙ）を投影し得る。（ｘ，ｙ）が２つの隣接する再構築されたサンプルＬとＲとの間の分数位置に投影されるとすると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、２タップの双線形補間フィルタを使用して、（ｘ，ｙ）についての予測情報を計算し得、それは以下の通り公式化される。
pxy = (1- α)・L + α・R.
【００６１】
[0078]浮動小数点オペレーション(floating point operation)を避けるため、ＨＥＶＣでは、ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の通り、整数演算を使用して上記計算を概算し得る。
pxy = ( (32- a)・L + a・R + 16 )>>5
上記式では、ａは３２＊αに等しい整数である。
【００６２】
[0079]ＨＥＶＣで使用される参照サンプルは、サンプルサークル６０２によって図６で示される。図６で示されているように、コーディングされているビデオブロックのサンプルは、正方形６０４によって示されている。これに対して、サークル６０２は、隣接する参照サンプルを示す。本明細書で使用される場合、サンプルは、ピクセル値の成分（たとえば、ルーマサンプル、または２つのクロマサンプルのうちの１つ）を指し得る。
【００６３】
[0080]いくつかの例では、ＨｘＷブロックについて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接する上の行と左の列との両方について、Ｗ＋Ｈ＋１個の参照サンプルを使用し得る。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルバッファ中に該参照サンプルを満たし得、該参照サンプルバッファは、全体で２＊（Ｗ＋Ｈ）＋１個の参照サンプルを保有し得る。３５個のａｎｇｕｌａｒモードの定義にしたがうと、該参照サンプルはサンプルサークル６０２からのものであり得、これは、該参照サンプルが利用可能であることを意味する。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接する再構築された参照サンプルから参照サンプルを導き得る。たとえば、再構築された参照サンプルの一部が利用可能でないとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接する利用可能な再構築された参照サンプルを使用して、利用可能でない再構築された参照サンプルの一部を埋め得る（たとえば、直接コピーし得る）。
【００６４】
[0081]加えて、ＨＥＶＣにおける３３個のａｎｇｕｌａｒイントラ予測方向は、２つのグループとして分類され得、１つは正方向であり、もう一方は負方向である。正方向（たとえば、図７におけるモード２〜１０およびモード２６〜３４）では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルの片側（one side）（たとえば、上の行または左の列）のみを使用し得る。負方向（たとえば、図７におけるモード１１〜２５）では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルの両側（たとえば、上の行と左の列との両方）を使用し得る。図７は、非破線を使用して負方向を、および破線を使用して正方向を例示している。
【００６５】
[0082]ビデオエンコーダ２０および／またはビデオデコーダ３０が負予測方向を適用するとき、ＨＥＶＣでは、参照マッピングプロセスが、以下で説明される通り適用され得る。図８で示されているように、イントラ予測方向にしたがうと、ビデオエンコーダ２０および／またはビデオデコーダ３０は、左列の隣接するサンプル８０４Ａ〜８０４Ｅを使用して、上の行の左側に伸びている（extended）拡張参照サンプル８０２Ａ〜８０２Ｅ（集合的に、拡張参照サンプル８０２）を導き得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、左列の隣接するサンプル８０４Ａを使用してサンプル８０２Ａを、左列の隣接するサンプル８０４Ｂを使用してサンプル８０２Ｂを、そしてこの後に続くものも同様に（and so forth）導き得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、全ての参照サンプル８０２を使用してイントラ予測プロセスを実行し得る。
【００６６】
[0083]より具体的には、拡張参照サンプル８０２を導くために、拡張参照サンプル８０２のうちの各拡張参照サンプルについて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、その座標を左列の隣接するサンプルにマッピングし得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、拡張参照サンプル８０２Ａを座標８０６Ａに、拡張参照サンプル８０２Ｂを座標８０６Ｂに、拡張参照サンプル８０２Ｃを座標８０６Ｃに、拡張参照サンプル８０２Ｄを座標８０６Ｄに、および拡張参照サンプル８０２Ｅを座標８０６Ｅにマッピングし得る。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在の拡張参照サンプルの値として最も近いサンプルの値を使用し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、座標８０６Ａがサンプル８０４Ｂ〜８０４Ｅよりもサンプル８０４Ａに近いとき、拡張参照サンプル８０２Ａの値としてサンプル８０４Ａを使用し得る。しかしながら、いくつかのケースでは、マッピングされた位置は、分数位置が左列の隣接するサンプルにあることを示し得、最も近いサンプルを使用することは、予測方向に沿って何らかの予測誤差を表現し得る。言い換えると、たとえば、座標８０６Ａは、拡張参照サンプル８０４Ａと８０４Ｂとの間にある分数位置を示し、これは結果として、サンプル８０４Ａの値が拡張参照サンプル８０２Ａの値として使用されるときに拡張参照サンプル８０２Ａに予測誤差を生じさせ得る。
【００６７】
[0084]ＪＥＭにおけるイントラ予測モードが以下で論じられる。近年、ＩＴＵ−Ｔ  ＶＣＥＧ（Ｑ６／１６）およびＩＳＯ／ＩＥＣ  ＭＰＥＧ（ＪＴＣ１／ＳＣ２９／ＷＧ１１）は、現在のＨＥＶＣ規格（スクリーンコンテンツコーディングおよび高ダイナミックレンジコーディングのための、それの現在の拡張版および近い未来の拡張版を含む）の圧縮能力を著しく上回る圧縮能力をもつ将来的なビデオコーディング技術の標準化を求める潜在的なニーズを研究し続けている。該団体は、この領域の専門家によって提案された圧縮技術設計を評価するために、ＪＶＥＴ（Joint Video Exploration Team）として知られている共同の試みでこの調査活動に関して協力し合っている。テストモデル、即ちJoint Exploration Modelが、この目的でＪＶＥＴによって開発されており、最新のＪＥＭバージョン、即ちＪＥＭ−３．０における新しいアルゴリズムに関する説明が、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/3_Geneva/wg11/JVET-C1001-v3. zipから入手可能である。上記文書は、ＨＥＶＣの能力を超えた潜在的な拡張ビデオコーディング技術として、ＩＴＵ−Ｔ  ＶＣＥＧおよびＩＳＯ／ＩＥＣ  ＭＰＥＧのＪＶＥＴ（Joint Video Exploration Team）による共同テストモデル研究中であるコーディング特徴を説明している。情報は、「HM reference software」https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-14.0/から入手され得る。
【００６８】
[0085]拡張されたイントラ予測方向が以下で論じられる。ＪＥＭ−３．０における１つのイントラ関連コーディングツールは、図９で示されているような、６７個のイントラ予測モードの導入である。ＨＥＶＣにおけるイントラ予測モードと比較すると、図９における破線によって示されている３２個の追加のイントラ予測角度がある。イントラモードインデックス０および１は、ＨＥＶＣにおける同じｐｌａｎａｒおよびＤＣモードを指し、イントラモードインデックス２〜６６は、異なるイントラ予測角度を指すが一方で、１８、３４、および５０は、純水平予測、対角予測、および純垂直予測をそれぞれ示す。６７個のイントラ予測モードでは、より細かなイントラ予測精度が達成され得る。
【００６９】
[0086]イントラ予測のための４タップ補間フィルタが以下で論じられる。イントラ予想ブロックを生成するために、２タップ双線形補間を使用する代わりに、ＪＥＭ−３．０では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、１／３２ピクセル（pel）精度をもつ４タップ補間フィルタを使用し得る。本明細書で使用される場合、１／３２ピクセルは、１／３２のサンプル間距離を使用することを指す。垂直ライクな（vertical-like）ａｎｇｕｌａｒイントラ予測方向（たとえば、イントラモードインデックス＞＝３４）では、ブロック幅が８よりも大きい場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。そうでなければ、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップキュービック補間フィルタを使用し得る。水平ライクな（horizontal-like）ａｎｇｕｌａｒイントラ予測方向（たとえば、イントラモードインデックス＜３４）では、ブロック高さが６よりも大きい場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。そうでなければ、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップキュービック補間フィルタを使用し得る。例示的な４タップキュービック補間および４タップガウス補間フィルタは以下の通り示される。
Short g_aiIntraCubicFilter[32][4]=
{
{ 0, 256, 0, 0 }, // 整数位置
{ -3, 252, 8, -1 }, // 1/32位置
{ -5, 247, 17, -3 }, // 2/32位置
{ -7, 242, 25, -4 }, // 3/32位置
{ -9, 236, 34, -5 }, // 4/32位置
{ -10, 230, 43, -7 }, // 5/32位置
{ -12, 224, 52, -8 }, // 6/32位置
{ -13, 217, 61, -9 }, // 7/32位置
{ -14, 210, 70, -10 }, // 8/32位置
{ -15, 203, 79, -11 }, // 9/32位置
{ -16, 195, 89, -12 }, // 10/32位置
{ -16, 187, 98, -13 }, // 11/32位置
{ -16, 179, 107, -14 }, // 12/32位置
{ -16, 170, 116, -14 }, // 13/32位置
{ -17, 162, 126, -15 }, // 14/32位置
{ -16, 153, 135, -16 }, // 15/32位置
{ -16, 144, 144, -16 }, // 2分の1ピクセル位置
{ -16, 135, 153, -16 }, // 17/32位置
{ -15, 126, 162, -17 }, // 18/32位置
{ -14, 116, 170, -16 }, // 19/32位置
{ -14, 107, 179, -16 }, // 20/32位置
{ -13, 98, 187, -16 }, // 21/32位置
{ -12, 89, 195, -16 }, // 22/32位置
{ -11, 79, 203, -15 }, // 23/32位置
{ -10, 70, 210, -14 }, // 24/32位置
{ -9, 61, 217, -13 }, // 25/32位置
{ -8, 52, 224, -12 }, // 26/32位置
{ -7, 43, 230, -10 }, // 27/32位置
{ -5, 34, 236, -9 }, // 28/32位置
{ -4, 25, 242, -7 }, // 29/32位置
{ -3, 17, 247, -5 }, // 30/32位置
{ -1, 8, 252, -3 }, // 31/32位置
};
Short g_aiIntraGaussFilter[32][4]=
{
{ 47, 161, 47, 1 }, // 整数位置
{ 43, 161, 51, 1 }, // 1/32位置
{ 40, 160, 54, 2 }, // 2/32位置
{ 37, 159, 58, 2 }, // 3/32位置
{ 34, 158, 62, 2 }, // 4/32位置
{ 31, 156, 67, 2 }, // 5/32位置
{ 28, 154, 71, 3 }, // 6/32位置
{ 26, 151, 76, 3 }, // 7/32位置
{ 23, 149, 80, 4 }, // 8/32位置
{ 21, 146, 85, 4 }, // 9/32位置
{ 19, 142, 90, 5 }, // 10/32位置
{ 17, 139, 94, 6 }, // 11/32位置
{ 16, 135, 99, 6 }, // 12/32位置
{ 14, 131, 104, 7 }, // 13/32位置
{ 13, 127, 108, 8 }, // 14/32位置
{ 11, 123, 113, 9 }, // 15/32位置
{ 10, 118, 118, 10 }, // 2分の1ピクセル位置
{ 9, 113, 123, 11 }, // 17/32位置
{ 8, 108, 127, 13 }, // 18/32位置
{ 7, 104, 131, 14 }, // 19/32位置
{ 6, 99, 135, 16 }, // 20/32位置
{ 6, 94, 139, 17 }, // 21/32位置
{ 5, 90, 142, 19 }, // 22/32位置
{ 4, 85, 146, 21 }, // 23/32位置
{ 4, 80, 149, 23 }, // 24/32位置
{ 3, 76, 151, 26 }, // 25/32位置
{ 3, 71, 154, 28 }, // 26/32位置
{ 2, 67, 156, 31 }, // 27/32位置
{ 2, 62, 158, 34 }, // 28/32位置
{ 2, 58, 159, 37 }, // 29/32位置
{ 2, 54, 160, 40 }, // 30/32位置
{ 1, 51, 161, 43 }, // 31/32位置
};
【００７０】
[0087]４タップ補間プロセスを使用するイントラ予測プロセスが図１０で図示されている。図１０の例では、予想ブロック中の各サンプルについて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予想ブロック中のそれぞれのサンプルが、２つの参照サンプルＰ１とＰ２との間の分数位置αを指していると想定し得る。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の通りにこのサンプルについての予測情報を計算し得る。
【００７１】
[0088]いくつかの例では、分数位置αおよび補間フィルタ（たとえば、４タップキュービックフィルタまたは４タップガウスフィルタ）を前提とすると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｆ０、ｆ１、ｆ２、ｆ３としてフィルタ係数を選択し得る。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の通りこのサンプルについての予測情報を計算し得る。
P(x,y) = ( f0 * P0 + f1 * P1 + f2 * P2 + f3 * P3 + r ) / W
【００７２】
[0089]上記式では、Ｐ０−Ｐ３参照サンプルであり、ｒは丸めオフセットであり、Ｗは正規化係数（normalization factor）であり、これはｆ０＋ｆ１＋ｆ２＋ｆ３に近くなければならない。上記では、４タップキュービックフィルタおよび４タップガウスフィルタを前提とすると、正規化係数は２５６であり得る。
【００７３】
[0090]ＪＥＭにおける現在の４タップ補間フィルタ設計では、いくつかの境界のケースについて、いくつかのフィルタタップにおける参照サンプルは利用可能でないことがある。たとえば、図１１で示されているように、矢印によって表されているイントラ予測角度を前提とすると、４つのタップフィルタ｛ｆ０，ｆ１，ｆ２，ｆ３｝を使用してサンプルｘの予測情報を生成するために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルｐ０、ｐ１、ｐ２、およびｐ３を使用し得る。しかしながら、現在のＪＥＭ設計にしたがうと、参照サンプル１１０２のみが参照サンプルバッファにおいて利用可能であり、右端のもの（塗り潰されたサークル１１０４によって表されているｐ３）は利用可能でない。このケースでは、ビデオエンコーダ２０および／またはビデオデコーダ３０は、たとえば以下の式を使用して、ｐ０〜ｐ２のみが補間プロセスにおいて使用されるように、参照サンプル座標に対してクリッピングオペレーションを実行し得る。
【００７４】
x = f0*p0 + f1*p1 + f2*p2 + f3*p2
[0091]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルバッファの範囲外の何れのサンプルにアクセスすることも避けるために、補間プロセス中、クリッピングオペレーションを使用し得る。しかしながら、このことは、Ｎ＞２である間、Ｎタップ補間フィルタを実行する複雑性を加え得る。ＨＥＶＣにおいて使用されるような２タップ補間フィルタでは、そのような問題は、参照サンプル１１０２のみが使用されるために存在しない。
【００７５】
[0092]図１２Ａは、成分間線形予測モデル予測モードのための線形予測パラメータの導出に使用されるクロマサンプルのロケーションを示す概念図である。図１２Ｂは、成分間線形予測モデル予測モードのための線形予測パラメータの導出に使用されるルーマサンプルのロケーションを示す概念図である。
【００７６】
[0093]成分間線形モデル予測モードが以下で論じられる。補数間の（cross complement）冗長性は、ＹＣｂＣｒ色空間において著しく低減されるけれども、３つの色成分同士の（between）相関関係は依然として存在し得る。様々な方法が、相関関係をさらに低減させることによってビデオコーディングパフォーマンスを向上させるために研究されてきた。
【００７７】
[0094]４：２：０クロマビデオコーディングでは、線形モデル（ＬＭ）予測モードと名付けられた方法が、ＨＥＶＣ規格の開発中に、よく研究されてきた。たとえば、Matsuo, Shohei, Seishi Takamura, and Hirohisa Jozawa, “Improved intra angular prediction by DCT-based interpolation filter.” In Signal Processing Conference (EUSIPCO), 2012 Proceedings of the 20th European, pp. 1568-1572. IEEE, 2012は、例となるイントラａｎｇｕｌａｒ予測を提供している。
【００７８】
[0095]ＬＭ予測モードでは、ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の通り、線形モデルを使用することによって、同じブロックの再構築されたルーマサンプルに基づいてクロマサンプルを予測し得る。
【数１】
2019530351.tif 000004
【００７９】
[0096]上記式では、
【数２】
2019530351.tif 000005
は、ブロック中のクロマサンプルの予測を表現し、
【数３】
2019530351.tif 000006
は、同じブロックのダウンサンプリングされた再構築されたルーマサンプルを表現する。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在ブロック周辺の元となる（causal）再構築されたサンプルから線形パラメータαおよびβを導き得る。いくつかの例では、パラメータαおよびβは、成分間線形予測モデル予測モードのための線形予測パラメータである。図１２Ａの例では、クロマブロック１２００は、ＮｘＮのサイズを有する。このように、この例では、ｉとｊとの両方が、範囲［０，Ｎ］内にあり得る。
【００８０】
[0097]ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在ブロック周辺の隣接する再構築されたルーマサンプルとクロマサンプルとの間の回帰誤差を最小限にすることによって、上記式においてパラメータαおよびβを導き得る。
【数４】
2019530351.tif 000007
【００８１】
[0098]ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下の通り、パラメータαおよびβを解き得る。
【数５】
2019530351.tif 000008
【００８２】
[0099]上記式では、ｘｉは、ダウンサンプリングされた再構築されたルーマ参照サンプルであり、ｙｉは、再構築されたクロマ参照サンプルであり、Ｉは、参照サンプルの量である。ターゲットＮ×Ｎクロマブロックでは、左と上両方の元となるサンプルが利用可能であるとき、関連する参照サンプル数の総数Ｉは、２Ｎに等しい。図１２Ｂの例では、ルーマブロック１２１０は、図１２Ａのターゲットクロマブロック１２００について２Ｎｘ２Ｎのサイズを有する。左または上の元となるサンプルのみが利用可能であるとき、関連する参照サンプル数の総数Ｉは、Ｎに等しい、
[0100]要約すると、一例では、ビデオエンコーダ２０および／またはビデオデコーダ３０がＬＭ予測モード適用するとき、以下のステップが順番に呼び出され得る：（ａ）ビデオエンコーダ２０および／またはビデオデコーダ３０は隣接するルーマサンプルをダウンサンプリングし得る、（ｂ）ビデオエンコーダ２０および／またはビデオデコーダ３０は、線形パラメータ（即ち、αおよびβ）を導き得る、および（ｃ）ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在のルーマブロックをダウンサンプリングし、該ダウンサンプリングされたルーマブロックおよび線形パラメータから予測を導き得る。
【００８３】
[0101]現在のＪＥＭ設計では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップ補間フィルタを使用し得るが、より長いタップフィルタを使用することは、複雑性の負担があまりない状態でビデオエンコーダ２０および／またはビデオデコーダ３０のコーディングパフォーマンスをさらに向上させ得る。
【００８４】
[0102]いくつかの境界のケースでは、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在の参照サンプルの範囲外にあるいくつかの参照サンプル位置（たとえば、図６におけるサンプルサークル６０２、図１１の塗り潰されたサークル１１０４によって表されているｐ３等）にアクセスし得、クリッピングオペレーションが、知られていないメモリにアクセスするのを避けるために使用され得る。該例では、クリッピングオペレーションは、４タップ補間フィルタリング技法の複雑性を増大させ得る。
【００８５】
[0103] ＨＥＶＣとＪＥＭとの両方における現在の例となるイントラ予測プロセスでは、イントラ参照サンプルマッピングプロセスは、いくらかの予測誤差を必然的に与える丸めオペレーション（たとえば、最も近い整数と同一である）によって実行される。
【００８６】
[0104]Matsuo, Shohei, Seishi Takamura, and Hirohisa Jozawa, “Improved intra angular prediction by DCT-based interpolation filter,” In Signal Processing Conference (EUSIPCO), 2012 Proceedings of the 20th European, pp. 1568-1572. IEEE, 2012は、４ｘ４ブロックサイズおよび８ｘ８ブロックサイズについて４タップＤＣＴベースの補間フィルタを適用することを提案し、イントラ平滑化フィルタもまた、４タップフィルタが適用されるときにオフにされ、１６ｘ１６以上のブロックサイズについては、２タップ双線形補間フィルタが適用される。
【００８７】
[0105]２０１１年１２月６日付けで出願された米国特許出願第１３／３１２，９４６号である、Maani, Ehsan, “Interpolation filter for intra prediction of HEVC,”では、イントラ平滑化フィルタがオフであるとき４タップ補間フィルタが使用されるが、４タップ補間フィルタは、ＣＵＢＩＣ補間プロセス、ＤＣＴベースの補間プロセス、またはエルミネート補間プロセスに基づいて取得され得るだろう。
【００８８】
[0106]２０１６年６月１６日付けで出願された米国特許出願第１５／１８４，０３３号である、Zhao, “Intra Prediction and Intra Mode Coding.”では、４タップＣＵＢＩＣ補間フィルタおよび４タップガウス補間フィルタは、イントラ予測プロセスのために一緒に使用される。
【００８９】
[0107]上で言及された問題を解決するのを助けるために、以下の技法が提案される。以下の箇条書きの技法が個別に適用され得る。代わりとして、または加えて、以下で説明される技法の何れの組合せも合わせて使用され得る。
【００９０】
[0108]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラ予測のためにマルチプル補間フィルタを適用し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、１つのブロック、スライス、タイル、ピクチャ、またはそれらの組合せ内で異なる補間フィルタタップ（たとえば、長さ）を適用し得る。言い換えると、ビデオデコーダ３０は、ピクチャの第１の部分に第１の補間フィルタを適用し、ピクチャの第２の部分に、第１の補間フィルタとは異なる第２の補間フィルタを適用し得る。同様に、ビデオエンコーダ２０は、ピクチャの第１の部分に第１の補間フィルタを適用し、ピクチャの第２の部分に、第１の補間フィルタとは異なる第２の補間フィルタを適用し得る。
【００９１】
[0109]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、六次フィルタとして補間フィルタを定義し得る。本明細書で使用される場合、六次フィルタは、６つの補間フィルタタップを有する補間フィルタを指し得る。
【００９２】
[0110]いくつかの例では、マルチプル補間フィルタは、ＤＣＴベースの補間フィルタ、ガウスフィルタ、シンク補間フィルタ、および画像相関モデルを使用して導かれる補間フィルタを含み得る。
【００９３】
[0111]ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロック高さおよび／または幅、ブロック形状（たとえば、幅対高さの比率）、ブロック面積サイズ、イントラ予測モード、あるいは再構築されたサンプル値およびイントラ予測モードに限定されないが含む隣接する復号された情報に基づいて、補間フィルタタイプおよび／または補間フィルタタップ（たとえば、長さ）を選択し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロック高さおよび／または幅、ブロック形状（たとえば、幅対高さの比率）、ブロック面積サイズ、イントラ予測モード、あるいは再構築されたサンプル値およびイントラ予測モードに限定されないが含む隣接する復号された情報に基づいて、補間フィルタタイプを選択し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロック高さおよび／または幅、ブロック形状（たとえば、幅対高さの比率）、ブロック面積サイズ、イントラ予測モード、あるいは再構築されたサンプル値およびイントラ予測モードに限定されないが含む隣接する復号された情報に基づいて、補間フィルタタップ長を選択し得る。
【００９４】
[0112]言い換えると、ビデオデコーダ３０は、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。同様に、ビデオエンコーダ２０は、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。
【００９５】
[0113]いくつかの例では、２つの異なるタイプの補間フィルタ、即ちフィルタ「Ａ」およびフィルタ「Ｂ」が予め定義され得る。この例では、幅／高さ＜１／４、または幅／高さ＞１／４である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０はフィルタ「Ａ」を適用し、そうでなければ、ビデオエンコーダ２０および／またはビデオデコーダ３０はフィルタ「Ｂ」を適用する。言い換えると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロックの幅と高さの比率が予め定義された範囲内にあるとき、該ブロックについて複数の補間フィルタから第１の補間フィルタを選択し得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロックの幅と高さの比率が予め定義された範囲内にないとき、該ブロックについて複数の補間フィルタから第２の補間フィルタを選択し得る。
【００９６】
[0114]いくつかの例では、２つの異なるタイプの補間フィルタ、即ちフィルタ「Ａ」およびフィルタ「Ｂ」が予め定義され得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接する（たとえば、上および／または左の）再構築されたサンプルの変数をσ２として計算する。この例では、σ２が予め定義されたしきい値Ｔよりも小さい場合、ビデオエンコーダ２０および／またはビデオデコーダ３０はフィルタ「Ａ」を適用し、そうでなければ、ビデオエンコーダ２０および／またはビデオデコーダ３０はフィルタ「Ｂ」を適用する。言い換えると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロックについての隣接する再構築されたサンプルの変数が予め定義された値よりも小さいとき、該ブロックについて複数の補間フィルタから第１の補間フィルタを選択し得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、変数が予め定義された値よりも小さくないとき、該ブロックについて複数の補間フィルタから第２の補間フィルタを選択し得る。
【００９７】
[0115]いくつかの例では、イントラ予測方向を前提とすると、いくつかの異なるタイプの補間フィルタは予め定義されている。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予め定義されたルックアップテーブルにしたがって、いくつかの予め定義された補間フィルタのうちの１つを選択する。言い換えると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ルックアップテーブルが、ブロックについて特定の補間フィルタをイントラ予測方向に関連付けるとき、該ブロックについて複数の補間フィルタから特定の補間フィルタを選択し得る。
【００９８】
[0116]たとえば、イントラ予測が垂直ライクなイントラ予測（たとえば、ＨＥＶＣについてはモード１８〜３４、ＪＥＭ−３．０についてはモード３４〜６６等）であるとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、補間フィルタおよび／または補間フィルタタップの数（たとえば、フィルタタップ長）を選択するためにブロックの幅を使用し得る。この例では、幅が、ある特定のサイズ、たとえば８以下である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、６タップ六次補間フィルタを使用し得る。そうでなければ、この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。
【００９９】
[0117]同様に、たとえば、イントラ予測が水平ライクなイントラ予測（たとえば、ＨＥＶＣについてはモード２〜１７、ＪＥＭ−３．０についてはモード２〜３３等）であるとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、補間フィルタおよび／または補間フィルタタップの数（たとえば、フィルタタップ長）を選択するためにブロックの高さを使用し得る。この例では、高さが、ある特定のサイズ、たとえば８以下である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、６タップ六次補間フィルタを使用し得る。そうでなければ、この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。
【０１００】
[0118]いくつかの例では、補間フィルタタイプおよび／または補間フィルタタップ（たとえば、長さ）は、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに依存し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに基づいて、補間フィルタタイプを選択し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに基づいて、補間フィルタタップ長を選択し得る。
【０１０１】
[0119]いくつかの例では、現在の実例的な設計にあるように、ＭｘＮブロックのイントラ予測では、参照サンプルバッファは、２＊（Ｍ＋Ｎ）＋１個のサンプルを保有し得る。イントラ予測モードおよびブロック内の位置について、参照サンプルは、参照サンプルバッファに位置しないことがある。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、同じイントラ予測モード下の他の位置と比較して、より小さいフィルタタップ長を用いる補間を適用し得る。たとえば、ビデオデコーダ３０は、隣接する再構築された参照サンプルから１セットの参照サンプルを決定し得る。この例では、ビデオデコーダ３０は、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。たとえば、ビデオデコーダ３０は、参照サンプルバッファに位置する参照サンプルの所与のセットについて最大のフィルタタップ長を有する補間フィルタを選択し得る。
【０１０２】
[0120]同様に、たとえば、ビデオエンコーダ２０は、隣接する再構築された参照サンプルから１セットの参照サンプルを決定し得る。この例では、ビデオエンコーダ２０は、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。たとえば、ビデオエンコーダ２０は、参照サンプルバッファに位置する参照サンプルの所与のセットについて最大のフィルタタップ長を有する補間フィルタを選択し得る。
【０１０３】
[0121]いくつかの例では、イントラ予測が垂直ライクなイントラ予測であるとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、補間フィルタおよび／または補間フィルタタップの数（たとえば、フィルタタップ長）を選択するためにブロックの幅を使用し得る。該例では、幅が、ある特定のサイズ、たとえば８以下である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、６タップ六次補間フィルタを使用し得る。該例では、幅がある特定のサイズ以下でない場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。加えて、または代わりとして、イントラ予測が水平ライクなイントラ予測であるとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、補間フィルタおよび／または補間フィルタタップの数（たとえば、フィルタタップ長）を選択するためにブロックの高さを使用し得る。該例では、幅が、ある特定のサイズ、たとえば８以下である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、６タップ六次補間フィルタを使用し得る。該例では、幅がある特定のサイズ以下でない場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。フィルタタイプは、たとえば、平滑化、鮮明化（sharpening）、補間、または何れの他のフィルタタイプでもあり得る。
【０１０４】
[0122]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０が、たとえば負のイントラ予測方向について、拡張参照サンプルの値を導くために最も近い隣接する参照を使用する代わりに、イントラ参照サンプルマッピングプロセスを適用するとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、各拡張参照サンプルの値を導くために、隣接する参照サンプルにＮタップ補間フィルタを適用し得る。たとえば、ビデオデコーダ３０は、第１の補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導き得る。同様に、ビデオエンコーダ２０は、第１の補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導き得る。
【０１０５】
[0123]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラ参照サンプルマッピングプロセス中、拡張参照サンプル値を導くために４タップキュービック補間フィルタを適用し得る。たとえば、ビデオデコーダ３０は、４タップキュービック補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導き得る。同様に、ビデオエンコーダ２０は、４タップキュービック補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導き得る。
【０１０６】
[0124]いくつかの例では、参照サンプルの一部がＮタップ補間について利用可能でないとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、最も近い利用可能な参照サンプルがＮタップ補間について使用され得るように、参照サンプルロケーションに対してクリッピングオペレーションを実行し得る。たとえば、特定の拡張参照サンプルのイントラ参照サンプルマッピングについて、４タップ補間フィルタ｛ｆ０，ｆ１，ｆ２，ｆ３｝が使用される一方で、対応する参照サンプルが｛ｐ０，ｐ１，ｐ２, andｐ３｝であるがｐ０が利用可能でない場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、v = f0*p1 + f1*p1 + f2*p2 + f3*p3として補間プロセスを実行し得る。たとえば、ビデオデコーダ３０は、拡張参照サンプルについての値を導くために、最も近い利用可能な参照サンプルが拡張参照サンプルについての値を導くために使用されるように、参照サンプルのセットに対して実行されるクリッピングオペレーションを実行し得る。同様に、拡張参照サンプルについての値を導くために、ビデオエンコーダ２０は、最も近い利用可能な参照サンプルが拡張参照サンプルについての値を導くために使用されるように、参照サンプルのセットに対して実行されるクリッピングオペレーションを実行し得る。
【０１０７】
[0125]代わりとして、または加えて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、マルチプル補間フィルタに関して説明された規則にしたがって、Ｎタップ補間フィルタを選択し得る。代わりとして、または加えて、フィルタタップ長は、たとえば上記説明にあるような、ブロックサイズまたは形状に依存し得る。たとえば、ビデオデコーダ３０は、第２の補間フィルタおよび拡張参照サンプルについての値を使用して、予測情報を生成し得る。同様に、ビデオエンコーダ２０は、第２の補間フィルタおよび拡張参照サンプルについての値を使用して、予測情報を生成し得る。
【０１０８】
[0126]ＭｘＮブロックのイントラ予測では、イントラ予測のために２＊（Ｍ＋Ｎ）＋１個の参照サンプルを使用する代わりに、ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラ予測のために拡張参照サンプルバッファを適用し得る。たとえばビデオデコーダ３０は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定し得る。同様に、たとえば、ビデオエンコーダ２０は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定し得る。
【０１０９】
[0127]より具体的には、たとえば、ビデオデータのＭｘＮブロックでは、ビデオデコーダ３０は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数が２＊（Ｍ＋Ｎ）＋１より大きいと決定し得る。同様に、たとえばビデオエンコーダ２０は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数が２＊（Ｍ＋Ｎ）＋１より大きいと決定し得る。
【０１１０】
[0128]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、しきい値Ｋによって参照サンプルバッファを、参照サンプルの上の行および／または左の列に拡張し得る。たとえば、しきい値Ｋは、１、２、３、４、または別のしきい値であり得る。言い換えると、たとえば、ビデオデコーダ３０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ参照サンプルの数を、ビデオデータのブロックの行と列との両方に沿って拡張し得る。同様に、たとえば、ビデオエンコーダ２０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ参照サンプルの数を、ビデオデータのブロックの行と列との両方に沿って拡張し得る。
【０１１１】
[0129]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、フィルタタップの数Ｎによって拡張参照サンプルの数を決定し得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在のイントラ予測方向で使用されるＮタップフィルタについての全ての参照サンプルが利用可能になるように、フィルタタップの数Ｎによって拡張参照サンプルの数を決定し得る。
【０１１２】
[0130]言い換えると、たとえば、ビデオデコーダ３０は、補間フィルタにおけるフィルタタップの数に基づいてしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から該しきい値分だけ参照サンプルの数を拡張し得る。たとえば、ビデオデコーダ３０は、４タップ補間フィルタを使用するときには２（または１）のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から２（または１）だけ参照サンプルの数を拡張し得る。いくつかの事例では、ビデオデコーダ３０は、６タップ補間フィルタを使用するときには３（または２）のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から３（または２）だけ参照サンプルの数を拡張し得る。
【０１１３】
[0131]同様に、たとえば、ビデオエンコーダ２０は、補間フィルタにおけるフィルタタップの数に基づいてしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から該しきい値分だけ参照サンプルの数を拡張し得る。たとえば、ビデオエンコーダ２０は、４タップ補間フィルタを使用するときには２（または１）のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から２（または１）だけ参照サンプルの数を拡張し得る。いくつかの事例では、ビデオエンコーダ２０は、６タップ補間フィルタを使用するときには３（または２）のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から３（または２）だけ参照サンプルの数を拡張し得る。
【０１１４】
[0132]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラ予測方向によって拡張参照サンプルの数を決定し得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在のイントラ予測方向で使用されるＮタップフィルタについての全ての参照サンプルが利用可能になるように、イントラ予測方向によって、拡張参照サンプルの数を決定し得る。
【０１１５】
[0133]言い換えると、たとえば、ビデオデコーダ３０は、補間フィルタのイントラ予測方向を使用してしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ参照サンプルの数を拡張し得る。たとえば、ビデオデコーダ３０は、イントラ予測方向が３４であるときには１のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から１だけ参照サンプルの数を拡張し得る。いくつかの事例では、ビデオデコーダ３０は、６６のときには２のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から２だけ参照サンプルの数を拡張し得る。
【０１１６】
[0134]同様に、たとえば、ビデオエンコーダ２０は、補間フィルタのイントラ予測方向を使用してしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から該しきい値分だけ参照サンプルの数を拡張し得る。たとえば、ビデオエンコーダ２０は、イントラ予測方向が３４であるときには１のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から１だけ参照サンプルの数を拡張し得る。いくつかの事例では、ビデオエンコーダ２０は、６６のときには２のしきい値を決定し得、２＊（Ｍ＋Ｎ）＋１から２だけ参照サンプルの数を拡張し得る。
【０１１７】
[0135]ビデオデコーダ３０および／またはビデオエンコーダ２０は、参照バッファ中の該数の参照サンプルに対応する複数の値を生成し得る。本明細書で使用される場合、参照バッファ中の該数の参照サンプルに対応する値を生成するために、ビデオコーダは、サンプルを復号するか、サンプルを再構築するか、または別の方法で値を生成し得る。たとえば、ビデオデコーダ３０は、参照バッファ中の該数の参照サンプルに対応するサンプルを復号し得る。いくつかの例では、ビデオエンコーダ２０は、参照バッファ中の該数の参照サンプルに対応するサンプルを再構築し得る。
【０１１８】
[0136]より具体的には、たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接する再構築された画像サンプルによって参照サンプルバッファの拡張された一部を満たし得る。言い換えると、たとえば、ビデオデコーダ３０は、隣接する再構築された画像サンプルを使用して、複数の値のうちの１つまたは複数の値を埋め得る。同様に、たとえば、ビデオエンコーダ２０は、隣接する再構築された画像サンプルを使用して、複数の値のうちの１つまたは複数の値を満たし得る。
【０１１９】
[0137]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルバッファ中の利用可能な参照サンプル値から参照サンプルバッファの拡張された一部を埋める。言い換えると、たとえば、ビデオデコーダ３０は、参照バッファ中の利用可能な参照サンプル値から複数の値のうちの１つまたは複数の値を埋め得る。同様に、たとえば、ビデオエンコーダ２０は、参照バッファ中の利用可能な参照サンプル値から複数の値のうちの１つまたは複数の値を埋め得る。
【０１２０】
[0138]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ＬＭモード、ｐｌａｎａｒモード、および／またはＤＣモードについて拡張参照サンプルを使用し得る。いくつかの例では、ＬＭモードにおいて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、線形モデルのパラメータを導くために拡張参照サンプルを使用し得る。言い換えると、たとえば、ビデオデコーダ３０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、線形モデルのパラメータを導き得る。同様に、たとえば、ビデオエンコーダ２０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、線形モデルのパラメータを導き得る。
【０１２１】
[0139]いくつかの例では、ｐｌａｎａｒモードにおいて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予想ブロックを生成するために拡張参照サンプルを使用し得る。たとえば、ビデオデコーダ３０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、予想ブロックを生成し得る。言い換えると、たとえば、ビデオデコーダ３０は、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成し得る。同様に、たとえば、ビデオエンコーダ２０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、予想ブロックを生成し得る。言い換えると、たとえば、ビデオエンコーダ２０は、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成し得る。
【０１２２】
[0140]ビデオコーダは、予測情報に基づいて、ビデオデータのブロックを再構築し得る。本明細書で使用される場合、ビデオデータのブロックを再構築するために、ビデオコーダは、ビデオデータのブロックの再構築ループ、ビデオデータのブロックの復号、またはビデオデータのブロックの別の再構築を実行し得る。
【０１２３】
[0141]ビデオデコーダ３０は、予測的情報に基づいて、ビデオデータのブロックを再構築し得る。たとえば、ビデオデコーダ３０は、予測情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定し得る。この例では、ビデオデコーダ３０は、コーディングユニットについての残差データを決定し得る。この例では、ビデオデコーダ３０は、コーディングユニットについての残差データの対応するサンプルと予測ブロックとを合計することによって、コーディングユニットのコーディングブロックを再構築し得る。
【０１２４】
[0142]同様に、ビデオエンコーダ２０は、予測情報に基づいて、ビデオデータのブロックを再構築し得る。たとえば、ビデオエンコーダ２０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定し得る。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを、該残差データがコーディングユニットのコーディングブロックとコーディングユニットについての予測ブロックとの間の差分を示すように決定し得る。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを１つまたは複数の変換ブロックに分割し得る。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックを生成するために１つまたは複数の変換ブロックに変換を適用し得る。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックにおける係数を量子化し得る。
【０１２５】
[0143]いくつかの例では、ＤＣモードにおいて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、予測されたＤＣ値を予測するために拡張参照サンプルを使用し得る。言い換えると、たとえば、ビデオデコーダ３０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、予測されたＤＣ値を予測し得る。同様に、たとえば、ビデオエンコーダ２０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、予測されたＤＣ値を予測し得る。
【０１２６】
[0144]いくつかの例では、拡張された上の行の参照サンプルについて参照サンプルマッピングを実行するとき、拡張参照サンプルの各々について、イントラ予測方向を前提とすると、ビデオエンコーダ２０および／またはビデオデコーダ３０は、値を導き出すために左の列の１つまたはいくつかの参照サンプルを使用し得る。言い換えると、たとえば、ビデオデコーダ３０は、参照バッファ中の利用可能な参照サンプル値から複数の値のうちの１つまたは複数の値を導き得る。同様に、たとえば、ビデオエンコーダ２０は、参照バッファ中の利用可能な参照サンプル値から複数の値のうちの１つまたは複数の値を導き得る。しかしながら「左の列の１つまたはいくつかの参照サンプル」が参照サンプルバッファにおいて利用可能でないとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在の拡張参照サンプルについて最も近い利用可能な拡張参照サンプル値を使用し得る。
【０１２７】
[0145]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、１つの角のサンプルの代わりにより多くの参照サンプルをバッファに加え得る。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、左および／または上の参照サンプルから導かれた参照サンプル同士の間に（in between）参照サンプルを挿入し得る。挿入されたサンプルの数は、イントラ予測方向にしたがってイントラ予測を導くために使用され得るフィルタタップに依存し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、フィルタタップに基づいて挿入されたサンプルの数を決定し得、ならびに／あるいはビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラ予測方向にしたがってイントラ予測を導き得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラモード方向に基づいて、最も近い左および／または上の隣接参照から挿入されたサンプルを導き得る。加えて、または代わりとして、ビデオエンコーダ２０および／またはビデオデコーダ３０は、左および／または上の隣接するサンプルに、ある特定のタップ長のフィルタを適用し得る。該例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照バッファ中にフィルタリングされたサンプルを挿入し得る。
【０１２８】
[0146]これより以下は、ビデオエンコーダ２０および／またはビデオデコーダ３０が、六次補間フィルタが含まれたマルチプル補間フィルタを適用する実施形態を提示する。
【０１２９】
[0147]いくつかの例では、イントラ予測モードが垂直ライクなａｎｇｕｌａｒ予測モードであるとき、幅が８以下である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、６タップ六次補間フィルタを使用し得る。代わりとして、または加えて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。いくつかの例では、イントラ予測が水平ライクなイントラ予測であるとき、高さが８以下である場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、６タップ六次補間フィルタを使用し得る。代わりとして、または加えて、ビデオエンコーダ２０および／またはビデオデコーダ３０は、４タップガウス補間フィルタを使用し得る。
【０１３０】
[0148]例となる６タップ六次補間フィルタが、以下の通り示される。
Short g_aiIntraSexticFilter[32][6]=
{
{ 0, 0, 256, 0, 0, 0 }, // 0/32位置
{ 0, -4, 253, 9, -2, 0 }, // 1/32位置
{ 1, -7, 249, 17, -4, 0 }, // 2/32位置
{ 1, -10, 245, 25, -6, 1 }, // 3/32位置
{ 1, -13, 241, 34, -8, 1 }, // 4/32位置
{ 2, -16, 235, 44, -10, 1 }, // 5/32位置
{ 2, -18, 229, 53, -12, 2 }, // 6/32位置
{ 2, -20, 223, 63, -14, 2 }, // 7/32位置
{ 2, -22, 217, 72, -15, 2 }, // 8/32位置
{ 3, -23, 209, 82, -17, 2 }, // 9/32位置
{ 3, -24, 202, 92, -19, 2 }, // 10/32位置
{ 3, -25, 194, 101, -20, 3 }, // 11/32位置
{ 3, -25, 185, 111, -21, 3 }, // 12/32位置
{ 3, -26, 178, 121, -23, 3 }, // 13/32位置
{ 3, -25, 168, 131, -24, 3 }, // 14/32位置
{ 3, -25, 159, 141, -25, 3 }, // 15/32位置
{ 3, -25, 150, 150, -25, 3 }, // 16/32位置
{ 3, -25, 141, 159, -25, 3 }, // 17/32位置
{ 3, -24, 131, 168, -25, 3 }, // 18/32位置
{ 3, -23, 121, 178, -26, 3 }, // 19/32位置
{ 3, -21, 111, 185, -25, 3 }, // 20/32位置
{ 3, -20, 101, 194, -25, 3 }, // 21/32位置
{ 2, -19, 92, 202, -24, 3 }, // 22/32位置
{ 2, -17, 82, 209, -23, 3 }, // 23/32位置
{ 2, -15, 72, 217, -22, 2 }, // 24/32位置
{ 2, -14, 63, 223, -20, 2 }, // 25/32位置
{ 2, -12, 53, 229, -18, 2 }, // 26/32位置
{ 1, -10, 44, 235, -16, 2 }, // 27/32位置
{ 1, -8, 34, 241, -13, 1 }, // 28/32位置
{ 1, -6, 25, 245, -10, 1 }, // 29/32位置
{ 0, -4, 17, 249, -7, 1 }, // 30/32位置
{ 0, -2, 9, 253, -4, 0 }, // 31/32位置
};
例となる４タップガウス補間フィルタが、以下の通り示される。
Short g_aiIntraGaussFilter[32][4]=
{
{ 47, 161, 47, 1 }, // 0/32位置
{ 43, 161, 51, 1 }, // 1/32位置
{ 40, 160, 54, 2 }, // 2/32位置
{ 37, 159, 58, 2 }, // 3/32位置
{ 34, 158, 62, 2 }, // 4/32位置
{ 31, 156, 67, 2 }, // 5/32位置
{ 28, 154, 71, 3 }, // 6/32位置
{ 26, 151, 76, 3 }, // 7/32位置
{ 23, 149, 80, 4 }, // 8/32位置
{ 21, 146, 85, 4 }, // 9/32位置
{ 19, 142, 90, 5 }, // 10/32位置
{ 17, 139, 94, 6 }, // 11/32位置
{ 16, 135, 99, 6 }, // 12/32位置
{ 14, 131, 104, 7 }, // 13/32位置
{ 13, 127, 108, 8 }, // 14/32位置
{ 11, 123, 113, 9 }, // 15/32位置
{ 10, 118, 118, 10 }, // 16/32位置
{ 9, 113, 123, 11 }, // 17/32位置
{ 8, 108, 127, 13 }, // 18/32位置
{ 7, 104, 131, 14 }, // 19/32位置
{ 6, 99, 135, 16 }, // 20/32位置
{ 6, 94, 139, 17 }, // 21/32位置
{ 5, 90, 142, 19 }, // 22/32位置
{ 4, 85, 146, 21 }, // 23/32位置
{ 4, 80, 149, 23 }, // 24/32位置
{ 3, 76, 151, 26 }, // 25/32位置
{ 3, 71, 154, 28 }, // 26/32位置
{ 2, 67, 156, 31 }, // 27/32位置
{ 2, 62, 158, 34 }, // 28/32位置
{ 2, 58, 159, 37 }, // 29/32位置
{ 2, 54, 160, 40 }, // 30/32位置
{ 1, 51, 161, 43 }, // 31/32位置
};
【０１３１】
[0149]図１３は、イントラ予測中に補間フィルタを使用するために本開示の技法を実装し得る例となるビデオエンコーダ２０を例示するブロック図である。図１３は、説明の目的で提供されており、本開示において広く実証および説明されるような技法の限定とみなされるべきではない。本開示の技法は、様々なコーディング規格または方法に適用可能であり得る。概念図１〜図１３で示されている技法は、本開示の技法と共に使用され得る。
【０１３２】
[0150]図１３の例では、ビデオエンコーダ２０は、予測処理ユニット１３００、ビデオデータメモリ１３０１、残差生成ユニット１３０２、変換処理ユニット１３０４、量子化ユニット１３０６、逆量子化ユニット１３０８、逆変換処理ユニット１３１０、再構築ユニット１３１２、フィルタユニット１３１４、復号ピクチャバッファ１３１６、およびエントロピー符号化ユニット１３１８を含む。いくつかの例では、予測処理ユニット１３００は、本開示の技法のうちの１つまたは複数を実行し得る。予測処理ユニット１３００は、インター予測処理ユニット１３２０およびイントラ予測処理ユニット１３２６を含む。インター予測処理ユニット１３２０は、動き推定ユニットおよび動き補償ユニット（図示せず）を含み得る。いくつかの例では、イントラ予測処理ユニット１３２６は、本開示の技法のうちの１つまたは複数を実行し得る。
【０１３３】
[0151]イントラ予測処理ユニット１３２６は、補間フィルタユニット１３２７を含み得る。補間フィルタユニット１３２７は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定し得る。たとえば、補間フィルタユニット１３２７は、フィルタタップの数Ｎによって拡張参照サンプルの数を決定し得る。いくつかの例では、補間フィルタユニット１３２７は、イントラ予測方向によって拡張参照サンプルの数を決定し得る。
【０１３４】
[0152]補間フィルタユニット１３２７は、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。たとえば、補間フィルタユニット１３２７は、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに基づいて、補間フィルタタップ長を選択し得る。
【０１３５】
[0153]補間フィルタユニット１３２７は、第１の補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導き得る。たとえば、補間フィルタユニット１３２７は、各拡張参照サンプルの値を導くために、隣接する参照サンプルにＮタップ補間フィルタを適用し得る。
【０１３６】
[0154]ビデオデータメモリ１３０１は、ビデオエンコーダ２０のコンポーネントによって符号化されるべきビデオデータを記憶するように構成され得る。ビデオデータメモリ１３０１に記憶されたビデオデータは、たとえばビデオソース１８から取得され得る。復号ピクチャバッファ１３１６は、たとえばイントラまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用される参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１３０１および復号ピクチャバッファ１３１６は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む動的ランダムアクセスメモリ（ＤＲＡＭ）のような、様々なメモリデバイスのうちの何れによっても形成され得る。ビデオデータメモリ１３０１および復号ピクチャバッファ１３１６は、同じメモリデバイスまたは別個のメモリデバイスによって設けられ得る。様々な例において、ビデオデータメモリ１３０１は、ビデオエンコーダ２０の他のコンポーネントとオンチップであり得るか、またはそれらのコンポーネントに対してオフチップであり得る。ビデオデータメモリ１３０１は、図１の記憶媒体２０と同じまたはその一部であり得る。
【０１３７】
[0155]ビデオエンコーダ２０はビデオデータを受信する。ビデオエンコーダ２０は、ビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ）およびピクチャの対応するＣＴＢに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１３００は、ＣＴＵのＣＴＢを漸進的により小さくなる（progressively-smaller）ブロックに分けるための分割を実行し得る。より小さいブロックは、ＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１３００は、ツリー構造にしたがって、ＣＴＵに関連付けられたＣＴＢを分割し得る。
【０１３８】
[0156]ビデオエンコーダ２０は、ＣＵの符号化表現（即ち、コーディングされたＣＵ）を生成するために、ＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１３００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを分割し得る。したがって、各ＰＵは、ルーマ予想ブロックおよび対応するクロマ予想ブロックに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上で示されたように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズを指し、ＰＵのサイズは、ＰＵのルーマ予想ブロックのサイズを指し得る。特定のＣＵのサイズが２Ｎｘ２Ｎであることを想定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測のためには２Ｎｘ２ＮまたはＮｘＮのＰＵサイズを、インター予測のためには２Ｎｘ２Ｎ、２ＮｘＮ、Ｎｘ２Ｎ、ＮｘＮ、または同様の対称ＰＵサイズをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測のために、２ＮｘｎＵ、２ＮｘｎＤ、ｎＬｘ２Ｎ、およびｎＲｘ２ＮのＰＵサイズについての非対称分割をサポートし得る。
【０１３９】
[0157]インター予測処理ユニット１３２０は、ＣＵの各ＰＵに対してインター予測を実行することによって、ＰＵについての予測データを生成し得る。ＰＵについての予測データは、ＰＵの予測ブロックおよびＰＵについての動き情報を含み得る。インター予測処理ユニット１３２０は、ＰＵが、Ｉスライス中にあるか、Ｐスライス中にあるか、またはＢスライス中にあるかに依存して、ＣＵのＰＵについて異なるオペレーションを実行し得る。Ｉスライスでは、全てのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１３２０は、ＰＵに対してインター予測を実行しない。したがって、Ｉモードで符号化されるブロックでは、予測されたブロックは、同じフレーム内の前に符号化された隣接するブロックからの空間予測を使用して形成される。ＰＵがＰスライス中にある場合、インター予測処理ユニット１３２０は、ＰＵの予測ブロックを生成するために、単方向性インター予測を使用し得る。ＰＵがＢスライス中にある場合、インター予測処理ユニット１３２０は、ＰＵの予測ブロックを生成するために、単方向性または双方向性インター予測を使用し得る。
【０１４０】
[0158]イントラ予測処理ユニット１３２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵについての予測データを生成し得る。ＰＵについての予測データは、ＰＵの予測ブロックおよび様々なシンタックス要素を含み得る。イントラ予測処理ユニット１３２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実行し得る。
【０１４１】
[0159]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１３２６は、ＰＵについての予測データのマルチプルセットを生成するために、マルチプルイントラ予測モードを使用し得る。イントラ予測処理ユニット１３２６は、ＰＵについての予測ブロックを生成するために、隣接するＰＵのサンプルブロックからのサンプルを使用し得る。隣接するＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を想定して、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１３２６は、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連付けられた領域のサイズに依存し得る。
【０１４２】
[0160]予測処理ユニット１３００は、ＣＵのＰＵについての予測データを、該ＰＵについてインター予測処理ユニット１３２０によって生成された予測データ、または該ＰＵについてイントラ予測処理ユニット１３２６によって生成された予測データの中から選択し得る。いくつかの例では、予測処理ユニット１３００は、予測データのセットのレート／歪みメトリックに基づいて、ＣＵのＰＵについての予測データを選択する。選択された予測データの予測ブロックは、ここでは選択された予測ブロックと称され得る。いくつかの例では、予測処理ユニット１３００および／またはイントラ予測処理ユニット１３２６は、マルチプル補間フィルタを適用し得る。たとえば、予測処理ユニット１３００および／またはイントラ予測処理ユニット１３２６は、本明細書で説明されている技法の何れの組合せも実行し得る。より具体的には、たとえば、予測処理ユニット１３００および／またはイントラ予測処理ユニット１３２６は、補間フィルタを選択し、該補間フィルタを使用して、ビデオデータのブロックを再構築するための予測情報を生成し得る。いくつかの事例では、予測処理ユニット１３００および／またはイントラ予測処理ユニット１３２６は、拡張参照サンプルについての値を導き、該拡張参照サンプルについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成し得る。いくつか事例では、予測処理ユニット１３００および／またはイントラ予測処理ユニット１３２６は、拡張参照サンプルバッファについての値を生成し、該拡張参照サンプルバッファについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成し得る。
【０１４３】
[0161]残差生成ユニット１３０２は、ＣＵについてのコーディングブロック（たとえば、ルーマ、Ｃｂ、およびＣｒコーディングブロック）、およびＣＵのＰＵについての選択された予測ブロック（たとえば、予測ルーマ、Ｃｂ、およびＣｒブロック）に基づいて、ＣＵについての残差ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ残差ブロック）を生成し得る。たとえば、残差生成ユニット１３０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルと、ＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１４４】
[0162]変換処理ユニット１３０４は、ＣＵに関連付けられた残差ブロックをＣＵのＴＵに関連付けられた変換ブロックに分割するために四分木分割を実行し得る。したがって、ＴＵは、１つのルーマ変換ブロックおよび２つのクロマ変換ブロックに関連付けられ得る。ＣＵのＴＵのルーマおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予想ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差四分木」（ＲＱＴ）として知られている四分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１４５】
[0163]変換処理ユニット１３０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵについて変換係数ブロックを生成し得る。変換処理ユニット１３０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１３０４は、変換ブロックに、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に類似した変換を適用し得る。いくつかの例では、変換処理ユニット１３０４は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０１４６】
[0164]量子化ユニット１３０６は、係数ブロックにおける変換係数を量子化し得る。量子化プロセスは、変換係数のいくつかまたは全てに関連付けられたビット深度を低減し得る。たとえば、ｎビット変換係数は、量子化中、ｍビット変換係数に丸められ得、ここで、ｎはｍより大きい。量子化ユニット１３０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失を引き起こし得る。したがって、量子化された変換係数は、元のものより低い精度を有し得る。
【０１４７】
[0165]逆量子化ユニット１３０８および逆変換処理ユニット１３１０は、係数ブロックから残差ブロックを再構築するために、係数ブロックに逆量子化および逆変換をそれぞれ適用し得る。再構築ユニット１３１２は、ＴＵに関連付けられた再構築された変換ブロックを作り出すために、再構築された残差ブロックを、予測処理ユニット１３００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加え得る。このようにＣＵの各ＴＵについての変換ブロックを再構築することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構築し得る。
【０１４８】
[0166]フィルタユニット１３１４は、ＣＵに関連付けられたコーディングブロックにおけるブロッキングアーティファクトを低減するために、１つまたは複数のデブロッキングオペレーションを実行し得る。復号ピクチャバッファ１３１６は、フィルタユニット１３１４が再構築されたコーディングブロックに対して１つまたは複数のデブロッキングオペレーションを実行した後に、再構築されたコーディングブロックを記憶し得る。インター予測処理ユニット１３２０は、他のピクチャのＰＵに対してインター予測を実行するために、再構築されたコーディングブロックを保有する参照ピクチャを使用し得る。加えて、イントラ予測処理ユニット１３２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を実行するために、復号ピクチャバッファ１３１６中の再構築されたコーディングブロックを使用し得る。
【０１４９】
[0167]エントロピー符号化ユニット１３１８は、ビデオエンコーダ２０の他の機能的コンポーネントからデータを受信し得る。たとえば、エントロピー符号化ユニット１３１８は、量子化ユニット１３０６から係数ブロックを受信し得、予測処理ユニット１３００からシンタックス要素を受信し得る。エントロピー符号化ユニット１３１８は、エントロピー符号化されたデータを生成するためにデータに対して１つまたは複数のエントロピー符号化オペレーションを実行し得る。たとえば、エントロピー符号化ユニット１３１８は、データに対して、ＣＡＢＡＣオペレーション、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）オペレーション、Ｖ２Ｖ（variable-to-variable）長コーディングオペレーション、シンタックスベースのコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）オペレーション、確率間隔分割エントロピー（ＰＩＰＥ）コーディングオペレーション、指数ゴロム符号化オペレーション、または別のタイプのエントロピー符号化オペレーションを実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１３１８によって生成されたエントロピー符号化されたデータを含むビットストリームを出力し得る。たとえば、ビットストリームは、ＣＵについての変換係数の値を表現するデータを含み得る。
【０１５０】
[0168]図１４は、イントラ予測中に補間フィルタを使用するために本開示の技法を実装するように構成される例となるビデオデコーダ３０を例示するブロック図である。図１４は、説明の目的で提供されており、本開示で広く実証および説明されるような技法を限定するものではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストでビデオデコーダ３０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。概念図１〜図１４で示されている技法は、本開示の技法と共に使用され得る。
【０１５１】
[0169]図１４の例では、ビデオデコーダ３０は、エントロピー復号ユニット１４５０、ビデオデータメモリ１４５１、予測処理ユニット１４５２、逆量子化ユニット１４５４、逆変換処理ユニット１４５６、再構築ユニット１４５８、フィルタユニット１４６０、および復号ピクチャバッファ１４６２を含む。いくつかの例では、予測処理ユニット１４５２は、本開示の技法のうちの１つまたは複数を実行し得る。予測処理ユニット１４５２は、動き補償ユニット１４６４およびイントラ予測処理ユニット１４６６を含む。いくつかの例では、イントラ予測処理ユニット１４６６は、本開示の技法のうちの１つまたは複数を実行し得る。いくつかの例では、予測処理ユニット１４５２および／またはイントラ予測処理ユニット１４６６は、マルチプル補間フィルタを適用し得る。たとえば、予測処理ユニット１４５２および／またはイントラ予測処理ユニット１４６６は、本明細書で説明されている技法の何れの組合せも実行し得る。より具体的には、たとえば、予測処理ユニット１４５２および／またはイントラ予測処理ユニット１４６６は、補間フィルタを選択し、該補間フィルタを使用して、ビデオデータのブロックを再構築するための予測情報を生成し得る。いくつかの事例では、予測処理ユニット１４５２および／またはイントラ予測処理ユニット１４６６は、拡張参照サンプルについての値を導き、該拡張参照サンプルについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成し得る。いくつか事例では、予測処理ユニット１４５２および／またはイントラ予測処理ユニット１４６６は、拡張参照サンプルバッファについての値を生成し、該拡張参照サンプルバッファについての値を使用して、ビデオデータのブロックを再構築するための予測情報を生成し得る。他の例では、ビデオデコーダ３０は、より多い、より少ない、あるいは異なる機能的コンポーネントを含み得る。
【０１５２】
[0170]イントラ予測処理ユニット１４６６は、補間フィルタユニット１４６７を含み得る。補間フィルタユニット１４６７は、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定し得る。たとえば、補間フィルタユニット１４６７は、フィルタタップの数Ｎによって拡張参照サンプルの数を決定し得る。いくつかの例では、補間フィルタユニット１４６７は、イントラ予測方向によって拡張参照サンプルの数を決定し得る。
【０１５３】
[0171]補間フィルタユニット１４６７は、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。たとえば、補間フィルタユニット１４６７は、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに基づいて、補間フィルタタップ長を選択し得る。
【０１５４】
[0172]補間フィルタユニット１４６７は、第１の補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導き得る。たとえば、補間フィルタユニット１４６７は、各拡張参照サンプルの値を導くために、隣接する参照サンプルにＮタップ補間フィルタを適用し得る。
【０１５５】
[0173]ビデオデータメモリ１４５１は、ビデオデコーダ３０のコンポーネントによって復号されるべき、符号化されたビデオビットストリームのような符号化されたビデオデータを記憶し得る。ビデオデータメモリ１４５１に記憶されたビデオデータは、たとえば、ビデオデータの有線またはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、コンピュータ可読媒体１６、たとえば、カメラのようなローカルビデオソースから取得され得る。ビデオデータメモリ１４５１は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングされたピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ１４６２は、たとえばイントラまたはインターコーディングモードで、ビデオデコーダ３０によってビデオデータを復号する際に使用される、または出力のための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１４５１および復号ピクチャバッファ１４６２は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む動的ランダムアクセスメモリ（ＤＲＡＭ）のような、様々なメモリデバイスのうちの何れによっても形成され得る。ビデオデータメモリ１４５１および復号ピクチャバッファ１４６２は、同じメモリデバイスまたは別個のメモリデバイスによって設けられ得る。様々な例において、ビデオデータメモリ１４５１は、ビデオデコーダ３０の他のコンポーネントとオンチップであり得るか、またはそれらのコンポーネントに対してオフチップであり得る。ビデオデータメモリ１４５１は、図１の記憶媒体２８と同じまたはその一部であり得る。
【０１５６】
[0174]ビデオデータメモリ１４５１は、ビットストリームの符号化されたビデオデータ（たとえば、ＮＡＬユニット）を受信および記憶する。エントロピー復号ユニット１４５０は、ビデオデータメモリ１４５１から符号化されたビデオデータ（たとえば、ＮＡＬユニット）を受信し得、シンタックス要素を取得するために該ＮＡＬユニットを解析し得る。エントロピー復号ユニット１４５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１４５２、逆量子化ユニット１４５４、逆変換処理ユニット１４５６、再構築ユニット１４５８、およびフィルタユニット１４６０は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。エントロピー復号ユニット１４５０は、エントロピー符号化ユニット１３１８のプロセスと概ね互恵的なプロセスを実行し得る。
【０１５７】
[0175]ビットストリームからシンタックス要素を取得することに加えて、ビデオデコーダ３０は、非分割ＣＵに対して再構築オペレーションを実行し得る。ＣＵに対して再構築オペレーションを実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構築オペレーションを実行し得る。ＣＵの各ＴＵについて再構築オペレーションを実行することによって、ビデオデコーダ３０は、ＣＵの残差ブロックを再構築し得る。
【０１５８】
[0176]ＣＵのＴＵに対して再構築オペレーションを実行することの一部として、逆量子化ユニット１４５４は、ＴＵに関連付けられた係数ブロックを逆量子化（inverse quantize）、即ち非量子化（de-quantize）し得る。逆量子化ユニット１４５４が係数ブロックを逆量子化した後、逆変換処理ユニット１４５６は、ＴＵに関連付けられた残差ブロックを生成するために、該係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット１４５６は、係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向変換、または別の逆変換を適用し得る。
【０１５９】
[0177]逆量子化ユニット１４５４は、本開示の特定の技法を実行し得る。たとえば、ビデオデータのピクチャのＣＴＵのＣＴＢ内の複数の量子化グループのうちの少なくとも１つのそれぞれの量子化グループについて、逆量子化ユニット１４５４は、ビットストリームにおいてシグナリングされた局所的量子化情報に少なくとも部分的に基づいて、それぞれの量子化グループについてのそれぞれの量子化パラメータを導き得る。加えて、この例では、逆量子化ユニット１４５４は、それぞれの量子化グループについてのそれぞれの量子化パラメータに基づいて、ＣＴＵのＣＵのＴＵの変換ブロックの少なくとも１つの変換係数を逆量子化し得る。この例では、それぞれの量子化グループは、それぞれの量子化グループの境界が、ＣＵまたはコーディングブロックの境界でなければならず、それぞれの量子化グループのサイズがしきい値以上になるように、コーディング順序で連続的なＣＵまたはコーディングブロックのグループとして定義される。ビデオデコーダ３０（たとえば、逆変換処理ユニット１４５６、再構築ユニット１４５８、およびフィルタユニット１４６０）は、変換ブロックの逆量子化された変換係数に基づいて、ＣＵのコーディングブロックを再構築し得る。
【０１６０】
[0178]ＰＵがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット１４６６は、ＰＵの予測ブロックを生成するために、イントラ予測を実行し得る。イントラ予測処理ユニット１４６６は、ブロックに空間的に隣接するサンプルに基づいて、ＰＵの予測ブロックを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット１４６６は、ビットストリームから取得された１つまたは複数のシンタックス要素に基づいて、ＰＵについてのイントラ予測モードを決定し得る。
【０１６１】
[0179]ＰＵがインター予測を使用して符号化される場合、エントロピー復号ユニット１４５０は、ＰＵについての動き情報を決定し得る。動き補償ユニット１４６４は、ＰＵの動き情報に基づいて、１つまたは複数の参照ブロックを決定し得る。動き補償ユニット１４６４は、１つまたは複数の参照ブロックに基づいて、ＰＵについての予測ブロック（たとえば、予測ルーマ、Ｃｂ、およびＣｒブロック）を生成し得る。
【０１６２】
[0180]再構築ユニット１４５８は、適用可能な場合、ＣＵについてのコーディングブロック（たとえば、ルーマ、Ｃｂ、およびＣｒコーディングブロック）を再構築するために、ＣＵのＴＵについての変換ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）およびＣＵのＰＵの予測ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒブロック）、即ち、イントラ予測データまたはインター予測データのどちらかを使用し得る。たとえば、再構築ユニット１４５８は、ＣＵのコーディングブロック（たとえば、ルーマ、Ｃｂ、およびＣｒコーディングブロック）を再構築するために、変換ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）のサンプルを、予測ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）の対応するサンプルに加え得る。
【０１６３】
[0181]フィルタユニット１４６０は、ＣＵのコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキングオペレーションを実行し得る。ビデオデコーダ３０は、ＣＵのコーディングブロックを復号ピクチャバッファ１４６２に記憶し得る。復号ピクチャバッファ１４６２は、後続の動き補償、イントラ予測、および、図１のディスプレイデバイス３２のようなディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１４６２中のブロックに基づいて、他のＣＵのＰＵについてイントラ予測またはインター予測オペレーションを実行し得る。
【０１６４】
[0182]図１５は、本開示で説明される１つまたは複数の技法を実装し得るビデオデータの例となるコーディングを例示するフロー図である。説明されているように、図１５の例となる技法は、ビデオエンコーダ２０またはビデオデコーダ３０によって実行され得る。図１５の別の例では、ビデオコーダは、補間フィルタの１つまたは複数の特性を使用して、参照バッファに記憶されるべき参照サンプルの数を決定する（１５０２）。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、フィルタタップの数Ｎによって拡張参照サンプルの数を決定し得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラ予測方向によって拡張参照サンプルの数を決定し得る。
【０１６５】
[0183]ビデオコーダは、参照バッファ中の該数の参照サンプルに対応する複数の値を生成する（１５０４）。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、隣接する再構築された画像サンプルによって参照サンプルバッファの拡張された一部を満たし得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照サンプルバッファ中の利用可能な参照サンプル値から参照サンプルバッファの拡張された一部を埋める。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、値を導くために、左の列の１つまたはいくつかの参照サンプルを使用し得る。
【０１６６】
[0184]ビデオコーダは、補間フィルタおよび複数の値を使用して、イントラ予測のための予測情報を生成する（１５０６）。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、２＊（Ｍ＋Ｎ）＋１からしきい値分だけ拡張された少なくとも１つの値を使用して、予想ブロックを生成し得る。
【０１６７】
[0185]ビデオコーダは、予測情報に基づいて、ビデオデータのブロックを再構築する（１５０８）。たとえば、ビデオデコーダ３０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定する。この例では、ビデオデコーダ３０は、コーディングユニットについての残差データを決定する。この例では、ビデオデコーダ３０は、残差データの対応するサンプルとコーディングユニットについての予測ブロックとを合計することによって、コーディングユニットのコーディングブロックを再構築する。
【０１６８】
[0186]いくつかの例では、ビデオエンコーダ２０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定する。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを、該残差データがコーディングユニットのコーディングブロックとコーディングユニットについての予測ブロックとの間の差分を示すように、決定する。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを１つまたは複数の変換ブロックに分割する。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックを生成するために１つまたは複数の変換ブロックに変換を適用する。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックにおける係数を量子化する。
【０１６９】
[0187]図１６は、本開示で説明される１つまたは複数の技法を実装し得るビデオデータの例となるコーディングを例示するフロー図である。説明されているように、図１６の例となる技法は、ビデオエンコーダ２０またはビデオデコーダ３０によって実行され得る。図１６の例では、ビデオコーダは、隣接する再構築された参照サンプルから１セットの参照サンプルを決定する（１６０２）。ビデオコーダは、ビデオデータのブロックに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択する（１６０４）。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに基づいて、補間フィルタタップ長を選択する。ビデオコーダは、補間フィルタおよび１セットの参照サンプルを使用して、１セットの参照サンプルの予測情報を生成する（１６０６）。
【０１７０】
[0188]ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータのブロックの複数の部分の各部分について、必要とされる参照サンプルが参照サンプルバッファ外にあるかどうか、たとえば利用可能でないかどうかに基づいて、マルチプル補間フィルタから１つの補間フィルタを選択し得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータのブロックの第１のサンプルについて、第１のフィルタを第１のサンプルに適用するために必要とされる参照サンプルが参照サンプルバッファにあるとき、第１の補間フィルタ（たとえば、六次補間フィルタ）を選択し得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータのブロックの第２のサンプルについて、第１のフィルタ（たとえば、六次補間フィルタ）を第２のサンプルに適用するために必要とされる参照サンプルが参照サンプルバッファ外にある、たとえば利用で可能でないとき、および第２のフィルタを第２のサンプルに適用するために必要とされる参照サンプルが参照サンプルバッファ中にあるとき、第２の補間フィルタ（たとえば、キュービック補間フィルタ）を選択し得る。
【０１７１】
[0189]ビデオコーダは、予測情報に基づいて、ビデオデータのブロックを再構築する（１６０８）。たとえば、ビデオデコーダ３０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定する。この例では、ビデオデコーダ３０は、コーディングユニットについての残差データを決定する。この例では、ビデオデコーダ３０は、残差データの対応するサンプルとコーディングユニットについての予測ブロックとを合計することによって、コーディングユニットのコーディングブロックを再構築する。
【０１７２】
[0190]いくつかの例では、ビデオエンコーダ２０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定する。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを、該残差データがコーディングユニットのコーディングブロックとコーディングユニットについての予測ブロックとの間の差分を示すように、決定する。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを１つまたは複数の変換ブロックに分割する。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックを生成するために１つまたは複数の変換ブロックに変換を適用する。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックにおける係数を量子化する。
【０１７３】
[0191]図１７は、本開示で説明される１つまたは複数の技法を実装し得るビデオデータの例となるコーディングを例示するフロー図である。説明されているように、図１７の例となる技法は、ビデオエンコーダ２０またはビデオデコーダ３０によって実行され得る。図１７の例では、ビデオコーダは、隣接する再構築された参照サンプルから１セットの参照サンプルを決定する（１７０２）。ビデオコーダは、第１の補間フィルタを使用して、隣接する再構築された参照サンプルからの１セットの参照サンプルに基づいて、拡張参照サンプルについての値を導く（１７０４）。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、各拡張参照サンプルの値を導くために、隣接する参照サンプルにＮタップ補間フィルタを適用する。ビデオコーダは、第２の補間フィルタおよび拡張参照サンプルについての値を使用して、予測情報を生成する（１７０６）。
【０１７４】
[0192]ビデオコーダは、予測情報に基づいて、ビデオデータのブロックを再構築する（１７０８）。たとえば、ビデオデコーダ３０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定する。この例では、ビデオデコーダ３０は、コーディングユニットについての残差データを決定する。この例では、ビデオデコーダ３０は、残差データの対応するサンプルとコーディングユニットについての予測ブロックとを合計することによって、コーディングユニットのコーディングブロックを再構築する。
【０１７５】
[0193]いくつかの例では、ビデオエンコーダ２０は、予測的情報を使用して、ビデオデータのブロックのためのコーディングユニットについての予測ブロックを決定する。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを、該残差データがコーディングユニットのコーディングブロックとコーディングユニットについての予測ブロックとの間の差分を示すように、決定する。この例では、ビデオエンコーダ２０は、コーディングユニットについての残差データを１つまたは複数の変換ブロックに分割する。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックを生成するために１つまたは複数の変換ブロックに変換を適用する。この例では、ビデオエンコーダ２０は、１つまたは複数の係数ブロックにおける係数を量子化する。
【０１７６】
[0194]本開示のある特定の態様は、例示の目的でＨＥＶＣ規格の拡張版に関連して説明されてきた。しかしながら、本開示で説明されている技法は、まだ開発されていない他の規格の、または他の所有権を有するビデオコーディングプロセスを含む、他のビデオコーディングプロセスに有益であり得る。
【０１７７】
[0195]本開示で説明される場合、ビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングは、適用可能な場合、ビデオ符号化またはビデオ復号を指し得る。本開示では、「〜に基づいて」という表現は、〜のみに基づいて、〜に少なくとも部分的に基づいて、または〜に何らかの形で基づいて、を示し得る。本開示は、１つまたは複数のサンプルブロックおよび該１つまたは複数のサンプルブロックのサンプルをコーディングするために使用されるシンタックス構造を指すために「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使用し得る。例となるタイプのビデオユニットは、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック区分等を含み得る。いくつかのコンテキストでは、ＰＵについての議論は、マクロブロックまたはマクロブロック区分についての議論と置き換えられ得る。例となるタイプのビデオブロックは、コーディングツリーブロック、コーディングブロック、およびビデオデータの他のタイプのブロックを含み得る。
【０１７８】
[0196]例に依存して、本明細書で説明されている技法のうちの任意のものの特定の動作またはイベントが、異なるシーケンスで実行され得るか、加えられ得るか、マージされ得るか、または完全に除外され得る（たとえば、全ての説明されている動作またはイベントが技法の実施のために必要であるわけではない）ことは認識されるものとする。さらにある特定の例では、動作またはイベントが、たとえば、マルチスレッド処理、割り込み処理、またはマルチプルプロセッサを通して、シーケンシャルではなく同時に実行され得る。
【０１７９】
[0197]１つまたは複数の例では、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらのあらゆる組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上で１つまたは複数の命令またはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルにしたがって、コンピュータプログラムの１つの場所から別の場所への転送を容易にするあらゆる媒体を含む通信媒体、またはデータ記憶媒体のような有体の媒体に対応するコンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は一般に、（１）非一時的である有体のコンピュータ可読記憶媒体、または（２）信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明されている技法の実装のための命令、コード、および／またはデータ構造を抽出するために、１つまたは複数のコンピュータ、または１つまたは複数のプロセッサによってアクセスされ得るあらゆる利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１８０】
[0198]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態で望ましいプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得るあらゆる他の媒体を備え得る。また、何れの接続手段も、厳密にはコンピュータ可読媒体と称される。たとえば、命令が、ウェブサイトから、サーバから、あるいは同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線や、無線や、マイクロ波のようなワイヤレス技術を使用する他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線や、無線や、マイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続手段、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的で有体の記憶媒体を対象としていることは理解されるべきである。ディスク（disk）およびディスク（disc）は、本明細書で使用される場合、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光学ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイディスク（disc）を含み、ここで、ディスク（disk）は大抵、磁気的にデータを再生する一方で、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１８１】
[0199]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積またはディスクリート論理回路のような１つまたは複数のプロセッサを含む、固定関数および／またはプログラマブル処理回路によって実行され得る。したがって、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造、または本明細書で説明されている技法の実装に適したあらゆる他の構造のうちの何れも指し得る。加えていくつかの態様では、本明細書で説明されている機能性は、符号化および復号のために構成された専用ハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され得るか、あるいは組み合わせられたコデックに組み込まれ得る。また、技法は、１つまたは複数の回路または論理要素において十分に実装され得るであろう。
【０１８２】
[0200]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえばチップセット）を含む、幅広い種類のデバイスまたは装置において実装され得る。様々なコンポーネント、モジュール、またはユニットが、開示されている技法を実行するように構成されたデバイスの機能的な態様を強調するために本開示で説明されているが、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、上で説明されたように、様々なユニットがコデックハードウェアユニットにおいて組み合わせられ得るか、あるいは適したソフトウェアおよび／またはファームウェアと連携した、上で説明されたような１つまたは複数のプロセッサを含む、対話型（interoperative）ハードウェアユニットの集合によって提供され得る。
【０１８３】
[0201]様々な例が説明されてきた。これらおよび他の例は、次の請求項の範囲内にある。
【図１】
2019530351.tif 000009
【図２】
2019530351.tif 000010
【図３】
2019530351.tif 000011
【図４】
2019530351.tif 000012
【図５】
2019530351.tif 000013
【図６】
2019530351.tif 000014
【図７】
2019530351.tif 000015
【図８】
2019530351.tif 000016
【図９】
2019530351.tif 000017
【図１０】
2019530351.tif 000018
【図１１】
2019530351.tif 000019
【図１２Ａ】
2019530351.tif 000020
【図１２Ｂ】
2019530351.tif 000021
【図１３】
2019530351.tif 000022
【図１４】
2019530351.tif 000023
【図１５】
2019530351.tif 000024
【図１６】
2019530351.tif 000025
【図１７】
2019530351.tif 000026
【国際調査報告】
2019530351.tif 000027
2019530351.tif 000028
2019530351.tif 000029