CN117378202A - 用于自适应mvd分辨率的双边匹配的系统和方法 - Google Patents

用于自适应mvd分辨率的双边匹配的系统和方法 Download PDF

Info

Publication number
CN117378202A
CN117378202A CN202380011282.2A CN202380011282A CN117378202A CN 117378202 A CN117378202 A CN 117378202A CN 202380011282 A CN202380011282 A CN 202380011282A CN 117378202 A CN117378202 A CN 117378202A
Authority
CN
China
Prior art keywords
mvd
video block
reference frame
modified
predicted
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
CN202380011282.2A
Other languages
English (en)
Inventor
赵亮
赵欣
高晗
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America LLC
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 Tencent America LLC filed Critical Tencent America LLC
Publication of CN117378202A publication Critical patent/CN117378202A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/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/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

Landscapes

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

Abstract

本申请所描述的各种实施方式包括视频编解码方法和系统。方法包括从视频码流中接收视频块的发信号通知的运动矢量差(MVD);响应于确定发信号通知了联合自适应MVD分辨率模式,针对该视频块,搜索第一预测视频块和第二预测视频块,其中,第一预测视频块或第二预测视频块是视频块的已重建/预测的前向视频块或后向视频块;基于第一预测块与第二预测块之间通过成本标准测量的最小差,定位第一预测视频块和第二预测视频块;基于所定位的第一预测视频块和所定位的第二预测视频块,修正该视频块的运动矢量(MV);以及至少基于已修正MV,重建/处理该视频块。

Description

用于自适应MVD分辨率的双边匹配的系统和方法
相关申请的交叉引用
本申请要求于2022年5月9日提交的申请号为63/339,869、发明名称为“用于自适应运动矢量分辨率的双边匹配(Bilateral Matching for Adaptive Motion VectorResolution)”的美国临时专利申请的优先权,以及要求于2023年3月28日提交的申请号为18/127,558、发明名称为“用于自适应MVD分辨率的双边匹配的系统和方法(Systems andMethods for Bilateral Matching for Adaptive MVD Resolution)”的美国专利申请的优先权,并且是该美国专利申请的连续申请,所述两个申请的全部内容通过引用整体并入本申请中。
技术领域
所公开的实施例总体上涉及视频编解码,包括但不限于用于自适应运动矢量差(MVD)分辨率的双边匹配的系统和方法。
背景技术
数字视频由各种电子设备支持,诸如数字电视、膝上型计算机或台式电脑、平板电脑、数码相机、数字录音设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流式传输设备等。电子设备通过通信网络传输和接收或以其它方式传送数字视频数据,和/或将数字视频数据存储在存储设备上。由于通信网络的带宽容量有限,存储设备的存储器资源有限,在传送或存储视频数据之前,可根据一个或多个视频编码标准使用视频编码压缩视频数据。
目前已经开发出多种视频编解码器标准。例如,视频编码标准包括AOMedia Video1(AV1)、通用视频编码(VVC)、联合探索测试模型(JEM)、高效视频编码(HEVC/H.265)、高级视频编码(AVC/H.264)和运动图像专家组(MPEG)编码。视频编码通常利用预测方法(例如,帧间预测、帧内预测等),利用视频数据中固有的冗余。视频编码的目的是将视频数据压缩成使用较低比特率的形式,同时避免或最大限度地减少视频质量的下降。
HEVC,也称为H.265,是作为MPEG-H项目的一部分而设计的视频压缩标准。ITU-T和ISO/IEC分别于2013年(版本1)、2014年(版本2)、2015年(版本3)和2016年(版本4)发布了HEVC/H.265标准。通用视频编码(VVC),也称为H.266,是一种旨在作为HEVC的后续标准的视频压缩标准。ITU-T和ISO/IEC分别于2020(版本1)和2022(版本2)发布了VVC/H.266标准。AV1是作为HEVC的替代方案而设计的开放视频编码格式。2019年1月8日,该规范的1.0.0验证版本和勘误表1发布。
发明内容
本公开描述了高级视频编解码技术,更具体地描述了一种用于自适应MVD分辨率的双边匹配方法。
根据一些实施例,视频编解码方法由计算系统执行。该方法包括基于视频码流中的一个或多个语法元素,确定是否发信号通知了联合自适应运动矢量差(MVD)分辨率模式,该联合自适应MVD分辨率模式是一种对第一参考帧和第二参考帧的MVD以及自适应MVD像素分辨率联合发信号通知的帧间预测模式;从该视频码流中接收当前帧内视频块的发信号通知的MVD;响应于确定发信号通知了该联合自适应MVD分辨率模式,针对该视频块,搜索第一参考帧内的第一预测视频块和第二参考帧内的第二预测视频块,其中,该第一预测视频块是视频块的已重建/预测的前向视频块或后向视频块,该第二预测视频块是视频块的已重建/预测的前向视频块或后向视频块;基于第一预测块与第二预测块之间通过成本标准测量的最小差,定位第一预测视频块和第二预测视频块;基于所定位的第一预测视频块和所定位的第二预测视频块,修正该视频块的发信号通知的MVD;基于该视频块的已修正MVD,修正该视频块的运动矢量(MV);以及至少基于已修正MV,重建/处理该视频块。
根据一些实施例,提供了一种计算系统,诸如流式传输系统、服务器系统、个人计算机系统或其它电子设备。该计算系统包括控制电路和存储一个或多个指令集的存储器。该一个或多个指令集包括用于执行本文中描述的方法中的任何方法的指令。在一些实施例中,该计算系统包括编码器部件和/或解码器部件。
根据一些实施例,提供了一种非易失性计算机可读存储介质。该非易失性计算机可读存储介质存储由计算系统执行的一个或多个指令集。该一个或多个指令集包括用于执行本文中描述的方法中的任何方法的指令。
相应地,公开了用于编码视频的设备和系统与方法。此类方法、设备和系统可以补充或替代用于视频编码的常规方法、设备和系统。
说明书中所描述的特征和优点不一定是全部包括的,特别是,对于本领域普通技术人员而言,根据本公开提供的附图、说明书和权利要求书,一些另外的特征和优点将是显而易见的。此外,应当注意的是,说明书中所使用的语言主要是出于可读性和指导性的目的而选择的,而不一定被选择为描绘或限定本文中描述的主题。
附图说明
为了能够更详细地理解本公开,可以通过参考各种实施例的特征来进行更具体的描述,其中一些特征图示于附图中。然而,附图仅图示了本公开的相关特征,因此不一定被认为是限制性的,因为本领域技术人员在阅读本公开后将理解,说明书可允许其它有效特征。
图1是图示根据一些实施例的示例通信系统的框图。
图2A是图示根据一些实施例的编码器组件的示例元件的框图。
图2B是图示根据一些实施例的解码器组件的示例元件的框图。
图3是图示根据一些实施例的示例服务器系统的框图。
图4是图示根据一些实施例的用于修正MVD的示例双边匹配方法的示意图。
图5是图示根据一些实施例的视频编码方法的示例性流程图。
按照通常的做法,附图中图示的各种特征不一定按比例绘制,并且可以使用类似的附图标记来表示整个说明书和附图中的相似特征。
具体实施方式
图1是图示根据一些实施例的通信系统100的框图。通信系统100包括源装置102和经由一个或多个网络彼此通信耦接的多个电子装置120(例如,电子装置120-1至电子装置120-m)。在一些实施例中,通信系统100是流式传输系统,例如与视频会议应用、数字电视应用和媒体存储和/或分发应用等视频可用应用一起使用。
源装置102包括视频源104(例如,相机部件或媒体存储)和编码器部件106。在一些实施例中,视频源104是数码相机(例如,被配置为创建未压缩的视频样本流)。编码器部件106从视频流中生成一个或多个已编码视频码流。与编码器部件106生成的已编码视频码流108相比,来自视频源104的视频流可能数据量较高。因为与来自视频源的视频流相比,已编码视频码流108的数据量较低(数据较少),所以与来自视频源104的视频流相比,已编码视频码流108需要较少的带宽来传输,需要较少的存储空间来存储。在一些实施例中,源装置102不包括编码器部件106(例如,被配置为向一个或多个网络110发送未压缩的视频数据)。
一个或多个网络110表示在源装置102、服务器系统112和/或电子装置120之间传送信息的任意数量的网络,包括例如有线和/或无线通信网络。一个或多个网络110可以在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。
一个或多个网络110包括服务器系统112(例如,分布式/云计算系统)。在一些实施例中,服务器系统112是或包括流媒体服务器(例如,被配置为存储和/或分发来自源装置102的编码视频流等视频内容)。服务器系统112包括编码器部件114(例如,被配置为编码和/或解码视频数据)。在一些实施例中,编码器部件114包括编码器部件和/或解码器部件。在各种实施例中,编码器部件114被实例化为硬件、软件或其组合。在一些实施例中,编码器部件114被配置为对已编码视频码流108进行解码,并且使用不同编码标准和/或方法对视频数据进行再编码,以生成已编码视频数据116。在一些实施例中,服务器系统112被配置为从已编码视频码流108生成多个视频格式和/或编码。
在一些实施例中,服务器系统112充当媒体感知网络元件(MANE)。例如,服务器系统112可以被配置为修剪已编码视频码流108,以便为一个或多个电子装置120制定可能不同的码流。在一些实施例中,MANE被设置为与服务器系统112分离。
电子装置120-1包括解码器部件122和显示器124。在一些实施例中,解码器部件122被配置为对已编码视频数据116进行解码,以生成可在显示器或其它类型的显示装置上呈现的输出视频流。在一些实施例中,一个或多个电子装置120不包括显示部件(例如,通信地耦接到外部显示设备和/或包括媒体存储)。在一些实施例中,电子装置120是流式传输客户端。在一些实施例中,电子装置120被配置为访问服务器系统112以获得已编码视频数据116。
源装置和/或多个电子装置120有时被称为“终端装置”或“用户装置”。在一些实施例中,源装置102和/或一个或多个电子装置120是服务器系统、个人计算机、便携式设备(例如,智能电话、平板电脑或膝上型电脑)、可穿戴设备、视频会议设备和/或其它类型的电子装置的实例。
在通信系统100的示例操作中,源装置102将已编码视频码流108传输到服务器系统112。例如,源装置102可以对由源装置所采集的图片流进行编码。服务器系统112接收已编码视频码流108,并且可以使用编码器部件114对已编码视频码流108进行解码和/或编码。例如,服务器系统112可以对视频数据进行更适合网络传输和/或存储的编码。服务器系统112可以将已编码视频数据116(例如,一个或多个已编码视频码流)发送到一个或多个电子装置120。每个电子装置120可以对已编码视频数据116进行解码,以恢复并选择性地显示视频图片。
在一些实施例中,上文所讨论的传输是单向数据传输。单向数据传输有时用于媒体服务应用等。在一些实施例中,上文所讨论的传输是双向数据传输。双向数据传输有时用于视频会议应用等。在一些实施例中,根据本申请中描述的任何视频编码/压缩标准(诸如HEVC、VVC和/或AV1)对已编码视频码流108和/或已编码视频数据116进行编码和/或解码。
图2A是图示根据一些实施例的编码器部件106的示例元件的框图。编码器部件106从视频源104接收源视频序列。在一些实施例中,编码器部件包括被配置为接收源视频序列的接收器(例如,收发器)部件。在一些实施例中,编码器部件106从远程视频源(例如,作为与编码器部件106不同的设备的部件的视频源)接收视频序列。视频源104可以提供呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如,8位、10位或12位)、任何色彩空间(例如,BT.601Y CrCb或RGB)和任何合适的取样结构(例如,YCrCb 4:2:0或Y CrCb 4:4:4)。在一些实施例中,视频源104是存储先前已采集/已准备的视频的存储设备。在一些实施例中,视频源104是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
编码器部件106被配置为实时或在应用所要求的其它时间约束下,将源视频序列的图片编码和/或压缩成已编码视频序列216。施行适当的编码速度是控制器204的一个功能。在一些实施例中,控制器204控制如下文所描述的其它功能单元,并且在功能上耦接到其它功能单元。由控制器204设置的参数可以包括速率控制相关参数(例如,图片跳过、量化器和/或率失真优化技术的λ值)、图片大小、图片群组(GOP)布局、最大运动矢量搜索范围等。本领域的普通技术人员可以容易地识别控制器204的其它功能,因为它们可以涉及针对特定系统设计而优化的编码器部件106。
在一些实施例中,编码器部件106被配置为在编码环路中进行操作。在简化的示例中,编码环路包括源编码器202(例如,负责基于待编码的输入图片和一个或多个参考图片创建符号,例如符号流等)和(本地)解码器210。解码器210以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(当符号和已编码视频码流之间的压缩是无损时)。将重建的样本流(样本数据)输入到参考图片存储器208。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,所以参考图片存储器208中的内容在本地编码器和远程编码器之间也是按位精确对应的。这样,编码器的预测部分将与解码器在解码期间使用预测时将解释的参考图片样本的样本值解释为相同的样本值。参考图片同步性(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)的原理是本领域普通技术人员已知的。
解码器210的操作可以与远程解码器(诸如解码器部件122)的操作相同,这在下面结合图2B进行详细描述。然而,简要地参考图2B,当符号可用且熵编码器214和解析器254能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器252和解析器254在内的解码器部件122的熵解码部分可能无法完全在本地解码器210中实施。
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本申请侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
作为其操作的一部分,源编码器202可执行运动补偿预测编码,其参考来自视频序列中被指定为参考帧的一个或多个先前已编码帧,预测性地编码输入帧。以此方式,编码引擎212对输入帧的像素块与参考帧的像素块之间的差异进行编码,所述参考帧可被选作所述输入帧的预测参考。控制器204可以管理源编码器202的编码操作,包括,例如,用于编码视频数据的参数和子群参数的设置。
解码器210可基于源编码器202创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎212的操作可为有损过程。当已编码视频数据在视频解码器(图2A中未示)处被解码时,重建的视频序列可以是带有一些误差的源视频序列的副本。解码器210复制解码过程,所述解码过程可由远端视频解码器对参考帧执行,且可使重建的参考帧存储在参考图片存储器208中。以此方式,编码器部件106可在本地存储重建的参考帧的副本,所述副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)
预测器206可针对编码引擎212执行预测搜索。即,对于将要编码的新帧,预测器206可在参考图片存储器208中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器206可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器206获得的搜索结果,可确定输入图片可具有从参考图片存储器208中存储的多个参考图片取得的预测参考。
可在熵编码器214中对所有上述功能单元的输出进行熵编码。熵编码器214根据本领域普通技术人员已知的技术(例如,霍夫曼编码、可变长度编码和/或算术编码)对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
在一些实施例中,熵编码器214的输出耦接到传输器。传输器可以被配置为缓冲由熵编码器214创建的已编码视频序列,从而为通过通信信道218进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器可以被配置为将来自源编码器202的已编码视频数据与要传输的其它数据(例如,已编码音频数据和/或辅助数据流(未示出来源))合并。在一些实施例中,传输器可在传输已编码视频时传输附加数据。源编码器202可包括此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和条带等其它形式的冗余数据、辅助增强信息(SEI)消息、视觉可用性信息(VUI)参数集片段等。
控制器204可以管理编码器部件106的操作。在编码期间,控制器204可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,可以将图片分配为帧内图片(I图片)、预测性图片(P图片)或双向预测性图片(B图片)。帧内图片可以在不使用序列中的任何其它帧作为预测源的情况下进行编码和解码。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent DecoderRefresh,“IDR”)图片。所属领域的普通技术人员了解I图片的变体及其相应的应用和特征,因此在此不再对其进行赘述。预测性图片可以使用帧内预测或帧间预测进行编码和解码,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。双向预测性图片(B图片)可以使用帧内预测或帧间预测进行编码和解码,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于“块”的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。
采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分区成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
编码器部件106可以根据预定视频编码技术或标准(诸如本文中描述的任何技术或标准)来执行编码操作。在其操作中,编码器部件106可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可以符合由所使用的视频编码技术或标准所指定的语法。
图2B是图示根据一些实施例的解码器部件122的示例元件的框图。图2B中的解码器部件122耦接到信道218和显示器124。在一些实施例中,解码器部件122包括耦接到环路滤波器单元256且被配置为将数据发送到显示器124(例如,经由有线或无线连接)的传输器。
在一些实施例中,解码器部件122包括耦接到信道218的接收器并被配置为从信道218接收数据(例如,经由有线或无线连接)。接收器可以被配置为接收待由解码器部件122进行解码的一个或多个已编码视频序列。在一些实施例中,每个已编码视频序列的解码独立于其它已编码视频序列。每个已编码视频序列可以从信道218接收,该信道可以是到存储已编码视频数据的存储设备的硬件/软件链路。接收器可以接收已编码视频数据与其它数据,例如,已编码音频数据和/或辅助数据流,这些数据可以被转发到它们各自的使用实体(未描绘)。接收器可以将已编码视频序列与其它数据分离。在一些实施例中,接收器接收附加(冗余)数据与已编码视频。附加数据可以被包括作为一个或多个已编码视频序列的一部分。附加数据可以由解码器部件122用以对数据解码和/或比较准确地重建原始视频数据。附加数据可呈例如时间、空间或SNR增强层、冗余条带、冗余图片、前向纠错码等形式。
根据一些实施例,解码器部件122包括缓冲存储器252、解析器254(有时也称为熵解码器)、缩放器/逆变换单元258、帧内图片预测单元262、运动补偿预测单元260、聚合器268、环路滤波器单元256、参考图片存储器266和当前图片存储器264。在一些实施例中,解码器部件122被实现为集成电路、一系列集成电路和/或其它电子电路。在一些实施例中,解码器部件122至少部分地以软件实现。
缓冲存储器252耦接在信道218和解析器254之间(例如,以防止网络抖动)。在一些实施例中,缓冲存储器252与解码器部件122分离。在一些实施例中,在信道218的输出与解码器部件122之间设置单独的缓冲存储器。在一些实施例中,除了解码器部件122内部的缓冲存储器252(例如,其被配置为处理播出定时)之外,在解码器部件122外部设置单独的缓冲存储器(例如,以防止网络抖动)。当从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,也可能不需要缓冲存储器252,或可以将缓冲存储器252做得较小。为了在互联网等尽力而为分组网络上使用,也可能需要缓冲存储器252,所述缓冲存储器可相对较大且可有利地具有自适应性大小,且可以至少部分地实施于解码器部件122外部的操作系统或类似元件(未描绘)中。
解析器254被配置为从已编码视频序列中重建符号270。符号可以包括,例如,用于管理解码器部件122的操作的信息,和/或用于控制诸如显示器124的显示装置的信息。用于一个或多个显示装置的控制信息可以是,例如,辅助增强信息(SEI)消息或视频可用性信息(VUI)参数集片段(未描绘)的形式。解析器254对已编码视频序列进行解析(熵解码)。已编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循本领域技术人员公知的原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文灵敏度的算术编码等。解析器254可以基于对应于该组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素子群中的至少一个像素子群的一组子群参数。子群可以包括图片群组(GOP)、图片、图块、条带、宏块、编码单元(CU)、块、变换单元(TU)、预测单元(PU)等。解析器254还可以从已编码视频序列中提取诸如变换系数、量化器参数值、运动矢量等信息。
符号270的重建可以涉及多个不同单元,具体取决于已编码视频图片或其部分的类型(诸如:帧间图片和帧内图片、帧间块和帧内块)和其它因子。涉及哪些单元以及涉及方式可以由子群控制信息控制,该子群控制信息由解析器254从已编码视频序列解析。为了清楚起见,未描述解析器254与下文的多个单元之间的此类子群控制信息流。
除已经提及的功能块之外,解码器部件122可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互,并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,保持概念上细分为以下功能单元。
缩放器/逆变换单元258从解析器254接收作为符号270的量化变换系数以及控制信息(诸如待使用的变换方式、块大小、量化因子和/或量化缩放矩阵等)。缩放器/逆变换单元258可输出包括样本值的块,所述样本值可输入到聚合器268中。
在一些情况下,缩放器/逆变换单元258的输出样本属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元262提供。帧内图片预测单元262可以使用从当前图片存储器264中获取的当前(部分已重建的)图片的周围已重建信息,生成大小和形状与重建中的块相同的块。聚合器268可以基于每个样本,将帧内图片预测单元262生成的预测性信息添加到由缩放器/逆变换单元258提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元258的输出样本属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元260可访问参考图片存储器266以提取用于预测的样本。在根据属于块的符号270对提取的样本进行运动补偿之后,这些样本可由聚合器268添加到缩放器/逆变换单元258的输出(在这种情况下称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元260从参考图片存储器266内的地址提取预测样本可受到运动矢量控制。运动矢量可以以符号270的形式提供给运动补偿预测单元260,这些符号可以具有,例如,X、Y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时,从参考图片存储器266提取的样本值的插值、运动矢量预测机制等等。
聚合器268的输出样本可在环路滤波器单元256中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频码流中的参数,且所述参数作为来自解析器254的符号270可用于环路滤波器单元256。然而,在其它实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元256的输出可以是样本流,所述样本流可输出到显示器124等显示装置以及存储在参考图片存储器266,以用于后续的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。一旦已编码图片被完全重建,且已编码图片(通过例如解析器254)被识别为参考图片,则当前参考图片可变为参考图片存储器266的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片存储器。
解码器部件122可以根据预定的视频压缩技术来执行解码操作,该技术可以记录在标准中(诸如本申请中描述的任何标准)。已编码视频序列可以符合所使用的视频压缩技术或标准所规定的语法,即遵循视频压缩技术文档或标准中规定的视频压缩技术或标准的语法,特别是其中的配置文件中的语法。此外,为了符合一些视频压缩技术或标准,已编码视频序列的复杂度可以在由视频压缩技术或标准的层级所定义的范围内。在一些情况下,层级限制了最大图片大小、最大帧速率、最大重建采样率(例如以每秒兆个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据进一步限定。
图3是图示根据一些实施例的服务器系统112的框图。服务器系统112包括控制电路302、一个或多个网络接口304、存储器314、用户接口306和用于互连这些部件的一个或多个通信总线312。在一些实施例中,控制电路302包括一个或多个处理器(例如,CPU、GPU和/或DPU)。在一些实施例中,控制电路包括一个或多个现场可编程门阵列(FPGA)、硬件加速器和/或一个或多个集成电路(例如,专用集成电路)。
一个或多个网络接口304可以被配置为与一个或多个通信网络(例如,无线网络、有线网络和/或光网络)连接。通信网络可以是局域网、广域网、城域网、车载网络和工业网络、实时网络、容忍延迟网络等等。通信网络的示例包括以太网、无线LAN、蜂窝网络(包括GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视和地面广播电视)、车载网络和工业网络(包括CAN总线)等。这种通信可以是单向的、仅接收的(例如,广播电视)、单向仅发送的(例如,CAN总线到某些CAN总线设备)或双向的(例如,到使用局域或广域数字网络的其它计算机系统)。这种通信可以包括到一个或多个云计算网络的通信。
用户接口306包括一个或多个输出设备308和/或一个或多个输入设备310。一个或多个输入设备310可以包括以下一个或多个:键盘、鼠标、触摸板、触摸屏、数据手套、控制杆、麦克风、扫描仪、相机等。一个或多个输出设备308可以包括以下一个或多个:音频输出设备(例如,扬声器)、视觉输出设备(例如,显示器或监测器)等。
存储器314可以包括高速随机存取存储器(诸如DRAM、SRAM、DDR RAM和/或其它随机存取固态存储器设备)和/或非易失性存储器(诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备和/或其它非易失性固态存储设备)。存储器314可以选择包括一个或多个远离控制电路302的存储设备。存储器314,或者,可选地,存储器314内的一个或多个非易失性固态存储设备包括非易失性计算机可读存储介质。在一些实施例中,存储器314或存储器314的非易失性计算机可读存储介质存储以下程序、模块、指令和数据结构或其子集或超集:
·操作系统316,包括处理各种基本系统服务和执行硬件相关任务的进程;
·网络通信模块318,用于通过一个或多个网络接口304(例如,通过有线和/或无线连接)将服务器系统112连接到其它计算设备;
·编解码模块320,用于执行与编码和/或解码数据(诸如视频数据)有关的各种功能。在一些实施例中,编解码模块320是编码器部件114的实例。编解码模块320包括但不限于以下一个或多个模块:
o解码模块322,用于执行与解码已编码数据有关的各种功能,如前文描述的与解码器部件122有关的功能;和
o编码模块340,用于执行与编码数据有关的各种功能,如前文描述的与编码器部件106有关的功能;
·图片存储器352,用于存储图片和图片数据,例如,与编解码模块320一起使用。在一些实施例中,图片存储器352包括以下一个或多个:参考图片存储器208、缓冲存储器252、当前图片存储器264和参考图片存储器266。
在一些实施例中,解码模块322包括解析模块324(例如,被配置为执行前文描述的与解析器254有关的各种功能)、变换模块326(例如,被配置为执行前文描述的与标量/逆变换单元258有关的各种功能)、预测模块328(例如,被配置为执行前文描述的与运动补偿预测单元260和/或帧内图片预测单元262有关的各种功能)和滤波器模块330(例如,被配置为执行前文描述的与环路滤波器单元256有关的各种功能)。
在一些实施例中,编码模块340包括代码模块342(例如,被配置为执行前文描述的与源编码器202、编码引擎212和/或熵编码器214有关的各种功能)和预测模块344(例如,被配置为执行前文描述的与预测器206有关的各种功能)。在一些实施例中,解码模块322和/或编码模块340包括图3所示的模块的子集。例如,解码模块322和编码模块340都使用共享预测模块。
存储器314中存储的上述已识别的模块中的每个模块都对应于用于执行本申请中描述的功能的指令集。上述已识别的模块(例如,指令集)不必作为单独的软件程序、进程或模块来实现,因此,在各种实施例中,这些模块的各种子集可以组合或以其它方式重新排列。例如,编解码模块320可以不包括单独的解码模块和编码模块,而是使用同一组模块来执行两组功能。在一些实施例中,存储器314存储上文所识别的模块和数据结构的子集。在一些实施例中,存储器314存储上文没有描述的附加模块和数据结构,诸如音频处理模块。
在一些实施例中,服务器系统112包括网络或超文本传输协议(HTTP)服务器、文件传输协议(FTP)服务器、以及使用公共网关接口(CGI)脚本、PHP超文本预处理器(PHP)、活动服务器页面(ASP)、超文本标记语言(HTML)、可扩展标记语言(XML)、Java、JavaScript、异步JavaScript和XML(AJAX)实现的网页和应用程序、XHP、Javelin、无线通用资源文件(WURFL)等。
尽管图3示出了根据一些实施例的服务器系统112,但图3更多地是作为一个或多个服务器系统中可能存在的各种特征的功能描述,而不是本申请中描述的实施例的结构示意图。在实践中,正如本领域普通技术人员所认识到的,单独示出的项目可以合并,一些项目可以分开。例如,图3中单独示出的一些项目可以在单个服务器上实现,单个项目可以由一个或多个服务器实现。用于实现服务器系统112的服务器的实际数量,以及如何在它们之间分配特征,将因实施方式而异,并且可选地,部分取决于服务器系统在高峰使用期以及在平均使用期处理的数据流量。
在一些实施方式中,从任何分区方案获得的预测块(PB或编解码块(CB),在未进一步分区成预测块时也称为PB)可以变成独立块,以用于经由帧内预测或帧间预测进行编解码。对于当前PB的帧间预测,可以生成、编码当前块与预测块之间的残差,并将其包括在已编码码流中。
在一些实施方式中,帧间预测可以例如以单参考模式或复合参考模式来实现。在一些实施方式中,可以首先在当前块(或更高级别)的码流中包括一个跳过标志,以指示当前块是否被帧间编码且不被跳过。如果当前块是帧间编码的,则可以进一步在码流中包括另一标志作为信号,以指示当前块的预测是使用单参考模式还是复合参考模式。在单参考模式下,可以使用一个参考块生成当前块的预测块。在复合参考模式下,可以使用两个或更多个参考块,例如通过加权平均等方式生成预测块。复合参考模式可称为多于一个参考模式、两个参考模式或多个参考模式。可以使用参考帧索引和对应的运动矢量识别参考块,运动矢量表示参考块与当前块在位置上的偏移,例如,在水平像素和垂直像素上的偏移。例如,对于单参考模式,当前块的帧间预测块可由一个运动矢量识别参考帧中的单参考块为预测块而生成,而对于复合参考模式,预测块可以通过由两个参考帧索引和两个对应的运动矢量指示的两个参考帧中的两个参考块的加权平均来成。运动矢量可以以各种方式编码并包括在码流中。
在一些实施方式中,编码系统或解码系统可以维护一个已解码图片缓存器(DPB)。一些图像/图片可以维护在DPB中等待显示(在解码系统中),DPB中的一些图像/图片可以用作参考帧以实现帧间预测(在解码系统或编码系统中)。在一些实施方式中,DPB中的参考帧可以被标记为正在编码或解码的当前图像的短期参考或长期参考。例如,短期参考帧可以包括用于对当前帧中的块进行帧间预测的帧,或者包括按解码顺序最接近当前帧的预定义数量个(例如,两个)后续视频帧。长期参考帧可以包括DPB中的帧,这些帧可以用于预测按解码顺序距离当前帧超过预定义帧数的帧中的图像块。关于短期参考帧和长期参考帧的此类标签信息可称为参考图片集(RPS),并且可以添加到已编码码流中每个帧的帧头。已编码视频码流中的每个帧可以由图片顺序计数(POC)识别,该POC根据播放次序以绝对方式进行编号,或者与例如从I帧开始的图片组相关的方式进行编号。
在一些示例实施方式中,可以基于RPS中的信息形成一个或多个参考图片列表,其中包含用于帧间预测的短期和长期参考帧的标识。例如,可以为单向帧间预测形成单个图片参考列表,表示为L0参考(或参考列表0),而可以为双向帧间预测形成两个图片参考列表,表示为L0(或参考列表0)和L1(或参考列表1),用于两个预测方向中的每个预测方向。L0列表和L1列表中包括的参考帧可以按各种预定方式进行排序。L0列表和L1列表的长度可以在视频码流中发信号通知。单向帧间预测可以是单参考模式,或者当在复合预测模式中用于通过加权平均生成预测块的多个参考在待预测块的同一侧时,也可以是复合参考模式。双向帧间预测只能是复合模式,因为双向帧间预测至少涉及两个参考块。
在一些实施方式中,可以实现用于帧间预测的合并模式(MM)。通常,对于合并模式,用于当前PB的单参考预测中的运动矢量或复合参考预测中的一个或多个运动矢量可以从其它一个或多个运动矢量导出,而不是独立计算和发信号通知。例如,在编码系统中,当前PB的当前一个或多个运动矢量可以由当前一个或多个运动矢量与其它一个或多个已编码运动矢量(称为参考运动矢量)之间的一个或多个差值来表示。可以对一个或多个运动矢量的这种一个或多个差值(而不是当前一个或多个运动矢量的全部)进行编码并将其包括在码流中,并且可以将其链接到一个或多个参考运动矢量。对应地,在解码系统中,可以基于一个或多个已解码运动矢量差以及与其链接的一个或多个已解码参考运动矢量,导出与当前PB相对应的一个或多个运动矢量。作为一般的合并模式(MM)帧间预测的特定形式,这种基于运动矢量差的帧间预测可以称为具有运动矢量差的合并模式(MMVD)。因此,一般的MM或者特别的MMVD可以利用与不同PB相关联的运动矢量之间的相关性来提高编解码效率。例如,相邻PB可以具有类似的运动矢量,因此MVD可能很小,可以有效地编码。再比如,对于空间中定位/放置类似的块,其运动矢量可能在时间上(帧之间)存在相关性。
在一些示例实施方式中,可以在编码过程中将MM标志包括在码流中,用于指示当前PB是否处于合并模式。此外或可选地,在编码过程中可以包括MMVD标志,并且在码流中发信号通知该MMVD标志,以指示当前PB是否处于MMVD模式。MM标志或指示符和/或MMVD标志或指示符可以在PB级别、编码块(CB)级别、编码单元(CU)级别、编码树块(CTB)级别、编码树单元(CTU)级别、条带级别、图片级别等级别提供。在一个特定的例子中,可以针对当前CU包括MM标志和MMVD标志两者,并且可以紧跟在跳过标志和MM标志之后发信号通知MMVD标志,以指定是否针对当前CU使用MMVD模式。
在MMVD的一些示例实施方式中,可以为正在预测的块形成用于运动矢量预测的参考运动矢量(RMV)或MV预测子候选列表。RMV候选列表可以包含预定数量个(例如,两个)MV预测子候选块,该MV预测子候选块的运动矢量可以用于预测当前运动矢量。RMV候选块可以包括从同一帧中的相邻块和/或时间块(例如,当前帧的前一帧或后一帧中位置相同的块)中选择的块。这些选项表示相对于当前块的空间或时间位置上的块,这些块可能具有与当前块类似或相同的运动矢量。MV预测子候选列表的大小可以预先确定。例如,该列表可以包含两个或更多个候选。候选块若要出现在RMV候选列表上,例如,必须与当前块具有一个相同的参考帧(或多个相同的参考帧),必须存在(例如,当当前块靠近帧边缘时,需要执行边界检查),并且必须在编码过程中已经被编码,和/或在解码过程中已经被解码。在一些实施方式中,合并候选列表可以首先填充空间上相邻的块(以特定的预定义顺序扫描)(如果可用并且满足以上条件),然后填充时间块(如果列表中仍有空间可用)。例如,相邻RMV候选块可以从当前块的左侧块和顶部块中选择。RMV预测子候选列表可以在各种级别(序列、图片、帧、条带、超级块等)动态形成动态参考列表(DRL)。DRL可以在码流中发信号通知。
在一些实施方式中,可以发信号通知用作参考运动矢量以预测当前块的运动矢量的实际MV预测子候选。在RMV候选列表包含两个候选的情况下,可以使用被称为合并候选标志的单比特标志来指示参考合并候选的选择。对于以复合模式预测的当前块,使用一个MV预测子预测的多个运动矢量中的每个运动矢量都可以与合并候选列表中的参考运动矢量相关联。编码器可以确定哪个RMV候选更接近地预测当前编码块,并且将该选择作为索引发信号通知给DRL。
在MMVD的一些示例实施方式中,在选择RMV候选并将其用作待预测运动矢量的基本运动矢量预测子(MVP)之后,可以在编码系统中计算运动矢量差(MVD或MV变化量,其表示待预测运动矢量与参考候选运动矢量之间的差值)。这种MVD可以包括表示MV差幅值和MV差方向的信息,这两者都可以在码流中发信号通知。运动差幅值和运动差方向可以以各种方式发信号通知。
在MMVD的一些示例实施方式中,可以使用距离索引指定运动矢量差的幅值信息,并且指示一组预定义偏移中的一个偏移,该偏移表示与起始点(参考运动矢量)的预定义运动矢量差。然后可以将根据发信号通知的索引确定的MV偏移,添加到起始(参考)运动矢量的水平分量或垂直分量上。参考运动矢量的水平分量或垂直分量是否应该偏移,可以由MVD的方向信息来确定。表1指定了距离索引与预定义偏移之间的示例预定义关系。
表1-距离索引与预定义MV偏移的示例关系
在MMVD的一些示例实施方式中,可以进一步发信号通知方向索引,并将其用于表示MVD相对于参考运动矢量的方向。在一些实施方式中,该方向可以限制为水平方向和垂直方向中的任一个。表2中示出了一个2比特方向索引的示例。在表2的示例中,MVD的解释可以根据起始MV/参考MV的信息而变化。例如,当起始MV/参考MV与单向预测块相对应或与双向预测块相对应,并且两个参考帧列表指向当前图片的同一侧时(即,两张参考图片的POC都大于当前图片的POC,或都小于当前图片的POC),表2中的符号可以指定添加到起始MV/参考MV的MV偏移的符号(方向)。当起始MV/参考MV与在当前图片不同侧的两张参考图片的双向预测块相对应(即,一张参考图片的POC大于当前图片的POC,另一张参考图片的POC小于当前图片的POC),并且图片参考列表0中的参考POC与当前帧之间的差大于图片参考列表1中的参考POC与当前帧之间的差时,表2中的符号可以指定添加到与图片参考列表0中的参考图片相对应的参考MV的MV偏移上的符号,与图片参考列表1中的参考图片相对应的MV的偏移的符号可以具有与之相反的值(相反的符号用于该偏移)。否则,如果图片参考列表1中的参考POC与当前帧之间的差大于图片参考列表0中的参考POC与当前帧之间的差,则表2中的符号可以指定添加到与图片参考列表1相关联的参考MV的MV偏移上的符号,与图片参考列表0相关联的参考MV的偏移的符号具有相反值。
表2-由方向索引指定的MV偏移的符号的示例实施方式
方向索引 00 01 10 11
x轴(水平) + - 不适用 不适用
y轴(垂直) 不适用 不适用 + -
在一些示例实施方式中,MVD可以根据每个方向上的一个或多个POC差进行缩放。如果两个列表中的POC差相同,则不需要缩放。否则,如果参考列表0中的POC差大于参考列表1中的POC差,则缩放参考列表1的MVD。如果参考列表1的POC差大于列表0,则可以以相同的方式缩放列表0的MVD。如果起始MV是单向预测的,则将MVD加到可用MV或参考MV上。
在一些用于双向复合预测的MVD编码和发信号通知的示例实施方式中,除了单独编码和发信号通知两个MVD之外,或作为其替代,可以实施对称MVD编码,使得仅一个MVD需要发信号通知,而另一个MVD可以从发信号通知的MVD导出。在此类实施方式中,发信号通知包括列表0和列表1两者的参考图片索引的运动信息。然而,只发信号通知与例如参考列表0相关联的MVD,并且不发信号通知而是导出与参考列表1相关联的MVD。具体地,在条带级别,码流中可以包括一个称为“mvd_l1_zero_flag”的标志,用于指示是否未在码流中发信号通知参考列表1。如果该标志为1,指示参考列表1等于零(因此未发信号通知),那么双向预测标志(称为“BiDirPredFlag”)可以设置为0,意味着不存在双向预测。否则,如果mvd_l1_zero_flag为零,如果列表0中的最近参考图片和列表1中的最近参考图片形成前向和后向参考图片对或后向和前向参考图片对,则BiDirPredFlag可以设置为1,并且列表0参考图片和列表1参考图片都是短期参考图片。否则BiDirPredFlag设置为0。BiDirPredFlag为1可以指示在码流中额外发信号通知对称模式标志。当BiDirPredFlag为1时,解码器可以从码流中提取该对称模式标志。例如,该对称模式标志可以在CU级别发信号通知(如果需要),并且可以指示对称MVD编码模式是否用于对应的CU。当对称模式标志为1时,表示使用对称MVD编码模式,并且只有列表0和列表1两者的参考图片索引(称为“mvp_l0_flag”和“mvp_l1_flag”)以及与列表0相关联的MVD(称为“MVD0”)发信号通知,并且另一个运动矢量差“MVD1”将被导出而不是发信号通知。例如,MVD1可以导出为-MVD0。这样,在示例对称MVD模式下,仅发信号通知一个MVD。在MV预测的其它一些示例实施方式中,对于单参考模式MV预测和复合参考模式MV预测两者,可以使用协调方案来实现一般合并模式、MMVD和其它一些类型的MV预测。可以使用各种语法元素发信号通知预测当前块的MV的方式。
例如,对于单参考模式,可以发信号通知以下MV预测模式:
NEARMV–在无任何MVD的情况下,直接使用列表中由DRL(动态参考列表)索引指示的运动矢量预测子(MVP)之一。
NEWMV–使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一作为参考,并将变化量(delta)应用于该MVP(例如,使用MVD)。
GLOBALMV–基于帧级别全局运动参数,使用运动矢量。
类似地,对于使用与待预测的两个MV相对应的两个参考帧的复合参考帧间预测模式,可以发信号通知以下MV预测模式:
NEAR_NEARMV–对于待预测的两个MV中的每个MV,在无MVD的情况下,使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一。
NEAR_NEWMV–为了预测两个运动矢量中的第一个运动矢量,在没有MVD的情况下,使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一作为参考MV;为了预测两个运动矢量中的第二个运动矢量,结合额外发信号通知的MV变化量(MVD),使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一作为参考MV。
NEW_NEARMV–为了预测两个运动矢量中的第二个运动矢量,在没有MVD的情况下使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一作为参考MV;为了预测两个运动矢量中的第一个运动矢量,结合额外发信号通知的MV变化量(MVD),使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一作为参考MV。
NEW_NEWMV–使用列表中由DRL索引发信号通知的运动矢量预测子(MVP)之一作为参考MV,并将其与另外发信号通知的MV变化量结合使用。以预测两个MV中的每个MV。
GLOBAL_GLOBALMV–基于帧级别全局运动参数,使用每个参考的MV。
因此,上面的术语“NEAR”指的是,如一般合并模式那样使用无MVD的参考MV的MV预测,而术语“NEW”指的是,如在MMVD模式下那样,涉及使用参考MV并用发信号通知的MVD使其偏移的MV预测。对于复合帧间预测,两个参考之间的上述参考基本运动矢量和运动矢量变化量通常可以是不同的或独立的(即使它们可能是相关的),可以利用这种相关性来减少发信号通知两个运动矢量变化量所需的信息量。在此类情况下,可以在码流中实现联合发信号通知和指示两个MVD。
上述动态参考列表(DRL)可以用于保存一组索引运动矢量,该组索引运动矢量是动态地维护,并被视为候选运动矢量预测子。
在一些示例实施方式中,可以允许MVD具有预定义分辨率。例如,可以允许1/8像素的运动矢量精度(或准确度)。上述各种MV预测模式中的MVD可以以各种方式构建和发信号通知。在一些实施方式中,可以使用各种语法元素来发信号通知参考帧列表0或列表1中的以上一个或多个运动矢量差。
例如,称为“mv_joint”的语法元素可以指定与其相关联的运动矢量差的哪些分量为非零。对于MVD,所有非零分量都是联合发信号通知。例如,mv_joint具有以下值:
·0可以表示沿水平方向或垂直方向不存在非零MVD;
•1可以表示仅沿水平方向存在非零MVD;
•2可以表示仅沿垂直方向存在非零MVD;
•3可以表示沿水平方向和垂直方向两者均存在非零MVD。
当MVD的“mv_joint”语法元素发信号通知不存在非零MVD分量时,则不再发信号通知MVD信息。然而,如果“mv_joint”语法发信号通知存在一个或两个非零分量,那么如下所述,可以进一步针对每个非零MVD分量发信号通知额外的语法元素。
例如,可以使用称为“mv_sign”的语法元素来额外指定对应的运动矢量差分量是正还是负。
在另一个示例中,称为“mv_class”的语法元素可以用于在对应的非零MVD分量的预定义等级集合中指定运动矢量差的等级。例如,运动矢量差的预定等级可以用于将运动矢量差的连续幅值空间划分为非重叠范围,每个范围对应一个MVD等级。因此,发信号通知的MVD等级表示对应的MVD分量的幅值范围。在下面的表3所示的示例实施方式中,等级越高,对应的运动矢量差幅值范围越大。在表3中,符号(n,m]用于表示运动矢量差的范围,该运动矢量差的范围大于n个像素,小于或等于m个像素。
表3-运动矢量差的幅值等级
MV等级 MVD的幅值
MV_CLASS_0 (0,2]
MV_CLASS_1 (2,4]
MV_CLASS_2 (4,8]
MV_CLASS_3 (8,16]
MV_CLASS_4 (16,32]
MV_CLASS_5 (32,64]
MV_CLASS_6 (64,128]
MV_CLASS_7 (128,256]
MV_CLASS_8 (256,512]
MV_CLASS_9 (512,1024]
MV_CLASS_10 (1024,2048]
在其它一些示例中,称为“mv_bit”的语法元素还可以用于指定非零运动矢量差分量与对应地发信号通知的MV等级幅值范围的起始幅值之间的偏移的整数部分。在“mv_bit”中,用于发信号通知每个MVD等级的全范围所需的比特数量可以作为MV等级的函数而变化。例如,在表3的实施方式中,MV_CLASS 0和MV_CLASS1仅需要单个比特来指示从0的起始MVD开始的1或2的整数像素偏移;在表3的示例实施方式中,每个较高的MV_CLASS需要比前一个MV_CLASS逐步多一个比特的“mv_bit”。
在其它一些示例中,称为“mv_fr”的语法元素还可以用于指定对应的非零MVD分量的运动矢量差的前两个分数比特,而称为“mv_hp”的语法元素可以用于指定对应的非零MVD分量的运动矢量差的第三个分数比特(高分辨率比特)。二比特“mv_fr”实质上提供1/4像素MVD分辨率,而“mv_hp”比特可以进一步提供1/8像素分辨率。在其它一些实施方式中,可以使用一个以上“mv_hp”比特来提供比1/8像素更精细的MVD像素分辨率。在一些示例实施方式中,可以在一个或多个不同级别发信号通知额外标志,以指示是否支持1/8像素或更高的MVD分辨率。如果MVD分辨率未应用于特定编码单元,则可以不发信号通知上述对应的不受支持的MVD分辨率的语法元素。
在以上的一些示例实施方式中,分数分辨率可以独立于不同等级的运动矢量。换句话说,无论运动矢量差的幅值如何,都可以使用预定义的“mv_fr”和“mv_hp”比特数量来提供运动矢量分辨率的类似选项,以用于发信号通知非零MVD分量的分数MVD。
然而,在其它一些示例实施方式中,可以区分各种MVD幅值等级之间的运动矢量差的分辨率。具体地,较高MVD等级的大MVD幅值的高分辨率MVD可能无法在压缩效率方面提供统计学意义上的显著改进。因此,对于与较高MVD幅值等级相对应的较大MVD幅值范围,MVD可以以分辨率(整数像素分辨率或分数像素分辨率)递减的方式进行编码。同样,通常对于较大的MVD值,MVD的编码分辨率(整数像素分辨率或分数像素分辨率)可以递减。这种与MVD等级相关或MVD幅值相关的MVD分辨率通常可以称为自适应MVD分辨率、与幅度相关的自适应MVD分辨率或与幅值相关的MVD分辨率。术语“分辨率”还可以称为“像素分辨率”。自适应MVD分辨率可以通过以下示例实施方式所描述的各种方式实现,已达到更好的整体压缩效率。特别地,由于统计观察结果表明,通过非自适应方式,以与低幅值或低等级MVD的分辨率类似的级别,处理大幅值或高等级MVD的MVD分辨率,可能不会显著提高具有大幅值或高等级MVD的块的帧间预测残差编码效率,通过瞄准较不精确的MVD来减少信令比特的数量,可能会比由于这种较不精确的MVD而需要用于编码帧间预测残差的额外比特更多。换句话说,针对大幅值或高等级MVD使用较高MVD分辨率可能不会比使用较低MVD分辨率产生更多的编码增益。
在一些一般示例实施方式中,MVD的像素分辨率或精度可以随着MVD等级的增加而降低或者可以不增加。MVD的降低的像素分辨率与较粗糙MVD(或从一个MVD级别到下一个级别的较大步长)相对应。在一些实施方式中,可以指定、预定义或预配置MVD像素分辨率和MVD等级之间的对应关系,并且因此可以不需要在编码码流中发信号通知。
在一些示例实施方式中,表3的MV等级可以各自与不同的MVD像素分辨率相关联。
在一些示例实施方式中,每个MVD等级可以与单个允许的分辨率相关联。在其它一些实施方式中,一个或多个MVD等级可以与两个或更多个任选的MVD像素分辨率相关联。因此,具有这种MVD等级的当前MVD分量的码流中的信号之后可以跟随有用于指示为当前MVD分量选择哪个任选像素分辨率的额外信令。
在一些示例实施方式中,自适应允许的MVD像素分辨率可以包括但不限于1/64像素(pel)(像素(pixel))、1/32像素、1/16像素、1/8像素、1/4像素、1/2像素、1像素、2像素、4像素……(按照分辨率降序排列)。这样,每个上升的MVD等级可以以非上升的方式与这些分辨率中的一个相关联。在一些实施方式中,MVD等级可以与两个或更多个分辨率相关联,并且较高分辨率可以低于或等于前面的MVD等级的较低分辨率。例如,如果表3的MV_CLASS_3可以与任选的1像素和2像素分辨率相关联,则表3的MV_CLASS_4可以与之相关联的最高分辨率将是2像素。在其它一些实施方式中,MV等级的最高可允许分辨率可以高于前面的(较低)MV等级的最低可允许分辨率。然而,上升的MV等级的允许分辨率的平均值只可以是非上升的。
在一些实施方式中,当允许分数像素分辨率高于1/8像素时,“mv_fr”和“mv_hp”信令可以对应地扩展到总共多于3个分数比特。
在一些示例实施方式中,分数像素分辨率可以仅允许用于低于或等于阈值MVD等级的MVD等级。例如,分数像素分辨率可以仅允许用于MVD-CLASS 0,而不允许用于表3中的所有其它MV等级。同样,分数像素分辨率可以仅允许用于低于或等于表3中任何一个其它MV等级的MVD等级。对于高于阈值MVD等级的其它MVD等级,仅允许对MVD使用整数像素分辨率。以这种方式,对于MVD等级高于或等于阈值MVD等级的发信号通知的MVD,可能不需要发信号通知诸如“mv-fr”和/或“mv-hp”比特中的一个或多个比特的分数分辨率信令。对于分辨率低于1像素的MVD等级,可以进一步减少“mv-bit”信令中的比特数量。例如,对于表3中的MV_CLASS_5,MVD像素偏移的范围是(32,64],因此需要5个比特来以1像素分辨率发信号通知整个范围。然而,如果MV_CLASS_5与2像素MVD分辨率(比1像素分辨率更低的分辨率)相关联,则“mv-bit”可能需要4个比特而不是5个比特,并且在发信号通知MV-CLASS_5的“mv_class”之后,不需要发信号通知“mv-fr”和“mv-hp”中的任何一个。
在一些示例实施方式中,分数像素分辨率可以仅允许用于整数值低于阈值整数像素值的MVD。例如,分数像素分辨率可以仅允许用于小于5个像素的MVD。与该示例相对应,分数分辨率可以仅允许用于表3的MV_CLASS_0和MV_CLASS_1,而不允许用于所有其它MV等级。再比如,分数像素分辨率可以仅允许用于小于7个像素的MVD。与该示例相对应,分数分辨率可以仅允许用于表3的MV_CLASS_0和MV_CLASS_1(范围低于5个像素),而不允许用于MV_CLASS_3和更高等级(范围高于5个像素)。对于属于MV_CLASS_2的MVD(其像素范围涵盖5个像素),根据“mv-bit”值,可以允许该MVD使用分数像素分辨率。如果发信号通知“mv-bit”值为1或2(这样,发信号通知的MVD的整数部分为5或6,计算作为MV_CLASS_2的像素范围开始,具有“mv-bit”指示的偏移1或2),那么可以允许使用分数像素分辨率。否则,如果发信号通知“mv-bit”值为3或4(这样,发信号通知的MVD的整数部分为7或8),则不允许使用分数像素分辨率。
在其它一些实施方式中,对于等于或高于阈值MV等级的MV等级,可以仅允许使用单个MVD值。例如,这种阈值MV等级可以是MV_CLASS_2。因此,可以仅允许MV_CLASS_2及以上等级具有单个MVD值,且无分数像素分辨率。这些MV等级的单个允许MVD值可以是预定义的。在一些示例中,所允许的单个值可以是表3中这些MV等级的各个范围的高端值。例如,MV_CLASS_2到MV_CLASS_10可以高于或等于MV_CLASS_2的阈值等级,这些等级的单个允许MVD值可以分别预定义为8、16、32、64、128、256、512、1024和2048。在其它一些示例中,所允许的单个值可以是表3中的这些MV等级的各个范围的中间值。例如,MV_CLASS_2到MV_CLASS_10可以高于等级阈值,这些等级的单个允许MVD值可以分别预定义为3、6、12、24、48、96、192、384、768和1536。这些范围内的任何其它值也可以定义为各个MVD等级的单个允许分辨率。
在以上实施方式中,当发信号通知的“mv_class”等于或高于预定义MVD等级阈值时,只有“mv_class”信令足以确定MVD值。然后使用“mv_class”和“mv_sign”确定MVD的幅值和方向。
因此,当仅针对一个参考帧(来自参考帧列表0或参考帧列表1,而不是两者)发信号通知MVD,或针对两个参考帧联合发信号通知MVD时,MVD的精度(或分辨率)可以取决于表3中的运动矢量差的相关联等级和/或MVD的幅值。
在其它一些实施方式中,MVD的像素分辨率或精度可以随着MVD幅值的增加而降低或可以不增加。例如,像素分辨率可以取决于MVD幅值的整数部分。在一些实施方式中,分数像素分辨率可以仅允许用于小于或等于幅度阈值的MVD幅值。对于解码器,可以首先从码流中提取MVD幅值的整数部分。然后确定像素分辨率,并且接着可以决定码流中是否存在需要解析的分数MVD(例如,如果特定提取的MVD整数幅值不允许使用分数像素分辨率,那么在需要提取的码流中可以不包括分数MVD比特)。上述与MVD等级相关的自适应MVD像素分辨率示例实施方式适用于与MVD幅值相关的自适应MVD像素分辨率。在特定示例中,高于或涵盖幅值阈值的MVD等级可以允许仅具有一个预定义值。
上述各种示例实施方式适用于单参考模式。这些实施方式也适用于MMVD下的复合预测中的示例NEW_NEARMV、NEAR_NEWMV和/或NEW_NEWMV模式。这些实施方式通常适用于任何MVD的自适应分辨率。
在一些示例实施方式中,下面进一步描述自适应MVD分辨率。对于NEW_NEARMV和NEAR_NEWMV模式,MVD的精度取决于MVD的相关联等级和幅值。
在一些示例中,仅在MVD幅值等于或小于一个像素的情况下,允许使用分数MVD。
在一些示例中,当相关联的MV等级的值等于或大于MV_CLASS_1时,仅允许有一个MVD值,且每个MV等级中的MVD值推导为4、8、16、32、64,分别用于MV等级1(MV_CLASS_1)、MV等级2(MV_CLASS_2)、MV等级3(MV_CLASS_3)、MV等级4(MV_CLASS_4)或MV等级5(MV_CLASS_5)。
每个MV等级中允许的MVD值在表4中图示出。
表4-每个MV幅值等级中的自适应MVD
MV等级 MVD的幅值
MV_CLASS_0 (0,1],{2}
MV_CLASS_1 {4}
MV_CLASS_2 {8}
MV_CLASS_3 {16}
MV_CLASS_4 {32}
MV_CLASS_5 {64}
MV_CLASS_6 {128}
MV_CLASS_7 {256}
MV_CLASS_8 {512}
MV_CLASS_9 {1024}
MV_CLASS_10 {2048}
在一些示例中,如果当前块被编码为NEW_NEARMV或NEAR_NEWMV模式,则一个上下文用于发信号通知mv_joint或mv_class。否则,另一上下文用于发信号通知mv_joint或mv_class。
在一些示例实施方式中,下面进一步描述联合MVD编码(JMVD)。可以应用命名为JOINT_NEWMV的新的帧间编码模式,以指示是否联合发信号通知两个参考列表的一个或多个MVD。如果帧间预测模式等于JOINT_NEWMV模式,则可以联合发信号通知参考列表0和参考列表1的一个或多个MVD。因此,可以发信号通知仅一个MVD(命名为joint_mvd)并将其传输到解码器,参考列表0和参考列表1的一个或多个MV变化量可以从joint_mvd导出。
在一些示例中,JOINT_NEWMV模式可以与NEAR_NEARMV、NEAR_NEWMV、NEW_NEARMV、NEW_NEWMV和GLOBAL_GLOBALMV模式一起发信号通知。不会增加额外的上下文。
在一些示例中,当发信号通知JOINT_NEWMV模式,并且两个参考帧与当前帧之间的POC距离不同时,可以基于该POC距离,针对参考列表0或参考列表1缩放MVD。具体而言,参考帧列表0与当前帧之间的距离标注为td0,参考帧列表1与当前帧之间的距离标注为td1。如果td0等于或大于td1,则joint_mvd可以直接用于参考列表0,而参考列表1的MVD可以基于下面的等式(1)从joint_mvd中导出:
否则,如果td1等于或大于td0,则可以将joint_mvd直接用于参考列表1,而参考列表0的mvd基于下面的等式(2)从joint_mvd导出:
在一些示例实施方式中,下面描述了对自适应MVD分辨率的改进。
在一些示例中,将命名为AMVDMV的新的帧间编码模式添加到单个参考情况。选择AMVDMV模式时,表示自适应MVD(AMVD)应用于信号MVD。
在一些示例中,在JOINT_NEWMV模式下添加了命名为amvd_flag的一个标志,以指示AMVD是否被应用于联合MVD编码模式。当自适应MVD分辨率应用于联合MVD编码模式(称为联合AMVD编码)时,两个参考帧的MVD联合发信号通知,MVD的精度由MVD幅值隐式确定。否则,两个(或两个以上)参考帧的MVD将联合发信号通知,并且应用传统的MVD编码。
在一些示例实施方式中,下面将进一步描述自适应运动矢量分辨率(AMVR)。AMVR最初实现时共支持7个MV精度(8、4、2、1、1/2、1/4、1/8)像素(pel)(像素(pixel))。对于每个预测块,AOMedia视频模型(AVM)编码器可以搜索所有支持的精度值,并将最佳精度发信号通知给解码器。
在一些示例中,为了减少编码器的运行时间,可以支持两个精度集。每个精度集可以包含4个预定义精度。精度集可以基于帧的最大精度值在帧级别进行自适应选择。该最大精度可以在帧头中发信号通知。下表5总结了基于帧级别最大精度的支持的精度值。
表5-在两个集中支持的MV精度
帧级别最大精度 支持的MV精度
1/8 1/8、1/2、1、4
1/4 1/4、1、4、8
在一些示例中,在AVM软件(与AV1类似)中,存在帧级别标志以指示帧的一个或多个MV是否包含子像素精度。只有当cur_frame_force_integer_mv标志的值为0时,才启用AMVR。在AMVR中,如果块的精度低于最大精度,则不发信号通知运动模型和插值滤波器。如果块的精度低于最大精度,则运动模式可以推断为平移运动,插值滤波器可以推断为REGULAR插值滤波器。同样,如果块的精度是4像素或8像素,则不发信号通知帧间-帧内模式,推断为0。
在一些方法中,当采用自适应MVD分辨率方法时,与自适应MVD编码一样,MVD的精度取决于MVD的幅值。MVD的精度随着MVD幅值的增加而降低。因此,在应用自适应MVD分辨率时,对于大的MVD,预测可能不太准确。
在一些方法中,当显式地发信号通知自适应运动矢量分辨率时,与AMVR一样,MVD的精度取决于发信号通知的标志。如果发信号通知的标志指示MVD的精度更粗糙,则MVD可能不太准确。
在一些示例中,本申请公开的方法可以单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一者可以由处理电路系统(例如,一个或多个处理器或一个或多个集成电路)实现。在一个示例中,该一个或多个处理器执行存储在非易失性计算机可读介质中的程序。术语块可以被解释为预测块、编码块或编码单元,即CU。
在本公开中,参考帧的方向可以通过参考帧的显示顺序是在当前帧之前还是在当前帧之后来确定。
在本公开中,在描述MVD信令的最大精度或最高精度时,指的是MVD精度的最精细粒度。例如,1/16像素MVD信令比1/8像素MVD信令的精度更高。
在本公开中,在描述允许的最精细MVD分辨率时,指的是发信号通知MVD的分辨率。例如,当应用自适应MVD分辨率时,可以以1/4像素的精度发信号通知MVD。然而,当也应用双边匹配时,可以将用于运动补偿的实际MVD修正到1/8像素精度或更高的精度,而不需要进一步的信令。
在一些实施方式中,运动矢量预测子(MVP)和运动矢量差(MVD)是用于表示当前块的运动矢量(MV)的两个重要参数。在帧间预测模式中,MVP和MVD用于表示当前块相对于前一帧/后一帧中的参考块的运动矢量。
例如,MVP通常通过使用同一帧中相邻块的运动矢量或参考帧中对应块的运动矢量来计算。MVP的目标是基于相邻块的运动或参考帧中对应块的运动来预测当前块的运动。
例如,MVD是当前块的运动矢量与MVP之间的差。MVD表示当前块的实际运动矢量与基于相邻块或参考帧中对应块的预测运动矢量之间的偏差。MVD通常与运动矢量预测子一起编码并发送到解码器,以使解码器能够重建当前块的运动矢量。
图4是图示根据一些实施例的用于修正MVD的示例双边匹配方法的图。
在一些示例中,块匹配方法利用块中的像素与预测块中的像素之间的相关性。例如,找到帧中给定像素块与参考帧中对应像素块的最佳匹配。将正在编码/解码的块的像素值与参考帧中每个块的像素值进行比较,选择具有最接近的匹配的块。基于参考帧中最接近的匹配像素块,预测当前块中的像素。
在一些方面/实施例中,当自适应MVD分辨率(或AMVR)应用于联合MVD编码(称为联合AMVD编码)时,可以使用双边匹配进一步修正当前块的MV。使用双边匹配的MV修正的起始点是当前块402的MV,该MV是当前块402的MVP和发信号通知的MVD(或从联合MVD导出的MVD)之和。通过双边匹配的MV修正在编码器侧和解码器侧进行,因此已修正MV与MV修正的起始点之间的差不在码流中发信号通知。预测块P0 404是当前块402的后向块,而预测块P1 406是当前块402的前向块。
图5是图示根据一些实施例的视频编码方法500的示例性流程图。方法500可以在计算系统(例如,服务器系统112、源设备102或电子设备120)处执行,该计算系统具有控制电路系统和存储用于由控制电路系统执行的指令的存储器。在一些实施例中,方法500可以通过执行存储在计算系统的存储器(例如,存储器314)中的指令来执行。方法500可以由编码器(例如,编码器106)和/或解码器(例如,解码器122)执行。
参照图5,在一个方面,视频解码器(例如,图2B中的解码器122)和/或视频编码器(例如,图2B中的编码器106)基于视频码流中的一个或多个语法元素,确定是否发信号通知了联合自适应运动矢量差(MVD)分辨率模式,该联合自适应MVD分辨率模式是一种对第一参考帧和第二参考帧的MVD以及自适应MVD像素分辨率联合发信号通知的帧间预测模式(510)。
视频解码器和/或视频编码器从视频码流中接收当前帧内视频块的发信号通知的MVD(520)。
响应于确定发信号通知了联合自适应MVD分辨率模式,视频解码器和/或视频编码器针对视频块,搜索第一参考帧内的第一预测视频块以及第二参考帧内的第二预测视频块,其中,该第一预测视频块是视频块的已重建/预测的前向视频块或后向视频块,该第二预测视频块是视频块的已重建/预测的前向视频块或后向视频块(530)。
视频解码器和/或视频编码器基于第一预测块与第二预测块之间通过成本标准测量的最小差,定位第一预测视频块和第二预测视频块(540)。
视频解码器和/或视频编码器基于所定位的第一预测视频块和所定位的第二预测视频块,修正视频块的发信号通知的MVD(550)。
视频解码器和/或视频编码器基于视频块的已修正MVD,修正视频块的运动矢量(MV)(560)。
视频解码器和/或视频编码器至少基于已修正MV,重建/处理视频块(570)。
在一个实施例和/或本申请公开的实施例的任意组合中,对于当前块的MV周围允许/给定搜索区域中的每个MVD,生成预测块P0 404和P1 406,其MV等于MV(MVP+发信号通知的MVD)和已修正MVD之和。然后,通过成本标准计算和测量P0 404和P1 406之间的差,并且将成本最小的已修正MVD用作当前块的已修正MVD。
在一些示例中,一个参考帧(例如,参考帧列表0)的已修正MVD可以基于两个参考帧与当前帧之间的距离,从另一参考帧(例如,参考帧列表1)的已修正MVD导出。例如,视频块的已修正MVD是第一参考帧的第一已修正MVD,第二参考帧的第二已修正MVD从第一参考帧的第一已修正MVD导出。
在一些示例中,refined_mvd_1=(td1/td0)*refined_mvd_0。在该等式中,参考帧列表0与当前帧之间的距离记为td0,参考帧列表1与当前帧之间的距离记为td1。refined_mvd_0和refined_mvd_1分别是针对参考帧列表0和参考帧列表1的已修正MVD。例如,视频块的已修正MVD是第一参考帧的第一已修正MVD,第二参考帧的第二已修正MVD根据refined_mvd_1=(td1/td0)*refined_mvd_0,由第一参考帧的第一已修正MVD导出,其中,td0是第一参考帧与当前帧之间的距离,td1是第二参考帧与当前帧之间的距离,refined_mvd_0和refined_mvd_1分别是第一参考帧的第一已修正MVD和第二参考帧的第二已修正MVD。
在一些示例中,用于一个参考帧(例如,参考帧列表0)的已修正MVD可以由另一参考帧(例如,参考帧列表1)镜像而来,即,refine_mvd_1=-refined_mvd_0。在这个例子中,还可以附加一个限制条件。即,当前帧与两个参考帧之间的相对距离相等,即,td0=td1。例如,视频块的已修正MVD是第一参考帧的第一已修正MVD,第二参考帧的第二已修正MVD由第一参考帧的第一已修正MVD镜像而来。
在一个实施例和/或本申请公开的实施例的任意组合中,可以使用双边匹配只修正一个与参考帧列表0或参考帧列表1相关联的MVD,而另一个MVD可以仅从发信号通知的MVD中导出,不需要进一步修正。例如,视频块的已修正MVD是第一参考帧的第一已修正MVD,第二参考帧的第二MVD是发信号通知的MVD。
在一些示例中,如果针对参考帧列表0(或参考帧列表1)发信号通知MVD,而参考帧列表1(或参考帧列表0)的MVD从发信号通知的MVD中导出,则将使用双边匹配的修正应用于列表1(或列表0)所应用的MVD,而不应用于列表0(或列表1)所应用的MVD。
在一个实施例和/或本申请公开的实施例的任意组合中,双边匹配的成本标准包括但不限于SAD(绝对差之和)、SSE(均方误差之和)和/或SATD(绝对变换差之和)。
在一个实施例和/或本申请公开的实施例的任意组合中,一个或多个特定位置的双边匹配的失真成本可以通过一个因子进行修改,以使该(这些)位置在比较过程中更优选或更不优选。当该因子大于1时,该位置更不优选。当该因子小于1时,该位置更优选。例如,成本标准包括一个或多个位置的失真成本,该失真成本通过一个因子修改,以在最小差测量过程中使一个或多个位置更优选或更不优选。
在一些示例中,起始位置的失真成本通过小于1的因子来缩放,以使该位置在选择过程中更优选。该方法的另一个好处是将降低了计算复杂性。
在一个实施例和/或本申请公开的实施例的任意组合中,用于双边匹配的搜索区域大小可以取决于当前块的MVD的精度或相关联的MVD等级。例如,针对视频块,搜索第一参考帧内的第一预测视频块和第二参考帧内的第二预测视频块(530)包括:基于MVD的精度,确定搜索区域大小,以及基于该搜索区域大小,进行搜索。
在一个实施例和/或本申请公开的实施例的任意组合中,当AMVD隐式地应用于联合MVD编码时,随着MVD幅值的增加,用于双边匹配的搜索区域大小单调增加或保持不变。
在一些示例中,对于一个MVD精度,搜索区域大小是相同的,但是不同MVD精度的搜索区域大小不同。
在一些示例中,当AMVD隐式地应用于联合MVD编码时,当MVD的MV等级等于或大于一个阈值(诸如MV_CLASS_1)时,搜索区域大小对于一个MV等级中的所有MVD是相同的。
在一个实施例和/或本申请公开的实施例的任意组合中,在给定搜索区域内用于双边匹配的MV修正的精度/粒度可以取决于MVD的精度和/或MVD的幅值和/或相关联的MV等级。精度可以包括但不限于1/64像素、1/32像素、1/16像素、1/8像素、1/4像素、1/2像素、整数像素、1像素、2像素、3像素、4像素等精度。例如,修正视频块的发信号通知的MVD(550),包括:基于MVD的精度、幅值和/或相关联的MV等级,确定MVD的修正粒度。
在一些示例中,当AMVD隐式地应用于联合MVD编码时,仅当MVD的幅值等于或小于一个阈值或者相关联的MV等级等于或小于另一阈值时,才允许通过双边匹配进行分数精度MV修正。在一个示例中,仅当MVD的幅值等于或小于1像素样本时,才允许通过双边匹配进行分数精度MV修正。在一个示例中,仅当相关联的MV等级等于或小于MV_CLASS_0时,才允许通过双边匹配进行分数精度MV修正。例如,确定MVD的修正粒度,包括:仅当MVD的幅值等于或小于阈值时,才实施分数精度MVD修正。
在一些示例中,当AMVD隐式地应用于联合MVD编码时,随着MVD幅值(或MVD等级)的增加,使用双边匹配的MV修正的精度/粒度可能会单调地变得更粗糙。
在一些示例中,当针对联合MVD编码显式地发信号通知AMVR时,随着MVD精度的降低,使用双边匹配的MV修正的精度/粒度可能会单调地变得更粗糙。在一个示例中,当MVD的精度比1像素粗糙,诸如为2像素或4像素时,仅支持全像素MVD修正。
在一些示例中,当应用自适应MVD分辨率时,允许的最精细MVD分辨率取决于是否应用双边匹配。在一个示例中,当应用双边匹配时,允许的最精细MVD分辨率比没有应用双边匹配时允许的最精细MVD分辨率低。在一个示例中,当应用自适应MVD分辨率时,如果不应用双边匹配时允许的最精细MVD分辨率是1/8像素,则应用双边匹配时允许的最精细MVD分辨率是1/4或1/2像素。
在一个实施例和/或本申请公开的实施例的任意组合中,用于双边匹配的MV修正仅限于某些预定义方向,诸如水平方向、垂直方向或对角线方向。
在一些示例中,预定义的搜索方向可以用高级语法(诸如序列级别、帧级别或条带级别)来发信号通知。
在一个实施例和/或本申请公开的实施例的任意组合中,使用双边匹配的MV修正的搜索方向可以取决于MVD的方向。例如,针对视频块,搜索第一参考帧内的第一预测视频块和第二参考帧内的第二预测视频块(530),包括:基于MVD的方向,确定搜索方向,以及基于该搜索方向,进行搜索。
在一些示例中,如果MVD的方向沿着水平或垂直方向,那么使用双边匹配的MV修正的搜索方向也限于水平或垂直方向。
在一些示例中,使用双边匹配的MV修正的搜索方向可以与MVD的方向相同或垂直于MVD的方向。
在一个实施例和/或本申请公开的实施例的任意组合中,可以发信号通知一个高级语法,以指示是否将双边匹配应用于自适应MVD分辨率(或AMVR)。例如,在搜索之前,解码器/编码器基于视频码流中的第二语法元素,确定是否发信号通知了双边匹配模式,并且响应于确定发信号通知了双边匹配模式,进行搜索。
在一些示例中,该高级语法可以在序列级别、帧级别或条带级别中发信号通知。例如,第二语法元素在序列级别、帧级别或条带级别中的一个或多个级别发信号通知。
尽管图5以特定顺序图示了多个逻辑阶段,但是可以对不依赖于顺序的阶段进行重新排序,可以对其它阶段进行组合或拆分。对于本领域普通技术人员而言,一些未具体提及的重新排序或其它分组是明显的,因此本申请给出的排序和分组并不是穷举的。此外,应当认识到,各阶段可以通过硬件、固件、软件或其任意组合实现。
在另一方面,一些实施例包括计算系统(例如,服务器系统112),该计算系统包括控制电路(例如,控制电路302)和耦接到该控制电路的存储器(例如,存储器314),该存储器存储被配置为由控制电路执行的一组或多组指令,该一组或多组指令包括用于执行本文所述的任何方法的指令。
在又一方面,一些实施例包括存储由计算系统的控制电路执行的一组或多组指令的非易失性计算机可读存储介质,该一组或多组指令包括用于执行本文所述的任何方法的指令。
应当理解,虽然术语“第一”、“第二”等在本文中可以用于描述各种元件,但这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件与另一个元件。
本文使用的术语仅用于描述特定实施例的目的,且不旨在限制权利要求。如在实施例的描述和所附权利要求中所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外明确指出。还将理解,如本文所使用的术语“和/或”是指并涵盖一个或多个相关联的所列项的任何和所有可能的组合。还应当理解,当在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprising)”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
如本文所使用的,根据上下文,术语“如果”可以被解读为意指“当......时”或“在......后”,或者“响应于确定”或“根据确定”,或者“响应于检测”所陈述的先决条件为真。类似地,根据上下文,短语“如果确定[所陈述的先决条件为真]”或“如果[所陈述的先决条件为真]”或“当[所陈述的先决条件为真]时”可以被解读为意指“在确定后”或“响应于确定”或“根据确定”或者“在检测后”或“响应于检测”所陈述的先决条件为真。
为了解释的目的,已经参考具体实施例描述了前面的描述。然而,上述说明性讨论并不旨在穷举或将权利要求限制于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。对实施例进行选择和描述是为了最好地解释操作原理和实际应用,从而使本领域的其它技术人员能够实现。

Claims (20)

1.一种在具有存储器和控制电路系统的计算系统中执行的视频码流解码方法,其特征在于,所述方法包括:
基于所述视频码流中的一个或多个语法元素,确定是否发信号通知了联合自适应运动矢量差(MVD)分辨率模式,所述联合自适应MVD分辨率模式是一种对第一参考帧和第二参考帧的MVD以及自适应MVD像素分辨率联合发信号通知的帧间预测模式;
从所述视频码流中接收当前帧内视频块的发信号通知的MVD;
响应于确定发信号通知了所述联合自适应MVD分辨率模式,针对所述视频块,搜索所述第一参考帧内的第一预测视频块和所述第二参考帧内的第二预测视频块,其中,所述第一预测视频块是所述视频块的已重建前向视频块或已重建后向视频块,所述第二预测视频块是所述视频块的已重建前向视频块或已重建后向视频块;
基于所述第一预测块与所述第二预测块之间通过成本标准测量的最小差,定位所述第一预测视频块和所述第二预测视频块;
基于所定位的第一预测视频块和所定位的第二预测视频块,修正所述视频块的所述发信号通知的MVD;
基于所述视频块的已修正MVD,修正所述视频块的运动矢量(MV);以及
至少基于已修正MV,重建所述视频块。
2.根据权利要求1所述的方法,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二已修正MVD由所述第一参考帧的所述第一已修正MVD导出。
3.根据权利要求1所述的方法,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二已修正MVD根据refined_mvd_1=(td1/td0)*refined_mvd_0,由所述第一参考帧的所述第一已修正MVD导出,
其中,td0是所述第一参考帧与所述当前帧之间的距离,td1是所述第二参考帧与所述当前帧之间的距离,refined_mvd_0和refined_mvd_1分别是所述第一参考帧的所述第一已修正MVD和所述第二参考帧的所述第二已修正MVD。
4.根据权利要求1所述的方法,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二已修正MVD由所述第一参考帧的所述第一已修正MVD镜像而来。
5.根据权利要求1所述的方法,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二MVD是所述发信号通知的MVD。
6.根据权利要求1所述的方法,其特征在于,所述成本标准包括一个或多个位置的失真成本,所述失真成本通过一个因子修改,以在所述最小差测量过程中使所述一个或多个位置更优选或更不优选。
7.根据权利要求1所述的方法,其特征在于,针对所述视频块,搜索所述第一参考帧内的所述第一预测视频块和所述第二参考帧内的所述第二预测视频块,包括:基于所述MVD的精度,确定搜索区域大小,以及基于所述搜索区域大小,进行搜索。
8.根据权利要求1所述的方法,其特征在于,修正所述视频块的所述发信号通知的MVD,包括:基于所述MVD的精度、幅值和/或相关联的MV等级,确定所述MVD的修正粒度。
9.根据权利要求8所述的方法,其特征在于,确定所述MVD的所述修正粒度,包括:仅当所述MVD的所述幅值等于或小于阈值时,才实施分数精度MVD修正。
10.根据权利要求1所述的方法,其特征在于,针对所述视频块,搜索所述第一参考帧内的所述第一预测视频块和所述第二参考帧内的所述第二预测视频块,包括:基于所述MVD的方向,确定搜索方向,以及基于所述搜索方向,进行搜索。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:在搜索之前,基于所述视频码流中的第二语法元素,确定是否发信号通知了双边匹配模式,以及响应于确定发信号通知了所述双边匹配模式,进行搜索。
12.根据权利要求11所述的方法,其特征在于,所述第二语法元素在序列级别、帧级别和/或条带级别中的一个或多个级别发信号通知。
13.根据权利要求11所述的方法,其特征在于,当发信号通知了所述联合自适应MVD分辨率模式时,允许的最精细MVD分辨率取决于是否发信号通知了所述双边匹配模式。
14.一种计算系统,其特征在于,包括用于存储计算机指令的存储器和与所述存储器通信的控制电路系统,其中,所述控制电路系统在执行所述计算机指令时,被配置为使所述计算系统执行视频码流解码方法,所述方法包括:
基于所述视频码流中的一个或多个语法元素,确定是否发信号通知了联合自适应运动矢量差(MVD)分辨率模式,所述联合自适应MVD分辨率模式是一种对第一参考帧和第二参考帧的MVD以及自适应MVD像素分辨率联合发信号通知的帧间预测模式;
从所述视频码流中接收当前帧内视频块的发信号通知的MVD;
响应于确定发信号通知了所述联合自适应MVD分辨率模式,针对所述视频块,搜索所述第一参考帧内的第一预测视频块和所述第二参考帧内的第二预测视频块,其中,所述第一预测视频块是所述视频块的已重建前向视频块或已重建后向视频块,所述第二预测视频块是所述视频块的已重建前向视频块或已重建后向视频块;
基于所述第一预测块与所述第二预测块之间通过成本标准测量的最小差,定位所述第一预测视频块和所述第二预测视频块;
基于所定位的第一预测视频块和所定位的第二预测视频块,修正所述视频块的所述发信号通知的MVD;
基于所述视频块的已修正MVD,修正所述视频块的运动矢量(MV);以及
至少基于已修正MV,重建所述视频块。
15.根据权利要求14所述的计算系统,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二已修正MVD由所述第一参考帧的所述第一已修正MVD导出。
16.根据权利要求14所述的计算系统,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二已修正MVD根据refined_mvd_1=(td1/td0)*refined_mvd_0,由所述第一参考帧的所述第一已修正MVD导出,
其中,td0是所述第一参考帧与所述当前帧之间的距离,td1是所述第二参考帧与所述当前帧之间的距离,refined_mvd_0和refined_mvd_1分别是所述第一参考帧的所述第一已修正MVD和所述第二参考帧的所述第二已修正MVD。
17.根据权利要求14所述的计算系统,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,并且所述第二参考帧的第二已修正MVD从所述第一参考帧的所述第一已修正MVD镜像而来。
18.根据权利要求14所述的计算系统,其特征在于,所述视频块的所述已修正MVD是所述第一参考帧的第一已修正MVD,所述第二参考帧的第二MVD是所述发信号通知的MVD。
19.根据权利要求14所述的计算系统,其特征在于,所述成本标准包括一个或多个位置的失真成本,所述失真成本通过一个因子修改,以在所述最小差测量过程中使所述一个或多个位置更优选或更不优选。
20.一种用于存储计算机指令的非易失性计算机可读介质,其特征在于,所述计算机指令在由计算系统的控制电路系统执行时,使所述计算系统执行视频码流解码方法,所述方法包括:
基于所述视频码流中的一个或多个语法元素,确定是否发信号通知了联合自适应运动矢量差(MVD)分辨率模式,所述联合自适应MVD分辨率模式是一种对第一参考帧和第二参考帧的MVD以及自适应MVD像素分辨率联合发信号通知的帧间预测模式;
从所述视频码流中接收当前帧内视频块的发信号通知的MVD;
响应于确定发信号通知了所述联合自适应MVD分辨率模式,针对所述视频块,搜索所述第一参考帧内的第一预测视频块和所述第二参考帧内的第二预测视频块,其中,所述第一预测视频块是所述视频块的已重建前向视频块或已重建后向视频块,所述第二预测视频块是所述视频块的已重建前向视频块或已重建后向视频块;
基于所述第一预测块与所述第二预测块之间通过成本标准测量的最小差,定位所述第一预测视频块和所述第二预测视频块;
基于所定位的第一预测视频块和所定位的第二预测视频块,修正所述视频块的所述发信号通知的MVD;
基于所述视频块的已修正MVD,修正所述视频块的运动矢量(MV);以及
至少基于已修正MV,重建所述视频块。
CN202380011282.2A 2022-05-09 2023-03-29 用于自适应mvd分辨率的双边匹配的系统和方法 Pending CN117378202A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263339869P 2022-05-09 2022-05-09
US63/339,869 2022-05-09
US18/127,558 US20230362402A1 (en) 2022-05-09 2023-03-28 Systems and methods for bilateral matching for adaptive mvd resolution
US18/127,558 2023-03-28
PCT/US2023/016746 WO2023219721A1 (en) 2022-05-09 2023-03-29 Systems and methods for bilateral matching for adaptive mvd resolution

Publications (1)

Publication Number Publication Date
CN117378202A true CN117378202A (zh) 2024-01-09

Family

ID=88647795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202380011282.2A Pending CN117378202A (zh) 2022-05-09 2023-03-29 用于自适应mvd分辨率的双边匹配的系统和方法

Country Status (3)

Country Link
US (1) US20230362402A1 (zh)
CN (1) CN117378202A (zh)
WO (1) WO2023219721A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230128313A1 (en) * 2021-10-21 2023-04-27 Tencent America LLC Adaptive Resolution for Single-Reference Motion Vector Difference

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102600670B1 (ko) * 2018-07-02 2023-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더
CN114270860A (zh) * 2019-06-04 2022-04-01 北京达佳互联信息技术有限公司 针对仿射模式的自适应运动矢量分辨率

Also Published As

Publication number Publication date
WO2023219721A1 (en) 2023-11-16
US20230362402A1 (en) 2023-11-09

Similar Documents

Publication Publication Date Title
US11218694B2 (en) Adaptive multiple transform coding
US10291934B2 (en) Modified HEVC transform tree syntax
CN117378202A (zh) 用于自适应mvd分辨率的双边匹配的系统和方法
US20230300363A1 (en) Systems and methods for template matching for adaptive mvd resolution
CN115428445A (zh) 用于视频编码的方法和装置
US20230054289A1 (en) Mmvd signaling improvement
CN116830581A (zh) 用于运动矢量差的经改进的信令方法和装置
CN117063471A (zh) 用于运动矢量差的联合信令方法
US20230388535A1 (en) Systems and methods for combining subblock motion compensation and overlapped block motion compensation
US20240080483A1 (en) Systems and methods for warp sample selection and grouping
US20240171734A1 (en) Systems and methods for warp extend and warp delta signaling
CN117099369A (zh) 用于自适应mvd分辨率的模板匹配的系统和方法
US20240171767A1 (en) Systems and methods for improving warp extend and warp delta signaling with backup candidates
US20240129474A1 (en) Systems and methods for cross-component geometric/wedgelet partition derivation
US20240080451A1 (en) Systems and methods for temporal motion vector prediction candidate derivation
US20230412816A1 (en) Bilateral matching for compound reference mode
US20240031596A1 (en) Adaptive motion vector for warped motion mode of video coding
US20230396794A1 (en) Systems and methods for motion vector predictor list improvements
US20230379479A1 (en) Systems and methods for determining chroma samples in an intra prediction mode of video coding
US20240129461A1 (en) Systems and methods for cross-component sample offset filter information signaling
US20230396762A1 (en) Systems and methods for partition-based predictions
US20240179304A1 (en) Systems and methods for signaling of downsampling filters for chroma from luma intra prediction mode
US20240089487A1 (en) Systems and methods for subblock motion vector coding
US20230379452A1 (en) Adjacent spatial motion vector predictor candidates improvement
US20230396793A1 (en) Adjacent spatial motion vector predictor candidates improvement

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination