(57)【要約】  線形モデル(LM)予測復号または符号化に関する例示的な技法について説明する。ビデオデコーダまたはビデオエンコーダは、ルーマブロックのサンプルをダウンサンプリングし、クロマブロックの特性に基づいて、対応するクロマブロックに関する予測的ブロックを生成するために、フィルタのセットからどのフィルタを適用すべきかを決定する。
2018514119.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを線形モデル(LM)予測復号する方法であって、
復号されている前記ビデオデータのクロマブロックに対応する前記ビデオデータのルーマブロックを決定するステップと、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定するステップと、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングするステップと、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するステップと、
前記予測的ブロックおよび残差ブロックに基づいて、前記クロマブロックを再構成するステップと
を備える方法。
【請求項２】
前記クロマブロックの前記特性が、ピクチャ、スライス、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つの境界に対する、前記クロマブロックのクロマサンプルのロケーションを備える、請求項1に記載の方法。
【請求項３】
前記境界が、左ピクチャ境界、左スライス境界、左CU境界、左PU境界、または左TU境界のうちの1つを備える、請求項2に記載の方法。
【請求項４】
前記適用すべきフィルタを決定するステップが、
第1のフィルタを、境界に位置する前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するステップと、
前記第1のフィルタとは異なる第2のフィルタを、前記境界に位置していない前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するステップと
を備える、請求項1に記載の方法。
【請求項５】
前記第1のフィルタが2タップフィルタを備え、前記第2のフィルタが6タップフィルタを備える、請求項4に記載の方法。
【請求項６】
前記ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックをダウンサンプリングするステップと、
前記ダウンサンプリングされた1つまたは複数の隣接ルーマブロックと、前記クロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータおよび第2のパラメータを決定するステップと
をさらに備え、
前記予測的ブロックを決定するステップが、前記ダウンサンプリングされたルーマブロックと、前記第1のパラメータおよび前記第2のパラメータとに基づいて、前記予測的ブロックを決定するステップを備える、
請求項1に記載の方法。
【請求項７】
前記ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックと、前記クロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータのセットおよび第2のパラメータを決定するステップ
をさらに備え、
前記予測的ブロックを決定するステップが、前記ダウンサンプリングされたルーマブロックと、前記第1のパラメータのセットと、前記第2のパラメータとに基づいて、前記予測的ブロックを決定するステップを備える、
請求項1に記載の方法。
【請求項８】
前記適用すべきフィルタを決定するステップが、
前記クロマブロックがCbである1つの事例では、前記クロマブロックが第1のタイプであることに基づいて、第1のフィルタを前記ルーマブロックに適用すると決定するステップと、
前記クロマブロックがCrである別の事例では、前記クロマブロックが第2のタイプであることに基づいて、前記第1のフィルタとは異なる第2のフィルタを前記ルーマブロックに適用すると決定するステップと
を備える、請求項1に記載の方法。
【請求項９】
前記ルーマブロックの1つまたは複数のルーマサンプルが、ピクチャ、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つまたは複数の外にあり、前記方法が、
パディング値を用いて、外にある前記1つまたは複数のルーマサンプルに対してルーマサンプル値をパディングするステップ
をさらに備え、
前記ルーマブロックをダウンサンプリングするステップが、前記パディング値を有する前記ルーマブロックをダウンサンプリングするステップを備える、
請求項1に記載の方法。
【請求項１０】
前記ルーマブロックがルーマ残差ブロックを備え、前記クロマブロックがクロマ残差ブロックを備える、請求項1に記載の方法。
【請求項１１】
ビデオデータを線形モデル(LM)予測符号化する方法であって、
符号化されている前記ビデオデータのクロマブロックに対応する前記ビデオデータのルーマブロックを決定するステップと、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定するステップと、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングするステップと、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するステップと、
前記クロマブロックおよび前記予測的ブロックに基づいて、残差ブロックを生成するステップと
を備える方法。
【請求項１２】
前記クロマブロックの前記特性が、ピクチャ、スライス、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つの境界に対する、前記クロマブロックのクロマサンプルのロケーションを備える、請求項11に記載の方法。
【請求項１３】
前記境界が、左ピクチャ境界、左スライス境界、左CU境界、左PU境界、または左TU境界のうちの1つを備える、請求項12に記載の方法。
【請求項１４】
前記適用すべきフィルタを決定するステップが、
第1のフィルタを、境界に位置する前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するステップと、
第2のフィルタを、前記境界に位置していない前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するステップと
を備える、請求項11に記載の方法。
【請求項１５】
前記第1のフィルタが2タップフィルタを備え、前記第2のフィルタが6タップフィルタを備える、請求項14に記載の方法。
【請求項１６】
前記ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックをダウンサンプリングするステップと、
前記ダウンサンプリングされた1つまたは複数の隣接ルーマブロックと、前記クロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータおよび第2のパラメータを決定するステップと
をさらに備え、
前記予測的ブロックを決定するステップが、前記ダウンサンプリングされたルーマブロックと、前記第1のパラメータおよび前記第2のパラメータとに基づいて、前記予測的ブロックを決定するステップを備える、
請求項11に記載の方法。
【請求項１７】
前記ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックと、前記クロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータのセットおよび第2のパラメータを決定するステップ
をさらに備え、
前記予測的ブロックを決定するステップが、前記ダウンサンプリングされたルーマブロックと、前記第1のパラメータのセットと、前記第2のパラメータとに基づいて、前記予測的ブロックを決定するステップを備える、
請求項11に記載の方法。
【請求項１８】
前記適用すべきフィルタを決定するステップが、
前記クロマブロックがCbである1つの事例では、前記クロマブロックが第1のタイプであることに基づいて、第1のフィルタを前記ルーマブロックに適用すると決定するステップと、
前記クロマブロックがCrである別の事例では、前記クロマブロックが第2のタイプであることに基づいて、第2の異なるフィルタを前記ルーマブロックに適用すると決定するステップと
を備える、請求項11に記載の方法。
【請求項１９】
前記ルーマブロックの1つまたは複数のルーマサンプルが、ピクチャ、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つまたは複数の外にあり、前記方法が、
パディング値を用いて、外にある前記1つまたは複数のルーマサンプルに対してルーマサンプル値をパディングするステップ
をさらに備え、
前記ルーマブロックをダウンサンプリングするステップが、前記パディング値を有する前記ルーマブロックをダウンサンプリングするステップを備える、
請求項11に記載の方法。
【請求項２０】
前記ルーマブロックがルーマ残差ブロックを備え、前記クロマブロックがクロマ残差ブロックを備える、請求項11に記載の方法。
【請求項２１】
ビデオデータを線形モデル(LM)予測復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたビデオデータメモリと、
集積回路を備えるビデオデコーダであって、
復号されている前記ビデオデータのクロマブロックに対応する、前記ビデオデータメモリに記憶された前記ビデオデータのルーマブロックを決定し、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定し、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングし、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し、
前記予測的ブロックおよび残差ブロックに基づいて、前記クロマブロックを再構成する
ように構成されたビデオデコーダと
を備えるデバイス。
【請求項２２】
前記クロマブロックの前記特性が、ピクチャ、スライス、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つの境界に対する、前記クロマブロックのクロマサンプルのロケーションを備える、請求項21に記載のデバイス。
【請求項２３】
前記境界が、左ピクチャ境界、左スライス境界、左CU境界、左PU境界、または左TU境界のうちの1つを備える、請求項22に記載のデバイス。
【請求項２４】
前記適用すべきフィルタを決定するために、前記ビデオデコーダが、
第1のフィルタを、境界に位置する前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定し、
前記第1のフィルタとは異なる第2のフィルタを、前記境界に位置していない前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定する
ように構成される、請求項21に記載のデバイス。
【請求項２５】
前記第1のフィルタが2タップフィルタを備え、前記第2のフィルタが6タップフィルタを備える、請求項24に記載のデバイス。
【請求項２６】
前記ビデオデコーダが、
前記ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックをダウンサンプリングし、
前記ダウンサンプリングされた1つまたは複数の隣接ルーマブロックと、前記クロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータおよび第2のパラメータを決定する
ように構成され、
前記予測的ブロックを決定するために、前記ビデオデコーダが、前記ダウンサンプリングされたルーマブロックと、前記第1のパラメータおよび前記第2のパラメータとに基づいて、前記予測的ブロックを決定するように構成される、
請求項21に記載のデバイス。
【請求項２７】
前記ビデオデコーダが、
前記ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックと、前記クロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータのセットおよび第2のパラメータを決定する
ように構成され、
前記予測的ブロックを決定するために、前記ビデオデコーダが、前記ダウンサンプリングされたルーマブロックと、前記第1のパラメータのセットと、前記第2のパラメータとに基づいて、前記予測的ブロックを決定するように構成される、
請求項21に記載のデバイス。
【請求項２８】
前記適用すべきフィルタを決定するために、前記ビデオデコーダが、
前記クロマブロックがCbである1つの事例では、前記クロマブロックが第1のタイプであることに基づいて、第1のフィルタを前記ルーマブロックに適用すると決定し、
前記クロマブロックがCrである別の事例では、前記クロマブロックが第2のタイプであることに基づいて、前記第1のフィルタとは異なる第2のフィルタを前記ルーマブロックに適用すると決定する
ように構成される、請求項21に記載のデバイス。
【請求項２９】
前記ルーマブロックの1つまたは複数のルーマサンプルが、ピクチャ、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つまたは複数の外にあり、前記ビデオデコーダが、
パディング値を用いて、外にある前記1つまたは複数のルーマサンプルに対してルーマサンプル値をパディングする
ように構成され、
前記ルーマブロックをダウンサンプリングするために、前記ビデオデコーダが、前記パディング値を有する前記ルーマブロックをダウンサンプリングするように構成される、
請求項21に記載のデバイス。
【請求項３０】
前記ルーマブロックがルーマ残差ブロックを備え、前記クロマブロックがクロマ残差ブロックを備える、請求項21に記載のデバイス。
【請求項３１】
ビデオデータを線形モデル(LM)予測符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたビデオデータメモリと、
集積回路を備えるビデオエンコーダであって、
符号化されている前記ビデオデータのクロマブロックに対応する、前記ビデオデータメモリに記憶された前記ビデオデータのルーマブロックを決定し、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定し、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングし、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し、
前記クロマブロックおよび前記予測的ブロックに基づいて、残差ブロックを生成する
ように構成されたビデオエンコーダと
を備えるデバイス。
【請求項３２】
前記クロマブロックの前記特性が、ピクチャ、スライス、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つの境界に対する、前記クロマブロックのクロマサンプルのロケーションを備える、請求項31に記載のデバイス。
【請求項３３】
前記境界が、左ピクチャ境界、左スライス境界、左CU境界、左PU境界、または左TU境界のうちの1つを備える、請求項32に記載のデバイス。
【請求項３４】
前記適用すべきフィルタを決定するために、前記ビデオエンコーダが、
第1のフィルタを、境界に位置する前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定し、
第2のフィルタを、前記境界に位置していない前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定する
ように構成される、請求項31に記載のデバイス。
【請求項３５】
前記第1のフィルタが2タップフィルタを備え、前記第2のフィルタが6タップフィルタを備える、請求項34に記載のデバイス。
【請求項３６】
ビデオデータを線形モデル(LM)予測復号するためのデバイスであって、
復号されている前記ビデオデータのクロマブロックに対応する前記ビデオデータのルーマブロックを決定するための手段と、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定するための手段と、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングするための手段と、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するための手段と、
前記予測的ブロックおよび残差ブロックに基づいて、前記クロマブロックを再構成するための手段と
を備えるデバイス。
【請求項３７】
前記クロマブロックの前記特性が、ピクチャ、スライス、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つの境界に対する、前記クロマブロックのクロマサンプルのロケーションを備える、請求項36に記載のデバイス。
【請求項３８】
前記境界が、左ピクチャ境界、左スライス境界、左CU境界、左PU境界、または左TU境界のうちの1つを備える、請求項37に記載のデバイス。
【請求項３９】
前記適用すべきフィルタを決定するための前記手段が、
第1のフィルタを、境界に位置する前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するための手段と、
前記第1のフィルタとは異なる第2のフィルタを、前記境界に位置していない前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するための手段と
を備える、請求項36に記載のデバイス。
【請求項４０】
前記第1のフィルタが2タップフィルタを備え、前記第2のフィルタが6タップフィルタを備える、請求項39に記載のデバイス。
【請求項４１】
ビデオデータを線形モデル(LM)予測符号化するためのデバイスであって、
符号化されている前記ビデオデータのクロマブロックに対応する前記ビデオデータのルーマブロックを決定するための手段と、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定するための手段と、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングするための手段と、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するための手段と、
前記クロマブロックおよび前記予測的ブロックに基づいて、残差ブロックを生成するための手段と
を備えるデバイス。
【請求項４２】
前記クロマブロックの前記特性が、ピクチャ、スライス、コーディングユニット(CU)、予測ユニット(PU)、または変換ユニット(TU)のうちの1つの境界に対する、前記クロマブロックのクロマサンプルのロケーションを備える、請求項41に記載のデバイス。
【請求項４３】
前記境界が、左ピクチャ境界、左スライス境界、左CU境界、左PU境界、または左TU境界のうちの1つを備える、請求項42に記載のデバイス。
【請求項４４】
前記適用すべきフィルタを決定するための前記手段が、
第1のフィルタを、境界に位置する前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するための手段と、
第2のフィルタを、前記境界に位置していない前記クロマブロックのクロマサンプルに対応する前記ルーマブロックのルーマサンプルに適用すると決定するための手段と
を備える、請求項41に記載のデバイス。
【請求項４５】
前記第1のフィルタが2タップフィルタを備え、前記第2のフィルタが6タップフィルタを備える、請求項44に記載のデバイス。
【請求項４６】
実行されると、ビデオデータを線形モデル(LM)予測復号するためのデバイスの1つまたは複数のプロセッサに、
復号されている前記ビデオデータのクロマブロックに対応する前記ビデオデータのルーマブロックを決定させ、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定させ、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングさせ、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定させ、
前記予測的ブロックおよび残差ブロックに基づいて、前記クロマブロックを再構成させる
命令を記憶するコンピュータ可読記憶媒体。
【請求項４７】
実行されると、ビデオデータを線形モデル(LM)予測符号化するためのデバイスの1つまたは複数のプロセッサに、
符号化されている前記ビデオデータのクロマブロックに対応する前記ビデオデータのルーマブロックを決定させ、
前記クロマブロックの特性に基づいて、前記ルーマブロックに適用すべきフィルタをフィルタのセットから決定させ、
前記決定されたフィルタに基づいて、前記ルーマブロックをダウンサンプリングさせ、
前記ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定させ、
前記クロマブロックおよび前記予測的ブロックに基づいて、残差ブロックを生成させる
命令を記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年3月20日に出願された米国仮特許出願第62/136,344号の利益を主張する。
【０００２】
本開示は、ビデオ符号化および復号に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、アドバンストビデオコーディング(AVC)、ITU-T H.265、高効率ビデオコーディング(HEVC)によって定義された規格、およびそのような規格の拡張に記載されているものなどのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および/または記憶し得る。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレーム、またはビデオフレームの一部分)は、ビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャの中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックに関する予測的ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測的ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測的ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測的ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データはピクセル領域から変換領域に変換されてよく、結果として残差係数をもたらし、残差係数は次いで量子化され得る。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「High Efficiency Video Coding (HEVC) Defect Report」、Wangら、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、第14回会合、ウイーン、オーストリア、2013年7月25日〜8月2日、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip
【非特許文献２】「Draft high efficiency video coding (HEVC) version 2, combined format range extensions (RExt), scalability (SHVC), and multi-view (MV-HEVC) extentions」、Boyceら、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、第14回会合、ウイーン、オーストリア、2014年6月30日〜7月9日、http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1013-v6.zip
【非特許文献３】A. FordおよびA. Roberts、「Colour space conversions」、ウェストミンスター大学、ロンドン、Tech. Rep.、1998年8月
【非特許文献４】J. Chen、V. Seregin、W.-J. Han、J.-S. Kim、B.-M. Joen、「Ce6.a.4: Chroma intra prediction by reconstructed luma samples」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、JCTVC-E266、第5回会合、ジュネーブ、2011年3月16日〜23日、http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2196
【非特許文献５】Yi-Jen Chiu、Yu Han、Lidong Xu、Wenhao Zhang、Hong Jiang、「Cross-channel techniques to improve intra chroma prediction」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、JCTVC-F502、第6回会合、トリノ、イタリア、2011年7月14日〜22日、http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2979
【発明の概要】
【課題を解決するための手段】
【０００６】
本開示は、線形モデル(LM)予測復号および符号化に関する技法について説明する。カラーフォーマットが4:4:4ではない(すなわち、ルーマ成分およびクロマ成分が異なる解像度を有する)とき、LM予測では、クロマブロックに関する予測的ブロックは、フィルタに基づいて対応するルーマブロックをダウンサンプリングし、以下で説明するアルファパラメータおよびベータパラメータをダウンサンプリングされたルーマブロックに適用することによって、決定される。技法は、ルーマブロックをダウンサンプリングするために適用されるべきフィルタを決定する。たとえば、ルーマブロックをダウンサンプリングするためにすべての場合において適用される1つのフィルタがあるのではなく、ビデオデコーダまたはビデオエンコーダは、フィルタのセットからどのフィルタが適用されるべきかを動的に決定し得る。どのフィルタが適用されるべきかの決定は、たとえば、境界に対するクロマブロックのロケーションなどの、クロマブロックの特性に基づき得る。いくつかの例では、ここで説明する技法は、クロマがルーマブロックから予測され、ルーマブロックのダウンサンプリングが必要とされる、他のコーディング方法にも適用され得る。
【０００７】
一例では、本開示は、ビデオデータを線形モデル(LM)予測復号する例示的な方法であって、復号されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定するステップと、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定するステップと、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングするステップと、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するステップと、予測的ブロックおよび残差ブロックに基づいて、クロマブロックを再構成するステップとを備える方法について説明する。
【０００８】
一例では、本開示は、ビデオデータを線形モデル(LM)予測符号化する例示的な方法であって、符号化されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定するステップと、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定するステップと、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングするステップと、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するステップと、クロマブロックおよび予測的ブロックに基づいて、残差ブロックを生成するステップとを備える方法について説明する。
【０００９】
一例では、本開示は、ビデオデータを線形モデル(LM)予測復号するための例示的なデバイスであって、ビデオデータを記憶するように構成されたビデオデータメモリと、集積回路を備えるビデオデコーダとを備えるデバイスについて説明する。ビデオデコーダは、復号されているビデオデータのクロマブロックに対応する、ビデオデータメモリに記憶されたビデオデータのルーマブロックを決定し、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定し、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し、予測的ブロックおよび残差ブロックに基づいて、クロマブロックを再構成するように構成される。
【００１０】
一例では、本開示は、ビデオデータを線形モデル(LM)予測符号化するための例示的なデバイスであって、ビデオデータを記憶するように構成されたビデオデータメモリと、集積回路を備えるビデオエンコーダとを備えるデバイスについて説明する。ビデオエンコーダは、符号化されているビデオデータのクロマブロックに対応する、ビデオデータメモリに記憶されたビデオデータのルーマブロックを決定し、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定し、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し、クロマブロックおよび予測的ブロックに基づいて、残差ブロックを生成するように構成される。
【００１１】
一例では、本開示は、ビデオデータを線形モデル(LM)予測復号するための例示的なデバイスであって、復号されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定するための手段と、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定するための手段と、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングするための手段と、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するための手段と、予測的ブロックおよび残差ブロックに基づいて、クロマブロックを再構成するための手段とを備えるデバイスについて説明する。
【００１２】
一例では、本開示は、ビデオデータを線形モデル(LM)予測符号化するための例示的なデバイスであって、符号化されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定するための手段と、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定するための手段と、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングするための手段と、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定するための手段と、クロマブロックおよび予測的ブロックに基づいて、残差ブロックを生成するための手段とを備えるデバイスについて説明する。
【００１３】
一例では、本開示は、実行されると、ビデオデータを線形モデル(LM)予測復号するためのデバイスの1つまたは複数のプロセッサに、復号されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定させ、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定させ、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングさせ、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定させ、予測的ブロックおよび残差ブロックに基づいて、クロマブロックを再構成させる命令を記憶する例示的なコンピュータ可読記憶媒体について説明する。
【００１４】
一例では、本開示は、実行されると、ビデオデータを線形モデル(LM)予測符号化するためのデバイスの1つまたは複数のプロセッサに、符号化されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定させ、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定させ、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングさせ、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定させ、クロマブロックおよび予測的ブロックに基づいて、残差ブロックを生成させる命令を記憶する例示的なコンピュータ可読記憶媒体について説明する。
【００１５】
本開示の1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】本開示で説明する技法を利用し得る例示的なビデオコーディングシステムを示すブロック図である。
【図２】本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図である。
【図３】本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図である。
【図４】ルーマサンプルおよびクロマサンプルの公称の垂直方向および水平方向の相対ロケーションを示す概念図である。
【図５】ダウンサンプリングされた再構成されたルーマブロックをスケーリングするために使用されるスケーリングパラメータが導出される元となる、例示的なロケーションを示す概念図である。
【図６】予測的ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の一例を示す概念図である。
【図７】予測的ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の別の例を示す概念図である。
【図８】ビデオデータを線形モデル(LM)予測符号化する1つの例示的な技法を示すフローチャートである。
【図９】ビデオデータを線形モデル(LM)予測復号する1つの例示的な技法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
本開示は、ビデオコーディングおよびビデオデータの圧縮のための技法について説明する。詳細には、本開示は、線形モデル(LM)予測ビデオコーディングモードのための技法について説明する。LM予測モードにおけるビデオコーディングは、ビデオデータのルーマサンプルとクロマサンプルとの間の成分間冗長性を低減する傾向がある。LM予測ビデオコーディングモードにおいて、サンプリングが4:4:4ではないとき、クロマブロックは、スケーリングされ、ダウンサンプリングされ、再構成された、対応するルーマブロックから予測される(すなわち、このスケーリングされ、ダウンサンプリングされ、再構成された、対応するルーマブロックは、クロマブロックを予測するために使用される予測的ブロックを形成する)。
【００１８】
いくつかの例では、再構成された、対応するルーマブロックのダウンサンプリングは、フィルタリングを含む。本開示は、そのようなフィルタリングを実行するための例示的な方法について説明する。本開示で説明する技法は、LM予測モードにおいて使用されるルーマサンプルが異なるタイルに位置する状況にも適用され得る。本開示で説明する技法は、ITU-T H.265高効率ビデオコーディング(HEVC)ビデオコーディング規格の拡張または次世代もしくは将来世代のビデオコーディング規格など、アドバンストビデオコーデックの文脈において使用され得る。
【００１９】
図1は、本開示の技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用する「ビデオコーダ」という用語は、総称的に、ビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、総称的に、ビデオ符号化またはビデオ復号を指すことがある。ビデオコーディングシステム10のビデオエンコーダ20およびビデオデコーダ30は、本開示で説明する様々な例による線形モデル(LM)予測ベースのビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、本開示で説明するようにサンプリングが4:4:4ではない(たとえば、クロマがルーマに対してサブサンプリングされる)例などにおいて、対応するルーマブロックのスケーリングされ、ダウンサンプリングされ、再構成されたルーマサンプルを利用するクロマブロックをコーディングするように構成され得る。
【００２０】
図1に示すように、ビデオコーディングシステム10は、ソースデバイス12および宛先デバイス14を含む。ソースデバイス12は、符号化ビデオデータを生成する。したがって、ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００２１】
ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータなどを含む、広範囲のデバイスを備え得る。
【００２２】
宛先デバイス14は、符号化ビデオデータをソースデバイス12からチャネル16を介して受信し得る。チャネル16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動させることが可能な1つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12がリアルタイムで符号化ビデオデータを宛先デバイス14に直接送信することを可能にする、1つまたは複数の通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス14に送信し得る。1つまたは複数の通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、ワイヤレスおよび/またはワイヤードの通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)などの、パケットベースネットワークの一部を形成し得る。1つまたは複数の通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にする他の機器を含み得る。
【００２３】
別の例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス14は、たとえば、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体などの、ローカルにアクセスされる様々なデータ記憶媒体を含み得る。
【００２４】
さらなる例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス14は、ファイルサーバまたは他の中間記憶デバイスにおいて記憶された符号化ビデオデータに、ストリーミングまたはダウンロードを介してアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、符号化ビデオデータを宛先デバイス14に送信することが可能なタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブを含む。
【００２５】
宛先デバイス14は、インターネット接続などの標準的なデータ接続を通じて符号化ビデオデータにアクセスし得る。データ接続の例示的なタイプは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするために適切である、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってもよい。
【００２６】
本開示の技法は、ワイヤレス適用例または設定に限定されない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体上に記憶するためのビデオデータの符号化、データ記憶媒体上に記憶されたビデオデータの復号、または他の用途などの様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオテレフォニーなどの用途をサポートするために、片方向または双方向のビデオ送信をサポートするように構成され得る。
【００２７】
図1に示すビデオコーディングシステム10は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。いくつかの例では、データは、ローカルメモリからの取出し、ネットワークを介したストリーミングなどが行われる。ビデオ符号化デバイスはデータを符号化してメモリに記憶することができ、かつ/または、ビデオ復号デバイスはメモリからデータを取り出して復号することができる。多くの例では、互いに通信しないが、単にデータをメモリへと符号化し、かつ/またはメモリからデータを取り出して復号するデバイスによって、符号化および復号が実行される。
【００２８】
図1の例では、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス(たとえば、ビデオカメラ)、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/もしくはビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
【００２９】
ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス12は、符号化ビデオデータを宛先デバイス14に出力インターフェース22を介して直接送信する。他の例では、復号および/または再生のために宛先デバイス14が後でアクセスするために、符号化ビデオデータはまた、記憶媒体またはファイルサーバに記憶され得る。
【００３０】
図1の例では、宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信し得る。ディスプレイデバイス32は、宛先デバイス14と一体化されてもよく、または宛先デバイス14の外部にあってもよい。一般に、ディスプレイデバイス32は、復号ビデオデータを表示する。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスを備え得る。
【００３１】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ハードウェア、またはそれらの任意の組合せなどの、様々な適切な回路のいずれかとして実装され得る。技法が部分的にソフトウェアにおいて実装される場合、本開示の技法を実行するために、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読記憶媒体に記憶し得、1つまたは複数のプロセッサを使用するハードウェアにおいて命令を実行し得る。前述のもののいずれか(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む)は、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、それらのいずれかが、それぞれのデバイスの中で複合エンコーダ/デコーダ(コーデック)の一部として一体化されてもよい。
【００３２】
本開示は、概して、ある情報をビデオデコーダ30などの別のデバイスに「シグナリングする」または「送信する」ビデオエンコーダ20に言及することがある。「シグナリングする」または「送信する」という用語は、概して、シンタックス要素、および/または圧縮されたビデオデータを復号するために使用される他のデータの通信を指すことがある。そのような通信は、リアルタイムで、またはほぼリアルタイムで発生し得る。代替的に、そのような通信は、符号化の時点において符号化ビットストリームの中のシンタックス要素をコンピュータ可読記憶媒体に記憶するときに発生し得るなど、ある時間の範囲にわたって発生することがあり、シンタックス要素は、次いで、この媒体に記憶された後の任意の時点において復号デバイスによって取り出され得る。
【００３３】
いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ビデオ圧縮規格に従って動作する。ビデオコーディング規格の例は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、および、そのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含むITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)を含む。
【００３４】
加えて、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)が、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のジョイントコラボレーションチームオンビデオコーディング(JCT-VC)によって最近開発された。以下でHEVC WDと呼ばれる最新のHEVCドラフト仕様は、「High Efficiency Video Coding (HEVC) Defect Report」、Wangら、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、第14回会合、ウイーン、オーストリア、2013年7月25日〜8月2日であり、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。HEVC、ならびにフォーマット範囲(RExt)拡張、スケーラビリティ(SHVC)拡張およびマルチビュー(MV-HEVC)拡張を含むその拡張の仕様は、「Draft high efficiency video coding (HEVC) version 2, combined format range extensions (RExt), scalability (SHVC), and multi-view (MV-HEVC) extentions」、Boyceら、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、第14回会合、ウイーン、オーストリア、2014年6月30日〜7月9日であり、http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1013-v6.zipから入手可能である。
【００３５】
ビデオコーディングは、色空間および色フォーマットに基づいて実行され得る。たとえば、カラービデオは、色を効率的に表すために様々な色空間が使用されるマルチメディアシステムにおいて、重要な役割を果たしている。色空間は、複数の成分を使用して、数値で色を指定する。普及している色空間はRGB色空間であり、RGB色空間では、色は三原色成分値(すなわち、赤色、緑色、および青色)の組合せとして表される。カラービデオ圧縮の場合、A. FordおよびA. Roberts、「Colour space conversions」、ウェストミンスター大学、ロンドン、Tech. Rep.、1998年8月に記載されているように、YCbCr色空間が広く使用されている。
【００３６】
YCbCrは、線形変換および異なる成分間の冗長性によってRGB色空間から容易に変換され得、すなわち、YCbCr色空間において成分間冗長性が著しく低減される。Y信号がルミナンス情報を伝達するので、YCbCrの1つの利点は白黒TVとの後方互換性である。加えて、クロミナンス帯域幅は、RGBにおけるサブサンプリングよりも主観的影響が著しく少なくなる4:2:0クロマサンプリングフォーマットにおいてCb成分およびCr成分をサブサンプリングすることによって低減され得る。これらの利点により、YCbCrはビデオ圧縮において主要な色空間になっている。YCoCgなど、ビデオ圧縮において使用される他の色空間もある。本開示では、使用される実際の色空間にかかわらず、Y、Cb、Crは、ビデオ圧縮方式における3つの色成分を表すために使用される。
【００３７】
4:2:0サンプリングでは、2つのクロマアレイの各々は、ルーマアレイの半分の高さと半分の幅とを有する。ピクチャの中のルーマサンプルおよびクロマサンプルの公称の垂直方向および水平方向の相対ロケーションが図4に示されている。
【００３８】
HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。ピクチャは、SL、SCbおよびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであることがあり、ルーマサンプルのアレイだけを含むことがある。
【００３９】
ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれることもある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックと概ね類似していることがある。しかしながら、CTUは必ずしも特定のサイズに限定されず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のCTUを含み得る。
【００４０】
コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロックに対して4分木区分を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割することができる。コーディングブロックは、サンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、CbサンプルアレイおよびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロック、ならびにそれらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの長方形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ピクチャの、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロックおよびCr予測ブロックに対して、予測的ルーマブロック、予測的Cbブロックおよび予測的Crブロックを生成し得る。
【００４１】
ビデオエンコーダ20は、PUに関する予測的ブロックを生成する(たとえば、決定する)ために、いくつかの例として、イントラ予測、インター予測、または線形モデル(LM)予測を使用し得る。ビデオエンコーダ20がPUの予測的ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測的ブロックを生成し得る。
【００４２】
ビデオエンコーダ20がPUの予測的ブロックを生成する(たとえば、決定する)ためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測的ブロックを生成し得る。ビデオエンコーダ20は、PUの予測的ブロックを生成するために単予測または双予測を使用し得る。ビデオエンコーダ20がPUの予測的ブロックを生成するために単予測を使用するとき、PUは単一の動きベクトル(MV)を有し得る。ビデオエンコーダ20がPUに関する予測的ブロックを生成するために双予測を使用するとき、PUは2つのMVを有し得る。
【００４３】
ビデオエンコーダ20が、CUの1つまたは複数のPUに対して予測的ルーマブロック、予測Cbブロックおよび予測Crブロックを生成した後、ビデオエンコーダ20は、CUに関するルーマ残差ブロックを生成し得る。CUのルーマ残差ブロックの中の各サンプルは、CUの予測的ルーマブロックのうちの1つの中のルーマサンプルとCUの元のルーマコーディングブロックの中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ20は、CUに関するCb残差ブロックを生成し得る。CUのCb残差ブロックの中の各サンプルは、CUの予測的Cbブロックのうちの1つの中のCbサンプルとCUの元のCbコーディングブロックの中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20はまた、CUに関するCr残差ブロックを生成し得る。CUのCr残差ブロックの中の各サンプルは、CUの予測的Crブロックのうちの1つの中のCrサンプルとCUの元のCrコーディングブロックの中の対応するサンプルとの間の差分を示し得る。
【００４４】
いくつかの例では、クロマブロックの場合、イントラ予測またはインター予測のための予測的ブロックを決定するのではなく、ビデオエンコーダ20は、再構成された対応するルーマブロックに基づいて、LM予測モードのための予測的ブロックを決定し得る。ビデオデコーダ30は同様に、再構成された対応するルーマブロックに基づいて、予測的ブロックを決定し得る。対応するルーマブロックは、現在のクロマブロックが決定された元となったユニット(たとえば、コーディングユニットまたは予測ユニット)の一部であったルーマブロックを指す。ビデオエンコーダ20は、クロマブロックと、再構成された対応するルーマブロックから生成されたこの予測的ブロックとの間の残差を決定し得る。
【００４５】
さらに、ビデオエンコーダ20は、4分木区分を使用して、CUのルーマ残差ブロック、Cb残差ブロックおよびCr残差ブロックを1つまたは複数のルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロックに分解し得る。変換ブロックは、同じ変換が適用されるサンプルの長方形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。
【００４６】
ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、1つまたは複数の変換をTUのルーマ変換ブロックに適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、TUに関するCb係数ブロックを生成するために、1つまたは複数の変換をTUのCb変換ブロックに適用し得る。ビデオエンコーダ20は、TUに関するCr係数ブロックを生成するために、1つまたは複数の変換をTUのCr変換ブロックに適用し得る。
【００４７】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、一般に、変換係数が量子化されて、場合によっては、変換係数を表すために使用されるデータの量を低減し、さらなる圧縮をもたらすプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行し得る。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリームの中に出力し得る。
【００４８】
ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。ビットストリームは、ビデオデータの符号化表現を含み得る。たとえば、ビットストリームは、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含み得る。ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのシーケンスを備え得る。NALユニットの各々は、NALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0個のビットを含む。
【００４９】
異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットは、シーケンスパラメータセット(SPS)のためのRBSPをカプセル化することができ、第2のタイプのNALユニットは、ピクチャパラメータセット(PPS)のためのRBSPをカプセル化することができ、第3のタイプのNALユニットは、コード化スライスのためのRBSPをカプセル化することができ、第4のタイプのNALユニットは、SEIのためのRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPではなく)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれることがある。
【００５０】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、シンタックス要素をビットストリームから復号するために、ビットストリームをパースし得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するプロセスは、一般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在のCUのPUに関する予測的ブロックを決定するために、PUのMVを使用し得る。別の例として、LM予測モードの場合、ビデオデコーダ30は、対応するルーマブロックの再構成されたサンプルに基づいて、クロマブロックに関する予測的ブロックを決定し得る。加えて、ビデオデコーダ30は、現在のCUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在のCUのTUに関連付けられた変換ブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。
【００５１】
ビデオデコーダ30は、現在のCUのPUに関する予測的ブロックのサンプルを、現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構成し得る。ピクチャのCUごとにコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成し得る。
【００５２】
いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、線形モデル(LM)ベースのコーディングを実行するように構成され得る。以下は、LMベースの予測コーディングの説明である。たとえば、成分間冗長性はYCbCr色空間において著しく低減されるが、3つの色成分間の相関は依然として存在する。相関をさらに低減することによってビデオコーディング性能を改善するために、様々な方法が研究されている。
【００５３】
4:2:0クロマビデオコーディングでは、線形モデル(LM)予測モードと称される方法が、HEVC規格の開発中によく研究された。http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2196から入手可能であり、以下でJCTVC-E266と呼ばれる、J. Chen、V. Seregin、W.-J. Han、J.-S. Kim、B.-M. Joen、「Ce6.a.4: Chroma intra prediction by reconstructed luma samples」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、JCTVC-E266、第5回会合、ジュネーブ、2011年3月16日〜23日を参照されたい。
【００５４】
LM予測モードでは、クロマサンプルは、次のように線形モデルを使用することによって、同じブロックの再構成されたルーマサンプルに基づいて予測される。
predc(i,j)=α*recL(i,j)+β     (1)
式中、predc(i,j)は、ブロックの中のクロマサンプルの予測を表し、recL(i,j)は、同じブロックのダウンサンプリングされた再構成されたルーマサンプルを表す。パラメータαおよびβは、現在のブロックの周囲の因果的な再構成されたサンプルから導出される。クロマブロックサイズがN×Nによって示される場合、iとjの両方は[0, N]の範囲内にある。
【００５５】
式(1)におけるパラメータαおよびβは、現在のブロックの周囲の隣接する再構成されたルーマサンプルとクロマサンプルとの間の回帰誤差を最小化することによって導出される。
【００５６】
【数１】
2018514119.tif 000003
【００５７】
また、パラメータαおよびβは、次のように解かれる。
【００５８】
【数２】
2018514119.tif 000004
【００５９】
式中、xiは、ダウンサンプリングされた再構成されたルーマ参照サンプルであり、yiは、再構成されたクロマ参照サンプルであり、Iは、参照サンプルの量である。ターゲットN×Nクロマブロックの場合、左の因果的なサンプルと上の因果的なサンプルの両方が利用可能であるとき、関与するサンプル総数Iは2Nに等しく、左の因果的なサンプルまたは上の因果的なサンプルのみが利用可能であるとき、関与するサンプル総数IはNに等しい。
【００６０】
図5は、ダウンサンプリングされた再構成されたルーマブロックのサンプルをスケーリングするために使用されるスケーリングパラメータが導出される元となる、例示的なロケーションを示す概念図である。たとえば、図5は4:2:0サンプリングの一例を示し、スケーリングパラメータはαおよびβである。
【００６１】
一般に、LM予測モードが適用されるとき、ビデオエンコーダ20およびビデオデコーダ30は、以下のステップを呼び出し得る。ビデオエンコーダ20およびビデオデコーダ30は、隣接ルーマサンプルをダウンサンプリングし得る。ビデオエンコーダ20およびビデオデコーダ30は、線形パラメータ(すなわち、αおよびβ)(スケーリングパラメータとも呼ばれる)を導出し得る。ビデオエンコーダ20およびビデオデコーダ30は、現在のルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックおよび線形パラメータ(すなわち、スケーリングパラメータ)から予測(たとえば、予測的ブロック)を導出し得る。
【００６２】
ダウンサンプリングするための様々な方法があり得る。以下では、ダウンサンプリングが実行され得る例示的な方法について説明する。
【００６３】
JCTVC-E266では、上記で説明したように、LM予測モードを実行するとき、ダウンサンプリングされた現在のルーマブロックおよびダウンサンプリングされた隣接ルーマブロックが必要とされる。ダウンサンプリングされた現在のルーマブロックは、クロマコーディングに関する予測ブロックを導出するために使用されるが、ダウンサンプリングされた隣接ルーマブロックは、パラメータ(すなわち、αおよびβ)の導出に使用される。
【００６４】
クロマ成分の典型的なサンプリング比はルーマ成分のサンプリング比の半分であり、4:2:0サンプリングでは垂直方向において0.5サンプル位相差を有するので、現在のブロックの再構成されたルーマは、クロマ信号のサイズおよび位相を一致させるために、次のように垂直方向においてダウンサンプリングされ、水平方向においてサブサンプリングされる。
recL(i, j)=(Re cLOrig[2i, 2j]+Re cLOrig[2i, 2j+ 1])>>1     (5)
ここにおいて、RecLOrig[]は、元の再構成されたルーマサンプルを示す。
【００６５】
図6は、予測的ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の一例を示す概念図である。図6に示すように、黒塗り三角形によって表されるクロマサンプルは、[1, 1]フィルタを適用することによって、2つの黒塗り円によって表される2つのルーマサンプルから予測される。[1, 1]フィルタは、2タップフィルタの一例である。言い換えれば、再構成されたルーマブロックをダウンサンプリングするために、式(5)は、一方のタップであるRe cLOrig[2i, 2j]および他方のタップであるRe cLOrig[2i, 2j+1]によって表されるように、ビルトイン[1, 1]2タップフィルタを含む。フィルタのタップは、ダウンサンプリングに使用される入力サンプルの値を表し、式(5)では、再構成されたルーマブロックからの2つの値は、ダウンサンプリングされたルーマブロックを生成するために合計され、右シフトされる。したがって、一例として、ビデオエンコーダ20またはビデオデコーダ30は、ダウンサンプリングされたルーマブロックを決定するために、式(5)の動作を実行し得る。
【００６６】
隣接ルーマブロックのダウンサンプリングの場合、隣接サンプルが現在のルーマブロックの上にあるとき、ダウンサンプリングプロセスは、
recL(i, -1)=Re cLOrig[2i, -1]     (6)
として定義される。
【００６７】
隣接サンプルが現在のルーマブロックの左にあるとき、ダウンサンプリングプロセスは、
recL(-1, j)=(Re cLOrig[-2, 2j]+Re cLOrig[-2, 2j+1])>>1     (7)
として定義される。
【００６８】
2タップフィルタ、すなわち、[1, 1]は、図6に示す例において使用されているものと同じであり得る。したがって、一例として、ビデオエンコーダ20またはビデオデコーダ30は、ルーマブロックに隣接するダウンサンプリングされた隣接ルーマブロックを決定するために、式(6)および式(7)の動作を実行し得る。
【００６９】
他のダウンサンプリング技法も提案されている。http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2979から入手可能であり、JCTVC-F502と呼ばれる、Yi-Jen Chiu、Yu Han、Lidong Xu、Wenhao Zhang、Hong Jiang、「Cross-channel techniques to improve intra chroma prediction」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、JCTVC-F502、第6回会合、トリノ、イタリア、2011年7月14日〜22日では、2タップフィルタを使用する代わりに、2次元6タップフィルタリングが現在のルーマブロックと隣接ルーマブロックの両方に適用される。2次元フィルタ係数セットは、
【００７０】
【数３】
2018514119.tif 000005
【００７１】
である。
【００７２】
ダウンサンプリングされたルーマサンプルは、式(9)によって導出される。
recL(i,j)=(Re cLOrig[2i, 2j]*2+Re cLOrig[2i, 2j+1]+Re cLOrig[2i, 2j-1]
+Re cLOrig[2i+1, 2j]*2+Re cLOrig[2i+1, 2j+1]+Re cLOrig[2i+1, 2j-1])>>3
【００７３】
たとえば、ビデオエンコーダ20またはビデオデコーダ30は、ダウンサンプリングされたルーマブロックを決定するために、式(9)の動作を実行し得る。式(9)は、6つの入力サンプルとしてRe cLOrig[2i, 2j]、Re cLOrig[2i, 2j+1]、Re cLOrig[2i, 2j-1]、Re cLOrig[2i+1, 2j]、Re cLOrig[2i+1, 2j+1]、およびRe cLOrig[2i+1, 2j-1]を有する[1, 2, 1; 1, 2, 1]によって表されるように、ビルトイン6タップフィルタを含む。フィルタのタップは、ダウンサンプリングに使用される入力サンプルの数を表し、式(9)では、ダウンサンプリングされたルーマブロックを生成するために、再構成されたルーマブロックからの6つの値が使用される。
【００７４】
図7は、予測的ブロックを生成するためにルーマブロックのサンプルをダウンサンプリングするためのルーマ位置およびクロマ位置の別の例を示す概念図である。図7に示すように、黒塗り三角形によって表されるクロマサンプルは、6タップフィルタを適用することによって、6つの黒塗り円によって表される6つのルーマサンプルから予測される。
【００７５】
式(1)において定義されているように、1つのクロマサンプルの予測子は線形関数を使用して導出されるので、6タップフィルタが適用されるとき、1つのクロマサンプルの予測子は6つの隣接ルーマサンプルに依拠することがわかる。式(1)と式(9)を組み合わせると、結果は以下の式(10)である。
predC(i,j)=α・(Re cLOrig[2i, 2j]*2+Re cLOrig[2i, 2j+1]+Re cLOrig[2i, 2j-1]
+Re cLOrig[2i+1, 2j]*2+Re cLOrig[2i+1, 2j+1]+Re cLOrig[2i+1, 2j-1]>>3)
+β
【００７６】
以下の本文では、ダウンサンプリングされたサンプルrecL(i,j)は、(i, j)に位置するクロマサンプルに関する対応するダウンサンプリングされたルーマサンプルと称される。たとえば、4:2:0サンプリングにより、2N×2NのルーマブロックはN×Nのクロマブロックに対応する。ダウンサンプリングすると、2N×2NのルーマブロックはN×Nのダウンサンプリングされたルーマブロックになる。このN×NのダウンサンプリングされたルーマブロックはrecL(i,j)と呼ばれ、N×Nのクロマブロックに対応する。
【００７７】
さらに、4:2:0サンプリングに関して上記の例について説明したが、本開示で説明する技法はそのように限定されない。たとえば、本開示で説明する技法は、4:2:2サンプリングにも適用可能であり得る。したがって、4:2:0に関する例は、理解を助ける方法として提供されるにすぎない。
【００７８】
さらに、いくつかの例では、本開示で説明する技法は、4:4:4サンプリングにも適用可能であり得る。たとえば、4:4:4サンプリングでは、クロマブロックはルーマブロックに対してサブサンプリングされない。しかしながら、そのような例においても、クロマブロックに関する予測的ブロックを決定することが可能であり得る。たとえば、ルーマブロックはフィルタリングされ得、フィルタリングされたブロックは、クロマブロックに関する予測的ブロックとして使用され得る。これらの例では、ルーマブロックのダウンサンプリングは必要とされないことがある。より詳細に説明するように、例示的な技法は、クロマブロックのロケーションに基づいてルーマブロックのサンプルに適用されるフィルタの選択について説明する。ルーマブロックのサンプルに適用されるフィルタを選択するための技法は、4:4:4サンプリングのためになど、LM予測のためにダウンサンプリングが必要とされない例に拡張され得る。そのような例では、4:4:4サンプリングが保持されるように、フィルタはいかなるダウンサンプリングも含まないことがある。したがって、4:2:0サンプリングについての説明は一例であり、技法は4:4:4サンプリングにも適用可能である。
【００７９】
さらに、HEVCでは、ピクチャをタイルと呼ばれる矩形領域に区分するオプションが指定されている。タイルの主な目的は、誤り耐性を与えることではなく、並列処理の能力を高めることである。タイルは、何らかの共有ヘッダ情報で符号化された、ピクチャの独立して復号可能な領域である。加えて、タイルは、ビデオピクチャのローカル領域への空間ランダムアクセスの目的で使用され得る。ピクチャの典型的なタイル構成は、各タイルの中のほぼ等しい数のCTUを用いて、ピクチャを矩形領域にセグメント化することからなる。タイルは、より粗いレベルの粒度(ピクチャ/サブピクチャ)で並列性を実現し、その使用には、スレッドの精巧な同期は不要である。
【００８０】
LM予測モードのための技法には、いくつかの課題/問題が存在することがある。たとえば、LM予測モードにおいて呼び出されるダウンサンプリングプロセスは、コーディング性能の改善のために重要である。しかしながら、2タップフィルタおよび6タップフィルタなどの固定フィルタは、コーディング性能を制限する。1つのピクチャ内の異なるシーケンスまたは領域は、異なる特性を有することがあり、すべてのピクチャに適用される同じフィルタは、準最適であることがある。LM予測モードにおいて使用される再構成されたルーマサンプルが異なるタイルに位置するとき、この場合をどのように処理するかは不明である。
【００８１】
上述の問題を解決するために、本開示は以下の技法について説明する。技法は個別に適用されることがあり、または技法の任意の組合せが適用されることがある。一般に、ビデオエンコーダ20およびビデオデコーダ30は、線形モデル(LM)予測モードにおけるクロマブロックの符号化または復号の一部として、これらの例示的な技法を実行し得る。簡単にするために、ビデオコーダに関して技法について説明し、ビデオコーダの例は、ビデオエンコーダ20およびビデオデコーダ30を含む。
【００８２】
たとえば、ルーマブロックをダウンサンプリングするために2タップフィルタまたは6タップフィルタのみを使用することに制限されるのではなく、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、ルーマブロックをダウンサンプリングするために使用されるフィルタをフィルタのセットから決定し得る。一例として、ビデオコーダがダウンサンプリングするために使用することができる、Xの数の異なるフィルタがあり得る。たとえば、1タップフィルタ、2タップフィルタ、3タップフィルタなどがあり得る。さらに、フィルタごとに、特定のタップは異なり得る(たとえば、第1の2タップフィルタに使用されるルーマサンプルは、第2の2タップフィルタに使用されるルーマサンプルとは異なる)。本開示で説明する例のうちのいくつかでは、フィルタのセットは2つのフィルタを含むが、ルーマブロックをダウンサンプリングするためにどのフィルタを適用すべきかをビデオコーダが決定する元となる3つ以上のフィルタが可能である。
【００８３】
ビデオコーダは、ビデオコーダが適用すべきフィルタを決定する様々な基準を使用し得る。一例として、ビデオコーダは、クロマブロックのロケーションに基づいて、どのフィルタを適用すべきかをフィルタのセットから決定する。クロマブロックがピクチャ、CU、PU、またはTUの左境界に接する(たとえば、ピクチャ、CU、PU、またはTUの左境界がクロマブロックエッジと同じである)場合、ビデオコーダは、左境界上にあるクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルをダウンサンプリングするために、第1のフィルタを使用し得る。左境界上にあるクロマブロックのサンプルは、直接境界上にあるサンプルを含む、左境界に最も近いクロマブロックのサンプルを指す。第1のフィルタは、境界に最も近いN個のサンプル(たとえば、境界に最も近いサンプル、そのサンプルの隣のサンプル、およびN個のそのようなサンプル)に適用され得る。
【００８４】
場合によっては、ビデオコーダは、左境界に隣接するクロマサンプルに対応するサンプルだけではなく、ルーマブロックのすべてのルーマサンプルに対して第1のフィルタを適用し得るが、本開示で説明する技法はそのように限定されない。すべての他の場合、ビデオコーダは、ルーマブロックをダウンサンプリングするために第2の異なるフィルタを使用し得る。
【００８５】
たとえば、4:2:0サンプリングでは、4つのルーマサンプルは1つのクロマサンプルに対応する。したがって、ビデオコーダは、どのクロマサンプルがどのルーマサンプルに対応するかを決定し得る。より大きいタップを有するフィルタが使用されるとき、1つのクロマサンプルは、5つ以上のルーマサンプルに対応し得る。左境界上のクロマサンプルに対応するルーマサンプル(いくつかのサンプルにすぐ隣接するまたはそれらのサンプル内にある)の場合、ビデオコーダは、ルーマブロックをダウンサンプリングするために第1のフィルタを対応するルーマサンプルに適用し得、左境界上にないクロマサンプルに対応するルーマサンプル(いくつかのサンプルにすぐ隣接しないまたはそれらのサンプル内にない)の場合、ビデオコーダは、ルーマブロックをダウンサンプリングするために第2のフィルタを対応するルーマサンプルに適用し得る。
【００８６】
いくつかの例では、第1のフィルタは、第2のフィルタよりも少数のタップ(たとえば、フィルタが及ぶサンプルの数)を含み得る。一例として、第1のフィルタは2タップフィルタであり、第2のフィルタは6タップフィルタである。この例では、ビデオコーダは、クロマブロックの対応するクロマサンプルが左境界上にある場合、ルーマブロックのダウンサンプリングされたルーマサンプルを決定するために式(5)の動作を実行し得、クロマブロックの対応するクロマサンプルが左境界上にない場合、ルーマブロックのダウンサンプリングされたルーマサンプルを決定するために式(9)の動作を実行し得る。したがって、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、左ピクチャ境界またはコーディングユニット(CU)、予測ユニット(PU)、もしくは変換ユニット(TU)の左境界にないクロマサンプルに対応するルーマブロックの他のサンプルに適用されるフィルタと比較して、異なるフィルタを、左ピクチャ境界、またはCU/PU/TUの左境界に位置するクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用し得る。左境界にあるクロマサンプルは、左境界にすぐ隣接する、または左境界からの一定数のサンプル内にある、クロマサンプルを指す。
【００８７】
異なるフィルタを使用することは、ビデオコーダが利用可能なサンプル値を適切に使用することを可能にする。たとえば、ピクチャ、CU、PU、またはTUの左境界にあるクロマサンプルに対応するルーマサンプルに対して6タップフィルタを使用することは、ビデオコーダがダウンサンプリングのためのルーマブロックの一部ではないルーマサンプル値を使用することを必要とすることになる場合があり、ルーマサンプルの欠如に対処するためにビデオコーダが何らかの追加の処理を実行しなければならなくなる(たとえば、ルーマブロックの一部ではないサンプルに関する値を生成するために、ルーマサンプル値をパディングする)場合がある。しかしながら、左境界において2タップフィルタを使用することは、ビデオコーダがダウンサンプリングのためのルーマブロックの一部ではないルーマサンプル値を使用することを必要としない場合がある。したがって、2タップフィルタおよび6タップフィルタについて説明したが、ルーマブロックの一部ではないルーマサンプルを必要としなければならないことを回避すること(たとえば、左境界上のルーマサンプルをパディングしなければならないことを回避すること)を考慮すると、ダウンサンプリングのための他のサイズのフィルタが可能であり得る。
【００８８】
一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、左ピクチャ境界に位置していないクロマサンプルに対応する他のルーマサンプルに適用されるフィルタと比較して、異なるフィルタを左ピクチャ境界に位置するクロマサンプルに対応するルーマサンプルに適用する。一例では、左ピクチャ境界にあるクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さ(たとえば、タップ)(すなわち、フィルタが及ぶサンプルの数)は、左ピクチャ境界にないクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さよりも小さい(たとえば、左境界の場合は2タップ、すべての他の場合は6タップ)。
【００８９】
一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のCU内の他のルーマサンプルに適用されるフィルタと比較して、異なるフィルタを左CU境界に位置するクロマサンプルのルーマサンプルに適用する。一例では、左CU境界にあるクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さ(たとえば、タップ)(すなわち、フィルタが及ぶサンプルの数)は、左CU境界にないクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さよりも小さい(たとえば、左境界の場合は2タップ、すべての他の場合は6タップ)。
【００９０】
一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のPU内の他のサンプルに適用されるフィルタと比較して、異なるフィルタを左PU境界に位置するクロマサンプルに適用する。一例では、左PU境界にあるクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さ(たとえば、タップ)(すなわち、フィルタが及ぶサンプルの数)は、左PU境界にないクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さよりも小さい(たとえば、左境界の場合は2タップ、すべての他の場合は6タップ)。
【００９１】
一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のTU内の他のサンプルに適用されるフィルタと比較して、異なるフィルタを左TU境界に位置するクロマサンプルに適用し得る。一例では、左TU境界にあるクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さ(たとえば、タップ)(すなわち、フィルタが及ぶサンプルの数)は、左TU境界にないクロマサンプルの対応するダウンサンプリングされたルーマサンプルを導出するためのフィルタの長さよりも小さい(たとえば、左境界の場合は2タップ、すべての他の場合は6タップ)。
【００９２】
場合によっては、同じピクチャの中に対応するルーマサンプルがないことがある。以下は、そのような状況に対処するためのいくつかの例示的な技法について説明する。たとえば、パディングを回避することは場合によっては有益であり得るが、いくつかの事例では、パディングを回避することが可能ではないことがある。たとえば、いくつかのルーマサンプルが(たとえば、ピクチャのせいで)利用不可能であるので、ビデオコーダは、これらの利用不可能なサンプルの代わりにパディングサンプル値を使い、これらのパディングサンプル値を用いてダウンサンプリングを実行する(たとえば、利用可能なルーマサンプルに対して実際のルーマサンプル値を使用し、利用不可能なルーマサンプルに対してパディングサンプル値を使用してダウンサンプリングする)ことができる。パディングサンプル値は、デフォルト値(たとえば、2bitdepth、ここにおいて、bitdepthはルーマ成分のビット深度を示す)、ビデオエンコーダ20によって決定され、ビデオデコーダ30にシグナリングされる値、または情報のシグナリングを必要としない何らかの暗黙的な技法に基づいて決定された値であってもよい。パディングサンプル値を加算することは、別個のフィルタを必要としないことがあるので、複雑性を低減し得る。
【００９３】
クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ルーマサンプルがピクチャの外にあるか、またはCU/PU/TUがダウンサンプリングプロセスに関与することを必要とするとき、ビデオコーダは最初にパディング動作を適用し得、その後にダウンサンプリングプロセスが続く。サンプルのパディングでは、ビデオコーダは、オフスクリーンであるそれらのサンプルをパディングサンプル値と置き換えることができる。
【００９４】
一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のピクチャの外に位置するルーマサンプル(たとえば、ルーマサンプルのみ)をパディングし得る。すべての他の位置の場合、再構成されたサンプルが使用される。一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のCUの外に位置するルーマサンプルをパディングし得る。すべての他の位置の場合、再構成されたサンプルが使用される。一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のPUの外に位置するルーマサンプルをパディングし得る。すべての他の位置の場合、再構成されたサンプルが使用される。一例として、クロマサンプルの対応するダウンサンプリングされたルーマサンプルの導出プロセスの間、ビデオコーダは、現在のTUの外に位置するルーマサンプルをパディングし得る。すべての他の位置の場合、再構成されたサンプルが使用される。パディングについての上記の例では、同じダウンサンプリングプロセスがすべての位置に適用される。
【００９５】
LM予測モードにおいて使用される再構成されたルーマサンプルの位置が現在のスライスまたは現在のタイルの外に位置するとき、ビデオコーダは、そのようなサンプルを利用不可能としてマークし得る(たとえば、ビデオコーダは、そのようなサンプルを利用不可能として決定し得る)。サンプルが利用不可能としてマークされたとき、ビデオコーダは以下のうちの1つまたは複数を実行し得る。
【００９６】
サンプル(たとえば、利用不可能なサンプル)は、隣接ルーマブロックに関するダウンサンプリングプロセスにおいて使用される場合、隣接ルーマブロックに関するダウンサンプリングプロセスにおいて使用されない。代替または追加として、フィルタは他のサンプルに使用されるフィルタとは異なり得る。サンプル(たとえば、利用不可能なサンプル)は、現在のルーマブロックに関するダウンサンプリングプロセスにおいて使用される場合、現在のルーマブロックに関するダウンサンプリングプロセスにおいて使用されない。代替または追加として、フィルタは他のサンプルに使用されるフィルタとは異なり得る。サンプル(たとえば、利用不可能なサンプル)は、利用可能として再マークされるが、サンプル値はパディングされたサンプル値またはデフォルト値になるように修正される。代替または追加として、フィルタは他のサンプルに使用されるフィルタと同じままである。一例では、デフォルト値はビット深度に依存する。別の例では、パディングは、利用可能としてマークされた左/右/上/下のサンプルからのものであり得る。
【００９７】
一般に、別のタイルの中にあるルーマサンプルの場合、ビデオコーダは、タイル境界の外のピクセルを利用不可能としてマークし、ダウンサンプリングプロセスにおいてそれらのピクセルを含まないことがある。いくつかの例では、ビデオコーダは、別のタイルの中のルーマサンプルを利用可能としてマークするが、別のタイルの中のそのようなルーマサンプルに対して、パディングされたピクセルを使用することがある。別の例として、ビデオコーダは、サンプルを利用不可能としてマークするのではなく、別のタイルの中のルーマサンプルに対して、パディングされた「拡張」値(たとえば、ビット深度に基づいた半分の可能な値、8ビットであれば、128を使用する)を使用し得る。
【００９８】
いくつかの例では、ビデオコーダは、特定の条件下で、上記の例示的な技法のうちの1つまたは複数を有効化することができる。一例として、条件はスライスタイプに依存してもよい(たとえば、現在のスライスがイントラコード化スライスではないとき、ビデオコーダは、本開示で説明する例に従って技法を有効化する)。代替または追加として、条件はその隣接CUのコーディングタイプに依存してもよい。たとえば、隣接CUがインターコード化されるとき、ビデオコーダは上記の技法のうちの1つまたは複数を有効化することができる。代替または追加として、条件は現在のCU/PUを含むスライスの参照ピクチャに依存してもよい。たとえば、すべての参照ピクチャが現在のピクチャのPOC(ピクチャ順序カウント)値よりも小さいPOC値を有するとき、ビデオコーダは上記の技法のうちの1つまたは複数を有効化することができる。
【００９９】
いくつかの例では、ビデオコーダは、異なるフィルタを異なるクロマ色成分(CbまたはCr)に適用し得る。いくつかの例では、LM予測モードが有効化されるとき、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはスライスヘッダのいずれかにおいて、ダウンサンプリングフィルタの1つまたは複数のセットがさらにシグナリングされ得る。代替または追加として、ダウンサンプリングフィルタを記述するために補足エンハンスメント情報(SEI)メッセージシンタックスが導入される。代替または追加として、さらに、デフォルトのダウンサンプリングフィルタ、たとえば、シグナリングなしの6タップフィルタ[1, 2, 1; 1, 2, 1]が定義される。代替または追加として、1つのPU/CU/最大CUは、LM予測モードにおいて使用されるフィルタのインデックスをシグナリングし得る。代替または追加として、フィルタタップの使用は、シグナリングなしでビデオデコーダ30によってオンザフライで導出され得る。フィルタサポートを提供するための他の方法もあり得る。
【０１００】
いくつかの例では、ダウンサンプリングされた隣接する再構成されたルーマサンプルを使用して線形モデルのパラメータを導出する代わりに、ビデオコーダは、パラメータを導出するために元の隣接する再構成されたルーマサンプルを使用し得る。この場合、クロマ予測は、一例として、以下の式(11)を用いて導出され得る。
predC(i,j)=α0*Re cLOrig[2i, 2j]+*α1*Re cLOrig[2i, 2j+1]+α2 *Re cLOrig[2i, 2j-1]
+α3*Re cLOrig[2i+1, 2j]+α4*Re cLOrig[2i+1, 2j+1]+α5*Re cLOrig[2i+1, 2j-1]
+β
ここにおいて、パラメータ(αi(iは両端値を含む0から5である)およびβ)は、隣接する再構成されたルーマブロックおよびクロマブロックから取得される。
【０１０１】
一例では、さらに、αiがα(i+3)に等しいという制約が適用される。一例では、さらに、αiがα(i+2)に等しく、iが0または3に等しいという制約が適用される。一例では、この例示的な技法は、より大きいコード化CU、たとえば、16×16よりも大きいCUサイズについてのみ有効にされ得る。一例では、パラメータのうちの1つまたは複数は0になるように制限される。
【０１０２】
さらに、ビデオコーダは、ダウンサンプリングされたルーマ残差がクロマ残差を予測するために使用される成分間残差予測についても、上記の技法のうちの1つまたは複数を適用し得る。この場合、ダウンサンプリングプロセスは、一例として、再構成されたルーマ残差に適用される。
【０１０３】
以下は、本開示で説明する技法がビデオコーダによって実装され得る例示的な方法である。例示的な実装技法は、限定的と見なされるべきではない。
【０１０４】
以下は、左ピクチャ境界にあるサンプルに異なるダウンサンプリングプロセスを適用するための一例である。現在のルーマブロックに関するダウンサンプリングプロセスは、次のように定義される。
-クロマサンプルがピクチャの左境界に位置していない場合、対応するダウンサンプリングされたルーマサンプルを導出するために、6タップフィルタ、たとえば、[1 2 1; 1 2 1]が適用される。
recL(i,j)=(Re cLOrig[2i, 2j]*2+Re cLOrig[2i, 2j+1]+Re cLOrig[2i, 2j-1]
+Re cLOrig[2i+1, 2j]*2+Re cLOrig[2i+1, 2j+1]+Re cLOrig[2i+1, 2j-1]+offset0)>>3     (12)
-そうではなく、クロマサンプルがピクチャの左境界に位置する場合、対応するダウンサンプリングされたルーマサンプルを導出するために、2タップフィルタ、たとえば、[1; 1]が適用される。
recL(i,j)=(Re cLOrig[2i, 2j]+Re cLOrig[2i, 2j+1]+offset1)>>1     (13)
【０１０５】
一例では、offset0およびoffset1は両方とも、0に等しく設定される。別の例では、offset0は4に等しく設定され、offset1は1に等しく設定される。
【０１０６】
図2は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図2は説明の目的で提供されており、本開示で広く例示し説明するような技法の限定と見なされるべきではない。説明の目的で、本開示は、HEVCコーディングの文脈でビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１０７】
ビデオエンコーダ20は処理回路を含み、ビデオエンコーダ20は、本開示で説明する例示的な技法のうちの1つまたは複数を実行するように構成される。たとえば、ビデオエンコーダ20は集積回路を含み、図2に示す様々なユニットは、回路バスと相互接続されるハードウェア回路ブロックとして形成され得る。これらのハードウェア回路ブロックは別個の回路ブロックであってもよく、またはこれらのユニットのうちの2つ以上が共通のハードウェア回路ブロックに組み合わせられてもよい。ハードウェア回路ブロックは、算術論理ユニット(ALU)、初等関数ユニット(EFU)などの動作ブロック、ならびにAND、OR、NAND、NOR、XOR、XNORなどの論理ブロック、および他の類似する論理ブロックを形成する電子的構成要素の組合せとして形成され得る。
【０１０８】
いくつかの例では、図2に示すユニットのうちの1つまたは複数は、処理回路上で実行されるソフトウェアユニットによって提供され得る。そのような例では、これらのソフトウェアユニットのオブジェクトコードはメモリに記憶される。オペレーティングシステムは、ビデオエンコーダ20にオブジェクトコードを取り出させ、オブジェクトコードを実行させることができ、このことは、ビデオエンコーダ20に例示的な技法を実装する動作を実行させる。いくつかの例では、ソフトウェアユニットは、ビデオエンコーダ20が起動時に実行するファームウェアであり得る。したがって、ビデオエンコーダ20は、例示的な技法を実行するハードウェアを有する構造構成要素であるか、または例示的な技法を実行するためのハードウェアを特殊化する、ハードウェア上で実行されるソフトウェア/ファームウェアを有する。
【０１０９】
ビデオエンコーダ20は、本開示で説明する様々な例によるLMベースのビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオエンコーダ20は、LMビデオ符号化を使用して1つまたは複数のブロックを符号化するように構成され得る。
【０１１０】
図2の例では、ビデオエンコーダ20は、予測処理ユニット100、ビデオデータメモリ101、残差生成ユニット102、変換処理ユニット104、量子化ユニット106、逆量子化ユニット108、逆変換処理ユニット110、再構成ユニット112、フィルタユニット114、復号ピクチャバッファ116、およびエントロピー符号化ユニット118を含む。予測処理ユニット100は、インター予測処理ユニット120およびイントラ予測処理ユニット126を含む。インター予測処理ユニット120は、動き推定ユニットおよび動き補償ユニット(図示せず)を含む。ビデオエンコーダ20はまた、本開示で説明する線形モデル(LM)ベースのコーディング技法の様々な態様を実行するように構成されたLMベースの符号化ユニット122を含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる構成要素を含み得る。
【０１１１】
ビデオデータメモリ101は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ101に記憶されたビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ116は、(たとえば、イントラコーディングモードまたはインターコーディングモードにおいて)ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ101および復号ピクチャバッファ116は、シンクロナスDRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ101は、ビデオエンコーダ20の他の構成要素とともにオンチップであってもよく、または、それらの構成要素に対してオフチップであってもよい。
【０１１２】
ビデオエンコーダ20は、ビデオデータを受信し得る。ビデオエンコーダ20は、予測処理ユニット100を介して、ビデオデータのピクチャのスライスの中の各CTUを符号化し得る。CTUの各々は、ピクチャの、等しいサイズのルーマコーディングツリーブロック(CTB)、および対応するCTBに関連付けられ得る。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを次第に小さくなるブロックに分割するために4分木区分を実行し得る。より小さいブロックは、CUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックに区分すること、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブブロックに区分することなどを行うことができる。
【０１１３】
ビデオエンコーダ20は、CUの符号化表現(すなわち、コード化CU)を生成するためにCTUのCUを符号化し得る。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間でCUに関連付けられたコーディングブロックを区分し得る。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックに関連付けられ得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートし得る。上記に示したように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがあり、PUのサイズは、PUのルーマ予測ブロックのサイズを指すことがある。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測に対して2N×2NまたはN×NのPUサイズ、インター予測に対して2N×2N、2N×N、N×2N、N×N、または類似の対称のPUサイズをサポートし得る。ビデオエンコーダ20およびビデオデコーダ30はまた、インター予測に対して2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズのための非対称区分をサポートし得る。
【０１１４】
インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUに関する予測的データを生成し得る。PUに関する予測的データは、PUの予測的ブロックおよびPUに関する動き情報を含み得る。インター予測ユニット121は、PUがIスライスの中にあるか、Pスライスの中にあるか、またはBスライスの中にあるかに応じて、CUのPUに対して異なる動作を実行し得る。Iスライスでは、すべてのPUがイントラ予測される。したがって、PUがIスライスの中にある場合、インター予測ユニット121は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されるブロックの場合、予測されるブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間予測を使用して形成される。
【０１１５】
PUがPスライスの中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUに関する参照領域を求めて参照ピクチャのリスト(たとえば、「RefPicList0」)の中の参照ピクチャを検索し得る。PUに関する参照領域は、PUのサンプルブロックに最も密に対応するサンプルブロックを含む、参照ピクチャ内の領域であり得る。動き推定ユニットは、PUに関する参照領域を含む参照ピクチャのRefPicList0の中での位置を示す参照インデックスを生成し得る。加えて、動き推定ユニットは、PUのコーディングブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すMVを生成し得る。たとえば、MVは、現在の復号ピクチャの中の座標から参照ピクチャの中の座標までのオフセットを提供する2次元ベクトルであり得る。動き推定ユニットは、PUの動き情報として参照インデックスおよびMVを出力し得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示される参照ロケーションにおける実際のサンプルまたは補間されたサンプルに基づいて、PUの予測的ブロックを生成し得る。
【０１１６】
PUがBスライスの中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUに対して単予測または双予測を実行し得る。PUに対して単予測を実行するために、動き推定ユニットは、PUに関する参照領域を求めてRefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを検索し得る。動き推定ユニットは、PUの動き情報として、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1の中での位置を示す参照インデックス、PUの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すMV、および参照ピクチャがRefPicList0の中にあるかまたはRefPicList1の中にあるかを示す1つまたは複数の予測方向インジケータを出力し得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測的ブロックを生成し得る。
【０１１７】
PUに対して双方向インター予測を実行するために、動き推定ユニットは、PUに関する参照領域を求めてRefPicList0の中の参照ピクチャを検索することができ、PUに関する別の参照領域を求めてRefPicList1の中の参照ピクチャを検索することもできる。動き推定ユニットは、参照領域を含む参照ピクチャのRefPicList0およびRefPicList1の中での位置を示す参照ピクチャインデックスを生成し得る。加えて、動き推定ユニットは、参照領域に関連付けられた参照ロケーションとPUのサンプルブロックとの間の空間変位を示すMVを生成し得る。PUの動き情報は、PUの参照インデックスおよびMVを含み得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測的ブロックを生成し得る。
【０１１８】
LMベースの符号化ユニット122は、線形モデル(LM)予測符号化を実行し得る。たとえば、LMベースの符号化ユニット122は、符号化されている現在のクロマブロックに対応するルーマブロックの再構成されたルーマサンプルをダウンサンプリングし得る。たとえば、4:2:0サンプリングでは、4つのルーマサンプルは1つのクロマブロックに対応する。ルーマピクチャの左上隅において2×2ブロックを形成する4つのルーマサンプルは、クロマピクチャの左上隅に位置する1つのクロマサンプルに対応する。LMベースの符号化ユニット122は、予測的ブロックを生成するために、ルーマブロックのダウンサンプリングされた再構成されたルーマサンプルをスケーリングし得る。残差生成ユニット102は、クロマブロックと予測的ブロックとの間の残差ブロックを決定し得る。いくつかの例では、LMベースの符号化ユニット122は、成分間残差予測の一部として、そのような技法を適用し得る。この場合、クロマブロックはクロマ残差ブロックであり、ルーマブロックはルーマ残差ブロックである。
【０１１９】
本開示で説明する技法では、LMベースの符号化ユニット122は、ルーマブロックのルーマサンプルのダウンサンプリングの一部として、上記の例示的な技法のうちの1つまたは複数を実装し得る。たとえば、LMベースの符号化ユニット122は、符号化されているクロマブロックの特性に基づいて、対応するルーマブロックをダウンサンプリングするための異なるフィルタを適用し得る。符号化されているクロマブロックの特性の例は、符号化されているクロマブロックの位置を含む。別の例として、LMベースの符号化ユニット122は、特定の境界(たとえば、ピクチャ、CU、PU、またはTU)の外にあるルーマサンプルに基づいて、パディングをルーマブロックに適用し得る。
【０１２０】
イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUに関する予測的データを生成し得る。PUに関する予測的データは、PUに関する予測的ブロックおよび様々なシンタックス要素を含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスの中のPUに対してイントラ予測を実行し得る。
【０１２１】
PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、PUに関する予測的データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット126は、PUに関する予測的ブロックを生成するために隣接PUのサンプルブロックからのサンプルを使用し得る。PU、CU、およびCTUに対して左から右、上から下への符号化順序を仮定すると、隣接PUは、PUの上、右上、左上、または左であってもよい。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば、33個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存し得る。
【０１２２】
予測処理ユニット100は、PUに対してインター予測処理ユニット120によって生成される予測的データ、PUに対してイントラ予測処理ユニット126によって生成される予測的データ、またはLMベースの符号化ユニット122によって生成される予測的データの中から、CUのPUに関する予測的データを選択し得る。いくつかの例では、予測処理ユニット100は、予測的データのセットのレート/ひずみメトリックに基づいて、CUのPUに関する予測的データを選択する。選択された予測的データの予測的ブロックは、本明細書では選択された予測的ブロックと呼ばれることがある。
【０１２３】
残差生成ユニット102は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックと、CUのPUの選択された予測的ルーマブロック、選択された予測的Cbブロックおよび選択された予測的Crブロックとに基づいて、CUのルーマ残差ブロック、Cb残差ブロックおよびCr残差ブロックを生成し得る。たとえば、残差生成ユニット102は、残差ブロックの中の各サンプルがCUのコーディングブロックの中のサンプルとCUのPUの対応する選択された予測的ブロックの中の対応するサンプルとの間の差分に等しい値を有するように、CUの残差ブロックを生成し得る。
【０１２４】
変換処理ユニット104は、CUに関連付けられた残差ブロックをCUのTUに関連付けられた変換ブロックに区分するために4分木区分を実行し得る。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックに関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づいてもよく、基づかなくてもよい。「残差4分木」(RQT)として知られる4分木構造は、領域の各々に関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
【０１２５】
変換処理ユニット104は、1つまたは複数の変換をTUの変換ブロックに適用することによって、CUのTUごとに変換係数ブロックを生成し得る。変換処理ユニット104は、様々な変換をTUに関連付けられた変換ブロックに適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に類似する変換を変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われてもよい。
【０１２６】
量子化ユニット106は、係数ブロックの中の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてよく、nはmよりも大きい。量子化ユニット106は、CUに関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数の精度は元の精度よりも低いことがある。
【０１２７】
逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを再構成するために、それぞれ逆量子化および逆変換を係数ブロックに適用し得る。再構成ユニット112は、TUに関連付けられた再構成された変換ブロックを生成するために、予測処理ユニット100によって生成された1つまたは複数の予測的ブロックからの対応するサンプルに再構成された残差ブロックを加算し得る。このようにしてCUのTUごとに変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコーディングブロックを再構成し得る。
【０１２８】
フィルタユニット114は、CUに関連付けられたコーディングブロックにおけるブロッキングアーティファクトを低減するために、1つまたは複数のデブロッキング動作を実行し得る。フィルタユニット114が再構成されたコーディングブロックに対して1つまたは複数のデブロッキング動作を実行した後、復号ピクチャバッファ116は、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、再構成されたコーディングブロックを含む参照ピクチャを使用し得る。加えて、イントラ予測処理ユニット126は、CUと同じピクチャの中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116の中の再構成されたコーディングブロックを使用し得る。さらに、LMベースの符号化ユニット122は、クロマブロックを線形モデル(LM)予測符号化するために、復号ピクチャバッファ116の中の再構成されたルーマブロックを利用し得る(ルーマブロックは、いくつかの例ではビデオデータを含み得るか、または残差ルーマブロックであり得、クロマブロックは、いくつかの例ではビデオデータを含み得るか、または残差クロマブロックであり得る)。
【０１２９】
エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信し得、予測処理ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つまたは複数のエントロピー符号化動作を実行し得る。たとえば、エントロピー符号化ユニット118は、コンテキスト適応型バイナリ算術コーディング(CABAC)動作、コンテキスト適応型可変長コーディング(CAVLC)動作、可変長-可変長(V2V)コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作を、データに対して実行し得る。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、CUに関するRQTを表すデータを含み得る。
【０１３０】
本開示の図2の例は、符号化されているクロマブロックに関する対応するルーマブロックを決定し、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタを決定し、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し、予測的ブロックに基づいて、クロマブロックを線形モデル(LM)予測符号化するように構成されたビデオエンコーダ20について説明する。たとえば、LMベースの符号化ユニット122は、クロマブロックをLM予測符号化する例示的な動作を実行し得る。
【０１３１】
LMベースの符号化ユニット122は、符号化されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定し得る。予測処理ユニット100は、ピクチャをCTU、CU、およびPUに分割する間などに、どのルーマブロックおよびクロマブロックが互いに対応するかを追跡するように構成され得る。
【０１３２】
LMベースの符号化ユニット122は、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定する。たとえば、LMベースの符号化ユニット122は、ピクチャ、CU、PU、またはTUの境界に対するクロマブロックのロケーションを決定し得る。予測処理ユニット100がピクチャをCTU、CU、およびPUに分割したので、LMベースの符号化ユニット122は、ピクチャ、CU、PU、またはTUに対するクロマブロックのロケーションを決定し得る。
【０１３３】
LMベースの符号化ユニット122は、第1のフィルタを、境界に位置するクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。したがって、クロマサンプルが境界に位置することに基づいて、LMベースの符号化ユニット122は、第1のフィルタを対応するルーマサンプルに適用すると決定し得る(たとえば、式(12))。LMベースの符号化ユニット122は、第2の異なるフィルタを、境界に位置しないクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。したがって、クロマサンプルが境界に位置しないことに基づいて、LMベースの符号化ユニット122は、第1のフィルタとは異なる第2のフィルタを、ルーマブロックの対応するルーマサンプルに適用すると決定し得る(たとえば、式(13))。
【０１３４】
LMベースの符号化ユニット122は、再構成されたルーマブロックをDPB116から取り出し、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングする。ダウンサンプリングされたルーマブロックは、recL(i,j)と呼ばれる。たとえば、クロマサンプルが左境界にある場合、LMベースの符号化ユニット122は、2タップフィルタを使用してルーマサンプルのダウンサンプリングを実行する(たとえば、式(12)の動作)。クロマサンプルが左境界にない場合、LMベースの符号化ユニット122は、6タップフィルタを使用してルーマサンプルのダウンサンプリングを実行する(たとえば、式(13)の動作)。一般に、第1のフィルタは、第2のフィルタよりも少数のタップを含む。
【０１３５】
ダウンサンプリングされたルーマブロックから、LMベースの符号化ユニット122は、予測的ブロックを決定する。たとえば、LMベースの符号化ユニット122は、式(1)の動作を実行し得る。予測的ブロックを決定するために、LMベースの符号化ユニット122は、αおよびβの値を決定する。LMベースの符号化ユニット122は、α値およびβ値を決定するために、式(2)〜式(4)の動作を実行し得る。α値およびβ値を用いて、LMベースの符号化ユニット122は、式(1)に従ってrecL(i,j)をスケーリングし、予測的ブロックを決定する。
【０１３６】
α値およびβ値を決定する際、LMベースの符号化ユニット122は、1つまたは複数の隣接ルーマブロックをダウンサンプリングし(たとえば、式(6)および式(7)の動作を実行する)、1つまたは複数の隣接クロマブロックに関するダウンサンプリングされた隣接ルーマブロックに基づいて、第1のパラメータ(たとえば、α)および第2のパラメータ(たとえば、β)を決定し得る。しかしながら、隣接ブロックのダウンサンプリングは、あらゆる例において必要とされない。たとえば、LMベースの符号化ユニット122は、式(11)の動作を実行し得る。
【０１３７】
いくつかの例では、LMベースの符号化ユニット122は、クロマブロックのタイプに基づいて、どのダウンサンプリングフィルタを適用すべきかを決定し得る。たとえば、クロマブロックが第1のタイプ(たとえば、CrまたはCb)である1つの事例では、LMベースの符号化ユニット122は、クロマブロックが第1のタイプであることに基づいて、第1のフィルタをルーマブロックに適用すると決定し得る。クロマブロックが第2のタイプ(たとえば、CrまたはCbの他方)である別の事例では、LMベースの符号化ユニット122は、クロマブロックが第2のタイプであることに基づいて、第2の異なる(すなわち、第1のフィルタとは異なる)フィルタをルーマブロックに適用すると決定し得る。第1のタイプのクロマブロックおよび第2のタイプのクロマブロックについてLMベースの符号化ユニット122が選択するフィルタは、境界に対するクロマサンプルのロケーションにも基づき得るが、あらゆる例において必ずしもそうではない。
【０１３８】
上記で説明したように、いくつかの例では、LMベースの符号化ユニット122は、ルーマブロックのルーマサンプルがピクチャ、スライス、CU、PU、またはTUのうちの1つまたは複数の外にあると決定し得る。そのような例では、LMベースの符号化ユニット122は、外にある1つまたは複数のルーマサンプルに関するルーマサンプル値をパディング値に置き換えることができる。たとえば、LMベースの符号化ユニット122は事前構成されてもよく、またはパディング値はビデオデータメモリ101に記憶されてもよい。LMベースの符号化ユニット122は、外にあるルーマサンプルをこれらのパディング値に置き換え、得られたルーマブロックをビデオデータメモリ101に記憶してもよい。次いで、LMベースの符号化ユニット122は、パディング値を有するルーマブロックをダウンサンプリング(たとえば、式(5)または式(9)を実行)し得る。
【０１３９】
本開示はまた、境界を越えて広がるルーマブロックに基づいて、符号化されているクロマブロックに関する対応するルーマブロックを決定し、境界を越えて広がり、パディングされたルーマブロックを生成するためにルーマブロックの残りの部分に対して再構成されたサンプルを維持するルーマブロックの一部分にパディングを適用し、パディングされたルーマブロックをダウンサンプリングし、ダウンサンプリングされたパディングされたルーマブロックに基づいて、予測的ブロックを決定し、予測的ブロックに基づいて、クロマブロックを線形モデル(LM)予測符号化するように構成されたビデオエンコーダ20について説明する。
【０１４０】
上記の例示的な技法についてルーマサンプルのブロックであるルーマブロックに関して説明したが、本開示で説明する技法はそのように限定されない。いくつかの例では、ルーマブロックはルーマ残差ブロックであり、ルーマブロックがルーマサンプルのブロックとルーマサンプルの予測的ブロックとの間の差分を表すことを意味する。このルーマ残差ブロックは、対応するクロマ残差ブロックに関する予測クロマ残差ブロックを生成するために使用され得る。LMベースの符号化ユニット122は、クロマ残差ブロックに関する予測的クロマ残差ブロックを生成するために、ルーマ残差ブロックに対して類似の機能を実行し得る。たとえば、ルーマブロックがルーマ残差ブロックである場合、LMベースの符号化ユニット122は、ルーマブロックがルーマサンプルのブロックである例に関して上記で説明した技法に類似した技法を使用して予測的クロマ残差ブロックを生成するために、ルーマ残差ブロックをダウンサンプリングし得る。そのような技法は、上記で説明した例示的なダウンサンプリングフィルタを使用する4:2:0サンプリングと4:2:2サンプリングの両方に(および場合によっては、フィルタリングを用いるが、必ずしもダウンサンプリングを用いるとは限らない4:4:4に)適用可能であり得る。
【０１４１】
LMベースの符号化ユニット122に関して上記で説明した例示的な技法は特定の条件下で適用可能であり得るが、これはあらゆる場合のための要件ではない。たとえば、現在のスライスがイントラコード化スライスではない場合、LMベースの符号化ユニット122はクロマ予測を実行し得る。別の例として、隣接CUがインターコード化される場合、LMベースの符号化ユニット122はクロマ予測を実行し得る。別の例として、RefPicList0および/またはRefPicList1の中の参照ピクチャが現在のピクチャのPOC値よりも小さいPOC値を有する場合、LMベースの符号化ユニット122はクロマ予測を実行し得る。しかしながら、これらの条件は単に例として説明される。LMベースの符号化ユニット122がすべての場合においてクロマ予測を実行することが可能であり得、クロマ予測がLMベースの符号化ユニット122に基づいて実行されるかどうかは、どのコーディングが最適なビデオコーディングを提供するかに基づいて最終的に決定される。
【０１４２】
LMベースの符号化ユニット122は、予測的ブロックを残差生成ユニット102に出力し得る。残差生成ユニット102は、予測的ブロックおよびクロマブロックから残差ブロックを生成する。得られた残差ブロックは、変換処理ユニット103によって変換され、量子化ユニット106によって量子化され、エントロピー符号化ユニット118によってエントロピー符号化される。次いで、結果は、ビットストリームを介してシグナリングされ、ビデオデコーダ30は、クロマブロックを再構成するためにビットストリームの中の情報を使用する。
【０１４３】
図3は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。図3は説明の目的で提供されており、本開示で広く例示し説明するような技法の限定ではない。説明の目的で、本開示は、HEVCコーディングの文脈でビデオデコーダ30について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１４４】
ビデオデコーダ30は処理回路を含み、ビデオデコーダ30は、本開示で説明する例示的な技法のうちの1つまたは複数を実行するように構成される。たとえば、ビデオデコーダ30は集積回路を含み、図3に示す様々なユニットは、回路バスと相互接続されるハードウェア回路ブロックとして形成され得る。これらのハードウェア回路ブロックは別個の回路ブロックであってもよく、またはこれらのユニットのうちの2つ以上が共通のハードウェア回路ブロックに組み合わせられてもよい。ハードウェア回路ブロックは、算術論理ユニット(ALU)、初等関数ユニット(EFU)などの動作ブロック、ならびにAND、OR、NAND、NOR、XOR、XNORなどの論理ブロック、および他の類似する論理ブロックを形成する電子的構成要素の組合せとして形成され得る。
【０１４５】
いくつかの例では、図3に示すユニットのうちの1つまたは複数は、処理回路上で実行されるソフトウェアユニットによって提供され得る。そのような例では、これらのソフトウェアユニットのオブジェクトコードはメモリに記憶される。オペレーティングシステムは、ビデオデコーダ30にオブジェクトコードを取り出させ、オブジェクトコードを実行させることができ、このことは、ビデオデコーダ30に例示的な技法を実装する動作を実行させる。いくつかの例では、ソフトウェアユニットは、ビデオデコーダ30が起動時に実行するファームウェアであり得る。したがって、ビデオデコーダ30は、例示的な技法を実行するハードウェアを有する構造構成要素であるか、または例示的な技法を実行するためのハードウェアを特殊化する、ハードウェア上で実行されるソフトウェア/ファームウェアを有する。
【０１４６】
ビデオデコーダ30は、本開示で説明する様々な例によるLMベースのビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオデコーダ30は、LMビデオコーディングモードを利用して1つまたは複数のブロックを復号する(すなわち、1つまたは複数のブロックを線形モデル(LM)予測復号する)ように構成され得る。
【０１４７】
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット150、ビデオデータメモリ151、予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、フィルタユニット160、および復号ピクチャバッファ162を含む。予測処理ユニット152は、動き補償ユニット164およびイントラ予測処理ユニット166を含む。ビデオデコーダ30はまた、本開示で説明する線形モデル(LM)ベースのコーディング技法の様々な態様を実行するように構成されたLMベースの復号ユニット165を含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１４８】
ビデオデータメモリ151は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ151に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から(たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって)取得され得る。ビデオデータメモリ151は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ151および復号ピクチャバッファ162は、シンクロナスDRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ151は、ビデオデコーダ30の他の構成要素とともにオンチップであってもよく、または、それらの構成要素に対してオフチップであってもよい。
【０１４９】
コード化ピクチャバッファ(CPB)は、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受信し、記憶し得る。エントロピー復号ユニット150は、CPBから符号化ビデオデータ(たとえば、NALユニット)を受信し、シンタックス要素を復号するためにNALユニットをパースし得る。エントロピー復号ユニット150は、NALユニットの中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成し得る。
【０１５０】
ビットストリームのNALユニットは、コード化スライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダおよびスライスデータを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含み得る。スライスヘッダの中のシンタックス要素は、スライスを含むピクチャに関連付けられたPPSを識別するシンタックス要素を含み得る。
【０１５１】
ビットストリームからのシンタックス要素を復号することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構成動作を実行し得る。区分されていないCUに対して再構成動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成動作を実行し得る。CUのTUごとに再構成動作を実行することによって、ビデオデコーダ30は、CUの残差ブロックを再構成し得る。
【０１５２】
CUのTUに対して再構成動作を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)し得る。逆量子化ユニット154は、逆量子化ユニット154が適用すべき量子化の程度と、同様に、逆量子化の程度とを決定するために、TUのCUに関連付けられたQP値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスおよび圧縮されたシーケンスを表すために使用されるビット数の比が、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、採用されるエントロピーコーディングの方法に依存し得る。
【０１５３】
逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために、1つまたは複数の逆変換を係数ブロックに適用し得る。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
【０１５４】
PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、PUに関する予測的ブロックを生成するためにイントラ予測を実行し得る。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいてPUに関する予測的ルーマブロック、予測的Cbブロックおよび予測的Crブロックを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUに関するイントラ予測モードを決定し得る。
【０１５５】
予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)および第2の参照ピクチャリスト(RefPicList1)を構成し得る。さらに、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUに関する動き情報を抽出し得る。動き補償ユニット164は、PUの動き情報に基づいて、PUに関する1つまたは複数の参照領域を決定し得る。動き補償ユニット164は、PUに関する1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUに関する予測的ルーマブロック、予測的Cbブロックおよび予測的Crブロックを生成し得る。
【０１５６】
再構成ユニット158は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを再構成するために、CUのTUに関連付けられたルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロック、ならびにCUのPUの予測的ルーマブロック、予測的Cbブロックおよび予測的Crブロック、すなわち、適用可能なとき、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構成ユニット158は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを再構成するために、ルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロックのサンプルを、予測的ルーマブロック、予測的Cbブロックおよび予測的Crブロックの対応するサンプルに加算し得る。
【０１５７】
フィルタユニット160は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックに関連付けられたブロッキングアーティファクトを低減するために、デブロッキング動作を実行し得る。ビデオデコーダ30は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを復号ピクチャバッファ162に記憶し得る。復号ピクチャバッファ162は、その後の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162の中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測動作またはインター予測動作を実行し得る。
【０１５８】
本開示の様々な例によれば、ビデオデコーダ30は、LMベースのコーディングを実行するように構成され得る。LMベースの復号ユニット165は、線形モデル(LM)予測復号を実行し得る。たとえば、LMベースの復号ユニット165は、復号されている現在のクロマブロックに対応するルーマブロックの再構成されたルーマサンプルをダウンサンプリングし得る。LMベースの復号ユニット165は、クロマブロックに関する予測的ブロックを生成するために、ルーマブロックのダウンサンプリングされた再構成されたルーマサンプルをスケーリングし得る。次いで、再構成ユニット158は、生成された予測的ブロックを復号残差データに加算し得る。いくつかの例では、LMベースの復号ユニット165は、成分間残差予測の一部として、そのような技法を適用し得る。この場合、クロマブロックはクロマ残差ブロックであり、ルーマブロックはルーマ残差ブロックである。
【０１５９】
本開示で説明する技法では、LMベースの復号ユニット165は、ルーマブロックのルーマサンプルのダウンサンプリングの一部として、上記の例示的な技法のうちの1つまたは複数を実装し得る。たとえば、LMベースの復号ユニット165は、復号されているクロマブロックの特性に基づいて、対応するルーマブロックをダウンサンプリングするための異なるフィルタを適用し得る。復号されているクロマブロックの特性の例は、復号されているクロマブロックの位置を含む。別の例として、LMベースの復号ユニット165は、特定の境界(たとえば、ピクチャ、スライス、CU、PU、またはTU)の外にあるルーマサンプルに基づいて、パディングをルーマブロックに適用し得る。
【０１６０】
このようにして、本開示は、復号されているクロマブロックに関する対応するルーマブロックを決定し、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタを決定し、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し、予測的ブロックに基づいて、クロマブロックを線形モデル(LM)予測復号するように構成されたビデオデコーダ30について説明する。
【０１６１】
本開示はまた、境界を越えて広がるルーマブロックに基づいて、復号されているクロマブロックに関する対応するルーマブロックを決定し、境界を越えて広がり、パディングされたルーマブロックを生成するためにルーマブロックの残りの部分に対して境界を越えて広がり、再構成されたサンプルを維持するルーマブロックの一部分にパディングを適用し、パディングされたルーマブロックをダウンサンプリングし、ダウンサンプリングされたパディングされたルーマブロックに基づいて、予測的ブロックを決定し、予測的ブロックに基づいて、クロマブロックを線形モデル(LM)予測復号するように構成されたビデオデコーダ30について説明する。
【０１６２】
LMベースの復号ユニット165は、復号されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定し得る。予測処理ユニット152は、ビデオエンコーダ20がビットストリームの中でシグナリングするシンタックス要素に基づいて、どのルーマブロックおよびクロマブロックが互いに対応するかを追跡する。
【０１６３】
LMベースの復号ユニット165は、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定する。たとえば、LMベースの復号ユニット165は、ピクチャ、スライス、CU、PU、またはTUの境界に対するクロマブロックのロケーションを決定し得る。ピクチャがどのようにCTU、CU、およびPUに分割されたかをビットストリームが示したので、LMベースの復号ユニット165は、ピクチャ、CU、PU、またはTUに対するクロマブロックのロケーションを決定し得る。
【０１６４】
LMベースの復号ユニット165は、第1のフィルタを、境界に位置するクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。したがって、クロマサンプルが境界に位置することに基づいて、LMベースの復号ユニット165は、第1のフィルタを対応するルーマサンプルに適用すると決定し得る(たとえば、式(12))。LMベースの復号ユニット165は、第2の異なるフィルタを、境界に位置しないクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。したがって、クロマサンプルが境界に位置しないことに基づいて、LMベースの復号ユニット165は、第1のフィルタとは異なる第2のフィルタを、対応するルーマサンプルに適用すると決定し得る(たとえば、式(13))。
【０１６５】
LMベースの復号ユニット165は、再構成されたルーマブロックをDPB162から取り出し、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングする。ダウンサンプリングされたルーマブロックは、recL(i,j)と呼ばれる。たとえば、クロマサンプルが左境界にある場合、LMベースの復号ユニット165は、2タップフィルタを使用してダウンサンプリングを実行する(たとえば、式(12)の動作)。クロマサンプルが左境界にない場合、LMベースの復号ユニット165は、6タップフィルタを使用してダウンサンプリングを実行する(たとえば、式(13)の動作)。一般に、第1のフィルタは、第2のフィルタよりも少数のタップを含む。
【０１６６】
ダウンサンプリングされたルーマブロックから、LMベースの復号ユニット165は、予測的ブロックを決定する。たとえば、LMベースの復号ユニット165は、式(1)の動作を実行し得る。予測的ブロックを決定するために、LMベースの復号ユニット165は、αおよびβの値を決定する。LMベースの復号ユニット165は、α値およびβ値を決定するために、式(2)〜式(4)の動作を実行し得る。α値およびβ値を用いて、LMベースの復号ユニット165は、式(1)に従ってrecL(i,j)をスケーリングし、予測的ブロックを決定する。
【０１６７】
α値およびβ値を決定する際、LMベースの復号ユニット165は、1つまたは複数の隣接ルーマブロックをダウンサンプリングし(たとえば、式(6)および式(7)の動作を実行する)、1つまたは複数の隣接クロマブロックに関するダウンサンプリングされた隣接ルーマブロックに基づいて、第1のパラメータ(たとえば、α)および第2のパラメータ(たとえば、β)を決定し得る。しかしながら、隣接ブロックのダウンサンプリングは、あらゆる例において必要とされない。たとえば、LMベースの復号ユニット165は、式(11)の動作を実行し得る。
【０１６８】
いくつかの例では、LMベースの復号ユニット165は、クロマブロックのタイプに基づいて、どのダウンサンプリングフィルタを適用すべきかを決定し得る。たとえば、クロマブロックが第1のタイプ(たとえば、CrまたはCb)である1つの事例では、LMベースの復号ユニット165は、クロマブロックが第1のタイプであることに基づいて、第1のフィルタをルーマブロックに適用すると決定し得る。クロマブロックが第2のタイプ(たとえば、CrまたはCbの他方)である別の事例では、LMベースの復号ユニット165は、クロマブロックが第2のタイプであることに基づいて、第2の異なるフィルタをルーマブロックに適用すると決定し得る。第1のタイプのクロマブロックおよび第2のタイプのクロマブロックについてLMベースの復号ユニット165が選択するフィルタは、境界に対するクロマサンプルのロケーションにも基づき得るが、あらゆる例において必ずしもそうではない。
【０１６９】
上記で説明したように、いくつかの例では、LMベースの復号ユニット165は、ルーマブロックのルーマサンプルがピクチャ、スライス、CU、PU、またはTUのうちの1つまたは複数の外にあると決定し得る。そのような例では、LMベースの復号ユニット165は、外にある1つまたは複数のルーマサンプルに関するルーマサンプル値をパディング値に置き換えることができる。たとえば、LMベースの復号ユニット165は事前構成されてもよく、またはパディング値はビデオデータメモリ151に記憶されてもよい。LMベースの復号ユニット165は、外にあるルーマサンプルをこれらのパディング値に置き換え、得られたルーマブロックをビデオデータメモリ151に記憶してもよい。次いで、LMベースの復号ユニット165は、パディング値を有するルーマブロックをダウンサンプリング(たとえば、式(5)または式(9)を実行)し得る。
【０１７０】
上記の例示的な技法についてルーマサンプルのブロックであるルーマブロックに関して説明したが、本開示で説明する技法はそのように限定されない。いくつかの例では、ルーマブロックはルーマ残差ブロックであり、ルーマブロックがルーマサンプルのブロックとルーマサンプルの予測的ブロックとの間の差分を表すことを意味する。このルーマ残差ブロックは、対応するクロマ残差ブロックに関する予測的クロマ残差ブロックを生成するために使用され得る。LMベースの復号ユニット165は、クロマ残差ブロックに関する予測的クロマ残差ブロックを生成するために、ルーマ残差ブロックに対して類似の機能を実行し得る。たとえば、ルーマブロックがルーマ残差ブロックである場合、LMベースの復号ユニット165は、ルーマブロックがルーマサンプルのブロックである例に関して上記で説明した技法に類似した技法を使用して予測的クロマ残差ブロックを生成するために、ルーマ残差ブロックをダウンサンプリングし得る。そのような技法は、上記で説明した例示的なダウンサンプリングフィルタを使用する4:2:0サンプリングと4:2:2サンプリングの両方に(および場合によっては、フィルタリングを用いるが、必ずしもダウンサンプリングを用いるとは限らない4:4:4に)適用可能であり得る。
【０１７１】
LMベースの復号ユニット165に関して上記で説明した例示的な技法は特定の条件下で適用可能であり得るが、これはあらゆる場合のための要件ではない。たとえば、現在のスライスがイントラコード化スライスではない場合、LMベースの復号ユニット165はクロマ予測を実行し得る。別の例として、隣接CUがインターコード化される場合、LMベースの復号ユニット165はクロマ予測を実行し得る。別の例として、RefPicList0および/またはRefPicList1の中の参照ピクチャが現在のピクチャのPOC値よりも小さいPOC値を有する場合、LMベースの復号ユニット165はクロマ予測を実行し得る。しかしながら、これらの条件は単に例として説明される。LMベースの復号ユニット165がすべての場合においてクロマ予測を実行することが可能であり得、クロマ予測がLMベースの復号ユニット165に基づいて実行されるかどうかは、どのコーディングが最適なビデオコーディングを提供するかに基づいて最終的に決定され得る。
【０１７２】
LMベースの復号ユニット152は、予測的ブロックを再構成ユニット158に出力し得る。再構成ユニット158はまた、(たとえば、残差ブロックについてのビットストリームの中の情報がエントロピー復号ユニット150でエントロピー復号され、逆量子化ユニット154で逆量子化され、逆変換処理ユニット156で逆変換された後に)残差ブロックを受信する。再構成ユニット158は、クロマブロックを再構成するために、予測的ブロックに残差ブロックを加算する。
【０１７３】
図8は、ビデオデータを線形モデル(LM)予測符号化する1つの例示的な技法を示すフローチャートである。図示のように、LMベースの符号化ユニット122は、符号化されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定する(200)。たとえば、予測処理ユニット100は、ピクチャをCTU、CU、およびPUに分割し、ビデオデータメモリ101に記憶するためのルーマブロックおよびクロマブロックを構成し、それらのブロックから、LMベースの符号化ユニット122は、どのルーマブロックがどのクロマブロックに対応するかを決定することができる。加えて、どのルーマブロックがどのクロマブロックに対応するかの決定に基づいて、LMベースの符号化ユニット122は、ルーマブロックのどのルーマサンプルがクロマブロックのどのクロマサンプルに対応するかを決定することもできる。たとえば、4:2:0サンプリングでは、4つのルーマサンプルは1つのクロマサンプルに対応する。
【０１７４】
LMベースの符号化ユニット122は、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定する(202)。たとえば、LMベースの符号化ユニット122は、第1のフィルタ(たとえば、2タップフィルタ)を、ピクチャ、スライス、CU、PU、またはTUの境界(たとえば、左境界)に位置するクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。LMベースの符号化ユニット122は、第2のフィルタ(たとえば、6タップフィルタ)を、境界に位置しないクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。
【０１７５】
LMベースの符号化ユニット122は、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングする(204)。たとえば、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングするために、LMベースの符号化ユニット122は、ピクチャ、スライス、CU、PU、またはTUの境界(たとえば、左境界)にあるクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに対して式(12)の動作を実行し、ピクチャ、スライス、CU、PU、またはTUの境界にないクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに対して式(13)の動作を実行し得る。
【０１７６】
LMベースの符号化ユニット122は、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し得る(206)。たとえば、LMベースの符号化ユニット122は、ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックをダウンサンプリングし得る。しかしながら、隣接ブロックのダウンサンプリングは、すべての例において必要とされないことがある。LMベースの符号化ユニット122は、ダウンサンプリングされた1つまたは複数の隣接ルーマブロックと、符号化されているクロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータ(α)および第2のパラメータ(β)を決定し得る。LMベースの符号化ユニット122は、(たとえば、式(1)の動作を実行することによって)ダウンサンプリングされたルーマブロックと、第1のパラメータおよび第2のパラメータとに基づいて、予測的ブロックを決定し得る。
【０１７７】
ビデオエンコーダ20は、クロマブロックおよび予測的ブロックに基づいて、残差ブロックを生成する(208)。たとえば、残差生成ユニット102は、クロマブロックと予測的ブロックとの間の残差を決定し、この残差ブロックは、変換され、量子化され、エントロピー符号化される。ビデオエンコーダ20は、ビデオデコーダ30がクロマブロックを再構成するために使用する残差ブロックを示す情報をシグナリングする。
【０１７８】
図9は、ビデオデータを線形モデル(LM)予測復号する1つの例示的な技法を示すフローチャートである。図示のように、LMベースの復号ユニット165は、復号されているビデオデータのクロマブロックに対応するビデオデータのルーマブロックを決定する(210)。たとえば、予測処理ユニット152は、ピクチャがCTU、CU、およびPUに分割される方法を示す情報を受信し、それに従って、ルーマブロックおよびクロマブロックを構成し、それらのブロックから、LMベースの復号ユニット165は、どのルーマブロックがどのクロマブロックに対応するかを決定することができる。加えて、どのルーマブロックがどのクロマブロックに対応するかの決定に基づいて、LMベースの復号ユニット165は、ルーマブロックのどのルーマサンプルがクロマブロックのどのクロマサンプルに対応するかを決定することもできる。たとえば、4:2:0サンプリングでは、4つのルーマサンプルは1つのクロマサンプルに対応する。
【０１７９】
LMベースの復号ユニット165は、クロマブロックの特性に基づいて、ルーマブロックに適用すべきフィルタをフィルタのセットから決定する(212)。たとえば、LMベースの復号ユニット165は、第1のフィルタ(たとえば、2タップフィルタ)を、ピクチャ、スライス、CU、PU、またはTUの境界(たとえば、左境界)に位置するクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用するとを決定し、境界に位置するクロマサンプルは、直接境界上に、境界に隣接して、場合によっては一定数のサンプル内に位置するサンプルである。LMベースの復号ユニット165は、第2のフィルタ(たとえば、6タップフィルタ)を、境界に位置しないクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに適用すると決定する。
【０１８０】
LMベースの復号ユニット165は、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングする(214)。たとえば、決定されたフィルタに基づいて、ルーマブロックをダウンサンプリングするために、LMベースの復号ユニット165は、ピクチャ、スライス、CU、PU、またはTUの境界(たとえば、左境界)にあるクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに対して式(12)の動作を実行し、ピクチャ、スライス、CU、PU、またはTUの境界にないクロマブロックのクロマサンプルに対応するルーマブロックのルーマサンプルに対して式(13)の動作を実行し得る。
【０１８１】
LMベースの復号ユニット165は、ダウンサンプリングされたルーマブロックに基づいて、予測的ブロックを決定し得る(216)。たとえば、LMベースの復号ユニット165は、ルーマブロックに隣接する1つまたは複数の隣接ルーマブロックをダウンサンプリングし得る。しかしながら、隣接ブロックのダウンサンプリングは、すべての例において必要とされないことがある。LMベースの復号ユニット165は、ダウンサンプリングされた1つまたは複数の隣接ルーマブロックと、復号されているクロマブロックに隣接する1つまたは複数の隣接クロマブロックとに基づいて、第1のパラメータ(α)および第2のパラメータ(β)を決定し得る。LMベースの復号ユニット165は、(たとえば、式(1)の動作を実行することによって)ダウンサンプリングされたルーマブロックと、第1のパラメータおよび第2のパラメータとに基づいて、予測的ブロックを決定し得る。
【０１８２】
ビデオデコーダ30は、予測的ブロックおよび残差ブロックに基づいて、クロマブロックを再構成する(218)。ビデオデコーダ30は、残差ブロックについてのビットストリームからの情報をエントロピー復号、逆量子化、および逆変換した後に、残差ブロックを生成する。たとえば、再構成ユニット158は、DPB162に記憶された復号クロマブロックを再構成するために、LM予測によって生成された予測的ブロックを、ビデオエンコーダ20から受信された残差ブロックと合計する。
【０１８３】
上記で説明した技法は、ビデオエンコーダ20(図1および図2)および/またはビデオデコーダ30(図1および図3)によって実行され得、それらの両方が、一般にビデオコーダと呼ばれることがある。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。加えて、ビデオ符号化およびビデオ復号は、総称的にビデオデータの「処理」と呼ばれることがある。
【０１８４】
本明細書で説明する技法のすべてが、個別にまたは組み合わせて使用され得ることを理解されたい。本開示は、ブロックサイズ、スライスタイプなどの一定の要因に応じて変化する場合がある、いくつかのシグナリング方法を含む。シンタックス要素をシグナリングまたは推論する際のそのような変動は、先験的にエンコーダおよびデコーダに知られることがあり、またはビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダにおいて、タイルレベルで、もしくは他の場所で明示的にシグナリングされることがある。
【０１８５】
例に応じて、本明細書で説明する技法のいずれかのいくつかの行為またはイベントは異なる順序で実行されてもよく、追加され、統合され、または完全に除外されてもよい(たとえば、説明する行為またはイベントのすべてが技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、順次的にではなく、たとえばマルチスレッド処理、割込み処理、または複数のプロセッサを通じて同時に実行され得る。加えて、明快のために本開示のいくつかの態様は単一のモジュールまたはユニットによって実行されるものとして説明されるが、本開示の技法はビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
【０１８６】
技法の様々な態様の特定の組合せについて上記で説明したが、これらの組合せは単に本開示で説明する技法の例を示すために与えられている。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきではなく、本開示で説明する技法の様々な態様の任意の考えられる組合せを包含し得る。
【０１８７】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法を実装するための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１８８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク（登録商標）(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１８９】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくは個別論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で与えられることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【０１９０】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされてもよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されてもよい。
【０１９１】
様々な例について説明した。これらの例および他の例は以下の特許請求の範囲内に入る。
【符号の説明】
【０１９２】
10  ビデオコーディングシステム
12  ソースデバイス
14  宛先デバイス
16  チャネル、コンピュータ可読媒体
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
100  予測処理ユニット
101  ビデオデータメモリ
102  残差生成ユニット
104  変換処理ユニット
106  量子化ユニット
108  逆量子化ユニット
110  逆変換処理ユニット
112  再構成ユニット
114  フィルタユニット
116  復号ピクチャバッファ、DPB
118  エントロピー符号化ユニット
120  インター予測処理ユニット
122  LMベースの符号化ユニット
126  イントラ予測処理ユニット
150  エントロピー復号ユニット
151  ビデオデータメモリ
152  予測処理ユニット
154  逆量子化ユニット
156  逆変換処理ユニット
158  再構成ユニット
160  フィルタユニット
162  復号ピクチャバッファ、DPB
164  動き補償ユニット
165  LMベースの復号ユニット
166  イントラ予測処理ユニット
【図１】
2018514119.tif 000006
【図２】
2018514119.tif 000007
【図３】
2018514119.tif 000008
【図４】
2018514119.tif 000009
【図５】
2018514119.tif 000010
【図６】
2018514119.tif 000011
【図７】
2018514119.tif 000012
【図８】
2018514119.tif 000013
【図９】
2018514119.tif 000014
【国際調査報告】
2018514119.tif 000015
2018514119.tif 000016
2018514119.tif 000017
2018514119.tif 000018
2018514119.tif 000019