JP2024519848A - 動きベクトル精緻化を伴う幾何学的分割モード - Google Patents

動きベクトル精緻化を伴う幾何学的分割モード Download PDF

Info

Publication number
JP2024519848A
JP2024519848A JP2023571522A JP2023571522A JP2024519848A JP 2024519848 A JP2024519848 A JP 2024519848A JP 2023571522 A JP2023571522 A JP 2023571522A JP 2023571522 A JP2023571522 A JP 2023571522A JP 2024519848 A JP2024519848 A JP 2024519848A
Authority
JP
Japan
Prior art keywords
gpm
mvr
index
merge
merged
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023571522A
Other languages
English (en)
Inventor
シウ、シャオユ
クオ、チャーウェイ
チェン、ウェイ
ジュー、ホンジェン
イェン、ニン
チェン、イーウェン
ワン、シァンリン
ユー、ビン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of JP2024519848A publication Critical patent/JP2024519848A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

GPMでビデオブロックを復号するための方法及びデバイスが提供される。この方法は、ビデオブロックを第1及び第2の幾何学的分割に分割することと、第1の幾何学的分割に対する第1のテンプレートマッチング(TM)イネーブルフラグ及び第2の幾何学的分割に対する第2のTMイネーブルフラグを受信することであって、第1のTMイネーブルフラグは、第1の分割の片方向動きがTMによって精緻化されているか否かを示し、第2のTMイネーブルフラグは、第2の分割の片方向動きがTMによって精緻化されているか否かを示す、受信することと、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信することと、GPMの片方向動きベクトル(MV)候補リストを構築することと、第1の幾何学的分割に対する片方向MVと、第2の幾何学的分割に対する片方向MVとを生成することと、を含む。

Description

[関連出願の相互参照]
本出願は、2021年5月17日に出願された米国仮特許出願第63/189,661号の優先権の利益を主張するものであり、参照することによって同特許出願の開示の全体が、あらゆる目的において本明細書に組み込まれる。
本開示は、ビデオコーディング及び圧縮に関する。より詳しくは、本開示は、重み付き角予測(angular weighted prediction:AWP)モードとしても知られる幾何学的分割モード(geometric partition mode:GPM)のコーディング効率を改善する方法及び装置に関する。
ビデオデータを圧縮するために、各種ビデオコーディング技術を使用できる。ビデオコーディングは、1以上のビデオコーディング規格に従って実行される。例えば、最近では、周知のビデオコーディング規格には、多用途ビデオコーディング(Versatile Video Coding:VVC)、高効率ビデオコーディング(High Efficiency Video Coding:HEVC、H.265又はMPEG-H Part2としても知られる)、アドバンスド・ビデオコーディング(Advanced Video Coding:AVC、H.264又はMPEG-4 Part 10としても知られる)が含まれ、これらはISO/IEC MPEG及びITU-T VECGによって共同開発されている。AOMedia Video 1 (AV1)は、Alliance for Open Media (AOM)によって、以前の規格VP9の後継として開発された。オーディオビデオコーディング(Audio Video Coding:AVS)は、デジタルオーディオ及びデジタルビデオ圧縮規格を指し、中国のオーディオ及びビデオコーディング規格ワークグループ(Audio and Video Coding Standard Workgroup)によって開発されたもう1つのビデオ圧縮規格シリーズである。既存のビデオコーディング規格の大部分は、有名なハイブリッドビデオコーディングフレームワークに基づいて構築される、すなわちビデオ画像又はシーケンスに存在する冗長性を削減するためにブロックベースの予測方法(例えば、インター予測、イントラ予測)を使用し、予測誤差のエネルギーを圧縮するために変換コーディングを使用する。ビデオコーディング技術の重要な目標は、ビデオ品質の劣化を回避しもしくは最小限に抑えながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。
本開示の例は、ビデオコーディングのための方法及び装置、及び非一時的コンピュータ可読記憶媒体を提供する。
本開示の第1の態様によれば、GPMでビデオブロックを復号する方法が提供される。この方法は、ビデオブロックを第1及び第2の幾何学的分割に分割することを含んでもよい。この方法は、第1の幾何学的分割に対する第1のテンプレートマッチング(TM)イネーブルフラグを受信することと、第2の幾何学的分割に対する第2のTMイネーブルフラグを受信することとを含み、第1のTMイネーブルフラグは、第1の分割の片方向動きがTMによって精緻化されているか否かを示し、第2のTMイネーブルフラグは、第2の分割の片方向動きがTMによって精緻化されているか否かを示す。この方法は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信することを含んでもよい。この方法は、GPMの片方向動きビクター(MV)候補リストを構築することを含んでもよい。この方法は、第1の幾何学的分割に対する片方向MVと、第2の幾何学的分割に対する片方向MVとを生成することを含んでもよい。
本開示の第2の態様によれば、GPMでビデオブロックを復号する方法が提供される。この方法は、ビデオブロックを第1及び第2の幾何学的分割に分割することを含んでもよい。この方法は、GPMの片方向MV候補リストを構築することを含んでもよい。この方法は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信することを含んでもよい。この方法は、第1のマージGPMインデックスと第2のマージGPMインデックスに基づいて片方向MV候補リストを更新することを含んでもよく、第1のマージGPMインデックスと第2のマージGPMインデックスは、単一の片方向MVがテンプレートマッチング(TM)によって精緻化されているか否かを示す。
本開示の第3の態様によれば、ビデオ復号のための装置が提供される。この装置は、1以上のプロセッサと、非一時的コンピュータ可読記憶媒体とを含んでもよい。非一時的コンピュータ可読記憶媒体は、1以上のプロセッサによって実行可能な命令を格納するよう構成される。1以上のプロセッサは、命令の実行時に、第1又は第2の態様で方法を実行するよう構成される。
本開示の第4の態様によれば、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は、1以上のコンピュータプロセッサによって実行されると、1以上のコンピュータプロセッサに、第1又は第2の態様でこの方法を実行させるコンピュータで実行可能な命令を格納してもよい。
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本開示と一致する例を説明し、明細書と共に、本開示の原理を説明するのに役立つ。
図1は、本開示の一例によるエンコーダのブロック図である。 図2は、本開示の一例によるデコーダのブロック図である。 図3Aは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Bは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Cは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Dは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Eは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図4は、本開示の一例による、許容される幾何学的分割(Geometric Partitioning:GPM)による分割の例である。 図5は、本開示の一例による片方向予測動きベクトル選択を示す表である。 図6Aは、本開示の一例による差分動きベクトルマージモード(Merge mode with Motion Vector Difference:MMVD)の説明図である。 図6Bは、本開示の一例によるMMVDモードの説明図である。 図7は、本開示の一例によるテンプレートマッチング(TM)アルゴリズムの説明図である。 図8は、本開示の一例による、GPMでビデオブロックを復号する方法である。 図9は、本開示の一例による、GPMでビデオブロックを復号する方法である。 図10は、本開示の一例による、ユーザインタフェースと結合された演算環境を示す図である。
ここで、実施形態を詳細に参照する。その例は添付の図面に示されている。以下の説明は、別段の表示がない限り、異なる図面における同一の番号が同一又は類似の要素を表す添付図面を参照する。以下の実施の説明に記載される実施形態は、本開示と一致するすべての実施を表すものではない。代わりに、それらは、添付の特許請求の範囲に記載されている本開示に関連する態様と一致する装置及び方法の単なる例である。
本開示で使用される用語は、特定の実施形態を説明することのみを目的としており、本開示を限定することを意図するものではない。本開示及び添付の特許請求の範囲で使用されるように、単数形「a」、「an」、及び「the」は、文脈で明確に別段の指示がない限り、複数形も含むことを意図している。ここで使用される「及び/又は」という用語は、関連するリストされた項目の1以上の任意又はすべての可能な組み合わせを意味し、それらを含むことを意図していることも理解されたい。
ここで「第1」、「第2」、「第3」などの用語を使用して様々な情報を説明することができるが、情報はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、あるカテゴリの情報を別のカテゴリと区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報を第2の情報と呼ぶことができ、同様に、第2の情報を第1の情報と呼ぶこともできる。ここで使用される場合、「の場合(if)」という用語は、文脈に応じて、「のとき(when)」又は「すると(upon)」又は「判定に応じて(in response to a judgment)」を意味するものと理解され得る。
第1世代AVS規格には、中国国家規格「Advanced Audio Video Coding, Part 2: Video」 (AVS1として知られる)と「Information Technology, Advanced Audio Video Coding Part 16: Radio Television Video」(AVS+として知られる)」が含まれる。これは、MPEG-2規格と比較して、同じ知覚品質で約50%のビットレート節約を提供できる。AVS1規格のビデオパートは、2006年2月に中国国家規格として公布された。第2世代AVS規格には、中国の一連の国家規格「Information Technology, Efficient Multimedia Coding」(AVS2として知られる)が含まれ、これは主に超高解像度テレビ番組の伝送を対象としている。AVS2のコーディング効率はAVS+の2倍である。2016年5月には、中国国家規格としてAVS2が公布された。一方、AVS2規格のビデオパートは、IEEE(Institute of Electrical and Electronics Engineers)によって、アプリケーションの国際規格の1つとして提出された。AVS3規格は、最新の国際規格であるHEVCのコーディング効率を上回ることを目的とした、UHDビデオアプリケーション用の1つの新しい世代のビデオコーディング規格である。2019年3月、第68回AVS会議において、AVS3-P2ベースラインが完成し、HEVC規格より約30%ビットレートが節約された。現在、高性能モデル(HPM)と呼ばれる1つのリファレンスソフトウェアがAVSグループによって維持されており、AVS3規格のリファレンス実装を実証している。
HEVCと同様に、AVS3規格はブロックベースのハイブリッドビデオコーディングフレームワークに基づいて構築されている。
図1は、VVCのためのブロックベースのビデオエンコーダの概略図を示す。具体的には、図1は、典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インターモード決定116、ブロック予測子140、サマー(summer)128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピーコーディング138、及びビットストリーム144を有する。
エンコーダ100において、ビデオフレームは処理のために複数のビデオブロックに分割される。所与の各ビデオブロックについて、インター予測アプローチ又はイントラ予測アプローチのいずれかに基づいて予測が形成される。
ビデオ入力110の一部である現ビデオブロックと、ブロック予測子140の一部であるその予測子との差を表す予測残差が、加算器128から変換130に送られる。次いで、変換係数は、エントロピー削減のために変換130から量子化132に送られる。次に、量子化係数がエントロピーコーディング138に供給され、圧縮されたビデオビットストリームが生成される。図1に示されるように、ビデオブロック分割情報、動きベクトル(motion vector:MV)、参照ピクチャインデックス、及びイントラ予測モードなどの、イントラ/インターモード決定116からの予測関連情報142も、エントロピーコーディング138を介して供給され、圧縮ビットストリーム144に保存される。圧縮ビットストリーム144は、ビデオビットストリームを含む。
エンコーダ100では、予測の目的で画素を再構築するために、デコーダ関連回路も必要とされる。第1に、予測残差は、逆量子化134及び逆変換136によって再構築される。この再構築された予測残差は、ブロック予測子140と組み合わされ、現ビデオブロックのための、フィルタリングされていない再構築された画素を生成する。
空間予測(又は「イントラ予測」)は、現ビデオブロックと同じビデオフレーム内のすでにコード化された隣接ブロックのサンプル(参照サンプルと呼ばれる。)からの画素を使用して、現ビデオブロックを予測する。
時間予測(「インター予測」とも呼ばれる。)は、すでに符号化されたビデオピクチャからの再構築された画素を使用して、現ビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間冗長性を削減する。所与のコーディングユニット(CU)又はコーディングブロックについての時間予測信号は、通常、現CUとその時間参照との間の動きの量と方向を示す1以上の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされている場合には、1つの参照ピクチャインデックスが追加で送信される。これは、時間予測信号が参照ピクチャストアにおけるどの参照ピクチャから来るかを識別するために使用される。
動き推定114は、ビデオ入力110及びピクチャバッファ120からの信号を取り込み、動き推定信号を動き補償112に出力する。動き補償112は、ビデオ入力110と、ピクチャバッファ120からの信号と、動き推定114からの動き推定信号とを取り込み、動き補償信号をイントラ/インターモード決定116へ出力する。
空間予測及び/又は時間予測が実施された後、エンコーダ100内のイントラ/インターモード決定116は、例えばレート歪み最適化方法に基づいて、最適な予測モードを選択する。次いで、ブロック予測子140は現ビデオブロックから減算され、結果として生じる予測残差は変換130及び量子化132を使用して脱相関される。結果として生じる量子化された残差係数は、再構築された残差を形成するために、逆量子化134によって逆量子化され、逆変換136によって逆変換され、次いで、再構築された残差は、CUの再構築された信号を形成するために、予測ブロックに戻って加算される。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO)、及び/又は適応ループ内フィルタ(ALF)などのループ内フィルタリング122は、ピクチャバッファ120の参照ピクチャストアに入れられる前に、再構築されたCU上で適用され、将来のビデオブロックをコーディングするために使用され得る。出力ビデオビットストリーム144を形成するために、コーディングモード(インター又はイントラ)、予測モード情報、動き情報、及び量子化された残差係数は全て、ビットストリームを形成するためにエントロピーコーディングユニット138に送信され、さらに圧縮され、パッキングされる。
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、ブロック(コーディングユニット(CU)と呼ばれる)ごとに処理される。クワッドツリーのみに基づいてブロックを区分するHEVCとは異なり、AVS3では、1つのコーディングツリーユニット(CTU)は、クワッド/バイナリ/拡張クワッドツリーに基づいて、変動する局所特性に適合するようにCUにスプリットされる。加えて、HEVCにおける複数の分割ユニットタイプの概念は取り除かれ、すなわち、CU、予測ユニット(PU)、及び変換ユニット(TU)の区別はAVS3には存在せず、その代わりに、さらなる分割なしに、予測と変換の両方のための基本単位として各CUが常に使用される。AVS3のツリー分割構造では、1つのCTUは最初にクワッドツリー構造に基づいて分割化される。次に、各クワッドツリーのリーフノードは、バイナリ及び拡張クワッドツリー構造に基づいてさらに分割できる。
図3A、図3B、図3C、図3D、及び図3Eに示されるように、四分割、水平二分割、垂直二分割、水平拡張クワッドツリー分割、及び垂直拡張クワッドツリー分割という5つのスプリットタイプがある。
図3Aは、本開示による、マルチタイプツリー構造におけるブロック四分割を示す図である。
図3Bは、本開示による、マルチタイプツリー構造におけるブロック垂直二分割を示す図である。
図3Cは、本開示による、マルチタイプツリー構造におけるブロック水平二分割を示す図である。
図3Dは、本開示による、マルチタイプツリー構造におけるブロック垂直三分割を示す図である。
図3Eは、本開示による、マルチタイプツリー構造におけるブロック水平三分割を示す図である。
図1では、空間予測及び/又は時間予測が実行され得る。空間予測(又は「イントラ予測」)は、現ビデオブロックを予測するために、すでにコード化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を同じビデオピクチャ/スライスにおいて使用する。空間予測は、ビデオ信号に固有の空間冗長性を削減する。時間予測(「インター予測」又は「動き補償予測」とも呼ばれる)は、現ビデオブロックを予測するために、すでにコード化されたビデオピクチャからの再構築された画素を使用する。時間予測は、ビデオ信号に固有の時間冗長性を削減する。所与のCUのための時間予測信号は、通常、現CUとその時間参照との間の動きの量及び方向を示す1以上の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされる場合、時間予測信号が参照ピクチャストア内のどの参照ピクチャから来ているかを識別するために使用される1つの参照ピクチャインデックスが追加的に送信される。空間及び/又は時間予測の後、エンコーダ内のモード決定ブロックは、例えばレート歪み最適化方法に基づいて、最適な予測モードを選択する。次いで、予測ブロックは現ビデオブロックから減算され、予測残差は変換及び量子化を使用して脱相関される。量子化された残差係数は、再構築された残差を形成するために逆量子化及び逆変換され、再構築された残差は、CUの再構築された信号を形成するために、予測ブロックに戻って加算される。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO)、及び適応ループ内フィルタ(ALF)などのループ内フィルタリングは、参照ピクチャストアに入れられる前に、再構築されたCUに適用され、将来のビデオブロックをコーディングするために使用されてもよい。出力ビデオビットストリームを形成するために、コーディングモード(インター又はイントラ)、予測モード情報、動き情報、及び量子化された残差係数は全て、ビットストリームを形成するためにエントロピーコーディングユニットに送信されて、さらに圧縮され、パッキングされる。
図2は、VVCのためのビデオデコーダの概略ブロック図を示す。具体的には、図2は、典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号212、逆量子化214、逆変換216、加算器218、イントラ/インターモード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、及びビデオ出力232を有する。
デコーダ200は、図1のエンコーダ100にある再構築関連のセクションと同様である。デコーダ200において、量子化された係数レベル及び予測関連情報を導出するために、入ってくるビデオビットストリーム210が最初にエントロピー復号212によって復号される。次いで、再構築された予測残差を取得するために、量子化された係数レベルが逆量子化214及び逆変換216を通じて処理される。イントラ/インターモード選択器220において実装されるブロック予測子機構は、復号された予測情報に基づいて、イントラ予測222又は動き補償224のいずれかを実施するよう構成される。フィルタリングされていない再構築された画素のセットは、サマー218を使用して、逆変換216からの再構築予測残差とブロック予測子機構によって生成された予測出力を合計することによって取得される。
再構築されたブロックはさらに、参照ピクチャストアとして機能するピクチャバッファ226に格納される前に、ループ内フィルタ228を通過してもよい。ピクチャバッファ226内の再構築されたビデオは、表示装置を駆動するために送信されてもよく、また将来のビデオブロックを予測するために使用されてもよい。ループ内フィルタ228がオンである状況では、最終的な再構築されたビデオ出力232を導出するために、これらの再構築された画素に対してフィルタリング動作が実行される。
図2は、ブロックベースのビデオデコーダの概略ブロック図を示す。ビデオビットストリームはまず、エントロピー復号ユニットでエントロピー復号される。コーディングモード及び予測情報は、予測ブロックを生成するために、空間予測ユニット(イントラコード化される場合)又は時間予測ユニット(インターコード化される場合)のいずれかに送信される。残差変換係数は、残差ブロックを再構築するために、逆量子化ユニット及び逆変換ユニットに送信される。次いで、予測ブロックと残差ブロックが合計される。再構築されたブロックはさらに、参照ピクチャストアに格納される前に、ループ内フィルタリングを通過してもよい。次いで、参照ピクチャストア内の再構築されたビデオは、表示のために送信され、また将来のビデオブロックを予測するために使用される。
開示の焦点は、VVCとAVS3の両規格で使用される幾何学的分割モード(GPM)のコーディング性能を改善することである。AVS3では、このツールはGPMの同じ設計精神に従う重み付き角予測(angular weighted prediction:AWP)としても知られているが、特定の設計詳細には微妙な違いがある。開示の記載を容易にするため、以下では、VVC規格における既存のGPM設計を例として使用して、GPM/AWPツールの主要な態様を説明する。一方、VVCとAVS3規格の両方に適用される、差分動きベクトルマージモード(MMVD)と呼ばれる他の既存のインター予測技術も、本開示で提案された技術と密接に関連することを考慮して、簡潔に考察される。その後、現GPM/AWP設計のいくつかの欠点が識別される。最後に、提案された方法を詳細に示す。VVC規格の既存のGPM設計は、開示を通して例として使用されているが、現代のビデオコーディング技術の当業者には、提案された技術は、同じ又は類似の設計精神を有する他のGPM/AWP設計又は他のコーディングツールにも適用できることに留意されたい。
幾何学的分割モード(GPM)
VVCにおいて、インター予測について幾何学的分割モードがサポートされている。幾何学的分割モードは、1つの特殊マージモードとして1つのCUレベルフラグによってシグナリングされる。現GPM設計では、8×64及び64×8を除き、幅及び高さが8より小さくなく64より大きくない可能なCUサイズごとに、GPMモードで合計64分割がサポートされている。
このモードを使用すると、図4(説明は以下に行う)に示すように、CUが幾何学的に配置された直線によって2つの部分に分割される。分割線の位置は、特定の分割の角度及びオフセットパラメータから数学的に導出される。CUにおける幾何学的分割の各部分は、それ自体の動きによってインター予測される;分割ごとに片方向予測のみが許される、すなわち、各部分は、1つの動きベクトルと1つの参照インデックスを有する。片方向予測動き制約は、従来の双方向予測と同様に、各CUに必要な動き補償予測が2つだけであることを保証するために適用される。現CUに幾何学的分割モードが使用されている場合、幾何学的分割(角度とオフセット)の分割モードを示す幾何学的分割インデックスと、2つのマージインデックス(各分割に1つずつ)がさらにシグナリングされる。最大GPM候補のサイズの数は、シーケンスレベルで明示的にシグナリングされる。
図4は、許可されたGPM分割を示しており、各ピクチャのスプリット方向は同一である。
片方向予測候補リスト構築
1つの幾何学的分割に対する片方向予測動きベクトルを導出するために、1つの片方向予測候補リストを最初に通常のマージ候補リスト生成処理で直接導出する。幾何学的片方向予測候補リストでは、片方向予測動きのインデックスをnで示す。n番目のマージ候補のLX動きベクトル(Xはnのパリティに等しい)を、幾何学的分割モードのn番目の片方向予測動きベクトルとして使用する。
これらの動きベクトルには、図5(後述)において「x」の印が付されている。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合、幾何学的分割モードのための片方向予測動きベクトルとして、同じ候補のL(1-X)動きベクトルが代わりに使用される。
図5は、GPMのマージ候補リストの動きベクトルからの片方向予測動きベクトル選択を示している。
幾何学的分割エッジに沿ったブレンド
それぞれの幾何学的分割がそれ自身の動きを用いて取得された後、幾何学的分割エッジの周囲のサンプルを導出するために2つの片方向予測信号にブレンドが適用される。CUの各位置のブレンド重み付けは、各個々のサンプル位置から対応する分割エッジまでの距離に基づいて導出される。
GPMシグナリング設計
現GPM設計によれば、GPMの使用はCUレベルで1つのフラグをシグナリングすることによって示される。このフラグは、現CUがマージモード又はスキップモードでコーディングされている場合にのみシグナリングされる。具体的には、フラグが1に等しい場合、GPMによって現CUが予測されることを示す。そうでない場合(フラグが0に等しい)、CUは、通常のマージモード、動きベクトル差分を伴うマージモード、インター予測とイントラ予測の組み合わせなど、別のマージモードでコード化される。現CUに対してGPMが有効である場合、1つのシンタックス要素、すなわちmerge_gpm_partition_idxが、適用された幾何学的分割モード(図4に示すように、CUを2つの分割に分割するCUセンターからの直線の方向とオフセットを指定する)を示すようさらにシグナリングされる。その後、2つのシンタックス要素merge_gpm_idx0tomerge_gpm_idx1が、1番目と第2のGPM分割に使用される片方向予測マージ候補のインデックスを示すようにシグナリングされる。具体的には、「片方向予測マージリスト構築」のセクションで説明されているように、これらの2つのシンタックス要素を使用して、片方向予測マージリストから2つのGPM分割の片方向MVを決定する。現GPM設計によれば、2つの片方向MVをより異なったものにするためには、2つのインデックスを同一にすることはできない。このような事前知識に基づいて、第1のGPM分割の片方向予測マージインデックスを最初にシグナリングし、第2のGPM分割の片方向予測マージインデックスのシグナリングオーバーヘッドを削減するための予測子として使用する。詳細には、第2の片方向予測マージインデックスが第1の片方向予測マージインデックスよりも小さい場合、元の値が直接シグナリングされる。そうでない場合(第2の片方向予測マージインデックスが第1の片方向予測マージインデックスよりも大きい場合)、値が1減算されてからビットストリームにシグナリングされる。デコーダ側では、第1の片方向予測マージインデックスは、最初はデコーダである。次に、第2の片方向予測マージインデックスの復号では、解析された値が第1の片方向予測マージインデックスより小さい場合、第2の片方向予測マージインデックスは解析値と同じに設定される。そうでない場合(解析された値が第1の片方向予測マージインデックスと同じかそれより大きい場合)、第2の片方向予測マージインデックスは解析された値に1を加えた値に設定される。表1は、現VVC仕様でGPMモードに使用されている既存のシンタックス要素を示している。
一方、現GPM設計では、2つの片方向予測マージインデックス、すなわちmerge_gpm_idx0tomerge_gpm_idx1のバイナリ化に、切り捨てされた単項コードが使用される。さらに、2つの片方向予測マージインデックスを同じではあり得ないため、2つの片方向予測マージインデックスのコードワードを切り捨てるために異なる最大値が使用される。これらのマージインデックスは、それぞれmerge_gpm_idx0及びmerge_gpm_idx1に対してMaxGPMMergeCand-1及びMaxGPMMergeCand-2に設定される。MaxGPMMergeCandは、片方向予測マージリスト内の候補の数である。
GPM/AWPモードが適用されると、2つの異なるバイナリ化方法が適用され、merge_gpm_partition_idxシンタックスがバイナリビットの文字列に変換される。具体的には、シンタックス要素は、それぞれ、VVC及びAVS3規格において、固定長コード及び切り捨てされたバイナリコードによってバイナリ化される。一方、AVS3のAWPモードでは、シンタックス要素の値のバイナリ化に異なる最大値が使用される。具体的には、AVS3では、許可されるGPM/AWP分割モードの数は56(すなわちmerge_gpm_partition_idxの最大値は55)であるが、VVCでは64(すなわちmerge_gpm_partition_idxの最大値は63)に増加する。
差分動きベクトルマージモード(MMVD)
1つの現ブロックの動き情報をその空間的/時間的ネイバーから導出する従来のマージモードに加えて、MMVD/UMVEモードが、1つの特殊マージモードとしてVVC及びAVS規格の両方で導入される。具体的には、VVCとAVS3の両方で、モードはコーディングブロックレベルで1つのMMVDフラグによってシグナリングされる。MMVDモードでは、通常のマージモードのマージリストの最初の2つの候補が、MMVDの2つの基本マージ候補として選択される。1つの基本マージ候補が選択され、シグナリングされた後、選択されたマージ候補の動きに追加される動きベクトル差分(MVD)を示すために、追加のシンタックス要素がシグナリングされる。MMVDシンタックス要素には、基本マージ候補を選択するためのマージ候補フラグ、MVDマグニチュードを指定する距離インデックス、及びMVD方向を示す方向インデックスが含まれる。
既存のMMVD設計では、距離インデックスはMVDの大きさを指定し、MVDマグニチュードは開始点から予め定義されたオフセットの1セットに基づいて定義される。図6A及び図6Bに示されるように、オフセットは、開始MVの水平又は垂直成分(すなわち、選択された基本マージ候補のMV)のいずれかに追加される。
図6Aに、L0参照のMMVDモードを示す。図6Bに、L1参照のMMVDモードを示す。
表2に、AVS3に適用されるMVDオフセットをそれぞれ示す。
表3に示すように、方向インデックスは、シグナリングされたMVDの符号を指定するために使用される。MVD符号の意味は、開始MVに応じて変わり得ることに留意されたい。開始MVが、そのPOCが、ともに現ピクチャのPOCよりも大きいか、現ピクチャのPOCよりも小さい、2つの参照ピクチャを指すMVを持つ、片方向予測MV又は双方向予測MVである場合、シグナリングされた符号は、開始MVに追加されたMVDの符号である。開始MVが、1つのピクチャのPOCが現ピクチャよりも大きく、もう1つのピクチャのPOCが現ピクチャよりも小さい、2つの参照ピクチャを指す双方向予測MVである場合、シグナリングされた符号はL0 MVDに適用され、シグナリングされた符号の逆の値がL1 MVDに適用される。
レギュラインターモードの動きシグナリング
HEVC規格と同様に、マージ/スキップモードに加えて、VVCとAVS3の両方で、1つのCU間でビットストリーム内の動き情報を明示的に指定できる。全体として、VVCとAVS3の両方における動き情報シグナリングは、HEVC規格におけるものと同じに保たれる。具体的には、1つのインター予測シンタックス、すなわちinter_pred_idcは、まず、リストL0、L1、又は両方からの予測シンタックスを示すべくシグナリングされる。使用される各参照リストについて、対応する参照ピクチャが、対応する参照リストの1つの参照ピクチャインデックスref_idx_lx(X=0,1)をシグナリングすることによって識別され、対応するMVは、MV予測子(MVP)を選択するために使用される1つのMVPインデックスmvp_lx_flag(X=0,1)によって表され、対象MVと選択されたMVPとの間の動きベクトル差分(MVD)が続く。さらに、VVC規格では1つの制御フラグmvd_l1_zero_flagがスライスレベルでシグナリングされる。mvd_l1_zero_flagが0に等しいとき、L1 MVDはビットストリームでシグナリングされる。そうでないとき(mvd_l1_zero_flagが1に等しいとき)、L1 MVDはシグナリングされず、その値は常にエンコーダ及びデコーダで0であると推測される。
CUレベルの加重による双方向予測
VVCとAVS3の前の以前の規格では、加重予測(WP)が適用されない場合、双方向予測信号は、2つの参照ピクチャから取得された片方向予測信号を平均化することによって生成される。VVCでは、1つのツールコーディング、すなわちCUレベル重み(BCW)による双方向予測が、双方向予測の効率を改善するために導入された。具体的には、BCWの双方向予測は、単純な平均化の代わりに、次のように2つの予測信号の加重平均化を可能とすることで拡張される。
VVCでは、現ピクチャが1つの低遅延ピクチャである場合、1つのBCWコーディングブロックの重みを、予め定義された重み値w∈{-2,3,4,5,10}の集合から選択することができ、4の重みは、2つの片方向予測信号が等しく重み付けされる従来の双方向予測の場合を表す。低遅延のためには、3つの重みw∈{3,4,5}のみが許容される。一般的に、WPとBCWの間には幾つかの設計上の類似性があるが、2つのコーディングツールは異なる粒度で照明変化問題を解決することを目標としている。しかし、WPとBCWの間の相互作用がVVC設計を複雑にする可能性があるため、2つのツールを同時に有効にすることはできない。具体的には、WPが1つのスライスに対して有効である場合、スライス内のすべての双方向予測CUのBCW重みはシグナリングされず、4(すなわち、等しい重みが適用される)であると推測される。
テンプレートマッチング
テンプレートマッチング(TM)は、現CUの上及び左に隣接する再構築されたサンプルからなる1つのテンプレートと、参照ピクチャ内の参照ブロック(つまり、テンプレートと同じサイズ)との間の最適マッチングを見出だすことによって、現CUの動き情報を精緻化するデコーダ側MV導出手法である。図7に示されるように、1つのMVは、[-8,+8]ペルの探索範囲内において、現CUの初期動きベクトルの周囲で探索される。最適マッチングは、現テンプレートと参照テンプレートとの間で、例えば、絶対値の差の合計(Sum of Absolute Difference:SAD)、絶対変換された差の合計(Sum of Absolute Transformed Difference:SATD)の合計など、最小マッチングコストを達成するMVとして定義されてもよい。TMモードをインターコーディングに適用するには、次の2つの方法がある。
AMVPモードでは、MVP候補は、現ブロックテンプレートと参照ブロックテンプレートとの差が最小となるものをピックアップするためのテンプレートマッチングの差分に基づいて決定され、TMは、MV精緻化のためのこの特定のMVP候補に対してのみ実行される。TMは、[-8,+8]ペルの探索範囲内のフルペルMVD精度(又は4ペルAMVRモードの場合は4ペル)から、反復ダイヤモンド検索を使用して、このMVP候補を絞り込む。AMVP候補は、フルペルMVD精度(又は4ペルAMVRモードの場合は4ペル)でのクロスサーチを使用してさらに絞り込まれ、続いて、下記の表13で指定されるAMVRモードに応じて、1/2ペル及び1/4ペルのクロスサーチを使用して絞り込まれてもよい。この検索処理により、MVP候補が、TM処理後にAMVRモードで示されるのと同じMV精度を維持することが保証される。
マージモードでは、マージインデックスで示されるマージ候補に対して同様の検索方法が適用される。上の表に示すように、TMは、マージされた動き情報に従って代替の補間フィルタ(AMVRが1/2ペルモードの場合に使用される)を使用するかどうかに応じて、1/8ペルMVD精度まで完全に実行し、又は1/2ペルMVD精度を超えるものをスキップしてもよい。
前述のように、2つのGPM分割の予測サンプルを生成するために使用される片方向動きは、通常のマージ候補から直接取得される。空間的/時間的な隣接ブロックのMV間に強い相関がない場合、マージ候補から導出した片方向MVは、各GPM分割の真の動きをキャプチャするのに十分に正確ではない可能性がある。動き推定は、より正確な動きを提供することが可能であるが、既存の片方向MVに適用し得る任意の動き精緻化のために、無視できないシグナリングオーバーヘッドという代償を伴う。一方、MVMDモードは、VVC及びAVS3規格の両方で使用され、これは、MVDシグナリングオーバーヘッドを削減するための1つの効率的なシグナリングメカニズムであることが証明されている。従って、GPMをMMVDモードと組み合わせることも有益である。そのような組み合わせは、各GPM分割の個々の動きを捕捉するためにより正確なMVを提供することにより、GPMツールの全体的なコーディング効率を潜在的に向上させ得る。
前述したように、VVCとAVS3の両規格では、GPMモードはマージ/スキップモードにのみ適用される。全ての非マージインターCUがGPMの柔軟な非矩形分割から利益を得られないことを考慮すると、このような設計は、コーディング効率の点では最適でない可能性がある。他方、上記と同じ理由により、通常のマージ/スキップモードから導出された片方向予測動き候補は、2つの幾何学的分割の真の動きをキャプチャするには必ずしも正確ではない。このような解析に基づいて、GPMモードを非マージインターモードに合理的に拡張することにより、追加のコーディングゲインが期待できる(すなわち、ビットストリーム中でそれらの動き情報を明示的にシグナリングするCU)。しかし、MV精度の向上は、シグナリングオーバーヘッドの増加という代償を伴う。従って、GPMモードを明示的インターモードに効率的に適用するためには、2つの幾何学的分割に対してより正確なMVを提供しながら、シグナリングコストを最小限に抑えることができる1つの効果的なシグナリングスキームを識別することが重要である。
提案される方法
本開示では、各GPM分割に適用される既存の片方向MVにさらに動き精緻化を適用することにより、GPMのコーディング効率をさらに向上させる方法を提案する。提案される方法を、動きベクトル精緻化を伴う幾何学的分割モード(GPM-MVR)と命名する。さらに、提案されるスキームでは、動き精緻化は、既存のMMVD設計の1つの類似した方法、すなわち、予め定義されたMVDマグニチュードと動き精緻化の方向の集合に基づいてシグナリングされる。
開示の別の態様では、GPMモードを明示的インターモードに拡張するための解決法が提供される。記述を容易にするため、これらのスキームを、明示的動きシグナリングを伴う幾何学的分割モード(GPM-EMS)と命名する。具体的には、通常のインターモードとのより良い調和を達成するために、提案されたGPM-EMSスキームにおいて、2つの幾何学的分割の対応する片方向MVを指定するために、既存の動きシグナリング機構、すなわちMVP+MVDが利用される。
分離動きベクトル精緻化を伴う幾何学的分割モード
GPMのコーディング効率を改善するため、本セクションでは、別個の動きベクトル精緻化を伴う1つの改良された幾何学的分割モードが提案される。具体的には、GPM分割が与えられると、提案された方法は、まず既存のシンタックスmerge_gpm_idx0tomerge_gpm_idx1を使用して、既存の片方向予測マージ候補リストから2つのGPM分割の片方向MVを識別し、それらをベースMVとして使用する。2つのベースMVが決定された後、2つの新しいシンタックス要素のセットが導入され、2つのGPM分割のベースMVに別々に適用される動き精緻化の値が指定される。具体的には、2つのフラグ、すなわちgpm_MVR_partIdx0_enable_flagtogpm_MVR_partIdx1_enable_flagは、最初はGPM-MVRがそれぞれ第1及び第2のGPM分割に適用されるか否かを示す信号である。1つのGPM分割のフラグが1に等しい場合、分割のベースMVに適用されるMVRの対応する値は、MMVDスタイルでシグナリングされる。すなわち、1つの距離インデックス(シンタックス要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxで示される)はMVRマグニチュードを指定し、1つの方向インデックス(シンタックス要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idxで示される)はMVRの方向を指定する。表4は、提案されたGPM-MVR法により導入されたシンタックス要素を示している。
表4に示すような提案されたシンタックス要素に基づいて、デコーダにおいて、各GPM分割の片方向予測サンプルを生成するために使用される最終MVは、シグナリングされた動きベクトル精緻化と対応するベースMVの合計に等しい。実際には、異なるMVRマグニチュードと方向のセットを事前に定義し、提案したGPM-MVRスキームに適用することができ、これにより動きベクトル精度とシグナリングオーバーヘッドとの間の様々なトレードオフを提供できる。1つの具体例において、提案されたGPM-MVRスキームのためのVVC規格で使用される8つのMVDオフセット(すなわち、1/4ペル、1/2ペル、1ペル、2ペル、4ペル、8ペル、16ペル及び32ペル)及び4つのMVD方向(すなわち、+/-x軸及びy軸)を再利用することが提案される。別の例では、AVS3規格で使用されている既存の5つのMVDオフセット{1/4ペル、1/2ペル、1ペル、2ペル及び4ペル}と4つのMVD方向(すなわち、+/-x軸及びy軸)が、提案されたGPM-MVRスキームに適用されている。
「GPMシグナリング設計」のセクションで説明したように、2つのGPM分割に使用される片方向MVは同一にはなり得ないことから、既存のGPM設計では、2つの片方向予測マージインデックスを強制的に異ならせる1つの制約が適用される。しかし、提案されたGPM-MVRスキームでは、さらなる動き精緻化が既存のGPM片方向MVに適用される。したがって、2つのGPM分割のベースMVが同一であっても、2つの分割を予測するために使用される最終的な片方向MVは、2つの動きベクトル精緻化の値が同じでない限り、依然として異なる可能性がある。上記の考察に基づいて、提案したGPM-MVRスキームが適用されるとき、制約(2つの片方向予測マージインデックスが異なるように制限する)は除去される。さらに、2つの片方向予測マージインデックスが同一であることが許容されているため、merg_gpm_idx0とmerge_gpm_idx1の両方のバイナリ化に同じ最大値MaxGPMMergeCand-1が使用される。MaxGPMMergeCandは、片方向予測マージリスト内の候補の数である。
上で分析したように、2つのGPM分割の片方向予測マージインデックス(すなわち、merge_gpm_idx0とmerge_gpm_idx1)が同一である場合、2つの分割に使用される最終MVが異なることを保証するために、2つの動きベクトル精緻化の値を同じにすることはできない。このような条件に基づいて、開示の一実施形態において、2つのGPM分割の片方向予測マージインデックスが同じ(すなわち、merge_gpm_idx0がmerge_gpm_idx1と等しい)場合、第1のGPM分割のMVRを使用して第2のGPM分割のMVRのシグナリングオーバーヘッドを削減する、1つのシグナリング冗長性除去方法が提案される。一例では、次のシグナリング条件が適用される:
第一に、フラグgpm_MVR_partIdx0_enable_flagが0に等しい(すなわち、GPM-MVRが第1のGPM分割に適用されない)とき、gpm_MVR_partIdx1_enable_flagのフラグはシグナリングされず、1であると推測される(すなわち、GPM-MVRが第2のGPM分割に適用される)。
次に、両方のフラグgpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagが1に等しく(すなわちGPM-MVRが2つのGPM分割に適用される)、gpm_mvr_partIdx0_direction_idxがgpm_mvr_partIdx1_direction_idxに等しい場合(すなわち2つのGPM分割のMVRが同じ方向を有する場合)、第1のGPM分割のMVRマグニチュード(すなわち、gpm_mvr_partIdx0_distance_idx)が、第2のGPM分割のMVRの大きさ(すなわち、gpm_mvr_partIdx1_distance_idx)を予測するために使用される。具体的には、gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxより小さい場合、元の値が直接シグナリングされる。そうでない場合(gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxより大きい場合)、その値はビットストリームにシグナリングされる前に1ずつ減算される。デコーダ側では、gpm_mvr_partIdx1_distance_idxの値を復号するために、解析された値がgpm_mvr_partIdx0_distance_idxより小さい場合、gpm_mvr_partIdx1_distance_idxは解析値に設定される。そうでない場合(解析された値がgpm_mvr_partIdx0_distance_idxと等しいかそれより大きい場合)、gpm_mvr_partIdx1_distance_idxは解析された値に1を加えた値に設定される。このような場合、オーバーヘッドをさらに削減するために、異なる最大値MaxGPMMVRDistance-1及びMaxGPMMVRDistance-2をgpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxのバイナリ化に使用できる。MaxGPMMVRDistanceは、動きベクトル精緻化に許容されるマグニチュードの数である。
別の実施形態では、MVRマグニチュードがMVRマグニチュードの前にシグナリングされるように、シグナリングの順序をgpm_mvr_partIdx0_direction_idx/gpm_mvr_partIdx1_direction_idx及びgpm_mvr_partIdx0_distance_idx/gpm_mvr_partIdx1_distance_idxに切り替えることが提案される。このように、上述したロジックと同様に、エンコーダ/デコーダは、第1のGPM分割のMVR方向を使用して、第2のGPM分割のMVR方向のシグナリングを条件付けることができる。別の実施形態では、第2のGPM分割のMVRマグニチュード及び方向を第1にシグナリングし、それらを使用して、第2のGPM分割のMVRマグニチュード及び方向のシグナリングを条件付けることが提案される。
別の実施形態では、既存のGPMシンタックス要素のシグナリングの前に、GPM-MVR関連のシンタックス要素をシグナリングすることが提案される。具体的には、このような設計では、2つのフラグ、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagは、最初はGPM-MVRがそれぞれ第1及び第2のGPM分割に適用されるか否かを示す信号である。1つのGPM分割のフラグが1に等しい場合、距離インデックス(シンタックス要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と方向インデックス(シンタックス要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idxによって示される)がMVRの方向を特定するためにシグナリングされる。その後、既存のシンタックスmerge_gpm_idx0及びmerge_gpm_idx1が、2つのGPM分割、すなわち、ベースのMVの片方向MVを識別するためにシグナリングされる。表5は、提案されたGPM-MVRシグナリングスキームを示す。
表4のシグナリング法と同様に、表5のGPM-MVRシグナリング法を適用して、2つのGPM分割の予測に使用される、結果として得られるMVが同一でないことを保証する場合、特定の条件が適用されてもよい。具体的には、片方向予測マージインデックスmerge_gpm_idx0及びmerge_gpm_idx1のシグナリングを、第1及び第2のGPM分割に適用されるMVRの値に応じて制約するために、次の条件が提案される。
第一に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が0に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同じにはならない;
第二に、gpm_MVR_partIdx0_enable_flagが1に等しく(すなわち、GPM-MVRが第1のGPM分割に対して有効である)、gpm_MVR_partIdx1_enable_flagが0に等しい(すなわちGPM-MVRが第2のGPM分割に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;
第三に、gpm_MVR_partIdx0_enable_flagが0に等しく(すなわち、GPM-MVRが第1のGPM分割に対して無効である)、gpm_MVR_partIdx1_enable_flagが1に等しい(すなわちGPM-MVRが第2のGPM分割に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;
第四に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が1に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されるか否かの判定は、2つのGPM分割に適用されるMVRの値(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxで示される)に依存する。2つのMVRの値が等しいとき、merge_gpm_idx0とmerge_gpm_idx1は同一ではない。そうでないとき(2つのMVRの値が等しくないとき)、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
上記4つのケースでは、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されないとき、一方の分割のインデックス値をもう一方の分割のインデックス値の予測子として使用できる。1つの方法では、最初にmerge_gpm_idx0をシグナリングし、その値を、merge_gpm_idx1を予測するために使用することが提案される。具体的には、エンコーダでmerge_gpm_idx1がmerge_gpm_idx0より大きい場合、デコーダに送信されるmerge_gpm_idx1の値は1ずつ減少する。デコーダでは、merge_gpm_idx1の受信値がmerge_gpm_idx0の受信値と等しいかそれより大きい場合、merge_gpm_idx1の値は1だけ増加する。別の方法では、最初にmerge_gpm_idx1をシグナリングし、その値を、merge_gpm_idx0を予測するために使用することが提案される。そのため、エンコーダでmerge_gpm_idx0がmerge_gpm_idx1より大きい場合、デコーダに送信されるmerge_gpm_idx0の値は1減少する。デコーダでは、merge_gpm_idx0の受信値がmerge_gpm_idx1の受信値と等しいかそれより大きい場合、merge_gpm_idx0の値は1だけ増加する。加えて、既存のGPMシグナリング設計と同様に、MaxGPMMergeCand-1及びMaxGPMMergeCand-2の異なる最大値を、シグナリング順序に従って、それぞれ第1及び第2のインデックス値のバイナリ化に使用できる。一方、2つのインデックス値の間に相関関係がないため、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容される場合、同じ最大値MaxGPMMergeCand-1が両方のインデックス値の2値に使用される。
上記の方法では、シグナリングコストを削減するために、merge_gpm_idx0とmerge_gpm_idx1のバイナリ化に異なる最大値を適用できる。対応する最大値の選択は、(gpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idx_によって示されるように)MVRの復号された値に依存する。このような設計は、異なるGPMシンタックス要素間の望ましくないシンタックス解析依存関係を導入し、このことが解析全体に影響を与える可能性がある。こうした問題を解決するため、一実施形態では、merge_gpm_idx0及びmerge_gpm_idx1の値を解析するために、常に同じ最大値(例えば、MaxGPMMergeCand-1)が1つ提案される。このような方法を使用する場合、2つのGPM分割の2つの復号されたMVが同じにならないように、1つのビットストリーム適合性制約を使用してもよい。別の方法では、2つのGPM分割の復号されたMVが同じであることが許されるように、このような非同一性制約を除去することもできる。一方、そのような方法が適用される場合(すなわち、merge_gpm_idx0とmerge_gpm_idx1に同じ最大値を使用する場合)、merge_gpm_idx0/merge_gpm_idx1と他のGPM-MVRシンタックス要素の間には解析依存関係はない。したがって、これらのシンタックス要素をシグナリングする順序は、もはや重要ではない。一例として、merge_gpm_idx0/merge_gpm_idx1のシグナリングをgpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxのシグナリングの前に移動することが提案される。
対称動きベクトル精緻化を伴う幾何学的分割モード
上述のGPM-MVR方法では2つの別々のMVR値が適用されてシグナリングされ、そのうちの1つのMVR値が、1つのGPM分割のみのベースMVを改善するために適用される。そのような方法は、GPM分割ごとに独立した動き精緻化を可能とすることで、予測精度の向上に関して効率的である。しかし、このようなフレキシブルな動き精緻化には、2つの異なるGMP-MVRシンタックス要素のセットがエンコーダからデコーダに送られる必要があることを考慮すると、シグナリングオーバーヘッドの増加という代償がある。本セクションでは、シグナリングオーバーヘッドを削減するために、対称動きベクトル精緻化を伴う1つの幾何学的分割モードを提案する。具体的には、この方法では、1つのGPM CUに対して1つの単一MVR値がシグナリングされ、2つのGPM分割の両方に、現ピクチャのピクチャオーダーカウント(POC)値と2つのGPM分割に関連付けられた参照ピクチャとの間の対称関係に従って使用される。表6は、提案された方法を適用したときのシンタックス要素を示している。
表6に示すように、2つのGPM分割のベースMVが選択された後(merge_gpm_idx0とmerge_gpm_idx1に基づいて)、GPM-MVRモードが現GPM CUに適用されるか否かを示すために、1つのフラグgpm_mvr_enable_flagがシグナリングされる。フラグが1に等しい場合、2つのGPM分割のベースMVを強化するために動き精緻化が適用されることを示す。そうでない場合(フラグが0に等しい場合)、動き精緻化が2つの分割のどちらにも適用されないことを示す。GPM-MVRモードが有効である場合、追加のシンタックス要素は、方向インデックスgpm_mvr_direction_idxとマグニチュードインデックスgpm_mvr_distance_idxによって、適用されたMVRの値を指定するために、さらにシグナリングされる。加えて、MMVDモードと同様に、MVR符号の意味は、現ピクチャのPOCとGPM分割の2つの参照ピクチャの間の関係に応じて変わり得る。具体的には、2つの参照ピクチャの両方のPOCが、現ピクチャのPOCよりも大きいか、又は小さい場合、シグナリングされた符号は、2つのベースMVの両方に追加されるMVRの符号である。そうでない場合(一方の参照ピクチャのPOCが現ピクチャよりも大きく、他方の参照ピクチャのPOCが現ピクチャよりも小さい場合)、シグナリングされた符号は第1のGPM分割のMVRに適用され、逆の符号が第2のGPM分割に適用される。表6では、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
別の実施形態では、2つのGPM分割のGPM-MVRモードの有効化/無効化を別々に制御するために、2つの異なるフラグにシグナリングすることが提案される。ただし、GPM-MVRモードが有効な場合、シンタックス要素gpm_mvr_direction_idx及びgpm_mvr_distance_idxに基づいてシグナリングされるのは1つのMVRのみである。そのようなシグナリング法の対応するシンタックステーブルを表7に示す。
表7のシグナリング法が適用される場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。ただし、2つのGPM分割に適用された、結果として得られるMVが冗長でないことを確認するために、フラグgpm_MVR_partIdx0_enable_flagが0に等しい(すなわち、GPM-MVRが第1のGPM分割に適用されない)とき、フラグgpm_MVR_partIdx1_enable_flagはシグナリングされず、1であると推測される(すなわち、GPM-MVRが第2のGPM分割に適用される)。
GPM-MVRのための許容されたMVRの適応
上述のGPM-MVR法では、MVR値の1つの固定グループは、1つのビデオシーケンス内のエンコーダとデコーダの両方でGPM CUに使用される。このような設計は、高解像度や激しい動きを持つビデオコンテンツには最適ではない。これらの場合、MVは非常に大きくなる傾向があるため、固定MVR値はそれらのブロックの実際の動きをキャプチャするのに最適でないことがある。GPM-MVRモードのコーディング性能をさらに向上させるために、本開示では、シーケンスレベル、ピクチャ/スライスピクチャ、コーディングブロックグループレベルなどの種々のコーディングレベルでGPM-MVRモードによって選択されることが許容されるMVR値の適応をサポートすることが提案される。例えば、複数のMVRセット及び対応するコードワードは、様々なビデオシーケンスの特定の動き特性に従ってオフラインで導出され得る。エンコーダは、最適MVRセットを選択し、選択したセットの対応するインデックスをデコーダに対しシグナリングしてもよい。
GPM-MVRレート歪み最適化のためのエンコーダスピードアップロジック
提案されたGPM-MVRスキームに対して、GPM分割ごとの最適MVRを決定するために、エンコーダは、適用されるMVR値を変えて、各GPM分割のレート歪みコストを複数回テストする必要がある場合がある。このことはGPMモードの符号化の複雑性を著しく高める可能性がある。符号化の複雑さの問題に対処するために、本セクションでは以下の高速符号化ロジックが提案される。
第一に、VVCとAVS3で適用されるクワッド/バイナリ/ターナリツリーブロック分割構造のために、1つの同じコーディングブロックが、1つの異なる分割パスを通して分割された、レート歪み最適化(RDO)処理の間にチェックされ得る。現VTM/HPMエンコーダの実装では、GPMとGPM-MVRモードは、異なるブロック分割の組み合わせによって1つの同じCUが得られるたびに、他のインター及びイントラコーディングモードとともに常にテストされる。一般的に、異なる分割パスに対しては、1つのCUの隣接するブロックのみが異なる可能性がある。ただし、1つのCUが選択する最適なコーディングモードに与える影響は比較的小さいはずである。このような考察に基づいて、適用されるGPMRDOの総数を削減するため、1つのCUのRDコストが初めてチェックされる際にGPMモードが選択されるか否かの決定を保存することが提案された。その後、再度RDO処理で同じCUがチェックされると(別の分割パスによって)、GPMのRDコスト(GPM-MVRを含む)は、最初にCUにGPMが選択された場合にのみチェックされる。1つのCUの初期RDチェックにGPMが選択されていない場合、同じCUが別の分割パスを介して達成されると、GPMのみ(GPM-MVRなし)がテストされる。別の方法では、1つのCUの最初のRDチェックにGPMが選択されていない場合、同じCUが別の分割パスを介して達成されると、GPMとGPM-MVRの両方はテストされない。
第二に、GPM-MVRモードのためのGPM分割数を削減するため、1つのCUのRDコストを初めてチェックしたとき、最小RDコストなしで最初のM個のGPM分割モードを維持することが提案される。その後、同じCUが再度RDO処理によってチェックされると(別の分割パスによって)、これらのM個のGPM分割モードのみがGPM-MVRモードでテストされる。
第三に、1の初期RDO処理に対して試験されるGPM分割の数を削減するために、2つのGPM分割に対して異なる片方向予測マージ候補を使用するとき、最初に絶対値の差の合計(Sum Absolute Difference:SAD)値を計算することが提案される。次に、1つの特定の分割モードの各GPM分割に対して、最小のSAD値を持つ最適片方向予測マージ候補を選択し、2つのGPM分割の最適片方向予測マージ候補のSAD値の合計に等しい分割モードの対応するSAD値を計算する。次に、次のRD処理では、前のステップの最適SAD値を持つ最初のN個の分割モードのみがGPM-MVRモードでテストされる。
明示的動きシグナリングを使用した幾何学的分割
本セクションでは、GPMモードを、GPMモードの2つの片方向MVがエンコーダからデコーダへ明示的にシグナリングされる正規インターモードの双方向予測に拡張するために、複数の方法が提案される。
第1の解決法(解決法1)では、GPMモードで2つの片方向MVにシグナリングするために、双方向予測の既存の動き信号を完全に再利用することが提案される。表8は、新しく追加されたシンタックス要素が斜体の太字である提案されたスキームの修正されたシンタックステーブルを示す。表8に示すように、この解決法では、信号L0及びL1動き情報の既存のすべてのシンタックス要素が、2つのGPM分割の片方向MVを示すために、それぞれ完全に再利用される。さらに、L0 MVは常に第1のGPM分割に関連付けられ、L1 MVは常に第2のGPM分割に関連付けられていると想定される。一方、表8において、インター予測シンタックス、すなわちinter_pred_idcは、GPMフラグ(すなわち、gpm_flag)の前にシグナリングされ、inter_pred_idcの値を使用してgpm_flagの存在を条件付けすることができる。具体的には、フラグgpm_flagは、inter_pred_idcがPRED_BI(すなわち双方向予測)と等しく、inter_affine_flagとsym_mvd_flagの両方が0に等しい(すなわち、CUはアフィンモードとSMVDモードのどちらによってもコード化されない)場合にのみシグナリングする必要がある。フラグgpm_flagがシグナリングされない場合、その値は常に0であると推測される(すなわち、GPMモードは無効である)。gpm_flagが1の場合、別のシンタックス要素gpm_partition_idxは、現CUの選択されたGPMモード(合計64個のGPM分割のうち)を示すように、さらにシグナリングされる。
別の方法では、フラグgpm_flagのシグナリングを他のインターシグナリングシンタックス要素の前に配置して、gpm_flagの値が、他のインターシンタックス要素が存在する必要があるか否かを決定するために使用できるようにすることが提案される。表9は、新しく追加されたシンタックス要素が斜体の太字である場合に、そのような方法が適用される場合の対応するシンタックステーブルを示している。示されるように、gpm_flagは、表9で最初にシグナリングされる。gpm_flagが1の場合、対応するinter_pred_idc、inter_affine_flag、sym_mvd_flagのシグナリングはバイパスできる。代わりに、3つのシンタックス要素の対応する値を、それぞれPRED_BI、0、及び0と推論できる。
表8と表9の両方において、SMVDモードをGPMモードと組み合わせることはできない。別の例では、現CUがGPMモードによってコード化される場合、SMVDモードを許容することが提案される。このような組み合わせが許容される場合、SMVDの同じ設計に従うことによって、2つのGPM分割のMVDは対称であると仮定され、よって第1のGPM分割のMVDのみがシグナリングされる必要があり、第2のGPM分割のMVDは常に第1のMVDに対して対称である。このような方法を適用すると、gpm_flagのsym_mvd_flagの対応するシグナリング条件を削除できる。
前述のように、第1の解決法では、第1のGPM分割にL0 MVが使用され、第2のGPM分割にL1 MVが使用されることを常に前提としている。このような設計は、この方法が2つのGPM分割のMVを1つの同じ予測リスト(L0又はL1)から取得することを禁止するという意味で最適ではない可能性がある。このような問題を解決するために、別のGPM-EMSスキームである解決法2が、表10に示すような信号設計で提案される。表10では、新しく追加されたシンタックス要素は斜体の太字である。表10に示すように、フラグgpm_flagは最初にシグナリングされる。フラグが1に等しい(GPMが有効である)場合、選択されたGPMモードを特定するために、シンタックスgpm_partition_idxがシグナリングされる。次に、1つの追加フラグgpm_pred_dir_flag0が、第1のGPM分割のMVがその元である対応する予測リストを示すためにシグナリングされる。フラグgpm_pred_dir_flag0が1に等しい場合、第1のGPM分割のMVがL1から来たことを示す。そうでない(フラグが0に等しい)場合、第1のGPM分割のMVがL0から来たことを示す。その後、既存のシンタックス要素ref_idx_l0、mvp_l0_flag、及びmvd_coding()を使用して、参照ピクチャインデックス、mvpインデックス、及び第1のGPM分割のMVDの値をシグナリングする。一方、第1の分割と同様に、別のシンタックス要素gpm_pred_dir_flag1が、第2のGPM分割の対応する予測リストを選択するために導入され、第2のGPM分割のMVを導出するために使用される既存のシンタックス要素ref_idx_l1、mvp_l1_flag、及びmvd_coding()が続く。
また、最後に、GPMモードが2つの片方向予測分割(分割エッジ上のブレンディングサンプルを除く)からなる点を考慮すると、双方向オプティカルフロー、デコーダ側動きベクトル精緻化(DMVR)及びCU重み付き双方向予測(BCW)など、特に双方向予測用に設計されたVVC及びAVS3の既存のコーディングツールは、提案されたGPM-EMSスキームが1つのインターCUに対して有効であるとき、自動的にバイパスされてもよい。例えば、提案されたGPM-EMSの1つが1つのCUに対して有効である場合、BCWがGPMモードに適用できないことを考慮すると、シグナリングオーバーヘッドを削減するために、対応するBCW重みをCUに対してさらにシグナリングする必要はない。
GPM-MVRとGPM-EMSの組み合わせ
本セクションでは、幾何学的分割を伴う1つのCUに対してGPM-MVRとGPM-EMSを組み合わせることが提案される。具体的には、提案されたスキームでは、マージベースの動きシグナリング又は明示的シグナリングのうちの1つのみを2つのGPM分割の片方向予測MVの信号に適用できるGPM-MVR又はGPM-EMSのいずれかとは異なり、1)GPM-MVRベースの動きシグナリングを使用する1つの分割と、GPM-EMSベースの動きシグナリングを使用するもう1つの分割、又は2)GPM-MVRベースの動きシグナリングを使用する2つの分割、又は3)GPM-EMSベースの動きシグナリングを使用する2つの分割を許容する。表4のGPM-MVRシグナリングと表10のGPM-EMSを使用して、表11に、提案されたGPM-MVRとGPM-EMSを組み合わせた後の対応するシンタックステーブルを示す。表11では、新しく追加されたシンタックス要素は斜体の太字である。表11に示すように、分割#1及び#2にはそれぞれ、2つの追加のシンタックス要素gpm_merge_flag0及びgpm_merge_flag1が導入されており、これらは対応する分割がGPM-MVRベースのマージシグナリング又はGPM-EMSベースの明示的シグナリングを使用することを指定する。フラグが1の場合、GPM片方向予測動きがmerge_gpm_idxX、gpm_mvr_partIdxX_enabled_flag、gpm_mvr_partIdxX_direction_idx及びgpm_mvr_partIdxX_distance_idx(X=0,1)によってシグナリングされる分割に対してGPM-MVRベースのシグナリングが有効であることを意味する。そうでない場合、フラグが0の場合、分割の片方向予測動きはシンタックス要素gpm_pred_dir_flagX、ref_idx_lX、mvp_lX_flag、及びmvd_lX(X=0,1)を使用してGPM-EMS方式により明示的にシグナリングされることを意味する。
GPM-MVRとテンプレートマッチングの組み合わせ
このセクションでは、GPM-MVRとテンプレートマッチングを組み合わせるための様々な解決法が提供される。
方法1では、1つのCUがGPMモードでコード化される場合、2つのGPM分割に対して2つの別々のフラグをシグナリングすることが提案され、フラグの各々は、対応する分割の片方向動きがテンプレートマッチングによってさらに精緻化されるか否かを示す。フラグが有効になると、現CUの左側と上側の隣接する再構築されたサンプルを使用してテンプレートが生成される。次いで、「テンプレートの照合」セクションで紹介したのと同じ手順に従って、テンプレートとその参照サンプルの間の差分を最小化することによって、分割の片方向の動きが絞り込まれる。そうでない場合(フラグが無効になっている場合)、テンプレートマッチングは分割に適用されず、GPM-MVRがさらに適用されてもよい。表5のGPM-MVRシグナリング法を例に、表11に、GPM-MVRとテンプレートマッチングを組み合わせた場合の対応するシンタックステーブルを示す。
表11に示すように、提案されたスキームでは、2つの追加フラグgpm_tm_enable_flag0とgpm_tm_enable_flag1が、それぞれ2つのGPM分割に対して動きが精緻化されているか否かを示すために、最初にシグナリングされる。フラグが1の場合、TMが1つの分割の片方向MVを精緻化するために適用されていることを示す。フラグが0の場合、GPM-MVRがGPM分割に適用されているか否かを示す1つのフラグ(gpm_MVR_partIdx0_enable_flag又はgpm_MVR_partIdx1_enable_flag)がさらにシグナリングされる。1つのGPM分割のフラグが1に等しい場合、距離インデックス(シンタックス要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と方向インデックス(シンタックス要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idxによって示される)がMVRの方向を特定するためにシグナリングされる。その後、既存のシンタックスmerge_gpm_idx0及びmerge_gpm_idx1が、2つのGPM分割の片方向MVを識別するためにシグナリングされる。一方、表5に適用されるシグナリング条件と同様に、2つのGPM分割の予測に使用される、結果として得られるMVが同一でないことを保証するために、以下の条件を適用できる。
第一に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の両方の値が1である(すなわち、2つのGPM分割の両方でTMが有効である)場合、merge_gpm_idx0とmerge_gpm_idx1の値は同じではあり得ない。
第二に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
そうでない場合、すなわちgpm_tm_enable_flag0とgpm_tm_enable_flag1の両方が1に等しいとき:第一に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が0に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同じにはならない;第二に、gpm_MVR_partIdx0_enable_flagが1に等しく(すなわち、GPM-MVRが第1のGPM分割に対して有効である)、gpm_MVR_partIdx1_enable_flagが0に等しい(すなわちGPM-MVRが第2のGPM分割に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第三に、gpm_MVR_partIdx0_enable_flagが0に等しく(すなわち、GPM-MVRが第1のGPM分割に対して無効である)、gpm_MVR_partIdx1_enable_flagが1に等しい(すなわちGPM-MVRが第2のGPM分割に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第四に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が1に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されるか否かの判定は、2つのGPM分割に適用されるMVRの値(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxで示される)に依存する。2つのMVRの値が等しいとき、merge_gpm_idx0とmerge_gpm_idx1は同一ではない。そうでないとき(2つのMVRの値が等しくないとき)、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
上記の方法1では、TMとMVRはGPMに排他的に適用される。このようなスキームでは、TMモードの精緻化されたMVにMVRをさらに適用することは禁じられる。従って、GPMのためにより多くのMV候補を提供するために、TM精緻化MVにMVRオフセットを適用できる方法2を提案した。表12に、GPM-MVRがテンプレートマッチングと組み合わされた場合の対応するシンタックステーブルを示す。
表12に示すように、表11とは異なり、gpm_tm_enable_flag0及びgpm_tm_enable_flag1でのgpm_MVR_partIdx0_enable_flag及びgpm_MVR_partIdx1_enable_flagのシグナリング条件が削除される。従って、TMが1つのGPM分割の片方向動きを精緻化するために適用されるか否かにかかわらず、MV精緻化は常にGPM分割のMVに適用することが許される。上述と同様に、2つのGPM分割の結果得られるMVが同一でないことを確認するには、次の条件を適用する必要がある。
まず、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
そうでない場合、すなわちgpm_tm_enable_flag0とgpm_tm_enable_flag1の両方が1に等しいか、あるいは両フラグが0に等しいとき:第一に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が0に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同じにはならない;第二に、gpm_MVR_partIdx0_enable_flagが1に等しく(すなわち、GPM-MVRが第1のGPM分割に対して有効である)、gpm_MVR_partIdx1_enable_flagが0に等しい(すなわちGPM-MVRが第2のGPM分割に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第三に、gpm_MVR_partIdx0_enable_flagが0に等しく(すなわち、GPM-MVRが第1のGPM分割に対して無効である)、gpm_MVR_partIdx1_enable_flagが1に等しい(すなわちGPM-MVRが第2のGPM分割に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第四に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が1に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されるか否かの判定は、2つのGPM分割に適用されるMVRの値(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxで示される)に依存する。2つのMVRの値が等しいとき、merge_gpm_idx0とmerge_gpm_idx1は同一ではない。そうでないとき(2つのMVRの値が等しくないとき)、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
上記の2つの方法では、TMが各GPM分割に適用されているか否かを示すために、2つの個別のフラグをシグナリングする必要がある。付加されたシグナリングは、特に低ビットレートにおいて、付加的なオーバーヘッドのために、全体的なコーディング効率を低下させ得る。シグナリングオーバーヘッドを削減するために、付加的なシグナリングを導入する代わりに、TMベースの片方向MVをGPMモードの片方向MV候補リストに挿入する方法3が提案される。TMベースの片方向MVは、「テンプレートマッチング」の項で説明したものと同じTM処理に従って、GPMの元の片方向MVを初期MVとして使用して生成される。このようなスキームにより、エンコーダからデコーダへ追加の制御フラグの信号をさらに送る必要はない。代わりに、デコーダは、ビットストリームから受信した対応するマージインデックス(すなわち、merge_gpm_idx0及びmerge_gpm_idx1)を介して、1つのMVがTMによって精緻化されたか否かを識別できる。通常のGPM MV候補(すなわち、非TM)及びTMベースのMV候補を配置するための様々な方法が存在し得る。1つの方法では、MV候補リストの先頭にTMベースのMV候補を置き、続いて非TMベースのMV候補を置くことが提案される。別の方法では、最初に非TMベースのMV候補を最初に置き、続いてTMベース候補を置くことが提案される。別の方法では、TMベースのMV候補と非TMベースのMV候補をインタリーブ方式で配置することが提案される。例えば、最初にN個の非TMベースの候補を置き、次にすべてのTMベースの候補を置き、最後に残りの非TMベースの候補を置くことができる。別の例では、最初にN個のTMベースの候補を置き、次にすべての非TMベースの候補を置き、最後に残りのTMベースの候補を置くことができる。別の例では、非TMベースの候補とTMベースの候補とを1つずつ順に、すなわち、1つの非TMベースの候補、1つのTMベースの候補、などと配置することが提案される。
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子部品を含む、1以上の回路を含む装置を用いて実施されてもよい。装置は、上記の方法を実行するために、他のハードウェア又はソフトウェア成分と組み合わせて回路を使用できる。上記開示された各モジュール、サブモジュール、ユニット、又はサブユニットは、少なくとも部分的に1以上の回路を使用して実装されてもよい。
図10は、ユーザインタフェース1060と結合された演算環境(又は演算装置)1010を示す。演算環境1010は、データ処理サーバの一部とすることができる。一部の実施形態において、演算装置1010は、本開示の各種例に従って、上述のような様々な方法又は処理(符号化/復号方法又は処理など)のいずれかを実行できる。演算環境1010は、プロセッサ1020、メモリ1040、及びI/Oインタフェース1050を含んでもよい。
プロセッサ1020は、典型的には、表示、データ収集、データ通信、及び画像処理に関連する操作などの、演算環境1010の全体的な操作を制御する。プロセッサ1020は、上述した方法のすべて又は一部のステップを実行するための命令を実行するための1以上のプロセッサを含んでもよい。さらに、プロセッサ1020は、プロセッサ1020と他の構成要素との間の相互作用を容易にする1以上のモジュールを含んでもよい。プロセッサは、中央演算処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどとすることができる。
メモリ1040は、演算環境1010の動作をサポートするため、各種タイプのデータを格納するよう構成される。メモリ1040は、所定のソフトウェア1042を含んでもよい。このようなデータの例には、演算環境1010で動作する任意のアプリケーション又は方法のための命令、ビデオデータセット、画像データなどが含まれる。メモリ1130は、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、プログラマブル読取り専用メモリ(PROM)、読取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク、光ディスクなどの任意のタイプの揮発性又は不揮発性メモリデバイス、又はそれらの組み合わせを使用することによって実施することができる。
I/Oインタフェース1050は、プロセッサ1020と、キーボード、クリックホイール、ボタンなどの周辺インタフェースモジュールとの間のインタフェースを提供する。ボタンとしては、限定されるものではないが、ホームボタン、スキャン開始ボタン、及びスキャン停止ボタンが含まれ得る。I/Oインタフェース1050は、エンコーダ及びデコーダと結合されることができる。
一部の実施形態では、上述の方法を実行するために、メモリ1040内に含まれ、演算環境1010内のプロセッサ1020によって実行可能な複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データストレージデバイスなどであってもよい。
非一時的コンピュータ可読記憶媒体は、1以上のプロセッサを有する演算装置によって実行するための複数のプログラムを格納しており、複数のプログラムは、1以上のプロセッサによって実行されると、上記動作予測のための方法を演算装置に実行させる。
一部の実施形態では、演算環境1010は、上記の方法を実行するために、1以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセシングユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子部品を用いて実施されてもよい。
図8は、本開示の一例によるGPMでビデオブロックを復号する方法を示すフローチャートである。
ステップ801において、プロセッサ1020は、ビデオブロックを第1及び第2の幾何学的分割に分割できる。
ステップ802において、プロセッサ1020は、第1の幾何学的分割のための第1のTMイネーブルフラグを受信でき、第2の幾何学的分割のための第2のTMイネーブルフラグを取得できる。
一部の例では、第1のTMイネーブルフラグは、第1の分割の片方向動きがTMによって精緻化されるか否かを示し、第2のTMイネーブルフラグは、第2の分割の片方向動きがTMによって精緻化されるか否かを示す。例えば、第1のTMイネーブルフラグは、表11又は表12に示すようにフラグgpm_tm_enable_flag0となり、第2のTMイネーブルフラグは、表11又は表12に示すようにフラグgpm_tm_enable_flag1となる。
ステップ803において、プロセッサ1020は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信してもよい。
一部の例では、第1のマージGPMインデックスは、第1の幾何学的分割の片方向MVを識別し、第2のマージGPMインデックスは、第2の幾何学的分割の片方向MVを識別する。
一部の例では、第1のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx0であり、第2のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx1であってもよい。
ステップ804において、プロセッサ1020は、GPMの片方向MV候補リストを構築できる。
ステップ805において、プロセッサ1020は、第1の幾何学的分割に対する片方向MVと、第2の幾何学的分割に対する片方向MVとを生成してもよい。
一部の例では、表11に示されるように、プロセッサ1020は、第1のTMイネーブルフラグが1に等しいとの判定に応じて、第1の幾何学的分割の片方向MVを精緻化するためにTMが適用され、第1の幾何学的分割に対してMVRが適用されないと判定してもよい。
一部の例では、表11に示されるように、プロセッサ1020は、第1のTMイネーブルフラグが0に等しいとの判定に応じて、第1の幾何学的分割のための第1のGPM(GPM-MVR)イネーブルフラグを有する第1のGPMを受信することができ、第1のGPM-MVRイネーブルフラグは、GPM-MVRが第1の幾何学的分割に適用されるか否かを示すことができる。第1のGPM-MVRイネーブルフラグは、表11に示すように、gpm_tm_enable_flag0とすることができる。
一部の例では、表11に示されるように、プロセッサ1020は、第1のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1の幾何学的分割に対する第1のGPM-MVR距離インデックス及び第1のGPM-MVR方向インデックスを受け取ることができる。第1のGPM-MVR距離インデックスと第1のGPM-MVR方向インデックスは、表11に示すように、それぞれ第1の幾何学的分割のMVRの方向を指定できる。
一部の例では、表11に示されるように、プロセッサ1020は、第2のTMイネーブルフラグが1に等しいとの判定に応じて、第2の幾何学的分割の片方向MVを精緻化するためにTMが適用され、第2の幾何学的分割に対してMVRが適用されないことを決定してもよい。
一部の例では、表11に示されるように、プロセッサ1020は、第2のTMイネーブルフラグが0に等しいとの判定に応じて、第2の幾何学的分割のための動きベクトル精緻化(GPM-MVR)イネーブルフラグを有する第2のGPMを受信できる。第2のGPM-MVRイネーブルフラグは、GPM-MVRが第2の幾何学的分割に適用されるか否かを示すことができる。
一部の例では、表11に示されるように、プロセッサ1020は、第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1の幾何学的分割に対する第2のGPM-MVR距離インデックス及び第1のGPM-MVR方向インデックスを受け取ることができる。第2のGPM-MVR距離インデックス及び第2のGPM-MVR方向インデックスは、それぞれ第2の幾何学的分割についてMVRの方向を指定してもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグと第2のTMイネーブルフラグに基づいて、第1のマージGPMインデックスと第2のマージGPMインデックスをさらに制約してもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグと第2のTMイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグ及び第2のTMイネーブルフラグの一方が1に等しく、他方が0に等しいとの判定に応じて、第1のマージGPMインデックス及び第2のマージGPMインデックスが同一であることが許容されると判定してもよい。一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
例えば、一部の例では、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であってもよい。一部の例では、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は異なっていてもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグ及び第2のTMイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1のGPM-MVRイネーブルフラグ及び第2のGPM-MVRイネーブルフラグに基づいて、第1のマージGPMインデックス及び第2のマージGPMインデックスをさらに制約してもよい。
例えば、プロセッサ1020は、第1のGPM-MVRイネーブルフラグと第2のGPM-MVRイネーブルフラグがそれぞれ0に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
例えば、プロセッサ1020は、第1のGPM-MVRイネーブルフラグが1に等しく、第2のGPM-MVRイネーブルフラグが0に等しいとの判定に応じて、又は第1のGPM-MVRイネーブルフラグが0に等しく、第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
例えば、プロセッサ1020は、第1のGPM-MVRイネーブルフラグ及び第2のGPM-MVRイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1の幾何学的分割の第1のMVR及び第2の幾何学的分割の第2のMVRに基づいて、第1のマージGPMインデックス及び第2のマージGPMインデックスを決定してもよい。
一部の例では、プロセッサ1020は、第1のMVRが第2のMVRに等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
一部の例では、プロセッサ1020は、第1のMVRが第2のMVRに等しくないとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
一部の例では、プロセッサ1020は、表12に示されるように、第1のTMイネーブルフラグと第2のTMイネーブルフラグに基づいて、第1のマージGPMインデックスと第2のマージGPMインデックスをさらに制約してもよい。
例えば、プロセッサ1020は、第1のTMイネーブルフラグ及び第2のTMイネーブルフラグの一方が1に等しく、他方が0に等しいとの判定に応じて、第1のマージGPMインデックス及び第2のマージGPMインデックスが同一であることが許容されると判定してもよい。
例えば、プロセッサ1020は、第1のTMイネーブルフラグと第2のTMイネーブルフラグの両方が0に等しいか、第1のTMイネーブルフラグと第2のTMイネーブルフラグの両方が1に等しいとの判定に応じて、第1の幾何学的分割の第1のGPM動きベクトル精緻化(GPM-MVR)イネーブルフラグ及び第2の幾何学的分割の第2のGPM-MVRイネーブルフラグに基づいて、第1のマージGPMインデックス及び第2のマージGPMインデックスを制約してもよい。第1のGPM-MVRイネーブルフラグは、GPM-MVRが第1の幾何学的分割に適用されるか否かを示すことができ、第2のGPM-MVRイネーブルフラグは、GPM-MVRが第2の幾何学的分割に適用されるか否かを示すことができる。
一部の例では、プロセッサ1020は、第1のGPM-MVRイネーブルフラグと第2のGPM-MVRイネーブルフラグが0であるとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
一部の例では、プロセッサ1020は、第1のGPM-MVRイネーブルフラグが1に等しく、第2のGPM-MVRイネーブルフラグが0に等しいとの判定に応じて、又は第1のGPM-MVRイネーブルフラグが0に等しく、第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
一部の例では、プロセッサ1020は、第1のマージGPMインデックスと第2のマージGPMインデックスがそれぞれ1に等しいとの判定に応じて、第1のマージGPMインデックス及び第2のマージGPMインデックスを、第1の幾何学的分割の第1の動きベクトル精緻化(MVR)及び前記第2の幾何学的分割の第2のMVRに基づいて決定してもよい。
一部の例では、プロセッサ1020は、第1のMVRが第2のMVRに等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。さらに、プロセッサ1020は、第1のMVRが第2のMVRに等しくないとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。
図9は、本開示の一例によるGPMでビデオブロックを復号する方法を示すフローチャートである。
ステップ901において、プロセッサ1020は、ビデオブロックを第1及び第2の幾何学的分割に分割できる。
ステップ902において、プロセッサ1020は、GPMの片方向MV候補リストを構築できる。
ステップ903において、プロセッサ1020は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信してもよい。
一部の例では、第1のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx0であり、第2のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx1であってもよい。
ステップ904において、プロセッサ1020は、第1のマージGPMインデックスと第2のマージGPMインデックスに基づいて片方向MV候補リストを更新してもよい。
一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスは、単一の片方向MVが洗練されているか否かを示す。
一部の例では、プロセッサ1020は、初期MVとしてGPMの元の片方向MVに基づいて、TMベースの片方向MVを生成してもよく、TMベースの片方向MVを片方向MV候補リストに追加することによって、更新された片方向MV候補リストを取得してもよい。第1のマージGPMインデックスと第2のマージGPMインデックスは、TMベースの片方向MVを示し得る。
一部の例では、プロセッサ1020は、以下の操作のうちの1つによって、TMベースの片方向MVを片方向MV候補リストに追加してもよい:非TMベースの片方向MVがTMベースの片方向MVに続くように、片方向MV候補リストの先頭にTMベースの片方向MVを追加すること;TMベースの片方向MVが、片方向MV候補リスト内の非TMベースの片方向MVに続くように、片方向MV候補リストにTMベースの片方向MVを追加すること;片方向MV候補リストにおいてTMベースの片方向MVと非TMベースの片方向MVがインタリーブ方式で配置されるように、片方向MV候補リストにTMベースの片方向MVを追加すること。
一部の例では、GPMでビデオブロックを復号するための装置が提供される。装置は、プロセッサ1020と、プロセッサによって実行可能な命令を格納するよう構成されたメモリ1040とを含み、プロセッサは、命令の実行時に、図8又は図9に示す方法を実行するよう構成される。
他の一部の例では、命令が格納された非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ1020によって実行されると、命令は図8又は図9に示されるような方法をプロセッサに実行させる。
本開示の他の例は、ここに開示される本開示の明細書及び実施の検討から当業者には明らかとなろう。本出願は、その一般原理に従う開示のあらゆる変形、使用、又は適合をカバーすることを意図しており、当技術分野における既知の又は慣習的実施に含まれる本開示からの逸脱を含む。明細書及び例は、あくまで例示的であるとみなされることが意図されている。
本開示は、上記で説明され、添付の図面に示された例のみに限定されるものではなく、その範囲を逸脱することなく、種々の修正及び変更を行うことができることが理解されるであろう。
本開示は、ビデオコーディング及び圧縮に関する。より詳しくは、本開示は、重み付き角予測(angular weighted prediction:AWP)モードとしても知られる幾何学的分割モード(geometric partition mode:GPM)のコーディング効率を改善する方法及び装置に関する。
ビデオデータを圧縮するために、各種ビデオコーディング技術を使用できる。ビデオコーディングは、1以上のビデオコーディング規格に従って実行される。例えば、最近では、周知のビデオコーディング規格には、多用途ビデオコーディング(Versatile Video Coding:VVC)、高効率ビデオコーディング(High Efficiency Video Coding:HEVC、H.265又はMPEG-H Part2としても知られる)、アドバンスド・ビデオコーディング(Advanced Video Coding:AVC、H.264又はMPEG-4 Part 10としても知られる)が含まれ、これらはISO/IEC MPEG及びITU-T VECGによって共同開発されている。AOMedia Video 1 (AV1)は、Alliance for Open Media (AOM)によって、以前の規格VP9の後継として開発された。オーディオビデオコーディング(Audio Video Coding:AVS)は、デジタルオーディオ及びデジタルビデオ圧縮規格を指し、中国のオーディオ及びビデオコーディング規格ワークグループ(Audio and Video Coding Standard Workgroup)によって開発されたもう1つのビデオ圧縮規格シリーズである。既存のビデオコーディング規格の大部分は、有名なハイブリッドビデオコーディングフレームワークに基づいて構築される、すなわちビデオ画像又はシーケンスに存在する冗長性を削減するためにブロックベースの予測方法(例えば、インター予測、イントラ予測)を使用し、予測誤差のエネルギーを圧縮するために変換コーディングを使用する。ビデオコーディング技術の重要な目標は、ビデオ品質の劣化を回避しもしくは最小限に抑えながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。
本開示の例は、ビデオコーディングのための方法及び装置、及び非一時的コンピュータ可読記憶媒体を提供する。
本開示の第1の態様によれば、GPMでビデオブロックを復号する方法が提供される。この方法は、ビデオブロックを第1の幾何学的分割及び第2の幾何学的分割に分割することを含んでもよい。この方法は、第1の幾何学的分割に対する第1のテンプレートマッチング(TM)イネーブルフラグを受信することと、第2の幾何学的分割に対する第2のTMイネーブルフラグを受信することとを含み、第1のTMイネーブルフラグは、第1の幾何学的分割の片方向動きがTMによって精緻化されているか否かを示し、第2のTMイネーブルフラグは、第2の幾何学的分割の片方向動きがTMによって精緻化されているか否かを示す。この方法は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信することを含んでもよい。この方法は、GPMの片方向動きベクトル(MV)候補リストを構築することを含んでもよい。この方法は、第1の幾何学的分割に対する片方向MVと、第2の幾何学的分割に対する片方向MVとを生成することを含んでもよい。
本開示の第2の態様によれば、GPMでビデオブロックを復号する方法が提供される。この方法は、ビデオブロックを第1の幾何学的分割及び第2の幾何学的分割に分割することを含んでもよい。この方法は、GPMの片方向MV候補リストを構築することを含んでもよい。この方法は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信することを含んでもよい。この方法は、第1のマージGPMインデックスと第2のマージGPMインデックスに基づいて片方向MV候補リストを更新することを含んでもよく、第1のマージGPMインデックスと第2のマージGPMインデックスは、単一の片方向MVがテンプレートマッチング(TM)によって精緻化されているか否かを示す。
本開示の第3の態様によれば、ビデオ復号のための装置が提供される。この装置は、1以上のプロセッサと、非一時的コンピュータ可読記憶媒体とを含んでもよい。非一時的コンピュータ可読記憶媒体は、1以上のプロセッサによって実行可能な命令を格納するよう構成される。1以上のプロセッサは、命令の実行時に、第1又は第2の態様で方法を実行するよう構成される。
本開示の第4の態様によれば、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は、1以上のコンピュータプロセッサによって実行されると、1以上のコンピュータプロセッサに、第1又は第2の態様でこの方法を実行させるコンピュータで実行可能な命令を格納してもよい。
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本開示と一致する例を説明し、明細書と共に、本開示の原理を説明するのに役立つ。
図1は、本開示の一例によるエンコーダのブロック図である。 図2は、本開示の一例によるデコーダのブロック図である。 図3Aは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Bは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Cは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Dは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図3Eは、本開示の一例によるマルチタイプツリー構造におけるブロック分割を示す図である。 図4は、本開示の一例による、許容される幾何学的分割(Geometric Partitioning:GPM)による分割の例である。 図5は、本開示の一例による片方向予測動きベクトル選択を示す表である。 図6Aは、本開示の一例による差分動きベクトルマージモード(Merge mode with Motion Vector Difference:MMVD)の説明図である。 図6Bは、本開示の一例によるMMVDモードの説明図である。 図7は、本開示の一例によるテンプレートマッチング(TM)アルゴリズムの説明図である。 図8は、本開示の一例による、GPMでビデオブロックを復号する方法である。 図9は、本開示の一例による、GPMでビデオブロックを復号する方法である。 図10は、本開示の一例による、ユーザインタフェースと結合された演算環境を示す図である。
ここで、実施形態を詳細に参照する。その例は添付の図面に示されている。以下の説明は、別段の表示がない限り、異なる図面における同一の番号が同一又は類似の要素を表す添付図面を参照する。以下の実施の説明に記載される実施形態は、本開示と一致するすべての実施を表すものではない。代わりに、それらは、添付の特許請求の範囲に記載されている本開示に関連する態様と一致する装置及び方法の単なる例である。
本開示で使用される用語は、特定の実施形態を説明することのみを目的としており、本開示を限定することを意図するものではない。本開示及び添付の特許請求の範囲で使用されるように、単数形「a」、「an」、及び「the」は、文脈で明確に別段の指示がない限り、複数形も含むことを意図している。ここで使用される「及び/又は」という用語は、関連するリストされた項目の1以上の任意又はすべての可能な組み合わせを意味し、それらを含むことを意図していることも理解されたい。
ここで「第1」、「第2」、「第3」などの用語を使用して様々な情報を説明することができるが、情報はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、あるカテゴリの情報を別のカテゴリと区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報を第2の情報と呼ぶことができ、同様に、第2の情報を第1の情報と呼ぶこともできる。ここで使用される場合、「の場合(if)」という用語は、文脈に応じて、「のとき(when)」又は「すると(upon)」又は「判定に応じて(in response to a judgment)」を意味するものと理解され得る。
第1世代AVS規格には、中国国家規格「Advanced Audio Video Coding, Part 2: Video」 (AVS1として知られる)と「Information Technology, Advanced Audio Video Coding Part 16: Radio Television Video」(AVS+として知られる)」が含まれる。これは、MPEG-2規格と比較して、同じ知覚品質で約50%のビットレート節約を提供できる。AVS1規格のビデオパートは、2006年2月に中国国家規格として公布された。第2世代AVS規格には、中国の一連の国家規格「Information Technology, Efficient Multimedia Coding」(AVS2として知られる)が含まれ、これは主に超高解像度テレビ番組の伝送を対象としている。AVS2のコーディング効率はAVS+の2倍である。2016年5月には、中国国家規格としてAVS2が公布された。一方、AVS2規格のビデオパートは、IEEE(Institute of Electrical and Electronics Engineers)によって、アプリケーションの国際規格の1つとして提出された。AVS3規格は、最新の国際規格であるHEVCのコーディング効率を上回ることを目的とした、UHDビデオアプリケーション用の1つの新しい世代のビデオコーディング規格である。2019年3月、第68回AVS会議において、AVS3-P2ベースラインが完成し、HEVC規格より約30%ビットレートが節約された。現在、高性能モデル(HPM)と呼ばれる1つのリファレンスソフトウェアがAVSグループによって維持されており、AVS3規格のリファレンス実装を実証している。
HEVCと同様に、AVS3規格はブロックベースのハイブリッドビデオコーディングフレームワークに基づいて構築されている。
図1は、VVCのためのブロックベースのビデオエンコーダの概略図を示す。具体的には、図1は、典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インターモード決定116、ブロック予測子140、サマー(summer)128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピーコーディング138、及びビットストリーム144を有する。
エンコーダ100において、ビデオフレームは処理のために複数のビデオブロックに分割される。所与の各ビデオブロックについて、インター予測アプローチ又はイントラ予測アプローチのいずれかに基づいて予測が形成される。
ビデオ入力110の一部である現ビデオブロックと、ブロック予測子140の一部であるその予測子との差を表す予測残差が、加算器128から変換130に送られる。次いで、変換係数は、エントロピー削減のために変換130から量子化132に送られる。次に、量子化係数がエントロピーコーディング138に供給され、圧縮されたビデオビットストリームが生成される。図1に示されるように、ビデオブロック分割情報、動きベクトル(motion vector:MV)、参照ピクチャインデックス、及びイントラ予測モードなどの、イントラ/インターモード決定116からの予測関連情報142も、エントロピーコーディング138を介して供給され、圧縮ビットストリーム144に保存される。圧縮ビットストリーム144は、ビデオビットストリームを含む。
エンコーダ100では、予測の目的で画素を再構築するために、デコーダ関連回路も必要とされる。第1に、予測残差は、逆量子化134及び逆変換136によって再構築される。この再構築された予測残差は、ブロック予測子140と組み合わされ、現ビデオブロックのための、フィルタリングされていない再構築された画素を生成する。
空間予測(又は「イントラ予測」)は、現ビデオブロックと同じビデオフレーム内のすでにコード化された隣接ブロックのサンプル(参照サンプルと呼ばれる。)からの画素を使用して、現ビデオブロックを予測する。
時間予測(「インター予測」とも呼ばれる。)は、すでに符号化されたビデオピクチャからの再構築された画素を使用して、現ビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間冗長性を削減する。所与のコーディングユニット(CU)又はコーディングブロックについての時間予測信号は、通常、現CUとその時間参照との間の動きの量と方向を示す1以上の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされている場合には、1つの参照ピクチャインデックスが追加で送信される。これは、時間予測信号が参照ピクチャストアにおけるどの参照ピクチャから来るかを識別するために使用される。
動き推定114は、ビデオ入力110及びピクチャバッファ120からの信号を取り込み、動き推定信号を動き補償112に出力する。動き補償112は、ビデオ入力110と、ピクチャバッファ120からの信号と、動き推定114からの動き推定信号とを取り込み、動き補償信号をイントラ/インターモード決定116へ出力する。
空間予測及び/又は時間予測が実施された後、エンコーダ100内のイントラ/インターモード決定116は、例えばレート歪み最適化方法に基づいて、最適な予測モードを選択する。次いで、ブロック予測子140は現ビデオブロックから減算され、結果として生じる予測残差は変換130及び量子化132を使用して脱相関される。結果として生じる量子化された残差係数は、再構築された残差を形成するために、逆量子化134によって逆量子化され、逆変換136によって逆変換され、次いで、再構築された残差は、CUの再構築された信号を形成するために、予測ブロックに戻って加算される。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO)、及び/又は適応ループ内フィルタ(ALF)などのループ内フィルタリング122は、ピクチャバッファ120の参照ピクチャストアに入れられる前に、再構築されたCU上で適用され、将来のビデオブロックをコーディングするために使用され得る。出力ビデオビットストリーム144を形成するために、コーディングモード(インター又はイントラ)、予測モード情報、動き情報、及び量子化された残差係数は全て、ビットストリームを形成するためにエントロピーコーディングユニット138に送信され、さらに圧縮され、パッキングされる。
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、ブロック(コーディングユニット(CU)と呼ばれる)ごとに処理される。クワッドツリーのみに基づいてブロックを区分するHEVCとは異なり、AVS3では、1つのコーディングツリーユニット(CTU)は、クワッド/バイナリ/拡張クワッドツリーに基づいて、変動する局所特性に適合するようにCUにスプリットされる。加えて、HEVCにおける複数の分割ユニットタイプの概念は取り除かれ、すなわち、CU、予測ユニット(PU)、及び変換ユニット(TU)の区別はAVS3には存在せず、その代わりに、さらなる分割なしに、予測と変換の両方のための基本単位として各CUが常に使用される。AVS3のツリー分割構造では、1つのCTUは最初にクワッドツリー構造に基づいて分割化される。次に、各クワッドツリーのリーフノードは、バイナリ及び拡張クワッドツリー構造に基づいてさらに分割できる。
図3A、図3B、図3C、図3D、及び図3Eに示されるように、四分割、水平二分割、垂直二分割、水平拡張クワッドツリー分割、及び垂直拡張クワッドツリー分割という5つのスプリットタイプがある。
図3Aは、本開示による、マルチタイプツリー構造におけるブロック四分割を示す図である。
図3Bは、本開示による、マルチタイプツリー構造におけるブロック垂直二分割を示す図である。
図3Cは、本開示による、マルチタイプツリー構造におけるブロック水平二分割を示す図である。
図3Dは、本開示による、マルチタイプツリー構造におけるブロック垂直三分割を示す図である。
図3Eは、本開示による、マルチタイプツリー構造におけるブロック水平三分割を示す図である。
図1では、空間予測及び/又は時間予測が実行され得る。空間予測(又は「イントラ予測」)は、現ビデオブロックを予測するために、すでにコード化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を同じビデオピクチャ/スライスにおいて使用する。空間予測は、ビデオ信号に固有の空間冗長性を削減する。時間予測(「インター予測」又は「動き補償予測」とも呼ばれる)は、現ビデオブロックを予測するために、すでにコード化されたビデオピクチャからの再構築された画素を使用する。時間予測は、ビデオ信号に固有の時間冗長性を削減する。所与のCUのための時間予測信号は、通常、現CUとその時間参照との間の動きの量及び方向を示す1以上の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされる場合、時間予測信号が参照ピクチャストア内のどの参照ピクチャから来ているかを識別するために使用される1つの参照ピクチャインデックスが追加的に送信される。空間及び/又は時間予測の後、エンコーダ内のモード決定ブロックは、例えばレート歪み最適化方法に基づいて、最適な予測モードを選択する。次いで、予測ブロックは現ビデオブロックから減算され、予測残差は変換及び量子化を使用して脱相関される。量子化された残差係数は、再構築された残差を形成するために逆量子化及び逆変換され、再構築された残差は、CUの再構築された信号を形成するために、予測ブロックに戻って加算される。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO)、及び適応ループ内フィルタ(ALF)などのループ内フィルタリングは、参照ピクチャストアに入れられる前に、再構築されたCUに適用され、将来のビデオブロックをコーディングするために使用されてもよい。出力ビデオビットストリームを形成するために、コーディングモード(インター又はイントラ)、予測モード情報、動き情報、及び量子化された残差係数は全て、ビットストリームを形成するためにエントロピーコーディングユニットに送信されて、さらに圧縮され、パッキングされる。
図2は、VVCのためのビデオデコーダの概略ブロック図を示す。具体的には、図2は、典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号212、逆量子化214、逆変換216、加算器218、イントラ/インターモード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、及びビデオ出力232を有する。
デコーダ200は、図1のエンコーダ100にある再構築関連のセクションと同様である。デコーダ200において、量子化された係数レベル及び予測関連情報を導出するために、入ってくるビデオビットストリーム210が最初にエントロピー復号212によって復号される。次いで、再構築された予測残差を取得するために、量子化された係数レベルが逆量子化214及び逆変換216を通じて処理される。イントラ/インターモード選択器220において実装されるブロック予測子機構は、復号された予測情報に基づいて、イントラ予測222又は動き補償224のいずれかを実施するよう構成される。フィルタリングされていない再構築された画素のセットは、サマー218を使用して、逆変換216からの再構築予測残差とブロック予測子機構によって生成された予測出力を合計することによって取得される。
再構築されたブロックはさらに、参照ピクチャストアとして機能するピクチャバッファ226に格納される前に、ループ内フィルタ228を通過してもよい。ピクチャバッファ226内の再構築されたビデオは、表示装置を駆動するために送信されてもよく、また将来のビデオブロックを予測するために使用されてもよい。ループ内フィルタ228がオンである状況では、最終的な再構築されたビデオ出力232を導出するために、これらの再構築された画素に対してフィルタリング動作が実行される。
図2は、ブロックベースのビデオデコーダの概略ブロック図を示す。ビデオビットストリームはまず、エントロピー復号ユニットでエントロピー復号される。コーディングモード及び予測情報は、予測ブロックを生成するために、空間予測ユニット(イントラコード化される場合)又は時間予測ユニット(インターコード化される場合)のいずれかに送信される。残差変換係数は、残差ブロックを再構築するために、逆量子化ユニット及び逆変換ユニットに送信される。次いで、予測ブロックと残差ブロックが合計される。再構築されたブロックはさらに、参照ピクチャストアに格納される前に、ループ内フィルタリングを通過してもよい。次いで、参照ピクチャストア内の再構築されたビデオは、表示のために送信され、また将来のビデオブロックを予測するために使用される。
開示の焦点は、VVCとAVS3の両規格で使用される幾何学的分割モード(GPM)のコーディング性能を改善することである。AVS3では、このツールはGPMの同じ設計精神に従う重み付き角予測(angular weighted prediction:AWP)としても知られているが、特定の設計詳細には微妙な違いがある。開示の記載を容易にするため、以下では、VVC規格における既存のGPM設計を例として使用して、GPM/AWPツールの主要な態様を説明する。一方、VVCとAVS3規格の両方に適用される、差分動きベクトルマージモード(MMVD)と呼ばれる他の既存のインター予測技術も、本開示で提案された技術と密接に関連することを考慮して、簡潔に考察される。その後、現GPM/AWP設計のいくつかの欠点が識別される。最後に、提案された方法を詳細に示す。VVC規格の既存のGPM設計は、開示を通して例として使用されているが、現代のビデオコーディング技術の当業者には、提案された技術は、同じ又は類似の設計精神を有する他のGPM/AWP設計又は他のコーディングツールにも適用できることに留意されたい。
幾何学的分割モード(GPM)
VVCにおいて、インター予測について幾何学的分割モードがサポートされている。幾何学的分割モードは、1つの特殊マージモードとして1つのCUレベルフラグによってシグナリングされる。現GPM設計では、8×64及び64×8を除き、幅及び高さが8より小さくなく64より大きくない可能なCUサイズごとに、GPMモードで合計64分割がサポートされている。
このモードを使用すると、図4(説明は以下に行う)に示すように、CUが幾何学的に配置された直線によって2つの部分に分割される。分割線の位置は、特定の分割の角度及びオフセットパラメータから数学的に導出される。CUにおける幾何学的分割の各部分は、それ自体の動きによってインター予測される;分割ごとに片方向予測のみが許される、すなわち、各部分は、1つの動きベクトルと1つの参照インデックスを有する。片方向予測動き制約は、従来の双方向予測と同様に、各CUに必要な動き補償予測が2つだけであることを保証するために適用される。現CUに幾何学的分割モードが使用されている場合、幾何学的分割(角度とオフセット)の分割モードを示す幾何学的分割インデックスと、2つのマージインデックス(各分割に1つずつ)がさらにシグナリングされる。最大GPM候補のサイズの数は、シーケンスレベルで明示的にシグナリングされる。
図4は、許可されたGPM分割を示しており、各ピクチャのスプリット方向は同一である。
片方向予測候補リスト構築
1つの幾何学的分割に対する片方向予測動きベクトルを導出するために、1つの片方向予測候補リストを最初に通常のマージ候補リスト生成処理で直接導出する。幾何学的片方向予測候補リストでは、片方向予測動きのインデックスをnで示す。n番目のマージ候補のLX動きベクトル(Xはnのパリティに等しい)を、幾何学的分割モードのn番目の片方向予測動きベクトルとして使用する。
これらの動きベクトルには、図5(後述)において「x」の印が付されている。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合、幾何学的分割モードのための片方向予測動きベクトルとして、同じ候補のL(1-X)動きベクトルが代わりに使用される。
図5は、GPMのマージ候補リストの動きベクトルからの片方向予測動きベクトル選択を示している。
幾何学的分割エッジに沿ったブレンド
それぞれの幾何学的分割がそれ自身の動きを用いて取得された後、幾何学的分割エッジの周囲のサンプルを導出するために2つの片方向予測信号にブレンドが適用される。CUの各位置のブレンド重み付けは、各個々のサンプル位置から対応する分割エッジまでの距離に基づいて導出される。
GPMシグナリング設計
現GPM設計によれば、GPMの使用はCUレベルで1つのフラグをシグナリングすることによって示される。このフラグは、現CUがマージモード又はスキップモードでコーディングされている場合にのみシグナリングされる。具体的には、フラグが1に等しい場合、GPMによって現CUが予測されることを示す。そうでない場合(フラグが0に等しい)、CUは、通常のマージモード、動きベクトル差分を伴うマージモード、インター予測とイントラ予測の組み合わせなど、別のマージモードでコード化される。現CUに対してGPMが有効である場合、1つのシンタックス要素、すなわちmerge_gpm_partition_idxが、適用された幾何学的分割モード(図4に示すように、CUを2つの分割に分割するCUセンターからの直線の方向とオフセットを指定する)を示すようさらにシグナリングされる。その後、2つのシンタックス要素merge_gpm_idx0tomerge_gpm_idx1が、第1のGPM分割と第2のGPM分割に使用される片方向予測マージ候補のインデックスを示すようにシグナリングされる。具体的には、「片方向予測マージリスト構築」のセクションで説明されているように、これらの2つのシンタックス要素を使用して、片方向予測マージリストから2つのGPM分割の片方向MVを決定する。現GPM設計によれば、2つの片方向MVをより異なったものにするためには、2つのインデックスを同一にすることはできない。このような事前知識に基づいて、第1のGPM分割の片方向予測マージインデックスを最初にシグナリングし、第2のGPM分割の片方向予測マージインデックスのシグナリングオーバーヘッドを削減するための予測子として使用する。詳細には、第2の片方向予測マージインデックスが第1の片方向予測マージインデックスよりも小さい場合、元の値が直接シグナリングされる。そうでない場合(第2の片方向予測マージインデックスが第1の片方向予測マージインデックスよりも大きい場合)、値が1減算されてからビットストリームにシグナリングされる。デコーダ側では、第1の片方向予測マージインデックスは、最初はデコーダである。次に、第2の片方向予測マージインデックスの復号では、解析された値が第1の片方向予測マージインデックスより小さい場合、第2の片方向予測マージインデックスは解析値と同じに設定される。そうでない場合(解析された値が第1の片方向予測マージインデックスと同じかそれより大きい場合)、第2の片方向予測マージインデックスは解析された値に1を加えた値に設定される。表1は、現VVC仕様でGPMモードに使用されている既存のシンタックス要素を示している。
一方、現GPM設計では、2つの片方向予測マージインデックス、すなわちmerge_gpm_idx0tomerge_gpm_idx1のバイナリ化に、切り捨てされた単項コードが使用される。さらに、2つの片方向予測マージインデックスを同じではあり得ないため、2つの片方向予測マージインデックスのコードワードを切り捨てるために異なる最大値が使用される。これらのマージインデックスは、それぞれmerge_gpm_idx0及びmerge_gpm_idx1に対してMaxGPMMergeCand-1及びMaxGPMMergeCand-2に設定される。MaxGPMMergeCandは、片方向予測マージリスト内の候補の数である。
GPM/AWPモードが適用されると、2つの異なるバイナリ化方法が適用され、merge_gpm_partition_idxシンタックスがバイナリビットの文字列に変換される。具体的には、シンタックス要素は、それぞれ、VVC及びAVS3規格において、固定長コード及び切り捨てされたバイナリコードによってバイナリ化される。一方、AVS3のAWPモードでは、シンタックス要素の値のバイナリ化に異なる最大値が使用される。具体的には、AVS3では、許可されるGPM/AWP分割モードの数は56(すなわちmerge_gpm_partition_idxの最大値は55)であるが、VVCでは64(すなわちmerge_gpm_partition_idxの最大値は63)に増加する。
差分動きベクトルマージモード(MMVD)
1つの現ブロックの動き情報をその空間的/時間的ネイバーから導出する従来のマージモードに加えて、MMVD/UMVEモードが、1つの特殊マージモードとしてVVC及びAVS規格の両方で導入される。具体的には、VVCとAVS3の両方で、モードはコーディングブロックレベルで1つのMMVDフラグによってシグナリングされる。MMVDモードでは、通常のマージモードのマージリストの最初の2つの候補が、MMVDの2つの基本マージ候補として選択される。1つの基本マージ候補が選択され、シグナリングされた後、選択されたマージ候補の動きに追加される動きベクトル差分(MVD)を示すために、追加のシンタックス要素がシグナリングされる。MMVDシンタックス要素には、基本マージ候補を選択するためのマージ候補フラグ、MVDマグニチュードを指定する距離インデックス、及びMVD方向を示す方向インデックスが含まれる。
既存のMMVD設計では、距離インデックスはMVDの大きさを指定し、MVDマグニチュードは開始点から予め定義されたオフセットの1セットに基づいて定義される。図6A及び図6Bに示されるように、オフセットは、開始MVの水平又は垂直成分(すなわち、選択された基本マージ候補のMV)のいずれかに追加される。
図6Aに、L0参照のMMVDモードを示す。図6Bに、L1参照のMMVDモードを示す。
表2に、AVS3に適用されるMVDオフセットをそれぞれ示す。
表3に示すように、方向インデックスは、シグナリングされたMVDの符号を指定するために使用される。MVD符号の意味は、開始MVに応じて変わり得ることに留意されたい。開始MVが、そのPOCが、ともに現ピクチャのPOCよりも大きいか、現ピクチャのPOCよりも小さい、2つの参照ピクチャを指すMVを持つ、片方向予測MV又は双方向予測MVである場合、シグナリングされた符号は、開始MVに追加されたMVDの符号である。開始MVが、1つのピクチャのPOCが現ピクチャよりも大きく、もう1つのピクチャのPOCが現ピクチャよりも小さい、2つの参照ピクチャを指す双方向予測MVである場合、シグナリングされた符号はL0 MVDに適用され、シグナリングされた符号の逆の値がL1 MVDに適用される。
レギュラインターモードの動きシグナリング
HEVC規格と同様に、マージ/スキップモードに加えて、VVCとAVS3の両方で、1つのCU間でビットストリーム内の動き情報を明示的に指定できる。全体として、VVCとAVS3の両方における動き情報シグナリングは、HEVC規格におけるものと同じに保たれる。具体的には、1つのインター予測シンタックス、すなわちinter_pred_idcは、まず、リストL0、L1、又は両方からの予測シンタックスを示すべくシグナリングされる。使用される各参照リストについて、対応する参照ピクチャが、対応する参照リストの1つの参照ピクチャインデックスref_idx_lx(X=0,1)をシグナリングすることによって識別され、対応するMVは、MV予測子(MVP)を選択するために使用される1つのMVPインデックスmvp_lx_flag(X=0,1)によって表され、対象MVと選択されたMVPとの間の動きベクトル差分(MVD)が続く。さらに、VVC規格では1つの制御フラグmvd_l1_zero_flagがスライスレベルでシグナリングされる。mvd_l1_zero_flagが0に等しいとき、L1 MVDはビットストリームでシグナリングされる。そうでないとき(mvd_l1_zero_flagが1に等しいとき)、L1 MVDはシグナリングされず、その値は常にエンコーダ及びデコーダで0であると推測される。
CUレベルの加重による双方向予測
VVCとAVS3の前の以前の規格では、加重予測(WP)が適用されない場合、双方向予測信号は、2つの参照ピクチャから取得された片方向予測信号を平均化することによって生成される。VVCでは、1つのツールコーディング、すなわちCUレベル重み(BCW)による双方向予測が、双方向予測の効率を改善するために導入された。具体的には、BCWの双方向予測は、単純な平均化の代わりに、次のように2つの予測信号の加重平均化を可能とすることで拡張される。
VVCでは、現ピクチャが1つの低遅延ピクチャである場合、1つのBCWコーディングブロックの重みを、予め定義された重み値w∈{-2,3,4,5,10}の集合から選択することができ、4の重みは、2つの片方向予測信号が等しく重み付けされる従来の双方向予測の場合を表す。低遅延のためには、3つの重みw∈{3,4,5}のみが許容される。一般的に、WPとBCWの間には幾つかの設計上の類似性があるが、2つのコーディングツールは異なる粒度で照明変化問題を解決することを目標としている。しかし、WPとBCWの間の相互作用がVVC設計を複雑にする可能性があるため、2つのツールを同時に有効にすることはできない。具体的には、WPが1つのスライスに対して有効である場合、スライス内のすべての双方向予測CUのBCW重みはシグナリングされず、4(すなわち、等しい重みが適用される)であると推測される。
テンプレートマッチング
テンプレートマッチング(TM)は、現CUの上及び左に隣接する再構築されたサンプルからなる1つのテンプレートと、参照ピクチャ内の参照ブロック(つまり、テンプレートと同じサイズ)との間の最適マッチングを見出だすことによって、現CUの動き情報を精緻化するデコーダ側MV導出手法である。図7に示されるように、1つのMVは、[-8,+8]ペルの探索範囲内において、現CUの初期動きベクトルの周囲で探索される。最適マッチングは、現テンプレートと参照テンプレートとの間で、例えば、絶対値の差の合計(Sum of Absolute Difference:SAD)、絶対変換された差の合計(Sum of Absolute Transformed Difference:SATD)の合計など、最小マッチングコストを達成するMVとして定義されてもよい。TMモードをインターコーディングに適用するには、次の2つの方法がある。
AMVPモードでは、MVP候補は、現ブロックテンプレートと参照ブロックテンプレートとの差が最小となるものをピックアップするためのテンプレートマッチングの差分に基づいて決定され、TMは、MV精緻化のためのこの特定のMVP候補に対してのみ実行される。TMは、[-8,+8]ペルの探索範囲内のフルペルMVD精度(又は4ペルAMVRモードの場合は4ペル)から、反復ダイヤモンド検索を使用して、このMVP候補を絞り込む。AMVP候補は、フルペルMVD精度(又は4ペルAMVRモードの場合は4ペル)でのクロスサーチを使用してさらに絞り込まれ、続いて、下記の表13で指定されるAMVRモードに応じて、1/2ペル及び1/4ペルのクロスサーチを使用して絞り込まれてもよい。この検索処理により、MVP候補が、TM処理後にAMVRモードで示されるのと同じMV精度を維持することが保証される。
マージモードでは、マージインデックスで示されるマージ候補に対して同様の検索方法が適用される。上の表に示すように、TMは、マージされた動き情報に従って代替の補間フィルタ(AMVRが1/2ペルモードの場合に使用される)を使用するかどうかに応じて、1/8ペルMVD精度まで完全に実行し、又は1/2ペルMVD精度を超えるものをスキップしてもよい。
前述のように、2つのGPM分割の予測サンプルを生成するために使用される片方向動きは、通常のマージ候補から直接取得される。空間的/時間的な隣接ブロックのMV間に強い相関がない場合、マージ候補から導出した片方向MVは、各GPM分割の真の動きをキャプチャするのに十分に正確ではない可能性がある。動き推定は、より正確な動きを提供することが可能であるが、既存の片方向MVに適用し得る任意の動き精緻化のために、無視できないシグナリングオーバーヘッドという代償を伴う。一方、MVMDモードは、VVC及びAVS3規格の両方で使用され、これは、MVDシグナリングオーバーヘッドを削減するための1つの効率的なシグナリングメカニズムであることが証明されている。従って、GPMをMMVDモードと組み合わせることも有益である。そのような組み合わせは、各GPM分割の個々の動きを捕捉するためにより正確なMVを提供することにより、GPMツールの全体的なコーディング効率を潜在的に向上させ得る。
前述したように、VVCとAVS3の両規格では、GPMモードはマージ/スキップモードにのみ適用される。全ての非マージインターCUがGPMの柔軟な非矩形分割から利益を得られないことを考慮すると、このような設計は、コーディング効率の点では最適でない可能性がある。他方、上記と同じ理由により、通常のマージ/スキップモードから導出された片方向予測動き候補は、2つの幾何学的分割の真の動きをキャプチャするには必ずしも正確ではない。このような解析に基づいて、GPMモードを非マージインターモードに合理的に拡張することにより、追加のコーディングゲインが期待できる(すなわち、ビットストリーム中でそれらの動き情報を明示的にシグナリングするCU)。しかし、MV精度の向上は、シグナリングオーバーヘッドの増加という代償を伴う。従って、GPMモードを明示的インターモードに効率的に適用するためには、2つの幾何学的分割に対してより正確なMVを提供しながら、シグナリングコストを最小限に抑えることができる1つの効果的なシグナリングスキームを識別することが重要である。
提案される方法
本開示では、各GPM分割に適用される既存の片方向MVにさらに動き精緻化を適用することにより、GPMのコーディング効率をさらに向上させる方法を提案する。提案される方法を、動きベクトル精緻化を伴う幾何学的分割モード(GPM-MVR)と命名する。さらに、提案されるスキームでは、動き精緻化は、既存のMMVD設計の1つの類似した方法、すなわち、予め定義されたMVDマグニチュードと動き精緻化の方向の集合に基づいてシグナリングされる。
開示の別の態様では、GPMモードを明示的インターモードに拡張するための解決法が提供される。記述を容易にするため、これらのスキームを、明示的動きシグナリングを伴う幾何学的分割モード(GPM-EMS)と命名する。具体的には、通常のインターモードとのより良い調和を達成するために、提案されたGPM-EMSスキームにおいて、2つの幾何学的分割の対応する片方向MVを指定するために、既存の動きシグナリング機構、すなわちMVP+MVDが利用される。
分離動きベクトル精緻化を伴う幾何学的分割モード
GPMのコーディング効率を改善するため、本セクションでは、別個の動きベクトル精緻化を伴う1つの改良された幾何学的分割モードが提案される。具体的には、GPM分割が与えられると、提案された方法は、まず既存のシンタックスmerge_gpm_idx0tomerge_gpm_idx1を使用して、既存の片方向予測マージ候補リストから2つのGPM分割の片方向MVを識別し、それらをベースMVとして使用する。2つのベースMVが決定された後、2つの新しいシンタックス要素のセットが導入され、2つのGPM分割のベースMVに別々に適用される動き精緻化の値が指定される。具体的には、2つのフラグ、すなわちgpm_MVR_partIdx0_enable_flagtogpm_MVR_partIdx1_enable_flagは、最初はGPM-MVRがそれぞれ第1のGPM分割及び第2のGPM分割に適用されるか否かを示す信号である。1つのGPM分割のフラグが1に等しい場合、分割のベースMVに適用されるMVRの対応する値は、MMVDスタイルでシグナリングされる。すなわち、1つの距離インデックス(シンタックス要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxで示される)はMVRマグニチュードを指定し、1つの方向インデックス(シンタックス要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idxで示される)はMVRの方向を指定する。表4は、提案されたGPM-MVR法により導入されたシンタックス要素を示している。
表4に示すような提案されたシンタックス要素に基づいて、デコーダにおいて、各GPM分割の片方向予測サンプルを生成するために使用される最終MVは、シグナリングされた動きベクトル精緻化と対応するベースMVの合計に等しい。実際には、異なるMVRマグニチュードと方向のセットを事前に定義し、提案したGPM-MVRスキームに適用することができ、これにより動きベクトル精度とシグナリングオーバーヘッドとの間の様々なトレードオフを提供できる。1つの具体例において、提案されたGPM-MVRスキームのためのVVC規格で使用される8つのMVDオフセット(すなわち、1/4ペル、1/2ペル、1ペル、2ペル、4ペル、8ペル、16ペル及び32ペル)及び4つのMVD方向(すなわち、+/-x軸及びy軸)を再利用することが提案される。別の例では、AVS3規格で使用されている既存の5つのMVDオフセット{1/4ペル、1/2ペル、1ペル、2ペル及び4ペル}と4つのMVD方向(すなわち、+/-x軸及びy軸)が、提案されたGPM-MVRスキームに適用されている。
「GPMシグナリング設計」のセクションで説明したように、2つのGPM分割に使用される片方向MVは同一にはなり得ないことから、既存のGPM設計では、2つの片方向予測マージインデックスを強制的に異ならせる1つの制約が適用される。しかし、提案されたGPM-MVRスキームでは、さらなる動き精緻化が既存のGPM片方向MVに適用される。したがって、2つのGPM分割のベースMVが同一であっても、2つの分割を予測するために使用される最終的な片方向MVは、2つの動きベクトル精緻化の値が同じでない限り、依然として異なる可能性がある。上記の考察に基づいて、提案したGPM-MVRスキームが適用されるとき、制約(2つの片方向予測マージインデックスが異なるように制限する)は除去される。さらに、2つの片方向予測マージインデックスが同一であることが許容されているため、merg_gpm_idx0とmerge_gpm_idx1の両方のバイナリ化に同じ最大値MaxGPMMergeCand-1が使用される。MaxGPMMergeCandは、片方向予測マージリスト内の候補の数である。
上で分析したように、2つのGPM分割の片方向予測マージインデックス(すなわち、merge_gpm_idx0とmerge_gpm_idx1)が同一である場合、2つの分割に使用される最終MVが異なることを保証するために、2つの動きベクトル精緻化の値を同じにすることはできない。このような条件に基づいて、開示の一実施形態において、2つのGPM分割の片方向予測マージインデックスが同じ(すなわち、merge_gpm_idx0がmerge_gpm_idx1と等しい)場合、第1のGPM分割のMVRを使用して第2のGPM分割のMVRのシグナリングオーバーヘッドを削減する、1つのシグナリング冗長性除去方法が提案される。一例では、次のシグナリング条件が適用される:
第一に、フラグgpm_MVR_partIdx0_enable_flagが0に等しい(すなわち、GPM-MVRが第1のGPM分割に適用されない)とき、gpm_MVR_partIdx1_enable_flagのフラグはシグナリングされず、1であると推測される(すなわち、GPM-MVRが第2のGPM分割に適用される)。
次に、両方のフラグgpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagが1に等しく(すなわちGPM-MVRが2つのGPM分割に適用される)、gpm_mvr_partIdx0_direction_idxがgpm_mvr_partIdx1_direction_idxに等しい場合(すなわち2つのGPM分割のMVRが同じ方向を有する場合)、第1のGPM分割のMVRマグニチュード(すなわち、gpm_mvr_partIdx0_distance_idx)が、第2のGPM分割のMVRの大きさ(すなわち、gpm_mvr_partIdx1_distance_idx)を予測するために使用される。具体的には、gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxより小さい場合、元の値が直接シグナリングされる。そうでない場合(gpm_mvr_partIdx1_distance_idxがgpm_mvr_partIdx0_distance_idxより大きい場合)、その値はビットストリームにシグナリングされる前に1ずつ減算される。デコーダ側では、gpm_mvr_partIdx1_distance_idxの値を復号するために、解析された値がgpm_mvr_partIdx0_distance_idxより小さい場合、gpm_mvr_partIdx1_distance_idxは解析値に設定される。そうでない場合(解析された値がgpm_mvr_partIdx0_distance_idxと等しいかそれより大きい場合)、gpm_mvr_partIdx1_distance_idxは解析された値に1を加えた値に設定される。このような場合、オーバーヘッドをさらに削減するために、異なる最大値MaxGPMMVRDistance-1及びMaxGPMMVRDistance-2をgpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxのバイナリ化に使用できる。MaxGPMMVRDistanceは、動きベクトル精緻化に許容されるマグニチュードの数である。
別の実施形態では、MVRマグニチュードがMVRマグニチュードの前にシグナリングされるように、シグナリングの順序をgpm_mvr_partIdx0_direction_idx/gpm_mvr_partIdx1_direction_idx及びgpm_mvr_partIdx0_distance_idx/gpm_mvr_partIdx1_distance_idxに切り替えることが提案される。このように、上述したロジックと同様に、エンコーダ/デコーダは、第1のGPM分割のMVR方向を使用して、第2のGPM分割のMVR方向のシグナリングを条件付けることができる。別の実施形態では、第2のGPM分割のMVRマグニチュード及び方向を第1にシグナリングし、それらを使用して、第2のGPM分割のMVRマグニチュード及び方向のシグナリングを条件付けることが提案される。
別の実施形態では、既存のGPMシンタックス要素のシグナリングの前に、GPM-MVR関連のシンタックス要素をシグナリングすることが提案される。具体的には、このような設計では、2つのフラグ、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagは、最初はGPM-MVRがそれぞれ第1のGPM分割及び第2のGPM分割に適用されるか否かを示す信号である。1つのGPM分割のフラグが1に等しい場合、距離インデックス(シンタックス要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と方向インデックス(シンタックス要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idxによって示される)がMVRの方向を特定するためにシグナリングされる。その後、既存のシンタックスmerge_gpm_idx0及びmerge_gpm_idx1が、2つのGPM分割、すなわち、ベースのMVの片方向MVを識別するためにシグナリングされる。表5は、提案されたGPM-MVRシグナリングスキームを示す。
表4のシグナリング法と同様に、表5のGPM-MVRシグナリング法を適用して、2つのGPM分割の予測に使用される、結果として得られるMVが同一でないことを保証する場合、特定の条件が適用されてもよい。具体的には、片方向予測マージインデックスmerge_gpm_idx0及びmerge_gpm_idx1のシグナリングを、第1のGPM分割及び第2のGPM分割に適用されるMVRの値に応じて制約するために、次の条件が提案される。
第一に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が0に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同じにはならない;
第二に、gpm_MVR_partIdx0_enable_flagが1に等しく(すなわち、GPM-MVRが第1のGPM分割に対して有効である)、gpm_MVR_partIdx1_enable_flagが0に等しい(すなわちGPM-MVRが第2のGPM分割に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;
第三に、gpm_MVR_partIdx0_enable_flagが0に等しく(すなわち、GPM-MVRが第1のGPM分割に対して無効である)、gpm_MVR_partIdx1_enable_flagが1に等しい(すなわちGPM-MVRが第2のGPM分割に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;
第四に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が1に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されるか否かの判定は、2つのGPM分割に適用されるMVRの値(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxで示される)に依存する。2つのMVRの値が等しいとき、merge_gpm_idx0とmerge_gpm_idx1は同一ではない。そうでないとき(2つのMVRの値が等しくないとき)、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
上記4つのケースでは、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されないとき、一方の分割のインデックス値をもう一方の分割のインデックス値の予測子として使用できる。1つの方法では、最初にmerge_gpm_idx0をシグナリングし、その値を、merge_gpm_idx1を予測するために使用することが提案される。具体的には、エンコーダでmerge_gpm_idx1がmerge_gpm_idx0より大きい場合、デコーダに送信されるmerge_gpm_idx1の値は1ずつ減少する。デコーダでは、merge_gpm_idx1の受信値がmerge_gpm_idx0の受信値と等しいかそれより大きい場合、merge_gpm_idx1の値は1だけ増加する。別の方法では、最初にmerge_gpm_idx1をシグナリングし、その値を、merge_gpm_idx0を予測するために使用することが提案される。そのため、エンコーダでmerge_gpm_idx0がmerge_gpm_idx1より大きい場合、デコーダに送信されるmerge_gpm_idx0の値は1減少する。デコーダでは、merge_gpm_idx0の受信値がmerge_gpm_idx1の受信値と等しいかそれより大きい場合、merge_gpm_idx0の値は1だけ増加する。加えて、既存のGPMシグナリング設計と同様に、MaxGPMMergeCand-1及びMaxGPMMergeCand-2の異なる最大値を、シグナリング順序に従って、それぞれ第1及び第2のインデックス値のバイナリ化に使用できる。一方、2つのインデックス値の間に相関関係がないため、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容される場合、同じ最大値MaxGPMMergeCand-1が両方のインデックス値の2値に使用される。
上記の方法では、シグナリングコストを削減するために、merge_gpm_idx0とmerge_gpm_idx1のバイナリ化に異なる最大値を適用できる。対応する最大値の選択は、(gpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idx_によって示されるように)MVRの復号された値に依存する。このような設計は、異なるGPMシンタックス要素間の望ましくないシンタックス解析依存関係を導入し、このことが解析全体に影響を与える可能性がある。こうした問題を解決するため、一実施形態では、merge_gpm_idx0及びmerge_gpm_idx1の値を解析するために、常に同じ最大値(例えば、MaxGPMMergeCand-1)が1つ提案される。このような方法を使用する場合、2つのGPM分割の2つの復号されたMVが同じにならないように、1つのビットストリーム適合性制約を使用してもよい。別の方法では、2つのGPM分割の復号されたMVが同じであることが許されるように、このような非同一性制約を除去することもできる。一方、そのような方法が適用される場合(すなわち、merge_gpm_idx0とmerge_gpm_idx1に同じ最大値を使用する場合)、merge_gpm_idx0/merge_gpm_idx1と他のGPM-MVRシンタックス要素の間には解析依存関係はない。したがって、これらのシンタックス要素をシグナリングする順序は、もはや重要ではない。一例として、merge_gpm_idx0/merge_gpm_idx1のシグナリングをgpm_mvr_partIdx0_enable、gpm_mvr_partIdx1_enable、gpm_mvr_partIdx0_direction_idx、gpm_mvr_partIdx1_direction_idx、gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxのシグナリングの前に移動することが提案される。
対称動きベクトル精緻化を伴う幾何学的分割モード
上述のGPM-MVR方法では2つの別々のMVR値が適用されてシグナリングされ、そのうちの1つのMVR値が、1つのGPM分割のみのベースMVを改善するために適用される。そのような方法は、GPM分割ごとに独立した動き精緻化を可能とすることで、予測精度の向上に関して効率的である。しかし、このようなフレキシブルな動き精緻化には、2つの異なるGMP-MVRシンタックス要素のセットがエンコーダからデコーダに送られる必要があることを考慮すると、シグナリングオーバーヘッドの増加という代償がある。本セクションでは、シグナリングオーバーヘッドを削減するために、対称動きベクトル精緻化を伴う1つの幾何学的分割モードを提案する。具体的には、この方法では、1つのGPM CUに対して1つの単一MVR値がシグナリングされ、2つのGPM分割の両方に、現ピクチャのピクチャオーダーカウント(POC)値と2つのGPM分割に関連付けられた参照ピクチャとの間の対称関係に従って使用される。表6は、提案された方法を適用したときのシンタックス要素を示している。
表6に示すように、2つのGPM分割のベースMVが選択された後(merge_gpm_idx0とmerge_gpm_idx1に基づいて)、GPM-MVRモードが現GPM CUに適用されるか否かを示すために、1つのフラグgpm_mvr_enable_flagがシグナリングされる。フラグが1に等しい場合、2つのGPM分割のベースMVを強化するために動き精緻化が適用されることを示す。そうでない場合(フラグが0に等しい場合)、動き精緻化が2つの分割のどちらにも適用されないことを示す。GPM-MVRモードが有効である場合、追加のシンタックス要素は、方向インデックスgpm_mvr_direction_idxとマグニチュードインデックスgpm_mvr_distance_idxによって、適用されたMVRの値を指定するために、さらにシグナリングされる。加えて、MMVDモードと同様に、MVR符号の意味は、現ピクチャのPOCとGPM分割の2つの参照ピクチャの間の関係に応じて変わり得る。具体的には、2つの参照ピクチャの両方のPOCが、現ピクチャのPOCよりも大きいか、又は小さい場合、シグナリングされた符号は、2つのベースMVの両方に追加されるMVRの符号である。そうでない場合(一方の参照ピクチャのPOCが現ピクチャよりも大きく、他方の参照ピクチャのPOCが現ピクチャよりも小さい場合)、シグナリングされた符号は第1のGPM分割のMVRに適用され、逆の符号が第2のGPM分割に適用される。表6では、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
別の実施形態では、2つのGPM分割のGPM-MVRモードの有効化/無効化を別々に制御するために、2つの異なるフラグにシグナリングすることが提案される。ただし、GPM-MVRモードが有効な場合、シンタックス要素gpm_mvr_direction_idx及びgpm_mvr_distance_idxに基づいてシグナリングされるのは1つのMVRのみである。そのようなシグナリング法の対応するシンタックステーブルを表7に示す。
表7のシグナリング法が適用される場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。ただし、2つのGPM分割に適用された、結果として得られるMVが冗長でないことを確認するために、フラグgpm_MVR_partIdx0_enable_flagが0に等しい(すなわち、GPM-MVRが第1のGPM分割に適用されない)とき、フラグgpm_MVR_partIdx1_enable_flagはシグナリングされず、1であると推測される(すなわち、GPM-MVRが第2のGPM分割に適用される)。
GPM-MVRのための許容されたMVRの適応
上述のGPM-MVR法では、MVR値の1つの固定グループは、1つのビデオシーケンス内のエンコーダとデコーダの両方でGPM CUに使用される。このような設計は、高解像度や激しい動きを持つビデオコンテンツには最適ではない。これらの場合、MVは非常に大きくなる傾向があるため、固定MVR値はそれらのブロックの実際の動きをキャプチャするのに最適でないことがある。GPM-MVRモードのコーディング性能をさらに向上させるために、本開示では、シーケンスレベル、ピクチャ/スライスピクチャ、コーディングブロックグループレベルなどの種々のコーディングレベルでGPM-MVRモードによって選択されることが許容されるMVR値の適応をサポートすることが提案される。例えば、複数のMVRセット及び対応するコードワードは、様々なビデオシーケンスの特定の動き特性に従ってオフラインで導出され得る。エンコーダは、最適MVRセットを選択し、選択したセットの対応するインデックスをデコーダに対しシグナリングしてもよい。
GPM-MVRレート歪み最適化のためのエンコーダスピードアップロジック
提案されたGPM-MVRスキームに対して、GPM分割ごとの最適MVRを決定するために、エンコーダは、適用されるMVR値を変えて、各GPM分割のレート歪みコストを複数回テストする必要がある場合がある。このことはGPMモードの符号化の複雑性を著しく高める可能性がある。符号化の複雑さの問題に対処するために、本セクションでは以下の高速符号化ロジックが提案される。
第一に、VVCとAVS3で適用されるクワッド/バイナリ/ターナリツリーブロック分割構造のために、1つの同じコーディングブロックが、1つの異なる分割パスを通して分割された、レート歪み最適化(RDO)処理の間にチェックされ得る。現VTM/HPMエンコーダの実装では、GPMとGPM-MVRモードは、異なるブロック分割の組み合わせによって1つの同じCUが得られるたびに、他のインター及びイントラコーディングモードとともに常にテストされる。一般的に、異なる分割パスに対しては、1つのCUの隣接するブロックのみが異なる可能性がある。ただし、1つのCUが選択する最適なコーディングモードに与える影響は比較的小さいはずである。このような考察に基づいて、適用されるGPMRDOの総数を削減するため、1つのCUのRDコストが初めてチェックされる際にGPMモードが選択されるか否かの決定を保存することが提案された。その後、再度RDO処理で同じCUがチェックされると(別の分割パスによって)、GPMのRDコスト(GPM-MVRを含む)は、最初にCUにGPMが選択された場合にのみチェックされる。1つのCUの初期RDチェックにGPMが選択されていない場合、同じCUが別の分割パスを介して達成されると、GPMのみ(GPM-MVRなし)がテストされる。別の方法では、1つのCUの最初のRDチェックにGPMが選択されていない場合、同じCUが別の分割パスを介して達成されると、GPMとGPM-MVRの両方はテストされない。
第二に、GPM-MVRモードのためのGPM分割数を削減するため、1つのCUのRDコストを初めてチェックしたとき、最小RDコストなしで最初のM個のGPM分割モードを維持することが提案される。その後、同じCUが再度RDO処理によってチェックされると(別の分割パスによって)、これらのM個のGPM分割モードのみがGPM-MVRモードでテストされる。
第三に、1の初期RDO処理に対して試験されるGPM分割の数を削減するために、2つのGPM分割に対して異なる片方向予測マージ候補を使用するとき、最初に絶対値の差の合計(Sum Absolute Difference:SAD)値を計算することが提案される。次に、1つの特定の分割モードの各GPM分割に対して、最小のSAD値を持つ最適片方向予測マージ候補を選択し、2つのGPM分割の最適片方向予測マージ候補のSAD値の合計に等しい分割モードの対応するSAD値を計算する。次に、次のRD処理では、前のステップの最適SAD値を持つ最初のN個の分割モードのみがGPM-MVRモードでテストされる。
明示的動きシグナリングを使用した幾何学的分割
本セクションでは、GPMモードを、GPMモードの2つの片方向MVがエンコーダからデコーダへ明示的にシグナリングされる正規インターモードの双方向予測に拡張するために、複数の方法が提案される。
第1の解決法(解決法1)では、GPMモードで2つの片方向MVにシグナリングするために、双方向予測の既存の動き信号を完全に再利用することが提案される。表8は、新しく追加されたシンタックス要素が斜体の太字である提案されたスキームの修正されたシンタックステーブルを示す。表8に示すように、この解決法では、信号L0及びL1動き情報の既存のすべてのシンタックス要素が、2つのGPM分割の片方向MVを示すために、それぞれ完全に再利用される。さらに、L0 MVは常に第1のGPM分割に関連付けられ、L1 MVは常に第2のGPM分割に関連付けられていると想定される。一方、表8において、インター予測シンタックス、すなわちinter_pred_idcは、GPMフラグ(すなわち、gpm_flag)の前にシグナリングされ、inter_pred_idcの値を使用してgpm_flagの存在を条件付けすることができる。具体的には、フラグgpm_flagは、inter_pred_idcがPRED_BI(すなわち双方向予測)と等しく、inter_affine_flagとsym_mvd_flagの両方が0に等しい(すなわち、CUはアフィンモードとSMVDモードのどちらによってもコード化されない)場合にのみシグナリングする必要がある。フラグgpm_flagがシグナリングされない場合、その値は常に0であると推測される(すなわち、GPMモードは無効である)。gpm_flagが1の場合、別のシンタックス要素gpm_partition_idxは、現CUの選択されたGPMモード(合計64個のGPM分割のうち)を示すように、さらにシグナリングされる。
別の方法では、フラグgpm_flagのシグナリングを他のインターシグナリングシンタックス要素の前に配置して、gpm_flagの値が、他のインターシンタックス要素が存在する必要があるか否かを決定するために使用できるようにすることが提案される。表9は、新しく追加されたシンタックス要素が斜体の太字である場合に、そのような方法が適用される場合の対応するシンタックステーブルを示している。示されるように、gpm_flagは、表9で最初にシグナリングされる。gpm_flagが1の場合、対応するinter_pred_idc、inter_affine_flag、sym_mvd_flagのシグナリングはバイパスできる。代わりに、3つのシンタックス要素の対応する値を、それぞれPRED_BI、0、及び0と推論できる。
表8と表9の両方において、SMVDモードをGPMモードと組み合わせることはできない。別の例では、現CUがGPMモードによってコード化される場合、SMVDモードを許容することが提案される。このような組み合わせが許容される場合、SMVDの同じ設計に従うことによって、2つのGPM分割のMVDは対称であると仮定され、よって第1のGPM分割のMVDのみがシグナリングされる必要があり、第2のGPM分割のMVDは常に第1のMVDに対して対称である。このような方法を適用すると、gpm_flagのsym_mvd_flagの対応するシグナリング条件を削除できる。
前述のように、第1の解決法では、第1のGPM分割にL0 MVが使用され、第2のGPM分割にL1 MVが使用されることを常に前提としている。このような設計は、この方法が2つのGPM分割のMVを1つの同じ予測リスト(L0又はL1)から取得することを禁止するという意味で最適ではない可能性がある。このような問題を解決するために、別のGPM-EMSスキームである解決法2が、表10に示すような信号設計で提案される。表10では、新しく追加されたシンタックス要素は斜体の太字である。表10に示すように、フラグgpm_flagは最初にシグナリングされる。フラグが1に等しい(GPMが有効である)場合、選択されたGPMモードを特定するために、シンタックスgpm_partition_idxがシグナリングされる。次に、1つの追加フラグgpm_pred_dir_flag0が、第1のGPM分割のMVがその元である対応する予測リストを示すためにシグナリングされる。フラグgpm_pred_dir_flag0が1に等しい場合、第1のGPM分割のMVがL1から来たことを示す。そうでない(フラグが0に等しい)場合、第1のGPM分割のMVがL0から来たことを示す。その後、既存のシンタックス要素ref_idx_l0、mvp_l0_flag、及びmvd_coding()を使用して、参照ピクチャインデックス、mvpインデックス、及び第1のGPM分割のMVDの値をシグナリングする。一方、第1の幾何学的分割と同様に、別のシンタックス要素gpm_pred_dir_flag1が、第2のGPM分割の対応する予測リストを選択するために導入され、第2のGPM分割のMVを導出するために使用される既存のシンタックス要素ref_idx_l1、mvp_l1_flag、及びmvd_coding()が続く。
また、最後に、GPMモードが2つの片方向予測分割(分割エッジ上のブレンディングサンプルを除く)からなる点を考慮すると、双方向オプティカルフロー、デコーダ側動きベクトル精緻化(DMVR)及びCU重み付き双方向予測(BCW)など、特に双方向予測用に設計されたVVC及びAVS3の既存のコーディングツールは、提案されたGPM-EMSスキームが1つのインターCUに対して有効であるとき、自動的にバイパスされてもよい。例えば、提案されたGPM-EMSの1つが1つのCUに対して有効である場合、BCWがGPMモードに適用できないことを考慮すると、シグナリングオーバーヘッドを削減するために、対応するBCW重みをCUに対してさらにシグナリングする必要はない。
GPM-MVRとGPM-EMSの組み合わせ
本セクションでは、幾何学的分割を伴う1つのCUに対してGPM-MVRとGPM-EMSを組み合わせることが提案される。具体的には、提案されたスキームでは、マージベースの動きシグナリング又は明示的シグナリングのうちの1つのみを2つのGPM分割の片方向予測MVの信号に適用できるGPM-MVR又はGPM-EMSのいずれかとは異なり、1)GPM-MVRベースの動きシグナリングを使用する1つの分割と、GPM-EMSベースの動きシグナリングを使用するもう1つの分割、又は2)GPM-MVRベースの動きシグナリングを使用する2つの分割、又は3)GPM-EMSベースの動きシグナリングを使用する2つの分割を許容する。表4のGPM-MVRシグナリングと表10のGPM-EMSを使用して、表11に、提案されたGPM-MVRとGPM-EMSを組み合わせた後の対応するシンタックステーブルを示す。表11では、新しく追加されたシンタックス要素は斜体の太字である。表11に示すように、分割#1及び#2にはそれぞれ、2つの追加のシンタックス要素gpm_merge_flag0及びgpm_merge_flag1が導入されており、これらは対応する分割がGPM-MVRベースのマージシグナリング又はGPM-EMSベースの明示的シグナリングを使用することを指定する。フラグが1の場合、GPM片方向予測動きがmerge_gpm_idxX、gpm_mvr_partIdxX_enabled_flag、gpm_mvr_partIdxX_direction_idx及びgpm_mvr_partIdxX_distance_idx(X=0,1)によってシグナリングされる分割に対してGPM-MVRベースのシグナリングが有効であることを意味する。そうでない場合、フラグが0の場合、分割の片方向予測動きはシンタックス要素gpm_pred_dir_flagX、ref_idx_lX、mvp_lX_flag、及びmvd_lX(X=0,1)を使用してGPM-EMS方式により明示的にシグナリングされることを意味する。
GPM-MVRとテンプレートマッチングの組み合わせ
このセクションでは、GPM-MVRとテンプレートマッチングを組み合わせるための様々な解決法が提供される。
方法1では、1つのCUがGPMモードでコード化される場合、2つのGPM分割に対して2つの別々のフラグをシグナリングすることが提案され、フラグの各々は、対応する分割の片方向動きがテンプレートマッチングによってさらに精緻化されるか否かを示す。フラグが有効になると、現CUの左側と上側の隣接する再構築されたサンプルを使用してテンプレートが生成される。次いで、「テンプレートの照合」セクションで紹介したのと同じ手順に従って、テンプレートとその参照サンプルの間の差分を最小化することによって、分割の片方向の動きが絞り込まれる。そうでない場合(フラグが無効になっている場合)、テンプレートマッチングは分割に適用されず、GPM-MVRがさらに適用されてもよい。表5のGPM-MVRシグナリング法を例に、表11に、GPM-MVRとテンプレートマッチングを組み合わせた場合の対応するシンタックステーブルを示す。
表11に示すように、提案されたスキームでは、2つの追加フラグgpm_tm_enable_flag0とgpm_tm_enable_flag1が、それぞれ2つのGPM分割に対して動きが精緻化されているか否かを示すために、最初にシグナリングされる。フラグが1の場合、TMが1つの分割の片方向MVを精緻化するために適用されていることを示す。フラグが0の場合、GPM-MVRがGPM分割に適用されているか否かを示す1つのフラグ(gpm_MVR_partIdx0_enable_flag又はgpm_MVR_partIdx1_enable_flag)がさらにシグナリングされる。1つのGPM分割のフラグが1に等しい場合、距離インデックス(シンタックス要素gpm_mvr_partIdx0_distance_idx及びgpm_mvr_partIdx1_distance_idxによって示される)と方向インデックス(シンタックス要素gpm_mvr_partIdx0_direction_idx及びgpm_mvr_partIdx1_distance_idxによって示される)がMVRの方向を特定するためにシグナリングされる。その後、既存のシンタックスmerge_gpm_idx0及びmerge_gpm_idx1が、2つのGPM分割の片方向MVを識別するためにシグナリングされる。一方、表5に適用されるシグナリング条件と同様に、2つのGPM分割の予測に使用される、結果として得られるMVが同一でないことを保証するために、以下の条件を適用できる。
第一に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の両方の値が1である(すなわち、2つのGPM分割の両方でTMが有効である)場合、merge_gpm_idx0とmerge_gpm_idx1の値は同じではあり得ない。
第二に、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
そうでない場合、すなわちgpm_tm_enable_flag0とgpm_tm_enable_flag1の両方が1に等しいとき:第一に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が0に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同じにはならない;第二に、gpm_MVR_partIdx0_enable_flagが1に等しく(すなわち、GPM-MVRが第1のGPM分割に対して有効である)、gpm_MVR_partIdx1_enable_flagが0に等しい(すなわちGPM-MVRが第2のGPM分割に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第三に、gpm_MVR_partIdx0_enable_flagが0に等しく(すなわち、GPM-MVRが第1のGPM分割に対して無効である)、gpm_MVR_partIdx1_enable_flagが1に等しい(すなわちGPM-MVRが第2のGPM分割に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第四に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が1に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されるか否かの判定は、2つのGPM分割に適用されるMVRの値(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxで示される)に依存する。2つのMVRの値が等しいとき、merge_gpm_idx0とmerge_gpm_idx1は同一ではない。そうでないとき(2つのMVRの値が等しくないとき)、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
上記の方法1では、TMとMVRはGPMに排他的に適用される。このようなスキームでは、TMモードの精緻化されたMVにMVRをさらに適用することは禁じられる。従って、GPMのためにより多くのMV候補を提供するために、TM精緻化MVにMVRオフセットを適用できる方法2を提案した。表12に、GPM-MVRがテンプレートマッチングと組み合わされた場合の対応するシンタックステーブルを示す。
表12に示すように、表11とは異なり、gpm_tm_enable_flag0及びgpm_tm_enable_flag1でのgpm_MVR_partIdx0_enable_flag及びgpm_MVR_partIdx1_enable_flagのシグナリング条件が削除される。従って、TMが1つのGPM分割の片方向動きを精緻化するために適用されるか否かにかかわらず、MV精緻化は常にGPM分割のMVに適用することが許される。上述と同様に、2つのGPM分割の結果得られるMVが同一でないことを確認するには、次の条件を適用する必要がある。
まず、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
そうでない場合、すなわちgpm_tm_enable_flag0とgpm_tm_enable_flag1の両方が1に等しいか、あるいは両フラグが0に等しいとき:第一に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が0に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同じにはならない;第二に、gpm_MVR_partIdx0_enable_flagが1に等しく(すなわち、GPM-MVRが第1のGPM分割に対して有効である)、gpm_MVR_partIdx1_enable_flagが0に等しい(すなわちGPM-MVRが第2のGPM分割に対して無効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第三に、gpm_MVR_partIdx0_enable_flagが0に等しく(すなわち、GPM-MVRが第1のGPM分割に対して無効である)、gpm_MVR_partIdx1_enable_flagが1に等しい(すなわちGPM-MVRが第2のGPM分割に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される;第四に、gpm_MVR_partIdx0_enable_flagとgpm_MVR_partIdx1_enable_flagの両方の値が1に等しい(すなわち、GPM-MVRが2つのGPM分割の両方に対して有効である)とき、merge_gpm_idx0とmerge_gpm_idx1の値が同一であることが許容されるか否かの判定は、2つのGPM分割に適用されるMVRの値(gpm_mvr_partIdx0_direction_idxとgpm_mvr_partIdx0_distance_idx、及びgpm_mvr_partIdx1_direction_idxとgpm_mvr_partIdx1_distance_idxで示される)に依存する。2つのMVRの値が等しいとき、merge_gpm_idx0とmerge_gpm_idx1は同一ではない。そうでないとき(2つのMVRの値が等しくないとき)、merge_gpm_idx0とmerge_gpm_idx1の値は同一であることが許容される。
上記の2つの方法では、TMが各GPM分割に適用されているか否かを示すために、2つの個別のフラグをシグナリングする必要がある。付加されたシグナリングは、特に低ビットレートにおいて、付加的なオーバーヘッドのために、全体的なコーディング効率を低下させ得る。シグナリングオーバーヘッドを削減するために、付加的なシグナリングを導入する代わりに、TMベースの片方向MVをGPMモードの片方向MV候補リストに挿入する方法3が提案される。TMベースの片方向MVは、「テンプレートマッチング」の項で説明したものと同じTM処理に従って、GPMの元の片方向MVを初期MVとして使用して生成される。このようなスキームにより、エンコーダからデコーダへ追加の制御フラグの信号をさらに送る必要はない。代わりに、デコーダは、ビットストリームから受信した対応するマージインデックス(すなわち、merge_gpm_idx0及びmerge_gpm_idx1)を介して、1つのMVがTMによって精緻化されたか否かを識別できる。通常のGPM MV候補(すなわち、非TM)及びTMベースのMV候補を配置するための様々な方法が存在し得る。1つの方法では、MV候補リストの先頭にTMベースのMV候補を置き、続いて非TMベースのMV候補を置くことが提案される。別の方法では、最初に非TMベースのMV候補を最初に置き、続いてTMベース候補を置くことが提案される。別の方法では、TMベースのMV候補と非TMベースのMV候補をインタリーブ方式で配置することが提案される。例えば、最初にN個の非TMベースの候補を置き、次にすべてのTMベースの候補を置き、最後に残りの非TMベースの候補を置くことができる。別の例では、最初にN個のTMベースの候補を置き、次にすべての非TMベースの候補を置き、最後に残りのTMベースの候補を置くことができる。別の例では、非TMベースの候補とTMベースの候補とを1つずつ順に、すなわち、1つの非TMベースの候補、1つのTMベースの候補、などと配置することが提案される。
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子部品を含む、1以上の回路を含む装置を用いて実施されてもよい。装置は、上記の方法を実行するために、他のハードウェア又はソフトウェア成分と組み合わせて回路を使用できる。上記開示された各モジュール、サブモジュール、ユニット、又はサブユニットは、少なくとも部分的に1以上の回路を使用して実装されてもよい。
図10は、ユーザインタフェース1060と結合された演算環境(又は演算装置)1010を示す。演算環境1010は、データ処理サーバの一部とすることができる。一部の実施形態において、演算装置1010は、本開示の各種例に従って、上述のような様々な方法又は処理(符号化/復号方法又は処理など)のいずれかを実行できる。演算環境1010は、プロセッサ1020、メモリ1040、及びI/Oインタフェース1050を含んでもよい。
プロセッサ1020は、典型的には、表示、データ収集、データ通信、及び画像処理に関連する操作などの、演算環境1010の全体的な操作を制御する。プロセッサ1020は、上述した方法のすべて又は一部のステップを実行するための命令を実行するための1以上のプロセッサを含んでもよい。さらに、プロセッサ1020は、プロセッサ1020と他の構成要素との間の相互作用を容易にする1以上のモジュールを含んでもよい。プロセッサは、中央演算処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどとすることができる。
メモリ1040は、演算環境1010の動作をサポートするため、各種タイプのデータを格納するよう構成される。メモリ1040は、所定のソフトウェア1042を含んでもよい。このようなデータの例には、演算環境1010で動作する任意のアプリケーション又は方法のための命令、ビデオデータセット、画像データなどが含まれる。メモリ1130は、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、プログラマブル読取り専用メモリ(PROM)、読取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク、光ディスクなどの任意のタイプの揮発性又は不揮発性メモリデバイス、又はそれらの組み合わせを使用することによって実施することができる。
I/Oインタフェース1050は、プロセッサ1020と、キーボード、クリックホイール、ボタンなどの周辺インタフェースモジュールとの間のインタフェースを提供する。ボタンとしては、限定されるものではないが、ホームボタン、スキャン開始ボタン、及びスキャン停止ボタンが含まれ得る。I/Oインタフェース1050は、エンコーダ及びデコーダと結合されることができる。
一部の実施形態では、上述の方法を実行するために、メモリ1040内に含まれ、演算環境1010内のプロセッサ1020によって実行可能な複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データストレージデバイスなどであってもよい。
非一時的コンピュータ可読記憶媒体は、1以上のプロセッサを有する演算装置によって実行するための複数のプログラムを格納しており、複数のプログラムは、1以上のプロセッサによって実行されると、上記動作予測のための方法を演算装置に実行させる。
一部の実施形態では、演算環境1010は、上記の方法を実行するために、1以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセシングユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子部品を用いて実施されてもよい。
図8は、本開示の一例によるGPMでビデオブロックを復号する方法を示すフローチャートである。
ステップ801において、プロセッサ1020は、ビデオブロックを第1の幾何学的分割及び第2の幾何学的分割に分割できる。
ステップ802において、プロセッサ1020は、第1の幾何学的分割のための第1のTMイネーブルフラグを受信でき、第2の幾何学的分割のための第2のTMイネーブルフラグを取得できる。
一部の例では、第1のTMイネーブルフラグは、第1の幾何学的分割の片方向動きがTMによって精緻化されるか否かを示し、第2のTMイネーブルフラグは、第2の幾何学的分割の片方向動きがTMによって精緻化されるか否かを示す。例えば、第1のTMイネーブルフラグは、表11又は表12に示すようにフラグgpm_tm_enable_flag0となり、第2のTMイネーブルフラグは、表11又は表12に示すようにフラグgpm_tm_enable_flag1となる。
ステップ803において、プロセッサ1020は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信してもよい。
一部の例では、第1のマージGPMインデックスは、第1の幾何学的分割の片方向MVを識別し、第2のマージGPMインデックスは、第2の幾何学的分割の片方向MVを識別する。
一部の例では、第1のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx0であり、第2のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx1であってもよい。
ステップ804において、プロセッサ1020は、GPMの片方向MV候補リストを構築できる。
ステップ805において、プロセッサ1020は、第1の幾何学的分割に対する片方向MVと、第2の幾何学的分割に対する片方向MVとを生成してもよい。
一部の例では、表11に示されるように、プロセッサ1020は、第1のTMイネーブルフラグが1に等しいとの判定に応じて、第1の幾何学的分割の片方向MVを精緻化するためにTMが適用され、第1の幾何学的分割に対してMVRが適用されないと判定してもよい。
一部の例では、表11に示されるように、プロセッサ1020は、第1のTMイネーブルフラグが0に等しいとの判定に応じて、第1の幾何学的分割のための第1のGPM(GPM-MVR)イネーブルフラグを有する第1のGPMを受信することができ、第1のGPM-MVRイネーブルフラグは、GPM-MVRが第1の幾何学的分割に適用されるか否かを示すことができる。第1のGPM-MVRイネーブルフラグは、表11に示すように、gpm_tm_enable_flag0とすることができる。
一部の例では、表11に示されるように、プロセッサ1020は、第1のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1の幾何学的分割に対する第1のGPM-MVR距離インデックス及び第1のGPM-MVR方向インデックスを受け取ることができる。第1のGPM-MVR距離インデックスと第1のGPM-MVR方向インデックスは、表11に示すように、それぞれ第1の幾何学的分割のMVRの方向を指定できる。
一部の例では、表11に示されるように、プロセッサ1020は、第2のTMイネーブルフラグが1に等しいとの判定に応じて、第2の幾何学的分割の片方向MVを精緻化するためにTMが適用され、第2の幾何学的分割に対してMVRが適用されないことを決定してもよい。
一部の例では、表11に示されるように、プロセッサ1020は、第2のTMイネーブルフラグが0に等しいとの判定に応じて、第2の幾何学的分割のための動きベクトル精緻化(GPM-MVR)イネーブルフラグを有する第2のGPMを受信できる。第2のGPM-MVRイネーブルフラグは、GPM-MVRが第2の幾何学的分割に適用されるか否かを示すことができる。
一部の例では、表11に示されるように、プロセッサ1020は、第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1の幾何学的分割に対する第2のGPM-MVR距離インデックス及び第1のGPM-MVR方向インデックスを受け取ることができる。第2のGPM-MVR距離インデックス及び第2のGPM-MVR方向インデックスは、それぞれ第2の幾何学的分割についてMVRの方向を指定してもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグと第2のTMイネーブルフラグに基づいて、第1のマージGPMインデックスと第2のマージGPMインデックスをさらに制約してもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグと第2のTMイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグ及び第2のTMイネーブルフラグの一方が1に等しく、他方が0に等しいとの判定に応じて、第1のマージGPMインデックス及び第2のマージGPMインデックスが同一であることが許容されると判定してもよい。一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
例えば、一部の例では、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は同一であってもよい。一部の例では、gpm_tm_enable_flag0とgpm_tm_enable_flag1の一方が1で他方が0の場合、merge_gpm_idx0とmerge_gpm_idx1の値は異なっていてもよい。
一部の例では、プロセッサ1020は、第1のTMイネーブルフラグ及び第2のTMイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1のGPM-MVRイネーブルフラグ及び第2のGPM-MVRイネーブルフラグに基づいて、第1のマージGPMインデックス及び第2のマージGPMインデックスをさらに制約してもよい。
例えば、プロセッサ1020は、第1のGPM-MVRイネーブルフラグと第2のGPM-MVRイネーブルフラグがそれぞれ0に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
例えば、プロセッサ1020は、第1のGPM-MVRイネーブルフラグが1に等しく、第2のGPM-MVRイネーブルフラグが0に等しいとの判定に応じて、又は第1のGPM-MVRイネーブルフラグが0に等しく、第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
例えば、プロセッサ1020は、第1のGPM-MVRイネーブルフラグ及び第2のGPM-MVRイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1の幾何学的分割の第1のMVR及び第2の幾何学的分割の第2のMVRに基づいて、第1のマージGPMインデックス及び第2のマージGPMインデックスを決定してもよい。
一部の例では、プロセッサ1020は、第1のMVRが第2のMVRに等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
一部の例では、プロセッサ1020は、第1のMVRが第2のMVRに等しくないとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
一部の例では、プロセッサ1020は、表12に示されるように、第1のTMイネーブルフラグと第2のTMイネーブルフラグに基づいて、第1のマージGPMインデックスと第2のマージGPMインデックスをさらに制約してもよい。
例えば、プロセッサ1020は、第1のTMイネーブルフラグ及び第2のTMイネーブルフラグの一方が1に等しく、他方が0に等しいとの判定に応じて、第1のマージGPMインデックス及び第2のマージGPMインデックスが同一であることが許容されると判定してもよい。
例えば、プロセッサ1020は、第1のTMイネーブルフラグと第2のTMイネーブルフラグの両方が0に等しいか、第1のTMイネーブルフラグと第2のTMイネーブルフラグの両方が1に等しいとの判定に応じて、第1の幾何学的分割の第1のGPM動きベクトル精緻化(GPM-MVR)イネーブルフラグ及び第2の幾何学的分割の第2のGPM-MVRイネーブルフラグに基づいて、第1のマージGPMインデックス及び第2のマージGPMインデックスを制約してもよい。第1のGPM-MVRイネーブルフラグは、GPM-MVRが第1の幾何学的分割に適用されるか否かを示すことができ、第2のGPM-MVRイネーブルフラグは、GPM-MVRが第2の幾何学的分割に適用されるか否かを示すことができる。
一部の例では、プロセッサ1020は、第1のGPM-MVRイネーブルフラグと第2のGPM-MVRイネーブルフラグが0であるとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。
一部の例では、プロセッサ1020は、第1のGPM-MVRイネーブルフラグが1に等しく、第2のGPM-MVRイネーブルフラグが0に等しいとの判定に応じて、又は第1のGPM-MVRイネーブルフラグが0に等しく、第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されている場合、第1のマージGPMインデックスと第2のマージGPMインデックスは同じであっても、異なっていてもよい。
一部の例では、プロセッサ1020は、第1のGPM-MVRイネーブルフラグと第2のGPM-MVRイネーブルフラグがそれぞれ1に等しいとの判定に応じて、第1のマージGPMインデックス及び第2のマージGPMインデックスを、第1の幾何学的分割の第1の動きベクトル精緻化(MVR)及び前記第2の幾何学的分割の第2のMVRに基づいて決定してもよい。
一部の例では、プロセッサ1020は、第1のMVRが第2のMVRに等しいとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが異なると判定してもよい。さらに、プロセッサ1020は、第1のMVRが第2のMVRに等しくないとの判定に応じて、第1のマージGPMインデックスと第2のマージGPMインデックスが同一であることが許容されると判定してもよい。
図9は、本開示の一例によるGPMでビデオブロックを復号する方法を示すフローチャートである。
ステップ901において、プロセッサ1020は、ビデオブロックを第1の幾何学的分割及び第2の幾何学的分割に分割できる。
ステップ902において、プロセッサ1020は、GPMの片方向MV候補リストを構築できる。
ステップ903において、プロセッサ1020は、第1の幾何学的分割の第1のマージGPMインデックスと、第2の幾何学的分割の第2のマージGPMインデックスとを受信してもよい。
一部の例では、第1のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx0であり、第2のマージGPMインデックスは、表11又は12に示されているように、シンタックス要素merge_gpm_idx1であってもよい。
ステップ904において、プロセッサ1020は、第1のマージGPMインデックスと第2のマージGPMインデックスに基づいて片方向MV候補リストを更新してもよい。
一部の例では、第1のマージGPMインデックスと第2のマージGPMインデックスは、単一の片方向MVが洗練されているか否かを示す。
一部の例では、プロセッサ1020は、初期MVとしてGPMの元の片方向MVに基づいて、TMベースの片方向MVを生成してもよく、TMベースの片方向MVを片方向MV候補リストに追加することによって、更新された片方向MV候補リストを取得してもよい。第1のマージGPMインデックスと第2のマージGPMインデックスは、TMベースの片方向MVを示し得る。
一部の例では、プロセッサ1020は、以下の操作のうちの1つによって、TMベースの片方向MVを片方向MV候補リストに追加してもよい:非TMベースの片方向MVがTMベースの片方向MVに続くように、片方向MV候補リストの先頭にTMベースの片方向MVを追加すること;TMベースの片方向MVが、片方向MV候補リスト内の非TMベースの片方向MVに続くように、片方向MV候補リストにTMベースの片方向MVを追加すること;片方向MV候補リストにおいてTMベースの片方向MVと非TMベースの片方向MVがインタリーブ方式で配置されるように、片方向MV候補リストにTMベースの片方向MVを追加すること。
一部の例では、GPMでビデオブロックを復号するための装置が提供される。装置は、プロセッサ1020と、プロセッサによって実行可能な命令を格納するよう構成されたメモリ1040とを含み、プロセッサは、命令の実行時に、図8又は図9に示す方法を実行するよう構成される。
他の一部の例では、命令が格納された非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ1020によって実行されると、命令は図8又は図9に示されるような方法をプロセッサに実行させる。
本開示の他の例は、ここに開示される本開示の明細書及び実施の検討から当業者には明らかとなろう。本出願は、その一般原理に従う開示のあらゆる変形、使用、又は適合をカバーすることを意図しており、当技術分野における既知の又は慣習的実施に含まれる本開示からの逸脱を含む。明細書及び例は、あくまで例示的であるとみなされることが意図されている。
本開示は、上記で説明され、添付の図面に示された例のみに限定されるものではなく、その範囲を逸脱することなく、種々の修正及び変更を行うことができることが理解されるであろう。

Claims (19)

  1. ビデオブロックを第1の幾何学的分割及び第2の幾何学的分割に分割することと、
    第1の分割の片方向動きがテンプレートマッチングすなわちTMによって精緻化されているか否かを示す、前記第1の幾何学的分割に対する第1のTMイネーブルフラグ、及び第2の分割の片方向動きが前記TMによって精緻化されているか否かを示す、前記第2の幾何学的分割に対する第2のTMイネーブルフラグを受信することと、
    前記第1の幾何学的分割の第1のマージGPMインデックスと、前記第2の幾何学的分割の第2のマージGPMインデックスとを受信することと、
    幾何学的分割モードすなわちGPMの片方向動きビクター(MV)候補リストを構築することと、
    前記第1の幾何学的分割に対する片方向MVと、前記第2の幾何学的分割に対する片方向MVとを生成することと、
    を含む、幾何学的分割モード(GPM)でビデオブロックを復号する方法。
  2. 前記第1のTMイネーブルフラグが1に等しいとの判定に応じて、前記第1の幾何学的分割の片方向MVを精緻化するために前記TMが適用され、前記第1の幾何学的分割に対して動きベクトル精緻化、すなわちMVRが適用されないと判定することと、
    前記第1のTMイネーブルフラグが0に等しいとの判定に応じて、前記第1の幾何学的分割に対するMVR、すなわちGPM-MVRが前記第1の幾何学的分割に適用されているか否かを示す、第1のGPM-MVRイネーブルフラグを有する第1のGPMを受信することと、
    をさらに含む、請求項1に記載の方法。
  3. 前記第1のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、前記第1の幾何学的分割について第1のGPM-MVR距離インデックス及び第1のGPM-MVR方向インデックスを受信することであって、前記第1のGPM-MVR距離インデックス及び前記第1のGPM-MVR方向インデックスは、前記第1の幾何学的分割について前記MVRの方向を指定することをさらに含む、請求項2に記載の方法。
  4. 前記第2のTMイネーブルフラグが1に等しいとの判定に応じて、前記第2の幾何学的分割の片方向MVを精緻化するために前記TMが適用され、前記第2の幾何学的分割に対して前記動きベクトル精緻化(MVR)が適用されないと判定することと、
    前記第2のTMイネーブルフラグが0に等しいとの判定に応じて、前記第2の幾何学的分割について動きベクトル精緻化を伴う第2のGPM(GPM-MVR)イネーブルフラグが、前記GPM-MVRが第2の幾何学的分割に適用されているか否かを示す、第2のGPM-MVRイネーブルフラグを受信することと、
    をさらに含む、請求項3に記載の方法。
  5. 前記第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、前記第1の幾何学的分割について第2のGPM-MVR距離インデックス及び第2のGPM-MVR方向インデックスを受信することであって、前記第2のGPM-MVR距離インデックス及び前記第2のGPM-MVR方向インデックスは、前記第2の幾何学的分割について前記MVRの方向を指定する、請求項4に記載の方法。
  6. 前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグに基づいて前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することをさらに含む、請求項5に記載の方法。
  7. 前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグに基づいて前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することは、
    前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグがそれぞれ1に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが異なると判定することと、
    前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグの一方が1に等しく、他方が0に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    を含む、請求項6に記載の方法。
  8. 前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグがそれぞれ1に等しい判定したことに応じて、前記第1のGPM-MVRイネーブルフラグと前記第2のGPM-MVRイネーブルフラグに基づいて前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することをさらに含む、請求項6に記載の方法。
  9. 前記第1のGPM-MVRイネーブルフラグと前記第2のGPM-MVRイネーブルフラグに基づいて前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することは、
    前記第1のGPM-MVRイネーブルフラグと前記第2のGPM-MVRイネーブルフラグがそれぞれ0に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが異なると判定することと、
    前記第1のGPM-MVRイネーブルフラグが1に等しく、前記第2のGPM-MVRイネーブルフラグが0に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    前記第1のGPM-MVRイネーブルフラグが0に等しく、前記第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    前記第1のGPM-MVRイネーブルフラグと前記第2のGPM-MVRイネーブルフラグがそれぞれ1に等しいとの判定に応じて、前記第1のマージGPMインデックス及び前記第2のマージGPMインデックスを、前記第1の幾何学的分割の第1の動きベクトル精緻化、すなわち第1のMVR、及び前記第2の幾何学的分割の第2のMVRに基づいて決定することと、
    を含む、請求項8に記載の方法。
  10. 前記第1のMVRが前記第2のMVRに等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが異なると判定することと、
    前記第1のMVRが前記第2のMVRと等しくないとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    をさらに含む、請求項9に記載の方法。
  11. 前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグに基づいて前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することをさらに含む、請求項1に記載の方法。
  12. 前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグに基づいて前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することは、
    前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグの一方が1に等しく、他方が0に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    前記第1のTMイネーブルフラグと前記第2のTMイネーブルフラグの両方が0又は両方とも1に等しいとの判定に応じて、
    前記第1の幾何学的分割にGPM-MVRが適用されているか否かを示す、前記第1の幾何学的分割の第1のGPM動きベクトル精緻化イネーブルフラグすなわち第1のGPM-MVRイネーブルフラグ、及び前記第2の幾何学的分割にGPM-MVRが適用されているか否かを示す、前記第2の幾何学的分割の第2のGPM動きベクトル精緻化イネーブルフラグすなわち第2のGPM-MVRイネーブルフラグに基づいて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスを制約することと、
    を含む、請求項11に記載の方法。
  13. 前記第1の幾何学的分割の前記第1のGPM-MVRイネーブルフラグ及び前記第2の幾何学的分割の前記第2のGPM-MVRイネーブルフラグに基づいて、前記第1のマージGPMインデックス及び前記第2のマージGPMインデックスを制約することは、
    前記第1のGPM-MVRイネーブルフラグと前記第2のGPM-MVRイネーブルフラグが0であるとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが異なると判定することと、
    前記第1のGPM-MVRイネーブルフラグが1に等しく、前記第2のGPM-MVRイネーブルフラグが0に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    前記第1のGPM-MVRイネーブルフラグが0に等しく、前記第2のGPM-MVRイネーブルフラグが1に等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    前記第1のマージGPMインデックスと前記第2のマージGPMインデックスがそれぞれ1に等しいとの判定に応じて、前記第1のマージGPMインデックス及び前記第2のマージGPMインデックスを、前記第1の幾何学的分割の第1の動きベクトル精緻化すなわち第1のMVR及び前記第2の幾何学的分割の第2の動きベクトル精緻化すなわち第2のMVRに基づいて決定することと、
    を含む、請求項12に記載の方法。
  14. 前記第1のMVRが前記第2のMVRに等しいとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが異なると判定することと、
    前記第1のMVRが前記第2のMVRと等しくないとの判定に応じて、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスが同一であることが許容されると判定することと、
    をさらに含む、請求項13に記載の方法。
  15. ビデオブロックを第1の幾何学的分割及び第2の幾何学的分割に分割することと、
    幾何学的分割モードすなわちGPMの片方向動きビクター候補リストすなわち片方向MV候補リストを構築することと、
    前記第1の幾何学的分割の第1のマージGPMインデックスと、前記第2の幾何学的分割の第2のマージGPMインデックスとを受信することと、
    単一の片方向MVがテンプレートマッチング(TM)によって精緻化されているか否かを示す、前記第1のマージGPMインデックス及び前記第2のマージGPMインデックスに基づいて、前記片方向MV候補リストを更新することと、
    を含む、幾何学的分割モード(GPM)でビデオブロックを復号する方法。
  16. 初期MVとしてGPMの元の片方向MVに基づいて、TMベースの片方向MVを生成することであって、前記第1のマージGPMインデックスと前記第2のマージGPMインデックスは、前記TMベースの片方向MVを示すことと、
    前記TMベースの片方向MVを前記片方向MV候補リストに追加することにより、更新された片方向MV候補リストを取得することと、
    をさらに含む、請求項15に記載の方法。
  17. 前記片方向MV候補リストに前記TMベースの片方向MVを追加することは、
    非TMベースの片方向MVが前記TMベースの片方向MVに続くように、前記片方向MV候補リストの先頭に前記TMベースの片方向MVを追加することと、
    前記TMベースの片方向MVが、前記片方向MV候補リスト内の非TMベースの片方向MVに続くように、前記片方向MV候補リストに前記TMベースの片方向MVを追加することと、
    前記片方向MV候補リストにおいて前記TMベースの片方向MVと前記非TMベースの片方向MVがインタリーブ方式で配置されるように、前記片方向MV候補リストに前記TMベースの片方向MVを追加することと、
    の操作のうちの1つを含む、請求項16に記載の方法。
  18. 1以上のプロセッサと、
    前記1以上のプロセッサによって実行可能な命令を格納するよう構成される非一時的コンピュータ可読記憶媒体であって、前記1以上のプロセッサは、命令の実行時に、請求項1乃至17のいずれか一項に記載の方法を実行するよう構成される、非一時的コンピュータ可読記憶媒体と、
    を含む、ビデオコーディングのための装置。
  19. 1以上のコンピュータプロセッサによって実行されると、前記1以上のコンピュータプロセッサに、請求項1乃至17のいずれか一項に記載の方法を実行させる、コンピュータで実行可能な命令を格納する、非一時的コンピュータ可読記憶媒体。
JP2023571522A 2021-05-17 2022-05-17 動きベクトル精緻化を伴う幾何学的分割モード Pending JP2024519848A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163189661P 2021-05-17 2021-05-17
US63/189,661 2021-05-17
PCT/US2022/029704 WO2022245876A1 (en) 2021-05-17 2022-05-17 Geometric partition mode with motion vector refinement

Publications (1)

Publication Number Publication Date
JP2024519848A true JP2024519848A (ja) 2024-05-21

Family

ID=84141907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023571522A Pending JP2024519848A (ja) 2021-05-17 2022-05-17 動きベクトル精緻化を伴う幾何学的分割モード

Country Status (7)

Country Link
US (1) US20240098250A1 (ja)
EP (1) EP4352960A1 (ja)
JP (1) JP2024519848A (ja)
KR (1) KR20240008934A (ja)
CN (1) CN117321990A (ja)
MX (1) MX2023013556A (ja)
WO (1) WO2022245876A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019072368A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. LIMITED MEMORY ACCESS WINDOW FOR MOTION VECTOR REFINEMENT
CN110809155B (zh) * 2018-08-04 2023-01-31 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读介质
WO2020159989A1 (en) * 2019-01-28 2020-08-06 Op Solutions, Llc Inter prediction in geometric partitioning with an adaptive number of regions

Also Published As

Publication number Publication date
EP4352960A1 (en) 2024-04-17
KR20240008934A (ko) 2024-01-19
WO2022245876A1 (en) 2022-11-24
CN117321990A (zh) 2023-12-29
MX2023013556A (es) 2023-11-29
US20240098250A1 (en) 2024-03-21

Similar Documents

Publication Publication Date Title
TWI792152B (zh) 視訊編解碼系統中的視訊處理方法和裝置
WO2020169082A1 (en) Intra block copy merge list simplification
KR102616711B1 (ko) 인터 예측 방법 및 장치
JP2022508177A (ja) イントラブロックコピーモードとインター予測ツールとの間の相互作用
AU2023204311A1 (en) Motion vector prediction
US20230115074A1 (en) Geometric partition mode with motion vector refinement
US20240048700A1 (en) Geometric partition mode with explicit motion signaling
JP2024519848A (ja) 動きベクトル精緻化を伴う幾何学的分割モード
US20240073440A1 (en) Methods and devices for geometric partition mode with motion vector refinement
US20240155106A1 (en) Geometric partition mode with motion vector refinement
WO2024017224A1 (en) Affine candidate refinement
US20240129509A1 (en) Methods and devices for geometric partition mode with motion vector refinement
WO2024027784A1 (en) Method and apparatus of subblock-based temporal motion vector prediction with reordering and refinement in video coding
KR20240021295A (ko) 모션 벡터 세분화를 갖는 기하학적 파티션 모드를 위한 방법 및 장치
WO2020057648A1 (zh) 一种帧间预测方法和装置
CN118592024A (zh) 利用预定义模式顺序进行几何分区模式拆分模式重排序的方法和设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231117