JP2024514103A - インター予測モードにおけるテンプレートマッチングの改善 - Google Patents

インター予測モードにおけるテンプレートマッチングの改善 Download PDF

Info

Publication number
JP2024514103A
JP2024514103A JP2023560893A JP2023560893A JP2024514103A JP 2024514103 A JP2024514103 A JP 2024514103A JP 2023560893 A JP2023560893 A JP 2023560893A JP 2023560893 A JP2023560893 A JP 2023560893A JP 2024514103 A JP2024514103 A JP 2024514103A
Authority
JP
Japan
Prior art keywords
motion vector
current block
block
determining
inter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023560893A
Other languages
English (en)
Inventor
ヤオ-ジェン・チャン
ハン・フアン
ヴァディム・セレジン
チュン-チ・チェン
マルタ・カルチェヴィッチ
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Priority claimed from PCT/US2022/021551 external-priority patent/WO2022221013A1/en
Publication of JP2024514103A publication Critical patent/JP2024514103A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、処理回路構成とを含む。処理回路構成は、ビデオデータの現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断し、現在のブロック用にテンプレートマッチングが有効にされていると判断し、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断し、予測ブロックに基づいて、現在のブロックを再構築するように構成される。

Description

本出願は、2022年3月22日に出願された米国特許出願第17/655,895号、ならびに2021年4月12日に出願された米国仮特許出願第63/173,834号、および2021年4月19日に出願された米国仮特許出願第63/176,798号の優先権を主張し、それらの出願の各々の内容全体は、参照により本明細書に組み込まれる。米国特許出願第17/655,895号は、2021年4月12日に出願された米国仮特許出願第63/173,834号、および2021年4月19日に出願された米国仮特許出願第63/176,798号の利益を主張する。
本開示は、ビデオ符号化およびビデオ復号に関する。
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4, Part 10、アドバンストビデオコーディング(AVC)、ITU-TH.265/高効率ビデオコーディング(HEVC)、ITU-T H.266/多用途ビデオコーディング(VVC)によって定義された規格、およびそのような規格の拡張、ならびにAlliance for Open Mediaによって開発されたAOMedia Video 1(AV1)などの固有ビデオコーデック/フォーマットに記載されている技法などのビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオピクチャ、またはビデオピクチャの一部分)は、ビデオブロックに区分されてよく、ビデオブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードと呼ばれることもある。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
米国仮出願第63/167,480号 米国仮出願第63/173,861号 米国仮出願第63/173,949号
J. Chen、Y. Ye、およびS.-H. Kim、「Algorithm description for Versatile Video Coding and Test Model 9(VTM9)」、JVET-R2002、2020年4月 Chenら、「Description of SDR, HDR and 360o video coding technology proposal by Qualcomm and Technicolor - low and high complexity versions」、ITU-T SG 16 WP 3のJoint Video Exploration Team(JVET)およびISO/IEC JCT 1/SC 29/WG 11、第10回会合:サンディエゴ、2018年4月10~20日 Changら、「Compression efficiency methods beyond VVC」、ITU-T SG 16 WP 3のJoint Video Experts Team(JVET)およびISO/IEC JCT 1/SC 29/WG 11、遠隔会議による第21回会合、2021年1月6~15日 Zhaoら、「Non-CE: Weighted intra and inter prediction mode」、ITU-T SG 16 WP 3のJoint Video Experts Team(JVET)およびISO/IEC JTC 1/SC 29/WG 11、第15回会合:イェーテボリ、2019年7月3~12日、JVET-O0537
概して、本開示は、複合インター/イントラ予測(CIIP)、幾何学区分モード(GPM)、または多重仮説予測(MHP)などのインター予測モードにおいてテンプレートマッチング(TM)改善を使用するための技法について記載する。このようにして、改善されたTMに関連付けられたビデオコーディング利得は、いくつかの例として、CIIP、GPM、およびMHPなどのインター予測モードに拡張することができ、ビデオコーディング技術の運用を向上させる実用的アプリケーションを提供する。
一例では、本開示は、ビデオデータを復号する方法について記載し、この方法は、現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断するステップと、現在のブロック用にテンプレートマッチングが有効にされていると判断するステップと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するステップと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断するステップと、予測ブロックに基づいて、現在のブロックを再構築するステップとを含む。
一例では、本開示は、ビデオデータを復号するためのデバイスについて記載し、このデバイスは、ビデオデータを記憶するように構成されたメモリと、処理回路構成とを備え、処理回路構成は、ビデオデータの現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断し、現在のブロック用にテンプレートマッチングが有効にされていると判断し、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断し、予測ブロックに基づいて、現在のブロックを再構築するように構成される。
一例では、本開示は、命令を記憶するコンピュータ可読ストレージについて記載し、命令は、実行されると、1つまたは複数のプロセッサに、現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断させ、現在のブロック用にテンプレートマッチングが有効にされていると判断させ、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成させ、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断させ、予測ブロックに基づいて、現在のブロックを再構築させる。
一例では、本開示は、ビデオデータを符号化する方法について記載し、この方法は、現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断するステップと、現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断するステップと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するステップと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断するステップと、予測ブロックと現在のブロックとの間の残差を示す情報をシグナリングするステップとを含む。
一例では、本開示は、ビデオデータを符号化するためのデバイスについて記載し、このデバイスは、ビデオデータを記憶するように構成されたメモリと、処理回路構成とを備え、処理回路構成は、現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断し、現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断し、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断し、予測ブロックと現在のブロックとの間の残差を示す情報をシグナリングするように構成される。
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
本開示の技法を実施し得る例示的なビデオ符号化および復号システムを示すブロック図である。 本開示の技法を実施し得る例示的なビデオエンコーダを示すブロック図である。 本開示の技法を実施し得る例示的なビデオデコーダを示すブロック図である。 本開示の技法による、現在のブロックを符号化するための例示的な方法を示すフローチャートである。 本開示の技法による、現在のブロックを復号するための例示的な方法を示すフローチャートである。 初期動きベクトル(MV)の周囲の探索エリアに対して実行されるテンプレートマッチングの例を示す概念図である。 位置依存予測複合(PDPC)を使う拡張型複合インター/イントラ予測(CIIP)の例を示すフローチャートである。 幾何学区分モード(GPM)のための異なる区分の例を示す概念図である。 GPM用の動きベクトルを判断するためのマージインデックスの例を示すテーブルである。 4パラメータアフィンモデルの例を示す概念図である。 6パラメータアフィンモードの例を示す概念図である。 サブブロックごとのアフィン動きベクトルフィールドの例を示す概念図である。 ビデオデータを符号化する例を示すフローチャートである。 ビデオデータを復号する例を示すフローチャートである。
より詳しく記載するように、テンプレートマッチング(TM)改善は、ビデオデコーダが、テンプレート内で最も厳密な一致を見つけることによって、現在のブロックに対する動きベクトルを改善するために使用する技法である。たとえば、ビデオデコーダは、現在のブロックに対する初期動きベクトルを判断し得る。初期動きベクトルは、探索範囲ともいう探索エリアを、参照ピクチャ内に定義し得る。探索エリアは、初期動きベクトルによってポイントされる参照ピクチャ中のサンプルの周囲の矩形エリアであってよい。ビデオデコーダは、探索エリア内の参照テンプレート(たとえば、参照ピクチャ中のテンプレート)を、現在のテンプレート(たとえば、現在のブロックを含む現在のピクチャ中のテンプレート)と比較して、現在のテンプレートと実質的に一致する(たとえば、現在のテンプレートとの、サンプル値の最小差分を有する)参照テンプレートを判断してよい。ビデオデコーダは、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断してよい。たとえば、動きベクトルは、参照ピクチャ中の、判断された参照テンプレートをポイントし得る。
いくつかの技法では、TM改善は、複合インター/イントラ予測(CIIP)、幾何学区分モード(GPM)、または多重仮説予測(MHP)など、特定のインター予測モードには利用可能でない。したがって、そのようなインター予測モードには、TMのビデオコーディング利得が利用可能でない場合がある。
本開示は、CIIP、GPM、およびMHPなどのインター予測モードに対してTM改善を有効にするための例示的技法について記載する。このように、TM改善を用いるビデオコーディング利得が、CIIP、GPM、およびMHPに利用可能な場合がある。例は、CIIP、GPM、およびMHPに関して記載されるが、例示的技法は、CIIP、GPM、およびMHPのすべてではなく、1つまたは複数に適用可能であってよい。また、CIIP、GPM、およびMHPは、インター予測モードの非限定的例である。
たとえば、ビデオデコーダは、現在のブロックのインター予測モードを示すビットストリーム中でシグナリングされた情報に基づくなどして、現在のブロックがCIIPモードまたはGPMでインター予測されると判断し得る。ビデオデコーダはまた、現在のブロック用にテンプレートマッチングが有効にされていることを示すコーディングユニット(CU)レベルシンタックス要素(たとえば、フラグ)に基づくなどして、現在のブロック用にテンプレートマッチングが有効にされていると判断し得る。
そのような例では、ビデオデコーダは、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る。たとえば、CIIPモードの場合、ビデオデコーダは、インター予測子(たとえば、現在のブロックを含むピクチャとは異なるピクチャ中のブロック)を判断するために、テンプレートマッチングを使って動きベクトルを生成し得る。ビデオデコーダは、現在のブロックと同じピクチャ中のサンプルに基づいて、イントラ予測子も判断し得る。ビデオデコーダは、インター予測子とイントラ予測子を組み合わせて、現在のブロックに対する予測ブロックを生成し得る。
別の例として、GPMの場合、ビデオデコーダは、現在のブロックを第1の区分と第2の区分に区分し得る。ビデオデコーダは、テンプレートマッチングを使って第1の区分に対する第1の動きベクトルを生成し、テンプレートマッチングを使って第2の区分に対する第2の動きベクトルを生成し得る。ビデオデコーダは、第1の動きベクトルに基づいて第1の予測区分を判断し、第2の動きベクトルに基づいて第2の予測区分を判断し得る。ビデオデコーダは、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断し得る。
ビデオデコーダは、予測ブロックに基づいて現在のブロックを再構築してよい。たとえば、ビデオデコーダは、現在のブロックと予測ブロックとの間の残差(たとえば、ルーマおよびクロマ値の間のサンプル値の差分)を示す情報を受信し、残差と予測ブロックを合わせて、現在のブロックを再構築し得る。
図1は、本開示の技法を実施し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、ビデオデータをコーディング(符号化および/または復号)することを対象とする。一般に、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、未加工の符号化されていないビデオ、符号化されたビデオ、復号された(たとえば、再構築された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
図1に示すように、システム100は、この例では、宛先デバイス116によって復号され、表示されるべき符号化ビデオデータを提供するソースデバイス102を含む。具体的には、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116にビデオデータを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲にわたるデバイスのいずれかを備えてもよい。場合によっては、ソースデバイス102および宛先デバイス116は、ワイヤレス通信用に装備されることがあり、したがって、ワイヤレス通信デバイスと呼ばれることがある。
図1の例では、ソースデバイス102は、ビデオソース104、メモリ106、ビデオエンコーダ200、および出力インターフェース108を含む。宛先デバイス116は、入力インターフェース122、ビデオデコーダ300、メモリ120、およびディスプレイデバイス118を含む。本開示によると、ソースデバイス102のビデオエンコーダ200および宛先デバイス116のビデオデコーダ300は、CIIP、GPM、およびMHPインター予測モードへのテンプレートマッチングの拡張のための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの例を表し、宛先デバイス116はビデオ復号デバイスの例を表す。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信してよい。同様に、宛先デバイス116は、統合型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースしてよい。
図1に示すようなシステム100は一例にすぎない。概して、どのデジタルビデオ符号化および/または復号デバイスも、CIIP、GPM、およびMHPインター予測モードへのテンプレートマッチングの拡張のための技法を実施してよい。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116への送信のためにコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実施するデバイスを「コーディング」デバイスと呼ぶ。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイス、具体的には、それぞれ、ビデオエンコーダおよびビデオデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々がビデオ符号化および復号構成要素を含むように、実質的に対称に動作し得る。したがって、システム100は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス102と宛先デバイス116との間の一方向または二方向のビデオ送信をサポートし得る。
一般に、ビデオソース104は、ビデオデータのソース(すなわち、未加工の符号化されていないビデオデータ)を表し、ビデオデータの逐次的な一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200はピクチャのためのデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラ、以前にキャプチャされた未加工ビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、事前にキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、受信された順序(「表示順序」と呼ばれることがある)からコーディング用のコーディング順序にピクチャを並べ替えてよい。ビデオエンコーダ200は、符号化ビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介してコンピュータ可読媒体110上に符号化ビデオデータを出力し得る。
ソースデバイス102のメモリ106および宛先デバイス116のメモリ120は、汎用メモリを表す。いくつかの例では、メモリ106、120は、未加工ビデオデータ、たとえば、ビデオソース104からの未加工ビデオ、およびビデオデコーダ300からの未加工の復号ビデオデータを記憶し得る。追加または代替として、メモリ106、120は、たとえば、それぞれ、ビデオエンコーダ200およびビデオデコーダ300によって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではビデオエンコーダ200およびビデオデコーダ300とは別々に示されているが、ビデオエンコーダ200およびビデオデコーダ300は、機能的に同様のまたは等価な目的で内部メモリも含み得ることを理解されたい。さらに、メモリ106、120は、符号化ビデオデータ、たとえば、ビデオエンコーダ200からの出力およびビデオデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106、120の部分は、たとえば、未加工の復号ビデオデータおよび/または符号化ビデオデータを記憶するための、1つまたは複数のビデオバッファとして割り振られ得る。
コンピュータ可読媒体110は、符号化ビデオデータをソースデバイス102から宛先デバイス116にトランスポートすることが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、ソースデバイス102がリアルタイムで符号化ビデオデータを宛先デバイス116へ直接送信することを可能にする通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108が、符号化ビデオデータを含む送信信号を変調してよく、入力インターフェース122が、受信された送信信号を復調してよい。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成してよい。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含んでよい。
いくつかの例では、ソースデバイス102は、符号化データを出力インターフェース108から記憶デバイス112に出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112からの符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、様々な分散型データ記憶媒体またはローカルにアクセスされるデータ記憶媒体のいずれかを含んでよい。
いくつかの例では、ソースデバイス102は、符号化ビデオデータを、ソースデバイス102によって生成された符号化ビデオデータを記憶し得るファイルサーバ114または別の中間記憶デバイスに出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されたビデオデータにアクセスし得る。
ファイルサーバ114は、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイト用の)ウェブサーバ、(ファイル転送プロトコル(FTP)またはファイル配信オーバー単方向トランスポート(FLUTE:File Delivery over Unidirectional Transport)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(CDN)デバイス、ハイパーテキスト転送プロトコル(HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(MBMS)もしくは拡張MBMS(eMBMS)サーバ、および/またはネットワーク接続ストレージ(NAS)デバイスを表してよい。ファイルサーバ114は、追加または代替として、動的適応ストリーミングオーバーHTTP(DASH:Dynamic Adaptive Streaming over HTTP)、HTTPライブストリーミング(HLS:HTTP Live Streaming)、リアルタイムストリーミングプロトコル(RTSP:Real Time Streaming Protocol)、HTTP動的ストリーミング(HTTP Dynamic Streaming)などの1つまたは複数のHTTPストリーミングプロトコルを実装し得る。
宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通して、ファイルサーバ114からの符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはファイルサーバ114上に記憶された符号化ビデオデータにアクセスするのに適した両方の組合せを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すかもしくは受信するための上記で説明した様々なプロトコル、またはメディアデータを取り出すための他のそのようなプロトコルのうちの、いずれか1つまたは複数に従って動作するように構成され得る。
出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネットカード)、種々のIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理構成要素を表し得る。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(ロングタームエボリューション)、LTEアドバンスト、5Gなどのセルラー通信規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(商標))、Bluetooth(商標)規格などの他のワイヤレス規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に起因する機能性を実施するためのSoCデバイスを含むことができ、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に起因する機能性を実施するためのSoCデバイスを含むことができる。
本開示の技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化ビデオビットストリームを受信する。符号化ビデオビットストリームは、ビデオブロックまたは他のコード化ユニット(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオエンコーダ200によって定義され、ビデオデコーダ300によっても使用されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号ビデオデータの復号ピクチャをユーザに表示する。ディスプレイデバイス118は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
図1には示されていないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は各々、オーディオエンコーダおよび/またはオーディオデコーダと統合されることがあり、共通のデータストリーム中のオーディオとビデオの両方を含む多重化されたストリームを処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよび/もしくはソフトウェアを含み得る。
ビデオエンコーダ200およびビデオデコーダ300は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダおよび/またはデコーダ回路構成のいずれかとして実装され得る。技法が部分的にソフトウェアにおいて実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ200およびビデオデコーダ300の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、それらのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(CODEC)の一部として統合されることがある。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
ビデオエンコーダ200およびビデオデコーダ300は、高効率ビデオコーディング(HEVC)とも呼ばれるITU-T H.265などのビデオコーディング規格、またはマルチビューおよび/もしくはスケーラブルビデオコーディング拡張などのその拡張に従って動作し得る。代替として、ビデオエンコーダ200およびビデオデコーダ300は、多用途ビデオコーディング(VVC)とも呼ばれるITU-T H.266などの、他のプロプライエタリ規格または業界規格に従って動作し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、AOMedia Video 1(AV1)、AV1の拡張、および/またはAV1の後継バージョン(たとえば、AV2)などの固有ビデオコーデック/フォーマットに従って動作し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、他の固有フォーマットまたは業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格またはフォーマットにも限定されない。概して、ビデオエンコーダ200およびビデオデコーダ300は、テンプレートマッチングを使う、どのビデオコーディング技法とともに本開示の技法を実施するように構成されてもよい。
一般に、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャのブロックベースのコーディングを実施し得る。「ブロック」という用語は、一般に、処理される(たとえば、符号化および/または復号プロセスにおいて符号化される、復号される、または他の方法で使用される)べきデータを含む構造を指す。たとえば、ブロックは、輝度および/または色度データのサンプルの2次元行列を含み得る。一般に、ビデオエンコーダ200およびビデオデコーダ300は、YUV(たとえば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルに対する赤、緑、および青(RGB)のデータをコーディングするのではなく、ビデオエンコーダ200およびビデオデコーダ300は、輝度成分および色度成分をコーディングしてよく、色度成分は、赤色と青色の両方の色度成分を含み得る。いくつかの例では、ビデオエンコーダ200が、符号化に先立って、受信されたRGBフォーマットされたデータをYUV表現にコンバートし、ビデオデコーダ300が、YUV表現をRGBフォーマットにコンバートする。代替として、前処理ユニットおよび後処理ユニット(図示せず)が、これらのコンバージョンを実施し得る。
本開示は、一般に、ピクチャのデータを符号化または復号するプロセスを含めるように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。同様に、本開示は、ブロックのためのデータを符号化または復号するプロセス、たとえば予測および/または残差コーディングを含むものとして、ピクチャのブロックのコーディングに言及することがある。符号化ビデオビットストリームは、一般に、コーディング決定(たとえば、コーディングモード)およびブロックへのピクチャの区分を表すシンタックス要素のための一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は全般に、ピクチャまたはブロックを形成するシンタックス要素に対する値をコーディングすることとして理解されるべきである。
HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)を含む、様々なブロックを規定する。HEVCによると、(ビデオエンコーダ200などの)ビデオコーダは、4分木構造に従ってコーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUおよびCUを4個の等しい重複しない正方形に区分し、4分木の各ノードは、0個または4個のいずれかの子ノードを有する。子ノードがないノードは「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つもしくは複数のPUおよび/または1つもしくは複数のTUを含み得る。ビデオコーダはPUおよびTUをさらに区分し得る。たとえば、HEVCでは、残差4分木(RQT)はTUの区分を表す。HEVCでは、PUはインター予測データを表し、TUは残差データを表す。イントラ予測されるCUは、イントラモード表示などのイントラ予測情報を含む。
別の例として、ビデオエンコーダ200およびビデオデコーダ300は、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、4分木2分木(QTBT)構造またはマルチタイプツリー(MTT)構造などのツリー構造に従ってCTUを区分し得る。QTBT構造は、HEVCのCU、PU、およびTUの間の分離などの、複数の区分タイプの概念を排除する。QTBT構造は、2つのレベル、すなわち、4分木区分に従って区分された第1のレベル、および2分木区分に従って区分された第2のレベルを含む。QTBT構造のルートノードはCTUに対応する。2分木のリーフノードはコーディングユニット(CU)に対応する。
MTT区分構造では、ブロックは、4分木(QT)区分、2分木(BT)区分、および1つまたは複数のタイプの3分木(TT:triple tree)(3元木(TT:ternary tree)とも呼ばれる)区分を使用して区分され得る。3分木区分または3元木区分は、ブロックが3個のサブブロックに***される区分である。いくつかの例では、3分木区分または3元木区分は、中心を通って元のブロックを分割することなく、ブロックを3個のサブブロックに分割する。MTTにおける区分タイプ(たとえば、QT、BT、およびTT)は対称または非対称であり得る。
AV1コーデックに従って動作するとき、ビデオエンコーダ200およびビデオデコーダ300は、ブロックの中のビデオデータをコーディングするように構成され得る。AV1では、処理され得る最大コーディングブロックは、スーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプルまたは64×64ルーマサンプルのいずれかであり得る。しかしながら、後継ビデオコーディングフォーマット(たとえば、AV2)では、スーパーブロックは、異なる(たとえば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロック4分木のトップレベルである。ビデオエンコーダ200は、スーパーブロックをより小さいコーディングブロックにさらに区分し得る。ビデオエンコーダ200は、正方形区分または非正方形区分を使用して、スーパーブロックおよび他のコーディングブロックをより小さいブロックに区分し得る。非正方形ブロックは、N/2×N、N×N/2、N/4×N、およびN×N/4ブロックを含み得る。ビデオエンコーダ200およびビデオデコーダ300は、コーディングブロックの各々に対して、別個の予測および変換プロセスを実施し得る。
AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは無関係にコーディングされ得るスーパーブロックの矩形アレイである。すなわち、ビデオエンコーダ200およびビデオデコーダ300は、他のタイルからのビデオデータを使用せずに、タイル内のコーディングブロックをそれぞれ符号化および復号し得る。しかしながら、ビデオエンコーダ200およびビデオデコーダ300は、タイル境界を超えてフィルタリングを実施し得る。タイルは、サイズの点で均一であっても不均一であってもよい。タイルベースのコーディングは、エンコーダおよびデコーダ実装形態のために、並列処理および/またはマルチスレッディングを可能にし得る。
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、輝度成分および色度成分の各々を表すために単一のQTBT構造またはMTT構造を使用してよく、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、輝度成分のための1つのQTBT/MTT構造および両方の色度成分のための別のQTBT/MTT構造(またはそれぞれの色度成分のための2つのQTBT/MTT構造)などの、2つ以上のQTBTまたはMTT構造を使用し得る。
ビデオエンコーダ200およびビデオデコーダ300は、4分木区分、QTBT区分、MTT区分、スーパーブロック区分、または他の区分構造を使用するように構成され得る。
いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、またはモノクロピクチャ、もしくはサンプルをコーディングするために使用される3つの別個の色平面およびシンタックス構造を使用してコーディングされるピクチャの、サンプルのCTBを含む。CTBは、CTBへの成分の分割が区分であるような、何らかの値のNに対するサンプルのN×Nブロックであり得る。成分は、4:2:0、4:2:2、もしくは4:4:4カラーフォーマットでピクチャを作成する3つのアレイ(ルーマおよび2つのクロマ)のうちの1つからの1つのアレイまたは単一のサンプル、あるいはモノクロームフォーマットでピクチャを作成するアレイまたはアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、コーディングブロックへのCTBの分割が区分であるような、何らかの値のMおよびNに対するサンプルのM×Nブロックである。
ブロック(たとえば、CTUまたはCU)は、ピクチャの中で様々な方法でグループ化され得る。一例として、ブリックは、ピクチャにおける特定のタイル内のCTU行の矩形領域を指すことがある。タイルは、ピクチャの中の特定のタイル列および特定のタイル行内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さおよび(たとえば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される幅を有する、CTUの矩形領域を指す。タイル行は、(たとえば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される高さおよびピクチャの幅に等しい幅を有する、CTUの矩形領域を指す。
いくつかの例では、タイルは複数のブリックに区分されてよく、ブリックの各々はタイル内の1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルも、ブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。ピクチャの中のブリックは、スライスとしても並べられ得る。スライスは、単一のネットワーク抽象化レイヤ(NAL)ユニットに独占的に含まれ得る、整数個のピクチャのブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または、1つのタイルの一連の連続する完全なブリックのみの、いずれかを含む。
本開示は、垂直次元および水平次元に換算して(CUまたは他のビデオブロックなどの)ブロックのサンプル次元を指すために、互換的に「N×N」および「NかけるN」、たとえば、16×16サンプルまたは16かける16サンプルを使用し得る。一般に、16×16CUは、垂直方向に16個のサンプル(y=16)および水平方向に16個のサンプル(x=16)を有する。同様に、N×NのCUは、一般に、垂直方向にN個のサンプルおよび水平方向にN個のサンプルを有し、ここで、Nは負ではない整数値を表す。CUの中のサンプルは、行および列として並べられ得る。その上、CUは、必ずしも水平方向において垂直方向におけるのと同じ数のサンプルを有する必要があるとは限らない。たとえば、CUはN×Mサンプルを備えてよく、ここで、Mは必ずしもNに等しいとは限らない。
ビデオエンコーダ200は、予測および/または残差情報、ならびに他の情報を表すCUのためのビデオデータを符号化する。予測情報は、CUのための予測ブロックを形成するためにCUがどのように予測されることになるかを示す。残差情報は、一般に、符号化に先立つCUのサンプルと予測ブロックのサンプルとの間のサンプルごとの差分を表す。
CUを予測するために、ビデオエンコーダ200は、一般に、インター予測またはイントラ予測を通してCUのための予測ブロックを形成し得る。インター予測とは、概して、以前にコーディングされたピクチャのデータからCUを予測することを指し、イントラ予測とは、概して、同じピクチャの以前にコーディングされたデータからCUを予測することを指す。インター予測を実施するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、一般に、たとえば、CUと参照ブロックとの間の差分に関してCUと厳密に一致する参照ブロックを識別するために、動き探索を実施し得る。ビデオエンコーダ200は、参照ブロックが現在のCUと厳密に一致するかどうかを判断するために、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)、または他のそのような差分算出を使用して差分メトリックを算出し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在のCUを予測し得る。
VVCのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインもしくはズームアウト、回転、遠近運動、または他の不規則な運動タイプなどの、非並進運動を表す2つ以上の動きベクトルを判断し得る。
イントラ予測を実施するために、ビデオエンコーダ200は、イントラ予測モードを選択して予測ブロックを生成し得る。VVCのいくつかの例は、様々な方向モードを含む67個のイントラ予測モード、ならびに平面モードおよびDCモードを提供する。一般に、ビデオエンコーダ200は、そこから現在のブロックのサンプルを予測するための現在のブロック(たとえば、CUのブロック)に対する隣接サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは一般に、ビデオエンコーダ200がラスター走査順序で(左から右、上から下)CTUおよびCUをコーディングすると仮定して、現在のブロックと同じピクチャにおいて、現在のブロックの上、上および左、または左にあり得る。
ビデオエンコーダ200は、現在のブロックのための予測モードを表すデータを符号化する。たとえば、インター予測モードの場合、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、ならびに対応するモードについての動き情報を表すデータを符号化し得る。単方向または双方向インター予測の場合、たとえば、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)モードまたはマージモードを使用して動きベクトルを符号化してよい。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために類似のモードを使用してよい。
AV1は、ビデオデータのコーディングブロックを符号化および復号するための2つの一般的な技法を含む。2つの一般的な技法は、イントラ予測(たとえば、イントラフレーム予測または空間予測)およびインター予測(たとえば、インターフレーム予測または時間予測)である。AV1の文脈で、イントラ予測モードを使用してビデオデータの現在のフレームのブロックを予測するとき、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータの他のフレームからのビデオデータを使用しない。大部分のイントラ予想モードの場合、ビデオエンコーダ200は、現在のブロック中のサンプル値と同じフレーム中の参照サンプルから生成される予測値との間の差分に基づいて、現在のフレームのブロックを符号化する。ビデオエンコーダ200は、イントラ予測モードに基づいて、参照サンプルから生成された予測値を判断する。
ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200はブロックのための残差データを算出し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成されたそのブロックのための予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域において変換データを生成するために、1つまたは複数の変換を残差ブロックに適用してよい。たとえば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に類似の変換を残差ビデオデータに適用してよい。追加として、ビデオエンコーダ200は、モード依存非分離可能2次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT)などの2次変換を、最初の変換に続いて適用してよい。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を生成する。
上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実施し得る。量子化とは、一般に、変換係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスを実施することによって、ビデオエンコーダ200は、変換係数の一部またはすべてと関連付けられるビット深度を低減し得る。たとえば、ビデオエンコーダ200は量子化の間にnビット値をmビット値に丸めてもよく、ここで、nはmよりも大きい。いくつかの例では、量子化を実施するために、ビデオエンコーダ200は、量子化されるべき値のビット単位の右シフトを実施してもよい。
量子化に続いて、ビデオエンコーダ200は、変換係数を走査してよく、量子化変換係数を含む2次元行列から1次元ベクトルを生成する。走査は、より高いエネルギー(したがって、より低い周波数)の変換係数をベクトルの前方に置き、より低いエネルギー(したがって、より高い周波数)の変換係数をベクトルの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ200は、量子化変換係数を走査してシリアル化ベクトルを生成するために既定の走査順序を利用してよく、次いで、ベクトルの量子化変換係数をエントロピー符号化してよい。他の例では、ビデオエンコーダ200は適応走査を実施し得る。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ200は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化してよい。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化ビデオデータに関連するメタデータを記述するシンタックス要素のための値をエントロピー符号化してよい。
CABACを実施するために、ビデオエンコーダ200は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値がゼロ値化されているか否かに関係し得る。確率判断は、シンボルに割り当てられたコンテキストに基づき得る。
ビデオエンコーダ200は、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、または、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、もしくはビデオパラメータセット(VPS)などの他のシンタックスデータにおいて、ビデオデコーダ300へのブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータをさらに生成し得る。ビデオデコーダ300は、そのようなシンタックスデータを同様に復号して、対応するビデオデータをどのように復号するかを判断し得る。
このようにして、ビデオエンコーダ200は、符号化ビデオデータ、たとえば、ブロック(たとえば、CU)へのピクチャの区分ならびにブロックについての予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信してよく、符号化ビデオデータを復号してよい。
一般に、ビデオデコーダ300は、ビデオエンコーダ200によって実施されるプロセスとは逆のプロセスを実施して、ビットストリームの符号化ビデオデータを復号する。たとえば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスとは相反ではあるが実質的に類似の方法で、CABACを使用してビットストリームのシンタックス要素に対する値を復号してよい。シンタックス要素は、CTUへのピクチャの区分およびQTBT構造などの対応する区分構造による各CTUの区分のための、区分情報を規定して、CTUのCUを規定し得る。シンタックス要素は、ビデオデータのブロック(たとえば、CU)に対する予測情報および残差情報をさらに規定し得る。
残差情報は、たとえば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックのための残差ブロックを再現するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測またはインター予測)および関連する予測情報(たとえば、インター予測に対する動き情報)を使用して、ブロックのための予測ブロックを形成する。ビデオデコーダ300は次いで、予測ブロックと残差ブロックとを(サンプルごとに)組み合わせて、元のブロックを再現し得る。ビデオデコーダ300は、ブロックの境界に沿って視覚アーティファクトを低減するためのデブロッキングプロセスを実施するなどの、追加の処理を実施し得る。
本開示は、一般に、シンタックス要素などの特定の情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、一般に、符号化ビデオデータを復号するために使用されるシンタックス要素および/または他のデータに対する値の通信を指してよい。すなわち、ビデオエンコーダ200は、ビットストリームの中でシンタックス要素に対する値をシグナリングし得る。概して、シグナリングとは、ビットストリームの中で値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムで、または宛先デバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るようなリアルタイムではなく、ビットストリームを宛先デバイス116にトランスポートし得る。
上述したように、多用途ビデオコーディング(VVC)、J. Chen、Y. Ye、およびS.-H. Kim、「Algorithm description for Versatile Video Coding and Test Model 9(VTM9)」、JVET-R2002、2020年4月、すなわち最新のビデオコーディング規格が、ITU-TおよびISO/IECのJoint Video Experts Team(JVET)によって、広範囲のアプリケーション用のHEVCを超える相当な圧縮能力を達成するために開発された。VVC仕様は、2020年7月に確定され、ITU-TとISO/IECの両方によって公開されている。
VVC仕様は、規範となるビットストリームおよびピクチャフォーマット、高レベルシンタックス(HLS)およびコーディングユニットレベルシンタックス、ならびに解析および復号プロセスを指定している。VVCはまた、付属書類においてプロファイル/ティア/レベル(PTL)制限、バイトストリームフォーマット、仮想参照デコーダおよび補足エンハンスメント情報(SEI)を指定している。本開示に記載する技法は、VVCまたはAV1など、現況技術によるビデオコーデックをさらに向上させるために適用することができる。
以下では、テンプレートマッチング(TM)予測について説明する。テンプレートマッチング(TM)は、現在のピクチャの中のテンプレート(すなわち、現在のCUの上および/または左の隣接ブロック)と参照ピクチャの中のブロック(すなわち、テンプレートと同じサイズ)との間の最も近いマッチングを見つけることによって現在のCUの動き情報を改善するためのデコーダ側動きベクトル(MV)導出方法である。
図6に示すように、[-8,+8]ペルの探索範囲(たとえば、探索エリア)内の現在のCUの初期動きの周囲でより良好なMVが(たとえば、ビデオデコーダ300によって)探索されることになる。初期マッチング誤差に基づいて選択されたAMVP候補を用いて、AMVP候補についてのMVP(動きベクトル予測子)がテンプレートマッチングによって改善される。シグナリングされたマージインデックスによって示されるマージ候補を用いて、L0(参照ピクチャリスト0)およびL1(参照ピクチャリスト1)に対応するマージ候補のマージされたMVが、テンプレートマッチングによって独立して改善され、次いで、さほど正確でないMVが、より良好なMVを優先として用いてさらにもう一度改善される。参照ピクチャリスト0および参照ピクチャリスト1は、インター予測に使われる参照ピクチャを識別するための、ビデオエンコーダ200およびビデオデコーダ300によって構築された参照ピクチャリストを指す。
以下では、テンプレートマッチングにおけるコスト関数について記載する。動きベクトルが小数サンプル位置をポイントするとき、動き補償された補間が使われる。複雑度を低減するために、両方のテンプレートマッチングのために通常の8タップDCT-IF補間の代わりに双線形補間が使用されて、参照ピクチャ上のテンプレートを生成する。テンプレートマッチングのマッチングコストCは、C=SAD+w*(|MVx-MVsx|+|MVy-MVsy|)のように算出される。
上式において、wは、0、1、2、3または4などの整数に設定され得る重み付け因子であり、MVおよびMVsは、それぞれ、現在テストしているMV、および初期MV(たとえば、AMVPモードにおけるMVP候補、またはマージモードにおけるマージされた動き)を示す。SADは、テンプレートマッチングのマッチングコストとして使用される。
TMが使用されるとき、動きはルーマサンプルのみを使用することによって改善される。導出された動きは、MC(動き補償)インター予測のためにルーマとクロマの両方のために使用される。MVが決められた後、ルーマのための8タップ補間フィルタおよびクロマのための4タップ補間フィルタを使用して、最後のMCが実施される。
以下では、テンプレートマッチングにおける探索方法について記載する。MV改善は、テンプレートマッチングコストの基準および階層構造を用いたパターンベースのMV探索である。MV改善のために、2つの探索パターン、すなわち、ダイヤモンド探索およびクロス探索がサポートされる。階層構造は、粗いMVD精度(たとえば、1/4ペル)において始まり、細かい精度(たとえば、1/8ペル)において終わる、MVを改善するための反復プロセスを指定する。MVは、ダイヤモンドパターンを用いて4分の1ルーマサンプルMVD精度で直接探索され、続いて交差パターンを用いて4分の1ルーマサンプルMVD精度で探索され、そして、続いて交差パターンを用いた8分の1ルーマサンプルMVD改善が行われる。MV改善の探索範囲(たとえば、探索エリア)は、初期MVの周囲の(-8,+8)ルーマサンプルに等しく設定される。現在のブロックが双予測のものである(たとえば、双方向予測される)とき、両方のMVが独立して改善され、次いで、それらのうちの(マッチングコストに関して)最良のものが、BCW重み値を用いて他のMVをさらに改善するための優先として設定される。
具体的には、JVET-J0021およびJVET-U0100において提案されるテンプレートマッチングは、それらの提案において、AMVPモードおよびマージモードに適用される。JVET-J0021は、Chenら、「Description of SDR, HDR and 360o video coding technology proposal by Qualcomm and Technicolor - low and high complexity versions」、ITU-T SG 16 WP 3のJoint Video Exploration Team(JVET)およびISO/IEC JCT 1/SC 29/WG 11、第10回会合:サンディエゴ、2018年4月10~20日、JVET-J0021を指す。JVET-U0100は、Changら、「Compression efficiency methods beyond VVC」、ITU-T SG 16 WP 3のJoint Video Experts Team(JVET)およびISO/IEC JCT 1/SC 29/WG 11、遠隔会議による第21回会合、2021年1月6~15日、JVET-U0100を指す。
通常マージ候補リストは、以下の候補の順序で構築される。
a.空間ネイバーCUからの空間MVP:上ネイバーCU(A)、左ネイバーCU(L)、右上ネイバーCU(AR)、左下ネイバーCU(LB)、左上ネイバーCU(LA)の順序の中から、最初の4つの利用可能候補が選択される。
b.コロケートされたCUからの時間MVP:ただ1つの候補が追加される。
c.履歴ベースのMVP:以前コーディングされたブロックの動き情報が、テーブルに記憶され、現在のCUに対するMVPとして使われる。
d.ペアワイズ平均MVP:ペアワイズ平均候補は、既存の通常マージ候補リスト内の候補の事前定義されたペアを平均化することによって生成される。
e.ゼロMV。
TMがマージモードに適用されると、テンプレートマッチングに基づいて通常マージ候補のMVPを改善することによって、別個のTMマージ候補リストが構築される。
したがって、1つまたは複数の例では、TMマッチングのために、ビデオデコーダ300は、マージ候補リスト(たとえば、現在のブロックに対して有効にされているテンプレートマッチングに基づくTMマージ候補リスト)の中の動き情報に基づいて、現在のブロック600に対する初期動きベクトル606を判断し得る。ビデオデコーダ300は、初期動きベクトル606に基づく、参照ピクチャ中の探索エリア608(たとえば、図示するように、長さおよび幅が[-8,8]ペルである矩形エリア)を判断し得る。
ビデオデコーダ300は、探索エリア608内の参照テンプレートを判断し得る。一例として、図6は、参照テンプレート610および612を示す。ビデオデコーダ300は、探索エリア608内のどの参照テンプレートが、現在のブロック600を含む現在のピクチャ内の現在のテンプレート602および604と実質的に一致する(たとえば、コスト関数の最低値を有する)かを判断し得る。ビデオデコーダ300は、テンプレートマッチング技法に従って、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断し得る。
以下でより詳しく説明するように、本開示の例示的技法は、CIIPモードおよびGPMにおけるテンプレートマッチングの使用について記載する。たとえば、CIIPでは、ビデオデコーダ300はインター予測子を判断してよく、ビデオデコーダ300は、テンプレートマッチング技法を使ってインター予測子を識別する動きベクトルを判断してよい。GPMの場合、ビデオデコーダ300は、現在のブロックを第1の区分と第2の区分に区分してよい。ビデオデコーダ300は、第1の区分に対する、および第2の区分に対する動きベクトルを判断するために、テンプレートマッチング技法を使用してよい。
以下では、複合インター/イントラ予測(CIIP)について説明する。VVCでは、CUがマージモードでコーディングされるとき、複合インター/イントラ予測(CIIP)モードが現在のCUに適用されるかどうかを示すための追加フラグがシグナリングされる。CIIP予測は、インター予測子をイントラ予測子と組み合わせる。CIIPモードでのインター予測子Pinterは、通常マージモードに適用される同じインター予測プロセスを使って導出され、イントラ予測子Pintraは、平面モードを用いる通常イントラ予測プロセスに続いて導出される。次いで、イントラおよびインター予測子は、重み付き平均化を使用して組み合わされる。Zhaoら、「Non-CE: Weighted intra and inter prediction mode」、ITU-T SG 16 WP 3のJoint Video Experts Team(JVET)およびISO/IEC JTC 1/SC 29/WG 11、第15回会合:イェーテボリ、2019年7月3~12日、JVET-O0537において、位置依存予測複合(PDPC)モードを通常マージモードに適用するための拡張型CIIPが提案された。このCIIP-PDPCは、インター予測子を上再構築サンプルR(x,-1)および左再構築サンプルR(-1,y)と組み合わせ、ここで(x,y)は、現在のCUの中の、(0,0)であると定義される最左上サンプルに相対した座標である。
PDPCモードを用いるCIIPの予測のフローチャートを図7に示すことができ、ここでWTおよびWLは、PDPCにおいて定義されるブロック中のサンプル位置に依存する加重値である。いくつかの例では、平面モードを用いるCIIPのための重み付け値と、PDPCモードを用いるCIIPは異なる。
たとえば、図7に示すように、ビデオデコーダ300は、平面モードを使ってイントラ予測ブロックを判断し得る(700)。PDPCが有効にされている場合、ビデオデコーダ300は、PDPCを使ってイントラ予測子を判断し得る。
ビデオデコーダ300は、現在のブロックについての動きベクトル情報を判断し得る。たとえば、ビデオデコーダ300は、空間的および時間的に隣接するブロックの動きベクトル情報を含むマージ候補リストを構築し得る。ビデオデコーダ300は、マージ候補リストの中へのインデックスを受信し、インデックスに基づいて、動きベクトル情報(たとえば、図7のMVデータ)を判断し得る。ビデオデコーダ300は、動きベクトル情報に基づいて、インター予測子を判断し得る(704)。
ビデオデコーダ300は次いで、イントラ予測子とインター予測子を組み合わせてよい(706)。たとえば、図7は、イントラ予測子とインター予測子を組み合わせるためにビデオデコーダ300が適用し得る式および重みの例を示す。結果は、現在のブロックを再構築するためにビデオデコーダ300が使用する予測ブロックとなり得る。
本開示に記載する例によると、テンプレートマッチングは、CIIPモードにおいてインター予測される現在のブロックに対して有効にされ得る。たとえば、ビデオデコーダ300は、ビットストリームの中でシグナリングされた情報に基づいて、現在のブロックがCIIPモードにおいてインター予測されると判断し得る。さらに、ビデオデコーダ300は、現在のブロック用にテンプレートマッチングが有効にされていることを示すCUレベルシンタックス要素(たとえば、フラグ)に基づくなどして、現在のブロック用にテンプレートマッチングが有効にされていると判断し得る。
ビデオデコーダ300は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る。たとえば、ビデオデコーダ300は、マージ候補リストの中の動き情報に基づいて、現在のブロックに対する初期動きベクトルを判断し得る。ビデオデコーダ300は、動き情報(たとえば、動きベクトル情報)を識別するマージ候補リストの中へのインデックスを受信し得る。テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するために、ビデオデコーダ300は、初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断し、現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、探索エリア内の参照テンプレートを判断し、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断し得る。
CIIPモードの場合、ビデオデコーダ300は、CIIPモードに従って、動きベクトルに基づいて現在のブロックに対する予測ボックを判断し得る。たとえば、ビデオデコーダ300は、生成された動きベクトルに基づいてインター予測子を判断し、現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断し得る。ビデオデコーダ300は、インター予測子とイントラ予測子を組み合わせて、予測ブロックを判断し得る(たとえば、図7に示すように)。
以下では、幾何学区分モード(GPM)について記載する。VVCでは、幾何学区分モードがインター予測のためにサポートされる。幾何学区分モードは、通常マージモード、MMVDモード、CIIPモードおよびサブブロックマージモードを含む他のマージモードとともに、CUレベルフラグを一種のマージモードとして使ってシグナリングされる。合計で64個の区分が、各可能CUサイズw×h=2m×2nに対して幾何学区分モードによってサポートされ、8×64および64×8を除いて、m,n∈{3...6}である。このモードが使われるとき、CUは、図8Aに示す幾何学的に配置された直線によって2つの部分に***される。
***線のロケーションは、特定の区分の角度およびオフセットパラメータから数学的に導出される。CUの中の幾何学的区分(たとえば、各区分)の各部は、それ自体の動きを使ってインター予測される。いくつかの例では、区分ごとに単予測のみが許され、すなわち、各部が1つの動きベクトルおよび1つの参照インデックスを有する。各区分についての単予測動きは、次のように導出される。
単予測候補リストは、図8Bに示すように、マージモードでのように構築されたマージ候補リストから直接導出される。nは、幾何学的単予測候補リストの中の単予測動きのインデックスとする。Xがnのパリティ(偶数または奇数)に等しい第nのマージ候補のLX動きベクトルが、幾何学区分モード用の第nの単予測動きベクトルとして使われる。これらの動きベクトルは、図8Bにおいて「x」で印付けられている。第nの拡張型マージ候補の対応するLX動きベクトルが存在しないケースでは、同じ候補のL(1-X)動きベクトルが代わりに、幾何学区分モード用の単予測動きベクトルとして使われる。
現在のCU用に幾何学区分モードが使われる場合、幾何学的区分の区分モードを示す幾何学的区分インデックス(角度およびオフセット)、ならびに2つのマージインデックス(各区分に対して1つ)が、さらにシグナリングされる。最大GPM候補サイズの数は、SPSの中で明示的にシグナリングされ、GPMマージインデックスのためのシンタックス2値化を指定する。幾何学区分の一部の各々を予測した後、幾何学区分の端部に沿ったサンプル値は、適応重みを伴うブレンディング処理を使用して調節される。
本開示に記載する例によると、GPMにおいてインター予測される現在のブロック向けに、テンプレートマッチングが有効にされ得る。たとえば、ビデオデコーダ300は、ビットストリームの中でシグナリングされた情報に基づいて、現在のブロックがGPMにおいてインター予測されると判断し得る。さらに、ビデオデコーダ300は、現在のブロック用にテンプレートマッチングが有効にされていることを示すCUレベルシンタックス要素(たとえば、フラグ)に基づくなどして、現在のブロック用にテンプレートマッチングが有効にされていると判断し得る。
ビデオデコーダ300は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトル(たとえば、少なくとも1つの動きベクトル)を生成し得る。たとえば、ビデオデコーダ300は、現在のブロックを第1の区分と第2の区分に区分し得る。ビデオデコーダ300は、現在のブロックの第1の区分に対する第1の動きベクトルを生成することによって、動きベクトル(たとえば、少なくとも1つの動きベクトル)を生成し得る。ビデオデコーダ300はまた、テンプレートマッチングに基づいて、および現在のブロック用にテンプレートマッチングが有効にされているという判断に基づいて、現在のブロックの第2の区分に対する第2の動きベクトルを生成し得る。
ビデオデコーダ300が、テンプレートマッチングに基づいて第1の区分に対する第1の動きベクトルを判断し、テンプレートマッチングに基づいて第2の区分に対する第2の動きベクトルを判断し得る様々なやり方があってよい。例として、ビデオデコーダ300は、図6に関して上述した例示的動作を2回、すなわち、第1の区分に対して1回、および第2の区分に対してもう1回実施してよい。
たとえば、テンプレートマッチングに基づいて現在のブロックに対する動きベクトルを生成するために、ビデオデコーダ300は、マージ候補リストの中の第1の動き情報に基づいて、第1の区分に対する第1の初期動きベクトルを判断し、第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断し、第1の区分の第1の現在のテンプレートと実質的に一致する、第1の探索エリア内の第1の参照テンプレートを判断し、判断された第1の参照テンプレートに基づいて、第1の区分に対する第1の動きベクトルを判断するように構成され得る。
ビデオデコーダ300はまた、マージ候補リストの中の第2の動き情報に基づいて、第2の区分に対する第2の初期動きベクトルを判断し、第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断し、第2の区分の第2の現在のテンプレートと実質的に一致する、第2の探索エリア内の第2の参照テンプレートを判断し、判断された第2の参照テンプレートに基づいて、第2の区分に対する第2の動きベクトルを判断し得る。
GPMの場合、ビデオデコーダ300は、GPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断し得る。たとえば、ビデオデコーダ300は、第1の動きベクトルに基づいて、または第1の動きベクトルおよび第2の動きベクトルに基づいて、予測ブロックを判断してよく、第1の動きベクトルおよび第2の動きベクトルは、テンプレートマッチングを使って生成される。例として、ビデオデコーダ300は、第1の動きベクトルに基づいて第1の予測区分を判断し、第2の動きベクトルに基づいて第2の予測区分を判断し、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断し得る。
以下では、アフィン予測について説明する。いくつかの技法では、並進運動モデルのみが、動き補償予測(MCP)のために適用される。一方、現実の世界では、多くの種類の動き、たとえば、ズームイン/アウト、回転、遠近運動、およびその他の不規則な運動がある。VTM-6では、ブロックベースのアフィン変換動き補償予測が適用される。図9Aおよび図9Bに示すように、ブロックのアフィン動きフィールドは、図9Aでは、2つの制御点の動き情報(4パラメータモデルともいう)、または図9Bでは、3つの制御点動きベクトル(6パラメータモデルともいう)によって記述される。
4パラメータアフィン動きモデルの場合、ブロック内のサンプルロケーション(x,y)における動きベクトルは、
として導出される。
6パラメータアフィン動きモデルの場合、ブロック内のサンプルロケーション(x,y)における動きベクトルは、
として導出される。
4パラメータおよび6パラメータについての上記説明において、(mv0x,mv0y)は左上隅の制御点の動きベクトルであり、(mv1x,mv1y)は右上隅の制御点の動きベクトルであり、(mv2x,mv2y)は左下隅の制御点の動きベクトルである。
動き補償予測を簡略化するために、ブロックベースのアフィン変換予測が適用される。各4×4ルーマサブブロックの動きベクトルを導出するために、各サブブロックの中央サンプルの動きベクトルは、図10に示すように、上記の式に従って算出され、1/16の分数精度に丸められる。次いで、導出された動きベクトルを有する各サブブロックの予測を生成するために、動き補償補間フィルタが適用される。クロマ成分のサブブロックサイズも、4×4になるように設定される。4×4クロマサブブロックのMVは、4つの対応する4×4ルーマサブブロックのMVの平均として算出される。
本開示の技法によると、テンプレートマッチング(TM)改善が、CIIP、GPM、およびMHPなどのインターモードに適用される。そのようなTM改善が適用されるかどうかを示すために、フラグが導入され、ビットストリームの中で、たとえばブロック単位でシグナリングされ得る。つまり、ビデオデコーダ300は、現在のブロック用にテンプレートマッチングが有効にされていることを示すCUレベルシンタックス要素(たとえば、フラグ)を受信することによって、現在のブロック用にテンプレートマッチングが有効にされていると判断し得る。
別の例では、フラグの組合せが導入され得る。フラグの1つのセットが、TM改善がインターモードに実施されるかどうかを示すために、VPS、SPS、PPSなどのパラメータセットの中でシグナリングされる。フラグの第2のセットが、TM改善がピクチャまたはスライスに実施されるかどうかを示すために、ピクチャまたはスライスヘッダの中でシグナリングされる。フラグの第3のセットは、TM改善がブロックに適用されるかどうかの指示にブロック単位でシグナリングされる。フラグの第2のセットのシグナリングは、フラグの第1のセットの中でTM改善が有効にされているかどうかに依存し得る。フラグの第3のセットのシグナリングは、フラグの第1のセットおよび/またはフラグの第2のセットの中でTM改善が有効にされているかどうかに依存し得る。
たとえば、本開示は、テンプレートマッチング(テンプレートマッチング改善ともいう)が、複合インター/イントラ予測(CIIP)、幾何学区分モード(GPM)、または多重仮説予測(MHP)インター予測モードのうちの少なくとも1つにおいてインター予測されるブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素をコーディングし(たとえば、符号化または復号し)、テンプレートマッチングを使用してブロックをコーディングするように構成されたビデオコーダ(たとえば、ビデオエンコーダ200またはビデオデコーダ300)について記載する。一例として、1つまたは複数のシンタックス要素をコーディングするために、ビデオデコーダ300は、1つまたは複数のシンタックス要素を解析し、復号するように構成されてよく、ブロックをコーディングするために、ビデオデコーダ300は、ブロックを復号するように構成されてよい。別の例として、1つまたは複数のシンタックス要素をコーディングするために、ビデオエンコーダ200は、1つまたは複数のシンタックス要素を符号化し、シグナリングしてよく、ブロックをコーディングするために、ビデオエンコーダ200は、ブロックを符号化するように構成されてよい。
いくつかの例では、1つまたは複数のシンタックス要素は、テンプレートマッチングが有効にされていることを示すフラグを含む。いくつかの例では、1つまたは複数のシンタックス要素は、テンプレートマッチングがインターモードに対して有効にされていることを示すフラグの第1のセット、テンプレートマッチング改善が、ブロックを含むピクチャまたはスライスに対して有効にされていることを示すフラグの第2のセット、および少なくとも、テンプレートマッチング改善がブロックに対して有効にされていることを示す第3のフラグのうちの1つまたはそれらの組合せを含む。
TM改善は、コンテキストコーディングされてよく、フラグのコンテキストは、異なるインターモードにわたって共有することができ、またはインターモード固有であってよい。たとえば、CIIPモードに対するTM改善フラグをコーディングするために、あるコンテキストが割り当てられ、GMPモードに対するTM改善フラグをコーディングするために、別のコンテキストが割り当てられ、MHPに対するTM改善フラグをシグナリングするために、さらに別のコンテキストが割り当てられる。
たとえば、上記例におけるブロックは第1のブロックであってよく、1つまたは複数のシンタックス要素は、1つまたは複数のシンタックス要素の第1のセットであってよい。ビデオコーダは、テンプレートマッチング改善がCIIP、GPM、またはHMPインター予測モードのうちの少なくとも1つにおいてインター予測される第2のブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素の第2のセットをコーディングするように構成され得る。第1のブロックは、CIIP、GPM、またはHMPインター予測モードのうちの少なくとも1つにおいてインター予測されてよく、第2のブロックは、CIIP、GPM、またはHMPインター予測モードのうちの少なくとも別の1つにおいてインター予測されてよい。
ビデオコーダは、1つまたは複数のシンタックス要素の第1のセットをコンテキストベースコーディングし、1つまたは複数のシンタックス要素の第2のセットをコンテキストベースコーディングするように構成され得る。一例では、1つまたは複数のシンタックス要素の第1のセットのうちの少なくとも1つをコーディングするためのコンテキストは、1つまたは複数のシンタックス要素の第2のセットのうちの少なくとも1つをコーディングするためのコンテキストと同じである。一例では、1つまたは複数のシンタックス要素の第1のセットのうちの少なくとも1つをコーディングするためのコンテキストは、1つまたは複数のシンタックス要素の第2のセットのうちの少なくとも1つをコーディングするためのコンテキストとは異なる。
各インターモード(たとえば、インター予測モード)は、モードに関連付けられた(たとえば、インター予測モードに関連付けられた)他のパラメータを有してよく、これらのパラメータは、ビットストリームの中でシグナリングされる。たとえば、MV候補インデックスである。
それらのパラメータはコンテキストコーディングされてよく、コンテキストのあるセットが、TM改善が無効にされている(TM改善フラグが0である)ときに使われてよく、コンテキストの別のセットが、TM改善が有効にされている(TM改善フラグが1である)ときに使われてよい。いくつかの例では、コンテキストは、2値化の後のインターモードパラメータの第1のいくつかのビンのみについてのTM改善フラグに基づいて***されてよく(すなわち、分離される)、他の以降のビンに対するコンテキストが、TM改善が適用されるときのケースと、適用されないときのケースとの間で共有される。いくつかの例では、インターモードパラメータは、TM改善にかかわらず、コンテキストの同じセットを使ってシグナリングされる。
たとえば、上記例では、ブロックは第1のブロックと見なされ得る。ビデオコーダは、テンプレートマッチング改善が無効にされた状態で、第1のブロックがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングし、CIIP、GPM、またはMHPインター予測モードのうちの少なくとも1つにおいて第2のブロックをコーディングするように構成され得る。この例では、第1のブロックおよび第2のブロックに対するインター予測モードは同じであってよい。ビデオコーダは、第2のものがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングし得る。
いくつかの例では、第1のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストとは異なる。いくつかの例では、第1のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストと同じである。いくつかの例では、第1のブロックに対する1つまたは複数のパラメータについてのビンの第1のセットをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータについてのビンの第1のセットをコンテキストベースコーディングすることに関連付けられたコンテキストと同じであり、第1のブロックに対する1つまたは複数のパラメータについてのビンの第2のセットの中の少なくとも1つのビンをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータについてのビンの第2のセットの中の少なくとも1つのビンをコンテキストベースコーディングすることに関連付けられたコンテキストとは異なる。
本開示で説明する例示的技法は、個々に、または任意の組合せで適用され得る。
以下では、テンプレートマッチングを用いるCIIPについて記載する。本開示では、イントラモードを、通常マージモードまたはTMマージモードのいずれかと組み合わせるための、新たなCIIPモードが記述される。一例では、4つのCIIPモードが次のように提案される。
a.複合平面モードおよび通常マージモード、
b.複合PDPCモードおよび通常マージモード、
c.複合平面モードおよびTMマージモード、
d.複合PDPCモードおよびTMマージモード。
たとえば、本開示に記載する1つまたは複数の例では、ビデオエンコーダ200およびビデオデコーダ300は、複合平面モードおよびテンプレートマッチング(TM)マージモードを含むCIIPモードをサポートし、複合PDPCモードおよびTMマージモードを含むCIIPモードをサポートし得る。たとえば、ビデオエンコーダ200およびビデオデコーダ300は、現在のブロックがCIIPモード(たとえば、複合平面モードおよびTMマージモードを含むCIIPモードまたは複合PDPCモードおよびTMマージモードを含むCIIPモード)においてインター予測されると判断し得る。たとえば、現在のブロックがCIIPモードにおいてインター予測されることを示す1つのシンタックス要素を、ビデオエンコーダ200はシグナリングしてよく、ビデオデコーダ300は受信してよく、現在のブロック用にテンプレートマッチングが有効にされていることを示すCUレベルシンタックス要素(たとえば、フラグ)を、ビデオエンコーダ200はシグナリングしてよく、ビデオデコーダ300は受信してよい。
ビデオエンコーダ200およびビデオデコーダ300は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る。たとえば、ビデオエンコーダ200およびビデオデコーダ300は、マージ候補リストの中の動き情報に基づいて、現在のブロックに対する初期動きベクトルを判断し得る。ビデオエンコーダ200は、マージ候補リスト中へのインデックスをシグナリングしてよく、ビデオデコーダ300は、マージ候補リスト中へのインデックスを受信してよい。
テンプレートマッチングのために、ビデオエンコーダ200およびビデオデコーダ300は、初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断し得る。ビデオエンコーダ200およびビデオデコーダ300は、現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、探索エリア内の参照テンプレートを判断し得る。ビデオエンコーダ200およびビデオデコーダ300は、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断し得る。
ビデオエンコーダ200およびビデオデコーダ300は、CIIPモードに従って、現在のブロックに対する予測ブロックを判断し得る。たとえば、ビデオエンコーダ200およびビデオデコーダ300は、生成された動きベクトルに基づいてインター予測子を判断し得る。ビデオエンコーダ200およびビデオデコーダ300は、現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断し得る(たとえば、平面モードまたはPDPCモードに従って)。ビデオエンコーダ200およびビデオデコーダ300は、インター予測子とイントラ予測子を組み合わせて、予測ブロックを判断し得る。
ビデオエンコーダ200は、予測ブロックと現在のブロックとの間の差分を示す残差情報をシグナリングし得る。ビデオデコーダ300は、現在のブロックと予測ブロックとの間の残差を示す残差情報を受信し、残差と予測ブロックを合わせて、現在のブロックを再構築し得る。
いくつかの例では、CIIPモード(a)およびCIIPモード(c)は、重み付け因子の第1のセットを共有してよく、CIIPモード(b)およびCIIPモード(d)は、重み付け因子の第2のセットを共有してよい。このCUに対してCIIPが有効にされている場合、2値化0、10、110、111のうちの1つをもつインデックスが、どのCIIPモードが使われるかを示すためにシグナリングされる。いくつかの例では、このCIIPモードに対するインター予測子を生成するのにTMマージモードが使われるかどうかを示すために、TMマージフラグがシグナリングされ、このCIIPモードに対するイントラ予測子を生成するのにPDPCモードが使われるかどうかを示すために、PDPCフラグもシグナリングされる。いくつかの例示的技法は、TMマージフラグが真の場合はCIIPフラグをシグナリングすることを含み、CIIPフラグが真の場合はPDPCフラグがさらにシグナリングされる。
いくつかの例では、以下に示すように、3つの異なるマージリストがある。
a.P個の候補をもつ通常マージ候補リスト
b.Q個の候補をもつTMマージ候補リスト
c.R個の候補をもつCIIP TMマージ候補リスト
いくつかの例では、P、Q、およびRは1以上であるべきである。リスト(b)において、ビデオエンコーダ200またはビデオデコーダ300は最初に、Q個の初期通常マージ候補を生成し、次いで、各候補のMVが、JVET-U0100において提案されるように、TMまたは複合BDMVRおよびTMのいずれかによって改善される。提案されるリスト(c)において、ビデオエンコーダ200またはビデオデコーダ300は最初に、R個の初期通常マージ候補を生成し、次いで、各候補のMVがTMによって改善される。いくつかの例では、P、Q、およびRのうちの少なくとも2つが同じ値であってよい。
たとえば、テンプレートマッチングのために、ビデオエンコーダ200およびビデオデコーダ300はマージ候補リストを構築し得る。マージ候補リスト中へのインデックスを示す情報を、ビデオエンコーダ200はシグナリングしてよく、ビデオデコーダ300は受信してよい。ビデオデコーダ300は、マージ候補リスト中へのインデックスに基づいて、初期動きベクトルを判断し得る。たとえば、ビデオエンコーダ200は、初期動きベクトルを判断し、マージ候補リストの中での初期動きベクトルのロケーションに基づいて、マージ候補リスト中へのインデックスを判断し得る。テンプレートマッチングが有効にされているCIIPモードの場合、マージ候補リスト中の候補の数は、R個の候補である。PおよびQは、CIIPモードが有効にされていない場合のマージ候補リスト中の候補の数を指す。
一例として、現在のブロックが第1のブロックであり、テンプレートマッチングが有効にされた状態で現在のブロックが、CIIPモードにおいてインター予測されると仮定する。この例では、ビデオエンコーダ200およびビデオデコーダ300は、第1の数の候補(たとえば、R個の候補)を有する第1のマージ候補リストを構築し得る。テンプレートマッチングが無効にされた状態でCIIPモードにおいてインター予測される第2のブロックに対する第2のマージ候補リストは、第2の数の候補(たとえば、P個の候補)を含む。候補の第1の数は、候補の第2の数とは異なる。別の例として、CIIPモードにおいてインター予測されない第2のブロックに対する第2のマージ候補リストは、第2の数の候補(たとえば、PまたはQ個の候補)を含む。
リスト(a)およびリスト(b)の候補インデックスは、短縮単項2値化を用いてコーディングされ、最初のM個のビンは、コンテキストコーディングである。いくつかの例では、リスト(c)の中のCIIP TMマージ候補の候補インデックスは、短縮単項2値化を用いてシグナリングされる。一例が、R=6である場合、0、10、110、1110、11110、および11111が、候補インデックス0、1、2、3、4、および5に対する2値化として使われることである。いくつかの例では、CIIP TMマージ候補の最初のM個のビンが、コンテキストコーディングであり、通常マージリスト(a)向けの候補インデックスコーディングにおいて使われる同じコンテキストを共有する。いくつかの例では、CIIP TMマージ候補の最初のM個のビンが、コンテキストコーディングであり、TMマージリスト(b)向けの候補インデックスコーディングにおいて使われる同じコンテキストを共有する。いくつかの例では、CIIP TMマージ候補の最初のM個のビンがコンテキストコーディングであり、コンテキストは、リスト(a)およびリスト(b)向けの候補インデックスの中で使われるコンテキストとは異なる。
つまり、マージ候補リスト中へのインデックスを示す情報を受信することの一部として、ビデオデコーダ300は、情報の最初のM個のビンに対するコンテキストを判断するように構成されてよく、最初のM個のビンに対するコンテキストは、第2のマージ候補リスト中へのインデックス用のM個のビンに対するコンテキストと同じである。この例では、第1のマージ候補リストは、テンプレートマッチングが有効にされた状態でCIIPモードにおいてインター予測される現在のブロックに対するマージ候補リストである。第2のマージ候補リストは、テンプレートマッチングが無効にされた状態でCIIPモードにおいてインター予測される第2のブロック(たとえば、通常インター予測)用に、またはCIIPモードを用いてインター予測されないブロック(たとえば、テンプレートマッチングを用いる通常インター予測)用に生成されるであろう仮説リストである。第1のマージ候補リストおよび第2のマージ候補リスト中へのインデックス用の最初のM個のビンを復号するためのコンテキストは、同じであってよい。ビデオデコーダ300は、判断されたコンテキストに基づいて、情報をコンテキストベース復号し得る。
いくつかの例では、2つのCIIPモードは、(1)複合平面モードおよび通常マージモード、(2)複合平面モードおよびTMマージモードであってよい。このCUに対してCIIPが有効にされている場合、このCIIPモード用のインター予測子を生成するのにTMマージモードが使われるかどうかを示すために、TMマージフラグがシグナリングされる。
いくつかの例では、2つのCIIPモードは、(1)複合平面モードおよび通常マージモード、(2)複合PDPCモードおよびTMマージモードであってよい。このCUに対してCIIPが有効にされている場合、どのCIIPモードが使われるかを示すために、CIIPモードフラグがシグナリングされる。
いくつかの例では、2つのCIIPモードは、(1)複合PDPCモードおよび通常マージモード、(2)複合PDPCモードおよびTMマージモードであってよい。このCUに対してCIIPが有効にされている場合、このCIIPモード用のインター予測子を生成するのにTMマージモードが使われるかどうかを示すために、TMマージフラグがシグナリングされる。
以下では、テンプレートマッチングを用いるGPMについて記載する。本開示では、テンプレートマッチング(TM)改善はGPMモードに適用される。改善は、動きベクトル候補に適用される。TM改善が適用されるかどうかを示すためのフラグがシグナリングされてよい。
GPMモードにおける動きベクトル(MV)候補の導出は、マージMV候補を導出すること、およびGPM区分のためのマージMV候補から単方向MV候補を導出することという2つのステップを含み得る。
テンプレートマッチング改善は、異なるGPM MV構築段階において適用することができる。たとえば、GPM MV候補構築は、修正されないままである。GPM MV候補を修正されないままにしておくことにより、GPMモードが、TM改善フラグにかかわらず同じMV候補構築プロセスを有するという利点を与えることができる。
次いで、TM改善が、マッチングプロセスのための現在のブロックおよび参照ブロックテンプレートを使って、単方向GPM MV候補に適用される。改善されたMVは、GPM予測を形成するための候補として使われ得る。
一例では、TM改善は、GPM区分に対してのみ実施され、これらの区分は、再構築されたネイバーテンプレートをTM改善が必要とするので、隣接ブロックを有する。一例では、MVは、区分がそれらのサンプルに隣接しなくても、再構築されたCUネイバーサンプルを使って、各GPM区分向けに導出される。
たとえば、現在のブロックがGPMにおいてインター予測されると仮定する。この例では、ビデオエンコーダ200およびビデオデコーダ300は、現在のブロックを第1の区分と第2の区分に区分し得する。上述したように、ビデオエンコーダ200およびビデオデコーダ300は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するように構成され得る。GPMの場合、現在のブロックに対する動きベクトルを生成するために、ビデオエンコーダ200およびビデオデコーダ300は、テンプレートマッチングに基づいて、第1の区分に対する第1の動きベクトルを生成し得る。1つまたは複数の例では、ビデオエンコーダ200およびビデオデコーダ300は、テンプレートマッチングに基づいて、および現在のブロック用にテンプレートマッチングが有効にされているという判断に基づいて、第2の区分に対する第2の動きベクトルを生成し得る。
例として、テンプレートマッチングを用いるGPMの場合、ビデオデコーダ300は、マージ候補リストの中の第1の動き情報に基づいて(たとえば、マージ候補リストの中の第1のインデックスを受信したことに基づいて)、第1の区分に対する第1の初期動きベクトルを判断し得る。ビデオデコーダ300は、第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断し、第1の区分の第1の現在のテンプレートと実質的に一致する、第1の探索エリア内の第1の参照テンプレートを判断し、判断された第1の参照テンプレートに基づいて、第1の区分に対する第1の動きベクトルを判断し得る。同様に、ビデオデコーダ300は、マージ候補リストの中の第2の動き情報に基づいて(たとえば、マージ候補リストの中の第2のインデックスを受信したことに基づいて)、第2の区分に対する第2の初期動きベクトルを判断し得る。ビデオデコーダ300は、第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断し、第2の区分の第2の現在のテンプレートと実質的に一致する、第2の探索エリア内の第2の参照テンプレートを判断し、判断された第2の参照テンプレートに基づいて、第2の区分に対する第2の動きベクトルを判断し得る。
GPMの場合、ビデオエンコーダ200およびビデオデコーダ300は、第1の動きベクトルに基づいて第1の予測区分を判断し、第2の動きベクトルに基づいて第2の予測区分を判断し得る。ビデオエンコーダ200およびビデオデコーダ300は、第1の予測区分と第2の予測区分を組み合わせて、現在のブロックに対する予測ブロックを判断し得る。ビデオエンコーダ200は、予測ブロックと現在のブロックとの間のサンプル値の差分を示す残差情報をシグナリングし得る。ビデオデコーダ300は、現在のブロックと予測ブロックとの間の残差を示す残差情報を受信し、残差と予測ブロックを合わせて、現在のブロックを再構築し得る。
いくつかの例では、TM改善は、GPM***モードの特定のサブセットにのみ実施される。たとえば、ある程度の特定の***が、オフセットありでCUの右下へ曲がり、その結果、CUの右下に小区分が生じる。GPM***モードまたはTMマージフラグのシグナリングは、シグナリングオーバーヘッドを抑えるように相応して修正することができる。
いくつかの例では、TM改善プロセスは、一例ではパリティを使うことによって、GPM単方向MV候補を構築する前に、マージMV候補に対して実施することができる。マージMV候補に適用されるTM改善は、マージモードにおいて適用されるTM改善プロセスと同じであってよい。この場合、マージMV導出プロセスは、マージモードとGPMモードとの間で共有することができ、TM改善ステップの総数が削減され得る。TM改善プロセスの後、単方向GPM候補が導出される。
いくつかの例では、TM改善は、特定のMV候補に対して、たとえばMV候補インデックスに基づいて実施される。たとえば、TM改善は、MV候補に対して1つおきに適用されるか、または閾よりも大きいMV候補インデックスをもつMV候補に対して適用される。一例では、閾は、MV候補数の半分に等しくてよい。この場合、TM改善プロセスが適用されるか否かはMV候補インデックスに依存するので、TM改善フラグは必要とされない場合がある。
いくつかの例では、TM改善が現在のGPMコード化ブロックに適用されるかどうかを示すために、第1のフラグがシグナリングされ得る。第1のフラグが真の場合、TM改善が第1のGPM区分に適用されるかどうかを示すために、第2のフラグがシグナリングされ、TM改善が第2のGPM区分に適用されるかどうかを示すために、第3のフラグがシグナリングされる。第1のフラグが偽の場合、第2および第3のフラグはシグナリングされず、偽であると推論され、すなわちTMが適用されない。いくつかの例では、第1のフラグが真であり、第2のフラグが偽である場合、第3のフラグはシグナリングされず、真であると推論され、すなわち、TMが第2の区分に適用される。
いくつかの例では、TM改善が現在のGPMコード化ブロックに適用されるかどうかを示すために、第1のフラグがシグナリングされ得る。第1のフラグが真の場合、TM改善が適用され得る。各GPM区分について、TM改善が適用されるかどうかが、マージインデックスによって判断される。たとえば、マージインデックスが閾よりも小さい場合、TM改善が適用される。別の例では、マージインデックスが閾よりも大きい場合、TM改善が適用される。いくつかの例では、マージリストは、第1のフラグが偽のときのマージリストとは異なり得る。いくつかの例では、マージリストは、第1のフラグが偽のときに使われるマージリストから、候補のサブセットを選ぶことによって構築される。候補の何らかの並べ替えが適用されてよい。並べ替えは、マージ候補のTMコストに基づき得る。
いくつかの例では、第1および第2のGPMコード化ブロックの両方がテンプレートマッチングを適用しないとき、2つのGPMコード化ブロックのマージインデックスは、同一になることが許されない。2つのGPMコード化ブロックのうちの一方がテンプレートマッチングを適用し、他方が適用しないとき、2つのGPMコード化ブロックのマージインデックスは同一になり得る。2つのGPMコード化ブロックの両方がテンプレートマッチングを適用するとき、マージインデックスは、テンプレートマッチング後の2つのコード化ブロックのMVが異なるときは同じになることが許される。
以下では、テンプレートマッチングを用いるMHPについて記載する。2021年3月29日に出願された米国仮出願第63/167,480号では、マージモードは、多重仮説予測における追加仮説に適用することができる。いくつかの例では、GPMにおけるのと同じマージ候補リストが使われる。
本開示では、テンプレートマッチング(TM)改善は、GPMモードにも適用される。改善は、動きベクトル候補に適用されてよい。
一方法、すなわち、米国仮出願第63/167,480号における同様の(たとえば、AMVRに関連した)記述では、TM改善が適用されるかどうかを示すために、フラグがシグナリングされ得る。MHPにおけるマージモードは、同じマージ候補リストを共有し、AMVRについての記述など、米国仮出願第63/167,480号に記載される方法を、追加仮説のためのMHPのマージモードに適用することができる。
いくつかの例では、TM改善されたマージ候補のみが、MHPマージモード用に使われる。米国仮出願第63/167,480号におけるのと同じ例(たとえば、AMVRの記述)を適用することができる。たとえば、GPMにおけるのと同じTM改善されたマージ候補リストが、MHPマージモード用に使われる。
以下では、TMマージ候補について説明する。本開示は、上ネイバーCUからの空間MVPと、TMマージ候補リストの中の左ネイバーCUからの空間MVPを、以下の条件が真である場合に交換するための例について記載する。
a.TMマージ候補の最大数が1よりも大きい
b.スライスがBスライスである
c.上ネイバーCUのMV情報および左ネイバーCUのMV情報が利用可能である
d.上ネイバーCUが単方向インター予測によってコーディングされる
e.左ネイバーCUが双方向インター予測によってコーディングされる
空間隣接CUが上(A)または左(L)である場合、空間隣接CUは単方向インター予測によってコーディングされ、LICフラグは、この空間隣接CUに対しては有効にされず、いくつかの例では、空間隣接ブロックのMVPは、TMマージリスト構築中に単方向インター予測コーディングから双方向インター予測コーディングにコンバートされる。具体的には、コンバージョンは、次のようになる。
a.第1の参照ピクチャリストの中の参照ピクチャが空間隣接ブロック用に使われ、動きベクトルがMV1として定義される場合、第2の参照ピクチャリストの第1のエントリを使い、動きベクトルMV2を-MV1になるように設定することによって、空間隣接ブロックに対して双方向予測が構築される。
b.第2の参照ピクチャリストの中の参照ピクチャが隣接ブロック用に使われ、動きベクトルがMV2として定義される場合、第1の参照ピクチャリストの第1のエントリを使い、動きベクトルMV1を-MV2になるように設定することによって、空間隣接ブロックに対して双方向予測が構築される。
いくつかの例では、左ネイバーCUからの空間MVPが、上ネイバーCUからの空間MVPの前に調べられてよい。例示的技法は、候補リスト中で、左ネイバーCUからの空間MVPと、上ネイバーCUからの空間MVPを、以下の条件が真である場合に交換し得る。
a.TMマージ候補の最大数が1よりも大きい
b.スライスがBスライスである
c.上ネイバーCUのMV情報および左ネイバーCUのMV情報が利用可能である
d.左ネイバーCUが単方向インター予測によってコーディングされる
e.上ネイバーCUが双方向インター予測によってコーディングされる
これらの技法は、左ネイバーCUおよび上ネイバーCUに限定されず、どの2つの異なる空間ネイバーCUが適用を受けてもよい。たとえば、このサブセクションにおける左ネイバーCUおよび上ネイバーCUは、右上ネイバーCUおよび左下ネイバーCUによって置き換えることができる。
別の例では、上ネイバーCUからの空間MVPと左ネイバーCUからの空間MVPの交換は、通常マージ候補リストとTMマージ候補リストの両方に適用することができる。
別の例では、通常マージ候補リストおよびTMマージ候補リストのM個の隣接CUからのM個の空間MVPが、それぞれ、双予測を用いるMVPを、別個のリストの中のより前のエントリに置かせるように、リスト構築中に並べ替えられる。
別の例では、通常マージ候補リストのM個の隣接CUからのM個の空間MVPおよびTMマージ候補リストのN個の隣接CUからのN個の空間MVPが、それぞれ、双予測を用いるMV候補を、別個のリストの中のより前のエントリに置かせるように、リスト構築中に並べ替えられ、ここでMはNに等しくない。
以下では、アフィンおよびテンプレートマッチングを用いるGPMについて記載する。いくつかの例では、各GPM区分の動きフィールドは、アフィンモデルを使うことによって表すことができる。並進モデルベースのマージ候補から生成されたGPMの候補と同様、ビデオエンコーダ200およびビデオデコーダ300は、アフィンモデルマージ候補に基づいて候補リストを生成し得る。アフィン候補リストを与えられたうえで、以下は、このリストをGPM候補リスト(これ以降、アフィンベースのGPMマージ候補リストと呼ばれる)にコンバートするための例示的技法である。
a.アフィン候補リストの中の各アフィンマージ候補に対して、単予測アフィンCPMV(制御点動きベクトル)をもつ場合、これらのCPMVは、アフィンベースのGPM候補リストのエントリに直接、順に挿入され、そうではなく、双予測CPMVをもつ場合、このケースを扱うためのいくつかの方法が、次のようにある。
i.いくつかの例示的技法は、L0(参照ピクチャリスト0またはリスト0)CPMVをとり、他方の参照ピクチャリストのCPMVを落とす。
ii.いくつかの例示的技法は、L1(参照ピクチャリスト1またはリスト1)CPMVをとり、他方の参照ピクチャリストのCPMVを落とす。
iii.いくつかの例示的技法は、0.5以上のBCW重みをもつCPMVをとる。
iv.いくつかの例示的技法は、0.5以下のBCW重みをもつCPMVをとる。
v.いくつかの例示的技法は、アフィンマージ候補リストの中の偶数候補インデックス(たとえば、0、2、4、...)をもつL0 CPMVをとり、アフィン候補リストの中の奇数候補インデックス(たとえば、1、3、5、...)をもつL1 CPMVをとる。
vi.いくつかの例示的技法は、アフィンマージ候補リストの中の偶数候補インデックス(たとえば、0、2、4、...)をもつL1 CPMVをとり、アフィン候補リストの中の奇数候補インデックス(たとえば、1、3、5、...)をもつL0 CPMVをとる。
b.アフィンベースのGPMマージ候補リストの上述した構築プロセスに加え、このリストの中の各候補は、候補が4パラメータアフィンモデルをもつ場合、2021年4月12日に出願された米国仮出願第63/173,861号、および2021年4月12日に出願された米国仮出願第63/173,949号において開示されるものと同じコンバージョンを使うことによって、6パラメータモデルにコンバートすることができる。
アフィンモデルを使うことによってGPM区分が表されるとき、その区分の動きフィールドは、そのGPM区分のCPMVを使うことによって導出されたサブブロックMVを使うことによって埋められる。CPMVは完全CUに対するサブブロックMVを導出することができるが、GPM区分のエリア内に位置するサブブロックMVのみが考慮され、GPM区分の動きフィールドの中に埋め込まれる。GPMコード化CUの混合エリアに位置する各サブブロックに対して、サブブロックは、一方は第1のGPM区分から、他方は第2のGPM区分からである2つのMVを有し、並進モデルベースのGPMと同じ記憶規則が適用される。サブブロックの中で、両方のMVが、異なる参照ピクチャリストからである場合、両方とも、サブブロックの動きフィールドに記憶され、そうではなく、両方のMVが同じ参照リストからである場合、以下の例示的技法が適用され得る。
a.いくつかの例示的技法は常に、第1のGPM区分からのMVを記憶し、他方のMVを落とす。
b.いくつかの例示的技法は常に、第2のGPM区分からのMVを記憶し、他方のMVを落とす。
アフィンベースのGPMモードの使用を示すために適用され得るいくつかの方法が、次のようにあり得る。
a.いくつかの例示的技法は、アフィンモデルを使うことによって両方のGPM区分が表されることを示すためにCUレベルフラグをシグナリングする。
b.いくつかの例示的技法は、アフィンベースのGPMマージモードの使用を示すために、各GPM区分に対して別々にフラグをシグナリングし、したがって、ビデオエンコーダ200およびビデオデコーダ300は、どのGPM区分がアフィン動きモデルをもち、どれがもたないかを判断し得る。両方のフラグが真のとき、両方のGPM区分の動きフィールドが、アフィン動きモデルを使うことによって表され得る。一方のフラグが真であり、他方が偽であるとき、ただ1つのGPM区分の動きフィールド (上述した、真に等しいフラグをもつ)がアフィン動きモデルによって表され、他方の区分の動きフィールドは、並進動きモデルによって表される。両方のフラグが偽のとき、GPMは、VVCがするのと同じやり方で動きを推論する。
c.いくつかの例示的技法は、GPM区分の少なくとも1つの動きフィールドがアフィンモデルを使うことによって表されることを示すために、CUレベルフラグをシグナリングし得る。第1のフラグが真のとき、第1のGPM区分が、アフィン動きモデルを使うことによって表されるその動きフィールドをもつものであるかどうかを示すために、第2のフラグがシグナリングされる。この第2のフラグが偽の場合、第2のGPM区分の動きフィールドは常に、アフィン動きモデルによって表され、そうではなく、この第2のフラグが真の場合、第2のGPM区分がアフィンをもつかどうかを示すために、第3のフラグがシグナリングされる。
d.いくつかの例示的技法は、GPM区分の少なくとも1つの動きフィールドが、アフィンモデルを使うことによって表されることを示すために、CUレベルフラグをシグナリングする。GPMの第1の区分がアフィンをもつかそれとも第2の区分がアフィンをもつかを示すために、第2のフラグがシグナリングされる。いくつかの例では、GPMのただ1つの区分が、アフィン動きモデルを使うことによってその動きフィールドを表し、他方は、並進動きモデルを使うことによって、その動きフィールドを表す。
さらに、2つのGPM区分の両方の動きフィールドが、アフィンモデルを使うことによって表されるとき、2つの異なるマージインデックスが、2つのGPM区分に対してそれぞれシグナリングされ、その各マージインデックスが、アフィンベースのGPMマージ候補リストのエントリをポイントしている。アフィン動きモデルを使うことによってその動きフィールドが表される単一のGPM区分のみがあるとき、アフィンベースのGPMマージ候補リストのエントリをポイントする、それ(たとえば、GPM区分)のマージインデックスがシグナリングされ、並進モデルベースのGPMマージ候補リストのエントリをポイントする、他方のGPM区分の他方のマージインデックスがシグナリングされる。いくつかの例では、2つのマージ候補インデックスは、常に互いと異なる必要はなく、というのは、それら(たとえば、2つのマージ候補インデックス)は、異なるマージ候補リストをポイントしているからである。GPM区分のどれも、その動きフィールドを、アフィン動きモデルを使うことによって表さないとき、GPMインデックスが、VVCがするのと同じやり方でシグナリングされる。
いくつかの例では、GPM区分のMVおよびCPMVは、テンプレートマッチングを使うことによって改善され得る。GPM区分の動きフィールドが、並進動きモデルを使うことによって表されるとき、適用されるテンプレートマッチングは、テンプレートマッチングを用いるGPMの記述において上述したのと同じであってよい。GPM区分の動きフィールドが、アフィンモデルを使うことによって表されるとき、2021年4月12日に出願された米国仮出願第63/173,861号、および2021年4月12日に出願された米国仮出願第63/173,949号に記載されるテンプレートマッチングベースの方法を、このGPM区分のサブブロックMVを導出するのに使われる前にCPMVを改善するために適用することができる。テンプレートマッチングを用いるGPMにおいて上述したように、アフィンモデルを使うGPMのCPMVが、テンプレートマッチングによって改善されるかどうかを示すために、第1のフラグがシグナリングされ得る。別の実施形態では、第1のGPM区分のCPMVが、テンプレートマッチングによって改善されるかどうかを示すために、第2のフラグがシグナリングされ、第2のGPM区分のCPMVがテンプレートマッチングによって改善されるかどうかを示すために、第3のフラグがシグナリングされる。いくつかの例では、第2のフラグおよび第3のフラグは、第1のフラグが真の場合にシグナリングされる。第1のフラグが真であり、第2のフラグが偽である場合、第3のフラグはシグナリングされず、真であると推論される。
いくつかの例では、第1および第2のGPMコード化ブロックが両方とも、GPM候補リストにアフィンCPMVを適用すると想定する。第1および第2のGPMコード化ブロックがテンプレートマッチングを適用しない場合、アフィンコード化ブロックを用いる2つのGPMのマージインデックスは、同一であることが許されない。アフィンコード化ブロックを用いる2つのGPMのうちの一方がテンプレートマッチングを適用し、他方が適用しないとき、アフィンコード化ブロックを用いる2つのGPMのマージインデックスは同一であってよい。アフィンコード化ブロックを用いる2つのGPMの両方がテンプレートマッチングを適用するとき、マージインデックスは、テンプレートマッチング後の2つのコード化ブロックのCPMVが異なるとき、同じであることが許される。
いくつかの例では、並進モデルベースのGPMマージ候補リストの中のどの動き候補も、2021年4月12日に出願された米国仮出願第63/173,861号、および2021年4月12日に出願された米国仮出願第63/173,949号における、並進モデルからアフィンモデルへのモデルコンバージョンにおいて指定されたテンプレートマッチング方法を通して、アフィンモデルを使うことによって表されるようにコンバートされてよい。GPM動き区分の動き情報が、並進動きモデルGPMマージ候補リストから推論され、テンプレートマッチングが有効にされることが想定されるとき、通常テンプレートマッチングおよびアフィンベースのテンプレートマッチング(2021年4月12日に出願された米国仮出願第63/173,861号、および2021年4月12日に出願された米国仮出願第63/173,949号に記載される)が、GPM区分の初期動き情報に別々に適用される。最も低いテンプレートマッチングコストをもつものの改善結果が、GPM区分の初期動き情報を置き換えるのに使われる。
いくつかの例では、上の例と同様、アフィンベースのGPMマージ候補リストの中のどの動き候補も、そのCPMVすべてが互いと同一であるとき、並進モデルを使うことによって表されるようにコンバートされてよい。GPM動き区分の動き情報が、アフィンベースのGPMマージ候補リストから推論され、テンプレートマッチングが有効にされることが想定されるとき、通常テンプレートマッチングおよびアフィンベースのテンプレートマッチング(2021年4月12日に出願された米国仮出願第63/173,861号、および2021年4月12日に出願された米国仮出願第63/173,949号に記載される)が、GPM区分の初期動き情報に別々に適用される。最も低いテンプレートマッチングコストをもつものの改善結果が、GPM区分の初期動き情報を置き換えるのに使われる。
図2は、本開示の技法を実施し得る例示的なビデオエンコーダ200を示すブロック図である。図2は、説明のために提供され、本開示において広く例示および説明するような技法の限定と見なされるべきでない。説明のために、本開示は、VVC(開発中のITU-T H.266)およびHEVC(ITU-T H.265)の技法によるビデオエンコーダ200について説明する。ただし、本開示の技法は、AV1およびAV1ビデオコーディングフォーマットに対する後継など、他のビデオコーディング規格およびビデオコーディングフォーマットに従って構成されるビデオ符号化デバイスによって実施されてよい。
図2の例では、ビデオエンコーダ200は、ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、フィルタユニット216、復号ピクチャバッファ(DPB)218、およびエントロピー符号化ユニット220を含む。ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、フィルタユニット216、DPB218、およびエントロピー符号化ユニット220のいずれかまたはすべては、1つもしくは複数のプロセッサにおいてまたは処理回路構成において実装され得る。たとえば、ビデオエンコーダ200のユニットは、ハードウェア回路構成の一部としての1つもしくは複数の回路もしくは論理要素として、またはプロセッサ、ASIC、もしくはFPGAの一部として実装され得る。さらに、ビデオエンコーダ200は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路構成を含み得る。
ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、たとえば、ビデオソース104(図1)から、ビデオデータメモリ230の中に記憶されたビデオデータを受信してよい。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測における使用のために参照ビデオデータを記憶する、参照ピクチャメモリとして作用してよい。ビデオデータメモリ230およびDPB218は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。
本開示では、ビデオデータメモリ230への言及は、そのようなものとして特に説明されていない限り、ビデオエンコーダ200の内部のメモリ、または、そのようなものとして特に説明されていない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。むしろ、ビデオデータメモリ230への言及は、符号化するためにビデオエンコーダ200が受信するビデオデータ(たとえば、符号化されるべき現在のブロックのためのビデオデータ)を記憶する参照メモリとして理解されるべきである。図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的な記憶を提供し得る。
図2の様々なユニットは、ビデオエンコーダ200によって実施される動作を理解するのを助けるために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能性を提供する回路を指し、実施され得る動作があらかじめ設定される。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施され得る動作において柔軟な機能性を提供する。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(たとえば、パラメータを受信するまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、異なる回路ブロック(固定機能またはプログラマブル)であってよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってよい。
ビデオエンコーダ200は、算術論理ユニット(ALU)、初等関数ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されたプログラマブルコアを含み得る。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(図1)が、ビデオエンコーダ200が受信および実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶してよく、またはビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶してよい。
ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出してよく、ビデオデータを残差生成ユニット204およびモード選択ユニット202に提供してよい。ビデオデータメモリ230の中のビデオデータは、符号化されることになる未加工ビデオデータであってよい。
モード選択ユニット202は、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226を含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含んでよい。
モード選択ユニット202は、一般に、符号化パラメータの組合せおよびそのような組合せに対する結果として生じるレート歪み値をテストするために複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUに対する予測モード、CUの残差データに対する変換タイプ、CUの残差データに対する量子化パラメータなどを含み得る。モード選択ユニット202は最終的に、他の試験された組合せよりも良いレート歪み値を有する符号化パラメータの組合せを選択し得る。
ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分してよく、1つまたは複数のCTUをスライス内にカプセル化してよい。モード選択ユニット202は、上記で説明したMTT構造、QTBT構造、スーパーブロック構造、または4分木構造などのツリー構造に従ってピクチャのCTUを区分し得る。上記で説明したように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、一般に「ビデオブロック」または「ブロック」とも呼ばれ得る。
一般に、モード選択ユニット202はまた、現在のブロック(たとえば、現在のCU、またはHEVCでは、PUおよびTUの重複する部分)のための予測ブロックを生成するために、その構成要素(たとえば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在のブロックのインター予測の場合、動き推定ユニット222は、1つまたは複数の参照ピクチャ(たとえば、DPB218に記憶された1つまたは複数の以前にコーディングされたピクチャ)中の1つまたは複数の厳密に一致する参照ブロックを判断するために動き探索を実施してよい。具体的には、動き推定ユニット222は、たとえば、絶対差分和(SAD)、二乗差分和(SSD)、平均絶対差(MAD)、平均二乗差(MSD)などに従って、潜在的な参照ブロックが現在のブロックとどれだけ類似しているかを表す値を算出し得る。動き推定ユニット222は一般に、現在のブロックと検討されている参照ブロックとの間のサンプルごとの差を使用して、これらの算出を実施し得る。動き推定ユニット222は、現在のブロックに最も厳密に一致する参照ブロックを示す、これらの算出の結果として生じる最も低い値を有する参照ブロックを判断し得る。
動き推定ユニット222は、現在のピクチャ中の現在のブロックの位置に対する参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。たとえば、単方向インター予測の場合、動き推定ユニット222は単一の動きベクトルを提供し得るが、双方向インター予測の場合、動き推定ユニット222は2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。たとえば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出してよい。別の例として、動きベクトルが分数サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックに対する値を補間してよい。さらに、双方向インター予測の場合、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックのためのデータを取り出し、たとえば、サンプルごとの平均化または重み付けされた平均化によって、取り出されたデータを組み合わせ得る。
AV1ビデオコーディングフォーマットに従って動作するとき、動き推定ユニット222および動き補償ユニット224は、並進動き補償、アフィン動き補償、重複ブロック動き補償(OBMC)、および/または混合インター-イントラ予測を使って、ビデオデータのコーディングブロック(たとえば、ルーマおよびクロマコーディングブロックの両方)を符号化するように構成され得る。
別の例として、イントラ予測またはイントラ予測コーディングの場合、イントラ予測ユニット226は、現在のブロックに隣接するサンプルから予測ブロックを生成し得る。たとえば、指向性モードの場合、イントラ予測ユニット226は、一般に、隣接サンプルの値を数学的に組み合わせ、これらの算出された値を現在のブロックにわたる定義された方向に投入して、予測ブロックを生成し得る。別の例として、DCモードの場合、イントラ予測ユニット226は、現在のブロックに対する隣接サンプルの平均を算出し、予測ブロックのサンプルごとにこの結果として生じる平均を含めるべき予測ブロックを生成し得る。
AV1ビデオコーディングフォーマットに従って動作するとき、イントラ予測ユニット226は、指向性イントラ予測、無指向性イントラ予測、再帰的フィルタイントラ予測、ルーマからのクロマ(CFL)予測、イントラブロックコピー(IBC)、および/またはカラーパレットモードを使って、ビデオデータのコーディングブロック(たとえば、ルーマおよびクロマコーディングブロックの両方)を符号化するように構成され得る。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加の機能ユニットを含み得る。
モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在のブロックの未加工の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在のブロックと予測ブロックとの間のサンプルごとの差分を算出する。結果として生じるサンプルごとの差分は、現在のブロックのための残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値の間の差分を判断してもよい。いくつかの例では、残差生成ユニット204は、バイナリ減算を実施する1つまたは複数の減算器回路を使用して形成され得る。
モード選択ユニット202がCUをPUに区分する例では、各PUはルーマ予測ユニットおよび対応するクロマ予測ユニットに関連付けられ得る。ビデオエンコーダ200およびビデオデコーダ300は、様々なサイズを有するPUをサポートし得る。上で示されたように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがあり、PUのサイズは、PUのルーマ予測ユニットのサイズを指すことがある。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測に対して2N×2NまたはN×NというPUサイズ、およびインター予測に対して2N×2N、2N×N、N×2N、N×N、または類似の対称的なPUサイズをサポートし得る。ビデオエンコーダ200およびビデオデコーダ300はまた、インター予測に対して、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズのための非対称区分をサポートし得る。
モード選択ユニット202がCUをPUにさらに区分しない例では、各PUはルーマコーディングブロックおよび対応するクロマコーディングブロックに関連付けられ得る。上のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがある。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、またはN×2NというCUサイズをサポートしてよい。
いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法の場合、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在のブロックのための予測ブロックを生成する。パレットモードコーディングなどのいくつかの例では、モード選択ユニット202は、予測ブロックを生成しなくてよく、代わりに、選択されたパレットに基づいてブロックを再構築する方式を示すシンタックス要素を生成してよい。そのようなモードでは、モード選択ユニット202は、符号化されるべきこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
上記で説明したように、残差生成ユニット204は、現在のブロックおよび対応する予測ブロックのためのビデオデータを受信する。次いで、残差生成ユニット204は現在のブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は予測ブロックと現在のブロックとの間のサンプルごとの差分を算出する。
変換処理ユニット206は、変換係数のブロック(本明細書では「変換係数ブロック」と呼ばれる)を生成するために、1つまたは複数の変換を残差ブロックに適用する。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、または概念的に類似の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、複数の変換、たとえば、回転変換などの、1次変換および2次変換を残差ブロックに対して実施し得る。いくつかの例では、変換処理ユニット206は、変換を残差ブロックに適用しない。
AV1に従って動作するとき、変換処理ユニット206は、変換係数のブロック(本明細書で「変換係数ブロック」と呼ばれる)を生成するために、1つまたは複数の変換を残差ブロックに適用し得る。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。たとえば、変換処理ユニット206は、個別コサイン変換(DCT)、非対称個別サイン変換(ADST)、反転ADST(たとえば、逆順でのADST)、および恒等変換(IDTX)を含み得る水平/垂直変換組合せを適用してよい。恒等変換を使うとき、変換は、垂直または水平方向のうちの1つにおいてスキップされる。いくつかの例では、変換処理はスキップされてよい。
量子化ユニット208は、変換係数ブロック中で変換係数を量子化して、量子化された変換係数ブロックを生成し得る。量子化ユニット208は、現在のブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(たとえば、モード選択ユニット202を介して)、CUと関連付けられるQP値を調整することによって、現在のブロックと関連付けられる変換係数ブロックに適用される量子化の程度を調節し得る。量子化は情報の損失をもたらすことがあり、したがって、量子化変換係数は変換処理ユニット206によって生成された元の変換係数よりも低い精度を有することがある。
逆量子化ユニット210および逆変換処理ユニット212は、それぞれ、量子化された変換係数ブロックに逆量子化および逆変換を適用して、変換係数ブロックから残差ブロックを再構築し得る。再構築ユニット214は、モード選択ユニット202によって生成される再構築された残差ブロックおよび予測ブロックに基づいて、(ある程度の歪みを伴う可能性があるが)現在のブロックに対応する再構築されたブロックを生成し得る。たとえば、再構築ユニット214は、モード選択ユニット202によって生成される予測ブロックからの対応するサンプルに再構築された残差ブロックのサンプルを加算して、再構築されたブロックを生成し得る。
フィルタユニット216は、再構築されたブロックに対して1回または複数回のフィルタ動作を実施し得る。たとえば、フィルタユニット216は、CUの端部に沿ってブロッキネスアーティファクトを低減するためにデブロッキング動作を実施し得る。いくつかの例では、フィルタユニット216の動作はスキップされ得る。
AV1に従って動作するとき、フィルタユニット216は、再構築されたブロックに対して1回または複数回のフィルタ動作を実施し得る。たとえば、フィルタユニット216は、CUの端部に沿ってブロッキネスアーティファクトを低減するためにデブロッキング動作を実施し得る。他の例では、フィルタユニット216は、条件付き指向性強化フィルタ(CDEF:constrained directional enhancement filter)を適用してよく、これは、デブロッキングの後、適用されてよく、推定エッジ方向に基づく、非分離可能、非線形、低域指向性フィルタの適用を含み得る。フィルタユニット216は、CDEFの後、適用されるループ復元フィルタをも含んでよく、分離可能対称正規化ウィーナーフィルタまたは二重自己誘導フィルタを含み得る。
ビデオエンコーダ200は、再構築されたブロックをDPB218に記憶する。たとえば、フィルタユニット216の動作が実施されない例では、再構築ユニット214が、再構築されたブロックをDPB218に記憶し得る。フィルタユニット216の動作が実施される例では、フィルタユニット216は、フィルタリングされた再構築ブロックをDPB218に記憶し得る。動き推定ユニット222および動き補償ユニット224は、後で符号化されるピクチャのブロックをインター予測するために、再構築された(および場合によってはフィルタリングされた)ブロックから形成される参照ピクチャを、DPB218から取り出し得る。加えて、イントラ予測ユニット226は、現在のピクチャの中の他のブロックをイントラ予測するために、現在のピクチャのDPB218の中の再構築されたブロックを使用し得る。
一般に、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(たとえば、インター予測のための動き情報またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実施して、エントロピー符号化データを生成し得る。たとえば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実施し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。詳細には、エントロピー符号化ユニット220がビットストリームを出力してよい。
AV1によると、エントロピー符号化ユニット220は、シンボル対シンボル適応マルチシンボル算術コーダとして構成されてよい。AV1におけるシンタックス要素は、N個の要素からなるアルファベットを含み、コンテキスト(たとえば、確率モデル)は、N個の確率のセットを含む。エントロピー符号化ユニット220は、確率を、nビット(たとえば、15ビット)累積分布関数(CDF)として記憶し得る。エントロピー符号化ユニット220は、コンテキストを更新するために、アルファベットサイズに基づく更新因子を用いて、再帰スケーリングを実施してよい。
上記で説明した動作は、ブロックに関して説明されている。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されるべきである。上で説明されたように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
いくつかの例では、ルーマコーディングブロックに関して実施される動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)および参照ピクチャを判断するための動作が、クロマブロックのためのMVおよび参照ピクチャを判断するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVはクロマブロックのためのMVを判断するためにスケーリングされてよく、参照ピクチャは同じであってよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであってよい。
ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路構成の中に実装された1つまたは複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの例を表し、1つまたは複数の処理ユニットは、テンプレートマッチング改善が、複合インター/イントラ予測(CIIP)、幾何学区分モード(GPM)、または多重仮説予測(MHP)インター予測モードのうちの少なくとも1つにおいてインター予測されるブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素をコーディングし、テンプレートマッチング改善を使用してブロックをコーディングするように構成される。たとえば、1つまたは複数のシンタックス要素をコーディングするために、ビデオエンコーダ200は、1つまたは複数のシンタックス要素を符号化し、シグナリングするように構成され得る。ブロックをコーディングするために、ビデオエンコーダ200は、ブロックを符号化し得る。
一例として、ビデオエンコーダ200は、現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断し得る。たとえば、モード選択ユニット202は、異なる予測モードに対するコスト関数を判断し、現在のブロック向けのCIIPモードまたはGPMに関連付けられたコスト関数が最も低いと判断し得る。ビデオエンコーダ200はまた、現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断し得る。たとえば、モード選択ユニット202は、テンプレートマッチングを有効にして、およびテンプレートマッチングを有効にせずに、現在のブロックを符号化するためのコスト関数を判断し、テンプレートマッチングを有効にしてCIIPモードまたはGPMにおいて現在のブロックをインター予測するためのコスト関数が最も低いと判断し得る。
ビデオエンコーダ200は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る。たとえば、ビデオエンコーダ200は、マージ候補リストを構築し得る。ビデオエンコーダ200は、マージ候補リストの中の動きベクトル情報に基づいて、初期動きベクトルを判断し得る。ビデオエンコーダ200は、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成することによって、動きベクトルを生成し得る。ビデオエンコーダ200はまた、動きベクトル情報を識別する、マージ候補リストへのインデックスを示す情報をシグナリングし得る。
ビデオエンコーダ200は、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断し得る。たとえば、CIIPモードの場合、ビデオエンコーダ200は、イントラ予測子およびインター予測子に基づいて、予測ブロックを生成し(たとえば、イントラ予測子とインター予測子を組み合わせ)得る。GPMの場合、ビデオエンコーダ200は、テンプレートマッチングに基づいて生成される第1の動きベクトルに基づいて、現在のブロックの第1の区分に対する第1の予測区分を生成し、テンプレートマッチングに基づいて生成される第2の動きベクトルに基づいて、現在のブロックの第2の区分に対する第2の予測区分を生成し得る。ビデオエンコーダ200は、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断し得る。
ビデオエンコーダ200は、予測ブロックと現在のブロックとの間の残差を示す情報をシグナリングし得る。たとえば、ビデオエンコーダ200は、予測ブロックおよび現在のブロック中のサンプルのサンプル単位で、残差値(たとえば、差分)を判断し得る。ビデオエンコーダ200は、残差値を変換および量子化し、得られた情報をシグナリングし得る。
図3は、本開示の技法を実施することができる例示的なビデオデコーダ300を示すブロック図である。図3は説明のために提供され、本開示において広く例示および説明するような技法を限定するものではない。説明のために、本開示は、VVC(開発中のITU-T H.266)およびHEVC(ITU-T H.265)の技法によるビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に従って構成されたビデオコーディングデバイスによって実施され得る。
図3の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB)メモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、フィルタユニット312、および復号ピクチャバッファ(DPB)314を含む。CPBメモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、フィルタユニット312、およびDPB314のいずれかまたはすべては、1つもしくは複数のプロセッサにおいてまたは処理回路構成において実装され得る。たとえば、ビデオデコーダ300のユニットは、ハードウェア回路構成の一部としての1つもしくは複数の回路もしくは論理要素として、またはプロセッサ、ASIC、もしくはFPGAの一部として実装され得る。さらに、ビデオデコーダ300は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路構成を含み得る。
予測処理ユニット304は、動き補償ユニット316およびイントラ予測ユニット318を含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含んでよい。他の例では、ビデオデコーダ300は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
AV1に従って動作するとき、動き補償ユニット316は、上述したように、並進動き補償、アフィン動き補償、OBMC、および/または混合インター-イントラ予測を使って、ビデオデータのコーディングブロック(たとえば、ルーマおよびクロマコーディングブロックの両方)を復号するように構成され得る。イントラ予測ユニット318は、上述したように、指向性イントラ予測、無指向性イントラ予測、再帰的フィルタイントラ予測、CFL、イントラブロックコピー(IBC)、および/またはカラーパレットモードを使って、ビデオデータのコーディングブロック(たとえば、ルーマおよびクロマコーディングブロックの両方)を復号するように構成され得る。
CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。CPBメモリ320の中に記憶されたビデオデータは、たとえば、コンピュータ可読媒体110(図1)から取得され得る。CPBメモリ320は、符号化ビデオビットストリームからの符号化ビデオデータ(たとえば、シンタックス要素)を記憶するCPBを含んでよい。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時的なデータなどの、コード化ピクチャのシンタックス要素以外のビデオデータを記憶してよい。DPB314は、一般に、符号化ビデオビットストリームの後続のデータまたはピクチャを復号するときにビデオデコーダ300が参照ビデオデータとして出力および/または使用し得る復号ピクチャを記憶する。CPBメモリ320およびDPB314は、SDRAMを含むDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。
追加または代替として、いくつかの例では、ビデオデコーダ300はメモリ120(図1)からコード化ビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320を用いて上記で説明したようなデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能性の一部または全部がビデオデコーダ300の処理回路構成によって実行されるべきソフトウェアで実装されるとき、ビデオデコーダ300によって実行されるべき命令を記憶してよい。
図3に示す様々なユニットは、ビデオデコーダ300によって実施される動作を理解することを助けるために図示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。図2と同様に、固定機能回路は、特定の機能性を提供する回路を指し、実施され得る動作があらかじめ設定される。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施され得る動作において柔軟な機能性を提供する。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって規定される方式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(たとえば、パラメータを受信するまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は異なる回路ブロック(固定機能またはプログラマブル)であってよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってよい。
ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されたプログラマブルコアを含み得る。ビデオデコーダ300の動作がプログラマブル回路上で実行するソフトウェアによって実施される例では、オンチップメモリまたはオフチップメモリが、ビデオデコーダ300が受信および実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得る。
エントロピー復号ユニット302は、CPBから符号化ビデオデータを受信し、ビデオデータをエントロピー復号して、シンタックス要素を再現し得る。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、およびフィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成し得る。
一般に、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対する再構築動作を個別に実施し得る(ここで、現在再構築されている、すなわち復号されているブロックは、「現在のブロック」と呼ばれ得る)。
エントロピー復号ユニット302は、量子化変換係数ブロックの量子化変換係数、ならびに量子化パラメータ(QP)および/または変換モード表示などの変換情報を規定する、シンタックス要素をエントロピー復号してよい。逆量子化ユニット306は、量子化の程度と、同様に、逆量子化ユニット306が適用すべき逆量子化の程度とを判断するために、量子化された変換係数ブロックに関連付けられたQPを使用し得る。逆量子化ユニット306は、たとえば、量子化された変換係数を逆量子化するために、ビット単位の左シフト演算を実施し得る。それによって、逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成し得る。
逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、現在のブロックに関連付けられた残差ブロックを生成するために、1つまたは複数の逆変換を変換係数ブロックに適用し得る。たとえば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を、変換係数ブロックに適用し得る。
さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。たとえば、現在のブロックがインター予測されることを予測情報シンタックス要素が示す場合、動き補償ユニット316は予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、そこから参照ブロックを取り出すべきDPB314中の参照ピクチャ、ならびに現在のピクチャ中の現在のブロックの場所に対する参照ピクチャ中の参照ブロックの場所を識別する動きベクトルを示し得る。動き補償ユニット316は、一般に、動き補償ユニット224(図2)に関して説明した方法と実質的に同様の方法でインター予測プロセスを実施し得る。
別の例として、現在のブロックがイントラ予測されることを予測情報シンタックス要素が示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されたイントラ予測モードに従って予測ブロックを生成し得る。やはり、イントラ予測ユニット318は、一般に、イントラ予測ユニット226(図2)に関して説明した方法と実質的に同様の方法でイントラ予測プロセスを実施し得る。イントラ予測ユニット318は、DPB314から現在のブロックに対する隣接サンプルのデータを取り出し得る。
再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在のブロックを再構築し得る。たとえば、再構築ユニット310は、予測ブロックの対応するサンプルに残差ブロックのサンプルを追加して、現在のブロックを再構築し得る。
フィルタユニット312は、再構築されたブロックに対して1回または複数回のフィルタ動作を実施し得る。たとえば、フィルタユニット312は、再構築されたブロックの端部に沿ったブロッキネスアーティファクトを減らすために、デブロッキング動作を実施し得る。フィルタユニット312の動作は、必ずしもすべての例において実施されるとは限らない。
ビデオデコーダ300は、DPB314に再構築されたブロックを記憶し得る。たとえば、フィルタユニット312の動作が実施されない例では、再構築ユニット310が、再構築されたブロックをDPB314に記憶し得る。フィルタユニット312の動作が実施される例では、フィルタユニット312は、フィルタリングされた再構築ブロックをDPB314に記憶し得る。上記で説明したように、DPB314は、イントラ予測のための現在のピクチャおよび後続の動き補償のための以前に復号されたピクチャのサンプルなどの参照情報を予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、図1のディスプレイデバイス118などのディスプレイデバイス上に後で提示するために、DPB314からの復号ピクチャ(たとえば、復号ビデオ)を出力してよい。
このように、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路構成の中に実装された1つまたは複数の処理ユニットとを含むビデオ復号デバイスの例を表し、1つまたは複数の処理ユニットは、テンプレートマッチング改善が、複合インター/イントラ予測(CIIP)、幾何学区分モード(GPM)、または多重仮説予測(MHP)インター予測モードのうちの少なくとも1つにおいてインター予測されるブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素をコーディングし、テンプレートマッチング改善を使用してブロックをコーディングするように構成される。たとえば、1つまたは複数のシンタックス要素をコーディングするために、ビデオデコーダ300は、1つまたは複数のシンタックス要素を解析し、復号するように構成され得る。ブロックをコーディングするために、ビデオデコーダ300はブロックを復号し得る。
たとえば、ビデオデコーダ300は、現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断し得る。たとえば、ビデオデコーダ300は、現在のブロックがCIIPモードにおいてインター予測されるかどうかを示すシンタックス要素を受信する場合があり、または現在のブロックがGPMにおいてインター予測されるかどうかを示すシンタックス要素を受信する場合がある。
本開示に記載する1つまたは複数の例によると、ビデオデコーダ300は、現在のブロック用にテンプレートマッチングが有効にされていると判断し得る。たとえば、ビデオデコーダ300は、現在のブロック用にテンプレートマッチングが有効にされていることを示すCUレベルシンタックス要素を受信し得る。つまり、テンプレートマッチングは、CIIPモードまたはGPMでインター予測される現在のブロックに対して有効にされる。
ビデオデコーダ300は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る。たとえば、ビデオデコーダ300は、マージ候補リストを構築し、マージ候補リスト中へのインデックスを示す情報を受信し得る。ビデオデコーダ300は、マージ候補リスト中へのインデックスに基づいて、初期動きベクトルを判断し得る。そのような例では、動きベクトルを生成するために、ビデオデコーダ300は、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成し得る。
例として、CIIPモードの場合、テンプレートマッチングに基づいて現在のブロックに対する動きベクトルを生成するために、ビデオデコーダ300は、マージ候補リストの中の動き情報に基づいて、現在のブロックに対する初期動きベクトルを判断し、初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断し、現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、探索エリア内の参照テンプレートを判断し得る。ビデオデコーダ300は、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断し得る。
GPMの場合、テンプレートマッチングに基づいて現在のブロックに対する動きベクトルを生成するために、ビデオデコーダ300は、マージ候補リストの中の第1の動き情報に基づいて、第1の区分に対する第1の初期動きベクトルを判断し、第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断し、第1の区分の第1の現在のテンプレートと実質的に一致する(たとえば、テンプレートにおけるサンプル値の差分が閾値未満である)、第1の探索エリア内の第1の参照テンプレートを判断し、判断された第1の参照テンプレートに基づいて、第1の区分に対する第1の動きベクトルを判断し得る。ビデオデコーダ300はまた、マージ候補リストの中の第2の動き情報に基づいて、第2の区分に対する第2の初期動きベクトルを判断し、第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断し、第2の区分の第2の現在のテンプレートと実質的に一致する、第2の探索エリア内の第2の参照テンプレートを判断し、判断された第2の参照テンプレートに基づいて、第2の区分に対する第2の動きベクトルを判断し得る。
ビデオデコーダ300は、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断し得る。たとえば、CIIPモードの場合、ビデオデコーダ300は、生成された動きベクトルに基づいてインター予測子を判断し、現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断し、インター予測子とイントラ予測子を組み合わせて、予測ブロックを判断し得る。GPMの場合、ビデオデコーダ300は、第1の動きベクトルに基づいて第1の予測区分を判断し、第2の動きベクトルに基づいて第2の予測区分を判断し、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断し得る。
1つまたは複数の例では、ビデオデコーダ300は、予測ブロックに基づいて現在のブロックを再構築してよい。たとえば、ビデオデコーダ300は、現在のブロックと予測ブロックとの間の残差を示す情報を受信し、残差と予測ブロックを合わせて、現在のブロックを再構築し得る。
図4は、本開示の技法による、現在のブロックを符号化するための例示的な方法を示すフローチャートである。現在のブロックは現在のCUを含み得る。ビデオエンコーダ200(図1および図2)に関して説明されるが、他のデバイスが図4の方法と同様の方法を実施するように構成され得ることを理解されたい。
この例では、ビデオエンコーダ200は最初に、現在のブロックを予測する(350)。たとえば、ビデオエンコーダ200は、現在のブロックのための予測ブロックを形成し得る。本開示に記載する1つまたは複数の例によると、ビデオエンコーダ200は、現在のブロックがCIIPモードまたはGPMでインター予測されるときなどに、テンプレートマッチング技法を使って、現在のブロックに対する予測ブロックを形成し得る。
次いで、ビデオエンコーダ200は、現在のブロックのための残差ブロックを算出し得る(352)。残差ブロックを算出するために、ビデオエンコーダ200は、元の符号化されていないブロックと現在のブロックのための予測ブロックとの間の差分を算出し得る。ビデオエンコーダ200は、次いで、残差ブロックを変換してよく、残差ブロックの変換係数を量子化してよい(354)。次に、ビデオエンコーダ200は、残差ブロックの量子化変換係数を走査してよい(356)。走査の間または走査に続いて、ビデオエンコーダ200は、変換係数をエントロピー符号化してよい(358)。たとえば、ビデオエンコーダ200は、CAVLCまたはCABACを使用して変換係数を符号化してよい。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化データを出力してよい(360)。
図5は、本開示の技法による、ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャートである。現在のブロックは現在のCUを含み得る。ビデオデコーダ300(図1および図3)に関して説明するが、他のデバイスが図5の方法に類似の方法を実施するように構成され得ることを理解されたい。
ビデオデコーダ300は、エントロピー符号化された予測情報および現在のブロックに対応する残差ブロックの変換係数のエントロピー符号化データなど、現在のブロックについてのエントロピー符号化データを受信し得る(370)。ビデオデコーダ300は、現在のブロックについての予測情報を判断するために、および残差ブロックの変換係数を再現するために、エントロピー符号化データをエントロピー復号し得る(372)。ビデオデコーダ300は、現在のブロックのための予測ブロックを算出するために、たとえば、現在のブロックのための予測情報によって示されるようなイントラ予測モードまたはインター予測モードを使用して、現在のブロックを予測し得る(374)。たとえば、本開示に記載する1つまたは複数の例によると、ビデオデコーダ300は、現在のブロックがCIIPモードまたはGPMでインター予測されるときなどに、テンプレートマッチング技法を使って、現在のブロックに対する予測ブロックを算出し得る。
次いで、ビデオデコーダ300は、量子化された変換係数のブロックを作成するために、再現された変換係数を逆走査し得る(376)。次いで、ビデオデコーダ300は、変換係数を逆量子化し、逆変換を変換係数に適用して、残差ブロックを生成し得る(378)。ビデオデコーダ300は、最終的に、予測ブロックと残差ブロックを組み合わせることによって現在のブロックを復号し得る(380)。
図11は、ビデオデータを符号化する例を示すフローチャートである。図11の例は、処理回路構成に関して記載され、その例はビデオエンコーダ200を含む。
処理回路構成は、現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断する(1100)ように構成され得る。たとえば、モード選択ユニット202は、異なる予測モードに対するコスト関数を判断し、現在のブロック向けのCIIPモードまたはGPMに関連付けられたコスト関数が最も低いと判断し得る。処理回路構成はまた、現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断し得る(1102)。たとえば、モード選択ユニット202は、テンプレートマッチングを有効にして、およびテンプレートマッチングを有効にせずに、現在のブロックを符号化するためのコスト関数を判断し、テンプレートマッチングを有効にしてCIIPモードまたはGPMにおいて現在のブロックをインター予測するためのコスト関数が最も低いと判断し得る。
処理回路構成は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る(1104)。たとえば、処理回路構成は、マージ候補リストを構築し得る。処理回路構成は、マージ候補リストの中の動きベクトル情報に基づいて、初期動きベクトルを判断し得る。処理回路構成は、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成することによって、動きベクトルを生成し得る。処理回路構成はまた、動きベクトル情報を識別する、マージ候補リストへのインデックスを示す情報をシグナリングし得る。
1つまたは複数の例では、処理回路構成は、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断する(1106)ように構成され得る。たとえば、CIIPモードの場合、処理回路構成は、イントラ予測子およびインター予測子に基づいて、予測ブロックを生成し(たとえば、イントラ予測子とインター予測子を組み合わせ)得る。GPMの場合、処理回路構成は、テンプレートマッチングに基づいて生成される第1の動きベクトルに基づいて、現在のブロックの第1の区分に対する第1の予測区分を生成し、テンプレートマッチングに基づいて生成される第2の動きベクトルに基づいて、現在のブロックの第2の区分に対する第2の予測区分を生成し得る。処理回路構成は、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断し得る。
処理回路構成は、予測ブロックと現在のブロックとの間の残差を示す情報をシグナリングし得る(1108)。たとえば、処理回路構成は、予測ブロックおよび現在のブロック中のサンプルのサンプル単位で、残差値(たとえば、差分)を判断し得る。処理回路構成は、残差値を変換および量子化し、得られた情報をシグナリングし得る。
図12は、ビデオデータを復号する例を示すフローチャートである。図12の例は、処理回路構成に関して記載され、その例はビデオデコーダ300を含む。
処理回路構成は、現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断する(1200)ように構成され得る。たとえば、処理回路構成は、現在のブロックがCIIPモードまたはGPMでインター予測されることを示すシンタックス要素を受信し得る。処理回路構成はまた、現在のブロック用にテンプレートマッチングが有効にされていると判断し得る(1202)。たとえば、処理回路構成は、現在のブロック用にテンプレートマッチングが有効にされていることを示すコーディングユニット(CU)レベルシンタックス要素を受信し得る。
処理回路構成は、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成し得る(1204)。たとえば、処理回路構成は、マージ候補リストを構築し得る。処理回路構成は、マージ候補リスト中へのインデックスを示す情報を受信し、マージ候補リスト中へのインデックスに基づいて、初期動きベクトルを判断し得る。動きベクトルを生成するために、処理回路構成は、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成し得る。
1つまたは複数の例では、処理回路構成は、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断する(1206)ように構成され得る。たとえば、CIIPモードの場合、処理回路構成は、イントラ予測子およびインター予測子に基づいて、予測ブロックを生成し(たとえば、イントラ予測子とインター予測子を組み合わせ)得る。インター予測子は、テンプレートマッチングを使って生成されていてよい。GPMの場合、処理回路構成は、テンプレートマッチングに基づいて生成される第1の動きベクトルに基づいて、現在のブロックの第1の区分に対する第1の予測区分を生成し、テンプレートマッチングに基づいて生成される第2の動きベクトルに基づいて、現在のブロックの第2の区分に対する第2の予測区分を生成し得る。処理回路構成は、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断し得る。
処理回路構成は、予測ブロックに基づいて現在のブロックを再構築してよい(1208)。たとえば、処理回路構成は、現在のブロックと予測ブロックとの間の残差を示す情報を受信し、残差と予測ブロックを合わせて、現在のブロックを再構築し得る。
以下では、別々に、またはどのような組合せで使われてもよい例示的技法について記載する。本開示の技法が、以下の条項に限定されると考えてはならない。
条項1. ビデオデータをコーディングする方法であって、テンプレートマッチング改善が、複合インター/イントラ予測(CIIP)、幾何学区分モード(GPM)、または多重仮説予測(MHP)インター予測モードのうちの少なくとも1つにおいてインター予測されるブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素をコーディングするステップと、テンプレートマッチング改善を使用してブロックをコーディングするステップとを含む方法。
条項2. 1つまたは複数のシンタックス要素をコーディングするステップは、1つまたは複数のシンタックス要素を解析し、復号するステップを含み、ブロックをコーディングするステップは、ブロックを復号するステップを含む、条項1の方法。
条項3. 1つまたは複数のシンタックス要素をコーディングするステップは、1つまたは複数のシンタックス要素を符号化し、シグナリングするステップを含み、ブロックをコーディングするステップは、ブロックを符号化するステップを含む、条項1の方法。
条項4. 1つまたは複数のシンタックス要素は、テンプレートマッチング改善が有効にされていることを示すフラグを含む、条項1~3のいずれかの方法。
条項5. 1つまたは複数のシンタックス要素は、テンプレートマッチング改善がインターモードに対して有効にされていることを示すフラグの第1のセット、テンプレートマッチング改善が、ブロックを含むピクチャまたはスライスに対して有効にされていることを示すフラグの第2のセット、および少なくとも、テンプレートマッチング改善がブロックに対して有効にされていることを示す第3のフラグのうちの1つまたはそれらの組合せを含む、条項1~3のいずれかの方法。
条項6. 1つまたは複数のシンタックス要素をコーディングするステップは、1つまたは複数のシンタックス要素をコンテキストベースコーディングするステップを含む、条項1~5のいずれかの方法。
条項7. ブロックは第1のブロックを含み、1つまたは複数のシンタックス要素は1つまたは複数のシンタックス要素の第1のセットを含み、方法は、テンプレートマッチング改善がCIIP、GPM、またはHMPインター予測モードのうちの少なくとも1つにおいてインター予測される第2のブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素の第2のセットをコーディングするステップをさらに含み、第1のブロックは、CIIP、GPM、またはHMPインター予測モードのうちの少なくとも1つにおいてインター予測され、第2のブロックは、CIIP、GPM、またはHMPインター予測モードのうちの少なくとも別の1つにおいてインター予測され、1つまたは複数のシンタックス要素をコーディングするステップは、1つまたは複数のシンタックス要素の第1のセットをコンテキストベースコーディングするステップを含み、1つまたは複数のシンタックス要素の第2のセットをコーディングするステップは、1つまたは複数のシンタックス要素の第2のセットをコンテキストベースコーディングするステップを含み、1つまたは複数のシンタックス要素の第1のセットのうちの少なくとも1つをコーディングするためのコンテキストは、1つまたは複数のシンタックス要素の第2のセットのうちの少なくとも1つをコーディングするためのコンテキストと同じである、条項1~5のいずれかの方法。
条項8. ブロックは第1のブロックを含み、1つまたは複数のシンタックス要素は1つまたは複数のシンタックス要素の第1のセットを含み、方法は、テンプレートマッチング改善がCIIP、GPM、またはHMPインター予測モードのうちの少なくとも1つにおいてインター予測される第2のブロックに対して有効にされていることを示す1つまたは複数のシンタックス要素の第2のセットをコーディングするステップをさらに含み、第1のブロックは、CIIP、GPM、またはHMPインター予測モードのうちの少なくとも1つにおいてインター予測され、第2のブロックは、CIIP、GPM、またはHMPインター予測モードのうちの少なくとも別の1つにおいてインター予測され、1つまたは複数のシンタックス要素をコーディングするステップは、1つまたは複数のシンタックス要素の第1のセットをコンテキストベースコーディングするステップを含み、1つまたは複数のシンタックス要素の第2のセットをコーディングするステップは、1つまたは複数のシンタックス要素の第2のセットをコンテキストベースコーディングするステップを含み、1つまたは複数のシンタックス要素の第1のセットのうちの少なくとも1つをコーディングするためのコンテキストは、1つまたは複数のシンタックス要素の第2のセットのうちの少なくとも1つをコーディングするためのコンテキストとは異なる、条項1~5のいずれかの方法。
条項9. ブロックは第1のブロックを含み、方法は、第1のブロックがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングするステップと、テンプレートマッチング改善が無効にされた状態で、CIIP、GPM、またはMHPインター予測モードのうちの少なくとも1つにおいて第2のブロックをコーディングするステップであって、第1のブロックおよび第2のブロックに対するインター予測モードは同じである、ステップと、第2のものがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングするステップであって、第1のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストとは異なる、ステップとをさらに含む、条項1~8のいずれかの方法。
条項10. ブロックは第1のブロックを含み、方法は、第1のブロックがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングするステップと、テンプレートマッチング改善が無効にされた状態で、CIIP、GPM、またはMHPインター予測モードのうちの少なくとも1つにおいて第2のブロックをコーディングするステップであって、第1のブロックおよび第2のブロックに対するインター予測モードは同じであるステップと、第2のものがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングするステップであって、第1のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータをコンテキストベースコーディングすることに関連付けられたコンテキストと同じである、ステップとをさらに含む、条項1~8のいずれかの方法。
条項11. ブロックは第1のブロックを含み、方法は、第1のブロックがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングするステップと、テンプレートマッチング改善が無効にされた状態で、CIIP、GPM、またはMHPインター予測モードのうちの少なくとも1つにおいて第2のブロックをコーディングするステップであって、第1のブロックおよび第2のブロックに対するインター予測モードは同じである、ステップと、第2のものがインター予測されるインター予測モードに関連付けられた1つまたは複数のパラメータをコンテキストベースコーディングするステップであって、第1のブロックに対する1つまたは複数のパラメータについてのビンの第1のセットをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータについてのバインの第1のセットをコンテキストベースコーディングすることに関連付けられたコンテキストと同じであり、第1のブロックに対する1つまたは複数のパラメータについてのビンの第2のセットの中の少なくとも1つのビンをコンテキストベースコーディングすることに関連付けられたコンテキストは、第2のブロックに対する1つまたは複数のパラメータについてのビンの第2のセットの中の少なくとも1つのビンをコンテキストベースコーディングすることに関連付けられたコンテキストとは異なる、ステップとをさらに含む、条項1~8のいずれかの方法。
条項12. ビデオデータをコーディングするためのデバイスであって、ビデオデータを記憶するように構成されたメモリと、条項1~11のいずれか1つまたはそれらの組合せの方法を実施するように構成された1つまたは複数のプロセッサとを備えるデバイス。
条項13. 復号ビデオデータを表示するように構成されたディスプレイをさらに備える、条項12のデバイス。
条項14. デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項12および13のいずれかのデバイス。
条項15. デバイスがビデオデコーダを備える、条項12~14のいずれかのデバイス。
条項16. デバイスがビデオエンコーダを備える、条項12~14のいずれかのデバイス。
条項17. 実行されると、1つまたは複数のプロセッサに条項1~11のいずれかの方法を実施させる命令を記憶したコンピュータ可読記憶媒体。
条項18. ビデオデータをコーディングするためのデバイスであって、条項1~11のいずれかの方法を実施するための手段を備えるデバイス。
条項19. ビデオデータを復号する方法であって、現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断するステップと、現在のブロック用にテンプレートマッチングが有効にされていると判断するステップと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するステップと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断するステップと、予測ブロックに基づいて、現在のブロックを再構築するステップとを含む方法。
条項20. マージ候補リストを構築するステップと、マージ候補リスト中へのインデックスを示す情報を受信するステップと、マージ候補リスト中へのインデックスに基づいて、初期動きベクトルを判断するステップとをさらに含み、動きベクトルを生成するステップは、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成するステップを含む、条項19の方法。
条項21. 現在のブロックは第1のブロックであり、現在のブロックはCIIPモードにおいてインター予測され、マージ候補リストを構築するステップは、第1の数の候補を有する第1のマージ候補リストを構築するステップを含み、テンプレートマッチングが無効にされたCIIPモードにおいてインター予測される第2のブロックに対する第2のマージ候補リストは、第2の数の候補を含み、候補の第1の数は候補の第2の数とは異なる、条項20の方法。
条項22. インデックスを示す情報を受信するステップは、情報の最初のM個のビンに対するコンテキストを判断するステップであって、最初のM個のビンに対するコンテキストは、第2のマージ候補リスト中へのインデックス用のM個のビンに対するコンテキストと同じである、ステップと、判断されたコンテキストに基づいて、情報をコンテキストベース復号するステップとを含む、条項21の方法。
条項23. 現在のブロックはGPMにおいてインター予測され、方法は、現在のブロックを第1の区分と第2の区分に区分するステップをさらに含み、動きベクトルを生成するステップは、テンプレートマッチングに基づいて、現在のブロックの第1の区分に対する第1の動きベクトルを生成するステップを含み、現在のブロックに対する予測ブロックを判断するステップは、第1の動きベクトルに基づいて、現在のブロックに対する予測ブロックを判断するステップを含む、条項19の方法。
条項24. テンプレートマッチングに基づいて、および現在のブロック用にテンプレートマッチングが有効にされているという判断に基づいて、現在のブロックの第2の区分に対する第2の動きベクトルを生成するステップをさらに含み、予測ブロックを判断するステップは、第1の動きベクトルおよび第2の動きベクトルに基づいて、現在のブロックに対する予測ブロックを判断するステップを含む、条項23の方法。
条項25. 現在のブロックはCIIPモードにおいてインター予測され、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するステップは、マージ候補リストの中の動き情報に基づいて、現在のブロックに対する初期動きベクトルを判断するステップと、初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断するステップと、現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、探索エリア内の参照テンプレートを判断するステップと、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断するステップとを含み、予測ブロックを判断するステップは、生成された動きベクトルに基づいてインター予測子を判断するステップと、現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断するステップと、インター予測子とイントラ予測子を組み合わせて、予測ブロックを判断するステップとを含む、条項19~22の方法。
条項26. 現在のブロックはGPMにおいてインター予測され、方法は、現在のブロックを第1の区分と第2の区分に区分するステップをさらに含み、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するステップは、マージ候補リストの中の第1の動き情報に基づいて、第1の区分に対する第1の初期動きベクトルを判断するステップと、第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断するステップと、第1の区分の第1の現在のテンプレートと実質的に一致する、第1の探索エリア内の第1の参照テンプレートを判断するステップと、判断された第1の参照テンプレートに基づいて、第1の区分に対する第1の動きベクトルを判断するステップとを含み、方法は、マージ候補リストの中の第2の動き情報に基づいて、第2の区分に対する第2の初期動きベクトルを判断するステップと、第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断するステップと、第2の区分の第2の現在のテンプレートと実質的に一致する、第2の探索エリア内の第2の参照テンプレートを判断するステップと、判断された第2の参照テンプレートに基づいて、第2の区分に対する第2の動きベクトルを判断するステップとをさらに含み、予測ブロックを判断するステップは、第1の動きベクトルに基づいて第1の予測区分を判断するステップと、第2の動きベクトルに基づいて第2の予測区分を判断するステップと、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断するステップとを含む、条項19、23、および24の方法。
条項27. 現在のブロック用にテンプレートマッチングが有効にされていると判断するステップは、現在のブロック用にテンプレートマッチングが有効にされていることを示すコーディングユニット(CU)レベルシンタックス要素を受信するステップを含む、条項19~26のいずれかの方法。
条項28. 予測ブロックに基づいて、現在のブロックを再構築するステップは、現在のブロックと予測ブロックとの間の残差を示す情報を受信するステップと、残差と予測ブロックを合わせて、現在のブロックを再構築するステップとを含む、条項19~27のいずれかの方法。
条項29. ビデオデータを復号するためのデバイスであって、ビデオデータを記憶するように構成されたメモリと、処理回路構成とを備え、処理回路構成は、ビデオデータの現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断することと、現在のブロック用にテンプレートマッチングが有効にされていると判断することと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成することと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断することと、予測ブロックに基づいて、現在のブロックを再構築することとを行うように構成される、デバイス。
条項30. 処理回路構成は、マージ候補リストを構築することと、マージ候補リスト中へのインデックスを示す情報を受信することと、マージ候補リスト中へのインデックスに基づいて、初期動きベクトルを判断することとを行うように構成され、動きベクトルを生成するために、処理回路構成は、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成するように構成される、条項29のデバイス。
条項31. 現在のブロックは第1のブロックであり、現在のブロックはCIIPモードにおいてインター予測され、マージ候補リストを構築するために、処理回路構成は、第1の数の候補を有する第1のマージ候補リストを構築するように構成され、テンプレートマッチングが無効にされたCIIPモードにおいてインター予測される第2のブロックに対する第2のマージ候補リストは、第2の数の候補を含み、候補の第1の数は候補の第2の数とは異なる、条項30のデバイス。
条項32. インデックスを示す情報を受信するために、処理回路構成は、情報の最初のM個のビンに対するコンテキストを判断することであって、最初のM個のビンに対するコンテキストは、第2のマージ候補リスト中へのインデックス用のM個のビンに対するコンテキストと同じである、ことと、判断されたコンテキストに基づいて、情報をコンテキストベース復号することとを行うように構成される、条項31のデバイス。
条項33. 現在のブロックはGPMにおいてインター予測され、処理回路構成は、現在のブロックを第1の区分と第2の区分に区分するように構成され、動きベクトルを生成するために、処理回路構成は、テンプレートマッチングに基づいて、現在のブロックの第1の区分に対する第1の動きベクトルを生成するように構成され、現在のブロックに対する予測ブロックを判断するために、処理回路構成は、第1の動きベクトルに基づいて、現在のブロックに対する予測ブロックを判断するように構成される、条項29のデバイス。
条項34. 処理回路構成は、テンプレートマッチングに基づいて、および現在のブロック用にテンプレートマッチングが有効にされているという判断に基づいて、現在のブロックの第2の区分に対する第2の動きベクトルを生成するように構成され、予測ブロックを判断するために、処理回路構成は、第1の動きベクトルおよび第2の動きベクトルに基づいて、現在のブロックに対する予測ブロックを判断するように構成される、条項33のデバイス。
条項35. 現在のブロックはCIIPモードにおいてインター予測され、テンプレートマッチングに基づいて現在のブロックに対する動きベクトルを生成するために、処理回路構成は、マージ候補リストの中の動き情報に基づいて、現在のブロックに対する初期動きベクトルを判断することと、初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断することと、現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、探索エリア内の参照テンプレートを判断することと、判断された参照テンプレートに基づいて、現在のブロックに対する動きベクトルを判断することとを行うように構成され、予測ブロックを判断するために、処理回路構成は、生成された動きベクトルに基づいてインター予測子を判断することと、現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断することと、インター予測子とイントラ予測子を組み合わせて、予測ブロックを判断することとを行うように構成される、条項29~32のいずれかのデバイス。
条項36. 現在のブロックはGPMにおいてインター予測され、処理回路構成は、現在のブロックを第1の区分と第2の区分に区分するように構成され、テンプレートマッチングに基づいて現在のブロックに対する動きベクトルを生成するために、処理回路構成は、マージ候補リストの中の第1の動き情報に基づいて、第1の区分に対する第1の初期動きベクトルを判断することと、第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断することと、第1の区分の第1の現在のテンプレートと実質的に一致する、第1の探索エリア内の第1の参照テンプレートを判断することと、判断された第1の参照テンプレートに基づいて、第1の区分に対する第1の動きベクトルを判断することとを行うように構成され、処理回路構成は、マージ候補リストの中の第2の動き情報に基づいて、第2の区分に対する第2の初期動きベクトルを判断することと、第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断することと、第2の区分の第2の現在のテンプレートと実質的に一致する、第2の探索エリア内の第2の参照テンプレートを判断することと、判断された第2の参照テンプレートに基づいて、第2の区分に対する第2の動きベクトルを判断することとを行うように構成され、予測ブロックを判断するために、処理回路構成は、第1の動きベクトルに基づいて第1の予測区分を判断することと、第2の動きベクトルに基づいて第2の予測区分を判断することと、第1の予測区分と第2の予測区分を組み合わせて、予測ブロックを判断することとを行うように構成される、条項29、33、および34のいずれかのデバイス。
条項37. 現在のブロック用にテンプレートマッチングが有効にされていると判断するために、処理回路構成は、現在のブロック用にテンプレートマッチングが有効にされていることを示すコーディングユニット(CU)レベルシンタックス要素を受信するように構成される、条項29~36のいずれかのデバイス。
条項38. 予測ブロックに基づいて、現在のブロックを再構築するために、処理回路構成は、現在のブロックと予測ブロックとの間の残差を示す情報を受信することと、残差と予測ブロックを合わせて、現在のブロックを再構築することとを行うように構成される、条項29~37のいずれかのデバイス。
条項39. 復号ビデオデータを表示するように構成されたディスプレイをさらに備える、条項29~38のいずれかのデバイス。
条項40. デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項29~39のいずれかのデバイス。
条項41. 命令を記憶するコンピュータ可読ストレージであって、命令は、実行されると、1つまたは複数のプロセッサに、現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断することと、現在のブロック用にテンプレートマッチングが有効にされていると判断することと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成することと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断することと、予測ブロックに基づいて、現在のブロックを再構築することとを行わせる、コンピュータ可読ストレージ。
条項42. 1つまたは複数のプロセッサに、マージ候補リストを構築することと、マージ候補リスト中へのインデックスを示す情報を受信することと、マージ候補リスト中へのインデックスに基づいて、初期動きベクトルを判断することとを行わせる命令をさらに備え、1つまたは複数のプロセッサに、動きベクトルを生成させる命令は、1つまたは複数のプロセッサに、初期動きベクトルに基づくテンプレートマッチングを適用させて、動きベクトルを生成する命令を含む、条項41のコンピュータ可読記憶媒体。
条項43. ビデオデータを符号化する方法であって、現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断するステップと、現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断するステップと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成するステップと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断するステップと、予測ブロックと現在のブロックとの間の残差を示す情報をシグナリングするステップとを含む方法。
条項44. マージ候補リストを構築するステップと、マージ候補リストの中の動きベクトル情報に基づいて、初期動きベクトルを判断するステップとをさらに含み、動きベクトルを生成するステップは、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成するステップを含み、方法は、動きベクトル情報を識別する、マージ候補リストへのインデックスを示す情報をシグナリングするステップをさらに含む、条項43の方法。
条項45. ビデオデータを符号化するためのデバイスであって、ビデオデータを記憶するように構成されたメモリと、処理回路構成とを備え、処理回路構成は、現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断することと、現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断することと、テンプレートマッチングに基づいて、現在のブロックに対する動きベクトルを生成することと、CIIPモードまたはGPMに従って、動きベクトルに基づいて現在のブロックに対する予測ブロックを判断することと、予測ブロックと現在のブロックとの間の残差を示す情報をシグナリングすることとを行うように構成される、デバイス。
条項46. 処理回路構成は、マージ候補リストを構築することと、マージ候補リストの中の動きベクトル情報に基づいて、初期動きベクトルを判断することとを行うように構成され、動きベクトルを生成するために、処理回路構成は、初期動きベクトルに基づくテンプレートマッチングを適用して、動きベクトルを生成するように構成され、処理回路構成は、動きベクトル情報を識別する、マージ候補リストへのインデックスを示す情報をシグナリングするように構成される、条項45のデバイス。
例に応じて、本明細書で説明する技法のいずれかのいくつかの作用またはイベントが、異なるシーケンスで実施される場合があり、追加され、統合され、または完全に除外されてよい(たとえば、説明したすべての作用またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、作用またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して、同時に実施されてよい。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含んでよい。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでよい。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記のものの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の等価な集積論理回路構成もしくはディスクリート論理回路構成など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」および「処理回路構成」という用語は、上記の構造、または本明細書で説明した技法の実装に適した任意の他の構造のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供されてよく、または複合コーデックの中に組み込まれてもよい。また、技法は、1つまたは複数の回路または論理要素の中に完全に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実施するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてもよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明されたような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてもよい。
様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
100 ビデオ符号化および復号システム
102 ソースデバイス
104 ビデオソース
106 メモリ
108 出力インターフェース
110 コンピュータ可読媒体
112 記憶デバイス
114 ファイルサーバ
116 宛先デバイス
118 ディスプレイデバイス
120 メモリ
122 入力インターフェース
200 ビデオエンコーダ
202 モード選択ユニット
204 残差生成ユニット
206 変換処理ユニット
208 量子化ユニット
210 逆量子化ユニット
212 逆変換処理ユニット
214 再構築ユニット
216 フィルタユニット
218 復号ピクチャバッファ(DPB)
220 エントロピー符号化ユニット
222 動き推定ユニット
224 動き補償ユニット
226 イントラ予測ユニット
230 ビデオデータメモリ
300 ビデオデコーダ
302 エントロピー復号ユニット
304 予測処理ユニット
306 逆量子化ユニット
308 逆変換処理ユニット
310 再構築ユニット
312 フィルタユニット
314 復号ピクチャバッファ(DPB)
316 動き補償ユニット
318 イントラ予測ユニット
320 コード化ピクチャバッファ(CPB)メモリ

Claims (28)

  1. ビデオデータを復号する方法であって、
    現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断するステップと、
    前記現在のブロック用にテンプレートマッチングが有効にされていると判断するステップと、
    テンプレートマッチングに基づいて、前記現在のブロックに対する動きベクトルを生成するステップと、
    前記CIIPモードまたは前記GPMに従って、前記動きベクトルに基づいて前記現在のブロックに対する予測ブロックを判断するステップと、
    前記予測ブロックに基づいて、前記現在のブロックを再構築するステップとを含む方法。
  2. マージ候補リストを構築するステップと、
    前記マージ候補リスト中へのインデックスを示す情報を受信するステップと、
    前記マージ候補リスト中への前記インデックスに基づいて、初期動きベクトルを判断するステップとをさらに含み、
    前記動きベクトルを生成するステップは、前記初期動きベクトルに基づくテンプレートマッチングを適用して、前記動きベクトルを生成するステップを含む、請求項1に記載の方法。
  3. 前記現在のブロックは第1のブロックであり、
    前記現在のブロックは前記CIIPモードにおいてインター予測され、
    前記マージ候補リストを構築するステップは、第1の数の候補を有する第1のマージ候補リストを構築するステップを含み、
    テンプレートマッチングが無効にされたCIIPモードにおいてインター予測される第2のブロックに対する第2のマージ候補リストは、第2の数の候補を含み、
    前記第1の数の候補は前記第2の数の候補とは異なる、請求項2に記載の方法。
  4. 前記インデックスを示す情報を受信するステップは、
    前記情報の最初のM個のビンに対するコンテキストを判断するステップであって、前記最初のM個のビンに対する前記コンテキストは、前記第2のマージ候補リスト中へのインデックス用のM個のビンに対するコンテキストと同じである、ステップと、
    前記判断されたコンテキストに基づいて、前記情報をコンテキストベース復号するステップとを含む、請求項3に記載の方法。
  5. 前記現在のブロックはGPMにおいてインター予測され、
    前記方法は、前記現在のブロックを第1の区分と第2の区分に区分するステップをさらに含み、
    前記動きベクトルを生成するステップは、テンプレートマッチングに基づいて、前記現在のブロックの前記第1の区分に対する第1の動きベクトルを生成するステップを含み、
    前記現在のブロックに対する前記予測ブロックを判断するステップは、前記第1の動きベクトルに基づいて、前記現在のブロックに対する前記予測ブロックを判断するステップを含む、請求項1に記載の方法。
  6. テンプレートマッチングに基づいて、および前記現在のブロック用にテンプレートマッチングが有効にされているという前記判断に基づいて、前記現在のブロックの前記第2の区分に対する第2の動きベクトルを生成するステップをさらに含み、
    前記予測ブロックを判断するステップは、前記第1の動きベクトルおよび前記第2の動きベクトルに基づいて、前記現在のブロックに対する前記予測ブロックを判断するステップを含む、請求項5に記載の方法。
  7. 前記現在のブロックはCIIPモードにおいてインター予測され、
    テンプレートマッチングに基づいて、前記現在のブロックに対する前記動きベクトルを生成するステップは、
    マージ候補リストの中の動き情報に基づいて、前記現在のブロックに対する初期動きベクトルを判断するステップと、
    前記初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断するステップと、
    前記現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、前記探索エリア内の参照テンプレートを判断するステップと、
    前記判断された参照テンプレートに基づいて、前記現在のブロックに対する前記動きベクトルを判断するステップとを含み、
    前記予測ブロックを判断するステップは、
    前記生成された動きベクトルに基づいてインター予測子を判断するステップと、
    前記現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断するステップと、
    前記インター予測子と前記イントラ予測子を組み合わせて、前記予測ブロックを判断するステップとを含む、請求項1に記載の方法。
  8. 前記現在のブロックはGPMにおいてインター予測され、
    前記方法は、前記現在のブロックを第1の区分と第2の区分に区分するステップをさらに含み、
    テンプレートマッチングに基づいて、前記現在のブロックに対する前記動きベクトルを生成するステップは、
    マージ候補リストの中の第1の動き情報に基づいて、前記第1の区分に対する第1の初期動きベクトルを判断するステップと、
    前記第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断するステップと、
    前記第1の区分の第1の現在のテンプレートと実質的に一致する、前記第1の探索エリア内の第1の参照テンプレートを判断するステップと、
    前記判断された第1の参照テンプレートに基づいて、前記第1の区分に対する第1の動きベクトルを判断するステップとを含み、
    前記方法は、
    前記マージ候補リストの中の第2の動き情報に基づいて、前記第2の区分に対する第2の初期動きベクトルを判断するステップと、
    前記第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断するステップと、
    前記第2の区分の第2の現在のテンプレートと実質的に一致する、前記第2の探索エリア内の第2の参照テンプレートを判断するステップと、
    前記判断された第2の参照テンプレートに基づいて、前記第2の区分に対する第2の動きベクトルを判断するステップとをさらに含み、
    前記予測ブロックを判断するステップは、
    前記第1の動きベクトルに基づいて第1の予測区分を判断するステップと、
    前記第2の動きベクトルに基づいて第2の予測区分を判断するステップと、
    前記第1の予測区分と前記第2の予測区分を組み合わせて、前記予測ブロックを判断するステップとを含む、請求項1に記載の方法。
  9. 前記現在のブロック用にテンプレートマッチングが有効にされていると判断するステップは、前記現在のブロック用にテンプレートマッチングが有効にされていることを示すコーディングユニット(CU)レベルシンタックス要素を受信するステップを含む、請求項1に記載の方法。
  10. 前記予測ブロックに基づいて、前記現在のブロックを再構築するステップは、
    前記現在のブロックと前記予測ブロックとの間の残差を示す情報を受信するステップと、
    前記残差と前記予測ブロックを合わせて、前記現在のブロックを再構築するステップとを含む、請求項1に記載の方法。
  11. ビデオデータを復号するためのデバイスであって、
    前記ビデオデータを記憶するように構成されたメモリと、
    処理回路構成とを備え、前記処理回路構成は、
    前記ビデオデータの現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断することと、
    前記現在のブロック用にテンプレートマッチングが有効にされていると判断することと、
    テンプレートマッチングに基づいて、前記現在のブロックに対する動きベクトルを生成することと、
    前記CIIPモードまたは前記GPMに従って、前記動きベクトルに基づいて前記現在のブロックに対する予測ブロックを判断することと、
    前記予測ブロックに基づいて、前記現在のブロックを再構築することとを行うように構成される、デバイス。
  12. 前記処理回路構成は、
    マージ候補リストを構築することと、
    前記マージ候補リスト中へのインデックスを示す情報を受信することと、
    前記マージ候補リスト中への前記インデックスに基づいて、初期動きベクトルを判断することとを行うように構成され、
    前記動きベクトルを生成するために、前記処理回路構成は、前記初期動きベクトルに基づくテンプレートマッチングを適用して、前記動きベクトルを生成するように構成される、請求項11に記載のデバイス。
  13. 前記現在のブロックは第1のブロックであり、
    前記現在のブロックは前記CIIPモードにおいてインター予測され、
    前記マージ候補リストを構築するために、前記処理回路構成は、第1の数の候補を有する第1のマージ候補リストを構築するように構成され、
    テンプレートマッチングが無効にされたCIIPモードにおいてインター予測される第2のブロックに対する第2のマージ候補リストは、第2の数の候補を含み、
    前記第1の数の候補は前記第2の数の候補とは異なる、請求項12に記載のデバイス。
  14. 前記インデックスを示す情報を受信するために、前記処理回路構成は、
    前記情報の最初のM個のビンに対するコンテキストを判断することであって、前記最初のM個のビンに対する前記コンテキストは、前記第2のマージ候補リスト中へのインデックス用のM個のビンに対するコンテキストと同じである、ことと、
    前記判断されたコンテキストに基づいて、前記情報をコンテキストベース復号することとを行うように構成される、請求項13に記載のデバイス。
  15. 前記現在のブロックはGPMにおいてインター予測され、
    前記処理回路構成は、前記現在のブロックを第1の区分と第2の区分に区分するように構成され、
    前記動きベクトルを生成するために、前記処理回路構成は、テンプレートマッチングに基づいて、前記現在のブロックの前記第1の区分に対する第1の動きベクトルを生成するように構成され、
    前記現在のブロックに対する前記予測ブロックを判断するために、前記処理回路構成は、前記第1の動きベクトルに基づいて、前記現在のブロックに対する前記予測ブロックを判断するように構成される、請求項11に記載のデバイス。
  16. 前記処理回路構成は、
    テンプレートマッチングに基づいて、および前記現在のブロック用にテンプレートマッチングが有効にされているという前記判断に基づいて、前記現在のブロックの前記第2の区分に対する第2の動きベクトルを生成するように構成され、
    前記予測ブロックを判断するために、前記処理回路構成は、前記第1の動きベクトルおよび前記第2の動きベクトルに基づいて、前記現在のブロックに対する前記予測ブロックを判断するように構成される、請求項15に記載のデバイス。
  17. 前記現在のブロックはCIIPモードにおいてインター予測され、
    テンプレートマッチングに基づいて前記現在のブロックに対する前記動きベクトルを生成するために、前記処理回路構成は、
    マージ候補リストの中の動き情報に基づいて、前記現在のブロックに対する初期動きベクトルを判断することと、
    前記初期動きベクトルに基づいて、参照ピクチャの中の探索エリアを判断することと、
    前記現在のブロックを含む現在のピクチャ内の現在のテンプレートと実質的に一致する、前記探索エリア内の参照テンプレートを判断することと、
    前記判断された参照テンプレートに基づいて、前記現在のブロックに対する前記動きベクトルを判断することとを行うように構成され、
    前記予測ブロックを判断するために、前記処理回路構成は、
    前記生成された動きベクトルに基づいてインター予測子を判断することと、
    前記現在のブロックに隣接するサンプルに基づいてイントラ予測子を判断することと、
    前記インター予測子と前記イントラ予測子を組み合わせて、前記予測ブロックを判断することとを行うように構成される、請求項11に記載のデバイス。
  18. 前記現在のブロックはGPMにおいてインター予測され、
    前記処理回路構成は、前記現在のブロックを第1の区分と第2の区分に区分するように構成され、
    テンプレートマッチングに基づいて前記現在のブロックに対する前記動きベクトルを生成するために、前記処理回路構成は、
    マージ候補リストの中の第1の動き情報に基づいて、前記第1の区分に対する第1の初期動きベクトルを判断することと、
    前記第1の初期動きベクトルに基づいて、第1の参照ピクチャの中の第1の探索エリアを判断することと、
    前記第1の区分の第1の現在のテンプレートと実質的に一致する、前記第1の探索エリア内の第1の参照テンプレートを判断することと、
    前記判断された第1の参照テンプレートに基づいて、前記第1の区分に対する第1の動きベクトルを判断することとを行うように構成され、
    前記処理回路構成は、
    前記マージ候補リストの中の第2の動き情報に基づいて、前記第2の区分に対する第2の初期動きベクトルを判断することと、
    前記第2の初期動きベクトルに基づいて、第2の参照ピクチャの中の第2の探索エリアを判断することと、
    前記第2の区分の第2の現在のテンプレートと実質的に一致する、前記第2の探索エリア内の第2の参照テンプレートを判断することと、
    前記判断された第2の参照テンプレートに基づいて、前記第2の区分に対する第2の動きベクトルを判断することとを行うように構成され、
    前記予測ブロックを判断するために、前記処理回路構成は、
    前記第1の動きベクトルに基づいて第1の予測区分を判断することと、
    前記第2の動きベクトルに基づいて第2の予測区分を判断することと、
    前記第1の予測区分と前記第2の予測区分を組み合わせて、前記予測ブロックを判断することとを行うように構成される、請求項11に記載のデバイス。
  19. 前記現在のブロック用にテンプレートマッチングが有効にされていると判断するために、前記処理回路構成は、前記現在のブロック用にテンプレートマッチングが有効にされていることを示すコーディングユニット(CU)レベルシンタックス要素を受信するように構成される、請求項11に記載のデバイス。
  20. 前記予測ブロックに基づいて、前記現在のブロックを再構築するために、前記処理回路構成は、
    前記現在のブロックと前記予測ブロックとの間の残差を示す情報を受信することと、
    前記残差と前記予測ブロックを合わせて、前記現在のブロックを再構築することとを行うように構成される、請求項11に記載のデバイス。
  21. 復号ビデオデータを表示するように構成されたディスプレイをさらに備える、請求項11に記載のデバイス。
  22. 前記デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項11に記載のデバイス。
  23. 命令を記憶するコンピュータ可読記憶ストレージであって、前記命令は、実行されると、1つまたは複数のプロセッサに、
    現在のブロックが複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されると判断することと、
    前記現在のブロック用にテンプレートマッチングが有効にされていると判断することと、
    テンプレートマッチングに基づいて、前記現在のブロックに対する動きベクトルを生成することと、
    前記CIIPモードまたは前記GPMに従って、前記動きベクトルに基づいて前記現在のブロックに対する予測ブロックを判断することと、
    前記予測ブロックに基づいて、前記現在のブロックを再構築することとを行わせる、コンピュータ可読記憶媒体。
  24. 前記1つまたは複数のプロセッサに、
    マージ候補リストを構築することと、
    前記マージ候補リスト中へのインデックスを示す情報を受信することと、
    前記マージ候補リスト中への前記インデックスに基づいて、初期動きベクトルを判断することとを行わせる命令をさらに備え、
    前記1つまたは複数のプロセッサに、前記動きベクトルを生成させる前記命令は、前記1つまたは複数のプロセッサに、前記初期動きベクトルに基づくテンプレートマッチングを適用させて、前記動きベクトルを生成する命令を含む、請求項23に記載のコンピュータ可読記憶媒体。
  25. ビデオデータを符号化する方法であって、
    現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断するステップと、
    前記現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断するステップと、
    テンプレートマッチングに基づいて、前記現在のブロックに対する動きベクトルを生成するステップと、
    CIIPモードまたはGPMに従って、前記動きベクトルに基づいて前記現在のブロックに対する予測ブロックを判断するステップと、
    前記予測ブロックと前記現在のブロックとの間の残差を示す情報をシグナリングするステップとを含む方法。
  26. マージ候補リストを構築するステップと、
    前記マージ候補リストの中の動きベクトル情報に基づいて、初期動きベクトルを判断するステップとをさらに含み、
    前記動きベクトルを生成するステップは、前記初期動きベクトルに基づくテンプレートマッチングを適用して、前記動きベクトルを生成するステップを含み、
    前記方法は、前記動きベクトル情報を識別する、前記マージ候補リストへのインデックスを示す情報をシグナリングするステップをさらに含む、請求項25に記載の方法。
  27. ビデオデータを符号化するためのデバイスであって、
    前記ビデオデータを記憶するように構成されたメモリと、
    処理回路構成とを備え、前記処理回路構成は、
    現在のブロックが、複合インター-イントラ予測(CIIP)モードまたは幾何学区分モード(GPM)においてインター予測されるべきであると判断することと、
    前記現在のブロックに対してテンプレートマッチングが有効にされるべきであると判断することと、
    テンプレートマッチングに基づいて、前記現在のブロックに対する動きベクトルを生成することと、
    CIIPモードまたはGPMに従って、前記動きベクトルに基づいて前記現在のブロックに対する予測ブロックを判断することと、
    前記予測ブロックと前記現在のブロックとの間の残差を示す情報をシグナリングすることとを行うように構成される、デバイス。
  28. 前記処理回路構成は、
    マージ候補リストを構築することと、
    前記マージ候補リストの中の動きベクトル情報に基づいて、初期動きベクトルを判断することとを行うように構成され、
    前記動きベクトルを生成するために、前記処理回路構成は、前記初期動きベクトルに基づくテンプレートマッチングを適用して、前記動きベクトルを生成するように構成され、
    前記処理回路構成は、前記動きベクトル情報を識別する、前記マージ候補リストへのインデックスを示す情報をシグナリングするように構成される、請求項27に記載のデバイス。
JP2023560893A 2021-04-12 2022-03-23 インター予測モードにおけるテンプレートマッチングの改善 Pending JP2024514103A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202163173834P 2021-04-12 2021-04-12
US63/173,834 2021-04-12
US202163176798P 2021-04-19 2021-04-19
US63/176,798 2021-04-19
US17/655,895 2022-03-22
US17/655,895 US12022085B2 (en) 2021-04-12 2022-03-22 Template matching refinement in inter-prediction modes
PCT/US2022/021551 WO2022221013A1 (en) 2021-04-12 2022-03-23 Template matching refinement in inter-prediction modes

Publications (1)

Publication Number Publication Date
JP2024514103A true JP2024514103A (ja) 2024-03-28

Family

ID=83511051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023560893A Pending JP2024514103A (ja) 2021-04-12 2022-03-23 インター予測モードにおけるテンプレートマッチングの改善

Country Status (7)

Country Link
US (1) US12022085B2 (ja)
EP (1) EP4324195A1 (ja)
JP (1) JP2024514103A (ja)
KR (1) KR20230169958A (ja)
CN (1) CN116941240A (ja)
BR (1) BR112023020168A2 (ja)
TW (1) TW202245477A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12022085B2 (en) * 2021-04-12 2024-06-25 Qualcomm Incorporated Template matching refinement in inter-prediction modes
US20240129506A1 (en) * 2022-10-14 2024-04-18 Tencent America LLC Template-matching based merge index reordering for geometric partition mode (gpm)
WO2024091492A1 (en) * 2022-10-25 2024-05-02 Iinnopeak Technology, Inc. Spatial geometric partitioning mode improvement for video coding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210091161A (ko) 2018-11-20 2021-07-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 부분적 위치에 기반한 차분 계산
WO2020263466A1 (en) 2019-06-25 2020-12-30 Alibaba Group Holding Limited Method and system for motion refinement in video coding
US11477437B2 (en) * 2021-01-28 2022-10-18 Lemon Inc. Coding of motion information
US11936899B2 (en) * 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
US20220295090A1 (en) * 2021-03-12 2022-09-15 Lemon Inc. Motion candidate derivation
US20220311997A1 (en) 2021-03-29 2022-09-29 Qualcomm Incorporated Adaptively coding motion information for multiple hypothesis prediction for video coding
US12022085B2 (en) * 2021-04-12 2024-06-25 Qualcomm Incorporated Template matching refinement in inter-prediction modes
US11936877B2 (en) 2021-04-12 2024-03-19 Qualcomm Incorporated Template matching based affine prediction for video coding
US11876973B2 (en) * 2021-04-12 2024-01-16 Alibaba (China) Co., Ltd. Method, apparatus, and non-transitory computer-readable storage medium for motion vector refinement for geometric partition mode
CN118077195A (zh) * 2021-09-29 2024-05-24 阿里巴巴达摩院(杭州)科技有限公司 视频编码中合并候选列表中改进的时间合并候选
US20230108504A1 (en) * 2021-10-04 2023-04-06 Tencent America LLC On geometric partition mode with intra and inter prediction
US20230156218A1 (en) * 2021-11-18 2023-05-18 Tencent America LLC Derived motion vector with single reference signaling

Also Published As

Publication number Publication date
TW202245477A (zh) 2022-11-16
BR112023020168A2 (pt) 2023-12-05
US12022085B2 (en) 2024-06-25
US20220329822A1 (en) 2022-10-13
KR20230169958A (ko) 2023-12-18
EP4324195A1 (en) 2024-02-21
CN116941240A (zh) 2023-10-24

Similar Documents

Publication Publication Date Title
CN112369031B (zh) 对于视频编译码的波前处理的基于多个历史的非毗邻mvp
US11350083B2 (en) Intra block copy merging data syntax for video coding
JP2022533664A (ja) ビデオコーディングのためのマージモードコーディング
US11936877B2 (en) Template matching based affine prediction for video coding
US11064192B2 (en) Simplification of spatial-temporal motion vector prediction
WO2019199953A1 (en) Decoder-side motion vector derivation for video coding
US12022085B2 (en) Template matching refinement in inter-prediction modes
US11172214B2 (en) Derivation of processing area for parallel processing in video coding
KR20210020908A (ko) 서브-예측 유닛 모션 벡터 예측자의 시그널링
KR20240026144A (ko) 비디오 코딩에서의 병합 후보 재순서화
EP4364421A1 (en) Using unrefined motion vectors for performing decoder-side motion vector derivation
JP2024500663A (ja) ビデオコーディングにおける最確モードリスト構築のためのデコーダ側イントラモード導出
US20230094825A1 (en) Motion vector difference sign prediction for video coding
WO2022221013A1 (en) Template matching refinement in inter-prediction modes
US20230336713A1 (en) Methods for adaptive signaling of maximum number of merge candidates in multiple hypothesis prediction
US11895321B2 (en) Template matching based advanced motion vector predictor (AMVP) candidate list construction with non-adjacent candidates and AMVP index signaling
US20230336716A1 (en) Intra chroma mode list construction for video coding
US20240121399A1 (en) Decoder-side control point motion vector refinement for affine inter-prediction in video coding
US20230199211A1 (en) Interaction between reference picture resampling and template-based inter prediction techniques in video coding
US20240022729A1 (en) Decoder side motion vector refinement for affine motion model
US20230079743A1 (en) Multiple inter predictors with decoder side motion vector derivation for video coding
US20240223769A1 (en) Vector difference candidate list construction
US20200267415A1 (en) Chroma deblocking filter for intra block copy mode for video coding
KR20230169960A (ko) 비디오 코딩을 위한 템플릿 매칭 기반 아핀 예측
JP2024501137A (ja) ビデオコーディングにおけるテンプレートマッチング