用于视频编解码的去方块滤波器

文档序号:411942 发布日期:2021-12-17 浏览:28次 >En<

阅读说明:本技术 用于视频编解码的去方块滤波器 (Deblocking filter for video coding and decoding ) 是由 张莉 朱维佳 张凯 刘鸿彬 许继征 于 2020-05-11 设计创作,主要内容包括:在示例性方面,用于视觉媒体处理的方法包括:识别两个视频块的垂直边缘和/或水平边缘处的边界;基于使用组合的帧内帧间预测(CIIP)模式编码跨越垂直边缘或水平边缘的两个视频块中的至少一个,计算滤波器的边界强度;决定打开还是关闭所述滤波器;在打开所述滤波器的情况下选择所述滤波器的强度;以及基于所述选择,对所述视频块执行去方块滤波(DB)处理。(In an exemplary aspect, a method for visual media processing includes: identifying boundaries at vertical edges and/or horizontal edges of two video blocks; calculating a boundary strength of a filter based on encoding at least one of two video blocks spanning a vertical edge or a horizontal edge using a Combined Intra Inter Prediction (CIIP) mode; deciding whether to turn on or off the filter; selecting a strength of the filter if the filter is turned on; and based on the selection, performing a deblocking filter (DB) process on the video block.)

用于视频编解码的去方块滤波器

相关申请的交叉引用

根据适用专利法和/或适用于巴黎公约的规则,本申请及时要求2019年5月11日提交的国际专利申请No.PCT/CN2019/086488号的优先权和权益。出于法律的所有目的,通过引用将上述申请的全部公开并入,作为本申请公开的一部分。

技术领域

本专利文档涉及视频编码/解码技术、设备和系统。

背景技术

尽管视频压缩有所进步,数字视频在互联网和其他数字通信网络上仍占最大的带宽使用量。随着能够接收和显示视频的连接用户设备的数量增加,预计数字视频使用所需的带宽将继续增长。

发明内容

描述了与视频编码/解码技术有关的设备、系统和方法,特别是与图像/视频编解码中的去方块滤波器有关的设备、系统和方法。所描述的方法可以应用于正在开发的标准(例如多功能视频编解码)和未来的视频编解码标准或视频编解码器。

在一个方面,所公开的技术可以用于提供用于视觉媒体处理的方法。该方法包括:识别两个视频块的垂直边缘和/或水平边缘处的边界;基于使用组合的帧内帧间预测(CIIP)模式编码的跨越垂直边缘或水平边缘的两个视频块中的至少一个,计算滤波器的边界强度;决定打开还是关闭所述滤波器;在打开所述滤波器的情况下选择所述滤波器的强度;以及基于所述选择,对所述视频块执行去方块滤波(DB)处理。

在另一方面,所公开的技术可以用于提供用于视觉媒体处理的方法。该方法包括:确定适用于视觉媒体数据的视频块和视频块的比特流表示之间的转换的编码方案;以及基于所述编码方案的确定,在所述视频块的转换期间,选择性地使能或禁止将环内滤波器应用于视频块。

在又一方面,所公开的技术可以用于提供用于视觉媒体处理的方法。该方法包括:确定适用于视觉媒体数据的视频块和视频块的比特流表示之间的转换的变换矩阵的类型;以及基于对变换矩阵的类型的确定,在所述视频块的转换期间,选择性地使能或禁止将去方块(DB)滤波处理应用于视频块。

在又一方面,所公开的技术可以用于提供用于视觉媒体处理的方法。该方法包括:在视觉媒体数据的视频块和视频块的比特流表示之间的转换期间,确定将环内滤波步骤应用于视频块,其中,环内滤波步骤包括应用于在要滤波的视频块中的样点上的裁剪操作;以及响应于确定与视频块相关联的一个或多个条件,选择性地启用或禁用裁剪操作。

在又一方面,上述方法以处理器可执行代码的形式体现,并存储在计算机可读程序介质中。

在又一方面,公开了一种配置或可操作以执行上述方法的设备。该设备可以包括被编程为实现该方法的处理器。

在又一方面,视频解码器装置可实现如本文中所描述的方法。

在又一方面,视频编码器装置可实现如本文中所描述的方法。

在附图、说明书和权利要求中更详细地描述了所公开技术的上述和其他方面和特征。

附图说明

图1示出了多功能视频编解码(VVC)的编码器框图的示例。

图2示出去方块滤波处理的示例处理流程。

图3示出了如何基于帧内编码模式、非零变换系数的存在和运动信息、参考图片、运动矢量的数量和运动矢量差来计算Bs值。

图4示出了用于在CTU边界处计算Bs的参考信息的示例。

图5示出了涉及滤波器开/关决策的像素的示例。

图6A示出了4×8和8×4块的划分的示例。

图6B示出了除4×8、8×4和4×4以外的所有块的划分的示例。

图7A示出了用于4×4块的仿射线性加权帧内预测(ALWIP)的示例。

图7B示出了用于8×8块的ALWIP的示例。

图7C示出了用于8×4块的ALWIP的示例。

图7D示出了用于16×16块的ALWIP的示例。

图8示出了JEM中的二次变换的示例。

图9示出了基于所公开技术的实施例的简化的二次变换(RST)的示例。

图10示出了子块变换模式SBT-V和SBT-H的示例。

图11示出了子块MV VSB和像素Δv(i,j)的示例。

图12示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图13示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图14示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图15示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图16示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图17示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图18示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图19示出了基于所公开技术的一些实施例的用于视频处理的示例方法的流程图。

图20是用于实现本文档中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。

图21是其中可实施所公开的技术的示例视频处理系统的框图。

图22示出了用于视觉媒体处理的示例方法的流程图。

图23示出了用于视觉媒体处理的示例方法的流程图。

图24示出了用于视觉媒体处理的示例方法的流程图。

图25示出了用于视觉媒体处理的示例方法的流程图。

具体实施方式

由于对更高分辨率视频的需求的增加,在现代技术中普遍存在视频编解码方法和技术。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断改进以提供更高的编码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的简易性、随机访问和端到端延迟(迟延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(HEVC)标准(也称为H.265或MPEG-H第2部分)、要完成的多功能视频编解码(Versatile Video Coding,VVC)标准、或其他当前和/或未来的视频编解码标准。

在一些实施例中,使用称为联合探索模型(JEM)的参考软件来探索未来的视频编解码技术。在JEM中,在几种编码工具中采用基于子块的预测,诸如仿射预测、可选时域运动矢量预测(ATMVP)、空时运动矢量预测(STMVP)、双向光流(BIO)、帧速率上转换(FRUC)、局部自适应运动矢量分辨率(LAMVR)、重叠块运动补偿(OBMC)、局部照明补偿(LIC)和解码器侧运动矢量细化(DMVR)。

所公开技术的实施例可应用于现有视频编解码标准(例如,HEVC、H.265)和未来标准以改善运行时间性能。本文档提供了可以由图像或视频比特流的解码器使用的各种技术,以提高解压缩或解码的数字视频或图像的质量。为了简洁起见,术语“视频”在本文中用于包括图片序列(传统上称为视频)和单个图像。此外,视频编码器还可在编码处理期间实施这些技术,以便重构用于进一步编码的解码帧。

在本文档中使用节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限于各个节。

1.典型视频编解码器的编码流程的示例

图1示出了VVC的编码器框图的示例,其中包含三个环内滤波块:去方块滤波器(DF)、采样自适应偏移(SAO)和ALF。与使用预定义滤波器的DF不同,SAO和ALF利用当前图片的原始样点分别通过增加偏移量和应用有限脉冲响应(FIR)滤波器来减少原始样点与重构样点之间的均方差,其中编码的边信息用信令通知偏移量和滤波器系数。ALF位于每个图片的最后一个处理阶段,并且可以看作是试图捕获和修复由先前阶段创建的伪像的工具。

2.HEVC中去方块方案示例

以与解码处理相同的顺序对每个CU执行去方块滤波处理。首先,对垂直边缘进行滤波(水平滤波),然后对水平边缘进行滤波(垂直滤波)。对于亮度和色度分量,将滤波应用于确定要滤波的8x8块边界。为了降低复杂度,不处理4x4块边界。

图2示出了去方块滤波处理的整体处理流程。边界可以具有三种滤波状态:无滤波、弱滤波和强滤波。每个滤波决策均基于边界强度Bs和阈值β和tC

2.1边界决策

滤波处理中可能涉及三种边界:CU边界、TU边界和PU边界。由于CU边界始终也是TU边界或PU边界,因此滤波始终涉及CU边界(即CU的外部边缘)。当PU形状为2NxN(N>4)且RQT深度等于1时,滤波涉及8x8块网格处的TU边界和CU内部每个PU之间的PU边界。一个例外是,当PU边界在TU内时,不对边界进行滤波。

2.2边界强度计算

图3示出了用于Bs计算的流程图。通常而言,边界强度(Bs)反映了边界需要多强的滤波。如果Bs大,则应考虑使用强滤波。令P和Q定义为滤波所涉及的块,其中P表示位于边界左侧(垂直边缘情况)或上方(水平边缘情况)的块,而Q表示位于边界右侧(垂直边缘的情况)或边界上方(水平边缘的情况)的块。图3示出了如何基于帧内编码模式、非零变换系数的存在和运动信息、参考图片、运动矢量的数量和运动矢量差来计算Bs值。

Bs是基于4x4块计算的,但是将其重新映射到8x8网格。选择与由4×4网格中的线组成的8个像素相对应的Bs的两个值中的最大值作为用于8×8网格中的边界的Bs。

图4示出了用于在CTU边界处计算Bs的参考信息的示例。为了减少行缓冲存储器的需求,如图4所示,仅对于CTU边界,重新使用在左侧或上方的每个第二块(4×4网格)中的信息。

2.3β和tC决策

分别基于P和Q块的亮度量化参数QPP和QPQ,导出涉及滤波器开/关决策、强滤波器选择和弱滤波器选择以及弱滤波处理的阈值β和tC。用于推导β和tC的Q的计算如下。

Q=((QPP+QPQ+1)>>1)

如表1所示,基于Q导出变量β。如果Bs大于1,则将Clip3(0,55,Q+2)作为输入,如表1所示指定变量tC。否则(BS等于或小于1),将Q作为输入,如表1所示指定变量tC

表1:从输入Q导出阈值变量β和tC

Q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
β 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8
t<sub>C</sub> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Q 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
β 9 10 11 12 13 14 15 16 17 18 20 22 24 26 28 30 32 34 36
t<sub>C</sub> 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4
Q 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
β 38 40 42 44 46 48 50 52 54 56 58 60 62 64 64 64 64 64
t<sub>C</sub> 5 5 6 6 7 8 9 9 10 10 11 11 12 12 13 13 14 14

2.4每4行滤波开/关决策

图5示出了涉及滤波器开/关决策的像素的示例。注意,在以下描述中,pNM表示相对于垂直边缘的第M行中的左侧第N个样点、或相对于水平边缘的第M列中的上侧第N个样点,qNM表示相对于垂直边缘的第M行中的右侧第N个样点、或相对于水平边缘的第M列中的下侧第N个样点。pNM和qNM的示例在图5中示出。

注意,在以下描述中,pN表示相对于垂直边缘的行中的左侧第N个样点、或相对于水平边缘的列中的上侧第N个样点,qN表示相对于垂直边缘的行中的右侧第N个样点、或相对于水平边缘的列中的下侧第N个样点。

滤波器的开/关决策以四行为单位进行。图5示出了涉及滤波器开/关决策的像素。前四行的两个红色框中的6个像素用于确定4行的滤波器开/关。后四行的两个红色框中的6个像素用于确定后四行的滤波器开/关。

如果dp0+dq0+dp3+dq3<β,则打开前四行的滤波,并应用强/弱滤波器选择处理。每个变量的导出如下。

dp0=|p20–2*p10+p00|,dp3=|p23–2*p13+p03|,dp4=|p24–2*p14+p04|,dp7=|p27–2*p17+p07|

dq0=|q20–2*q10+q00|,dq3=|q23–2*q13+q03|,dq4=|q24–2*q14+q04|,dq7=|q27–2*q17+q07|

如果不满足条件,则不对前4行进行滤波。此外,如果满足条件,则可以导出dE、dEp1和dEp2以进行弱滤波处理。将变量dE设置为等于1。如果dp0+dp3<(β+(β>>1))>>3,则将变量dEp1设置为等于1。如果dq0+dq3<(β+(β>>1))>>3,则将变量dEq1设置为等于1。对于后四行,以与上述相同的方式进行决策。

2.5对于4行的强/弱滤波器选择

在检查前四行以确定滤波器被启用之后,并且如果满足以下两个条件,则使用强滤波器来对前四行进行滤波。否则,将使用弱滤波器进行滤波。涉及的像素与用于滤波器开/关决策的像素相同,如图5所示。

—2*(dp0+dq0)<(β>>2),|p30–p00|+|q00–q30|<(β>>3)且|p00–q00|<(5*tC+1)>>1

—2*(dp3+dq3)<(β>>2),|p33–p03|+|q03–q33|<(β>>3)且|p03–q03|<(5*tC+1)>>1

类似地,如果满足以下两个条件,则使用强滤波器对后四行进行滤波。否则,将使用弱滤波器进行滤波。

—2*(dp4+dq4)<(β>>2),|p34–p04|+|q04–q34|<(β>>3)且|p04–q04|<(5*tC+1)>>1

—2*(dp7+dq7)<(β>>2),|p37–p07|+|q07–q37|<(β>>3)且|p07–q07|<(5*tC+1)>>1

2.5.1强滤波

对于强滤波,通过以下等式获得滤波后的像素值。注意,分别使用四个像素作为每个P和Q块的输入来修改三个像素。

p0′=(p2+2*p1+2*p0+2*q0+q1+4)>>3

q0′=(p1+2*p0+2*q0+2*q1+q2+4)>>3

p1′=(p2+p1+p0+q0+2)>>2

q1′=(p0+q0+q1+q2+2)>>2

p2′=(2*p3+3*p2+p1+p0+q0+4)>>3

q2′=(p0+q0+q1+3*q2+2*q3+4)>>3

2.5.2弱滤波

如下定义Δ:

–Δ=(9*(q0–p0)–3*(q1–p1)+8)>>4

–当abs(Δ)小于tC*10时,

Δ=Clip3(-tC,tC,Δ)

p0′=Clip1Y(p0+Δ)

q0′=Clip1Y(q0-Δ)

–如果dEp1等于1,则

Δp=Clip3(-(tC>>1),tC>>1,(((p2+p0+1)>>1)–p1+Δ)>>1)

p1′=Clip1Y(p1+Δp)

–如果dEq1等于1,则

Δq=Clip3(-(tC>>1),tC>>1,(((q2+q0+1)>>1)–q1–Δ)>>1)

q1′=Clip1Y(q1+Δq)

值得注意的是,分别使用三个像素作为每个P和Q块的输入来修改最多两个像素。

2.5.3色度滤波

色度滤波的Bs是从亮度继承的。如果Bs>1或如果存在编码的色度系数的情况,则执行色度滤波。那里没有其他滤波决策。仅对色度应用一个滤波器。不使用用于色度的滤波器选择处理。如下得出滤波后的样点值p0'和q0':

Δ=Clip3(-tC,tC,((((q0–p0)<<2)+p1–q1+4)>>3))

p0′=Clip1C(p0+Δ)

q0′=Clip1C(q0-Δ)

3.VTM-4.0中的去方块方案的示例

在当前的VTM,即VTM-4.0中,使用了JVET-M0471中描述的去方块方案。首先滤波图片中的垂直边缘。然后,使用通过垂直边缘滤波处理修改的样点作为输入来滤波图片中的水平边缘。每个CTU的CTB中的垂直边缘和水平边缘均以编码单元为基础进行处理。从编码块左侧的边缘开始按其几何顺序穿过边缘、朝向编码块的右侧对编码单元中的编码块的垂直边缘进行滤波。从编码块顶部的边缘开始按其几何顺序穿过边缘、朝编码块的底部对编码单元中的编码块的水平边缘进行滤波。

3.1边界决策

滤波被应用于8x8块边界。另外,它必须是变换块边界或编码子块边界(例如,由于使用仿射运动预测、ATMVP)。对于那些没有这种边界的,将禁用滤波器。

3.2边界强度计算

对于变换块边界/编码子块边界,如果其位于8x8网格中,则可以对其进行滤波并且对该边缘的bS[xDi][yDj]设置(其中[xDi][yDj]表示坐标)定义如下:

-如果样点p0或q0在以帧内预测模式编码的编码单元的编码块中,则将bS[xDi][yDj]设置为等于2。

-否则,如果块边缘也是变换块边缘并且样点p0或q0在包含一个或多个非零变换系数水平的变换块中,则将bS[xDi][yDj]设置为等于1。

-否则,如果包含样点p0的编码子块的预测模式与包含样点q0的编码子块的预测模式不同,则将bS[xDi][yDj]设置为等于1。

-否则,如果满足以下一个或多个条件,则将bS[xDi][yDj]设置为等于1:

--包含样点p0的编码子块和包含样点q0的编码子块均在IBC预测模式下进行编码,并且在两个编码子块的预测中使用的运动矢量的水平或垂直分量之间的绝对差、大于或等于4(以四分之一亮度样点为单位)。

--对于包含样点p0的编码子块的预测,与包含样点q0的编码子块的预测相比,使用了不同的参考图片或不同数量的运动矢量。

---注1用于两个编码子块的参考图片是相同还是不同的确定仅基于参考了哪些图片,而不考虑是否通过使用对参考图片列表0的索引或对参考图片列表1的索引来形成预测,也不考虑参考图片列表内的索引位置是否不同。

---注2用于预测具有左上角样点覆盖(xSb,ySb)的编码子块的运动矢量的数量等于PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]。

--使用一个运动矢量来预测包含样点p0的编码子块,并且使用一个运动矢量来预测包含样点q0的编码子块,并且所使用的运动矢量的水平或垂直分量之间的绝对差大于或等于4(以四分之一亮度样点为单位)。

--使用两个运动矢量和两个不同的参考图片来预测包含样点p0的编码子块,使用两个相同的参考图片的两个运动矢量来预测包含样点q0的编码子块,并且在针对相同参考图片的两个编码子块的预测中使用的两个运动矢量的水平或垂直分量之间的绝对差大于或等于4(以四分之一亮度样点为单位)。

--用于相同参考图片的两个运动矢量被用来预测包含样点p0的编码子块,用于相同参考图片的两个运动矢量被用来预测包含样点q0的编码子块,且以下两个条件都为真:

---用于预测两个编码子块的列表0运动矢量的水平或垂直分量之间的绝对差大于或等于4(以四分之一亮度样点为单位),或者用于预测两个编码子块的列表1运动矢量的水平或垂直分量之间的绝对差大于或等于4(以四分之一亮度样点为单位)。

---在包含样点p0的编码子块的预测中使用的列表0运动矢量的水平或垂直分量与在包含样点q0的编码子块的预测中使用的列表1运动矢量之间的绝对差大于或等于4(以四分之一亮度样点为单位),或者在包含样点p0的编码子块的预测中使用的列表1运动矢量的水平或垂直分量与在包含样点q0的编码子块的预测中使用的列表0运动矢量之间的绝对差大于或等于4(以四分之一亮度样点为单位)。

-否则,将变量bS[xDi][yDj]设置为等于0。

表2和表3总结了BS计算规则。

表2边界强度(禁用SPS IBC时)

表3边界强度(禁用SPS IBC时)

3.3亮度分量的去方块决策

在该小节中描述了去方块决策处理。更宽更强的亮度滤波器是仅当条件1(Condition 1)、条件2(Condition 2)和条件3(Condition 3)都为真时才使用的滤波器。

条件1是“大块(large block)条件”。此条件检测P侧和Q侧的样点是否属于大块,其分别由变量bSidePisLargeBlk和bSideQisLargeBlk表示。bSidePisLargeBlk和bSideQisLargeBlk定义如下。

bSidePisLargeBlk=((边缘类型是垂直的,并且p0属于宽度>=32的CU)||(边缘类型是水平的,并且p0属于高度>=32的CU))?真:假

bSideQisLargeBlk=((边缘类型是垂直的,并且q0属于宽度>=32的CU)||(边缘类型是水平的,并且q0属于高度>=32的CU))?真:假

基于bSidePisLargeBlk和bSideQisLargeBlk,条件1被定义如下。

Condition1=(bSidePisLargeBlk||bSidePisLargeBlk)?TRUE:FALSE接下来,如果条件1(Condition1)为真,则将进一步检查条件2(Condition2)。首先,导出以下变量:

–如在HEVC中那样首先导出dp0,dp3,dq0,dq3;

–如果(p侧大于或等于32),则

dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1

dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1

–如果(q侧大于或等于32),则

dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1

dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1

Condition2=(d<β)?TRUE:FALSE其中d=dp0+dq0+dp3+dq3如在2.4节所示。

如果条件1和条件2有效,则进一步检查是否有任何块使用子块:

Sq=3最后,如果条件1和条件2均有效,则所提出的去方块方法将检查条件3(大块强滤波器条件),其定义如下。

在条件3(StrongFilterCondition)中,导出以下变量:

如在HEVC中那样导出dpq。

如在HEVC中那样导出sp3=Abs(p3-p0)

如果(p侧大于或等于32)

如果(Sp==5)

sp3=(sp3+Abs(p5-p3)+1)>>1

否则

sp3=(sp3+Abs(p7-p3)+1)>>1

如在HEVC中那样导出sq3=Abs(q0-q3)

如果(q侧大于或等于32)

如果(Sq==5)

sq3=(sq3+Abs(q5-q3)+1)>>1

否则

sq3=(sq3+Abs(q7-q3)+1)>>1

如在HEVC中那样,StrongFilterCondition=(dpq小于(β>>2),sp3+sq3小于(3*β>>5),并且Abs(p0-q0)小于(5*tC+1)>>1)?TRUE:FALSE3.4用于亮度的更强的去方块滤波器(为更大块设计的)

当边界任一侧的样点属于大块时,使用双线性滤波器。属于大块的样点定义为:对于垂直边缘,当宽度>=32,并且对于水平边缘,高度>=32。双线性滤波器在下面列出。

然后,将对于i=0到Sp-1的块边界样点pi、和对于j=0到Sq-1的块边界样点qi(pi和qi是上述HEVC去方块中描述的、用于滤波垂直边缘的行中的第i个样点,或者用于滤波水平边缘的列中的第i个样点)替换为线性插值,如下所示:

pi′=(fi*Middles,t+(64-fi)*Ps+32)>>6),裁剪为pi±tcPDi

qj′=(gj*Middles,t+(64-gj)*Qs+32)>>6),裁剪为qj±tcPDj

其中tcPDi和tcPDj是第3.6节中描述的位置相关的裁剪,而gj、fi、Middles,t、Ps和Qs如下所示:

表4

3.5色度的去方块控制

在块边界的两侧都使用色度强滤波器。此处,当色度边缘的两侧都大于或等于8(色度位置)并满足以下三个条件的决策时,选择色度滤波器:第一个条件用于决策边界强度以及大块。当在色度样点域中正交于块边缘的块宽度或高度等于或大于8时,可以应用所提出的滤波器。第二个和第三个基本上与HEVC亮度去方块决策相同,分别是开/关决策和强滤波器决策。

在第一决策中,如表2所示修改色度滤波的边界强度(bS)。依次检查表2中的条件。如果满足条件,则跳过优先级较低的其余条件。

当bS等于2、或当检测到大块边界时bS等于1时,执行色度去方块。

第二和第三条件基本上与如下的HEVC亮度强滤波器决策相同。在第二条件下:

然后如在HEVC亮度去方块中那样导出d。当d小于β时,第二条件为真。

在第三条件下,StrongFilterCondition导出如下:

如在HEVC中那样,导出dpq。

如在HEVC中那样,导出sp3=Abs(p3-p0)

如在HEVC中那样,导出sq3=Abs(q0-q3)

如在HEVC设计中那样,StrongFilterCondition=(dpq小于(β>>2),sp3+sq3小于(β>>3),并且Abs(p0-q0)小于(5*tC+1)>>1)。

3.6用于色度的强去方块滤波器

定义了以下用于色度的强去方块滤波器:

p2′=(3*p3+2*p2+p1+p0+q0+4)>>3

p1′=(2*p3+p2+2*p1+p0+q0+q1+4)>>3

p0′=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3

所提出的色度滤波器对4x4色度样点网格执行去方块。

3.7位置相关的裁剪

位置相关的裁剪tcPD被应用于涉及强滤波器和长滤波器的亮度滤波处理的输出样点,强滤波器和长滤波器在边界处修改7、5和3个样点。假设量化误差分布,提出增加期望具有更高量化噪声的样点的裁剪值,从而期望重构样点值与真实样点值的偏差更大。

对于用不对称滤波器进行滤波的每个P或Q边界,取决于3.2节中的决策处理的结果,从提供给解码器的两个表(即,下表中列出的Tc7和Tc3)中选择位置相关的阈值表作为边信息:

Tc7={6,5,4,3,2,1,1};

Tc3={6,4,2};

tcPD=(Sp==3)?Tc3:Tc7;

tcQD=(Sq==3)?Tc3:Tc7;

对于用短对称滤波器进行滤波的P或Q边界,应用较低幅度的位置相关的阈值:

Tc3={3,2,1};

在定义阈值之后,根据tcP和tcQ裁剪值对滤波后的p'i和q'i样点值进行裁剪:

p″i=Clip3(p′i+tcPi,p′i–tcPi,p′i);

q″j=Clip3(q′j+tcQj,q′j–tcQj,q′j);

其中p'i和q'i是滤波后的样点值,p”i和q”j是裁剪后的输出样点值,并且tcPi、tcQi是从VVC tc参数以及tcPD和tcQD导出的裁剪阈值。函数Clip3是VVC中指定的裁剪函数。

3.8子块去方块调整

为了同时使用长滤波器和子块去方块实现并行友好去方块,如长滤波器的亮度控制中所示,将长滤波器限制为在使用子块去方块(AFFINE或ATMVP或DMVR)的一侧最多修改5个样点。另外,调整子块去方块,使得限制在8x8网格上接近CU或隐式TU边界的子块边界,以在每一侧最多修改两个样点。

以下内容适用于与CU边界不对齐的子块边界。

其中等于0的边缘(edge)对应于CU边界,等于2或等于orthogonalLength-2的边缘对应于来自CU边界等的子块边界的8个样点。如果使用TU的隐式(implicit)划分,则隐式TU为真。

3.9为亮度/色度限制为4CTU/2CTU行缓冲器

当水平边缘与CTU边界对齐时,水平边缘的滤波限制了亮度的Sp=3,色度的Sp=1和Sq=1。

4.帧内子块分割(ISP)的示例

图6A示出了4×8和8×4块的划分的示例。图6B示出除4×8、8×4和4×4以外的所有块的划分的示例。

在JVET-M0102中,提出了ISP,如表3所示,其取决于块的尺寸维度将亮度帧内预测的块垂直或水平地划分为2或4个子分割。图6A和图6B示出了两种可能性的示例。所有子分割均满足具有至少16个样点的条件。对于块尺寸4×N或N×4(N>8),如果允许,则可能存在1×N或N×1子分割。

表5

对于这些子分割中的每个,通过对由编码器发送的系数进行熵解码,然后对它们进行逆量化和逆变换来生成残差信号。然后,对该子分割进行帧内预测,并最终通过将残差信号与预测信号相加来获得相应的重构样点。因此,每个子分割的重构值将可用于生成下一个的预测,重复该处理,依此类推。所有子分割共享相同的帧内模式。

表6

5.仿射线性加权帧内预测的示例(ALWIP,又名基于矩阵的帧内预测)

在JVET-N0217中提出了仿射线性加权帧内预测(ALWIP,又名基于矩阵的帧内预测(MIP))。

5.1通过矩阵矢量乘法生成简化的预测信号

首先经由平均(averaging)对临近参考样点进行下采样,以产生简化的参考信号bdryred。然后,通过计算矩阵矢量乘积并加上偏移,来计算出简化的预测信号predred

predred=A·bdryred+b

这里,A是具有Wred·Hred列的矩阵,并且如果W=H=4,则A具有4列,并且在所有其他情况下A具有8列。b是尺寸Wred·Hred的矢量。

5.2整个ALWIP处理的说明

在图7A-7D中针对不同的形状示出了平均、矩阵矢量乘法和线性插值的整个处理。注意,其余形状按所示情况之一处理。

图7A示出了针对4×4块的仿射线性加权帧内预测(ALWIP)的示例。给定4×4的块,ALWIP沿边界的每个轴取两个平均。所得的四个输入样点进入矩阵矢量乘法。矩阵取自集合S0。添加偏移后,将得出16个最终预测样点。线性插值对于生成预测信号不是必需的。因此,每个样点总共执行(4·16)/(4·4)=4次乘法。

图7B示出了针对8×8块的ALWIP的示例。给定8×8的块,ALWIP沿边界的每个轴取四个平均。所得的八个输入样点进入矩阵矢量乘法。矩阵取自集合S1。这在预测块的奇数位置上产生16个样点。因此,每个样点总共执行(8·16)/(8·8)=2次乘法。添加偏移后,通过使用缩小的顶部边界对这些样点进行垂直插值。通过使用原始的左边界进行水平插值。

图7C示出了针对8×4块的ALWIP的示例。给定8×4的块,ALWIP沿边界的水平轴取四个平均以及在左边界取四个原始边界值。所得的八个输入样点进入矩阵矢量乘法。矩阵取自集合S1。这在预测块的奇数水平和每个垂直位置上产生16个样点。因此,每个样点总共执行(8·16)/(8·4)=4个乘法。添加偏移后,通过使用原始的左边界对这些样点进行水平插值。相应地处理转置(transposed)后的情况。

图7D示出了针对16×16块的ALWIP的示例。给定16×16的块,ALWIP沿边界的每个轴取四个平均。所得的八个输入样点进入矩阵矢量乘法。矩阵取自集合S2。这在预测块的奇数位置上产生64个样点。因此,每个样点总共执行(8·64)/(16·16)=2次乘法。添加偏移后,通过使用顶部边界的八个平均对这些样点进行垂直插值。通过使用原始的左边界进行水平插值。在这种情况下,插值处理不会添加任何乘法。因此,总的来说,每个样点需要两次乘法才能计算ALWIP预测。

对于较大的形状,该处理本质上是相同的,并且很容易检查每个样点的乘法次数是否少于四个。

对于W>8的W×8块,仅需要水平插值,因为在奇数水平和每个垂直位置都给出了样点。

最后,对于W>8的W×4块,令Ak为矩阵,它通过舍弃与沿着下采样块水平轴的奇数项相对应的每一行而产生。因此,输出尺寸为32,再次,仅需执行水平插值。相应地处理转置(transposed)后的情况。

6.VVC中的多个变换集(MTS)的示例

6.1显式多重变换集(MTS)

在VTM4中,启用了最大为64×64的大块尺寸的变换,这主要用于分辨率更高的视频,例如1080p和4K序列。对于尺寸(宽度或高度,或者宽度和高度两者)等于64的变换块,将高频变换系数归零,以便仅保留低频系数。例如,对于M×N的变换块,其中M为块宽度,N为块高度,当M等于64时,仅保留左32列的变换系数。类似地,当N等于64时,仅保留前32行的变换系数。将变换跳过模式用于大块时,将使用整个块而不将任何值归零。

除了已在HEVC中采用的DCT-II之外,还使用多重变换选择(Multiple TransformSelection,MTS)方案对帧间和帧内编码块进行残差编码。它使用了DCT8/DST7的多个选定变换。新引入的变换矩阵是DST-VII和DCT-VIII。表7显示了所选DST/DCT的基本函数。

为了保持变换矩阵的正交性,与HEVC中的变换矩阵相比,对变换矩阵进行更精确的量化。为了将变换后的系数的中间值保持在16位范围内,在水平和垂直变换之后,所有系数都应具有10位。

为了控制MTS方案,在SPS级别分别为帧内和帧间指定了单独的启用标志。在SPS上启用MTS时,会用信令通知CU级别标志,以指示是否应用MTS。这里,MTS仅适用于亮度。当满足以下条件时,将用信令通知MTS CU级别标志。

-宽度和高度均小于或等于32

-CBF标志等于1

表7

如果MTS CU标志等于零,则在两个方向上都应用DCT2。但是,如果MTS CU标志等于1,则另外会用信令通知另外两个标志,以分别指示水平方向和垂直方向的变换类型。变换和信令映射表如表8所示。当涉及变换矩阵精度时,使用8比特主变换核心。因此,HEVC中使用的所有变换核心都保持相同,包括4点DCT-2和DST-7、8点、16点和32点DCT-2。此外,其他变换核心(包括64点DCT-2、4点DCT-8、8点、16点、32点DST-7和DCT-8)都使用8比特主变换核心。

表8:针对水平和垂直方向的tu_mts_idx的解码值和对应的变换矩阵的映射

为了降低大尺寸DST-7和DCT-8的复杂性,将尺寸(宽度或高度,或者宽度和高度两者)等于32的DST-7和DCT-8的高频变换系数归零。仅保留16x16低频区域内的系数。除了应用不同变换的情况外,VVC还支持称为变换跳过(TS)的模式,其类似于HEVC中的TS概念。TS被视为MTS的特例。

6.2隐式多重变换集(MTS)

注意,启用了ISP、SBT和MTS,但具有隐式信令的都被视为隐式MTS。

在该专利文档中,implicitMtsEnabled用于定义是否启用隐式MTS。

8.7.4缩放变换系数的变换处理

8.7.4.1概述

变量implicitMtsEnabled导出如下:

–如果sps_mts_enabled_flag等于1,并且满足以下条件之一,则将implicitMtsEnabled设置为等于1:

–IntraSubPartitionsSplitType不等于ISP_NO_SPLIT;

–cu_sbt_flag等于1且Max(nTbW,nTbH)小于或等于32;

–sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag都等于0,并且CuPredMode[xTbY][yTbY]等于MODE_INTRA;

–否则,将implicitMtsEnabled设置为等于0。

指定水平变换内核的变量trTypeHor和指定垂直变换内核的变量trTypeVer如下导出:

–如果cIdx大于0,则将trTypeHor和trTypeVer设置为等于0。

–否则,如果implicitMtsEnabled等于1,则以下适用:

–如果IntraSubPartitionsSplitType不等于ISP_NO_SPLIT,则取决于intraPredMode在表8-15中指定trTypeHor和trTypeVer。

–否则,如果cu_sbt_flag等于1,则取决于cu_sbt_horizontal_flag和cu_sbt_pos_flag在表8-14中指定trTypeHor和trTypeVer。

–否则(sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag等于0),trTypeHor和trTypeVer的导出如下:

trTypeHor=(nTbW>=4&&nTbW<=16&&nTbW<=nTbH)?1:0 (8-1030)

trTypeVer=(nTbH>=4&&nTbH<=16&&nTbH<=nTbW)?1:0 (8-1031)

–否则,取决于tu_mts_idx[xTbY][yTbY]在表8-13中指定trTypeHor和trTypeVer。

表8-13–取决于tu_mts_idx[x][y]的trTypeHor和trTypeVer的规范

tu_mts_idx[x0][y0] 0 1 2 3 4
trTypeHor 0 1 2 1 2
trTypeVer 0 1 1 2 2

表8-14–取决于cu_sbt_horizontal_flag和cu_sbt_pos_flag的trTypeHor和trTypeVer的规范

cu_sbt_horizontal_flag cu_sbt_pos_flag trTypeHor trTypeVer
0 0 2 1
0 1 1 1
1 0 1 2
1 1 1 1

7.JVET-N0193中提出的简化的二次变换(RST)的示例

7.1JEM中的不可分二次变换(NSST)

图8示出了JEM中的二次变换的示例。在JEM中,在前向主变换和量化之间(在编码器处)、以及在反量化和反向主变换之间(在解码器侧)应用二次变换。如图8所示,根据块尺寸执行4x4(或8x8)二次变换。例如,对于每8x8块,将4x4二次变换应用于较小的块(即,min(宽度,高度)<8),将8x8二次变换应用于较大的块(即,min(宽度,高度)>4)。

下面以输入为例描述不可分的变换的应用。要应用不可分的变换,首先将以下4x4输入块X表示为矢量

不可分的变换的计算为其中指示变换系数矢量,T为16x16变换矩阵。随后使用该块的扫描顺序(水平、垂直或对角线)将16x1系数矢量重新组织为4x4块。索引较小的系数将以较小的扫描索引放置在4x4系数块中。总共有35个变换集,每个变换集使用3个不可分的变换矩阵(内核)。预先定义从帧内预测模式到变换集的映射。对于每个变换集,所选择的不可分的二次变换(NSST)候选进一步由显式地用信令通知的二次变换索引指定。在变换系数之后,每个帧内CU在比特流中用信令通知一次索引。

7.2JVET-N0193中的简化的二次变换(RST)

图9示出了基于所公开技术的实施例的简化的二次变换(RST)的示例。JVET-K0099中引入了RST(低频不可分的变换(LFNST)),且JVET-L0133中引入了4个变换集(而不是35个变换集)映射。在此JVET-N0193中,分别对8x8和4x4块采用16x48和16x16矩阵。为方便起见,将16x48变换表示为RST8x8,将16x16变换表示为RST4x4。

7.3RST的应用

RST的选择定义如下:

-对于4*N或N*4块(N<=8),将RST4x4应用于左上的4*4CG(例如4x4、4x8、8x4)

-对于4*N或N*4块(N>8),将RST4x4两次应用于两个相邻的左上的4*4CG(例如4x16、16x4等)

-对于所有其他情况,对左上的三个4*4CG应用二次变换,以生成左上的4x4CG和系数均为零的其他两个CG。

8.子块变换的示例

对于cu_cbf等于1的帧间预测的CU,可以用信令通知cu_sbt_flag以指示是对整个残差块还是残差块的子部分进行了解码。在前一种情况下,进一步解析帧间MTS信息以确定CU的变换类型。在后一种情况下,残差块的一部分通过推断的自适应变换进行编码,而残差块的另一部分被清零。SBT不适用于组合的帧间帧内模式。

图10示出了子块变换模式SBT-V和SBT-H的示例。在子块变换中,将位置相关的变换应用于SBT-V和SBT-H(始终使用DCT-2的色度TB)中的亮度变换块。SBT-H和SBT-V的两个位置与不同的核心变换相关联。更具体地,在图10中指定每个SBT位置的水平和垂直变换。例如,SBT-V位置0的水平和垂直变换分别是DCT-8和DST-7。当残差TU的一侧大于32时,将相应的变换设置为DCT-2。因此,子块变换共同指定残差块的TU片、cbf以及水平和垂直变换,对于块的主要残差在块的一侧的情况,可以将其视为语法快捷方式。

9.JVET-N0054中联合色度残差编码的示例

由于Cb和Cr残差似乎彼此成反比,因此建议利用这一现象并引入用于对色度残差进行联合编码的模式。在这种模式下,为变换单元的两个色度块指示了单个残差。将指示的残差添加到第一通道(通常表示Cb)中的预测块,并从第二通道(通常表示Cr)中的预测块中减去。

如果针对Cb和Cr两者的编码块标志(cbf)为真,则在比特流中用标志指示联合残差模式。如果激活了该模式,则将解码单个残差块。联合残差块的比特流语法和解码处理遵循VTM-4中的Cb残差。Cr块的残差通过对解码后的残差求反而生成。由于单个残差用于表示两个块的残差,因此通常可能希望此模式使用的QP低于色度残差的单独编码所使用的QP。在CE测试中,色度QP偏移-1用于联合模式,而+1则用于单独的色度编码(如JVET通用测试条件中所指定的)。

10.JVET-N0236的示例

该贡献提出了利用光流来细化基于子块的仿射运动补偿预测的方法。在执行基于子块的仿射运动补偿之后,通过添加由光流方程推导的差来细化预测样点,这被称为利用光流的预测细化(prediction refinement with optical flow,PROF)。所提出的方法可以在不增加存储器访问带宽的情况下以像素级粒度实现帧间预测。

为了实现更精细的运动补偿粒度,该贡献提出了利用光流来细化基于子块的仿射运动补偿预测的方法。在执行基于子块的仿射运动补偿之后,通过添加由光流方程推导的差来细化亮度预测样点。将所提出的PROF(利用光流的预测细化)描述为以下四个步骤。

步骤1)执行基于子块的仿射运动补偿以生成子块预测I(i,j)。

步骤2)使用3抽头滤波器[-1,0,1]在每个样点位置计算子块预测的空域梯度gx(i,j)和gy(i,j)。

gx(i,j)=I(i+1,j)-I(i-1,j)

gy(i,j)=I(i,j+1)-I(i,j-1)

图11示出了子块MV VSB和像素Δv(i,j)的示例。子块预测在每侧扩展一个像素以进行梯度计算。为了减少存储器带宽和复杂度,扩展边框上的像素从参考图片中最近的整数像素位置复制。因此,避免了对填充区域的附加插值。

步骤3)通过光流方程计算亮度预测细化(表示为ΔI)。

ΔI(i,j)=gx(i,j)*Δvx(i,j)+gy(i,j)*Δvy(i,j)

其中,增量MV(表示为Δv(i,j))是对采样位置(i,j)计算出的像素MV(由v(i,j)表示)与像素(i,j)所属的子块的子块MV之间的差,如图11所示。

由于仿射模型参数和相对于子块中心的像素位置在子块之间没有变化,因此可以对第一个子块计算Δv(i,j),并重用于相同CU中的其他子块。令x和y为从像素位置到子块中心的水平和垂直偏移,则可以通过以下公式推导Δv(x,y):

对于4参数仿射模型,

对于6参数仿射模型

其中,(v0x,v0y)、(v1x,v1y)、(v2x,v2y)是左上、右上和左下控制点运动矢量,w和h是CU的宽度和高度。

步骤4)最后,将亮度预测细化添加到子块预测I(i,j)。按照以下公式生成最终预测I’:

I′(i,j)=I(i,j)+ΔI(i,j)

11.现有实施方式的缺点

在一些现有的实施方式中(例如,当前的VVC/VTM去方块设计),遇到以下问题:

(1)BDOF细化每个预测样点。因此,在去方块处理中可能不需要再次滤波它们。

(2)在去方块滤波处理中,CIIP编码块被视为帧间预测模式,而仍然需要执行帧内预测处理。

12.改进去方块滤波(DB)的示例方法

当前公开的技术的实施例克服了现有实施方式的缺点,从而提供了具有更高编码效率的视频编解码。在针对各种实施方式描述的以下示例中阐明了基于所公开的技术的可以增强现有和未来的视频编解码标准的去方块滤波(DB)的改进。下面提供的所公开的技术的示例解释了一般概念,并且不意味着被解释为限制性的。在示例中,除非明确指出相反,否则可以对这些示例中描述的各种特征进行组合。

在所公开技术的一些实施例中,提出了以几种方式修改去方块滤波(DB)处理。但是,应注意,本文档中介绍的方法也可能适用于其他类型的环内滤波方法(例如SAO、ALF)和重构后滤波器(例如,在去方块滤波器之前应用于预测信号或重构信号的Hadamard变换域滤波器、双边滤波器、扩散滤波器)。

注意,色度分量可以代表用于RGB格式的Cb/Cr颜色分量或B/R颜色分量。在以下描述中,我们以“Cb/Cr”为例。

示例1.是否启用DB和/或如何在DB处理中应用滤波可取决于BDOF和/或其他使用光流来细化运动/预测样点/重构样点的编码工具的使用。

(a)在一个示例中,对于位于BDOF编码块内的样点,不需要应用DB。

(b)可替代地,边界强度/滤波器强度可以取决于BDOF的使用。

(i)可替代地,对于位于BDOF编码块内的样点,可以应用较弱的滤波器。

示例2.是否启用DB和/或如何在DB处理中应用滤波可取决于变换矩阵类型(例如,DCT-II、DST-VII、DCT-VIII、变换跳过模式(具有识别矩阵))和不应用变换的编码方法(诸如RDPCM/QR-BDPCM模式)。

(a)在一个示例中,对于位于用特定变换类型编码的块(例如,变换跳过编码的块)处的要被滤波的样点,可以禁用位置相关的裁剪。

(i)可替代地,此外,所有要滤波的样点都使用相同的裁剪参数。

(b)在一个示例中,位置相关的裁剪参数可以取决于应用于该块的变换矩阵的基础。

(c)在一个示例中,可能无法对变换跳过模式或不应用变换的编码方法(诸如,RDPCM模式)的块执行DB。

示例3.可以基于以下条件禁用裁剪操作和/或位置相关的裁剪:

(a)视频内容(例如,屏幕内容或自然内容)

(b)在SPS/VPS/PPS/图片标头/条带标头/片组标头/最大编码单元(LCU)/编码单元(CU)/LCU行/LCU组中用信令通知的消息。

示例4.是否启用DB和/或如何在DB处理中应用滤波可取决于组合的帧内帧间预测(CIIP)的使用。

(a)在一个示例中,可以将CIIP编码块与帧内编码块类似地对待。

(b)在一个示例中,当跨越边缘的两个块中的至少一个以CIIP模式编码时,将边界强度设置为2。

(c)可替代地,当跨越边缘的两个块中的仅一个块以CIIP模式编码,而另一个被帧间编码时,将边界强度设置为1。

(d)可替代地,当跨越边缘的两个块中的仅一个以CIIP模式编码,而另一个被帧间或IBC编码时,将边界强度设置为1。

示例5.IBC编码的块的边界强度(BS)可以独立于运动矢量差。

(a)在一个示例中,当相邻块都被IBC编码时,将边界强度设置为M(例如,M=0/1/2),而与MV差无关、并且与是否存在非零系数无关。

(b)可替代地,BS取决于水平和/或垂直MV差是否大于M0/M1像素(M>1)。

(i)在一个示例中,将M0和M1都设置为4。

(ii)在一个示例中,针对水平分量的MV差,将M0设置为最小CU宽度,并且针对水平分量的MV差,将M1设置为最小CU高度。

(iii)在一个示例中,针对水平分量的MV差,将M0设置为允许的最小IBC编码CU宽度,并且针对水平分量的MV差,将M1设置为允许的最小IBC编码CU高度。

(c)可替代地,DB可以不应用于两个IBC编码块之间的边界。

(d)可替代地,DB可以不应用于IBC编码块的样点。

示例6.P侧或Q侧的边界强度(BS)值可以不同。

(a)在一个示例中,在P侧或Q侧的块可以具有其自身的边界强度。在P侧和Q侧执行的去方块可以分别基于在P侧和Q侧的BS值。

(i)在一个示例中,如果在P侧的块是帧内块且在Q侧的块是RDPCM编码的块,则可以在P侧检查去方块条件,并且可以仅在P侧执行去方块。

(ii)在一个示例中,P侧和Q侧的BS可以取决于两侧的QP。

(iii)在一个示例中,P侧和Q侧的BS可以取决于在两侧中使用的LMCS系数。

示例7.在去方块中,RDPCM编码的块可以被视为去方块中的帧内块。

(a)在一个示例中,如果RDPCM编码的块位于P侧和/或Q侧,则可以将边界强度(BS)值设置为1或2。

示例8.可以对三角模式编码块中的对角边缘进行去方块。

(a)在一个示例中,当前VVC中的去方块滤波器和/或去方块控制逻辑也可以应用于三角模式编码块中的对角边缘。

示例9.

(a)在一个示例中,如果调色板编码块在Q侧并且未以调色板模式编码的块在P侧,则可以在P侧上应用去方块。

(b)在一个示例中,如果调色板编码块在P侧并且未以调色板模式编码的块在Q侧,则可以在Q侧上应用去方块。

(c)在一个示例中,如果P侧和Q侧均是调色板编码块,则可以不在两侧应用去方块。

示例10.用DMVR或其他解码器侧运动细化编码工具编码的一个块内的子区域可以被视为子块边界并且可以被滤波。

(a)在一个示例中,该子区域被定义为对其应用运动矢量细化的子单元。

(i)在一个示例中,子区域被定义为DMVR编码块内的MxN子块,其中M和N可以被设置为64或16。

示例11.是否启用DB和/或如何在DB处理中应用滤波可取决于是否应用二次变换(又名为NSST或RST或LFNST)。

(a)在一个示例中,其中应用了RST的子区域的边界可以被视为变换块边界或编码子块边界。

(i)可替代地,也可以对位于应用了RST的子区域的样点进行滤波。

(ii)可替代地,对于应用了RST的子区域可以禁用位置相关的裁剪。

示例12.是否对仿射模式块内的子块边界(例如,内部子块边界)执行去方块可以取决于是否将交织预测或/和PROF或/和相变(phase-variant)仿射子块运动补偿应用于该块。

(a)在一个示例中,当将交织预测或/和PROF或/和相变仿射子块运动补偿应用于块时,可以禁用去方块。

(b)在一个示例中,当交织预测或/和PROF或/和相变仿射子块运动补偿没有应用于块时,可以启用去方块。

图12示出了基于所公开技术的一些实施例的用于视频处理的示例方法1200的流程图。用于视频处理的方法1200包括,在步骤1210,执行确定适用于视频块和视频块的比特流表示之间的转换的编码方案,在步骤1220,基于编码方案的确定,确定包括去方块滤波(DB)处理、采样自适应偏移(SAO)和自适应环路滤波(ALF)中的至少一个的环内滤波处理的模式,以及在步骤1230,使用环内滤波的模式来执行转换。与用于视频处理的方法1200有关的其他特征可以在上面讨论的示例1、示例2、示例3、示例11中找到。

图13示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1300的流程图。用于视频处理的方法1300包括,在步骤1310,确定组合的帧内帧间预测(CIIP)编码适用于当前块,以及在步骤1320,执行当前块和当前块的比特流表示之间的转换,以及基于CIIP的使用,通过以下方式执行去方块滤波(DB)处理:识别块与垂直边缘和水平边缘之间的边界;计算边界强度;决定打开还是关闭滤波器;以及选择滤波器的强度。与用于视频处理的方法1300有关的其他特征可以在上面讨论的示例4中找到。

图14示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1400的流程图。用于视频处理的方法1400包括,在步骤1410,确定相邻块是否都以帧内块复制(IBC)编码,并且在步骤1420,基于该确定,通过识别块和垂直及水平边缘之间的边界来执行去方块滤波(DB)处理、计算边界强度、决定是否打开或关闭滤波器,以及选择滤波器的强度。边界强度与运动矢量差无关。与用于视频处理的方法1400有关的其他特征可以在上面讨论的示例5中找到。

图15示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1500的流程图。用于视频处理的方法1500包括,在步骤1510,确定在P侧和Q侧的边界强度,并且在步骤1520,基于该确定,通过识别块与垂直和水平边缘之间的边界来在P侧和Q侧执行去方块滤波(DB)处理、计算边界强度、确定是否打开或关闭滤波器,以及选择滤波器的强度。与用于视频处理的方法1500有关的其他特征可以在上面讨论的示例6中找到。

图16示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1600的流程图。用于视频处理的方法1600包括,在步骤1610,确定残差差分脉冲编码调制(RDPCM)编码块,并且在步骤1620,基于该确定,通过识别块与垂直和水平边缘之间的边界来在P侧和Q侧执行去方块滤波(DB)处理、计算边界强度、确定是否打开或关闭滤波器,以及选择滤波器的强度。RDPCM编码的块在去方块滤波(DB)处理中被视为帧内块。与用于视频处理的方法1600有关的其他特征可以在上面讨论的示例7中找到。

图17示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1700的流程图。用于视频处理的方法1700包括,在步骤1710,确定三角模式编码块中的对角边缘,并且在步骤1720,基于该确定,通过识别块与垂直和水平边缘之间的边界来执行去方块滤波(DB)处理、计算边界强度、确定是否打开或关闭滤波器,以及选择滤波器的强度。与用于视频处理的方法1700有关的其他特征可以在上面讨论的示例8中找到。

图18示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1800的流程图。用于视频处理的方法1800包括,在步骤1810,确定调色板编码块是在P侧还是在Q侧,并且在步骤1820,基于该确定,通过识别块与垂直和水平边缘之间的边界来执行对角边界上的去方块滤波(DB)处理、计算边界强度、确定是否打开或关闭滤波器,以及选择滤波器的强度。在调色板编码块位于P侧或Q侧的情况下,在一侧应用去方块滤波(DB)处理。与用于视频处理的方法1800有关的其他特征可以在上面讨论的示例9中找到。

图19示出了基于所公开技术的一些实施例的用于视频处理的另一示例方法1900的流程图。用于视频处理的方法1900包括,在步骤1910,确定用解码器侧运动矢量细化(DMVR)或其他解码器侧运动细化编码工具编码的一个块内的子区域,并且在步骤1920,基于该确定,通过识别块与垂直和水平边缘之间的边界来执行子区域上的去方块滤波(DB)处理、计算边界强度、确定是否打开或关闭滤波器,以及选择滤波器的强度。与用于视频处理的方法1900有关的其他特征可以在上面讨论的示例10中找到。

图20是视频处理装置2000的框图。装置2000可用于实现这里描述的一个或多个方法。装置2000可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2000可以包括一个或多个处理器2002、一个或多个存储器2004和视频处理电路2006。处理器2002可以被配置为实现在本文中描述的一种或多种方法(包括但不限于方法1200和1900)。可以将(一个或多个)存储器2004用于存储用于实现这里描述的方法和技术的数据和代码。视频处理电路2006可用于在硬件电路中实现本文档中描述的一些技术。

在一些实施例中,视频编解码方法可以使用关于图20描述的在硬件平台上实现的装置来实现。

图21是示出其中可实现本文中所公开的各种技术的示例视频处理系统2100的框图。各种实施方式可以包括系统2100的一些或全部组件。系统2100可以包括用于接收视频内容的输入2102。视频内容可以以原始或未压缩的格式(例如8或10位多分量像素值)接收,或者可以以压缩或编码的格式接收。输入2102可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。

系统2100可以包括可以实现本文中描述的各种编码或编码方法的编码组件2104。编码组件2104可以减少从编码组件2104的输入2102到输出的视频的平均比特率,以产生视频的编码表示。因此,编码技术有时称为视频压缩或视频转码技术。如组件2106所表示的,编码组件2104的输出可以被存储或经由所连接的通信来发送。在输入2102处接收的视频的存储或传送的比特流(或编码)表示可以被组件2108使用,以生成被发送到显示接口2110的像素值或可显示视频。从比特流表示中生成用户可见视频的处理有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编码”操作或工具,但是应当理解,在编码器处使用编码工具或操作,并且将由编码器执行反向编码结果的相应解码工具或操作。

外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或Displayport等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其他能够执行数字数据处理和/或视频显示的设备。

图22示出了用于视觉媒体处理的示例方法的流程图。在本文档的第12节中,结合示例4讨论了此流程图的步骤。在步骤2202,该处理识别两个视频块的垂直边缘和/或水平边缘的边界。在步骤2204,该处理基于使用组合的帧内帧间预测(CIIP)模式编码的跨越垂直边缘或水平边缘的两个视频块中的至少一个,计算滤波器的边界强度。在步骤2206,该处理决定打开还是关闭滤波器。在步骤2208,在打开滤波器的情况下,该处理选择滤波器的强度。在步骤2210,该处理基于该选择对视频块执行去方块滤波(DB)处理。

图23示出了用于视觉媒体处理的示例方法的流程图。在本文档的第12节中,结合示例1讨论了此流程图的步骤。在步骤2302,该处理确定适用于视觉媒体数据的视频块和视频块的比特流表示之间的转换的编码方案。基于编码方案的确定,在步骤2304,该处理在视频块的转换期间选择性地使能或禁止将环内滤波器应用于视频块。

图24示出了用于视觉媒体处理的示例方法的流程图。在本文档的第12节中,结合示例2讨论了此流程图的步骤。在步骤2402,该处理确定适用于视觉媒体数据的视频块和视频块的比特流表示之间的转换的变换矩阵的类型。基于对变换矩阵的类型的确定,在步骤2404,该处理在视频块的转换期间选择性地使能或禁止将去方块(DB)滤波处理应用于视频块。

图25示出了用于视觉媒体处理的示例方法的流程图。在本文档的第12节中,结合示例3讨论了该流程图的步骤。在步骤2502,在视觉媒体数据的视频块和所述视频块的比特流表示之间的转换期间,该处理确定将环内滤波步骤应用于所述视频块,其中,所述环内滤波步骤包括应用于在要滤波的视频块中的样点上的裁剪操作。在步骤2504,响应于确定与视频块相关联的一个或多个条件,该处理选择性地启用或禁用裁剪操作。

现在以基于条款的格式呈现本文公开的一些实施例。

X1.一种用于视觉媒体处理的方法,包括:

识别两个视频块的垂直边缘和/或水平边缘处的边界;

基于使用组合的帧内帧间预测(CIIP)模式编码跨越垂直边缘或水平边缘的两个视频块中的至少一个,计算滤波器的边界强度;

决定打开还是关闭滤波器;

在打开滤波器的情况下选择滤波器的强度;以及

基于选择,对视频块执行去方块滤波(DB)处理。

X2.根据条款X1的方法,其中,在计算边界强度时,将CIIP编码块视为帧内编码块。

X3.根据条款X1的方法,其中,在跨越垂直或水平边缘的两个视频块中的至少一个用CIIP编码的情况下,则将边界强度选择为2。

X4.根据条款X1的方法,其中,在跨越垂直或水平边缘的两个块中的仅一个用CIIP编码并且另一个视频块被帧间编码的情况下,将边界强度选择为1。

X5.根据条款X1的方法,其中,在跨越边缘的两个块中的仅一个被CIIP编码并且另一视频块被帧间或帧内块复制(IBC)编码的情况下,将边界强度选择为1。

A1.一种用于视觉媒体处理的方法,包括:

确定适用于视觉媒体数据的视频块和视频块的比特流表示之间的转换的编码方案;以及

基于编码方案的确定,在视频块的转换期间,选择性地使能或禁止将环内滤波器应用于视频块。

A2.根据条款A1的方法,其中,环内滤波器包括以下之一:去方块滤波器(DB)、采样自适应偏移(SAO)滤波器和/或自适应环内滤波器(ALF)。

A3.根据条款A1-A2中任一项或多项的方法,其中,编码方案包括使用光流来细化预测样点和/或运动信息和/或重构样点。

A4.根据条款A3的方法,其中,使用光流来细化预测样点的编码方案包括双向光流(BDOF)。

A5.根据条款A4的方法,其中,编码方案的确定包括:识别预测样点是否位于双向光流(BDOF)内;以及响应于确定预测样点位于双向光流(BDOF)内,禁用环内滤波器的应用。

A6.根据条款A5的方法,其中,基于双向光流(BDOF)的使用来确定环内滤波器的边界强度和/或滤波器强度中的至少一个。

A7.根据条款A4的方法,其中,编码方案的确定包括:识别预测样点是否位于双向光流(BDOF)内,并且其中,响应于确定预测样点位于双向光流(BDOF)内,使能环内滤波器的应用,并且进一步,其中环内滤波器的强度比与未位于BDOF内的预测样点相关联的另一个环内滤波器的强度更弱。

B1.一种用于视觉媒体处理的方法,包括:

确定适用于视觉媒体数据的视频块和视频块的比特流表示之间的转换的变换矩阵的类型;和

基于对变换矩阵的类型的确定,在视频块的转换期间,选择性地使能或禁止将去方块(DB)滤波处理应用于视频块。

B2.根据条款B1的方法,其中,变换矩阵的类型包括DCT-II、DST-VII、DCT-VIII和/或变换跳过模式。

B3.根据条款B1-B2中任一项或多项的方法,其中,去方块滤波处理的应用还包括裁剪操作。

B4.根据条款B3的方法,其中,裁剪操作基于视频块中的样点相对于DB滤波器的位置而位置相关。

B5.根据条款B4的方法,其中,对于位于变换跳过编码的视频块中的样点,禁用裁剪操作。

B6.根据条款B5的方法,其中,在变换跳过编码的块上,或者在确定视频块编码免予基于变换的编码技术时,禁用去方块滤波(DB)处理。

B7.根据条款B6的方法,其中,基于变换的编码技术包括残差差分脉冲编码调制(RDPCM)或量化残差差分脉冲编码调制(QR-BDPCM)。

B8.根据条款B3的方法,其中,如果对一组样点启用了DB滤波处理,则包括在该组中的所有样点将经受裁剪操作的相同参数。

B9.根据条款B4的方法,其中,位置相关的裁剪操作的参数与适用于转换的变换矩阵的基函数有关。

C1.一种用于视觉媒体处理的方法,包括:

在视觉媒体数据的视频块和视频块的比特流表示之间的转换期间,确定将环内滤波步骤应用于视频块,其中,环内滤波步骤包括应用于在要滤波的视频块中的样点上的裁剪操作;以及

响应于确定与视频块相关联的一个或多个条件,选择性地启用或禁用裁剪操作。

C2.根据条款C1的方法,其中,与视频块相关联的一个或多个条件包括:

(a)视频块的内容,或

(b)序列参数集(SPS)/视频参数集(VPS)/图片参数集(PPS)/图片标头/条带标头/片组标头/最大编码单元(LCU)/编码单元(CU)/LCU行/LCU组中包含的字段。

C3.根据条款X1-C2中的任一项或多项的方法,其中,转换包括从视频块生成比特流表示。

C4.根据条款X1-C2中的任一项或多项的方法,其中,转换包括从比特流表示生成视频块的像素值。

C5.一种视频编码器装置,包括:处理器,被配置为实现条款X1-C2中的任一项或多项的方法。

C6.一种视频解码器装置,包括:处理器,被配置为实现条款X1-C2中的任一项或多项的方法。

C7.一种其上存储有代码的计算机可读介质,代码体现了处理器可执行指令,处理器可执行指令用于实现条款X1-C2中任一项或多项的方法。

在本文档中,术语“视频处理”或“视觉媒体处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到相应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可以例如对应于位在比特流内的不同位置中并置或散布的比特。例如,可以根据变换和编码的误差残差值并且还使用标头中的比特和比特流中的其他字段来对块进行编码。在此,块可以是根据所执行的操作的像素分组,诸如编码单元、预测单元或变换单元等。此外,如以上解决方案中所描述的,在转换期间,解码器可以在已知的存在或不存在某些字段的情况下、基于确定来解析比特流。类似地,编码器可以确定是否包括某些语法字段,并通过从编码表示中包括或排除语法字段来相应地生成编码表示。

从前述内容可以理解,本文已经出于说明的目的描述了当前所公开的技术的具体实施例,但是在不脱离本发明的范围的情况下可以做出各种修改。因此,除了所附权利要求之外,当前所公开的技术不受限制。

本专利文档中描述的主题的实施方式和功能性操作可以在各种系统、数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者以他们的一个或多个的组合实施。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个暂时性和非暂时性计算机程序指令模块,用于由数据处理装置运行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的合成、或者它们中的一个或多个的组合。术语“数据处理单元”和“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,装置可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统及其一个或多个的组合的代码。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点或分布在多个站点并通过通信网络互连。

本说明书中描述的处理和逻辑流可以由一个或多个可编程处理器执行,该一个或多个处理器运行一个或多个计算机程序,通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

例如,适用于运行计算机程序的处理器包括通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或可操作地耦合到一个或多个大容量存储设备,以从其接收数据或向其传送数据,或两者兼有。然而,计算机不一定需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。

旨在将说明书与附图一起仅视为示例性的,其中示例性意味着示例。如本文所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”也意图包括复数形式,除非上下文另外明确指出。另外,除非上下文另有明确说明,否则“或”的使用旨在包括“和/或”。

虽然本专利文档包含许多细节,但不应将其解释为对任何发明或要求保护的范围的限制,而应解释为特定于特定发明的特定实施例的特征的描述。本专利文档在分离的实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独地实施,或在任何合适的子组合中实施。此外,虽然特征可以被描述为在某些组合中起作用,甚至最初这样要求保护,但在某些情况下,可以从要求保护的组合中移除组合中的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。

同样,尽管在附图中以特定顺序描述了操作,但这不应理解为要获得期望的结果必须按照所示的特定顺序或次序顺序来执行这些操作,或执行所有示出的操作。此外,本专利文档所述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。

仅描述了一些实施方式和示例,其他实施方式、增强和变体可以基于本专利文档中描述和说明的内容做出。

60页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于处理点云的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类