一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有运动矢量差的合并模式的改进的制作方法

2022-02-21 07:48:54 来源:中国专利 TAG:

具有运动矢量差的合并模式的改进
1.相关申请的交叉引用
2.本技术要求于2020年3月16日提交的名称为“improvements on merge mode with motion vector differences(具有运动矢量差的合并模式的改进)”的美国临时专利申请号62/989,900的优先权,所述美国临时专利申请通过引用以其全文并入。
技术领域
3.本技术总体上涉及视频编解码和压缩,并且更具体地,涉及提高具有运动矢量差的合并模式(mmvd)(也被称为高级运动矢量表达(umve)模式)的编解码效率的方法和装置。


背景技术:

4.如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字录音设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流式传输设备等各种电子设备都支持数字视频。电子设备通过实施视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。一些众所周知的视频编解码标准包括通用视频编解码(vvc)、高效视频编解码(hevc,也被称为h.265或mpeg-h第2部分)和高级视频编解码(avc,也被称为h.264或mpeg-4第10部分),这些视频编解码标准由iso/iec mpeg和itu-t vecg联合开发。ao媒体视频1(aomedia video 1,av1)由开放媒体联盟(aom)开发作为其先前标准vp9的后续标准。音视频编解码(avs)(其是指数字音频和数字视频压缩标准)是中国数字音视频编解码技术标准工作组(audio and video coding standard workgroup of china)开发的另一个视频压缩系列标准。
5.视频压缩典型地包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编解码,将视频帧划分为一个或多个条带,每个条带具有多个视频块,该视频块也可以被称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu)或递归地分割成较小的cu,直到达到预定义的最小cu尺寸。每个cu(也称为叶cu)包含一个或多个变换单元(tu),并且每个cu还包含一个或多个预测单元(pu)。可以以帧内、帧间或ibc模式对每个cu进行编解码。相对于同一视频帧内的相邻块中的参考样本,使用空间预测对视频帧的帧内编码(i)条带中的视频块进行编码。视频帧的帧间编码(p或b)条带中的视频块可以相对于同一视频帧内的相邻块中的参考样本使用空间预测或相对于其他先前和/或未来参考视频帧中的参考样本使用时间预测。
6.基于先前已编码的参考块(例如,相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动矢量、以及残差块来对帧间编码块进行编码。确定运动矢量的过程典型地被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,从而产生残差变换系数,然后可以对该残差变换系数进行量化。可以扫描最初布置为二维阵列的量化的变换系数,以产生变换系数
的一维矢量,并且然后将其熵编码为视频比特流,以实现更多的压缩。
7.然后,将已编码视频比特流保存在计算机可读存储介质(例如,闪速存储器)中,以被具有数字视频能力的另一个电子设备访问,或者直接以有线或无线方式传输到电子设备。然后,电子设备通过例如解析已编码视频比特流以从比特流获得语法元素并且至少部分地基于从比特流获得的语法元素将数字视频数据从已编码视频比特流重建为其原始格式来执行视频解压缩(其是与上文描述的视频压缩相反的过程),并且在电子设备的显示器上渲染重建数字视频数据。
8.随着数字视频质量从高清到4k
×
2k或甚至8k
×
4k,待编码/解码的视频数据量呈指数增长。如何在保持解码视频数据的图像质量的同时更高效地对视频数据进行编码/解码方面一直存在挑战。


技术实现要素:

9.本技术描述了与视频数据编码和解码有关的实施方式,并且更具体地,与提高具有运动矢量差的合并模式(mmvd)(也被称为高级运动矢量表达(umve)模式)的编解码效率的方法和装置有关的实施方式。
10.根据本技术的第一方面,一种对视频数据进行解码的方法包括:从比特流接收第一控制标志,其中,第一控制标志指示是否针对视频序列中的一个或多个编码单元启用具有运动矢量差的合并模式mmvd;根据从第一控制标志确定mmvd被启用,从视频数据接收第一语法元素,其中,第一语法元素标识多个运动矢量差mvd偏移量集合中的一个mvd偏移量集合;从比特流接收视频数据的第二控制标志,第二控制标志与一个或多个编码单元中的相应编码单元相对应,第二控制标志指示mmvd是否应用于相应编码单元;根据从第二控制标志确定mmvd应用于相应编码单元,接收相应编码单元的第二语法元素和相应编码单元的第三语法元素,第二语法元素从所标识的mvd偏移量集合中选择mvd偏移量,第三语法元素选择与所选择的mvd偏移量相对应的mvd方向;基于所选择的mvd偏移量和所选择的mvd方向来形成mvd;以及通过应用所形成mvd生成相应编码单元的运动矢量,来重建相应编码单元。
11.根据本技术的第二方面,一种对视频数据进行解码的方法包括从比特流接收第一控制标志,其中,第一控制标志指示是否针对一个或多个编码单元启用具有运动矢量差的合并模式mmvd;根据从第一控制标志确定mmvd被启用,从比特流接收视频数据的第二控制标志,第二控制标志与一个或多个编码单元中的相应编码单元相对应,第二控制标志指示mmvd是否应用于相应编码单元;根据从第二控制标志确定mmvd应用于相应编码单元,从视频数据接收第三控制标志,其中,第三控制标志指示是否针对相应编码单元启用帧间预测滤波interpf模式;根据从第三控制标志确定针对相应编码单元启用interpf模式,从视频数据接收第四语法元素,其中,第四语法元素标识相应编码单元的多个interpf模式中的一个interpf模式;以及通过将mmvd和所标识的interpf模式应用于与相应编码单元相对应的视频数据来重建相应编码单元。
12.根据本技术的第三方面,一种电子装置包括一个或多个处理单元、存储器以及存储在存储器中的多个程序。程序当由一个或多个处理单元执行时使电子装置执行如上文描述的对视频数据进行解码的方法。
13.根据本技术的第四方面,一种非暂态计算机可读存储介质存储用于由具有一个或
多个处理单元的电子装置执行的多个程序。程序当由一个或多个处理单元执行时使电子装置执行如上文描述的对视频数据进行解码的方法。
附图说明
14.被包括在内以提供对实施方式的进一步理解并且并入本文并构成说明书的一部分的附图图示了所描述的实施方式,并且与说明书一起用于解释基本原理。相似的附图标记指代对应的部分。
15.图1是图示了根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
16.图2是图示了根据本公开的一些实施方式的示例性视频编码器的框图。
17.图3是图示了根据本公开的一些实施方式的示例性视频解码器的框图。
18.图4a至图4e是图示了根据本公开的一些实施方式的如何将帧递归地划分成具有不同大小和形状的多个视频块的框图。
19.图5a和图5b是图示了根据本公开的一些实施方式的添加到起始运动矢量(mv)的水平或垂直分量的示例性偏移量的框图。
20.图6是图示了根据本公开的一些实施方式的示例性解码器端运动矢量改良(dmvr)的框图。
21.图7是图示了根据本公开的一些实施方式的用于dmvr模式的一些示例性整数搜索候选的框图。
22.图8是图示了根据本公开的一些实施方式的当启用具有运动矢量差的合并模式(mmvd)时从多个运动矢量差(mvd)偏移量集合中确定mvd偏移量的示例性过程的流程图。
具体实施方式
23.现在将详细参照具体实施方式,附图中图示了这些实施方式的示例。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文提出的主题。但是对于本领域的普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代性方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文提出的主题可以在具有数字视频能力的许多类型的电子设备上实施。
24.第一代avs标准包括中国国家标准“信息技术高级音视频编解码第2部分:视频”(被称为avs1)和“信息技术高级音视频编解码第16部分:广播电视视频”(被称为avs )。与mpeg-2标准相比,第一代avs标准可以在相同的感知质量下提供大约50%的比特率节省。第二代avs标准包括中国国家标准“信息技术高效多媒体编解码”(被称为avs2)系列,其主要针对额外hd tv节目的传输。avs2的编解码效率是avs 的编解码效率的两倍。同时,avs2标准视频部分由电气和电子工程师协会(ieee)作为一项国际应用标准提交。avs3标准是针对uhd视频应用的新一代视频编解码标准,旨在超越最新国际标准hevc的编解码效率,avs3标准提供了超过hevc标准大约30%的比特率节省。
25.本公开的重点是改进在vvc和avs3标准两者中使用的具有运动矢量差的合并模式(mmvd)工具的编解码性能。在avs3中,该工具被称为高级运动矢量表达(umve)。在本文公开的一些实施例中,尽管以avs3标准中的mmvd设计作为示例来说明基本的mmvd方法,但是对
于视频编解码领域的技术人员来说,本公开中描述的方法也可以应用于其他mmvd设计或具有相同或类似设计的其他编解码工具。
26.图1是图示了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1所示,系统10包括源设备12,该源设备生成并且编码待由目的地设备14在稍后时间解码的视频数据。源设备12和目的地设备14可以包括多种电子设备中的任何一种,该多种电子设备包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流式传输设备等。在一些实施方式中,源设备12和目的地设备14配备有无线通信能力。
27.在一些实施方式中,目的地设备14可以经由链路16接收待解码的已编码视频数据。链路16可以包括能够将已编码视频数据从源设备12移到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括用于使源设备12能够实时地将已编码视频数据直接传输到目的地设备14的通信介质。已编码视频数据可以根据如无线通信协议等通信标准来调制并传输到目的地设备14。通信介质可以包括任何无线或有线通信介质,如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(如局域网、广域网、或全球网(如互联网))的一部分。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备12到目的地设备14的通信的任何其他设备。
28.在一些其他实施方式中,已编码视频数据可以从输出接口22传输到存储设备32。随后,存储设备32中的已编码视频数据可以由目的地设备14经由输入接口28访问。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任一种,如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪速存储器、易失性存储器或非易失性存储器或用于存储已编码视频数据的任何其他合适的数字存储介质。在进一步示例中,存储设备32可以对应于可以保持由源设备12生成的已编码视频数据的文件服务器或另一个中间存储设备。目的地设备14可以经由流式传输或下载从存储设备32访问所存储的视频数据。文件服务器可以是能够存储已编码视频数据并且将已编码视频数据传输到目的地设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)设备、或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接访问已编码视频数据,该连接包括适于访问存储在文件服务器上的已编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或两者的组合。从存储设备32传输已编码视频数据可以是流式传输、下载传输或两者的组合。
29.如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括如视频捕获设备等源,例如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供方接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统或这种源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目的地设备14可以形成拍照电话或视频电话。然而,本技术中描述的实施方式通常可以适用于视频编解码并且可以应用于无线和/或有线应用。
30.捕获的、预先捕获的或计算机生成的视频可以由视频编码器20进行编码。已编码视频数据可以经由源设备12的输出接口22直接传输到目的地设备14。已编码视频数据也可以(或替代性地)存储到存储设备32上,以供目的地设备14或其他设备以后访问,以进行解码和/或回放。输出接口22可以进一步包括调制解调器和/或发射器。
31.目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收已编码视频数据。通过链路16传送的或提供在存储设备32上的已编码视频数据可以包括由视频编码器20生成的各种语法元素,以供视频解码器30用于解码视频数据。这种语法元素可以被包括于在通信介质上传输的、存储在存储介质上、或存储在文件服务器中的已编码视频数据内。
32.在一些实施方式中,目的地设备14可以包括显示设备34,该显示设备可以是集成显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示解码视频数据并且可以包括各种显示设备中的任何一种,如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一种类型的显示设备。
33.视频编码器20和视频解码器30可以根据专有或行业标准(如vvc、hevc、mpeg-4第10部分、高级视频编解码(avc)或这种标准的扩展)进行操作。应当理解,本技术不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常设想到了,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行编码。类似地,通常还设想到了,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行解码。
34.视频编码器20和视频解码器30各自可以实施为各种适合的编码器电路中的任何一种,如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分地在软件中实施时,电子设备可以将用于软件的指令存储在合适的非暂态计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以执行本公开中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以包括在一个或多个编码器或解码器中,一个或多个编码器或解码器中的任一个可以集成为相应设备中的组合编码器/解码器(codec)的一部分。
35.图2是图示了根据本技术中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测来减少或去除给定视频帧或图像内的视频数据的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的相邻视频帧或图像内的视频数据的时间冗余。
36.如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图像缓冲区(dpb)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、划分单元45、帧内预测处理单元46和帧内块复制(bc)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、反变换处理单元60和加法器62。去块滤波器(未示出)可以位于加法器62与dpb 64之间,以对块边界进行滤波,以从重建的视频中去除块效应伪像。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可以采用固定或可编程硬件单元的形式,或可以在所图示的固定或可编程硬件单元中的一个或多个中进行划分。
37.视频数据存储器40可以存储待由视频编码器20的部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。dpb 64是存储参考视频数据以用于由视频编码器20对视频数据进行编码(例如,在帧内预测编码模式或帧间预测编码模式下)的缓冲区。视频数据存储器40和dpb 64可以由多种存储器设备中的任何一种形成。在各个示例中,视频数据存储器40可以与视频编码器20的其他部件一起在片上,或者相对于那些部件
在片外。
38.如图2所示,在接收到视频数据之后,预测处理单元41内的划分单元45将视频数据划分为视频块。该划分还可以包括根据预定义的分割结构(如与视频数据相关联的四叉树结构)将视频帧划分为条带、图块、或其他更大的编码单元(cu)。视频帧可以被划分成多个视频块(或称为图块的视频块集)。预测处理单元41可以基于误差结果(例如,编码率和失真级别)为当前视频块选择多个可能的预测编码模式之一,如多个帧内预测编码模式之一或多个帧间预测编码模式之一。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以随后用作参考帧的一部分。预测处理单元41还将如运动矢量、帧内模式指示符、划分信息和其他这种语法信息等语法元素提供给熵编码单元56。
39.为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于与待编码的当前块相同的帧中的一个或多个相邻块执行对当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,以便为视频数据的每个块选择适当的编码模式。
40.在一些实施方式中,运动估计单元42根据视频帧序列内的预定模式通过生成运动矢量来确定当前视频帧的帧间预测模式,该运动矢量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,该过程估计了视频块的运动。运动矢量例如可以指示当前视频帧或图像内的视频块的pu相对于参考帧内的预测块(或其他编码单元)的位移,该预测块相对于在当前帧内编码的当前块(或其他编码单元)。预定模式可以将序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以与由运动估计单元42确定运动矢量以进行帧间预测的方式类似的方式确定用于进行帧内bc编码的矢量,例如,块矢量,或者可以利用运动估计单元42来确定块矢量。
41.预测块是在像素差方面被认为与待编码的视频块的pu紧密匹配的参考帧的块,该像素差可以由绝对差和(sad)、平方差和(ssd)或其他差值度量来确定。在一些实施方式中,视频编码器20可以计算存储在dpb 64中的参考帧的子整数像素位置的值。例如,视频编码器20可以插入参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且以分数像素精度输出运动矢量。
42.运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中的视频块的pu的运动矢量,该列表中的每一个标识存储在dpb 64中的一个或多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,并且然后发送到熵编码单元56。
43.由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量获取或生成预测块。在接收当前视频块的pu的运动矢量后,运动补偿单元44可以在参考帧列表中的一个中定位运动矢量所指向的预测块,从dpb 64取得预测块并且将预测块转发到加法器50。然后,加法器50通过从已编码的当前视频块的像素值中减去由运动补偿单
元44提供的预测块的像素值来形成具有像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于标识预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。注意,运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而分别图示。
44.在一些实施方式中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式来生成矢量并且获取预测块,但是其中预测块与已编码的当前块处于同一帧中,并且其中相对于运动矢量,该矢量被称为块矢量。具体地,帧内bc单元48可以确定帧内预测模式以用于对当前块进行编码。在一些示例中,帧内bc单元48可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内bc单元48可以在各种测试的帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为要使用的适当的帧内预测模式。率失真分析通常确定已编码块与原始的未编码块(已编码以产生已编码块)之间的失真(或误差)量以及用于产生已编码块的比特率(即,比特数)。帧内bc单元48可以根据各个编码块的失真和速率来计算比值,以确定哪个帧内预测模式展现出块的最佳率失真值。
45.在其他示例中,帧内bc单元48可以全部或部分地使用运动估计单元42和运动补偿单元44,以根据本文描述的实施方式执行用于帧内bc预测的这种功能。在任一种情况下,对于帧内块复制,预测块可以是就像素差而言被视为与待编码的块紧密匹配的块,像素差可以由绝对差和(sad)、平方差和(ssd)或其他差度量确定,并且预测块的识别可以包括计算子整数像素位置的值。
46.无论预测块是根据帧内预测来自同一帧还是根据帧间预测来自不同帧,视频编码器20都可以通过从已编码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而形成像素差值。形成残差视频块的像素差值可以包括亮度分量差和色度分量差。
47.如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测,或者由帧内bc单元48执行的帧内块复制预测的替代方案。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中为模式选择单元)可以从测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可以将指示块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示比特流中的所选帧内预测模式的信息进行编码。
48.在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个变换单元(tu)中,并且被提供给变换处理单元52。变换处理单元52使用如离散余弦变换(dct)或概念上类似的变换等变换将残差视频数据变换为残差变换系数。
49.变换处理单元52可以将所得的变换系数发送到量化单元54。量化单元54对变换系
数进行量化以进一步降低比特率。量化过程还可以减小与系数中的一些或所有系数相关联的比特深度。量化程度可以通过调整量化参数来修改。在一些示例中,量化单元54然后可以执行对包括量化的变换系数的矩阵的扫描。替代性地,熵编码单元56可以执行扫描。
50.量化之后,熵编码单元56使用例如上下文自适应可变长度编解码(cavlc)、上下文自适应二进制算术编解码(cabac)、基于语法的上下文自适应二进制算术编解码(sbac)、概率区间划分熵(pipe)编解码或其他熵编码方法或技术将量化的变换系数熵编码为视频比特流。然后可以将已编码比特流传输到视频解码器30,或将其存档在存储设备32中,以供以后传输到视频解码器30或由该视频解码器取得。熵编码单元56还可以对已编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
51.反量化单元58和反变换处理单元60分别应用反量化和反变换以在像素域中重建残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可以从dpb 64中存储的帧的一个或多个参考块中生成运动补偿的预测块。运动补偿单元44还可以将一个或多个内插滤波器应用于预测块以计算用于运动估计中的子整数像素值。
52.加法器62将重建的残差块添加到由运动补偿单元44产生的运动补偿的预测块,以产生参考块用于存储在dpb 64中。参考块然后可以由帧内bc单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一个视频块进行帧间预测。
53.图3是图示了根据本技术的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、反变换处理单元88、加法器90和dpb 92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30可以执行通常与上文结合图2关于视频编码器20所描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收到的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收到的帧内预测模式指示符生成预测数据。
54.在一些示例中,可以给视频解码器30的单元分配任务以执行本技术的实施方式。同样,在一些示例中,本公开的实施方式可以在视频解码器30的一个或多个单元之间进行划分。例如,帧内bc单元85可以单独或与视频解码器30的其他单元(如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合执行本技术的实施方式。在一些示例中,视频解码器30可以不包括帧内bc单元85,并且帧内bc单元85的功能可以由预测处理单元81的其他部件(如运动补偿单元82)执行。
55.视频数据存储器79可以存储待由视频解码器30的其他部件解码的视频数据,如已编码视频比特流。例如,可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘)从存储设备32、本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自已编码视频比特流的已编码视频数据的编码图像缓冲区(cpb)。视频解码器30的解码图像缓冲区(dpb)92存储参考视频数据,以用于由视频解码器30对视频数据进行解码(例如,在帧内预测编码模式或帧间预测编码模式下)。视频数据存储器79和dpb 92可以由多种存储器设备中的任一种形成,如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和dpb 92在图3中被描绘为视频解码器30的两个不同的部件。但是对于本领域技术人员将显而易见的是,视频
数据存储器79和dpb92可以由相同的存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他部件一起在片上,或者相对于那些部件在片外。
56.在解码过程期间,视频解码器30接收表示已编码视频帧的视频块的已编码视频比特流和相关联的语法元素。视频解码器30可以在视频帧级别和/或视频块级别接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化的系数、运动矢量或帧内预测模式指示符和其他语法元素。熵解码单元80然后将运动矢量和其他语法元素转发到预测处理单元81。
57.当视频帧已编码为帧内预测编码(i)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可以基于信号传输的帧内预测模式和来自当前帧的先前解码块的参考数据来生成当前视频帧的视频块的预测数据。
58.当视频帧已编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动矢量和其他语法元素来产生当前视频帧的视频块的一个或多个预测块。每个预测块可以从参考帧列表之一内的参考帧产生。视频解码器30可以基于存储在dpb 92中的参考帧使用默认构造技术构造参考帧列表:列表0和列表1。
59.在一些示例中,当根据本文描述的帧内bc模式对视频块进行编解码时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收到的块矢量和其他语法元素,为当前视频块产生预测块。预测块可以处于与由视频编码器20定义的当前视频块相同的图像的重建的区域内。
60.运动补偿单元82和/或帧内bc单元85通过解析运动矢量和其他语法元素来确定当前视频帧的视频块的预测信息,并且然后使用预测信息来产生被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,b或p)、帧的参考帧列表中的一个或多个参考帧列表的构造信息、帧的每个帧间预测编码视频块的运动矢量、帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
61.类似地,帧内bc单元85可以使用接收到的语法元素中的一些(例如,标志)来确定当前视频块是使用以下各项预测的:帧内bc模式、关于帧的视频块处于重建的区域内并且应存储在dpb 92中的构造信息、帧的每个帧内bc预测视频块的块矢量、帧的每个帧内bc预测视频块的帧内bc预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
62.运动补偿单元82还可以如由视频编码器20在对视频块进行编码期间使用的那样使用内插滤波器来执行内插以计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以从接收到的语法元素确定由视频编码器20使用的内插滤波器并且使用内插滤波器来产生预测块。
63.反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供的并且由熵解码单元80进行熵解码的量化的变换系数进行反量化。反变换处理单元88将反变换(例如,反dct、反整数变换或概念上类似的反变换过程)应用于变换系数,以便在像素域中重建残差块。
64.在运动补偿单元82或帧内bc单元85基于矢量和其他语法元素生成当前视频块的
预测块之后,加法器90通过对来自反变换处理单元88的残差块以及由运动补偿单元82和帧内bc单元85生成的对应预测块求和来重建当前视频块的已解码视频块。环路滤波器(未示出)可以定位在加法器90与dpb 92之间,以进一步处理已解码视频块。然后将给定帧中的已解码视频块存储在dpb 92中,该dpb存储用于对接下来的视频块进行后续运动补偿的参考帧。dpb 92或与dpb 92分开的存储器设备还可以存储已解码视频以供稍后呈现在如图1的显示设备34等显示设备上。
65.在典型的视频编解码过程中,视频序列典型地包括帧或图像的有序集合。每个帧可以包括三个样本阵列,分别表示为sl、scb和scr。sl是亮度样本的二维阵列。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。在其他实例中,帧可以是单色的,并且因此仅包括亮度样本的一个二维阵列。
66.如图4a所示,视频编码器20(或更具体地,划分单元45)通过首先将帧划分为一组编码树单元(ctu)来生成帧的已编码表示。视频帧可以包括从左到右以及从上到下以光栅扫描顺序连续排序的整数个ctu。每个ctu是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传输ctu的宽度和高度,使得视频序列中的所有ctu具有相同的大小,即128
×
128、64
×
64、32
×
32和16
×
16中的一个。但是应当注意,本技术不必限于特定的大小。如图4b所示,每个ctu可以包括亮度样本的一个编码树块(ctb)、色度样本的两个对应的编码树块以及用于对编码树块的样本进行编码的语法元素。语法元素描述像素的编码块的不同类型的单元的属性以及如何可以在视频解码器30处重建视频序列,该语法元素包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图像或具有三个单独的色彩平面的图像中,ctu可以包括单个编码树块和用于对编码树块的样本进行编码的语法元素。编码树块可以是n
×
n样本块。
67.为了实现更好的性能,视频编码器20可以对ctu的编码树块递归地执行如二叉树划分、三叉树划分、四叉树划分或两者的组合等树划分,并且将ctu划分为较小的编码单元(cu)。如图4c描绘的,首先将64
×
64ctu 400划分为四个较小的cu,每个cu的块大小为32
×
32。在四个较小的cu中,cu 410和cu 420按块大小各自划分为四个16
×
16的cu。两个16
×
16cu 430和440按块大小各自进一步划分为四个8
×
8的cu。图4d描绘了图示了如图4c中所描绘的ctu 400的划分过程的最终结果的四叉树数据结构,四叉树的每个叶节点对应于相应大小在32
×
32至8
×
8范围内的一个cu。类似于图4b描绘的ctu,每个cu可以包括亮度样本的编解码块(cb)和相同大小的帧的色度样本的两个对应的编解码块,以及用于对编解码块的样本进行编解码的语法元素。在单色图像或具有三个单独的色彩平面的图像中,cu可以包括单个编解码块和用于对编解码块的样本进行编解码的语法结构。应当注意,图4c和图4d中描绘的四叉树划分仅用于说明目的,并且可以将一个ctu分割为多个cu以适应基于四叉树/三叉树/二叉树划分的不同的局部特性。在多类型树结构中,一个ctu被四叉树结构划分,并且每个四叉树叶cu可以进一步被二叉树结构或三叉树结构划分。如图4e所示,有五种划分类型,即,四元划分、水平二元划分、垂直二元划分、水平三元划分以及垂直三元划分。
68.在一些实施方式中,视频编码器20可以进一步将cu的编解码块划分为一个或多个m
×
n预测块(pb)。预测块是样本的应用相同预测(帧间或帧内)的矩形(正方形或非正方形)块。cu的预测单元(pu)可以包括亮度样本的预测块、色度样本的两个对应的预测块以及用于对预测块进行预测的语法元素。在单色图像或具有三个单独的色彩平面的图像中,pu可
以包括单个预测块和用于对预测块进行预测的语法结构。视频编码器20可以生成cu的每个pu的亮度、cb及cr预测块的预测亮度、cb及cr块。
69.视频编码器20可以使用帧内预测或帧间预测来生成pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可以基于与pu相关联的帧的已解码样本来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可以基于除与pu相关联的帧之外的一个或多个帧的已解码样本来生成pu的预测块。
70.在视频编码器20生成cu的一个或多个pu的预测亮度、cb和cr块之后,视频编码器20可以通过从其原始亮度编解码块中减去cu的预测亮度块来生成cu的亮度残差块,使得cu的亮度残差块中的每个样本指示cu的预测亮度块之一中的亮度样本与cu的原始亮度编解码块中的对应样本之间的差。类似地,视频编码器20可以分别生成cu的cb残差块和cr残差块,使得cu的cb残差块中的每个样本指示cu的预测cb块之一中的cb样本与cu的原始cb编解码块中的对应样本之间的差,并且cu的cr残差块中的每个样本可以指示cu的预测cr块之一中的cr样本与cu的原始cr编解码块中的对应样本之间的差。
71.此外,如图4c所图示的,视频编码器20可以使用四叉树划分来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是样本的应用相同变换的矩形(正方形或非正方形)块。cu的变换单元(tu)可以包括亮度样本的变换块、色度样本的两个对应的变换块以及用于对变换块样本进行变换的语法元素。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cr变换块可以是cu的cr残差块的子块。在单色图像或具有三个单独的色彩平面的图像中,tu可以包括单个变换块和用于对变换块的样本进行变换的语法结构。
72.视频编码器20可以将一个或多个变换应用于tu的亮度变换块以生成tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于tu的cb变换块以生成tu的cb系数块。视频编码器20可以将一个或多个变换应用于tu的cr变换块以生成tu的cr系数块。
73.在生成系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指将变换系数量化以可能地减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行上下文自适应二进制算术编解码(cabac)。最终,视频编码器20可以输出包括形成编码帧和相关联数据的表示的比特序列的比特流,比特流被保存在存储设备32中或被传输到目的地设备14。
74.在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析该比特流以从该比特流中获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来重建视频数据的帧。重建视频数据的过程通常与由视频编码器20执行的编码过程是相反的。例如,视频解码器30可以对与当前cu的tu相关联的系数块执行反变换以重建与当前cu的tu相关联的残差块。视频解码器30还通过将当前cu的pu的预测块的样本添加到当前cu的tu的变换块的对应样本来重建当前cu的编解码块。在重建帧的每个cu的编解码块之后,视频解码器30可以重建帧。
75.在一些实施例中,存在用信号发送预测模式的不同方式。在vvc中,每个cu可以被编码为跳过模式或非跳过模式。对于编码为非跳过模式的cu,进一步用信号发送语法元素以指示当前cu被编码为帧内模式、帧间模式、帧内块复制(ibc)模式还是调色板(plt)模式。这些模式在vvc规范中分别被称为“mode_intra”、“mode_inter”、“mode_ibc”和“mode_plt”。对于编码为帧间模式的cu,预测信号可以由来自不是当前图像的参考图像的像素生成。此外,针对编码为帧间模式的cu进一步用信号发送一个标志以指示当前cu是否是合并模式。对于合并模式编码的cu,使用附加语法元素进一步用信号发送若干不同类型的合并模式。这些不同类型的合并模式包括常规合并模式、子块合并模式、具有mv差的合并模式(mmvd)、组合帧间和帧内预测(ciip)以及三角形合并模式。以下部分说明了那里合并模式。
76.在一些实施例中,在vvc中,通过依次包括以下五种类型的候选来构建合并候选列表:来自空间相邻cu的空间mvp(即运动矢量预测值)、来自同位置cu的时间mvp、来自fifo表的基于历史的mvp、成对平均mvp和零mv。
77.在条带头中用信号发送合并列表的尺寸,并且在vvc中合并列表的最大允许尺寸为6。对于合并模式下的每个cu编解码,使用截断的一元二值化(tu)对最佳合并候选的索引进行编码。合并索引的第一二进制位利用上下文进行编解码,并且其他二进制位使用旁路编解码。在本公开的以下上下文中,该扩展的合并模式也被称为常规合并模式,因为其概念与hevc中使用的合并模式相同。
78.在一些实施例中,除了从其空间/时间邻居得到一个当前块的运动信息的合并模式之外,mmvd/umve模式在vvc和avs标准中被引入作为一种特殊合并模式。具体地,在vvc和avs3中,该模式在编解码块级别由一个mmvd标志用信号发送。在mmvd模式下,常规合并模式的合并列表中的前两个候选被选择为mmvd的两个基本合并候选。在选择并用信号发送一个基本合并候选之后,用信号发送附加语法元素以指示添加到所选合并候选的运动的运动矢量差(mvd)。mmvd语法元素包括用于选择基本合并候选的合并候选标志、用于指定mvd幅值的距离索引和用于指示mvd方向的方向索引。
79.在mmvd设计中,距离索引指定mvd幅值,该幅值是基于一组预定义的起点偏移量定义的。图5a和图5b是图示了根据本公开的一些实施方式的添加到起始运动矢量(mv)(即,所选基本合并候选的mv)的水平或垂直分量的示例性偏移量的框图。图示了参考图像列表l0和参考图像列表l1。
80.表1图示了应用的距离索引和预定义mvd偏移量的关系。
[0081][0082]
表1:距离索引与预定义mvd偏移量的关系
[0083]
方向索引表示mvd相对于起点的方向。方向索引可以表示如表2所示的这四个方向。应当注意,mvd符号的含义可以根据起始mv的信息而变化。当起始mv是单向预测mv或双向预测mv且该双向预测mv的两个列表都指向当前图像的同一侧时(即两个参考的图像顺序计数(poc)都大于当前图像的poc,或都小于当前图像的poc),表2中的符号指定添加到起始mv的mv偏移量的符号。当起始mv是双向预测mv且两个mv指向当前图像的不同侧时(即一个
参考的图像顺序计数(poc)大于当前图像的poc并且另一个参考的poc小于当前图像的poc),表2中的符号指定添加到起始mv的列表0(l0参考)mv分量的mvd的符号,并且列表1(l1参考)mvd的符号具有相反值。
[0084]
方向idx00011011x轴 -n/an/ay轴n/an/a -[0085]
表2:由方向索引指定的mvd的符号
[0086]
在一些实施例中,为了增加常规合并模式的mv的准确性,应用基于双边匹配的解码器端运动矢量改良(dmvr)。在双向预测操作中,在参考图像列表l0和参考图像列表l1中的初始mv周围搜索改良的mv。该方法计算参考图像列表l0和列表l1中的两个候选块之间的失真。图6是图示了根据本公开的一些实施方式的示例性解码器端运动矢量改良(dmvr)的框图。如图6中图示的,基于初始mv周围的每个mv候选计算块602与块604之间的sad。具有最低sad的mv候选成为改良的mv,并且用于生成双向预测信号。
[0087]
在dvmr中,搜索点是由初始mv和被认为符合镜像规则的mv偏移量所指向的周围整数样本。换句话说,由dmvr检查的任何mv改良都应满足以下两个方程:
[0088]
mv0

=mv0 mv_offset
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0089]
mv1

=mv1-mv_offset
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0090]
其中,mv_offset表示参考图像之一中初始mv与改良的mv之间的改良偏移量。改良搜索范围是自初始mv开始的两个整数亮度样本。搜索包括整数样本搜索阶段和分数样本改良阶段。
[0091]
在一些实施例中,在整数样本搜索阶段,检查如图7所指示的21个整数样本位置(包括与初始mv相对应的整数样本位置)的sad。图7是图示了根据本公开的一些实施方式的用于dmvr模式的一些示例性整数搜索候选的框图。在图7中,黑色中心三角形是与初始mv相关联的整数样本位置,并且白色三角形是相邻整数样本位置。首先计算初始mv对的sad。选择最小化sad值的整数偏移量作为在整数样本搜索阶段的整数样本偏移量。
[0092]
整数样本搜索之后是分数样本改良。为了降低计算复杂度,分数样本改良是通过使用参数误差表面方法而不是使用sad比较进行附加搜索而得到的。在基于参数误差表面的子像素偏移量估计中,中心位置成本和该中心的四个相邻位置的成本用于拟合如下的2-d抛物线误差表面方程:
[0093]
e(x,y)=a(x-x
min
)2 b(y-y
min
)2 c
ꢀꢀꢀꢀ
(3)
[0094]
其中,(x
min
,y
min
)与具有最低成本的分数位置相对应,并且c与最小成本值相对应。通过使用五个搜索点的成本值求解上述方程,(x
min
,y
min
)计算为:
[0095]
x
min
=(e(-1,0)-e(1,0))/(2(e(-1,0) e(1,0)-2e(0,0)))
ꢀꢀꢀ
(4)
[0096]ymin
=(e(0,-1)-e(0,1))/(2((e(0,-1) e(0,1)-2e(0,0)))
ꢀꢀꢀ
(5)
[0097]
由于所有成本值都是正的并且最小值为e(0,0),x
min
和y
min
的值被自动限制在-8与8之间。计算出的分数(x
min
,y
min
)被添加到整数距离改良mv以获得子像素精度改良δmv。
[0098]
在一些实施例中,为了进一步提高预测效率,应用了将一个cu的帧内预测和该cu的基于合并模式的帧间预测组合的帧间预测滤波(interpf)。具体地,对于每个合并cu,用信号发送一个附加标志以指示是否针对当前cu启用interpf模式。当该标志为假时,
interpf被禁用,并且应用常规帧间预测来生成当前cu的预测样本。当第一标志为真时,interpf被应用到当前cu并且用信号发送另一个标志以进一步指示使用两种interpf模式中的哪一种。两种interpf模式描述如下:
[0099]
interpf模式一:根据帧间预测样本和来自左、右、上、下的五个相邻的重建样本的加权平均来得到组合的预测样本,,如以下方程组(6)所示:
[0100]
pred(x,y)=(pred_inter(x,y)*5 pred_q(x,y)*3)>>3
[0101]
pred_q(x,y)=(pred_v(x,y) pred_h(x,y) 1)>>2
[0102]
pred_v(x,y)=((h-1-y)*rec(x,-1) (y 1)*rec(-1,h) (h>>1))>>log2(h)
[0103]
pred_h(x,y)=((w-1-x)*rec(-1,y) (x 1)*rec(w,-1) (w>>1))>>log2(w)
[0104]
interpf模式二:根据帧间预测样本和来自左和上的三个相邻的重建样本的加权平均来得到组合的预测样本:
[0105]
p

(x,y)=f(x)
·
p(-1,y) f(y)
·
p(x,-1) (1-f(x)-f(y))
·
p(x,y)
ꢀꢀꢀꢀ
(7)
[0106]
在(7)中,权重参数f(x)和f(y)被预定义为一个查找表(lut),该查找表是基于当前cu的大小和帧内预测方向而确定的。另外地,根据现有的avs3设计,在由mmvd模式编解码当前cu时,interpf模式始终被禁用。
[0107]
尽管mmvd模式可以高效地提高帧间预测的效率,但其设计的若干方面仍然可以进一步改进。具体地,发现了avs3标准中当前mmvd设计中的以下问题。
[0108]
如前所述,在mmvd设计中,可以为一个mmvd cu选择的允许的mvd偏移量集合是固定的,该偏移量集合包括如表1中图示的1/4-pel(像素/图像元素)、1/2-pel、1-pel、2-pel和4-pel。对于具有不同特性的视频内容,这种设计可能并不总是最佳的。例如,与较低分辨率的视频序列(像vga和wqvga)相比,具有更高分辨率的视频序列倾向于具有更大的mv用于帧间cu。相应地,对于具有相对较大运动的视频序列,在mmvd模式下,大mvd偏移量相比于小mvd偏移量更常被选择。因此,为了最大化mmvd模式的编解码收益,根据已编解码视频的具体特性自适应地调整允许的mvd偏移量值更为有益。
[0109]
在avs3中,dmvr模式仅适用于通过常规合并模式编解码的cu。对于mmvd cu,dmvr始终被禁用。然而,鉴于mmvd模式只是具有用信号发送的mvd的常规合并模式的扩展,将dmvr应用于以mmvd模式编解码的帧间cu也可以是有益的。这种组合可以在不增加实际硬件编解码器设计复杂度的情况下,进一步提高mmvd模式的帧间预测效率。
[0110]
如以上所讨论的,在由mmvd模式编解码一个当前cu时,interpf模式始终被禁用。然而,类似于常规合并模式,在mmvd模式中得到的mv可能不如在非合并模式中得到的mv准确(在非合并模式中,一个帧间cu的mv在比特流中直接用信号发送)。在这种情况下,一个mmvdcu的帧间预测样本与来自其相邻重建样本的帧内预测样本的组合可以潜在地提高预测准确度并且提高编解码效率。基于这种分析,允许interpf模式和mmvd模式的组合将是有益的。
[0111]
在一些实施例中,实施了方法和系统以进一步改进如本文所公开的mmvd模式的编解码效率。具体地,实施的方法的主要方面总结如下。
[0112]
信号发送方法用于支持在各种编解码级别对mmvd模式所允许的mvd偏移量的适配。另外,一种编码器端方法用于自适应地确定应用于mmvd模式的最佳mvd偏移量。
[0113]
在dmvr过程中使用了方法来进一步改良mmvd模式的mv。
[0114]
实施了方法以使得mmvd模式能够与interpf模式组合。
[0115]
在一些实施例中,实施了针对mmvd模式的mvd偏移量值的适配方法。
[0116]
在一些mmvd设计中,允许的mvd偏移量值固定为1/4-pel、1/2-pel、1-pel、2-pel和4-pel。这种设计对于具有高分辨率或剧烈运动的视频内容来说是次优的。在这些情况下,mv往往大得多,使得在mmvd模式中定义的上述mvd偏移量值对于捕获那些块的真实运动来说可能不是最佳的。为了进一步提高mmvd模式的编解码性能,支持允许由mmvd模式进行选择的mvd偏移量的适配。
[0117]
根据一些实施例,可以为mmvd模式预定义一定数量的mvd偏移量值集合,并且允许所选择的mvd偏移量集合基于视频内容中变化的运动特性而随时间变化。作为本公开的一个示例,表3示出了用于熵编解码的两个预定义mvd偏移量集合及其对应的二值化码字。
[0118][0119]
表3:用于mmvd模式的mvd偏移量集合。
[0120]
如可以从表3所看到的,第二mvd偏移量集合是第一集合的一个超集,并且引入了三个附加mvd偏移量。附加mvd偏移量是8-pel、16-pel和32-pel。新添加的mvd偏移量使第二集合更适合于对具有较大运动的视频块进行编解码。此外,在表3中,为每个集合指定不同的二值化码字,以适应mvd偏移量值使用情况的不同概率分布。例如,用于第一集合的二值化为小mvd偏移量分配较短码字,这使得第一集合更高效地对具有被经常选择的小mvd偏移量的mmvd cu的图像/区域进行编解码。同样地,第二mvd偏移量集合对于具有经常被选择的
中等mvd偏移量值的mmvd cu的图像/区域进行的编解码更为有效。
[0121]
在以上示例中,仅允许为mmvd模式选择两个mvd偏移量集合。然而,在实践中,可以根据不同视频序列的具体运动特性,通过本文公开的方法离线得到多个mvd偏移量集合(即,多于两个集合)以及对应的码字。编码器可以选择最佳mvd偏移量集合并且将所选集合的对应索引用信号发送给解码器。
[0122]
根据一些实施例,通过用信号发送一个集合标识符(或id)来启用对预定义的mvd偏移量集合的自适应选择,以指示选择哪一个集合。可以在不同的编解码级别(例如,序列级别、图像级别和/或条带级别)同时在信号发送级别下(例如,在编解码块组级别和/或编解码块级别)用信号发送id。mmvd模式仅可以选择已标识集合中的mvd偏移量。假设允许的mvd偏移量的适配是在图像级别执行的,表4示出了一个示例性语法表,其中在图像头处用信号发送语法元素。
[0123][0124]
表4:带有mmvd偏移量控制标志的经修改的语法表
[0125]
mmvd_dist_set_id指定允许为当前图像中以mmvd模式编解码的编解码块选择的mvd偏移量集合。对于表3中示出的示例,其中,预定义了两个集合,mmvd_dist_set_id成为标志。当标志取一个值,例如0时,其指示mmvd模式允许的mvd偏移量包括1/4-pel、1/2-pel、1-pel、2-pel和4-pel。当标志取相反值,例如1时,其指示mmvd模式允许的mvd偏移量包括1/4-pel、1/2-pel、1-pel、2-pel、4-pel、8-pel、16-pel和32-pel。
[0126]
在表4中,变量mmvdenableflag是一个控制标志,用于指示是否对视频序列中的编解码块启用了mmvd工具。该变量可以通过序列级别的控制标志来控制,例如,在序列参数集合中。
[0127]
在另一个实施例中,不是使用固定的mvd偏移量,而是直接在比特流中用信号发送mvd偏移量值。这使编码器在运行中确定当前图像/条带的所需mvd偏移量值方面具有更大的自由度。
[0128]
在又另一个实施例中,mvd偏移量值集合的选择是基于特定统计在运行中确定的,而没有明确地用信号发送mmvd_dist_set_id。这种特定统计可以包括但不限于基于先前编解码的图像、条带和/或编解码块的计算的mvd偏移量值使用的概率分布。可以在各种频率级别重新确定和/或更新对mvd偏移量值集合的选择。例如,每次在mmvd模式下对cu进行编解码时,可以重新确定和/或更新选择。在另一个示例中,每当有多个cu(例如,8个或16个)以mmvd模式进行编解码时,可以重新确定和/或更新选择。在另一个示例中,在以帧间模式编解码的多个cu(例如,8个或16个)之后,可以更新一次对允许的mvd偏移量集合的选择。在
这种情况下,可以计算帧间块的平均/最大/最小mv,并且将其用于确定应该为以mmvd模式编解码的之后的编解码块选择哪个mvd偏移量集合。根据这种方法,集合选择的重置操作可以在某个点执行,例如,在当前帧编解码的开始,在当前gop(即图像组)编解码的开始,或当支持随机访问功能的帧,例如idr帧(idr帧指定idr帧之后的任何帧都不能引用其之前的任何帧)被编解码时等,其中,始终选择默认的mvd偏移量值集合。
[0129]
在一些实施例中,实施了用于针对mmvd模式选择最佳mvd偏移量的编码器逻辑。在以上讨论的mmvd方法中,允许由mmvd模式选择多个mvd偏移量集合。在一些示例中,提供了一种用于自适应地选择编码器端的最佳mvd偏移量集合的方法。具体地,考虑到同一视频序列中的图像之间的强内容特性相关性,由一个帧间图像选择的mvd偏移量可能与其先前编解码的相邻图像的mvd偏移量非常类似。基于这种考虑,先前编解码图像的mmvd cu的平均mvd偏移量被用于确定当前图像中针对mmvd模式的mvd偏移量集合。假设将表3中例示的两个mvd偏移量集合应用于mmvd模式,并且有m(m为正整数)个cu在先前图像中由mmvd模式编解码并且mvd偏移量值为v0、v1、
……
、v
m-1
,先前图像中mmvd模式的平均mvd偏移量计算如下:
[0130][0131]
基于(8),当前图像使用的mvd偏移量集合的索引被确定为:
[0132][0133]
在一些实施例中,为mmvd模式启用dmvr模式。在一些mmvd设计中,dmvr往往不一起应用。然而,因为mmvd模式是一种具有附加地用信号发送的mvd偏移量的扩展合并模式,所以允许mmvd之上的dmvr可以进一步提高由mmvd模式得到的mv的精度。另外地,两种编解码工具的组合不会导致硬件/软件的附加的编解码器实施复杂度。基于这种考虑,实施以下两种方法/实施例使得能够对mmvd模式应用dmvr过程。
[0134]
在第一实施例中,只要mmvd模式得到的初始mv是双向的并且满足触发dmvr过程的公共条件,就应用dmvr来改良mmvd模式得到的所有mv。
[0135]
在第二实施例中,仅当用信号发送的mmvd偏移量大于一个阈值时,dmvr应用于mmvd cu。当对应的mmvd偏移量等于或小于该阈值时,总是绕过dmvr。在实践中,为了最大化编解码性能,可以根据编解码视频的具体特性应用不同的阈值。在一个示例中,使用固定阈值(例如,1-pel)。在另一个实施例中,编码器自适应地确定最佳阈值并且在各种编解码级别(例如,序列级别、图像级别、条带级别和/或编解码块级别等)向解码器发送信号。
[0136]
在实践中,以上讨论的第二实施例可以提供比第一实施例更好的编解码性能。基于现有dmvr设计,其搜索范围是自初始mv开始的 /-2-pel。但是,如之前示出的,mmvd模式使用的允许的mvd偏移量也可以覆盖这种搜索范围,并且mmvd中mvd偏移量的选择基于编码器端更准确和可靠的率失真优化(rdo)而不是dmvr中的解码器端双向匹配搜索。因此,在初始mv周围的小局部区域内,mmvd用信号发送的mvd偏移量应该比dmvr的mvd偏移量更准确。在这种情况下禁止dmvr可以减少信号发送开销并且提高编解码效率。
[0137]
在一些实施例中,针对mmvd模式启用了interpf。如上所述,interpf模式不允许其帧间预测样本来自mmvd模式。然而,与常规合并模式类似,由mmvd模式得到的mv可能不准确。例如,当这种情况发生时,当前块的帧间预测样本与其相邻重建样本之间可能存在不期
望的不连续性,这可能导致沿相邻块边界的可见块伪像。在这种情况下,一个mmvd cu的帧间预测样本与来自其相邻重建样本的帧内预测样本的组合可以潜在地减少这种伪像并且提高预测效率。同时,在启用两种编解码工具的组合时,硬件/软件编解码器实施的复杂度没有增加。基于这种考虑,在一个实施例中,针对mmvd cu启用interpf模式,即,启用一个mmvd cu的帧间预测样本与来自cu的相邻重建样本的帧内预测样本的组合。具体地,以interpf设计为例(如方程(6)和(7)所示),当这种组合被启用时,在解码器处将接收用于指示mmvd模式是否应用于一个编码单元的一个第一控制标志。在针对编码单元启用mmvd的情况下,在解码器处将接收用于进一步指定interpf模式是否进一步应用于mmvd编码单元的一个第二控制标志。如果第二控制标志为1/被启用,则将用信号发送第三控制标志用于为cu选择两个interpf滤波之一(如方程(6)和(7)所示)。
[0138]
图8是图示了根据本公开的一些实施方式的当启用具有运动矢量差的合并模式(mmvd)时从多个运动矢量差(mvd)偏移量集合中确定mvd偏移量的示例性过程800的流程图。
[0139]
视频解码器30从比特流接收第一控制标志,其中,第一控制标志指示是否针对视频序列中的一个或多个编码单元启用具有运动矢量差的合并模式(mmvd)(810)。在一些实施例中,当针对视频序列中的一个或多个编码单元启用mmvd时,第一控制标志等于1。
[0140]
根据从第一控制标志确定mmvd被启用,视频解码器30从视频数据接收第一语法元素,其中,第一语法元素标识多个运动矢量差(mvd)偏移量集合中的一个mvd偏移量集合(820)。
[0141]
视频解码器30从比特流接收视频数据的第二控制标志,第二控制标志与一个或多个编码单元中的相应编码单元相对应,第二控制标志指示mmvd是否应用于相应编码单元(830)。在一些实施例中,当mmvd应用于相应编码单元时,第二控制标志等于1。
[0142]
根据从第二控制标志确定mmvd应用于相应编码单元,视频解码器30接收相应编码单元的第二语法元素和相应编码单元的第三语法元素,第二语法元素从所标识的mvd偏移量集合中选择mvd偏移量,第三语法元素选择与所选择的mvd偏移量相对应的mvd方向(840)。
[0143]
视频解码器30基于所选择的mvd偏移量和所选择的mvd方向来形成mvd(850)。
[0144]
视频解码器30通过应用所形成的mvd生成相应编码单元的运动矢量,来重建相应编码单元(860)。
[0145]
在一些实施例中,多个mvd偏移量集合包括第一mvd偏移量集合和第二mvd偏移量集合。
[0146]
在一些实施例中,第一mvd偏移量集合是第二mvd偏移量集合的子集。
[0147]
在一些实施例中,为第一mvd偏移量集合指定第一二值化码字集合,并且为第二mvd偏移量集合指定第二二值化码字集合。在一些实施例中,对于一个相同的偏移量值,第一二值化码字集合与第二二值化码字集合不同,以适应mvd偏移量值使用情况的不同概率分布。
[0148]
在一些实施例中,第一mvd偏移量集合包括以样本为单位的偏移量值1/4、1/2、1、2、4,并且第二mvd偏移量集合包括以样本为单位的偏移量值1/4、1/2、1、2、4、8、16和32。
[0149]
在一些实施例中,第一mvd偏移量集合包括以样本为单位的偏移量值1/4、1/2、1、
2、4以及分别对应于偏移量值1/4、1/2、1、2、4的二值化码字1、01、001、0001和0000,并且第二mvd偏移量集合包括以样本为单位的偏移量值1/4、1/2、1、2、4、8、16和32以及分别对应于偏移量值1/4、1/2、1、2、4、8、16和32的二值化码字000、001、011、010、10、110、1110和1111。
[0150]
在一些实施例中,第一语法元素在不同的编解码级别中的一个或多个编解码级别用信号发送,不同的编解码级别包括序列级别、图像级别和条带级别。
[0151]
在另一个方面,结合interpf模式和mmvd模式的过程公开如下。
[0152]
视频解码器30从比特流接收第一控制标志,其中,第一控制标志指示是否针对一个或多个编码单元启用具有运动矢量差的合并模式(mmvd)。在一些实施例中,当针对视频序列中的一个或多个编码单元启用mmvd时,第一控制标志等于1。
[0153]
根据从第一控制标志确定mmvd被启用,视频解码器30从比特流接收视频数据的第二控制标志,第二控制标志与一个或多个编码单元中的相应编码单元相对应,第二控制标志指示mmvd是否应用于相应编码单元。在一些实施例中,当mmvd应用于相应编码单元时,第二控制标志等于1。
[0154]
根据从第二控制标志确定mmvd应用于相应编码单元,视频解码器30从视频数据接收第三控制标志,其中,第三控制标志指示是否针对相应编码单元启用帧间预测滤波(interpf)模式。在一些实施例中,当针对相应编码单元启用interpf模式时,第三控制标志等于1。
[0155]
根据从第三控制标志确定针对相应编码单元启用interpf模式,视频解码器30从视频数据接收第四语法元素,其中,第四语法元素标识相应编码单元的多个interpf模式中的一个interpf模式。
[0156]
视频解码器30通过将mmvd和所标识的interpf模式应用于与相应编码单元相对应的视频数据来接收重建相应编码单元。
[0157]
在一些实施例中,多个interpf模式包括至少两个interpf模式。
[0158]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果在软件中实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括与如数据存储介质等有形介质相对应的计算机可读存储介质或包括有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以与(1)非暂态的有形计算机可读存储介质或者(2)如信号或载波等通信介质相对应。数据存储介质可以是可以被一个或多个计算机或者一个或多个处理器访问以取得用于实施本技术中描述的实施方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0159]
在对本文中实施方式的描述中使用的术语仅出于描述特定实施方式的目的,并且不旨在限制权利要求的范围。如对实施方式的描述和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还将理解的是,本文所使用的术语“和/或”是指并涵盖相关联列举项目中的一个或多个项目的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、元件和/或部件的存在,但不排除一个或多个其他特征、元件、部件和/或其组的存在或添加。
[0160]
还应理解,尽管术语第一、第二等在本文中可以用来描述各种要素,但是这些要素不应该受这些术语的限制。这些术语仅仅是用来将一个元件与另一个元件进行区分。例如,在不偏离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但是第一电极和第二电极不是同一电极。
[0161]
在整个说明书中,以单数或复数形式对“一个示例”、“示例”、“示例性示例”等的引用意味着结合示例描述的一个或多个特定特征、结构、或特性被包括在本公开的至少一个示例中。因此,在整个该说明书中的各个地方以单数或复数形式出现的短语“在一个示例中”或“在示例中”、“在示例性示例中”等不一定都是指同一个示例。此外,一个或多个示例中的特定的特征、结构、或特性可以包括以任何合适的方式进行组合。
[0162]
已经出于说明和描述的目的呈现了对本技术的描述,并且描述不旨在是穷举的,或以所公开的形式限于本发明。受益于前述描述和相关联附图中呈现的教导,许多修改、变体和替代性实施方式对于本领域普通技术人员将是显而易见的。选择并描述实施例以便最好地解释本发明的原理、实际应用,并且使本领域其他技术人员能够理解本发明的各种实施方式并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,权利要求的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献