(57)【要約】  線形モデル（ＬＭ）予測モードについての技法が説明される。１つまたは複数の例では、ビデオエンコーダまたはビデオデコーダが、ダウンサンプリングのためにフェッチされる隣接するルーマサンプルの数を制限し得、それによって、ビデオエンコーダまたはビデオデコーダが、ＬＭ予測符号化または復号を完了させることが可能な速度を増大させる。
2020502925.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、前記方法は、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルをフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、前記ルーマブロックよりも上にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測復号することと
を備える、方法。
【請求項２】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外する、請求項１に記載の方法。
【請求項３】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
前記左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、
前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと
を備える、請求項１に記載の方法。
【請求項４】
前記第１のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つのルーマサンプルと、前記第１の行よりも上にある第２の行からの３つのルーマサンプルとを利用する、請求項３に記載の方法。
【請求項５】
前記第２のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つ未満のルーマサンプルと、前記第１の行よりも上にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項３に記載の方法。
【請求項６】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
フェッチすることなく、前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を備える、請求項１に記載の方法。
【請求項７】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測復号することは、前記クロマブロックを再構成するために、前記予測ブロックを残差ブロックに加算することを備える、請求項１に記載の方法。
【請求項８】
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを復号すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを復号することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを復号することを備える、
をさらに備える、請求項１に記載の方法。
【請求項９】
ビデオデータを復号するためのデバイスであって、前記デバイスは、
ビデオデータメモリと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオデコーダと、ここにおいて、前記ビデオデコーダは、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルを前記ビデオデータメモリからフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、前記ルーマブロックよりも上にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測復号することと
を行うように構成される、
を備える、デバイス。
【請求項１０】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外する、請求項９に記載のデバイス。
【請求項１１】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオデコーダは、
前記左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、
前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと
を行うように構成される、請求項９に記載のデバイス。
【請求項１２】
前記第１のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つのルーマサンプルと、前記第１の行よりも上にある第２の行からの３つのルーマサンプルとを利用する、請求項１１に記載のデバイス。
【請求項１３】
前記第２のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つ未満のルーマサンプルと、前記第１の行よりも上にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項１１に記載のデバイス。
【請求項１４】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオデコーダは、
フェッチすることなく、前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を行うように構成される、請求項９に記載のデバイス。
【請求項１５】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測復号するために、前記ビデオデコーダは、前記クロマブロックを再構成するために、前記予測ブロックを残差ブロックに加算するように構成される、請求項９に記載のデバイス。
【請求項１６】
前記ビデオデコーダは、
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを復号すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを復号することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを復号することを備える、
を行うように構成される、請求項９に記載のデバイス。
【請求項１７】
ビデオデータを符号化する方法であって、前記方法は、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルをフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、前記ルーマブロックよりも上にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測符号化することと
を備える、方法。
【請求項１８】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外する、請求項１７に記載の方法。
【請求項１９】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
前記左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、
前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと
を備える、請求項１７に記載の方法。
【請求項２０】
前記第１のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つのルーマサンプルと、前記第１の行よりも上にある第２の行からの３つのルーマサンプルとを利用する、請求項１９に記載の方法。
【請求項２１】
前記第２のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つ未満のルーマサンプルと、前記第１の行よりも上にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項１９に記載の方法。
【請求項２２】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
フェッチすることなく、前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を備える、請求項１７に記載の方法。
【請求項２３】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測符号化することは、ビデオデコーダによって前記クロマブロックを再構成するために使用されることになる残差ブロックを生成するために、前記クロマブロックから前記予測ブロックを減算することを備える、請求項１７に記載の方法。
【請求項２４】
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを符号化すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを符号化することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを符号化することを備える、
をさらに備える、請求項１７に記載の方法。
【請求項２５】
ビデオデータを符号化するためのデバイスであって、前記デバイスは、
ビデオデータメモリと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオエンコーダと、ここにおいて、前記ビデオエンコーダは、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルを前記ビデオデータメモリからフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、前記ルーマブロックよりも上にある複数のルーマサンプルを備え、
前記決定された隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測符号化することと
を行うように構成される、
を備える、デバイス。
【請求項２６】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外する、請求項２５に記載のデバイス。
【請求項２７】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオエンコーダは、
前記左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、
前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと
を行うように構成される、請求項２５に記載のデバイス。
【請求項２８】
前記第１のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つのルーマサンプルと、前記第１の行よりも上にある第２の行からの３つのルーマサンプルとを利用する、請求項２７に記載のデバイス。
【請求項２９】
前記第２のフィルタは、前記ルーマブロックよりも上にある第１の行からの３つ未満のルーマサンプルと、前記第１の行よりも上にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項２７に記載のデバイス。
【請求項３０】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオエンコーダは、
フェッチすることなく、前記ルーマブロックの前記左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を行うように構成される、請求項２５に記載のデバイス。
【請求項３１】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測符号化するために、前記ビデオエンコーダは、ビデオデコーダによって前記クロマブロックを再構成するために使用されることになる残差ブロックを生成するために、前記クロマブロックから前記予測ブロックを減算するように構成される、請求項２５に記載のデバイス。
【請求項３２】
前記ビデオエンコーダは、
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを符号化すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを符号化することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを符号化することを備える、
を行うように構成される、請求項２５に記載のデバイス。
【請求項３３】
ビデオデータを復号する方法であって、前記方法は、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルをフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックからしきい値数のサンプルよりも左にありかつ前記ルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、前記ルーマブロックの左にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記ルーマブロックから前記しきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測復号することと
を備える、方法。
【請求項３４】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、（ｘ０−ｋ）未満のｘ座標およびｙ０より大きいｙ座標を有するルーマサンプルを除外し、ｋは、前記しきい値数であり、ｋは、０より大きい整数である、請求項３３に記載の方法。
【請求項３５】
ｋは、４に等しい、請求項３４に記載の方法。
【請求項３６】
前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルから２列よりも左にあるダウンサンプリングされたルーマサンプルに対応する、請求項３３に記載の方法。
【請求項３７】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、ここにおいて、前記第１のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第１の数の列左にある列にあり、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記ルーマブロックの前記左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと、ここにおいて、前記第２のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第２の数の列左にある列にあり、ここにおいて、前記第２の数は、前記第１の数より大きい、
を備える、請求項３３に記載の方法。
【請求項３８】
前記第１のフィルタは、前記ルーマブロックの左にある第１の行からの３つのルーマサンプルと、前記第１の行の下にある第２の行からの３つのルーマサンプルとを利用する、請求項３７に記載の方法。
【請求項３９】
前記第２のフィルタは、前記ルーマブロックの左にある第１の行からの３つ未満のルーマサンプルと、前記第１の行の下にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項３７に記載の方法。
【請求項４０】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
フェッチすることなく、前記ルーマブロックから前記しきい値数のサンプルよりも左かつ前記ルーマブロックの前記左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を備える、請求項３３に記載の方法。
【請求項４１】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測復号することは、前記クロマブロックを再構成するために、前記予測ブロックを残差ブロックに加算することを備える、請求項３３に記載の方法。
【請求項４２】
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを復号すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを復号することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを復号することを備える、
をさらに備える、請求項３３に記載の方法。
【請求項４３】
ビデオデータを復号するためのデバイスであって、前記デバイスは、
ビデオデータメモリと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオデコーダと、ここにおいて、前記ビデオデコーダは、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルをフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックからしきい値数のサンプルよりも左にありかつ前記ルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、前記ルーマブロックの左にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記ルーマブロックから前記しきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測復号することと
を行うように構成される、
を備える、デバイス。
【請求項４４】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、（ｘ０−ｋ）未満のｘ座標およびｙ０より大きいｙ座標を有するルーマサンプルを除外し、ｋは、前記しきい値数であり、ｋは、０より大きい整数である、請求項４３に記載のデバイス。
【請求項４５】
ｋは、４に等しい、請求項４４に記載のデバイス。
【請求項４６】
前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルから２列よりも左にあるダウンサンプリングされたルーマサンプルに対応する、請求項４３に記載のデバイス。
【請求項４７】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオデコーダは、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、ここにおいて、前記第１のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第１の数の列左にある列にあり、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記ルーマブロックの前記左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと、ここにおいて、前記第２のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第２の数の列左にある列にあり、ここにおいて、前記第２の数は、前記第１の数より大きい、
を行うように構成される、請求項４３に記載のデバイス。
【請求項４８】
前記第１のフィルタは、前記ルーマブロックの左にある第１の行からの３つのルーマサンプルと、前記第１の行の下にある第２の行からの３つのルーマサンプルとを利用する、請求項４７に記載のデバイス。
【請求項４９】
前記第２のフィルタは、前記ルーマブロックの左にある第１の行からの３つ未満のルーマサンプルと、前記第１の行の下にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項４７に記載のデバイス。
【請求項５０】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオデコーダは、
フェッチすることなく、前記ルーマブロックから前記しきい値数のサンプルよりも左かつ前記ルーマブロックの前記左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を行うように構成される、請求項４３に記載のデバイス。
【請求項５１】
前記クロマブロックをＬＭ予測復号するために、前記ビデオデコーダは、前記クロマブロックを再構成するために、前記予測ブロックを残差ブロックに加算するように構成される、請求項４３に記載のデバイス。
【請求項５２】
前記ビデオデコーダは、
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを復号すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを復号するために、前記ビデオデコーダは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを復号するように構成される、
を行うように構成される、請求項４３に記載のデバイス。
【請求項５３】
ビデオデータを符号化する方法であって、前記方法は、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルをフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックからしきい値数のサンプルよりも左にありかつ前記ルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、前記ルーマブロックの左にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記ルーマブロックから前記しきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測符号化することと
を備える、方法。
【請求項５４】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、（ｘ０−ｋ）未満のｘ座標およびｙ０より大きいｙ座標を有するルーマサンプルを除外し、ｋは、前記しきい値数であり、ｋは、０より大きい整数である、請求項５３に記載の方法。
【請求項５５】
ｋは、４に等しい、請求項５４に記載の方法。
【請求項５６】
前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルから２列よりも左にあるダウンサンプリングされたルーマサンプルに対応する、請求項５３に記載の方法。
【請求項５７】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、ここにおいて、前記第１のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第１の数の列左にある列にあり、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記ルーマブロックの前記左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと、ここにおいて、前記第２のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第２の数の列左にある列にあり、ここにおいて、前記第２の数は、前記第１の数より大きい、
を備える、請求項５３に記載の方法。
【請求項５８】
前記第１のフィルタは、前記ルーマブロックの左にある第１の行からの３つのルーマサンプルと、前記第１の行の下にある第２の行からの３つのルーマサンプルとを利用する、請求項５７に記載の方法。
【請求項５９】
前記第２のフィルタは、前記ルーマブロックの左にある第１の行からの３つ未満のルーマサンプルと、前記第１の行の下にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項５７に記載の方法。
【請求項６０】
前記複数のダウンサンプリングされたルーマサンプルを決定することは、
フェッチすることなく、前記ルーマブロックから前記しきい値数のサンプルよりも左かつ前記ルーマブロックの前記左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を備える、請求項５３に記載の方法。
【請求項６１】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測符号化することは、ビデオデコーダによって前記クロマブロックを再構成するために使用されることになる残差ブロックを生成するために、前記クロマブロックから前記予測ブロックを減算することを備える、請求項５３に記載の方法。
【請求項６２】
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを符号化すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを符号化することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを符号化することを備える、
をさらに備える、請求項５３に記載の方法。
【請求項６３】
ビデオデータを符号化するためのデバイスであって、前記デバイスは、
ビデオデータメモリと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオエンコーダと、ここにおいて、前記ビデオエンコーダは、
クロマブロックに対応するルーマブロックを決定することと、
隣接するルーマサンプルをダウンサンプリングするために、前記隣接するルーマサンプルをフェッチすることと、ここにおいて、前記フェッチされた隣接するルーマサンプルは、前記ルーマブロックからしきい値数のサンプルよりも左にありかつ前記ルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、前記ルーマブロックの左にある複数のルーマサンプルを備え、
前記フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記ルーマブロックから前記しきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、
前記ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、
前記１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、
前記予測ブロックに基づいて、前記クロマブロックを線形モデル（ＬＭ）予測符号化することと
を行うように構成される、
を備える、デバイス。
【請求項６４】
前記ルーマブロックの前記左上ルーマサンプルの座標は、（ｘ０，ｙ０）であり、前記フェッチされた隣接するルーマサンプルは、（ｘ０−ｋ）未満のｘ座標およびｙ０より大きいｙ座標を有するルーマサンプルを除外し、ｋは、前記しきい値数であり、ｋは、０より大きい整数である、請求項６３に記載のデバイス。
【請求項６５】
ｋは、４に等しい、請求項６４に記載のデバイス。
【請求項６６】
前記ダウンサンプリングされたルーマサンプルのうちの１つは、前記左上ルーマサンプルから２列よりも左にあるダウンサンプリングされたルーマサンプルに対応する、請求項６３に記載のデバイス。
【請求項６７】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオエンコーダは、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、前記隣接するルーマサンプルの第１のセットに前記第１のフィルタを適用することと、ここにおいて、前記第１のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第１の数の列左にある列にあり、
前記ルーマブロックから前記しきい値数のサンプルよりも左にありかつ前記ルーマブロックの前記左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、前記第１のフィルタに従ってダウンサンプリングするために必要であるとき、前記複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、前記隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用することと、ここにおいて、前記第２のダウンサンプリングされたルーマサンプルは、前記ルーマブロックから第２の数の列左にある列にあり、ここにおいて、前記第２の数は、前記第１の数より大きい、
を行うように構成される、請求項６３に記載のデバイス。
【請求項６８】
前記第１のフィルタは、前記ルーマブロックの左にある第１の行からの３つのルーマサンプルと、前記第１の行の下にある第２の行からの３つのルーマサンプルとを利用する、請求項６７に記載のデバイス。
【請求項６９】
前記第２のフィルタは、前記ルーマブロックの左にある第１の行からの３つ未満のルーマサンプルと、前記第１の行の下にある第２の行からの３つ未満のルーマサンプルとを利用する、請求項６７に記載のデバイス。
【請求項７０】
前記複数のダウンサンプリングされたルーマサンプルを決定するために、前記ビデオエンコーダは、
フェッチすることなく、前記ルーマブロックから前記しきい値数のサンプルよりも左かつ前記ルーマブロックの前記左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成することと、
前記複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、前記生成されたルーマ値にフィルタを適用することと
を行うように構成される、請求項６３に記載のデバイス。
【請求項７１】
前記予測ブロックに基づいて、前記クロマブロックをＬＭ予測符号化するために、前記ビデオエンコーダは、ビデオデコーダによって前記クロマブロックを再構成するために使用されることになる残差ブロックを生成するために、前記クロマブロックから前記予測ブロックを減算するように構成される、請求項６３に記載のデバイス。
【請求項７２】
前記ビデオエンコーダは、
前記ルーマブロックと前記クロマブロックとを含む現在のブロックについてのフラグを符号化すること、ここにおいて、前記フラグは、ＬＭ予測コーディングが前記クロマブロックに対してイネーブルにされることを示し、ここにおいて、前記フラグを符号化することは、前記ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、前記フラグを符号化することを備える、
を行うように構成される、請求項６３に記載のデバイス。
【発明の詳細な説明】
【関連出願の説明】
【０００１】
[0001]本願は、２０１６年１２月１９日に出願された米国特許仮出願第６２／４３６，３１９号の利益を主張し、その内容全体が参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]本開示は、ビデオ符号化および復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルラ式または衛星無線電話、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、および同様のものを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオコーディング（ＡＶＣ）によって定義される規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格、およびそのような規格の拡張に記載されているものなどの、ビデオ圧縮技法をインプリメントする。ビデオデバイスは、このようなビデオ圧縮技法をインプリメントすることによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測（prediction）を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ビデオブロックに区分化され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャ内の参照サンプルに対する時間的予測を使用し得る。空間的または時間的予測は、コーディングされるべきブロックについての予測ブロック（predictive block）をもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの間の差分を示す。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差係数が得られ得、その後、それは量子化され得る。
【発明の概要】
【０００５】
[0005]一般に、本開示の態様は、線形モデル（ＬＭ：linear-model）予測モードのために、隣接するルーマサンプルをダウンサンプリングするための技法に向けられる。より詳細に説明されるように、ビデオエンコーダまたはビデオデコーダは、ＬＭ予測モードでクロマ予測ブロックを構成（constructing）するためのダウンサンプリングの一部として、隣接するルーマサンプルをフェッチするように構成（configured）され得る。いくつかの例では、ビデオエンコーダまたはビデオデコーダは、ＬＭ予測モードでクロマ予測ブロックを構成するためのダウンサンプリングの一部として、ある特定の（certain）隣接するルーマサンプルをフェッチしないように構成され得る。ある特定の隣接するルーマサンプルをフェッチしないことによって、例となる技法は、効率的な処理およびメモリ帯域幅利用を促進し得る。
【０００６】
[0006]一例では、本開示は、ビデオデータを復号する方法を説明し、方法は、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプルを備え、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し（exclude luma samples that are above and left of a top-left luma sample of the luma block）、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされた（downsampled）ルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測復号することとを備える。
【０００７】
[0007]一例では、本開示は、ビデオデータを復号するためのデバイスを説明し、デバイスは、ビデオデータメモリと、固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオデコーダとを備える。ビデオデコーダは、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをビデオデータメモリからフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプルを備え、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測復号することとを行うように構成される。
【０００８】
[0008]一例では、本開示は、ビデオデータを符号化する方法を説明し、方法は、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプルを備え、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測符号化することとを備える。
【０００９】
[0009]一例では、本開示は、ビデオデータを符号化するためのデバイスを説明し、デバイスは、ビデオデータメモリと、固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオエンコーダとを備える。ビデオエンコーダは、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをビデオデータメモリからフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプルを備え、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、決定された隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測符号化することとを行うように構成される。
【００１０】
[0010]一例では、本開示は、ビデオデータを復号する方法を説明し、方法は、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを備え、ルーマブロックからしきい値数のサンプルよりも左にあり（more than a threshold number of samples left）かつルーマブロックの左上ルーマサンプルより下にある（and below a top-left luma sample of the luma block）ルーマサンプルを除外し、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にある（that is the threshold number of samples left of）ダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測復号することとを備える。
【００１１】
[0011]一例では、本開示は、ビデオデータを復号するためのデバイスを説明し、デバイスは、ビデオデータメモリと、固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオデコーダとを備える。ビデオデコーダは、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを備え、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測復号することとを行うように構成される。
【００１２】
[0012]一例では、本開示は、ビデオデータを符号化する方法を説明し、方法は、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを備え、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測符号化することとを備える。
【００１３】
[0013]一例では、本開示は、ビデオデータを符号化するためのデバイスを説明し、デバイスは、ビデオデータメモリと、固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるビデオエンコーダとを備える。ビデオエンコーダは、クロマブロックに対応するルーマブロックを決定することと、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチすることと、ここにおいて、フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを備え、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定することと、ここにおいて、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応し、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定することと、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定することと、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測符号化することとを行うように構成される。
【００１４】
[0014]本開示の１つまたは複数の態様の詳細は、添付の図面および以下の説明において示される。本開示の他の特徴、目的、および利点が、説明および図面から、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】[0015]図１は、本開示で説明される技法を利用し得る、例となるビデオコーディングシステムを例示するブロック図である。
【図２】[0016]図２は、本開示で説明される技法をインプリメントし得る、例となるビデオエンコーダを例示するブロック図である。
【図３】[0017]図３は、本開示で説明される技法をインプリメントし得る、例となるビデオデコーダを例示するブロック図である。
【図４】[0018]図４は、ルーマおよびクロマサンプルの公称垂直方向および水平方向の相対的なロケーション（nominal vertical and horizontal relative locations）を例示する概念図である。
【図５】[0019]図５は、ダウンサンプリングされた、再構成されたルーマブロックをスケーリングするために使用されるスケーリングパラメータが導出される、例となるロケーションを例示する概念図である。
【図６】[0020]図６は、予測ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の例を例示する概念図である。
【図７】[0021]図７は、予測ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の別の例を例示する概念図である。
【図８Ａ】[0022]図８Ａは、ダウンサンプリングにおいて使用される隣接するサンプルを例示する概念図である。
【図８Ｂ】[0022]図８Ｂは、ダウンサンプリングにおいて使用される隣接するサンプルを例示する概念図である。
【図８Ｃ】[0022]図８Ｃは、ダウンサンプリングにおいて使用される隣接するサンプルを例示する概念図である。
【図８Ｄ】[0022]図８Ｄは、ダウンサンプリングにおいて使用される隣接するサンプルを例示する概念図である。
【図９】[0023]図９は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。
【図１０】[0024]図１０は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。
【図１１Ａ】[0025]図１１Ａは、異なる位置におけるダウンサンプリングされたサンプルについての異なるフィルタ長を例示する概念図である。
【図１１Ｂ】[0025]図１１Ｂは、異なる位置におけるダウンサンプリングされたサンプルについての異なるフィルタ長を例示する概念図である。
【図１２Ａ】[0026]図１２Ａは、パディングされたサンプルを用いたフィルタリングを例示する概念図である。
【図１２Ｂ】[0026]図１２Ｂは、パディングされたサンプルを用いたフィルタリングを例示する概念図である。
【図１３】[0027]図１３は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。
【図１４】[0028]図１４は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。
【図１５Ａ】[0029]図１５Ａは、異なる位置におけるダウンサンプリングされたサンプルについての異なるフィルタ長を例示する概念図である。
【図１５Ｂ】[0029]図１５Ｂは、異なる位置におけるダウンサンプリングされたサンプルについての異なるフィルタ長を例示する概念図である。
【図１６Ａ】[0030]図１６Ａは、パディングされたサンプルを用いたフィルタリングを例示する概念図である。
【図１６Ｂ】[0030]図１６Ｂは、パディングされたサンプルを用いたフィルタリングを例示する概念図である。
【図１７】[0031]図１７は、現在のブロックの隣接ブロックを例示する概念図である。
【図１８】[0032]図１８は、ビデオデータを復号する例となる方法を例示するフローチャートである。
【図１９】[0033]図１９は、ビデオデータを符号化する例となる方法を例示するフローチャートである。
【詳細な説明】
【００１６】
[0034]本開示は、ビデオコーディングおよび圧縮のための技法を説明する。特に、本開示は、線形モデル（ＬＭ）予測ビデオコーディングモードのための技法を説明する。ＬＭ予測ビデオコーディングモードでは、クロマブロックは、スケーリングされた、ダウンサンプリングされた、再構成された対応するルーマブロックから予測される（すなわち、このスケーリングされた、ダウンサンプリングされた、再構成された対応するルーマブロックは、クロマブロックを予測するために使用される予測ブロックを形成する）。
【００１７】
[0035]いくつかの例では、再構成された対応するルーマブロックのダウンサンプリングは、フィルタリングを含む。本開示は、このようなフィルタリングを実行するための例となる方法を説明する。さらに、本開示で説明される技法はまた、ＬＭ予測モードで使用されるルーマサンプルが、異なるタイルに位置する状況にも適用し得る。
【００１８】
[0036]したがって、本開示で説明される技法は、線形モデル（ＬＭ）予測モードに関し、これは、ビデオコーディングにおける成分間の冗長性（inter component redundancy）を低減させるために使用される。本開示で説明される技法は、高効率ビデオコーディング（ＨＥＶＣ）ビデオコーディング規格の拡張または次世代のビデオコーディング規格のような、アドバンストビデオコーデックのコンテキストにおいて使用され得る。
【００１９】
[0037]ＬＭ予測符号化または復号を実行する際に、ビデオエンコーダまたはビデオデコーダは、それぞれ、ダウンサンプリングするために、ビデオデータメモリから隣接するルーマサンプルをフェッチして、ダウンサンプリングされた対応するルーマブロックをスケーリングするために使用されるスケーリングパラメータを決定する。隣接するルーマサンプルをダウンサンプリングするために使用されるフィルタタイプが、（例えば、コーディング回路のローカルメモリに）ローカルに記憶された隣接するルーマサンプルの範囲外にある隣接するルーマサンプルを使用する場合、処理時間およびメモリ帯域幅は、ビデオエンコーダまたはビデオデコーダが外部メモリからルーマサンプルを取り出すことによって浪費され得る。例えば、一般的なビデオコーディングではなく、ビデオコーディングの技術においては、ＬＭ予測モード動作を実行することが、追加の処理時間およびメモリ帯域幅を必要とし得る、メモリからルーマサンプル値をフェッチすることを必要とするという問題が存在し得る。本開示は、比較的高い量の処理時間およびメモリ帯域幅を必要とするであろうフェッチされるサンプル値の数を低減させるための例を説明する。
【００２０】
[0038]例として、ダウンサンプリングを実行するための隣接するルーマサンプルをフェッチする際に、ビデオエンコーダおよびビデオデコーダは、ある特定のルーマサンプル（例えば、ローカルメモリに記憶されていないルーマサンプルまたはまだ生成されていないルーマサンプル）を、フェッチすることから除外し得る。このようにして、一例では、フェッチすることは、ビデオエンコーダおよびビデオデコーダが、非ローカルメモリにアクセスすることを引き起こさない。むしろ、この例では、ビデオエンコーダまたはビデオデコーダは、例えば、ＬＭ予測モード動作における使用のために、ローカルメモリからのルーマサンプルのみをフェッチする。
【００２１】
[0039]いくつかの例では、ビデオエンコーダおよびビデオデコーダは、異なるフィルタを使用してダウンサンプリングを実行するように構成され得る。例えば、ビデオエンコーダおよびビデオデコーダは、除外される隣接するルーマサンプルのいずれも、第１のフィルタに従ってダウンサンプリングするために必要でないとき、第１のフィルタを適用し得る。しかしながら、第１のフィルタを適用することが、除外されたルーマサンプルをフェッチすることを必要とするであろう場合、ビデオエンコーダおよびビデオデコーダは、第１のフィルタとは異なる第２のフィルタを適用し得る。
【００２２】
[0040]図１は、本開示の技法を利用し得る、例となるビデオコーディングシステム１０を例示するブロック図である。本明細書で使用される場合、「ビデオコーダ」という用語は、総称的に、ビデオエンコーダおよびビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、総称的に、ビデオ符号化またはビデオ復号を指し得る。ビデオコーディングシステム１０のビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明される様々な例に従って、線形モデル（ＬＭ）予測ベースのビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明されるように、対応するルーマブロックのスケーリングされた、ダウンサンプリングされた、再構成されたルーマサンプルを利用して、クロマブロックをコーディングするように構成され得る。
【００２３】
[0041]図１に示されるように、ビデオコーディングシステム１０は、ソースデバイス１２および宛先デバイス１４を含む。ソースデバイス１２は、符号化されたビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれ得る。宛先デバイス１４は、ソースデバイス１２によって生成される符号化されたビデオデータを復号し得る。したがって、宛先デバイス１４は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれ得る。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００２４】
[0042]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、車載コンピュータ、または同様のものを含む、幅広い範囲のデバイスを備え得る。
【００２５】
[0043]宛先デバイス１４は、チャネル１６を介して、ソースデバイス１２から符号化されたビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に、符号化されたビデオデータを移動させることが可能な１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が、符号化されたビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にする、１つまたは複数の通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線などの、ワイヤレスおよび／またはワイヤード通信媒体を含み得る。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（例えば、インターネット）などの、パケットベースのネットワークの一部を形成し得る。１つまたは複数の通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にする他の機器を含み得る。
【００２６】
[0044]別の例では、チャネル１６は、ソースデバイス１２によって生成される符号化されたビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、例えば、ディスクアクセスまたはカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化されたビデオデータを記憶するための他の好適なデジタル記憶媒体などの、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
【００２７】
[0045]さらなる例では、チャネル１６は、ソースデバイス１２によって生成される符号化されたビデオデータを記憶するファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスにおいて記憶された符号化されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス１４に送信することが可能なサーバのタイプであり得る。例となるファイルサーバは、（例えば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、およびローカルディスクドライブを含む。
【００２８】
[0046]宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。データ接続の例となるタイプは、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデム、等）、またはファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに好適な両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２９】
[0047]本開示の技法は、ワイヤレスアプリケーションまたは設定に限定されない。本技法は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、例えば、インターネットを介した、ストリーミングビデオ送信、データ記憶媒体上での記憶のためのビデオデータの符号化、データ記憶媒体上に記憶されたビデオデータの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話通信などのアプリケーションをサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３０】
[0048]図１に例示されるビデオコーディングシステム１０は、単なる例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間の任意のデータ通信を必ずしも含むとは限らないビデオコーディング設定（例えば、ビデオ符号化またはビデオ復号）に適用し得る。いくつかの例では、データは、ローカルメモリから取り出されるか、ネットワーク上でストリーミングされるか、または同様のことが行われる。ビデオ符号化デバイスは、データを符号化してメモリに記憶し得、および／または、ビデオ復号デバイスは、メモリからデータを取り出して復号し得る。多くの例では、符号化および復号は、互いに通信しないが、単に、メモリへのデータを符号化し、および／またはメモリからデータを取り出して復号するデバイスによって実行される。
【００３１】
[0049]図１の例では、ソースデバイス１２は、ビデオソース１８、ビデオエンコーダ２０、および出力インターフェース２２を含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ビデオソース１８は、ビデオキャプチャデバイス（例えば、ビデオカメラ）、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからのビデオデータを受信するためのビデオフィードインターフェース、および／またはビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのこのようなソースの組合せを含み得る。
【００３２】
[0050]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して、符号化されたビデオデータを宛先デバイス１４に直接送信する。他の例では、符号化されたビデオデータはまた、復号および／または再生のための、宛先デバイス１４による後のアクセスのために、記憶媒体またはファイルサーバ上に記憶され得る。
【００３３】
[0051]図１の例では、宛先デバイス１４は、入力インターフェース２８、ビデオデコーダ３０、およびディスプレイデバイス３２を含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６上で、符号化されたビデオデータを受信し得る。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るか、またはその外部にあり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータを表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスを備え得る。
【００３４】
[0052]ビデオエンコーダ２０およびビデオデコーダ３０は、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ハードウェア、またはこれらの任意の組合せなどの、様々な好適な処理回路（例えば、固定機能回路および／またはプログラマブル回路）のうちの任意のものによって形成される１つまたは複数のプロセッサによって、それぞれインプリメントされ得る。本技法が部分的にソフトウェアにおいてインプリメントされる場合、デバイスは、好適な非一時的なコンピュータ可読記憶媒体にソフトウェアのための命令を記憶し得、本開示の技法を実行するために、１つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。前述の任意のもの（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せ、等を含む）は、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれ得、これらのいずれもが、それぞれのデバイスにおいて複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として一体化され得る。
【００３５】
[0053]本開示は、概して、ビデオエンコーダ２０が、ビデオデコーダ３０のような別のデバイスに、ある特定の情報を「シグナリングすること」または「送信すること」に言及し得る。「シグナリングすること」または「送信すること」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。このような通信は、リアルタイムで、またはほぼリアルタイムで行われ得る。代替として、このような通信は、ある長さの時間にわたって行われ得、例えば、符号化時に、符号化されたビットストリームにおいて、コンピュータ可読記憶媒体にシンタックス要素を記憶しているときに行われ得、その後、それは、この媒体に記憶された後の任意の時間において、復号デバイスによって取り出され得る。
【００３６】
[0054]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオ圧縮規格に従って動作する。ビデオコーディング規格の例は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、および、そのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）拡張およびマルチビュービデオコーディング（ＭＶＣ：Multi-view Video Coding）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。
【００３７】
[0055]加えて、新しいビデオコーディング規格、すなわち高効率ビデオコーディング（ＨＥＶＣ）が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）と、ＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）によって、近年開発されてきた。以下、ＨＥＶＣ  ＷＤと呼ばれる、ＨＥＶＣのドラフト仕様が、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。ＨＥＶＣ規格はまた、勧告ＩＴＵ−Ｔ  Ｈ．２６５および国際標準ＩＳＯ／ＩＥＣ２３００８−２において共同で提示されており、両方が「High efficiency video coding」と題し、両方が２０１４年１０月に公表されている。
【００３８】
[0056]ＨＥＶＣの仕様、およびフォーマットレンジ（ＲＥｘｔ）拡張と、スケーラビリティ（ＳＨＶＣ）拡張と、マルチビュー（ＭＶ−ＨＥＶＣ）拡張とを含むその拡張は、http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1013-v6.zipから入手可能である。
【００３９】
[0057]ビデオコーディングは、色空間およびカラーフォーマットに基づいて実行され得る。例えば、カラービデオは、マルチメディアシステムにおいて重要な役割を果たし、そこで、様々な色空間が、色を効率的に表すために使用される。色空間は、複数の成分を使用して数値で色を指定する。よく知られている色空間が、ＲＧＢ色空間であり、ここで、色は、３原色成分値（すなわち、赤、緑および青）の組合せとして表される。カラービデオ圧縮については、A. FordおよびA. Robertsの「Colour space conversions」、ウェストミンスター大学、ロンドン、Tech. Rep.，１９９８年８月に説明されているように、ＹＣｂＣｒ色空間が広く使用されてきた。
【００４０】
[0058]ＹＣｂＣｒは、線形変換を介してＲＧＢ色空間から容易に変換され得、異なる成分間の冗長性、すなわち、成分間冗長性（cross component redundancy）は、ＹＣｂＣｒ色空間において著しく低減される。ＹＣｂＣｒの１つの利点は、Ｙ信号が輝度情報（luminance information）を伝達するので、白黒テレビとの後方互換性である。加えて、クロミナンス帯域幅は、ＲＧＢにおいてサブサンプリングすることよりも主観的影響（subjective impact）が著しく少ない状態で（with）、４：２：０のクロマサンプリングフォーマットでＣｂおよびＣｒ成分をサブサンプリングすることによって低減され得る。これらの利点ゆえに、ＹＣｂＣｒは、ビデオ圧縮での主要な色空間とされてきた。また、ビデオ圧縮において使用される、ＹＣｏＣｇなどの他の色空間も存在する。本開示では、使用される実際の色空間にかかわらず、Ｙ、Ｃｂ、Ｃｒが、ビデオ圧縮方式における３つの色成分を表すために使用される。
【００４１】
[0059]４：２：０サンプリングでは、２つのクロマアレイの各々は、ルーマアレイの半分の高さおよび半分の幅を有する。ピクチャにおけるルーマおよびクロマサンプルの公称の垂直方向および水平方向の相対的なロケーションが、図４に示される。
【００４２】
[0060]ＨＥＶＣおよび他のビデオコーディング規格では、ビデオシーケンスは、典型的に、一連のピクチャを含む。ピクチャは、「フレーム」とも呼ばれ得る。ピクチャは、ＳＬ、ＳＣｂ、およびＳＣｒで示される、３つのサンプルアレイを含み得る。ＳＬは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳＣｂは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳＣｒは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルはまた、本明細書では「クロマ」サンプルとも呼ばれ得る。他の事例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００４３】
[0061]ピクチャの符号化された表現を生成するために、ビデオエンコーダ２０は、コーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルの１つのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、これらコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とであり得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは、「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）とも呼ばれ得る。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの、他の規格のマクロブロックに大まかに類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるわけではなく、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタースキャンにおいて連続的に並べられた整数の数のＣＴＵを含み得る。
【００４４】
[0062]コーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するために、ＣＴＵのコーディングツリーブロックに対して４分木区分化を再帰的に実行し得、それがこの「コーディングツリーユニット」という名前の由来である。コーディングブロックは、サンプルのＮｘＮブロックである。ＣＵは、ルーマサンプルアレイと、Ｃｂサンプルアレイと、Ｃｒサンプルアレイとを有するピクチャについての、ルーマサンプルの１つのコーディングブロックと、クロマサンプルの２つの対応するコーディングブロックと、これらコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とであり得る。ビデオエンコーダ２０は、ＣＵのコーディングブロックを、１つまたは複数の予測ブロックに区分化し得る。予測ブロックは、それに対して同じ予測が適用される、サンプルの矩形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、ピクチャについての、ルーマサンプルの１つの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、これら予測ブロックサンプルを予測するために使用されるシンタックス構造とであり得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ、ＣｂおよびＣｒ予測ブロックについての、予測ルーマ、ＣｂおよびＣｒブロックを生成し得る。
【００４５】
[0063]ビデオエンコーダ２０は、ＰＵについての予測ブロックを生成する（例えば、決定する）ために、いくつかの例として、イントラ予測、インター予測、または線形モデル（ＬＭ）予測を使用し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【００４６】
[0064]ビデオエンコーダ２０が、ＰＵの予測ブロックを生成する（例えば、決定する）ためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するために、単予測（uni-prediction）または双予測（bi-prediction）を使用し得る。ビデオエンコーダ２０がＰＵについての予測ブロックを生成するために単予測（uni-prediction）を使用するとき、ＰＵは、単一の（single）動きベクトル（ＭＶ）を有し得る。ビデオエンコーダ２０がＰＵについての予測ブロックを生成するために双予測を使用するとき、ＰＵは、２つのＭＶを有し得る。
【００４７】
[0065]ビデオエンコーダ２０が、ＣＵの１つまたは複数のＰＵについての予測ルーマ、ＣｂおよびＣｒブロックを生成した後、ビデオエンコーダ２０は、ＣＵについてのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルと、ＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ２０は、ＣＵについてのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵについてのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００４８】
[0066]クロマブロックの場合、イントラまたはインター予測のための予測ブロックを決定するのではなく、ビデオエンコーダ２０は、ＬＭ予測モードでは、再構成された対応するルーマブロックに基づいて、予測ブロックを決定し得る。ビデオデコーダ３０は、再構成された対応するルーマブロックに基づいて、予測ブロックを同様に（similarly）決定し得る。対応するルーマブロックは、現在のクロマブロックが決定されたユニット（例えば、コーディングユニットまたは予測ユニット）の一部であったルーマブロックを指す。ビデオエンコーダ２０は、クロマブロックと、再構成された対応するルーマブロックから生成されたこの予測ブロックとの間の残差を決定し得る。
【００４９】
[0067]さらに、ビデオエンコーダ２０は、ＣＵのルーマ、ＣｂおよびＣｒ残差ブロックを、１つまたは複数のルーマ、ＣｂおよびＣｒ変換ブロックに分解するために、４分木区分化を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの1つの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、これら変換ブロックサンプルを変換するために使用されるシンタックス構造とであり得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックとに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。
【００５０】
[0068]ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の２次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２０は、ＴＵについてのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵについてのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００５１】
[0069]係数ブロック（例えば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、一般に、変換係数が量子化されて、変換係数を表すために使用されるデータ量をできる限り（possibly）低減させ、さらなる圧縮を提供するプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。例えば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を実行し得る。ビデオエンコーダ２０は、ビットストリームにおいて、エントロピー符号化されたシンタックス要素を出力し得る。
【００５２】
[0070]ビデオエンコーダ２０は、エントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。ビットストリームは、ビデオデータの符号化された表現（encoded representation）を含み得る。例えば、ビットストリームは、コーディングされたピクチャおよび関連するデータの表現を形成するビットのシーケンスを含み得る。ビットストリームは、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのシーケンスを備え得る。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、生バイトシーケンスペイロード（ＲＢＳＰ）をカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰはゼロビットを含む。
【００５３】
[0071]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。例えば、第１のタイプのＮＡＬユニットは、ピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットは、コーディングされたスライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットは、補足エンハンスメント情報（ＳＥＩ）のためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれ得る。
【００５４】
[0072]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を復号するために、ビットストリームをパースし得る。ビデオデコーダ３０は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されたプロセスの逆であり得る。例えば、ビデオデコーダ３０は、現在のＣＵのＰＵについての予測ブロックを決定するために、ＰＵのＭＶを使用し得る。別の例として、ＬＭ予測モードの場合、ビデオデコーダ３０は、対応するルーマブロックの再構成されたサンプルに基づいて、クロマブロックについての予測ブロックを決定し得る。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた変換ブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。
【００５５】
[0073]ビデオデコーダ３０は、現在のＣＵのＰＵについての予測ブロックのサンプルを、現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算すること（adding）によって、現在のＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵについてのコーディングブロックを再構成することによって、ビデオデコーダ３０は、ピクチャを再構成し得る。
【００５６】
[0074]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、線形モデル（ＬＭ）ベースのコーディングを実行するように構成され得る。以下は、ＬＭベースの予測コーディングの説明である。例えば、コンプリメント間の冗長性（cross complement redundancy）は、ＹＣｂＣｒ色空間では著しく低減されるが、３つの色成分間の相関は、依然として存在する。相関をさらに低減させることによってビデオコーディング性能を改善するための様々な方法が研究されてきた。
【００５７】
[0075]４：２：０クロマビデオコーディングでは、ＨＥＶＣ規格の開発中に、線形モデル（ＬＭ）予測モードと名付けられた方法がよく研究されてきた。http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2196から入手可能であり、以下、ＪＣＴＶＣ−Ｅ２６６と呼ばれる、J. Chen、V. Seregin、W.-J. Han、J.-S. Kim、B.-M. Joen、「CE6.a.4: Chroma intra prediction by reconstructed luma samples」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-E266, 5th Meeting：ジュネーブ、２０１１年３月１６日〜２３日を参照。
【００５８】
[0076]ＬＭ予測モードでは、クロマサンプルは、以下のように、線形モデルを使用することによって、同じブロックの再構成されたルーマサンプルに基づいて予測される：
【００５９】
【数１】
2020502925.tif 000003
【００６０】
ここで、ｐｒｅｄＣ（ｉ，ｊ）は、ブロック中のクロマサンプルの予測を表し、ｒｅｃＬ（ｉ，ｊ）は、同じブロックのダウンサンプリングされた再構成されたルーマサンプルを表す。パラメータαおよびβは、現在のブロックの周囲の因果関係のある（causal）再構成されたサンプル（例えば、隣接するルーマサンプル）から導出される。Ｎ×Ｎによってクロマブロックサイズを示し、このとき（then）、ｉとｊの両方は、［０、Ｎ）の範囲内にある。
【００６１】
[0077]式（１）におけるパラメータαおよびβは、現在のブロックの周りの隣接する再構成されたルーマサンプルとクロマサンプルとの間の回帰誤差（regression error）を最小化することによって導出される。
【００６２】
【数２】
2020502925.tif 000004
【００６３】
パラメータαおよびβは、以下のように求められる：
【００６４】
【数３】
2020502925.tif 000005
【００６５】
【数４】
2020502925.tif 000006
【００６６】
ここで、ｘｉは、ダウンサンプリングされた再構成されたルーマ参照サンプルであり、ｙｉは、再構成されたクロマ参照サンプルであり、Ｉは、参照サンプルの量（例えば、数）である。ターゲットＮ×Ｎクロマブロックについて、左と上の因果関係のあるサンプルの両方が利用可能であるとき、関与する（involved）サンプルの総数Ｉは、２Ｎに等しく、左のみまたは上のみの因果関係のあるサンプルが利用可能であるとき、関与するサンプルの総数Ｉは、Ｎに等しい。
【００６７】
[0078]図５は、ダウンサンプリングされた、再構成されたルーマブロックをスケーリングするために使用されるスケーリングパラメータがそこから導出される、例となるロケーションを例示する概念図である。例えば、図５は、４：２：０サンプリングの例を例示し、スケーリングパラメータは、αおよびβである。
【００６８】
[0079]一般に、ＬＭ予測モードが適用されるとき、ビデオエンコーダ２０およびビデオデコーダ３０は、以下のステップを呼び出し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、隣接するルーマサンプルをダウンサンプリングし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、線形パラメータ（すなわち、αおよびβ）（スケーリングパラメータとも呼ばれる）を導出し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、現在のルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックおよび線形パラメータ（すなわち、スケーリングパラメータ）から、予測（例えば、予測ブロック）を導出し得る。
【００６９】
[0080]ダウンサンプリングを行う様々な方法が存在し得る。以下は、ダウンサンプリングが実行され得る例となる方法を説明する。
【００７０】
[0081]ＪＣＴＶＣ−Ｅ２６６では、上記で説明されたように、ＬＭ予測モードを実行するとき、ダウンサンプリングされた現在のルーマブロックと、ダウンサンプリングされた隣接するルーマブロックとが必要とされる。ダウンサンプリングされた現在のルーマブロックは、クロマコーディングのための（for）予測ブロックを導出するために使用され、一方（while）、ダウンサンプリングされた隣接するルーマブロックは、パラメータ（すなわち、αおよびβ）導出のために使用される。
【００７１】
[0082]クロマ成分の典型的なサンプリング比は、ルーマ成分のもの（that）の半分であり、４：２：０サンプリングでは、垂直方向における０．５サンプル位相差を有するので、現在のブロックの再構成されたルーマは、以下のように、クロマ信号のサイズおよび位相と一致する（match）ように、垂直方向においてダウンサンプリングされ、水平方向においてサブサンプリングされる：
【００７２】
【数５】
2020502925.tif 000007
【００７３】
ここで、ＲｅｃＬＯｒｉｇ［］は、元の再構成されたルーマサンプルを示す。
【００７４】
[0083]図６は、クロマブロックについての予測ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の例を例示する概念図である。図６に図示されるように、塗りつぶされた（すなわち、黒一色の）三角形によって表されるクロマサンプルは、［１，１］フィルタを適用することによって、２つの塗りつぶされた円によって表される２つのルーマサンプルから予測される。［１，１］フィルタは、２タップフィルタの一例である。
【００７５】
[0084]隣接するルーマブロックのダウンサンプリングについて、隣接するサンプルが現在のルーマブロックの上にあるとき、ダウンサンプリングプロセスは、以下のように定義される：
【００７６】
【数６】
2020502925.tif 000008
【００７７】
[0085]隣接するサンプルが現在のルーマブロックの左にあるとき、ダウンサンプリングプロセスは、以下のように定義される：
【００７８】
【数７】
2020502925.tif 000009
【００７９】
[0086]２タップフィルタ、すなわち、［１，１］は、図６に例示された例で使用されたものと同じであり得る。
【００８０】
[0087]他のダウンサンプリング技法もまた、提案されている。http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2979から入手可能であり、ＪＣＴＶＣ−Ｆ５０２と呼ばれる、Yi-Jen Chiu、Yu Han、Lidong Xu、Wenhao Zhang、Hong Jiang、「Cross-channel techniques to improve intra chroma prediction」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-F502, 6th Meeting：トリノ、ＩＴ、２０１１年７月１４日〜２２日では、２タップフィルタを使用する代わりに、２次元６タップフィルタリングが、現在のルーマブロックと、隣接するルーマブロックとの両方に適用される。２次元フィルタ係数セットは、以下のとおりである：
【００８１】
【数８】
2020502925.tif 000010
【００８２】
[0088]換言すれば、ダウンサンプリングされたルーマサンプルは、以下の式（９）によって導出される：
【００８３】
【数９】
2020502925.tif 000011
【００８４】
[0089]図７は、予測ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の別の例を例示する概念図である。図７に図示されるように、塗りつぶされた（すなわち、黒一色の）三角形によって表されるクロマサンプルは、６タップフィルタを適用することによって、６つの塗りつぶされた円によって表される６つのルーマサンプルから予測される。
【００８５】
[0090]１つのクロマサンプルの予測子（predictor）は、式（１）で定義されたように、線形関数を使用して導出されるので、６タップフィルタが適用されるとき、１つのクロマサンプルの予測子は、６つの隣接するルーマサンプルに依拠するということが分かるだろう（could）。式（１）と（９）を組み合わせると、その結果は、以下の式（１０）となる：
【００８６】
【数１０】
2020502925.tif 000012
【００８７】
[0091]以下の本文では、ダウンサンプリングされたサンプルｒｅｃＬ（ｉ，ｊ）は、（ｉ，ｊ）に位置するクロマサンプルについての、対応するダウンサンプリングされたルーマサンプルと名付けられる。
【００８８】
[0092]２０１６年９月１５日に出願された米国特許仮出願第６２／３９５，１４５号（以下、‘１４５出願）および２０１７年９月１４日に出願された米国特許出願第１５／７０５，０２９号（以下、‘０２９出願）では、より多くのダウンサンプリングフィルタが説明されており、図８Ａ〜図８Ｄに示されるように、より多くの隣接するサンプルが線形モデルを導出するために使用され得る。一般に、図８Ａ〜図８Ｄは、ダウンサンプリングのために使用される隣接するサンプルを例示する概念図である。図８Ａ〜図８Ｄにおいて、塗りつぶされた円は、隣接するクロマサンプルの例である。それらの対応するルーマサンプルが、スケーリングパラメータを決定するために隣接するルーマサンプルをダウンサンプリングすることの一部として、ダウンサンプリングされ得る。
【００８９】
[0093]以下は、ＬＭモードでのシグナリングを説明する。（両方が前掲の）ＪＣＴＶＣ−Ｅ２６６およびＪＣＴＶＣ−Ｆ５０２では、ＬＭ予測が現在のブロックのために使用されるかどうかを示すために、フラグがシグナリングされる。‘１４５出願および‘０２９出願は、より多くのＬＭ予測モードを説明しており、より高度に複雑な（sophisticated）シグナリング方法が説明され得る。ＬＭモードおよび非ＬＭモードは、順序付きリストにおいて編成される。モードの順序は、隣接ブロックのクロマイントラ予測モードに依存する。現在のブロックの順序付きリストにおけるコーディングされたクロマイントラ予測モードのインデックスは、ビデオエンコーダ２０によってシグナリングされる。
【００９０】
[0094]例となる技法のいくつかには、問題が存在し得る。以下に、これらの可能性のある問題のいくつかを説明する。ＪＣＴＶＣ−Ｆ５０２において提案されたＬＭ予測モードで呼び出されるダウンサンプリングプロセスは、より効率的であり得るが、それはより多くの隣接ブロック（例えば、隣接するルーマサンプル）にアクセスし、これは、ハードウェア設計におけるラインバッファコストを増大させ得る。‘１４５出願および‘０２９出願で提案されたシグナリング方法は、コーディング性能を改善し得る。‘１４５出願および‘０２９出願における例となる技法はまた、モードリストを並べ替えること（reordering）のオーバーヘッドを含み得る。また、‘１４５出願および‘０２９出願における例となる技法は、より多くの隣接ブロック（例えば、隣接するルーマサンプル）にアクセスすることによって、ラインバッファコストを増大させ得る。
【００９１】
[0095]したがって、隣接するルーマサンプルをダウンサンプリングするためのいくつかの技法には、技術的問題が存在し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオエンコーダ２０およびビデオデコーダ３０のそれぞれのもの（ones）にローカルなそれぞれのラインバッファをそれぞれ（each）含む。例えば、ビデオエンコーダ２０の処理回路は、ビデオエンコーダ２０のラインバッファにアクセスするために、ビデオエンコーダ２０の外部にあるシステムバスを必要としなくなり得（may not need）、ビデオデコーダ３０の処理回路は、ビデオデコーダ３０のラインバッファにアクセスするために、ビデオデコーダ３０の外部にあるシステムバスを必要としなくなり得る。ビデオエンコーダ２０のラインバッファは、ビデオエンコーダ２０と同じ集積回路（ＩＣ）チップ内にあり得、ビデオデコーダ３０のラインバッファは、ビデオデコーダ３０と同じＩＣチップ内にあり得る。ビデオエンコーダ２０およびビデオデコーダ３０は、比較的短い時間量で（in）それぞれのラインバッファに記憶されている（stored）データをフェッチすることが可能であり得、なぜなら、ラインバッファにアクセスすることの可用性が、何らかの（some）他の構成要素がラインバッファにアクセスすることにより（due to）遅延されないからである（例えば、それぞれのラインバッファは、ビデオエンコーダ２０およびビデオデコーダ３０以外の構成要素によって使用され得ない）。
【００９２】
[0096]例えば、ビデオエンコーダ２０を含むＩＣまたはビデオデコーダ３０を含むＩＣの上に存在し得る全ての構成要素のうち、ビデオエンコーダ２０またはビデオデコーダ３０のみ、またはＩＣの限られた数の構成要素が、ラインバッファにアクセスし得る。ビデオエンコーダ２０またはビデオデコーダ３０を含むＩＣ上には、メモリが存在し得る。しかしながら、このメモリは、ＩＣ上の全ての構成要素によってアクセス可能であり得る。必ずしも全てではないが、いくつかの例では、ラインバッファは、ＩＣ上の全ての構成要素に利用可能なメモリとは異なり得、（適宜（as applicable））ビデオエンコーダ２０またはビデオデコーダ３０に利用可能であり、その他の構成要素には利用可能でないか、またはＩＣ上の限られた数の構成要素に利用可能であり得る。ＩＣの様々な構成要素は、システムバスを介してこのメモリにアクセスし得るが、ラインバッファにアクセスすることは、ビデオエンコーダ２０またはビデオデコーダ３０が同じシステムバスを使用することを必要としない場合がある（may）。
【００９３】
[0097]いくつかの例では、ビデオデコーダ３０上などの、ラインバッファは、比較的少量の記憶空間を提供し得る。例えば、ラインバッファは、限られた数のルーマおよびクロマサンプル値を記憶し得、ピクチャ全体のルーマおよびクロマサンプル値を記憶するのに十分な記憶を提供し得ない場合がある。ビデオデコーダ３０のためのラインバッファは、符号化または復号されている現在のブロックに近接している（例えば、隣接する）ルーマおよびクロマサンプル値などの、再構成されたルーマおよびクロマサンプル値を記憶し得る。ビデオデコーダ３０がそのラインバッファからサンプル値をフェッチすることになる場合、ビデオデコーダ３０は、比較的迅速におよび低い電力使用量（low power usage）でサンプル値をフェッチすることが可能であり得る。しかしながら、ビデオデコーダ３０がそのラインバッファ内に記憶されていない（not stored）サンプル値をフェッチすることになる場合、ビデオデコーダ３０は、サンプル値を取り出すために、ビデオデコーダ３０の外部にあるシステムメモリにアクセスするのに電力および時間を消費し得る。したがって、可能であれば、ラインバッファメモリ以外のメモリへのビデオデコーダ３０のアクセスを制限することに技術的利点が存在し得る。
【００９４】
[0098]ビデオエンコーダ２０のラインバッファメモリは、必ずしも比較的少量の記憶空間に限定されるわけではない。しかしながら、ビデオデコーダ３０は、ビデオエンコーダ２０の逆の動作を実行するので、ビデオエンコーダ２０が、ビデオデコーダ３０のラインバッファ外にあるダウンサンプリングのためのサンプル値に依拠する場合、ビデオデコーダ３０がどのくらい迅速にピクチャのブロックを再構成することが可能であるかに影響を及ぼす可能性がある。
【００９５】
[0099]ラインバッファの上記の説明は、理解を助けるために提供されており、限定的であると見なされるべきではない。本開示で説明される例となる技法は、より大きいラインバッファメモリが使用される例か、またはラインバッファメモリが使用されない例に適用可能であり得る。簡単にするために、図２および図３では、ビデオデータメモリへの参照が行われ、ビデオデータメモリの例が、ラインバッファである。しかしながら、ビデオデータメモリは、ラインバッファとは異なり得る。
【００９６】
[0100]より詳細に説明されるように、１つまたは複数の例となる技法では、ＬＭ予測モードのために隣接するルーマサンプルをダウンサンプリングする場合、ビデオエンコーダ２０およびビデオデコーダ３０は、ラインバッファの外部に記憶された隣接するルーマサンプルを除外するダウンサンプリングフィルタリング技法を利用し得る。いくつかの例では、スケーリングパラメータを決定するために隣接するルーマサンプルをダウンサンプリングするために使用されるルーマサンプルが、ラインバッファ内に記憶されている（are stored）場合には、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のフィルタに従ってダウンサンプリングを実行し得る。しかしながら、スケーリングパラメータを決定するために隣接するルーマサンプルをダウンサンプリングするために使用されるルーマサンプルが、ラインバッファ内に記憶されていない（are not stored）場合、ビデオエンコーダ２０およびビデオデコーダ３０は、第２のフィルタに従ってダウンサンプリングを実行し得る。第２のフィルタは、第１のフィルタとは異なり得る。いくつかの例では、スケーリングパラメータを決定するために隣接するルーマサンプルをダウンサンプリングするために使用されるルーマサンプルが、ラインバッファ内に記憶されていない場合、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のフィルタに従ってダウンサンプリングを実行し得るが、ビデオエンコーダ２０またはビデオデコーダ３０の外部にあるメモリからそれらのルーマサンプル値をフェッチするのではなく、ラインバッファに記憶されていない値についてのルーマサンプル値を生成する。
【００９７】
[0101]以下は、本開示による技法を説明する。例となる技法は、上述された問題に対処し得るが、必ずしも上述された問題に対処する必要はない。項目別（itemized）の技法は、個々に適用され得る。代替として、それらの任意の組合せが適用され得る。
【００９８】
[0102]例となる技法では、現在のブロックの左上ルーマサンプルの座標（位置）は、（ｘ０，ｙ０）によって示される。例となる技法は、値がダウンサンプリングのためにフェッチされるルーマサンプルからルーマサンプルを除外することで説明される。簡単にするために、除外されるルーマサンプルは、現在のブロックの左上ルーマサンプルを基準にして（with respect to）説明される。
【００９９】
[0103]クロマサンプルについての対応するダウンサンプリングされた（downsampled）ルーマサンプルの導出プロセス中、フェッチされるルーマサンプルは、クロマサンプルの位置に依存して所与のエリアに制限される。一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセス中、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０およびｙ＜ｙ０、を有するルーマサンプルは、現在のブロックの上に隣接するルーマサンプルのダウンサンプリングプロセスに関与しない（is not involved in）。例えば、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチする際に、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し、ルーマブロックよりも上にあるルーマサンプルをフェッチし得る。
【０１００】
[0104]図９は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。図１０は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。図９および図１０は、ＪＣＴＶＣ−Ｆ５０２におけるダウンサンプリング方法（図９）と、本開示で説明される技法（図１０）との間の違いを示す。最も左の上のダウンサンプリングされた隣接するルーマサンプルを得るために、ＪＣＴＶＣ−Ｆ５０２は、プロセスが現在のブロックに対して左上にある２つのルーマサンプルをフェッチするであろうことを説明し、一方、ビデオエンコーダ２０およびビデオデコーダ３０は、本開示で説明される例となる技法によると、これらの２つのルーマサンプルをフェッチしない場合がある。
【０１０１】
[0105]一例では、クロマサンプルの対応するダウンサンプリングされた（downsampled）ルーマサンプルを導出するためのフィルタ長（length of the filter）（すなわち、フィルタが及ぶ（filter extends over）サンプルの数）は、フィルタリングプロセスが、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０およびｙ＜ｙ０、を有するルーマサンプルを伴う（involve）だろうときより短い。換言すれば、ビデオエンコーダ２０およびビデオデコーダ３０は、どの隣接するルーマサンプルがダウンサンプリングに関与するかに基づいて、ダウンサンプリングプロセスのために異なるフィルタを利用し得る。
【０１０２】
[0106]図１１Ａおよび図１１Ｂは、異なる位置におけるダウンサンプリングされたサンプルについての異なるフィルタ長を例示する概念図である。ＪＣＴＶＣ−Ｆ５０２において提案されたダウンサンプリングフィルタは、図１１Ａに示されるように、フィルタリングプロセスに関与する、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０，ｙ＜ｙ０、を有するルーマサンプルがないときに使用される。他方では、ＪＣＴＶＣ−Ｅ２６６において提案されたダウンサンプリングフィルタは、図１１Ｂに示されるように、ＪＣＴＶＣ−Ｆ５０２フィルタリングプロセスに関与する、座標（ｘ、ｙ）、ここで、ｘ＜ｘ０，ｙ＜ｙ０、を有するルーマサンプルがあるときに使用される。ｘ０およびｙ０の値は、ピクチャの一定の場所にある（in the certain of the picture）座標などの、ピクチャ内の座標の値であり得る。
【０１０３】
[0107]一例では、クロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタは、フィルタリングプロセスが、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０およびｙ＜ｙ０、を有するルーマサンプルを伴うか否かにかかわらず、同じである。しかしながら、フィルタリングプロセスが、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０およびｙ＜ｙ０、を有するルーマサンプルを伴うとき、これらのルーマサンプルは、対応するロケーションからフェッチされる代わりに、隣り合うルーマサンプルによってパディングされる。
【０１０４】
[0108]図１２Ａおよび図１２Ｂは、パディングされたサンプルを用いたフィルタリングを例示する概念図である。図１２Ａおよび図１２Ｂでは、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０およびｙ＜ｙ０、を有するルーマサンプルがフィルタリングプロセスに関与するか否かにかかわらず、ＪＣＴＶＣ−Ｆ５０２において提案されるダウンサンプリングフィルタが常に使用される。しかし、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０およびｙ＜ｙ０、を有するルーマサンプルが関与するとき、これらのサンプルは、図１２Ｂに示されるように、フェッチされる代わりに、パディングされる。式（１１）は、数式の形でパディングプロセスを示す：
【０１０５】
【数１１】
2020502925.tif 000013
【０１０６】
[0109]したがって、図１０〜図１２Ｂは、ルーマサンプルをダウンサンプリングするために、ビデオエンコーダ２０およびビデオデコーダ３０が、どの隣接するルーマサンプルをフェッチするかの例を例示する。例えば、フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプル（a plurality of luma samples that are above the luma block）を含み、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプル（luma samples that are above and left of the top-left luma sample of the luma block）を除外する。ビデオエンコーダ２０およびビデオデコーダ３０は、フェッチされた隣接するルーマサンプル（fetched neighboring luma samples）に基づいて、複数のダウンサンプリングされたルーマサンプルを決定し得る。ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応する。
【０１０７】
[0110]例えば、図１０、図１１Ｂ、および図１２Ｂは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルを例示する。図１１Ａおよび図１２Ａは、ルーマブロックよりも上にあるが、左上ルーマサンプルの真上にはない、ダウンサンプリングされたルーマサンプルを例示する。したがって、図１０〜図１２Ｂは、ビデオエンコーダ２０およびビデオデコーダ３０が、複数のダウンサンプリングされたルーマサンプルを決定し得る例となる方法を例示し、ここで、図１０、図１１Ｂ、および図１２Ｂにおけるダウンサンプリングされたルーマサンプルは、複数のダウンサンプリングされたルーマサンプルのうちの１つであり、図１１Ａおよび図１２Ａにおけるダウンサンプリングされたルーマサンプルは、複数のダウンサンプリングされたルーマサンプルのうちの別の１つである。
【０１０８】
[0111]図１０、図１１Ｂ、および図１２Ｂに例示されるように、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応する。図１０、図１１Ｂ、および図１２Ｂのダウンサンプリングされたルーマサンプルを生成するためにダウンサンプリングされるフェッチされた隣接するルーマサンプルは、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプル（luma samples that are above and left to a top-left luma sample of the luma block）を除外する。対照的に、図９のダウンサンプリングされたルーマサンプルを生成するためにダウンサンプリングされるフェッチされた隣接するルーマサンプルは、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを含む。いくつかの例では、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルは、ラインバッファメモリに記憶されていない場合がある。したがって、これらのルーマサンプルにアクセスすることは、処理および帯域幅非効率になり得る。したがって、例となる技法は、フェッチされた（fetched）ルーマサンプルから、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるサンプルを除外することによって、処理および帯域幅効率を促進し得る。
【０１０９】
[0112]しかしながら、いくつかの例では、ＪＣＴＶＣ−Ｆ５０２において説明されるフィルタに従ってダウンサンプリングするために必要な全てのルーマサンプルは、ラインバッファに記憶され得、このような例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＪＣＴＶＣ−Ｆ５０２フィルタに従ってダウンサンプリングを実行するために必要な全ての隣接するルーマサンプルをフェッチし得る。ＪＣＴＶＣ−Ｆ５０２のフィルタに従ってダウンサンプリングするために必要とされる全てのルーマサンプルが、（例えば、これらのルーマサンプルが、左上サンプルよりも上かつ左に位置するので）利用可能でない場合、ビデオエンコーダ２０およびビデオデコーダ３０は、ＪＣＴＶＣ−Ｆ５０２のフィルタにおいて使用されるそれらとは異なるサンプルをフェッチし得る。ＪＣＴＶＣ−Ｆ５０２のフィルタへの参照は、単なる一例として使用されており、本技法は、他のフィルタにも同様に適用可能であることが理解されるべきである。
【０１１０】
[0113]図１１Ａに例示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。例えば、図１１Ａおよび図１２Ａでは、第１のフィルタは、ルーマブロックよりも上にある第１の行からの３つのルーマサンプルを利用し、第１の行よりも上にある第２の行からの３つのルーマサンプルを利用する。図１１Ａおよび図１２Ａでは、フェッチされた隣接するルーマサンプルの第１のセットは、例示されているダウンサンプリングされたルーマサンプルを生成するために利用される、例となるルーマサンプルである。
【０１１１】
[0114]図１０および図１１Ｂに例示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要とされるとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２のフィルタを適用し得る。ビデオエンコーダ２０またはビデオデコーダ３０が第２のフィルタを適用するとき、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のフィルタの使用が、左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルをフェッチすることをもたらすことになるということを、必ずしも（可能ではあるが）決定するとは限らないことが理解されるべきである。むしろ、第１のフィルタの使用が、左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルをフェッチすることをもたらすことになる状態では、ビデオエンコーダ２０およびビデオデコーダ３０は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルをフェッチすることを必要としない、ダウンサンプリングのために（for）第２のフィルタを利用し得る。
【０１１２】
[0115]例えば、図１０および図１１Ｂでは、第１のフィルタ（例えば、図１１Ａで使用されたもの）が使用された場合には、ビデオエンコーダ２０およびビデオデコーダ３０は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルをフェッチすることを必要としたであろう。左上ルーマサンプルよりも上かつ左にあるルーマサンプルをフェッチすることを回避するために、ビデオエンコーダ２０およびビデオデコーダ３０は、第２のフィルタを適用し得る。いくつかの例では、第２のフィルタは、ルーマブロックよりも上にある第１の行からの３つ未満のルーマサンプル（例えば、図１０では２つのルーマサンプル、および図１１Ｂでは１つのルーマサンプル）を利用し、第１の行よりも上にある第２の行からの３つ未満のルーマサンプル（例えば、図１０では２つのルーマサンプル、および図１１Ｂでは１つのルーマサンプル）を利用する。
【０１１３】
[0116]図１０、図１１Ａ、および図１１Ｂでは、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマサンプルをフェッチすることが、左上ルーマサンプルよりも上かつ左にあるルーマサンプルをフェッチすることをもたらすことになるかどうかに基づいて、異なるフィルタを利用し得る。しかしながら、例となる技法は、そのように限定されるものではない。
【０１１４】
[0117]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、１つのフィルタを利用し得る。ダウンサンプリングのためにそのフィルタを使用することが、ビデオエンコーダ２０およびビデオデコーダ３０が、左上ルーマサンプルよりも上かつ左にあるルーマサンプルをフェッチすることをもたらすことになる状態では、左上ルーマサンプルよりも上かつ左にあるルーマサンプルをフェッチするのではなく、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマ値（例えば、上記で説明されたパディング値）を生成し得る。例えば、図１２Ｂに例示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、フェッチすることなく、ルーマブロックの左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値（例えば、パディング値）を生成し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタ（例えば、ＪＣＴＶＣ−Ｆ５０２からのフィルタ）を適用し得る。
【０１１５】
[0118]上記は、ルーマブロックよりも上にある隣接するルーマサンプルをダウンサンプリングするための例を提供した。以下は、ルーマブロックの左にある隣接するルーマサンプルをダウンサンプリングするための例である。左に隣接するルーマサンプルをダウンサンプリングするための以下の例、およびルーマブロックよりも上にある隣接するルーマサンプルをダウンサンプリングするための上記の例は、共にまたは別々に使用され得る。
【０１１６】
[0119]例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、上に隣接するルーマサンプルをダウンサンプリングすることに関して本開示で説明される１つまたは複数の例となる技法を実行するように構成され得、左に隣接するルーマサンプルをダウンサンプリングすることに関して本開示で説明される１つまたは複数の例となる技法を実行するように構成されない場合がある。ビデオエンコーダ２０およびビデオデコーダ３０は、上に隣接するルーマサンプルをダウンサンプリングすることに関して本開示で説明される１つまたは複数の例となる技法を実行するように構成されない場合があり、左に隣接するルーマサンプルをダウンサンプリングすることに関して本開示で説明される１つまたは複数の例となる技法を実行するように構成され得る。ビデオエンコーダ２０およびビデオデコーダ３０は、上に隣接するルーマサンプルをダウンサンプリングすることに関して本開示で説明される１つまたは複数の例となる技法を実行するように構成され得、左に隣接するルーマサンプルをダウンサンプリングすることに関して本開示で説明される１つまたは複数の例となる技法を実行するように構成され得る。
【０１１７】
[0120]一例として、左に隣接するルーマサンプルの場合、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセス中、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルは、現在のブロックの左の隣接するルーマサンプルのダウンサンプリングプロセスに関与しない。ここで、ｋは、０より大きい整数である。一例では、ｋは、４に等しい。
【０１１８】
[0121]図１３は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの例を例示する概念図である。図１４は、ダウンサンプリングされたルーマサンプルを得るためにフェッチされるルーマサンプルの別の例を例示する概念図である。図１３および図１４は、ｋ＝４であるときの、それぞれ、ＪＣＴＶＣ−Ｆ５０２ダウンサンプリング方法（図１３）と、本開示で説明される技法（図１４）との間の違いを示す。‘１４５出願および‘０２９出願に説明されているように、第２の列のダウンサンプリングされた左に隣接するルーマサンプルを得るために、ＪＣＴＶＣ−Ｆ５０２におけるダウンサンプリング方法は、座標（ｘ０−５，ｙ０）および（ｘ０−５，ｙ０＋１）を有する２つのルーマサンプルをフェッチすることになり、一方、ビデオエンコーダ２０およびビデオデコーダ３０は、本開示の例に従って、これら２つのルーマサンプルをフェッチしない場合がある。
【０１１９】
[0122]一例では、クロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタ長（すなわち、フィルタが入力として使用したサンプルの数）は、フィルタリングプロセスが、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルを伴うときにより短い。
【０１２０】
[0123]図１５Ａおよび図１５Ｂは、異なる位置におけるダウンサンプリングされたサンプルについての異なるフィルタ長を例示する概念図である。ＪＣＴＶＣ−Ｆ５０２において提案されたダウンサンプリングフィルタは、図１５Ａに示されるように、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルが、フィルタリングプロセスに関与しないときに使用される。他方では、ＪＣＴＶＣ−Ｅ２６６において提案されたダウンサンプリングフィルタは、図１５Ｂに示されるように、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルが、ＪＣＴＶＣ−Ｆ５０２フィルタリングプロセスに関与するときに使用される。
【０１２１】
[0124]一例では、クロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタは、フィルタリングプロセスが、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋ、を有するルーマサンプルに関与するか否かにかかわらず、同じである。しかしながら、フィルタリングプロセスが、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルに関与するとき、これらのルーマサンプルは、対応するロケーションからフェッチされる代わりに、隣り合うルーマサンプルによってパディングされる。
【０１２２】
[0125]図１６Ａおよび図１６Ｂは、パディングされたサンプルを用いたフィルタリングを例示する概念図である。図１６Ａおよび図１６Ｂでは、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルがフィルタリングプロセスに関与するか否かにかかわらず、ＪＣＴＶＣ−Ｆ５０２において提案されたダウンサンプリングフィルタが常に使用される。しかし、座標（ｘ，ｙ）、ここで、ｘ＜ｘ０−ｋおよびｙ＞＝ｙ０、を有するルーマサンプルが関与するとき、これらのサンプルは、図１６Ｂに示されるように、フェッチされる代わりに、パディングされる。式（１１）は、数式の形でパディングプロセスを示す：
【０１２３】
【数１２】
2020502925.tif 000014
【０１２４】
[0126]したがって、図１４〜図１６Ｂは、ルーマサンプルをダウンサンプリングするために、ビデオエンコーダ２０およびビデオデコーダ３０が、どの隣接するルーマサンプルをフェッチするかの例を例示する。例えば、フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを含み、ルーマブロックからしきい値数（例えば、ｋ個）のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外する。ビデオエンコーダ２０およびビデオデコーダ３０は、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定し得る。ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応する。
【０１２５】
[0127]例えば、図１４、図１５Ｂ、および図１５Ｂは、ルーマブロックから４つのサンプル左にあるダウンサンプリングされたルーマサンプルを例示し、この例では、ルーマブロックの左にあるサンプルのしきい値数は、４である（例えば、ｋ＝４）。したがって、図１４、図１５Ｂ、および図１６Ｂは、フェッチされた隣接するルーマサンプルが、ルーマブロックの左にあるサンプルを含み、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルを除外し、ダウンサンプリングされたルーマサンプルのうちの１つが、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応する例を例示する。
【０１２６】
[0128]図１５Ａおよび図１６Ａは、ルーマブロックの左にあるが、ルーマブロックからしきい値数のルーマサンプル左（threshold number of luma samples to the left）にない、ダウンサンプリングされたルーマサンプルを例示する。例えば、左にあるルーマサンプルのしきい値数が、それを超えるとルーマサンプルがフェッチすることから除外される、４である場合、図１５Ａおよび図１６Ａでは、ダウンサンプリングされたルーマサンプルは、ルーマブロックから２つのルーマサンプル左にあるように（例えば、ルーマブロックから２つのルーマサンプル左にある列において）例示される。したがって、図１４〜図１６Ｂは、ビデオエンコーダ２０およびビデオデコーダ３０が、複数のダウンサンプリングされたルーマサンプルを決定し得る例となる方法を例示し、ここで、図１４、図１５Ｂ、および図１６Ｂにおけるダウンサンプリングされたルーマサンプルは、複数のダウンサンプリングされたルーマサンプルのうちの１つであり、図１５Ａおよび図１６Ａにおけるダウンサンプリングされたルーマサンプルは、複数のダウンサンプリングされたルーマサンプルのうちの別の１つである。
【０１２７】
[0129]図１４、図１５Ｂ、および図１５Ｂに例示されるように、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のルーマサンプル左にある、ダウンサンプリングされたルーマサンプルに対応する（例えば、しきい値数は４であるので、２列より多くの（more than two columns）ダウンサンプリングされたルーマサンプルに対応する）。図１４、図１５Ｂ、および図１６Ｂのダウンサンプリングされたルーマサンプルを生成するためにダウンサンプリングされるフェッチされた隣接するルーマサンプルは、ルーマブロックからしきい値数（例えば、ｋ＝４個）のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外する。対照的に、図１３のダウンサンプリングされたルーマサンプルを生成するためにダウンサンプリングされるフェッチされた隣接するルーマサンプルは、ルーマブロックからしきい値数のサンプルよりも左にあるルーマサンプルを含む。いくつかの例では、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルは、ラインバッファメモリに記憶されていない場合がある。したがって、これらのルーマサンプルにアクセスすることは、処理および帯域幅非効率になり得る。したがって、例となる技法は、フェッチすることから、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外することによって、処理および帯域幅効率を促進し得る。
【０１２８】
[0130]しかしながら、いくつかの例では、ＪＣＴＶＣ−Ｆ５０２において説明されるフィルタに従ってダウンサンプリングするために必要な全てのルーマサンプルは、ラインバッファに記憶され得、このような例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＪＣＴＶＣ−Ｆ５０２フィルタに従ってダウンサンプリングを実行するために必要な全ての隣接するルーマサンプルをフェッチし得る。ＪＣＴＶＣ−Ｆ５０２のフィルタに従ってダウンサンプリングするために必要な全てのルーマサンプルが、（例えば、これらのルーマサンプルが、ルーマブロックからしきい値数のサンプルよりも左かつルーマブロックの左上ルーマサンプルより下に位置するので）利用可能でない場合には、ビデオエンコーダ２０およびビデオデコーダ３０は、ＪＣＴＶＣ−Ｆ５０２のフィルタにおいて使用されるそれらとは異なるサンプルをフェッチし得る。ＪＣＴＶＣ−Ｆ５０２のフィルタへの参照は、単なる一例として使用されており、本技法は、他のフィルタにも同様に適用可能であることが理解されるべきである。
【０１２９】
[0131]図１５Ａに例示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。第１のダウンサンプリングされたルーマサンプルは、ルーマブロックから第１の数の列左にある（first number of columns to the left of the luma block）列にあり得る。例えば、図１５Ａおよび図１６Ａでは、第１のフィルタは、ルーマブロックの左にある第１の行からの３つのルーマサンプルを利用し、第１の行の下にある第２の行からの３つのルーマサンプルを利用する。また、図１５Ａおよび図１６Ａでは、ダウンサンプリングされたルーマサンプルは、ルーマブロックから２列左にある列にある。図１５Ａおよび図１６Ａでは、フェッチされた隣接するルーマサンプルの第１のセットは、例示されているダウンサンプリングされたルーマサンプルを生成するために利用される、例となるルーマサンプルである。
【０１３０】
[0132]図１４および図１５Ｂに例示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要とされたであろうとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２のフィルタを適用し得る。ビデオエンコーダ２０またはビデオデコーダ３０が第２のフィルタを適用するとき、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のフィルタの使用が、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にある少なくとも１つのルーマサンプルをフェッチすることをもたらすことになるということを、必ずしも（可能ではあるが）決定するとは限らないことが理解されるべきである。むしろ、第１のフィルタの使用が、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にある少なくとも１つのルーマサンプルをフェッチすることをもたらすことになる状態では、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルをフェッチすることを必要としない第２のフィルタをダウンサンプリングのために利用し得る。
【０１３１】
[0133]例えば、図１４および図１５Ｂでは、第１のフィルタ（例えば、図１５Ａで使用されたもの）が使用された場合には、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックからしきい値数のルーマサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルをフェッチすることを必要としたであろう。ルーマブロックからしきい値数のルーマサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルをフェッチすることを回避するために、ビデオエンコーダ２０およびビデオデコーダ３０は、第２のフィルタを適用し得る。いくつかの例では、第２のフィルタは、ルーマブロックの左にある第１の行からの３つ未満のルーマサンプル（例えば、図１４では２つのルーマサンプル、および図１５Ｂでは１つのルーマサンプル）を利用し、第１の行よりも上にある第２の行からの３つ未満のルーマサンプル（例えば、図１４では２つのルーマサンプル、および図１５Ｂでは１つのルーマサンプル）を利用する。
【０１３２】
[0134]図１４、図１５Ａ、および図１５Ｂでは、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマサンプルをフェッチすることが、ルーマブロックからしきい値数のルーマサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルをフェッチすることをもたらすことになるかどうかに基づいて、異なるフィルタを利用し得る。しかしながら、例となる技法は、そのように限定されるものではない。
【０１３３】
[0135]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、１つのフィルタを利用し得る。ダウンサンプリングのためにそのフィルタを使用することが、ビデオエンコーダ２０およびビデオデコーダ３０が、ルーマブロックからしきい値数のルーマサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルをフェッチすることをもたらすことになる状態では、それらのルーマサンプルをフェッチするのではなく、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマ値（例えば、上記で説明されたパディング値）を生成し得る。例えば、図１６Ｂに例示されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、フェッチすることなく、ルーマブロックからしきい値数のルーマサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値（例えば、パディング値）を生成し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタ（例えば、ＪＣＴＶＣ−Ｆ５０２からのフィルタ）を適用し得る。
【０１３４】
[0136]前述の技法は、上記で説明された特定のダウンサンプリングフィルタに限定されるものではなく、任意のダウンサンプリングフィルタと共に使用され得る。また、前述の技法は、ｙｕｖ４２０クロマフォーマットのビデオ／画像コーディングに限定されるものではない。一例として、それらはまた、ｙｕｖ４２２クロマフォーマットのビデオ／画像コーディングにおいて使用され得る。
【０１３５】
[0137]ＬＭモード（例えば、ＪＣＴＶＣ−Ｅ２６６において提案されたＬＭモード、または‘１４５出願および‘０２９出願において提案された複数のＬＭモードのうちの１つなど）が使用されるかどうかを示すための、ＬＭ＿ｆｌａｇと名付けられたグループ分けフラグ（grouping flag）が、適宜、ビデオエンコーダ２０またはビデオデコーダ３０によってコーディングされる。このフラグをコーディングするためのコンテキストは、１つまたは複数の隣接ブロックのコーディングされた／復号された（coded/decoded）ＬＭ＿ｆｌａｇに依存し得る。
【０１３６】
[0138]一例では、このようなフラグは、最初にコーディングされる。このフラグが、ＬＭモードが使用されることを示す場合、ＬＭモードのインデックスが、ビデオエンコーダ２０によって符号化されるビットストリームにおいてさらにシグナリングされ得る。そうでない場合、ＬＭモードを除外した他のクロマモードが、さらにシグナリングされ得る。例として、ＬＭ＿ｆｌａｇには３つのコンテキストが存在し得る：ＬＭ  ｃｔｘ［０］、ＬＭ  ｃｔｘ［１］、およびＬＭ  ｃｔｘ［２］。変数ｃｔｘは、ｃｔｘ＝ＬＭ＿ｆｌａｇ＿Ａ＋ＬＭ＿ｆｌａｇ＿Ｂとして計算され、ここで、ＬＭ＿ｆｌａｇ＿ＡおよびＬＭ＿ｆｌａｇ＿Ｂは、隣接ブロックのＬＭ＿ｆｌａｇである。一例では、それぞれ、ＡおよびＢによって示される隣接ブロックが、図１７に示される（例えば、Ａ、Ａ０、Ａ１、Ｂ、Ｂ０、Ｂ１、およびＢ２）。図１７は、現在のブロックの隣接ブロックを例示する概念図である。
【０１３７】
[0139]さらに一例では、ブロックＸ（Ｘは、隣接ブロックのうちの１つである）が、イントラ予測によってコーディングされないか、またはそれが存在しない（すなわち、利用可能でない）とき、ＬＭ＿ｆｌａｇ＿Ｘは、０に等しく設定され、ここで、Ｘは、ＡまたはＢである。さらに一例では、隣接ブロックが現在のブロックよりも上に位置するとき、隣接ブロックは、同じＬＣＵ内にあるべきことが必要とされ得る。隣接ブロックが、現在のＬＣＵ外にある場合、それは利用不可能として扱われ得る。
【０１３８】
[0140]したがって、一例では、ビデオデコーダ３０は、ルーマブロックとクロマブロックとを含む現在のブロックについてのフラグを復号し得る。フラグ（例えば、ＬＭ＿ｆｌａｇ）は、ＬＭ予測コーディングがクロマブロックに対してイネーブルにされる（is enabled for）ことを示す。ビデオデコーダ３０は、ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、フラグを復号するように構成され得る。同様に、ビデオエンコーダ２０は、ルーマブロックとクロマブロックとを含む現在のブロックについてのフラグを符号化し得る。フラグ（例えば、ＬＭ＿ｆｌａｇ）は、ＬＭ予測コーディングがクロマブロックに対してイネーブルにされることを示す。ビデオエンコーダ２０は、ＬＭ予測コーディングが隣接ブロックに対してイネーブルにされるかどうかを示す１つまたは複数のフラグを備えるコンテキストに基づいて、フラグを符号化し得る。
【０１３９】
[0141]本開示では、ＬＭ＿ｆｌａｇに関して説明される例となる技法は、どのルーマサンプルがＬＭ予測のためにダウンサンプリングされるかに関連する例となる技法とは別個におよび独立して適用され得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、上記で説明されたように、ダウンサンプリングから隣接するルーマサンプルを除外し、上記で説明されたように、ＬＭ＿ｆｌａｇを符号化または復号するように構成され得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、上記で説明されたように、ダウンサンプリングから隣接するルーマサンプルを除外するが、上記で説明されたように、ＬＭ＿ｆｌａｇを符号化または復号しないように構成され得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、上記で説明されたように、ダウンサンプリングから隣接するルーマサンプルを除外するように構成されない場合があるが、上記で説明されたように、ＬＭ＿ｆｌａｇを符号化または復号するように構成され得る。
【０１４０】
[0142]以下は、本開示で説明される１つまたは複数の例となる技法をインプリメントするための例を説明する。この例は、上に隣接するルーマサンプルをダウンフィルタリングする（例えば、ダウンサンプリングする）ための例となる技法、または左に隣接するルーマサンプルをダウンフィルタリングする（例えば、ダウンサンプリングする）ための例となる技法に関するものである。ＲｅｃＬＯｒｉｇ［０，０］が現在のブロックの左上ルーマサンプルを表すと仮定すると、上に隣接するルーマサンプルのためのダウンサンプリングプロセスは、以下のように定義される：
−クロマサンプルが、上に隣接する行の最も左に位置していない場合、すなわち、ｉ＞０のとき：
【０１４１】
【数１３】
2020502925.tif 000015
【０１４２】
−そうでない場合、すなわち、ｉが０に等しいとき：
【０１４３】
【数１４】
2020502925.tif 000016
【０１４４】
[0143]一例では、ｏｆｆｓｅｔ０およびｏｆｆｓｅｔ１の両方が、０に等しく設定される。一例では、ｏｆｆｓｅｔ０およびｏｆｆｓｅｔ１の両方が、４に等しく設定される。例えば、図１０の例に従って、上のルーマサンプルをダウンサンプリングする場合、ビデオエンコーダ２０およびビデオデコーダ３０は、０のオフセットを用いて式（１３）を適用し得る。図１４の例に従って、左のルーマサンプルをダウンサンプリングする場合、ビデオエンコーダ２０およびビデオデコーダ３０は、４のオフセットを用いて式（１３）を適用し得る。この例では、ルーマブロックから４つのサンプルよりも左にあるルーマサンプルはダウンサンプリングから除外されるので、オフセットは４である。ルーマブロックから４つ未満または４つより多くのサンプル左にあるルーマサンプルがダウンサンプリングから除外される場合、オフセットは４とは異なり得る。
【０１４５】
[0144]例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、式（１２）の動作に従ってダウンサンプリングするために必要でないとき、第１のダウンサンプリングされたルーマサンプルを決定するために、式（１２）の動作を実行し得る（例えば、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用する）。例として、ビデオエンコーダ２０およびビデオデコーダ３０は、図１１Ａに例示される隣接するルーマサンプル（例えば、フェッチされた隣接するルーマサンプルの第１のセット）を使用して、図１１Ａに例示されるダウンサンプリングされたルーマサンプルを決定するために、式（１２）の動作を実行し得る。
【０１４６】
[0145]ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、式（１２）の動作に従って（例えば、第１のフィルタに従って）ダウンサンプリングするために必要であるとき、第２のダウンサンプリングされたルーマサンプルを決定するために、式（１３）の動作を実行し得る（例えば、フェッチされた隣接するルーマサンプルの第２のセットに第２のフィルタを適用する）。例えば、第１のフィルタが使用される場合には、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、ダウンサンプリングのために必要とされたであろう。例として、ビデオエンコーダ２０およびビデオデコーダ３０は、図１０に例示される隣接するルーマサンプル（例えば、フェッチされた隣接するルーマサンプルの第２のセット）を使用して、図１０に例示されるダウンサンプリングされたルーマサンプルを決定するために、式（１３）の動作を実行し得る。
【０１４７】
[0146]例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックからしきい値数のサンプル（例えば、ｋ個のサンプル）よりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルが、式（１２）の動作に従ってダウンサンプリングするために必要でないとき、第１のダウンサンプリングされたルーマサンプルを決定するために、式（１２）の動作（例えば、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用する）を実行し得る。第１のダウンサンプリングされたルーマサンプルは、ルーマブロックから第１の数の列左にある列にある。例として、ビデオエンコーダ２０およびビデオデコーダ３０は、図１５Ａに例示される隣接するルーマサンプル（例えば、フェッチされた隣接するルーマサンプルの第１のセット）を使用して、図１６Ａに例示されるダウンサンプリングされたルーマサンプルを決定するために、式（１２）の動作を実行し得る。例示されるように、図１５Ａにおけるダウンサンプリングされたルーマサンプルは、ルーマブロックから２列左にある。
【０１４８】
[0147]ビデオエンコーダ２０およびビデオデコーダ３０は、ルーマブロックからしきい値数のサンプル（例えば、ｋ個のサンプル）よりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、式（１２）の動作に従って（例えば、第１のフィルタに従って）ダウンサンプリングするために必要であるとき、第２のダウンサンプリングされたルーマサンプルを決定するために、式（１３）の動作を実行し得る（例えば、フェッチされた隣接するルーマサンプルの第２のセットに第２のフィルタを適用する）。例えば、第１のフィルタが使用される場合には、ルーマブロックからしきい値数のサンプル（例えば、ｋ個のサンプル）よりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、ダウンサンプリングのために必要とされたであろう。第２のダウンサンプリングされたルーマサンプルは、ルーマブロックから第２の数の列左にある列にあり、第２の数は、第１の数より大きい。例として、ビデオエンコーダ２０およびビデオデコーダ３０は、図１４に例示される隣接するルーマサンプル（例えば、フェッチされた隣接するルーマサンプルの第２のセット）を使用して、図１４に例示されるダウンサンプリングされたルーマサンプルを決定するために、式（１３）の動作を実行し得る。
【０１４９】
[0148]図２は、本開示の技法をインプリメントし得る、例となるビデオエンコーダ２０を例示するブロック図である。図２は、説明を目的として提供されており、本開示において広く実証および説明される技法を限定するものとみなされるべきではない。説明を目的として、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０を説明する。しかしながら、本開示の技法は、現在開発中または将来のものを含む、他のコーディング規格または方法に適用可能であり得る。
【０１５０】
[0149]ビデオエンコーダ２０は、本開示で説明される様々な例に従って、ＬＭベースのビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。例えば、ビデオエンコーダ２０は、ＬＭビデオコーディングを使用して、１つまたは複数のブロックをコーディングするように構成され得る。
【０１５１】
[0150]図２の例では、ビデオエンコーダ２０は、予測処理ユニット１００、ビデオデータメモリ１０１、残差生成ユニット１０２、変換処理ユニット１０４、量子化ユニット１０６、逆量子化ユニット１０８、逆変換処理ユニット１１０、再構成ユニット１１２、フィルタユニット１１４、復号ピクチャバッファ（ＤＰＢ）１１６、およびエントロピー符号化ユニット１１８を含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニットと、動き補償ユニットとを含み得る（図示せず）。ビデオエンコーダ２０はまた、本開示で説明されるＬＭベースのコーディング技法の様々な態様を実行するように構成された線形モデル（ＬＭ）ベースの符号化ユニット１２２を含む。他の例では、ビデオエンコーダ２０は、より多い数の、より少ない数の、または異なる機能的な構成要素を含み得る。
【０１５２】
[0151]ビデオデータメモリ１０１は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ１０１に記憶されるビデオデータは、例えば、ビデオソース１８から取得され得る。ＤＰＢ１１６は、（例えば、イントラまたはインターコーディングモードで）ビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１０１およびＤＰＢ１１６は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちの任意のものによって形成され得る。ビデオデータメモリ１０１およびＤＰＢ１１６は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１０１は、ビデオエンコーダ２０の他の構成要素とともにオンチップであり得るか、またはこれらの構成要素に対してオフチップであり得る。
【０１５３】
[0152]本開示では、ビデオデータメモリ１０１への参照は、そのように明記されていない（specifically described）限り、ビデオエンコーダ２０の内部にあるメモリに、またはそのように明記されていない限り、ビデオエンコーダ２０の外部にあるメモリに、限定されると解釈されるべきではない。ビデオデータメモリ１０１への参照は、ビデオエンコーダ２０が符号化のために受信するビデオデータ（例えば、符号化されるべき現在のブロックについてのビデオデータ）を記憶するメモリへの参照として理解されるべきである。ビデオデータメモリ１０１はまた、ビデオエンコーダ２０の様々なユニットからの出力の一時記憶（temporary storage）を提供し得る。
【０１５４】
[0153]一例として、ビデオデータメモリ１０１は、ビデオエンコーダ２０の内部にあり、符号化されている現在のブロックに隣接する隣接ブロックのサンプルを記憶するラインバッファの例である。別の例として、ＤＰＢ１１６の一部は、ビデオエンコーダ２０の内部にあるラインバッファであり得、また、ＤＰＢ１１６の一部は、ビデオエンコーダ２０を含むＩＣチップのシステムメモリの一部として、ビデオエンコーダ２０の外部にあるメモリであり得る。別の例として、ラインバッファは、ビデオエンコーダ２０のキャッシュメモリであり得る。
【０１５５】
[0154]図２の様々なユニットは、ビデオエンコーダ２０によって実行される動作の理解を助けるために例示される。これらユニットは、固定機能回路、プログラマブル回路、またはこれらの組合せとしてインプリメントされ得る。固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作で予め設定される。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作において柔軟な機能を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、（例えば、パラメータを受け取るまたはパラメータを出力するために）ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは、一般に不変である。いくつかの例では、１つまたは複数のユニットは、個別の回路ブロック（固定機能またはプログラムマブル）であり得、いくつかの例では、１つまたは複数のユニットは、集積回路であり得る。
【０１５６】
[0155]ビデオエンコーダ２０は、プログラマブル回路から形成された、演算論理ユニット（ＡＬＵ：arithmetic logic units）、初等関数ユニット（ＥＦＵ）、デジタル回路、アナログ回路、および／またはプログラマブルコアを含み得る。ビデオエンコーダ２０の動作が、プログラマブル回路によって実行されるソフトウェアによって実行される例では、ビデオデータメモリ１０１が、ビデオエンコーダ２０が受信および実行するソフトウェアのオブジェクトコードを記憶し得、または別のメモリ（図示せず）が、そのような命令を記憶し得る。
【０１５７】
[0156]ビデオエンコーダ２０は、ビデオデータを受信し得る。ビデオエンコーダ２０は、ビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ）およびピクチャの対応するＣＴＢに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、ＣＴＵのＣＴＢを漸進的により小さいブロックへと分割するために４分木区分化を実行し得る。より小さいブロックは、ＣＵのコーディングブロックであり得る。例えば、予測処理ユニット１００は、ＣＴＵに関連付けられた（associated with）ＣＴＢを、４つの等しいサイズのサブブロックに区分化し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブブロックに区分化し得、以下同様である。
【０１５８】
[0157]ビデオエンコーダ２０は、ＣＵの符号化表現（すなわち、コーディングされたＣＵ）を生成するために、ＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを区分化し得る。したがって、各ＰＵは、ルーマ予測ブロックおよび対応するクロマ予測ブロックに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記で示されたように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズを指し得、ＰＵのサイズは、ＰＵのルーマ予測ブロックのサイズを指し得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測の場合、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズ、およびインター予測の場合、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称ＰＵサイズをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測の場合、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズについての非対称区分化をサポートし得る。
【０１５９】
[0158]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによって、ＰＵについての予測データを生成し得る。ＰＵについての予測データは、ＰＵの予測ブロックおよびＰＵについての動き情報を含み得る。インター予測処理ユニット１２０は、ＰＵが、Ｉスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに依存して、ＣＵのＰＵに対して異なる動作を実行し得る。Ｉスライスでは、全てのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０は、ＰＵに対してインター予測を実行しない。したがって、Ｉモードで符号化されるブロックの場合、予測されたブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【０１６０】
[0159]ＰＵがＰスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵのための参照領域について、参照ピクチャのリスト（例えば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを検索し得る。ＰＵのための参照領域は、ＰＵのサンプルブロックに最も密接に（closely）対応するサンプルブロックを含む、参照ピクチャ内の領域であり得る。動き推定ユニットは、ＰＵのための参照領域を含む参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０における位置を示す参照インデックスを生成し得る。加えて、動き推定ユニットは、ＰＵのコーディングブロックと、参照領域に関連付けられた参照ロケーションとの間の空間的な変位（displacement）を示すＭＶを生成し得る。例えば、ＭＶは、現在の復号されたピクチャにおける座標から参照ピクチャにおける座標までのオフセットを提供する２次元ベクトルであり得る。動き推定ユニットは、ＰＵの動き情報として、参照インデックスとＭＶとを出力し得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示される参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【０１６１】
[0160]ＰＵがＢスライス中にある場合、インター予測処理ユニット１２０の動き推定ユニットは、ＰＵについての単予測または双予測を実行し得る。ＰＵについての単予測を実行するために、動き推定ユニットは、ＰＵのための参照領域についてＲｅｆＰｉｃＬｉｓｔ０または第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）の参照ピクチャを検索し得る。動き推定ユニットは、ＰＵの動き情報として、参照領域を含む参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１における位置を示す参照インデックス、ＰＵの予測ブロックと、参照領域に関連付けられた参照ロケーションとの間の空間的な変位を示すＭＶ、および参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるか、あるいはＲｅｆＰｉｃＬｉｓｔ１中にあるかを示す１つまたは複数の予測方向インジケータを出力し得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示される参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１６２】
[0161]ＰＵについての双方向インター予測を実行するために、動き推定ユニットは、ＰＵのための参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを検索し得、また、ＰＵのための別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャを検索し得る。動き推定ユニットは、参照領域を含む参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１における位置を示す参照ピクチャインデックスを生成し得る。加えて、動き推定ユニットは、参照領域に関連付けられた参照ロケーションと、ＰＵのサンプルブロックとの間の空間的な変位を示すＭＶを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスとＭＶとを含み得る。インター予測処理ユニット１２０の動き補償ユニットは、ＰＵの動きベクトルによって示される参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１６３】
[0162]ＬＭベースの符号化ユニット１２２は、線形モデル（ＬＭ）予測符号化を実行し得る。例えば、ＬＭベースの符号化ユニット１２２は、符号化されている現在のクロマブロックに対応するルーマブロックの再構成されたルーマサンプルをダウンサンプリングし得る。ＬＭベースの符号化ユニット１２２は、予測ブロックを生成するために、ルーマブロックのダウンサンプリングされた再構成されたルーマサンプルをスケーリングし得る。残差生成ユニット１０２は、クロマブロックと予測ブロックとの間のサンプル値の差分を示す残差ブロックを決定し得る。いくつかの例では、ＬＭベースの符号化ユニット１２２は、成分間残差予測（cross-component residual prediction）の一部として、このような技法を適用し得る。このケースでは、クロマブロックは、クロマ残差ブロックであり、ルーマブロックは、ルーマ残差ブロックである。
【０１６４】
[0163]例えば、ＬＭベースの符号化ユニット１２２は、クロマブロックに対応するルーマブロックを決定し得る。ＬＭベースの符号化ユニット１２２は、本開示で説明される例となる技法を利用して、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定し得る。ＬＭベースの符号化ユニット１２２は、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータ（例えば、上記で説明されたαおよびβ）を決定し得る。ＬＭベースの符号化ユニット１２２は、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定し得る。例えば、ＬＭベースの符号化ユニット１２２は、α＊ｒｅｃＬ（ｉ，ｊ）＋βを決定し得、ここで、ｒｅｃＬ（ｉ，ｊ）は、クロマブロックに対応するルーマブロックのダウンサンプリングされたバージョンであり、αおよびβは、ダウンサンプリングされた隣接するルーマサンプルから決定されるスケーリングファクタである。ＬＭベースの符号化ユニット１２２は、ラインバッファ外に記憶された隣接するルーマサンプルのアクセスを制限するための技法のような、本開示で説明される１つまたは複数の例となる技法に従って、隣接するルーマサンプルのダウンサンプリングを実行し得る。
【０１６５】
[0164]その後、ビデオエンコーダ２０は、予測ブロックに基づいて、クロマブロックをＬＭ予測符号化し得る。例えば、以下で説明されるように、ビデオエンコーダ２０は、ビデオデコーダ３０によってクロマブロックを再構成するために使用される残差ブロックを生成するために、クロマブロックから予測ブロックを減算し得る。
【０１６６】
[0165]本開示で説明される技法では、ＬＭベースの符号化ユニット１２２は、ルーマブロックのルーマサンプルをダウンサンプリングすることの一部として、上記の例となる技法のうちの１つまたは複数をインプリメントし得る。一例として、ＬＭベースの符号化ユニット１２２は、コーディングされているクロマブロックに対応するルーマブロックを決定し、ここにおいて、ルーマブロックの左上の座標は（ｘ０，ｙ０）であり、ＤＰＢ１１６またはビデオデータメモリ１０１に記憶された、ダウンサンプリングするためのルーマサンプルを決定し、決定されたルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外し、決定されたルーマサンプルに基づいてルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて予測ブロックを決定し、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測符号化し得る。例えば、ダウンサンプリングするためのルーマサンプルを決定することは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外することを含む。
【０１６７】
[0166]例えば、ＬＭベースの符号化ユニット１２２は、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし得る。フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプルを含み、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外する。例えば、ルーマブロックの左上ルーマサンプルよりも上かつ左にある図９に例示されるルーマサンプル（例えば、破線の左側）は、フェッチされるルーマサンプルから除外される。
【０１６８】
[0167]別の例として、ＬＭベースの符号化ユニット１２２は、コーディングされているクロマブロックに対応するルーマブロックを決定し、ここにおいて、ルーマブロックの左上の座標は（ｘ０，ｙ０）であり、ＤＰＢ１１６またはビデオデータメモリ１０１に記憶された、ダウンサンプリングするためのルーマサンプルを決定し、決定されたルーマサンプルは、（ｘ０−ｋ）未満のｘ座標およびｙ０以上のｙ座標を有するルーマサンプルを除外し、ここにおいて、ｋは、０より大きい整数であり、決定されたルーマサンプルに基づいてルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて予測ブロックを決定し、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測符号化し得る。例えば、ダウンサンプリングするためのルーマサンプルを決定することは、（ｘ０−ｋ）未満のｘ座標およびｙ０以上のｙ座標を有するルーマサンプルを除外することを含む。
【０１６９】
[0168]例えば、ＬＭベースの符号化ユニット１２２は、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし得る。フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを含み、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外する。例えば、ルーマブロックからしきい値数のサンプルよりも左にあり（例えば、４つのサンプルよりも左にあり）かつルーマブロックの左上サンプルより下にある図１３に例示されるルーマサンプル（例えば、破線の左側）は、フェッチされるルーマサンプルから除外される。
【０１７０】
[0169]１つのケースでは、ＬＭベースの符号化ユニット１２２は、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないときは、第１のフィルタ（例えば、ＪＣＴＶＣ−Ｆ５０２のもの）を適用し、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要であるときは、第２の異なるフィルタ（例えば、ＪＣＴＶＣ−Ｅ２６６または式１３のもの）を適用し得る。これらの例において、別のケースでは、ＬＭベースの符号化ユニット１２２は、フィルタを適用することが、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを使用することをもたらすことになるかどうかを決定し、ルーマサンプルについてのルーマ値をフェッチすることなく、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルについてのルーマ値を生成し得る。例えば、ＬＭベースの符号化ユニットは、図１２Ｂに例示されるように、隣り合うルーマサンプルに基づく値をパディングし、ルーマブロックをダウンサンプリングするために、生成されたルーマ値を使用してフィルタを適用し得、ここにおいて、フィルタは、フィルタを適用することが、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを使用することをもたらさないであろう場合にダウンサンプリングのために使用されるものと同じフィルタである。
【０１７１】
[0170]例えば、上に隣接するルーマサンプルの場合、ＬＭベースの符号化ユニット１２２は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。ＬＭベースの符号化ユニット１２２は、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要であるとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。
【０１７２】
[0171]左に隣接するルーマサンプルの場合、ＬＭベースの符号化ユニット１２２は、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。第１のダウンサンプリングされたルーマサンプルは、ルーマブロックから第１の数の列左にある列にある。ＬＭベースの符号化ユニット１２２は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要であるとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。第２のダウンサンプリングされたルーマサンプルは、ルーマブロックから第２の数の列左にある列にあり、第２の数は、第１の数より大きい。
【０１７３】
[0172]一例では、上に隣接するルーマサンプルの場合、ＬＭベースの符号化ユニット１２２は、ビデオデータメモリ１０１からフェッチすることなく、ルーマブロックの左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成し、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る。一例では、左に隣接するルーマサンプルの場合、ＬＭベースの符号化ユニット１２２は、ビデオデータメモリ１０１からフェッチすることなく、ルーマブロックからしきい値数のサンプルよりも左かつルーマブロックの左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成し、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る。
【０１７４】
[0173]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵについての予測データを生成し得る。ＰＵについての予測データは、ＰＵについての予測ブロックおよび様々なシンタックス要素を含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実行し得る。
【０１７５】
[0174]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、ＰＵについての予測データの複数のセットを生成するために、複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット１２６は、ＰＵについての予測ブロックを生成するために、隣接するＰＵのサンプルブロックからのサンプルを使用し得る。隣接するＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右および上、左および上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、例えば、３３方向のイントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連付けられた領域のサイズに依存し得る。
【０１７６】
[0175]予測処理ユニット１００は、ＣＵのＰＵについての予測データを、ＰＵについてのインター予測処理ユニット１２０によって生成された予測データ、ＰＵについてのイントラ予測処理ユニット１２６によって生成された予測データ、またはＬＭベースの符号化ユニット１２２によって生成された予測データの中から選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／歪みメトリックに基づいて、ＣＵのＰＵについての予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれ得る。
【０１７７】
[0176]残差生成ユニット１０２は、ＣＵのルーマ、ＣｂおよびＣｒコーディングブロックと、ＣＵのＰＵの選択された予測ルーマ、ＣｂおよびＣｒブロックとに基づいて、ＣＵのルーマ、ＣｂおよびＣｒ残差ブロックを生成し得る。例えば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルと、ＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１７８】
[0177]変換処理ユニット１０４は、ＣＵに関連付けられた残差ブロックを、ＣＵのＴＵに関連付けられた変換ブロックに区分化するために、４分木区分化を実行し得る。したがって、ＴＵは、１つのルーマ変換ブロックと、２つのクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも、基づかないこともあり得る。「残差４分木」（ＲＱＴ）として知られている４分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１７９】
[0178]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵについての変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。例えば、変換処理ユニット１０４は、変換ブロックに、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を適用し得る。いくつかの例では、変換処理ユニット１０４は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０１８０】
[0179]量子化ユニット１０６は、係数ブロックにおける変換係数を量子化し得る。量子化プロセスは、変換係数のうちのいくつかまたは全てに関連付けられたビット深度を低減し得る。例えば、ｎビットの変換係数は、量子化中にｍビット変換係数に切り捨てられ得、ここで、ｎは、ｍより大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、したがって、量子化された変換係数は、元のものよりも低い精度を有し得る。
【０１８１】
[0180]逆量子化ユニット１０８および逆変換処理ユニット１１０は、係数ブロックから残差ブロックを再構成するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット１１２は、ＴＵに関連付けられた再構成された変換ブロックを作り出すために、再構成された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにしてＣＵの各ＴＵについての変換ブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構成し得る。
【０１８２】
[0181]フィルタユニット１１４は、ＣＵに関連付けられたコーディングブロック中のブロッキングアーティファクト(blocking artifacts)を低減させるために、１つまたは複数のデブロッキング動作を実行し得る。ＤＰＢ１１６は、フィルタユニット１１４が再構成されたコーディングブロックに対して１つまたは複数のデブロッキング動作を実行した後に、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実行するために、再構成されたコーディングブロックを含む参照ピクチャを使用し得る。加えて、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャ内の他のＰＵに対してイントラ予測を実行するために、復号ピクチャバッファ１１６中の再構成されたコーディングブロックを使用し得る。さらに、ＬＭベースの符号化ユニット１２２は、クロマブロックを線形モデル（ＬＭ）予測符号化するために、ＤＰＢ１１６中の再構成されたルーマブロックを利用し得る（ここで、ルーマブロックは、いくつかの例ではビデオデータを含み得、または残差ルーマブロックであり得、およびクロマブロックは、いくつかの例ではビデオデータを含み得、または残差クロマブロックであり得る）。
【０１８３】
[0182]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能的な構成要素からデータを受信し得る。例えば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、エントロピー符号化されたデータを生成するために、データに対して１つまたは複数のエントロピー符号化動作を実行し得る。例えば、エントロピー符号化ユニット１１８は、データに対して、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）動作、ＣＡＢＡＣ動作、Ｖ２Ｖ（variable-to-variable）長コーディング動作、シンタックスベースのコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）動作、確率間隔区分化エントロピー（ＰＩＰＥ）コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作を実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化されたデータを含むビットストリームを出力し得る。例えば、ビットストリームは、ＣＵについてのＲＱＴを表すデータを含み得る。
【０１８４】
[0183]図３は、本開示の技法をインプリメントするように構成された例となるビデオデコーダ３０を例示するブロック図である。図３は、説明を目的として提供されており、本開示において広く実証および説明される技法を限定するものではない。説明を目的として、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１８５】
[0184]ビデオエンコーダ３０は、本開示で説明される様々な例に従って、ＬＭベースのビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。例えば、ビデオエンコーダ３０は、ＬＭビデオコーディングモードを利用して１つまたは複数のブロックをコーディングする（すなわち、１つまたは複数のブロックを線形モデル（ＬＭ）予測復号する）ように構成され得る。
【０１８６】
[0185]図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０、ビデオデータメモリ１５１、予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、フィルタユニット１６０、および復号ピクチャバッファ（ＤＰＢ）１６２を含む。予測処理ユニット１５２は、動き補償ユニット１６４と、イントラ予測処理ユニット１６６とを含む。ビデオデコーダ３０はまた、本開示で説明されるＬＭベースのコーディング技法の様々な態様を実行するように構成された線形モデル（ＬＭ）ベースの復号ユニット１６５を含む。他の例では、ビデオデコーダ３０は、より多い数の、より少ない数の、または異なる機能的な構成要素を含み得る。
【０１８７】
[0186]ビデオデータメモリ１５１は、ビデオデコーダ３０の構成要素によって復号されることとなる、符号化されたビデオビットストリームのような、ビデオデータを記憶し得る。ビデオデータメモリ１５１に記憶されたビデオデータは、例えば、コンピュータ可読媒体１６から（例えば、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、カメラなどのローカルビデオソースから、または物理データ記憶媒体にアクセスすることによって）取得され得る。ビデオデータメモリ１５１は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングされたピクチャバッファ（ＣＰＢ）を形成し得る。ＤＰＢ１６２は、（例えば、イントラまたはインターコーディングモードで）ビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１５１およびＤＰＢ１６２は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちの任意のものによって形成され得る。ビデオデータメモリ１５１およびＤＰＢ１６２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１５１は、ビデオデコーダ３０の他の構成要素とともにオンチップであり得るか、またはこれらの構成要素に対してオフチップであり得る。
【０１８８】
[0187]本開示では、ビデオデータメモリ１５１への参照は、そのように明記されていない限り、ビデオデコーダ３０の内部にあるメモリに、またはそのように明記されていない限り、ビデオデコーダ３０の外部にあるメモリに、限定されると解釈されるべきではない。ビデオデータメモリ１５１への参照は、ビデオデコーダ３０が復号のために受信するビデオデータ（例えば、符号化されるべき現在のブロックについてのビデオデータ）を記憶する参照メモリとして理解されるべきである。ビデオデータメモリ１５１はまた、ビデオデコーダ３０の様々なユニットからの出力の一時記憶を提供し得る。
【０１８９】
[0188]一例として、ビデオデータメモリ１５１は、ビデオデコーダ３０の内部にあり、復号されている現在のブロックに隣接する隣接ブロックのサンプルを記憶するラインバッファの例である。別の例として、ＤＰＢ１６２の一部は、ビデオデコーダ３０の内部にあるラインバッファであり得、また、ＤＰＢ１６２の一部は、ビデオデコーダ３０を含むＩＣチップのシステムメモリの一部として、ビデオデコーダ３０の外部にあるメモリであり得る。別の例として、ラインバッファは、ビデオデコーダ３０のキャッシュメモリであり得る。
【０１９０】
[0189]図３の様々なユニットは、ビデオデコーダ３０によって実行される動作の理解を助けるために例示される。これらユニットは、固定機能回路、プログラマブル回路、またはこれらの組合せとしてインプリメントされ得る。固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作で予め設定されている。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作において柔軟な機能を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、（例えば、パラメータを受け取るまたはパラメータを出力するために）ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは、一般に不変である。いくつかの例では、１つまたは複数のユニットは、個別の回路ブロック（固定機能またはプログラムマブル）であり得、いくつかの例では、１つまたは複数のユニットは、集積回路であり得る。
【０１９１】
[0190]ビデオエンコーダ２０は、プログラマブル回路から形成された、演算論理ユニット（ＡＬＵ）、初等関数ユニット（ＥＦＵ）、デジタル回路、アナログ回路、および／またはプログラマブルコアを含み得る。ビデオデコーダ３０の動作が、プログラマブル回路によって実行されるソフトウェアによって実行される例では、ビデオデータメモリ１５１が、ビデオデコーダ３０が受信および実行するソフトウェアのオブジェクトコードを記憶し得、または別のメモリ（図示せず）が、そのような命令を記憶し得る。
【０１９２】
[0191]コーディングされたピクチャバッファ（ＣＰＢ）は、ビットストリームの符号化されたビデオデータ（例えば、ＮＡＬユニット）を受信および記憶し得る。エントロピー復号ユニット１５０は、ＣＰＢから符号化されたビデオデータ（例えば、ＮＡＬユニット）を受信し、シンタックス要素を復号するために、ＮＡＬユニットをパースし得る。エントロピー復号ユニット１５０は、ＮＡＬユニットにおけるエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
【０１９３】
[0192]ビットストリームのＮＡＬユニットは、コーディングされたスライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コーディングされたスライスＮＡＬユニットからシンタックス要素を抽出およびエントロピー復号し得る。コーディングされたスライスの各々は、スライスヘッダおよびスライスデータを含み得る。スライスヘッダは、スライスに関連するシンタックス要素を含み得る。スライスヘッダにおけるシンタックス要素は、スライスを含むピクチャに関連付けられたＰＰＳを識別するシンタックス要素を含み得る。
【０１９４】
[0193]ビットストリームからのシンタックス要素を復号することに加えて、ビデオデコーダ３０は、区分化されていないＣＵ（non-partitioned CU）に対して再構成動作を実行し得る。区分化されていないＣＵに対して再構成動作を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成動作を実行し得る。ＣＵの各ＴＵについての再構成動作を実行することによって、ビデオデコーダ３０は、ＣＵの残差ブロックを再構成し得る。
【０１９５】
[0194]ＣＵのＴＵに対して再構成動作を実行することの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた係数ブロックを逆量子化、すなわち、量子化解除（ｄe-quantize）し得る。逆量子化ユニット１５４は、量子化の程度、および同様に、逆量子化ユニット１５４が適用すべき逆量子化の程度を決定するために、ＴＵのＣＵに関連付けられたＱＰ値を使用し得る。圧縮比、すなわち、元のシーケンスおよび圧縮されたものを表示するために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比は、用いられるエントロピーコーディングの方法に依存し得る。
【０１９６】
[0195]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、ＴＵに関連付けられた残差ブロックを生成するために、係数ブロックに１つまたは複数の逆変換を適用し得る。例えば、逆変換処理ユニット１５６は、係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を適用し得る。
【０１９７】
[0196]ＰＵがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット１６６は、ＰＵについての予測ブロックを生成するために、イントラ予測を実行し得る。イントラ予測処理ユニット１６６は、空間的に隣接するＰＵの予測ブロックに基づいて、ＰＵについての予測ルーマ、ＣｂおよびＣｒブロックを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット１６６は、ビットストリームから復号される１つまたは複数のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。
【０１９８】
[0197]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）および第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）を構成し得る。さらに、ＰＵがインター予測を使用して符号化される場合、エントロピー復号ユニット１５０は、ＰＵについての動き情報を抽出し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵについての１つまたは複数の参照領域を決定し得る。動き補償ユニット１６４は、ＰＵについての１つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、ＰＵについての予測ルーマ、ＣｂおよびＣｒブロックを生成し得る。
【０１９９】
[0198]再構成ユニット１５８は、ＣＵのルーマ、ＣｂおよびＣｒコーディングブロックを再構成するために、ＣＵのＴＵに関連付けられたルーマ、ＣｂおよびＣｒ変換ブロック、およびＣＵのＰＵの予測ルーマ、ＣｂおよびＣｒブロック、すなわち、適宜、イントラ予測データまたはインター予測データのいずれかを使用し得る。例えば、再構成ユニット１５８は、ＣＵのルーマ、ＣｂおよびＣｒコーディングブロックを再構成するために、ルーマ、ＣｂおよびＣｒ変換ブロックのサンプルを、予測ルーマ、ＣｂおよびＣｒブロックの対応するサンプルに加算し得る。
【０２００】
[0199]フィルタユニット１６０は、ＣＵのルーマ、ＣｂおよびＣｒコーディングブロックに関連付けられたブロッキングアーティファクトを低減させるために、デブロッキング動作を実行し得る。ビデオデコーダ３０は、復号ピクチャバッファ１６２にＣＵのルーマ、ＣｂおよびＣｒコーディングブロックを記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および、図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。例えば、ビデオデコーダ３０は、ＤＰＢ１６２中のルーマ、ＣｂおよびＣｒブロックに基づいて、他のＣＵのＰＵに対してイントラ予測またはインター予測動作を実行し得る。
【０２０１】
[0200]本開示の様々な例に従って、ビデオデコーダ３０は、ＬＭベースのコーディングを実行するように構成され得る。ＬＭベースの復号ユニット１６５は、例えば、線形モデル（ＬＭ）予測復号を実行し得る。例えば、ＬＭベースの復号ユニット１６５は、復号されている現在のクロマブロックに対応するルーマブロックの再構成されたルーマサンプルをダウンサンプリングし得る。ＬＭベースの復号ユニット１６５は、予測ブロックを生成するために、ルーマブロックのダウンサンプリングされた再構成されたルーマサンプルをスケーリングし得る。その後、再構成ユニット１５８は、クロマブロックを再構成するために、生成された予測ブロックを、クロマブロックについての復号された残差データに加算し得る。いくつかの例では、ＬＭベースの復号ユニット１６５は、成分間残差予測の一部として、そのような技法を適用し得る。このケースでは、クロマブロックは、クロマ残差ブロックであり、ルーマブロックは、ルーマ残差ブロックである。
【０２０２】
[0201]例えば、ＬＭベースの復号ユニット１６５は、クロマブロックに対応するルーマブロックを決定し得る。ＬＭベースの復号ユニット１６５は、本開示で説明される例となる技法を利用して、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定し得る。ＬＭベースの復号ユニット１６５は、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータ（例えば、上記で説明されたαおよびβ）を決定し得る。ＬＭベースの復号ユニット１６５は、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定し得る。例えば、ＬＭベースの復号ユニット１６５は、α＊ｒｅｃＬ（ｉ，ｊ）＋βを決定し得、ここで、ｒｅｃＬ（ｉ，ｊ）は、クロマブロックに対応するルーマブロックのダウンサンプリングされたバージョンであり、αおよびβは、ダウンサンプリングされた隣接するルーマサンプルから決定されるスケーリングファクタである。ＬＭベースの復号ユニット１６５は、ラインバッファ外に記憶された隣接するルーマサンプルのアクセスを制限するための技法のような、本開示で説明される１つまたは複数の例となる技法に従って、隣接するルーマサンプルのダウンサンプリングを実行し得る。
【０２０３】
[0202]その後、ビデオデコーダ３０は、予測ブロックに基づいて、クロマブロックをＬＭ予測復号し得る。例えば、以下で説明されるように、ビデオデコーダ３０は、クロマブロックを再構成するために、予測ブロックを残差ブロックに加算し得る。
【０２０４】
[0203]本開示で説明される技法では、ＬＭベースの復号ユニット１６５は、ルーマブロックのルーマサンプルをダウンサンプリングすることの一部として、上記の例となる技法のうちの１つまたは複数をインプリメントし得る。一例として、ＬＭベースの復号ユニット１６５は、コーディングされているクロマブロックに対応するルーマブロックを決定し、ここにおいて、ルーマブロックの左上の座標は（ｘ０，ｙ０）であり、ＤＰＢ１６２またはビデオデータメモリ１５１に記憶された、ダウンサンプリングするためのルーマサンプルを決定し、決定されたルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外し、決定されたルーマサンプルに基づいてルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて予測ブロックを決定し、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測復号し得る。例えば、ダウンサンプリングするためのルーマサンプルを決定することは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外することを含む。
【０２０５】
[0204]例えば、ＬＭベースの復号ユニット１６５は、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし得る。フェッチされた隣接するルーマサンプルは、ルーマブロックよりも上にある複数のルーマサンプルを含み、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外する。例えば、ルーマブロックの左上ルーマサンプルよりも上かつ左にある図９に例示されるルーマサンプル（例えば、破線の左側）は、フェッチされるルーマサンプルから除外される。
【０２０６】
[0205]別の例として、ＬＭベースの復号ユニット１６５は、コーディングされているクロマブロックに対応するルーマブロックを決定し、ここにおいて、ルーマブロックの左上の座標は（ｘ０，ｙ０）であり、ＤＰＢ１６２またはビデオデータメモリ１５１に記憶された、ダウンサンプリングするためのルーマサンプルを決定し、決定されたルーマサンプルは、（ｘ０−ｋ）未満のｘ座標およびｙ０以上のｙ座標を有するルーマサンプルを除外し、ここにおいて、ｋは、０より大きい整数であり、決定されたルーマサンプルに基づいてルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて予測ブロックを決定し、予測ブロックに基づいて、クロマブロックを線形モデル（ＬＭ）予測復号し得る。例えば、ダウンサンプリングするためのルーマサンプルを決定することは、（ｘ０−ｋ）未満のｘ座標およびｙ０以上のｙ座標を有するルーマサンプルを除外することを含む。
【０２０７】
[0206]例えば、ＬＭベースの復号ユニット１６５は、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし得る。フェッチされた隣接するルーマサンプルは、ルーマブロックの左にある複数のルーマサンプルを含み、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外する。例えば、ルーマブロックからしきい値数のサンプルよりも左にあり（例えば、４つのサンプルよりも左にあり）かつルーマブロックの左上サンプルより下にある図１３に例示されるルーマサンプル（例えば、破線の左側）は、フェッチされるルーマサンプルから除外される。
【０２０８】
[0207]１つのケースでは、ＬＭベースの復号ユニット１６５は、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないときは、第１のフィルタ（例えば、ＪＣＴＶＣ−Ｆ５０２のもの）を適用し、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要であるときは、第２の異なるフィルタ（例えば、ＪＣＴＶＣ−Ｅ２６６または式１３のもの）を適用し得る。これらの例において、別のケースでは、ＬＭベースの復号ユニット１６５は、フィルタを適用することが、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを使用することをもたらすことになるかどうかを決定し、ルーマサンプルについてのルーマ値をフェッチすることなく、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルについてのルーマ値を生成し（例えば、図１６Ｂに例示されるように、隣り合うルーマサンプルに基づく値をパディングし）、ルーマブロックをダウンサンプリングするために、生成されたルーマ値を使用してフィルタを適用し得、ここにおいて、フィルタは、フィルタを適用することが、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを使用することをもたらさないであろう場合に、隣接するルーマサンプルをダウンサンプリングするために使用されるものと同じフィルタ（a same filter used）である。
【０２０９】
[0208]例えば、上に隣接するルーマサンプルの場合、ＬＭベースの復号ユニット１６５は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。ＬＭベースの復号ユニット１６５は、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要であるとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。
【０２１０】
[0209]左に隣接するルーマサンプルの場合、ＬＭベースの復号ユニット１６５は、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。第１のダウンサンプリングされたルーマサンプルは、ルーマブロックから第１の数の列左にある列にある。ＬＭベースの復号ユニット１６５は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要であるとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。第２のダウンサンプリングされたルーマサンプルは、ルーマブロックから第２の数の列左にある列にあり、第２の数は、第１の数より大きい。
【０２１１】
[0210]一例では、上に隣接するルーマサンプルの場合、ＬＭベースの復号ユニット１６５は、ビデオデータメモリ１５１からフェッチすることなく、ルーマブロックの左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成し、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る。一例では、左に隣接するルーマサンプルの場合、ＬＭベースの復号ユニット１６５は、ビデオデータメモリ１５１からフェッチすることなく、ルーマブロックからしきい値数のサンプルよりも左かつルーマブロックの左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成し、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る。
【０２１２】
[0211]図１８は、ビデオデータを復号する例となる方法を例示するフローチャートである。例示されるように、ＬＭベースの復号ユニット１６５は、クロマブロックに対応するルーマブロックを決定し得る（１８０）。上記で説明されたように、ブロックは、１つのルーマブロックと、２つのクロマブロックとを含み得る。クロマブロックに対応するルーマブロックは、ルーマブロックおよび対応するクロマブロックが、同じブロックからのものであることを意味する。
【０２１３】
[0212]ＬＭベースの復号ユニット１６５は、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし得る（１８２）。１つまたは複数の例では、ＬＭベースの復号ユニット１６５は、フェッチすることからある特定の隣接するルーマサンプルを除外し得る。フェッチされないルーマサンプルは、座標（ｘ０，ｙ０）を有する、ルーマブロックの左上サンプルを基準にして（relative to）説明され得る。
【０２１４】
[0213]例えば、隣接するルーマサンプルがルーマブロックよりも上にある例では、ＬＭベースの復号ユニット１６５は、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し得る。一例として、図９における破線の左側のルーマサンプルは、それらが、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるので、フェッチされ得ない。この例では、フェッチされた隣接するルーマサンプルは、ｘ０未満のｘ座標およびｙ０未満のｙ座標を有するルーマサンプルを除外する。むしろ、図１０、図１１Ａ、および図１１Ｂに例示されているもののようなルーマサンプルは、フェッチされ得る。
【０２１５】
[0214]隣接するルーマサンプルがルーマブロックの左にある例では、ＬＭベースの復号ユニット１６５は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し得る。一例として、図１３における破線の左側のルーマサンプルは、それらが、ルーマブロックからしきい値数のサンプルよりも左にあり（例えば、４つのサンプルよりも左にあり）かつルーマブロックの左上ルーマサンプルより下にあるので、フェッチされ得ない。この例では、フェッチされた隣接するルーマサンプルは、（ｘ０−ｋ）未満のｘ座標、およびｙ０より大きいｙ座標を有するルーマサンプルを除外し、ここにおいて、ｋは、しきい値数であり、０より大きい整数（例えば、４）である。むしろ、図１４、図１５Ａ、および図１５Ｂに例示されているもののようなルーマサンプルは、フェッチされ得る。
【０２１６】
[0215]ＬＭベースの復号ユニット１６５は、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定し得る（１８４）。隣接するサンプルがルーマブロックよりも上にある例では、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応する。例えば、図１０、図１１Ｂ、および図１２Ｂに例示されるように、ダウンサンプリングされたルーマサンプルは、左上ルーマサンプルの真上にある。隣接するサンプルがルーマブロックの左にある例では、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応する。図１１Ａおよび図１２Ａは、ダウンサンプリングされたルーマサンプルの追加の例を例示する。例えば、図１４、図１５Ｂ、および図１６Ｂに例示されるように、ダウンサンプリングされたルーマサンプルは、ルーマブロックから４つのサンプル左にあり、この例では、ルーマブロックの左のサンプルのしきい値数は、４である。これらの例では、ダウンサンプリングされたルーマサンプルは、左上ルーマサンプルから２列よりも左にある（例えば、ダウンサンプリングされたルーマサンプルは、４列左にあり、これは、２列左より大きい）。図１５Ａおよび図１６Ａは、ダウンサンプリングされたルーマサンプルの追加の例を例示する。
【０２１７】
[0216]隣接するルーマサンプルがルーマブロックよりも上にある例では、ＬＭベースの復号ユニット１６５は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。例えば、ＬＭベースの復号ユニット１６５は、図１１Ａおよび図１２Ａに例示されるように、および（一例として）ＪＣＴＶＣ−Ｆ５０２のもののようなフィルタを適用し得る。ＬＭベースの復号ユニット１６５は、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要である（例えば、第１のものが使用された場合に、必要とされたであろう）とき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。例えば、ＪＣＴＶＣ−Ｆ５０２において説明されるフィルタを利用することが、左上ルーマサンプルよりも上かつ左にあるルーマサンプルにアクセスすることをもたらすことになる場合には、ＬＭベースの復号ユニット１６５は、ＪＣＴＶＣ−Ｅ２６６（例えば、図１１Ｂ）において説明されるフィルタと同様の、または上記で説明された式（１３）（例えば、図１０）に従って、フィルタを適用し得る。
【０２１８】
[0217]隣接するルーマサンプルがルーマブロックの左にある場合、ＬＭベースの復号ユニット１６５は、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。例えば、ＬＭベースの復号ユニット１６５は、図１５Ａおよび図１６Ａに例示されるように、および（一例として）ＪＣＴＶＣ−Ｆ５０２のもののようなフィルタを適用し得る。ＬＭベースの復号ユニット１６５は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要である（例えば、第１のものが使用された場合に、必要とされたであろう）とき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。例えば、ＪＣＴＶＣ−Ｆ５０２において説明されるフィルタを利用することが、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルにアクセスすることをもたらすことになる場合には、ＬＭベースの復号ユニット１６５は、（例えば、図１５Ｂに例示されるように）ＪＣＴＶＣ−Ｅ２６６において説明されるフィルタと同様の、または（例えば、図１４に示されるように）上記で説明された式（１３）に従って、フィルタを適用し得る。
【０２１９】
[0218]上記の例では、第１のフィルタは、ルーマブロックよりも上にある第１の行からの３つのルーマサンプルを利用し、第１の行よりも上にある第２の行からの３つのルーマサンプルを利用する。第２のフィルタは、ルーマブロックの左にある第１の行からの３つ未満のルーマサンプル（例えば、図９および図１４では２つのサンプル、および図１１Ｂおよび図１５Ｂでは１つのサンプル）を利用し、第１の行の下にある第２の行からの３つ未満のルーマサンプル（例えば、図９および図１４では２つのサンプル、および図１１Ｂおよび図１５Ｂでは１つのサンプル）を利用する。
【０２２０】
[0219]いくつかの例では、異なるフィルタを使用するのではなく、ＬＭベースの復号ユニット１６５は、同じフィルタを使用し得るが、フェッチするのではなく、パディングを適用する（例えば、ルーマサンプル値を生成する）。例えば、上に隣接するルーマサンプルの例の場合、ＬＭベースの復号ユニット１６５は、フェッチすることなく、ルーマブロックの左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成し得、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る（例えば、図１２Ｂの例）。左に隣接するルーマサンプルの例の場合、ＬＭベースの復号ユニット１６５は、フェッチすることなく、ルーマブロックからしきい値数のサンプルよりも左かつルーマブロックの左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成し得、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る（例えば、図１６Ｂの例）。
【０２２１】
[0220]ＬＭベースの復号ユニット１６５は、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定し得る（１８６）。例えば、ＬＭベースの復号ユニット１６５は、ダウンサンプリングされたルーマサンプルに基づいて、αおよびβを決定し得る。ＬＭベースの復号ユニット１６５は、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定し得る（１８８）。例えば、ＬＭベースの復号ユニット１６５は、α＊ｒｅｃＬ（ｉ，ｊ）＋βとして予測ブロックを決定し得、ここで、ｒｅｃＬ（ｉ，ｊ）は、クロマブロックに対応するルーマブロックのダウンサンプリングされたバージョンであり、αおよびβは、ダウンサンプリングされた隣接するルーマサンプルから決定されるスケーリングファクタである。
【０２２２】
[0221]ビデオデコーダ３０は、予測ブロックに基づいて、クロマブロックをＬＭ予測復号し得る（１９０）。例えば、再構成ユニット１５８は、クロマブロックを再構成するために、予測ブロックを残差ブロックに加算し得る。
【０２２３】
[0222]図１９は、ビデオデータを符号化する例となる方法を例示するフローチャートである。例示されるように、ＬＭベースの符号化ユニット１２２は、クロマブロックに対応するルーマブロックを決定し得る（２００）。上記で説明されたように、ブロックは、１つのルーマブロックと、２つのクロマブロックとを含み得る。クロマブロックに対応するルーマブロックは、ルーマブロックおよび対応するクロマブロックが、同じブロックからのものであることを意味する。
【０２２４】
[0223]ＬＭベースの符号化ユニット１２２は、隣接するルーマサンプルをダウンサンプリングするために、隣接するルーマサンプルをフェッチし得る（２０２）。１つまたは複数の例では、ＬＭベースの符号化ユニット１２２は、フェッチすることからある特定の隣接するルーマサンプルを除外し得る。フェッチされないルーマサンプルは、座標（ｘ０，ｙ０）を有する、ルーマブロックの左上サンプルを基準にして説明され得る。
【０２２５】
[0224]例えば、隣接するルーマサンプルがルーマブロックよりも上にある例では、ＬＭベースの符号化ユニット１２２は、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるルーマサンプルを除外し得る。一例として、図９における破線の左側のルーマサンプルは、それらが、ルーマブロックの左上ルーマサンプルよりも上かつ左にあるので、フェッチされ得ない。この例では、フェッチされた隣接するルーマサンプルは、ｘ０未満のｘ座標、およびｙ０未満のｙ座標を有するルーマサンプルを除外する。むしろ、図１０、図１１Ａ、および図１１Ｂに例示されているもののようなルーマサンプルは、フェッチされ得る。
【０２２６】
[0225]隣接するルーマサンプルがルーマブロックの左にある例では、ＬＭベースの符号化ユニット１２２は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にあるルーマサンプルを除外し得る。一例として、図１３における破線の左側のルーマサンプルは、それらが、ルーマブロックからしきい値数のサンプルよりも左にあり（例えば、４つのサンプルよりも左にあり）かつルーマブロックの左上ルーマサンプルより下にあるので、フェッチされ得ない。この例では、フェッチされた隣接するルーマサンプルは、（ｘ０−ｋ）未満のｘ座標、およびｙ０より大きいｙ座標を有するルーマサンプルを除外し、ここにおいて、ｋは、しきい値数であり、０より大きい整数（例えば、４）である。むしろ、図１４、図１５Ａ、および図１５Ｂに例示されているもののようなルーマサンプルは、フェッチされ得る。
【０２２７】
[0226]ＬＭベースの符号化ユニット１２２は、フェッチされた隣接するルーマサンプルに基づいて、複数のダウンサンプリングされたルーマサンプルを決定し得る（２０４）。隣接するサンプルがルーマブロックよりも上にある例では、ダウンサンプリングされたルーマサンプルのうちの１つは、左上ルーマサンプルの真上にあるダウンサンプリングされたルーマサンプルに対応する。例えば、図１０、図１１Ｂ、および図１２Ｂに例示されるように、ダウンサンプリングされたルーマサンプルは、左上ルーマサンプルの真上にある。隣接するサンプルがルーマブロックの左にある例では、ダウンサンプリングされたルーマサンプルのうちの１つは、ルーマブロックからしきい値数のサンプル左にあるダウンサンプリングされたルーマサンプルに対応する。図１１Ａおよび図１２Ａは、ダウンサンプリングされたルーマサンプルの追加の例を例示する。例えば、図１４、図１５Ｂ、および図１６Ｂに例示されるように、ダウンサンプリングされたルーマサンプルは、ルーマブロックから４つのサンプル左にあり、この例では、ルーマブロックの左のサンプルのしきい値数は、４である。これらの例では、ダウンサンプリングされたルーマサンプルは、左上ルーマサンプルから２列よりも左にある（例えば、ダウンサンプリングされたルーマサンプルは、４列左にあり、これは、２列左より大きい）。図１５Ａおよび図１６Ａは、ダウンサンプリングされたルーマサンプルの追加の例を例示する。
【０２２８】
[0227]隣接するルーマサンプルがルーマブロックよりも上にある例では、ＬＭベースの符号化ユニット１２２は、左上ルーマサンプルよりも上かつ左にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。例えば、ＬＭベースの符号化ユニット１２２は、図１１Ａおよび図１２Ａに例示されるように、および（一例として）ＪＣＴＶＣ−Ｆ５０２のもののようなフィルタを適用し得る。ＬＭベースの符号化ユニット１２２は、ルーマブロックの左上ルーマサンプルよりも上かつ左にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要とされたであろうとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。例えば、ＪＣＴＶＣ−Ｆ５０２において説明されるフィルタを利用することが、左上ルーマサンプルよりも上かつ左にあるルーマサンプルにアクセスすることをもたらすことになる場合には、ＬＭベースの符号化ユニット１２２は、ＪＣＴＶＣ−Ｅ２６６（例えば、図１１Ｂ）と同様の、または上記で説明された式（１３）（例えば、図１０）に従って、フィルタを適用し得る。
【０２２９】
[0228]隣接するルーマサンプルがルーマブロックの左にある場合、ＬＭベースの符号化ユニット１２２は、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要でないとき、複数のダウンサンプリングされたルーマサンプルのうちの第１のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第１のセットに第１のフィルタを適用し得る。例えば、ＬＭベースの符号化ユニット１２２は、図１５Ａおよび図１６Ａに例示されるように、および（一例として）ＪＣＴＶＣ−Ｆ５０２のもののようなフィルタを適用し得る。ＬＭベースの符号化ユニット１２２は、ルーマブロックからしきい値数のサンプルよりも左にありかつルーマブロックの左上ルーマサンプルより下にある少なくとも１つのルーマサンプルが、第１のフィルタに従ってダウンサンプリングするために必要とされたであろうとき、複数のダウンサンプリングされたルーマサンプルのうちの第２のダウンサンプリングされたルーマサンプルを決定するために、フェッチされた隣接するルーマサンプルの第２のセットに第２の異なるフィルタを適用し得る。例えば、ＪＣＴＶＣ−Ｆ５０２において説明されるフィルタを利用することが、ルーマブロックからしきい値数のサンプルよりも左にありかつ左上ルーマサンプルより下にあるルーマサンプルにアクセスすることをもたらすことになる場合には、ＬＭベースの復号ユニット１６５は、ＪＣＴＶＣ−Ｅ２６６（例えば、図１５Ｂ）と同様の、または上記で説明された式（１３）（例えば、図１４）に従って、フィルタを適用し得る。
【０２３０】
[0229]上記の例では、第１のフィルタは、ルーマブロックよりも上にある第１の行からの３つのルーマサンプルを利用し、第１の行よりも上にある第２の行からの３つのルーマサンプルを利用する。第２のフィルタは、ルーマブロックの左にある第１の行からの３つ未満のルーマサンプル（例えば、図９および図１４では２つのサンプル、および図１１Ｂおよび図１５Ｂでは１つのサンプル）を利用し、第１の行の下にある第２の行からの３つ未満のルーマサンプル（例えば、図９および図１４では２つのサンプル、および図１１Ｂおよび図１５Ｂでは１つのサンプル）を利用する。
【０２３１】
[0230]いくつかの例では、異なるフィルタを使用するのではなく、ＬＭベースの符号化ユニット１２２は、同じフィルタを使用し得るが、フェッチするのではなく、パディングを適用する（例えば、ルーマサンプル値を生成する）。例えば、上に隣接するルーマサンプルの例の場合、ＬＭベースの符号化ユニット１２２は、フェッチすることなく、ルーマブロックの左上ルーマサンプルよりも上かつ左に位置するルーマサンプルに対応するルーマ値を生成し得、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る（例えば、図１２Ｂの例）。左に隣接するルーマサンプルの例の場合、ＬＭベースの符号化ユニット１２２は、フェッチすることなく、ルーマブロックからしきい値数のサンプルよりも左かつルーマブロックの左上ルーマサンプルより下に位置するルーマサンプルに対応するルーマ値を生成し得、複数のダウンサンプリングされたルーマサンプルのうちの少なくとも１つのダウンサンプリングされたルーマサンプルを決定するために、生成されたルーマ値にフィルタを適用し得る（例えば、図１６Ｂの例）。
【０２３２】
[0231]ＬＭベースの符号化ユニット１２２は、ダウンサンプリングされたルーマサンプルに基づいて、１つまたは複数のスケーリングパラメータを決定し得る（２０６）。例えば、ＬＭベースの符号化ユニット１２２は、ダウンサンプリングされたルーマサンプルに基づいて、αおよびβを決定し得る。ＬＭベースの符号化ユニット１２２は、１つまたは複数のスケーリングパラメータに基づいて、予測ブロックを決定し得る（２０８）。例えば、ＬＭベースの符号化ユニット１２２は、α＊ｒｅｃＬ（ｉ，ｊ）＋βとして予測ブロックを決定し得、ここで、ｒｅｃＬ（ｉ，ｊ）は、クロマブロックに対応するルーマブロックのダウンサンプリングされたバージョンであり、αおよびβは、ダウンサンプリングされた隣接するルーマサンプルから決定されるスケーリングファクタである。
【０２３３】
[0232]ビデオエンコーダは、予測ブロックに基づいて、クロマブロックをＬＭ予測符号化し得る（２１０）。例えば、残差生成ユニット１０２は、ビデオデコーダ３０によってクロマブロックを再構成するために使用される残差ブロックを生成するために、クロマブロックから予測ブロックを減算し得る。
【０２３４】
[0233]上記で説明された技法は、ビデオエンコーダ２０（図１および図２）および／またはビデオデコーダ３０（図１および図３）によって実行され得、これら両方は、一般に、ビデオコーダと呼ばれ得る。同様に、ビデオコーディングは、適宜、ビデオ符号化またはビデオ復号を指し得る。加えて、ビデオ符号化およびビデオ復号は、総称的に、ビデオデータを「処理すること（processing）」と呼ばれ得る。
【０２３５】
[0234]本明細書で説明された技法の全ては、個別にまたは組合せにおいて使用され得ることが理解されるべきである。本開示は、ブロックサイズ、スライスタイプ、等のような、ある特定の要因に依存して変わり得るいくつかのシグナリング方法を含む。シンタックス要素の推論またはシグナリングにおけるそのような変動は、アプリオリ（a-priori）にエンコーダおよびデコーダに知られ得るか、またはビデオパラメータセット（ＶＰＳ）において、シーケンスパラメータセット（ＳＰＳ）において、ピクチャパラメータセット（ＰＰＳ）において、スライスヘッダにおいて、タイルレベルで、または他の箇所で、デコーダに明示的にシグナリングされ得る。
【０２３６】
[0235]例に依存して、本明細書で説明された技法のうちの任意のもののある特定の動作（act）またはイベントは、異なる順序で実行され得、追加、併合、または完全に省略され得る（例えば、全ての説明された動作またはイベントが本技法の実施に必ずしも必要ではない）ことを認識されたい。さらに、ある特定の例では、動作またはイベントは、シーケンシャル順ではなく、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて、同時並行（concurrently）に実行され得る。加えて、本開示のある特定の態様が、明確さを目的として、単一のモジュールまたはユニットによって実行されるものとして説明された一方で、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実行され得ることが理解されるべきである。
【０２３７】
[0236]本技法の様々な態様の特定の組合せが上記で説明された一方で、これらの組合せは、単に本開示で説明される技法の例を示すために提供されている。したがって、本開示の技法は、これらの例となる組合せに限定されるべきではなく、本開示で説明される技法の様々な態様の任意の考えられる組合せを包含し得る。
【０２３８】
[0237]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せでインプリメントされ得る。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ可読媒体上で１つまたは複数の命令またはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、１つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体、またはデータ記憶媒体のような有形の媒体に対応するコンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２３９】
[0238]限定ではなく例として、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶するために使用され得、かつコンピュータによってアクセスされ得るその他任意の媒体を備え得る。また、任意の接続は、厳密にはコンピュータ可読媒体と称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、またはその他の遠隔ソースから送信される場合には、この同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりに非一時的な有形の記憶媒体に向けられることが理解されるべきである。本明細書で使用される場合、ディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多目的ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、およびブルーレイ（登録商標）ディスクを含み、ここでディスク（disks）は、通常磁気的にデータを再生し、一方ディスク（discs）は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０２４０】
[0239]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積されたまたはディスクリートな論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される場合、「プロセッサ」という用語は、任意の前述の構造または本明細書で説明された技法のインプリメンテーションに好適なその他任意の構造を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内で提供され得、または、複合コーデックに組み込まれ得る。また、これら技法は、１つまたは複数の回路または論理要素において完全にインプリメントされ得る。
【０２４１】
[0240]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、幅広い様々なデバイスまたは装置でインプリメントされ得る。様々な構成要素、モジュール、またはユニットが、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために、本開示において説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上記で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられるか、または、好適なソフトウェアおよび／またはファームウェアと併せて、上記で説明されたような１つまたは複数のプロセッサを含む、相互運用ハードウェアユニットの集合によって提供され得る。
【０２４２】
[0241]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2020502925.tif 000017
【図２】
2020502925.tif 000018
【図３】
2020502925.tif 000019
【図４】
2020502925.tif 000020
【図５】
2020502925.tif 000021
【図６】
2020502925.tif 000022
【図７】
2020502925.tif 000023
【図８Ａ】
2020502925.tif 000024
【図８Ｂ】
2020502925.tif 000025
【図８Ｃ】
2020502925.tif 000026
【図８Ｄ】
2020502925.tif 000027
【図９】
2020502925.tif 000028
【図１０】
2020502925.tif 000029
【図１１Ａ】
2020502925.tif 000030
【図１１Ｂ】
2020502925.tif 000031
【図１２Ａ】
2020502925.tif 000032
【図１２Ｂ】
2020502925.tif 000033
【図１３】
2020502925.tif 000034
【図１４】
2020502925.tif 000035
【図１５Ａ】
2020502925.tif 000036
【図１５Ｂ】
2020502925.tif 000037
【図１６Ａ】
2020502925.tif 000038
【図１６Ｂ】
2020502925.tif 000039
【図１７】
2020502925.tif 000040
【図１８】
2020502925.tif 000041
【図１９】
2020502925.tif 000042
【国際調査報告】
2020502925.tif 000043
2020502925.tif 000044
2020502925.tif 000045