用于视频译码的方法和设备转让专利

申请号 : CN202080034416.9

文献号 : CN113812153B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·鲁萨诺夫斯基K·P·A·勒兹V·谢廖金W-J·钱M·卡切夫维茨Y·张

申请人 : 高通股份有限公司

摘要 :

一种用于对视频数据进行译码的设备可以确定成对平均运动矢量预测器(MVP)的第一运动矢量(MV)分量的可切换插值滤波器(SIF)索引值是否等于成对平均MVP的第二MV分量的SIF索引值。基于第一MV分量的SIF索引值等于第二MV分量的SIF索引值,设备可以将成对平均MVP的SIF索引设置为等于第一MV分量的SIF索引。设备可以基于成对平均MVP的SIF索引值来对视频数据进行译码。

权利要求 :

1.一种对视频数据进行译码的方法,所述方法包括:

确定第一成对平均运动向量预测器MVP的第一运动向量MV分量的可切换插值滤波器SIF索引值是否等于所述第一成对平均MVP的第二MV分量的SIF索引值;

基于所述第一MV分量的SIF索引值等于所述第二MV分量的SIF索引值,将所述第一成对平均MVP的SIF索引设置为等于所述第一MV分量的SIF索引;

确定第二成对平均MVP的第三MV分量的SIF索引值是否等于所述第二成对平均MVP的第四MV分量的SIF索引值;

基于所述第三MV分量的SIF索引值不等于所述第四MV分量的SIF索引值,确定所述第二成对平均MVP的SIF索引值,其中,确定所述第二成对平均MVP的SIF索引值包括如下中之一:i)将所述第二成对平均MVP的SIF索引值设置为所述第三MV分量的SIF索引值和所述第四MV分量的SIF索引值之间的第一可用SIF索引值;

ii)将所述第二成对平均MVP的SIF索引值设置为指向与所述第三MV分量相关联的第一插值滤波器或与所述第四MV分量相关联的第二插值滤波器,其中,所述第二成对平均MVP的SIF索引值指向的插值滤波器具有预定特性;或者iii)将所述第二成对平均MVP的SIF索引值根据相应选择规则设置为合并列表中一MVP候选的SIF索引值;以及基于所述第一成对平均MVP的SIF索引值和所述第二成对平均MVP的SIF索引值来对所述视频数据进行译码。

2.根据权利要求1所述的方法,其中,所述预定特性是较强滤波器或较弱滤波器中的一个。

3.根据权利要求1所述的方法,其中,所述选择规则是最常使用的候选、未使用的候选或最少使用的候选中的一个。

4.一种用于对视频数据进行译码的设备,所述设备包括:

存储器,其用于存储视频数据;以及

一个或多个处理器,其在电路中实现并以通信方式耦合到所述存储器,所述一个或多个处理器被配置为:确定第一成对平均MVP的第一MV分量的可切换插值滤波器SIF索引值是否等于所述第一成对平均MVP的第二MV分量的SIF索引值;

基于所述第一MV分量的SIF索引值等于所述第二MV分量的SIF索引值,将所述第一成对平均MVP的SIF索引设置为等于所述第一MV分量的SIF索引;

确定第二成对平均MVP的第三MV分量的SIF索引值是否等于所述第二成对平均MVP的第四MV分量的SIF索引值;

基于所述第三MV分量的SIF索引值不等于所述第四MV分量的SIF索引值,确定所述第二成对平均MVP的SIF索引值,其中,作为确定所述第二成对平均MVP的SIF索引值的部分,所述一个或多个处理器被配置为进行如下操作中之一:i)将所述第二成对平均MVP的SIF索引值设置为所述第三MV分量的SIF索引值和所述第四MV分量的SIF索引值之间的第一可用SIF索引值;

ii)将所述第二成对平均MVP的SIF索引值设置为指向与所述第三MV分量相关联的第一插值滤波器或与所述第四MV分量相关联的第二插值滤波器,其中,所述第二成对平均MVP的SIF索引值指向的插值滤波器具有预定特性;或者iii)将所述第二成对平均MVP的SIF索引值根据相应选择规则设置为合并列表中一MVP候选的SIF索引值;以及基于所述第一成对平均MVP的SIF索引值和所述第二成对平均MVP的SIF索引值来对所述视频数据进行译码。

5.根据权利要求4所述的设备,其中,所述预定特性是较强滤波器或较弱滤波器中的一个。

6.根据权利要求4所述的设备,其中,所述选择规则是最常使用的候选、未使用的候选或最少使用的候选中的一个。

7.根据权利要求4所述的设备,其中,所述设备包括无线通信设备。

8.一种非暂时性计算机可读介质,包括指令,所述指令当被执行时使一个或多个处理器进行如下操作:确定第一成对平均MVP的第一MV分量的可切换插值滤波器SIF索引值是否等于所述第一成对平均MVP的第二MV分量的SIF索引值;

基于所述第一MV分量的SIF索引值等于所述第二MV分量的SIF索引值,将所述第一成对平均MVP的SIF索引设置为等于所述第一MV分量的SIF索引;

确定第二成对平均MVP的第三MV分量的SIF索引值是否等于所述第二成对平均MVP的第四MV分量的SIF索引值;

基于所述第三MV分量的SIF索引值不等于所述第四MV分量的SIF索引值,确定所述第二成对平均MVP的SIF索引值,其中,作为确定所述第二成对平均MVP的SIF索引值的部分,所述指令当被执行时使所述一个或多个处理器进行如下操作中之一:i)将所述第二成对平均MVP的SIF索引值设置为所述第三MV分量的SIF索引值和所述第四MV分量的SIF索引值之间的第一可用SIF索引值;

ii)将所述第二成对平均MVP的SIF索引值设置为指向与所述第三MV分量相关联的第一插值滤波器或与所述第四MV分量相关联的第二插值滤波器,其中,所述第二成对平均MVP的SIF索引值指向的插值滤波器具有预定特性;或者iii)将所述第二成对平均MVP的SIF索引值根据相应选择规则设置为合并列表中一MVP候选的SIF索引值;以及基于所述第一成对平均MVP的SIF索引值和所述第二成对平均MVP的SIF索引值来对所述视频数据进行译码。

9.根据权利要求8所述的非暂时性计算机可读介质,其中,所述预定特性是较强滤波器或较弱滤波器中的一个。

10.根据权利要求8所述的非暂时性计算机可读介质,其中,所述选择规则是最常使用的候选、未使用的候选或最少使用的候选中的一个。

说明书 :

用于视频译码的方法和设备

[0001] 本申请要求享受于2020年5月13日提交的美国专利申请第15/930,790 号的优先权,该美国专利申请要求享受于2019年5月14日提交的美国临时专利申请第62/847,849号的利益,每个申请的全部内容通过引用并入本文。

技术领域

[0002] 本公开内容涉及视频编码和视频解码。

背景技术

[0003] 数字视频能力可以被合并到各种各样的设备,包括数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话(所谓的“智能电话”)、视频电话会议设备、视频流设备等。数字视频设备实现视频译码技术,例如由MPEG‑2、MPEG‑4、ITU‑T H.263、ITU‑T H.264/MPEG‑4Part 10、高级视频译码(AVC)、ITU‑T H.265/高效视频译码(HEVC)定义的标准、以及对这些标准的扩展中描述的那些视频译码技术。视频设备可以通过实现这样的视频译码技术来较有效地对数字视频信息进行发送、接收、编码、解码和/或存储。
[0004] 视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,用以减少或移除视频序列中固有的冗余。对于基于块的视频编码,视频条带 (例如,视频图片或视频图片的一部分)可被划分成视频块,其也可被称为译码树单元(CTU)、译码单元(CU)和/或译码结点。一图片的经帧内编码的(I)条带中的视频块是使用相对于相同图片中的相邻块中的参考样本的空间预测来被编码的。图片的经帧间编码的(P或B)条带中的视频块可以使用相对于相同图片中的相邻块中的参考样本的空间预测、或者相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。

发明内容

[0005] 一般而言,本公开内容描述了用于视频译码的技术,例如通过协调可切换插值滤波(SIF)与视频译码设计的其它组件来提高帧间预测的性能。示例技术可以用于现有视频译码技术,例如,作为一些示例的目前正在开发的高效视频译码(HEVC)标准或通用视频译码(VVC)标准,或未来的译码标准。示例技术也可以用于非标准译码编码中。
[0006] 在一个示例中,一种对视频数据进行译码的方法包括:确定成对平均运动向量预测器(MVP)的第一运动向量(MV)分量的可切换插值滤波器(SIF) 索引值是否等于所述成对平均MVP的第二MV分量的SIF索引值;基于所述第一MV分量的SIF索引值等于所述第二MV分量的SIF索引值,将所述成对平均MVP的SIF索引设置为等于所述第一MV分量的SIF索引;以及基于所述成对平均MVP的SIF索引值来对所述视频数据进行译码。
[0007] 在另一个示例中,一种用于对视频数据进行译码的设备包括:用于存储所述视频数据的存储器和在电路中实现并以通信方式耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:确定成对平均MVP 的第一MV分量的SIF索引值是否等于所述成对平均MVP的第二MV分量的SIF索引值;基于所述第一MV分量的SIF索引值等于所述第二MV 分量的SIF索引值,将所述成对平均MVP的SIF索引设置为等于所述第一 MV分量的SIF索引;以及基于所述成对平均MVP的SIF索引值来对所述视频数据进行译码。
[0008] 在另一个示例中,一种非暂时性计算机可读存储介质,其存储指令,所述指令在执行时使一个或多个处理器进行如下操作:确定成对平均MVP的第一MV分量的SIF索引值是否等于所述成对平均MVP的第二MV分量的SIF索引值;基于所述第一MV分量的SIF索引值等于所述第二MV分量的SIF索引值,将所述成对平均MVP的SIF索引设置为等于所述第一 MV分量的SIF索引;以及基于所述成对平均MVP的SIF索引值来对所述视频数据进行译码。
[0009] 在另一个示例中,一种用于对视频数据进行译码的设备包括:用于确定成对平均MVP的第一MV分量的SIF索引值是否等于所述成对平均MVP 的第二MV分量的SIF索引值的单元;用于基于所述第一MV分量的SIF 索引值等于所述第二MV分量的SIF索引值,将所述成对平均MVP的SIF 索引设置为等于所述第一MV分量的SIF索引的单元;以及用于基于所述成对平均MVP的SIF索引值来对所述视频数据进行译码的单元。
[0010] 在另一个示例中,一种用于对视频数据进行译码的方法包括:确定用于所述视频数据的合并列表候选的可切换插值滤波器(SIF)参数;执行合并处理;存储用于由所述合并处理产生的运动向量(MV)的所述SIF参数,而不管所述SIF参数是否是针对所述MV被验证的;以及基于所述MV来对所述视频数据进行译码。
[0011] 在另一个示例中,一种用于对视频数据进行译码的设备包括:用于存储所述视频数据的存储器和在电路中实现并以通信方式耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:确定用于所述视频数据的合并列表候选的可切换插值滤波器(SIF)参数;执行合并处理;存储用于由所述合并处理产生的运动向量(MV)的所述SIF参数,而不管所述 SIF参数是否是针对所述MV被验证的;以及基于所述MV来对所述视频数据进行译码。
[0012] 在另一示例中,一种非暂时性计算机可读存储介质,其存储指令,所述指令在执行时使一个或多个处理器进行如下操作:确定用于所述视频数据的合并列表候选的可切换插值滤波器(SIF)参数;执行合并处理;存储用于由所述合并处理产生的运动向量(MV)的所述SIF参数,而不管所述SIF 参数是否是针对所述MV被验证的;以及基于所述MV来对所述视频数据进行译码。
[0013] 一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图以及从权利要求书,其它特征、对象和优点将是显而易见的。

附图说明

[0014] 图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的框图。
[0015] 图2是示出可以执行本公开内容的技术的示例视频编码器的框图。
[0016] 图3是示出用于四分之一样本亮度插值的整数样本和分数样本位置的示例的概念图。
[0017] 图4是示出空间合并候选的示例位置的概念图。
[0018] 图5是示出针对空间合并候选的冗余检验考虑的候选对的示例的概念图。
[0019] 图6是示出用于时间合并候选的运动向量缩放的示例的概念图。
[0020] 图7是示出时间合并候选的候选位置的示例的概念图。
[0021] 图8A和8B是示出具有运动向量差(MMVD)的合并模式的搜索点的示例的概念图。
[0022] 图9A和9B是分别示出4参数仿射模型和6参数仿射模型的示例的概念图。
[0023] 图10是示出每子块的仿射运动向量(MV)场的示例的概念图。
[0024] 图11是示出经重叠块运动补偿(OBMC)的示例的概念图。
[0025] 图12A是示出子块的概念图,其中OBMC应用于在译码单元(CU)/ 预测单元(PU)边界处的子块。
[0026] 图12B是示出子块的概念图,其中OBMC应用于在高级运动向量预测 (AMVP)模式下的子块。
[0027] 图13A和13B是示出基于三角形划分的帧间预测的示例的概念图。
[0028] 图14是示出被用于构建单向预测候选列表的空间和时间相邻块的示例的概念图。
[0029] 图15是示出在针对三角形划分边的混合过程(blending process)中使用的权重的概念图。
[0030] 图16是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的插值滤波器索引的示例的流程图。
[0031] 图17是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的插值滤波器索引的另一示例的流程图。
[0032] 图18是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的插值滤波器索引的另一示例的流程图。
[0033] 图19是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的插值滤波器索引的另一示例的流程图。
[0034] 图20是示出确定用于运动向量(MV)的可切换插值滤波器(SIF)参数的示例的流程图。
[0035] 图21是示出可以执行本公开内容的技术的示例视频编码器的框图。
[0036] 图22是示出可以执行本公开内容的技术的示例视频解码器的框图。
[0037] 图23是示出根据本公开内容的技术对视频数据进行编码的示例的流程图。
[0038] 图24是示出根据本公开内容的技术对视频数据进行编解码的示例的流程图。

具体实施方式

[0039] 可切换插值滤波(SIF)是在进行视频译码时的一种技术,其可以提高译码效率。然而,在一些提议的实现方案中,对语法元素的信号发送是与其它信号发送(例如,自适应运动向量分辨率(AMVR)信号发送)合并的,并且这些实现方案不允许分开使用SIF和AMVR。在SIF和AMVR之间的分开的缺乏可能导致当分开使用这些译码工具可能是优选的时的技术问题。例如,视频译码器(例如,视频编码器或视频解码器)可能无法以信号发送或解析分开指示针对SIF和AMVR的信息的信息,即使在这种信号发送和解析可能有益的情况下也是如此。这可能导致视频译码器的运行较差(例如,由于在SIF和AMVR之间缺乏分开,可能无法使用原本会产生较好的压缩或视频质量的译码技术)。此外,利用这样的实现方案,SIF信号发送不利用在草案的通用视频译码(VVC)中可用的不同的译码模式中可以存在的特定依赖性。
此外,在合并模式的情况下,SIF滤波器索引继承是限于来自空间邻居的运动向量预测器(MVP)候选的。这些限制和缺点可能导致译码效率较低和带宽使用率较高。
[0040] 本公开内容描述了可以克服上述技术问题的示例技术,并提供了具有可以改进视频译码技术的实际应用的技术解决方案。例如,本公开内容描述了可以通过将SIF信号发送和继承机制与其它视频译码工具协调和/或联合优化来提高SIF的压缩效率的若干技术。
[0041] 图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的框图。本公开内容的技术通常针对对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未被编码的视频、被编码的视频、被解码的(例如,被重构的)视频以及视频元数据(诸如信令数据)。
[0042] 如图1所示,在本示例中,系统100包括源设备102,该源设备102提供要由目的地设备116解码并显示的被编码视频数据。具体地,源设备102 经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本 (即,膝上型)计算机、平板计算机、机顶盒、诸如智能手机的电话手持设备、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,并从而可以被称为无线通信设备。
[0043] 在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器 300、存储器120和显示设备118。根据本公开内容,源设备102的视频编码器200和目的设备116的视频解码器300可以被配置为应用在本文描述的用于用于视频译码的可切换插值滤波(SIF)的这些技术。从而,源设备 102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目的地设备116可以与外部显示设备以接口进行连接,而不是包括集成显示设备。
[0044] 如图1所示的系统100仅仅是一个示例。通常,任何数字视频编码和/ 或解码设备都可以执行用于SIF的技术。源设备102和目的地设备116仅仅是这样的译码设备的示例,其中源设备102生成被译码视频数据以用于到目的地设备116的传输。本公开内容将“译码”设备称为执行数据译码 (编码和/或解码)的设备。从而,视频编码器200和视频解码器300分别表示译码设备的示例,具体地,分别表示视频编码器和视频解码器的示例。在一些示例中,设备102、116可以以基本对称的方式进行操作,使得设备 102、116中的每一个都包括视频编码和解码组件。因此,系统100可以支持源设备102和目的地设备116之间的单向或双向视频传输,例如,用于视频流传送、视频回放、视频广播或视频电话。
[0045] 通常,视频源104表示视频数据的源(即,原始的、未被编码的视频数据),并向视频编码器200提供视频数据的一些列连续图片(也称为“帧”),其中视频编码器200对针对图片的数据进行编码。源设备102的视频源104 可以包括视频捕获设备,诸如视频相机、包含先前捕获的原始视频的视频存档、和/或用以从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、经存档的视频和经计算机生成的视频的组合。在每种情况下,视频编码器200都对经捕获的、预捕获的或经计算机生成的视频数据进行编码。视频编码器200可以将图片从接收顺序(有时称为“显示顺序”)重布置成译码顺序以用于进行译码。视频编码器200可以生成包括被编码视频数据的比特流。源设备102随后可以经由输出接口108将被编码视频数据输出到计算机可读介质110上,以供例如目的地设备116的输入接口122接收和/或获取。
[0046] 源设备102的存储器106和目的设备116的存储器120表示通用存储器。在一些示例中,存储器106和存储器120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的被解码的原始视频数据。另外或替代地,存储器106和存储器120可以存储分别由例如视频编码器200和视频解码器300可执行的软件指令。尽管在本示例中与视频编码器200和视频解码器300分开示出,但是应当理解,视频编码器200 和视频解码器300还可以包括用于功能相似或等效目的的内部存储器。此外,存储器106和存储器120可以存储被编码视频数据,例如,从视频编码器200输出并输入到视频解码器300的被编码视频数据。在一些示例中,存储器106和存储器120的部分可以被分配作为一个或多个视频缓冲器,例如,用于存储原始视频数据、被解码视频数据和/或被编码视频数据。
[0047] 计算机可读介质110可以表示能够将被编码视频数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络实时地将被编码视频数据直接发送到目的地设备116的通信介质。根据诸如无线通信协议的通信标准,输出接口108可以调制包括被编码视频数据的传输信号,并且输入接口122可以调制所接收的传输信号。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如因特网的全球网络。通信介质可包括路由器、交换机、基站或可以用于促进从源设备102向目的地设备116的通信的任何其它设备。
[0048] 在一些示例中,源设备102可以将被编码数据从输出接口108输出到储存设备112。类似地,目的地设备116可以经由输入接口122从储存设备 112访问被编码数据。储存设备
112可以包括各种分布式的或本地访问的数据储存介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD‑ROM、闪存、易失性或非易失性存储器、或者用于存储被编码视频数据的任何其它合适的数字储存介质。
[0049] 在一些示例中,源设备102可以将被编码视频数据输出到文件服务器 114或另一中间储存设备,其可以储存源设备102生成的被编码视频数据。目的地设备116可以经由流传送或下载来从文件服务器114访问经储存的视频数据。文件服务器114可以是能够储存被编码视频数据并将该被编码视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114 可以表示web服务器(例如,对于网站)、文件传输协议(FTP)服务器、内容递送网络设备或网络附属储存(NAS)设备。目的地设备116可以通过包括因特网连接的任何标准数据连接来从文件服务器114访问被编码视频数据。这可以包括无线信道(例如,Wi‑Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合,其适于访问储存在文件服务器114上的被编码视频数据。文件服务器114和输入接口122可以被配置为根据流传送传输协议、下载传输协议或其组合进行操作。
[0050] 输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件、或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4G、4G‑LTE(长期演进)、LTE Advanced、 5G等)传送数据,诸如被编码视频数据。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如IEEE 802.11规TM TM
范、IEEE 802.15规范(例如ZigBee )、Bluetooth 标准等)传送数据,诸如被编码视频数据。在一些示例中,源设备102和/ 或目的地设备116可以包括相应的片上系统(SoC)设备。
例如,源设备102 可以包括用于执行归因于视频编码器200和/或输出接口108的功能的SoC 设备,并且目的地设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能的SoC设备。
[0051] 本公开内容的技术可以应用于视频译码,以支持各种多媒体应用中的任何一种,诸如,空中电视广播、有线电视传输、卫星电视传输、因特网流传送视频传输(例如HTTP上的动态自适应流(DASH))、编码到数据储存介质上的数字视频、对储存在数据储存介质上的数字视频的解码、或其它应用。
[0052] 目的地设备116的输入接口122从计算机可读介质110(例如,存储设备112、文件服务器114等)接收被编码视频比特流。来自计算机可读介质 110的被编码视频比特流可以包括由视频编码器200定义的信令信息(其也由视频解码器300使用),例如具有用于描述视频块或其它被译码单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示被解码的视频数据的被解码的图片。显示设备118可以表示各种显示设备中的任何一种,诸如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。
[0053] 尽管未在图1中示出,但是在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX‑DEMUX单元或其它硬件和/或软件,以处理包括公共数据流中的音频和视频的复用流。当适用时,MUX‑DEMUX单元可以遵照ITU H.223 复用器协议或诸如用户数据报协议(UDP)的其它协议。
[0054] 视频编码器200和视频解码器300可以各自被实现为各种合适的编码器电路和/或解码器电路中的任何一种,诸如,一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。当技术部分地实现在软件中时,设备可以将用于软件的指令储存在适合的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行所述指令以执行本公开内容的技术。视频编码器200和视频解码器300中的每一个可以包括在一个或多个编码器或解码器中,其中任何一个都可以作为组合式编码器/解码器(CODEC) 的一部分集成在相应的设备中。包括视频编码器200和/或视频解码器300 的设备可以包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。
[0055] 视频编码器200和视频解码器300可以根据视频译码标准(诸如,ITU‑ T H.265,也称为高效视频译码(HEVC))或其扩展(诸如,多视图和/或可分级视频译码扩展)进行操作。或者,视频编码器200和视频解码器300可以根据其它专有标准或行业标准(诸如,ITU‑T H.266,也称为通用视频译码(VVC))进行操作。VVC标准的草案在Bross等人的“Versatile Video Coding(Draft 5)”(其提出于ITU‑T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第14次会议:日内瓦,瑞士,2019年3 月19日至27日,JVET‑N1001‑v3(以下简称“VVC草案5”))中进行了描述。VVC标准的最新草案在Bross等人的“Versatile Video Coding(Draft 8)” (其提出于ITU‑T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第17次会议:布鲁塞尔,比利时,2020年1月7日至 17日,JVET‑Q2001‑vE(以下简称“VVC草案8”))中进行了描述。然而,本公开内容的技术不限于任何特定的译码标准。
[0056] 通常,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指包括要被处理的(例如,被编码的、被解码的或在编码处理和/或解码处理中被以其它方式使用的)数据的结构。例如,块可以包括亮度(luminance)数据和/或色度(chrominance)数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y, Cb,Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对用于图片的样本的红、绿和蓝(RGB)数据进行译码,其中,色度分量可以包括红色调色度分量和蓝色调色度分量。在一些示例中,视频编码器200在进行编码之前将接收到的RGB格式的数据转换为YUV表示,并且视频解码器300将 YUV表示转换为RGB格式。或者,预处理单元和后处理单元(未示出)可以执行这些转换。
[0057] 本公开内容通常涉及对图片的译码(例如,编码和解码)以包括关于对图片的数据进行编码或解码的处理。类似地,本公开内容可以涉及对图片的块的译码以包括关于对针对块的数据进行编码或解码的处理,例如,预测译码和/或残差译码。被编码视频比特流通常包括针对用于表示译码决策(例如,译码模式)以及将图片划分成块的语法元素的一系列值。从而,提及对图片或块进行译码通常应被理解为对针对形成图片或块的语法元素的值进行译码。
[0058] HEVC定义了各种块,包括译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(例如视频编码器200)根据四叉树结构将译码树单元(CTU)划分为CU。也就是说,视频译码器将CTU和CU 划分为四个相等的、不重叠的正方形,四叉树的每个结点有零个或四个子结点。没有子结点的结点可以被称为“叶结点”,并且此类叶结点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可以进一步划分PU 和TU。例如,在HEVC中,残差四叉树(RQT)表示对TU进行的划分。在HEVC中,PU表示帧间预测数据,TU表示残差数据。经帧内预测的CU 包括帧内预测信息,诸如,帧内模式指示。
[0059] 作为另一示例,视频编码器200和视频解码器300可以被配置为根据 VVC或未来的视频译码标准进行操作。根据VVC,视频译码器(诸如,视频编码器200)将图片划分成多个译码树单元(CTU)。视频编码器200可以根据树结构(诸如,四叉树二叉树(QTBT)结构或多类型树(MTT)结构)来划分CTU。QTBT结构消除了多种划分类型的概念,诸如,在HEVC 的CU、PU和TU之间的分开。QTBT结构包括两个层级:根据四叉树划分来被划分的第一层级、以及根据二叉树划分来被划分的第二层级。QTBT结构的根结点对应于CTU。二叉树的叶结点对应于译码单元(CU)。
[0060] 在MTT划分结构中,可以使用四叉树(QT)划分、二叉树(BT)划分和一种或多种类型的三叉树(TT)划分来对块进行划分。三叉树划分是用于将块拆分成三个子块的划分。在一些示例中,三叉树划分将块分割成三个子块,其中不通过中心分割原始块。MTT中的划分类型(例如QT、BT 和TT)可以是对称的或不对称的。
[0061] 在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT 或MTT结构来表示亮度分量和色度分量中的每一个,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,诸如,用于亮度分量的一个QTBT/MTT结构和用于两个色度分量的另一个QTBT/MTT结构(或用于相应的色度分量的两个QTBT/MTT结构)。
[0062] 视频编码器200和视频解码器300可以被配置为使用根据HEVC的四叉树划分、QTBT划分、MTT划分或其它划分结构。为了解释的目的,关于QTBT划分来呈现对本公开内容的技术的描述。然而,应当理解,本公开内容的技术还可以应用于被配置为使用四叉树划分或其它类型的划分的视频译码器。
[0063] 本公开内容可以互换地使用“NxN”和“N×N”来表示块(诸如CU或其它视频块)的在垂直维度和水平维度上的样本尺寸,例如,16x16样本或 16×16样本。通常,16x16 CU将在垂直方向上有16个样本(y=16),在水平方向上有16个样本(x=16)。同样,NxN CU通常在垂直方向上有N个样本,在水平方向上有N个样本,其中,N表示非负整数值。CU中的样本可以按行和列来布置。此外,CU在水平方向上不必有与在垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中,M不一定等于N。
[0064] 视频编码器200对针对表示预测信息和/或残差信息以及其它信息的 CU的视频数据进行编码。预测信息指示如何预测CU以便形成针对CU的预测块。残差信息通常表示在进行编码之前的CU的样本与预测块之间的逐样本差异。
[0065] 为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成针对CU的预测块。帧间预测通常指根据先前被译码的图片的数据来预测CU,而帧内预测通常指根据相同图片的经先前编码的数据来预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动向量来生成预测块。视频编码器200通常可以执行运动搜索,以识别与CU例如就CU 与参考块之间的差异而言接近地匹配的参考块。视频编码器200可以使用绝对差的和(SAD)、平方差的和(SSD)、平均绝对差(MAD)、均方差(MSD) 或其它此类差计算以计算差异度量,以确定参考块是否与当前CU接近地匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
[0066] 一些示例VVC还提供仿射运动补偿模式,其可以被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或多个运动向量,例如,放大或缩小、旋转、透视运动或其它不规则运动类型。
[0067] 为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。VVC的一些例子提供了67种帧内预测模式,包括各种方向模式、以及平面模式和DC模式。通常,视频编码器200选择帧内预测模式,该帧内预测模式描述对当前块(例如,CU的块)的相邻样本,其中从相邻样本预测当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行译码,这样的样本通常可以在与当前块相比相同的图片中的当前块的上方、上方和左侧、或者左侧。
[0068] 视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用了各种可用的帧间预测模式中的哪一种帧间预测模式、以及针对对应的模式的运动信息的数据进行编码。例如,对于单向帧间预测或双向帧间预测,视频编码器200可以使用高级运动向量预测(AMVP)或合并模式对运动向量进行编码。视频编码器200可以使用类似的模式,以编码针对仿射运动补偿模式的运动向量。
[0069] 在诸如对块的帧内预测或帧间预测之类的预测之后,视频编码器200可以计算针对块的残差数据。诸如残差块的残差数据表示块与使用对应的预测模式形成的针对块的预测块之间的逐样本差异。视频编码器200可以对残差块应用一个或多个变换,以在变换域而不是样本域中产生经变换的数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。另外,视频编码器200可以在第一变换之后应用第二变换,诸如,模式相关的不可分二次变换(MDNSST)、信号相关变换、Karhunen‑Loeve变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
[0070] 如上所述,在用以产生变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常指用于将变换系数量化以可能减少用于表示系数的数据的量,从而提供进一步的压缩的处理。通过执行量化处理,视频编码器200可以减小与部分或全部系数相关联的比特深度。例如,视频编码器200可以在量化期间将n‑比特的值向下舍入成m‑比特的值,其中 n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要被量化的值的逐比特右移。
[0071] 在量化之后,视频编码器200可以扫描变换系数,根据包括经量化的变换系数的二维矩阵来产生一维向量。扫描可以被设计为:在向量的前面放置较高能量的(并从而较低频率的)系数,并在向量的后面放置较低能量的 (并从而较高频率的)变换系数。在一些示例中,视频编码器200可以利用预定义的扫描顺序,以扫描经量化的变换系数,以产生序列化的向量,并且然后对向量的经量化的变换系数进行熵编码。在其它示例中,视频编码器 200可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器200可以例如根据上下文自适应二进制算术编码(CABAC),来对一维向量进行熵编码。视频编码器200还可以对针对用于描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,以供视频解码器 300在解码视频数据时使用。
[0072] 为了执行CABAC,视频编码器200可以将上下文模型内的上下文指派给要发送的符号。例如,上下文可以涉及符号的相邻值是否为零值。概率确定可以是基于被指派给符号的上下文的。
[0073] 视频编码器200还可以例如在图片头、块头、条带头或其它语法数据 (诸如,序列参数集(SPS)、图片参数集(PPS)、或视频参数集(VPS)) 中,生成去往视频解码器300的语法数据,诸如,基于块的语法数据、基于图片的语法数据和基于序列的语法数据。视频解码器300同样可以解码这样的语法数据,以确定如何解码对应的视频数据。
[0074] 以这种方式,视频编码器200可以生成比特流,该比特流包括经编码的视频数据,例如,用于描述将图片划分成块(例如,CU)的划分以及针对块的预测信息和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并解码经编码的视频数据。
[0075] 通常,视频解码器300执行与视频编码器200执行的处理互易的处理,以解码比特流的经编码的视频数据。例如,视频解码器300可以使用CABAC 以与视频编码器200的CABAC编码处理基本类似的(尽管互易的)方式,来解码针对比特流的语法元素的值。语法元素可以定义:将图片划分成CTU 的划分信息、以及根据对应的划分结构(诸如QTBT结构)对每个CTU进行划分以定义CTU的CU。语法元素还可以定义针对视频数据的块(例如, CU)的预测和残差信息。
[0076] 残差信息可以由例如经量化的变换系数来表示。视频解码器300可以将块的经量化的变换系数逆量化和逆变换,以再生针对该块的残差块。视频解码器300使用以信令发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)以形成针对该块的预测块。然后,视频解码器300可以(在逐样本的基础上)合并预测块和残差块以再生原始块。视频解码器300可以执行另外的处理,诸如执行去块处理以减少沿块的边界的视觉伪影(visual artifacts)。
[0077] 根据本公开内容的技术,视频编码器200和视频解码器300可以被配置为使用在本公开内容中描述的示例技术来执行可切换插值滤波(SIF)。作为一个示例,被用于执行SIF的SIF参数(例如,被用于确定插值滤波器系数的索引)不需要是基于自适应运动向量分辨率(AMVR)的条件来以信号发送的(例如,由视频编码器200输出的并由视频解码器300接收的)。例如,以下描述的一些技术在基于在AMVR中使用的运动向量差的分辨率来以信号发送(例如,由视频编码器200输出并由视频解码器300接收)SIF 参数时受到限制。根据在本公开内容中描述的一个或多个示例,SIF参数可以不限于基于在AMVR中使用的运动向量差的分辨率来以信号发送(例如,输出或接收)。这样,示例技术允许利用SIF,而不管在AMVR中使用的运动向量差的分辨率如何,这既而可以使得视频编码器200和视频解码器300 执行较好的视频压缩。
[0078] 此外,在一些示例中,视频编码器200和视频解码器300可以利用用于以信号发送SIF参数的信令机制,该SIF参数采用在VVC中可用的不同的译码模式中存在的特定依赖性。视频编码器200和视频解码器300可以不限于仅从来自空间相邻块的运动向量预测器候选继承SIF参数。
[0079] 本公开内容通常可以指:“以信号发送”特定的信息,诸如语法元素。术语“以信号发送”通常可以指被对被用以解码经编码的视频数据的语法元素和/或其它数据的值的通信。即,视频编码器200可以在比特流中以信号发送语法元素的值。一般来说,以信号发送指的是在比特流中生成值。如上所述,源设备102可以基本上实时地或不实时地将比特流传输给目的地设备116,诸如,可能发生在将语法元素储存到储存设备112以供目的地设备 116稍后获取时。
[0080] 下面是用于视频译码的一些附加信息,并重申或建立在上述描述的基础上。例如,下面是提供用于运动向量预测相关技术的更多信息。
[0081] 视频译码标准包括ITU‑T H.261、ISO/IEC MPEG‑1Visual(视频)、ITU‑ T H.262或ISO/IEC MPEG‑2Visual、ITU‑T H.263、ISO/IEC MPEG‑4Visual 和ITU‑T H.264(也称为ISO/IEC MPEG‑4AVC),包括其可伸缩视频译码 (SVC)和多视图视频译码(MVC)扩展。MVC的最新联合草案是在2010 年3月的ITU‑T建议H.264的“通用视听服务的高级视频译码”中描述的。
[0082] 另一种视频译码标准是高效视频译码(HEVC),其由ITU‑T视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作小组(JCT‑VC)开发。如上所述,VVC目前也在开发中。
[0083] 下面描述图片间预测技术的示例。图片间预测的示例包括:1)利用空间、时间、基于历史和成对平均合并候选的块运动复制;2)仿射运动间预测;3)基于子块的时间运动向量预测;4)AMVR、5)用于时间运动预测的基于8x8块的运动压缩;6)高精度(1/16像素)运动向量存储和运动补偿,其利用用于亮度分量的8抽头插值滤波器和用于色度分量的4抽头插值滤波器;7)三角形划分;8)经合并帧内和帧间预测;9)与运动向量差合并(MMVD);10)对称运动向量差(MVD)译码;11)双向光流;12) 解码器侧运动向量细化;和13)双向预测加权平均。
[0084] 对于每个经帧间预测CU,包括运动向量、参考图片索引和参考图片列表使用索引的运动参数以及附加信息是与VVC的新译码特征一起用于帧间预测样本生成的。运动参数可以以显式或隐式方式以信号发送的。例如,视频编码器200可以在比特流中以信号发送运动参数,视频解码器300可以通过读取(例如,解析)在比特流中的运动参数来确定运动参数。在另一示例中,视频编码器200可以不在比特流中以信号发送运动参数,并且视频解码器300可以推断(例如,确定)运动参数。例如,当利用跳过模式对 CU进行译码时,CU是与一个PU相关联的,并且没有显著的残差系数、没有经译码的运动向量增量或没有参考图片索引。指定了合并模式,由此从相邻CU获得针对当前CU的运动参数,包括空间和时间候选、以及在VVC 中引入的附加调度。合并模式可以被应用于任何经预测间CU,而不仅仅适用于跳过模式。合并模式的替代方案是对运动参数的显式传输,其中,运动向量、针对每个参考图片列表的对应参考图片索引以及参考图片列表使用标志以及其它信息是显式地针对每个CU以信号发送的。
[0085] 除了HEVC中的帧间译码特征外,VTM4(VVC测试模型4)还包括许多新的和细化的帧间预测编码工具,如下所示:1)扩展合并预测,2) MMVD,3)利用对称MVD信号发送的AMVP模式,4)仿射运动补偿预测,5)基于子块的时间运动向量预测(SbTMVP),6)AMVR,7)运动场存储:1/16亮度样本MV存储和8x8运动场压缩,8)加权平均双向预测 (BWA),9)双向光流(BDOF),10)解码器侧运动向量细化(DMVR), 11)三角形划分预测,以及12)经合并帧间和帧内预测(CIIP)。
[0086] 下面提供了在VVC中规定的帧间预测技术的详细信息,从子像素插值滤波开始。视频压缩技术执行空间和时间预测,以减少或消除在输入视频信号中固有的冗余。为了减少时间冗余(即,相邻帧中的视频信号之间的相似性),执行运动估计以跟踪视频对象的运动。运动估计可以在大小可变的块上进行。作为运动估计结果的对象位移通常称为运动向量。
运动向量可以具有半像素、四分之一像素、1/16像素精度(或任何更高精度)。这允许视频译码器(例如,视频编码器200和视频解码器300)以比整数像素位置高的精度跟踪运动场,从而获得较好的预测块。当使用具有分数像素值的运动向量时,执行插值操作。
[0087] 在运动估计之后,可以使用特定的率失真模型(例如,通过视频编码器 200或视频解码器300)确定最佳运动向量。然后,可以通过使用最佳运动向量的运动补偿来形成预测视频块。通过从原始视频块减去预测视频块来形成残差视频块。然后对残差块应用变换。然后对变换系数进行量化,并对其进行熵译码以进一步降低比特率。图2是可以执行本公开内容的技术的示例视频编码器的框图,包括使用基于块的运动估计来减少时间冗余。在一些示例中,图1的视频编码器200可以执行图2的视频编码器的技术。一些视频译码系统(例如,H.264/AVC或HEVC标准)也允许对经帧内译码块进行空间预测,这在图2中没有描述。
[0088] 在图2的示例中,将当前视频块130提供给运动估计单元134和残差生成单元138。残差生成单元138可以通过从当前块减去预测块来生成残差块。块变换单元142可以对残差块执行变换操作以生成变换系数。量化单元146可以量化变换系数。熵译码单元150可以对来自运动估计单元134 的经量化变换系数和运动向量进行熵译码,并在比特流中输出经编码经量化变换系数和运动向量信息。逆量化单元148可以对经量化变换进行逆量化。逆变换单元144可以逆变换经变换系数以重构残差数据。参考帧存储器132可以向运动估计单元
134和运动补偿单元136提供参考帧。运动估计单元134可以基于参考帧生成运动向量。运动补偿单元136可以执行运动补偿。重建单元140可以重建视频数据块。
[0089] 图3是示出用于四分之一样本亮度插值的整数样本和分数样本位置的示例的概念图。以1/4像素精度为例,图3显示了来自参考帧的整数像素样本 (也称为全像素,以带大写字母的着色块显示),例如,整数像素样本22,其可以被用于对分数像素(也称为子像素,以带小写字母的未着色块显示) 样本进行插值。总共有15个子像素位置,在图3中标记为“a0,0”到“r0,0”,例如,子像素位置24。在HEVC中,标记为a0,0、b0,0、c0,0、d0,0、h0,0和n0,0的样本是通过对最近的整数位置样本应用8抽头滤波器导出的。然后,通过对样本a0,i、b0,i和c0,i应用8抽头滤波器,导出标记为e0,0、i0,0、p0,0、f0,0、 j0,0、q0,0、g0,0、k0,0和r0,0的样本,其中,垂直方向上,i=的‑3..4。要被应用的8抽头过滤器如表1所示。
[0090] 表1.针对四分之一像素MV准确度的HEVC 8抽头亮度插值滤波器
[0091]相移 系数
0 {0,0,0,64,0,0,0,0},
1 {‑1,4,‑10,58,17,‑5,1,0},
2 {‑1,4,‑11,40,40,‑11,4,‑1},
3 {0,1,‑5,17,58,‑10,4,‑1},
[0092] 在一些示例中,启用了1/16‑MV分辨率。因此,具有16个不同的相位的滤波器被用于插值,如下表2所示。然而,一组固定的8抽头滤波器仍被用于插值。表2.针对1/16像素MV准确度的8抽头亮度插值滤波器
[0093]相移 系数
0 {0,0,0,64,0,0,0,0},
1 {0,1,‑3,63,4,‑2,1,0},
2 {‑1,2,‑5,62,8,‑3,1,0},
3 {‑1,3,‑8,60,13,‑4,1,0},
4 {‑1,4,‑10,58,17,‑5,1,0},
5 {‑1,4,‑11,52,26,‑8,3,‑1},
6 {‑1,3,‑9,47,31,‑10,4,‑1},
7 {‑1,4,‑11,45,34,‑10,4,‑1},
8 {‑1,4,‑11,40,40,‑11,4,‑1},
9 {‑1,4,‑10,34,45,‑11,4,‑1},
10 {‑1,4,‑10,31,47,‑9,3,‑1},
11 {‑1,3,‑8,26,52,‑11,4,‑1},
12 {0,1,‑5,17,58,‑10,4,‑1},
13 {0,1,‑4,13,60,‑8,3,‑1},
14 {0,1,‑3,8,62,‑5,2,‑1},
15 {0,1,‑2,4,63,‑3,1,0}
[0094] 下面描述扩展合并预测。在VTM4中,合并候选列表是通过依次包括以下五种类型的候选来构建的:1)来自空间邻居CU的空间运动向量预测器(MVP),2)来自并置CU的时间MVP(TMVP),3)来自FIFO表的基于历史的MVP(HMVP),4)成对平均MVP,以及5)零MV。
[0095] 视频编码器200可以在切片报头(slice header)中以信号发送合并列表的大小,在VTM4中的合并列表的最大允许大小是6。对于以合并模式译码的每个CU,可以使用截断的一元二值化来编码最佳合并候选的索引。合并索引的第一bin是用上下文来译码的,旁路译码被用于其它bin。下面是每个类别的合并候选的生成过程。
[0096] 下面描述了空间候选的导出。图4是示出空间合并候选的示例位置的概念图。
[0097] 在VVC中的空间合并候选的导出是与HEVC中的导出相同的。在位于图4所示位置的候选当中选择最多四个合并候选。导出的顺序为A0 26、 B0 28、B1 30、A1 32和B 2 33。仅在位置A0 26、B0 28、B1 30和A1 32的任何CU不可用(例如,因为它属于另一个切片或瓦片(tile))或被帧内译码时才考虑位置B2 33。在添加位置A1 32处的候选之后,其余候选的添加受到冗余检验的影响,该冗余检验确保具有相同运动信息的候选从列表中排除,从而提高译码效率。为了降低计算复杂度,在上述冗余检验中没有考虑所有可能的候选对。图5是示出针对空间合并候选的冗余校验考虑的候选对的示例的概念图。仅考虑与图5中的箭头(例如,箭头29或箭头31)链接的对,并且仅当被用于冗余校验的对应候选不具有相同的运动信息时,才将候选添加到列表中。
[0098] 下面描述了时间候选的导出。图6是示出用于时间合并候选的运动向量缩放的示例的概念图。在一些示例中,只有一个时间候选被添加到列表中。具体地,在时间合并候选的导出中,基于属于并置的参考图片的并置的CU 来导出经缩放运动向量。被用于导出并置的CU的参考图片列表是在切片报头中显式地以信号发送的。例如,视频编码器200可以在比特流中在切片报头中以信号发送被用于导出并置的CU的参考图片列表,并且视频解码器300可以通过读取在比特流中的信号来确定参考图片列表。如图6中的虚线所示,获得用于当前CU 42的时间合并候选的经缩放运动向量50,其是使用图片顺序计数(POC)距离tb 46和td 48从并置的CU 44的运动向量52缩放的,其中tb被定义为在当前图片的参考图片(参考图片36) 和当前图片(当前图片38)之间的POC差,td被定义为在并置的图片的参考图片(参考图片34)和并置的图片(并置的图片40)之间的POC差。将时间合并候选的参考图片索引设置为零。
[0099] 图7是示出时间合并候选的候选位置的示例的概念图。如图7所示,在位置C0 54和位置C1 56处的候选之间选择时间候选的位置。如果在位置 C0 54处的CU不可用、是经帧内编码的或在译码树单元(CTU)的当前行之外,则使用在位置C1 56处的候选。否则,在时间合并候选的导出中使用位置C0 54。
[0100] 下面描述了基于历史的合并候选的导出。HMVP合并候选被添加到在空间MVP和TMVP之后的合并列表中。在HMVP技术中,先前经译码的块的运动信息被存储在表中,并被用作用于当前CU的MVP。表是用在编码/解码过程期间的多个HMVP候选来维护的。当遇到新的CTU行时,表被重置(清空)。每当存在非子块经帧间译码的CU时,相关联的运动信息将作为新的HMVP候选被添加到表中的最后一个条目中。
[0101] 在VTM4中,HMVP表大小S被设置为6,这表示最多可以向表中添加6个HMVP候选。当向表中插入新的运动候选时,利用经约束先进先出 (FIFO)规则,其中,首先应用冗余校验以查找表中是否存在相同的HMVP 候选。如果找到,将从表中移除相同的HMVP候选,并且将在移除的HMVP 候选之后的所有HMVP候选在表中向前移动。
[0102] HMVP候选可以被用于合并候选列表构建过程。例如,可以按顺序检查表中最新的若干HMVP候选,并在TMVP候选之后将其插入候选列表中。可以对HMVP候选应用冗余校验,将HMVP候选与空间或时间合并候选进行比较。
[0103] 为了减少冗余检验操作的数量,包括以下简化:1)被用于合并列表生成的HMPV候选的数量被设置为(N<=4)?M:(8–N),其中,N表示合并列表中的现有候选的数量,M表示表中的可用HMVP候选的数量;以及 2)一旦可用合并候选的总数量达到最大允许的合并候选减去1,则终止合并候选列表构建过程的HMVP部分。
[0104] 下面描述成对平均合并候选的导出。通过对现有合并候选列表中的预定义候选对进行平均来生成成对平均候选,并且预定义候选对被定义为{(0, 1)、(0,2)、(1,2)、(0,3)、(1,3)、(2,3)},其中,数字表明合并候选列表的合并索引。针对每个参考列表分别计算平均运动向量。如果两个运动向量在一个列表中都可用,则即使当运动向量指向不同的参考图片时,也对这两个运动向量进行平均;如果只有一个运动向量可用,则直接使用该运动向量(例如,不平均);如果没有可用的运动向量,则列表将设置为无效。当在添加了成对平均合并候选之后,合并列表未满时,在列表的末尾插入零 MVP,直到达到最大合并候选数量为止。
[0105] 下面描述了MMVD。除了合并模式(其中,隐式地导出的运动信息直接被用于生成针对当前CU的预测样本)之外,在VVC标准中还引入了 MMVD。视频编码器200可以在发送跳过标志和合并标志之后立即以信号发送MMVD标志,以指定MMVD模式是否被用于CU。
[0106] 在MMVD中,在选择了合并候选之后,该候选是通过以信号发送的 MVD的信息被进一步细化的。以信号发送的MVD的信息包括合并候选标志、用于指定运动幅度的索引和用于指示运动方向的索引。在MMVD模式下,选择在合并列表中的前两个候选的一个作为针对MV的基础。视频编码器200可以以信号发送合并候选标志,以指定两个候选中的哪一个被用作针对MV的基础。
[0107] 距离索引指定了运动幅度信息,并指示从起始点(例如,MV)的预定义偏移。图8A和8B是示出利用运动向量差(MMVD)的合并模式的搜索点的示例的概念图。如图8A和8B所示,偏移被加到起始MV的水平分量或垂直分量。图8A描绘了多个L0(列表0)参考56偏移,图8B描绘了多个L1(列表1)参考58偏移。表3指定了距离索引与预定义偏移的关系。
[0108] 表3.距离索引和预定义偏移的关系
[0109]
[0110] 方向索引代表MVD相对于起始点的方向。对于由方向索引指定的MV 偏移的符号,方向索引可以代表下面的表4所示的四个方向中的任何一个。表4中MVD符号的含义可以因与起始MV相关的信息而异。当起始MV 是单向预测MV,或者是双向预测MV(其中L0(列表0)和L1(列表1) 中的MV都指向当前图片的相同的侧(例如,两个参考的POC都大于当前图片的POC,或者都小于当前图片的POC))时,表4中的符号指定了被添加到起始MV的MV偏移的符号。当起始MV是双向预测MV(其中,两个MV指向当前图片的不同的侧时(例如,一个参考的POC大于当前图片的POC,而另一个参考的POC小于当前图片的POC))时,下面表4中的符号指定了被加到起始MV(例如,指向在参考图片列表0中标识的参考图片的MV)的列表0MV分量的MV偏移的符号,并且列表1MV分量的符号具有相反的值(例如,指向在参考图片列表1中标识的参考图片的MV)。
[0111] 表4.由方向索引指定的MV偏移的符号
[0112]方向IDX 00 01 10 11
x‑轴 + – N/A N/A
y‑轴 N/A N/A + –
[0113] 以下描述仿射模式。在HEVC中,只有平移运动模型被应用于运动补偿预测(MCP)。而在现实世界中,有很多种运动,例如,放大/缩小、旋转、透视运动和其它不规则运动。在一些示例中,应用了简化的仿射变换运动补偿预测。图9A和9B是分别示出4参数仿射模型和6参数仿射模型示例的概念图。如图9A和9B所示,块的仿射运动场由两个或三个控制点运动向量(CPMV)描述。在图9A中,块60的仿射运动场由两个CPMV(mv0和 mv1)描述,而在图9B中,块62的仿射运动场由三个CPMV(mv0、mv1和mv2)描述。
[0114] 4参数仿射模型和6参数仿射模型的块的运动向量场(MVF)由下面两个方程描述:
[0115]
[0116]
[0117] 其中(mv0x,mv0y)、(mv1x,mv1y)、(mv2x,mv2y)是左上角、右上角和左下角控制点的运动向量。(在6参数仿射模型的情况下)。
[0118] 为了进一步简化MCP,可以应用块大小为4×4的基于子块的仿射变换预测。图10是示出每子块的仿射运动向量(MV)场的示例的概念图。为了导出每个4×4子块的运动向量,如图10所示,根据方程(1)或(2) 计算每个子块的中心样本的运动向量,并被舍入到1/16分数准确度。例如,视频编码器200和视频解码器300可以计算每个子块(例如,子块64)的中心样本的运动向量。在MCP之后,每个子块的高准确度运动向量被舍入并以与普通运动向量相同的准确度本保存。
[0119] 下面描述经重叠块运动补偿(OBMC)。OBMC先前已在H.263中使用。在一些示例中,与H.263不同,可以在CU级别上使用语法来打开和关闭 OBMC。在一些示例中,当使用OBMC时,对所有运动补偿(MC)块边界 (CU的右边界和下边界除外)执行OBMC。此外,OBMC被应用于亮度分量和色度分量两者。
[0120] 图11是示出经重叠块运动补偿(OBMC)的示例的概念图。当前块C 66有自己的MV MV_C 68,其指向C 66的参考块C_R0 70。L 72是C 66的左相邻块。L 72也有自己的MV MV_L 74,其指向L 72的参考块L_R 76。 C 66可以使用MV_L 74(显示为MV_L 78)以获得另一个参考试块C_R1 80。 C_R0 70和C_R1 80可以乘以加权因子并相加以形成C 66的最终预测信号。
由于位于L_R 76旁边,C_R1 80有助于减少在L 72和C 66之间的边界效应。
[0121] 图12A是示出子块的概念图,其中OBMC应用于在译码单元(CU) 和/或预测单元(PU)边界处的子块。图12A与图12B一起讨论。图12B是示出子块的概念图,其中OBMC应用于在AMVP模式下的子块。
[0122] 在一些示例中,MC(运动补偿)块对应于译码块。当CU是用子‑CU 模式(包括子‑CU合并、仿射和帧速率上转换(FRUC)模式)被译码时, CU的每个子块都是MC块。为了以统一的方式处理CU边界,视频译码器(例如,视频编码器200或视频解码器300)可以在子块级别上针对所有 MC块边界执行OBMC,其中,子块大小被设置为4×4,如图12A和12B 所示。例如,视频编码器200或视频解码器300可以在子块级别上向图12A 的块82或图12B的块84执行OBMC。
[0123] 当OBMC应用于当前子块时,除当前运动向量外,视频译码器(例如,视频编码器200或视频解码器300)可以使用四个连接的相邻子块的运动向量(如果可用且与当前运动向量不相同的话)以导出针对当前子块的预测块。视频译码器可以基于多个运动向量来合并这些多个预测块以生成当前子块的最终预测信号。
[0124] 基于相邻子块的运动向量的预测块被记为PN,其中N表示上(above)、下(below)、左(left)、右(right)相邻子块的索引,且基于当前子块的运动向量的预测块被记为PC。当PN是基于包含与当前子块相同的运动信息的相邻子块的运动信息时,视频译码器(例如,视频编码器200或视频解码器 300)可能不根据PN执行OBMC。否则,视频译码器可以将PN的每个样本加到PC中的相同样本,例如,将PN的四个行/列加到PC。视频译码器可以使用用于PN的加权因子{1/4,1/8,1/16,1/32},并且可以使用用于PC的加权因子{3/4,7/8,15/16,31/32}。例外情况是小MC块(例如,当译码块的高度或宽度等于4时,或者当用子‑CU模式对CU进行编码时),对于这种情况,视频译码器可以仅将PN的两个行/列加到PC。在这种情况下,视频译码器可以使用用于PN的加权因子{1/4,1/8},使用用于PC的加权因子{3/4,7/8}。对于基于垂直地(水平地)相邻子块的运动向量生成的PN,视频译码器可以用相同的加权因子将PN的同一行(例如,列)中的样本添加到PC。
[0125] 在一些示例中,对于大小小于或等于256个亮度样本的CU,视频编码器(例如,视频编码器200,或在一些示例中,视频编码器200的模式选择单元202,如下所述)可以以信号发送CU级别标志,以指示是否对于当前 CU应用OBMC。对于大小大于256个亮度样本的或未用AMVP模式来译码的CU,视频译码器(例如,视频编码器200或视频解码器300)可以缺省地应用OBMC。在视频编码器(例如,视频编码器200,或在一些示例中,视频编码器200的模式选择单元202)处,当OBMC被应用于CU时,在运动估计阶段期间确定OBMC的影响。视频译码器(例如,视频编码器200) 可以使用由OBMC使用顶相邻块和左相邻块的运动信息形成的预测信号,以补偿当前CU的原始信号的顶边界和左边界,然后应用运动估计处理。
[0126] 图13A和13B是示出基于三角形划分的帧间预测的示例的概念图。当使用三角形划分模式时,使用图13A所示的对角线分割或图13B所示的反对角线分割,将CU均匀地分割为两个三角形形状的划分。图13A中的对角线分割将CU分为划分1 330和划分2 332。图13B中的反对角线分割将 CU分为划分1 334和划分2 336。CU中的每个三角形划分使用其自身的运动被帧间预测的;对于每个划分只允许单向预测,即,每个划分有一个运动向量和一个参考索引。单向预测运动约束被应用以确保:与传统双向预测中一样,对于每个CU只需要两个运动补偿预测器。针对每个划分的单向预测运动是根据使用在VTM4第3.4.10.1节中描述的过程构建的单向预测候选列表来导出的。
[0127] 如果使用三角形划分模式,则进一步以信号发送指示三角形划分的方向的标志(对角线或反对角线)、以及两个合并索引(每个划分有一个)。例如,视频编码器200可以在比特流中以信号发送指示三角形划分的方向的标志和两个合并索引。在预测每个三角形划分后,使用利用自适应权重的混合过程来调整沿对角线或反对角线边缘的样本值。混合过程的此输出是针对整个CU的预测信号,与其它预测模式一样,变换和量化过程被应用于整个CU。最后,如在VTM4第3.4.10.3节所述,使用三角形划分模式预测的 CU的运动场可以被存储为4x4单元。
[0128] 下面描述单向预测候选列表的构建。图14是示出被用于构建单向预测候选列表的空间和时间相邻块的示例的概念图。单向预测候选列表由五个单向预测运动向量候选组成。如图14所示,根据七个相邻块(包括五个空间相邻块1、2、3、4和5以及两个并置的时间块6和7)导出针对块338 的单向预测候选列表。收集七个相邻块的运动向量,并按照以下顺序将其放入单向预测候选列表中:首先,单向预测相邻块的运动向量;然后,对于双向预测相邻块,L0(列表0)运动向量(即,双向预测MV的L0运动向量部分)、L1(列表1)运动向量(即,双向预测MV的L1运动向量部分)以及双向预测MV的L0和L1运动向量的经平均运动向量。如果候选的数量少于五个,则在列表的末尾添加零运动向量。
[0129] 下面描述了沿三角形划分边缘进行混合。图15是示出在针对三角形划分边缘的混合处理中使用的权重的概念图。在图15中,示出了用于亮度的示例权重映射340和用于色度的权重映射342。在使用三角形划分自身的运动预测每个三角形划分之后,对两个预测信号应用混合,以导出对角线或反对角线边缘周围的样本。在混合过程中可使用以下权重:用于亮度的{7/8、6/8、5/8、4/8、3/8、2/8、1/8},而用于色度的{6/8、4/8、2/8},如图15所示。
[0130] 下面介绍了AMVR。在HEVC中,当切片报头中的use_integer_mv_flag 等于0时,视频编码器200可以以信号发送以四分之一亮度样本为单元的 (在CU的运动向量和经预测运动向量之间的)MVD。在VVC中,引入了一种CU级别AMVR方案。AMVR允许CU的MVD以不同的精度被译码。根据用于当前CU的模式(普通AMVP模式或仿射AMVP模式),针对当前CU的MVD可以如下被自适应地选择:普通AMVP模式:四分之一亮度样本、整数亮度样本或四亮度样本;仿射AMVP模式:四分之一亮度样本、整数亮度样本或1/16亮度样本。
[0131] 如果当前CU至少有一个非零MVD分量,那么视频编码器200可以有条件地以信号发送CU级别MVD分辨率指示。如果所有MVD分量(即,针对参考列表L0(例如,列表0)和参考列表L1(例如,列表1)的水平 MVD和垂直MVD两者)为零,则视频解码器300可以推断四分之一亮度样本MVD分辨率。
[0132] 对于具有至少一个非零MVD分量的CU,视频编码器200可以以信号发送第一标志,以指示是否对于CU使用四分之一亮度样本MVD精度。如果第一标志为0,则不需要进一步的信号,并且对于当前CU使用四分之一亮度样本MVD精度。否则,视频编码器200以信号发送第二标志,以指示对于普通AMVP CU是使用整数亮度样本MVD精度还是四亮度样本MVD 精度。相同的第二标志被用于指示对于仿射AMVP CU是使用整数亮度样本MVD精度还是1/16亮度样本MVD精度。为了确保经重建的MV具有预期精度(四分之一亮度样本、整数亮度样本或四亮度样本),针对CU的运动向量预测器将在与MVD相加之前被舍入到与MVD的精度相同的精度。例如,视频编码器200和视频解码器300可以在将运动向量预测器加到MVD之前,将运动向量预测器舍入到与MVD的精度相同的精度。运动向量预测器向零舍入(即,负运动向量预测器向正无穷大舍入,正运动向量预测器向负无穷大舍入)。
[0133] 视频编码器200使用率失真(RD)检测来确定针对当前CU的运动向量分辨率。为了避免针对每个MVD分辨率始终执行三次CU级别RD检测,在VTM4中,仅有条件地调用对除四分之一亮度样本外的MVD精度的RD检测。对于普通AMVP模式,首先计算四分之一亮度样本MVD精度和整数亮度样本MV精度的RD成本。然后,将整数亮度样本MVD精度的RD成本与四分之一亮度样本MVD精度的RD成本进行比较,以确定是否需要进一步检测四亮度样本MVD精度的RD成本。当四分之一亮度样本 MVD精度的RD成本远小于整数亮度样本MVD精度的RD成本时,跳过四亮度样本MVD精度的RD检测。对于仿射AMVP模式,如果在检测仿射合并/跳过模式、合并/跳过模式、四分之一亮度样本MVD精度普通AMVP 模式和四分之一亮度样本MVD精度仿射AMVP模式的率失真成本之后,未选择仿射帧间模式,则不检测1/16亮度样本MV精度和1像素MV精度仿射帧间模式。此外,在1/16亮度样本和四分之一亮度样本MV精度仿射帧间模式下,使用在四分之一亮度样本MV精度仿射帧间模式下获得的仿射参数作为起始搜索点。
[0134] 下面描述了利用加权平均(BWA)的双向预测。在HEVC中,视频编码器200和视频解码器300通过平均从两个不同的参考图片获得的两个预测信号和/或使用两个不同的运动向量来生成双向预测信号。在VTM4中,双向预测模式被扩展到简单平均之外,以允许对两个预测信号进行加权平均。用于利用加权平均的双向预测的示例方程为Pbi‑pred=((8–w)*P0+w* P1+4)>>3(3‑9)。
[0135] 在加权平均双向预测中允许五个权重,w∈{‑2,3,4,5,10}。对于每个经双向预测的CU,权重w以两种方式之一来确定:1)对于非合并CU,视频编码器200可以在运动向量差之后以信号发送权重索引;2)对于合并CU,视频解码器300可以基于合并候选索引来根据相邻块推断权重索引。加权平均双向预测仅被应用于具有256个或更多个亮度样本的CU(即,CU宽度乘以CU高度大于或等于256)。对于低延迟图片,使用所有5个权重。对于非低延迟图片,只使用3个权重(w∈使用{3,4,5})。
[0136] 视频编码器200可以应用快速搜索算法来查找权重索引,而不会显著增加视频编码器200的复杂度。这些算法总结如下。更多信息可以从如下获得:Huang等人的“CE4‑related:Generalized bi‑prediction improvements combined from JVET‑L0197 and JVET‑L0296”,ITU‑T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET),第12次会议:中国澳门, 2018年10月3日至12日,JVET‑L0646(以下简称“JVET‑L0646”)。
[0137] 当与AMVR合并使用时,如果当前图片是低延迟图片,则仅针对1像素和4像素运动向量精度有条件地检测不等权重。当与仿射模式合并时,当且仅当仿射模式被选择为当前最佳模式时,才可以针对不等权重执行仿射运动估计。当双向预测中的两个参考图片相同时,仅有条件地检测不等权重。取决于在当前图片和当前图片的参考图片之间的POC(图片顺序计数) 距离、译码QP和时间级别,当满足特定条件时,不搜索不等权重。
[0138] 加权预测(WP)是H.264/AVC和HEVC标准支持的一种编码工具,用以有效地对具有衰落的视频内容进行译码。从VTM4开始,对WP的支持也被添加到VVC标准中。WP允许针对参考图片列表L0(列表0)和L1 (列表1)中的每个列表的每个参考图片以信号发送加权参数(权重和偏移)。然后,在运动补偿期间,应用了对应的参考图片的权重和偏移。WP和BWA 是针对不同类型的视频内容而设计的。为了避免WP和BWA之间的交互 (这可能使VVC解码器设计(例如视频解码器300)复杂化),如果CU使用WP,则视频编码器200不以信号发送BWA权重索引,并且视频解码器 300推断权重索引w为4(即,应用了相等的权重)。
[0139] 下面描述经切换插值滤波器(SIF)。Winken等人在ITU‑T SG 16 WP 3 和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第14次会议 (2019年3月19‑27日,瑞士日内瓦)的JVET‑N0309的“Non‑CE4:Switched half‑pel interpolation filter”中提出了半像素亮度插值滤波器的切换(在HEVC 插值滤波器和一个或两个替代滤波器之间)。
[0140] 在JVET‑N0309中公开的技术和对滤波器索引的信号发送取决于运动向量准确度。除了现有的四分之一像素、全像素和4像素AMVR模式外,还引入了新的半像素准确度AMVR模式。仅在半像素运动向量准确度的情况下,可以选择替代的半像素亮度插值滤波器。
[0141] 用于非仿射非合并经帧间译码CU的附加AMVR模式是可能的,其允许视频编码器200以半像素准确度以信号发送运动向量差。因此,对现有的VTM4.0 AMVR方案进行了扩展。
在语法元素amvr_flag之后,如果 amvr_flag=1,则有一个新上下文建模的二进制语法元素hpel_amvr_flag,其指示在hpel_amvr_flag=1时使用新的半像素AMVR模式。否则,例如,如果hpel_amvr_flag=0,则如在当前VVC草案中,由语法元素 amvr_precision_flag指示在全像素和4像素AMVR模式之间的选择。例如,如果hpel_amvr_flag=0,则视频编码器200可以在语法元素 amvr_precision_flag中以信号发送对全像素或4像素AMVR模式的选择。
[0142] JVET‑N0309描述了以信号发送用于使用半像素运动向量准确度(例如,半像素AMVR模式)的非仿射非合并经帧间译码CU的SIF。视频解码器 300可以基于新语法元素if_idx(其可以是SIF索引值)的值来在HEVC/VVC 半像素亮度插值滤波器和一个或多个替代的半像素插值之间切换。在JVET‑ N0309中,在半像素AMVR模式下,视频编码器200仅以信号发送语法元素if_idx。在使用空间合并候选的跳过/合并模式的情况下,语法元素if_idx 的值是从相邻块继承的。
[0143] JVET‑N0309定义了两个8抽头插值滤波器,作为常规HEVC/VVC半像素插值滤波器的替代方案。表6显示了在语法元素if_idx的值与经选择的半像素亮度插值滤波器之间的映射:
[0144] 表6.
[0145]if_idx 二值化 滤波器 插值滤波器系数
0 0 Filter 1(8‑抽头) [3,6,10,13,13,10,6,3]
1 10 Filter 2(8‑抽头) [‑1,‑1,9,25,25,9,‑1,‑1]
2 11 HEVC/VVC(8‑抽头) [‑1,4,‑11,40,40,‑11,4,‑1]
[0146] 下面表7显示了对针对每个1/16分数样本位置p的亮度插值滤波器系数fL[p]的指定。
[0147] 表7.
[0148]
[0149] 在下面的伪代码中,下划线被用于突出显示if_idx对用于AMVR的语法元素的依赖性(例如,仅当amvr_precision_idx[x0][y0]==1时才以信号发送if_idx)
[0150]
[0151]
[0152] amvr_flag[x0][y0]指定运动向量差的分辨率。等于0的amvr_flag[x0][y0] 指定运动向量差的分辨率是亮度样本的1/4。等于1的amvr_flag[x0][y0]指定运动向量差的分辨率是由amvr_precision_idx[x0][y0]进一步指定的。
[0153] 当amvr_flag[x0][y0]不存在时,amvr_flag[x0][y0]被如下推断:
[0154] –如果MODE_IBC,则amvr_flag[x0][y0]等于1。
[0155] –否则,如果(CuPredMode[x0][y0]!=MODE_IBC),则amvr_flag[x0][y0] 等于0。
[0156] amvr_precision_idx指定了利用(如表8中针对对AmvrShift的指定的定义的)AmvrShift的运动向量差的分辨率。当amvr_precision_idx不存在时,amvr_precision_idx被推断为等于0。
[0157] 表8.对AmvrShift的指定
[0158]
[0159] hpel_if_idx[x0][y0]指定了被用于半样本位置的插值滤波器系数。当 hpel_if_idx[x0][y0]不存在时,推断hpel_if_idx[x0][y0]等于2。 MvdL0[x0][y0][0]=vdL0[x0][y0][0]<
[0160] SIF设计的若干方面导致视频译码质量差或效率低。JVET‑N0309中的在信号发送方面提出的SIF设计是与AMVR信号发送合并的,且不允许分别使用这两种译码技术。在SIF和AMVR之间的分开的缺乏可能导致当分开使用这些译码工具可能是优选的时的技术问题。在JVET‑N0309中描述的 SIF信号发送机制也没有利用在VVC中可用的不同的译码模式中存在的特定依赖性。此外,在合并模式的情况下,SIF过滤器索引继承仅限于来自空间邻居的MVP候选。这些限制和缺点可能导致译码效率降低和带宽利用率较高。
[0161] 下面描述可以克服上述技术问题的示例技术,并提供具有实际应用的技术解决方案,以改进视频译码的技术。例如,本公开内容描述了通过将SIF 信号发送和继承机制与其它视频译码工具(例如,合并列表构建、基于历史的MVP、加权预测、BWI、CIIP、MMVD、AMVP、DMVR等的其它组件) 协调和/或联合优化来提高SIF的压缩效率的若干种技术。在本文描述的示例技术可以被单独使用或以任何组合被使用。
[0162] 为了改进从合并列表继承SIF索引,下面描述了通过合并过程的一般 SIF参数继承。SIF的参数(例如,if_idx)可以出现在针对所有MVP候选 (甚至针对非半像素位置的MVP)的合并列表中。具有非半像素位置的MV 的运动信息可以与SIF参数一起被存储,SIF参数是通过比特流的语法元素来传送的(例如,通过在MMVD模式下的附加信号发送),或者是从合并 MVP候选(对于MMVD或AMVP模式)继承的,或者由视频编码器200 和视频解码器300通过某种导出机制导出。在一些非合并模式(例如,合并 +MVD或AMVP)中,合并可以提供具有半像素分辨率且已验证了SIF参数(if_idx)(例如,已由例如视频编码器200通过率失真优化(RDO)选择的SIF参数)的预测器。在这种模式下以信号发送的附加MVD信息可以将最终MV更改为非半像素准确度。
[0163] 在一些示例中,通过合并过程继承的if_idx信息可以被存储用于生成的MV(甚至非半像素位置),即使对于当前块/MV未验证if_idx信息也是如此。在一些示例中,该信息可能不被用于特定的块/MV,但可以被存储在运动场中,并可用于通过合并继承供将来使用。通过存储if_idx信息并使 if_idx信息可供将来使用,即使局部MV在非半像素位置处可用的,也可以传播关于SIF参数的信息。
[0164] 例如,视频编码器200(例如,运动补偿单元224,其可以使用下文所述的SIF 225)或视频解码器300(例如,运动补偿单元316,其可以使用下文所述的SIF 317)可以确定针对视频数据的合并列表候选的SIF参数。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以执行合并处理。视频编码器200(例如,运动补偿单元 224)或视频解码器300(例如,运动补偿单元316)可以存储用于由合并过程产生的MV的SIF参数,而不管是否针对MV验证了SIF参数(例如,不管是否已由例如视频编码器200通过率失真优化(RDO)选择了SIF参数)。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以基于MV对视频数据进行译码。
[0165] 在一些示例中,利用MVD信息产生的最终MV(例如,在MMVD或AMVP中)可能被限制在半像素位置,例如,如果合并MVP候选具有可用的SIF参数的话。在一些示例中,此限制可能被施加在最终MV上,作为每分量或对于两个分量的向最近半像素位置的剪裁(clipping)或舍入。在一些示例中,可以对分量(mv.x或mv.y)施加限制,该分量是在合并MVP 输出中的半像素位置处找出的。例如,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将MV限制在半像素位置。视频编码器200(例如,运动补偿单元224)或视频解码器300 (例如,运动补偿单元316)可以通过将MV剪裁到最近的半像素位置或将 MV舍入到最近的半像素位置中之一,将MV限制到半像素位置。
[0166] 在一些示例中,可以对于变更针对MMVD模式或AMVP模式的信号发送,考虑来自合并MVP的SIF信息的可用性。例如,视频编码器200可以基于SIF参数被存储来变更针对MMVD模式或AMVP模式的信号发送。例如,视频编码器200可以根据SIF信息的可用性来改变用于以信号发送 MMVD索引的上下文。
[0167] 下面描述了用于历史MVP的技术。在一些示例中,示例技术可以实现从基于历史的MVP继承SIF索引(if_idx)。例如,视频编码器200(例如,可以使用SIF 225的运动补偿单元224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以使得MV从基于历史的MVP继承SIF 参数(例如,if_idx)。在一些示例中,示例技术可以在历史缓冲器的管理中的if_idx变量。例如,视频编码器200(例如,运动补偿单元224)或者视频解码器300(例如,运动补偿单元316)可以利用SIF参数以管理历史缓冲器。例如,视频编码器200和视频解码器300可以在在历史缓冲器中包括MV信息(参考索引、预测方向、运动向量和if_idx)之前,来进行考虑 if_idx的修剪操作(检测MV冗余)。
[0168] 在时间MVP(TMVP)的一些示例中,示例技术可以实现SIF索引(if_idx) 从TMVP继承而来。例如,视频编码器200(例如,可以使用SIF 225的运动补偿单元224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以导致SIF参数(例如,if_idx)通过MV从时间MVP继承。示例技术还可以包括运动信息存储中的if_idx变量。在将TMVP的运动信息压缩到特定粒度(例如8x8)的情况下,视频编码器200和视频解码器300 可以应用特定的选择机制用于选择if_idx(例如,如果原始if_idx在较高的粒度上,例如,4x4块大小)以在时间运动信息中进行存储。在一些示例中,视频编码器200和视频解码器300可以将SIF应用限制为等于或大于由MV 信息压缩所使用的块大小。
[0169] 在一些示例中,对于成对平均MVP,成对平均MVP(PA‑MVP)的导出产生了包括“合成”MV信息的MVP候选,使得在视频解码器300处不可能立即出现先前使用的MV、参考索引或if_idx(SIF索引值)的组合。对于这种情况,视频编码器200(例如,可以使用SIF 225的运动补偿单元 224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可利用以下任一if_idx继承逻辑或其任何组合:
[0170] a、在一些示例中,可以定义缺省if_idx变量用于PA‑MVP候选。例如,缺省if_idx可以被设置为等于整数值(例如,0、1、2、3等)或可能指向HEVC过滤器的值。
[0171] b、在一些示例中,如果输入到PA‑MVP的两个MV信息分量(例如,配对中的两个候选)包含相同的if_idx值,则PA‑MVP可以继承if_idx 值。
[0172] c、在一些示例中,if_idx值可以从可用的向PA‑MVP输入的MV信息分量继承(如果只有一个分量可用),或者可以按特定顺序继承(例如,从第一可用PA‑MVP分量的if_idx)。
[0173] d、在一些示例中,if_idx值可以通过特定的选择逻辑从输入到PA‑MVP 的MV信息分量继承,例如,指定具有特定特性的滤波器(例如,最强的低通滤波器特性,或最弱的可用滤波器)的可用if_idx。
[0174] e、在一些示例中,if_idx值可以通过特定的选择逻辑从输入到PA‑MVP 的MV信息分量继承,例如,在合并列表中MVP候选在统计上优选的可用if_idx(更经常使用),或者在已构建的合并列表中统计上不太优选的可用if_idx(未使用或很少使用)。
[0175] 例如,视频编码器200(例如,运动补偿单元224)或视频解码器300 (例如,运动补偿单元316)可以确定成对平均运动向量预测器(MVP)的第一运动向量分量的SIF索引值等于成对平均MVP的第二运动向量分量的 SIF索引值。基于第一运动向量分量的SIF索引值等于第二运动向量分量的 SIF索引值,视频编码器200(例如,运动补偿单元224)或视频解码器300 (例如,运动补偿单元316)可以将成对平均MVP的SIF索引设置为等于第一运动向量分量的SIF索引。视频编码器200(例如,运动补偿单元224) 或视频解码器300(例如,运动补偿单元316)可以基于成对平均MVP的 SIF索引值对视频数据进行译码。
[0176] 在一些示例中,成对平均MVP包括第一成对平均MVP,其中第二成对平均MVP包括第三MV分量和第四MV分量。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定第二成对平均MVP的第三MV分量的SIF索引值是否等于成对平均MVP的第四MV分量的SIF索引值。基于第三MV分量的 SIF索引值不等于第四MV分量的SIF索引值,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将第二成对平均MVP的SIF索引值设置为缺省值,例如整数值(例如,0、1、 2、3等)。在一些示例中,基于第三MV分量的SIF索引值不等于第四MV 分量的SIF索引值,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将第二成对平均MVP的SIF索引值设置为在第一MV分量的SIF索引值和第二MV分量的SIF索引值之间的第一可用SIF索引值。在一些示例中,第三MV分量的SIF索引值指向第一插值滤波器,第四MV的SIF索引值分量指向第二插值滤波器。在一些示例中,基于第三MV分量的SIF索引值不等于第四MV分量的SIF 索引值,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以基于相对预定特性来设置第二成对平均MVP 的SIF索引值以指向第一插值滤波器或第二插值滤波器。在一些示例中,相对预定特性可以是较强滤波器或较弱滤波器中的一个。
[0177] 在一些示例中,基于第三MV分量的SIF索引值不等于第四MV分量的SIF索引值,视频编码器200(例如,运动补偿单元224)或视频解码器 300(例如,运动补偿单元316)可以基于标准来将第二成对平均MVP的 SIF索引值设置为合并列表中的MVP候选的SIF索引值。在一些示例中,标准可以是最常用的候选、未使用的候选或最少使用的候选中的一个。
[0178] 对于双向到单向MV信息转换,对于特定大小(例如,4x4)的块大小,可以约束特定预测方向(例如,双向)。例如,视频解码器300可以将通过以信号发送的合并列表索引提供的双向预测MVP转换为单向预测MVP。从双向预测MVP针对此类块(例如,4x4块)继承的if_idx值可以通过以下任一方式修改:
[0179] a、在一些示例中,可以定义用于此类块的缺省if_idx变量,例如,if_idx=3或HEVC过滤器。
[0180] b、在一些示例中,如果双向预测的两个MV信息分量由相同的if_idx 值组成,则可以继承if_idx值。
[0181] c、在一些示例中,if_idx值可以从双向预测的MV信息分量继承(如果只有一个分量可用的话),或者可以按照特定顺序继承(例如,如果继承了从列表0的if_idx的话),或者可以作为参考索引的函数继承。
[0182] d、在一些示例中,if_idx值可以通过特定的选择逻辑从双向预测的MV 信息分量继承,例如,指定具有特定特性的滤波器(例如,最强的低通滤波器特性,或最弱的可用滤波器)的可用if_idx。
[0183] e、在一些示例中,if_idx值可以通过特定的选择逻辑从双向预测的MV 信息分量继承,例如,在合并列表中的MVP候选统计上优选的可用 if_idx(经常使用),或者在已构建的合并列表中统计上不太优选的可用 if_idx(未使用或很少使用)。
[0184] 例如,在视频数据的当前块是双向预测块的情况下,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定当前块大小,其中,SIF参数是基于当前块大小来确定的。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定双向预测块的第一MV分量的SIF参数是否等于双向预测块的第二MV分量的SIF参数,并且基于第一MV分量的 SIF参数等于第二MV分量的SIF参数,将SIF参数设置为等于第一MV分量。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过将SIF参数设置为第一MV 分量的SIF参数和第二MV分量的SIF参数中的第一可用参数来确定SIF 参数。
[0185] 在一些示例中,第一MV分量的SIF参数指向第一插值滤波器,第二 MV分量的SIF参数指向第二插值滤波器。在一些示例中,视频编码器200 (例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316) 确定SIF参数包括基于相对预定特性将SIF参数设置为第一MV分量的SIF 参数或为第二MV分量的SIF参数。在一些示例中,相对预定特性是较强滤波器或较弱滤波器中的一个。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)通过将SIF 参数设置为等于最常使用的候选、未使用的候选或最少使用的候选中的一个的SIF参数来确定SIF参数。
[0186] 对于用于合并MVD(MMVD)的SIF,在合并+MVD中,合并过程可提供指向半像素位置并已验证(由例如视频编码器200通过RDO选择)SIF 参数(if_idx)的预测器。视频编码器200可以在此模式下以信号发送附加 MVD信息,该信息可以将最终MV变更为非半像素准确度。在一些示例中, if_idx信息可从合并MVP继承,并可以被存储用于生成的MV,即使if_idx 信息是未针对当前块/MV进行过验证的且是未被用于过插值的,也是如此。在一些示例中,该if_idx信息可能不被用于特定块/MV,但可以被存储在运动场中,并且可用于通过合并继承供将来使用。
[0187] 例如,视频编码器200(例如,可以使用SIF 225的运动补偿单元224) 或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以确定用于视频数据的合并列表候选的SIF参数。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以执行合并处理。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以存储用于由合并过程产生的MV的SIF参数,而不管是否针对MV验证了SIF参数(例如,不管是否由例如视频编码器 200通过率失真优化(RDO)选择了SIF参数)。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以基于 MV对视频数据进行译码。
[0188] 在一些示例中,用MVD信息产生的最终MV可能被限于半像素位置,例如,如果合并MVP候选具有可用的SIF参数的话。在一些示例中,此限制可能被施加到最终MV,作为对于每个分量或两个分量的向最近的半像素位置的剪裁或舍入。在一些示例中,可以对在合并MVP输出中在半像素位置处找到的分量(mv.x或mv.y)施加限制。例如,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将 MV限于半像素位置。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过将MV剪裁到最近的半像素位置或将MV舍入到最近的半像素位置中的一项,将MV限于半像素位置。
[0189] 下面描述了SIF参数的依赖性。对于块大小依赖性,对SIF过滤器类型的信号发送和/或应用可能取决于块大小。在一些示例中,可以定义缺省 if_idx变量,用于特定大小的块。例如,MxN的块大小(例如,4x4)可以具有固定值if_idx(例如,等于2,从而允许HEVC滤波器),而大于MxN (例如,M=>64和N=>64)的块大小可以具有等于另一个值的if_idx的固定值,例如,if_idx的值=1,从而允许另一种类型的滤波器,例如,强低通滤波器。例如,视频编码器200(例如,运动补偿单元224)或视频解码器 300(例如,运动补偿单元316)可以确定视频数据的当前块的特性,并且基于当前块的特性来约束SIF参数。例如,特性是块大小或预测类型之一。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器 300(例如,运动补偿单元316)可以通过将SIF参数设置为缺省值来约束 SIF参数。
[0190] 在一些示例中,特定块大小可以具有可用于信号发送的受约束的SIF滤波器组,例如,只有2个替代方案,而不是3个。例如,4x4的块大小可以具有等于1或2的被允许的if_idx值,因此不允许对于该块大小使用最强的低通滤波器。而大于MxN(例如,M=>64和N=>64)的块大小可以具有被允许的if_idx值的另一组合。例如,视频编码器200(例如,运动补偿单元224)可以通过约束可用于信号发送的SIF滤波器组来约束SIF参数。
[0191] 在一些示例中,可以通过上下文建模来利用块大小依赖性。这种依赖性利用的示例如表9‑11所示。
[0192] 表9.针对if_idx的二值化方案的示例
[0193]
[0194] 表10.将ctxInc指派给具有上下文经译码bin的语法元素的示例
[0195]
[0196]
[0197] 表11.将ctxInc指派给具有上下文经译码bin的语法元素的示例
[0198]
[0199] 对于预测方向依赖性,对SIF滤波器类型的信号发送和/或应用可以取决于预测类型,例如,inter_pred_idc值。在一些示例中,可以定义缺省if_idx 变量用于inter_pred_idc=2的块,例如,用双向预测来译码的块,因此不允许切换。例如,视频编码器200(例如,运动补偿单元224)或视频解码器 300(例如,运动补偿单元316)可以确定视频数据的当前块的特性,并基于当前块的特性来约束SIF参数。例如,特性是块大小或预测类型之一。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300 (例如,运动补偿单元316)可以通过将SIF参数设置为缺省值来约束SIF 参数。
[0200] 在一些示例中,用特定的预测类型(例如,双向预测或单向预测)来译码的块可以具有可用于信号发送的受约束的SIF滤波器组,例如,仅具有2 个替代方案{F1,F2},而不是3个{F1,F2,F3}。例如,用双向预测来译码的块可以具有等于1或2的被允许的if_idx值,因此不允许对该预测类型使用最强低通滤波器。例如,视频编码器200(例如,运动补偿单元
224) 可以通过约束可用于信号发送的SIF滤波器组来约束SIF参数。
[0201] 在一些示例中,可以通过上下文建模来利用预测方向依赖性。下面的表 12和表13显示了这种依赖性利用的示例。
[0202] 表12.针对if_idx的二值化方案的示例
[0203]
[0204] 表13.将ctxInc指派给具有上下文经译码bin的语法元素的示例
[0205]
[0206] 图16是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的插值滤波器索引的示例的流程图。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定成对平均运动向量预测器的第一运动向量分量的SIF索引值是否等于成对平均运动向量预测器的第二运动向量分量的SIF索引值(400)。基于第一运动向量分量的SIF索引值等于第二运动向量分量的SIF索引值(图16中的“是”路径),视频编码器200(例如,运动补偿单元224)或视频解码器 300(例如,运动补偿单元316)可以将成对平均运动向量预测器的SIF索引设置为等于第一运动向量分量的SIF索引(402)。
[0207] 在一些示例中,成对平均MVP可以包括第一成对平均MVP,其中第二成对平均MVP包括第三MV分量和第四MV分量。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定第二成对平均MVP的第三MV分量的SIF索引值是否等于成对平均MVP的第四MV分量的SIF索引值(400)。基于第三运动向量分量的 SIF索引值不等于第四运动向量分量的SIF索引值(图16中的“否”路径),视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将第二成对平均运动向量预测器的SIF索引值设置为缺省值,例如,整数值(例如,0、1、2、3等)、或可以指向HEVC滤波器的值(404)。视频编码器200或视频解码器300可以基于第一成对平均运动向量预测器的SIF索引值或第二成对平均运动向量预测器的SIF索引值对视频数据进行译码(406)。
[0208] 图17是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的插值滤波器索引的另一示例的流程图。视频编码器200(例如,可以使用SIF 225的运动补偿单元224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以确定成对平均运动向量预测器的第一运动向量分量的SIF索引值是否等于成对平均运动向量预测器的第二运动向量分量的SIF索引值(410)。基于第一运动向量分量的SIF索引值等于第二运动向量分量的SIF索引值(图17中的“是”路径),视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将成对平均运动向量预测器的SIF索引设置为等于第一运动向量分量的 SIF索引(412)。
[0209] 在一些示例中,成对平均MVP可以包括第一成对平均MVP,其中第二成对平均MVP可以包括第三MV分量和第四MV分量。视频编码器200 (例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316) 可以确定第二成对平均MVP的第三MV分量的SIF索引值是否等于成对平均MVP的第四MV分量的SIF索引值(410)。基于第三运动向量分量的 SIF索引值不等于第四运动向量分量的SIF索引值(图17中的“否”路径)、视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将第二成对平均运动向量预测器的SIF索引值设置为在第一运动向量分量的SIF索引值和第二运动向量分量的SIF索引值之间的第一可用值(414)。视频编码器200或视频解码器300可以基于第一成对平均运动向量预测器的SIF索引值或第二成对平均运动向量预测器的SIF 索引值来对视频数据进行译码(416)。
[0210] 图18是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的SIF索引的另一示例的流程图。视频编码器200(例如,可以使用SIF 225的运动补偿单元224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以确定成对平均运动向量预测器的第一运动向量分量的SIF索引值是否等于成对平均运动向量预测器的第二运动向量分量的SIF索引值(420)。基于第一运动向量分量的SIF索引值等于第二运动向量分量的SIF索引值(图18中的“是”路径),视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将成对平均运动向量预测器的SIF索引设置为等于第一运动向量分量的SIF 索引(422)。
[0211] 在一些示例中,成对平均MVP可以包括第一成对平均MVP,第二成对平均MVP包括第三MV分量和第四MV分量。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定第二成对平均MVP的第三MV分量的SIF索引值是否等于成对平均MVP 的第四MV分量的SIF索引值(420)。基于第三运动向量分量的SIF索引值不等于第四运动向量分量的SIF索引值(图18中的“否”路径),视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以基于相对预定特性来将第二成对平均运动向量预测器的SIF 索引值设置为指向第一插值滤波器或第二插值滤波器(424)。例如,第三 MV分量的SIF索引可以指向第一插值滤波器,第四MV分量的SIF索引可以指向第二插值滤波器。相对特性可以是较强的滤波器或较弱的滤波器之一,以及视频编码器200(例如,运动补偿单元224)或视频解码器300 (例如,运动补偿单元316)可以基于索引指向的滤波器的相对特性,将第二成对平均MVP的SIF索引设置为等于第三MV分量的SIF索引或第四 MV分量的SIF索引。视频编码器或视频解码器300可以基于第一成对平均运动向量预测器的SIF索引值或第二成对平均运动向量预测器的SIF索引值来对视频数据进行译码(426)。
[0212] 图19是示出根据本公开内容的技术设置成对平均运动向量预测器 (MVP)的SIF索引的另一示例的流程图。视频编码器200(例如,可以使用SIF 225的运动补偿单元224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以确定成对平均运动向量预测器的第一运动向量分量的SIF索引值是否等于成对平均运动向量预测器的第二运动向量分量的SIF索引值(430)。基于第一运动向量分量的SIF索引值等于第二运动向量分量的SIF索引值(图19中的“是”路径),视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将成对平均运动向量预测器的SIF索引设置为等于第一运动向量分量的SIF 索引(432)。
[0213] 在一些示例中,成对平均MVP可以包括第一成对平均MVP,第二成对平均MVP包括第三MV分量和第四MV分量。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定第二成对平均MVP的第三MV分量的SIF索引值是否等于成对平均MVP 的第四MV分量的SIF索引值(430)。基于第三运动向量分量的SIF索引值不等于第四运动向量分量的SIF索引值(图19中的“否”路径),视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以基于标准来将第二成对平均运动向量预测器的SIF索引值设置为合并列表中的运动向量预测器候选的SIF索引值(434)。例如,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将第二成对平均MVP的SIF索引设置为等于最常使用的候选、未使用的候选或最少使用的候选中的一个的SIF索引。视频编码器200 或视频解码器300可以基于第一成对平均运动向量预测器的SIF索引值或第二成对平均运动向量预测器的SIF索引值来对视频数据进行译码(436)。
[0214] 图20是示出确定用于MV的SIF参数的示例的流程图。视频编码器 200(例如,可以使用SIF 225的运动补偿单元224)或视频解码器300(例如,可以使用SIF 317的运动补偿单元316)可以确定用于合并列表候选的 SIF参数(500)。在一些示例中,合并列表候选可以是时间MVP。在一些示例中,合并列表候选可以是基于历史的MVP。在一些示例中,合并列表候选可以是双向预测MVP。在一些示例中,合并列表候选可以是成对平均 MVP。SIF参数可以是指向SIF滤波器的SIF索引。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以执行合并处理(502)。例如,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以合并在合并列表中的候选。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以存储用于由合并过程产生的MV的SIF参数,而不管是否针对MV验证了SIF参数(504)。
[0215] 在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以确定视频数据的当前块的特性(506)。例如,特性可以是当前块的大小(例如,4x4、8x8、16x16、64x64、MxN,其中M是块高度,N是块宽度)(也称为当前块大小),或者特性可以是被用于当前块的预测类型(例如,帧内或帧间)。
[0216] 在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)基于特性(例如,当前块大小)来确定SIF参数,例如,在当前块被双向预测时。例如,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将 SIF参数设置为缺省值。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过如下来确定SIF参数:确定用于双向预测块的第一MV分量的SIF参数是否等于用于双向预测块的第二MV分量的SIF参数,并基于用于第一MV分量的 SIF参数等于用于第二MV分量的SIF参数,将SIF参数设置为等于第一 MV分量的SIF参数。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器
300(例如,运动补偿单元316)可以通过将SIF参数设置为在第一MV分量的SIF参数和第二MV分量的SIF参数中的第一可用参数来确定SIF参数。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过基于相对预定特性将SIF参数设置为第一MV分量的SIF参数或第二MV分量的SIF参数来确定SIF参数。例如,相对预定特性可以是SIF参数指向的较强滤波器或较弱滤波器中的一个。在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过将SIF参数设置为等于最常使用的候选、未使用的候选或最少使用的候选中的一个的SIF参数来确定SIF参数。
[0217] 在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以基于特性来约束SIF参数(508)。例如,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过将SIF参数设置为缺省值来约束SIF参数。在另一示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过约束可用于信号发送的SIF 滤波器组来约束SIF参数。
[0218] 在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以将MV限于半像素位置(510)。视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以通过将MV剪裁到最近的半像素位置或通过将MV 舍入到最近的半像素位置来将MV限于半像素位置。
[0219] 在一些示例中,视频编码器200可以基于SIF参数被存储来变更信号发送(512)。例如,视频编码器200可以基于SIF参数被存储来变更用于 MMVP模式或用于AMVP模式的信号发送。
[0220] 在一些示例中,视频编码器200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元316)可以利用SIF参数以管理历史缓冲器。例如,可以通过MV从基于历史的MVP继承SIF参数,并且视频编码器 200(例如,运动补偿单元224)或视频解码器300(例如,运动补偿单元 316)可以利用SIF参数对历史缓冲器的内容执行修剪操作。视频编码器200 或视频解码器300可以基于MV对视频数据进行译码(516)。
[0221] 图21是示出可以执行本公开内容的技术的示例视频编码器200的框图。图21是为了解释的目的而提供的,并且不应被认为是对本公开内容中广泛例示和描述的技术的限制。为了解释的目的,本公开内容描述了在诸如 HEVC视频译码标准以及正在开发的H.266视频译码标准的视频译码标准的背景下的视频编码器200。然而,本公开内容的技术可以不限于这些视频译码标准,并且通常可应用于视频编码和解码。
[0222] 在图21的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波单元216、被解码图片缓冲器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元 
210、逆变换处理单元212、重构单元214、滤波器单元216、DPB 218以及熵编码单元220中的任一个或全部可以在一个或多个处理器或处理电路中实现。此外,视频编码器200可以包括另外的或替代的处理器或处理电路用以执行这些和其它功能。
[0223] 视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收储存在视频数据存储器230中的视频数据。DPB 218可以充当储存参考视频数据的参考图片存储器,参考视频数据用于由视频编码器200预测后续的视频数据。视频数据存储器230和DPB 218可以由多种存储器设备(诸如,动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储器设备)中的任何一种形成。视频数据存储器230和DPB 218可以由相同的存储器设备或分别的存储器设备提供。在各种示例中,如图所示,视频数据存储器230可以与视频编码器 200的其它组件在芯片上,或者相对于那些组件在芯片外。
[0224] 在本公开内容中,对视频数据存储器230的提及不应被解释为仅限于视频编码器200内部的存储器,除非专门描述为这样,或视频编码器200外部的存储器,除非专门描述为这样。相反,对视频数据存储器230的提及应被理解为提及储存视频编码器200接收到用于进行编码的视频数据(例如,用于要编码的当前块的视频数据)的存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时储存。
[0225] 图21的各个单元被示出以帮助理解由视频编码器200执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能的电路,并被预设在可以执行的操作上。可编程电路是指可以被编程以执行各种任务,并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
[0226] 视频编码器200可以包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核。在使用由可编程电路执行的软件执行视频编码器200的操作的示例中,存储器106(图1) 可以储存视频编码器200接收并执行的软件的目标代码,或者视频编码器 200(未示出)内的另一存储器可以存储这样的指令。
[0227] 视频数据存储器230被配置为储存接收到的视频数据。视频编码器200 可以从视频数据存储器230获取视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要编码的原始视频数据。
[0228] 模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括用于根据其它预测模式执行视频预测的另外的功能单元。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
[0229] 模式选择单元202通常协调多个编码通路(pass)以测试编码参数的组合以及针对这种组合的结果率失真值(resulting rate‑distortion value)。编码参数可以包括将CTU划分为CU、针对CU的预测模式、针对CU的残差数据的变换类型、针对CU的残差数据的量化参数等。模式选择单元202可以最终选择具有与其它经测试的组合相比较好的率失真值的编码参数的组合。
[0230] 视频编码器200可以将从视频数据存储器230获取的图片划分成一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据树结构(诸如上述HEVC的QTBT结构或四叉树结构)来划分图片的CTU。如上所述,视频编码器200可以通过根据树结构划分CTU,来形成一个或多个CU。这样的CU通常也可以被称为“视频块”或“块”。
[0231] 通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前CU、或在HEVC中的PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图片(例如,在DPB 218中储存的一个或多个先前被译码图片)中的一个或多个接近地匹配的参考块。具体地,运动估计单元222可以例如根据绝对差的和 (SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块的相似程度的值。运动估计单元222通常可以使用当前块与正在考虑的参考块之间的逐样本差异来执行这些计算。运动估计单元222可以识别具有从这些计算得到的最低值的参考块,该最低值指示与当前块最接近地匹配的参考块。
[0232] 运动估计单元222可以形成一个或多个运动向量(MV),其定义相对于当前图片中的当前块的位置的参考图片中的参考块的位置。然后,运动估计单元222可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。然后,运动补偿单元224可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来获取参考块的数据。作为另一示例,如果运动向量具有分数样本精度,则运动补偿单元224可以根据一个或多个插值滤波器来对针对预测块的值进行插值。此外,例如,运动补偿单元224可以包含SIF 225。在一些示例中,运动补偿单元224可以确定成对平均MVP的第一MV分量的SIF索引值是否等于成对平均MVP的第二MV分量的SIF索引值,并且如果第一MV 分量的SIF索引值等于第二MV分量的SIF索引值,运动补偿单元224可以将成对平均MVP的SIF索引设置为等于第一MV分量的SIF索引。在一些示例中,运动补偿单元224可以确定用于视频数据的合并列表候选的SIF 参数,执行合并处理,以及存储由合并处理产生的MV的SIF参数,而不管SIF参数是否针对MV是被验证的。
[0233] 对于双向帧间预测,运动补偿单元224可以获取由相应的运动向量标识的针对两个参考块的数据,并且例如通过逐样本平均或加权平均来合并获取的数据。
[0234] 作为另一示例,对于帧内预测或帧内预测编码,帧内预测单元226可以根据与当前块相邻的样本来生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上合并相邻样本的值,并在当前块上在所定义的方向上填充这些计算值,以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算当前块的相邻样本的平均值,并且生成预测块以针对预测块的每个样本包括得到的此平均值。
[0235] 模式选择单元202将预测块提供给残差生成单元204。残差生成单元 204从视频数据存储器230接收当前块的未经编码的原始版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差异。得到的逐样本差异定义了针对当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的样本值之间的差异,以使用残差差分脉冲编码调制(RDPCM)生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
[0236] 在模式选择单元202将CU划分成PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300 可以支持具有各种大小的PU。如上所述,CU的大小可以指CU的亮度译码块的大小,PU的大小可以指PU的亮度预测单元的大小。假设特定CU 的大小是2Nx2N,视频编码器200可以支持针对帧内预测的2Nx2N或NxN 的PU大小,以及针对帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小。视频编码器200和视频解码器300还可以支持对于针对帧间预测的2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称划分。
[0237] 在模式选择单元不将CU进一步划分成PU的示例中,每个CU可以与亮度译码块和对应的色度译码块相关联。如上所述,CU的大小可以指CU 的亮度译码块的大小。视频编码器200和视频解码器300可以支持2Nx2N、 2NxN或Nx2N的CU大小。
[0238] 对于其它视频译码技术(诸如,块内复制模式译码、仿射模式译码和线性模型(LM)模式译码,作为少数示例),模式选择单元202经由与译码技术相关联的相应单元来生成正被编码的当前块的预测块。在一些示例中,例如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示用于基于被选择的调色板来重构块的方式的语法元素。在这种模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
[0239] 如上所述,残差生成单元204接收针对当前块和对应的预测块的视频数据。残差生成单元204随后生成针对当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差异。
[0240] 变换处理单元206将一个或多个变换应用于残差块,以生成变换系数块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换 (DCT)、方向变换、Karhunen‑Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如,主变换和辅变换,诸如旋转变换。在一些示例中,变换处理单元 206不对残差块应用变换。
[0241] 量化单元208可以量化变换系数块中的变换系数,以产生经量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整被应用于与当前块相关联的系数块的量化的程度。量化可能造成信息的损失,并且因此,经量化的变换系数可以具有与由变换处理单元206产生的原始变换系数相比而言较低的精度。
[0242] 逆量化单元210和逆变换处理单元212可以对经量化的变换系数块分别应用逆量化和逆变换,以根据变换系数块重构残差块。重构单元214可以基于所重构的残差块和由模式选择单元202生成的预测块来生成与当前块对应的经重构的块(尽管可能具有一定程度的失真)。例如,重构单元214 可以将所重构的残差块的样本添加到来自由模式选择单元202生成的预测块的对应样本中,以产生经重构的块。
[0243] 滤波单元216可以对经重构的块执行一个或多个滤波操作。例如,滤波器单元216可以执行去块操作以减少沿CU的边缘的块状伪影。在一些示例中,可以跳过滤波器单元216的操作。
[0244] 视频编码器200将经重构的块储存在DPB 218中。例如,在当不需要滤波器单元216的操作时的示例中,重构单元214可以将经重构的块储存到DPB 218。在当需要滤波器单元216的操作时的示例中,滤波器单元216 可以将经滤波的经重构的块储存到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218获取由所重构的(和潜在地经滤波的)块形成的参考图片,以对经随后编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的DPB 218中的经重构的块,以对当前图片中的其它块进行帧内预测。
[0245] 通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成经熵编码的数据。例如,熵编码单元220可以执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间划分熵 (PIPE)编码操作、索引Golomb编码操作、或对数据的另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未经熵编码的旁路模式下进行操作。
[0246] 视频编码器200可以输出比特流,该比特流包括为重构条带或图片的块所需的经熵编码的语法元素。具体地,熵编码单元220可以输出比特流。
[0247] 以上描述的操作是关于块来描述的。这种描述应被理解为是用于亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是CU的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度分量和色度分量。
[0248] 在一些示例中,对于色度译码块,不需要重复相对于亮度译码块执行的操作。作为一个示例,对于识别针对色度块的运动向量(MV)和参考图片,不需要重复用于识别针对亮度译码块的运动向量(MV)和参考图片的操作。而是,可以放缩针对亮度译码块的MV,以确定针对色度块的MV,并且参考图片可以相同。作为另一示例,对于亮度译码块和色度译码块,帧内预测处理可以是相同的。
[0249] 视频编码器200表示被配置为编码视频数据的设备的示例,其包括:被配置为储存视频数据的存储器;以及一个或多个处理单元,其在电路中实现并被配置为执行在本公开内容中描述的示例技术。
[0250] 图22是示出可以执行本公开内容的技术的示例视频解码器300的框图。图22是为了解释的目的而提供的,并且不限制在本公开内容中泛泛例示和描述的技术。为了解释的目的,本公开内容描述了根据VVC和HEVC 的技术描述的视频解码器300。然而,本公开内容的技术可以由被配置符合其它视频译码标准的视频译码设备来执行。
[0251] 在图22的示例中,视频解码器300包括被译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和被解码图片缓冲器(DPB) 314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元 306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一个或全部可以在一个或多个处理器中或在处理电路中实现。此外,视频解码器300可以包括另外的或替代的处理器或处理电路,用以执行这些和其它功能。
[0252] 预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括用于根据其它预测模式执行预测的另外的单元。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
[0253] CPB存储器320可以储存要由视频解码器300的组件解码的视频数据,诸如经编码的视频比特流。储存在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括储存来自经编码的视频比特流的经编码的视频数据(例如,语法元素)的CPB。此外, CPB存储器320可以储存被译码图片的语法元素以外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常储存被解码图片,视频解码器300可以在解码经编码的视频比特流的后续数据或图片时将该被解码图片输出和/或用作参考视频数据。CPB存储器320和 DPB 314可以由各种存储器设备中的任何一种(诸如,动态随机存取存储器 (DRAM)(包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻RAM (RRAM)或其它类型的存储器设备)形成。CPB存储器320和DPB 314 可以由相同的存储器设备或分别的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件在芯片上,或者相对于这些组件在芯片外。
[0254] 另外或替代地,在一些示例中,视频解码器300可以从存储器120(图 1)获取被译码视频数据。即,存储器120可以如上所述与CPB存储器320 一起储存数据。同样,当视频解码器300的部分或全部功能实现在要由视频解码器300的处理电路执行的软件中时,存储器120可以储存要由视频解码器300执行的指令。
[0255] 图22所示的各种单元被示出以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。类似于图 21,固定功能电路是指提供特定功能的电路,并被预设在可以执行的操作上。可编程电路是指可以被编程以执行各种任务,并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
[0256] 视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核。在当视频解码器300的操作由在可编程电路上执行的软件执行时的示例中,片上或片外存储器可以储存视频解码器300接收和执行的软件的指令(例如,目标代码)。
[0257] 熵解码单元302可以从CPB接收被编码视频数据,并且对视频数据进行熵解码以再生语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素生成被解码视频数据。
[0258] 通常,视频解码器300逐块地重构图片。视频解码器300可以单独地对每个块执行重构操作(其中,当前正经重构的即被解码的块可以被称为“当前块”)。
[0259] 熵解码单元302可以对语法元素进行熵解码,其中,语法元素定义经量化的变换系数块的经量化的变换系数、以及变换信息(诸如量化参数(QP) 和/或变换模式指示)。逆量化单元306可以使用与经量化的变换系数块相关联的QP以确定量化的程度,并且同样地,确定供逆量化单元306要应用的逆量化的程度。逆量化单元306可以例如执行逐比特左移操作以对经量化的变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。
[0260] 在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应用一个或多个逆变换,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对系数块应用逆DCT、逆整数变换、逆Karhunen‑ Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换。
[0261] 此外,预测处理单元304根据由熵解码单元302熵解码了的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是相互预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中要从其获取参考块的参考图片、以及标识相对于当前图片中的当前块的位置的参考图片中的参考块的位置的运动向量。运动补偿单元316通常可以以基本上类似于关于运动补偿单元224(图21) 所描述的方式的方式来执行帧间预测处理。
[0262] 运动补偿单元316可以包含SIF 317。在一些示例中,运动补偿单元316 可以确定成对平均MVP的第一MV分量的SIF索引值是否等于成对平均 MVP的第二MV分量的SIF索引值,并且如果第一MV分量的SIF索引值等于第二MV分量的SIF索引值,运动补偿单元316可以将成对平均MVP 的SIF索引设置为等于第一MV分量的SIF索引。在一些示例中,运动补偿单元316可以确定用于视频数据的合并列表候选的SIF参数,执行合并处理,以及存储由合并处理产生的MV的SIF参数,而不管SIF参数是否针对MV是被验证的。
[0263] 作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。同样,帧内预测单元318可以以与关于帧内预测单元226(图21) 所描述的方式基本上类似的方式来执行帧内预测处理。帧内预测单元318可以从DPB 314获取当前块的相邻样本的数据。
[0264] 重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本中,以重构当前块。
[0265] 滤波单元312可以对经重构的块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块操作以减少沿经重构的块的边缘的块性伪影。并非在所有示例中都必须执行滤波单元312的操作。
[0266] 视频解码器300可以将经重构的块储存在DPB 314中。如上所述,DPB 314可以向预测处理单元304提供参考信息,诸如,针对帧内预测的当前图片的样本和针对后续运动补偿的经先前解码的图片的样本。此外,视频解码器300可以从DPB输出被解码图片,以便随后在诸如图1的显示设备118 的显示设备上呈现。
[0267] 以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器和一个或多个处理器,所述一个或多个处理器在电路中实现并耦合到所述存储器,所述一个或多个处理器被配置为执行在本公开内容中描述的示例技术。
[0268] 图21是示出用于编码当前块的示例方法的流程图。当前块可以包括当前CU。尽管关于视频编码器200(图1 )进行了描述,但是应理解,其它设备可以被配置为执行类似于图23的方法的方法。
[0269] 在此示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成针对当前块的预测块。在一些示例中,作为形成预测块的一部分,视频编码器200可以确定成对平均MVP的第一MV分量的SIF索引值是否等于成对平均MVP的第二MV分量的SIF索引值,并且如果第一 MV分量的SIF索引值等于第二MV分量的SIF索引值,将成对平均MVP 的SIF索引设置为等于第一MV分量的SIF索引。在一些示例中,作为形成预测块的一部分,视频编码器200可以确定用于视频数据的合并列表候选的SIF参数,执行合并处理,以及存储由合并处理产生的MV的SIF参数,而不管SIF参数是针对MV被验证的。
[0270] 然后,视频编码器200可以计算针对当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始的未被编码的块与针对当前块的预测块之间的差异。视频编码器200随后可以变换并量化残差块的系数(354)。接下来,视频编码器200可以扫描残差块的经量化的系数(356)。在扫描期间或在扫描之后,视频编码器200可以对系数进行熵编码
(358)。例如,视频编码器200可以使用CAVLC或CABAC对系数进行编码。视频编码器 200然后可以输出块的经熵译码的数据(360)。
[0271] 图24是示出用于解码视频数据的当前块的示例方法的流程图。当前块可以包括当前CU。尽管关于视频解码器300(图1 )进行了描述,应理解,其它设备可以被配置为执行类似于图24的方法的方法。
[0272] 视频解码器300可以接收针对当前块的经熵译码的数据,诸如,经熵译码的预测信息和针对对应于当前块的残差块的系数的经熵译码的数据 (370)。视频解码器300可以对经熵译码的数据进行熵解码,以确定针对当前块的预测信息并再生残差块的系数(372)。视频解码器300可以例如使用由针对当前块的预测信息指示的帧内或帧间预测模式来预测当前块 (374),以计算针对当前块的预测块。在一些示例中,作为预测当前区块的一部分,视频解码器300可以确定成对平均MVP的第一MV分量的SIF索引值是否等于成对平均MVP的第二MV分量的SIF索引值,并且如果第一 MV分量的SIF索引值等于第二MV分量的SIF索引值,将成对平均MVP 的SIF索引设置为等于第一MV分量的SIF索引。在一些示例中,作为预测当前块的一部分,视频解码器300可以确定视频数据的合并列表候选的 SIF参数,执行合并处理,以及存储由合并处理产生的MV的SIF参数,而不管SIF参数是针对MV被验证的。
[0273] 然后,视频解码器300可以逆扫描再生的系数(376),以创建经量化的变换系数的块。视频解码器300随后可以对系数进行逆量化以及逆变换以产生残差块(378)。视频解码器300可以通过合并预测块和残差块来最终解码当前块(380)。
[0274] 本公开内容描述了用于在视频译码时的可切换插值滤波的示例技术,包括以下示例。
[0275] 示例1、一种对视频数据进行译码的方法,该方法包括:
[0276] 根据在本公开内容中描述的技术中的任何一种技术或组合,通过执行可切换插值滤波(SIF)对一个或多个块进行译码。
[0277] 示例2、根据示例1所述的方法,其中,译码包括解码。
[0278] 示例3、根据示例1所述的方法,其中,译码包括编码。
[0279] 示例4、一种用于对视频数据进行译码的设备,该设备包括:
[0280] 存储器,用于存储视频数据;以及视频译码器,包括固定功能或可编程电路中的至少一个,其中,视频译码器被配置为执行权利要求1所述的方法。
[0281] 示例5、根据示例4所述的设备,其中,所述视频译码器包括视频解码器。
[0282] 示例6、根据示例4所述的设备,其中,所述视频编码器包括视频编码器。
[0283] 示例7、根据示例4‑6中任一示例所述的设备,还包括被配置为显示经解码视频数据的显示器。
[0284] 示例8、根据示例4‑7中任一示例所述的设备,其中,该设备包括相机、计算机、移动设备、广播接收机设备或机顶盒中的一个或多个。
[0285] 示例9、一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使一个或多个处理器执行根据示例1‑3中任一示例所述的方法。
[0286] 示例10、一种用于对视频数据进行译码的设备,该设备包括:用于执行根据示例1‑3中任一示例所述的方法的单元。
[0287] 示例11、一种对视频数据进行译码的方法,该方法包括:确定用于所述视频数据的合并列表候选的可切换插值滤波器(SIF)参数;执行合并过程;存储用于由所述合并过程产生的运动向量(MV)的所述SIF参数,而不考虑所述SIF参数是针对所述MV验证的;以及基于所述MV来对视频数据进行译码。
[0288] 示例12、根据示例11所述的方法,还包括:将所述MV限于半像素位置。
[0289] 示例13、根据示例12所述的方法,其中,通过将所述MV剪裁到最近的半像素位置或将所述MV舍入到所述最近的半像素位置中的一项,将所述MV限于所述半像素位置。
[0290] 示例14、根据示例11所述的方法,还包括:基于所述SIF参数被存储来变更用于合并运动向量预测(MMVP)模式或高级运动向量预测(AMVP) 模式的信号发送。
[0291] 示例15、根据示例11所述的方法,其中,所述SIF参数是通过所述 MV从基于历史的MVP继承的。
[0292] 示例16、根据示例15所述的方法,还包括:利用所述SIF参数以管理历史缓冲器。
[0293] 示例17、根据示例16所述的方法,其中,所述历史缓冲器的管理包括修剪操作。
[0294] 示例18、根据示例11所述的方法,所述SIF参数是通过所述MV从时间MVP继承的。
[0295] 示例19、根据示例11所述的方法,其中,所述视频数据的当前块是经双向预测块,该方法还包括:确定当前块大小,其中,所述SIF参数是基于所述当前块大小来确定的。
[0296] 示例20、根据示例19所述的方法,其中,确定所述SIF参数包括:将所述SIF参数设置为缺省值。
[0297] 示例21、根据示例19所述的方法,其中,确定所述SIF参数包括:确定用于所述经双向预测块的第一MV分量的SIF参数是否等于用于所述经双向预测块的第二MV分量的SIF参数;以及基于用于所述第一MV分量的SIF参数等于用于所述第二MV分量的SIF参数,将所述SIF参数设置为等于所述第一MV分量的SIF参数。
[0298] 示例22、根据示例19所述的方法,其中,确定所述SIF参数包括:将所述SIF参数设置为所述第一MV分量的SIF参数和所述第二MV分量的 SIF参数中的第一可用值。
[0299] 示例23、根据示例19所述的方法,其中,所述第一MV分量的SIF参数指向第一插值滤波器,所述第二MV分量的SIF参数指向第二插值滤波器,并且确定所述SIF参数包括:基于相对预定特性来将所述SIF参数设置为所述第一MV分量的SIF参数或为所述第二MV分量的SIF参数。
[0300] 示例24、根据示例23所述的方法,其中,所述相对预定特性是较强滤波器或较弱滤波器中的一个。
[0301] 示例25、根据示例19所述的方法,其中,确定所述SIF参数包括:将所述SIF参数设置为等于最常使用的候选、未使用的候选或最少使用的候选中的一个的SIF参数。
[0302] 示例26、根据示例11所述的方法,还包括:确定所述视频数据的当前块的特性;基于所述当前块的所述特性,来约束所述SIF参数。
[0303] 示例27、根据示例26所述的方法,其中,所述特性是块大小或预测类型之一。
[0304] 示例28、根据示例26所述的方法,其中,约束所述SIF参数包括:将所述SIF参数设置为缺省值。
[0305] 示例29、根据示例26所述的方法,其中,约束所述SIF参数包括:约束可用于信号发送的SIF滤波器组。
[0306] 应当认识到,根据示例,在本文描述的任何技术的特定行为或事件可以以不同的顺序执行,可以一起添加、合并或省略(例如,并非所有描述的行为或事件对于技术的实践都是必需的)。此外,在特定的示例中,动作或事件可以并发地执行,例如,通过多线程处理、中断处理或多个处理器,而不是顺序地执行。
[0307] 在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则这些功能可以作为计算机可读介质上的一个或多个指令或代码储存在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读储存介质,其对应于诸如数据储存介质之类的有形介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读储存介质或(2)诸如信号或载波的通信介质。数据储存介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以获取用于实现在本公开内容中描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
[0308] 作为示例而非限制,这种计算机可读储存介质可以包括RAM、ROM、 EEPROM、CD‑ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或任何其它可用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的介质。此外,任何连接都恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(诸如红外、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电和微波)都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是指向非暂时性有形储存介质。本文所使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘则以激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
[0309] 指令可以由一个或多个处理器(诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或分立逻辑电路)执行。因此,如本文所使用的术语“处理器”和“处理电路”可以指上述结构或适于实现本文所描述的技术的任何其它结构中的任何一个。另外,在一些方面中,本文所描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或并入组合式codec中。此外,这些技术可以完全实现在一个或多个电路或逻辑元件中。
[0310] 本公开内容的技术可以实现在多种设备或装置(包括无线手持设备、集成电路(IC)或一组IC(例如,芯片组))中。在本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。而是,如上所述,各种单元可以组合在codec硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)结合适合的软件和/或固件来提供。
[0311] 已描述了各种示例。这些和其它示例在以下权利要求的范围内。