(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】ビデオコーディングにおける適応パラメータセット(APS)を用いるブロックベースの適応ループフィルタ(ALF)
(51)【国際特許分類】
H04N 19/117 20140101AFI20240122BHJP
H04N 19/174 20140101ALI20240122BHJP
H04N 19/186 20140101ALI20240122BHJP
H04N 19/70 20140101ALI20240122BHJP
【FI】
H04N19/117
H04N19/174
H04N19/186
H04N19/70
(21)【出願番号】P 2021556314
(86)(22)【出願日】2020-03-19
(86)【国際出願番号】 US2020023655
(87)【国際公開番号】W WO2020197937
(87)【国際公開日】2020-10-01
【審査請求日】2023-02-24
(32)【優先日】2019-03-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】フ、ナン
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】カルチェビチ、マルタ
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2022-522577(JP,A)
【文献】Vadim Seregin, et al.,"AHG17: Multiple ALF APS for chroma",Document: JVET-O0247-v1, [online],JVET-O0247 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年06月26日,Pages 1-4,[令和5年12月13日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6852> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0247-v1.zip>.,(See document file "JVET-O0247.docx" in the zip file "JVET-O0247-v1.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の
前記示される個数の適応パラメータセットの
各々について、
前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対す
る第1の適応パラメータセットインデックスを復号することと、
ここにおいて、前記第1の適応パラメータセットインデックスによって示される前記各適応パラメータセットは、適応ループフィルタパラメータを搬送する、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを復号することと、
ここにおいて、前記第2の適応パラメータセットインデックスによって示される前記適応パラメータセットは、適応ループフィルタパラメータを搬送する、
前記複数の第1の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに第1の適応ループフィルタを適用することと、
前記第2の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに第2の適応ループフィルタを適用することと、
を備える方法。
【請求項2】
前記ビデオビットストリームのピクチャヘッダ、スライスヘッダ、タイルヘッダ、またはタイルグループヘッダのうちの1つまたは複数
から、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数を示す前記第1のシンタックス要素と、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する前記複数の第1の適応パラメータセットインデックスと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する前記第2の適応パラメータセットインデックスと、を
復号すること、
をさらに備える、請求項1に記載の方法。
【請求項3】
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を、前記ビデオビットストリームから復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を、前記ビデオビットストリームから復号することと、
をさらに備える、請求項1に記載の方法。
【請求項4】
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのクロマブロックとを含む、ピクチャを表示すること、
をさらに備える、請求項1に記載の方法。
【請求項5】
ビデオデータを復号するように構成された装置であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックと、を記憶するように構成されたメモリと、
回路構成の中に実装され前記メモリと通信している1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の
前記示される個数の適応パラメータセットの
各々に
ついて、
前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対す
る第1の適応パラメータセットインデックスを復号し、
ここにおいて、前記第1の適応パラメータセットインデックスによって示される前記各適応パラメータセットは、適応ループフィルタパラメータを搬送する、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを復号し、
ここにおいて、前記第2の適応パラメータセットインデックスによって示される前記適応パラメータセットは、適応ループフィルタパラメータを搬送する、
前記複数の第1の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに、第1の適応ループフィルタを適用し、
前記第2の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに、第2の適応ループフィルタを適用するように構成される、
装置。
【請求項6】
ビデオデータを符号化する方法であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の
前記示された個数の適応パラメータセットの
各々について、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対す
る第1の適応パラメータセットインデックスを
、前記ビデオビットストリームのために、符号化することと、
ここにおいて、前記第1の適応パラメータセットインデックスによって示される前記各適応パラメータセットは、適応ループフィルタパラメータを搬送する、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを符号化することと、
ここにおいて、前記第2の適応パラメータセットインデックスによって示される前記適応パラメータセットは、適応ループフィルタパラメータを搬送する、
を備える方法。
【請求項7】
前記ビデオビットストリームのピクチャヘッダ、スライスヘッダ、タイルヘッダ、またはタイルグループヘッダのうちの1つまたは複数の中で、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数を示す前記第1のシンタックス要素と、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する前記複数の第1の適応パラメータセットインデックスと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する前記第2の適応パラメータセットインデックスと、をシグナリングすること、
をさらに備える、請求項
6に記載の方法。
【請求項8】
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットを含
み、
好ましくは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタの前記それぞれのセットのみを含む、請求項
1または6に記載の方法。
【請求項9】
前記第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットを含
み、
好ましくは、
前記第2の適応パラメータセットインデックスに対応する前記適応パラメータセットは、クロマ適応ループフィルタのセットのみを含む、請求項
1または6に記載の方法。
【請求項10】
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を符号化することと、
をさらに備える、請求項
6に記載の方法。
【請求項11】
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックとを含む、ピクチャをキャプチャすること、
をさらに備える、請求項
6に記載の方法。
【請求項12】
ビデオデータを符号化するように構成された装置であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックと、を記憶するように構成されたメモリと、
回路構成の中に実装され前記メモリと通信している1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の
前記示される個数の適応パラメータセットの
各々について、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対す
る第1の適応パラメータセットインデックスを
、前記ビデオビットストリームのために、符号化し、
ここにおいて、前記第1の適応パラメータセットインデックスによって示される前記各適応パラメータセットは、適応ループフィルタパラメータを搬送する、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを符号化するように構成される、
ここにおいて、前記第2の適応パラメータセットインデックスによって示される前記適応パラメータセットは、適応ループフィルタパラメータを搬送する、
装置。
【請求項13】
前記1つまたは複数のプロセッサは、
請求項2、3、4、8、または9のいずれか一項に記載の方法を実行するようにさらに構成される、請求項5に記載の装置、または、前記1つまたは複数のプロセッサは、請求項7乃至11のいずれか一項に記載の方法を実行するようにさらに構成される、請求項12に記載の装置。
【請求項14】
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのクロマブロックとを含む、ピクチャを表示するように構成されたディスプレイ、
をさらに備える、請求項5に記載の装置、または、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックとを含む、ピクチャをキャプチャするように構成されたカメラ、
をさらに備える、請求項
12に記載の装置。
【請求項15】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、ビデオデータを符号化するように構成されたデバイスの1つまたは複数のプロセッサに、
請求項1、2、3、4、6、7、8、9、10、または、11のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【0001】
[0001]本出願は、2019年3月26日に出願された米国出願第62/824,259号の利益を主張する、2020年3月18日に出願された米国出願第16/822,990号の優先権を主張し、それらの各々の内容全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
[0002]本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【0003】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタルレコーディングデバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲーム機、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、幅広いデバイスの中に組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、最近確定された高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などの、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実施することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU:coding unit)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャの中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【0005】
[0005]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って、符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データはピクセル領域から変換領域に変換されてよく、結果として残差変換係数が得られ、残差変換係数は、次いで、量子化され得る。最初に2次元アレイをなして配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【発明の概要】
【0006】
[0006]概して、本開示は、ビデオコーディングプロセスにおける適応ループフィルタ(ALF:adaptive loop filter)のブロックベースの適用例のための、ALFパラメータをコーディングするために、適応パラメータセットを使用するための技法を説明する。詳細には、本開示は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のためにALFが有効化されているとき、適応パラメータセットの個数ならびにその個数の適応パラメータセットの各々に対するインデックスがシグナリングされる、技法を説明する。本開示のいくつかの例では、適応パラメータセットの個数およびインデックスは、ピクチャ、スライス、タイル、またはタイルグループのルーマブロックおよびクロマブロックに対して異なってよい。このようにして、ALFパラメータは、異なる色成分に対して、よりフレキシブルにシグナリングされてよく、コーディング効率は多く向上される。
【0007】
[0007]一例では、方法は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数(a number of adaptive parameter set)を示す第1のシンタックス要素を復号することと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号することと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号することと、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに第1の適応ループフィルタを適用することと、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用することと、を含む。
【0008】
[0008]別の例では、デバイスは、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックとを、記憶するように構成されたメモリと、回路構成の中に実装されメモリと通信している1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号し、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに第1の適応ループフィルタを適用し、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用するように構成される。
【0009】
[0009]別の例では、デバイスは、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号するための手段と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号するための手段と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号するための手段と、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに第1の適応ループフィルタを適用するための手段と、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用するための手段と、を含む。
【0010】
[0010]別の例では、コンピュータ可読記憶媒体は、実行されたとき、プログラマブルプロセッサに、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号させ、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号させ、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号させ、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに第1の適応ループフィルタを適用させ、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用させる、命令で符号化される。
【0011】
[0011]一例では、方法は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化することと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化することと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化することとを含む。
【0012】
[0012]別の例では、デバイスは、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックとを、記憶するように構成されたメモリと、回路構成の中に実装されメモリと通信している1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化するように構成される。
【0013】
[0013]別の例では、デバイスは、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化するための手段と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化するための手段と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化するための手段と、を含む。
【0014】
[0014]別の例では、コンピュータ可読記憶媒体は、実行されたとき、プログラマブルプロセッサに、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化させ、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化させ、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化させる、命令で符号化される。
【0015】
[0015]1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0016】
【
図1】[0016]本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【
図2】[0017]HEVCデコーダの例示的なブロック図。
【
図3A】[0018]エッジオフセット(EO:edge offset)サンプル分類のための4つの1D方向性パターンを示す図。
【
図3B】エッジオフセット(EO)サンプル分類のための4つの1D方向性パターンを示す図。
【
図3C】エッジオフセット(EO)サンプル分類のための4つの1D方向性パターンを示す図。
【
図3D】エッジオフセット(EO)サンプル分類のための4つの1D方向性パターンを示す図。
【
図4A】[0019]適応ループフィルタ(ALF)パラメータを記憶するための例示的なアレイを示す図。
【
図4B】適応ループフィルタ(ALF)パラメータを記憶するための例示的なアレイを示す図。
【
図5】[0020]本開示で説明する技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【
図6】[0021]本開示で説明する技法を実施し得る例示的なビデオデコーダを示すブロック図。
【
図7】[0022]本開示の技法を実行するためのフィルタユニットの例示的な実装形態を示す図。
【
図8】[0023]本開示の例示的なビデオ符号化方法を示すフローチャート。
【
図9】[0024]本開示の例示的なビデオ復号方法を示すフローチャート。
【発明を実施するための形態】
【0017】
[0025]本開示は、ループ内コーディングの一部として後処理段階において、またはビデオコーディングの予測段階において使用され得る、フィルタ処理演算に関係する技法を説明する。本開示の技法は、ITU-T H.265/HEVC(高効率ビデオコーディング)規格などの既存のビデオコーデックへの改善または拡張として実施されてよく、および/または現在開発中のITU-T H.266/VVC(多用途ビデオコーディング)規格などの将来のビデオコーディング規格のための効率的なコーディングツールであり得る。
【0018】
[0026]ビデオコーディングは、通常、同じピクチャの中のビデオデータのすでにコーディングされたブロック(すなわち、イントラ予測)、または異なるピクチャの中のビデオデータのすでにコーディングされたブロック(すなわち、インター予測)のいずれかから、ビデオデータのブロックを予測することを含む。いくつかの例では、ビデオエンコーダはまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。ビデオエンコーダは、残差データを変換および量子化し得、変換および量子化された残差データを符号化ビットストリームの中でシグナリングし得る。
【0019】
[0027]ビデオデコーダは、予測ブロック単独よりもぴったりと元のビデオブロックに一致する再構成ビデオブロックを生成するために、残差データを予測ブロックに加算する。復号ビデオの品質をさらに改善するために、ビデオデコーダは、再構成ビデオブロックに対して1つまたは複数のフィルタ処理演算を実行することができる。これらのフィルタ処理演算の例は、デブロッキングフィルタ処理と、サンプル適応オフセット(SAO:sample adaptive offset)フィルタ処理と、適応ループフィルタ処理(ALF:adaptive loop filtering)とを含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され、符号化ビデオビットストリーム中で明示的にシグナリングされるか、またはパラメータが符号化ビデオビットストリーム中で明示的にシグナリングされる必要なしにビデオデコーダによって暗黙的に決定されるかのいずれかであり得る。
【0020】
[0028]本開示は、「適応ループフィルタ(ALF)」と呼ばれるフィルタ処理方法に関係する技法を説明する。ALFは、後処理段階において、もしくはループ内コーディングのために、または予測プロセスにおいて、使用され得る。SAOフィルタ処理および/またはALFは、様々な既存のビデオコーデック技術およびそのようなコーデックの拡張とともに使用されてよく、または任意の将来のビデオコーディング規格における効率的なコーディングツールであり得る。本開示に関係するHEVCおよび共同ビデオ探究部会(JVET:Joint Video Exploration Team)技法の共同探究モデル(JEM:Joint Exploratory Model)が以下で説明される。
【0021】
[0029]本開示で使用するビデオコーディングという用語は、ビデオ符号化またはビデオ復号のいずれかを総称的に指す。同様に、ビデオコーダという用語は、ビデオエンコーダまたはビデオデコーダを総称的に指してよい。その上、ビデオ復号に関して本開示で説明するいくつかの技法は、ビデオ符号化にも適用されてよく、その逆も同様である。たとえば、しばしば、ビデオエンコーダおよびビデオデコーダは、同じプロセスまたは逆の(reciprocal)プロセスを実行するように構成される。また、ビデオエンコーダは、通常、ビデオデータをどのように符号化するのかを決定するプロセスの一部としてビデオ復号を実行する。
【0022】
[0030]
図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、幅広いデバイスのいずれかであってよい。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されてよい。
【0023】
[0031]宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスであってよい。たとえば、符号化ビデオデータは、出力インターフェース22からリンク16に出力されてよい。一例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14へ直接送信することを可能にするための通信媒体であってよい。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調されてよく、宛先デバイス14へ送信されてよい。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線の通信媒体を含んでよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含んでよい。
【0024】
[0032]別の例では、符号化ビデオデータは、出力インターフェース22から記憶デバイス26に出力され得る。同様に、符号化ビデオデータは、入力インターフェース28によって記憶デバイス26からアクセスされ得る。記憶デバイス26は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、分散されるかまたはローカルにアクセスされる様々なデータ記憶媒体のいずれかを含んでよい。さらなる一例では、記憶デバイス26は、ソースデバイス12によって生成された符号化ビデオを保持し得る、ファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶されたビデオデータに記憶デバイス26からアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶すること、およびその符号化ビデオデータを宛先デバイス14へ送信することが可能な、任意のタイプのサーバであってよい。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTP(ファイル転送プロトコル)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準データ接続を通じて符号化ビデオデータにアクセスし得る。このことは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、有線接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含んでよい。記憶デバイス26からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであってよい。
【0025】
[0033]本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかのサポートの際にビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ伝送をサポートするように構成され得る。
【0026】
[0034]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含んでよい。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含んでよい。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、本開示で説明する技法は、概して、ビデオコーディングに適用可能であってよく、ワイヤレスおよび/または有線の適用例に適用されてよい。
【0027】
[0035]キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオが、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14へ直接送信され得る。符号化ビデオデータは同様に(または代替として)、復号および/または再生のために宛先デバイス14または他のデバイスによって後でアクセスするために、記憶デバイス26上に記憶され得る。
【0028】
[0036]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は受信機および/またはモデムを含んでよい。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信されるか、または記憶デバイス26上に提供された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成される様々なシンタックス要素を含んでよい。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される、符号化ビデオデータに含まれてよい。
【0029】
[0037]ディスプレイデバイス32は、宛先デバイス14と統合されてよく、または宛先デバイス14の外部にあってもよい。いくつかの例では、宛先デバイス14は、統合ディスプレイデバイスを含んでよく、同様に外部ディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス14はディスプレイデバイスであってよい。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかであってよい。
【0030】
[0038]ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得る。ビデオエンコーダ20およびビデオデコーダ30は、追加として、ビデオコーディング共同研究部会(JCT-VC)ならびにITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG)との3Dビデオコーディング拡張開発共同研究部会(JCT-3V)によって開発されている、レンジ拡張、マルチビュー拡張(MV-HEVC)、またはスケーラブル拡張(SHVC)などの、HEVC拡張に従って動作し得る。代替として、ビデオエンコーダ20およびビデオデコーダ30は、ISO/IEC MPEG-4,Part10,アドバンストビデオコーディング(AVC)と代替的に呼ばれるITU-T H.264規格などの、他のプロプライエタリ規格もしくは業界規格、またはスケーラブルビデオコーディング(SVC:Scalable Video Coding)およびマルチビュービデオコーディング(MVC:Multi-view Video Coding)拡張などの、そのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、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とを含む。そのレンジ拡張と、マルチビュー拡張(MV-HEVC)と、スケーラブル拡張(SHVC)とを含む、HEVC(ITU-T H.265)が、ビデオコーディング共同研究部会(JCT-VC)ならびにITU-Tビデオコーディングエキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)との3Dビデオコーディング拡張開発共同研究部会(JCT-3V)によって開発された。以下でHEVCと呼ばれる確定されたHEVCドラフトは、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipにおいて入手可能である。
【0031】
[0039]ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)が、現在、(スクリーンコンテンツコーディングおよび高ダイナミックレンジコーディングのための、HEVC規格の現在の拡張と短期での拡張とを含む)現在のHEVC規格の圧縮能力を潜在的に超える圧縮能力を有する将来のビデオコーディング技術の標準化に対する潜在的なニーズを検討している。そのグループは、このエリアにおけるそれらの専門家によって提案された圧縮技術設計を評価するために、共同ビデオ探究部会(JVET)と呼ばれる共同研究に取り組んでこの探究活動において協働している。JVETは、2015年10月19日~21日の間に最初に開催された。参照ソフトウェアの最新のバージョン、すなわち、共同探究モデル7(JEM7)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0/からダウンロードされ得る。JEM7のためのアルゴリズム記述が、J.Chen、E.Alshina、G.J.Sullivan、J.-R.Ohm、J.Boyce、「Algorithm description of Joint Exploration Test Model 7(JEM7)」、JVET-G1001、トリノ、2017年7月に記載されている。
【0032】
[0040]以下で説明する本開示の例では、ビデオエンコーダ20およびビデオデコーダ30は、多用途ビデオコーディング(VVC:Versatile Video Coding)とも呼ばれる開発中のITU-T H.266規格の1つまたは複数のバージョンに従って動作し得る。VVC規格のドラフトは、Brossら、「Versatile Video Coding(Draft7)」、ITU-T SG16 WP3とISO/IEC JTC1/SC29/WG11との共同ビデオエキスパートチーム(JVET)、第16回会合、ジュネーブ、スイス、2019年10月1日~11日、JVET-P2001-v14(以下で「VVCドラフト7」)に記載されている。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
【0033】
[0041]
図1に示さないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中でオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアとソフトウェアとを含んでよい。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0034】
[0042]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダ回路構成またはデコーダ回路構成のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、本開示の技法を実行するために、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体の中に記憶してよく、1つまたは複数のプロセッサを使用してハードウェアで命令を実行してよい。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダの中に含まれてよく、それらのいずれもそれぞれのデバイスの中に複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0035】
[0043]以下でより詳細に説明するように、ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化するように構成され得る。
【0036】
[0044]相反して、ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号し、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号し、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに第1の適応ループフィルタを適用し、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用するように構成され得る。
【0037】
[0045]HEVC、VVC、および他のビデオコーディング仕様では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。例示的な手法では、ピクチャは、SL、SCb、およびSCrと示される、3つのサンプルアレイを含んでよい。そのような例示的な手法では、SLはルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbはCbクロミナンスサンプルの2次元アレイである。SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書で「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロであってよく、ルーマサンプルのアレイのみを含んでよい。
【0038】
[0046]ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの対応する2つのコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを含んでよい。モノクロピクチャ、または3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを含み得る。コーディングツリーブロックは、サンプルのN×Nブロックであってよい。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックと概して類似であってよい。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含み得る。
【0039】
[0047]コード化CTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するためにCTUのコーディングツリーブロックに対して4分木区分を再帰的に実行し得、したがって、「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのN×Nブロックであってよい。CUは、ルーマサンプルアレイと、Cbサンプルアレイと、Crサンプルアレイとを有するピクチャの、ルーマサンプルのコーディングブロックと、クロマサンプルの対応する2つのコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを含み得る。モノクロピクチャ、または3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを含み得る。
【0040】
[0048]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測がそれに対して適用されるサンプルの長方形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU:prediction unit)は、ルーマサンプルの予測ブロックと、クロマサンプルの対応する2つの予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを含み得る。モノクロピクチャ、または3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを含み得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのための、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成し得る。
【0041】
[0049]ビデオエンコーダ20は、PUのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャの復号サンプルに基づいてPUの予測ブロックを生成し得る。ビデオエンコーダ20が、PUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいてPUの予測ブロックを生成し得る。
【0042】
[0050]ビデオエンコーダ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コーディングブロックの中の対応するサンプルとの間の差分を示し得る。
【0043】
[0051]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解するために、4分木区分を使用し得る。変換ブロックは、同じ変換がそれに対して適用されるサンプルの長方形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU:transform unit)は、ルーマサンプルの変換ブロックと、クロマサンプルの対応する2つの変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを含み得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連し得る。TUに関連するルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。モノクロピクチャ、または3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを含み得る。
【0044】
[0052]ビデオエンコーダ20は、TUのためのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは変換係数の2次元アレイであってよい。変換係数はスカラー数量であってよい。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【0045】
[0053]CTU、CU、PU、およびTUを有する上記のブロック構造は、概して、HEVCにおいて使用されるブロック構造を表す。しかしながら、他のビデオコーディング規格は、異なるブロック構造を使用することがある。一例として、HEVCは、PUおよびTUが異なるサイズまたは形状を有することを許容するが、他のビデオコーディング規格は、予測ブロックおよび変換ブロックが同じサイズを有することを必要とし得る。本開示の技法は、HEVCまたはVVCのブロック構造に限定されず、他のブロック構造と互換性があり得る。
【0046】
[0054]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化とは、概して、変換係数を表すために使用されるデータの量をできる限り低減するように変換係数が量子化され、さらなる圧縮をもたらすプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行してよい。
【0047】
[0055]ビデオエンコーダ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個のビットを含む。
【0048】
[0056]異なるタイプのNALユニットが、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットは、ピクチャパラメータセット(PPS:picture parameter set)のためのRBSPをカプセル化し得、第2のタイプのNALユニットは、コード化スライスのためのRBSPをカプセル化し得、第3のタイプのNALユニットは、補足エンハンスメント情報(SEI:supplemental enhancement information)メッセージのためのRBSPをカプセル化し得、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPではなく)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL:video coding layer)NALユニットと呼ばれ得る。
【0049】
[0057]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するために、ビットストリームを構文解析(parse)し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ20によって実行されるプロセスの相反であってよい。加えて、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUに関連する変換ブロックを再構成するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成し得る。ピクチャのCUごとにコーディングブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成し得る。
【0050】
[0058]HEVC、VVC、およびJEM技法の態様が、次に説明される。
図2は、HEVCデコーダ31の例示的なブロック図を示す。
図2に示すビデオデコーダ31は、以下でより詳細に説明される、上記で説明したビデオデコーダ30に相当し得る。HEVCは、デブロッキングフィルタ(DBF:de-blocking filter)とSAOとを含む、2つのループ内フィルタを採用する。HEVC復号およびSAOに関する追加の詳細が、C.Fu、E.Alshina、A.Alshin、Y.Huang、C.Chen、Chia.Tsai、C.Hsu、S.Lei、J.Park、W.Han、「Sample adaptive offset in the HEVC standard」、IEEE Trans.Circuits Syst.Video Technol.,22(12):1755-1764(2012)に記載されている。
【0051】
[0059]
図2に示すように、DBFへの入力は、再構成ブロックからの出力を用いて示すように、イントラ予測またはインター予測の後の再構成された画像であってよい。DBFは、コード化ブロック境界におけるアーティファクトの検出を実行し、選択されたフィルタを適用することによってアーティファクトを弱める。H.264/AVCデブロッキングフィルタと比較して、HEVCデブロッキングフィルタは、視覚的アーティファクトの著しい低減を依然として達成しながら、計算量がより少なく、並列処理能力がより良好である。追加の例については、A.Norkin、G.Bjontegaard、A.Fuldseth、M.Narroschke、M.Ikeda、K.Andersson、Minhua Zhou、G.Van der Auwera、「HEVC Deblocking Filter」、IEEE Trans.Circuits Syst.Video Technol.,22(12):1746-1754(2012)を参照されたい。
【0052】
[0060]HEVCでは、デブロッキングフィルタ決定は、ピクチャを8×8サンプルのブロックに分割するグリッド上にある、4サンプル長の境界ごとに別個に行われる。次の条件、すなわち、(1)ブロック境界が予測ユニット(PU)または変換ユニット(TU)境界であること、(2)下の表1において規定されるように境界強度(Bs)が0よりも大きいこと、および(3)ブロック境界両側での、下の式(1)において規定されるような信号の変動が、指定されたしきい値を下回ることが、真である場合、ブロック境界に対してデブロッキングが実行される。
【0053】
[0061]表1.隣接する2つのルーマブロックの間の境界に対する境界強度(Bs)値
【0054】
【0055】
ルーマブロック境界に対してBs>0である場合、次の条件が成り立つ場合に、その境界にデブロッキングフィルタ処理が適用される。
【0056】
【0057】
[0062]HEVCは、2つのタイプのルーマデブロッキングフィルタ、すなわち、(i)通常のフィルタ、および(ii)強力なフィルタを許容する。デブロッキングフィルタの選択は、特定の信号変動項がいくつかのしきい値よりも小さいかどうかに依存する(詳細については上で引用された、Norkinらによる「HEVC Deblocking Filter」(2012)を参照されたい)。フィルタ処理決定は、4ピクセル長の垂直(または場合によっては、水平)境界の2つの行(列)のみに基づくが、フィルタは、境界の中のすべての行(または場合によっては、列)に適用される。フィルタ処理プロセスにおいて使用されるピクセルの個数、および各タイプのフィルタ処理を用いて修正され得るピクセルの個数が、下の表2において要約される。
【0058】
【0059】
[0063]Bsが2に等しいときにしか、クロマデブロッキングは実行されない。1つのタイプのクロマデブロッキングフィルタしか使用されない。クロマデブロッキングフィルタは、ピクセルp0、p1、q0、q1を使用し、各行の中のピクセルp0とq0とを修正し得る(すべての行にフィルタが適用されるので、行インデックスを示す第2の下付き文字は、簡潔のために上記の説明では省略される)。JEMでは、デブロッキングはCUレベルで実行される。境界の両側におけるCUのサイズは8×8よりも大きくなり得る。JEMにおける最小CUサイズは4×4である。したがって、デブロッキングフィルタはまた、4×4ブロックの境界に適用されてよい。
【0060】
[0064]SAOへの入力は、
図2の中でデブロッキングフィルタからの出力を用いて示すように、デブロッキングフィルタを適用した後の再構成された画像であってよい。SAOの概念/着想とは、選択された分類器を用いて領域サンプルを複数のカテゴリーに最初に分類し、各カテゴリーについてオフセットを取得し、次いで、当該カテゴリーの各サンプルに当該オフセットを加えることによって、領域の平均サンプルひずみを低減することであり、ここで、領域の分類器インデックスおよびオフセットは、ビットストリーム中にコーディングされる。HEVCでは、領域(SAOパラメータシグナリングのための単位)は、CTUであるものと規定される。
【0061】
[0065]低複雑度という要件を満たすことができる2つのSAOタイプが、HEVCにおいて採用される。これらの2つのタイプとは、以下でさらに詳細に説明されるエッジオフセット(EO)およびバンドオフセット(BO:band offset)である。SAOタイプのインデックスがコーディングされる。EOの場合、サンプル分類は、次の1D方向性パターン、すなわち、水平、垂直、135°対角、および45°対角による、現在のサンプルと隣接するサンプルとの間の比較に基づく。
【0062】
[0066]
図3A~
図3Dは、EOサンプル分類、すなわち、水平(
図3A、EOクラス=0)、垂直(
図3B、EOクラス=1)、135°対角(
図3C、EOクラス=2)、および45°対角(
図3D、EOクラス=3)のための、4つの1D方向性パターンを示す。SAOに関係する追加の詳細は、C.Fu、E.Alshina、A.Alshin、Y.Huang、C.Chen、Chia.Tsai、C.Hsu、S.Lei、J.Park、W.Han、「Sample adaptive offset in the HEVC standard」、IEEE Trans.Circuits Syst.Video Technol.,22(12):1755-1764(2012)に記載されている。
【0063】
[0067]選択されるEOパターンに従って、表3においてedgeIdxによって示される5つのカテゴリーがさらに規定される。0~3に等しいedgeIdxに対して、オフセットの大きさがシグナリングされ得るが、符号フラグ(sign flag)は暗黙的にコーディングされ、すなわち、edgeIdxに対する負のオフセットは0または1に等しく、edgeIdxに対する正のオフセットは2または3に等しい。4に等しいedgeIdxに対して、オフセットは常に0に設定され、それは、この場合については演算が必要とされないことを意味する。
【0064】
【0065】
[0068]BOの場合、サンプル分類はサンプル値に基づく。各色成分は、BOタイプのSAOフィルタ処理に対する分類のための、それ自体のSAOパラメータを有してよい。BOは、同じバンドのすべてのサンプルに1つのオフセットが加算されることを暗示する。サンプル値範囲は、32個のバンドに等しく分割される。0から255までにわたる8ビットサンプルに対して、バンドの幅は8であり、8kから8k+7までのサンプル値がバンドkに属し、ただし、kは0から31までにわたる。同じバンドのすべてのサンプルに1つのオフセットが加算される。バンドの中の元のサンプルと再構成されたサンプルとの間の平均差分(すなわち、バンドのオフセット)が、デコーダ(たとえば、ビデオデコーダ30)にシグナリングされる。オフセット符号に対して制約はない。連続する4つのバンドのオフセット、および開始バンド位置だけが、デコーダ(たとえば、ビデオデコーダ30)にシグナリングされる。
【0066】
[0069]ビデオエンコーダ20およびビデオデコーダ30は、JEMに記載される様々なALFフィルタ処理技法を実施するように構成され得る。これらのJEMフィルタ処理技法(たとえば、ALF)の態様が次に説明される。修正されたデブロッキングおよびHEVC SAO方法に加えて、JEMは、ジオメトリ変換ベース適応ループフィルタ処理(GALF:Geometry transformation-based Adaptive Loop Filtering)と呼ばれる、別のフィルタ処理方法を含む。ALF/GALFへの入力は、SAOの適用の後の再構成された画像(たとえば、
図2の中のサンプル適応オフセットの出力)であってよい。GALFの態様は、Tsai,C.Y.、Chen,C.Y.、Yamakage,T.、Chong,I.S.、Huang,Y.W.、Fu,C.M.、Itoh,T.、Watanabe,T.、Chujoh,T.、Karczewicz,M.、およびLei,S.M.、「Adaptive loop filtering for video coding」、IEEE Journal of Selected Topics in Signal Processing,7(6),934~945頁、2013年、ならびにM.Karczewicz、L.Zhang、W.-J.Chien、およびX.Li、「Geometry transformation-based adaptive in-loop filter」、Picture Coding Symposium(PCS),2016年に記載されている。
【0067】
[0070]ALF技法は、適応ウィーナー(Wiener)フィルタを使用することによって、元のサンプルと復号サンプルとの間の平均2乗誤差を最小化することを試みる。入力画像をp、ソース画像をS、FIR(有限インパルス応答)フィルタをhと示す。ここで、以下の表現の2乗誤差和(SSE:sum of squared errors)が最小化されるべきであり、ただし、(x,y)は、pまたはSの中の任意のピクセル位置を示す。
【0068】
【0069】
hoptとして示される最適なhは、次のようにh(i,j)に関するSSEの偏導関数(partial derivative)を0に等しく設定することによって取得され得る。
【0070】
【0071】
これは、最適フィルタhoptを与える、以下に示すWiener-Hopf式につながる。
【0072】
【0073】
[0071]JEMのいくつかの例では、ピクチャ全体に対して1つのフィルタを使用するのではなく、ピクチャの中のサンプルが、局所勾配に基づいて25個のクラスに分類される。各クラスの中のピクセルに対して、別個の最適なウィーナーフィルタが導出される。シグナリングオーバーヘッドと計算量とを低減することによってALFの有効性を高めるために、いくつかの技法が採用されている。シグナリングオーバーヘッドおよび/または計算量を低減することによってALF有効性を高めるために使用されている技法のうちのいくつかが、以下に列挙される。
【0074】
1.固定フィルタからの予測:各クラスについて最適なフィルタ係数が、各クラスに16個の候補フィルタからなる、固定フィルタの予測プールを使用して予測される。各クラスに対し最良の予測候補が選択され、予測誤差だけが送信される。
【0075】
2.クラスマージング:25個の異なるフィルタ(クラスごとに1つ)を使用するのではなく、コーディングされるべきフィルタパラメータの個数を低減するために、複数のクラスの中のピクセルが1つのフィルタを共有することができる。2つのクラスをマージすることは、より大きい累積SSEに、ただし、より低いレートひずみ(R-D)コストにつながり得る。
【0076】
3.可変数のタップ:フィルタタップの個数がフレームレベルで適応的である。理論的には、より多くのタップを有するフィルタは、より小さいSSEを達成できるが、より多くのフィルタ係数に関連するビットオーバーヘッドのために、レートひずみ(R-D)コストに関して良好な選択でない場合がある。
【0077】
4.ブロックレベルのオン/オフ制御:ブロック単位でALFがオンおよびオフにされ得る。オン/オフ制御フラグがシグナリングされるブロックサイズが、フレームレベルで適応的に選択される。フィルタ係数は、ALFがオンであるブロックのみからのピクセルを使用して再算出され得る。
【0078】
5.時間予測:前にコーディングされたフレームに対して導出されるフィルタが、バッファの中に記憶される。現在フレームがPフレームまたはBフレームである場合、フィルタの記憶されたセットのうちの1つが、より良好なRDコストにつながる場合に、このフレームをフィルタ処理するために使用され得る。時間予測の使用を示すためにフラグがシグナリングされる。時間予測が使用される場合、記憶されたフィルタのどのセットが使用されるのかを示すインデックスが、シグナリングされる。ALF係数の追加のシグナリングは必要とされない。時間予測を使用するフレームに対して、ブロックレベルのALFオン/オフ制御フラグもシグナリングされ得る。
【0079】
[0072]ALFのいくつかの態様の詳細が、この段落および以下の段落で手短に要約される。ALFのいくつかの態様は、ピクセル分類およびジオメトリ変換に関係する。(ALFの前の)再構成されたフレームの中の各ピクセルをカバーする6×6ウィンドウ内のすべてのピクセルにおける、垂直、水平、および対角のラプラシアン(Laplacian)の絶対値の和が、算出される。再構成されたフレームは、次いで、オーバーラップされない2×2ブロックに分割される。これらのブロックの中の4つのピクセルが、そのブロックの合計のラプラシアンアクティビティ(total Laplacian activity)および方向性に基づいて、Ck(k=0、1、...、24)として示される25個のカテゴリーのうちの1つに分類される。追加として、4つのジオメトリ変換(変換なし、対角フリップ、垂直フリップ、または回転)のうちの1つも、そのブロックの勾配方向性に基づいてフィルタに適用される。その詳細は、M.Karczewicz、L.Zhang、W.-J.Chien、およびX.Li、「Geometry transformation-based adaptive in-loop filter」、Picture Coding Symposium(PCS)、2016年の中に見出すことができる。
【0080】
[0073]ALFのいくつかの態様は、フィルタ導出、および固定フィルタからの予測に関係する。各クラスCkについて、フィルタによって与えられるSSEに基づいて、hpred,kとして示されるCkのためのプールから最良の予測フィルタが最初に選択される。最小化されることになる、CkのSSEは、以下のように書くことができる。
【0081】
【0082】
ただし、hΔ,kは、Ckに対する最適フィルタとhpred,kとの間の差分である。hpred,kによってピクセルp(x,y)をフィルタ処理した結果を、p’(x,y)=Σi,jhpred,k(i,j)p(x-i,y-j)とする。このとき、SSEkに対する表現は、次のように書き直すことができる。
【0083】
【0084】
hΔ,k(i,j)に関するSSEkの偏導関数を0に等しくすることによって、修正されたWiener-Hopf式が次のように取得される。
【0085】
【0086】
表現の簡単のために、Rpp,k(i-m,j-n)およびRps,k’(m,n)によって、(x,y)∈Ckを用いて、Σx,yp(x-i,y-j)p(x-m,y-n)およびΣx,y(S(x,y)-p’(x,y))p(x-m,y-n)をそれぞれ示す。このとき、上の式は次のように書くことができる。
【0087】
【0088】
すべてのCkに対して、自己相関行列Rpp,k(i-m,j-n)および相互相関ベクトルRps,k’(m,n)が、すべての(x,y)∈Ckにわたって算出される。
【0089】
[0074]ALFの一例では、最適フィルタと固定予測フィルタとの間の差分だけが計算および送信される。プールの中で利用可能な候補フィルタのいずれもが良好な予測子でない場合、予測子として恒等(identity)フィルタ(すなわち、入力と出力とを同一にさせる、中心において1に等しい1つの非0係数しか有しないフィルタ)が使用される。
【0090】
[0075]ALFのいくつかの態様は、ピクセルクラスのマージングに関係する。フィルタ係数をシグナリングするオーバーヘッドを低減するために、クラスがマージされる。2つのクラスをマージするコストは、SSEに関して増大する。それぞれ、SSEmおよびSSEnによって与えられるSSEを有する、2つのクラスCmとCnとを考える。SSEm+nとして示されるSSEを有する、CmとCnとをマージすることによって取得されるクラスを、Cm+nと示すものとする。SSEm+nは、常にSSEm+SSEn以上である。CmとCnとをマージすることによって引き起こされるSSEの増加量をΔSSEm+nと示すものとし、それは、SSEm+n-(SSEm+SSEn)に等しい。SSEm+nを計算するために、hΔ,m+n、すなわち、Cm+nに対するフィルタ予測誤差を、(1)と類似の次の表現を使用して導出する必要がある。
【0091】
【0092】
マージされたカテゴリーCm+nに対するSSEが、次いで、次のように計算され得る。
【0093】
【0094】
[0076]クラスの個数をN個からN-1個に減らすために、2つのクラスCmおよびCnが、それらをマージすることが任意の他の組合せと比較して最小のΔSSEm+nにつながるように、見つけられる必要があり得る。いくつかのALF設計は、マージコストが最小のペアを見つけるために、マージングに対する利用可能なクラスのすべてのペアをチェックする。
【0095】
[0077]CmおよびCn(m<nを伴う)がマージされる場合、Cnは、さらなるマージングにとって利用不可能とマークされ、Cmに対する自己相関および相互相関は、次のように、合成された自己相関および相互相関に変更される。
【0096】
【0097】
[0078]マージングの後のALFクラスの最適な個数が、RDコストに基づいて各フレームに対し決定される必要がある。このことは、25個のクラスとともに開始し、1つのクラスだけが残されるまで(利用可能なクラスのセットからの)1対のクラスを連続的にマージすることによって、行われる。マージングの後に残された可能性のあるクラスの各個数(1、2、...、25)に対し、どのクラスが一緒にマージされるのかを示すマップが記憶される。RDコストが最小化されるような、クラスの最適な個数が、次いで、次のように選択される。
【0098】
【0099】
ただし、D|Nは、N個のクラスを使用する合計のSSE
【0100】
【0101】
であり、R|Nは、N個のフィルタをコーディングするために使用されるビットの総数であり、λは、量子化パラメータ(QP:quantization parameter)によって決定される重み付け係数である。どのクラスが一緒にマージされるのかを示す、Nopt個のクラスに対するマージマップが送信される。
【0102】
[0079]ALFパラメータのシグナリングの態様が次に説明される。ALFパラメータ符号化プロセスの簡潔な段階的説明が、次のように与えられる。
【0103】
1.フレームレベルのALFオン/オフフラグをシグナリングする。
【0104】
2.ALFがオンである場合、時間予測フラグをシグナリングする。
【0105】
3.時間予測が使用される場合、現在フレームをフィルタ処理するために、対応するALFパラメータが使用される、フレームのインデックスをシグナリングする。
【0106】
4.時間予測が使用されない場合、次のように補助(auxiliary)ALF情報とフィルタ係数とをシグナリングする。
【0107】
a.フィルタ係数をシグナリングする前に、以下の補助ALF情報がシグナリングされる。
【0108】
i.クラスマージングの後に使用される固有フィルタの個数。
【0109】
ii.フィルタタップの数。
【0110】
iii.どのクラスがフィルタ予測誤差を共有するのかを示すクラスマージ情報。
【0111】
iv.各クラスについての固定フィルタ予測子のインデックス。
【0112】
b.補助情報をシグナリングした後、フィルタ係数予測誤差が次のようにシグナリングされる。
【0113】
i.マージングの後の残りのクラスのうちのいくつかに対して、フィルタ予測誤差が0に強制されるかどうかを示すために、フラグがシグナリングされる。
【0114】
ii.(マージングの後に残されたクラスの個数が1よりも大きい場合)フィルタ予測誤差をシグナリングするために差分コーディングが使用されるかどうかを示すために、フラグがシグナリングされる。
【0115】
iii.フィルタ係数予測誤差が、次いで、k次のExp-Golombコードを使用してシグナリングされ、ここで、異なる係数位置に対するk値は経験的に(empirically)選択される。
【0116】
c.利用可能な場合、クロマ成分のためのフィルタ係数が、いかなる予測方法も用いずに直接コーディングされる。
【0117】
5.最後に、ブロックレベルのALFオン/オフ制御フラグがシグナリングされる。
【0118】
[0080]ALFフィルタパラメータは、VVCにおけるAPSの中でシグナリングされる。VVCにおけるALF APSでは、シグナリングは以下のことを含み得る。
【0119】
1.ALF APSがルーマALFフィルタを含むかどうかをシグナリングする。
【0120】
2.ルーマALFフィルタを含むALF APSの場合、
a.クラスマージングの後に使用される固有ルーマフィルタの個数をシグナリングする。
【0121】
b.どのクラスが同じフィルタを共有するのかを示すクラスマージ情報をシグナリングする。
【0122】
c.ルーマALFフィルタにクリッピング(clipping)が適用される場合、フラグをシグナリングする。
【0123】
d.a~cの後、フィルタ係数をシグナリングし、ルーマALFフィルタにクリッピングが適用される場合、クリッピングパラメータがシグナリングされる。
【0124】
3.ALF APSがクロマALFフィルタを含むかどうかをシグナリングする。
【0125】
a.固有クロマフィルタの個数をシグナリングする。
【0126】
b.クロマALFフィルタにクリッピングが適用される場合、フラグをシグナリングする。
【0127】
c.a~bの後、フィルタ係数をシグナリングし、ルーマALFフィルタにクリッピングが適用される場合、クリッピングパラメータがシグナリングされる。
【0128】
[0081]ピクチャまたはの中で使用されるALF APSインデックスが、VVCにおけるピクチャヘッダおよび/またはスライスヘッダの中でシグナリングされる。
【0129】
ルーマ:
1.ピクチャ/スライスレベルのルーマALFオン/オフフラグをシグナリングする。
【0130】
2.ルーマに対してALFがオンである場合、現在のピクチャ/スライスのルーマ成分に適用されるAPSの個数をシグナリングする。
【0131】
3.APSの個数が0よりも大きい場合、現在のピクチャ/スライスのルーマ成分に適用される各APSインデックスをシグナリングする。
【0132】
クロマ:
1.ピクチャ/スライスレベルのクロマALFオン/オフ情報をシグナリングする。
【0133】
2.任意のクロマ成分に対してALFがオンである場合、現在のピクチャ/スライスのクロマ成分に適用されるAPSインデックスをシグナリングする。
【0134】
3.クロマCTBに対してALFがオンである場合、フィルタインデックスがシグナリングされる。
【0135】
[0082]コーディングツリーブロック(CTB:coding tree block)レベルのオン/オフフラグ、およびフィルタインデックス情報もシグナリングされる。
【0136】
ルーマ:
ルーマCTBに対するALFオン/オフフラグをシグナリングする。
【0137】
ルーマCTBに対してALFがオンである場合、固定フィルタセットインデックスまたはAPSインデックスがシグナリングされる。
【0138】
クロマ:
クロマCTBに対するALFオン/オフフラグをシグナリングする。
【0139】
[0083]JEMのいくつかの例におけるALFの設計は、1つまたは複数の潜在的な問題を提示することがある。一例として、いくつかの例示的なALF設計は、フレーム全体に対してフィルタの1つのセット(ピクセルのクラスごとに1つ、またはフレームにおける複数のクラスの間で共有される1つのフィルタ)を設計するために、各フレームにわたって複数のパスを実行する。このことは、大きいエンコーダレイテンシをもたらす。このことは、ビデオ会議などの低遅延アプリケーションにおいて特に問題となり、ここで、部分的に符号化されたフレームでさえも、できるだけ早くチャネルへ送ることが重要であり得る。
【0140】
[0084]別の例として、いくつかのALF設計によれば、ピクチャ全体に対してフィルタの1つのセットが使用される。元のピクチャおよび再構成されたピクチャの小さいブロックにおける局所統計量(local statistic)は、ピクチャ全体を使用して取得される累積統計量(cumulative statistcs)とは異なる場合がある。したがって、ピクチャ全体にとって最適なALFフィルタは、所与のブロックにとって最適でない場合がある。
【0141】
[0085]別の例として、もっと良好な局所的適応性を得るためにピクチャの小さいブロックを使用するウィーナーフィルタの新たなセットを設計することを伴う潜在的な問題とは、小さいブロックの中で利用可能なピクセルの個数が、相関行列および相関ベクトルの良好な推定値を得るのに十分でない場合があることである。このことは、良好なALF係数を与えないことがある不良設定の(ill-posed)Wiener-Hopf式につながる場合がある。
【0142】
[0086]別の例として、いくつかの例示的なALF設計は、25個のクラスの各々に対して16個の固定フィルタを規定し、それによって、合計で400個のフィルタをもたらす。これらのフィルタは、各クラスについて、最終のフィルタ係数のための予測子(predictor)フィルタとして使用され得る。使用される予測子フィルタのインデックスが、クラスごとにシグナリングされる。このことは、大きいシグナリングオーバーヘッドを引き起こす場合があり、全体的なコーディング利得を下げる場合がある。
【0143】
[0087]フィルタの固定されたセットを予測子として使用する、別の潜在的な欠点は、予測子セットが、前のフレームのために設計された新たなフィルタに基づいて修正されないことである。時間的に隣接するフレームは、類似の統計量を有する可能性があるので、前のフレームのための最適フィルタを使用することは、現在フレームのための最適フィルタの効率的な予測につながり得る。
【0144】
[0088]別の例として、いくつかの例示的なALF設計は、ブロックレベルのフィルタオン/オフ決定を行うために、現在フレームにわたる2つのパスを必要とする。このことは、追加のエンコーダレイテンシをもたらす。ALFオン/オフフラグがシグナリングされるブロックは、コーディングユニット(CU)と整合(align with)しない。したがって、モード、コード化ブロックフラグ(CBF:coded block flag)などの、CU情報は、ALFオン/オフ制御決定の際に考慮に入れることができない。この情報を使用することは、オン/オフシグナリングオーバーヘッドを低減し得る。
【0145】
[0089]上記で説明した問題のうちの1つまたは複数に対処するために、本開示は、ALFによって取得されるコーディング利得と視覚的品質とをさらに改善するための技法を説明する。ビデオエンコーダ20および/またはビデオデコーダ30は、以下の項目別の技法のうちのいずれかを個別に適用し得る。代替として、ビデオエンコーダ20および/またはビデオデコーダ30は、以下で説明する項目別の技法の任意の組合せを適用してもよい。
【0146】
[0090]本開示のいくつかの技法によれば、ビデオエンコーダ20は、1つのピクチャ/スライス/タイル/タイルグループの中のブロックごとに、ALFフィルタのセットをシグナリングし得る。ALFセット(たとえば、上述のALFフィルタのセット)は、一例では、フィルタセットのリストの中でセットインデックスによって示され得る。インデックスは、いくつかの例では、リストの中に含まれるALFフィルタの複数のセットの中から、ALFフィルタの特定のセットを識別する。
【0147】
a.一例では、ブロックは、コーディングツリーユニット(CTU)または任意の他のブロックであり得る。ブロックは、区分(partitioning)から分離され得る。
【0148】
b.一例では、ピクチャ/スライス/タイル/タイルグループごとのフィルタの複数のセットのリストが提供され、ここで、各セットは、クラスごとに割り当てられたフィルタを含み得る。セットインデックスは、ブロックごとにシグナリングされ得る。ALFが使用されないことを示すために、ブロックごとにフラグがシグナリングされ得る。
【0149】
c.フィルタのセットのリストは、事前トレーニングされた固定フィルタのセットと、前のフレームを使用して導出されたフィルタまたはビットストリームの中でシグナリングされるフィルタのセットとを含むことができる。
【0150】
[0091]本開示のいくつかの例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、異なるピクチャにわたってフィルタセットのリストを共有し得る。一例では、フィルタセットリストは、事前トレーニングされたフィルタとともに初期化され得る。ピクチャをコーディングした後、ビデオエンコーダ20は、符号化ピクチャに基づいて新たなフィルタセットを導出し得、新たなフィルタセットをフィルタセットリストに追加し得る。
代替として、新たなフィルタセットは、リストの中の既存のフィルタセットを置き換えることができる。別のピクチャをコーディングした後、ビデオエンコーダ20は、別のフィルタセットを導出してよく、導出されたフィルタセットをフィルタセットリストの中に含めてよい。この例では、フィルタセットリストは、すべてのピクチャにとって共通であり、ピクチャをコーディングした後に更新されてよい。デコーダ側からは、ビデオデコーダ30が、ピクチャを復号した後、またはピクチャの復号の前に、新たなフィルタセットのシグナリングを検出し得る。
【0151】
[0092]本開示のいくつかの例によれば、ビデオエンコーダ20は、ピクチャ/スライス/タイル/タイルグループごとにフィルタの新たなセットのシグナリングを可能にし得る。
【0152】
a.一例では、フィルタの新たなセットがフィルタセットリストに追加され得る。更新済みのリストが、次いで、1つまたは複数の次のピクチャの中のブロックをフィルタ処理するために使用され得る。
【0153】
b.別の例では、(現在のピクチャ/スライス/タイル/タイルグループを使用して導出されたフィルタの新たなセットを含む)更新済みのリストが、現在のピクチャ/スライス/タイル/タイルグループの中のブロックをフィルタ処理するために使用され得る。
【0154】
[0093]本開示のいくつかの例によれば、フィルタセットリストは、前のピクチャ/スライス/タイル/タイルグループを使用して導出されたフィルタを用いて更新され得る。フィルタセットリストの中でフィルタセットが追加または順序付けされる順序は、不変であってよく、事前定義されてよく、またはフレキシブルであってよい。リストは、現在ピクチャに関係する情報、およびリストの中の対応するフィルタがそこから導出されるピクチャに関係する情報に基づいて、ピクチャごとに並べ替えることができる。ビデオエンコーダ20は、フィルタセットリストの中のインデックスを使用してビデオデコーダ30にフィルタセットを示してよい。いくつかの例では、ビデオエンコーダ20は、より頻繁に使用されるフィルタまたは新たに追加されるフィルタに、より小さいインデックス値を割り当ててよい。
【0155】
a.一例では、新たに導出されたフィルタセットは、リストの冒頭に追加され得る。別の例では、前のフレームを使用して導出されたフィルタのセットは、リストの中で、リストの中の既存のフィルタセット、たとえば、固定フィルタのセットの前に配置されてよい。
【0156】
b.リストの中のフィルタセットの順序付けは、他のピクチャ関連情報に依存し得る。たとえば、同じ時間レイヤの中のピクチャから導出されるフィルタは、リストの中で、別の時間レイヤの中のピクチャを使用して導出されるフィルタの前に配置されてよい。
【0157】
c.一例では、リストの中のフィルタセットのインデックスは、そのフィルタセットが導出される対応するピクチャが、現在ピクチャの予測のために使用される参照ピクチャであるかどうかに依存し得る。より頻繁に使用される参照ピクチャに対応するフィルタは、他の参照ピクチャから導出されるフィルタの前に配置されてよい。
【0158】
d.一例では、現在ピクチャと類似のQPを用いてコーディングされたピクチャを使用して導出されるフィルタは、異なるQPを用いてコーディングされた前のピクチャから導出されるフィルタの前に配置されてよい。
【0159】
e.リストの中のフィルタの最大個数は限定され得る。一例では、フィルタの32個までのセットがリストの中に保持され得る。リストの中のフィルタセットの最大個数は、スライスヘッダ、シーケンスパラメータセット、ピクチャパラメータセット、もしくは他の高レベルシンタックス情報の中で、または別の場所でシグナリングされ得る。
【0160】
f.ビデオエンコーダ20は、異なるセットインデックスをシグナリングするために、異なる数のビットを使用することができる。より上位のインデックス位置と比較して、(リストの上部の近くのフィルタセットは選択される可能性がより高いので)リストの中のより下位のインデックス位置を示すために、より少ないビットが使用され得る。
【0161】
[0094]本開示のいくつかの例によれば、いくつかのブロックが同じALF情報を共有すること、たとえば、2つ以上のブロックにわたるALF情報のマージングができる。一例では、フィルタのセットのインデックス、および/またはALFオン/オフフラグ(このフラグは、ブロックにALFが適用されるかどうかを示す)は、複数のブロックにわたって共有され得る。ALFマージインジケータは、どのブロックがマージされるのかと、どのALF情報がALFマージインジケータに関連するのかとを示してよい。マージインジケータは、インデックス、フラグ、または任意の他のシンタックス要素であり得る。
【0162】
a.ブロックのALF情報は、上のブロックと、または左側のブロックと、マージされ得る。
【0163】
b.ピクチャの中の任意の(すなわち、必ずしも隣接ブロックとは限らない)他のブロックとの1つのブロックのマージングを可能にする、よりフレキシブルなALF情報マージングも使用され得る。
【0164】
[0095]本開示のいくつかの例では、ALFオン/オフフラグは、他の既存のブロック情報に基づいて導出され得る。一例では、ビデオデコーダ30は、既存のブロック情報に基づいてALFオン/オフフラグを導出してよく、したがって、ビデオエンコーダ20は、ALFオン/オフフラグをシグナリングしなくてよい。ビデオエンコーダ20は、ALFブロックとして示されるブロックのグループに対してALFオン/オフフラグをシグナリングし得る。たとえば、同じALFオン/オフフラグを共有するブロックは、ALFブロックを表すことができる。別の例では、ALFブロックはブロックに等しくてよい。
【0165】
a.一例では、ALFオン/オフフラグは、同じALFオン/オフフラグを共有し、非0のCBFフラグを有する、ALFブロックの中のブロックの個数に基づいて導出され得る。非0のCBFフラグの数がいくつかのしきい値よりも小さい場合、ALFは無効化されてよく、またはそれらのブロックにデフォルトのALFフィルタが適用される。
【0166】
b.上のサブ項目「a」の例において、CBFフラグではなく非0の変換係数の個数がカウントされ得る。カウントされる係数に対してしきい値が導入され得、非0の変換係数の個数がしきい値よりも小さい場合、ALFブロックの中に含まれるブロックに対してALFが無効化されてよく、またはそれらのブロックにデフォルトのALFフィルタが適用されてよい。
【0167】
c.別の例では、スキップモードを用いてコーディングされたALFブロックの中のブロックの個数がいくつかのしきい値よりも大きい場合、それらのブロックに対してALFが無効化されてよい。
【0168】
d.上のサブ項目「c」の例において、スキップモードは一例として使用され、ALFオン/オフフラグを導出する際に他のコーディングモードが利用され得る。
【0169】
[0096]上記で説明したように、ALFを使用すると、ブロックベースのシグナリングメカニズムがコーディング効率を改善し得る。たとえば、ビデオエンコーダ20は、このブロックに対してフィルタセットの候補セットのうちのどのフィルタセットが使用されるのかを示すために、ブロックごとにフィルタセットインデックスをシグナリングし得る。候補セットは、現在のピクチャ/スライス/タイル/タイルグループのための新たにシグナリングされるフィルタセット、および/または前にコーディングされたピクチャ/スライス/タイル/タイルグループからのフィルタセットなどの、様々なフィルタセットを含んでよい。
【0170】
[0097]2019年9月11日に出願された米国特許出願第16/567,966号では、前にコーディングされたピクチャのフィルタセットを記憶するための方法およびシステムが説明されている。米国特許出願第16/567,966号に記載される例では、ルーマおよびクロマは分離されたバッファを有することができる。一例では、前にコーディングされたピクチャのALF係数が記憶され、現在ピクチャのALF係数として再使用されることを許容される。現在ピクチャに対して、ビデオエンコーダ20は、参照ピクチャのために記憶されたALF係数を使用することを選んでよく、次いで、ALF係数シグナリングをバイパスしてよい。この場合、ビデオエンコーダ20は、参照ピクチャのうちの1つへのインデックスのみをシグナリングし、現在ピクチャに対して、示された参照ピクチャの記憶済みのALF係数が単に継承される(たとえば、再使用される)。時間予測の使用を示すために、ビデオエンコーダ20は、インデックスを送る前に最初にフラグをコーディングする。
【0171】
[0098]JEMのいくつかの例(たとえば、JEM7)では、多くて6つの前のピクチャ/スライスからのALFパラメータが、時間レイヤごとに別個のアレイの中に記憶される。たとえば、(現在のビデオコーディング規格化において使用されるランダムアクセス設定での事例である)階層的なB/Pコーディング構造の中に5つの時間レイヤがある場合、ビデオエンコーダ20とビデオデコーダ30の両方は、合計で、前に取得されたALFパラメータを記憶するための30個のメモリ要素があるように、5×6メモリアレイを使用する。
【0172】
[0099]JEM7の設計は、イントラランダムアクセスピクチャ(IRAPまたはIフレーム)が符号化/復号されるとき、記憶済みのALFパラメータを事実上削除する。重複を回避するために、ALFパラメータは、ビデオデコーダ30における受信を通じて新たに取得される場合のみ、メモリの中に記憶される(ビデオエンコーダ20の場合、新たなパラメータは推定/トレーニングを介して取得される)。パラメータの記憶は、先入れ先出し(FIFO)様式で動作し、そのため、アレイが満杯である場合、ALFパラメータ値の新たなセットは、復号順序で、最も古いパラメータを上書きする。
【0173】
[0100]ALFパラメータを記憶するために(たとえば、メモリの中で)2Dアレイを使用する主な目的とは、階層的なB/Pフレームコーディング構造の中で時間スケーラビリティを維持することである。レイヤTiにおけるフレームは、i<kの場合、レイヤTkにおけるフレームに依存することができない(たとえば、それから予測され得ない)。言い換えれば、より下位の時間レイヤ(たとえば、T2)におけるフレーム/スライスは、より上位のレイヤ(たとえば、T3およびT4)におけるフレーム/スライスに依存することができない。ALFにおける現在の時間予測は、2Dアレイの異なる行の中の異なる時間レイヤから取得されるALFパラメータを単に記憶すること、および階層的なB/Pフレームにおける依存構造を破壊することなくそれらのパラメータが使用されることを確実にすることによって、時間スケーラビリティを維持する。
【0174】
[0101]JEM7での時間予測の設計における問題のうちの1つは、大量のメモリを必要とすることである。詳細には、ALFパラメータを記憶するために、ビデオエンコーダ20とビデオデコーダ30の両方において30個のメモリ要素を有する5×6アレイが必要とされる。この問題に鑑みて、以下で説明する例は、やはり時間スケーラビリティを維持しながら、1Dアレイを使用することによってメモリ要件を低減することができる。以下のセクションは、ALFにおける時間予測のために1Dアレイを記憶および使用するための例の説明を提示する。
【0175】
[0102]
図4Aは、ALFパラメータ(P
1、P
2、...、P
N)と、関連する時間レイヤID(tld
1、tld
2、...、tld
n)とを記憶するために使用される、サイズNの単一のアレイ120を示す。アレイ120の各メモリ要素は、(i)ALFパラメータと、(ii)対応するALFパラメータがどのレイヤから推定されるのかを示す時間レイヤID(tId)とを記憶する。時間レイヤ情報は、より上位の時間レイヤ(たとえば、tId=4)から取得されるALFパラメータが、より下位の時間レイヤ(たとえば、tId=3)においてフレーム/スライスを符号化/復号するために使用されないことを確実にするために使用される。
【0176】
[0103]時間予測のためのALFパラメータをロード、記憶、および使用するために、列挙した以下の方法の組合せが適用され得る。
【0177】
1)ALFパラメータの時間予測において使用されるように、アレイは、BスライスまたはPスライスのいずれかからのパラメータを記憶し得る。
【0178】
2)アレイの中で、ALFパラメータのエントリが、特定の順序で(たとえば、復号順序に従うことによって)記憶されるものとする。記憶するためにすべてのN個のエントリが使用されるとき(すなわち、アレイが満杯であるとき)、新たに取得されるパラメータは、1つのエントリを除去すること、および次いで、アレイの中で新たなパラメータを追加することによって、記憶され得る。
【0179】
- 一例として、このことはFIFO(先入れ先出し)様式で行われてよく、ここで、アレイが満杯であるとき、アレイの中の最後のエントリ(すなわち、パラメータの最も古いセット)が除去され、新たなパラメータがアレイの最初の要素の中に記憶される。
【0180】
- 別の例では、ALFパラメータは、同じ時間レイヤIDを有する、バッファの中のいくつかの記憶済みのパラメータを置き換え、たとえば、いくつかのパラメータは、バッファの中で最も古いかまたはさほど使用されないパラメータであってよく、あるいは任意の他の規則が適用されてもよい。
【0181】
3)ALFパラメータのどのセットが符号化/復号のためにバッファからロード/使用されるのかを識別するために、prevIdxと呼ばれる非負のインデックス値がシグナリングされ得る。
【0182】
- prevIdxをシグナリングするために、単項(unary)コードなどの可変長コードが使用され得る。いくつかの時間レイヤIdに対するパラメータの利用可能な全個数が、記憶されたバッファの中でカウントされ得、フィルタの利用可能な全個数-1を最大のインデックスとして有するprevIdxをシグナリングするために、短縮2値化が使用され得る。しかしながら、短縮コーディングは、たとえば、送信の際にいくつかのピクチャが失われると、エンコーダとデコーダとの間の不一致をもたらす場合がある。
【0183】
- prevIdxは0からN-1までの値を取ることができる。コーディングのために使用される階層的なフレーム構造のタイプに応じて、prevIdxの最大値はもっと小さくなり得る。
【0184】
- スライス/ピクチャをコーディングするとき、時間予測のための可能な候補が、アレイの中に含まれるセットをトラバースすること(traversing)によって決定されてよく、tIdが等しいかまたはもっと小さい、全部または一部のパラメータセットが、有効な候補として扱われる。
【0185】
- (たとえば、コーディングのために使用されるALFパラメータを決定する)アレイエントリのシグナリングは、コーディング中である現在フレームの時間レイヤIDに依存し得る。詳細には、prevIdxは、符号化/復号中である現在フレームの時間レイヤIDに応じて、アレイの中の異なるエントリに対応し得る。
【0186】
i.
図4Bは、異なる時間レイヤ(tId
1=1、tId
2=2、tId
3=2、tId
4=1、およびtId
5=3)から取得されるALFパラメータのN=5個のセットを記憶するアレイ130を示す。
図4Bに示す一例として、prevIdx=1は、コーディング中である現在フレームのtIdに応じて、アレイの中の後続する2つの異なるエントリを指し示し得る。
【0187】
1.tId=1を有するフレームをコーディングするとき、prevIdx=1は、時間スケーラビリティを維持するようにコーディングするために許容される第2の可能なオプションであるので、ALF(P4,1)を記憶する、アレイの中の第4のエントリに対応し、ここで、ALF(P4,1)はprevIdx=0とともにシグナリングされる第1の候補である。
【0188】
2.tId=2を有するフレームをコーディングするとき、prevIdx=1は、コーディングのために許容される第2の可能なオプションであるので、ALF(P2,2)を記憶する、アレイの中の第2のエントリに対応し、ここで、ALF(P1,1)はprevIdx=0に対応する第1のオプションである。
【0189】
- (たとえば、ネットワークを通じてビデオビットストリームを送るときのパケット損失に起因する)フレーム損失の場合には、ビデオデコーダは、いかなるエントリもアレイに追加しないことを選び、ダミーエントリを導入し得、そのため、ピクチャが失われるときでさえ、ダミーエントリがバッファに追加される。いずれの場合も、上に列挙した方法が適用される限り、時間スケーラビリティは維持される。言い換えれば、より高いレベル(たとえば、T3)におけるフレームが失われるとき、より下位のレイヤ(たとえば、T1およびT2)におけるフレームは依然として復号可能である。
【0190】
- 別の例では、より下位の時間レイヤIDを有するピクチャまたはスライスは、より上位の時間IDのALFパラメータについての情報を搬送し得る。この場合、より上位の時間レイヤIDを有するピクチャが失われる場合、より下位の時間レイヤIDを有するピクチャからパラメータが取得され得る。それらのパラメータはまた、時間レイヤIDがより上位のピクチャが、そのようなALFパラメータを搬送するかどうかを示してよく、その結果、それらのパラメータまたはダミーパラメータがバッファに追加されてよい。
【0191】
- 別の例では、デコーダピクチャバッファ(DPB:decoder picture buffer)管理は失われたピクチャの処理を含むので、時間的なALFパラメータ処理にDPB管理方法が適用され得る。
【0192】
4)ALFパラメータの重要度に応じて(たとえば、重要度は、どのくらい頻繁にそれらが使用されるのかに基づいて、またはそれらの時間レイヤ情報に基づいて、測定され得る)、それらの重要なALFパラメータのうちのいくつかは、次のIスライスがコーディングされるまで、不変であってよく、バッファの中に保持され得る。そのような重要性メトリックは、prevIdxをシグナリングするシグナリングオーバーヘッド(たとえば、単項コーディング)を低減するように、エントリをランク付けし並べ替えるために使用され得る。
【0193】
5)ALFパラメータをロードおよび記憶すること(バッファの管理)に対する追加の決定または制約は、(時間レイヤIDに加えて)任意の他のサイド情報に基づいて、または同様にALFパラメータとともに記憶され得る重要性尺度に基づいて、行われ得る。
【0194】
6)ルーマチャネルとクロマチャネルを別個のコーディングするために、別個のバッファが使用され得る。その結果、ルーマチャネルおよびクロマチャネルに対して別個に使用されるALFパラメータを決定するために、各バッファは、prevIdxの異なるシグナリングを有することがある。
【0195】
[0104]Y.Wangら、「AHG17:On header parameter set(HPS)」、ITU-T SG16 WP3とISO/IEC JTC1/SC29/WG11との共同ビデオエキスパートチーム(JVET)、第13回会合、マラケシュ、モロッコ、2019年1月9日~18日(以下で「JVET-M0132」)では、適応パラメータセット(APS:adaptive parameter set)が提案された。いくつかの例では、適応(adaptive)パラメータセットは、適応(adaptation)パラメータセットとも呼ばれる。APSは、ALFパラメータ(たとえば、ルーマフィルタパラメータとクロマフィルタパラメータの両方)を搬送するために使用される。ピクチャ/スライス/タイル/タイルグループにALFが適用されるとき、ビデオエンコーダ20は、対応するAPSの中のALFパラメータが、ピクチャ/スライス/タイル/タイルグループにALFを適用するためにビデオデコーダ30によって使用されるような、APSインデックスをシグナリングする。しかしながら、APSのシグナリング自体がピクチャ/スライス/タイル/タイルグループから分離されるので、コーディング効率を高めるために、そのようなAPSと整合されるように上記の例を修正することが望ましいことになる。すなわち、いくつかの例では、ALFはスライスレベルのブロックに適用され、使用される特定のALFパラメータはブロックレベルで適用される。しかしながら、APSは、もっと高いレベルでシグナリングされる。本開示は、スライスのルーマ成分およびクロマ成分のために使用され得るAPSを示すための例を説明する。以下の例では、前にコーディングされたフィルタは、ALFまたは他のタイプのフィルタであってよい。
【0196】
[0105]いくつかの例では、ビデオエンコーダ20は、シーケンスパラメータセット/ピクチャパラメータセット/スライスヘッダ/タイル/タイルグループヘッダに対応する各ブロックに、前にコーディングされた何個のフィルタセットが使用され得るのかを示すために、シーケンスパラメータセット/ピクチャパラメータセット/スライスヘッダ/タイル/タイルグループヘッダの中で変数(または、シンタックス要素であって、それらの用語は以下の例では互換的に使用される)を符号化およびシグナリングするように構成され得る。ビデオデコーダ30は、そのような変数/シンタックス要素を復号し、様々なブロックに対して、前にコーディングされたフィルタセットのうちの1つまたは複数を使用するように構成され得る。
【0197】
[0106]そのような一例では、ビデオエンコーダ20は、シーケンス/ピクチャ/スライス/タイル/タイルグループの中のすべての成分からのブロックに対してビデオデコーダ30が使用し得る、前にシグナリングされたフィルタの最大個数を規定する1つの変数(たとえば、符号化ビットストリームの中のシンタックス要素)を符号化およびシグナリングし得る。
【0198】
[0107]別の例では、ビデオエンコーダ20は、シーケンス/ピクチャ/スライス/タイル/タイルグループの中のルーマブロックに対してビデオデコーダ30が使用し得る、前にシグナリングされたフィルタの最大個数を示すために、1つの変数(たとえば、符号化ビットストリームの中のシンタックス要素)を符号化およびシグナリングし得る。ビデオエンコーダ20は、シーケンス/ピクチャ/スライス/タイル/タイルグループの中のクロマブロックに対してビデオデコーダ30が使用し得る、前にシグナリングされたフィルタの最大個数を示すために、別の変数(たとえば、符号化ビットストリームの中のシンタックス要素)を符号化およびシグナリングし得る。
【0199】
[0108]別の例では、すべての色成分(たとえば、ルーマ成分およびクロマ成分)からのブロックに対してビデオデコーダ30が使用し得る、前にシグナリングされたフィルタの最大個数は、不変であってよく、シグナリングすることなく決定され得る。別の例では、同じ色成分(たとえば、ルーマおよびクロマ)からのブロックに対してビデオデコーダ30が使用し得る、前にシグナリングされたフィルタの最大個数は、不変であってよく、シグナリングすることなく決定され得る。別の例では、同じ色成分(たとえば、ルーマまたはクロマ)からの、同じコーディング情報を有するブロックに対してビデオデコーダ30が使用し得る、前にシグナリングされたフィルタの最大個数は、不変であってよく、シグナリングすることなく決定され得る。コーディング情報は、スライスタイプ、量子化パラメータ、予測タイプ、動き情報、イントラモード、および/または他のコーディング情報であり得る。
【0200】
[0109](前の段落の例とともに当業者によって認識されることになるように組み合わせられてよい)いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、前にコーディングされたALFフィルタのパラメータを記憶するために、先入れ先出し(FIFO)バッファを使用し得る。一例では、ビデオエンコーダ20およびビデオデコーダ30は、バッファの中の1つの要素が、同じピクチャ/スライス/タイル/タイルグループからのルーマフィルタおよびクロマフィルタのセットを記憶するために使用されるように、ルーマ成分およびクロマ成分に対して同じバッファを使用するように構成され得る。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、ルーマ成分およびクロマ成分に対して別個のFIFOバッファを使用するように構成され得る。成分のフィルタパラメータがシグナリングされると、ビデオデコーダ30は、シグナリングされたフィルタパラメータを、対応する色成分のバッファの中にプッシュ(push)する。
【0201】
[0110]ブロックベースのALFフィルタセットインデックスシグナリングを、ALFパラメータのそれぞれのセットを含む1つまたは複数のAPSの使用と整合させる(align)ために、ビデオエンコーダ20およびビデオデコーダ30は、ALFが有効化されているとき、各ピクチャ、スライス、タイル、および/またはタイルグループヘッダにおいて、現在のピクチャ、スライス、タイル、および/またはタイルグループヘッダのために使用されるAPSの個数を示す変数(たとえば、符号化ビットストリームの中のシンタックス要素)をコーディングするように構成され得る。たとえば、スライスレベルにおいて、ビデオエンコーダ20およびビデオデコーダ30は、そのスライスのためにALFが有効化されているとき、現在スライスのブロックに対して使用されるAPSの個数を示す変数をコーディングするように構成され得る。加えて、APSの個数を示す変数をコーディングした後、ビデオエンコーダ20およびビデオデコーダ30は、現在のピクチャ/スライス/タイル/タイルグループヘッダに対して使用するために利用可能な各APSのインデックスをコーディングし得る。次いで、スライスの中の各それぞれのブロックについて、ビデオエンコーダ20およびビデオデコーダ30は、それぞれのブロックのために使用すべきALFパラメータを含む特定のAPSのインデックスをコーディングし得る。この例では、ビデオエンコーダ20およびビデオデコーダ30は、ルーマ成分に対するAPSインデックスのセットと、クロマ成分に対するAPSインデックスのセットとをコーディングし得る。
【0202】
[0111]一例では、複雑度低減のために、ビデオエンコーダ20およびビデオデコーダ30は、ルーマ成分とクロマ成分の両方に対して、同じ個数のAPSと、APSの同じインデックスとを使用するように構成され得る。別の例では、ルーマ成分およびクロマ成分の特性へのより良好な適合のために、また改善された圧縮効率を達成するために、ルーマ成分およびクロマ成分は、それら自体のAPSの個数と、ピクチャ、スライス、タイル、および/またはタイルグループヘッダのブロックに対して使用されるAPSのインデックスとを有する。すなわち、ビデオエンコーダ20およびビデオデコーダ30は、APSの異なる個数と、ピクチャ、スライス、タイル、および/またはタイルグループヘッダのブロックに対して使用されるルーマ成分およびクロマ成分に対するAPSのインデックスとをコーディングするように構成され得る。別の言い方をすれば、APSの個数およびAPSのインデックス(したがって、ALFパラメータ)は、ルーマ成分およびクロマ成分に対して独立している。いくつかの例では、簡単のために、成分に対するAPSの個数はシグナリングすることなく不変であってよく、そのことはコーディング情報に依存し得る。たとえば、イントラフレームコーディングされるピクチャ/スライス/タイル/タイルグループに対して、他のピクチャ/スライス/タイル/タイルグループからのフィルタセットは許容されない。一例では、ピクチャ/スライス/タイルグループの中の2つのクロマ成分は、1つのAPSのみを使用し得る。別の例については、ピクチャ/スライス/タイルグループの中の各クロマ成分は、1つのAPSのみを使用し得る。
【0203】
[0112]本開示の一例によれば、ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化するように構成され得る。ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化するようにさらに構成され得る。たとえば、スライスのルーマブロックにALFを適用するために5つのAPSが使用される場合、ビデオエンコーダ20はまた、使用される5つのAPSのインデックスを符号化することになる。当然、他の個数のAPSがスライスのために使用されてよい。ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化するようにさらに構成される。この場合、クロマブロックは単一のAPSのみを有し、したがって、APSのインデックスだけが符号化およびシグナリングされる。
【0204】
[0113]ビデオデコーダ30は、ビデオエンコーダ20に対して上記で説明した技法とは相反の技法を実行するように構成され得る。たとえば、ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号するように構成され得る。ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号するようにさらに構成され得る。ビデオデコーダ30はまた、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号し得る。ビデオデコーダ30は、次いで、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに、第1の適応ループフィルタを適用し得る。たとえば、ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数の特定のルーマブロックに対して使用するための特定のAPSを示すシンタックス要素を復号し得、次いで、示されるAPSからのALFパラメータをその特定のルーマブロックに適用し得る。同様に、ビデオデコーダ30は、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用し得る。たとえば、ビデオデコーダ30は、第2の適応パラメータセットインデックスの示されるAPSからのALFパラメータをクロマブロックに適用してよい。
【0205】
[0114]上記の例では、ピクチャ/スライス/タイル/タイルグループヘッダの中で、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスと、をビデオエンコーダ20がシグナリングし得、ビデオデコーダ30が受信し得る。
【0206】
[0115]いくつかの例では、ビデオビットストリームは、ルーマ成分のためのAPS(Luma_APS)がルーマフィルタのセットのみを搬送するために使用され、クロマ成分のためのAPS(chroma_APS)がクロマフィルタパラメータのみを搬送するために使用されるように、APSの情報を分離するように規定され得る。
【0207】
[0116]したがって、一例では、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の、その個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットを含む。他の例では、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数の、ルーマブロック用の、その個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットのみを含む。同様に、一例では、第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットを含む。別の例では、第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットのみを含む。
【0208】
[0117]上記で説明したように、ルーマ成分とクロマ成分の両方に対して1つのAPSインデックスを使用するのではなく、APSが部分的に更新され得るように別個のAPSインデックスが使用される。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ルーマフィルタ情報が更新されるAPSを示すように、ルーマAPSインデックスに対するインデックス(Luma_APS_index)をコーディングしてよい。ビデオエンコーダ20およびビデオデコーダ30は、クロマフィルタ情報が更新されるAPSを示すように、クロマAPSインデックス(Chroma_APS_index)をコーディングしてよい。
【0209】
[0118]したがって、本開示の別の例では、ビデオエンコーダ20およびビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を符号化/復号し得、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を符号化/復号し得る。
【0210】
[0119]いくつかの例によれば、ビデオエンコーダ20およびビデオデコーダ30は、APSが使用されるとき、前にコーディングされたALFフィルタを記憶するために先入れ先出し(FIFO)バッファを使用し得る。ピクチャ/スライス/タイル/タイルグループごとに、ビデオエンコーダ20は、シグナリングされたAPSインデックスを有するAPSから新たなフィルタセットが導出されるようなnew_filter_set_flagをシグナリングしてよく、そうでない場合、いかなるAPSからもフィルタパラメータが導出されない。ピクチャ/スライス/タイル/タイルグループの復号の後、new_filter_set_flagが真である場合、ビデオデコーダ30は、フィルタセット情報をAPSからFIFOバッファの中にプッシュし得る。そうでない場合、FIFOバッファが変更されない。FIFOバッファは、固定長または可変長であり得る。FIFOバッファのための上記で説明した技法も適用され得る。
【0211】
[0120]いくつかの例では、FIFOバッファは、ピクチャの中のタイルグループ/スライスのすべての間で共有され得る。ピクチャを復号した後にFIFOバッファに追加されるAPSのインデックスは、ピクチャのビットストリームの中央のいくつかの点においてシグナリングされ得る。たとえば、ビデオエンコーダ20は、そのような情報をピクチャの冒頭、末尾、またはいくつかの他の場所においてシグナリングしてよい。別の例では、1つまたは複数の固定されたタイルグループ/スライスからのフィルタセットのパラメータは、どのフィルタセットがバッファに追加されるのかをシグナリングすることなく、FIFOバッファを更新するために使用され得る。たとえば、ピクチャ全体が再構成された後、ピクチャの中のタイルグループ/スライスからの、シグナリングされた最初のn個のフィルタセットが、FIFOバッファに追加される。別の例では、ピクチャ全体が再構成された後、ピクチャの中のタイルグループ/スライスからの、シグナリングされた最後のn個のフィルタセットが、FIFOバッファに追加される。上記の例では、nは正の整数である。nの値は、不変であってよく、またはシグナリングされてもよい。別の例では、ピクチャの中の2つ以上のフィルタセットを選択するためのいくつかの規則が規定され得、ビデオエンコーダ20とビデオデコーダ30の両方において適用され得る。
【0212】
[0121]
図5は、本開示で説明するAPSを使用するALFのための技法を実施し得る、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または除去するために、空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたは隣接ピクチャ内のビデオにおける時間冗長性を低減または除去するために、時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指してよい。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指してよい。
【0213】
[0122]
図5の例では、ビデオエンコーダ20は、ビデオデータメモリ33と、区分ユニット35と、予測処理ユニット41と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット(MEU:motion estimation unit)42と、動き補償ユニット(MCU:motion compensation unit)44と、イントラ予測ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、フィルタユニット64と、復号ピクチャバッファ(DPB)66とを含む。
【0214】
[0123]
図5に示すように、ビデオエンコーダ20はビデオデータを受信し、受信されたビデオデータをビデオデータメモリ33の中に記憶する。ビデオデータメモリ33は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ33の中に記憶されたビデオデータは、たとえば、ビデオソース18から取得され得る。DPB66は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ20によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであってよい。ビデオデータメモリ33およびDPB66は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ33およびDPB66は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、ビデオデータメモリ33は、ビデオエンコーダ20の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【0215】
[0124]区分ユニット35は、ビデオデータメモリ33からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分はまた、たとえば、LCUおよびCUの4分木構造による、スライス、タイル、またはもっと大きい他のユニットへの区分、ならびにビデオブロック区分を含んでよい。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレート、およびひずみのレベル)に基づいて、現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に提供し得る。
【0216】
[0125]予測処理ユニット41内のイントラ予測ユニット処理46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【0217】
[0126]動き推定ユニット42は、ビデオシーケンスに対する所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンスの中のビデオスライスをPスライスまたはBスライスに指定し得る。動き推定ユニット42および動き補償ユニット44は、高度に統合されてよいが、概念的な目的のために別個に図示される。動き推定ユニット42によって実行される動き推定とは、ビデオブロックに対する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたは現在ピクチャ内のビデオブロックのPUの変位を示してよい。
【0218】
[0127]予測ブロックとは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致するものと見られるブロックである。いくつかの例では、ビデオエンコーダ20は、DPB66の中に記憶された参照ピクチャのサブ整数ピクセル位置に対する値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行してよく、分数ピクセル精度を有する動きベクトルを出力し得る。
【0219】
[0128]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスの中のビデオブロックのPUに対する動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの各々は、DPB66の中に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【0220】
[0129]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によっては、サブピクセル精度への補間を実行することを伴ってよい。現在ビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つの中で動きベクトルが指し示す先の予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディング中である現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算して、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含んでよい。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
【0221】
[0130]予測処理ユニット41が、イントラ予測またはインター予測のいずれかを介して現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUの中に含まれてよく、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0222】
[0131]変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。別の例では、エントロピー符号化ユニット56が走査を実行してよい。
【0223】
[0132]量子化に続いて、エントロピー符号化ユニット56は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率区間区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または別のエントロピー符号化方法もしくは技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームが、ビデオデコーダ30へ送信されてよく、またはビデオデコーダ30によって後で送信するかもしくは取り出すためにアーカイブされてもよい。エントロピー符号化ユニット56はまた、コーディング中である現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0224】
[0133]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ、逆量子化と逆変換とを適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、再構成ブロックを生成するために、動き補償ユニット44よって生成された動き補償予測ブロックに、再構成された残差ブロックを加算する。
【0225】
[0134]フィルタユニット64は、再構成ブロック(たとえば、加算器62の出力)をフィルタ処理し、参照ブロックとして使用するために、フィルタ処理済みの再構成ブロックをDPB66の中に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。フィルタユニット64は、デブロックフィルタ処理、SAOフィルタ処理、ピークSAOフィルタ処理、ALFおよび/もしくはGALF、ならびに/または他のタイプのループフィルタなどの、任意のタイプのフィルタ処理を実行し得る。デブロックフィルタは、たとえば、再構成されたビデオからブロッキネスアーティファクトを除去するために、フィルタブロック境界にデブロッキングフィルタ処理を適用し得る。ピークSAOフィルタは、全体的なコーディング品質を改善するために、再構成されたピクセル値にオフセットを適用し得る。(ループ内またはループ後の)追加のループフィルタも使用されてよい。
【0226】
[0135]フィルタユニット64、またはビデオエンコーダ20の他の構造構成要素は、本開示の技法を実行するように構成され得る。たとえば、フィルタユニット64は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化するように構成され得る。フィルタユニット64は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化するようにさらに構成され得る。たとえば、スライスのルーマブロックにALFを適用するために5つのAPSが使用される場合、フィルタユニット64はまた、使用される5つのAPSのインデックスを符号化することになる。当然、他の個数のAPSがスライスのために使用されてよい。フィルタユニット64は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化するようにさらに構成され得る。この場合、クロマブロックは単一のAPSのみを有し、したがって、当該APSのインデックスだけが符号化およびシグナリングされる。
【0227】
[0136]
図6は、本開示で説明する技法を実施し得る例示的なビデオデコーダ30を示すブロック図である。
図6のビデオデコーダ30は、たとえば、
図5のビデオエンコーダ20に関して上記で説明したシグナリングを受信するように構成され得る。
図6の例では、ビデオデコーダ30は、ビデオデータメモリ78と、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、DPB94と、フィルタユニット92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、
図5からのビデオエンコーダ20に関して説明した符号化パスとは概して相反の復号パスを実行し得る。
【0228】
[0137]復号プロセス中、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化ビットストリームを受信する。ビデオデコーダ30は、受信された符号化ビデオビットストリームをビデオデータメモリ78の中に記憶する。ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ78の中に記憶されたビデオデータは、たとえば、リンク16を介して、ストレージデバイス26から、もしくはカメラなどのローカルビデオソースから、または物理データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB:coded picture buffer)を形成し得る。DPB94は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する、参照ピクチャメモリであってよい。ビデオデータメモリ78およびDPB94は、DRAM、SDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ78およびDPB94は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【0229】
[0138]ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビデオデータメモリ78の中に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルで、シンタックス要素を受信し得る。
【0230】
[0139]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの、前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化スライス(たとえば、BスライスまたはPスライス)としてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB94の中に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
【0231】
[0140]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって、現在ビデオスライスのビデオブロックのための予測情報を決定し、復号中である現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスのインター符号化ビデオブロックごとの動きベクトルと、スライスのインターコード化ビデオブロックごとのインター予測ステータスと、現在ビデオスライスの中のビデオブロックを復号するための他の情報と、を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【0232】
[0141]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用されるような補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素から、ビデオエンコーダ20によって使用された補間フィルタを決定してよく、予測ブロックを生成するためにその補間フィルタを使用してよい。
【0233】
[0142]逆量子化ユニット86は、ビットストリームの中で提供されるとともにエントロピー復号ユニット80によって復号される量子化変換係数を、逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度と、同様に、適用されるべき逆量子化の程度とを決定するための、ビデオスライスの中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含んでよい。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に類似の逆変換プロセスを変換係数に適用する。
【0234】
[0143]予測処理ユニットが、たとえば、イントラ予測またはインター予測を使用して、現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、再構成ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。
【0235】
[0144]フィルタユニット92は、再構成ブロック(たとえば、加算器90の出力)をフィルタ処理し、参照ブロックとして使用するために、フィルタ処理済みの再構成ブロックをDPB94の中に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するために、動き補償ユニット82によって参照ブロックとして使用され得る。フィルタユニット92は、デブロックフィルタ処理、SAOフィルタ処理、ピークSAOフィルタ処理、ALFおよび/もしくはGALF、ならびに/または他のタイプのループフィルタなどの、任意のタイプのフィルタ処理を実行し得る。デブロックフィルタは、たとえば、再構成されたビデオからブロッキネスアーティファクトを除去するために、フィルタブロック境界にデブロッキングフィルタ処理を適用し得る。ピークSAOフィルタは、全体的なコーディング品質を改善するために、再構成されたピクセル値にオフセットを適用し得る。(ループ内またはループ後の)追加のループフィルタも使用されてよい。
【0236】
[0145]フィルタユニット92、および/またはビデオデコーダ30の他の構造構成要素は、ビデオエンコーダ20およびフィルタユニット64について上記で説明した技法とは相反の技法を実行するように構成され得る。たとえば、ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号するように構成され得る。ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号するようにさらに構成され得る。ビデオデコーダ30はまた、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号し得る。フィルタユニット92は、次いで、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに第1の適応ループフィルタを適用し得る。たとえば、ビデオデコーダ30は、スライスの特定のルーマブロックに対して使用するための特定のAPSを示すシンタックス要素を復号し得、次いで、フィルタユニット92は、示されるAPSからのALFパラメータをその特定のルーマブロックに適用し得る。同様に、フィルタユニット92は、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用し得る。たとえば、フィルタユニット92は、第2の適応パラメータセットインデックスの示されるAPSからのALFパラメータをクロマブロックに適用してよい。
【0237】
[0146]
図7は、フィルタユニット92の例示的な実装形態を示す。フィルタユニット64が、同様の方法で実装され得る。フィルタユニット64および92は、場合によってはビデオエンコーダ20またはビデオデコーダ30の他の構成要素とともに、本開示の技法を実行し得る。
図7の例では、フィルタユニット92は、デブロックフィルタ102と、SAOフィルタ104と、ALF/GALFフィルタ106とを含む。SAOフィルタ104は、たとえば、本開示で説明する方法でブロックのサンプルに対するオフセット値を決定するように構成されてよい。
【0238】
[0147]フィルタユニット92は、もっと少数のフィルタを含んでよく、および/または追加のフィルタを含んでよい。追加として、
図7に示す特定のフィルタは異なる順序で実装されてよい。(コーディングループの中またはコーディングループの後のいずれかの)他のループフィルタも、ピクセル遷移を平滑化するかまたはビデオ品質を別のやり方で改善するために使用され得る。所与のフレームまたはピクチャの中の復号ビデオブロックが、次いで、DPB94の中に記憶され、DPB94は、後続の動き補償のために使用される参照ピクチャを記憶する。DPB94は、
図1のディスプレイデバイス32などの、ディスプレイデバイス上に後で提示するための復号ビデオを記憶する、追加メモリの一部であってよく、または追加メモリとは別個であってもよい。
【0239】
[0148]
図8は、本開示の例示的なビデオ符号化方法を示すフローチャートである。
図8の技法は、フィルタユニット64を含む、ビデオエンコーダ20の1つまたは複数の構成要素によって実行され得る。
【0240】
[0149]本開示の一例によれば、ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化するように構成され得る(800)。ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化するようにさらに構成され得る(802)。たとえば、スライスのルーマブロックにALFを適用するために5つのAPSが使用される場合、ビデオエンコーダ20はまた、使用される5つのAPSのインデックスを符号化することになる。当然、他の個数のAPSがスライスのために使用されてよい。ビデオエンコーダ20は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを符号化するようにさらに構成される(804)。この場合、クロマブロックは単一のAPSのみを有し、したがって、APSのインデックスだけが符号化およびシグナリングされる。
【0241】
[0150]上記の例では、ビデオエンコーダ20は、ピクチャ/スライス/タイル/タイルグループヘッダの中で、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスと、をシグナリングし得る。
【0242】
[0151]
図9は、本開示の例示的なビデオ復号方法を示すフローチャートである。
図9の技法は、フィルタユニット92を含む、ビデオデコーダ30の1つまたは複数の構成要素によって実行され得る。
【0243】
[0152]ビデオデコーダ30は、ビデオエンコーダ20に対して上記で説明した技法とは相反の技法を実行するように構成され得る。たとえば、ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号するように構成され得る(900)。ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数に基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号するようにさらに構成され得る(902)。
【0244】
[0153]ビデオデコーダ30はまた、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスを復号し得る(904)。ビデオデコーダ30は、次いで、複数の第1の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに、第1の適応ループフィルタを適用し得る(906)。たとえば、ビデオデコーダ30は、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数の特定のルーマブロックに対して使用するための特定のAPSを示すシンタックス要素を復号し得、次いで、示されるAPSからのALFパラメータをその特定のルーマブロックに適用し得る。同様に、ビデオデコーダ30は、第2の適応パラメータセットインデックスに基づいて、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに第2の適応ループフィルタを適用し得る(908)。たとえば、ビデオデコーダ30は、第2の適応パラメータセットインデックスの示されるAPSからのALFパラメータをクロマブロックに適用してよい。
【0245】
[0154]上記の例では、ビデオデコーダ30は、ピクチャ/スライス/タイル/タイルグループヘッダの中で、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素と、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックに対する複数の第1の適応パラメータセットインデックスと、ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のクロマブロックに対する第2の適応パラメータセットインデックスと、を受信し得る。
【0246】
[0155]本開示の例示的な実施例は以下を含む。
【0247】
[0156]例1:ビデオデータをコーディングする方法であって、ピクチャのブロックに対する適応ループフィルタ(ALF)情報の複数のセットの中からALFフィルタの1セットを決定することを備える方法。
【0248】
[0157]例2:ブロックがピクチャのコーディングツリーユニット(CTU)を表す、例1の方法。
【0249】
[0158]例3:ALF情報の各それぞれのセットが、クラスに割り当てられたフィルタを含む、例1または例2の方法。
【0250】
[0159]例4:ビデオデータをコーディングする方法であって、2つ以上のピクチャにわたる適応ループフィルタ(ALF)セットのリストを割り当てることを備える方法。
【0251】
[0160]例5:ピクチャをコーディングした後、新たなフィルタセットを導出することをさらに備え、新たなフィルタセットは、割り当てられたリストの中に含まれていない、例4の方法。
【0252】
[0161]例6:新たなフィルタセットをリストに追加することをさらに備える、例5の方法。
【0253】
[0162]例7:リストの中のALFセットのうちの1つを新たなフィルタセットと置き換えることをさらに備える、例5の方法。
【0254】
[0163]例8:新たなフィルタセットを導出することが、前にコーディングされたピクチャ、前にコーディングされたスライス、または前にコーディングされたタイルのうちの1つからのデータを使用して新たなフィルタセットを導出することを備える、例5~7の任意の組合せの方法。
【0255】
[0164]例9:ビデオデータをコーディングする方法であって、ピクチャの複数のブロックにわたって適応ループフィルタ(ALF)情報をマージすることを備える方法。
【0256】
[0165]例10:複数のブロックが、ピクチャの現在ブロックと、現在ブロックの上の隣接ブロックとを備える、例9の方法。
【0257】
[0166]例11:複数のブロックが、ピクチャの現在ブロックと、現在ブロックの左の隣接ブロックとを備える、例9の方法。
【0258】
[0167]例12:複数のブロックが、ピクチャの現在ブロックと、そのピクチャとは異なるピクチャの中に含まれるブロックとを備える、例9の方法。
【0259】
[0168]例13:ビデオデータを復号する方法であって、前に復号されたビデオデータから適応ループフィルタ(ALF)オン/オフフラグの値を導出することを備える方法。
【0260】
[0169]例14:ALFオン/オフフラグの値を導出することが、ALFオン/オフフラグを共有するALFブロックの中に含まれるブロックの個数に基づいて値を導出することを備える、例13の方法。
【0261】
[0170]例15:ALFオン/オフフラグの値を導出することが、ALFブロックの中の非0のコード化ブロックフラグ(CBF)または非0の変換係数の個数にさらに基づいて値を導出することを備える、例14の方法。
【0262】
[0171]例16:ビデオデータを記憶するビデオデータメモリと、ビデオデータメモリと通信している処理回路構成とを備え、処理回路構成が、例1~15のうちのいずれかの方法を実行するように構成される、ビデオコーディングデバイス。
【0263】
[0172]例17:ビデオコーディングデバイスがビデオ復号デバイスを備える、例16のビデオコーディングデバイス。
【0264】
[0173]例18:ビデオコーディングデバイスがビデオ符号化デバイスを備える、例16のビデオコーディングデバイス。
【0265】
[0174]例19:ビデオ符号化デバイスが符号化ビデオビットストリームを復号するように構成される、例18のビデオ符号化デバイス。
【0266】
[0175]例20:例1~15のうちのいずれかの方法を実行するための手段を備える装置。
【0267】
[0176]例21:実行されたとき、ビデオコーディングデバイスのプロセッサに、例1~15のうちのいずれかの方法を実行させる命令を用いて符号化されたコンピュータ可読記憶媒体。
【0268】
[0177]例22:本開示で説明する技法の任意の組合せ。
【0269】
[0178]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されてよく、またはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を容易にする、任意の媒体を含む通信媒体を含んでよい。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に、相当し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでよい。
【0270】
[0179]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気記憶デバイス、フラッシュメモリのうちのいずれか、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る、任意の他の媒体であり得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)と、レーザーディスク(登録商標)(disc)と、光ディスク(disc)と、デジタル多用途ディスク(disc)(DVD)と、フロッピー(登録商標)ディスク(disk)と、Blu-rayディスク(disc)とを含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0271】
[0180]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路構成または個別論理回路構成などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明した技法の実施に適した、上記の構造のいずれかまたは任意の他の構造を指してよい。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に設けられてよく、あるいは複合コーデックの中に組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素の中に完全に実装され得る。
【0272】
[0181]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置の中で実施され得る。様々な構成要素、モジュール、またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、あるいは好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供され得る。
【0273】
[0182]様々な例が説明されている。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを復号することと、
前記複数の第1の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに第1の適応ループフィルタを適用することと、
前記第2の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに第2の適応ループフィルタを適用することと、
を備える方法。
[C2]
前記ビデオビットストリームのピクチャヘッダ、スライスヘッダ、タイルヘッダ、またはタイルグループヘッダのうちの1つまたは複数の中で、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数を示す前記第1のシンタックス要素と、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する前記複数の第1の適応パラメータセットインデックスと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する前記第2の適応パラメータセットインデックスと、を受信すること、
をさらに備える、C1に記載の方法。
[C3]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットを含む、C1に記載の方法。
[C4]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタの前記それぞれのセットのみを含む、C3に記載の方法。
[C5]
前記第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットを含む、C1に記載の方法。
[C6]
前記第2の適応パラメータセットインデックスに対応する前記適応パラメータセットは、クロマ適応ループフィルタの前記セットのみを含む、C5に記載の方法。
[C7]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を、前記ビデオビットストリームから復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を、前記ビデオビットストリームから復号することと、
をさらに備える、C1に記載の方法。
[C8]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのクロマブロックとを含む、ピクチャを表示すること、
をさらに備える、C1に記載の方法。
[C9]
ビデオデータを復号するように構成された装置であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックと、を記憶するように構成されたメモリと、
回路構成の中に実装され前記メモリと通信している1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを復号し、
前記複数の第1の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに、第1の適応ループフィルタを適用し、
前記第2の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに、第2の適応ループフィルタを適用するように構成される、
装置。
[C10]
前記1つまたは複数のプロセッサは、
前記ビデオビットストリームのピクチャヘッダ、スライスヘッダ、タイルヘッダ、またはタイルグループヘッダのうちの1つまたは複数の中で、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数を示す前記第1のシンタックス要素と、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する前記複数の第1の適応パラメータセットインデックスと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する前記第2の適応パラメータセットインデックスと、を受信するようにさらに構成される、
C9に記載の装置。
[C11]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットを含む、C9に記載の装置。
[C12]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタの前記それぞれのセットのみを含む、C11に記載の装置。
[C13]
前記第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットを含む、C9に記載の装置。
[C14]
前記第2の適応パラメータセットインデックスに対応する前記適応パラメータセットは、クロマ適応ループフィルタのセットのみを含む、C13に記載の装置。
[C15]
前記1つまたは複数のプロセッサは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を、前記ビデオビットストリームから復号し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の、前記クロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を、前記ビデオビットストリームから復号するようにさらに構成される、
C9に記載の装置。
[C16]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のフィルタ処理済みのクロマブロックとを含む、ピクチャを表示するように構成されたディスプレイ、
をさらに備える、C9に記載の装置。
[C17]
ビデオデータを復号するように構成された装置であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号するための手段と、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号するための手段と、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを復号するための手段と、
前記複数の第1の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに第1の適応ループフィルタを適用するための手段と、
前記第2の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに第2の適応ループフィルタを適用するための手段と、
を備える装置。
[C18]
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、ビデオデータを復号するように構成されたデバイスの1つまたは複数のプロセッサに、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを復号することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームから、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを復号させ、
前記複数の第1の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに第1の適応ループフィルタを適用することと、
前記第2の適応パラメータセットインデックスに基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに第2の適応ループフィルタを適用することと、
を行わせる非一時的コンピュータ可読記憶媒体。
[C19]
ビデオデータを符号化する方法であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを符号化することと、
を備える方法。
[C20]
前記ビデオビットストリームのピクチャヘッダ、スライスヘッダ、タイルヘッダ、またはタイルグループヘッダのうちの1つまたは複数の中で、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数を示す前記第1のシンタックス要素と、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する前記複数の第1の適応パラメータセットインデックスと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する前記第2の適応パラメータセットインデックスと、をシグナリングすること、
をさらに備える、C19に記載の方法。
[C21]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットを含む、C19に記載の方法。
[C22]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタの前記それぞれのセットのみを含む、C21に記載の方法。
[C23]
前記第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットを含む、C19に記載の方法。
[C24]
前記第2の適応パラメータセットインデックスに対応する前記適応パラメータセットは、クロマ適応ループフィルタのセットのみを含む、C23に記載の方法。
[C25]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を符号化することと、
をさらに備える、C19に記載の方法。
[C26]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックとを含む、ピクチャをキャプチャすること、
をさらに備える、C19に記載の方法。
[C27]
ビデオデータを符号化するように構成された装置であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックと、を記憶するように構成されたメモリと、
回路構成の中に実装され前記メモリと通信している1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを符号化するように構成される、
装置。
[C28]
前記1つまたは複数のプロセッサは、
前記ビデオビットストリームのピクチャヘッダ、スライスヘッダ、タイルヘッダ、またはタイルグループヘッダのうちの1つまたは複数の中で、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数を示す前記第1のシンタックス要素と、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する前記複数の第1の適応パラメータセットインデックスと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する前記第2の適応パラメータセットインデックスと、をシグナリングするようにさらに構成される、
C27に記載の装置。
[C29]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタのそれぞれのセットを含む、C27に記載の装置。
[C30]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の前記個数の適応パラメータセットの各々は、ルーマ適応ループフィルタの前記それぞれのセットのみを含む、C29に記載の装置。
[C31]
前記第2の適応パラメータセットインデックスに対応する適応パラメータセットは、クロマ適応ループフィルタのセットを含む、C27に記載の装置。
[C32]
前記第2の適応パラメータセットインデックスに対応する前記適応パラメータセットは、クロマ適応ループフィルタのセットのみを含む、C31に記載の装置。
[C33]
前記1つまたは複数のプロセッサは、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対するルーマ適応ループフィルタ情報が更新されるかどうかを示す第2のシンタックス要素を符号化し、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対するクロマ適応ループフィルタ情報が更新されるかどうかを示す第3のシンタックス要素を符号化するようにさらに構成される、
C27に記載の装置。
[C34]
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックと、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックとを含む、ピクチャをキャプチャするように構成されたカメラ、
をさらに備える、C27に記載の装置。
[C35]
ビデオデータを符号化するように構成された装置であって、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化するための手段と、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化するための手段と、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを符号化するための手段と、
を備える装置。
[C36]
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、ビデオデータを符号化するように構成されたデバイスの1つまたは複数のプロセッサに、
ピクチャ、スライス、タイル、またはタイルグループのうちの1つまたは複数のルーマブロックのために、適応ループフィルタ処理が有効化されているビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの個数を示す第1のシンタックス要素を符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロック用の適応パラメータセットの前記個数に基づいて、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記ルーマブロックに対する複数の第1の適応パラメータセットインデックスを符号化することと、
前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数のクロマブロックのために、適応ループフィルタ処理が有効化されている前記ビデオビットストリームに対して、前記ピクチャ、前記スライス、前記タイル、または前記タイルグループのうちの前記1つまたは複数の前記クロマブロックに対する第2の適応パラメータセットインデックスを符号化することと、
を行わせる、非一時的コンピュータ可読記憶媒体。