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

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

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

特許7231729イントラブロックコピーのための履歴ベース動き候補リスト構築
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-20
(45)【発行日】2023-03-01
(54)【発明の名称】イントラブロックコピーのための履歴ベース動き候補リスト構築
(51)【国際特許分類】
   H04N 19/105 20140101AFI20230221BHJP
   H04N 19/176 20140101ALI20230221BHJP
   H04N 19/513 20140101ALI20230221BHJP
   H04N 19/159 20140101ALI20230221BHJP
【FI】
H04N19/105
H04N19/176
H04N19/513
H04N19/159
【請求項の数】 14
(21)【出願番号】P 2021525548
(86)(22)【出願日】2019-11-13
(65)【公表番号】
(43)【公表日】2022-01-18
(86)【国際出願番号】 CN2019117907
(87)【国際公開番号】W WO2020098677
(87)【国際公開日】2020-05-22
【審査請求日】2021-05-11
(31)【優先権主張番号】PCT/CN2018/115176
(32)【優先日】2018-11-13
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】シュイ,ジィジォン
(72)【発明者】
【氏名】ワン,ユエ
【審査官】清山 昂平
(56)【参考文献】
【文献】特表2017-507554(JP,A)
【文献】Li Zhang et al.,CE4: History-based Motion Vector Prediction (Test 4.4.7),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0266-v2,2018年10月04日
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
(57)【特許請求の範囲】
【請求項1】
映像データを処理する方法であって、
第1の予測モードを用いた映像の現在ブロックと前記映像のビットストリームとの間での変換のために、時間ブロックから導出される動き候補を除外する第1の動き候補リストを構築するステップであり、前記第1の予測モードでは、前記現在ブロックに関する予測サンプルを導出するために、前記現在ブロックを含む同一映像領域のサンプル値のみが使用される、ステップと、
前記現在ブロックの寸法に基づいて、空間隣接ブロックから導出される動き候補が前記第1の動き候補リストから除外されることを決定するステップと、
履歴ベース動きベクトル予測(HMVP)候補を検査して、前記HMVP候補を前記第1の動き候補リストに追加するかを決定するステップと、
を有する方法。
【請求項2】
前記第1の動き候補リストは更に、時間動きオフセットに基づいて導出される動き情報を有するサブブロックベースの時間動きベクトル予測候補を除外する、請求項1に記載の方法。
【請求項3】
前記現在ブロックの高さと幅の積が所定の閾値以下であることに基づいて、空間隣接ブロックから導出される動き候補が前記第1の動き候補リストから除外される、請求項1に記載の方法。
【請求項4】
前記第1の動き候補リストは、更にデフォルト動きベクトル候補に基づいて構築される、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記デフォルト動きベクトル候補はゼロ動きベクトル候補を含む、請求項4に記載の方法。
【請求項6】
前記第1の動き候補リスト及び動き探索範囲に基づいて前記変換を実行するステップ、
を更に有する請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記動き探索範囲は、前記現在ブロックを含む現在CTUのサイズに関係付けられる、請求項6に記載の方法。
【請求項8】
前記第1の動き候補リストのリストサイズは、予め定められている、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記第1の動き候補リストのリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される、請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記変換は、前記現在ブロックを前記ビットストリームへと符号化することを含む、請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記変換は、前記ビットストリームから前記現在ブロックを復号することを含む、請求項1乃至9のいずれか一項に記載の方法。
【請求項12】
プロセッサと、命令を有する非一時的なメモリとを有した、映像データを処理する装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
第1の予測モードを用いた映像の現在ブロックと前記映像のビットストリームとの間での変換のために、時間ブロックから導出される動き候補を除外する第1の動き候補リストを構築させ、前記第1の予測モードでは、前記現在ブロックに関する予測サンプルを導出するために、前記現在ブロックを含む同一映像領域のサンプル値のみが使用され、
前記現在ブロックの寸法に基づいて、空間隣接ブロックから導出される動き候補が前記第1の動き候補リストから除外されることを決定させ、
履歴ベース動きベクトル予測(HMVP)候補を検査させて、前記HMVP候補を前記第1の動き候補リストに追加するかを決定させる、
装置。
【請求項13】
命令を格納した非一時的なコンピュータ読み取り可能記憶媒体であって、前記命令は、プロセッサに、
第1の予測モードを用いた映像の現在ブロックと前記映像のビットストリームとの間での変換のために、時間ブロックから導出される動き候補を除外する第1の動き候補リストを構築させ、前記第1の予測モードでは、前記現在ブロックに関する予測サンプルを導出するために、前記現在ブロックを含む同一映像領域のサンプル値のみが使用され、
前記現在ブロックの寸法に基づいて、空間隣接ブロックから導出される動き候補が前記第1の動き候補リストから除外されることを決定させ、
履歴ベース動きベクトル予測(HMVP)候補を検査させて、前記HMVP候補を前記第1の動き候補リストに追加するかを決定させる、
コンピュータ読み取り可能記憶媒体。
【請求項14】
像のビットストリームを格納する方法であって
第1の予測モードを用い映像の現在ブロックについて、時間ブロックから導出される動き候補を除外する第1の動き候補リストを構築するステップであり、前記第1の予測モードでは、前記現在ブロックに関する予測サンプルを導出するために、前記現在ブロックを含む同一映像領域のサンプル値のみが使用される、ステップと、
前記現在ブロックの寸法に基づいて、空間隣接ブロックから導出される動き候補が前記第1の動き候補リストから除外されることを決定するステップと、
履歴ベース動きベクトル予測(HMVP)候補を検査して、前記HMVP候補を前記第1の動き候補リストに追加するかを決定するステップと、
前記第1の動き候補リストに基づいて前記現在ブロックから前記ビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に格納するステップと、
を有する方法
【発明の詳細な説明】
【技術分野】
【0001】
パリ条約に基づく適用可能な特許法及び/又は規則の下で、この出願は、2018年11月13日に出願された国際特許出願第PCT/CN2018/115176号の優先権及び利益を適時に主張して行われる。米国の法律の下での全ての目的のために、上記出願の開示全体を、この出願の開示の一部として援用する。
【0002】
本特許文書は、映像符号化技術、装置及びシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅使用を占めている。映像を受信して表示することが可能な接続ユーザ装置の数が増えるにつれて、デジタル映像使用に対する帯域幅需要が増加し続けることが予期される。
【発明の概要】
【0004】
デジタル映像符号化、特に、映像符号化のために別個の動き候補リストを構築することに関する装置、システム及び方法が記述される。記述される方法は、既存の映像符号化標準(例えば、HEVC(High Efficiency Video Coding))及び将来の映像符号化標準若しくはビデオコーデックの双方に適用され得る。
【0005】
第1の例示的な実施形態は、映像処理の方法を記述し、当該方法は、映像の第1の映像ブロックに対して、空間ブロックのみから導出された動き候補を除外する第1の動き候補リスト構築方法を用いて、第1の動き候補リストを構築することと、構築した第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換を実行することとを有する。
【0006】
第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、時間ブロックのみからの動き候補を有する。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、時間ブロック及び空間ブロックの両方に基づく動き候補を有する。第1の例示的な実施形態の一部の実装において、動き候補は、サブブロックベースの空間時間動きベクトル予測(spatial temporal motion vector prediction;STMVP)又は非サブブロックベースのSTMVPに使用される。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、第1の映像ブロックの時間的に隣接する映像ブロックからの情報を用いてアフィンモデルを導出するアフィンマージ候補を有する。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、第1の映像ブロックの時間的に隣接する映像ブロックからの情報を用いてアフィンモデルを導出するアフィンマージ候補を除外する。
【0007】
第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、履歴ベース動きベクトル予測(history-based motion vector prediction;HMVP)候補を有する。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、履歴ベース動きベクトル予測(HMVP)候補又は時間動き候補から導出された仮想候補を有する。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、以下の動き候補のみを有し、すなわち、各動き候補が、第1の映像ブロックの全体に適用される単一セットの動き情報に関連付けられるもののみの動き候補、のみを有する。
【0008】
第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、以下の動き候補のみを有し、すなわち、各動き候補が、複数セットの動き情報に関連付けられるもののみの動き候補、のみを有し、複数セットの動き情報の各々が、第1の映像ブロックのサブブロックに適用される。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、同じ参照ピクチャの複数の時間ブロックに関連する複数の動き候補を有する。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、各参照ピクチャリストの1つの参照ピクチャに関連する複数の時間ブロックに関連する複数の動き候補を有する。
【0009】
第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、ピクチャ内に位置する複数の時間ブロックに関連する複数の動き候補を有し、そのピクチャの参照インデックスは、予め定められており、あるいは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)内で信号伝達される。第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、第1の映像ブロックを有するコロケート符号化ツリーユニット(CTU)行内に位置する複数の時間ブロックに関連する複数の動き候補を有する。
【0010】
第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、映像ユニットが複数の重なり合わないM×N領域に分割されるときに、サイズM×Nの同一領域内に位置する複数の時間ブロックに関連する複数の動き候補を有し、M及びNは、予め定められた整数、あるいは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)内で信号伝達される整数である。第1の例示的な実施形態の一部の実装において、第1の動き候補リスト内の動き候補に対して、一般化双予測(generalized bi-prediction;GBi)が無効にされ、GBiインデックスが、第1の動き候補リスト内の動き候補に対して0に設定される。
【0011】
第1の例示的な実施形態の一部の実装において、第1の動き候補リストは、代替的時間動きベクトル予測(alternative temporal motion vector prediction;ATMVP)候補を有する。第1の例示的な実施形態の一部の実装において、ATMVP候補は、第1の動き候補リスト内の固定位置に置かれる。
【0012】
第2の例示的な実施形態は、映像処理の方法を記述し、当該方法は、映像の第1の映像ブロックに対して、アフィン候補を除外して代替的時間動きベクトル予測(ATMVP)候補を有する第1の動き候補リスト構築方法を用いて、第1の動き候補リストを構築することと、構築した第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換を実行することとを有する。
【0013】
第1及び第2の例示的な実施形態の一部の実装において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを有する。第1及び第2の例示的な実施形態の一部の実装において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。第1及び第2の例示的な実施形態の一部の実装において、第1のリストインデックスは、第1の映像ブロックの隣接する映像ブロックに対応し、第1の映像ブロックの第2のリストインデックスを符号化するために使用される。第1及び第2の例示的な実施形態の一部の実装において、第1のリストインデックスは、第1の映像ブロックの隣接する映像ブロックに対応し、第1の映像ブロックの第2のリストインデックスを符号化するためにコンテキスト選択において使用される。
【0014】
第1及び第2の例示的な実施形態の一部の実装において、リストインデックスについての同じ値が、映像の異なる映像ブロックに対する異なる動き候補リスト構築方法に対応する。第1及び第2の例示的な実施形態の一部の実装において、リストインデックスの信号伝達は、三角予測モード(triangular prediction mode;TPM)、非アフィンモード、又は非TPMモードを含む符号化モード情報に基づく。第1及び第2の例示的な実施形態の一部の実装において、当該方法は更に、複数の動き候補リスト内の異なる動き候補リスト内の動き候補に対して剪定処理を実行することを有する。第1及び第2の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを有する。
【0015】
第1及び第2の例示的な実施形態の一部の実装において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。第1及び第2の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを有する。第1及び第2の例示的な実施形態の一部の実装において、モードはマージモードである。
【0016】
第1及び第2の例示的な実施形態の一部の実装において、モードはアドバンスト動きベクトル予測(advanced motion vector prediction;AMVP)モードである。第1及び第2の例示的な実施形態の一部の実装において、モードは三角予測(TPM)モードである。第1及び第2の例示的な実施形態の一部の実装において、モードは、ブロック寸法に関係付けられる。第1及び第2の例示的な実施形態の一部の実装において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。第1及び第2の例示的な実施形態の一部の実装において、閾値は64である。第1及び第2の例示的な実施形態の一部の実装において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。第1及び第2の例示的な実施形態の一部の実装において、第1の閾値は16であり、第2の閾値は16である。
【0017】
第1及び第2の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。第1及び第2の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。第1及び第2の例示的な実施形態の一部の実装において、第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0018】
第3の例示的な実施形態は、映像処理の方法を記述し、当該方法は、映像の第1の映像ブロックに対して、空間ブロックのみから導出された動き候補を除外する第1の動き候補リスト構築方法を用いて、第1の動き候補リストを構築することと、構築した第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換を実行することとを有する。
【0019】
第3の例示的な実施形態の一部の実装において、第1の動き候補リストは、空間ブロックのみからの動き候補を有する。第3の例示的な実施形態の一部の実装において、第1の動き候補リストは、履歴ベース動きベクトル予測(HMVP)候補を有する。第3の例示的な実施形態の一部の実装において、第1の動き候補リストは、HMVP候補又は空間動き候補から導出された仮想候補を有する。第3の例示的な実施形態の一部の実装において、第1の動き候補リストは、時間ブロック及び空間ブロックの両方に基づく動き候補を有する。
【0020】
第3の例示的な実施形態の一部の実装において、動き候補は、サブブロックベースの空間時間動きベクトル予測(STMVP)又は非サブブロックベースのSTMVPに使用される。第3の例示的な実施形態の一部の実装において、第1の動き候補リストのリストサイズは、第1の動き候補リストに許容される動き候補の予め定められた最大数である。第3の例示的な実施形態の一部の実装において、リストサイズは5又は6である。第3の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、別個に信号伝達される。
【0021】
第3の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、一度に信号伝達され、第1の動き候補リスト及び少なくとも1つの更なる動き候補リストを有する複数タイプの動き候補リストに適用される。第3の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される。
【0022】
第3の例示的な実施形態の一部の実装において、少なくとも1つの更なる動き候補リストは、時間候補リスト、又は空間候補リスト、又は履歴ベース動きベクトル予測(HMVP)候補リストである。第3の例示的な実施形態の一部の実装において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを有する。
【0023】
第3の例示的な実施形態の一部の実装において、第2の動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外する履歴ベース動きベクトル予測(HMVP)候補リストである。第3の例示的な実施形態の一部の実装において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。
【0024】
第3の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを有する。第3の例示的な実施形態の一部の実装において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。
【0025】
第3の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを有する。第3の例示的な実施形態の一部の実装において、モードはマージモードである。第3の例示的な実施形態の一部の実装において、モードはアドバンスト動きベクトル予測(AMVP)モードである。第3の例示的な実施形態の一部の実装において、モードは三角予測(TPM)モードである。第3の例示的な実施形態の一部の実装において、モードは、ブロック寸法に関係付けられる。
【0026】
第3の例示的な実施形態の一部の実装において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。第3の例示的な実施形態の一部の実装において、閾値は64である。第3の例示的な実施形態の一部の実装において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。第3の例示的な実施形態の一部の実装において、第1の閾値は16であり、第2の閾値は16である。第3の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。
【0027】
第3の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。第3の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。第3の例示的な実施形態の一部の実装において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0028】
第4の例示的な実施形態は、映像処理の方法を記述し、当該方法は、映像の第1の映像ブロックに対して、空間ブロックのみから導出された動き候補を除外する第1の動き候補リスト構築方法を用いて、第1の動き候補リストを構築することと、構築した第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換を実行することとを有する。
【0029】
第4の例示的な実施形態の一部の実装において、第1の動き候補リストはイントラブロックコピー(IBC)リストである。第4の例示的な実施形態の一部の実装において、同じ参照ピクチャは、現在ピクチャ、現在タイル、又は現在スライスであり、第1の映像ブロックは、現在ピクチャ、現在タイル、又は現在スライスに属する。第4の例示的な実施形態の一部の実装において、動き候補の各々は片予測候補である。第4の例示的な実施形態の一部の実装において、動き候補は、片予測候補及び双予測候補を含み、片予測候補及び双予測候補は、両方の参照ピクチャリストに同じ参照ピクチャを使用する。
【0030】
第4の例示的な実施形態の一部の実装において、第1の動き候補リストは、空間ブロックからの動き情報を有する動き候補を含む。第4の例示的実施形態の一部の実装において、空間ブロックは、第1の映像ブロックに隣接する又は隣接しない。第4の例示的な実施形態の一部の実装において、動き候補は、履歴ベース動きベクトル予測(HMVP)候補を含む。第4の例示的な実施形態の一部の実装において、第1の動き候補リストは、予め定められた又は計算された動きベクトルを有する少なくとも1つのデフォルト動き候補を含む。第4の例示的な実施形態の一部の実装において、予め定められた又は計算された動きベクトルは、(1)第1の映像ブロックの位置、(2)イントラブロックコピー(IBC)モードの許容探索範囲、及び(3)動き補償ブロックの最大許容ユニットサイズのうちのいずれか1つ以上に基づく。
【0031】
第4の例示的な実施形態の一部の実装において、動き補償ブロックの最大許容ユニットサイズは64×64ピクセルである。第4の例示的な実施形態の一部の実装において、第1の動き候補リストのリストサイズは、第1の動き候補リストに許容される動き候補の予め定められた最大数である。第4の例示的な実施形態の一部の実装において、リストサイズは5又は6である。第4の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、別個に信号伝達される。
【0032】
第4の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、一度に信号伝達され、第1の動き候補リスト及び少なくとも1つの更なる動き候補リストを有する複数タイプの動き候補リストに適用される。第4の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される。
【0033】
第4の例示的な実施形態の一部の実装において、少なくとも1つの更なる動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間隣接ブロックのみから導出された動き候補を除外する空間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外して履歴ベース動きベクトル予測(HMVP)候補を含むHMVP候補リストである。第4の例示的な実施形態の一部の実装において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを含む。第4の例示的な実施形態の一部の実装において、第2の動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外するHMVP候補リストである。
【0034】
第4の例示的な実施形態の一部の実装において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。第4の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを含む。
【0035】
第4の例示的な実施形態の一部の実装において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。第4の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを含む。第4の例示的な実施形態の一部の実装において、モードはマージモードである。第4の例示的な実施形態の一部の実装において、モードはアドバンスト動きベクトル予測(AMVP)モードである。第4の例示的な実施形態の一部の実装において、モードは三角予測(TPM)モードである。
【0036】
第4の例示的な実施形態の一部の実装において、モードは、ブロック寸法に関係付けられる。第4の例示的な実施形態の一部の実装において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。第4の例示的な実施形態の一部の実装において、閾値は64である。第4の例示的な実施形態の一部の実装において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。第4の例示的な実施形態の一部の実装において、第1の閾値は16であり、第2の閾値は16である。
【0037】
第4の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。第4の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。第4の例示的な実施形態の一部の実装において、第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。第4の例示的な実施形態の一部の実装において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0038】
第5の例示的な実施形態は、映像処理の方法を記述し、当該方法は、映像の第1の映像ブロックに対して、履歴ベース動きベクトル予測(HMVP)候補のみに関係する動き候補を含める第1の動き候補リスト構築方法を用いて、第1の動き候補リストを構築することと、構築した第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換を実行することとを有する。
【0039】
第5の例示的な実施形態の一部の実装において、第1の動き候補リストはデフォルト動きベクトル候補を有する。第5の例示的な実施形態の一部の実装において、デフォルト動きベクトル候補はゼロ動きベクトル候補を含む。第5の例示的な実施形態の一部の実装において、第1の動き候補リストは、既存のHMVP候補から導出された候補を有する。第5の例示的な実施形態の一部の実装において、第1の動き候補リストのリストサイズは、第1の動き候補リストに許容される動き候補の予め定められた最大数である。第5の例示的な実施形態の一部の実装において、リストサイズは5又は6である。第5の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、別個に信号伝達される。
【0040】
第5の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、一度に信号伝達され、第1の動き候補リスト及び少なくとも1つの更なる動き候補リストを有する複数タイプの動き候補リストに適用される。第5の例示的な実施形態の一部の実装において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される。
【0041】
第5の例示的な実施形態の一部の実装において、少なくとも1つの更なる動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間隣接ブロックのみから導出された動き候補を除外する空間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外して履歴ベース動きベクトル予測(HMVP)候補を含むHMVP候補リストである。第5の例示的な実施形態の一部の実装において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを含む。
【0042】
第5の例示的な実施形態の一部の実装において、第2の動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外するHMVP候補リストである。第5の例示的な実施形態の一部の実装において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。第5の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを含む。第5の例示的な実施形態の一部の実装において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。
【0043】
第5の例示的な実施形態の一部の実装において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを含む。第5の例示的な実施形態の一部の実装において、モードはマージモードである。第5の例示的な実施形態の一部の実装において、モードはアドバンスト動きベクトル予測(AMVP)モードである。第5の例示的な実施形態の一部の実装において、モードは三角予測(TPM)モードである。
【0044】
第5の例示的な実施形態の一部の実装において、当該方法は、イントラブロックコピー(IBC)モードに基づいて、第1の映像ブロックに対して動きベクトルを生成することを有し、IBCモードは、第1の映像ブロックを参照ピクチャとして含む現在ピクチャ又は現在タイル又は現在スライスを使用する。第5の例示的な実施形態の一部の実装において、モードは、ブロック寸法に関係付けられる。第5の例示的な実施形態の一部の実装において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。第5の例示的な実施形態の一部の実装において、ブロック寸法は、閾値未満である第1の映像ブロックの高さと幅の積を含む。第5の例示的な実施形態の一部の実装において、閾値は16又は64である。
【0045】
第5の例示的な実施形態の一部の実装において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。第5の例示的な実施形態の一部の実装において、第1の閾値は16であり、第2の閾値は16である。第5の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。第5の例示的な実施形態の一部の実装において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。第5の例示的な実施形態の一部の実装において、第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。第5の例示的な実施形態の一部の実装において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0046】
更なる他の代表的な一態様において、上述の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ読み取り可能なプログラム媒体に格納される。
【0047】
更なる他の代表的な一態様において、上述の方法を実行するように構成された又は動作可能な装置が開示される。当該装置は、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0048】
更なる他の代表的な一態様において、ビデオデコーダ装置が、ここに記載される方法を実装し得る。
【0049】
開示される技術の上述の及び他の態様及び特徴が、図面、明細書、及び特許請求の範囲に更に詳細に記載される。
【図面の簡単な説明】
【0050】
図1】マージ候補リストを構築することの一例を示している。
図2】空間候補の位置の一例を示している。
図3】空間マージ候補の冗長性検査にかけられる候補ペアの一例を示している。
図4A図4A及び図4Bは、現在ブロックのサイズ及び形状に基づく第2の予測ユニット(PU)の位置の例を示している。
図4B図4A及び図4Bは、現在ブロックのサイズ及び形状に基づく第2の予測ユニット(PU)の位置の例を示している。
図5】時間マージ候補に対する動きベクトルスケーリングの一例を示している。
図6】時間マージ候補についての候補位置の一例を示している。
図7】結合双予測マージ候補を生成することの一例を示している。
図8】動きベクトル予測候補を構築することの一例を示している。
図9】空間動きベクトル候補に対する動きベクトルスケーリングの一例を示している。
図10】符号化ユニット(CU)に対して代替的時間動きベクトル予測(ATMVP)アルゴリズムを用いる動き予測の一例を示している。
図11】空間時間動きベクトル予測(STMVP)アルゴリズムによって使用されるサブブロック及び隣接ブロックを備えた符号化ユニット(CU)の一例を示している。
図12】異なるMV精度で符号化することのフローチャートの一例を示している。
図13A図13A及び図13Bは、符号化ユニット(CU)を2つの三角予測ユニット(PU)に分割することの例を示している。
図13B図13A及び図13Bは、符号化ユニット(CU)を2つの三角予測ユニット(PU)に分割することの例を示している。
図14】隣接ブロックの位置の一例を示している。
図15】三角予測モード(TPM)フラグ符号化におけるコンテキスト選択に使用される隣接ブロックの一例を示している。
図16A】単純化された4パラメータアフィンモデルの一例を示している。
図16B】単純化された6パラメータアフィンモデルの一例を示している。
図17】サブブロックごとのアフィン動きベクトル場(MVF)の一例を示している。
図18A】4パラメータアフィンモデルの一例を示している。
図18B】6パラメータアフィンモデルの一例を示している。
図19】継承アフィン候補に対するAF_INTERのための動きベクトル予測の一例を示している。
図20】構築アフィン候補に対するAF_INTERのための動きベクトル予測の一例を示している。
図21A図21A及び図21Bは、AF_MERGEアフィン動きモードに関する候補例を示している。
図21B図21A及び図21Bは、AF_MERGEアフィン動きモードに関する候補例を示している。
図22】アフィンマージモードに関する候補位置の一例を示している。
図23】イントラピクチャブロックコピーの一例を示している。
図24】履歴ベース動きベクトル予測(HMVP)候補に対する符号化フローの一例を示している。
図25】改良マージリスト構築プロセスの一例を示している。
図26A図26A図26Eは、映像符号化のための方法例のフローチャートを示している。
図26B図26A図26Eは、映像符号化のための方法例のフローチャートを示している。
図26C図26A図26Eは、映像符号化のための方法例のフローチャートを示している。
図26D図26A図26Eは、映像符号化のための方法例のフローチャートを示している。
図26E図26A図26Eは、映像符号化のための方法例のフローチャートを示している。
図27】本文書に記載されるビジュアルメディア復号技術又はビジュアルメディア符号化技術を実装するためのハードウェアプラットフォームの一例のブロック図である。
図28】開示される技術が実装され得る映像処理システムの一例のブロック図である。
【発明を実施するための形態】
【0051】
より高い解像度の映像に対する高まる要求により、映像符号化方法及び技術は、現代技術においてどこにでも見られるものになっている。映像コーデックは、典型的に、デジタル映像を圧縮又は解凍する電子回路又はソフトウェアを含み、より高い符号化効率を提供するために絶えず改良されている。映像コーデックは、圧縮されていない映像を圧縮フォーマットに変換し、又はその逆の変換を行う。映像品質、映像を表現するために使用されるデータの量(ビットレートによって決定される)、符号化及び復号のアルゴリズムの複雑さ、データ損失及び誤差に対する感度、編集の容易さ、ランダムアクセス、及びエンド・ツー・エンド遅延(レイテンシ)の間に複雑な関係がある。圧縮フォーマットは、通常、例えばHEVC(High Efficiency Video Coding)標準(H.265又はMPEG-H Part2としても知られている)、成立されることになるVVC(Versatile Video Coding)標準、又は他の現在及び/又は将来の映像符号化標準といった、標準映像圧縮仕様に準拠する。
【0052】
開示される技術の実施形態は、圧縮性能を改善するために、既存の映像符号化標準(例えば、HEVC、H.265)及び将来の標準に適用され得る。本文書では、説明の読みやすさを向上させるためにセクション見出しを使用するが、それらセクション見出しは、説明又は実施形態(及び/又は実装)をそれぞれのセクションのみに限定するものではない。
【0053】
1 HEVC/H.265におけるインター予測の例
映像符号化標準は、長年にわたって大幅に改良されており、今では、部分的に高い符号化効率を提供するとともに、高い解像度をサポートしている。例えばHEVC及びH.265などの最近の標準は、時間予測に加えて変換符号化が利用されるハイブリッド映像符号化構造に基づいている。
【0054】
1.1 予測モードの例
インター予測による各PU(予測ユニット)は、1つ又は2つの参照ピクチャリストに関する動きパラメータを有する。一部の実施形態において、動きパラメータは、動きベクトル及び参照ピクチャインデックスを含む。他の実施形態において、2つの参照ピクチャリストのうちの1つの使用がまた、inter_pred_idcを用いて信号伝達され得る。更なる他の実施形態において、動きベクトルは、予測子に対するデルタとして明示的に符号化され得る。
【0055】
CUがスキップモードで符号化される場合、そのCUに1つのPUが関連付けられ、有意な残差係数は存在せず、符号化された動きベクトルデルタ又は参照ピクチャインデックスは存在しない。マージモードが規定されており、それによれば、現在PUに関する動きパラメータが、空間候補及び時間候補を含め、隣接するPUから取得される。マージモードは、スキップモードに対してだけでなく、任意のインター予測PUに適用されることができる。マージモードに代わるものは、動きパラメータの明示的な伝送であり、それにおいては、動きベクトル、各参照ピクチャリストに関する対応する参照ピクチャインデックス、及び参照ピクチャリスト使用が、PUごとに明示的に信号伝達される。
【0056】
2つの参照ピクチャリストのうちの一方が使用されることを信号伝達が指し示すとき、そのPUは、1つのブロックのサンプルから生成される。これは、‘片予測(uni-prediction)’と呼ばれている。片予測は、Pスライス及びBスライスの両方で利用可能である。
【0057】
それら参照ピクチャリストの両方が使用されることを信号伝達が指し示すとき、そのPUは、2つのブロックのサンプルから生成される。これは、‘双予測(bi-prediction)’と呼ばれている。双予測は、Bスライスでのみ利用可能である。
【0058】
参照ピクチャリスト
HEVCにおいて、インター予測という用語は、現在復号されているピクチャ以外の参照ピクチャのデータ要素(例えば、サンプル値又は動きベクトル)から導出される予測を表記するために使用される。H.264/AVCにおいてと同様に、ピクチャは複数の参照ピクチャから予測されることができる。インター予測に使用される参照ピクチャは、1つ以上の参照ピクチャリストに編成される。予測信号を作成するためにリスト内の参照ピクチャのうちのどれが使用されるべきかを参照インデックスが特定する。
【0059】
Pスライスには、List0なる単一の参照ピクチャリストが使用され、Bスライスには、List0及びList1なる2つの参照ピクチャリストが使用される。なお、List0/1に含まれる参照ピクチャは、キャプチャ/表示順に関して過去及び将来のピクチャからであり得る。
【0060】
1.1.1 マージモードに関する候補を構築することの実施形態
マージモードを使用してPUが予測されるとき、マージ候補リスト内のエントリを指すインデックスがビットストリームから構文解析され、動き情報を取り出すために使用される。このリストの構築は、以下の一連のステップに従って要約され得る。
【0061】
ステップ1:初期候補導出
ステップ1.1:空間候補導出
ステップ1.2:空間候補に関する冗長性検査
ステップ1.3:時間候補導出
ステップ2:追加候補挿入
ステップ2.1:双予測候補の作成
ステップ2.2:ゼロ動き候補の挿入
図1は、上に要約した一連のステップに基づいてマージ候補リストを構築することの一例を示している。空間マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補が選択される。時間マージ候補導出のために、2つの候補の中から最大1つのマージ候補が選択される。デコーダで各PUに対して一定数の候補が仮定されるので、候補の数が、スライスヘッダ内で信号伝達されるマージ候補の最大数(MaxNumMergeCand)に達しない場合、追加候補が生成される。候補の数は一定であるので、最良のマージ候補のインデックスが、truncated unary binarization(TU)を用いて符号化される。CUのサイズが8に等しい場合、現在CUの全てのPUが、2N×2N予測ユニットのマージ候補リストと同じものである単一のマージ候補リストを共有する。
【0062】
1.1.2 空間マージ候補の構築
空間マージ候補の導出では、図2に示す位置にある候補の中から最大4つのマージ候補が選択される。導出の順序はA、B、B、A、及びBである。位置Bは、位置A、B、B、AのうちのいずれかのPUが利用可能でない場合(例えば、それが別のスライス又はタイルに属するため)又はイントラコード化される場合にのみ考慮される。位置Aの候補が追加された後、残りの候補の追加は、符号化効率が向上されるように、同じ動き情報を有する候補がリストから除外されることを保証する冗長性検査にかけられる。
【0063】
計算複雑性を低減させるために、前述の冗長性検査では、可能な全ての候補ペアが考慮されるわけではない。その代わりに、図3の矢印で結び付けられたペアのみが考慮され、冗長性検査に使用される対応する候補が同じ動き情報を持たない場合にのみ、候補がリストに追加される。重複動き情報の別の発生源は、2N×2Nとは異なる分割に関連する“第2のPU”である。一例として、図4A及び4Bは、それぞれ、N×2N及び2N×Nの場合の第2のPUを示している。現在PUがN×2Nに分割されるとき、Aにある候補はリスト構築に考慮されない。一部の実施形態において、この候補を追加することは、同じ動き情報を有する2つの予測ユニットにつながり得るものであり、それは、符号化ユニット内に1つのみのPUを有することには冗長である。同様に、現在PUが2N×Nに分割されるとき、位置Bは考慮されない。
【0064】
1.1.3 時間マージ候補の構築
このステップでは、1つの候補のみがリストに追加される。特に、この時間マージ候補の導出では、所与の参照ピクチャリスト内で現在ピクチャとのPOC差が最小であるピクチャに属するコロケートPUに基づいて、スケーリングされた動きベクトルが導出される。コロケートPUの導出に使用される参照ピクチャリストは、スライスヘッダ内で明示的に信号伝達される。
【0065】
図5は、時間マージ候補に関するスケーリングされた動きベクトルの導出の一例を(点線として)示しており、それは、POC距離tb及びtdを用いて、コロケートPU(col_PU)の動きベクトルからスケーリングされるものであり、ここで、tbは、現在ピクチャ(curr_pic)の参照ピクチャ(curr_ref)と現在ピクチャとの間のPOC差であると定義され、tdは、コロケートピクチャ(col_pic)の参照ピクチャ(col_ref)とコロケートピクチャとの間のPOC差であると定義される。時間マージ候補の参照ピクチャインデックスは、ゼロに等しく設定される。Bスライスでは、一方が参照ピクチャリスト0に関し、他方が参照ピクチャリスト1に関するものである2つの動きベクトルが得られ、これらが組み合わされて、双予測マージ候補をなす。
【0066】
参照フレームに属するコロケートPU(Y)では、図6に示すように、時間候補に関する位置が、候補C及びCの間で選択される。位置CのPUが利用可能でない、又はイントラ符号化される、又は現在CTUの外側にある場合、位置Cが使用される。それ以外の場合には、位置Cが時間マージ候補の導出に使用される。
【0067】
1.1.4 更なるタイプのマージ候補の構築
空間-時間マージ候補の他に、結合双予測マージ候補及びゼロマージ候補という2つの更なるタイプのマージ候補が存在する。結合双予測マージ候補は、空間-時間マージ候補を利用することによって生成される。結合双予測マージ候補はBスライスのみに使用される。結合双予測候補は、当初候補の第1の参照ピクチャリスト動きパラメータを別のものの第2の参照ピクチャリスト動きパラメータと組み合わせることによって生成される。これら2つのタプルが異なる動き仮説を提供する場合、それらは新たな双予測候補を形成する。
【0068】
図7は、このプロセスの一例を示しており、mvL0とrefIdxL0、又はmvL1とrefIdxL1、を有するものである元のリスト(左側の710)内の2つの候補を用いて、最終的なリスト(右側の720)に追加される結合双予測マージ候補が作成される。
【0069】
マージ候補リストの残りのエントリを埋め、それ故にMaxNumMergeCand容量に達するように、ゼロ動き候補が挿入される。これらの候補は、ゼロの空間変位と、ゼロから始まり、新たなゼロ動き候補がリストに追加される度に増加する参照ピクチャインデックスと、を有する。これらの候補によって使用される参照フレームの数は、片方向予測及び双方向予測についてそれぞれ1及び2である。一部の実施形態において、これらの候補に対して冗長性検査は行われない。
【0070】
1.1.5 並列処理に関する動き推定領域の例
符号化プロセスを高速化するために、動き推定を並列に実行することができ、それにより、所与の領域内の全ての予測ユニットに関する動きベクトルが同時に導出される。空間的に隣接するものからのマージ候補の導出は、並列処理を妨げてしまい得る。何故なら、1つの予測ユニットは、それに関連する動き推定が完了するまで、隣接PUから動きパラメータを導出することができないからである。符号化効率と処理レイテンシとの間のトレードオフを緩和するために、動き推定領域(motion estimation region;MER)が規定され得る。MERのサイズは、“log2_parallel_merge_level_minus2”構文要素を用いてピクチャパラメータセット(PPS)内で信号伝達され得る。MERが規定される場合、同じ領域に入るマージ候補は、利用不可とマークされ、それ故に、リスト構築において考慮されない。
【0071】
1.2 アドバンスト動きベクトル予測(AMVP)の実施形態
AMVPは、隣接PUとの動きベクトルの空間-時間相関を利用し、それが動きパラメータの明示的伝送に使用される。これは、先ず、左上の時間的に隣接するPU位置の利用可能性を検査し、冗長候補を除去し、そして、ゼロベクトルを追加して候補リストを一定長さにすることによって、動きベクトル候補リストを構築する。そして、エンコーダは、候補リストから最良の予測子を選択し、選択した候補を指し示す対応するインデックスを送信することができる。同様に、マージインデックス信号伝達では、最良の動きベクトル候補のインデックスがtruncated unaryを用いて符号化される。この場合に符号化される最大値は2である(図8参照)。以下のセクションにて、動きベクトル予測候補の導出プロセスの詳細を提供する。
【0072】
1.2.1 AMVP候補を導出することの例
図8は、動きベクトル予測候補に関する導出プロセスをまとめたものであり、入力としてrefidxを用いて各参照ピクチャリストに対して実行され得る。
【0073】
動きベクトル予測では、空間動きベクトル候補及び時間動きベクトル候補の2種類の動きベクトル候補が考慮される。空間動きベクトル候補導出では、先に図2で示したような5つの異なる位置にある各PUの動きベクトルに基づいて、最終的に2つの動きベクトル候補が導出される。
【0074】
時間動きベクトル候補導出では、2つの異なるコロケート位置に基づいて導出されるものである2つの候補から、1つの動きベクトル候補が選択される。空間-時間候補の第1のリストが作成された後、リスト内の重複した動きベクトル候補が除去される。可能性ある候補の数が2よりも多い場合、関連する参照ピクチャリスト内でその参照ピクチャインデックスが1よりも大きい動きベクトル候補がリストから削除される。空間-時間動きベクトル候補の数が2より少ない場合、追加のゼロ動きベクトル候補がリストに追加される。
【0075】
1.2.2 空間動きベクトル候補の構築
空間動きベクトル候補の導出においては、先に図2で示したような位置にあるPUから導出されるものである5つの可能性ある候補の中の最大2つの候補が考慮され、それらの位置は動きマージの位置と同じである。現在PUの左側についての導出の順序が、A、A、及びスケーリングされたA、スケーリングされたAとして定められる。現在PUの上側についての導出の順序が、B、B、B、スケーリングされたB、スケーリングされたB、スケーリングされたBとして定められる。従って、各側について、動きベクトル候補として使用され得る4つのケースが存在し、2つのケースは空間スケーリングを使用する必要がなく、2つのケースでは空間スケーリングが使用される。それら4つの異なるケースは、以下のようにまとめられる。
【0076】
-空間スケーリングなし
(1)同一参照ピクチャリスト、且つ同一参照ピクチャインデックス(同一POC)
(2)異なる参照ピクチャリスト、しかし、同一参照ピクチャ(同一POC)
-空間スケーリング
(3)同一参照ピクチャリスト、しかし、異なる参照ピクチャ(異なるPOC)
(4)異なる参照ピクチャリスト、且つ異なる参照ピクチャ(異なるPOC)
【0077】
空間スケーリングなしのケースが最初に検査され、空間スケーリングを可能にするケースが続く。空間スケーリングは、参照ピクチャリストにかかわらず、隣接PUの参照ピクチャと現在PUの参照ピクチャとの間でPOCが異なる場合に考慮される。左候補の全てのPUが利用可能でない又はイントラ符号化される場合、左及び上のMV候補の並列導出を助けるために、上の動きベクトルに対するスケーリングが可能にされる。それ以外の場合には、上の動きベクトルに対して空間スケーリングは可能にされない。
【0078】
図9の例に示すように、空間スケーリングのケースでは、隣接PUの動きベクトルが、時間スケーリングに関してと同様のやり方でスケーリングされる。1つの違いは、参照ピクチャリスト及び現在PUのインデックスが入力として与えられることであり、実際のスケーリングプロセスは時間スケーリングのそれと同じである。
【0079】
1.2.3 時間動きベクトル候補の構築
参照ピクチャインデックスの導出は別にして、時間マージ候補の導出のための全てのプロセスは、(図6の例に示したような)空間動きベクトル候補の導出に関してと同じである。一部の実施形態において、参照ピクチャインデックスがデコーダに信号伝達される。
【0080】
2. 共同探索モデル(Joint Exploration Model;JEM)におけるインター予測方法の例
一部の実施形態において、将来の映像符号化技術が、共同探索モデル(JEM)として知られる参照ソフトウェアを用いて探索される。JEMでは、サブブロックベースの予測が、例えばアフィン予測、代替的時間動きベクトル予測(alternative temporal motion vector prediction;ATMVP)、空間時間動きベクトル予測(spatial-temporal motion vector prediction;STMVP)、双方向オプティカルフロー(bi-directional optical flow;BIO)、フレームレートアップコンバージョン(Frame-Rate Up Conversion;FRUC)、局所適応動きベクトルレゾリューション(Locally Adaptive Motion Vector Resolution;LAMVR)、オーバーラップブロック運動補償(Overlapped Block Motion Compensation;OBMC)、局所照明補償(Local Illumination Compensation;LIC)、デコーダ側動きベクトル精緻化(Decoder-side Motion Vector Refinement;DMVR)などの、いくつかの符号化ツールに採用される。
【0081】
2.1 サブCUベース動きベクトル予測の例
四分木プラス二分木(quadtrees plus binary trees;QTBT)を用いるJEMでは、各CUが、各予測方向に対して最大1セットの動きパラメータを持つことができる。一部の実施形態では、エンコーダにおいて、大きなCUを複数のサブCUに分割し、大きなCUの全てのサブCUに対して動き情報を導出することによって、2つのサブCUレベルの動きベクトル予測方法が考慮される。代替的時間動きベクトル予測(ATMVP)法は、各CUが、コロケート参照ピクチャ内の現在CUよりも小さい複数のブロックから複数セットの動き情報をフェッチすることを可能にする。空間-時間動きベクトル予測(STMVP)法では、サブCUの動きベクトルが、時間動きベクトル予測子と空間隣接動きベクトルとを用いることによって再帰的に導出される。一部の実施形態において、サブCU動き予測のためにより正確な動き場を保存するために、参照フレームに対する動き圧縮が無効にされ得る。
【0082】
2.1.1 ATMVP(alternative temporal motion vector prediction)の例
ATMVP法では、時間動きベクトル予測(temporal motion vector prediction;TMVP)法が、現在CUよりも小さい複数のブロックから複数セットの動き情報(動きベクトル及び参照インデックスを含む)をフェッチすることによって修正される。
【0083】
図10は、CU1000に関するATMVP動き予測処理の一例を示している。ATMVP法は、CU1000内の複数のサブCU1001の動きベクトルを2ステップで予測する。第1ステップは、時間ベクトルを用いて参照ピクチャ1050内の対応するブロック1051を特定することである。参照ピクチャ1050は、モーションソースピクチャとも呼ばれる。第2ステップは、現在CU1000をサブCU1001へと分割し、各サブCUに対応するブロックから、各サブCUの動きベクトル及び参照インデックスを取得することである。
【0084】
第1ステップにて、参照ピクチャ1050及び対応するブロックが、現在CU1000の空間隣接ブロックの動き情報によって決定される。隣接ブロックの繰り返し走査処理を回避するために、現在CU1000のマージ候補リスト内の最初のマージ候補が使用される。第1の利用可能な動きベクトル及びそれに関連する参照インデックスが、モーションソースピクチャへの時間ベクトル及びインデックスであるように設定される。斯くして、対応するブロックを、TMVPと比較して、より正確に特定することでき、対応するブロック(同一位置のブロックと呼ばれることもある)は常に現在CUに対して右下又は中央の位置にある。
【0085】
第2ステップにて、現在CUの座標に時間ベクトルを足し合わせることによって、サブCU1051の対応するブロックが、モーションソースピクチャ1050内の時間ベクトルによって特定される。各サブCUについて、対応するブロック(例えば、中心サンプルをカバーする最小動きグリッド)の動き情報を用いて、そのサブCUに関する動き情報が導出される。対応するN×Nブロックの動き情報が特定された後、それが、HEVCのTMVPと同様にして、現在サブCUの動きベクトル及び参照インデックスに変換され、ここで、動きスケーリング及び他の手順が適用される。例えば、デコーダは、低遅延条件(例えば、現在ピクチャの全ての参照ピクチャのPOCが、現在ピクチャのPOCよりも小さいこと)が満たされているかをチェックし、動きベクトルMVx(例えば、参照ピクチャリストXに対応する動きベクトル)を用いて、各サブCUに関する動きベクトルMVy(例えば、Xは0又は1に等しく、Yは1-Xに等しい)を予測し得る。
【0086】
2.1.2 空間-時間動きベクトル予測(STMVP)の例
STMVP法では、サブCUの動きベクトルが、ラスタ走査順に従って再帰的に導出される。図11は、4つのサブブロックを有する1つのCUと隣接ブロックとの一例を示している。4つの4×4のサブCU A(1101)、B(1102)、C(1103)、D(1104)を含む8×8のCU1100を考える。現在フレーム内の隣接する4×4のブロックを、a(1111)、b(1112)、c(1113)、及びd(1114)とラベル付ける。
【0087】
サブCU Aに対する動き導出は、それの2つの空間的に隣接するものを特定することによって開始する。隣接する第1のものは、サブCU A1101の上のN×Nブロック(ブロックc1113)である。このブロックc(1113)が利用可能でない又はイントラ符号化される場合、サブCU A(1101)上の他のN×Nブロックが検査される(ブロックc1113から始めて左から右へ)。隣接する第2のものは、サブCU A1101の左のブロック(ブロックb1112)である。ブロックb(1112)が利用可能でない又はイントラ符号化される場合、サブCU A1101の左の他のブロックが検査される(ブロックb1112から始めて上から下へ)。各リストについてこれら隣接ブロックから得られた動き情報が、所与のリストについての最初の参照フレームに対してスケーリングされる。次に、サブブロックA1101の時間動きベクトル予測子(temporal motion vector predictor;TMVP)が、HEVCで規定されるのと同じTMVP導出手順に従うことによって導出される。ブロックD1104におけるコロケートブロックの動き情報が、然るべくフェッチされてスケーリングされる。最後に、動き情報を取り出してスケーリングした後に、全ての利用可能な動きベクトルが、各参照リストについて別々に平均化される。平均化された動きベクトルが、現在サブCUの動きベクトルとして割り当てられる。
【0088】
2.1.3 サブCU動き予測モード信号伝達の例
一部の実施形態において、サブCUモードは、追加のマージ候補として有効にされ、これらのモードを信号伝達するのに追加の構文要素は必要とされない。ATMVPモード及びSTMVPモードを表すために、各CUのマージ候補リストに2つの追加マージ候補が加えられる。他の実施形態において、シーケンスパラメータセットがATMVP及びSTMVPが有効にされることを指し示す場合に、最大7つのマージ候補が使用され得る。これら追加マージ候補の符号化論理は、HMにおけるマージ候補に関してと同じであり、これは、Pスライス又はBスライス内の各CUについて、2つの追加マージ候補に対して2つの更なるRD検査が必要とされ得ることを意味する。例えばJEMといった一部の実施形態において、マージインデックスの全てのビンが、CABAC(Context-based Adaptive Binary Arithmetic Coding)によってコンテキスト符号化される。例えばHEVCといった他の実施形態では、最初のビンのみがコンテキスト符号化され、残りのビンはコンテキストバイパス符号化される。
【0089】
2.2 VVCにおけるインター予測方法の例
例えば、MVDを信号伝達するための適応動きベクトル差レゾリューション(Adaptive motion vector difference resolution;AMVR)、アフィン予測モード、三角予測モード(TPM)、ATMVP、一般化双予測(GBI)、双方向オプティカルフロー(BIO)などの、インター予測改良のための新たな符号化ツールが幾つか存在する。
【0090】
2.2.1 適応動きベクトル差レゾリューションの例
一部の実施形態において、スライスヘッダ内でuse_integer_mv_flagが0に等しい場合に、(動きベクトルとPUの予測動きベクトルとの間の)動きベクトル差(MVD)が、1/4ルマサンプルの単位で信号伝達される。JEMでは、局所適応動きベクトルレゾリューション(LAMVR)が導入されている。JEMにおいて、MVDは、1/4ルマサンプル、整数ルマサンプル、4ルマサンプルの単位で符号化されることができる。このMVD分解能は、符号化ユニット(CU)レベルで制御され、MVD分解能フラグが、少なくとも1つの非ゼロのMVD成分を持つ各CUに対して条件付きで信号伝達される。
【0091】
少なくとも1つの非ゼロのMVD成分を持つCUに対して、そのCUで1/4ルマサンプルMV精度が使用されるかを指し示すために、第1のフラグが信号伝達される。1/4ルマサンプルMV精度が使用されないことを第1のフラグ(1に等しい)が指し示す場合、整数ルマサンプルMV精度又は4ルマサンプルMV精度が使用されるかを指し示すために、別のフラグが信号伝達される。CUの第1のMVD分解能フラグがゼロである又はCUに対して符号化されない(CU内の全てのMVDがゼロであることを意味する)場合、1/4ルマサンプルMV分解能がそのCUに対して使用される。CUが整数ルマサンプルMV精度又は4ルマサンプルMV精度を使用する場合、そのCUに関するAMVP候補リスト内のMVPは、対応する精度に丸められる。
【0092】
エンコーダにおいて、CUに対してどのMVD分解能が使用されるべきかを決定するために、CUレベルのRD検査が使用される。すなわち、CUレベルのRDチェックが、MVD分解能ごとに、3回実行される。エンコーダ速度を加速させるために、JEMでは以下の符号化スキームが適用される。
【0093】
― 通常の1/4ルマサンプルMVD分解能でのCUのRD検査において、現在CUの動き情報(整数ルマサンプル精度)が格納される。格納された動き情報(丸め後)が、整数ルマサンプル及び4ルマサンプルMVD分解能での同じCUに対するRD検査における更に小さな範囲の動きベクトル精緻化のための開始点として使用され、それにより、時間のかかる動き推定プロセスが3回重複して行われないようにされる。
【0094】
― 4ルマサンプルMVD分解能でのCUのRD検査が、条件付きで呼び出される。CUについて、整数ルマサンプルMVD分解能のRDコストが1/4ルマサンプルMVD分解能のそれよりも遥かに大きい場合、そのCUに対する4ルマサンプルMVD分解能のRD検査がスキップされる。
【0095】
符号化プロセスを図12に示す。先ず、1/4ペル(pel)MVが検査され、RDCost0と表記するRDコストが計算され、次いで、整数MVが検査され、RDコストをRDCost1と表記する。RDCost1<th*RDCost0(ここで、thは正の値にされる閾値である)である場合、4ペルMVが検査され、そうでない場合には、4ペルMVはスキップされる。基本的に、整数MV又は4ペルMVを検査する時に1/4ペルMVについての動き情報及びRDコストなどは既知であり、それを再利用して、整数MV又は4ペルMVの符号化プロセスを高速化することができる。
【0096】
2.2.2 三角予測ユニットモードの例
三角予測ユニットモードの概念は、動き補償予測のために、新しい三角分割を導入するというものである。図13A及び13Bに示すように、三角予測ユニットモードは、CUを、対角線方向又は逆対角線方向のいずれかで、2つの三角形の予測ユニットに分割する。CU内の各三角予測ユニットが、それ自身の片予測動きベクトルと、片予測候補リストから導出される参照フレームインデックスとを用いて、インター予測される。三角予測ユニットを予測した後、対角線エッジに対して適応重み付けプロセスが実行される。そして、変換及び量子化プロセスがCU全体に適用される。なお、このモードは、スキップモード及びマージモードのみに適用される。
【0097】
TPMに関する片予測候補リスト
片予測候補リストは、5つの片予測動きベクトル候補で構成される。それは、図14に示すように、5つの空間隣接ブロック(1-5)及び2つの時間コロケートブロック(6-7)を含む7つの隣接ブロックから導出される。これら7つの隣接ブロックの動きベクトルが収集され、片予測動きベクトル、双予測動きベクトルのL0動きベクトル、双予測動きベクトルのL1動きベクトル、そして、双予測動きベクトルのL0動きベクトルとL1動きベクトルとの平均動きベクトルの順に、片予測候補リストの中に置かれる。候補の数が5未満である場合、ゼロ動きベクトルがリストに追加される。TPMのためにこのリストに追加される動き候補をTPM候補と呼び、空間/時間ブロックから導出される動き情報を通常(regular)動き候補と呼ぶ。
【0098】
より具体的には、以下のステップが含まれる:
1) A、B、B、A、B、Col、及びCol2(図14のブロック1-7に相当)から、剪定処理を行わずに、通常動き候補を得る。
2) 変数numCurrMergeCand=0に設定する
3) A、B、B、A、B、Col、及びCol2から導出された各通常動き候補、及び5未満であるnumCurrMergeCandについて、通常動き候補が(List0又はList1のいずれかからの)片予測である場合、それは直接的にTPM候補としてマージリストに追加され、numCurrMergeCandが1だけ増加される。このようなTPM候補を、‘元々片予測候補’と命名する。
完全な剪定(full pruning)が適用される。
4) A、B、B、A、B、Col、及びCol2から導出された各動き候補、及び5未満であるnumCurrMergeCandについて、通常動き候補が双予測である場合、List0からの動き情報が新たなTPM候補としてTPMマージリストに追加され(すなわち、List0からの片予測であるように変更され)、numCurrMergeCandが1だけ増加される。このようなTPM候補を、‘切り取り(truncated)List0予測候補’と命名する。
完全な剪定が適用される。
5) A、B、B、A、B、Col、及びCol2から導出された各動き候補、及び5未満であるnumCurrMergeCandについて、通常動き候補が双予測である場合、List1からの動き情報がTPMマージリストに追加され(すなわち、List1からの片予測であるように変更され)、numCurrMergeCandが1だけ増加される。このようなTPM候補を、‘切り取りList1予測候補’と命名する。
完全な剪定が適用される。
6) A、B、B、A、B、Col、及びCol2から導出された各動き候補、及び5未満であるnumCurrMergeCandについて、通常動き候補が双予測である場合に、
― List0参照ピクチャのスライスQPがList1参照ピクチャのスライスQPより小さい場合、最初にList1の動き情報がList0参照ピクチャに対してスケーリングされ、2つのMV(一方は元のList0からであり、他方はList1からのスケーリングされたMVである)の平均がTPMマージリストに追加され、このような候補を、List0からの平均片予測動き候補と呼び、numCurrMergeCandが1だけ増加される。
― そうでない場合、最初にList0の動き情報がList1参照ピクチャに対してスケーリングされ、2つのMV(一方は元のList1からであり、他方はList0からのスケーリングされたMVである)の平均がTPMマージリストに追加され、このような候補を、List1からの平均片予測動き候補と呼び、numCurrMergeCandが1だけ増加される。
完全な剪定が適用される。
7) numCurrMergeCandが5未満である場合、ゼロ動きベクトル候補が追加される。
【0099】
候補をリストに挿入するときに、それが、先に追加された候補のうちの1つと同じであるかを見るために、それをそれら全てと比較しなければならない場合、そのようなプロセスを完全な剪定と呼ぶ。
【0100】
適応重み付けプロセス
各三角予測ユニットを予測した後、CU全体についての最終的な予測を導出するために、2つの三角予測ユニット間の対角線エッジに適応重み付けプロセスが適用される。2つの重み付け係数グループが、以下のようにリスト化される:
・ 第1重み付け係数グループ:輝度サンプル及び色度サンプルに対して、それぞれ、{7/8,6/8,4/8,2/8,1/8}及び{7/8,4/8,1/8}が使用される:
・ 第2重み付け係数グループ:輝度サンプル及び色度サンプルに対して、それぞれ、{7/8,6/8,5/8,4/8,3/8,2/8,1/8}及び{6/8,4/8,2/8}が使用される。
【0101】
2つの三角予測ユニットの動きベクトルの比較に基づいて、一方の重み付け係数グループが選択される。第2重み付け係数グループは、2つの三角予測ユニットの参照ピクチャが互いに異なる場合、又はそれらの動きベクトル差が16ピクセルよりも大きい場合に使用される。それ以外の場合には、第1重み付け係数グループが使用される。
【0102】
三角予測モード(TPM)の信号伝達
TPMが使用されるかを指し示す1ビットフラグが最初に信号伝達され得る。その後、(図13A及び13Bに示したような)2つの分割パターンを指し示すインジケーションと、2つの分割の各々に関する選択されたマージインデックスとが、更に信号伝達される。
【0103】
TPMフラグの信号伝達
1つのルマブロックの幅及び高さを、それぞれ、W及びHで表記する。W*H<64である場合、三角予測モードは無効にされる。
【0104】
1つのブロックがアフィンモードで符号化される場合にも、三角予測モードは無効にされる。
【0105】
1つのブロックがマージモードで符号化される場合、そのブロックに対して三角予測モードが有効にされるか、それとも無効であるかを指し示すために、1ビットフラグが信号伝達され得る。
【0106】
そのフラグは、図15に鑑み、3つのコンテキストで符号化され、また、次式:
Ctx index=((左ブロックL利用可能&&LはTPMで符号化?)1:0)
+((上ブロックA利用可能&&AはTPMで符号化?)1:0)
に基づく。
【0107】
2つの分割パターンのインジケーション及び選択マージインデックスの信号伝達
留意されたいことには、(図13A及び13Bに示したような)分割パターン、及び2つの分割のマージインデックスは、結合して符号化される。既存の実装において、制約は、2つの分割が同一参照インデックスを使用することできなかったというものである。従って、2(分割パターン)*N(マージ候補の最大数)*(N-1)個の可能性が存在し、Nは5に設定される。1つのインジケーションが符号化され、そして、分割パターン間のマッピング、2つのマージインデックス、符号化されたインジケーションが、以下に規定される配列:
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}}
から導出され、
分割パターン(45度又は135度)=g_TriangleCombination[signaled indication][0];
Merge index of candidate A=g_TriangleCombination[signaled
indication][1];
Merge index of candidate B=g_TriangleCombination[signaled
indication][2];
2つの動き候補A及びBが導出されると、2つの分割(PU1及びPU2)の動き情報が、A又はBのいずれかから設定され得る。PU1がマージ候補Aの動き情報を使用するのか、それともマージ候補Bの動き情報を使用するかは、これら2つの動き候補の予測方向に依存する。表1は、2つの分割での、2つの導出される動き候補AとBとの間の関係を示している。
【表1】
【0108】
インジケーション(merge_triangle_idxで表記)のエントロピー符号化
merge_triangle_idxは、両端を含めて、[0,39]の範囲内である。K次の指数ゴロム(Exponential Golomb;EG)符号が、merge_triangle_idxの二値化のために使用され、kは1に設定される。
【0109】
K次のEG
より大きい数をより小さいビットで符号化するために(より小さい数を符号化するためにより多くのビットを使用することを犠牲にして)、これは、負でない整数パラメータkを用いて一般化されることができる。負でない整数xをk次の指数ゴロム(exp-Golomb)符号で符号化するために:
(1) 上述の0次のexp-Golomb符号を用いて
(外1)
を符号化し、次いで、
(2)x mod 2をバイナリで符号化する。
【表2】
【0110】
2.2.3 アフィン動き補償予測の例
HEVCでは、動き補償予測(motion compensation prediction;MCP)に並進動きモデルのみが適用されている。しかしながら、カメラ及び被写体は、例えばズームイン/アウト、回転、遠近動作、及び/又は他の不規則な動きといった、多くの種類の動きを有し得る。VVCでは、4パラメータアフィンモデル及び6パラメータアフィンモデルを用いて、簡略化されたアフィン変換動き補償予測が適用されている。図16A及び16Bに示すように、ブロックのアフィン動き場が、それぞれ、(変数a、b、e及びfを使用する4パラメータアフィンモデルにおける)2つ又は(変数a、b、c、d、e及びfを使用する6パラメータアフィンモデルにおける)3つによって記述される。
【0111】
ブロックの動きベクトル場(motion vector field;MVF)は、4パラメータアフィンモデル及び6パラメータアフィンモデルで、それぞれ次式:
【数1】
で記述される
ここで、(mv ,mv )は、左上角の制御点(control point;CP)の動きベクトルであり、(mv ,mv )は、右上角の制御点の動きベクトルであり、(mv ,mv )は左下角の制御点の動きベクトルであり、(x,y)は、現在ブロック内の左上サンプルに対する代表点の座標を表す。CP動きベクトルは、(アフィンAMVPモードにおいてのように)信号伝達されるか、あるいは、(アフィンマージモードにおいてのように)オンザフライで導出されるかし得る。w及びhは、現在ブロックの幅及び高さである。実際には、除算は、丸め演算を用いた右シフトによって実行される。VTMでは、代表点は、サブブロックの中心位置であると定められ、例えば、現在ブロック内の左上のサンプルに対するサブブロックの左上角の座標が(xs,ys)であるとき、代表点の座標は(xs+2,ys+2)であると定められる。各サブブロック(例えば、VTMにおいて4×4)に対して、代表点を使用して、サブブロック全体の動きベクトルを導出する。
【0112】
図17は、ブロック1700についてのサブブロックごとのアフィンMVFの一例を示しており、動き補償予測を更に単純化するために、サブブロックベースのアフィン変換予測が適用される。各M×Nサブブロックの動きベクトルを導出するため、各サブブロックの中心サンプルの動きベクトルが、式(1)及び(2)に従って計算され、動きベクトル分数精度(例えば、JEMにおいて1/16)に丸められ得る。次いで、動き補償補間フィルタを適用して、導出された動きベクトルを有する各サブブロックの予測を生成することができる。1/16ペル用の補間フィルタがアフィンモードによって導入される。MCPの後、各サブブロックの高精度動きベクトルが丸められ、通常動きベクトルと同じ精度で保存される。
【0113】
2.2.4 アフィン予測の信号伝達に関する例
並進動きモデルと同様に、アフィン予測によるサイド情報を信号伝達することには、やはり2つのモードが存在する。それらは、AFFINE_INTERモード及びAFFINE_MERGEモードである。
【0114】
2.2.5 AF_INTERモードの例
幅及び高さの両方が8よりも大きいCUに対して、AF_INTERモードを適用することができる。AF_INTERモードが使用されるかを指し示すために、CUレベルでのアフィンフラグがビットストリーム内で信号伝達される。このモードでは、各参照ピクチャリスト(List0又はList1)に対して、アフィンAMVP候補リストが、3種類のアフィン動き予測子を以下の順に有して構築され、各候補が、現在ブロックの推定CPMVを含む。エンコーダ側で見出される最良のCPMV(例えば図20中のmv mv mvなど)と推定CPMVとの差が信号伝達される。加えて、それから推定CPMVが導出されたアフィンAMVP候補のインデックスが更に信号伝達される。
【0115】
1) 継承(inherited)アフィン動き予測子
検査順序は、HEVC AMVPリスト構築における空間MVPのそれと同様である。第一に、左の継承アフィン動き予測子が、アフィン符号化され且つ現在ブロックにおいてと同じ参照ピクチャを持つ{A1,A0}内の最初のブロックから導出される。第二に、上の継承アフィン動き予測子が、アフィン符号化され且つ現在ブロックにおいてと同じ参照ピクチャを持つ{B1,B0,B2}内の最初のブロックから導出される。これら5つのブロックA1、A0、B1、B0、B2を図19に示す。
【0116】
ある隣接ブロックがアフィンモードで符号化されることが分かると、その隣接ブロックをカバーする符号化ユニットのCPMVを用いて、現在ブロックのCPMVの予測子が導出される。例えば、A1が非アフィンモードで符号化され、A0が4パラメータアフィンモードで符号化される場合、左の継承アフィンMV予測子は、A0から導出されることになる。この場合、図21Bにおいて左上のCPMVに対してMV で表記し、右上のCPMVに対してMV で表記するような、A0をカバーするCUのCPMVを使用して、現在ブロックの左上位置(座標(x0,y0)を有する)、右上位置(座標(x1,y1)を有する)及び右下位置(座標(x2,y2)を有する)に対してMV 、MV 、MV で表記した、現在ブロックの推定CPMVが導出される。
【0117】
2) 構築アフィン動き予測子
構築アフィン動き予測子は、同じ参照ピクチャを有した、図20に示すような隣接するインター符号化ブロックから導出される制御点動きベクトル(control-point motion vector;CPMV)で構成される。現在のアフィン動きモデルが4パラメータアフィンである場合、CPMVの数は2であり、そうでなく現在のアフィン動きモデルが6パラメータアフィンである場合、CPMVの数は3である。
左上CPMV:
【数2】
(バーmv、以下同様)
が、インター符号化され且つ現在ブロックにおいてと同じ参照ピクチャを持つグループ{A,B,C}内の最初のブロックにおけるMVによって導出される。右上CPMVであるバーmvが、インター符号化され且つ現在ブロックにおいてと同じ参照ピクチャを持つグループ{D,E}内の最初のブロックにおけるMVによって導出される。左下CPMVであるバーmvが、インター符号化され且つ現在ブロックにおいてと同じ参照ピクチャを持つグループ{F,G}内の最初のブロックにおけるMVによって導出される。
― 現在のアフィン動きモデルが4パラメータアフィンである場合、バーmv及びmvの両方が見出された場合にのみ、すなわち、現在ブロックの左上位置(座標(x0,y0)を有する)、右上位置(座標(x1,y1)を有する)に対する推定CPMVとして、バーmv及びmvが使用される場合にのみ、構築アフィン動き予測子が候補リストに挿入される。
― 現在のアフィン動きモデルが6パラメータアフィンである場合、バーmv、mv及びmvが全て見出された場合にのみ、すなわち、現在ブロックの左上位置(座標(x0,y0)を有する)、右上位置(座標(x1,y1)を有する)及び左下位置(座標(x2,y2)を有する)に対する推定CPMVとして、バーmv、mv及びmvが使用される場合にのみ、構築アフィン動き予測子が候補リストに挿入される。
構築アフィン動き予測子を候補リストに挿入するときに剪定プロセスは適用されない。
【0118】
3) 通常AMVP動き予測子
アフィン動き予測子の数が最大値に達するまで、以下が適用される:
1) 利用可能である場合に全てのCPMVをバーmvに等しく設定することによって、アフィン動き予測子を導出する;
2) 利用可能である場合に全てのCPMVをバーmvに等しく設定することによって、アフィン動き予測子を導出する;
3) 利用可能である場合に全てのCPMVをバーmvに等しく設定することによって、アフィン動き予測子を導出する;
4) 利用可能である場合に全てのCPMVをHEVC TMVPに等しく設定することによって、アフィン動き予測子を導出する;
5) 全てのCPMVをゼロMVに設定することによって、アフィン動き予測子を導出する。
なお、バーmvは、構築アフィン動き予測子にて既に導出されている。
【0119】
AF_INTERモードにおいて、4/6パラメータアフィンモードが使用されるとき、図18A及び18Bに示すように、2つ/3つの制御点が必要とされ、従って、それらの制御点に対して2つ/3つのMVDを符号化する必要がある。既存の実装では、MVは以下のように導出されることができ、例えば、これは、mvdからmvd及びmvdを予測する:
【数3】
ここで、バーmv、mvd、及びmvは、それぞれ、予測動きベクトル、動きベクトル差、及び図18Bに示す左上ピクセル(i=0)、右上ピクセル(i=1)又は左下ピクセル(i=2)の動きベクトルである。一部の実施形態において、2つの動きベクトル(例えば、mvA(xA,yA)及びmvB(xB,yB))の追加は、2つの成分の別々の足し合わせに等しい。例えば、新MV=mvA+mvBは、新MVの2つの成分がそれぞれ(xA+xB)及び(yA+yB)に設定されることを意味する。
【0120】
2.2.6 AF_MERGEモードの例
AF_MERGEモードにおいてCUが適用されるとき、それは、有効な隣接再構成ブロックからアフィンモードで符号化された最初のブロックを取得する。そして、候補ブロックの選択順序は、図21Aに示すように、左から、上、右上、左下、左上(順に、A、B、C、D、Eで表記している)である。例えば、隣接左下ブロックが、図21BにおいてA0で表すようにアフィンモードで符号化される場合、ブロックAを含む隣接CU/PUの左上角、右上角、及び左下角の制御点(CP)動きベクトルmv 、mv 、及びmv がフェッチされる。そして、現在CU/PU上の左上/右上/左下角の動きベクトルmv 、mv 、及びmv (これは6パラメータアフィンモデルでのみ使用される)が、mv 、mv 、及びmv に基づいて算出される。なお、VTM-2.0では、現在ブロックがアフィン符号化される場合、左上角にあるサブブロック(例えば、VTMにおいて4×4ブロック)がmv0を格納し、右上角にあるサブブロックがmv1を格納する。現在ブロックが6パラメータアフィンモデルで符号化される場合、左下角にあるサブブロックがmv2を格納し、そうでない場合には(4パラメータアフィンモデルでは)、LBがmv2’を格納する。他のサブブロックは、MCに使用されるMVを格納する。
【0121】
現在CUのCPMV v0及びv1が、式(1)及び(2)にてアフィン動きモデルに従って計算された後、現在CUのMVFを生成することができる。現在CUがAF_MERGEモードで符号化されるかを特定するために、少なくとも1つの隣接ブロックがアフィンモードで符号化される場合に、アフィンフラグをビットストリーム内で信号伝達することができる。
【0122】
一部の実施形態(例えば、JVET-L0142及びJVET-L0632)において、アフィンマージ候補リストは、以下のステップで構築され得る。
【0123】
1) 継承アフィン候補を挿入する
継承アフィン候補は、その候補がそれの有効な隣接アフィン符号化ブロックのアフィン動きモデルから導出されることを意味する。コモンベースで、図24に示すように、候補位置の走査順序は、A1、B1、B0、A0及びB2である。
【0124】
候補が導出された後、同じ候補がリストに挿入されているかを検査するために、完全な剪定プロセスが実行される。同じ候補が存在する場合、導出された候補は破棄される。
【0125】
2) 構築アフィン候補を挿入する
アフィンマージ候補リスト内の候補の数がMaxNumAffineCand(この寄稿では5に設定)よりも少ない場合、構築アフィン候補が候補リストに挿入される。構築アフィン候補は、各制御点の隣接動き情報を組み合わせることによって構築される候補を意味する。
【0126】
先ず、図24に示すように、制御点に関する動き情報が、特定の空間的に隣接するもの及び時間的に隣接するものから導出される。CPk(k=1,2,3,4)は、k番目の制御点を表す。A0、A1、A2、B0、B1、B2、及びB3は、CPk(k=1,2,3)を予測するための空間位置であり、Tは、CP4を予測するための時間位置である。
【0127】
CP1、CP2、CP3、及びCP4の座標は、それぞれ、(0,0)、(W,0)、(H,0)、及び(W,H)であるり、ここで、W及びHは、現在ブロックの幅及び高さである。
【0128】
各制御点の動き情報は、以下の優先順位に従って取得される:
CP1について、検査優先度はB2→B3→A2である。B2が利用可能である場合、それが使用される。そうでなくB3が利用可能である場合、B3が使用される。B2及びB3の両方が利用可能でない場合、A2が使用される。これら3つの候補が全て利用可能でない場合には、CP1の動き情報を得ることはできない;
CP2について、検査優先度はB1→B0である;
CP3について、検査優先度はA1→A0である;
CP4については、Tが用いられる。
【0129】
第二に、アフィンマージ候補を構築するために、制御点の組み合わせが使用される。
【0130】
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パラメータ動きモデルに変換されることになる。
【0131】
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パラメータ動きモデルに変換されることになる。
【0132】
構築アフィン候補の組み合わせは、次の順序で候補リストに挿入される:{CP1,CP2,CP3}、{CP1,CP2,CP4}、{CP1,CP3,CP4}、{CP2,CP3,CP4}、{CP1,CP2}、{CP1,CP3}、{CP2,CP3}、{CP1,CP4}、{CP2,CP4}、{CP3,CP4}。
【0133】
組み合わせの参照リストX(Xは0又は1)について、制御点の中で最も高い使用率を有する参照インデックスが、リストXの参照インデックスとして選択され、差分参照ピクチャを指す動きベクトルがスケーリングされる。
【0134】
候補が導出された後、同じ候補がリストに挿入されているかを検査するために、完全な剪定プロセスが実行される。同じ候補が存在する場合、導出された候補は破棄される。
【0135】
3) ゼロ動きベクトルでのパディング
アフィンマージ候補リスト内の候補の数が5未満である場合、リストがいっぱいになるまで、ゼロ参照インデックスを持つゼロ動きベクトルが候補リストに挿入される。
【0136】
2.3 現在ピクチャ参照(current picture referencing;CPR)の例
現在ピクチャ参照(CPR)とも呼ばれるイントラブロックコピー(IBC、又はイントラピクチャブロック補償)が、HEVCスクリーンコンテンツ符号化エクステンション(SCC)で採用された。このツールは、テキスト及びグラフィックスが豊富なコンテンツにおける繰り返しパターンが同一ピクチャ内で頻繁に発生するスクリーンコンテンツ映像の符号化にとって非常に効率的である。同じ又は類似のパターンを有する先に再構成されたブロックを予測子とすることは、予測誤差を効果的に低減することができ、ひいては、符号化効率を向上させることができる。イントラブロック補償の一例を図23に示す。
【0137】
HEVC SCCにおけるCRPの設計と同様に、VVCにおいて、IBCモードの使用は、シーケンス及びピクチャレベルの両方で信号伝達される。IBCモードがシーケンスパラメータセット(SPS)で有効にされるとき、それはピクチャレベルで有効にされることができる。IBCモードがピクチャレベルで有効にされるとき、現在再構成ピクチャが参照ピクチャとして扱われる。従って、IBCモードの使用を信号伝達するために、既存のVVCインターモードに加えての、ブロックレベルの構文変更は必要とされない。
【0138】
CPRの特徴の一部は、以下を含む:
・ これは通常インターモードとして扱われる。従って、IBCモードでは、マージモード及びスキップモードも利用可能である。IBCモード又はHEVCインターモードのいずれかで符号化される隣接位置からのマージ候補を含め、マージ候補リスト構築が統一される。選択されたマージインデックスに応じて、マージモード又はスキップモードの下の現在ブロックは、異なるピクチャを参照ピクチャとして、IBCモード符号化された隣接するもの又はその他で通常インターモード符号化されたもののいずれかにマージすることができる。
・ IBCモードのブロックベクトル予測及び符号化スキームは、HEVCインターモード(AMVP及びMVD符号化)における動きベクトル予測及び符号化に使用されるスキームを再利用する。
・ ブロックベクトルとも呼ばれるIBCモードの動きベクトルは、整数ペル精度で符号化されるが、補間段階及びデブロッキング段階で1/4ペル精度が要求されるので、復号後に1/16ペル精度でメモリに格納される。IBCモードの動きベクトル予測で使用されるとき、格納されたベクトル予測子は4だけ右シフトされることになる。
・ 探索範囲:現在CTU内に制限される。
・ アフィンモード/三角モード/GBI/重み付け予測が有効にされるとき、CPRは可能にされない。
【0139】
2.4 VVCにおけるマージリスト設計の例
VVCでは、以下の3つの異なるマージリスト構築プロセスがサポートされている。
【0140】
(1)サブブロックマージ候補リスト:これは、ATMVP及びアフィンマージ候補を含む。1つのマージリスト構築プロセスが、アフィンモード及びATMVPモードの両方で共有される。ここで、ATMVP及びアフィンマージ候補が順に追加され得る。サブブロックマージリストのサイズはスライスヘッダ内で信号伝達され、最大値は5である。
【0141】
(2)片予測TPMマージリスト:三角予測モードでは、2つの分割がそれら自身のマージ候補インデックスを選択し得るとしても、2つの分割に対する1つのマージリスト構築プロセスが共有される。このマージリストを構築するとき、ブロックの空間隣接ブロック及び2つの時間ブロックが検査される。空間隣接及び時間ブロックから導出される動き情報は、我々のIDFでは通常動き候補と呼ばれている。これらの通常動き候補は、複数のTPM候補を導出するために更に利用される。なお、2つの分割がそれら自身の予測ブロックを生成するために異なる動きベクトルを使用し得るとしても、変換はブロック全体のレベルで実行される。一部の実施形態において、片予測TPMマージリストサイズは5であるように固定される。
【0142】
(3)通常のマージリスト:残りの符号化ブロックでは、1つのマージリスト構築プロセスが共有される。ここで、空間/時間/HMVP、ペアワイズ結合双予測マージ候補、及びゼロ動き候補が、順に挿入され得る。通常マージリストサイズはスライスヘッダ内で信号伝達され、最大値は6である。
【0143】
サブブロックマージ候補リスト
全てのサブブロック関係の動き候補を、非サブブロックマージ候補用の通常マージリストに加えての別個のマージリストに入れることが提案される。
【0144】
サブブロック関係の動き候補は、‘サブブロックマージ候補リスト’という名の別個のマージリストに入れられる。
【0145】
一例において、サブブロックマージ候補リストは、アフィンマージ候補、及びATMVP候補、及び/又はサブブロックベースのSTMVP候補を含む。
【0146】
JVET-L0278
この寄稿において、通常マージリスト内のATMVPマージ候補が、アフィンマージリストの最初の位置に移動される。それにより、新しいリスト(すなわち、サブブロックベースのマージ候補リスト)内の全てのマージ候補がサブブロック符号化ツールに基づく。
【0147】
通常マージリスト
マージリスト設計とは異なり、VVCでは、履歴ベース動きベクトル予測(HMVP)法が採用される。
【0148】
HMVPでは、先に符号化された動き情報が格納される。先に符号化されたブロックの動き情報は、HMVP候補として規定される。複数のHMVP候補が、HMVPテーブルと名付けられたテーブルに格納され、そして、このテーブルが、符号化/復号プロセス中にオンザフライで維持管理される。HMVPテーブルは、新たなスライスを符号化/復号し始めるときに空(エンプティ)にされる。インター符号化ブロックがあるといつでも、関連する動き情報が、新たなHMVP候補として、テーブルの最後のエントリに追加される。全体的な符号化フローを図24に示す。
【0149】
HMVP候補は、AMVP及びマージ候補リスト構築プロセスの両方で使用され得る。図25は、(灰色でハイライトして)改良マージ候補リスト構築プロセスを示している。TMVP候補の挿入後にマージ候補リストがいっぱいでないとき、HMVPテーブルに格納されたHMVP候補を使用して、マージ候補リストを充たし得る。1ブロックは、通常、動き情報に関して、最も近い隣接ブロックといっそう高い相関を持つことを考慮して、テーブル内のHMVP候補はインデックスの降順に挿入される。テーブル内の最後のエントリが最初にリストに追加され、最初のエントリは最後に追加される。同様に、HMVP候補に対して冗長性除去が適用される。利用可能なマージ候補の総数が、信号伝達されることが許されるマージ候補の最大数に達すると、このマージ候補リスト構築プロセスは終了する。
【0150】
3 既存の実装の欠点
既存のVVC実装では、3つの異なるマージリストが、ハードウェア実装コストを増加させる異なる手順で利用される。
【0151】
3つのマージリストの全てで、それらは、例えば空間ブロック及び時間ブロックから動き情報をロードするなど、空間ブロック及び時間ブロックの両方にアクセスする必要がある。しかしながら、時間ブロックから動き情報をロードすることは、典型的に、遥かに長い時間を必要とし、それがクリティカルパスを増加させる。
【0152】
4 映像符号化のための別個の動き候補リストに関する方法例
ここで開示される技術の実施形態は、既存の実装の欠点を克服し、それにより、より高い符号化効率を有する映像符号化を提供する。開示される技術に基づく、映像符号化のための別々の動き候補リストの構築は、既存の及び将来の映像符号化標準の双方を強化することができ、種々の実装に関して説明される以下の例にて明らかになる。以下に提供される開示技術の例は、一般的概念を説明するものであり、限定するものとして解釈されることを意味するものではない。一例において、そうでないことが明示的に示されない限り、これらの例にて説明される様々な特徴は組み合わされることができる。なお、提案される技術のうちの一部は、既存の候補リスト構築プロセスに適用され得る。
【0153】
動き情報が由来するところに基づく複数の候補リスト
例1. 時間候補リストと呼ぶ別個の候補リストが構築され、純粋に空間ブロックからの動き情報は除外される。
【0154】
(a)一例において、時間ブロックのみからの動き情報(このような動き情報が時間候補として追加される)が考慮される時間候補リストが構築される。
【0155】
(b)一例において、時間候補リストはまた、例えばサブブロックベースのSTMVP又は非サブブロックベースのSTMVPなどの、時間ブロック及び空間ブロックの両方にアクセスすることを必要とする候補を含んでもよい。
【0156】
(c)一例において、時間マージ候補リストは、時間隣接ブロック情報を使用してアフィンモデルを導出するアフィンマージ候補を含んでもよい。
【0157】
(i)あるいは、時間隣接ブロック情報を使用してアフィンモデルを導出するアフィンマージ候補が、別個のマージ候補リストにあるようにされる。
【0158】
(d)一例において、時間候補リストはまた、HMVP候補を含んでもよい。
【0159】
(e)一例において、時間候補リストはまた、時間候補及び/又はHMVP候補から導出された仮想候補を含んでもよい。
【0160】
(f)一例において、時間候補リストは、以下の候補のみ、すなわち、1つの候補が、例えばTMVPなど、ブロック全体に適用される1セットの動き情報のみに関連付けられる候補、のみを含んでもよい。
【0161】
(g)一例において、時間候補リストは、以下の候補のみ、すなわち、1つの候補が、例えばATMVPなど、各セットがブロック全体内のサブブロックに適用される複数セットの動き情報に関連付けられるもののみの候補、のみを含んでもよい。
【0162】
(h)一例において、時間ブロックにアクセスする必要がある全ての動き候補について、それら時間ブロックの全てが同じ参照ピクチャからのものである。あるいは、時間ブロックにアクセスする必要がある全ての動き候補について、それら時間ブロックの全てが、各参照ピクチャリストの1つの参照ピクチャからのものである。
【0163】
(i)一例において、時間ブロックにアクセスする必要がある全ての動き候補について、それらの時間ブロックがあるピクチャが、予め定められている(例えば、0に等しい参照インデックス)又はSPS/PPS/スライスヘッダ/タイルグループヘッダ/タイル/CTU/CU/PU内で信号伝達されるとしてもよい。
【0164】
(j)一例において、時間ブロックにアクセスする必要がある全ての動き候補について、それら時間ブロックの全てが、現在ブロックとコロケートの又は同じCTU(符号化ツリーユニット)行にある。
【0165】
(k)一例において、時間ブロックにアクセスする必要がある全ての動き候補について、映像ユニットが複数の重なり合わないM×N領域に分割されるときに、それら時間ブロックの全てが同一領域(M×Nに等しいサイズを有し、例えば、M=N=64)にあり、ここで、M及びNは、予め定められ、あるいは、SPS/PPS/スライスヘッダ/タイルグループヘッダ/タイル/CTU/CU/PU内で信号伝達され得る。
【0166】
(l)あるいは、さらに、このリスト内の動き候補に対して一般化双予測(GBi)が無効にされ、動き候補リスト内の動き候補に対してGBiインデックスが0に設定される。GBiは、CUレベルの重みを用いた双予測(Bi-prediction with CU-level Weights;BCW)としても知られている。
【0167】
例2. 空間候補リストと呼ぶ別個の候補リストが構築され、時間ブロックからの動き情報は除外される。
【0168】
(a)一例において、空間ブロックのみからの動き情報(このような動き情報が空間候補として追加される)が考慮される空間候補リストが構築される。
【0169】
(b)一例において、空間候補リストはまた、HMVP候補を含んでもよい。
【0170】
(c)一例において、空間候補リストはまた、空間候補及び/又はHMVP候補から導出された仮想候補を含んでもよい。
【0171】
一部の実施形態において、動き候補リストは、時間ブロック及び空間ブロックの両方に基づく動き候補を有する。一部の実施形態において、動き候補は、サブブロックベースの空間時間動きベクトル予測(STMVP)又は非サブブロックベースのSTMVPに使用される。
【0172】
例3. CPR候補リストと呼ぶ別個の候補リストが構築され、全ての候補が同一参照ピクチャに関連付けられる。
【0173】
(a)一例において、同一参照ピクチャは、現在ピクチャ/タイル/スライスとして定められる。
【0174】
(b)一例において、全ての候補が片予測候補である。あるいは、片予測候補及び双予測候補の両方を含むことが可能にされるが、参照ピクチャはなおも、両方の参照ピクチャリストに対して同じである。
【0175】
(c)このような候補リストは、空間ブロック(隣接又は非隣接)からの動き情報を含んでもよい。
【0176】
(d)このような候補リストは、予め定められた、あるいは、現在ブロックの位置に基づいて及び/又はCPRモード(又はIBCモード)の許容探索範囲に基づいて及び/又は動き補償ブロックの最大許容ユニットサイズ(例えば、64×64)に基づいて計算された、動きベクトルを有する何らかのデフォルト動き候補を含んでもよい。
【0177】
例4. 一例において、ATMVPが、別個にされたマージ候補リスト内にある。ATMVPは、サブブロックTMVP(SbTMVP)としても知られている。
【0178】
(a)あるいは、それは、時間マージ候補リストにあるが、常に、例えば最初の位置などの固定位置を保持する。
【0179】
一部の実施形態において、映像の映像ブロックに対する動き候補リストが構築され、該動き候補リストは、ATMVP候補を有するが、アフィン候補を除外する。
【0180】
例5. 時間及び/又は空間候補リスト及び/又は他の種類の候補リスト(例えば、HMVP候補リスト)のリストサイズは、予め定められてもよく、例えば、K(例えば、K=5又は6)に等しくされ得る。予め定められたリストサイズは、第1の動き候補リスト内の最大許容動き候補数を記述することができる。
【0181】
(a)あるいは、候補リストサイズの別個のシグナリングが使用されてもよい。
【0182】
(b)あるいは、候補リストサイズは、一度に信号伝達されて、全ての種類の候補リストに適用されてもよい。
【0183】
(c)エンコーダからデコーダへの信号伝達は、SPS/PPS/スライスヘッダ/タイルグループヘッダ/タイル/CTU/CU/PU内で行われ得る。
【0184】
例6. HMVP候補リストと呼ぶ別個の候補リストが構築され、該リストにHMVP候補のみを含めることが提案される。
【0185】
(a)あるいは、さらに、何らかのデフォルト動きベクトル候補(例えば、ゼロ動きベクトル候補)も含めてもよい。
【0186】
(b)あるいは、さらに、既存のHMVP候補から導出された一部の候補も含めてもよい。
【0187】
例7. 複数の候補リストが存在する場合、リストインデックスが更に信号伝達され得る。
【0188】
(a)一例において、隣接ブロックのリストインデックスが、例えばコンテキストに使用されるなど、現在ブロックのリストインデックスを符号化するために利用され得る。
【0189】
(b)信号伝達されるリストインデックスの同じ値が、異なるブロックに対する異なるマージリストに対応してもよい。
【0190】
(c)リストインデックスの信号伝達は、例えばTPM、非アフィン及び非TPMモードなどの符号化モード情報に依存してもよい。
【0191】
一部の実施形態において、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することができる。一部の実施形態において、モードに基づいて、映像ブロックと該映像ブロックを含む映像のビットストリーム表現との間での変換において、第1の動き候補リスト構築方法が第1の映像ブロックに対して有効にされると決定することができる。
【0192】
例8. 異なる候補リスト間で剪定処理が行われ得る。
【0193】
(a)候補が別の候補リスト内の候補と同じ又は類似である場合、その候補は候補リストに挿入されないとし得る。
【0194】
例9. 以上の方法は、特定のモードに対して適用可能としてもよい。
【0195】
(a)それがあるモードに対して無効にされる場合、マージリストインデックスは信号伝達されない。
【0196】
(b)一例において、マージモードには別個の候補リストが使用されるが、AMVPモードには使用されないとし得る。
【0197】
(c)一例において、別個の候補リストはTPMモードに対して無効にされてもよい。すなわち、TPM符号化ブロックに対しては1つのリストのみが構築される。
【0198】
(d)以上の方法は、特定のブロックサイズに対して適用可能としてもよい。W及びHを、それぞれ、ブロック幅及び高さとすると、以上の方法は、以下のときに適用され得る:
(i)W*Hが閾値(例えば、64)に等しい及び/又はそれよりも大きい;
(ii)W≧T0及び/又はH≧T1であり、例えば、T0及びT1は両方とも16に設定される。
【0199】
上述の例は、例えば方法2600Aから2600Eといった、映像デコーダ又は映像エンコーダに実装され得るものである以下に記載の方法のコンテキストにて組み込まれ得る。
【0200】
図26Aは、映像処理のための例示的な方法2600Aの第1のフローチャートを示している。動作2610にて、映像の第1の映像ブロックに対して、第1の動き候補リストが、空間ブロックのみから導出された動き候補を除外する第1の動き候補リスト構築方法を用いて構築される。動作2615にて、構築された第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換が実行される。
【0201】
方法2600Aに関する一部の実施形態において、第1の動き候補リストは、時間ブロックのみからの動き候補を有する。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、時間ブロック及び空間ブロックの両方に基づく動き候補を有する。方法2600Aに関する一部の実施形態において、動き候補は、サブブロックベースの空間時間動きベクトル予測(STMVP)又は非サブブロックベースのSTMVPに使用される。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、第1の映像ブロックの時間的に隣接する映像ブロックからの情報を用いてアフィンモデルを導出するアフィンマージ候補を有する。
【0202】
方法2600Aに関する一部の実施形態において、第1の動き候補リストは、第1の映像ブロックの時間的に隣接する映像ブロックからの情報を用いてアフィンモデルを導出するアフィンマージ候補を除外する。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、履歴ベース動きベクトル予測(HMVP)候補を有する。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、履歴ベース動きベクトル予測(HMVP)候補又は時間動き候補から導出された仮想候補を有する。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、以下の動き候補のみを有し、すなわち、各動き候補が、第1の映像ブロックの全体に適用される単一セットの動き情報に関連付けられるもののみの動き候補、のみを有する。
【0203】
方法2600Aに関する一部の実施形態において、第1の動き候補リストは、以下の動き候補のみを有し、すなわち、各動き候補が、複数セットの動き情報に関連付けられるもののみの動き候補、のみを有し、複数セットの動き情報の各々が、第1の映像ブロックのサブブロックに適用される。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、同じ参照ピクチャの複数の時間ブロックに関連する複数の動き候補を有する。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、各参照ピクチャリストの1つの参照ピクチャに関連する複数の時間ブロックに関連する複数の動き候補を有する。
【0204】
方法2600Aに関する一部の実施形態において、第1の動き候補リストは、ピクチャ内に位置する複数の時間ブロックに関連する複数の動き候補を有し、そのピクチャの参照インデックスは、予め定められており、あるいは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)内で信号伝達される。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、第1の映像ブロックを有するコロケート符号化ツリーユニット(CTU)行内に位置する複数の時間ブロックに関連する複数の動き候補を有する。
【0205】
方法2600Aに関する一部の実施形態において、第1の動き候補リストは、映像ユニットが複数の重なり合わないM×N領域に分割されるときに、サイズM×Nの同一領域内に位置する複数の時間ブロックに関連する複数の動き候補を有し、M及びNは、予め定められた整数、あるいは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)内で信号伝達される整数である。方法2600Aに関する一部の実施形態において、第1の動き候補リスト内の動き候補に対して、一般化双予測(GBi)が無効にされ、GBiインデックスが、第1の動き候補リスト内の動き候補に対して0に設定される。方法2600Aに関する一部の実施形態において、第1の動き候補リストは、代替的時間動きベクトル予測(ATMVP)候補を有する。方法2600Aに関する一部の実施形態において、ATMVP候補は、第1の動き候補リスト内の固定位置に置かれる。
【0206】
図26Bは、映像処理のための例示的な方法2600Bの第2のフローチャートを示している。動作2630にて、映像の第1の映像ブロックに対して、アフィン候補を除外して代替的時間動きベクトル予測(ATMVP)候補を有する第1の動き候補リストが構築される。動作2635にて、構築された第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換が実行される。
【0207】
方法2600A及び/又は2600Bに関する一部の実施形態において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを含む。方法2600A及び/又は2600Bに関する一部の実施形態において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。方法2600A及び/又は2600Bに関する一部の実施形態において、第1のリストインデックスは、第1の映像ブロックの隣接する映像ブロックに対応し、第1の映像ブロックの第2のリストインデックスを符号化するために使用される。
【0208】
方法2600A及び/又は2600Bに関する一部の実施形態において、第1のリストインデックスは、第1の映像ブロックの隣接する映像ブロックに対応し、第1の映像ブロックの第2のリストインデックスを符号化するためにコンテキスト選択において使用される。方法2600A及び/又は2600Bに関する一部の実施形態において、リストインデックスについての同じ値が、映像の異なる映像ブロックに対する異なる動き候補リスト構築方法に対応する。
【0209】
方法2600A及び/又は2600Bに関する一部の実施形態において、リストインデックスの信号伝達は、三角予測モード(TPM)、非アフィンモード、又は非TPMモードを含む符号化モード情報に基づく。方法2600A及び/又は2600Bに関する一部の実施形態において、当該方法は更に、複数の動き候補リスト内の異なる動き候補リスト内の動き候補に対して剪定処理を実行することを含む。方法2600A及び/又は2600Bに関する一部の実施形態において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを含む。
【0210】
方法2600A及び/又は2600Bに関する一部の実施形態において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。方法2600A及び/又は2600Bに関する一部の実施形態において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを含む。方法2600A及び/又は2600Bに関する一部の実施形態において、モードはマージモードである。方法2600A及び/又は2600Bに関する一部の実施形態において、モードはアドバンスト動きベクトル予測(AMVP)モードである。方法2600A及び/又は2600Bに関する一部の実施形態において、モードは三角予測(TPM)モードである。方法2600A及び/又は2600Bに関する一部の実施形態において、モードは、ブロック寸法に関係付けられる。方法2600A及び/又は2600Bに関する一部の実施形態において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。方法2600A及び/又は2600Bに関する一部の実施形態において、閾値は64である。
【0211】
方法2600A及び/又は2600Bに関する一部の実施形態において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。方法2600A及び/又は2600Bに関する一部の実施形態において、第1の閾値は16であり、第2の閾値は16である。方法2600A及び/又は2600Bに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。方法2600A及び/又は2600Bに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。方法2600A及び/又は2600Bに関する一部の実施形態において、第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。方法2600A及び/又は2600Bに関する一部の実施形態において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0212】
図26Cは、映像処理のための例示的な方法2600Cの第3のフローチャートを示している。動作2640にて、映像の第1の映像ブロックに対して、時間ブロックのみから導出された動き候補を除外する第1の動き候補リスト構築方法を用いて、第1の動き候補リストが構築される。動作2645にて、構築された第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換が実行される。
【0213】
方法2600Cに関する一部の実施形態において、第1の動き候補リストは、空間ブロックのみからの動き候補を有する。方法2600Cに関する一部の実施形態において、第1の動き候補リストは、履歴ベース動きベクトル予測(HMVP)候補を有する。方法2600Cに関する一部の実施形態において、第1の動き候補リストは、HMVP候補又は空間動き候補から導出された仮想候補を有する。方法2600Cに関する一部の実施形態において、第1の動き候補リストは、時間ブロック及び空間ブロックの両方に基づく動き候補を有する。
【0214】
方法2600Cに関する一部の実施形態において、動き候補は、サブブロックベースの空間時間動きベクトル予測(STMVP)又は非サブブロックベースのSTMVPに使用される。方法2600Cに関する一部の実施形態において、第1の動き候補リストのリストサイズは、第1の動き候補リストに許容される動き候補の予め定められた最大数である。方法2600Cに関する一部の実施形態において、リストサイズは5又は6である。方法2600Cに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、別個に信号伝達される。
【0215】
方法2600Cに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、一度に信号伝達され、第1の動き候補リスト及び少なくとも1つの更なる動き候補リストを有する複数タイプの動き候補リストに適用される。方法2600Cに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される。
【0216】
方法2600Cに関する一部の実施形態において、少なくとも1つの更なる動き候補リストは、時間候補リスト、又は空間候補リスト、又は履歴ベース動きベクトル予測(HMVP)候補リストである。方法2600Cに関する一部の実施形態において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを有する。
【0217】
方法2600Cに関する一部の実施形態において、第2の動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外する履歴ベース動きベクトル予測(HMVP)候補リストである。方法2600Cに関する一部の実施形態において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。
【0218】
方法2600Cに関する一部の実施形態において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを有する。方法2600Cに関する一部の実施形態において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。
【0219】
方法2600Cに関する一部の実施形態において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを有する。方法2600Cに関する一部の実施形態において、モードはマージモードである。方法2600Cに関する一部の実施形態において、モードはアドバンスト動きベクトル予測(AMVP)モードである。方法2600Cに関する一部の実施形態において、モードは三角予測(TPM)モードである。方法2600Cに関する一部の実施形態において、モードは、ブロック寸法に関係付けられる。
【0220】
方法2600Cに関する一部の実施形態において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。方法2600Cに関する一部の実施形態において、閾値は64である。方法2600Cに関する一部の実施形態において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。方法2600Cに関する一部の実施形態において、第1の閾値は16であり、第2の閾値は16である。方法2600Cに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。
【0221】
方法2600Cに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。方法2600Cに関する一部の実施形態において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。方法2600Cに関する一部の実施形態において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0222】
図26Dは、映像処理のための例示的な方法2600Dの第4のフローチャートを示している。動作2650にて、映像の第1の映像ブロックに対して、同じ参照ピクチャに関連する動き候補を含める第1の動き候補リスト構築方法を用いて、第1の動き候補リストが構築される。動作2655にて、構築された第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換が実行される。
【0223】
方法2600Dに関する一部の実施形態において、第1の動き候補リストはイントラブロックコピー(IBC)リストである。方法2600Dに関する一部の実施形態において、同じ参照ピクチャは、現在ピクチャ、現在タイル、又は現在スライスであり、第1の映像ブロックは、現在ピクチャ、現在タイル、又は現在スライスに属する。方法2600Dに関する一部の実施形態において、動き候補の各々は片予測候補である。方法2600Dに関する一部の実施形態において、動き候補は、片予測候補及び双予測候補を含み、片予測候補及び双予測候補は、両方の参照ピクチャリストに同じ参照ピクチャを使用する。
【0224】
方法2600Dに関する一部の実施形態において、第1の動き候補リストは、空間ブロックからの動き情報を有する動き候補を含む。方法2600Dに関する一部の実施形態において、空間ブロックは、第1の映像ブロックに隣接する又は隣接しない。方法2600Dに関する一部の実施形態において、動き候補は、履歴ベース動きベクトル予測(HMVP)候補を含む。方法2600Dに関する一部の実施形態において、第1の動き候補リストは、予め定められた又は計算された動きベクトルを有する少なくとも1つのデフォルト動き候補を含む。方法2600Dに関する一部の実施形態において、予め定められた又は計算された動きベクトルは、(1)第1の映像ブロックの位置、(2)イントラブロックコピー(IBC)モードの許容探索範囲、及び(3)動き補償ブロックの最大許容ユニットサイズのうちのいずれか1つ以上に基づく。
【0225】
方法2600Dに関する一部の実施形態において、動き補償ブロックの最大許容ユニットサイズは64×64ピクセルである。方法2600Dに関する一部の実施形態において、第1の動き候補リストのリストサイズは、第1の動き候補リストに許容される動き候補の予め定められた最大数である。方法2600Dに関する一部の実施形態において、リストサイズは5又は6である。方法2600Dに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、別個に信号伝達される。
【0226】
方法2600Dに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、一度に信号伝達され、第1の動き候補リスト及び少なくとも1つの更なる動き候補リストを有する複数タイプの動き候補リストに適用される。方法2600Dに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される。
【0227】
方法2600Dに関する一部の実施形態において、少なくとも1つの更なる動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間隣接ブロックのみから導出された動き候補を除外する空間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外して履歴ベース動きベクトル予測(HMVP)候補を含むHMVP候補リストである。方法2600Dに関する一部の実施形態において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを含む。方法2600Dに関する一部の実施形態において、第2の動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外するHMVP候補リストである。
【0228】
方法2600Dに関する一部の実施形態において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。方法2600Dに関する一部の実施形態において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを含む。
【0229】
方法2600Dに関する一部の実施形態において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。方法2600Dに関する一部の実施形態において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを含む。方法2600Dに関する一部の実施形態において、モードはマージモードである。方法2600Dに関する一部の実施形態において、モードはアドバンスト動きベクトル予測(AMVP)モードである。方法2600Dに関する一部の実施形態において、モードは三角予測(TPM)モードである。
【0230】
方法2600Dに関する一部の実施形態において、モードは、ブロック寸法に関係付けられる。方法2600Dに関する一部の実施形態において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。方法2600Dに関する一部の実施形態において、閾値は64である。方法2600Dに関する一部の実施形態において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。方法2600Dに関する一部の実施形態において、第1の閾値は16であり、第2の閾値は16である。
【0231】
方法2600Dに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。方法2600Dに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。方法2600Dに関する一部の実施形態において、第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。方法2600Dに関する一部の実施形態において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0232】
図26Eは、映像処理のための例示的な方法2600Eの第5のフローチャートを示している。動作2660にて、映像の第1の映像ブロックに対する第1の動き候補リストが、履歴ベース動きベクトル予測(HMVP)候補のみに関係する動き候補を含める第1の動き候補リスト構築方法を用いて構築される。動作2665にて、構築された第1の動き候補リストに従って、第1の映像ブロックと、第1の映像ブロックを含む映像のビットストリーム表現との間での変換が実行される。
【0233】
方法2600Eに関する一部の実施形態において、第1の動き候補リストはデフォルト動きベクトル候補を有する。方法2600Eに関する一部の実施形態において、デフォルト動きベクトル候補はゼロ動きベクトル候補を含む。第5の例示的な実施形態の一部の実装において、第1の動き候補リストは、既存のHMVP候補から導出された候補を有する。方法2600Eに関する一部の実施形態において、第1の動き候補リストのリストサイズは、第1の動き候補リストに許容される動き候補の予め定められた最大数である。方法2600Eに関する一部の実施形態において、リストサイズは5又は6である。方法2600Eに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、別個に信号伝達される。
【0234】
方法2600Eに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、一度に信号伝達され、第1の動き候補リスト及び少なくとも1つの更なる動き候補リストを有する複数タイプの動き候補リストに適用される。方法2600Eに関する一部の実施形態において、第1の動き候補リスト構築方法を用いた第1の動き候補リストの第1のリストサイズ、又は第2の動き候補リスト構築方法を用いた少なくとも1つの更なる動き候補リストの第2のリストサイズが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、又は予測ユニット(PU)を用いて信号伝達される。
【0235】
方法2600Eに関する一部の実施形態において、少なくとも1つの更なる動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間隣接ブロックのみから導出された動き候補を除外する空間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外して履歴ベース動きベクトル予測(HMVP)候補を含むHMVP候補リストである。方法2600Eに関する一部の実施形態において、当該方法は更に、第1の映像ブロックに対して、第1の動き候補リスト構築方法とは異なる第2の動き候補リスト構築方法を用いて、第2の動き候補リストを構築することを含む。
【0236】
方法2600Eに関する一部の実施形態において、第2の動き候補リストは、空間隣接ブロックのみから導出された動き候補を除外する時間候補リスト、又は時間的若しくは空間隣接ブロックのみから導出された動き候補を除外するHMVP候補リストである。方法2600Eに関する一部の実施形態において、ビットストリーム表現は、第1及び第2の動き候補リスト構築方法を含む複数の動き候補リスト構築方法に対応する複数の動き候補リストのセット内のリストを特定するリストインデックスを含む。方法2600Eに関する一部の実施形態において、当該方法は更に、モードに基づいて、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用、又は1つの動き候補リスト構築方法を用いた1つの動き候補リストのみの使用を決定することを含む。方法2600Eに関する一部の実施形態において、複数の動き候補リスト構築方法を用いた複数の動き候補リストの使用が無効にされるとき、第1の動き候補リストのリストインデックスがモードに対して無効にされ、信号伝達されない。
【0237】
方法2600Eに関する一部の実施形態において、当該方法は更に、モードに基づいて、第1の映像ブロックに対する第1の動き候補リスト構築方法が有効にされると決定することを含む。方法2600Eに関する一部の実施形態において、モードはマージモードである。
【0238】
方法2600Eに関する一部の実施形態において、モードはアドバンスト動きベクトル予測(AMVP)モードである。方法2600Eに関する一部の実施形態において、モードは三角予測(TPM)モードである。方法2600Eに関する一部の実施形態において、当該方法は、イントラブロックコピー(IBC)モードに基づいて、第1の映像ブロックに対して動きベクトルを生成することを有し、IBCモードは、第1の映像ブロックを参照ピクチャとして含む現在ピクチャ又は現在タイル又は現在スライスを使用する。方法2600Eに関する一部の実施形態において、モードは、ブロック寸法に関係付けられる。方法2600Eに関する一部の実施形態において、ブロック寸法は、閾値以上である第1の映像ブロックの高さと幅の積を含む。方法2600Eに関する一部の実施形態において、ブロック寸法は、閾値未満である第1の映像ブロックの高さと幅の積を含む。方法2600Eに関する一部の実施形態において、閾値は16又は64である。
【0239】
方法2600Eに関する一部の実施形態において、第1の映像ブロックの高さは第1の閾値以上であり、第1の映像ブロックの幅は第2の閾値以上である。方法2600Eに関する一部の実施形態において、第1の閾値は16であり、第2の閾値は16である。方法2600Eに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化される映像ブロックに対して、単一の動き候補リストを有する。方法2600Eに関する一部の実施形態において、第1の動き候補リストは、上記モードで符号化されない映像ブロックに対して、単一の動き候補リストを有する。方法2600Eに関する一部の実施形態において、第1及び第2の例示的な実施形態の一部の実装において、変換を実行することは、ビットストリーム表現から第1の映像ブロックのピクセル値を生成することを有する。方法2600Eに関する一部の実施形態において、変換を実行することは、第1の映像ブロックのピクセル値からビットストリーム表現を生成することを有する。
【0240】
開示される技術の実装例
図27は、映像処理装置2700のブロック図である。装置2700は、ここに記載される方法のうちの1つ以上を実装するために使用され得る。装置2700は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器にて具現化され得る。装置2700は、1つ以上のプロセッサ2702、1つ以上のメモリ2704、及び映像処理ハードウェア2706を含み得る。(1つ以上の)プロセッサ2702は、本文書に記載される1つ以上の方法(これらに限られないが、(1つ以上の)方法2600A-2600E)を実行するように構成され得る。(1つ以上の)メモリ2704は、ここに記載される方法及び技術を実行するのに使用されるデータ及びコードを格納するために使用され得る。映像処理ハードウェア2706は、本文書に記載される一部の技術をハードウェア回路にて実装するために使用され得る。
【0241】
一部の実施形態において、映像符号化方法は、図27に関して説明したようなハードウェアプラットフォーム上に実装される装置を用いて実行され得る。
【0242】
図28は、ここに開示される様々な技術が実装され得る映像処理システム2800の一例を示すブロック図である。様々な実装は、システム2800のコンポーネントの一部又は全てを含み得る。システム2800は、映像コンテンツを受信する入力2802を含み得る。映像コンテンツは、例えば8ビット又は10ビットのマルチコンポーネント(多成分)ピクセル値といった、ロー(未加工)又は未圧縮のフォーマットで受信されてもよいし、あるいは圧縮又は符号化されたフォーマットで受信されてもよい。入力2802は、ネットワークインタフェース、周辺バスインタフェース、又はストレージインタフェースを表し得る。ネットワークインタフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)などの有線インタフェース、及びWi-Fi(登録商標)若しくはセルラーインタフェースなどの無線インタフェースを含む。
【0243】
システム2800は、本文書に記載される様々なコーディング又は符号化方法を実装し得る符号化コンポーネント2804を含み得る。符号化コンポーネント2804は、入力2802から符号化コンポーネント2804の出力まで映像の平均ビットレートを低減させて、映像の符号化表現を生成し得る。符号化技術は、それ故に、映像圧縮技術又は映像トランスコーディング技術と呼ばれることがある。符号化コンポーネント2804の出力は、格納されるか、コンポーネント2806によって表されるように接続されて通信を介して伝送されるかし得る。入力2802で受信された映像の格納又は通信されるビットストリーム(又は符号化)表現は、ディスプレイインタフェース2810に送られるピクセル値又は表示可能映像を生成するためにコンポーネント2808によって使用され得る。ビットストリーム表現からユーザが見ることができる映像を生成するプロセスは、映像解凍と呼ばれることがある。また、特定の映像処理操作が“符号化”の操作又はツールとして参照されることがあるが、理解されることには、符号化のツール又は操作はエンコーダで使用され、符号化の結果を裏返す対応する復号のツール又は操作がデコーダで実行されることになる。
【0244】
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインタフェース(HDMI(登録商標))又はディスプレイポート(Displayport)などを含み得る。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェースなどを含む。本文書に記載される技術は、例えば携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実行することが可能な他の装置などの、種々のエレクトロニクス装置にて具現化され得る。
【0245】
開示される技術の一部の実施形態は、映像処理ツール又はモードを有効にする決定を行うことを含む。一例において、映像処理ツール又はモードが有効にされるとき、エンコーダは、映像のブロックの処理においてそのツール又はモードを使用又は実装することになるが、必ずしも、結果として得られるビットストリームを、そのツール又はモードの使用に基づいて変更するわけではないとし得る。すなわち、映像のブロックから映像のビットストリーム表現への変換は、映像処理ツール又はモードを、決定に基づいてそれが有効にされているときに使用することになる。他の一例において、映像処理ツール又はモードが有効にされるとき、デコーダは、ビットストリームがその映像処理ツール又はモードに基づいて変更されているという知識を用いて、ビットストリームを処理することになる。すなわち、映像のビットストリーム表現から映像のブロックへの変換は、決定に基づいて有効にされた映像処理ツール又はモードを使用して実行される。
【0246】
開示される技術の一部の実施形態は、映像処理ツール又はモードを無効にする決定を行うことを含む。一例において、映像処理ツール又はモードが無効にされるとき、エンコーダは、映像のブロックから映像のビットストリーム表現への変換において、そのツール又はモードを使用しないことになる。他の一例において、映像処理ツール又はモードが無効にされるとき、デコーダは、ビットストリームが、決定に基づいて有効にされた映像処理ツール又はモードを使用して変更されてはいない、という知識を用いて、ビットストリームを処理することになる。
【0247】
以上から理解されることには、ここでは説明の目的で、ここに開示される技術の特定の実施形態を説明したが、本発明の範囲を逸脱することなく様々な変更が為され得る。従って、ここに開示される技術は、添付の特許請求の範囲による場合を除いて、限定されるものではない。
【0248】
この特許文書に記載される事項及び機能動作の実装は、この明細書に開示されている構造及びそれらに構造的に均等なものを含め、様々なシステム、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにて、あるいはこれらのうちの1つ以上の組み合わせにて実施されることができる。この明細書に記載される事項の実装は、1つ以上のコンピュータプログラムプロダクトとして実装されることができ、すなわち、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、有形で非一時的なコンピュータ読み取り可能媒体にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶装置、機械読み取り可能記憶基板、メモリ装置、機械読み取り可能な伝搬信号を生じさせる物質の組成、又はそれらのうちの1つ以上の組み合わせとすることができる。用語“データ処理ユニット”又は“データ処理装置”は、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理するあらゆる装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードといった、問題としているコンピュータプログラムのための実行環境を作り出すコードを含むことができる。
【0249】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタープリタ型の言語を含め、如何なる形態のプログラミング言語で記述されてもよく、また、スタンドアロンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして、を含め、如何なる形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に格納されてもよいし、問題としているプログラムに専用の単一ファイルに格納されてもよいし、あるいは、複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開されてもよいし、あるいは、一箇所に配置された、又は複数箇所に分散されて通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開されてもよい。
【0250】
この明細書に記載されるプロセス及び論理フローは、入力データについて演算して出力を生成することによって機能を実行するよう、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されることができる。これらのプロセス及び論理フローはまた、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)といった専用の論理回路によって実行されることもでき、また、装置も、そのような専用の論理回路として実装されることができる。
【0251】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の双方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納する1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、磁気光ディスク、又は光ディスクといった、データを格納するための1つ以上の大容量ストレージ装置を含み、あるいは、大容量ストレージ装置からデータを受信したり、それにデータを転送したりするように動作的に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ読み取り可能媒体は、例として、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイスを含め、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用の論理回路によって補われたり、それに組み込まれたりしてもよい。
【0252】
明細書は、図面と共に、単に例示的なものとみなされることを意図しており、例示的とは例を意味する。ここで使用されるとき、“又は”の使用は、文脈が別のことを明確に示していない限り、“及び/又は”を含むことを意図している。
【0253】
この特許文書は数多くの詳細が含んでいるが、それらは、いずれかの発明又は特許請求され得るものの範囲についての限定として解釈されるべきでなく、むしろ、特定の発明の特定の実施形態に特有とし得る機構の説明として解釈されるべきである。別々の実施形態の文脈でこの特許文書に記載されている特定の複数の機構が、単一の実施形態にて組み合わせて実装されることもできる。逆に、単一の実施形態の文脈で説明されている種々の機構が、複数の実施形態にて別々に、又は何らかの好適なサブコンビネーションで実装されることもできる。さらには、複数の機構が、特定の組み合わせにて作用するものとして上述され、さらには当初はそのように特許請求されていることがあり得るが、場合によって、特許請求されている組み合わせからの1以上の機構を組み合わせから除くこともでき、また、特許請求されている組み合わせをサブコンビネーション又はサブコンビネーションのバリエーションへと導いてもよい。
【0254】
同様に、図面には処理が特定の順序で示されるが、このことは、所望の結果を達成するために、それらの動作が図示される特定の順序で若しくは順番に実行されること、又は図示される全ての処理が実行されることを要求するものとして理解されるべきでない。また、この特許文書に記載されている実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解されるべきでない。
【0255】
ほんの少しの実装及び例を記載したのみであり、この特許文書に記載及び図示されているものに基づいて、他の実装、拡張及び変形が行われ得る。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図14
図15
図16A
図16B
図17
図18A
図18B
図19
図20
図21A
図21B
図22
図23
図24
図25
図26A
図26B
図26C
図26D
図26E
図27
図28