IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7291846適応ループフィルタリングのためのサンプル決定
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-07
(45)【発行日】2023-06-15
(54)【発明の名称】適応ループフィルタリングのためのサンプル決定
(51)【国際特許分類】
   H04N 19/82 20140101AFI20230608BHJP
   H04N 19/70 20140101ALI20230608BHJP
【FI】
H04N19/82
H04N19/70
【請求項の数】 12
(21)【出願番号】P 2022500804
(86)(22)【出願日】2020-07-09
(65)【公表番号】
(43)【公表日】2022-09-14
(86)【国際出願番号】 CN2020100962
(87)【国際公開番号】W WO2021004491
(87)【国際公開日】2021-01-14
【審査請求日】2022-01-14
(31)【優先権主張番号】PCT/CN2019/095330
(32)【優先日】2019-07-09
(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)【参考文献】
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 5),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N1001 (version 10),14th Meeting: Geneva, CH,2019年07月02日,pp.306-314
【文献】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
【文献】Jianle Chen, Yan Ye, and Seung Hwan Kim,Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N1002-v2,14th Meeting: Geneva, CH,2019年06月,pp.1,59-63
【文献】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つ以上のコーディングツリーブロックの現在コーディングツリーブロックに適用されることを決定するステップと、
ルールに従って、M×N領域を含むP×Q領域から導出された勾配に基づいて、前記現在コーディングツリーブロックのM×N領域の分類を決定するステップであり、
前記ルールは、複数種類のビデオ領域の1つ以上の境界を横切る前記P×Q領域内のサンプルの使用を禁止し、
前記ピクチャは、複数種類のビデオ領域へと分割され、かつ、前記1つ以上の境界は、少なくとも360度の仮想境界またはピクチャ境界を含み、
ここで、M、N、P、Qは、正の整数であり、PはMより大きく、QはNより大きい、ステップと、
前記決定された分類に従って、前記適応ループフィルタリングプロセスを適用することによって前記変換を実行するステップと、
を含み、
前記適応ループフィルタリングプロセスは、
決定された分類に基づいて、前記M×N領域についてフィルタ係数セットを導出するステップと、
前記M×N領域ついてクリッピング値セットを決定するステップと、
前記フィルタ係数セットおよび前記クリッピング値セットに基づいて、フィルタリング動作を実行するステップと、を含み、
前記1つ以上の境界は、さらに、スライス境界、タイル境界、および、サブピクチャ境界を条件付きで含む、
法。
【請求項2】
1つ以上の仮想サンプルを生成するために、前記1つ以上の境界を横切る前記サンプルについて片側パディングプロセスが適用され、
前記1つ以上の仮想サンプルは、前記M×N領域が配置されているビデオ領域内の利用可能なサンプルからコピーされる、
請求項1に記載の方法。
【請求項3】
前記方法は、さらに、
前記現在コーディングツリーブロックの下境界と、前記ピクチャの下境界との間の関係に基づいて、前記現在コーディングツリーブロックについて仮想境界がイネーブルされているか否かを決定するステップ、
を含む、請求項2に記載の方法。
【請求項4】
前記仮想境界は、前記現在コーディングツリーブロックの前記下境界が前記ピクチャの前記下境界でない場合にイネーブルされる、
請求項に記載の方法。
【請求項5】
前記仮想境界は、前記分類を決定するために使用され、
前記仮想境界の外側のサンプルは、前記分類を決定するために使用されない、
請求項3または4に記載の方法。
【請求項6】
前記M×N領域は4×4領域であり、前記P×Q領域は10×10領域である、
請求項1乃至いずれか一項に記載の方法。
【請求項7】
前記分類を決定するときに、1:2サブサンプリングが使用される、
請求項1乃至いずれか一項に記載の方法。
【請求項8】
前記変換は、前記ビデオを前記ビットストリームへとエンコーディングすることを含む、
請求項1乃至いずれか一項に記載の方法。
【請求項9】
前記変換は、前記ビットストリームを前記ビデオへとデコーディングすることを含む、
請求項1乃至いずれか一項に記載の方法。
【請求項10】
ビデオデータを処理する装置であって、プロセッサと、命令を保管する非一時メモリとを備え、前記プロセッサによって前記命令が実行されると、前記プロセッサに、
1つ以上のコーディングツリーブロックを含むビデオのピクチャと、前記ビデオのビットストリームとの間の変換のために、適応ループフィルタリングプロセスが前記1つ以上のコーディングツリーブロックの現在コーディングツリーブロックに適用されることを決定し、
ルールに従って、M×N領域を含むP×Q領域から導出された勾配に基づいて、前記現在コーディングツリーブロックのM×N領域の分類を決定し、
前記ルールは、複数種類のビデオ領域の1つ以上の境界を横切る前記P×Q領域内のサンプルの使用を禁止し、
前記ピクチャは、複数種類のビデオ領域へと分割され、かつ、前記1つ以上の境界は、少なくとも360度の仮想境界またはピクチャ境界を含み、
ここで、M、N、P、Qは、正の整数であり、PはMより大きく、QはNより大きく、
前記決定された分類に従って、前記適応ループフィルタリングプロセスを適用することによって前記変換を実行し、前記適応ループフィルタリングプロセスは、
決定された分類に基づいて、前記M×N領域についてフィルタ係数セットを導出し、
前記M×N領域ついてクリッピング値セットを決定し、
前記フィルタ係数セットおよび前記クリッピング値セットに基づいて、フィルタリング動作を実行する、ようにさせ、
前記1つ以上の境界は、さらに、スライス境界、タイル境界、および、サブピクチャ境界を条件付きで含む、
置。
【請求項11】
命令を保管している非一時的なコンピュータ読取り可能な記憶媒体であって、前記命令が実行されると、プロセッサに、
1つ以上のコーディングツリーブロックを含むビデオのピクチャと、前記ビデオのビットストリームとの間の変換のために、適応ループフィルタリングプロセスが前記1つ以上のコーディングツリーブロックの現在コーディングツリーブロックに適用されることを決定し、
ルールに従って、M×N領域を含むP×Q領域から導出された勾配に基づいて、前記現在コーディングツリーブロックのM×N領域の分類を決定し、
前記ルールは、複数種類のビデオ領域の1つ以上の境界を横切る前記P×Q領域内のサンプルの使用を禁止し、
前記ピクチャは、複数種類のビデオ領域へと分割され、かつ、前記1つ以上の境界は、少なくとも360度の仮想境界またはピクチャ境界を含み、
ここで、M、N、P、Qは、正の整数であり、PはMより大きく、QはNより大きく、
前記決定された分類に従って、前記適応ループフィルタリングプロセスを適用することによって前記変換を実行し、前記適応ループフィルタリングプロセスは、
決定された分類に基づいて、前記M×N領域についてフィルタ係数セットを導出し、
前記M×N領域ついてクリッピング値セットを決定し、
前記フィルタ係数セットおよび前記クリッピング値セットに基づいて、フィルタリング動作を実行する、ようにさせ、
前記1つ以上の境界は、さらに、スライス境界、タイル境界、および、サブピクチャ境界を条件付きで含む、
一時的なコンピュータ読取り可能な記憶媒体。
【請求項12】
デオのビットストリームを保管する方法であって、前記方法は、
1つ以上のコーディングツリーブロックを含むビデオのピクチャと、前記ビデオのビットストリームとの間の変換のために、適応ループフィルタリングプロセスが前記1つ以上のコーディングツリーブロックの現在コーディングツリーブロックに適用されることを決定するステップと、
ルールに従って、M×N領域を含むP×Q領域から導出された勾配に基づいて、前記現在コーディングツリーブロックのM×N領域の分類を決定するステップであり、
前記ルールは、複数種類のビデオ領域の1つ以上の境界を横切る前記P×Q領域内のサンプルの使用を禁止し、
前記ピクチャは、複数種類のビデオ領域へと分割され、かつ、前記1つ以上の境界は、少なくとも360度の仮想境界またはピクチャ境界を含み、
ここで、M、N、P、Qは、正の整数であり、PはMより大きく、QはNより大きい、ステップと、
前記決定された分類に従って、前記適応ループフィルタリングプロセスを適用することによって前記ビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータ読取り可能な記憶媒体に保管するステップと、
を含み、
前記適応ループフィルタリングプロセスは、
決定された分類に基づいて、前記M×N領域についてフィルタ係数セットを導出するステップと、
前記M×N領域ついてクリッピング値セットを決定するステップと、
前記フィルタ係数セットおよび前記クリッピング値セットに基づいて、フィルタリング動作を実行するステップと、
含み、
前記1つ以上の境界は、さらに、スライス境界、タイル境界、および、サブピクチャ境界を条件付きで含む、
方法
【発明の詳細な説明】
【技術分野】
【0001】
この特許文書は、一般的に、ビデオコーディングおよびデコーディング技術を対象としている。
【0002】
関連出願の相互参照
出願は、2019年7月9日に出願された国際特許出願第PCT/CN2019/095330号の優先権および利益を主張する、2020年7月9日に出願された国際特許出願第PCT/CN2020/100962号に基づくものである。上記の特許出願の全体は、参照により、ここにおいて組み込まれている。
【背景技術】
【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を越える将来のビデオコーディング技術を探求するため、2015年にVCEGとMPEGが共同で共同ビデオ探査チーム(Joint Video Exploration Team、JVET)を設立した。それ以来、JVETによって多くの新しい方法が採用され、JEM(Joint Exploration Model)と名付けられた参照ソフトウェアに入れられた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間のJVETが作成され、HEVCと比較してビットレートを50%低減することを目標とした次世代のバーサタイルビデオコーディング(VVC)規格に取り組んでいる。
【発明の概要】
【0004】
開示されるビデオコーディング、トランスコーディング、またはデコーディング技術を使用して、ビデオエンコーダまたはデコーダの実施形態は、より良好な圧縮効率と、コーディングまたはデコーディングツールのより単純な実装とを提供するために、コーディングツリーブロックの仮想境界を処理することができる。
【0005】
一つの例として、ビデオ処理の方法が開示される。本方法は、ルールに従ってビデオのビデオ映像におけるブロックのサンプルの分類を決定することを含む。ビデオピクチャは複数の領域に分割される。このルールは、分類のために複数領域の1つ以上の境界を横切る現在サンプルの隣接サンプルの使用を禁止する。複数領域の1つ以上の境界は、適応ループフィルタリング(ALF)プロセスのための仮想境界を構成する。本方法は、また、分類に従って適応ループフィルタを選択的に適用することによって、ブロックとビデオのビットストリーム表現との間の変換を実行することを含む。
【0006】
別の例においては、ビデオ処理の方法が開示される。本方法は、ビデオピクチャのビデオブロックとそのビットストリーム表現との間で変換を実行することを含む。ここで、ビデオブロックは、コーディングツリーブロックの論理グループを用いて処理され、そして、コーディングツリーブロックは、ボトムコーディングツリーブロックの下境界がビデオピクチャの下境界の外側にあるか否かに基づいて処理される。
【0007】
別の例においては、別のビデオ処理方法が開示される。本方法は、現在ビデオブロックのコーディングツリーブロックの条件に基づいて、インループフィルタリングの最中に仮想サンプルの使用状態を決定し、仮想サンプルの使用状態と一致するビデオブロックとビデオブロックのビットストリーム表現との間の変換を実行することを含む。
【0008】
さらに別の例においては、別のビデオ処理方法が開示される。本方法は、1つ以上のビデオスライスまたはビデオブリックに論理的にグループ化されたビデオピクチャと、ビデオピクチャのビットストリーム表現との間の変換の最中に、適応ループフィルタプロセスにおける別のスライスまたはブリックでのサンプルの使用をディセーブルするように決定するステップと、決定と一致する変換を実行するステップと、を含む。
【0009】
さらに別の例においては、別のビデオ処理方法が開示される。本方法は、ビデオピクチャの現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、現在ビデオブロックが、ビデオピクチャのビデオユニットの境界に位置するサンプルを含み、決定に基づいて変換を実行する、ことを決定するステップを含み、前記変換を実行するステップは、ビデオピクチャの全ての境界タイプについて同一である統一された方法を使用して、インループフィルタリングプロセスのための仮想サンプルを生成するステップを含む。
【0010】
さらに別の例においては、ビデオ処理の別の方法が開示される。本方法は、ビデオピクチャの現在ビデオブロックと、そのビットストリーム表現との間の変換の最中に、変換中のビデオピクチャに利用可能な複数の適応ループフィルタのサンプル選択方法のうち1つを適用することを決定し、複数のALFサンプル選択方法のうち1つを適用することによって変換を実行すること、を含む。
【0011】
さらに別の例においては、ビデオ処理の別の方法が開示される。本方法は、境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行することを含み、境界ルールは、ビデオピクチャの仮想パイプラインデータユニット(VPDU)を横切るサンプルを使用することをディセーブルにし、インループフィルタリング操作の結果を使用して変換を実行する。
【0012】
さらに別の例においては、ビデオ処理の別の方法が開示される。本方法は、境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行することを含み、境界ルールは、ビデオユニット境界を横切る現在ビデオブロックの位置に対して、パディングを使用することなく生成されたサンプルを使用し、インループフィルタリング操作の結果を使用して変換を実行することを規定する。
【0013】
さらに別の例においては、ビデオ処理の別の方法が開示される。本方法は、境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行することを含み、境界ルールは、インループフィルタリング操作のために、インループフィルタリングの間に使用される現在ビデオブロックのサンプルがビデオピクチャのビデオユニットの境界を越えないような寸法を有するフィルタを選択し、インループフィルタリング操作の結果を使用して変換を実行することを規定する。
【0014】
さらに別の例においては、ビデオ処理の別の方法が開示される。本方法は、境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行することを含み、境界ルールは、インループフィルタリング操作について、パディングされたサンプルがインループフィルタリングのために必要か否かに基づいてクリッピングパラメータまたはフィルタ係数を選択し、インループフィルタリング操作の結果を使用して変換を実行することを規定する。
【0015】
さらに別の例においては、ビデオ処理の別の方法が開示される。本方法は、境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行することを含み、この境界ルールは、現在ビデオブロックの色成分(color component)識別に依存し、インループフィルタリング操作の結果を使用して変換を実行する。
【0016】
さらに別の例においては、上述の方法を実行するように構成されたビデオエンコーディング装置が開示されている。
【0017】
さらに別の例においては、上述の方法を実行するように構成されたビデオデコーダが開示されている。
【0018】
さらに別の例においては、マシン読取り可能媒体が開示されている。媒体は、コードを保管しており、実行されると、上述した1つ以上の方法をプロセッサに実施させる。
【0019】
開示される技術に係る上記の態様および特徴は、図面、明細書、および請求項によって、より詳細に説明される。
【図面の簡単な説明】
【0020】
図1図1は、12個のタイルと3個のラスタスキャンスライスに分割された18×12のルマコーディングツリーユニットCTUを有するピクチャの例を示す。
図2図2は、24個のタイルと9個の矩形スライスに分割された18×12ルマCTUを有するピクチャの一つの例を示す。
図3図3は、4個のタイル、11個のブリック(brick)、および4個の矩形スライスに分割されたピクチャの例を示す。
図4A図4Aは、K=M、L<Nの場合に、CTBがピクチャの境界を横切る(crossing)コーディングツリーブロックの例を示す。
図4B図4Bは、K<M、L=Nの場合に、CTBがピクチャの境界を横切るコーディングツリーブロックの例を示す。
図4C図4Cは、K<M、L<Nの場合に、CTBがピクチャの境界を横切るコーディングツリーブロックの例を示す。
図5図5は、エンコーダブロック図の一つの例を示す。
図6図6は、8×8グリッド上のピクチャサンプルと水平および垂直ブロック境界、および、8×8サンプルの重複しないブロックの説明図であり、これらは並列にデブロッキング(deblocked)することができる。
図7図7は、フィルタのオン/オフ決定および強/弱フィルタの選択に含まれるピクセルの例を示す。
図8図8は、4個の一次元方向パターンを示す。
図9図9は、幾何学的適応ループフィルタリング(GALF)フィルタ形状(左:5×5ダイヤモンド、中央:7×7ダイヤモンド、右:9×9ダイヤモンド)の例を示す。
図10図10は、5×5ダイヤモンドフィルタサポートの相対座標を示す。
図11図11は、5×5ダイヤモンドフィルタサポートの相対座標の例を示す。
図12A図12Aは、サブサンプリングされたラプラシアン計算のための例示的な配置を示す。
図12B図12Bは、サブサンプリングされたラプラシアン計算のための別の例示的な配置を示す。
図12C図12Cは、サブサンプリングされたラプラシアン計算のための別の例示的な配置を示す。
図12D図12Dは、サブサンプリングされたラプラシアン計算のためのさらに別の例示的な配置を示す。
図13図13は、ルマ成分に対するVTM-4.0におけるループフィルタラインバッファ要件の一つの例を示す。
図14図14は、クロマ成分に対するVTM-4.0におけるループフィルタラインバッファ要件の一つの例を示す。
図15A図15Aは、N=4の場合の仮想境界におけるALFブロック分類の例を示す。
図15B図15Bは、N=4の場合の仮想境界におけるALFブロック分類の別の例を示す。
図16A図16Aは、仮想境界における修正ルマALFフィルタリングの例を示す。
図16B図16Bは、仮想境界における修正ルマALFフィルタリングの別の例を示す。
図16C図16Cは、仮想境界における修正ルマALFフィルタリングのさらに別の例を示す。
図17A図17Aは、仮想境界における修正クロマALFフィルタリングの例を示す。
図17B図17Bは、仮想境界における修正クロマALFフィルタリングの別の例を示す。
図18A図18Aは、動き補償の水平ラップ周りの例を示す。
図18B図18Bは、動き補償の水平ラップ周りの別の例を示す。
図19図19は、修正適応ループフィルタの一つの例を示す。
図20図20は、ビデオピクチャ内のCTUを処理する例を示す。
図21図21は、修正適応ループフィルタ境界の例を示す。
図22図22は、ビデオ処理装置の一つの例のブロック図である。
図23図23は、ビデオ処理の例示的な方法のためのフローチャートである。
図24図24は、3×2レイアウトにおけるHECのピクチャの一つの例を示す。
図25図25は、2種類の境界のサンプルのためのパッド付きラインの数の例を示す。
図26図26は、ピクチャ内のCTUの処理の一つの例を示す。
図27図27は、ピクチャ内のCTUの処理の別の例を示す。
図28図28は、開示される技術を実装することができる例示的なビデオ処理システムのブロック図である。
図29図29は、本技術によるビデオ処理方法のフローチャート表現である。
【発明を実施するための形態】
【0021】
セクション見出しは、理解を容易にするために本文書で使用されており、セクションに開示されている実施形態をそのセクションのみに限定するものではない。さらに、所定の実施形態が、バーサタイルビデオコーディングまたは他の特定のビデオコーデックを参照して説明されているが、開示される技術は、他のビデオコーディング技術にも適用可能である。さらに、いくつかの実施形態は、ビデオコーディングのステップを詳細に記述するが、コーディングを元に戻す対応するデコーディングのステップは、デコーダによって実装されることが理解されるだろう。さらに、ビデオ処理という用語は、ビデオコーディングまたは圧縮、ビデオデコーディングまたは解凍、および、ビデオピクセルが、ある圧縮フォーマットから別の圧縮フォーマットで、または、別の圧縮ビットレートで表現されるビデオトランスコーディングを包含する。
【0022】
1.概要
【0023】
本文書は、ビデオコーディング技術に関する。具体的には、特に非線形適応ループフィルタに対するピクチャ/スライス/タイル/ブリック境界と仮想境界コーディングに関する。これは、HEVCのような既存のビデオコーディング標準、または最終化される標準(バーサタイルビデオコーディング)に適用されることがある。これは、将来のビデオコーディング規格またはビデオコーデックにも適用可能である。
【0024】
2.最初の説明
【0025】
ビデオコーディング規格は、主に、周知の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を越える将来のビデオコーディング技術を探求するため、2015年にVCEGとMPEGが共同で共同ビデオ探査チーム(Joint Video Exploration Team、JVET)を設立した。それ以来、JVETによって多くの新しい方法が採用され、JEM(Joint Exploration Model)と名付けられた参照ソフトウェアに入れられた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間のJVETが作成され、HEVCと比較してビットレートを50%低減することを目標としたVVC規格に取り組んでいる。
【0026】
2.1色空間とクロマサブサンプリング
【0027】
カラーモデル(またはカラーシステム)としても知られている、色空間は、単に色の範囲を数字のタプル(tuple)として、典型的には3または4の値または色成分(例えば、RGB)として簡単に記述する抽象的な数学モデルである。基本的には、色空間は座標系とサブ空間の精緻化(elaboration)である。
【0028】
ビデオ圧縮で最も頻繁に使用される色空間は、YCbCrとRGBである。
【0029】
YCbCr、Y'CbCr、またはY Pb/Cb Pr/Crは、YCBCRまたはY'CBCRとしても書かれるように、ビデオおよびデジタル写真システムにおけるカラーピクチャパイプラインの一部として使用される色空間のファミリーである。Y′はルマ成分(ルマ component)であり、そして、CBおよびCRは青色差および赤色差クロマ成分(クロマ component)である。Y′(プライム付き)は、輝度(luminance)であるYと区別され、これは、光強度がガンマ補正RGB原色(gamma corrected RGB primaries)に基づいて非線形にエンコーディングされることを意味する。
【0030】
クロマサブサンプリングは、ルマ情報よりもクロマ情報について解像度をより低く実装することによる画像のエンコーディングの実践であり、輝度(luminance)よりも色の違いについてヒトの視覚系の視力が低いことを利用している。
【0031】
2.1.1 カラーフォーマット4:4:4
【0032】
3個のY'CbCr成分は、それぞれ同じサンプルレートを持つので、クロマサブサンプリングは存在しない。このスキームは、ハイエンドのフィルムスキャナや映画のポストプロダクションで使用されることがある。
【0033】
2.1.2 カラーフォーマット4:2:2
【0034】
2個のクロマ成分は、ルマのサンプルレートの半分でサンプリングされ、水平クロマ解像度(resolution)は半分になる。これにより、非圧縮ビデオ信号の帯域幅が3分の1だけ減少し、視覚的な差は、ほとんど又は全くない。
【0035】
2.1.3 カラーフォーマット4:2:0
【0036】
4:2:0において、水平方向のサンプリングは4:1:1に比べて2倍になるが、CbとCrチャンネルは、このスキームの各代替ラインでのみサンプリングされるため、垂直方向の解像度は半分になる。従って、データレートは同じである。CbとCrは、それぞれ水平方向と垂直方向の2倍でサブサンプリングされる。4:2:0スキームの3個のバリエーションがあり、異なる水平および垂直位置を有している。
【0037】
MPEG-2では、CbとCrは水平に共配置(cosited)されている。CbとCrは垂直方向のピクセル間に配置されている(隙間(interstitially)に置かれている)。
【0038】
JPEG/JFIF、H.261、およびMPEG-1では、CbとCrは交互のルマサンプルの中間の隙間に位置している。
【0039】
4:2:0 DVでは、CbとCrが水平方向に共配置されている。垂直方向では、それらは交互の線上に共配置されている。
【0040】
2.2 各種ビデオユニット
【0041】
ピクチャは、1つ以上のタイル行(row)と1つ以上のタイル列(column)に分割される。タイルは、ピクチャの矩形領域をカバーするCTUのシーケンスである。
【0042】
タイルは、1つ以上のブリックに分割され、各ブリックは、タイル内の多数のCTU行から構成されている。
【0043】
複数のブリックに分割されないタイルも、また、ブリックと呼ばれる。しかし、タイルの真のサブセットであるブリックはタイルとは呼ばれない。
【0044】
スライスには、多数のピクチャのタイル(a number of tiles of a picture)が含まれているか、多数のタイルのブリック(a number of bricks of a tile)が含まれている。
【0045】
2個のモードのスライス、すなわち、ラスタスキャン(raster-scan)スライスモードと矩形スライスモードがサポートされている。ラスタスキャンスライスモードにおいて、スライスは、ピクチャのタイル・ラスタスキャンにおけるタイルのシーケンスを含む。矩形スライスモードでは、スライスは、ピクチャの矩形領域をセット的に形成する多数のピクチャのブリック(a number of bricks of a picture)を含む。矩形スライス内のブリックは、スライスのブリックラスタスキャンのオーダー(order)である。
【0046】
図1は、ピクチャが12個のタイルと3個のラスタスキャンスライスに分割される、ピクチャのラスタスキャンスライス分割(raster-scan slice partitioning)の例を示す。
【0047】
図2は、ピクチャを24個のタイル(6個のタイル行および4個のタイル列)および9個の矩形スライスに分割する、ピクチャの矩形スライス分割の例を示す。
【0048】
図3は、タイル、ブリック、矩形のスライスに分割されたピクチャの例を示しており、ピクチャは4個のタイル(2個のタイル行と2個のタイル列)、11個のブリック(左上タイルは1個のブリックを含み、右上タイルは5個のブリックを含み、左下タイルは2個のブリックを含み、右下タイルは3個のブリックを含む)、および、4個の矩形のスライスに分割されている。
【0049】
2.2.1 CTU/CTBサイズ
【0050】
【表1】
【0051】
2.2.2 ピクチャのCTU
【0052】
M×N(典型的に、Mは、HEVC/VVCで定義されるNに等しい)で示されるCTB/LCUサイズと、ピクチャ(またはタイル、またはスライス、または他の種類のタイプ、ピクチャ境界を例にとる)境界に位置するCTBについて、K×Lサンプルは、K<MまたはL<Nのいずれかのピクチャ境界内にあると仮定する。これらのCTBは、図4A~4Cに示すように、CTBのサイズは依然としてM×Nに等しいが、CTBの下境界/右境界はピクチャの外側にある
【0053】
図4Aは、下ピクチャ境界(bottom picture border)を横切るCTBを示す。図4Bは、右ピクチャ境界(right picture border)を横切るCTBを示す。図4Cは、右下ピクチャ境界(right bottom picture border)を横切るCTBを示す。
【0054】
図4A図4Cは、(a)K=M、L<N、(b)K<M、L=N、(c)K<M、L<Nのピクチャ境界を横切るCTBの例を示す。
【0055】
2.3 典型的なビデオコーデックのコーディングフロー
【0056】
図5は、3個のインループフィルタリングブロック、すなわち、デブロッキングフィルタ(DF)、サンプル適応オフセット(SAO)、およびALFを含む、VVCのエンコーダブロック図の例を示す。事前に定義されたフィルタを使用するDFとは異なり、SAOおよびALFは、オフセットを追加し、有限インパルス応答(FIR)フィルタをそれぞれ適用することにより、現在ピクチャの元のサンプルを使用して、元のサンプルと再構成されたサンプルとの間の平均二乗誤差を減少させ、オフセットおよびフィルタ係数を信号化(signaling)するコード化側方情報(side information)を有する。ALFは、各ピクチャの最終処理ステージに置かれており、前のステージで生成されたアーチファクトをキャプチャし、修復(fix)しようとするツールと見なすことができる。
【0057】
2.4 デブロッキングフィルタ(DB)
【0058】
DBの入力は、インループフィルタ前の再構成されたサンプルである。
【0059】
ピクチャの垂直エッジは、最初にフィルタリングされる。次いで、ピクチャの水平エッジが、垂直エッジフィルタリングプロセスによって修正されたサンプルを入力として用いてフィルタリングされる。各CTUのCTBの垂直端と水平端は、コーディングユニットベースで別々に処理される。コーディングユニット内のコーディングブロックの垂直エッジは、コーディングブロックの左側エッジから開始して、幾何学的順序でコーディングブロックの右側に向かってエッジを通って進むように、フィルタリングされる。コーディングユニット内のコーディングブロックの水平エッジは、その幾何学的順序で、コーディングブロックのエッジを通ってコードブロックの下(bottom)に向かって進行するコーディングブロックの上(top)エッジから始まる。
【0060】
図6は、8×8グリッド上のピクチャサンプルと、水平および垂直ブロック境界、および8×8サンプルの非オーバーラップ(nonoverlapping)ブロックの説明図であり、これらは並列にデブロッキングすることができる。
【0061】
2.4.1. 境界の決定
【0062】
フィルタリングは、8×8ブロック境界に適用される。さらに、それは変換ブロック境界またはコーディングサブブロック境界でなければならない(例えば、アフィン(Affine)動き予測、ATMVPの使用に起因する)。そうした境界ではない場合、フィルタはディセーブルされる。
【0063】
2.4.2 境界強度計算
【0064】
変換ブロック境界/コーディングサブブロック境界については、8×8グリッドに置かれている場合、それはフィルタリングされてもよく、そして、このエッジに対するbS[xDi][yDj]([xDi][yDj]は座標を示す)の設定は、それぞれ、テーブル1およびテーブル2に定義されている。
【表2】
【表3】
【0065】
2.4.3 ルマ成分に対するデブロッキングの決定
【0066】
このサブセクションでは、デブロッキングの決定プロセスについて説明する。
【0067】
図7は、フィルタのオン/オフ決定および強/弱フィルタの選択に含まれるピクセルの例を示す。
【0068】
条件1、条件2、および条件3の全てが真の場合にのみ、より広く-より強い(wider-stronger)ルマフィルタが使用される。
【0069】
条件1は「ラージブロック条件(“large block condition”)」である。この条件は、P側とQ側でのサンプルが、それぞれ変数bSidePisLargeBlkとbSideQisLargeBlkで表される、ラージブロックに属するか否かを検出する。bSidePisLargeBlkおよびbSideQisLargeBlkは、以下のように定義される。
【表4】
【0070】
bSidePisLargeBlkおよびbSideQisLargeBlkに基づいて、条件1は、以下のように定義される。
条件1=(bSidePisLargeBlk|)||bSidePisLargeBlk)?TURE:FALSE
【0071】
次に、条件1が真(true)場合は、条件2がさらにチェックされる。最初に、以下の変数が導出される:
【表5】
【0072】
条件2=(d<β)?TURE:FALSE
【0073】
ここで、d=dp0+dq0+dp3+dq3である。
【0074】
条件1と条件2が有効な場合、いずれかのブロックがサブブロックを使用しているか否かが、さらにチェックされる:
【表6】
【0075】
最後に、条件1条件2の両方が有効である場合、提案されるデブロッキング法は、条件3(ラージブロック強力フィルタ条件)をチェックする。これは、以下のように定義される。
【0076】
条件3のStronFilterConditionでは、以下の変数が導出される:
【表7】
【0077】
HEVCと同様に、
StrongFilterCondition=(dpqは(β>>2)未満,sp3+sq3は(3*β>>5)未満,かつAbs(p0-q0)は(5*tC+1)>>1)?TURE:FALSE
【0078】
2.4.4 ルマに対する強力なデブロッキングフィルタ(よりラージブロックのために設計されている)
【0079】
バイリニア(bilinear)フィルタは、境界の片側のサンプルがラージブロックに属する場合に使用される。ラージブロックに属するサンプルは、垂直エッジの場合は幅が32以上(>=32)、水平エッジの場合は高さが32以上(>=32)の場合として定義される。
【0080】
バイリニアフィルタは、以下のとおりである。
【0081】
i=0~Sp-1であるブロック境界サンプルpiおよびj=0~Sq-1のブロック境界サンプルqi(piおよびqiは、上述のHEVCデブロッキングにおける、垂直エッジをフィルタリングするための行内のi番目のサンプル、または、水平エッジをフィルタリングするための列内のi番目のサンプルである)は、以下の線形補間で置き換えられる:
【表8】
ここで、用語tcPDiおよびtcPDjは、セクション2.4.7で説明されている位置依存のクリッピングであり、そして、gi、fi、Middles,t、Ps、およびQsは、以下のように与えられる。
【0082】
2.4.5 クロマに対するデブロッキング制御
【0083】
クロマ強力フィルタがブロック境界の両側に使用される。ここで、クロマフィルタは、クロマエッジの両側が8以上(クロマ位置)の場合に選択され、そして、以降の決定は、3個の条件を満たしている。1番目の条件は、境界強度、並びにラージブロックの決定のためのものである。提案されるフィルタは、ブロックエッジを直交的に横切るブロック幅または高さが、クロマサンプル領域において8以上である場合に適用できる。2番目と3番目の条件は、基本的にHEVCルマのデブロッキング決定と同じである。これは、それぞれ、オン/オフ決定および強力フィルタ決定である。
【0084】
1番目の決定では、境界強度(bS)がクロマフィルタリングのために修正され、そして、条件が連続的にチェックされる。条件が満たされると、優先度の低い残りの条件はスキップされる。
【0085】
クロマデブロッキングは、bSが2に等しい場合、または、ラージブロック境界が検出されたとき、bSが1に等しい場合に実行される。
【0086】
2番目と3番目の条件は、以下のように、基本的にHEVCルマ強力フィルタ決定と同じである。
【0087】
2番目の条件において:
dが、次いで、HEVCルマのデブロッキングのように導出される。
【0088】
dがβより小さい場合、2番目の条件は真である。
【0089】
3番目の条件において、StrongFilterConditionは、以下のように導出される:
dpqは、HEVCのように導出される
sp3=Abs(p3-p0)、HEVCのように導出される
sq3=Abs(q0-q3)、HEVCのように導出される
【0090】
HEVCデザインのように、StrongFilterCondition=(dpqは(β>>2)未満,sp3+sq3は(β>>3)未満,かつAbs(p0-q0)は(5*tC+1)>1未満)である。
【0091】
2.4.6 クロマに対する強力デブロッキングフィルタ
【0092】
以下のクロマに対する強力デブロックフィルタが定義されている:
【表9】
【0093】
提案されるクロマフィルタは、4×4クロマサンプルグリッドにおいてデブロッキングを実行する。
【0094】
2.4.7 位置依存クリッピング
【0095】
位置依存クリッピングtcPDが、境界で7個、5個、および3個のサンプルを修正する強力かつ長いフィルタを含むルマフィルタリングプロセスの出力サンプルに対して適用される。量子化誤差分布を仮定して、より高い量子化ノイズを有することが期待され、従って、真のサンプル値から再構成されたサンプル値のより高い偏差を有することが期待されるサンプルに対して、クリッピング値を増加させることが提案される。
【0096】
非対称フィルタでフィルタリングされた各PまたはQ境界に対して、2.4.2セクションの意思決定プロセスの結果に応じて、位置依存閾値値テーブルが、サイドインフォメーションとしてデコーダに提供される2個のテーブルから選択される(例えば、以下に表に示すTc7およびTc3):
【表10】
【0097】
短い対称フィルタでフィルタリングされるPまたはQ境界に対しては、より低い振幅の位置依存閾値が適用される:
【表11】
【0098】
以下は、閾値を定義しており、フィルタリングされたp'iおよびq'iサンプル値が、tcPおよびtcQクリッピング値に従ってクリップされる:
【表12】
【0099】
ここで、p'iとq'iはフィルタリングされたサンプル値であり、p'iとq'jはクリッピング後の出力サンプル値であり、そして、tcPi はVVCのtcパラメータおよびtcPDとtcQDから導出されたクリッピング閾値である。関数Clip3は、VVCで指定されるクリッピング関数である。
【0100】
2.4.8 サブブロックのデブロッキング調整
【0101】
ロングフィルタとサブブロックデブロッキングの両方を使用する並列のフレンドリーなデブロッキングを可能にするために、ロングフィルタは、ロングフィルタに対するルマ制御に示されるように、サブブロックデブロッキング(AFFINE、ATMVP、DMVR)を使用する側で、最大で5個のサンプルを修正するように制限されている。加えて、サブブロックのデブロッキングは、CUまたは黙示的なTU境界に近い8×8グリッドにおけるサブブロック境界が、それぞれの側において最大で2個のサンプルを修正するよう制限されるように調整される。
【0102】
以下は、CU境界と整列されていないサブブロック境界に対して適用される。
【表13】
【0103】
0に等しいエッジがCU境界に対応する場合、2に等しいか又はorthogonalLength-2に等しいエッジは、CU境界などからのサブブロック境界8個のサンプルに対応する。ここで、TUの黙示的な分割が使用される場合、黙示的なTUは真である。
【0104】
2.5 SAO
【0105】
SAOの入力は、DB後の再構成サンプルである。SAOの概念は、まず、選択された分類器(classifier)を用いて領域サンプルを複数のカテゴリに分類し、そして、各カテゴリについてオフセットを得て、次いで、オフセットをカテゴリの各サンプルに加えることによって、領域の平均サンプル歪みを低減することである。ここで、分類インデックスおよび領域のオフセットは、ビットストリームにおいてコーディングされる。HEVCおよびVVCでは、領域(SAOパラメータシグナリングの単位)はCTUと定義されている。
【0106】
低複雑性の要求を満たすことができる2個のSAOタイプがHEVCで採用されている。これらの2個のタイプは、エッジオフセット(EO)およびバンドオフセット(BO)であり、以下でさらに詳細に説明される。SAOタイプのインデックスはコード化される(これは[0,2]の範囲である)。EOの場合、サンプルの分類は、水平、垂直、対角135°、対角45°の一次元方向パターンに従って、現在サンプルと隣接サンプルとの比較に基づいている。
【0107】
図8は、EOサンプル分類のための4個の一次元方向パターンを示している。水平(EOクラス=0)、垂直(EOクラス=1)、対角135°(EOクラス=2)、対角45°(EOクラス=3)である。
【0108】
所与のEOクラスに対して、CTB内の各サンプルは5個のカテゴリーのうち1つに分類される。「c」とラベル付けされた現在サンプル値が、選択された1-Dパターンに沿って隣接する2個のサンプル値と比較される。各サンプルの分類ルールをテーブル3にまとめられている。カテゴリー1および4は、それぞれ、選択された1-Dパターンに沿った局所的な谷(valley)および局所的なピーク(peak)に関連している。カテゴリー2および3は、それぞれ、選択された1-Dパターンに沿った凹角および凸角に関連している。現在サンプルがEO区分1~4に属さない場合は、カテゴリー0であり、そして、SAOは適用されない。
【表14】
【0109】
2.6ジオメトリ変換ベースの適応ループフィルタ
【0110】
DBの入力は、DBとSAOの後の再構成サンプルである。サンプルの分類およびフィルタリングプロセスは、DBおよびSAO後に再構成されたサンプルに基づいている。
【0111】
いくつかの実施形態において、ブロックベースのフィルタ適応を有する幾何学的変換ベースの適応ループフィルタ(GALF)が適用される。ルマ成分では、局所的な勾配(local gradient)の方向とアクティビティに基づいて、2×2ブロックごとに25個のフィルタのうち1個が選択される。
【0112】
2.6.1 フィルタ形状
【0113】
いくつかの実施形態において、(図9に示すように)最大3個のダイヤモンドフィルタ形状が、ルマ成分に対して選択され得る。インデックスは、ルマ成分に使用されるフィルタの形状を示すために、ピクチャレベルで表示される。各正方形はサンプルを表し、そして、Ci(iは0~6(左)、0~12(中央)、0~20(右))は、サンプルに適用される係数を表す。ピクチャにおけるクロマ成分には、常に5×5のダイヤモンド形状が使用される。
【0114】
2.6.1.1 ブロック分類
【0115】
各2×2ブロックは、25個のクラスのうち1個に分類される。分類インデックスCは、その方向性Dとアクティビティ(activity)A^の量子化値に基づいて、次のように導出される。
【数1】
【0116】
DとA^を計算するために、最初に、1-Dラプラシアンを使用して水平方向、垂直方向、および2つの対角方向の勾配が計算される。
【数2】
【数3】
【数4】
【数5】
【0117】
インデックスiとjは、2×2ブロック内の左上のサンプルの座標を指し、そして、R(i,j)は、座標(i,j)での再構成されたサンプルを示す。
【0118】
次いで、水平方向と垂直方向の勾配の最大値と最小値が、次のように設定される。
【数6】
【0119】
そして、2個の対角方向の勾配の最大値と最小値が、次のように設定される。
【数7】
【0120】
方向性Dの値を導出するために、これらの値は、互いに、そして、2個の閾値t1およびt2と比較される。
【表15】
【0121】
アクティビティ値は次のように計算される。
【数8】
【0122】
Aは、さらに0から4の範囲に量子化され、そして、量子化された値はA^として示される。
【0123】
ピクチャ内の両方のクロマ成分に対して、分類方法は適用されない。例えば、ALF係数の単一セットが各クロマ成分に適用される。
【0124】
2.6.1.2 フィルタ係数の幾何学的変換
【0125】
図10は、5×5ダイヤモンドフィルタサポートに対する相対コーディネータ(coordinator)を示している。左:対角、中心:垂直フリップ、右:回転である。
【0126】
各2×2ブロックをフィルタリングする前に、回転、または、対角反転(flipping)および垂直反転といった幾何学的変換が、そのブロックについて計算された勾配値に応じて、座標(k,l)に関連付けられたフィルタ係数f(k,l)に適用される。これは、フィルタサポート領域内のサンプルに対してこれらの変換を適用することと等価である。本アイデアは、ALFが適用される異なるブロックを、それらの方向性を整列させることによって、より類似させることである。
【0127】
対角、垂直フリップ、回転を含む3個の幾何学的変換が導入されている。
【表16】
【0128】
ここで、Kはフィルタのサイズであり、そして、0≦k、l≦K-1は、位置(0,0)が左上隅に、かつ、位置(K-1,K-1)が右下隅になるような係数座標である。変換は、フィルタ係数f(k,l)に対して、そのブロックについて計算された勾配値に依存して適用される。変換と4方向の4個の勾配の関係がテーブル表4にまとめられている。図9は、5×5ダイヤモンドに基づく各位置について変換された係数を示している。
【表17】
【0129】
2.6.1.3 フィルターパラメータ信号化
【0130】
いくつかの実施形態において、GALFフィルターパラメータは、第1CTUについて、例えば、スライスヘッダの後および第1CTUのSAOパラメータの前に信号化される。最大で25セットのルマフィルタ係数が信号化され得る。ビットオーバーヘッドを減らすために、異なる分類のフィルタ係数をマージすることができる。また、参照ピクチャのGALF係数が保管され、そして、現在ピクチャのGALF係数として再利用される。現在ピクチャは、参照ピクチャのために保管されたGALF係数を使用し、GALF係数信号をバイパスすることを選択することができる。この場合、参照ピクチャの1つに対するインデックスのみが信号化され、そして、示された参照ピクチャの保管されたGALF係数が現在ピクチャに対して継承される。
【0131】
GALF時間予測をサポートするために、GALFフィルタセットの候補リストが維持される。新しいシーケンスのデコーディングの開始時に、候補リストは空である。1つのピクチャをデコーディングした後で、対応するフィルタのセットが候補リストに追加されてよい。一旦、候補リストのサイズが最大許容値(例えば、6)に達すると、新しいフィルタのセットが復号順に最も古いセットを上書きし、すなわち、先入れ先出し(FIFO)ルールが候補リストを更新するために適用される。重複を避けるために、対応するピクチャがGALF時間予測を使用しない場合にのみ、セットをリストに追加できる。時間的スケーラビリティをサポートするために、フィルタセットの複数の候補リストが存在しており、各候補リストは時間的レイヤに関連付けられる。より具体的に、時間層インデックス(TempIdx)によって割り当てられた各アレイは、より低いTempIdxと等しい以前にデコーディングされたピクチャのフィルタセットを構成することができる。例えば、k番目のアレイは、kに等しいTempIdxに関連付けられるように割り当てられ、そして、k以下のTempIdxを持つピクチャからのフィルタセットのみを含む。所定のピクチャをコーディングした後で、ピクチャに関連付けられたフィルタセットは、等しい又はより高いTempIdxに関連付けられたそれらのアレイを更新するために使用される。
【0132】
シグナリングオーバヘッドを最小化するために、インターコード化フレームについてGALF係数の時間予測が使用される。イントラフレームについて、時間的予測は利用できず、16個の固定フィルタのセットが各クラスに割り当てられる。固定フィルタの使用法を示すために、各クラスに対するフラグが信号化され、そして、必要であれば、選択された固定フィルタのインデックスが示される。固定フィルタが所与のクラスに対して選択された場合でも、適応フィルタの係数f(k,l)は依然としてこのクラスに対して送ることができ、その場合、再構成されたピクチャに適用されるフィルタの係数は、係数の両方のセットの合計である。
【0133】
ルマ成分のフィルタリングプロセスは、CUレベルで制御され得る。GALFがCUのルマ成分に適用されているか否かを示すためにフラグが信号化される。クロマ成分について、GALFが適用されているか否かは、ピクチャレベルのみで示される。
【0134】
2.6.1.4 フィルタリングプロセス
【0135】
デコーダ側では、ブロックに対してGALFがイネーブルされると、ブロック内の各サンプルR(i,j)がフィルタリングされ、以下に示すようにサンプル値R’(i,j)が得られる。ここで、Lはフィルタ長を表し、fm,nはフィルタ係数を表し、そして、f(k,l)はデコーディングされたフィルタ係数を表す。
【数9】
【0136】
図11は、現在サンプルの座標(i,j)を(0,0)であると仮定して、5×5ダイヤモンドフィルタサポートに使用される相対座標の例を示している。同じ色で満たされた異なる座標のサンプルは、同じフィルタ係数で乗算される。
【0137】
2.7 幾何学的変換ベースの適応ループフィルタ(GALF)
【0138】
2.7.1 GALFの実施例
【0139】
いくつかの実施形態において、適応ループフィルタのフィルタリングプロセスは、以下のように実施される。
【数10】
【0140】
ここで、サンプルI(x+i,y+i)は入力サンプルであり、O(x,y)はフィルタリングされた出力サンプル(例えば、フィルタリング結果)であり、そして、w(i,j)はフィルタ係数を示す。実際には、VTM4.0では、固定小数点精度計算のために整数演算を使用して実装されている。
【数11】
【0141】
ここで、Lはフィルタ長を表し、そして、w(i,j)は固定小数点精度のフィルタ係数を表している。
【0142】
VVCにおけるGALFの現在の設計には、以下のような大きな変化がある。
【0143】
(1)適応フィルタ形状が除去される。ルマ成分には7×7のフィルタ形状のみが許可され、そして、クロマ成分には5×5のフィルタ形状のみが許可される。
【0144】
(2)スライス/ピクチャレベルからCTUレベルへ除去されたALFパラメータのシグナリング。
【0145】
(3)クラスインデックスの計算は、2×2ではなく、4×4レベルで行われる。加えて、いくつかの実施形態において、ALF分類のためのサブサンプル・ラプラシアン計算法が利用される。より具体的には、1つのブロック内の各サンプルについて水平/垂直/45対角/135度勾配を計算する必要はない。代わりに、1:2サブサンプリングが使用される。
【0146】
図12A~12Dは、CE2.6.2についてのサブサンプル・ラプラシアン計算を示している。図12Aは、垂直勾配のためのサブサンプル位置を示し、図12Bは、水平勾配のためのサブサンプル位置を示し、図12Cは、対角勾配のためのサブサンプル位置を示し、そして、図12Dは、対角勾配のためのサブサンプル位置を示している。
【0147】
2.8 非線形ALF
【0148】
2.8.1 フィルタリング再編成
【0149】
等式(11)は、コード化効率の影響なしに、以下の式で再編成され得る。
【数12】
ここで、w(i,j)は等式(11)と同じフィルタ係数である[ただし、期待されるw(0,0)は等式(13)における1に等しいが、一方で、等式(11)における
【数13】
に等しい]。
【0150】
上記フィルタの等式(13)を使用して、VVCは、単純なクリッピング関数を用いて、ALFをより効率的にするために非線形性を導入し、現在サンプル値(I(x,y))とあまりにも異なる場合に、隣接サンプル値(I(x+i,y+i))の影響を低減する。
【0151】
より具体的に、ALFフィルタは以下のように変更される。
【数14】
【0152】
ここで、K(d,b)=min(b,max(-b,d))はクリッピング関数であり、そして、k(i,j)はクリッピングパラメータであり、(i,j)フィルタ係数に依存する。エンコーダは最適化を実行し、最良のk(i,j)を見つる。
【0153】
いくつかの実施形態において、クリッピングパラメータk(i,j)は、各ALFフィルタに対して指定され、1つのクリッピング値がフィルタ係数ごとに信号化される。これは、12までのクリッピング値が、ルマフィルタごとにビットストリームで信号化され、そして、クロマフィルタについて6までのクリッピング値が信号化され得ることを意味する。
【0154】
信号化コストおよびエンコーダの複雑さを制限するために、インター(INTER)およびイントラ(INTRA)スライスに対して同じである4個の固定値のみが使用される。
【0155】
局所的な差の分散は、しばしばクロマよりもルマの方が大きいため、ルマおよびクロマフィルタについて2個の異なるセットが適用される。各セットの最大サンプル値(ここでは、10ビット深さについて1024ビット)も、また、導入され、必要がなければクリッピングをディセーブルにすることができる。
【0156】
いくつかの実施形態で使用されるクリッピング値のセットが、テーブル5で提供されている。4個の値は、対数領域で、ルマについてはサンプル値の全範囲(10ビットでコード化)、クロマについては4~1024の範囲をほぼ等しく分割することによって選択されている。
【0157】
より正確には、クリッピング値のルマテーブルは、以下の等式によって獲得される。
【数15】
【0158】
同様に、クリッピング値のクロマテーブルは、以下の等式によって獲得される。
【数16】
【表18】
【0159】
選択されたクリッピング値は、上のテーブル5のクリッピング値のインデックスに対応するゴロム(Golomb)コーディング体系を使用することにより、“alf_data”シンタックス要素でコード化される。このエンコーディング方式は、フィルタインデックスのエンコーディング方式と同じである。
【0160】
2.9 仮想境界
【0161】
ハードウェアおよび組み込み(embedded)ソフトウェアにおいて、ピクチャベースの処理は、その高いピクチャバッファ要求のために、事実上受け入れられない。オンチップ(on-chip)ピクチャバッファの使用は非常に高価であり、オフチップ(off-chip)ピクチャバッファの使用は、外部メモリアクセス、電力消費、および、データアクセス待ち時間を著しく増加させる。従って、DF、SAO、ALFは、実際の製品ではピクチャベースからLCUベースへと変更される。LCUベースの処理をDF、SAO、ALFに使用する場合、複数のLCUの並列処理のためのLCUパイプライン方式で、LCUによるラスタスキャンで全体のデコーディング処理をLCUで行うことができる。この場合、1つのLCU行を処理するには、上記のLCU行からのピクセルが必要となるため、DF、SAO、およびALFにはラインバッファが必要となる。オフチップラインバッファ(例えば、DRAM)が使用される場合、外部メモリ帯域幅および電力消費が増加し、オンチップラインバッファ(例えば、SRAM)が使用される場合、チップ面積が増加する。従って、ラインバッファは、既にピクチャバッファよりもはるかに小さいが、ラインバッファを減らすことが望ましい。
【0162】
いくつかの実施態様において、図13に示すように、必要とされるラインバッファの総数は、ルマ成分について11.25ラインである。ラインバッファ要件の説明は、次のとおりである。CTUエッジと重複する水平エッジのデブロッキングは、決定およびフィルタリングが、最初のCTUからのラインK、L、M、Nおよび下のCTUからのラインO、Pを必要とするため、実行できない。従って、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ウィンドウを必要とする。
【0163】
従って、ラインG、H、I、Jと重複する4×4ブロックのブロック分類のためには、仮想境界の下にSAOフィルタリングされたサンプルが必要である。加えて、ALF分類のために、ラインD、E、FのSAOフィルタリングサンプルが必要である。さらに、ラインGのALFフィルタリングには、上記のラインから3個のSAOフィルタリング済みラインD、E、Fが必要である。従って、ラインバッファの総必要量は、次のとおりである。
【表19】
【0164】
従って、必要とされるルマラインの総数は、7+4+0.25=11.25となる。
【0165】
同様に、クロマ成分のラインバッファ要件が図14に示されている。クロマ成分のラインバッファ要件は6.25ラインであると評価される。
【0166】
SAOおよびALFのラインバッファ要件を除去するために、仮想境界(VB)の概念が最新のVVCに導入されている。図13に示すように、VBは、Nピクセルだけ上方にシフトされた水平LCU境界である。各LCUについて、SAOおよびALFは、下部LCUが来る前にVBより上のピクセルを処理することができるが、下部LCUが来るまでVBより下のピクセルを処理することはできない。これは、DFに起因する。ハードウェア実装コストを考慮して、提案されるVBと水平LCU境界との間の空間は、ルマについては4ピクセル(例えば、図13ではN=4)、クロマについては2ピクセル(例えば、図9ではN=2)として設定されている。
【0167】
2.9.1 VBサイズNが4の場合の修正ALFブロック分類
【0168】
図15A~15Bは、仮想境界がCTU境界の上方4ラインである場合(N=4)の事例について修正ブロック分類を示している。図15Aに示されているように、行Gで始まる4×4ブロックについて、ブロック分類は、行EからJまでの行のみを使用するが、行Jに属するサンプルについてのラプラシアン勾配計算は、1つ下の行(行K)をさらに必要とする。従って、行Kは行Jでパディングされる。
【0169】
同様に、図15Bに示されているように、行Kで始まる4×4ブロックについて、ブロック分類は、行Kまでの行のみを使用するが、行Kに属するサンプルについてのラプラシアン勾配計算は、1つ上の行(行J)を必要とする。従って、行Jは行Kでパディングされる。
【0170】
2.9.2 仮想境界を横切るサンプルの両側パディング
【0171】
図16A~16Cに示すように、仮想境界に近い行に属するルマサンプルをフィルタリングするために、フィルタの切り詰められた(truncated)バージョンが使用される。例えば、図16Aを参照すると、図13に示されるように行Mをフィルタリングするとき、例えば、7×7ダイヤモンドサポートの中心サンプルは行Mの中にあり、VBの上方の1つの行(太線で示される)にアクセスする必要がある。この場合、実線のP0サンプルが上記のダッシュ位置にコピーされるように、VBより上のサンプルはVBより下の右側のサンプルからコピーされる。対称的に、実線のP3サンプルは、その位置のサンプルが利用可能であっても、破線の右下の位置にコピーされる。コピーされたサンプルは、ルマフィルタリングプロセスでのみ使用される。
【0172】
ALF仮想境界に使用されるパディング方法は、「両側パディング(“Two-side Padding”)」として示されてよく、図16A~16Cおよび図17A~17Bに示されるように、(i,j)に位置する1つのサンプル(例えば、図16Bではダッシュ線を有するP0A)が埋め込まれた場合、同じフィルタ係数を共有する(m,n)に位置する対応するサンプル(例えば、図16Bではダッシュ線を有するP3B)も、また、利用可能である。図16A~16Cにおいて、7×7ダイヤモンドフィルタサポートの中心は、フィルタリングされるべき現在サンプルである。図16Aは、VBの上下の1つの必須行を、パディングする必要があることを示す。図16Bは、VBの上下に必要な2つの行をパディングする必要があることを示す。図16Cは、VBの上下にある/下にある3つの必要な行が、パディングされる必要があることを示す。
【0173】
同様に、図17A~17Bに示されるように、両側パディング方法も、また、クロマALFフィルタリングに使用される。図17A~17Bは、仮想境界における修正クロマALFフィルタリングを示す(5×5ダイヤモンドフィルタサポート、中心は、フィルタリングされる現在サンプルである)。図17Aは、VBの上下の1つの必須行を、パディングする必要があることを示す。図17Bは、VBの上下に必要な2つの行をパディングする必要があることを示す。
【0174】
2.9.3 非線形ALFがディセーブルの場合の両側パディングに対する代替的な実装方法
【0175】
非線形ALFがCTBに対してディセーブルにされた場合、例えば、等式(14)のクリッピングパラメータk(i,j)が(1<<ビット深さ)に等しい、パディングプロセスは、フィルタ係数(別名、修正係数ベースのALF(modified-coeff based ALF、MALF))を修正することによって置き換えることができる。例えば、行L/Iでサンプルをフィルタリングするとき、フィルタ係数c5はc5'に修正され、この場合、図18Aで実線P0Aから破線P0Aおよび実線P3Bから破線P3Bにルマサンプルをコピーする必要はない。この場合、フィルタリングされる現在サンプルが(x,y)にあると仮定すると、両側パディングとMALFは同じ結果を生成する。
【数17】
パディングにより、K(d,b)=d、および、I(x-1,y-1)=I(x-2,y-2)だからである。
【0176】
しかしながら、非線形ALFがイネーブルである場合、MALFおよび両側パディングは、異なるフィルタリング結果を生成する可能性がある。なぜなら、非線形パラメータは、フィルタ係数c5およびc1の場合のように、各係数に関連付けられるため、クリッピングパラメータは異なるからである。従って、以下のようである。
【数18】
【0177】
パディングにより、I(x-1,y-1)=I(x-2,y-2)でも、K(d,b)!=dだからである。
【0178】
2.10 ALFフィルタリングの仕様
【0179】
新たに追加された部分は、太字のイタリック体で示されている。削除された部分は[[ ]]を使用して表示されている。
【表20】
【0180】
2.11 CTU処理の実施例
【0181】
現在のVVC設計に従って、1つのCTBの下(bottom)境界がスライス/ブリックの下境界である場合、ALF仮想境界処理方法はディセーブルである。例えば、図19に示すように、1つのピクチャを複数のCTUに分割し、2つのスライスを作成する。
【0182】
CTUサイズがM×M(例えば、M=64)であると仮定すると、仮想境界定義に従って、CTB内の最後の4行は仮想境界以下で扱われる。ハードウェア実装では、以下が適用される。
【0183】
-CTBの下境界がピクチャの下境界(例えばCTU-D)である場合、CTUの上方の4行と現在のCTUの全行を含む(M+4)×Mブロックを処理する。
【0184】
-さもなければ、CTBの下境界がスライス(またはブリック)(例えばCTU-C)の下境界であり、loop_filter_ware_slice_enabled_flag(またはloop_filter_ware_bricks_enabled_flag)が0に等しい場合、現在CTUの上のCTU行から4行と全ての行を含む(M+4)×Mブロックを処理する。
【0185】
-さもなければ、スライス/ブリック/タイル(例えば、CTU-A)中の最初のCTU行のCTU/CTBである場合、最後の4行を除くM×(M-4)ブロックを処理する。
【0186】
-さもなければ、スライス/ブリック/タイルの最初のCTU行(例えば、CTU-B)ではなく、かつ、スライス/ブリック/タイルの最後のCTU行ではないCTU/CTBである場合、現在CTUの上のCTU行から4行と全ての行を含み、かつ、現在CTUの最後の4行を除くM×Mブロックを処理する。
【0187】
図19は、ピクチャ内のCTUの処理の一つの例を示している。
【0188】
2.12 360度のビデオコーディング
【0189】
VTM5における水平ラップ周り動き補償は、等矩形(ERP)投影フォーマットで再構成された360度ビデオの視覚品質を改善するために設計された360固有のコーディングツールである。従来の動き補償では、動きベクトルが参照ピクチャのピクチャ境界を横切るサンプルを参照する場合、反復的なパディングが適用され、対応するピクチャ境界上の最も近い隣接からコピーすることによって、境界外のサンプルの値が導出される。360度ビデオでは、この反復的なパディング方法は不適当であり、再構成されたビューポートビデオにおいて「シームアーチファクト(“seam artefacts”)」と呼ばれる視覚アーチファクトを引き起こす可能性がある。360度ビデオは、球体上でキャプチャされ、本質的に「境界(“boundary”)」を持たないので、投影ドメイン内の参照ピクチャの境界から外れた基準サンプルは、球状ドメイン内の隣接サンプルから常に得ることができる。一般的な投影フォーマットでは、2D-3D座標変換および3D-2D座標変換、並びに分数サンプル(fractional sample)位置に対するサンプル補間を含むので、球状ドメイン内の対応する隣接サンプルを導出することは困難である。この問題は、ERP投影フォーマットの左と右の境界に対してはるかに単純である。なぜなら、左境界の外側の球状隣接が右境界の内側のサンプルから得られ、その逆も同様だからである。
【0190】
図20は、VVCにおける水平ラップ周り動き補償の一つの例を示す。
【0191】
水平ラップ周り動き補償プロセスは、図20に示すとおりである。参照ブロックの一部が、反復的なパディングの代わりに、投影ドメイン内の参照ピクチャの左(または右)境界の外側にある場合、「境界外(“out-of-boundary”)」部分は、投影ドメイン内の右(または左)境界に向かって参照ピクチャの対応する球状隣接から取り出される。反復パディングは、上下ピクチャ境界のみに使用される。図20に示すように、水平ラップ周り動き補償は、360度のビデオコーディングにおいてしばしば使用される非規範的(non-noramative)なパディング方法と組み合わせることができる。VVCでは、これは、ラップ周りオフセットを示すために、高レベルのシンタックス要素に信号化することによって達成され、パディングの前にERPピクチャ幅に設定されるべきものである。このシンタックスは、水平ラップの位置をそれに応じて調整するために使用される。このシンタックスは、左右のピクチャ境界における特定の量のパディングには影響されないため、例えば、左右のパディングが異なる場合など、当然、ERPピクチャの非対称パディングをサポートする。参照サンプルが参照ピクチャの左右の境界の外側にある場合、水平方向ラップ周り動き補償は、動き補償のためのより有意義な情報を提供する。
【0192】
複数の面から構成される投影フォーマットの場合、どのようなコンパクトなフレームパッキング構成が使用されても、フレームパックされたピクチャ内の2つ以上の隣接する面の間に不連続部(discontinuities)が現れる。例えば、図24に示されている3×2フレームのパッキング構成を考えると、上半分の3面は3D幾何学的形状で連続し、下半分の3面は3D幾何学的形状で連続するが、フレームパッキングピクチャの上半分と下半分は3D幾何学的形状で不連続である。インループフィルタリング操作がこの不連続部を横切って実行される場合、フェイス(face)シームアーチファクトが、再構成されたビデオにおいて見えるようになる可能性がある。
【0193】
フェイスシームアーチファクトを緩和するために、インループフィルタリング操作は、フレームパッキングピクチャの不連続部を横切ってディセーブルされてよい。インループフィルタリング操作がディセーブルにされる垂直及び/又は水平仮想境界を信号化するためのシンタックスが提案されている。連続面の各セットに対して1つずつ、2つのタイルを使用し、タイル間のインループフィルタリング操作をディセーブルにすることと比較して、提案される信号化方法は、フェイスサイズがCTUサイズの倍数である必要がないため、より柔軟である。
【0194】
2.13 サブピクチャベースの動き制約された独立領域の例
【0195】
いくつかの実施態様においては、以下の特徴が含まれている。
【0196】
1)ピクチャは、サブピクチャに分割することができる。
【0197】
2)サブピクチャの存在の表示は、サブピクチャの他のシーケンスレベルの情報と共に、SPSの中で示される。
【0198】
3)サブピクチャがデコーディング処理において(インループフィルタリング操作を除く)ピクチャとして扱われるか否かは、ビットストリームによって制御することができる。
【0199】
4)サブピクチャ境界を横切るインループフィルタリングがディセーブルであるか否かは、各サブピクチャのビットストリームによって制御することができる。DBF、SAO、およびALFプロセスは、サブピクチャ境界を横切るインループフィルタリング操作を制御するために更新される。
【0200】
5)簡単にするために、開始点として、サブピクチャの幅、高さ、水平オフセット、および、垂直オフセットは、SPSのルマサンプルの単位で信号化される。サブピクチャ境界は、スライス境界であるように制約されている。
【0201】
6)サブピクチャをデコーディング処理において(インループフィルタリング操作を除く)ピクチャとして扱うことは、soding_tree_unit()シンタックスを若干更新することによって指定され、そして、以下のデコーディング処理について更新する。
【0202】
○ (高度な)時間的ルマ動きベクトル予測のための導出プロセス
【0203】
○ ルマサンプル双線形(bilinear)補間プロセス
【0204】
○ ルマサンプル8タップ補間フィルタリングプロセス
【0205】
○ クロマサンプル補間プロセス
【0206】
7)サブピクチャIDは、SPSで明示的に指定され、そして、VCL NALユニットを変更する必要なくサブピクチャシーケンスを抽出できるようにタイルグループヘッダに含まれる。
【0207】
出力サブピクチャセット(OSPS)が、サブピクチャとそのセットのための規範抽出、および、適合点を明記するために提案されている。
【0208】
3. 本文書で提供されるソリューションによって解決される技術的問題
【0209】
現在のVVCの設計には、次のような問題がある。
【0210】
1.ALF仮想境界をイネーブルにする現在の設定は、CTBの下境界がピクチャの下境界であるか否かに依存する。それが真である場合、ALF仮想境界は、図19のCTU-Dのように、ディセーブルにされる。しかし、256×240ピクチャのように、CTBの下境界がピクチャの下境界の外側にある可能性があり、この場合、ALF仮想境界は、下境界の外側にサンプルを持つ最後の2つのCTUについて、間違って真に設定される可能性がある。
【0211】
2.ALFの仮想境界を扱う方法は、下ピクチャ境界とスライス/タイル/ブリック境界についてディセーブルにされる。スライス/ブリック境界に沿ったVBをディセーブルにすると、パイプラインバブルが発生し、または、LCUサイズを64×64と仮定して、仮想パイプラインデータユニット(VPDU、VVCにおいて64×64)ごとに68ラインの処理が必要になる場合がある。例えば、以下のようである。
【0212】
a.スライス/ブリック/タイル境界を事前に知らないデコーダ(つまり、低遅延(low-delay)アプリケーション)では、ALFラインバッファが復元される必要がある。ラインバッファ内のコンテンツがALFフィルタリングに使用されるか否かは、現在CTUがスライス/ブリック/タイル境界CTUでもあるか否かに依存するが、この情報は、しかしながら、次のスライス/ブリック/タイルがデコードされるまで不明である。
【0213】
b.スライス/ブリック/タイル境界を事前に知っているデコーダでは、ALFラインバッファの使用を避けるために、デコーダはパイプラインバブルと共にある(live)ことを要し(可能性は非常に低い)、または、64×64 VDPU当たり68ラインの速度でALFを常に実行する必要がある(オーバープロビジョン(overprovision))。
【0214】
3.仮想境界およびビデオユニット境界を扱うための異なる方法、例えば、異なるパディング方法が存在する。一方、ライン(line)に対して、複数の境界にある場合に1つ以上のパディング方法を実行することができる。
【0215】
a.一つの例において、ブロックの下境界が360度仮想境界であり、ALF仮想境界がこのブロックにも適用される場合、この事例において、360度仮想境界のためのパディング方法は、最初に、360度仮想境界の下に仮想サンプルを生成するために適用され得る。その後、360度の仮想境界の下に位置するこれらの仮想サンプルは、利用可能なものとして扱われる。そして、図16A~Cに従って、ALの両側(2-side)パディング法をさらに適用することができる。一つの例が図25に示されている。
【0216】
4.仮想境界を取り扱う方法は、効率がより悪いパディングサンプルが利用されるので、次善(sub-optimal)の方法であり得る。
【0217】
5.非線形ALFがディセーブルされている場合、MALFおよび両側パディング法は、仮想境界を横切るサンプルにアクセスすることを必要とするサンプルをフィルタリングするために、同じ結果を生成することが可能である。しかしながら、非線形ALFがイネーブルされている場合、2つの方法は異なる結果をもたらすだろう。2つのケースを整列させることは有益である。
【0218】
4. 技術および実施形態の例
【0219】
以下のリストは、一般的な概念を説明するための例として考慮されるべきである。リストされた技術は、狭義に解釈されるべきではない。さらに、これらの技術は、任意の方法で組み合わせることができる。
【0220】
ALF仮想境界に使用されるパディング方法は、「両側パディング(“Two-side Padding”)」として示され得る。ここで、(i,j)に位置する1つのサンプルがパディングされる場合、図12~13に示されるように、サンプルが利用可能でさえ、同じフィルタ係数を共有する(m,n)に置かれたる対応するサンプルも、また、パディングされる。
【0221】
ピクチャ境界/360度ビデオ仮想境界、法線(normal)境界(例えば、上下境界)に使用されるパディング方法は、「片側パディング(“One-side Padding”)」と表示されてよく、ここで、使用されるサンプルが境界の外側にある場合には、ピクチャ内の利用可能なサンプルからコピーされる。
【0222】
360度ビデオの左右の境界に使用されるパディング方法は、「ラッピングベースのパディング(“wrapping-based Padding”)」と表示されてよく、使用されるサンプルが境界の外側にある場合には、動き補正結果を使用してコピーされる。
【0223】
以下の説明では、サンプルが「ビデオユニットの境界にある」ことは、サンプルとビデオユニットの境界との間の距離が閾値以下(less or no greater than)であることを意味し得る。「ライン(“line”)」は、同じ水平位置にあるサンプル、または同じ垂直位置にあるサンプルを指すことができる(例えば、同じ行のサンプル、及び/又は、同じ列のサンプル)。関数Abs(x)は、以下のように定義される。
【数19】
【0224】
以下の説明において、「仮想サンプル(“virtual sample”)」は、再構成されたサンプルとは異なる場合がある生成されたサンプルを指す(デブロッキング及び/又はSAOによって処理され得る)。仮想サンプルは、別のサンプルについてALFを実施するために、使用され得る。仮想サンプルは、パディングによって生成され得る。
【0225】
「ALF仮想境界取り扱い方法が1つのブロックについてイネーブルされている」ことは、仕様におけるapplyVirtualBoundaryが真に設定されていることを示し得る。「仮想境界をイネーブルすること」は、現在ブロックが仮想境界によって少なくとも2つの部分に分割され、そして、一方の部分に配置されたサンプルは、フィルタリングプロセス(例えば、ALF)において他方の部分のサンプルを利用することが許可されないことを示し得る。仮想境界は、1つのブロックの下境界の上にあるK行であってよい。
【0226】
以下の説明において、隣接サンプルは、フィルタ分類及び/又はフィルタリング処理に必要とされるものであり得る。
【0227】
本開示において、隣接サンプルは、それが、現在ピクチャ、現在サブピクチャ、現在タイル、現在スライス、現在CTU、または、現在の処理ユニット(ALF処理ユニットまたは狭いALF処理ユニットなど)、もしくは、その他の現在ビデオユニットから外れている場合に、「使用不可(“unavailable”)」である。
1.「現在コーディングツリーブロックの下境界は、ピクチャの下境界である」との決定は、「現在コーディングツリーブロックの下境界は、ピクチャの下境界であるか、または、ピクチャの外側である」に置き換えられる。
a.代替的に、この場合には、さらに、ALF仮想境界処理方法をディセーブルにし得る。
2.インループフィルタリングプロセスで仮想サンプルの使用をイネーブルにするか否か(例えば、仮想境界を有効にするか否か(例として、applyVirtualBoundaryを真または偽にする))は、CTBサイズに依存し得る。
a.一つの例において、applyVirtualBoundaryは、所与のCTU/CTBサイズ、例えば、K×L(例えば、K=L=4)に等しいCTU/CTBサイズについて、常に偽(false)に設定される。
b.一つの例において、applyVirtualBoundaryは、K×L以下の特定のCTU/CTBサイズ(例えば、K=L=8)について、常に偽に設定される。
c.代替的に、ALFは、4×4、8×8といった、所定のCTU/CTBサイズに対してディセーブルされている。
3.インループフィルタリングプロセス(例えば、ALF)における仮想サンプル(例えば、再構成サンプルからパディングされたもの)の使用を可能にするか否かは、ブロックの下境界が、ピクチャ(例えば、スライス/タイル/ブリック)または仮想境界と比較してより細かい粒度にあるビデオユニットの下境界であるか否かに依存する。
a.一つの例において、CTBの下境界がビデオユニットの境界または仮想境界である場合、コーディングツリーブロック(CTB)に対してALF仮想境界処理方法がイネーブルされ得る(例えば、applyVirtualBoundaryが真に設定される)。
i.代替的に、下境界が下ピクチャ境界でない場合、または、下境界がピクチャ外の場合は、上記の方法がイネーブルされる。
b.現在コーディングツリーブロックの下境界がピクチャの下境界の1つであり、かつ、pps_loop_filter_cross_virtual_boundies_disabled_flagが1に等しい場合でも、ALF仮想境界処理メソッドはイネーブルされる(例えば、applyVirtualBoundaryが真に設定される)。
c.一つの例において、CTBについてALF仮想境界処理方法(例えばapplyVirtualBoundaryの値)を有効にするか否か(例えばapplyVirtualBoundaryの値)は、CTBの下境界とピクチャの下境界との間の関係のみに依存する。
i.一つの例において、CTBの下境界がCTBを含むピクチャの下境界である場合、または、下境界がピクチャの外側にある場合にのみ、applyVirtualBoundaryが偽に設定される。
ii.一つの例において、CTBの下境界がCTBを含むピクチャの下境界ではない場合に、applyVirtualBoundaryは真に設定される。
d.一つの例において、図18A~18CにおけるCTU-Cをデコーディングする場合、M×Mサンプルは、CTUの上方からKラインで、かつ、仮想境界の下のKラインを除外して、フィルタリングされ得る。
4.ブリック/スライス境界(例えば、loop_filter_cross_bricks_enabled_flag/roop_filter_slices_enabled_flag)を横切るループフィルタについて信号化された制御使用フラグが真であっても、フィルタリングプロセス(例えば、ALF)におけるブリック/スライス境界を横切るサンプルの使用をディセーブルにすることが提案されている。
a.代替的に、信号化されたloop_filter_cross_bricks_enabled_flag/loop_filter_cross_slices_enabled_flagは、ALFを除いて、デブロッキングフィルタおよびSAOのフィルタリングプロセスを制御のみすることができる。
b.一つの例において、対応する位置で再構成されたサンプルの代わりに、仮想サンプルを用いて、別のサンプルについてALFを行うことができる。
5.1つのブロック(例えば、CTB)がビデオユニットの境界に位置するサンプル(例えば、スライス/ブリック/タイル/360度ビデオ仮想境界/ピクチャ境界)を含む場合、ALFのようなインループフィルタリングのためにビデオユニット内外で仮想サンプルを生成する方法(例えば、パディング方法)は、異なる種類の境界に対して統一され得る。
a.代替的に、さらに、仮想境界の方法(例えば、両面パディング法)をブロックに適用して、インループフィルタリングの境界でサンプルを処理してよい。
b.代替的に、上記方法は、ブロックがビデオユニットの下境界に位置するサンプルを含む場合に適用されてよい。
c.一つの例において、1つのブロックのKラインをデコーディングする際に、ブロックの仮想境界(例えば、図17A~17BのCTU-Bの最後のKライン)およびブロックの下境界がビデオユニットの下境界である場合、これらのKラインの外側の他のサンプルの使用を回避するために、ALF分類/フィルタリングプロセスにおいて仮想サンプルが生成されてよく、例えば、両側パディング法が適用されてよい。
i.代替的に、最後のKラインでALFをディセーブルにしてよい。
d.一つの例において、1つのブロックが複数の境界にある場合、ALF分類に使用されるピクセル/サンプルは、これらの複数の境界のいずれも横切らないように制限され得る。
i.一つの例において、サンプルについて、その特定の隣接サンプルが「使用不可(“unavailable”)」(例えば、複数の境界のいずれかを横切る)である場合、単独または全ての種類の勾配/方向性が、サンプルについて計算されなくてもよい。
1.一つの例において、サンプルの勾配は、ゼロとして取り扱われ得る。
2.一つの例において、サンプルの勾配は「使用不可」として扱うことができ、ALF分類プロセスで導かれるアクティビティ(例えば、セクション2.6.1.1の等式(8)で定義されるもの)に加えることはできない。
ii.一つの例において、ALF分類プロセスで使用される部分的サンプルのみが「利用可能(“available”)」である場合(例えば、これらの境界を横切らない)、ALF分類プロセスで導かれるアクティビティ/方向性は、係数(factor)によってスケール化されてよい。
iii.一つの例として、境界ブロックについて、ALF分類プロセスにおいてN個のサンプルについて勾配/方向性を計算する必要があり、M個のサンプルについてのみ勾配を計算することができると仮定する(例えば、サンプルの特定の隣接サンプルが「利用可能」でない場合、それについて勾配は計算できない)。その場合、アクティビティにN/Mを乗算することができる。
1.代替的に、/Mに依存する係数を乗算することもできる。例えば、数はMN(Nは整数)であってよく、例えば、M=2であってよい。
e.一つの例において、1つのラインが複数の境界にある場合(例えば、境界までのライン間の距離が閾値未満である)、パディングプロセスは、それが属する境界の数に関係なく、1回だけ実行される。
i.代替的に、隣接するいくつのラインがパディングされるかは、全ての境界に対する現在のラインの位置に依存し得る。
ii.例えば、隣接するいくつのラインがパディングされるかは、現在のラインが2つの境界内にある場合のように、現在のラインと2つの境界との間の距離によって、2つの境界の上下で決定され得る。
iii.例えば、隣接するいくつのラインがパディングされるかは、現在のラインが2つの境界内にあり、2つの境界が上下である場合のように、現在のラインと最も近い境界との間の距離によって決定され得る。
iv.例えば、隣接するいくつのラインがパディングされるかは、各境界に対して独立して計算され、最大の1つが最終的なパディングライン番号として選択される。
v.一つの例において、隣接するいくつのラインがパディングされるかは、ラインの各側(例えば、上側および下側)について決定され得る。
vi.一つの例として、両側パディング法の場合、隣接するいくつのラインがパディングされるかは、2つの側について一緒に決定され得る。
vii.代替的に、ALFで使用されている両側パディング法も適用される。
f.一つの例において、1つのラインが複数の境界にあり、そして、ラインの各側(例えば、上側と下側)に少なくとも1つの境界がある場合、ALFはディセーブルにされてよい。
g.一つの例において、現在のラインに必要なパディングされたラインの数が閾値より大きい場合、現在のラインについてALFはディセーブルにされ得る。
i.一つの例において、任意の側のパディングされたラインの数が閾値よりも大きい場合、現在のラインについてALFはディセーブルにされ得る。
ii.一つの例において、両側のパディングされたラインの合計数が閾値よりも大きい場合、現在のラインについてALFはディセーブルにされ得る。
h.代替的に、さらに、上記方法は、ブロックがビデオユニットの下境界に位置するサンプルを含み、かつ、ALFのようなインループフィルタリングがブロックについてイネーブルされている場合に適用され得る。
i.代替的に、上記の方法は、例えば、ブロックがビデオユニットの下境界に位置するサンプルを含み、かつ、境界を横切るフィルタリングが許可されない場合(例えば、pps_loop_filter_cross_virtual_boundies_disabled_flag/roop_filter_cross_slices_enabled_filter_slices_enabled_flagが真である)のような所定の条件下で適用され得る。
j.提案される方法は、垂直境界に位置するサンプル/ブロックにも適用できる。
6.サンプルが1つのブロックの少なくとも2つの境界(例えば、現在のラインの上にある少なくとも1つがALF仮想境界であり、かつ、他の境界より下にある場合)の場合、パディングされるラインの数は、ALF仮想境界に対する現在のライン間の距離だけでは決定されない。その代わり、2つの境界に対する現在のラインの間の距離によって決定される。
a.一つの例において、片面パディング(per-side padding)のためのライン数は、(M-min(D0,D1))に設定される。
b.一つの例において、片面パディングのためのライン数は、(M-max(D0,D1))に設定される。
c.上記の例において、D0、D1は、現在のラインと上/下の境界との間の距離を示す。 d.上記の例において、Mは、ALFの仮想境界が1つのCTUの下からのライン数を示している。
7.ALF分類及び/又はALFリニア、または、非リニアフィルタリングプロセスにおけるサンプルの選択の少なくとも2つの方法が定義されてよく、そのうち一方は、いずれかのインループフィルタリング法が適用される前にサンプルを選択し、そして、他方は、1つ以上のインループフィルタリング法が適用された後であるが、が適用される前にサンプルを選択する。
a.一つの例において、異なる方法の選択は、フィルタリングされるサンプルの位置に依存し得る。
b.一つの例において、ビデオユニットの下境界におけるサンプル(CTBなど)は、それが別のサンプルのためにALFで使用される場合、第1の方法で選択され得る。そうでない場合(境界にない場合)、第2の方法が選択される。
8.フィルタリングプロセスにおいてVPDU境界(例えば64×64領域)を横切るサンプルの使用をディセーブルにすることが提案されている。
a.一つの例において、ALF分類プロセスによって必要とされるサンプルがVPDU境界の外側または仮想境界の下側にある場合、それは、仮想サンプルによって置き換えられてよく、または、サンプルの分類結果が、利用可能なサンプルからのパディングなど、他のサンプルに関連付けられた結果からコピーされてもよい。
b.一つの例において、フィルタリングプロセスによって必要とされるサンプルがVPDU境界の外側または仮想境界の下側にある場合、それは、利用可能なサンプルからパディングさまれたような、仮想サンプルに置き換えられてよい。
c.一つの例において、ALF仮想境界処理方法は、それがVPDUの境界に位置するサンプルを含む場合、ブロックに対してイネーブルにされ得る(例えば、applyVirtualBoundaryが真に設定される)。
d.代替的に、水平VPDU境界を横切るサンプルの使用は、フィルタリングプロセスにおいてディセーブルにされてよい。
i.一つの例において、フィルタリングプロセスによって必要とされるサンプルが水平VPDU境界の下、または仮想境界の下にある場合、それは、利用可能なサンプルからパディングされたような、仮想サンプルに置き換えられ得る。
e.代替的に、垂直VPDU境界を横切るサンプルの使用は、フィルタリングプロセスにおいてディセーブルにされてよい。
i.一つの例において、フィルタリングプロセスによって必要とされるサンプルが垂直VPDU境界の外側、または仮想境界の下にある場合、それは、利用可能なサンプルからパディングされたような、仮想サンプルに置き換えられ得る。
9.ALF分類/フィルタリングプロセスにおいて、パディングされたサンプル(例えば、使用不可でない、上/下の仮想境界、ビデオユニットの上/下の境界)を使用する代わりに、全てのインループフィルタの前に再構成サンプルを使用することが提案されている。
a.代替的に、さらに、両側パディングの概念は、全てのインループフィルタの前に、再構成されたサンプルからのパディングサンプルを介して適用される。
i.一つの例において、フィルタサポート内のサンプルが全てのインループフィルタの前に再構成されたサンプルからの場合、フィルタサポート内の対称な(例えば、原点に関して対称、例えば、現在サンプル)サンプルも、また、全てのインループフィルタの前に再構成されたサンプルを使用する。
1.フィルタリングされる現在サンプルの座標が(0,0)であり、かつ、(i,j)に位置するサンプルが全てのインループフィルタの前のサンプルに再構成されると仮定すると、(-i,-j)に位置するサンプルは全てのインループフィルタの前に再構成されたものである。
2.フィルタリングされる現在サンプルの座標が(x,y)であり、かつ、(x+i,y+j)に位置するサンプルが全てのインループフィルタの前に再構成されると仮定すると、(x-i,y-j)に位置するサンプルは全てのインループフィルタの前に再構成されたものである。
b.代替的に、さらに、インループ再構成(別名、LMCS)がイネーブルにされた場合、全てのインループフィルタ前に再構成されたサンプルは、再構成されたドメインから変換されたオリジナルドメイン内のものである。
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,y1)に関連するフィルタ係数が位置(x2,y2)のフィルタ係数に加算される。
i.代替的に、さらに、(x2,y2)のクリッピングパラメータが、オンザフライで導出され得る。
1.一つの例においては、(x2,y2)についてデデコーディングされたクリッピングパラメータと等しく設定されてよい。
2.代替的に、入力として、(x1,y1)および(x2,y2)に対するデコーディングされたクリッピングパラメータを持つ関数の戻り値(returned value)に設定され得る。より大きな値またはより小さい値といったものである。
11.クリッピングパラメータ/フィルタ係数/フィルタサポートの選択は、サンプルのフィルタリングが、パディングされたサンプルにアクセスする必要があるか否かに依存する(例えば、使用不可でない、上/下の仮想境界、ビデオユニットの上/下の境界)。
a.一つの例において、異なるクリッピングパラメータ/フィルタ係数/フィルタサポートが、同じクラスインデックスを有するサンプルに使用されてよいが、それらのいくつかは、パディングされたサンプルにアクセスする必要があり、そして、他はそうではない。
b.一つの例において、パディングされたサンプルにアクセスすることを必要とするサンプルをフィルタリングするためのクリッピングパラメータ/フィルタ係数/フィルタサポートは、CTU/領域/スライス/タイルレベルで信号化され得る。
c.一つの例において、パディングされたサンプルにアクセスすることを必要とするサンプルをフィルタリングするためのクリッピングパラメータ/フィルタ係数/フィルタサポートは、パディングされたサンプルにアクセスすることを必要としないサンプルをフィルタリングするために使用されるものから導出され得る。
i.一つの例において、項目9aまたは9bが適用され得る。
12.インループフィルタリング(ALFなど)の境界におけるサンプルの扱い方は、色成分及び/又は色フォーマットに依存する。
a.例えば、「境界における(“at boundary”)」の定義は、異なる色成分に対して異なることがある。一つの例において、ルマサンプルは、下境界との間の距離がT1未満である場合には下境界にあり、クロマサンプルは、下境界との間の距離がT2未満である場合には下境界にある。T1とT2は異なってよい。
i.一つの例において、カラーフォーマットが4:4:4でない場合、T1とT2は異なり得る。
13.1つのCTU/VPDUの下/上/左/右境界が独立したコーディングを伴うスライス/タイル/ブリック/サブ領域の境界でもある場合、多重パディングプロセスの固定順序が適用される。
a.一つの例においては、第1のステップで、スライス/タイル/ブリックのパディング方法(例えば、片側(1-side)パディング)が、最初に適用される。その後で、ALF仮想境界を処理するためのパディング法(例えば、両側(2-side)パディング法)が、第2のステップ中にさらに適用される。この場合、第1のステップ後にパディングされたサンプルは、利用可能であるとマークされ、そして、ALF仮想境界プロセスでいくつのラインがパディングされるかを決定するために使用され得る。これらの境界に位置しないCTUを扱うために同じルール(例えば、図16)が利用される。
14.提案された方法は、2つのサブピクチャ間の1つ以上の境界に適用することができる。
a.提案された方法を適用する境界は、水平境界であってよい。
b.提案された方法を適用する境界は、垂直境界であってよい。
15.上記に提案された方法は、垂直境界でサンプル/ブロックに適用され得る。
16.提案された方法が「360仮想境界(360 virtual boundary)」で適用されるか否か、または、どのように適用されるかは、「360仮想境界」の位置に依存し得る。
a.一つの例において、「360仮想境界」がCTU境界と一致する場合に、提案された方法が適用され得る。例えば、「360仮想境界」でのサンプルについて、ALFでは両側パディングのみが適用され得る。
b.一つの例において、「360仮想境界」がCTU境界と一致しない場合、提案された方法は適用されなくてもよい。例えば、「360仮想境界」でのサンプルについては、ALFでは片側パディングのみが適用され得る。
c.一つの例において、少なくとも1つの境界が「360仮想境界」であり、かつ、「360仮想境界」の少なくとも1つがCTU境界と一致しない、複数の境界におけるサンプルについて、提案された方法が適用されないことがある。
i.例えば、これらの複数の境界のいずれかを横切るサンプルは、片側パディングによってパディングされ得る。
1.代替的に、さらに、「仮想境界」が存在する場合、片側パディング後にALFで両側パディングが適用され得る。
【0228】
5. 実施形態
【0229】
以下のセクションにおいては、開示される技術のいくつかの実施形態に適合するように、VVC規格の現行バージョンがどのように修正されるかについていくつかの実施例が説明される。新たに追加された部分は、太字のイタリック体で示されている。削除された部分は[[ ]]を使用して表示されている。
【0230】
5.1 実施例#1
【表21】
【0231】
5.2 実施例#2
【0232】
図21は、ピクチャ内のCTUの処理を示している。図19と比較した差は、破線で強調されている。
【0233】
5.3 実施例#3
【表22】
【0234】
代替的に、「現在のコーディングツリーブロックの下境界は、ピクチャの下境界である」という条件は、「現在のコーディングツリーブロックの下境界は、ピクチャの下境界であるか、または、ピクチャの外側である」という条件に置き換えることができる。
【0235】
5.4 実施例#4
【0236】
この実施形態は、ALF分類プロセスにおいて(セクション4の項目7に対応している)、VPDU領域の下のサンプルを使用することを禁止する例を示す。
【表23】
【0237】
5.5 実施例#5
【0238】
サンプルが複数の種類の境界(例えば、スライス/ブリック境界、360度仮想境界)に位置する場合、パディングプロセスは1回だけ呼び出される。そして、側面あたり(per side)のパディングされるラインの数は、境界に対する現在サンプルの位置に依存する。
【0239】
一つの例においては、ALF両側パディング法が適用される。代替的に、さらに、対称的な両側パディング法では、サンプルが2つの境界、例えば、上側の1つの境界および下側の1つの境界にある場合、図27に示すように、いくつのサンプルがパディングされるかは、より近い境界によって決定される。一方で、分類情報を導出する場合、図27の2つの境界間の4個のラインのみが使用される。
【0240】
図26は、4ラインのサンプルが2つの境界からなる場合のパディング方法の例を示す。一つの例において、図26の第1境界は、ALF仮想境界であってもよく、図25の第2の境界は、スライス/タイル/ブリック境界または360度仮想境界であってもよい。
【0241】
5.6 実施例#6
【表24】
【0242】
図22は、ビデオ処理装置2200のブロック図である。装置2200は、ここにおいて説明される1つ以上の方法を実装するために使用され得る。装置2200は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器などで具体化することができる。装置2200は、1つ以上のプロセッサ2202、1つ以上のメモリ2204、およびビデオ処理ハードウェア2206を含んでよい。プロセッサ2202は、本文書で説明される1つ以上の方法を実装するように構成されてよい。メモリ(メモリ)2204は、ここにおいて説明される方法および技術を実施するために使用されるデータおよびコードを保管するために使用されてよい。ビデオ処理ハードウェア2206は、ハードウェア回路において、本文書で説明されるいくつかの技術を実装するために使用されてよい。
【0243】
いくつかの実施形態において、ビデオコーディング方法は、図22に関して説明したように、ハードウェアプラットフォーム上に実装される装置を使用して実装されてよい。
【0244】
図23は、ビデオ処理の例示的な方法2300のフローチャートである。本方法は、ビデオの現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換のために、変換中に使用する1つ以上の補間フィルタを決定するステップを含み(2302)、1つ以上の補間フィルタは、ビデオに対する複数の補間フィルタからなり、1つ以上の補間フィルタを使用して変換を実行する(2304)。
【0245】
本文書で説明される種々のソリューションおよび実施形態は、ソリューションのリストを使用して、さらに説明される。
【0246】
セクション4、アイテム1は、以下のソリューションの追加的な実施例を提供する。
【0247】
1.ビデオピクチャのビデオブロックとそのビットストリーム表現との間の変換を実行するステップを含み、前記ビデオブロックは、コーディングツリーブロックの論理グループを使用して処理され、前記コーディングツリーブロックは、下コーディングツリーブロックの下境界が前記ビデオピクチャの下境界の外側にあるか否かに基づいて処理される、ビデオ処理方法。
【0248】
2.前記コーディングツリーブロックを処理するステップは、前記コーディングツリーブロックにおけるサンプルを使用することによって、前記コーディングツリーブロックのサンプル値の適応ループフィルタリングを実行するステップを含む、ソリューション1に記載の方法。
【0249】
3.前記コーディングツリーブロックを処理するステップは、前記コーディングツリーブロックを仮想境界に従って2つの部分に分割することをディセーブルすることによって、前記コーディングツリーブロックのサンプル値の適応ループフィルタリングを実行するステップを含む、ソリューション1に記載の方法。
【0250】
セクション4、アイテム2は、以下のソリューションの追加的な実施例を提供する。
【0251】
4.現在ビデオブロックのコーディングツリーブロックの状態に基づいて、インループフィルタリングの最中の仮想サンプルの使用状態を決定するステップと、前記仮想サンプルの使用状態と一致する前記ビデオブロックと前記ビデオブロックのビットストリーム表現との間の変換を実行するステップとを含む、ビデオ処理の方法。
【0252】
5.使用状況の論理的な真値(true value)は、現在ビデオブロックが仮想境界によって少なくとも2つの部分に分割されることを示し、一方の部分のサンプルをフィルタリングすることは、他方の部分の情報を利用するために許可されない、ソリューション4に記載の方法。
【0253】
6.前記使用状態の論理的な真値は、前記インループフィルタリングの最中に仮想サンプルが使用されることを示し、前記インループフィルタリングは、前記現在ビデオブロックの再構成されたサンプルの修正値を使用して実行される、ソリューション4に記載の方法。
【0254】
7.前記使用状況の論理的な偽値(false value)は、前記ブロックにおけるサンプルをフィルタリングすることが、同一ブロック内の前記情報を利用するために許可されることを示す、ソリューション4に記載の方法。
【0255】
8.使用状態の論理的な真値は、インループフィルタリングが、再構成されたサンプルをさらに修正することなく、現在ビデオブロックの再構成されたサンプルに対して実行されることを示す、ソリューション4に記載の方法。
【0256】
9.前記条件は、前記使用状態を、特定のサイズを有する前記コーディングツリーブロックに起因する論理的な偽値に設定することを規定する、ソリューション4-8のいずれかに記載の方法。
【0257】
10.前記条件は、前記使用状態を、特定のサイズより大きいサイズを有する前記コーディングツリーブロックに起因する論理偽値に設定することを規定する、ソリューション4-8のいずれかに記載の方法。
【0258】
11.ツリーブロックが、特定のサイズより小さいサイズを有するソリューション4-8のいずれかに記載の方法。
【0259】
セクション4、アイテム3は、以下のソリューションの追加的な実施例を提供する。
【0260】
12.前記条件は、前記現在ビデオブロックの下境界が、前記ビデオピクチャよりも小さいビデオユニットの下境界であるか、または、前記現在ビデオブロックの下境界が仮想境界であるかに依存する、ソリューション5に記載の方法。
【0261】
13.前記条件は、前記現在ビデオブロックの下境界がスライスの下境界であるか、または、タイルまたはブリック境界であるかによって決まる、ソリューション12に記載の方法。
【0262】
14.前記条件は、前記現在ビデオブロックの下境界がスライス、タイル、またはブリック境界の下境界である場合に、前記使用状況を前記論理的な真値に設定することを規定する、ソリューション12に記載の方法。
【0263】
15.前記条件は、前記現在ビデオブロックの下境界がピクチャ境界の下境界である場合、または、ピクチャ境界の下境界の外側である場合に、前記使用状況を論理的な偽値に設定することを規定する、ソリューション4-12に記載の方法。
【0264】
セクション4、アイテム4は、以下のソリューションの追加的な実施例を提供する。
【0265】
16.1つ以上のビデオスライスまたはビデオブリックに論理的にグループ化されたビデオピクチャと、前記ビデオピクチャのビットストリーム表現との間の変換の最中に、前記適応ループフィルタプロセスにおける別のスライスまたはブリックにおけるサンプルの使用をディセーブルするように決定するステップと、前記決定と一致する前記変換を実行するステップと、を含む、ビデオ処理方法。
【0266】
セクション4、アイテム4は、以下のソリューションの追加的な実施例を提供する。
【0267】
17.ビデオピクチャの現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、前記現在ビデオブロックが前記ビデオピクチャのビデオユニットの境界に位置するサンプルを含むことを決定するステップと、前記決定に基づいて前記変換を実行するステップとを含み、前記変換を実行するステップは、前記ビデオピクチャの全ての境界タイプについて同じである統一された方法を使用して、インループフィルタリングプロセスのための仮想サンプルを生成するステップを含む、ビデオ処理の方法。
【0268】
18.前記ビデオユニットが、スライスまたはタイルまたは360度ビデオである、ソリューション17に記載の方法。
【0269】
19.前記インループフィルタリングは、適応ループフィルタリングを含む、ソリューション17に記載の方法。
【0270】
20.統一された方法が、両側パディング法である、ソリューション17-19のいずれかに記載の方法。
【0271】
21.統一された方法が、第1のラインより下のサンプルにアクセスするときに、第1のラインより下のサンプルに対して仮想サンプルを生成するためにパディングが利用され、第2のラインより上のサンプルにアクセスすることが、許可されないように設定され、第2のラインより上のサンプルに対して仮想サンプルを生成するためにパディングが利用される、ソリューション17-20のいずれかに記載の方法。
【0272】
22.統一された方法が、第1のラインより上のサンプルにアクセスするときに、第1のラインより上のサンプルに対して仮想サンプルを生成するためにパディングが利用され、第2のラインより下のサンプルにアクセスすることが、また、許可されないように設定され、第2のラインより下のサンプルに対して仮想サンプルを生成するためにパディングが利用される、ソリューション17-20のいずれかに記載の方法。
【0273】
23.第1のラインと、フィルタリングされるべき現在サンプルが位置する現在のラインとの間の距離、および、第2のラインと第1のラインとの間の距離が等しい、ソリューション21-22のいずれかに記載の方法。
【0274】
セクション4、アイテム6は、以下のソリューションの追加的な実施例を提供する。
【0275】
24.ビデオピクチャの現在ビデオブロックとそのビットストリーム表現との間の変換の最中に、変換中に前記ビデオピクチャに利用可能な複数の適応ループフィルタのサンプル選択方法のうちの1つを適用することを決定することと、複数のALFサンプル選択方法のうちの1つを適用することによって前記変換を実行することと、を含む、ビデオ処理方法。
【0276】
25.複数のALFサンプル選択方法が、変換中にインループフィルタが現在ビデオブロックに適用される前にサンプルが選択される第1の方法、および、変換中にインループフィルタが現在ビデオブロックに適用された後にサンプルが選択される第2の方法を含む、ソリューション24に記載の方法。
【0277】
セクション4、アイテム7は、以下のソリューションの追加的な実施例を提供する。
【0278】
26.境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行するステップと、前記境界ルールが、前記ビデオピクチャの仮想パイプラインデータユニットを横切るサンプルを使用不可にするステップと、前記インループフィルタリング操作の結果を使用して前記変換を実行するステップと、を含む、ビデオ処理の方法。
【0279】
27.VPDUが固定サイズを有するビデオピクチャの領域に対応する、ソリューション26に記載の方法。
【0280】
28.境界ルールは、さらに、ディセーブルにされたサンプルの代わりに、インループフィルタリングのために仮想サンプルを使用することを規定する、ソリューション26-27のいずれかに記載の方法。
【0281】
29.前記仮想サンプルは、パディングによって生成される、ソリューション28に記載の方法。
【0282】
セクション4、アイテム8は、以下のソリューションの追加的な実施例を提供する。
【0283】
30.境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行するステップと、境界ルールが、ビデオユニット境界を横切る現在ビデオブロックの位置に対して、パディングを使用せずに生成されるサンプルを使用するように規定するステップと、インループフィルタリング操作の結果を使用して変換を実行するステップと、を含む、ビデオ処理方法。
【0284】
31.サンプルは、両側パッド法を用いて生成される、ソリューション30に記載の方法。
【0285】
32.前記インループフィルタリング操作は、前記インループフィルタリング操作の最中に対称的に配置されたサンプルに対して同一の仮想サンプル生成技術を使用することを含む、ソリューション30に記載の方法。
【0286】
33.現在ビデオブロックのサンプルに対するインループフィルタリング操作は、インループフィルタリングを適用する前に、現在ビデオブロックのサンプルの再成形を実行することを含む、ソリューション30-32のいずれかに記載の方法。
【0287】
セクション4、アイテム9は、以下のソリューションの追加的な実施例を提供する。
【0288】
34.境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行するステップと、前記境界ルールは、インループフィルタリング操作のために、前記インループフィルタリング中に使用される現在ビデオブロックのサンプルが前記ビデオピクチャのビデオユニットの境界を越えないようなディメンション(dimension)を有するフィルタを選択するステップと、前記インループフィルタリング操作の結果を使用して前記変換を実行するステップと、を含む、ビデオ処理の方法。
【0289】
セクション4、アイテム10は、以下のソリューションの追加的な実施例を提供する。
【0290】
35.境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行するステップと、前記境界ルールは、前記インループフィルタリング操作のために、パディングされたサンプルが前記インループフィルタリングのために必要であるか否かに基づいて、クリッピングパラメータまたはフィルタ係数を選択するステップと、前記インループフィルタリング操作の結果を用いて前記変換を実行するステップと、を含む、ビデオ処理の方法。
【0291】
36.クリッピングパラメータまたはフィルタ係数は、ビットストリーム表現に含まれる、ソリューション35に記載の方法。
【0292】
セクション4、アイテム11は、以下のソリューションの追加的な実施例を提供する。
【0293】
37.境界ルールに基づいて、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換の最中に、ビデオピクチャの現在ビデオブロックのサンプルに対してインループフィルタリング操作を実行するステップと、前記境界ルールが現在ビデオブロックの色成分識別に依存するステップと、前記インループフィルタリング操作の結果を使用して前記変換を実行するステップと、を含む、ビデオ処理の方法。
【0294】
38.境界ルールは、ルマ成分及び/又は異なる色成分に対して異なる、ソリューション37に記載の方法。
【0295】
39.前記変換は、前記現在ビデオブロックをビットストリーム表現にコーディングすることを含む、ソリューション1-38のいずれかに記載の方法。
【0296】
40.前記変換は、ビットストリーム表現をデコーディングして、現在ビデオブロックのサンプル値を生成することを含む、ソリューション1-38のいずれかに記載の方法。
【0297】
41.ソリューション1-38のいずれかに記載の方法を実装するように構成されたプロセッサを含む、ビデオエンコーディング装置。
【0298】
42.ソリューション1-38のいずれかに記載の方法を実施するように構成されたプロセッサを含む、ビデオデコーディング装置。
【0299】
43.コードが保管されているコンピュータで読取可能な媒体であって、前記コードがプロセッサによって実行されると、プロセッサに、1-38のいずれかに記載の方法を実施させる、コンピュータで読取り可能な媒体。
【0300】
図28は、ここにおいて開示される様々な技術が実装され得る例示的なビデオ処理システム2800を示すブロック図である。様々な実装は、システム2800のコンポーネントの一部または全部を含んでよい。システム2800は、ビデオコンテンツを受信するための入力2802を含んでよい。ビデオコンテンツは、生(raw)または非圧縮フォーマット、例えば、8または10ビットの多成分ピクセル値で受信されてよく、もしくは、圧縮またはコーディングフォーマットで受信されてもよい。入力2802は、ネットワークインターフェイス、ペリフェラルバスインターフェイス、または、ストレージインターフェイスを表すことができる。ネットワークインターフェイスの例は、イーサネット(登録商標)、受動光ネットワークなどの有線インターフェイス、および、Wi-Fiまたはセルラーインターフェイスなどの無線インターフェイスを含む。
【0301】
システム2800は、本文書で説明される種々のコーディングまたはエンコーディング方法を実装し得るコーディング構成要素2804を含んでよい。コーディング構成要素2804は、入力2802からコーディング構成要素2804の出力へのビデオの平均ビットレートを低減して、ビデオのコーディング表現を生成し得る。従って、コーディング技術は、ときどき、ビデオ圧縮またはビデオトランスコーディング技術と呼ばれる。コーディング構成要素2804の出力は、構成要素2806によって表されるように、保管されるか、または、接続された通信を介して送信されてよい。入力2802で受信されたビデオが保管され、または、通信されたビットストリーム(または、コード化された)表現は、ディスプレイインターフェイス2810に送られるピクセル値または表示可能なビデオを生成するために、コンポーネント2808によって使用されてよい。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ときどき、ビデオ解凍(decompression)と呼ばれる。さらに、特定のビデオ処理操作は、「コーディング(“coding”)」操作またはツールと称されるが、コーディングツールまたは操作は、エンコーダで使用され、コーディングの結果を反転する対応するデコーディングツールまたは操作が、デコーダで実行されることが理解されるであろう。
【0302】
ペリフェラルバスインターフェイスまたはディスプレイインターフェイスの例は、ユニバーサルシリアルバス(USB)、または高精細度マルチメディアインターフェイス(HDMI(登録商標))、またはディスプレイポートなどを含んでよい。ストレージインターフェイスの例は、SATA(serial advanced technology attachment)、PCI、IDEインターフェイスなどを含む。ここにおいて説明される技術は、携帯電話、ラップトップ、スマートフォン、または、デジタルデータ処理及び/又はビデオ表示を実行することができる他の装置のような種々の電子装置で具体化することができる。
【0303】
図29は、本技術によるビデオ処理のための方法2900のフローチャート表現である。方法2900は、オペレーション2910において、ルールに従ってビデオのビデオピクチャ内のブロックのサンプルの分類を決定することを含む。ビデオピクチャは複数の領域に分割されている。このルールは、分類のために複数領域の1つ以上の境界を横切る現在サンプルの隣接サンプルの使用を禁止する。複数領域の1つ以上の境界は、適応ループフィルタリング(ALF)プロセスのための仮想境界を構成する。また、方法2900は、オペレーション2920において、分類に従って適応ループフィルタを選択的に適用することによって、ブロックとビデオのビットストリーム表現との間の変換を実行することを含む。
【0304】
いくつかの実施形態において、現在サンプルの隣接サンプルが分類のために利用できない場合、現在サンプルの勾配は計算されない。いくつかの実施形態において、勾配は、分類のためにゼロであると考えられる。いくつかの実施形態において、勾配は、分類において除外される。
【0305】
いくつかの実施形態において、分類のためのブロックの方向性またはアクティビティ値は、分類のために利用可能な隣接サンプルのセットが現在サンプルの隣接サンプルのサブセットである場合に、スケール化される。いくつかの実施形態において、分類は、ブロックのN個のサンプルの勾配を必要とし、勾配は、ブロック中のM個のサンプルについてのみ計算される。ここで、MおよびNは整数であり、MはNより小さい。ブロックの方向性またはアクティビティ値は、MおよびNに基づく係数によってスケール化される。いくつかの実施形態において、係数はN/Mである。いくつかの実施態様において、係数はMNである。
【0306】
いくつかの実施態様において、1つ以上の境界は、少なくとも垂直境界を含む。いくつかの実施形態において、分類が360度ビデオコーディングで使用されるビデオ領域の360仮想境界に関して適用可能か否かは、360仮想境界の位置に基づいている。いくつかの実施形態において、分類は、360仮想境界がコーディングツリーユニットの実際の境界と共配置されている場合に、360仮想境界に関して適用可能である。いくつかの実施形態において、ALFプロセスにおける360仮想境界に位置するサンプルについては、両側パディング操作のみが適用される。いくつかの実施形態において、分類は、360仮想境界がコーディングツリーユニットの実際の境界から分離されている場合には、360仮想境界に関して適用されない。いくつかの実施形態において、ALFプロセスにおける360仮想境界に位置するサンプルに対して、片側パディング操作が適用される。いくつかの実施形態において、1つ以上の境界は、別の仮想境界をさらに含み、ALFプロセスにおける片側パディング操作の後で、両側パディング操作が適用される。いくつかの実施態様において、複数の領域は、スライス、ブリック、タイル、またはサブピクチャを含む。
【0307】
いくつかの実施形態において、変換は、ビデオをビットストリーム表現へとエンコーディングすることを含む。いくつかの実施形態において、変換は、ビットストリーム表現をビデオへとデコーディングすることを含む。
【0308】
ここにおいて、説明の目的で、本開示の技術の特定の実施形態を説明してきたが、以上から、本発明の範囲を逸脱することなく、種々の修正を行うことができることが理解されるだろう。従って、現在開示されている技術は、添付の請求項による場合を除いて、限定されない。
【0309】
開示される技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを可能にする決定または判定を行うことを含む。一つの例において、ビデオ処理ツールまたはモードがイネーブルされている場合、エンコーダは、ビデオのブロックの処理において、ツールまたはモードを使用または実装するが、ツールまたはモードの使用に基づいて、必ずしも結果として生じるビットストリームを修正しなくてよい。すなわち、ビデオのブロックからビデオのビットストリーム表現への変換は、決定または判定に基づいて可能にされたとき、ビデオ処理ツールまたはモードを使用する。別の例において、ビデオ処理ツールまたはモードがイネーブルされている場合、デコーダは、ビットストリームがビデオ処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定または判定に基づいてイネーブルされたビデオ処理ツールまたはモードを使用して実行される。
【0310】
開示される技術のいくつかの実施形態は、ビデオ処理ツールまたはモードをディセーブルにする決定または判定を行うことを含む。一つの例において、ビデオ処理ツールまたはモードがディセーブルにされている場合、エンコーダは、ビデオのブロックをビデオのビットストリーム表現に変換する際に、ツールまたはモードを使用しない。別の例において、ビデオ処理ツールまたはモードがディセーブルにされている場合、デコーダは、ビットストリームが、決定または判定に基づいてイネーブルされたビデオ処理ツールまたはモードを使用して修正されていないことを知って、ビットストリームを処理する。
【0311】
この特許文書に記載されている技術的事項(subject matter)の実装および機能動作は、ここにおいて開示されている構造およびそれらの構造的等価物を含む、種々のシステム、デジタル電子回路、または、コンピュータソフトウェア、ファームウェア、もしくは、ハードウェアにおいて、または、それらの1つ以上の組み合わせにおいて実施することができる。ここにおいて説明される技術的事項の実装は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置による、または、データ処理装置の動作を制御するための、有形および非一時的なコンピュータで読取り可能な媒体上にコーディングされたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータで読取り可能な媒体は、マシン読取り可能記憶装置、マシン読取り可能記憶基板、メモリ装置、マシン読取り可能伝搬信号に影響を与える事項の組成、または、それらの1つ以上の組み合わせであり得る。用語「データ処理ユニット(“data processing unit”)」または「データ処理装置(“data processing apparatus”)」は、例えば、プログラマブルプロセッサ、コンピュータ、もしくは、複数のプロセッサまたはコンピュータを含む、データを処理するための全ての装置、デバイス、およびマシンを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらの1つ以上の組み合わせを構成するコードを含むことができる。
【0312】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、または、コードとしても知られるもの)は、コンパイルまたは解釈された言語を含む、任意の形態のプログラミング言語で書くことができ、それは、スタンドアロンプログラムとして、または、コンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、または他のユニットとしてのものを含む、任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に保管される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または、複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を保管するファイル)に保管することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトに配置されるか、または、複数のサイトに分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開することができる。
【0313】
ここにおいて説明されるプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローは、また、FPG(フィールドプログラマブルゲートアレイ)またはASI(特定用途向け集積回路)のような特殊目的論理回路によって実行することができ、そして、装置も、また、実行することができる。
【0314】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、もしくは、その両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを保管するための1つ以上のメモリデバイスである。一般的に、コンピュータは、また、データを保管するための1つ以上の大容量ストレージ装置、例えば、磁気ディスク、磁気光ディスク、または光ディスクに、データを受信したり、データを転送したりするように動作可能に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令およびデータを保管するのに適したコンピュータで読取り可能な媒体は、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスのような半導体メモリデバイスを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、または、内蔵され得る。
【0315】
明細書は、図面と共に、単なる例示とみなされるが、例示は実施例を意味する。ここにおいて使用される場合、「または(“or”)」の使用は、コンテキストが他のことを明確に示さない限り、「及び/又は(“and/or”)」を含むように意図されている。
【0316】
この特許文書には多くの詳細が含まれているが、これらは、任意の発明の範囲または特許請求され得るものを限定するものではなく、特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別々の実施形態のコンテキストにおいて、この特許文書に記載されている特定の特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態のコンテキストにおいて説明される種々の特徴は、複数の実施形態において、別々に、または、任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され、最初にそのようにク請求され得るが、請求された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから切り出され、そして、請求された組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられ得る。
【0317】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、そうした動作を特定の順序または連続的な順序で実行すること、または、例示された全ての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文書に記載されている実施形態における種々のシステム構成要素の分離は、全ての実施形態においてそうした分離を必要とするものとして理解されるべきではない。
【0318】
少数の実施形態および実施例だけが記載されており、そして、この特許文書に記載され、説明されている内容に基づいて、他の実施、拡張、および変形が行われ得る。
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図12C
図12D
図13
図14
図15A
図15B
図16A
図16B
図16C
図17A
図17B
図18A
図18B
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29