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

用于屏幕内容编解码的帧内预测的方法和装置与流程

2021-11-05 20:24:00 来源:中国专利 TAG:

用于屏幕内容编解码的帧内预测的方法和装置
1.相关申请的交叉引用
2.本技术要求于2019年01月28日提交的62/797,756号美国临时申请的权益。上述申请的全部公开内容通过引用整体并入本文。
技术领域
3.本公开总体涉及对视频数据进行编解码(例如,编码和解码)。更具体地,本公开涉及一种用于选择性地启用和/或禁用用于视频编解码的帧内平滑操作的方法、计算设备和非暂态计算机可读存储介质。


背景技术:

4.本部分提供了与本公开相关的背景技术信息。本部分内包含的信息不应被解释为现有技术。
5.各种视频编解码技术可用于压缩视频数据。根据一个或更多个视频编解码标准执行视频编解码。例如,视频编解码标准包括通用视频编解码(vvc)、联合探索测试模型编解码(jem)、高效视频编解码(h.265/hevc)、高级视频编解码(h.264/avc)、运动图片专家组编解码(mpeg)等。视频编解码通常使用利用了视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码技术的重要目标在于将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的下降。
6.hevc标准的第一版本在2013年10月完成,与前一代视频编解码标准h.264/mpeg_avc相比,hevc标准的第一版本提供大约50%的比特率节省或同等的感知质量。尽管hevc标准提供与其前身相比显著的编解码改进,但有证据表明可利用额外编解码工具实现优于hevc的编解码效率。基于此,vceg和mpeg都开始了用于未来视频编解码标准化的新编解码技术的探索工作。itu

tvecg和iso/iecmpeg在2015年10月形成了一个联合视频探索小组(jvet),以开始对可实现显著提高编解码效率的先进技术的重要研究。jvet通过在hevc测试模型(hm)之上集成若干额外编解码工具来获得被称为联合探索模型(jem)的参考软件。
7.在2017年10月,itu

t和iso/iec发布了关于具有超出hevc的能力的视频压缩的联合提议呼吁(cfp)。在2018年4月,在第10次jvet会议上接收并评估了23个cfp回应,其展示了超过hevc约40%的压缩效率增益。基于这样的评估结果,jvet发起新项目以开发被命名为通用视频编解码(vvc)的新一代视频编解码标准。在同月,建立了一个被称为vvc测试模型(vtm)的参考软件代码库,用于展示vvc标准的参考实现。


技术实现要素:

8.本部分提供了本公开的总体概述,而非对本公开的全部范围或所有特征的全面公开。
9.根据本公开的第一方面,一种用于对视频数据进行编解码的方法在具有一个或更多个处理器和存储将由一个或更多个处理器执行的多个程序的存储器的计算设备处执行,
所述方法包括选择性地禁用帧内平滑操作。由编码器计算瓦片组中的多个非重叠块中的每个块的哈希值。将瓦片组中的多个非重叠块分类为两个类别:第一类别和第二类别。第一类别包括多个非重叠块中的在第一哈希值集合内的哈希值的块的集合。第二类别包括多个非重叠块中的在瓦片组中但不属于第一类别的所有其余块。然后,对于第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块。基于确定第二类别中是否存在表示与第一块相同的哈希值的第二块,禁用用于瓦片组中的多个非重叠块的帧内预测的至少一个帧内平滑操作。
10.根据本公开的第二方面,一种计算设备包括一个或更多个处理器、耦合到一个或更多个处理器的非暂态存储设备以及存储在非暂态存储设备中的多个程序。当多个程序由一个或更多个处理器执行时,计算设备选择性地禁用帧内平滑操作。由编码器计算瓦片组中的多个非重叠块中的每个块的哈希值。将瓦片组内的多个非重叠块分类为两个类别:第一类别和第二类别。第一类别包括多个非重叠块中的在第一哈希值集合内的哈希值的一个或更多个块。第二类别包括多个非重叠块中的在瓦片组中但不属于第一类别的所有其余块。然后,对于第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块。基于确定第二类别中是否存在表示与第一块相同的哈希值的第二块,禁用用于瓦片组中的多个非重叠块的帧内预测的至少一个帧内平滑操作。
11.根据本公开的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或更多个处理器的计算设备执行的多个程序。多个程序在由一个或更多个处理器执行时,使计算设备选择性地禁用帧内平滑操作。由编码器计算瓦片组中的多个非重叠块的每个块的哈希值。将瓦片组内的多个非重叠块分类为两个类别:第一类别和第二类别。第一类别包括多个非重叠块中的在第一哈希值集合内的哈希值的块的集合。第二类别包括多个非重叠块中的在瓦片组中但不属于第一类别的所有其余块。然后,对于第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块。基于确定第二类别中是否存在表示与第一块相同的哈希值的第二块,禁用用于瓦片组中的多个非重叠块的帧内预测的至少一个帧内平滑操作。
附图说明
12.在下文中,将结合附图描述本公开的多组示例性、非限制性实施例。相关领域的普通技术人员可基于本文呈现的示例来实现结构、方法或功能的变型,并且这些变型都包含在本公开内容的范围内。在不存在冲突的情况下,不同实施例的教导可以,但不是必需,彼此组合。
13.图1是阐述可与包括vvc的许多视频编解码标准结合使用的示例性的基于块的视频编码器的框图;
14.图2是阐述可与包括vvc的许多视频编解码标准结合使用的示例性的基于块的视频解码器的框图;
15.图3a至图3e示出了根据一些示例的示例划分类型,即四元分割(图3a)、水平二元分割(图3b)、垂直二元分割(图3c)、水平三元分割(图3d)和垂直三元分割(图3e);
16.图4示出了vvc中的帧内模式;
17.图5示出了vvc中用于帧内预测的多个参考线;
18.图6a示出了用于平矩形块(w/h=2)的帧内预测的参考样点和角度方向;
19.图6b示出了用于高矩形块(w/h=1/2)的帧内预测的参考样点和角度方向;
20.图6c示出了用于正方形块(w=h)的帧内预测的参考样点和角度方向;
21.图7示出了用于一个编码块的位置相关帧内预测组合(pdpc)的邻近重建样点的位置;
22.图8示出了从屏幕内容和相机捕获的视频获得的图片之间的比较;
23.图9示出了通过将一个分数参考样点位置裁剪到左侧整数样点位置来禁用帧内分数样点插值的示例;
24.图10a示出了当一个分数参考样点位置的左侧邻近整数参考样点是最近邻近者时,通过将该分数参考样点位置裁剪到其左侧邻近整数参考样点来禁用帧内分数样点插值的示例;
25.图10b示出了当一个分数参考样点位置的右侧邻近整数参考样点是最近邻近者时,通过将该分数参考样点位置裁剪到其右侧邻近整数参考样点来禁用帧内分数样点插值的示例;以及
26.图11为根据示例的用于对视频数据进行编解码的方法的流程图。
具体实施方式
27.本公开中使用的术语旨在说明特定示例,而不是限制本公开。本公开以及所附权利要求中使用的单数形式“一”、“一个”和“该”也指复数形式,除非上下文中明确包含其他含义。应当理解,如本文所使用的术语“和/或”指一个或更多个相关联的所列项目的任何或所有可能的组合。
28.应当理解,尽管本文可使用术语“第一”、“第二”、“第三”等来描述各种信息,但是该信息不应受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开。例如,在不脱离本公开内容的范围的情况下,第一信息可被称为第二信息;并且类似地,第二信息也可被称为第一信息。如本文所使用的,根据上下文,术语“如果”可被理解为意指“当......时”或“在......时”或“响应于......”。
29.贯穿本说明书对单数或复数形式的“一个实施例”、“实施例”、“另一实施例”等的引用意指结合实施例描述的一个或更多个特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,贯穿本说明书在各处以单数或复数形式出现的短语“在一个实施例中”或“在实施例中”、“在另一实施例中”等不一定都指代相同的实施例。此外,一个或更多个实施例中的特定特征、结构或特性可以以任何合适的方式组合。
30.本公开总体涉及对视频数据进行编解码(例如,编码和解码)。更具体地,本公开涉及一种用于选择性地启用和/或禁用用于视频编解码的帧内平滑操作的方法、计算设备和非暂态计算机可读存储介质。
31.与hevc一样,vvc建立在基于块的混合视频编解码框架上。图1是阐述可与包括vvc的许多视频编解码标准结合使用的示例性的基于块的视频编码器100的框图。输入视频信号被逐块(称为编码单元(cu))处理。在vtm

1.0中,cu可多达128
×
128个像素。然而,与仅基于四叉树对块进行分割的hevc不同,在vvc中,一个编码树单元(ctu)基于四叉树/二叉树/三叉树被划分为多个cu以适应变化的局部特性。另外,hevc中的多种分割单元类型的概念
被移除,即,对cu、预测单元(pu)和变换单元(tu)的区分不再存在于vvc中;相反,每个cu始终被用作用于预测和变换两者的基本单元,而无需进一步的分割。在多类型树结构中,首先通过四叉树结构对一个ctu进行分割。然后,可通过二叉和三叉树结构进一步对每个四叉树叶节点进行分割。
32.在编码器100中,视频帧被分割为多个块以进行处理。对于每个给定的视频块,基于帧间预测方法或帧内预测方法来形成预测。在帧间预测中,基于来自先前重建帧的像素,通过运动估计和运动补偿来形成一个或更多个预测值。在帧内预测中,基于当前帧中的重建像素来形成预测值。通过模式决策,可选择最佳预测值来预测当前块。
33.表示当前视频块与其预测值之间的差的预测残差被发送到变换电路102。如本文所使用的术语“电路”包括硬件和用于操作硬件的软件。然后变换系数从变换电路102被发送到量化电路104以进行熵减少。然后量化的系数被馈送到熵编码电路106以生成压缩的视频比特流。如图1所示,来自帧间预测电路和/或帧内预测电路112的预测相关信息110(诸如块分区信息、运动矢量、参考图片索引和帧内预测模式等)也通过熵编码电路106被馈送并保存到压缩的视频比特流114中。
34.在编码器100中,为了预测的目的,还需要解码器相关电路以便重建像素。首先,预测残差通过反量化电路116和逆变换电路118被重建。这个重建预测残差与块预测值120组合以生成当前块的未被滤波的重建像素。
35.如图1所示,可执行帧内预测(也称为“空间预测”)和/或帧间预测(也称为“时间预测”或“运动补偿预测”)。帧内预测使用来自同一视频图片或条带中的已被编解码的邻近块的样点(其称为参考样点)的像素来预测当前视频块。帧内预测减少了视频信号中固有的空间冗余。帧间预测使用来自已被编解码的视频图片的重建像素来预测当前视频块。
36.帧间预测减少视频信号中固有的时间冗余。用于给定cu的帧间预测信号通常由一个或更多个运动向量(mv)用信号发送,其中运动向量指示当前cu与其时间参考之间的运动的量和方向。此外,如果支持多个参考图片,则另外发送一个参考图片索引,其用于识别时间预测信号来自参考图片存储器中的哪个参考图片。
37.在空间和/或时间预测之后,编码器100中的帧内/帧间模式决策电路126例如基于率失真优化方法来选择最优预测模式。然后从当前视频块减去预测块;并且使用变换对预测残差进行去相关并进行量化。量化的残差系数被反量化和逆变换以形成重建残差,然后重建残差被加回到预测块以形成cu的重建信号。在将重建cu放入参考图片存储器并用于对未来视频块进行编解码之前,可进一步对重建cu应用环路滤波,诸如去块滤波器、样点自适应偏移(sao)和自适应环路滤波器(alf)。为了形成输出的视频比特流,编解码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编码电路106以进一步压缩和打包以形成比特流。
38.图2是阐述可与包括vvc的许多视频编解码标准结合使用的示例性的基于块的视频解码器200的框图。在一些示例中,解码器200类似于驻留在图1的编码器100中的重建相关部分。
39.参照图2,在解码器200中,首先通过熵解码电路202对输入的视频比特流201进行解码,以导出量化的系数等级和预测相关信息。然后通过反量化电路204和逆变换电路206处理量化的系数等级以获得重建的预测残差。编解码模式和预测信息被发送到空间预测电
路(在帧内编解码的情况下)或时间预测电路(在帧间编解码的情况下)以形成预测块。残差变换系数被发送到反量化电路204和逆变换电路206以重建残差块。然后将预测块和残差块相加在一起。重建块可在其被存储在参考图片存储器中之前进一步被执行环路滤波。然后将参考图片存储器中的重建视频发送出去以驱动显示设备以及用于预测未来视频块。
40.可在帧内/帧间模式选择电路208中实现的块预测值机制包括被配置为执行帧内预测过程的帧内预测电路210和/或被配置为基于解码的预测信息执行运动补偿过程的运动补偿电路212。通过使用加法器214将来自逆变换电路206的重建预测残差与由块预测值机制生成的预测输出相加来获得未被滤波的重建像素集。在打开环路滤波器216的情况下,对这些重建像素执行滤波操作以导出最终的重建视频用于输出。
41.图3a至图3e示出了五种示例划分类型,即四元分割(图3a)、水平二元分割(图3b)、垂直二元分割(图3c)、水平三元分割(图3d)和垂直三元分割(图3e)。
42.图4示出了vvc中的帧内模式。类似于hevc,vvc使用与一个当前cu邻近(即,上方或左侧)的先前解码样点的集合来预测cu的样点。然而,为了捕获自然视频(特别是对于高分辨率(例如4k)的视频内容)中存在的更精细的边缘方向,角度帧内模式的量从hevc中的33扩展到vvc中的93。除了角度方向之外,与hevc相同的平面模式(其假设具有从边界导出的水平斜率和垂直斜率的逐渐变化的表面)和dc模式(其假设平坦表面)也被应用于vvc标准中。类似于hevc中的帧内预测,vvc中的所有帧内模式(即,平面、dc和角度方向)利用被预测的块上方和左侧的邻近重建样点的集合作为用于帧内预测的参考。
43.图5示出了用于vvc中的帧内预测的多个参考线。与仅重建样点的最近行或列(即,图5中的线0)作为参考的hevc不同,在vvc中引入多个参考线,其中两个额外行或列(即,图5中的线1和线3)用于帧内预测。将所选的参考行或列的索引从编码器100用信号发送到解码器200。当非最近行或列被选择时,从可用于预测当前块的帧内模式的集合中排除平面模式和dc模式。
44.假设最近的邻近者,图6a至图6c示出了在vvc中用于导出一个帧内块的预测样点的参考样点的位置。如图6a至图6c所示,因为应用了四叉/二叉/三叉树分割结构,所以除了正方形形状的编码块之外,还存在矩形编码块用于vvc的帧内预测。由于一个给定块的宽度和高度不等,所以针对不同的块形状来选择各种角度方向的集合,这也被称为广角帧内预测。具体地,对于正方形和矩形编码块,除了平面模式和dc模式之外,对于每个块形状还支持93个角度方向中的65个角度方向,如表1所示。这种设计不仅可有效地捕获通常存在于视频中的方向结构(通过基于块形状自适应地选择角度方向),而且还可确保针对每个编码块启用总共67个帧内模式(即,平面、dc和65个角度方向)。这可实现用信号发送帧内模式的良好效率,同时提供跨不同块尺寸的一致设计。
45.表1 vvc中用于不同块形状的帧内预测的选择的角度方向
[0046][0047]
vvc将3抽头平滑滤波器[1,2,1]/4应用于用于帧内预测的参考样点。除了滤波操作被跳过的左下方参考样点和右上方参考样点之外,使用每个参考样点的左侧和右侧的两个邻近参考样点对每个参考样点应用滤波操作。对于角度帧内模式,关于是否将平滑滤波器应用于帧内参考样点的决定取决于编码块尺寸和角度帧内模式的方向性。更具体地,对于具有小于64个样点的编码块尺寸,参考平滑滤波器针对所有角度方向始终被禁用。对于具有至少64个样点的编码块尺寸,平滑滤波器被应用于三个对角线角度方向(即,模式2、34和66),但是针对所有其他角度方向被禁用。对于dc模式,平滑滤波器始终被禁用。对于平面模式,当编码块包含多于32个样点时,平滑滤波器被应用于帧内参考样点。
[0048]
另外,当从分数位置处的一个参考样点预测目标样点时,应用插值过程以获得帧内预测样点。具体地,对于亮度分量,根据帧内预测模式,应用一个4抽头滤波器以通过利用整数位置处的最接近参考样点以1/32像素精度来插值一个分数样点的值,如下所描绘的:
[0049]
p
x,y
=(f[0]
×
r
i

1,0
f[1]
×
r
i,0
f[2]
×
r
i 1,0
f[3]
×
r
i 2,0
32)>>6
ꢀꢀꢀꢀꢀꢀꢀ
(1)
[0050]
其中f[i],i=0,1,

,2,并且r
i

1,0
、r
i,0
、r
i 1,0
和r
i 2,0
是用于预测当前编码块内的样点的整数参考样点,并且>>表示右移位运算。整数参考样点的索引i基于与所选择的帧内预测模式相应的投影位移d来计算,如下所示:
[0051]
c
y
=(y
×
d)>>5,i=x c
y
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0052]
在当前vvc工作草案中,根据所选择的帧内模式,应用dct

if滤波器(应用于色度分量的运动补偿的相同滤波器)或高斯滤波器以生成分数位置处的亮度样点。
[0053]
表2示出用于分数亮度样点的帧内预测的插值滤波器。
[0054][0055]
[0056]
对于色度分量,当从1/32像素处的一个分数参考样点生成目标样点时,应用双线性插值滤波器以获得帧内预测样点,如下所描绘的:
[0057]
p
x,y
=((32

w
y
)
×
r
i,0
w
y
×
r
i 1,0
15)>>5
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0058]
其中w
y
是两个整数参考样点r
i,0
和r
i 1,0
之间的加权参数,其被计算为:
[0059]
c
y
=(y
×
d)>>5,w
y
=(y
×
d)&31,i=x c
y
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0060]
此外,帧内预测样点从未被滤波或被滤波的邻近参考样点集合中生成,这可能沿着当前编码块与其邻近者之间的块边界引入不连续性。为了解决这种问题,在hevc中,通过将dc预测模式、水平预测模式(即,模式18)和垂直预测模式(即,模式50)的预测样点的第一行/列预测样点与未被滤波的参考样点进行组合,利用2抽头滤波器(用于dc模式)或基于梯度的平滑滤波器(用于水平预测模式和垂直预测模式)来应用边界滤波。
[0061]
vvc中的位置相关帧内预测组合(pdpc)工具通过采用帧内预测样点与未被滤波的参考样点的加权组合来扩展上述构思。在当前的vvc工作草案中,pdpc在无需信令的情况下针对以下帧内模式被启用:平面、dc、水平(即,模式18)、垂直(即,模式50)、接近左下对角线方向的角度方向(即,模式2、3、4、

、10)和接近右上对角线方向的角度方向(即,模式58、59、60、

、66)。假设定位为坐标(x,y)的预测样点是pred(x,y),其在pdpc之后的相应值被计算为
[0062]
pred(x,y)=(wl
×
r

1,y
wt
×
r
x,
‑1–
wtl
×
r

1,
‑1 (64

wl

wt wtl)
×
pred(x,y) 32)>>6
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0063]
其中r
x,
‑1、r

1,y
分别表示位于当前样点(x,y)的顶部和左侧的参考样点,并且r

1,
‑1表示位于当前块的左上角的参考样点。
[0064]
图7示出了用于一个编码块的位置相关帧内预测组合(pdpc)的邻近重建样点的位置。它示出了用于在pdpc过程期间与当前预测样点组合的参考样点的位置。等式5中的权重wl、wt和wtl根据预测模式和样点位置自被适应地选择,如下所述,其中假设当前编码块的尺寸为w
×
h:
[0065]
对于dc模式,
[0066]
wt=32>>((y<<1)>>shift),wl=32>>((x<<1)>>shift),wtl=(wl>>4) (wt>>4) (6)
[0067]
对于平面模式,
[0068]
wt=32>>((y<<1)>>shift),wl=32>>((x<<1)>>shift),wtl=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0069]
对于水平模式:
[0070]
wt=32>>((y<<1)>>shift),wl=32>>((x<<1)>>shift),wtl=wt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0071]
对于垂直模式:
[0072]
wt=32>>((y<<1)>>shift),wl=32>>((x<<1)>>shift),wtl=wl
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0073]
对于左下对角线方向:
[0074]
wt=16>>((y<<1)>>shift),wl=16>>((x<<1)>>shift),wtl=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0075]
对于右上对角线方向:
[0076]
wt=16>>((y<<1)>>shift),wl=16>>((x<<1)>>shift),wtl=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0077]
其中shift=(log2(w)

2 log2(h)

2 2)>>2。
[0078]
图8示出了从屏幕内容和相机捕获的视频获得的图片之间的比较。屏幕内容显示在左侧,并且相机捕获的内容显示在右侧。屏幕内容编码(scc)在各种视频应用(诸如桌面
共享、视频会议和远程教育)中变得越来越重要。与自然视频内容相比,屏幕内容展示了非常不同的特性。特别地,由于相机镜头的性质,由相机捕获的视频信号通常显示跨不同对象的平滑边界。然而,如图8所示,屏幕内容呈现形状边缘。
[0079]
帧内平滑操作(例如,帧内参考样点平滑、分数帧内样点插值和pdpc)由于平缓的过渡边缘而对于提高相机捕获的内容的帧内编码效率有效。然而,对于屏幕内容视频或计算机生成的图形,内容具有许多尖锐边缘,使得那些平滑操作可能潜在地使预测不准确,并因此损害整体编解码性能。例如,对于包含大量尖锐边缘的屏幕内容,参考样点的平滑可能去除存在于一个块的重建邻近样点中的有用高频信息。由于屏幕内容中的尖锐边缘,插值的样点不如用于预测当前块的样点的整数位置处的参考样点(即,非插值的参考样点)准确。对于屏幕内容视频,帧内预测样点和未被滤波的参考样点的加权组合可能潜在地去除当前块的邻近重建区域中的有用高频信息,因此降低帧内预测效率。
[0080]
在一些示例中,在本公开中提出信令方法以控制平滑操作(例如,vvc的现有帧内预测设计中的帧内参考样点平滑、分数帧内样点插值和pdpc)的启用和/或禁用。
[0081]
表3示出了修改的序列参数集(sps)的语法表,其中用信号发送三个语法元素,即sps_intra_reference_smooth_enabled_flag、sps_intra_frac_sample_interp_enabled_flag和sps_pdpc_enabled_flag,以指示在参考sps的瓦片(tile)组中的所有编码块的帧内预测过程中是否应用帧内参考平滑、帧内分数样点插值或pdpc。通过将这三个标志中的一个标志(例如,sps_intra_frac_sample_interp_enabled_flag)设置为零,一个编码器可向一个解码器指示在序列级上不应用相应的帧内平滑(例如,帧内分数样点插值)。
[0082]
另外,如表3中所示,还在sps中用信号发送三个其它标志,即,intra_reference_smooth_override_enabled_flag、intra_frac_sample_interp_override_enabled_flag和pdpc_override_enabled_flag,以指示是否允许在瓦片组级改变帧内参考平滑、帧内分数样点插值和pdpc的启用和/或禁用决策。当将这三个标志之一(例如,intra_frac_sample_interp_override_enabled_flag)设置为等于1时,它指示用于启用和/或禁用相应帧内平滑操作(例如,帧内分数样点插值)的另一控制标志将在瓦片组头处被用信号发送;否则(即,标志等于0),它指示不允许在瓦片组级启用和/或禁用对相应帧内平滑操作的单独控制,即,帧内平滑操作的启用和/或禁用由sps中的相应标志(例如,sps_intra_frac_sample_interp_enabled_flag)控制。
[0083]
表3如下示出了修改的sps语法表:
[0084][0085]
具体地,sps_intra_reference_smooth_enabled_flag指定帧内参考平滑是否被应用于帧内预测。等于0的sps_intra_reference_smooth_enabled_flag指定在cvs中不使用帧内参考平滑。否则,等于1的sps_intra_reference_smooth_enabled_flag指定在cvs中使用帧内参考平滑。
[0086]
等于1的intra_reference_smooth_override_enabled_flag指定在参考sps的图片的瓦片组头中存在intra_reference_smooth_enabled_flag。等于0的intra_reference_smooth_override_enabled_flag指定在参考sps的图片的瓦片组头中不存在intra_reference_smooth_enabled_flag。
[0087]
sps_intra_frac_sample_interp_enabled_flag指定帧内分数样点插值是否被应用于帧内预测。等于0的sps_intra_frac_sample_interp_enabled_flag指定在cvs中不使用帧内分数样点插值。否则,等于1的sps_intra_frac_sample_interp_enabled_flag指定在cvs中使用帧内分数样点插值。
[0088]
等于1的intra_frac_sample_interp_override_enabled_flag指定在参考sps的图片的瓦片组头中存在intra_frac_sample_interp_enabled_flag。等于0的intra_frac_sample_interp_override_enabled_flag指定参考sps的图片的瓦片组头中不存在intra_frac_sample_interp_enabled_flag。
[0089]
sps_pdpc_enabled_flag指定位置相关帧内预测组合是否被应用于帧内预测。等于0的sps_pdpc_enabled_flag指定在cvs中不使用位置相关帧内预测组合。否则,等于1的sps_pdpc_enabled_flag指定在cvs中使用位置相关帧内预测组合。
[0090]
等于1的pdpc_override_enabled_flag指定参考sps的图片的瓦片组头中存在pdpc_enabled_flag。等于0的pdpc_override_enabled_flag指定参考sps的图片的瓦片组头中不存在pdpc_enabled_flag。
[0091]
表4示出了修改的瓦片组头的语法表。
[0092][0093]
在一些示例中,如果通过将相应的sps控制标志(即,sps_intra_reference_smooth_enabled_flag、sps_intra_frac_sample_interp_enabled_flag或sps_pdpc_enabled_flag)设置为1来允许启用和/或禁用一个帧内平滑过程的瓦片组级调适,则在瓦片组头中进一步用信号发送另一标志,即,intra_reference_smooth_enabled_flag、intra_frac_sample_interp_enabled_flag或pdpc_enabled_flag,以指示针对属于该瓦片
组的编码块是启用还是禁用相应的帧内平滑过程(即,帧内参考平滑、帧内分数样点插值或pdpc)。
[0094]
在一些示例中,intra_reference_smooth_enabled_flag指定帧内参考平滑是否被应用于帧内预测。等于0的intra_reference_smooth_enabled_flag指定帧内参考平滑不用于当前瓦片组中的所有编码块的帧内预测。否则,(intra_reference_smooth_enabled_flag等于1),帧内参考平滑用于当前瓦片组中的所有编码块的帧内预测。当intra_reference_smooth_enabled_flag不存在时,其值被推断为sps_intra_reference_smooth_enabled_flag的值。
[0095]
intra_frac_sample_interp_enabled_flag指定帧内分数样点插值是否被应用于帧内预测。等于0的intra_frac_sample_interp_enabled_flag指定帧内分数样点插值不用于当前瓦片组中的所有编码块的帧内预测。否则,(intra_frac_sample_interp_enabled_flag等于1),帧内分数样点插值用于当前瓦片组中的所有编码块的帧内预测。当intra_frac_sample_interp_enabled_flag不存在时,其值被推断为sps_intra_frac_sample_interp_enabled_flag的值。
[0096]
pdpc_enabled_flag指定pdpc是否被应用于帧内预测。等于0的pdpc_enabled_flag指定pdpc不用于当前瓦片组中的所有编码块的帧内预测。否则(pdpc_enabled_flag等于1),pdpc用于当前瓦片组中的所有编码块的帧内预测。当pdpc_enabled_flag不存在时,其值被推断为sps_pdpc_enabled_flag的值。
[0097]
在一些示例中,在sps和瓦片组头中提出表3和表4中的三组语法元素以单独地控制帧内参考平滑、帧内分数样点插值和pdpc的启用和禁用。
[0098]
在一些示例中,在sps和瓦片组头中使用一个相同语法元素以控制所有三个帧内平滑操作的启用和/或禁用。
[0099]
在一些示例中,替代在sps中放置高级控制标志(即,sps_intra_reference_smooth_enabled_flag、sps_intra_frac_sample_interp_enabled_flag、sps_pdpc_enabled_flag、intra_reference_smooth_override_enabled_flag、intra_frac_sample_interp_override_enabled_flag及pdpc_override_enabled_flag),将这些标志设置在图片参数集(pps)中。相应地,与表3中的基于sps的信令方法的序列级控制相比,在应用这种方法之后,编码器可自适应地启用和/或禁用一个帧内平滑操作的最高粒度处于图片等级。
[0100]
此外,为了避免使重建邻近者中尖锐边缘模糊,当目标参考样点位于用于屏幕内容编解码的一个分数样点位置时,不应将帧内样点插值应用于帧内参考样点。为了禁用帧内分数插值,应在帧内预测之前将位于分数样点位置处的所参考的帧内参考样点的位置裁剪到整数样点位置处的参考样点,其中可对裁剪过程应用不同的方法。
[0101]
在一些示例中,实际分数样点位置左侧的整数参考样点(对于参考当前块的左侧邻近样点的角度帧内模式)或实际分数位置下方的整数参考样点(对于参考当前块的上方邻近样点的角度帧内模式)用于生成预测样点。特别地,采用等式1中相同的符号,通过所提出的方法将一个帧内预测样点的值计算为:
[0102]
p
x,y
=r
i,0
,其中c
y
=(y x d)>>5,i=x c
y
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0103]
图9示出了当应用上述方法时一个帧内预测样点的生成。如图9所示,通过将一个分数参考样点位置裁剪到其左侧整数样点位置来禁用帧内分数样点插值。
[0104]
如图10a至图10b所示,应用基于最近邻的裁剪方法。代替使用左侧邻近整数参考样点,将选择更接近假设分数样点位置的邻近整数参考样点作为预测值。特别地,在应用这种裁剪的情况下,一个帧内预测样点的导出在数学上被描述为:
[0105]
如果0≤w
y
≤16,则p
x,y
=r
i,0
;如果16<w
y
<32,则p
x,y
=r
i 1,0
ꢀꢀꢀ
(13)
[0106]
其中c
y
=(y x d)>>5,w
y
=(y x d)&31,i=x c
y

[0107]
图11是根据示例的用于对视频数据进行编解码的方法1100的流程图。该方法可基于对将被编解码的视频内容(例如,相机捕获的视频内容或屏幕视频内容)的分析,自适应地或选择性地做出关于是启用还是禁用帧内平滑过程(例如,帧内参考平滑、帧内分数样点插值和pdpc)的决定。在不失一般性的情况下,使用瓦片组作为基本单元来描述该方法,以自适应地切换帧内平滑过程的启用和禁用。然而,对于视频编解码领域的技术人员来说,本文中所描述的方法可适用于其它编解码等级,例如,序列级、图片/条带级或甚至区块级(例如,每个区块可包含特定数量的ctu)。
[0108]
具体地,在步骤1101,编码器(诸如编码器100)计算瓦片组中的多个非重叠块中的每个非重叠块的哈希值(例如,32位crc)。此外,对于每个哈希值,编码器对与哈希值相关联的块的数量进行计数(即,使用)。在一些示例中,块的尺寸为4
×
4。然而,该方法不限于使用4
×
4的块尺寸。在一些示例中,也可使用其它块尺寸,包括不同尺寸的正方形块和/或矩形块两者。
[0109]
在步骤1103,将瓦片组中的所有非重叠块分类为两个类别,例如第一类别和第二类别。在一些示例中,第一类别可包括多个非重叠块中具有由第一哈希值集合(诸如最常使用的哈希值)覆盖的哈希值的一个或更多个块。在一些示例中,第一最常使用的哈希值集合可以是前n个最常使用的哈希值。第二类别可包括多个非重叠块中不属于第一类别的所有其余块。
[0110]
在步骤1105,对于第二类别中的每个块,确定同一类别中是否存在表示相同哈希值的另一块。例如,在一些示例中,对于第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块。
[0111]
在步骤1107,基于步骤1105的确定,禁用用于瓦片组中的块的帧内预测的至少一个帧内平滑操作。例如,在一些示例中,基于确定第二类别中存在表示与第一块相同的哈希值的第二块,禁用用于多个非重叠块的帧内预测的至少一个帧内平滑操作。
[0112]
当存在至少一个匹配的第二块时,将第一块视为屏幕内容块;否则,如果不存在匹配的第二块,则将第一块视为非屏幕内容块。当屏幕内容第一块的百分比大于预定义阈值时,将对瓦片组中的编码块的帧内预测禁用帧内平滑操作(例如,帧内参考平滑、帧内分数样点插值和pdpc)。否则,将对瓦片组中的编码块启用帧内平滑操作。
[0113]
在一些示例中,一种用于对视频数据进行编解码的方法包括:由编码器计算瓦片组中的多个非重叠块中的每个块的哈希值;将多个非重叠块分类为包括第一类别和第二类别的至少两个类别。第一类别包括多个非重叠块中的表示由第一哈希值集合覆盖的一个或更多个哈希值的一个或更多个块,并且第二类别包括多个非重叠块中的所有其余块。对于第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块。并且基于确定第二类别中是否存在表示与第一块相同的哈希值的第二块,禁用用于多个非重叠块的帧内预测的至少一个帧内平滑操作。
[0114]
在一些示例中,当存在至少一个第二块时,所述方法还包括确定第一块是屏幕内容块,并且当不存在表示与第一块相同的哈希值的第二块时,确定第一块是非屏幕内容块。
[0115]
在一些示例中,当存在表示与第一块相同的哈希值的至少一个第二块并且第一块相对于非重叠块的总数的百分比大于预定阈值时,禁用用于瓦片组中的多个非重叠块的帧内预测的至少一个帧内平滑操作。
[0116]
在一些示例中,禁用用于瓦片组中的多个非重叠块的帧内预测的至少一个帧内平滑操作包括:确定第一启用控制标志是否被设置为1,其中第一启用控制标志是在与瓦片组相应的序列参数集中发送的,并且当确定第一启用控制标志被设置为1时,确定用于瓦片组内的多个非重叠块的第二启用控制标志,其中第二启用控制标志是在瓦片组的头中设置的。
[0117]
特别地,启用控制标志可以是表3和表4中提供的控制标志之一。例如,控制标志可以是相应的sps控制标志,诸如sps_intra_reference_smooth_enabled_flag、sps_intra_frac_sample_interp_enabled_flag或sps_pdpc_enabled_flag。启用标志可以是标志,即,intra_reference_smooth_enabled_flag、intra_frac_sample_interp_enabled_flag或pdpc_enabled_flag,如表4所示。
[0118]
在一些示例中,至少一个帧内平滑操作包括以下操作之一:帧内参考平滑、帧内分数样点插值和/或位置相关帧内预测组合(pdpc)。
[0119]
在一些示例中,第一启用控制标志还可包括用于控制帧内参考平滑操作的第一启用控制子标志、用于控制帧内分数样点插值操作的第二启用控制子标志以及用于控制pdpc操作的第三启用控制子标志。
[0120]
在一些示例中,第二启用标志还可包括用于启用或禁用帧内参考平滑操作的第一启用控制子标志、用于启用或禁用帧内分数样点插值操作的第二启用控制子标志以及用于启用或禁用pdpc操作的第三启用控制子标志。
[0121]
在一些示例中,控制改写标志可包括用于帧内参考平滑操作的第一控制改写标志、用于帧内分数样点插值操作的第二控制改写标志以及用于pdpc操作的第三控制改写标志。
[0122]
在一些示例中,禁用用于瓦片组内的多个非重叠块的帧内预测的至少一个帧内平滑操作,包括:确定第一启用控制标志是否被设置为1,其中第一启用控制标志是在与瓦片组相应的图片参数集中发送的,并且当确定第一启用控制标志被设置为1时,确定用于瓦片组内的多个非重叠块的第二启用控制标志,其中第二启用控制标志是在瓦片组的头中发送的。第一启用控制标志还可包括用于控制帧内参考平滑操作的第一启用控制子标志、用于控制帧内分数样点插值操作的第二启用控制子标志以及用于控制pdpc操作的第三启用控制子标志。第二启用控制标志还可包括用于启用或禁用帧内参考平滑操作的第一启用控制子标志、用于启用或禁用帧内分数样点插值操作的第二启用控制子标志以及用于启用或禁用pdpc操作的第三启用控制子标志。
[0123]
在一些示例中,当确定禁用帧内分数插值时,所述方法还包括将帧内分数参考样点位置裁剪到在实际分数样点位置左侧或上方的整数参考样点位置,或者将帧内分数参考样点位置裁剪到最近的整数参考样点位置。
[0124]
在一些示例中,一种计算设备包括一个或更多个处理器、耦合到一个或更多个处
理器的非暂态存储设备以及存储在非暂态存储设备中的多个程序,多个程序在由一个或更多个处理器执行时使计算设备执行动作,所述动作包括:对于瓦片组中的多个非重叠块中的每个块,由编码器计算块的哈希值;将瓦片组中的多个非重叠块分类为包括第一类别和第二类别的两个类别,其中第一类别包括由第一哈希值集合覆盖的哈希值的一个或更多个块,并且第二类别包括瓦片组中的多个非重叠块的所有其余块。对于第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块。基于确定第二类别中是否存在第二块,可禁用用于瓦片组中的多个非重叠块的帧内预测的至少一个帧内平滑操作。
[0125]
在一些示例中,一种非暂态计算机可读存储介质,存储用于由具有一个或更多个处理器的计算设备执行的多个程序,其中多个程序在由一个或更多个处理器执行时使计算设备执行动作,所述动作包括:由编码器计算瓦片组中的多个非重叠块中的每个块的哈希值;将多个非重叠块分类为包括第一类别和第二类别的至少两个类别,其中第一类别包括多个非重叠块中的表示由第一哈希值集合覆盖的一个或更多个哈希值的一个或更多个块,并且第二类别包括多个非重叠块中的所有其余块;对第二类别中的第一块,确定第二类别中是否存在表示与第一块相同的哈希值的第二块;并且基于确定第二类别中是否存在表示与第一块相同的哈希值的的第二块,禁用用于多个非重叠块的帧内预测的至少一个帧内平滑操作。
[0126]
在一些示例中,基于确定第二类别中是否存在第二块而禁用用于多个非重叠块的帧内预测的至少一个帧内平滑操作,可包括确定第一启用控制标志是否被设置为1,其中第一启用控制标志是在与瓦片组相应的序列参数集中发送的,并且当确定第一启用控制标志被设置为1时,确定用于多个非重叠块的第二启用控制标志,其中第二启用控制标志是在瓦片的头中发送的。
[0127]
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则所述功能可作为一个或更多个指令或代码存储于计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可包括与诸如数据存储介质的有形介质相应的计算机可读存储介质,或者包括促进将计算机程序从一处传送到另一处(例如,根据通信协议)的任何介质的通信介质。以此方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质或(2)通信介质,诸如信号或载波。数据存储介质可以是可由一个或更多个计算机或一个或更多个处理器访问以获取用于实现本技术中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
[0128]
此外,可使用包括一个或更多个电路的装置来实现上述方法,其中所述一个或更多个电路包括专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件。该装置可使用与其他硬件或软件组件组合的电路来执行上述方法。上面描述的每个模块、子模块、单元或子单元可至少部分地使用一个或更多个电路来实现。
[0129]
考虑到本文公开的本发明的说明书和实践,本发明的其他示例对于本领域技术人员将显而易见。本技术旨在覆盖遵循本公开的一般原理的本公开的任何变化、用途或改编,并且包括在本领域已知或惯常实践内的与本公开的这种偏离。说明书和示例旨在仅被认为是示例性的,本公开的真实范围和精神由所附权利要求指示。
[0130]
应当理解,本发明不限于上述和附图中示出的确切示例,并且可在不脱离本发明范围的情况下进行各种修改和改变。本公开的范围仅受所附权利要求的限制。
再多了解一些

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

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

相关文献