(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-26
(45)【発行日】2023-07-04
(54)【発明の名称】対称動きベクトル差分符号化
(51)【国際特許分類】
H04N 19/52 20140101AFI20230627BHJP
H04N 19/577 20140101ALI20230627BHJP
H04N 19/103 20140101ALI20230627BHJP
H04N 19/134 20140101ALI20230627BHJP
H04N 19/172 20140101ALI20230627BHJP
【FI】
H04N19/52
H04N19/577
H04N19/103
H04N19/134
H04N19/172
(21)【出願番号】P 2021562776
(86)(22)【出願日】2020-04-28
(86)【国際出願番号】 CN2020087551
(87)【国際公開番号】W WO2020221258
(87)【国際公開日】2020-11-05
【審査請求日】2021-10-20
(31)【優先権主張番号】PCT/CN2019/084768
(32)【優先日】2019-04-28
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/087201
(32)【優先日】2019-05-16
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/094954
(32)【優先日】2019-07-05
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】ドン ジピン
(72)【発明者】
【氏名】ワン ユエ
【審査官】久保 光宏
(56)【参考文献】
【文献】Huanbang Chen, et al.,"CE4: Symmetrical MVD mode (Test 4.5.1)",Document: JVET-L0370-v1, [online],JVET-L0370 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年09月25日,Pages 1-4,[令和4年11月22日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=4467> and <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0370-v1.zip>.,(See document file "JVET-L0370.docx" included in the zip file "JVET-L0370-v1.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
映像の現在の画像のブロックと前記ブロックのビットストリームとの間の変換のために、第1の
コーディングモードが前記ブロックに対して許容可能であるか否かを決定することと、
前記決定することに基づいて、前記変換を行うことと、を含む映像データを処理する方法であって、
前記第1の
コーディングモードが許容可能であるか否かは、前記現在の画像の2つの対象参照画像の導出処理に依存し、
前記導出処理は、
参照画像リスト0の前方対象参照画像を検索し、参照画像リスト1の後方対象参照画像を検索するための第1のステップと、
前記参照画像リスト0の後方対象参照画像を検索し、前記参照画像リスト1の前方対象参照画像を検索するための第2のステップと、を含み、
前記第1のステップにおいて前記2つの対象参照画像のうちの少なくとも1つが見つからない場合、前記第2のステップが呼び出される前に、対象参照画像インデックスの両方を利用不可能となるようにリセットし、
前記第1の
コーディングモードにおいて、参照画像リストXの動きベクトル差を示すシンタックス構造が前記ビットストリームに存在せず、前記参照画像リストXの前記動きベクトル差を、Xが0または1に等しい参照画像リスト(1-X)の動きベクトル差に基づいて導出して、映像データを処理する、
方法。
【請求項2】
前記対象参照画像インデックスの両方を利用不可能となるようにリセットするステップは、
RefIdxSymL0およびRefIdxSymL1の両方を-1にリセットするステップを含み、
前記RefIdxSymL0は、前記参照画像リスト0の前記対象参照画像インデックスを示し、
前記RefIdxSymL1は、前記参照画像リスト1の前記対象参照画像インデックスを示す、
請求項1に記載の方法。
【請求項3】
前記第1の
コーディングモードが許容可能であるか否かは、前記第1のステップおよび前記第2のステップの一方のステップにおいて、前記対象参照画像の両方が見つかったか否かに依存する、
請求項1に記載の方法。
【請求項4】
前記第1のステップにおいて、前記対象参照画像の両方が見つかった場合、前記第1の
コーディングモードが許可される、
請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第2のステップにおいて、前記対象参照画像の両方が見つかった場合、前記第1の
コーディングモードが許可される、
請求項1~3のいずれか1項に記載の方法。
【請求項6】
前記第1のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからず、前記第2のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからない場合、前記第1の
コーディングモードは許可されない、
請求項1~3のいずれか1項に記載の方法。
【請求項7】
前記前方対象参照画像の画像順は、前記現在の画像の画像順よりも小さく、
前記後方対象参照画像の画像順は、前記現在の画像の画像順よりも大きい、
請求項1に記載の方法。
【請求項8】
前記変換は、前記ビットストリームから前記映像の前記ブロックを復号することを含む、
請求項1に記載の方法。
【請求項9】
前記変換は、前記映像の前記ブロックを前記ビットストリームに符号化することを含む、
請求項1に記載の方法。
【請求項10】
処理装置と命令を含む非一時的メモリとを備える映像データを処理するための装置であって、
前記処理装置による実行時に、前記命令は前記処理装置に、
映像の現在の画像のブロックと前記ブロックのビットストリームとの間の変換のために、第1の
コーディングモードが前記ブロックに対して許容可能であるかどうかを決定することと、
前記決定に基づいて、前記変換を行うことと、を行わせ、
前記第1の
コーディングモードが許容可能であるか否かが、前記現在の画像の2つの対象参照画像の導出処理に依存し、
前記導出処理は、
参照画像リスト0の前方対象参照画像を検索し、参照画像リスト1の後方対象参照画像を検索するための第1のステップと、
前記参照画像リスト0の後方対象参照画像を検索し、前記参照画像リスト1の前方対象参照画像を検索するための第2のステップと、を含み、
前記第1のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからない場合、前記第2のステップが呼び出される前に、対象参照画像インデックスの両方を利用不可能となるようにリセットし、
前記第1の
コーディングモードにおいて、参照画像リストXの動きベクトル差を示すシンタックス構造が前記ビットストリームに存在せず、前記参照画像リストXの前記動きベクトル差を、Xが0または1に等しい参照画像リスト(1-X)の動きベクトル差に基づいて導出して、映像データを処理する、
装置。
【請求項11】
前記対象参照画像インデックスの両方を利用不可能となるようにリセットするステップは、RefIdxSymL0およびRefIdxSymL1の両方を-1にリセットするステップを含み、
前記RefIdxSymL0は、前記参照画像リスト0の前記対象参照画像インデックスを示し、
前記RefIdxSymL1は、前記参照画像リスト1の前記対象参照画像インデックスを示す、
請求項10に記載の装置。
【請求項12】
前記第1の
コーディングモードが許容可能であるか否かは、前記第1のステップおよび前記第2のステップの一方のステップにおいて、前記対象参照画像の両方が見つかったか否かに依存する、
請求項10に記載の装置。
【請求項13】
前記第1のステップにおいて、前記対象参照画像の両方が見つかった場合、前記第1の
コーディングモードが許可される、
請求項10~12のいずれか1項に記載の装置。
【請求項14】
前記第2のステップにおいて、前記対象参照画像の両方が見つかった場合、前記第1の
コーディングモードが許可される、
請求項10~12のいずれか1項に記載の装置。
【請求項15】
前記第1のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからず、前記第2のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからない場合、前記第1の
コーディングモードは許可されない、
請求項10~12のいずれか1項に記載の装置。
【請求項16】
前記前方対象参照画像の画像順は、前記現在の画像の画像順よりも小さく、
前記後方対象参照画像の画像順は、前記現在の画像の画像順よりも大きい、
請求項10に記載の装置。
【請求項17】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、
前記命令は、処理装置に、
映像の現在の画像のブロックと前記ブロックのビットストリームとの間の変換のために、第1の
コーディングモードが前記ブロックに対して許容可能であるか否かを決定することと、
前記決定に基づいて、前記変換を行うことと、を行わせ、
前記第1の
コーディングモードが許容可能であるか否かが、前記現在の画像の2つの対象参照画像の導出処理に依存し、
前記導出処理は、
参照画像リスト0の前方対象参照画像を検索し、参照画像リスト1の後方対象参照画像を検索するための第1のステップと、
前記参照画像リスト0の後方対象参照画像を検索し、前記参照画像リスト1の前方対象参照画像を検索するための第2のステップと、を含み、
前記第1のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからない場合、前記第2のステップが呼び出される前に、対象参照画像インデックスの両方を利用不可能となるようにリセットし、
前記第1の
コーディングモードにおいて、参照画像リストXの動きベクトル差を示すシンタックス構造が前記ビットストリームに存在せず、前記参照画像リストXの前記動きベクトル差を、Xが0または1に等しい、参照画像リスト(1-X)の動きベクトル差に基づいて導出する、
非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記対象参照画像インデックスの両方を利用不可能となるようにリセットするステップは、RefIdxSymL0及びRefIdxSymL1の両方を-1にリセットするステップを含み、
前記RefIdxSymL0は、前記参照画像リスト0の前記対象参照画像インデックスを表し、
前記RefIdxSymL1は、前記参照画像リスト1の前記対象参照画像インデックスを表す、
請求項17に記載の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記前方対象参照画像の画像順は、前記現在の画像の画像順よりも小さく、
前記後方対象参照画像の画像順は、前記現在の画像の画像順よりも大きい、
請求項17に記載の非一時的なコンピュータ可読記憶媒体。
【請求項20】
映像
のビットストリームを記憶する
方法であって、
前記方法は、
前記映像の現在の画像のブロックのために、第1のコーディングモードが前記ブロックのために許容可能であるかどうかを決定することと、
前記決定に基づいて、前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記憶媒体に記憶することと、を含み、
前記第1のコーディングモードが許容可能であるか否かが、前記現在の画像の2つの対象参照画像の導出処理に依存し、
前記導出処理は、
参照画像リスト0の前方対象参照画像を検索し、参照画像リスト1の後方対象参照画像を検索するための第1のステップと、
前記参照画像リスト0の後方対象参照画像を検索し、前記参照画像リスト1の前方対象参照画像を検索するための第2のステップと、を含み、
前記第1のステップにおいて、前記2つの対象参照画像のうちの少なくとも1つが見つからない場合、前記第2のステップが呼び出される前に、対象参照画像インデックスの両方を利用不可能となるようにリセットし、
前記第1のコーディングモードにおいて、参照画像リストXの動きベクトル差を示すシンタックス構造が前記ビットストリームに存在せず、前記参照画像リストXの前記動きベクトル差を、Xが0または1に等しい、参照画像リスト(1-X)の動きベクトル差に基づいて導出する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年4月28日出願の国際特許出願PCT/CN2019/084768号、2019年5月16日出願の国際特許出願PCT/CN2019/087201号、2019年7月5日出願の国際特許出願PCT/CN2019/094954の優先権及び利益を主張する、2020年4月28日出願の国際特許出願PCT/CN2020/087551号の国内段階である。国際特許出願PCT/CN2019/084768号、PCT/CN2019/087201号およびPCT/CN2019/094954号の全開示は、本出願の開示の一部として参照により援用される。
【0002】
この特許文献は、映像符号化技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本明細書は、対称符号化または復号化技術を使用する動きベクトル差分符号化を使用して映像符号化または復号化を行う様々な実施形態および技術を説明する。
【0005】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用することを決定することと、前記SMVDモードを使用して前記変換を行うことと、を含む。このビットストリーム表現は、参照リスト0または参照リスト1の一方に対して動きベクトル差(MVD)モードの使用を無効化することを示す。
【0006】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像からの参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用することを決定することと、前記SMVDモードを使用して前記変換を行うことと、を含む。このビットストリーム表現は、参照リスト1のための動きベクトル差(MVD)情報を含む。
【0007】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用することを決定し、前記SMVDモードを使用して前記変換を行うことを含む。SMVDは、第1のステップを使用して、各参照画像リストを構文解析し、対象参照画像を特定することで、2つの追加動き候補を生成する。
【0008】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードと、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換のためのデコーダ側動きベクトル差(DMVD)符号化モードとを使用するという条件に基づいて、前記判定に基づいて前記変換を行うことを決定することを含む。
【0009】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、条件に基づいて、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードおよび現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換のためのデコーダ側動きベクトル差(DMVD)符号化モードに対して、オールゼロ動きベクトル差を使用するか否かを決定することと、前記決定に基づいて前記変換を行うことを含む。
【0010】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、現在の映像ブロックに関連付けられた複数の参照画像から第1の参照画像および第2の参照画像を選択することと、選択された第1および第2の参照画像に基づいて、前記現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換を行うこととを含み、前記第1の参照画像と、前記現在の映像ブロックを含む現在の画像との間の第1の距離と、前記第2の参照画像と前記現在の画像との間の第2の距離とが等しい。
【0011】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、第1の参照画像と、現在の映像ブロックを含む現在の画像との間の第1の距離と、第2の参照画像と前記現在の画像との間の第2の距離とが等しくないことを判定することと、前記判定に基づいて、また、前記下内の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、前記現在の映像ブロックのための対称動きベクトル差(SMVD)モードを無効化することと、を含む。
【0012】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、現在の映像ブロックに対して、第2の参照画像リストの第2のMVDに基づいて第1の参照画像リストの第1の動きベクトル差(MVD)を導出することと、前記導出することに基づいて、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換を行うことと、を含み、前記第1のMVDの範囲は制限されている。
【0013】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像ブロックの現在の画像と第1のブロックのビットストリーム表現との間での変換のために、前記ブロックの符号化情報に基づいて、前記ブロックに対して対称動きベクトル差(SMVD)モードが許容されるかどうかを判定し、前記に基づいてこの変換を行うことを含む。
【0014】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像のブロックと前記第1のブロックのビットストリーム表現との間での変換のために、前例の前記方法に従って、前記ブロックに対して対称動きベクトル(SMV)モードが許容可能であるかどうかを判定することと、前記判定に基づいて、前記変換を行うことを含む。
【0015】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在の画像のブロックと前記ブロックのビットストリーム表現との間での変換のために、対称動きベクトル差(SMVD)モードが前記ブロックに対して許容可能かどうかを判定することであって、前記SMVDモードが許容可能かどうかは、前記現在の画像の2つの対象参照画像の導出処理に依存し、この処理は、前記参照画像リスト0の前方対象参照画像を検索し、前記参照画像リスト1の後方対象参照画像を検索するための第1のステップと、前記参照画像リスト0の後方対象参照画像を検索し、前記参照画像リスト1の前方対象参照画像を検索するための第2のステップと、を含み、前記第1のステップと前記第2のステップの出力は、互いに独立している、判定することと、前記判定に基づいて変換を行うことと、を含む。
【0016】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像の現在の画像のブロックと、前記ブロックのビットストリーム表現との間での変換のために、一方の参照画像リストの第2の動きベクトル差(MVD)を他方の参照画像リストに関連付けられた第1のMVDから導出することであって、MVDは、水平成分と垂直成分の両方を含む、導出することと、前記第1のMVDと前記第2のMVDのうちの少なくとも1つに範囲制限を課すことと、前記制限された第1のMVDおよび前記制限された第2のMVDのうちの少なくとも1つに基づいて前記変換を行うこととを含む。
【0017】
さらに別の例示的な態様において、映像処理装置が開示される。この装置は、上述した方法を行うように構成された処理装置を含む。この装置は、映像符号化または映像復号化をさらに行ってもよい。
【0018】
さらに別の例示的な態様において、コンピュータ可読媒体が開示される。この媒体には、上述した方法を処理装置で実装するためのコードが記憶されている。
【0019】
これらの、および他の態様は、本明細書で説明される。
【図面の簡単な説明】
【0020】
【
図1】マージ候補リスト構築のための導出処理の例を図示する。
【
図3】空間的マージ候補の冗長性チェックに考慮される候補対の例を示す。
【
図4A】N×2N及び2N×N分割の第2のPUのための位置を示す。
【
図4B】N×2N及び2N×N分割の第2のPUのための位置を示す。
【
図5】時間的マージ候補のための動きベクトルのスケーリングの説明図である。
【
図6】時間的マージ候補、C0およびC1の候補位置の例を示す。
【
図8】動きベクトル予測候補の導出処理をまとめている。
【
図9】空間的動きベクトル候補のための動きベクトルスケーリングの説明を示す。
【
図10】バイラテラルテンプレートマッチングに基づくデコーダ側動きベクトル改良(DMVR)の一例を示す。
【
図11】DMVRにおけるリスト0とリスト1との間にミラーリングされるMVD(0,1)の例を示す。
【
図12】1回の繰り返しでチェックされ得る動きベクトル(MV)の例を示す。
【
図14】本特許明細書に記載される方法を実現するために用いられるハードウェアプラットフォームの一例を示すブロック図である。
【
図15】映像処理方法の一例を示すフローチャートである。
【
図16】映像処理方法の一例を示すフローチャートである。
【
図17】映像処理方法の一例を示すフローチャートである。
【
図18】映像処理方法の一例を示すフローチャートである。
【
図19】映像処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0021】
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示された実施形態をその章にのみ限定するものではない。さらに、特定の実施形態は、VVC(Versatile Video Coding)または他の特定の映像コーデックを参照して説明されたが、開示された技術は、他の映像符号化技術にも適用可能である。さらに、いくつかの実施形態は映像符号化ステップを詳細に説明しているが、符号化を復号化する、対応するステップはデコーダによって実行されることが理解されよう。さらに、映像処理という用語は、映像符号化または圧縮、映像の復号化または展開、および映像の画素がある圧縮形式から別の圧縮形式へ、または別の圧縮ビットレートで表現される映像のコード変換を含む。
【0022】
1.発明の概要
本明細書は、映像符号化技術に関する。具体的には、対称動きベクトル差分符号化に関する。HEVCのような既存の映像符号化規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像符号化規格または映像コーデックにも適用可能である。
【0023】
2.初期の協議
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像符号化規格は、時間予測と変換符号化が利用されるハイブリッド映像符号化構造に基づく。HEVCを超えた将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJoint Video Expert Team(JVET)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0024】
2.1 HEVC/H.265におけるインター予測
各インター予測されたPUは、1つまたは2つの参照画像リストのための動きパラメータを有する。動きパラメータは、動きベクトルおよび参照画像インデックスを含む。2つの参照画像リストのうちの1つの参照画像リストの使用は、inter_pred_idcを使用して信号通知されてもよい。動きベクトルは、予測子に対するデルタ(delta)として明確に符号化されてもよい。
【0025】
1つのCUがスキップモードにて符号化される場合、1つのPUがこのCUに関連付けられ、有意な残差係数がなく、符号化された動きベクトルデルタも参照画像インデックスもない。マージモードを指定されており、これにより、現在のPUのための動きパラメータを、空間的および時間的候補を含む近傍のPUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたPUに適用することができる。マージモードの代替として、動きパラメータの明示的な送信があり、動きベクトル(より正確には、動きベクトル予測子と比較した動きベクトル差分(MVD))、各参照画像リストの対応する参照画像インデックス、および参照画像リストの使用状況が、各PUに明確に信号通知される。このようなモードを、本開示では高度動きベクトル予測(AMVP)と呼ぶ。
【0026】
2つの参照画像リストのうちの1つを使用することを信号通知が示す場合、サンプルのうちの1つのブロックからPUを生成する。これを「単一予測」と呼ぶ。PスライスおよびBスライスの両方に対して単一予測が利用可能である。
【0027】
両方の参照画像リストを使用することを信号通知が示す場合、サンプルのうちの2つのブロックからPUを生成する。これを「双方向予測」と呼ぶ。Bスライスのみに双方向予測が利用可能である。
【0028】
以下、HEVCに規定されるインター予測モードについて詳細に説明する。まず、マージモードについて説明する。
【0029】
2.1.1 参照画像バッファ
HEVCにおいて、インター予測という用語は、現在の復号化された画像以外の参照画像のデータ要素(例えば、サンプル値または動きベクトル)から導出された予測を示すために使用される。H.264/AVCと同様に、複数の参照画像から1つの画像を予測することができる。インター予測に使用される参照画像は、1つ以上の参照画像リストにまとめられる。参照インデックスは、リストにおけるいずれの参照画像を使用して予測信号を生成するかを識別する。
【0030】
1つの参照画像リストList0はPスライスに使用され、2つの参照画像リストList0およびList1はBスライスに使用される。なお、リスト0/1に含まれる参照画像は、撮影/表示順の観点から、過去の画像および将来の画像が混在する可能性がある。
【0031】
2.2.1 マージモード
【0032】
2.1.2.1 マージモードの候補の導出
マージモードを使用してPUを予測する場合、ビットストリームからマージ候補リストにおけるエントリを指すインデックスを構文解析し、これを使用して動き情報を検索する。このリストの構成は、HEVC規格で規定されており、以下のステップのシーケンスに基づいてまとめることができる。
●ステップ1:初期候補導出
〇ステップ1.1:空間的候補導出
〇ステップ1.2:空間的候補の冗長性チェック
〇ステップ1.3:時間的候補導出
●ステップ2:追加の候補挿入
〇ステップ2.1:双方向予測候補の作成
〇ステップ2.2:動きゼロ候補の挿入
【0033】
これらのステップは
図1にも概略的に示されている。空間的マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補を選択する。時間的マージ候補導出のために、2つの候補の中から最大1つのマージ候補を選択する。デコーダ側ではPUごとに一定数の候補を想定しているので、ステップ1で得た候補数がスライスヘッダで信号通知されるマージ候補(MaxNumMergeCand)の最大数に達しない場合、追加候補を生成する。候補の数は一定であるので、短縮された単項2値化(TU)を使用して最良マージ候補のインデックスを符号化する。CUのサイズが8に等しい場合、現在のCUのすべてのPUは、2N×2N予測ユニットのマージ候補リストと同じ1つのマージ候補リストを共有する。
【0034】
以下、上述したステップに関連付けられた動作を詳しく説明する。
【0035】
図1は、マージ候補リスト構築のための導出処理の例を図示する。
【0036】
2.1.2.2 空間的候補導出
空間的マージ候補の導出において、
図2に示す位置にある候補の中から、最大4つのマージ候補を選択する。導出の順序はA
1、B
1、B
0、A
0、B
2である。位置A
1、B
1、B
0、A
0のいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはイントラ符号化された場合にのみ、位置B
2が考慮される。位置A
1の候補を加えた後、残りの候補を加えると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、符号化効率を向上させることができる。計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。代わりに、
図3において矢印でリンクされた対のみを考慮し、冗長性チェックに使用される対応する候補が同じ動き情報を有していない場合にのみ、その候補をリストに加える。重複した動き情報の別のソースは、2N×2Nとは異なる分割に関連付けられた「第2のPU」である。
図4Aおよび
図4Bは、それぞれ、N×2Nおよび2N×Nの場合の第2のPUを描いている。現在のPUをN×2Nに分割する場合、リスト構築に位置A1の候補は考慮されない。実際、この候補を加えることにより、同じ動き情報を有する2つの予測ユニットが導かれることとなり、1つの符号化ユニットに1つのPUのみを有するためには冗長である。同様に、現在のPUを2N×Nに分割する場合、位置B1は考慮されない。
【0037】
2.1.2.3 時間的候補導出
このステップにおいて、1つの候補のみがリストに追加される。具体的には、この時間的マージ候補の導出において、所与の参照画像リストにおける現在の画像との間に最小のPOC差を有する画像に属する同一位置PUに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、同一位置のPUの導出に用いられる参照画像リストが明確に信号通知される。
図5に点線で示すように、時間的マージ候補のスケーリングされた動きベクトルが得られる。これは、POC距離tbおよびtdを利用して、同一位置のPUの動きベクトルからスケーリングしたものである。tbは、現在の画像の参照画像と現在の画像のPOC差として規定され、tdは、同一位置のPUの参照画像と同一位置の画像のPOC差として規定する。時間的マージ候補の参照画像インデックスをゼロに等しく設定する。このスケーリング処理の実際的な実現については、HEVC仕様に記載されている。Bスライスの場合、2つの動きベクトル、即ち、1つは参照画像リスト0のためのもの、もう1つは参照画像リスト1のためのものを取得し、これらを組み合わせることによって、双方向予測マージ候補を形成する。
【0038】
参照フレームに属する同一位置のPU(Y)において、
図6に示すように、候補C0と候補C1との間で時間的候補の位置を選択する。位置C0のPUが利用可能でない場合、イントラ符号化されている場合、または現在の符号化ツリーユニット(CTU、別名LCU、最大符号化ユニット)行の外側にある場合、位置C1が使用される。そうでない場合、位置C0が時間的マージ候補の導出に使用される。
【0039】
2.1.2.4 追加の候補挿入
空間的-時間的マージ候補の他に、2つの追加のタイプのマージ候補、すなわち、結合双方向予測マージ候補およびゼロマージ候補がある。空間的-時間的マージ候補を利用して、結合双方向予測マージ候補を生成する。結合双方向予測マージ候補は、Bスライスのみに使用される。最初の候補の第1の参照画像リスト動きパラメータと別の候補の第2の参照画像リスト動きパラメータとを組み合わせることで、結合双方向予測候補を生成する。これら2つのタプルが異なる動き仮説を提供する場合、これらのタプルは、新しい双方向予測候補を形成する。一例として、
図7は、オリジナルリスト(左側)における、mvL0およびrefIdxL0、またはmvL1およびrefIdxL1を有する2つの候補を用いて、最終リスト(右側)に加えられる結合双方向予測マージ候補を生成する場合を示す。これらの追加のマージ候補を生成するために考慮される組み合わせについては、様々な規則が存在する。
【0040】
ゼロ動き候補を挿入し、マージ候補リストにおける残りのエントリを埋めることにより、MaxNumMergeCand容量にヒットする。これらの候補は、空間的変位がゼロであり、新しいゼロ動き候補をリストに加える度にゼロから始まり増加する参照画像インデックスを有する。最終的には、これらの候補に対して冗長性チェックは行われない。
【0041】
2.1.3 AMVP
AMVPは、動きベクトルと近傍のPUとの間の空間的-時間的相関を利用し、これを動きパラメータの明確な伝送に用いる。各参照画像リストに対し、まず、左側、上側の時間的に近傍のPU位置の可用性をチェックし、冗長な候補を取り除き、ゼロベクトルを加えることで、候補リストの長さを一定にすることで、動きベクトル候補リストを構築する。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。マージインデックスの信号通知と同様に、最良の動きベクトル候補のインデックスは、短縮された単項を使用してエンコードされる。この場合に符号化対象の最大値は2である(
図8参照)。以下の章では、動きベクトル予測候補の導出処理の詳細を説明する。
【0042】
2.1.3.1 AMVP候補の導出
【0043】
図8は、動きベクトル予測候補の導出処理をまとめたものである。
【0044】
動きベクトル予測において、空間的動きベクトル候補と時間的動きベクトル候補という2つのタイプの動きベクトル候補が考慮される。空間的動きベクトル候補を導出するために、
図2に示したように、5つの異なる位置にある各PUの動きベクトルに基づいて、最終的には2つの動きベクトル候補を導出する。
【0045】
時間的動きベクトル候補を導出するために、2つの異なる同一位置に配置された位置に基づいて導出された2つの候補から1つの動きベクトル候補を選択する。空間的-時間的候補の最初のリストを作成した後、リストにおける重複した動きベクトル候補を除去する。候補の数が2よりも多い場合、関連づけられた参照画像リストにおける参照画像インデックスが1よりも大きい動きベクトル候補をリストから削除する。空間的―時間的動きベクトル候補の数が2未満である場合は、追加のゼロ動きベクトル候補をリストに加える。
【0046】
2.1.3.2 空間的動きベクトル候補
空間的動きベクトル候補の導出において、
図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)
【0047】
最初に非空間的スケーリングの場合をチェックし、次に空間的スケーリングを行う。参照画像リストにかかわらず、POCが近傍のPUの参照画像と現在のPUの参照画像とで異なる場合、空間的スケーリングを考慮する。左側候補のすべてのPUが利用可能でない、又はイントラ符号化されている場合、上側の動きベクトルのスケーリングは、左側及び上側MV候補の並列導出に役立つ。そうでない場合、上側の動きベクトルに対して空間的スケーリングは許可されない。
【0048】
空間的スケーリング処理において、
図9に示すように、時間的スケーリングと同様にして、近傍のPUの動きベクトルをスケーリングする。主な違いは、現在のPUの参照画像リストおよびインデックスを入力として与え、実際のスケーリング処理は時間的スケーリングと同じであることである。
【0049】
2.1.3.3 時間的動きベクトル候補
参照画像インデックスを導出する以外は、時間的マージ候補を導出するための処理は、すべて、空間的動きベクトル候補を導出するための処理と同じである(
図6参照)。参照画像インデックスはデコーダに信号通知される。
【0050】
2.2 VVCにおけるインター予測方法
インター予測微調整のために、例えば、シグナリングMVDを信号通知するための適応型動きベクトル差解像度(AMVR)、アフィン予測モード、三角形予測モード(TPM)、アドバンスドTMVP(ATMVP、別名SbTMVP)、一般化双方向予測(GBI)、双方向オプティカルフロー(BIO)など、いくつかの新しい符号化ツールが採用される。
【0051】
2.2.1 VVCにおける符号化ブロック構造
VVCにおいて、4分木/2分木/多重木(QT/BT/TT)構造を採用し、画像を正方形または長方形のブロックに分割する。
【0052】
QT/BT/TTの他に、Iフレームのために、別個のツリー(別名、デュアル符号化ツリー)がVVCにおいても採用される。別個のツリーを使用して、符号化ブロック構造は、輝度および彩度成分について別個に信号通知される。
【0053】
2.2.2 デコーダ側動きベクトル改良(DMVR)
双方向予測演算において、1つのブロック領域を予測するために、list0の動きベクトル(MV)およびlist1のMVをそれぞれ使用して構成される双方向予測ブロックを組み合わせ、1つの予測信号を形成する。デコーダ側動きベクトル微調整(DMVR)方法において、双方向予測の2つの動きベクトルをさらに微調整する。
【0054】
2.2.2.1 JEMにおけるDMVR
JEM設計において、動きベクトルは、双方向テンプレートマッチング処理によって微調整される。追加の動き情報を送信することなく微調整されたMVを得るために、デコーダにおいてバイラテラルテンプレートマッチングを適用し、バイラテラルテンプレートと参照画像における再構成サンプルとの間の歪みに基づく検索を行う。一例が
図10に示される。
図10に示すように、list0の最初のMV0とlist1のMV1とから、それぞれ2つの予測ブロックの重み付け結合(すなわち、平均)としてバイラテラルテンプレートを生成する。テンプレートマッチング操作は、生成されたテンプレートと参照画像におけるサンプル領域(最初の予測ブロックの付近)との間のコスト尺度を計算することからなる。2つの参照画像の各々について、テンプレートコストが最小となるMVを、そのリストの更新されたMVと見なし、元のMVに置き換える。JEMにおいて、各リストに対して9つのMV候補を検索する。9つのMV候補は、元のMVと、水平又は垂直方向のいずれか又は両方向に元のMVに対してオフセットしている1つの輝度サンプルを有する8つの周囲のMVを含む。最後に、2つの新しいMV、即ち、
図10に示すようなMV0’及びMV1’を使用して、最終的な双方向予測結果を生成する。絶対差の合計(SAD)をコスト尺度として使用する。なお、1つの周囲のMVによって生成された予測ブロックのコストを計算する場合、実際のMVの代わりに、丸められたMV(整数画素)を使用して予測ブロックを得る。
【0055】
2.2.2.2 VVCにおけるDMVR
VVCにおけるDMVRに対して、
図11に示すように、リスト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として定義される。
【0056】
動きベクトル微調整処理は、2回反復されてもよい。各反復において、
図12に示すように、最大で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は、以下のように決定される。
MvdX=-1;
MvdY=-1;
If (Sad(1,0)<Sad(-1,0))
MvdX=1;
If (Sad(0,1)<Sad(0,-1))
MvdY=1;
【0057】
第1の反復において、開始点は信号通知されたMVであり、第2の反復において、開始点は信号通知されたMVに第1の反復で選択された最良のMVDを加えたものである。DMVRは、1つの参照画像が前の画像であり、他の参照画像が後の画像であり、且つ2つの参照画像が、現在の画像からの同じ画像オーダカウント距離を有する場合にのみ適用される。
【0058】
DMVRの処理をさらに簡単にするために、JEMの設計にいくつかの変更を提案した。具体的には、VTM-4.0に採用されたDMVR設計(近日公開予定)の主な特徴は以下の通りである。
●list0とlist1の間の(0,0)位置SADが閾値より小さい場合、早期終了とする。
●ある位置において、list0とlist1との間のSADが0である場合、早期終了とする。
●DMVRのブロックサイズ:W*H>=64&&H>=8、但しWおよびHは、ブロックの幅および高さである。
●CUのサイズが16*16より大きいDMVRの場合、CUを16×16個の複数のサブブロックに分割する。CUの幅または高さのみが16よりも大きい場合、CUは垂直または水平方向にのみ分割される。
●参照ブロックの大きさ(W+7)*(H+7)(輝度の場合)。
●25点のSADベースの整数画素検索(すなわち、(+-)2つの微調整検索範囲、単一段階)
●バイリニア補間ベースのDMVR
●「パラメータ誤差曲面方程式」に基づくサブピクセル微調整。この手順は、前回のMV微調整の反復において、最小SADコストがゼロに等しくなく、かつ最良のMVDが(0,0)である場合にのみ行われる。
●参照ブロックパディングによる輝度/彩度MC(必要に応じて)。
● MC および TMVPにのみ使用される微調整されたMV。
【0059】
2.2.2.2.1 DMVRの使用方法
以下の条件がすべて真である場合、DMVRを有効にすることができる。
- SPSにおけるDMVR有効化フラグ(即ち、sp_dmvr_enabled_flag)が1である。
- TPMフラグ、インターアフィンフラグ、サブブロックマージフラグ(ATMVPまたはアフィンマージのいずれか)、MMVDフラグがすべて0である。
- マージフラグが1である。
- 現在のブロックは双方向予測され、現在の画像とリスト1の参照画像との間のPOC距離は、リスト0の参照画像と現在の画像との間のPOC距離に等しい。
- 現在のCUの高さが8以上である。
- 輝度サンプルの数(CU幅*高さ)が64以上である。
【0060】
2.2.2.2.2 「パラメータ誤差表面方程式」に基づくサブピクセル微調整
この方法を以下にまとめる。
1.所与の反復において中心位置が最良のコスト位置である場合にのみ、パラメトリック誤差表面フィットを算出する。
2.中心位置コストと、中心から(-1,0)、(0,-1)、(1,0)、(0,1)の位置におけるコストとを使用して、次式の2-D放物線誤差表面方程式を適合させる。
【0061】
【0062】
ここで、(x0,y0)は、最小限のコストを有する位置に対応し、Cは、最小コスト値に対応する。5つの未知数の式5を解くことによって、(x0,y0)を以下のように算出する。
【0063】
【0064】
(x0,y0)は、除算が行われる精度(即ち、何ビットの商が計算されるか)を調整することで、任意の必要なサブピクセル精度で算出することができる。1/16画素の精度を得るためには、商の絶対値を4ビットだけ算出する必要があり、これは、CUあたり2回の除算を必要とする高速シフト減算ベースの実装に適している。
3.算出された(x0,y0)を整数微細化MVに加算し、サブピクセルの正確な微調整デルタMVを得る。
【0065】
2.2.3 対称動きベクトル差
双方向予測における動き情報符号化には、対称動きベクトル差(SMVD)が適用される。
【0066】
まず、スライスレベルにおいて、SMVDモードで使用されるリスト0/1の参照画像インデックスを示す変数RefIdxSymL0、RefIdxSymL1を、それぞれ以下のステップで導出する。2つの変数のうち少なくとも1つが-1に等しい場合、SMVDモードは無効化されるものとする。
【0067】
8.3.5 対称動きベクトル差参照インデックスのための復号化処理
本処理では、ある符号化ユニットにおいてsym_mvd_flagが1である場合、対称動きベクトル差をとるためのリスト0およびリスト1の参照画像インデックスを指定するRefIdxSymL0およびRefIdxSymL0を出力する。
【0068】
Xが0および1である変数RefIdxSymLXは、以下のように導出される。
【0069】
ステップ#1:各参照画像リストの第1ループ
- 変数currPicは、現在の画像を指定する。
- RefIdxSymL0は、-1に設定される。
- i=0..NumRefIdxActive[0]の各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])<DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])あるいはRefIdxSymL0は-1である.
- RefIdxSymL1は、-1に設定される。
- i=0..NumRefIdxActive[1]の各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])>DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])あるいはRefIdxSymL1は-1である。
【0070】
ステップ#2:各参照画像リストの第2ループ
- RefIdxSymL1=-1であるか、またはRefIdxSymL1=-1である場合、以下が適用される。
- i=0..NumRefIdxActive[0]の各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])>DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])あるいはRefIdxSymL0は、-1である。
- i=0..NumRefIdxActive[1]の各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])>0,
DiffPicOrderCnt(currPic,RefPicList[1][i])<DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])あるいは、RefIdxSymL1は-1である。
【0071】
第2に、CUレベルにおいて、CUの予測方向が双方向予測であり、BiDirPredFlagが1に等しい場合、対称モードを使用するかどうかを示す対称モードフラグを明示的に信号通知する。
【0072】
このフラグが真である場合、mvp_l0_flag、mvp_l1_flagおよびMVD0のみが明示的に信号通知される。参照インデックスは、リスト0およびリスト1に対して、それぞれRefIdxSymL0、RefIdxSymL1に設定される。MVD1は単に-MVD0に設定される。最終的な動きベクトルを以下の式に示す。
【0073】
【0074】
【0075】
関連する構文は以下のとおりである。
【0076】
【0077】
2.2.4 MVD意味論
【0078】
7.4.8.8 動きベクトル差意味論
abs_mvd_greater0_flag[compIdx]は、動きベクトル成分の差の絶対値が0より大きいかどうかを指定する。
abs_mvd_greater1_flag[compIdx]は、動きベクトル成分の差の絶対値が1より大きいかどうかを指定する。
abs_mvd_greater1_flag[compIdx]が存在しない場合、0に等しいと推測される。
abs_mvd_minus2[compIdx]プラス2は、動きベクトル成分の差の絶対値を指定する。
abs_mvd_minus2[compIdx]が存在しない場合、-1に等しいと推測される。
mvd_sign_flag[compIdx]は動きベクトル成分の差の符号を以下のように指定する。
- mvd_sign_flag[compIdx]=0である場合、対応する動きベクトル成分の差は正の値を有する。
- 一方、(mvd_sign_flag[compIdx]=1である場合)、対応する動きベクトル成分の差は負の値を有する。
mvd_sign_flag[compIdx]が存在しない場合、0に等しいと推測される。
【0079】
compIdx=0..1の場合、動きベクトル差lMvd[compIdx]は、以下のように導出される。
lMvd[compIdx]=abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx]) (7 126)
lMvd[compIdx]の値は、-215~215-1の範囲内である。
【0080】
MotionModelIdc[x0][y0]の値に基づいて、動きベクトルの差は、以下のように導出される。
- MotionModelIdc[x0][y0]=0である場合、変数MvdLX[x0][y0][compIdx])(X=0または1)は、使用されるべきリストXベクトル成分とその予測との間の差を指定する。配列インデックスx0,y0は、画像の左上輝度サンプルに対する、考慮される符号化ブロックの左上輝度サンプルの位置(x0,y0)を指定する。水平方向の動きベクトル成分の差にはcompIdx=0が割り当てられ、垂直方向の動きベクトル成分にはcompIdx=1が割り当てられる。
- refList=0である場合、MvdL0[x0][y0][compIdx]は、compIdx=0..1で、lMvd[compIdx]に設定される。
- 一方(refList=1である場合)、MvdL1[x0][y0][compIdx]は、compIdx=0..1で、lMvd[compIdx]に設定される。
- 一方(MotionModelIdc[x0][y0]≠0である場合)、変数MvdCpLX[x0][y0][cpIdx][compIdx](X=0または1)、使用されるべきリストXベクトル成分とその予測との間の差を指定する。配列インデックスx0,y0は、考慮される符号化ブロックの左上の輝度サンプルの、画像の左上の輝度サンプルに対する位置(x0,y0)を指定し、配列インデックスcpIdxは、制御点インデックスを指定する。水平方向の動きベクトル成分の差にはcompIdx=0が割り当てられ、垂直方向の動きベクトル成分にはcompIdx=1が割り当てられる。
- refList=0である場合、MvdCpL0[x0][y0][cpIdx][compIdx]は、compIdx=0..1で、lMvd[compIdx]に設定される。
- 一方(refList=1である場合)、MvdCpL1[x0][y0][cpIdx][compIdx]は、compIdx=0..1で、lMvd[compIdx]に設定される。
【0081】
3.開示される実施形態が解決しようとする課題の例
現在のSMVDには、以下のような問題が存在し得る。
1.mvd_l1_zero_flagが真であり、非効率的である場合、SMVDは許可されない。
2.現在のSMVDモードにおいて、参照画像リスト0のMVDは常に信号通知されており、副情報のビットレートコストを考慮していない。
3.SMVDモードで使用されるリスト0および1の対象参照画像インデックスは、2つのステップを使用してスライスレベルで導出される。
a.リスト0におけるすべての前方参照画像から最も近い参照画像を見出し、リスト1におけるすべての後方参照画像から最も近い参照画像を見出す。
b.それらのうちの1つが見つからない場合、反対方向に検索する。
【0082】
なお、以下の場合、第2のステップ(即ち、ステップb)は、以下のすべての場合について呼び出される必要がある。
1)リスト1は前方参照画像のみを有し、リスト0は後方参照画像のみを有する。
2)リスト0およびリスト1の両方が、前方参照画像のみを有する。
3)リスト0およびリスト1の両方が、後方参照画像のみを有する。
4)リストXは、前方参照画像および後方参照画像の両方を有するが、リストY(Y=1-X)は、箇条書きaに記載されたものと同じでない参照画像のみを有する。
【0083】
ケース2)および3)の場合、2つの参照点の間に同じ方向(前方または後方)への対称的な動きがないため、SMVDを有効化することは妥当ではない。
4.さらに、この検索方法によれば、現在の画像に最も接近していない参照画像を見出すことができ、SMVDの符号化性能を低下させるおそれがある。現在の設計は、リスト0から前方へ、リスト1から後方へ、およびその逆を見出す制限を有する。例えば、リスト0およびリスト1が前方参照画像および後方参照画像の両方を有するが、リスト0における最も近い参照画像は後方からであり、リスト1における最も近い参照画像は前方からである場合。現在の設計では、リスト0において後方から最も近いものを選択することはできない。
5.リスト0が前方参照画像および後方参照画像の両方を有し、リスト1が前方参照画像のみを有する場合、現在の設計では、リスト0は2つの前方参照画像を識別することになり、これはSMVD設計の概念と矛盾する。
6.各参照画像リストに対して2つのループを呼び出すことで、対象参照画像を見出されることがあり、これにより複雑性が増す可能性がある。
4.DMVRとSMVDの両方で対称的なMVDが想定されているが、SMVDモードではDMVRは無効化される。
5.SMVDモードにおいて、通常のAMVRモードの場合と同様に、すべてのMVDがゼロである可能性がある。
6.リスト1のためのMVDは、リスト0のための信号通知されたMVD、すなわち、リスト0のためのMVDの水平および垂直成分の両方の反対から導出される。このような仮定は、2つの参照画像が現在の画像と同じ距離にあるということである。しかしながら、それは常に真実であるとは限らない。
7.VVCは、MVDが[-215,215-1]内にあるべきであるMVDの範囲を規定する。SMVDにおいて、リスト0のための信号通知されたMVDからリスト1のためのMVDが導出され、MVDにおける制約を超える場合がある。
【0084】
4.例示的な実施形態
以下に列記されるものは、一般的な概念を説明するための例であると考えられるべきである。これらの実施形態は狭い意味で解釈されるべきではない。さらに、これらの発明は、任意の方法で組み合わせることができる。
【0085】
本明細書において、デコーダ側動きベクトル導出(DMVD)は、ブロック/サブブロック動き情報を導出または微調整するために、等の動き推定を行うDMVR、FRUCや、サンプル単位の動きの微調整を行うBIOのような方法を含む。
【0086】
予測ブロックに適用される不等な重みは、2つの予測ブロックの平均値の代わりに、追加の演算を予測ブロックに適用する必要がある場合に、符号化ツールのGBI処理、LIC処理、重み付け予測処理、または他の符号化/復号化処理で使用される重みを指してもよい。
【0087】
リスト0およびリスト1における参照画像がそれぞれRef0およびRef1であり、現在の画像とRef0との間のPOC距離がPocDist0(例えば、(現在の画像のPOCからRef0のPOCを差し引いた)であり、Ref1と現在の画像との間のPOC距離がPocDist1(例えば、(Ref1のPOCから現在の画像のPOCを差し引いた)絶対値であるとする。それぞれ、ブロックの幅をWとし、ブロックの高さをHとする。関数abs(x)がxの絶対値を返すとする。
【0088】
オールゼロMVDは、信号通知されるすべてのMVD(x成分とy成分の両方を含む)がゼロである場合を表す。
【0089】
SMVDモードの場合、2つの対象参照画像をそれぞれRefIdxL0およびRefIdxL1とする。2つの変数currPocDiffL0およびcurrPocDiffL1は、参照画像と現在の画像との間のPOC距離を表すように定義される。例えば、currPocDiffL0=POC(現在の画像)-POC(RefIdxL0)、currPocDiffL1=POC(現在の画像)-POC(RefIdxL1)、Abs(x)=x>0?x:-xである。
リストX(X=0,1)におけるMVDが強制的にゼロにされるように示されている場合(例えば、
【0090】
【0091】
が1である場合)であっても、SMVDは許可されてもよい。
a.一例において、リスト1のためのMVD符号化が符号化されておらず、ゼロにされる(例えば、
【0092】
【0093】
が1に等しい)場合、SMVDモードは、1つのブロックのために依然として有効化されてもよい。
i.一例において、さらに、参照画像リスト1のためのMVDは、強制的にゼロにされるのではなく(例えば、
【0094】
【0095】
が1に等しい)、参照画像リスト0のための関連付けられたMVDから導出されてもよい。
b.一例において、SMVDモードにおいて、MVDは、リストXに対して信号通知されず、リストY=1-Xに対して信号通知されてもよく、リストYにおける信号通知されたMVDは、リストXにおけるMVDを導出する(例えば、ミラーリングする)ために使用されてもよい。
i.例えば、Xは0に等しくてもよい。
c.代替的に、リストXにおけるMVDが強制的にゼロにされるように示された場合、SMVDは許可されない場合もある。
i.SMVDが許可されない場合、SMVDに関連するすべての構文要素を信号通知しなくてもよい。例えば、それらは暗黙的に導出されてもよい。
2.SMVDモードにおいて、参照画像リスト1のMVD情報を符号化することが提案される。この場合、参照画像リスト0のMVDは、参照画像リスト1のMVDから導出される。
a.一例において、信号通知される(または導出される)ことになる関連付けられたMVDを伴う参照リストは、ビットストリームにおいて信号通知されてもよい。
i.一例において、関連するMVDが信号通知される必要があるという参照画像リストの指示は、シーケンス/画像/スライス/タイル/映像ユニットレベル、例えば、SPS/PPS/スライスヘッダで信号通知されてもよい。
b.一例において、信号通知される(または導出される)ことになる関連付けられたMVDを有する参照リストは、参照画像リストにおける参照画像に従って導出されてもよい。
i.一例において、オブジェクトの2つの参照画像に従って、信号通知される(または導出される)ことになるMVDに関連付けられた参照リストを導出してもよい。
1.さらに、代替的に、Abs(currPocDiffL0)がAbs(currPocDiffL1)よりも大きい場合、リスト0のMVDが信号通知されてもよい。そうでない場合、リスト1のMVDが信号通知されてもよい。
2.さらに、代替的に、Abs(currPocDiffL0)がAbs(currPocDiffL1)よりも大きい場合、リスト1のMVDが信号通知されてもよい。そうでない場合、リスト0のMVDが信号通知されてもよい。
3.さらに、代替的に、Abs(currPocDiffL0)がAbs(currPocDiffL1)以上である場合、リスト0のMVDが信号通知されてもよい。そうでない場合、リスト1のMVDが信号通知されてもよい。
4.さらに、代替的に、Abs(currPocDiffL0)がAbs(currPocDiffL1)以上である場合、リスト1のMVDが信号通知されてもよい。そうでない場合、リスト0のMVDが信号通知されてもよい。
5.さらに、代替的に、Abs(currPocDiffL0)がAbs(currPocDiffL1)に等しい場合、リスト0のMVDが信号通知されてもよい。そうでない場合、リスト1のMVDが信号通知されてもよい。
6.さらに、代替的に、Abs(currPocDiffL0)がAbs(currPocDiffL1)に等しい場合、リスト1のMVDが信号通知されてもよい。そうでない場合、リスト0のMVDが信号通知されてもよい。
c.一例において、信号通知される(または導出される)ことになる関連付けられたMVDを伴う参照リストは、1つの映像ユニット(例えば、スライス/タイルグループ/タイル/ブリック/CU)から別の映像ユニットに変更されてもよい。
i.一例において、信号通知されるべき関連付けられたMVDを有する参照リストの選択は、近傍のブロックの参照画像情報に依存してもよい。
ii.一例において、PocDist0とPocDist1との間の絶対POC距離が小さい参照画像リスト(ここで、2つの参照画像はSMVDで利用される2つである)が選択される。
1.一例において、PocDist0がPocDist1より小さい場合、リスト0のMVDが信号通知され、リスト1のMVDが導出される。
2.代替的に、PocDist0とPocDist1との間の絶対POC距離がより大きい(2つの参照画像はSMVDで利用される2つである)参照画像リストを選択する。
3.PocDist0とPocDist1が等しい場合、リストX(Xは0または1である)を選択してもよい。
3.同じ参照画像リストからの両方の対象参照画像を使用してSMVDを許可することが提案される。
a.一例において、2つの対象参照画像のうちの一方は前方にあり(即ち、そのPOCが現在のPOCより小さい)、他方は後方にある(即ち、そのPOCが現在のPOCより大きい)。
b.一例において、現在のPOCより小さい参照画像のすべてのPOCのうち、POCが現在のPOCに最も近い第1の参照画像と、POCが現在のPOCよりも大きい参照画像のすべてのPOCのうち、現在のPOCに最も近い第2の参照画像とを見出すために、リスト0およびリスト1におけるすべての参照画像をチェックしてもよい。
4.第1のステップから少なくとも1つの対象参照画像を見出した場合、SMVDモードのための対象参照画像の導出における第2のステップをスキップすることが提案される。
a.一例において、リスト0で1つの参照画像が見つかり、且つリスト1で参照画像が見つからない場合、SMVDモードのための対象参照画像の導出における第2のステップはスキップされる。
b.一例において、リスト0で参照画像が見つからず、且つリスト1で1つの参照画像が見つかった場合、SMVDモードのための対象参照画像の導出における第2のステップはスキップされる。
c.さらに、代替的に、SMVDは無効化される。すなわち、すべてのSMVD関連構文の信号通知はスキップされる。
5.第1のステップ(例えば、2.2.3章のステップ#1)の出力と第2のステップ(例えば、2.2.3章のステップ#1)の出力を切り離すことが提案される。第1のステップ(リスト0の対象参照画像をリスト0で前方に検索し、リスト1の対象参照画像を後方に検索する)または第2のステップ(リスト0の対象参照画像をリスト0で後方に検索し、リスト1の対象参照画像を前方に検索する)のいずれかで対象参照画像インデックスが両方とも見つかった場合、または(第1のステップまたは第2のステップですべてが見つからない)SMVDが無効になっている場合の3つのケースのみがサポートされている。
a.一例において、SMVDモードにおける対象参照画像の導出における第2のステップを実行する前に、対象参照画像のうちの少なくとも1つが見つからない場合、対象参照画像インデックスを利用不可能となるようにリセットする(例えば、RefIdxSymL0およびRefIdxSymL1を-1にリセットする)。
6.見つかった2つの対象参照画像がある場合、現在の画像と比較してPOC値が小さいものと大きいものを選択するという制約を追加することが提案される。
a.一例において、POC距離の追加のチェックは、対象参照画像導出処理の後に追加され、対象参照画像は、利用不可能となるようにリセットされてもよい(例えば、RefIdxSymL0およびRefIdxSymL1を-1にリセットする)。
b.一例において、(RefIdxSymL1!=-1&&RefIdxSymL0!=-1&&DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL1])*DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])>0)が真である場合、対象参照画像は、利用不可能となるようにリセットされてもよい。
7.リスト0から前方参照画像(このPOCは現在のPOCより小さい)を見出し、リスト1から後方参照画像(このPOCは現在のPOCよりも大きい)を見出す制限を取り除くこと、および、その逆を行うことが提案される。
a.一例において、SMVDで使用される対象参照画像は、2つの従属チェック(各参照画像リストに対して1つのループ)を使用して導出されてもよい。
i.第1のチェックは、リストX(Xは0または1)から1つの参照画像を見出すことである。
ii.第2のチェックは、リストYの第1のチェック画像および参照画像の出力に従って、リストYから1つの参照画像を見出す(Yは1-Xである)ことである。
b.一例において、まず、リストX(Xは0または1)の場合、所与の順番に従って前方にあるか、後方であるかに関わらず、各参照画像と現在の画像との間のPOC距離を算出する。
i.一例において、所与の順序は、参照画像インデックスの昇順/降順である。
ii.一例において、POC距離が最小(または最大)の参照画像(例えば、Abs(POC(参照画像)-POC(現在の画像))が、RefInLXで表されるリストXの対象参照画像として選択される。
iii.さらに、代替的に、参照画像RefInLXに従って、リストY(Yは1-X)から1つの参照画像を選択する。
1.一例において、RefInLXが現在の画像と比較して小さいPOC値を有する場合、リストYのための対象参照画像は、現在の画像と比較して大きいPOC値を有するものとする。
2.一例において、RefInLXが現在の画像と比較して大きいPOC値を有する場合、リストYのための対象参照画像は、現在の画像と比較して小さいPOC値を有するものとする。
3.一例において、リストYのための対象参照画像は、リストY内のすべての後方参照画像(RefInLXが前方である場合)または前方参照画像(RefInLXが後方である場合)のうち、現在の画像と比較してPOC距離が最小のものとする。
8.SMVDが許可されるかどうかは、ブロックの符号化情報に依存しうる。
a.一例において、符号化情報は、MVD精度情報と、双方向予測における予測サンプルの重みとを含んでもよい。
b.一例において、双予測ブロックに対して不等な重みが選択された場合、SMVDは許可されない場合もある。
i.代替的に、SMVDモードにおいて、不等な重みモードは許可されない場合もある。
ii.SMVDが許可されない場合、SMVDに関連するすべての構文要素は、信号通知されなくても、且つ/または暗黙的に導出されなくてもよい。
iii.不等な重みが許可されない場合、不等な重みに関するすべての関連する構文要素は、信号通知されず、且つ/または暗黙的に導出されない場合もある。
iv.
c.一例において、SMVDは、特定のMVD/MV精度では、許可されない場合もある。
i.例えば、N画素MV/MVD精度の場合、SMVDは許可されない場合もあり、例えば、N=1,4である。
ii.代替的に、SMVDモードにおいて、AMVRは許可されない場合もある。例えば、SMVDモードでは、N画素MV/MVD精度のみが許可されてもよく、例えば、N=1/4である。
iii.SMVDが許可されない場合、SMVDに関するすべての構文要素は、信号通知されず、暗黙的に導出されてもよい。
iv.AMVRが許可されない場合、AMVRに関するすべての構文要素は、信号通知されず、暗黙的に導出されてもよい。
9.DMVRまたは/および他のDMVD方法は、SMVDモードで有効化されてもよい。
a.一例において、SMVDモードにおいて、MV/MVD精度がN画素である場合、DMVRまたは/およびは他のDMVD方法を使用して、mvDmvrでMVDを微調整してもよい。mvdDmvrは、M画素の精度である。N,M=1/16,1/8,1/4,1/2,1,2,4,8,16等
b.一例において、Mは、N以下であってもよい。
c.一例において、MVDは、SMVDモードで信号通知されなくてもよく、代わりに、DMVRまたは/および他のDMVD方法を適用してMVDを生成してもよい。
i.さらに、代替的に、AMVR情報を信号通知せず、MV/MVD精度を予め規定された値に導出してもよい(例えば、MVDは1/4画素の精度を有する)。
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が現在の画像の前続画像である場合にのみ、表示順に信号通知されてもよい。
10.オールゼロMVDが許可されるかどうかは、ブロックの符号化情報に依存してもよい。例えば、符号化情報は、SMVDモード情報、ブロックの動き情報を含んでもよい。
a.一例において、SMVDモードでは、オールゼロMVDは許可されない場合もある。
i.例えば、SMVDモードにおいて水平MVDがゼロである場合、垂直MVDを直接符号化する代わりに、垂直MVDを符号化する前に、1だけ減少させても(例えば、垂直MVDが正である場合)または1だけ増加させても(例えば、垂直MVDが負である場合)よく、または、復号化後に、1だけ増加させても(垂直MVDが正である場合)または1だけ減少させても(垂直MVDが負である場合)よい。
ii.例えば、SMVDモードにおいて垂直MVDがゼロである場合、水平MVDを直接符号化する代わりに、水平MVDを符号化する前に、1だけ減らしても(例えば、水平MVDが正である場合)または1だけ増やしても(例えば、水平MVDが負である場合)よく、また、復号化後に、1だけ増やしても(水平MVDが正である場合)または1だけ減らしても(水平MVDが負である場合)よい。
b.一例において、非SMVDモードにおいて、オールゼロMVDは許可されない場合もある。
i.例えば、非SMVDモードにおいて、ブロックの参照画像がSMVDモードブロックで使用される導出された参照画像と同じである場合、オールゼロMVDは許可されない場合もある。
1.例えば、非SMVDモードにおいて、第1のK-1個のMVD成分がゼロである場合、合計でK個のMVD成分が存在するとする。そして、K番目のMVD成分を直接符号化する代わりに、符号化する前に、1だけ減少させても(例えば、正である場合)または1だけ増加させてもよく(例えば、負である場合)、また、復号化した後に、1だけ増加させても(例えば、正である場合)または1だけ減少させてもよい(例えば、負である場合)。
11.最も近い参照画像(前方または後方)を見つける代わりに、現在の画像と等距離を有する2つの対象参照画像を見つけることをより高い優先順位で行うことが提案される。
a.リスト0およびリスト1において、N組の参照画像があり、(RefL0i,RefL1i)で表され、iが[0,N-1]であるとすると、N組のうちの1組を、SMVDに使用される対象の2つの参照画像として選択してもよい。
i.さらに、代替的に、1つの対に対して、一方の参照画像はリスト0からのものであり、他方の参照画像はリスト1からのものである。
ii.さらに、代替的に、1つの対に対して、一方の参照画像はリスト0からの前方参照画像であり、他方の参照画像はリスト1からの後方参照画像である。
iii.さらに、代替的に、1つの対に対して、一方の参照画像はリスト0からの後方参照画像であり、他方の参照画像はリスト1からの前方参照画像である。
iv.さらに、代替的に、1つの対に対して、一方の参照画像は後方参照画像であり、他方の参照画像は前方参照画像であり、両方とも同じ参照画像リストからのものである。
b.リスト0およびリスト1において、N組の参照画像があり、(RefL0i,RefL1i)で表され、iが[0,N-1]であるとすると、現在の画像との間の絶対POC距離が最小または最大であるN組のうちの1組を、SMVDに使用される対象2つの参照画像として選択してもよい。
c.参照画像リストにこのような組がない場合、現在の画像とのPOC距離に従って、例えば、現在の方法または上述した方法を使用して、対象参照画像を選択してもよい。
12.2つの対象参照画像が現在の画像と等しくない距離にある(すなわち、currPocDiffL0!=currPocDiffL1)場合、SMVDを無効化することが提案される。
a.さらに、代替的に、SMVDに関連する構文要素(例えば、
【0096】
【0097】
)の信号通知をスキップしてもよく、SMVDを使用しないと推測される。
13.2つの参照画像および現在の画像のPOC値に従って、参照画像リストY(Yが1-Xである)の信号通知されたMVDから参照画像リストXのMVDを導出する符号化方法。信号送信された参照画像リストYのMVDが、MvdLY[0]およびMvdLY[1]で表される水平および垂直成分を有するMvdLYであるとすると、(MvdLX[0],MvdLX[1])で表される参照画像リストXのMVDは、以下の方法で導出されてもよい。
a.一例において、MvdLX[0]=MvdLY[0]*(POC(targetRef in List X)-POC(current picture))/(POC(targetRef in List Y)-POC(current picture))
b.一例において、MvdLX[1]=MvdLY[1]*(POC(targetRef in List X)-POC(current picture))/(POC(targetRef in List Y)-POC(current picture))
c.一例において、上記方法は、SMVDモードに適用されてもよく、リスト1のMVDとしてリスト0の反対のMVDを常に使用する代わりに、リスト1のMVDを導出する時に、POC距離に従ってリスト0のMVDをスケーリングすることが提案される。
d.同様に、SMVDにおいて、リスト1に対してMVDが信号通知された場合、リスト0のMVDを導出するとき、POC距離に従ってリスト1のMVDをスケーリングすることが提案される。
e.代替的に、上記方法は、対称MV符号化モードに適用可能であり、一方の参照画像リストのMVの情報を信号通知せず、スケーリングによって他の参照画像リストから導出してもよい。
14.一方の参照画像リストのMVDが他方の参照画像リストに関連付けられた他方から導出される場合、導出されるMVDの範囲の制限を満たすものとする。
a.一例において、SMVD法によって第1のMVDから導出された第2のMVDのx成分および/またはy成分は、所定の範囲内になければならない。
b.一例において、第2のMVDのx成分および/またはy成分は、所定の範囲に従ってクリッピングされるか、または条件付きで修正されなければならない。
i.例えば、MzをMz=Clip3(-2N,2N-1,Mz)でクリッピングする。ここで、Mzは、第2のMVDのx成分またはy成分を表す。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
ii.例えば、MzをMz=Clip3(-2N+1,2N-1,Mz)でクリッピングする。ここで、Mzは、第2のMVDのx成分またはy成分を表す。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
iii.例えば、Mzは、Mz=2Nであれば、Mz=2N-1で修正される。ここで、Mzは、第2のMVDのx成分またはy成分を表す。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
c.一例において、第2のMVDのx成分および/またはy成分は、適合ビットストリームにおける所定の範囲内にあるべきである。
i.一例において、第2のMVDのx成分および/またはy成分は、適合ビットストリームにおいて、包括的に[-2N,2N-1]の範囲内にあるべきである。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
ii.一例において、第2のMVDのx成分および/またはy成分は、適合ビットストリームにおいて、包括的に[-2N+1,2N-1]の範囲内にあるべきである。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
d.一例において、第1のMVDのx成分および/またはy成分は、SMVD法によって第1のMVDから導出された第2のMVDのx成分および/またはy成分が第2の所定の範囲内となるように、第1の所定の範囲に従ってクリップまたは条件付きで修正されるべきである。
i.例えば、MzをMz=Clip3(-2N+1,2N-1,Mz)でクリッピングする。ここで、Mzは、第1のMVDのx成分またはy成分を表す。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
ii.例えば、Mzは、Mz=-2Nであれば、Mz=-2N+1で修正される。ここで、Mzは、第1のMVDのx成分またはy成分を表す。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
e.一例において、第1のMVDのx成分および/またはy成分は、SMVD法によって第1のMVDから導出された第2のMVDのx成分および/またはy成分が第2の所定の範囲内となるように、適合ビットストリームにおける第1の所定の範囲内にあるべきである。
i.一例において、第1の所定の範囲は、SMVDが適用されない場合、信号通知されたMVDの所定の範囲と異なってもよい。
ii.一例において、第1のMVDのx成分および/またはy成分は、適合ビットストリームにおいて、包括的に[-2N+1,2N-1]の範囲内にあるべきである。Nは、16、または18などの整数である。
1.例えば、Nは、15または17であってもよい。
f.代替的に、信号通知されたMVDを[-2N,2N-1]内に限定する代わりに、[-2N+1,2N-1]内に限定することが提案される。
i.一例において、SMVDのためのMVD範囲(または別の参照画像リストからMVDを導出する他のツール)は、非SMVD符号化ツールのためのMVDとは異なるように設定されてもよい。
1. 例えば、信号通知されたMVDが[-2N+SMVDFlag,2N-1]内にあり、SMVDが適用されると、SMVDFlagは1となり、SMVDが適用されない場合は、SMVDFlagは0である。
g.一例において、MVDに対するクリッピングまたは制約(例えば、VVCまたは上述したような)は、MVの解像度に従ってMVDを修正する前に行われてもよい。
i.代替的に、クリッピングまたは制約(例えば、VVCまたは上述したような)は、MVの解像度に従ってMVDを修正した後に行われてもよい。
h.一例において、MVDにおけるクリッピングまたは制約(例えば、VVCにおける、または上記で開示された)は、MVの解像度に依存してもよい。
【0098】
5.実施形態
太字の顔イタリック体には、VVC作業草案第5版のトップの変更が強調されている。削除したテキストには
【0099】
【0100】
の印が付けられています。
【0101】
5.1 実施形態1 mvd_l1_zero_flagが真の場合のSMVDの使用方法
【0102】
【0103】
5.2 実施形態2 SMVDに使用される参照画像の選択について
【0104】
5.2.2 一例
【0105】
このサブセクションは、第4章の箇条書き4に対応する1つの例を説明する。
【0106】
8.3.5 対称動きベクトル差参照インデックスのための復号化処理
本処理では、ある符号化ユニットにおいてsym_mvd_flagが1である場合、対称動きベクトル差をとるためのリスト0およびリスト1の参照画像インデックスを指定するRefIdxSymL0およびRefIdxSymL0を出力する。
Xが0であり、1である変数RefIdxSymLXは、以下のように導出される。
- 変数currPicは、現在の画像を指定する。
- RefIdxSymL0は、-1に設定される。
- i=0..NumRefIdxActive[0]-1を有するそれぞれのインデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])<DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])あるいはRefIdxSymL0は-1である。
- RefIdxSymL1は、-1に設定される。
- i=0..NumRefIdxActive[1]-1のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])>DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])あるいはRefIdxSymL1は-1である。
- RefIdxSymL0が-1に等しいとともに
【0107】
【0108】
RefIdxSymL1が-1に等しい場合、以下が適用される。
- i=0..NumRefIdxActive[0]-1]のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])>DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])または RefIdxSymL0 は-1に等しい。
- i=0..NumRefIdxActive[1]-1]のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])<DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])または RefIdxSymL1 は-1に等しい。
【0109】
5.2.2 ひとつの例
このサブセクションは、第4章の箇条書き5に対応する1つの例を与える。
【0110】
8.3.5 対称動きベクトル差参照インデックスのための復号化処理
本処理では、ある符号化ユニットにおいてsym_mvd_flagが1である場合、対称動きベクトル差をとるためのリスト0およびリスト1の参照画像インデックスを指定するRefIdxSymL0およびRefIdxSymL0を出力する。
Xが0であり、1である変数RefIdxSymLXは、以下のように導出される。
- 変数currPicは、現在の画像を指定する。
- RefIdxSymL0は、-1に設定される。
- i=0..NumRefIdxActive[0]-1を有する各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])<DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])あるいはRefIdxSymL0は-1である。
- RefIdxSymL1は、-1に設定される。
- i=0..NumRefIdxActive[1]-1のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])>DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])あるいはRefIdxSymL1は-1である。
- RefIdxSymL0が-1であるか、またはRefIdxSymL1が-1である場合、以下が適用される。
【0111】
【0112】
- i=0..NumRefIdxActive[0]-1,]のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])>DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])または RefIdxSymL0 は-1に等しい。
- i=0..NumRefIdxActive[1]-1のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])<DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])または RefIdxSymL1 は-1に等しい。
【0113】
5.2.3 一つの例
【0114】
このサブセクションでは、第4章の箇条書き6に対応する1つの例を説明する。
【0115】
8.3.5 対称動きベクトル差参照インデックスのための復号化処理
本処理では、ある符号化ユニットにおいてsym_mvd_flagが1である場合、対称動きベクトル差をとるためのリスト0およびリスト1の参照画像インデックスを指定するRefIdxSymL0およびRefIdxSymL0を出力する。
Xが0であり、1である変数RefIdxSymLXは、以下のように導出される。
- 変数currPicは、現在の画像を指定する。
- RefIdxSymL0は、-1に設定される。
- i=0..NumRefIdxActive[0]-1のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])<DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])あるいはRefIdxSymL0は-1である。
- RefIdxSymL1は、-1に設定される。
- i=0..NumRefIdxActive[1]-1のインデックスiごとに、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])>DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])あるいはRefIdxSymL1は-1である。
- RefIdxSymL0が-1であるか、またはRefIdxSymL1が-1である場合、以下が適用される。
- i=0..NumRefIdxActive[0]-1を有する各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL0をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[0][i])<0,
- DiffPicOrderCnt(currPic,RefPicList[0][i])>DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL0])あるいはRefIdxSymL0は-1である。
- i=0..NumRefIdxActive[1]-1を有する各インデックスiに対して、以下が適用される。
- 以下のすべての条件が真である場合、RefIdxSymL1をiに設定する。
- DiffPicOrderCnt(currPic,RefPicList[1][i])>0,
- DiffPicOrderCnt(currPic,RefPicList[1][i])<DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])あるいはRefIdxSymL1は-1である。
【0116】
【0117】
5.3 実施形態#1 mvd_l1_zero_flagが真の場合のSMVDの使用方法
作業草案の変更は太字のイタリック体で記す。
【0118】
【0119】
は動きベクトル成分の差の符号を以下のように指定する。
- mvd_sign_flag[compIdx]=0である場合、対応する動きベクトル成分の差は正の値を有する。
- そうでない場合(mvd_sign_flag[compIdx]が1に等しい場合)、対応する動きベクトル成分の差は負の値を有する。
mvd_sign_flag[compIdx]が存在しない場合、0に等しいと推測される。
compIdx=0..1の場合、動きベクトル差lMvd[compIdx]は、以下のように導出される。
lMvd[compIdx]=abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx]) (7-157)
lMvd[compIdx]の値は、-215から215-1の範囲に含まれるものとする。
【0120】
【0121】
図14は、映像処理装置1400のブロック図である。装置1400は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。この装置1400は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に具現化されてもよい。この装置1400は、1つ以上の処理装置1402と、1つ以上のメモリ1404と、映像処理ハードウェア1406と、を備えていてもよい。1つまたは複数のプロセッサ1402は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)1404は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア1406は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0122】
図15は、映像処理の方法1500の一例を示すフローチャートである。方法1500は、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用するように決定すること(1502)を含む。方法1500は、SMVDモードを使用して変換を行うこと(1504)を含む。このビットストリーム表現は、参照リスト0または参照リスト1の一方に対して動きベクトル差(MVD)モードの使用を無効化することを示す。
【0123】
以下の例示的なリストは、本明細書に記載される技術的課題等に対処することができる実施形態を提供する。
【0124】
1.映像処理方法であって、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用するように決定することと、前記SMVDモードを使用して前記変換を行うこととを含み、前記ビットストリーム表現は、参照リスト0または参照リスト1の一方に対して動きベクトル差(MVD)モードの使用を無効化することを示す、方法。
【0125】
2.前記ビットストリーム表現は、前記MVDモードを参照リスト1に使用できないようにすることを示し、前記変換は、関係を使用して、前記参照リスト0に対応する動き候補から、前記参照リスト1に対応する動き候補を導出することを含む、例1に記載の方法。
【0126】
3.前記関係は、前記参照リスト0に対応する動き候補をミラーリングすることで、前記参照リスト1に対応する動き候補を使用することを規定する、例2に記載の方法。
【0127】
例1~3の追加の実施形態は、第4章の第1項に記載されている。
【0128】
4.映像処理方法であって、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、2つの対象参照画像からの画像における参照ブロックの参照画像の参照リスト0および参照リスト1からの対称的な変位に基づいて前記変換のために生成された2つの追加の動き候補を使用する対称動きベクトル差(SMVD)モードを使用することを決定し、前記SMVDモードを使用して前記変換を行うことを含み、前記ビットストリーム表現は、参照リスト1のための動きベクトル差(MVD)情報を含む、方法。
【0129】
5.前記参照リスト1のための前記MVD情報は、前記現在の映像ブロックが位置する映像ユニットの関数である、例4に記載の方法。
【0130】
6.前記映像ユニットは、スライスまたはタイルグループまたはタイルまたはブリックまたは符号化ユニットである、例5に記載の方法。
【0131】
7.前記参照リスト1のアイデンティティは、前記現在の映像ブロックの近傍の映像ブロックに使用される参照リストに依存する、例4に記載の方法。
【0132】
8.前記現在の映像ブロックまでの時間的距離が前記参照リスト0より小さいために、前記参照リスト1を選択する、例4に記載の方法。
【0133】
9.前記現在の映像ブロックまでの時間的距離が前記参照リスト0よりも大きいために、前記参照リスト1を選択する、例4に記載の方法。
【0134】
例4~9の追加の実施形態は、第4章の第2項に記載されている。
【0135】
10.参照リスト0と参照リスト1とが同一である、例1~9のいずれかに記載の方法。
【0136】
11.前記参照リスト0および前記参照リスト1のうちの一方が前方予測に使用され、他方が後方予測に使用される、例10に記載の方法。
【0137】
例10~11の追加の実施形態は、第4章の第3項に記載されている。
【0138】
12.現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、画像における参照ブロックの参照リスト0および参照画像の参照リスト1からの対称的な変位に基づいて前記変換のために生成された2つの追加の動き候補を使用する対称動きベクトル差(SMVD)モードを使用することを決定し、前記SMVDモードを使用して前記変換を行うことを含み、SMVDは、第1のステップを使用して、各参照画像リストを構文解析し、対象参照画像を特定することで、2つの追加動き候補を生成する、映像処理方法。
【0139】
13.前記SMVDは、第1のステップの後に、第2のステップをさらに選択可能に使用して、2つの追加の動き候補を生成し、対象参照画像を特定する、例12に記載の方法。
【0140】
14.第2のステップは、第1のステップにおいて見つかった参照画像の数に基づいて選択可能である、例13に記載の方法。
【0141】
例12~14の追加の実施形態は、第4章の第4項に記載されている。
【0142】
15.映像処理方法であって、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用するように決定することと、前記SMVDモードを使用して前記変換を行うこととを含み、前記SMVDは、リスト0の対象参照画像をリスト0で前方に検索し、リスト1の対象参照画像を後方に検索することを含む第1のステップ、またはリスト0の対象参照画像をリスト0で後方に検索し、リスト1の対象参照画像をリスト1で前方に検索することを含む第2のステップのいずれかで対象参照画像インデックスが両方とも見つかるように、前記2つの追加の動き候補を生成する、変換を行うことと、を含む、方法。
【0143】
例15の追加の実施形態は、第4章の第5項に記載されている。
【0144】
16.現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用することを決定し、前記SMVDモードを使用して前記変換を行うこととを含み、前記2つの対象参照画像のうちの一方の画像オーダカウントが前記現在の映像ブロックの画像オーダカウントより大きく、前記2つの対象参照画像の別の画像オーダカウントが前記現在の映像ブロックの画像オーダカウントより小さい、映像処理方法。
【0145】
17.前記SMVDモードは、前記現在の映像ブロックの画像オーダカウントと前記2つの対象参照画像との間の距離を確認することをさらに含む、例16に記載の方法。
【0146】
例16~17の追加の実施形態は、第4章の第6項に記載されている。
【0147】
18.条件に基づいて、現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードを使用するか否かを決定することと、前記決定に基づいて前記変換を行うこととを含む映像処理方法。
【0148】
19.前記条件は、現在の映像ブロックの情報を符号化することを含む、例18に記載の方法。
【0149】
20.前記条件は、現在の映像ブロックの双方向予測のための動きベクトル差または予測重みを含む、例19に記載の方法。
【0150】
21.双方向予測に不等な重みが使用されることを条件として、SMVDモードを無効にする、例18に記載の方法。
【0151】
22.動きベクトル精度が整数値であることを条件として、SMVDモードを無効化する、例18に記載の方法。
【0152】
例18~22の追加の実施形態は、第4章の第8項に記載されている。
【0153】
23.条件に基づいて、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モードと、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換のためのデコーダ側動きベクトル差(DMVD)符号化モードとを使用するように決定することと、前記決定することに基づいて前記変換を行うこととを含む映像処理方法。
【0154】
24.前記DMVDは、デコーダ側動きベクトル微調整を含む、例1に記載の方法。
【0155】
25.前記条件は、前記変換中に動きベクトルおよび動きベクトル差の計算にN個のピクセル精度を使用することを含み、前記DMVDは、M個の画素解像度で微調整し、NおよびMは整数または分数である、例23~24のいずれかに記載の方法。
【0156】
26.N、M=1/16、1/8、1/4、1/2、1、2、4、8、または16である、例23~25のいずれかに記載の方法。
【0157】
例23~26の追加の実施形態は、第4章の第9項に記載されている。
【0158】
27.条件に基づいて、参照画像の参照リスト0および参照リスト1からの2つの対象参照画像における参照ブロックの対称的な変位に基づいて前記変換のために2つの追加の動き候補が生成される対称動きベクトル差(SMVD)モード、および現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換のためのデコーダ側動きベクトル差(DMVD)符号化モードに対して、オールゼロ動きベクトル差を使用するか否かを決定することと、前記決定することに基づいて前記変換を行うこととを含む映像処理方法。
【0159】
28.前記条件は、前記オールゼロ動きベクトル差を使用することを禁止する、例27に記載の方法。
【0160】
例27~28の追加の実施形態は、第4章の第10項に記載されている。
【0161】
29.現在の映像ブロックに関連付けられた複数の参照画像から第1の参照画像および第2の参照画像を選択することと、選択された第1および第2の参照画像に基づいて、前記現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換を行うこととを含み、前記第1の参照画像と、前記現在の映像ブロックを含む現在の画像との間の第1の距離と、前記第2の参照画像と前記現在の画像との間の第2の距離とが等しい、映像処理方法。
【0162】
30.前記第1の参照画像がリスト0から選択され、前記第2の参照画像がリスト1から選択される、例29に記載の方法。
【0163】
31.前記第1の参照画像がリスト0からの前方参照画像であり、前記第2の参照画像がリスト1からの後方参照画像である、例29に記載の方法。
【0164】
32.前記第1の参照画像がリスト0からの後方参照画像であり、前記第2の参照画像がリスト1からの前方参照画像である、例29に記載の方法。
【0165】
33.前記第1の参照画像が前方参照画像であり、前記第2の参照画像が後方参照画像であり、前記第1の参照画像と前記第2の参照画像が同じリストからのものである、例29に記載の方法。
【0166】
例29~33の追加の実施形態は、第4章の第11項に記載されている。
【0167】
34.第1の参照画像と、現在の映像ブロックを含む現在の画像との間の第1の距離と、第2の参照画像と前記現在の画像との間の第2の距離とが等しくないことを判定することと、前記判定に基づいて、また、前記下内の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換のために、前記現在の映像ブロックのための対称動きベクトル差(SMVD)モードを無効化することと、を含む、映像処理方法。
【0168】
35.前記ビットストリーム表現は、1つ以上のSMVD関連構文要素を信号通知することを除外する、例34に記載の方法。
【0169】
例34~35の追加の実施形態は、第4章の第12項に記載されている。
【0170】
36.現在の映像ブロックに対して、第2の参照画像リストの第2のMVDに基づいて第1の参照画像リストの第1の動きベクトル差(MVD)を導出することと、前記導出することに基づいて、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換を行うことと、を含み、前記第1のMVDの範囲は制限されている、映像処理方法。
【0171】
37.前記導出することは、対称動きベクトル差(SMVD)方法に基づく、例36に記載の方法。
【0172】
38.前記範囲は[-2N,2N-1]であり、Nは正の整数である、例36または37に記載の方法。
【0173】
39.前記範囲は[-2N+1,2N-1]であり、Nは正の整数である、例36または37に記載の方法。
【0174】
40.N=16またはN=18である、例38または39に記載の方法。
【0175】
例36~40の追加の実施形態は、第4章の第14項に記載されている。
【0176】
41.前記変換は、前記ビットストリーム表現から前記現在の映像ブロックの画素値を生成することを含む、例1~40のいずれかに記載の方法。
【0177】
42.前記変換は、前記ビットストリーム表現から前記現在の映像ブロックの画素値を生成することを含む、例1~40のいずれかに記載の方法。
【0178】
43.例1~42の1つ以上に実装するように構成された処理装置を備える、映像処理装置。
【0179】
44.前記コードが記憶されたコンピュータ読み取り可能な媒体であって、前記コードが処理装置によって実行されると、処理装置に、例1~42の1つ以上に記載の方法を実装させる。
【0180】
図16は、映像処理の方法1600の一例を示すフローチャートである。方法1600は、1602において、映像の現在の画像のブロックと第1のブロックのビットストリーム表現との間での変換のために、前記ブロックの符号化情報に基づいて、前記ブロックに対して対称動きベクトル差(SMVD)モードが許容されるかどうかを判定し、1604において、前記に基づいてこの変換を行うことを含む。
【0181】
いくつかの例では、SMVDモードにおいて、動きベクトル差(MVD)は、参照リストXおよび参照リストYを含む2つの参照リストのうち、Y=1-Xである参照リストYに対してのみ信号通知されたMVDは、X=0または1である参照リストXにおけるMVDを導出するために使用される。
【0182】
いくつかの例において、X=0である。
【0183】
いくつかの例では、前記符号化情報は、参照リストXにおけるMVDが強制的にゼロ、X=0または1であるかを示すフラグを含む。
【0184】
いくつかの例では、フラグが、参照リストXにおけるMVDが強制的にゼロにされることを示す場合であっても、このブロックに対してSMVDモードが許可される。
【0185】
いくつかの例では、フラグが、参照リスト1におけるMVDが強制的にゼロにされることを示す場合、参照リスト1におけるMVDは強制的にゼロにされ、SMVDモードはブロックに対して許可される。
【0186】
いくつかの例では、フラグが、参照リスト1におけるMVDが強制的にゼロにされることを示す場合、参照リスト1におけるMVDは、強制的にゼロにされるのではなく、参照リスト0における関連するMVDから導出され、このブロックに対してSMVDモードが許可される。
【0187】
いくつかの例では、フラグが、参照リストXにおけるMVDが強制的にゼロにされることを示す場合、このブロックに対してSMVDモードは許可されない。
【0188】
いくつかの例では、SMVDモードが許可されない場合、SMVDモードに関連するすべての構文要素は、信号通知される代わりに暗黙的に導出される。
【0189】
いくつかの例では、MVDが信号通知される必要がある参照リストYは、ビットストリームにおける指示によって信号通知される。
【0190】
いくつかの例では、この指示は、シーケンス、画像、スライス、タイル、映像ユニットレベルのうちの少なくとも1つのレベルで信号通知される。
【0191】
いくつかの例では、この指示は、シーケンスパラメータセット(SPS)および画像パラメータセット(PPS)、画像ヘッダ、スライスヘッダ、およびタイルグループヘッダのうちの少なくとも1つにおいて信号通知される。
【0192】
いくつかの例では、MVDが信号通知される必要がある参照リストYは、参照リストにおける参照画像に従って導出される。
【0193】
いくつかの例では、MVDを信号通知する必要がある参照リストYは、2つの参照リストにおける2つの参照画像およびAbs(currPocDiffL0)およびAbs(currPocDiffL1)の対応する2つのパラメータに従って導出される。ここで、Abs(currPocDiffL0)は、参照リスト0における現在の画像から参照画像までのPOC(画像オーダカウント)距離の絶対値を示し、Abs(currPocDiffL1)は、参照リスト1の現在の画像から参照画像までのPOC距離の絶対値を示す。
【0194】
いくつかの例では、Abs(currPocDiffL0)がAbs(currPocDiffL1)よりも大きい場合、参照リスト0のためのMVDが信号通知され、そうでない場合、参照リスト1のためのMVDが信号通知される。
【0195】
いくつかの例では、Abs(currPocDiffL0)がAbs(currPocDiffL1)よりも大きい場合、参照リスト1のためのMVDが信号通知され、そうでない場合、参照リスト0のためのMVDが信号通知される。
【0196】
いくつかの例では、Abs(currPocDiffL0)がAbs(currPocDiffL1)以上である場合、参照リスト0のためのMVDが信号通知され、そうでない場合、参照リスト1のためのMVDが信号通知される。
【0197】
いくつかの例では、Abs(currPocDiffL0)がAbs(currPocDiffL1)以上である場合、参照リスト1のためのMVDが信号通知され、そうでない場合、参照リスト0のためのMVDが信号通知される。
【0198】
いくつかの例では、Abs(currPocDiffL0)がAbs(currPocDiffL1)である場合、参照リスト0のためのMVDが信号通知され、そうでない場合、参照リスト1のためのMVDが信号通知される。
【0199】
いくつかの例では、Abs(currPocDiffL0)がAbs(currPocDiffL1)である場合、参照リスト1のためのMVDが信号通知され、そうでない場合、参照リスト0のためのMVDが信号通知される。
【0200】
いくつかの例では、MVDが信号通知される必要がある参照リストYは、1つの映像ユニットから別の映像ユニットに変更される。
【0201】
いくつかの例では、前記映像ユニットは、スライス、タイルグループ、タイル、ブリックおよび符号化ユニット(CU)のうち少なくとも1つを含む。
【0202】
いくつかの例では、参照リストYの選択は前記ブロックの近傍のブロックの参照画像情報に依存する。
【0203】
いくつかの例では、参照リストYの選択は、2つの参照リストにおける2つの参照画像、および対応する2つのパラメータPocDist0およびPocDist1に依存し、PocDist0は、参照リスト0の参照画像から現在の画像までの画像オーダカウント(POC)距離の絶対値であり、PocDist1は、参照リスト1の参照画像から現在の画像までのPOC距離の絶対値である。
【0204】
いくつかの例では、PocDist0とPocDist1との間のPOC距離の絶対値が小さい参照リストを参照リストYとして選択する。
【0205】
いくつかの例では、PocDist0とPocDist1との間のPOC距離の絶対値が大きい参照リストを参照リストYとして選択する。
【0206】
いくつかの例では、PocDist0とPocDist1が等しい場合、参照リスト0または参照リスト1のいずれか一方を参照リストYとして選択する。
【0207】
いくつかの例では、SMVDモードにおいて、2つの参照画像は両方とも1つの同じ参照リストから選択される。
【0208】
いくつかの例では、2つの参照画像のうちの1つは、POCが現在のPOCより小さい前方参照画像であり、他方は、POCが現在のPOCよりも大きい後方参照画像である。
【0209】
いくつかの例では、現在のPOCより小さいすべての参照画像のうち、POCが現在のPOCに最も近い第1の参照画像と、POCが現在のPOCより大きいすべての参照画像のうち、現在のPOCに最も近い第2の参照画像とを見出すために、参照リスト0および参照リスト1におけるすべての参照画像をチェックする。
【0210】
いくつかの例では、SMVDモードは、対象参照画像の導出処理を含み、このステップは、参照リスト0における前方対象参照画像を検索する第1のステップと、参照リスト1における後方対象参照画像を検索する第2のステップと、参照リスト0における後方対象参照画像を検索し、参照リスト1における前方対象参照画像を検索する第2のステップとを含む。
【0211】
いくつかの例では、第1のステップにより少なくとも1つの対象参照画像を見出した場合、SMVDモードの第2のステップをスキップする。
【0212】
いくつかの例では、参照リスト0に1つの対象参照画像が見つかり、参照リスト1に対象参照画像が見つからなかった場合、SMVDモードの第2のステップはスキップされる。
【0213】
いくつかの例では、参照リスト0に1つの対象参照画像が見つからず、参照リスト1に1つの対象参照画像が見つかった場合、SMVDモードの第2のステップはスキップされる。
【0214】
いくつかの例では、第1のステップにより少なくとも1つの対象参照画像が見つからない場合、SMVDモードは許可されず、すべてのSMVD関連構文の信号通知はスキップされる。
【0215】
いくつかの例では、対象参照画像の導出処理において見つかった2つの対象参照画像は、POCが現在の画像より小さい前方参照画像と、POCが現在の画像よりも大きい後方参照画像とを含む。
【0216】
いくつかの例では、2つの対象参照画像の導出処理の後、2つの対象参照画像のPOCをチェックし、2つの対象参照画像が両方とも現在の画像より小さいPOCまたは現在の画像よりも大きいPOCを有する場合、対象参照画像を利用不可能となるようにリセットする。
【0217】
いくつかの例では、RefIdxSymL0およびRefIdxSymL1を-1にリセットすることによって、対象参照画像を利用不可能となるようにリセットすることができ、RefIdxSymL0は、参照リスト0における対象参照画像のインデックスであり、RefIdxSymL1は、参照リスト0における対象参照画像のインデックスである。
【0218】
いくつかの例では、(RefIdxSymL1!=-1&&RefIdxSymL0!=-1&&DiffPicOrderCnt(currPic,RefPicList[0][RefIdxSymL1])*DiffPicOrderCnt(currPic,RefPicList[1][RefIdxSymL1])>0)が真である場合、対象参照画像は利用不可能となるようにリセットされ、DiffPicOrderCnt(pic0,pic1)は、画像pic0から画像pic1にPOC距離を戻す。
【0219】
いくつかの例では、SMVDモードは対象参照画像の導出処理を含み、参照リスト0から前方参照画像を見つけ、参照リスト1から後方参照画像を見つけるという制限、または参照リスト1から前方参照画像を見つける、参照リスト0から後方参照画像を見つけるという制限を排除する。
【0220】
いくつかの例では、SMVDモードで使用される対象参照画像は、第1のチェックおよび第2のチェックを含む2つの従属チェックにより導出され、各チェックは参照リスト0および参照リスト1の一方に使用される。
【0221】
いくつかの例では、第1のチェックは、参照リストXにおける1つの参照画像を見つけることであり、Xが0または1であり、第2のチェックは、Y=1-Xにおける参照リストY,第1のチェックおよび参照画像の出力に従って、参照リストYにおける1つの参照画像を見つけることである。
【0222】
いくつかの例では、参照リストXは、各参照画像と現在の画像との間のPOC距離を、所与の順番に従って前方または後方に関係なく算出する。
【0223】
いくつかの例では、前記所与の順番は参照画像インデックスの昇順または降順であることができる。
【0224】
いくつかの例では、POC距離が最も小さい参照画像を参照リストXの対象参照画像として選択され、その参照画像をRefInLXとする。
【0225】
いくつかの例では、POC距離が最も大きい参照画像を参照リストXの対象参照画像として選択され、その参照画像をRefInLXとする。
【0226】
いくつかの例では、参照画像RefInLXに従って、参照リストYから、参照リストYの対象参照画像として1つの参照画像を選択する。
【0227】
いくつかの例では、参照画像RefInLXのPOC距離が現在の画像と比較して小さい場合、参照リストYのための対象参照画像のPOC距離は現在の画像と比較して大きい。
【0228】
いくつかの例では、参照画像RefInLXのPOC距離が現在の画像と比較して大きい場合、参照リストYのための対象参照画像のPOC距離は現在の画像と比較して小さい。
【0229】
いくつかの例では、参照画像RefInLXが前方参照画像であるとき、参照リストYのための対象参照画像は、すべての後方参照画像のうち、現在の画像と比較して最小のPOC距離を有するものである。
【0230】
いくつかの例では、参照画像RefInLXが後方参照画像であるとき、参照リストYのための対象参照画像は、すべての前方参照画像のうち、現在の画像と比較して最小のPOC距離を有するものである。
【0231】
いくつかの例では、前記符号化情報は、動きベクトル(MV)情報、前記ブロックのMVD精度情報および双方向予測における予測サンプルの重みのうち少なくとも1つを含む。
【0232】
いくつかの例では、双予測ブロックに対して不等な重みが選択された場合、SMVDモードは許可されない。
【0233】
いくつかの例では、SMVDモードが許可されていない場合、SMVDモードに関するすべての関連する構文要素は、信号通知されず、且つ/または暗黙的に導出されない。
【0234】
いくつかの例では、SMVDモードにおいて、不等な重みは許可されない。
【0235】
いくつかの例では、不等な重みが許可されない場合、不均一な重みに関するすべての構文要素は、信号通知されず、且つ/または暗黙的に導出されない。
【0236】
いくつかの例では、SMVDモードは、特定のMVD精度および/またはMV精度のために許可されない。
【0237】
いくつかの例では、N画素MVD精度および/またはMV精度のために、SMVDモードは許可されない。ここで、N=1または4である。
【0238】
いくつかの例では、SMVDモードにおいて、MVD精度および/またはMVの精度のみが許容され、N=1/4である。
【0239】
いくつかの例では、SMVDモードが許可されていない場合、SMVDモードに関するすべての構文要素は、信号通知されず、暗黙的に導出される。
【0240】
いくつかの例では、SMVDモードにおいて、適応型動きベクトル差解像度(AMVR)は許可されない。
【0241】
いくつかの例では、AMVRが許可されていない場合、AMVRに関するすべての構文要素は、信号通知されず、暗黙的に導出される。
【0242】
いくつかの例では、SMVDモードにおいて、デコーダ側動きベクトル微調整(DMVR)または/および他の復号側動きベクトル導出(DMVD)方法が有効にされる。
【0243】
いくつかの例では、SMVDモードにおいて、MVおよび/またはMVD精度がN画素である場合、DMVRまたは/および他のDMVD方法を使用して、パラメータmvdDmvr、mvdDmvrがM画素精度でMVDを微調整する。ここで、N,M=1/16,1/8,1/4,1/2,1,2,4,8または16である。
【0244】
いくつかの例では、Mは、N以下である。
【0245】
いくつかの例では、SMVDモードにおいて、MVDは、信号通知される代わりに、DMVRまたは/および他のDMVD方法によって導出される。
【0246】
いくつかの例では、SMVDモードにおいて、AMVR情報は信号通知されず、MV/MVD精度は予め定義された値となるように導出され、予め規定された値は1/4画素精度である。
【0247】
いくつかの例では、SMVDモードにおいて、DMVR法または/および他のDMVD法が適用されるかどうかの指示が信号通知される。
【0248】
いくつかの例では、DMVRまたは/および他のDMVD法が適用される場合、MVDは信号通知されない。
【0249】
いくつかの例では、この指示は、特定のMVおよび/またはMVD精度のために信号通知される。
【0250】
いくつかの例では、この指示は、1画素または/および4画素のMVおよび/またはMVD精度のために信号通知される。
【0251】
いくつかの例では、この指示は、PocDist0がPocDist1に等しい場合にのみ信号通知され、PocDist0は現在の画像とRef0との間のPOC距離であり、PocDist1は現在の画像とRef1との間のPOC距離であり、Ref0は前の画像であり、Ref1は表示順で現在の画像の次の画像である。
【0252】
いくつかの例では、この指示は、PocDist0がPocDist1に等しい場合にのみ信号通知され、PocDist0は現在の画像とRef0との間のPOC距離であり、PocDist1は現在の画像とRef1との間のPOC距離であり、Ref0は次の画像であり、Ref1は表示順で現在の画像の前の画像である。
【0253】
いくつかの例では、SMVDモードにおいて、オールゼロMVDが許可されるかどうかは、SMVDモード情報とブロックの動き情報とを含むブロックの符号化情報に依存する。
【0254】
いくつかの例では、SMVDモードにおいて、オールゼロMVDは許可されない。
【0255】
いくつかの例では、SMVDモードにおいて水平MVDがゼロである場合、垂直MVDは、垂直MVDが正である場合、1だけ減らし、または垂直MVDが負である場合、符号化前に1だけ増やし、垂直MVDが正である場合、1だけ増やし、または垂直MVDが復号化後に負である場合、1だけ減らす。
【0256】
いくつかの例では、SMVDモードにおいて垂直MVDがゼロである場合、水平MVDは、水平直MVDが正である場合、1だけ減らし、または水平MVDが負である場合、符号化前に1だけ増やし、水平MVDが正である場合、1だけ増やし、または水平MVDが復号化後に負である場合、1だけ減らす。
【0257】
いくつかの例では、SMVDモードにおいて、最も近い参照画像を見つける代わりに、現在の画像と等距離の2つの対象参照画像を見つけることを優先する。
【0258】
いくつかの例では、参照リスト0および参照リスト1において、iが[0,N-1]である場合、(RefL0i,RefL1i)で表される参照画像がN組あり、N組のうちの1組が、SMVDモードで使用される2つの参照画像の対象として選択される。ここで、Nが整数である。
【0259】
いくつかの例では、1組の参照画像の場合、一方の参照画像は参照リスト0からのものであり、他方の参照画像は参照リスト1からのものである。
【0260】
いくつかの例では、1組の参照画像の場合、一方の参照画像は、参照リスト0からの前方参照画像であり、他方の参照画像は、参照リスト1からの後方参照画像である。
【0261】
いくつかの例では、1組の参照画像の場合、一方の参照画像は、参照リスト0からの後方参照画像であり、他方の参照画像は、参照リスト1からの前方参照画像である。
【0262】
いくつかの例では、1組の参照画像の場合、一方の参照画像は後方参照画像であり、他方の参照画像は前方参照画像であり、両方とも同じ参照画像リストからのものである。
【0263】
いくつかの例では、参照リスト0および参照リスト1において、iが[0,N-1]である場合、(RefL0i,RefL1i)で表される参照画像がN組あり、前記現在の画像へのPOC距離の最小または最大絶対値を有するN組のうちの1組が、SMVDモードで使用される2つの参照画像の対象として選択される。ここで、Nは整数である。
【0264】
いくつかの例では、参照リスト0および参照リスト1において、現在の画像と等距離の参照画像の組が存在しない場合、現在の画像とのPOC距離に基づいて対象参照画像を選択する。
【0265】
いくつかの例では、2つの対象参照画像が現在の画像と等しい距離にない場合、SMVDモードは許可されない。
【0266】
いくつかの例では、sym_mvd_flagを含むSMVD関連構文要素の信号通知はスキップされ、SMVDモードは使用されないと推測される。
【0267】
いくつかの例では、参照画像リストXのMVDは、2つの参照画像と現在の画像とのPOC距離に基づいて、参照画像リストYの信号通知されたMVDから導出される。
【0268】
いくつかの例では、参照リストYのために信号通知されたMVDが、MvdLY[0]およびMvdLY[1]によって表されるその水平および垂直成分を有するMvdLYである場合、(MvdLX[0],MvdLX[1])によって表される参照リストXのためのMVDは、以下のように導出される。
MvdLX[0]=MvdLY[0]*(POC(targetRef in List X)-POC(current picture))/(POC(targetRef in List Y)-POC(current picture))。
MvdLX[1]=MvdLY[1]*(POC(targetRef in List X)-POC(current picture))/(POC(targetRef in List Y)-POC(current picture))、
ここで、POC(targetRef in List X)は、参照リストXにおける参照画像のPOCであり、POC(targetRef in List Y)は、参照リストXにおける参照画像のPOCであり、POC(current picture)は、現在の画像のPOCである。
【0269】
いくつかの例では、SMVDモードにおいて、参照リストXのMVDを導出するとき、参照リストYの逆MVDを参照リストXのMVDとして使用する代わりに、参照リストYのMVDをPOC距離に従ってスケーリングする。ここで、X=1である。
【0270】
いくつかの例では、SMVDモードにおいて、参照リストXのMVDを導出するとき、参照リストYの逆MVDを参照リストXのMVDとして使用する代わりに、参照リストYのMVDをPOC距離に従ってスケーリングする。ここで、X=0である。
【0271】
図17は、映像処理の方法1700の一例を示すフローチャートである。方法1700は、ステップ1702において、1つの映像ブロックと第1のブロックのビットストリーム表現との間での変換のために、前例の方法に従ってブロックに対して対称動きベクトル(SMV)モードが許容可能であるかどうかを決定し、ステップ1704において、この決定に基づいてこの変換を行うことを含む。
【0272】
図18は、映像処理の方法1800の一例を示すフローチャートである。方法1800は、ステップ1802において、現在の映像の画像のブロックとこのブロックのビットストリーム表現との間での変換のために、このブロックに対して対称動きベクトル差(SMVD)モードが許容可能であるかどうかを決定し、このブロックにおいてSMVDモードが許容可能であるかどうかは、現在の画像の2つの対象参照画像の導出処理に依存し、この処理は、参照画像リスト0における前方対象参照画像を検索し、参照画像リスト1における後方対象参照画像を検索する第1のステップと、参照画像リスト0における後方対象参照画像を検索し、参照画像リスト1における前方対象参照画像を検索する第2のステップと、を含み、第1のステップと第2のステップの出力は互いに独立している。ステップ1804において、この決定に基づいてこの変換を行うことを含む。
【0273】
いくつかの例では、SMVDモードが許容されるかどうかは、第1のステップおよび第2のステップの一方のステップにおいて対象参照画像の両方が見つかったかどうかに依存する。
【0274】
いくつかの例では、第1のステップにおいて対象参照画像の両方が見つかった場合、SMVDモードが許可される。
【0275】
いくつかの例では、第2のステップにおいて対象参照画像の両方が見つかった場合、SMVDモードが許可される。
【0276】
いくつかの例では、第1のステップにおいて対象参照画像の両方が見つからず、第2のステップにおいて対象参照画像の両方が見つからない場合、SMVDモードは許可されない。
【0277】
いくつかの例では、第1のステップにおいて2つの対象参照画像のうち少なくとも1つの対象参照画像が見つからない場合、第2のステップが実行される。
【0278】
いくつかの例では、第2のステップを実行する前に、対象参照画像インデックスの両方を再び利用不可能となるようにリセットする。
【0279】
いくつかの例では、2つの対象参照画像のインデックスがRefIdxSymL0およびRefIdxSymL1の変数を含む場合、RefIdxSymL0は参照画像リスト0における対象参照画像インデックスを表し、RefIdxSymL1は参照画像リスト1における対象参照画像インデックスを表す。
【0280】
いくつかの例では、対象参照画像インデックスの両方を利用不可能となるようにリセットするステップは、RefIdxSymL0およびRefIdxSymL1の両方を-1にリセットするステップを含む。
【0281】
いくつかの例では、SMVDモードにおいて、動きベクトル差(MVD)は、参照リストXおよび参照リストYを含む2つの参照リストの参照リストYに対してのみ信号通知される。ここで、Y=1-Xである。参照リストYにおける信号通知されたMVDは、参照リストXにおけるMVDを導出するために使用される。ここで、X=0または1である。
【0282】
図19は、映像処理の方法1900の一例を示すフローチャートである。方法1900は、1902において、現在の映像の画像のブロックとこのブロックのビットストリーム表現との間での変換のために、一方の参照画像リストの第2の動きベクトル差(MVD)を他方の参照画像リストに関連付けられた第1のMVDから導出し、ここで、MVDは、水平成分および垂直成分の両方を含み、1904において、第1のMVDおよび第2のMVDのうちの少なくとも1つに対して範囲制限を適用し、1906において、この決定に基づいてこの変換を行うことを含む。
【0283】
いくつかの例では、第1のMVDは、ブロックのビットストリーム表現に含まれる。
【0284】
いくつかの例では、第2のMVDは、対称動きベクトル差(SMVD)モードにおける第1のMVDから導出される。
【0285】
いくつかの例では、導出された第2のMVDの水平成分および/または垂直成分は、所定の範囲に制限される。
【0286】
いくつかの例では、導出された第2のMVDの水平成分および/または垂直成分は、所定の範囲に従ってクリッピングされるか、または条件付きで修正される。
【0287】
いくつかの例では、Mzは、Mz=Clip3(-2N,2N-1,Mz)でクリッピングされ、ここで、Mzは、導出された第2のMVDの水平成分または垂直成分を表す。Nは、整数である。
【0288】
【0289】
いくつかの例において、N=15,16,17または18である。
【0290】
いくつかの例では、Mzは、Mz=Clip3(-2N+1,2N-1,Mz)でクリッピングされる。ここで、Mzは、導出された第2のMVDの水平成分または垂直成分を表す。Nは、整数である。
【0291】
いくつかの例において、N=15,16,17または18である。
【0292】
いくつかの例では、Mz=2Nである場合MzをMz=2N-1で修正し、ここで、Mzは、導出された第2のMVDの水平成分または垂直成分を表し、Nは整数である。
【0293】
いくつかの例において、N=15,16,17または18である。
【0294】
いくつかの例では、導出された第2のMVDの水平成分および/または垂直成分は、適合ビットストリームにおける所定の範囲内にある。
【0295】
いくつかの例では、導出された第2のMVDの水平成分および/または垂直成分は、適合ビットストリームにおいて、包括的に[-2N,2N-1]の範囲内に含まれる。
【0296】
いくつかの例において、N=15,16,17または18である。
【0297】
いくつかの例では、導出された第2のMVDの水平成分および/または垂直成分は、適合ビットストリームにおいて、包括的に[-2N+1,2N-1]の範囲内に含まれる。
【0298】
いくつかの例において、N=15,16,17または18である。
【0299】
いくつかの例では、第1のMVDの水平成分および/または垂直成分は、導出された第2のMVDの水平成分および/または垂直成分が第2の所定の範囲内にあるように、第1の所定の範囲に従ってクリッピングされるか、または条件付きで修正される。
【0300】
いくつかの例では、Mzは、Mz=Clip3(-2N+1,2N-1,Mz)でクリッピングされ、ここで、Mzは、第1のMVDの水平成分または垂直成分を表し、Nは、整数である。
【0301】
【0302】
いくつかの例において、N=15,16,17または18である。
【0303】
いくつかの例では、Mz=-2Nの場合MzをMz=-2N+1で修正する。ここで、Mzは、第1のMVDの水平成分または垂直成分を表す。Nは整数である。
【0304】
いくつかの例において、N=15,16,17または18である。
【0305】
いくつかの例では、第1のMVDの水平成分および/または垂直成分は、導出された第2のMVDの水平成分および/または垂直成分が適合ビットストリームにおける第2の所定の範囲内にあるように、第1の所定の範囲内にある。
【0306】
いくつかの例では、第1の所定の範囲は、SMVDモードが適用されない信号通知されたMVDの所定の範囲とは異なる。
【0307】
いくつかの例では、第1のMVDの水平成分および/または垂直成分は、Nが整数である、適合ビットストリームにおいて、包括的に[-2N+1,2N-1]の範囲内にある。
【0308】
いくつかの例において、N=15,16,17または18である。
【0309】
いくつかの例では、第1のMVDの水平成分および/または垂直成分は、Nが整数である、適合ビットストリームにおいて、包括的に[-2N+1,2N-1]の範囲内にある。
【0310】
いくつかの例では、第1のMVDは、信号通知されたMVDであり、信号通知されたMVDの範囲は、SMVDモードまたは別の参照画像リストからMVDを導出する他のツールおよび非SMVD符号化ツールに対して異なるように設定される。
【0311】
いくつかの例では、信号通知されたMVDは、[-2N+SMVDFlag,2N-1]の範囲内にあり、SMVDモードが適用される場合、SMVDFlagは1であり、SMVDモードが適用されない場合、SMVDFlagは0である。
【0312】
いくつかの例では、MVDに関連付けられたMVの精度に従ってMVDを修正する前に、MVDに対してクリッピングまたは制約を行う。
【0313】
いくつかの例では、MVDに関連付けられたMVの精度に従ってMVDを修正した後、MVDに対してクリッピングまたは制約を行う。
【0314】
いくつかの例では、MVDにおけるクリッピングまたは制約は、MVDに関連付けられたMVの精度に依存する。
【0315】
いくつかの例では、この変換は、ビットストリーム表現から映像のブロックを生成する。
【0316】
いくつかの例では、この変換は、映像のブロックからビットストリーム表現を生成する。
【0317】
本明細書における例の一覧において、用語「変換」は、現在の映像ブロックのためのビットストリーム表現の生成、またはビットストリーム表現から現在の映像ブロックを生成することを指すことができる。ビットストリーム表現は、ビットの連続したグループを表す必要がなく、ヘッダフィールドまたは符号化画素値情報を表すコード名に含まれるビットに分割されてもよい。
【0318】
上記の例において、適用可能性規則は、予め定義されたものであってもよく、エンコーダおよびデコーダに知られたものであってもよい。
【0319】
本明細書に記載されているように、開示された技術は、映像エンコーダまたはデコーダで実施されて、イントラ符号化における差分符号化モードの使用に関して考慮事項の様々な実装規則の使用を含む技術を使用して圧縮効率を改善し得ることが理解されよう。
【0320】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0321】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、成分、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0322】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0323】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0324】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0325】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、特許文献に記載されている例における様々なシステムのモジュールの分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0326】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。