(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】適応ループフィルタリングにおけるサンプルパディング
(51)【国際特許分類】
H04N 19/117 20140101AFI20240903BHJP
H04N 19/176 20140101ALI20240903BHJP
H04N 19/167 20140101ALI20240903BHJP
H04N 19/70 20140101ALI20240903BHJP
H04N 19/82 20140101ALI20240903BHJP
【FI】
H04N19/117
H04N19/176
H04N19/167
H04N19/70
H04N19/82
【外国語出願】
(21)【出願番号】P 2023090586
(22)【出願日】2023-06-01
(62)【分割の表示】P 2022500803の分割
【原出願日】2020-07-13
【審査請求日】2023-06-05
(31)【優先権主張番号】PCT/CN2019/095657
(32)【優先日】2019-07-11
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ワン,ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2019/0166363(US,A1)
【文献】米国特許出願公開第2019/0044809(US,A1)
【文献】米国特許出願公開第2013/0322523(US,A1)
【文献】Jonathan Taquet, Christophe Gisquet, Guillaume Laroche, and Patrice Onno,Non-Linear Adaptive Loop Filter,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0385,13th Meeting: Marrakech, MA,2019年01月,pp.1-5
【文献】Ching-Yeh Chen, et al.,CE5-1: Adaptive loop filter with virtual boundary processing,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0088-v1,14th Meeting: Geneva, CH,2019年03月,pp.1-8
【文献】Anand Meher Kotra, et al.,CE5-2: Loop filter line buffer reduction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0180-v2,14th Meeting: Geneva, CH,2019年03月,pp.1-9
【文献】Hongbin Liu, et al.,Non-CE5: Padding method for samples at variant boundaries in ALF,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0625,15th Meeting: Gothenburg, SE,2019年06月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
1つ以上のコーディングツリーブロックを含むビデオのピクチャと前記ビデオのビットストリームとの間の変換のために、第1サンプルが現在のコーディングツリーブロックの現在のサンプルのスライスとは異なるスライスに位置しておりかつ第1フィルタリングプロセスでスライスにわたるサンプルが許されないという理由で、前記現在のサンプルに対する前記第1フィルタリングプロセスのための分類動作で前記第1サンプルが利用不可能であることを決定することであり、前記ピクチャの全てのスライスが長方形スライスである、前記決定することと、
前記第1サンプルのためにパディングプロセスを適用することであり、前記第1サンプルの値は、前記現在のサンプルの同じスライス内に位置している最も近い利用可能なサンプルである第2サンプルからパディングされ、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記分類動作で分類フィルタインデックスを決定するために使用され、前記現在のサンプルを含む4×4領域の前記分類フィルタインデックスは、前記4×4領域を含む10×10領域から計算された勾配に基づき導出され、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記第1フィルタリングプロセスのフィルタでも使用され、前記第2サンプルの位置は、
前記第1サンプルの垂直座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記垂直座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い垂直位置である新しい垂直座標にクリップすることと、
前記第1サンプルの水平座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記水平座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い水平位置である新しい水平座標にクリップすることと
に基づき決定される、前記適用することと、
前記第2サンプルからパディングされた前記第1サンプルの前記値に基づき前記第1フィルタリングプロセスを適用することによって前記変換を実行することと
を有し、
前記第1フィルタリングプロセスは、
前記分類動作に基づいて前記現在のサンプルのフィルタリング係数セットを決定することと、
前記現在のサンプルのクリッピング値セットを決定することと、
前記フィルタリング係数セット及び前記クリッピング値セットに基づき前記現在のサンプルに対して前記フィルタを適用することと
を有する、方法。
【請求項2】
前記パディングプロセスは、前記現在のコーディングツリーブロックが、スライス境界ではない他の境界タイプと一致する場合に、一様な様態で適用される、
請求項1に記載の方法。
【請求項3】
当該方法は、前記現在のコーディングツリーブロックの下境界と前記ピクチャの下境界との間の関係に基づいて、仮想境界が前記現在のコーディングツリーブロックに関して有効にされるかどうかを決定することを更に有する、
請求項1又は2に記載の方法。
【請求項4】
前記仮想境界は、前記現在のコーディングツリーブロックの下境界が前記ピクチャの下境界ではない場合に有効にされる、
請求項3に記載の方法。
【請求項5】
前記変換は、前記ビデオを前記ビットストリームにエンコードすることを含む、
請求項1乃至4のうちいずれか一項以上に記載の方法。
【請求項6】
前記変換は、前記ビットストリームから前記ビデオをデコードすることを含む、
請求項1乃至4のうちいずれか一項以上に記載の方法。
【請求項7】
ビデオデータを処理する装置であって、
プロセッサと、命令を有している非一時的なメモリとを有し、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、
1つ以上のコーディングツリーブロックを含むビデオのピクチャと前記ビデオのビットストリームとの間の変換のために、第1サンプルが現在のコーディングツリーブロックの現在のサンプルのスライスとは異なるスライスに位置しておりかつ第1フィルタリングプロセスでスライスにわたるサンプルが許されないという理由で、前記現在のサンプルに対する前記第1フィルタリングプロセスのための分類動作で前記第1サンプルが利用不可能であることを決定することであり、前記ピクチャの全てのスライスが長方形スライスである、前記決定することと、
前記第1サンプルのためにパディングプロセスを適用することであり、前記第1サンプルの値は、前記現在のサンプルの同じスライス内に位置している最も近い利用可能なサンプルである第2サンプルからパディングされ、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記分類動作で分類フィルタインデックスを決定するために使用され、前記現在のサンプルを含む4×4領域の前記分類フィルタインデックスは、前記4×4領域を含む10×10領域から計算された勾配に基づき導出され、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記第1フィルタリングプロセスのフィルタでも使用され、前記第2サンプルの位置は、
前記第1サンプルの垂直座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記垂直座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い垂直位置である新しい垂直座標にクリップすることと、
前記第1サンプルの水平座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記水平座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い水平位置である新しい水平座標にクリップすることと
に基づき決定される、前記適用することと、
前記第2サンプルからパディングされた前記第1サンプルの前記値に基づき前記第1フィルタリングプロセスを適用することによって前記変換を実行することと
を実行させ、
前記第1フィルタリングプロセスは、
前記分類動作に基づいて前記現在のサンプルのフィルタリング係数セットを決定することと、
前記現在のサンプルのクリッピング値セットを決定することと、
前記フィルタリング係数セット及び前記クリッピング値セットに基づき前記現在のサンプルに対して前記フィルタを適用することと
を有する、装置。
【請求項8】
プロセッサに、
1つ以上のコーディングツリーブロックを含むビデオのピクチャと前記ビデオのビットストリームとの間の変換のために、第1サンプルが現在のコーディングツリーブロックの現在のサンプルのスライスとは異なるスライスに位置しておりかつ第1フィルタリングプロセスでスライスにわたるサンプルが許されないという理由で、前記現在のサンプルに対する前記第1フィルタリングプロセスのための分類動作で前記第1サンプルが利用不可能であることを決定することであり、前記ピクチャの全てのスライスが長方形スライスである、前記決定することと、
前記第1サンプルのためにパディングプロセスを適用することであり、前記第1サンプルの値は、前記現在のサンプルの同じスライス内に位置している最も近い利用可能なサンプルである第2サンプルからパディングされ、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記分類動作で分類フィルタインデックスを決定するために使用され、前記現在のサンプルを含む4×4領域の前記分類フィルタインデックスは、前記4×4領域を含む10×10領域から計算された勾配に基づき導出され、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記第1フィルタリングプロセスのフィルタでも使用され、前記第2サンプルの位置は、
前記第1サンプルの垂直座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記垂直座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い垂直位置である新しい垂直座標にクリップすることと、
前記第1サンプルの水平座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記水平座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い水平位置である新しい水平座標にクリップすることと
に基づき決定される、前記適用することと、
前記第2サンプルからパディングされた前記第1サンプルの前記値に基づき前記第1フィルタリングプロセスを適用することによって前記変換を実行することと
を実行させる命令を記憶し、
前記第1フィルタリングプロセスは、
前記分類動作に基づいて前記現在のサンプルのフィルタリング係数セットを決定することと、
前記現在のサンプルのクリッピング値セットを決定することと、
前記フィルタリング係数セット及び前記クリッピング値セットに基づき前記現在のサンプルに対して前記フィルタを適用することと
を有する、非一時的なコンピュータ可読記憶媒体。
【請求項9】
ビデオのビットストリームを記憶する
方法であって
、
1つ以上のコーディングツリーブロックを含むビデオのピクチャと前記ビデオのビットストリームとの間の変換のために、第1サンプルが現在のコーディングツリーブロックの現在のサンプルのスライスとは異なるスライスに位置しておりかつ第1フィルタリングプロセスでスライスにわたるサンプルが許されないという理由で、前記現在のサンプルに対する前記第1フィルタリングプロセスのための分類動作で前記第1サンプルが利用不可能であることを決定することであり、前記ピクチャの全てのスライスが長方形スライスである、前記決定することと、
前記第1サンプルのためにパディングプロセスを適用することであり、前記第1サンプルの値は、前記現在のサンプルの同じスライス内に位置している最も近い利用可能なサンプルである第2サンプルからパディングされ、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記分類動作で分類フィルタインデックスを決定するために使用され、前記現在のサンプルを含む4×4領域の前記分類フィルタインデックスは、前記4×4領域を含む10×10領域から計算された勾配に基づき導出され、前記第2サンプルからパディングされた前記第1サンプルの前記値は、前記第1フィルタリングプロセスのフィルタでも使用され、前記第2サンプルの位置は、
前記第1サンプルの垂直座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記垂直座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い垂直位置である新しい垂直座標にクリップすることと、
前記第1サンプルの水平座標が前記現在のサンプルの前記同じスライスの外にあることで前記第1サンプルが利用不可能であるときに、前記第1サンプルの前記水平座標を、前記現在のサンプルの前記同じスライス内に位置している最も近い水平位置である新しい水平座標にクリップすることと
に基づき決定される、前記適用することと、
前記第2サンプルからパディングされた前記第1サンプルの前記値に基づき前記第1フィルタリングプロセスを適用することによって前記ビットストリームを生成することと
、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと
を有し、
前記第1フィルタリングプロセスは、
前記分類動作に基づいて前記現在のサンプルのフィルタリング係数セットを決定することと、
前記現在のサンプルのクリッピング値セットを決定することと、
前記フィルタリング係数セット及び前記クリッピング値セットに基づき前記現在のサンプルに対して前記フィルタを適用することと
を有する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2019年7月11日付けで出願された国際特許出願第PCT/CN2019/095657号に対する優先権及びその利益を請求して2020年7月13日付けで出願された国際特許出願第PCT/CN2020/101589号の国内移行である特願2022-500893号の分割出願である。上記の全ての特許出願は、それらの全文を参照により本願に援用される。
【0002】
[技術分野]
本特許文献は、概して、ビデオ符号化及び復号化技術を対象とする。
【背景技術】
【0003】
ビデオ符号化標準規格は、よく知られているITU-T及びISO/IEC標準規格の整備を通じて主に発展してきた。ITU-TはH.261及びH.263を作り出し、ISO/IECはMPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同でH.262/MPEG-2 Video及びH.264/MPEG-4 Advanced Video Coding(AVC)及びH.265/High Efficiency Video Coding(HEVC)標準規格を作り出した。H.262以降、ビデオ符号化標準規格は、時間予測に変換コーディングをプラスしたものが利用されるハイブリッド型ビデオ符号化構造に基づいている。HEVCを超える将来のビデオ符号化技術を探求するために、Joint Video Exploration Team(JVET)が2015年にVCEG及びMPEGによって共同で設立された。それ以降、多くの新しい手法は、JVETによって採用され、Joint Exploration Model(JEM)と呼ばれる参照ソフトウェアに置かれてきた。2018年4月に、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間で、JVETが、HEVCと比較して50%のビットレート低減を目標とする次世代のVersatile Video Coding(VVC)標準規格を検討するために作られた。
【発明の概要】
【0004】
開示されているビデオ符号化、トランスコーディング又は復号化技術を用いて、ビデオエンコーダ又はデコーダの実施形態は、符号化又は復号化ツールのより良い圧縮効率及びより簡単な実施を提供するようコーディングツリーブロックの仮想境界を処理することができる。
【0005】
一例となる態様において、ビデオ処理の方法が開示される。方法は、ビデオのビデオピクチャ内にあるブロックと、前記ビデオのビットストリーム表現との間の変換のために、適応ループフィルタプロセスにおける現在のサンプルのために、前記ビデオピクチャの複数のビデオ領域の境界にわたって位置しているサンプルの第1の組をパディングする方法を決定することを含む。方法はまた、前記決定することに従って前記変換を実行することを含む。
【0006】
他の例となる態様において、ビデオ処理の方法が開示される。方法は、ビデオのビデオピクチャ内にあるブロックと、前記ビデオのビットストリーム表現との間の変換のために、前記ブロックが前記ビデオピクチャの複数のビデオ領域の境界の少なくとも1タイプと一致する場合に、適応ループフィルタプロセスにおける前記ブロックの現在のサンプルのためにサンプルを生成する一様パディング動作を決定することを含む。方法はまた、前記決定することに基づいて前記変換を実行することを含む。
【0007】
他の例となる態様において、ビデオ処理の方法が開示される。方法は、ビデオのビデオピクチャ内にあるブロックと、前記ビデオのビットストリーム表現との間の変換のために、複数のビデオ領域の境界の2つのタイプの間に位置している現在のサンプルのためにパディング動作が適応ループフィルタプロセスで呼び出される方法を決定することを含む。前記境界の2つのタイプのうちの1つは360仮想境界(360 virtual boundary)を有する。方法はまた、前記決定することに従って前記変換を実行することを含む。
【0008】
他の例となる態様において、ビデオ処理の方法が開示される。方法は、ビデオピクチャのビデオブロックとそのビットストリーム表現との間の変換を実行することを含む。ここで、前記ビデオブロックは、コーディングツリーブロックの論理的なグループ分けを用いて処理され、前記コーディングツリーブロックは、下端コーディングツリーブロックの下境界が前記ビデオピクチャの下境界の外にあるかどうかに基づき処理される。
【0009】
他の例となる態様において、他のビデオ処理方法が開示される。方法は、現在のビデオブロックのコーディングツリーブロックの条件に基づいて、インループフィルタリング中に仮想サンプルの使用状態を決定することと、該仮想サンプルの使用状態に従って前記ビデオブロックと該ビデオブロックのビットストリーム表現との間の変換を実行することとを含む。
【0010】
更なる他の例となる態様において、他のビデオ処理方法が開示される。方法は、1つ以上のビデオスライス又はビデオブリックに論理的にグループ分けされるビデオピクチャと、該ビデオピクチャのビットストリーム表現との間の変換中に、適応ループフィルタプロセスにおける他のスライス又はブリック内のサンプルの使用を無効にすると決定することと、前記決定することに従って前記変換を実行することとを含む。
【0011】
更なる他の例となる態様において、他のビデオ処理方法が開示される。方法は、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に、前記現在のビデオブロックが前記ビデオピクチャのビデオユニットの境界に位置しているサンプルを含むことを決定することと、前記決定することに基づいて前記変換を実行することとを含み、前記変換を実行することは、前記ビデオピクチャ内の全ての境界タイプについて同じである統一手法を用いてインループフィルタリングのための仮想サンプルを生成することを含む。
【0012】
更なる他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオピクチャの現在のビデオブロックとそのビットストリーム表現との間の変換中に、該変換中に前記ビデオピクチャに対して利用可能な複数の適応ループフィルタ(ALF)サンプル選択方法のうちの1つ適用すると決定することと、前記複数のALFサンプル選択方法のうちの1つを適用することによって前記変換を実行することとを含む。
【0013】
更なる他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記ビデオピクチャの仮想パイプラインデータユニット(VPDU)を横断するサンプルを使用することを無効にする、ことと、前記インループフィルタリング動作の結果を用いて前記変換を実行することとを含む。
【0014】
更なる他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、ビデオユニット境界にわたる前記現在のビデオブロックの位置について、パディングを使用せずに生成されるサンプルを使用することを定める、ことと、前記インループフィルタリング動作の結果を用いて前記変換を実行することとを含む。
【0015】
更なる他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記インループフィルタリング動作のために、インループフィルタリング中に使用される現在のビデオブロックのサンプルが前記ビデオピクチャのビデオユニットの境界を横断しないような大きさを有しているフィルタを選択することを定める、ことと、前記インループフィルタリング動作の結果を用いて前記変換を実行することとを含む。
【0016】
更なる他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記インループフィルタリング動作のために、パディングされたサンプルがインループフィルタリングに必要とされるか否かに基づいてクリッピングパラメータ又はフィルタ係数を選択することを定める、ことと、前記インループフィルタリング動作の結果を用いて前記変換を実行することとを含む。
【0017】
更なる他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記現在のビデオブロックの色成分識別に依存する、ことと、前記インループフィルタリング動作の結果を用いて前記変換を実行することとを含む。
【0018】
更なる他の例となる態様において、上記の方法を実行するよう構成されたビデオ符号化装置が開示される。
【0019】
更なる他の例となる態様において、上記の方法を実行するよう構成されているビデオデコーダが開示される。
【0020】
更なる他の例となる態様において、機械により読み出し可能な媒体が開示される。媒体は、実行時に上記の方法の1つ以上をプロセッサに実装させるコードを記憶する。
【0021】
開示されている技術の上記及び他の態様及び特徴は、図面、明細書及び特許請求の範囲で更に詳細に記載される。
【図面の簡単な説明】
【0022】
【
図1】12個のタイル及び3つのラスタスキャンスライスにパーティション化されている18×12のルーマコーディングツリーユニット(CTU)を有しているピクチャの例を示す。
【
図2】24個のタイル及び9個の長方形スライスにパーティション化されている18×12のルーマCTUを有しているピクチャの例を示す。
【
図3】4つのタイル、11個のブリック、及び4つの長方形スライスにパーティション化されているピクチャの例を示す。
【
図4A】K=M、L<Nである場合に、ピクチャ境界を横断するコーディングツリーブロック(CTB)の例を示す。
【
図4B】K<M、L=Nである場合に、ピクチャ境界を横断するコーディングツリーブロック(CTB)の例を示す。
【
図4C】K<M、L<Nである場合に、ピクチャ境界を横断するコーディングツリーブロック(CTB)の例を示す。
【
図6】8×8グリッドのピクチャサンプル並びに垂直及び水平ブロック境界と、並行してデブロッキングされ得る8×8のサンプルの重なり合わないブロックとの実例である。
【
図7】フィルタオン/オフ定義及び強/弱フィルタ選択に関与するピクセルの例を示す。
【
図9】幾何的適応ループフィルタリング(GALF)フィルタ形状の例(左:5×5ダイヤモンド、中央:7×7ダイヤモンド、右:9×9ダイヤモンド)を示す。
【
図10】5×5ダイヤモンドフィルタサポートのための相対座標を示す。
【
図11】5×5ダイヤモンドフィルタサポートのための相対座標の例を示す。
【
図12A】サブサンプリングされたラプラシアン計算のための配置例を示す。
【
図12B】サブサンプリングされたラプラシアン計算のための他の配置例を示す。
【
図12C】サブサンプリングされたラプラシアン計算のための他の配置例を示す。
【
図12D】サブサンプリングされたラプラシアン計算のための更なる他の配置例を示す。
【
図13】ルーマ成分のためのVTM-4.0でのループフィルタラインバッファ要件の例を示す。
【
図14】クロマ成分のためのVTM-4.0でのループフィルタラインバッファ要件の例を示す。
【
図15A】N=4である場合に、仮想境界でのALFブロック分類の例を示す。
【
図15B】N=4である場合に、仮想境界でのALFブロック分類の他の例を示す。
【
図16A】仮想境界での変更されたルーマALFフィルタリングの例を表す。
【
図16B】仮想境界での変更されたルーマALFフィルタリングの他の例を表す。
【
図16C】仮想境界での変更されたルーマALFフィルタリングの更なる他の例を表す。
【
図17A】仮想境界での変更されたクロマALFフィルタリングの例を示す。
【
図17B】仮想境界での変更されたクロマALFフィルタリングの他の例を示す。
【
図18A】水平ラップアラウンド動き補償の例を示す。
【
図18B】水平ラップアラウンド動き補償の他の例を示す。
【
図19】変更された適応ループフィルタの例を表す。
【
図20】ビデオピクチャ内のCTUを処理する例を示す。
【
図21】変更された適応ループフィルタ境界の例を示す。
【
図23】ビデオ処理の方法の例のフローチャートである。
【
図24】3×2レイアウトでのHECの画像の例を示す。
【
図25】2種類の境界のサンプルについてのパディングされたラインの数の例を示す。
【
図27】ピクチャ内のCTUの処理の他の例を示す。
【
図28】現在のサンプル及びアクセスされることを求められるサンプルの他の例を示す。
【
図29】“利用不可能な”隣接サンプルのパディングの他の例を示す。
【
図30】開示されている技術が実装され得るビデオ処理システムの例のブロック図である。
【
図31】本技術に従うビデオ処理方法のフローチャート表現である。
【
図32】本技術に従う他のビデオ処理方法のフローチャート表現である。
【
図33】本技術に従う更なる他のビデオ処理方法のフローチャート表現である。
【発明を実施するための形態】
【0023】
セクション見出しは、理解を簡単にするために本明細書で使用されているのであって、セクションで開示されている実施形態をそのセクションにのみ制限するものではない。更に、特定の実施形態は、Virsatile Video Coding(VVC)又は他の特定のビデオコーデックを参照して記載されているが、開示されている技術は、他のビデオ符号化技術にも適用可能である。更に、いくつかの実施形態は、ビデオ符号化ステップについて詳述しているが、符号化を元に戻す対応する復号化ステップがデコーダによって実装されることが理解されるだろう。更に、ビデオ処理という用語は、ビデオ符号化又は圧縮、ビデオ復号化又は圧縮解除、及びビデオピクセルが1つの圧縮されたフォーマットから他の圧縮されたフォーマットに又は異なる圧縮ビットレートで表現されるビデオトランスコーディングを包含する。
【0024】
1.概要
本明細書は、ビデオ符号化技術に関係がある。具体的に、それは、特に非線形適応ループフィルタのためのピクチャ/スライス/タイル/ブリック境界および仮想境界コーディングに関係がある。それは、HEVCのような既存のビデオ符号化標準規格、又はまとめられるべき標準規格(VVC)に適用されてもよい。それはまた、将来のビデオ符号化標準規格又はビデオコーデックにも適用可能であり得る。
【0025】
2.最初の議論
ビデオ符号化標準規格は、よく知られているITU-T及びISO/IEC標準規格の開発を通じて主に発展してきた。ITU-TはH.261及びH.263を作り出し、ISO/IECはMPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同でH.262/MPEG-2 Video及びH264/MPEG-4 Advanced Video Coding(AVC)及びH.265/HEVC標準規格を作り出した。H.262以降、ビデオ符号化標準規格は、時間予測に変換コーディングをプラスしたものが利用されるハイブリッド型ビデオ符号化構造に基づいている。HEVCを超える将来のビデオ符号化技術を探求するために、Joint Video Exploration Team(JVET)が2015年にVCEG及びMPEGによって共同で設立された。それ以降、多くの新しい手法は、JVETによって採用され、Joint Exploration Model(JEM)と呼ばれる参照ソフトウェアに置かれてきた。2018年4月に、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間で、JVETが、HEVCと比較して50%のビットレート低減を目標とするVVC標準規格を検討するために作られた。
【0026】
2.1 色空間及びクロマサブサンプリング
カラーモデル(又はカラーシステム)としても知られている色空間は、数字の順序組(tuples)として、通常は、3又は4つの値又は色成分(例えば、RGB)として、色の範囲を簡単に記述する抽象数学モデルである。基本的には、色空間は、座標系及び部分空間の精緻化である。
【0027】
ビデオ圧縮のために、最も頻繁に使用される色空間はYCbCr及びRGBである。
【0028】
YCBCR又はY’CBCRとも書かれるYCbCr、Y’CbCr、又はY Pb/Cb Pr/Crは、ビデオ及びデジタル写真撮影システムにおけるカラー画像パイプラインの部分として使用される色空間のファミリーである。Y’は、ルーマ成分であり、CB及びCRは、青色差分及び赤色差分クロマ成分である。Y’(プライム付き)は、輝度であるYとは区別される。つまり、光度は、ガンマ補正されたRGBプライマリに基づき非線形にエンコードされる。
【0029】
クロマサブサンプリングは、輝度よりも色の違いに対して人間の視覚系が鈍いことを利用して、ルーマ情報場合に比べてクロマ情報の場合に低い解像度を実装することによって画像をエンコードする慣行である。
【0030】
2.1.1 色フォーマット4:4:4
3つのY’CbCt成分の夫々が同じサンプルレートを有しているので、クロマサブサンプリングは存在しない。このスキームは、ハイエンドのフィルムスキャナ及び映画のポストプロダクションで時々使用される。
【0031】
2.1.2 色フォーマット4:2:2
2つのクロマ成分はルーマのサンプルレートの半分でサンプリングされ、水平クロマ解像度は半分になる。これは、圧縮されていないビデオ信号のバンド幅を3分の1に低減するが、視覚的な違いはほとんど全くない。
【0032】
2.1.3 色フォーマット4:2:0
4:2:0では、水平サンプリングは4:1:1と比べて2倍になるが、Cb及びCrチャネルがこのスキームでは夫々交互のラインでしかサンプリングされないということで、水平解像度は半分になる。よって、データレートは同じである。Cb及びCrは、水平及び垂直方向の両方で夫々2倍でサブサンプリングされる。4:2:0スキームには3つのバリエーションがあり、水平方向及び垂直方向の配置が異なる。
【0033】
MPEG-2では、Cb及びCrは、水平方向で共存している。Cb及びCrは、垂直方向においてはピクセル間に位置決めされる(隙間に配置される)。
【0034】
JPEG/JFIF、H.261、及びMPEG-1では、Cb及びCrは、交互のルーマサンプルの中間で、隙間に配置される。
【0035】
4:2:0 DVでは、Cb及びCrは、水平方向で共存している。垂直方向においては、それらは交互のライン上に共存している。
【0036】
2.2 様々なビデオユニット
ピクチャは、1つ以上のタイル行及び1つ以上のタイル列に分けられる。タイルは、ピクチャの長方形領域をカバーするCTUの連続である。
【0037】
タイルは、1つ以上のブリックに分けられ、各ブリックは、そのタイル内の多数のCTU行から成る。
【0038】
多数のブリックにパーティション化されていないタイルも、ブリックと呼ばれる。しかし、タイルの実際のサブセットであるブリックは、タイルとは呼ばれない。
【0039】
スライスは、ピクチャの多数のタイル、又はタイルの多数のブリックのどちらかを含む。
【0040】
スライスの2つのモード、つまり、ラスタスキャンスライスモード及び長方形スライスモード、がサポートされる。ラスタスキャンスライスモードでは、スライスは、ピクチャのタイルラスタスキャンにおけるタイルの連続を含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域を集合的に形成するピクチャの多数のブリックを含む。長方形スライス内のブリックは、そのスライスのブリックラスタスキャンの順になっている。
【0041】
図1は、ピクチャのラスタスキャンスライスパーティショニングの例を示し、ピクチャは、12個のタイル及び3つのラスタスキャンスライスに分割されている。
【0042】
図2は、ピクチャの長方形スライスパーティショニングの例を示し、ピクチャは、24個のタイル(6つのタイル列及び4つのタイル行)及び9個の長方形スライスに分割されている。
【0043】
図3は、タイル、ブリック、及び長方形スライスにパーティション化されているピクチャの例を示す。ピクチャは、4つのタイル(2つのタイル列及び2つのタイル行)、11個のブリック(左上のタイルが1つのブリックを含み、右上のタイルが5つのブリックを含み、左下のタイルが2つのブリックを含み、右下のタイルが3つのブリックを含む)、及び4つの長方形スライスに分割されている。
【0044】
2.2.1 CTU/CTBサイズ
VVCでは、シンタックス要素log2_ctu_size_minus2によってSPSで通知されるCTUサイズは、4×4まで小さくすることができる。
【表1】
【0045】
2.2.2 ピクチャ内のCTU
M×N(通常は、HEVC/VVCで定義されるように、MはNに等しい)によって示されるCTB/LCUサイズを仮定して、ピクチャ(あるいは、タイル若しくはスライス又は他の種類のタイプ)の境界(ピクチャ境界が例とされる)に位置しているCTBについて、K×Lのサンプルがピクチャ境界内にあり、このとき、K<M又はL<Nのどちらかである。
図4A~4Cに表されているようなCTBについて、CTBサイズは依然としてM×Nに等しいが、CTBの下境界/右境界はピクチャの外にある。
【0046】
図4Aは、下側ピクチャ境界をまたぐCTBを示す。
図4Bは、右側ピクチャ境界をまたぐCTBを示す。
図4Cは、右下ピクチャ境界をまたぐCTBを示す。
【0047】
図4A~4Cは、(a)K=M、L<N、(b)K<M、L=N、及び(c)K<M、L<Nである場合について、ピクチャ境界を横断するCTBの例を示す。
【0048】
2.3 典型的なビデオコーデックのコーディングフロー
図5は、3つのインループフィルタリングブロック、つまり、デブロッキングフィルタ(DF)、サンプル適応オフセット(SAO)、及びALDを含む、VVCのエンコーダブロック図の例を示す。予め定義されたフィルタを使用するDFとは異なり、SAO及びALFは、オフセット及びフィルタ係数を通知するコード化されたサイド情報を用いて、夫々、オフセットを加えることによって、及び有限インパルス応答(FIR)フィルタを適用することによって、現在のピクチャの元のサンプルと再構成されたサンプルとの間の平均二乗誤差を低減するように、現在のピクチャの元のサンプルを利用する。ALFは、各ピクチャの最後の処理段に位置し、前の段で生じたアーチファクトを捕捉及び修正しようと試みるツールと見なせる。
【0049】
2.4 デブロッキングフィルタ(DB)
DBの入力は、インループフィルタ前の再構成されたサンプルである。
【0050】
ピクチャ内の垂直エッジが最初にフィルタリングされる。次いで、ピクチャ内の水平エッジが、垂直エッジフィルタリング処理によって変更されたサンプルを入力として用いて、フィルタリングされる。各CTUのCTB内の水平及び垂直エッジは、コーディングユニットごとに個別に処理される。コーディングユニット内のコーディングブロックの垂直エッジは、コーディングブロックの左側にあるエッジから始まり、それらの幾何学順序においてコーディングブロックの右側に向かってエッジを通過して、フィルタリングされる。コーディングユニット内のコーディングブロックの水平エッジは、コーディングブロックの上にあるエッジから始まり、それらの幾何学順序においてコーディングブロックの下に向かってエッジを通過して、フィルタリングされる。
【0051】
図6は、8×8グリッドのピクチャサンプル並びに垂直及び水平ブロック境界と、並行してデブロッキングされ得る8×8のサンプルの重なり合わないブロックとの実例である。
【0052】
2.4.1 境界決定
フィルタリングは8×8ブロック境界に適用される。更に、それは、変換ブロック境界又はコーディングサブブロック境界であるべきである(例えば、アフィン動き予測、ATMVPの利用による)。そのような境界ではないものについては、フィルタは無効にされる。
【0053】
2.4.2 境界強さの計算
変換ブロック境界/コーディングサブブロック境界については、それが8×8グリッドに位置している場合に、フィルタリングされてもよく、このエッジに対するbS[xD
i][yD
j](ここで、[xD
i][yD
j]は座標を表す)の設定は、表1及び表2で夫々定義される。
【表2】
【0054】
2.4.3 ルーマ成分のためのデブロッキング決定
このサブセクションでは、デブロッキング決定プロセスが記載される。
【0055】
図7は、フィルタオン/オフ定義及び強/弱フィルタ選択に関与するピクセルの例を示す。
【0056】
より広く、より強いルーマフィルタは、条件1、条件2及び条件3の全てが真である場合にのみ使用されるフィルタである。
【0057】
条件1は、「大きいブロックの条件」である。この条件は、Pサイド及びQサイドのサンプルが大きいブロックに属するかどうかを検出する。これは、変数bSidePisLargeBlk及びbSideQisLargeBlkによって夫々表される。bSidePisLargeBlk及びbSideQisLargeBlkは、次のように定義される。
bSidePisLargeBlk=((エッジタイプが垂直であり、p0が幅>=32であるCUに属する)||(エッジタイプが水平であり、p0が高さ>=32であるCUに属する))? TRUE:FALSE
bSideQisLargeBlk=((エッジタイプが垂直であり、q0が幅>=32であるCUに属する)||(エッジタイプが水平であり、q0が高さ>=32であるCUに属する))?TRUE:FALSE
【0058】
bSidePisLargeBlk及びbSideQisLargeBlkに基づいて、条件1は、次のように定義される。
条件1=(bSidePisLargeBlk||bSideQisLargeBlk)?TRUE:FALSE
【0059】
次に、条件1が真である場合に、条件2が更にチェックされることになる。最初に、次の変数が導出される:
- dp0、dp3、dq0、dq3が、HEVCで見られるように、最初に導出される
- if(pサイドが32以上である)
dp0=(dp0+Abs(p50-2×p40+p30)+1)>>1
dp3=(dp3+Abs(p53-2×p43+p33)+1)>>1
- if(qサイドが32以上である)
dq0=(dq0+Abs(q50-2×q40+q30)+1)>>1
dq3=(dq3+Abs(q53-2×q43+q33)+1)>>1
条件2=(d<β)?TRUE:FALSE
このとき、d=dp0+dq0+dp3+dq3である。
【0060】
条件1及び条件2が妥当である場合に、ブロックのいずれかがサブブロックを使用するかどうかが更にチェックされる:
【数1】
【0061】
最後に、条件1及び条件2の両方が妥当である場合に、提案されているデブロッキング方法は、次のように定義されている条件3(大きいブロック強いフィルタ条件)をチェックすることになる。
【0062】
条件3の強フィルタ条件では、次の変数が導出される:
dpqが、HEVCで見られるように、導出される。
HEVCで見られるように導出されたsp3=Abs(p3-p0)
if(pサイドが32以上である)
if(Sp==5)
sp3=(sp3+Abs(p5-p3)+1)>>1
else
sp3=(sp3+Abs(p7-p3)+1)>>1
HEVCで見られるように導出されたsq3=Abs(q0-q3)
if(qサイドが32以上である)
if(Sp==5)
sq3=(sq3+Abs(q5-q3)+1)>>1
else
sq3=(sq3+Abs(q7-q3)+1)>>1
【0063】
HEVCで見られるように、StrongFilterCondition=(dpqが(β>>2)よりも小さい,sp3+sq3が(3×β>>5)よりも小さい,かつAbs(p0-q0)が(5×tC+1)>>1よりも小さい)?TRUE:FALSEである。
【0064】
2.4.4 (より大きいブロックのために設計された)ルーマのためのより強いデブロッキングフィルタ
境界のどちらか一方の側のサンプルが大きいブロックに属する場合に、双線形フィルタが使用される。大きいブロックに属するサンプルは、垂直エッジについては、幅>=32である場合、及び水平エッジについては、高さ>=32である場合として定義される。
【0065】
双線形フィルタは、以下に挙げられている。
【0066】
上記のHEVCデブロッキングにおけるブロック境界サンプルpi(i=0乃至Sp-1)及びqj(j=0乃至Sq-1)(pi及びqiは、垂直エッジをフィルタリングするためには、行内のi番目のサンプル、又は水平エッジをフィルタリングするためには、列内のi番目のサンプルである)は、次いで、次のように線形補間で置換される:
pi’=(fi*Middles,t+(64-fi)*PS+32)>>6),pi±tcPDiにクリップされる
qj’=(gj*Middles,t+(64-gj)*QS+32)>>6),qj±tcPDjにクリップされる
ここで、tcPDi及びtcPDjの項は、セクション2.4.7で記載される位置依存のクリッピングであり、gj、fi、Middles,t、PS、及びQSは、以下で与えられる。
【0067】
2.4.5 クロマのためのデブロッキング制御
クロマ強フィルタは、ブロック境界の両側で使用される。ここで、クロマフィルタは、クロマエッジの両側が8(クロマ位置)以上であり、3つの条件による次の決定が満足される場合に選択される。第1の条件は、境界強さ及び大きいブロックの決定に関する。提案されているフィルタは、ブロックエッジを直角に横断するブロック幅又は高さがクロマサンプル領域で8以上である場合に、適用され得る。第2及び第3の条件は、基本的に、HEVCルーマデブロッキング決定の場合と同じであり、夫々、オン/オフ決定及び強フィルタ決定である。
【0068】
最初の決定では、境界強さ(bS)がクロマフィルタリングのために変更され、条件は順次的にチェックされる。条件が満足される場合に、次いで、より優先度が低い残りの条件がスキップされる。
【0069】
クロマデブロッキングは、大きいブロック境界が検出される場合に、bSが2に等しいか、又はbSが1に等しいときに実行される。
【0070】
第2及び第3の条件は、次のように、基本的に、HEVCルーマ強フィルタ決定と同じである。
【0071】
第2の条件では:
次いで、dが、HEVCルーマデブロッキングで見られるように導出される。
【0072】
第2条件は、dがβよりも小さい場合に真になる。
【0073】
第3の条件では、StrongFilterConditionが次のように導出される:
dpqが、HEVCで見られるように、導出される。
HEVCで見られるように導出されたsp3=Abs(p3-p0)
HEVCで見られるように導出されたsq3=Abs(q0-q3)
【0074】
HEVC設計で見られるように、StrongFilterCondition=(dpqが(β>>2)よりも小さい,sp3+sq3が(β>>3)よりも小さい,かつAbs(p0-q0)が(5×tC+1)>>1よりも小さい)
【0075】
2.4.6 クロマのための強デブロッキングフィルタ
クロマのための次の強デブロッキングフィルタが定義される:
p2’=(3×p3+2×p2+p1+p0+q0+4)>>3
p1’=(2×p3+p2+2×p1+p0+q0+q1+4)>>3
p0’=(p3+p2+p1+2×p0+q0+q1+q2+4)>>3
【0076】
提案されているクロマフィルタは、4×4クロマサンプルグリッドに対してデブロッキングを実行する。
【0077】
2.4.7 位置依存のクリッピング
位置依存のクリッピングtcPDは、境界にある7、5、及び3個のサンプルを変更するものである強くかつ長いフィルタを用いるルーマフィルタリングプロセスの出力サンプルに適用される。量子化誤差分布を仮定すると、より高い量子化ノイズを有すると予想される、従って、真のサンプル値からの再構成されたサンプル値のより高い偏差を有すると予想される、サンプルのクリッピング値を増加させることが提案される。
【0078】
非対称フィルタによりフィルタリングされた各P又はQ境界について、セクション2.4.2での意志決定プロセスの結果に応じて、位置依存の閾値テーブルは、サイド情報としてデコーダへ供給される2つの表(例えば、以下で表にされているTc7及びTc3)から選択される:
Tc7={6,5,4,3,2,1,1};Tc3={6,4,2};
tcPD=(Sp==3)?Tc3:Tc7;
tcQD=(Sq==3)?Tc3:Tc7;
【0079】
P又はQが短い対象フィルタでフィルタリングされる場合に、より桁が低い位置依存の閾値が適用される:
Tc3={3,2,1};
【0080】
閾値を定義することに続いて、フィルタリングされたp’i及びq’jのサンプル値は、tcP及びtcQのクリッピング値に従ってクリッピングされる:
p”i=Clip3(p’i+tcPi,p’i-tcPi,p’i);
q”j=Clip3(q’j+tcQj,q’j-tcQj,q’j);
ここで、p’i及びq’jは、フィルタリングされたサンプル値であり、p”i及びq”jは、クリッピング後の出力サンプル値であり、tcPi及びtcQjは、VVCのtcパラメータ並びにtcPD及びtcQDから導出されるクリッピング閾値である。関数Clip3は、VVCで定められているクリッピング関数である。
【0081】
2.4.8 サブブロックデブロッキング調整
長いフィルタ及びサブブロックデブロッキングの両方を使用して並列フレンドリデブロッキングを可能にするために、長いフィルタは、長いフィルタについてルーマ制御で示されるように、サブブロックデブロッキング(AFFINE又はATMVP又はDMVR)を使用する側で多くても5つのサンプルしか変更しないよう制限される。更に、サブブロックデブロッキングは、CU又は暗黙的なTU境界に近い8×8グリッド上のサブブロック境界が夫々の側で多くても2つのサンプルしか変更しないよう制限されるように、調整される。
【0082】
次は、CU境界と整列されていないサブブロック境界に適用される:
【数2】
【0083】
0に等しいエッジがCU境界に対応する場合に、2に等しいか又はorthogonalLength-2に等しいエッジは、CU境界などから8サンプルのサブブロック境界に対応する。TUの暗黙的な分割が使用される場合に、暗黙的なTUは真である。
【0084】
2.5 SAO
SAOの入力は、DB後の再構成されたサンプルである。SAOの概念は、最初に領域サンプルを、選択された分類子を用いて複数のカテゴリに分類し、カテゴリごとにオフセットを取得し、それからそのオフセットをカテゴリの各サンプルに加えることによって、領域の平均サンプル歪みを低減することであり、ここで、領域の分類子インデックス及びオフセットはビットストリームでコード化される。HEVC及びVVCでは、領域(SAOパラメータシグナリングのためのユニット)は、CTUであるよう定義される。
【0085】
低い複雑性の要件を満足することができる2つのSAOタイプがHEVCでは採用されている。これら2つのタイプは、エッジオフセット(EO)及びバンドオフセット(BO)であり、以下で更に詳細に説明される。SAOタイプのインデックスはコード化される([0,2]の範囲にある)。EOについては、サンプル分類は、1-D方向パターン、つまり、水平、垂直、135°対角、及び45°対角に従って、現在のサンプルと隣接するサンプルとの間の比較に基づく。
【0086】
図8は、EOサンプル分類のための4つの1-D方向パターン:水平(EOクラス=0)、垂直(EOクラス=1)、135°対角(EOクラス=2)、及び45°対角(EOクラス=3)を示す。
【0087】
所与のEOクラスについて、CTB内の各サンプルは、5つのカテゴリのうちの1つに分類される。“c”とラベルを付された現在のサンプル値は、選択された1-Dパターンに沿ってその2つの隣接物と比較される。各サンプルの分類規則は、表3にまとめられている。カテゴリ1及び4は、夫々、選択された1-Dパターンに沿った局所的な谷間及び局所的なピークに関連する。カテゴリ2及び3は、夫々、選択された1-Dパターンに沿った凹部及び凸部に関連する。現在のサンプルがEOカテゴリ1~4に属さない場合には、それはカテゴリ0であり、SAOは適用されない。
【表3】
【0088】
2.6 幾何変換に基づいた適応ループフィルタ
DBの入力は、DB及びSAOの後の再構成されたサンプルである。サンプル分類及びフィルタリングプロセスは、DB及びSAOの後の再構成されたサンプルに基づく。
【0089】
いくつかの実施形態において、ブロックベースのフィルタ適応を用いた、幾何変換に基づいた適応ループフィルタ(geometry transformation-based adaptive loop filter,GALF)が、適用される。ルーマ成分については、局所勾配の方向及び活動に基づいて、25個のフィルタの中の1つが、2×2ブロックごとに選択される。
【0090】
2.6.1 フィルタ形状
いくつかの実施形態において、最大3つのダイヤモンドフィルタ形状(
図9に図示)がルーマ成分のために選択され得る。インデックスは、ルーマ成分に使用されるフィルタ形状を示すようピクチャレベルで通知される。各正方形はサンプルを表し、Ci(iは0~6(左)、0~12(中央)、0~20(右)である)は、サンプルに適用される係数を表す。ピクチャのクロマ成分については、5×5ダイヤモンド形状が常に使用される。
【0091】
2.6.1.1 ブロック分類
各2×2ブロックは、25個のクラスの中の1つに分類される。分類インデックスCは、次のように、その方向性D及び活動の量子化された値A(ハット付き)に基づき導出される:
【数3】
【0092】
D及びハット付きAを計算するために、水平方向、垂直方向、及び2つの対角方向の勾配が最初に、1-Dラプラシアンを用いて計算される:
【数4】
【0093】
インデックスi及びjは、2×2ブロックにおける左上サンプルの座標を指し、R(i,j)は、座標(i,j)での再構成されたサンプルを示す。
【0094】
次いで、水平方向及び垂直方向の勾配の最大及び最小値が:
【数5】
としてセットされ、2つの対角方向の勾配の最大及び最小値が:
【数6】
としてセットされる。
【0095】
方向性Dの値を導出するために、これらの値は、互いに、そして2つの閾値t
1及びt
2と比較される:
【表4】
【0096】
Aは、0以上4以下の範囲に更に量子化され、量子化された値は、ハット付きAとして表される。
【0097】
ピクチャの両クロマ成分については、分類方法は適用されない。例えば、クロマ成分ごとに、ひと組のALF係数が適用される。
【0098】
2.6.1.2 フィルタ係数の幾何変換
図10は、5×5ダイヤモンドフィルタサポートのための相対座標を示す(左:対角、中央:垂直フリップ、右:回転)。
【0099】
各2×2ブロックをフィルタリングする前に、回転又は対角及び垂直フリップなどの幾何変換が、そのブロックについて計算された傾き値に応じて、座標(k,l)に関連するフィルタ係数f(k,l)に適用される。これは、フィルタサポート領域内のサンプルにこれらの変換を適用することと等価である。アイデアは、ALFが適用される様々なブロックを、それらの方向性を調整することによって、より類似させることである。
対角、垂直フリップ、及び回転を含む3つの幾何変換が導入される:
【数7】
ここで、Kは、フィルタのサイズであり、0≦k,l≦K-1は、位置(0,0)が左上隅にあり、位置(K-1,K-1)が右下隅にあるような、係数座標である。変換は、そのブロックについて計算された傾き値に応じてフィルタ係数f(k,l)に適用される。変換と4つの方向の4つの傾きとの間の関係は、表4にまとめられている。
図9は、5×5ダイヤモンドに基づいた各位置の変換後の係数を示す。
【表5】
【0100】
2.6.1.3 フィルタパラメータのシグナリング
いくつかの実施形態において、GALFフィルタパラメータは、最初のCTUについて、例えば、スライスヘッダの後かつ最初のCTUのSAOパラメータの前に、通知される。最大25組のルーマフィルタ係数が通知され得る。ビットオーバヘッドを低減するために、異なる分類のフィルタ係数がマージされ得る。また、参照ピクチャのGALF係数は記憶されて、現在のピクチャのGALF係数として再利用することを可能にされる。現在のピクチャは、参照ピクチャについて記憶されたGALF係数を使用することを選択し、GALF係数シグナリングをバイパスしてもよい。この場合に、参照ピクチャの1つへのインデックスのみが通知され、指示された参照ピクチャの記憶されているGALF係数が現在のピクチャに受け継がれる。
【0101】
GALF時間予測をサポートするために、GALFフィルタセットの候補が保持される。新しいシーケンスの復号化の開始時に、候補リストは空である。1つのピクチャの復号化の後に、フィルタの対応するセットが候補リストに加えられ得る。候補リストのサイズが最大許容値(例えば、6)に達すると、フィルタの新しいセットが復号化順で最も古いセットを上書きし、つまり、先入れ先出し(first-in-first-out,FIFO)規則が、候補リストを更新するために適用される。重複を回避するために、対応するピクチャがGALF時間予測を使用しない場合にのみ、セットは加えられ得る。時間スケーラビリティをサポートするために、フィルタセットの複数の候補リストが存在し、各候補リストは時間レイヤと関連付けられる。より具体的には、時間レイヤインデックス(TemIdx)によって割り当てられている各アレイは、より低いTempIdxに等しい以前にデコードされたピクチャのフィルタセットを構成し得る。例えば、k番目のアレイは、kに等しいTempIdxと関連付けられるよう割り当てられ、それは、k以下のTempIdxを有するピクチャからのフィルタセットのみを含む。特定のピクチャのコーディングの後で、そのピクチャに関連したフィルタセットは、等しい又はより高いTempIdxと関連付けられたアレイを更新するために使用される。
【0102】
GALF係数の時間予測は、シグナリングオーバヘッドを最小化するように、イントラコーディングされたフレームに使用される。イントラフレームについては、時間予測は利用不可能であり、16個の固定フィルタのセットが各クラスに割り当てられる。固定フィルタの利用を示すために、クラスごとにフラグが通知され、必要に応じて、選択された固定フィルタのインデックスが通知される。固定フィルタが所与のクラスのために選択される場合でさえ、適応フィルタf(k,l)の係数は、このクラスについて依然として送信され得る。この場合に、再構成された画像に適用されることになるフィルタの係数は、係数の両方のセットの和である。
【0103】
ルーマ係数のフィルタリングプロセスは、CUレベルで制御され得る。フラグは、GALFがCUのルーマ成分に適用されるかどうかを示すために通知される。クロマ成分については、GALFが適用されるか否かは、ピクチャレベルでのみ示される。
【0104】
2.6.1.4 フィルタリングプロセス
デコーダ側で、GALFがブロックに有効にされる場合に、そのブロック内の各サンプルR(i,j)はフィルタリングされ、以下で示されるサンプル値R’(i,j)が得られる。ここで、Lは、フィルタ長さを表し、f
m,nは、フィルタ係数を表し、f(k、l)は、デコードされたフィルタ係数を表す。
【数8】
【0105】
図11は、現在のサンプル座標(i,j)が(0,0)であると仮定して、5×5ダイヤモンドフィルタサポートに使用される相対座標の例を示す。同じ色で塗りつぶされた、異なる座標のサンプルは、同じフィルタ係数を乗算されている。
【0106】
2.7 幾何変換に基づいた適応ループフィルタ(GALF)
2.7.1 例となるGALF
いくつかの実施形態において、適応ループフィルタのフィルタリングプロセスは、次のように実行される:
【数9】
ここで、サンプルI(x+i,y+j)は、入力サンプルであり、O(x,y)は、フィルタリングされた出力サンプル(例えば、フィルタ結果)であり、w(i,j)は、フィルタ係数を表す。実際に、VTM4.0で、それは、固定点精度の計算に整数演算を用いて実装される:
【数10】
ここで、Lは、フィルタ長さを表し、w(i,j)は、固定点精度でのフィルタ係数である。
【0107】
VVCにおけるGALFの現在の設計には、次の主要な変更がある:
(1)適応フィルタ形状は削除される。7×7フィルタ形状のみがルーマ成分に認められ、5×5フィルタがクロマ成分に認められる。
(2)スライス/画像レベルからCTUレベルに移動されたALFパラメータのシグナリング。
(3)クラスインデックスの計算は2×2ではなく4×4レベルで実行される。加えて、いくつかの実施形態において、ALF分類のためのサブサンプリングされたラプラシアン計算法が利用される。より具体的には、1つのブロック内の各サンプルについて水平/垂直/45°対角/135°対角の各勾配を計算することは不要である。代わりに、1:2サブサンプリングが利用される。
【0108】
図12A~12Dは、CE2.6.2のためのサブサンプリングされたラプラシアン計算を示す。
図12Aは、垂直勾配についてのサブサンプリングされた位置を表し、
図12Bは、水平勾配についてのサブサンプリングされた位置を表し、
図12Cは、対角勾配についてのサブサンプリングされた位置を表し、
図12Dは、対角勾配についてのサブサンプリングされた位置を表す。
【0109】
2.8 非線形ALF
2.8.1 フィルタリングの再定式化
式(11)は、次の式で、コーディング効率に影響を及ぼさずに、再定式化され得る:
【数11】
ここで、w(i,j)は、式(11)と同じフィルタ係数である[式(13)では、1に等しいw(0,0)を除き、一方、式(11)では、それは1-Σ
(i,j)≠(0,0)w(i,j)に等しい]。
【0110】
(13)のこの上記のフィルタ式を用いて、VVCは、隣接するサンプル値(I(x+i,y+j))が、フィルタリングされている現在のサンプル値(I(x,y))と異なりすぎる場合に、それらの隣接するサンプル値の影響を低減するよう単純なクリッピング関数を使用することによって、ALFをより効率的にするために非線形性を導入する。
【0111】
より具体的には、ALFフィルタは、次のように変更される:
【数12】
ここで、K(d,b)=min(b,max(-b,d))は、クリッピング関数であり、k(i,j)は、(i,j)フィルタ係数に依存するクリッピングパラメータである。エンコーダは、最良のk(i,j)を見つけるために最適化を実行する。
【0112】
いくつかの実施形態において、クリッピングパラメータk(i,j)は、各ALFフィルタのために指定され、1つのクリッピング値がフィルタ係数ごとに通知される。つまり、最大12個のクリッピング値が、ルーマフィルタごとにビットストリームで通知され、最大6個のクリッピング値が、クロマフィルタのために通知される。
【0113】
シグナリングコスト及びエンコーダ複雑性を制限するために、INTER及びINTRAスライスについて同じである4つの固定値のみが使用される。
【0114】
局所的差違の分散はしばしばクロマでよりもルーマで高いので、ルーマ及びクロマフィルタのための2つの異なったセットが適用される。各セット内の最大サンプル値(ここでは、10ビットのビットデプスの場合に、1024)も導入され、それにより、クリッピングは、不要である場合には無効にされ得る。
【0115】
いくつかの実施形態で使用されるクリッピング値のセットは、表5で与えられる。4つの値は、対数領域で、ルーマの場合はサンプル値の全範囲(10ビットでコード化)を、及びクロマの場合は4~1024の範囲をほぼ均等に分割することによって、選択されている。
【0116】
より厳密には、クリッピング値のルーマテーブルは、次の式によって求められている:
【数13】
【0117】
同様に、クリッピング値のクロマテーブルは、次の式に従って求められる:
【数14】
【表6】
【0118】
選択されたクリッピング値は、上記の表5内のクリッピング値のインデックスに対応するGolomb符号化スキームを使用することによって、“alf_data”シンタックス要素でコーディングされる。子の符号化スキームは、フィルタインデックスの符号化スキームと同じである。
【0119】
2.9 仮想境界
ハードウェア及び組み込みソフトウェアで、ピクチャベースの処理は、その高いピクチャバッファ要件のために、実際には受け入れられない。オンチップのピクチャバッファの仕様は、非常に高価であり、オフチップのピクチャバッファの使用は、外部メモリアクセス、電力消費量、及びデータアクセスレイテンシを大幅に増大させる。従って、DF、SAO、及びALFは、実際の製品ではピクチャベースからLCUベースの復号化に変更される。LCUベースの処理がDF、SAO、及びALFに使用される場合に、復号化プロセス全体が、複数のLCUの並列処理のためにLCUパイプライン方式によりラスタスキャンでLCUごとに行われ得る。この場合に、1つのLCU行の処理に上部LCU行からのピクセルが必要とされるので、DF、SAO、及びALFのためにラインバッファが必要とされる。オフチップのラインバッファ(例えば、DRAM)が使用される場合には、外部メモリバンド幅及び電力消費量が増える。オンチップのラインバッファ(例えば、SRAM)が使用される場合には、チップ面積が増える。従って、ラインバッファはピクチャバッファよりも既にずっと小さいが、依然として、ラインバッファを低減することが望まれている。
【0120】
いくつかの実施形態において、
図13に示されるように、必要とされるラインバッファの総数は、ルーマ成分の場合に11.25ラインである。ラインバッファ要件の説明は次の通りである:決定及びフィルタリングには最初のCTUからのラインK、L、M、Nと下位CTUからのラインO、Pとが必要なため、CTUエッジと重なり合う水平エッジのデブロッキングは実行不可能である。従って、CTU境界と重なり合う水平エッジのデブロッキングは、下位CTUが来るまで延期される。従って、ラインK、L、M、Nについては、再構成されたルーマサンプルがラインバッファ(4ライン)に格納される必要がある。次いで、SAOフィルタリングがラインAからJまでについて実行され得る。ラインJは、デブロッキングがラインKのサンプルを変更しないということで、SAOフィルタリング可能である。ラインKのSAOフィルタリングのために、エッジオフセット分類決定は、ラインバッファ(0.25ルーマラインである)にのみ格納される。ALFフィルタリングは、ラインA~Fについてのみ実行可能である。
図13に示されるように、ALF分類は、4×4ブロックごとに実行される。各4×4ブロック分類は、サイズ8×8の活動ウィンドウを必要とし、つまり、1dラプラシアンを計算して勾配を決定するために9×9ウィンドウを必要とする。
【0121】
従って、ラインG、H、I、Jと重なり合う4×4ブロックのブロック分類のためには、仮想境界より下のSAOフィルタリングされたサンプルが必要である。ラインD、E、FのSAOフィルタリングされたサンプルは、ALF分類のために必要とされる。更に、ラインGのALFフィルタリングは、上のラインからの3つのSAOフィルタリングされたラインD、E、Fを必要とする。従って、全体のラインバッファ要件は次の通りである:
- ラインK~N(水平DFピクセル):4ライン
- ラインD~J(SAOフィルタリングされたピクセル):7ライン
- ラインJとラインKとの間のSAOエッジオフセット分類子の値:0.25ライン。
【0122】
従って、必要とされるルーマラインの総数は、7+4+0.25=11.25である。
【0123】
同様に、クロマ成分のラインバッファ要件は、
図14に表されている。クロマ成分のラインバッファ要件は、6.25ラインであると評価される。
【0124】
SAO及びALFのラインバッファ要件を排除するために、仮想境界(virtual boundary,VB)の概念が最新のVVCでは導入されている。
図13に示されるように、VBは、Nピクセルだけ上方にシフトされた水平LCU境界である。各LCUについて、SAO及びALFは、下位のLCUが来る前にVBの上にあるピクセルを処理することができるが、DFによって引き起こされる下位のLCUが来るまでVBより下のピクセルを処理することができない。ハードウェア実装コストを考慮すると、処理されたVBと水平LCU境界との間の空間は、ルーマについては4ピクセル(例えば、
図13ではN=4)、及びクロマについては2ピクセル(例えば、
図9ではN=2)としてセットされる。
【0125】
2.9.1 VBサイズNが4である場合の変更されたALFブロック分類
図15A~15Bは、仮想境界がCTU境界より4ライン上にある(N=4)場合の変更されたブロック分類を表す。
図15Aに表されているように、4×4ブロックがラインGから始まる場合に、ブロック分類はラインEからJまでのみを使用する。しかし、ラインJに属するサンプルのラプラシアン勾配計算は、もう一つ下のライン(ラインK)を必要とする。従って、ラインKはラインJでパディングされる。
【0126】
同様に、
図15Bに表されているように、4×4ブロックがラインKから始まる場合に、ブロック分類はラインKからPまでのみを使用する。しかし、ラインKに属するサンプルのラプラシアン勾配計算は、もう一つ上のライン(ラインJ)を必要とする。従って、ラインはラインKでパディングされる。
【0127】
2.9.2 仮想境界を横断するサンプルの両側パディング
図16A~16Cに表されているように、フィルタの切り捨てられたバージョン(truncated version)は、仮想境界に近いラインに属するルーマサンプルのフィルタリングのために使用される。
図16Aを例とすると、
図13に表されているラインMをフィルタリングするときに、例えば、7×7ダイヤモンドの中央のサンプルがラインMにあり、VB(太線で表される)の上にある1つのラインにアクセスする必要がある。この場合に、VBの上のサンプルは、VBの直ぐ下のサンプルからコピーされる。例えば、実線のP0サンプルが、上の破線の位置にコピーされる。対称的に、実線のP3サンプルも、破線の位置のサンプルが利用可能であっても、その破線の位置の直ぐ下にコピーされる。コピーされたサンプルは、ルーマフィルタリングプロセスでのみ使用される。
【0128】
ALF仮想境界のために使用されるパディング方法は、「両側パディング」(Two-side Padding)と呼ばれ得る。
図16A~16C及び
図17A~17Bに表されているように、(i,j)に位置している1つのサンプル(例えば、
図16Bでは、破線のPA0)がパディングされる場合に、同じフィルタ係数を共有する、(m,n)に位置している対応するサンプル(例えば、
図16Bでは、破線のP3B)も、そのサンプルが利用可能であってもパディングされる。
図16A~16Cの7×7ダイヤモンドフィルタサポートでは、中心は、フィルタリングされるべき現在のサンプルである。
図16Aは、VBの上/下の1つの必要なラインがパディングされる必要があることを示す。
図16Bは、VBの上/下の2つの必要なラインがパディングされる必要があることを示す。
図16Cは、VBの上/下の3つの必要なラインがパディングされる必要があることを示す。
【0129】
同様に、
図17~17Bに表されているように、両側パディング法は、クロマALFフィルタリングのためにも使用される。
図17A~17Bは、仮想境界での変更されたクロマALFフィルタリングを示す(5×5ダイヤモンドフィルタサポートであり、中心は、フィルタリングされるべき現在のサンプルである)。
図17Aは、VBの上/下の1つの必要なラインがパディングされる必要があることを示す。
図17Bは、VBの上/下の2つの必要なラインがパディングされる必要があることを示す。
【0130】
2.9.3 非線形ALFが無効にされる場合の両側パディングの実装のための代替法
非線形ALFがCTBについて無効にされる場合に、例えば、式(14)のクリッピングパラメータk(i,j)は1に等しく(1<<Bitdepth)、パディングプロセスは、フィルタ係数を変更することによって置換され得る(別名、変更された係数に基づいたALF(modified-coeff based ALF,MALF))。例えば、ラインL/Iのサンプルをフィルタリングするとき、フィルタ係数c5はc5’に変更され、この場合に、ルーマサンプルを実線P0Aから破線P0Aへ及び実線P3Bから破線P3Bへコピーすることは不要である。この場合に、両側パディング及びMALFは、フィルタリングされるべき現在のサンプルが(x,y)に位置していると仮定すると、同じ結果をもたらすことになる。
【数15】
これは、パディングにより、K(d,b)=dかつI(x-1,y-1)=I(x-1,y-2)であるからである。
【0131】
しかし、非線形ALFが有効にされる場合には、MALF及び両側パディングは、異なったフィルタリング結果をもたらすことになる。これは、非線形パラメータが各係数と関連付けられ、例えば、フィルタ係数c5及びc1については、クリッピングパラメータが異なるからである。従って、
【数16】
これは、パディングにより、I(x-1,y-1)=I(x-1,y-2)でもK(d,b)!=dであるからである。
【0132】
2.10 ALFフィルタリングに関する規格
新たに加えられた部分は、太字イタリック体の下線付きテキストで示される。削除された部分は、[[]]を用いて示される。
【表7】
【0133】
2.11 CTU処理の例
現在のVVC設計に従って、1つのCTBの下境界がスライス/ブリックの下境界である場合に、ALF仮想境界処理方法は無効にされる。例えば、1つのピクチャは、
図19に表されているように、2つのCTU及び2つのスライスに分割される。
【0134】
CTUサイズがM×M(例えば、M=64)であると仮定して、仮想境界定義に従って、CTB内の最後の4ラインは仮想境界より下で扱われる。ハードウェア実装では、次が適用される:
- CTBの下境界がピクチャの下境界である(例えば、CTU-D)場合に、それは、上のCTU行からの4ライン及び現在のCTU内の全ラインを含む(M+4)×Mブロックを処理する。
- そうでない場合に、CTBの下境界がスライス(又はブリック)の下境界であり(例えば、CTU-C)、loop_filter_across_slice_enabled_flag(又はloop_filter_across_bricks_enabled_flag)が0に等しいならば、それは、上のCTU行からの4ライン及び現在のCTU内の全ラインを含む(M+4)×Mブロックを処理する。
- そうでない場合に、CTU/CTBがスライス/ブリック/タイル内の最初のCTU行内にある(例えば、CTU-A)ならば、それは、最後の4ラインを除くM×(M-4)ブロックを処理する。
- そうでない場合に、CTU。CTBがスライス/ブリック/タイルの最初のCTU行内になく(例えば、CTU-B)、スライス/ブリック/タイルの最後のCTU行内にないならば、それは、上のCTU行からの4ラインを含み、現在のCTU内の最後の4ラインを除くM×Mブロックを処理する。
【0135】
【0136】
2.12 360度ビデオコーディング
VTM5における水平ラップアラウンド(wrap around)動き補償は、正距円筒図法(qui-rectangular,ERP)投影フォーマットでの再構成された360度ビデオの視覚品質を改善するよう設計された360固有コーディングツールである、従来の動き補償では、動きベクトルが参照ピクチャのピクチャ境界を越えるサンプルを参照する場合に、繰り返しパディングを適用して、対応するピクチャ境界上の最近傍からコピーすることにより、範囲外のサンプルの値を導き出す。360度ビデオについては、繰り返しパディングのこの方法は適切ではなく、再構成されたビューポートビデオで「シームアーチファクト」(seam artifacts)と呼ばれる視覚アーチファクトを引き起こす可能性がある。360度ビデオは球体で捕捉され、本質的に「境界」がないため、投影領域において参照ピクチャの境界の外にある参照サンプルは、球形の領域内の隣接するサンプルから常に取得され得る。一般的な投影フォーマットについては、2Dから3D及び3Dから2Dの座標変換、並びに分数サンプル位置のサンプル補間が必要とであるから、球形の領域で対応する隣接サンプルを導出するのは難しい場合がある。この問題は、ERP投影フォーマットの左右の境界についてははるかに単純である。これは、左側の画像境界の外側の球形の隣接物が右側の画像境界の内側のサンプルから取得可能であり、その逆も同様であるからである。
【0137】
図20は、VVCにおける水平ラップアラウンド動き補償の例を示す。
【0138】
水平ラップアラウンド動き補償プロセスは、
図20に表されている。参照ブロックの一部が投影領域において参照ピクチャの左側(又は右側)境界の外にある場合には、繰り返しパディングの代わりに、「境界外」部分は、投影領域において右側(又は左側)境界に向かって参照画像にある対応する球形の隣接物から取得される。繰り返しパディングは、上下のピクチャ境界に対してのみ使用される。
図20に表されているように、水平ラップアラウンド動き補償は、360度ビデオコーディングでしばしば使用される非規範的な(non-normative)パディングと組み合わされ得る。VVCでは、これは、パディング前にERPピクチャ幅にセットされるべきであるラップアラウンドオフセットを示すよう高位シンタックス要素を通知することによって達成される。このシンタックスは、水平ラップアラウンドの位置を然るべく調整するために使用される。このシンタックスは、左右のピクチャ境界に対する特定の量のパディングによって影響を及ぼされず、従って、例えば、左右のパディングが異なる場合に、ERPピクチャの非対称なパディングを当然にサポートする。水平ラップアラウンド動き補償は、参照サンプルが参照ピクチャの左右の境界の外にある場合の動き補償のためのより有意味な情報を提供する。
【0139】
複数の面から成る投影フォーマットについては、どのようなコンパクトなフレームパッキング配置が使用されても、フレームパックされたピクチャ内の2つ以上の隣接する面の間には不連続性が現れる。例えば、
図24で表されている3×2のフレームパッキング構成を考えると、上半分の3つの面は3Dジオメトリにおいて連続であり、下半分の3つの面は3Dジオメトリにおいて連続であるが、フレームパックされたピクチャの上下の半分は、3Dジオメトリにおいて不連続である。インループフィルタリング動作がこの不連続性に対して実行される場合に、面シームアーチファクトは、再構成されたビデオで可視的になる可能性がある。
【0140】
面シームアーチファクトを軽減するために、インループフィルタリング動作は、フレームパックされたピクチャ内の不連続性にわたって無効にされ得る。シンタックスは、インループフィルタリング動作が無効にされる垂直及び/又は水平仮想境界を通知するよう提案された。連続した面の各組ごとに1つずつ、2つのタイルを使用することと比較して、タイルにわたるインループフィルタリング動作を無効にするために、提案されているシグナリング方法は、面サイズがCTUサイズの倍数であることを必要としないので、より柔軟である。
【0141】
2.13 サブピクチャベースの動き制約付き独立領域の例
いくつかの実施形態において、次の特徴が含まれる:
1)ピクチャはサブピクチャに分割され得る。
2)サブピクチャの存在の指示は、サブピクチャの他のシーケンスレベル情報とともに、SPSで示される。
3)サブピクチャが復号化プロセス(インループフィルタリング動作を除く)でピクチャとして扱われるかどうかは、ビットストリームによって制御可能である。
4)サブピクチャ境界にわたるインループフィルタリングが無効にされるかどうかは、サブピクチャごとにビットストリームによって制御可能である。DBF、SAO、及びALFプロセスは、サブピクチャ境界にわたるインループフィルタリング動作の制御のために更新される。
5)簡単のために、開始点として、サブピクチャの幅、高さ、水平オフセット、及び垂直オフセットが、SPSでルーマサンプルの単位で通知される。サブピクチャ境界は、スライス境界であるよう制約される。
6)復号化プロセス(インループフィルタリング動作を除く)でピクチャとしてサブピクチャを扱うことは、coding_tree_unit( )シンタックスをわずかに更新することによって指定され、次の復号化プロセスに更新する:
○(高度(advanced))時間ルーマ動きベクトル予測のための導出プロセス
○ルーマサンプル双線形補間プロセス
○ルーマサンプル8-タップ補間フィルタリングプロセス
○クロマサンプル補間プロセス
7)サブピクチャIDはSPSで明示的に指定され、タイルグループヘッダに含まれて、VCL NALユニットを変更する必要なしにサブピクチャシーケンスの抽出を可能にする。
【0142】
出力サブピクチャセット(output sub-picture sets,OSPS)は、サブピクチャ及びそのセットの規範的な抽出及びコンフォーマンスポイントを指定するよう提案されている。
【0143】
3.本願で与えられている解決法によって解決される技術的課題
現在のVVC設計には、次の問題がある。
【0144】
1.ALF仮想境界を有効にする現在の設定は、CTBの下境界がピクチャの下境界であるかどうかに依存する。それが当てはまる場合に、ALF仮想境界は無効にされる(
図19のCTU-Dを参照)。しかし、CTBの下境界はピクチャの下境界の外側にあることがあり得る。例えば、256×240ピクチャが4つの128×128CTUに分割され、この場合に、ALF仮想境界は、下側ピクチャ境界の外にあるサンプルを有する最後の2つのCTUに対して誤って真にセットされる。
【0145】
2.ALF仮想境界を扱う方法は、下側ピクチャ境界及びスライス/タイル/ブリック境界に対して無効にされる。スライス/ブリック境界に沿ったVBを無効にすることは、パイプラインバブルを生じさせるか、あるいは、LCUサイズが64×64であると仮定して、仮想パイプラインデータユニット(VPDU,VVCでは64×64)ごとに68ラインを処理する必要がある可能性がある。例えば:
a.デコーダがスライス/ブリック/タイル境界を前もって知らない(遅延アプリケーションなど)場合に、ALFラインバッファはリストアされる必要がある。ラインバッファ内の内容がALFフィルタリングに使用されるか否かは、現在のCTUがスライス/ブリック/タイル境界CTUであるかどうかに依存する。しかし、この情報は、次のスライス/ブリック/タイルがデコードされるまで未知である。
b.デコーダがスライス/ブリック/タイル境界を前もって知っている場合に、デコーダは、パイプラインバブルを甘受するか(ほとんどない)、あるいは、ALFラインバッファの使用を回避するために、64×64VDPUごとに68ラインの速度で常にALFを実行するか、のどちらかが必要である。
【0146】
3.仮想境界及びビデオユニット境界を扱う種々の方法、例えば、異なるパディング方法が存在する。一方で、1よりも多いパディング方法は、ラインが複数の境界にある場合に、そのラインに対して実行されることがある。
a.一例で、ブロックの下境界が360度仮想境界であり、ALF仮想境界もこのブロックに適用されるならば、この場合に、360度仮想境界のパディング方法が最初に、360度仮想境界より下に仮想サンプルを生成するために適用され得る。その後に、360度仮想境界より下に位置しているこれらの仮想サンプルは、利用可能であるとして扱われる。そして、ALF両側パディング方法が
図16A~Cに従って更に適用され得る。例は
図25に表されている。
【0147】
4.仮想境界を扱う方法は、パディングされたサンプルが利用されるが、これはそれほど効率的でない可能性があるので、次善である場合がある。
【0148】
5.非線形ALFが無効にされる場合に、MALF及び両側パディング方法は、仮想境界を横断するサンプルにアクセスする必要があるサンプルをフィルタリングするために同じ結果を生成することができる。しかし、非線形ALFが有効にされる場合には、2つの方法は異なる結果をもたらす。2つの場合をそろえることが有益である。
【0149】
6.スライスは、
図28に表されているように、長方形スライス、又は非長方形スライスであってよい。この場合に、CTUについては、それは如何なる境界(例えば、ピクチャ/スライス/タイル/ブリック)とも一致しないことがある。しかし、現在のスライスの外にあるサンプルにアクセスすることが必要であり得る。スライス境界を横断するフィルタリングが無効にされる(例えば、loop_filter_across_slices_enabled_flagが偽である)場合に、どのようにALF分類及びフィルタリングプロセスを実行すべきかは未知である。
【0150】
4.技術及び実施形態の例
以下の列挙は、一般概念を説明するための例と見なされるべきである。挙げられている技術は、狭い意味で解釈されるべきではない。更に、これらの技術はどのように組み合わされてもよい。
【0151】
ALF仮想境界に使用されるパディング方法は、「両側パディング」(Two-side Padding)と呼ばれ得る。
図12~13に表されているように、(i,j)に位置している1つのサンプルがパディングされる場合に、同じフィルタ係数を共有する、(m,n)に位置している対応するサンプルも、そのサンプルが利用可能であってもパディングされる。
【0152】
ピクチャ境界/360度ビデオ仮想境界や通常の境界(例えば、上側及び下側の境界)に使用されるパディング方法は、「片側パディング」(One-side Padding)呼ばれ得る。使用されるべき1つのサンプルが境界の外にある場合に、それは、ピクチャ内の利用可能なサンプルからコピーされる。
【0153】
360度ビデオの左右の境界に使用されるパディング方法は、「ラップベースパディング」(wrapping-base Padding)と呼ばれ得る。使用されるべき1つのサンプルが境界の外にある場合に、それは、動き補償された結果を用いてコピーされる。
【0154】
以下の説明では、サンプルが「ビデオユニットの境界にある」とは、サンプルとビデオユニットの境界との間の距離が閾値未満又は以下であることを意味し得る。「ライン」は、1つの同じ水平位置にあるサンプル、又は1つの同じ垂直位置にあるサンプルを指し得る(例えば、同じ行内のサンプル及び/又は同じ列内のサンプル)。関数Abs(x)は、次のように定義される:
【数17】
【0155】
以下の説明では、「仮想サンプル」は、生成されたサンプルを指し、これは、(デブロッキング及び/又はSAOによって処理され得る)再構成されたサンプルとは異なってもよい。仮想サンプルは、他のサンプルに対してALFを行うために使用されてもよい。仮想サンプルは、パディングによって生成されてもよい。
【0156】
「ALF仮想境界処理方法が1つのブロックに対して有効にされる」とは、仕様内のapplyVirtualBoundaryが真にセットされることを示し得る。「仮想境界を有効にする」とは、現在のブロックが仮想境界によって少なくとも2つの部分に分割され、1つの部分に位置しているサンプルが、フィルタリングプロセス(例えば、ALF)で他の部分のサンプルを利用することを許されない、ことを示し得る。仮想境界は、1つのブロックの下境界の上にあるK個の行であってよい。
【0157】
以下の説明では、隣接サンプルは、フィルタ分類及び/又はフィルタリングプロセスに必要とされるものであってよい。
【0158】
本開示において、隣接サンプルは、それが現在のピクチャ、又は現在のサブピクチャ、又は現在のタイル、又は現在のスライス、又は現在のブリック、又は現在のCTU、又は現在の処理ユニット(例えば、ALF処理ユニット若しくは狭ALF処理ユニット)、あるいは、任意の他の現在のビデオユニットの外にある場合に、「利用不可能」である。
【0159】
1.「現在のコーディングツリーブロックの下境界はピクチャの下境界である」との決定は、「現在のコーディングツリーブロックの下境界はピクチャの下境界であるか又はピクチャの外にある」によって置換される。
a.代替的に、更に、この場合に、ALF仮想境界処理方法は無効にされ得る。
【0160】
2.インループフィルタリングプロセスで仮想サンプルの利用を有効にするかどうか(例えば、仮想境界を有効にする(例えば、applyVirtualBoundaryを真又は偽にセットする)かどうか)は、CTBサイズに依存し得る。
a.一例で、applyVirtualBoundaryは、所与のCTU/CTBサイズについて、例えば、K×L(例えば、K=L=4)に等しいCTU/CTBサイズについて、常に偽にセットされる。
b.一例で、applyVirtualBoundaryは、K×L(例えば、K=L=8)以下又はそれよりも小さいCTU/CTBサイズについて、常に偽にセットされる。
c.代替的に、ALFは、4×4、8×8などの特定のCTU/CTBサイズについて、無効にされる。
【0161】
3.インループフィルタリングプロセス(例えば、ALF)で仮想サンプル(例えば、再構成されたサンプルからパディングされる)の利用を有効にすべきかどうかは、ブロックの下境界が、ピクチャ(例えば、スライス/タイル/ブリック)と比べて粒度が細かいビデオユニットの下境界又は仮想境界であるかどうかに依存し得る。
a.一例で、ALF仮想境界処理方法は、CTBの下境界がビデオユニットの境界又は仮想境界である場合に、コーディングツリーブロック(CTB)について有効にされ得る(例えば、applyVirtualBoundaryは真にセットされる)。
i.代替的に、更に、下境界が下側ピクチャ境界でない場合に、又は下境界がピクチャの外にある場合に、上記の方法は有効にされる。
b.現在のコーディングツリーブロックの下境界がピクチャの下側仮想境界の1つであり、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しい場合に、ALF仮想境界処理方法は依然として有効にされ得る(例えば、applyVirtualBoundaryは真にセットされる)。
c.一例で、CTBに対してALF仮想境界処理方法(applyVirtualBoundaryの値)を有効にすべきかどうかは、CTBの下境界とピクチャの下境界との間の関係にのみ依存し得る。
i.一例で、applyVirtualBoundaryは、CTBの下境界が、CTBを含むピクチャの下境界である場合又は下境界がピクチャの外にある場合にのみ、偽にセットされる。
ii.一例で、applyVirtualBoundaryは、CTBの下境界が、CTBを含むピクチャの下境界ではない場合に、真にセットされる。
d.一例で、
図18A~18CのCTU-Cをデコードするときに、M×Mサンプルは、仮想境界の下にあるK個のラインを除いて、上のCTUからのK個のラインでフィルタリングされ得る。
【0162】
4.ブリック/スライス境界を横断するループフィルタのための通知された制御利用フラグ(例えば、loop_filter_across_bricks_enabled_flag/loop_filter_across_slices_enabled_flag)が真である場合でさえ、フィルタリングプロセス(例えば、ALF)でブリック/スライス境界にわたるサンプルの利用を無効にすることが提案される。
a.代替的に、更に、通知されたloop_filter_across_bricks_enabled_flag/loop_filter_across_slices_enabled_flagは、ALFを除いた、デブロッキングフィルタ及びSAOのフィルタリングプロセスのみを制御し得る。
b.一例で、仮想サンプルは、他のサンプルに対してALFを行うよう、対応する位置にある再構成されたサンプルの代わりに使用され得る。
【0163】
5.1つのブロック(例えば、CTB)がビデオユニットの境界(例えば、スライス/ブリック/タイル/360度ビデオ仮想又は通常の境界/ピクチャ境界)に位置しているサンプルを含む場合に、ALFなどのインループフィルタリングのためにビデオユニットの内側又は外側で仮想サンプルをどのように生成するか(例えば、パディング方法)は、種々の種類の境界のために統一され得る。
a.代替的に、更に、仮想境界の方法(例えば、両側パディング方法)は、インループフィルタリングのための境界にあるサンプルを処理するためにブロックに適用され得る。
b.代替的に、更に、上記の方法は、ブロックがビデオユニットの下境界に位置しているサンプルを含む場合に適用され得る。
c.一例で、1つのブロックのK個のラインをデコードする場合に、K個のラインがブロックの仮想境界の下にあり(例えば、
図17A~17BのCTU-Bでの最後のK個のライン)、ブロックの下境界がビデオユニットの下境界であるならば、仮想サンプルは、これらK個のラインの外にある他のサンプルの利用を回避するためにALF分類/フィルタリングプロセスで生成され得る。例えば、両側パディング方法が適用され得る。
d.一例で、1つのブロックが複数の境界にる場合に、ALF分類に使用されるピクセル/サンプルは、これら複数の境界のいずれも横断しないように制限され得る。
i.一例で、あるサンプルについて、その特定の隣接サンプルが「利用可能である」(複数の境界のいずれかを横切る)場合に、1つ又は全ての種類の傾き/方向性がそのサンプルに対して計算され得ない。
1.一例で、サンプルの傾きはゼロとして扱われ得る。
2.一例で、サンプルの傾きは「利用不可能」であるとして扱われてよく、ALF分類プロセスで導出された活動(例えば、セクション2.6.1.1の式(8)で定義される)に加えられなくてもよい。
ii.一例で、ALF分類プロセスで導出された活動/方向性は、ALF分類プロセスで使用される部分的なサンプルのみが「利用可能である」(例えば、それらの境界のいずれも横切らない)場合に、係数によってスケーリングされ得る。
iii.一例で、境界ブロックについては、傾き/方向性がALF分類プロセスでN個のサンプルに対して計算される必要があり、傾きがM個のサンプルに対してのみ計算され得ると仮定して(例えば、サンプルの特定の隣接サンプルが「利用不可能」である場合に、傾きはそれに対して計算され得ない)、活動はN/Mを乗じられ得る。
1.代替的に、それは。N/Mに依存した係数を乗じられてもよい。例えば、数は、M
N(Nは整数である)であってよく、例えば、M=2である。
e.一例で、1つのラインが複数の境界にある(例えば、ラインと境界との間の距離が閾値に満たない)場合に、パディングプロセスは、それがいくつの境界に属し得るかにかかわらず一度しか実行されない。
i.代替的に、更に、いくつの隣接ラインがパディングされるべきであるかは、全ての境界に対する現在のラインの位置に依存し得る。
ii.例えば、いくつの隣接ラインがパディングされるべきであるかは、例えば、現在のラインが2つの境界内にあり、その2つの境界が上及び下である場合に、現在のラインと2つの境界との間の距離によって決定され得る。
iii.例えば、いくつの隣接ラインがパディングされるべきであるかは、例えば、現在のラインが2つの境界内にあり、その2つの境界が上及び下である場合に、現在のラインと最も近い境界との間の距離によって決定され得る。
iv.例えば、いくつの隣接ラインがパディングされるべきであるかは、境界ごとに独立して計算されてもよく、最大である1つが、最終的にパディングされたライン数として選択される。
v.一例で、いくつの隣接ラインがパディングされるべきであるかは、ラインの各側(例えば、上側及び下側)について決定され得る。
vi.一例で、両側パディング方法については、いくつの隣接ラインがパディングされるべきであるかは、両側に対してまとめて決定され得る。
vii.代替的に、更に、ALFによって使用される両側パディング方法が適用される。
f.一例で、1つのラインが複数の境界にあり、ラインの各側(例えば、上側及び下側)について少なくとも1つの境界がある場合に、ALFはそれに対して無効にされ得る。
g.一例で、現在のラインによって必要とされるパディングされたラインの数が閾値よりも大きい場合に、ALFは現在のラインに対して無効にされ得る。
i.一例で、いずれかの側でのパディングされたラインの数が閾値よりも大きい場合に、ALFは現在のラインに対して無効にされ得る。
ii.一例で、両側でのパディングされたラインの総数が閾値よりも大きい場合に、ALFは現在のラインに対して無効にされ得る。
h.代替的に、更に、上記の方法は、ブロックがビデオユニットの下境界に位置しているサンプルを含み、ALFなどのインループフィルタリングがそのブロックに対して有効にされる場合に、適用され得る。
i.代替的に、更に、上記の方法は、特定の条件の下で、例えば、ブロックがビデオユニットの下境界に位置しているサンプルを含み、境界にわたるフィルタリングが認められない(例えば、pps_loop_filter_across_virtual_boundaries_disabled_flag/loop_filter_across_slices_enabled_flag/loop_filter_across_bricks_enabled_flagが真である)場合に、適用され得る。
j.提案されている方法は、垂直境界に位置しているサンプル/ブロックにも適用可能である。
【0164】
6.サンプルが1つのブロックの少なくとも2つの境界にある(例えば、現在のラインの上にある少なくとも1つはALF仮想境界であり、下は他の境界である)場合に、パディングされるラインの数は、ALF仮想境界に対する現在のラインの距離によって完全に決定されるわけではない。代わりに、それは、2つの境界に対する現在のラインの距離によって決定される。
a.一例で、サイドごとのパディングのためのラインの数は(M-min(D0,D1))にセットされる。
b.一例で、サイドごとのパディングのためのラインの数は(M-max(D0,D1))にセットされる。
c.上記の例について、D0、D1は、現在のラインと上側/下側境界との間の距離を表す。
d.上記の例について、Mは、ALF仮想境界が1つのCTUの下部からであるラインの数を表す。
【0165】
7.ALF分類及び/又はALF線形若しくは非線形フィルタリングプロセスでサンプルを選択する少なくとも2つの方法が定義され得る。それらのうちの1つは、任意のインループフィルタリング方法が適用される前にサンプルを選択し、他は、1つ又は複数のインループフィルタリング方法が適用された後に、しかしALFが適用される前にサンプルを選択する。
a.一例で、種々の方法の選択は、フィルタリングされるサンプルの位置に依存し得る。
b.一例で、ビデオユニット(例えば、CTB)の下境界にあるサンプルは、それが他のサンプルのALFで使用される場合に、第1の方法により選択され得る。さもなれば(それが境界にない場合)、第2の方法が選択される。
【0166】
8.フィルタリングプロセスでVPDU境界を横断するサンプル(例えば、64×64領域)の利用を無効にすることが提案される。
a.一例で、ALF分類プロセスによって必要とされるサンプルがVPDU境界の外に、または仮想境界より下にある場合に、それは仮想サンプルで置換され得るか、あるいは、そのサンプルの分類結果は、利用可能なサンプルからのパディングなど、他のサンプルに関連付けられているものからコピーされ得る。
b.一例で、フィルタリングプロセスによって必要とされるサンプルがVPDU境界の外に、又は仮想境界より下にある場合に、それは、利用可能なサンプルからのパディングなど、仮想サンプルで置換され得る。
c.一例で、ALF仮想境界処理方法は、ブロックがVPDUの境界に位置しているサンプルを含む場合に、そのブロックに対して有効にされる(例えば、applyVirtualBoundaryは真にセットされる)。
d.代替的に、水平VPDU境界を横断するサンプルの利用は、フィルタリングプロセスで無効にされ得る。
i.一例で、フィルタリングプロセスによって必要とされるサンプルが水平VPDU境界より下に、又は仮想境界より下にある場合に、それは、利用可能なサンプルからのパディングなど、仮想サンプルで置換され得る。
e.代替的に、垂直VPDU境界を横断するサンプルの利用は、フィルタリングプロセスで無効にされ得る。
i.一例で、フィルタリングプロセスによって必要とされるサンプルが垂直VPDU境界の外に、又は仮想境界より下にある場合に、それは、利用可能なサンプルからのパディングなど、仮想サンプルで置換され得る。
【0167】
9.パディングされたサンプル(例えば、利用不可能ではない、仮想境界の上/下にある、ビデオユニットの境界の上/下にある)をALF分類/フィルタリングプロセスで使用する代わりに、全てのインループフィルタの前の再構成されたサンプルを使用することが提案される。
a.代替的に、更に、両側パディングの概念は、全てのインループフィルタの前の再構成されたサンプルからのサンプルをパディングすることにより、適用される。
i.一例で、フィルタサポートにおけるサンプルが全てのインループフィルタの前の再構成されたサンプルからである場合に、フィルタサポートにおける対称(例えば、原点、例えば、現在のサンプルに関して対称)なサンプルも、全てのインループフィルタの前の再構成されたサンプルを使用すべきである。
1.フィルタリングされるべき現在のサンプルの座標が(0,0)であり、(i,j)に位置しているサンプルが全てのインループフィルタの前の再構成されたサンプルであると仮定して、その場合に、(-i,-j)に位置しているサンプルが、全てのインループフィルタの前の再構成されたサンプルである。
2.フィルタリングされるべき現在のサンプルの座標が(x,y)であり、(x+i,y+j)に位置しているサンプルが全てのインループフィルタの前の再構成されたサンプルであると仮定して、その場合に、(x-i,y-j)に位置しているサンプルが、全てのインループフィルタの前の再構成されたサンプルである。
b.代替的に、更に、インループ再成形(別名、LMCS)が有効にされる場合に、全てのインループフィルタの前の再構成されたサンプルは、再成形された領域から変換された元の領域内のサンプルである。
【0168】
10.パディングされたサンプル(例えば、利用不可能ではない、仮想境界の上/下にある、ビデオユニットの境界の上/下にある)をALFフィルタリングプロセスで使用する代わりに、異なるALFフィルタサポートを採用することが提案される。
a.一例で、サンプルが上記の方法でパディングされる必要があると仮定して、パディングを実行する代わりに、そのサンプルに関連したフィルタ係数がゼロであるようセットされる。
i.この場合に、フィルタサポートは、パディングされる必要があるサンプルを除くことによって変更される。
ii.代替的に、更に、現在のサンプルを除く他のサンプルに適用されるフィルタ係数は変更されないままであるが、現在のサンプルに適用されるフィルタ係数は、((1<<C_BD)-パディングされる必要がないサンプルに適用される全てのフィルタ係数の和)のように変更され得る。ここで、C_BDは、はフィルタ係数のビットデプスを示す。
1.
図18A~
図18Bを例とすると、ラインL及びIをフィルタリングする場合に、現在のサンプルに適用されるフィルタ係数c12は、((1<<C_BD)-2×(c4+c5+c6+c7+c8+c9+c10+c11))であるよう変更される。
b.一例で、サンプル(x1,y1)が上記の方法で(x2,y2)からパディングされると仮定して、パディングを実行する代わりに、非線形フィルタが有効又は無効にされるかどうかにかかわらず、(x1,x2)に関連したフィルタ係数が位置(x2,y2)のそれに加えられる。
i.代替的に、更に、(x2,y2)のクリッピング係数はオン・ザ・フライで導出され得る。
1.一例で、それは、(x2,y2)のデコードされたクリッピングパラメータに等しくセットされ得る。
2.代替的に、それは、より大きい値又はより小さい値といった、(x1,y1)及び(x2,y2)のデコードされたクリッピングパラメータを入力とする関数の戻り値にセットされ得る。
【0169】
11.クリッピングパラメータ/フィルタ係数/フィルタサポートの選択は、サンプルのフィルタリングがパディングされたサンプル(例えば、利用不可能ではない、仮想境界の上/下にある、ビデオユニットの境界の上/下にある)にアクセスする必要があるかどうかに依存し得る。
a.一例で、異なるクリッピングパラメータ/フィルタ係数/フィルタサポートが、同じクラスインデックスを有しているサンプルに利用され得るが、それらのうちのいくつかについては、パディングされたサンプルにアクセスすることを必要とし、他はそうではない。
b.一例で、パディングされたサンプルにアクセスする必要があるサンプルのフィルタリングのためのクリッピングパラメータ/フィルタ係数/フィルタサポートは、CTU/領域/スライス/タイルレベルで通知され得る。
c.一例で、パディングされたサンプルにアクセスする必要があるサンプルのフィルタリングのためのクリッピングパラメータ/フィルタ係数/フィルタサポートは、パディングされたサンプルにアクセスする必要がないサンプルのフィルタリングのために使用されたものから導出され得る。
i.一例で、ビュレット9a又は9bが適用され得る。
【0170】
12.インループフィルタリング(例えば、ALF)のために境界にあるサンプルを扱う方法は、色成分及び/又は色フォーマットに依存し得る。
a.例えば、「境界にある」との定義は、異なる色成分ごとに異なってもよい。一例で、ルーマサンプルは、それと下境界との間の距離がT1に満たない場合に、下境界にあり、クロマサンプルは、それと下境界との間の距離がT2に満たない場合に、下境界にある。T1及びT2は異なってもよい。
i.一例で、T1及びT2は、色フォーマットが4:4:4でない場合に異なってもよい。
【0171】
13.1つのCTU/VPDUの下側/上側/左側/右側境界が独立したコーディングによるスライス/タイル/ブリック/サブ領域の境界でもある場合に、複数のパディングプロセスの固定順序が適用される。
a.一例で、第1のステップにおいて、スライス/タイル/ブリックのパディング方法(例えば、片側パディング)が最初に適用される。その後に、ALF仮想境界を扱うためのパディング方法(例えば、両側パディング方法)が、第2のステップの間に更に適用される。この場合に、第1のステップ後のパディングされたサンプルは、利用可能としてマークされ、ALF仮想境界プロセスでいくつのラインがパディングされるべきかを決定するために使用され得る。それらの境界に位置していないCTUを扱うための同じ規則(例えば、
図16A~C)が利用される。
【0172】
14.提案されている方法は、2つのサブピクチャ間の1つ又は複数の境界に適用され得る。
a.提案されている方法を適用する境界は水平境界であってよい。
b.提案されている方法を適用する境界は垂直境界であってよい。
【0173】
15.上記の提案されている方法は、垂直境界にあるサンプル/ブロックに適用され得る。
【0174】
16.提案されている方法が「360仮想境界」で適用されるべきかどうか又は/及びどのように適用されるかは、「360仮想境界」の位置に依存し得る。
a.一例で、「360仮想境界」がCTU境界と一致する場合に、提案されている方法は適用され得る。例えば、両側パディングのみが、「360仮想境界」にあるサンプルに対してALFで適用され得る。
b.一例で、「360仮想境界」がCTU境界と一致しない場合に、提案されている方法は適用され得ない。例えば、片側パディングのみが、「360仮想境界」にあるサンプルに対してALFで適用され得る。
c.一例で、複数の境界にあるサンプルについて、少なくとも1つの境界が「360仮想境界」であり、「360仮想境界」のうちの少なくとも1つがCTU境界と一致しない場合に、提案されている方法が適用され得ない。
i.例えば、それらの複数の境界のうちのいずれかを横断するサンプルは、片側パディングによってパディングされ得る。
1.代替的に、更に、「仮想境界」がある場合に、両側パディングは、片側パディング後にALFで適用され得る。
d.一例で、2種類の境界の間に位置しているサンプルについては、それらのうちの1つが「360仮想境界」であり、他はそうではない場合に、パディングは、ALFプロセスで一度だけ呼び出される。
i.一例で、ALF仮想境界を扱うパディング方法(例えば、両側パディング方法)が呼び出され得る。
1.代替的に、ピクチャ(又はスライス/タイル/ブリック/サブピクチャ)境界を扱うパディング方法(例えば、片側パディング)が呼び出され得る。
ii.代替的に、2つ又は複数のパディングプロセスが順番に適用され得る。
1.一例で、ピクチャ(又はスライス/タイル/ブリック/サブピクチャ)境界を扱うパディング方法(例えば、片側パディング)が最初に適用されてよく、その後に、ALF仮想境界を扱うパディング方法(例えば、両側パディング方法)が更に呼び出されてもよい。
a.代替的に、更に、最初のパディング後のパディングされたサンプルは、第2のパディングプロセスで利用可能である。
iii.一例で、2種類以上の境界(例えば、スライス境界/タイル境界/ブリック境界/「360仮想境界」/「ALF仮想境界」/サブピクチャ境界)の間に位置しているサンプルについては、境界のうちのただ1つのみが「360仮想境界」であり(
図24に示されるように、例えば、第1の境界は「360仮想境界」である)、第2の境界が「ALF仮想境界」又はスライス/ブリック/タイル境界/サブピクチャ境界であり、あるいは、その逆である場合に、提案されている方法が適用され得る。例えば、両側パディングのみが、それらのサンプルに対してALFで適用され得る。
1.代替的に、これらの複数の種類の境界が「360仮想境界」又はピクチャ境界のどちらかである場合に、提案されている方法は適用され得ない。例えば、片側パディングのみが、それらのサンプルに対してALFで適用され得る。
e.一例で、2種類以上の境界の間に位置しているサンプルについて、境界のうちの少なくとも1つが「360仮想境界」であり、それがCTU境界と一致しない場合に、提案されている方法は適用され得ない。
i.この場合に、それは、「360仮想境界」でのみ、サンプルを扱う従来技術として扱われ得るが、他の種類の境界ではそうではない。
ii.一例で、片側パディングのみが、それらのサンプルに対してALFで適用され得る。
f.一例で、2種類以上の境界の間に位置しているサンプルについて、境界のうちの少なくとも1つが「360仮想境界」である場合に、提案されている方法は適用され得ない。
i.この場合に、それは、「360仮想境界」でのみ、サンプルを扱う従来技術として扱われ得るが、他の種類の境界ではそうではない。
ii.一例で、片側パディングのみが、それらのサンプルに対してALFで適用され得る。
【0175】
17.ALFフィルタリングプロセス(例えば、
図16Cで、現在のサンプルP0をフィルタリングする場合に、iがA/B/C/Dであるとして、P0i)又は/及びALF分類プロセスで必要とされる参照ピクチャが、例えば、サンプルが現在のサンプルとは異なるビデオユニット(例えば、スライス/ブリック/タイル/サブピクチャ)に位置しており、ビデオユニット(例えば、スライス/ブリック/タイル/サブピクチャ境界)を横断するサンプルを使用したフィルタリングが許されないことにより、「利用不可能」である場合に、「利用不可能」なサンプルは、「利用可能」なサンプル(例えば、現在のサンプルと同じスライス/ブリック/タイル/サブピクチャ内のサンプル)でパディングされ得る。
a.一例で、「利用不可能」な参照サンプルは、その最も近い「利用可能」な水平位置に最初にクリップされてよく、それから、「利用不可能」な参照サンプルは、必要に応じて、その最も近い「利用可能」な垂直位置にクリップされる。
b.一例で、「利用不可能」な参照サンプルは、その最も近い「利用可能」な垂直位置に最初にクリップされてよく、それから、「利用不可能」な参照サンプルは、必要に応じて、その最も近い「利用可能」な水平位置にクリップされる。
c.一例で、「利用不可能」な参照サンプルの座標は、水平方向においてその最も近い「利用可能」なサンプル(例えば、最も小さい距離)の座標にクリップされる。
i.一例で、座標(x1,y1)及び(x2,y2)の2つのサンプルについては、それらの間の水平距離がAbs(x1-x2)と計算され得る。
d.一例で、「利用不可能」な参照サンプルの座標は、垂直方向においてその最も近い「利用可能」なサンプル(例えば、最も小さい距離)の座標にクリップされる。
i.一例で、座標(x1,y1)及び(x2,y2)の2つのサンプルについては、それらの間の垂直距離がAbs(y1-y2)と計算され得る。
e.一例で、「利用不可能」なサンプルは、その最も近い「利用可能」なサンプル(例えば、最小距離)にクリップされる。
i.一例で、座標(x1,y1)及び(x2,y2)の2つのサンプルについては、それらの間の距離が(x1-x2)×(x1-x2)+(y1-y2)×(y1-y2)と計算され得る。
ii.代替的に、2つのピクセル間の距離は、Abs(x1-x2)+Abs(y1-y2)と計算され得る。
f.代替的に、フィルタリングプロセスは、現在のサンプルについて無効にされる。
g.代替的に、ALFでの分類プロセス(例えば、現在のサンプルについての勾配計算)は、利用不可能な参照サンプルを使用することを認められない。
【0176】
18.利用不可能な参照サンプルのパディングされたサンプルを導出する方法は、CTUがいずれかの境界と一致するかどうかに依存し得る。
a.一例で、現在のCTUが如何なる種類の境界とも一致しないが、現在のサンプルのフィルタリングプロセス(例えば、ALF分類/ALFフィルタリングプロセス)が、異なるビデオユニット(例えば、スライス)内の参照サンプルにアクセスする必要がある場合に、ビュレット16で記載されている方法が適用され得る。
i.代替的に、更に、現在のCTUが如何なる種類の境界とも一致しないが、現在のサンプルのフィルタリングプロセス(例えば、ALF分類/ALFフィルタリングプロセス)が、異なるビデオユニット(例えば、スライス)内の参照サンプルにアクセスする必要があり、スライス境界を横断するフィルタリングが許されない場合に、ビュレット16で記載されている方法が適用され得る。
ii.代替的に、更に、現在のCTUが如何なる種類の境界とも一致しないが、現在のサンプルのフィルタリングプロセス(例えば、ALF分類/ALFフィルタリングプロセス)が、異なるビデオユニット(例えば、スライス)内の参照サンプル及び同じビデオユニット内の参照サンプルにアクセスする必要があり、スライス境界を横断するフィルタリングが許されない場合に、ビュレット16で記載されている方法が適用され得る。
b.一例で、現在のCTUが少なくとも1種類の境界と一致する場合に、統一されたパディング方法が適用され得る(例えば、両側又は片側パディング)。
i.代替的に、現在のCTUが複数の種類の境界と一致し、それらの境界を横断するフィルタリングが許されない場合に、統一されたパディング方法が適用され得る(例えば、両側又は片側パディング)。
c.一例で、両側パディング及び/又は片側パディングによってパディングされ得ない「利用不可能」なサンプルのみが、ビュレット16で記載されている方法を用いてパディングされ得る。
【0177】
5.実施形態
以下のセクションでは、開示されている技術のいくつかの実施形態に適合するようにVVC標準規格の現在のバージョンがどのように変更されているかのいくつかの例が、記載されている。新たに加えられた部分は、太字イタリック体の下線付きテキストで示されている。削除された部分は。[[]]を用いて示されている。
【0178】
【0179】
5.2 実施形態#2
図21は、ピクチャ内のCTUの処理を示す。
図19と比較した相違点は、破線で強調表示されている。
【0180】
【0181】
代替的に、「現在のコーディングツリーブロックの下境界はピクチャの下境界である」との条件は、「現在のコーディングツリーブロックの下境界はピクチャの下境界であるか、又はピクチャの外にある」で置換され得る。
【0182】
5.4 実施形態#4
この実施形態は、(セクション4のビュレット7に対応する)ALF分類プロセスでVPDUより下のサンプルを使用することを認めない例を示す。
【表10】
【0183】
5.5 実施形態#5
複数の種類の境界(例えば、スライス/ブリック境界、360度仮想境界)に位置するサンプルについては、パディングプロセスは一度しか呼び出されない。また、サイドごとにいくつのラインがパディングされるべきかは、境界に対する現在の差プルの位置に依存する。
【0184】
一例で、ALF両側パディング方法が適用される。代替的に、更には、対称な両側パディング方法では、サンプルが2つの境界にあり、例えば、1つの境界は上側にあり、1つの境界が下側にある場合に、いくつのサンプルがパディングされるかは、
図27に示されるように、より近い境界によって決定される。一方で、分類情報を導出する場合に、
図27では、2つの境界の間の4つのラインしか使用されない。
【0185】
図26は、サンプルの4つのラインが2つの境界に含まれる場合のパディング方法の例を示す。一例で、
図26の第1の境界は、ALF仮想境界であってよく、
図25の第2の境界は、スライス/タイル/ブリック境界又は360度仮想境界であってよい。
【0186】
【0187】
5.7 実施形態#7
CTUについては、それは如何なる境界(例えば、ピクチャ/スライス/タイル/ブリック/サブピクチャ境界)とも一致しない可能性がある。なお、それは現在のユニット(例えば、ピクチャ/スライス/タイル/ブリック/サブピクチャ)の外のサンプルにアクセスする必要があり得る。スライス境界を横断するフィルタリングが無効にされる(例えば、loop_filter_across_slices_enabled_flagが偽である)場合には、現在のユニットの外のサンプルをパディングする必要がある。
【0188】
例えば、
図28のサンプル2801(例えば、ルーマサンプルをとる)については、ALFフィルタリングプロセスで使用されたサンプルが、
図29で見られるようにパディングされ得る。
【0189】
図22は、ビデオ処理装置2200のブロック図である。装置2200は、本明細書で記載されている方法の1つ以上を実装するために使用され得る。装置2200は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)レシーバ、などで具現されてもよい。装置2200は、1つ以上のプロセッサ2202,1つ以上のメモリ2204、及びビデオ処理ハードウェア2206を含み得る。プロセッサ2202は、本明細書で記載される1つ以上の方法を実装するよう構成され得る。メモリ(複数のメモリ)2204は、本明細書で記載される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用され得る。ビデオ処理ハードウェア2206は、ハードウェア回路で、本明細書で記載されるいくつかの技術を実装するために使用され得る。いくつかの実施形態において、ビデオ処理ハードウェア2206は、プロセッサ2202(例えば、グラフィクス処理ユニット)の中にあってもよい。
【0190】
いくつかの実施形態において、ビデオコーディング方法は、
図22に関連して記載されたハードウェアプラットフォームで実装される装置を用いて実装されてもよい。
【0191】
図23は、ビデオ処理の例示的な方法2300のフローチャートである。方法は、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換のために、その変換中に使用する1つ以上の補間フィルタを決定すること(2302)であり、1つ以上の補間フィルタはビデオのための複数の補間フィルタからである、決定することと、決定された1つ以上の補間フィルタを用いて変換を実行すること(2304)とを含む。
【0192】
セクション4,項目1は、次の解決法の更なる例を提供する。
【0193】
1.ビデオ処理の方法であって、
ビデオピクチャのビデオブロックとそのビットストリーム表現との間の変換を実行することを有し、
前記ビデオブロックは、コーディングツリーブロックの論理的なグループ分けを用いて処理され、前記コーディングツリーブロックは、下端コーディングツリーブロックの下境界がビデオピクチャの下境界の外にあるかどうかに基づき処理される、
方法。
【0194】
2.解決法1の方法であって、
前記コーディングツリーブロックを処理することは、前記コーディングツリーブロック内のサンプルを使用することによって前記コーディングツリーブロックのサンプル値の適応ループフィルタリングを実行することを含む、
方法。
【0195】
3.解決法1の方法であって、
前記コーディングツリーブロックを処理することは、仮想境界に従って前記コーディングツリーブロックを2つの部分に分けることを無効化することによって、前記コーディングツリーブロックのサンプル値の適応ループフィルタリングを実行することを含む、
方法。
【0196】
セクション4,項目2は、次の解決法の更なる例を提供する。
4.ビデオ処理方法であって、
現在のビデオブロックのコーディングツリーブロックの条件に基づいて、インループフィルタリング中に仮想サンプルの使用状態を決定することと、
前記仮想サンプルの使用状態に従って前記ビデオブロックと該ビデオブロックのビットストリーム表現との間の変換を実行することと
を含む方法。
【0197】
5.解決法4の方法であって、
前記使用状態の論理的な真値は、前記現在のビデオブロックが仮想境界によって少なくとも2つの部分に分けられることを示し、1つの部分内のサンプルをフィルタリングすることは、他の部分からの情報を利用することを認められない、
方法。
【0198】
6.解決法4の方法であって、
前記使用状態の論理的な真値は、前記インループフィルタリング中に使用され、
前記インループフィルタリングは、前記現在のビデオブロックの再構成されたサンプルの変更された値を用いて実行される、
方法。
【0199】
7.解決法4の方法であって、
前記使用状態の論理的な偽値は、前記ブロック内のサンプルをフィルタリングすることが同じブロック内の情報を利用することを認められることを示す、
方法。
【0200】
8.解決法4の方法であって、
前記使用状態の論理的な真値は、前記インループフィルタリングが、前記現在のビデオブロックの再構成されたサンプルに対して、該再構成されたサンプルを更に変更せずに実行されることを示す、
方法。
【0201】
9.解決法4乃至8のいずれかの方法であって、
前記条件は、前記コーディングツリーブロックが特定のサイズを有していることにより、前記使用状態を論理的な偽値にセットすることを指定する、
方法。
【0202】
10.解決法4乃至8のいずれかの方法であって、
前記条件は、前記コーディングツリーブロックが特定のサイズよりも大きいサイズを有していることにより、前記使用状態を論理的な偽値にセットすることを指定する、
方法。
【0203】
11.解決法4乃至8のいずれかの方法であって、
前記コーディングツリーブロックは特定のサイズよりも小さいサイズを有している、
方法。
【0204】
セクション4,項目3は、次の解決法の更なる例を提供する。
【0205】
12.解決法5の方法であって、
前記条件は、前記現在のビデオブロックの下境界が、前記ビデオブロックよりも小さいビデオユニットの下境界であるか、あるいは、前記現在のビデオブロックの前記下境界が仮想境界であるかに依存する、
方法。
【0206】
13.解決法12の方法であって、
前記条件は、前記現在のビデオブロックの下境界がスライス又はタイル又はブリック境界の下境界であるかどうかに依存する、
方法。
【0207】
14.解決法12の方法であって、
前記条件は、前記現在のビデオブロックの下境界がスライス又はタイル又はブリック境界の下境界である場合に、前記使用状態を論理的な真値にセットすることを指定する、
方法。
【0208】
15.解決法4乃至12の方法であって、
前記条件は、前記現在のビデオブロックの下境界がピクチャ境界の下境界であるか、あるいは、ピクチャ境界の下境界の外側である場合に、前記使用状態を論理的な偽値にセットすることを指定する、
方法。
【0209】
セクション4,項目4は、次の解決法の更なる例を提供する。
【0210】
16.ビデオ処理の方法であって、
1つ以上のビデオスライス又はビデオブリックに論理的にグループ分けされるビデオピクチャと、該ビデオピクチャのビットストリーム表現との間の変換中に、適応ループフィルタプロセスにおける他のスライス又はブリック内のサンプルの使用を無効にすると決定することと、
前記決定することに従って前記変換を実行することと
を含む方法。
【0211】
セクション4,項目5は、次の解決法の更なる例を提供する。
【0212】
17.ビデオ処理の方法であって、
ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に、前記現在のビデオブロックが前記ビデオピクチャのビデオユニットの境界に位置しているサンプルを含むことを決定することと、
前記決定することに基づいて前記変換を実行することと
を含み、
前記変換を実行することは、前記ビデオピクチャ内の全ての境界タイプについて同じである統一手法を用いてインループフィルタリングのための仮想サンプルを生成することを含む、
方法。
【0213】
18.解決法17の方法であって、
前記ビデオユニットは、スライス又はタイル又は360度ビデオである、
方法。
【0214】
19.解決法17の方法であって、
前記インループフィルタリングは適応ループフィルタリングを含む、
方法。
【0215】
20.解決法17乃至19のいずれかの方法であって、
前記統一手法は両側パディング方法である、
方法。
【0216】
21.解決法17乃至20のいずれかの方法であって、
前記統一手法では、第1のラインより下のサンプルにアクセスすることが許されず、パディングが前記第1のラインより下のサンプルのための仮想サンプルを生成するために利用される場合に、第2のラインより上のサンプルにアクセスすることも、許されないとセットされ、パディングは、前記第2のラインの上のサンプルのための仮想サンプルを生成するために利用される、
方法。
【0217】
22.解決法17乃至20のいずれかの方法であって、
前記統一手法では、第1のラインの上のサンプルにアクセスすることが許されず、パディングが前記第1のラインの上のサンプルのための仮想サンプルを生成するために利用される場合に、第2のラインより下のサンプルにアクセスすることも、許されないとセットされ、パディングは、前記第2のラインより下のサンプルのための仮想サンプルを生成するために利用される、
方法。
【0218】
23.解決法21乃至22のいずれかの方法であって、
前記第1ラインと、フィルタリングされるべき現在のサンプルが位置している現在のラインとの間の距離、及び前記第2のラインと前記第1のラインとの間の距離は、等しい、
方法。
【0219】
セクション4,項目6は、次の解決法の更なる例を提供する。
【0220】
24.ビデオ処理の方法であって、
ビデオピクチャの現在のビデオブロックとそのビットストリーム表現との間の変換中に、該変換中に前記ビデオピクチャに対して利用可能な複数の適応ループフィルタ(ALF)サンプル選択方法のうちの1つ適用すると決定することと、
前記複数のALFサンプル選択方法のうちの1つを適用することによって前記変換を実行することと
を含む方法。
【0221】
25.解決法24の方法であって、
前記複数のALFサンプル選択方法は、前記変換中に前記現在のビデオブロックにインループフィルタが適用される前にサンプルが選択される第1の方法と、前記変換中に前記現在のビデオブロックにインループフィルタが適用された後にサンプルが選択される第2の方法とを含む、
方法
【0222】
セクション4,項目7は、次の解決法の更なる例を提供する。
【0223】
26.ビデオ処理の方法であって、
境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記ビデオピクチャの仮想パイプラインデータユニット(VPDU)を横断するサンプルを使用することを無効にする、ことと、
前記インループフィルタリング動作の結果を用いて前記変換を実行することと
を含む方法。
【0224】
27.解決法26の方法であって、
前記VPDUは、固定サイズを有している前記ビデオピクチャの領域に対応する、
方法。
【0225】
28.解決法26乃至27のいずれかの方法であって、
前記境界規則は、無効にされたサンプルの代わりに前記インループフィルタリングのために仮想サンプルを使用することを更に指定する、
方法。
【0226】
29.解決法28の方法であって、
前記仮想サンプルは、パディングによって生成される、
方法。
【0227】
セクション4,項目8は、次の解決法の更なる例を提供する。
【0228】
30.ビデオ処理の方法であって、
境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、ビデオユニット境界にわたる前記現在のビデオブロックの位置について、パディングを使用せずに生成されるサンプルを使用することを定める、ことと、
前記インループフィルタリング動作の結果を用いて前記変換を実行することと
を含む方法。
【0229】
31.解決法30の方法であって、
前記サンプルは、両側パディング方法を用いて生成される、
方法。
【0230】
32.解決法30の方法であって、
前記インループフィルタリング動作は、前記インループフィルタリング動作中に、対称に位置しているサンプルについて同じ仮想サンプル生成技術を使用することを有する、
方法。
【0231】
33.解決法30乃至32のいずれかの方法であって、
前記現在のビデオブロックのサンプルに対する前記インループフィルタリング動作は、前記インループフィルタリングを適用する前に、前記現在のビデオブロックの前記サンプルの再成形を実行することを含む、
方法。
【0232】
セクション4,項目9は、次の解決法の更なる例を提供する。
【0233】
34.ビデオ処理の方法であって、
境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記インループフィルタリング動作のために、インループフィルタリング中に使用される現在のビデオブロックのサンプルが前記ビデオピクチャのビデオユニットの境界を横断しないような大きさを有しているフィルタを選択することを定める、ことと、
前記インループフィルタリング動作の結果を用いて前記変換を実行することと
を含む方法。
【0234】
セクション4,項目10は、次の解決法の更なる例を提供する。
【0235】
35.ビデオ処理の方法であって、
境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記インループフィルタリング動作のために、パディングされたサンプルがインループフィルタリングに必要とされるか否かに基づいてクリッピングパラメータ又はフィルタ係数を選択することを定める、ことと、
前記インループフィルタリング動作の結果を用いて前記変換を実行することと
を含む方法。
【0236】
36.解決法35の方法であって、
前記クリッピングパラメータ又はフィルタ係数は、前記ビットストリーム表現に含まれる、
方法。
【0237】
セクション4,項目11は、次の解決法の更なる例を提供する。
【0238】
37.ビデオ処理の方法であって、
境界規則に基づいて、ビデオピクチャの現在のビデオブロックと該現在のビデオブロックのビットストリーム表現との間の変換中に前記現在のビデオブロックのサンプルに対してインループフィルタリング動作を実行することであり、前記境界規則は、前記現在のビデオブロックの色成分識別に依存する、ことと、
前記インループフィルタリング動作の結果を用いて前記変換を実行することと
を含む方法。
【0239】
38.解決法37の方法であって、
前記境界規則は、ルーマ及び/又は異なる色成分について異なる、
方法。
【0240】
39.解決法1乃至38のいずれかの方法であって、
前記変換は、前記現在のビデオブロックを前記ビットストリーム表現にエンコードすることを含む、
方法。
【0241】
40.解決法1乃至38のいずれかの方法であって、
前記変換は、前記現在のビデオブロックのサンプル値を生成するよう前記ビットストリーム表現をデコードすることを含む、
方法。
【0242】
41.解決法1乃至38のうちいずれか1つ以上に記載される方法を実装するよう構成されたプロセッサを有するビデオ符号化装置。
【0243】
42.解決法1乃至38のうちいずれか1つ以上に記載される方法を実装するよう構成されたプロセッサを有するビデオ復号化装置。
【0244】
43.コードを記憶しているコンピュータ可読媒体であって、
前記コードは、プロセッサによる実行時に、該プロセッサに、解決法1乃至38のうちいずれか1つに記載される方法を実装させる、
コンピュータ可読媒体。
【0245】
図30は、本明細書で開示されている様々な技術が実装され得る例示的なビデオ処理システム3000を示すブロック図である。様々な実施は、システム3000のコンポーネントのいくつか又は全てを含み得る。システム3000は、ビデオコンテンツを受ける入力部3002を含み得る。ビデオコンテンツは、生の又は圧縮されていないフォーマット、例えば、8または10ビットのマルチコンポーネントピクセル値で受けてもよく、あるいは、圧縮された又はエンコードされたフォーマットであってもよい。入力部3002は、ネットワークインターフェース、ペリフェラルバスインターバス、又はストレージインターフェースに相当してもよい。ネットワークインターフェースの例には、Ethernet(登録商標)、受動光ネットワーク(PON)などのような無線インターフェース、及びWi-Fi又はセルラーネットワークなどの無線インターフェースが含まれる。
【0246】
システム3000は、本明細書で記載されている様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント3004を含んでもよい。コーディングコンポーネント3004は、ビデオのコーディングされた表現を生成するよう、入力部3002からコーディングコンポーネント3004の出力部へのビデオの平均ビットレートを低減し得る。コーディング技術は、従って、ビデオ圧縮又はビデオトランスコーディング技術と時々呼ばれる。コーディングコンポーネント3004の出力は、コンポーネント3006によって表されるように、保存されても、あるいは、接続された通信を介して伝送されてもよい。入力部3002で受け取られたビデオの保存又は通信されたビットストリーム(又はコーディングされた)表現は、ピクセル値又は表示インターフェース3010へ送られる表示可能なビデオを生成するコンポーネント3008によって使用されてもよい。ユーザが見ることができるビデオをビットストリーム表現から生成するプロセスは、ビデオ圧縮解除と時々呼ばれる。更に、特定のビデオ処理動作が「コーディング」動作又はツールと呼ばれる一方で、そのようなコーディングツール又は動作はエンコーダで使用され、コーディングの結果を入れ替える対応する復号化ツール又は動作は、デコーダによって実行されることになることが理解されるだろう。
【0247】
ペリフェラルバスインターフェース又は表示インターフェースの例には、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインターフェース(HDMI(登録商標))又はDisplayport(登録商標)などが含まれ得る。ストレージインターフェースの例には、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース、などがある。本明細書で説明されている技術は、携帯電話機、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又はビデオ表示を実行する能力がある他のデバイスなどの様々な電子デバイスで具現されてもよい。
【0248】
図31は、本技術に従うビデオ処理のための方法3100のフローチャート表現である。方法3100は、動作3110で、ビデオのビデオピクチャ内にあるブロックと、前記ビデオのビットストリーム表現との間の変換のために、適応ループフィルタプロセスにおける現在のサンプルのために、前記ビデオピクチャの複数のビデオ領域の境界にわたって位置しているサンプルの第1の組をパディングする方法を決定することを含む。方法3100はまた。前記決定することに従って前記変換を実行することを含む。
【0249】
いくつかの実施形態において、前記適応ループフィルタプロセスは、サンプルの分類又はサンプルのフィルタリングを有する。いくつかの実施形態において、ビデオ領域はスライス、ブリック、タイル、又はサブピクチャを有する。いくつかの実施形態において、パディングする方法は、前記サンプルの第1の組の値が、前記現在のサンプルの同じビデオ領域内に位置しているサンプルの第2の組の値でパディングされることを定める。
【0250】
いくつかの実施形態において、前記サンプルの第2の組の位置は、垂直座標が前記現在のサンプルの同じビデオ領域内に位置している最も近い位置を取得するよう、水平方向に沿って前記サンプルの第1の組の垂直座標をクリッピングすることに基づき決定される。いくつかの実施形態において、前記サンプルの第2の組の位置は更に、水平座標が前記現在のサンプルの同じビデオ領域内に位置している最も近い位置を取得するよう、垂直方向に沿って前記サンプルの第1の組の水平座標を選択的にクリッピングすることに基づき決定される。
【0251】
いくつかの実施形態において、前記サンプルの第2の組の位置は、水平座標が前記現在のサンプルの同じビデオ領域内に位置している最も近い位置を取得するよう、垂直方向に沿って前記サンプルの第1の組の水平座標をクリッピングすることに基づき決定される。いくつかの実施形態において、前記サンプルの第2の組の位置は更に、垂直座標が前記現在のサンプルの同じビデオ領域内に位置している最も近い位置を取得するよう、水平方向に沿って前記サンプルの第1の組の垂直座標を選択的にクリッピングすることに基づき決定される。
【0252】
いくつかの実施形態において、前記サンプルの第2の組の位置は、前記現在のサンプルの同じビデオ領域内に位置している最も近い位置を取得するよう、水平方向及び垂直方向の両方に沿って前記サンプルの第1の組の位置をクリッピングすることに基づき決定される。いくつかの実施形態において、前記サンプルの第1の組に含まれるサンプルは、位置(x1,y1)にあり、当該サンプルは、位置(x2,y2)にクリッピングされる。水平方向に沿った距離は|x1-x2|と表される。垂直方向に沿った距離は|y1-y2|と表される。2つの位置の間の距離は、|x1-x2|+|y1-y2|又は(x1-x2)2+(y1-y2)2と表される。
【0253】
いくつかの実施形態において、前記パディングする方法は、前記現在のサンプルのフィルタリングが無効にされることを定める。いくつかの実施形態において、前記パディングする方法は、前記サンプルの第1の組の使用がサンプルの分類においては許可されないことを定める。いくつかの実施形態において、前記パディングする方法が前記ブロックに適用可能であるかどうかは、前記ブロックが前記複数のビデオ領域の境界と一致するかどうかに基づく。いくつかの実施形態において、前記パディングする方法は、前記ブロックが前記複数のビデオ領域の境界のいずれの境界とも一致せず、かつ、前記サンプルの第1の組の中のサンプルが前記適応ループフィルタプロセスで必要とされる場合に、前記ブロックに適用可能である。いくつかの実施形態において、前記パディングする方法は、(1)前記ブロックが前記複数のビデオ領域のいずれの境界とも一致せず、(2)前記サンプルの第1の組の中のサンプルが前記適応ループフィルタプロセスで必要とされ、かつ、(3)前記サンプルの第1の組のフィルタリングが許可されない場合に、前記ブロックに適用可能である。いくつかの実施形態において、前記パディングする方法は、(1)前記ブロックが前記複数のビデオ領域のいずれの境界とも一致せず、(2)前記サンプルの第1の組の中のサンプルが前記適応ループフィルタプロセスで必要とされ、(3)前記ブロックの同じビデオ領域内に位置している他のサンプルが前記適応ループフィルタプロセスで必要とされ、かつ、(4)前記サンプルの第1の組のフィルタリングが許可されない場合に、前記ブロックに適用可能である。いくつかの実施形態において、前記ビデオ領域はスライスである。
【0254】
いくつかの実施形態において、パディングされたサンプルが境界の両側からのサンプルを用いて生成される対称パディング方法は、前記サンプルの第1の組に適用可能でない。いくつかの実施形態において、パディングされたサンプルが境界の片側からのサンプルを用いて生成される片側パディング方法は、前記サンプルの第1の組に適用可能でない。
【0255】
図32は、本技術に従うビデオ処理のための方法3200のフローチャート表現である。方法3200は、動作3210で、ビデオのビデオピクチャ内にあるブロックと、前記ビデオのビットストリーム表現との間の変換のために、前記ブロックが前記ビデオピクチャの複数のビデオ領域の境界の少なくとも1タイプと一致する場合に、適応ループフィルタプロセスにおける前記ブロックの現在のサンプルのためにサンプルを生成する一様パディング動作を決定することを含む。方法3200はまた、動作3220で、前記決定することに基づいて前記変換を実行することを含む。
【0256】
いくつかの実施形態において、前記一様パディング動作は、境界の片側に沿ったサンプルを使用することを有する。いくつかの実施形態において、前記一様パディング動作は、境界の両側に沿ったサンプルを使用することを有する。いくつかの実施形態において、前記一様パディング動作は、前記ブロックが境界の複数のタイプと一致し、かつ、前記ビデオピクチャの前記複数のビデオ領域の境界にわたって位置しているサンプルのフィルタリングが無効にされる場合に、前記ブロックに適用される。
【0257】
図33は、本技術に従うビデオ処理のための方法3400のフローチャート表現である。方法3300は、動作3310で、ビデオのビデオピクチャ内にあるブロックと、前記ビデオのビットストリーム表現との間の変換のために、複数のビデオ領域の境界の2つのタイプの間に位置している現在のサンプルのためにパディング動作が適応ループフィルタプロセスで呼び出される方法を決定することを含む。前記境界の2つのタイプのうちの1つは360仮想境界を有する。方法3300はまた、前記決定することに従って前記変換を実行することを含む。
【0258】
いくつかの実施形態において、前記パディング動作が適応ループフィルタプロセスで呼び出される前記方法は、前記パディング動作が前記適応ループフィルタプロセスにおいて一度だけ呼び出されることを定める。いくつかの実施形態において、前記パディング動作は、パディングされたサンプルが境界の両側からのサンプルを用いて生成される対称パディング動作を有する。いくつかの実施形態において、前記パディング動作は、パディングされたサンプルが境界の片側からのサンプルを用いて生成される片側パディング動作を有する。
【0259】
いくつかの実施形態において、前記パディング動作が適応ループフィルタプロセスで呼び出される前記方法は、前記パディング動作が順序に従って前記適応ループフィルタプロセスにおいて少なくとも1つの他のパディング動作により呼び出されることを定める。いくつかの実施形態において、前記パディング動作は、前記少なくとも1つの他のパディング動作より前に適用される。前記パディング動作は、パディングされたサンプルが境界の片側からのサンプルを用いて生成される片側パディング動作を有し、前記少なくとも1つの他のパディング動作は、パディングされたサンプルが境界の両側からのサンプルを用いて生成される対称パディング動作を有する。いくつかの実施形態において、前記パディング動作の後のパディングされたサンプルは、前記少なくとも1つの他のパディング動作で利用可能なサンプルとして使用される。
【0260】
いくつかの実施形態において、前記境界の2つのタイプのうちの他のタイプが前記複数のビデオ領域の実際の境界又は適応ループフィルタ仮想境界を有する場合に、前記パディング動作が適応ループフィルタプロセスで呼び出される前記方法は、前記パディング動作が、パディングされたサンプルが境界の両側からのサンプルを用いて生成される対称パディング動作のみを有することを定める。いくつかの実施形態において、前記境界の2つのタイプのうちの他のタイプが前記ビデオピクチャの実際の境界を有する場合に、前記パディング動作が適応ループフィルタプロセスにおいて呼び出される前記方法は、前記パディング動作が、パディングされたサンプルが境界の片側からのサンプルを用いて生成される片側パディング動作のみを有することを定める。いくつかの実施形態において、前記境界の2つのタイプのうちの前記1つが前記ブロックと一致しない場合に、前記パディング動作が適応ループフィルタプロセスにおいて呼び出される前記方法は、前記パディング動作が、パディングされたサンプルが境界の両側からのサンプルを用いて生成される対称パディング動作のみを有することを定める。いくつかの実施形態において、前記パディング動作が適応ループフィルタプロセスにおいて呼び出される前記方法は、パディングされたサンプルが境界の両側からのサンプルを用いて生成される対称パディング動作のみを有する。
【0261】
いくつかの実施形態において、前記変換は、前記ビデオを前記ビットストリーム表現にエンコードすることを含む。いくつかの実施形態において、前記変換は、前記ビットストリーム表現を前記ビデオにデコードすることを含む。
【0262】
上記から、目下開示されている技術の具体的な実施形態は、例示のために本明細書で記載されているのであって、様々な変更が、発明の範囲から逸脱せずに行われてもよい、ことが理解されるだろう。従って、目下開示されている技術は、添付の特許請求の範囲によることを除いて、限定されない。
【0263】
開示されている技術のいくつかの実施形態は、ビデオ処理ツール又はモードを有効にするとの決定又は判定を行うことを含む。例において、ビデオ処理ツール又はモードが有効にされる場合に、エンコーダは、ビデオのブロックの処理でツール又はモードを使用又は実装するが、結果として得られるビットストリームを、ツール又はモードの利用に基づいて必ずしも変更し得ない。つまり、ビデオのブロックからビデオのビットストリーム表現への変換は、ビデオ処理ツール又はモードが決定又は判定に基づいて有効にされる場合にそれを使用する。他の例においては、ビデオ処理ツール又はモードが有効にされる場合に、デコーダは、ビットストリームがビデオ処理ツール又はモードに基づいて変更されていると知った上でビットストリームを処理する。つまり、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定又は判定に基づいて有効にされたビデオ処理ツール又はモードを用いて実行される。
【0264】
開示されている技術のいくつかの実施形態は、ビデオ処理ツール又はモードを無効にするとの決定又は判定を行うことを含む。例において、ビデオ処理ツール又はモードが無効にされる場合に、エンコーダは、ビデオのブロックからビデオのビットストリーム表現への変換でツール又はモードを使用しない。他の例においては、ビデオ処理ツール又はモードが無効にされる場合に、デコーダは、決定又は判定に基づいて有効にされたビデオ処理ツール又はモードを用いてビットストリームが変更されていないと知った上でビットストリームを処理する。
【0265】
本特許文献で記載されている主題及び機能的動作の実施は、本明細書で開示されている構造及びそれらの構造的同等物を含む、様々なシステム、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアで、あるいは、それらのうちの1つ以上の組み合わせで実装され得る。本明細書で記載されている主題の実施は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置によって実行されるか又はその動作を制御する有形かつ非一時的なコンピュータ可読媒体でエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装され得る。コンピュータ可読媒体は、マシン可読記憶デバイス、マシン可読記憶基板、メモリデバイス、マシン可読な伝播信号に影響を与える物質の組成、又はそれらの1つ以上の組み合わせであることができる。「データ処理ユニット」又は「データ処理装置」との用語は、例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及びマシンを包含する。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサハードウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0266】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる。)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして又はコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとしてを含め、如何なる形式でもデプロイ可能である。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、問題となっているプログラムに専用の単一のファイルで、又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を保存するファイル)で、他のプログラム又はデータ(例えば、マークアップ言語文書で保存された1つ以上のスクリプト)を保持するファイルの部分において保存可能である。コンピュータプログラムは、1つのコンピュータで、あるいは、1つの場所に位置しているか、又は複数の場所にわたって分布しており、通信ネットワークによって相互接続されている複数のコンピュータで実行されるようデプロイ可能である。
【0267】
本明細書で説明されているプロセス及びロジックフローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及びロジックフローはまた、専用のロジック回路、例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)又は特定用途向け集積回路(ASIC)によっても実行可能であり、装置は、そのようなものとして実装可能である。
【0268】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用のマイクロプロセッサ及び専用のマイクロプロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリー・メモリ若しくはランダム・アクセス・メモリ又はその両方から命令及びデータを読み出すことになる。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを保存する1つ以上のメモリデバイスとである。一般に、コンピュータはまた、データを保存する1つ以上の大容量記憶デバイス、例えば、磁気、光学磁気ディスク、又は光ディスクを含むか、あるいは、そのような1つ以上の大容量記憶デバイスからのデータの受信若しくはそれへのデータの転送又はその両方のために動作可能に結合されることになる。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを保存するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスを含む全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用のロジック回路によって強化されるか、あるいは、それに組み込まれ得る。
【0269】
本明細書は、図面とともに、単に実例として見なされるべきであることが意図され、実例とは例を意味する。本明細書で使用されるように、「又は」(or)の使用は、文脈中で別段明示されない限りは、「及び/又は」(and/or)を含むよう意図される。
【0270】
本明細書は、多数の詳細を含むが、それらは、あらゆる対象の又は請求される可能性があるものの範囲に対する限定としてではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態に関連して本明細書で説明されている特定の特徴は、単一の実施形態と組み合わせても実装可能である。逆に、単一の実施形態に関連して説明されている様々な特徴はまた、複数の実施形態で別々に、又は何らかの適切なサブコンビネーションで実装可能である。更に、特徴は、特定の組み合わせで動作するものとして先に説明され、更には、そのようなものとして最初に請求されることがあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから削除可能であり、請求されている組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられてもよい。
【0271】
同様に、動作は、特定の順序で図面において表されているが、これは、所望の結果を達成するために、そのような動作が示されているその特定の順序で又は順次的な順序で実行されること、あるいは、表されている全ての動作が実行されることを求めている、と理解されるべきではない。更に、本明細書で説明されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を求めている、と理解されるべきではない。
【0272】
ほんのわずかの実施及び例が説明されており、他の実施、強化及び変形は、本特許文献で記載及び例示されているものに基づいて行われ得る。