(57)【要約】  ビデオコーディングデバイスが、現在ピクチャの第1および第2の成分を生成する。加えて、ビデオコーディングデバイスは、第1のパラメータおよび第2のパラメータを決定する。第1のパラメータおよび第2のパラメータは、それぞれ、第1の成分における現在サンプルの値に基づく。ビデオコーディングデバイスは、現在サンプルにクロス成分フィルタを適用し、それによって、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づいて、現在サンプルのフィルタ処理された値を決定する。1つまたは複数のクロス成分サンプルの各々は、第2の成分にある。
2019525679.tif 000002
【特許請求の範囲】
【請求項１】
ビデオコーディングデバイスによって実行されるビデオデータをコーディングする方法であって、
前記ビデオデータの現在ピクチャの第1の成分を生成するステップであって、前記第1の成分は、サンプルの第1のアレイを備える、ステップと、
前記現在ピクチャの第2の成分を生成するステップであって、前記第2の成分は、サンプルの前記第1のアレイとは別個のサンプルの第2のアレイを備える、ステップと、
第1のパラメータを決定するステップであって、前記第1のパラメータは、前記現在ピクチャの前記第1の成分における現在サンプルの値に基づく、ステップと、
第2のパラメータを決定するステップであって、前記第2のパラメータは、前記現在サンプルの前記値に基づく、ステップと、
前記現在サンプルにクロス成分フィルタを適用するステップであって、それによって前記現在サンプルのフィルタ処理された値を決定し、前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、前記1つまたは複数のクロス成分サンプルの各々は、前記現在ピクチャの前記第2の成分にある、ステップと、
前記現在ピクチャの最終バージョンを出力することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、出力すること、および
前記ビデオデータの後のピクチャを符号化する際に参照ピクチャとして前記現在ピクチャの前記最終バージョンを使用することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、使用すること
からなるグループにおける1つまたは複数のアクションを実行するステップと
を含む方法。
【請求項２】
前記クロス成分フィルタを適用するステップは、式:
P'c=αPcc+β
に従って前記現在サンプルの前記フィルタ処理された値を決定するステップを含み、式中、P'cは、前記現在サンプルの前記フィルタ処理された値であり、αは、前記第1のパラメータであり、Pccは、前記1つまたは複数のクロス成分サンプルのうちのクロス成分サンプルであり、βは、前記第2のパラメータである、請求項1に記載の方法。
【請求項３】
前記1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、
前記第1のパラメータは、前記第1のパラメータの第1のインスタンスであり、
前記方法は、前記第1のパラメータの前記第1のインスタンスおよび前記第1のパラメータの1つまたは複数の追加のインスタンスを含む複数の第1のパラメータを決定するステップを含み、前記第1のパラメータの前記1つまたは複数の追加のインスタンスの前記第1のパラメータの各それぞれの追加のインスタンスは、前記第1の成分における異なる対応するサンプルの値に基づき、
前記クロス成分フィルタを適用するステップは、式:
【数１】
2019525679.tif 000029
に従って前記現在サンプルの前記フィルタ処理された値を決定するステップを含み、式中、P'cは、前記現在サンプルの前記フィルタ処理された値であり、iは、ピクセルインデックスであり、αiは、前記複数の第1のパラメータにおける第iの第1のパラメータであり、piccは、前記複数のクロス成分サンプルのうちの第iのクロス成分サンプルであり、βは、前記第2のパラメータである、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、
前記第1のパラメータは、前記第1のパラメータの第1のインスタンスであり、
前記方法は、前記第1のパラメータの前記第1のインスタンスおよび前記第1のパラメータの1つまたは複数の追加のインスタンスを含む複数の第1のパラメータを決定するステップを含み、前記第1のパラメータの前記1つまたは複数の追加のインスタンスの前記第1のパラメータの各それぞれの追加のインスタンスは、前記第1の成分における異なる対応するサンプルの値に基づき、
前記クロス成分フィルタを適用するステップは、式:
【数２】
2019525679.tif 000030
に従って前記現在サンプルの前記フィルタ処理された値を決定するステップを含み、式中、P'cは、前記現在サンプルの前記フィルタ処理された値であり、iは、第1のピクセルインデックスであり、αiは、前記複数の第1のパラメータにおける第iの第1のパラメータであり、piccは、前記複数のクロス成分サンプルのうちの第iのクロス成分サンプルであり、jは、第2のピクセルインデックスであり、γiは、複数の第3のパラメータにおける第iの第3のパラメータであり、pjnは、前記現在サンプルに空間的に隣接する第jのサンプルであり、βは、前記第2のパラメータである、請求項1に記載の方法。
【請求項５】
前記現在サンプルの前記値および前記現在サンプルの前記フィルタ処理された値の重み付き和として、前記現在サンプルの修正されたフィルタ処理された値を決定するステップをさらに含み、前記現在ピクチャの前記最終バージョンにおける前記ピクセルの前記値は、前記現在サンプルの前記修正されたフィルタ処理された値に基づく、請求項1に記載の方法。
【請求項６】
前記現在ピクチャは、4:4:4カラーフォーマットまたは4:2:2カラーフォーマットを有し、前記1つまたは複数のクロス成分サンプルは、前記現在サンプルとコロケートされている前記第2の成分におけるサンプルを含む、請求項1に記載の方法。
【請求項７】
前記現在ピクチャは、4:4:4カラーフォーマットまたは4:2:2カラーフォーマットを有し、
前記第2の成分は、前記第2の成分におけるコロケートされたサンプルに空間的に隣接する隣接サンプルのセットを含み、
前記第2の成分における前記コロケートされたサンプルは、前記現在サンプルとコロケートされており、
前記方法は、前記コロケートされたサンプルおよび隣接サンプルの前記セットに空間雑音低減フィルタを適用するステップをさらに含み、それによって、フィルタ処理されたコロケートされたサンプルを導出し、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記フィルタ処理されたコロケートされたサンプルに基づく、請求項1に記載の方法。
【請求項８】
前記現在ピクチャは、4:2:0カラーフォーマットを有し、
前記現在サンプルはクロマサンプルであって、前記クロマサンプルの上の上位ルーマサンプルと前記クロマサンプルの下の下位ルーマサンプルとの間の位置にあり、前記上位ルーマサンプルおよび前記下位ルーマサンプルは、前記第2の成分におけるルーマサンプルであり、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記上位ルーマサンプルまたは前記下位ルーマサンプルのいずれかに基づく、請求項1に記載の方法。
【請求項９】
前記現在ピクチャは、4:2:0カラーフォーマットを有し、
前記現在サンプルはクロマサンプルであって、前記クロマサンプルの上の上位ルーマサンプルと前記クロマサンプルの下の下位ルーマサンプルとの間の位置にあり、前記上位ルーマサンプルおよび前記下位ルーマサンプルは、前記第2の成分におけるルーマサンプルであり、
前記方法は、仮想ルーマサンプルを決定するために前記上位ルーマサンプルおよび前記下位ルーマサンプルの重み付き平均を使用するステップをさらに含み、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記仮想ルーマサンプルに基づく、請求項1に記載の方法。
【請求項１０】
前記現在ピクチャは、4:2:0カラーフォーマットを有し、
前記現在サンプルは、前記第2の成分における6つのルーマサンプルの間の位置にあるクロマサンプルであり、
前記方法は、仮想ルーマサンプルを決定するために前記6つのルーマサンプルの重み付き平均を使用するステップをさらに含み、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記仮想ルーマサンプルに基づく、請求項1に記載の方法。
【請求項１１】
前記第1の成分は、サンプルの現在セットを備え、サンプルの前記現在セットは、前記現在サンプルおよび前記第1の成分における前記現在サンプルに空間的に隣接する複数のネイバーサンプルを含み、
前記1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、前記複数のネイバーサンプルにおけるそれぞれのネイバーサンプルごとに、前記複数のクロス成分サンプルは、前記それぞれのネイバーサンプルに対応する前記第2の成分におけるサンプルを含み、前記複数のクロス成分サンプルは、前記現在サンプルに対応する前記第2の成分のサンプルをさらに含み、
前記第1のパラメータは、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の既定の関係を仮定して、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の平均2乗誤差の最小化を通じて決定され、
前記第2のパラメータは、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の前記既定の関係を仮定して、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の平均2乗誤差の最小化を通じて決定される、請求項1に記載の方法。
【請求項１２】
前記第1のパラメータおよび前記第2のパラメータを決定する際に、前記現在サンプルおよび前記複数のクロス成分サンプルのうちの対応するクロス成分サンプルに対しては、前記現在サンプルに空間的に隣接する前記複数のネイバーサンプルおよび前記ネイバーサンプルに対応する前記複数のクロス成分サンプルよりも大きい重みが付けられる、請求項11に記載の方法。
【請求項１３】
前記第1のパラメータを決定するステップは、ガウスフィルタもしくはエッジ保存フィルタを使用するステップを含む、または
前記第2のパラメータを決定するステップは、前記ガウスフィルタもしくは前記エッジ保存フィルタを使用するステップを含む
のうちの少なくとも1つである、請求項1に記載の方法。
【請求項１４】
予測ブロックに前記現在サンプルの前記フィルタ処理された値を含めるステップと、
前記予測ブロックのサンプルを残差ブロックの対応するサンプルに加算することによって、前記第1の成分におけるブロックを再構成するステップと、
前記再構成ブロックに基づいて、前記現在ピクチャの前記最終バージョンを生成するステップと
をさらに含む、請求項1に記載の方法。
【請求項１５】
ビデオデータをコーディングするためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサは、
前記ビデオデータの現在ピクチャの第1の成分を生成することであって、前記第1の成分は、サンプルの第1のアレイを備える、生成することと、
前記現在ピクチャの第2の成分を生成することであって、前記第2の成分は、サンプルの前記第1のアレイとは別個のサンプルの第2のアレイを備える、生成することと、
第1のパラメータを決定することであって、前記第1のパラメータは、前記現在ピクチャの前記第1の成分における現在サンプルの値に基づく、決定することと、
第2のパラメータを決定することであって、前記第2のパラメータは、前記現在サンプルの前記値に基づく、決定することと、
前記現在サンプルにクロス成分フィルタを適用することであって、それによって前記現在サンプルのフィルタ処理された値を決定し、前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、前記1つまたは複数のクロス成分サンプルの各々は、前記現在ピクチャの前記第2の成分にある、適用することと、
前記現在ピクチャの最終バージョンを出力することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、出力すること、および
前記ビデオデータの後のピクチャを符号化する際に参照ピクチャとして前記現在ピクチャの前記最終バージョンを使用することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、使用すること
からなるグループにおける1つまたは複数のアクションを実行することと
を行うように構成される、デバイス。
【請求項１６】
前記1つまたは複数のプロセッサは、前記クロス成分フィルタを適用することの一部として、前記1つまたは複数のプロセッサが、式:
P'c=αPcc+β
に従って前記現在サンプルの前記フィルタ処理された値を決定するように構成され、式中、P'cは、前記現在サンプルの前記フィルタ処理された値であり、αは、前記第1のパラメータであり、Pccは、前記1つまたは複数のクロス成分サンプルのうちのクロス成分サンプルであり、βは、前記第2のパラメータである、請求項15に記載のデバイス。
【請求項１７】
前記1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、
前記第1のパラメータは、前記第1のパラメータの第1のインスタンスであり、
前記1つまたは複数のプロセッサは、前記第1のパラメータの前記第1のインスタンスおよび前記第1のパラメータの1つまたは複数の追加のインスタンスを含む複数の第1のパラメータを決定するように構成され、前記第1のパラメータの前記1つまたは複数の追加のインスタンスの前記第1のパラメータの各それぞれの追加のインスタンスは、前記第1の成分における異なる対応するサンプルの値に基づき、
前記1つまたは複数のプロセッサは、前記クロス成分フィルタを適用することの一部として、前記1つまたは複数のプロセッサが、式:
【数３】
2019525679.tif 000031
に従って前記現在サンプルの前記フィルタ処理された値を決定するように構成され、式中、P'cは、前記現在サンプルの前記フィルタ処理された値であり、iは、ピクセルインデックスであり、αiは、前記複数の第1のパラメータにおける第iの第1のパラメータであり、piccは、前記複数のクロス成分サンプルのうちの第iのクロス成分サンプルであり、βは、前記第2のパラメータである、請求項15に記載のデバイス。
【請求項１８】
前記1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、
前記第1のパラメータは、前記第1のパラメータの第1のインスタンスであり、
前記1つまたは複数のプロセッサは、前記第1のパラメータの前記第1のインスタンスおよび前記第1のパラメータの1つまたは複数の追加のインスタンスを含む複数の第1のパラメータを決定するように構成され、前記第1のパラメータの前記1つまたは複数の追加のインスタンスの前記第1のパラメータの各それぞれの追加のインスタンスは、前記第1の成分における異なる対応するサンプルの値に基づき、
前記1つまたは複数のプロセッサは、前記クロス成分フィルタを適用することの一部として、前記1つまたは複数のプロセッサが、式:
【数４】
2019525679.tif 000032
に従って前記現在サンプルの前記フィルタ処理された値を決定するように構成され、式中、P'cは、前記現在サンプルの前記フィルタ処理された値であり、iは、第1のピクセルインデックスであり、αiは、前記複数の第1のパラメータにおける第iの第1のパラメータであり、piccは、前記複数のクロス成分サンプルのうちの第iのクロス成分サンプルであり、jは、第2のピクセルインデックスであり、γiは、複数の第3のパラメータにおける第iの第3のパラメータであり、pjnは、前記現在サンプルに空間的に隣接する第jのサンプルであり、βは、前記第2のパラメータである、請求項15に記載のデバイス。
【請求項１９】
前記1つまたは複数のプロセッサは、前記現在サンプルの前記値および前記現在サンプルの前記フィルタ処理された値の重み付き和として、前記現在サンプルの修正されたフィルタ処理された値を決定するようにさらに構成され、前記現在ピクチャの前記最終バージョンにおける前記ピクセルの前記値は、前記現在サンプルの前記修正されたフィルタ処理された値に基づく、請求項15に記載のデバイス。
【請求項２０】
前記現在ピクチャは、4:4:4カラーフォーマットまたは4:2:2カラーフォーマットを有し、前記1つまたは複数のクロス成分サンプルは、前記現在サンプルとコロケートされている前記第2の成分におけるサンプルを含む、請求項15に記載のデバイス。
【請求項２１】
前記現在ピクチャは、4:4:4カラーフォーマットまたは4:2:2カラーフォーマットを有し、
前記第2の成分は、前記第2の成分におけるコロケートされたサンプルに空間的に隣接する隣接サンプルのセットを含み、
前記第2の成分における前記コロケートされたサンプルは、前記現在サンプルとコロケートされており、
前記1つまたは複数のプロセッサは、前記コロケートされたサンプルおよび隣接サンプルの前記セットに空間雑音低減フィルタを適用するようにさらに構成され、それによって、フィルタ処理されたコロケートされたサンプルを導出し、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記フィルタ処理されたコロケートされたサンプルに基づく、請求項15に記載のデバイス。
【請求項２２】
前記現在ピクチャは、4:2:0カラーフォーマットを有し、
前記現在サンプルはクロマサンプルであって、前記クロマサンプルの上の上位ルーマサンプルと前記クロマサンプルの下の下位ルーマサンプルとの間の位置にあり、前記上位ルーマサンプルおよび前記下位ルーマサンプルは、前記第2の成分におけるルーマサンプルであり、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記上位ルーマサンプルまたは前記下位ルーマサンプルのいずれかに基づく、請求項15に記載のデバイス。
【請求項２３】
前記現在ピクチャは、4:2:0カラーフォーマットを有し、
前記現在サンプルはクロマサンプルであって、前記クロマサンプルの上の上位ルーマサンプルと前記クロマサンプルの下の下位ルーマサンプルとの間の位置にあり、前記上位ルーマサンプルおよび前記下位ルーマサンプルは、前記第2の成分におけるルーマサンプルであり、
前記1つまたは複数のプロセッサは、仮想ルーマサンプルを決定するために前記上位ルーマサンプルおよび前記下位ルーマサンプルの重み付き平均を使用するようにさらに構成され、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記仮想ルーマサンプルに基づく、請求項15に記載のデバイス。
【請求項２４】
前記現在ピクチャは、4:2:0カラーフォーマットを有し、
前記現在サンプルは、前記第2の成分における6つのルーマサンプルの間の位置にあるクロマサンプルであり、
前記1つまたは複数のプロセッサは、仮想ルーマサンプルを決定するために前記6つのルーマサンプルの重み付き平均を使用するようにさらに構成され、
前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および前記仮想ルーマサンプルに基づく、請求項15に記載のデバイス。
【請求項２５】
前記第1の成分は、サンプルの現在セットを備え、サンプルの前記現在セットは、前記現在サンプルおよび前記第1の成分における前記現在サンプルに空間的に隣接する複数のネイバーサンプルを含み、
前記1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、前記複数のネイバーサンプルにおけるそれぞれのネイバーサンプルごとに、前記複数のクロス成分サンプルは、前記それぞれのネイバーサンプルに対応する前記第2の成分におけるサンプルを含み、前記複数のクロス成分サンプルは、前記現在サンプルに対応する前記第2の成分のサンプルをさらに含み、
前記第1のパラメータは、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の既定の関係を仮定して、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の平均2乗誤差の最小化を通じて決定され、
前記第2のパラメータは、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の前記既定の関係を仮定して、サンプルの前記現在セットと前記複数のクロス成分サンプルとの間の平均2乗誤差の最小化を通じて決定される、請求項15に記載のデバイス。
【請求項２６】
前記1つまたは複数のプロセッサは、
予測ブロックに前記現在サンプルの前記フィルタ処理された値を含めることと、
前記予測ブロックのサンプルを残差ブロックの対応するサンプルに加算することによって、前記第1の成分におけるブロックを再構成することと、
前記再構成ブロックに基づいて、前記現在ピクチャの前記最終バージョンを生成することと
を行うようにさらに構成される、請求項15に記載のデバイス。
【請求項２７】
ワイヤレス通信デバイスの受信機において前記ビデオデータを受信することと、
前記ワイヤレス通信デバイスのメモリに前記ビデオデータを記憶することと、
前記ワイヤレス通信デバイスの1つまたは複数のプロセッサ上で前記ビデオデータを処理することと
をさらに含む、請求項15に記載のデバイス。
【請求項２８】
符号化ビデオデータを送信するように構成された送信機をさらに備えるワイヤレス通信デバイスを備える、請求項15に記載のデバイス。
【請求項２９】
ビデオデータをコーディングするためのデバイスであって、
前記ビデオデータの現在ピクチャの第1の成分を生成するための手段であって、前記第1の成分は、サンプルの第1のアレイを備える、手段と、
前記現在ピクチャの第2の成分を生成するための手段であって、前記第2の成分は、サンプルの前記第1のアレイとは別個のサンプルの第2のアレイを備える、手段と、
第1のパラメータを決定するための手段であって、前記第1のパラメータは、前記現在ピクチャの前記第1の成分における現在サンプルの値に基づく、手段と、
第2のパラメータを決定するための手段であって、前記第2のパラメータは、前記現在サンプルの前記値に基づく、手段と、
前記現在サンプルにクロス成分フィルタを適用するための手段であって、それによって前記現在サンプルのフィルタ処理された値を決定し、前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、前記1つまたは複数のクロス成分サンプルの各々は、前記現在ピクチャの前記第2の成分にある、手段と、
前記現在ピクチャの最終バージョンを出力することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、出力すること、および
前記ビデオデータの後のピクチャを符号化する際に参照ピクチャとして前記現在ピクチャの前記最終バージョンを使用することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、使用すること
からなるグループにおける1つまたは複数のアクションを実行するための手段と
を含むデバイス。
【請求項３０】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令の実行は、ビデオコーディングデバイスに、
ビデオデータの現在ピクチャの第1の成分を生成することであって、前記第1の成分は、サンプルの第1のアレイを備える、生成することと、
前記現在ピクチャの第2の成分を生成することであって、前記第2の成分は、サンプルの前記第1のアレイとは別個のサンプルの第2のアレイを備える、生成することと、
第1のパラメータを決定することであって、前記第1のパラメータは、前記現在ピクチャの前記第1の成分における現在サンプルの値に基づく、決定することと、
第2のパラメータを決定することであって、前記第2のパラメータは、前記現在サンプルの前記値に基づく、決定することと、
前記現在サンプルにクロス成分フィルタを適用することであって、それによって前記現在サンプルのフィルタ処理された値を決定し、前記クロス成分フィルタは、前記第1のパラメータ、前記第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、前記1つまたは複数のクロス成分サンプルの各々は、前記現在ピクチャの前記第2の成分にある、適用することと、
前記現在ピクチャの最終バージョンを出力することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、出力すること、および
前記ビデオデータの後のピクチャを符号化する際に参照ピクチャとして前記現在ピクチャの前記最終バージョンを使用することであって、前記現在ピクチャの前記最終バージョンにおけるピクセルの値は、前記現在サンプルの前記フィルタ処理された値に基づく、使用すること
からなるグループにおける1つまたは複数のアクションを実行することと
を行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により組み込まれる、2016年8月31日に出願された米国仮出願第62/381,978号の利益を主張する。
【０００２】
本開示は、ビデオコーディングのためのデバイスに関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)によって定義された規格、最近確定された高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分される場合があり、ビデオブロックは、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれる場合もある。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャは、フレームと呼ばれる場合があり、参照ピクチャは、参照フレームと呼ばれる場合がある。
【０００５】
空間予測または時間予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらし得、残差変換係数は、次いで、量子化され得る。最初に2次元アレイに配置された量子化変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】J. Chen、E. Alshina、G. J. Sullivan、J.-R. Ohm、J. Boyce、「Algorithm description of Joint Exploration Test Model 2」、JVET-B1001、サンディエゴ、2016年3月
【非特許文献２】J. Chenら、「Coding tools investigation for next generation video coding」、SG16-Geneva-C806、2015年1月
【非特許文献３】T. Wiegand、B. Bross、W. J. Han、J. R. OhmおよびG. J. Sullivan、「WD3: Working Draft 3 of High-Efficiency Video Coding」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT-VC)、JCTVC-E603、第5回会合:ジュネーブ、スイス、2011年3月16〜23日
【発明の概要】
【課題を解決するための手段】
【０００７】
一般に、本開示は、ビデオシーケンスの1つの色成分を、ビデオシーケンスの少なくとも1つの他の色成分の情報を使用して、フィルタ処理することに関する技法について説明する。たとえば、ビデオコーディングデバイスが、現在サンプルのフィルタ処理された値を決定するために、クロス成分フィルタ(cross-component filtter)を適用し得る。この例では、ビデオコーディングデバイスは、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づいて、フィルタ処理された値を決定する。クロス成分サンプルは、現在サンプルとは異なる、現在ピクチャの色成分のものである。たとえば、クロス成分サンプルはルーマサンプルであってよく、現在サンプルはクロマサンプルであってよい。本開示の技法によれば、第1および第2のパラメータは、現在サンプルの値に少なくとも部分的に基づく。
【０００８】
一例では、本開示は、ビデオコーディングデバイスによって実行されるビデオデータをコーディングする方法について説明し、本方法は、ビデオデータの現在ピクチャの第1の成分を生成するステップであって、第1の成分は、サンプルの第1のアレイを備える、ステップと、現在ピクチャの第2の成分を生成するステップであって、第2の成分は、サンプルの第1のアレイとは別個のサンプルの第2のアレイを備える、ステップと、第1のパラメータを決定するステップであって、第1のパラメータは、現在ピクチャの第1の成分における現在サンプルの値に基づく、ステップと、第2のパラメータを決定するステップであって、第2のパラメータは、現在サンプルの値に基づく、ステップと、現在サンプルにクロス成分フィルタを適用するステップであって、それによって現在サンプルのフィルタ処理された値を決定し、クロス成分フィルタは、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、1つまたは複数のクロス成分サンプルの各々は、現在ピクチャの第2の成分にある、ステップと、現在ピクチャの最終バージョンを出力することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、出力すること、およびビデオデータの後のピクチャを符号化する際に参照ピクチャとして現在ピクチャの最終バージョンを使用することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、使用することからなるグループにおける1つまたは複数のアクションを実行するステップとを含む。
【０００９】
別の例では、本開示は、ビデオデータをコーディングするためのデバイスについて説明し、本デバイスは、ビデオデータを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ビデオデータの現在ピクチャの第1の成分を生成することであって、第1の成分は、サンプルの第1のアレイを備える、生成することと、現在ピクチャの第2の成分を生成することであって、第2の成分は、サンプルの第1のアレイとは別個のサンプルの第2のアレイを備える、生成することと、第1のパラメータを決定することであって、第1のパラメータは、現在ピクチャの第1の成分における現在サンプルの値に基づく、決定することと、第2のパラメータを決定することであって、第2のパラメータは、現在サンプルの値に基づく、決定することと、現在サンプルにクロス成分フィルタを適用することであって、それによって現在サンプルのフィルタ処理された値を決定し、クロス成分フィルタは、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、1つまたは複数のクロス成分サンプルの各々は、現在ピクチャの第2の成分にある、適用することと、現在ピクチャの最終バージョンを出力することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、出力すること、およびビデオデータの後のピクチャを符号化する際に参照ピクチャとして現在ピクチャの最終バージョンを使用することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、使用することからなるグループにおける1つまたは複数のアクションを実行することとを行うように構成される。
【００１０】
別の例では、本開示は、ビデオデータをコーディングするためのデバイスについて説明し、本デバイスは、ビデオデータの現在ピクチャの第1の成分を生成するための手段であって、第1の成分は、サンプルの第1のアレイを備える、手段と、現在ピクチャの第2の成分を生成するための手段であって、第2の成分は、サンプルの第1のアレイとは別個のサンプルの第2のアレイを備える、手段と、第1のパラメータを決定するための手段であって、第1のパラメータは、現在ピクチャの第1の成分における現在サンプルの値に基づく、手段と、第2のパラメータを決定するための手段であって、第2のパラメータは、現在サンプルの値に基づく、手段と、現在サンプルにクロス成分フィルタを適用するための手段であって、それによって現在サンプルのフィルタ処理された値を決定し、クロス成分フィルタは、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、1つまたは複数のクロス成分サンプルの各々は、現在ピクチャの第2の成分にある、手段と、現在ピクチャの最終バージョンを出力することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、出力すること、およびビデオデータの後のピクチャを符号化する際に参照ピクチャとして現在ピクチャの最終バージョンを使用することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、使用することからなるグループにおける1つまたは複数のアクションを実行するための手段とを含む。
【００１１】
別の例では、本開示は、命令を記憶したコンピュータ可読記憶媒体について説明し、命令の実行は、ビデオコーディングデバイスに、ビデオデータの現在ピクチャの第1の成分を生成することであって、第1の成分は、サンプルの第1のアレイを備える、生成することと、現在ピクチャの第2の成分を生成することであって、第2の成分は、サンプルの第1のアレイとは別個のサンプルの第2のアレイを備える、生成することと、第1のパラメータを決定することであって、第1のパラメータは、現在ピクチャの第1の成分における現在サンプルの値に基づく、決定することと、第2のパラメータを決定することであって、第2のパラメータは、現在サンプルの値に基づく、決定することと、現在サンプルにクロス成分フィルタを適用することであって、それによって現在サンプルのフィルタ処理された値を決定し、クロス成分フィルタは、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づき、1つまたは複数のクロス成分サンプルの各々は、現在ピクチャの第2の成分にある、適用することと、現在ピクチャの最終バージョンを出力することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、出力すること、およびビデオデータの後のピクチャを符号化する際に参照ピクチャとして現在ピクチャの最終バージョンを使用することであって、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく、使用することからなるグループにおける1つまたは複数のアクションを実行することとを行わせる。
【００１２】
本開示の1つまたは複数の例の詳細が、添付図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１３】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】アクティビティメトリックおよび方向メトリックの範囲の、フィルタへのマッピングを示す概念図である。
【図２Ｂ】アクティビティメトリックおよび方向メトリックの範囲の、フィルタへのマッピングを示す概念図である。
【図３Ａ】例示的な5×5菱形フィルタ形状を示す概念図である。
【図３Ｂ】例示的な7×7菱形フィルタ形状を示す概念図である。
【図３Ｃ】例示的なトランケートされた9×9菱形フィルタ形状を示す概念図である。
【図４Ａ】4:2:0カラーフォーマットの場合のピクチャにおけるルーマサンプルおよびクロマサンプルのサンプリングロケーションの概略図である。
【図４Ｂ】4:2:2カラーフォーマットの場合のピクチャにおけるルーマサンプルおよびクロマサンプルのサンプリングロケーションの概略図である。
【図４Ｃ】4:4:4カラーフォーマットの場合のピクチャにおけるルーマサンプルおよびクロマサンプルのサンプリングロケーションの概略図である。
【図５Ａ】本開示の例による対応するクロス成分ピクセルの生成の概略図である。
【図５Ｂ】本開示の例による対応するクロス成分ピクセルの生成の概略図である。
【図６】本開示の一態様による、既定の線形または非線形関係式において利用されるパラメータを導出するためのローカルエリアの一例の概略図である。
【図７】本開示の一態様による、既定の線形または非線形関係式において利用されるパラメータを導出するためのローカルエリアの一例の概略図である。
【図８】本開示で説明する技法を実施するように構成された例示的なビデオエンコーダを示すブロック図である。
【図９】本開示で説明する技法を実施するように構成された例示的なビデオデコーダを示すブロック図である。
【図１０】本開示の技法による、ビデオコーディングデバイスの例示的な動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
ビデオコーディングは、通常、同じピクチャ中のビデオデータのすでにコーディングされたブロック(すなわち、イントラ予測)または異なるピクチャ中のビデオデータのすでにコーディングされたブロック(すなわち、インター予測)のいずれかから、ビデオデータのブロックを予測することを伴う。いくつかの事例では、ビデオエンコーダはまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。ビデオエンコーダは、残差データを変換および量子化し、変換および量子化された残差データを符号化ビットストリーム中でシグナリングする。ビデオデコーダは、残差データを予測ブロックに加算して、予測ブロック単独よりも密接に元のビデオブロックと一致する再構成ビデオブロックを生成する。復号ビデオの品質をさらに改善するために、ビデオデコーダは、再構成ビデオブロックに対して1つまたは複数のフィルタ処理演算を実行することもある。これらのフィルタ処理演算の例は、デブロッキングフィルタ処理、サンプル適応オフセット(SAO)フィルタ処理、および適応ループフィルタ処理(ALF)を含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され符号化ビデオビットストリーム中で明示的にシグナリングされ得るか、またはビデオデコーダによって暗黙のうちに決定され得るかのいずれかである。
【００１５】
本開示は、ビデオ符号化および/またはビデオ復号プロセスにおいて再構成ビデオデータをフィルタ処理することに関連する技法について説明し、より詳細には、本開示は、ビデオコーディングシステムにおけるクロス成分インループフィルタに関する技法について説明する。本開示によれば、フィルタ処理はビデオエンコーダにおいて適用され、ビデオエンコーダにおいて適用されたフィルタ処理をビデオデコーダが識別できるように、ビットストリーム中でパラメータなどのフィルタ情報が(直接的または暗黙のうちに)符号化され得る。現在ピクセルPcの初期ピクセル値は、ビデオデコーダによって、現在ピクセルおよびその空間隣接ピクセルと少なくとも1つの他の成分における少なくとも1つの対応するピクセルとの間の既定の線形または非線形関係に従って、修正ピクセルP'cに修正され得る。ビデオデコーダは、フィルタ情報を含む符号化ビデオデータを受信し、ビデオデータを復号し、フィルタ処理情報に基づいてフィルタ処理を適用する。このようにして、ビデオデコーダは、ビデオエンコーダにおいて適用された同じフィルタ処理を適用し得る。
【００１６】
本開示は、ビデオシーケンスの1つの成分を、他の成分のうちの少なくとも1つの情報を使用して、フィルタ処理することに関する技法について説明する。たとえば、本開示は、フィルタ演算およびフィルタの制御パラメータを送信するためのサイド情報について説明する。本明細書で説明する技法は、HEVCの拡張または次世代のビデオコーディング規格などの、先進的なビデオコーデックとともに使用され得る。
【００１７】
本開示で使用する、「ビデオコーディング」という用語は、総称的に、ビデオ符号化またはビデオ復号のいずれかを指す。したがって、「ビデオコーディングデバイス」という用語は、ビデオ符号化および/またはビデオ復号を実行するデバイスを指す場合がある。その上、ビデオ符号化またはビデオ復号に関して本開示で説明するいくつかの技法は、他のビデオ復号またはビデオ符号化に適用されてもよい。一例として、ビデオエンコーダは、様々な符号化仮説をテストする目的で、かつ参照ピクチャとして将来使用する復号ピクチャを記憶するために、ビデオデコーダによって適用される同じフィルタ処理を適用し得る。
【００１８】
図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、後で宛先デバイス14によって復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備える場合がある。いくつかの例では、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備される。
【００１９】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に符号化ビデオデータを直接送信することを可能にする通信媒体を備える。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成する場合がある。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
【００２０】
代替的に、出力インターフェース22は、符号化データをストレージデバイス26に出力し得る。同様に、入力インターフェース26は、ストレージデバイス26からの符号化データにアクセスし得る。ストレージデバイス26は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたは局所的にアクセスされるデータ記憶媒体のうちのいずれかを含み得る。さらなる一例では、ストレージデバイス26は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに相当し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス26からの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または他のタイプのコンピュータ可読記憶媒体を含む。宛先デバイス14は、インターネット接続など任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適したワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイス26からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２１】
本開示の技法は、ワイヤレスの用途または設定に必ずしも限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の用途などの、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
【００２２】
図1の例では、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20および出力インターフェース22を含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含む場合がある。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含む場合がある。しかしながら、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレスおよび/または有線の用途に適用され得る。
【００２３】
キャプチャされたビデオ、以前キャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化される場合がある。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して、宛先デバイス14に直接送信される場合がある。符号化ビデオデータはまた(または、代替的に)、復号用および/または再生用に宛先デバイス14または他のデバイスによって後でアクセスするために、ストレージデバイス26上に記憶され得る。
【００２４】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信された、またはストレージデバイス26上で提供された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された符号化ビデオデータとともに含まれ得る。
【００２５】
ディスプレイデバイス32は、宛先デバイス14と一体であることがあり、または宛先デバイス14の外部にあることがある。いくつかの例では、宛先デバイス14は、集積ディスプレイデバイスを含み、また外部ディスプレイデバイスとインターフェースするように構成される場合もある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００２６】
ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができる。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にISO/IEC MPEG-4、Part 10、アドバンストビデオコーディング(AVC)と呼ばれるITU-T H.264規格、またはスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張など、そのような規格の拡張などの、他のプロプライエタリな規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、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がある。
【００２７】
本開示の技法は、説明を簡単にするためにHEVC用語を利用することがある。しかしながら、本開示の技法がHEVCに限定されることが仮定されるべきでなく、事実上、本開示の技法がHEVCの後継規格およびその拡張において実施され得ることが明示的に企図される。
【００２８】
図1に示さないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでもよい。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００２９】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体の中にソフトウェア用の命令を記憶してよく、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行してよい。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、それらのいずれも、それぞれのデバイスの中で複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【００３０】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC規格(その現在の拡張ならびにスクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングのための目先の拡張を含む)の圧縮能力を大きく超える圧縮能力を有する、将来のビデオコーディング技術の標準化の潜在的な必要性について現在研究している。このグループは、この分野の専門家により提案されている圧縮技術の設計を評価するために、Joint Video Exploration Team(JVET)として知られている共同研究においてこの調査活動に一緒に取り組んでいる。JVETは、2015年10月19〜21日に最初の会合を開いた。Joint Exploration Model(JEM)2のためのアルゴリズムが、J. Chen、E. Alshina、G. J. Sullivan、J.-R. Ohm、J. Boyce、「Algorithm description of Joint Exploration Test Model 2」、JVET-B1001、サンディエゴ、2016年3月で説明されている。
【００３１】
上述のコーディング規格はすべて、異なる色成分(一般に1つのルーマ成分および2つのクロマ成分)を含むカラービデオのコーディングをサポートする。各成分は、1つのアレイまたは4:2:0、4:2:2、または4:4:4カラーフォーマットでのピクチャを作成する3つのアレイ(たとえば、1つのルーマおよび2つのクロマ)のうちの1つのアレイからの単一のサンプルである。
【００３２】
HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれる場合もある。1つの例示的な手法では、ピクチャは3つの成分を含み得る。成分の各々は、SL、SCb、およびSCrと表されるサンプルアレイを備える。そのような例示的な手法では、SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロマサンプルの2次元アレイである。SCrは、Crクロマサンプルの2次元アレイである。Cg/Coなど、CbおよびCrの代わりに他のタイプのクロマサンプルが使用されてもよい。本開示では、「サンプル」および「ピクセル」という用語は互換的に使用される。
【００３３】
ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含んでよい。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含むことがある。
【００３４】
コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロックに対して4分木区分を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名前である。コーディングブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロック、およびコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。
【００３５】
いくつかの例では、ビデオエンコーダ20は、CUのコーディングブロックを2つ以上の予測ブロックに区分する。他の例では、予測ブロックは、CUと同じサイズである。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックに対する、予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。
【００３６】
ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUの予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。
【００３７】
ビデオエンコーダ20がCUの1つまたは複数のPUの予測ブロックを生成した後に、ビデオエンコーダ20は、CUの残差ブロックを生成し得る。たとえば、ビデオエンコーダ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は、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに区分することができる。たとえば、ビデオエンコーダ20は、4分木区分を使用して、CUの残差ブロックを変換ブロックに区分し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックのサンプルを変換するために使用されるシンタックス構造を備え得る。
【００３９】
ビデオエンコーダ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は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力することができる。ビットストリームは、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットのシーケンスを備え得る。NALユニットは、NALユニットの中のデータのタイプの指示、および必要に応じてエミュレーション防止ビットが散りばめられているローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形態でそのデータを含むバイトを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0ビットを含む。
【００４２】
異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはPPS用のRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライス用のRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIメッセージ用のRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージ用のRBSPとは対照的に)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれる場合がある。
【００４３】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームを構文解析してビットストリームからシンタックス要素を取得し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成することができる。ビデオデータを再構成するためのプロセスは、全般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。一例として、ビデオエンコーダ20がある情報を送信した場合、ビデオデコーダ30はそのような情報を受信し得る。加えて、ビデオデコーダ30は、現在CUのTUに関連付けられた係数ブロックを逆量子化することができる。ビデオデコーダ30は、係数ブロックに対して逆変換を実行して、現在CUのTUに関連付けられた変換ブロックを再構成し得る。ビデオデコーダ30は、現在CUのPUに対する予測ブロックのサンプルを、現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成し得る。ピクチャのCUごとにコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成し得る。
【００４４】
ビデオコーディングの分野では、復号されたビデオ信号の品質を高めるためにフィルタ処理を適用することは一般的である。フィルタは、フィルタ処理されたフレームが将来のフレームの予測のために使用されないポストフィルタとして、またはフィルタ処理されたフレームが将来のフレームを予測するために使用可能であるインループフィルタとして適用され得る。フィルタは、たとえば、元の信号と復号されたフィルタ処理された信号との間の誤差を最小化することによって設計され得る。同様に、係数を変換するために、フィルタの係数h(k,l)、k=-K,...,K、l=-K,...Kが量子化され
f(k,l)=round(normFactor・h(k,l))
コーディングされ、デコーダに送られる。normFactorは通常、2nに等しい。normFactorの値が大きいほど、量子化は精度がより高く、量子化フィルタ係数f(k,l)はより良好なパフォーマンスを実現する。他方では、normFactorの値が大きいほど、送信するためにより多くのビットを必要とする係数f(k,l)が生成される。
【００４５】
ビデオデコーダにおいて、復号されたフィルタ係数f(k,l)は、次のように、再構成画像R(i,j)に適用される。
【００４６】
【数１】
2019525679.tif 000003
【００４７】
式中、iおよびjは、フレーム内のピクセルの座標である。
【００４８】
J. Chenら、「Coding tools investigation for next generation video coding」、SG16-Geneva-C806、2015年1月は、JEMにおいて採用されているインループ適応ループフィルタについて説明している。基本概念は、HEVCにおいて提案され、様々なワーキングドラフトおよびテストモデルソフトウェア、すなわち、HEVCテストモデル(または「HM」)に含まれた、ブロックベース適合を伴うALFと同様であるが、ALFは、HEVCの最終バージョンに含まれなかった。関連技術の中でも、HEVCテストモデルバージョンHM-3.0におけるALF設計は、最も効率的な設計として主張された(以下「HEVCワーキングドラフト3」という、T. Wiegand、B. Bross、W. J. Han、J. R. OhmおよびG. J. Sullivan、「WD3: Working Draft 3 of High-Efficiency Video Coding」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT-VC)、JCTVC-E603、第5回会合:ジュネーブ、スイス、2011年3月16〜23日参照)。したがって、HM-3.0からのALF設計を本明細書で紹介する。
【００４９】
HM-3.0におけるALFは、ピクチャレベル最適化に基づく。すなわち、フレーム全体がコーディングされた後、ALF係数が導出される。HM-3.0におけるALFは、ルーマ成分に対して2つのモード、すなわち、ブロックベース適合(BA)および領域ベース適合(RA)を有する。これらの2つのモードは、同じフィルタ形状、フィルタ処理演算、ならびにシンタックス要素を共有する。2つのモードの間の唯一の差は、分類方法である。
【００５０】
1つの例示的な手法では、BAでの分類は、ブロックレベルにおけるものである。この例では、ルーマ成分に関して、ピクチャ全体の中の各4×4ブロックは、1次元(1D)ラプラシアン方向(3つまでの方向)および2次元(2D)ラプラシアンアクティビティ(5つまでのアクティビティ値)に基づいて分類される。1つの例示的な手法では、ピクチャ中の各4×4ブロックは、1次元(1D)ラプラシアン方向および2次元(2D)ラプラシアンアクティビティに基づいてグループインデックスが割り当てられる。方向Dirbおよび非量子化アクティビティActbの1つの例示的な計算が、下の式(2)〜(5)に示され、式中、
【００５１】
【数２】
2019525679.tif 000004
【００５２】
は、4×4ブロックの左上ピクセル位置に対する相対座標(i,j)とともに再構成ピクセルを示し、Vi,jおよびHi,jは、(i,j)に位置するピクセルの垂直勾配および水平勾配の絶対値である。したがって、方向Dirbは、4×4ブロックにおける垂直勾配および水平勾配の絶対値を比較することによって生成され、Actbは、4×4ブロックにおける両方の方向の勾配の総和である。Actbは、HEVCワーキングドラフト3に記載されるように、両端値を含む0〜4の範囲にさらに量子化される。
【００５３】
【数３】
2019525679.tif 000005
【００５４】
【数４】
2019525679.tif 000006
【００５５】
【数５】
2019525679.tif 000007
【００５６】
【数６】
2019525679.tif 000008
【００５７】
したがって、1つの例示的な手法では、各ブロックは、15(5×3)個のグループのうちの1つにカテゴリー化され得る。各4×4ブロックに、ブロックのDirbおよびActbの値に従ってインデックスが割り当てられる。グループインデックスをCによって示し、Cを
【００５８】
【数７】
2019525679.tif 000009
【００５９】
に等しく設定し、式中、
【００６０】
【数８】
2019525679.tif 000010
【００６１】
は、Actbの量子化された値である。したがって、ALFパラメータの最大15セットが、ピクチャのルーマ成分に関してシグナリングされ得る。シグナリングコストを節約するために、グループは、グループインデックス値に沿ってマージされ得る。マージされたグループごとに、ビデオエンコーダ20は、ALF係数のセットをシグナリングする。3つまでの円対称形状(図3A〜図3Cに示すような)がサポートされる。
【００６２】
図2Aは、BA分類のために使用されるこれらの15個のグループを示す概念図である。図2Aの例では、フィルタが、アクティビティメトリックに対する値の範囲(すなわち、範囲0〜範囲4)および方向メトリックにマッピングされる。図2Aにおける方向メトリックは、式3からの上記の0、1、および2の値に対応し得る、方向なし、水平、および垂直の値を有するものとして示される。図2Aの特定の例は、15個のカテゴリーにマッピングされているものとして6つの異なるフィルタ(すなわち、フィルタ1、フィルタ2...フィルタ6)を示すが、より多数またはより少数のフィルタが同様に使用されてよい。図2Aはグループ221〜235として識別される15個のグループを有する例を示すが、より多数またはより少数のグループも使用されてよい。たとえば、アクティビティメトリックに対する5つの範囲の代わりに、より多数またはより少数の範囲が使用されてよく、より多くのグループをもたらす。追加として、3つだけの方向の代わりに、図2Bの例に示すように、追加の方向(たとえば、45度方向および135度方向)も使用されてよい。
【００６３】
以下でより詳細に説明するように、各グループに関連するフィルタは、1つまたは複数のマージフラグを使用してシグナリングされ得る。1次元グループマージングの場合、グループが前のグループと同じフィルタにマッピングされているかどうかを示すために単一のフラグが送られ得る。2次元マージングの場合、グループが第1の隣接ブロック(たとえば、水平ネイバーまたは垂直ネイバーのうちの1つ)と同じフィルタにマッピングされているかどうかを示すために第1のフラグが送られ得、そのフラグが偽である場合、グループが第2の隣接ブロック(たとえば、水平ネイバーまたは垂直ネイバーのうち他方のもの)にマッピングされているかどうかを示すために第2のフラグが送られ得る。
【００６４】
ブロッキネスを低減することおよび/またはビデオ品質を他の方法で改善することができるビデオブロックフィルタ処理の望ましいレベルを促進するために、フィルタ係数(時々、フィルタタップと呼ばれる)が定義または選択され得る。フィルタ係数のセットは、たとえば、ビデオブロックのエッジまたはビデオブロック内の他のロケーションに沿って、フィルタ処理がどのように適用されるのかを定義し得る。異なるフィルタ係数は、ビデオブロックの異なるピクセルに関して異なるレベルのフィルタ処理をもたらし得る。フィルタ処理は、たとえば、不要なアーティファクトを排除する助けとなるために、隣接するピクセル値の強度の差を平滑化または先鋭化し得る。
【００６５】
本開示では、「フィルタ」という用語は、概して、フィルタ係数のセットを指す。たとえば、3×3フィルタは9個のフィルタ係数のセットによって定義されてよく、5×5フィルタは25個のフィルタ係数のセットによって定義されてよく、9×5フィルタは45個のフィルタ係数のセットによって定義されてよく、以下同様である。「フィルタのセット」という用語は、概して、2つ以上のフィルタのグループを指す。たとえば、2つの3×3フィルタのセットは、9個のフィルタ係数の第1のセット、および9個のフィルタ係数の第2のセットを含むことができる。「形状」という用語は、時々、「フィルタサポート」と呼ばれ、概して、特定のフィルタに対するフィルタ係数の行数およびフィルタ係数の列数を指す。たとえば、9×9は第1の形状の一例であり、7×5は第2の形状の一例であり、5×9は第3の形状の一例である。いくつかの事例では、フィルタは、菱形形状、菱形様形状、円形形状、円形様形状、六角形形状、八角形形状、十字形状、X形状、T形状、他の幾何学的形状、または数多くの他の形状もしくは構成を含む、非矩形形状を採り得る。
【００６６】
1つの例示的な手法では、3つまでの円対称フィルタ形状がサポートされる。1つのそのような例示的な手法では、3つのフィルタ形状は、図3A〜図3Cに示すものである。図示の例では、図3Aは5×5菱形を示し、図3Bは7×7菱形を示し、図3Cはトランケートされた(truncated)9×9菱形を示す。図3A〜図3Cにおける例は菱形形状であるが、他の形状が使用されてよい。最も一般的なケースでは、フィルタの形状にかかわらず、フィルタマスクにおける中心ピクセルが、フィルタ処理されるピクセルである。他の例では、フィルタ処理されるピクセルが、フィルタマスクの中心からオフセットされてよい。
【００６７】
1つの例示的な手法では、ALF係数の単一のセットが、ピクチャ中のクロマ成分の各々に適用される。1つのそのような手法では、5×5菱形形状フィルタが常に使用される。
【００６８】
デコーダ側において、各ピクセルサンプル
【００６９】
【数９】
2019525679.tif 000011
【００７０】
は、下の式(6)に示すような計算に基づいてI'i,jにフィルタ処理されてよく、式中、Lはフィルタ長を示し、fm,nはフィルタ係数を表し、oはフィルタオフセットまたはDC係数を示す。
【００７１】
【数１０】
2019525679.tif 000012
【００７２】
1つの例示的な手法では、2つのクロマ成分に対して1つだけのフィルタがサポートされることに留意されたい。
【００７３】
コーディング性能は、YUV 4:2:0ビデオシーケンスにも存在するクロス成分相関を利用することによって改善され得る。クロス成分冗長性を低減するために、クロス成分線形モデル(CCLM)予測モードでは、クロマサンプルは、次のように線形モデルを使用することによって、同じブロックの再構成されたルーマサンプルに基づいて予測される。
predC(i,j)=α・recL(i,j)+β    (7)
式中、predC(i,j)は、ブロック中のクロマサンプルの予測を表し、recL(i,j)は、同じブロックのダウンサンプリングされた再構成されたルーマサンプルを表す。パラメータαおよびβは、次のように、現在ブロックの周囲の隣接する再構成されたルーマサンプルとクロマサンプルとの間の回帰誤差を最小化することによって導出される。
【００７４】
【数１１】
2019525679.tif 000013
【００７５】
【数１２】
2019525679.tif 000014
【００７６】
式中、L(n)は、ダウンサンプリングされた上および左の隣接する再構成されたルーマサンプルを表し、C(n)は、上および左の隣接する再構成されたクロマサンプルを表し、Nの値は、現在クロマコーディングブロックの幅および高さの最小値の2倍に等しい。正方形のコーディングブロックの場合、上の2つの式(8)および(9)が直接適用される。非正方形のコーディングブロックの場合、より長い境界の隣接サンプルが、より短い境界と同じ数のサンプルを有するように最初にサブサンプリングされる。
【００７７】
JEMでは、CCLM予測モードが2つのクロマ成分の間の予測に及ぶ(たとえば、Cr成分がCb成分から予測される)。再構成されたサンプル信号を使用する代わりに、CCLM Cb-Cr予測が残差領域において適用される。これは、重み付けされた再構成されたCb残差を元のCrイントラ予測に加算して、最終Cr予測を形成することによって実施される。
【００７８】
【数１３】
2019525679.tif 000015
【００７９】
スケーリング因子αは、CCLMルーマ-クロマモードの場合と同様の方法で導出される。唯一の差は、次のように、導出されたスケーリング因子がデフォルト値(-0.5)のほうへバイアスされるような、誤差関数におけるデフォルトα値に対する回帰コストの加算である。
【００８０】
【数１４】
2019525679.tif 000016
【００８１】
式中、Cb(n)は、隣接する再構成されたCbサンプルを表し、Cr(n)は、隣接する再構成されたCrサンプルを表し、λは、Σ(Cb(n)・Cb(n))≫9に等しい。
【００８２】
JEMでは、CCLMルーマ-クロマ予測モードが1つの追加のクロマイントラ予測モードとして追加される。ビデオエンコーダ20において、クロマ成分に対するもう1つのレート/ひずみコストチェックが、最適なクロマイントラ予測モードを選択するために追加される。CCLMルーマ-クロマ予測モード以外のイントラ予測モードがCUのクロマ成分のために使用されるとき、CCLM Cb-Cr予測が、Cr成分予測を向上させるために使用される。
【００８３】
JEMの現在の設計では、線形モデル(LM)予測モードは、現在クロマピクセルの残差が考慮されないので、ルーマ成分とクロマ成分との間の相関を十分に利用していない。たとえば、上記で、式(8)および(9)において、L(n)は、ダウンサンプリングされた上および左の隣接する再構成されたルーマサンプルを表し、C(n)は、上および左の隣接する再構成されたクロマサンプルを表す。L(n)およびC(n)は、現在クロマサンプルの値を含まないことに留意されたい。そのため、αおよびβは、現在クロマサンプルの値に基づいていない。L(n)およびC(n)は、CCLMにおいて使用するαおよびβを導出するために使用されるので、L(n)およびC(n)は、現在クロマサンプルの値を含まない。CCLMは、現在クロマサンプルの値を予測することの一部として実行される。そのため、現在クロマサンプルの値は、αおよびβを導出する際に使用不可能である。
【００８４】
本開示の技法は、ピクチャのルーマ成分およびクロマ成分など、ピクチャの成分間の相関を利用することが可能であるので、以下の技法は、既存のCCLM技法に対してビデオデータ圧縮性能を改善し得る。本開示の技法は個々に適用されることがあり、または代替的に、技法の任意の組合せが適用されることがある。以下の技法は、ビデオエンコーダ20またはビデオデコーダ30(図1)のいずれかを含むデバイスなど、ビデオコーディングデバイスによって適用され得る。
【００８５】
本開示は、ビデオコーディングシステムにおけるクロス成分インループフィルタに関する技法について説明する。1つの成分の現在ピクセルに関する初期値を仮定すると、現在ピクセルPcの初期値は、現在ピクセルの空間隣接ピクセルおよび少なくとも1つの他の成分における少なくとも1つの対応するピクセル(すなわち、クロス成分ピクセル)に従って、P'cに修正され得る。通常、現在ピクセルおよび他の成分におけるその対応するクロス成分ピクセルPccが、式などの既定の関係に従うと仮定し得る。この関係は、線形または非線形であり得る。
【００８６】
一例では、現在ピクセルおよび対応するクロス成分ピクセルは、単純線形モデル:P'c=αPcc+βに従い、式中、パラメータαおよびβは、ビットストリーム中で明示的に送信されるか、またはエンコーダとデコーダの両方において暗黙のうちに導出され得る。したがって、この例では、ビデオコーダは、第1のパラメータ(すなわち、α)、第2のパラメータ(すなわち、β)およびクロス成分サンプル(すなわち、Pcc)に基づいて現在サンプル(すなわち、P'c)のフィルタ処理された値を決定するクロス成分フィルタを適用し得る。
【００８７】
別の例では、現在ピクセルおよび対応するクロス成分ピクセルは、単純線形モデル:
【００８８】
【数１５】
2019525679.tif 000017
【００８９】
に従うことができ、式中、
【００９０】
【数１６】
2019525679.tif 000018
【００９１】
は、他の成分における対応するクロス成分ピクセルおよびその隣接ピクセルであり、iは、ピクセルインデックスであり、パラメータαiおよびβは、ビットストリーム中で明示的に送信されるか、またはエンコーダとデコーダの両方において暗黙のうちに導出され得る。したがって、この例では、ビデオコーダは、複数の第1のパラメータ(すなわち、α0...αN)、第2のパラメータ(すなわち、β)および複数のクロス成分サンプル(すなわち、P1cc...PNcc)に基づいて現在サンプル(すなわち、P'c)のフィルタ処理された値を決定するクロス成分フィルタを適用し得る。複数の第1のパラメータおよび複数のクロス成分サンプルを決定する方法の例は、本開示の他の箇所で提供される。
【００９２】
一例では、現在ピクセルおよび対応するクロス成分ピクセルは、単純線形モデル:
【００９３】
【数１７】
2019525679.tif 000019
【００９４】
に従うことができ、式中、
【００９５】
【数１８】
2019525679.tif 000020
【００９６】
は、他の成分における対応するクロス成分ピクセルおよびその隣接ピクセルであり、
【００９７】
【数１９】
2019525679.tif 000021
【００９８】
は、現在成分における空間隣接ピクセルであり、iおよびjは、ピクセルインデックスであり、パラメータαi、γjおよびβは、ビットストリーム中で明示的に送信されるか、またはエンコーダとデコーダの両方において暗黙のうちに導出され得る。この例では、γjは、回帰誤差を最小化することによって、パラメータαiと同じ方法で導出され得る。γjとαiとの間の差は、γjが現在成分のピクセルに関するスケール因子であり、αiが他の成分のピクセルに関するスケール因子であることである。別の例によれば、現在ピクセルPcの初期値は、PcおよびP'cの重み付き和によって導出された値に修正されてよく、ここで、P'cは、上記で説明した例示的なモデルのうちの1つを使用して計算され得る。
【００９９】
図4A〜図4Cは、本明細書の一例に従う、4:2:0、4:2:2および4:4:4カラーフォーマットの場合のピクチャにおけるルーマサンプルおよびクロマサンプルのサンプリングロケーションの概略図である。他の成分における対応するピクセルは、同じサンプリング位置にあるそれらのピクセルである。ただし、4:2:0など、カラーフォーマットによっては、ルーマピクセルおよびクロマピクセルのサンプリング位置は、図4Aに示すように、整合しないことがある。したがって、本開示は、対応するクロス成分ピクセルを導出するための異なる方法について説明する。たとえば、図4Cに示す、4:4:4カラーフォーマットの場合、対応するクロス成分ピクセルを選択するいくつかの方法が利用され得る。一例では、コロケートされたピクセルが、対応するクロス成分ピクセルとして直接選択され得る。別の例では、コロケートされたピクセルが、他の成分におけるその隣接ピクセルとともに、雑音低減のための空間フィルタ(たとえば、ローパスフィルタ)を最初に適用され、次いで、フィルタ処理されたものが、対応するクロス成分ピクセルとして使用される。
【０１００】
図4Aに示す、4:2:0カラーフォーマットの場合、対応するクロス成分ピクセルを選択するいくつかの方法が利用され得る。一例では、ルーマサンプルとクロマサンプルとの間の対応が、図4Aにおいてドット付き円によって示されるように、セットアップされ得る。1つの対応は、真上に位置するルーマサンプルをクロマサンプルに関係付けることである。別の対応は、真下に位置するルーマサンプルをクロマサンプルに関係付けることである。したがって、図4Aの例では、現在サンプル50は、上位サンプル52と下位サンプル54との間に位置する。クロス成分フィルタを適用することの一部として、ビデオコーダは、α、β、および上位ルーマサンプル52または下位ルーマサンプル54のいずれかに基づいて、現在サンプル50のフィルタ処理された値を決定し得る。たとえば、ビデオコーダは、本開示の他の箇所で説明するクロス成分フィルタを適用するための例示的な式におけるPccまたはpiccとして、上位ルーマサンプル52または下位ルーマサンプル54を使用し得る。
【０１０１】
図4Bに示す、4:2:2カラーフォーマットの場合、対応するクロス成分ピクセルを選択するいくつかの方法が利用され得る。一例では、コロケートされたピクセルが、対応するクロス成分ピクセルとして直接選択され得る。したがって、現在クロマピクセル(P'c)のフィルタ値を計算するための上記で提供された式では、クロス成分サンプル(Pcc)は、コロケートされたルーマピクセルに等しい。
【０１０２】
4:2:2カラーフォーマットを伴う別の例では、ビデオコーダは、コロケートされたピクセルに、他の成分におけるコロケートされたピクセルの隣接ピクセルとともに、空間フィルタを最初に適用する。空間フィルタは、雑音低減をもたらす。たとえば、空間フィルタはローパスフィルタであってよい。この例では、ビデオコーダは次いで、対応するクロス成分ピクセルとして、フィルタ処理されたコロケートされたピクセルを使用し得る。したがって、現在クロマピクセル(P'c)のフィルタ値を計算するための上記で提供された式では、ビデオコーダは、クロス成分サンプル(Pcc)として、フィルタ処理されたコロケートされたピクセルを使用し得る。
【０１０３】
図5Aおよび図5Bは、4:2:0カラーフォーマットの場合の対応するクロス成分ピクセルの生成、上側ルーマピクセルおよび下側ルーマピクセルの使用(図5A)、ならびに6つの周囲のルーマピクセルの使用(図5B)の概略図である。4:2:0カラーフォーマットの場合の対応するクロス成分ピクセルを選択する一例では、現在クロマピクセルの真上および真下に位置するルーマピクセルが、図5Aに示すように、既定の重み付け因子(たとえば、1/2および1/2)を使用して仮想ルーマピクセルを生成するために使用され得る。したがって、図5Aの例では、現在サンプル500がクロマサンプルであって、クロマサンプルの上の上位ルーマサンプル502とクロマサンプルの下の下位ルーマサンプル504との間の位置にある。上位ルーマサンプル502および下位ルーマサンプル504は、ルーマサンプルである。ビデオコーディングデバイスは、上位ルーマサンプル502および下位ルーマサンプル504の重み付き平均を使用して、仮想ルーマサンプル506を決定し得る。この例では、クロス成分フィルタを適用することの一部として、ビデオコーディングデバイスは、α、β、および仮想ルーマサンプル506に基づいて、現在サンプルのフィルタ処理された値を決定する。たとえば、ビデオコーディングデバイスは、本開示の他の箇所で説明するクロス成分フィルタを適用するための例示的な式におけるPccまたはpiccとして、仮想サンプル506を使用し得る。
【０１０４】
別の例では、現在クロマピクセルの周囲の6つのルーマピクセルは、図5Bに示すように、既定の重み付け因子を使用して仮想ルーマピクセルを生成するために使用され得る。したがって、図5Bの例では、ビデオコーディングデバイスは、(図5Bにおいて斑点付きで示されている)6つのルーマサンプルの重み付き平均を使用して、仮想ルーマサンプル552を決定し得る。この例では、ビデオコーディングデバイスは、α、β、および仮想ルーマサンプル552に基づいて、現在サンプル550のフィルタ処理された値を決定し得る。たとえば、ビデオコーディングデバイスは、本開示の他の箇所で説明するクロス成分フィルタを適用するための例示的な式におけるPccまたはpiccとして、仮想ルーマサンプル552を使用し得る。周囲ピクセルおよび関連する重み付け因子は図5Bに示すような例に限定されないことに留意されたい。
【０１０５】
上記で説明したように、現在ピクセルPcの初期ピクセル値は、現在ピクセルおよびその空間隣接ピクセルと少なくとも1つの他の成分における少なくとも1つの対応するピクセルとの間の既定の線形または非線形関係に従って、P'cに修正され得る。そのような関係において使用されるαおよびβなどのパラメータは、様々な方法で導出され得る。一例では、既定の線形または非線形関係式において利用されるパラメータを導出するために、パラメータは、現在ピクセルおよびその隣接ピクセルとそれらの対応するクロス成分ピクセルとの間の既定の関係を仮定して、それらの間の平均2乗誤差の最小化を通じて計算され得る。たとえば、線形モデル:P'c=αPcc+βを仮定する。この例では、αおよびβは、上記で説明したように式(8)および(9)を使用して導出されてよく、式中、P'cは、現在クロマ成分(たとえば、CbまたはCr成分)における現在クロマピクセルであり、Pccは、対応するクロス成分ルーマピクセルである。下記に式(8)および(9)を再現する。
【０１０６】
【数２０】
2019525679.tif 000022
【０１０７】
【数２１】
2019525679.tif 000023
【０１０８】
式(8)および(9)において、L(n)は、既定のローカルエリア内に位置するピクセルインデックスnのクロス成分ルーマサンプルを示し、C(n)は、現在クロマピクセルおよび既定のローカルエリア内のその空間的に隣接するピクセルを表し、Nの値は、このローカルエリアにおけるピクセルの数に等しい。CCLMにおいて、値C(n)は、現在クロマピクセルを含まないが、本開示のクロス成分フィルタのためのαおよびβを決定するときに、C(n)は、現在クロマピクセルを含み、それに応じて、L(n)は、現在クロマピクセルに対応するクロス成分ルーマサンプルを含むことに留意されたい。
【０１０９】
図6および図7は、本開示の一例による、既定の線形または非線形関係式において利用されるパラメータを導出するためのローカルエリアの例の概略図である。図6および図7に示すように、ローカルエリアを形成するための十字パターン(図6)および3×3ブロックパターン(図7)の2つの例は、それぞれ、クロス成分フィルタにおいて使用されるパラメータを導出するために使用され得る。したがって、図6の例では、C(n)は、現在ピクセル604および空間隣接ピクセル606を含む。さらに、図6の例では、L(n)は、クロス成分ピクセル608の各々を含む。同様に、図7の例では、C(n)は、現在ピクセル704および空間隣接ピクセル706を含む。さらに、図7の例では、L(n)は、クロス成分ピクセル708の各々を含む。
【０１１０】
一例では、パラメータは、ガウスフィルタまたは(たとえば、https://en.wikipedia.org/wiki/Bilateral_filterに説明されているような、バイラテラルフィルタの概念を、たとえば、クロス成分ピクセルを組み込むことに拡張している)エッジ保存フィルタによって導出される。たとえば、線形モデル:P'c=αPcc+βを仮定する。この例では、αおよびβは、以下の式を使用して導出され得る。
【０１１１】
【数２２】
2019525679.tif 000024
【０１１２】
β=0    (13)
上の式では、重みω(i,j,k,l)は、サンプル(i,j)をフィルタ処理するために参照サンプル(k,l)のために割り当てられる重みである。I(i,j)およびI(k,l)は、それぞれサンプル(i,j)および(k,l)のサンプル値である。σdは、空間パラメータであり、σrは、バイラテラルフィルタ処理のための範囲パラメータである。
【０１１３】
パラメータを導出するときに、現在ピクセルとその対応するクロス成分ピクセルとの間の関係のより大きい影響を与えるために、より大きい重みが現在ピクセルおよびその対応するピクセルに付けられ得る。言い換えれば、第1のパラメータおよび第2のパラメータを決定する際に、現在サンプルおよび複数のクロス成分サンプルのうちの対応するクロス成分サンプルに対しては、現在サンプルに空間的に隣接する複数のネイバーサンプルおよびネイバーサンプルに対応する複数のクロス成分サンプルよりも大きい重みが付けられる。たとえば、式(8)および(9)は、式(8')および(9')として書き直され得る。
【０１１４】
【数２３】
2019525679.tif 000025
【０１１５】
【数２４】
2019525679.tif 000026
【０１１６】
式(8')および(9')において、w1(n)は、現在ピクセルとコロケートされたクロス成分ピクセルを含む、複数のクロス成分ピクセルのうちの第nのクロス成分ピクセルに割り当てられる重みである。この例では、現在ピクセルのためにクロス成分フィルタを適用する目的でαおよびβを計算するとき、現在ピクセルとコロケートされたクロス成分ピクセルに割り当てられる重みは、他のクロス成分ピクセルに割り当てられる重みよりも大きい。w2(n)は、現在ピクセルおよび現在ピクセルと同じ色成分の1つまたは複数の隣接ピクセルを含む、ピクセルのセットの第nのピクセルに割り当てられる重みである。この例では、現在ピクセルのためにクロス成分フィルタを適用する目的でαおよびβを計算するとき、現在ピクセルに割り当てられる重みは、現在ピクセルと同じ色成分の隣接ピクセルに割り当てられる重みよりも大きい。
【０１１７】
現在ピクセルの重みは、スライス、タイル、ピクチャ、またはシーケンスの中で固定されてよい。たとえば、ビデオコーダは、スライスにおけるピクセル、タイルにおけるすべてのピクセル、ピクチャにおけるすべてのピクセル、またはシーケンスにおけるすべてのピクセルにクロス成分フィルタを適用するときに、現在ピクセルに同じ重みを使用し得る。一例では、現在ピクセルの重みは4に設定され、現在ピクセルとコロケートされたクロス成分ピクセルの重みも4に設定される。いくつかの例では、ビデオエンコーダ20は、スライスヘッダ、ピクチャパラメータセット、シーケンスパラメータセット、ビデオパラメータセット、または別のタイプのシンタックス構造において重みをシグナリングする。
【０１１８】
いくつかの例では、重みは特定のサイズ内で適応的に変更され得る。適応的に選択された重みがシグナリングされ得る。たとえば、現在ピクセルおよび現在ピクセルとコロケートされたクロス成分ピクセルの重みは、既定の重み付けセット(たとえば、{1, 4, 8, 12})のうちの1つに設定され得る。この例では、ビデオエンコーダ20は、異なる重みを試し、最良のレートひずみ性能を有する重みをビットストリーム中へシグナリングする。いくつかの例では、適応的に選択された重みは、コーディングモード/分割構造に依存する。たとえば、現在ピクセルおよび現在ピクセルとコロケートされたクロス成分ピクセルの重みは、インター予測モードとしてコーディングされたブロックに現在ピクセルが属するときに12に設定され、イントラ予測モードとしてコーディングされたブロックに現在ピクセルが属するときに4に設定される。
【０１１９】
様々な例では、ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)が、コーデックの異なる段階でクロス成分フィルタを実行し得る。第1の例では、ビデオコーダが、予測段階においてクロス成分フィルタを実行し得る。たとえば、この例では、ビデオコーダは、動き補償フィルタを適用することの一部としてクロス成分フィルタを実行し得る。したがって、この第1の例では、ビデオコーダは、予測ブロック(たとえば、PUの予測ブロック)に現在サンプルのフィルタ処理された値を含め得る。この例では、ビデオコーダは、予測ブロックのサンプルを残差ブロックの対応するサンプルに加算することによって、ブロックを再構成し得る。この例では、ビデオコーダは、再構成ブロックに基づいて、現在ピクチャの最終バージョンを生成し得る。
【０１２０】
第2の例では、ビデオコーダは、デブロッキングフィルタを適用した直後にインループフィルタとしてクロス成分フィルタを適用し得る。インループフィルタを使用して生成されたサンプルは後に、(たとえば、イントラ予測またはインター予測において)参照のために使用され得る。第3の例では、ビデオコーダは、SAOフィルタを適用した直後にインループフィルタとしてクロス成分フィルタを適用する。いくつかの例では、クロス成分フィルタおよびクロマALFプロセスは同じオン/オフフラグを共有する。たとえば、一例では、1つまたは複数のフラグが、ビデオコーダがクロマALFプロセスを適用するかどうかを制御する。この例では、ビデオエンコーダ20は、ビットストリーム中で1つまたは複数のシンタックス要素として1つまたは複数のフラグをシグナリングし得る。この例では、同じ1つまたは複数のフラグが、ビデオコーダがクロス成分フィルタを適用するかどうかを制御する。
【０１２１】
第4の例では、ビデオコーダは、ALFを適用した直後にインループフィルタとしてクロス成分フィルタを適用する。いくつかの例では、ビデオコーダが、ALFの前および後に再構成ブロックを評価することによって、クロス成分フィルタのオン/オフフラグを決定する。たとえば、ビデオコーダが、オン/オフフラグの値に基づいてクロス成分フィルタを適用するかどうかを決定し得る。この例では、ビデオコーダは、最初にルーマ成分に対してALFを実行し、次いでALFフィルタ処理されたルーマ成分が、クロマ成分に対してクロス成分フィルタを適用するために使用される。ビデオコーダは次いで、フィルタ処理されたクロマ成分およびフィルタ処理されていないクロマ成分のレートひずみを比較して、クロス成分フィルタのオン/オフフラグの値を決定する。
【０１２２】
第5の例では、ビデオコーダが、ALFルーマフィルタ処理を適用した直後およびALFクロマフィルタ処理を適用する前にインループフィルタとしてクロス成分フィルタを適用する。第6の例では、ビデオコーダが、すべてのインループフィルタの最後の位置にあるインループフィルタとしてクロス成分フィルタを適用する。
【０１２３】
第7の例では、ビデオコーダが、ポストフィルタとしてクロス成分フィルタを実行し得る。したがって、第7の例では、クロス成分フィルタを適用することによって生成されたフィルタ処理された値が、イントラ予測またはインター予測において参照のために使用されない。第7の例では、ビデオエンコーダ20は、クロス成分フィルタに関するオン/オフフラグなどの追加制御情報をビットストリーム中でシグナリングし得る。制御情報は、ビデオデコーダ30がクロス成分フィルタを適用するかどうかを制御する。
【０１２４】
成分ごとに、ビデオエンコーダ20は、異なるレベルでビットストリーム中で制御シンタックスをシグナリングし得る。たとえば、ビデオエンコーダ20は、Cb成分に関する制御シンタックスおよびCr成分に関する別個の制御シンタックスをシグナリングし得る。制御シンタックスは、色成分に関して、色成分のフィルタ処理された値を決定するためにビデオデコーダ30がクロス成分フィルタを適用するかどうかを制御する。ビデオエンコーダ20は、シーケンスレベル、ピクチャレベル、スライスレベル、CTU/CTBレベル、CU/CBレベル、PU/予測ブロックレベルもしくはM×Nブロックレベル、または4分木の深度もしくはCU/PUの深度で制御シンタックスをシグナリングし得る。
【０１２５】
一例では、ビデオエンコーダ20は、現在スライスに関するクロス成分フィルタの有効化を示すために、1つのスライスレベルフラグをシグナリングする。スライスフラグがオフとしてシグナリングされるとき、フィルタは無効化されており、スライスレベルの下でさらなるシンタックスがシグナリングされる必要はない。スライスレベルフラグがオンとしてシグナリングされるとき、ビデオエンコーダ20は、より細かい粒度でクロス成分フィルタを制御するために下位レベルシンタックスもシグナリングし得る。たとえば、それぞれのCTU/CTBごとに、ビデオエンコーダ20はさらに、それぞれのCTU/CTBに関してクロス成分フィルタが有効化されているかどうかを示すために、フラグをシグナリングし得る。一例では、スライスレベルの下の制御シンタックスはすべて、CABACを使用してコーディングされ得る。
【０１２６】
いくつかの例では、CbおよびCr成分に対するオン/オフ制御は、シグナリングオーバーヘッドを節約するために同じシンタックス要素を共有し得る。たとえば、Cbサンプルのフィルタ処理された値を決定するためにビデオコーダがクロス成分フィルタを適用するかどうかを制御するための第1のシンタックス要素およびCrサンプルのフィルタ処理された値を決定するためにビデオコーダがクロス成分フィルタを適用するかどうかを制御するための第2のシンタックス要素を有するのではなく、この例では、単一のシンタックス要素が、CbおよびCrサンプルのフィルタ処理された値を決定するためにビデオコーダがクロス成分フィルタを適用するかどうかを制御する。
【０１２７】
図8は、本開示で説明する技法を実施するように構成された例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、スライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベース圧縮モードのうちのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベース圧縮モードのうちのいずれかを指し得る。
【０１２８】
図8の例では、ビデオエンコーダ20は、ビデオデータメモリ800、区分ユニット802、予測処理ユニット804、加算器806、変換処理ユニット808、量子化ユニット810、エントロピー符号化ユニット812を含む。予測処理ユニット804は、動き推定ユニット814、動き補償ユニット816、およびイントラ予測ユニット818を含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット820、逆変換処理ユニット822、加算器824、フィルタユニット826、および復号ピクチャバッファ(DPB)828を含む。
【０１２９】
図8に示すように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ800に記憶する。ビデオデータメモリ800は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ800に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。DPB828は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ800およびDPB828は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ800およびDPB828は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ800は、ビデオエンコーダ20の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。
【０１３０】
区分ユニット802はビデオデータメモリ800からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分はまた、スライス、タイル、または他のより大きい単位への区分、ならびに、たとえば、LCUおよびCUの4分木構造に従ったビデオブロック区分を含み得る。ビデオエンコーダ20は、概して、符号化されるべきスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット804は、エラー結果(たとえば、コーディングレート、およびひずみのレベル)に基づいて、現在ビデオブロックのための、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット804は、残差ブロックデータを生成するために加算器806に、また参照ピクチャとして使用するための符号化ブロックを再構成するために加算器824に、得られたイントラまたはインターコード化ブロックを提供し得る。
【０１３１】
予測処理ユニット804内のイントラ予測ユニット818は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット804内の動き推定ユニット814および動き補償ユニット816は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【０１３２】
動き推定ユニット814は、ビデオシーケンス用の所定のパターンに従って、スライス用のインター予測モードを決定するように構成される場合がある。所定のパターンは、シーケンス中のスライスをPスライスまたはBスライスとして指定することができる。動き推定ユニット814および動き補償ユニット816は高度に集積され得るが、概念的な目的のために別個に図示される。動き推定ユニット814によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
【０１３３】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分のメトリックによって決定され得るピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に一致することが見出されたブロックである。いくつかの例では、ビデオエンコーダ20は、DPB828内に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算してよい。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット814は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０１３４】
動き推定ユニット814は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、その各々がDPB828に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット814は、計算された動きベクトルをエントロピー符号化ユニット812および動き補償ユニット816に送る。
【０１３５】
動き補償ユニット816によって実行される動き補償は、場合によってはサブピクセル精度への補間を実行する動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。現在ビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット816は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含む場合がある。加算器806は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット816は、スライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびスライスに関連付けられたシンタックス要素を生成することもできる。
【０１３６】
予測処理ユニット804がイントラ予測またはインター予測のいずれかを介して現在ビデオブロックに対する予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTUに含められてよく、変換処理ユニット808に適用され得る。変換処理ユニット808は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット808は、ピクセル領域から周波数領域などの変換領域に、残差ビデオデータを変換し得る。
【０１３７】
変換処理ユニット808は、得られた変換係数を量子化ユニット810に送ることができる。量子化ユニット810は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット810は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替として、エントロピー符号化ユニット812が走査を実行する場合がある。
【０１３８】
量子化に続いて、エントロピー符号化ユニット812は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット812は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実行することができる。エントロピー符号化ユニット812によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、または後の送信もしくはビデオデコーダ30による取出しのためにアーカイブされる場合がある。エントロピー符号化ユニット812は、コーディングされている現在スライスのための動きベクトルおよび他のシンタックス要素をエントロピー符号化することもできる。
【０１３９】
逆量子化ユニット820および逆変換処理ユニット822は、参照ピクチャの参照ブロックとして後で使用できるように、それぞれ、逆量子化および逆変換を適用してピクセル領域における残差ブロックを再構成する。動き補償ユニット816は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット816はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器824は、再構成ブロックを生成するために、動き補償ユニット816によって生成された動き補償予測ブロックに、再構成残差ブロックを加算する。
【０１４０】
フィルタユニット826は、再構成ブロック(たとえば、加算器824の出力)をフィルタ処理し、フィルタ処理された再構成ブロックを参照ブロックとして使用するためにDPB828に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット814および動き補償ユニット816によって使用され得る。フィルタユニット826は、再構成ブロックに対して実行され得る1つまたは複数のフィルタを表す。フィルタユニット826によって実行され得るフィルタ処理のタイプの例としては、デブロックフィルタ処理、ALFフィルタ処理、SAOフィルタ処理、クロス成分フィルタ処理、または他のタイプのループフィルタがある。デブロックフィルタは、たとえば、ブロック境界をフィルタ処理して再構成ビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ処理を適用し得る。SAOフィルタは、全体的なコーディング品質を改善するために、再構成ピクセル値にオフセットを適用し得る。追加のループフィルタ(インループまたはポストループ)も使用されてよい。フィルタユニット826によって適用される様々なフィルタは、様々な異なる順序で適用され得る。
【０１４１】
いくつかの例では、フィルタユニット826は、本開示の他の箇所で説明するクロス成分フィルタを適用する。フィルタユニット826がクロス成分フィルタを適用するいくつかの例では、フィルタユニット826は、クロス成分フィルタを適用する前または適用した後に1つまたは複数の他のタイプのフィルタを適用し得る。たとえば、いくつかの例では、フィルタユニット826は、ALFを適用した後にクロス成分フィルタを適用する。クロス成分フィルタが予測段階で実行されるいくつかの例では、動き補償ユニット826は、インループクロス成分フィルタを適用する。
【０１４２】
図9は、本開示で説明する技法を実施するように構成された例示的なビデオデコーダ30を示すブロック図である。いくつかの例では、図9のビデオデコーダ30は、図8のビデオエンコーダ20によって生成されたビットストリームを受信するように構成される。図9の例では、ビデオデコーダ30は、ビデオデータメモリ900、エントロピー復号ユニット902、予測処理ユニット904、逆量子化ユニット906、逆変換処理ユニット908、加算器910、フィルタユニット912、およびDPB914を含む。予測処理ユニット904は、動き補償ユニット916およびイントラ予測ユニット918を含む。いくつかの例では、ビデオデコーダ30は、図8によるビデオエンコーダ20に関して説明した符号化パスとは全般に逆の復号パスを実行する。
【０１４３】
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化スライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30は、受信された符号化ビデオビットストリームをビデオデータメモリ900に記憶する。ビデオデータメモリ900は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ900に記憶されるビデオデータは、たとえば、リンク16(図1)を介して、ストレージデバイス26(図1)から、またはカメラなどのローカルビデオソースから、または物理的データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ900は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB: coded picture buffer)を形成し得る。DPB914は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ900およびDPB914は、DRAM、SDRAM、MRAM、RRAM(登録商標)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ900およびDPB914は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ900は、ビデオデコーダ30の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。
【０１４４】
エントロピー復号ユニット902は、量子化係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ900に記憶されたビデオデータをエントロピー復号する。たとえば、エントロピー復号ユニット902は、CABAC復号、または別のタイプのエントロピー復号を実行し得る。エントロピー復号ユニット902は、予測処理ユニット904に特定のシンタックス要素を転送し得る。
【０１４５】
スライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット904のイントラ予測ユニット918は、シグナリングされたイントラ予測モード、および現在フレームまたはピクチャの以前復号されたブロックからのデータに基づいて、現在スライスのビデオブロックに対する予測データを生成し得る。ビデオフレームがインターコード化スライス(たとえば、BスライスまたはPスライス)としてコーディングされるとき、予測処理ユニット904の動き補償ユニット916は、エントロピー復号ユニット902から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在スライスのビデオブロックに対する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つのリスト内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB914に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
【０１４６】
動き補償ユニット916は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在スライスのビデオブロックのための予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット916は、受信されたシンタックス要素のうちのいくつかを使用して、スライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数のための構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測状態、および現在スライス中のビデオブロックを復号するための他の情報を決定する。
【０１４７】
動き補償ユニット916は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット916は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されたような補間フィルタを使用して、参照ブロックのサブ整数ピクセル用の補間値を計算することができる。この場合、動き補償ユニット916は、ビデオエンコーダ20によって使用された補間フィルタを、受信されたシンタックス要素から決定し得、その補間フィルタを使用して予測ブロックを生成し得る。
【０１４８】
逆量子化ユニット906は、ビットストリーム中で提供され、エントロピー復号ユニット902によって復号された量子化変換係数を、逆量子化すなわち量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、スライス中のビデオブロックごとの、ビデオエンコーダ20によって計算された量子化パラメータの使用を含む場合がある。逆変換処理ユニット908は、ピクセル領域内の残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１４９】
予測処理ユニット904が、たとえば、イントラ予測またはインター予測を使用して現在ビデオブロックに対する予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット908からの残差ブロックを、動き補償ユニット916によって生成された対応する予測ブロックと加算することによって、再構成ビデオブロックを形成する。加算器910は、この加算演算を実行する1つまたは複数の構成要素を表す。
【０１５０】
フィルタユニット912は、たとえば、本開示で説明する1つまたは複数のフィルタを使用して、再構成ビデオブロックをフィルタ処理する。フィルタユニット912は、再構成ブロックに対して実行され得る1つまたは複数のフィルタを表す。フィルタユニット912によって実行され得るフィルタ処理のタイプの例としては、デブロックフィルタ処理、ALFフィルタ処理、SAOフィルタ処理、クロス成分フィルタ処理、または他のタイプのループフィルタがある。デブロッキングフィルタは、たとえば、ブロック境界をフィルタ処理して再構成ビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ処理を適用し得る。SAOフィルタは、全体的なコーディング品質を改善するために、再構成ピクセル値にオフセットを適用し得る。追加のループフィルタ(インループまたはポストループ)も使用されてよい。フィルタユニット912によって適用される様々なフィルタは、様々な異なる順序で適用され得る。
【０１５１】
ピクセル遷移を平滑化し、またはビデオ品質を別の方法で改善するために、(コーディングループの中またはコーディングループの後のいずれかの)他のインループフィルタも使用され得る。次いで、所与のフレームまたはピクチャ中の復号ビデオブロックは、DPB914に記憶され、DPB914は、後続の動き補償のために使用される参照ピクチャを記憶する。DPB914は、図1のディスプレイデバイス32などのディスプレイデバイス上で後に提示するために復号ビデオを記憶する、追加のメモリの一部であってよく、またはそうしたメモリとは別個であってもよい。
【０１５２】
フィルタユニット912は、ビデオデコーダ30の他の構成要素とともに、本開示で説明する様々な技法を実行するように構成され得る。たとえば、いくつかの例では、フィルタユニット912は、本開示の他の箇所で説明するクロス成分フィルタを適用する。フィルタユニット912がクロス成分フィルタを適用するいくつかの例では、フィルタユニット912は、クロス成分フィルタを適用する前または適用した後に1つまたは複数の他のタイプのフィルタを適用し得る。たとえば、いくつかの例では、フィルタユニット912は、ALFを適用した後にクロス成分フィルタを適用する。クロス成分フィルタが予測段階で実行されるいくつかの例では、動き補償ユニット912は、インループクロス成分フィルタを適用する。
【０１５３】
図10は、本開示の技法による、ビデオコーダの例示的な動作を示すフローチャートである。規定されていない限り、図10の動作のアクションは、ビデオエンコーダ20またはビデオデコーダ30のいずれかによって実行され得る。他の例では、図10のアクションは、異なる順序で、または並行して実行されてよい。他の動作は、より多数の、より少数の、または異なるアクションを含む場合がある。
【０１５４】
図10の例では、ビデオコーダは、ビデオデータの現在ピクチャの第1の成分を生成する(1000)。第1の成分は、サンプルの第1のアレイを備える。たとえば、第1の成分の各サンプルはルーマサンプルであってよく、第1の成分の各サンプルはCbサンプルであってよく、第1の成分の各サンプルはCrサンプルであってよい。
【０１５５】
加えて、ビデオコーダは、現在ピクチャの第2の成分を生成する(1002)。第2の成分は、サンプルの第1のアレイとは別個のサンプルの第2のアレイを備える。たとえば、第1の成分のサンプルがCbまたはCrサンプルである場合、第2の成分のサンプルはルーマサンプルであり得る。したがって、一例では、サンプルの第1のアレイは、第1のタイプのクロマサンプルからなり、サンプルの第2のアレイは、ルーマサンプルからなるか、またはサンプルの第2のアレイは、第2のタイプのクロマサンプルからなる。
【０１５６】
ビデオコーダがビデオデコーダであるいくつかの例では、ビデオコーダは、第1の成分に関してクロス成分フィルタが有効化されているかどうかを決定し得る(1004)。ビデオデコーダは、様々な方法でクロス成分フィルタが有効化されているかどうかを決定し得る。たとえば、ビデオデコーダは、現在ピクチャの符号化表現を備えるビットストリームから、第1の成分に関してクロス成分フィルタが有効化されているかどうかを示すシンタックス要素を取得し得る。したがって、この例では、ビデオエンコーダ(たとえば、ビデオエンコーダ20)は、現在ピクチャの符号化表現を備えるビットストリーム中で、現在ピクチャの第1の成分に関してクロス成分フィルタが有効化されているかどうかを示すシンタックス要素をシグナリングし得る。
【０１５７】
さらに、図10の例では、クロス成分フィルタが有効化されているとき(1004の「YES」分岐)、ビデオコーダは、第1のパラメータ(たとえば、α)を決定する(1006)。本開示の技法によれば、第1のパラメータは、現在ピクチャの第1の成分における現在サンプルの値に基づく。いくつかの例では、ビデオコーダは、第1のパラメータを暗黙のうちに決定する。たとえば、ビデオコーダは、式(8)に従って第1のパラメータを決定することがあり、式中、L(n)は、現在サンプルに対応するクロス成分サンプルを含み、C(n)は、現在サンプルを含む。ビデオコーダがビデオデコーダであるいくつかの例では、ビデオデコーダは、第1のパラメータの値を指定するシンタックス要素をビットストリームから取得することによって、第1のパラメータを決定する。言い換えれば、ビデオデコーダは、現在ピクチャの符号化表現を備えるビットストリーム中でシグナリングされた第1のシンタックス要素に基づいて、第1のパラメータを決定し得る。ビデオコーダがビデオエンコーダであるそのような例では、ビデオエンコーダは、ビットストリーム中でシンタックス要素をシグナリングし得る。
【０１５８】
ビデオコーダはまた、第2のパラメータ(たとえば、β)を決定する(1008)。第2のパラメータは、現在サンプルの値に基づく。いくつかの例では、ビデオコーダは、第2のパラメータを暗黙のうちに決定する。たとえば、ビデオコーダは、式(9)に従って第2のパラメータを決定することがあり、式中、L(n)は、現在サンプルに対応するクロス成分サンプルを含み、C(n)は、現在サンプルを含む。ビデオコーダがビデオデコーダであるいくつかの例では、ビデオデコーダは、第2のパラメータの値を指定するシンタックス要素をビットストリームから取得することによって、第2のパラメータを決定する。言い換えれば、ビデオデコーダは、現在ピクチャの符号化表現を備えるビットストリーム中でシグナリングされた第1のシンタックス要素に基づいて、第2のパラメータを決定し得る。そのような例では、ビデオエンコーダ20は、ビットストリーム中でシンタックス要素をシグナリングし得る。
【０１５９】
ビデオコーダが単にビットストリームにおけるシンタックス要素から第1および第2のパラメータの値を取得するのではない事例では、ビデオコーダは、様々な方法で第1および第2のパラメータを決定し得る。たとえば、上記で説明したように、図6および図7による一例では、第1の成分は、サンプルの現在セットを備える。この例では、サンプルの現在セットは、現在サンプルおよび第1の成分における現在サンプルに空間的に隣接する複数のネイバーサンプル(たとえば、サンプル606(図6)またはサンプル706(図7))を含む。この例では、1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含む。たとえば、1つまたは複数のクロス成分サンプルは、サンプル608(図6)またはサンプル708(図7)を含み得る。複数のネイバーサンプルにおけるそれぞれのネイバーサンプルごとに、複数のクロス成分サンプルは、それぞれのネイバーサンプルに対応する第2の成分におけるサンプルを含み、複数のクロス成分サンプルは、現在サンプルに対応する第2の成分におけるサンプルをさらに含む。この例では、第1のパラメータは、サンプルの現在セットと複数のクロス成分サンプルとの間の第1の既定の関係(たとえば、P'c=αPcc+β)を仮定して、サンプルの現在セットと複数のクロス成分サンプルとの間の平均2乗誤差の最小化を通じて決定される。同様に、第2のパラメータは、サンプルの現在セットと複数のクロス成分サンプルとの間の既定の関係(たとえば、P'c=αPcc+β)を仮定して、サンプルの現在セットと複数のクロス成分サンプルとの間の平均2乗誤差の最小化を通じて決定される。
【０１６０】
他の例では、ビデオコーダは第1のパラメータを、ガウスフィルタまたはエッジ保存フィルタを使用することによって決定する。たとえば、ビデオコーダは、式(12)に示すようにバイラテラルパラメータのような第1のパラメータを導出し得る。いくつかの例では、ビデオコーダは第2のパラメータを、ガウスフィルタもしくはエッジ保存フィルタを使用することによって決定するか、または単に0に設定する。
【０１６１】
さらに、図10の例では、ビデオコーダは、現在サンプルにクロス成分フィルタを適用し、それによって、現在サンプルのフィルタ処理された値を決定する(1010)。クロス成分フィルタは、第1のパラメータ、第2のパラメータ、および1つまたは複数のクロス成分サンプルに基づく。1つまたは複数のクロス成分サンプルの各々は、現在ピクチャの第2の成分にある。
【０１６２】
ビデオデコーダは、様々な方法でクロス成分フィルタを適用し得る。たとえば、ビデオコーダは、式:P'c=αPcc+βに従って現在サンプルのフィルタ処理された値を決定することができ、式中、P'cは、現在サンプルのフィルタ処理された値であり、αは、第1のパラメータであり、Pccは、1つまたは複数のクロス成分サンプルのうちのクロス成分サンプルであり、βは、第2のパラメータである。
【０１６３】
クロス成分フィルタを適用する別の例では、1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、第1のパラメータは、第1のパラメータの第1のインスタンスであり、ビデオコーダは、第1のパラメータの第1のインスタンスおよび第1のパラメータの1つまたは複数の追加のインスタンスを含む複数の第1のパラメータ(αi)を決定する。いくつかの例では、既定の線形または非線形関係式において利用されるパラメータを導出するために、パラメータは、現在ピクセルおよびその隣接ピクセルとそれらの対応するクロス成分ピクセルとの間の既定の関係を仮定して、それらの間の平均2乗誤差の最小化を通じて計算され得る。たとえば、一例では、クロス成分の数が関係式において5である場合、それは、決定されるべき5つのαiパラメータおよび1つのβパラメータがあることを意味する。この例では、現在ピクセルおよび少なくとも5つのその周囲ピクセルならびにそれらの対応するクロス成分サンプルが、現在ピクセルおよびその隣接ピクセルとそれらの対応するクロス成分ピクセルとの間の既定の関係を仮定して、それらの間の平均2乗誤差の最小化を通じてパラメータを決定するために使用される。この例では、クロス成分フィルタを適用することの一部として、ビデオコーダは、式:
【０１６４】
【数２５】
2019525679.tif 000027
【０１６５】
に従って現在サンプルのフィルタ処理された値を決定し、式中、P'cは、現在サンプルのフィルタ処理された値であり、iは、ピクセルインデックスであり、αiは、複数の第1のパラメータにおける第iの第1のパラメータであり、piccは、複数のクロス成分サンプルのうちの第iのクロス成分サンプルであり、βは、第2のパラメータである。
【０１６６】
クロス成分フィルタを適用する別の例では、1つまたは複数のクロス成分サンプルは、複数のクロス成分サンプルを含み、第1のパラメータは、第1のパラメータの第1のインスタンスである。この例では、ビデオコーダは、第1のパラメータの第1のインスタンスおよび第1のパラメータの1つまたは複数の追加のインスタンスを含む複数の第1のパラメータ(αi)を決定する。既定の線形または非線形関係式において利用されるパラメータを導出するために、パラメータは、現在ピクセルおよびその隣接ピクセルとそれらの対応するクロス成分ピクセルとの間の既定の関係を仮定して、それらの間の平均2乗誤差の最小化を通じて計算され得る。第1のパラメータの1つまたは複数の追加のインスタンスのうちの第1のパラメータの各それぞれの追加のインスタンスは、第1の成分の異なる対応するサンプルの値に基づく。この例では、クロス成分フィルタを適用することの一部として、ビデオコーダは、式:
【０１６７】
【数２６】
2019525679.tif 000028
【０１６８】
に従って現在サンプルのフィルタ処理された値を決定し、式中、P'cは、現在サンプルのフィルタ処理された値であり、iは、第1のピクセルインデックスであり、αiは、複数の第1のパラメータにおける第iの第1のパラメータであり、piccは、複数のクロス成分サンプルのうちの第iのクロス成分サンプルであり、jは、第2のピクセルインデックスであり、γiは、複数の第3のパラメータにおける第iの第3のパラメータであり、pjnは、現在サンプルに空間的に隣接する第jのサンプルであり、βは、第2のパラメータである。
【０１６９】
クロス成分フィルタにおいて使用されるクロス成分サンプルは、様々な方法で定義または決定され得る。たとえば、現在ピクチャが4:4:4カラーフォーマットまたは4:2:2カラーフォーマットを有する事例では、1つまたは複数のクロス成分サンプルは、現在サンプルとコロケートされている第2の成分におけるサンプルを含み得る。現在ピクチャが4:4:4カラーフォーマットまたは4:2:2カラーフォーマットを有する別の例では、第2の成分は、第2の成分におけるコロケートされたサンプルに空間的に隣接する隣接サンプルのセットを含み得る。この例では、第2の成分におけるコロケートされたサンプルは、現在サンプルとコロケートされている。さらに、この例では、ビデオコーダは、コロケートされたサンプルおよび隣接サンプルのセットに空間雑音低減フィルタを適用し、それによって、フィルタ処理されたコロケートされたサンプルを導出する。この例では、クロス成分フィルタは、第1のパラメータ、第2のパラメータ、およびフィルタ処理されたコロケートされたサンプルに基づく。たとえば、ビデオコーダは、クロス成分フィルタを適用するための本開示の他の箇所で説明する式のいずれかにおけるpccまたはpiccの値として、フィルタ処理されたコロケートされたサンプルを使用し得る。
【０１７０】
いくつかの例では、現在ピクチャは4:2:0カラーフォーマットを有し、現在サンプルはクロマサンプルであって、クロマサンプルの上の上位ルーマサンプルとクロマサンプルの下の下位ルーマサンプルとの間の位置にある。この例では、上位ルーマサンプルおよび下位ルーマサンプルは、第2の成分におけるルーマサンプルである。さらに、この例では、現在サンプルは、第1のパラメータ、第2のパラメータ、および上位ルーマサンプルまたは下位ルーマサンプルのいずれかに基づく。したがって、この例では、ビデオコーダは、クロス成分フィルタを適用するための本開示の他の箇所で説明する式のいずれかにおけるpccまたはpiccの値として、上位ルーマサンプルまたは下位ルーマサンプルを使用し得る。
【０１７１】
上記で説明した図5Aの例など、いくつかの例では、現在ピクチャは4:2:0カラーフォーマットを有し、現在サンプルはクロマサンプルであって、クロマサンプルの上の上位ルーマサンプルとクロマサンプルの下の下位ルーマサンプルとの間の位置にある。前述の例の場合のように、上位ルーマサンプルおよび下位ルーマサンプルは、現在ピクチャの第2の成分におけるルーマサンプルである。だが、この例では、ビデオコーダは、仮想ルーマサンプルを決定するために上位ルーマサンプルおよび下位ルーマサンプルの重み付き平均を使用する。この例では、現在サンプルは、第1のパラメータ、第2のパラメータ、および仮想ルーマサンプルに基づく。したがって、この例では、ビデオコーダは、クロス成分フィルタを適用するための本開示の他の箇所で説明する式のいずれかにおけるpccまたはpiccの値として、仮想ルーマサンプルを使用し得る。
【０１７２】
上記で説明した図5Bの例など、いくつかの例では、現在ピクチャは4:2:0カラーフォーマットを有し、現在サンプルは、第2の成分における6つのルーマサンプルの間の位置にあるクロマサンプルである。この例では、ビデオコーダは、仮想ルーマサンプルを決定するために6つのルーマサンプルの重み付き平均を使用し得る。この例では、現在サンプルのフィルタ処理された値は、第1のパラメータ、第2のパラメータ、および仮想ルーマサンプルに基づく。したがって、この例では、ビデオコーダは、クロス成分フィルタを適用するための本開示の他の箇所で説明する式のいずれかにおけるpccまたはpiccの値として、仮想ルーマサンプルを使用し得る。
【０１７３】
いくつかの例では、ビデオコーダは、現在サンプルの修正されたフィルタ処理された値を決定し得る(1012)。そのような例では、ビデオコーダは、現在サンプルの値および現在サンプルのフィルタ処理された値の重み付き和として、現在サンプルの修正されたフィルタ処理された値を決定し得る。そのような例では、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルの修正されたフィルタ処理された値に基づく。
【０１７４】
ビデオコーダは、クロス成分フィルタを適用した後またはクロス成分フィルタが有効化されていないと決定した(1004の「NO」分岐)後に1つまたは複数のアクションを実行し得る(1014)。たとえば、ビデオコーダがビデオデコーダ30などのビデオデコーダである例では、ビデオデコーダは、現在ピクチャの最終バージョンを出力し得る(1016)。この例では、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく。たとえば、現在ピクチャの最終バージョンは、現在サンプルのフィルタ処理された値の変更なしバージョンを含み得る。別の例では、ビデオコーダは、現在ピクチャの最終バージョンに含まれる現在サンプルの値を生成するために、現在サンプルのフィルタ処理されたバージョンに追加フィルタ(たとえば、SAOフィルタ、ALF、デブロッキングフィルタ、または他のタイプのフィルタ)を適用し得る。
【０１７５】
ビデオコーダがビデオエンコーダ(たとえば、ビデオエンコーダ20)またはビデオデコーダ(たとえば、ビデオデコーダ30)である例では、ビデオコーダは、ビデオデータの後のピクチャを符号化する際に参照ピクチャとして現在ピクチャの最終バージョンを使用し得る(1018)。たとえば、ビデオコーダは、本開示の他の箇所で説明する方法でインター予測のために現在ピクチャの最終バージョンを使用し得る。この例では、現在ピクチャの最終バージョンにおけるピクセルの値は、現在サンプルのフィルタ処理された値に基づく。
【０１７６】
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品がコンピュータ可読媒体を含んでよい。
【０１７７】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１７８】
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で与えられることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素で全体的に実装され得る。
【０１７９】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装され得る。開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示で説明されるが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１８０】
様々な例が記載されている。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１８１】
10  ビデオ符号化および復号システム、システム
12  ソースデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
26  ストレージデバイス
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
50  現在サンプル
52  上位サンプル、上位ルーマサンプル
54  下位サンプル、下位ルーマサンプル
221〜235  グループ
500  現在サンプル
502  上位ルーマサンプル
504  下位ルーマサンプル
506  仮想ルーマサンプル、仮想サンプル
550  現在サンプル
552  仮想ルーマサンプル
604  現在ピクセル
606  空間隣接ピクセル、サンプル
608  クロス成分ピクセル、サンプル
704  現在ピクセル
706  空間隣接ピクセル、サンプル
708  クロス成分ピクセル、サンプル
800  ビデオデータメモリ
802  区分ユニット
804  予測処理ユニット
806  加算器
808  変換処理ユニット
810  量子化ユニット
812  エントロピー符号化ユニット
814  動き推定ユニット
816  動き補償ユニット
818  イントラ予測ユニット
820  逆量子化ユニット
822  逆変換処理ユニット
824  加算器
826  フィルタユニット
828  復号ピクチャバッファ(DPB)
900  ビデオデータメモリ
902  エントロピー復号ユニット
904  予測処理ユニット
906  逆量子化ユニット
908  逆変換処理ユニット
910  加算器
912  フィルタユニット
914  DPB
916  動き補償ユニット
918  イントラ予測ユニット
【図１】
2019525679.tif 000033
【図２Ａ】
2019525679.tif 000034
【図２Ｂ】
2019525679.tif 000035
【図３Ａ】
2019525679.tif 000036
【図３Ｂ】
2019525679.tif 000037
【図３Ｃ】
2019525679.tif 000038
【図４Ａ】
2019525679.tif 000039
【図４Ｂ】
2019525679.tif 000040
【図４Ｃ】
2019525679.tif 000041
【図５Ａ】
2019525679.tif 000042
【図５Ｂ】
2019525679.tif 000043
【図６】
2019525679.tif 000044
【図７】
2019525679.tif 000045
【図８】
2019525679.tif 000046
【図９】
2019525679.tif 000047
【図１０】
2019525679.tif 000048
【国際調査報告】
2019525679.tif 000049
2019525679.tif 000050
2019525679.tif 000051
2019525679.tif 000052