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

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

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

特表2023-523839動き精度構文のためのエントロピーコーディング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-06-07
(54)【発明の名称】動き精度構文のためのエントロピーコーディング
(51)【国際特許分類】
   H04N 19/13 20140101AFI20230531BHJP
   H04N 19/70 20140101ALI20230531BHJP
   H04N 19/157 20140101ALI20230531BHJP
   H04N 19/176 20140101ALI20230531BHJP
   H04N 19/513 20140101ALI20230531BHJP
【FI】
H04N19/13
H04N19/70
H04N19/157
H04N19/176
H04N19/513
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022566447
(86)(22)【出願日】2021-05-06
(85)【翻訳文提出日】2022-11-21
(86)【国際出願番号】 CN2021091869
(87)【国際公開番号】W WO2021219143
(87)【国際公開日】2021-11-04
(31)【優先権主張番号】PCT/CN2020/088546
(32)【優先日】2020-05-01
(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)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ワン ヤン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ドン ジピン
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】リウ ホンビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN14
5C159NN21
5C159RC12
5C159TA59
5C159TA62
5C159TB08
5C159TC12
5C159TC27
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
映像処理のためのシステム、方法、および装置が記載される。映像処理は、映像符号化、映像復号、または、映像トランスコーディングを含んでよい。映像処理の1の例の方法は、規則に従って、映像のブロックと、映像のビットストリームとの間の変換を実行することを含む。変換は、AMVR(Adaptive Motion Vector difference Resolution)ツールに基づき、規則は、AMVRシフトに関連付けられた動きベクトル差分の解像度を規定する第1の構文要素のビンの文字列内の第1のビンに対するコンテキストの選択が、ブロックに対するコーディングモードの使用に基づいて導出されることを規定する。
【選択図】図18
【特許請求の範囲】
【請求項1】
映像処理の方法であって、
規則に従って、映像のブロックと、前記映像のビットストリームとの間の変換を実行すること、
を有し、
前記変換は、AMVR(Adaptive Motion Vector Difference Resolution)ツールに基づき、
前記規則は、AMVRシフトに関連付けられた前記動きベクトル差分の前記解像度を規定する第1の構文要素のビンの文字列の第1のビンに対するコンテキストの選択が、前記ブロックに対するコーディングモードの使用に基づいて導出されることを規定する、方法。
【請求項2】
前記ブロックは、コーディングユニットである、請求項1に記載の方法。
【請求項3】
前記ブロックに対する前記コーディングモードは、アフィンインターモード、イントラブロックコピーモード、および、非アフィンインターモードである通常のインターモードのうちの1つである、請求項1または2に記載の方法。
【請求項4】
異なるコーディングモードに対応する複数のコンテキストは、前記第1のビンに適用可能である、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記複数のコンテキストは、3つのコンテキストを含む、請求項4に記載の方法。
【請求項6】
各コーディングモードは、単一のコンテキストに対応する、請求項4に記載の方法。
【請求項7】
前記ブロックが前記IBCモードを用いてコーディングされる場合、前記第1のビンに対する第1のコンテキストは、第1の値に割り当てられ、
前記ブロックが前記IBCモードを用いてコーディングされない場合、前記第1のコンテキストとは異なる少なくとも1つのコンテキストは、少なくとも1つのインターコーディングモードに対して前記第1のビンが適用可能である、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ブロックがアフィンインターモードを用いてコーディングされる場合、前記第1のビンに対する第2のコンテキストは、第2の値に割り当てられ、
前記ブロックが非アフィンインターモードである通常のインターモードを用いてコーディングされる場合、前記第1のビンに対する第3のコンテキストは、第3の値に割り当てられ、
前記第2の値および前記第3の値は、それぞれ異なる、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記ビンの文字列の第2のビンのコンテキストは、前記第1のビンに対して用いられた1または複数のコンテキストと同じである、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記ビンの文字列の第2のビンは、単一のコンテキストの値にてコーディングされる、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記同じコンテキストは、IBCモードを用いてコーディングされる第1のブロックに対する前記ビンの文字列の前記第1のビン、および、非アフィンインターモードである通常のインターモードを用いてコーディングされる第2のブロックに対する前記ビンの文字列の前記第2のビンに対して選択される、請求項10に記載の方法。
【請求項12】
前記ブロックが、IBCモードまたはアフィンインターモードを用いてコーディングされる場合、前記ビンの文字列は、前記第1のビンにて構成され、
前記ブロックが、非アフィンインターモードである通常のインターモードを用いてコーディングされる場合、前記ビンの文字列は更に、第2のビンを含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記第1のビンに対して適用可能な前記複数のコンテキストのうちの少なくとも1つは、前記動きベクトル差分の前記解像度が輝度サンプルの1/4であるか、または、前記第1の構文要素によって規定されるかを規定する第2の構文要素に対して選択された少なくとも1つのコンテキストと同じである、請求項4から9のいずれか一項に記載の方法。
【請求項14】
前記ブロックが前記IBCモードを用いてコーディングされる場合、前記動きベクトル差分の前記解像度を規定する前記第1の構文要素に対する前記コンテキストは、前記動きベクトル差分の前記解像度が輝度サンプルの1/4であるか、または、前記第1の構文要素によって規定されるかを規定する前記第2の構文要素に対して選択された前記コンテキストと同じである、請求項13に記載の方法。
【請求項15】
前記ブロックが前記IBCモードまたは前記アフィンモードを用いてコーディングされない場合、前記動きベクトル差分の前記解像度を規定する前記第1の構文要素に対する前記コンテキストは、前記動きベクトル差分の前記解像度が輝度サンプルの1/4であるか、または、前記第1の構文要素によって規定されるかを規定する前記第2の構文要素に対して選択された前記コンテキストと同じである、請求項13に記載の方法。
【請求項16】
前記ビンの文字列の前記第1のビンに対する前記コンテキストは、CtxMの値に割り当てられ、
前記ビンの文字列の前記第2のビンに対するコンテキストは、CtxQの値に割り当てられ、
CtxM=CtxQである、請求項14または15に記載の方法。
【請求項17】
前記第1のビンと比較して、異なるコンテキストが前記第2のビンに対して選択される、請求項16に記載の方法。
【請求項18】
前記ブロックが前記IBCモードにてコーディングされる場合の前記第1のビンに対する第1のコンテキスト、前記ブロックが前記アフィンモードを用いてコーディングされる場合の前記第1のビンに対する第2のコンテキスト、および、前記ブロックが前記IBCモードおよび前記アフィンモードのいずれも用いずにコーディングされる場合の前記第1のビンに対する第3のコンテキストは同じである、請求項4に記載の方法。
【請求項19】
前記ブロックが前記IBCモードにてコーディングされる場合の前記第1のビンに対する第1のコンテキスト、および、前記ブロックが前記IBCモードおよび前記アフィンモードのいずれも用いずにコーディングされる場合の前記第1のビンに対する第2のコンテキストは同じである、請求項4に記載の方法。
【請求項20】
前記ブロックが前記アフィンモードを用いてコーディングされる場合の前記第1のビンに対する第3のコンテキストは、前記第1のコンテキストおよび前記第2のコンテキストとは異なる、請求項19に記載の方法。
【請求項21】
前記ブロックが前記IBCモードにてコーディングされる場合の前記第1のビンに対する第1のコンテキストと前記ブロックが前記アフィンモードを用いてコーディングされる場合の前記第1のビンに対する第2のコンテキストは同じである、請求項4に記載の方法。
【請求項22】
前記ブロックが前記IBCモードにてコーディングされる場合の前記ビンの文字列のすべてのビンに対するコンテキスト、前記ブロックが前記アフィンモードを用いてコーディングされる場合の前記ビンの文字列のすべてのビンに対するコンテキスト、および、前記IBCモードおよび前記アフィンモードのいずれも用いずにコーディングされる場合の前記ビンの文字列のすべてのビンに対するコンテキストは同じである、請求項4に記載の方法。
【請求項23】
前記AMVRツールは、動きベクトル差分の解像度が、ブロック単位で適応的に調整されるコーディングツールである、請求項1から22のいずれか一項に記載の方法。
【請求項24】
前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1から23のいずれか一項に記載の方法。
【請求項25】
前記変換は、前記映像を前記ビットストリームから復号することを含む、請求項1から23のいずれか一項に記載の方法。
【請求項26】
映像のビットストリームを格納するための方法であって、
規則に従って、前記映像のビットストリームを、前記映像のブロックから生成する、
を有し、
前記生成することは、動きベクトル差分が前記動きベクトル差分の解像度を用いて前記ビットストリームにて表現されるAMVR(Adaptive Motion Vector Difference Resolution)を用いることを含み、
前記規則は、AMVRシフトに関連付けられた前記動きベクトル差分の前記解像度を規定する第1の構文要素のビンの文字列の第1のビンに対するコンテキストの選択が、前記ブロックに対するコーディングモードの使用に基づいて導出されることを規定する、方法。
【請求項27】
請求項1から26のうちの1または複数に記載の方法を実装するように構成されたプロセッサを有する映像復号装置。
【請求項28】
請求項1から26のうちの1または複数に記載の方法を実装するように構成されたプロセッサを有する映像符号化装置。
【請求項29】
格納されたコンピュータコードを有するコンピュータプログラムプロダクトであって、
前記コードがプロセッサによって実行された際に、前記プロセッサに、請求項1から26のいずれか一項に記載の方法を実行させる、コンピュータプログラムプロダクト。
【請求項30】
映像処理装置によって実行された方法によって生成される映像のビットストリームを格納する非一時的コンピュータ可読記録媒体であって、
前記方法は、
規則に従って、前記映像のビットストリームを、前記映像のブロックから生成することと、
前記ビットストリームを、非一時的コンピュータ可読記録媒体に格納することと、
を有し、
前記生成することは、動きベクトル差分が前記動きベクトル差分の解像度を用いて前記ビットストリームにて表現されるAMVR(Adaptive Motion Vector Difference Resolution)を用いることを含み、
前記規則は、AMVRシフトに関連付けられた前記動きベクトル差分の前記解像度を規定する第1の構文要素のビンの文字列の第1のビンに対するコンテキストの選択が、前記ブロックに対するコーディングモードの使用に基づいて導出されることを規定する、非一時的コンピュータ可読記録媒体。
【請求項31】
本願明細書に記載された、方法、装置、またはシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
パリ条約に基づく適用可能な特許法および/または規則に基づいて、本願は、2020年5月1日出願の国際特許出願第PCT/CN2020/088546号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
本明細書は、映像および画像コーディング技術に関する。
【背景技術】
【0003】
デジタル映像は、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
開示された技術は、コンテキストベースの符号化および復号を使用して符号化または復号を行うために、映像または画像またはエンコーダの実施形態によって使用されてもよい。
【0005】
1つの例示的な態様において、映像を処理する方法が開示される。この方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、変換は、映像ブロックに対する動きベクトルまたは動きベクトル差分または動きベクトル予測子の表現が、適応解像度を用いてコーディングされた表現において表されるAMVR(Adaptive Motion Vector Difference Resolution)ツールに基づいて行われ、フォーマット規則は、映像ブロックまたは映像ブロックの近傍ブロックのコーディングされた情報に依存するコンテキストモデリングによって、コーディング表現において適応解像度の使用を表現することを規定する。
【0006】
別の例示的な態様において、別の映像を処理する方法が開示される。この方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、変換は映像ブロックに対する動きベクトルまたは動きベクトル差分または動きベクトル予測子の表現が、適応解像度を使用してコーディング表現において表されるAMVR(Adaptive Motion Vector Difference Resolution)ツールに基づいて行われ、フォーマット規則は、AMVRツールによって使用される精度のインデックスのための第1のビンおよび第2のビンをコーディングするために使用されるコンテキストモデリングによって、コーディングされた表現における適応解像度の使用を表現する方法を規定する。
【0007】
別の例示的な態様において、別の映像を処理する方法が開示される。この方法は、複数の映像ブロックからなる1または複数の映像ピクチャを含む映像と、映像のコーディングされた表現との間の変換を実行することを含み、コーディング表現は、1または複数の映像ブロックのAMVR(Adaptivr Motion Vector Difference Resolution)コーディングに関する情報を信号通知するためのフォーマット規則に準拠し、フォーマット規則は、第1のコーディングモードを使用してコーディングされた第1の映像ブロックのAMVR精度インデックスのビンと、第2のコーディングモードを使用してコーディングされた第2の映像ブロックのAMVR精度インデックスのビンとを、同一のコンテキストを使用してコーディングすることを規定する。
【0008】
別の例示的な態様において、別の映像を処理する方法が開示される。この方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、映像ブロックは、1または複数の垂直および/または1または複数の水平分割に分割され、コーディングされた表現は、映像ブロックの分割情報のコンテキストベースのコーディングを規定するフォーマット規則に準拠する。
【0009】
別の例示的な態様において、別の映像を処理する方法が開示される。この方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、変換係数の符号を示すためにコンテキストコーディングまたはバイパスコーディングのいずれを使用するかを決定するために使用されるコーディング条件を規定する。
【0010】
別の例示的な態様において、別の映像を処理する方法が開示される。この方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、変換スキップ残差コーディング処理の第3または残差係数走査パスにおける残りの構文要素のバイパスコーディングの開始時に、残りの許可されたコンテキストコーディングされたビンの数を規定する変数に処理が適用されることを規定する。
【0011】
別の例示的な態様において、上述された方法は、プロセッサを含む映像エンコーダ装置によって実装されてもよい。
【0012】
さらに別の例示的な態様において、これらの方法は、プロセッサ実行可能命令の形式で実施されてもよく、コンピュータ可読プログラム媒体に記憶されてもよい。
【0013】
これらの、および他の態様は、本明細書でさらに説明される。
【図面の簡単な説明】
【0014】
図1】エンコーダブロック図の例を示す。
図2】67個のイントラ予測モードの例を示す。
図3A】4パラメータアフィンモデルの例を示す。
図3B】6パラメータアフィンモデルの例を示す。
図4】サブブロックごとのアフィンMVFの例を示す。
図5】継承されたアフィン動き予測子の一の例を示す。
図6】制御点動きベクトル継承の例を示す。
図7】構成されたアフィンマージモードのための候補位置の例を示す。
図8】提案された結合された方法のための動きベクトル使用の説明図である。
図9】サブブロックMV VSBおよび画素Δv(i,j)の例を示す。(赤矢印)
図10】マルチタイプのツリー分割モードを例示する。
図11】ネストされたマルチタイプのツリーコーディングツリー構造を有する4分木における分割フラグの信号通知の例を示す。
図12】映像処理システム例のブロック図である。
図13】映像処理装置の例を示す。
図14】映像処理方法の例を示すフローチャートである。
図15】本開示のいくつかの実施形態による映像コーディングシステムを示すブロック図である。
図16】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
図17】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
図18】本技術の1または複数の実施形態にしたがった映像処理方法を示すフローチャートである。
図19】本技術の1または複数の実施形態にしたがった別の映像処理方法を示すフローチャートである。
図20】本技術の1または複数の実施形態にしたがったさらに別の映像処理方法を示すフローチャートである。
【発明を実施するための形態】
【0015】
本明細書は、展開または復号されたデジタル映像または画像の品質を向上させるために、画像または映像ビットストリームのデコーダによって使用できる様々な技術を提供する。簡潔にするために、本明細書では、用語「映像」は、一連のピクチャ(従来から映像と呼ばれる)および個々の画像の両方を含むように使用される。さらに、映像エンコーダは、さらなる符号化に使用される復号されたフレームを再構成するために、符号化の処理中にこれらの技術を実装してもよい。
【0016】
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示された実施形態をその章にのみ限定するものではない。このように、ある章の実施形態は、他の章の実施形態と組み合わせることができる。
【0017】
1. 概要
本明細書は、映像コーディング技術に関する。具体的には、画像/映像コーディングにおけるAMVR(Adaptive Motion Vector Resolution)、ブロック分割などのコーディングツールに関連する。HEVCのような既存の映像コーディング規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像コーディング規格または映像コーデックにも適用可能である。
【0018】
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 Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJoint Video Expert Team(JVET)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0019】
2.1. 典型的な映像コーデックのコーディングフロー
図1は、3つのインループフィルタリングブロック、すなわちDF(Deblocking Filter)、SAO(Sample Adaptive Offset)およびALFを含むVVCのエンコーダブロック図の例を示す。予め定義されたフィルタを使用するDFとは異なり、SAOおよびALFは、現在のピクチャのオリジナルサンプルを利用し、オフセットおよびフィルタ係数を信号通知するコーディングされた側の情報を用いて、それぞれ、オフセットを追加することにより、および、FIR(Finite Impulse Response)フィルタを適用することにより、元のサンプルと再構成サンプルとの間の平均二乗誤差を低減する。ALFは、各ピクチャの最後の処理段階に位置し、前の段階で生成されたアーチファクトを捕捉し、修正しようとするツールと見なすことができる。
【0020】
2.2. 67個のイントラ予測モードを有するイントラモードコーディング
自然映像に表される任意のエッジ方向をキャプチャするために、指向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。追加の指向性モードは、図2において赤い点線の矢印で示され、平面モードとDCモードは同じままである。これらのより密度の高い指向性イントラ予測モードは、すべてのブロックサイズ、および輝度および彩度イントラ予測の両方に適用される。
【0021】
従来の角度イントラ予測方向は、図2に示すように、時計回り方向に45度から-135度まで規定される。VTMにおいて、いくつかの従来の角度イントラ予測モードは、非正方形のブロックのために、広角イントラ予測モードに適応的に置き換えられる。置換されたモードは、元の方法を使用して信号通知され、構文解析後、広角モードのインデックスに再マッピングされる。イントラ予測モードの総数は変化せず、例えば、67であり、イントラモードコーディングは変化しない。
【0022】
HEVCにおいて、すべてのイントラコーディングされたブロックは正方形の形状を有し、その辺の各々の長さは2の累乗である。このように、DCモードを使用してイントラ予測子を生成するのに、除算演算を必要としない。VVCにおいて、ブロックは、一般的な場合、ブロックごとに除算演算を使用することが必要な長方形を有することがある。DC予測のための除算演算を回避するために、長辺のみを使用して非正方形のブロックの平均を計算する。
【0023】
2.3. インター予測
各インター予測CUに対し、動きベクトル、参照ピクチャインデックス、および参照ピクチャリスト使用インデックスで構成される動きパラメータ、並びにVVCの新しいコーディング特徴に必要な追加情報が、インター予測サンプル生成に使用される。動きパラメータは、明示的または暗示的に信号通知されてもよい。CUがスキップモードでコーディングされる場合、CUは1つのPUに関連付けられ、有意な残差係数、コーディングされた動きベクトル差分、または参照ピクチャインデックスを有さない。マージモードが規定され、これにより、空間的および時間的候補、並びにVVCに導入された追加のスケジュールを含む、現在のCUのための動きパラメータを、近傍のCUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたCUに適用することができる。マージモードの代替案は、動きパラメータを明確に送信することであり、動きベクトル、各参照ピクチャリストおよび参照ピクチャリスト使用フラグに対応する参照ピクチャインデックス、並びに他の必要な情報が、CUごとに明確に信号通知される。
【0024】
2.4. IBC(Intra Block Copy)
IBC(Intra Block Copy)は、SCCのHEVC拡張に採用されているツールである。これにより、スクリーンコンテンツマテリアルのコーディング効率が有意に向上することが知られている。IBCモードはブロックレベルコーディングモードとして実装されるので、BM(Block Matching)が、エンコーダにおいて実行され、CUごとに最適なブロックベクトル(または動きベクトル)を見出す。ここで、ブロックベクトルは、現在のブロックから、現在のピクチャの内部で既に再構成された参照ブロックへの変位を示すために使用される。IBCコーディングされたCUの輝度ブロックベクトルは、整数精度である。彩度ブロックベクトルは、整数精度にも丸められる。AMVRと組み合わせた場合、IBCモードは、1画素と4画素の動きベクトル精度を切り替えることができる。IBCコーディングされたCUは、イントラ予測モードまたはインター予測モード以外の第3の予測モードとして扱われる。IBCモードは、幅および高さの両方が64の輝度サンプル以下のCUに適用可能である。
【0025】
エンコーダ側では、IBCのためにハッシュベースの動き推定が実行される。エンコーダは、16の輝度サンプル以下の幅または高さを有するブロックに対してRDチェックを行う。非マージモードの場合、まず、ハッシュベースの検索を使用してブロックベクトル検索が実行される。ハッシュ検索が有効な候補を返さない場合、ブロックマッチングベースの局所検索が実行される。
【0026】
ハッシュベースの検索において、現在のブロックと参照ブロックとのハッシュキーマッチング(32ビットCRC)は、全ての許容されるブロックサイズに拡大される。現在のピクチャにおけるすべての位置のためのハッシュキーの計算は、4×4のサブブロックに基づく。現在のブロックのサイズがより大きい場合、すべての4×4のサブブロックのすべてのハッシュキーが対応する参照位置のハッシュキーに合致する場合には、ハッシュキーは参照ブロックのそれに合致すると決定される。複数の参照ブロックのハッシュキーが現在のブロックのハッシュキーに合致すると分かった場合、合致した各参照ブロックのブロックベクトルコストを計算し、最小限のコストを有するものを選択する。ブロックマッチング検索において、検索範囲は前のCTUおよび現在のCTUの両方をカバーするように設定される。
【0027】
CUレベルにおいて、IBCモードはフラグで信号通知され、IBC AMVPモードまたはIBCスキップ/マージモードとして以下のように信号通知され得る。
【0028】
-IBCスキップ/マージモード:マージ候補インデックスを使用して、近傍の候補IBCコーディングされたブロックからのリストにおいて、どのブロックベクトルを使用して現在のブロックを予測するかを示す。マージリストは、空間候補、HMVP候補、およびペアワイズ候補からなる。
【0029】
-IBC AMVPモード:ブロックベクトル差分を動きベクトル差分と同様にコーディングする。ブロックベクトル予測方法は、2つの候補を予測子として使用し、1つは左の近傍からのものであり、1つは上の近傍のものである(IBCコーディングされている場合)。いずれかの近傍が利用可能でない場合、デフォルトのブロックベクトルが予測子として使用される。ブロックベクトル予測子インデックスを示すように、フラグが信号通知される。
【0030】
2.5. アフィン動き補償予測
HEVCにおいて、MCP(Motion Compensation Prediction)のために並進運動モデルのみが適用される。一方、現実世界において、動きには様々な種類があり、例えば、ズームイン/ズームアウト、回転、透視運動、および他の不規則な動きがある。VVCにおいて、ブロックベースのアフィン変換動き補償予測が適用される。図3Aから図3Bに示すように、ブロックのアフィン動きフィールドは、2つの制御点の動き情報(4パラメータ)または3つの制御点動きベクトル(6パラメータ)によって説明される。
【0031】
図6は、制御点動きベクトル継承の例を示す。
【0032】
4パラメータアフィンモーションモデルの場合、ブロック内のサンプル位置(x,y)の動きベクトルは以下のように導出される。
【0033】
【数1】
【0034】
6パラメータアフィンモーションモデルの場合、ブロック内のサンプル位置(x,y)の動きベクトルは以下のように導出される。
【0035】
【数2】
【0036】
ここで、(mv0x,mv0y)は左上隅制御点の動きベクトル、(mv1x,mv1y)は右上隅の制御点の動きベクトル、(mv2x,mv2y)は左下隅の制御点の動きベクトルである。
【0037】
動き補償予測を簡単にするために、ブロックに基づくアフィン変換予測が適用される。各4×4の輝度サブブロックの動きベクトルを導出するために、各サブブロックの中心サンプルの動きベクトルを、図4に示すように、上記方程式に従って算出し、1/16の端数精度に丸める。そして、動き補償補間フィルタを適用し、導出された動きベクトルを用いて各サブブロックの予測を生成する。また、彩度成分のサブブロックサイズは4×4に設定される。4×4の彩度サブブロックのMVは、対応する4×4の輝度サブブロックのMVの平均値として計算される。
【0038】
並進動きインター予測と同様に、アフィンマージモードとアフィンAMVPモードの2つのアフィン動きインター予測がある。
【0039】
2.5.1. アフィンマージ予測
AF_MERGEモードを、幅および高さの両方が8以上のCUに適用することができる。このモードでは、空間的近傍のCUの動き情報に基づいて、現在のCUのCPMVを生成する。CPMVP候補は最大5つまであり、インデックスは、現在のCUに使用されるべきものを示すように信号通知される。以下の3種類のCPVM候補を使用して、アフィンマージ候補リストを形成する。
-近傍のCUのCPMVから外挿した継承されたアフィンマージ候補
-近傍のCUの並進MVを使用して導出された構築されたアフィンマージ候補CPMVP
-ゼロMV
【0040】
VVCにおいて、近傍のブロックのアフィン動きモデルに由来する最大2つの継承されたアフィン候補があり、1つは左の近傍のCUから、1つは上の近傍のCUからである。候補ブロックは図5に示す。左の予測子の場合、スキャン順序はA0->A1であり、上の予測子の場合、スキャン順序はB0->B1->B2である。各側から1つ目の継承された候補のみを選択する。2つの継承された候補間でプルーニングチェックは行われない。近傍のアフィンCUが識別されると、その制御点動きベクトルを使用して、現在のCUのアフィンマージリストにおけるCPMVP候補を導出する。図に示すように、近傍の左下のブロックAがアフィンモードでコーディングされる場合、ブロックAを含むCUの左上隅、右上隅、左下隅の動きベクトルv、v、vが得られる。4パラメータアフィンモデルでコーディングする場合、vおよびvにより現在のユニットの2つのCPMVを算出する。ブロックAが6パラメータアフィンモデルでコーディングされる場合、v、vおよびvに基づいて、現在のCUの3つのCPMVを算出する。
【0041】
構築されたアフィン候補は、各制御点の近傍並進運動情報を組み合わせて候補を構築することを意味する。図7に示される特定された空間的近傍および時間的近傍から制御点の動きを導出する。CPMV(k=1,2,3,4)は、k番目の制御点を表す。CPMVの場合、B2->B3->A2ブロックがチェックされ、第1の使用可能なブロックのMVが使用される。CPMVの場合、B1→B0ブロックがチェックされ、CPMVのために、A1→A0ブロックがチェックされる。使用可能であれば、CPMVとしてTMVPが使用される。
【0042】
4つの制御点のMVに達した後、その動き情報に基づいてアフィンマージ候補を構築する。制御点MVの以下の組み合わせを使用して順番に構築する。
{CPMV,CPMV,CPMV},{CPMV,CPMV,CPMV},{CPMV,CPMV,CPMV},{CPMV,CPMV,CPMV},{CPMV,CPMV},{CPMV,CPMV
【0043】
3つのCPMVの組み合わせは、6パラメータアフィンマージ候補を構成し、2つのCPMVの組み合わせは、4パラメータアフィンマージ候補を構成する。動きスケーリングプロセスを回避するために、制御点の基準指標が異なる場合、制御点MVの関連する組み合わせを廃棄する。
【0044】
継承されたアフィンマージ候補および構築されたアフィンマージ候補をチェックした後、リストがまだ満杯でない場合、ゼロMVをリストの末端に挿入する。
【0045】
2.5.2. アフィンAMVP予測
アフィンAMVPモードを、幅および高さの両方が16以上のCUに適用することができる。アフィンAMVPモードが使用されるかどうかを示すために、CUレベルのアフィンフラグがビットストリームにおいて信号通知され、次いで、4パラメータアフィンであるか6パラメータアフィンであるかどうかを示すために、別のフラグが信号通知される。このモードにおいて、現在のCUのCPMVとその予測子CPMVPとの差がビットストリームにおいて信号通知される。アフィンAVMP候補リストサイズは2であり、以下の4つのタイプのCPVM候補を順に使用して生成される。
-近傍のCUのCPUMVから外挿した継承されたアフィンAMVP候補
-近傍のCUの並進MVを使用して導出された構築されたアフィンAMVP候補CPMVP
-近傍のCUからの並進MV
-ゼロMV
【0046】
継承されたアフィンAMVP候補のチェック順は、継承されたアフィンマージ候補のチェック順と同じである。唯一の違いは、AVMP候補の場合、現在のブロックと同じ参照ピクチャを有するアフィンCUのみを考慮することである。継承されたアフィン動き予測子を候補リストに挿入する場合、プルーニング処理は適用されない。
【0047】
構築されたAMVP候補は、図7に示す規定された空間的近傍から導出される。アフィンマージ候補構築で行ったものとして、同じチェック順が使用される。また、近傍のブロックの参照ピクチャインデックスもチェックする。インターコーディングされ、かつ、現在のCUと同じ参照ピクチャを有する、チェック順の第1のブロックが使用される。現在のCUが4パラメータアフィンモードでコーディングされ、かつ、mvおよびmvが両方とも利用可能である場合、それらをアフィンAMVP一覧に1つの候補として追加する。現在のCUが6パラメータアフィンモードでコーディングされ、かつ、3つのCPMVすべてが利用可能である場合、それらをアフィンAMVPリストにおける1つの候補として追加する。そうでない場合、構築されたAMVP候補を利用不可能に設定する。
【0048】
継承されたアフィンAMVP候補および構築されたAMVP候補をチェックした後、アフィンAMVP一覧候補が依然として2未満である場合、利用可能であれば、mv、mv、およびmvの順に、現在のCUのすべての制御点MVを予測する並進MVとして追加される。最後に、まだアフィンAMVPリストがすべて満たされていない場合は、満たすためにゼロMVを使用する。
【0049】
2.5.3. アフィン動き情報記憶域
VVCにおいて、アフィンCUのCPUMVは、別個のバッファに記憶される。記憶されたCPMVは、最近コーディングされたCUのために、アフィンマージモードおよびアフィンAMVPモードで継承されたCPMVPを生成するためだけに用いられる。CPMVから導出されたサブブロックMVは、動き補償、並進MVのマージ/AMVPリストのMV導出、およびデブロッキングに用いられる。
【0050】
追加のCPUMVのためのピクチャラインバッファを回避するために、上のCTUからのCUからのアフィン動きデータの継承は、通常の近傍のCUからの継承とは異なるように扱われる。アフィン動きデータ継承の候補CUが上のCTUラインにある場合、アフィンMVPの導出には、CPMVの代わりに、ラインバッファにおける左下および右下のサブブロックMVを用いる。このようにして、CPMVはローカルバッファにのみ記憶される。候補CUが6パラメータアフィンコーディングされている場合、アフィンモデルは4パラメータモデルに低下される。図8に示すように、CTUの上限に沿って、CUの左下および右下のサブブロック動きベクトルを用いて、下限のCTUにおけるCUをアフィン継承する。
【0051】
2.5.4. アフィンモードのためのオプティカルフローによる予測改善
サブブロック・ベースのアフィン動き補償は、予測精度の犠牲を払って、メモリアクセス帯域幅を節約し、ピクセル・ベースの動き補償に比べて計算の複雑さを低減することができる。動き補償のより微細な粒度を実現するために、PROF(Prediction Refinement with Optical Flow)は、動き補償のためのメモリアクセス帯域幅を増加させることなく、サブブロックに基づくアフィン動き補償予測を改善するために用いられる。VVCにおいて、サブブロックに基づくアフィン動き補償を行った後、オプティカルフロー方程式で導出された差を加算することで、輝度予測サンプルを微調整する。PROFは、以下の4つのステップとして説明される。
【0052】
ステップ1)サブブロックに基づくアフィン動き補償を行い、サブブロック予測I(i,j)を生成する。
ステップ2)3タップフィルタ[-1,0,1]を使用して、個々のサンプル位置において、サブブロック予測の空間的勾配g(i,j)およびg(i,j)を算出する。勾配計算は、BDOFの勾配計算と全く同じである。
【0053】
【数3】
【0054】
shift1は勾配の精度を制御するために使用される。サブブロック(例えば、4×4)予測は、勾配計算のために各側で1つのサンプルだけ拡大される。付加的なメモリ帯域幅および付加的な補間計算を避けるために、拡大された境界線上のこれらの拡大されたサンプルは、参照ピクチャにおける最も近い整数ピクセル位置からコピーされる。
【0055】
ステップ3)以下のオプティカルフロー方程式により輝度予測改善を算出する。
【0056】
【数4】
【0057】
ここで、Δv(i,j)は、図9に示すように、v(i,j)で表される、サンプル位置(i,j)のため0に算出されたサンプルMVと、サンプル(i,j)が属するサブブロックのサブブロックMVとの差分である。このΔv(i,j)は、1/32輝度サンプル精度の単位で量子化される。
【0058】
サブブロック中心に対するアフィンモデルパラメータおよびサンプル位置はサブブロックごとに変化しないので、第1のサブブロックについてΔv(i,j)を計算し、同じCU内の他のサブブロックに再利用することができる。dx(i,j)およびdy(i,j)を、サンプル位置(i,j)からサブブロック(xSB,ySB)の中心までの水平および垂直のオフセットであるとすると、Δv(x,y)は、以下の式で導出することができる。
【0059】
【数5】
【0060】
精度を維持するために、サブブロック(xSB,ySB)の中心は、((WSB-1)/2,(HSB-1)/2)として計算され、ここで、WSBおよびHSBは、それぞれ、サブブロックの幅および高さである。
【0061】
4パラメータアフィンモデルの場合、
【0062】
【数6】
【0063】
6パラメータアフィンモデルの場合、
【0064】
【数7】
【0065】
ここで、(v0x,v0y)、(v1x,v1y)、(v2x,v2y)、は左上、右上、左下の制御点動きベクトルであり、w、hはCUの幅および高さである。
【0066】
ステップ4)最後に、サブブロック予測I(i,j)に輝度予測の改善ΔI(i,j)を加える。最終予測I’は、次の方程式のように生成される。
【0067】
【数8】
【0068】
PROFは、アフィンコーディングされたCUの場合、2つのケースで適用されない。1)すべての制御点MVは同じであり、これは、CUが並進運動のみを有することを示す。2)サブブロックに基づくアフィンMCは、大きなメモリアクセス帯域幅要件を回避するために、CUに基づくMCに劣化するので、アフィン運動パラメータは、規定された制限よりも大きい。
【0069】
PROFを用いたアフィン動き推定の符号化の複雑度を低減するために、高速符号化方法が適用される。次の2つの状況、即ち、a)このCUがルートブロックでなく、その親ブロックがアフィンモードをそのベストモードとして選択しない場合、現在のCUがアフィンモードをベストモードとして選択する可能性が低いので、PROFは適用されず、b)4つのアフィンパラメータ(C、D、E、F)の大きさがすべて予め定義された閾値よりも小さく、現在のピクチャが低遅延ピクチャでない場合、PROFによって導入される改善はこの場合には小さいので、PROFは適用されない。このようにして、PROFによるアフィン動き推定を高速化することができる。
【0070】
2.6. ブロック分割の例示的な可用性プロセス
6.4.1 許容されたクアッド分割プロセス
この処理への入力は以下の通りである。
-輝度サンプルにおけるコーディングブロックサイズcbSize、
-マルチタイプツリーの深さmttDepth、
-単一ツリー(SINGLE_TREE)またはデュアルツリーを使用してコーディングツリーノードを分割するかどうか、およびデュアルツリーを使用する場合、輝度(DUAL_TREE_LUMA)または彩度成分(DUAL_TREE_CHROMA)を現在処理しているかどうかを規定する変数treeType。
-イントラ(MODE_INTRA)、IBC(MODE_IBC)、インターコーディングモードを使用できるか(MODE_TYPE_ALL)、またはイントラコーディングモードおよびIBCコーディングモードのみを使用できるか(MODE_TYPE_INTRA)、またはインターコーディングモードのみを使用できるか(MODE_TYPE_INTER)を規定する変数modeType。
【0071】
この処理の出力が変数allowSplitQtである。
変数allowSplitQtが、以下のように導出される。
-以下の条件の1または複数が真である場合、allowSplitQtはFALSEに設定される。
-treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しく、cbSizeがMinQtSizeY以下である
-treeTypeがDUAL_TREE_CHROMAに等しく、cbSizeが(MinQtSizeC*SubHeightC/SubWidthC)以下である
-mttDepthが0に等しくない
-treeTypeがDUAL_TREE_CHROMAに等しく、(cbSize/SubWidthC)が4 以下である
-treeTypeがDUAL_TREE_CHROMAに等しく、modeTypeがMODE_TYPE_INTRAに等しい
-そうでない場合、allowSplitQtがTRUEに設定される。
【0072】
6.4.2 許可されたバイナリ分割処理
この処理への入力は以下の通りである。
-バイナリ分割モードbtSplit、
-輝度サンプルにおけるコーディングブロック幅cbWidth、
-輝度サンプルにおけるコーディングブロックの高さcbHeight、
-ピクチャの左上の輝度サンプルに対する、考慮されるコーディングブロックの左上の輝度サンプル位置(x0,y0)、
-マルチタイプツリーの深さmttDepth、
-maxMttDepthがオフセットされた最大マルチタイプツリー深さ、
-最大2分木サイズmaxBtSize、
-最小4分木サイズminQtSize、
-分割インデックスpartIdx、
-単一ツリー(SINGLE_TREE)またはデュアルツリーを使用してコーディングツリーノードを分割するかどうか、およびデュアルツリーを使用する場合、輝度(DUAL_TREE_LUMA)または彩度成分(DUAL_TREE_CHROMA)を現在処理しているかどうかを規定する変数treeType。
-イントラ(MODE_INTRA)、IBC(MODE_IBC)、インターコーディングモードを使用できるか(MODE_TYPE_ALL)、またはイントラコーディングモードおよびIBCコーディングモードのみを使用できるか(MODE_TYPE_INTRA)、またはインターコーディングモードのみを使用できるか(MODE_TYPE_INTER)を規定する変数modeType。
【0073】
この処理の出力が変数allowBtSplitである。
【0074】
表2-1 btSplitに基づくparallelTtSplit、cbSizeの仕様
【0075】
【表1】
【0076】
表2-1に示すように、変数parallelTtSplitおよびcbSizeを導出する。
変数allowBtSplitが、以下のように導出される。
-以下の1または複数の条件が真である場合、allowBtSplitはFALSEに設定される。
-cbSizeがMinBtSizeY以下である
-cbWidthがmaxBtSizeより大きい
-cbHeightがmaxBtSizeより大きい
-mttDepthがmaxMttDepth以上である
-treeTypeがDUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)*(cbHeight/SubHeightC)が16以下である
-treeTypeがDUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)が4に等しく、btSplitがSPLIT_BT_VERに等しい
-treeTypeがDUAL_TREE_CHROMAに等しく、modeTypeがMODE_TYPE_INTRAに等しい
-cbWidth*cbHeightが32に等しく、modeTypeがMODE_TYPE_INTERに等しい
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-btSplitがSPLIT_BT_VERに等しい
-y0+cbHeightがpic_height_in_luma_samplesより大きい
【0077】
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-btSplitがSPLIT_BT_VERに等しい
-cbHeightが64より大きい
-x0+cbWidthがpic_width_in_luma_samplesより大きい
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-btSplitがSPLIT_BT_HORに等しい
-cbWidthが64より大きい
-y0+cbHeightがpic_height_in_luma_samplesより大きい
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-x0+cbWidthがpic_width_in_luma_samplesより大きい
-y0+cbHeightがpic_height_in_luma_samplesより大き い
-cbWidthがminQtSizeより大きい
【0078】
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-btSplitがSPLIT_BT_HORに等しい
-x0+cbWidthがpic_width_in_luma_samplesより大きい
-y0+cbHeightがpic_height_in_luma_samples以下である
-そうでない場合に、以下のすべての条件が真である場合、allowBtSplitはFALSEに等しく設定される。
-mttDepthが0より大きい
-partIdx=1
-MttSplitMode[x0][y0][mttDepth-1]は、equaltoparallelTtSplitである。
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-btSplitがSPLIT_BT_VERに等しい
-cbWidthが64以下である
-cbHeightが64より大きい
-そうでない場合に、以下のすべての条件が満たされている場合、allowBtSplitはFALSEに設定される。
-btSplitがSPLIT_BT_HORに等しい
-cbWidthが64より大きい
-cbHeightが64以下である
-そうでない場合、allowBtSplitはTRUEに設定される。
【0079】
6.4.3 許容されたターナリ(ternary)分割処理
この処理への入力は以下の通りである。
-ターナリ分割モードttSplit、
-輝度サンプルにおけるコーディングブロック幅cbWidth、
-輝度サンプルにおけるコーディングブロックの高さcbHeight、
-ピクチャの左上の輝度サンプルに対する、考慮されるコーディングブロックの左上の輝度サンプル位置(x0,y0)、
-マルチタイプツリー深さmttDepth
-maxMttDepthがオフセットされた最大マルチタイプツリー深さ、
-最大3分木サイズmaxTtSize、
-単一ツリー(SINGLE_TREE)またはデュアルツリーを使用してコーディングツリーノードを分割するかどうか、およびデュアルツリーを使用する場合、輝度(DUAL_TREE_LUMA)または彩度成分(DUAL_TREE_CHROMA)を現在処理しているかどうかを規定する変数treeType、
-イントラ(MODE_INTRA)、IBC(MODE_IBC)、インターコーディングモードを使用できるか(MODE_TYPE_ALL)、またはイントラコーディングモードおよびIBCコーディングモードのみを使用できるか(MODE_TYPE_INTRA)、またはインターコーディングモードのみを使用できるか(MODE_TYPE_INTER)を規定する変数modeType。
【0080】
この処理の出力が変数allowTtSplitである。
表2-2 ttSplitに基づくcbSizeの仕様
【0081】
【表2】
【0082】
表2-2に示すように、変数cbSizeを導出する。
変数allowTtSplitが、以下のように導出される。
-以下の1または複数の条件が真である場合、allowTtSplitはFALSEに設定される。
-cbSizeが2*MinTtSizeY以下である
-cbWidthがMin(64,maxTtSize)より大きい
-cbHeightがMin(64,maxTtSize)より大きい
-mttDepthがmaxMttDepth以上である
-x0+cbWidthがpic_width_in_luma_samplesより大きい
-y0+cbHeightがpic_height_in_luma_samplesより大きい
-treeTypeがDUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)*(cbHeight/SubHeightC)が32以下である
-treeTypeがDUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)が8に等しく、ttSplitがSPLIT_TT_VERに等しい
-treeTypeがDUAL_TREE_CHROMAに等しく、modeTypeがMODE_TYPE_INTRAに等しい
-cbWidth*cbHeightが64に等しく、modeTypeがMODE_TYPE_INTERと等しい。
-そうでない場合、allowTtSplitがTRUEに設定される。
【0083】
6.4.4 近傍のブロック利用可能性の導出処理
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在のブロックの左上のサンプルの輝度位置(xCurr,yCurr)、
-現在のピクチャの左上の輝度サンプルに対して近傍のブロックで覆われた輝度位置(xNbY,yNbY)、
-利用可能性が予測モードに依存するかどうかを規定する変数checkPredModeY、
-現在のブロックの色成分を規定する変数cIdx。
【0084】
この処理の出力は、位置(xNbY,yNbY)をカバーする近傍のブロックの利用可能性であり、availableNと表される。
近傍のブロックの利用可能性availableNが、以下のように導出される。
-以下の1または複数の条件が真である場合、availableNはFALSEに設定される。
-xNbYが0未満である。
-yNbYが0未満である。
-xNbYがpic_width_in_luma_samples以上である。
-yNbYがpic_height_in_luma_samples以上である。
-IsAvailable[cIdx][xNbY][yNbY]はFALSEに等しい。
-近傍のブロックが現在のブロックとは異なるスライスに含まれている。
-近傍のブロックが現在のブロックとは異なるタイルに含まれている。
-sp_entropy_coding_sync_enabled_flagが1に等しく、(xNbY>CtbLog2SizeY)が(xCurr>CtbLog2SizeY)+1以上である。
-そうでない場合、availableNはTRUEに設定される。
以下のすべての条件が真である場合、availableNはFALSEに設定される。
-checkPredModeYがTRUEに等しい。
-availableNはTRUEに設定される。
-CuPredMode[0][xNbY][yNbY]がCuPredMode[0][xCurr][yCurr]に等しくない。
【0085】
2.7. AMVR(Adaptive Motion Vector Resolution)
HEVCにおいて、use_integer_mv_flagがスライスヘッダにおいて0である場合、1/4輝度サンプルの単位でMVD(Motion Vector Difference)(動きベクトルとCUの予測動きベクトルとの差)が信号通知される。VVCにおいて、CUレベルのAMVR(Adaptive Motion Vector Resolution)スキームが導入される。AMVRは、CUのMVDを異なる精度でコーディングすることを可能にする。現在のCUのモード(通常のAMVPモードまたはアフィンAVMPモードまたはIBCモード)に基づいて、現在のCUのMVDは、以下のように適応的に選択できる。
-通常AMVPモード:1/4輝度サンプル、1/2輝度サンプル、1輝度サンプルまたは4輝度サンプル
-アフィンAMVPモード:1/4輝度サンプル、1輝度サンプル、または1/16輝度サンプル
-IBCモード:1輝度サンプルまたは1/4輝度サンプル
【0086】
現在のCUが少なくとも1つの非ゼロMVD成分を有する場合、CUレベルMVD解像度表示が条件付きで通知される。すべてのMVD成分(すなわち、参照リストL0および参照リストL1の水平および垂直MVDの両方)がゼロである場合、1/4輝度サンプルMVD解像度が推論される。
【0087】
少なくとも1つの非ゼロMVD成分を有する、通常のAMVPインターモード(非IBC、非アフィン)でコーディングされたCUの場合、1/4輝度サンプルMVD精度がCUに使用されるかどうかを示すために、第1のフラグ(例えば、amvr_flag)が信号通知される。第1のフラグが0である場合、さらなる信号伝達は必要とされず、現在のCUのために1/4輝度サンプルMVD精度が使用される。そうでない場合、第2のフラグ(例えば、amvr_precision_idxの第1のビン)が、1/2輝度サンプルまたは他のMVD精度(1輝度サンプルまたは4輝度サンプル)が通常のAMVP CUに使用されることを示すように信号通知される。1/2輝度サンプルの場合、1/2輝度サンプル位置には、デフォルトの8タップ補間フィルタに代えて、6タップ補間フィルタが用いられる。そうでない場合、第3のフラグ(例えば、amvr_precision_idxの第2のビン)は、1つの輝度サンプルまたは4つの輝度サンプルのMVD精度が通常のAMVP_CUに使用されるかどうかを示すように信号通知される。
【0088】
アフィンAMVPモードでコーディングされたCUの場合、第2のフラグは、1輝度サンプルまたは1/16輝度サンプルのMVD精度が使用されるかどうかを示すために使用される。IBCモードでコーディングされたCUの場合、第1のフラグは信号通知されず、1に等しいと推測される。
【0089】
AMVRの現在の設計において、0に等しいamvr_flagは、動きベクトルの差の解像度が輝度サンプルの1/4であることを規定する。1に等しいamvr_flagは、動きベクトルの差の解像度がamvr_precision_idxによってさらに規定されることを規定する。
【0090】
amvr_precision_idxは、AmvrShiftとの動きベクトルの差の分解能を表2-3に定義することを規定する。
AMVRのための構文テーブル例
7.3.10.5 コーディングユニット構文
【0091】
【表3】
【0092】
【表4】
【0093】
【表5】
【0094】
【表6】
【0095】
具体的には、amvr_flagおよびamvr_precision_idxのビンの文字列をコーディングするためのビンの文字列およびコンテキストは以下のように定義される。
【0096】
【表7】
【0097】
【表8】
【0098】
【表9】
【0099】
【表10】
【0100】
7.4.11.5 コーディングユニット構文
amvr_precision_idx[x0][y0]は、AmvrShiftとの動きベクトル差の解像度を表2-3に定義することを規定する。配列インデックスx0,y0は、ピクチャの左上の輝度サンプルに対する、考慮されるコーディングブロックの左上の輝度サンプルの位置(x0,y0)を規定する。amvr_precision_idx[x0][y0]が存在しない場合、0に等しいと推論される。
【0101】
表2-3 AmvrShiftの仕様
【0102】
【表11】
【0103】
9.3.3 2値化処理
【0104】
表126-構文要素および関連する2値化
【0105】
【表12】
【0106】
【表13】
【0107】
9.3.2.2 コンテキスト変数の初期化処理
【0108】
表51-初期化処理における各initializationTypeのctxIdxと構文要素の関連付け
【0109】
【表14】
【0110】
表88-amvr_flagのctxIdxのinitValueおよびshiftIdxの仕様
【0111】
【表15】
【0112】
表89-amvr_precision_idxのctxIdxのinitValueおよびshiftIdxの仕様
【0113】
【表16】
【0114】
9.3.4.2 ctxTable,ctxIdx,bypassFlagの導出処理
9.3.4.2.1 一般
【0115】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0116】
【表17】
【0117】
2.8. 分割情報
VVCにおいて、バイナリおよびターナリ分割セグメンテーション構造を使用するネストされたマルチタイプツリーを有する4分木は、複数の分割ユニットタイプの概念に取って代わり、例えば、それは、最大変換長に対して大き過ぎるサイズを有するCUに必要な場合を除き、CU、PU、およびTU概念の分離を排除し、かつCU分割形状のためのより多くの柔軟性をサポートする。コーディングツリー構造において、CUは正方形または長方形のいずれかを有することができる。まず、CTU(Coding Tree Unit)を4分木構造で分割する。そして、4分木のリーフのノードは、マルチタイプのツリー構造によってさらに分割され得る。図10に示すように、マルチタイプツリー構造において4つ分割タイプ、垂直バイナリ分割(SPLIT_BT_VER)、水平バイナリ分割(SPLIT_BT_HOR)、垂直ターナリ分割(SPLIT_TT_VER)、水平ターナリ分割(SPLIT_TT_HOR)がある。マルチタイプツリーのリーフのノードは、CU(Coding Unit)と呼ばれ、CUが大き過ぎて最大変換長にならない限り、このセグメンテーションは、それ以上の分割なしに、予測および変換処理に使用される。これは、ほとんどの場合、CU、PU、およびTUが、ネストされたマルチタイプのツリーコーディングブロック構造を有する4分木において、同じブロックサイズを有することを意味する。サポートされる最大変換長がCUの色成分の幅または高さよりも小さい場合、この例外が生じる。
【0118】
図11は、ネストされたマルチタイプツリーコーディングツリーを有する4分木における分割情報の信号通知メカニズムを示す。CTU(Coding Tree Unit)は、4分木の根として取り扱われ、まず1つの4分木構造によって分割される。各4分木の葉ノード(十分に大きいため許容される場合)は、次に、マルチタイプツリー構造によってさらに分割される。マルチタイプツリー構造において、第1のフラグ(mtt_split_cu_flag)は、ノードがさらに分割されているかどうかを示すために信号通知され、ノードがさらに分割されている場合、第2のフラグ(mtt_split_cu_vertical_flag)は分割方向を示すために信号通知され、次に第3のフラグ (mtt_split_cu_binary_flag)が分割がバイナリ分割であるか、ターナリ分割であるかを示すために信号通知される。mtt_split_cu_vertical_flagおよびmtt_split_cu_binary_flagの値に基づいて、表2-4に示すように、CUのマルチタイプツリースリットモード(MttSplitMode)が導出される。
【0119】
表2-4 マルチタイプツリー構文要素に基づくMttSplitModeの導出
【0120】
【表18】
【0121】
mtt_split_cu_vertical_flag=0は、コーディングユニットを水平に分割することを規定する。mtt_split_cu_vertical_flag=1は、コーディングユニットを垂直に分割することを規定する。mtt_split_cu_vertical_flagが存在しない場合、次のように推論される。
-allowSplitBtHorがTRUEに等しい、またはallowSplitTtHorがTRUEに等しい場合、mtt_split_cu_vertical_flagの値は0に等しいと推測される。
-そうでない場合、mtt_split_cu_vertical_flagの値は1に等しいと推測される。
【0122】
mtt_split_cu_vertical_flagの構文テーブルの例
9.3.2.2 コンテキスト変数の初期化処理
【0123】
表51-初期化処理における各initializationTypeのctxIdxと構文要素の関連付け
【0124】
【表19】
【0125】
表61-mtt_split_cu_vertical_flagのctxIncのinitValueおよびshiftIdxの仕様
【0126】
【表20】
【0127】
9.3.4.2 ctxTable,ctxIdx,bypassFlagの導出処理
9.3.4.2.1 一般
【0128】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0129】
【表21】
【0130】
9.3.4.2.3 構文要素mtt_split_cu_vertical_flagのctxIncforの導出プロセス
この処理への入力は、現在のピクチャの左上のサンプルに対する現在の輝度ブロックの左上の輝度サンプル、デュアルツリーチャネルタイプchTypeおよび輝度サンプルにおける現在のコーディングブロックの幅と高さcbWidth、cbHeight、並びに節7.4.11.4にでコーディングツリー意味論において導出された変数allowSplitBtVer、allowSplitBtHor、allowSplitTVer、allowSplitTHor、allowSplitTHorおよびallowSplitである。
【0131】
この処理の出力はctxIncである。
位置(xNbL,yNbL)は(x0-1,y0)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbL,yNbL)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableLに割り当てられる。
位置(xNbA,yNbA)は(x0,y0-1)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbA,yNbA)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableAに割り当てられる。
【0132】
ctxIncの割り当ては、以下のように指定される。
-allowSplitBtVer+allowSplitBtHorがallowSplitTVer+allowSplitTTHorより大きい場合、ctxIncは4に設定される。
-そうでない場合、allowSplitBtVer+allowSplitBtHorがallowSplitTVer+allowSplitTTHorよりも小さい場合、ctxIncは4に等しく設定される。
-そうでない場合、以下が適用される:
-変数dAおよびdLは、以下のように導出される。
dA=cbWidth/(availableA?CbWidth[chType][xNbA][yNbA]:1) (1563)
dL=cbHeight/(availableL?CbHeight[chType][xNbL][yNbL]:1) (1564)
-以下の条件のいずれかが真である場合、ctxIncは0に等しく設定される。
-dAはdLに等しい、
-availableAはFALSEである
-availableLはFALSEである
-そうでない場合、dAがdLよりも小さい場合、ctxIncは1に等しく設定される。
そうでない場合、ctxIncは0に等しく設定される。
【0133】
2.9. 変換スキップモードにおける係数コーディング
現在のVVC草案において、残差コーディングを変換スキップレベルの統計および信号特性に適応させるために、非TS係数コーディングに比べて、TS(Transform Skip)モードにおける係数コーディングについていくつかの修正が提案されている。
【0134】
7.3.10.11 残差コーディング構文
【0135】
【表22】
【0136】
【表23】
【0137】
【表24】
【0138】
【表25】
【0139】
【表26】
【0140】
【表27】
【0141】
【表28】
【0142】
【表29】
【0143】
2.9.1. 符号フラグcoeff_sign_flagのコンテキストモデリングおよびコンテキストインデックスオフセット導出
【0144】
表51-初期化処理における各initializationTypeのctxIdxと構文要素の関連付け
【0145】
【表30】
【0146】
表125-coeff_sign_flagのctxIncのinitValueおよびshiftIdxの仕様
【0147】
【表31】
【0148】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0149】
【表32】
【0150】
9.3.4.2.10 変換スキップモードのための構文要素coeff_sign_flagのctxIncの導出プロセス
この処理への入力は、色成分インデックスcIdx、現在のピクチャの左上のサンプルに対して現在の変換ブロックの左上のサンプルを規定する輝度位置(x0,y0)、現在の係数スキャン位置(xC,yC)である。
このプロセスの出力は変数ctxIncである。
変数leftSignおよびaboveSignは、以下のように導出される。
leftSign=(xC==0)?0:CoeffSignLevel[xC-1][yC] (1595)
aboveSign=(yC==0)?0:CoeffSignLevel[xC][yC-1] (1596)
変数ctxIncは、以下のように導出される。
-leftSignが0に等しく、aboveSignが0に等しい場合、またはleftSignが-aboveSignに等しい場合、以下が適用される。
ctxInc=(BdpcmFlag[x0][y0][cIdx]==0?0:3) (1597)
-そうでない場合、leftSignが0以上かつaboveSignが0以上である場合、以下が適用される。
ctxInc=(BdpcmFlag[x0][y0][cIdx]?1:4) (1598)
-そうでない場合、以下が適用される:
ctxInc=(BdpcmFlag[x0][y0][cIdx]?2:5) (1599)
【0151】
3. 開示される技術的解決策および実施形態によって解決される技術的課題
AMVR精密インデックスおよび分割CU垂直フラグのためのコンテキスト導出プロセスの現在の設計は、以下の問題を有する。
1.ブロックを水平または垂直に分割することを規定する構文要素(例えば、mtt_split_cu_vertical_flag)のコンテキストモデリングは、「allowSplitBtVer+allowSplitBtHor」と「allowSplitTVer+allowSplitTHor」との間の関係に依存する。しかし、BT/TT水平を許可するよりも、分割情報とBT/TT垂直を許可する方が相関が大きいことに留意されたい。
2.現在のVVCにおいて、AMVR精度インデックス(例えば、amvr_precision_idx)の第1のビンは、ブロックがIBCモードでコーディングされるか、アフィンモードでコーディングされるか、または通常のインターモード(非IBC、非アフィン)でコーディングされるかを考慮せずに、1つのコンテキストでコンテキストコーディングされる。AMVR精度インデックスをコーディングすることは、あまり効率的でない場合がある。また、通常のインターモードを有するブロックに対してコーディングされるamvr_precision_idxの第2のビンは、amvr_precision_idxの第1のビンに使用されるコンテキストとは別個のコンテキストを使用する。構文要素のコーディングに使用される複数のコンテキストは、構文要素のコーディング頻度が低い場合、最適でない場合がある。
3.係数コーディングは、画面コンテンツのコーディングにおいてコーディングの利点を実現することができるが、係数コーディングおよびTSモードは、依然としていくつかの欠点を有する可能性がある。
a.符号フラグにバイパスコーディングを使用するか、コンテキストコーディングを使用するかは、このケースでは不明である。
i.残りの許可されたコンテキストコーディングされたビンの数(RemCcbsで表される)は、0に等しい。
ii.現在のブロックはTSモードでコーディングされる。
iii.slice_ts_residual_coding_disabled_flagは偽である。
【0152】
4. 技術的解決策および実施形態の一覧
以下の項目は、一般的な概念を説明するための例であると考えられるべきである。これら項目は狭い意味で解釈されるべきではない。さらに、これらの項目は、任意の方法で組み合わせることができる。
【0153】
本開示では、用語AMVRは、MV(Motion Vector)/MVD(MV Difference)コーディングまたはMVP(MV Predictor)のために適応動きベクトル差分解像度を使用するコーディングツールを表す。本発明は、VVCに記載されているAMVRおよびブロック分割技術に限定されるものではない。
【0154】
amvr_precision_idxは、許容される動きベクトルの差分解像度のインデックス(または指標)を規定する構文要素を表す。一例において、それはVVCテキストにおいて定義されるamvr_precision_idxであってもよい。なお、amvr_precision_idxは、1または複数のビンを含むことができるビンの文字列に2値化されてもよい。
【0155】
mtt_split_cu_vertical_flagは、コーディングブロックを垂直方向に分割するか否かを規定する構文要素を表す。一例において、それはVVCテキストに定義されたmtt_split_cu_vertical_flagであることができる。
【0156】
amvr_precision_idxのコンテキストの派生
1.AMVRの使用を示すSE(Syntax Element)の第1のビン(ビンインデックスが0に等しい)および/またはビンの文字列の他のビン(例えば、amvr_precision_idxおよび/またはamvr_flag)のためのコンテキストモデリング(例えば、コンテキストをどのように選択するか)は、現在のブロックおよび/または近傍のブロックのコーディングされた情報(例えば、コーディングされたモード)に依存してもよい。
a.一例において、コーディングされた情報は、IBC、アフィンAMVR、および通常のインター(例えば、非IBC、非アフィン)モード、双予測および/または単予測、現在のブロックのブロック寸法および/または近傍のブロックのブロック寸法のうちの少なくとも1つを備えてもよく、コーディングされた情報に基づいてビン(例えば、第1のビン)をコーディングするために異なるコンテキストを利用してもよい。
i.あるいは、IBCコーディングされたブロックの1つのビン(例えば、第1のビン)は、CtxMで示される単一のコンテキストでコーディングされる。
ii.あるいは、アフィンコーディングされたブロックのためのSEの1つのビン(例えば、第1のビン)は、CtxNによって表される単一のコンテキストでコーディングされる。
iii.あるいは、さらに、通常のインター(例えば、非アフィンおよび非IBC)コーディングされたブロックのためのSEの1つのビン(例えば、第1のビン)は、CtxPによって表される単一のコンテキストでコーディングされる。
iv.あるいは、3つのコンテキストCtxM、CtxN、CtxPのうち少なくとも1つのコンテキストが他の2つのコンテキストと異なる。
v.あるいは、3つのコンテキストCtxM、CtxN、CtxPは、それぞれ異なる。
vi.例えば、SEの1つのビン(例えば、第1のビン)は、双予測ブロックの場合、CtxBiで示される単一のコンテキストでコーディングされ、単予測コーディングブロックの場合、CtxUniで示される単一のコンテキストでコーディングされる。
1)一例において、CtxBiは、CtxUniとは異なる。
【0157】
b.一例において、2つ以上のコンテキストが、SEのビンストリングの第1のビンおよび/または他のビンをコーディングするために利用されてもよい。
i.一例において、第1のビンのためにX個のコンテキストを利用することができ、ここで、X>1である。
1)一例において、X=3である。
a)あるいは、さらに、コンテキストの選択は、コーディングされた情報(例えば、上述したモード)に依存する。
2)一例において、X=2である。
a)あるいは、さらに、コンテキストの選択は、コーディングされた情報(例えば、上述したモード)およびIBCコーディングブロックのための1つのコンテキストに依存し、他のブロック(例えば、アフィンまたは通常のインターコーディング)のための他のコンテキストに依存する。
b)あるいは、コンテキストの選択は、コーディングされた情報(例えば、上述したモード)、IBCおよびアフィンAMVRコーディングされたブロックの1つのコンテキスト、および、他のブロック(例えば、通常のインターコーディング)の1つのコンテキストに依存する。
c.一例において、コーディングされた情報(例えば、コーディングモード)に基づいて、SEのビンの文字列の第1のビン(ビンインデックスが0に等しい)および/または他のビンの異なるモデルを、異なる初期化値で初期化してもよい。
d.一例において、コーディングされた情報(例えば、コーディングモード)に基づいて、SEのビンの文字列の第1のビン(ビンインデックスが0に等しい)および/または他のビンの異なるモデルを、同じ初期化値で初期化してもよい。
【0158】
2.amvr_precision_idxのビンの文字列の第1および第2のビンのために様々なコンテキストを使用する代わりに、第2のビンをコーディングするために使用されるコンテキストは、ビンの文字列の第1のビンをコーディングするために使用されるコンテキストの1または複数と同じであってもよいことが提案される。
a.あるいは、ビンの文字列の第2のビンは、通常のインター(例えば、非アフィンおよび非IBC)コーディングブロックに対してのみコーディングされる。
b.あるいは、ビンの文字列の第2のビンは、CtxQで表される単一のコンテキストでコーディングされる。
c.あるいは、同じコンテキストが、IBCコーディングブロックに対するamvr_precision_idxの第1のビンをコーディングするために用いられ、通常のインターコーディングされたブロックに対するamvr_precision_idxの第2のビンをコーディングするために使用されてもよい。
d.あるいは、同じコンテキストが、アフィンコーディングされたブロックに対するamvr_precision_idxの第1のビンをコーディングするために使用され、通常のインターコーディングされたブロックに対するamvr_precision_idxの第2のビンをコーディングするために使用されてもよい。
e.あるいは、同じコンテキストが、通常のインターコーディングされたブロックに対するamvr_precision_idxの第1のビンをコーディングするために使用され、通常のインターコーディングブロックに対するamvr_precision_idxの第2のビンをコーディングするために使用されてもよい。
【0159】
3.IBCコーディングされたブロック(CtxMで示す)に対するamvr_precision_idxの第1のビンと通常のインターコーディングされたブロック(CtxQで示す)のためのamvr_precision_idxの第2のビンをコーディングするために、CtxM=CtxQのように、同じコンテキストが使用されてもよい。
a.一例において、amvr_precision_idxをコーディングするために、X1(例えば、X1=3)コンテキストを利用してもよい。
b.あるいは、非IBCコーディングされたブロックに対し、amvr_precision_idxのビンの文字列の第1のビンをコーディングするための様々なコンテキストを利用してもよい。
【0160】
4.IBCコーディングされたブロックに対するamvr_precision_idxの第1のビン、アフィンコーディングされたブロックに対するamvr_precision_idxの第1のビン、および通常のインターコーディングに対するamvr_precision_idxの第1のビンをコーディングするために、CtxM=CtxN=CtxPのように、同じコンテキストが使用されてもよい。
a.一例において、amvr_precision_idxをコーディングするために、X2(例えば、X2=2)コンテキストを利用してもよい。
b.あるいは、さらに、非IBCおよび非アフィンコーディングされたブロックに対し、amvr_precision_idxのビンの文字列の第1のビンをコーディングするための異なるコンテキストが利用されてもよい。
【0161】
5.IBCコーディングされたブロックに対するamvr_precision_idxの第1のビンおよび通常のインターコーディングされたブロックに対するamvr_precision_idxの第1のビンをコーディングするために、CtxM=CtxPのように、同じコンテキストが使用されてもよい。
a.一例において、amvr_precision_idxをコーディングするために、X3(例えば、X3=3)コンテキストを利用してもよい。
b.あるいは、非IBCおよび非通常のインターコーディングされたブロック(例えば、アフィンAMVRでコーディングされた)に対し、amvr_precision_idxのビンの文字列の第1のビンをコーディングするための異なるコンテキストが利用されてもよい。
c.あるいは、さらに、amvr_precision_idxのビンの文字列の第2のビンをコーディングするための異なるコンテキストが利用されてもよい。
【0162】
6.IBCコーディングされたブロックのためのamvr_precision_idxの第1のビン、およびアフィンコーディングされたブロックのためのamvr_precision_idxの第1のビンをコーディングするために、CtxM=CtxNのように、同じコンテキストが使用されてもよい。
7.IBCコーディングされたブロック、アフィンコーディングされたブロック、および通常のコーディングされたブロックに対し、amvr_precision_idxのすべてのビンをコーディングするために、同じコンテキストを使用してもよい。
a.一例において、単一のコンテキストは、amvr_precision_idxをコーディングするために利用してもよい。
【0163】
8.複数のコンテキストが、IBCコーディングされたブロック、アフィンコーディングされたブロック、および通常のインターコーディングされたブロックに対し、amvr_precision_idxの第1のビンをコーディングするために用いられてもよく、単一のコンテキストが、第1のビンをコーディングするために使用されるものとは異なる第2のビンをコーディングするために用いられてもよい。
a.一例において、amvr_precision_idxをコーディングするために、X4(例えば、X4=4)コンテキストを利用してもよい。
b.例えば、CtxM!=CtxQ!=CtxN!=CtxPである。
【0164】
9.amvr_precision_idxをコーディングするために使用される少なくとも1つのコンテキストは、amvr_flagをコーディングするために使用されるコンテキストと同じであってもよいことが提案される。
a.アフィンコーディングブロックのAMVRフラグ(例えば、amvr_flag)をコーディングするためのコンテキストと同じコンテキストが、IBCコーディングされたブロックに対するamvr_precision_idxの第1のビン、または/およびアフィンコーディングされたブロックに対するamvr_precision_idxの第1のビン、または/および通常のインターコーディングされたブロックに対するamvr_precision_idxの第1のビンまたは/および第2のビンのために用いられてもよい。
b.非アフィンコーディングされたブロックのAMVRフラグ(例えば、amvr_flag)をコーディングするためのコンテキストと同じコンテキストが、IBCコーディングされたブロックに対するamvr_precision_idxの第1のビン、または/およびアフィンコーディングされたブロックに対するamvr_precision_idxの第1のビン、または/および通常のインターコーディングされたブロックに対するamvr_precision_idxの第1のビンまたは/および第2のビンのために用いられてもよい。
c.amvr_precision_idxの第1のビンのコンテキストモデリングは、ブロックに対してアフィンモードが適用されるかどうかに依存する。
i.あるいは、さらに、1つのコンテキストが、アフィンコーディングされたブロックの第1のビンをコーディングするために使用され、他のコンテキストが、非アフィンコーディングされたブロック(例えば、通常のインターコーディングされたブロックおよびIBCコーディングされたブロックを含む)のために使用される。
ii.あるいは、さらに、第1のコンテキストが、アフィンコーディングされたブロックの第1のビンをコーディングするために使用され、第2のコンテキストが、非アフィンコーディングされたブロック(例えば、通常のインターコーディングされたブロックおよびIBCコーディングされたブロックを含む)のために使用される。第1のコンテキストは、アフィンコーディングされたブロックのamvr_flagのコーディングのために使用されるコンテキストと同じであり、第2のコンテキストは、非アフィンコーディングされたブロックのamvr_flagのコーディングに使用されるコンテキストと同じである。
【0165】
mtt_split_cu_vertical_flagのコンテキストの導出
変数allowSplitBtVer、allowSplitBtHor、allowSplitTVer、allowSplitTVer、allowSplitTHorが、現在のコーディングツリーノードに対して垂直BT分割、水平BT分割、垂直TT分割、水平TT分割が許可されたかどうかをそれぞれ示すとする。allowSplitBtVer、allowSplitBtHor、allowSplitTtVer、allowSplitTTVer、allowSplitTTHorの値は0または1に等しくてもよく、これらは章2.6で導出される。現在のブロックの幅、現在のブロックの高さ、左の近傍のブロックの幅、左の近傍のブロックの高さ、上の近傍のブロックの幅、および上の近傍のブロックの高さを、それぞれ、curW、curH、leftW、leftH、aboveW、およびaboveHで表す。「numV」をallowSplitBtVerとallowSplitTtVerの和に等しい値とし、「numH」をallowSplitBtHorとallowSplitTHorの和に等しい値とする。
【0166】
10.ブロック分割情報を示すSE(例えば、mtt_split_cu_vertical_flag)のコンテキストモデリングのためのコンテキストモデリングは、垂直分割を許可する数(例えば、BTおよびTT)および水平分割を許可する数(例えば、BTおよびTT)に依存してもよい。
a.一例において、水平分割と比較して垂直分割が許可された場合が多い場合(例えば、numV>numH)、第1のコンテキストのセットが利用される。
b.一例において、水平分割に比べて垂直分割が許可された場合が少ない(例えば、numV<numH)場合、第2のコンテキストのセットが利用される。
c.一例において、水平分割と比較して垂直分割が許可された場合が同じである(例えば、numV=numH)場合、第3のコンテキストのセットが利用される。
d.あるいは、さらに、第1/第2/第3のセットにおけるコンテキストはいずれも同じではない。
e.あるいは、さらに、第1/第2/第3のセットにおけるコンテキストのうち少なくとも1つは、別のセットに含まれるコンテキストと同じである。
f.あるいは、さらに、3つのセットそれぞれのコンテキストの数は、セットインデックスに依存してもよい。
i.一例において、1つのコンテキストのみが第1および/または第2のセットに含まれる。
ii.一例において、複数のコンテキストが第3のセットに含まれる。
1)あるいは、第3のセットからのコンテキストの選択は、上および左の近傍のブロックの利用可能性、および/または現在のブロックのブロック寸法および近傍のブロックのブロック寸法にさらに依存してもよい。
g.1つの例が、章5.4の実施形態#4に示されている。
h.1つの例が、章5.5の実施形態#5に示されている。
【0167】
11.1つのブロックを垂直に分割するかどうかを示すSE(例えば、mtt_split_cu_vertical_flag)は、BT/TT分割が許可されたかどうか、または/および現在のブロックの幅/高さ、または/および近傍のブロックの幅/高さに依存してよい、N個のコンテキストでコーディングされる。
i.一例において、SEをコーディングするためにどのコンテキストが使用されるかは、numVおよびnumHに依存してよい。
i.例えば、numVがnumHよりも大きいかどうかに依存する。
ii.例えば、numVがnumHよりも小さいかどうかに依存する。
iii. 例えば、numVがnumHに等しいかどうかは、平均に依存する。
【0168】
j.一例において、SEのビンストリングは、BT/TT分割が許可されたかどうかに基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
i.一例において、SEは、numVがnumHよりも大きい場合、CtxAによって表されるコンテキストでコーディングされる。
ii.一例において、SEは、numVがnumH未満である場合、CtxBによって表されるコンテキストでコーディングされる。
iii.一例において、SEは、numVがnumHに等しい場合、CtxCによって表されるコンテキストでコーディングされる。
iv.一例において、CtxAはCtxBに等しく、CtxBはCtxCに等しく(例えば、CtxA=CtxB=CtxC)、例えば、CtxA=CtxB=CtxC=0である。
v.一例において、CtxA!=CtxB!=CtxCであり、例えば、CtxA=0,CtxB=1,CtxC=2である。
【0169】
k.一例において、SEのビンの文字列は、現在のブロックの幅/高さ、および/または近傍のブロックの幅/高さに基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
i.一例において、近傍のブロックは、上の近傍のブロック、または/および左の近傍のブロックを参照してよい。
ii.一例において、SEは、現在のブロックの幅または高さ、および/または近傍のブロックの幅または高さの関数に依存してよい、N個のコンテキストでコーディングされる。dA=curW/aboveWおよびdL=curH/leftHを表す。
1)一例において、SEは、左の近傍のブロックまたは上の近傍のブロックのいずれかが利用可能でない場合、またはdAがdLに等しい場合、CtxDによって表されるコンテキストでコーディングされる。
2)一例において、SEは、dAがdL未満である場合、CtxEによって表されるコンテキストでコーディングされる。
3)一例において、SEは、dAがdLよりも大きい場合、CtxFによって表されるコンテキストでコーディングされる。
【0170】
l.一例において、SEのビンの文字列は、BT/TT分割が許可されたかどうか、および/または現在のブロックの幅/高さ、および/または近傍のブロックの幅/高さに基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
i.一例において、SEは、numVがnumHよりも大きい場合、CtxAによって表されるコンテキストでコーディングされる。
ii.一例において、SEは、numVがnumH未満である場合、CtxBによって表されるコンテキストでコーディングされる。
iii.一例において、SEは、numVがnumHに等しい(左の近傍のブロックまたは上の近傍のブロックのいずれかが利用可能でない、またはdAがdLに等しい)場合、CtxCによって示されるコンテキストでコーディングされる。
iv.一例において、SEは、numVがnumHに等しく、dAがdL未満である場合、CtxEによって表されるコンテキストでコーディングされる。
v.一例において、SEは、numVがnumHに等しく、dAがdLよりも大きい場合、CtxFによって表されるコンテキストでコーディングされる。
一例において、N=5,CtxA!=CtxB!=CtxC!=CtxE!=CtxFである。
【0171】
m.一例において、SEのビンの文字列は、現在のブロックがピクチャ境界にあるかに基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
n.一例において、SEのビンの文字列は、デュアルツリーおよび/またはローカルデュアルツリーのいずれが適用されるかに基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
o.一例において、SEのビンの文字列は、分割されるサンプルの色成分に基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
p.一例において、SEのビンの文字列は、現在のブロックの幅/高さに基づいて、N個のコンテキストでコンテキストコーディングされてもよい。
i.一例において、コンテキスト増加手段は、ブロックの幅または高さの関数に設定されてもよい。
【0172】
12.分割CU垂直フラグ(例えば、mtt_split_cu_vertical_flag)は、単一のコンテキストでコーディングされてもよい。
【0173】
係数符号フラグのためにバイパスコーディングまたはコンテキストコーディングを使用する方法
【0174】
13.変換係数レベルの符号(例えば、構文要素coeff_sign_flag)のためにコンテキストコーディングを使用するか、バイパスコーディングを使用するかは、残りの許可されたコンテキストコーディングされたビンの数(例えば、RemCcbs)および/または現在のブロックに使用される変換の種類(例えば、DCT2、DST7、または変換スキップ)に依存する。
a.一例において、変換スキップ残差コーディングの処理において、RemCcbsがT1より大きい(例えば、T1=0)場合、coeff_sign_flagにコンテキストコーディングを使用してもよい。
i.また、変換スキップ残差コーディングの手順において、RemCcbsがT1に等しい(例えば、T1=0)場合、coeff_sign_flagにバイパスコーディングを使用してもよい。
b.一例において、変換スキップ残差コーディングの処理において、RemCcbsがT2以上(例えば、T2=3)である場合、coeff_sign_flagにコンテキストコーディングを用いてもよい。
i.また、変換スキップ残差コーディングの処理において、RemCcbsがT2より小さい場合(例えば、T2=3)、coeff_sign_flagに対してバイパスコーディングを使用してもよい。
【0175】
14.変換スキップ残差コーディング処理の第3/剰余係数走査パスにおける残りの構文要素(例えば、構文要素abs_remainderおよびcoeff_sign_flag)に対するバイパスコーディングの開始時に、残りの許可されたコンテキストコーディングされたビンの数(例えば、RemCcbs)を規定する変数に1つの演算を適用してもよい。
c.一例において、この動作は、RemCcbsをある値(例えば、0)に等しくなるように設定してよい。
d.いくつかの実施形態において、動作は、RemCcbsを除く少なくとも1つの変数または構文要素に基づいて、RemCcbsを値に等しく設定することであってもよい。
i.一例において、この動作は、RemCcbsをRemCcbsから1を減算したものに等しくなるように設定することができる。
【0176】
15.1つの例が、章5.7の実施形態#7に示されている。
16. 1つの例が、章5.8の実施形態#8に示されている。
【0177】
17.変換係数レベル(例えば、coeff_sign_flag)がバイパスモードでコーディングされるか、またはコンテキストコーディングモードでコーディングされるかは、残りの許可されたコンテキストコーディングされたビンの数(例えば、RemCcbs)に依存してもよい。
e.残りの許可されたコンテキストコーディングされたビンの数(例えば、RemCcbs)がNよりも小さい場合、変換係数レベルの符号(例えば、coeff_sign_flag)をバイパスモードでコーディングすることが提案される。
f.一例において、符号フラグは、RemCcbs<=Nである場合、バイパスモードでコーディングされる。
i.あるいは、一例において、RemCcbs>Nである場合、符号フラグはコンテキストモードでコーディングされる。
g.一例において、RemCcbsがNに等しい場合、符号フラグはバイパスモードでコーディングされる。
i. あるいは、一例において、RemCcbs>Nである場合、符号フラグはバイパスモードでコーディングされる。
ii.一例において、Nは4に等しく設定されてもよい。
1)あるいは、一例において、Nは0に等しく設定されてもよい。
iii.一例において、RemCcbsは、変換係数レベルの残りの絶対値を復号する前に、Xに修正されてもよく、ここで、XはNに等しい。
【0178】
h.一例において、RemCcbsがN未満の場合、符号フラグはバイパスモードでコーディングされる。
i.あるいは、一例において、RemCcbs>=Nである場合、符号フラグはコンテキストモードでコーディングされる。
ii.一例において、Nは3に等しく設定されてもよい。
iii.一例において、RemCcbsは、変換係数レベルの残りの絶対値を復号する前に、Xに修正されてもよく、ここで、XはNよりも小さい。
i.一例において、Nは整数であり、以下に基づいてもよい。
i.SPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/LCU行/LCUのグループ/LCU/CUにおいて信号通知された指示
ii.現在のブロックおよび/またはその近傍のブロックのブロック寸法
iii.現在のブロックおよび/またはその近傍のブロックのブロック形状
iv.カラーフォーマットの表示(例えば、4:2:0、4:4:4)
v.別個またはデュアルのコーディングツリー構造が使用されているかどうか
vi.スライスのタイプおよび/またはピクチャのタイプ
vii.色成分の数
【0179】
j.変換係数レベルをコーディングするために使用されるコーディングコンテキスト(例えば、coeff_sign_flag)は、残りの許可されたコンテキストコーディングされたビンの数(例えば、RemCcbs)の数に依存してよい。
k.上記の例は、BDPCMコーディングされたブロックを含む、または含まない変換ブロックおよび/または変換スキップブロックに適用されてもよい。
【0180】
一般
【0181】
18.上記開示された方法を適用するかどうかおよび/またはどのように適用するかは、例えば、シーケンスヘッダ/ピクチャヘッダ/SPS/VPS/DPS/DCI/PPS/APS/スライスヘッダ/タイルグループヘッダにおいて、シーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで信号通知されてもよい。
19.上述した開示された方法を適用するかどうか、および/またはどのように適用するかは、カラーフォーマット、シングル/デュアルツリー分割等のコーディングされた情報に依存してもよい。
【0182】
5. 実施形態
以下は、上記第4章に要約されたいくつかの発明の態様のためのいくつかの例示的な実施形態であり、VVC仕様に適用できる。太字のイタリック体において、既に追加または修正された最も関連する部分には下線を付し、削除された部分のうちのいくつかは、[[]]を使用して示す。
【0183】
5.1. 実施形態1
9.3.2.2 コンテキスト変数の初期化処理
【0184】
表51-初期化処理における各initializationTypeのctxIdxと構文要素の関連付け
【0185】
【表33】
【0186】
表89-amvr_precision_idxのctxIdxのinitValueおよびshiftIdxの仕様
【0187】
【表34】
【0188】
9.3.4.2 ctxTable,ctxIdx,bypassFlagの導出処理
9.3.4.2.1 一般
【0189】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0190】
【表35】
【0191】
【化1】
【0192】
【表36】
【0193】
上記の例において、X!=Y,X!=Z,Y!=Zである。
代替的には、さらに以下を適用する:
1)一例において、WはXに等しい。
2)代替的に、WはYに等しい。
3)代替的に、WはZに等しい。
【0194】
5.2. 実施形態2
9.3.2.2 コンテキスト変数の初期化処理
【0195】
表51-初期化処理における各initializationTypeのctxIdxと構文要素の関連付け
【0196】
【表37】
【0197】
表89-amvr_precision_idxのctxIdxのinitValueおよびshiftIdxの仕様
【0198】
【表38】
【0199】
9.3.4.2 ctxTable,ctxIdx,bypassFlagの導出処理
9.3.4.2.1 一般
【0200】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0201】
【表39】
【0202】
【化2】
【0203】
5.3. 実施形態3
9.3.2.2 コンテキスト変数の初期化処理
【0204】
表51-初期化処理における各initializationTypeのctxIdxと構文要素の関連付け
【0205】
【表40】
【0206】
表89-amvr_precision_idxのctxIdxのinitValueおよびshiftIdxの仕様
【0207】
【表41】
【0208】
9.3.4.2 ctxTable,ctxIdx,bypassFlagの導出処理
9.3.4.2.1 一般
【0209】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0210】
【表42】
【0211】
5.4. 実施形態4
作業草案は、以下のように変更することができる。
9.3.4.2.3 構文要素mtt_split_cu_vertical_flagのctxIncforの導出プロセス
この処理への入力は、現在のピクチャの左上のサンプルに対する現在の輝度ブロックの左上の輝度サンプル、デュアルツリーチャネルタイプchTypeおよび輝度サンプルにおける現在のコーディングブロックの幅と高さcbWidth、cbHeight、並びに節7.4.11.4にでコーディングツリー意味論において導出された変数allowSplitBtVer、allowSplitBtHor、allowSplitTVer、allowSplitTHor、allowSplitTHorおよびallowSplitである。
【0212】
この処理の出力はctxIncである。
位置(xNbL,yNbL)は(x0-1,y0)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbL,yNbL)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableLに割り当てられる。
位置(xNbA,yNbA)は(x0,y0-1)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbA,yNbA)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableAに割り当てられる。
【0213】
【化3】
【0214】
5.5. 実施形態5
作業草案は、以下のように変更することができる。
9.3.4.2.3 構文要素mtt_split_cu_vertical_flagのctxIncforの導出プロセス
この処理への入力は、現在のピクチャの左上のサンプルに対する現在の輝度ブロックの左上の輝度サンプル、デュアルツリーチャネルタイプchTypeおよび輝度サンプルにおける現在のコーディングブロックの幅と高さcbWidth、cbHeight、並びに節7.4.11.4にでコーディングツリー意味論において導出された変数allowSplitBtVer、allowSplitBtHor、allowSplitTVer、allowSplitTHor、allowSplitTHorおよびallowSplitである。
この処理の出力はctxIncである。
位置(xNbL,yNbL)は(x0-1,y0)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbL,yNbL)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableLに割り当てられる。
位置(xNbA,yNbA)は(x0,y0-1)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbA,yNbA)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableAに割り当てられる。
【0215】
【化4】
【0216】
5.6. 実施形態6
作業草案は、以下のように変更することができる。
9.3.2.2 コンテキスト変数の初期化処理
【0217】
表51- 初期化プロセスにおける各initializatioTypeのctxIdxと構文要素の関連付け
【0218】
【表43】
【0219】
表61-mtt_split_cu_vertical_flagのctxIncのinitValueおよびshiftIdxの仕様
【0220】
【表44】
【0221】
9.3.4.2 ctxTable,ctxIdx,bypassFlagの導出処理
9.3.4.2.1 一般
【0222】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0223】
【表45】
【0224】
[[9.3.4.2.3 構文要素mtt_split_cu_vertical_flagのctxIncforの導出プロセス
この処理への入力は、現在のピクチャの左上のサンプルに対する現在の輝度ブロックの左上の輝度サンプル、デュアルツリーチャネルタイプchTypeおよび輝度サンプルにおける現在のコーディングブロックの幅と高さcbWidth、cbHeight、並びに節7.4.11.4にでコーディングツリー意味論において導出された変数allowSplitBtVer、allowSplitBtHor、allowSplitTVer、allowSplitTHor、allowSplitTHorおよびallowSplitである。
この処理の出力はctxIncである。
位置(xNbL,yNbL)は(x0-1,y0)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbL,yNbL)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableLに割り当てられる。
位置(xNbA,yNbA)は(x0,y0-1)に等しく設定され、節6.4.4に規定される近傍のブロックの利用可能性の導出処理は、(x0,y0)に等しく設定された位置(xCurr,yCurr)、(xNbA,yNbA)に等しく設定された近傍位置(xNbY,yNbY)、FALSEに設定されたcheckPredModeYおよびcIdxを入力として実行され、出力がavailableAに割り当てられる。
【0225】
ctxIncの割り当ては、以下のように指定される。
-allowSplitBtVer+allowSplitBtHorがallowSplitTVer+allowSplitTTHorより大きい場合、ctxIncは4に設定される。
-そうでない場合、allowSplitBtVer+allowSplitBtHorがallowSplitTVer+allowSplitTTHorよりも小さい場合、ctxIncは4に等しく設定される。
-そうでない場合、以下が適用される:
-変数dAおよびdLは、以下のように導出される。
dA=cbWidth/(availableA?CbWidth[chType][xNbA][yNbA]:1) (1563)
dL=cbHeight/(availableL?CbHeight[chType][xNbL][yNbL]:1) (1564)
-以下の条件のいずれかが真である場合、ctxIncは0に等しく設定される。
-dAはdLに等しい、
-availableAはFALSEである、
-availableLはFALSEである。
-そうでない場合、dAがdLよりも小さい場合、ctxIncは1に等しく設定される。
そうでない場合、ctxIncは0に等しく設定される。]]
【0226】
5.7. 実施形態7
作業草案は、以下のように変更することができる。
7.3.10.11 残差コーディング構文
【0227】
【表46】
【0228】
【表47】
【0229】
【表48】
【0230】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0231】
【表49】
【0232】
5.8. 実施形態8
作業草案は、以下のように変更することができる。
7.3.10.11 残差コーディング構文
【0233】
【表50】
【0234】
【表51】
【0235】
【表52】
【0236】
表131-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【0237】
【表53】
【0238】
図12は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1200を示すブロック図である。様々な実装形態は、システム1200のコンポーネントの一部または全部を含んでもよい。システム1200は、映像コンテンツを受信するための入力1202を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてもよく、または圧縮または符号化されたフォーマットで受信されてもよい。入力1202は、ネットワークインタフェース、周辺バスインタフェース、または記憶インタフェースを表してもよい。ネットワークインタフェースの例は、イーサネット(登録商標)、PON(Passive Optical Network)等の有線インタフェース、およびWi-Fi(登録商標)またはセルラーインタフェース等の無線インタフェースを含む。
【0239】
システム1200は、本明細書に記載される様々なコーディングまたは符号化方法を実装することができるコーディングコンポーネント1204を含んでもよい。コーディングコンポーネント1204は、入力1202からの映像の平均ビットレートをコーディングコンポーネント1204の出力に低減し、映像のコーディングされた表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像コード変換技術と呼ばれることがある。コーディングコンポーネント1204の出力は、コンポーネント1206によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力1202において受信された、記憶されたまたは通信された映像のビットストリーム(またはコーディングされた)表現は、コンポーネント1208によって使用されて、表示インタフェース1210に送信される画素値または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「コーディング」動作またはツールと呼ぶが、コーディングツールまたは動作は、エンコーダおよびそれに対応する、コーディングの結果を逆にする復号ツールまたは動作が、デコーダによって行われることが理解されよう。
【0240】
周辺バスインタフェースまたは表示インタフェースの例は、USB(Universal Serial BUs)またはHDMI(High Definition Multimedia Interface;登録商標)またはディスプレイポート等を含んでもよい。ストレージインタフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI、IDEインタフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理および/または映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0241】
図13は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1または複数を実装するために使用されてもよい。装置3600は、スマートフォン、タブレット、コンピュータ、IoT(Internet of Things)受信機等に実施されてもよい。装置3600は、1または複数のプロセッサ3602と、1または複数のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数のプロセッサ3602は、本明細書に記載される1または複数の方法を実装するように構成されてもよい。1または複数のメモリ3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0242】
図15は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
【0243】
図15に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、コーディング映像データを生成するものであり、映像コーディング機器とも称され得る。送信先デバイス120は、送信元装置110によって生成された、符号化された映像データを復号してよく、映像復号デバイスと呼ばれ得る。
【0244】
送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インタフェース116と、を備えてもよい。
【0245】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインタフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データのコーディングされた表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディング表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインタフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインタフェース116を介して送信先デバイス120に直接送信されてよい。符号化された映像データは、送信先デバイス120がアクセスするために、記録媒体/サーバ130bに記憶してもよい。
【0246】
送信先デバイス120は、I/Oインタフェース126、映像デコーダ124、および表示装置122を含んでもよい。
【0247】
I/Oインタフェース126は、受信機および/またはモデムを含んでもよい。I/Oインタフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化された映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示装置122は、復号された映像データをユーザに表示してもよい。表示装置122は、送信先デバイス120と一体化されてもよく、または外部表示装置とインタフェースで接続するように構成される送信先デバイス120の外部にあってもよい。
【0248】
映像エンコーダ114および映像デコーダ124は、HEVC(High Efficiency Video Coding)規格、VVVM(Versatile Video Coding)規格、および他の現在のおよび/または更なる規格等の映像圧縮規格に従って動作してもよい。
【0249】
図16は、映像エンコーダ200の一例を示すブロック図であり、映像エンコーダ200は、図15に示されるシステム100における映像エンコーダ114であってもよい。
【0250】
映像エンコーダ200は、本開示の技術のいずれかまたは全部を行うように構成されてもよい。図16の例において、映像エンコーダ200は、複数の機能コンポーネントを備える。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有され得る。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0251】
映像エンコーダ200の機能コンポーネントは、分割部201、予測部202、残差生成部207、変換部208、量子化部209、逆量子化部210、逆変換部211、再構成部212、バッファ213、およびエントロピー符号化部214を含んでもよく、予測部202は、モード選択部203、動き推定部204、動き補償部205、およびイントラ予測部206を含む。
【0252】
他の例において、映像エンコーダ200は、さらに多くの、さらに少ない、または異なる機能コンポーネントを含んでもよい。一例において、予測部202は、IBC(Intra Block Copy)部を含んでもよい。IBC部は、少なくとも1つの参照ピクチャが、現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を実行してもよい。
【0253】
さらに、動き推定部204および動き補正部205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、図16の例においては別々に表されている。
【0254】
分割部201は、ピクチャを1または複数の映像ブロックに分割してもよい。映像エンコーダ200および映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0255】
モード選択部203は、例えば、誤りの結果に基づいて、イントラまたはインターのコーディングモードのうちの1つを選択し、得られたイントラまたはインターコーディングされたブロックを、残差ブロックデータを生成するために残差生成部207に供給し、符号化されたブロックを参照ピクチャとして使用するために再構成するために再構成部212に供給してもよい。いくつかの例において、モード選択部203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。モード選択部203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセルまたは整数ピクセル精度)を選択してもよい。
【0256】
現在の映像ブロックに対してインター予測を実行するために、動き推定部204は、バッファ213からの1または複数の参照フレームと現在の映像ブロックとを比較することにより、現在の映像ブロックのために動き情報を生成してもよい。動き補償部205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報および復号されたサンプルに基づいて、現在の映像ブロックのための予測映像ブロックを判定してもよい。
【0257】
動き推定部204および動き補償部205は、現在の映像ブロックがIスライスであるか、Pスライスであるか、またはBスライスであるかに基づいて、例えば、現在の映像ブロックに対して異なる動作を行ってもよい。
【0258】
いくつかの例において、動き推定部204は、現在の映像ブロックに対して単一方向予測を行い、動き推定部204は、現在の映像ブロックに対して、参照映像ブロック用のリスト0またはリスト1の参照ピクチャを検索してもよい。そして、動き推定部204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定部204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0259】
他の例において、動き推定部204は、現在の映像ブロックを双方向予測してもよく、動き推定部204は、現在の映像ブロックに対する参照映像ブロックについて、リスト0から参照ピクチャを検索してもよく、また、現在の映像ブロックに対する別の参照映像ブロックについて、リスト1における参照ピクチャも検索してもよい。そして、動き推定部204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定部204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0260】
いくつかの例において、動き推定部204は、デコーダの復号処理のために、動き情報のフルセットを出力してもよい。
【0261】
いくつかの例では、動き推定部204は、現在の映像のための動き情報のフルセットを出力しなくてもよい。むしろ、動き推定部204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定部204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していることを判定してもよい。
【0262】
一例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同一の動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0263】
他の例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、MVD(Motion Vector Difference)とを識別してもよい。動きベクトル差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、示された映像ブロックの動きベクトルおよび動きベクトル差を使用して、現在の映像ブロックの動きベクトルを決定してもよい。
【0264】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装されてよい予測信号通知技術の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
【0265】
イントラ予測部206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測部206が現在の映像ブロックにてイントラ予測を実行する場合、イントラ予測部206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロックおよび様々な構文要素を含んでもよい。
【0266】
残差生成部207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックに対する残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0267】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックに対する残差データがなくてもよく、残差生成部207は、減算動作を行わなくてもよい。
【0268】
変換処理部208は、現在の映像ブロックに関連付けられた残差映像ブロックに1または複数の変換を適用することによって、現在の映像ブロックのための1または複数の変換係数映像ブロックを生成してもよい。
【0269】
変換処理部208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化部209は、現在の映像ブロックに関連付けられた1または複数の量子化パラメータ(QP:Quantization Parameter)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0270】
逆量子化部210および逆変換部211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成部212は、予測部202によって生成された1または複数の予測映像ブロックに対応するサンプルに再構成された残差映像ブロックを追加して、バッファ213に格納するための現在のブロックに関連付けられた再構成された映像ブロックを生成してもよい。
【0271】
再構成部212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作が行われてもよい。
【0272】
エントロピー符号化部214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化部214がデータを受信した場合、エントロピー符号化部214は、1または複数のエントロピー符号化動作を行い、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力してもよい。
【0273】
図17は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、図15に示すシステム100における映像デコーダ114であってもよい。
【0274】
映像デコーダ300は、本開示の技術のいずれかまたは全てを行うように構成されてもよい。図17の例において、映像デコーダ300は、複数の機能コンポーネントを備える。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0275】
図17の例において、映像デコーダ300は、エントロピー復号部301、動き補正部302、イントラ予測部303、逆量子化部304、逆変換部305、および再構成部306、並びにバッファ307を備える。映像デコーダ300は、いくつかの例では、映像エンコーダ200(図16)に関して説明した符号化パスとほぼ逆の復号パスを行ってもよい。
【0276】
エントロピー復号部301は、符号化されたビットストリームを取り出す。符号化されたビットストリームは、エントロピーコーディングされた映像データ(例えば、映像データの符号化されたブロック)を含んでもよい。エントロピー復号部301は、エントロピーコーディングされた映像データを復号し、エントロピー復号された映像データから、動き補償部302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償部302は、例えば、AMVPおよびマージモードを行うことで、このような情報を判定してもよい。
【0277】
動き補償部302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を行う。構文要素には、サブピクセルの精度で使用される補間フィルタのための識別子が含まれてもよい。
【0278】
動き補償部302は、映像ブロックの符号化中に映像エンコーダ200によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数画素のための補間値を計算してもよい。動き補償部302は、受信した構文情報に基づいて、映像エンコーダ200により使用される補間フィルタを決定し、予測ブロックを生成に補間フィルタを使用してしてもよい。
【0279】
動き補償部302は、エンコードされた映像シーケンスのフレームおよび/またはスライスをエンコードするために使用されるブロックのサイズを判定するための構文情報、エンコードされた映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのようにエンコードされるかを示すモード、各インターエンコードされたブロックに対する1または複数の参照フレーム(および参照フレームリスト)、およびエンコードされた映像シーケンスをデコードするための他の情報のいくつかを使用してもよい。
【0280】
イントラ予測部303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に近傍のブロックから予測ブロックを形成してもよい。逆量子化部303は、ビットストリームに提供され、エントロピー復号部301によって復号された量子化された映像ブロック係数を逆量子化(例えば、逆量子化)する。逆変換部303は、逆変換を適用する。
【0281】
再構成部306は、残差ブロックと、動き補償部202またはイントラ予測部303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。デコードされた映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、また表示デバイスに表示するためにデコードされた映像を生成する。
【0282】
次に、いくつかの実施形態において好適な解決策を列挙する。
【0283】
以下の解決策は、前章(例えば、項目1)で論じた技術の例示的な実施形態を示す。
【0284】
1.映像処理方法(例えば、図14に示される方法1400)は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、変換は、映像ブロックに対する動きベクトルまたは動きベクトル差分または動きベクトル予測子の表現が、適応解像度を用いてコーディングされた表現において表されるAMVR(Adaptive Motion Vector difference Resolution)ツールに基づいて行われ、フォーマット規則は、映像ブロックまたは映像ブロックの近傍のブロックのコーディングされた情報に依存するコンテキストモデリングによって、コーディングされた表現において適応解像度の使用を表現することを規定する。
【0285】
2.コーディングされた情報は、イントラブロックコピーモードを使用することを含む、解決策1に記載の方法。
【0286】
3.コーディングされた情報は、アフィンAMVRモードまたは非アフィンおよび非イントラブロックコピーモード、双予測または単一予測モードの使用を含む、解決策1に記載の方法。
【0287】
4.コーディングされた情報は、映像ブロックの寸法を含む、解決策1から3のいずれかに記載の方法。
【0288】
以下の解決策は、前章(例えば、項目2)で論じた技術の例示的な実施形態を示す。
【0289】
5.映像処理の方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、変換は映像ブロックに対する動きベクトルまたは動きベクトル差分または動きベクトル予測子の表現が、適応解像度を使用してコーディング表現において表されるAMVR(Adaptive Motion Vector difference Resolution)ツールに基づいて行われ、フォーマット規則は、AMVRツールによって使用される精度のインデックスのための第1のビンおよび第2のビンをコーディングするために使用されるコンテキストモデリングによって、コーディングされた表現における適応解像度の使用を表現する方法を規定する。
【0290】
6.フォーマット規則は、第1のビンを使用することを規定し、第2のビンは同じコンテキストを使用してコーディングされる、解決策5に記載の方法。
【0291】
7.フォーマット規則は、映像ブロックをコーディングされた表現で表すために非アフィンおよび非イントラブロックコピーモードが使用される場合、かつその場合にのみ、第2のビンをコーディングされた表現でコーディングすることを規定する、解決策5に記載の方法。
【0292】
以下の解決策は、前章(例えば、項目3から項目8)で論じた技術の例示的な実施形態を示す。
【0293】
8.映像処理の方法は、複数の映像ブロックを含む1または複数の映像ピクチャを含む映像と、映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現は、1または複数の映像ブロックのAMVR(Adaptive Motion Vector difference Resolution)コーディングに関する情報を信号通知するためのフォーマット規則に準拠し、フォーマット規則は、第1のコーディングモードを使用してコーディングされた第1の映像ブロックのAMVR精度インデックスのビンと、第2のコーディングモードを使用してコーディングされた第2の映像ブロックのAMVR精度インデックスのビンとを、同一のコンテキストを使用してコーディングすることを規定する。
【0294】
9.第1のコーディングモードは、イントラブロックコピーモードに対応し、第2のコーディングモードは、インターコーディングに対応し、第1の映像ブロックのビンは、AMVR精度インデックスの第1のビンであり、第2の映像ブロックのビンは、対応するAMVR精度インデックスの第2のビンである、解決策8に記載の方法。
【0295】
10.第1のコーディングモードは、イントラブロックコピーモードに対応し、第2のコーディングモードは、インターコーディングに対応し、第1の映像ブロックのビンは、AMVR精度インデックスの第1のビンであり、第2の映像ブロックのビンは、対応するAMVR精度インデックスの第1のビンである、解決策8に記載の方法。
【0296】
11.第1のコーディングモードは、イントラブロックコピーモードに対応し、第2のコーディングモードは、インターコーディングに対応し、第1の映像ブロックのビンは、AMVR精度インデックスの第1のビンであり、第2の映像ブロックのビンは、対応するAMVR精度インデックスの第1のビンである、解決策8に記載の方法。
【0297】
12.第1のコーディングモードは、イントラブロックコピーモードに対応し、第2のコーディングモードは、アフィンコーディングに対応し、第1の映像ブロックのビンは、AMVR精度インデックスの第1のビンであり、第2の映像ブロックのビンは、対応するAMVR精度インデックスの第1のビンである、解決策8に記載の方法。
【0298】
13.フォーマット規則は、イントラブロックコピーモード、アフィンモードおよびインターコーディングモードを有する、第1の映像ブロック、第2の映像ブロック、および第3の映像ブロックのすべてのビンをコーディングするために、同じコンテキストを使用することをさらに規定する、解決策8に記載の方法。
【0299】
14.フォーマット規則は、イントラブロックコピーモード、アフィンモード、およびインターコーディングモードを有する、第1の映像ブロック、第2の映像ブロック、および第3の映像ブロックの第1のビンをコーディングするための異なるコンテキスト、および第1の映像ブロック、第2の映像ブロック、および第3の映像ブロックの第2のビンをコーディングするための同じコンテキストを用いることさらに規定する、解決策8に記載の方法。
【0300】
以下の解決策は、前章(例えば、項目9)で論じた技術の例示的な実施形態を示す。
【0301】
15.フォーマット規則は、精度値をコーディングするために使用される少なくとも1つのコンテキストが、AMVRツールの適用可能性を示すフラグをコーディングするために使用されるコンテキストと同じであることをさらに規定する、解決策1から14のいずれかに記載の方法。
【0302】
以下の解決策は、前章(例えば、項目10、11)で論じた技術の例示的な実施形態を示す。
【0303】
16.映像処理の方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、映像ブロックは、1または複数の垂直および/または1または複数の水平分割に分割され、コーディングされた表現は、映像ブロックの分割情報のコンテキストベースのコーディングを規定するフォーマット規則に準拠する。
【0304】
17.フォーマット規則は、分割情報を示す構文要素のコンテキストモデリングが、映像ブロックに対して許可された垂直分割の数および/または前記映像ブロックに対して許可された水平分割の数に依存することを規定する、解決策16に記載の方法。
【0305】
18.フォーマット規則は、映像ブロックに対して許可された垂直分割の数が映像ブロックに対して許可された水平分割の数よりも大きいかどうかに依存する、解決策17に記載の方法。
【0306】
19.フォーマット規則は、構文要素をコーディングするためにN個のコンテキストを使用することを規定し、Nは映像ブロックの寸法または近傍の映像ブロックの寸法に基づく、解決策17から18のいずれかに記載の方法。
【0307】
以下の解決策は、前章(例えば、項目12)で論じた技術の例示的な実施形態を示す。
【0308】
20.フォーマット規則は、映像ブロックへの垂直分割の適用可能性を示すフラグをコーディングするために、単一のコンテキストを使用することを規定する、解決策16から19のいずれかに記載の方法。
【0309】
以下の解決策は、前章(例えば、項目13、17)で論じた技術の例示的な実施形態を示す。
【0310】
21.映像処理の方法は、映像の映像ブロックと映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、変換係数の符号を表現するためにコンテキストコーディングまたはバイパスコーディングのいずれを使用するかを決定するために使用されるコーディング条件を規定する。
【0311】
22.コーディング条件は、残りの許可されたコンテキストコーディングされたビンの数に対応する、解決策21に記載の方法。
【0312】
23.コーディング条件は、映像ブロックとコーディングされた表現との間の変換に使用される変換の種類に対応する、解決策21に記載の方法。
【0313】
以下の解決策は、前章(例えば、項目14)で論じた技術の例示的な実施形態を示す。
【0314】
24.映像処理の方法は、映像の映像ブロックと、映像のコーディングされた表現との間の変換を実行することを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、変換スキップ残差コーディング処理の第3または残差係数走査パスにおける残りの構文要素のバイパスコーディングの開始時に、残りの許可されたコンテキストコーディングされたビンの数を規定する変数に演算が適用されることを規定する。
【0315】
25.変換は、映像をコーディングされた表現に符号化することを含む、解決策1から24のいずれか1つに記載の方法。
【0316】
26.変換は、映像の画素値を生成するためにコーディングされた表現を復号することを含む、解決策1から24のいずれか1つに記載の方法。
【0317】
27.解決策1から26の1または複数に記載の方法を実装するように構成されたプロセッサを備える、映像復号装置。
【0318】
28.解決策1から26の1つまたは複数に記載の方法を実装するように構成されたプロセッサを備える、映像符号化装置。
【0319】
29.コンピュータコードが記憶されたコンピュータプログラムプロダクトであって、コードは、プロセッサにより実行された際に、プロセッサに、解決策1から26のいずれか1つに記載の方法を実装させるコンピュータプログラムプロダクト。
【0320】
30.本明細書に記載の方法、装置またはシステム。
【0321】
図18は、本技術の1つまたは複数の実施形態にしたがった映像処理方法1800を示すフローチャートである。方法1800は、動作1810において、規則に従って映像のブロックと映像のビットストリームとの間の変換を実行することを含む。変換は、AMVR(Adaptive Motion Vector Difference Resolution)ツールに基づいて行われ、規則は、ブロックのコーディングモードの使用に基づいて、AMVRシフトに関連する動きベクトル差分の解像度を規定する第1の構文要素のビンの文字列内の第1のビンのためのコンテキストの選択を導出することを規定する。
【0322】
いくつかの実施形態において、ブロックはコーディングユニットである。いくつかの実施形態において、ブロックのコーディングモードは、アフィンインターモード、イントラブロックコピーモードまたはノーマルインターモードのうち1つである。いくつかの実施形態において、異なるコーディングモードに対応する複数のコンテキストが第1のビンに適用されてもよい。いくつかの実施形態において、複数のコンテキストは3つのコンテキストを含む。いくつかの実施形態において、各コーディングモードは単一のコンテキストに対応する。
【0323】
いくつかの実施形態において、IBCモードを利用してブロックをコーディングする場合、第1のビンに対する第1のコンテキストが第1の値に割り当てられ、IBCモードを利用してブロックをコーディングしない場合、第1のコンテキストとは異なる少なくとも1つのコンテキストが、少なくとも1つのインターコーディングモードのための第1のビンに適用可能である。いくつかの実施形態において、第1のビンに対する第2のコンテキストは、ブロックがアフィンインターモードを使用してコーディングされている場合、第2の値に割り当てられ、ブロックが、非アフィンインターモードである通常インターモードを使用してコーディングされている場合、第1のビンに対する第3のコンテキストは第3の値に割り当てられる。第2の値および第3の値は、それぞれ異なる値である。
【0324】
いくつかの実施形態において、ビンの文字列の第2のビンのコンテキストは第1のビンに用いられる1または複数のコンテキストと同じである。いくつかの実施形態において、ビンの文字列の第2のビンは単一のコンテキスト値でコーディングされる。いくつかの実施形態において、IBCモードを利用してコーディングされる第1のブロックに対するビンの文字列の第1のビンと、非アフィンインターモードである通常のインターモードを利用してコーディングされる第2ブロックに対するビンの文字列の第2ビンには同じコンテキストが選択される。
【0325】
いくつかの実施形態において、IBCモードまたはアフィンインターモードを使用してブロックをコーディングする場合、ビンの文字列は第1のビンから構成される。非アフィンインターモードである通常のインターモードを使用してブロックをコーディングする場合、ビンの文字列は、第2のビンをさらに備える。いくつかの実施形態において、第1のビンに適用される複数のコンテキストの少なくとも1つは、動きベクトル差分の解像度が輝度サンプルの1/4であるか、または第1の構文要素によって規定されるかどうかを規定する第2の構文要素のために選択された少なくとも1つのコンテキストと同じである。いくつかの実施形態において、IBCモードを使用してブロックをコーディングしている場合、動きベクトル差分の解像度を規定する第1の構文要素のためのコンテキストは、動きベクトル差分の解像度が輝度サンプルの1/4であるか、または第1の構文要素によって規定されるかどうかを規定する第2の構文要素のために選択されたコンテキストと同じである。いくつかの実施形態において、IBCモードまたはアフィンモードを使用してブロックをコーディングしていない場合、動きベクトル差分の解像度を規定する第1の構文要素のためのコンテキストは、動きベクトル差分の解像度が輝度サンプルの1/4であるか、または第1の構文要素によって規定されるかどうかを規定する第2の構文要素のために選択されたコンテキストと同じである。いくつかの実施形態において、ビンの文字列内の第1のビンのためのコンテキストにCtxMの値が割り当てられ、ビンの文字列を有する第2のビンのコンテキストにはCtxQの値が割り当てられ、ここで、CtxM=CtxQである。いくつかの実施形態において、第1のビンと比較し、第2のビンに異なるコンテキストが選択される。
【0326】
いくつかの実施形態において、ブロックがIBCモードにてコーディングされる場合の第1のビンに対する第1のコンテキストと、ブロックがアフィンモードを使用してコーディングされる場合の第1のビンに対する第2のコンテキストと、ブロックがIBCモードもアフィンモードも使用せずにコーディングされる場合の第1のビンに対する第3のコンテキストは同じである。いくつかの実施形態において、ブロックがIBCモードにてコーディングされる場合の第1のビンに対する第1のコンテキストと、ブロックがIBCモードもアフィンモードも使用せずにコーディングされる場合の第1のビンに対する第2のコンテキストは同じである。いくつかの実施形態において、アフィンモードを使用してブロックをコーディングする場合の第1のビンに対する第3コンテキストは、第1のコンテキストおよび第2のコンテキストと異なる。いくつかの実施形態において、ブロックがIBCモードにてコーディングされる場合の第1のビンに対する第1のコンテキストと、ブロックがアフィンモードでコーディングされる場合の第1のビンに対する第2のコンテキストは同じである。いくつかの実施形態において、ブロックがIBCモードにてコーディングされる場合のビンの文字列内のすべてのビンに対するコンテキストと、ブロックがアフィンモードを使用してコーディングされる場合のビンの文字列内のすべてのビンに対するコンテキストと、ブロックがIBCモードもアフィンモードも使用せずにコーディングする場合のビンの文字列内のすべてのビンのためのコンテキストは同じである。
【0327】
本発明の実施形態において、AMVRツールは、動きベクトルの差分の解像度をブロック単位で適応的に調整するコーディングツールである。
【0328】
図19は、本発明の1または複数の実施形態による映像処理方法1900を示す流れ図である。方法1900は、動作1910において、規則に従って映像の現在のブロックと映像のビットストリームとの間の変換を実行することを含む。規則は、ブロックを水平方向に分割するか垂直方向に分割するかを規定する構文要素をコーディングするコンテキストを、許可された垂直方向の分割数および許可された水平方向の分割数に基づいて選択することを規定する。許可された垂直分割の数は、許可されたバイナリ(binary)垂直分割の数と許可されたターナリ(ternary)垂直分割の数とを含み、許可された水平分割の数は、許可されたバイナリ水平分割の数と許可されたターナリ水平分割の数とを含む。
【0329】
いくつかの実施形態において、ブロックはコーディングユニットである。いくつかの実施形態において、コンテンツは許可された垂直分割の数と許可された水平分割の数とを比較することにより選択される。いくつかの実施形態において、コンテキストは、許可された垂直分割の数が許可された水平分割の数より大きい場合、第1のコンテキストのセットから選択される。いくつかの実施形態において、コンテキストは、許可された垂直分割の数が許可された水平分割の数より少ない場合、第2のコンテキストのセットから選択される。いくつかの実施形態において、第1のコンテキストのセットおよび第2のコンテキストのセットはそれぞれ単一のコンテキストを含む。いくつかの実施形態において、第1のコンテキストのセットにおける単一コンテキストの値は4である。いくつかの実施形態において、第2のコンテキストのセットにおける単一コンテキストの値は3である。
【0330】
いくつかの実施形態において、コンテキストは、許可された垂直分割の数が許可された水平分割の数と等しい場合、第3のコンテキストのセットから選択される。いくつかの実施形態において、第3のコンテキストのセットは複数のコンテキストを含む。いくつかの実施形態において、第3のコンテキストのセットは、0の値を有する第3のコンテキスト、1の値を有する第4コンテキスト、および2の値を有する第5のコンテキストとを含む。
【0331】
いくつかの実施形態において、第3のコンテキストのセットからのコンテキストの選択は、(1)現在のブロックの上に位置する第1の近傍のブロックと現在のブロックの左に位置する第2の近傍のブロックの利用可能性、(2)現在のブロックの寸法、および/または(3)近傍のブロックの寸法に、さらに基づく。いくつかの実施形態において、コンテキストは、(1)現在のブロックの上に位置する第1の近傍のブロックまたは現在のブロックの左に位置する第2の近傍のブロックのいずれかが利用可能でない場合、または(2)dAがdLに等しい場合、CtxDの値に割り当てられ、dAは現在のブロックの上に位置する第1の近傍のブロックの幅で除した現在ブロックの幅を表し、かつdLは現在のブロックの左に位置する第2の近傍のブロックの高さで除した現在のブロックの高さを表す。いくつかの実施形態において、コンテキストは、dAがdLより小さい場合、CtxEの値に割り当てられ、ここで、dAは現在のブロックの上に位置する第1の近傍のブロックの幅で除した現在ブロックの幅を表し、かつdLは現在のブロックの左に位置する第2の近傍のブロックの高さで除した現在のブロックの高さを表す。いくつかの実施形態において、コンテキストは、dAがdLより大きい場合、CtxFの値に割り当てられ、ここで、dAは現在のブロックの上に位置する第1の近傍のブロックの幅で除した現在ブロックの幅を表し、かつdLは現在のブロックの左に位置する第2の近傍のブロックの高さで除した現在のブロックの高さを表す。
【0332】
いくつかの実施形態において、第1のコンテキストのセット、第2のコンテキストのセット、および第3のコンテキストのセットにおけるコンテキストは互いに異なる。
【0333】
図20は、本発明の1または複数の実施形態による映像処理方法2000を示す流れ図である。方法2000は、動作2010において、規則に従って映像の現在のブロックと映像のビットストリームとの間の変換を実行することを含む。規則は、変換係数レベルの符号を規定する構文要素に対してコンテキストコーディングを使用するかまたはバイパスコーディングを使用するかが、現在のブロックに対して使用される残りの許可されたコンテキストコーディングされたビンの数または変換のタイプに基づくことを規定する。
【0334】
いくつかの実施形態において、残りの許可されたコンテキストコーディングされたビンの数が閾値以上である場合、現在のブロックのための変換スキップ残差コーディング処理において、構文要素に対してコンテキストコーディングが用いられる。いくつかの実施形態において、残りの許可されたコンテキストコーディングされたビンの数が閾値より少ない場合、現在のブロックのための変換スキップ残差コーディング処理において、構文要素に対してバイパスコーディングする。いくつかの実施形態において、閾値は、0または3である。
【0335】
いくつかの実施形態において、残りの許可されたコンテキストコーディングされたビンの数がN以下である場合、構文要素にバイパスコーディングが用いられる。いくつかの実施形態において、残りの許可されたコンテキストコーディングされたビンの数がN以上である場合、構文要素にコンテキストコーディングが用いられる。いくつかの実施形態において、残りの許可されたコンテキストコーディングされたビンの数は、変換における変換係数レベルの残りの絶対値を処理する前に、N以下に修正される。いくつかの実施形態において、Nは0、3、または4である。いくつかの実施形態において、Nは現在のブロックの特徴に基づく整数である。いくつかの実施形態において、現在のブロックの特徴は、シーケンスパラメータセット、映像パラメータセット、ピクチャパラメータセット、ピクチャヘッダ、スライスヘッダ、タイルグループヘッダ、ラージコーディングユニットの行、ラージコーディングユニットのグループ、ラージコーディングユニットまたはコーディングユニットにおける指示を含む。いくつかの実施形態において、現在のブロックの特徴は、現在のブロックまたは現在のブロックの近傍のブロックの寸法または形状を含む。いくつかの実施形態において、現在のブロックの特徴は、映像のカラーフォーマットの指示を含む。いくつかの実施形態において、現在のブロックの特徴は、変換に別個の、またはデュアルコーディングツリー構造が用いられるかを示す指示を含む。いくつかの実施形態において、現在のブロックの特徴は、スライスタイプまたはピクチャタイプを含む。いくつかの実施形態において、現在のブロックの特徴は、映像の色成分の数を含む。
【0336】
いくつかの実施形態において、構文要素のコンテキストコーディングは、残りの許可されたコンテキストコーディングされたビンの数に基づく。いくつかの実施形態において、残りの許可されたコンテキストコーディングされたビンの数を規定する変数は、変換スキップ残差コーディング処理の第3のまたは残りの係数スキャンパスにおける残りの構文要素のバイパスコーディングの開始時に修正される。いくつかの実施形態において、変数は、0の固定値に設定される。いくつかの実施形態において、変数は、1にてデクリメントされる。いくつかの実施形態において、現在のブロックは、ブロックベースの差分パルス符号変調コーディングされたブロックを含むか或いは含まない変換ブロックまたは変換スキップブロックを含む。
【0337】
いくつかの実施形態において、本方法を応用するかどうかは、シーケンスレベル、ピクチャレベル、スライスレベルまたはタイルグループレベルで示される。いくつかの実施形態において、指示は、シーケンスヘッダ、ピクチャヘッダ、シーケンスパラメータセット、映像パラメータセット、デコーダパラメータセット、復号能力情報、ピクチャパラメータセット、適応パラメータセット、スライスヘッダまたはタイルグループヘッダに含まれる。いくつかの実施形態において、この方法を適用するかどうか、またはどのように適用するかは、映像のコーディングされた情報に基づく。
【0338】
いくつかの実施形態において、変換は、映像をビットストリームに符号化することを含む。いくつかの実施形態において、変換は、ビットストリームから映像を復号することを含む。
【0339】
本明細書では、「映像処理」という用語は、映像符号化、映像復号、映像圧縮、または映像展開を指してよい。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換およびコーディングされた誤り残差値の観点から、かつビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定の構文フィールドが含まれるべきであるか、または含まれないべきであるかを判定し、構文フィールドをコーディングされた表現に含めるか、またはコーディングされた表現から除外することによって、それに応じてコーディングされた表現を生成してもよい。
【0340】
本明細書に記載された開示された、およびその他の解決策、例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的均等物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで実施されてもよく、またはそれらの1または複数の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラムプロダクト、たとえば、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1または複数の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成された信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0341】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。コンピュータプログラムを、1つのコンピュータで実行するように展開することができ、あるいは、1つのサイトに位置する、または複数のサイトにわたって分散され通信ネットワークによって相互接続される複数のコンピュータで実行するように展開することができる。
【0342】
本明細書に記載された処理およびロジックフローは、入力データに対して動作し、出力を生成することによって機能を行うための1または複数のコンピュータプログラムを実行する1または複数のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0343】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1または複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上の記憶装置とである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0344】
本特許明細書は多くの特徴を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1または複数の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0345】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている実施形態における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0346】
いくつかの実装形態および実施例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
【手続補正書】
【提出日】2022-11-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
映像処理の方法であって、
規則に基づいて、映像の第1のブロックと、前記映像のビットストリームとの間の変換を実行すること、
を有し、
前記変換は、AMVR(Adaptive Motion Vector Resolution)ツールに基づき、
前記規則は、AMVRシフトに関連付けられた動きベクトル差分の解像度を規定する第1の構文要素のビンの文字列における第1のビンに対するコンテキスト増加手段(ctxInc)の選択が、前記第1のブロックに対するコーディングモードの使用に基づいて導出されることを規定し、
前記第1のブロックに対する前記コーディングモードは、アフィンインターモード、IBC(Intra Block Copy)モード、および、非アフィンインターモードである通常のインターモードのうちの1つである、方法。
【請求項2】
前記第1のブロックは、コーディングユニットである、請求項1に記載の方法。
【請求項3】
3つの異なる前記コーディングモードに対応する3つの異なるコンテキスト増加手段は、前記第1のビンに適用可能であり、
各コーディングモードは、単一のコンテキスト増加手段に対応する、請求項1または2に記載の方法。
【請求項4】
第1のコンテキスト増加手段は、前記第1のブロックが前記IBCモードを用いてコーディングされる場合に、前記第1のビンに割り当てられ、
第2のコンテキスト増加手段は、前記第1のブロックが前記アフィンインターモードを用いてコーディングされる場合に、前記第1のビンに割り当てられ、
第3のコンテキスト増加手段は、前記第1のブロックが前記通常のインターモードを用いてコーディングされる場合に、前記第1のビンに割り当てられる、請求項3に記載の方法。
【請求項5】
前記第1のコンテキスト増加手段は、1に等しく、
前記第2のコンテキスト増加手段は、2に等しく、
前記第3のコンテキスト増加手段は、0に等しい、請求項4に記載の方法。
【請求項6】
前記第1のブロックが、前記IBCモード、および、前記通常のインターモードを用いてコーディングされる第2のブロックに対する前記第1の構文要素の前記ビンの文字列の第2のビンを用いてコーディングされる場合、同じコンテキスト増加手段が、前記第1のブロックに対する前記第1の構文要素の前記ビンの文字列の前記第1のビンに対して用いられる、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記第1のブロックが、前記IBCモード、および、前記動きベクトル差分の前記解像度が輝度サンプルの1/4であるか、または、前記第1の構文要素によって規定されるかを規定する第3のブロックに対する第2の構文要素のビンを用いてコーディングされる場合、同じコンテキスト増加手段が、前記第1のブロックに対する前記第1の構文要素の前記ビンの文字列の前記第1のビンに対して用いられ、
前記第3のブロックは、前記アフィンインターモードを用いてコーディングされる、請求項1から5のいずれか一項に記載の方法。
【請求項8】
前記第1のブロックが、前記通常のインターモード、および、前記動きベクトル差分の前記解像度が輝度サンプルの1/4であるか、または、前記第1の構文要素によって規定されるかを規定する第4のブロックに対する第2の構文要素のビンを用いてコーディングされる場合、同じコンテキスト増加手段が、前記第1のブロックに対する前記第1の構文要素の前記ビンの文字列の前記第1のビンに対して用いられ、
前記第4のブロックは、前記アフィンインターモードを用いてコーディングされない、請求項1から5のいずれか一項に記載の方法。
【請求項9】
初期化処理において、
コンテキスト初期化タイプが第1のタイプである場合、前記第1の構文要素に対するコンテキストインデックスの値は、0から2の範囲にあり、
前記コンテキスト初期化タイプが第2のタイプである場合、前記第1の構文要素に対する前記コンテキストインデックスの前記値は、3から5の範囲にあり、
前記コンテキスト初期化タイプが第3のタイプである場合、前記第1の構文要素に対する前記コンテキストインデックスの前記値は、6から8の範囲にある、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記変換は、前記映像を前記ビットストリームから復号することを含む、請求項1から9のいずれか一項に記載の方法。
【請求項12】
プロセッサと、命令を有する非一時的メモリを有する、映像データを処理するための装置であって、前記命令が前記プロセッサによって実行された際に、前記プロセッサに、
規則に基づいて、映像の第1のブロックと、前記映像のビットストリームとの間の変換を実行すること、
を行わせ、
前記変換は、AMVR(Adaptive Motion Vector Resolution)ツールに基づき、
前記規則は、AMVRシフトに関連付けられた動きベクトル差分の解像度を規定する第1の構文要素のビンの文字列における第1のビンに対するコンテキスト増加手段(ctxInc)の選択が、前記第1のブロックに対するコーディングモードの使用に基づいて導出されることを規定し、
前記第1のブロックに対する前記コーディングモードは、アフィンインターモード、IBC(Intra Block Copy)モード、および、非アフィンインターモードである通常のインターモードのうちの1つである、装置。
【請求項13】
プロセッサに、
規則に基づいて、映像の第1のブロックと、前記映像のビットストリームとの間の変換を実行すること、
を行わせ、
前記変換は、AMVR(Adaptive Motion Vector Resolution)ツールに基づき、
前記規則は、AMVRシフトに関連付けられた動きベクトル差分の解像度を規定する第1の構文要素のビンの文字列における第1のビンに対するコンテキスト増加手段(ctxInc)の選択が、前記第1のブロックに対するコーディングモードの使用に基づいて導出されることを規定し、
前記第1のブロックに対する前記コーディングモードは、アフィンインターモード、IBC(Intra Block Copy)モード、および、非アフィンインターモードである通常のインターモードのうちの1つである、命令を格納する非一時的コンピュータ可読記憶媒体。
【請求項14】
映像処理装置によって実行される方法によって生成される映像のビットストリームを格納する非一時的コンピュータ可読記録媒体であって、
前記方法は、
規則に基づいて、映像の第1のブロックのビットストリームを生成すること、
を有し、
前記生成することは、AMVR(Adaptive Motion Vector Resolution)ツールに基づき、
前記規則は、AMVRシフトに関連付けられた動きベクトル差分の解像度を規定する第1の構文要素のビンの文字列における第1のビンに対するコンテキスト増加手段(ctxInc)の選択が、前記第1のブロックに対するコーディングモードの使用に基づいて導出されることを規定し、
前記第1のブロックに対する前記コーディングモードは、アフィンインターモード、IBC(Intra Block Copy)モード、および、非アフィンインターモードである通常のインターモードのうちの1つである、非一時的コンピュータ可読記録媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正の内容】
【0001】
関連出願の相互参照
願は、2020年5月1日出願の国際特許出願第PCT/CN2020/088546号の優先権および利益を張する2021年5月6日出願の国際特許出願第PCT/CN2021/091869号に基づく記出願の開示全体は、照によりここに援用される。
【国際調査報告】