(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】映像処理における代替の補間フィルタの選択的使用
(51)【国際特許分類】
H04N 19/117 20140101AFI20231003BHJP
H04N 19/132 20140101ALI20231003BHJP
H04N 19/176 20140101ALI20231003BHJP
【FI】
H04N19/117
H04N19/132
H04N19/176
(21)【出願番号】P 2022509198
(86)(22)【出願日】2020-08-20
(86)【国際出願番号】 CN2020110147
(87)【国際公開番号】W WO2021032143
(87)【国際公開日】2021-02-25
【審査請求日】2022-02-14
(31)【優先権主張番号】PCT/CN2019/101541
(32)【優先日】2019-08-20
(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)【参考文献】
【文献】米国特許出願公開第2016/0080771(US,A1)
【文献】HENKEL, Anastasia et al.,Non-CE4: Switched Half-Pel Interpoloation Filter,JVET-N0309 (version 3),ITU,2019年03月25日,pp.1-8,<URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0309-v3.zip>
【文献】CHOI, Byeongdoo et al.,AHG8: Signaling and Filtering for Reference Picture Resampling,JVET-O0332 (version 1),ITU,2019年06月26日,pp.1-8
【文献】SAMUELSSON, J. et al.,AHG8: Adaptive Resolution Change (ARC) with Downsampling,JVET-O0240 (version 2),ITU,2019年07月05日,pp.1-10
【文献】TOPIWALA, Pankaj et al.,Adaptive Resolution Change (ARC) in VVC,JVET-O0319 (version 3),ITU,2019年06月26日,pp.1-7,[online],[retrieved on 2023-08-30],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0319-v2.zip>,JVET-O0319r1.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
映像の現在のピクチャの現在の映像ブロックと前記映像のビットストリームとの変換のために、参照ピクチャリサンプリングツールが有効化されているかどうかに基づいて、第1の1/2画素補間フィルタを使用するかどうかを決定することと、
この決定することに基づいて、前記変換を行うことと、
前記参照ピクチャリサンプリングツールが有効化されている場合、前記現在のピクチャの解像度が前記現在の映像ブロックの参照ピクチャの解像度と異なることとを含
み、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタを前記現在の映像ブロックに適用せず、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタ以外の第2の1/2画素補間フィルタを前記現在の映像ブロックに適用する、映像処理方法。
【請求項2】
前記第1の1/2画
素補間フィルタの1/2画
素補間フィルタインデックスが1に等しい、請求項1に記載の方法。
【請求項3】
前記第2の1/2画
素補間フィルタの1/2画
素補間フィルタインデックスが0に等しい、請求項
1に記載の方法。
【請求項4】
前記第2の1/2画素補間フィルタは、フィルタ係数[-1,4,-11,40,40,-11,4,-1]を有する8タップフィルタに対応する、請求項
1に記載の方法。
【請求項5】
前記第1の1/2画素補間フィルタは、フィルタ係数[3,9,20,20,9,3]を有する6タップフィルタに対応する、請求項1に記載の方法。
【請求項6】
前記現在の映像ブロックは、前記第1の1/2画素補間フィルタが使用される場合、1/2画素位置を指す少なくとも1つの動きベクトルでコーディングされる、請求項1に記載の方法。
【請求項7】
前記現在の映像ブロックは、前記第1の1/2画素補間フィルタが使用される場合、水平1/2画素位置または垂直1/2画素位置、または水平および垂直1/2画素位置を指す少なくとも1つの動きベクトルでコーディングされる、請求項1に記載の方法。
【請求項8】
前記変換は、前記現在の映像ブロックを前記ビットストリームに符号化することを含む、請求項1~
7のいずれか1項に記載の方法。
【請求項9】
前記変換は、前記現在の映像ブロックを前記ビットストリームから復号化することを含む、請求項1~
7のいずれか1項に記載の方法。
【請求項10】
処理装置と、命令を備える非一時的メモリとを含む映像データを処理するための装置であって、
前記処理装置によって実行されると、前記命令は、前記処理装置に、
映像の現在のピクチャの現在の映像ブロックと前記映像のビットストリームとの変換のために、参照ピクチャリサンプリングツールが有効化されているかどうかに基づいて第1の1/2画素補間フィルタを使用するかどうかを決定することと、
この決定することに基づいて前記変換を行うことと、を行わせ、
前記参照ピクチャリサンプリングツールが有効化されている場合、前記現在のピクチャの解像度が、前記現在の映像ブロックの参照ピクチャの解像度と異な
り、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタを前記現在の映像ブロックに適用せず、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタ以外の第2の1/2画素補間フィルタを前記現在の映像ブロックに適用する、装置。
【請求項11】
命令を記憶している非一時的なコンピュータ可読記憶媒体であって、
前記命令は、処理装置に、
映像の現在のピクチャの現在の映像ブロックと前記映像のビットストリームとの変換のために、参照ピクチャリサンプリングツールが有効化されているかどうかに基づいて第1の1/2画素補間フィルタを使用するかどうかを決定することと、
この決定することに基づいて前記変換を行うことと、を行わせ、
前記参照ピクチャリサンプリングツールが有効化されている場合、前記現在のピクチャの解像度が、前記現在の映像ブロックの参照ピクチャの解像度と異な
り、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタを前記現在の映像ブロックに適用せず、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタ以外の第2の1/2画素補間フィルタを前記現在の映像ブロックに適用する、非一時的なコンピュータ可読記憶媒体。
【請求項12】
映像のビットストリームを記憶する
方法であって、
前記方法は、映像の現在のピクチャの現在の映像のために、参照ピクチャリサンプリングツールが有効化されているかどうかに基づいて第1の1/2画素補間フィルタを使用するかどうかを決定することと、
この決定することに基づいて前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと、を含み、
前記参照ピクチャリサンプリングツールが有効化されている場合、前記現在のピクチャの解像度が、前記現在の映像ブロックの参照ピクチャの解像度と異な
り、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタを前記現在の映像ブロックに適用せず、
前記参照ピクチャリサンプリングツールの有効化に基づいて、前記第1の1/2画素補間フィルタ以外の第2の1/2画素補間フィルタを前記現在の映像ブロックに適用する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2019年8月20日出願の国際特許出願第PCT/CN2019/101541号の優先権と利益を主張する、2020年8月20日出願の国際特許出願第PCT/CN2020/110147号の国内段階である。上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
本特許明細書は、映像処理技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
デジタル映像処理に関し、具体的には、動きベクトルを導出することに関するデバイス、システム、および方法が記載される。説明される方法は、既存の映像符号化規格(例えば、高効率映像符号化(High Efficiency Video Coding、HEVC)又は多様な映像符号化)および将来の映像符号化規格又は映像コーデックに適用され得る。
【0005】
1つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在のピクチャの現在の映像ブロックと映像の符号化表現との変換のために、代替の補間フィルタの適用可能性を判定することを含み、前記代替の補間フィルタの適用可能性は、前記変換においてこの代替の補間フィルタを適用するかどうかを示す。この方法は、前記判定に基づいて、前記変換を行う。ここで、代替の補間フィルタの適用可能性は、現在のピクチャの参照ピクチャをリサンプリングして変換を行う参照ピクチャリサンプリングが使用されるかどうかに基づいて判定される。
【0006】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在の映像ブロックを、動き候補と開始点との距離に関する情報を提供する動きベクトル表現を含む動きベクトル差を有するマージモード(MMVD)として表現するために使用される符号化モードを判定することと、現在の映像ブロックと判定することに基づく符号化表現に基づいて、変換を行うことと、を含み、前記変換は、1/2画素補間フィルタがデフォルトの1/2画素補間フィルタとは異なる代替の1/2画素補間フィルタであるという第1の条件を定義する第1の規則と、前記代替の1/2画素補間フィルタを継承するかどうかについての第2の条件を定義する第2の規則とに従って選択される1/2画素補間フィルタを使用して算出された現在の映像ブロックのための予測ブロックを使用して行われる。
【0007】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在の映像領域で使用される符号化モードを判定することと、符号化モードに基づいて、現在の映像領域の動きベクトルまたは動きベクトル差分値を表すために使用される精度の判定を行うことと、現在の映像ブロックと前記映像の符号化表現との変換を行うことと、を含む。
【0008】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在の映像ブロックの符号化モードを、動きベクトル差を有するマージモード(MMVD)として判定することと、現在の映像ブロックに関連付けられたベースマージ候補の動き精度情報に基づいて、現在の映像ブロックに対して、距離インデックスと、予め定義されたオフセットとの関係を規定する距離テーブルを判定することと、前記距離テーブルを使用して、前記現在の映像ブロックと前記映像の符号化表現との変換を行うことと、を含む。
【0009】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、第1の映像領域のためのデコーダ側動きベクトル微調整(DMVR)計算に使用される動きベクトル差が、Xが整数分の1であるX画素解像度よりも細かい解像度を有し、代替の1/2画素補間フィルタを使用して判定された第1の判定を行うこととであって、第1の判定によって、第1の映像領域に関連付けられた代替の1/2画素補間フィルタの情報を記憶せず、または後に処理される第2の映像領域には利用可能としない第2の判定を行うことと、前記第1の判定および前記第2の判定に基づいて、前記第1の映像領域および前記第2の映像領域からなる映像と、前記映像の符号化表現との変換を行うことと、を含む。
【0010】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、規則に従って、代替の1/2画素補間フィルタが映像の現在の映像ブロックに利用可能であるかどうかを判定することと、前記判定することに基づいて、現在の映像ブロックとこの映像の符号化表現との変換を行うことと、を含み、前記規則は、現在の映像ブロックが符号化表現においてマージブロックまたはスキップ符号化ブロックとして符号化される場合、前記判定することは、前記代替の1/2画素補間フィルタがこの現在の映像ブロックの前に符号化または復号化された前のブロックを処理するために使用されるかどうかとは無関係であることを規定する。
【0011】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、規則に従って、代替の1/2画素補間フィルタが映像の現在の映像ブロックに利用可能であるかどうかを判定することと、前記判定することに基づいて、現在の映像ブロックと映像の符号化表現との変換を行うことと、を含み、前記規則は、現在の映像ブロックの符号化情報に基づいて、デフォルトの1/2画素補間フィルタとは異なる代替の1/2画素補間フィルタの適用可能性を規定する。
【0012】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在の映像ブロックに対して、規則に従って代替の1/2画素補間フィルタの係数を判定することと、この判定することに基づいて、現在の映像ブロックと映像の符号化表現との変換を行うことと、を含み、前記規則は、代替の1/2画素補間フィルタと特定の符号化モードで使用される1/2画素補間フィルタとの関係を規定する。
【0013】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在の映像ブロックと映像の符号化表現との変換のために、規則に従って代替の1/2画素補間フィルタを適用することと、前記現在の映像ブロックと映像の符号化表現との変換を行うこととを含み、前記規則は、代替の補間フィルタを、Xは1/2以外であるX画素における位置に適用することを規定する。
【0014】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、X画素精度を有する第1の動きベクトル成分に対して、映像の第1の映像ブロックによって代替の補間フィルタを選択する第1の判定を行うことと、第1の判定によって、別の代替の補間フィルタを、Xが整数分の1であるX画素精度とは異なる精度を有する第2の動きベクトル成分に使用する第2の判定を行うことと、第1の映像ブロックと第2の映像ブロックとを含む映像と映像の符号化表現との変換を行うことと、を含む。
【0015】
さらに、代表的な態様において、前記開示される方法のうちのいずれか1つは、エンコーダ側の実装形態である。
【0016】
また、代表的な態様において、前記開示される方法のうちのいずれか1つは、デコーダ側の実装形態である。
【0017】
上述された方法のうちの1つは、処理装置が実行可能なコードの形式で実施され、コンピュータ可読プログラム媒体に記憶される。
【0018】
さらに別の代表的な態様では、処理装置と、命令を搭載した非一時的メモリとを備える、映像システムにおける装置が開示される。この命令は、処理装置によって実行されると、処理装置に、本明細書に開示される方法のいずれかを実装させる。
【0019】
開示される技術の上記および他の態様および特徴は、図面、説明および特許請求の範囲でより詳細に説明される。
【図面の簡単な説明】
【0020】
【
図1A】4分木+2分木(QTBT)ブロック構造を示す図である。
【
図1B】4分木+2分木(QTBT)ブロック構造を示す図である。
【
図4】空間的マージ候補の冗長性チェックの対象となる候補対の例を示す。
【
図5A】現在のブロックのサイズおよび形状に基づく第2の予測ユニット(PU)の位置の例を示す。
【
図5B】現在のブロックのサイズおよび形状に基づく第2の予測ユニット(PU)の位置の例を示す。
【
図6】時間的マージ候補のための動きベクトルのスケーリングの例を示す。
【
図8】結合双方向予測マージ候補を生成する例を示す。
【
図10】空間的動きベクトル候補のための動きベクトルのスケーリングの例を示す。
【
図11A】本明細書に記載されるビジュアルメディアの復号化またはビジュアルメディアの符号化技術を実装するためのハードウェアプラットフォームの一例を示すブロック図である。
【
図11B】本明細書に記載されるビジュアルメディアの復号化またはビジュアルメディアの符号化技術を実装するためのハードウェアプラットフォームの一例を示すブロック図である。
【
図14A】映像処理の方法の一例を示すフローチャートである。
【
図14B】映像処理の方法の一例を示すフローチャートである。
【
図14C】映像処理の方法の一例を示すフローチャートである。
【
図14D】映像処理の方法の一例を示すフローチャートである。
【
図14E】映像処理の方法の一例を示すフローチャートである。
【
図14F】映像処理の方法の一例を示すフローチャートである。
【
図14G】映像処理の方法の一例を示すフローチャートである。
【
図14H】映像処理の方法の一例を示すフローチャートである。
【
図14I】映像処理の方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0021】
1.HEVC/H.265における映像符号化
映像符号化規格は、主に周知の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規格の策定に取り組んでいる。
【0022】
2.1.大きいCTUを有する4分木+2分木(QTBT)ブロック構造
HEVCにおいて、CTUは、様々な局所的特徴に適応するように、符号化ツリーと呼ばれる4分木構造を用いてCUに分割される。インターピクチャ(時間的)予測またはイントラピクチャ(空間的)予測を使用する、ピクチャ領域を符号化するかどうかの決定は、CUレベルで行われる。各CUは、PU分割タイプに応じて1つ、2つまたは4つのPUに更に分割することができる。1つのPUの内部では、同じ予測処理が適用され、PU単位で関連情報がデコーダに送信される。PU分割タイプに基づく予測処理を適用して残差ブロックを得た後、CUのためのコーディングツリー符号化ツリーに類似した別の4分木構造に基づいて、CUを変換ユニット(TU)に分割することができる。HEVC構造の重要な特徴の1つは、CU、PU、TUを含む複数のパーティション概念を有することである。
【0023】
図1は、4分木+2分木(QTBT)ブロック構造を示す図である。QTBT構造は、複数のパーティションタイプの概念を削除する。すなわち、CU、PU、TUのコンセプトの切り離しを取り除き、CUパーティションの形状の柔軟性を向上させる。QTBTブロック構造において、CUは正方形または長方形のいずれかを有することができる。
図1に示すように、まず、符号化ツリーユニット(CTU)を4分木構造で分割する。4分木の葉ノードは、2分木構造によってさらに分割される。2分木の分割には、対称水平分割と対称垂直分割の2つの分割タイプがある。2分木の葉ノードは、符号化ユニット(CU)と呼ばれ、このセグメント化は、それ以上の分割を行うことなく、予測および変換処理に使用される。これは、QTBTの符号化されたブロック構造において、CU、PUおよびTUが同じブロックサイズを有することを意味する。JEMにおいて、CUは、しばしば異なる色成分の符号化ブロック(CB)からなり、例えば、4:2:0彩度フォーマットのPおよびBスライスの場合、1つのCUは1つの輝度CBおよび2つの彩度CBを含み、また、CUは、しばしば単一の成分のCBからなり、例えば、Iスライスの場合、1つのCUは、1つの輝度CBのみ、または、2つの彩度CBのみを含む。
【0024】
QTBT分割スキームに対して以下のパラメータを規定する。
-CTUのサイズ:1つの4分木のルートノードのサイズ、HEVCと同じ概念
-MinQTSize:最小許容の4分木の葉ノードサイズ
-MaxBTSize:最大許容の2分木のルートノードサイズ
-MaxBTDepth:最大許容の2分木の深さ
-MinBTSize:最小許容の2分木の葉ノードのサイズ
【0025】
QTBTの分割構造の一例において、CTUのサイズを、2つの対応する64×64ブロックの彩度サンプルを有する128×128の輝度サンプルとして設定し、MinQTSizeを16×16として設定し、MaxBTSizeを64×64として設定し、MinBTSize(幅および高さの両方について)を4×4として設定し、MaxBTDepthを4として設定する。4分木の分割は、まずCTUに適用され、4分木の葉ノードを生成する。4分木の葉ノードは、16×16(即ち、MinQTSize)から128×128(即ち、CTUサイズ)までのサイズを有することが可能である。葉4分木のノードが128×128である場合、サイズがMaxBTSize(すなわち、64×64)を超えるため、2分木によってさらに分割されない。そうでない場合、葉4分木のノードは、2分木によってさらに分割されてもよい。従って、この4分木の葉ノードは、2分木のルートノードでもあり、その2分木の深さは0である。2分木の深さがMaxBTDepth(すなわち、4)に達した場合、それ以上の分割は考慮されない。2分木のノードの幅がMinBTSize(すなわち、4)に等しい場合、それ以上の水平分割は考慮されない。同様に、2分木のノードの高さがMinBTSizeに等しい場合、それ以上の垂直分割は考慮されない。2分木の葉ノードは、さらに分割することなく、予測および変換処理によってさらに処理される。JEMにおいて、最大CTUサイズは、256×256個の輝度サンプルである。
【0026】
図1AはQTBTを用いたブロックの分割の例を示し、
図1Bは対応するツリー表現を示す。実線は4分木の分割を表し、点線は2分木の分割を表す。2分木の各分割(即ち、非葉)ノードにおいて、1つのフラグが、どの分割タイプ(即ち、水平または垂直)が使用されるかを示すために信号通知される。ここで、0は、水平分割を表し、1は、垂直分割を表す。4分木の分割の場合、4分木の分割は常にブロックを水平および垂直に分割し、等分したサイズの4つのサブブロックを生成するため、分割タイプを示す必要がない。
【0027】
さらに、QTBT方式は、輝度および彩度が別個のQTBT構造を有する能力をサポートする。現在、PおよびBスライスの場合、1つのCTUにおける輝度および彩度CTBは、同じQTBT構造を共有する。しかしながら、Iスライスの場合、輝度CTBはQTBT構造によってCUに分割され、彩度CTBは別のQTBT構造によって彩度CUに分割される。これは、1つのIスライスにおける1つのCUが1つの輝度成分の1つの符号化ブロックまたは2つの彩度成分の1つの符号化ブロックからなり、1つのPまたはBスライスにおける1つのCUが3つの色成分すべての符号化ブロックからなることを意味する。
【0028】
HEVCにおいて、小さなブロックのためのインター予測は、動き補償のメモリアクセスを低減するために制限され、その結果、4×8および8×4ブロックのために双方向予測はサポートされず、4×4ブロックのためにインター予測はサポートされない。JEMのQTBTにおいて、これらの制限は取り除かれる。
【0029】
2.2.HEVC/H.265におけるインター予測
各インター予測されたPUは、1つまたは2つの参照ピクチャリストのための動きパラメータを有する。動きパラメータは、動きベクトルおよび参照ピクチャインデックスを含む。2つの参照ピクチャリストのうちの1つの参照ピクチャリストの使用は、inter_pred_idcを使用して信号通知されてもよい。動きベクトルは、予測子に対するデルタ(delta)として明確にコーディングされてもよい。
【0030】
1つのCUがスキップモードにて符号化される場合、1つのPUがこのCUに関連付けられ、有意な残差係数がなく、符号化された動きベクトル差分も参照ピクチャインデックスもない。マージモードを指定し、これにより、現在のPUのための動きパラメータを、空間的および時間的候補を含む近傍のPUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたPUに適用することができる。マージモードの代替として、動きパラメータの明示的な送信があり、動きベクトル(より正確には、動きベクトル予測子と比較した動きベクトル差分)、各参照ピクチャリストの対応する参照ピクチャインデックス、および参照ピクチャリストの使用状況が、各PUに明確に信号通知される。このようなモードを、本開示では高度動きベクトル予測(AMVP)と呼ぶ。
【0031】
2つの参照ピクチャリストのうちの1つを使用することを信号通知が示す場合、サンプルのうちの1つのブロックからPUを生成する。これを「単一予測」と呼ぶ。PスライスおよびBスライスの両方に対して単一予測が利用可能である。
【0032】
両方の参照ピクチャリストを使用することを信号通知が示す場合、サンプルのうちの2つのブロックからPUを生成する。これを「双方向予測」と呼ぶ。Bスライスのみに双方向予測が利用可能である。
【0033】
以下、HEVCに規定されるインター予測モードについて詳細に説明する。まず、マージモードについて説明する。
【0034】
2.2.1.マージモード
2.2.1.1.マージモードの候補の導出
マージモードを使用してPUを予測する場合、ビットストリームからマージ候補リストにおけるエントリを指すインデックスを構文解析し、これを使用して動き情報を検索する。このリストの構成は、HEVC規格で規定されており、以下のステップのシーケンスに基づいてまとめることができる。
●ステップ1:初期候補導出
o ステップ1.1:空間的候補導出
o ステップ1.2:空間的候補の冗長性チェック
o ステップ1.3:時間的候補導出
● ステップ2:追加の候補挿入
o ステップ2.1:双方向予測候補の作成
o ステップ2.2:動きゼロ候補の挿入
【0035】
これらのステップは
図2にも概略的に示されている。空間的マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補を選択する。時間的マージ候補導出のために、2つの候補の中から最大1つのマージ候補を選択する。デコーダ側ではPUごとに一定数の候補を想定しているので、ステップ1で得た候補数がスライスヘッダで信号通知されるマージ候補(MaxNumMergeCand)の最大数に達しない場合、追加候補を生成する。候補の数は一定であるので、短縮された単項2値化(TU)を使用して最良マージ候補のインデックスを符号化する。CUのサイズが8に等しい場合、現在のCUのすべてのPUは、2N×2N予測ユニットのマージ候補リストと同じ1つのマージ候補リストを共有する。
【0036】
以下、上述したステップに関連付けられた動作を詳しく説明する。
【0037】
2.2.1.2.空間的候補導出
空間的マージ候補の導出において、
図3に示す位置にある候補の中から、最大4つのマージ候補を選択する。導出の順序はA
1、B
1、B
0、A
0、B
2である。位置A
1、B
1、B
0、A
0のいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはイントラ符号化された場合にのみ、位置B
2が考慮される。位置A
1の候補を加えた後、残りの候補を加えると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、符号化効率を向上させることができる。計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。代わりに、
図4において矢印でリンクされた対のみを考慮し、冗長性チェックに使用される対応する候補が同じ動き情報を有していない場合にのみ、その候補をリストに加える。重複した動き情報の別のソースは、2N×2Nとは異なる分割に関連付けられた「第2のPU」である。一例として、
図5は、それぞれN×2Nおよび2N×Nの場合の第2のPUを示す。現在のPUをN×2Nに分割する場合、リスト構築に位置A
1の候補は考慮されない。実際、この候補を加えることにより、同じ動き情報を有する2つの予測ユニットが導かれることとなり、1つの符号化ユニットに1つのPUのみを有するためには冗長である。同様に、現在のPUを2N×Nに分割する場合、位置B
1は考慮されない。
【0038】
2.2.1.3.時間的候補導出
このステップにおいて、1つの候補のみがリストに追加される。具体的には、この時間的マージ候補の導出において、所与の参照ピクチャリストにおける現在のピクチャとの間に最小のPOC差を有するピクチャに属する同一位置PUに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、同一位置のPUの導出に用いられる参照ピクチャリストが明確に信号通知される。
図6に点線で示すように、時間的マージ候補のスケーリングされた動きベクトルが得られる。これは、POC距離tbおよびtdを利用して、同一位置のPUの動きベクトルからスケーリングしたものである。tbは、現在のピクチャの参照ピクチャと現在のピクチャのPOC差として規定され、tdは、同一位置のPUの参照ピクチャと同一位置のピクチャのPOC差として規定する。時間的マージ候補の参照ピクチャインデックスをゼロに等しく設定する。このスケーリング処理の実際的な実現については、HEVC仕様に記載されている。Bスライスの場合、2つの動きベクトル、即ち、1つは参照ピクチャリスト0のためのもの、もう1つは参照ピクチャリスト1のためのものを取得し、これらを組み合わせることによって、双方向予測マージ候補を形成する。
【0039】
参照フレームに属する同一位置のPU(Y)において、
図7に示すように、候補C
0と候補C
1との間で時間的候補の位置を選択する。位置C
0のPUが利用可能でない場合、イントラ符号化されている場合、または現在のCTUの外側にある場合、位置C
1が使用される。そうでない場合、位置C
0が時間的マージ候補の導出に使用される。
【0040】
2.2.1.4.追加の候補挿入
空間的-時間的マージ候補の他に、2つの追加のタイプのマージ候補、すなわち、結合双方向予測マージ候補およびゼロマージ候補がある。空間的-時間的マージ候補を利用して、結合双方向予測マージ候補を生成する。結合双方向予測マージ候補は、Bスライスのみに使用される。最初の候補の第1の参照ピクチャリスト動きパラメータと別の候補の第2の参照ピクチャリスト動きパラメータとを組み合わせることで、結合双方向予測候補を生成する。これら2つのタプルが異なる動き仮説を提供する場合、これらのタプルは、新しい双方向予測候補を形成する。一例として、
図8は、オリジナルリスト(左側)における、mvL0およびrefIdxL0、またはmvL1およびrefIdxL1を有する2つの候補を用いて、最終リスト(右側)に加えられる結合双方向予測マージ候補を生成する場合を示す。これらの追加のマージ候補を生成するために考慮される組み合わせについては、様々な規則が存在する。
【0041】
ゼロ動き候補を挿入し、マージ候補リストにおける残りのエントリを埋めることにより、ゼロ動き候補はMaxNumMergeCand容量にヒットする。これらの候補は、空間的変位がゼロであり、新しいゼロ動き候補をリストに加える度にゼロから始まり増加する参照ピクチャインデックスを有する。これらの候補が使用する参照フレームの数は、それぞれ、一方向予測の場合は1つ、双方向予測の場合は2つである。最終的には、これらの候補に対して冗長性チェックは行われない。
【0042】
2.2.1.5.並列処理のための動き推定領域
符号化処理を高速化するために、動き推定を並列に行うことができ、それによって、所与の領域内のすべての予測ユニットの動きベクトルを同時に導出する。1つの予測ユニットは、その関連する動き推定が完了するまで、隣接するPUから動きパラメータを導出することができないので、空間的近傍からのマージ候補の導出は、並列処理に干渉する可能性がある。符号化効率と処理待ち時間との間のトレードオフを緩和するために、HEVCは、動き推定領域(MER:Motion Estimation Region)を規定し、そのサイズは、「log2_parallel_merge_level_minus2」構文要素を使用してピクチャパラメータセットにおいて信号通知される。1つのMERを規定するとき、同じ領域にあるマージ候補は利用不可能であるとしてマークされ、それゆえにリスト構築においては考慮されない。
【0043】
2.2.2.AMVP
AMVPは、動きベクトルと近傍のPUとの間の空間的-時間的相関を利用し、これを動きパラメータの明確な伝送に用いる。各参照ピクチャリストに対し、まず、左側、上側の時間的に近傍のPU位置の可用性をチェックし、冗長な候補を取り除き、ゼロベクトルを加えることで、候補リストの長さを一定にすることで、動きベクトル候補リストを構築する。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。マージインデックスの信号通知と同様に、最良の動きベクトル候補のインデックスは、短縮された単項を使用して符号化される。この場合に符号化対象の最大値は2である(
図9参照)。以下の章では、動きベクトル予測候補の導出処理の詳細を説明する。
【0044】
2.2.2.1.AMVP候補の導出
図9は、動きベクトル予測候補の導出処理をまとめている。
【0045】
動きベクトル予測において、空間的動きベクトル候補と時間的動きベクトル候補という2つのタイプの動きベクトル候補が考慮される。空間的動きベクトル候補を導出するために、
図3に示したように、5つの異なる位置にある各PUの動きベクトルに基づいて、最終的には2つの動きベクトル候補を導出する。
【0046】
時間的動きベクトル候補を導出するために、2つの異なる同一位置に配置された位置に基づいて導出された2つの候補から1つの動きベクトル候補を選択する。空間的-時間的候補の最初のリストを作成した後、リストにおける重複した動きベクトル候補を除去する。候補の数が2よりも多い場合、関連づけられた参照ピクチャリストにおける参照ピクチャインデックスが1よりも大きい動きベクトル候補をリストから削除する。空間的―時間的動きベクトル候補の数が2未満である場合は、追加のゼロ動きベクトル候補をリストに加える。
【0047】
2.2.2.2.空間的動きベクトル候補
空間的動きベクトル候補の導出において、
図3に示したような位置にあるPUから導出された5つの可能性のある候補のうち、動きマージと同じ位置にあるものを最大2つの候補を考慮する。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)
【0048】
最初に非空間的スケーリングの場合をチェックし、次に空間的スケーリングを行う。参照ピクチャリストにかかわらず、POCが近傍のPUの参照ピクチャと現在のPUの参照ピクチャとで異なる場合、空間的スケーリングを考慮する。左側候補のすべてのPUが利用可能でないか、又はイントラ符号化されている場合、上側の動きベクトルのスケーリングは、左側および上側MV候補の並列導出に役立つ。そうでない場合、上側の動きベクトルに対して空間的スケーリングは許可されない。
【0049】
空間的スケーリング処理において、
図10に示すように、時間的スケーリングと同様にして、近傍のPUの動きベクトルをスケーリングする。主な違いは、現在のPUの参照ピクチャリストおよびインデックスを入力として与え、実際のスケーリング処理は時間的スケーリングと同じであることである。
【0050】
2.2.2.3.時間的動きベクトル候補
参照ピクチャインデックスを導出する以外は、時間的マージ候補を導出するための処理は、すべて、空間的動きベクトル候補を導出するための処理と同じである(
図7参照)。参照ピクチャインデックスはデコーダに信号通知される。
【0051】
2.3.適応型動きベクトル差分解像度(AMVR)
VVCにおいて、通常のインターモードの場合、MVDは1/4輝度サンプル、整数輝度サンプル又は4つの輝度サンプルの単位で符号化できる。MVD分解能は符号化ユニット(CU)レベルで制御され、MVD解像度フラグは、少なくとも1つのノンゼロMVDモジュールを有する各CUに対して条件付きで信号通知される。
【0052】
少なくとも1つの非ゼロMVDの構成要素を有するCUの場合、1/4輝度サンプルMV精度がCUにおいて使用されるか否かを示すために、第1のフラグが信号通知される。第1のフラグ(1に等しい)が、1/4輝度サンプルMV精度が使用されていないことを示す場合、整数輝度サンプルMV精度が使用されるか又は4輝度サンプルMV精度が使用されるかを示すために、別のフラグが信号通知される。
【0053】
CUの第1のMVD解像度フラグがゼロであるか、又はCUに対して符号化されていない(つまり、CUにおけるすべてのMVDがゼロである)場合、CUに対して1/4輝度サンプルMV解像度が使用される。CUが整数輝度サンプルMV精度又は4輝度サンプルMV精度を使用する場合、CUのAMVP候補リストにおけるMVPを対応する精度に丸める。
【0054】
2.4.VVCにおける補間フィルタ
輝度補間フィルタリングの場合、表1に示すように、1/16画素の精度のサンプルに対して8タップの分離可能な補間フィルタを用いる。
【0055】
【0056】
同様に、表2に示すように、1/32画素精度のクロマ補間には、4タップの分離可能な補間フィルタが使用される。
【0057】
【0058】
4:2:2の垂直補間および4:4:4のクロマチャネルの水平および垂直補間の場合、表2の奇数位置を使用せず、1/16画素のクロマ補間になる。
【0059】
2.5.代替輝度1/2画素補間フィルタ
JVET-N0309において、代替の1/2画素補間フィルタが提案されている。
【0060】
1/2画素輝度補間フィルタの切り替えは、動きベクトルの精度に基づいて行われる。既存の1/4画素、フル画素、および4画素のAMVRモードに加え、新しい1/2画素精度AMVRモードが導入される。1/2画素度の動きベクトルの精度の場合にのみ、代替の1/2画素度の輝度補間フィルタを選択することができる。
【0061】
2.5.1.1/2画素AMVRモード
非アフィン非マージインター符号化CUのための追加のAMVRモードが提案され、このモードは、1/2画素精度で動きベクトル差を信号通知することを可能にする。現在のVVC草案の既存のAMVRスキームは、以下のようにして簡単に拡張される。構文要素amvr_flagの直後に、amvr_flag==1の場合、新しいコンテキストモデル化されたバイナリ構文要素hpel_amvr_flagがあり、これは、hpel_amvr_flag==1の場合、新しい1/2画素AMVRモードの使用を示す。そうでない場合、すなわちhpel_amvr_flag==0である場合、現在のVVC草案におけるように、フル画素と4画素AMVRモードとの間の選択は、構文要素amvr_precision_flagによって示される。
【0062】
2.5.2.代替輝度1/2画素補間フィルタ
1/2画素動きベクトル精度を使用する非アフィン非マージインター符号化CU(すなわち、1/2画素AMVRモード)の場合、新しい構文要素if_idxの値に基づいて、HEVC/VVC1/2画素輝度補間フィルタと1つ以上の代替1/2画素補間とを切り替える。構文要素if_idxは、1/2画素AMVRモードの場合にのみ信号通知される。空間的マージ候補を用いたスキップ/マージモードの場合、構文要素if_idxの値は近傍のブロックから継承される。
【0063】
2.5.2.1.テスト1:1つの代替の1/2画素補間フィルタ
このテストケースにおいて、通常のHEVC/VVC1/2画素補間フィルタの代替えとして、1つの6タップ補間フィルタが存在する。次の表は、構文要素if_idxの値と選択された1/2画素輝度補間フィルタとの間のマッピングを示す。
【0064】
【0065】
2.5.2.2.テスト2:2つの代替的な1/2画素補間フィルタ
このテストケースでは、通常のHEVC/VVC1/2画素補間フィルタの代替として、2つの8タップ補間フィルタがある。次の表は、構文要素if_idxの値と選択された1/2画素輝度補間フィルタとの間のマッピングを示す。
【0066】
【0067】
amvr_precision_idxは、現在のCUが1/2画素、1画素または4画素MV精度を使用しているかどうかを示すように信号通知される。符号化されるべきビンが2つある。
【0068】
hpel_if_idxは、デフォルトの1/2画素補間フィルタを使用するか代替の1/2画素補間フィルタを使用するかを示すように信号通知される。2つの代替の1/2画素補間フィルタを使用する場合、2つの符号化対象のビンがある。
【0069】
2.6.一般化双方向予測
従来の双方向予測において、L0およびL1からの予測子を平均し、均等重み0.5を使用して最終予測子を生成する。予測子生成式は、式(3)に示される。
PTraditionalBiPred=(PL0+PL1+RoundingOffset)>>shiftNum, (1)
式(3)において、従来の双予測のための最終予測子をPTraditionalBiPredisすると、PL0およびPL1は、それぞれL0およびL1からの予測子であり、丸めオフセットおよびシフト数は、最終予測子を正規化するために使用される。
【0070】
L0とL1からの予測子に異なる重みを適用することを可能にするために、一般化双予測(GBI)が提案されている。予測子の生成を式(4)に示す。
PGBi=((1-w1)*PL0+w1*PL1+RoundingOffsetGBi)>>shiftNumGBi, (2)
式(4)において、PGBiはGBiの最終予測子である。(1-w1)およびw1は、それぞれL0およびL1の予測子に適用される選択されたGBI重みである。RoundingOffsetGBiおよびseftNumGBiは、GBiにおける最終予測子を正規化するために使用する。
【0071】
サポートされるw1の重みは、{-1/4,3/8,1/2,5/8,5/4}である。1つの均等重みセットおよび4つの不均等重みセットがサポートされる。均等重みの場合、最終予測子を生成する処理は、従来の双予測モードにおける処理と全く同じである。ランダムアクセス(RA)条件における真の双予測の場合、候補重みセットの数を3に減らす。
【0072】
高度動きベクトル予測(AMVP)モードの場合、このCUが双方向予測によって符号化されている場合、GBIにおける重み選択は、CUレベルで明確に信号通知される。マージモードの場合、重み選択はマージ候補から継承される。
【0073】
2.7.MVD(MMVD)とのマージモード
マージモードに加え、暗黙的に導出された動き情報を現在のCUの予測サンプル生成に直接使用する場合、VVCに動きベクトル差を有するマージモード(MMVD)を導入する。スキップフラグおよびマージフラグを送信した直後に、MMVDフラグを信号通知して、MMVDモードをCUに使用するかどうかを指定する。
【0074】
MMVDにおいて、マージ候補が選択された後、信号通知されたMVD情報によってさらに微調整される。このさらなる情報は、マージ候補フラグと、動きの大きさを指定するためのインデックスと、動き方向の指示のためのインデックスとを含む。MMVDモードにおいて、マージリストにおける最初の2つの候補のうちの1つを選択し、MVベースとして使用する。マージ候補フラグは、どちらを使用するかを指定するように信号通知される。
【0075】
図13は、MMVD検索の例を示す。距離インデックスは、動きの大きさの情報を指定して、予め定義された開始点からのオフセットを示す。
図13に示すように、開始MVの水平成分又は垂直成分のいずれかにオフセットを加える。距離インデックスと予め定義されたオフセットとの関係を、表3に示す。
【0076】
【0077】
方向インデックスは、開始点に対するMVDの方向を表す。方向インデックスは、表4に示すように、4つの方向を表すことができる。なお、MVD符号の意味は、開始MVの情報に従って異なってもよい。開始MVが未予測MV又は双予測MVであり、両方のリストが現在のピクチャの同じ側を指している(即ち、2つの参照符号のPOCが両方とも現在のピクチャのPOCよりも大きい、又は両方とも現在のピクチャのPOCより小さい)場合、表4における符号は、開始MVに加えられるMVオフセットの符号を指定する。開始MVが双予測MVであり、2つのMVが現在のピクチャの異なる側を指している(即ち、1つの参照のPOCが現在のピクチャのPOCよりも大きく、他の参照のPOCが現在のピクチャのPOCより小さい)場合、表4における符号は、開始MVのlist0 MV成分に加えられるMVオフセットの符号を規定し、list1 MVの符号は逆の値を有する。
【0078】
【0079】
slice_fpel_mmvd_enabled_flagは、MMVDに分数距離を使用できるかどうかを示すために、スライスヘッダで信号通知される。スライスに対して分数距離が許容される場合、上記距離に4を乗じることにより、以下の距離テーブルを生成する。
【0080】
【0081】
slice_fpel_mmvd_enabled_flagが1に等しい場合は、動きベクトル差を有するマージモードが現在のスライスにおける整数サンプル精度を使用することを指定する。slice_fpel_mmvd_enabled_flagが0に等しい場合は、動きベクトル差を有するマージモードが現在のスライスにおける端数サンプル精度を使用できることを指定する。存在しない場合、slice_fpel_mmvd_enabled_flagの値は0であると推測される。
【0082】
3.従来の実装形態における課題
代替の1/2画素補間フィルタは、MMVDモードで導出されたMVが1/2画素精度でなくても、動きベクトル差(MMVD)モードでマージして継承されてもよく、これは妥当ではない。
【0083】
amvr_precision_idxおよびhpel_if_idxを符号化する場合、すべてのビンはコンテキスト符号化される。
【0084】
代替の補間フィルタフラグは、空間近傍のブロックから派生する関連付けられたマージ候補が選択された場合、空間近傍のブロックから継承されてもよい。しかし、継承されたMVをさらに微調整する(例えば、DMVRを使用する)場合、最終的なMVは1/2画素精度を指していない場合がある。従って、フラグが真であっても、新しいフィルタの使用は、フラグが真であり、MVが1/2画素(half画素)であるという条件下にあるので、代替の補間フィルタも無効化される。
【0085】
同様に、AMVR処理において、AMVRの精度が1/2画素である場合、MVPおよびMVDはいずれも1/2画素内にある。しかしながら、最終的なMVは1/2画素内になくてもよい。この場合、信号伝達されたAMVR精度が1/2画素を表しているにもかかわらず、この新しいフィルタを使用することは許可されない。
【0086】
4.例示的な実施形態および技術
以下の実施形態の詳細は、一般的な概念を説明するための例であると考えられるべきである。これらの実施形態は狭い意味で解釈されるべきではない。さらに、これらの実施形態は、任意の方法で組み合わせることができる。
【0087】
デコーダ側動きベクトル導出(DMVD)は、BDOF(双方向オプティカルフロー)および/またはDMVR(デコーダ側動きベクトル微調整)および/またはデコーダにおける微調整動きベクトル又は予測サンプルに関連付けられた他のツールを表すために用いられる。
【0088】
以下の文脈において、デフォルト補間フィルタは、HEVC/VVCに定義されるものを示すことができる。以下の説明において、新しく導入された補間フィルタ(例えば、JVET-N0309に提案されているもの)を代替補間フィルタとも呼ぶこともできる。MMVDの用語は、ある追加のMVDで復号された動き情報を更新することができる任意の符号化方法を指してもよい。
1.Nが2に等しくない異なるNに対して、代替の1/N個の画素補間フィルタを使用してもよい。
a.一例において、Nは、4、16等に等しくてもよい。
b.一例において、1/N画素の補間フィルタのインデックスは、AMVRモードで信号通知されてもよい。
i.さらに、代替的に、1/N画素のMV/MVD精度がブロックによって選択された場合にのみ、1/N画素の補間フィルタのインデックスを信号通知してもよい。
c.一例において、代替の1/N画素補間フィルタは、マージモードおよび/またはMMVDモードで継承されなくてもよい。
i.さらに、代替的に、デフォルトの1/N画素補間フィルタのみをマージモードおよび/またはMMVDモードで使用してもよい。
d.一例において、代替の1/N画素補間フィルタは、マージモードで継承されてもよい。
e.一例において、代替の1/N画素補間フィルタは、MMVDモードで継承されてもよい。
i.一例において、代替の1/N画素補間フィルタは、最終的に導出されたMVが1/N画素の精度である、すなわち、MV成分がより微細なMV精度でない場合、MMVDモードで継承されてもよい。
ii.一例において、代替の1/N画素補間フィルタは、最終的に導出されたMVのK(K≧1)個のMV成分が1/N画素精度である場合、MMVDモードで継承されてもよい。
f.一例において、代替の1/N画素補間フィルタは、MMVDモードおよび/またはマージモードで継承されてもよいが、代替の1/N画素補間フィルタは、動き補償にのみ使用される。代替の1/N画素補間フィルタのインデックスは、ブロックのために記憶されなくてもよく、後続の符号化ブロックによって使用されなくてもよい。
2.補間フィルタの指示(例えば、デフォルトの1/2画素補間フィルタ、代替の1/2画素補間フィルタ)は、動きベクトル、参照インデックス等の他の動き情報とともに記憶されてもよい。
a.一例において、1つの符号化/復号化対象のブロックが、異なる区域(例えば、異なるCTU行、異なるVPDU)に位置する第2のブロックにアクセスする場合、第2のブロックに関連付けられた内挿フィルタを、現在のブロックの符号化/復号化で使用することは許可されない。
3.代替の1/2画素補間フィルタは、マージモードおよび/またはMMVDモードで継承されなくてもよい。
a.一例において、代替の1/2画素補間フィルタは、MMVDモードで継承されなくてもよい。
i.さらに、代替的に、VVCにおけるデフォルトの1/2画素補間フィルタは、常にMMVDモードに使用してもよい。
ii.代替的に、代替の1/2画素補間フィルタは、MMVDモードで継承されてもよい。すなわち、MMVDモードの場合、ベースマージ候補に関連付けられた代替1/2画素補間フィルタを継承することができる。
b.一例において、代替の1/2画素補間フィルタは、特定の条件下においてMMVDモードで継承されてもよい。
i.一例において、代替の1/2画素補間フィルタは、最終的に導出されたMVが1/2画素精度である、すなわち、1/4画素精度、1/16画素精度のようなより微細なMV精度のMV成分がない場合に継承されてもよい。
ii.一例において、代替の1/2画素補間フィルタは、最終的に導出されたMVのK(K≧1)個のMV成分が1/2画素精度である場合、MMVDモードで継承されてもよい。
iii.一例において、MMVDにおいて選択された距離(例えば、表3に定義される距離)がX画素精度であるか、またはX画素より粗い精度である(例えば、Xが1/2であり、1画素、2画素、4画素等がX画素より粗い)場合、代替の1/2画素補間フィルタを継承してもよい。
iv.一例において、MMVDにおいて選択された距離(例えば、表3に定義される距離)がX画素精度であるか、またはX画素より細かい精度である(例えば、Xが1/4、1/16画素であり、X画素よりも細かい)場合、代替の1/2画素補間フィルタを継承しなくてもよい。
v.MMVDにおいて代替の1/2画素補間フィルタを使用しない場合、代替の1/2画素補間フィルタの情報は、ブロックのために記憶されず、後続の符号化ブロックによって使用されなくてもよい。
c.一例において、代替の1/2画素補間フィルタは、MMVDモードおよび/またはマージモードで継承されてもよいが、代替の1/2画素補間フィルタは、動き補償にのみ使用される。代替の1/2画素補間フィルタの代わりに、デフォルトの1/2画素補間フィルタのインデックスをブロックに対して記憶してもよく、後続の符号化ブロックによって使用してもよい。
d.上記方法は、1/N画素の精度のために複数の補間フィルタを適用することができる他の場合にも適用可能である。
4.MV/MVD精度情報は、AMVPモードおよび/またはアフィンインターモードで符号化されたCU/PU/ブロックのために記憶されてもよく、マージモードおよび/またはアフィンマージモードで符号化されたCU/PU/ブロックによって継承されてもよい。
a.一例において、空間的に隣接する(隣接または非隣接)ブロックから導出された候補に対して、関連付けられた隣接ブロックのMV/MVD精度を継承してもよい。
b.一例において、ペアワイズマージ候補に対して、2つの関連する空間マージ候補が同じMV/MVD精度を有する場合、このようなMV/MVD精度をペアワイズマージ候補に割り当ててもよく、あるいは、固定MV/MVD精度(例えば、1/4画素または1/16画素)を割り当ててもよい。
c.一例において、固定MV/MVD精度(例えば、1/4画素または1/16画素)を時間マージ候補に割り当ててもよい。
d.一例において、MV/MVD精度は、履歴に基づく動きベクトル予測(HMVP)テーブルに記憶されてもよく、HMVPマージ候補によって継承されてもよい。
e.一例において、ベースマージ候補のMV/MVD精度は、MMVDモードで符号化されたCU/PU/ブロックによって継承されてもよい。
f.一例において、継承されたMV/MVD精度は、後続のブロックのMV/MVD精度を予測するために使用され得る。
g.一例において、マージ符号化ブロックのMVは、継承されたMV/MVD精度に丸められてもよい。
5.MMVDにおいてどの距離テーブルを使用するかは、ベースマージ候補のMV/MVD精度に依存してもよい。
a.一例において、ベースマージ候補のMV/MVDが1/N画素精度である場合、MMVDに使用される距離は、1/N画素精度であるか、または1/N画素よりも粗い精度であるべきである。
i.例えば、N=2である場合、MMVDにおける距離は、1/2画素、1画素、2画素等の精度のみであってもよい。
b.1つの例において、分数距離を含む距離テーブル(表3に定義される)(例えば、slice_fpel_mmvd_enabled_flagが0である場合に定義される距離テーブル)は、ベースマージ候補のMV/MVD精度に従って修正されてもよい。
i.例えば、ベースマージ候補のMV/MVD精度が1/N画素であり、距離テーブルの最も細かいMVD精度が1/M画素(例えば、M=4)である場合、距離テーブルにおけるすべての距離にM/Nを乗算してもよい。
6.代替の1/2画素補間フィルタを選択するCU/PU/ブロック(例えば、マージモードで符号化される)の場合、DMVRで導出されたMVDがX画素(例えば、X=1/2)より細かい場合、代替の1/2画素補間フィルタの情報は、CU/PU/ブロックのために記憶されなくてもよく、以下のブロックでは使用されなくてもよい。
a.一例において、DMVRにおいて導出されたサブブロックのMVD精度に基づいて、サブブロックレベルでDMVRを行う場合、異なるサブブロックごとに代替の1/2画素補間フィルタの情報を記憶するか否かを独立して判定してもよい。
b.一例において、導出されたMVDが、サブブロック/ブロックの少なくともN(例えば、N=1)個の場合、X画素よりも細かい精度を有する場合、代替的な1/2画素補間フィルタの情報を記憶せず、後続のブロックに用いられなくてもよい。
7.補間フィルタ情報は、履歴に基づく動きベクトル予測(HMVP)テーブルに記憶されてもよく、HMVPマージ候補によって継承されてもよい。
a.一例において、HMVPルックアップテーブルに新しい候補を挿入するとき、補間フィルタ情報を考慮することができる。例えば、同じ動き情報であるが、補間フィルタ情報が異なる2つの候補を、2つの異なる候補と見なすことができる。
b.一例において、HMVPルックアップテーブルに新しい候補を挿入するとき、同じ動き情報を有するが、補間フィルタ情報が異なる2つの候補を同じ候補と見なすことができる。
8.マージ候補リストにマージ候補を挿入する場合、プルーニング処理において補間フィルタ情報を考慮してもよい。
a.一例において、補間フィルタが異なる2つのマージ候補を、2つの異なるマージ候補と見なすことができる。
b.一例において、HMVPマージ候補をマージリストに挿入するとき、プルーニング処理において補間フィルタ情報を考慮してもよい。
c.一例において、HMVPマージ候補をマージリストに挿入するとき、プルーニング処理において補間フィルタ情報を考慮しなくてもよい。
9.なお、ペアワイズマージ候補および/または結合マージ候補および/またはゼロ動きベクトル候補および/または他のデフォルト候補を生成する場合、常にデフォルト補間フィルタを使用する代わりに、補間フィルタ情報を考慮してもよい。
a.一例において、両方の候補(ペアワイズマージ候補又は/および結合マージ候補の生成に関与する)が同じ代替補間フィルタを使用する場合、このような補間フィルタは、ペアワイズマージ候補又は/および結合マージ候補において継承されてもよい。
b.一例において、2つの候補(ペアワイズマージ候補又は/および結合マージ候補の生成に関与する)のうちの1つがデフォルト補間フィルタを用いない場合、その補間フィルタをペアワイズマージ候補又は/および結合マージ候補に継承してもよい。
c.一例において、2つの候補(結合マージ候補の生成に関与する)のうちの1つがデフォルトの補間フィルタを用いない場合、その補間フィルタを結合マージ候補に継承してもよい。しかしながら、このような補間フィルタは、対応する予測方向にのみ使用してもよい。
d.一例において、2つの候補(結合マージ候補の生成に関与する)が異なる補間フィルタを用いる場合、それらの補間フィルタを両方とも結合マージ候補において継承してもよい。この場合、異なる予測方向に対して異なる補間フィルタを使用してもよい。
e.一例において、K(K≧0)個以下のペアワイズマージ候補又は/および結合されたマージ候補は、代替補間フィルタを使用してもよい。
f.一例において、デフォルト補間フィルタは、ペアワイズマージ候補又は/および結合マージ候補に対して常に使用される。
10.現在のブロックをIBCモードで符号化する場合、1/2画素の動きベクトル/動きベクトル差精度を使用できないようにすることが提案されている。
a.さらに、代替的に、1/2画素MV/MVD精度の使用の指示を信号通知する必要がない。
b.一例において、現在のブロックがIBCモードで符号化される場合、代替の1/2画素補間フィルタは、常に無効にされる。
c.さらに、代替的に、1/2画素補間フィルタの指示を信号通知する必要がない。
d.一例において、「現在のブロックをIBCモードで符号化する」の条件は、「現在のブロックを1つのモードで符号化する」に置き換えてもよい。このようなモードは、三角形モード、マージモード等として定義してもよい。
11.amvr_precision_idxおよび/またはhpel_if_idxを符号化する場合、第1のビンのみをコンテキスト符号化してもよい。
a.さらに、代替的に、他のビンをバイパス符号化してもよい。
b.一例において、amvr_precision_idxの第1のビンを、バイパス符号化してもよい。
c.一例において、hpel_if_idxの第1のビンは、バイパス符号化してもよい。
d.一例において、1つのコンテキストのみが、amvr_precision_idxの第1のビンを符号化するために使用してもよい。
e.一例において、1つのコンテキストのみが、hpel_if_idxの第1のビンを符号化するために使用してもよい。
f.一例において、amvr_precision_idxのすべてのビンは、同じコンテキストを共有してもよい。
g.一例において、hpel_if_idxのすべてのビンは、同じコンテキストを共有してもよい。
12.代替補間フィルタを使用する場合、一部の符号化ツールは許可されない場合がある。
a.一例において、代替補間フィルタを使用する場合、双方向オプティカルフロー(BDOF)は許可されない場合もある。
b.一例において、代替補間フィルタを使用する場合、DMVR又は/およびDMVDは許可されない場合もある。
c.一例において、代替補間フィルタを使用する場合、インター・イントラ結合予測(CIIP)は許可されない場合もある。
i.一例において、マージ候補が代替補間フィルタを継承する場合、CIIPフラグをスキップし、偽であると推論してもよい。
ii.代替的に、CIIPフラグが真である場合、デフォルトの補間フィルタを常に使用してもよい。
d.一例において、代替補間フィルタを使用する場合、SMVD(対称動きベクトル差)は許可されない場合もある。
i.一例において、SMVDを用いる場合、デフォルトの補間フィルタが常に使用され、代替補間フィルタに関する構文要素は信号通知されない。
ii.代替的に、代替補間フィルタに関する構文要素が、代替補間フィルタを使用することを示す場合、SMVDに関する構文要素は信号通知されなくてもよく、SMVDモードは使用されない。
e.一例において、代替補間フィルタを使用する場合、SBT(サブブロック変換)は許可されない場合もある。
i.一例において、SBTを用いる場合、デフォルトの補間フィルタが常に使用され、代替補間フィルタに関する構文要素は信号通知されない。
ii.代替的に、代替補間フィルタに関する構文要素が、代替補間フィルタを使用することを示す場合、SBTに関する構文要素は信号通知されなくてもよく、SBTは使用されない。
f.一例において、代替補間フィルタを使用する場合、三角予測は許可されない場合もある。
i.一例において、補間フィルタ情報は、三角予測において継承されず、デフォルトの補間フィルタのみが使用してもよい。
g.代替的に、代替補間フィルタを使用する場合、三角予測は許可される場合もある。
i.一例において、補間フィルタ情報は、三角予測において継承されてもよい。
h.代替的に、上述した符号化ツールの場合、それが有効にされていれば、代替の1/2画素補間フィルタを無効化することができる。
13.フィルタは、N画素精度MVに適用されてもよい。
a.一例において、Nは、1、2又は4等に等しくてもよい。
b.一例において、このフィルタは、ローパスフィルタであってもよい。
c.一例において、このフィルタは、1-dフィルタであってもよい。
i.例えば、このフィルタは、1次元水平フィルタであってもよい。
ii.例えば、このフィルタは、1-d垂直フィルタであってもよい。
d.一例において、このようなフィルタが使用されているかどうかを示すように、フラグを信号通知してもよい。
i.さらに、代替的に、このようなフラグは、ブロックに対してN-pel MVD精度(AMVRモードで信号伝達される)を使用する場合にのみ信号伝達されてもよい。
14.GBIモードにおける通常のインターモードおよびアフィンモードのために、異なる重み係数セットを使用してもよい。
a.一例において、通常のインターモードおよびアフィンモードに使用される重み係数セットは、SPS/タイルグループヘッダ/スライスヘッダ/VPS/PPS等において信号通知されてもよい。
b.一例において、通常のインターモードおよびアフィンモードに使用される重み係数セットは、エンコーダおよびデコーダにおいて予め規定されてもよい。
15.代替補間フィルタをどのように定義/選択するかは、符号化モード情報に依存してもよい。
a.一例において、アフィンモードおよび非アフィンモードの場合、代替補間フィルタの許容されるセットは異なってもよい。
b.一例において、IBCモードおよび非IBCモードの場合、代替補間フィルタの許容されるセットは異なってもよい。
16.一例において、代替の1/2画素補間フィルタがマージ符号化ブロックにおいて適用されるかまたはスキップ符号化ブロックにおいて適用されるかは、代替の1/2画素補間フィルタが隣接ブロックにおいて適用されるかどうかとは無関係である。
a.一例において、hpel_if_idxはどのブロックに対しても記憶されない。
b.一例において、代替の1/2画素補間フィルタを継承するかまたは廃棄するかは、符号化情報に依存し、かつ/または他の符号化ツールの有効/無効に依存してもよい。
17.一例において、代替の1/2画素補間フィルタが適用される(例えば、マージ符号化ブロックまたはスキップ符号化ブロックにおいて)かどうかは、現在のブロックの符号化情報に依存してもよい。
a.一例において、マージインデックスがKである場合、代替の1/2画素補間フィルタは、マージまたはスキップ符号化ブロックにおいて適用され、Kは、2、3、4、5などの整数である。
b.一例において、マージインデックスIdxがIdx%SはKと等しいことを満たす場合、代替の1/2画素補間フィルタは、マージまたはスキップ符号化ブロックに適用される。ここで、SおよびKは整数である。例えば、Sは2であり、Kは1である。
c.一例において、特定のマージ候補は、代替の1/2画素補間フィルタを適用してもよい。例えば、ペアワイズマージ候補は、代替の1/2画素補間フィルタを適用してもよい。
18.一例において、代替の1/2画素補間フィルタは、アフィンインター予測に使用される1/2画素補間フィルタと位置合わせされてもよい。
a.例えば、統合補間フィルタ係数は、[3、-11、40、40、-11、3]であってもよい。
b.例えば、統合補間フィルタ係数は、[3,9,20,20,9,3]であってもよい。
19.一例において、代替の1/2画素補間フィルタは、クロマインター予測に使用される1/2画素補間フィルタと同一であってもよい。
a.例えば、統合補間フィルタ係数は、[-4、36、36、-4]であってもよい。
20.一例において、代替の補間フィルタは、1/2画素位置のみだけでなく適用さてもよい。
a.例えば、代替の補間フィルタが明確にまたは暗黙に適用されるべきであると示された場合(例えば、hpel_if_idxが1である場合)、かつ、MVがX画素における位置を指し、ここで、Xは1/2に等しくない(例えば、1/4または3/4)場合、X画素位置のための代替の補間フィルタを適用すべきである。代替の補間フィルタは、X画素位置に対して、元の補間フィルタとは異なる少なくとも1つの係数を有するべきである。
b.一例において、上記の黒丸は、デコーダ側動きベクトル微調整(DMVR)又はMMVD若しくはSMVD又は他のデコーダ側動き導出処理の後に適用される。
c.1つの例において、参照ピクチャリサンプリング(RPR)が使用される場合、参照ピクチャが現在のピクチャと異なる解像度を有する場合、上記の黒丸が適用される。
21.代替の補間フィルタは、双予測の場合において、1つの予測方向にのみに適用されてもよい。
22.1つのブロックによって、X画素(例えば、X=1/2)の精度を有するMV成分のための代替の補間フィルタを選択する場合、X画素以外の精度を有するMV成分(例えば、1/4,1/16)が存在すると仮定すると、このようなMV成分に対して、デフォルト補間フィルタの代わりに他の代替の補間フィルタを使用してもよい。
a.一例において、ガウス補間フィルタがX画素精度のMV成分のために選択される場合、ガウス補間フィルタは、X画素以外の精度のMV成分のために使用されてもよい。
b.一例において、フラットトップ補間フィルタが、X画素精度を有するMV成分のために選択される場合、フラットトップ補間フィルタは、X画素以外の精度を有するMV成分のために使用されてもよい。
c.一例において、このような制約は、X画素精度以外の特定のMV精度にのみ適用されてもよい。
i.例えば、このような制約は、X画素よりも精密なMV成分にのみ適用されてもよい。
ii.例えば、このような制約は、X画素よりも精度が粗いMV成分にのみ適用されてもよい。
23.代替の補間フィルタを適用するかどうか、および/またはどのように適用するかは、RPRが使用されるかどうかに依存してもよい。
a.一例において、RPRが使用される場合、代替の補間フィルタを使用すべきではない。
b.一例において、現在のブロックの参照ピクチャが現在のピクチャと異なる解像度である場合、代替の補間フィルタ(例えば、1/2画素補間フィルタ)を使用すべきではない。
【0089】
5.実施形態の例
JVET-O2001-vEの上の黒丸3の例を示す。新しく追加された部品は、太い下線を付けたテキストで強調表示される。
【0090】
8.5.2.2.マージモード用輝度動きベクトルの導出処理
この処理は、general_merge_flag[xCb][yCb]が1である場合にのみ呼び出され、ここで、(xCb,yCb)は、現在のピクチャの左上の輝度サンプルに対して現在の輝度符号化ブロックの左上のサンプルを規定する。
【0091】
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
【0092】
この処理の出力は以下の通りである。
-1/16分数サンプル精度mvL0[0][0]およびmvL1[0][0]における輝度動きベクトル。
-参照インデックスrefIdxL0およびrefIdxL1、
-予測リスト利用フラグpredFlagL0[0][0]およびpredFlagL1[0][0]、
-1/2サンプル補間フィルタインデックスhpelIfIdx、
-双方向予測重みインデックスbcwIdx.
-マージ候補リストmergeCandList。
【0093】
双方向予測重みインデックスbcwIdxは、0に等しく設定される。
【0094】
動きベクトルmvL0[0][0]、mvL1[0]、参照インデックスrefIdxL0、refIdxL1、および予測利用フラグpredFlagLagL0[0][0]、predFlagL1[0][0]は、以下の順序ステップで導出される。
1.8.5.2.3項で規定された近傍の符号化ユニットからの空間的マージ候補の導出処理は、輝度符号化ブロックの位置(xCb,yCb)、輝度符号化ブロックの幅cbWidth、および輝度符号化ブロックの高さcbHeightを入力として呼び出され、出力は、可用性フラグavailableFlagA
0,availableFlagA
1,availableFlagB
0,availableFlagB
1およびavailableFlagB
2、参照インデックスrefIdxLXA
0,refIdxLXA
1,refIdxLXB
0,refIdxLXB
1およびrefIdxLXB
2,予測リスト利用フラグpredFlagLXA
0,predFlagLXA
1,predFlagLXB
0,predFlagLXB
1およびpredFlagLXB
2と、動きベクトルmvLXA
0,mvLXA
1,mvLXB
0,mvLXB
1およびmvLXB
2,但しXが0または1、およびthe half sample interpolation filter indices hpelIfIdxA
0,hpelIfIdxA
1,hpelIfIdxB
0,hpelIfIdxB
1,hpelIfIdxB
2,、および双方向予測重みインデックスbcwIdxA
0,bcwIdxA
1,bcwIdxB
0,bcwIdxB
1,bcwIdxB
2であることを示している。
2.参照インデックスrefIdxLXCol(Xが0または1)および時間的マージ候補Colの双方向予測重みインデックスbcwIdxColが0に設定され、hpelIfIdxColが0に設定される。
3.8.5.2.11項で規定された時間的輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、輝度符号化ブロック幅cbWidth、輝度符号化ブロック高さcbHeight、および変数refIdxL0Colを入力として呼び出され、その出力が可用性フラグavailabilityFlagL0Col、および時間的動きベクトルmvL0Colとなる。変数availableFlagCol、predFlagL0Col、およびpredFlagL1Colは、以下のように導出される。
availableFlagCol=availableFlagL0Col (8-303)
predFlagL0Col=availableFlagL0Col (8-304)
predFlagL1Col=0 (8-305)
4.slice_typeがBである場合、8.5.2.11項で規定された時間的輝度動きベクトル予測の導出処理は、輝度位置(xCb,yCb)、輝度符号化ブロック幅cbWidth、輝度符号化ブロック高さcbHeight、および変数refIdxL1Colを入力として呼び出され、その出力が可用性フラグavailabilityFlagL1Col、および時間的動きベクトルmvL1Colとなる。変数availableFlagColおよびpredFlagL1Colは、以下のように導出される。
availableFlagCol=availableFlagL0Col||availableFlagL1Col (8-306)
predFlagL1Col=availableFlagL1Col (8-307)
5.マージ候補リストmergeCandListは、以下のように構成される。
i=0
if(availableFlagA
1)
mergeCandList[i++]=A
1
if(availableFlagB
1)
mergeCandList[i++]=B
1
if(availableFlagB
0)
mergeCandList[i++]=B
0 (8-308)
if(availableFlagA
0)
mergeCandList[i++]=A
0
if(availableFlagB
2)
mergeCandList[i++]=B
2
if(availableFlagCol)
mergeCandList[i++]=Col
6.変数numCurrMergeCand、およびnumOrigMergeCandは、mergeCandListにおけるマージ候補の数に等しく設定される。
7.numCurrMergeCandが(MaxNumMergeCand-1)よりも小さく、かつNumHmvpCandが0よりも大きい場合、以下が適用される。
- 8.5.2.6項で規定されるような履歴に基づくマージ候補の導出処理は、mergeCandListおよびnumCurrMergeCandを入力として呼び出され、morgeCandListおよびnumCurrMergeCandを出力として修正される。
- OrigMergeCandは、numCurrMergeCandに等しく設定される。
8.numCurrMergeCandがMaxNumMergeCandより小さく、かつ1より大きい場合、以下が適用される。
- 8.5.2.4項で規定されている対の平均マージ候補の導出処理は、mergeCandList、参照インデックスrefIdxL0N、refIdxL1N、予測リスト利用フラグpredFlagL0N、preDFlagL1N、動きベクトルmvL0N、mlvL1N、およびmergeCandListにおけるすべての候補Nの1/2サンプル補間フィルタインデックスhpelIfIdxN、およびnumCurrMergeCandを入力として呼び出され、出力は、mergeCandList、numCurrMergeCand、参照インデックスrefIdxL0avgCandおよびrefIdxL1avgCand、予測リスト利用フラグpredFlagL0avgCandおよびpredFlagL1avgCand、および、mergeCandListに追加される候補avgCandの動きベクトルmvL0avgCandおよびmvL1avgCandに割り当てられる。mergeCandListに追加される候補avgCandの双方向予測重みインデックスbcwIdxは、0に等しく設定される。
- OrigMergeCandは、numCurrMergeCandに等しく設定される。
9.8.5.2. 5項で規定されているゼロ動きベクトルマージ候補の導出処理は、mergeCandList、参照インデックスrefIdxL0NおよびrefIdxL1N、予測リスト利用フラグpredFlagL0NおよびpredFlagL1N、mergeCandListの各候補Nの動きベクトルmvL0NおよびmvL1N、numCurrMergeCandを入力として呼び出され、出力は、mergeCandList、numCurrMergeCand、参照インデックスrefIdxL0zeroCand
mおよびrefIdxL1zeroCand
m、予測リスト利用フラグpredFlagL0zeroCand
mおよびpredFlagL1zeroCand
m、およびmergeCandListに追加されるすべての新しい候補zeroCand
mの動きベクトルmvL0zeroCand
mおよびmvL1zeroCand
mに割り当てられる。mergeCandListに追加されるすべての新しい候補zeroCand
mの1/2サンプル補間フィルタインデックスhpelIfIdxは、0に設定される。mergeCandListに追加されるすべての新しい候補zeroCand
mの双方向予測重みインデックスbcwIdxは、0に等しく設定される。追加される候補の数numZeroMergeCandは、(numCurrMergeCand-numOrigMergeCand)に等しく設定される。numZeroMergeCandが0より大きい場合、mは0からnumZeroMergeCand-1(両端を含む)までの範囲になる。
10.マージ候補リストmergeCandList(N=mergeCandList[merge_idx[xCb][yCb])における位置merge_idx[xCb][yCb]の候補をNとし、Xを0または1に置き換えることにより、以下の割り当てを行う。
refIdxLX=refIdxLXN (8-309)
predFlagLX[0][0]=predFlagLXN (8-310)
mvLX[0][0][0]=mvLXN[0] (8-311)
mvLX[0][0][1]=mvLXN[1] (8-312)
hpelIfIdx=hpelIfIdxN (8-313)
bcwIdx=bcwIdxN (8-314)
11.mmvd_merge_flag[xCb][yCb]が1と等しい場合、以下が適用される。
- 8.5.2.7で規定されるようなマージ動きベクトル差の導出処理が、輝度位置(xCb,yCb)、参照インデックスrefIdxL0、refIdxL1、および予測リスト利用フラグpredFlagL0[0][0]およびpredFlagL1[0][0]を入力として、また、動きベクトル差mMvdL0、mMvdL1を出力として呼び出される。
- 動きベクトル差mMvdLXは、Xが0および1である場合、マージ動きベクトルmvLXに以下のように加算される。
mvLX[0][0][0]+=mMvdLX[0] (8-315)
mvLX[0][0][1]+=mMvdLX[1] (8-316)
mvLX[0][0][0]=Clip3(-2
17,2
17-1,mvLX[0][0][0]) (8-317)
mvLX[0][0][1]=Clip3(-2
17,2
17-1,mvLX[0][0][1]) (8-318)
【化1】
【0095】
6.開示される技術の例示的な実装形態
図11Aは、映像処理装置1100のブロック図である。装置1100は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置1100は、スマートフォン、タブレット、コンピュータ、IoT(モノのインターネット)受信機等により実施されてもよい。装1100は、1つ以上の処理装1102と、1つ以上のメモリ1104と、映像処理ハードウェ1106と、を含んでもよい。処理装置(単数または複数1102は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(単数または複数)1104は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア1106を使用して、ハードウェア回路において、本明細書に記載されるいくつかの技術を実装してもよく、一部又は全部が処理装置1102の一部(例えば、グラフィック処理装置コアGPU又は他の信号処理回路)であってもよい。
【0096】
図11Bは、開示された技術が実装され得る映像処理システムのブロック図の別の例である。
図11Bは、本明細書に開示される様々な技術を実装することができる例示的な映像処理システム1150を示すブロック図である。様々な実装形態は、システム1150のモジュールの一部又は全部を含んでもよい。システム1150は、映像コンテンツを受信するための入力ユニット1152を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1152は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0097】
システム1150は、本明細書に記載される様々な符号化又は符号化方法を実装することができる符号化モジュール1154を含んでもよい。符号化モジュール1154は、入力ユニット1152からの映像の平均ビットレートを符号化モジュール1154の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール1154の出力は、モジュール1156によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1152において受信された、記憶された又は通信された映像のビットストリーム(又は符号化)表現は、モジュール1158によって使用されて、表示インターフェースユニット1160に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作又はツールと呼ぶが、符号化ツール又は動作は、エンコーダおよびそれに対応する、復号化の結果を逆にする復号化ツール又は動作が、デコーダによって行われることが理解されよう。
【0098】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI)またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理および/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0099】
本特許文献に記載される映像処理方法は、
図11Aまたは
図11Bに記載されるようなハードウェアプラットフォームに実装される装置を使用して実施されてもよい。
【0100】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にこのツールまたはモードを使用するまたは実装するが、このツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、この映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
【0101】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて無効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
【0102】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。
【0103】
開示された方法および技法は、本明細書に開示された技法を使用できるようにすることで、スマートフォン、ノートパソコン、卓上パソコン、および類似した機器等の映像処理デバイスに組み込まれる映像エンコーダおよび/またはデコーダの実施形態に有益となることが理解される。
【0104】
図12は、映像処理の方法2000の一例を示すフローチャートである。方法1200は、1210において、近傍のブロックのセットに少なくとも1つの補間フィルタを適用することに基づいて、現在の映像ブロックに対して動き情報の1つのセットを判定し、少なくとも1つの補間フィルタは、動き情報の1つのセットの整数画素精度またはサブ画素精度に構成可能である。方法1200は、1220において、前記現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との変換を行うことを含み、前記変換は、前記ビットストリーム表現において信号通知される前記単一の動き情報のセットを微調整するためのデコーダ動きベクトル微調整(DMVR)ステップを含む。
【0105】
項目の第1のセットは、前章で開示された技術のいくつかの実施形態を説明する。
【0106】
1.1つの現在の映像ブロックに対して、1つの近傍のブロックのセットに少なくとも1つの補間フィルタを適用することに基づいて、単一の動き情報のセットを判定することであって、前記少なくとも1つの補間フィルタは、前記単一の動き情報のセットの整数画素精度又はサブピクセル精度に構成可能であり、前記現在の映像ブロックと前記現在の映像ブロックのビットストリーム表現との間での変換を行うことであって、前記変換は、前記ビットストリーム表現において信号通知される前記単一の動き情報のセットを微調整するためのデコーダ動きベクトル微調整(DMVR)ステップを含む、映像処理方法。
【0107】
2.前記単一の動き情報のセットが適応型動きベクトル解像度(AMVR)モードに関連付けられている場合、前記少なくとも1つの補間フィルタのインデックスを前記ビットストリーム表現において信号通知する、項目1に記載の方法。
【0108】
3.前記単一の動き情報のセットが1つのマージモードに関連付けられている場合、前記少なくとも1つの補間フィルタのインデックスを前の映像ブロックから継承される、項目1に記載の方法。
【0109】
4.前記単一の動き情報のセットが動きベクトル差(MMVD)モードでのマージに関連付けられる場合、少なくとも1つの補間フィルタのインデックスを前の映像ブロックから継承する、項目1に記載の方法。
【0110】
5.前記少なくとも1つの補間フィルタは、サブピクセル精度を有するデフォルトフィルタに対応し、前記単一の動き情報のセットは、動きベクトル差分(MMVD)モードでのマージに関連付けられる、項目1に記載の方法。
【0111】
6.前記現在の映像ブロックのための前記少なくとも1つの補間フィルタの係数が、前記前の映像ブロックから継承される、項目2~4のいずれか1つに記載の方法。
【0112】
7.前記単一の動き情報のセットの前記サブピクセル精度は、1/4画素又は1/16画素に等しい、項目1~6のいずれかに記載の方法。
【0113】
8.前記単一の動き情報のセットの1つ以上の成分がサブピクセル精度を有する、項目1~7のいずれかに記載の方法。
【0114】
9.前記少なくとも1つの補間フィルタは、6つの係数又は8つの係数を使用して表される、項目1に記載の方法。
【0115】
10.前記少なくとも1つの補間フィルタのインデックスは、現在の映像ブロックにのみ関連付けられ、後続の映像ブロックには関連付けられない、項目5に記載の方法。
【0116】
11.前記少なくとも1つの補間フィルタに関する情報が、前記単一の動き情報のセットとともに記憶される、項目1に記載の方法。
【0117】
12.前記少なくとも1つの補間フィルタに関する情報は、前記少なくとも1つの補間フィルタをデフォルトフィルタとして特定する、項目11に記載の方法。
【0118】
13.前記現在の映像ブロックのための前記少なくとも1つの補間フィルタの係数が、別の映像ブロックの補間フィルタによって利用されないようにする、項目1に記載の方法。
【0119】
14.前記少なくとも1つの補間フィルタは、複数のフィルタに対応し、各フィルタは、前記複数のフィルタにおける、前記単一の動き情報のセットの前記サブピクセル精度に関連付けられる、項目1~13のいずれかに記載の方法。
【0120】
15.前記単一の動き情報のセットの各成分の精度が、前記単一の動き情報のセットのサブピクセル精度以下である、項目1~14のいずれかに記載の方法。
【0121】
16.前記少なくとも1つの補間フィルタは、履歴に基づく動きベクトル予測(HMVP)ルックアップテーブルに記憶される、項目1~15のいずれかに記載の方法。
【0122】
17.第16項に記載の方法であって、さらに、
別の映像ブロックの動き情報が現在の映像ブロックの1つの動きセットと同じであることを検出すると、この単一の動き情報のセットを、別の映像ブロックの動き情報を挿入せずにHMVPテーブルに挿入することを含む、方法。
【0123】
18.第16項に記載の方法であって、さらに、
別の映像ブロックの動き情報が現在の映像ブロックの1つの動きセットと同じであることを検出すると、HMVPテーブルに、現在の映像ブロックの1つの動き情報セットと別の映像ブロックの動き情報を挿入することを含む、方法。
【0124】
19.前記別の映像ブロックは1つの補間フィルタに関連し、前記挿入は、現在の映像ブロックの少なくとも1つの補間フィルタおよび/または前記別の映像ブロックの補間フィルタに少なくとも部分的に基づく、項目17~18のいずれか1つに記載の方法。
【0125】
20.前記現在の映像ブロックと別の映像ブロックとは、ペアワイズ候補又は結合されたマージ候補に対応する、項目17~19のいずれかに記載の方法。
【0126】
21.前記現在の映像ブロックの前記少なくとも1つの補間フィルタと前記別の映像ブロックの前記補間フィルタとが同じである、項目17~20のいずれかに記載の方法。
【0127】
22.前記現在の映像ブロックの前記少なくとも1つの補間フィルタと前記別の映像ブロックの前記補間フィルタとが異なる、項目17~20のいずれかに記載の方法。
【0128】
23.前記現在の映像ブロックは、イントラブロックコピー(IBC)モードで符号化され、前記単一の動き情報のセットの表現における前記サブピクセル精度の使用が無効化される、項目1に記載の方法。
【0129】
24.前記少なくとも1つの補間フィルタの使用が無効にされる、項目1~23のいずれかに記載の方法。
【0130】
25.前記少なくとも1つの補間フィルタは、amvr_precision_idxフラグおよび/またはhpel_if_idxフラグに関連付けられる、項目1に記載の方法。
【0131】
26.前記amvr_precision_idxフラグおよび/またはhpel_if_idxフラグが、バイパス符号化ビン又はコンテキスト符号化ビンに関連付けられる、項目25に記載の方法。
【0132】
27.第1のビンは、バイパス符号化ビン又はコンテキスト符号化ビンである、項目26に記載の方法。
【0133】
28.すべてのビンが同じコンテキストを共有する、項目25~27のいずれかに記載の方法。
【0134】
29.前記少なくとも1つの補間フィルタを用いることに基づいて、1つ以上の映像処理ステップを無効化する、項目1に記載の方法。
【0135】
30.前記1つ以上の映像処理ステップは、前記デコーダ動きベクトル微調整(DMVR)ステップと、双方向オプティカルフロー(BDOF)ステップと、インター・イントラ結合予測(CIIP)ステップと、対称動きベクトル差(SMVD)ステップと、サブブロック変換(SBT)ステップと、三角形予測ステップと、を含む項目29に記載の方法。
【0136】
31.前記少なくとも1つの補間フィルタは、デフォルトフィルタに対応する、項目30に記載の方法。
【0137】
32.前記1つ以上の映像処理ステップを無効化することは、前記ビットストリーム表現において、前記1つ以上の映像処理ステップの指示を無効化することを含む、項目30~31のいずれかに記載の方法。
【0138】
33.前記1つ以上の映像処理ステップを無効化することは、前記現在の映像ブロックの前記少なくとも1つの補間フィルタを別の映像ブロックに継承することを無効化することを含む、項目30~31のいずれかに記載の方法。
【0139】
34.前記単一の動き情報のセットの前記整数画素精度は、1画素、2画素、又は4画素に対応する、項目1に記載の方法。
【0140】
35.前記少なくとも1つの補間フィルタは、ローパスフィルタである、項目34に記載の方法。
【0141】
36.前記少なくとも1つの補間フィルタは1次元フィルタである、項目34に記載の方法。
【0142】
37.前記1次元フィルタは、水平フィルタ又は垂直フィルタである、項目36に記載の方法。
【0143】
38.前記ビットストリーム表現におけるフラグは、前記少なくとも1つの補間フィルタを用いるどうかを示す、項目34に記載の方法。
【0144】
39.前記現在の映像ブロックが適応型動きベクトル解像度(AMVR)モードに関連付けられる、項目1~38のいずれかに記載の方法。
【0145】
40.前記現在の映像ブロックのインターモードのための前記少なくとも1つの補間フィルタは、現在の映像ブロックの一般化された双予測(GBI)モードとは異なる、項目1~39のいずれか1つに記載の方法。
【0146】
41.前記少なくとも1つの補間フィルタは、予め判定される、項目1~40のいずれかに記載の方法。
【0147】
42.前記ビットストリーム表現は、現在の映像ブロックに関連付けられた映像パラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルグループヘッダ、又はスライスヘッダを含む、項目1~41のいずれかに記載の方法。
【0148】
43.前記映像処理は、エンコーダ側の実装形態である、項目1~42のいずれか1項目以上に記載の方法。
【0149】
44.前記映像処理は、デコーダ側の実装形態である、項目1~70のいずれか1項目以上に記載の方法。
【0150】
45.処理装置と、その処理装置に命令が記憶された非一時的メモリとを備える装置であって、命令が処理装置によって実装されることにより、処理装置に、項目1~44のいずれかに記載の方法を実施させる映像システムの装置。
【0151】
46.非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって項目1~45のいずれか1項以上に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【0152】
項の第2のセットでは、前章に開示された技術のいくつかの実施形態、例えば、実施形態3-6および16-23を説明する。
【0153】
1.映像の現在のピクチャの現在の映像ブロックと映像の符号化表現との変換のために、代替の補間フィルタの適用可能性を判定すること(1412)と、ここで前記代替の補間フィルタの適用可能性は、前記変換においてこの代替の補間フィルタを適用するかどうかを示し、この判定することに基づいて、前記変換を行うこと(1414)と、を含み、代替の補間フィルタの適用可能性は、現在のピクチャの参照ピクチャをリサンプリングして変換を行う参照ピクチャリサンプリングが使用されるかどうかに基づいて判定される、映像処理方法(例えば、
図14Aに示す方法1410)。
【0154】
2.前記参照ピクチャのリサンプリングを使用することによって、代替の補間フィルタを適用しない、項目1に記載の方法。
【0155】
3.前記参照ピクチャは、現在のピクチャの解像度と異なる解像度を有する、項目2に記載の方法。
【0156】
4.前記判定することが前記代替の補間フィルタを適用しないと判定した場合、デフォルト補間フィルタを適用する、項目1に記載の方法。
【0157】
5.前記デフォルト補間フィルタは、フィルタ係数[-1,4,-11,40,40,-11,4,-1]を有する8タップフィルタに対応する、項目4に記載の方法。
【0158】
6.前記代替の補間フィルタは、フィルタ係数[3,9,20,20,9,3]を有する6タップフィルタに対応する、項目1~5のいずれかに記載の方法。
【0159】
7.前記代替の補間フィルタは、前記現在の映像ブロックの予測に使用される1/2画素補間フィルタである、項目1~6のいずれかに記載の方法。
【0160】
8.前記代替の補間フィルタを使用する場合、前記現在の映像ブロックを、1/2画素の位置を指す少なくとも1つの動きベクトルで符号化する、項目1~7のいずれかに記載の方法。
【0161】
9.前記現在の映像ブロックは、前記代替の補間フィルタが使用される場合、水平1/2画素位置または垂直1/2画素位置、または水平および垂直1/2画素位置を指す少なくとも1つの動きベクトルで符号化される、項目1~8のいずれかに記載の方法。
【0162】
10.映像の現在の映像ブロックを、動き候補と開始点との距離に関する情報を提供する動きベクトル表現を含む動きベクトル差を有するマージモード(MMVD)として表現するために使用される符号化モードを判定すること(1422)と、
この判定することに基づいた前記現在の映像ブロックおよび符号化表現に基づいて、変換を行うこと(1424)と、を含み、
前記変換は、1/2画素補間フィルタがデフォルトの1/2画素補間フィルタとは異なる代替の1/2画素補間フィルタであるという第1の条件を定義する第1の規則と、前記代替の1/2画素補間フィルタを継承するかどうかについての第2の条件を定義する第2の規則とに従って選択される前記1/2画素補間フィルタを使用して算出された前記現在の映像ブロックのための予測ブロックを使用して行われる、映像処理方法(例えば、
図14Bに示す方法1420)。
【0163】
11.前記第2の規則は、距離がX画素精度またはX画素精度よりも粗い精度のいずれかを有する場合、代替の1/2画素補間フィルタを継承することを規定する、項目10に記載の方法。
【0164】
12.Xは1/2であり、より粗い精度は1、2、または4である、項目11に記載の方法。
【0165】
13.前記第2の規則は、距離がX画素精度またはX画素精度よりも細かい精度のいずれかを有する場合、代替の1/2画素補間フィルタを継承しないことを規定する、項目10に記載の方法。
【0166】
14.Xは1/4であり、より微細な精度は1/16である、項目13に記載の方法。
【0167】
15.映像の現在の映像領域で使用される符号化モードを判定すること(1432)と、符号化モードに基づいて、現在の映像領域の動きベクトルまたは動きベクトル差分値を表すために使用される精度の判定を行うこと(1434)と、現在の映像ブロックと前記映像の符号化表現との変換を行うこと(1436)と、を含む、映像処理方法(例えば、
図14Cに示す方法1430)。
【0168】
16.前記判定を行うことは、前記精度を継承するかどうかを判定することを含む、項目15に記載の方法。
【0169】
17.前記精度が継承されない場合、この方法は、前記精度を記憶することをさらに含む、項目15に記載の方法。
【0170】
18.前記精度が継承される判定によって、前記変換は、前記精度を直接に信号通知することなく、現在の映像領域を前記符号化表現に符号化することを含む、項目15に記載の方法。
【0171】
19.前記精度が継承されていない判定によって、前記変換は、精度を信号通知することによって、現在の映像領域を符号化して符号化表現にすることを含む、項目15に記載の方法。
【0172】
20.前記映像領域は、映像ブロック、符号化ユニット、または予測ユニットに対応する、項目15に記載の方法。
【0173】
21.前記映像領域が、符号化ユニットに対応する、項目15に記載の方法。
【0174】
22.前記映像領域は、予測ユニットに対応する、項目15に記載の方法。
【0175】
23.前記符号化モードは、空間的および時間的に隣接するブロックから動き候補を導出する高度動きベクトル予測(AMVP)モード、アフィンインターモード、マージモード、および/またはアフィンマージモードに対応する、項目15に記載の方法。
【0176】
24.近傍のブロックから導出された候補に対して、該近傍のブロックに使用される動きベクトルまたは動きベクトル差分値を表すための精度を継承する、項目15に記載の方法。
【0177】
25.同じ精度を有する2つの空間マージ候補に関連付けられたペアワイズマージ候補に対して、ペアワイズマージ候補に同じ精度を割り当て、そうでない場合、ペアワイズマージ候補に固定動き精度情報を割り当てる、項目15に記載の方法。
【0178】
26.時間マージ候補に対して、固定精度を割り当てる、項目15に記載の方法。
【0179】
27.前記現在の映像領域を符号化するか、または復号化された表現を生成する前に、少なくとも1つの履歴に基づく動きベクトル予測(HMVP)テーブルを維持することをさらに含み、前記HMVPテーブルは、1つ以上の前回処理されたブロックの動き情報に対応する1つ以上のエントリを含み、前記精度はHMVPテーブルに記憶され、HMVPマージ候補によって継承される項目15に記載の方法。
【0180】
28.動きベクトル差で動き情報を更新する動きベクトル差を有するマージモード(MMVD)で符号化された現在の映像領域に対して、ベースマージ候補の精度を継承する、項目15に記載の方法。
【0181】
29.継承すると判定された精度を使用して、後続の映像領域の精度を予測する、項目15または16に記載の方法。
【0182】
30.マージモードで符号化された映像ブロックの動きベクトルを、現在の映像領域の精度に丸める、項目15に記載の方法。
【0183】
31.映像の現在の映像ブロックの符号化モードを、動きベクトル差を有するマージモード(MMVD)として判定すること(1442)と、現在の映像ブロックに関連付けられたベースマージ候補の動き精度情報に基づいて、現在の映像ブロックに対して、距離インデックスと、予め定義されたオフセットとの関係を規定する距離テーブルを判定すること(1444)と、前記距離テーブルを使用して、前記現在の映像ブロックと前記映像の符号化表現との変換を行うこと(1446)と、を含む、映像処理方法(例えば、
図14Dに示す方法1440)。
【0184】
32.Nが正の整数であり、ベースマージ候補が1/N画素精度を有する場合、1/N画素精度または1/N画素より粗い精度を有する距離を使用する、項目31に記載の方法。
【0185】
33.Nが2であり、距離が1/2画素、1画素、または2画素である、項目31に記載の方法。
【0186】
34.前記ベースマージ候補の動き精度情報に基づいて、分数距離を含む距離テーブルを修正する、項目31に記載の方法。
【0187】
35.MMVDモードに対して分数距離が許容されるかどうかを示すように、フラグが信号通知される、項目34に記載の方法。
【0188】
36.NおよびMが正の整数であり、ベースマージ候補が1/N画素精度を有し、距離テーブルの最も細かい動きベクトル差精度が1/M画素精度を有する場合、距離テーブルにおける距離にM/Nを乗算する、項目34に記載の方法。
【0189】
37.第1の映像領域のためのデコーダ側動きベクトル微調整(DMVR)計算に使用される動きベクトル差が、Xが整数分の1であるX画素解像度より細かい解像度を有し、代替の1/2画素補間フィルタを使用して判定された第1の判定を行うこと(1452)と、第1の判定によって、第1の映像領域に関連付けられた代替の1/2画素補間フィルタの情報を記憶せず、または後に処理される第2の映像領域には利用可能としない第2の判定を行うこと(1454)と、前記第1の判定および前記第2の判定に基づいて、前記第1の映像領域および前記第2の映像領域からなる映像と、前記映像の符号化表現との変換を行うこと(1456)と、を含む映像処理方法(例えば、
図14Eに示す方法1450)。
【0190】
38.前記映像領域が、映像ブロック、符号化ユニット、又は予測ユニットに対応する、項目37に記載の方法。
【0191】
39.前記第2の判定は、DMVRがサブブロックレベルで行われる場合、前記映像のサブブロックごとに行われる項目37に記載の方法。
【0192】
40.前記動きベクトルの差は、前記映像の少なくともN個のサブブロックまたはブロックのために、X画素解像度よりも細かい解像度を有する、項目37に記載の方法。
【0193】
41.規則に従って、代替の1/2画素補間フィルタが映像の現在の映像ブロックに利用可能であるかどうかを判定すること(1462)と、前記判定することに基づいて、現在の映像ブロックとこの映像の符号化表現との変換を行うこと(1464)と、を含み、前記規則は、現在の映像ブロックがこの符号化表現においてマージブロック又はスキップ符号化ブロックとして符号化されている場合、前記判定することは、前記代替の1/2画素補間フィルタがこの現在の映像ブロックの前に符号化又は復号化された前のブロックを処理するために使用されるかどうかとは無関係であることを規定する、映像処理方法(例えば、
図14Fに示す方法1460)。
【0194】
42.前記代替の1/2画素補間フィルタを前記変換に使用するかどうかを識別するパラメータは、前記映像のどのブロックに対しても記憶されない、項目41に記載の方法。
【0195】
43.代替の1/2画素補間フィルタを継承するか廃棄するかは、現在の映像ブロックにおいて有効または無効にされた符号化情報および/または符号化ツールに依存する、項目41の方法。
【0196】
44.規則に従って、代替の1/2画素補間フィルタが映像の現在の映像ブロックに利用可能であるかどうかを判定すること(1462)と、前記判定することに基づいて、現在の映像ブロックとこの映像の符号化表現との変換を行うこと(1464)と、を含み、前記規則は、現在の映像ブロックの符号化情報に基づいて、デフォルトの1/2画素補間フィルタとは異なる代替の1/2画素補間フィルタの適用可能性を規定する、映像処理方法(例えば、
図14Fに示す方法1460)。
【0197】
45.前記現在の映像ブロックは、符号化表現において、マージブロックまたはスキップ符号化ブロックとして符号化される、項目44に記載の方法。
【0198】
46.前記符号化表現は、Kが正の整数であり、Kと等しいマージインデックスを含む場合、代替の1/2画素補間フィルタは、マージまたはスキップモードで符号化された現在の映像ブロックに適用される、項目44に記載の方法。
【0199】
47.前記符号化表現は、SおよびKが正の整数であり、Idx%SがKと等しいことを満たすマージインデックスIdxを含む場合、代替の1/2画素補間フィルタは、マージモードまたはスキップモードで符号化された現在の映像ブロックに適用される、項目44に記載の方法。
【0200】
48.前記代替の1/2画素補間フィルタを特定のマージ候補に適用する、項目44に記載の方法。
【0201】
49.前記特定のマージ候補は、ペアワイズマージ候補に対応する、項目48に記載の方法。
【0202】
50.映像の現在の映像ブロックに対して、規則に従って代替の1/2画素補間フィルタの係数を判定すること(1472)と、判定することに基づいて、現在の映像ブロックと映像の符号化表現との変換を行うこと(1474)と、を含み、前記規則は、代替の1/2画素補間フィルタと、特定の符号化モードで使用される1/2画素補間フィルタとの関係を規定する、映像処理方法(例えば、
図14Gに示す方法1470)。
【0203】
51.前記規則は、代替の1/2画素補間フィルタを、アフィンインター予測に使用される1/2画素補間フィルタに位置合わせすることを規定する項目50に記載の方法。
【0204】
52.前記代替補間フィルタは、[3,-11,40,40,-11,3].の係数セットを有する、項目51に記載の方法。
【0205】
53.前記代替補間フィルタは、[3,9,20,20,9,3].の係数セットを有する、項目51に記載の方法。
【0206】
54.前記規則は、代替の1/2画素補間フィルタを、クロマインター予測に使用される1/2画素補間フィルタと同一であることを規定する項目50に記載の方法。
【0207】
55.前記代替補間フィルタは、[-4,36,36,-4].の係数セットを有する、項目54に記載の方法。
【0208】
56.映像の現在の映像ブロックと映像の符号化表現との変換のために、規則に従って代替の1/2画素補間フィルタを適用すること(1482)と、前記現在の映像ブロックと映像の符号化表現との変換を行うこと(1484)とを含み、前記規則は、この代替の補間フィルタをX画素における位置に適用することを規定し、Xは1/2以外である、映像処理方法(例えば、
図14Hに示す方法1480)。
【0209】
57.前記代替の補間フィルタの使用が、明確にまたは暗黙に示される、項目56に記載の方法。
【0210】
58.前記代替の補間フィルタは、X画素での位置に割り当てられているデフォルト補間フィルタの係数とは異なる少なくとも1つの係数を有する、項目57に記載の方法。
【0211】
59.前記代替の1/2画素補間フィルタを前記適用することは、デコーダ側動きベクトル微調整(DMVR)または動きベクトル差を有するマージモード(MMVD)もしくは対称動きベクトル差異(SMVD)または他のデコーダ側動き導出処理の後に行われる、項目56に記載の方法。
【0212】
60.前記代替の1/2画素補間フィルタを前記適用することは、参照ピクチャリサンプリング(RPR)が使用され、参照ピクチャが現在の映像ブロックを含む現在のピクチャの解像度と異なる解像度を有する場合に行われる、項目56に記載の方法。
【0213】
61.現在の映像ブロックが双予測を使用する場合、代替の1/2画素補間フィルタを1つの予測方向にのみ適用する、項目56~60のいずれかに記載の方法。
【0214】
62.X画素精度を有する第1の動きベクトル成分に対して、映像の第1の映像ブロックによって代替の補間フィルタを選択する第1の判定を行うこと(1492)と、第1の判定によって、別の代替の補間フィルタを、Xが整数分の1であるX画素精度とは異なる精度を有する第2の動きベクトル成分に使用する第2の判定を行うこと(1494)と、第1の映像ブロックと第2の映像ブロックとを含む映像と、映像の符号化表現との変換を行うこと(1496)と、を含む映像処理方法(例えば、
図14Iに示す方法1490)。
【0215】
63.前記代替の補間フィルタおよび前記他の代替の補間フィルタは、ガウス補間フィルタに対応する、項目62に記載の方法。
【0216】
64.代替の補間フィルタおよび他の代替の補間フィルタは、フラットップ補間フィルタに対応する、項目62に記載の方法。
【0217】
65.前記第2の動きベクトル成分は、前記X画素精度より細かい精度を有する、項目62に記載の方法。
【0218】
66.前記第2の動きベクトル成分は、前記X画素精度よりも粗い精度を有する、項目62に記載の方法。
【0219】
67.前記変換を行うことは、前記現在の映像ブロックから前記符号化表現を生成することを含む、項目1~66のいずれかに記載の方法。
【0220】
68.前記変換を行うことは、前記符号化表現から前記現在の映像ブロックを生成することを含む、項目1~66のいずれかに記載の方法。
【0221】
69.処理装置と、その処理装置に命令が記憶された非一時的メモリとを備える装置であって、命令が処理装置によって実装されることにより、処理装置に、項目1~68のいずれか1項目に記載の方法を実施させる映像システムの装置。
【0222】
70.非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、第1~68項のいずれか1項に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【0223】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0224】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、成分、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0225】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0226】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0227】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0228】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0229】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。