(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-13
(45)【発行日】2024-09-25
(54)【発明の名称】デコーダ側精緻化ツールのサイズ選択アプリケーション
(51)【国際特許分類】
H04N 19/103 20140101AFI20240917BHJP
H04N 19/136 20140101ALI20240917BHJP
H04N 19/176 20140101ALI20240917BHJP
H04N 19/186 20140101ALI20240917BHJP
H04N 19/52 20140101ALI20240917BHJP
H04N 19/577 20140101ALI20240917BHJP
【FI】
H04N19/103
H04N19/136
H04N19/176
H04N19/186
H04N19/52
H04N19/577
【外国語出願】
(21)【出願番号】P 2023063135
(22)【出願日】2023-04-10
(62)【分割の表示】P 2021547084の分割
【原出願日】2020-02-14
【審査請求日】2023-04-11
(31)【優先権主張番号】PCT/CN2019/075068
(32)【優先日】2019-02-14
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/082585
(32)【優先日】2019-04-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)【参考文献】
【文献】Semih Esenlik, et al.,"Description of Core Experiment 9 (CE9): Decoder Side Motion Vector Derivation",Document: JVET-J1029_r1, [online],JVET-J1029 (version 2),Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年04月27日,Pages 1-5,[令和6年8月8日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=3523> and <URL: https://jvet-experts.org/doc_end_user/documents/10_San%20Diego/wg11/JVET-J1029-v2.zip>.,(See document file "JVET-J1029_r1.doc" in the zip file "JVET-J1029-v2.zip".)
【文献】Jianle Chen, et al.,"Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)",Document: JVET-L1002-v1, [online],JVET-L1002 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年12月24日,Pages 1 and 30-32,[令和4年6月16日検索], インターネット, <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=4835> and <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1002-v2.zip>.,(See document file "JVET-L1002-v2.docx" in the zip file "JVET-L1002-v2.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ビデオ処理方法であって、
現在ビデオブロックの第1
色成分の情報に基づき、前記現在ビデオブロックの第2
色成分の情報を使用せずに、ビデオの現在ビデオブロックの第1方式を有効にするか無効にするかを決定するステップであって、前記第1方式は、参照ピクチャリスト0の少なくとも1つの参照サンプルと参照ピクチャリスト1の少なくとも1つの参照サンプルの間のコストに基づき、精緻化動き情報を導出するために使用される、ステップと、
前記第1方式が有効にされると決定することに応答して、前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報を取得するステップと、
前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報に基づき、前記現在ビデオブロックと前記ビデオのビットストリームとの間の変換を実行するステップと、
を含む方法。
【請求項2】
前記第1
色成分はルマ成分を含む、請求項1に記載の方法。
【請求項3】
前記第2
色成分は、少なくとも1つのクロマ成分を含む、請求項1に記載の方法。
【請求項4】
前記第2
色成分は、クロマ成分Cb又はクロマ成分Crのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項5】
前記第1
色成分は緑成分を含む、請求項1に記載の方法。
【請求項6】
前記第2
色成分は、青成分又は赤成分のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項7】
前記現在ビデオブロックについて決定するステップは、前記第1
色成分の情報に基づき1回実行され、前記決定するステップの結果は、前記第1
色成分と前記第2
色成分により共有される、請求項1に記載の方法。
【請求項8】
前記第1方式は、デコーダ側動きベクトル精緻化ツールを含む、請求項1に記載の方法。
【請求項9】
前記デコーダ側動きベクトル精緻化ツールは、サブブロックレベルで実行され、
前記現在ビデオブロックの幅又は高さが16より大きいとき、前記現在ビデオブロックは、16×H、W×16、又は16×16のサイズで複数のサブブロックに分割され、Hは前記現在ビデオブロックの高さであり、Wは前記現在ビデオブロックの幅である、請求項8に記載の方法。
【請求項10】
前記変換は、前記現在ビデオブロックを前記ビットストリームに符号化することを含む、請求項1に記載の方法。
【請求項11】
前記変換は、前記ビットストリームから前記現在ビデオブロックを復号することを含む、請求項1に記載の方法。
【請求項12】
ビデオデータを処理する機器であって、プロセッサと、命令を有する非一時的メモリとを含み、前記命令は前記プロセッサにより実行されると前記プロセッサに、
現在ビデオブロックの第1
色成分の情報に基づき、前記現在ビデオブロックの第2
色成分の情報を使用せずに、ビデオの現在ビデオブロックの第1方式を有効にするか無効にするかを決定させ、前記第1方式は、参照ピクチャリスト0の少なくとも1つの参照サンプルと参照ピクチャリスト1の少なくとも1つの参照サンプルの間のコストに基づき、精緻化動き情報を導出するために使用され、
前記第1方式が有効にされると決定することに応答して、前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報を取得させ、
前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報に基づき、前記現在ビデオブロックと前記ビデオのビットストリームとの間の変換を実行させる、
機器。
【請求項13】
命令を格納している非一時的コンピュータ可読記憶媒体であって、前記命令はプロセッサに、
現在ビデオブロックの第1
色成分の情報に基づき、前記現在ビデオブロックの第2
色成分の情報を使用せずに、ビデオの現在ビデオブロックの第1方式を有効にするか無効にするかを決定させ、前記第1方式は、参照ピクチャリスト0の少なくとも1つの参照サンプルと参照ピクチャリスト1の少なくとも1つの参照サンプルの間のコストに基づき、精緻化動き情報を導出するために使用され、
前記第1方式が有効にされると決定することに応答して、前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報を取得させ、
前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報に基づき、前記現在ビデオブロックと前記ビデオのビットストリームとの間の変換を実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項14】
ビデオのビットストリームを格納
する方法であって
、前記方法は、
現在ビデオブロックの第1
色成分の情報に基づき、前記現在ビデオブロックの第2
色成分の情報を使用せずに、ビデオの現在ビデオブロックの第1方式を有効にするか無効にするかを決定するステップであって、前記第1方式は、参照ピクチャリスト0の少なくとも1つの参照サンプルと参照ピクチャリスト1の少なくとも1つの参照サンプルの間のコストに基づき、精緻化動き情報を導出するために使用される、ステップと、
前記第1方式が有効にされると決定することに応答して、前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報を取得するステップと、
前記第1
色成分の精緻化動き情報と前記第2
色成分の精緻化動き情報に基づき、前記現在ビデオブロックに基づく前記ビットストリームを生成するステップと、
前記ビットストリームを非一時的コンピュータ可読記録媒体に格納するステップと、
を含む
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、国際特許出願番号第PCT/CN2019/075068号、2019年2月14日出願、及び国際特許出願番号第PCT/CN2019/082585号、2019年4月13日出願、の優先権及び利益を請求する国際特許出願番号第PCT/CN2020/075235号、2020年2月14日出願の国内移行段階である。前述の出願の全ての開示は、参照により本願の開示の部分として組み込まれる。
【0002】
[技術分野]
本願明細書は、ビデオ及び画像コーディング及び復号に関する。
【背景技術】
【0003】
デジタルビデオは、インターネット及び他のデジタル通信ネットワーク上で最大の帯域幅使用を占める。ビデオを受信及び表示可能な接続されたユーザ装置の数が増加するにつれ、デジタルビデオ使用のための帯域幅要求は増大し続けることが予想される。
【発明の概要】
【0004】
本願明細書は、1つの例示的な態様では、最終的な動きベクトル表現又は一般化された双予測に関連する現在のコーディングツールのコーディング効率を向上するビデオコーディングツールを開示する。
【0005】
第1の例示的なビデオ処理方法は、
少なくとも重みパラメータに基づきデコーダ側動きベクトル導出(DMVD)方式を実施することにより、ビデオの現在ビデオブロックの精緻化動き情報を取得するステップであって、前記重みパラメータは、前記現在ビデオブロックの最終予測ブロックの生成処理の中で予測ブロックに適用される、ステップと、
少なくとも前記精緻化動き情報及び前記重みパラメータを用いて、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の変換を実行するステップと、
を含む。
【0006】
第2の例示的なビデオ処理方法は、現在ビデオブロックのためのコーディングツールの使用のために、デコーダ側動きベクトル導出(DMVD)方式の使用が、ビデオの前記現在ビデオブロックと前記ビデオのコーディング表現との間の変換について無効であると決定するステップと、
前記決定に基づき、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の前記変換を実行するステップであって、前記コーディングツールは、前記現在ビデオブロックの予測ブロックに等しくない重み係数を適用することを含む、ステップと、
を含む。
【0007】
第3の例示的なビデオ処理方法は、ビデオの現在ビデオブロックの1つ以上の参照ピクチャのピクチャオーダカウント(POC)値、及び前記現在ビデオブロックを含む現在ピクチャのPOC値に基づき、前記現在ビデオブロックについて1つ以上のデコーダ側動きベクトル導出(DMVD)方式を有効又は無効にするかを決定するステップと、
前記決定に基づき、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の変換を決定するステップと、
を含む。
【0008】
第4の例示的なビデオ処理方法は、
現在ビデオブロックについてデコーダ側動きベクトル導出(DMVD)方式を実施することにより、ビデオの前記現在ビデオブロックの精緻化動き情報を取得するステップであって、対称動きベクトル差(SMVD)モードが前記現在ブロックについて有効にされる、ステップと、
前記精緻化動き情報及を用いて、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の変換を実行するステップと、
を含む。
【0009】
第5の例示的なビデオ処理方法は、
現在ビデオブロックを含むビデオのビットストリーム表現の中のフィールドに基づき、前記現在ビデオブロックについてデコーダ側動きベクトル導出(DMVD)方式が有効又は無効であるかを決定するステップであって、対称動きベクトル差(SMVD)モードが前記現在ビデオブロックについて有効にされる、ステップと、
前記DMVD方式が有効であると決定した後に、前記現在ビデオブロックについて前記DMVD方式を実施することにより、前記現在ビデオブロックの精緻化動き情報を取得するステップと、
前記精緻化動き情報を用いて、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の変換を実行するステップと、
を含む。
【0010】
第6の例示的なビデオ処理方法は、
ビデオの現在ビデオブロックのブロック寸法を使用するルールに基づき、複数のデコーダ側動きベクトル導出(DMVD)方式が、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の変換について有効又は無効かを決定するステップと、
前記決定に基づき前記変換を実行するステップと、
を含む。
【0011】
第7の例示的なビデオ処理方法は、
ビデオの現在ビデオブロックについて、サブブロックレベル又はブロックレベルで、複数のデコーダ側動きベクトル導出(DMVD)方式を実行するかどうかを決定するステップと、
前記複数のDMVD方式がサブブロックレベルで実行されると決定した後に、前記現在ビデオブロックの同じサブブロックレベルで、前記複数のDMVD方式を実施することにより、前記現在ビデオブロックの精緻化動き情報を取得するステップと、
前記精緻化動き情報を用いて、前記現在ビデオブロックとビットストリーム表現との間の変換を実行するステップと、
を含む。
【0012】
第8の例示的なビデオ処理方法は、
ビデオの現在ビデオブロックの複数のコンポーネントについて、デコーダ側動きベクトル導出(DMVD)方式を有効又は無効にするかを決定するステップと、
前記DMVD方式が有効にされると決定した後に、前記DMVD方式を実施することにより、前記現在ビデオブロックの精緻化動き情報を取得するステップと、
前記DMVD方式を実施する間に、前記ビデオの前記現在ビデオブロックとビットストリーム表現との間の変換を実行するステップと、
を含む。
【0013】
別の例示的な態様では、上述の方法及び本願明細書に記載される方法は、プロセッサを含むビデオエンコーダ聞き又はビデオデコーダ機器により実施されてよい。
【0014】
別の例示的な態様では、上述の方法及び本願明細書に記載される方法は、非一時的コンピュータ可読プログラム媒体にプロセッサ実行可能命令の形式で格納されてよい。
【0015】
これら及び他の態様は、本願明細書において更に記載される。
【図面の簡単な説明】
【0016】
【
図1】マージ候補リスト構成のための例示的な導出処理を示す。
【0017】
【0018】
【
図3】空間マージ候補の冗長性チェックのために検討される候補ペアの例を示す。
【0019】
【
図4A】N×2N及び2N×Nパーティションの第2PUの例示的な位置を示す。
【
図4B】N×2N及び2N×Nパーティションの第2PUの例示的な位置を示す。
【0020】
【
図5】時間マージ候補の動きベクトルスケーリングの図である。
【0021】
【
図6】時間マージ候補C0及びC1の候補位置の例を示す。
【0022】
【0023】
【0024】
【
図9】空間動きベクトル候補の動きベクトルスケーリングの図を示す。
【0025】
【
図10】照明補償(IC)パラメータのために使用される近隣サンプルの例を示す。
【0026】
【
図11A】4パラメータアフィンモードの簡略アフィン動きモデルを示す。
【
図11B】6パラメータアフィンモードの簡略アフィン動きモデルを示す。
【0027】
【
図12】サブブロック毎のアフィン動きベクトルフィールド(MVF)の例を示す。
【0028】
【
図13A】4パラメータアフィンモデルの例を示す。
【
図13B】6パラメータアフィンモデルの例を示す。
【0029】
【
図14】継承されたアフィン候補のAF_INTERの動きベクトル予測子(MVP)を示す。
【0030】
【
図15】構成されたアフィン候補のAF_INTERのMVPを示す。
【0031】
【0032】
【
図17】アフィンマージモードの候補位置の例を示す。
【0033】
【
図18】最終動きベクトル表現(UMVE)検索処理の例を示す。
【0034】
【0035】
【
図20】バイラテラルテンプレートマッチングに基づくデコーダ側動きベクトル精緻化(DMVR)の例を示す。
【0036】
【
図21】DMVRにおけるリスト0とリスト1との間でミラーリングされる動きベクトル差MVD(0,1)の例を示す。
【0037】
【
図22】1回の反復の中でチェックされ得るMVの例を示す。
【0038】
【
図23】本願明細書に記載される技術を実施するハードウェアプラットフォームの例を示す。
【0039】
【
図24A】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24B】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24C】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24D】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24E】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24F】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24G】ビデオ処理の例示的な方法の例示的なフローチャートである。
【
図24H】ビデオ処理の例示的な方法の例示的なフローチャートである。
【0040】
【
図25】デコーダ側動きベクトル導出の対称モードの例を示す。
【0041】
【
図26】ここに開示される種々の技術が実施され得る例示的なビデオ処理システムを示すブロック図である。
【0042】
【
図27】本開示の幾つかの実施形態によるビデオコーディングシステムを示すブロック図である。
【0043】
【
図28】本開示の幾つかの実施形態によるエンコーダを示すブロック図である。
【0044】
【
図29】本開示の幾つかの実施形態によるデコーダを示すブロック図である。
【発明を実施するための形態】
【0045】
本願明細書は、伸長又は復号デジタルビデオの品質を向上するためにビデオビットストリームのデコーダにより使用できる種々の技術を提供する。更に、ビデオエンコーダも、更なる符号化のために使用される復号フレームを再構成するために、符号化の処理の間に、これらの技術を実施してよい。
【0046】
章見出しは、本願明細書において理解を容易にするために使用され、実施形態及び技術を対応する章に限定するものではない。従って、1つの章からの実施形態は、他の章からの実施形態と結合できる。
【0047】
1.概要
【0048】
本発明はビデオコーディング技術に関する。具体的に、ビデオコーディングにおける予測ブロック及び動きベクトル精緻化に適用される不均等な重みの反復に関する。それは、高効率ビデオコーディング(High Efficiency Video Coding、HEVC)のような既存のビデオコーディング規格、又は完成されるべき規格(Versatile Video Coding)に適用されてよい。それは、将来のビデオコーディング規格又はビデオコーデックにも適用可能であってよい。
【0049】
2.簡単な議論
【0050】
ビデオコーディング規格は、主によく知られたITU-T及びISO/IEC規格の発展を通じて進化している。ITU-TはH.261及びH.263を策定し、ISO/IECはMPEG-1及びMPEG-4ビジュアルを策定し、及び2つの組織は共同でH.262/MPEG-2ビデオ、及びH.264/MPEG-4アドバンストビデオコーディング(Advanced Video Coding)及びH.265/HEVC規格を策定した。H.262以降、ビデオコーディング規格は、ハイブリッドビデオコーディング構造に基づき、ここでは時間予測及び変換コーディングが利用される。HEVCより先の将来のコーディング技術を開発するために、共同ビデオ探索チーム(Joint Video Exploration Team (JVET))が2015年にVCEG及びMPEGにより共同で設立された。それ以来、多くの新しい方法がJVETにより採用され、共同探索モデル(Joint Exploration Model (JEM))と呼ばれる参照ソフトウェアに取り入れられてきた。2018年4月には、HEVCと比べて50%のビットレート削減を目標とするVVC規格に取り組むために、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間の共同ビデオ専門家チーム(Joint Video Expert Team (JVET))が作成された。
【0051】
VVC規格ドラフトの最新バージョン、つまりVersatile Video Coding (Draft 2)は、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zipにおいて見ることができる。VTMと呼ばれるVVCの最新の参照ソフトウェアは、https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1において見ることができる。
【0052】
2.1 HEVC/H.265におけるインター予測
【0053】
各々のインター予測されたPUは、1又は2個の参照ピクチャリストの動きパラメータを有する。動きパラメータは、動きベクトル及び参照ピクチャインデックスを含む。2個の参照ピクチャリストのうちの1つの使用は、inter_pred_idcを用いてシグナリングされてもよい。動きベクトルは、予測子に対するデルタ(delta)として明示的にコーディングされてよい。
【0054】
CUがスキップモードでコーディングされるとき、1つのPUが該CUに関連付けられ、有意な残差係数、コーディング動きベクトルデルタ又は参照ピクチャインデックスは存在しない。マージモードが指定され、それにより、現在PUの動きパラメータが、空間及び時間候補を含む近隣PUから取得される。マージモードは、スキップモードに対してだけでなく、任意のインター予測されたPUに適用できる。マージモードの代替は、動きパラメータの明示的送信である。ここで、動きベクトル(より詳細には、動きベクトル予測子と比較される動きベクトル差(motion vector differences (MVD)))、各参照ピクチャリストの対応する参照ピクチャインデックス、及び参照ピクチャリストの使用は、PU毎に明示的にシグナリングされる。このようなモードは、本開示で、高度動きベクトル予測(Advanced motion vector prediction (AMVP))と呼ばれる。
【0055】
シグナリングが、2つの参照ピクチャリストのうちの1つが使用されるべきであると示すとき、PUは、サンプルの1つのブロックから生成される。これは、「片予測(uni-prediction)」と呼ばれる。片予測は、Pスライス及びBスライスの両方のために利用可能である。
【0056】
シグナリングが、両方の参照ピクチャリストが使用されるべきであると示すとき、PUは、サンプルの2つのブロックから生成される。これは、「双予測(bi-prediction)」と呼ばれる。双予測は、Bスライスにのみ利用可能である。
【0057】
以下の文書は、HEVCで指定されたインター予測に関する詳細を提供する。説明は、マージモードから始まる。
【0058】
2.1.1 参照ピクチャリスト
【0059】
HEVCでは、用語「インター予測」は、現在復号ピクチャ以外の参照ピクチャのデータ要素(例えば、サンプル値又は動きベクトル)から導出される予測を示すために使用される。H.264/AVCと同様に、ピクチャは、複数の参照ピクチャから予測できる。インター予測のために使用される参照ピクチャは、1つ以上の参照ピクチャリストの中で組織化される。参照ピクチャがリスト内にある参照インデックス識別子は、予測信号を生成するために使用されるべきである。
【0060】
単一の参照ピクチャリストList0はPスライスのために使用され、2つの参照ピクチャリストList0及びList1はBスライスのために使用される。留意すべき事に、List0/1に含まれる参照ピクチャは、キャプチャ/表示順で、過去又は将来のピクチャからであり得る。
【0061】
2.1.2 マージモード
【0062】
2.1.2.1 マージモードの候補の導出
【0063】
PUがマージモードを用いて予測されるとき、マージ候補リスト内のエントリを指すインデックスがビットストリームからパースされ、動き情報を導出するために使用される。このリストの構成は、HEVC規格の中で指定され、以下のステップシーケンスに従い纏めることができる。
ステップ1:初期候補導出
ステップ1.1:空間候補導出
ステップ1.2:空間候補の冗長性チェック
ステップ1.3:時間候補導出
ステップ2:追加候補挿入
ステップ2.1:双予測候補の生成
ステップ2.2:ゼロ動き候補の挿入
【0064】
これらのステップは、
図1にも概略的に示される。空間マージ候補導出では、最大で4個のマージ候補が、5個の異なる位置に位置する候補の中から選択される。時間マージ候補導出では、最大で1個のマージ候補が2個の候補の中から選択される。デコーダにおいて各PUについて一定数の候補が想定されるので、追加候補は、ステップ1から取得された候補の数が、スライスヘッダ内でシグナリングされる最大マージ候補数(MaxNumMergeCand)に達しないときに、生成される。候補数は一定なので、最良マージ候補のインデックは、トランケートされた単項2進化(truncated unary binarization (TU))を用いて符号化される。CUのサイズが8に等しい場合、現在CUの全部のPUは、2N×2N予測ユニットのマージ候補リストと同じ単一のマージ候補リストを共有する。
【0065】
以下では、前述のステップに関連する動作が詳述される。
【0066】
図1は、マージ候補リスト構成のための例示的な導出処理を示す。
【0067】
2.1.2.2 空間候補導出
【0068】
空間マージ候補の導出では、最大で4個のマージ候補が、
図2に示す位置にある候補の中から選択される。導出の順序は、A
1、B
1、B
0、A
0、及びB
2である。位置B
2は、位置A
1、B
1、B
0、A
0にあるいずれかのPUが(例えば、それが別のスライス又はタイルに属するために)利用可能ではない又はイントラコーディングされるときにのみ考慮される。位置A
0にある候補が追加された後、残りの候補の追加は、冗長性チェックを受ける。これは、同じ動き情報を有する候補がリストから排除されることを保証し、その結果、コーディング効率が向上する。計算の複雑さを低減するために、言及された冗長性チェックでは、必ずしも全部の可能な候補ペアが考慮されない。河原井に、
図3の矢印によりリンクされたペアのみが考慮され、冗長性チェックのために使用される対応する候補が同じ動き情報を有しない場合に、候補がリストに追加されるだけである。重複する動き情報の別のソースは、2N×2Nと異なるパーティションに関連付けられた「第2PU」である。例として、
図4A~4Bは、それぞれ、N×2N、及び2N×Nの場合の第2PUを示す。現在PUがN×2Nとしてパーティションされるとき、位置A
1にある候補は、リスト構成のために考慮されない。実際に、この候補を追加することにより、同じ動き情報を有する2個の予測ユニットをもたらす。これは、コーディングユニットの中に1個のPUを有するのに対して冗長である。同様に、位置B
1は、現在PUが2N×Nとしてパーティションされるとき、考慮されない。
【0069】
【0070】
図3は、空間マージ候補の冗長性チェックのために検討される候補ペアの例を示す。
【0071】
図4A~4Bは、それぞれ、N×2N及び2N×Nパーティションの第2PUの例示的な位置を示す。
【0072】
2.1.2.3 時間候補導出
【0073】
このステップでは、1つの候補のみがリストに追加される。特に、この時間マージ候補の導出では、スケーリングされた動きベクトルが、所与の参照ピクチャリストの中の現在ピクチャとの最小POC差を有するピクチャに属する同一位置にあるPUに基づき導出される。同一位置にあるPUの導出のために使用されるべき参照ピクチャリストは、スライスヘッダ内で明示的にシグナリングされる。時間マージ候補のスケーリングされた動きベクトルは、
図5の破線により示されるように取得される。これは、同一位置にあるPUの動きベクトルからPOC距離tb及びtdを用いてスケーリングされる。ここで、tbは現在ピクチャの参照ピクチャと現在ピクチャとの間のPOC差であると定義され、tdは同一位置にあるピクチャの参照ピクチャと同一位置にあるピクチャとの間のPOC差であると定義される。時間マージ候補の参照ピクチャインデックスは、ゼロに等しく設定される。スケーリング処理の実際の実現は、HEVC仕様の中に記載される。Bスライスでは、一方は参照ピクチャリスト0のもの、他方は参照ピクチャリスト1のものである、2個の動きベクトルが、取得され結合されて、双予測マージ候補を生成する。
【0074】
図5は、 時間マージ候補の動きベクトルスケーリングの図である。
【0075】
参照フレームに属する同一位置にあるPU(Y)では、時間候補の位置は、
図6に示すように、候補C
0とC
1との間で選択される。位置C
0にあるPUが利用可能ではない、イントラコーディングされる、又は現在コーディング木ユニット(CTU aka、LCU、最大コーディングユニット)行の外側にある場合、位置C
1が使用される。その他の場合、位置C
0が時間マージ候補の導出で使用される。
【0076】
図6は、時間マージ候補C
0及びC
1の候補位置の例を示す。
【0077】
2.1.2.4 追加候補挿入
【0078】
空間及び時間マージ候補の他に、2つの追加のマージ候補タイプ:結合双予測マージ候補及びゼロマージ候補、がある。結合双予測マージ候補は、空間及び時間マージ候補を利用して生成される。結合双予測マージ候補は、Bスライスのためにのみ使用される。結合双予測候補は、初期候補の第1参照ピクチャリスト動きパラメータを、別の第2参照ピクチャリスト動きパラメータと結合することにより生成される。これらの2つのタプルが異なる動き仮説を提供する場合、それらは、新しい双予測候補を形成する。例として、
図7は、mvL0及びrefIdxL0又はmvL1及びrefIdxL1を有する、元のリスト(左にある)内にある2つの候補が、最終リスト(右にある)に追加される結合された双予測マージ候補を生成するために使用される場合を示す。これらの追加マージ候補を生成するために考えられる組合せに関する多数のルールがある。
【0079】
【0080】
マージ候補リスト内の残りのエントリを満たすために、ゼロ動き候補が挿入され、従ってMaxNumMergeCand容量に達する。これらの候補は、ゼロ空間変位、及びゼロから開始して新しいゼロ動き候補がリストに追加される度に増大する参照ピクチャインデックスを有する。最後に、これらの候補に対して冗長性チェックは実行されない。
【0081】
2.1.3 AMVP
【0082】
AMVPは、近隣PUとの動きベクトルの空間-時間相関を利用する。これは、動きパラメータの明示的送信のために使用される。参照ピクチャリスト毎に、左、上の時間的近隣PU位置の利用可能性をチェックし、冗長候補を除去し、ゼロベクトルを追加した一定長の候補リストを生成することにより、動きベクトル候補リストが構成される。次に、エンコーダは、候補リストから最良の予測子を選択し、選択した候補を示す対応するインデックスを送信できる。マージインデックスシグナリングと同様に、最良の動きベクトル候補のインデックは、トランケートされた単項(truncated unary)を用いて符号化される。この場合に符号化されるべき最大値は、2である(
図8を参照)。以下の章では、動きベクトル予測候補の導出処理に関する詳細が提供される。
【0083】
2.1.3.1 AMVP候補の導出
【0084】
【0085】
動きベクトル予測では、2種類の動きベクトル候補:空間動きベクトル候補及び時間動きベクトル候補、が検討される。空間動きベクトル候補導出のために、2つの動きベクトル候補が、
図2に示すような5個の異なる位置に位置する各PUの動きベクトルに基づき、最終的に導出される。
【0086】
時間動きベクトル候補導出では、1つの動きベクトル候補は、2つの異なる同一位置に基づき導出される2個の候補から選択される。空間-時間候補の第1リストが作成された後に、該リスト内の重複する動きベクトルが除去される。可能な候補の数が2より多い場合、関連する参照ピクチャリスト内の参照ピクチャインデックスが1より大きい動きベクトル候補が、該リストから除去される。空間-時間動きベクトル候補の数が2より小さい場合、追加のゼロ動きベクトル候補がリストに追加される。
【0087】
2.1.3.2 空間動きベクトル候補
【0088】
空間動きベクトル候補の導出では、
図2に示される位置に位置するPUから導出される5個の可能な候補の中で、最大で2個の候補が考慮される。それらの位置は動きマージの位置と同じである。現在PUの左側の導出の順序は、A
0、A
1、及びスケーリングされたA
0、スケーリングされたA
1として定義される。現在PUの上側の導出の順序は、B
0、B
1、B
2、及びスケーリングされたB
0、スケーリングされたB
1、スケーリングされたB
2として定義される。各側面について、動きベクトル候補として使用可能な4つのケースがある。ここで、2つのケースでは空間スケーリングを使用する必要がなく、2つのケースでは空間スケーリングが使用される。4つの異なるケースは以下のように纏められる。
空間スケーリング無し。
(1)同じ参照ピクチャリスト、同じ参照ピクチャインデックス(同じPOC)。
(2)異なる参照ピクチャリスト、同じ参照ピクチャ(同じPOC)。
空間スケーリング。
(3)同じ参照ピクチャリスト、異なる参照ピクチャ(異なるPOC)。
(4)異なる参照ピクチャリスト、異なる参照ピクチャ(異なるPOC)。
【0089】
空間スケーリング無しのケースの後には、最初に空間スケーリングが続く。参照ピクチャリストに拘わらず、POCが近隣PUの参照ピクチャと現在PUの参照ピクチャとの間で異なるとき、空間スケーリングが考慮される。左候補の全部のPUが利用可能ではない又はイントラコーディングされる場合、左及び上のMV候補の並列の導出を助けるために、上の動きベクトルのスケーリングが許可される。その他の場合、上の動きベクトルについて、空間スケーリングは許可されない。
【0090】
図9は、空間動きベクトル候補の動きベクトルスケーリングの図を示す。
【0091】
空間スケーリング処理では、近隣PUの動きベクトルは、
図9に示される時間スケーリングと同様の方法でスケーリングされる。主な違いは、現在PUの参照ピクチャリスト及びインデックスが入力として与えられることであり、実際のスケーリング処理は時間スケーリングのものと同じである。
【0092】
2.1.3.3 時間動きベクトル候補
【0093】
参照ピクチャインデックス導出は別として、時間マージ候補の導出のための全ての処理は、空間動きベクトル候補の導出と同じである(
図6を参照)。参照ピクチャインデックスは、デコーダへシグナリングされる。
【0094】
2.2 JEMにおけるローカル照明補償
【0095】
ローカル照明補償(Local Illumination Compensation (LIC))は、スケーリング係数a及びオフセットbを使用する、照明の変化の線形モデルに基づく。そしてそれは、インターモードでコーディングされたコーディングユニット(coding unit (CU))毎に適応的に有効又は無効にされる。
【0096】
図10は、ICパラメータを導出するために使用される近隣サンプルの例を示す。
【0097】
LICがCUに適用されるとき、現在CUの近隣サンプル及びそれらの対応する参照サンプルを用いてパラメータa及びbを導出するために、最小二乗誤差法が利用される。より具体的には、
図12に示すように、CUのサブサンプリング(2:1サブサンプリング)された近隣サンプル、及び参照ピクチャ内の(現在CU又はサブCUの動き情報により識別される)対応するサンプルが使用される。
【0098】
2.2.1 予測ブロックの導出
【0099】
ICパラメータは、予測方向毎に個別に導出され適用される。予測方向毎に、第1予測ブロックが復号動き情報により生成され、時間予測ブロックがLICモデルを適用することにより取得される。その後、最終的な予測ブロックを導出するために、2個の時間予測ブロックが利用される。
【0100】
CUがマージモードによりコーディングされるとき、マージモードにおける動き情報のコピーと同様の方法で、近隣ブロックからLICフラグがコピーされる。その他の場合、LICフラグは、LICが適用されるか否かを示すために、CUについてシグナリングされる。
【0101】
LICがピクチャについてシグナリングされるとき、LICがCUに適用されるか否かを決定するために、追加CUレベルRDチェックが必要である。LICがCUについて有効であるとき、整数ペル(pel)動き探索及び分数ペル動き探索のために、それぞれ、SAD及びSATDの代わりに、平均除去絶対差分和(mean-removed sum of absolute difference (MR-SAD))及び平均除去絶対アダマール変換差分和(mean-removed sum of absolute Hadamard-transformed difference (MR-SATD))が使用される。
【0102】
符号化の複雑さを低減するために、JEMでは以下の符号化方式が適用される。
【0103】
現在ピクチャとその参照ピクチャとの間に明らかな照明の変化が存在しないとき、LICはピクチャ全体について無効にされる。この状況を識別するために、現在ピクチャ及び現在ピクチャの全ての参照ピクチャのヒストグラムが、エンコーダにおいて計算される。現在ピクチャと現在ピクチャの全ての参照ピクチャとの間のヒストグラム差が所与の閾値より小さい場合、LICは現在ピクチャについて無効にされ、その他の場合、LICは現在ピクチャについて有効にされる。
【0104】
2.3 VVCにおけるインター予測方法
【0105】
MVDをシグナリングするための適応型動きベクトル差精度(Adaptive motion vector difference resolution (AMVR))、アフィン予測モード、三角形予測モード(Triangular prediction mode (TPM))、高度TMVP(Advanced TMVP (ATMVP, aka SbTMVP))、一般化双予測(Generalized Bi-Prediction (GBI))、双方向オプティカルフロー(Bi-directional Optical flow (BIO又はBDOF))のような、インター予測の向上のための幾つかの新しいコーディングツールがある。
【0106】
2.3.1 VVCにおけるコーディングブロック構造
【0107】
VVCでは、ピクチャを正方形又は長方形ブロックに分割するために、4分木/2分木/マルチ木(QuadTree/BinaryTree/MulitpleTree (QT/BT/TT))構造が採用される。
【0108】
QT/BT/TTに加えて、別の木(別名、デュアルコーディング木)も、IフレームについてVVCにおいて採用される。別の木により、コーディングブロック構造は、ルマ及びクロマ成分について個別にシグナリングされる。
【0109】
2.3.2 適応型動きベクトル差精度
【0110】
HEVCでは、(動きベクトルとPUの予測動きベクトルとの間の)動きベクトル差(motion vector differences (MVDs))は、スライスヘッダ内でuse_integer_mv_flagが0に等しいとき、4分の1ルマサンプルの単位でシグナリングされる。VVCでは、ローカル適応型動きベクトル精度(adaptive motion vector resolution (AMVR))が導入される。VVCでは、MVDは、4分の1ルマサンプル、整数ルマサンプル、又は4個のルマサンプル(つまり、1/4ペル、1ペル、4ペル)の単位でコーディングできる。MVD精度は、コーディングユニット(coding unit (CU))レベルで制御され、MVD精度フラグは、少なくとも1つのゼロではないMVD成分を有するCU毎に、条件付きでシグナリングされる。
【0111】
少なくとも1つのゼロではないMVD成分を有するCUについて、4分の1ルマサンプルMV精度が該CUについて使用されるかどうかを示すために、第1フラグがシグナリングされる。第1フラグ(1に等しい)が、4分の1ルマサンプルMV精度が使用されないことを示すとき、整数ルマサンプルMV精度又は4ルマサンプルMV精度が使用されるかどうかを示すために、別のフラグがシグナリングされる。
【0112】
CUの第1MVD精度フラグが0である、又はCUについてコーディングされない(CU内の全部のMVDが0であことを意味する)とき、4分の1ルマサンプルMV精度が該CUについて使用される。CUが整数ルマサンプルMV精度又は4ルマサンプルMV精度を使用するとき、該CUのAMVP候補リスト内のMVPは、対応する精度に丸め込まれる。
【0113】
2.3.3 アフィン動き補償精度
【0114】
HEVCでは、変換動きモデルのみが動き補償予測(motion compensation prediction (MCP))のために適用される。現実世界では、多くの種類の動き、例えばズームイン/アウト、回転、遠近法の動き、及び他の不規則な動きが存在する。VVCでは、4パラメータアフィンモデル及び6パラメータアフィンモデルにより、簡略化されたアフィン変換動き補償予測が適用される。
図13に示すように、ブロックのアフィン動きフィールドは、4パラメータアフィンモデルでは2つの制御点動きベクトル(control point motion vectors (CPMVs))により、6パラメータアフィンモデルでは3個のCPMVにより、記述される。
【0115】
図11A~11Bは、それぞれ、4パラメータアフィンモード及び6パラメータアフィンモードの簡略アフィン動きモデルを示す。
【0116】
ブロックの動きベクトルフィールド(motion vector field (MVF))は、次式により、式(1)の4パラメータアフィンモデル(4パラメータは変数a、b、e及びfにより定義される)、式(2)の6パラメータアフィンモデル(6パラメータは変数a、b、c、d、e及びfにより定義される)によりそれぞれ記述される。
【数1】
【0117】
ここで、(mvh
0,mvh
0)は左上角制御点の動きベクトルであり、(mvh
1,mvh
1)は右上角制御点の動きベクトルであり、(mvh
2,mvh
2)は左下角制御点の動きベクトルであり、3個の動きベクトルの全部は制御点動きベクトル(control point motion vectors (CPMV))と呼ばれ、(x,y)はそれぞれの点の現在ブロック内の左上サンプルに対する代表点(representative point)の座標を表し、(mvh(x,y),mvv(x,y))は(x,y).にあるサンプルについて導出された動きベクトルである。CP動きベクトルは、(アフィンAMVPモードにおけるように)シグナリングされるか、又は(アフィンマージモードにおけるように)オンザフライで導出されてよい。w及びhは、現在ブロックの幅及び高さである。実際には、丸め込み演算を伴う右シフトにより分割が実施される。VTMでは、代表点は、サブブロックの中央位置であると定義される。例えば、現在ブロック内の左上サンプルに対するサブブロックの左上角の座標が(xs,ys)であるとき、代表点の座標は(xs+2,ys+2)であると定義される。サブブロック(つまり、VTMでhは4×4)毎に、サブブロック全体の動きベクトルを導出するために、代表点が利用される。
【0118】
動き補償予測を更に簡略化するために、サブブロックに基づくアフィン変換予測が適用される。M×N(現在のVVCでは、M及びNは両方とも4に設定される)の動きベクトルを導出するために、各サブブロックの中央サンプルの動きベクトルは、
図14に示すように、式(1)及び(2)に従い導出され、1/16分数精度で丸め込まれる。次に、1/16ペルの動き補償補間フィルタが適用されて、導出した動きベクトルにより各サブブロックの予測を生成する。1/16ペルの補間フィルタは、アフィンモードにより導入される。
【0119】
図12は、サブブロック毎のアフィンMVFの例を示す。
【0120】
MCPの後に、各サブブロックの高精度動きベクトルは丸め込まれ、通常の動きベクトルと同じ精度で保存される。
【0121】
2.3.3.1 アフィン予測のシグナリング
【0122】
変換動きモデルと同様に、アフィン予測によりサイド情報をシグナリングするための2つのモードがある。それらは、AFFINE_INTER及びAFFINE_MERGEモードである。
【0123】
2.3.3.2 AF_INTERモード
【0124】
8より大きい幅及び高さを有するCUでは、AF_INTERモードが適用できる。AF_INTERモードが使用されるかどうかを示すために、CUレベルのアフィンフラグがビットストリーム内でシグナリングされる。
【0125】
このモードでは、参照ピクチャリスト(リスト0又はリスト1)毎に、以下の順序で3種類のアフィン動き予測子により、アフィンAMVP候補リストが構成される。ここで、各候補は現在ブロックの推定CPMVを含む。エンコーダ側で見付かった最良のCPMV(
図17のmv
0、mv
1、及びmv
2)と推定CPMVとの差がシグナリングされる。加えて、推定CPMVが導出されるアフィンAMVP候補のインデックスが、更にシグナリングされる。
【0126】
(1)継承アフィン動き予測子
チェック順序は、HEVCのAMVPリスト構成の空間MVPの順序と同様である。先ず、左の継承アフィン動き予測子は、アフィンコーディングされ現在ブロック内と同じ参照ピクチャを有する、{A1,A0}内の第1ブロックから導出される。次に、上の継承アフィン動き予測子は、アフィンコーディングされ現在ブロック内と同じ参照ピクチャを有する、{B1,B0,B2}内の第1ブロックから導出される。
図16には、5個のブロックA1,A0,B1,B0,B2が示される。
【0127】
近隣ブロックがアフィンモードでコーディングされるべきであると分かると、現在ブロックのCPMVの予測子を導出するために、近隣ブロックをカバーするコーディングユニットのCPMVが使用される。例えば、A1が非アフィンモードによりコーディングされ、A0が4パラメータアフィンモードによりコーディングされる場合、左の継承アフィンMV予測子はA0から導出される。この場合、
図16Bで左上CPMVのMV
0
N及び右上CPMVのMV
1
Nとして示されるように、A0をカバーするCUのCPMVは、現在ブロックの左上(座標(x0,y0))、右上(座標(x1,y1))及び右下(座標(x2,y2))のMV
0
C、MV1
C及びMV
2
Cにより示される、現在ブロックの推定CPMVを導出するために利用される。
【0128】
(2)構成されたアフィン動き予測子
構成されたアフィン動き予測子は、
図17に示すように近隣のインターコーディングされたブロックから導出され同じ参照ピクチャを有する制御点動きベクトル(control-point motion vectors (CPMVs))により構成される。現在のアフィン動きモデルが4パラメータアフィンである場合、CPMVの数は2である。その他の場合、現在のアフィン動きモデルが6パラメータアフィンである場合、CPMVの数は3である。左上CPMV(mv
0
-)は、インターコーディングされ現在ブロック内と同じ参照ピクチャを有する、グループ{A,B,C}の中の第1ブロックにおけるMVにより導出される。右上CPMV(ベクトルmv
1)は、インターコーディングされ現在ブロック内と同じ参照ピクチャを有する、グループ{D,E}の中の第1ブロックにおけるMVにより導出される。左下CPMV(ベクトルmv
2)は、インターコーディングされ現在ブロック内と同じ参照ピクチャを有する、グループ{F,G}の中の第1ブロックにおけるMVにより導出される。
【0129】
現在のアフィン動きモデルが4パラメータアフィンである場合、構成されたアフィン動き予測子は、ベクトルmv0及びmv1の両方が見付かった場合にのみ、候補リストに挿入される。つまり、ベクトルmv0及びmv1は、現在ブロックの左上(座標(x0,y0))、右上(座標(x1,y1))位置の推定CPMVとして使用される。
【0130】
現在のアフィン動きモデルが6パラメータアフィンである場合、構成されたアフィン動き予測子は、ベクトルmv0、mv1及びmv2の全部が見付かった場合にのみ、候補リストに挿入される。つまり、ベクトルmv0、mv1及びmv2は、現在ブロックの左上(座標(x0,y0))、右上(座標(x1,y1))及び右下(座標(x2,y2))位置の推定CPMVとして使用される。
【0131】
構成されたアフィン動き予測子を候補リストに挿入するときに、刈り込み処理は適用されない。
【0132】
(3)通常のアフィン動き予測子
以下は、アフィン動き予測子が最大に達するまで適用される。
1)利用可能な場合、全部のCPMVをベクトルmv2に等しく設定することにより、アフィン動き予測子を導出する。
2)利用可能な場合、全部のCPMVをベクトルmv1に等しく設定することにより、アフィン動き予測子を導出する。
3)利用可能な場合、全部のCPMVをベクトルmv0に等しく設定することにより、アフィン動き予測子を導出する。
4)利用可能な場合、全部のCPMVをベクトルHEVC TMVPに等しく設定することにより、アフィン動き予測子を導出する。
5)全部のCPMVをゼロMVに設定することにより、アフィン動き予測子を導出する。
【0133】
ベクトルmviは構成されたアフィン動き予測子において既に導出されていることに留意する。
【0134】
図13A~13Bは、それぞれ4パラメータアフィンモデル及び6パラメータアフィンモデルの例を示す。
【0135】
図14は、継承されたアフィン候補のAF_INTERのMVPを示す。
【0136】
図15は、構成されたアフィン候補のAF_INTERのMVPを示す。
【0137】
図16A~16Bは、AF_MERGEの候補の例を示す。
【0138】
AF_INTERモードでは、4/6パラメータアフィンモードが使用されるとき、2/3制御点が必要であり、従って、
図15に示すように、これらの制御点について2/3MVDがコーディングされる必要がある。JVET-K0337では、MVを以下のように導出することが提案されている。つまり、mvd
1及びmvd
2がmvd
0から予測される。
【数2】
【0139】
ここで、ベクトルmv
i、mvd
1及びmv
1は、
図16Bに示すように、それぞれ左上ピクセル(i=0)、右上ピクセル(i=1)、又は左下ピクセル(i=2)の予測された動きベクトル、動きベクトル差、及び動きベクトルである。2つの動きベクトル(例えば、mvA(xA,yA)及びmvB(xB,yB))の加算は、別の2つの成分の和に等しい、つまり、newMV=mvA+mvBであり、newMVの2つの成分はそれぞれ(xA+xB)及び(yA+yB)に設定されることに留意する。
【0140】
2.3.3.3 AF_MERGEモード
【0141】
AF_MERGEモードでCUが適用されるとき、有効な近隣再構成ブロックから、アフィンモードによりコーディングされた第1ブロックを得る。候補ブロックの選択順は、
図16Aに示すように(順にA、B、C、D、Eにより示される)、左から、上、右上、左下、左上へである。例えば、近隣の左下ブロックが
図167でA0により示されるようにアフィンモードでコーディングされる場合、要素B、ブロックAを含む近隣CPU/PUの左上角、右上角、及び左下角の制御点(Control Point (CP))動きベクトルmv
0
N、mv
1
N、及びmv
2
Nが、フェッチされる。そして、現在CU/PU上の左上角/右上/左下の動きベクトルmv
0
C,mv
1
C及びmv
2
C(6パラメータアフィンモードのために使用される)は、mv
0
N,mv
1
N及びmv
2
Nに基づき計算される。留意すべきことに、VTM-2.0では、現在ブロックがアフィンコーディングされる場合、左上角に位置するサブブロック(例えば、VTMにおいて4×4ブロック)は、mv0を格納し、右上角にあるサブブロックはmv1を格納する。現在ブロックが6パラメータアフィンモデルによりコーディングされる場合、左下角に位置するサブブロックは、mv2を格納し、その他の場合(4パラメータアフィンモデルによる)、LBはmv2'を格納する。他のサブブロックは、MCのために 使用されるMVを格納する。
【0142】
現在CUのCPMV mv0
C,mv1
C及びmv2
Cが導出された後に、簡略アフィン動きモデルの式(1)及び(2)に従い、現在CUのMVFが生成される。現在CUがAF_MERGEモードでコーディングされるかどうかを識別するために、アフィンモードでコーディングされる少なくとも1つの近隣ブロックがあるとき、アフィンフラグがビットストリーム内でシグナリングされる。
【0143】
JVET-L0142及びJVET-L0632では、アフィンマージ候補リストが以下のステップにより構成される。
【0144】
1)継承アフィン候補を挿入する。
継承アフィン候補は、候補が、その有効な近隣のアフィンコーディングされたブロックのアフィン動きモデルから導出されることを意味する。最大2個の継承アフィン候補が、近隣ブロックのアフィン動きモデルから導出され、候補リストに挿入される。左の予測子について、スキャン順は{A0,A1}であり、上の予測子について、スキャン順は{B0,B1,B2}である。
【0145】
2)構成されたアフィン候補を挿入する。
アフィンマージ候補リストの構成要素がMaxNumAffineCand(例えば、5)より少ない場合、構成されたアフィン候補が候補リストに挿入される。構成されたアフィン候補は、候補が、各制御点の近隣動き情報を結合することにより構成されることを意味する。
a)
図19に示すように、制御点の動き情報が、先ず、指定された空間近隣及び時間近隣から導出される。CPk(k=1,2,3,4)は、k番目の制御点を表す。A0,A1,A2,B0,B1,B2及びB3は、CPk(k=1,2,3)を予測するための空間位置であり、TはCP4を予測するための時間位置である。
CP1,CP2,CP3及びCP4の座標は、それぞれ(0,0),(W,0),(H,0)及び(W,H)である。ここで、W及びHは、現在ブロックの幅及び高さである。
【0146】
図17は、アフィンマージモードの候補位置の例を示す。
【0147】
各制御点の動き情報は、以下の優先順位に従い取得される。
CP1について、チェック優先度は、B2->B3->A2である。B2は、利用可能な場合に使用される。或いは、B2が利用可能な場合、B3が使用される。B2及びB3の両方が利用可能ではない場合、A2が使用される。3個の候補の全部が利用可能ではない場合、CP1の動き情報は取得できない。
CP2について、チェック優先度は、B1->B0である。
CP3について、チェック優先度は、A1->A0である。
CP4について、Tが使用される。
b)第2に、アフィンマージ候補を構成するために、制御点の組合せが使用される。
I.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パラメータ動きモデルへと変換される。
II.4パラメータアフィン候補を構成するために、2個の制御点の動き情報が必要である。2個の制御点は、2個の組合せ({CP1,CP2},{CP1,CP3})のうちの1つから選択できる。2個の組合せは、左上及び右上制御点により表される4パラメータ動きモデルへと変換される。
III.構成されたアフィン候補の組合せは、以下の順で候補リストに挿入される:
{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3}。
i.組合せ毎に、各CPのリストXの参照インデックスがチェックされ、それらが全部同じ場合、この組合せはリストXについて有効なCPMVを有する。組合せがリスト0及びリスト1の両方について有効なCPMVを有しない場合、この組合せは無効としてマークされる。その他の場合、それは有効であり、CPMVはサブブロックマージリストに入れられる。
【0148】
3)ゼロ動きベクトルによりパディングする。
アフィンマージ候補リストの中の候補の数が5より少ない場合、リストが満たされるまで、ゼロ参照インデックスを有するゼロ動きベクトルが候補リストに挿入される。
【0149】
より具体的には、サブブロックマージ候補リストについて、4パラメータマージ候補は、(0,0)に設定されたMV、及びリスト0(Pスライスについて)からの片予測及び双予測(Bスライスについて)に設定された予測方向を有する。
【0150】
2.3.4 動きベクトル差とのマージ(Merge with Motion Vector Difference (MMVD))
【0151】
JVET-L0054では、最終的な動きベクトル表現(ultimate motion vector expression (UMVE)、MMVDとしても知られる)が提示される。UMVEは、提案された動きベクトル表現方法によるスキップ又はマージモードのために使用される。
【0152】
UMVEは、VCCにおける通常のマージ候補リストに含まれるものと同じマージ候補を再利用する。マージ候補の中から、基本候補を選択することができ、提案された動きベクトル表現方法により更に拡張される。
【0153】
UMVEは、新しい動きベクトル差(motion vector difference (MVD))表現方法を提供し、その中で、MVDを表すために、開始点、動きの大きさ及び動き方向が使用される。
【0154】
【0155】
【0156】
この提案される技術は、マージ候補リストをそのまま使用する。しかし、規定マージタイプ(MRG_TYPE_DEFAULT_N)である候補のみが、UMVEの拡張のために考慮される。
【0157】
基本候補インデックスは、開始点を定める。基本候補インデックスは、以下のように、リスト内の候補の中で最良の候補を示す。
表1 基本候補IDX
【表1】
【0158】
基本候補の数が1に等しい場合、基本候補IDXはシグナリングされない。
【0159】
距離インデックスは、動きの大きさの情報である。距離インデックスは、開始点情報からの予め定められた距離を示す。予め定められた距離は以下の通りである。
表2 距離IDX
【表2】
【0160】
方向インデックスは、開始点に対するMVDの方向を表す。方向インデックスは、以下に示すように4つの方向を表すことができる。
表3 方向IDX
【表3】
【0161】
UMVEフラグは、スキップフラグ又はマージフラグを送信した直後にシグナリングされる。スキップ又はマージフラグが真(true)の場合に、UMVEフラグがパースされる。UMVEフラグが1に等しい場合、UMVEシンタックスがパースされる。しかし、1ではない場合、AFFINEフラグがパースされる。AFFINEフラグが1に等しい場合、AFFINEモードであるが、1ではない場合、VTMのスキップ/マージインデックスがパースされる。
【0162】
UMVE候補による追加のラインバッファは必要ない。何故なら、ソフトウェアのスキップ/マージ候補が、基本候補として直接使用されるからである。動き補償の直前に、入力UMVEインデックスを用いて、MVの補足が決定される。このために、長いラインバッファを保持する必要がない。
【0163】
現在の共通テスト条件では、マージ候補リスト内の第1又は第2マージ候補のいずれかが、基本候補として選択され得る。
【0164】
UMVEは、MV差によるマージ(Merge with MV Differences (MMVD))としても知られている。
【0165】
2.3.5 デコーダ側動きベクトル精緻化(Decoder-side Motion Vector Refinement (DMVR))
【0166】
双予測動作では、1つのブロック領域の予測について、それぞれリスト0の動きベクトル(MV)及びリスト1のMVを用いて形成された2個の予測ブロックが結合されて、単一の予測信号を形成する。デコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))方法では、双予測の2個の動きベクトルが更に精緻化される。
【0167】
2.5.3.1 JEMにおけるDMVR
【0168】
JEM設計では、動きベクトルは、バイラテラルテンプレートマッチング処理により精緻化される。バイラテラルテンプレートマッチングは、追加動き情報を送信することなく精緻化MVを取得するために、バイラテラルテンプレートと参照ピクチャ内の再構成サンプルとの間の歪みに基づく検索を実行するためにデコーダにおいて適用される。
図22に例が示される。
図22に示されるように、バイラテラルテンプレートは、それぞれリスト0の初期MV0及びリスト1のMV1から、2個の予測ブロックの加重組合せ(つまり平均)として生成される。テンプレートマッチング動作は、生成されたテンプレートと参照ピクチャ内の(初期予測ブロックの周囲の)サンプル領域との間の計算コスト指標で構成される。2個の参照ピクチャの各々について、最小テンプレートコストを生じるMVが、元のMVを置き換えるための、該リストの更新MVと考えられ得る。JEMでは、9個のMV候補が各リストについて検索される。9個のMV候補は、元のMVと、水平又は垂直又は両方向で元のMVに対して1ルマサンプルオフセットを有する8個の周囲MVとを含む。最後に、
図22に示されるように、2個の新しいMV、つまりMV0′及びMV1′が、最終双予測結果を生成するために使用される。絶対差の合計(sum of absolute differences (SAD))がコスト指標として使用される。1個の周囲MVにより生成された予測ブロックのコストを計算するとき、実際には、実数MVの代わりに、(整数ペルに)丸め込まれたMVが予測ブロックを取得するために使用される。
【0169】
図20は、バイラテラルテンプレートマッチングに基づくDMVRの例を示す。
【0170】
2.3.58.2 VCCにおけるDMVR
【0171】
図21に示されるように、VCCにおけるDMVRについて、リスト0とリスト1との間のMVDミラーリングが想定され、バイラテラル照合が実行されて、MVを精緻化する。つまり、幾つかのMVD候補の中から最良のMVDを見付ける。2個の参照ピクチャリストのMVをMVL0(L0X,L0Y)及びMVL1(L1X,L1Y)により示す。コスト関数(例えば、SAD)を最小化し得る、リスト0について(MvdX,MvdY)により示されるMVDは、最良のMVDとして定義される。SAD関数では、それは、リスト0参照ピクチャ内の動きベクトル(L0X+MvdX,L0Y+MvdY)により導出されたリスト0の参照ブロックと、リスト1参照ピクチャ内の動きベクトル(L1X-MvdX,L1Y-MvdY)により導出されたリスト1の参照ブロックとの間のSADとして定義される。
【0172】
動きベクトル精緻化処理は、2回繰り返されてよい。
図22に示されるように、反復において、最大で6個のMVD(整数ペル精度を有する)が、2つのステップでチェックされてよい。第1ステップではMVD(0,0),(-1,0),(1,0),(0,-1),(0,1)がチェックされる。第2ステップでは、MVD(-1,-1),(-1,1),(1,-1)又は(1,1)のうちの1つが選択され、更にチェックされる。関数Sad(x,y)がMVD(x,y)のSAD値を返すとする。第2ステップでチェックされた、(MvdX,MvdY)により示されるMVDは、以下のように決定される。
【数3】
【0173】
第1の反復では、開始点がシグナリングされたMVであり、第2の反復では、開始点は、シグナリングされたMVに、第1の反復における選択された最良のMVDを加算したものである。DMVRは、1個の参照ピクチャが先行するピクチャであり、他の参照ピクチャが後続のピクチャであるときにのみ適用され、2個の参照ピクチャは、現在ピクチャから同じピクチャオーダカウント距離を有する。
【0174】
図21は、DMVRにおけるリスト0とリスト1との間でミラーリングされるMVD(0,1)の例を示す。
【0175】
図22は、1回の反復の中でチェックされ得るMVの例を示す。
【0176】
DMVRの処理を更に簡略化するために、JVET-M0147は、JEMにおける設計に対して幾つかの変更を提案した。おり具体的には、(間もなく発表される)VTM-4.0に採用されたDMVR設計は、以下の主な特徴を有する。
リスト0とリスト1との間の(0,0)位置SADが閾値より小さいとき、早く終了する。
リスト0とリスト1との間のSADが特定の位置でゼロであるとき、早く終了する。
DMVRのブロックサイズ:W*H>=64&&H>=8、ここで、W及びHはブロックの幅及び高さである。
CUサイズ>16*16のDMVRについて、CUを複数の16×16サブブロックに分割する。CUの幅又は高さのみが16より大きい場合、それは、垂直又は水平方向に分割されるだけである。
(ルマの)参照ブロックサイズ(W+7)*(H+7)。
25点のSADに基づく整数ペル検索(つまり、(+-)2精緻化検索範囲、単一ステージ)。
バイリニア補間に基づくDMVR。
「パラメータ誤差表面式(Parametric error surface equation)」に基づくサブペル精緻化。この手順は、最小SADコストがゼロに等しくなく、最良MVDが最後のMV精緻化反復の中で(0,0)であるときにのみ実行される。
(必要に応じて)参照ブロックパディングを伴うルマ/クロマMC。
MC及びTMVPにのみ使用される精緻化MV。
【0177】
2.3.5.2.1 DMVRの使用
【0178】
以下の条件が全て真であるとき、DMVRは有効にされてよい。
SPS内のDMVR有効ラグ(つまりsps_dmvr_enabled_flag)が1に等しい。
TPMフラグ、インターアフィンフラグ、及びサブブロックマージフラグ(ATMVP又はアフィンマージのいずれか)、MMVDフラグは、全て0に等しい。
マージフラグは1に等しい。
現在ブロックは双予測され、現在ピクチャとリスト1内の参照ピクチャとの間のPOC差は、リスト0内の参照ピクチャと現在ピクチャとの間のPOC距離に等しい。
現在CU高さは、8以上である。
ルマサンプルの数(CU幅*高さ)は、64以上である。
【0179】
2.3.5.2.2 「パラメータ誤差表面式(Parametric error surface equation)」に基づくサブペル精緻化
【0180】
方法は、以下に纏められる。
1.パラメータ誤差表面適合は、所与の反復において中心位置が最良コスト位置である場合にのみ、計算される。
2.中心位置コスト、及び中心からの(-1,0),(0,-1),(1,0)及び(0,1)位置におけるコストは、次式の形式の2D放物誤差表面式を適合するために使用される。
【数4】
ここで、(x
0,y
0)は、最小コストを有する位置に対応し、Cは最小コスト値に対応する。5個の未知数の5個の方程式を解くことにより、(x
0,y
0)は以下のように計算される。
【数5】
(x
0,y
0)は、分割が実行される精度(つまり、商の何個のビットが計算されるか)を調整することにより、任意の所要のサブピクセル精度に計算できる。1/16ペル精度では、商の絶対値の中に4ビットが計算される必要があるだけである。これは、CU毎に必要な2回の除算の高速シフト減算に基づく実施に役立つ。
3.計算された(x
0,y
0)は、整数距離精緻化MVに加算されて、サブピクセル精度精緻化デルタMVを得る。
【0181】
2.3.6 結合されたイントラ及びインター予測
【0182】
JVET-L0100では、複数仮説予測(multi-hypothesis prediction)が提案されている。複数仮説を生成するための1つの方法は、結合イントラ及びインター予測である。
【0183】
複数仮説予測がイントラモードを向上するために適用されるとき、複数仮説予測は、1つのイントラ予測と1つのマージインデックス予測とを結合する。マージCUの中で、マージモードのために1つのフラグがシグナリングされ、フラグが真であるとき、イントラ候補リストからイントラモードを選択する。ルマ成分について、イントラ候補リストは、DC、平面、水平、及び垂直を含む4個のイントラ予測モードから導出され、イントラ候補リストのサイズはブロック形状に依存して3又は4であり得る。CU幅がCU高さの2倍より大きいとき、水平モードはイントラモードリストから削除され、CU高さがCU幅の2倍より大きいとき、垂直モードがイントラモードリストから削除される。イントラモードインデックスにより選択された1つのイントラ予測モードと、マージインデックスにより選択された1つのマージインデックス予測とが、加重平均を用いて結合される。クロマ成分については、追加シグナリングを伴わずに、DMが常に適用される。予測を結合するための重みを以下に説明する。DC又は平面モードが選択され、CB幅又は高さが4より小さいとき、等しい重みが適用される。CB幅及び高さが4以上であるCBについては、水平/垂直モードが選択されるとき、1つのCBは、先ず、水平方向/垂直方向に分割されて、4個の等面積の領域になる。各重みセットは、(w_intra
i,w_inter
i)と示され、ここで、iは1~4であり、(w_intra
1,w_inter
1)=(6,2)、(w_intra
2,w_inter
2)=(5,3)、(w_intra
3,w_inter
3)=(3,5)、(w_intra
4,w_inter
4)=(2,6)であり、対応する領域に適用される。(w_intra
1,w_inter
1)は参照サンプルに最も近い領域のためであり、(w_intra
4,w_inter
4)は参照サンプルに最も離れた領域のためである。次に、結合された予測は、2つの重み付けされた予測を加算し、3ビットだけ右へシフトすることにより、計算できる。更に、予測子の複数仮説のためのイントラ予測モードは、以降の近隣CUの参照のために保存され得る。
2.3.7 JVET-M0481における対称動きベクトル差
JVET-M0481では、双予測における動き情報コーディングのために、対称動きベクトル差(symmetric motion vector difference (SMVD))が提案されている。
最初に、スライスレベルで、変数BiDirPredFlag,RefIdxSymL0及びRefIdxSymL1が以下のように導出される。
現在ピクチャに最も近い参照ピクチャリスト0内の順方向参照ピクチャが検索される。見付かると、RefIdxSymL0は、順方向ピクチャの参照インデックスに等しく設定される。
現在ピクチャに最も近い参照ピクチャリスト1内の逆方向参照ピクチャが検索される。見付かると、RefIdxSymL1は、逆方向ピクチャの参照インデックスに等しく設定される。
順方向及び逆方向ピクチャの両方が見付かると、BiDirPredFlagは1に等しく設定される。
その他の場合、以下が適用される。
現在ピクチャに最も近い参照ピクチャリスト0内の逆方向参照ピクチャが検索される。見付かると、RefIdxSymL0は、逆方向ピクチャの参照インデックスに等しく設定される。
現在ピクチャに最も近い参照ピクチャリスト1内の順方向参照ピクチャが検索される。見付かると、RefIdxSymL1は、順方向ピクチャの参照インデックスに等しく設定される。
逆方向及び順方向ピクチャの両方が見付かると、BiDirPredFlagは1に等しく設定される。その他の場合、BiDirPredFlagが0に等しく設定される。
第2に、CUレベルで、CUの予測方向が双予測であり、BiDirPredFlagが1に等しい場合、対称モードが使用されるか否かを示す対称モードフラグが、明示的にシグナリングされる。
フラグが真であるとき、mvp_l0_flag,mvp_l1_flag及びMVD0のみが、明示的にシグナリングされる。参照インデックスは、リスト0及びリスト1についてそれぞれRefIdxSymL0,RefIdxSymL1に等しく設定される。MVD1は、-MVD0に等しく設定される。最終動きベクトルは次式に示される。
【数6】
【0184】
【0185】
コーディングユニットシンタックスにおける変更は、表4に(太字体で)示される。
表4 コーディングユニットシンタックスにおける変更
【表4】
【0186】
3.今日のビデオコーディング技術に伴う問題
【0187】
現在のデコーダ側動きベクトル導出(decoder side motion vector derivation (DMVD))は、以下の問題を有することがある。
1.現在ピクチャについて重み付けされた予測が有効であるときでも、DMVRが有効にされる。
2.2つの参照ピクチャが現在ピクチャから異なるPOC距離を有するとき、DMVDが無効にされる。
3.DMVR及びBIOが、異なるブロックサイズについて有効にされる。
a.DMVRが次式のとき有効にされる。
【数7】
b.BIOが次式のとき有効にされる。
【数8】
4.DMVR及びBIOが、異なるサブブロックレベルで実行される。
a.DMVRが、サブブロックレベルで実行されることがある。CUの幅及び高さの両方が16より大きいとき、16×16個のサブブロックに分割される。その他の場合、CUの幅が16より大きいとき、垂直方向に16×H個のサブブロックに分割され、CUの高さが16より大きいとき、水平方向にW×16個のサブブロックに分割される。
b.BIOが、ブロックレベルで実行される。
【0188】
4.例示的な技術及び実施形態
【0189】
以下の詳細な技術は、一般的な概念を説明するための例として考えられるべきである。これらの技術は、狭義に解釈されるべきではない。更に、これらの技術は任意の方法で結合できる。
【0190】
本願明細書では、DMVDは、ブロック/サブブロック動き情報を導出又は精緻化するために動き推定を実行するDMVR及びFRUC、及びサンプル毎の動き精緻化を実行するBIOのような方法を含む。
【0191】
予測ブロックに適用される不均等の重みは、2個の予測ブロックの平均の代わりに予測ブロックに追加動作を適用する必要のあるコーディングツールの、GBI処理、LIC処理、加重予測処理、又は他の符号化/復号処理で使用されるものを表してよい。
【0192】
リスト0及びリスト1内の参照ピクチャがそれぞれRef0及びRef1であると仮定すると、現在ピクチャとRef0との間のPOC距離はPocDist0であり(つまり、現在ピクチャのPOCからRef0のPOCを差し引いたもの)、Ref1と現在ピクチャとの間のPOC距離はPocDist1である(つまり、Ref1のPOCから現在ピクチャのPOCを差し引いたもの)。本願明細書では、PocDist1はPocDis1と同じであり、PocDist0はPocDis0と同じである。ブロックの幅及び高さをそれぞれW及びHと表す。関数abs(x)がxの絶対値を返すとする。
1.最終予測ブロック生成処理において予測ブロックに適用されるパラメータ(例えば、重み情報)は、DMVD処理で利用されてよい。
a.パラメータは、GBi又は加重予測等を使用して、デコーダへシグナリングされてよい。GBiは、コーディングユニット(coding unit (CU))重み(bi-prediction with codingunit weights (BCW))による双予測としても知られている。
b.パラメータは、LICを使用して、デコーダにおいて導出されてよい。
c.パラメータは、サンプル値のセットをサンプル値の別のセットにマッピングする再シェーピング処理のためであってよい。
d.一例では、予測ブロックに適用されるパラメータは、DMVDにおいて適用されてよい。
i.一例では、コスト関数(例えば、SAD、MR-SAD、勾配)を計算するとき、GBIインデックスに従う重み付け係数が先ず予測ブロックに適用され、次にコストが計算される。
ii.一例では、コスト関数(例えば、SAD、MR-SAD、勾配)を計算するとき、加重予測に従う重み付け係数及び/又はオフセットが先ず予測ブロックに適用され、次にコストが計算される。
iii.一例では、コスト関数(例えば、SAD、MR-SAD、勾配)を計算するとき、LICパラメータに従う重み付け係数及び/又はオフセットが先ず予測ブロックに適用され、次にコストが計算される。
iv.一例では、BIOにおける時間勾配及び空間勾配を計算するとき、GBIインデックスに従う重み付け係数が先ず予測ブロックに適用され、次にこれらの勾配が計算される。
v.一例では、BIOにおける時間勾配及び空間勾配を計算するとき、加重予測に従う重み付け係数及び/又はオフセットが先ず予測ブロックに適用され、次にこれらの勾配が計算される。
vi.一例では、BIOにおける時間勾配及び空間勾配を計算するとき、LICパラメータに従う重み付け係数及び/又はオフセットが先ず予測ブロックに適用され、次にこれらの勾配が計算される。
vii.代替として、更に、コスト計算(例えば、SAD、MR-SAD)/勾配計算は、再シェーピングされたドメインにおいて実行される。
viii.代替として、更に、動き情報が精緻化された後に、精緻化された動き情報により生成された予測ブロックについて、再シェーピング処理が無効にされる。
e.一例では、DMVDは、GBIモード及び/又はLICモード及び/又は加重予測及び/又は複数仮説予測において無効にされてよい。
f.一例では、2個の参照ピクチャの重み付け係数及び/又はオフセットが異なるとき、DMVDは、加重予測において無効にされてよい。
g.一例では、2個の参照ブロックの重み付け係数及び/又はオフセットが異なるとき、DMVDは、LICにおいて無効にされてよい。
2.DMVD処理(例えば、DMVR又はBIO)は、第1ピクチャオーダカウント距離(PocDis0)が第2ピクチャオーダカウント距離(PocDis1)と等しくないときでも、双予測ブロックに適用可能であってよい。
a.一例では、全部のDMVD処理は、PocDis0及びPocDis1に対して、同じルールに従い有効又は無効にされてよい。
i.例えば、全部のDMVD処理は、PocDis0がPocDis1に等しいとき、有効にされてよい。
ii.例えば、全部のDMVD処理は、PocDis0がPocDis1に等しくないとき、有効にされてよい。
代替として、更に、全部のDMVD処理は、PocDis0*PocDist1が0より小さいとき、無効にされてよい。
iii.例えば、全部のDMVD処理は、PocDis0がPocDis1に等しくないとき、無効にされてよい。
iv.例えば、全部のDMVD処理は、PocDis0*PocDist1が0より小さいとき、無効にされてよい。
b.一例では、PocDis0がPocDis1に等しい場合の現在の設計は有効にされる。
i.一例では、リスト0のMVDはリスト1にミラーリングされてよい。つまり、(MvdX,MvdY)がリスト0について使用される場合、2個の参照ブロックを識別するために、(-MvdX,-MvdY)がリスト1について使用される。
ii.代替として、リスト1のMVDはリスト0にミラーリングされてよい。つまり、(MvdX,MvdY)がリスト1について使用される場合、2個の参照ブロックを識別するために、(-MvdX,-MvdY)がリスト0について使用される。
c.代替として、リスト0及びリスト1についてミラーリングされたMVDを使用する(つまり、(MvdX,MvdY)がリスト0について使用され、次に(-MvdX,-MvdY)がリスト1について使用され得る)代わりに、ミラーリングされていないMVDが代わりに2つの参照ブロックを識別するために使用されてよい。
i.一例では、リスト0のMVDは、PocDist0及びPocDist1に従い、リスト1にスケーリングされてよい。
1.リスト0の選択されたMVDを(MvdX,MvdY)により表し、次に、(-MvdX*PocDist1/PocDist0,-MvdY*PocDist1/PocDist0)がリスト1に適用されるMVDとして選択される。
ii.一例では、リスト1のMVDは、PocDist0及びPocDist1に従い、リスト0にスケーリングされてよい。
1.リスト1の選択されたMVDを(MvdX,MvdY)により表し、次に(-MvdX*PocDist0/PocDist1,-MvdY*PocDist0/PocDist1)がリスト0に適用されるMVDとして選択される。
iii.スケーリングにおける分割動作は、ルックアップテーブル、複数の演算、及び右ー右演算により実施できる。
d.2個の参照ピクチャのMVDをどのように定義するか(例えば、ミラーリングを使用するか、又はMVDのスケーリングによるか)は、参照ピクチャに依存してよい。
i.一例では、abs(PocDist0)がabs(PocDist1)より小さい又は等しい場合、リスト0のMVDは、PocDist0及びPocDist1に従い、リスト1にスケーリングされてよい。
ii.一例では、abs(PocDist0)がabs(PocDist1)より大きい又は等しい場合、リスト0のMVDは、PocDist0及びPocDist1に従い、リスト1にスケーリングされてよい。
iii.一例では、abs(PocDist1)がabs(PocDist0)より小さい又は等しい場合、リスト1のMVDは、PocDist0及びPocDist1に従い、リスト0にスケーリングされてよい。
iv.一例では、abs(PocDist1)がabs(PocDist0)より大きい又は等しい場合、リスト1のMVDは、PocDist0及びPocDist1に従い、リスト0にスケーリングされてよい。
v.一例では、1個の参照ピクチャが先行するピクチャであり、他の参照ピクチャが現在ピクチャの後続のピクチャである場合、リスト0のMVDはリスト1にミラーリングされてよく、MVDスケーリングは実行されない。
e.ある種のDMVDを適用するかどうか及びどのように適用するかは、PocDist0の符号、及びPocDist1の符号に依存してよい。
i.一例では、ある種のDMVDは、PocDist0*PocDist1<0のときにのみ行うことができる。
ii.一例では、ある種のDMVDはPocDist0*PocDist1>0のときにのみ行うことができる。
f.代替として、DMVD処理(例えば、DMVR又はBIO)は、PocDist0がPocDist1に等しくないとき、無効にされてよい。
3.DMVR及び/又は他のDMVD方法は、SMVDモードにおいて有効にされてよい。
a.一例では、SMVDモードに従いビットストリームから復号されたMVD/MVは、1個のブロックを復号するために使用される前に、更に精緻化されてよい。
b.一例では、SMVDモードで、MV/MVD精度がNペルである場合、DMVR又は/及び他のDMVD方法は、mvdDmvrによりMVDを精緻化するために使用されてよい。mvdDmvrはMペル精度を有する。N,M=1/16,1/8,1/4,1/2,1,2,4,8,16等である。
i.一例では、MはN以下であってよい。
c.一例では、MVDは、SMVDモードではシグナリングされなくてよく、代わりに、DMVR及び/又は他のDMVD方法が、MVDを精製するために適用されてよい。
i.代替として、更に、AMVR情報はシグナリングされなくてよく、MV/MVD精度は、所定の値を有するよう導出されてよい(例えば、MVDは1/4ペル精度を有する)。
1.一例では、所定の値の指示は、シーケンス/ピクチャ/タイルグループ/スライス/タイル/ビデオデータユニットレベルでシグナリングされてよい。
2.一例では、所定の値は、アフィン又は非アフィン動きのようなモード/動き情報に依存してよい。
d.一例では、DMVR及び/又は他のDMVD方法が適用されるか否かの指示は、SMVDコーディングブロックについてシグナリングされてよい。
i.DMVR及び/又は他のDMVD方法が適用される場合、MVDはシグナリングされなくてよい。
ii.一例では、このような指示は、特定のMV/MVD精度についてシグナリングされてよい。例えば、このような指示は、1ペル及び/又は4ペルMV/MVD精度についてシグナリングされてよい。
iii.一例では、このような指示は、PocDist0がPocDist1に等しく、Ref0が表示順序で現在ピクチャの先行するピクチャであり、Ref1が後続のピクチャであるときにのみシグナリングされてよい。
iv.一例では、このような指示は、PocDist0がPocDist1に等しく、Ref0が表示順序で現在ピクチャの後続のピクチャであり、Ref1が先行するピクチャであるときにのみシグナリングされてよい。
e.一例では、DMVR及び/又は他のDMVD方法がSMVDコーディングブロックに適用されるかどうかは、現在ブロック及び/又は近隣ブロックのコーディング情報に依存してよい。
i.例えば、DMVR及び/又は他のDMVD方法がSMVDコーディングブロックに適用されるかどうかは、現在のブロック寸法(block dimensions)に依存してよい。
ii.例えば、DMVR及び/又は他のDMVD方法がSMVDコーディングブロックに適用されるかどうかは、POCのような参照ピクチャの情報に依存してよい。
iii.例えば、DMVR及び/又は他のDMVD方法がSMVDコーディングブロックに適用されるかどうかは、シグナリングされたMVD情報に依存してよい。
4.DMVR及び/又はBIO及び/又は全部のDMVD方法は、ブロック寸法に対する同じルールに従い有効にされてよい。
a.一例では、DMVR及びBIO及び/又は全部のDMVD方法、及び/又は提案される方法は、次式のとき有効にされてよい。
【数9】
b.一例では、DMVR及びBIO及び/又は全部のDMVD方法は、次式のとき有効にされてよい。
【数10】
c.一例では、ブロックサイズがM*H個、例えば16又は32又は64個のルマサンプルより少ないサンプルを含むとき、DMVR及びBIO及び/又は全部のDMVD方法は許可されない。
d.一例では、ブロックサイズがM*H個、例えば、16又は32又は64個のルマサンプルより多くのサンプルを含むとき、DMVR及びBIO及び/又は全部のDMVD方法は許可されない。
e.代替として、ブロックの幅及び/又は高さの最小サイズがXより小さい又は大きくないとき、DMVR及びBIO及び/又は全部のDMVD方法は許可されない。一例では、Xは8に設定される。
f.代替として、ブロックの幅>th1又は>=th1、及び/又はブロックの高さ>th2又は>=th2であるとき、DMVR及びBIO及び/又は全部のDMVD方法は許可されない。一例では、th1及び/又はth2は64に設定される。
i.例えば、DMVR及びBIO及び/又は全部のDMVD方法は、M×M(例えば、128×128)ブロックについて無効にされる。
ii.例えば、DMVR及びBIO及び/又は全部のDMVD方法は、N×M/M×Nブロック、例えばN>=64,M=128、について無効にされる。
iii.例えば、DMVR及びBIO及び/又は全部のDMVD方法は、N×M/M×Nブロック、例えばN>=4,M=128、について無効にされる。
f.代替として、ブロックの幅<th1又は<=th1、及び/又はブロックの高さ<th2又は<=th2であるとき、DMVR及びBIO及び/又は全部のDMVD方法は許可されない。一例では、th1及び/又はth2は8に設定される。
5.DMVR及び/又はBIO及び/又は全部のDMVD方法は、同じサブブロックレベルで実行されてよい。
a.DMVRのような動きベクトル精緻化処理は、サブブロックレベルで実行されてよい。
i.バイラテラルマッチングが、ブロック全体のレベルの代わりに、サブブロックレベルで行われてよい。
b.BIOが、サブブロックレベルで実行されてよい。
i.一例では、BIOを有効にする/無効にする決定は、サブブロックレベルで行われてよい。
ii.一例では、BIOにおけるサンプル毎の動き精緻化は、サブブロックレベルで行われてよい。
iii.一例では、BIOを有効/無効にする決定、及びBIOにおけるサンプル毎の動き精緻化は、サブブロックレベルで行われてよい。
c.一例では、幅>=LW又は高さ>=LH、或いは幅>=LW及び高さ>=LHを有するブロックのとき、該ブロックは複数のサブブロックに分割されてよい。各サブブロックは、サブブロックサイズと等しいサイズを有する通常のコーディングブロックと同じ方法で扱われる。
i.一例では、Lは64であり、64×128/128×64ブロックは、2個の64×64サブブロックに分割され、128×128ブロックは4個の64×64サブブロックに分割される。しかしながら、N×128/128×Nブロックはサブブロックに分割されず、ここでN<64である。L値はLH及び/又はLWと呼ばれ得る。
ii.一例では、Lは64であり、64×128/128×64ブロックは、2個の64×64サブブロックに分割され、128×128ブロックは4個の64×64サブブロックに分割される。一方で、N×128/128×Nブロックは2個のN×64/64×Nサブブロックに分割される。L値はLH及び/又はLWと呼ばれ得る。
iii.一例では、幅(又は高さ)がLより大きいとき、それは、垂直(又は水平)方向に分割され、サブブロックの幅及び/又は高さはLより大きくない。L値はLH及び/又はLWと呼ばれ得る。
d.一例では、ブロックのサイズ(つまり、幅*高さ)が、閾値L1より大きいとき、それは複数のサブブロックに分割されてよい。各サブブロックは、サブブロックサイズと等しいサイズを有する通常のコーディングブロックと同じ方法で扱われる。
i.一例では、ブロックは、L1より大きくない同じサイズを有するサブブロックに分割される。
ii.一例では、ブロックの幅(又は高さ)が閾値L2より大きくないとき、それは、垂直(又は水平)方向に分割されない。
iii.一例では、L1は1024であり、L2は32である。例えば、16×128ブロックは、2個の16×64サブブロックに分割される。
e.閾値Lは、予め定められ、又はSPS/PPS/ピクチャ/スライス/タイルグループ/タイルレベルでシグナリングされてよい。
f.代替として、閾値は、ブロックサイズ、ピクチャサイズ、時間レイヤ、インデックス、等のような特定のコーディング情報に依存してよい。
6.ある種のDMVDを適用するかどうか及びどのように適用するかの決定は、1回行われ、全部の色成分により共有されてよく、或いは、それは異なる色成分について複数回行われてよい。
a.一例では、DMVDについての決定は、Y(又はG)成分の情報に基づき行われ、他の色成分がそれに従う。
b.一例では、Y(又はG)成分に適用されるDMVDについての決定は、Y(又はG)成分の情報に基づき行われる。そして、Cb(又はCb、又はB、又はR)成分に適用されるDMVDについての決定は、Cb(又はCb、又はB、又はR)成分の情報に基づき行われる。
【0193】
図23は、ビデオ処理機器2300のブロック図である。機器2300は、ここに記載した方法のうちの1つ以上を実施するために使用されてよい。機器2300は、スマートフォン、タブレット、コンピュータ、モノのインターネット(Internet of Things (IoT))受信機、等において実施されてよい。機器2300は、1つ以上のプロセッサ2302、1つ以上のメモリ2304、及びビデオ処理ハードウェア2306を含んでよい。プロセッサ2302は、本願明細書に記載した1つ以上の方法を実施するよう構成されてよい。メモリ(複数のメモリ)2304は、本願明細書に記載の方法及び技術を実施するために使用されるデータ及びコードを格納するために使用されてよい。ビデオ処理ハードウェア2306は、ハードウェア回路で、本願明細書に記載された幾つかの技術を実施するために使用されてよく、部分的に又は完全に、プロセッサ2302(例えば、グラフィックプロセッサコアGPU又は他の信号処理回路)の部分であってよい。
【0194】
本願明細書では、用語「ビデオ処理」は、ビデオ符号化、ビデオ復号、ビデオ圧縮、又はビデオ伸長を表してよい。例えば、ビデオ圧縮アルゴリズムは、ビデオをピクセル表現から対応するビットストリーム表現へ又はその逆に変換する間に適用されてよい。現在ビデオブロックのビットストリーム表現は、シンタックスにより定義されるように、例えば、ビットストリーム内の同一位置にある又は異なる場所に拡散しているビットに対応してよい。例えば、マクロブロックは、変換されたコーディングされた誤差残差値の観点で、ヘッダ及びビットストリーム内の他のフィールドのビットも使用して、符号化されてよい。
【0195】
本願明細書において開示された技術の使用を可能にすることにより、スマートフォン、ラップトップ、デスクトップ、及び類似の装置のようなビデオ処理装置に組み込まれるビデオエンコーダ及びデコーダの実施形態に利益をもたらす幾つかの技術が開示されたことが理解される。
【0196】
図24Aは、ビデオ処理の例示的な方法2400のフローチャートである。方法2400は、2402で、少なくとも重みパラメータに基づきデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を実施することにより、ビデオの現在ビデオブロックについて精緻化動き情報を取得するステップを含む。ここで、重みパラメータは、現在ビデオブロックの最終予測ブロックの生成処理において予測ブロックに適用される。方法2400は、2404で、少なくとも精緻化動き情報及び重みパラメータを使用して、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。
【0197】
方法2400の幾つかの実施形態では、ビットストリーム表現内のフィールドは、重みパラメータを示す。方法2400の幾つかの実施形態では、重みパラメータの指示は、コーディングユニット重み(Coding unit Weights (BCW))技術により双予測を用いてシグナリングされる。方法2400の幾つかの実施形態では、重みパラメータの指示は、加重予測技術を用いてシグナリングされる。方法2400の幾つかの実施形態では、重みパラメータは導出される。方法2400の幾つかの実施形態では、重みパラメータは、ローカル照明補償(Local Illumination Compensation (LIC))技術を用いて導出される。方法2400の幾つかの実施形態では、重みパラメータは、サンプル値のセットをサンプル値の別のセットにマッピングする再シェーピング処理に関連付けられてよい。方法2400の幾つかの実施形態では、DMVD方式は、重みパラメータを現在ビデオブロックの予測ブロックに適用することにより、実施される。方法2400の幾つかの実施形態では、変換は、先ず、コーディングユニット重み(Coding unit Weights (BCW))インデックスを有する双予測に従う重みパラメータを予測ブロックに適用し、次に、予測コスト関数を計算することにより、現在ビデオブロックについて予測コスト関数を計算することを含む。
【0198】
方法2400の幾つかの実施形態では、変換は、先ず加重予測方式に従う重みパラメータを予測ブロックに適用し、次に、予測コスト関数を計算することにより、現在ビデオブロックについて予測コスト関数を計算することを含む。方法2400の幾つかの実施形態では、変換は、先ず、ローカル照明補償(Local Illumination Compensation (LIC))方式に従う重みパラメータを予測ブロックに適用し、次に、予測コスト関数を計算することにより、現在ビデオブロックについて予測コスト関数を計算することを含む。方法2400の幾つかの実施形態では、予測コスト関数は勾配関数である。方法2400の幾つかの実施形態では、予測コスト関数は絶対値差分の和(sum of absolute difference (SAD))コスト関数である。方法2400の幾つかの実施形態では、予測コスト関数は平均除去絶対差分和(mean-removed sum of absolute difference (MR-SAD))コスト関数である。
【0199】
方法2400の幾つかの実施形態では、変換は、先ず、コーディングユニット重み(Coding unit Weights (BCW))インデックスを有する双予測に従う重みパラメータを予測ブロックに適用し、次に時間勾配及び空間勾配を計算することにより、現在ビデオブロックについて、双方向オプティカルフロー(Bi-directional Optical flow (BIO))方式の時間勾配及び空間勾配を計算することを含む。方法2400の幾つかの実施形態では、変換は、先ず、加重予測方式に従う重みパラメータを予測ブロックに適用し、次に時間勾配及び空間勾配を計算することにより、現在ビデオブロックについて、双方向オプティカルフロー(Bi-directional Optical flow (BIO))方式の時間勾配及び空間勾配を計算することを含む。
【0200】
方法2400の幾つかの実施形態では、変換は、先ず、ローカル照明補償(Local Illumination Compensation (LIC))方式に従う重みパラメータを予測ブロックに適用し、次に時間勾配及び空間勾配を計算することにより、現在ビデオブロックについて、双方向オプティカルフロー(Bi-directional Optical flow (BIO))方式の時間勾配及び空間勾配を計算することを含む。方法2400の幾つかの実施形態では、予測コスト関数又は時間勾配又は空間勾配の計算は、再シェーピングされたドメインにおいて実行される。方法2400の幾つかの実施形態では、再シェーピング処理は、現在ビデオブロックについて精緻化された動き情報により生成された予測ブロックについては無効にされる。
【0201】
図24Bは、ビデオ処理の例示的な方法2410のフローチャートである。方法2410は、2412で、デコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式の使用が、現在ビデオブロックに対するコーディングツールの使用により、ビデオの現在ビデオブロックとビデオのコーディングされた表現との間の変換について無効にされることを決定するステップを含む。方法2410は、2414で、決定に基づき、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。ここで、コーディングツールは、不均等な重み付け係数を現在ビデオブロックの予測ブロックに適用することを含む。方法2410の幾つかの実施形態では、コーディングツールは、サンプル予測処理で重み係数を使用するよう構成される。
【0202】
方法2410の幾つかの実施形態では、コーディングツールは、コーディングユニット重み(Coding unit Weights (BCW))モードによる双予測を含む。方法2410の幾つかの実施形態では、BCWモードで2個の予測ブロックに対して使用される2個の重み付け係数は等しくない。方法2410の幾つかの実施形態では、重み付け係数は、現在ビデオブロックによるビットストリーム表現内のフィールド内で示される。幾つかの実施形態では、DMVD方式は、予測コスト関数に基づき精緻化動き情報を導出するデコーダ側動きベクトル精緻化(DMVR)コーディングモードを含む。幾つかの実施形態では、DMVD方式は、勾配計算に基づき精緻化予測を導出する双方向オプティカルフロー(Bi-directional optical flow (BDOF))コーディングモードを含む。方法2410の幾つかの実施形態では、現在ビデオブロックにより使用されているBCWモードは、BCWインデックス及び重み付け係数のインデックスを表すフィールドを使用することを含み、BCWインデックスは0に等しくない。
【0203】
方法2410の幾つかの実施形態では、コーディングツールは、加重予測モードを含む。方法2410の幾つかの実施形態では、現在ビデオブロックにより使用されている加重予測モードは、現在ビデオブロックの予測ブロックの少なくとも1つに加重予測を適用することを含む。方法2410の幾つかの実施形態では、コーディングツールは、ローカル照明補償(Local Illumination Compensation (LIC))モードを含む。方法2410の幾つかの実施形態では、コーディングツールは、複数仮説予測モードを含む。方法2410の幾つかの実施形態では、第1参照ピクチャの第1重みパラメータ、及び第2参照ピクチャの第2重みパラメータは、現在ビデオブロックの加重予測モードに関連付けられ、第1重みパラメータが第2重みパラメータと異なることに応答して、DMVD方式は、現在ビデオブロックについて無効にされると決定される。
【0204】
方法2410の幾つかの実施形態では、第1重みパラメータ及び/又は第2重みパラメータは、現在ビデオブロックを含むビデオユニットを有するビットストリーム表現内のフィールド内で示され、ビデオユニットはピクチャ又はスライスのうちの少なくとも1つを含む。方法2410の幾つかの実施形態では、現在ビデオブロックの第1参照ピクチャの第1線形モデルパラメータ、及び現在ビデオブロックの第2参照ピクチャの第2線形モデルパラメータは、第1線形モデルパラメータが第2線形モデルパラメータと異なることに応答して、DMVD方式は、現在ビデオブロックについて無効にされると決定される。
【0205】
図24Cは、ビデオ処理の例示的な方法2420のフローチャートである。方法2420は、2422で、ビデオの現在ビデオブロックの1つ以上の参照ピクチャのピクチャオーダカウント(POC)値、及び現在ビデオブロックを含む現在ピクチャのPOC値に基づき、現在ビデオブロックについて1つ以上のデコーダ側動きベクトル導出(DMVD)方式を有効又は無効にするかを決定するステップを含む。方法2420は、2424で、決定に従い、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。
【0206】
方法2420の幾つかの実施形態では、1つ以上のDMVD方式を有効又は無効にするかを決定するステップは、現在ビデオブロックの第1参照ピクチャから現在ピクチャまでの第1距離を表す第1POC距離(PocDis0)と、現在ピクチャから現在ビデオブロックの第2参照ピクチャまでの第2距離を表す第2POC距離(PocDis1)との間の関係に基づく。方法2420の幾つかの実施形態では、第1参照ピクチャは、現在ビデオブロックの参照ピクチャリスト0であり、第2参照ピクチャは、現在ビデオブロックの参照ピクチャリスト1である。
【0207】
方法2420の幾つかの実施形態では、PocDist0は現在ピクチャの第1POC値から第1参照ピクチャの第2POC値を差し引いたものに設定され、PocDist1は第2参照ピクチャの第3POC値から現在ピクチャの第1POC値を差し引いたものに設定される。方法2420の幾つかの実施形態では、PocDis0がPocDis1に等しくないことに応答して、1つ以上のDMVD方式が有効にされる。方法2420の幾つかの実施形態では、1つ以上のDMVD方式の中で1つより多くのDMVD方式を有効又は無効にするかの決定は、PocDis0及びPocDis1に対して適用される同じルールに基づく。方法2420の幾つかの実施形態では、PocDis0がPocDis1に等しいことに応答して、1つ以上のDMVD方式が有効にされる。
【0208】
方法2420の幾つかの実施形態では、PocDis0をPocDis1により乗算したものが0より小さいことに応答して、1つ以上のDMVD方式が無効にされる。方法2420の幾つかの実施形態では、PocDis0がPocDis1に等しくないことに応答して、1つ以上のDMVD方式が無効にされる。方法2420の幾つかの実施形態では、1つ以上のDMVD方式は、変換中に、第1参照ピクチャリストについて動きベクトル差(motion vector difference (MVD))の第1セット及び第2参照ピクチャリストについてMVDの第2セットを用いて、2個の参照ブロックを識別する。MVDの第1セットは、MVDの第2セットのミラーリングされたバージョンである。方法2420の幾つかの実施形態では、1つ以上のDMVD方式は、変換中に、第1参照ピクチャリストについて動きベクトル差(motion vector difference (MVD))の第1セット及び第2参照ピクチャリストについてMVDの第2セットを用いて、2個の参照ブロックを識別する。MVDの第2セットは、MVDの第1セットのミラーリングされたバージョンである。
【0209】
方法2420の幾つかの実施形態では、1つ以上のDMVD方式は、変換中に、第1参照ピクチャリストについて動きベクトル差(motion vector difference (MVD))の第1セット及び第2参照ピクチャリストについてMVDの第2セットを用いて、2個の参照ブロックを識別する。MVDの第1セットは、MVDの第2セットのミラーリングされていないバージョンである。方法2420の幾つかの実施形態では、MVDの第1セットは、PocDis0及びPocDis1に従い、MVDの第2セットにスケーリングされる。方法2420の幾つかの実施形態では、(MvdX,MvdY)を含むMVDの第1セットは、以下のように計算されるMVDの第2セットにスケーリングされる:(-MvdX*PocDis1/PocDis0,-MvdY*PocDis1/PocDis0)。方法2420の幾つかの実施形態では、MVDの第2セットは、PocDis0及びPocDis1に従い、MVDの第1セットにスケーリングされる。方法2420の幾つかの実施形態では、(MvdX,MvdY)を含むMVDの第2セットは、以下のように計算されるMVDの第1セットにスケーリングされる:(-MvdX*PocDis0/PocDis1,-MvdY*PocDis0/PocDis1)。
【0210】
方法2420の幾つかの実施形態では、スケーリングされた動作の除算演算が、ルックアップテーブル、複数演算、又は右-右演算を用いて実施される。方法2420の幾つかの実施形態では、1つ以上のDMVD方式は、DMVD処理中に、ビデオの現在ブロックについて、第1参照ピクチャリストについて動きベクトル差(MVD)の第1セット、及び第2参照ピクチャリストについてMVDの第2セットを、現在ビデオブロックの参照ピクチャのPOC値及び現在ビデオブロックを含む現在ピクチャのPOC値に基づき、決定する。方法2420の幾つかの実施形態では、PocDis0の第1絶対値がPocDis1の第2絶対値より小さい又は等しいことに応答して、MVDの第1セットは、PocDis0及びPocDis1に従いMVDの第2セットを生成するためにスケーリングされる。方法2420の幾つかの実施形態では、PocDis0の第1絶対値がPocDis1の第2絶対値より大きい又は等しいことに応答して、MVDの第1セットは、PocDis0及びPocDis1に従いMVDの第2セットを生成するためにスケーリングされる。
【0211】
方法2420の幾つかの実施形態では、PocDis1の第2絶対値がPocDis0の第1絶対値より小さい又は等しいことに応答して、MVDの第2セットは、PocDis0及びPocDis1に従いMVDの第1セットを生成するためにスケーリングされる。方法2420の幾つかの実施形態では、PocDis1の第2絶対値がPocDis0の第1絶対値より大きい又は等しいことに応答して、MVDの第2セットは、PocDis0及びPocDis1に従いMVDの第1セットを生成するためにスケーリングされる。方法2420の幾つかの実施形態では、2個の参照ピクチャが、現在ピクチャに先行する第1参照ピクチャ及び現在ピクチャの後に続く第2参照ピクチャを含むことに応答して、MVDの第1セットは、MVDの第2セットを生成するためにミラーリングされ、MVDの第1セット又はMVDの第2セットを取得するためにスケーリングは実行されない。方法2420の幾つかの実施形態では、1つ以上のDMVD方式を有効又は無効にするかを決定するステップは、現在ビデオブロックの第1参照ピクチャから現在ピクチャまでの第1距離を表す第1ピクチャオーダカウント距離(PocDis0)の第1符号と、現在ピクチャから現在ビデオブロックの第2参照ピクチャまでの第2距離を表す第2ピクチャオーダカウント距離(PocDis1)の第2符号と、に基づく。
【0212】
方法2420の幾つかの実施形態では、第1符号を有するPocDis0を第2符号を有するPocDis1により乗算した結果が0より小さいことに応答して、1つ以上のDMVD方式が有効にされる。方法2420の幾つかの実施形態では、第1符号を有するPocDis0を第2符号を有するPocDis1により乗算した結果が0より大きいことに応答して、1つ以上のDMVD方式が有効にされる。方法2420の幾つかの実施形態では、1つ以上のDMVD方式は、現在ビデオブロックの第1参照ピクチャから現在ピクチャまでの第1距離を表す第1ピクチャオーダカウント距離(PocDis0)が、現在ピクチャから現在ビデオブロックの第2参照ピクチャまでの第2距離を表す第2ピクチャオーダカウント距離(PocDis1)と等しくないことに応答して、無効にされる。
【0213】
方法2420の幾つかの実施形態では、第1参照ピクチャリストの動き情報は、MVDの第1セットを用いて精緻化され、第2参照ピクチャリストの動き情報は、MVDの第2セットを用いて精緻化される。方法2420の幾つかの実施形態では、第1参照ピクチャリストは参照ピクチャリスト0であり、第2参照ピクチャリストは参照ピクチャリスト1である。
【0214】
図24Dは、ビデオ処理の例示的な方法2430のフローチャートである。方法2430は、2432で、現在ビデオブロックについてデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を実施することにより、ビデオの現在ビデオブロックについて精緻化動き情報を取得するステップを含む。ここで、対称動きベクトル差(symmetric motion vector difference (SMVD))モードが、現在ビデオブロックについて有効にされる。方法2430は、2434で、精緻化動き情報を使用して、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。
【0215】
方法2430の幾つかの実施形態では、ビットストリーム表現は、精緻化動き情報の動きベクトル差(MVD)を含み、MVDは、SMVDモードに従い復号され、現在ビデオブロックを復号するために使用される前に更に精緻化される。方法2430の幾つかの実施形態では、SMVDモードでは、動きベクトル(MV)精度又はMVD精度をNペル精度からMペル精度に変更することにより、精緻化動き情報の動きベクトル差(MVD)を精緻化するために、DMVD方式が使用される。ここで、N及びMは1/16、1/8、1/4、1/2、1、2、4、8、又は16に等しい。方法2430の幾つかの実施形態では、MはN以下である。方法2430の幾つかの実施形態では、ビットストリーム表現は、SMVDモードで精緻化動き情報の動きベクトル差(MVD)についてのシグナリングを含まず、MVDはDMVD方式を用いて生成される。
【0216】
方法2430の幾つかの実施形態では、適応動きベクトル差精度(Adaptive Motion Vector difference Resolution (AMVR))情報は、SMVDモードでコーディングされたビデオブロックについてビットストリーム表現の中でシグナリングされず、精緻化動き情報の動きベクトル(MV)精度又は動きベクトル差(MVD)精度は、所定の値に従い導出される。方法2430の幾つかの実施形態では、MV精度又はMVD精度は1/4ペル精度である。方法2430の幾つかの実施形態では、所定の値は、シーケンス、ピクチャ、タイルグループ、スライス、タイル、ビデオデータユニットレベルで、ビットストリーム表現内でシグナリングされる。方法2430の幾つかの実施形態では、所定の値は、モード情報又は動き情報に依存する。方法2430の幾つかの実施形態では、モード情報又は動き情報は、アフィン動き情報又は非アフィン動き情報を含む。
【0217】
図24Eは、ビデオ処理の例示的な方法2440のフローチャートである。方法2440は、2442で、現在ビデオブロックを含むビデオのビットストリーム表現に基づき、現在ビデオブロックについてデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を有効又は無効にするかを決定するステップを含む。ここで、対称動きベクトル差(symmetric motion vector difference (SMVD))モードが、現在ビデオブロックについて有効にされる。方法2440は、2444で、DMVD方式が有効にされると決定した後に、現在ビデオブロックについてDMVD方式を実施することにより、現在ビデオブロックについて精緻化動き情報を取得するステップを含む。方法2440は、2446で、精緻化動き情報を使用して、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。
【0218】
方法2440の幾つかの実施形態では、DMVD方式が有効にされていることに応答して、動きベクトル差(MVD)は、ビットストリーム表現内でシグナリングされない。方法2440の幾つかの実施形態では、DMVD方式が有効又は無効にされるかを示すフィールドは、1つ以上の動きベクトル(MV)精度又は動きベクトル差(MVD)精度についてビットストリーム表現内に存在する。方法2440の幾つかの実施形態では、1つ以上のMV精度又はMVD精度は1ペル及び/又は4ペル精度である。
【0219】
方法2440の幾つかの実施形態では、DMVD方式が有効又は無効にされることを示すフィールドは、現在ビデオブロックの第1参照ピクチャから現在ピクチャまでの第1距離を表す第1ピクチャオーダカウント距離(PocDis0)が、現在ピクチャから現在ビデオブロックの第2参照ピクチャまでの第2距離を表す第2ピクチャオーダカウント距離(PocDis1)と等しいことに応答して、ビットストリーム表現内に存在し、第1参照ピクチャ(Ref0)は表示順で現在ピクチャに先行し、第2参照ピクチャ(Ref1)は現在ピクチャの後に続く。
【0220】
方法2440の幾つかの実施形態では、DMVD方式が有効又は無効にされるかを示すフィールドは、現在ビデオブロックの第1参照ピクチャ(Ref0)から現在ピクチャまでの第1距離を表す第1ピクチャオーダカウント距離(PocDis0)が、現在ピクチャから現在ビデオブロックの第2参照ピクチャ(Ref1)までの第2距離を表す第2ピクチャオーダカウント距離(PocDis1)と等しいことに応答して、ビットストリーム表現内に存在し、第2参照ピクチャ(Ref1)は表示順で現在ピクチャに先行し、第1参照ピクチャ(Ref0)は現在ピクチャの後に続く。
【0221】
方法2440の幾つかの実施形態では、DMVD方式は、現在ビデオブロックの及び/又は1つ以上の近隣ブロックのコーディング情報に基づき、SMVDモードで有効にされる。方法2440の幾つかの実施形態では、DMVD方式は、現在ビデオブロックのブロック寸法(block dimensions)に基づき、SMVDモードで有効にされる。方法2440の幾つかの実施形態では、DMVD方式は、現在ビデオブロックの参照ピクチャに関連する情報に基づき、SMVDモードで有効にされる。方法2440の幾つかの実施形態では、参照ピクチャに関連する情報は、ピクチャオーダカウント(picture order count (POC))情報を含む。方法2440の幾つかの実施形態では、DMVD方式は、ビットストリーム表現内の動きベクトル差(motion vector difference (MVD))情報に基づき、SMVDモードで有効にされる。方法2440の幾つかの実施形態では、1つ以上のDMVD方式は、デコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))方式を含む。方法2430及び2440の幾つかの実施形態では、DMVD方式は、デコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))方式を含む。方法2430の幾つかの実施形態では、1つ以上のDMVD方式は、双方向オプティカルフロー(bi-directional optical flow (BDOF))方式を含む。方法2430及び2440の幾つかの実施形態では、DMVD方式は、双方向オプティカルフロー(bi-directional optical flow (BDOF))方式を含む。
【0222】
図24Fは、ビデオ処理の例示的な方法2450のフローチャートである。方法2450は、2452で、ビデオの現在ビデオブロックのブロック寸法を使用するルールに基づき、複数のデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式が、現在ビデオブロックとビデオのビットストリーム表現との間の変換について有効又は無効にされるかを決定するステップを含む。方法2450は、2454で、決定に基づき返還を実行するステップを含む。
【0223】
方法2450の幾つかの実施形態では、複数のDMVD方式は、(W*H)>=T1及びH>=T2,であることに応答して有効であると決定され、ここで、W及びHはそれぞれ現在ビデオブロックの幅及び高さであり、T1及びT2は有理数である。方法2450の幾つかの実施形態では、T1は64であり、T2は8である。方法2450の幾つかの実施形態では、複数のDMVD方式は、H>=T1、及びWがT2に等しくないか又はHがT1に等しくないことに応答して有効であると決定され、ここで、W及びHはそれぞれ現在ビデオブロックの幅及び高さであり、T1及びT2は有理数である。方法2450の幾つかの実施形態では、T1は8であり、T2は4である。
【0224】
方法2450の幾つかの実施形態では、複数のDMVD方式は、現在ビデオブロックの第1サンプル数が第2サンプル数より少ないことに応答して無効であると決定される。方法2450の幾つかの実施形態では、複数のDMVD方式は、現在ビデオブロックの第1サンプル数が第2サンプル数より多いことに応答して無効であると決定される。方法2450の幾つかの実施形態では、第2サンプル数は16ルマサンプル又は32ルマサンプル又は64ルマサンプル又は128ルマサンプルである。方法2450の幾つかの実施形態では、複数のDMVD方式は、現在ビデオブロックの幅が値より少ないことに応答して無効であると決定される。
【0225】
方法2450の幾つかの実施形態では、複数のDMVD方式は、現在ビデオブロックの高さが値より少ないことに応答して無効であると決定される。方法2450の幾つかの実施形態では、該値は8である。方法2450の幾つかの実施形態では、複数のDMVD方式は、現在ビデオブロックの幅が第1閾値より大きい又は等しいことに応答して、及び/又は、現在ビデオブロックの高さが第2閾値より大きい又は等しいことに応答して、無効であると決定される。方法2450の幾つかの実施形態では、幅は128であり、高さは128である。方法2450の幾つかの実施形態では、幅は64以上であり、高さは128であるか、又は、幅は128であり、高さは64以上である。方法2450の幾つかの実施形態では、幅は4以上であり、高さは128であるか、又は、幅は128であり、高さは4以上である。方法2450の幾つかの実施形態では、第1閾値及び第2閾値は64である。
【0226】
方法2450の幾つかの実施形態では、複数のDMVD方式は、現在ビデオブロックの幅が第1閾値より小さい又は等しいことに応答して、及び/又は、現在ビデオブロックの高さが第2閾値より小さい又は等しいことに応答して、無効であると決定される。方法2450の幾つかの実施形態では、第1閾値及び第2閾値は8である。方法2450の幾つかの実施形態では、複数のDMVD方式は、コスト関数に基づき精緻化動き情報を導出するデコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))方式を含む。方法2450の幾つかの実施形態では、複数のDMVD方式は、勾配計算に基づき精緻化動き情報を導出する双方向オプティカルフロー(bi-directional optical flow (BDOF))方式を含む。
【0227】
図24Gは、ビデオ処理の例示的な方法2460のフローチャートである。方法2460は、2462で、ビデオの現在ビデオブロックについて、サブブロックレベル又はブロックレベルで複数のデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を実行するかどうかを決定するステップを含む。方法2460は、2464で、複数DMVD方式がサブブロックレベルで実行されると決定した後に、現在ビデオブロックについて同じサブブロックレベルで複数DMVD方式を実施することにより、現在ビデオブロックについて精緻化動き情報を取得するステップを含む。方法2460は、2466で、精緻化動き情報を使用して、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。
【0228】
方法2460の幾つかの実施形態では、複数DMVD方式は、デコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))方式を含む。方法2460の幾つかの実施形態では、精緻化動き情報は、現在ビデオブロックについて、サブブロックレベルでDMVD方式においてバイラテラルマッチングを適用ことにより取得される。方法2460の幾つかの実施形態では、複数のDMVD方式は、双方向オプティカルフロー(bi-directional optical flow (BDOF))コーディング方式を含む。方法2460の幾つかの実施形態では、BDOFコーディング方式は、現在ビデオブロックについて、サブブロックレベルで有効又は無効にされると決定される。方法2460の幾つかの実施形態では、BDOFコーディング方式は有効であると決定され、精緻化動き情報は、BDOFコーディング方式において現在ビデオブロックのサブブロックレベルで実行される動き情報のサンプル毎の精緻化を実行ことにより、取得される。
【0229】
方法2460の幾つかの実施形態では、BDOFコーディング方式は、現在ビデオブロックのサブブロックレベルで有効又は無効であると決定され、BDOFコーディング方式におけるサンプル毎の動き情報精緻化処理は、現在ビデオブロックのサブブロックレベルで実行されると決定される。方法2460の幾つかの実施形態では、サブブロックの幅及び高さは両方とも16に等しい。方法2460の幾つかの実施形態では、現在ビデオブロックは、以下: 現在ビデオブロックの第1幅が値より大きい又は等しいこと、又は、現在ビデオブロックの第1高さが該値より大きい又は等しい、又は、第1幅が該値より大きい又は等しく、第1高さが該値より大きい又は等しい、ことに応答して複数のサブブロックに分割される。
【0230】
方法2460の幾つかの実施形態では、複数のサブブロックの各々は、サブブロックサイズと等しいサイズを有するコーディングブロックと同じ方法で、1つ以上のDMVD方式により処理される。方法2460の幾つかの実施形態では、該値は64であり、現在ビデオブロックが64の第1幅と128の第1高さを有すること、又は128の第1幅と64の第1高さを有することに応答して、現在ビデオブロックは2個のサブブロックに分割され、該2個のサブブロックの各々は64の第2幅及び第2高さを有する。方法2460の幾つかの実施形態では、該値は64であり、現在ビデオブロックが128の第1幅と128の第1高さを有することに応答して、現在ビデオブロックは4個のサブブロックに分割され、該4個のサブブロックの各々は64の第2幅及び第2高さを有する。
【0231】
方法2460の幾つかの実施形態では、現在ビデオブロックがNの第1幅と128の第1高さを有すること、又は128の第1幅とNの第1高さを有することに応答して、現在ビデオブロックはサブブロックに分割されない、ここでNは64より小さい。方法2460の幾つかの実施形態では、該値は64であり、現在ビデオブロックがNの第1幅と128の第1高さを有すること、又は128の第1幅とNの第1高さを有することに応答して、現在ビデオブロックは2個のサブブロックに分割され、該2個のサブブロックの各々はNの第2幅及び64の第2高さを有するか、又は64の第2幅及びNの第2高さを有する。
【0232】
方法2460の幾つかの実施形態では、現在ビデオブロックの第1幅が値より大きいことに応答して、現在ビデオブロックは垂直方向に分割され、現在ビデオブロックのサブブロックの第2幅は該値より小さい又は等しい。方法2460の幾つかの実施形態では、現在ビデオブロックの第1高さが値より大きいことに応答して、現在ビデオブロックは水平方向に分割され、現在ビデオブロックのサブブロックの第2高さは該値より小さい又は等しい。方法2460の幾つかの実施形態では、該値は16である。方法2460の幾つかの実施形態では、現在ビデオブロックのサブブロックの第2幅は16である。方法2460の幾つかの実施形態では、現在ビデオブロックのサブブロックの第2高さは16である。方法2460の幾つかの実施形態では、現在ビデオブロックの第1サイズが第1閾値より大きいことに応答して、現在ビデオブロックは複数のサブブロックに分割される。方法2460の幾つかの実施形態では、複数のサブブロックの各々は、サブブロックサイズと等しい第2サイズを有するコーディングブロックと同じ方法で、1つ以上のDMVD方式により処理される。
【0233】
方法2460の幾つかの実施形態では、複数のサブブロックの各々は、第1閾値より小さい又は等しい同じサイズを有する。方法2450及び2460の幾つかの実施形態では、現在ビデオブロックはルマビデオブロックである。方法2450の幾つかの実施形態では、複数のDMVD方式を有効又は無効にするかどうかを決定するステップは、ルマビデオブロックに対して実行され、関連付けられたクロマビデオブロックにより共有される。方法2460の幾つかの実施形態では、サブブロックレベルで複数のDMVD方式を実行するかどうかを決定するステップは、ルマビデオブロックに対して実行され、関連付けられたクロマビデオブロックにより共有される。方法2460の幾つかの実施形態では、現在ビデオブロックの高さ又は幅が第2閾値より小さい又は等しいことに応答して、現在ビデオブロックは複数のサブブロックに水平方向又は垂直方向に分割されないと決定される。方法2460の幾つかの実施形態では、第1閾値は1024であり、第2閾値は32である。
【0234】
方法2460の幾つかの実施形態では、該値は、現在ビデオブロックについて、予め定義されるか、又は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャ、スライス、タイルグループ、又はタイルレベルで、シグナリングされる。方法2460の幾つかの実施形態では、該値又は第1閾値又は第2閾値は、現在ビデオブロックのコーディング情報に依存する。方法2460の幾つかの実施形態では、サブブロックサイズの決定は、複数のDMVD方式について同じである。方法2460の幾つかの実施形態では、現在ビデオブロックのコーディング情報は、現在ビデオブロックのブロックサイズ又はピクチャタイプ又は時間レイヤインデックスを含む。方法2460の幾つかの実施形態では、現在ビデオブロックの複数のDMVD方式は、現在ビデオブロックの全部のDMVD方式を含む。
【0235】
図24Hは、ビデオ処理の例示的な方法2470のフローチャートである。方法2470は、2472で、ビデオの現在ビデオブロックの複数の成分について、デコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を有効又は無効にするかを決定するステップを含む。方法2470は、2474で、DMVD方式が有効にされると決定した後に、DMVD方式を実施することにより、現在ビデオブロックについて精緻化動き情報を取得するステップを含む。方法2470は、2476で、DMVD方式の実施中に、現在ビデオブロックとビデオのビットストリーム表現との間の変換を実行するステップを含む。
【0236】
方法2470の幾つかの実施形態では、DMVD方式を有効又は無効にするかどうかを決定するステップは、1回実行され、複数の成分により共有される。方法2470の幾つかの実施形態では、DMVDを有効又は無効にするかどうかを決定するステップは、複数の成分について複数回実行される。方法2470の幾つかの実施形態では、DMVDを有効又は無効にするかどうかを決定するステップは、最初に複数の成分のうちの1つの成分について実行され、次に複数の成分のうちの1つ以上の残りの成分について実行されるか又は共有される。方法2470の幾つかの実施形態では、1つの成分はルマ成分又は緑色成分である。方法2470の幾つかの実施形態では、DMVDを有効又は無効にするかどうかを決定するステップは、1つの成分の情報に基づき、複数の成分のうちの1つの成分について実行される。方法2470の幾つかの実施形態では、1つの成分はルマ成分、クロマ成分、緑色成分、青色成分、又は赤色成分である。
【0237】
幾つかの実施形態は、以下の項に基づく形式を用いて記述され得る。
【0238】
(項1)ビデオ処理方法は、プロセッサにより、現在ビデオブロックと前記現在ビデオブロックのビットストリーム表現との間の変換の間に、導出ルールに基づきパラメータを導出することにより、動きベクトル精緻化のためにデコーダ側動きベクトル導出(DMVD)方式を実施するステップを含む方法。
【0239】
(項2)前記パラメータは、前記現在ビデオブロックの最終予測ブロックに適用されるパラメータから導出される、項1に記載の技術。
【0240】
(項3)前記パラメータは、前記ビットストリーム表現内でシグナリングされる、項1に記載の技術。
【0241】
(項4)前記パラメータは、前記プロセッサにより導出される、項1に記載の技術。
【0242】
(項5)前記導出ルールは、前記DMVD方式について最終予測ブロックを導出することに使用されるパラメータを使用するよう指定する、項1~4のいずれかに記載の技術。
【0243】
(項6)前記変換は、先ず一般双方向コーディング重み又は加重予測方式の重み又はローカル照明補償方式の重みのうちの1つを双方向オプティカルフロー方式の時間又は空間勾配に適用し、次に予測コスト関数を計算することにより、前記現在ビデオブロックについて前記予測コスト関数を計算するステップを含む、項5に記載の技術。
【0244】
(項7)前記予測コスト関数は、勾配関数又は絶対差分和(sum of absolute difference (SAD))コスト関数である、項6に記載の技術。
【0245】
(項8)前記パラメータは、前記最終予測ブロックのローカル照明補償のためのパラメータである、項2に記載の技術。
【0246】
(項9)ビデオ処理方法であって、現在ビデオブロックと前記現在ビデオブロックのビットストリーム表現との間の変換の間に、有効化(enablement)ルールに基づき、動きベクトル精緻化のためにデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を選択的に使用するステップを含む方法。
【0247】
(項10)前記有効化ルールは、前記変換が一般双方向コーディングモード又はローカル照明補償モード又は加重予測モード又は複数仮説予測モードを使用する場合に、前記DMVD方式を無効にすることを指定する、項9に記載の技術。
【0248】
(項11)前記有効化ルールは、不均等なピクチャオーダカウント距離を使用する双予測ブロックである前記現在ビデオブロックについて前記DMVD方式を使用することを指定する、項9に記載の技術。
【0249】
(項12)前記有効化ルールは、現在ビデオブロックの双方向予測の2つの方向を表すピクチャオーダカウント距離PocDis0及びPocDis1の間の関係に基づき、前記DMVD方式を使用することを指定する、項9に記載の技術。
【0250】
(項13)前記有効化ルールは、PocDis0=PocDis1の場合に、前記DMVD方式を使用することを指定する、項12に記載の技術。
【0251】
(項14)前記有効化ルールは、PocDis0がPocDis1と等しくない場合に、前記DMVD方式を使用することを指定する、項12に記載の技術。
【0252】
(項15)前記有効化ルールは、PocDis0をPocDis1により乗算したものが0より小さい場合に、前記DMVD方式を使用することを指定する、項12に記載の技術。
【0253】
(項16)前記DMVD方式は、前記変換の間の2つの参照ピクチャリストとして、リスト0及びリスト1を使用し、リスト0はリスト1のミラーリングされたバージョンである、項9~14のいずれかに記載の技術。
【0254】
(項17)前記DMVD方式は、PocDis0及びPocDis1距離に基づくスケーリングに従い、リスト0及びリスト1の動きベクトル差を使用することを含む、項15に記載の技術。
【0255】
(項18)前記DMVD方式は、リスト0の動きベクトル差を使用してリスト1の差にスケーリングすることを含む、項17に記載の技術。
【0256】
(項19)前記DMVD方式は、リスト1の動きベクトル差を使用してリスト0の差にスケーリングすることを含む、項17に記載の技術。
【0257】
(項20)前記DMVD方式は、前記参照ピクチャのピクチャオーダカウントに従い参照ピクチャを使用することを含む、項9~14のいずれかに記載の技術。
【0258】
(項21)前記有効化ルールは前記現在ビデオブロックの次元に基づく、項9に記載の技術。
【0259】
(項22)前記DMVD方式は、W*H>=T1&&H>=T2の場合に有効であるデコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))を含み、W及びHは前記現在ビデオブロックの幅及び高さであり、T1及びT2は有理数である、項21に記載の技術。
【0260】
(項23)前記DMVD方式は、W*H>=T1&&H>=T2の場合に有効である双方向オプティカル(bidirectional optical (BIO))コーディング方法を含み、W及びHはそれぞれ前記現在ビデオブロックの幅及び高さであり、T1及びT2は有理数である、項21に記載の技術。
【0261】
(項24)前記DMVD方式は、次式
【数11】
の場合に有効であるデコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))を含み、W及びHは前記現在ビデオブロックの幅及び高さであり、T1及びT2は有理数である、項21に記載の技術。
【0262】
(項25)前記DMVD方式は、次式
【数12】
の場合に有効である双方向オプティカルフロー(bidirectional optical flow(BIO))コーディング方式を含み、W及びHはそれぞれ前記現在ビデオブロックの幅及び高さであり、T1及びT2は有理数である、項21に記載の技術。
【0263】
(項26)前記DMVD方式は、デコーダ側動きベクトル精緻化(decoder-side motion vector refinement (DMVR))方式又は双方向オプティカルフロー(bidirectional optical flow (BIO))コーディング方式であり、前記DMVD方式は、前記現在ビデオブロックが幅>th1又は高さ>th2を有する場合に無効にされる、項9~21のいずれかに記載の技術。
【0264】
(項27)ビデオ処理技術であって、現在ビデオブロックと前記現在ビデオブロックのビットストリーム表現との間の変換の間に、ルールに基づき前記DMVD方式をサブブロックレベルで適用することにより、動きベクトル精緻化のためにデコーダ側動きベクトル導出(decoder-side motion vector derivation (DMVD))方式を選択的に使用するステップを含む技術。
【0265】
(項28)前記DMVD方式は、デコーダ側動きベクトル精緻化(ecoder-side motion vector refinement (DMVR))方式又は双方向オプティカルフロー(bidirectional optical flow (BIO))方式である、項27に記載の技術。
【0266】
(項29)前記DMVD方式は前記BIO方式であり、前記ルールは、サブブロック毎に前記DMVD方式の適用可能性を指定する、項28に記載の技術。
【0267】
(項30)前記現在ビデオブロックは、幅>=LW又は高さ>=LHを有し、或いは幅*高さが閾値L1より大きく、L1、L、W、及びHは整数であり、前記変換は、前記現在ビデオブロックを複数のサブブロックに分割することにより実行され、該サブブロックは前記DMVD方式を用いて更に処理される、項29に記載の技術。
【0268】
(項31)前記分割するステップは、前記現在ビデオブロックを水平方向に分割するステップを含む、項30に記載の技術。
【0269】
(項32)前記分割するステップは、前記現在ビデオブロックを垂直方向に分割するステップを含む、項30に記載の技術。
【0270】
(項33)Lは、シーケンスパラメータセットレベル、ピクチャパラメータセットレベル、ピクチャレベル、スライスレベル、タイルグループレベル、又はタイルレベルで、前記ビットストリーム表現内でシグナリングされるか、又は、Lは、前記現在ビデオブロックのサイズ又は前記現在ビデオブロックを含むピクチャのタイプ又は前記現在ビデオブロックの時間レイヤインデックスに基づき暗示的にシグナリングされる、項30~32のいずれかに記載の技術。
【0271】
(項34)前記DMVDは、前記現在ビデオブロックのルマ又はクロマタイプに依存して、前記現在ビデオブロックに適用される、項1~33のいずれかに記載の技術。
【0272】
(項35)前記変換は、ブロックについて前記DMVD方式を使用することの決定又は前記現在ビデオブロックに対応する異なるルマ又はクロマタイプに基づき決定される前記DMVD方式を使用する、項1~34のいずれかに記載の技術。
【0273】
(項36)前記DMVD方式は、デコーダ側動きベクトル精緻化方式又は双方向オプティカルフロー方式を含む、項1~35に記載の技術。
【0274】
(項37)ビデオ処理技術であって、現在ビデオブロックは対称動きベクトル差コーデック技術を使用し、前記現在ビデオブロックと前記現在ビデオブロックのビットストリーム表現との間の変換の間に、デコーダ側動きベクトル導出技術を使用するステップであって、前記デコーダ側動きベクトル導出技術により、前記現在ビデオブロックの動きベクトルが前記変換中に精緻化され、前記対称動きベクトル差コーデック技術は対称動きベクトル差導出を使用する、ステップと、前記デコーダ側動きベクトル導出技術を使用して前記変換を実行するステップと、を含む技術。
【0275】
(項38)前記デコーダ側動きベクトル導出技術は、デコーダ側動きベクトル精緻化を含む、項37に記載の技術。
【0276】
(項39)前記デコーダ側動きベクトル導出技術は、動きベクトル精度を、前記対称動きベクトル差コーデック技術に使用されるNペルからMペル精度へと変更し、N及びMは整数の分数であり、N及びMは1/16、1/8、1/4、1/2、1、2、4、8、又は16に等しい、項37~38のいずれかに記載の技術。
【0277】
(項40)MはN以下である、項39に記載の技術。
【0278】
(項41)前記ビットストリーム表現は、前記現在ビデオブロックの動きベクトル差指示を排除し、前記デコーダ側動きベクトル導出技術は、前記動きベクトル差を導出するために使用される、項37~41のいずれかに記載の技術。
【0279】
(項42)前記ビットストリーム表現は、前記デコーダ側動きベクトル導出技術及び前記対称動きベクトル導出技術が前記現在ビデオブロックの前記変換のために使用されるか否かを示す、項37~42のいずれかに記載の技術。
【0280】
(項43)前記変換は、前記現在ビデオブロックから前記ビットストリーム表現を生成すること、又は前記ビットストリーム表現から前記現在ビデオブロックを生成すること、を含む、項1~42のいずれかに記載の技術。
【0281】
(項44)ビデオ符号化機器であって、項1~43のうちの1つ以上に記載の方法を実施するよう構成されるプロセッサを含むビデオ符号化機器。
【0282】
(項45)ビデオ復号機器であって、項1~43のうちの1つ以上に記載の方法を実施するよう構成されるプロセッサを含むビデオ復号機器。
【0283】
(項46)格納されたコードを有するコンピュータ可読媒体であって、前記コードは、実行されると、プロセッサに項1~43のうちの1つ以上に記載の方法を実施させる、コンピュータ可読媒体。
【0284】
図26は、ここに開示される種々の技術が実施され得る例示的なビデオ処理システム2100を示すブロック図である。種々の実装は、システム2100のコンポーネントの一部又は全部を含んでよい。システム2100は、ビデオコンテンツを受信する入力2102を含んでよい。ビデオコンテンツは、生(raw)又は非圧縮フォーマット、例えば8又は10ビット複数成分ピクセル値で受信されてよく、或いは圧縮又は符号化フォーマットであってよい。入力2102は、ネットワークインタフェース、周辺機器バスインタフェース、又はストレージインタフェースを表してよい。ネットワークインタフェースの例は、イーサネット(登録商標)、受動光ネットワーク(passive optical network (PON))等のような有線インタフェース、及びWi-Fi又はセルラインタフェースのような無線インタフェースを含む。
【0285】
システム2100は、本願明細書に記載された種々のコーディング又は符号化方法を実施し得るコーディングコンポーネント2104を含んでよい。コーディングコンポーネント2104は、入力2102からコーディングコンポーネント2104の出力へのビデオの平均ビットレートを低減して、ビデオのコーディング表現を生成してよい。コーディング技術は、従って、時に、ビデオ圧縮又はビデオトランスコーディング技術と呼ばれる。コーディングコンポーネント2104の出力は、コンポーネント2106により表されるように、格納されるか、又は通信接続を介して送信されてよい。入力2102で受信された、格納され又は通信されたビットストリーム(又はコーディングされた)表現は、コンポーネント2108により、ディスプレイインタフェース2110へ送信されるピクセル値又は表示可能なビデオを生成するために、使用されてよい。ビットストリーム表現からユーザに閲覧可能なビデオを生成する処理は、時に、ビデオ伸長と呼ばれる。更に、特定のビデオ処理動作は「コーディング」動作又はツールと呼ばれるが、コーディングツール又は動作は、エンコーダにおいて使用され、コーディングの結果を逆にする対応する復号ツール又は動作がデコーダにより実行されることが理解される。
【0286】
周辺機器バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(universal serial bus (USB))又は高解像度マルチメディアインタフェース(high definition multimedia interface (HDMI(登録商標)))又はディスプレイポート(Displayport)、等を含んでよい。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェース、等を含む。本願明細書に記載した技術は、移動電話機、ラップトップ、スマートフォン、又はデジタルデータ処理を実行可能な他の装置、及び/又はビデオディスプレイのような種々の電子装置に実装されてよい。
【0287】
開示した技術の幾つかの実施形態は、ビデオ処理ツール又はモードを有効にすることの決定又は判断を行うことを含む。例では、ビデオ処理ツール又はモードが有効にされると、エンコーダは、ビデオのブロックの処理において該ツール又はモードを使用又は実施するが、必ずしもツール又はモードの使用に基づき結果として生じるビットストリームを変更する必要はない。つまり、ビデオのブロックからビデオのビットストリーム表現への変換は、決定又は判断に基づき有効にされるとき、ビデオ処理ツール又はモードを使用する。別の例では、ビデオ処理ツール又はモードが有効にされると、デコーダは、ビットストリームがビデオ処理ツール又はモードに基づき変更されているという知識により、ビットストリームを処理する。つまり、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定又は判断に基づき有効にされたビデオ処理ツール又はモードを使用して実行される。
【0288】
開示した技術の幾つかの実施形態は、ビデオ処理ツール又はモードを無効にすることの決定又は判断を行うことを含む。例では、ビデオ処理ツール又はモードが無効にされるとき、エンコーダは、ビデオのブロックをビデオのビットストリーム表現へ変換する際にツール又はモードを使用しない。別の例では、ビデオ処理ツール又はモードが無効にされると、デコーダは、決定又は判断に基づきビットストリームがビデオ処理ツール又はモードを用いて変更されていないという知識により、ビットストリームを処理する。
【0289】
図27は、本開示の技術を利用し得る例示的なビデオコーディングシステム100を示すブロック図である。
図27に示されるように、ビデオコーディングシステム100は、ソース装置110と宛先装置120とを含んでよい。ソース装置110は、ビデオ符号化装置と呼ばれてよく、符号化ビデオデータを生成する。宛先装置120は、ビデオ復号装置と呼ばれてよく、ソース装置110により生成された符号化ビデオデータを復号してよい。ソース装置110は、ビデオソース112、ビデオエンコーダ114、及び入力/出力(I/O)インタフェース116を含んでよい。
【0290】
ビデオソース112は、ビデオキャプチャ装置のようなソース、ビデオコンテンツプロバイダからビデオデータを受信するインタフェース、及び/又はビデオデータを生成するコンピュータグラフィックシステム、又はそのようなソースの組合せを含んでよい。ビデオデータは、1つ以上のピクチャを含んでよい。ビデオエンコーダ114は、ビデオソース112からのビデオデータを符号化して、ビットストリームを生成する。ビットストリームは、ビデオデータのコーディング表現を形成するビットのシーケンスを含んでよい。ビットストリームは、コーディングピクチャ及び関連データを含んでよい。コーディングピクチャは、ピクチャのコーディング表現である。関連データは、シーケンスパラメータセット、ピクチャパラメータセット、及び他のシンタックス構造を含んでよい。I/Oインタフェース116は、変調器/復調器(モデム)及び/又は送信機を含んでよい。符号化ビデオデータは、I/Oインタフェース116を介してネットワーク130aを通じて、宛先装置120へ直接送信されてよい。符号化ビデオデータは、宛先装置120によるアクセスのために、記憶媒体/サーバ130bに格納されてもよい。
【0291】
宛先装置120は、I/Oインタフェース126、ビデオデコーダ124、及びディスプレイ装置122を含んでよい。
【0292】
I/Oインタフェース126は、受信機及び/又はモデムを含んでよい。I/Oインタフェース126は、ソース装置110又は記憶媒体/サーバ130bから符号化ビデオデータを取得してよい。ビデオデコーダ124は、符号化ビデオデータを復号してよい。ディスプレイ装置122は、復号ビデオデータをユーザに表示してよい。ディスプレイ装置122は、宛先装置120に統合されてよく、又は宛先装置120の外部にあり、外部ディスプレイ装置とインタフェースするよう構成されてよい。
【0293】
ビデオエンコーダ114及びビデオデコーダ124は、高効率ビデオコーディング(High Efficiency Video Coding (HEVC))規格、バーサタイルビデオコーディング(Versatile Video Coding (VVM))規格、及び他の現在及び/又は将来の規格のような、ビデオ圧縮規格に従い動作してよい。
【0294】
図28は、
図27に示したシステム100の中のビデオエンコーダ114であってよいビデオエンコーダ200の例を示すブロック図である。
【0295】
ビデオエンコーダ200は、本開示の技術のうちのいずれか又は全部を実行するよう構成されてよい。
図28の例では、ビデオエンコーダ200は複数の機能コンポーネントを含む。本開示に記載した技術は、ビデオエンコーダ200の種々のコンポーネントの間で共有されてよい。幾つかの例では、プロセッサは、本開示に記載した技術のうちのいずれか又は全部を実行するよう構成されてよい。
【0296】
ビデオエンコーダ200の機能コンポーネントは、パーティションユニット201、モード選択ユニット203と動き推定ユニット204と動き補償ユニット205とイントラ予測ユニット206とを含んでよい予測ユニット202、残差生成ユニット207、変換ユニット208、量子化ユニット209、逆量子化ユニット210、逆変換ユニット211、再構成ユニット212、バッファ213、及びエントロピー符号化ユニット214を含んでよい。
【0297】
他の例では、ビデオエンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでよい。例では、予測ユニット202は、イントラブロックコピー(intra block copy (IBC))ユニットを含んでよい。IBCユニットは、IBCモードで予測を実行してよく、IBCモードでは少なくとも1つの参照ピクチャが現在ビデオブロックの位置するピクチャである。
【0298】
更に、動き推定ユニット204及び動き補償ユニット205のような幾つかのコンポーネントは、高度に統合されてよいが、説明の目的で
図28の例では別個に表される。
【0299】
パーティションユニット201は、ピクチャを1つ以上のビデオブロックにパーティションする。ビデオエンコーダ200及びビデオデコーダ300は、種々のビデオブロックサイズをサポートしてよい。
【0300】
モード選択ユニット203は、コーディングモード、イントラ又はインターのうちの1つを、例えば誤差結果に基づき選択し、結果として生じたイントラ又はインターコーディングされたブロックを残差ブロックデータを生成するために残差生成ユニット207に、及び参照ピクチャとして使用するために符号化ブロックを再構成するために再構成ユニット212に提供してよい。幾つかの例では、モード選択ユニット203は、結合イントラ及びインター予測(combination of intra and inter predication (CIIP))モードを選択してよい。CIIPモードでは、予測はインター予測信号及びイントラ予測信号に基づく。モード選択ユニット203は、インター予測の場合に、ブロックについて動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0301】
現在ビデオブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームを現在ビデオブロックと比較することにより、現在ビデオブロックについて動き情報を生成してよい。動き補償ユニット205は、動き情報及び現在ビデオブロックに関連するピクチャ以外のバッファ213からのピクチャの復号サンプルに基づき、現在ビデオブロックについて予測ビデオブロックを決定してよい。
【0302】
動き推定ユニット204及び動き補償ユニット205は、例えば現在ビデオブロックがIスライス、Pスライス、又はBスライスかに依存して、現在ビデオブロックについて異なる動作を実行してよい。
【0303】
幾つかの例では、動き推定ユニット204は、現在ビデオブロックについて片方向予測を実行してよく、動き推定ユニット204は、現在ビデオブロックの参照ビデオブロックについて、リスト0又はリスト1の参照ピクチャを検索してよい。動き推定ユニット204は、次に、参照ビデオブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックス、及び現在ビデオブロックと参照ビデオブロックとの間の空間変位を示す動きベクトルを生成してよい。動き推定ユニット204は、参照インデックス、予測方向指示子、及び動きベクトルを、現在ビデオブロックの動き情報として出力してよい。動き補償ユニット205は、現在ビデオブロックの動き情報により示される参照ビデオブロックに基づき、現在ブロックの予測ビデオブロックを生成してよい。
【0304】
他の例では、動き推定ユニット204は、現在ビデオブロックについて双方向予測を実行してよく、動き推定ユニット204は、現在ビデオブロックの参照ビデオブロックについてリスト0内の参照ピクチャを検索してよく、現在ビデオブロックの別の参照ビデオブロックについてリスト1内の参照ピクチャを検索してよい。動き推定ユニット204は、次に、参照ビデオブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックス、及び参照ビデオブロックと現在ビデオブロックとの間の空間変位を示す動きベクトルを生成してよい。動き推定ユニット204は、現在ビデオブロックの動き情報として、参照インデックス及び現在ビデオブロックの動きベクトルを出力してよい。動き補償ユニット205は、現在ビデオブロックの動き情報により示される参照ビデオブロックに基づき、現在ビデオブロックの予測ビデオブロックを生成してよい。
【0305】
幾つかの例では、動き推定ユニット204は、デコーダの復号処理のために動き情報の完全なセットを出力してよい。
【0306】
幾つかの例では、動き推定ユニット204は、現在ビデオ動き情報の完全なセットを出力しなくてよい。むしろ、動き推定ユニット204は、別のビデオブロックの動き情報を参照して、現在ビデオブロックの動き情報をシグナリングしてよい。例えば、動き推定ユニット204は、現在ビデオブロックの動き情報が、近隣ビデオブロックの動き情報と十分に類似していることを決定してよい。
【0307】
一例では、動き推定ユニット204は、現在ビデオブロックに関連付けられたシンタックス構造の中で、現在ビデオブロックが別のビデオブロックと同じ動き情報を有することをビデオデコーダ300に示す値を示してよい。
【0308】
別の例では、動き推定ユニット204は、現在ビデオブロックに関連付けられたシンタックス構造の中で、別のビデオブロック及び動きベクトル差(motion vector difference (MVD))を識別してよい。動きベクトル差は、現在ビデオブロックの動きベクトルと示されたビデオブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、示されたビデオブロックの動きベクトル及び動きベクトル差を使用して、現在ビデオブロックの動きベクトルを決定してよい。
【0309】
上述のように、ビデオエンコーダ200は、動きベクトルを予測的にシグナリングしてよい。ビデオエンコーダ200により実施され得る予測的シグナリング技術の2つの例は、高度動きベクトル予測(advanced motion vector predication (AMVP))及びマージモードシグナリングを含む。
【0310】
イントラ予測ユニット206は、現在ビデオブロックに対してイントラ予測を実行してよい。イントラ予測ユニット206が現在ビデオブロックに対してイントラ予測を実行するとき、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックの復号サンプルに基づき、現在ビデオブロックの予測データを生成してよい。現在ビデオブロックの予測データは、予測ビデオブロック及び種々のシンタックス要素を含んでよい。
【0311】
残差生成ユニット207は、現在ビデオブロックの予測ビデオブロックを現在ビデオブロックから減算することにより(例えば、マイナス符号により示される)、現在ビデオブロックの残差データを生成してよい。現在ビデオブロックの残差データは、現在ビデオブロック内のサンプルの異なるサンプル成分に対応する残差ビデオブロックを含んでよい。
【0312】
他の例では、現在ビデオブロックについて、例えばスキップモードでは現在ビデオブロックの残差データが存在しなくてよく、残差生成ユニット207は減算動作を実行しなくてよい。
【0313】
変換処理ユニット208は、現在ビデオブロックに関連付けられた残差ビデオブロックに1つ以上の変換を適用することにより、現在ビデオブロックについて1つ以上の変換係数ビデオブロックを生成してよい。
【0314】
変換処理ユニット208が現在ビデオブロックに関連付けられた変換係数ビデオブロックを生成した後に、量子化ユニット209は、現在ビデオブロックに関連付けられた1つ以上の量子化パラメータ(quantization parameter (QP))に基づき、現在ビデオブロックに関連付けられた変換係数ビデオブロックを量子化してよい。
【0315】
逆量子化ユニット210及び逆変換ユニット211は、それぞれ変換係数ビデオブロックに逆量子化及び逆変換を適用して、変換係数ビデオブロックから残差ビデオブロックを再構成してよい。再構成ユニット212は、再構成残差ビデオブロックを、予測ユニット202により生成された1つ以上の予測ビデオブロックからの対応するサンプルに加算して、バッファ213に格納するために現在ビデオブロックに関連付けられた再構成ビデオブロックを生成してよい。
【0316】
再構成ユニット212がビデオブロックを再構成した後に、ループフィルタリング動作が実行されて、ビデオブロック内のビデオブロッキングアーチファクトを低減してよい。
【0317】
エントロピー符号化ユニット214は、ビデオエンコーダ200の他の機能コンポーネントからデータを受信してよい。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化動作を実行して、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力してよい。
【0318】
図29は
図27に示したシステム100の中のビデオデコーダ114であってよいビデオデコーダ300の例を示すブロック図である。
【0319】
ビデオデコーダ300は、本開示の技術のうちのいずれか又は全部を実行するよう構成されてよい。
図29の例では、ビデオデコーダ300は複数の機能コンポーネントを含む。本開示に記載した技術は、ビデオデコーダ300の種々のコンポーネントの間で共有されてよい。幾つかの例では、プロセッサは、本開示に記載した技術のうちのいずれか又は全部を実行するよう構成されてよい。
【0320】
図29の例では、ビデオデコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、及び再構成ユニット306、及びバッファ307を含む。ビデオデコーダ300は、幾つかの例では、ビデオエンコーダ200(
図28)に関して説明した符号化経路に対して通常相互的な復号経路を実行してよい。
【0321】
エントロピー復号ユニット301は、符号化ビットストリームを読み出してよい。符号化ビットストリームは、エントロピー符号化ビデオデータ(例えば、ビデオデータの符号化ブロック)を含んでよい。エントロピー復号ユニット301は、エントロピー符号化ビデオデータを復号し、エントロピー復号ビデオデータから、動き補償ユニット302が、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他の動き情報を含む動き情報を決定してよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することにより、このような情報を決定してよい。
【0322】
動き補償ユニット302は、場合によっては補間フィルタに基づき補間を実行することにより、動き補償ブロックを生成してよい。サブピクセル精度で使用されるべき補間フィルタの識別子は、シンタックス要素に含まれてよい。
【0323】
動き補償ユニット302は、参照ブロックのサブ整数ピクセルの補間値を計算するためにビデオブロックの符号化中にビデオエンコーダ20により使用されるような補間フィルタを使用してよい。動き補償ユニット302は、受信したシンタックス情報に従い、ビデオエンコーダ200により使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成してよい。
【0324】
動き補償ユニット302は、シンタックス情報の一部を使用して、符号化ビデオシーケンスのフレーム及び/又はスライスを符号化するために使用されるブロックのサイズ、符号化ビデオシーケンスのピクチャの各マクロブロックがどのようにパーティションされるかを記述するパーティション情報、各パーティションがどのように符号化されるかを示すモード、インター符号化ブロック毎の1つ以上の参照フレーム(及び参照フレームリスト)、及び符号化ビデオシーケンスを復号するための他の情報を決定してよい。
【0325】
イントラ予測ユニット303は、例えばビットストリーム内で受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してよい。逆量子化ユニット303は、ビットストリーム内で提供され、エントロピー復号ユニット301により復号された量子化されたビデオブロック係数を逆量子化、つまり量子化解除する。逆変換ユニット303は、逆変換を適用する。
【0326】
再構成ユニット306は、残差ブロックを、動き補償ユニット202又はイントラ予測ユニット303により生成された対応する予測ブロックと加算して、復号ブロックを形成してよい。望ましい場合には、ブロックアーチファクトを除去するために復号ブロックをフィルタリングするデブロッキングフィルタも適用されてよい。復号ビデオブロックは、次に、バッファ307に格納されて、後の動き補償/イントラ予測のために参照ブロックを提供し、更にディスプレイ装置上で提示するために復号ビデオを生成する。
【0327】
以上から、本開示の技術の特定の実施形態が説明の目的でここに記載されたが、種々の変形が本発明の範囲から逸脱することなく行われてよいことが理解される。従って、本開示の技術は、添付の請求の範囲を除いて、限定されない。
【0328】
本願明細書に記載された本開示の及び他のソリューション、例、実施形態、モジュール、及び機能動作は、デジタル電子回路で、又は本願明細書に開示された構造を含む、コンピュータソフトウェア、ファームウェア、又はハードウェア、及びそれらの構造的均等物で、又はそれらの1つ以上の結合で、実装できる。本開示の及び他の実施形態は、1つ以上のコンピュータプログラムプロダクト、つまり、データ処理機器による実行のために又はその動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装できる。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリ装置、機械可読伝搬信号に影響を与える物質の組成、又は1つ以上のそれらの組合せであり得る。用語「データ処理機器」は、データを処理するあらゆる機器、装置、及び機械を包含し、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む。機器は、ハードウェアに加えて、対象となるコンピュータプログラムの実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組合せを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号、例えば、適切な受信機機器への送信のために情報を符号化するために生成された、機械により生成された電気、光、又は電磁気信号である。
【0329】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイルされた又はインタープリットされた言語を含む任意の形式のプログラミング言語で記述でき、それは、スタンドアロンプログラム又はモジュール、コンポーネント、サブルーチン、又はコンピューティング環境内での使用に適する他のユニットを含む任意の形式で展開できる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、他のプログラム又はデータ(例えばマークアップ言語文書内に格納された1つ以上のスクリプト)を保持するファイルの一部に、問題のプログラムに専用の単一のファイルに、又は複数の連携ファイル(例えば、1つ以上モジュール、サブプログラム、又はコードの部分を格納するファイル)に、格納できる。コンピュータプログラムは、1つのコンピュータ上で、又は1つの場所に置かれた若しくは複数の場所に分散されて通信ネットワークにより相互接続される複数のコンピュータ上で、実行されるよう展開できる。
【0330】
本願明細書に記載の処理及びロジックフローは、入力データに作用し及び出力を生成することにより機能を実行する1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサにより実行できる。特定用途論理回路、例えば、FPGA(field programmable gate array)又はASIC(application specific integrated circuit)により、処理及びロジックフローが実行でき、それとして機器が実装できる。
【0331】
コンピュータプログラムの実行に適するプロセッサは、例えば、汎用及び特定用途向けマイクロプロセッサの両方、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。通常、プロセッサは、命令及びデータを読み出し専用メモリ又はランダムアクセスメモリ又は両者から受信する。コンピュータの基本的要素は、命令を実行するプロセッサ、及び命令及びデータを格納する1つ以上のメモリ装置である。通常、コンピュータは、データを格納する1つ以上の大容量記憶装置、例えば、磁気、光磁気ディスク、又は光ディスク、も含み、又はそれらからデータを受信し又はそれらへデータを転送するために又は両者のために動作可能に結合される。しかしながら、コンピュータはこのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適する非一時的コンピュータ可読媒体は、例えば半導体メモリ装置、例えばEPROM、EEPROM,及びフラッシュメモリ装置、磁気ディスク、例えば内部ハードディスク又は取り外し可能ディスク、光磁気ディスク、及びCD-ROM及びDVD-ROMディスクを含む、全ての形式の-不揮発性メモリ、媒体、及びメモリ装置を含む。プロセッサ及びメモリは、特定用途向け論理回路により補足され、又はその中に組み込むことができる。
【0332】
本願明細書は多数の特定事項を含むが、これらは、任意の主題の又は請求され得るものの範囲に対する限定としてではなく、むしろ、特定の技術の特定の実施形態に固有の特徴の説明として考えられるべきである。別個の実装の文脈で本願明細書に記載された特定の特徴は、単一の実装形態において組み合わせることもできる。反対に、単一の実施形態の文脈で記載された種々の特徴は、複数の実施形態の中で別個に又は任意の適切な部分的組み合わせで実装されることもできる。更に、特徴は特定の組み合わせで動作するよう上述され、そのように初めに請求され得るが、請求される組み合わせからの1つ以上の特徴は、幾つかの場合には、組み合わせから切り離されてよく、請求される組み合わせは、部分的組み合わせ又は部分的組み合わせの変形に向けられてよい。
【0333】
同様に、動作は、図中に特定の順序で示されるが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序で又はシーケンシャルに実行されること、及び全ての図示の動作が実行されること、を要求すると理解されるべきではない。更に、本願明細書に記載された実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてこのような分離を必要とすると理解されるべきではない。
【0334】
少数の実装及び例のみが記載され、本願明細書に記載され示されたものに基づき他の実装、拡張、及び変形が行われ得る。
【符号の説明】
【0335】
2100 システム
2102 入力
2104 コーディングコンポーネント
2106、2108 コンポーネント
2110 ディスプレイインタフェース