(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-19
(54)【発明の名称】HMVP候補記憶装置のための表の保守
(51)【国際特許分類】
H04N 19/52 20140101AFI20230511BHJP
【FI】
H04N19/52
(21)【出願番号】P 2021522382
(86)(22)【出願日】2019-11-04
(86)【国際出願番号】 CN2019115453
(87)【国際公開番号】W WO2020088690
(87)【国際公開日】2020-05-07
【審査請求日】2021-04-23
(31)【優先権主張番号】PCT/CN2018/113716
(32)【優先日】2018-11-02
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/086174
(32)【優先日】2019-05-09
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ワン ユエ
【審査官】清山 昂平
(56)【参考文献】
【文献】Ru-Ling Liao and Chong Soon Lim,CE10.3.1.b: Triangular prediction unit mode,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0124-v2,2018年10月05日
【文献】Li Zhang, et al.,CE4-related: History-based Motion Vector Prediction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0104-v5,2018年07月18日
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
(57)【特許請求の範囲】
【請求項1】
映像データを処理する方法であって、
視覚メディアデータの第1のブロックと前記視覚メディアデータの対応するビットストリームとの間での変換中に、ジオメトリ分割モードでコーディングされた前記第1のブロックを判定することと、
前回コーディングされたブロックに基づいて動き情報に関連付けられた1つ又は複数の動き候補を記憶する表に基づいて、前記第1のブロックの動き情報を判定することと、前記表は、履歴に基づく動きベクトル予測(HMVP)表を含み、
前記第1のブロックの前記判定された動き情報を使用して前記第1のブロックの前記変換を行うことと、前記表は、前記第1のブロックの前記変換後に更新されない、を含む、方法。
【請求項2】
前記第1のブロックで使用される前記動き情報が前記表に記憶されることを回避する、請求項1に記載の方法。
【請求項3】
前記視覚メディアデータの第2のブロックと前記視覚メディアデータの対応するビットストリームとの間での変換中、前記第1のブロックに使用されたのと同じ表に基づいて、前記第2のブロックの動き情報を判定することをさらに含み、
前記第2のブロックは前記ジオメトリ分割モードを使用しない、請求項1または2に記載の方法。
【請求項4】
前記第1のブロックの動き情報の判定は、動き候補リストを構築することを含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記動き候補リストは、マージ候補リストに対応する、請求項4に記載の方法。
【請求項6】
前記ビットストリームに含まれるGPMマージインデックスを判定することをさらに含み、前記GPMマージインデックスは前記第1のブロックの前記動き情報に関連する、請求項1~3のいずれか1項に記載の方法。
【請求項7】
前記第1のブロックの前記動き情報は、空間的ブロックおよび/または時間的ブロックから導出された動き候補にさらに基づいて判定される、請求項1~3のいずれか1項に記載の方法。
【請求項8】
前記表に基づいて、前記第1のブロックの動き情報を前記判定することが、
前記第1のブロックの動き候補リスト構築処理において、表から導出された少なくとも1つの動き候補を追加することを含む、請求項4に記載の方法。
【請求項9】
前記第1のブロックの前記動き候補リスト構築処理において、前記表から導出された前記動き候補を追加することは、
空間的ブロック又は時間的ブロックの一方又は両方から導出された動き候補の後に、前記表から導出された少なくとも1つの動き候補を前記動き候補リストに加えることを含む、請求項8に記載の方法。
【請求項10】
前記表から導出された少なくとも1つの動き候補を、前記表における少なくとも1つの動き候補に対応するものに等しく設定する、請求項8に記載の方法。
【請求項11】
前記動き候補リストに追加される前記表における動き候補のチェック順序は、前記表における動き候補のインデックスに基づく、請求項8に記載の方法。
【請求項12】
前記ジオメトリ分割モードは、複数の分割スキームを含み、少なくとも1つの分割スキームは、前記第1のブロックを2つの分割に分割し、そのうちの少なくとも1つは非正方形かつ非長方形である、請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記ジオメトリ分割モードは、三角形分割モードを含む、請求項1~11のいずれか1項に記載の方法。
【請求項14】
前記変換は、対応するビットストリームから前記第1のブロックを復号化することを含む、請求項1~13のいずれか1項に記載の方法。
【請求項15】
前記変換は、前記第1のブロックを前記対応するビットストリームに符号化することを含む、請求項1~13のいずれか1項に記載の方法。
【請求項16】
処理装置と、命令が記憶された非一時的メモリとを備える、映像データを処理する装置であって、前記命令が前記処理装置によって実行されると、前記処理装置に、
視覚メディアデータの第1のブロックと前記視覚メディアデータの対応するビットストリームとの間での変換中に、ジオメトリ分割モードでコーディングされた前記第1のブロックを判定することと、
前回コーディングされたブロックに基づいて動き情報に関連付けられた1つ又は複数の候補を記憶する表に基づいて、前記第1のブロックの動き情報を判定することと、前記表は、履歴に基づく動きベクトル予測(HMVP)表を含み、
前記第1のブロックの前記判定された動き情報を使用して前記第1のブロックの前記変換を行うことと、前記表は、前記第1のブロックの前記変換後に更新されない、を行わせる、装置。
【請求項17】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、処理装置に、
視覚メディアデータの第1のブロックと前記視覚メディアデータの対応するビットストリームとの間での変換中に、ジオメトリ分割モードでコーディングされた前記第1のブロックを判定することと、
前回コーディングされたブロックに基づいて動き情報に関連付けられた1つ又は複数の候補を記憶する表に基づいて、前記第1のブロックの動き情報を判定することと、前記表は、履歴に基づく動きベクトル予測(HMVP)表を含み、
前記第1のブロックの前記判定された動き情報を使用して前記第1のブロックの前記変換を行うことと、前記表は、前記第1のブロックの前記変換後に更新されない、を行わせる、非一時的なコンピュータ可読記録媒体。
【請求項18】
映像のビットストリームを記憶する方法であって、前記方法は、
視覚メディアデータの第1のブロックがジオメトリ分割モードでコーディングされていることを判定することと、
前回コーディングされたブロックに基づいて動き情報に関連付けられた1つ又は複数の候補を記憶する表に基づいて、前記第1のブロックの動き情報を判定することと、前記表は、履歴に基づく動きベクトル予測(HMVP)表を含み、
前記第1のブロックの前記判定された動き情報を使用して前記ビットストリームを生成することと、
を含み、
前記表は、前記第1のブロック
の動き情報に
基づいて更新されな
い、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2018年11月2日出願の国際特許出願第PCT/CN2018/113716号、2019年5月9日出願の国際特許出願第PCT/CN2019/086174号の優先権および利益を主張する、2019年11月4日出願の国際特許出願第PCT/CN2019/115453号に基づく。前述の出願の全開示は、本明細書の開示の一部として参照により援用される。
【0002】
本明細書は、映像および画像の符号化および復号化技術に関する。
【背景技術】
【0003】
デジタル映像は、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅の使用を占める。映像の受信および表示が可能な接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
開示された技術は、履歴に基づく動きベクトル予測(HMVP)を有するジオメトリ分割が使用される映像または画像デコーダまたはエンコーダの実施形態によって使用してもよい。
【0005】
1つの例示的な態様において、映像を処理する方法が開示される。この方法は、処理装置によって、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定を行うことと、処理装置によって、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定に基づいて、第1の映像ブロックのための第1のサブ部分および第2のサブ部分を判定することであって、第1のサブ部分または第2のサブ部分のうちの一方または両方が、第1の映像ブロックの非長方形且つ非正方形部分である、判定することと、第1のサブ部分と第2のサブ部分を使用して第1の映像ブロックのさらなる処理を行うことと、を含む。
【0006】
別の例示的な態様において、映像処理方法は、処理装置によって、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定を行うことと、処理装置によって、第1の映像ブロックのための第1のサブ部分および第2のサブ部分を判定することであって、第1のサブ部分または第2のサブ部分のうちの一方または両方が、第1の映像ブロックの非長方形且つ非正方形部分である、判定することと、第1のサブ部分および第2のサブ部分を使用して、第1の映像ブロックの処理をさらに行うことであって、少なくとも1つのサブ部分をマージまたは非マージインター符号化し、現在の画像を参照画像として使用する、処理を行うことと、を含む。
【0007】
別の例示的な態様において、映像処理方法は、処理装置によって、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定を行うことと、処理装置によって、第1の映像ブロックのための第1のサブ部分および第2のサブ部分を判定することであって、第1のサブ部分または第2のサブ部分のうちの一方または両方が、第1の映像ブロックの非長方形且つ非正方形部分である、判定することと、第1のサブ部分および第2のサブ部分を使用して第1の映像ブロックに更なる処理を行うことであって、第1のサブ部分および第2のサブ部分を使用して第1の映像ブロックの更なる処理を行うことは、第1の映像ブロックに対する非隣接空間的ブロックのインターまたはイントラ符号化された情報に基づく、処理を行うことと、を含む。
【0008】
別の例示的な態様において、映像処理方法は、第1の映像ブロックの三角形予測部分を使用して第1の映像ブロックが三角形部分モード(TPM)で符号化されていることの判定と、第2の映像ブロックが、第2の映像ブロックの非三角形予測部分を使用して非TPMを使用して符号化されていることの判定を行うことと、記憶されたHMVP候補を使用して第1の映像ブロックおよび第2の映像ブロックをさらに処理することと、第1の映像ブロックおよび第2の映像ブロックに関連付けられたHMVP候補を記憶することと、をさらに行うことと、を含む。
【0009】
別の例示的な態様において、映像処理方法は、処理装置によって、第1の映像ブロックが、第1の映像ブロックの非長方形且つ非正方形部分を含む予測部分を含むことの判定を行うことと、HMVP候補を特定することと、HMVP候補から導出された1つ以上の動き候補を、非長方形且つ非正方形である予測部分を含む映像ブロックに関連付けられたマージリストに加えることと、マージリストを使用して、第1の映像ブロックの処理をさらに行うことと、を含む。
【0010】
別の例示的な態様において、映像処理方法は、視覚メディアデータの現在のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、現在のブロックのための複数のサブ部分を判定することと、複数のサブ部分のイントラ予測情報を判定することと、複数のサブ部分のイントラ予測情報を使用して現在のブロックの変換を行うことと、を含み、現在のブロックは、イントラ符号化され、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形のサブ部分である。
【0011】
別の例示的な態様において、映像処理方法は、視覚メディアデータの現在のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、現在のブロックのための複数のサブ部分を判定することと、複数のサブ部分の動き情報を判定することと、複数のサブ部分の動き情報を使用して現在のブロックの変換を行うことと、を含み、現在のブロックは、インター符号化され、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形のサブ部分である。
【0012】
別の例示的な態様において、映像処理方法は、視覚メディアデータの現在のブロックと視覚メディアデータの対応する符号化表現との間で変換を行うことであって、現在のブロックは、第1のサブ部分が非長方形の非正方形の形状を有する分割パターンにしたがって、複数のサブ部分に分割される、変換を行うことと、第1のサブ部分をイントラ符号化モードで処理することと、第2のサブ部分をインター符号化モードで処理することと、を含む。
【0013】
別の例示的な態様において、映像処理方法は、視覚メディアデータの現在のブロックと視覚メディアデータの対応する符号化表現との間で変換を行うことであって、現在のブロックは、第1のサブ部分が非長方形の非正方形の形状を有する分割パターンにしたがって、複数のサブ部分に分割される、変換を行うことと、複数のサブ部分のうちの少なくとも1つは、マージまたは非マージインターコードされ、現在のピクチャを参照ピクチャとして使用する。
【0014】
別の例示的な態様において、映像処理方法は、現在の視覚メディアデータのブロックと、対応する視覚メディアデータの符号化表現との間で変換を行うことであって、第1の予測分割が非長方形、非正方形の形状を有する分割パターンにしたがって、現在のブロックを複数のサブ部分に分割する、変換を行うことと、1つ以上の非隣接空間的ブロックのインターまたはイントラ符号化された情報を使用して変換を行うことと、を含む。
【0015】
別の例示的な態様において、映像処理方法は、視覚メディアデータの第1のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、ジオメトリ分割モードで符号化された第1のブロックを判定することと、前述の符号化されたブロックに基づいた動き情報を含む履歴に基づく動きベクトル予測(HMVP)候補を記憶する少なくとも1つの表に基づいて、第1のブロックの少なくとも1つのサブ部分の動き情報を判定することと、判定された動き情報を使用して第1のブロックの変換を行うことと、を含む。
【0016】
別の例示的な態様において、映像処理方法は、視覚メディアデータの第1のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、ジオメトリ分割モードで符号化された第1のブロックを判定することと、第1のブロックの少なくとも1つのサブ部分の動き情報を判定することと、少なくとも1つのサブ部分の動き情報を使用して第1のブロックの変換を行うことと、を含み、少なくとも1つのサブ部分の動き情報を判定することは、動き候補リストを構築するために前述の符号化されたブロックに基づく動き情報を含む、少なくとも1つの履歴に基づく動きベクトル予測(HMVP)候補を使用することと、動き候補リストから動き情報を判定することとを含む。
【0017】
別の例示的な態様において、上記方法は、処理装置を含むビデオエンコーダ装置によって実装されてもよい。
【0018】
別の例示的な態様において、上記方法は、処理装置を含むビデオデコーダ装置によって実装されてもよい。
【0019】
さらに別の例示的な態様において、これらの方法は、処理装置実行可能命令の形式で実施されてもよく、コンピュータ可読プログラム媒体に記憶されてもよい。
【0020】
これらの、および他の態様は、本明細書でさらに説明される。
【図面の簡単な説明】
【0021】
【
図1】マージ候補リスト構築の導出処理の一例を示す。
【
図3】空間的マージ候補の冗長性チェックで考慮される候補対の例を示す。
【
図4】N×2Nおよび2N×N個の分割からなる第2のPUの位置の例を示す。
【
図5】時間的マージ候補のための動きベクトルのスケーリングの例を示す。
【
図6】時間的マージ候補の候補位置C0、C1の一例を示す図である。
【
図8】動きベクトル予測候補の導出処理の例を示す。
【
図9】空間的動きベクトル候補のための動きベクトルのスケーリングの例を示す。
【
図10】CUのためのATMVP動き予測の例を示す。
【
図11】4つのサブブロック(A-D)およびその近傍のブロックを有する1つのCUの例を示す。
【
図12】異なるMV精度で符号化するフローチャートの一例を示す。
【
図13】1つのCUを2つの三角形予測ユニット(2つの分割タイプ)に分割する例を示す。
【
図15】第1の重み係数群を適用するCUの例を示す。
【
図17】TPMフラグ符号化におけるコンテキスト選択に使用される近傍のブロック(AおよびL)の例を示す。
【
図18】OBMCが適用されるサブブロックの例を示す。
【
図19】ICパラメータを導出するために使用される近傍のサンプルの例を示す。
【
図20】簡略化したアフィン動きモデルの一例を示す。
【
図21】サブブロック当たりのアフィンMVFの例を示す。
【
図22】4パラメータアフィンモデル(a)および6パラメータアフィンモデル(b)の例を示す。
【
図23】AF_INTER のためのMVPの例を示す。
【
図25】アフィンマージモードの候補位置の一例を示す。
【
図27】BIO w/oブロック拡張の一例を示し、a)ブロックの外側のアクセス位置、b)余分なメモリアクセスおよび計算を回避するためにパディング(padding)を用いる。
【
図28】バイラテラルテンプレートマッチングに基づくDMVRの例を示す。
【
図29】映像処理装置の一例を示すブロック図である。
【
図30】ビデオエンコーダの例示的な実装のブロック図を示す。
【
図31】映像処理方法の一例のフローチャートである。
【
図32】映像処理方法の一例のフローチャートである。
【
図33】映像処理方法の一例のフローチャートである。
【
図34】映像処理方法の一例のフローチャートである。
【
図35】映像処理方法の一例のフローチャートである。
【
図36】映像処理方法の一例のフローチャートである。
【
図37】映像処理方法の一例のフローチャートである。
【
図38】映像処理方法の一例のフローチャートである。
【
図39】映像処理方法の一例のフローチャートである。
【
図40】映像処理方法の一例のフローチャートである。
【
図41】映像処理方法の一例のフローチャートである。
【
図42】映像処理方法の一例のフローチャートである。
【発明を実施するための形態】
【0022】
本明細書は、展開または復号化されたデジタル映像または画像の品質を向上させるために、画像または映像ビットストリームのデコーダによって使用できる様々な技術を提供する。簡潔にするために、本明細書では、用語「映像」は、一連のピクチャ(従来から映像と呼ばれる)および個々の画像の両方を含むように使用する。さらに、ビデオエンコーダは、さらなる符号化に使用される復号化されたフレームを再構成するために、符号化の処理中にこれらの技術を実装してもよい。
【0023】
本明細書では、理解を容易にするために章見出しを使用しているが、実施形態および技術を、対応する章に限定するものではない。このように、一つの章からの実施形態は、他の章からの実施例と組み合わせることができる。
【0024】
1. 概要
本特許明細書は、映像符号化技術に関する。具体的には、本発明は、映像符号化におけるジオメトリ分割による動きベクトル符号化に関する。本発明は、HEVCのような既存の映像符号化規格またはファイナライズされるべき規格(例えば、汎用映像符号化)に適用され得る。本発明は、将来の映像符号化規格またはビデオコーデックにも適用可能である。
【0025】
2. 背景技術
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を、ISO/IECはMPEG-1とMPEG-4Visualを、両団体はH.262/MPEG-2VideoとH.264/MPEG-4高度映像符号化(AVC)とH.265/HEVC規格を共同で作成した。映像符号化規格、H.262は、時間的予測プラス変換符号化が利用されるハイブリッド映像符号化構造に基づく。HEVCを超えた将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同で共同映像探索チーム(Joint Video Exploration Team:JVET)を設立した。それ以来、多くの新しい方法がJVETによって採用され、共同探索モデル(JEM)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間に共同映像探索チーム(JVET)が作られ、HEVCと比較してビットレートを50%低減することを目標としたVVC規格に取り組むことになった。
【0026】
図30は、ビデオエンコーダの例示的な実装のブロック図である。
図30は、エンコーダ実装が、ビデオエンコーダが映像復号化機能も実行する(次の映像データの符号化に使用するために映像データの圧縮表現を再構築する)フィードバック経路を組み込むことを示す。
【0027】
2.1 HEVC/H.265におけるインター予測
各インター予測されたPUは、1つまたは2つの参照ピクチャリストのための動きパラメータを有する。動きパラメータは、動きベクトルおよび参照ピクチャインデックスを含む。2つの参照ピクチャリストのうちの1つの参照ピクチャリストの使用は、inter_pred_idcを使用して信号通知されてもよい。動きベクトルは、予測子に対するデルタ(delta)として明確に符号化されてもよい。
【0028】
1つのCUがスキップモードで符号化される場合、1つのPUがこのCUに関連付けられ、有意な残差係数がなく、符号化動きベクトルデルタも参照ピクチャインデックスもない。マージモードを指定し、これにより、現在のPUのための動きパラメータを、空間的および時間的候補を含む近傍のPUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたPUに適用することができる。マージモードの代替としては、動きパラメータの明確な送信があり、PUごとに、各参照ピクチャリストおよび参照ピクチャリストの使用に対応する参照ピクチャインデックスである、動きベクトル(より正確には、動きベクトル予測子と比較した動きベクトルの差)を明確に信号通知する。このようなモードを、本開示では高度動きベクトル予測(AMVP)と呼ぶ。
【0029】
2つの参照ピクチャリストのうちの1つを使用することを信号通知が示す場合、1つのサンプルのブロックからPUを生成する。これを「単一予測」と呼ぶ。単一予測は、PスライスおよびBスライスの両方に利用可能である。
【0030】
両方の参照ピクチャリストを使用することを信号通知が示す場合、2つのサンプルのブロックからPUを生成する。これを「双予測」と呼ぶ。Bスライスのみに双予測が利用可能である。
【0031】
以下、HEVCに規定されるインター予測モードについて詳細に説明する。まず、マージモードについて説明する。
【0032】
2.1.1. 参照ピクチャリスト
HEVCにおいて、インター予測という用語は、現在の復号化されたピクチャ以外の参照ピクチャのデータ要素(例えば、サンプル値または動きベクトル)から導出された予測を示すために使用される。H.264/AVCと同様に、複数の参照ピクチャから1つのピクチャを予測することができる。インター予測に使用される参照ピクチャは、1つ以上の参照ピクチャリストにまとめられる。参照インデックスは、リストにおけるいずれの参照ピクチャを使用して予測信号を生成するかを識別する。
【0033】
1つの参照ピクチャリストList0はPスライスに用いられ、2つの参照ピクチャリストList0およびList1はBスライスに使用される。なお、List0/1に含まれる参照ピクチャは、撮影/表示順にしても、過去および将来のピクチャからのものであってもよい。
【0034】
2.1.2 マージモード
2.1.2.1 マージモードの候補の導出
マージモードを使用してPUを予測する場合、ビットストリームからマージ候補リストにおけるエントリを指すインデックスを構文解析し、これを使用して動き情報を検索する。このリストの構成は、HEVC規格で規定されており、以下のステップのシーケンスにしたがってまとめることができる。
【0035】
ステップ1:初期候補導出
ステップ1.1:空間的候補導出
ステップ1.2:空間的候補の冗長性チェック
ステップ1.3:時間的候補導出
ステップ2:追加の候補挿入
ステップ2.1:双予測候補の作成
ステップ2.2:動きゼロ候補の挿入
【0036】
これらのステップは
図1にも概略的に示されている。空間的マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補を選択する。時間的マージ候補導出のために、2つの候補の中から最大1つのマージ候補を選択する。デコーダ側ではPUごとに一定数の候補を想定しているので、ステップ1で得られた候補の数が、スライスヘッダにおいて信号通知されるマージ候補の最大数(MaxNumMergeCand)に達しない場合、追加の候補を生成する。候補の数は一定であるので、短縮された単項2値化(TU)を使用して最良マージ候補のインデックスを符号化する。CUのサイズが8に等しい場合、現在のCUのすべてのPUは、2N×2N予測ユニットのマージ候補リストと同じ1つのマージ候補リストを共有する。
【0037】
以下、上述したステップに関連付けられた動作を詳しく説明する。
【0038】
図1は、マージ候補リスト構築の導出処理の一例を示す。
【0039】
2.1.2.2. 空間的候補導出
空間的マージ候補の導出において、
図2に示す位置にある候補の中から、最大4つのマージ候補を選択する。導出の順序はA
1、B
1、B
0、A
0、B
2である。位置A
1、B
1、B
0、A
0のいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはイントラ符号化された場合にのみ、位置B
2が考慮される。位置A
1の候補を加えた後、残りの候補を加えると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、符号化効率を向上させることができる。計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。代わりに、
図3において矢印でリンクされた対のみを考慮し、冗長性チェックに使用される対応する候補が同じ動き情報を有していない場合にのみ、その候補をリストに加える。重複した動き情報の別のソースは、2N×2Nとは異なる分割に関連付けられた「第2のPU」である。一例として、
図4は、それぞれN×2Nおよび2N×Nの場合の第2のPUを示す。現在のPUをN×2Nに分割する場合、リスト構築に位置A
1の候補は考慮されない。実際、この候補を加えることにより、双予測ユニットが同じ動き情報を有するようになり、1つの符号化ユニットに1つのPUのみを有することは冗長である。同様に、現在のPUを2N×Nに分割する場合、位置B
1は考慮されない。
【0040】
【0041】
図3は、空間的マージ候補の冗長性チェックに考慮される候補対の例を示す。
【0042】
図4は、N×2Nおよび2N×N個の分割からなる第2のPUの位置の例を示す。
【0043】
2.1.2.3. 時間的候補導出
このステップにおいて、1つの候補のみがリストに追加される。具体的には、この時間的マージ候補の導出において、所与の参照ピクチャリストにおける現在のピクチャとの間に最小のPOC差を有するピクチャに属する同一位置PUに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、同一位置PUの導出に使用される参照ピクチャリストが明確に信号通知される。
図5に点線で示すように、時間的マージ候補のスケーリングされた動きベクトルが得られる。これは、POC距離tbおよびtdを利用して、同一位置PUの動きベクトルからスケーリングしたものである。tbは、現在のピクチャの参照ピクチャと現在のピクチャのPOC差として規定し、tdは、同一位置PUの参照ピクチャと同一位置ピクチャのPOC差として規定する。時間的マージ候補の参照ピクチャインデックスをゼロに等しく設定する。このスケーリング処理の実際的な実現については、HEVC仕様に記載されている。Bスライスの場合、2つの動きベクトル、即ち、1つは参照ピクチャリスト0のためのもの、もう1つは参照ピクチャリスト1のためのもの、を取得し、これらを組み合わせることによって、双予測マージ候補を形成する。
【0044】
図5に、時間的マージ候補のための動きベクトルのスケーリングの例を示す。
【0045】
参照フレームに属する同一位置PU(Y)において、
図6に示すように、候補C
0と候補C
1との間で時間的候補の位置を選択する。位置C
0のPUが利用可能でない場合、イントラ符号化されている場合、または現在のCTU行の外側にある場合、位置C
1が使用される。そうでない場合、位置C
0が時間的マージ候補の導出に使用される。
【0046】
図6は、時間的マージ候補の候補位置C
0およびC
1の一例を示す図である。
【0047】
2.1.2.4. 追加の候補挿入
時空間的マージ候補の他に、2つの追加のタイプのマージ候補、すなわち、結合双予測マージ候補およびゼロマージ候補がある。時空間的マージ候補を利用することで、結合双予測マージ候補を生成する。結合双予測マージ候補は、Bスライスのみに使用される。最初の候補の第1の参照ピクチャリスト動きパラメータと別の候補の第2の参照ピクチャリスト動きパラメータとを組み合わせることで、結合双予測候補を生成する。これら2つのタプルが異なる動き仮説を提供する場合、これらのタプルは、新しい双予測候補を形成する。一例として、
図7は、オリジナルリスト(左側)における、mvL0、refIdxL0またはmvL1、refIdxL1を有する2つの候補を使用して、最終リスト(右側)に加えられる結合双予測マージ候補を生成する場合を示す。これらの追加のマージ候補を生成するために考慮される組み合わせについては、様々な規則が存在する。
【0048】
【0049】
動きゼロ候補を挿入し、マージ候補リストにおける残りのエントリを埋めることにより、MaxNumMergeCand容量にヒットする。これらの候補は、空間的変位がゼロであり、ゼロから始まり、新しいゼロ動き候補をリストに加える度に増加する参照ピクチャインデックスを有する。これらの候補が使用する参照フレームの数は、それぞれ、一方向予測の場合は1つ、双方向予測の場合は2つである。最終的には、これらの候補に対して冗長性チェックは行われない。
【0050】
2.1.2.5. 並列処理のための動き推定領域
符号化処理を高速化するために、動き推定を並列に行うことができ、それによって、所与の領域内のすべての予測ユニットの動きベクトルを同時に導出する。1つの予測ユニットは、その関連する動き推定が完了するまで、隣接するPUから動きパラメータを導出することができないので、空間的近傍からのマージ候補の導出は、並列処理に干渉する可能性がある。符号化効率と処理待ち時間との間のトレードオフを緩和するために、HEVCは、動き推定領域(MER)を規定し、そのサイズは、「log2_parallel_merge_level_minus2」構文要素を使用してピクチャパラメータセットにおいて信号通知される。1つのMERを規定するとき、同じ領域にあるマージ候補は利用不可能であるとしてマークされ、それゆえにリスト構築においては考慮されない。
【0051】
2.1.3. AMVP
AMVPは、動きパラメータの明確な伝送に使用される、動きベクトルの近傍のPUとの時空間的相関を利用する。各参照ピクチャリストにおいて、左側、上側の時間的に近傍のPU位置の可用性をチェックし、冗長な候補を取り除き、ゼロベクトルを加えることで、候補リストの長さを一定にすることで、動きベクトル候補リストを構築する。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。マージインデックスの信号通知と同様に、最良の動きベクトル候補のインデックスは、短縮された単項を使用してエンコードされる。この場合に符号化対象の最大値は2である(
図8参照)以下の章では、動きベクトル予測候補の導出処理の詳細を説明する。
【0052】
2.1.3.1 AMVP候補の導出
図8に、動きベクトル予測候補の導出処理をまとめる。
【0053】
動きベクトル予測において、空間的動きベクトル候補と時間的動きベクトル候補という2つのタイプの動きベクトル候補が考えられる。空間的動きベクトル候補を導出するために、
図2に示したように、5つの異なる位置にある各PUの動きベクトルに基づいて、最終的には2つの動きベクトル候補を導出する。
【0054】
時間的動きベクトル候補を導出するために、2つの異なる同一位置に配置された位置に基づいて導出された2つの候補から1つの動きベクトル候補を選択する。第1の時空間的候補リストを作成した後、リストにおける重複した動きベクトル候補を除去する。候補の数が2よりも多い場合、関連づけられた参照ピクチャリストにおける参照ピクチャインデックスが1よりも大きい動きベクトル候補をリストから削除する。時空間的動きベクトル候補の数が2未満である場合は、追加のゼロ動きベクトル候補をリストに加える。
【0055】
2.1.3.2. 空間的動きベクトル候補
空間的動きベクトル候補の導出において、
図2に示したような位置にあるPUから導出された5つの潜在的な候補のうち、動きマージと同じ位置にあるものを最大2つの候補を考慮する。現在のPUの左側のための導出の順序は、A0、A1、スケーリングされたA0、スケーリングされたA1として規定される。現在のPUの上側のための導出の順序は、B0、B1、B2、スケーリングされたB0、スケーリングされたB1、スケーリングされたB2として規定される。そのため、辺ごとに、動きベクトル候補として使用できる場合は4つ、すなわち空間的スケーリングを使用する必要がない2つの場合と、空間的スケーリングを使用する2つの場合とがある。4つの異なる場合をまとめると、以下のようになる。
【0056】
空間的スケーリングなし
(1)同じ参照ピクチャリスト、および同じ参照ピクチャインデックス(同じPOC)
(2)異なる参照ピクチャリストであるが、同じ参照ピクチャ(同じPOC)
空間的スケーリング
(3)同じ参照ピクチャリストであるが、異なる参照ピクチャ(異なるPOC)
(4)異なる参照ピクチャリスト、および異なる参照ピクチャ(異なるPOC)
【0057】
最初に非空間的スケーリングの場合をチェックし、次に空間的スケーリングを行う。参照ピクチャリストにかかわらず、POCが近傍のPUの参照ピクチャと現在のPUの参照ピクチャとで異なる場合、空間的スケーリングを考慮する。左側候補のすべてのPUが利用可能でないか、またはイントラ符号化されている場合、上側の動きベクトルのスケーリングは、左側および上側MV候補の並列導出に役立つ。そうでない場合、上側の動きベクトルに対して空間的スケーリングは許可されない。
【0058】
図9に、空間的動きベクトル候補のための動きベクトルのスケーリングの例を示す。
【0059】
空間的スケーリング処理において、
図9に示すように、時間的スケーリングと同様にして、近傍のPUの動きベクトルをスケーリングする。主な違いは、現在のPUの参照ピクチャリストおよびインデックスを入力として与え、実際のスケーリング処理は時間的スケーリングと同じであることである。
【0060】
2.1.3.3. 時間的動きベクトル候補
参照ピクチャインデックスを導出する以外は、時間的マージ候補を導出するための処理は、すべて、空間的動きベクトル候補を導出するための処理と同じである(
図6参照)。参照ピクチャインデックスはデコーダに信号通知される。
【0061】
2.2. JEMにおける新しいインター予測方法
2.2.1. サブCUに基づく動きベクトル予測
QTBTを有するJEMにおいて、各CUは、各予測方向に対して最大1つの動きパラメータセットを有することができる。エンコーダにおいて、ラージCUをサブCUに分割し、ラージCUのすべてのサブCUの動き情報を導出することにより、2つのサブCUレベルの動きベクトル予測方法を考慮する。代替的な時間的動きベクトル予測(ATMVP)方法により、各CUが、配列された参照ピクチャにおける現在のCUよりも小さい複数のブロックから複数の動き情報のセットを取り出すことが可能となる。時空間的動きベクトル予測(STMVP)法において、時間的動きベクトル予測子および空間的近傍動きベクトルを使用して、サブCUの動きベクトルを再帰的に導出する。
【0062】
サブCU動き予測のためにより正確な動きフィールドを保守するために、参照フレームの動き圧縮は現在無効にされている。
【0063】
図10は、CUのためのATMVP動き予測の例を示す。
【0064】
2.2.1.1. 代替の時間的動きベクトル予測
代替的な時間的動きベクトル予測(ATMVP)において、動きベクトル時間的動きベクトル予測(TMVP)法は、現在のCUより小さいブロックから複数動き情報のセット(動きベクトルおよび参照インデックスを含む)を取り出すことで修正される。サブCUは、N×N個のブロックの正方形である(Nは、デフォルトで4に設定される)。
【0065】
ATMVPは、CU内のサブCUの動きベクトルを2つのステップで予測する。第1のステップでは、参照ピクチャにおける対応するブロックを時間的ベクトルで特定する。この参照ピクチャをモーションソースピクチャと呼ぶ。第2のステップでは、現在のCUをサブCUに分割し、各サブCUに対応するブロックから、各サブCUの動きベクトルおよび参照インデックスを得る。
【0066】
第1のステップにおいて、現在のCUの空間的に近傍のブロックの動き情報によって、参照ピクチャおよび対応するブロックを判定する。近傍のブロックの繰り返し走査処理を回避するために、現在のCUのマージ候補リストにおける第1のマージ候補を用いる。第1の利用可能な動きベクトルおよびその関連する参照インデックスを、時間的ベクトルおよびモーションソースピクチャのインデックスに設定する。このように、ATMVPでは、TMVPに比べて、対応するブロックをより正確に特定することができ、対応するブロック(配列されたブロックと呼ばれることがある)は、常に現在のCUに対して右下または中心位置にある。
【0067】
第2のステップにおいて、現在のCUの座標に時間ベクトルを加えることで、モーションソースピクチャにおける時間的ベクトルによって、サブCUの対応するブロックを特定する。サブCUごとに、その対応するブロックの動き情報(中心サンプルを覆う最小の動きグリッド)を使用して、サブCUの動き情報を導出する。対応するN×Nブロックの動き情報を特定した後、HEVCのTMVPと同様に、現在のサブCUの動きベクトルおよび参照インデックスに変換され、動きスケーリングや他の手順が適用される。例えば、デコーダは、低遅延条件(現在のピクチャのすべての参照ピクチャのPOCが現在のピクチャのPOCよりも小さい)が満たされているか否かをチェックし、場合によっては、動きベクトルMVx(参照ピクチャリストXに対応する動きベクトル)を使用して、各サブCUの動きベクトルMVy(Xが0または1に等しく、Yが1-Xに等しい)を予測する。
【0068】
2.2.1.2. 時空間的動きベクトル予測(STMVP)
この方法において、サブCUの動きベクトルは、ラスタスキャンの順に沿って再帰的に導出される。
図11は、この概念を示す。4つの4×4サブCU、A、B、C、およびDを含む8×8CUを考える。現在のフレームの近傍の4×4ブロックには、a、b、c、dというラベルが付けられている。
【0069】
サブCU Aの動きの導出は、その2つの空間的近傍を特定することで始まる。第1の近傍は、サブCU Aの上のN×Nブロックである(ブロックc)。このブロックcが利用可能でないか、またはイントラ符号化されている場合、サブCU Aより上の他のN×N個のブロックをチェックする(ブロックcから始まり、左から右へ)。第2の近傍は、サブCU Aの左側のブロックである(ブロックb)。ブロックbが利用可能でないか、またはイントラ符号化されている場合、サブCU Aの左側の他のブロックをチェックする(ブロックbを中心に、上から下へ)。各リストの近傍のブロックから得られた動き情報を、所与のリストの第1の参照フレームにスケーリングする。次に、HEVCで規定されているTMVP導出と同じ手順に従って、サブブロックAの時間的動きベクトル予測子(TMVP)を導出する。位置Dの同一位置のブロックの動き情報を取り出し、それに応じてスケーリングする。最後に、動き情報を検索し、スケーリングした後、参照リストごとにすべての利用可能な動きベクトル(3まで)を別個に平均する。この平均化された動きベクトルを現在のサブCUの動きベクトルとする。
【0070】
2.2.1.3. サブCU動き予測モード信号通知
サブCUモードは追加のマージ候補として有効とされ、モードを信号通知するために追加の構文要素は必要とされない。ATMVPモードおよびSTMVPモードを表すように、各CUのマージ候補リストに2つの追加のマージ候補を加える。シーケンスパラメータセットがATMVPおよびSTMVPが有効であることを示す場合、7個までのマージ候補を使用する。追加のマージ候補のエン符号化ロジックは、HMにおけるマージ候補の場合と同じであり、つまり、PまたはBスライスにおける各CUについて、2つの追加のマージ候補に対して2回以上のRDチェックが必要となる。
【0071】
JEMにおいて、マージインデックスのすべての2値は、CABACによってコンテキスト符号化される。一方、HEVCにおいては、第1の2値のみがコンテキスト符号化され、残りの2値はコンテキストバイパス符号化される。
【0072】
2.2.2. 適応動きベクトル差解像度
HEVCにおいて、use_integer_mv_flagがスライスヘッダにおいて0であるとき、1/4輝度サンプルの単位で動きベクトルの差(MVD)(動きベクトルとPUの予測動きベクトルとの差)が信号通知される。JEMにおいて、ローカル適応動きベクトル解像度(LAMVR)が導入される。JEMにおいて、MVDは、1/4輝度サンプル、整数輝度サンプルまたは4つの輝度サンプルの単位で符号化できる。MVD分解能は符号化ユニット(CU)レベルで制御され、MVD解像度フラグは、少なくとも1つのノンゼロMVDモジュールを有する各CUに対して条件付きで信号通知される。
【0073】
少なくとも1つのノンゼロMVDモジュールを有するCUの場合、1/4輝度サンプルMV精度がCUにおいて使用されるか否かを示すために、第1のフラグが信号通知される。第1のフラグ(1に等しい)が、1/4輝度サンプルMV精度が使用されていないことを示す場合、整数輝度サンプルMV精度が使用されるかまたは4輝度サンプルMV精度が使用されるかを示すために、別のフラグが信号通知される。
【0074】
CUの第1のMVD解像度フラグがゼロであるか、またはCUに対して符号化されていない(つまり、CUにおけるすべてのMVDがゼロである)場合、CUに対して1/4輝度サンプルMV解像度が使用される。CUが整数輝度サンプルMV精度または4輝度サンプルMV精度を使用する場合、CUのAMVP候補リストにおけるMVPを対応する精度に丸める。
【0075】
エンコーダにおいて、CUレベルのRDチェックは、どのMVD解像度をCUに用いるかを判定するために使用される。すなわち、1つのMVD解像度ごとに3回、CUレベルのRDチェックを行う。エンコーダの速度を速めるために、JEMにおいては、以下の符号化方式が適用される。
【0076】
通常の1/4輝度サンプルMVD解像度を有するCUのRDチェック中、現在のCUの動き情報(整数輝度サンプル精度)が記憶される。整数輝度サンプルおよび4輝度サンプルのMVD解像度を有する同じCUのRDチェック中に、記憶された動き情報(丸められた後)は、更なる小範囲動きベクトル微調整の開始点として使用されるので、時間がかかる動き推定処理が3回重複しない。
【0077】
4輝度サンプルMVD解像度を有するCUのRDチェックを条件付きで呼び出す。CUの場合、整数輝度サンプルMVD解像度のRDコストが1/4輝度サンプルMVD解像度のそれよりもはるかに大きい場合、CUのための4輝度サンプルMVD解像度のRDチェックはスキップされる。
【0078】
符号化処理を
図12に示す。まず、1/4画素MVをテストし、RDコストを計算し、RDCost0と表し、次に、整数MVをテストし、RDコストをRDCost1と表す。RDCost1<th*RDCost0(ただし、thは正の値である)である場合、4画素MVをテストし、そうでない場合、4画素MVをスキップする。基本的に、整数または4画素MVをチェックするときには、1/4画素MVに対して動き情報およびRDコスト等が既知であり、これを再利用して整数または4画素MVの符号化処理を高速化することができる。
【0079】
2.2.3. 三角形予測モード
三角形予測モード(TPM)の概念は、動き補償予測のために新しい三角形分割を導入することである。
図13に示すように、CUは、対角線方向または逆対角線方向に沿って2つの三角形予測ユニットに分割される。CUにおける各三角形予測ユニットは、単一予測候補リストから導出された独自の単一予測動きベクトルおよび参照フレームインデックスを使用して、インター予測される。三角形予測ユニットを予測した後、対角エッジに対して適応重み付け処理を行う。そして、CU全体に対して変換および量子化処理を行う。なお、このモードは、スキップモードおよびマージモードにのみ適用される。
【0080】
2.2.3.1 TPMの単一予測候補リスト
この単一予測候補リストは、5つの単一予測動きベクトル候補からなる。これは、
図14に示すように、5つの空間的に近傍のブロック(1~5)および2つの時間的に同一位置にあるブロック(6~7)を含む7つの近傍のブロックから導出される。単一予測動きベクトル、双予測動きベクトルのL0動きベクトル、双予測動きベクトルのL1動きベクトル、およびタイルグループ動きベクトルのL0、L1動きベクトルの平均動きベクトルの順に、7つの近傍のブロックの動きベクトルを収集し、単一予測候補リストに入れる。候補の数が5未満である場合、動きベクトルゼロをリストに加える。
【0081】
具体的には、以下のステップが含まれる。
【0082】
プルーニング操作を行わずに、A1、B1、B0、A0、B2、Col、Col2(
図14のブロック1-7に対応)から動き候補を取得する。
【0083】
変数numCurrMergeCand=0を設定する。
【0084】
A1、B1、B0、A0、B2、Col、Col2、から導出された各動き候補で、numCurrMergeCandが5未満のものに対し、動き候補が単一予測である(List0またはList1のいずれかから)場合、であり、numCurrMergeCandを1だけ増加させたマージリストに加えられる。このように追加された動き候補を「本来単予測候補」と呼ぶ。
【0085】
フルプルーニングを適用する。
【0086】
A1、B1、B0、B0、A0、B2、Col、Col2から導出され、numCurrMergeCandが5未満である各動き候補について、動き候補が双予測である場合には、List0からの動き情報をマージリストに追加し(つまり、List0からの単一予測となるように修正される)、numCurrMergeCandを1だけ増加させる。このように追加された動き候補を「Truncated List0-predicted candidate」と呼ぶ。
【0087】
フルプルーニングを適用する。
【0088】
A1、B1、B0、B0、A0、B2、Col、Col2から導出され、numCurrMergeCandが5未満である各動き候補について、動き候補が双予測である場合には、List1からの動き情報をマージリストに追加し(つまり、List1からの単一予測となるように修正され)、numCurrMergeCandを1だけ増加させる。このように追加された動き候補を「Truncated List1-predicted candidate」と呼ぶ。
【0089】
フルプルーニングを適用する。
【0090】
A1、B1、B0、A0、B2、Col、Col2、から導出され、numCurrMergeCandが5未満である各動き候補について、動き候補が双予測である場合、
【0091】
List0参照ピクチャスライスQPがList1参照ピクチャスライスQPよりも小さい場合、List1の動き情報をまずList0参照ピクチャにスケーリングし、2つのMVの平均(一方はオリジナルList0からのもので、他方はList1からのスケーリングされたMV)を、List0動き候補からの平均単一予測であるマージリストに加え、numCurrMergeCandを1だけ増加させる。
【0092】
そうでない場合、List0の動き情報をまずList1参照ピクチャにスケーリングし、2つのMVの平均(一方はオリジナルList1からのものであり、他方はList0からのスケーリングされたMVである)をマージリストに加える。すなわち、List1動き候補とnumCurrMergeCandとからの単一予測を平均し、1だけ増加させる。
【0093】
フルプルーニングを適用する。
【0094】
numCurrMergeCandが5未満である場合、ゼロ動きベクトル候補を加える。
【0095】
2.2.3.2. 適応重み付け処理
各三角形予測ユニットを予測した後、2つの三角形予測ユニット間の対角エッジに適応重み付け処理を施し、CU全体の最終予測を導出する。2つの重み係数群を以下のように定義する。
【0096】
第1の重み係数群は、{7/8,6/8,4/8,2/8,1/8}および{7/8,4/8,1/8}をそれぞれ輝度および色差サンプルに使用する。
【0097】
第2の重み係数群は、{7/8,6/8,5/8,4/8,3/8,2/8,1/8}および{6/8,4/8,2/8}をそれぞれ輝度および色差サンプルに使用する。
【0098】
2つの三角形予測ユニットの動きベクトルの比較に基づいて、重み係数群を選択する。第2の重み係数群は、2つの三角形予測ユニットの参照ピクチャが異なる場合、またはその動きベクトルの差が16画素よりも大きい場合に使用される。そうでない場合、第1の重み係数群を使用する。一例を
図15に示す。
【0099】
2.2.3.3. 動きベクトル記憶装置
三角形予測ユニットの動きベクトル(
図16のMv1、Mv2)は、4×4個のグリッドに記憶される。各4×4グリッドに対して、CUにおける4×4グリッドの位置に基づいて、単一予測または双予測動きベクトルを記憶する。
図16に示すように、重み付けされていない領域に位置する(すなわち、対角エッジに位置しない)4×4グリッドに対して、Mv1またはMv2のいずれか一方の単一予測動きベクトルを記憶する。一方、重み付け領域に位置する4×4グリッドについては、双予測動きベクトルを記憶する。以下の規則に基づいて、Mv1およびMv2から双予測動きベクトルを導出する。
【0100】
Mv1およびMv2が異なる方向(L0またはL1)の動きベクトルを有する場合、Mv1およびMv2を単に組み合わせることで、双予測動きベクトルが形成される。
【0101】
Mv1とMv2の両方が同じL0(またはL1)方向から来ている場合、
Mv2の参照ピクチャがL1(またはL0)参照ピクチャリストにおけるピクチャと同じである場合、Mv2はそのピクチャにスケーリングされる。Mv1とスケーリングされたMv2とを組み合わせ、双予測動きベクトルを形成する。
【0102】
Mv1の参照ピクチャがL1(またはL0)参照ピクチャリストにおけるピクチャと同じである場合、Mv1はそのピクチャにスケーリングされる。スケーリングされたMv1およびMv2を組み合わせ、双予測動きベクトルを形成する。
【0103】
そうでない場合、重み付け領域のためにMv1のみが記憶される。
【0104】
2.2.3.4. 三角形予測モード(TPM)の信号通知
TPMが使用されているか否かを示すための1つのビットフラグが、まず信号通知されてもよい。その後、2つの分割パターンの表示の信号通知(
図13に示す)、および2つの分割の各々に対して選択されたマージインデックスをさらに信号通知する。
【0105】
2.2.3.4.1 TPMフラグの信号通知
1つの輝度ブロックの幅および高さを、それぞれWおよびHで表すことにする。W*H<64の場合、三角形予測モードは無効になる。
【0106】
1つのブロックをアフィンモードで符号化する場合、三角形予測モードも無効にされる。
【0107】
1つのブロックがマージモードで符号化されるとき、1つのビットフラグを信号通知して、このブロックに対して三角形予測モードが有効とされるか無効とされるかを示すことができる。
【0108】
このフラグは、次式に基づいて、3つのコンテキストで符号化される。
【0109】
Ctx index=((left block L available && L is coded with TPM?)1:0)
+((Above block A available && A is coded with TPM?)1:0);
【0110】
2.2.3.4.2. 2つの分割パターンの表示(
図13に示す)、および2つの分割の各々に対して選択されたマージインデックスの信号通知
【0111】
なお、分割パターンと、2つの分割のマージインデックスとは、互いに符号化される。2つの分割が同じ参照インデックスを使用できないように制限される。そのため、2つの(分割パターン)*N(マージ候補の最大数)*(N-1)個の可能性があり、Nが5に設定される。1つの表示を符号化し、分割タイプと、2つのマージインデックスとの間のマッピングを、以下に定義されるアレイから導出する。
【0112】
const uint8_t g_TriangleCombination[TRIANGLE_MAX_NUM_CANDS][3]={
{0,1,0},{1,0,1},{1,0,2},{0,0,1},{0,2,0},
{1,0,3},{1,0,4},{1,1,0},{0,3,0},{0,4,0},
{0,0,2},{0,1,2},{1,1,2},{0,0,4},{0,0,3},
{0,1,3},{0,1,4},{1,1,4},{1,1,3},{1,2,1},
{1,2,0},{0,2,1},{0,4,3},{1,3,0},{1,3,2},
{1,3,4},{1,4,0},{1,3,1},{1,2,3},{1,4,1},
{0,4,1},{0,2,3},{1,4,2},{0,3,2},{1,4,3},
{0,3,1},{0,2,4},{1,2,4},{0,4,2},{0,3,4}};
【0113】
Partition type(45degree or 135degree)=g_TriangleCombination[signaled indication][0];
【0114】
Merge index of candidate A=g_TriangleCombination[signaled indication][1];
【0115】
Merge index of candidate B=g_TriangleCombination[signaled indication][2];
【0116】
2つの動き候補A、Bを導出すると、AまたはBのいずれか一方から2つの分割の(PU1、PU2)動き情報を設定することができ、PU1がマージ候補AまたはBの動き情報を使用するか否かは、2つの動き候補の予測方向に依存する。表1は、2つの分割を有する、2つの導出された動き候補AおよびBの間の関係を示す。
【0117】
【0118】
2.2.3.4.3. (merge_triangle_idxで示す)表示のエントロピー符号化
merge_triangle_idxは、[0、39](それぞれを含む)の範囲内にある。K_thorder Exponential Golomb(EG)コードは、merge_triangle_idxの2値化に使用される(Kは1に設定される)。
【0119】
<K次orderEG>
より少ないビットでより大きな数を符号化するために(より多くのビットを使用してより小さな数を符号化することを犠牲にして)、これは、非負の整数パラメータkを使用して一般化され得る。非負の整数xを次数kのexp-Golombコードで符号化するには、次のようにする。
【0120】
前述のorder-0 exp-Golombコードを使用して[x/2k]を符号化する。次に、
【0121】
x mod 2kをバイナリで符号化する。
【0122】
【0123】
2.2.4. 重複ブロック動き補償
H.263では、以前から重複ブロック動き補償(OBMC)が使用されている。JEMにおいて、H.263とは異なり、OBMCは、CUレベルの構文を使用してオン/オフを切り替えることができる。JEMにおいてOBMCを使用する場合、OBMCは、CUの右下の境界を除くすべての動き補償(MC)ブロック境界に対して行われる。また、輝度およびクロマ成分の両方に適用される。JEMにおいて、1つのMCブロックは1つの符号化ブロックに対応する。CUがサブCUモードで符号化された(サブCUマージ、アフィン、およびFRUCモードを含む)場合、CUの各サブブロックは1つのMCブロックである。均一にCU境界を処理するために、OBMCは、すべてのMCブロック境界に対してサブブロックレベルで実行され、サブブロックサイズは、
図18に示すように、4×4に等しく設定される。
【0124】
OBMCが現在のサブブロックに適用される場合、現在の動きベクトルの他に、4つの接続された近傍のサブブロックの動きベクトルも、利用可能であり、現在の動きベクトルと同じでない場合には、現在のサブブロックのための予測ブロックを導出するために使用される。複数の動きベクトルに基づくこれらの複数の予測ブロックを組み合わせ、現在のサブブロックの最終予測信号を生成する。
【0125】
近傍のサブブロックの動きベクトルに基づく予測ブロックをPN(Nは、近傍の上、下、左、右のサブブロックのインデックス)とし、現在のサブブロックの動きベクトルに基づく予測ブロックをPCとする。PNが現在のサブブロックと同じ動き情報を含む近傍のサブブロックの動き情報に基づく場合、OBMCはPNから行われない。そうでない場合、PNのすべてのサンプルをPC内の同じサンプルに加える。すなわち、PNの4つの行/列をPCに加える。PNには重み係数{1/4,1/8,1/16,1/32}を用い、PCには重み係数{3/4,7/8,15/16,31/32}を用いる。例外は、小さなMCブロック(すなわち、符号化ブロックの高さまたは幅が4に等しいか、または1つのCUがサブCUモードで符号化された場合)であり、その場合、2つの行/列のPNのみがPCに追加される。この場合、PNに対して重み係数{1/4,1/8}が使用され、PCに対して重み係数{3/4,7/8}が使用される。垂直(水平)方向に近傍のサブブロックの動きベクトルに基づいて生成されたPNに対して、PNの同じ行(列)におけるサンプルを、同じ重み係数でPCに加算する。
【0126】
JEMにおいて、サイズが256輝度サンプル以下のCUの場合、CUレベルフラグを信号通知して現在のCUに対してOBMCが適用されているか否かを示す。サイズが256輝度サンプルよりも大きい、またはAMVPモードで符号化されていないCUの場合、OBMCがデフォルトで適用される。エンコーダにおいて、OBMCがCUに適用される場合、その影響は動き推定ステージ中に考慮される。上側近傍のブロックおよび左側近傍のブロックの動き情報を使用してOBMCにより形成された予測信号は、現在のCUの元の信号の上側および左側の境界を補償するために用いられ、その後、通常の動き推定処理が適用される。
【0127】
2.2.5. 局所照明補償
ローカル照明補償(LIC)は、倍率aおよびオフセットbを使用して、照明変化の線形モデルに基づく。そして、各インターモード符号化ユニット(CU)に対して適応的に有効または無効とされる。
【0128】
LICがCUに適用される場合、最小二乗誤差法が使用され、現在のCUの近傍のサンプルおよびそれらに対応する基準サンプルを使用することによって、パラメータaおよびbを導出する。具体的には、
図19に示すように、CUのサブサンプリング(2:1サブサンプリング)された近傍のサンプルと、参照ピクチャにおける対応するサンプル(現在のCUまたはサブCUの動き情報によって特定される)とを使用する。ICパラメータは、各予測方向に対して別個に導出され、適用される。
【0129】
CUがマージモードで符号化される場合、ICフラグは、マージモードにおける動き情報のコピーと同様に、近傍のブロックからコピーされ、そうでない場合、LICフラグがCUに信号通知され、LICが適用されるか否かを示す。
【0130】
1つのピクチャに対してLICが有効化されるとき、1つのCUに対してLICが適用されるか否かを判定するために、追加のCUレベルRDチェックが必要である。CUのためにLICが有効化される場合、整数画素動き探索および小数画素動き探索のために、SADおよびSATDの代わりに、それぞれ、絶対差の平均除去和(MR-SAD)および絶対アダマール変換差の平均除去和(MR-SATD)が使用される。
【0131】
符号化の複雑性を低減するために、JEMにおいては、以下の符号化方式が適用される。
【0132】
現在の画像とその参照ピクチャとの間に明瞭な照度変化がない場合、LICはピクチャ全体に対して無効にされる。この状況を識別するために、エンコーダにおいて、現在のピクチャおよび現在のピクチャのすべての参照ピクチャのヒストグラムを計算する。現在のピクチャと現在のピクチャのすべての参照ピクチャとの間のヒストグラム差が所与の閾値よりも小さい場合、現在のピクチャに対してLICを無効化し、そうでない場合、現在のピクチャに対してLICを有効化する。
【0133】
2.2.6. アフィン動き補償予測
HEVCにおいて、動き補償予測(MCP)のために並進運動モデルのみが適用される。実際の世界ではあるが、動きには様々な種類があり、例えば、ズームイン/ズームアウト、回転、透視運動、および他の不規則な動きがある。JEMにおいて、簡易アフィン変換動き補償予測が適用される。
図20に示すように、ブロックのアフィン動きフィールドは、2つの制御点動きベクトルで表される。
【0134】
ブロックの動きベクトルフィールド(MVF)は、以下の式で表される。
【0135】
【0136】
6パラメータアフィンの場合、
【0137】
【0138】
(v0x、v0y)は、左上隅の制御点の動きベクトルであり、(v1x,v1y)は、右上隅の制御点の動きベクトルであり、(v2x,v2y)は、左下隅の制御点の動きベクトルであり、(x,y)は、現在のブロックにおける左上サンプルに対する代表点の座標を表す。VTMにおいて、代表点をサブブロックの中心位置とする。例えば、現在のブロックにおけるサブブロックの左上の角の左上のサンプルの座標が(xs,ys)である場合、代表点の座標を(xs+2,ys+2)とする。
【0139】
動き補償予測をさらに簡単にするために、サブブロックに基づくアフィン変換予測が適用される。サブブロックのサイズM×Nは、式2のように導出され、MvPreは、動きベクトルの端数精度(JEMでは、1/16)であり、(v2x,v2y)は、式(1)に従って算出された、左下制御点の動きベクトルである。
【0140】
【0141】
式(2)によって導出された後、MおよびNは、それぞれwおよびhの除数とするために、必要に応じて下方向に調整されるべきである。
【0142】
各M×N個のサブブロックの動きベクトルを導出するために、
図21に示すように、式(1)に基づいて、各サブブロックの中心サンプルの動きベクトルを計算し、1/16の端数精度に丸める。次に、本明細書の他の箇所で述べた動き補償補間フィルタを適用して、導出された動きベクトルを使用して各サブブロックの予測を生成する。
【0143】
MCPの後、各サブブロックの高精度動きベクトルを丸め、通常の動きベクトルと同じ精度で保存する。
【0144】
2.2.6.1. AF_INTERモード
JEMにおいて、2つのアフィン動きモード、AF_INTERモードおよびAF_MERGEモードがある。幅と高さの両方が8より大きいCUの場合、AF_INTERモードを適用することができる。AF_INTERモードが使用されるか否かを示すために、ビットストリームにおいてCUレベルのアフィンフラグが信号通知される。本モードにおいて、近傍のブロックを使用して動きベクトル対{(v
0,v
1)|v
0={v
A,v
B,v
C},v
1={v
D,v
E}}を有する候補リストを構築する。
図23に示すように、ブロックA、BまたはCの動きベクトルからv
0を選択し、近傍のブロックからの動きベクトルを、参照リストおよび近傍のブロックへの参照のPOCと、現在のCUへの参照のPOCと、現在のCUのPOCとの関係に基づいてスケーリングする。そして、近傍のブロックDおよびEからv
1を選択する方法は類似している。候補リストの数が2未満である場合、AMVP候補の各々を複製した動きベクトル対でリストを埋める。候補リストが2よりも大きい場合、まず、近傍の動きベクトルの整合性(対候補における2つの動きベクトルの類似性)に基づいて候補をソートし、最初の2つの候補のみを保持する。RDコストチェックを使用して、どの動きベクトル対候補を現在のCUの制御点動きベクトル予測(CPMVP)として選択するかを判定する。そして、候補リストにおけるCPMVPの位置を示すインデックスをビットストリームにおいて信号通知する。現在のアフィンCUのCPMVPを判定した後、アフィン動き推定を適用し、制御点動きベクトル(CPMV)を求める。次に、CPMVとCPMVPとの差をビットストリームにおいて信号通知する。
【0145】
AF_INTERモードにおいて、4/6パラメータアフィンモードが使用される場合、2/3個の制御点が必要であり、従って、
図22に示すように、これらの制御点のために2/3個のMVDを符号化することが必要である。MVを以下のように導出することが提案される。即ち、mvd
1およびmvd
2はmvd
0から予測する。
【0146】
【0147】
ここで、m
 ̄v
i
 ̄、mvd
i、mv
1は、それぞれ、
図22(b)に示すように、左上の画素(i=0)、右上の画素(i=1)、左下の画素(i=2)の予測動きベクトル、動きベクトルの差分、動きベクトルである。なお、2つの動きベクトル(例えば、mvA(xA、yA)およびmvB(xB、yB))の加算は、2つのモジュールを別個に合計したものに等しく、即ち、newMV=mvA+mvBであり、newMVの2つのモジュールをそれぞれ(xA+xB)および(yA+yB)に設定する。
【0148】
2.2.6.2. AF_MERGEモード
AF_MERGEモードでCUを適用する場合、CUは、有効な近傍の再構築ブロックから、アフィンモードで符号化された第1のブロックを得る。そして、候補ブロックの選択順は、
図24aに示すように、左、上、右上、左下、左上から左上へとなる。
図24bに示すように、左下隣のブロックAをアフィンモードで符号化すると、ブロックAを含むCUの左上隅、右上隅、左下隅の動きベクトルv
2、v
3、v
4が導出される。そして、v
2、v
3、v
4に基づいて、現在のCUにおける左上隅の動きベクトルv
0を算出する。次に、現在のCUの右上の動きベクトルv
1を算出する。
【0149】
現在のCU v0、v1のCPMVを導出した後、簡易アフィン動きモデル式(1)に基づいて、現在のCUのMVFを生成する。現在のCUがAF_MERGEモードで符号化されているか否かを識別するために、アフィンモードで符号化された近傍のブロックが少なくとも1つある場合、ビットストリーム内にアフィンフラグを信号通知する。
【0150】
アフィンマージ候補リストは、以下のステップを使用して構築される。
【0151】
継承されたアフィン候補を挿入する。
【0152】
継承されたアフィン候補は、その有効な近傍のアフィン符号化ブロックのアフィン動きモデルからその候補を導出することを意味する。共通ベースにおいて、
図25に示すように、候補位置の走査順序は、A1、B1、B0、A0、B2である。
【0153】
候補を導出した後、フルプルーニング処理を行い、同じ候補がリストに挿入されているかを確認する。同じ候補が存在する場合、導出された候補を廃棄する。
【0154】
構築されたアフィン候補を挿入する。
【0155】
アフィンマージ候補リストにおける候補の数がMaxNumAffineCand未満である(この寄与において5に設定される)場合、構築されたアフィン候補を候補リストに挿入する。構築されたアフィン候補は、各制御点の近傍の動き情報を組み合わせることで候補を構築することを意味する。
【0156】
まず、
図25に示される特定された空間的近傍および時間的近傍から、制御点の動き情報を導出する。CPk(k=1、2、3、4)は、k番目の制御点を表す。A0、A1、A2、B0、B1、B2、B3は、CPk(k=1、2、3)を予測するための空間的位置であり、Tは、CP4を予測するための時間的位置である。
【0157】
CP1、CP2、CP3、CP4の座標は、それぞれ、(0,0)、(W,0)、(H,0)、(W,H)であり、W、Hは、現在のブロックの幅および高さである。
【0158】
各制御点の動き情報は、以下の優先順位に従って取得される。
【0159】
CP1の場合、チェックの優先順位はB2->B3->A2である。利用可能であれば、B2を使用する。そうではなく、B2が利用可能である場合、B3が使用される。B2とB3の両方が利用不可能である場合、A2が使用される。3つの候補のすべてが利用不可能である場合、CP1の動き情報を取得することができない。
【0160】
CP2の場合、チェックの優先順位はB1->B0である。
【0161】
CP3の場合、チェックの優先順位はA1->A0である。
【0162】
CP4にはTを用いる。
【0163】
次に、アフィンマージ候補を構築するためにこれらの制御点の組み合わせを使用する。
【0164】
6パラメータアフィン候補を構築するためには、3つの制御点の動き情報が必要である。3つの制御点は、以下の4つの組み合わせ({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4})のうち1つを選択することができる。{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}の組み合わせを、左上、右上、左下の制御点で表される6パラメータ動きモデルに変換する。
【0165】
4パラメータアフィン候補を構築するためには、2つの制御点の動き情報が必要である。2つの制御点は、以下の6つの組み合わせ({CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4})のうち1つを選択することができる。{CP1,CP4},{CP2,CP3},{CP2,CP4},{CP1,CP3},{CP3,CP4}の組み合わせを、左上および右上の制御点で表される4パラメータ動きモデルに変換する。
【0166】
構築されたアフィン候補の組み合わせを以下の順に候補リストに挿入する。
【0167】
{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3},{CP2,CP3},{CP1,CP4},{CP2,CP4},{CP3,CP4}
【0168】
ある組み合わせの参照リストX(Xは0または1)に対して、制御点における使用率が最も高い参照インデックスをリストXの参照インデックスとして選択し、差分参照ピクチャに対する動きベクトルのポイントをスケーリングする。
【0169】
候補を導出した後、フルプルーニング処理を行い、同じ候補がリストに挿入されているかを確認する。同じ候補が存在する場合、導出された候補を廃棄する。
【0170】
動きベクトルがゼロのパディング。
【0171】
アフィンマージ候補リストにおける候補の数が5未満である場合、リストが一杯になるまで、参照インデックスがゼロのゼロ動きベクトルを候補リストに挿入する。
【0172】
2.2.7. 双方向オプティカルフロー
双方向オプティカルフロー(BIO)は、双予測のためにブロック単位の動き補償の上で実行されるサンプル単位の動きの微調整である。サンプルレベルの動きの微調整は、信号通知を使用しない。
【0173】
ブロックの動き補償の後、I(k)を基準k(k=0,1)からの輝度値、そして∂I(k)/∂xと∂I(k)/∂yを、それぞれ、I(k)勾配の水平および垂直方向成分とする。オプティカルフローが有効であると仮定すると、動きベクトルフィールド(vx,vy)は、次式で与えられる。
【0174】
【0175】
このオプティカルフロー方程式と各試料の動き軌跡のエルミート補間を組み合わせると、関数値I(k)と導関数∂I(k)/∂xと∂I(k)/∂yの両端に一致する唯一の3次多項式が得られる。t=0におけるこの多項式の値がBIO予測である。
【0176】
【0177】
τ
0およびτ
1は、
図26に示すように、基準フレームまでの距離を示す。距離τ
0およびτ
1は、Ref0およびRef1のPOCに基づいて以下のように計算される。τ
0=POC(現在)-POC(Ref0)、τ
1=POC(Ref1)-POC(現在)。両方の予測が同じ時間方向から来たものである場合(両方とも過去から来たものであるか、または両方とも将来から来たものである)、符号が異なっている(すなわちτ
0・τ
1<0)。この場合、BIOは、予測が同じ時間的瞬間に由来しない(即ち、τ
0≠τ
1)両方の参照領域が非ゼロ動き(MVx
0,MVy
0,MVx
1,MVy
1≠0)を有し、ブロック動きベクトルが時間距離(MVx
0/MVx
1=MVy
0/MVy
1=-τ
0/τ
1)に比例する場合にのみ適用される。
【0178】
動きベクトルフィールド(v
x,v
y)は、点Aと点B(
図9の動き軌跡と参照フレーム平面の交差)における値の差Δを最小にすることによって判定される。モデルは、Δに対してローカルテイラー展開の第1の線形項のみを使用する。
【0179】
【0180】
式(5)におけるすべての値は、サンプル位置(i’,j’)に依存し、これまでの表記から省略した。動きがローカル周辺エリアにおいて一貫していると仮定すると、現在の予測点(i,j)を中心とする(2M+1)×(2M+1)個の正方形窓の内側で、Δを最小限に抑える。Mは2に等しい。
【0181】
【0182】
この最適化問題に対して、JEMは、まず垂直方向に最小化し、次に水平方向に最小化する簡単なアプローチを使用する。その結果、
【0183】
【0184】
【0185】
【0186】
ゼロで割るかまたは非常に小さな値になることを回避するために、式(7)および式(8)に正則化パラメータrおよびmを導入する。
【0187】
【0188】
dは映像サンプルのビット深さである。
【0189】
BIOのメモリアクセスを通常の二重予測動き補償と同じにするために、すべての予測値と勾配値であるI
(k)、∂I
(k)/∂x、∂I
(k)/∂yは、現在のブロック内の位置について計算される。式(9)において、予測ブロックの境界における現在の予測点を中心とする(2M+1)×(2M+1)
2窓Ωは、(
図27(a)に示すように)外側の位置にアクセスする必要がある。JEMにおいて、ブロックの外側のI
(k)、∂I
(k)/∂x、∂I
(k)/∂yの値は、ブロックの内側の最も近い利用可能な値に等しくなるように設定される。例えば、これは、
図27(b)に示すように、パディングとして実装されてもよい。
【0190】
BIOを用いることで、サンプルごとに動きフィールドを微調整することができる。計算の複雑性を低減するために、JEMではブロックに基づくBIOの設計が用いられている。4×4ブロックに基づいて動きの微調整を計算する。ブロックに基づくBIOにおいて、4×4ブロックにおけるすべてのサンプルの、式(9)におけるsnの値を統合し、次いで、snの統合した値を使用して、4×4ブロックのためのBIO動きベクトルオフセットを導出する。具体的には、ブロックに基づくBIO導出には、以下の式が使用される。
【0191】
【0192】
bkは、予測ブロックのk番目の4×4のブロックに属するサンプルのセットを示す。式(7)および式(8)におけるsnを((sn,bk)>>4)に置き換え、関連する動きベクトルオフセットを導出する。
【0193】
場合によっては、BIOのMV管理は、雑音または不規則な動きのために信頼できない場合がある。従って、BIOにおいて、MVレジメンの大きさは閾値にクリップされる。閾値は、現在のピクチャの参照ピクチャがすべて一方向からのものであるか否かに基づいて判定される。現在の画像の参照ピクチャがすべて一方向からのものである場合、閾値の値は12×214-dに設定され、そうでない場合、12×213-dに設定される。
【0194】
HEVC動き補償処理(2D分離可能FIR)に整合的に演算を使用して、動き補償補間と同時にBIOの勾配を算出する。この2D分離可能FIRの入力は、ブロック動きベクトルの端数部分にしたがって、動き補償処理および端数位置(fracX、fracY)の場合と同じ参照フレームサンプルである。水平勾配∂I/∂x信号の場合、まず、デスケーリングシフトd-8によって、端数位置fracYに対応するBIOfilterSを使用して、垂直方向に補間し、次に、勾配フィルタBIOfilterGを、端数位置fracXに対応する水平方向に適用し、デスケーリングシフトを18-dだけ行う。垂直方向勾配∂I/∂yのとき、デスケーリングシフトd-8で端数位置fracYに対応するBIOfilterGを使用して垂直に第1の勾配フィルタを適用し、次に、BIOfilterSを使用して、端数位置fracXに対応する水平方向に18-dだけデスケーリングシフトさせて信号を移動させる。妥当な複雑性を保守するために、勾配計算BIOFilterGおよび信号変位BIOFilterFのための補間フィルタの長さを短く(例えば、6タップ)する。表3は、BIOにおけるブロック動きベクトルの異なる分数位置のための勾配計算に使用されるフィルタを示す。表4は、BIOにおける予測信号の生成に使用される補間フィルタを示す。
【0195】
【0196】
【0197】
JEMにおいて、2つの予測が異なる参照ピクチャからのものである場合、BIOをすべての双予測されたブロックに適用することができる。CUに対してLICが有効になっている場合、BIOは無効になる。
【0198】
JEMにおいて、OBMCは、通常のMC処理の後のブロックに適用される。計算の複雑性を低減するために、OBMC処理中にBIOを適用しない。つまり、BIOは、それ自身のMVを使用する場合、1つのブロックのMC処理において適用され、OBMC処理において近傍のブロックのMVを使用する場合、MC処理においては適用されない。
【0199】
2.2.8. デコーダ側動きベクトル微調整
双予測演算において、1つのブロック領域を予測するために、list0の動きベクトル(MV)およびlist1のMVをそれぞれ使用して構成される双予測されたブロックを組み合わせ、1つの予測信号を形成する。デコーダ側動きベクトル微調整(DMVR)方法において、バイラテラルテンプレートマッチング処理によって、双予測の2つの動きベクトルをさらに微調整する。追加の動き情報を送信することなく微調整されたMVを得るために、デコーダにおいてバイラテラルテンプレートマッチングを適用し、バイラテラルテンプレートと参照ピクチャにおける再構成サンプルとの間でひずみに基づく検索を行う。
【0200】
DMVRにおいて、
図28に示すように、list0の最初のMV0とlist1のMV1とから、それぞれ2つの予測ブロックの重み付け結合(すなわち、平均)としてバイラテラルテンプレートを生成する。テンプレートマッチング操作は、生成されたテンプレートと参照ピクチャにおけるサンプル領域(最初の予測ブロックの付近)との間のコスト尺度を計算することからなる。2つの参照ピクチャの各々について、テンプレートコストが最小となるMVを、そのリストの更新されたMVと見なし、元のMVに置き換える。JEMにおいて、各リストに対して9つのMV候補を検索する。9つのMV候補は、元のMVと、水平または垂直方向のいずれかまたは両方向に元のMVに対してオフセットしている1つの輝度サンプルを有する8つの周囲のMVを含む。最後に、2つの新しいMV、即ち、
図28に示すようなMV0’およびMV1’を使用して、最終的な双予測結果を生成する。絶対差の合計(SAD)をコスト尺度として使用する。なお、1つの周囲のMVによって生成された予測ブロックのコストを計算する場合、実際のMVの代わりに、丸められたMV(整数画素)を使用して予測ブロックを得る。
【0201】
DMVRは、追加の構文要素を送信することなく、過去の参照ピクチャからの1つのMVと、将来の参照ピクチャからの1つのMVとの間の双予測のマージモードに適用される。JEMにおいて、CUに対してLIC、アフィンの動き、FRUCまたはサブCUマージ候補が有効である場合、DMVRは適用されない。
【0202】
開示される技術に基づいたLUTに基づく動きベクトル予測は、既存のおよび将来の映像符号化規格の両方を向上させることができ様々な実装形態のために以下の例で解明される。LUTは、履歴データ(例えば、既に処理されたブロック)に基づいて符号化/復号化処理を行うことを可能にするため、LUTに基づく動きベクトル予測は、履歴に基づく動きベクトル予測(HMVP)法と呼ぶこともできる。LUTに基づく動きベクトル予測方法において、前述の符号化されたブロックからの動き情報を有する1つまたは複数のテーブルは、符号化/復号化処理時に保守される。LUTに記憶されたこれらの動き候補をHMVP候補と称する。1つのブロックの符号化/復号化の間、LUTにおける関連付けられた動き情報を動き候補リスト(例えば、マージ/AMVP候補リスト)に追加して、1つのブロックをエンコーディング/デコーディングした後に、LUTを使用してもよい。更新されたLUTは、その後、後続のブロックを符号化するために使用される。つまり、LUTにおける動き候補の更新は、ブロックの符号化/復号化の順に基づく。以下の実施例は、一般的な概念を説明するための例であると考えられるべきである。これらの例は狭い意味で解釈されるべきではない。さらに、これらの例は、任意の方法で組み合わせることができる。
【0203】
3. 実施形態が解決しようとする課題の例
三角形分割の設計において、1つのブロックを2つの分割に分割することができる。動き補償に起因するメモリ帯域幅を節約するために、2つの分割は単一予測されるべきであることが必要である。動き補償処理中、対角エッジに対して双予測が使用され、他のすべての部分に対して単一予測が使用される。各分割に対して双予測が許可される場合、対角エッジに位置するサンプルは、4つのMVを有し、そのうちの2つは1つの分割からのものであり、2つは別の分割からのものである。このような設計には、以下のような問題がある。
【0204】
マージリスト構築処理において、空間的に近傍のブロックおよび時間的に隣接するブロックのみをチェックする。
【0205】
三角形分割の場合、履歴に基づく動きベクトル予測技術は認められていない。
【0206】
ブロック内コピーモードにおいて、三角形分割モードをどのように扱うかは不明である。
【0207】
4. 実施形態の例
提案された技術は、任意の非正方形/非長方形の分割、例えばジオメトリ分割に適用されてもよい。以下の説明において、非正方形/非長方形分割モード(TPM)の一例として、「三角形分割モード」を使用する。なお、その他の分割であってもよい。
【0208】
以下の詳細な技術は、一般的な概念を説明するための例と見なされるべきである。これらの技術は狭い意味で解釈されるべきではない。さらに、これらの発明は、任意の方法で組み合わせることができる。ブロックのサイズをWxHとする。
1.常に三角形予測モードをマージモードに適用する代わりに、イントラ符号化ブロックまたは非マージインター符号化ブロックのために三角形予測モードを有効にすることが提案される。
a.一例において、2つの分割は、異なるイントラ予測モードで予測される。
b.代替的に、エッジ境界に沿ったサンプルの予測値をさらにフィルタリングしてもよい。
c.一例において、2つの三角形分割の動き情報(例えば、MV)は、互いに予測できない。
i.代替的に、一方の三角形分割の動き情報(例えば、MV)を使用して他方の分割を予測できる。
【0209】
2.1つのブロックを2つのジオメトリ分割に分割する場合、1つの分割をイントラモードで符号化し、他の分割をインターモードで符号化することができる。
a.一例において、インターコードされた分割のために、双予測もまた適用され得る。
b.一例において、このような方法は、現在のブロックがマージモードで符号化されている場合、すなわち、インター符号化された分割の場合、マージインデックスで通知される動き情報を信号通知することができる。
c.代替的に、エッジ境界に沿ったサンプルの予測値をさらにフィルタリングしてもよい。
d.一例において、イントラ予測モードのサブセットのみが適用され得る。
i.サブセットは、2つの分割で異なってもよい。
ii.サブセットは、分割の位置に依存してもよい。
iii.サブセットは、ブロックサイズおよび/またはブロック形状に依存してもよい。
【0210】
3.Bullet1およびBullet2に開示されるように、マージまたは非マージのインター符号化ブロックは、現在のピクチャを参照ピクチャとして使用することができる。
【0211】
4.1つのブロックを三角形分割モードで符号化する場合、非隣接空間的ブロックのインター/イントラ符号化された情報を、現在のブロックを符号化するための予測子として扱ってもよい。
a.一例において、非隣接空間的ブロックの動き情報を利用してもよい。
b.一例において、非隣接空間的ブロックのイントラ予測モードが利用してもよい。
c.代替的に、1つのブロックをTPMで符号化するために、時間的ブロックの符号化された情報をさらに利用してもよい。
【0212】
5.TPM符号化ブロックのマージリスト構築処理において、HMVP(履歴に基づく動きベクトル予測)候補を、前述の符号化されたブロックに継承されたまたは由来する動き情報とすることで、HMVP候補から導出された動き候補を加えることが提案されている。
<HMVP候補記憶装置のため表の保守>
a.HMVP候補の保守および/または記憶および/またはHMVP候補の表の更新は、通常の動きベクトルのHMVPと同じであってもよい。
b.一例において、同じ表が、非TPM符号化ブロックおよびTPM符号化ブロックの両方に利用され得るHMVP候補記憶装置のために保守され得る。
i.一例において、TPMによって使用される動き情報は、HMVP記憶装置に入れられない。TPM符号化ブロックを符号化/復号化した後、HMVP表は更新されない。
【0213】
c.一例において、TPM符号化ブロックを符号化するためのHMVP候補を記憶するように、別個の表を保守してもよい。
i.純粋にTPM符号化ブロックからの動き情報を使用して、HMVP候補記憶装置のための表を保守してもよい。
ii.2つの表を保守して、それぞれ単一および双予測されたHMVP候補を記憶することができる。
iii.第1および第2の分割の動き情報をそれぞれ記憶するように、2つの表を保守してもよい。
iv.2つの表を保守し、List0およびList1の動き情報の動き情報をそれぞれ記憶することができる。
v.代替的に、List0から単一予測を、L1から単一予測を、双予測されたHMVP候補をそれぞれ記憶するように、3つの表を保守してもよい。
【0214】
d.TPM符号化ブロックで符号化した後、HMVP候補記憶装置のための表を更新しなくてもよい。
i.代替的に、第1の分割の動き情報によって、HMVP候補記憶装置用の表を1つ/複数個更新してもよい。
ii.代替的に、第2の分割の動き情報によって、HMVP候補記憶装置用の1つ/複数の表を更新してもよい。
iii代替的に、2つのHMVP候補を加えることで、両方の分割からの動き情報でHMVP候補記憶装置用の1つ/複数の表を更新してもよい。
iv.代替的に、HMVP候補を1つ加えることで(例えば、2つの参照ピクチャリストから2つの分割を予測する場合)、両方の分割からの動き情報でHMVP候補記憶装置用の1つ/複数の表を更新してもよい。
v.1つまたは2つの動き候補をHMVP表に加えるか否かは、2つの分割が同じ参照ピクチャリストおよび/または同じ参照ピクチャから予測されたものであるか否かに依存し得る。
vi.第1の分割または第2の分割の動き情報をHMVP表に加えるか否かは、参照ピクチャと現在のピクチャとの間のPOCの差によって決まる。
【0215】
e.TPM符号化ブロックと非TPM符号化ブロックとを符号化するために別個の表を保持する場合、1つのブロックのモードに基づいて表の更新を呼び出すことができる。
i.例において、TPM符号化ブロックを復号化した後、TPM符号化ブロックを符号化するための表を更新するために、この動き情報を使用してもよい。
ii.一例において、非TPM符号化ブロックを復号化した後、この動き情報を使用して、非TPM符号化ブロックを符号化するための表を更新してもよい。
iii.代替的に、非TPM符号化ブロックを復号化した後、TPM符号化ブロック用表を更新するためにこの動き情報を使用してもよい。
【0216】
<TPM符号化ブロックにおけるHMVP候補の使用>
f.HMVP候補は、TPM符号化ブロックのマージリストに直接加えてもよい。
i.代替的に、1つのHMVP候補を利用して2つの動き候補を導出することができ、例えば、1つはList0動き情報による単一予測であり、他方はHMVP候補のList1動き情報による単一予測である。
ii.空間的ブロックまたは時間的ブロックから導出された/継承された他の動き候補とともに、HMVP候補から導出された/継承された動き候補を挿入する場合、プルーニングを適用してもよい。
iii.HMVP候補から導出された/継承された動き候補と、他のHMVP候補から導出された/継承された動き候補とを挿入する場合、プルーニングを適用してもよい。
iv.HMVP候補から導出された/継承された動き候補と、同じHMVP候補から導出された/継承された別の動き候補とを挿入する場合、プルーニングを適用してもよい。
【0217】
g.一例において、1つまたは複数のHMVP候補から導出された1つまたは複数の動き候補は、
図14のブロック1~7のような空間的および/または時間的ブロックから導出された動き候補の後に加えてもよい。この場合、HMVP候補は、他の空間的/時間的マージ候補と同様に扱われる。
【0218】
h.HMVP候補から継承された/導出された動き候補は、空間的/時間的ブロックの動き情報に依存するマージリスト構築処理における特定のステップの直後または前に、マージリストに加えてもよい。
i.代替的に、いくつかの予め規定されたステップの直後または前に、HMVP候補から継承され/導出された動き候補をマージリストに加えてもよい。
ii.一例において、現在の設計を有する元来単一予測候補の直後に、単一予測を有する1つまたは複数のHMVP候補を加えてもよい。
iii.一例において、L0または双予測からの単一予測を有する1つまたは複数のHMVP候補は、全ての短縮されたList0予測候補の直後に加えてもよい。代替的に、HMVP候補が双予測を有する場合、List0動き情報のみを保持してもよい。
iv.一例において、L1または双予測からの単一予測を有する1つまたは複数のHMVP候補は、全ての短縮されたList1-予測候補の直後に加えてもよい。代替的に、HMVP候補が双予測を有する場合、List1の動き情報のみを保持してもよい。
v.一例において、List0またはList1の動き候補からのすべての平均化された単一予測の直後に、1つまたは複数のHMVP候補を加えてもよい。
vi.一例において、List0またはList1の動き候補からのすべての平均化された単一予測の直前に、1つまたは複数のHMVP候補を加えてもよい。
【0219】
i.HMVP候補から継承された/導出された動き候補を、空間的/時間的ブロックの動き情報から継承した/導出した動き候補とインターリーブ方式でマージリストに加えてもよい。
j.一例において、各HMVP候補のList0およびList1から導出された動き候補を、他のHMVP候補のList0およびList1から導出された動き候補の前に順に加えてもよい。
k.一例において、第1のHMVP候補セットのList0から導出された動き候補を、第2のHMVP候補セットのList1から導出された動き候補の前に順に加えてもよい。
i.一例において、第1のセットおよび第2のセットは、同じセットであり、即ち、全ての利用可能なHMVP候補である。
ii.代替的に、第1のセットと第2のセットが異なってもよく、例えば、第1のHMVP候補セットは、List0からの単一予測を伴うHMVP候補および双予測を含み、一方で、第2のHMVP候補セットは、List1からの単一予測を伴うHMVP候補および双予測を含む。
iii.第1のセットおよび第2のセットに関連付けられるHMVP候補の数は異なってもよい。
l.listLXのHMVP候補は、まずリストL(1-X)にスケーリングされ、次にリストL(1-X)に用いられてもよい。
i.スケーリングされた候補は、他のすべての候補の後に挿入されてもよい。
ii.スケーリングされた候補は、時間的候補を除く他のすべての候補の後に挿入されてもよい。
m.TPMマージリストに追加される動き候補を導出するためのHMVP候補のチェック順序は、HMVP候補のインデックスに依存してもよい。
i.代替的に、予測方向に依存してもよい。
ii.代替的に、それは動き情報に依存してもよい。
【0220】
6.TPMマージリスト構築処理におけるチェック対象のHMVPの数は、予め規定されてもよく、例えば、5である。
a.PMマージリスト構築処理におけるチェック対象のHMVP候補の数は、ブロックサイズ/ブロック形状/HMVP候補をチェックする前に利用可能な候補の数に依存し得る。
b.TPMマージリスト構築処理におけるチェック対象のHMVP候補の数は、SPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/CTU行/CTU/CTUグループで信号通知してもよい。
c.TPMマージリスト構築処理において、利用可能なHMVP候補の一部がチェック対象の場合、HMVP候補の選択は、候補の参照ピクチャと現在のピクチャの予測方向/MV情報/参照ピクチャインデックス/POC距離および/または候補インデックスに依存してもよい。
【0221】
7.TPM符号化ブロックに対してHMVPを適用するか否か、およびどのように適用するかは、ブロックサイズ(例えば、幅および/または高さ、幅と高さの比)またはブロック形状(例えば、正方形または非正方形)に依存し得る。
【0222】
8.提案された方法は、ジオメトリ分割のための他の種類の動き候補リスト(例えば、AMVPリスト)にも適用可能である。
【0223】
9.HMVP表のサイズ(即ち、最大数の履歴動き候補を記憶してもよい)は、1つまたは複数の動き候補リストサイズの関数に依存してもよい。
a.一例において、HMVP表のサイズは、通常のマージリストサイズ、TPMマージリストサイズ、IBCマージリストサイズ、通常のAMVP間リストサイズ、通常のIBC間リストサイズ等に依存してもよい。
b.一例において、HMVP表のサイズは、同じHMVP表にアクセスする動き候補リストに依存してもよい。
c.一例において、この関数は、複数の入力のうち最大値を返す関数Max(inputs)であってもよい。
d.一例において、HMVP表サイズは、Max(通常のマージリストサイズ―K0、TPMマージリストサイズ―K1、IBCマージリストサイズ―K2)として定義されてもよい。
i.一例において、K0=K1=K2=1である。
【0224】
10.HMVP表のサイズ(即ち、履歴動き候補の最大数を記憶することができる)は、動き候補リストに追加されることができる1つまたは複数のHMVP候補数(numHMVPで表す)の関数に依存してもよい。
a.一例において、それは、動き候補リストに追加され得るHMVP候補の数に依存してもよい(例えば、通常のマージリスト、TPMマージリスト、IBCマージリスト、通常のAMVP間リスト、通常のIBC間リスト等)。
b.一例において、この関数は、複数の入力のうち最大値を返す関数Max(inputs)であってもよい。
c.一例において、HMVP表のサイズは、Max(通常のマージリスト-K0についてはnumHMVP、通常のAMVPリストの―K1についてはnumHMVP)として定義されてもよい。
ii.一例において、K0=1であり、K1=0である。
d.一例において、HMVP表のサイズは、Max(通常のマージリスト-K0についてはnumHMVP、TPMマージリスト-K1についてはnumHMVP、IBCマージリストサイズ-K2についてはnumHMVP)として定義されてもよい。
iii.一例において、K0=K1=K2=1である。
【0225】
11.1つの符号化モードにおけるHMVP表のサイズは、他の符号化モードと異なってもよく、動き候補リストサイズに依存してもよい。
a.一例において、通常のマージリストおよびTPMマージリストのためのHMVP表のサイズは、通常のマージリストサイズに依存してもよい。
iv.一例において、HMVP表のサイズは、通常のマージリストサイズ-K0に等しくても、例えば、K0=1でもよい。
b.一例において、通常のマージリストおよびTPMマージリストのHMVP表サイズは、通常のマージリストサイズおよびTPMマージリストサイズに依存してもよい。
v.一例において、それは、Max(通常のマージリストサイズ-K0、TPMマージリストサイズ-K1)として定義されてもよい。
vi.一例において、通常のAMVP間のHVMP表は、通常のマージおよびTPMマージリストに使用されるものに従う。
c.一例において、IBC符号化ブロックのHMVP表サイズは、通常のマージリストおよび/またはTPMマージリストのHMVP表サイズに依存する。
vii.例えば、IBC符号化ブロックのHMVP表のサイズは、通常のマージリストおよび/またはTPMマージリストのHMVP表のサイズと等しい。
viii.代替的に、IBC符号化されたマージ/AVMPブロックのためのHMVP表のサイズは、IBCマージ/AMVP候補リストサイズに依存してもよい。
d.HMVP表サイズの表示は、ビットストリームにおいて信号通知されてもよい。
ix.信号通知されたサイズが0である場合、どの動き候補リストにもHMVP候補を挿入しない。
x.一例において、HMVP表サイズは、0であってはならない。
xi.代替的に、HMVP表のサイズ-K0、例えば、K0=1が信号通知される。
【0226】
12.動き候補リストに追加され得る許可されたHMVP候補の数の表示は、ビットストリームにおいて信号通知されてもよい。
a.一例において、各モード(例えば、IBCまたは非IBC;AMVPをマージしない)において、許可されたHMVP候補の数の表示は、独立して信号通知されてもよい。
b.代替的に、許可されたHMVP候補の数の表示は、予測方式で信号通知されてもよい。
c.代替的に、HMVP表のサイズは、HMVP候補の許容数に依存してもよい。
d.例えば、動き候補リストに追加され得る許容HMVP候補の数は、0であってはならない。
e.代替的に、動き候補リストに追加され得る許可されたHMVP候補の数-K0、例えば、K0=1を信号通知してもよい。
f.代替的に、動き候補リスト(numHMVPで示す)に加えることができる許容HMVP候補の数と、動き候補リストにおける最大動き候補の数(numMotionListで示す)の予測符号化を適用してもよい。
xii.一例において、numMotionListとnumHMVPとの間の差は、符号化してもよい。
xiii.一例において、(numMotionList-K0)とnumHMVPとの間の差は、例えば、K0=1に符号化されてもよい。
【0227】
13.動き候補リストに追加されることができる許可されたHMVP候補の数は、動き候補リストサイズに依存してもよい。
a.一例において、対応する動き候補リストサイズ、例えば、(リストサイズ-K0)、例えば、K0=0または1から導出されてもよい。
b.一例において、それは、動き候補リストが使用する対応するHMVP表のサイズ、例えば(表サイズ-K0)、例えばK0=0または1から導出されてもよい。
【0228】
14.適合ビットストリームは、動き候補リストに追加され得る許容HMVP候補の数が、動き候補リストにおける最大動き候補の数よりも大きくならないことを満足するものとする。
a.代替的に、適合ビットストリームは、動き候補リストに追加され得る許容HMVP候補の数が、(動き候補リストにおける最大動き候補の数からK0を減算したもの)よりも大きくない、例えば、K0=1であることを満足するものとする。
【0229】
図29は、映像処理装置2900のブロック図である。本明細書に記載の方法の1つ以上を実装するために、装置2900を使用してもよい。装置2900は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置2900は、1つ以上の処理装置2902と、1つまたは複数のメモリ2904と、映像処理ハードウェア2906と、を含んでもよい。処理装置2902は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)2904は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア2906は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0230】
図31は、映像を処理する方法3100のフローチャートである。方法3100は、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかを判定すること(3105)と、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定に基づいて、第1の映像ブロックのための第1の予測部分および第2の予測部分を判定することであって、第1の予測部分または第2の予測部分の一方または両方が第1の映像ブロックの非長方形且つ非正方形部分である、判定すること(3110)と、第1の予測部分および第2の予測部分を使用して、第1の映像ブロックに対して更なる処理を行うこと(3115)と、を含む。
【0231】
図32は、映像を処理する方法3200のフローチャートである。方法3200は、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定を行うこと(3205)と、第1の映像ブロックのための第1の予測部分および第2の予測部分を判定することであって、第1の予測部分または第2の予測部分のうちの一方または両方が第1の映像ブロックの非長方形且つ非正方形部分である、判定すること(3210)と、第1の予測部分および第2の予測部分を使用して第1の映像ブロックをさらに処理することであって、少なくとも1つの予測部分は、参照画像として現在の画像を使用してマージまたは非マージインター符号化される、処理すること(3215)と、を含む。
【0232】
図33は、映像を処理する方法3300のフローチャートである。方法3300は、第1の映像ブロックがイントラ符号化されているかまたは非マージインター符号化されているかの判定を行うこと(3305)と、第1の映像ブロックのための第1の予測部分および第2の予測部分を判定することであって、第1の予測部分または第2の予測部分の一方または両方が第1の映像ブロックの非長方形且つ非正方形部分である、判定すること(3310)と、第1の予測部分および第2の予測部分を使用して第1の映像ブロックをさらに処理することであって、第1の予測部分および第2の予測部分を使用して第1の映像ブロックをさらに処理することは、第1の映像ブロックに関連する非隣接空間的ブロックのインターまたはイントラ符号化された情報に基づく、処理すること(3315)と、を含む。
【0233】
図34は、映像を処理する方法3400のフローチャートである。方法3400は、第1の映像ブロックの三角形予測部分を使用して第1の映像ブロックを三角形部分モード(TPM)で符号化されていることと、第2の映像ブロックの非三角形予測部分を使用して第2の映像ブロックを、非TPMを使用して符号化されていることとの判定を行うこと(3405)と、記憶されたHMVP候補を使用して第1の映像ブロックおよび第2の映像ブロックをさらに処理すること(3410)と、第1の映像ブロックおよび第2の映像ブロックに関連付けられたHMVP候補を記憶する(3415)ことと、を含む。
【0234】
図35は、映像を処理する方法3500のフローチャートである。方法3500は、第1の映像ブロックが、第1の映像ブロックの非長方形且つ非正方形部分である予測部分を含む判定を行うこと(3505)と、HMVP候補を特定すること(3510)と、HMVP候補から導出された1つ以上の動き候補を、非長方形且つ非正方形である予測部分を含む映像ブロックに関連付けられたマージリストに加えること(3515)と、このマージリストを使用して第1の映像ブロックをさらに処理すること(3520)と、を含む。
【0235】
方法3100、3200、3300、3400および3500を参照すると、符号化の候補を判定することおよびそれらの使用のいくつかの例が、本明細書の第4章に記載されている。例えば、第4章で説明したように、非正方形かつ非長方形の予測部分を使用して映像ブロックを処理することができる。
【0236】
方法3100、3200、3300、3400、3500を参照すると、1つの映像ブロックは、1つの映像ビットストリームにおいて符号化されてもよく、1つのビットストリームにおけるビット効率は、1つの動き情報予測に関する1つのビットストリーム生成規則を使用することによって達成してもよい。
【0237】
この方法は、第1のイントラ予測モードを使用して第1の予測部分の画像情報を判定することと、第2のイントラ予測モードを使用して第2の予測部分ドの画像情報を判定することとを含むことができ、第1のイントラ予測モードは、第2のイントラ予測モードと異なる。
【0238】
この方法は、第1の予測部分と第2の予測部分との間のエッジ境界に沿って、第1の予測部分および第2の予測部分に関連する予測値をフィルタリングすることを含むことができる。
【0239】
この方法は、処理装置によって、第1の予測部分の第1の動き情報を判定することと、処理装置によって、第2の予測部分の第2の動き情報を判定することと、第2の動き情報を使用せずに第1の動き情報を判定し、第1の動き情報を使用せずに第2の動き情報を判定することと、を含むことができる。
【0240】
この方法は、処理装置によって、第1の予測部分の第1の動き情報を判定することと、処理装置によって、第2の予測部分の第2の動き情報を判定することであって、第2の動き情報は、第1の動き情報を使用して判定される、判定することを含むことができる。
【0241】
この方法は、第1の予測部分をイントラモード符号化で処理することと、第2の予測部分をインターモード符号化で処理することと、を含むことができる。
【0242】
この方法は、第2の予測部分を処理することが、双予測を適用することを含むことができる。
【0243】
この方法は、第2の予測部分を処理することが、マージインデックスとともに信号通知される動き情報を判定することを含むことができる。
【0244】
この方法は、第1の予測部分と第2の予測部分との間のエッジ境界に沿って、第1の予測部分および第2の予測部分に関連する予測値をフィルタリングすることを含むことができる。
【0245】
この方法は、イントラモード符号化のサブセットを使用することを含むことができる。
【0246】
この方法は、第1の予測部分および第2の予測部分がイントラモード符号化の異なるサブセットに関連付けられることを含むことができる。
【0247】
この方法は、第1の予測部分と第2の予測部分との位置に基づいて、第1の予測部分と第2の予測部分とをイントラモード符号化の異なるサブセットに関連付けることを含むことができる。
【0248】
この方法は、第1の映像ブロックのサイズまたは第1の映像ブロックの形状のうちの1つ以上に基づいて、第1の予測部分および第2の予測部分が異なるイントラモード符号化のサブセットに関連付けられることを含むことができる。
【0249】
この方法は、非隣接空間的映像ブロックのインター符号化された情報またはイントラ符号化された情報が、この非隣接空間的映像ブロックの動き情報を含むことを含むことができる。
【0250】
この方法は、非隣接空間的映像ブロックのイントラ予測モードを使用することを含むことができる。
【0251】
この方法は、時間的ブロックの符号化された情報を使用することを含むことができる。
【0252】
この方法は、動きベクトル予測候補リストにおいて、前述の符号化された映像ブロックに基づく動き情報を含む履歴に基づく動きベクトル予測(HMVP)候補を加えることと、であって、HMVP候補は、前述の符号化された映像ブロックに基づいた動き情報を含む、加えることと、HMVP候補に基づいて第1の映像ブロックを復号化することと、を含むことができる。
【0253】
この方法は、HMVP候補を表に記憶し、TPMが使用する動き情報をこの表に記憶しないことを含むことができる。
【0254】
この方法は、TPMを使用して第1の映像ブロックを符号化または復号化した後、表を更新しないことを含むことができる。
【0255】
この方法は、HMVP候補は、第1の表および第2の表に記憶され、第1の表は、TPMのHMVP候補を記憶し、第2の表は、非TPMのHMVP候補を記憶することを含むことができる。
【0256】
この方法は、第1の表または第2の表のうちの一方に単予測HMVP候補を記憶し、他方に双予測されたHMVP候補を記憶することを含むことができる。
【0257】
この方法は、第1の表または第2の表のうちの一方が第1の分割部分の動き情報を記憶し、他方が第2の分割部分の動き情報を記憶することを含むことができる。
【0258】
この方法は、第1の表または第2の表の一方がList0の動き情報を記憶し、他方がList1の動き情報を記憶することを含むことができる。
【0259】
この方法は、第1の表がList0からの単一予測HMVP候補を記憶し、第2の表がList1からの単一予測HMVP候補を記憶し、第3の表が双予測されたHMVP候補を記憶することを含むことができる。
【0260】
この方法は、第1の映像ブロックの非長方形且つ非正方形の幾何学的形状部分である第1の予測部分または第2の予測部分一方または両方に基づいて、HMVP候補記憶装置用の表を更新しないことを含むことができる。
【0261】
この方法は、第1の分割部分の動き情報を使用して、HMVP候補記憶装置用の第1の表または第2の表のうちの1つ以上を更新することを含むことができる。
【0262】
この方法は、第1の表または第2のHMVP候補記憶装置用の表のうちの1つ以上を、第2の分割部分の動き情報で更新することを含むことができる。
【0263】
この方法は、第1の分割部分の動き情報および第2の分割部分の動き情報で、HMVP候補記憶装置用の第1の表または第2の表のうちの1つ以上を更新することを含むことができる。
【0264】
この方法は、2つの参照ピクチャリストから第1の分割部分および第2の分割部分が予測されていると判定することと、2つの参照ピクチャリストから第1の分割部分および第2の分割部分が予測されていると判定されることに基づいて、1つのHMVP候補の動き情報を使用して、HMVP候補記憶装置用の1つ以上の表を更新することとを含むことができる。
【0265】
この方法は、同じ参照ピクチャリストまたは同じ参照ピクチャを使用して第1の分割部分および第2の分割部分を予測することを判定することを含むことができ、第1の分割部分と第2の分割部分とが同じ参照ピクチャリストまたは同じ参照ピクチャを使用して予測されているとの判定に基づいて表を更新する。
【0266】
この方法は、参照ピクチャと現在の画像との間のピクチャオーダカウント(POC)差を判定することを含むことができ、第1の分割部分または第2の分割部分の動き情報を、POC差に基づいて1つ以上の表に加える。
【0267】
この方法は、第1の映像ブロックの符号化に関する特徴を判定することと、第1の映像ブロックの符号化に関する特徴に基づいて、第1の表または第2の表の一方または両方を更新することと、を含むことができる。
【0268】
この方法は、TPM映像ブロックを復号化した後、TPM映像ブロックに関連付けられた表を更新するために動き情報を使用することを含むことができる。
【0269】
この方法は、非TPM映像ブロックを復号化した後、非TPM映像ブロックに関連付けられた表を更新するために動き情報を使用することを含むことができる。
【0270】
この方法は、非TPM映像ブロックを復号化した後、TPM映像ブロックに関連付けられた表を更新するために動き情報を使用することを含むことができる。
【0271】
この方法は、HMVP候補から、第1の動き候補および第2の動き候補を判定することを含むことができ、第1のマージ候補または第2のマージ候補のうちの一方は、HMVP候補のList0動き情報で単一予測され、他方は、HMVP候補のList1動き情報で単一予測される。
【0272】
この方法は、HMVP候補から導出された動き候補と、空間的または時間的映像ブロックに基づく他の動き候補とを挿入することに基づいてプルーニングすることを含むことができる。
【0273】
この方法は、HMVP候補から導出された動き候補と、他のHMVP候補に基づく他の動き候補とを挿入することに基づいてプルーニングすることを含むことができる。
【0274】
この方法は、HMVP候補から導出された動き候補と、HMVP候補に基づく他の動き候補とを挿入することに基づいてプルーニングすることを含むことができる。
【0275】
この方法は、マージリストの、空間的または時間的映像ブロックの一方または両方から導出された動き候補の後に、第1の映像ブロックに関連付けられたHMVP候補から導出された動き候補を加えることを含むことができる。
【0276】
この方法は、空間的または時間的映像ブロックの動き情報に基づいて、マージリスト構築処理の後または前に、HMVP候補から導出された動き候補をマージリストに加えることを含むことができる。
【0277】
この方法は、予め規定されたステップの後または前に、HMVP候補から導出された動き候補をマージリストに加えることを含むことができる。
【0278】
この方法は、HMVP候補から導出された動き候補と単一予測とを、他の元々の単一予測候補の後に加えることを含むことができる。
【0279】
この方法は、HMVP候補から導出された動き候補に、List0からの単一予測または短縮されたList0の予測後の双予測を加えることを含むことができる。
【0280】
この方法は、List1からの単一予測または切り捨てられたList1の予測された候補の後の双予測を使用して、HMVP候補から導出された動き候補を加えることを含むことができる。
【0281】
この方法は、List0またはList1の動き候補から平均化された単一予測の後に、HMVP候補から導出された動き候補を加えることを含むことができる。
【0282】
この方法は、List0またはList1の動き候補から平均化された単一予測の前に、HMVP候補から導出された動き候補を加えることを含むことができる。
【0283】
この方法は、第1の映像ブロックに対する空間的または時間的映像ブロックの動き情報に基づく動き候補と交互配置することにしたがって、HMVP候補から導出された動き候補をマージリストに加えることを含むことができる。
【0284】
この方法は、HMVP候補のList0およびList1から導出された動き候補を、別のHMVP候補のList0およびList1から導出された動き候補の前に順に加えることを含むことができる。
【0285】
本方法は、本明細書では、第2のHMVP候補の集まりのList1から導出された動き候補を抽出する前に、第1のHMVP候補の集まりのList0から導出された動き候補を順に加えることを含むことができる。
【0286】
この方法は、第1のセットと第2のセットが同じであり、第1のセットと第2のセットがすべての利用可能なHMVP候補を含むことを含むことができる。
【0287】
本方法は、第1のセットと第2のセットとが異なり、第1のセットは、List0からの単一予測を伴うHMVP候補および双予測を含み、第2のセットは、List1からの単一予測を伴うHMVP候補および双予測を含むことを含むことができる。
【0288】
この方法は、第1のセットが第1の数のHMVP候補を含み、第2のセットが第2の数のHMVP候補を含み、第1の数と第2の数が異なることを含むことができる。
【0289】
この方法は、listLXの動きベクトルをlistL(1-X)にスケーリングすることで、HMVP候補からスケーリングされた動き候補を導出してもよく、スケーリングされた動き候補には、スケーリングされた動きベクトルおよびlistL(1-X)が割り当てられることを含むことができる。
【0290】
この方法は、HMVP候補から導出された他の動き候補の後に、HMVP候補から導出されたスケーリングされた動き候補を挿入することを含むことができる。
【0291】
この方法は、HMVP候補から導出されたスケーリングされた動き候補を時間的候補の前に挿入することを含むことができる。
【0292】
この方法は、マージリストに追加されるHMVP候補のチェック順序は、HMVP候補のインデックスに基づくことを含むことができる。
【0293】
この方法は、予測方向に基づいて、マージリストに追加されるHMVP候補のチェック順序を判定することを含むことができる。
【0294】
本方法は、動き情報に基づいて、マージリストに追加されるHMVP候補のチェック順序を判定することを含むことができる。
【0295】
この方法は、TPMマージリスト構築処理においてチェック対象のHMVP候補の数を予め規定することを含むことができる。
【0296】
本方法は、TPMマージリスト構築処理におけるチェック対象のHMVP候補の数は、第1の映像ブロックのブロックサイズ、第1の映像ブロックのブロック形状、またはHMVP候補のチェック前に利用可能な候補の数に基づくことを含むことができる。
【0297】
この方法は、TPMマージリスト構築処理においてチェック対象のHMVP候補の数を、映像パラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルグループヘッダ、スライスヘッダ、符号化ツリーユニットの行のグループ(CTU)、CTU、またはCTUのグループにおいて信号通知することを含むことができる。
【0298】
この方法は、HMVP候補の選択が、予測方向、動きベクトル(MV)情報、参照ピクチャインデックス、候補のうちの一方または両方の参照ピクチャと現在のピクチャとのPOC距離、または候補インデックスに基づくことを含むことができる。
【0299】
この方法は、第1の映像ブロックに関連するHMVPの適用が、第1の映像ブロックのブロックサイズまたは第1の映像ブロックのブロック形状に基づくことを含むことができる。
【0300】
この方法は、非長方形且つ非正方形部分が三角形であることを含むことができる。
【0301】
開示された技術は、圧縮されている符号化ユニットが、従来の正方形のブロックまたは半正方形の長方形のブロックとは大きく異なる形状を有する場合、圧縮効率を向上させるために、ビデオエンコーダまたはデコーダに実施されてもよいことは理解できよう。例えば、4×32または32×4サイズのユニットのような長いまたは背の高い符号化ユニットを使用する新しい符号化ツールは、開示された技術から恩恵を受けることができる。
【0302】
図36は、映像を処理する方法3600のフローチャートである。方法3600は、現在の視覚メディアデータのブロックと視覚メディアデータの対応する符号化表現との間での変換中に、現在のブロックの複数のサブ部分を判定すること(3605)と、複数のサブ部分のイントラ予測情報を判定すること(3610)と、複数のサブ部分のイントラ予測情報を使用して現在のブロックの変換を行うこと(3615)とを含み、現在のブロックは、イントラ符号化され、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形のサブ部分である。なお、このサブ部分は、上の予測部分に相当することができる。
【0303】
いくつかの実装形態において、方法3600に対して追加の修正を行ってもよい。例えば、複数のサブ部分のイントラ予測情報を判定することは、第1のイントラ予測モードを使用して、複数のサブ部分における第1のサブ部分の第1のイントラ予測情報を判定することと、第2のイントラ予測モードを使用して、複数のサブ部分における第2のサブ部分の第2のイントラ予測情報を判定することと、を含み、第1のイントラ予測モードは、第2のイントラ予測モードとは異なる。第1のイントラ予測情報は、イントラ予測モードの第1のサブセットを使用して判定され、第2のイントラ予測情報は、イントラ予測モードの第2のサブセットを使用して判定され、イントラ予測モードの第1のサブセットは、イントラ予測モードの第2のサブセットとは異なる。イントラ予測モードのサブセットは、第1のサブ部分および/または第2のサブ部分の位置、サイズ、および形状のうちの少なくとも1つに基づく。複数のサブ部分のイントラ予測情報を判定することは、複数のサブ部分のうちの少なくとも1つのサブ部分のエッジ境界に沿ってサンプルの予測値をフィルタリングすることをさらに含む。複数のサブ部分の第2のサブ部分の第2のイントラ予測情報を使用せずに、複数のサブ部分の第1のサブ部分の第1のイントラ予測情報を判定し、第1のサブ部分の第1のイントラ予測情報を使用せずに、第2のサブ部分の第2のイントラ予測情報を判定する。複数のサブ部分の第1のサブ部分の第1のイントラ予測情報は、複数のサブ部分の第2のサブ部分の第2のイントラ予測情報を使用して判定され、且つ/または第2のサブ部分の第2のイントラ予測情報は、第1のサブ部分の第1のイントラ予測情報を使用して判定される。
【0304】
図37は、映像を処理する方法3700のフローチャートである。方法3700は、視覚メディアデータの現在のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、現在のブロックのために複数のサブ部分を判定すること(3705)と、複数のサブ部分の動き情報を判定すること(3710と)、複数のサブ部分の動き情報を使用して現在のブロックの変換を行うこと(3715)と、を含み、現在のブロックは、インター符号化され、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形のサブ部分である。
【0305】
いくつかの実装形態において、方法3700に対して追加の修正を行ってもよい。例えば、複数のサブ部分の動き情報を判定することは、第1のイントラ予測モードを使用して、複数のサブ部分における第1のサブ部分の第1の動き情報を判定することと、第2のイントラ予測モードを使用して、複数のサブ部分における第2のサブ部分の第2の動き情報を判定することと、を含む。複数のサブ部分のイントラ予測を判定することは、複数のサブ部分のうちの少なくとも1つのサブ部分のエッジ境界に沿ってサンプルの予測値をフィルタリングすることをさらに含む。第2のサブ部分の第2の動き情報を使用せずに、第1のサブ部分の第1の動き情報を判定し、第1のサブ部分の第1の動き情報を使用せずに、第2のサブ部分の第2の動き情報を判定する。第2の予測の第2の動き情報を使用して、第1のサブ部分の第1の動き情報を判定し、且つ/または第1のサブ部分の第1の動き情報を使用して第2のサブ部分の第2の動き情報を判定する。
【0306】
図38は、映像を処理する方法3800のフローチャートである。方法3800は、視覚メディアデータの現在のブロックと、前記視覚メディアデータの対応する符号化表現との間で変換を行うこと(3805)であって、現在のブロックは、第1のサブ部分が非長方形且つ非正方形の形状を有する分割パターンにしたがって複数の階部分に分割される、変換を行うことと、第1のサブ部分を、イントラ符号化モードで処理すること(3810)と、第2のサブ部分をインター符号化モードで処理すること(3815)と、を含む。
【0307】
いくつかの実装形態において、方法3800に対して追加の修正を行うことができる。例えば、第2のサブ部分は、双予測を適用することによって処理される。現在のブロックがマージモードで符号化されることに応答して、マージインデックスを使用して動き情報を信号通知すること。イントラ予測モードのサブセットを使用して第1の予測部分の動き情報を判定すること。イントラ予測モードのサブセットは、第1の予測部分の位置、第1の予測部分のサイズ、および第1の予測部分の形状のうちの少なくとも1つに基づく。
【0308】
図39は、映像を処理する方法3900のフローチャートである。方法3900は、視覚メディアデータの現在のブロックと、視覚メディアデータの対応する符号化表現との間で変換を行うこと(3905)を含み、現在のブロックは、第1のサブ部分が非長方形且つ非正方形の形状を有する分割パターンにしたがって複数の階部分に分割される、変換を行うことと、複数のサブ部分のうちの少なくとも1つは、マージまたは非マージインターコードされ、現在のピクチャを参照ピクチャとして使用する。
【0309】
図40は、映像を処理する方法4000のフローチャートである。方法4000は、視覚メディアデータの現在のブロックと、視覚メディアデータの対応する符号化表現との間で変換を行うこと(4005)であって、現在のブロックは、第1の予測分割が非長方形の非正方形の形状を有する分割パターンにしたがって、複数のサブ部分に分割される、変換を行うことと、1つ以上の非隣接空間的ブロックのインター符号化された情報またはイントラ符号化された情報を使用して変換を行うこと(4010)と、を含む。
【0310】
いくつかの実装形態において、方法4000に対して追加の修正を行うことができる。例えば、1つ以上の非隣接空間的ブロックのインター符号化された情報またはイントラ符号化された情報は、1つ以上の非隣接空間的ブロックの動き情報を含む。1つ以上の非隣接空間的ブロックのインター符号化された情報またはイントラ符号化された情報を使用して現在のブロックの変換を行うことは、1つ以上の非隣接空間的ブロックのイントラ予測モードを使用して現在のブロックの変換を行うことを含む。時間的ブロックの符号化された情報を用いる。
【0311】
図41は、映像を処理する方法4100のフローチャートである。方法4100は、視覚メディアデータの第1のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、ジオメトリ分割モードで符号化された第1のブロックを判定すること(4105)と、前述の符号化されたブロックに基づいた動き情報を含む履歴に基づく動きベクトル予測(HMVP)候補を記憶する少なくとも1つの表に基づいて、第1のブロックの少なくとも1つのサブ部分の動き情報を判定すること(4110)と、判定された動き情報を使用して第1のブロックの変換を行うこと(4115)と、を含む。
【0312】
いくつかの実装形態において、方法4100に対して追加の修正を行うことができる。例えば、ジオメトリ分割モードで符号化される第1のブロックは、第1のブロックを複数のサブ部分に分割することを含み、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形の部分である。視覚メディアデータの第2のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、第1のブロックに使用されるのと同じ表に基づいて、第2のブロックの動き情報を判定する。第2のブロックはジオメトリ分割モードを使用しない。第1のブロックで使用される動き情報が少なくとも1つの表に記憶されることを回避する。第1のブロックの変換の後、少なくとも1つの表は更新されない。この少なくとも1つの表は、ジオメトリ分割モードを有するブロックのHMVP候補を記憶するように保守される複数の表を含む。少なくとも1つの表において、記憶されたHMVP候補は、ジオメトリ分割モードのブロックで使用される動き情報のみを有する。この少なくとも1つの表は、単一予測されたHMVP候補および双予測されたHMVP候補をそれぞれ記憶するように保守される2つの表を含む。この少なくとも1つの表は、第1のブロックの第1のサブ部分および第2のサブ部分の動き情報をそれぞれ記憶するように保守される2つの表を含む。この少なくとも1つの表は、List0およびList1の動き情報をそれぞれ記憶するように保守される2つの表を含む。この少なくとも1つの表は、List0からの単一予測HMVP候補、List1からの単一予測HMVP候補、および双予測されたHMVP候補をそれぞれ記憶するように保守される3つの表を含む。少なくとも1つの表は、第1のブロックの一部のサブ部分の動き情報で更新される。第1のサブ部分の動き情報および第2のサブ部分の動き情報によって、第1のブロックの第1のサブ部分および第2のサブ部分がサブ部分sである少なくとも1つの表を更新する。1つのHMVP候補を加えることによって、第1のサブ部分の動き情報および第2のサブ部分の動き情報で、少なくとも1つの表を更新する。1つまたは2つの動き候補を加えることによって少なくとも1つの表を更新するか否かは、第1のサブ部分および第2のサブ部分が同じ参照ピクチャリストを使用しているかまたは同じ参照ピクチャを使用しているかに依存する。
【0313】
第1のサブ部分または第2のサブ部分の動き情報を加えることによって少なくとも1つの表を更新するか否かは、参照ピクチャと現在のピクチャとの間のピクチャオーダカウント(POC)の差に依存する。非長方形且つ非正方形部分を有するブロックを処理した後、非長方形且つ非正方形部分を有するブロックの動き情報を使用して、非長方形且つ非正方形部分を有するブロックのHMVP候補を記憶するように保守される表を更新する。非長方形且つ非正方形部分を含まないブロックを処理した後、非長方形且つ非正方形部分を含まないブロックの動き情報を使用して、非長方形且つ非正方形部分を含まないブロックのHMVP候補を記憶するように保守される表を更新する。非長方形且つ非正方形部分を含まないブロックを処理した後、非長方形且つ非正方形部分を含まないブロックの動き情報を使用して、非長方形且つ非正方形部分を含むブロックの動きベクトル予測(HMVP)候補を記憶するように保守される表を更新する。ジオメトリ分割モードは、三角形分割モードを含む。本方法は、他の種類の動き候補リストにも適用可能である。
【0314】
図42は、映像を処理する方法4200のフローチャートである。方法4200は、視覚メディアデータの第1のブロックと視覚メディアデータの対応する符号化表現との間での変換中に、第1のブロックがジオメトリ分割モードで符号化されているかを判定すること(4205)と、第1のブロックの少なくとも1つのサブ部分の動き情報を判定すること(4210)と、少なくとも1つのサブ部分の動き情報を使用して第1のブロックの変換を行うこと(4215)、を含み、少なくとも1つのサブ部分の動き情報を判定することは、動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つの履歴に基づく動きベクトル予測(HMVP)候補を使用することと、動き候補リストから動き情報を判定することと、を含む。
【0315】
いくつかの実装形態において、方法4200に対して追加の修正を行うことができる。例えば、ジオメトリ分割モードで符号化される第1のブロックは、第1のブロックを複数のサブ部分に分割することを含み、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形の部分である。少なくとも1つのHMVP候補は、動き候補リストに直接追加される。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、第1の動き候補および第2の動き候補を判定するために1つのHMVP候補を使用することであって、第1の動き候補および第2の動き候補のうちの一方は、HMVP候補のList0動き情報によって単一予測され、他方はHMVP候補のList1動き情報によって単一予測される、使用することを含む。HMVP候補から導出された動き候補を、空間的または時間的映像ブロックに基づく他の動き候補に挿入することに応答して、プルーニングを行う。HMVP候補から導出された動き候補を他のHMVP候補に基づく他の動き候補に挿入することに応答して、プルーニングを行う。HMVP候補に基づく他の動き候補とともにHMVP候補から導出された動き候補を挿入することに応答して、プルーニングを行う。
【0316】
動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、空間的ブロックまたは時間的ブロックの一方または両方から導出された動き候補の後に、HMVP候補から導出された少なくとも1つの動き候補を動き候補リストに加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、空間的ブロックまたは時間的ブロックの動き情報に基づいて、動き候補リスト構築処理における予め規定されたステップの後または前に、動き候補リストに、HMVP候補から導出された少なくとも1つの動き候補を加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、空間的ブロックまたは時間的ブロックの動き情報に基づいて、動き候補リスト構築処理における複数の予め規定されたステップの後または前に、HMVP候補から導出された少なくとも1つの動き候補を動き候補リストに加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、HMVP候補と単一予測とから導出された少なくとも1つの動き候補を、すべての元来の単一予測候補の後にある動き候補リストに加えることを含む。
【0317】
動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、短縮されたList0の後の動き候補リストに、List0からの単一予測または双予測を伴うHMVP候補から導出された、少なくとも1つの動き候補を加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、短縮されたList1の後の動き候補リストに、List1からの単一予測または双予測を伴うHMVP候補から導出された、少なくとも1つの動き候補を加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、少なくとも1つのHMVP候補から導出された少なくとも1つの動き候補を、List0またはList1動き候補からの平均単一予測後の動き候補リストに加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、List0またはList1動き候補からの平均単一予測前に、少なくとも1つのHMVP候補から導出された少なくとも1つの動き候補を、動き候補リストに加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、現在のブロックに対する空間的または時間的映像ブロックの動き情報に基づく動き候補と交互配置することにしたがって、HMVP候補から導出された少なくとも1つの動き候補を動き候補リストに加えることを含む。HMVP候補から導出された動き候補をHMVP候補に等しく設定する。
【0318】
動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、HMVP候補のList0およびList1から導出された少なくとも1つの動き候補を、動き候補リストの、別のHMVP候補のList0およびList1から導出された動き候補の前に加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、HMVP候補の第1のセットのList0から導出された少なくとも1つの動き候補を、動き候補リストの、HMVP候補の第2のセットのList1から導出された動き候補の前に加えることを含む。第1のセットと第2のセットは同じである。第1のセットと第2のセットとが異なり、第1のセットは、List0からの単一予測を伴うHMVP候補および双予測を含み、第2のセットは、List1からの単一予測を伴うHMVP候補および双予測を含むことを含むことができる。第1のセットは、第1の数のHMVP候補を含み、第2のセットは、第2の数のHMVP候補を含み、第1の数と第2の数が異なる。
【0319】
動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、L(1-X)に使用されるスケーリングされたHMVP候補を生成するために、listLXのHMVP候補をリストL(1-X)にスケーリングすることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、HMVP候補から導出された他の動き候補の後に、スケーリングされたHMVP候補を加えることを含む。動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、HMVP候補から導出された他の動き候補の後、および、時間的候補の前に、スケーリングされたHMVP候補を追加することを含む。動き候補リストに加えるHMVP候補のチェック順序は、HMVP候補のインデックスに基づく。動き候補リストに加えるHMVP候補のチェック順序は、予測方向に基づく。動き候補リストに加えるHMVP候補のチェック順序は、動き情報に基づく。
【0320】
動き候補リスト構築処理におけるチェック対象のHMVP候補の数は、予め規定されている。動き候補リスト構築処理においてチェック対象のHMVP候補の数は、現在のブロックのブロックサイズ、現在のブロックのブロック形状、またはHMVP候補をチェックする前に利用可能な候補の数に基づく。動き候補リスト構築処理においてチェック対象のHMVP候補の数は、映像パラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルグループヘッダ、スライスヘッダ、符号化ツリーユニットの行のグループ(CTU)、CTU、またはCTUのグループにおいて信号通知される。前記動き候補リストにおける前記チェック対象として選択されたHMVP候補は、予測方向、動きベクトル(MV)情報、参照ピクチャインデックス、参照ピクチャと候補の現在のピクチャとのPOC距離、および候補インデックスのうちの少なくとも1つに基づく。現在のブロックに対するHMVPの適用は、現在のブロックのブロックサイズまたは現在のブロックのブロック形状に基づく。動き候補リストは、マージリストを含む。動き候補リストは、マージ候補リストを除く他の種類の動き候補リストにも適用可能である。
【0321】
本発明のいくつかの実施形態によって好適に実装されるいくつかの特徴を、項に基づく形式で開示する。
【0322】
1.映像を処理する方法であって、
視覚メディアデータの現在のブロックと前記視覚メディアデータの対応する符号化表現との間での変換中に、前記現在のブロックのための複数のサブ部分を判定することと、
前記複数のサブ部分のイントラ予測情報を判定することと、
前記複数のサブ部分の前記イントラ予測情報を使用して前記現在のブロックの前記変換を行うことと、を含み、
現在のブロックは、イントラ符号化され、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形のサブ部分である。
【0323】
2.請求項1に記載の方法であって、前記複数のサブ部分のイントラ予測情報を判定することは、
第1のイントラ予測モードを使用して、前記複数のサブ部分における第1のサブ部分の第1のイントラ予測情報を判定することと、
第2のイントラ予測モードを使用して、複数のサブ部分における第2のサブ部分の第2のイントラ予測情報を判定することと、を含み、
前記第1のイントラ予測モードは、前記第2のイントラ予測モードと異なる、方法。
【0324】
3.前記第1のイントラ予測情報は、イントラ予測モードの第1のサブセットを使用することによって判定され、前記第2のイントラ予測情報は、イントラ予測モードの第2のサブセットを使用することによって判定され、
イントラ予測モードの前記第1のサブセットは、イントラ予測モードの前記第2のサブセットとは異なる、請求項2に記載の方法。
【0325】
4.前記イントラ予測モードのサブセットは、前記第1のサブ部分および/または第2のサブ部分の位置、サイズおよび形状のうちの少なくとも1つに基づく、請求項3に記載の方法。
【0326】
5.請求項1~4のいずれか1項に記載の方法であって、前記複数のサブ部分のイントラ予測情報を判定することは、さらに、
前記複数のサブ部分のうちの前記少なくとも1つのサブ部分のエッジ境界に沿ったサンプルの予測値のフィルタリングすること含む、方法。
【0327】
6.請求項1~5のいずれか1項に記載の方法であって、前記複数のサブ部分の前記第2のサブ部分の前記第2のイントラ予測情報を用いることなく、前記複数のサブ部分の第1のサブ部分の第1のイントラ予測情報を判定し、前記第1のサブ部分の前記第1のイントラ予測情報を用いることなく、前記第2のサブ部分の前記第2のイントラ予測情報を判定する、方法。
【0328】
7.請求項1~5のいずれか1項に記載の方法であって、前記複数のサブ部分の第2のサブ部分の第2のイントラ予測情報を使用して、前記複数のサブ部分の第1のサブ部分の第1のイントラ予測情報を判定し、且つ/または、前記第1のサブ部分の前記第1のイントラ予測情報を使用して、前記第2のサブ部分の前記第2のイントラ予測情報を判定する、方法。
【0329】
8.映像を処理する方法であって、
視覚メディアデータの現在のブロックと前記視覚メディアデータの対応する符号化表現との間での変換中に、前記現在のブロックのための複数のサブ部分を判定することと、
前記複数のサブ部分の動き情報を判定することと、
前記複数のサブ部分の前記動き情報を使用して前記現在のブロックの前記変換を行うことと、を含み、
現在のブロックは、インター符号化され、複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形のサブ部分である。
【0330】
9.請求項8に記載の方法であって、前記複数のサブ部分の動き情報を判定することは、
第1のイントラ予測モードを使用して、前記複数のサブ部分における第1のサブ部分の第1の動き情報を判定することと、
第2のイントラ予測モードを使用して、複数のサブ部分における第2のサブ部分の第2の動き情報を判定することと、を含む。
【0331】
10.前請求項8~9のいずれか1項に記載の方法であって、前記複数のサブ部分のイントラ予測を判定するステップは、さらに以下を含む。
前記複数のサブ部分のうちの前記少なくとも1つのサブ部分のエッジ境界に沿ったサンプルの予測値のフィルタリングすること含む、方法。
【0332】
11.請求項8~9のいずれか1項に記載の方法であって、前記第1のサブ部分の前記第1の動き情報は、前記第2のサブ部分の前記第2の動き情報を使用せずに判定され、前記第2のサブ部分の前記第2の動き情報は、前記第1のサブ部分の前記第1の動き情報を使用せずに判定される、方法。
【0333】
12.請求項8~9のいずれか1項に記載の方法であって、前記第1のサブ部分の前記第1の動き情報は、前記第2の予測の前記第2の動き情報を使用して判定され、且つ/または前記第2のサブ部分の前記第2の動き情報は、前記第1のサブ部分の前記第1の動き情報を使用して判定される、方法。
【0334】
13.映像処理方法であって、
視覚メディアデータの現在のブロックと前記視覚メディアデータの対応する符号化表現との間で変換を行うことであって、前記現在のブロックは、第1のサブ部分が非長方形の非正方形の形状を有する分割パターンにしたがって、複数のサブ部分に分割される、変換を行うことと、
第1のサブ部分をイントラ符号化モードで処理することと、
第2のサブ部分をインター符号化モードで処理することと、を含む、映像処理方法。
【0335】
14.前記第2のサブ部分は、双予測を適用することによって処理される、請求項13に記載の方法。
【0336】
15.請求項13~14のいずれか1項に記載の方法であって、
前記現在のブロックがマージモードで符号化されることに応答して、マージインデックスを有する動き情報を信号通知することをさらに含む、方法。
【0337】
16.請求項13~15のいずれか1項に記載の方法であって、
イントラ予測モードのサブセットを使用して前記第1の予測部分の動き情報を判定することをさらに含む、方法。
【0338】
17.請求項16に記載の方法であって、前記イントラ予測モードのサブセットは、前記第1の予測部分の位置、第1の予測部分のサイズ、および第1の予測部分の形状のうちの少なくとも1つに基づく、方法。
【0339】
18.映像処理方法であって、
視覚メディアデータの現在のブロックと前記視覚メディアデータの対応する符号化表現との間で変換を行うことであって、前記現在のブロックは、第1のサブ部分が非長方形の非正方形の形状を有する分割パターンにしたがって、複数のサブ部分に分割される、変換を行うことと、
前記複数のサブ部分のうちの少なくとも1つは、マージまたは非マージインターコードされ、現在のピクチャを参照ピクチャとして使用する、方法。
【0340】
19.映像処理方法であって、
視覚メディアデータの現在のブロックと、前記視覚メディアデータの対応する符号化表現との間で変換を行うことであって、前記現在のブロックは、第1の予測分割が非長方形の非正方形の形状を有する分割パターンにしたがって、複数のサブ部分に分割される、変換を行うことと、
1つ以上の非隣接空間的ブロックのインターまたはイントラ符号化された情報を使用して前記変換を行うことと、を含む、映像処理方法。
【0341】
20.1つ以上の非隣接空間的ブロックの前記インター符号化された情報またはイントラ符号化された情報は、前記1つ以上の非隣接空間的ブロックの動き情報を含む、請求項19に記載の方法。
【0342】
21.1つ以上の非隣接空間的ブロックのインター符号化された情報またはイントラ符号化された情報を使用して、前記現在のブロックの前記変換を行うことが、
前記1つ以上の非隣接空間的ブロックのイントラ予測モードを使用して前記現在のブロックの前記変換を行うこと含む、請求項19に記載の方法。
【0343】
22.時間的ブロックの符号化された情報が使用される、請求項19に記載の方法。
【0344】
23.請求項1~22のいずれか1項に記載の方法を実装するように構成された処理装置を備える映像処理装置。
【0345】
24.前記装置がビデオエンコーダである、請求項23に記載の装置。
【0346】
25.前記装置がビデオデコーダである、請求項23に記載の装置。
【0347】
26.前記プログラムが、処理装置が請求項1~22のいずれか1項に記載の方法を行うためのものである。コードを含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【0348】
本発明のいくつかの実施形態によって好適に実装されるいくつかの特徴を、項に基づく形式で開示する。
【0349】
1.映像を処理する方法であって、
視覚メディアデータの第1のブロックと前記視覚メディアデータの対応する符号化表現との間での変換中に、前記第1のブロックがジオメトリ分割モードで符号化されているかを判定することと、
前述の符号化されたブロックに基づいた動き情報を含む履歴に基づく動きベクトル予測(HMVP)候補を記憶する少なくとも1つの表に基づいて、前記第1のブロックの少なくとも1つのサブ部分の動き情報を判定することと、
判定された動き情報を使用して第1のブロックの変換を行うことと、を含む。
【0350】
2.請求項1に記載の方法であって、前記第1のブロックは、ジオメトリ分割モードで符号化され、
前記第1のブロックを複数のサブ部分に分割することを含み、
複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形の部分である。
【0351】
3.請求項1に記載の方法であって、
前記視覚メディアデータの第2のブロックと前記視覚メディアデータの前記対応する符号化表現との間での変換中に、前記第1のブロックに使用されるのと同じ表に基づいて、前記第2のブロックの動き情報を判定することを、さらに含み、
前記第2のブロックは前記ジオメトリ分割モードを使用しない、方法。
【0352】
4.前記第1のブロックで使用される前記動き情報が前記少なくとも1つの表に記憶されることを禁止する、請求項1~3のいずれか1項に記載の方法。
【0353】
5.前記少なくとも1つの表は、前記第1のブロックの前記変換後に更新されない、請求項1~4のいずれか1項に記載の方法。
【0354】
6.前記少なくとも1つの表は、前記ジオメトリ分割モードのブロックの前記HMVP候補を記憶するように保守される複数の表を含む、請求項1~5のいずれか1項に記載の方法。
【0355】
7.前記少なくとも1つの表において、前記記憶されたHMVP候補は、前記ジオメトリ分割モードのブロックで使用される動き情報に基づいてのみ動き情報を有する、請求項6に記載の方法。
【0356】
8.前記少なくとも1つの表は、単一予測されたHMVP候補および双予測されたHMVP候補をそれぞれ記憶するように保守される2つの表を含む、請求項1~7のいずれか1項に記載の方法。
【0357】
9.前記少なくとも1つの表は、前記第1のブロックの第1のサブ部分および第2のサブ部分の動き情報をそれぞれ記憶するように保守される2つの表を含む、請求項1~8のいずれか1項に記載の方法。
【0358】
10.前記少なくとも1つの表は、それぞれList0およびList1の動き情報を記憶するように保守される2つの表を含む、請求項1~9のいずれか1項に記載の方法。
【0359】
11.前記少なくとも1つの表は、List0からの単一予測HMVP候補、List1からの単一予測HMVP候補、および双予測されたHMVP候補をそれぞれ記憶するように保守される3つの表を含む、請求項1~10のいずれか1項に記載の方法。
【0360】
12.前記少なくとも1つの表は、前記第1のブロックのサブ部分の前記動き情報で更新される、請求項1~11のいずれか1項に記載の方法。
【0361】
13.前記少なくとも1つの表は、第1のブロックの第1のサブ部分の前記動き情報および第2のサブ部分の前記動き情報で更新され、前記第1のサブ部分および前記第2のサブ部分が前記第1のブロックのサブ部分sである、請求項1~12のいずれか1項に記載の方法。
【0362】
14.前記少なくとも1つの表は、1つのHMVP候補を加えることで、前記第1のサブ部分の前記動き情報および前記第2のサブ部分の動き情報で更新される、請求項13に記載の方法。
【0363】
15.1つまたは2つの動き候補を加えることによって前記少なくとも1つの表を更新するか否かは、前記第1のサブ部分および前記第2のサブ部分が同じ参照ピクチャリストを使用しているかまたは同じ参照ピクチャを使用しているかに依存する、請求項14に記載の方法。
【0364】
16.前記第1のサブ部分または前記第2のサブ部分の動き情報を加算することで前記少なくとも1つの表を更新するか否かは、参照ピクチャと現在のピクチャとの間のピクチャオーダカウント(POC)の差に依存する、請求項14に記載の方法。
【0365】
17.請求項1~16のいずれか1項に記載の方法であって、
前記非長方形且つ非正方形部分を有する前記ブロックを処理した後、保守されている前記表を更新して、非前記長方形且つ非正方形部分を有する前記ブロックの前記HMVP候補を記憶するために、前記非長方形且つ非正方形部分を有するブロックの動き情報を使用することをさらに含む、方法。
【0366】
18.請求項1~16に記載の方法において、前記方法は、
前記非長方形且つ非正方形部分を含まない前記ブロックを処理した後、保守される前記表を更新し、前記非長方形且つ非正方形部分を含まない前記ブロックの前記HMVP候補を記憶するために、前記非長方形且つ非正方形部分を含まない前記ブロックの動き情報を使用することをさらに含む、方法。
【0367】
19.請求項1~16に記載の方法において、前記方法は、
前記非長方形且つ非正方形部分を含まない前記ブロックを処理した後、保守される前記表を更新し、前記非長方形且つ非正方形部分を含むブロックの前記動きベクトル予測(HMVP)候補を記憶するために、前記非長方形且つ非正方形部分を含まない前記ブロックの前記動き情報を使用することをさらに含む、方法。
【0368】
20.前記ジオメトリ分割モードは、三角形分割モードを含む、請求項1~19のいずれか1項に記載の方法。
【0369】
21.前記方法は、他の種類の動き候補リストに適用可能である、請求項1~20のいずれか1項に記載の方法。
【0370】
22.請求項1~21のいずれか1項に記載の方法を実装するように構成された処理装置を備える映像処理装置。
【0371】
23.前記装置がビデオエンコーダである、請求項22に記載の装置。
【0372】
24.前記装置がビデオデコーダである、請求項22に記載の装置。
【0373】
25.前記プログラムが、処理装置が請求項1~21のいずれか1項に記載の方法を行うためのものである。コードを含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【0374】
本発明のいくつかの実施形態によって好適に実装されるいくつかの特徴を、項に基づく形式で開示する。
【0375】
1.映像を処理する方法であって、
視覚メディアデータの第1のブロックと前記視覚メディアデータの対応する符号化表現との間での変換中に、前記第1のブロックがジオメトリ分割モードで符号化されているかを判定することと、
前記第1のブロックの少なくとも1つのサブ部分の動き情報を判定することと、
前記少なくとも1つのサブ部分の前記動き情報を使用して前記第1のブロックの前記変換を行うことと、を含み、
少なくとも1つのサブ部分の動き情報を判定することは、動き候補リストを構築するために前述の符号化されたブロックに基づく動き情報を含む、少なくとも1つの履歴に基づく動きベクトル予測(HMVP)候補を使用することと、動き候補リストから動き情報を判定することとを含む。
【0376】
2.請求項1に記載の方法であって、前記第1のブロックは、ジオメトリ分割モードで符号化され、
前記第1のブロックを複数のサブ部分に分割することを含み、
複数のサブ部分のうちの少なくとも1つは、非長方形かつ非正方形の部分である。
【0377】
3.請求項1に記載の方法であって、
前記少なくとも1つのHMVP候補を直接前記動き候補リストに加える、方法。
【0378】
4.請求項1~3のいずれか1項に記載の方法であって、動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
第1の動き候補および第2の動き候補を判定するために1つのHMVP候補を使用することであって、第1の動き候補および第2の動き候補のうちの一方は、HMVP候補のList0動き情報によって単一予測され、他方はHMVP候補のList1動き情報によって単一予測される、使用することを含む。
【0379】
5.請求項1~4のいずれか1項に記載の方法であって、
前記HMVP候補から導出された動き候補を、空間的または時間的映像ブロックに基づく他の動き候補に挿入することに応答して、プルーニングを行うことをさらに含む、方法。
【0380】
6.請求項1~5のいずれか1項に記載の方法であって、
前記HMVP候補から導出された動き候補を、他のHMVP候補に基づく他の動き候補に挿入することに応答して、プルーニングを行うことを含む、方法。
【0381】
7.請求項1~6のいずれか1項に記載の方法であって、
前記HMVP候補に基づく他の動き候補とともに前記HMVP候補から導出された動き候補を挿入することに応答して、プルーニングを行うことをさらに含む、方法。
【0382】
8.請求項1~7のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
空間的ブロックまたは時間的ブロックの一方または両方から導出された動き候補の後に、HMVP候補から導出された少なくとも1つの動き候補を動き候補リストに加えることを含む。
【0383】
9.請求項1~8のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
空間的ブロックまたは時間的ブロックの動き情報に基づいて、動き候補リスト構築処理における予め規定されたステップの後または前に、動き候補リストに、HMVP候補から導出された少なくとも1つの動き候補を加えることを含む。
【0384】
10.請求項1~9のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
空間的ブロックまたは時間的ブロックの動き情報に基づいて、動き候補リスト構築処理における複数の予め規定されたステップの後または前に、HMVP候補から導出された少なくとも1つの動き候補を動き候補リストに加えることを含む。
【0385】
11.請求項1~10のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
HMVP候補と単一予測とから導出された少なくとも1つの動き候補を、すべての元来の単一予測候補の後にある動き候補リストに加えることを含む。
【0386】
12.請求項1~11のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
短縮されたList0の後の動き候補リストに、List0からの単一予測または双予測を伴うHMVP候補から導出された、少なくとも1つの動き候補を加えることを含む。
【0387】
13.請求項1~12のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
短縮されたList1の後の動き候補リストに、List1からの単一予測または双予測を伴うHMVP候補から導出された、少なくとも1つの動き候補を加えることを含む。
【0388】
14.請求項1~13のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
少なくとも1つのHMVP候補から導出された少なくとも1つの動き候補を、List0またはList1動き候補からの平均単一予測後の動き候補リストに加えることを含む。
【0389】
15.請求項1~14のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
List0またはList1動き候補からの平均単一予測前に、少なくとも1つのHMVP候補から導出された少なくとも1つの動き候補を、動き候補リストに加えることを含む。
【0390】
16.請求項1~15のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
現在のブロックに対する空間的または時間的映像ブロックの動き情報に基づく動き候補と交互配置することにしたがって、HMVP候補から導出された少なくとも1つの動き候補を動き候補リストに加えることを含む。
【0391】
17.請求項8~16のいずれか1項に記載の方法であって、
前記HMVP候補から導出された動き候補をHMVP候補に等しく設定する、方法。
【0392】
18.請求項1~17のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
HMVP候補のList0およびList1から導出された少なくとも1つの動き候補を、動き候補リストの、別のHMVP候補のList0およびList1から導出された動き候補の前に加えることを含む。
【0393】
19.請求項1~18のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
HMVP候補の第1のセットのList0から導出された少なくとも1つの動き候補を、動き候補リストの、HMVP候補の第2のセットのList1から導出された動き候補の前に加えることを含む。
【0394】
20.前記第1のセットと前記第2のセットが同じである、請求項19に記載の方法。
【0395】
21.前記第1のセットと前記第2のセットとが異なり、前記第1のセットは、List0からの単一予測を伴うHMVP候補および双予測を含み、前記第2のセットは、List1からの単一予測を伴うHMVP候補および双予測を含むことを含むことができる、請求項19に記載の方法。
【0396】
22.前記第1のセットは、第1の数のHMVP候補を含み、前記第2のセットは、第2の数のHMVP候補を含み、前記第1の数と前記第2の数が異なる、請求項19に記載の方法。
【0397】
23.請求項1~22のいずれか1項に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
L(1-X)に使用されるスケーリングされたHMVP候補を生成するために、listLXのHMVP候補をリストL(1-X)にスケーリングすることを含む。
【0398】
24.請求項23に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
HMVP候補から導出された他の動き候補の後に、スケーリングされたHMVP候補を加えることを含む。
【0399】
25.請求項23に記載の方法であって、前記動き候補リストを構築するために前述の符号化されたブロックに基づいて動き情報を含む少なくとも1つのHMVP候補を使用することは、
HMVP候補から導出された他の動き候補の後、および、時間的候補の前に、スケーリングされたHMVP候補を追加することを含む。
【0400】
26.前記動き候補リストに追加されるHMVP候補のチェック順序は、前記HMVP候補のインデックスに基づく、請求項1~25のいずれか1項に記載の方法。
【0401】
27.前記動き候補リストに追加されるHMVP候補のチェック順序は、予測方向に基づく、請求項1~25のいずれか1項に記載の方法。
【0402】
28.前記動き候補リストに追加されるHMVP候補のチェック順序は、動き情報に基づく、請求項1~25のいずれか1項に記載の方法。
【0403】
29.前記動き候補リスト構築処理においてチェック対象のHMVP候補の数が予め規定される、請求項1~28のいずれか1項に記載の方法。
【0404】
30.前記動き候補リスト構築処理におけるチェック対象のHMVP候補の数は、前記現在のブロックのブロックサイズ、前記現在のブロックのブロック形状、またはHMVP候補のチェック前に利用可能な候補の数に基づく、請求項1~28のいずれか1項に記載の方法。
【0405】
31.前記動き候補リスト構築処理においてチェック対象のHMVP候補の数は、映像パラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルグループヘッダ、スライスヘッダ、符号化ツリーユニットの行のグループ(CTU)、CTU、またはCTUのグループにおいて信号通知される、請求項1~28のいずれか1項に記載の方法。
【0406】
32.前記動き候補リストにおける前記チェック対象として選択されたHMVP候補は、予測方向、動きベクトル(MV)情報、参照ピクチャインデックス、参照ピクチャと候補の現在のピクチャとのPOC距離、および候補インデックスのうちの少なくとも1つに基づく、請求項1~28のいずれか1項に記載の方法。
【0407】
33.前記現在のブロックへのHMVPの適用は、前記現在のブロックのブロックサイズまたは前記現在のブロックのブロック形状に基づく、請求項1~28のいずれか1項に記載の方法。
【0408】
34.前記動き候補リストは、マージリストを含む、請求項1~33のいずれか1項に記載の方法。
【0409】
35.前記動き候補リストは、前記マージ候補リストを除く他の種類の動き候補リストにも適用可能である、請求項1~33のいずれか1項に記載の方法。
【0410】
36.請求項1~35のいずれか1項に記載の方法を実装するように構成された処理装置を備える映像処理装置。
【0411】
37.前記装置がビデオエンコーダである、請求項36に記載の装置。
【0412】
38.前記装置がビデオデコーダである、請求項36に記載の装置。
【0413】
39.前記プログラムが、処理装置が請求項1~35のいずれか1項に記載の方法を行うためのものである。コードを含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【0414】
本明細書に記載された開示されたそして他の解決案、実施例、実施形態、モジュール、および機能操作は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実装されてもよい。開示された、そして他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の操作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置若しくはコンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するように生成される。
【0415】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0416】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を行うための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0417】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を行うための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュメモリデバイス、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体メモリデバイスを含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0418】
本特許明細書は多くの詳細を含むが、これらは、任意の主題または特許請求され得るものの範囲を限定するものと解釈されるべきではなく、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許明細書において別個の実施形態の文脈で説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例の文脈で説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0419】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で実行されること、または示された全ての操作が実行されることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムモジュールの分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0420】
いくつかの実装形態および例のみが記載されているが、本特許明細書に記載され図示されている内容に基づいて、他の実施形態、拡張および変形が可能である。