(57)【要約】  例は、ビデオデータをコーディングするためのデバイスを含み、デバイスは、ビデオデータを記憶するように構成されたメモリと、現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得し、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成し、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行するように構成された1つまたは複数のプロセッサとを含む。ビデオデータをコーディングすることは、ビデオデータを符号化すること、ビデオデータを復号すること、またはビデオデータを符号化することおよび復号することの両方を含む。
2018509074.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための方法であって、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するステップと、
前記現在CTU用の前記取得されたALF情報に少なくとも部分的に基づいて、候補リストを形成するステップと、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行するステップと
を備える方法。
【請求項２】
前記ALF情報がALF係数を備える、請求項1に記載の方法。
【請求項３】
前記ALF情報が分類メトリックへのALFフィルタのマッピングを備える、請求項1に記載の方法。
【請求項４】
ビデオデータをコーディングする前記方法が前記ビデオデータを復号する方法を備え、前記方法が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するステップと、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行するステップと
をさらに備える、請求項1に記載の方法。
【請求項５】
ビデオデータをコーディングする前記方法が前記ビデオデータを符号化する方法を備え、前記方法が、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するステップ
をさらに備える、請求項1に記載の方法。
【請求項６】
ビデオデータをコーディングする前記方法が前記ビデオデータを復号する方法を備え、前記方法が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するステップと、
差分情報を受信するステップと、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加するステップと、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行するステップと
をさらに備える、請求項1に記載の方法。
【請求項７】
ビデオデータをコーディングする前記方法が前記ビデオデータを符号化する方法を備え、前記方法が、
新たなALF情報を決定するステップと、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するステップと、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成するステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
前記ALFフィルタ情報が複数のALFフィルタを備え、前記方法が、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択するステップと、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行するステップと
をさらに備える、請求項1に記載の方法。
【請求項９】
前記1つまたは複数の分類メトリックがアクティビティメトリックおよび方向メトリックを備える、請求項8に記載の方法。
【請求項１０】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項8に記載の方法。
【請求項１１】
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するステップと、
前記フィルタ処理された画像を出力するステップと
をさらに備える、請求項8に記載の方法。
【請求項１２】
コーディングするための前記方法が符号化動作の復号ループの一部として実行され、前記方法が、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するステップと、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶するステップと
をさらに備える、請求項6に記載の方法。
【請求項１３】
前記方法がワイヤレス通信デバイスによって実行され、前記ワイヤレス通信デバイスが、
符号化ビデオデータを受信するように構成された受信機と、
前記符号化ビデオデータを処理するための命令を実行するように構成されたプロセッサと
を備える、請求項1に記載の方法。
【請求項１４】
前記ワイヤレス通信デバイスがセルラー電話を備え、前記符号化ビデオデータが前記受信機によって受信され、セルラー通信規格に従って復調される、請求項13に記載の方法。
【請求項１５】
前記方法がワイヤレス通信デバイスによって実行され、前記ワイヤレス通信デバイスが、
符号化ビデオデータを送信するように構成された送信機と、
前記符号化ビデオデータを処理するための命令を実行するように構成されたプロセッサと
を備える、請求項1に記載の方法。
【請求項１６】
前記ワイヤレス通信デバイスがセルラー電話を備え、前記符号化ビデオデータがセルラー通信規格に従って変調され、前記送信機によって送信される、請求項15に記載の方法。
【請求項１７】
ビデオデータをコーディングするためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得し、
前記現在CTU用の前記取得されたALF情報に少なくとも部分的に基づいて、候補リストを形成し、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行する
ように構成される、デバイス。
【請求項１８】
前記1つまたは複数のプロセッサが前記ビデオデータを復号するように構成され、前記ビデオデータを復号するために、前記1つまたは複数のプロセッサが、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信し、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項１９】
前記1つまたは複数のプロセッサが前記ビデオデータを符号化するように構成され、前記ビデオデータを符号化するために、前記1つまたは複数のプロセッサが、ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するようにさらに構成される、請求項17に記載のデバイス。
【請求項２０】
前記1つまたは複数のプロセッサが前記ビデオデータを復号するように構成され、前記ビデオデータを復号するために、前記1つまたは複数のプロセッサが、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信し、
差分情報を受信し、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加し、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項２１】
前記1つまたは複数のプロセッサがビデオデータを符号化するように構成され、データを符号化するために、前記1つまたは複数のプロセッサが、
新たなALF情報を決定し、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成し、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項２２】
前記ALFフィルタ情報が複数のALFフィルタを備え、前記1つまたは複数のプロセッサが、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択し、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項２３】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項22に記載のデバイス。
【請求項２４】
前記1つまたは複数のプロセッサが、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成し、
前記フィルタ処理された画像を出力する
ようにさらに構成される、請求項22に記載のデバイス。
【請求項２５】
前記1つまたは複数のプロセッサが、符号化動作の復号ループの一部としてコーディングを実行するように構成され、前記1つまたは複数のプロセッサが、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成し、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶する
ようにさらに構成される、請求項20に記載のデバイス。
【請求項２６】
前記デバイスがワイヤレス通信デバイスであり、前記ワイヤレス通信デバイスが、
符号化ビデオデータを受信するように構成された受信機を備え、
前記1つまたは複数のプロセッサが、前記受信された符号化ビデオデータを処理するための命令を実行するように構成される、
請求項17に記載のデバイス。
【請求項２７】
前記ワイヤレス通信デバイスがセルラー電話を備え、前記符号化ビデオデータが前記受信機によって受信され、セルラー通信規格に従って復調される、請求項26に記載のデバイス。
【請求項２８】
前記デバイスがワイヤレス通信デバイスであり、前記ワイヤレス通信デバイスが、
符号化データを送信するように構成された送信機を備え、
前記1つまたは複数のプロセッサが、前記送信機による送信に備えて前記ビデオデータを処理するための命令を実行するように構成される、
請求項17に記載のデバイス。
【請求項２９】
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオデータがセルラー通信規格に従って変調され、次いで、前記送信機によって送信される、請求項28に記載のデバイス。
【請求項３０】
ビデオデータをコーディングするためのデバイスであって、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するための手段と、
前記現在CTU用の前記取得されたALF情報に少なくとも部分的に基づいて、候補リストを形成するための手段と、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行するための手段と
を備えるデバイス。
【請求項３１】
前記ビデオデータを復号するための手段をさらに備え、前記ビデオデータを復号するための前記手段が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するための手段と、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行するための手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３２】
前記ビデオデータを符号化するための手段をさらに備え、前記ビデオデータを符号化するための前記手段が、ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するための手段をさらに備える、
請求項30に記載のデバイス。
【請求項３３】
前記ビデオデータを復号するための手段をさらに備え、ビデオデータを復号するための前記手段が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するための手段と、
差分情報を受信するための手段と、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加するための手段と、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行する手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３４】
前記ビデオデータを符号化するための手段をさらに備え、前記ビデオデータを符号化するための前記手段が、
新たなALF情報を決定するための手段と、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するための手段と、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成するための手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３５】
前記ALFフィルタ情報が複数のALFフィルタを備え、前記適応ループフィルタ処理(ALF)情報を取得するための前記手段が、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択するための手段と、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行するための手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３６】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項35に記載のデバイス。
【請求項３７】
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するための手段と、
前記フィルタ処理された画像を出力するための手段と
をさらに備える、請求項35に記載のデバイス。
【請求項３８】
前記ビデオデータを復号するための前記手段が、符号化動作の復号ループの一部として復号を実行するように構成され、前記ビデオデータを復号するための前記手段が、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するための手段と、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶するための手段と
をさらに備える、請求項33に記載のデバイス。
【請求項３９】
ワイヤレス通信を実行するための手段をさらに備え、ワイヤレス通信を実行するための前記手段が、
符号化ビデオデータを受信するための手段と、
前記符号化ビデオデータを処理するための命令を実行するための手段と
を備える、請求項30に記載のデバイス。
【請求項４０】
ワイヤレス通信を実行するための手段をさらに備え、ワイヤレス通信を実行するための前記手段が、
前記ビデオデータを符号化するための命令を実行するための手段と、
前記符号化ビデオデータを送信するための手段と
を備える、請求項30に記載のデバイス。
【請求項４１】
1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得させ、
前記現在CTU用の前記取得されたALF情報に少なくとも部分的に基づいて、候補リストを形成させ、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行させる
命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項４２】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの復号を実行させ、実行されたとき、前記1つまたは複数のプロセッサに、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信させ、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４３】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの符号化を実行させ、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成させるさらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４４】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの復号を実行させ、実行されたとき、前記1つまたは複数のプロセッサに、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信させ、
差分情報を受信させ、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加させ、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４５】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの復号を実行させ、実行されたとき、前記1つまたは複数のプロセッサに、
新たなALF情報を決定させ、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成させ、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４６】
前記ALFフィルタ情報が複数のALFフィルタを備え、実行されたとき、前記1つまたは複数のプロセッサに、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択させ、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４７】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項46に記載の非一時的コンピュータ可読記憶媒体。
【請求項４８】
実行されたとき、前記1つまたは複数のプロセッサに、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成させ、
前記フィルタ処理された画像を出力させる
さらなる命令を記憶する、請求項46に記載の非一時的コンピュータ可読記憶媒体。
【請求項４９】
前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、符号化動作の復号ループの一部として、前記候補リストからの前記候補に関連するALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行させるさらなる命令を記憶し、実行されたとき、前記1つまたは複数のプロセッサに、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成させ、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶させる
さらなる命令を記憶する、請求項44に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が本明細書に組み込まれる、2015年2月11日に出願した米国仮特許出願第62/115,067号の利益を主張するものである。
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(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:coding unit)、および/またはコーディングノードと呼ばれることもある。ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャにおける隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライスの中のビデオブロックは、同じピクチャにおける隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャにおける参照サンプルに対する時間予測を使用し得る。ピクチャは、フレームと呼ばれることがあり、参照ピクチャは、参照フレームと呼ばれることがある。
【０００５】
空間予測または時間予測が、コーディングされるべきブロックに対する予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データがピクセル領域から変換領域に変換されて残差変換係数が得られてよく、次いで、残差変換係数が量子化され得る。最初に2次元アレイに配置される量子化変換係数は、変換係数の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のビデオコーディング共同研究部会(JCT-VC)、JCTVC-E603、第5回会合、ジュネーブ、スイス、2011年3月16〜23日
【非特許文献２】T.Yamakage、T.Watanabe、T.Chujoh、C.-Y.Chen、C.-M.Fu、C.-Y.Tsai、Y.-W.Huang、S.Lei、I.S.Chong、M.Karczewicz、T.Ikai、「CE8.a.1: 2-D mergeable syntax」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、JCTVC-G316、ジュネーブ、2011年11月
【非特許文献３】C.-Y.Tsai、C.-Y.Chen、T.Yamakage、I.S.Chong、Y.-W.Huang、C.-M.Fu、T.Itoh、T.Watanabe、T.Chujoh、M.Karczewicz、S.-M.Lei、「Adaptive Loop Filtering for Video Coding」、IEEE Journal of Selected Topics in Signal Processing、Vol.7、no.6、2013年12月
【非特許文献４】B.Bross、W.-J.Han、G.J.Sullivan、J.-R.Ohm、T.Wiegand、「High Efficiency Video Coding (HEVC) text specification draft 6」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、JCTVC-H1003、サンノゼ、カリフォルニア、2012年2月
【非特許文献５】C.-M.Fu、E.Alshina、A.Alshin、Y.-W.Huang、C.-Y.Chen、C.-Y.Tsai、C.-W.Hsu、S.-M.Lei、J.-H.Park、W.-J.Han、「Sample Adaptive Offset in the HEVC Standard」、IEEE Transactions on Circuits and Systems for Video Technology、Vol.22、No.12、2012年12月
【発明の概要】
【課題を解決するための手段】
【０００７】
本開示の態様は、コーディングツリーユニット(CTU:Coding Tree Unit)レベル適応ループフィルタ処理(ALF:adaptive loop filtering)に関する。本明細書で説明する技法は、高効率ビデオコーディング(HEVC)規格に準拠するコーデックまたは任意の将来のビデオコーデックなどの、様々な既存のビデオコーデックのいずれかに適用され得る。
【０００８】
様々な例は、現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得することと、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成することと、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行することとを含む、ビデオデータをコーディングするための方法を含む。
【０００９】
様々な例は、ビデオデータを記憶するように構成されたメモリと、現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得し、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成し、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行するように構成された1つまたは複数のプロセッサとを含む、ビデオデータをコーディングするためのデバイスを含む。
【００１０】
様々な例は、現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するための手段と、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成するための手段と、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行するための手段とを含む、ビデオデータをコーディングするためのデバイスを含む。
【００１１】
様々な例は、実行されたとき、1つまたは複数のプロセッサに、現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得させ、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成させ、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行させる命令を記憶した非一時的コンピュータ可読記憶媒体を含む。
【００１２】
1つまたは複数の例の詳細が、添付図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】アクティビティメトリックおよび方向メトリックの範囲の、フィルタへのマッピングを示す概念図である。
【図３Ａ】例示的なフィルタ形状を示す概念図である。
【図３Ｂ】例示的なフィルタ形状を示す概念図である。
【図３Ｃ】例示的なフィルタ形状を示す概念図である。
【図４】本開示で説明する技法を実施し得る例示的なビデオエンコーダを示すブロック図である。
【図５】本開示で説明する技法を実施し得る例示的なビデオデコーダを示すブロック図である。
【図６】本開示で説明する技法を実施し得る1つまたは複数の方法を示すフロー図である。
【図７】本開示で説明する技法を実施し得る1つまたは複数の方法を示すフロー図である。
【発明を実施するための形態】
【００１４】
ビデオコーディングは、通常、同じピクチャの中のビデオデータのすでにコーディングされたブロック(すなわち、イントラ予測)または異なるピクチャの中のビデオデータのすでにコーディングされたブロック(すなわち、インター予測)のいずれかから、ビデオデータのブロックを予測することを伴う。いくつかの事例では、ビデオエンコーダはまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。ビデオエンコーダは、残差データを変換および量子化し、変換および量子化された残差データを符号化ビットストリームの中でシグナリングする。ビデオデコーダは、残差データを予測ブロックに追加して、予測ブロック単独よりも密接に元のビデオブロックに整合する再構成ビデオブロックを生成する。復号ビデオの品質をさらに改善するために、ビデオデコーダは、再構成ビデオブロックに1つまたは複数のフィルタ処理演算を実行し得る。これらのフィルタ処理演算の例は、デブロッキングフィルタ処理、サンプル適応オフセット(SAO)フィルタ処理、および適応ループフィルタ処理(ALF)を含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され符号化ビデオビットストリームの中で明示的にシグナリングされ得るか、またはビデオデコーダによって暗黙のうちに決定され得るかのいずれかである。
【００１５】
本開示は、ビデオ符号化および/またはビデオ復号プロセスにおいて再構成ビデオデータをフィルタ処理することに関連する技法を説明し、より詳細には、本開示は、ALFに関する技法を説明する。本開示によれば、フィルタ処理はエンコーダにおいて適用され、エンコーダにおいて適用されたフィルタ処理をデコーダが識別できるようにフィルタ情報がビットストリームの中で符号化される。ビデオエンコーダは、いくつかの異なるフィルタ処理シナリオをテストし得、レートひずみ分析に基づいて、再構成されたビデオ品質と圧縮品質との間で所望のトレードオフをもたらすフィルタまたはフィルタのセットを選び得る。ビデオデコーダは、フィルタ情報を含む符号化ビデオデータを受信し、ビデオデータを復号し、フィルタ処理報情報に基づいてフィルタ処理を適用する。このようにして、ビデオデコーダは、ビデオエンコーダにおいて適用された同じフィルタ処理を適用する。
【００１６】
ALFにとってのいくつかの提案は、ピクチャまたはフレームに関連する適合パラメータセット(APS)またはピクチャパラメータセット(PPS)の中でフィルタのグループがシグナリングされる、ピクチャベースALF手法を含む。フィルタのセットの中からどのフィルタがどのピクセルに適用されるのかは、ブロック適応(BA)分類または領域適応(RA)分類のいずれかを使用して決定され得る。BA分類の一例では、アクティビティメトリック(たとえば、ラプラシアンアクティビティ)が、ピクセルのブロックに対して決定され得る。決定されたアクティビティメトリックが下降する範囲に基づいて、ブロックに対してフィルタが選択され得る。アクティビティメトリック値の範囲は、関連するフィルタを有し得る。したがって、ブロック用のフィルタは、ブロックに対するアクティビティメトリックがそれとともに下降する範囲に基づいて選択され得る。BA分類のいくつかの例では、2つ以上のメトリックが使用され得る。たとえば、ラプラシアンアクティビティの測度が第1のメトリックとして使用されてよく、方向ベースメトリックが第2のメトリックとして使用されてよく、フィルタは、2つのメトリックの範囲に基づいて選択され得る。BA分類を使用してフィルタを適用する態様は、以下でより詳細に説明される。
【００１７】
RA分類の一例では、ピクチャまたはフレームは、定数個の領域(たとえば、16個の領域)に分割されてよく、各領域は関連するフィルタを有し得る。領域の中の各CUは、領域に関連するフィルタを使用してCUがフィルタ処理されるべきか、それともCUがフィルタ処理されるべきでないかを示す、関連するオン/オフフラグを有し得る。BA分類またはRA分類を使用してピクチャまたはフレームがフィルタ処理されるべきかどうかは、たとえば、APSまたはSPSの中でシグナリングされ得る。RA分類は、ビデオデコーダがブロックに対するアクティビティメトリックを計算する必要性を排除するので、RA分類を使用することは、概して、BA分類を使用することに比べてビデオコーダの計算量を低減する。RA分類を使用してフィルタを適用する態様は、以下でより詳細に説明される。
【００１８】
以下でより詳細に説明するように、本開示は、コーディングツリーユニット(CTU)レベルにおいてALFを適用するための技法を説明する。本開示で説明する様々な技法は、ALF情報が符号化ビットストリームの中でどのようにシグナリングされるのか、ピクセルまたはピクセルのグループに対してALFフィルタがどのように選択されるのか、およびピクセルまたはピクセルのグループにALFフィルタがどのように適用されるのかに関する。本開示の技法のうちのいくつかは、ビデオ符号化またはビデオ復号の特定の例に関して説明されることがある。しかしながら、明示的にそれとは反対に述べられない限り、技法はまた、ビデオ符号化またはビデオ復号としての他のものに適用可能であり得ることを理解されたい。一例として、ビデオエンコーダは、通常、ビデオデータをどのように符号化するのかを決定することの一部として、ビデオ復号動作を実行する。したがって、ビデオ復号技法は、ビデオエンコーダによって実行されてよい。その上、多くのコーディング動作は、ビデオエンコーダによって実行される同じ動作または場合によっては逆の動作を、ビデオデコーダが実行することに依拠する。したがって、ビデオデータを復号することの一部として、ビデオデコーダは、ビデオデータを符号化するために使用される同じ動作を実行し得る。
【００１９】
図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は、ハードドライブ、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は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどの、ソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレス用途および/またはワイヤード用途に適用され得る。
【００２４】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ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)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part 10、アドバンストビデオコーディング(AVC)と呼ばれるITU-T H.264規格、またはそのような規格の拡張などの、他のプロプライエタリな規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG-2およびITU-T H.263を含む。
【００２８】
本開示の技法は、説明を簡単にするためにHEVC用語を利用することがある。しかしながら、本開示の技法がHEVCに限定されることが仮定されるべきでなく、事実上、本開示の技法がHEVCの後継規格およびその拡張において実施され得ることが明示的に企図される。
【００２９】
図1に示さないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、好適なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでもよい。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００３０】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。技法がソフトウェアで部分的に実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために、1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのいずれもが、それぞれのデバイスの中で複合エンコーダ/デコーダ(コーデック)の一部として統合されてもよい。
【００３１】
上記で紹介したように、JCT-VCは、HEVC規格の開発を最近確定している。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいた。HMは、たとえば、ITU-T H.264/AVCによる既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加の機能を仮定する。たとえば、H.264は、9個のイントラ予測符号化モードを提供するが、HMは、35個ものイントラ予測符号化モードを提供し得る。
【００３２】
HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。ピクチャは、SL、SCb、およびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書で「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであってよく、ルーマサンプルのアレイだけを含んでよい。
【００３３】
ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックと概して類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含み得る。
【００３４】
コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロック上で4分木区分を再帰的に実行してコーディングツリーブロックをコーディングブロックに分割し得、したがって、「コーディングツリーユニット」という名前である。コーディングブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、CUは、単一のコーディングブロック、およびコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。
【００３５】
ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)のブロックである。CUの予測ユニット(PU:prediction unit)は、ルーマサンプルの予測ブロック、クロマサンプルの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に対して予測ルーマブロック、予測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は、4分木区分を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU:transform unit)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連し得る。TUに関連するルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックのサンプルを変換するために使用されるシンタックス構造を備え得る。
【００３９】
ビデオエンコーダ20は、1つまたは複数の変換をTUのルーマ変換ブロックに適用して、TUに対するルーマ係数ブロックを生成し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、1つまたは複数の変換をTUのCb変換ブロックに適用して、TUに対するCb係数ブロックを生成し得る。ビデオエンコーダ20は、1つまたは複数の変換をTUのCr変換ブロックに適用して、TUに対するCr係数ブロックを生成し得る。
【００４０】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、概して、変換係数が量子化されて、場合によっては、変換係数を表すために使用されるデータの量を低減し、さらなる圧縮をもたらすプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に、コンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行し得る。
【００４１】
ビデオエンコーダ20は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含む、ビットストリームを出力し得る。ビットストリームは、NALユニットのシーケンスを備え得る。NALユニットは、NALユニットの中のデータのタイプの表示と、必要に応じてエミュレーション防止ビットとともに組み入れられたRBSPの形態でそのデータを含むバイトとを含む、シンタックス構造である。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をカプセル化してよく、以下同様である。ビデオコーディングデータ用のRBSP(パラメータセット用およびSEIメッセージ用のRBSPではなく)をカプセル化するNALユニットは、VCL NALユニットと呼ばれることがある。
【００４３】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームを構文解析して、ビットストリームからシンタックス要素を取得し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。加えて、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックを逆量子化し得る。ビデオデコーダ30は、係数ブロックに対して逆変換を実行して、現在CUのTUに関連する変換ブロックを再構成し得る。ビデオデコーダ30は、現在CUのPUに対する予測ブロックのサンプルを、現在CUのTUの変換ブロックの対応するサンプルに追加することによって、現在CUのコーディングブロックを再構成し得る。ピクチャのCUごとにコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成し得る。
【００４４】
ALFは、HEVCにおいて提案され様々なワーキングドラフトおよびテストモデルソフトウェア、すなわち、HEVCテストモデル(または、「HM」)に含まれたが、ALFは、HEVCの最終バージョンに含まれていない。関連技術の中でも、HEVCテストモデルバージョンHM-3.0におけるALF設計は、最も効率的な設計として主張された。(その内容全体が参照により本明細書に組み込まれる、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のビデオコーディング共同研究部会(JCT-VC)、JCTVC-E603、第5回会合、ジュネーブ、スイス、2011年3月16〜23日、以下では「ワーキングドラフト3」として参照する。)したがって、HM-3.0からのALF設計を本明細書で紹介する。
【００４５】
HM-3.0におけるALFは、ピクチャレベル最適化に基づく。すなわち、フレーム全体がコーディングされた後、ALF係数が導出される。ルーマ成分に対して2つのモード、すなわち、ブロックベース適合(BA)および領域ベース適合(RA)があった。これらの2つのモードは、同じフィルタ形状、フィルタ処理演算、ならびにシンタックス要素を共有する。それらの間の唯一の差は、分類方法である。
【００４６】
BAでの分類は、ブロックレベルにおけるものである。ピクチャの中の各4×4ルーマブロックは、1次元(1D)ラプラシアン方向(3つまでの方向)および2次元(2D)ラプラシアンアクティビティ(5つまでのアクティビティ値)に基づいてグループインデックスが割り当てられる。方向Dirbおよび非量子化アクティビティActbの計算は、下の式(1)〜式(4)に示され、ただし、
【００４７】
【数１】
2018509074.tif 000003
【００４８】
は、4×4ブロックの左上ピクセル位置に対する相対座標(i,j)とともに再構成ピクセルを示し、Vi,jおよびHi,jは、(i,j)に位置するピクセルの垂直勾配および水平勾配の絶対値である。したがって、方向Dirbは、4×4ブロックにおける垂直勾配および水平勾配の絶対値を比較することによって生成され、Actbは、4×4ブロックにおける両方の方向の勾配の総和である。Actbは、ワーキングドラフト3に記載されるように、両端値を含む0〜4としての範囲にさらに量子化される。
【００４９】
【数２】
2018509074.tif 000004
【００５０】
したがって、ピクチャにおいて合計15(5×3)個のグループが分類され、各グループは、グループインデックス値に関連付けられる。
【００５１】
図2は、BA分類のために使用されるこれらの15個のグループを示す概念図である。図2の例では、フィルタが、アクティビティメトリックに対する値の範囲(すなわち、範囲0〜範囲4)および方向メトリックにマッピングされる。図2における方向メトリックは、式3からの上記の0、1、および2としての値に対応し得る、方向なし、水平、および垂直としての値を有するものとして示される。図2の特定の例は、15個のカテゴリーにマッピングされるものとして、異なる6個のフィルタ(すなわち、フィルタ1、フィルタ2...フィルタ6)を示すが、より多数またはより少数のフィルタが同様に使用されてよい。図2はグループ221〜235として識別される15個のグループを有する例を示すが、より多数またはより少数のグループも使用されてよい。たとえば、アクティビティメトリックに対する5つの範囲の代わりに、より多数またはより少数の範囲が使用されてよく、より多くのグループをもたらす。追加として、3つだけの方向の代わりに、追加の方向(たとえば、45度方向および135度方向)も使用されてよい。
【００５２】
以下でより詳細に説明するように、各グループに関連するフィルタは、1つまたは複数のマージフラグを使用してシグナリングされ得る。1次元グループマージングの場合、グループが前のグループと同じフィルタにマッピングされているかどうかを示すために単一のフラグが送られ得る。2次元マージングの場合、グループが第1の隣接ブロック(たとえば、水平ネイバーまたは垂直ネイバーのうちの1つ)と同じフィルタにマッピングされているかどうかを示すために第1のフラグが送られ得、そのフラグが偽である場合、グループが第2の隣接ブロック(たとえば、前記水平ネイバーまたは垂直ネイバーのうち他方のもの)にマッピングされているかどうかを示すために第2のフラグが送られ得る。
【００５３】
RA分類の場合、各ピクチャは、最初に16(4×4)個のCTUが整列している領域に均等に分割され得、それらの各々は、ピクチャの幅および高さの1/4の幅および1/4の高さを有する、ピクチャのタイルである。領域内のピクセルは、同じグループの中にあるものと見なされてよい。
【００５４】
シグナリングコストおよび関連する帯域幅消費を温存するために、隣接するインデックス値を有する任意の2つのグループは、すなわち、2つのグループがALFパラメータの同じセットを使用するようにマージされ得る。グループは、1つのグループだけが残されるまで、レートひずみコストに基づいて反復的にマージされ得る。対応するモードがBAであるのか、それともRAであるのかにかかわらず、グループは、1Dベクトルに再配置される(3×5の2Dアクティビティおよび方向アレイがBAにおける1Dベクトルに再配置されるか、または4×4タイルが1Dベクトルに再配置される)。1Dベクトルの右の要素は、左の要素の中のそれらのALFパラメータを単に再使用してよい。ワーキングドラフト3のHM-3における1Dマージングのためのグループ化情報が、下のTable 1(表1)のイタリック体の部分に従ってシグナリングされる。
【００５５】
【表１】
2018509074.tif 000005
【００５６】
(上のTable 1(表1)のシンタックスに対して)関連するセマンティクスは次の通りである。
alf_no_filters_minus1+1は、現在スライス用のフィルタセットの数を規定する。
alf_start_second_filterは、alf_no_filters_minus1が1に等しいとき、第2のフィルタが適用されるルーマサンプルの変動インデックスを規定する。
alf_filter_pattern[i]は、alf_no_filters_minus1が1よりも大きいとき、ルーマサンプルの第iの変動インデックスに対応するフィルタインデックスアレイを規定する。フィルタセット数AlfNumFiltersは、次のように導出される。
-  alf_no_filters_minus1が2よりも小さい場合、
AlfNumFilters=alf_no_filters_minus1+1 (7-15)。
-  そうでない場合(alf_no_filters_minus1が2よりも大きい)
AlfNumFilters=Σialf_filter_pattern[i]、ただしi=0...15 (7-16)。
【００５７】
対応するモードがBAであるのか、それともRAであるのかにかかわらず、グループは、やはり2Dアレイの中にある。2Dアレイの1つまたは複数の任意の要素は、マージされた1つのグループに割り当てられてよく、したがって、ALF係数の1つのセットだけがシグナリングされる。その内容全体が参照により本明細書に組み込まれる、T.Yamakage、T.Watanabe、T.Chujoh、C.-Y.Chen、C.-M.Fu、C.-Y.Tsai、Y.-W.Huang、S.Lei、I.S.Chong、M.Karczewicz、T.Ikai、「CE8.a.1: 2-D mergeable syntax」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、JCTVC-G316、ジュネーブ、2011年11月(以下ではJCTVC-G316)において、2Dマージングベースの方法が提案されていることにも留意されたい。下のTable 2(表2)のイタリック体の部分に示すように、提案された方法は、フレキシブルな2Dマージングをサポートするために、著しいシグナリングオーバーヘッドを必要とする。
【００５８】
【表２】
2018509074.tif 000006
【００５９】
下のセマンティクスは、Table 2(表2)のイタリック体の部分に対応する。
alf_region_idx[i]は、適応ループフィルタに対するフィルタインデックスを規定する。
prev_alf_region_pred_flag[i]およびrem_alf_region_pred_idx[i]は、適応ループフィルタに対する係数インデックスCoeffIdxを規定する。prev_alf_region_pred_flag[i]が0に等しいとき、alf_region_idx[i]は、隣接するクラスのインデックスから推定される。
アレイCoeffIdxは、次のように導出される。
CoeffIdx[0]が、0に設定される。
値alf_curr_filtersが、1に設定される。
1〜AlfNumRegions-1としての範囲の中のiごとに、以下のステップが処理される。
alf_no_filters_minus1が0である場合、CoeffIdx[i]は0に設定される。
そうでなく、alf_no_filters_minus1が1である場合、CoeffIdx[i]はalf_region_idx[i]であるように設定される。
そうでなく、alf_no_filters_minus1が1よりも大きい場合、CoeffIdx[i]は以下のステップのように導出される。
alf_remain_regionsの値は、AlfNumRegions-iとして導出される。
alf_remain_filtersの値は、AlfNumFilters-alf_curr_filtersとして導出される。
remain_fixed_regionの値は、alf_remain_regions-alf_remain_filtersとして導出される。
remain_fixed_regionが0である場合、CoeffIdx[i]はalf_curr_filtersの値であるものと推定される。
そうでなく、prev_alf_region_pred_flag[i]が1である場合、CoeffIdx[i]は予測値mpm_region_idx[i]に推定される。
そうでなく、rem_alf_region_pred_idx[i]がmpm_region_idx[i]よりも小さい場合、CoeffIdx[i]はprev_alf_region_pred_flag[i]であるように設定される。
そうでない場合、CoeffIdx[i]はrem_alf_region_pred_idx[i]であるように設定される。
CoeffIdx[i]がalf_curr_filtersに等しい場合、alf_curr_filtersは1だけインクリメントされる。
mpm_region_idx[i]は、次のように導出される。
alf_remain_regionsがalf_remain_filters>>1よりも大きい場合、mpm_region_idx[i]はalf_curr_filtersとして導出される。
そうでなく、(i%5)が0でありalf_region_adaptation_flagが0である場合、mpm_region_idx[i]はCoeffIdx[i-5]として導出される。
そうでない場合、mpm_region_idx[i]はCoeffIdx[i-1]として導出される。
【００６０】
グループごとに(可能なマージングの後)、ALF係数のセットがシグナリングされる。3つまでの円対称フィルタ形状(図3A〜図3Cに示すような)がサポートされる。より詳細には、図3A〜図3Cが、3つのALFフィルタ形状、すなわち、5×5菱形(たとえば、図3A)、7×7菱形(たとえば、図3B)、および短縮された9×9菱形(たとえば、図3C)を示す。追加として、現在CUにALFが適用されるかどうかを示すために、CUレベルにおいてフラグがシグナリングされる(ワーキングドラフト3のALF設計の通り)。
【００６１】
ブロッキネスを低減かつ/またはビデオ品質を他の方法で改善することができるビデオブロックフィルタ処理の望ましいレベルを促進するように、フィルタ係数(時々、フィルタタップと呼ばれる)が定義または選択され得る。フィルタ係数のセットは、たとえば、ビデオブロックのエッジまたはビデオブロック内の他の位置に沿って、フィルタ処理がどのように適用されるのかを定義し得る。異なるフィルタ係数は、ビデオブロックの異なるピクセルに関して異なるレベルのフィルタ処理をもたらし得る。フィルタ処理は、たとえば、不要なアーティファクトを排除する助けとなるために、隣接するピクセル値の強度の差を平滑化または先鋭化し得る。
【００６２】
本開示では、「フィルタ」という用語は、概して、フィルタ係数のセットを指す。たとえば、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形状、他の幾何学的形状、または数多くの他の形状もしくは構成を含む、非矩形形状を採り得る。図3A〜図3Cにおける例は菱形形状であるが、他の形状が使用されてよい。多くの一般のケースでは、フィルタの形状にかかわらず、フィルタマスクにおける中心ピクセルが、フィルタ処理されるピクセルである。他の例では、フィルタ処理されるピクセルが、フィルタマスクの中心からオフセットされてよい。
【００６３】
ピクチャの中のクロマ成分の両方に対して、ALF係数の1つの単一セットが分類を伴わずに適用される。5×5菱形のフィルタ形状が常に使用される。デコーダ側において、各ピクセルサンプル
【００６４】
【数３】
2018509074.tif 000007
【００６５】
は、下の式(5)に示すような計算に基づいてI'i,jにフィルタ処理され、ただし、Lはフィルタ長を示し、fm,nはフィルタ係数を表し、oはフィルタオフセットまたはDC係数を示す。
【００６６】
【数４】
2018509074.tif 000008
【００６７】
HM-3.0がリリースされた後、ALFは、より少ない複雑さおよびより良好なシグナリングの観点からさらに改善された。さらに、HM-3におけるピクチャレベルALFによって導入されるコーディングレイテンシを低減するために、CTUレベルシンタックスも提案された。その内容全体が参照により本明細書に組み込まれる、C.-Y.Tsai、C.-Y.Chen、T.Yamakage、I.S.Chong、Y.-W.Huang、C.-M.Fu、T.Itoh、T.Watanabe、T.Chujoh、M.Karczewicz、S.-M.Lei、「Adaptive Loop Filtering for Video Coding」、IEEE Journal of Selected Topics in Signal Processing、Vol.7、no.6、2013年12月に、さらなる情報が見出され得る。
【００６８】
提案されたCTUレベルALFでは、ALFパラメータが、明示的にシグナリングされ得るか、または空間隣接CTUから継承され得る。明示的にシグナリングされるとき、T個までの(ただし、Tは特定の値、たとえば、15に設定される)ALFフィルタが、現在CTUに対してシグナリングされる。継承されるとき、ALFフィルタが(たとえば、左または上の)隣接CTUから継承されるかどうかを示すために、インジケータが送られる。現在CTUのALFフィルタが(たとえば、左または上の)隣接CTUから継承されるものとして示されるとき、隣接CTUのすべてのALFフィルタが現在CTUのフィルタであるようにコピーされ、それ以上のALFフィルタはシグナリングされない。HM-6において、ALFパラメータの空間的な継承をより良好にサポートするために、フレキシブルなシンタックスが採用されており、たとえば、「左からのコピー」をサポートするためにランレングスコーディングが使用される。その内容全体が参照により本明細書に組み込まれる、B.Bross、W.-J.Han、G.J.Sullivan、J.-R.Ohm、T.Wiegand、「High Efficiency Video Coding (HEVC) text specification draft 6」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、JCTVC-H1003、サンノゼ、カリフォルニア、2012年2月(以下では「ワーキングドラフト6」)に、HM-6のこれらの態様のさらなる詳細が見出され得る。
【００６９】
ALFに関連する上記で説明した技法は、コーディング効率を著しく改善し得る。しかしながら、上記で説明したもののような技法は、依然として1つまたは複数の潜在的な問題または限定を提示し得る。たとえば、BAベースの分類が使用されるのか、それともRAベースの分類が使用されるのかにかかわらず、HM-3.0におけるALF方法は、複数のグループのためのALFパラメータを導出するために、ピクチャレベル最適化を必要とし得る。このことは、フレーム全体がコーディングされるまでALF係数が導出されるので、ピクチャ内の潜在的に望ましくない符号化レイテンシにつながる。その上、ALF係数を導出するために、ピクチャ全体は複数回ロードされることを必要とし、そのことは、特にハードウェア実装にとって、メモリ帯域幅要件をかなり高める。
【００７０】
本明細書で説明する技法は、ワーキングドラフト6におけるような上の黒丸(1)において説明した潜在的な問題を避けるために、ALFをピクチャレベルではなくCTUレベルに拡張し得る。しかしながら、CTUレベルにおいてALFパラメータを最適化およびシグナリングするいくつかの技法は、ピクチャレベルにおけるALFシグナリングおよび最適化よりもずっと効率的でないことがある。
【００７１】
様々な例では、ALF技法の態様は、CTUレベルにおいて(たとえば、ビデオエンコーダ20のALFユニット65によって)適用され、提案された方法のうちの1つまたは複数を用いてCTUデータの一部としてシグナリングされる。様々な例では、ALFユニット65は、HEVCにおける動きベクトルコーディングのマージモードと同様の方法で、CTUの空間隣接CTUおよび/または時間隣接CTUからCTUのALF情報をコピーし得る。この場合、隣接CTUからのALFパラメータの候補リストが(たとえば、ALFユニット65によって)構成され、候補リストへのインデックスがシグナリングされてALFパラメータを決定する。上述の候補リストの各エントリは、現在CTU用の適応ループフィルタ処理を(たとえば、ALFユニット65によって)実行するために使用されるALFパラメータの完全セットである。
【００７２】
候補リストの中のエントリの数は、特定の数のエントリに限定されない。いくつかの例では、ALFパラメータの候補リストの中のエントリの最大数は、固定値であるように事前定義されてよく、またはビットストリームの中でシグナリングされてよく、または、たとえば、動きマージ候補の数と同じに設定されるシグナリングされた他の情報に依存する変量(たとえば、それに依存する変数)であってもよい。そのような情報は、ピクチャパラメータセット(PPS)、スライスヘッダ、シーケンスパラメータセット(SPS)、または高レベルシンタックスを含む他のレベルもしくは場所の中に存在し得る。
【００７３】
一例では、5つまでの候補が使用され得る。しかしながら、様々な例では、5つよりも少数または多数の候補を含む、異なる数の候補が使用されてよい。一例では、2つの空間的候補(左のCTUおよび上のCTU)および3つの時間的候補が採用される。
【００７４】
候補リストに対する候補のソースは、特定のソースに限定されない。様々な例では、候補リストに対する候補のソースは、空間隣接CTUおよび/または時間隣接CTUを含み得る。様々な例では、候補を提供するためにどのソースが使用され得るのか、また候補リスト上のいくつの候補が所与の候補リストに対して使用され得るのか(最大数)または使用されなければならないのか(最小数)に、異なる規則が適用される。
【００７５】
いくつかの例では、イントラスライスに対して空間的候補だけが許容される。いくつかの例では、1つまたは複数の時間的候補は、1つまたは複数の参照ピクチャの中のコロケートCTUである。いくつかの例では、時間的候補は、同じスライスタイプおよび/または類似の(たとえば、同じ)QP範囲を有する参照ピクチャの中にあるように制限される。いくつかの例では、参照ピクチャの中のコロケートCTUに隣接する右下、左上、上、左のCTUなどの、参照ピクチャの中のコロケートCTU以外のCTUも使用され得る。
【００７６】
様々な例では、マージリストを構成するとき、時間的候補が、その時間的候補が関連付けられる参照インデックスの順序に基づいて挿入される。
【００７７】
一例では、CTUサイズが2N×2Nであるものと想定すると、現在CTUはM×Mサブブロックとして等しく分割され、ただし、2NはMの乗算(すなわち、倍数)である。M×Mサブブロックごとに、このサブブロックの動きベクトルによって位置を特定された1つまたは複数の時間的候補が、ALF情報を導出するために使用され得る。様々な例では、MVを用いて時間的候補の位置を特定するとき、MVによって指しているブロックの左上コーナーをカバーするCTUが、時間的候補として使用され得る。代替的に、MVによって指しているブロックの中心点をカバーするCTUが、時間的候補として使用されてもよい。様々な例では、サブブロックに対して双予測が使用されるとき、時間的候補の位置を特定するためにMV0だけが使用される。いくつかの例では、時間的候補の位置を特定するためにMV1だけが使用される。代替的に、時間的候補の位置を特定するためにどのMVが使用されるのかが、SPS、PPS、またはスライスヘッダの中などのビットストリームの中でシグナリングされる。一例では、Mは8に設定される。別の例では、Mは4に設定される。別の例では、Mは1に設定される。
【００７８】
ALFパラメータの候補リストの中のエントリの最大数は、固定値であるように事前定義されてよく、またはビットストリームの中でシグナリングされてよく、または、たとえば、動きマージ候補の数と同じに設定されるシグナリングされた他の情報に依存する変量(たとえば、それに依存する変数)であってもよい。そのような情報は、ピクチャパラメータセット(PPS)、スライスヘッダ、シーケンスパラメータセット(SPS)、または高レベルシンタックスを含む他のレベルもしくは場所の中に存在し得る。
【００７９】
いくつかの例では、空間ネイバー/時間ネイバーからの2つの候補だけが、最終的にリストの中に存在し得る。いくつかの例では、現在CTUの中のブロックのうちの少なくとも1つがインター予測モードを用いてコーディングされる場合のみ時間的候補が許容され得る。いくつかの例では、イントラコード化スライスのCTUに対して、時間的候補が許容され得ない。いくつかの例では、イントラコード化スライスのCTUに対して、時間的候補が許容され得る。いくつかの例では、時間動きベクトル予測がイネーブルされている場合のみ時間的候補が許容され得る。いくつかの例では、スライスヘッダの中でシグナリングされ得る固定または専用の参照ピクチャからのみ、時間的候補が許容され得る。代替的に(または、追加として)、そのようなピクチャは、時間動きベクトル予測のために使用されるピクチャであるようにさらに制約され得る。
【００８０】
様々な例では、時間的候補が許容されるか否かという表示は、高レベルシンタックス、たとえば、PPS、スライスヘッダ、SPS、または高レベルシンタックスを含む他のレベル/場所としてシグナリングされる。
【００８１】
動きベクトル予測におけるものと類似して、異なるネイバーからの同じ内容(たとえば、ALFパラメータ)を含むエントリは、リストの中で重複している必要がない。したがって、いくつかの例では、重複を除くためのプルーニングプロセスがある。空間的または時間的候補は、事前定義された順序でリストに(プルーニングを用いて、または用いずに)追加され得る。代替的に(または、追加として)、そのような順序は、現在CTUの中の1つまたは複数のブロックがあるやり方で時間予測されるかどうかに依存し得る。たとえば、いくつかのブロックに時間動き予測が適用される場合、時間的候補は、リストのより早い位置に置かれ得る。CTU全体の復号の後にALFが行われるとき、時間動き予測を伴うエリアのパーセンテージが、リストの中での時間的候補の相対順序/相対位置を決定するために使用され得る。
【００８２】
いくつかの例では、時間的候補が許容されるとき、CTU内のコード化ブロックの参照インデックスに基づいて、1つの時間的候補だけが参照ピクチャから選ばれ得る。たとえば、最も頻繁に使用されるピクチャが選ばれてよい。代替的に(または、追加的に)、コロケート時間CTUだけが許容される場合、現在CTUの領域に対してコロケートされた領域の外側のピクセルを指している動きベクトルは、頻度計算のための考慮に入れられない。
【００８３】
様々な例では、CTUのALF情報は、空間隣接CTUおよび/または時間隣接CTUから予測され得る。この場合、予測子を識別するためのインデックスに加えて差分情報だけがシグナリングされる。いくつかの例では、空間隣接CTUおよび/または時間隣接CTUは、上記で説明したものと同じ方法のいずれかで定義される。
【００８４】
様々な例では、サンプル適応オフセット(SAO)パラメータがALFパラメータの一部と見なされてよいので(たとえば、CTUのALFがDC係数だけを有する特別なケース)、SAO情報も、ALFパラメータと一緒に組み合わせられてよい。追加として、ALFのシグナリングおよび予測のための上記の方法は、ALFおよびSAOパラメータに対して一緒に適用され得る。代替的に、SAOおよびALFパラメータは、独立に、ただし同じマージメカニズムを共有してシグナリングされ得る。この場合、上記の方法は、ALFパラメータに関して説明したように、SAOパラメータのシグナリングのための改善された方法として適用され得る。
【００８５】
様々な例では、(対称または非対称などの)フィルタ対称性情報が、CTUレベルにおいてシグナリングされ得る。代替的に、フィルタ対称性情報は、フィルタのセットごとにシグナリングされてもよい。追加として、ビットストリームの関連する部分において非対称フィルタが使用されるかどうかを示すためのフラグが、SPS/PPS/スライスヘッダの中でシグナリングされ得る。
【００８６】
様々な例では、フィルタ係数に対する量子化情報が、CTUレベルにおいて、またはフィルタのセットごとにシグナリングされ得る。追加として、ビットストリームの関連する部分(portion)/部分(part)の中で量子化情報がシグナリングされるかどうかを示すために、SPS/PPS/スライスヘッダの中のデータ(たとえば、インジケータ)がシグナリングされ得る。いくつかの例では、量子化情報は、構文解析されたフィルタ係数からフィルタ係数の整数値を生成するために左シフトされるべきビット数であり得る。いくつかの例では、ビットストリームの中でのフィルタ係数量子化情報の(ビデオエンコーダ20による)明示的なシグナリングの代わりに、フィルタ係数量子化情報は、ALF係数に基づいて(たとえば、ビデオデコーダ30のALFユニット91によって)暗黙のうちに導出される。いくつかの例では、量子化ビット数は、すべてのalf重み付け係数の加算に基づいて(たとえば、ビデオデコーダ30のALFユニット91によって)計算される。いくつかの例では、非DCのALF係数の総和は、最初に2nに丸められ、たとえば、総和126は128(27、ここでn=7)に丸められる。次いで、量子化ビット数が、8とnとの間の差分として(たとえば、ビデオデコーダ30のALFユニット91によって)導出される。前の例では、n=7である。したがって、量子化ビット数は1である。
【００８７】
様々な例では、フィルタに対して、フィルタ係数がDC係数だけを有するかどうか、したがって、フィルタがオフセット値だけを含むかどうかについての情報が、(たとえば、ビデオエンコーダ20によって)シグナリングされる。この場合、他のフィルタ係数はシグナリングされず、DCがシグナリングされる。いくつかの例では、フィルタに対してDC係数だけが存在し他の係数が存在しないケースでは、ピクセル単位、すなわち「単位ピクセル値」でDC係数がシグナリングされる。いくつかの例では、DCおよび他のフィルタ係数は、より高精度、たとえば、単位ピクセル値の1/256でシグナリングされる(この場合、「1」が値256に正規化される)。
【００８８】
様々な例では、フィルタに対して、(図2Eのかなり左において示した5×5菱形フィルタにおける係数C6などの)中心フィルタ係数は、他のフィルタ係数と異なってシグナリングされる。たとえば、他の係数は明示的にシグナリングされるが、中心係数は、中心係数値とデフォルト値との間の差分だけがコーディングされることを意味する差分コーディングされる。デフォルト値は、それが1となるように正規化されるように選ばれる。たとえば、浮動値1.0が整数256によって表されるように係数が量子化される場合、係数は[F0,F1..,Fn-1]/256である。いくつかの例では、中心係数(たとえば、Fn-1として示され得る)は、以下のようにコーディングされる。
・ビデオエンコーダ20において、v=Fn-1-256であり、vはさらにコーディングされる。ビデオデコーダ30がvの値を構文解析し得、Fn-1はv+256であるように(たとえば、ALFユニット91によって)導出される。
・代替的に、ビデオエンコーダ20において、v=Fn-1-(256-sum(F0,F1..,Fn-2))であり、vはさらにコーディングされる。ビデオデコーダ30がvの値を構文解析し得、Fn-1は(v+(256-sum(F0,F1..,Fn-2)))であるように(たとえば、ALFユニット91によって)導出される。
【００８９】
様々な例では、CTUの中で複数のグループが使用されるケースにおいて、1次元グループマージングの代わりに2次元グループマージングが使用され得る。一実装形態では、任意の2つのグループが1つにマージされることを許容する代わりに、水平または垂直の隣接されたグループだけがマージされ得る。一例として、図2を参照すると、グループがそれらの順序識別子に基づいて送信される(たとえば、最初にグループ221、次いでグループ222など)場合、グループ228は、グループ227またはグループ223とマージされ得る。それらのグループがまだシグナリングされていないので、グループ228は、グループ229〜235のいずれともマージされ得ない。さらに、それらのグループが水平ネイバーまたは垂直ネイバーでないので、グループ228は、グループ221、222、または225〜227とマージされ得ない。
【００９０】
いくつかの例では、マージした後、マージされたグループごとにALFパラメータの1つのセットだけがシグナリングされる。BA分類が適用される場合、CTUの中のピクセルは、いくつかのグループに分類される。グループインデックスは、2Dマップの中で順序付けられる。2Dグループマージングの場合、送信順序が左上位置から始まることを想定して、グループは、2Dマップにおけるその左または上のネイバーにマージし得る。この実装形態のさらなる詳細が以下で説明される。
【００９１】
様々な例では、1次元グループマージングが、やはりCTU内で使用され得る。しかしながら、(アクティビティおよび方向としての)2次元特性は、様々な方法で1次元グループインデックスに変換され得る。初期フィルタ/グループインデックスは、2つの隣接するフィルタ(すなわち、隣接するインデックスを有する2つのフィルタ)が隣接するアクティビティまたは隣接する方向のいずれかを有しなければならないという原理に従って設計される。フィルタは、その隣接するネイバーにマージしさえすればよい。DirbおよびActbを、それぞれ、ブロックbの方向およびアクティビティとして示し、Dirbが0〜(M-1)にわたることができ、Actbが0〜(N-1)にわたることができ、すなわち、多くてM個の方向およびN個のアクティビティがあると想定する。次いで、ブロックbのグループインデックスは、単なるDirb*N+Actbの代わりにDirb*N+(Dirb%2==1?N-1-Actb:Actb)として計算される。別の例では、ブロックbのグループインデックスは、Actb*M+(Actb%2==1?M-1-Dirb:Dirb)として計算される。
【００９２】
様々な例では、ALFがイネーブルされており、CTUが大きいサイズ、たとえば、256×256を有するとき、CU/PUサイズは、64×64などの第2のサイズよりも大きくないようにさらに制約され得る。したがって、第2のサイズ(たとえば、64×64)よりも大きいサイズに相当するノードのsplitting_flagシンタックス要素は、1としての値に設定されなければならない。ノードが第2のサイズよりも大きいサイズに相当するケースでは、フラグは1であるようにシグナリングされ得るか、またはそのようなフラグのシグナリングが回避されてよく、この場合、フラグは1であるように導出される。
【００９３】
本明細書で説明する様々な例は、ピクセル/ブロック分類のための様々な方法を利用する。いくつかの例では、分類は、再構成ピクセル値に基づき得る。様々な例では、いくつかの数の方向を示すために、CTUのALFコーディングモードがCTUレベルにおいてシグナリングされる。ピクセル勾配は、方向に沿って計算される。次いで、ピクセルが勾配に従って分類される。
【００９４】
いくつかの例では、フィルタのグループの中からフィルタを選択するために使用される分類は、CUコーディングモード、量子化、または変換などの、前にコーディングされた情報に基づき得る。いくつかの例では、CTU内で、同じCUコーディングモードを有するか、または同じCUサイズを有するか、または同じ変換情報(たとえば、サイズ、タイプ)を有するブロックの中のピクセルは、ピクセルが同じフィルタ(たとえば、同じサイズ、同じ形状、同じ係数など)を使用してフィルタ処理されることを意味する同じカテゴリーとして分類される。様々な分類は、たとえば、図2に対して説明した分類技法を置き換えてよく、またはそのような分類技法とともに使用されてもよい。
【００９５】
いくつかの例では、いくつかのCTU ALFルーマモードおよびクロマモードが、SPS、PPS、またはスライスヘッダの中などのビットストリームの中で、別個にシグナリングされ得る。様々な例では、CTU ALFルーマモードおよびクロマモードの数は同じであり得、一方の数だけがSPS、PPS、またはスライスヘッダの中などのビットストリームの中でシグナリングされる。このコンテキストでは、ルーマモードおよびクロマモードは、ピクセル分類を決定するためのモードを指す。いくつかの利用可能なモードが、たとえば、より高位のレベル(たとえば、SPS、PPS、スライスヘッダなど)においてシグナリングされてよく、実際のモードは、CTUレベルにおいてシグナリングされてよい。分類モードの例は、アクティビティ-方向モード、CUコーディングモードベース分類モード、変換情報ベース分類モード、および他のそのような分類モードを含む。いくつかの実装形態では、SAOが同様に分類モードと見なされてよい。
【００９６】
様々な例では、パディングが利用される。いくつかの例では、分類またはフィルタ処理プロセスのために、CTU、またはCTU行、またはスライス、またはタイル、またはピクチャ境界の外側のピクセルが必要とされ、それらのピクセルが利用可能でないとき、補間プロセスにおいて使用されるパディングが適用され得る。
【００９７】
様々な例では、CTU ALFはカスケード接続され得る。すなわち、ALFプロセスは、たとえば、すでにフィルタ処理されているCTUにフィルタ処理演算を実行することによって、CTUに対して複数回適用され得る。第2ラウンドのALFプロセスへの入力は、第1ラウンドのALFプロセスの出力である。フィルタ処理の異なるラウンドに対して異なるCTU ALF係数および制御情報がシグナリングされ得る。いくつかの例では、最大ラウンド数は、SPS、PPS、またはスライスヘッダの中などのビットストリームの中でシグナリングされ得る。いくつかの例では、現在のラウンドにおいてCTUに対してCTU ALFがオフである場合、ビットストリームの中でシグナリングされたラウンド数に達していなくても、CTU ALFはこのCTUのための次のラウンドに対してオフであることが必要とされる。
【００９８】
様々な例では、ブロックレベル(BA)分類は、CTUのためのCTU ALFモードとして選択される。様々な例では、2次元(2D)グループマージングが使用される。一例では、BA分類に従って、CTUの中のピクセルが5×3グループに分類される。初期グループインデックスは、次のように(下のTable 3(表3)参照)2Dマップの中に置かれてよく、ここで、水平方向および垂直方向は、上記で説明したようにアクティビティ値および方向値に対応する。
【００９９】
【表３】
2018509074.tif 000009
【０１００】
この例では、任意のグループがその左または上の隣接するグループにマージすることを許容される。レートひずみコストまたは他の測定値に基づいて、15個のグループが、最後に下のTable 4(表4)に示すような4つのグループにマージされ得、数値は新たなグループインデックスを示す。たとえば、新たなグループ#0は、古いグループ#0、#5(古い#0に上へマージされている)、および#6(古い#5に左へマージされている)によってマージされる。
【０１０１】
【表４】
2018509074.tif 000010
【０１０２】
グループマージングの後、(ビデオエンコーダ20などの)ビデオエンコーダは、新たなグループ#0、#1、#9、および#10に対するフィルタ係数をシグナリングし得る。他に対して、ビデオエンコーダ30は、左マージまたは上マージなどのマージインジケータだけをシグナリングし得る。
【０１０３】
様々な例では、2つのCTU ALFモード、すなわち、Edge_VHおよびEdge_Diagが定義される。Edge_VHが使用されるとき、CTUの中のピクセルは5つのグループに分類される。
【０１０４】
【数５】
2018509074.tif 000011
【０１０５】
が再構成ルーマ/クロマサンプルを表すとすると、分類は次のように実行される。
【０１０６】
【数６】
2018509074.tif 000012
【０１０７】
Edge_Diagが使用されるとき、CTUの中のピクセルは5つのグループに分類される。
【０１０８】
【数７】
2018509074.tif 000013
【０１０９】
が再構成ルーマ/クロマサンプルを表すとすると、分類は次のように実行される。
【０１１０】
【数８】
2018509074.tif 000014
【０１１１】
別の例では、5つのCTU ALFモード、すなわち、SAO分類における水平、垂直、45度対角、135度対角のEOクラスと類似であるEdge_0、Edge_90、Edge_45、Edge_135が定義される。その内容全体が参照により本明細書に組み込まれる、C.-M.Fu、E.Alshina、A.Alshin、Y.-W.Huang、C.-Y.Chen、C.-Y.Tsai、C.-W.Hsu、S.-M.Lei、J.-H.Park、W.-J.Han、「Sample Adaptive Offset in the HEVC Standard」、IEEE Transactions on Circuits and Systems for Video Technology、Vol.22、No.12、2012年12月(以下では「HEVC規格におけるSAO」)に、SAO分類が記載されている。
【０１１２】
列挙されたモードのいずれかが使用されるとき、CTUの中のピクセルは5つのグループに分類される。最初の4つのグループに対する分類は、SAO分類(「HEVC規格におけるSAO」のTable 1(表1))におけるものと同じである。最初の4つのグループの中にないピクセルは、第5のグループの中に置かれる。上記の例では、Edge_VH、Edge_Diag、およびEdge_0、Edge_90、Edge_45、Edge_135も、BAモードと一緒に使用され得る。
【０１１３】
一例では、各4×4ブロックは、25個のグループのうちの1つに分類される。分類において、垂直、水平、45度、および135度の方向に沿ったピクセル勾配が使用される。4×4ブロックbに対して、Vi,jおよびHi,jは、bに属するピクセル位置(i,j)の、それぞれ、垂直勾配および水平勾配を示し得、Actbは、ブロックbのアクティビティを示し得る(上で定義したように)。
【０１１４】
【数９】
2018509074.tif 000015
【０１１５】
および
【０１１６】
【数１０】
2018509074.tif 000016
【０１１７】
は、ピクセル位置(i,j)の方向45度および135度に沿った勾配を示し得る(または、それに対する導出を提供し得る)。ブロックbの平均勾配は、次のように定義され得る。
【０１１８】
【数１１】
2018509074.tif 000017
【０１１９】
ブロックbの方向Dirbは、次のように定義される。
【０１２０】
【数１２】
2018509074.tif 000018
【０１２１】
ブロックbのグループインデックスは、
Dirb×5+(Dirb%2?4-Actb:Actb)
として定義される。
【０１２２】
様々な例では、シンタックスおよびセマンティクスは、HEVC(H.265)仕様の最上部に組み込まれる。新たに提案された部分は、下のシンタックス表(すなわち、本明細書に含まれるようなTable 5〜Table 8(表5〜表8))においてイタリック体で表されている。
【０１２３】
【表５】
2018509074.tif 000019
【０１２４】
ただし、
【０１２５】
1に等しいalf_ctu_enabled_flagは、SAOプロセスの後、再構成ピクチャにCTUレベルALFプロセスが適用されることを規定する。0に等しいalf_ctu_enabled_flagは、SAOプロセスの後、再構成ピクチャにCTUレベルALFプロセスが適用されないことを規定する。
【０１２６】
alf_ctu_num_luma_mode_minus1は、CTUレベルALFのルーマモードの数を次のように、すなわち、AlfModeNumY=alf_ctu_num_luma_mode_minus1+1と規定する。
【０１２７】
alf_ctu_num_chroma_mode_minus1は、CTUレベルALFのクロマモードの数を次のように、すなわち、AlfModeNumC=alf_ctu_num_chroma_mode_minus1+1と規定する。
【０１２８】
ctu_alf_num_merge_cand+1は、CTU ALFマージ用のALF候補の数を規定する。ctu_alf_num_merge_candの場合、現在CTUのALFパラメータを予測するための候補リストは構築されない。存在しないとき、ctu_alf_num_merge_candは0に等しいと推定される。
【０１２９】
【表６】
2018509074.tif 000020
【０１３０】
【表７】
2018509074.tif 000021
【０１３１】
ただし、
【０１３２】
1に等しいalf_merge_flagは、現在CTUのALFパラメータが空間隣接CTUまたは時間隣接CTUにマージされることを規定する。0に等しいalf_merge_flagは、現在CTUのALFパラメータがビットストリームの中でシグナリングされることを規定する。
【０１３３】
alf_merge_indexは、CTU ALFマージ候補のインデックスを規定する。存在しないとき、alf_merge_indexは0に等しいと推定される。
【０１３４】
1に等しいalf_luma_enabled_flagは、ルーマALFが現在CTUに適用され、ルーマALFパラメータが現在CTUに対してシグナリングされることを規定する。0に等しいalf_luma_enabled_flagは、ルーマALFが現在CTUに適用されず、ルーマALFパラメータが現在CTUに対してシグナリングされないことを規定する。
【０１３５】
alf_luma_modeは、現在CTUの中のルーマピクセルに対して使用されるべき分類方法を規定する。alf_luma_modeは、AlfModeNumYよりも大きくてはならない。分類方法における追加の詳細は、上の5.2において見出され得る。
【０１３６】
alf_luma_shapeは、現在CTU用のルーマフィルタ形状を規定する。
【０１３７】
1に等しいalf_luma_filter_symmetryは、ルーマフィルタが現在CTUに対して円対称であることを規定する。0に等しいalf_luma_filter_symmetryは、ルーマフィルタが現在CTUに対して対称でないことを規定する。
【０１３８】
alf_luma_filter_merge_idcは、現在のルーマフィルタがAlfLumaMergeMapにおけるその左または上のルーマフィルタにマージされるかどうかを規定する。AlfLumaMergeMapは、上記で説明したようなグループマージングステータスを示し、alf_luma_modeに依存する。0に等しいalf_luma_filter_merge_idcは、グループが上または左のグループからマージされないことを規定する。1に等しいalf_luma_filter_merge_idcは、グループが左のグループからマージされないことを規定する。2に等しいalf_luma_filter_merge_idcは、グループが上のグループからマージされないことを規定する。
【０１３９】
1に等しいalf_chroma_enabled_flagは、クロマALFが現在CTUに適用され、クロマALFパラメータが現在CTUに対してシグナリングされることを規定する。0に等しいalf_chroma_enabled_flagは、クロマALFが現在CTUに適用されず、クロマALFパラメータが現在CTUに対してシグナリングされないことを規定する。
【０１４０】
alf_chroma_modeは、現在CTUの中のクロマピクセルに対して使用されるべき分類方法を規定する。
【０１４１】
alf_chroma_filter_merge_idcは、現在のクロマフィルタがAlfChromaMergeMapにおけるその左または上のクロマフィルタにマージされるかどうかを規定する。AlfChromaMergeMapは、alf_chroma_modeに依存する。
【０１４２】
【表８】
2018509074.tif 000022
【０１４３】
ただし、
【０１４４】
1に等しいalf_filter_dc_only_flagは、現在のフィルタがDC係数だけを有することを規定する。すべての他の係数は0である。0に等しいalf_filter_dc_only_flagは、現在のフィルタがDC係数に加えて非0の係数を有することを規定する。
【０１４５】
alf_filter_coeff_dcは、現在のフィルタのDC係数を規定する。
【０１４６】
alf_filter_quant_bitは、フィルタ係数量子化において使用されるビット数を規定する。
【０１４７】
alf_filter_coeffは、現在のフィルタの非DC係数を規定する。存在しないとき、ctu_alf_filter_coeffは0に等しいと推定される。
【０１４８】
図4は、本開示で説明する技術を実施し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベース圧縮モードのうちのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベース圧縮モードのうちのいずれかを指し得る。
【０１４９】
図4の例では、ビデオエンコーダ20は、ビデオデータメモリ33、区分ユニット35、予測処理ユニット41、加算器50、変換処理ユニット52、量子化ユニット54、エントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット(MEU)42、動き補償ユニット(MCU)44、およびイントラ予測ユニット46を含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58、逆変換処理ユニット60、加算器62、ALFユニット64、および復号ピクチャバッファ(DPB)66を含む。
【０１５０】
図4に示すように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ33に記憶する。ビデオデータメモリ33は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ33に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。DPB66は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する、参照ピクチャメモリであり得る。ビデオデータメモリ33およびDPB66は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM（登録商標）)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ33およびDPB66は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、ビデオデータメモリ33は、ビデオエンコーダ20の他の構成要素とともにオンチップであってよく、またはこれらの構成要素に対してオフチップであってもよい。
【０１５１】
区分ユニット35は、ビデオデータメモリ33からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分はまた、スライス、タイル、またはもっと大きい他の単位への区分、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分を含んでもよい。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、エラー結果(たとえば、コーディングレート、およびひずみのレベル)に基づいて、現在のビデオブロックのための、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に、得られたイントラまたはインターコード化ブロックを提供し得る。
【０１５２】
予測処理ユニット41内のイントラ予測ユニット46は、空間的圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を行うために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【０１５３】
動き推定ユニット42は、ビデオシーケンスのための所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンスの中のビデオスライスをPスライスまたはBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は、高集積されてよいが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに対する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
【０１５４】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に整合するように見出されたブロックである。いくつかの例では、ビデオエンコーダ20は、DPB66に記憶された参照ピクチャのサブ整数ピクセル位置に対する値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し得、分数ピクセル精度で動きベクトルを出力し得る。
【０１５５】
動き推定ユニット42は、PUの位置と参照ピクチャの予測ブロックの位置とを比較することによって、インターコード化スライスの中のビデオブロックのPUに対する動きベクトルを計算する。参照ピクチャは、その各々がDPB66に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【０１５６】
動き補償ユニット44によって実行される動き補償は、場合によっては、サブピクセル精度への補間を実行する動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。現在ビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算してピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
【０１５７】
予測処理ユニット41がイントラ予測またはインター予測のいずれかを介して現在ビデオブロックに対する予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUの中に含められてよく、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、ピクセル領域から周波数領域などの変換領域に、残差ビデオデータを変換し得る。
【０１５８】
変換処理ユニット52は、結果として生じた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行してもよい。
【０１５９】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技術を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されてよく、または後の送信もしくはビデオデコーダ30による取出しのためにアーカイブされてもよい。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスに対する動きベクトルおよび他のシンタックス要素を符号化し得る。
【０１６０】
逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを再構成するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、再構成ブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックに、再構成された残差ブロックを追加する。
【０１６１】
ALFユニット64は、再構成ブロック(たとえば、加算器62の出力)をフィルタ処理し、フィルタ処理された再構成ブロックを、参照ブロックとして使用するためにDPB66に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。図4に明示的に示さないが、ビデオエンコーダ20は、デブロックフィルタ、サンプル適応オフセット(SAO)フィルタ、または他のタイプのループフィルタなど、追加のフィルタを含み得る。デブロックフィルタは、たとえば、ブロック境界をフィルタ処理して再構成ビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ処理を適用し得る。SAOフィルタは、全体的なコーディング品質を改善するために、再構成ピクセル値にオフセットを適用し得る。追加のループフィルタ(インループまたはポストループ)も使用されてよい。
【０１６２】
ALFユニット64は、ビデオエンコーダ20の他の構成要素とともに、本開示で説明する様々な技法を実行するように構成され得る。たとえば、ビデオエンコーダ20は、現在CTU用のALF情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するように構成され得る。ビデオエンコーダ20は、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成し得、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行し得る。ALF情報は、ALF係数、ならびに分類メトリックへのALFフィルタのマッピングを含み得る。
【０１６３】
様々な例では、ビデオエンコーダ20は、新たなALF情報を決定し得、ビデオデータの符号化ビットストリームに含めるために、候補リストからの候補に関連するインデックスを含むシンタックス要素を生成し得る。ビデオエンコーダ20はまた、ビデオデータの符号化ビットストリームに含めるために、新たなALF情報と候補に関連するALF情報との間の差分を識別する差分情報を生成し得る。他の例では、ビデオエンコーダ20は、ビデオデータの符号化ビットストリームに含めるために、候補リストからの候補に関連するインデックスを示すシンタックス要素を生成し得、その場合、ALFフィルタ情報が候補からコピーされ、差分情報は生成されない。
【０１６４】
1つまたは複数の分類メトリックは、アクティビティメトリックおよび方向メトリックを含み得るか、あるいは1つもしくは複数のピクセルを備えるCUのサイズ、ピクセルを備えるCUのコーディングモード、1つもしくは複数のピクセルに対応する変換ユニットのサイズ、または1つもしくは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数などの、他の分類メトリックを含み得る。
【０１６５】
様々な例では、ビデオエンコーダ20は、選択されたALFフィルタを使用してCTUの1つまたは複数のピクセルにフィルタ処理演算を実行することによって、フィルタ処理された画像を生成し得る。符号化動作の復号ループの一部として、ビデオエンコーダ20は、選択されたALFフィルタを使用してCTUの1つまたは複数のピクセルにフィルタ処理演算を実行することによって、フィルタ処理された画像を生成し得、フィルタ処理された画像を復号ピクチャバッファ(たとえば、DPB94)の中に記憶し得る。1つまたは複数の空間ネイバーCTUは、ピクチャ内で現在CTUに隣接して位置し得る。1つまたは複数の時間ネイバーCTUは、それぞれの参照ピクチャの中のコロケートCTUを表し得る。
【０１６６】
1つまたは複数の空間ネイバーCTUは、現在CTUに対する左ネイバーCTUおよび上ネイバーCTUを含み得、1つまたは複数の時間ネイバーCTUは、合計で3つの時間ネイバーCTUをそれぞれの3つの参照ピクチャの中に含み得る。1つまたは複数の時間ネイバーCTUは、1つまたは複数の参照ピクチャの中のコロケートCTUであり得る。様々な例では、1つまたは複数の時間CTUは、同じスライスタイプを有する1つまたは複数の参照ピクチャの中にあるように制限され得る。
【０１６７】
様々な例では、1つまたは複数の時間CTUは、同じ量子化パラメータ(QP)範囲を有する1つまたは複数の参照ピクチャの中にあるように制限される。
【０１６８】
いくつかの例では、ビデオエンコーダ20は、時間隣接CTUが関連付けられている参照インデックスの順序に基づいて時間ネイバーCTUを候補リストに挿入することによって、候補リストを形成し得る。いくつかの例では、ビデオエンコーダ20は、コロケート時間隣接CTU以外のそれぞれの参照ピクチャの中の1つまたは複数の時間隣接CTUを含むように、候補リストを形成し得る。
【０１６９】
様々な例では、ビデオエンコーダ20は、2N×2N CTUである現在CTU用のALF情報を取得し得、CTUをM×Mサブブロックに分割し得、ここで、2NがMの整数倍数であり、M×Mサブブロックの動きベクトルによって位置を特定される1つまたは複数の時間的候補をM×Mサブブロックごとに決定し得、動きベクトルによって位置を特定された1つまたは複数の時間的候補からALF情報を導出し得る。様々な例では、ビデオエンコーダ20は、動きベクトルを用いて時間的候補の位置を特定し得る。動きベクトルによって指されるブロックの左上コーナーをカバーするCTUが時間的候補として使用され得、または動きベクトルによって指されるブロックの中心点をカバーするCTUが時間的候補として使用され得る。
【０１７０】
様々な例示的なビデオエンコーダ20では、サブブロックに対して双予測が使用されるとき、動きベクトル0だけが時間的候補の位置を特定するために使用されるか、または動きベクトル1だけが時間的候補の位置を特定するために使用されるか、または時間的候補の位置を特定するためにどの動きベクトルが使用されるのかが、SPS、PPS、またはスライスヘッダの中などのビットストリームの中でシグナリングされる。様々な例では、Mは、8、4、1、または他の値に設定され得る。様々な例では、候補リストの中のエントリの最大数は、固定値であってよく、エントリの最大数は、符号化ビデオビットストリームの中で示されてもよい。
【０１７１】
様々な例では、候補リストの中のエントリの最大数は、可変値であってよく、エントリの最大数は、符号化ビデオビットストリームの中に含まれる情報から導出されてもよい。様々な例では、空間ネイバー/時間ネイバーからの2つの候補だけが、候補リストの中に含まれ得る。様々な例では、現在CTUの中のブロックのうちの少なくとも1つがインター予測モードを用いてコーディングされる場合のみ時間的候補が許容され得るか、またはイントラコード化スライスのCTUに対して時間的候補が許容され得ないか、もしくはイントラコード化スライスのCTUに対して時間的候補が許容され得る。
【０１７２】
様々な例では、ビデオエンコーダ20は、高レベルシンタックス、たとえば、PPS、スライスヘッダ、SPSとして、または高レベルシンタックスを含む他の場所においてシグナリングして、時間的候補が許容されるか否かをシグナリングし得る。様々な例では、ビデオエンコーダ20は、1つまたは複数の重複する候補を除くためのプルーニングプロセスを適用することによって、候補リストを形成し得る。
【０１７３】
空間的候補または時間的候補が許容されるとき、候補は、事前定義された順序で候補リストに(プルーニングを用いて、または用いずに)追加され得る。そのような順序は、現在CTUの中のいくつかのブロックがあるやり方で時間予測されるかどうかに依存し得る。たとえば、いくつかのブロックに時間動き予測が適用される場合、時間的候補は、リストのより早い位置に置かれ得、ALFは、CTU全体の復号の後に実行され得る。時間動き予測を伴うエリアのパーセンテージは、候補リストの中での時間的候補の相対順序および相対位置を決定するために使用され得る。
【０１７４】
様々な例では、時間的候補が許容されるとき、CTU内のコード化ブロックの参照インデックスに基づいて、1つの時間的候補だけが参照ピクチャから選ばれ得る。最も頻繁に使用されるピクチャが選ばれてよく、またはコロケート時間CTUだけが許容される場合、現在CTUの領域に対してコロケートされた領域の外側のピクセルを指している動きベクトルは、頻度計算のための考慮に入れられなくてよい。
【０１７５】
様々な例では、ビデオエンコーダ20は、現在CTU用の取得されたALF情報および現在CTUに関連する1つまたは複数のSAOパラメータを含むように候補リストを形成することによって、候補リストを形成し得る。様々な例では、ビデオエンコーダ20は、1つまたは複数のSAOパラメータおよびALFパラメータを独立に、ただし同じマージメカニズムを使用してシグナリングし得る。様々な例では、ビデオエンコーダ20は、現在CTU用の取得されたALF情報に関連するフィルタ対称性情報を符号化することによって、現在CTUを符号化し得る。
【０１７６】
様々な例では、ビデオエンコーダ20は、フィルタ対称性情報をCTUレベルにおいてシグナリングし得る。フィルタ対称性情報は、対称および非対称の情報を含み得、フィルタのセットごとにシグナリングされ得る。ビデオエンコーダ20は、ビットストリームの関連する部分において非対称フィルタが使用されるかどうかを示すためのフラグを、SPS/PPS/スライスヘッダの中でシグナリングし得る。様々な例では、ビデオエンコーダ20は、現在CTU用の取得されたALF情報に関連する量子化情報を符号化することによって、現在CTUを符号化し得る。
【０１７７】
図5は、本開示で説明する技法を実施し得る例示的なビデオデコーダ30を示すブロック図である。図5の例では、ビデオデコーダ30は、ビデオデータメモリ78、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB94を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測ユニット84を含む。ビデオデコーダ30は、いくつかの例では、図4からのビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１７８】
復号プロセス中、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ20は、受信された符号化ビデオビットストリームをビデオデータメモリ78に記憶する。ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ78に記憶されたビデオデータは、たとえば、記憶デバイス26から、またはカメラなどのローカルビデオソースから、または物理的データ記憶媒体にアクセスすることによって、リンク16を介して取得され得る。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。DPB94は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ78およびDPB94は、DRAM、SDRAM、MRAM、RRAM（登録商標）、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ78およびDPB94は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【０１７９】
ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ78に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット80は、予測処理ユニット81に動きベクトルおよび他のシンタックス要素を転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおけるシンタックス要素を受信し得る。
【０１８０】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたはピクチャの、前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックに対する予測データを生成し得る。ビデオフレームがインターコード化スライス(すなわち、BスライスまたはPスライス)としてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つのリスト内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB94に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
【０１８１】
動き補償ユニット82は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックに対する予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の1つまたは複数の参照ピクチャリストに対する構成情報、スライスの各インター符号化ビデオブロックに対する動きベクトル、スライスの各インターコード化ビデオブロックに対するインター予測状態、および現在ビデオスライスの中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０１８２】
動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルに対する補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用されたような補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０１８３】
逆量子化ユニット86は、ビットストリームの中で提供されエントロピー復号ユニット80によって復号された量子化変換係数を、逆量子化(inverse quantize)すなわち逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスの中のビデオブロックごとに、ビデオエンコーダ20によって計算された量子化パラメータを使用することを含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に類似の逆変換プロセスを適用する。
【０１８４】
予測処理ユニットが、たとえば、イントラ予測またはインター予測を使用して現在ビデオブロックに対する予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、再構成ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。ALFユニット92は、たとえば、本開示で説明するALF技法のうちの1つまたは複数を使用して、再構成ビデオブロックをフィルタ処理する。
【０１８５】
図5に明示的に示さないが、ビデオデコーダ30はまた、デブロッキングフィルタ、SAOフィルタ、または他のタイプのフィルタのうちの1つまたは複数を含み得る。ピクセル遷移を平滑化し、または別の方法でビデオ品質を改善するために、他のループフィルタ(コーディングループの中またはコーディングループの後のいずれか)も使用され得る。次いで、所与のフレームまたはピクチャの中の復号ビデオブロックがDPB94に記憶され、DPB94は、後続の動き補償のために使用される参照ピクチャを記憶する。DPB94は、図1のディスプレイデバイス32などのディスプレイデバイス上で後で提示するために復号ビデオを記憶する、追加のメモリの一部であってよく、またはそうしたメモリとは別個であってもよい。
【０１８６】
ALFユニット92は、ビデオデコーダ30の他の構成要素とともに、本開示で説明する様々な技法を実行するように構成され得る。たとえば、デコーダ30は、現在CTU用のALF情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するように構成され得る。ビデオデコーダ30は、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストを形成し得、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行し得る。ALF情報は、ALF係数、ならびに分類メトリックへのALFフィルタのマッピングを含み得る。
【０１８７】
様々な例におけるデコーダ30は、候補リストからの候補に関連するインデックスを備えるシンタックス要素を受信し得、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行し得る。
【０１８８】
様々な例では、ビデオデコーダ30は、候補リストからの候補に関連するインデックスを備えるシンタックス要素を受信し、差分情報を受信し、新たなALF情報を決定するために、候補に関連するALF情報に差分情報を追加し、新たなALF情報を使用して、現在CTUにフィルタ処理演算を実行する。ALFフィルタ情報は、たとえば、複数のALFフィルタを含み得、ビデオデコーダ30は、1つまたは複数の分類メトリックに基づいて複数のALFフィルタの中からALFフィルタを選択し得、選択されたALFフィルタを使用してCTUの1つまたは複数のピクセルにフィルタ処理演算を実行し得る。
【０１８９】
いくつかの例では、1つまたは複数の分類メトリックは、アクティビティメトリックおよび方向メトリックを含み得る。他の例では、1つまたは複数の分類メトリックは、1つまたは複数のピクセルを備えるCUのサイズ、ピクセルを備えるCUのコーディングモード、1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を含み得る。
【０１９０】
様々な例では、ビデオデコーダ30は、選択されたALFフィルタを使用してCTUの1つまたは複数のピクセルにフィルタ処理演算を実行することによって、フィルタ処理された画像を生成し得、フィルタ処理された画像を出力(たとえば、ディスプレイに表示または送信)し得る。様々な例では、1つまたは複数の空間ネイバーCTUは、ピクチャ内で現在CTUに隣接して位置し得る。様々な例では、1つまたは複数の時間ネイバーCTUは、それぞれの参照ピクチャの中のコロケートCTUを表し得る。1つまたは複数の空間ネイバーCTUは、現在CTUに対する左ネイバーCTUおよび上ネイバーCTUを含み得る。1つまたは複数の時間ネイバーCTUは、合計で3つの時間ネイバーCTUをそれぞれの3つの参照ピクチャの中に含み得る。いくつかの例では、1つまたは複数の時間ネイバーCTUは、1つまたは複数の参照ピクチャの中のコロケートCTUであり得る。追加的または代替的に、1つまたは複数の時間CTUは、同じスライスタイプを有する1つまたは複数の参照ピクチャの中にあるように制限され得る。
【０１９１】
様々な例では、1つまたは複数の時間CTUは、同じ量子化パラメータ(QP)範囲を有する1つまたは複数の参照ピクチャの中にあるように制限され得る。様々な例では、ビデオデコーダ30は、時間隣接CTUが関連付けられている参照インデックスの順序に基づいて時間ネイバーCTUを候補リストに挿入することによって、候補リストを形成し得る。様々な例では、ビデオデコーダ30は、コロケート時間隣接CTU以外のそれぞれの参照ピクチャの中の1つまたは複数の時間隣接CTUを含むように候補リストを形成することによって、候補リストを形成し得る。
【０１９２】
様々な例では、ビデオデコーダ30は、2N×2N CTUである現在CTU用のALF情報を取得し得、CTUをM×Mサブブロックに分割し得、ここで、2NがMの整数倍数であり、M×Mサブブロックの動きベクトルによって位置を特定される1つまたは複数の時間的候補をM×Mサブブロックごとに決定し得、動きベクトルによって位置を特定された1つまたは複数の時間的候補からALF情報を導出し得る。様々な例では、ビデオデコーダ30は、動きベクトルを用いて時間的候補の位置を特定し得る。動きベクトルによって指されるブロックの左上コーナーをカバーするCTUが時間的候補として使用され得、または動きベクトルによって指されるブロックの中心点をカバーするCTUが時間的候補として使用される。
【０１９３】
様々な例では、候補リストの中のエントリの最大数は、可変値であってよく、エントリの最大数は、符号化ビデオビットストリームの中に含まれる情報から導出されてもよい。様々な例では、空間ネイバー/時間ネイバーからの2つの候補だけが、候補リストの中に含まれる。様々な例では、現在CTUの中のブロックのうちの少なくとも1つがインター予測モードを用いてコーディングされる場合のみ時間的候補が許容されるか、またはイントラコード化スライスのCTUに対して時間的候補が許容されないか、もしくはイントラコード化スライスのCTUに対して時間的候補が許容される。
【０１９４】
様々な例では、時間動きベクトル予測がイネーブルされている場合のみ時間的候補が許容され得る。様々な例では、スライスヘッダの中でシグナリングされる固定または専用の参照ピクチャからのみ時間的候補が許容され、参照ピクチャは、時間動きベクトル予測のために使用される参照ピクチャであるようにさらに制約され得る。
【０１９５】
様々な例では、ビデオデコーダ30は、時間的候補が許容されるか否かを示すシグナリング情報を受信し得る。そのようなシグナリングは、高レベルシンタックス、たとえば、PPS、スライスヘッダ、SPSとして、または高レベルシンタックスを含む他の場所において含まれ得る。ビデオデコーダ30は、1つまたは複数の重複する候補を除くためのプルーニングプロセスを適用することによって、候補リストを形成し得る。
【０１９６】
様々な例では、空間的候補または時間的候補が許容されるとき、ビデオデコーダ30は、それらの候補を事前定義された順序で候補リストに(プルーニングを用いて、または用いずに)追加し得る。追加的または代替的に、そのような順序は、現在CTUの中のいくつかのブロックが時間予測されるかどうかに依存し得る。いくつかのブロックに時間動き予測が適用される場合、ビデオデコーダ30は、時間的候補をリストのより早い位置に置くことができ、ALFは、CTU全体の復号の後に適用され得る。ビデオデコーダ30は、たとえば、候補リストの中での時間的候補の相対順序および相対位置を決定するために、時間動き予測を伴うエリアのパーセンテージを使用し得る。たとえば、参照ブロックが、整列したCTUでない場合、ビデオデコーダ30は、オーバーラップのパーセンテージによって決定されるように参照ブロックとCTUとがどのくらい良好に位置合わせしているかに基づいて、時間的候補に対する順序を決定し得る。
【０１９７】
いくつかの例では、時間的候補が許容されるとき、CTU内のコード化ブロックの参照インデックスに基づいて、1つの時間的候補だけが参照ピクチャから選ばれ得る。たとえば、最も頻繁に使用されるピクチャが選ばれてよく、またはコロケート時間CTUだけが許容される場合、現在CTUの領域に対してコロケートされた領域の外側のピクセルを指している動きベクトルは、頻度計算のための考慮に入れられなくてよい。
【０１９８】
様々な例では、ビデオデコーダ30は、現在CTU用の取得されたALF情報および現在CTUに関連する1つまたは複数のサンプル適応オフセット(SAO)パラメータを含むように候補リストを形成することによって、候補リストを形成し得る。1つまたは複数のサンプル適応オフセットSAOパラメータおよびALFパラメータは、独立に、ただし同じマージメカニズムを使用してシグナリングされ得る。様々な例では、ビデオデコーダ30は、現在CTU用の取得されたALF情報に関連するフィルタ対称性情報を復号することによって、現在CTUを復号し得る。
【０１９９】
様々な例では、ビデオデコーダ30は、フィルタ対称性情報を示すシグナリングをCTUレベルにおいて受信し得る。フィルタ対称性情報は、対称および非対称の情報を含み得、フィルタ対称性情報は、フィルタのセットごとにシグナリングされ得る。ビデオデコーダ30は、非対称フィルタがビットストリームの関連する部分において使用されるかどうかを示すためのフラグを、SPS/PPS/スライスヘッダの中で受信し得る。様々な例では、ビデオデコーダ30は、現在CTU用の取得されたALF情報に関連する量子化情報を復号することによって、現在CTUを復号し得る。
【０２００】
量子化情報は、構文解析されたフィルタ係数からフィルタ係数の整数値を生成するために左シフトされるべきビット数を含み得る。いくつかの例では、フィルタ係数量子化情報をビットストリームの中で明示的にシグナリングする代わりに、ビデオデコーダ30は、ALF係数に基づいてフィルタ係数量子化情報を暗黙のうちに導出し得る。
【０２０１】
量子化ビット数は、すべてのALF重み付け係数の加算に基づいて計算され得、ここで、非DCのALF係数の総和は、最初に2nに丸められ、たとえば、総和126は128(27、ここでn=7)に丸められる。次いで、量子化ビット数が、8とnとの間の差分として導出され得る。前の例では、n=7であり、したがって、量子化ビット数は1である。
【０２０２】
様々な例では、ビデオデコーダ30は、現在CTU用の取得されたALF情報が量子化されているかどうかを示すデータを復号し得る。様々な例では、現在CTU用の取得されたALF情報がDC係数だけを含む場合、ビデオデコーダ30は、現在CTU用の取得されたALF情報に対するオフセット値だけを復号することによって、CTUを復号し得る。
【０２０３】
様々な例では、フィルタに対してDC係数だけが存在し他の係数が存在しないケースにおいて、ビデオデコーダ30は、ピクセル単位でのDC係数のシグナリングを受信し得、他の場合には、より高精度、たとえば、単位ピクセル値の1/256でのDC係数および他のフィルタ係数のシグナリングを受信し得る(この場合、「1」が値256に正規化される)。様々な例では、ビデオデコーダ30は、現在CTU用の取得されたALF情報の中心フィルタ係数を、現在CTU用の取得されたALF情報の1つまたは複数の非中心フィルタ係数とは異なって復号することによって、CTUを復号し得る。
【０２０４】
様々な例では、他の係数は明示的にシグナリングされ得るが、中心係数は、中心係数値とデフォルト値との間の差分だけがコーディングされることを意味する差分コーディングされ、ここで、デフォルト値は、それが1に正規化されるように選ばれる。様々な例では、ビデオデコーダ30は、2次元グループマージング動作に基づいてCTUを復号することによって、CTUを復号し得る。
【０２０５】
様々な例では、マージした後、マージされたグループごとにALFパラメータの1つのセットだけがシグナリングされ得る。BA分類が適用される場合、CTUの中のピクセルは、グループインデックスが2Dマップの中で順序付けられて、いくつかのグループに分類され得る。2Dグループマージングの場合、グループは、2Dマップにおけるその左または上のネイバーにマージされ得る。様々な例では、ビデオデコーダ30は、1つまたは複数の2次元特性に基づく1次元グループマージング動作に基づいてCTUを復号することによって、CTUを復号し得る。
【０２０６】
様々な例では、初期フィルタ/グループインデックスは、2つの隣接するフィルタ(すなわち、隣接するインデックスを有する2つのフィルタ)が隣接するアクティビティまたは隣接する方向のいずれかを有しなければならないという原理に従って設計され得、ここで、フィルタは、その隣接するネイバーのみにマージされる。1つまたは複数の2次元特性は、アクティビティ特性および方向特性を含み得る。
【０２０７】
様々な例では、ビデオデコーダ30は、現在CTUがしきい値サイズを上回るかどうかを決定し得、CTUがしきい値サイズを上回る場合、現在CTUをもっと小さい2つ以上のCTUに分割し得る。様々な例では、第2のサイズ(たとえば、64×64)よりも大きいサイズに相当するノードのsplitting_flagは、1としての値に設定され得、ノードが第2のサイズよりも大きいサイズに相当するケースでは、フラグは1であるようにシグナリングされるか、またはそのようなフラグのシグナリングが回避されてよく、この場合、フラグは1であるように導出され得る。
【０２０８】
たとえば、ビデオデコーダ30は、現在CTU用のALF情報を取得することと、再構成ピクセル値に基づいて、かつ1つまたは複数の分類メトリックに基づいて、CTU内の1つまたは複数のピクセルを分類することと、CTU内の1つまたは複数のピクセルを分類することに基づいて、1つまたは複数のピクセル用のALFフィルタを選択することとを含む、ビデオコーディングの方法を実行するように構成され得る。様々な例では、1つまたは複数の分類メトリックは、複数の方向に沿って計算されたピクセル勾配を含み得、ビデオデコーダ30はまた、複数の方向に対するいくつかの方向をシグナリングするように動作可能である。
【０２０９】
1つまたは複数の分類メトリックは、1つまたは複数のピクセルを備えるCUのコーディングモード、1つまたは複数のピクセルを備えるCUのサイズ、1つまたは複数のピクセルに対する変換タイプ、あるいは1つまたは複数のピクセルに対する変換サイズのうちの1つまたは複数を含み得る。
【０２１０】
様々な例では、ビデオデコーダ30は、CTU内の1つまたは複数のピクセルを取り囲むピクセルにフィルタ係数を適用することによって、再構成ピクセル値に基づいて、かつ1つまたは複数の分類メトリックに基づいて、CTU内の1つまたは複数のピクセルを分類し得る。ビデオデコーダ30は、1つまたは複数のピクセルを取り囲むピクセルが利用不可能であることに応答して、1つまたは複数のピクセルを取り囲むピクセルに対して補間された値を決定するためのパディング動作を実行し得る。
【０２１１】
様々な例では、1つまたは複数の分類メトリックは、複数の方向に沿って計算されたピクセル勾配を含み得る。ビデオデコーダ30は、複数の方向に対するいくつかの方向を示すシグナリングを受信し得る。様々な例では、1つまたは複数の分類メトリックは、1つまたは複数のピクセルを備えるCUのコーディングモード、1つまたは複数のピクセルを備えるCUのサイズ、1つまたは複数のピクセルに対する変換タイプ、あるいは1つまたは複数のピクセルに対する変換サイズのうちの1つまたは複数を含み得る。様々な例では、ビデオデコーダ30は、CTU内の1つまたは複数のピクセルを取り囲むピクセルにフィルタ係数を適用することによって、再構成ピクセル値に基づいて、かつ1つまたは複数の分類メトリックに基づいて、CTU内の1つまたは複数のピクセルを分類し得る。1つまたは複数のピクセルを取り囲むピクセルが利用不可能であることに応答して、ビデオデコーダ30は、1つまたは複数のピクセルを取り囲むピクセルに対して補間された値を決定するためのパディング動作を実行し得る。
【０２１２】
図6は、本開示で説明する技法を実施し得る1つまたは複数の方法を示すフロー図(600)である。図6で説明する方法は、ビデオエンコーダ20のALFユニット64またはビデオデコーダ30のALFユニット92などの、ビデオエンコーダまたはビデオデコーダのフィルタユニットによって実行され得る。フィルタユニットは、現CTU用のALF情報を、(i)現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得する(602)。フィルタユニットは、現在CTU用の取得されたALF情報に少なくとも部分的に基づいて候補リストをさらに形成する(604)。フィルタユニットは、候補リストからの候補に関連するALF情報を使用して、現在CTUにフィルタ処理演算を実行する(606)。
【０２１３】
図7は、本開示で説明する技法を実施し得る1つまたは複数の方法を示すフロー図(700)である。図7で説明する方法は、ビデオエンコーダ20のALFユニット64またはビデオデコーダ30のALFユニット92などの、ビデオエンコーダまたはビデオデコーダのフィルタユニットによって実行され得る。
【０２１４】
様々な例では、フィルタユニットは、現在CTU用のALF情報を取得する(702)。フィルタユニットは、再構成ピクセル値に基づいて、かつ1つまたは複数の分類メトリックに基づいて、CTU内の1つまたは複数のピクセルを分類する(704)。CTU内の1つまたは複数のピクセルを分類することに基づいて、様々な例におけるフィルタユニットは、1つまたは複数のピクセル用のALFフィルタを選択する(706)。
【０２１５】
1つまたは複数の分類メトリックは、たとえば、複数の方向に沿って計算されたピクセル勾配、1つまたは複数のピクセルを備えるCUのコーディングモード、1つまたは複数のピクセルを備えるCUのサイズ、1つまたは複数のピクセルに対する変換タイプ、あるいは1つまたは複数のピクセルに対する変換サイズを含み得る。
【０２１６】
様々な例では、フィルタユニットは、再構成ピクセル値に基づいて、かつ1つまたは複数の分類メトリックに基づいて、CTU内の1つまたは複数のピクセルを分類するための動作を実行し得、CTU内の1つまたは複数のピクセルを取り囲むピクセルにフィルタ係数を適用し得る。1つまたは複数のピクセルを取り囲むピクセルが利用不可能であることに応答して、フィルタユニットは、1つまたは複数のピクセルを取り囲むピクセルに対して補間された値を決定するためのパディング動作を実行し得る。
【０２１７】
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  ディスプレイデバイス
33  ビデオデータメモリ
35  区分ユニット
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58  逆量子化ユニット
60  逆変換処理ユニット
62  加算器
64  ALFユニット
66  復号ピクチャバッファ
78  ビデオデータメモリ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測ユニット
86  逆量子化ユニット
88  逆変換処理ユニット
90  加算器
92  ALFユニット
94  復号ピクチャバッファ
【図１】
2018509074.tif 000023
【図２】
2018509074.tif 000024
【図３Ａ】
2018509074.tif 000025
【図３Ｂ】
2018509074.tif 000026
【図３Ｃ】
2018509074.tif 000027
【図４】
2018509074.tif 000028
【図５】
2018509074.tif 000029
【図６】
2018509074.tif 000030
【図７】
2018509074.tif 000031
【手続補正書】
【提出日】平成29年8月15日(2017.8.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための方法であって、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するステップと、
前記現在CTU用の候補リストを形成するステップであって、前記候補リストが複数の候補エントリを含み、前記候補エントリの各々が前記取得されたALF情報に少なくとも部分的に基づく、ステップと、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行するステップと
を備える方法。
【請求項２】
前記ALF情報がALF係数を備える、請求項1に記載の方法。
【請求項３】
前記ALF情報が分類メトリックへのALFフィルタのマッピングを備える、請求項1に記載の方法。
【請求項４】
ビデオデータをコーディングする前記方法が前記ビデオデータを復号する方法を備え、前記方法が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するステップと、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行するステップと
をさらに備える、請求項1に記載の方法。
【請求項５】
ビデオデータをコーディングする前記方法が前記ビデオデータを符号化する方法を備え、前記方法が、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するステップ
をさらに備える、請求項1に記載の方法。
【請求項６】
ビデオデータをコーディングする前記方法が前記ビデオデータを復号する方法を備え、前記方法が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するステップと、
差分情報を受信するステップと、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加するステップと、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行するステップと
をさらに備える、請求項1に記載の方法。
【請求項７】
ビデオデータをコーディングする前記方法が前記ビデオデータを符号化する方法を備え、前記方法が、
新たなALF情報を決定するステップと、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するステップと、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成するステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
前記ALFフィルタ情報が複数のALFフィルタを備え、前記方法が、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択するステップと、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行するステップと
をさらに備える、請求項1に記載の方法。
【請求項９】
前記1つまたは複数の分類メトリックがアクティビティメトリックおよび方向メトリックを備える、請求項8に記載の方法。
【請求項１０】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項8に記載の方法。
【請求項１１】
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するステップと、
前記フィルタ処理された画像を出力するステップと
をさらに備える、請求項8に記載の方法。
【請求項１２】
コーディングするための前記方法が符号化動作の復号ループの一部として実行され、前記方法が、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するステップと、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶するステップと
をさらに備える、請求項6に記載の方法。
【請求項１３】
前記方法がワイヤレス通信デバイスによって実行され、前記ワイヤレス通信デバイスが、
符号化ビデオデータを受信するように構成された受信機と、
前記符号化ビデオデータを処理するための命令を実行するように構成されたプロセッサと
を備える、請求項1に記載の方法。
【請求項１４】
前記ワイヤレス通信デバイスがセルラー電話を備え、前記符号化ビデオデータが前記受信機によって受信され、セルラー通信規格に従って復調される、請求項13に記載の方法。
【請求項１５】
前記方法がワイヤレス通信デバイスによって実行され、前記ワイヤレス通信デバイスが、
符号化ビデオデータを送信するように構成された送信機と、
前記符号化ビデオデータを処理するための命令を実行するように構成されたプロセッサと
を備える、請求項1に記載の方法。
【請求項１６】
前記ワイヤレス通信デバイスがセルラー電話を備え、前記符号化ビデオデータがセルラー通信規格に従って変調され、前記送信機によって送信される、請求項15に記載の方法。
【請求項１７】
ビデオデータをコーディングするためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得することと、
前記現在CTU用の候補リストを形成することであって、前記候補リストが複数の候補エントリを含み、前記候補エントリの各々が前記取得されたALF情報に少なくとも部分的に基づく、形成することと、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行することと
を行うように構成される、デバイス。
【請求項１８】
前記1つまたは複数のプロセッサが前記ビデオデータを復号するように構成され、前記ビデオデータを復号するために、前記1つまたは複数のプロセッサが、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信し、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項１９】
前記1つまたは複数のプロセッサが前記ビデオデータを符号化するように構成され、前記ビデオデータを符号化するために、前記1つまたは複数のプロセッサが、ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するようにさらに構成される、請求項17に記載のデバイス。
【請求項２０】
前記1つまたは複数のプロセッサが前記ビデオデータを復号するように構成され、前記ビデオデータを復号するために、前記1つまたは複数のプロセッサが、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信し、
差分情報を受信し、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加し、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項２１】
前記1つまたは複数のプロセッサがビデオデータを符号化するように構成され、データを符号化するために、前記1つまたは複数のプロセッサが、
新たなALF情報を決定し、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成し、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項２２】
前記ALFフィルタ情報が複数のALFフィルタを備え、前記1つまたは複数のプロセッサが、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択し、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項２３】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項22に記載のデバイス。
【請求項２４】
前記1つまたは複数のプロセッサが、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成し、
前記フィルタ処理された画像を出力する
ようにさらに構成される、請求項22に記載のデバイス。
【請求項２５】
前記1つまたは複数のプロセッサが、符号化動作の復号ループの一部としてコーディングを実行するように構成され、前記1つまたは複数のプロセッサが、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成し、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶する
ようにさらに構成される、請求項20に記載のデバイス。
【請求項２６】
前記デバイスがワイヤレス通信デバイスであり、前記ワイヤレス通信デバイスが、
符号化ビデオデータを受信するように構成された受信機を備え、
前記1つまたは複数のプロセッサが、前記受信された符号化ビデオデータを処理するための命令を実行するように構成される、
請求項17に記載のデバイス。
【請求項２７】
前記ワイヤレス通信デバイスがセルラー電話を備え、前記符号化ビデオデータが前記受信機によって受信され、セルラー通信規格に従って復調される、請求項26に記載のデバイス。
【請求項２８】
前記デバイスがワイヤレス通信デバイスであり、前記ワイヤレス通信デバイスが、
符号化データを送信するように構成された送信機を備え、
前記1つまたは複数のプロセッサが、前記送信機による送信に備えて前記ビデオデータを処理するための命令を実行するように構成される、
請求項17に記載のデバイス。
【請求項２９】
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオデータがセルラー通信規格に従って変調され、次いで、前記送信機によって送信される、請求項28に記載のデバイス。
【請求項３０】
ビデオデータをコーディングするためのデバイスであって、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得するための手段と、
前記現在CTU用の候補リストを形成するための手段であって、前記候補リストが複数の候補エントリを含み、前記候補エントリの各々が前記取得されたALF情報に少なくとも部分的に基づく、手段と、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行するための手段と
を備えるデバイス。
【請求項３１】
前記ビデオデータを復号するための手段をさらに備え、前記ビデオデータを復号するための前記手段が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するための手段と、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行するための手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３２】
前記ビデオデータを符号化するための手段をさらに備え、前記ビデオデータを符号化するための前記手段が、ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するための手段をさらに備える、
請求項30に記載のデバイス。
【請求項３３】
前記ビデオデータを復号するための手段をさらに備え、ビデオデータを復号するための前記手段が、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信するための手段と、
差分情報を受信するための手段と、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加するための手段と、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行する手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３４】
前記ビデオデータを符号化するための手段をさらに備え、前記ビデオデータを符号化するための前記手段が、
新たなALF情報を決定するための手段と、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成するための手段と、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成するための手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３５】
前記ALFフィルタ情報が複数のALFフィルタを備え、前記適応ループフィルタ処理(ALF)情報を取得するための前記手段が、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択するための手段と、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行するための手段と
をさらに備える、請求項30に記載のデバイス。
【請求項３６】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項35に記載のデバイス。
【請求項３７】
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するための手段と、
前記フィルタ処理された画像を出力するための手段と
をさらに備える、請求項35に記載のデバイス。
【請求項３８】
前記ビデオデータを復号するための前記手段が、符号化動作の復号ループの一部として復号を実行するように構成され、前記ビデオデータを復号するための前記手段が、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成するための手段と、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶するための手段と
をさらに備える、請求項33に記載のデバイス。
【請求項３９】
ワイヤレス通信を実行するための手段をさらに備え、ワイヤレス通信を実行するための前記手段が、
符号化ビデオデータを受信するための手段と、
前記符号化ビデオデータを処理するための命令を実行するための手段と
を備える、請求項30に記載のデバイス。
【請求項４０】
ワイヤレス通信を実行するための手段をさらに備え、ワイヤレス通信を実行するための前記手段が、
前記ビデオデータを符号化するための命令を実行するための手段と、
前記符号化ビデオデータを送信するための手段と
を備える、請求項30に記載のデバイス。
【請求項４１】
1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
現在コーディングツリーユニット(CTU)用の適応ループフィルタ処理(ALF)情報を、(i)前記現在CTUの1つもしくは複数の空間ネイバーCTUまたは(ii)前記現在CTUの1つもしくは複数の時間ネイバーCTUのうちの1つまたは複数から取得することと、
前記現在CTU用の候補リストを形成することであって、前記候補リストが複数の候補エントリを含み、前記候補エントリの各々が前記取得されたALF情報に少なくとも部分的に基づく、形成することと、
前記候補リストからの候補に関連するALF情報を使用して、前記現在CTUにフィルタ処理演算を実行することと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項４２】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの復号を実行させ、実行されたとき、前記1つまたは複数のプロセッサに、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信させ、
前記候補リストからの前記候補に関連する前記ALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４３】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの符号化を実行させ、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成させるさらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４４】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの復号を実行させ、実行されたとき、前記1つまたは複数のプロセッサに、
前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を受信させ、
差分情報を受信させ、
新たなALF情報を決定するために、前記候補に関連する前記ALF情報に前記差分情報を追加させ、
前記新たなALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４５】
前記命令が前記1つまたは複数のプロセッサに前記ビデオデータの復号を実行させ、実行されたとき、前記1つまたは複数のプロセッサに、
新たなALF情報を決定させ、
ビデオデータの符号化ビットストリームに含めるために、前記候補リストからの前記候補に関連するインデックスを備えるシンタックス要素を生成させ、
ビデオデータの前記符号化ビットストリームに含めるために、前記新たなALF情報と前記候補に関連する前記ALF情報との間の差分を識別する差分情報を生成させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４６】
前記ALFフィルタ情報が複数のALFフィルタを備え、実行されたとき、前記1つまたは複数のプロセッサに、
1つまたは複数の分類メトリックに基づいて前記複数のALFフィルタの中からALFフィルタを選択させ、
前記選択されたALFフィルタを使用して前記CTUの1つまたは複数のピクセルにフィルタ処理演算を実行させる
さらなる命令を記憶する、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【請求項４７】
前記1つまたは複数の分類メトリックが、前記1つまたは複数のピクセルを備えるCUのサイズ、前記ピクセルを備える前記CUのコーディングモード、前記1つまたは複数のピクセルに対応する変換ユニットのサイズ、あるいは前記1つまたは複数のピクセルに対応する変換ユニットのタイプのうちの1つまたは複数を備える、請求項46に記載の非一時的コンピュータ可読記憶媒体。
【請求項４８】
実行されたとき、前記1つまたは複数のプロセッサに、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成させ、
前記フィルタ処理された画像を出力させる
さらなる命令を記憶する、請求項46に記載の非一時的コンピュータ可読記憶媒体。
【請求項４９】
前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、符号化動作の復号ループの一部として、前記候補リストからの前記候補に関連するALF情報を使用して、前記現在CTUに前記フィルタ処理演算を実行させるさらなる命令を記憶し、実行されたとき、前記1つまたは複数のプロセッサに、
前記選択されたALFフィルタを使用して前記CTUの前記1つまたは複数のピクセルに前記フィルタ処理演算を実行することによって、フィルタ処理された画像を生成させ、
前記フィルタ処理された画像を復号ピクチャバッファの中に記憶させる
さらなる命令を記憶する、請求項44に記載の非一時的コンピュータ可読記憶媒体。
【請求項５０】
前記複数の候補エントリの各々が、前記現在CTUに対して適応ループフィルタ処理を実行するために使用可能なALFパラメータの完全セットを備える、請求項1に記載の方法。
【請求項５１】
前記複数の候補エントリの各々が、前記現在CTUに対して適応ループフィルタ処理を実行するために使用可能なALFパラメータの完全セットを備える、請求項17に記載のデバイス。
【請求項５２】
前記複数の候補エントリの各々が、前記現在CTUに対して適応ループフィルタ処理を実行するために使用可能なALFパラメータの完全セットを備える、請求項30に記載のデバイス。
【請求項５３】
前記複数の候補エントリの各々が、前記現在CTUに対して適応ループフィルタ処理を実行するために使用可能なALFパラメータの完全セットを備える、請求項41に記載の非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2018509074.tif 000032
2018509074.tif 000033