(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-22
(54)【発明の名称】ビデオ・データを処理する方法、装置及び記憶媒体
(51)【国際特許分類】
H04N 19/70 20140101AFI20221215BHJP
H04N 19/503 20140101ALI20221215BHJP
【FI】
H04N19/70
H04N19/503
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022523814
(86)(22)【出願日】2020-10-22
(85)【翻訳文提出日】2022-05-12
(86)【国際出願番号】 CN2020122644
(87)【国際公開番号】W WO2021078177
(87)【国際公開日】2021-04-29
(31)【優先権主張番号】PCT/CN2019/112820
(32)【優先日】2019-10-23
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(71)【出願人】
【識別番号】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)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】シュイ,ジィジォン
(72)【発明者】
【氏名】ワン,ユエ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RB09
5C159RC11
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
ビデオ処理方法は、ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、変換に使用される参照ピクチャと現在のブロックを含む現在のピクチャとの解像度が異なることを判定するステップと、現在のブロックの一群のサンプルの予測値が、水平又は垂直補間フィルタを用いて生成されるように、前記判定に基づいて前記変換を実行するステップとを含む。
【特許請求の範囲】
【請求項1】
ビデオ処理方法であって:
ビデオの現在のピクチャの現在のブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップ;
を含み、前記コーディングされた表現はフォーマット・ルールに従っており、
前記フォーマット・ルールは、前記現在のビデオ・ブロックに対する予測ブロックを決定するための参照ピクチャに適用されるラップアラウンド・クリッピング処理に関する1つ以上のシンタックス要素を選択的に含むことを規定しており、前記ラップアラウンド・クリッピング処理は、動きベクトルが、前記参照ピクチャの境界ブロック外側のサンプルを指す場合に、前記参照ピクチャ内のサンプルを再選択するために使用される、方法。
【請求項2】
請求項1に記載の方法において、前記フォーマット・ルールは、前記1つ以上のシンタックス要素のうちのシンタックス要素が、ピクチャ・パラメータ・セット(PPS)に含まれることを規定している、方法。
【請求項3】
請求項2に記載の方法において、前記PPSに含まれる前記シンタックス要素は、前記ラップアラウンド・クリッピング処理が水平方向でイネーブルにされるかどうかことを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項4】
請求項3に記載の方法において、前記シンタックス要素の値“1”は、前記ラップアラウンド・クリッピング処理が前記水平方向でイネーブルにされることを示し、前記シンタックス要素の値“0”は、前記ラップアラウンド・クリッピング処理が前記水平方向でディセーブルにされることを示す、方法。
【請求項5】
請求項1に記載の方法において、前記ルールは、第1ビデオ・ユニット・レベルにおける第1シンタックス要素と、前記ラップアラウンド・クリッピング処理がイネーブルにされるかどうかを示す第2ユニット・レベルにおける第2シンタックス要素とを含むことを規定している、方法。
【請求項6】
請求項5に記載の方法において、前記第2シンタックス要素は、前記第1シンタックス要素を参照している、方法。
【請求項7】
請求項5又は6に記載の方法であって、前記第1シンタックス要素及び/又は前記第2シンタックス要素信号は、前記ラップアラウンド・クリッピング処理が前記現在のブロックに対してイネーブルにされるかどうかを示している、方法。
【請求項8】
請求項5-7のうちの何れか1項に記載の方法において、前記フォーマット・ルールは、前記第2シンタックス要素の値は前記第1シンタックス要素の値に依存することを規定している、方法。
【請求項9】
請求項8に記載の方法において、前記フォーマット・ルールは、前記第1シンタックス要素が、前記ラップアラウンド・クリッピング処理はディセーブルにされることを示す場合に、前記第2シンタックス要素も、前記ラップアラウンド・クリッピング処理はディセーブルにされることを示す、ということを規定している、方法。
【請求項10】
請求項1又は2に記載の方法において、前記フォーマット・ルールは、前記ラップアラウンド・クリッピング処理に使用されるオフセットを示すシンタックス要素を含むことを規定している、方法。
【請求項11】
請求項1に記載の方法において、前記1つ以上のシンタックス要素は、
前記ラップアラウンド・クリッピング処理がイネーブルにされるかどうかを示す第1シンタックス要素と、前記ラップアラウンド・クリッピング処理の実施可能性に依存して条件付きで包含される第2シンタックス要素とを含む、方法。
【請求項12】
請求項11に記載の方法において、前記第2シンタックス要素は、前記第1シンタックス要素が値1を有する場合に、前記コーディングされた表現に条件付きで含まれる、方法。
【請求項13】
請求項5-9のうちの何れか1項に記載の方法において、前記第1ビデオ・ユニット・レベルはビデオ・シーケンス・レベルであり、前記第1シンタックス要素はシンタックス・パラメータ・セットに含まれている、方法。
【請求項14】
請求項5-9又は13のうちの何れか1項に記載の方法において、前記第2ビデオ・ユニット・レベルは、ビデオ・ピクチャ・レベル又はビデオ・スライス・レベルである、方法。
【請求項15】
請求項5-9又は13のうちの何れか1項に記載の方法において、前記第2シンタックス要素は、ピクチャ・パラメータ・セット、スライス・ヘッダ、ピクチャ・ヘッダ、又は適応パラメータ・セット内にある、方法。
【請求項16】
請求項5-9のうちの何れか1項に記載の方法において、前記第1シンタックス要素及び/又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理に使用されるべきラップアラウンド・オフセットの量をシグナリングするものである、方法。
【請求項17】
請求項8-16のうちの何れか1項に記載の方法において、前記フォーマット・ルールは、前記第1シンタックス要素と前記第2シンタックス要素が互いに等しいことを規定している、方法。
【請求項18】
請求項8-16のうちの何れか1項に記載の方法において、前記第1シンタックス要素が前記ラップアラウンド・クリッピング処理はイネーブルにされていることを示す場合に、前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理がイネーブルにされることを示す第1値、又は前記ラップアラウンド・クリッピング処理がディセーブルにされることを示す第2値を有することが許可されることを、前記フォーマット・ルールは規定している、方法。
【請求項19】
請求項5-18のうちの何れか1項に記載の方法において、前記第1シンタックス要素と前記第2シンタックス要素の双方が前記コーディングされた表現に含まれる場合に、前記第1シンタックス要素の値は、前記コーディングされた表現からの前記現在のブロックを復号化する際に無視されることを、前記フォーマット・ルールは規定している、方法。
【請求項20】
請求項7-17のうちの何れか1項に記載の方法において、前記第1シンタックス要素と前記第2シンタックス要素の双方が前記コーディングされた表現に含まれる場合に、前記第2シンタックス要素の値は、前記コーディングされた表現からの前記現在のブロックを復号化する際に無視されることを、前記フォーマット・ルールは規定している、方法。
【請求項21】
請求項7-20のうちの何れか1項に記載の方法において、前記第1シンタックス要素の値及び/又は前記第2シンタックス要素の値は、前記現在のブロックのコーディング・ツリー・ブロックに関連する第1サイズ、及び前記現在のブロックを含む前記現在のピクチャの幅に関連する第2サイズに依存することを、前記フォーマット・ルールは規定している、方法。
【請求項22】
請求項20に記載の方法において、前記第1サイズは、(CtbSizeY / MinCbSizeY + Offset1) に等しく、CtbSizeYは前記コーディング・ツリー・ブロックの高さ又は幅であり、MinCbSizeYは前記変換におけるコーディング・ブロックに対する最小許容サイズを示し、Offset1は整数であり、前記第2サイズは、( pic_width_in_luma_samples / MinCbSizeY - Offset2 ) に等しく、pic_width_in_luma_samplesは、ピクチャ・パラメータ・セットで示されるルマ・サンプルにおける前記現在のピクチャの幅を示し、Offset2は他の整数である、方法。
【請求項23】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより大きくないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項24】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以下ではないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項25】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより小さくないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項26】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以上であることに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項27】
請求項21-26のうちの何れか1項に記載の方法において、前記ピクチャ・パラメータ・セットは、前記現在のピクチャに適用可能なシーケンス・パラメータ・セットを参照している、方法。
【請求項28】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより大きいことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項29】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以下ではないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項30】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより小さくないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項31】
請求項21に記載の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以上ではないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している、方法。
【請求項32】
請求項22-31のうちの何れか1項に記載の方法において、offset2 = offset1 = 1である、方法。
【請求項33】
請求項1に記載の方法において、前記フォーマット・ルールは、前記シンタックス要素が適応パラメータ・セットに含まれることを規定している、方法。
【請求項34】
請求項1に記載の方法において、前記フォーマット・ルールは、前記シンタックス要素が、前記現在のブロックを含む現在のスライス又は前記現在のピクチャのヘッダ・フィールドに含まれることを規定している、方法。
【請求項35】
請求項1に記載の方法において、前記フォーマット・ルールは、ピクチャ・レベル、ビュー・レベル、スライス・レベル、タイル・レベル、ブリック・レベル、サブ・ピクチャ・レベル、又はコーディング・ツリー・ユニット・レベルで含まれることを規定している、方法。
【請求項36】
請求項1-35のうちの何れか1項に記載の方法において、前記変換は、前記ビデオを、前記コーディングされた表現に符号化することを含む、方法。
【請求項37】
請求項1-35のうちの何れか1項に記載の方法において、前記変換は、前記コーディングされた表現を復号化して、前記ビデオのピクセル値を生成することを含む、方法。
【請求項38】
請求項1-37のうちの何れか1項に記載の方法を実行するように構成されたプロセッサを含むビデオ復号化装置。
【請求項39】
請求項1-37のうちの何れか1項に記載の方法を実行するように構成されたプロセッサを含むビデオ符号化装置。
【請求項40】
コンピュータ・コードを記憶したコンピュータ・プログラム製品であって、前記コンピュータ・コードは、プロセッサにより実行されると、前記プロセッサに、請求項1-37のうちの何れか1項に記載の方法を実行させる、コンピュータ・プログラム製品。
【請求項41】
コードを記憶したコンピュータ読み取り可能な媒体であって、前記コードは、プロセッサにより実行されると、前記プロセッサに、請求項1-37のうちの何れか1項に記載の方法を実行させる、記憶媒体。
【請求項42】
請求項1-37のうちの何れか1項に記載の方法により生成されたビットストリームを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項43】
本件で説明された方法、装置、又はシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 関連出願の相互参照
パリ条約に関して適用可能な特許法及び/又は規則に基づいて、本願は、2019年10月23日付で出願された国際特許出願第PCT/CN2019/112820号についての優先権及び利益を適時に主張するために行われている。法に基づく全ての目的に関し、前述の出願の全ての開示は、本願の開示の一部として参照により援用される。
【0002】
[0002] 技術分野
本件特許明細書等はビデオ・コーディング及びデコーディングに関する。
【背景技術】
【0003】
[0003] 背景技術
ビデオ圧縮の進歩にもかかわらず、デジタル・ビデオは、インターネット及びその他のデジタル通信ネットワークにおいて利用する最大の帯域幅を占めている。ビデオを受信及び表示することが可能な接続ユーザー・デバイスの台数が増加するにつれて、デジタル・ビデオの利用に対する帯域幅需要は増加し続けるであろうということが予想される。
【発明の概要】
【0004】
[0004] デバイス、システム及び方法は、デジタル・ビデオ・コーディング、特に、現在のピクチャと参照ピクチャが異なるサイズ又は解像度を有するビデオ及び画像コーディング及びデコーディングに関連する。
【0005】
[0005] ある例示的な態様では、ビデオ処理方法が開示される。方法は、ビデオの現在のピクチャの現在のブロックとビデオのコーディングされた表現との間の変換を実行するステップを含む。コーディングされた表現はフォーマット・ルールに従っている。フォーマット・ルールは、現在のビデオ・ブロックに対する予測ブロックを決定するための参照ピクチャに適用されるラップアラウンド・クリッピング処理(wraparound clipping operation)に関する1つ以上のシンタックス要素を選択的に含むことを規定しており、ラップアラウンド・クリッピング処理は、動きベクトルが、参照ピクチャの境界ブロック外側のサンプルを指す場合に、参照ピクチャ内のサンプルを再選択するために使用される。
【0006】
[0006] 別の例示的な態様では、ビデオ処理方法が開示される。方法は、ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、変換に使用される参照ピクチャと現在のブロックを含む現在のピクチャとの解像度が異なることを判定するステップと、現在のブロックの一群のサンプルの予測された値が、水平又は垂直補間フィルタを用いて生成されるように、上記の判定に基づいて変換を実行するステップとを含む。
【0007】
[0007] 別の例示的な態様では、別のビデオ処理方法が開示される。方法は、ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、現在のブロックを含む現在のピクチャと変換に使用される参照ピクチャの解像度が異なることを判定するステップ;及び現在のブロックの一群のサンプルの予測された値が、参照ピクチャ内の領域をサンプル・レート変更することで生成された仮想参照ブロックの補間されたバージョンとして生成されるように、上記の判定に基づいて変換を実行するステップ;を含み、サンプル・レート変更は、現在のピクチャ又は参照ピクチャの高さ又は幅に依存する。
【0008】
[0008] 別の例示的な態様では、別のビデオ処理方法が開示される。方法は、ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、現在のブロックを含む現在のピクチャと変換に使用される参照ピクチャの解像度が異なることを判定するステップ;及び判定に基づいて、参照信号パディングの境界ボックスの左上座標を、現在のピクチャ又は参照ピクチャの高さ又は幅に依存する方式に基づいて導出するステップ;及び境界ボックスの導出された左上座標を利用して変換を実行するステップを含む。
【0009】
[0009] 別の例示的な態様では、別のビデオ処理方法が開示される。方法は、ビデオの現在のピクチャの現在ブロックとビデオのコーディングされた表現との間の変換に関し、動きベクトル計算に適用されるクリッピング処理を、参照サンプル・パディングの境界ボックスに従って、デコーダ側動きベクトル精密化(decoder side motion vector refinement, DMVR)を使用することに基づいて、現在のブロックの変換中に決定するステップ;及びクリッピング処理に基づいて変換を実行するステップを含む。
【0010】
[0010] 別の例示的な態様では、別のビデオ処理方法が開示される。方法は、ビデオの現在のピクチャの現在ブロックとビデオのコーディングされた表現との間の変換に関し、動きベクトル計算に適用されるクリッピング処理を、参照サンプル・パディングの境界ボックスに従って、変換におけるピクチャ・ラッピングを使用することに基づいて決定するステップ;及びクリッピング処理に基づいて変換を実行するステップを含む。
【0011】
[0011] 更に別の代表的な態様では、上述の方法は、プロセッサによる実行が可能なコードの形態で具体化され、コンピュータ読み取り可能なプログラム媒体に記憶される。
【0012】
[0012] 更に別の代表的な態様では、上述の方法を実行するように構成された又は動作することが可能なデバイスが開示される。デバイスは、この方法を実装するようにプログラムされたプロセッサを含んでもよい。
【0013】
[0013] 更に別の代表的な態様では、ビデオ・デコーダ装置は、本件で説明される方法を実装することができる。
【0014】
[0014] 開示された技術の上記及びその他の態様及び特徴は、図面、明細書及び特許請求の範囲においてより詳細に記載されている。
【図面の簡単な説明】
【0015】
【
図1】[0015] 16×16ブロックが16個の4×4領域に分割されている例を示す。
【
図2A】[0016] ビデオ・ブロック内の特定の場所の例を示す。
【
図2B】ビデオ・ブロック内の特定の場所の例を示す。
【
図2C】ビデオ・ブロック内の特定の場所の例を示す。
【
図3】[0017] ビデオ処理のためのハードウェア・プラットフォームの実装例のブロック図である。
【
図4】[0018] ビデオ処理の方法例に関するフローチャートである。
【
図5】[0019] VVCにおけるラップ・アラウンド・クリッピングの例を示す。
【
図6】[0020] ビデオ・コーディング・システムの実装例のブロック図である。
【
図7】[0021] ビデオ・エンコーダの実装例のブロック図である。
【
図8】[0022] ビデオ・デコーダの実装例のブロック図である。
【
図9】[0023] ビデオ処理の方法例のフローチャートである。
【発明を実施するための形態】
【0016】
[0024] 開示される技術の実施形態は、圧縮パフォーマンスを改善するために、既存のビデオ・コーディング規格(例えば、HEVC, H.265)及び将来の規格に適用される可能性がある。本件明細書では、説明の可読性を向上させるためにセクション見出しが使用されているが、如何なる方法によっても、説明又は実施形態(及び/又は実装)を個々のセクションのみに限定してはいない。
【0017】
[0025] 1. はじめに
本件はビデオ・コーディング技術に関連する。具体的には、本件はビデオ・コーディングにおける適応解像度変換に関連する。これは、HEVCのような既存のビデオ/画像コーディング規格、又はファイナライズされる予定の規格(Versatile Video Coding, VVC)に適用される可能性がある。本件は将来のビデオ・コーディング規格又はビデオ・コーデックに適用される可能性もある。
【0018】
[0026] 2. ビデオ・コーディング・イントロダクション
ビデオ・コーディング規格は、周知の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/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規格に取り組んでいる。
【0019】
[0027] AVC及びHEVCは、IDR又はイントラ・ランダム・アクセス・ポイント(IRAP)ピクチャを導入する必要なしに、解像度を変更する能力を持っておらず;そのような能力は、適応解像度変更(adaptive resolution change, ARC)と言及することができる。ARC機能からの恩恵を受けるユース・ケースやアプリケーション・シナリオが存在し、それらは以下のようなものを含む:
- テレビ電話及び会議におけるレート・アダプテーション:コーディングされるビデオを、変化するネットワーク条件に適応させるために、ネットワーク条件が悪化して利用可能な帯域幅が小さくなると、エンコーダは、より小さな解像度のピクチャを符号化することによって、それに合わせることができる。現在、ピクチャの解像度を変化させることは、IRAPピクチャの後でしか行うことができないが;これには幾つかの問題がある。妥当な品質のIRAPピクチャは、インター・コーディングされたピクチャよりもはるかに大きく、相応して復号化がより複雑化するであろう:これには時間とリソースがかかる。解像度の変更が、ローディングの理由でデコーダによって要求された場合、それは問題となる。また、低遅延バッファ条件に違反し、オーディオの再同期を強制し、ストリームのエンド・ツー・エンド遅延が少なくとも一時的に増加する可能性がある。これは貧弱なユーザー体験をもたらす可能性がある。
【0020】
- 複数人のビデオ会議におけるアクティブ・スピーカの変更:マルチ・パーティ・ビデオ会議の場合、アクティブ・スピーカは、残りの会議参加者のビデオよりも大きなビデオ・サイズで表示されることが一般的である。アクティブ・スピーカが変わると、各参加者のピクチャ解像度も調整されることを必要とする可能性がある。ARC機能を有する必要性は、アクティブ・スピーカにおけるこのような変更が頻繁に行われる場合に、より重要になる。
【0021】
- ストリーミングの迅速な開始:ストリーミング・アプリケーションでは、アプリケーションは、表示を開始する前に、ある一定の長さの復号化されたピクチャになるまでバッファリングすることが一般的である。より小さな解像度でビットストリームを開始することは、アプリケーションが、より速く表示を開始するために十分なピクチャをバッファ内に有することを可能にする。
【0022】
[0028] ストリーミングにおける適応ストリーム切り替え:HTTPによる動的適応ストリーミング(Dynamic Adaptive Streaming over HTTP, DASH)規格は、@mediaStreamStructureIdという名称の機能を含む。これは、異なる表現間の切り替えを、オープンGOPランダム・アクセス・ポイントにおいて、復号化可能でないリーディング・ピクチャ、例えばHEVCにおける関連するRASLピクチャを伴うCRAピクチャ、とともに行うことを可能にする。同じビデオの2つの異なる表現が、異なるビットレートを有するが、同じ空間解像度を有する一方、それらが@ mediaStreamStructureIdの同じ値を有する場合、関連するRASLピクチャを伴うCRAピクチャにおいて、2つの表現の間で切り替えを行うことが可能であり、CRAピクチャにおけるスイッチングに関連するRASLピクチャは、許容可能な品質で復号化することが可能であり、従ってシームレスなスイッチングを可能にする。ARCにより、@mediaStreamStructureIdの機能は、異なる空間解像度を有するDASH表現の間の切り替えにも利用可能である。
【0023】
[0029] ARCは、動的な解像度変換としても知られている。
【0024】
[0030] ARCはまた、H.263 Annex Pのようなリファレンス・ピクチャ・リサンプリング(RPR)の特殊なケースと見なすこともできる。
【0025】
[0031] H.263 Annex Pにおけるリファレンス・ピクチャ・リサンプリング
このモードは、参照ピクチャを、予測のために使用する前にワープする(warp)アルゴリズムを記述している。これは、予測されるピクチャとは異なるソース・フォーマットを有する参照ピクチャを、リサンプリングするのに有用である可能性がある。それはまた、参照ピクチャの形状、サイズ、及び位置をワーピング(warping)することによって、グローバル動き推定又は回転運動の推定に使用することも可能である。シンタックスは、リサンプリング・アルゴリズムにも使用されるべきワーピング・パラメータを含む。参照ピクチャ・リサンプリング・モードに関する動作の最もシンプルなレベルは、4リサンプリングの暗黙的なファクターであり、なぜならFIRフィルタがアップサンプリング及びダウンサンプリング・プロセスに適用されることを必要とするだけだからである。この場合、追加的なシグナリング・オーバヘッドは必要とされず、なぜなら、それを使用することは、新たなピクチャ(ピクチャ・ヘッダで示される)のサイズが以前のピクチャのサイズと異なる場合であると理解されるからである。
【0026】
[0032] 2.2 ARCのVVCに対する貢献
以下に挙げられているように、ARCに対処する幾つかの貢献(contributions)が提案されている:
[0033] JVET-M0135, JVET-M0259, JVET-N0048, JVET-N0052, JVET-N0118, JVET-N0279.
[0034] JVET-O2001-v14におけるARC
ARCは、リファレンス・ピクチャ・リサンプリング(Reference Picture Resampling, RPR)としても知られており、これはJVET-O2001-v14で導入されている。
【0027】
[0035] JVET-O2001-v14のRPRでは、同等位置にあるピクチャ又はコロケーテッド・ピクチャ(collocated picture)が現在のピクチャと異なる解像度を有する場合、TMVPはディセーブルにされる。また、参照ピクチャが現在のピクチャと異なる解像度を有する場合、BDOFとDMVRはディセーブルにされる。
【0028】
[0036] リファレンス・ピクチャが現在のピクチャと異なる解像度を有する場合に、ノーマルMCを取り扱うために、以下のように補間セクションが定義されている:
8.5.6.3.1 概要
このプロセスへの入力は以下の通りである:
- 現在のピクチャの左上ルマ・サンプルに対する、現在のコーディング・サブブロックの左上サンプルを指定するルマ位置( xSb, ySb ) ,
- 現在のコーディング・サブブロックの幅を指定する変数sbWidth,
- 現在のコーディング・サブブロックの高さを指定する変数sbHeight,
- 動きベクトルオフセットmvOffset,
- 精密化された動きベクトルrefMvLX,
- 選択された参照ピクチャ・サンプル配列refPicLX,
- ハーフ・サンプル補間フィルタ・インデックスhpelIfIdx,
- 双方向オプティカル・フロー・フラグbdofFlag,
- 現在のブロックの色成分インデックスを指定する変数cIdx
このプロセスの出力は以下の通りである:
- 予測サンプル値の(sbWidth + brdExtSize)x(sbHeight + brdExtSize)の配列predSamplesLX。
【0029】
予測ブロック境界拡張サイズbrdExtSizeは、以下のように導出される:
brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2 : 0 (8-752)
変数fRefWidthは、ルマ・サンプルの参照ピクチャのPicOutputWidthLに等しく設定される。
変数fRefHeightは、ルマ・サンプルの参照ピクチャのPicOutputHeightLに等しく設定される。
動きベクトルmvLXは、( refMvLX - mvOffset )に等しく設定される。
- cIdxが0に等しい場合、以下が適用される:
- スケーリング因子とその固定小数点表現は、次のように定義される
hori_scale_fp = ( ( fRefWidth << 14 ) + ( PicOutputWidthL >> 1 ) ) / PicOutputWidthL (8-753)
vert_scale_fp = ( ( fRefHeight << 14 ) + ( PicOutputHeightL >> 1 ) ) / PicOutputHeightL (8-754)
- (xIntL, yIntL)を、フル・サンプル単位で与えられるルマ位置であるとし、(xFracL, yFracL)を、1/16サンプル単位で与えられるオフセットであるとする。これらの変数は、参照サンプル配列refPicLX内の分数サンプル位置を指定するためにこの条項においのみ使用される。
【0030】
- 参照サンプル・パディングのための境界ブロックの左上座標( xSbIntL, ySbIntL )は、( xSb + ( mvLX[ 0 ] >> 4 ), ySb + ( mvLX[ 1 ] >> 4 ) )に等しく設定される。
【0031】
- 予測ルマ・サンプル配列predSamplesLX内の各ルマ・サンプル位置( xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize )に関し、対応する予測ルマ・サンプル値predSamplesLX[ xL ][ yL ]は、以下のように導出される:
- ( refxSbL, refySbL ) と ( refxL, refyL )を、1/16サンプル単位で与えられる動きベクトル( refMvLX[0], refMvLX[1] )により指し示されるルマ位置であるとする。変数refxSbL, refxL, refySbL, 及び refyLは、以下のように導出される:
refxSbL = ( ( xSb << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)
refxL = ( ( Sign( refxSb ) * ( ( Abs( refxSb ) + 128 ) >> 8 )
+ xL * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-756)
refySbL = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)
refyL = ( ( Sign( refySb ) * ( ( Abs( refySb ) + 128 ) >> 8 ) + yL *
( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758)
- 変数xIntL, yIntL, xFracL 及び yFracLは、以下のように導出される:
xIntL = refxL >> 4 (8-759)
yIntL = refyL >> 4 (8-760)
xFracL = refxL & 15 (8-761)
yFracL = refyL & 15 (8-762)
- bdofFlagがTRUEに等しいか、又は( sps_affine_prof_enabled_flag がTRUEに等しく、inter_affine_flag[ xSb ][ ySb ]がTRUEに等しい)、且つ以下の条件のうちの1つ以上が真である場合、予測ルマ・サンプル値predSamplesLX[ xL ][ yL ]は、条項8.5.6.3.3で規定されているようなルマ整数サンプル・フェッチ・プロセスを、( xIntL + ( xFracL >> 3) - 1), yIntL + ( yFracL >> 3 ) - 1 ) 及び refPicLXを入力として起動することにより、導出される。
【0032】
- xL は0に等しい。
【0033】
- xL はsbWidth + 1に等しい。
【0034】
- yL は0に等しい。
【0035】
- yL はsbHeight + 1に等しい。
【0036】
- それ以外の場合、予測ルマ・サンプル値predSamplesLX[ xL ][ yL ]は、条項8.5.6.3.2で規定されているようなルマ・サンプル8-タップ補間フィルタリング・プロセスを、( xIntL - ( brdExtSize > 0 ? 1 : 0 ), yIntL - ( brdExtSize > 0 ? 1 : 0 ) ), ( xFracL, yFracL ), ( xSbIntL, ySbIntL ), refPicLX, hpelIfIdx, sbWidth, sbHeight 及び ( xSb, ySb )を入力として起動することによって、導出される。
【0037】
- それ以外の場合(cIdxは0に等しくない)、以下が適用される:
- ( xIntC, yIntC )を、フル・サンプル単位で与えられるクロマ位置であるとし、( xFracC, yFracC )を、1/32サンプル単位で与えられるオフセットであるとする。これらの変数は、参照サンプル配列refPicLX内の一般的な分数サンプル位置を指定するためにこの条項においてのみ使用される。
【0038】
- 参照サンプル・パディングのための境界ブロックの左上座標( xSbIntC, ySbIntC )は、( (xSb / SubWidthC ) + ( mvLX[ 0 ] >> 5), ( ySb / SubHeightC ) + ( mvLX[ 1 ] >> 5 ) )に等しく設定される。
【0039】
- 予測クロマ・サンプル配列predSamplesLX内の各クロマ・サンプル位置( xC = 0..sbWidth - 1, yC = 0.. sbHeight - 1 )に関し、対応する予測クロマ・サンプル値predSamplesLX[ xC ][ yC ]は、以下のように導出される:
- (refxSbC, refySbC) と ( refxC, refyC )を、1/32サンプル単位で与えられる動きベクトル(mvLX[ 0 ], mvLX[ 1 ])により指し示されるクロマ位置であるとする。変数refxSbC, refySbC, refxC 及び refyCは、以下のように導出される:
refxSbC = ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)
refxC = ( ( Sign( refxSbC ) * ( ( Abs( refxSbC ) + 256 ) >> 9 )
+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764)
refySbC = ( ( ySb / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)
refyC = ( ( Sign( refySbC ) * ( ( Abs( refySbC ) + 256 ) >> 9 )
+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766)
- 変数xIntC, yIntC, xFracC 及び yFracCは、以下のように導出される:
xIntC = refxC >> 5 (8-767)
yIntC = refyC >> 5 (8-768)
xFracC = refyC & 31 (8-769)
yFracC = refyC & 31 (8-770)
- 予測サンプル値predSamplesLX[ xC ][ yC ]は、条項8.5.6.3.4で規定されるプロセスを、( xIntC, yIntC ), ( xFracC, yFracC ), ( xSbIntC, ySbIntC ), sbWidth, sbHeight 及び refPicLXを入力として起動することによって、導出される。
ルマ・サンプル補間フィルタリング・プロセス
このプロセスへの入力は以下の通りである:
- フル・サンプル単位におけるルマ位置( xIntL, yIntL ) ,
- 分数サンプル単位におけるルマ位置( xFracL, yFracL ),
- 参照ピクチャの左上ルマ・サンプルに対する、参照サンプル・パディングのための境界ブロックの左上サンプルを指定するフル・サンプル単位におけるルマ位置( xSbIntL, ySbIntL ),
- ルマ参照サンプル配列refPicLXL,
- ハーフ・サンプル補間フィルタ・インデックスhpelIfIdx,
- 現在のサブ・ブロックの幅を指定する変数sbWidth,
- 現在のサブ・ブロックの高さを指定する変数sbHeight,
- 現在のピクチャの左上ルマ・サンプルに対する、現在のサブ・ブロックの左上サンプルを指定するルマ位置( xSb, ySb ) ,
このプロセスの出力は、予測されたルマ・サンプル値predSampleLXLである。
変数shift1, shift2 及びshift3は、以下のように導出される。
【0040】
- 変数shift1は、Min( 4, BitDepthY - 8 )に等しく設定され、変数shift2は6に等しく設定され、変数shift3は、Max( 2, 14 - BitDepthY )に等しく設定される。
【0041】
- 変数picWは、pic_width_in_luma_samplesに等しく設定され、変数picHは、pic_height_in_luma_samplesに等しく設定される。
xFracL又はyFracLに等しい1/16分数サンプル位置p各々に関し、ルマ補間フィルタ係数fL[ p ]は、以下のように導出される:
- MotionModelIdc[ xSb ][ ySb ]が0より大きく、sbWidthとsbHeightが双方とも4に等しい場合、ルマ補間フィルタ係数fL[ p ]は、テーブル8-12で規定される。
【0042】
- それ以外の場合、ルマ補間フィルタ係数fL[ p ]は、hpelIfIdxに依存してテーブル8-11で規定される。
フル・サンプル単位におけるルマ位置( xInti, yInti )は、i = 0..7に対して以下のように導出される:
- subpic_treated_as_pic_flag[ SubPicIdx ]が1に等しい場合、以下が適用される:
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-771)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-772)
- それ以外の場合(subpic_treated_as_pic_flag[ SubPicIdx ]が0に等しい)、以下が適用される:
xInti = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ?
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL + i - 3 ) : (8-773)
xIntL + i - 3 )
yInti = Clip3( 0, picH - 1, yIntL + i - 3 ) (8-774)
フル・サンプル単位におけるルマ位置は、i = 0..7に対して以下のように更に修正される:
xInti = Clip3( xSbIntL - 3, xSbIntL + sbWidth + 4, xInti ) (8-775)
yInti = Clip3( ySbIntL - 3, ySbIntL + sbHeight + 4, yInti ) (8-776)
予測されたルマ・サンプル値predSampleLXLは、以下のように導出される:
- xFracLと yFracLの双方が0に等しい場合、predSampleLXLの値は、以下のように導出される:
predSampleLXL = refPicLXL[ xInt3 ][ yInt3 ] << shift3 (8-777)
- それ以外の場合、xFracL isが0に等しくなく、且つyFracLが0に等しいならば、predSampleLXLの値は、以下のように導出される:
【0043】
【数1】
- それ以外の場合、xFrac
L isが0に等しく、且つyFrac
Lが0に等しくないならば、predSampleLX
Lの値は、以下のように導出される:
【0044】
【数2】
- それ以外の場合、xFrac
L isが0に等しくなく、且つyFrac
Lが0に等しくないならば、predSampleLX
Lの値は、以下のように導出される:
- サンプル配列temp[ n ](n = 0..7)は、以下のように導出される:
【0045】
【数3】
- 予測されたルマ・サンプル値predSampleLX
Lは、以下のように導出される:
【0046】
【数4】
テーブル8-11 - 1/16分数サンプル位置p各々に関するルマ補間フィルタ係数f
L[ p ]の仕様
【0047】
【数5】
テーブル8-12 - アフィン運動モードに対する 1/16分数サンプル位置p各々に関するルマ補間フィルタ係数f
L[ p ]の仕様
【0048】
【数6】
ルマ整数サンプル・フェッチ・プロセス
このプロセスへの入力は以下の通りである:
- フル・サンプル単位におけるルマ位置( xInt
L, yInt
L ),
- ルマ参照サンプル配列refPicLX
L,
このプロセスの出力は、予測されたルマ・サンプル値predSampleLX
Lである。
変数shiftは、Max( 2, 14 - BitDepth
Y )に等しく設定される。
変数picWは、pic_width_in_luma_samplesに等しく設定され、変数picHは、pic_height_in_luma_samplesに等しく設定される。
フル・サンプル単位におけるルマ位置( xInt, yInt )は、以下のように導出される:
xInt = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? (8-782)
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xInt
L ) : xInt
L )
yInt = Clip3( 0, picH - 1, yInt
L ) (8-783)
予測されたルマ・サンプル値predSampleLX
Lは、以下のように導出される:
predSampleLX
L = refPicLX
L[ xInt ][ yInt ] << shift3 (8-784)
クロマ・サンプル補間プロセス
このプロセスへの入力は以下の通りである:
- フル・サンプル単位におけるクロマ位置( xInt
C, yInt
C ),
- 1/32分数サンプル単位におけるクロマ位置( xFrac
C, yFrac
C ),
- 参照ピクチャの左上クロマ・サンプルに対する、参照サンプル・パディングのための境界ブロックの左上サンプルを指定するフル・サンプル単位におけるクロマ位置( xSbIntC, ySbIntC )
- 現在のサブ・ブロックの幅を指定する変数sbWidth,
- 現在のサブ・ブロックの高さを指定する変数sbHeight,
- クロマ参照サンプル配列refPicLX
C.
このプロセスの出力は、予測されたクロマ・サンプル値predSampleLX
Cである。
変数shift1, shift2 及びshift3は、以下のように導出される:
- 変数shift1は、Min( 4, BitDepth
C - 8 )に等しく設定され、変数shift2は、6に等しく設定され、変数shift3は、Max( 2, 14 - BitDepth
C )に等しく設定される。
- 変数picW
Cは、pic_width_in_luma_samples / SubWidthCに等しく設定され、変数picH
Cは、pic_height_in_luma_samples / SubHeightCに等しく設定される。
xFrac
C又はyFrac
C に等しい1/32分数サンプル位置p各々に関するクロマ補間フィルタ係数f
C[ p ] は、テーブル8-13で規定される。
変数xOffsetは、( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY ) / SubWidthCに等しく設定される。
フル・サンプル単位におけるクロマ位置( xInt
i, yInt
i )は、i = 0..3に関して以下のように導出される:
- subpic_treated_as_pic_flag[ SubPicIdx ]が1に等しい場合、以下が適用される:
xInt
i = Clip3( SubPicLeftBoundaryPos / SubWidthC, SubPicRightBoundaryPos / SubWidthC, xInt
L + i ) (8-785)
yInt
i = Clip3( SubPicTopBoundaryPos / SubHeightC, SubPicBotBoundaryPos / SubHeightC, yInt
L + i ) (8-786)
- それ以外の場合(subpic_treated_as_pic_flag[ SubPicIdx ]が0に等しい)、以下が適用される:
xInt
i = Clip3( 0, picW
C - 1, sps_ref_wraparound_enabled_flag ? ClipH( xOffset, picW
C, xInt
C + i - 1 ) : (8-787)
xInt
C + i - 1 )
yInt
i = Clip3( 0, picH
C - 1, yInt
C + i - 1 ) (8-788)
フル・サンプル単位におけるクロマ位置( xInt
i, yInt
i )は、i = 0..3に関して以下のように更に修正される:
xInt
i = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInt
i ) (8-789)
yInt
i = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInt
i ) (8-790)
予測されたクロマ・サンプル値predSampleLX
Cは、以下のように導出される:
- xFrac
CとyFrac
Cの双方が0に等しい場合、predSampleLX
Cの値は、以下のように導出される:
predSampleLX
C = refPicLX
C[ xInt
1 ][ yInt
1 ] << shift3 (8-791)
- それ以外の場合、xFrac
C が0に等しくなく、且つyFrac
C が0に等しい場合、predSampleLX
Cの値は、以下のように導出される:
【0049】
【数7】
- それ以外の場合、xFrac
C が0に等しく、且つyFrac
C が0に等しくない場合、predSampleLX
Cの値は、以下のように導出される:
【0050】
【数8】
- それ以外の場合、xFrac
C が0に等しくなく、且つyFrac
C が0に等しくない場合、predSampleLX
Cの値は、以下のように導出される:
- サンプル配列temp[ n ] (n = 0..3)は、以下のように導出される:
【0051】
【数9】
- 予測されたクロマ・サンプル値predSampleLXCは、以下のように導出される:
predSampleLXC =( fC[ yFrac"C " ][ 0 ] * temp[ 0 ] +
fC[ yFrac"C" ][ 1 ] * temp[ 1 ] +
fC[ yFrac"C" ][ 2 ] * temp[ 2 ] + (8-795)
fC[ yFrac"C" ][ 3 ] * temp[ 3 ] ) >> shift2
テーブル8-13 - 1/32分数サンプル位置p各々に関するクロマ補間フィルタ係数fC[ p ]の仕様
【0052】
【数10】
[0037] 2.4 VVCにおけるラップ・アラウンド・クリッピング
図5に示すように、ERP又はPERPピクチャ・フォーマットに対処するために、ラップ・アラウンド・クリッピング(Wrap-Around clipping)がJVET-L0231により提案された。
【0053】
[0038] JVET-P2001-v9では、ラップ・アラウンド・クリッピングは次のように規定されている:
【0054】
【数11】
[0039] また、ラップ・アラウンド・クリッピングが適用されるかどうかに応じて、水平位置はクリップされることになる。JVET-P2001-v9では、次のように規定されている:
フル・サンプル単位におけるルマ位置( xInt
i, yInt
i )は、i=0..7に対して以下のように導出される:
- subpic_treated_as_pic_flag[ SubPicIdx ]が1に等しい場合、以下が適用される:
xInt
i = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt
L + i - 3 ) (8-754)
yInt
i = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt
L + i - 3 ) (8-755)
- それ以外の場合(subpic_treated_as_pic_flag[ SubPicIdx ]が0に等しい)、以下が適用される:
xInt
i = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ?
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xInt
L + i - 3 ) : (8-756)
xInt
L + i - 3 )
yInt
i = Clip3( 0, picH - 1, yInt
L + i - 3 ) (8-757)
[0040] 2.5 VVCにおけるCCLM
JVET-P2001-v9で規定されているように、VVCにおけるクロス・コンポーネント線型モデル(CCLM)予測のためにパラメータが導出される:
8.4.5.2.13 INTRA_LT_CCLM, INTRA_L_CCLM 及びINTRA_T_CCLMイントラ予測モードの仕様
・・・
7. 変数a,b,及びkは、以下のように導出される:
- numSampLが0に等しく、且つnumSampTが0に等しい場合、以下が適用される:
k = 0 (8-211)
a = 0 (8-212)
b = 1 << ( BitDepth - 1 ) (8-213)
- それ以外の場合、以下が適用される:
diff = maxY - minY (8-214)
- diffが0に等しくない場合、以下が適用される:
diffC = maxC - minC (8-215)
x = Floor( Log2( diff ) ) (8-216)
normDiff = ( ( diff << 4 ) >> x ) & 15 (8-217)
x += ( normDiff != 0 ) ? 1 : 0 (8-218)
y = Floor( Log2( Abs ( diffC ) ) ) + 1 (8-219)
a = ( diffC * ( divSigTable[ normDiff ] | 8 ) + 2
y - 1 ) >> y (8-220)
k = ( ( 3 + x - y ) < 1 ) ? 1 : 3 + x - y (8-221)
a = ( ( 3 + x - y ) < 1 ) ? Sign( a ) * 15 : a (8-222)
b = minC - ( ( a * minY ) >> k ) (8-223)
ここで、divSigTable[ ]は、以下のように規定される:
divSigTable[ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (8-224)
- それ以外の場合(diffが0に等しい)、以下が適用される:
k = 0 (8-225)
a = 0 (8-226)
b = minC (8-227)
・・・
[0041] 2.6 VVCにおける角度予測
VVCにおける角度予測は、JVET-P2001-v9で以下のように規定されている:
8.4.5.2.12 INTRA_ANGULAR2..INTRA_ANGULAR66イントラ予測モードの仕様
このプロセスへの入力は以下の通りである:
- イントラ予測モードpredModeIntra,
- イントラ予測参照ライン・インデックスを指定する変数refIdx,
- 変換ブロック幅を指定する変数nTbW,
- 変換ブロック高さを指定する変数nTbH,
- 参照サンプル幅を指定する変数refW,
- 参照サンプル高さを指定する変数refH,
- コーディング・ブロック幅を指定する変数nCbW,
- コーディング・ブロック高さを指定する変数nCbH,
- 参照フィルタ・フラグの値を指定する変数refFilterFlag,
- 現在のブロックの色成分を指定する変数cIdx,
- 隣接サンプルp[ x ][ y ],(x = -1- refIdx, y = -1- refIdx..refH - 1 及び x = -refIdx..refW - 1, y = -1- refIdx)
このプロセスの出力は、予測されたサンプルpredSamples[ x ][ y ]である(x = 0..nTbW - 1, y = 0..nTbH - 1)。
変数nTbSは、 ( Log2 ( nTbW ) + Log2 ( nTbH ) ) >> 1に等しく設定される。
変数filterFlagは、以下のように導出される:
- 以下の条件のうちの1つ以上が真である場合、filterFlagは0に等しく設定される。
【0055】
- refFilterFlagは、1に等しい。
【0056】
- refIdxは、0に等しくない。
【0057】
- IntraSubPartitionsSplitTypeは、ISP_NO_SPLITに等しくない。
- それ以外の場合、以下が適用される:
- 変数minDistVerHorは、Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )に等しく設定される。
【0058】
- 変数intraHorVerDistThres[ nTbS ]は、テーブル8-7で規定される。
【0059】
- 変数filterFlagは、以下のように導出される:
- minDistVerHorが、intraHorVerDistThres[ nTbS ]より大きく、refFilterFlagが0に等しい場合、filterFlagは1に等しく設定される。
【0060】
- それ以外の場合、filterFlagは0に等しく設定される。
テーブル8-17 - 様々な変換ブロック・サイズnTbSに対するintraHorVerDistThres[ nTbS ]の仕様
【0061】
【数12】
テーブル8-8は、predModeIntraと角度パラメータintraPredAngle の間のマッピング・テーブルを規定している。
テーブル8-8 - intraPredAngleの仕様
【0062】
【数13】
インバース角度パラメータinvAngleは、以下のように、intraPredAngleに基づいて導出される:
【0063】
【数14】
・・・
2.7 VVCにおけるインター予測のためのサンプル・フェッチ
8.5.6.3.2 ルマ・サンプル補間フィルタリング・プロセス
・・・
フル・サンプル単位におけるルマ位置( xInt
i, yInt
i )は、i = 0..7に対して以下のように導出される:
- subpic_treated_as_pic_flag[ SubPicIdx ]が1に等しい場合、以下が適用される:
xInt
i = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt
L + i - 3 ) (8-754)
yInt
i = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt
L + i - 3 ) (8-755)
- それ以外の場合(subpic_treated_as_pic_flag[ SubPicIdx ]が0に等しい)、以下が適用される:
xInt
i = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ?
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xInt
L + i - 3 ) :
xInt
L + i - 3 )
yInt
i = Clip3( 0, picH - 1, yInt
L + i - 3 )
フル・サンプル単位におけるルマ位置は、i = 0..7に対して以下のように更に修正される:
xInt
i = Clip3( xSbInt
L - 3, xSbInt
L + sbWidth + 4, xInt
i )
yInt
i = Clip3( ySbInt
L - 3, ySbInt
L + sbHeight + 4, yInt
i )
予測されたルマ・サンプル値predSampleLX
Lは、以下のように導出される:
- xFrac
LとyFrac
L の双方が0に等しく、且つhori_scale_fpとvert_scale_fpが20481より小さい場合、predSampleLX
Lの値は、以下のように導出される:
predSampleLX
L = refPicLX
L[ xInt
3 ][ yInt
3 ] << shift3
・・・
8.5.6.3.4 クロマ・サンプル補間プロセス
・・・
フル・サンプル単位におけるクロマ位置( xInt
i, yInt
i )は、i = 0..3に対して以下のように更に修正される:
xInt
i = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInt
i ) (8-774)
yInt
i = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInt
i ) (8-775)
[0042] 3. 開示される技術的解決策により解決される技術的課題の具体例
RPRがVVCに適用される場合、RPR(ARC)は、以下の問題を有する可能性がある:
1. RPRでは、補間フィルタが、ブロック内の隣接するサンプルに対して異なる可能性があり、これは単一命令複数データ(Single Instruction Multiple Data, SIMD)の実装では望ましくない。
【0064】
2. 境界領域は、RPRを考慮していない。
【0065】
3. ラップ・アラウンド・オフセット(sps_ref_wrapaund_offset_minus1)は、シーケンス・レベルでシグナリングされるが、ピクチャのディメンジョンは、シーケンスにおけるRPRに起因して変動する可能性がある。
【0066】
4. CCLMのパラメータを導出するために、Abs(diffC)が、Log2(Abs (diffC))において0に等しくなる可能性がある。
【0067】
5. intraPredAngleは0に等しい場合があり、invAngleを意味のないものにしてしまう。
【0068】
6. セクション2.7に記述されている強調クリッピング処理(highlighten clipping operation)(“整数サンプル・クリッピング処理”として示される)は、RPRの動き補償を損なう可能性がある。
[0043] 4.実施形態と技術の一覧
以下のリストは、一般的な概念を説明するための例として考察されるべきである。これらのアイテムは、狭義に解釈されるべきではない。更に、これらのアイテムは任意の方法で組み合わせることが可能である。
【0069】
[0044] 動きベクトルは(mv_x, mv_y)で表され、ここで、mv_xは水平成分であり、mv_yは垂直成分である。
【0070】
1. 参照ピクチャの解像度が現在のピクチャと異なる場合、現在のブロックのサンプルのグループ(少なくとも2つのサンプル)についての予測値は、同じ水平及び/又は垂直補間フィルタを用いて生成されてもよい。
【0071】
a. 一例において、グループは、ブロックの領域内の全てのサンプルを含む可能性がある。
【0072】
i. 例えば、ブロックは、互いに重複しないS個のMxNの四角形に分割されてもよい。各MxNの四角形はグループである。
図1に示す例では、16×16のブロックは、16個の4×4の四角形に分割することが可能であり、それら各々はグループである。
【0073】
ii. 例えば、N個のサンプルを有する行はグループである。Nは、ブロックの幅より大きくない整数である。一例では、Nは4又は8、又はブロック幅である。
【0074】
iii. 例えば、N個のサンプルを有する列はグループである。Nは、ブロックの高さより大きくない整数である。一例では、Nは4又は8、又はブロック高さである。
【0075】
iv. M及び/又はNは、予め定められていてもよいし、或いはブロック寸法/コーディングされた情報に基づいてオン・ザ・フライで導出されてもよいし、或いはシグナリングされてもよい。
【0076】
b. 一例において、グループ内のサンプルは、同じMV(共有MVとして示される)を有してもよい。
【0077】
c. 一例において、グループ内のサンプルは、同じ水平成分(共有される水平成分として示される)を有するMVを有してもよい。
【0078】
d. 一例において、グループ内のサンプルは、同じ垂直成分(共有される垂直成分として示される)を有するMVを有してもよい。
【0079】
e. 一例において、グループ内のサンプルは、水平成分の同じ小数部分(共有される分数水平成分として示される)を有するMVを有してもよい。
【0080】
i. 例えば、第1サンプルのMVが(MV1x, MV1y)であり、第2サンプルのMVが(MV2x, MV2y)であると仮定した場合に、MV1x & (2M -1)はMV2x & (2M -1)に等しいことを充足すべきであり、MはMV精度を表す。例えば、M=4である。
【0081】
f. 一例において、グループ内のサンプルは、垂直成分の同じ小数部分(共有される分数垂直成分として示される)を有するMVを有してもよい。
【0082】
i. 例えば、第1サンプルのMVが(MV1x, MV1y)であり、第2サンプルのMVが(MV2x, MV2y)であると仮定した場合、MV1y & (2M -1)はMV2y & (2M -1)に等しいことを充足すべきであり、MはMV精度を表す。例えば、M=4である。
【0083】
g. 一例において、予測されるグループ内のサンプルについて、MVbで示される動きベクトルは、先ず、現在のピクチャと参照ピクチャの解像度に従って導出される可能性がある(例えば、JVET-O2001-v14の8.5.6.3.1で導出される(refxL, refyL))。次いで、MVbは、上記の箇条書きのような要件を満たすために、MV’に更に修正される可能性があり(例えば、丸められる/切り捨てられる/クリッピングされる)、MV’は、サンプルの予測サンプルを導出するために使用される。
【0084】
i. 一例において、MV’は、MVbと同じ整数部分を有し、MV’の小数部分は、共有される分数水平及び/又は垂直成分であるように設定される。
【0085】
ii. 一例において、MV’は、共有される分数水平及び/又は垂直成分を有し、且つMVbに最も近いものに設定される。
【0086】
h. 共有される動きベクトル(及び/又は共有される水平成分及び/又は共有される垂直成分及び/又は共有される分数水平成分及び/又は共有される分数垂直成分)は、グループ内の特定のサンプルの動きベクトル(及び/又は水平成分及び/又は垂直成分及び/又は分数水平成分及び/又は分数垂直成分)に設定される可能性がある。
【0087】
i. 例えば、特定のサンプルは、
図2Aに示す“A”,“B”,“C”及び“D”のような矩形のグループのコーナーにあってもよい。
【0088】
ii. 例えば、特定のサンプルは、
図2Aに示す“E”,“F”,“G”及び“H”のような矩形のグループの中心にあってもよい。
【0089】
iii. 例えば、特定のサンプルは、
図2B及び2Cに示される“A”及び“D”のような行-形状又は列-形状のグループの末端にあってもよい。
【0090】
iv. 例えば、特定のサンプルは、
図2B及び2Cに示される“B”及び“C”のような行-形状又は列-形状のグループの中間にあってもよい。
【0091】
v. 一例において、特定のサンプルの動きベクトルは、箇条書きのgで言及されたMVbであってもよい。
【0092】
i. 共有される動きベクトル(及び/又は共有される水平成分及び/又は共有される垂直成分及び/又は共有される分数水平成分及び/又は共有される分数垂直成分)は、このグループ内の全てのサンプルと比較して異なる位置に配置された仮想サンプルの動きベクトル(及び/又は水平成分及び/又は垂直成分及び/又は分数水平成分及び/又は分数垂直成分)であるように設定されてもよい。
【0093】
i. 一例において、仮想サンプルはグループにはないが、グループ内の全てのサンプルをカバーする領域内に位置する。
【0094】
1) 代替的に、仮想サンプルは、グループ内の全てのサンプルをカバーする領域の外側、例えば、その領域の右下位置の隣に位置する。
【0095】
ii. 一例において、仮想サンプルのMVは、実際のサンプルと同じ方法で、異なる位置において導出される。
【0096】
iii.
図2A-2Cにおける“V”は、仮想サンプルの3つの例を示す。
【0097】
j. 共有されるMV(及び/又は共有される水平成分及び/又は共有される垂直成分及び/又は共有される分数水平成分及び/又は共有される分数垂直成分)は、複数のサンプル及び/又は仮想サンプルのMV(及び/又は水平成分及び/又は垂直成分及び/又は分数水平成分及び/又は分数垂直成分)の関数であるように設定されてもよい。
【0098】
i. 例えば、共有されるMV(及び/又は共有される水平成分及び/又は共有される垂直成分及び/又は共有される分数水平成分及び/又は共有される分数垂直成分)は、グループ内のサンプル、又は
図2Aにおけるサンプル“E”,“F”,“G”,“H”、又は
図2Aにおけるサンプル“E”,“H”、又は
図2Aにおけるサンプル“A”,“B”,“C”,“D”、又は
図2Aにおけるサンプル“A”,“D”、又は
図2Bにおけるサンプル“B”,“C”、又は
図2Bにおけるサンプル“A”,“D”、又は
図2Cにおけるサンプル“B”,“C”、又は
図2Cにおけるサンプル“A”,“D”、のうちの全部又は一部のMV(及び/又は水平成分及び/又は垂直成分及び/又は分数水平成分及び/又は分数垂直成分)の平均に設定されてもよい。
2. 参照ピクチャの解像度が現在のピクチャと異なる場合、動き補償プロセスを実行して現在のブロックの予測ブロックを導出するために、整数MVのみが許容されることを提案する。
【0099】
a. 一例において、予測されるサンプルのための復号化された動きベクトルは、使用される前に整数MVに丸められる。
3. 現在のブロック内のサンプルに対する動き補償プロセスで使用される動きベクトル(例えば、上記の箇条書きで言及された共有MV/共有水平又は垂直又は分数成分/MV’)は、復号化されたピクチャ・バッファに格納され、現在の/異なるピクチャ内の後続するブロックの動きベクトル予測のために使用される可能性がある。
【0100】
a. 代替的に、現在のブロック内のサンプルに対する動き補償プロセスで使用される動きベクトル(例えば、上記の箇条書きで言及された共有MV/共有水平又は垂直又は分数成分/MV’)は、現在の/異なるピクチャ内の後続するブロックの動きベクトル予測に使用することを許容しない場合がある。
【0101】
i. 一例において、復号化された動きベクトル(例えば、上記の箇条書きにおけるMVb)は、現在の/異なるピクチャ内の後続するブロックの動きベクトル予測のために利用されてもよい。
【0102】
b. 一例において、現在のブロック内のサンプルに対する動き補償プロセスで使用される動きベクトルは、フィルタリング・プロセス(例えば、デブロッキング・フィルタ/SAO/ALF)で使用されてもよい。
【0103】
i. 代替的に、復号化された動きベクトル(例えば、上記箇条書きにおけるMVb)は、フィルタリング・プロセスで使用されてもよい。
4. 現在のブロックの予測ブロックを導出するために動き補償プロセスで使用される補間フィルタは、参照ピクチャの解像度が現在のピクチャと異なるかどうかに依存して選択されてもよいことを提案する。
【0104】
a. 一例において、参照ピクチャの解像度が現在のピクチャと異なる場合、補間フィルタは、より少ないタップを有する。
【0105】
i. 一例において、参照ピクチャの解像度が現在のピクチャと異なる場合、バイリニア・フィルタ(bi-linear filters)が適用される。
【0106】
ii. 一例において、参照ピクチャの解像度が現在のピクチャと異なる場合、4タップ・フィルタ又は6タップ・フィルタが適用される。
5. 参照ピクチャの解像度が現在のピクチャと異なる場合、予測ブロック生成のための2段階プロセスが適用されることを提案する。
【0107】
a. 第1段階では、現在のピクチャ及び参照ピクチャの幅及び/又は高さに依存して、参照ピクチャ内の領域をアップ・サンプリング又はダウン・サンプリングするによって、仮想参照ブロックが生成される。
【0108】
b. 第2段階では、現在のピクチャ及び参照ピクチャの幅及び/又は高さに無関係に、補間フィルタリングを適用することによって、仮想参照ブロックから予測サンプルが生成される。
6. JVET-O2001-v14の8.5.6.3.1で定義されているような参照サンプル・パディングのための境界ブロックの左上座標( xSbIntL, ySbIntL )の計算は、現在のピクチャと参照ピクチャの幅及び/又は高さに依存して導出されてもよいことを提案する。
【0109】
a. 一例において、フル・サンプル単位のルマ位置は、以下のように修正される:
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
ここで、Dx及び/又はDy及び/又はUx及び/又はUyは、現在のピクチャ及び参照ピクチャの幅及び/又は高さに依存する可能性がある。
【0110】
b. 一例において、フル・サンプル単位のクロマ位置は、以下のように修正される:
xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )
yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )
ここで、Dx及び/又はDy及び/又はUx及び/又はUyは、現在のピクチャ及び参照ピクチャの幅及び/又は高さに依存する可能性がある。
7. (例えば、JVET-O2001-v14の8.5.6.3.1で規定されているような( xSbIntL, ySbIntL )のような)参照サンプル・パディングのための境界ブロックに従ってMVをクリップするかどうか、及び/又はどのようにクリップするかは、DMVRの用法に依存してもよいことを提案する。
【0111】
a. 一例において、MVは、DMVRが適用される場合に限り、(例えば、8.5.6.3.1で定義される( xSbIntL, ySbIntL )のような)参照サンプル・パディングのための境界ブロックに従って、MVはクリップされる。
【0112】
i. 例えば、JVET-O2001-v14で定義されているようなルマ・サンプル補間フィルタリング・プロセスにおける処理8-775と8-776は、DMVRが現在のブロックに使用される場合に限り、適用される。
【0113】
ii. 例えば、JVET-O2001-v14で定義されているようなクロマ・サンプル補間フィルタリング・プロセスにおける処理8-789及び8-790は、DMVRが現在のブロックに使用される場合に限り、適用される。
【0114】
b. 代替的に、更に、上記の方法は、クロマ・サンプルのクリッピングに適用可能であってもよい。
8. (例えば、JVET-O2001-v14の8.5.6.3.1で規定されているような( xSbIntL, ySbIntL )のような)参照サンプル・パディングのための境界ブロックに従ってMVをクリップするかどうか、及び/又はどのようにクリップするかは、ピクチャ・ラッピングが使用されるかどうか(例えば、sps_ref_wraparound_enabled_flagが0に等しいか又は1に等しいかどうか)に依存してもよいことを提案する。
【0115】
a. 一例において、MVは、ピクチャ・ラッピングが使用されない場合に限り、(例えば、8.5.6.3.1で定義されている( xSbIntL, ySbIntL )のような)参照サンプル・パディングのための境界ブロックに従ってクリップされる。
【0116】
i. 例えば、JVET-O2001-v14で定義されているようなルマ・サンプル補間フィルタリング・プロセスにおける処理8-775と8-776は、ピクチャ・ラッピングが使用されない場合に限り、適用される。
【0117】
ii. 例えば、JVET-O2001-v14で定義されているようなクロマ・サンプル補間フィルタリング・プロセスにおける処理8-789と8-790は、ピクチャ・ラッピングが使用されない場合に限り、適用される。
【0118】
b. 代替的に、更に、上記の方法は、クロマ・サンプルのクリッピングに適用可能であってもよい。
【0119】
c. 一例において、フル・サンプル単位におけるルマ位置は、以下のように修正される:
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
ここで、Dx及び/又はDy及び/又はUx及び/又はUyは、ピクチャ・ラッピングが使用されるかどうかに依存してもよい。
【0120】
d. 一例において、フル・サンプル単位におけるクロマ位置は、以下のように変更される:
xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )
yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )
ここで、Dx及び/又はDy及び/又はUx及び/又はUyは、ピクチャ・ラッピングが使用されるかどうかに依存してもよい。
9. フィルタリング・プロセス(例えば、デブロッキング・フィルタ)を適用するかどうか/どのように適用するかは、参照ピクチャが異なる解像度を伴うかどうかに依存する可能性がある。
【0121】
a. 一例において、デブロッキング・フィルタの境界強度設定は、動きベクトルの差に加えて、解像度の差を考慮に入れることが可能である。
【0122】
b. 一例において、デブロッキング・フィルタの境界強度設定は、解像度の差に基づいて、スケーリングされた動きベクトル差を考慮に入れることが可能である。
【0123】
c. 一例において、ブロックAの少なくとも1つの参照ピクチャの解像度が、ブロックBの少なくとも1つの参照ピクチャの解像度と異なる(又はそれより小さいか又は大きい)場合には、デブロッキング・フィルタの強度が増やされる。
【0124】
d. 一例において、ブロックAの少なくとも1つの参照ピクチャの解像度が、ブロックBの少なくとも1つの参照ピクチャの解像度と異なる(又はそれより小さいか又は大きい)場合には、デブロッキング・フィルタの強度が減らされる。
【0125】
e. 一例において、ブロックA及び/又はブロックBの少なくとも1つの参照ピクチャの解像度が、現在のブロックの解像度と異なる(又はそれより小さいか又は大きい)場合には、デブロッキング・フィルタの強度は増やされる。
【0126】
f. 一例において、ブロックA及び/又はブロックBの少なくとも1つの参照ピクチャの解像度が、現在のブロックの解像度と異なる(又はそれより小さいか又は大きい)場合には、デブロッキング・フィルタの強度は減らされる。
10. 現在のピクチャと同じ参照ピクチャ解像度に基づくブロックの動きベクトルを記憶/使用する代わりに、解像度の差を考慮した実際の動きベクトルを使用することを提案する。
【0127】
a. 代替的に、更に、動きベクトルを用いて予測ブロックを生成する場合に、(例えば、JVET-O2001-v14の8.5.6.3.1で導出される(refxL, refyL)のような)現在のピクチャと参照ピクチャの解像度に従って、動きベクトルを更に変更する必要はない。
11. 一例において、サブ・ピクチャが存在する場合、参照ピクチャは現在のピクチャと同じ解像度を有する必要がある。
【0128】
a. 代替的に、参照ピクチャが現在のピクチャと異なる解像度を有する場合、現在のピクチャにサブ・ピクチャは一切存在してはならない。
12. 一例において、サブ・ピクチャは、異なる解像度を有するピクチャに対して別々に定義されてもよい。
13. 一例において、参照ピクチャが現在のピクチャとは異なる解像度を有する場合、参照ピクチャ内の対応するサブ・ピクチャは、現在のピクチャのサブ・ピクチャをスケーリング及び/又はオフセット処理を行うことによって導出することができる。
14. ラップ・アラウンド・クリッピングに関連する情報の全部又は一部は、ピクチャ/ビュー/スライス/タイル/ブリック/サブ・ピクチャ/CTU行レベルなどのような、シーケンス・レベル以外のビデオ・ユニットでシグナリングされてもよいことを提案する。
【0129】
a. 一例において、情報は、PPS、APS、ピクチャ・ヘッダ、スライス・ヘッダなどでシグナリングされてもよい。
【0130】
b. 例えば、シンタックス要素(例えば、pps_ref_wraparound_offset_minus1と名付けられるもの)は、水平ラップ・アラウンド位置を計算するために使用されるオフセットを示すために、第1PPSでシグナリングされてもよい。
【0131】
i. 一例において、pps_ref_wraparound_offset_minus1がシグナリングされてもよく、pps_ref_wraparound_offset_minus1 plus 1は、MinCbSizeYルマ・サンプルの単位で、水平ラップ・アラウンド位置を計算するために使用されるオフセットを指定し、MinCbSizeYは、ルマ・ブロックの最小Cbサイズを示す。
【0132】
ii. pps_ref_wraparound_offset_minus1の範囲は、pic_width_in_luma_samplesが第1PPSにあることに依存する可能性がある。例えば、pps_ref_wraparound_offset_minus1の値は、両端を含む( CtbSizeY / MinCbSizeY ) + 1ないし( pic_width_in_luma_samples / MinCbSizeY ) - 1の範囲内にあるものとし、ここで、pic_width_in_luma_samplesは、第1PPS内にある。
【0133】
iii. 一例において、シンタックス要素は、固定長/トランケーテッド・ユーナリー/ユーナリー/トランケーテッド・バイナリ/K-th EG(例えば、K=0)二値化法でコーディングされてもよい。
【0134】
c. 例えば、シンタックス要素(例えば、pps_ref_wraparound_enabled_flagと名付けられるもの)は、水平ラップ・アラウンド動き補償が、インター予測に適用されるかどうかを示すために、第1PPSでシグナリングされる可能性がある。
【0135】
i. 一例において、1に等しいpps_ref_wraparound_enabled_flagは、水平ラップ・アラウンド動き補償が、インター予測に適用されることを指定する。0に等しいpps_ref_wraparound_enabled_flagは、水平ラップ・アラウンド動き補償が適用されないことを指定する。
【0136】
ii. 代替的に、更に、シンタックス要素は、条件付きでシグナリングされてもよい。
【0137】
1) 一例において、pps_ref_wraparound_offset_minus1をシグナリングするかどうかは、pps_ref_wraparound_enabled_flagに依存してもよい。
【0138】
a) 例えば、pps_ref_wraparound_offset_minus1は、pps_ref_wraparound_enabled_flagが1に等しい場合に限り、シグナリングされる。
【0139】
d. 一例において、第1シンタックス要素は、シーケンス・レベルでのような第1ビデオ・ユニットでシグナリングされてもよく(例えば、SPSでシグナリングされてもよく)、第2シンタックス要素は、ピクチャ/スライス・レベルでのような第2ビデオ・ユニットでシグナリングされる(例えば、PPS、APS、ピクチャ・ヘッダ、スライス・ヘッダなどでシグナリングされる)。第1シンタックス要素と第2シンタックス要素は、ラップ・アラウンド・クリッピングにおいて、同じ機能であるが異なるレベルにおけるものを有する可能性がある。
【0140】
i. 第2ビデオ・ユニットは、第1ビデオ・ユニットを参照してもよい。
【0141】
ii. 例えば、sps_ref_wraparound_offset_minus1はSPSでシグナリングされてもよく、pps_ref_wraparound_offset_minus1はPPSでシグナリングされてもよい。
【0142】
iii. 例えば、sps_ref_wraparound_enabled_flagはSPSでシグナリングされてもよく、pps_ref_wraparound_enabled_flagはPPSでシグナリングされてもよい。
【0143】
iv. 一例において、適合ビット・ストリーム(conformance bit-stream)において、第1シンタックス要素は、第2シンタックス要素に一致しているべきである。
【0144】
1) 例えば、適合ビット・ストリームにおいて、sps_ref_wraparound_enabled_flagはpps_ref_wraparound_enabled_flagと同じであるべきである。
【0145】
v. 一例において、第2シンタックス要素は、第1シンタックス要素に依存してもよい。
【0146】
1) 例えば、sps_ref_wraparound_enabled_flagが0である場合に、pps_ref_wraparound_enabled_flagは、0でなければならない。
【0147】
2) 例えば、sps_ref_wraparound_enabled_flagが1である場合、pps_ref_wraparound_enabled_flagは、0又は1であるとすることが可能である。
【0148】
vi. 一例において、第1シンタックス要素は無視され、第2シンタックス要素は、2つのシンタックス要素が両方とも現れる場合にその機能を発揮する。
【0149】
vii. 一例において、第2シンタックス要素は無視され、第1シンタックス要素は、2つのシンタックス要素が両方とも現れる場合にその機能を発揮する。
【0150】
e. 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )以下でない場合、sps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesは、SPSを参照する何らかのPPSにおけるpic_width_in_luma_samplesの値である。例えば、Offset1 = Offset2 = 1である。
【0151】
f. 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )より小さくない場合、sps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesは、SPSを参照する何らかのPPSにおけるpic_width_in_luma_samplesの値である。例えば、Offset1 = Offset2 = 1である。
【0152】
g. 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )以上である場合、sps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesは、SPSを参照する何らかのPPSにおけるpic_width_in_luma_sampleの値である。例えば、Offset1 = Offset2 = 1である。
【0153】
h. 一例において、( CtbSizeY / MinCbSizeY + Offset1) の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )より大きい場合、sps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesは、SPSを参照する何らかのPPSにおけるpic_width_in_luma_samplesの値である。例えば、Offset1 = Offset2 = 1である。
【0154】
i. 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )以下でない場合、pps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesはPPSにおけるものである。例えば、Offset1 = Offset2 = 1である。
【0155】
j 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )より小さくない場合、pps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesはPPSにおけるものである。例えば、Offset1 = Offset2 = 1である。
【0156】
k. 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )以上である場合、pps_ref_wraparound_enabled_flagの値は0に等しいものとし、ここで、pic_width_in_luma_samplesはPPSにおけるものであり、例えば、Offset1 = Offset2 = 1である。
【0157】
l. 一例において、( CtbSizeY / MinCbSizeY + Offset1)の値が( pic_width_in_luma_samples / MinCbSizeY - Offset2 )より大きい場合、pps_ref_wraparound_enabled_flagは0に等しいものとし、ここで、pic_width_in_luma_samplesはPPSにおけるものであり、例えば、Offset1 = Offset2 = 1である。
15. Xが0以下であるLog2(X)の数式は、アフィン・マージ候補を導出するためには回避されるべきであることを提案する。
【0158】
a. 例えば、手順は、Xが0より大きいか否かにより条件付けられてもよい。
【0159】
b. 例えば、手順は、Xが0に等しいか否かにより条件付けられてもよい。
【0160】
c. 例えば、Log2(Height/Width)の代わりに、Log2(Height) - Log2(Width)が計算される。
【0161】
d. JVET-P2001-v9に基づく例示的な仕様変更は以下の通りである:(二重の角括弧内の文字は削除され、ボールド・イタリック体の文字はコーデック仕様に追加される)
8.5.5.6 構築されたアフィン制御ポイント動きベクトル・マージ候補に対する導出プロセス
・・・
6. availableFlagCorner[ 0 ]がTRUEに等しく、且つavailableFlagCorner[ 2 ]がTRUEに等しい場合、以下が適用される:
- Xが0又は1に置き換えられる場合に関し、以下が適用される:
- 変数availableFlagLXは、以下のように導出される:
- 以下の全ての条件がTRUEである場合、availableFlagLXはTRUEに等しく設定される:
- predFlagLXCorner[ 0 ]は、1に等しい。
【0162】
- predFlagLXCorner[ 2 ]は、1に等しい。
【0163】
- refIdxLXCorner[ 0 ]は、refIdxLXCorner[ 2 ]に等しい。
【0164】
- そうでない場合、availableFlagLXは、FALSEに等しく設定される。
【0165】
- availableFlagLXがTRUEに等しい場合、以下が適用される:
- 第2制御ポイント動きベクトルcpMvLXCorner[ 1 ]は、以下のように導出される:
【0166】
【数15】
- 条項8.5.2.14で規定されている動きベクトルの丸め処理は、cpMvLXCorner[1]に等しく設定されたmvX、7に等しく設定されたrightShift、及び0に等しく設定されたleftShiftを入力とし、丸められたcpMvLXCorner[1]を出力として、起動される。
【0167】
- 以下の割り当てが行われる:
predFlagLXConst6 = 1 (8-627)
refIdxLXConst6 = refIdxLXCorner[ 0 ] (8-628)
cpMvLXConst6[ 0 ] = cpMvLXCorner[ 0 ] (8-629)
cpMvLXConst6[ 1 ] = cpMvLXCorner[ 1 ] (8-630)
cpMvLXConst6[ 0 ][ 0 ] = Clip3( -217, 217 - 1, cpMvLXConst6[ 0 ][ 0 ] ) (8-631)
cpMvLXConst6[ 0 ][ 1 ] = Clip3( -217, 217 - 1, cpMvLXConst6[ 0 ][ 1 ] ) (8-632)
cpMvLXConst6[ 1 ][ 0 ] = Clip3( -217, 217 - 1, cpMvLXConst6[ 1 ][ 0 ] ) (8-633)
cpMvLXConst6[ 1 ][ 1 ] = Clip3( -217, 217 - 1, cpMvLXConst6[ 1 ][ 1 ] ) (8-634)
- 双-予測ウェイト・インデックスbcwIdxConst6は、bcwIdxCorner[ 0 ]に等しく設定される。
【0168】
- 変数availableFlagConst6とmotionModelIdcConst6は、以下のように導出される:
- availableFlagL0又はavailableFlagL1が1に等しい場合、availableFlagConst6は、TRUEに等しく設定され、motionModelIdcConst6は、1に等しく設定される。
【0169】
それ以外の場合、availableFlagConst6は、FASLEに等しく設定され、motionModelIdcConst6は、0に等しく設定される。
16. クロス・コンポーネント線型モデル(Cross‐Component Linear Model, CCLM)におけるパラメータを導出する手順において、Xが0以下のLog2(X)の数式は回避されるべきであることを提案する。
【0170】
a. 例えば、手順は、Xが0より大きいか否かに条件付けられてもよい。
【0171】
b. 例えば、手順は、Xが0に等しいか否かに条件付けられてもよい。
【0172】
c. JVET-P2001-v9に基づく例示的な仕様の変更は以下の通りである:
8.4.5.2.13 INTRA_LT_CCLM, INTRA_L_CCLM、及びINTRA_T_CCLMのイントラ予測モードの仕様
・・・
7.7 変数a, b, 及びkは、以下のように導出される:
- numSampLが0に等しく、且つnumSampTが0に等しい場合、以下が適用される:
k = 0 (8-211)
a = 0 (8-212)
b = 1 << ( BitDepth - 1 ) (8-213)
- それ以外の場合、以下が適用される:
diff = maxY - minY (8-214)
- diffが0に等しくない場合、以下が適用される:
【0173】
【数16】
- それ以外の場合(diffは0に等しい)、以下が適用される:
k = 0 (8-225)
a = 0 (8-226)
b = minC (8-227)
・・・
17. 角度イントラ予測の手順において、0で除算することは回避されるべきであることを提案する。
【0174】
d. 例えば、invAngleの導出は、intraPredAngleが0に等しいかどうかに条件付けられていてもよい。
【0175】
e. JVET-P2001-v9に基づく例示的な仕様の変更は、以下の通りである:
8.4.5.2.12 INTRA_ANGULAR2..INTRA_ANGULAR66のイントラ予測モードの仕様
このプロセスへの入力は以下の通りである:
- イントラ予測モードpredModeIntra,
- イントラ予測参照ライン・インデックスを指定する変数refIdx,
- 変換ブロック幅を指定する変数nTbW,
- 変換ブロックの高さを指定する変数nTbH,
- 参照サンプル幅を指定する変数refW,
- 参照サンプルの高さを指定する変数refH,
- コーディング・ブロック幅を指定する変数nCbW,
- コーディング・ブロックの高さを指定する変数nCbH,
- 参照フィルタ・フラグの値を指定する変数refFilterFlag,
- 現在のブロックの色成分を指定する変数cIdx,
- 隣接サンプルp[ x ][ y ], (x = -1- refIdx, y = -1- refIdx..refH - 1及びx = -refIdx..refW - 1, y = -1- refIdx)
このプロセスの出力は、予測されたサンプルpredSamples[ x ][ y ], x = 0..nTbW - 1, y = 0..nTbH - 1である。
変数nTbSは、( Log2 ( nTbW ) + Log2 ( nTbH ) ) >> 1. に等しく設定される。
変数filterFlagは、以下のように導出される:
- 以下の条件のうちの1つ以上が真である場合、filterFlagは0に等しく設定される。
【0176】
- refFilterFlagは、1に等しい。
【0177】
- refIdxは、0に等しくない。
【0178】
- IntraSubPartitionsSplitTypeは、ISP_NO_SPLITに等しくない。
- それ以外の場合、以下が適用される:
- 変数minDistVerHorは、Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )に等しく設定される。
【0179】
- 変数intraHorVerDistThres[ nTbS ]は、テーブル8-7で規定されている。
【0180】
- 変数filterFlagは、以下のように導出される:
- minDistVerHorが、intraHorVerDistThres[ nTbS ]より大きく、refFilterFlagが、0に等しい場合、filterFlagは、1に等しく設定される。
【0181】
- それ以外の場合、filterFlagは、0に等しく設定される。
テーブル8-7 - 様々な変換ブロック・サイズnTbSに対するintraHorVerDistThres[ nTbS ]の仕様
【0182】
【数17】
表8-8は、predModeIntraと角度パラメータintraPredAngleの間のマッピング・テーブルを規定する。
テーブル8-8 - intraPredAngleの仕様
【0183】
【数18】
インバース角度パラメータinvAngleは、以下のようにintraPredAngleに基づいて導出される:
【0184】
【数19】
18. ルマ及び/又はクロマ・サンプルに整数サンプル・クリッピング処理を適用するかどうか及び/又はどのように適用するかは、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅及び/又は高さ、及び現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅及び/又は高さに依存する可能性がある。
【0185】
a. 一例において、整数サンプル・クリッピング処理は、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅及び/又は高さが、現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅及び/又は高さに等しい場合に限り、適用される。
【0186】
i. 代替的に、更に、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅又は高さの何れかが、現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)のものと等しくない場合、整数サンプル・クリッピング処理はスキップされる。
【0187】
b. 代替的に、ルマ及び/又はクロマ・サンプルに整数サンプル・クリッピング処理を適用するかどうか及び/又はどのように適用するかは、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)と現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)のものとの間の水平及び/又は垂直スケーリング因子に依存する可能性がある。
【0188】
i. 一例において、整数サンプル・クリッピング処理は、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)と現在のピクチャ(又は適合ウィンドウ、又はそのスケーリング・ウィンドウ)のものとの間の水平及び/又は垂直スケーリング因子が1に等しい場合に限り、適用される。
【0189】
ii. 代替的に、水平又は垂直スケーリング因子が1に等しくない場合、整数サンプル・クリッピング処理はスキップされる。
【0190】
c. 一例において、水平方向の整数サンプル・クリッピング処理は、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅及び現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の幅によって条件付けられる。
【0191】
i. 一例において、水平方向の整数サンプル・クリッピング処理は、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)と現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)のものとの間の水平スケーリング因子によって条件付けられる。
【0192】
d. 一例において、垂直方向の整数サンプル・クリッピング処理は、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の高さ及び現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)の高さによって条件付けられる。
【0193】
i. 一例において、垂直方向の整数サンプル・クリッピング処理は、参照ピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)と現在のピクチャ(又はその適合ウィンドウ、又はそのスケーリング・ウィンドウ)のものとの間の垂直スケーリング因子によって条件付けられる。
【0194】
e. JVET-P2001-v9に基づく例示的な仕様変更は以下の通りである:
8.5.6.3.2 ルマ・サンプル補間フィルタリング・プロセス
・・・
フル・サンプル単位におけるルマ位置( xInti, yInti )は、i = 0..7に対して以下のように導出される:
- subpic_treated_as_pic_flag[ SubPicIdx ]が1に等しい場合、以下が適用される:
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-754)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-755)
- それ以外の場合(subpic_treated_as_pic_flag[ SubPicIdx ]が0に等しい)、以下が適用される:
xInti = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ?
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL + i - 3 ) :
xIntL + i - 3 )
yInti = Clip3( 0, picH - 1, yIntL + i - 3 )
【0195】
【数20】
予測されたルマ・サンプル値predSampleLX
Lは、以下のように導出される:
- xFrac
LとyFrac
Lの双方が0に等しく、hori_scale_fpとvert_scale_fpの双方が20481より小さい場合、predSampleLX
Lの値は、以下のように導出される:
predSampleLX
L = refPicLX
L[ xInt
3 ][ yInt
3 ] << shift3
・・・
8.5.6.3.4 クロマ・サンプル補間プロセス
・・・
【0196】
【数21】
・・・
f. JVET-P2001-v9に基づく例示的な仕様変更は以下の通りである:
8.5.6.3.2 ルマ・サンプル補間フィルタリング・プロセス
・・・
フル・サンプル単位におけるルマ位置( xInt
i, yInt
i )は、i=0..7に対して以下のように導出される:
- subpic_treated_as_pic_flag[ SubPicIdx ]が1に等しい場合、以下が適用される:
xInt
i = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt
L + i - 3 ) (8-754)
yInt
i = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt
L + i - 3 ) (8-755)
- それ以外の場合(subpic_treated_as_pic_flag[ SubPicIdx ]が0に等しい)、以下が適用される:
xInt
i = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ?
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xInt
L + i - 3 ) :
xInt
L + i - 3 )
yInt
i = Clip3( 0, picH - 1, yInt
L + i - 3 )
フル・サンプル単位におけるルマ位置は、i=0..7に対して以下のように更に修正される:
【0197】
【数22】
予測されたルマ・サンプル値predSampleLX
Lは、以下のように導出される:
- xFrac
LとyFrac
Lの双方が0に等しく、hori_scale_fpとvert_scale_fpの双方が20481より小さい場合、predSampleLX
Lの値は、以下のように導出される:
predSampleLX
L = refPicLX
L[ xInt
3 ][ yInt
3 ] << shift3
・・・
8.5.6.3.4 クロマ・サンプル補間プロセス
・・・
フル・サンプル単位におけるクロマ位置( xInt
i, yInt
i )は、i=0..3に対して以下のように更に修正される:
【0198】
【数23】
19. ルマ及び/又はクロマ・サンプルに整数サンプル・クリッピング処理を適用するかどうか及び/又はどのように適用するかは、コーディング・ツールXが適用されるかどうかに依存してもよい。(例えば、Xはデコーダ側動きベクトル精密化(DMVR)である)。
【0199】
a. 一例において、整数サンプル・クリッピング処理は、コーディング・ツールXが適用される場合に限り、適用される。
【0200】
b. 一例において、整数サンプル・クリッピング処理は、コーディング・ツールXが適用されない場合に限り、適用される。
[0045]
図3は、ビデオ処理装置300のブロック図である。装置300は、本願で説明される1つ以上の方法を実装するために使用されてもよい。装置300は、スマートフォン、タブレット、コンピュータ、モノのインターネット(Internet of Things,IoT)受信機などで具体化されてもよい。装置300は、1つ以上のプロセッサ302、1つ以上のメモリ304、及びビデオ処理ハードウェア306を含んでもよい。プロセッサ302は、本件明細書で説明される1つ以上の方法を実装するように構成されてもよい。メモリ(memories)304は、本願で説明される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてもよい。ビデオ処理ハードウェア306は、ハードウェア回路において、本件明細書で説明される幾つかの技術を実装するために使用されてもよい。幾つかの実施形態では、ハードウェア306は、例えばグラフィックス・プロセッサのようなプロセッサ302内に部分的に又は全体的に含まれていてもよい。
【0201】
[0046] 以下の解決策は、幾つかの実施形態で好ましい解決策として実装される可能性がある。
【0202】
[0047] 以下の解決策は、上記セクションでリスト化されているアイテム(例えば、アイテム1)で説明されている追加的な技術とともに実装されてもよい。
【0203】
[0048] 1. ビデオ処理方法であって(例えば、
図4に示される方法400)、本方法は:ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、現在のブロックを含む現在のピクチャと変換に使用される参照ピクチャの解像度が異なることを判定するステップ(402);及び現在のブロックのサンプルのグループの予測された値が、水平及び垂直補間フィルタを使用して生成されるように、判定に基づいて変換を実行するステップ(404);を含む。
【0204】
[0049] 2. 解決策1の方法において、サンプルのグループは現在のブロックの全てのサンプルに対応している。
【0205】
[0050] 3. 解決策1の方法において、サンプルのグループは現在のブロックの一部のサンプルに対応している。
【0206】
[0051] 4. 解決策3の方法において、サンプルのグループは現在のブロックの或る領域の全てのサンプルに対応している。
【0207】
[0052] 5. 解決策1-4のうちの何れかの方法において、サンプルのグループは、変換中に同じ動きベクトル(MV)が使用されるように選択される。
【0208】
[0053] 6. 解決策1-4のうちの何れかの方法において、サンプルのグループは同じ水平動きベクトル成分を有する。
【0209】
[0054] 7. 解決策1-4のうちの何れかの方法において、サンプルのグループは同じ垂直動きベクトル成分を有する。
【0210】
[0055] 8. 解決策1-4のうちの何れかの方法において、サンプルのグループは同じ分数水平動きベクトル成分の部分を有する。
【0211】
[0056] 9. 解決策1-4のうちの何れかの方法において、サンプルのグループは同じ分数垂直動きベクトル成分の部分を有する。
【0212】
[0057] 10. 解決策1-9のうちの何れかの方法において、現在のピクチャの解像度と参照ピクチャの解像度に基づいて導出された動きベクトルの値を、切り捨て、クリッピング、又は丸めを含む修正ステップにより修正することによって、変換中に特定のサンプルの動きベクトルが導出される。
【0213】
[0058] 11. 解決策1-7のうちの何れかの方法において、変換中に特定のサンプルの動きベクトルは、サンプルのグループ内の全てのサンプルにより共有される共有動きベクトルの値に設定される。
【0214】
[0059] 12. 解決策1-9のうちの何れかの方法において、サンプルのグループは変換中に共有動きベクトルを共有し、共有動きベクトルはサンプルのグループ内の1つ以上のサンプルの動きベクトルから導出される。
【0215】
[0060] 13. 解決策11の方法において、共有動きベクトルは仮想サンプルから更に導出される。
【0216】
[0061] 以下の解決策は、上記セクションでリスト化されているアイテム(例えば、アイテム5)で説明されている追加的な技術とともに実装されてもよい。
【0217】
[0062] 14. ビデオ処理方法であって、本方法は:ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、現在のブロックを含む現在のピクチャと変換に使用される参照ピクチャの解像度が異なることを判定するステップ;及び現在のブロックのサンプルのグループの予測された値が、参照ピクチャ内の領域をサンプル・レート変更することで生成された仮想参照ブロックの補間されたバージョンとして生成されるように、判定に基づいて変換を実行するステップ;を含み、サンプル・レート変更は、現在のピクチャ又は参照ピクチャの高さ又は幅に依存する。
【0218】
[0063] 15. 解決策14の方法において、補間されたバージョンは補間フィルタを使用して生成され、補間フィルタの係数は、現在のピクチャ又は参照ピクチャの高さ又は幅に依存しない。
【0219】
[0064] 以下の解決策は、上記セクションでリスト化されているアイテム(例えば、アイテム6)で説明されている追加的な技術とともに実装されてもよい。
【0220】
[0065] 16. ビデオ処理方法であって、本方法は:ビデオの現在のブロックとビデオのコーディングされた表現との間の変換に関し、現在のブロックを含む現在のピクチャと変換に使用される参照ピクチャの解像度が異なることを判定するステップ;及び判定に基づいて、現在のピクチャと参照ピクチャの高さ又は幅に依存するスキームに基づいて参照サンプル・パディングの境界ブロックの左上座標を導出するステップ;及び境界ボックスの導出された左上座標を使用して変換を実行するステップを含む。
【0221】
[0066] 17. 解決策16の方法において、スキームは、以下のように整数サンプル位置にあるルマ・サンプルを計算することを含む:
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
[0067] ここで、Dx及び/又はDy及び/又はUx及び/又はUyは現在のピクチャ又は参照ピクチャの幅及び/又は高さに依存し、( xSbIntL, ySbIntL )は左上座標である。
【0222】
[0068] 18. 解決策16の方法において、スキームは、以下のように整数サンプル位置にあるクロマ・サンプルを計算することを含む:
xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )
yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )
[0069] ここで、Dx及び/又はDy及び/又はUx及び/又はUyは現在のピクチャ又は参照ピクチャの幅及び/又は高さに依存し、( xSbIntL, ySbIntL )は左上座標である。
【0223】
[0070] 以下の解決策は、上記セクションでリスト化されているアイテム(例えば、アイテム7)で説明されている追加的な技術とともに実装されてもよい。
【0224】
[0071] 19. ビデオ処理方法であって、本方法は:ビデオの現在のピクチャの現在のブロックとビデオのコーディングされた表現との間の変換に関し、現在のブロックの変換中に、デコーダ側動きベクトル精密化(DMVR)の使用に基づいて、参照サンプル・パディングの境界ブロックに従って動きベクトル計算に適用されるクリッピング処理を決定するステップ;及びクリッピング処理に基づいて変換を実行するステップを含む。
【0225】
[0072] 20. 解決策19の方法において、決定するステップは、DMVRが現在のブロックに使用されていることに起因して、レガシー・クリッピング処理をイネーブルにする。
【0226】
[0073] 21. 解決策19-20のうちの何れかの方法において、現在のブロックはクロマ・ブロックである。
【0227】
[0074] 以下の解決策は、上記セクションでリスト化されているアイテム(例えば、アイテム8)で説明されている追加的な技術とともに実装されてもよい。
【0228】
[0075] 22. ビデオ処理方法であって、本方法は:ビデオの現在のピクチャの現在のブロックとビデオのコーディングされた表現との間の変換に関し、変換におけるピクチャ・ラッピングの使用に基づいて、参照サンプル・パディングの境界ブロックに従って動きベクトル計算に適用されるクリッピング処理を決定するステップ;及びクリッピング処理に基づいて変換を実行するステップを含む。
【0229】
[0076] 23. 解決策22の方法において、決定するステップは、ピクチャ・ラッピングが現在のブロックに関してディセーブルにされている場合に限って、レガシー・クリッピング処理をイネーブルにする。
【0230】
[0077] 24. 解決策22-23のうちの何れかの方法において、現在のブロックはクロマ・ブロックである。
【0231】
[0078] 25. 解決策22-23のうちの何れかの方法において、クリッピング処理は、以下のようにルマ・サンプルを計算するために使用される:
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
[0079] ここで、Dx及び/又はDy及び/又はUx及び/又はUyはピクチャ・ラッピングの使用に依存し、( xSbIntL, ySbIntL )は境界ブロックを示す。
【0232】
[0080] 26. 解決策1-25のうちの何れかの方法において、変換は、ビデオを、コーディングされた表現に符号化することを含む。
【0233】
[0081] 27. 解決策1-25のうちの何れかの方法において、変換は、コーディングされた表現を復号化して、ビデオのピクセル値を生成することを含む。
【0234】
[0082] 28. 解決策1-27のうちの1つ以上に記載された方法を実行するように構成されたプロセッサを含むビデオ復号化装置。
【0235】
[0083] 29. 解決策1-27のうちの1つ以上に記載された方法を実行するように構成されたプロセッサを含むビデオ符号化装置。
【0236】
[0084] 30. コンピュータ・コードを記憶したコンピュータ・プログラム製品であって、コードは、プロセッサにより実行されると、解決策1-27のうちの何れかに記載された方法をプロセッサに実行させる。
【0237】
[0085] 31. 本件明細書に記載されている方法、装置、又はシステム。
【0238】
[0086]
図6は、本開示の技術を利用することが可能な例示的なビデオ・コーディング・システム100を示すブロック図である。
【0239】
[0087]
図6に示すように、ビデオ・コーディング・システム100は、送信元デバイス110及び送信先デバイス120を含む可能性がある。送信元デバイス110は、符号化されたビデオ・データを生成することが可能であり、ビデオ符号化デバイスと言及されてもよい。送信先デバイス120は、送信元デバイス110によって生成された符号化されたビデオ・データを復号化することが可能であり、ビデオ復号化デバイスと言及されてもよい。
【0240】
[0088] 送信元デバイス110は、ビデオ・ソース112、ビデオ・エンコーダ114、及び入力/出力(I/O)インターフェース116を含むことが可能である。
【0241】
[0089] ビデオ・ソース112は、ビデオ・キャプチャ・デバイスのようなソース、ビデオ・コンテンツ・プロバイダーからビデオ・データを受信するためのインターフェース、及び/又はビデオ・データを生成するためのコンピュータ・グラフィックス・システム、又はそのようなソースの組み合わせを含んでもよい。ビデオ・データは、1つ以上のピクチャを含む可能性がある。ビデオ・エンコーダ114は、ビデオ・ソース112からのビデオ・データを符号化してビットストリームを生成する。ビットストリームは、ビデオ・データのコーディングされた表現を形成するビットのシーケンスを含む可能性がある。ビットストリームは、コーディングされたピクチャ及び関連するデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連するデータは、シーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、及び他のシンタックス構造を含んでもよい。I/Oインターフェース116は、変調器/復調器(モデム)及び/又は送信機を含んでもよい。符号化されたビデオ・データは、ネットワーク130aを通じてI/Oインターフェース116を介して送信先デバイス120へ直接的に送信されてもよい。符号化されたビデオ・データはまた、送信先デバイス120によるアクセスのために記憶媒体/サーバー130b上に格納されてもよい。
【0242】
[0090] 送信先デバイス120は、I/Oインターフェース126、ビデオ・デコーダ124、及びディスプレイ・デバイス122を含んでもよい。
【0243】
[0091] I/Oインターフェース126は、受信機及び/又はモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110又は記憶媒体/サーバー130bから、符号化されたビデオ・データを取得することができる。ビデオ・デコーダ124は、符号化されたビデオ・データを復号化することができる。ディスプレイ・デバイス122は、復号化されたビデオ・データをユーザーに表示することができる。ディスプレイ・デバイス122は、送信先デバイス120と一体化されてもよいし、又は送信先デバイス120の外部にあってもよく、その場合の送信先デバイスは外部ディスプレイ・デバイスとのインターフェースとなるように構成される。
【0244】
[0092] ビデオ・エンコーダ114及びビデオ・デコーダ124は、高効率ビデオ・コーディング(High Efficiency Video Coding,HEVC)規格、汎用ビデオ・コーディング(Versatile Video Coding,VVC)規格、及びその他の現行及び/又は将来の規格のようなビデオ圧縮規格に従って動作することができる。
【0245】
[0093]
図7はビデオ・エンコーダ200の一例を示すブロック図であり、これは
図6に示すシステム100内のビデオ・エンコーダ110であってもよい。
【0246】
[0094] ビデオ・エンコーダ200は、本開示の技術の何れか又は全てを実行するように構成することができる。
図7の例では、ビデオ・エンコーダ200は、複数の機能的な構成要素を含む。本開示で説明される技術は、ビデオ・エンコーダ200の種々の構成要素の間で共有されてもよい。幾つかの例において、プロセッサは、本開示で説明される技術の何れか又は全てを実行するように構成することができる。
【0247】
[0095] ビデオ・エンコーダ200の機能的な構成要素は、パーティション・ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206を含むことが可能な予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含むことが可能である。
【0248】
[0096] 他の例では、ビデオ・エンコーダ200は、より多い、より少ない、又は異なる機能的な構成要素を含む可能性がある。一例では、予測ユニットは、イントラ・ブロック・コピー(intra block copy, IBC)ユニットを含む可能性がある。IBCユニットはIBCモードで予測を実行することが可能であり、そのモードにおいて、少なくとも1つの参照ピクチャは、現在のビデオ・ブロックが配置されているピクチャである。
【0249】
[0097] 更に、動き推定ユニット204や動き補償ユニット205のような幾つかの構成要素は、高度に統合されていてもよいが、説明の目的で
図7の例では別々に表現されている。
【0250】
[0098] パーティション・ユニット201は、現在のピクチャを1つ以上のビデオ・ブロックにパーティション化することができる。ビデオ・エンコーダ200及びビデオ・デコーダ300は、様々なビデオ・ブロック・サイズをサポートすることができる。
【0251】
[0099] モード選択ユニット203は、コーディング・モード、インター又はイントラのうちの一方を、例えば誤り結果に基づいて選択し、その結果のイントラ又はインター・コーディングされたブロックを、残差ブロック・データ生成のために残差生成ユニット207へ、及び参照ピクチャとして使用する符号化済みブロックの再構成のために再構成ユニット212へ提供する。幾つかの例では、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づいているイントラ&インター予測コンビネーション(combination of intra and inter predication, CIIP)モードを選択することができる。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルの解像度(例えば、サブ・ピクセル又は整数ピクセル精度)を選択することもできる。
【0252】
[0100] 現在のビデオ・ブロックに関してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームを現在のビデオ・ブロックと比較することによって、現在のビデオ・ブロックの動き情報を生成することができる。動き補償ユニット205は、現在のビデオ・ブロックに関連するピクチャ以外のバッファ213からのピクチャ(即ち、参照ピクチャ)の動き情報及び復号化されたサンプルに基づいて、現在のビデオ・ブロックについて予測されるビデオ・ブロックを決定することができる。
【0253】
[0101] 動き推定ユニット204と動き補償ユニット205は、例えば、現在のビデオ・ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかどうかに依存して、現在のビデオ・ブロックに対して様々な処理を実行することができる。
【0254】
[0102] 幾つかの例では、動き推定ユニット204は、現在のビデオ・ブロックに対して片-方向予測を実行することができ、動き推定ユニット204は、現在のビデオ・ブロックに対する参照ピクチャ・ブロックについて、リスト0又はリスト1の参照ピクチャを探索することができる。次いで、動き推定ユニット204は、参照ビデオ・ブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックスと、現在のビデオ・ブロック及び参照ビデオ・ブロックの間の空間的変位を示す動きベクトルとを生成することができる。動き推定ユニット204は、参照インデックス、予測方向インジケータ、及び動きベクトルを、現在のビデオ・ブロックの動き情報として出力することができる。動き補償ユニット205は、現在のビデオ・ブロックの動き情報によって示される参照ビデオ・ブロックに基づいて、現在のブロックの予測されたビデオ・ブロックを生成することができる。
【0255】
[0103] 他の例では、動き推定ユニット204は、現在のビデオ・ブロックに対して双-方向予測を実行することができ、動き推定ユニット204は、現在のビデオ・ブロックに対する参照ビデオ・ブロックについて、リスト0内の参照ピクチャを探索することができ、また、現在のビデオ・ブロックに対する別の参照ビデオ・ブロックについて、リスト1内の参照ピクチャを探索することができる。次いで、動き推定ユニット204は、参照ビデオ・ブロックを含むリスト0及びリスト1内で参照ピクチャを示す参照インデックスと、参照ビデオ・ブロック及び現在のビデオ・ブロックの間の空間的変位を示す動きベクトルとを生成することができる。動き推定ユニット204は、現在のビデオ・ブロックの動き情報として、現在のビデオ・ブロックの参照インデックスと動きベクトルを出力することができる。動き補償ユニット205は、現在のビデオ・ブロックの動き情報によって示される参照ビデオ・ブロックに基づいて、現在のビデオ・ブロックの予測されたビデオ・ブロックを生成することができる。
【0256】
[0104] 幾つかの例では、動き推定ユニット204は、現在のビデオに対する動き情報の完全なセットを、例えばエントロピー符号化ユニット214へ出力しない。むしろ、動き推定ユニット204は、他のビデオ・ブロックの動き情報を参照して、現在のビデオ・ブロックの動き情報をシグナリングすることができる。例えば、動き推定ユニット204は、現在のビデオ・ブロックの動き情報が、隣接するビデオ・ブロックの動き情報と十分に類似していることを判断することができる。
【0257】
[0105] 一例では、動き推定ユニット204は、現在のビデオ・ブロックに関連するシンタックス構造において、現在のビデオ・ブロックが別のビデオ・ブロックと同じ動き情報を有することをビデオ・デコーダ300に指示する値を指定することができる。
【0258】
[0106] 別の例では、動き推定ユニット204は、現在のビデオ・ブロックに関連するシンタックス構造において、別のビデオ・ブロック及び動きベクトル差分(MVD)を識別することができる。動きベクトル差分は、現在のビデオ・ブロックの動きベクトルと指定されたビデオ・ブロックの動きベクトルとの間の差分を示す。ビデオ・デコーダ300は、指定されたビデオ・ブロックの動きベクトルと動きベクトル差分とを使用して、現在のビデオ・ブロックの動きベクトルを決定することができる。
【0259】
[0107] 上述したように、ビデオ・エンコーダ200は、動きベクトルを予測的に(predictively)シグナリングすることができる。ビデオ・エンコーダ200によって実現され得る予測シグナリング技術の2つの例は、アドバンスト動きベクトル予測(advanced motion vector predication,AMVP)及びマージ・モード・シグナリングを含む。
【0260】
[0108] イントラ予測ユニット206は、現在のビデオ・ブロックに対してイントラ予測を実行することができる。イントラ予測ユニット206が現在のビデオ・ブロックに対してイントラ予測を実行する場合、イントラ予測ユニット206は、同じピクチャ内の他のビデオ・ブロックの復号化されたサンプルに基づいて、現在のビデオ・ブロックに対する予測データを生成することができる。現在のビデオ・ブロックに対する予測データは、予測されるビデオ・ブロックと種々のシンタックス要素を含んでもよい。
【0261】
[0109] 残差生成ユニット207は、現在のビデオ・ブロックから、現在のビデオ・ブロックの予測されたビデオ・ブロックを減算することによって(例えば、マイナス符号で示される)、現在のビデオ・ブロックに対する残差データを生成することができる。現在のビデオ・ブロックの残差データは、現在のビデオ・ブロック内のサンプルの異なるサンプル成分に対応する残差ビデオ・ブロックを含んでもよい。
【0262】
[0110] 他の例では、例えばスキップ・モードでは、現在のビデオ・ブロックに関し、現在のビデオ・ブロックに対する残差データが存在しない場合があり、残差生成ユニット207は減算処理を実行しない可能性がある。
【0263】
[0111] 変換処理ユニット208は、現在のビデオ・ブロックに関連する残差ビデオ・ブロックに、1つ以上の変換を適用することによって、現在のビデオ・ブロックに対する1つ以上の変換係数ビデオ・ブロックを生成することができる。
【0264】
[0112] 変換処理ユニット208が現在のビデオ・ブロックに関連する変換係数ビデオ・ブロックを生成した後、量子化ユニット209は、現在のビデオ・ブロックに関連する量子化パラメータ(QP)値に基づいて、現在のビデオ・ブロックに関連する変換係数ビデオ・ブロックを量子化することができる。
【0265】
[0113] 逆量子化ユニット210及び逆変換ユニット211はそれぞれ逆量子化及び逆変換を変換係数ビデオ・ブロックに適用し、変換係数ビデオ・ブロックから残差ビデオ・ブロックを再構成することができる。再構成ユニット212は、再構成された残差ビデオ・ブロックを、予測ユニットによって生成された1つ以上の予測されたビデオ・ブロックからの対応するサンプルに追加し、現在のブロックに関連する再構成されたビデオ・ブロックを生成して、バッファ213に格納することができる。
【0266】
[0114] 再構成ユニット212がビデオ・ブロックを再構成した後、ループ・フィルタリング動作を実行し、ビデオ・ブロック内のビデオ・ブロッキング・アーチファクトを低減することができる。
【0267】
[0115] エントロピー符号化ユニット214は、ビデオ・エンコーダ200の他の機能的な構成要素からデータを受信することができる。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化処理を実行して、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力することができる。
【0268】
[0116]
図8は、ビデオ・デコーダ300の一例を示すブロック図であり、これは
図6に示すシステム100内のビデオ・デコーダ120であってもよい。ビデオ・デコーダ300は、本開示の技術の何れか又は全てを実行するように構成することができる。
図8の例では、ビデオ・デコーダ300は、複数の機能的構成要素を含む。本開示で説明される技術は、ビデオ・デコーダ300の種々の構成要素の間で共有されてもよい。幾つかの例において、プロセッサは、本開示で説明される技術の何れか又は全てを実行するように構成することができる。
【0269】
[0117]
図8の例では、ビデオ・デコーダ300は、エントロピー復号化ユニット301と、動き補償ユニット302と、イントラ予測ユニット303と、逆量子化ユニット304と、逆変換ユニット305と、再構成ユニット306と、バッファ307とを含む。ビデオ・デコーダ300は、幾つかの例において、ビデオ・エンコーダ200(
図7)に関して説明した符号化経路と概ね逆の復号化経路を実行することができる。
【0270】
[0118] エントロピー復号化ユニット301は、符号化されたビットストリームを取り出すことができる。符号化されたビットストリームは、エントロピー符号化されたビデオ・データ(例えば、ビデオ・データの符号化されたブロック)を含むことができる。エントロピー復号化ユニット301は、エントロピー符号化されたビデオ・データを復号化することができ、エントロピー復号化されたビデオ・データから、動き補償ユニット302は、動きベクトル、動きベクトル精密化、参照ピクチャ・リスト・インデックス、及びその他の動き情報を含む動き情報を決定することができる。動き補償ユニット302は、例えば、AMVP及びマージ・モードを実行することによって、そのような情報を決定することができる。
【0271】
[0119] 動き補償ユニット302は、ビットストリームで受信した動きベクトル及び/又はMVDを使用して、バッファ307内の参照ピクチャ内の予測ビデオ・ブロックを識別することができる。
【0272】
[0120] 動き補償ユニット302は、おそらくは補間フィルタに基づいて補間を実行して、動き補償されたブロックを生成する。サブ・ピクセル精度を有する動き推定のために使用される補間フィルタの識別子は、シンタックス要素に含まれてもよい。
【0273】
[0121] 動き補償ユニット302は、ビデオ・ブロックの符号化中にビデオ・エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックの非整数(sub-integer)ピクセルに対する補間された値を計算してもよい。動き補償ユニット302は、受信したシンタックス情報に従ってビデオ・エンコーダ200によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成することができる。
【0274】
[0122] 動き補償ユニット302は、シンタックス情報の一部を使用して、符号化されたビデオ・シーケンスのフレーム及び/又はスライスを符号化するために使用されたブロックのサイズ、符号化されたビデオ・シーケンスのピクチャの各マクロブロックがどのようにパーティション化されたかを記述するパーティション情報、各パーティションがどのように符号化されたかを示すモード、インター符号化されたブロック各々に対する1つ以上の参照フレーム(及び参照フレーム・リスト)、及び符号化されたビデオ・シーケンスを復号化するための他の情報、を決定することができる。
【0275】
[0123] イントラ予測ユニット303は、例えば、ビットストリームで受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成することができる。逆量子化ユニット303は、ビットストリームで提供され、エントロピー復号化ユニット301によって復号化された、量子化されたビデオ・ブロック係数を逆量子化する、即ち、量子化解除する。逆変換ユニット303は、逆変換を適用する。
【0276】
[0124] 再構成ユニット306は、残差ブロックを、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックと合算して、復号化されたブロックを形成することができる。所望であれば、復号化されたブロックをフィルタリングしてブロック性アーチファクトを除去するために、デブロッキング・フィルタが適用されてもよい。次いで、復号化されたビデオ・ブロックはバッファ307に格納され、バッファ307は、後続の動き補償のための参照ブロックを提供し、また、ディスプレイ・デバイスでの提示のために、復号化されたビデオを生成し、生成された復号化されたビデオをディスプレイ・デバイスで提示する。
【0277】
[0125] 上記の解決策において、変換を実行することは、先行する決定ステップの結果を使用して、符号化又は復号化の際に、変換結果に到達することを含む。ために、符号化又は復号化動作中の前の決定ステップの結果を使用することを含む
[0126] 開示された技術的解決策の幾つかの好ましい実施形態を以下に説明する。これらの解決策の更なる詳細は、例えば、先行するセクションのアイテム14を含めて、本件明細書を通じて説明されている。
【0278】
[0127] 1. ビデオ処理方法(例えば、
図9に示される方法900)であって:ビデオの現在のピクチャの現在のブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップ(902);を含み、前記コーディングされた表現はフォーマット・ルールに従っており、前記フォーマット・ルールは、前記現在のビデオ・ブロックに対する予測ブロックを決定するための参照ピクチャに適用されるラップアラウンド・クリッピング処理に関する1つ以上のシンタックス要素を選択的に含むことを規定しており、前記ラップアラウンド・クリッピング処理は、動きベクトルが、前記参照ピクチャの境界ブロック外側のサンプルを指す場合に、前記参照ピクチャ内のサンプルを再選択するために使用される。
【0279】
[0128] 2. 解決策1の方法において、前記フォーマット・ルールは、前記1つ以上のシンタックス要素のうちのシンタックス要素が、ピクチャ・パラメータ・セット(PPS)に含まれることを規定している。
【0280】
[0129] 3. 解決策2に記載の方法において、前記PPSに含まれる前記シンタックス要素は、前記ラップアラウンド・クリッピング処理が水平方向でイネーブルにされるかどうかを示す、ということを前記フォーマット・ルールは規定している。
【0281】
[0130] 4. 解決策3の方法において、前記シンタックス要素の値“1”は、前記ラップアラウンド・クリッピング処理が前記水平方向でイネーブルにされることを示し、前記シンタックス要素の値“0”は、前記ラップアラウンド・クリッピング処理が前記水平方向でディセーブルにされることを示す。
【0282】
[0131] 5. 解決策1の方法において、前記ルールは、第1ビデオ・ユニット・レベルにおける第1シンタックス要素と、前記ラップアラウンド・クリッピング処理がイネーブルにされるかどうかを示す第2ユニット・レベルにおける第2シンタックス要素とを含むことを規定している。
【0283】
[0132] 6. 解決策5の方法において、前記第2シンタックス要素は、前記第1シンタックス要素を参照している。
【0284】
[0133] 7. 解決策5-6の何れかの方法であって、前記第1シンタックス要素及び/又は前記第2シンタックス要素信号は、前記ラップアラウンド・クリッピング処理が前記現在のブロックに対してイネーブルにされるかどうかを示している。
【0285】
[0134] 8. 解決策5-7の何れかの方法において、前記フォーマット・ルールは、前記第2シンタックス要素の値は前記第1シンタックス要素の値に依存することを規定している。
【0286】
[0135] 9. 解決策8の方法において、前記フォーマット・ルールは、前記第1シンタックス要素が、前記ラップアラウンド・クリッピング処理はディセーブルにされることを示す場合に、前記第2シンタックス要素も、前記ラップアラウンド・クリッピング処理はディセーブルにされることを示す、ということを規定している。
【0287】
[0136] 10. 解決策1-2の何れかの方法において、前記フォーマット・ルールは、前記ラップアラウンド・クリッピング処理に使用されるオフセットを示すシンタックス要素を含むことを規定している。
【0288】
[0137] 11. 解決策1の方法において、前記1つ以上のシンタックス要素は、前記ラップアラウンド・クリッピング処理がイネーブルにされるかどうかを示す第1シンタックス要素と、前記ラップアラウンド・クリッピング処理の実施可能性に依存して条件付きで包含される第2シンタックス要素とを含む。
【0289】
[0138] 12. 解決策11の方法において、前記第2シンタックス要素は、前記第1シンタックス要素が値1を有する場合に、前記コーディングされた表現に条件付きで含まれる。
【0290】
[0139] 13. 解決策5-9の何れかの方法において、前記第1ビデオ・ユニット・レベルはビデオ・シーケンス・レベルであり、前記第1シンタックス要素はシンタックス・パラメータ・セットに含まれている。
【0291】
[0140] 14. 解決策5-9又は13の何れかの方法において、前記第2ビデオ・ユニット・レベルは、ビデオ・ピクチャ・レベル又はビデオ・スライス・レベルである。
【0292】
[0141] 15. 解決策5-9又は13の何れかの方法において、前記第2シンタックス要素は、ピクチャ・パラメータ・セット、スライス・ヘッダ、ピクチャ・ヘッダ、又は適応パラメータ・セット内にある。
【0293】
[0142] 16. 解決策5-9の何れかの方法において、前記第1シンタックス要素及び/又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理に使用されるべきラップアラウンド・オフセットの量をシグナリングするものである。
【0294】
[0143] 17. 解決策8-16の何れかの方法において、前記フォーマット・ルールは、前記第1シンタックス要素と前記第2シンタックス要素が互いに等しいことを規定している。
【0295】
[0144] 18. 解決策8-16の何れかの方法において、前記第1シンタックス要素が前記ラップアラウンド・クリッピング処理はイネーブルにされていることを示す場合に、前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理がイネーブルにされることを示す第1値、又は前記ラップアラウンド・クリッピング処理がディセーブルにされることを示す第2値を有することが許可されることを、前記フォーマット・ルールは規定している。
【0296】
[0145] 19. 解決策5-18の何れかの方法において、前記第1シンタックス要素と前記第2シンタックス要素の双方が前記コーディングされた表現に含まれる場合に、前記第1シンタックス要素の値は、前記コーディングされた表現からの前記現在のブロックを復号化する際に無視されることを、前記フォーマット・ルールは規定している。
【0297】
[0146] 20. 解決策7-17の何れかの方法において、前記第1シンタックス要素と前記第2シンタックス要素の双方が前記コーディングされた表現に含まれる場合に、前記第2シンタックス要素の値は、前記コーディングされた表現からの前記現在のブロックを復号化する際に無視されることを、前記フォーマット・ルールは規定している。
【0298】
[0147] 21. 解決策7-20の何れかの方法において、前記第1シンタックス要素の値及び/又は前記第2シンタックス要素の値は、前記現在のブロックのコーディング・ツリー・ブロックに関連する第1サイズ、及び前記現在のブロックを含む前記現在のピクチャの幅に関連する第2サイズに依存することを、前記フォーマット・ルールは規定している。
【0299】
[0148] 22. 解決策20の方法において、前記第1サイズは、(CtbSizeY / MinCbSizeY + Offset1) に等しく、CtbSizeYは前記コーディング・ツリー・ブロックの高さ又は幅であり、MinCbSizeYは前記変換におけるコーディング・ブロックに対する最小許容サイズを示し、Offset1は整数であり、前記第2サイズは、( pic_width_in_luma_samples / MinCbSizeY - Offset2 ) に等しく、pic_width_in_luma_samplesは、ピクチャ・パラメータ・セットで示されるルマ・サンプルにおける前記現在のピクチャの幅を示し、Offset2は他の整数である。
【0300】
[0149] 23. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより大きくないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0301】
[0150] 24. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以下ではないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0302】
[0151] 25. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより小さくないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0303】
[0152] 26. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以上であることに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0304】
[0153] 27. 解決策21-26の何れかの方法において、前記ピクチャ・パラメータ・セットは、前記現在のピクチャに適用可能なシーケンス・パラメータ・セットを参照している。
【0305】
[0154] 28. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより大きいことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0306】
[0155] 29. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以下ではないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0307】
[0156] 30. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズより小さくないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0308】
[0157] 31. 解決策21の方法において、前記第1シンタックス要素又は前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記第1サイズが前記第2サイズ以上ではないことに起因してディセーブルにされることを示す、ということを前記フォーマット・ルールは規定している。
【0309】
[0158] 32. 解決策22-31の何れかの方法において、offset2 = offset1 = 1である。
【0310】
[0159] 33. 解決策1の方法において、前記フォーマット・ルールは、前記シンタックス要素が適応パラメータ・セットに含まれることを規定している。
【0311】
[0160] 34. 解決策1の方法において、前記フォーマット・ルールは、前記シンタックス要素が、前記現在のブロックを含む現在のスライス又は前記現在のピクチャのヘッダ・フィールドに含まれることを規定している。
【0312】
[0161] 35. 解決策1の方法において、前記フォーマット・ルールは、ピクチャ・レベル、ビュー・レベル、スライス・レベル、タイル・レベル、ブリック・レベル、サブ・ピクチャ・レベル、又はコーディング・ツリー・ユニット・レベルで含まれることを規定している。
【0313】
[0162] 36. 解決策1-35の何れかの方法において、前記変換は、前記ビデオを、前記コーディングされた表現に符号化することを含む。
【0314】
[0163] 37. 解決策1-35の何れかの方法において、前記変換は、前記コーディングされた表現を復号化して、前記ビデオのピクセル値を生成することを含む。
【0315】
[0164] 38. 解決策1-37の1つ以上に記載された方法を実行するように構成されたプロセッサを含むビデオ復号化装置。
【0316】
[0165] 39. 解決策1-37の1つ以上に記載された方法を実行するように構成されたプロセッサを含むビデオ符号化装置。
【0317】
[0166] 40. コンピュータ・コードを記憶したコンピュータ・プログラム製品において、コードは、プロセッサにより実行されると、前記プロセッサに、解決策1-37の何れかに記載された方法を実行させる。
【0318】
[0167] 41. コードを記憶したコンピュータ読み取り可能な媒体において、前記コードは、プロセッサにより実行されると、前記プロセッサに、解決策1-37の何れか1項に記載された方法を実行させる。
【0319】
[0168] 42. 解決策1-37の何れかにより生成されたビットストリームを記憶したコンピュータ読み取り可能な媒体。
【0320】
[0169] 43. 本件で説明された方法、装置、又はシステム。
【0321】
[0170] 開示された及びその他の解決策、実施例、実施形態、モジュール、及び機能的動作(本件明細書で説明されるもの)は、本件明細書で開示される構造及びそれらの構造的均等物を含む、デジタル電子回路、又はコンピュータ・ソフトウェア、ファームウェア、又はハードウェア、又はそれらの1つ以上の組み合わせにおいて実現することができる。開示される及びその他の実施形態は、1つ以上のコンピュータ・プログラム製品として、即ち、データ処理装置による実行のための、又はその動作を制御するための、コンピュータ読み取り可能な媒体上で符号化されているコンピュータ・プログラム命令の1つ以上のモジュールとして、実装することができる。コンピュータ読み取り可能な媒体は、機械読み取り可能なストレージ・デバイス、機械読み取り可能なストレージ基板、メモリ・デバイス、機械読み取り可能な伝搬信号に影響を及ぼす物質の構成、又はそれらの1つ以上の組み合わせとすることが可能である。用語「データ処理装置」は、例えば、プログラマブル・プロセッサ、コンピュータ、又は複数のプロセッサ又はコンピュータを含む、データを処理するための全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題としているコンピュータ・プログラムの実行環境を生成するコード、例えば、プロセッサ・ファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。伝搬する信号は、人工的に生成された信号、例えば、適切な受信装置への送信のために情報を符号化するように生成された、マシンにより生成された電気信号、光信号、又は電磁信号である。
【0322】
[0171] コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプト、コードとしても知られている)は、コンパイル又は解釈された言語を含む、任意の形式のプログラミング言語で書くことが可能であり、それは、スタンド・アロン・プログラムとして、又はモジュール、コンポーネント、サブルーチン、又はコンピューティング環境での使用に適したその他のユニットとしての形式を含む、任意の形式で配備することができる。コンピュータ・プログラムは、必ずしもファイル・システム内のファイルに対応するとは限らない。プログラムは、他のプログラム又はデータを保持するファイルの一部分(例えば、マークアップ言語文書に格納される1つ以上のスクリプト)内に、問題としているプログラムに専用の単一ファイル内に、又は複数の調整されたファイル(例えば、1つ以上のモジュール、サブ・プログラム、又はコードの一部分を記憶するファイル)内に、保存されることが可能である。コンピュータ・プログラムは、1つのコンピュータ上で又は複数のコンピュータ上で実行されるように配備することが可能であり、複数のコンピュータは、1つのサイトに配置されるか、又は複数のサイトにわたって分散されて通信ネットワークによって相互接続される。
【0323】
[0172] 本件明細書で説明されるプロセス及びロジックの流れは、1つ以上のコンピュータ・プログラムを実行する1つ以上のプログラマブル・プロセッサによって実行され、入力データに作用して出力を生成することによって機能を実行することができる。プロセス及びロジックの流れはまた、例えばFPGA(フィールド・プログラマブル・ゲート・アレイ)又はASIC(特定用途向け集積回路)のような特殊目的論理回路によって実行されることが可能であり、また、それらとして装置を実装することも可能である。
【0324】
[0173] コンピュータ・プログラムの実行に適したプロセッサは、例えば、汎用及び専用双方のマイクロプロセッサ、及び任意の種類のデジタル・コンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリ・メモリ又はランダム・アクセス・メモリ又は双方から命令及びデータを受信するであろう。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリ・デバイスである。一般に、コンピュータはまた、データを記憶するための1つ以上の大容量ストレージ・デバイス、例えば磁気的なもの、磁気光ディスク、又は光ディスクを含み、あるいはそれらからデータを受信したり、それらへデータを転送したり、若しくは双方のために動作可能に結合される。しかしながら、コンピュータがそのようなデバイスを有することは必須ではない。コンピュータ・プログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能な媒体は、例えば、EPROM、EEPROM、及びフラッシュ・メモリ・デバイスのような半導体メモリ・デバイス;磁気ディスク、例えば内部ハード・ディスク又はリムーバブル・ディスク;光磁気ディスク;並びにCD ROM及びDVD-ROMディスク;を含む、あらゆる形態の不揮発性メモリ、媒体及びメモリ・デバイスを含む。プロセッサ及びメモリは、特殊目的論理回路によって補足されるか、又はそこに内蔵されることが可能である。
【0325】
[0174] 本件特許文献は多くの詳細を含んでいるが、これらは、何れかの対象事項やクレームされ得るものの範囲に関する限定として解釈されるべきではなく、むしろ特定の技術の特定の実施形態に特有である可能性がある特徴の説明として解釈されるべきである。別々の実施形態の文脈で本件特許文献において説明される特定の特徴は、組み合わせて単一の実施形態で実施することも可能である。逆に、単一の実施形態の文脈で説明されている種々の特徴は、複数の実施形態において別々に、又は任意の適切なサブコンビネーションで実施することも可能である。更に、特徴が、特定の組み合わせにおいて機能するものとして上記で説明されていたり、当初にそのようにクレームされていたりさえするかもしれないが、クレームされた組み合わせ中の1つ以上の特徴は、場合によっては、組み合わせから切り出されることが可能であり、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に仕向けられる可能性がある。
【0326】
[0175] 同様に、図中、動作は特定の順序で記述されているが、これは、所望の結果を達成するために、このような動作が図示の特定の順序で又は順番通りに実行されることや、例示された全ての動作が実行されること、を要求しているものとして理解されるべきではない。更に、本件特許文献で説明される実施形態における種々のシステム構成要素の分け方は、全ての実施形態でこのような分け方を要求しているものとして理解されるべきではない。
【0327】
[0176] 僅かな実装例及び実施例のみが記述されているに過ぎず、本件特許文献で説明され図示されているものに基づいて他の実装、拡張及び変更を行うことが可能である。
【手続補正書】
【提出日】2022-05-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ・データを処理する方法であって:
ビデオの現在のピクチャの現在のブロックと前記ビデオのビットストリームとの間の変換に関し、少なくとも1つのシンタックス要素に基づいて、前記現在のブロックに対する予測ブロックを決定するために参照ピクチャに適用されるラップアラウンド・クリッピング処理の使用を決定するステップ;及び
前記決定に基づいて前記変換を実行するステップ;
を含み、前記サンプルが前記参照ピクチャの外側にある場合に、前記ラップアラウンド・クリッピング処理は、前記参照ピクチャ内のサンプルを再選択するために使用され;及び
前記少なくとも1つのシンタックス要素は、ピクチャ・パラメータ・セット(PPS)に含まれる第1シンタックス要素を含む、方法。
【請求項2】
請求項1に記載の方法において、前記第1シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記現在のブロックに関して水平方向でイネーブルにされているかどうかを示す、方法。
【請求項3】
請求項1又は2に記載の方法において、前記少なくとも1つのシンタックス要素はシーケンス・パラメータ・セット(SPS)に含まれる第2シンタックス要素を含み、前記第2シンタックス要素は、前記ラップアラウンド・クリッピング処理が、前記現在のブロックに関して前記水平方向でイネーブルにされているかどうかを示す、方法。
【請求項4】
請求項3に記載の方法において、前記第1シンタックス要素の値は、前記第2シンタックス要素の値に依存している、方法。
【請求項5】
請求項3又は4に記載の方法において、前記第2シンタックス要素が、前記ラップアラウンド・クリッピング処理は前記現在のブロックに関してディセーブルにされていることを示している場合に、前記第1シンタックス要素は、前記ラップアラウンド・クリッピング処理がディセーブルにされることを示す、方法。
【請求項6】
請求項3-5のうちの何れか一項に記載の方法において、前記第2シンタックス要素が、前記ラップアラウンド・クリッピング処理は前記現在のブロックに関してイネーブルにされることを示している場合に、前記第1シンタックス要素は、前記ビットストリームに条件付きで含まれる、方法。
【請求項7】
請求項1-6のうちの何れか一項に記載の方法において、前記第1シンタックス要素の値は、前記現在のブロックのコーディング・ツリー・ブロックに関連する第1サイズと、前記現在のブロックを含む前記現在のピクチャの幅に関連する第2サイズとに依存している、方法。
【請求項8】
請求項7に記載の方法において、前記第1サイズが前記第2サイズより大きい場合に、前記第1シンタックス要素は、前記ラップアラウンド・クリッピング処理がディセーブルにされることを示す、方法。
【請求項9】
請求項7又は8に記載の方法において、前記第1サイズは、(CtbSizeY
/ MinCbSizeY + Offset1) に等しく、CtbSizeYは前記現在のブロックの前記コーディング・ツリー・ブロックの高さ又は幅を示し、MinCbSizeYは前記変換のコーディング・ブロックに対する最小許容サイズを示し、Offset1は整数であり;及び
前記第2サイズは、(pic_width_in_luma_samples /
MinCbSizeY - Offset2 ) に等しく、pic_width_in_luma_samplesは、前記ピクチャ・パラメータ・セットで示されるルマ・サンプルにおける前記現在のピクチャの幅を示し、Offset2は整数である、方法。
【請求項10】
請求項9に記載の方法において、Offset2 = Offset1 = 1である、方法。
【請求項11】
請求項1-10のうちの何れか一項に記載の方法において、“1”である前記第1シンタックス要素の値は、前記ラップアラウンド・クリッピング処理が前記水平方向でイネーブルにされていることを示し、“0”である前記第1シンタックス要素の値は、前記ラップアラウンド・クリッピング処理が前記水平方向でディセーブルにされていることを示す、方法。
【請求項12】
請求項1-11のうちの何れか一項に記載の方法において、前記変換は前記現在のビデオ・ブロックを前記ビットストリームに符号化することを含む、方法。
【請求項13】
請求項1-11のうちの何れか一項に記載の方法において、前記変換は前記現在のビデオ・ブロックを前記ビットストリームから復号化することを含む、方法。
【請求項14】
プロセッサと命令を伴う非一時的なメモリとを含むビデオ・データを処理する装置であって、前記メモリは、前記プロセッサにより実行される場合に、前記プロセッサに:
ビデオの現在のピクチャの現在のブロックと前記ビデオのビットストリームとの間の変換に関し、少なくとも1つのシンタックス要素に基づいて、前記現在のブロックに対する予測ブロックを決定するために参照ピクチャに適用されるラップアラウンド・クリッピング処理の使用を決定するステップ;及び
前記決定に基づいて前記変換を実行するステップ;
を実行させ、前記サンプルが前記参照ピクチャの外側にある場合に、前記ラップアラウンド・クリッピング処理は、前記参照ピクチャ内のサンプルを再選択するために使用され;及び
前記少なくとも1つのシンタックス要素は、ピクチャ・パラメータ・セット(PPS)に含まれる第1シンタックス要素を含む、装置。
【請求項15】
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、プロセッサに:
ビデオの現在のピクチャの現在のブロックと前記ビデオのビットストリームとの間の変換に関し、少なくとも1つのシンタックス要素に基づいて、前記現在のブロックに対する予測ブロックを決定するために参照ピクチャに適用されるラップアラウンド・クリッピング処理の使用を決定するステップ;及び
前記決定に基づいて前記変換を実行するステップ;
を実行させ、前記サンプルが前記参照ピクチャの外側にある場合に、前記ラップアラウンド・クリッピング処理は、前記参照ピクチャ内のサンプルを再選択するために使用され;及び
前記少なくとも1つのシンタックス要素は、ピクチャ・パラメータ・セット(PPS)に含まれる第1シンタックス要素を含む、記憶媒体。
【請求項16】
ビデオ処理装置により実行される方法によって生成されたビデオのビットストリームを記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記方法は:
ビデオの現在のピクチャの現在のブロックと前記ビデオのビットストリームとの間の変換に関し、少なくとも1つのシンタックス要素に基づいて、前記現在のブロックに対する予測ブロックを決定するために参照ピクチャに適用されるラップアラウンド・クリッピング処理の使用を決定するステップ;及び
前記決定に基づいて前記変換を実行するステップ;
を含み、前記サンプルが前記参照ピクチャの外側にある場合に、前記ラップアラウンド・クリッピング処理は、前記参照ピクチャ内のサンプルを再選択するために使用され;及び
前記少なくとも1つのシンタックス要素は、ピクチャ・パラメータ・セット(PPS)に含まれる第1シンタックス要素を含む、記憶媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正の内容】
【0001】
[0001] 関連出願の相互参照
本願は、2020年10月22日付で出願された国際特許出願PCT/CN2020/122644に基づいており、同出願は、2019年10月23日付で出願された国際特許出願第PCT/CN2019/112820号についての優先権及び利益を主張している。前述の全ての特許出願は全体的に参照により援用される。
【国際調査報告】