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

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

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

特許7267461ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-21
(45)【発行日】2023-05-01
(54)【発明の名称】ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
(51)【国際特許分類】
   H04N 19/13 20140101AFI20230424BHJP
   H04N 19/176 20140101ALI20230424BHJP
   H04N 19/593 20140101ALI20230424BHJP
   H04N 19/70 20140101ALI20230424BHJP
【FI】
H04N19/13
H04N19/176
H04N19/593
H04N19/70
【請求項の数】 11
(21)【出願番号】P 2021564972
(86)(22)【出願日】2020-05-11
(65)【公表番号】
(43)【公表日】2022-07-06
(86)【国際出願番号】 CN2020089579
(87)【国際公開番号】W WO2020228669
(87)【国際公開日】2020-11-19
【審査請求日】2021-11-02
(31)【優先権主張番号】PCT/CN2019/086420
(32)【優先日】2019-05-10
(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)【参考文献】
【文献】Moonmo Koo, et al.,CE6: Reduced Secondary Transform (RST) (CE6-3.1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0193,14th Meeting: Geneva, CH,2019年03月,pp.1-19
【文献】Jonathan Pfaff, et al.,CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0217,14th Meeting: Geneva, CH,2019年03月,pp.1-17
【文献】Xin Zhao, Xiang Li, and Shan Liu,CE6: Coupled primary and secondary transform (Test 6.3.2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0288-r1,12th Meeting: Macao, CN,2018年10月,pp.1-4
【文献】Jianle Chen, et al.,Algorithm Description of Joint Exploration Test Model 7 (JEM 7),Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-G1001-v1,7th Meeting: Torino, IT,2017年08月,pp.28-32
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ・データを処理する方法であって:
ビデオの現在のビデオ・ブロックと前記ビデオのビットストリームとの間の変換を実行するステップを含み、前記変換は:
二次変換ツールを前記現在のビデオ・ブロックに適用するかどうかを決定すること;
前記二次変換ツールが前記現在のビデオ・ブロックに適用されることに応じて、前記二次変換ツールで使用される変換行列のセットと、前記二次変換ツールを前記現在のビデオ・ブロックに適用する際に使用されるべき前記セットの変換行列を、行列ベースのイントラ予測モードが前記現在のビデオ・ブロックに適用されるかどうかに基づいて決定すること;
を含み、前記変換行列のセットのインデックスは、前記行列ベースのイントラ予測モードが適用されるかどうかに基づいて決定され、前記現在のビデオ・ブロックに対して二次変換ツールを適用するかどうか、及びどの二次変換カーネルが適用されるかを示す第1インデックス・シンタックス要素と、前記変換行列のセットのインデックスとに基づいて、前記変換行列は前記セットから選択され;
前記行列ベースのイントラ予測モードは、前記現在のビデオ・ブロックの予測値を、行列ベクトル乗算に基づいて決定することを含み;
前記二次変換ツールを使用して:
符号化の間に、量子化の前に、前記現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、前記現在のビデオ・ブロックの逆量子化の出力に適用される、方法。
【請求項2】
前記現在のビデオ・ブロックの予測値を決定することは、前記現在のビデオ・ブロックのサイズに基づく参照サンプルに関する境界ダウン・サンプリング処理の後に選択的にアップサンプリング処理を行うことに更に基づいている、請求項1に記載の方法。
【請求項3】
前記第1インデックス・シンタックス要素が前記ビットストリームに含まれるかどうかは、前記現在のビデオ・ブロックの色成分に基づいている、請求項2に記載の方法。
【請求項4】
前記第1インデックス・シンタックス要素が前記ビットストリームに含まれるかどうかは、前記現在のビデオ・ブロックに第1イントラ予測モードが適用されるかどうか及びサイズに更に基づいている、請求項3に記載の方法。
【請求項5】
前記現在のビデオ・ブロックの前記色成分がクロマ成分であることに応じて、前記行列ベースのイントラ予測モードは前記現在のビデオ・ブロックに適用され、前記現在のビデオ・ブロックのサイズは4*8又は8*4であり、前記第1インデックス・シンタックス要素は前記ビデオストリームに含まれず、前記二次変換ツールは前記現在のビデオ・ブロックに適用されない、請求項4に記載の方法。
【請求項6】
前記二次変換ツールは低周波ノン・セパラブル変換ツールを含む、請求項5に記載の方法。
【請求項7】
前記変換は前記現在のビデオ・ブロックを前記ビットストリームに符号化することを含む、請求項1-6のうちの何れか1項に記載の方法。
【請求項8】
前記変換は前記現在のビデオ・ブロックを前記ビットストリームから復号化することを含む、請求項1-6のうちの何れか1項に記載の方法。
【請求項9】
命令を備える非一時的なメモリとプロセッサとを含むビデオ・データを処理する装置であって、前記命令は前記プロセッサにより実行されると、前記プロセッサに:
ビデオの現在のビデオ・ブロックと前記ビデオのビットストリームとの間の変換を実行させ、
前記変換は:
二次変換ツールを前記現在のビデオ・ブロックに適用するかどうかを決定すること;
前記二次変換ツールが前記現在のビデオ・ブロックに適用されることに応じて、前記二次変換ツールで使用される変換行列のセットと、前記二次変換ツールを前記現在のビデオ・ブロックに適用する際に使用されるべき前記セットの変換行列を、行列ベースのイントラ予測モードが前記現在のビデオ・ブロックに適用されるかどうかに基づいて決定すること;
を含み、前記変換行列のセットのインデックスは、前記行列ベースのイントラ予測モードが適用されるかどうかに基づいて決定され、前記現在のビデオ・ブロックに対して二次変換ツールを適用するかどうか、及びどの二次変換カーネルが適用されるかを示す第1インデックス・シンタックス要素と、前記変換行列のセットのインデックスとに基づいて、前記変換行列は前記セットから選択され;
前記行列ベースのイントラ予測モードは、前記現在のビデオ・ブロックの予測値を、行列ベクトル乗算に基づいて決定することを含み;
前記二次変換ツールを使用して:
符号化の間に、量子化の前に、前記現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、前記現在のビデオ・ブロックの逆量子化の出力に適用される、装置。
【請求項10】
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、プロセッサに:
ビデオの現在のビデオ・ブロックと前記ビデオのビットストリームとの間の変換を実行させ、
前記変換は:
二次変換ツールを前記現在のビデオ・ブロックに適用するかどうかを決定すること;
前記二次変換ツールが前記現在のビデオ・ブロックに適用されることに応じて、前記二次変換ツールで使用される変換行列のセットと、前記二次変換ツールを前記現在のビデオ・ブロックに適用する際に使用されるべき前記セットの変換行列を、行列ベースのイントラ予測モードが前記現在のビデオ・ブロックに適用されるかどうかに基づいて決定すること;
を含み、前記変換行列のセットのインデックスは、前記行列ベースのイントラ予測モードが適用されるかどうかに基づいて決定され、前記現在のビデオ・ブロックに対して二次変換ツールを適用するかどうか、及びどの二次変換カーネルが適用されるかを示す第1インデックス・シンタックス要素と、前記変換行列のセットのインデックスとに基づいて、前記変換行列は前記セットから選択され;
前記行列ベースのイントラ予測モードは、前記現在のビデオ・ブロックの予測値を、行列ベクトル乗算に基づいて決定することを含み;
前記二次変換ツールを使用して:
符号化の間に、量子化の前に、前記現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、前記現在のビデオ・ブロックの逆量子化の出力に適用される、記憶媒体。
【請求項11】
デオのビットストリームを記憶する方であって
前記ビデオの現在のビデオ・ブロックに対する前記ビットストリームを生成すること及び
前記ビットストリームを、非一時的なコンピュータ読み取り可能な記憶媒体に記憶すること;
を含み、前記生成することは:
二次変換ツールを前記現在のビデオ・ブロックに適用するかどうかを決定すること;
前記二次変換ツールが前記現在のビデオ・ブロックに適用されることに応じて、前記二次変換ツールで使用される変換行列のセットと、前記二次変換ツールを前記現在のビデオ・ブロックに適用する際に使用されるべき前記セットの変換行列を、行列ベースのイントラ予測モードが前記現在のビデオ・ブロックに適用されるかどうかに基づいて決定すること;
を含み、前記変換行列のセットのインデックスは、前記行列ベースのイントラ予測モードが適用されるかどうかに基づいて決定され、前記現在のビデオ・ブロックに対して二次変換ツールを適用するかどうか、及びどの二次変換カーネルが適用されるかを示す第1インデックス・シンタックス要素と、前記変換行列のセットのインデックスとに基づいて、前記変換行列は前記セットから選択され;
前記行列ベースのイントラ予測モードは、前記現在のビデオ・ブロックの予測値を、行列ベクトル乗算に基づいて決定することを含み;
前記二次変換ツールを使用して:
符号化の間に、量子化の前に、前記現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、前記現在のビデオ・ブロックの逆量子化の出力に適用される、記憶方法
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
願は2020年5月11日付で出願された国際特許出願第PCT/CN2020/089579号に基づいており、同出願は2019年5月10日付で出願された国際特許出願第PCT/CN2019/086420号に対する優先権及び利益を主張ている。上記すべての特許出願は参照により全体として本願に援用される。
【0002】
技術分野
本特許文献はビデオ処理技術、デバイス、及びシステムに関連する。
【0003】
背景
ビデオ圧縮における進歩にもかかわらず、デジタル・ビデオは、インターネットその他のデジタル通信ネットワークにおいて最大の帯域幅を依然として占めている。ビデオを受信及び表示することが可能な接続ユーザー・デバイスの台数が増加するにつれて、デジタル・ビデオの利用に対する帯域幅の需要は増加し続けるであろうということが予想される。
【発明の概要】
【0004】
デバイス、システム、及び方法は、デジタル・ビデオ処理に関連し、具体的には、ビデオ処理における残差コーディングのためのコンテキスト・モデリングに関連する。説明される方法は、既存のビデオ・コーディング規格(例えば、HEVC(High Efficiency Video Coding))及び将来のビデオ・コーディング規格又はビデオ・コーデックの両方に適用される可能性がある。
【0005】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換は、ビデオの現在のビデオ・ブロックに関し、二次変換ツールを現在のビデオ・ブロックに適用する際に使用される変換セット又は変換行列を、現在のビデオ・ブロックの特徴に基づいて選択すること、及び選択された変換セット又は変換行列を、現在のビデオ・ブロックに適用することを含み、二次変換ツールを使用して:符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックの逆量子化の出力に適用される。
【0006】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換は、二次変換ツールを現在のビデオ・ブロックのサブ領域に適用することを含み、サブ領域は現在のビデオ・ブロックの左上の部分ではなく、二次変換ツールを使用して:符号化の間に、量子化の前に、現在のビデオ・ブロックのサブ領域の残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックのサブ領域の逆量子化の出力に適用される。
【0007】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のピクチャの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換に関し、ルールに起因する二次変換ツールの現在のビデオ・ブロックに対する適用性を決定するステップであって、ルールは、現在のビデオ・ブロックをコーディングするために使用されるイントラ予測方向、コーディング・ツールの用途、及び/又は現在のビデオ・ブロックが由来するビデオの色成分に関連している、ステップ;及び決定に基づいて変換を実行するステップを含む。
【0008】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、コーディングされた表現は、現在のビデオ・ブロックの残差において最後の非ゼロ係数を指定するフォーマット・ルールであって、二次変換ツールに関するサイド情報がコーディングされた表現に含まれるかどうか又はどのように含まれるかを制御するフォーマット・ルールに適合し、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックの逆量子化の出力に適用することを含む。
【0009】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、コーディングされた表現は、現在のビデオ・ブロックの一部の残差において1つ以上の係数を指定するフォーマット・ルールであって、二次変換ツールに関するサイド情報がコーディングされた表現に含まれるかどうか又はどのように含まれるかを制御するフォーマット・ルールに適合し、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックの逆量子化の出力に適用することを含む。
【0010】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、二次変換ツールの現在のビデオ・ブロックに対する適用性を、現在のビデオ・ブロックの1つ以上のコーディング・グループにおける非ゼロ係数の存在に基づいて決定することを含み、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む。
【0011】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、コーディングされた表現は、現在のビデオ・ブロックに対する二次変換ツールのサイド情報に対応するシンタックス要素が、変換関連情報の前に、コーディングされた表現においてシグナリングされることを指定するフォーマット・ルールに適合し、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックの逆量子化の出力に適用することを含む。
【0012】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、コーディングされた表現は、現在のビデオ・ブロックのための二次変換ツールのサイド情報に対応するシンタックス要素が、残差コーディング情報の前に、コーディングされた表現においてシグナリングされることを指定するフォーマット・ルールに適合し、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む。
【0013】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、二次変換ツールに関連する情報に基づくルールに従って現在のビデオ・ブロックの残差をコーディングすることを含み、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む。
【0014】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、ルールに従って、現在のビデオ・ブロックの1つ以上の部分に、異なるコンテキスト・モデリング方法を使用して算術符号化を適用することを含む。
【0015】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、ビデオの現在のビデオ・ブロックの特徴に基づいて、二次変換ツールのインデックスに対応するビン・ストリングのビンをコーディングするか又はビンをコーディングすることをバイパスするためのコンテキスト・モデルを構築することを含み、インデックスは、二次変換ツールの適用性及び/又は二次変換ツールのカーネル情報を示し、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は二次変換ツールは、復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む。
【0016】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、現在のビデオ・ブロックのディメンジョン(dimension)に基づいて、シンタックス要素がコーディングされた表現に含まれるかどうかを決定することを含み、シンタックス要素は、二次変換を適用することの指示、及び二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む二次変換ツールのサイド情報に対応し、二次変換を使用して、インバース二次変換は、インバース一次変換を適用する前に、コーディングされた表現を復号化するために使用され、且つ現在のビデオ・ブロックの逆量子化の出力に適用される。
【0017】
代表的な一態様において、開示される技術は、ビデオ処理方法を提供するために使用することができる。本方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、現在のビデオ・ブロックのディメンジョン(又は寸法)に基づいて、シンタックス要素が現在のビデオ・ブロックのコーディングされた表現に含まれるかどうかを決定することを含み、シンタックス要素は、二次変換を適用することの指示、及び二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む二次変換ツールのサイド情報に対応し、二次変換を使用して、量子化プロセスを適用する前に、フォワード二次変換が、現在のビデオ・ブロックを符号化するために使用され、且つ現在のビデオ・ブロックの一次変換の出力に適用される。
【0018】
更に別の代表的な態様において、上記の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ読み取り可能なプログラム媒体に保存される。
【0019】
更に別の代表的な態様において、上記の方法を実行するように構成された又は動作可能なデバイスが開示される。デバイスは、この方法を実装するようにプログラムされたプロセッサを含むことができる。
【0020】
更に別の代表的な態様において、ビデオ・デコーダ装置は、本願で説明されるような方法を実装することができる。
【0021】
開示される技術の上記及び他の態様及び特徴は、図面、明細書及び特許請求の範囲においてより詳細に記載されている。
【図面の簡単な説明】
【0022】
図1】例示的なエンコーダのブロック図を示す。
【0023】
図2】67個のイントラ予測モードの例を示す。
【0024】
図3】4×4ブロックに対するALWIPの例を示す。
【0025】
図4】8×8ブロックに対するALWIPの例を示す。
【0026】
図5】8×4ブロックに対するALWIPの例を示す。
【0027】
図6】16×16ブロックに対するALWIPの例を示す。
【0028】
図7】予測ブロックに隣接する4つの参照ラインの例を示す。
【0029】
図8】4×8及び8×4ブロックの分割例を示す。
【0030】
図9】4×8、8×4、4×4を除く全てのブロックの分割例を示す。
【0031】
図10】JEMにおける二次変換の例を示す。
【0032】
図11】提案される縮小二次変換(reduced secondary transform,RST)の例を示す。
【0033】
図12】フォワード及びインバース縮小変換の例を示す
【0034】
図13】16×48行列を用いたフォワードRST 8×8プロセスの例を示す。
【0035】
図14】8×8行列に対するゼロ・アウト領域の例を示す。
【0036】
図15】サブ・ブロック変換モードSBT-V及びSBT-Hの例を示す。
【0037】
図16】4×4コーディング・グループに対する対角線上向き右スキャン順序の例を示す。
【0038】
図17】サイズ4×4のコーディング・グループによる8×8ブロックに対する対角線上向き右スキャン順序の例を示す。
【0039】
図18】確率モデルを選択するために使用されるテンプレートの例を示す。
【0040】
図19】依存量子化(dependent quantization)に使用される2つのスカラー量子化器の例を示す。
【0041】
図20】提案される依存量子化プロセスに対する状態遷移と量子化器選択の例を示す。
【0042】
図21】4つのコーディング・グループを有する8×8ブロックの例である。
【0043】
図22A】本件で説明されるビジュアル・メディア復号化又はビジュアル・メディア符号化技術を実装するためのハードウェア・プラットフォーム例のブロック図である。
図22B】本件で説明されるビジュアル・メディア復号化又はビジュアル・メディア符号化技術を実装するためのハードウェア・プラットフォーム例のブロック図である。
【0044】
図23A】ビデオ処理のための例示的な方法のフローチャートを示す。
図23B】ビデオ処理のための例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【0045】
開示される技術の実施形態は、圧縮パフォーマンスを改善するために、既存のビデオ・コーディング規格(例えば、HEVC,H.265)及び将来の規格に適用される可能性がある。セクション見出しは、本件においては説明の可読性を向上させるために使用されており、如何なる方法によっても、本説明又は実施形態(及び/又は実装)を個々のセクションだけに限定してはいない。
【0046】
2 ビデオ・コーディング・イントロダクション
より高い解像度のビデオの益々増える要請に起因して、ビデオ・コーディング方法及び技術は現代技術の至る所に存在する。ビデオ・コーデックは、典型的には、デジタル・ビデオを圧縮又は解凍する電子回路又はソフトウェアを含み、より高いコーディング効率を提供するために絶えず改良されている。ビデオ・コーデックは、圧縮されていないビデオを圧縮された形式へ、又は逆向きに変換する。ビデオ品質と、ビデオを表現するために使用されるデータ量(ビット・レートによって決定される)と、符号化及び復号化アルゴリズムの複雑さと、データ損失及びエラーに対する感度と、編集の容易さと、ランダム・アクセスと、エンド・ツー・エンド遅延(レイテンシ)との間には複雑な関係が存在する。圧縮されたフォーマットは、通常、標準的なビデオ圧縮規格、例えば、高効率ビデオ・コーディング(HEVC)規格(H.265又はMPEG-H Part 2としても知られている)、ファイナライズされた汎用ビデオ・コーディング(VVC)規格、又は他の現在及び/又は将来のビデオ・コーディング規格に準拠している。
【0047】
ビデオ・コーディング規格は、周知のITU-T及びISO/IEC規格の開発を通じて主に発展している。ITU-TはH.261とH.263を作成し、ISO/IECはMPEG-1とMPEG-4 Visualを作成し、2つの組織は共同してH.262/MPEG-2ビデオとH.264/MPEG-4アドバンスト・ビデオ・コーディング(AVC)とH.265/HEVC規格とを作成した。H.262以来、ビデオ・コーディング規格はハイブリッド・ビデオ・コーディング構造に基づいており、そこでは時間的予測と変換コーディングが使用される。HEVCを越える将来のビデオ・コーディング技術を探求するため、2015年に共同ビデオ探査チーム(Joint Video Exploration Team,JVET)がVCEGとMPEGにより共同で設立された。それ以来、多くの新しい方法がJVETによって採用されており、共同探索モデル(Joint Exploration Model,JEM)[3][4]と名付けられる参照ソフトウェアに入れられている。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の共同ビデオ・エキスパートチーム(JVET)が発足し、HEVCに対して50%のビットレート低減を目指すVVC規格に取り組んでいる。
【0048】
2.1 典型的なビデオ・コーデックのコーディング・フロー
図1は、VVCのエンコーダ・ブロック図の例を示し、3つのループ内フィルタリング・ブロック、即ち:デブロッキング・フィルタ(DF)、サンプル適応オフセット(SAO)、及びALFを含む。予め定義されたフィルタを使用するDFとは異なり、SAO及びALFは、現在のピクチャのオリジナル・サンプルを使用して、オフセットを追加すること、及び有限インパルス応答(FIR)フィルタを適用することによって(コーディングされたサイド情報がオフセットとフィルタ係数をそれぞれシグナリングする)、オリジナル・サンプルと再構成されたサンプルとの間の平均二乗誤差を減少させる。ALFは、各ピクチャの最終処理ステージに位置し、以前のステージで生成されたアーチファクトを捕捉して修復しようとするツールと見なすことができる。
【0049】
2.2 VVCにおけるイントラ・コーディング
2.2.1 67個のイントラ予測モードによるイントラ・モード・コーディング
自然なビデオで提示される任意のエッジ方向を捕らえるために、方向イントラ・モードの数は、HEVCで使用されているような33個から65個へ拡張される。追加の方向モードは、図2において点線の矢印として描かれており、平面及びDCモードは同じままである。これらのより高密度な方向性イントラ予測モードは、全てのブロック・サイズに対して、そしてルマ及びクロマ・イントラ予測の両方に対して適用される。
【0050】
従来の角度イントラ予測方向は、図2に示すように時計回り方向に45度から-135度までに対して定義される。VTM2では、幾つかの従来の角度イントラ予測モードは、非正方ブロックに対する広角イントラ予測モードで適応的に置換される。置換されるモードは、オリジナルの方法を用いてシグナリングされ、解析後に広角モードのインデックスに再マッピングされる。イントラ予測モードの総数は変化せず、即ち67であり、イントラ・モード・コーディングは変化しない。
【0051】
HEVCでは、イントラ・コーディングされるブロックはすべて正方形であり、各辺の長さは2のべき乗である。従って、DCモードを使用してイントラ予測子を生成するために分割処理は必要とされない。VVV2では、ブロックは長方形の形状を有する可能性があり、一般的なケースではブロックごとに分割処理を使用する必要がある。DC予測のための分割処理を回避するために、長辺のみが、非正方ブロックに対する平均を計算するために使用される。
【0052】
67個のイントラ予測モードに加えて、非正方ブロック(WAIP)及びポジション依存イントラ予測結合(PDPC)法の広角イントラ予測が、特定のブロックに対して更にイネーブルにされる。PDPCは、以下のイントラ・モード:平面、DC、水平、垂直、左下の角度モードとその8つの隣接する角度モード、及び右上の角度モードとその8つの隣接する角度モードに対して、シグナリングなしに適用される。
【0053】
2.2.2 アフィン線形重み付けイントラ予測(ALWIP又はマトリクス・ベースのイントラ予測)
アフィン線形重み付けイントラ予測(ALWIP,マトリクス・ベースのイントラ予測(MIP)としても知られている)は、JVET-N0217で提案されている。
【0054】
2.2.2.1 行列ベクトル乗算による縮小予測信号の生成
先ず、隣接する参照サンプルは平均化によってダウンサンプリングされ、縮小参照信号bdryredを生成する。次いで、行列ベクトル積を計算し、オフセットを加えることによって、縮小予測信号predredが計算される:
【0055】
【数1】
【0056】
ここで、Aは、W=H=4である場合は4列、他の全ての場合は8列とWred・Hred行とを有する行列である。bはサイズがWred・Hredであるベクトルである。
【0057】
2.2.2.2 ALWIPプロセス全体の説明
平均化、行列ベクトル乗算、及び線形補間の全体的なプロセスが、図3-6で様々な形状に関して示されている。残りの形状は、図示のケースのうちの1つと同様に扱われることに留意されたい。
【0058】
1.4×4ブロックであるとすると、ALWIPは境界の各軸に沿って2つの平均をとる。結果の4つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S0から取られる。オフセットを加えた後、これは16個の最終予測サンプルを生じる。予測信号を生成するために線形補間は不要である。従って、サンプル当たり合計(4・16)/(4・4)=4回の乗算が実行される。
【0059】
2.8×8ブロックであるとすると、ALWIPは境界の各軸に沿って4つの平均をとる。結果の8つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S1から取られる。これは予測ブロックの奇数位置における16個のサンプルを生じる。従って、サンプル当たり合計(8・16)/(8・8)=2回の乗算が実行される。オフセットを加えた後、これらのサンプルは、縮小された上・境界を使用することによって、垂直方向に補間される。元の左・境界を使用することによって、水平補間が続く。
【0060】
3.8×4ブロックであるとすると、ALWIPは境界の水平軸に沿って4つの平均と、左境界における4つの元の境界値とをとる。結果の8つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S1から取られる。これは予測ブロックの水平方向の奇数位置と垂直方向の各位置とで16個のサンプルを生じる。従って、サンプル当たり合計(8・16)/(8・4)=4回の乗算が実行される。オフセットを加えた後、これらのサンプルは、元の左境界を使用することによって、水平方向に補間される。
【0061】
4.16×16ブロックであるとすると、ALWIPは境界の各軸に沿って4つの平均をとる。結果の8つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S2から取られる。これは予測ブロックの奇数位置で64個のサンプルを生じる。従って、サンプル当たり合計(8・64)/(16・16)=2回の乗算が実行される。オフセットを加えた後、これらのサンプルは、上境界の8つの平均を使用することによって、垂直方向に補間される。元の左境界を使用することによって、水平補間が続く。この場合、補間プロセスは、如何なる乗算も追加しない。従って、ALWIP予測を計算するためには、全体として、サンプル当たり2回の乗算が必要とされる。
【0062】
より大きな形状についても、手順は本質的には同じであり、サンプル当たりの乗算回数は4未満であることを確認することは容易である。
【0063】
W×8(W>8)ブロックの場合、水平補間のみ必要となり、なぜならサンプルは奇数の水平位置であって各垂直位置で与えられているからである。
【0064】
最終的に、W×4(W>8)ブロックの場合、A_kbeを、ダウンサンプリングしたブロックの水平軸に沿った奇数エントリに対応する全ての行を除外することによって生じる行列とする。従って、出力サイズは32であり、再び、水平補間のみが実行される。
転置されるケースは相応に取り扱われる。
2.2.2.3 シンタックス及びセマンティクス
7.3.6.5 コーディング・ユニット・シンタックス
【0065】
【数2】
【0066】
2.2.3 多重参照ライン(MRL)
多重参照ライン(MRL)イントラ予測は、イントラ予測のために、より多くの参照ラインを使用する。図7において、4つの参照ラインの例が描かれており、ここで、セグメントA及びFのサンプルは、再構成された隣接するサンプルからフェッチされるのではなく、それぞれセグメントB及びEからの最も近いサンプルでパディングされる。HEVCイントラ・ピクチャ予測は、最も近い参照ライン(即ち参照ライン0)を使用する。MRLでは、2つの追加ライン(参照ライン1及び参照ライン3)が使用される。
【0067】
選択された参照ラインのインデックス(mrl_idx)は、シグナリングされて、イントラ予測子を生成するために使用される。0より大きな参照ラインインデックスの場合、追加の参照ライン・モードをMPMリストに含めるだけであり、残りのモード無しにMPMインデックスをシグナリングするだけである。参照ライン・インデックスは、イントラ予測モードの前にシグナリングされ、プレーナ(Planar)及びDCモードは、ゼロでない参照ライン・インデックスがシグナリングされた場合に、イントラ予測モードから除外される。
【0068】
MRLは、CTU内側のブロックの第1ラインについてはディセーブルにされて、現在のCTUライン外側にある拡張された参照サンプルを使用することを禁止する。また、追加ラインが使用される場合、PDPCはディセーブルにされる。
【0069】
2.2.4 イントラ・サブ・ブロック・パーティショニング(ISP)
JVET-M0102では、ISPが提案されており、これはテーブル1に示されるように、ルマ・イントラ予測ブロックを、ブロック・サイズのディメンジョンに依存して垂直に又は水平に、2つ又は4つのサブ・パーティションに分割する。図8及び図9は、2つの可能性の例を示す。すべてのサブ・パーティションは、少なくとも16サンプルを有するという条件を満たしている。ブロック・サイズが4×N又はN×4(N>8)である場合、許容される場合には、1×N又はN×1のサブ・パーティションが存在してもよい。
テーブル1:ブロック・サイズ(最大変換サイズ/maxTBSizeで示される)に応じたサブ・パーティションの数
【0070】
【数3】
各サブ・パーティションについて、残差信号は、エンコーダから送信された係数をエントロピー復号化し、それらをインバート量子化、及びインバート変換することによって生成される。次いで、サブ・パーティションは、イントラ予測され、最終的に、残留信号を予測信号に加えることによって、対応する再構成されたサンプルが取得される。従って、各サブ・パーティションの再構成された値は、次のもの等々の予測を生成するために利用可能であり、プロセスは反復される。すべてのサブ・パーティションは同じイントラ・モードを共有する。
テーブル2:predModeIntraに依存するtrTypeHor及びtrTypeVerの仕様
【0071】
【数4】
2.2.4.1 シンタックス及びセマンティクス
7.3.7.5 コーディング・ユニット・シンタックス
【0072】
【数5】
1に等しいintra_subpartitions_mode_flag[ x0 ][ y0 ]は、現在のイントラ・コーディング・ユニットが、NumIntraSubPartitions[ x0 ][ y0 ]個の矩形変換ブロック・サブパーティションにパーティション化されることを指定する。
0に等しいintra_subpartitions_mode_flag[ x0 ][ y0 ]は、現在のイントラ・コーディング・ユニットが、矩形変換ブロック・サブパーティションにパーティション化されないことを指定する。
intra_subpartitions_mode_flag[ x0 ][ y0 ]が存在しない場合、それは0に等しいと推定される。intra_subpartitions_split_flag[ x0 ][ y0 ]は、イントラ・サブ・パーティション・スプリット・タイプが水平であるか又は垂直であるかを指定する。intra_subpartitions_split_flag[ x0 ][ y0 ]が存在しない場合、それは次のように推定される:
- cbHeightがMaxTbSizeYより大きい場合、intra_subpartitions_split_flag[ x0 ][ y0 ]は0に等しいと推定される。
- そうではない場合(cbWidthがMaxTbSizeYより大きい場合)、intra_subpartitions_split_flag[ x0 ][ y0 ]は、1に等しいと推定される。
変数IntraSubPartitionsSplitTypeは、表7-9に示すように、現在のルマ・コーディング・ブロックに使用される分割のタイプを指定する。IntraSubPartitionsSplitTypeは次のように導出される:
- intra_subpartitions_mode_flag[ x0 ][ y0 ]が0に等しい場合、 IntraSubPartitionsSplitTypeは0に等しく設定される。
- そうではない場合、IntraSubPartitionsSplitTypeは、1 + intra_subpartitions_split_flag[ x0 ][ y0 ]に等しく設定される。
テーブル7-9 IntraSubPartitionsSplitTypeに対する関連名称
【0073】
【数6】
変数NumIntraSubPartitionsは、イントラ・ルマ・コーディング・ブロックが分割される変換ブロック・サブパーティションの数を指定する。NumIntraSubPartitionsは次のように導出される:
- IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しい場合、 NumIntraSubPartitionsは1に等しく設定される。
- そうではない場合、以下のうちの1つの条件が真であるならば、NumIntraSubPartitionsは2に等しく設定される:
- cbWidthは4に等しく且つcbHeightは8に等しい、
- cbWidthは8に等しく且つcbHeightは4に等しい。
- そうではない場合、NumIntraSubPartitionsは4に等しく設定される。
[0071]
2.3 クロマ・イントラ・モード・コーディング
クロマ・イントラ・モード・コーディングの場合、クロス・コンポーネント線形モデル(CCLM)がイネーブルにされているか否かに応じて、合計8個又は5個のイントラ・モードがクロマ・イントラ・モード・コーディングに許容される。これらのモードは、5つの伝統的なイントラ・モードと3つのクロス・コンポーネント線形モデル・モードを含む。クロマDMモードは、対応するルマ・イントラ予測モードを使用する。Iスライスでは、ルマ及びクロマ成分に対して別個のブロック・パーティショニング構造がイネーブルにされているので、1つのクロマ・ブロックが複数のルマ・ブロックに対応する場合がある。従って、クロマDMモードの場合、現在のクロマ・ブロックの中心位置をカバーする対応するルマ・ブロックのイントラ予測モードは、直接そのまま継承される。
テーブル8-2 sps_cclm_enabled_flag が0に等しい場合におけるintra_chroma_pred_mode[xCb][yCb]及びIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]に依存するIntraPredModeC[xCb][yCb]の仕様
【0074】
【数7】
テーブル8-3 sps_cclm_enabled_flagが1に等しい場合におけるintra_chroma_pred_mode[xCb][yCb]及びIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]に依存するIntraPredModeC[xCb][yCb]の仕様
【0075】
【数8】
[0072]
2.4 VVCにおける変換コーディング
2.4.1 VVCにおける多重変換セット(MTS)
2.4.1.1 明示的な多重変換セット(MTS)
VTM4では、64×64のサイズに及ぶ大きなブロック・サイズの変換がイネーブルにされており、これは高解像度ビデオ、例えば1080pや4Kシーケンスに主に有用である。高周波変換係数は、サイズ(幅又は高さ、又は幅及び高さの両方)が64に等しい変換ブロックに対して、低周波係数のみが保持されるようにゼロ化される。例えば、M×N変換ブロックの場合、Mをブロック幅とし、Nをブロック高さとし、Mが64に等しい場合に、変換係数のうちの左32列のみが保持される。同様に、Nが64に等しい場合、変換係数の上位32行のみが保持される。大きなブロックに対して変換スキップ・モードが使用される場合、如何なる値もゼロ化することなく、ブロック全体が使用される。
[0073]
HEVCで採用されているDCT-IIに加えて、多重変換選択(MTS)方式が、インター及びイントラ・コーディングされたブロック双方を残差コーディングするために使用される。これはDCT8/DST7から選択される複数の変換を使用する。新たに導入される変換行列はDST-VIIとDCT-VIIIである。以下のテーブル4は、選択されるDST/DCTの基底関数を示す。
テーブル4:VVCで使用される変換行列の基底関数
【0076】
【数9】
[0074]
変換行列の直交性を保持するために、変換行列はHEVCの変換行列よりも精密に量子化される。水平変換の後及び垂直変換の後に、変換された係数の中間値を16ビットの範囲内に保つため、すべての係数は10ビットを有するべきである。
[0075]
MTSスキームを制御するために、イントラ及びインターそれぞれについて、別々のイネーブル・フラグがSPSレベルで指定される。MTSがSPSでイネーブルにされると、MTSが適用されるか否かを指定するために、CUレベル・フラグがシグナリングされる。ここで、MTSはルマについてのみ適用される。MTS CUレベル・フラグは、以下の条件が充足される場合にシグナリングされる。
[0076]
○ 幅及び高さ双方が32以下であること
【0077】
○ CBFフラグが1に等しいこと
[0078]
MTS CUフラグがゼロに等しい場合、DCT2は双方向に適用される。しかしながら、MTS CUフラグが1に等しい場合、2つの他のフラグが追加的にシグナリングされて、水平及び垂直方向それぞれについて変換タイプを指定する。変換及びシグナリング・マッピングはテーブル5にされるとおりである。それが変換行列の精度に関しては、8ビットの一次変換コアが使用される。従って、4点DCT-2及びDST-7、8点、16点、及び32点DCT-2を含む、HEVCで使用されるすべての変換コアは同一に保たれる。また、64点DCT-2、4点DCT-8、8点、16点、32点DST-7及びDCT-8を含む他の変換コアは、8ビット一次変換コアを使用する。
テーブル5:水平及び垂直方向に関するtu_mts_idxの復号化される値及び対応する変換行列のマッピング
【0078】
【数10】
【0079】
DST-7及びDCT-8の大きなサイズの複雑さを低減させるため、32に等しいサイズ(幅又は高さ、又は幅及び高さの双方)を有するDST-7及びDCT-8ブロックに関し、高周波変換係数はゼロ化される。16×16の低周波領域内の係数のみが保持される。
【0080】
異なる変換が適用される場合に加えて、VVCは、HEVCにおけるTSの概念に類似する変換スキップ(TS)と呼ばれるモードもサポートしている。TSはMTSの特殊なケースとして取り扱われる。
【0081】
2.4.2 JVET-N0193で提案される縮小二次変換(RST)
2.4.2.1 JEMにおけるノン・セパラブル二次変換(NSST)
JEMでは、フォワード一次変換と量子化(エンコーダ側)の間、逆量子化とインバート一次変換(デコーダ側)の間に、二次変換が適用される。図10に示すように、4×4(又は8×8)の二次変換はブロック・サイズに依存して実行される。例えば、8×8ブロック毎に、4×4二次変換が小さなブロック(即ち、min (width, height) < 8)に適用され、8×8二次変換がより大きなブロック(即ち、min (width, height) > 4)に適用される。
【0082】
ノン・セパラブル変換(non-separable transform)の適用は、一例として以下のように入力を使用して記述される。ノン・セパラブル変換を適用するために、
【0083】
【数11】
という4×4入力ブロックXは、先ず
【0084】
【数12】
というベクトルとして表現される。
【0085】
ノン・セパラブル変換は、
【0086】
【数13】
として計算され、ここで、Fは変換係数ベクトルであり、Tは16×16変換行列である。16×1係数ベクトルFは、次いで、そのブロックのスキャニング順序(水平、垂直、又は対角)を使用して、4×4ブロックとして再編成される。より小さなインデックスの係数は、4×4係数ブロックの中で、より小さなスキャニング・インデックスに配置されるであろう。合計で35個の変換集合が存在し、変換集合あたり3個のノン・セパラブル変換行列(カーネル)が使用される。イントラ予測モードから変換集合へのマッピングは、予め定められている。各々の変換集合に対して、選択されたノン・セパラブル二次変換(NSST)候補は、明示的にシグナリングされる二次変換インデックスによって更に指定される。インデックスは、変換係数の後、イントラCU毎に一度ビット・ストリームでシグナリングされる。
【0087】
2.4.2.2 JVET-N0193における縮小二次変換(RST)
RST(低周波ノン・セパラブル変換(LFNST))がJVET-K0099で導入され、(35個の変換集合ではなく)4つの変換集合のマッピングがJVET-L0133で導入されている。このJVET-N0193では、16×64行列(更に、16×48行列に縮小される)及び16×16行列が使用される。表記の便宜上、16×64(16×48に縮小される)変換はRST8×8、16×16変換はRST4×4として表記される。図11はRSTの一例を示す。
【0088】
2.4.2.2.1 RST計算
縮小変換(RT)の主なアイデアは、N次元ベクトルを別空間のR次元ベクトルにマッピングすることであり、ここでR/N(R < N)は縮小因子である。
RT行列は、次のようにR×N行列である:
【0089】
【数14】
【0090】
ここで、変換行列のR個の行はN次元空間のR個の基底である。RTに対するインバート変換行列は、そのフォワード変換行列の転置(transpose)である。フォワード及びインバートRTは図12に描かれている。
【0091】
この寄稿では、4という縮小因子(1/4サイズ)のRST8x8が適用される。従って、従来の8×8ノン・セパラブル変換行列サイズである64×64の代わりに、16×64のダイレクト・マトリクスが使用される。言い換えれば、64×16インバートRST行列が、8×8の左上領域でコア(一次)変換係数を生成するために、デコーダ側で使用される。フォワードRST8x8は16×64(又は8×8ブロックに対して8×64)行列を使用し、その結果、所与の8×8領域内の左上の4×4領域においてのみ非ゼロ係数を生成する。言い換えれば、RSTが適用されると、左上の4×4領域を除く8×8領域はゼロ係数のみを有することになる。RST4×4、16×16(4×4ブロックに対して8×16)の場合、ダイレクト・マトリクス乗算が適用される。
【0092】
インバートRSTは、以下の2つの条件が満たされる場合に、条件付きで適用される:
【0093】
○ ブロック・サイズは、所与の閾値以上であること(W>=4 && H>=4)
【0094】
○ 変換スキップ・モード・フラグはゼロに等しいこと
【0095】
変換係数ブロックの幅(W)と高さ(H)の両方が4より大きい場合、RST8x8は、変換係数ブロックの左上の8×8領域に適用される。そうではない場合、RST4x4は変換係数ブロックの左上のmin(8, W) × min(8, H)の領域に適用される。
【0096】
RSTインデックスが0に等しい場合、RSTは適用されない。そうではない場合、RSTが適用され、そのカーネルは、RSTインデックスを使って選択される。RSTの選択方法とRSTインデックスのコーディングについては後述する。
【0097】
更に、RSTは、イントラ及びインター・スライスの両方においてイントラCU、またルマ及びクロマの両方に適用される。デュアル・ツリーがイネーブルにされている場合、ルマとクロマに対するRSTインデックスは別々にシグナリングされる。インター・スライスの場合(デュアル・ツリーはディセーブルにされている)、単一のRSTインデックスがシグナリングされ、ルマとクロマの両方に使用される。
【0098】
2.4.2.2.2 RSTの制約
ISPモードが選択される場合、RSTはディセーブルにされ、RSTインデックスはシグナリングされず、なぜなら、たとえRSTが適切なすべてのパーティション・ブロックに適用されたとしても、パフォーマンスの改善はわずかであるに過ぎないからである。更に、ISPで予測された残差に対してRSTをディセーブルにすることは、符号化の複雑さを減らす可能性がある。
【0099】
2.4.2.2.3 RST選択
RST行列は4つの変換集合から選択され、それら各々は2つの変換から構成される。どの変換集合が適用されるかは、以下のように、イントラ予測モードから決定される:
【0100】
(1)3つのCCLMモードのうちの1つが指定される場合、変換集合0が選択される。
[0101]
(2)そうでない場合、変換集合の選択は、以下のテーブルに従って実行される:
変換集合選択テーブル
【0101】
【数15】
【0102】
IntraPredModeと表記される上記テーブルにアクセスするためのインデックスは、[-14, 83]というレンジを有し、それは広角イントラ予測に使用される変換モード・インデックスである。
【0103】
2.4.2.2.4 縮小ディメンジョンのRST行列
更なる簡略化に関し、同じ変換集合の設定を用いて16×64行列の代わりに16×48行列が適用され、それらの各々は、左上の8×8ブロックの中の3つの4×4ブロックから(右下の4×4ブロックを除いている)、48個のデータを取り込む(図13に示されている)。
【0104】
2.4.2.2.5 RSTシグナリング
フォワードRST8x8は16×48行列を使用し、その結果、最初の3つの4×4領域内の中で左上の4×4領域のみにおいて非ゼロの係数を生成する。言い換えれば、RST8x8が適用される場合に、左上4×4(RST8x8によるもの)と右下4×4(一次変換によるもの)の領域のみが非ゼロの係数を有する可能性がある。その結果、右上の4×4及び左下の4×4ブロック領域(図14に示されており、「ゼロ・アウト(zero-out)」領域と呼ばれる)で何らかの非ゼロ要素が検出された場合に、RSTインデックスはコーディングされず、なぜならその場合はRSTが適用されていなかったことを示すからである。そのようなケースでは、RSTインデックスはゼロであると推定される。
【0105】
2.4.2.2.6 1CGにおけるゼロ・アウト領域
通常、4×4のサブ・ブロックにインバートRSTを適用する前に、4×4のサブ・ブロック内の何らかの係数は非ゼロである可能性がある。しかしながら、場合によっては、インバートRSTがサブ・ブロックに適用される前に、4×4サブ・ブロックの幾つかの係数はゼロでなければならないように制限される。
【0106】
nonZeroSizeを変数であるとする。インバートRSTの前に、1-Dアレイに再配列された場合にnonZeroSizeより小さくないインデックスを有する如何なる係数も、ゼロでなければならないことが要求される。
【0107】
nonZeroSizeが16に等しい場合、左上の4×4サブ・ブロックの係数にゼロ・アウト制約はない。
[0108]
JVET-N0193では、現在のブロック・サイズが4×4又は8×8である場合、nonZeroSizeは8に等しく設定される(即ち、図14に示されるようなレンジ[8,15]内のスキャニング・インデックスを有する係数は0であるものとする)。その他のブロック・ディメンジョンでは、nonZeroSizeは16に等しく設定される。
2.4.2.2.7 ワーキング・ドラフトにおけるRSTの説明
7.3.2.3 シーケンス・パラメータ・セットRBSPシンタックス
【0108】
【数16】
7.3.7.11 残差コーディング・シンタックス
【0109】
【数17】
7.3.7.5 コーディング・ユニット・シンタックス
【0110】
【数18】
1に等しいsps_st_enabled_flagは、st_idxがイントラ・コーディング・ユニットに対する残差コーディング・シンタックスに存在する可能性があることを指定する。0に等しいsps_st_enabled_flagは、st_idxがイントラ・コーディング・ユニットに対する残差コーディング・シンタックスに存在しないことを指定する。st_idx[ x0 ][ y0 ]は、選択された変換集合における2つの候補カーネルの間でどの二次変換カーネルが適用されるかを指定する。0に等しいst_idx[ x0 ][ y0 ]は、二次変換が適用されないことを指定する。配列インデックスx0,y0は、ピクチャの左上サンプルに対する、想定される変換ブロックの左上サンプルの位置(x0,y0)を指定する。
st_idx[ x0 ][ y0 ]が存在しない場合、st_idx[ x0 ][ y0 ]は0に等しいと推定される。st_idxのビンはコンテキスト・コーディングされる。より具体的には、以下が適用される:
テーブル9-9 シンタックス要素及び関連する二進化
【0111】
【数19】
テーブル9-15 コンテキスト・コーディング・ビンを利用したctxIncのシンタックス要素に対する割り当て
【0112】
【数20】
9.5.4.2.8 シンタックス要素st_idxに対するctxIncの導出プロセス
このプロセスに対する入力は、色成分インデックスcIdxと、cIdxに依存する現在のピクチャの左上サンプルに対する、現在のルマ又はクロマ・コーディング・ブロックの左上サンプルを指定するルマ又はクロマ位置(x0, y0)と、ツリー・タイプtreeTypeと、条項8.4.2で規定されているようなルマ・イントラ予測モードIntraPredModeY[ x0 ][ y0 ]と、条項7.4.7.5で規定されているようなクロマ・サンプルのイントラ予測モードを指定するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]と、多重変換選択インデックスtu_mts_idx[ x0 ][ y0 ]である。このプロセスの出力は変数ctxIncである。変数intraModeCtxは以下のように導出される:
cIdxが0に等しい場合、intraModeCtxは以下のように導出される:
intraModeCtx = ( IntraPredModeY[ x0 ][ y0 ] <= 1 ) ? 1 : 0
そうではない場合(cIdxは0より大きい)、intraModeCtxは以下のように導出される:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] >= 4 ) ? 1 : 0
変数mtsCtxは以下のように導出される:
mtsCtx = ( tu_mts_idx[ x0 ][ y0 ] == 0 && treeType != SINGLE_TREE ) ? 1 : 0

変数ctxIncは以下のように導出される:
ctxInc = ( binIdx << 1 ) + intraModeCtx + ( mtsCtx << 2 )

2.4.2.2.8 RST利用の概要
RSTは、1つのブロック内の非ゼロ係数の数が、単独及び別個のツリーに対してそれぞれ、2及び1より大きい場合にのみイネーブルにされることが可能である。更に、RSTがイネーブルにされる場合、RST適用コーディング・グループ(CG)に対する非ゼロ係数の位置についての以下の制限も要求される。
テーブル1:RSTの利用
【0113】
【数21】
[0109]
2.4.3 サブ・ブロック変換
1に等しいcu_cbfを有するインター予測されたCUの場合、残差ブロック全体又は残差ブロックのサブ・パートが復号化されるかどうかを示すために、cu_sbt_flag をシグナリングすることができる。前者の場合、CUの変換タイプを決定するために、インターMTS情報が更に解析される。後者の場合、残差ブロックの一部は推定された適応変換でコーディングされ、残差ブロックの他の部分はゼロ・アウト化される。SBTは結合されたインター・イントラ・モードには適用されない。
[0110]
サブ・ブロック変換では、SBT-V及びSBT-H(クロマTBは常にDCT-2を使用する)のルマ変換ブロックに、位置依存変換が適用される。SBT‐HとSBT‐Vの2つのポジションは異なるコア変換に関連付けられる。より具体的には、各SBTポジションに対する水平及び垂直変換が図3に規定されている。例えばSBT-Vポジション0に対する水平及び垂直変換はそれぞれDCT-8及びDST-7である。残差TUの一方の側が32より大きい場合、対応する変換はDCT-2として設定される。従って、サブ・ブロック変換は、残差ブロックのTUタイリング、cbf、水平及び垂直変換を一緒に指定し、これは、ブロックの主要な残差がブロックの一方の側にあるケースに対するシンタックス・ショートカットと考えられてもよい。
2.4.3.1 シンタックス要素
7.3.7.5 コーディング・ユニット・シンタックス
【0114】
【数22】
1に等しいcu_sbt_flagは、現在のコーディング・ユニットに対して、サブブロック変換が使用されることを指定する。0に等しいcu_sbt_flagは、現在のコーディング・ユニットに対して、サブブロック変換が使用されないことを指定する。
cu_sbt_flagが存在しない場合、その値は0に等しいと推定される。
NOTE-:サブブロック変換が使用される場合、コーディング・ユニットは2つの変換ユニットに分割され;一方の変換単位は残差データを有し、他方は残差データを有しない。
1に等しいcu_sbt_quad_flagは、現在のコーディング・ユニットに対して、サブブロック変換が、現在のコーディング・ユニットの1/4サイズの変換ユニットを含むことを指定する。0に等しいcu_sbt_quad_flagは、現在のコーディング・ユニットに対して、サブブロック変換が、現在のコーディング・ユニットの1/2サイズの変換ユニットを含むことを指定する。
cu_sbt_horizontal_flagが存在しない場合、その値は0に等しいと推定される。
1に等しいcu_sbt_horizontal_flagは、現在のコーディング・ユニットが2つの変換ユニットに水平に分割されることを指定する。0に等しいcu_sbt_horizontal_flag[ x0 ][ y0 ]は、現在のコーディング・ユニットが2つの変換ユニットに垂直に分割されることを指定する。
cu_sbt_horizontal_flagが存在しない場合、その値は以下のように導出される:
- cu_sbt_quad_flagが1に等しい場合、cu_sbt_horizontal_flagはallowSbtHorQに等しく設定される。
- そうではない場合(cu_sbt_quad_flagが0に等しい)、cu_sbt_horizontal_flagはallowSbtHorHに等しく設定される。
1に等しいcu_sbt_pos_flagは、現在のコーディング・ユニットの第1変換ユニットのtu_cbf_luma, tu_cbf_cb及びtu_cbf_crは、ビットストリームに存在しないことを指定する。0に等しいcu_sbt_pos_flagは、現在のコーディング・ユニットの第2変換ユニットのtu_cbf_luma, tu_cbf_cb及びtu_cbf_crは、ビットストリームに存在しないことを指定する。
変数SbtNumFourthsTb0は以下のように導出される:
sbtMinNumFourths = cu_sbt_quad_flag ? 1 : 2 (7-117)
SbtNumFourthsTb0 = cu_sbt_pos_flag ? ( 4 - sbtMinNumFourths ) : sbtMinNumFourths (7-118)

0に等しいsps_sbt_max_size_64_flagは、サブブロック変換を許可するための最大CU幅と高さが32ルマ・サンプルであることを指定する。1に等しいsps_sbt_max_size_64_flagは、サブブロック変換を許可するための最大CU幅と高さが64ルマ・サンプルであることを指定する。
MaxSbtSize = sps_sbt_max_size_64_flag ? 64 : 32(7-33)

[0111]
2.4.4 量子化残差ドメイン・ブロック差分パルス・コード変調コーディング(QR-BDPCM)
JVET-N0413では、量子化残差ドメインBDPCM(以下、RBDPCMと表す)が提案されている。イントラ予測と同様に、予測方向にサンプル・コピーを行うことによって(水平又は垂直予測)、ブロック全体に関してイントラ予測が行われる。残差は量子化され、量子化された残差とその予測子(水平又は垂直)量子化値との間のデルタがコーディングされる。
[0112]
サイズがM(行)×N(列)のブロックである場合に、ri,j,0≦i≦M-1,0≦j≦N-1を、上又は左ブロック境界サンプルからのフィルタリングされていないサンプルを使用して(ライン毎に予測ブロックにわたって左隣接ピクセル値をコピーして)水平に又は(予測されるブロックの各ラインに上隣接ラインをコピーして)垂直にイントラ予測を実行した後の予測残差であるとする。Q(ri,j),0≦i≦M-1,0≦j≦N-1を、残差ri,jの量子化されたバージョンとし、ここで、残差は元のブロックと予測されたブロックの値の差分である。次いで、ブロックDPCMが量子化された残差サンプルに適用され、要素r~ i,jを有する修正されたM×NアレイR~という結果が得られる。垂直BDPCMがシグナリングされる場合には:
[0113]
【0115】
【数23】
[0114]
水平予測の場合、同様なルールが適用され、残差量子化サンプルは以下によって取得される[0115]:
【0116】
【数24】
[0116]
残差量子化サンプルr~ i,jはデコーダに送られる。
【0117】
デコーダ側では、Q(ri,j),0≦i≦M-1,0≦j≦N-1を生成するために上記の計算は逆に行われる。垂直予測の場合は以下のとおりであり、
【0118】
【数25】
【0119】
水平予測の場合は以下のとおりである。
【0120】
【数26】
【0121】
インバート量子化残差Q-1(Q(ri,j))は、イントラ・ブロック予測値に加算されて、再構成されたサンプル値を生成する。
【0122】
QR-BDPCMが選択される場合、適用される変換は存在しない。
【0123】
2.5 係数のエントロピー・コーディング
2.5.1 変換適用ブロックの係数コーディング
HEVCでは、コーディング・ブロックの変換係数は、重複しない係数グループ(又はサブブロック)を用いてコーディングされ、各CGは、コーディング・ブロックの4×4ブロックの係数を含む。コーディング・ブロック内のCGとCG内の変換係数は、予め定義されたスキャン順序に従ってコーディングされる。
【0124】
コーディング・ブロック内のCGとCG内の変換係数は、予め定義されたスキャン順序に従ってコーディングされる。CGとCG内の係数の両方とも、対角線上向き右スキャン順序に従う。4×4ブロック及び8×8スキャン順序の例がそれぞれ図16及び図17に描かれている。
【0125】
コーディング順序は、反転したスキャン順序(即ち、図17ではCG3からCG0への復号化)であることに留意をようし、あるブロックを復号化する場合、最後の非ゼロ係数の座標が最初に復号化される。
【0126】
少なくとも1つの非ゼロ変換係数を有するCGの変換係数レベルのコーディングは、複数のスキャン・パスに分離されてもよい。第1パスでは、第1ビン(bin0で示され、significant_coeff_flagとも言及され、これは係数の大きさが0より大きいことを示す)がコーディングされる。次に、第2/第3ビン(それぞれbin1及びbin2により指定され、coeff_abs_greater1_flag及びcoeff_abs_greater2_flagとも言及される)をコーディングするコンテキストに対する2つのスキャン・パスが適用されてもよい。最終的に、必要に応じて、係数レベルの符号情報及び残りの値(coeff_abs_level_remainingとも呼ばれる)をコーディングするための2つ以上のスキャン・パスが呼び出される。最初の3つのスキャン・パスのビンのみが、レギュラー・モードでコーディングされ、それらのビンは以下の説明ではレギュラー・ビンと呼ばれることに留意されたい。
【0127】
VVC 3では、各々のCGについて、レギュラー・コーディングされたビンとバイパス・コーディングされたビンはコーディング順序の中で分離され;先ず、サブブロックに対するすべてのレギュラー・コーディングされたビンが送信され、その後にバイパス・コーディングされたビンが送信される。サブブロックの変換係数レベルは、スキャン・ポジションにおける5つのパスで以下のようにしてコーディングされる:
【0128】
○ パス1:有意性(sig_flag)、1より大フラグ(gt1_flag)、パリティ(par_level_flag)、2より大フラグ(gt2_flag)のコーディングが、コーディング順序で処理される。sig_flagが1に等しい場合、先ず、gt1_flagがコーディングされる(それは、絶対レベルが1より大きいかどうかを指定する)。gt1_flag が1に等しい場合、par_flagが追加的にコーディングされる(それは、絶対レベル・マイナス2のパリティを指定する)。
【0129】
○ パス2:残りの絶対レベル(リメインダ(remainder))のコーディングが、1に等しいgt2_flag又は1に等しいgt1_flagを有するすべてのスキャン・ポジションに対して処理される。非バイナリ・シンタックス要素は、Golomb-Riceコードでバイナリ化され、結果のビンは算術符号化エンジンのバイパス・モードでコーディングされる。
【0130】
○ パス3:(レギュラー・コーディングされたビンの限界に到達したことに起因して)第1パスでsig_flagがコーディングされていない係数の絶対レベル(absLevel)は、Golomb-Riceコードを使用して算術コーディング・エンジンのバイパス・モードで完全にコーディングされる。
【0131】
○ パス4:1に等しいsig_coeff_flagを有するすべてのスキャン・ポジションに対する符号(sign_flag)のコーディング
【0132】
4x4サブブロックに関して、32より多くないレギュラー・コーディングされたビン(sig_flag, par_flag, gt1_flag及びgt2_flag)が符号化又は復号化されることが保証される。2×2クロマ・サブブロックの場合、レギュラー・コーディングされたビンの数は8に制限される。
【0133】
(パス3における)非バイナリ・シンタックス要素リメインダをコーディングためのライス・パラメータ(ricePar)は、HEVCと同様に導出される。各サブブロックの始めに、riceParは0に等しく設定される。シンタックス要素リメインダをコーディングした後に、ライス・パラメータは予め定義された式に従って修正される。(パス4における)非バイナリ・シンタックス要素absLevelをコーディングするために、ローカル・テンプレート中の絶対値の合計sumAbsが決定される。変数ricePar及びposZeroは、テーブル・ルックアップによって、依存量子化及びsumAbに基づいて決定される。中間変数codeValueは以下のように導出される:
【0134】
○ absLevel[k]が0に等しい場合、codeValueはposZeroに等しく設定される;
【0135】
○ そうではない場合、absLevel[k]がposZero以下であるならば、codeValueはabsLevel[k] - 1に等しく設定される;
【0136】
○ そうではない場合(absLevel[k]はposZeroより大きい)、codeValueはabsLevel[k]に等しく設定される。
【0137】
codeValueの値は、ライス・パラメータriceParとともにGolomb-Riceコードを使用してコーディングされる。
【0138】
2.5.1.1 係数コーディングのためのコンテキスト・モデリング
変換係数レベルの絶対値に関連するシンタックス要素の確率モデルの選択は、ローカルな近隣における絶対値レベルの値又は部分的に再構成された絶対値レベルの値に依存する。使用されるテンプレートは図18に示されている。
【0139】
選択される確率モデルは、ローカルな近隣における絶対値レベル(又は部分的に再構成された絶対値レベル)と、ローカルな近隣における0より大きな絶対値レベル(1に等しいsig_coeff_flagsの数によって与えられる)との合計に依存する。コンテキスト・モデリング及び二値化は、ローカルな近隣に対する以下の尺度に依存する:
【0140】
○ numSig:ローカルな近隣における非ゼロ・レベルの数;
【0141】
○ sumAbs1:ローカルな近隣における第1パス後の部分的に再構成された絶対値レベルの合計(absLevel1);
【0142】
○ sumAbs:ローカルな近隣における再構成された絶対値レベルの合計;
【0143】
○ ダイアゴナル・ポジション(d):変換ブロック内の現在のスキャン・ポジションの水平及び垂直座標の合計。
【0144】
numSig, sumAbs1,及びdの値に基づいて、sig _flag, par _flag, gt1_flag,及びgt2_flagをコーディングするための確率モデルが選択される。abs_remainderを二進化するためのライス・パラメータは、sumAbs及びnumSigの値に基づいて選択される。
【0145】
2.5.1.2 依存量子化(DQ)
更に、同じHEVCスカラー量子化が、依存スケール量子化(dependent scale quantization)と呼ばれる新たな概念とともに使用される。依存スカラー量子化とは、変換係数の許容可能な再構成値の集合が、再構成順序において現在の変換係数レベルに先行する変換係数レベルの値に依存しているアプローチを指す。このアプローチの主な効果は、HEVCで使用されるような従来の独立スカラー量子化と比較して、許容可能な再構成ベクトルが、N次元ベクトル空間(Nは変換ブロックにおける変換係数の数を表す)において、より高密度に詰め込まれることである。これは、N次元単位体積あたりの許容可能な再構成ベクトルの所与の平均数に対して、入力ベクトルと最も近い再構成ベクトルとの間の平均歪みが低減されることを意味する。依存スカラー量子化のアプローチは:(a)異なる再構成レベルを有する2つのスカラー量子化器を定義すること、及び(b)2つのスカラー量子化器の間のスイッチングのためのプロセスを定義することによって実現される。
【0146】
Q0とQ1で示される2つのスカラー量子化器が図19に示されている。利用可能な再構成レベルの位置は、量子化ステップ・サイズΔによって一意に指定される。使用されるスカラー量子化器(Q0又はQ1)は、ビットストリームで明示的にはシグナリングされない。その代わりに、現在の変換係数に使用される量子化器は、コーディング/再構成順序において現在の変換係数に先行する変換係数レベルのパリティによって決定される。
【0147】
図20に示すように、2つのスカラー量子化器(Q0及びQ1)の間の切り替えは、4つの状態を有する状態マシンによって実現される。状態は、0、1、2、3という4つの異なる値をとることができる。状態は、コーディング/再構成順序において現在の変換係数に先行する変換係数レベルのパリティによって一意に決定される。変換ブロックに対する逆量子化の始めに、状態は0に等しく設定される。変換係数は、スキャニング順序(即ち、それらがエントロピー復号化されるのと同じ順序)で再構成される。現在の変換係数が再構成された後、状態は図20に示されるように更新され、ここで、kは変換係数レベルの値を示す。
2.5.1.3 シンタックス及びセマンティクス
7.3.7.11 残差コーディング・シンタックス
【0148】
【数27】
[0148]
2.5.2 TSコーディングされたブロック及びQR-BDPCMコーディングされたブロックの係数コーディング
QR-BDPCMはTSコーディングされたブロックのコンテキスト・モデリング方法に従う。
【0149】
TS残差に関する修正された変換係数レベル・コーディング
レギュラー残差コーディングの場合と比較して、TSに対する残差コーディングは以下の変更を含む:
【0150】
(1)最後のx/yポジションのシグナリングはない。
【0151】
(2)coded_sub_block_flag すべての先行するフラグが0に等しい場合、最後のサブブロックを除いてすべてのサブブロックについてコーディングされる。
【0152】
(3)coded_sub_block_flag 縮小テンプレートを用いるコンテキスト・モデリング
【0153】
(4)abs_level_gt1_flag及びpar_level_flagに対するシングル・コンテキスト・モデル
【0154】
(5)符号フラグ、5,7,9より大きな追加フラグに対するコンテキスト・モデリング
【0155】
(6)リメインダ二進化のための修正されたライス・パラメータ
[0156]
(7)コンテキスト・コーディングされたビンのサンプル当たりの数に対する制限、1ブロック内のサンプル当たり2つのビン
2.5.2.1 シンタックス及びセマンティクス
7.3.6.10 変換ユニット・シンタックス
【0156】
【数28】
コンテキスト・コーディングされたビンの数は、各CGに対してサンプル当たりビン2つより大きくないように制限される。
テーブル9-15 コンテキスト・コーディング・ビンによるctxIncのシンタックス要素に対する割り当て
【0157】
【数29】
3 既存の実装の欠点
[0157]
現行の設計は以下の問題を有する:
【0158】
(1)4つのクロマ成分に対する事前に定義された変換セットは、ルマ成分の変換セットと同じである。更に、同じイントラ予測モードを伴うルマ及びクロマ・ブロックは、同じ変換セットを使用している。しかしながら、典型的にはルマ成分と比較してクロマ信号はより滑らかである。同じセットを使用することは、最適ではない場合がある。
【0159】
(2)RSTは、すべてのCGではなく特定のCGに限って適用される。しかしながら、RSTインデックスをシグナリングすることに関する決定は、全ブロックにおける非ゼロ係数の数に依存する。RSTが適用されるCGのすべての係数がゼロである場合、RSTインデックスをシグナリングする必要性はない。しかしながら、現行の設計はそれでもインデックスをシグナリングする場合があり、不必要なビットを浪費している。
【0160】
(3)RSTインデックスは、残差コーディングの後にシグナリングされ、なぜなら非ゼロ係数が所定の場所に存在するかどうか、どの程度多く存在するかを記録する必要があるからである(例えば、セクション2.3.2.2.7のnumZeroOutSigCoeff, numSigCoeff )。このような設計は、解析プロセスをより複雑にする。
【0161】
(4)RSTインデックスは、コンテキスト・コーディング化され、コンテキスト・モデリングは、コーディングされたルマ/クロマ・イントラ予測モード、及びMTSインデックスに依存する。このような設計は、イントラ予測モードの再構成に関して解析の遅延を導入してしまう。また、8つのコンテキストが導入されており、これはハードウェア実装の負担となる可能性がある。
【0162】
(a)DMとCCLMは同じコンテキスト・インデックス・オフセットを共有しているが、それらは2つの異なるクロマ・イントラ予測法であるので意味をなさない。
【0163】
(5)非TS残差符号化の現行の設計は、先ず係数情報をコーディングし、RSTのインデックス(即ち、RSTを使用するか又は使用しないか、使用する場合には、どの行列が選択されるか)のコーディングに続く。このような設計では、残差のエントロピー・コーディングにおいて、RSTのオン/オフ情報を考慮することができない。
【0164】
(6)RSTは、一次変換が適用された変換ブロックの左上領域に常に適用される。しかしながら、異なる一次変換を基礎とする場合、エネルギーが変換ブロックの左上領域に集中することは、常には正しくない。
【0165】
4 残差コーディングのコンテキスト・モデリング方法例
ここで開示される技術の実施形態は、既存の実装の欠点を克服し、それによって、より高いコーディング効率を有するビデオ・コーディングを提供する。開示される技術に基づく残差コーディングのためのコンテキスト・モデリングのための方法は、現在及び将来双方のビデオ・コーディング規格を強化する可能性があり、種々の実装について説明される以下の実施例において解明される。以下に提供される開示される技術の実施例は、一般的な概念を説明しており、限定として解釈されるようには意図されていない。実施例において、明示的に別意を指定しない限り、これらの実施例で説明される種々の特徴は組み合わせることが可能である。
【0166】
これらの実施例において、RSTはJVET-N0193における如何なる設計バリエーションであってもよい。RSTは、二次変換を1つのブロックに適用するか、又はある変換を、変換スキップ(TS)コーディングされたブロックに適用することが可能な如何なる技術(例えば、TSコーディングされたブロックに適用されるJVET-N0193で提案されたRST)であってもよい。
【0167】
更に、「ゼロ・アウト領域」又は「ゼロ・アウトCG」は、二次変換プロセスで使用される縮小された変換サイズに起因して、常にゼロ係数を有する領域/CGを指定する場合がある。例えば、二次変換サイズが16×32であり、CGサイズが4×4である場合、最初の2つのCGに適用されるが、1番目のCGだけが非ゼロ係数を有する可能性があり、2番目の4×4CGもゼロ・アウトCGと言及される。
RSTにおける変換行列の選択
1.RSTが適用されるサブ領域は、ブロックの左上部分ではないサブ領域である可能性がある。
a. 一例では、RSTは、ブロックの右上、右下、左下、又は中央のサブ領域に適用される可能性がある。
b. RSTが適用されるサブ領域は、イントラ予測モード及び/又は一次変換行列(例えば、DCT-II、DST-VII、恒等変換)に依存する可能性がある。

2.RSTで使用される変換セット及び/又は変換行列の選択は、色成分に依存する可能性がある。
a.一例では、変換行列の1セットがルマ(又はG)成分に対して使用され、1セットがクロマ成分(又はB/R)成分に対して使用されてもよい。
b.一例では、各色成分は、1セットに対応してもよい。
c.一例では、少なくとも1つの行列は、異なる色成分に対する2つ又は複数のセットの何れにおいても相違する。

3.RSTで使用される変換セット及び/又は変換行列の選択は、イントラ予測方法(例えば、CCLM、多重参照ライン・ベースのイントラ予測法、行列ベースのイントラ予測法)に依存する可能性がある。
a.一例では、変換行列の1セットがCCLMコーディングされたブロックに対して使用され、他のものが非CCLMコーディング・ブロックに対して使用されてもよい。
b.一例では、変換行列の1セットがノーマルなイントラ予測コーディングされたブロックに対して使用され、他のものが多重参照ラインが有効なブロック(即ち、イントラ予測のために隣接するラインを使用しない)に対して使用されてもよい。
c.一例では、変換行列の1セットがジョイント・クロマ残差コーディングを用いたブロックに対して使用され、他のものはジョイント・クロマ残差コーディングが適用されないブロックに対して使用されてもよい。
d.一例では、少なくとも1つの行列は、異なるイントラ予測方法に対する2つ又は複数のセットの何れにおいても相違する。
e.あるいは、RSTは、特定のイントラ予測方向及び/又は特定のコーディング・ツール、例えば、CCLM、及び/又はジョイント・クロマ残差コーディング、及び/又は特定の色成分(例えば、クロマ)でコーディングされたブロックに対してディセーブルにされてもよい。

4.RSTで使用される変換セット及び/又は変換行列の選択は、一次変換に依存する可能性がある。
a.一例では、1つのブロックに適用される1次変換が恒等変換である場合(例えば、TSモードが1つのブロックに適用される)、RSTで使用される変換セット及び/又は変換行列は、他の種類の1次変換とは異なる可能性がある。
b.一例では、1つのブロックに適用される水平及び垂直1-D一次変換が同じ基底(例えば、双方ともDCT-II)である場合、RSTで使用される変換セット及び/又は変換行列は、異なる方向(垂直又は水平)に対する異なる基底によるその一次変換とは異なる可能性がある。

RSTサイド情報のシグナリング及び残差コーディング
5.RSTのサイド情報(例えば、st_idx)をシグナリングするかどうか、及び/如何にして行うかは、(スキャニング順序で)ブロック内で最後の非ゼロ係数に依存してもよい。
a.一例では、最後の非ゼロ係数が、RSTが適用されたCG内に位置する場合に限り、RSTがイネーブルにされてもよく、RSTのインデックスがシグナリングされてもよい。
b.一例では、最後の非ゼロ係数が、RSTが適用されたCG内に位置していない場合、RSTはディセーブルにされ、RSTのシグナリングはスキップされる。

6.RSTのサイド情報(例えば、st_idx)をシグナリングするかどうか、及び/如何にして行うかは、ブロック全体ではなく、1ブロックの部分的な領域内の係数に依存してもよい。
a.一例では、部分的な領域が、RSTが適用されるCGとして定義されてもよい。
b.一例では、部分的な領域は、ブロックのスキャニング順序又は逆のスキャニング順序における最初の又は最後のM個の(例えば、M=1、又は2) CGとして定義されてもよい。
i. 一例では、Mはブロック・ディメンジョンに依存する。
ii.一例では、ブロック・サイズが4xN及び/又はNx4(N>8)である場合に、Mは2に設定される。
iii.一例では、ブロック・サイズが4x8及び/又は8x4及び/又はWxH(W≧8,H≧8)である場合に、Mは1に設定される。
c.一例では、これは部分的な領域内の非ゼロ係数の位置に依存する可能性がある。
d.一例では、これは部分的な領域内の非ゼロ係数のエネルギー(2乗和又は絶対値の和など)に依存する可能性がある。
e.一例では、これはブロック全体ではなく、1ブロックの部分的な領域内の非ゼロ係数の数に依存する可能性がある。
i.1ブロックの部分的な領域内の非ゼロ係数の数が閾値より小さい場合、RSTのサイド情報のシグナリングはスキップされてもよい。
ii.一例では、閾値は、スライス・タイプ/ピクチャ・タイプ/パーティション・ツリー・タイプ(デュアル又はシングル)/ビデオ・コンテンツ(スクリーン・コンテンツ又はカメラでキャプチャされたコンテンツ)に依存してもよい。
iii.一例では、閾値は、4:2:0又は4:4:4のようなカラー・フォーマット、及び/又はY又はCb/Crのような色成分に依存してもよい。

7.RSTが適用される可能性のあるCGに非ゼロ係数が存在しない場合、RSTはディセーブルにされるものとする。
a.一例では、RSTが1ブロックに適用される場合、RSTが適用される少なくとも1つのCGは、少なくとも1つの非ゼロ係数を含まなければならない。
b.一例では、4×N及び/又はN×4(N>8)に関し、RSTが適用される場合、最初の2つの4×4CGは少なくとも1つの非ゼロ係数を含まなければならない。
c.一例では、4×8及び/又は8×4に関し、RSTが適用される場合、左上4×4は少なくとも1つの非ゼロ係数を含まなければならない。
d.一例では、WxH(W>=8及びH>=8)に関し、RSTが適用される場合、左上4×4は少なくとも1つの非ゼロ係数を含まなければならない。
e.適合ビットストリームは、上記の条件の1つ以上を満たさなければならない。

8.RST関連のシンタックス要素は、残差(例えば、変換係数/直接的に量子化されるもの)をコーディングする前にシグナリングされてもよい。
a.一例では、ゼロ・アウト領域における非ゼロ係数の数(例えば、numZeroOutSigCoeff)及びブロック全体における非ゼロ係数の数(例えば、numSigCoeff)のカウントは、係数の解析プロセスで除外される。
b.一例では、RST関連のシンタックス要素(例えば、st_idx)は、残差コーディングの前にコーディングされてもよい。
c.RST関連シンタックス要素は、条件付きで(例えば、コーディングされたブロック・フラグ、TSモードの使用法に従って)シグナリングされてもよい。
iv.一例では、RST関連シンタックス要素(例えば、st_idx)は、コーディングされたブロック・フラグのシグナリングの後、又はTS/MTS関連シンタックス要素のシグナリングの後にコーディングされてもよい。
v.一例では、TSモードがイネーブルにされている場合(例えば、復号化されたtransform_skip_flagが1に等しい場合)、RST関連シンタックス要素のシグナリングはスキップされる。
d.残りの関連シンタックスは、ゼロ・アウトCGに対してシグナリングされない可能性がある。
e.残差をどのようにコーディングするか(例えば、スキャニング順序、二進化、復号化されるシンタックス、コンテキスト・モデリング)は、RSTに依存してもよい。
i.一例では、対角線上向き右スキャニング順序ではなく、ラスタ・スキャニング順序が適用されてもよい。
1)ラスタ・スキャニング順序は左から右へ、上から下へ、又はその逆の順序である。
2)代替的に、対角線上向き右スキャニング順序の代わりに、垂直スキャニング順序(上から下へ、左から右へ、又はその逆の順序)が適用されてもよい。
3)代替的に、更には、コンテキスト・モデリングが修正されてもよい。
a.一例では、コンテキスト・モデリングは、右、下、右下の近隣を使用するのではなく、テンプレートの中で、スキャン順序で最近のN個の近隣である以前にコーディングされた情報に依存してもよい。
b.一例では、コンテキスト・モデリングは、スキャンされたインデックスに従って、テンプレートの中で、以前にコーディングされた情報(例えば、現在のインデックスが0に等しいと仮定して、-1,-2,...)に依存してもよい。
ii.一例では、異なる二値化方法(例えば、ライス・パラメータ導出)を適用して、RSTコーディングされたブロック及びRSTコーディングされてないブロックに関連する残差をコーディングしてもよい。
iii.一例では、特定のシンタックス要素のシグナリングは、RSTコーディングされたブロックに対してスキップされてもよい。
1)RSTが適用されるCGに対するCGコード化ブロック・フラグ(coded_sub_block_flag)のシグナリングはスキップされてもよい。
a.一例では、RST8x8が対角線スキャン順序で最初の3つのCGに適用された場合、CGコード化ブロック・フラグのシグナリングは、第2及び第3CG、例えば、ブロックの左上8x8領域の右上4×4CG及び左下4×4CGについてスキップされる。
i.代替的に、更に、対応するCGコード化ブロック・フラグは0であると推定される、即ち、全ての係数はゼロである。
b.一例では、RSTが1ブロックに適用される場合に、CGコード化ブロック・フラグのシグナリングは、スキャニング順序で最初のCG(又は逆のスキャニング順序で最後のCG)に対してスキップされる。
ii.代替的に、更に、ブロック内の左上CGに対するCGコード化ブロック・フラグは、1であると推定される、即ち、それは少なくとも1つの非ゼロ係数を含む。
c.8×8ブロックの一例が図21に示されている。RST8x8又はRST4x4が8x8ブロックに適用される場合、CG0のcoded_sub_block_flagは1であると推定され、CG1及びCG2のcoded_sub_block_flagは0であると推定される。
2)特定の座標に対する係数の大きさ及び/又は符号フラグのシグナリングはスキップされてもよい。
a.一例では、スキャン順序における1つのCGに対するインデックスが、非ゼロ係数が存在し得る最大許容インデックスより小さくない場合(例えば、セクション0におけるnonZeroSize)、係数のシグナリングはスキップされてもよい。
b.一例では、sig_coeff_flag, abs_level_gtX_flag, par_level_flag, abs_remainder, coeff_sign_flag, dec_abs_levelのようなシンタックス要素のシグナリングは、スキップされてもよい。
3)代替的に、残差のシグナリング(例えば、CGコード化ブロック・フラグ、係数の大きさ、及び/又は特定の座標の符号フラグ)は維持されるかもしれないが、コンテキスト・モデリングは、他のCGと異なるように修正される可能性がある。
iv.一例では、RSTが適用されるCG及び他のCGにおける残差のコーディングは異なっていてもよい。
1)上記の条項に関し、それらはRSTが適用されるCGにのみ適用されてもよい。

9.RST関連シンタックス要素は、変換スキップ及び/又はMTSインデックスのような他の変換指示の前にシグナリングされてもよい。
a.一例では、変換スキップのシグナリングは、RST情報に依存してもよい。
i.一例では、RSTがブロック内で適用される場合、変換スキップ指示はシグナリングされず、ブロックについて0であると推定される。
b.一例では、MTSインデックスのシグナリングは、RST情報に依存してもよい。
i.一例では、RSTがブロック内で適用される場合、1つ以上のMTS変換指示は信号化されず、ブロックについて使用されないと推定される。

10.1つのブロック内の異なる部分に対する算術符号化において、異なるコンテキスト・モデリング法を使用することが提案される。
a.一例では、ブロックは、スキャニング順序における最初のM個のCGと残りのCGという2つの部分であるように扱われる。
i.一例において、Mは1に設定される。
ii.一例において、Mは4xN及びNx4(N>8)ブロックに対して2に設定され、他のすべての場合に対して1に設定される。
b.一例では、ブロックは、RSTが適用されるサブ領域とRSTが適用されないサブ領域という2つの部分であるように扱われる。
i.RST4x4が適用される場合、RSTが適用されるサブ領域は、現在のブロックの最初の1つ又は2つのCGである。
ii.RST4x4が適用される場合、RSTが適用されるサブ領域は、現在のブロックの最初の3つのCGである。
c.一例では、1つのブロック内の最初の部分に対するコンテキスト・モデリング・プロセスにおいて、以前にコーディングされた情報の使用をディセーブルにするが、2番目の部分に対してはそれをイネーブルにすることが提案される。
d.一例では、第1CGを復号化する場合に、残りの1つ以上のCGの情報は、使用されることを許容されない場合がある。
i.一例では、第1CGに対してCGコード化ブロック・フラグをコーディングする場合に、第2CGの値(例えば右又は下)は考慮されない。
ii.一例では、第1CGに対するCGコード化ブロック・フラグをコーディングする場合に、第2及び第3CGの値(例えば、WxH(W≧8及びH≧8)に対する右及び下のCG)は考慮されない。
iii.一例では、現在の係数をコーディングする場合に、コンテキスト・テンプレートにおける近隣が異なるCG内にある場合、この近隣からの情報は、使用されるように許可されない。
e.一例では、RSTが適用される領域内の係数を復号化する場合に、RSTが適用されない残りの領域の情報は、使用されるように許可されない場合がある。
f.代替的に、更に、上記方法は特定の条件下で適用されてもよい。
i.条件は、RSTがイネーブルであるかどうかを含んでもよい。
ii.条件は、ブロック寸法を含んでもよい。

RSTサイド情報の算術コーディングにおけるコンテキスト・モデリング
11.RSTインデックスをコーディングする場合に、コンテキスト・モデリングは、明示的又は暗黙的な多重変換選択(MTS)がイネーブルにされているかどうかに依存してもよい。
a.一例では、暗黙のMTSがイネーブルである場合に、同じイントラ予測モードでコーディングされたブロックに対して、異なるコンテキストが選択されてもよい。
i.一例では、形状(正方形又は非正方形)のようなブロック寸法が、コンテキストを選択するために使用される。
b.一例では、明示的なMTSに対してコーディングされる変換インデックス(例えば、tu_mts_idx)をチェックする代わりに、変換行列の基底が使用されてもよい。
i.一例では、水平及び垂直1-D変換の両方についてDCT-IIを用いた変換マトリクス基底に対して、対応するコンテキストは、他の種類の変換マトリクスとは相違していてもよい。

12.RSTインデックスをコーディングする場合に、コンテキスト・モデリングはCCLMがイネーブルにされているかどうかに依存してもよい(例えば、sps_cclm_enabled_flag)。
a.代替的に、RSTインデックス・コーディングのためのコンテキストを選択することをイネーブルにするかどうか、又はどのように選択するかは、CCLMが1つのブロックに適用されるかどうかに依存してもよい。
b.一例では、コンテキスト・モデリングは、現在のブロックに対してCCLMがイネーブルにされているかどうかに依存してもよい。
i.一例では次のとおりであってもよい:
the intraModeCtx = sps_cclm_enabled_flag? ( intra_chroma_pred_mode[ x0 ][ y0 ] is CCLM: intra_chroma_pred_mode[ x0 ][ y0 ] is DM) ? 1 : 0
c.代替的に、RSTインデックス・コーディングのためのコンテキストを選択することをイネーブルにするかどうか、又はどのように選択するかは、現在のクロマ・ブロックがDMモードでコーディングされるかどうかに依存してもよい。
i.一例では次のとおりであってもよい:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] == (sps_cclm_enabled_flag ? 7:4) ) ? 1 : 0

13.RSTインデックスをコーディングする場合に、コンテキスト・モデリングはブロック・ディメンジョン/分割深度(例えば、四分木深度及び/又はBT/TT深度)に依存してもよい。

14.RSTインデックスをコーディングする場合に、コンテキスト・モデリングは、カラー・フォーマット及び/又は色成分に依存してもよい。

15.RSTインデックスをコーディングする場合に、コンテキスト・モデリングは、イントラ予測モード及び/又はMTSインデックスから独立していてもよい。

16.RSTインデックスをコーディングする場合に、第1及び/又は第2ビンは、1つのコンテキストのみでコンテキスト・コーディングされるか、又はバイパス・コーディングされる可能性がある。

条件下でRSTプロセスを起動すること
17.インバースRSTプロセスを起動するかどうかは、CGコード化ブロック・フラグに依存してもよい。
a.一例では、左上のCGコード化ブロック・フラグがゼロである場合、プロセスを起動する必要はない。
i.一例では、左上CGコード化ブロック・フラグがゼロであり、ブロック・サイズが4xN/Nx4(N>8)と等しくない場合、プロセスを起動する必要はない。
b.一例では、スキャニング順序で最初の2つのCGコード化ブロック・フラグが両方ともゼロに等しい場合、プロセスを起動する必要はない。
i.一例では、スキャニング順序で最初の2つのCGコード化ブロック・フラグが両方ともゼロに等しく、ブロック・サイズが4xN/Nx4(N>8)に等しい場合、プロセスを起動する必要はない。

18.インバースRSTプロセスを起動するかどうかは、ブロック寸法に依存してもよい。
a.一例では、4×8/8×4のような特定のブロック寸法に対して、RSTはディセーブルにされてもよい。代替的に、更に、RST関連シンタックス要素のシグナリングはスキップされてもよい。
【0168】
5 開示される技術の実装例
以下の例示的な実施形態において、JVET-N0193のトップにおける変更は太字及び斜体で強調されている。削除されるテキストは、二重括弧でマーキングされる(例えば、[[a]]は、文字“a”の削除を示す)。
5.1 実施形態#1
RSTインデックスのシグナリングは、ブロック全体ではなく、ブロックのサブ領域内の非ゼロ係数の数に依存する。
7.3.6.11 残差コーディング・シンタックス
【0169】
【数30】
代替的に、条件は次のもので置換されてもよい:
【0170】
【数31】
5.2 実施形態#2
[0170]
RSTは、特定のCGのコーディングされたブロック・フラグに従って起動されない場合がある。
8.7.4 スケーリングされた変換係数に対する変換プロセス
8.7.4.1 概要
このプロセスに対する入力は次のとおりである:
- ルマ・ロケーション( xTbY, yTbY ):現在のピクチャの左上ルマ・サンプルに対する、現在のルマ変換ブロックの左上サンプルを指定する。
- 変数nTbW:現在の変換ブロックの幅を指定する。
- 変数nTbH :現在の変換ブロックの高さを指定する。
- 変数cIdx:現在のブロックの色成分を指定する。
- スケーリングされた変換係数の(nTbW)x(nTbH)アレイd[ x ][ y ]:x = 0..nTbW - 1, y = 0..nTbH - 1
このプロセスの出力は、残差サンプルの (nTbW)x(nTbH)アレイr[x][y]であり、x = 0..nTbW - 1, y = 0..nTbH - 1である。
変数bInvokeSTは0に設定され、更に、以下の条件のうちの1つが真である場合には1に修正される:
- coded_sub_block_flag[0][0]が1に等しく、nTbW x nTbH !=32である場合
- coded_sub_block_flag[0][0]及びcoded_sub_block_flag[0][1]が1に等しく、nTbWが4に等しく、nTbHが8より大きい場合
- coded_sub_block_flag[0][0]及びcoded_sub_block_flag[1][0]が1に等しく、nTbWが8より大きく、nTbHが4に等しい場合

bInvokeSTが1に等しく、st_idx[ xTbY ][ yTbY ]が0に等しくない場合は、以下が適用される:
1.変数nStSize, log2StSize, numStX, numStY,及びnonZeroSizeは、以下のように導出される:
- nTbW及びnTbH双方が8以上である場合、log2StSizeは3に設定され、nStOutSizeは48に設定される。
- そうではない場合、log2StSizeは2に設定され、nStOutSizeは16に設定される。
- nStSizeは( 1 << log2StSize )に設定される。
- nTbHは4に等しく、nTbWは8より大きく、numStXは2に等しく設定される。
- そうではない場合、numStXは1に等しく設定される。
- nTbWは4に等しく、nTbHは8より大きい場合、numStYは2に等しく設定される。
- そうではない場合、numStYは1に等しく設定される。
- nTbW及びnTbH双方が4に等しいか、又はnTbW及びnTbH双方が8に等しい場合、nonZeroSizeは8に等しく設定される。
- そうではない場合、nonZeroSizeは16に等しく設定される。
2.xSbIdx = 0..numStX - 1及びySbIdx = 0..numStY - 1に関し、以下が適用される:
- 変数アレイu[ x ](x = 0..nonZeroSize - 1)は、以下のようにして導出される:
xC = ( xSbIdx << log2StSize ) + DiagScanOrder[ log2StSize ][ log2StSize ][ x ][ 0 ]
yC = ( ySbIdx << log2StSize ) + DiagScanOrder[ log2StSize ][ log2StSize ][ x ][ 1 ]
u[ x ] = d[ xC ][ yC ]
- u[ x ](x = 0..nonZeroSize - 1)は、条項8.7.4.4で指定されるような1次元変換プロセスを起動することによって、変数アレイv[x](x = 0..nStOutSize - 1)に変換され、そのプロセスは、スケーリングされた変換係数の変換入力長nonZeroSizeと、変換出力長nStOutSizeと、リストu[ x ](x = 0..nonZeroSize - 1)と、変換セット選択のためのインデックスstPredModeIntraと、変換セットにおける変換選択のためのインデックスst_idx[ xTbY ][ yTbY ]とを入力とし、出力はリストv[x](x = 0..nStOutSize - 1)である。変数stPredModeIntraは、条項 8.4.4.2.1.で指定されるpredModeIntraに設定される。
- アレイd[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ](x = 0..nStSize - 1, y = 0..nStSize - 1)は、以下のように導出される:
- stPredModeIntraが34以下であるか、又はINTRA_LT_CCLM, INTRA_T_CCLM,又はINTRA_L_CCLMに等しい場合、以下が適用される:
d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] = ( y < 4 ) ? v[ x + ( y << log2StSize ) ] : ( ( x < 4 ) ? v[ 32 + x + ( ( y - 4 ) << 2 ) ] : d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] )
- そうではない場合、以下が適用される:
d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] = ( y < 4 ) ? v[ y + ( x << log2StSize ) ] : ( ( x < 4 ) ? v[ 32 + ( y - 4 ) + ( x << 2 ) ] : d[ ( xSbIdx << log2StSize ) + x ][ ( ySbIdx << log2StSize ) + y ] )

変数implicitMtsEnabledは、以下のように導出される:
- sps_mts_enabled_flagが1に等しく、以下の条件のうちの何れかが真である場合、implicitMtsEnabledは1に等しく設定される:
- IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくないこと
- cu_sbt_flagが1に等しく、Max( nTbW, nTbH )が32以下であること
- sps_explicit_mts_intra_enabled_flag及びsps_explicit_mts_inter_enabled_flagが両方とも0に等しく、CuPredMode[ xTbY ][ yTbY ]がMODE_INTRAに等しい
- そうではない場合、implicitMtsEnabledは0に等しく設定される。

水平変換カーネルを指定する変数trTypeHorと垂直変換カーネルを指定する変数trTypeVerは、以下のように導出される:
- cIdxが0より大きい場合、trTypeHorとtrTypeVerは0に等しく設定される。
- そうではない場合、implicitMtsEnabledが1に等しいならば、以下が適用される:
- IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない場合、trTypeHorとtrTypeVerは、intraPredModeに依存してテーブル8-15で指定される。
- そうではない場合、cu_sbt_flagが1に等しいならば、trTypeHorとtrTypeVerは、cu_sbt_horizontal_flagとcu_sbt_pos_flagに依存してテーブル8-14で指定される。
- そうではない場合(sps_explicit_mts_intra_enabled_flag及び sps_explicit_mts_inter_enabled_flagは0に等しい)、trTypeHor及びtrTypeVerは以下のように導出される:
trTypeHor = ( nTbW >= 4 && nTbW <= 16 && nTbW <= nTbH ) ? 1 : 0 (8-1029)
trTypeVer = ( nTbH >= 4 && nTbH <= 16 && nTbH <= nTbW ) ? 1 : 0 (8-1030)
- そうではない場合、trTypeHor及びtrTypeVerは、tu_mts_idx[ xTbY ][ yTbY ]に依存してテーブル8-13で指定される。

変数nonZeroW及びnonZeroHは、以下のように導出される:
nonZeroW = Min( nTbW, ( trTypeHor > 0 ) ? 16 : 32 ) (8-1031)
nonZeroH = Min( nTbH, ( trTypeVer > 0 ) ? 16 : 32 ) (8-1032)

残差サンプルの(nTbW)x(nTbH)アレイrは、以下のように導出される:
1.nTbHが1より大きい場合、スケーリングされた変換係数d[ x ][ y ](x = 0..nonZeroW - 1, y = 0..nonZeroH - 1)の各々の(垂直)列は、条項8.7.4.2で規定されるような1次元変換プロセスを、各々の列x = 0..nonZeroW - 1について起動することによって、e[ x ][ y ](x = 0..nonZeroW - 1, y = 0..nTbH - 1)に変換され、そのプロセスは、変換ブロックの高さnTbHと、スケーリングされた変換係数の非ゼロ高さnonZeroHと、リストd[ x ][ y ](y = 0..nonZeroH - 1)と、trTypeVerに等しく設定される変換タイプ変数trTypeとを入力とし、出力はリストe[ x ][ y ](y = 0..nTbH - 1)である。
2.nTbH and nTbWが両方とも1より大きい場合、中間サンプル値g[ x ][ y ](x = 0..nonZeroW - 1, y = 0..nTbH - 1)は、以下のように導出される:
g[ x ][ y ] = Clip3( CoeffMin, CoeffMax, ( e[ x ][ y ] + 64 ) >> 7 ) (8-1033)

nTbWが1より大きい場合、結果のアレイg[ x ][ y ](x = 0..nonZeroW - 1, y = 0..nTbH - 1)の各々の(水平)行は、条項8.7.4.2で規定されるような1次元変換プロセスを、各々の行y = 0..nTbH - 1について起動することによって、g[ x ][ y ](x = 0..nonZeroW - 1, y = 0..nTbH - 1)に変換され、そのプロセスは、変換ブロックの幅nTbWと、結果のアレイg[ x ][ y ]の非ゼロ幅nonZeroWと、リストg[ x ][ y ](x = 0..nonZeroW - 1)と、trTypeHorに等しく設定される変換タイプ変数trTypeとを入力とし、出力はリストr[ x ][ y ](x = 0..nTbW - 1)である。
【0171】
5.3 実施形態#3
RSTインデックスのコンテキスト・モデリングを改訂する。
5.3.1 代替例#1
9.5.4.2.8 シンタックス要素st_idxに対するctxIncの導出プロセス
このプロセスに対する入力は、色成分インデックスcIdxと、cIdxに依存する現在のピクチャの左上サンプルに対する現在のルマ又はクロマ・コーディング・ブロックの左上サンプルを指定するルマ又はクロマ位置(x0, y0)と、ツリー・タイプtreeTypeと、条項8.4.2で指定されるようなルマ・イントラ予測モードIntraPredModeY[ x0 ][ y0 ] と、条項7.4.7.5で指定されるようなクロマ・サンプルのイントラ予測モードを指定するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]と、ブロック幅nTbW及び高さnTbHと、多重変換選択インデックスtu_mts_idx[ x0 ][ y0 ]とである。
このプロセスの出力は変数ctxIncである。
変数intraModeCtxは、以下のように導出される:
cIdxが0に等しい場合、intraModeCtxは以下のように導出される:
intraModeCtx = ( IntraPredModeY[ x0 ][ y0 ] <= 1 ) ? 1 : 0
そうではない場合(cIdxは0より大きい)、intraModeCtxは以下のように導出される:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] >= 4 ) ? 1 : 0

変数mtsCtxは、以下のように導出される:
mtsCtx = ( (sps_explicit_mts_intra_enabled_flag ? tu_mts_idx[ x0 ][ y0 ] == 0 : nTbW==nTbH) && treeType != SINGLE_TREE ) ? 1 : 0

変数ctxIncは、以下のように導出される:
ctxInc = ( binIdx << 1 ) + intraModeCtx + ( mtsCtx << 2 )

5.3.2 代替例#2
【0172】
【数32】
テーブル9-15 コンテキスト・コーディング・ビンによるctxIncのシンタックス要素に対する割り当て
【0173】
【数33】
[[ 9.5.4.2.8 シンタックス要素st_idxに対するctxIncの導出プロセス
このプロセスに対する入力は、色成分インデックスcIdxと、cIdxに依存する現在のピクチャの左上サンプルに対する現在のルマ又はクロマ・コーディング・ブロックの左上サンプルを指定するルマ又はクロマ位置(x0, y0)と、ツリー・タイプtreeTypeと、条項8.4.2で指定されるようなルマ・イントラ予測モードIntraPredModeY[ x0 ][ y0 ] と、条項7.4.7.5で指定されるようなクロマ・サンプルのイントラ予測モードを指定するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]と、多重変換選択インデックスtu_mts_idx[ x0 ][ y0 ]とである。
このプロセスの出力は変数ctxIncである。
変数intraModeCtxは、以下のように導出される:
cIdxが0に等しい場合、intraModeCtxは以下のように導出される:
intraModeCtx = ( IntraPredModeY[ x0 ][ y0 ] <= 1 ) ? 1 : 0
そうではない場合(cIdxは0より大きい)、intraModeCtxは以下のように導出される:
intraModeCtx = ( intra_chroma_pred_mode[ x0 ][ y0 ] >= 4 ) ? 1 : 0
変数mtsCtxは、以下のように導出される:
mtsCtx = ( tu_mts_idx[ x0 ][ y0 ] == 0 && treeType != SINGLE_TREE ) ? 1 : 0
変数ctxIncは、以下のように導出される:
ctxInc = ( binIdx << 1 ) + intraModeCtx + ( mtsCtx << 2 ) ]]

[0172]
図22Aは、ビデオ処理装置2210のブロック図である。装置2210は、本願で説明される1つ以上の方法を実装するために使用されてもよい。装置2210は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機などで具体化されてもよい。装置2210は、1つ以上のプロセッサ2212、1つ以上のメモリ2214、及びビデオ処理ハードウェア2216を含んでもよい。プロセッサ2212は、本文書で説明される1つ以上の方法を実装するように構成されてもよい。メモリ(memories)2214は、本願で説明される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてもよい。ビデオ処理ハードウェア2216は、ハードウェア回路において、本文書で説明される幾つかの技術を実装するために使用されてもよい。
[0173]
図22Bは、本願で開示される技術が実装され得るビデオ処理システムの別の例のブロック図である。図22Bは、本願で開示される種々の技術が実装され得る例示的なビデオ処理システム2220を示すブロック図である。種々の実装は、システム2220の構成要素の一部又は全部を含んでもよい。システム2220は、ビデオ・コンテンツを受信するための入力2222を含んでもよい。ビデオ・コンテンツは、生の又は非圧縮のフォーマット、例えば、8又は10ビットの多重成分ピクセル値で受信されてもよいし、又は圧縮された又は符号化されたフォーマットで受信されてもよい。入力2222は、ネットワーク・インターフェース、周辺バス・インターフェース、又はストレージ・インターフェースを表現している可能性がある。ネットワーク・インターフェースの例は、イーサーネット、光受動ネットワーク(PON)などの有線インターフェースや、Wi-Fi又はセルラー・インターフェースのような無線インターフェースを含む。
【0174】
システム2220は、本文書で説明される種々のコーディング又は符号化方法を実装することが可能なコーディング構成要素2224を含んでもよい。コーディング構成要素2224は、コーディング構成要素2224の入力2222から出力までのビデオの平均ビットレートを低減して、ビデオのコーディングされた表現を生成することができる。従って、コーディング技術は、ビデオ圧縮又はビデオ・トランスコーディング技術と呼ばれることが間々ある。コーディング構成要素2224の出力は、記憶されてもよいし、あるいは構成要素2226によって表現されているように接続された通信を介して伝送されてもよい。入力2222で受信されたビデオの記憶又は通信されるビットストリーム(又はコーディングされた)表現は、ディスプレイ・インターフェース2229に送信されるピクセル値又は表示可能なビデオを生成するために、構成要素2228によって使用されてもよい。ビットストリーム表現から、ユーザーが視聴可能なビデオを生成するプロセスは、ビデオ解凍と呼ばれることが間々ある。更に、特定のビデオ処理演算は、「コーディングする」演算又はツールと称されるが、コーディング・ツール又は演算はエンコーダで使用され、コーディングの結果を逆向きに処理する対応する復号化ツール又は演算はデコーダで実行されることが理解されるであろう。
【0175】
周辺バス・インターフェース又はディスプレイ・インターフェースの例は、ユニバーサル・シリアル・バス(USB)又は高解像度マルチメディア・インターフェース(HDMI(登録商標))、ディスプレイポート(Displayport)などを含む可能性がある。ストレージ・インターフェースの例は、シリアル・アドバンスト・テクノロジ・アタッチメント(serial advanced technology attachment,SATA)、PCI、IDEインターフェースなどを含む。本文書で説明される技術は、携帯電話、ラップトップ、スマートフォン、又はその他のデバイスであって、デジタル・データ処理及び/又はビデオ表示を実行することが可能なデバイス、のような種々の電子デバイスで具体化されることが可能である。
【0176】
上述の例は、以下に説明される方法、例えば方法2310及び2320の状況で組み込まれることが可能であり、これはビデオ・デコーダ又はビデオ・エンコーダにて実装されてもよい。
【0177】
図23Aは、ビデオ処理のための例示的な方法のフローチャートを示す。方法2310は、ステップ2312において、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含む。幾つかの実装において、二次変換ツールは、符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、現在のビデオ・ブロックの逆量子化の出力に適用することを含む。
【0178】
幾つかの実装において、変換は、ビデオの現在のビデオ・ブロックに関し、二次変換ツールを現在のビデオ・ブロックに適用する際に使用される変換セット又は変換行列を、現在のビデオ・ブロックの特徴に基づいて選択すること;及び選択された変換セット又は変換行列を、現在のビデオ・ブロックに適用することを含む。幾つかの実装において、変換は、二次変換ツールを現在のビデオ・ブロックのサブ領域に適用することを含み、サブ領域は現在のビデオ・ブロックの左上の部分ではない。
【0179】
幾つかの実装において、コーディングされた表現は、現在のビデオ・ブロックの残差において最後の非ゼロ係数を指定するフォーマット・ルールであって、二次変換ツールに関するサイド情報がコーディングされた表現に含まれるかどうか又はどのように含まれるかを制御するフォーマット・ルールに適合する。幾つかの実装において、コーディングされた表現は、現在のビデオ・ブロックの一部の残差において1つ以上の係数を指定するフォーマット・ルールであって、二次変換ツールに関するサイド情報がコーディングされた表現に含まれるかどうか又はどのように含まれるかを制御するフォーマット・ルールに適合する。幾つかの実装において、変換を実行することは、二次変換ツールの現在のビデオ・ブロックに対する適用性を、現在のビデオ・ブロックの1つ以上のコーディング・グループにおける非ゼロ係数の存在に基づいて決定することを含む。
【0180】
幾つかの実装において、コーディングされた表現は、現在のビデオ・ブロックに対する二次変換ツールのサイド情報に対応するシンタックス要素が、変換関連情報の前に、コーディングされた表現においてシグナリングされることを指定するフォーマット・ルールに適合する。幾つかの実装において、コーディングされた表現は、現在のビデオ・ブロックのための二次変換ツールのサイド情報に対応するシンタックス要素が、残差コーディング情報の前に、コーディングされた表現においてシグナリングされることを指定するフォーマット・ルールに適合する。幾つかの実装において、変換を実行することは、二次変換ツールに関連する情報に基づくルールに従って現在のビデオ・ブロックの残差をコーディングすることを含む。幾つかの実装において、変換を実行することは、ルールに従って、現在のビデオ・ブロックの1つ以上の部分に、異なるコンテキスト・モデリング方法を使用して算術符号化を適用することを含む。
【0181】
幾つかの実装において、変換を実行することは、ビデオの現在のビデオ・ブロックの特徴に基づいて、二次変換ツールのインデックスに対応するビン・ストリングのビンをコーディングするか又はビンをコーディングすることをバイパスするためのコンテキスト・モデルを構築することを含み、インデックスは、二次変換ツールの適用性及び/又は二次変換ツールのカーネル情報を示す。幾つかの実装において、変換を実行することは、現在のビデオ・ブロックのディメンジョンに基づいて、シンタックス要素がコーディングされた表現に含まれるかどうかを決定することを含む。幾つかの実装において、シンタックス要素は、二次変換を適用することの指示、及び二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む二次変換ツールのサイド情報に対応する。
【0182】
図23Bは、ビデオ処理のための例示的な方法のフローチャートを示す。方法2320は、ステップ2322において、ビデオの現在のピクチャの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換に関し、ルールに起因する二次変換ツールの現在のビデオ・ブロックに対する適用性を決定するステップを含み、ルールは、現在のビデオ・ブロックをコーディングするために使用されるイントラ予測方向、コーディング・ツールの用途、及び/又は現在のビデオ・ブロックが由来するビデオの色成分に関連している。方法2320は、ステップ2323において、決定に基づいて変換を実行するステップを更に含む。
【0183】
幾つかの実施形態において、ビデオ・コーディング方法は、図23A又は23Bに関して説明したようなハードウェア・プラットフォームに実装される装置を使用して実装されてもよい。
【0184】
開示される技術の幾つかの実施形態は、ビデオ処理ツール又はモードを動作可能にする判断又は決定を行うことを含む。一例では、ビデオ処理ツール又はモードがイネーブルにされている場合に、エンコーダは、ビデオのブロックの処理においてツール又はモードを使用又は実装するであろうが、必ずしも、結果として生じるビットストリームをツール又はモードの使用に基づいて修正しない可能性がある。即ち、ビデオのブロックからビデオのビットストリーム表現への変換は、判断又は決定に基づいてイネーブルにされた場合に、ビデオ処理ツール又はモードを使用するであろう。別の例では、ビデオ処理ツール又はモードがイネーブルにされている場合に、デコーダは、ビットストリームがビデオ処理ツール又はモードに基づいて修正されている旨の情報とともに、ビットストリームを処理するであろう。即ち、ビデオのビットストリーム表現からビデオのブロックへの変換は、判断又は決定に基づいてイネーブルにされたビデオ処理ツール又はモードを使用して実行されるであろう。
【0185】
開示される技術の幾つかの実施形態は、ビデオ処理ツール又はモードをディセーブルにする判断又は決定を行うことを含む。一例では、ビデオ処理ツール又はモードがディセーブルにされる場合、エンコーダは、ビデオのブロックをビデオのビットストリーム表現に変換する際に、ツール又はモードを使用しないであろう。別の例では、ビデオ処理ツール又はモードがディセーブルにされる場合、デコーダは、ビットストリームが、その判断又は決定に基づいてディセーブルにされたビデオ処理ツール又はモードを使用して修正されていない旨の情報とともに、ビットストリームを処理するであろう。
【0186】
本文書において、「ビデオ処理」という用語は、ビデオ符号化、ビデオ復号化、ビデオ圧縮又はビデオ解凍を指す可能性がある。例えば、ビデオ圧縮アルゴリズムは、ビデオのピクセル表現から、対応するビットストリーム表現へ、又はその逆への変換の間に適用される可能性がある。現在のビデオ・ブロックのビットストリーム表現は、例えばシンタックスによって定義されるように、ビットストリーム内で同じ場所にあるか又は異なる場所に拡散されるビットに対応してもよい。例えば、ブロックは、変換されたコーディングされたエラー残差値の観点から、また、ビットストリーム内のヘッダ及び他のフィールドのビットを使用して符号化されてもよい。ここで、ブロックは、演算のためのサンプル又はピクセルのグループ、例えばコーディング・ユニット、変換ユニット、又は予測ユニットなどに対応する可能性がある。
【0187】
様々な技術や実施形態は以下の項分けに基づくフォーマットを用いて記述することができる。以下において、二次変換ツールを使用することが可能であり、その場合において、符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックの逆量子化の出力に適用される。二次変換ツールは、フォワード一次変換と量子化ステップとの間、又は逆量子化ステップとインバース一次変換との間のブロックに適用可能であり、サブブロックに対応する縮小されたディメンジョンは、ブロックのディメンジョンから縮小される。幾つかの実装において、二次変換ツールは、低周波ノン・セパラブル二次変換(LFNST)ツールに対応している。
【0188】
第1セットの条項は、上記のセクションにおいて開示される技術の特定の特徴及び態様を記述している。
【0189】
1.ビデオ処理方法であって:
現在のビデオ・ブロックの特徴に基づいて、縮小二次変換を現在のビデオ・ブロックに適用するための変換セット又は変換行列を選択するステップ;及び
現在のビデオ・ブロックと、現在のビデオ・ブロックを構成するビデオのビットストリーム表現との間の変換の一部として、選択された変換セット又は変換行列を、現在のビデオ・ブロックの一部分に適用するステップ;
を含む方法。
【0190】
2.条項1に記載の方法であって、現在のビデオ・ブロックの一部分は、現在のビデオ・ブロックの右上サブ領域、右下サブ領域、左下サブ領域又は中央サブ領域である、方法。
【0191】
3.条項1又は2に記載の方法であって、現在のビデオ・ブロックの特徴は、現在のビデオ・ブロックのイントラ予測モード又は一次変換行列である、方法。
【0192】
4.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのカラー成分である、方法。
【0193】
5.条項4に記載の方法であって、第1変換セットは、現在のビデオ・ブロックのルマ成分に対して選択され、第1変換セットとは異なる第2変換セットは、現在のビデオ・ブロックの1つ以上のクロマ成分に対して選択される、方法。
【0194】
条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのイントラ予測モード又はイントラ・コーディング方法である、方法
【0195】
7.条項6に記載の方法であって、イントラ予測方法は、多重参照ライン(MRL)ベースの予測方法又は行列ベースのイントラ予測方法を含む、方法。
【0196】
8.条項6に記載の方法であって、第1変換セットは、現在のビデオ・ブロックがクロス・コンポーネント線形モデル(CCLM)コード化ブロックである場合に選択され、第1変換セットとは異なる第2変換セットは、現在のビデオ・ブロックが非CCLMコード化ブロックである場合に選択される、方法。
【0197】
9.条項6に記載の方法であって、第1変換セットは、現在のビデオ・ブロックがジョイント・クロマ残差コーディング方法でコーディングされる場合に選択され、第1変換セットとは異なる第2変換セットは、現在のビデオ・ブロックがジョイント・クロマ残差コーディング方法でコーディングされない場合に選択される、方法。
【0198】
10.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックの一次変換である、方法。
【0199】
11.ビデオ処理方法であって:
現在のビデオ・ブロックに関連する1つ以上の係数に基づいて、現在のビデオ・ブロックのビットストリーム表現における縮小二次変換(RST)の適用のためのサイド情報のシグナリングの選択的な包含に関する決定を行うステップ;及び
決定に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現を含むビデオとの間の変換を実行するステップ;
を含む方法。
【0200】
12.条項11に記載の方法であって、1つ以上の係数は、現在のビデオ・ブロックのスキャニング順序における最後の非ゼロ係数を含む、方法。
【0201】
13.条項11に記載の方法であって、1つ以上の係数は、現在のビデオ・ブロックの部分的な領域内の複数の係数を含む、方法。
【0202】
14.条項13に記載の方法であって、部分的な領域は、RSTが適用され得る1つ以上のコーディング・グループを含む、方法。
【0203】
15.条項13に記載の方法であって、部分的な領域は、現在のビデオ・ブロックのスキャニング順序で先頭からM個のコーディング・グループ又は最後からM個のコーディング・グループを含む、方法。
【0204】
16.条項13に記載の方法であって、部分的な領域は、現在のビデオ・ブロックの逆スキャニング順序で先頭からM個のコーディング・グループ又は最後からM個のコーディング・グループを含む、方法。
【0205】
17.条項13に記載の方法であって、決定を行うことは、複数の係数の1つ以上の非ゼロ係数のエネルギーに更に基づいている、方法。
【0206】
18.ビデオ処理方法であって:
縮小二次変換(RST)を現在のビデオ・ブロックに適用することに関し、現行のビデオ・ブロックのビットストリーム表現を構成するステップであって、RSTに関連するシンタックス要素は、残差情報をコーディングする前に、ビットストリーム表現においてシグナリングされる、ステップ;及び
その構成に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップ;
を含む方法。
【0207】
19.条項18に記載の方法であって、RSTに関連するシンタックス要素をシグナリングすることは、少なくとも1つのコーディングされたブロック・フラグ又は変換選択モードの使用に基づいている、方法。
【0208】
20.条項18に記載の方法であって、ビットストリーム表現は、すべてゼロ係数であるゼロであるコーディング・グループに対応するコーディング残差情報を除外している、方法。
【0209】
21.条項18に記載の方法であって、コーディング残差情報は、RSTの適用に基づいている、方法。
【0210】
22.ビデオ処理方法であって:
縮小二次変換(RST)を現在のビデオ・ブロックに適用するために、現在のビデオ・ブロックのビットストリーム表現を構成するステップであって、RSTに関連するシンタックス要素は、変換スキップ指示又は多重変換セット(MTS)インデックスの何れかの前にビットストリーム表現でシグナリングされる、ステップ;及び
その構成に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップ;
を含む方法。
【0211】
23.条項22に記載の方法であって、変換スキップ指示又はMTSインデックスは、RSTに関連するシンタックス要素に基づいている、方法。
【0212】
24.ビデオ処理方法であって:
現在のビデオ・ブロックの特徴に基づいて、縮小二次変換(RST)のインデックスをコーディングするためのコンテキスト・モデルを構成するステップ;及び
その構成に基づいて、現在のビデオ・ブロックと、現在のビデオ・ブロックを含むビデオのビットストリーム表現との間の変換を実行するステップ;
を含む方法。
【0213】
25.条項24に記載の方法であって、上記の特徴は、多重変換選択(MTS)プロセスの明示的又は暗示的な実施可能性である、方法。
【0214】
26.条項24に記載の方法であって、上記の特徴は、現在のビデオ・ブロックにおけるクロス・コンポーネント線形モデル(CCLM)コーディング・モードの実施可能性である、方法。
【0215】
27.条項24に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのサイズである、方法。
【0216】
28.条項24に記載の方法であって、上記の特徴は、現在のビデオ・ブロックに適用されるパーティショニング・プロセスの分割深度である、方法。
【0217】
29.条項28に記載の方法であって、パーティショニング・プロセスは、四分木(QT)パーティショニング・プロセス、二分木(BT)パーティショニング・プロセス、又は三分木(TT)パーティショニング・プロセスである、方法。
【0218】
30.条項24に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのカラー・フォーマット又は色成分である、方法。
【0219】
31.条項24に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのイントラ予測モードと、多重変換選択(MTS)プロセスのインデックスとを除外している、方法。
【0220】
32.ビデオ処理方法であって:
現在のビデオ・ブロックの特徴に基づいて、現在のビデオ・ブロックに対するインバース縮小二次変換(RST)プロセスの選択的適用に関する決定を行うステップ;及び
決定に基づいて、現在のビデオ・ブロックと、現在のビデオ・ブロックを含むビデオのビットストリーム表現との間の変換を実行するステップ;
を含む方法。
【0221】
33.条項32に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのコーディング・グループのコーディングされたブロック・フラグである、方法。
【0222】
34.条項33に記載の方法であって、インバースRSTプロセスは適用されず、左上コーディング・グループのコーディングされたブロック・フラグはゼロである、方法。
【0223】
35.条項33に記載の方法であって、インバースRSTプロセスは適用されず、現在のビデオ・ブロックのスキャニング順序における第1及び第2コーディング・グループに対するコーディングされたブロック・フラグはゼロである、方法。
【0224】
36.条項32に記載の方法であって、上記の特徴は、現在のビデオ・ブロックの高さ(M)又は幅(N)である、方法。
【0225】
37.条項36に記載の方法であって、インバースRSTプロセスは適用されず、(i)M=8及びN=4、又は(ii)M=4及びN=8である、方法。
【0226】
38.プロセッサと命令をそこに有する非一時的なメモリとを備えるビデオ・システム内の装置であって、命令は、プロセッサにより実行されると、プロセッサに、条項1-37のうちの何れか1項に記載の方法を実行させる、装置。
【0227】
39.非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータ・プログラム製品であって、条項1-37のうちの何れか1項に記載の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム製品。
【0228】
第2セットの条項は、上記のセクション、例えば例示的な実装1-4において開示される技術の特定の特徴及び態様を記述している。
【0229】
1.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックと、ビデオのコーディングされた表現との間の変換を実行するステップを含み、変換は以下を含む方法。
【0230】
ビデオの現在のビデオ・ブロックに関し、現在のビデオ・ブロックの特徴に基づいて、二次変換ツールを現在のビデオ・ブロックに適用する際に使用される変換セット又は変換行列を選択すること;及び
選択した変換セット又は変換行列を現在のビデオ・ブロックに適用すること;
を含み、前記二次変換ツールを使用して:
符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックの逆量子化の出力に適用される。
【0231】
2.条項1に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0232】
3.条項1又は2に記載の方法であって、上記の特徴は、現在のビデオ・ブロックの色成分である、方法。
【0233】
4.条項3に記載の方法であって、第1変換セットは、現在のビデオ・ブロックのルマ成分に対して選択され、第1変換セットとは異なる第2変換セットは、現在のビデオ・ブロックの1つ以上のクロマ成分に対して選択される、方法。
【0234】
5.条項3に記載の方法であって、現在のビデオ・ブロックの各色成分は、1つの変換セットに対応している、方法。
【0235】
6.条項3に記載の方法であって、現在のビデオ・ブロックの異なる色成分に関し、複数セットの変換行列が選択され、複数セットのうちの1つは、残りのセットのうちの行列とは異なる少なくとも1つの変換行列を含む、方法。
【0236】
7.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのイントラ予測方法である、方法。
【0237】
8.条項7に記載の方法であって、現在のビデオ・ブロックのイントラ予測方法は、クロス・コンポーネント線形モデル(CCLM)又は行列ベースのイントラ予測方法(MIP)モードを含み、CCLMは現在のビデオ・ブロックのクロマ成分の予測値を導出するために線形モードを使用し、MIPモードは、ビデオの以前にコーディングされたサンプルに対して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に、選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測値を決定することを含む、方法。
【0238】
9.条項7に記載の方法であって、変換セット又は変換行列の選択は、現在のビデオ・ブロックのクロマ成分の予測値を導出するために線形モードを使用するクロス・コンポーネント線形モデル(CCLM)の使用に基づくルールに従う、方法。
【0239】
10.条項7に記載の方法であって、変換セット又は変換行列の選択は、現在のビデオ・ブロックの予測モードにおける単一又は複数の参照ラインの使用に基づくルールに従う、方法。
【0240】
11.条項7に記載の方法であって、変換セット又は変換行列の選択は、現在のビデオ・ブロックのジョイント・クロマ残差コーディングの使用に基づくルールに従う、方法。
【0241】
12.条項1に記載の方法であって、上記の特徴は、フォワード一次変換のタイプ又は現在のビデオ・ブロックの一次変換のタイプである、方法。
【0242】
13.条項12に記載の方法であって、フォワード一次変換又はインバース一次変換は恒等変換であり、二次変換ツールの適用に使用される変換セット及び/又は変換行列は、フォワード一次変換又はインバース一次変換で使用される行列とは異なる、方法。
【0243】
14.条項12に記載の方法であって、フォワード一次変換又はインバース一次変換は、同じ基底関数を伴う水平1-D変換及び垂直1-D変換で実行され、二次変換ツールの適用で使用される変換セット及び/又は変換行列は、フォワード一次変換又はインバース一次変換で使用される垂直及び水平変換の異なる基底関数である、方法。
【0244】
15.条項1-14のうちの何れか1項に記載の方法であって、変換を実行することは、コーディングされた表現を現在のビデオ・ブロックから生成すること、又は現在のビデオ・ブロックをコーディングされた表現から生成することを含む、方法。
【0245】
16.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換は、現在のビデオ・ブロックの左上の部分ではない現在のビデオ・ブロックのサブ領域に二次変換ツールを適用することを含み、
二次変換ツールを使用して:
符号化の間に、量子化の前に、現在のビデオ・ブロックのサブ領域の残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックのサブ領域の逆量子化の出力に適用される、方法。
【0246】
17.条項16に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0247】
18.条項16に記載の方法であって、現在のビデオ・ブロックのサブ領域は、現在のビデオ・ブロックの右上、右下、左下、又は中央に対応する、方法。
【0248】
19.条項16に記載の方法であって、サブ領域は、現在のビデオ・ブロックのイントラ予測モード又は一次変換行列に基づいて決定される、方法。
【0249】
20.条項16-19のうちの何れか1項に記載の方法であって、変換を実行することは、現在のビデオ・ブロックから、コーディングされた表現を生成すること、又はコーディングされた表現から、現在のビデオ・ブロックを生成することを含む、方法。
【0250】
21.ビデオ処理方法であって:
ビデオの現在のピクチャの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換に関し、ルールに起因する二次変換ツールの現在のビデオ・ブロックに対する適用性を決定するステップであって、ルールは、現在のビデオ・ブロックをコーディングするために使用されるイントラ予測方向、コーディング・ツールの用途、及び/又は現在のビデオ・ブロックが由来するビデオの色成分に関連している、ステップ;及び
決定に基づいて変換を実行するステップ;
を含む方法。
【0251】
22.条項21に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0252】
23.条項21に記載の方法であって、上記の決定することは、二次変換ツールが現在のビデオ・ブロックに適用されることを決定し、
二次変換ツールを使用して:
符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は
復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックの逆量子化の出力に適用される、方法。
【0253】
24.条項21に記載の方法であって、上記の決定することは、二次変換ツールが現在のビデオ・ブロックに適用されないことを決定し、
符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換は適用されず、又は
復号化の間に、インバース一次変換を適用する前に、現在のビデオ・ブロックの逆量子化の出力に対するインバース二次変換は省略される、方法。
【0254】
25.条項21に記載の方法であって、コーディング・ツールは、クロス・コンポーネント線形モデル(CCLM)又はジョイント・クロマ残差コーディングに対応している、方法。
【0255】
26.条項21に記載の方法であって、色成分が、現在のビデオ・ブロックのクロマ成分に対応している、方法。
【0256】
27.条項21に記載の方法であって、上記の決定することは、色成分がクロマ成分に対応する場合に、二次変換ツールは現在のビデオ・ブロックに適用されないことを決定する、方法。
【0257】
28.条項21に記載の方法であって、コーディング・ツールは、イントラ予測方法に対応している、方法。
【0258】
29.条項21-28のうちの何れか1項に記載の方法であって、変換を実行することは、現在のビデオ・ブロックから、コーディングされた表現を生成すること、又はコーディングされた表現から、現在のビデオ・ブロックを生成することを含む。
【0259】
30.プロセッサと命令をそこに有する非一時的なメモリとを備えるビデオ・システム内の装置であって、命令は、プロセッサにより実行されると、プロセッサに、条項1-29のうちの何れか1項に記載の方法を実行させる、装置。
【0260】
31.非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータ・プログラム製品であって、条項1-29のうちの何れか1項に記載の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム製品。
【0261】
第3セットの条項は、上記のセクション、例えば例示的な実装5-7において開示される技術の特定の特徴及び態様を記述している。
【0262】
1.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、コーディングされた表現は、現在のビデオ・ブロックの残差において最後の非ゼロ係数を指定するフォーマット・ルールであって、二次変換ツールに関するサイド情報がコーディングされた表現に含まれるかどうか又はどのように含まれるかを制御するフォーマット・ルールに適合し、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックの逆量子化の出力に適用することを含む、方法。
【0263】
2.条項1に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0264】
3.条項1に記載の方法であって、フォーマット・ルールは、現在のビデオ・ブロックのスキャニング順序で最後の非ゼロ係数を指定する、方法。
【0265】
4.条項1に記載の方法であって、フォーマット・ルールは、最後の非ゼロ係数が、二次変換ツールが適用される現在のビデオ・ブロックのコーディング・グループ内に位置する場合に、LFNSTツールのサイド情報をシグナリングすることを実行するように制御する、方法。
【0266】
5.条項1に記載の方法であって、フォーマット・ルールは、最後の非ゼロ係数が、二次変換ツールが適用される現在のビデオ・ブロックのコーディング・グループに位置しない場合に、サイド情報のシグナリングをスキップするように制御する、方法。
【0267】
6.条項1に記載の方法であって、サイド情報は、二次変換ツールを適用することの指示、二次変換ツールで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む、方法。
【0268】
7.条項1に記載の方法であって、二次変換ツールは、変換のサイド情報がコーディングされた表現に含まれない場合に、現在のビデオ・ブロックに対してディセーブルにされる、方法。
【0269】
8.条項1-7のうちの何れか1項に記載の方法であって、変換の実行は、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0270】
9.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、コーディングされた表現は、現在のビデオ・ブロックの一部の残差において1つ以上の係数を指定するフォーマット・ルールであって、二次変換ツールに関するサイド情報がコーディングされた表現に含まれるかどうか又はどのように含まれるかを制御するフォーマット・ルールに適合し、
二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む、方法。
【0271】
10.条項1に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0272】
11.条項9に記載の方法であって、フォーマット・ルールは、上記の部分を、二次変換ツールが適用される1つ以上のコーディング・グループとして定義する、方法。
【0273】
12.条項9に記載の方法であって、フォーマット・ルールは、上記の部分を、スキャニング順序又は逆のスキャニング順序で現在のビデオ・ブロックの先頭からM個のコーディング・グループ又は最後からM個のコーディング・グループとして定義する、方法。
【0274】
13.条項12に記載の方法であって、Mは現在のビデオ・ブロックのディメンジョンに依存する、方法。
【0275】
14.条項12に記載の方法であって、現在のビデオ・ブロックのサイズが4xN及び/又はNx4である場合に、Mは2であり、Nは8より大きな整数である、方法。
【0276】
15.条項12に記載の方法であって、現在のビデオ・ブロックのサイズが4×8及び/又は8×4及び/又はW×Hである場合に、Mは1であり、W及びHは8以上の整数である、方法。
【0277】
16.条項9に記載の方法であって、フォーマット・ルールは、上記の部分内の1つ以上の係数の位置に基づいている、方法。
【0278】
17.条項9に記載の方法であって、フォーマット・ルールは、上記の部分内の1つ以上の非ゼロ係数のエネルギーに基づいている、方法。
【0279】
18.条項9に記載の方法であって、フォーマット・ルールは、上記の部分内の1つ又は複数の係数の数に基づいている、方法。
【0280】
19.条項1に記載の方法であって、フォーマット・ルールは、上記の部分内の1つ以上の係数の数が閾値未満である場合に、サイド情報のシグナリングをスキップするように制御する、方法。
【0281】
20.条項19に記載の方法であって、閾値は、スライス・タイプ、ピクチャ・タイプ、パーティション・ツリー・タイプ、又はビデオ・コンテンツに基づいている、方法。
【0282】
21.条項19に記載の方法であって、閾値は、現在のビデオ・ブロックのカラー・フォーマット及び/又は色成分に基づいている、方法。
【0283】
22.条項9に記載の方法であって、サイド情報は、二次変換ツールを適用することの指示、二次変換ツールで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む、方法。
【0284】
23.条項9に記載の方法であって、二次変換ツールは、変換のサイド情報がコーディングされた表現に含まれない場合に、現在のビデオ・ブロックに対してディセーブルにされる、方法。
【0285】
24.条項9-23のうちの何れか1項に記載の方法であって、変換の実行は、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0286】
25.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、二次変換ツールの現在のビデオ・ブロックに対する適用性を、現在のビデオ・ブロックの1つ以上のコーディング・グループにおける非ゼロ係数の存在に基づいて決定することを含み、二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックの逆量子化の出力に適用することを含む、方法。
【0287】
26.条項25に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0288】
27.条項25に記載の方法であって、上記の決定することは、コーディング・グループのうちの少なくとも1つが少なくとも1つの非ゼロ係数を含む場合に、二次変換ツールを適用することを決定する、方法。
【0289】
28.条項25に記載の方法であって、4×N及び/又はN×4のサイズを有する現在のビデオ・ブロックについて、最初の2つの4×4コーディング・グループが少なくとも1つの非ゼロ係数を含み、それによってNが8よりも大きい整数である場合に、上記の決定することは、二次変換ツールをイネーブルにすることを決定する、方法。
【0290】
29.条項25に記載の方法であって、4×8及び/又は8×4のサイズを有する現在のビデオ・ブロックについて、左上4×4コーディング・グループが少なくとも1つの非ゼロ係数を含む場合に、上記の決定は、二次変換ツールをイネーブルにすることを決定する、方法。
【0291】
30.条項25に記載の方法であって、W×Hのサイズを有する現在のビデオ・ブロックについて、左上4×4コーディング・グループが少なくとも1つの非ゼロ係数を含み、それによってW及びHが8以上の整数である場合に、上記の決定は二次変換ツールをイネーブルにすることを決定する、方法。
【0292】
31.条項25に記載の方法であって、コーディング・グループに非ゼロ係数が存在しない場合に、上記の決定は、LFNSTツールをディセーブルにするように決定する、方法。
【0293】
32.条項31に記載の方法であって、4×N及び/又はN×4のサイズを有する現在のビデオ・ブロックに関し、最初の2つの4×4コーディング・グループに非ゼロ係数が存在せず、Nが8より大きな整数である場合に、上記の決定は、二次変換ツールをディセーブルにすることを決定する、方法。
【0294】
33.条項31に記載の方法であって、4×8及び/又は8×4のサイズを有する現在のビデオ・ブロックに関し、左上の4×4コーディング・グループに非ゼロ係数が存在しない場合に、上記の決定は、二次変換ツールをディセーブルにすることを決定する、方法。
【0295】
34.条項31に記載の方法であって、W×Hのサイズを有する現在のビデオ・ブロックに関し、左上4×4コーディング・グループに非ゼロ係数が存在せず、W及びHが8以上の整数である場合に、上記の決定は、二次変換ツールをディセーブルにすることを決定する、方法。
【0296】
35.条項31に記載の方法であって、W×Hのサイズを有する現在のビデオ・ブロックに関し、左上4×4コーディング・グループに非ゼロ係数が存在せず、W及びHが8以上の整数である場合に、上記の決定は、二次変換ツールをディセーブルにすることを決定する、方法。
【0297】
36.条項25-35のうちの何れか1項に記載の方法であって、二次変換ツールのサイド情報は、二次変換ツールが現在のビデオ・ブロックに対してディセーブルにされている場合、コーディングされた表現に含まれない、方法。
【0298】
37.条項36に記載の方法であって、サイド情報は、二次変換ツールを適用することの指示、二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む、方法。
【0299】
38.条項25-37のうちの何れか1項に記載の方法であって、変換を実行することは、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0300】
39.条項1-38のうちの何れか1項に記載の方法であって、ビデオの少なくとも幾つかのブロックは、二次変換ツールを使用して、コーディングされた表現においてコーディングされる、方法。
【0301】
40.プロセッサと命令をそこに有する非一時的なメモリとを備えるビデオ・システム内の装置であって、命令は、プロセッサにより実行されると、プロセッサに、条項1-39のうちの何れか1項に記載の方法を実行させる、装置。
【0302】
41.非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータ・プログラム製品であって、条項1-39のうちの何れか1項に記載の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム製品。
【0303】
第4セットの条項は、上記のセクション、例えば例示的な実装8-10において開示される技術の特定の特徴及び態様を記述している。
【0304】
1.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、
コーディングされた表現は、現在のビデオ・ブロックに対する二次変換ツールのサイド情報に対応するシンタックス要素が、変換関連情報の前に、コーディングされた表現においてシグナリングされることを指定するフォーマット・ルールに適合し、
二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックの逆量子化の出力に適用することを含む、方法。
【0305】
2.条項1に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0306】
3.条項1に記載の方法であって、サイド情報は、二次変換ツールを適用することの指示、二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む、方法。
【0307】
4.条項1に記載の方法であって、変換関連情報は、フォワード/インバース変換をスキップすることを示す変換スキップ指示;多重変換セット(MTS)ツールのサイド情報のうちの少なくとも1つを含む、方法。
【0308】
5.条項4に記載の方法であって、MTSツールのサイド情報は、現在のビデオ・ブロックに使用される変換セットにおける1つ以上の変換タイプを示すインデックスを更に含む、方法。
【0309】
6.条項4に記載の方法であって、フォーマット・ルールは、シンタックス要素に基づいて変換スキップ指示のシグナリングを制御する、方法。
【0310】
7.条項4に記載の方法であって、フォーマット・ルールは、シンタックス要素に基づいて多重変換セット(MTS)インデックスのシグナリングを制御する、方法。
【0311】
8.条項7に記載の方法であって、多重変換セット(MTS)インデックスは、シグナリングされず、二次変換ツールがイネーブルにされる現在のビデオ・ブロックに対してゼロであると推定される、方法。
【0312】
9.条項1-8のうち何れか1項に記載の方法であって、シンタックス要素はLFNST (low frequency non-separable transform)インデックスである。
【0313】
10.条項1-9のうち何れか1項に記載の方法であって、変換を実行することは、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0314】
11.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックと現在のコーディングされた表現との間の変換を実行するステップを含み、
コーディングされた表現は、現在のビデオ・ブロックのための二次変換ツールのサイド情報に対応するシンタックス要素が、残差コーディング情報の前に、コーディングされた表現においてシグナリングされることを指定するフォーマット・ルールに適合し、
二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む、方法。
【0315】
12.条項11に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0316】
13.条項11に記載の方法であって、サイド情報は、二次変換ツールを適用することの指示、二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む、方法。
【0317】
14.条項11に記載の方法であって、現在のビデオ・ブロックの部分的な領域及び全領域における非ゼロ係数の個数のカウントは省略される、方法。
【0318】
15.条項11に記載の方法であって、シンタックス要素は、残差コーディング情報のコーディングに関連するシンタックス要素の前にコーディングされる、方法。
【0319】
16.条項11に記載の方法であって、フォーマット・ルールは、コーディングされたブロック・フラグのシグナリング又は変換選択モードの使用に基づいて、シンタックス要素がシグナリングされることを規定している、方法。
【0320】
17.条項16に記載の方法であって、フォーマット・ルールは、コーディングされたブロック・フラグのシグナリング又は変換選択モードの使用の後に、シンタックス要素がコーディングされることを規定している、方法。
【0321】
18.条項16に記載の方法であって、フォーマット・ルールは、変換スキップ(TS)モードである変換選択モードの使用に起因して、シンタックス要素がスキップされることを規定している、方法。
【0322】
19.条項11に記載の方法であって、コーディングされた表現は、ゼロ係数を常に有するコーディング・グループに対応する残差コーディング情報を除外している、方法。
【0323】
20.条項11-16のうちの何れか1項に記載の方法であって、変換を実行することは、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0324】
21.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、
変換を実行することは、二次変換ツールに関連する情報に基づくルールに従って現在のビデオ・ブロックの残差をコーディングすることを含み、
二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む、方法。
【0325】
22.条項21に記載の方法であって、ルールは、対角線上向き右スキャニング順序の代わりに、ラスタ・スキャニング順序又は垂直スキャニング順序を適用することを規定している、方法。
【0326】
23.条項21に記載の方法であって、ルールは、テンプレートの中で、スキャニング順序で最も最近のN個の隣接である、以前にコーディングされた情報に基づいて、コンテキスト・モデリングを適用することを規定している、方法。
【0327】
24.条項21に記載の方法であって、ルールは、スキャンされたインデックスに従って、テンプレート内の以前にコーディングされた情報に基づいて、コンテキスト・モデリングを適用することを規定している、方法。
【0328】
25.条項21に記載の方法であって、ルールは、二次変換ツールが現在のビデオ・ブロックに適用されるかどうかに応じて、異なる二値化方法を適用することを規定している、方法。
【0329】
26.条項21に記載の方法であって、ルールは、二次変換ツールの適用に起因して、シンタックス要素のシグナリングをスキップすることを規定している、方法。
【0330】
27.条項26に記載の方法であって、ルールは、現在のビデオ・ブロックのコーディング・グループに関し、二次変換ツールの適用を示すフラグのシグナリングをスキップすることを規定している、方法。
【0331】
28.条項27に記載の方法であって、フラグは0又は1であると推定される、方法。
【0332】
29.条項21に記載の方法であって、ルールは、二次変換ツールの適用に起因して、座標に対する係数及び/又は符号フラグのシグナリングをスキップすることを規定している、方法。
【0333】
30.条項21に記載の方法であって、ルールは、LFNSTツールが適用される現在のビデオ・ブロックのコーディング・グループに、他のコーディング・グループに適用されるものとは異なる修正されたコンテキスト・モデリングを適用することを規定している、方法。
【0334】
31.条項21-30のうちの何れか1項に記載の方法であって、変換を実行することは、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0335】
32.ビデオ処理方法であって、ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間で変換を実行するステップを含み、変換を実行することは、ルールに従って、異なるコンテキスト・モデリング方法を使用する算術符号化を、現在のビデオ・ブロックの1つ以上の部分に適用することを含む、方法。
【0336】
33.条項32に記載の方法であって、1つ以上の部分は、スキャニング順序に従って現在のビデオ・ブロックの先頭からM個のコーディング・グループを含む第1部分と、現在のビデオ・ブロックの残りのコーディング・グループを含む第2部分とを含み、Mは整数である、方法。
【0337】
34.条項33に記載の方法であって、Mは1又は2である、方法。
【0338】
35.条項32に記載の方法であって、1つ以上の部分は、低周波ノン・セパラブル変換(LFNST)ツールが適用される1つ以上のコーディング・ブロックを含む現在のビデオ・ブロックのサブ領域と、LFNSTが適用されない1つ以上のコーディング・ブロックを含む現在のビデオ・ブロックの別のサブ領域とを含む、方法。
【0339】
36.条項32に記載の方法であって、ルールは、現在のビデオ・ブロックの第1部分についてコンテキスト・モデリング方法において以前にコーディングされた情報の使用をディセーブルにするが、現在のビデオ・ブロックの第2部分については使用をイネーブルにすることを規定している、方法。
【0340】
37.条項32に記載の方法であって、ルールは、現在のビデオ・ブロックの第1コーディング・グループを復号化することに関し、現在のビデオ・ブロックの残りの1つ以上のコーディング・グループの情報を許可しないように規定している、方法。
【0341】
38.条項37に記載の方法であって、ルールは、第1コーディング・グループに対応するフラグをコーディングすることに関し、第2コーディング・グループ及び/又は第3コーディング・グループの値は考慮されないことを考慮しないように規定している、方法。
【0342】
39.条項37に記載の方法であって、ルールは、現在の変換係数をコーディングすることに関し、コンテキスト・テンプレートの中で、異なるコーディング・グループ内にある近隣からの情報を考慮しないことを規定している、方法。
【0343】
40.条項32に記載の方法であって、ルールは、低周波ノン・セパラブル変換(LFNST)変換ツールが適用される部分で使用される係数の復号化に関し、LFNSTツールが適用されない別の部分で使用される情報をディセーブルにするように規定している、方法。
【0344】
41.条項32に記載の方法であって、ルールは、低周波ノン・セパラブル変換(LFNST)ツールが適用されるか否か、及び/又は現在のビデオ・ブロックのブロック寸法に基づいて、上記の適用が実行されることを規定している、方法。
【0345】
42.条項35、40、及び41のうちの何れか1項に記載の方法であって、LFNSTツールを使用して、符号化の間に、量子化の前に、現在のビデオ・ブロックの残差に適用されるフォワード一次変換の出力に、フォワード二次変換が適用されるか、又は、LFNSTツールを使用して、復号化の間に、インバース一次変換を適用する前に、インバース二次変換が、現在のビデオ・ブロックに対する逆量子化の出力に適用される、方法。
【0346】
43.条項32-42のうちの何れか1項に記載の方法であって、変換を実行することは、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0347】
44.条項1-43のうちの何れか1項に記載の方法であって、ビデオの少なくとも幾つかのブロックは、二次変換ツールを使用して、コーディングされた表現においてコーディングされる、方法。
【0348】
45.プロセッサと命令をそこに有する非一時的なメモリとを備えるビデオ・システム内の装置であって、命令は、プロセッサにより実行されると、プロセッサに、条項1-44のうちの何れか1項に記載の方法を実行させる、装置。
【0349】
46.非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータ・プログラム製品であって、条項1-44のうちの何れか1項に記載の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム製品。
【0350】
第5セットの条項は、上記のセクション、例えば例示的な実装11-16において開示される技術の特定の特徴及び態様を記述している。
【0351】
1.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックとビデオのコーディングされた表現との間の変換を実行するステップを含み、
変換を実行することは、ビデオの現在のビデオ・ブロックの特徴に基づいて、二次変換ツールのインデックスに対応するビン・ストリングのビンをコーディングするか又はビンをコーディングすることをバイパスするためのコンテキスト・モデルを構築することを含み、
インデックスは、二次変換ツールの適用性及び/又は二次変換ツールのカーネル情報を示し、
二次変換ツールは、符号化の間に、量子化の前に、ビデオ・ブロックの残差に適用されたフォワード一次変換の出力に、フォワード二次変換を適用すること、又は二次変換ツールは、復号化の間に、インバース一次変換を適用する前に、インバース二次変換を、ビデオ・ブロックに対する逆量子化の出力に適用することを含む、方法。
【0352】
2.条項1に記載の方法であって、二次変換ツールは、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0353】
3.条項1に記載の方法であって、コンテキスト・モデルは、第1ビン及び/又は第2ビンが、1つのコンテキストのみでコーディングされること、又はバイパス・コーディングされることを許容する、方法。
【0354】
4.条項1に記載の方法であって、上記の特徴は、明示的又は黙示的な多重変換選択(MTS)の実施可能性である、方法。
【0355】
5.条項4に記載の方法であって、明示的な多重変換選択がイネーブルにされている場合、コンテキストは、現在のビデオ・ブロックに適用されるイントラ予測モードのタイプに基づいて選択され、コンテキストは、イントラ予測モードのタイプを使用して、別のブロックに対して選択される、方法。
【0356】
6.条項5に記載の方法であって、コンテキストは、現在のビデオ・ブロックの寸法に基づいて選択される、方法。
【0357】
7.条項4に記載の方法であって、明示的な多重変換選択(MTS)に関してコーディングされた変換インデックスをチェックする代わりに、変換行列の基底が使用される、方法。
【0358】
8.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのクロマ成分の予測値を導出するために線形モードを使用するクロス・コンポーネント線形モデル(CCLM)コーディング・モードの実施可能性である、方法。
【0359】
9.条項1に記載の方法であって、現在のビデオ・ブロックのクロマ成分の予測値を導出するために線形モードを使用するクロス・コンポーネント線形モデル(CCLM)コーディング・モードの実施可能性は、二次変換ツールのインデックスをコーディングするためのコンテキスト・モデルの実施可能性又は選択を決定する、方法。
【0360】
10.条項1に記載の方法であって、二次変換ツールのインデックスをコーディングするためのコンテキスト・モデルの実施可能性又は選択は、クロマ・ブロックが対応するルマ・ブロックの同じイントラ予測コーディング・モードを継承するDMモードで、現在のビデオ・ブロックのクロマ・ブロックがコーディングされるか否かに依存する、方法。
【0361】
11.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのサイズである、方法。
【0362】
12.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックに適用されるパーティショニング・プロセスの分割深度である、方法。
【0363】
13.条項12に記載の方法であって、パーティショニング・プロセスは、四分木(QT)パーティショニング・プロセス、二分木(BT)パーティショニング・プロセス又は三分木(TT)パーティショニング・プロセスである、方法。
【0364】
14.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのカラー・フォーマット又は色成分である、方法。
【0365】
15.条項1に記載の方法であって、上記の特徴は、現在のビデオ・ブロックのイントラ予測モード及び/又は多重変換選択(MTS)プロセスのインデックスを除外する、方法。
【0366】
16.条項1-15のうちの何れか1項に記載の方法であって、変換を実行することは、ビデオから、コーディングされた表現を生成すること、又はコーディングされた表現から、ビデオを生成することを含む、方法。
【0367】
17.プロセッサと命令をそこに有する非一時的なメモリとを備えるビデオ・システム内の装置であって、命令は、プロセッサにより実行されると、プロセッサに、条項1-16のうちの何れか1項に記載の方法を実行させる、装置。
【0368】
18.非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータ・プログラム製品であって、条項1-16のうちの何れか1項に記載の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム製品。
【0369】
第6セットの条項は、上記のセクション、例えば例示的な実装17及び18において開示される技術の特定の特徴及び態様を記述している。
【0370】
1.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、現在のビデオ・ブロックのディメンジョンに基づいて、シンタックス要素がコーディングされた表現に含まれるかどうかを決定することを含み、シンタックス要素は、二次変換を適用することの指示、及び二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む二次変換ツールのサイド情報に対応し、
二次変換を使用して、インバース二次変換は、インバース一次変換を適用する前に、コーディングされた表現を復号化するために使用され、且つ現在のビデオ・ブロックの逆量子化の出力に適用される、方法。
【0371】
2.ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、変換を実行することは、現在のビデオ・ブロックのディメンジョンに基づいて、シンタックス要素が現在のビデオ・ブロックのコーディングされた表現に含まれるかどうかを決定することを含み、シンタックス要素は、二次変換を適用することの指示、及び二次変換プロセスで使用される変換カーネルのインデックス、のうちの少なくとも1つを含む二次変換ツールのサイド情報に対応し、
二次変換を使用して、量子化プロセスを適用する前に、フォワード二次変換が、現在のビデオ・ブロックを符号化するために使用され、且つ現在のビデオ・ブロックの一次変換の出力に適用される、方法。
【0372】
3.条項1又は2に記載の方法であって、二次変換は、低周波ノン・セパラブル変換(LFNST)ツールに対応している、方法。
【0373】
4.条項1-3のうちの何れか1項に記載の方法であって、現在のビデオ・ブロックのディメンジョンは、現在のビデオ・ブロックの高さ(M)又は幅(N)である、方法。
【0374】
5.条項1,3,4のうちの何れか1項に記載の方法であって、シンタックス要素はコーディングされた表現に含まれず、インバース二次変換は、(i)M=8及びN=4、又は(ii)M=4及びN=8の場合には適用されない、方法。
【0375】
6.条項1,3,4のうちの何れか1項に記載の方法であって、インバース二次変換に関連するシンタックス要素は、インバース二次変換が適用されない場合にはスキップされる、方法。
【0376】
7.条項1-3のうちの何れか1項に記載の方法であって、シンタックス要素は、現在のビデオ・ブロックの1つ以上のコーディング・グループの1つ以上のコーディングされたフラグを含む、方法。
【0377】
8.条項7に記載の方法であって、インバース二次変換は、左上コーディング・グループのコーディングされたフラグがゼロである場合には適用されない、方法。
【0378】
9.条項8に記載の方法であって、現在のビデオ・ブロックは、4×N又はN×4とは等しくないサイズを有し、Nは8より大きな整数である、方法。
【0379】
10.条項7に記載の方法であって、インバース二次変換は、現在のビデオ・ブロックのスキャニング順序に従って第1及び第2コーディング・グループのコーディングされたフラグがゼロである場合には適用されない、方法。
【0380】
11.条項10に記載の方法であって、現在のビデオ・ブロックは、4×N又はN×4に等しいサイズを有し、Nは8より大きな整数である、方法。
【0381】
12.条項1-11のうちの何れか1項に記載の方法であって、変換を実行することは、コーディングされた表現からビデオを生成すること、又はビデオから、コーディングされた表現を生成することを含む、方法。
【0382】
13.条項1-12のうちの何れか1項に記載の方法であって、ビデオの少なくとも幾つかのブロックは、二次変換ツールを使用して、コーディングされた表現においてコーディングされる、方法。
【0383】
14.プロセッサと命令をそこに有する非一時的なメモリとを備えるビデオ・システム内の装置であって、命令は、プロセッサにより実行されると、プロセッサに、条項1-13のうちの何れか1項に記載の方法を実行させる、装置。
【0384】
15.非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータ・プログラム製品であって、条項1-13のうちの何れか1項に記載の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム製品。
【0385】
以上から、本件で開示される技術の特定の実施形態が本願において説明の目的で記述されているが、本発明の範囲を逸脱することなく、種々の修正が行われてもよいことは、理解されるであろう。従って、本件で開示される技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0386】
本特許文献で説明される対象事項及び機能的動作の実装は、本明細書で開示される構造及びそれらの構造的均等物を含む、種々のシステム、デジタル電子回路、又はコンピュータ・ソフトウェア、ファームウェア、又はハードウェア、又はそれらの1つ以上の組み合わせにおいて実現することができる。本明細書で説明される対象事項の実装は、1つ以上のコンピュータ・プログラム製品として、即ち、データ処理装置による実行のための、又はその動作を制御するための、有形且つ非一時的なコンピュータ読み取り可能な媒体上で符号化されているコンピュータ・プログラム命令の1つ以上のモジュールとして、実装することができる。コンピュータ読み取り可能な媒体は、機械読み取り可能なストレージ・デバイス、機械読み取り可能なストレージ基板、メモリ・デバイス、機械読み取り可能な伝搬信号に影響を与える物質の組成、又はそれらの1つ以上の組み合わせであるとすることが可能である。用語「データ処理ユニット」又は「データ処理装置」は、例えば、プログラマブル・プロセッサ、コンピュータ、又は複数のプロセッサ又はコンピュータを含む、データを処理するためのすべての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題としているコンピュータ・プログラムの実行環境を生成するコード、例えば、プロセッサ・ファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0387】
コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプト、コードとしても知られているもの)は、コンパイル又は解釈された言語を含む、任意の形式のプログラミング言語で書くことが可能であり、それは、スタンド・アロン・プログラムとして、又はモジュール、コンポーネント、サブルーチン、又はコンピューティング環境での使用に適したその他のユニットとして、任意の形式で配備することが可能である。コンピュータ・プログラムは、必ずしもファイル・システム内のファイルに対応するとは限らない。プログラムは、他のプログラム又はデータを保持するファイルの一部分(例えば、マークアップ言語文書に保存される1つ以上のスクリプト)内に、問題としているプログラムに専用の単一ファイル内に、又は複数の調整されたファイル(例えば、1つ以上のモジュール、サブ・プログラム、又はコードの一部分を記憶するファイル)内に、保存されることが可能である。コンピュータ・プログラムは、1つのコンピュータ上で又は複数のコンピュータ上で実行されるように配備することが可能であり、複数のコンピュータは、1つのサイトに配置されるか、又は複数のサイトにわたって分散されて通信ネットワークによって相互接続されている。
【0388】
本明細書で説明されるプロセス及びロジックの流れは、1つ以上のコンピュータ・プログラムを実行する1つ以上のプログラマブル・プロセッサによって実行され、入力データに作用して出力を生成することによって機能を実行することができる。プロセス及びロジックのフローはまた、例えばFPGA(フィールド・プログラマブル・ゲート・アレイ)又はASIC(特定用途向け集積回路)のような特殊目的論理回路によって実行されることが可能であり、また、それらとして装置を実装することも可能である。
【0389】
コンピュータ・プログラムの実行に適したプロセッサは、例えば、汎用及び専用双方のマイクロプロセッサ、及び任意の種類のデジタル・コンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリ・メモリ又はランダム・アクセス・メモリ又は双方から命令及びデータを受信するであろう。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリ・デバイスである。一般に、コンピュータはまた、データを記憶するための1つ以上の大容量ストレージ・デバイス、例えば磁気的なもの、磁気光ディスク、又は光ディスクを含み、あるいはそれらからデータを受信したり、それらへデータを転送したり、或いは双方のために動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有することを必須とはしない。コンピュータ・プログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能な媒体は、例えば、EPROM、EEPROM、及びフラッシュ・メモリ・デバイスのような半導体メモリ・デバイスを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリ・デバイスを含む。プロセッサ及びメモリは、特殊目的論理回路によって補足されるか、又はそこに内蔵されることが可能である。
【0390】
明細書は図面と共に模範としてのみ考慮されることが意図されており、ここで模範は例を意味する。本願で使用されるように、「又は」の使用は、文脈が明らかに別意を示していない限り、「及び/又は」を含むように意図されている。
【0391】
本特許文献は多くの詳細を含んでいるが、これらは、何れかの発明やクレームされ得るもの範囲に関する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有である可能性のある特徴の説明として解釈されるべきである。別々の実施形態の文脈で本特許文献で説明されている特定の特徴は、組み合わせて単一の実施形態で実施することも可能である。逆に、単一の実施形態の文脈で説明されている種々の特徴は、複数の実施形態において別々に、又は任意の適切なサブコンビネーションで実施することも可能である。更に、特徴が、特定の組み合わせにおいて作用するものとして上述されていたり、当初にはそのようにクレームされていたりさえするかもしれないが、クレームされた組み合わせ中の1つ以上の特徴は、場合によっては、組み合わせから切り出されることが可能であり、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に仕向けられる可能性がある。
【0392】
同様に、図中、動作は特定の順序で描かれているが、これは、所望の結果を達成するために、このような動作が図示の特定の順序で又は順番通りに実行されること、又は、例示されたすべての動作が実行されること、を要求するものとして理解されるべきではない。更に、この特許文献で説明される実施形態における種々のシステム構成要素の分け方は、すべての実施形態でこのような分け方を要求とするものとして理解されるべきではない。
【0393】
僅かな実装例及び実施例のみが記述されているに過ぎず、本特許文献で説明され図示されているものに基づいて他の実装、拡張及び変更を行うことが可能である。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22A
図22B
図23A
図23B