(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-14
(45)【発行日】2025-01-22
(54)【発明の名称】映像符号化における重み付けサンプルの双予測
(51)【国際特許分類】
H04N 19/105 20140101AFI20250115BHJP
H04N 19/176 20140101ALI20250115BHJP
H04N 19/70 20140101ALI20250115BHJP
【FI】
H04N19/105
H04N19/176
H04N19/70
【外国語出願】
(21)【出願番号】P 2023120600
(22)【出願日】2023-07-25
(62)【分割の表示】P 2022516096の分割
【原出願日】2020-09-11
【審査請求日】2023-08-10
(31)【優先権主張番号】PCT/CN2019/105825
(32)【優先日】2019-09-13
(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)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ワン ヤン
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】シュー ジジョン
(72)【発明者】
【氏名】ワン ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 6),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O2001 (version 14),15th Meeting: Gothenburg, SE,2019年07月31日,pp.67-70,143-146,219-221
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像データの処理方法であって、
予測モードに基づいて、映像の現在のピクチャの映像ブロックと前記映像のビットストリームとの間で変換するステップであって、前記予測モードにおいて、前記映像ブロックは、少なくとも1つのサブブロックに分割され、前記少なくとも1つのサブブロックの動き情報は、前記現在のピクチャの近傍のピクチャ内に配置された近傍の映像ブロックの動き情報に基づいて導出され、前記近傍の映像ブロックの位置は、デフォルトの動き情報に初期化されて設定された時間的な動き情報に基づいて導出されて、特定の隣接ブロックが利用可能であることに応答して、前記映像ブロックの左下隅に隣接する前記特定の隣接ブロックに関連する特定の動き情報に設定され、
前記予測モードにおいて、前記近傍の映像ブロックの前記動き情報の導出プロセスは、
前記近傍の映像ブロックが第1のコーディングモードでコーディングされているか否かについて第1の決定を行
い、前記第1のコーディングモードでは、再構成されたサンプルが代表的な色値のセットによって表され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含み、
前記第1の決定に基づいて、前記近傍の映像ブロックの動きベクトルの利用可能性と、前記近傍の映像ブロックの動きベクトルの値とについて第2の決定を行
い、前記第1のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定が、イントラコーディングモードまたは第2のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定と同一になるように実行され、前記第2のコーディングモードでは、予測サンプルが、ブロックベクトルにより決定される同一の復号されたスライスのサンプル値のブロックから導出される、
方法。
【請求項2】
前記第2の決定は、前記近傍の映像ブロックが前記第1のコーディングモードでコーディングされる前記第1の決定に応答して、前記近傍の映像ブロックの動きベクトルの前記利用可能性が利用不可であると決定する、
請求項1に記載の方法。
【請求項3】
前記第1のコーディングモードでコーディングされた前記近傍の映像ブロックの動きベクトルの前記利用可能性は、前記イントラコーディングモードまたは前記第2のコーディングモードでコーディングされた前記近傍の映像ブロックの動きベクトルの前記利用可能性と同一である、
請求項1または2に記載の方法。
【請求項4】
前記近傍の映像ブロックが前記第1のコーディングモードでコーディングされる前記第1の決定に応答して、前記近傍の映像ブロックの動きベクトルの前記利用可能性を示すフラグを0に設定する、
請求項2に記載の方法。
【請求項5】
前記第2の決定は、前記第1のコーディングモードでコーディングされた前記近傍の映像ブロックの前記動きベクトルの値を、前記イントラコーディングモードまたは前記第2のコーディングモードでコーディングされた前記近傍の映像ブロックの前記動きベクトルの値に等しいと決定する、
請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記隣接された映像ブロックが前記第1のコーディングモードでコーディングされる前記第1の決定に応答して、前記第1のコーディングモードでコーディングされた前記隣接された映像ブロックの両方の動きベクトルの成分が、0に設定される、
請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記近傍の映像ブロックが前記第1のコーディングモード、前記イントラコーディングモード、または前記第2のコーディングモードでコーディングされるという決定に応答して、前記近傍の映像ブロックの動きベクトルの前記利用可能性を示すフラグを0に設定し、前記近傍の映像の両方の動きベクトルの成分を0に設定する、
請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記第1のコーディングモード、前記イントラコーディングモード、または前記第2のコーディングモードでコーディングされた前記近傍の映像ブロックの前記動き情報の前記導出プロセスは、イントラコーディングモードでコーディングされた前記近傍の映像ブロックの前記動き情報の導出プロセスと異なる、
請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記予測モードは、サブブロックベースの時間的な動きベクトル予測(SbTMVP)モードであり、前記第1のコーディングモードはパレットモードであり、前記第2のコーディングモードはイントラブロックコピー(IBC)である、
請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記変換は、前記映像ブロックを前記ビットストリームに符号化することを含む、
請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記変換は、前記ビットストリームから前記映像ブロックを復号することを含む、
請求項1~9のいずれか一項に記載の方法。
【請求項12】
プロセッサと命令が記憶された非一時的なメモリとを備え、映像データを処理する装置であって、前記プロセッサによる実行時に、前記命令が、前記プロセッサに、
予測モードに基づいて、映像の現在のピクチャの映像ブロックと前記映像のビットストリームとの間で変換させ、前記予測モードは、前記映像ブロックが少なくとも1つのサブブロックに分割され、前記少なくとも1つのサブブロックの動き情報は、前記現在のピクチャの近傍のピクチャ内において近傍の映像ブロックの動き情報に基づいて導出され、前記近傍の映像ブロックの位置は、デフォルトの動き情報に初期化されて設定された時間的な動き情報に基づいて導出されて、特定の隣接ブロックが利用可能であることに応答して、前記映像ブロックの左下隅に隣接する前記特定の隣接ブロックに関連する特定の動き情報に設定され、
前記予測モードにおいて、前記近傍の映像ブロックの前記動き情報の導出プロセスは、
前記近傍の映像ブロックが第1のコーディングモードでコーディングされているか否かについて第1の決定を行
い、前記第1のコーディングモードでは、再構成されたサンプルが代表的な色値のセットによって表され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含み、
前記第1の決定に基づいて、前記近傍の映像ブロックの動きベクトルの利用可能性と、前記近傍の映像ブロックの動きベクトルの値とについて第2の決定を行
い、前記第1のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定が、イントラコーディングモードまたは第2のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定と同一になるように実行され、前記第2のコーディングモードでは、予測サンプルが、ブロックベクトルにより決定される同一の復号されたスライスのサンプル値のブロックから導出される、
装置。
【請求項13】
プロセッサに以下を実行させる命令を記憶した非一時的なコンピュータ可読記憶媒体であって、
予測モードに基づいて、映像の現在のピクチャの映像ブロックと前記映像のビットストリームとの間で変換し、前記予測モードは、前記映像ブロックが少なくとも1つのサブブロックに分割され、前記少なくとも1つのサブブロックの動き情報は、前記現在のピクチャの近傍のピクチャ内において近傍の映像ブロックの動き情報に基づいて導出され、前記近傍の映像ブロックの位置は、デフォルトの動き情報に初期化されて設定された時間的な動き情報に基づいて導出されて、特定の隣接ブロックが利用可能であることに応答して、前記映像ブロックの左下隅に隣接する前記特定の隣接ブロックに関連する特定の動き情報に設定され、
前記予測モードにおいて、前記近傍の映像ブロックの前記動き情報の導出プロセスは、
前記近傍の映像ブロックが第1のコーディングモードでコーディングされているか否かについて第1の決定を行
い、前記第1のコーディングモードでは、再構成されたサンプルが代表的な色値のセットによって表され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含み、
前記第1の決定に基づいて、前記近傍の映像ブロックの動きベクトルの利用可能性と、前記近傍の映像ブロックの動きベクトルの値とについて第2の決定を行
い、前記第1のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定が、イントラコーディングモードまたは第2のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定と同一になるように実行され、前記第2のコーディングモードでは、予測サンプルが、ブロックベクトルにより決定される同一の復号されたスライスのサンプル値のブロックから導出される、
非一時的なコンピュータ可読記憶媒体。
【請求項14】
映像のビットストリームを記憶する方法であって、
予測モードに基づいて、映像の現在のピクチャの映像ブロックから前記映像の前記ビットストリームを生成し、前記予測モードは、前記映像ブロックが少なくとも1つのサブブロックに分割され、前記少なくとも1つのサブブロックの動き情報は、前記現在のピクチャの近傍のピクチャ内において近傍の映像ブロックの動き情報に基づいて導出され、前記近傍の映像ブロックの位置は、デフォルトの動き情報に初期化されて設定された時間的な動き情報に基づいて導出されて、特定の隣接ブロックが利用可能であることに応答して、前記映像ブロックの左下隅に隣接する前記特定の隣接ブロックに関連する特定の動き情報に設定され、
前記ビットストリームを非一時的なコンピュータ可読記憶媒体に格納し、
前記予測モードにおいて、前記近傍の映像ブロックの前記動き情報の導出プロセスは、
前記近傍の映像ブロックが第1のコーディングモードでコーディングされているか否かについて第1の決定を行
い、前記第1のコーディングモードでは、再構成されたサンプルが代表的な色値のセットによって表され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含み、
前記第1の決定に基づいて、前記近傍の映像ブロックの動きベクトルの利用可能性と、前記近傍の映像ブロックの動きベクトルの値とについて第2の決定を行
い、前記第1のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定が、イントラコーディングモードまたは第2のコーディングモードでコーディングされた前記近傍の映像ブロック
に対する前記第2の決定と同一になるように実行され、前記第2のコーディングモードでは、予測サンプルが、ブロックベクトルにより決定される同一の復号されたスライスのサンプル値のブロックから導出される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年9月11日出願の国際特許出願第PCT/CN2020/114761号の国内段階である日本特許出願第2022-516096号の分割出願であり、2019年9月13日出願の国際特許出願第PCT/CN2019/105825号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
本明細書は、映像および画像符号化、復号化技術に関する。
【背景技術】
【0003】
デジタル映像は、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
デジタル映像処理、具体的には、映像処理における同一位置に配置された動きベクトルに関するデバイス、システム、および方法が記載される。説明される方法は、既存のビデオ符号化標準(例えば、高効率ビデオ符号化(High Efficiency Video Coding、HEVC))および将来のビデオ符号化標準(例えば、Versatile Video Coding(VVC))又はコーデックの両方に適用することができる。
【0005】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックの同一位置に配置された映像ブロックがインター符号化モードまたは非インター符号化モードを使用して符号化されたかどうかについての第1の決定を行うことと、第1の決定に基づいて、同一位置に配置された映像ブロックの動きベクトルの可用性または同一位置に配置された映像ブロックに対する動きベクトルの導出モードについての第2の決定を行うことと、第2の決定に基づいて、映像ブロックと映像の符号化表現との変換を行うことと、を含む。
【0006】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと映像の符号化表現との変換のために、映像ブロックの同一位置に配置された映像ブロックの参照インデックスまたは参照リストに基づいて、1つ以上の同一位置に配置された動きベクトルを決定することと、この決定に基づいて変換を行うことと、を含む。
【0007】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することと、予測ブロックを使用して変換を行うこととであって、前記予測ブロックを導出することは、最終予測サンプルを導出すべく、2つの初期予測ブロックにそれぞれ属する2つの中間予測サンプルに重みを適用することと、最終予測サンプルのビット深度を変換すべく、最終予測サンプルに対して右シフト操作を行うことであって、前記右シフト操作は、pbSample>>(shift1+3)であり、pbSampleは最終予測サンプルを示し、shift1はMax(2,14-bitDepth)に等しく設定され、前記最終予測サンプルに基づいて前記予測ブロックを決定することと、を含む。
【0008】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定された現在のブロックに対する予測ブロックを導出することと、予測ブロックを使用して変換を行うこととであって、前記予測ブロックを導出することは、最終予測サンプルを導出するために、2つの初期予測ブロックにそれぞれ属する2つの中間予測サンプルに重みを適用することと、前記最終予測サンプルにオフセットを追加することであって、前記オフセットは1<<(shift1+2)であり、shift1は、Max(2,14-bitDepth)に等しく設定され、前記予測ブロックを前記最終予測サンプルに基づいて決定することと、を含む。
【0009】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと映像の符号化表現との変換のために、規則に従って、現在のブロックに対するマージモード動きベクトル予測子のための動きベクトル差を導出することと、この導出に基づいて変換を行うことと、を含み、規則は、動きベクトルをクリッピングするために使用される範囲と同じ範囲に動きベクトル差をクリッピングするかどうかを規定する。
【0010】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用され、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定された現在のブロックに対する予測ブロックを導出することであって、前記重みの少なくとも1つが重みテーブルに属しており、前記重みテーブルは、規則に従って編成されている、導出することと、前記予測ブロックを使用して前記変換を行うことと、を含み、前記規則は、前記重みテーブルのエントリが非単調に増加していることを規定する。
【0011】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用され、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定された現在のブロックに対する予測ブロックを導出することであって、前記重みの少なくとも1つが重みテーブルに属しており、前記重みテーブルは、複数の重みテーブルから選択される、導出することと、前記予測ブロックを使用して前記変換を行うことと、を含む。
【0012】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化レベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することと、予測ブロックを使用して変換を行うことと、を含み、予測ブロックを導出することは、中間予測サンプルを第1のビット深度に変換することと、最終予測サンプルを導出すべく、重みを中間予測サンプルに適用することと、最終予測サンプルを第2のビット深度に変換することと、を含む。
【0013】
さらに別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために第1の重みと第2の重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することであって、前記第1の重みと前記第2の重みの少なくとも1つの重みテーブルに属しており、前記重みテーブルは、規則に従って編成されている、導出することと、前記予測ブロックを使用して前記変換を行うことと、を含み、前記規則は、前記重みテーブルが非対称であることを規定する。
【0014】
さらに別の例示的な態様において、上述された方法は、処理装置を含む映像エンコーダによって実装されてもよい。
【0015】
さらに別の例示的な態様において、これらの方法は、処理装置実行可能命令の形式で実施されてもよく、コンピュータ可読プログラム媒体に記憶されてもよい。
【0016】
これらの、および他の態様は、本明細書でさらに説明される。
【図面の簡単な説明】
【0017】
【
図3】水平方向および垂直方向の横断走査の例を示す。
【
図4】時間的マージ候補のための動きベクトルのスケーリングの例を示す。
【
図6A】代替の時間的動きベクトル予測(ATMVP)により使用される空間的に近傍のブロックを例示する。
【
図6B】サブCU動きフィールドを導出する例を示す。
【
図7】動きベクトル差付きマージ(MMVD)モードのための検索点を例示する。
【
図8】映像処理方法の例を示すフローチャートである。
【
図9】映像処理方法の別の例を示すフローチャートである。
【
図10】映像処理方法のさらに別の例を示すフローチャートである。
【
図11】映像処理方法のさらに別の例を示すフローチャートである。
【
図12】映像処理方法のさらに別の例を示すフローチャートである。
【
図13】映像処理方法のさらに別の例を示すフローチャートである。
【
図14A】本明細書に記載されるビジュアルメディアの復号化またはビジュアルメディアの符号化技術を実装するためのハードウェアプラットフォームの一例を示すブロック図である。
【
図14B】本明細書に記載されるビジュアルメディアの復号化またはビジュアルメディアの符号化技術を実装するためのハードウェアプラットフォームの一例を示すブロック図である。
【
図15A】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す図である。
【
図15B】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す図である。
【
図15C】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す図である。
【
図15D】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す図である。
【
図15E】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す図である。
【発明を実施するための形態】
【0018】
本明細書は、伸張または復号化されたデジタル映像または画像の品質を向上させるために、画像または映像ビットストリームのデコーダによって使用できる様々な技術を提供する。簡潔にするために、本明細書では、用語「映像」は、一連のピクチャ(従来から映像と呼ばれる)および個々の画像の両方を含むように使用される。さらに、映像エンコーダは、さらなる符号化に使用される復号化されたフレームを再構成するために、符号化の処理中にこれらの技術を実装してもよい。
【0019】
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示された実施形態をその章にのみ限定するものではない。このように、ある章の実施形態は、他の章の実施形態と組み合わせることができる。
【0020】
1.発明の概要
本明細書は、映像符号化技術に関する。具体的には、本発明は、同一位置に配置された動きベクトルおよび他の符号化ツールに関する。HEVCのような既存の映像符号化規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像符号化規格または映像コーデックにも適用可能である。
【0021】
2.初期の協議
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像符号化規格は、時間予測+変換符号化が利用されるハイブリッド映像符号化構造に基づく。HEVCを超えた将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Model)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJVET(Joint Video Expert Team)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0022】
2.1 色空間およびクロマサブサンプリング
色空間は、カラーモデル(又はカラーシステム)としても知られ、色の範囲を数字のタプル(tuple)として簡単に記述する抽象的な数学モデルであり、典型的には3又は4つの値、又は色成分(例えばRGB)である。基本的には、色空間は座標系とサブ空間とを合成したものである。
【0023】
映像圧縮の場合、最も頻繁に使用される色空間は、YCbCrおよびRGBである。
【0024】
YCbCr、Y’CbCr、またはY Pb/Cb Pr/Crは、YCBCRまたはY’CBCRとも呼ばれ、映像およびデジタル写真システムのカラー画像でパイプラインの一部として使用される色空間のファミリーである。Y’は輝度成分であり、CBおよびCRは青色差および赤色差クロマ成分である。Y’(素数を有する)は、Yと区別される。Yは輝度であり、ガンマ補正されたRGB原色に基づいて光強度が非線形に符号化されることを意味する。
【0025】
クロマサブサンプリングは、人間の視覚システムが、輝度よりも色差の方が知覚が低いことを利用して、輝度情報よりもクロマ情報の方が解像度が低くなるように実装して画像を符号化する方法である。
【0026】
2.1.1 4:4:4
3つのY’CbCr成分の各々は、同じサンプルレートを有し、従って、クロマサブサンプリングは存在しない。この方式は、ハイエンドフィルムスキャナおよび映画のポストプロダクションに用いられることがある。
【0027】
2.1.2 4:2:2
2つのクロマ成分は、輝度のサンプルレートの半分でサンプリングされ、水平クロマ解像度は半分にされる。これにより、視覚的にほとんどまたは全く差がなく、非圧縮の映像信号の帯域幅を1/3に低減することができる。
【0028】
2.1.3 4:2:0
4:2:0では、水平サンプリングは4:1:1に比べて2倍になるが、このスキームではCbおよびCrチャネルを各1行おきのラインでのみサンプリングするので、垂直解像度は半分になる。従って、データレートは同じである。CbおよびCrはそれぞれ水平および垂直方向の両方に2倍ずつサブサンプリングされる。異なる水平および垂直位置を有する4:2:0スキームの3つの変形がある。
【0029】
● MPEG-2において、CbおよびCrは水平方向に共に並んで配置される。Cb、Crは垂直方向の画素間に位置する(格子間に位置する)。
【0030】
● JPEG/JFIFにおいて、H.261、およびMPEG-1、Cb、およびCrは、交互の輝度サンプルの中間の格子間に位置する。
【0031】
● 4:2:0 DVにおいて、CbおよびCrは、水平方向に共に並んで配置される。垂直方向では、CbおよびCrは、交互に並んでいる。
【0032】
2.2 典型的な映像コーデックの符号化フロー
図1は、3つのインループフィルタリングブロック、すなわち非ブロック化フィルタ(DF)、サンプル適応オフセット(SAO)およびALFを含むVVCのエンコーダブロック図の例を示す。予め定義されたフィルタを使用するDFとは異なり、SAOおよびALFは、現在のピクチャのオリジナルサンプルを利用し、それぞれ、オフセットを追加することにより、および、有限インパルス応答(FIR)フィルタを適用することにより、オフセットおよびフィルタ係数を信号通知する符号化側情報を用いて、元のサンプルと再構成サンプルとの間の平均二乗誤差を低減する。ALFは、各ピクチャの最後の処理ステージに位置し、前のステージで生成されたアーチファクトを捕捉し、修正しようとするツールと見なすことができる。
【0033】
2.3 67個のイントラ予測モードを有するイントラモード符号化
自然映像に表される任意のエッジ方向をキャプチャするために、指向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。追加の指向性モードは、
図2において赤い点線の矢印で示され、平面モードとDCモードは同じままである。これらのより密度の高い指向性イントラ予測モードは、すべてのブロックサイズ、および輝度およびクロマイントラ予測の両方に適用される。
【0034】
従来のアンギュラ・イントラ予測方向は、
図2に示すように、時計回り方向に45度~-135度まで規定される。VTM6において、いくつかの従来の角度イントラ予測モードは、非正方形のブロックのために、広角イントラ予測モードに適応的に置き換えられる。置換されたモードは、元の方法を使用して信号通知され、構文解析後、広角モードのインデックスに再マッピングされる。イントラ予測モードの総数は変化せず、すなわち、67であり、イントラモードの符号化は変化しない。
【0035】
前記HEVCにおいて、すべてのイントラ符号化されたブロックは正方形の形状を有し、その辺の各々の長さは2の累乗である。このように、DCモードを使用してイントラ予測子を生成するのに、除算演算を必要としない。VVCにおいて、ブロックは長方形であってもよく、一般的な場合、ブロックごとに除算演算を使用することが必要である。DC予測のための除算演算を回避するために、長辺のみを使用して非正方形のブロックの平均を計算する。
【0036】
2.4 インター予測
インター予測CUごとに、動きベクトル、参照ピクチャインデックス、および参照ピクチャリスト使用インデックスで構成される動きパラメータと、並びにインター予測サンプル生成に使用されるVVCの新しい符号化特徴に必要な追加情報である。動きパラメータは、明示的または暗示的に信号通知されてもよい。CUがスキップモードで符号化される場合、CUは1つのPUに関連付けられ、有意な残差係数、符号化動きベクトルデルタまたは参照ピクチャインデックスを有さない。マージモードが指定され、これにより、空間的および時間的候補、並びにVVCに導入された追加のスケジュールを含み、現在のCUのための動きパラメータを、近傍のCUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたCUに適用することができる。マージモードの代替案は、動きパラメータを明確に送信することであり、動きベクトル、各参照ピクチャリストおよび参照ピクチャリスト使用フラグに対応する参照ピクチャインデックス、並びに他の必要な情報が、CUごとに明確に信号通知される。
【0037】
2.5 イントラブロックコピー(IBC)
イントラブロックコピー(IBC)は、SCCのHEVC拡張に採用されているツールである。これにより、スクリーンコンテンツ材料の符号化効率が有意に向上することが知られている。IBCモードはブロックレベル符号化モードとして実装されるので、エンコーダにおいてブロックマッチング(BM)を行い、CUごとに最適なブロックベクトル(又は動きベクトル)を見出す。ここで、ブロックベクトルは、現在のブロックから、現在のピクチャの内部で既に再構成された参照ブロックへの変位を示すために使用される。IBC符号化CUの輝度ブロックベクトルは、整数精度である。クロマブロックベクトルは、整数精度で丸める。AMVRと組み合わせた場合、IBCモードは、1画素と4画素の動き間でベクトル精度を切り替えることができる。IBC符号化されたCUは、イントラ予測モード又はインター予測モード以外の第3の予測モードとして扱われる。IBCモードは、幅および高さの両方が64輝度サンプル以下のCUに適用可能である。
【0038】
エンコーダ側では、IBCのためにハッシュに基づく動き推定を行う。エンコーダは、16個の輝度サンプル以下の幅または高さを有するブロックに対してRDチェックを行う。非マージモードの場合、まず、ハッシュに基づく検索を使用してブロックベクトル検索を行う。ハッシュ検索が有効な候補を返さない場合、局所検索に基づくブロックマッチングを行う。
【0039】
ハッシュに基づく検索において、現在のブロックと参照ブロックとのハッシュキーマッチング(32ビットCRC)を、許容されるすべてのブロックサイズに拡大する。現在のピクチャにおける各位置でのハッシュキーの計算は、4×4個のサブブロックに基づく。現在のブロックのサイズがより大きい場合、すべての4×4個のサブブロックにおけるすべてのハッシュキーが、対応する参照位置のハッシュキーに合致する場合、ハッシュキーは参照ブロックのそれに合致すると決定される。複数の参照ブロックのハッシュキーが現在のブロックのハッシュキーに合致すると分かった場合、合致した各参照ブロックのブロックベクトルコストを計算し、最小限のコストを有するものを選択する。
【0040】
ブロックマッチング検索において、検索範囲は前のCTUおよび現在のCTUの両方をカバーするように設定される。
【0041】
CUレベルにおいて、IBCモードはフラグで信号通知され、IBC AMVPモードまたはIBCスキップ/マージモードとして以下のように信号通知され得る。
【0042】
- IBCスキップ/マージモード:マージ候補インデックスを使用して、近傍の候補IBC符号化ブロック候補からのリストにおいて、どのブロックベクトルを使用して現在のブロックを予測するかを示す。マージリストは、空間候補、HMVP候補、およびペアワイズ候補で構成される。
【0043】
- IBC AMVPモード:ブロックベクトル差を動きベクトル差と同様に符号化する。ブロックベクトル予測方法は、2つの候補を予測子として使用し、1つは左の近傍からのものであり、1つは上の近傍のものである(IBC符号化されている場合)。いずれかの近傍が利用可能でない場合、デフォルトのブロックベクトルが予測子として使用される。ブロックベクトル予測子インデックスを示すように、フラグが信号通知される。
【0044】
2.6 パレットモード
パレットモード信号通知の場合、パレットモードは符号化ユニットに対する予測モードとして符号化され、すなわち、符号化ユニットに対する予測モードは、MODE_INTRA,MODE_INTER,MODE_IBC,MODE_PLTであってもよい。パレットモードが利用される場合、CUにおける画素値は、代表的な色値の小集合によって表される。前記集合をパレットと呼ぶ。パレットの色に近い値を有する画素の場合、パレットインデックスが信号通知される。パレットの外側の値を有する画素に対して、この画素はエスケープシンボルで表され、量子化された画素値は直接信号通知される。
【0045】
パレット符号化ブロックを復号化するために、デコーダは、パレットの色およびインデックスを復号化する必要がある。パレットの色はパレットテーブルで記述され、パレットテーブル符号化ツールで符号化される。現在のCUにエスケープシンボルが存在するかどうかを示すべく、CUごとにエスケープフラグが信号通知される。エスケープシンボルが存在する場合、パレットテーブルを1つだけ増やし、最後のインデックスをエスケープモードに割り当てる。CUにおけるすべての画素のパレットインデックスは、パレットインデックスマップを形成し、パレットインデックスマップ符号化ツールによって符号化される。
【0046】
パレットテーブルを符号化するために、パレット予測子が維持される。予測子は、各スライスの最初に初期化され、ここで予測子は0にリセットされる。パレットプレディクタのエントリごとに、再利用フラグが通知され、現在のパレットの一部であるかどうかが示されます。再利用フラグは、ゼロのランレングス符号化を使用して送信される。この後、新しいパレットエントリの数は、次数0の指数ゴロム符号を使用して通知されます。最後に、新しいパレットエントリのコンポーネント値が通知されます。現在のCUを符号化した後、現在のパレットを使用してパレット予測子を更新し、許容される最大サイズに達する(パレットスタッフィング)まで、現在のパレットにおいて再使用されていない前のパレット予測子からのエントリを新しいパレット予測子の末端に追加する。
【0047】
パレットインデックスマップを符号化するために、インデックスは、
図3に示すように、横方向横断走査および縦方向横断走査を使用して符号化される。palette_transpose_flagを使用して、ビットストリームにおける走査順序を明確に信号通知する。
【0048】
パレットインデックスは、2つのメインパレットサンプルモード、すなわち‘INDEX’および‘COPY_ABOVE’を使用して符号化される。このモードは、水平走査が使用される場合に最上行を除いたフラグを使用し、垂直走査が使用される場合に第1の列を除いたフラグを使用し、または前のモードが‘COPY_ABOVE’であった場合のフラグを使用して信号通知される。‘COPY_ABOVE’モードでは、上の行のサンプルのパレットインデックスをコピーする。‘INDEX’モードにおいて、パレットインデックスは明確に信号通知される。‘INDEX’モードおよび‘COPY_ABOVE’モードの両方について、同じモードを使用して符号化される画素の数を指定する実行値が信号通知される。
【0049】
インデックスマップの符号化順序は、以下の通りである。まず、CUのためのインデックス値の数が信号通知される。これに続いて、トランケーテッドバイナリ符号化(Truncated Binary Coding)を使用して、CU全体の実際のインデックス値を信号通知する。バイパスモードでは、インデックスの数およびインデックス値の両方が符号化される。これにより、インデックス関連バイパスビンがグループ化される。次に、パレットモード(INDEXまたはCOPY_ABOVE)および実行がインターリーブ方式で信号通知される。最後に、CU全体のためのエスケープサンプルに対応する成分エスケープ値をグループ化し、バイパスモードで符号化する。インデックス値を信号通知した後、追加の構文要素last_run_type_flagを信号通知する。この構文要素は、インデックスの数と連動して、ブロックにおける最後の実行に対応する実行値を信号通知する必要性をなくす。
【0050】
VTM5.0において、LumaおよびChromaのための符号化ユニットを分離するIスライスのために、デュアルツリーが有効化される。そこで、本提案では、Luma(Y成分)とChroma(Cb、Cr成分)とに対して別々にパレットが適用される。デュアルツリーが無効になっている場合、HEVCパレットと同様に、Y,Cb,Cr成分に対してパレットが共同で適用される。
【0051】
2.7 VVCにおける時間的動きベクトル予測(TMVP)
この時間的マージ候補を導出するにあたり、同一位置に配置された参照画像に属する同一位置に配置されたCUに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、同一位置のCUの導出に用いられる参照ピクチャリストが明確に信号通知される。
図4に点線で示すように、時間的マージ候補のスケーリングされた動きベクトルが得られる。これは、POC距離tbおよびPOC距離tdを利用して、同一位置のCUの動きベクトルからスケーリングしたものである。tbは、現在のピクチャの参照ピクチャと現在のピクチャとのPOC距離として規定され、tdは、同一位置のPUの参照ピクチャと同一位置のピクチャとのPOC距離として規定する。時間的マージ候補の参照ピクチャインデックスをゼロに等しく設定する。
【0052】
図5に示すように、候補C
0と候補C
1との間で時間的候補の位置を選択する。位置C
0のCUが利用可能でない場合、イントラ符号化されている場合、または現在のCTU行の外側にある場合、位置C
1が使用される。さもなければ、位置C
0が時間的マージ候補の導出に使用される。
【0053】
2.8 サブブロックに基づいたVVCにおける時間的動きベクトル予測(SbTMVP)
VTMは、サブブロックに基づいたVVCにおける時間的動きベクトル予測(SbTMVP)方法をサポートする。SbTMVPは、HEVCにおける時間的動きベクトル予測(TMVP)と同様に、同一位置に配置されたピクチャにおける動きフィールドを使用して、現在のピクチャにおけるCUの動きベクトル予測およびマージモードを改善する。TMVPで使用されるのと同じ同一位置に配置されたピクチャがSbTVMPに使用される。SbTMVPは、以下の2つの主な態様でTMVPとは異なっている。
【0054】
1.TMVPはCUレベルでの動きを予測するが、SbTMVPはサブCUレベルでの動きを予測する。
【0055】
2.TMVPは、同一位置に配置されたピクチャ内の同一位置に配置されたブロック(同一位置に配置されたブロックは、現在のCUに対して右下または中央のブロックである)から時間的動きベクトルをフェッチするが、SbTMVPは、同一位置に配置されたピクチャから時間的な動き情報をフェッチする前に、動きシフトを適用し、動きシフトは、現在のCUの空間的に近傍のブロックの1つのうちの動きベクトルから得られる。
【0056】
SbTVMP処理を
図6に示す。SbTMVPは、現在のCU内のサブCUの動きベクトルを2つのステップで予測する。第1のステップにおいて、
図6Aにおける空間的近傍A1を検査する。A1が、同一位置に配置されたピクチャをその参照ピクチャとして使用する動きベクトルを有する場合、この動きベクトルを適用される動きシフトとして選択する。そのような動きが特定されない場合、動きシフトは(0,0)に設定される。
【0057】
第2のステップにおいて、ステップ1において特定された動きシフトを適用し(即ち、現在のブロックの座標に加算し)、
図6Bに示すように、同一位置に配置されたピクチャからサブCUレベルの動き情報(動きベクトルおよび参照インデックス)を得る。例えば、
図6Bにおいて、動きシフトがブロックA1の動きに設定されているとする。そして、サブCUごとに、同一位置に配置されたピクチャのその対応するブロックの動き情報(中心サンプルを覆う最小の動きグリッド)を使用して、サブCUの動き情報を導出する。同一位置に配置されたサブCUの動き情報を特定した後、HEVCのTMVP処理と同様に、現在のサブCUの動きベクトルおよび参照インデックスに変換され、時間的動きスケーリングを適用して、時間的動きベクトルの参照ピクチャを現在のCUの参照ピクチャに位置合わせする。
【0058】
VTM6において、SbTVMP候補およびアフィンマージ候補の両方を含む、結合されたサブブロックに基づくマージリストは、サブブロックに基づくマージモードのシグナリングのために使用される。SbTVMPモードは、シーケンスパラメータセット(SPS)フラグによって有効化/無効化される。SbTMVPモードが有効化されているなら、SbTMVP予測子をサブブロックに基づくマージ候補のリストの第1エントリとして追加し、続いてアフィンマージ候補を追加する。SPSにおいて、サブブロックに基づくマージリストのサイズが通知され、VTM6において、サブブロックに基づくマージリストの最大許容サイズは5である。
【0059】
SbTMVPで使用されるサブCUのサイズは8×8に固定され、アフィンマージモードの場合と同様に、SbTMVPモードは、幅と高さの両方が8以上のCUにのみ適用可能である。
【0060】
追加のSbTMVPマージ候補の符号化ロジックは、他のマージ候補と同じであり、即ち、PスライスまたはBスライスにおけるCUごとに、追加のRDチェックを行い、SbTMVP候補を使用するかどうかを決定する。
【0061】
【0062】
8.5.2.11 時間的輝度動きベクトル予測のための導出処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
- Xが0または1である参照インデックスrefIdxLX。この処理の出力は以下の通りである。
- 1/16の分数サンプル精度での動きベクトル予測mvLXCol。
- 可用性フラグavailableFlagLXCol。
変数currCbは、輝度位置(xCb,yCb)における現在の輝度符号化ブロックを指定する。
変数mvLXColおよびavailableFlagLXColは、以下のように導出される。
- slice_temporal_mvp_enabled_flagが0である、または(cbWidth*cbHeight)が32以下である場合、mvLXColの両方のモジュールは0に設定され、availableFlagLXColは0に設定される。
- さもなければ(slice_temporal_mvp_enabled_flagが1である)、以下の順序付けられたステップが適用される。
1.右下の同一位置に配置された動きベクトル、並びに下および右の境界サンプル位置は、以下のように導出される。
xColBr=xCb+cbWidth (8-421)
yColBr=yCb+cbHeight (8-422)
rightBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos:pic_width_in_luma_samples-1 (8-423)
botBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicBotBoundaryPos:pic_height_in_luma_samples-1 (8-424)
- yCb>>CtbLog2SizeYがyColBr>>>CtbLog2SizeYと等しく、yColBrがbotBoundaryPos以下であり、xColBrがrightBoundaryPos以下であるなら、以下が適用される。
- 変数colCbは、ColPicによって指定された同一位置に配置されたピクチャ内で、((xColBr>>3)<<3,(yColBr>>3)<<3)によって与えられる変更された位置をカバーする輝度符号化ブロックを指定する。
- 輝度位置(xColCb,yColCb)は、ColPicによって同一位置に配置されたピクチャの左上の輝度サンプルに対して、colCbによって規定された同一位置に配置された輝度符号化ブロックの左上のサンプルと等しく設定される。
- 0に等しく設定したcurrCb,colCb,(xColCb,yColCb),refIdxLXおよびsbFlagを入力として、項目8.5.2.12で規定される同一位置に配置された動きベクトルの導出プロセスを呼び出し、その出力をmvLXColおよびavailableFlagLXColに割り当てる。
- さもなくば、mvLXColの両方のモジュールを0に等しく設定し、availableFlagLXColを0に等しく設定する。
2.availableFlagLXColが0に等しい場合、中心同一位置に配置された動きベクトルは、以下のように導出される。
xColCtr=xCb+(cbWidth>>1) (8-425)
yColCtr=yCb+(cbHeight>>1) (8-426)
- 変数colCbは、ColPicによって指定された同一位置に配置されたピクチャ内で、((xColCtr>>3)<<3,(yColCtr>>3)<<3)によって与えられる変更された位置をカバーする輝度符号化ブロックを指定する。
- 輝度位置(xColCb,yColCb)は、ColPicによって同一位置に配置されたピクチャの左上の輝度サンプルに対して、colCbによって規定された同一位置に配置された輝度符号化ブロックの左上のサンプルと等しく設定される。
- 0に等しく設定したcurrCb,colCb,(xColCb,yColCb),refIdxLXおよびsbFlagを入力として、項目8.5.2.12で規定される同一位置に配置された動きベクトルの導出プロセスを呼び出し、その出力をmvLXColおよびavailableFlagLXColに割り当てる。
【0063】
8.5.2.12 同一位置に配置された動きベクトルの導出処理
この処理への入力は以下の通りである。
- 現在の符号化ブロックを規定する変数currCb、
- ColPicが規定した同一位置に配置されたピクチャ内の同一位置に配置された符号化ブロックを規定する変数colCb、
- 輝度位置(xColCb,yColCb)は、ColPicによって規定された同一位置に配置されたピクチャの左上の輝度サンプルに対して、colCbによって規定された同一位置に配置された輝度符号化ブロックの左上のサンプルを規定する。
- 参照インデックスrefIdxLXは、ここで、Xが0または1である。
- サブブロック時間的マージ候補sbFlagを示すフラグ。
この処理の出力は以下の通りである。
- 1/16の分数サンプル精度での動きベクトル予測mvLXCol、
- 可用性フラグavailableFlagLXCol。
変数currPicは、現在のピクチャを指定する。
アレイpredFlagL1Co0[x][y]、mlvL0Col[x][y]、refIdxL0Col[x][y]は、それぞれ、ColPicで指定された同一位置に配置されたピクチャのPredFlagL0[x][y],MvDmvrL0[x][y]、RefIdxL0[x][y]に等しく設定され、アレイpredFlagL1Col[x][y],mvL1Col[x][y],およびrefIdxL1Col[x][y]は、それぞれColPicで指定された同一位置に配置されたピクチャのPredFlagL1[x][y],MvDmvrL1[x][y]およびRefIdxL1[x][y]に等しく設定される。
変数mvLXColおよび変数availableFlagLXColは、以下のように導出される。
【0064】
【0065】
2.8.1 インターブロックにcolCbを符号化する場合の同一位置に配置された動きベクトルの導出
- sbFlagが0である場合、availableFlagLXColは1に等しく設定され、以下が適用される。
- predFlagL0Col[xColCb][yColCb]が0,mvCol,refIdxCol、およびlistColのそれぞれが、mvL0Col[xColCb][yColCb]、refIdxL0Col[xColCb][yColCb]、およびL0にそれぞれ等しく設定される。
- さもなければ、predFlagL0Col[xColCb][yColCb]が1に等しく、predFlagL1Col[xColCb][yColCb]が0、mvCol,refxIdColおよびlistColのそれぞれが、mvL0Col[xColCb][yColCb],refIdxL0Col[xColCb][yColCb]およびL0にそれぞれ等しく設定される。
- さもなければ(predFlagL0Col[xColCb][yColCb]が1に等しく、かつ、predFlagL1Col[xColCb][yColCb]が1である場合)、以下の割り当てを行う。
- NoBackwardPredFlagが1,mvCol,refIdxCol、およびlistColのそれぞれが、mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]、およびLXにそれぞれ等しく設定される。
- さもなければ、mvCol、refIdxCol、listColのそれぞれが、mvLNCol[xColCb][yColCb]、refIdxLNCol[xColCb][yColCb]、およびLNにそれぞれ等しく設定される。Nはcollocated_from_l0_flagの値とする。
- さもなければ(sbFlagが1である)、以下が適用される。
- PredFlagLXCol[xColCb][yColCb]が1の場合、mvCol,refxIdCol、およびlistColのそれぞれは、mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]、およびLXにそれぞれ等しく設定され、availableFlagLXColは1に等しく設定される。
- さもなければ(PredFlagLXCol[xColCb][yColCb]が0である場合)は、以下のように適用される。
- NoBackwardPredFlagが1に等しく、かつ、PredFlagLYCol[xColCb][yColCb]が1に等しい場合、mvCol、refxIdCol、listColのそれぞれは、mvLYCol[xColCb][yColCb]、refIdxLYCol[xColCb][yColCb]、およびLYにそれぞれ設定される。Yは、!Xに等しく、Xがこの処理を呼び出すためのXの値であり、availableFlagLXColは、1に等しく設定される。
- さもなければ、mvLXColの両方のモジュールを0に等しく設定し、availableFlagLXColを0に等しく設定する。
- availableFlagLXColがTRUEである場合、mvLXColおよびavailableFlagLXColは、以下のように導出される。
- LongTermRefPic(currPic,currCb,refIdxLX,LX)が、LongTermRefPic(ColPic,colCb,refIdxCol,listCol)に等しくない場合、mvLXColのモジュールは共に0に設定され、かつ、availableFlagLXColは0に等しく設定される。
- さもなければ、変数availableFlagLXColは1に等しく設定され、refPicList[listCol][refIdxCol]は、ColPicによって指定された同一位置に配置されたピクチャにおける符号化ブロックcolCbを含むスライスの参照ピクチャリストlistColにおける参照インデックスrefIdxColを有するピクチャに設定し、以下を適用する。
colPocDiff=DiffPicOrderCnt(ColPic,refPicList[listCol][refIdxCol]) (8-427)
currPocDiff=DiffPicOrderCnt(currPic,RefPicList[X][refIdxLX]) (8-428)
-mvColを入力とし、修正されたmvColを出力として、8.5.2.15項で規定されるような同一位置に配置された動きベクトルの時間的動きバッファ圧縮処理が呼び出される。
-RefPicList[X][refIdxLX]が長期参照ピクチャである場合、またはcolPocDiffがcurrPocDiffに等しい場合、mvLXColは、以下のように導出される。
mvLXCol=mvCol (8ー429)
-さもなければ、mvLXColは、動きベクトルmvColのスケーリングされたバージョンとして、以下のように導出される。
tx=(16384+(Abs(td)>>1))/td (8-430)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (8-431)
mvLXCol=Clip3(-131072,131071,(distScaleFactor*mvCol+128-(distScaleFactor*mvCol>=0))>>8)) (8-432)
ここで、tdおよびtbは、以下のように導出される。
td=Clip3(-128,127,colPocDiff) (8-433)
tb=Clip3(-128,127,currPocDiff) (8-434)
【0066】
2.9 CUレベル重み付き双方向予測(BCW)
HEVCにおいて、2つの異なる参照ピクチャから取得した2つの予測信号を平均すること、および/または2つの異なる動きベクトルを使用することによって双予測信号を生成する。VTM6において、2つの予測信号の重み付け平均を可能にするために、双予測モードは単純平均を超えて拡張される。
【0067】
【0068】
重み付け平均双予測においては、5個の重みw∈{-2,3,4,5,10}の重み付けが許容される。双予測CUごとに、重みwは、2つの方法のうちの1つで決定される。1)非マージCUの場合、動きベクトル差の後に重みインデックスを信号通知する。2)マージCUの場合、マージ候補インデックスに基づいて、近傍のブロックから重みインデックスを推測する。重み付け平均双予測は、256個以上の輝度サンプルを有するCUにのみ適用される(すなわち、CU幅×CU高さが256以上である)。低遅延ピクチャの場合、5個の重みすべてが使用される。非低遅延ピクチャの場合、3個の重み(w∈{3,4,5})のみが使用される。
【0069】
- エンコーダにおいて、高速検索アルゴリズムを適用して、エンコーダの複雑性を大幅に増大させることなく、重みインデックスを見出す。これらのアルゴリズムをまとめると、以下のようになる。さらなる詳細については、VTMソフトウェアおよびJVET-L0646を参照されたい。AMVRと結合された場合、現在のピクチャが低遅延ピクチャである場合、1画素および4画素の動きベクトル精度についてのみ、不等な重みを条件付きでチェックする。
【0070】
- アフィンと結合された場合、アフィンモードが現在の最良のモードとして選択された場合にのみ、アフィンMEが不等な重みで行われる。
【0071】
- 双予測における2つの参照ピクチャが同じである場合、不等な重みが条件付きでのみチェックされる。
【0072】
- 現在のピクチャとその参照ピクチャとのPOC距離、符号化QP、および時間的レベルに基づいて、一定の条件が満たされる場合、不等な重みを検索しない。
【0073】
BCW重みインデックスは、1つのコンテキスト符号化ビンと、それに続くバイパス符号化ビンとを使用して符号化される。第1のコンテキスト符号化ビンは、等しい重みが使用されるかどうかを示し、不等な重みが使用される場合、どの不等な重みが使用されるかを示すために、バイパス符号化を使用して追加のビンが信号通知される。
【0074】
重み付け予測(WP:Weighted Prediction)は、H.264/AVCおよびHEVC規格にサポートされる符号化ツールであり、映像コンテンツをフェーディングで効率的に符号化する。VVC規格には、WPへの対応も加えた。WPは、参照ピクチャリストL0およびL1の各々における参照ピクチャごとに重みパラメータ(重みおよびオフセット)を信号通知することを可能にする。次に、動き補償の間、対応する参照ピクチャの重みおよびオフセットを適用する。WPおよびBCWは、異なるタイプの映像コンテンツ用に設計される。VVCデコーダの設計を複雑にする、WPとBCWとの相互作用を回避するために、CUがWPを使用する場合、BCW重みインデックスは信号通知されず、wが4であると推論される(すなわち、等分した重みが適用される)。マージCUの場合、重みインデックスは、マージ候補インデックスに基づいて、近傍のブロックから推論される。これは、通常マージモードおよび継承アフィンマージモードの両方に適用することができる。構築されたアフィンマージモードについて、アフィン動き情報は、3ブロックまでの動き情報に基づいて構築される。構築されたアフィンマージモードを使用して、CUのBCWインデックスを導出するために、以下の処理を使用する。
【0075】
1.BCWインデックス{0,1,2,3,4}の範囲を、3つのグループ{0}、{1,2,3}、{4}に分ける。すべての制御点のBCWインデックスが同じグループからのものである場合、ステップ2におけるようにBCWインデックスを導出し、さもなければ、BCWインデックスを2に設定する。
【0076】
少なくとも2つの制御点が同じBCWインデックスを有するなら、このBCWインデックス値を候補に割り当て、さもなければ、現在の構築された候補のBCWインデックスを2に設定する。
【0077】
2.10 MVDとのマージモード(MMVD)
マージモードに加え、暗黙的に導出された動き情報を現在のCUの予測サンプル生成に直接使用する場合、VVCに動きベクトル差を有するマージモード(MMVD)を導入する。スキップフラグおよびマージフラグを送信した直後に、MMVDフラグを信号通知して、MMVDモードをCUに使用するかどうかを指定する。
【0078】
MMVDにおいて、マージ候補が選択された後、信号通知されたMVD情報によってさらに微調整される。このさらなる情報は、マージ候補フラグと、動きの大きさを指定するためのインデックスと、動き方向の指示のためのインデックスとを含む。MMVDモードにおいて、マージリストにおける最初の2つの候補のうちの1つを選択し、MVベースとして使用する。マージ候補フラグは、どちらを使用するかを指定するように信号通知される。
【0079】
距離インデックスは、動きの大きさの情報を指定して、予め定義された開始点からのオフセットを示す。
図7に示すように、開始MVの水平成分又は垂直成分のいずれかにオフセットを加える。距離インデックスと予め定義されたオフセットとの関係を、表1に示す。
【0080】
【0081】
方向インデックスは、開始点に対するMVDの方向を表す。方向インデックスは、表2に示すように、4つの方向を表すことができる。なお、MVD符号の意味は、開始MVの情報に従って異なってもよい。開始MVが未予測MV又は双予測MVであり、両方のリストが現在のピクチャの同じ側を指している(即ち、2つの参照符号のPOCが両方とも現在のピクチャのPOCよりも大きい、又は両方とも現在のピクチャのPOCより小さい)場合、表2における符号は、開始MVに加えられるMVオフセットの符号を指定する。開始MVが双予測MVであり、2つのMVが現在のピクチャの異なる側を指している(即ち、1つの参照のPOCが現在のピクチャのPOCよりも大きく、他の参照のPOCが現在のピクチャのPOCより小さい)場合、表2における符号は、開始MVのlist0 MV成分に加えられるMVオフセットの符号を規定し、list1 MVの符号は逆の値を有する。
【0082】
【0083】
2.11 代替輝度1/2画素補間フィルタ
JVET-N0309において、代替の1/2画素補間フィルタが提案されている。
【0084】
1/2画素輝度補間フィルタの切り替えは、動きベクトルの精度に基づいて行われる。既存の1/4画素、フル画素、および4画素のAMVRモードに加え、新しい1/2画素精度AMVRモードが導入される。1/2画素度の動きベクトルの精度の場合にのみ、代替の1/2画素度の輝度補間フィルタを選択することができる。
【0085】
2.11.1 1/2画素AMVRモード
非アフィン非マージインター符号化CUのための追加のAMVRモードが提案され、このモードは、1/2画素精度で動きベクトル差を信号通知することを可能にする。現在のVVC草案の既存のAMVRスキームは、以下のようにして簡単に拡張される。構文要素amvr_flagの直後に、amvr_flag==1の場合、新しいコンテキストモデル化されたバイナリ構文要素hpel_amvr_flagがあり、これは、hpel_amvr_flag==1の場合、新しい1/2画素AMVRモードの使用を示す。さもなければ、すなわちhpel_amvr_flag==0である場合、現在のVVC草案におけるように、フル画素と4画素AMVRモードとの間の選択は、構文要素amvr_precision_flagによって示される。
【0086】
2.11.2 代替輝度1/2画素補間フィルタ
1/2画素動きベクトル精度を使用する非アフィン非マージインター符号化CU(すなわち、1/2画素AMVRモード)の場合、新しい構文要素if_idxの値に基づいて、HEVC/VVC1/2画素輝度補間フィルタと1つ以上の代替1/2画素補間とを切り替える。構文要素if_idxは、1/2画素AMVRモードの場合にのみ信号通知される。空間的マージ候補を用いたスキップ/マージモードの場合、構文要素if_idxの値は近傍のブロックから継承される。
【0087】
2.11.2.1 テスト1:1つの代替の1/2画素補間フィルタ
このテストケースにおいて、通常のHEVC/VVC1/2画素補間フィルタの代替えとして、1つの6タップ補間フィルタが存在する。次の表は、構文要素if_idxの値と選択された1/2画素輝度補間フィルタとの間のマッピングを示す。
【0088】
【0089】
2.11.2.1 テスト2:2つの代替的な1/2画素補間フィルタ
このテストケースでは、通常のHEVC/VVC1/2画素補間フィルタの代替として、2つの8タップ補間フィルタがある。次の表は、構文要素if_idxの値と選択された1/2画素輝度補間フィルタとの間のマッピングを示す。
【0090】
【0091】
【化3】
現在のCUが1/2画素、1画素または4画素MV精度を使用しているかどうかを示すように信号通知される。符号化されるべきビンが2つある。
【0092】
【化4】
デフォルトの1/2画素補間フィルタを使用するか代替の1/2画素補間フィルタを使用するかを示すように信号通知される。2つの代替の1/2画素補間フィルタを使用する場合、2つの符号化対象のビンがある。
【0093】
3.既存の実装形態の欠点
インター予測における同一位置に配置された動きベクトルを導出する現在の設計は、以下の問題を有する。
【0094】
1. TMVPおよびSbTMVPにおける同一位置に配置された動きベクトルの導出は、同一位置に配置された符号化ブロックの予測モードに依存する。現在のVVCにおいて、同一位置に配置された符号化ブロックがイントラ予測モード、またはIBC予測モードで符号化される場合、同一位置に配置された動きベクトルは、ゼロ動きベクトルに設定される。従って、同一位置に配置されたブロックがパレット符号化されても、パレット予測モードに関連付けられた動きベクトルがないので、やはり未定義の同一位置に配置された動きベクトルを返してもよい。
【0095】
2. 重み付けサンプル予測の導出は、BCWにおいて効率的でない場合がある。
【0096】
3. 現在のVVCにおいて、MVは18ビットにクリッピングされる。しかしながら、マージ動きベクトル差を16ビットにクリッピングされると、精度が低下するおそれがある。
【0097】
4. 信号通知されたcu_skip_flagは、オーバーヘッドビットを引き起こす可能性がある。現在のVVCにおいて、IBCの符号化ユニットに対する最大幅および最大高さは64である。Iスライスにおいて、幅または高さのいずれかが64よりも大きいブロックに対して、cu_skip_flagを送信する必要がない。
【0098】
5. 代替の輝度1/2画素補間フィルタフラグは、CU/PU/blockが1/2画素または粗いMV成分を有さない場合であっても、TRUEに等しく設定されてもよい。
【0099】
4.映像符号化における同一位置に配置された動きベクトルの例示的な方法
以下の詳細な発明は、一般的な概念を説明するための例であると考えられるべきである。これらの発明は狭い意味で解釈されるべきではない。さらに、これらの発明は、任意の方法で組み合わせることができる。
【0100】
【0101】
1.同一位置に配置された符号化ブロックがイントラ符号化されているかIBC符号化されているかをチェックする代わりに、同一位置に配置された動きベクトルをどのように導出するか、および/または同一位置に配置された動きベクトルの可用性は、同一位置に配置された符号化ブロックの予測モードがインター符号化されているか否かに依存してもよい。この場合、ブロックごとに4つの予測モードを記憶する必要がなく、ブロックがインターであるか非インターであるかを知らせるために1ビットだけが必要である。
a.一例において、同一位置に配置された符号化ブロックがパレット予測モードで符号化される場合、同一位置に配置された動きベクトルおよび/または同一位置に配置された動きベクトルの可用性をどのように導出するかは、同一位置に配置された符号化ブロックがイントラ/IBC予測モードで符号化される場合と同様であってもよい。
b.一例において、同一位置に配置された符号化ブロックが非インター予測モード(例えば、イントラ、パレット、またはIBC)で符号化される場合、同一位置に配置された動きベクトルは、利用不可能に設定されてもよい。
c.代替的に、同一位置に配置された動きベクトルを利用可能としてマーク付けしてもよく、同一位置に配置された符号化ブロックが非インター予測モード(例えば、イントラ、パレット、またはIBC)で符号化される場合、デフォルトの動きベクトルを同一位置に配置された動きベクトルとして割り当ててもよい。
d.代替的に、同一位置に配置された符号化ブロックが非インター予測モードで符号化される場合、他のブロック(例えば、同一位置に配置された符号化ブロックの1つの近傍のインター符号化ブロック)をチェックしてもよい。
i.一例において、近傍のブロックは、同一位置に配置された符号化ブロックの左/右/上/下に位置する、最も近いインター符号化ブロックであってもよい。
2.同一位置に配置された動きベクトルの決定は、同一位置に配置された符号化ブロックの参照リストおよび/または参照インデックスに依存してもよい。
a.一例において、同一位置に配置された符号化ブロックの参照リストX(例えば、L1)の参照インデックスが特定の値(例えば、0)に等しくない場合、同一位置に配置された動きベクトルを導出してもよい(例えば、2.8.1に記載されるような従来技術を使用して)。
b.一例において、同一位置に配置された符号化ブロックの参照リストX(例えば、L1)の参照インデックスが特定の値(例えば、0)に等しい場合、同一位置に配置された動きベクトルの導出を呼び出してもよい。
c.さらに、代替的に、同一位置に配置された符号化ブロックが非インター予測モード(IBCを含む、または含まない)で符号化されている場合、またはその参照ピクチャが所定の条件を満たさない場合、同一位置に配置されたMVは利用不可能に設定される。
i.代替的に、同一位置に配置されたMVは、デフォルト値に設定される。
【0102】
【0103】
3.BCW符号化モードにおいて適用される重みテーブルは、非対称であってもよい。
a.一例において、テーブルのエントリとしての重みWについて、(1-W)は、テーブルエントリでなくてもよく、Wは、[a,b]の範囲内にあり、(a+b)は1に等しい。
b.一例において、テーブルのエントリとしての重みWについて、最終予測ブロックが(W0*P0+W1*P1)>>Nによって生成され、W0およびW1は、それぞれ2つの予測ブロックP0およびP1に適用される2つの重みであり、(W0+W1)が(1<<N)に等しいと仮定すると、(2N-W)は、テーブルエントリでなくてもよい。
4.BCW符号化モードで適用される重みテーブルにおける重みは、単調に増加するような順になっていなくてもよい。
a.一例において、テーブルの(i+1)番目のエントリは、テーブルのi番目のエントリよりも小さい値を有してもよい。
5.一例において、BCWの重み付けサンプルの予想処理は、異なる重み付けルックアップテーブルに依存してもよい。
a.一例において、{4,5,3,10,2}/{4,3,5,10,2}/{4,5,3,10,1}/{4,3,5,10,1}/{4,5,3,10,-1}を、BCWの重みルックアップテーブルとして使用してもよい。
6.一例において、BCWの重み付けサンプル予測処理において、各予測方向の中間予測サンプルを、第1のビット深度に変換することができ(必要に応じて、例えば、第1のビット深度が中間予測サンプルのビット深度と等しくない場合)、次に、重み付け予測を適用し、最終予測サンプルを第2のビット深度に変換することができる。
a.一例において、第2のビット深度は、現在の色成分の入力ビット深度と同じである。
b.一例において、異なるビット深度間の変換において、右シフト(例えば、より高いビット深度からより低いビット深度へのサンプルの変換)または左シフト(例えば、より低いビット深度からより高いビット深度へのサンプルの変換)が適用されてもよい。
i.さらに、代替的に、右シフトまたは左シフトの前にオフセットを加えてもよい。
c.一例において、第1のビット深度は、中間予測サンプルのビット深度と同じである。BCWの重み付けサンプル予測は、pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)>>(shift1+3))として導出されてもよく、ここで、shift1は、Max(2,14-bitDepth)に設定され、変数offset3は、1<<(shift1+2)に設定され、bitDepthは、現在の色成分のビット深度である。
d.一例において、第1のビット深度は、現在の色成分の入力ビット深度と同じである。BCWの重み付けサンプル予測は、pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(w0*((predSamplesL0[x][y]+offset1)>>shift1)+w1*((predSamplesL1[x][y]+offset1)>>shift1)+4)>>3)として導出されてもよく、ここで、shift1は、Max(2,14-bitDepth)に設定され、変数offset1は、1<<(shift1-1)に設定される。
【0104】
【0105】
7.一例において、マージ動きベクトル差は、動きベクトルと同じ範囲にクリッピングされてもよい。
a.一例において、マージ動きベクトル差は、VVCにおける動きベクトルの範囲と同じである18ビット、例えば、[-217,217-1]にクリッピングされてもよい。
b.一例において、マージ動きベクトル差は、[-217+1,217-1]にクリッピングされてもよい。
c.一例において、マージ動きベクトル差は、クリッピングされなくてもよい。
i.例えば、動きベクトル予測候補に対してマージ動きベクトル差を加算した後、動きベクトルの結果を18ビットにクリッピングする。
【0106】
【0107】
8.CU/PU/ブロックが
【化9】
で符号化されているかどうかの指示は、符号化ブロックの寸法に依存して、条件付きで信号通知されてもよいことが提案される。
a.一例において、現在のスライスタイプがIスライスであり、sps_ibc_enabled_flagがTRUEであり、且つブロックの幅およびブロックの高さの両方がN(Nは整数)以下である場合、
【化10】
を信号通知することができる。例えば、N=64である。
b.一例において、現在のブロックがIBCモードで符号化される場合は、ブロックの幅およびブロックの高さの両方がN(Nは整数)以下であるときに、
【化11】
が信号通知されてもよい。例えば、N=64である。
【0108】
【0109】
9.符号化ツールX(例えば、XがTMVP/ATMVP/BCW/MMVD/PDPCである)を第1の色成分の1つのブロックに適用することができるかどうかは、それが第2の色成分における1つのまたは複数の対応するブロックに適用されるかどうかに依存してもよい。
a.一例において、第1の色成分(例えば、クロマ)ブロックのための符号化ツールXの使用は、符号化ツールが対応する第2の色成分(例えば、輝度)ブロックに適用される場合、無効化されてもよい。
b.一例において、第1の色成分(例えば、クロマ)ブロックのための符号化ツールXの使用は、符号化ツールY(ここで、YはXとは異なる)が対応する第2の色成分(例えば、輝度)ブロックに適用される場合、無効化されてもよい。
c.一例において、メッセージ(例えば、フラグまたはインデックス)は、符号化ツールXが1つのブロックの第1の色成分に適用されるかどうかを示すように、条件付きで信号通知されてもよい。この条件は、対応する第2の色成分ブロックに適用されるかどうかとして定義されてもよい。さらに、代替的に、対応する第2の色成分ブロックに適用されない場合、ブロックの第1の成分に対して信号通知なしでは適用されない。
i.一例において、符号化ツールXは、異なる色成分に対して異なる方法で適用されてもよい。
1)輝度成分およびクロマ成分に対して符号化ツールXを別々に適用する方法が通知されてもよい。
d.一例において、第1の色成分はクロマ成分であり、第2の色成分は輝度成分である。
e.一例において、第1の色成分は1つのクロマ色成分であり、第2の色成分は別のクロマ色成分である。
f.一例において、第1の色成分は輝度色成分であり、第2の色成分はクロマ色成分である。
g.上記の説明において、「対応する第2の色成分ブロック」は、第1の色成分ブロックの少なくとも1つの「対応するサンプル」を覆う第2の色成分ブロックを指すことができる。
i.一例において、第1の色成分はクロマ成分であり、第2の色成分は輝度成分である。
ii.サンプル位置は、4:4:4または4:2:0等のカラーフォーマットに従ってスケーリングされてもよい。クロマブロックの左上の位置を(x0,y0)とし、クロマブロックの幅および高さをWおよびHとし、いずれも輝度サンプルユニットに合わせてスケーリングする。
iii.一例において、対応するサンプルは、(x0,y0)であってもよい。
iv.一例において、対応するサンプルは、(x0+W-1,y0+H-1)であってもよい。
v.一例において、対応するサンプルは、(x0+W/2-1,y0+H/2-1)であってもよい。
vi.一例において、対応するサンプルは、(x0+W/2,y0+H/2)であってもよい。
vii.一例において、対応するサンプルは、(x0+W/2,y0+H/2-1)であってもよい。
viii.一例において、対応するサンプルは、(x0+W/2-1,y0+H/2)であってもよい。
h.上記の説明において、「クロマ成分」は、「1つ以上のクロマ成分」を指すことができる。
10.いくつかのモードでクロマブロックの同じ位置にある輝度ブロックを符号化する場合、いくつかのクロマ成分に対して、位置依存イントラ予測サンプルフィルタリング処理(別名PDPC)を無効化することが提案される。
a.一例において、このような処理は、クロマブロックの同一位置に配置された輝度ブロックがMIP(Matrix-based Intra Prediction)モードで符号化される場合、無効化されてもよい。
b.一例において、このような処理は、クロマブロックの同一位置に配置された輝度ブロックがMRL(Multiple Reference Line、多重基準ライン)モードで符号化される場合、無効化されてもよい。
11.CU/PU/blockが1/2画素よりも細かい精度(例えば、1/4画素、1/8画素等)のあるMV成分のみを有する場合、代替の1/2画素補間フィルタを使用するかどうかの指示は、偽に等しく設定されてもよい。すなわち、代替の1/2画素補間フィルタに代えて、デフォルトの1/2画素補間フィルタを使用してもよい。
a.一例において、再構成されたMVが1/2画素よりも細かい精度を有するMV成分のみを有する場合、このような指示は、MMVDモードにおいて偽に設定されてもよい。
b.一例において、1/2画素よりも精密なMV成分のみを有するなら、このような指示は、ペアワイズのマージ候補に対して偽に設定されてもよい。
c.一例において、再構成された双予測動き情報を、1/2画素よりも微細な精度を有するMV成分のみを有する単予測動き情報(例えば、4*8または/および8*4ブロックのような小さなブロックに適用される)に変換する場合、このような指示は偽に設定されてもよい。
12.代替の1/2画素補間フィルタを使用するかどうかの指示は、場合によっては、常に偽に等しく設定されてもよい。すなわち、これらの場合、デフォルトの1/2画素補間フィルタを常に使用してもよい。
a.一例において、このような指示は、MMVDモードにおいて常に偽に設定されてもよい。
b.一例において、このような指示は、特定のMVDが選択された場合、MMVDモードにおいて常に偽に設定されてもよい。
i.例えば、1/4画素の精度を有するMVDが選択された場合、このような指示は偽に等しく設定されてもよい。
c.一例において、このような指示は、ペアワイズのマージ候補に対して常に偽に設定されてもよい。
d.一例において、再構成された双予測動き情報を、単予測動き情報(例えば、4*8または/および8*4ブロックのような小さなブロックに適用される)に変換する場合、このような指示は偽に設定されてもよい。
【0110】
【0111】
13.上記開示された方法を適用するかどうかおよび/またはどのように適用するかは、例えば、シーケンスヘッダ/ピクチャヘッダ/SPS/VPS/DPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいて、シーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで信号通知してもよい。
【0112】
上述した例は、以下に説明する方法のコンテキスト、例えば、方法800,900,1000,1100,1200および1300に含まれてもよく、これらの方法は、映像デコーダ又は映像エンコーダにおいて実装されてもよい。
【0113】
図8は、例示的な映像処理方法のフローチャートを示す。方法800は、ステップ810において、現在の映像ブロックに対する同一位置に配置された映像ブロックの予測モードに基づいて、1つ以上の同一位置に配置された動きベクトルの可用性を決定することを含む。
【0114】
方法800は、ステップ820において、1つ以上の同一位置に配置された動きベクトルに基づいて、現在のブロックと現在のブロックのビットストリーム表現との変換を行うことを含み、前記予測モードの指示は、前記現在の映像ブロックがインターモードで符号化されているかまたは非インターモードで符号化されているかどうかを示す1つのビットを含む。
【0115】
図9は、例示的な映像処理方法のフローチャートを示す。この方法800は、ステップ910において、映像ブロックの符号化表現と前記映像ブロックとの変換のために、前記映像ブロックの同一位置に配置された映像ブロックのタイプを決定することを含み、前記タイプは2つの可能な値のうちの1つのみをとる。
【0116】
方法800は、ステップ920において、判定に基づいて変換を行うことを含む。
【0117】
図10は、例示的な映像処理方法のフローチャートを示す。方法800は、ステップ1010において、符号化ユニット(CU)レベルの重み付き双予測(BCW)処理に関連付けられた第1の重みテーブルに基づいて、現在のブロックに対する予測サンプルを導出することを含み、前記第1の重みテーブルは非対称である。
【0118】
方法800は、ステップ1020において、前記予測サンプルに基づいて、前記現在のブロックと前記現在のブロックのビットストリーム表現との変換を行うことを含む。
【0119】
図11は、例示的な映像処理方法のフローチャートを示す。方法800は、ステップ1110において、前記現在の映像ブロックのビットストリーム表現における前記現在の映像ブロックのスキップモード符号化の指示の選択的信号通知に関して、前記現在の映像ブロックの寸法に基づいて決定を行うことを含む。
【0120】
方法800は、ステップ1120において、前記決定に基づいて、前記現在のブロックと前記現在のブロックの前記ビットストリーム表現との変換を行うことを含む。
【0121】
図12は、例示的な映像処理方法のフローチャートを示す。方法800は、ステップ1210において、現在の映像ブロックの第1の色成分における1つ以上のブロックへの第1の符号化ツールの適用に基づいて、前記現在の映像ブロックの第2の色成分の少なくとも1つのブロックへの第2の符号化ツールの選択的適用に関して決定を行うことを含む。
【0122】
方法800は、ステップ1220において、前記決定に基づいて、前記現在のブロックと前記現在のブロックの前記ビットストリーム表現との変換を行うことを含む。
【0123】
図13は、例示的な映像処理方法のフローチャートを示す。方法800は、ステップ1310において、現在の映像ブロックにおける動きベクトルの精度に基づいて、デフォルトの1/2画素補間フィルタの代わりに代替の1/2画素補間フィルタを使用するための指示の選択的な信号通知に関して決定を行うことを含む。
【0124】
方法800は、ステップ1320において、前記決定に基づいて、前記現在のブロックと前記現在のブロックの前記ビットストリーム表現との変換を行うことを含む。
【0125】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にこのツールまたはモードを使用するまたは実装するが、このツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、この映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
【0126】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて無効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
【0127】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。
【0128】
5.開示される技術の実施例
その変更は太字とイタリック文字で強調されている。削除されたテキストには二重括弧で囲んだ印が付けられている(例えば、[[a]]は文字「a」の削除を意味する)。
【0129】
5.1 実施形態#1
JVET-O2001-vEで規定されている作業草案は、次のように変更してもよい。
8.5.2.12 同一位置に配置された動きベクトルの導出処理
…
変数mvLXColおよびavailableFlagLXColは、以下のように導出される。
【0130】
【0131】
- さもなければ、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは、以下のように導出される。
…
代替的には、以下を適用することができる。
変数mvLXColおよび変数availableFlagLXColは、以下のように導出される。
【0132】
【0133】
- さもなければ、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは、以下のように導出される。
…
【0134】
5.2 実施形態#2
JVET-O2001-vEで規定される作業草案は、次のように変更することができる。
8.5.1 インター予測モードで符号化されたユニットを符号化するための一般的な復号処理
…
3.デコーダ側動きベクトル微調整後の輝度動きベクトルおよびクロマ動きベクトルのアレイrefMvLX[xSbIdx][ySbIdx]およびrefMvCLX[xSbIdx][ySbIdx](Xが0および1である場合)は、xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1に対し、以下のように導出される。
- dmvrFlagが1である場合、項目8.5.2.13のクロマ動きベクトルに対する前記導出処理は、refMvLX[xSbIdx][ySbIdx]およびrefIdxLXを入力として、かつ、refMvCLX[xSbIdx][ySbIdx]を出力として呼び出し、前記入力refMvLX[xSbIdx][ySbIdx]は、以下のように導出される。
refMvLX[xSbIdx][ySbIdx]=mvLX[xSbIdx][ySbIdx]+dMvLX[xSbIdx][ySbIdx] (8-287)
refMvLX[xSbIdx][ySbIdx][0]=Clip3(-217,217-1,refMvLX[xSbIdx][ySbIdx][0]) (8-288)
refMvLX[xSbIdx][ySbIdx][1]=Clip3(-217,217-1,refMvLX[xSbIdx][ySbIdx][1]) (8-289)
- さもなければ(dmvrFlagが0である)、以下が適用される。
refMvLX[xSbIdx][ySbIdx]=mvLX[xSbIdx][ySbIdx] (8-290)
refMvCLX[xSbIdx][ySbIdx]=mvCLX[xSbIdx][ySbIdx] (8-291)
注:アレイrefMvLXは、MvDmvrLXに記憶され、項目8.5.2.12の同一位置に配置された動きベクトルの導出に使用される。スライスを復号した後、
IBC予測モードで符号化ブロックCb[xSbIdx][ySbIdx]を符号化する場合、MvDmvrLX[xSbIdx][ySbIdx]および対応する参照インデックスは、すべて、-1に等しく設定される。非精密輝度動きベクトルMvLXのアレイは、空間動きベクトル予測および非ブロック化境界強度導出処理に使用される。
…
8.5.2.12 同一位置に配置された動きベクトルの導出処理
…
変数mvLXColおよび変数availableFlagLXColは、以下のように導出される。
- colCbがイントラまたはIBC予測モードで符号化される場合、mvLXColの両方の構成要素は、0に等しく設定され、availableFlagLXColは0に等しく設定される。
- さもなければ、動きベクトルmvCol、参照インデックスrefIdxCol、および参照リスト識別子listColは、以下のように導出される。
predFlagL0Col[xColCb][yColCb]が0に等しく、
predFlagL1Col[xColCb][yColCb]が0に等しいなら、mvLXColの両方の構成要素が0に等しく設定され、availableFlagLXColが0に等しく設定される。
- さもなければ、以下が適用される。
- sbFlagが0である場合、availableFlagLXColは1に等しく設定され、以下が適用される。
- predFlagL0Col[xColCb][yColCb]が0である場合,mvCol,refIdxCol,およびlistColのそれぞれが、mvL1Col[xColCb][yColCb]、refIdxL1Col[xColCb][yColCb]、L1にそれぞれ等しく設定される。
- さもなければ、predFlagL0Col[xColCb][yColCb]が1に等しく、predFlagL1Col[xColCb][yColCb]が0である場合、mvCol,refxIdCol,およびlistColそれぞれは、mvL0Col[xColCb][yColCb],refIdxL0Col[xColCb][yColCb]およびL0にそれぞれ等しく設定される。
- さもなければ(predFlagL0Col[xColCb][yColCb]が1に等しく、predFlagL1Col[xColCb][yColCb]が1である)、以下の割り当てを行う。
- NoBackwardPredFlagが1である場合、mvCol,refIdxCol、およびlistColがそれぞれ、mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]、およびLXにそれぞれ等しく設定される。
- さもなければ、mvCol、refIdxCol、およびlistColをそれぞれmvLNCol[xColCb][yColCb]、refIdxLNCol[xColCb][yColCb]、LNにそれぞれ等しく設定し、Nをcollocated_from_l0_flagの値とする。
- さもなければ(sbFlagが1である)、以下が適用される。
- PredFlagLXCol[xColCb][yColCb]が1の場合、mvCol,refxIdCol、およびlistColは、mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]、LXにそれぞれ等しく設定され、availableFlagLXColは1に等しく設定される。
- さもなければ(PredFlagLXCol[xColCb][yColCb]が0である場合)、以下のように適用される。
- NoBackwardPredFlagが1に等しく、PredFlagLYCol[xColCb][yColCb]が1に等しい場合、mvCol、refxIdCol、listColは、それぞれ、mvLYCol[xColCb][yColCb]、refIdxLYCol[xColCb][yColCb]、LYに設定され、Yは!Xに等しく、Xがこの処理を呼び出すためのXの値であり、availableFlagLXColは、1に設定される。
- さもなければ、mvLXColの両方のモジュールを0に等しく設定し、availableFlagLXColを0に等しく設定する。
…
【0135】
5.3 実施形態#3
JVET-O2001-vEで規定される作業草案は、次のように変更することができる。
8.5.6.6.2 デフォルト重み付けサンプル予測処理
…
変数shift1、shift2、offset1、offset2、offset3は、次のように導出される。
- 変数shift1は、Max(2,14-bitDepth)に等しく設定される。変数shift2は、Max(3,15-bitDepth)に等しく設定される。
- 変数offset1は、1<<(shift1-1)に等しく設定される。
- 変数offset2は、1<<(shift2-1)に等しく設定される。
変数offset3は、1<<(shift2+1[[2]])に等しく設定される。
…
- さもなければ(predFlagL0が1であり、predFlagL1が1である)、以下が適用される。
- bcwIdxが0に等しいか、またはciip_flag[xCb][yCb]が1に等しいなら、予測サンプル値は、以下のように導出される。
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1, (8-823)
(predSamplesL0[x][y]+predSamplesL1[x][y]+offset2)>>shift2)
- さもなければ(bcwIdxが0に等しくなく、ciip_flag[xCb][yCb]が0に等しい)、以下が適用される。
- 変数w1は、bcwWLut[bcwIdx]に等しく設定され、bcwWLut[k]={4,5,3,10、-2}である。
- 変数w0は、(8-w1)に等しく設定される。
- 予測サンプル値は、以下のように導出される。
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1, (8-824)
【0136】
【0137】
…
代替的には、以下を適用することができる。
…
変数shift1、shift2、offset1、offset2、offset3は、次のように導出される。
- 変数shift1は、Max(2,14-bitDepth)に等しく設定され、[[変数shift2は、Max(3,15-bitDepth)]]に等しく設定される。
- 変数offset1は、1<<(shift1-1)に等しく設定される。
【0138】
【0139】
…
- さもなければ(predFlagL0が1であり、predFlagL1が1である)、以下が適用される。
- bcwIdxが0に等しいか、またはciip_flag[xCb][yCb]が1に等しいなら、予測サンプル値は、以下のように導出される。
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1, (8-823)
【0140】
【0141】
- さもなければ(bcwIdxが0に等しくなく、ciip_flag[xCb][yCb]が0に等しい)、以下が適用される。
- 変数w1は、bcwWLut[bcwIdx]に等しく設定され、bcwWLut[k]={4,5,3,10、-2}である。
- 変数w0は、(8-w1)に等しく設定される。
- 予測サンプル値は、以下のように導出される。
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1, (8-824)
【0142】
【0143】
…
代替的には、以下を適用することができる。
…
変数shift1、shift2、offset1、offset2、offset3は、次のように導出される。
- 変数shift1は、Max(2,14-bitDepth)に等しく設定され、変数shift2は、Max(3,15-bitDepth)に等しく設定される。
- 変数offset1は、1<<(shift1-1)に等しく設定される。
- 変数offset2は、1<<(shift2-1)に等しく設定される。
- [[変数offset3は、1<<(shift2+2)に等しく設定される。]]
…
- さもなければ(predFlagL0が1であり、predFlagL1が1である)、以下が適用される。
- bcwIdxが0に等しいか、またはciip_flag[xCb][yCb]が1に等しい場合、予測サンプル値は、以下のように導出される。
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1, (8-823)
(predSamplesL0[x][y]+predSamplesL1[x][y]+offset2)>>shift2)
- さもなければ(bcwIdxが0に等しくなく、かつ、ciip_flag[xCb][yCb]が0に等しい)、以下が適用される。
- 変数w1は、bcwWLut[bcwIdx]に等しく設定され、bcwWLut[k]={4,5,3,10、-2}である。
- 変数w0は、(8-w1)に等しく設定される。
- 予測サンプル値は、以下のように導出される。
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1, (8-824)
【0144】
【0145】
5.4 実施形態#4
JVET-O2001-vEで規定される作業草案は、次のように変更することができる。
8.5.6.6.2 デフォルト重み付けサンプル予測処理
…
- さもなければ(bcwIdxが0に等しくなく、かつ、ciip_flag[xCb][yCb]が0に等しい)、以下が適用される。
変数w1は、bcwWLut[bcwIdx]に等しく設定され、
【0146】
【0147】
5.5 実施形態#5
JVET-O2001-vEで規定される作業草案は、次のように変更することができる。
8.5.2.7 マージ動きベクトル差の導出処理
…
【0148】
【0149】
5.6 実施形態#6
JVET-O2001-vEで規定される作業草案は、次のように変更することができる。
7.3.8.5 符号化ユニット構文
…
【0150】
【0151】
図14Aは、映像処理装置1400のブロック図である。装置1400は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置1400は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置1400は、1つ以上の処理装置1402と、1つ以上のメモリ1404と、映像処理ハードウェア1406と、を含んでもよい。1つまたは複数の処理装置1402は、本明細書に記載される1つ以上の方法(方法800、900、1000、1100、1200および1300を含むが、これに限定されない)を実装するように構成されてもよい。メモリ(複数可)1404は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア1406は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。いくつかの実施例において、ハードウェア1406は、プロセッサ1402、例えばグラフィックコプロセッサに完全にまたは部分的に実装されてもよい。
【0152】
図14Bは、本明細書に開示される様々な技術を実装することができる例示的な映像処理システム1410を示すブロック図である。様々な実装形態は、システム1410のモジュールの一部又は全部を含んでもよい。システム1410は、映像コンテンツを受信するための入力ユニット1412を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1412は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0153】
システム1410は、本明細書に記載される様々な符号化又は符号化方法を実装することができる符号化モジュール1414を含んでもよい。符号化モジュール1414は、入力ユニット1412からの映像の平均ビットレートを符号化モジュール1414の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール1414の出力は、モジュール1416によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1412において受信された、記憶されたまたは通信された映像のビットストリーム(または符号化)表現は、モジュール1418によって使用されて、表示インターフェースユニット1420に送信される画素値、または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作またはツールと呼ぶが、符号化ツールまたは動作は、エンコーダおよびそれに対応する、復号化の結果を逆にする復号化ツールまたは動作が、デコーダによって行われる。
【0154】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA:Serial Advanced Technology Attachment)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理および/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0155】
いくつかの実施形態において、映像符号化法は、
図14Aまたは
図14Bを参照して説明したように、ハードウェアプラットフォームに実装される装置を使用して実施してもよい。
【0156】
以下のリストは、本明細書に記載される技術的課題等に対処することができる実施形態を提供する。第1組の項目では、前章で開示された技術の特定の特徴および態様を説明する。
【0157】
1.現在の映像ブロックに対する同一位置に配置された映像ブロックの予測モードに基づいて、1つ以上の同一位置に配置された動きベクトルの可用性を決定することと、前記1つ以上の同一位置に配置された動きベクトルに基づいて、前記現在のブロックと前記現在のブロックのビットストリーム表現との変換を行うこととを含み、前記予測モードの指示が前記現在の映像ブロックがインターモードまたは非インターモードで符号化されたかどうかを示す1ビットを含む、映像処理方法。
【0158】
2.映像ブロックの符号化表現と前記映像ブロックとの変換について、前記映像ブロックの同一位置に配置された映像ブロックのタイプを決定することであって、前記タイプは2つの可能な値のうちの1つのみを取得し、決定することと、前記決定に基づいて前記変換を行うこと、を含む、映像処理方法。
【0159】
3.前記2つの可能な値は、前記同一位置に配置された映像ブロックがインター符号化されていることを示す第1の値と、前記同一位置に配置された映像ブロックがインター符号化されていないモードを使用して符号化されていることを示す第2の値とを含む、項目1に記載の方法。
【0160】
4.前記決定は、前記現在の映像ブロックがパレット予測モードで符号化されている場合と、前記現在の映像ブロックがイントラまたはイントラブロックコピー(IBC)予測モードで符号化されている場合とで同一である、項目1~3のいずれかに記載の方法。
【0161】
5.前記同一位置に配置された映像ブロックが非インター予測モードで符号化される場合、前記同一位置に配置された動きベクトルが利用不可能であると決定される、項目1~3のいずれかに記載の方法。
【0162】
6.前記同一位置に配置された映像ブロックが非インター予測モードで符号化される場合、前記同一位置に配置された動きベクトルが利用可能であると決定され、デフォルトの動きベクトルを含む、項目1~3のいずれかに記載の方法。
【0163】
7.前記非インター予測モードは、イントラ予測モード、パレット予測モード、またはイントラブロックコピー(IBC)予測モードである、項目5または6に記載の方法。
【0164】
8.前記決定は、前記同一位置に配置された映像ブロックの参照インデックスまたは参照リストに基づく、項目1~3のいずれかに記載の方法。
【0165】
9.前記参照インデックスは、予め定められた値である、項目8に記載の方法。
【0166】
10.前記参照インデックスは、所定の値を除外する、項目8に記載の方法。
【0167】
11.前記所定の値が0である、項目9または10に記載の方法。
【0168】
12.符号化ユニット(CU)レベルの重み付き双予測(BCW)処理に関連付けられた第1の重みテーブルに基づいて、現在のブロックのための予測サンプルを導出することであって、第1の重みテーブルが非対称である、導出することと、予測サンプルに基づいて、前記現在のブロックと前記現在のブロックのビットストリーム表現との変換を行うことと、を含む、映像処理方法。
【0169】
13.前記第1の重みテーブルにおけるエントリが、非単調に増加している、項目12に記載の方法。
【0170】
14.前記BCW処理は、前記第1の重みテーブルとは異なる第2の重みテーブルにさらに基づく、項目12に記載の方法。
【0171】
15.前記予測サンプルを導出することは、中間予測サンプルを第1のビット深度に変換することと、第1の重みテーブルから前記中間予測サンプルに重みを適用して前記予測サンプルを導出することと、前記予測サンプルを第2のビット深度に変換することと、を含む、項目12に記載の方法。
【0172】
16.前記第2のビット深度は、前記現在の映像ブロックの色成分のビット深度である、項目15に記載の方法。
【0173】
17.現在の映像ブロックの次元に基づいて、前記現在の映像ブロックのビットストリーム表現における前記現在の映像ブロックのスキップモード符号化の指示の選択的信号通知に関して、前記現在の映像ブロックの寸法に基づいて決定することと、前記決定に基づいて、前記現在のブロックと前記現在のブロックの前記ビットストリーム表現との変換を行うことと、を含む、映像処理方法。
【0174】
18.前記指示は、前記現在の映像ブロックを含むスライスタイプがIスライスであり、sps_ibc_enabled_flagがTRUEに設定され、かつ前記現在の映像ブロックの高さおよび幅がN以下であると決定すると、信号通知される、項目17に記載の方法。
【0175】
19.前記指示は、前記現在の映像ブロックがイントラブロックコピー(IBC)モードで符号化されており、かつ現在の映像ブロックの高さおよび幅がN以下であると決定された場合に信号通知される、項目17に記載の方法。
【0176】
20.N=64である、項目18または19に記載の方法。
【0177】
21.現在の映像ブロックの第1の色成分における1つ以上のブロックへの第1の符号化ツールの適用に基づいて、前記現在の映像ブロックの第2の色成分の少なくとも1つのブロックへの、第2の符号化ツールの選択的適用に関して、決定を行うことと、前記決定に基づいて、前記現在のブロックと前記現在のブロックのビットストリーム表現との変換を行うことと、を含む、映像処理方法。
【0178】
22.前記第2の符号化ツールが前記第1の符号化ツールと同一であると決定されると、第2の符号化ツールを適用する、項目21に記載の方法。
【0179】
23.前記第2の符号化ツールは前記第1の符号化ツールと異なると決定された場合、前記第2の符号化ツールを適用しない、項目21に記載の方法。
【0180】
24.前記決定は、前記ビットストリーム表現における指示にさらに基づく、項目21に記載の方法。
【0181】
25.前記第1の色成分が輝度成分であり、第2の色成分がクロマ成分である、項目21~24のいずれかに記載の方法。
【0182】
26.前記第1の色成分が第1のクロマ色成分であり、前記第2の色成分が第2のクロマ色成分である、項目21~24のいずれかに記載の方法。
【0183】
27.前記第1の符号化ツールおよび前記第2の符号化ツールは、時間的動きベクトル予測(TMVP)、代替時間的動きベクトル予測(ATMVP)、符号化ユニット(CU)レベル重み付き双予測(BCW)処理、動きベクトル差付きマージモード(MMVD)、または位置依存予測組み合わせ(PDPC)処理のうちの1つである、項目21~26のいずれかに記載の方法。
【0184】
28.現在の映像ブロックにおける動きベクトルの精度に基づいて、デフォルトの1/2画素補間フィルタの代わりに代替の1/2画素補間フィルタを使用するような指示の選択的信号通知に関して決定を行うことと、前記決定に基づいて、前記現在のブロックと前記現在のブロックの前記ビットストリーム表現との変換を行うことと、を含む、映像処理方法。
【0185】
29.前記デフォルトの1/2画素補間フィルタは、前記現在の映像ブロックが、動きベクトル差(MMVD)を有するマージモードで符号化され、再構成された動きベクトルの精度が1/2画素よりも低いと決定される場合に使用される、項目28に記載の方法。
【0186】
30.前記変換を、デコーダパラメータセット(DPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、映像パラメータセット(VPS)、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ、またはタイルグループヘッダにおける信号通知にさらに基づく、項目1~29のいずれかに記載の方法。
【0187】
31.前記変換を行うことは、前記現在の映像ブロックから前記ビットストリーム表現を生成することを含む、項目1~30のいずれかに記載の方法。
【0188】
32.前記変換を行うことは、前記ビットストリーム表現から前記現在の映像ブロックを生成することを含む、項目1~30のいずれかに記載の方法。
【0189】
33.項目1~32のいずれか1つに記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0190】
34.非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、項目1~32のいずれか1項に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【0191】
第2組の項目では、前章で開示された技術の特定の特徴および態様を説明する(例えば項目1および2)。
【0192】
1.映像の映像ブロックの同一位置に配置された映像ブロックがインター符号化モードまたは非インター符号化モードを使用して符号化されたかどうかについての第1の決定を行うことと、第1の決定に基づいて、同一位置に配置された映像ブロックの動きベクトルの可用性または同一位置に配置された映像ブロックの動きベクトルの導出モードについての第2の決定を行うことと、第2の決定に基づいて、映像ブロックと映像の符号化表現との変換を行うこととを含む、叡尊処理方法。
【0193】
2.前記非インター符号化モードは、イントラモード、パレットモード、またはIBC(Intra Block Copy)モードである、項目1に記載の方法。
【0194】
3.前記第2の決定を行うことは、パレットモードで符号化された前記同一位置に配置された映像ブロックと、イントラモードで符号化された前記同一位置に配置された映像ブロックとで同じになるように行う、項目1に記載の方法。
【0195】
4.前記第2の決定を行うことは、パレットモードで符号化された前記同一位置に配置された映像ブロックと、イントラブロックコピーモードで符号化された前記同一位置に配置された映像ブロックとで同じになるように行う、項目1に記載の方法。
【0196】
5.前記第2の決定を行うことは、イントラモードで符号化された前記同一位置に配置された映像ブロックと、イントラブロックコピーモードで符号化された前記同一位置に配置された映像ブロックとで同じになるように行う、項目1に記載の方法。
【0197】
6.前記第1の決定を行うことは、前記同一位置に配置された映像ブロックが前記インター符号化モードまたは前記非インター符号化モードのどちらを使用して符号化されているかを示すために、1つのビットを生成することを含む、項目1に記載の方法。
【0198】
7.前記第2の決定を行うことは、前記同一位置に配置された映像ブロックが前記非インター符号化モードを使用して符号化されているという前記第1の決定に基づいて、前記同一位置に配置された映像ブロックの動きベクトルが利用可能でないと決定する、項目1に記載の方法。
【0199】
8.前記第2の決定を行うことは、前記同一位置に配置された映像ブロックが前記非インター符号化モードを使用して符号化されているという前記第1の決定に基づいて、前記同一位置に配置された映像ブロックの動きベクトルが利用可能であると決定し、デフォルトの動きベクトルは、前記同一位置に配置された映像ブロックの動きベクトルとして割り当てられる、項目1に記載の方法。
【0200】
9.前記同一位置に配置された映像ブロックが前記非インター符号化モードを使用して符号化される場合、前記同一位置に配置された映像ブロックの代わりに別の映像ブロックをチェックする、項目1に記載の方法。
【0201】
10.前記別の映像ブロックは、前記同一位置に配置された映像ブロックの左、右、上、または下にある最も近接したインター符号化ブロックである近傍のブロックである、項目9に記載の方法。
【0202】
11.映像の映像ブロックと映像の符号化表現との変換のために、映像ブロックの同一位置に配置された映像ブロックの参照インデックスまたは参照リストに基づいて、1つまたは複数の同一位置に配置された動きベクトルを決定することと、この決定に基づいて変換を行うこととを含む、映像処理方法。
【0203】
12.前記同一位置に配置された映像ブロックの参照リストの参照インデックスが所定の値に等しくない場合、前記1つ以上の同一位置に配置された動きベクトルを導出する、項目11に記載の方法。
【0204】
13.前記同一位置に配置された映像ブロックの参照リストの参照インデックスが所定の値である場合、前記1つ以上の同一位置に配置された動きベクトルを導出する、項目11に記載の方法。
【0205】
14.前記所定の値は0である、項目12または13に記載の方法。
【0206】
15.前記同一位置に配置された映像ブロックが非インター符号化モードで符号化されるか、または前記同一位置に配置された映像ブロックの参照ピクチャが所与の条件を満たさない場合、前記1つ以上の同一位置に配置された動きベクトルを利用不可能に設定する、項目11に記載の方法。
【0207】
16.前記同一位置に配置された映像ブロックが非インター符号化モードで符号化されるか、または前記同一位置に配置された映像ブロックの参照ピクチャが所与の条件を満たさない場合、前記1つ以上の同一位置に配置された動きベクトルをデフォルト値に設定する、項目11に記載の方法。
【0208】
17.前記変換は、前記映像を前記符号化表現に符号化することを含む、項目1~16のいずれかに記載の方法。
【0209】
18.前記変換は、前記符号化表現を復号化して前記映像を生成することを含む、項目1~16のいずれかに記載の方法。
【0210】
19.項目1から16のいずれか1つまたは複数に記載された方法を実施するように構成された処理装置を含む映像処理装置。
【0211】
20.実行されると、項目1から16までのいずれか1項以上に記載された方法を処理装置に実施させるプログラムコードを格納したコンピュータ可読媒体。
【0212】
21.上述した方法のいずれかに従って生成された符号化表現またはビットストリーム表現を記憶する、コンピュータ可読媒体。
【0213】
第3組の項目では、前章で開示された技術の特定の特徴および態様を説明する(例えば項目3~7)。
【0214】
1.映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出すること(1532)と、予測ブロックを使用して変換を行うこととであって、前記予測ブロックを導出することは、最終予測サンプルを導出するために、2つの初期予測ブロックにそれぞれ属する2つの中間予測サンプルに重みを適用することを含む、変換を行うこと(1534)と、最終予測サンプルのビット深度を変換するために、最終予測サンプルに対して右シフト操作を行うこととを含み、前記右シフト操作は、pbSample>>(shift1+3))であり、pbSampleは最終予測サンプルを示し、shift1は、Max(2,14-bitDepth)に等しく設定される、右シフト操作を行うことと、前記最終予測サンプルに基づいて前記予測ブロックを決定することと、を含む、映像処理方法(例えば、
図15Cに示す方法1530)。
【0215】
2.前記右シフト操作を実行する前に、最終予測サンプルにオフセットを加える、項目1に記載の方法。
【0216】
3.前記オフセットが1<<(shift1+2)である、項目1に記載の方法。
【0217】
4.前記最終予測サンプルのpbSamples[x][y]は、pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)>>(shift1+3))であり、w0およびw1は重みで、predSamplesL0[x][y]およびpredSamplesL1[x][y]は、2つの中間予測サンプルであるように導出される、項目3に記載の方法。
【0218】
5.前記重みのうちの少なくとも1つが重みテーブルに属し、前記重みテーブルのエントリが非単調に増加している、項目1に記載の方法。
【0219】
6.映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することと、予測ブロックを使用して変換を行うこととであって、前記予測ブロックを導出することは、最終予測サンプルを導出するために、2つの初期予測ブロックにそれぞれ属する2つの中間予測サンプルに重みを適用することを含む、変換を行うことと、前記最終予測サンプルにオフセットを追加することであって、前記オフセットは、1<<(shift1+2)であり、shift1は、Max(2,14-bitDepth)に設定される、オフセットを追加することと、前記予測ブロックを前記最終予測サンプルに基づいて決定することと、を含む、映像処理方法。
【0220】
7.前記最終予測サンプルに基づいて前記予測ブロックを決定することは、前記最終予測サンプルに対して右シフト操作を行い、前記最終予測サンプルのビット深度を変換することを含む、項目6に記載の方法。
【0221】
8.前記右シフト操作は、pbSample>>(shift1+3))であり、pbSampleは、前記最終予測サンプルを表す、項目1または7に記載の方法。
【0222】
9.前記最終予測サンプルのpbSamples[x][y]は、pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)>>(shift1+3))であり、w0およびw1は重みで、predSamplesL0[x][y]およびpredSamplesL1[x][y]は、2つの中間予測サンプルであるように導出される、項目8に記載の方法。
【0223】
10.前記重みのうちの少なくとも1つが重みテーブルに属し、前記重みテーブルのエントリが非単調に増加している、項目6に記載の方法。
【0224】
11.映像の現在のブロックと映像の符号化表現との間で変換のために、規則に従って、現在のブロックに対するマージモード動きベクトル予測子のための動きベクトル差を導出すること(1542)と、この導出に基づいて変換を行うこと(1544)とを含み、規則は、動きベクトルをクリッピングするために使用される範囲と同じ範囲に動きベクトル差をクリッピングするかどうかを規定する指定する、映像処理方法(
図15Dに示す方法1540)。
【0225】
12.前記規則は、動きベクトル差を、動きベクトルをクリッピングするのに使用される範囲と同じ範囲にクリッピングすることを規定する、項目11に記載の方法。
【0226】
13.動きベクトルをクリッピングするために使用される範囲は、18ビットである、項目11に記載の方法。
【0227】
14.動きベクトルをクリッピングするために使用される範囲は、[-217,217-1]である、項目13に記載の方法。
【0228】
15.前記規則は、前記動きベクトル差を[-217+1,217-1]にクリッピングすることを規定する、項目11に記載の方法。
【0229】
16.前記規則は、前記動きベクトル差をクリッピングしないことを規定する、項目11に記載の方法。
【0230】
17.前記規則は、動きベクトル予測候補に前記動きベクトル差を加えることにより得られた結果を、18ビットにクリッピングすることを規定する、項目16に記載の方法。
【0231】
18.映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することであって、前記重みの少なくとも1つが重みテーブルに属しており、前記重みテーブルは、規則に従って編成されている、導出することと、前記予測ブロックを使用して前記変換を行うことと、を含み、前記規則は、前記重みテーブルのエントリが非単調に増加していることを規定する、映像処理方法。
【0232】
19.前記重みテーブルは、その値がi番目のエントリの値よりも小さい(i+1)番目のエントリを含む、項目18に記載の方法。
【0233】
20.映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することであって、前記重みの少なくとも1つが重みテーブルに属しており、前記重みテーブルは、複数の重みテーブルから選択される、導出することと、前記予測ブロックを使用して前記変換を行うことと、を含む、映像処理方法。
【0234】
21.前記複数の重みテーブルは、{4,5,3,10,2}、{4,3,5,10,2}、{4,5,3,10,1}、{4,3,5,10,1}、または{4,5,3,10,-1}を含む、項目20に記載の方法。
【0235】
22.映像の現在のブロックと映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される前記現在のブロックに対する予測ブロックを導出することと、予測ブロックを使用して変換を行うことと、を含み、予測ブロックを導出することは、中間予測サンプルを第1のビット深度に変換することと、最終予測サンプルを導出すべく、重みを中間予測サンプルに適用することと、最終予測サンプルを第2のビット深度に変換することと、を含む映像処理方法。
【0236】
23.前記第2のビット深度は、前記現在のブロックの色成分のビット深度である、項目22に記載の方法。
【0237】
24.第1のビット深度が中間予測サンプルのビット深度に等しくない、項目22に記載の方法。
【0238】
25.前記予測ブロックを導出することは、サンプルをより高いビット深度からより低いビット深度に変換する右シフト操作、または前記サンプルをより低いビット深度からより高いビット深度に変換する左シフト操作を含む、項目22に記載の方法。
【0239】
26.右シフト操作または左シフト操作の前にオフセットを加える、項目25に記載の方法。
【0240】
27.前記最終予測サンプルのpbSamples[x][y]は、pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(w0*((predSamplesL0[x][y]+offset1)>>shift1)+w1*((predSamplesL1[x][y]+offset1)>>shift1)+4)>>3)であり、w0およびw1は重みで、shift1は、Max(2,14-bitDepth)と等しく設定され、offset1は、1<<(shift1-1)と等しく設定されるように導出される、項目22に記載の方法。
【0241】
28.映像の現在のブロックと前記映像の符号化表現との変換のために、予測ブロックを決定するために使用される2つの初期予測ブロックの重み和を決定するために第1の重みと第2の重みが使用される、双方向符号化ユニットレベル重み付け(BCW)ツールに従って決定される現在のブロックに対する予測ブロックを導出することであって、前記第1の重みおよび前記第2の重みの少なくとも1つの重みテーブルに属しており、前記重みテーブルは、規則に従って編成されている、導出すること(1552)と、前記予測ブロックを使用して前記変換を行うことと、を含み、前記規則は、前記重みテーブルが非対称であることを規定する、映像処理方法(
図15Eに示す方法1550)。
【0242】
29.前記重みテーブルは、その値が第1の重みWに対応するエントリを含み、その値が第2の重み(1-W)に対応するエントリを含まず、それによって、Wは、[a,b]の範囲内にあり、aとbの和(a+b)は1に等しい、項目28に記載の方法。
【0243】
30.前記重みテーブルは、予測サンプルが、(W0*P0+W1*P1)>>Nによって生成される場合には、その値が第1の重みWに対応するエントリを含み、その値が第2の重み(2N-W)に対応するエントリを含まず、それによって、W0およびW1は、それぞれ、最初の2つの予測ブロックP0およびP1に適用される第1の重みおよび第2の重みであり、(W0+W1)は(1<<N)に等しい、項目28に記載の方法。
【0244】
31.前記変換を行うことは、前記現在の映像ブロックから前記符号化表現を生成することを含む、項目1~30のいずれかに記載の方法。
【0245】
32.前記変換を行うことは、前記符号化表現から前記現在の映像ブロックを生成することを含む、項目1~30のいずれかに記載の方法。
【0246】
33.項目1~32のいずれか1つまたは複数に記載された方法を実施するように構成された処理装置を含む映像処理装置。
【0247】
34.実行されると、項目1~32までのいずれか1つ以上に記載された方法を処理装置に実施させるプログラムコードを格納したコンピュータ可読媒体。
【0248】
35.上述した方法のいずれかに従って生成された符号化表現またはビットストリーム表現を記憶する、コンピュータ可読媒体。
【0249】
以上、説明の目的で本開示の技術の特定の実施形態を説明したが、本発明の範囲から逸脱することなく様々な修正が可能であることは、理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0250】
本特許明細書に記載された主題および機能操作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、様々なシステム、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。本明細書に記載された主題の実装形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実行されるため、又はデータ処理装置の操作を制御するために、有形で非可搬性のコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。このコンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、又はこれらの1つ以上の組み合わせであってもよい。「データ処理ユニット」又は「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、又は複数の処理装置若しくはコンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0251】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、成分、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0252】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0253】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、読み出し専用メモリ又はランダムアクセスメモリ又はその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上の記憶装置とである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュメモリデバイス等の半導体メモリデバイスを含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0254】
本明細書は、図面とともに、例示のみを目的とするものであり、例示的とは例を意味することが意図される。本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈からそうでないことが明確に示されていない限り、複数形も含むことが意図される。さらに、文脈からそうでないことが明確に示されていない限り、「または」の使用は、「および/または」を含むことが意図される。
【0255】
本特許明細書は多くの詳細を含むが、これらは、任意の発明の範囲又は特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態の文脈で説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0256】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0257】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。