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

基于空间邻域的仿射运动导出的制作方法

2022-11-14 03:24:21 来源:中国专利 TAG:
基于空间邻域的仿射运动导出
1.相关申请本技术要求2020年3月20日提交的题为“spatial neighbour based affine motion derivation”的美国临时专利申请第62/992704号的优先权,其通过整体引用而被并入。
技术领域
2.本技术总体上涉及视频编解码和压缩,并且更具体地,涉及关于提高导出仿射运动模型的编解码效率的方法和装置。


背景技术:

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


技术实现要素:

8.本技术描述了涉及视频数据编码和解码的实施方案,并且更特别地,涉及关于基于来自空间邻近块的运动信息来提高导出仿射运动模型的编解码效率的方法和装置。
9.根据本技术的第一方面,一种编解码视频数据的方法包括:从视频数据的比特流中接收第一语法,第一语法指示针对当前编码块被启用的仿射运动模型;使用当前编码块的多个空间邻近块的运动矢量的梯度来估计仿射运动模型的参数;以及通过使用所估计的参数针对当前编码块构建仿射运动模型的运动矢量。
10.在一些实施例中,构建运动矢量进一步包括:将所估计的参数转换成控制点运动矢量(cpmv),并且将cpmv添加到当前仿射合并候选列表中。
11.在一些实施例中,构建运动矢量进一步包括:导出针对仿射模式的运动矢量预测值。
12.在一些实施例中,构建运动矢量进一步包括:基于相应控制点运动矢量(cpmv)的导出的运动矢量预测值,计算相应cpmv的运动矢量差(mvd)。
13.根据本技术的第二方面,一种电子装置包括一个或多个处理单元、存储器以及存储在存储器中的多个程序。当这些程序由一个或多个处理单元执行时,使得电子装置执行如上文所描述的编解码视频数据的方法。
14.根据本技术的第三方面,一种非暂时性计算机可读存储介质存储用于由电子装置执行的多个程序,电子装置具有一个或多个处理单元。当这些程序由一个或多个处理单元执行时,使得电子装置执行如上文所描述的编解码视频数据的方法。
附图说明
15.被包括以提供对实施方案的进一步理解并且被并入本文且构成本说明书的一部分的附图图示了所描述的实施方案,并且与描述一起用于解释基本原理。相似的附图标记指代对应的部分。
16.图1是图示根据本公开的一些实施方案的示例性视频编码和解码系统的框图。
17.图2是图示根据本公开的一些实施方案的示例性视频编码器的框图。
18.图3是图示根据本公开的一些实施方案的示例性视频解码器的框图。
19.图4a至图4e是图示根据本公开的一些实施方案的如何将帧递归地分割成不同尺寸和形状的多个视频块的框图。
20.图5a和图5b是图示根据本公开的一些实施方案的示例性的基于控制点的仿射运动模型的框图。
21.图6是图示根据本公开的一些实施方案的每个子块的示例性仿射运动矢量预测(amvp)的框图。
22.图7是图示根据本公开的一些实施方案的继承的仿射运动预测值的示例性位置的框图。
23.图8是图示根据本公开的一些实施方案的示例性控制点运动矢量继承的框图。
24.图9是图示根据本公开的一些实施方案的构建的仿射合并模式的候选位置的示例性位置的框图。
25.图10是图示根据本公开的一些实施方案的在运动参数导出中被使用的示例性邻近运动矢量的框图。
26.图11是图示根据本公开的一些实施方案的用于运动参数导出的示例性的减少的邻近运动矢量候选的框图。
27.图12是图示根据本公开的一些实施方案的待选择的可用空间子块的示例性子集的框图。
28.图13是图示根据本公开的一些实施方案,通过使用多个空间邻近块的运动矢量的梯度,基于来自多个空间邻近块的运动信息的联合考虑来导出仿射运动模型的示例性过程的流程图。
具体实施方式
29.现在将详细参考特定实施方案,其示例在附图中被图示。在以下详细描述中,阐述了众多非限制性的具体细节,以便辅助理解本文呈现的主题。但是对于本领域普通技术人员而言将显而易见的是,可以在不脱离权利要求的范围的情况下使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员而言将显而易见的是,本文呈现的主题可以在具有数字视频能力的许多类型的电子设备上实施。
30.第一代avs标准包括中国国家标准“information technology, advanced audio video coding, part 2: video(信息技术,高级音视频编解码,第2部分:视频)”(称为avs1)和“information technology, advanced audio video coding part 16: radio television video(信息技术,高级音视频编解码,第16部分:广播电视视频)”(称为avs )。与mpeg-2标准相比,它可以在相同的感知质量下提供大约50%的比特率节省。第二代avs标准包括中国国家标准“information technology, efficient multimedia coding(信息技术,高效多媒体编解码)”(称为avs2)系列,其主要针对超高清tv节目的传输。avs2的编解码效率是avs 的编解码效率的两倍。同时,avs2标准视频部分由电气与电子工程师协会(ieee)提交作为一个国际应用标准。avs3标准是用于uhd视频应用的一个新一代视频编解码标准,旨在超过最新的国际标准hevc的编解码效率,avs3标准比hevc标准提供大约30%的比特率节省。
31.在当前的vvc和avs3标准中,当前编码块的运动信息或者以合并模式候选的形式直接从空间邻近块中复制,或者基于运动估计和运动信息的显式信令。在本公开中,当前块的运动信息不是从空间邻近块中复制的,而是根据仿射运动模型计算的,仿射运动模型是
从邻近块的运动信息导出的。本文公开了关于如何基于空间邻近块的运动信息来导出和使用仿射运动模型的方法和系统。
32.图1是图示根据本公开的一些实施方案的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可以包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方案中,源设备12和目标设备14配备有无线通信能力。
33.在一些实施方案中,目标设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可以根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一个或更多个物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或诸如互联网的全球网)的一部分。通信介质可以包括路由器、交换机、基站或可以有利于促进从源设备12到目标设备14的通信的任何其他装置。
34.在一些其他实施方案中,可以将编码视频数据从输出接口22发送到存储设备32。随后,可以由目标设备14经由输入接口28访问存储设备32中的编码视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、数字通用盘(dvd)、压缩盘只读存储器(cd-rom)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备32可以对应于文件服务器或可以保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可以经由流传输或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、文件传输协议(ftp)服务器、网络附属存储(nas)设备或本地磁盘驱动器。目标设备14可以通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(wi-fi)连接)、有线连接(例如,数字订户线(dsl)、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
35.如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可以形成相机电话或视频电话。然而,本技术中所描述的实施方案通常可以适用于视频编解码,并且可以应用于无线和/或有线应用。
36.可以由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可以经由源设备12的输出接口22将编码视频数据直接发送到目标设备14。还可以(或备选地)将编码视频数据存储到存储设备32上以便稍后被目标设备14或其他设备访问,以用于解码和/或
回放。输出接口22可以进一步包括调制解调器和/或发送器。
37.目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可以被包括在通信介质上发送的、存储在存储介质上的或存储在文件服务器上的编码视频数据内。
38.在一些实施方案中,目标设备14可以包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34向用户显示解码视频数据,并且可以包括各种显示器设备中的任何显示器设备,诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示器设备。
39.视频编码器20和视频解码器30可以根据专有标准或行业标准(诸如,vvc、hevc、mpeg-4的第10部分、高级视频编解码(avc)、avs)或此类标准的扩展进行操作。应当理解,本技术不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常认为源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
40.视频编码器20和视频解码器30可以分别被实现为各种合适的编码器电路中的任何电路,诸如一个或更多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑器件、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或更多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合式编码器/解码器(codec)的一部分。
41.图2是图示根据本技术中描述的一些实施方案的示例性视频编码器20的框图。视频编码器20可以对视频帧内的视频块执行帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。
42.如图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可以采取固定或可编程硬件单元的形式,或者可以分散在所说明的固定或可编程硬件单元中的一个或更多个中。
43.视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。可以例如从视频源18获得视频数据存储器40中的视频数据。dpb 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频
数据存储器40和dpb 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
44.如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割成视频块。此分割还可以包括根据与视频数据相关联的预定义的拆分结构(诸如四叉树结构)将视频帧分割成条带、瓦片(tile)或其他更大的编码单元(cu)。视频帧可以被划分成多个视频块(或者称为瓦片的视频块集合)。预测处理单元41可以基于误差结果(例如,编码率和失真等级)为当前视频块选择多种可行预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(诸如运动矢量、帧内模式指示符、分割信息和其他此类语法信息)提供向熵编码单元56。
45.为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以和待编码的当前块在同一帧中的一个或更多个邻近块相关地执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码遍次,例如,以为视频数据的每个块选择合适的编码模式。
46.在一些实施方案中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,该运动矢量估计针对视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块的pu相对于与当前帧(或其他被编码的单元)内正被编码的当前块相关的参考帧(或其他被编码的单元)内的预测块的位移。预定模式可以将序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内bc编码的矢量(例如,块矢量),或可以利用运动估计单元42确定块矢量。
47.在像素差方面,预测块可以是被认为与待编码视频块的pu紧密匹配的参考帧的块,像素差可以由绝对差总和(sad)、平方差总和(ssd)或其他差度量确定。在一些实施方案中,视频编码器20可以计算用于dpb 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行内插。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
48.运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的pu的运动矢量:将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识dpb 64中存储的一个或更多个参考帧。运动估计单元42将计算出的运动矢量发送到运动补偿单元44,并然后发送到熵编码单元56。
49.由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动
矢量获取或生成预测块。在接收到针对当前视频块的pu的运动矢量之后,运动补偿单元44可以在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从dpb 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。应注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而单独说明。
50.在一些实施方案中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并获取预测块,但是这些预测块在与正被编码的当前块相同的帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内bc单元48可以确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内bc单元48可以在各种测试的帧内预测模式中选择合适的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内bc单元48可以使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以产生编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内bc单元48可以根据针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
51.在其他示例中,帧内bc单元48可以全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方案的用于帧内bc预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可以由绝对差总和(sad)、平方差总和(ssd)或其他差度量确定,并且对预测块的识别可以包括对针对子整数像素位置的值的计算。
52.无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
53.作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内bc单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可以对当前视频块进行帧内预测。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可以从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示选择的帧内预测模式的信息编码到比特流中。
54.在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以
被包括在一个或更多个变换单元(tu)中并且提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(dct)或概念上类似的变换)将残差视频数据变换为残差变换系数。
55.变换处理单元52可以将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可以减小与系数中的一些或全部相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以随后对包括量化的变换系数的矩阵执行扫描。备选地,熵编码单元56可以执行扫描。
56.在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语法的上下文自适应二进制算术编码(sbac)、概率区间分割熵(pipe)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,可以将编码的比特流发送到视频解码器30,或存档于存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
57.反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其他视频块的参考块。如上文指出的,运动补偿单元44可以从存储在dpb 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可以将一个或更多个内插滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
58.加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加来产生参考块以存储在dpb 64中。然后,参考块可以由帧内bc单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
59.图3是图示根据本技术的一些实施方案的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和dpb 92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30可以执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符来生成预测数据。
60.在一些示例中,视频解码器30的单元可以被分派任务以执行本技术的实施方案。此外,在一些示例中,本公开的实施方案可以分散在视频解码器30的单元中的一个或更多个单元中。例如,帧内bc单元85可以单独地或与视频解码器30的其他单元(诸如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地执行本技术的实施方案。在一些示例中,视频解码器30可以不包括帧内bc单元85,并且帧内bc单元85的功能可以由预测处理单元81的其他组件(诸如运动补偿单元82)执行。
61.视频数据存储器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和dpb 92可以由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他组件一起在芯片上,或相对于那些组件在芯片外。
62.在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可以在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其他语法元素。然后,熵解码单元80将运动矢量以及其他语法元素转发到预测处理单元81。
63.当视频帧被编码为帧内预测编码(i)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于用信号传送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
64.当视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可以从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可以基于存储在dpb 92中的参考帧使用默认构建技术来构建参考帧列表,即,列表0和列表1。
65.在一些示例中,当根据本文描述的帧内bc模式对视频块进行编码时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收的块矢量和其他语法元素产生针对当前视频块的预测块。预测块可以在由视频编码器20定义的与当前视频块相同的图片的重建区域内。
66.运动补偿单元82和/或帧内bc单元85通过解析运动矢量和其他语法元素来确定针对当前视频帧的视频块的预测信息,并然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,b或p)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
67.类似地,帧内bc单元85可以使用接收到的语法元素中的一些语法元素,例如标志,以确定当前视频块是使用帧内bc模式预测的、帧的哪些视频块在重建区域内且应被存储在dpb 92中的构建信息、用于帧的每个帧内bc预测视频块的块矢量、用于帧的每个帧内bc预测视频块的帧内bc预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
68.运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以根据接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些
内插滤波器来产生预测块。
69.反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算出的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
70.在运动补偿单元82或帧内bc单元85基于矢量和其他语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内bc单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器(未示出)可以位于加法器90与dpb 92之间以进一步处理解码视频块。然后,将给定帧中的解码视频块存储在dpb 92中,dpb 92存储用于接下来的视频块的后续运动补偿的参考帧。dpb 92或与dpb 92分离的存储器设备还可以存储解码视频以用于稍后呈现在显示器设备(诸如,图1的显示器设备34)上。
71.在典型的视频编码过程中,视频序列通常包括帧或图片的有序集合。每一帧可以包括三个样本阵列,表示为sl、scb和scr。sl是亮度样本的二维阵列。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。在其他实例中,帧可以是单色的,并且因此仅包括亮度样本的一个二维阵列。
72.像hevc那样,avs3标准建立在基于块的混合视频编解码框架之上。输入视频信号被逐块(称为编码单元(cu))处理。与仅基于四叉树来分割块的hevc不同,在avs3中,一个编码树单元(ctu)基于四叉树/二叉树/扩展四叉树而被拆分成多个cu,以适应变化的局部特性。此外,去除了hevc中多分割单元类型的概念,即,在avs3中不存在cu、预测单元(pu)和变换单元(tu)的分离。相反,每个cu总是被用作预测和变换二者的基本单元,而没有进一步的分割。在avs3的树分割结构中,一个ctu首先基于四叉树结构被分割。然后,每个四叉树叶节点可以基于二叉树结构和扩展四叉树结构被进一步分割。
73.如图4a中所示,视频编码器20(或更具体地,分割单元45)通过首先将帧分割为编码树单元(ctu)的集合来生成帧的编码表示。视频帧可以包括以光栅扫描顺序从左到右和从上到下连续排序的整数个ctu。每个ctu是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传送ctu的宽度和高度,使得视频序列中的所有ctu具有128
×
128、64
×
64、32
×
32和16
×
16之一的相同尺寸。但是应当注意,本技术不必限于特定尺寸。如图4b中所示,每个ctu可以包括亮度样本的一个编码树块(ctb)、色度样本的两个对应编码树块、以及用于对编码树块的样本进行编码的语法元素。语法元素描述编码像素块的不同类型的单元的性质以及可以如何在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独颜色平面的图片中,ctu可以包括单个编码树块和用于对该编码树块的样本进行编码的语法元素。编码树块可以是n
×
n的样本块。
74.为了实现更好的性能,视频编码器20可以对ctu的编码树块递归地执行树分割,诸如二叉树分割、三叉树分割、四叉树分割或其组合,并且将ctu划分为较小的编码单元(cu)。如图4c中所描绘的,首先将64
×
64的ctu 400划分为四个较小的cu,每个cu具有32
×
32的块尺寸。在四个较小的cu中,将cu 410和cu 420分别划分为块尺寸为16
×
16的四个cu。将两个16
×
16的cu 430和cu 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所示,在avs3中存在五种拆分/分割类型,即四元分割、水平二元分割、垂直二元分割、水平扩展四叉树分割和垂直扩展四叉树分割。
75.在一些实施方案中,视频编码器20可以进一步将cu的编码块分割为一个或更多个(m
×
n个)预测块(pb)。预测块是被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样本块。cu的预测单元(pu)可以包括亮度样本的预测块、色度样本的两个对应预测块和用于对预测块进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,pu可以包括单个预测块和用于对预测块进行预测的语法结构。视频编码器20可以生成针对cu的每个pu的亮度预测块、cb预测块和cr预测块的预测亮度块、预测cb块和预测cr块。
76.视频编码器20可以使用帧内预测或帧间预测来生成针对pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可以基于与pu相关联的帧的解码样本来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可以基于除与pu相关联的帧之外的一个或更多个帧的解码样本来生成pu的预测块。
77.在视频编码器20生成针对cu的一个或更多个pu的预测亮度块、预测cb块和预测cr块之后,视频编码器20可以通过从cu的原始亮度编码块减去cu的预测亮度块来生成针对cu的亮度残差块,使得cu的亮度残差块中的每个样本指示cu的预测亮度块之一中的亮度样本与cu的原始亮度编码块中的对应样本之差。类似地,视频编码器20可以分别生成针对cu的cb残差块和cr残差块,使得cu的cb残差块中的每个样本指示cu的预测cb块之一中的cb样本与cu的原始cb编码块中的对应样本之差,并且cu的cr残差块中的每个样本可以指示cu的预测cr块之一中的cr样本与cu的原始cr编码块中的对应样本之差。
78.此外,如图4c中所示,视频编码器20可以使用四叉树分割将cu的亮度残差块、cb残差块和cr残差块分解成一个或更多个亮度变换块、cb变换块和cr变换块。变换块是被应用相同变换的矩形(正方形或非正方形)样本块。cu的变换单元(tu)可以包括亮度样本的变换块、色度样本的两个对应变换块和用于对变换块样本进行变换的语法元素。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cr变换块可以是cu的cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,tu可以包括单个变换块和用于对该变换块的样本进行变换的语法结构。
79.视频编码器20可以将一个或更多个变换应用于tu的亮度变换块以生成针对tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或更多个变换应用于tu的cb变换块以生成针对tu的cb系数块。视频编码器20可以将一个或更多个变换应用于tu的cr变换块以生成针对tu的cr系数块。
80.在生成系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行上下文自适应二进制算术编码(cabac)。最后,视频编码器20可以输出包括比特序列的比特流,比特序列形成编码帧和相关联数据的表示,比特流被保存于存储设备32中或被发送到目标设备14。
81.在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析比特流以从比特流获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来对视频数据的帧进行重建。对视频数据进行重建的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可以对与当前cu的tu相关联的系数块执行逆变换以重建与当前cu的tu相关联的残差块。视频解码器30还通过将针对当前cu的pu的预测块的样本与当前cu的tu的变换块的对应样本相加,来重建当前cu的编码块。在重建针对帧的每个cu的编码块之后,视频解码器30可以重建帧。
82.在一些实施例中,存在不同的用信号发送预测模式的方式。在vvc中,每个cu可以被编码为跳过模式或非跳过模式。针对被编码为非跳过模式的cu,进一步用信号发送语法元素以指示当前cu是否被编码为帧内模式、帧间模式、帧内块复制(ibc)模式或调色板(plt)模式。在vvc规范中,这些模式分别被称为“mode_intra”、“mode_inter”、“mode_ibc”和“mode_plt”。针对被编解解码为帧间模式的cu,预测信号可以由来自参考图片的像素生成,参考图片不是当前图片。此外,针对被编码为帧间模式的cu,进一步用信号传送一个标志,以指示当前cu是否为合并模式。针对合并模式编码的cu,使用附加的语法元素来进一步用信号传送若干不同类型的合并模式。这些不同类型的合并模式包括常规合并模式、子块合并模式、具有mv差的合并模式(mmvd)、组合的帧间和帧内预测(ciip)以及三角形合并模式。
83.在一些实施例中,在vvc中,通过依次包括以下五种类型的候选来构建合并候选列表:来自空间邻近cu的空间mvp(即运动矢量预测值)、来自同位cu的时间mvp、来自fifo表的基于历史的mvp、成对平均mvp和零mv。
84.在vvc中,合并列表的尺寸在条带报头中被用信号传送并且合并列表的最大允许尺寸是6。针对合并模式下的每个cu码,使用截断一元二进制化(tu)对最佳合并候选的索引进行编码。利用上下文来编码合并索引的第一个二进制位(bin),并且针对其他二进制位使用旁路编码。在本公开的以下上下文中,该扩展合并模式也被称为常规合并模式,这是由于其概念与在hevc中使用的合并模式相同。
85.在一些实施例中,在hevc中,仅平移运动模型被应用于运动补偿预测。而在现实世界中,存在很多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在vvc和avs3中,通过针对每个帧间编码块用信号传送一个标志来指示是平移运动模型还是仿射运动模型被应用于帧间预测,来应用仿射运动补偿预测。在当前的vvc和avs3设计中,对于一个仿射编码块,支持两种仿射模式,包括四参数仿射模式和六参数仿射模式。
86.图5a和图5b是图示根据本公开的一些实施方案的示例性的基于控制点的仿射运动模型的框图。图5a图示了四参数仿射模型。图5b图示了六参数仿射模型。
87.如图5a和图5b所示,块的仿射运动场由两个控制点(四参数)v0和v1或三个控制点运动矢量(六参数)v0、v1和v2的运动信息来描述。
88.四参数仿射模型具有以下参数:分别用于水平方向和垂直方向上的平移运动的两个参数、用于针对两个方向的缩放运动的一个参数和用于针对两个方向的旋转运动的一个参数。在该模型中,水平缩放参数等于垂直缩放参数,并且水平旋转参数等于垂直旋转参数。为了实现运动矢量和仿射参数的更好调和,将从位于如图5a中所示的当前块的左上角和右上角处的两个mv(其也被称为控制点运动矢量(cpmv))中导出那些仿射参数。块的仿射运动场由两个cpmv(v0,v1)描述。基于控制点运动,一个仿射编码块的运动场(v
x
,vy)被描述为:六参数仿射模式具有以下参数:分别用于水平方向和垂直方向上的平移运动的两个参数、分别用于水平方向上的缩放运动和旋转运动的两个参数、分别用于垂直方向上的缩放运动和旋转运动的另外两个参数。六参数仿射运动模型是利用三个cpmv来进行编解码的。如图5b中所示,一个六参数仿射块的三个控制点位于块的左上角、右上角和左下角处。左上控制点处的运动与平移运动相关,并且右上控制点处的运动与水平方向上的旋转和缩放运动相关,并且左下控制点处的运动与垂直方向上的旋转和缩放运动相关。与四参数仿射运动模型相比,六参数的水平方向上的旋转运动和缩放运动可以与垂直方向上的旋转运动和缩放运动不相同。假设(v0,v1,v2)是图5b中的当前块的左上角、右上角和左下角的mv,则每个子块的运动矢量(v
x
,vy)使用控制点处的三个mv被导出为:其中(v
0x
,v
0y
)是左上角控制点的运动矢量,(v
1x
,v
1y
)是右上角控制点的运动矢量,并且(v
2x
,v
2y
)是左下角控制点的运动矢量。w是块的宽度且h是块的高度。
89.图6是图示根据本公开的一些实施方案的每个子块的示例性仿射运动矢量预测(amvp)的框图。为了简化运动补偿预测,应用了基于块的仿射变换预测。为导出每个4
×
4亮度子块的运动矢量,如图6中所示,每个子块的中心样本的运动矢量是根据以上等式来计算的,并且取整到1/16分数精度。然后,应用运动补偿插值滤波器,以利用导出的运动矢量来生成每个子块的预测。色度分量的子块尺寸也被设置为4
×
4。4
×
4色度子块的mv被计算为四个对应的4
×
4亮度子块的mv的平均值。
90.如针对平移运动帧间预测所做的,也存在两种仿射运动帧间预测模式:仿射合并模式和amvp模式。
91.在一些实施例中,仿射合并预测模式(af_merge模式)可以被应用于宽度和高度均
大于或等于8的cu。在该模式下,基于空间邻近cu的运动信息来生成当前cu的控制点运动矢量(cpmv)。可以存在多达五个cpmv预测值(cpmvp)候选,并且用信号传送索引以指示被用于当前cu的cpmvp候选。以下三种类型的cpmvp候选被用于形成仿射合并候选列表:(1)从邻近cu的cpmv推断的继承的仿射合并候选;(2)使用邻近cu的平移mv导出的构建的仿射合并cpmvp;(3)零mv。
92.图7是图示根据本公开的一些实施方案的继承的仿射运动预测值的示例性位置的框图。在vvc中,存在从邻近块的仿射运动模型导出的最多两个继承的仿射候选,一个来自左侧邻近cu,并且一个来自上方邻近cu。候选块在图7中被示出。对于左侧预测值,扫描顺序为a0-》a1,并且对于上方预测值,扫描顺序为b0-》b1-》b2。仅选择来自每一侧的第一个继承的候选。在两个继承的候选之间不执行修剪检查。当识别到邻近仿射cu时,其控制点运动矢量被用于导出当前cu的仿射合并列表中的cpmvp候选。
93.图8是图示根据本公开的一些实施方案的示例性控制点运动矢量继承的框图。如图8中所示,如果邻近的左下块a在仿射模式下被编解码,则获得包含块a的cu的左上角、右上角和左下角的运动矢量v2、v3和v4。当利用四参数仿射模型对块a进行编解码时,根据v2和v3来计算当前cu的两个cpmv。在利用六参数仿射模型对块a进行编解码的情况下,根据v2、v3和v4来计算当前cu的三个cpmv。
94.图9是图示根据本公开的一些实施方案的构建的仿射合并模式的候选位置的示例性位置的框图。所构建的仿射候选是通过组合每个控制点的邻域平移运动信息而被构建的。控制点的运动信息是从图9中所示的指定的空间邻域和时间邻域中导出的。cpmvk(k=1,2,3,4)表示第k个控制点。对于cpmv1,按顺序检查b2-》b3-》a2块,并且使用第一个可用块的mv。同样,cpmv2是通过按顺序检查b1-》b0块而被导出的。cpmv3是通过按顺序检查a1-》a0块而被导出的。如果tmvp可用,则tmvp被用作cpmv4。
95.在获得四个控制点的mv之后,仿射合并候选基于运动信息而被构建。以下控制点mv的组合按顺序被用于构建:{cpmv1,cpmv2,cpmv3},{cpmv1,cpmv2,cpmv4},{cpmv1,cpmv3,cpmv4},{cpmv2,cpmv3,cpmv4},{cpmv1,cpmv2},{cpmv1,cpmv3}。
96.3个cpmv的组合可以用来构建六参数仿射合并候选,并且2个cpmv的组合可以用来构建四参数仿射合并候选。为避免运动缩放过程,如果控制点的参考索引不同,则丢弃控制点mv的相关组合。
97.在检查了继承的仿射合并候选和构建的仿射合并候选之后,如果列表仍然未满,则将零mv插入列表的末尾。
98.在一些实施例中,为了提供块内的运动矢量的精细粒度,实施了基于回归的运动矢量场(rmvf)工具。该工具试图基于空间邻近运动矢量在子块级别上对每个块的运动矢量进行建模。
99.图10是图示根据本公开的一些实施方案的在运动参数导出中被使用的示例性邻近运动矢量的框图。
100.图10图示了用于运动参数导出的邻近4
×
4块运动。如图所示,分别在当前块的左侧和上侧的一列和一行直接邻近的4
×
4子块(及其中心位置)的运动矢量被用于回归过程。
101.图11是图示根据本公开的一些实施方案的用于运动参数导出的示例性的减少的邻近运动矢量候选的框图。
102.为了减少用于参数导出的邻近运动信息的数量,使用了图11的方法,其中几乎一半的邻近4
×
4运动块被用于运动参数导出。
103.当收集用于运动参数导出的运动信息时,使用如图10和图11中所示的五个区域(左下、左侧、左上、上侧、右上)。右上参考运动区域和左下参考运动区域的尺寸分别被限制为仅为当前块的对应宽度或高度的一半。
104.在rmvf模式下,当前块的运动由六参数运动模型定义。这些参数a
xx
,a
xy
,a
yx
,a
yy
,b
x
和by是通过以均方误差(mse)方法求解线性回归模型来计算的。回归模型的输入由如上定义的可用邻近4
×
4子块的中心位置(x,y)和运动矢量(mv
x
和mvy)组成。
105.中心位置在(xs,ys)处的8
×
8子块的运动矢量(mv
x
,mvy)然后被计算如下:相对于每个子块的中心位置,为8
×
8子块计算运动矢量。因此,在rmvf模式下,运动补偿也以8
×
8子块精度被应用。
106.为了对运动矢量场进行高效的建模,rmvf工具仅应用于上述那些候选区域中的至少三个候选区域各自包含至少一个运动矢量的情况。
107.在一些实施例中,为了根据当前avs中的仿射合并模式来导出当前块内的运动场,使用来自有限的预定义块位置的cpmv。然而,这些cpmv可能并不总是最优的,并且经常也可能是不可用的。为了导出当前块的更准确的运动信息,期望通过以更灵活的方式考虑来自空间邻近块的运动信息,来对当前块的运动行为进行建模。
108.在一些实施例中,实施了用于改进当前avs标准中的仿射合并模式的方法和系统。具体地,通过联合考虑来自多个空间邻近块的运动信息来导出仿射运动模型。本文公开的方法和系统可以以各种方式被实施。在一个实施例中,这些方法可以在新的编码模式(例如,新的合并模式)下被实施。替代地,可以以与当前仿射合并模式类似的方式用信号传送这些方法,例如,通过将其控制点mv添加到合并候选列表中。
109.仿射运动模型导出根据等式(2),仿射运动模型可以被重写为:其中(c,f)是delta(德尔塔)平移参数,(a,b)是针对水平方向的delta缩放参数和delta旋转参数,(d,e)是针对垂直方向的delta缩放参数和delta旋转参数,(x,y)与(v
x
和vy)是编码块或子块的中心位置和运动矢量。
110.在一个实施例中,模型参数a、b、c、d、e和f可以通过求解作为上述rmvf工具的线性回归模型来计算,而回归模型的输入可以是如图10中所示的来自五个常规区域(左下、左侧、左上、上侧、右上)的邻近块的运动信息的可配置子集。注意,该子集可以是预定义的(例如,仅上侧和左侧的区域,或者仅位于当前块拐角周围的邻近块),或者在条带报头中被用信号传送。
111.在另一个实施例中,模型参数a、b、c、d、e和f可以通过以下近似来计算:对应于delta缩放和旋转运动的仿射模型参数a、b、d、e可以通过下式被计算:
ꢀꢀꢀꢀ
(5)注意,偏导数可以通过邻近运动矢量的水平和垂直梯度来估计。因此,近似的仿射模型参数可以由下式导出:其中v
t
和v
l
是当前编码块的所选择的上侧和左侧空间邻近块的运动矢量。nh和nv是所选择的上侧和左侧空间邻近块的数量。g
x
和gy是水平和垂直方向上的梯度。,,和分别是参数a、b、d和e的近似值。
112.在一个实施例中,g
x
和gy可以通过以下等式来计算:在另一个实施例中,g
x
和gy可以通过以下等式来计算:其中和是第一个和最后一个所选择的上方邻近块的运动矢量,而和是第一个和最后一个所选择的左侧邻近块的运动矢量。
113.一旦四个近似的仿射模型参数,,和如等式(6)中那样被导出,其他两个平移参数可以通过以下等式被导出。
114.其中,,和是一个或多个邻近块的运动矢量和中心位置。在一个实施例中,可以基于等式(9)使用一个特定的邻近块,例如,左上邻近块(如果该特定块的运动信息是可用的)。在另一个实施例中,可以基于等式(9)使用一组邻近块,并且在这种情况下,,,和可以是那些块的平均运动和中心位置。图12是图示根据本公开的一些实施方案的待选择的可用空间子块的示例性子集的框图。例如,该组邻近块可以由靠近当前编码块的左上角的多个邻近块组成。如图12中所示,这些块可以是靠近当前编码块的左上角的4个所选择的邻近块(示出为阴影)。
115.在一些实施例中,邻近块的选择可以取决于以下示例性因素的任何组合。
116.在一个实施例中,该选择可以依赖于位置。在一个示例中,可以选择位于当前块的左上角、或/和右上角、或/和左下角的邻近块。
117.在另一个实施例中,该选择可以依赖于空间距离。在一个示例中,如图10中所示,选择位于距当前块2w/1.5h像素距离内的上侧/左侧邻近块。w是当前编码块的宽度,并且h是当前编码块的高度。替代地,如图11中所示,选择减少数量的邻近块(例如,每隔一个邻近块)。
118.在另一个实施例中,该选择可以依赖于编码模式。在一个示例中,如果一个邻近块以帧内模式被编解码,则运动信息可能是不可用的,因此不选择该邻近块。在另一个示例中,如果一个邻近块以合并模式被编解码(其中继承的运动信息可能不是准确的),则不选择该邻近块。
119.在另一个实施例中,该选择可以依赖于优先级。在一个示例中,当构建仿射合并模式候选列表时,可以根据类似排序来选择邻近块。当该选择依赖于优先级时,还可以定义阈值数量。如果所选择的邻近块的数量达到所定义的阈值,则不能再选择邻近块。
120.在另一个实施例中,该选择可以依赖于仿射模型。在一个示例中,与四参数仿射模型导出相比,六参数仿射模型导出可能需要更多数量的所选择的邻近块。
121.模型选择等式(4)是六参数仿射运动模型的一般表示。在一个实施例中,六参数模型总是用于仿射模型导出。在另一个实施例中,代替总是使用六参数模型,可以使用具有不同数量的参数的仿射运动模型,例如四参数或二参数模型。使用少于六参数的模型的一个优点是,即使邻近块的运动信息的可用性有限,它也能工作。使用少于六参数的模型的另一个优点是,在某些情况下,四参数仿射运动模型或二参数仿射运动模型可以与六参数模型类似地良好地拟合可用邻近块的运动信息,但是具有明显更少的导出计算复杂度。最后但并非最不重要的是,如果使用如上文所描述的基于近似的计算,则有可能三个模型(二参数、四参数和六参数)都不是最优的。因此,第三个优点是少于六参数的模型可能比六参数模型更好地拟合可用邻近块的运动信息。
122.对于四参数模型,。在这种情况下,可以使用以下方法来计算估计的参数,,和:
方法1:仅使用来自上方(或上侧)的所选择的邻近块的运动信息:方法2:仅使用来自左侧的所选择的邻近块的运动信息:方法3:使用来自上方和左侧二者的所选择的邻近块的运动信息:在以上公开的三种方法中,可以相应地基于和容易地导出没有在那些等式中列出的参数。对于四参数模型,其他两个参数和可以如根据等式(9)那样类似地被估计。
123.对于二参数模型,。根据等式(4),仅需导出两个参数c和f。近似值和仍可以基于等式(9)进行估计,但,,和被假设为0。换句话说,可以基于和(即如先前描述中所解释的特定邻近块的运动信息或一组邻近块的平均运动)直接导出值和。
124.根据以上分析,由于近似导出,有可能导出的三个模型(二参数、四参数和六参数)中的一些不是最优的。因此,可以以不同的方式选择具有不同数量的参数的仿射运动模型。
125.在一个实施例中,三个仿射模型中的一个(例如,六参数模型、四参数模型或二参数模型)可以在某个编解码级别(例如,在块级别、ctu级别、在条带或图片报头中、和/或在序列参数集中)被预定义或被选择/被用信号传送,并且被该级别处和/或该级别之下的所有块用于导出运动信息。在这种情况下,一个模型将总是与模型选择信令级别和/或模型选
择信令级别以下的范围一起使用。
126.在另一个实施例中,所有三个仿射模型都是基于所选择的邻近块的运动信息被导出的,并且三个模型中的一个将被自适应地选择。在这种情况下,一种具体的方法是选择具有最小模型预测误差的模型。
127.在一个实施例中,可以通过每个所使用的邻近块的由一个候选模型估计的mv和实际mv之间的距离的总和来估计模型预测误差。该距离可以通过平方差加权总和(ssd)或绝对差加权总和(sad)而被测量。例如,给定模型参数(,,,,),可以利用等式(4)计算以(xi,yi)为中心的第i个邻近块的导出的运动矢量。第i个邻近块的导出的和实际的之间的距离计算如下:其中wi是第i个邻近块的权重。在一个实施例中,wi的值可以由第i个邻近块和当前块之间的距离确定。如果邻近块更靠近当前块,则权重更大。因此,总模型预测误差是所有所选择的邻近块的errori的总和。相同的操作可以应用于编码器侧和解码器侧二者。
128.在另一个实施例中,可以通过当前块的由一个候选模型估计的mv与实际mv(例如,编码块级mv)之间的距离来估计模型预测误差。类似地,该距离可以通过平方差(sd)或绝对差(ad)来测量。
129.所提出的模型导出方法的自适应启用为了具有高效的建模,本文公开的仿射模型导出方法可以仅在满足某些标准时被应用。
130.在一个实施例中,一个条件是来自区域(例如,左下、左侧、左上、上侧、右上区域)的可用邻近块的数量应该大于阈值(例如,2)。对于不同的区域,阈值数量可以不同,例如,直接在当前编码块上方的上侧区域可以具有更高的阈值。可以将阈值数量与仅来自上方或左侧区域的可用邻近块的组合数量进行比较,其中上方区域可以包括左上、上侧和右上区域,而左侧区域可以包括左侧和左下区域。注意,左上角邻近块可以被计至上方或左侧区域两者,或者可以不被计至上方或左侧区域两者。
131.在另一个实施例中,一个条件是具有至少阈值数量的可用邻近块的区域的数量大于阈值(例如,2)。这意味着,对于上方区域,三个区域(左上、上侧、右上)中的至少阈值数量(诸如2)的区域具有至少相同或不同阈值数量的可用邻近块。对于左侧区域,三个区域(左上、左侧、左下)中的至少阈值数量(例如,2个)的区域具有至少相同或不同阈值数量的可用邻近块。
132.模型应用场景本文公开的方法可以以各种方式被实施。
133.在一个实施例中,导出的仿射模型参数可以在新的编码模式(例如,作为新的合并模式)下被用信号传送。在另一个实施例中,导出的仿射模型参数可以被转换成控制点运动矢量(cpmv)(例如,2个或3个cpmv的集合),并且然后被添加到当前仿射合并候选列表中。
134.在这种情况下,当前编码块内的子块mv可以由等式(4)导出。子块的尺寸可以被自
适应地确定。在一个示例中,子块尺寸的确定可以取决于当前编码块是单向预测的还是双向预测的。如果当前块是单向预测的,则子块的尺寸可以是4
×
4。否则,如果当前块是双向预测的,则子块的尺寸可以是8
×
8。在另一个示例中,不管当前编码块是单向预测的还是双向预测的,子块的尺寸总是4
×
4或8
×
8。在又一示例中,该确定可以基于当前块的长宽比,例如,可以利用与当前块相同的长宽比来确定子块尺寸,其中最小横向尺寸为4或8。在当前块的宽度和高度之间的比例为1∶2时,子块的宽度和高度可以分别被设置为4和8,其中最小横向尺寸等于4。可以基于当前块是单向预测的还是双向预测的来确定最小横向尺寸。例如,如果当前块是单向预测的,则其可以被设置为4,而如果当前块是双向预测的,则其可以被设置为8。
135.在另一个实施例中,所提出的仿射模型导出方法可以用于针对常规仿射模式(即仿射显式模式)导出预测值。在这种情况下,每个cpmv的运动矢量差(mvd)基于通过本文公开的仿射模型导出方法导出的其mv预测值而被计算,并且然后被显示地用信号传送。因为可以使用仿射模型导出方法来导出多个预测值集合,所以根据本公开的实施例,可以用信号传送索引以指示导出的哪个预测值集合被用作当前块的实际cpmv预测值。每个集合可以包含不同数量的cpmv预测值(例如,2个或3个),并且由此,取决于集合中的预测值的数量,针对当前块的cpmv的用信号传送的mvd的数量也可以是不同的。例如,如果集合包含三个预测值,则用信号传送三个mvd。如果集合仅包含两个预测值,则仅需用信号传送两个mvd。
136.在又一实施例中,本文公开的仿射模型导出方法可以用于在编码器侧加速常规仿射模式(仿射显式模式)的运动估计过程。具体地,该方法可以用于导出cpmv的初始集合,该集合可以通过后续的基于光流的过程而被迭代地快速细化。
137.图13是图示根据本公开的一些实施方案,通过使用多个空间邻近块的运动矢量的梯度,基于来自多个空间邻近块的运动信息的联合考虑,来导出仿射运动模型的示例性过程1300的流程图。
138.视频编码器20/解码器30从视频数据的比特流中接收第一语法,该第一语法指示针对当前编码块启用的仿射运动模型(1310)。
139.视频编码器20/解码器30使用当前编码块的多个空间邻近块的运动矢量的梯度来估计仿射运动模型的参数(1320)。
140.视频编码器20/解码器30通过使用所估计的参数来构建针对当前编码块的仿射运动模型的运动矢量(1330)。
141.在一些实施例中,估计参数进一步包括:计算当前编码块的所选择的上侧和左侧空间邻近块的梯度。
142.在一些实施例中,估计参数进一步包括:从比特流中接收指示仿射运动模型是六参数、四参数和二参数仿射运动模型之一的第二语法;以及根据由第二语法确定仿射运动模型是六参数仿射运动模型:通过下式计算对应于delta缩放和旋转运动的六参数仿射运动模型的参数a、b、d、e:
其中a和b分别是水平方向的delta缩放参数和旋转参数,d和e分别是垂直方向的delta缩放参数和旋转参数,(x,y)与(v
x
和vy)是当前编码块的多个空间邻近块中的一空间邻近块的中心位置和运动矢量。
143.在一些实施例中,估计参数进一步包括:通过下式分别计算六参数仿射运动模型的参数a、b、d、e的近似值:其中(,)是位置(xi,yi)处的当前编码块的所选择的上侧空间邻近块的运动矢量,(,)是位置(xi,yi)处的当前编码块的所选择的左侧空间邻近块的运动矢量,nh是所选择的上侧空间邻近块的数量,nv是所选择的左侧空间邻近块的数量,g
x
是水平方向上的梯度,gy是垂直方向上的梯度,并且,,和分别是参数a、b、d和e的近似值。
144.在一些实施例中,估计参数进一步包括:通过下式计算g
x
和gy:在一些实施例中,估计参数进一步包括:通过下式计算g
x
和gy:其中和分别是当前编码块的第一个和最后一个所选择的上侧空间邻近块的运动矢量,并且和分别是当前编码块的第一个和最后一个所选择的左侧空间邻近块的运动矢量。
145.在一些实施例中,估计参数进一步包括通过下式计算delta平移参数:其中和是近似delta平移参数,是一个或多个邻近块的近似运动矢量,并且(,)是一个或多个邻近块的近似中心位置。
146.在一些实施例中,当前编码块的所选择的上侧和左侧空间邻近块包括距当前编码块预定距离内的上侧和左侧空间邻近块。
147.在一些实施例中,当前编码块的所选择的上侧和左侧空间邻近块包括未通过帧内模式或合并模式被编解码的上侧和左侧空间邻近块。
148.在一些实施例中,估计参数进一步包括:根据由第二语法确定仿射运动模型是四参数仿射运动模型:通过下式计算参数a、b、d、e:根据由第二语法确定仿射运动模型是二参数仿射运动模型,通过下式计算参数a、b、d、e:在一些实施例中,估计参数进一步包括:基于来自当前编码块的多个空间邻近块的运动参数信息,通过最小化模型预测误差,从六参数、四参数和二参数仿射运动模型之一确定最优的仿射运动模型。
149.在一些实施例中,最小化模型预测误差包括估计和最小化每个被计算的空间邻近块的由一个候选参数仿射运动模型估计的相应运动矢量和相应实际运动矢量之间的距离的总和。
150.在一些实施例中,构建运动矢量进一步包括:将所估计的参数转换成控制点运动矢量(cpmv),并且将cpmv添加到当前仿射合并候选列表中。
151.在一些实施例中,构建运动矢量进一步包括:导出针对仿射模式的运动矢量预测值。
152.在一些实施例中,构建运动矢量进一步包括:基于相应cpmv的导出的运动矢量预测值,计算相应控制点运动矢量(cpmv)的运动矢量差(mvd)。
153.在一个或多个示例中,所描述的功能可以以硬件、软件、固件、或者其任意组合被实施。如果以软件被实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质或者通信介质,计算机可读存储介质对应于诸如数据存储介质的有形介质,通信介质包括例如依照通信协议促进计算机程序从一个地方传送到另一个地方的任意介质。以此方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或载波的通信介质。数据存储介质可以是任何可用介质,其可以被一个或多个计算机或者一个或多个处理器访问,以取回用于实施本技术中描述的实施方案的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
154.本文在实施方案的描述中使用的术语仅出于描述具体实施方案的目的,而不旨在限制权利要求的范围。如在实施方案的描述和所附权利要求中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还将理解,如本文中使用的术语“和/或”指代并且涵盖相关联的列出项中的一个或多个项的任意和所有可能的组合。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指明所陈述的特征、元件和/或组件的存在,但是不排除一个或更多个其他特征、元件、组件和/或其组合的存在或者附加。
155.还将理解,尽管术语第一、第二等可以在本文中用来描述各种元件,但是这些元件不应当受这些术语限制。这些术语仅用来将一个元件与另一个元件区分开。例如,第一电极可以称为第二电极,并且类似地,第二电极可以称为第一电极,而不脱离实施方案的范围。第一电极和第二电极二者都是电极,但是它们不是同一电极。
156.贯穿本说明书,以单数或复数形式的“一个示例”、“示例”、“示例性示例”等意味着结合示例描述的一个或更多个特定特征、结构或特性包括在本公开的至少一个示例中。因此,贯穿本说明书,在各处以单数或复数形式出现的短语“在一个示例中”或“在示例中”、“在示例性示例中”等不一定都指代同一示例。此外,一个或更多个示例中的特定特征、结构或特性可以包括以任何合适的方式被组合。
157.本技术的描述已经出于说明和描述的目的被呈现,并且不旨在是穷尽性的或者限于所公开的形式的发明。许多修改、变型和替代实施方案对受益于前面描述和关联附图中给出的教导的本领域普通技术人员而言将是显而易见的。实施例被选择和描述以便最佳地解释本发明的原理、实际应用,并且使得本领域其他技术人员能够针对各种实施方案理解本发明,并且通过适合于所设想的具体用途的各种修改来最佳地利用底层原理和各种实施方案。因此,将理解,权利要求的范围将不限于所公开的实施方案的特定示例,并且修改和其他实施方案旨在被包括在所附权利要求的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献