编解码方法、装置及其设备与流程

文档序号:30436387发布日期:2022-06-17 20:19阅读:248来源:国知局
编解码方法、装置及其设备与流程

1.本技术涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。


背景技术:

2.为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码可以包括帧内编码和帧间编码。进一步的,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
3.常用的滤波技术包括dbf(deblocking filter,去块滤波)技术、sao(sample adaptive offset,样本自适应补偿)技术和alf(adaptive loop filter,自适应环路滤波)技术。dbf技术用于去除分块编码产生的块边界效应。sao技术通过基于样本的像素值和周围块的梯度值进行分类,对于每个类别的像素值加上不同的补偿值,使得重建图像更接近于原始图像。alf技术通过维纳滤波器,对重建图像进行滤波,使得重建图像更接近于原始图像。
4.但是,如何基于dbf、sao和alf等实现滤波,相关技术并没有合理的滤波方式,均存在滤波效果不佳,编码性能比较差等问题。比如说,基于dbf、sao和alf等对当前块进行滤波后,可能会出现过滤波现象,即滤波后的像素值远大于或远小于滤波前的像素值。


技术实现要素:

5.本技术提供一种编解码方法、装置及其设备,能够提高编码性能。
6.本技术提供一种编解码方法,所述方法包括:
7.获取当前亮度块对应的第一亮度重建块;
8.若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
9.若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
10.若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
11.若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
12.若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
13.若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块。
14.本技术提供一种编解码方法,所述方法包括:
15.获取当前色度块对应的第一色度重建块;
16.若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
17.若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
18.若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
19.若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
20.若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
21.本技术提供一种解码装置,所述解码装置包括:
22.存储器,其经配置以存储视频数据;
23.解码器,其经配置以实现:
24.获取当前亮度块对应的第一亮度重建块;
25.若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
26.若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
27.若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
28.若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
29.若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
30.若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
31.或者,
32.获取当前色度块对应的第一色度重建块;
33.若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
34.若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
35.若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
36.若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
37.若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
38.本技术提供一种编码装置,所述编码装置包括:
39.存储器,其经配置以存储视频数据;
40.编码器,其经配置以实现:
41.获取当前亮度块对应的第一亮度重建块;
42.若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
43.若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
44.若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
45.若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
46.若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
47.若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
48.或者,
49.获取当前色度块对应的第一色度重建块;
50.若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
51.若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
52.若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
53.若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
54.若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
55.本技术提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
56.所述处理器用于执行机器可执行指令,以实现如下步骤:
57.获取当前亮度块对应的第一亮度重建块;
58.若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得
到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
59.若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
60.若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
61.若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
62.若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
63.若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
64.或者,
65.获取当前色度块对应的第一色度重建块;
66.若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
67.若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
68.若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
69.若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
70.若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
71.本技术提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
72.所述处理器用于执行机器可执行指令,以实现如下步骤:
73.获取当前亮度块对应的第一亮度重建块;
74.若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
75.若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
76.若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
77.若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
78.若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao
滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
79.若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
80.或者,
81.获取当前色度块对应的第一色度重建块;
82.若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
83.若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
84.若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
85.若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
86.若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
87.由以上技术方案可见,本技术实施例中,若当前亮度块启用dbf模式,则对第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块,若当前亮度块启用垂直dbr模式,则对第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块,若当前亮度块启用dbf模式,则对第三亮度重建块进行水平dbf滤波,得到第四亮度重建块,若当前亮度块启用水平dbr模式,则对第四亮度重建块进行水平dbr滤波,得到第五亮度重建块,若当前亮度块启用esao模式,则对第五亮度重建块进行esao滤波,得到第六亮度重建块(或若当前亮度块启用sao模式,则对第五亮度重建块进行sao滤波,得到第六亮度重建块),若当前亮度块启用alf模式,则对第六亮度重建块进行alf滤波,得到第七亮度重建块。综上可以看出,可以依次对当前亮度块进行垂直dbf滤波、垂直dbr滤波、水平dbf滤波、水平dbr滤波、esao滤波(或sao滤波)、alf滤波等滤波过程,从而提出合理的滤波方式,避免出现滤波效果不佳,编码性能比较差等问题,即可以提高滤波效果,提高编码性能,不会出现过滤波现象,即滤波后的像素值不会远大于或远小于滤波前的像素值。
附图说明
88.图1是本技术一种实施方式中的编解码框架的示意图;
89.图2a和图2b本技术一种实施方式中的块划分的示意图;
90.图3是本技术一种实施方式中的编解码方法的流程图;
91.图4a-图4d是本技术一种实施方式中的垂直边界和水平边界的示意图;
92.图5是本技术一种实施方式中的编解码方法的流程图;
93.图6是本技术一种实施方式中的当前亮度块和当前色度块的处理过程示意图;、
94.图7a和图7b是本技术一种实施方式中的滤波系数的形状示意图。
具体实施方式
95.在本技术实施例中使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但是,这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”,或“当
……
时”,或“响应于确定”。
96.为了使本领域技术人员更好地理解本技术技术方案,下面对技术术语进行简单说明。
97.视频编码框架:参见图1所示,可以使用视频编码框架实现本技术实施例的编码端处理流程,视频解码框架的示意图可以与图1类似,在此不再重复赘述,可以使用视频解码框架实现本技术实施例的解码端处理流程。在视频编码框架和视频解码框架中,可以包括但不限于:预测(如帧内预测和帧间预测等)、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,实现编码端的处理流程,在解码端,通过这些模块之间的配合,实现解码端的处理流程。
98.环路滤波用于减少图像块效应或图像效果不佳等问题,能够改善图像质量,可以包括dbf、sao和alf等三种滤波器。dbf为去方块滤波,用于去除分块编码产生的块边界效应。sao为样本自适应补偿滤波,用于通过基于样本的像素值和周围块的梯度值进行分类,对于每个类别的像素值加上不同的补偿值,使得重建图像更接近于原始图像。alf为自适应环路滤波,即通过维纳滤波器,对重建图像进行增强滤波,使得重建图像更接近于原始图像。
99.示例性的,在视频编解码过程中,预测过程可以包括帧内预测和帧间预测,帧内预测是考虑到相邻块之间存在很强的空域相关性,利用周围已经重建的像素作为参考像素,对当前未编码块进行预测,只需要对残差值进行后续编码处理,而不是对原始值进行编码,从而有效去除空域上的冗余,大大提高压缩效率。帧间预测是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,达到去除视频时域冗余的目的。
100.示例性的,在视频编解码过程中,变换是指将以空间域中像素形式描述的图像转换至变换域的图像,并以变换系数的形式来表示。由于绝大多数图像都含有较多平坦区域和缓慢变化的区域,因此,适当的变换过程,可以使图像能量在空间域的分散分布,转换为在变换域的相对集中分布,从而能够去除信号之间的频域相关性,配合量化过程,可以有效压缩码流。
101.示例性的,熵编码是指按照信息熵的原理进行无损编码的方式,处于视频压缩的最后一个处理模块,将一系列用来表示视频序列的元素符号,转变为一个用来传输或存储的二进制码流,输入的符号可能包括量化后的变换系数,运动矢量信息,预测模式信息,变换量化相关语法等,熵编码模块的输出数据即原始视频压缩后的最终码流。熵编码可以有效地去除这些视频元素符号的统计冗余,是保证视频编码压缩效率的重要工具之一。
102.示例性的,环路滤波用于减少图像的块效应或者图像效果不佳等问题,用来改善图像质量,可以包括但不限于dbf、sao和alf等。例如,在视频图像中,图像块的边界并不连续,压缩重建图像具有明显的块效应,严重影响图像质量,可以采用dbf技术对边界进行去块滤波。针对所有预测单元(prediction unit,pu)和变换单元(transform unit,tu)的边界进行去块滤波,去块滤波包括滤波决策和滤波操作,在滤波决策过程中,获取边界强度(如不滤波、弱滤波或强滤波)和滤波参数。在滤波操作过程中,根据边界强度和滤波参数对像素进行修正,如对边界进行滤波时,可以是强滤波或弱滤波,采用不同长度的抽头进行滤波。
103.sao滤波:用于消除振铃效应。振铃效应是由于高频交流系数的量化失真,解码后会在边缘周围产生波纹的现象,变换块尺寸越大振铃效应越明显。sao的基本原理是对重构曲线中的波峰像素加上负值进行补偿,波谷像素加上正值进行补偿。sao是以ctu(coding tree unit,编码树单元)为基本单位,可以包括两大类补偿形式:边界补偿(edge offset,简称eo)和边带补偿(band offset,简称bo),此外还引入了参数融合技术。
104.alf滤波:可以根据原始信号和失真信号计算得到均方意义下的最优滤波器,即维纳滤波器。alf的滤波器可以包括但不限于:7*7的菱形滤波器或5*5的菱形滤波器、7*7十字形加3*3方形的中心对称滤波器,或7*7十字形加5*5方形的中心对称滤波器。
105.标志位编码(flag coding):在视频编码中,存在很多模式。对于某个块来说,可能采用其中一种模式。为了表示采用何种模式,每个块需要通过编码对应的标志位来进行标记。比如说,针对编码端来说,通过编码端决策,确定该标志位的值,然后对标志位的值进行编码传递到解码端。针对解码端来说,通过解析标志位的值,确定对应模式是否启用。
106.在标志位的编码过程中,可以通过高层语法实现标志位的编码,高层语法可以用于表示是否允许启用某种模式,即通过高层语法允许启用某种模式,或者禁止启用某种模式。
107.示例性的,高层语法可以是序列头的高层语法,或者图像参数集级的高层语法,或者片头级的高层语法,或者图像头级的高层语法等,对此高层语法不做限制。
108.针对序列头的高层语法,存在确定整个视频序列(即多帧视频图像)中是否允许某些模式(工具/方法)开关的标志位。例如,若标志位为取值a(如数值1等),则视频序列可以允许启用该标志位对应的模式;或者,若标志位为取值b(如数值0等),则视频序列可以不允许启用该标志位对应的模式。示例性的,视频序列是位流的最高层语法结构,视频序列由第一个序列头开始,序列结束码或视频编辑码表明了一个视频序列的结束。视频序列的第一个序列头到第一个出现的序列结束码或视频编辑码之间的序列头为重复序列头,每个序列头后面跟着一个或多个编码图像,每幅图像之前应有图像头。
109.针对图像参数集(pps,picture parameter set)的高层语法,存在确定某图片(如视频图像)中是否允许某些模式(工具/方法)开关的标志位。若标志位为取值a,则视频图像允许启用该标志位对应的模式;若标志位为取值b,则视频图像不允许启用该标志位对应的模式。
110.针对图像头(picture header)的高层语法,存在某图像头中是否允许某些模式(工具/方法)开关的标志位。若标志位为取值a,则图像头允许启用该标志位对应的模式;若标志位为取值b,则图像头不允许启用该标志位对应的模式。示例性的,图像头保存的是仅
针对当前图像的共同信息,例如,在图像包含多个slice时,多个slice可以通用图像头中的信息。
111.针对片头(slice header)的高层语法,存在某个slice中是否允许某些模式(工具/方法)开关的标志位。若标志位为取值a,则slice允许启用该标志位对应的模式;若标志位为取值b,则slice不允许启用该标志位对应的模式。示例性的,一帧图像可以包含1个slice或多个slice,针对片头(slice header)的高层语法,是针对每个slice配置的高层语法。
112.高层语法:用于表示是否允许启用某些工具(方法),即通过高层语法允许启用某些工具(方法),或者禁止启用某些工具(方法)。示例性的,参见上述介绍,高层语法可以是序列头的高层语法,或者图像参数集级的高层语法,或者片头级的高层语法,或者图像头级的高层语法,对此高层语法不做限制,只要能够实现上述功能即可。
113.率失真原则(rate-distortion optimized):评价编码效率的有两大指标:码率和psnr(peak signal to noise ratio,峰值信噪比),比特流越小,则压缩率越大,psnr越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,针对率失真代价(rate-distortion cost)来说,率失真代价的公式为:j(mode)=d+λ*r。其中,d表示distortion(失真),通常可以使用sse指标来进行衡量,sse是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,r就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和,如r为编码所有滤波系数所需的比特数。在模式选择时,若使用rdo原则去对编码模式做比较决策,通常可以保证编码性能最佳。
114.块划分技术:一个编码树单元(coding tree unit,简称ctu)使用四叉树递归划分成cu。在叶子节点cu级确定是否使用帧内编码或者帧间编码。cu可以划分成两个或四个预测单元(prediction unit,简称pu),同一个pu内使用相同的预测信息。在预测完成后得到残差信息后,一个cu可四叉划分成多个变换单元(transform units,简称tu)。例如,本技术中的当前图像块即为一个pu。还可以对块划分技术进行变化,比如说,使用一种混合了二叉树/三叉树/四叉树的划分结构取代原先划分模式,取消cu,pu,tu的概念的区分,支持cu的更灵活的划分方式。cu可以是正方形也可以是矩形划分。ctu首先进行四叉树的划分,然后四叉树划分的叶子节点可以进行二叉树和三叉树的划分。参见图2a所示,cu共有五种划分类型,分别为四叉树划分,水平二叉树划分,垂直二叉树划分,水平三叉树划分和垂直三叉树划分,参见图2b所示,ctu内的cu划分可以是上述五种划分类型的任意组合由上可知不同的划分方式,使得各个pu的形状有所不同,如不同尺寸的矩形,正方形。
115.在相关技术中,虽然dbf、sao和alf技术等均能够实现滤波,但是,应该如何基于dbf、sao和alf等实现滤波,相关技术中并没有合理的滤波方式,均存在滤波效果不佳,编码性能比较差等问题。比如说,基于dbf、sao和alf等对当前块进行滤波后,可能会出现过滤波现象,也就是说,滤波后的像素值远大于或远小于滤波前的像素值。
116.针对上述发现,本技术实施例中提出一种编解码方法,通过设计多种滤波器的控制方法,实现灵活控制各个滤波技术的目的,是多模式滤波控制方法。比如说,依次对当前亮度块进行垂直dbf滤波、垂直dbr滤波、水平dbf滤波、水平dbr滤波、esao滤波(或sao滤波)、alf滤波等滤波过程,从而提出合理的滤波方式,提高滤波效果,提高编码性能。
117.以下结合具体实施例,对本技术实施例中的编解码方法进行详细说明。
118.实施例1:本技术实施例中提出一种编解码方法,该编解码方法可以应用于编码端或者解码端,参见图3所示,为该编解码方法的流程示意图,该方法可以包括:
119.步骤301、获取当前亮度块对应的第一亮度重建块,即滤波前的原始亮度重建块。
120.示例性的,当前亮度块也可以称为当前亮度分量,即当前块的亮度分量。针对当前亮度块中的每个像素点,可以称为当前像素点,即当前像素点为当前亮度像素点。
121.步骤302、若当前亮度块启用dbf模式,则对该第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于该第一亮度重建块确定第二亮度重建块,也就是说,若当前亮度块未启用dbf模式,则可以将该第一亮度重建块直接作为第二亮度重建块。
122.在一种可能的实施方式中,第一亮度重建块可以包括多个像素点的第一亮度重建像素值,第二亮度重建块可以包括多个像素点的第二亮度重建像素值,且第一亮度重建块中的像素点与第二亮度重建块中的像素点一一对应。基于此,垂直dbf滤波过程可以包括:
123.步骤s11、针对第一亮度重建块中每个当前像素点(即第一亮度重建块中的每个像素点作为当前像素点),若当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,则基于当前像素点的第一亮度重建像素值和当前像素点的周围像素点的第一亮度重建像素值确定当前像素点的第二亮度重建像素值。若当前像素点不满足dbf模式的垂直边界滤波的像素级启用条件,则基于当前像素点的第一亮度重建像素值确定当前像素点的第二亮度重建像素值,也就是说,将当前像素点的第一亮度重建像素值作为当前像素点的第二亮度重建像素值。
124.示例性的,当前像素点的周围像素点可以是当前像素点的垂直边界周围的像素点。比如说,当前像素点的周围像素点,可以是当前像素点的垂直边界的相邻像素点,也可以是当前像素点的垂直边界的非相邻像素点。当前像素点的周围像素点,可以是位于当前亮度块中的像素点,也可以是位于当前亮度块的相邻亮度块中的像素点。当前像素点的周围像素点,可以是当前像素点左侧的像素点,也可以是当前像素点右侧的像素点,对此当前像素点的周围像素点的位置不做限制。参见图4a所示,为当前像素点的垂直边界的示意图,显然,当前像素点的垂直边界就是一个像素点的边界,是当前像素点所在一行的边界。若当前像素点是当前亮度块中的p0,则当前像素点的周围像素点可以是当前亮度块右侧相邻亮度块中的q0。或者,当前像素点的周围像素点可以包括p1、p2、p3、q0、q1、q2、q3中的至少一个。
125.示例性的,基于当前像素点的第一亮度重建像素值和当前像素点的周围像素点的第一亮度重建像素值,就可以确定当前像素点的第二亮度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
126.示例性的,在当前亮度块启用dbf模式的基础上,针对第一亮度重建块中的每个当前像素点,还需要判断当前像素点是否满足dbf模式的垂直边界滤波的像素级启用条件。当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,可以包括但不限于:当前亮度块的垂直边界允许dbf滤波,当前像素点的垂直边界的边界强度(即bs)大于0。比如说,可以先确定当前亮度块的垂直边界是否允许dbf滤波,若当前亮度块的垂直边界不允许dbf滤波,则确定当前像素点不满足dbf模式的垂直边界滤波的像素级启用条件,若当前亮度块的垂直边界允许dbf滤波,则可以确定当前像素点的垂直边界的边界强度。若该边界强度大于0,则确定当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,若该边界强度等于0,则确定当前像素点不满足dbf模式的垂直边界滤波的像素级启用条件。
127.参见图4a所示,为当前像素点的垂直边界的示意图,参见图4b所示,为当前亮度块的垂直边界的示意图,显然,当前亮度块的垂直边界包括当前像素点的垂直边界,也就是说,当前像素点的垂直边界是当前像素点所在一行的边界,而当前亮度块的垂直边界包括当前亮度块的所有行的边界,当前亮度块的所有行的边界对应同一条竖线边界。
128.示例性的,满足以下条件之一的当前亮度块的垂直边界不需要滤波,即当前亮度块的垂直边界不允许dbf滤波:若待滤波的垂直边界(待滤波的垂直边界即当前亮度块的垂直边界)是图像边界,则该垂直边界不需要滤波。若待滤波的垂直边界是片边界且跨片环路滤波允许标志为0,则该垂直边界不需要滤波。若待滤波的垂直边界是亮度滤波边界,且该亮度滤波边界不是亮度编码块或者亮度变换块的边界,则该垂直边界不需要滤波。若待滤波的垂直边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该垂直边界不需要滤波。若待滤波的垂直边界所在的编码单元的串复制帧内预测模式标志为1,则该垂直边界不需要滤波。
129.步骤s12、基于每个当前像素点的第二亮度重建像素值确定第二亮度重建块。
130.比如说,针对第一亮度重建块中的每个当前像素点,在得到所有当前像素点的第二亮度重建像素值后,可以将所有当前像素点的第二亮度重建像素值组成第二亮度重建块。
131.步骤s13、若当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,则从当前像素点的垂直边界的相邻亮度块中确定与当前像素点对应的参考像素点。
132.示例性的,参考像素点可以是相邻亮度块中与当前像素点相邻的像素点,参考像素点也可以是相邻亮度块中与当前像素点非相邻的像素点,参考像素点也可以是相邻亮度块中与当前像素点对称的像素点,对此不做限制。参见图4a所示,为当前像素点的垂直边界的示意图,若当前像素点是当前亮度块中的p0,则参考像素点可以是相邻亮度块中的q0,若当前像素点是当前亮度块中的p1,则参考像素点可以是相邻亮度块中的q1,以此类推。
133.步骤s14、基于相邻亮度块中的参考像素点的第一亮度重建像素值和参考像素点的周围像素点的第一亮度重建像素值确定参考像素点的第二亮度重建像素值。
134.示例性的,参考像素点的周围像素点可以是当前像素点的垂直边界(也即参考像素点的垂直边界)周围的像素点。比如说,参考像素点的周围像素点,可以是参考像素点的垂直边界的相邻像素点,也可以是参考像素点的垂直边界的非相邻像素点。参考像素点的周围像素点,可以是位于相邻亮度块中的像素点,也可以是位于当前亮度块中的像素点。参考像素点的周围像素点,可以是参考像素点左侧的像素点,也可以是参考像素点右侧的像素点,对此不做限制。参见图4a所示,为当前像素点/参考像素点的垂直边界的示意图,若参考像素点是相邻亮度块中的q0,则参考像素点的周围像素点可以是当前亮度块中的p0。或者,参考像素点的周围像素点可以包括p0、p1、p2、p3、q1、q2、q3中的至少一个。
135.示例性的,基于参考像素点的第一亮度重建像素值和参考像素点的周围像素点的第一亮度重建像素值,就可以确定参考像素点的第二亮度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
136.步骤303、若当前亮度块启用垂直dbr模式,则对该第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于该第二亮度重建块确定第三亮度重建块,也就是说,若当前亮度块未启用垂直dbr模式,则可以将该第二亮度重建块作为第三亮度重建块。
137.示例性的,dbr模式可以为去块滤波调整(deblocking refinement)模式。
138.在一种可能的实施方式中,第二亮度重建块可以包括多个像素点的第二亮度重建像素值,第三亮度重建块可以包括多个像素点的第三亮度重建像素值,且第二亮度重建块中的像素点与第三亮度重建块中的像素点一一对应。基于此,垂直dbr滤波过程可以包括:
139.步骤s21、针对第二亮度重建块中每个当前像素点(即第二亮度重建块中的每个像素点作为当前像素点),若当前像素点满足垂直dbr模式的去块滤波调整模式的像素级启用条件,则基于当前像素点的第二亮度重建像素值和当前像素点的第一亮度重建像素值确定当前像素点的第三亮度重建像素值。若当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,则基于当前像素点的第二亮度重建像素值和当前像素点的周围像素点的第二亮度重建像素值确定当前像素点的梯度值,并基于当前像素点的梯度值和当前像素点的第二亮度重建像素值,确定当前像素点的第三亮度重建像素值。若当前像素点不满足垂直dbr模式的像素级启用条件,则基于当前像素点的第二亮度重建像素值确定当前像素点的第三亮度重建像素值,即将当前像素点的第二亮度重建像素值作为当前像素点的第三亮度重建像素值。
140.示例性的,在当前亮度块启用垂直dbr模式的基础上,针对第二亮度重建块中的每个当前像素点,还需要判断当前像素点是否满足垂直dbr模式的去块滤波调整模式的像素级启用条件。若是,则可以采用情况一确定当前像素点的第三亮度重建像素值。若否,则还需要判断当前像素点是否满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件。若满足,则可以采用情况二确定当前像素点的第三亮度重建像素值。若不满足,则直接将当前像素点的第二亮度重建像素值作为当前像素点的第三亮度重建像素值,不再执行情况一和情况二。
141.情况一、若当前像素点满足垂直dbr模式的去块滤波调整模式的像素级启用条件,则可以基于当前像素点的第二亮度重建像素值,当前像素点的第一亮度重建像素值,去块滤波调整模式的垂直调整阈值,去块滤波调整模式的第一垂直调整偏移值和去块滤波调整模式的第二垂直调整偏移值,确定当前像素点的第三亮度重建像素值。
142.示例性的,当前像素点满足垂直dbr模式的去块滤波调整模式的像素级启用条件,可以包括但不限于:当前亮度块的垂直边界允许垂直dbr滤波;当前像素点的垂直边界的边界强度(即bs)大于0。例如,确定当前亮度块的垂直边界是否允许垂直dbr滤波,若当前亮度块的垂直边界不允许垂直dbr滤波,则确定当前像素点不满足垂直dbr模式的去块滤波调整模式的像素级启用条件,若当前亮度块的垂直边界允许垂直dbr滤波,则确定当前像素点的垂直边界的边界强度。若该边界强度大于0,则确定当前像素点满足垂直dbr模式的去块滤波调整模式的像素级启用条件,若该边界强度等于0,则确定当前像素点不满足垂直dbr模式的去块滤波调整模式的像素级启用条件。关于当前像素点的垂直边界和当前亮度块的垂直边界,可以参见图4a和图4b所示,当前像素点的垂直边界是当前像素点所在一行的边界,而当前亮度块的垂直边界包括当前亮度块的所有行的边界,当前亮度块的所有行的边界对应同一条竖线边界。
143.示例性的,满足以下条件之一的当前亮度块的垂直边界不需要滤波,即当前亮度块的垂直边界不允许垂直dbr滤波:若待滤波的垂直边界(待滤波的垂直边界即当前亮度块的垂直边界)是图像边界,则该垂直边界不需要滤波。若待滤波的垂直边界是片边界且跨片
环路滤波允许标志为0,则该垂直边界不需要滤波。若待滤波的垂直边界是亮度滤波边界,且该亮度滤波边界不是亮度编码块或者亮度变换块的边界,则该垂直边界不需要滤波。若待滤波的垂直边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该垂直边界不需要滤波。若待滤波的垂直边界所在的编码单元的串复制帧内预测模式标志为1,则该垂直边界不需要滤波。
144.示例性的,可以基于垂直调整阈值确定第一垂直调整阈值和第二垂直调整阈值,第一垂直调整阈值与该垂直调整阈值可以相同,第二垂直调整阈值与该垂直调整阈值可以互为相反数,即第一垂直调整阈值和第二垂直调整阈值互为相反数。基于此,基于当前像素点的第二亮度重建像素值,当前像素点的第一亮度重建像素值,第一垂直调整阈值,第二垂直调整阈值,第一垂直调整偏移值和第二垂直调整偏移值,确定当前像素点的第三亮度重建像素值。
145.比如说,若当前像素点的第一亮度重建像素值与当前像素点的第二亮度重建像素值之间的差值大于第一垂直调整阈值,则基于当前像素点的第一亮度重建像素值、当前像素点的第二亮度重建像素值和第一垂直调整偏移值,确定当前像素点的第三亮度重建像素值,参见如下公式所示:若pi》pi+dbrthreshold,则p
i’=clip1((pi+pi+1)》》1+dbroffset0)。pi表示当前像素点的第一亮度重建像素值,pi表示当前像素点的第二亮度重建像素值,“+dbrthreshold”表示第一垂直调整阈值,p
i’表示当前像素点的第三亮度重建像素值,dbroffset0表示第一垂直调整偏移值,》》表示右移位。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0146]
又例如,若当前像素点的第一亮度重建像素值与当前像素点的第二亮度重建像素值之间的差值小于第二垂直调整阈值,则基于当前像素点的第一亮度重建像素值、当前像素点的第二亮度重建像素值和第二垂直调整偏移值,确定当前像素点的第三亮度重建像素值,参见如下公式所示:若pi《p
i-dbrthreshold,则p
i’=clip1((pi+pi+1)》》1+dbroffset1)。pi表示当前像素点的第一亮度重建像素值,pi表示当前像素点的第二亮度重建像素值,
“‑
dbrthreshold”表示第二垂直调整阈值,p
i’表示当前像素点的第三亮度重建像素值,dbroffset1表示第二垂直调整偏移值,》》表示右移位。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0147]
又例如,若当前像素点的第一亮度重建像素值与当前像素点的第二亮度重建像素值之间的差值不大于第一垂直调整阈值,当前像素点的第一亮度重建像素值与当前像素点的第二亮度重建像素值之间的差值不小于第二垂直调整阈值,则基于当前像素点的第二亮度重建像素值确定当前像素点的第三亮度重建像素值,即第二亮度重建像素值作为第三亮度重建像素值。
[0148]
情况二、若当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,则基于当前像素点的第二亮度重建像素值和当前像素点的周围像素点的第二亮度重建像素值确定当前像素点的梯度值,并基于当前像素点的梯度值和当前像素点的第二亮度重建像素值,确定当前像素点的第三亮度重建像素值。比如说,可以基于当前像素点的梯度值,当前像素点的第二亮度重建像素值,增强去块滤波调整模式的垂直调整阈值,增强去块
滤波调整模式的第一增强垂直调整偏移值和增强去块滤波调整模式的第二增强垂直调整偏移值,确定当前像素点的第三亮度重建像素值。
[0149]
示例性的,当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,可以包括但不限于:当前亮度块的垂直边界允许垂直dbr滤波;当前像素点的垂直边界的边界强度(即bs)等于0。例如,确定当前亮度块的垂直边界是否允许垂直dbr滤波,若当前亮度块的垂直边界不允许垂直dbr滤波,则确定当前像素点不满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,若当前亮度块的垂直边界允许垂直dbr滤波,则确定当前像素点的垂直边界的边界强度。若该边界强度等于0,则确定当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,若该边界强度大于0,则确定当前像素点不满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件。关于当前像素点的垂直边界和当前亮度块的垂直边界,可以参见图4a和图4b所示,当前像素点的垂直边界是当前像素点所在一行的边界,而当前亮度块的垂直边界包括当前亮度块的所有行的边界,当前亮度块的所有行的边界对应同一条竖线边界。
[0150]
示例性的,基于当前像素点的第二亮度重建像素值和当前像素点的周围像素点的第二亮度重建像素值确定当前像素点的梯度值,可以包括但不限于:基于如下公式确定当前像素点的梯度值:dpi=(qi–
pi+2)》》2。dpi表示当前像素点的梯度值,qi表示当前像素点的周围像素点的第二亮度重建像素值,pi表示当前像素点的第二亮度重建像素值,》》表示右移位。
[0151]
综上可以看出,当前像素点的梯度值可以基于当前像素点的第二亮度重建像素值和周围像素点的第二亮度重建像素值之间的差值确定,对此梯度值的确定方式不做限制。
[0152]
当前像素点的周围像素点可以是当前像素点的垂直边界周围的像素点,比如说,当前像素点的周围像素点,可以是当前像素点的垂直边界的相邻像素点,也可以是当前像素点的垂直边界的非相邻像素点。当前像素点的周围像素点,可以是位于当前亮度块中的像素点,也可以是位于当前亮度块的相邻亮度块中的像素点,如当前亮度块的相邻亮度块中与当前像素点对称的像素点。参见图4a所示,为当前像素点的垂直边界的示意图,若当前像素点是当前亮度块中的p0,则当前像素点的周围像素点可以是当前亮度块右侧相邻亮度块中的q0。若当前像素点是当前亮度块中的p1,则当前像素点的周围像素点可以是相邻亮度块中的q1。
[0153]
在一种可能的实施方式中,在确定当前像素点的第三亮度重建像素值的过程中,可以基于当前像素点的梯度值,当前像素点的第二亮度重建像素值,增强去块滤波调整模式的垂直调整阈值,增强去块滤波调整模式的第一增强垂直调整偏移值和增强去块滤波调整模式的第二增强垂直调整偏移值,确定当前像素点的第三亮度重建像素值。
[0154]
示例性的,可以基于垂直调整阈值确定第一垂直调整阈值和第二垂直调整阈值,第一垂直调整阈值与该垂直调整阈值可以相同,第二垂直调整阈值与该垂直调整阈值可以互为相反数,即第一垂直调整阈值和第二垂直调整阈值互为相反数。基于此,可以基于当前像素点的梯度值,当前像素点的第二亮度重建像素值,第一垂直调整阈值,第二垂直调整阈值,第一增强垂直调整偏移值和第二增强垂直调整偏移值,确定当前像素点的第三亮度重建像素值。
[0155]
比如说,若当前像素点的梯度值小于第二垂直调整阈值,则可以基于当前像素点
的第二亮度重建像素值和第一增强垂直调整偏移值确定当前像素点的第三亮度重建像素值,例如,参见如下公式所示:dpi=(qi–
pi+2)》》2,若dpi《

dbrthreshold,则pi=clip1(pi+dbraltoffset0)。在上述公式中,dpi表示当前像素点的梯度值,
“–
dbrthreshold”表示第二垂直调整阈值,pi表示当前像素点的第三亮度重建像素值,pi表示当前像素点的第二亮度重建像素值,dbraltoffset0表示第一增强垂直调整偏移值。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0156]
又例如,若当前像素点的梯度值大于第一垂直调整阈值,则可以基于当前像素点的第二亮度重建像素值和第二增强垂直调整偏移值确定当前像素点的第三亮度重建像素值,例如,参见如下公式所示:dpi=(qi–
pi+2)》》2,若dpi》dbrthreshold,则pi=clip1(pi+dbraltoffset1)。在上述公式中,dpi表示当前像素点的梯度值,“dbrthreshold”表示第一垂直调整阈值,pi表示当前像素点的第三亮度重建像素值,pi表示当前像素点的第二亮度重建像素值,dbraltoffset1表示第二增强垂直调整偏移值。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0157]
又例如,若当前像素点的梯度值不小于第二垂直调整阈值,且当前像素点的梯度值不大于第一垂直调整阈值,则基于当前像素点的第二亮度重建像素值确定当前像素点的第三亮度重建像素值,即将当前像素点的第二亮度重建像素值作为当前像素点的第三亮度重建像素值。
[0158]
步骤s22、基于每个当前像素点的第三亮度重建像素值确定第三亮度重建块。
[0159]
比如说,针对第二亮度重建块中的每个当前像素点,在得到所有当前像素点的第三亮度重建像素值后,可以将所有当前像素点的第三亮度重建像素值组成第三亮度重建块。
[0160]
步骤s23、若当前像素点满足垂直dbr模式的去块滤波调整模式的像素级启用条件,则还可以从当前像素点的垂直边界的相邻亮度块中确定与当前像素点对应的参考像素点,并基于参考像素点的第二亮度重建像素值和参考像素点的第一亮度重建像素值确定参考像素点的第三亮度重建像素值。比如说,基于参考像素点的第二亮度重建像素值,参考像素点的第一亮度重建像素值,去块滤波调整模式的垂直调整阈值,去块滤波调整模式的第一垂直调整偏移值和去块滤波调整模式的第二垂直调整偏移值,确定参考像素点的第三亮度重建像素值。
[0161]
示例性的,参考像素点可以是相邻亮度块中与当前像素点相邻的像素点,参考像素点也可以是相邻亮度块中与当前像素点非相邻的像素点,参考像素点还可以是相邻亮度块中与当前像素点对称的像素点,对此不做限制。参见图4a所示,为当前像素点的垂直边界的示意图,若当前像素点是当前亮度块中的p0,则参考像素点可以是相邻亮度块中的q0,若当前像素点是当前亮度块中的p1,则参考像素点可以是相邻亮度块中的q1,以此类推。
[0162]
示例性的,可以基于垂直调整阈值确定第一垂直调整阈值和第二垂直调整阈值,第一垂直调整阈值与该垂直调整阈值可以相同,第二垂直调整阈值与该垂直调整阈值可以互为相反数,即第一垂直调整阈值和第二垂直调整阈值互为相反数。基于此,基于参考像素点的第二亮度重建像素值,参考像素点的第一亮度重建像素值,第一垂直调整阈值,第二垂
直调整阈值,第一垂直调整偏移值和第二垂直调整偏移值,确定参考像素点的第三亮度重建像素值。
[0163]
比如说,若参考像素点的第一亮度重建像素值与参考像素点的第二亮度重建像素值之间的差值大于第一垂直调整阈值,则基于参考像素点的第一亮度重建像素值、参考像素点的第二亮度重建像素值和第一垂直调整偏移值,确定参考像素点的第三亮度重建像素值,参见如下公式所示:若qi》qi+dbrthreshold,则q
i’=clip1((qi+qi+1)》》1+dbroffset0)。qi表示参考像素点的第一亮度重建像素值,qi表示参考像素点的第二亮度重建像素值,“+dbrthreshold”表示第一垂直调整阈值,q
i’表示参考像素点的第三亮度重建像素值,dbroffset0表示第一垂直调整偏移值,》》表示右移位。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0164]
又例如,若参考像素点的第一亮度重建像素值与参考像素点的第二亮度重建像素值之间的差值小于第二垂直调整阈值,则基于参考像素点的第一亮度重建像素值、参考像素点的第二亮度重建像素值和第二垂直调整偏移值,确定参考像素点的第三亮度重建像素值,参见如下公式所示:若qi《qi–
dbrthreshold,则q
i’=clip1((qi+qi+1)》》1+dbroffset1)。qi表示参考像素点的第一亮度重建像素值,qi表示参考像素点的第二亮度重建像素值,
“‑
dbrthreshold”表示第二垂直调整阈值,q
i’表示参考像素点的第三亮度重建像素值,dbroffset1表示第二垂直调整偏移值,》》表示右移位。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0165]
又例如,若参考像素点的第一亮度重建像素值与参考像素点的第二亮度重建像素值之间的差值不大于第一垂直调整阈值,参考像素点的第一亮度重建像素值与参考像素点的第二亮度重建像素值之间的差值不小于第二垂直调整阈值,则基于参考像素点的第二亮度重建像素值确定参考像素点的第三亮度重建像素值,即第二亮度重建像素值作为第三亮度重建像素值。
[0166]
步骤s24、若当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,则还可以从当前像素点的垂直边界的相邻亮度块中确定与当前像素点对应的参考像素点,并基于参考像素点的第二亮度重建像素值和参考像素点的周围像素点(该参考像素点的周围像素点可以包括当前像素点的垂直边界周围的像素点)的第二亮度重建像素值确定参考像素点的梯度值,并可以基于参考像素点的梯度值和参考像素点的第二亮度重建像素值,确定参考像素点的第三亮度重建像素值。比如说,可以基于参考像素点的梯度值,参考像素点的第二亮度重建像素值,增强去块滤波调整模式的垂直调整阈值,增强去块滤波调整模式的第一增强垂直调整偏移值和增强去块滤波调整模式的第二增强垂直调整偏移值,确定参考像素点的第三亮度重建像素值。
[0167]
示例性的,参考像素点可以是相邻亮度块中与当前像素点相邻的像素点,参考像素点也可以是相邻亮度块中与当前像素点非相邻的像素点,参考像素点还可以是相邻亮度块中与当前像素点对称的像素点,对此不做限制。参见图4a所示,为当前像素点的垂直边界的示意图,若当前像素点是当前亮度块中的p0,则参考像素点可以是相邻亮度块中的q0,若当前像素点是当前亮度块中的p1,则参考像素点可以是相邻亮度块中的q1,以此类推。
[0168]
示例性的,参考像素点的周围像素点可以是当前像素点的垂直边界(也即参考像素点的垂直边界)周围的像素点。比如说,参考像素点的周围像素点,可以是参考像素点的垂直边界的相邻像素点,也可以是参考像素点的垂直边界的非相邻像素点。参考像素点的周围像素点,可以是位于相邻亮度块中的像素点,也可以是位于当前亮度块中的像素点,如当前亮度块中与参考像素点对称的像素点。参见图4a所示,为当前像素点/参考像素点的垂直边界的示意图,若参考像素点是相邻亮度块中的q0,则参考像素点的周围像素点可以是当前亮度块中的p0。或者,参考像素点的周围像素点可以包括p0、p1、p2、p3、q1、q2、q3中的至少一个。
[0169]
综上可以看出,参考像素点的梯度值可以基于参考像素点的第二亮度重建像素值和周围像素点的第二亮度重建像素值之间的差值确定,对此梯度值的确定方式不做限制。
[0170]
示例性的,基于参考像素点的第二亮度重建像素值和参考像素点的周围像素点的第二亮度重建像素值确定参考像素点的梯度值,可以包括但不限于:基于如下公式确定参考像素点的梯度值:dqi=(pi–
qi+2)》》2。dqi表示参考像素点的梯度值,pi表示参考像素点的周围像素点的第二亮度重建像素值,qi表示参考像素点的第二亮度重建像素值,》》表示右移位。
[0171]
示例性的,可以基于垂直调整阈值确定第一垂直调整阈值和第二垂直调整阈值,第一垂直调整阈值与该垂直调整阈值可以相同,第二垂直调整阈值与该垂直调整阈值可以互为相反数,即第一垂直调整阈值和第二垂直调整阈值互为相反数。基于此,可以基于参考像素点的梯度值,参考像素点的第二亮度重建像素值,第一垂直调整阈值,第二垂直调整阈值,第一增强垂直调整偏移值和第二增强垂直调整偏移值,确定参考像素点的第三亮度重建像素值。
[0172]
比如说,若参考像素点的梯度值小于第二垂直调整阈值,则可以基于参考像素点的第二亮度重建像素值和第一增强垂直调整偏移值确定参考像素点的第三亮度重建像素值,例如,参见如下公式所示:dqi=(pi–
qi+2)》》2,若dqi《

dbrthreshold,则qi=clip1(qi+dbraltoffset0)。在上述公式中,dqi表示参考像素点的梯度值,
“–
dbrthreshold”表示第二垂直调整阈值,qi表示参考像素点的第三亮度重建像素值,qi表示参考像素点的第二亮度重建像素值,dbraltoffset0表示第一增强垂直调整偏移值。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0173]
又例如,若参考像素点的梯度值大于第一垂直调整阈值,则可以基于参考像素点的第二亮度重建像素值和第二增强垂直调整偏移值确定参考像素点的第三亮度重建像素值,例如,参见如下公式所示:dqi=(pi–
qi+2)》》2,若dqi》dbrthreshold,则qi=clip1(qi+dbraltoffset1)。在上述公式中,dqi表示参考像素点的梯度值,“dbrthreshold”表示第一垂直调整阈值,qi表示参考像素点的第三亮度重建像素值,qi表示参考像素点的第二亮度重建像素值,dbraltoffset1表示第二增强垂直调整偏移值。clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如可以为8、10、12等。
[0174]
又例如,若参考像素点的梯度值不小于第二垂直调整阈值,且参考像素点的梯度值不大于第一垂直调整阈值,则基于参考像素点的第二亮度重建像素值确定参考像素点的
第三亮度重建像素值,即将参考像素点的第二亮度重建像素值作为参考像素点的第三亮度重建像素值。
[0175]
在上述实施例中,针对当前像素点满足垂直dbr模式的去块滤波调整模式的像素级启用条件的情况,需要基于去块滤波调整模式的垂直调整阈值,去块滤波调整模式的第一垂直调整偏移值和去块滤波调整模式的第二垂直调整偏移值,确定当前像素点的第三亮度重建像素值,在一种可能的实施方式中,可以从高层语法中解析出当前亮度块对应的去块滤波调整模式的垂直调整阈值,去块滤波调整模式的第一垂直调整偏移值和第二垂直调整偏移值。
[0176]
在上述实施例中,针对当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件的情况,需要基于增强去块滤波调整模式的垂直调整阈值(与去块滤波调整模式的垂直调整阈值可以相同,也可以不同,本文以二者相同为例,均记为垂直调整阈值),增强去块滤波调整模式的第一增强垂直调整偏移值和增强去块滤波调整模式的第二增强垂直调整偏移值,确定当前像素点的第三亮度重建像素值,在一种可能的实施方式中,可以从高层语法中解析出当前亮度块对应的增强去块滤波调整模式的垂直调整阈值,增强去块滤波调整模式的第一增强垂直调整偏移值和增强去块滤波调整模式的第二增强垂直调整偏移值。
[0177]
示例性的,在上述实施例中,高层语法可以包括但不限于如下语法中的一种:序列头级高层语法;图像参数集pps级高层语法;图像头级高层语法;帧级高层语法;片头级高层语法;编码树单元ctu级高层语法;编码单元cu级高层语法。
[0178]
步骤304、若当前亮度块启用dbf模式,则对该第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于该第三亮度重建块确定第四亮度重建块,也就是说,若当前亮度块未启用dbf模式,则可以将该第三亮度重建块直接作为第四亮度重建块。
[0179]
在一种可能的实施方式中,第三亮度重建块可以包括多个像素点的第三亮度重建像素值,第四亮度重建块可以包括多个像素点的第四亮度重建像素值,且第三亮度重建块中的像素点与第四亮度重建块中的像素点一一对应。基于此,水平dbf滤波过程可以包括:
[0180]
步骤s31、针对第三亮度重建块中每个当前像素点(即第三亮度重建块中的每个像素点作为当前像素点),若当前像素点满足dbf模式的水平边界滤波的像素级启用条件,则基于当前像素点的第三亮度重建像素值和当前像素点的周围像素点的第三亮度重建像素值确定当前像素点的第四亮度重建像素值。若当前像素点不满足dbf模式的水平边界滤波的像素级启用条件,则基于当前像素点的第三亮度重建像素值确定当前像素点的第四亮度重建像素值,也就是说,将当前像素点的第三亮度重建像素值作为当前像素点的第四亮度重建像素值。
[0181]
示例性的,当前像素点的周围像素点可以是当前像素点的水平边界周围的像素点。比如说,当前像素点的周围像素点,可以是当前像素点的水平边界的相邻像素点,也可以是当前像素点的水平边界的非相邻像素点。当前像素点的周围像素点,可以是位于当前亮度块中的像素点,也可以是位于当前亮度块的相邻亮度块中的像素点。当前像素点的周围像素点,可以是当前像素点上侧的像素点,也可以是当前像素点下侧的像素点,对此当前像素点的周围像素点的位置不做限制。参见图4c所示,为当前像素点的水平边界的示意图,显然,当前像素点的水平边界就是一个像素点的边界,是当前像素点所在一列的边界。若当
前像素点是当前亮度块中的p0,则当前像素点的周围像素点可以是当前亮度块下侧相邻亮度块中的q0。或者,当前像素点的周围像素点可以包括p1、p2、p3、q0、q1、q2、q3中的至少一个。
[0182]
示例性的,基于当前像素点的第三亮度重建像素值和当前像素点的周围像素点的第三亮度重建像素值,就可以确定当前像素点的第四亮度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
[0183]
示例性的,在当前亮度块启用dbf模式的基础上,针对第三亮度重建块中的每个当前像素点,还需要判断当前像素点是否满足dbf模式的水平边界滤波的像素级启用条件。当前像素点满足dbf模式的水平边界滤波的像素级启用条件,可以包括但不限于:当前亮度块的水平边界允许dbf滤波,当前像素点的水平边界的边界强度(即bs)大于0。比如说,可以先确定当前亮度块的水平边界是否允许dbf滤波,若当前亮度块的水平边界不允许dbf滤波,则确定当前像素点不满足dbf模式的水平边界滤波的像素级启用条件,若当前亮度块的水平边界允许dbf滤波,则可以确定当前像素点的水平边界的边界强度。若该边界强度大于0,则确定当前像素点满足dbf模式的水平边界滤波的像素级启用条件,若该边界强度等于0,则确定当前像素点不满足dbf模式的水平边界滤波的像素级启用条件。
[0184]
参见图4c所示,为当前像素点的水平边界的示意图,参见图4d所示,为当前亮度块的水平边界的示意图,显然,当前亮度块的水平边界包括当前像素点的水平边界,也就是说,当前像素点的水平边界是当前像素点所在一列的边界,而当前亮度块的水平边界包括当前亮度块的所有列的边界,当前亮度块的所有列的边界对应同一条横线边界。
[0185]
示例性的,满足以下条件之一的当前亮度块的水平边界不需要滤波,即当前亮度块的水平边界不允许dbf滤波:若待滤波的水平边界(待滤波的水平边界即当前亮度块的水平边界)是图像边界,则该水平边界不需要滤波。若待滤波的水平边界是片边界且跨片环路滤波允许标志为0,则该水平边界不需要滤波。若待滤波的水平边界是亮度滤波边界,且该亮度滤波边界不是亮度编码块或者亮度变换块的边界,则该水平边界不需要滤波。若待滤波的水平边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该水平边界不需要滤波。若待滤波的水平边界所在的编码单元的串复制帧内预测模式标志为1,则该水平边界不需要滤波。
[0186]
步骤s32、基于每个当前像素点的第四亮度重建像素值确定第四亮度重建块。
[0187]
比如说,针对第三亮度重建块中的每个当前像素点,在得到所有当前像素点的第四亮度重建像素值后,可以将所有当前像素点的第四亮度重建像素值组成第四亮度重建块。
[0188]
步骤s33、若当前像素点满足dbf模式的水平边界滤波的像素级启用条件,则从当前像素点的水平边界的相邻亮度块中确定与当前像素点对应的参考像素点。
[0189]
示例性的,参考像素点可以是相邻亮度块中与当前像素点相邻的像素点,参考像素点也可以是相邻亮度块中与当前像素点非相邻的像素点,参考像素点也可以是相邻亮度块中与当前像素点对称的像素点,对此不做限制。参见图4c所示,为当前像素点的水平边界的示意图,若当前像素点是当前亮度块中的p0,则参考像素点可以是相邻亮度块中的q0,若当前像素点是当前亮度块中的p1,则参考像素点可以是相邻亮度块中的q1,以此类推。
[0190]
步骤s34、基于相邻亮度块中的参考像素点的第三亮度重建像素值和参考像素点的周围像素点的第三亮度重建像素值确定参考像素点的第四亮度重建像素值。
[0191]
示例性的,参考像素点的周围像素点可以是当前像素点的水平边界(也即参考像素点的水平边界)周围的像素点。比如说,参见图4c所示,为当前像素点/参考像素点的水平边界的示意图,若参考像素点是相邻亮度块中的q0,则参考像素点的周围像素点可以是当前亮度块中的p0。或参考像素点的周围像素点可以包括p0、p1、p2、p3、q1、q2、q3中的至少一个。
[0192]
示例性的,基于参考像素点的第三亮度重建像素值和参考像素点的周围像素点的第三亮度重建像素值,就可以确定参考像素点的第四亮度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
[0193]
步骤305、若当前亮度块启用水平dbr模式,则对该第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于该第四亮度重建块确定第五亮度重建块,也就是说,若当前亮度块未启用水平dbr模式,则可以将该第四亮度重建块作为第五亮度重建块。
[0194]
在一种可能的实施方式中,第四亮度重建块可以包括多个像素点的第四亮度重建像素值,第五亮度重建块可以包括多个像素点的第五亮度重建像素值,且第四亮度重建块中的像素点与第五亮度重建块中的像素点一一对应。基于此,水平dbr滤波过程可以包括:
[0195]
步骤s41、针对第四亮度重建块中每个当前像素点(即第四亮度重建块中的每个像素点作为当前像素点),若当前像素点满足水平dbr模式的去块滤波调整模式的像素级启用条件,则基于当前像素点的第四亮度重建像素值和当前像素点的第三亮度重建像素值确定当前像素点的第五亮度重建像素值。若当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,则基于当前像素点的第四亮度重建像素值和当前像素点的周围像素点的第四亮度重建像素值确定当前像素点的梯度值,并基于当前像素点的梯度值和当前像素点的第四亮度重建像素值,确定当前像素点的第五亮度重建像素值。若当前像素点不满足水平dbr模式的像素级启用条件,则基于当前像素点的第四亮度重建像素值确定当前像素点的第五亮度重建像素值,即将当前像素点的第四亮度重建像素值作为当前像素点的第五亮度重建像素值。
[0196]
示例性的,在当前亮度块启用水平dbr模式的基础上,针对第四亮度重建块中的每个当前像素点,还需要判断当前像素点是否满足水平dbr模式的去块滤波调整模式的像素级启用条件。若是,则可以采用情况三确定当前像素点的第五亮度重建像素值。若否,则还需要判断当前像素点是否满足水平dbr模式的增强去块滤波调整模式的像素级启用条件。若满足,则可以采用情况四确定当前像素点的第五亮度重建像素值。若不满足,则直接将当前像素点的第四亮度重建像素值作为当前像素点的第五亮度重建像素值,不再执行情况三和情况四。
[0197]
情况三、若当前像素点满足水平dbr模式的去块滤波调整模式的像素级启用条件,则可以基于当前像素点的第四亮度重建像素值,当前像素点的第三亮度重建像素值,去块滤波调整模式的水平调整阈值,去块滤波调整模式的第一水平调整偏移值和去块滤波调整模式的第二水平调整偏移值,确定当前像素点的第五亮度重建像素值。
[0198]
示例性的,当前像素点满足水平dbr模式的去块滤波调整模式的像素级启用条件,可以包括但不限于:当前亮度块的水平边界允许水平dbr滤波;当前像素点的水平边界的边界强度(即bs)大于0。例如,确定当前亮度块的水平边界是否允许水平dbr滤波,若当前亮度块的水平边界不允许水平dbr滤波,则确定当前像素点不满足水平dbr模式的去块滤波调整模式的像素级启用条件,若当前亮度块的水平边界允许水平dbr滤波,则确定当前像素点的
水平边界的边界强度。若该边界强度大于0,则确定当前像素点满足水平dbr模式的去块滤波调整模式的像素级启用条件,若该边界强度等于0,则确定当前像素点不满足水平dbr模式的去块滤波调整模式的像素级启用条件。关于当前像素点的水平边界和当前亮度块的水平边界,可以参见图4c和图4d所示,当前像素点的水平边界是当前像素点所在一列的边界,而当前亮度块的水平边界包括当前亮度块的所有列的边界,当前亮度块的所有列的边界对应同一条横线边界。
[0199]
示例性的,满足以下条件之一的当前亮度块的水平边界不需要滤波,即当前亮度块的水平边界不允许水平dbr滤波:若待滤波的水平边界(待滤波的水平边界即当前亮度块的水平边界)是图像边界,则该水平边界不需要滤波。若待滤波的水平边界是片边界且跨片环路滤波允许标志为0,则该水平边界不需要滤波。若待滤波的水平边界是亮度滤波边界,且该亮度滤波边界不是亮度编码块或者亮度变换块的边界,则该水平边界不需要滤波。若待滤波的水平边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该水平边界不需要滤波。若待滤波的水平边界所在的编码单元的串复制帧内预测模式标志为1,则该水平边界不需要滤波。
[0200]
示例性的,可以基于水平调整阈值确定第一水平调整阈值和第二水平调整阈值,第一水平调整阈值与该水平调整阈值可以相同,第二水平调整阈值与该水平调整阈值可以互为相反数,即第一水平调整阈值和第二水平调整阈值互为相反数。基于此,基于当前像素点的第四亮度重建像素值,当前像素点的第三亮度重建像素值,第一水平调整阈值,第二水平调整阈值,第一水平调整偏移值和第二水平调整偏移值,确定当前像素点的第五亮度重建像素值。
[0201]
比如说,若当前像素点的第三亮度重建像素值与当前像素点的第四亮度重建像素值之间的差值大于第一水平调整阈值,则基于当前像素点的第三亮度重建像素值、当前像素点的第四亮度重建像素值和第一水平调整偏移值,确定当前像素点的第五亮度重建像素值。即,若pi》pi+dbrthreshold,则p
i’=clip1((pi+pi+1)》》1+dbroffset0)。pi表示当前像素点的第三亮度重建像素值,pi表示当前像素点的第四亮度重建像素值,“+dbrthreshold”表示第一水平调整阈值,p
i’表示当前像素点的第五亮度重建像素值,dbroffset0表示第一水平调整偏移值。
[0202]
又例如,若当前像素点的第三亮度重建像素值与当前像素点的第四亮度重建像素值之间的差值小于第二水平调整阈值,则基于当前像素点的第三亮度重建像素值、当前像素点的第四亮度重建像素值和第二水平调整偏移值,确定当前像素点的第五亮度重建像素值。即,若pi《p
i-dbrthreshold,则p
i’=clip1((pi+pi+1)》》1+dbroffset1)。pi表示当前像素点的第三亮度重建像素值,pi表示当前像素点的第四亮度重建像素值,
“‑
dbrthreshold”表示第二水平调整阈值,p
i’表示当前像素点的第五亮度重建像素值,dbroffset1表示第二水平调整偏移值。
[0203]
又例如,若当前像素点的第三亮度重建像素值与当前像素点的第四亮度重建像素值之间的差值不大于第一水平调整阈值,当前像素点的第三亮度重建像素值与当前像素点的第四亮度重建像素值之间的差值不小于第二水平调整阈值,则基于当前像素点的第四亮度重建像素值确定当前像素点的第五亮度重建像素值,即第四亮度重建像素值作为第五亮度重建像素值。
[0204]
情况四、若当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,则基于当前像素点的第四亮度重建像素值和当前像素点的周围像素点的第四亮度重建像素值确定当前像素点的梯度值,并基于当前像素点的梯度值和当前像素点的第四亮度重建像素值,确定当前像素点的第五亮度重建像素值。比如说,可以基于当前像素点的梯度值,当前像素点的第四亮度重建像素值,增强去块滤波调整模式的水平调整阈值,增强去块滤波调整模式的第一增强水平调整偏移值和增强去块滤波调整模式的第二增强水平调整偏移值,确定当前像素点的第五亮度重建像素值。
[0205]
示例性的,当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,可以包括但不限于:当前亮度块的水平边界允许水平dbr滤波;当前像素点的水平边界的边界强度(即bs)等于0。例如,确定当前亮度块的水平边界是否允许水平dbr滤波,若当前亮度块的水平边界不允许水平dbr滤波,则确定当前像素点不满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,若当前亮度块的水平边界允许水平dbr滤波,则确定当前像素点的水平边界的边界强度。若该边界强度等于0,则确定当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,若该边界强度大于0,则确定当前像素点不满足水平dbr模式的增强去块滤波调整模式的像素级启用条件。关于当前像素点的水平边界和当前亮度块的水平边界,可以参见图4c和图4d所示,当前像素点的水平边界是当前像素点所在一列的边界,而当前亮度块的水平边界包括当前亮度块的所有列的边界,当前亮度块的所有列的边界对应同一条横线边界。
[0206]
示例性的,基于当前像素点的第四亮度重建像素值和当前像素点的周围像素点的第四亮度重建像素值确定当前像素点的梯度值,可以包括但不限于:基于如下公式确定当前像素点的梯度值:dpi=(qi–
pi+2)》》2。dpi表示当前像素点的梯度值,qi表示当前像素点的周围像素点的第四亮度重建像素值,pi表示当前像素点的第四亮度重建像素值,》》表示右移位。
[0207]
当前像素点的周围像素点可以是当前像素点的水平边界周围的像素点,比如说,当前像素点的周围像素点可以是当前像素点的水平边界的相邻像素点,也可以是当前像素点的水平边界的非相邻像素点。当前像素点的周围像素点可以是位于相邻亮度块中的像素点,如相邻亮度块中与当前像素点对称的像素点。参见图4c所示,为当前像素点的水平边界的示意图,若当前像素点是当前亮度块中的p0,则周围像素点可以是当前亮度块下侧相邻亮度块中的q0。若当前像素点是当前亮度块中的p1,则周围像素点可以是相邻亮度块中的q1。
[0208]
在一种可能的实施方式中,可以基于水平调整阈值确定第一水平调整阈值和第二水平调整阈值,第一水平调整阈值与该水平调整阈值可以相同,第二水平调整阈值与该水平调整阈值可以互为相反数,即第一水平调整阈值和第二水平调整阈值互为相反数。基于此,可以基于当前像素点的梯度值,当前像素点的第四亮度重建像素值,增强去块滤波调整模式的第一水平调整阈值,增强去块滤波调整模式的第二水平调整阈值,增强去块滤波调整模式的第一增强水平调整偏移值和增强去块滤波调整模式的第二增强水平调整偏移值,确定当前像素点的第五亮度重建像素值。
[0209]
比如说,若当前像素点的梯度值小于第二水平调整阈值,则基于当前像素点的第四亮度重建像素值和第一增强水平调整偏移值确定当前像素点的第五亮度重建像素值。若
当前像素点的梯度值大于第一水平调整阈值,则基于当前像素点的第四亮度重建像素值和第二增强水平调整偏移值确定当前像素点的第五亮度重建像素值。若当前像素点的梯度值不小于第二水平调整阈值,当前像素点的梯度值不大于第一水平调整阈值,则基于当前像素点的第四亮度重建像素值确定当前像素点的第五亮度重建像素值,即第四亮度重建像素值作为第五亮度重建像素值。
[0210]
例如,若dpi《

dbrthreshold,则pi=clip1(pi+dbraltoffset0)。若dpi》dbrthreshold,则pi=clip1(pi+dbraltoffset1)。dpi表示梯度值,

dbrthreshold表示第二水平调整阈值,pi表示第五亮度重建像素值,pi表示第四亮度重建像素值,dbraltoffset0表示第一增强水平调整偏移值,dbrthreshold表示第一水平调整阈值,dbraltoffset1表示第二增强水平调整偏移值。
[0211]
步骤s42、基于每个当前像素点的第五亮度重建像素值确定第五亮度重建块。
[0212]
比如说,针对第四亮度重建块中的每个当前像素点,在得到所有当前像素点的第五亮度重建像素值后,可以将所有当前像素点的第五亮度重建像素值组成第五亮度重建块。
[0213]
步骤s43、若当前像素点满足水平dbr模式的去块滤波调整模式的像素级启用条件,则还可以从当前像素点的水平边界的相邻亮度块中确定与当前像素点对应的参考像素点,并基于参考像素点的第四亮度重建像素值和参考像素点的第三亮度重建像素值确定参考像素点的第五亮度重建像素值。比如说,基于参考像素点的第四亮度重建像素值,参考像素点的第三亮度重建像素值,去块滤波调整模式的水平调整阈值,去块滤波调整模式的第一水平调整偏移值和去块滤波调整模式的第二水平调整偏移值,确定参考像素点的第五亮度重建像素值。
[0214]
示例性的,参考像素点可以是相邻亮度块中与当前像素点相邻的像素点,或与当前像素点非相邻的像素点,或相邻亮度块中与当前像素点对称的像素点,对此不做限制。参见图4c所示,若当前像素点是当前亮度块中的p0,则参考像素点可以是相邻亮度块中的q0,若当前像素点是当前亮度块中的p1,则参考像素点可以是相邻亮度块中的q1,以此类推。
[0215]
示例性的,可以基于水平调整阈值确定第一水平调整阈值和第二水平调整阈值,第一水平调整阈值与该水平调整阈值可以相同,第二水平调整阈值与该水平调整阈值可以互为相反数,即第一水平调整阈值和第二水平调整阈值互为相反数。基于此,基于参考像素点的第四亮度重建像素值,参考像素点的第三亮度重建像素值,第一水平调整阈值,第二水平调整阈值,第一水平调整偏移值和第二水平调整偏移值,确定参考像素点的第五亮度重建像素值。
[0216]
比如说,若参考像素点的第三亮度重建像素值与参考像素点的第四亮度重建像素值之间的差值大于第一水平调整阈值,则基于参考像素点的第三亮度重建像素值、参考像素点的第四亮度重建像素值和第一水平调整偏移值,确定参考像素点的第五亮度重建像素值。若参考像素点的第三亮度重建像素值与参考像素点的第四亮度重建像素值之间的差值小于第二水平调整阈值,则基于参考像素点的第三亮度重建像素值、参考像素点的第四亮度重建像素值和第二水平调整偏移值,确定参考像素点的第五亮度重建像素值。若参考像素点的第三亮度重建像素值与参考像素点的第四亮度重建像素值之间的差值不大于第一水平调整阈值,参考像素点的第三亮度重建像素值与参考像素点的第四亮度重建像素值之
间的差值不小于第二水平调整阈值,则基于参考像素点的第四亮度重建像素值确定参考像素点的第五亮度重建像素值。
[0217]
例如,若qi》qi+dbrthreshold,q
i’=clip1((qi+qi+1)》》1+dbroffset0)。若qi《qi–
dbrthreshold,则q
i’=clip1((qi+qi+1)》》1+dbroffset1)。在上述公式中,qi表示参考像素点的第三亮度重建像素值,qi表示参考像素点的第四亮度重建像素值,+dbrthreshold表示第一水平调整阈值,q
i’表示参考像素点的第五亮度重建像素值,dbroffset0表示第一水平调整偏移值,-dbrthreshold表示第二水平调整阈值,dbroffset1表示第二水平调整偏移值。
[0218]
步骤s44、若当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,则还可以从当前像素点的水平边界的相邻亮度块中确定与当前像素点对应的参考像素点,并基于参考像素点的第四亮度重建像素值和参考像素点的周围像素点(该参考像素点的周围像素点可以包括当前像素点的水平边界周围的像素点)的第四亮度重建像素值确定参考像素点的梯度值,并可以基于参考像素点的梯度值和参考像素点的第四亮度重建像素值,确定参考像素点的第五亮度重建像素值。比如说,可以基于参考像素点的梯度值,参考像素点的第四亮度重建像素值,增强去块滤波调整模式的水平调整阈值,增强去块滤波调整模式的第一增强水平调整偏移值和增强去块滤波调整模式的第二增强水平调整偏移值,确定参考像素点的第五亮度重建像素值。
[0219]
示例性的,参考像素点可以是相邻亮度块中与当前像素点相邻的像素点,参考像素点还可以是相邻亮度块中与当前像素点对称的像素点,参见图4c所示,若当前像素点是当前亮度块中的p0,则参考像素点可以是相邻亮度块中的q0,以此类推。参考像素点的周围像素点可以是当前像素点的水平边界(也即参考像素点的水平边界)周围的像素点。
[0220]
示例性的,基于参考像素点的第四亮度重建像素值和参考像素点的周围像素点的第四亮度重建像素值确定参考像素点的梯度值,可以包括但不限于:基于如下公式确定参考像素点的梯度值:dqi=(pi–
qi+2)》》2。dqi表示参考像素点的梯度值,pi表示参考像素点的周围像素点的第四亮度重建像素值,qi表示参考像素点的第四亮度重建像素值,》》表示右移位。
[0221]
示例性的,可以基于水平调整阈值确定第一水平调整阈值和第二水平调整阈值,第一水平调整阈值和第二水平调整阈值互为相反数。基于此,可以基于参考像素点的梯度值,参考像素点的第四亮度重建像素值,第一水平调整阈值,第二水平调整阈值,第一增强水平调整偏移值和第二增强水平调整偏移值,确定参考像素点的第五亮度重建像素值。
[0222]
比如说,若参考像素点的梯度值小于第二水平调整阈值,则基于参考像素点的第四亮度重建像素值和第一增强水平调整偏移值确定参考像素点的第五亮度重建像素值。若参考像素点的梯度值大于第一水平调整阈值,则基于参考像素点的第四亮度重建像素值和第二增强水平调整偏移值确定参考像素点的第五亮度重建像素值。若参考像素点的梯度值不小于第二水平调整阈值,参考像素点的梯度值不大于第一水平调整阈值,则基于参考像素点的第四亮度重建像素值确定参考像素点的第五亮度重建像素值,即第四亮度重建像素值作为第五亮度重建像素值。
[0223]
例如,若dqi《

dbrthreshold,则qi=clip1(qi+dbraltoffset0)。若dqi》dbrthreshold,则qi=clip1(qi+dbraltoffset1)。dqi表示梯度值,

dbrthreshold表示第二
水平调整阈值,qi表示第五亮度重建像素值,qi表示第四亮度重建像素值,dbraltoffset0表示第一增强水平调整偏移值,dbrthreshold表示第一水平调整阈值,dbraltoffset1表示第二增强水平调整偏移值。
[0224]
在上述实施例中,针对当前像素点满足水平dbr模式的去块滤波调整模式的像素级启用条件的情况,需要基于去块滤波调整模式的水平调整阈值,去块滤波调整模式的第一水平调整偏移值和去块滤波调整模式的第二水平调整偏移值,确定当前像素点的第五亮度重建像素值,在一种可能的实施方式中,可以从高层语法中解析出当前亮度块对应的去块滤波调整模式的水平调整阈值,去块滤波调整模式的第一水平调整偏移值和第二水平调整偏移值。
[0225]
在上述实施例中,针对当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件的情况,需要基于增强去块滤波调整模式的水平调整阈值(与去块滤波调整模式的水平调整阈值可以相同,也可以不同,本文以二者相同为例,即均记为水平调整阈值),增强去块滤波调整模式的第一增强水平调整偏移值和增强去块滤波调整模式的第二增强水平调整偏移值,确定当前像素点的第五亮度重建像素值,在一种可能的实施方式中,可以从高层语法中解析出当前亮度块对应的增强去块滤波调整模式的水平调整阈值,增强去块滤波调整模式的第一增强水平调整偏移值和增强去块滤波调整模式的第二增强水平调整偏移值。
[0226]
示例性的,在上述实施例中,高层语法可以包括但不限于如下语法中的一种:序列头级高层语法;图像参数集pps级高层语法;图像头级高层语法;帧级高层语法;片头级高层语法;编码树单元ctu级高层语法;编码单元cu级高层语法。
[0227]
步骤306、若当前亮度块启用esao模式,则对该第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若当前亮度块启用sao模式,则对该第五亮度重建块进行sao滤波,得到第六亮度重建块;否则(即当前亮度块未启用esao模式,且当前亮度块未启用esao模式),基于该第五亮度重建块确定第六亮度重建块。
[0228]
比如说,可以先确定当前亮度块是否启用esao模式,若启用esao模式,则对该第五亮度重建块进行esao滤波,得到第六亮度重建块。若未启用esao模式,则确定当前亮度块是否启用sao模式,若启用sao模式,则对该第五亮度重建块进行sao滤波,得到第六亮度重建块。若未启用sao模式,则将第五亮度重建块作为第六亮度重建块。
[0229]
示例性的,对该第五亮度重建块进行esao滤波,得到第六亮度重建块,可以包括但不限于:基于该第五亮度重建块确定增强样值偏移补偿块,并对该增强样值偏移补偿块内的各个像素点的亮度重建像素值进行操作,得到偏移后的亮度重建像素值。基于各个像素点的偏移后的亮度重建像素值确定第六亮度重建块,即将这些偏移后的亮度重建像素值组成第六亮度重建块。当然,上述只是esao滤波的示例,对此esao滤波的实现方式不做限制。
[0230]
示例性的,对该第五亮度重建块进行sao滤波,得到第六亮度重建块,可以包括但不限于:基于该第五亮度重建块确定基本样值偏移补偿块,确定与该基本样值偏移补偿块对应的基本样值偏移补偿信息,并基于该基本样值偏移补偿信息对该基本样值偏移补偿块内的各个像素点的亮度重建像素值进行操作,得到偏移后的亮度重建像素值。基于各个像素点的偏移后的亮度重建像素值确定第六亮度重建块,即将这些偏移后的亮度重建像素值组成第六亮度重建块。当然,上述只是sao滤波的示例,对此sao滤波的实现方式不做限制。
[0231]
步骤307、若当前亮度块启用alf模式,则对第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于第六亮度重建块确定第七亮度重建块,也就是说,若当前亮度块未启用alf模式,则可以将第六亮度重建块作为第七亮度重建块,即经过滤波后的重建块。
[0232]
示例性的,对第六亮度重建块进行alf滤波,得到第七亮度重建块,可以包括但不限于:基于该第六亮度重建块确定自适应修正滤波块,并确定与该自适应修正滤波块对应的自适应修正滤波系数,基于该自适应修正滤波系数对该自适应修正滤波块内的各个像素点的亮度重建像素值进行自适应修正滤波,得到自适应修正滤波后的亮度重建像素值。基于各个像素点的自适应修正滤波后的亮度重建像素值确定第七亮度重建块,即将这些自适应修正滤波后的亮度重建像素值组成第七亮度重建块。当然,上述只是alf滤波的示例,对此不做限制。
[0233]
在一种可能的实施方式中,还可以获取esao允许标志位(允许标志位也可以称为使能标志位),该esao允许标志位允许当前亮度块启用esao模式,或者,该esao允许标志位禁止当前亮度块启用esao模式。比如说,若esao允许标志位为第一取值(如1),则允许当前亮度块启用esao模式,若esao允许标志位为第二取值(如0),则禁止当前亮度块启用esao模式。esao允许标志位可以是序列头级的esao允许标志位、或pps级的esao允许标志位、或图像头级的esao允许标志位、或帧级的esao允许标志位、或片头级的esao允许标志位、或ctu级的esao允许标志位、或cu级的esao允许标志位。当然,上述只是几个示例,对esao允许标志位的高层语法不做限制。
[0234]
还可以获取sao允许标志位,该sao允许标志位允许当前亮度块启用sao模式,或者,该sao允许标志位禁止当前亮度块启用sao模式。比如说,若sao允许标志位为第一取值(如1),则允许当前亮度块启用sao模式,若sao允许标志位为第二取值(如0),则禁止当前亮度块启用sao模式。示例性的,sao允许标志位可以是序列头级的sao允许标志位、或pps级的sao允许标志位、或图像头级的sao允许标志位、或帧级的sao允许标志位、或片头级的sao允许标志位、或ctu级的sao允许标志位、或cu级的sao允许标志位。当然,上述只是几个示例,对sao允许标志位的高层语法不做限制。
[0235]
还可以获取alf允许标志位,该alf允许标志位允许当前亮度块启用alf模式,或者,该alf允许标志位禁止当前亮度块启用alf模式。比如说,若alf允许标志位为第一取值(如1),则允许当前亮度块启用alf模式,若alf允许标志位为第二取值(如0),则禁止当前亮度块启用alf模式。示例性的,alf允许标志位可以是序列头级的alf允许标志位、或pps级的alf允许标志位、或图像头级的alf允许标志位、或帧级的alf允许标志位、或片头级的alf允许标志位、或ctu级的alf允许标志位、或cu级的alf允许标志位。当然,上述只是几个示例,对alf允许标志位的高层语法不做限制。
[0236]
还可以获取dbf允许标志位,该dbf允许标志位允许当前亮度块启用dbf模式,或该dbf允许标志位禁止当前亮度块启用dbf模式;比如说,若dbf允许标志位为第一取值(如1),则允许当前亮度块启用dbf模式,若dbf允许标志位为第二取值(如0),则禁止当前亮度块启用dbf模式。示例性的,dbf允许标志位可以是图像头级的dbf允许标志位。当然,上述只是dbf允许标志位的示例,对dbf允许标志位的高层语法不做限制。如还可以是序列头级、或pps级、或帧级、或片头级、或ctu级、或cu级的dbf允许标志位。
[0237]
在一种可能的实施方式中,若dbf允许标志位允许当前亮度块启用dbf模式,则还
可以获取垂直dbr允许标志位和水平dbr允许标志位。该垂直dbr允许标志位允许当前亮度块启用垂直dbr模式,或者,该垂直dbr允许标志位禁止当前亮度块启用垂直dbr模式;比如说,若垂直dbr允许标志位为第一取值(如1),则允许当前亮度块启用垂直dbr模式,若垂直dbr允许标志位为第二取值(如0),则禁止当前亮度块启用垂直dbr模式。该水平dbr允许标志位允许当前亮度块启用水平dbr模式,或者,该水平dbr允许标志位禁止当前亮度块启用水平dbr模式;比如说,若水平dbr允许标志位为第一取值(如1),则允许当前亮度块启用水平dbr模式,若水平dbr允许标志位为第二取值(如0),则禁止当前亮度块启用水平dbr模式。
[0238]
若dbf允许标志位禁止当前亮度块启用dbf模式,如dbf允许标志位为第二取值,则不需要获取垂直dbr允许标志位和水平dbr允许标志位,可以直接确定禁止当前亮度块启用垂直dbr模式,并确定禁止当前亮度块启用水平dbr模式。
[0239]
在另一种可能的实施方式中,还可以获取垂直dbr允许标志位和水平dbr允许标志位,也就是说,获取过程并不需要参考dbf允许标志位的取值。
[0240]
示例性的,垂直dbr允许标志位可以是图像头级的垂直dbr允许标志位。当然,上述只是示例,对垂直dbr允许标志位的高层语法不做限制。比如说,还可以是序列头级、或pps级、或帧级、或片头级、或ctu级、或cu级的垂直dbr允许标志位。
[0241]
示例性的,水平dbr允许标志位可以是图像头级的水平dbr允许标志位。当然,上述只是示例,对水平dbr允许标志位的高层语法不做限制。比如说,还可以是序列头级、或pps级、或帧级、或片头级、或ctu级、或cu级的水平dbr允许标志位。
[0242]
在上述实施例中,若dbf允许标志位允许当前亮度块启用dbf模式,则获取垂直dbr允许标志位和水平dbr允许标志位,可以包括但不限于:若dbf允许标志位允许当前亮度块启用dbf模式,且当前亮度块的编码比特流中携带的档次标识大于或者等于预设标识号,则获取垂直dbr允许标志位和水平dbr允许标志位。
[0243]
由以上技术方案可见,本技术实施例中,若当前亮度块启用dbf模式,则对第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块,若当前亮度块启用垂直dbr模式,则对第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块,若当前亮度块启用dbf模式,则对第三亮度重建块进行水平dbf滤波,得到第四亮度重建块,若当前亮度块启用水平dbr模式,则对第四亮度重建块进行水平dbr滤波,得到第五亮度重建块,若当前亮度块启用esao模式,则对第五亮度重建块进行esao滤波,得到第六亮度重建块(或若当前亮度块启用sao模式,则对第五亮度重建块进行sao滤波,得到第六亮度重建块),若当前亮度块启用alf模式,则对第六亮度重建块进行alf滤波,得到第七亮度重建块。综上可以看出,可以依次对当前亮度块进行垂直dbf滤波、垂直dbr滤波、水平dbf滤波、水平dbr滤波、esao滤波(或sao滤波)、alf滤波等滤波过程,从而提出合理的滤波方式,避免出现滤波效果不佳,编码性能比较差等问题,即可以提高滤波效果,提高编码性能,不会出现过滤波现象,即滤波后的像素值不会远大于或远小于滤波前的像素值。在对像素值进行上述各种滤波处理后,滤波后的像素值更加接近真实像素,能够提升图像质量。
[0244]
实施例2:本技术实施例中提出一种编解码方法,该编解码方法可以应用于编码端或者解码端,参见图5所示,为该编解码方法的流程示意图,该方法可以包括:
[0245]
步骤501、获取当前色度块对应的第一色度重建块,即滤波前的原始色度重建块。
[0246]
示例性的,当前色度块也可以称为当前色度分量,即当前块的色度分量。针对当前
色度块中的每个像素点,可以称为当前像素点,即当前像素点为当前色度像素点。
[0247]
步骤502、若当前色度块启用dbf模式,则对该第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于该第一色度重建块确定第二色度重建块,也就是说,若当前色度块未启用dbf模式,则可以将该第一色度重建块直接作为第二色度重建块。
[0248]
在一种可能的实施方式中,第一色度重建块可以包括多个像素点的第一色度重建像素值,第二色度重建块可以包括多个像素点的第二色度重建像素值,且第一色度重建块中的像素点与第二色度重建块中的像素点一一对应。基于此,垂直dbf滤波过程可以包括:
[0249]
步骤s51、针对第一色度重建块中每个当前像素点(即第一色度重建块中的每个像素点作为当前像素点),若当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,则基于当前像素点的第一色度重建像素值和当前像素点的周围像素点的第一色度重建像素值确定当前像素点的第二色度重建像素值。若当前像素点不满足dbf模式的垂直边界滤波的像素级启用条件,则基于当前像素点的第一色度重建像素值确定当前像素点的第二色度重建像素值,也就是说,将当前像素点的第一色度重建像素值作为当前像素点的第二色度重建像素值。
[0250]
示例性的,当前像素点的周围像素点可以是当前像素点的垂直边界周围的像素点。比如说,当前像素点的周围像素点,可以是当前像素点的垂直边界的相邻像素点,也可以是当前像素点的垂直边界的非相邻像素点。当前像素点的周围像素点,可以是位于当前色度块中的像素点,也可以是位于当前色度块的相邻色度块中的像素点。当前像素点的周围像素点,可以是当前像素点左侧的像素点,也可以是当前像素点右侧的像素点,对此当前像素点的周围像素点的位置不做限制。参见图4a所示,为当前像素点的垂直边界的示意图,若当前像素点是当前色度块中的p0,则当前像素点的周围像素点可以是当前色度块右侧相邻色度块中的q0。或者,当前像素点的周围像素点可以包括p1、p2、p3、q0、q1、q2、q3中的至少一个。
[0251]
示例性的,基于当前像素点的第一色度重建像素值和当前像素点的周围像素点的第一色度重建像素值,就可以确定当前像素点的第二色度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
[0252]
示例性的,在当前色度块启用dbf模式的基础上,针对第一色度重建块中的每个当前像素点,还需要判断当前像素点是否满足dbf模式的垂直边界滤波的像素级启用条件。当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,可以包括但不限于:当前色度块的垂直边界允许dbf滤波,当前像素点的垂直边界的边界强度(即bs)大于0。比如说,可以先确定当前色度块的垂直边界是否允许dbf滤波,若当前色度块的垂直边界不允许dbf滤波,则确定当前像素点不满足dbf模式的垂直边界滤波的像素级启用条件,若当前色度块的垂直边界允许dbf滤波,则可以确定当前像素点的垂直边界的边界强度。若该边界强度大于0,则确定当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,若该边界强度等于0,则确定当前像素点不满足dbf模式的垂直边界滤波的像素级启用条件。参见图4a和图4b所示,当前色度块的垂直边界包括当前像素点的垂直边界,当前像素点的垂直边界是当前像素点所在一行的边界,而当前色度块的垂直边界包括当前色度块的所有行的边界。
[0253]
示例性的,满足以下条件之一的当前色度块的垂直边界不需要滤波,即当前色度块的垂直边界不允许dbf滤波:若待滤波的垂直边界(待滤波的垂直边界即当前色度块的垂
直边界)是图像边界,则该垂直边界不需要滤波。若待滤波的垂直边界是片边界且跨片环路滤波允许标志为0,则该垂直边界不需要滤波。若待滤波的垂直边界是色度滤波边界,且该色度滤波边界不是色度编码块或者色度变换块的边界,且该色度滤波边界对应的亮度滤波边界不是亮度编码块的边界,则该垂直边界不需要滤波。若待滤波的垂直边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该垂直边界不需要滤波。若待滤波的垂直边界所在的编码单元的串复制帧内预测模式标志为1,则该垂直边界不需要滤波。
[0254]
步骤s52、基于每个当前像素点的第二色度重建像素值确定第二色度重建块。
[0255]
比如说,针对第一色度重建块中的每个当前像素点,在得到所有当前像素点的第二色度重建像素值后,可以将所有当前像素点的第二色度重建像素值组成第二色度重建块。
[0256]
步骤s53、若当前像素点满足dbf模式的垂直边界滤波的像素级启用条件,则从当前像素点的垂直边界的相邻色度块中确定与当前像素点对应的参考像素点。
[0257]
示例性的,参考像素点可以是相邻色度块中与当前像素点相邻的像素点,参考像素点也可以是相邻色度块中与当前像素点非相邻的像素点,参考像素点也可以是相邻色度块中与当前像素点对称的像素点,对此不做限制。参见图4a所示,为当前像素点的垂直边界的示意图,若当前像素点是当前色度块中的p0,则参考像素点可以是相邻色度块中的q0,若当前像素点是当前色度块中的p1,则参考像素点可以是相邻色度块中的q1,以此类推。
[0258]
步骤s54、基于相邻色度块中的参考像素点的第一色度重建像素值和参考像素点的周围像素点的第一色度重建像素值确定参考像素点的第二色度重建像素值。
[0259]
示例性的,参考像素点的周围像素点可以是当前像素点的垂直边界(也即参考像素点的垂直边界)周围的像素点。比如说,参考像素点的周围像素点,可以是参考像素点的垂直边界的相邻像素点,也可以是参考像素点的垂直边界的非相邻像素点。参考像素点的周围像素点,可以是位于相邻色度块中的像素点,也可以是位于当前色度块中的像素点。参考像素点的周围像素点,可以是参考像素点左侧的像素点,也可以是参考像素点右侧的像素点,对此不做限制。参见图4a所示,为当前像素点/参考像素点的垂直边界的示意图,若参考像素点是相邻色度块中的q0,则参考像素点的周围像素点可以是当前色度块中的p0。或者,参考像素点的周围像素点可以包括p0、p1、p2、p3、q1、q2、q3中的至少一个。
[0260]
示例性的,基于参考像素点的第一色度重建像素值和参考像素点的周围像素点的第一色度重建像素值,就可以确定参考像素点的第二色度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
[0261]
步骤503、若当前色度块启用dbf模式,则对该第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于该第二色度重建块确定第三色度重建块,也就是说,若当前色度块未启用dbf模式,则可以将该第二色度重建块直接作为第三色度重建块。
[0262]
在一种可能的实施方式中,第二色度重建块可以包括多个像素点的第二色度重建像素值,第三色度重建块可以包括多个像素点的第三色度重建像素值,且第二色度重建块中的像素点与第三色度重建块中的像素点一一对应。基于此,水平dbf滤波过程可以包括:
[0263]
步骤s61、针对第二色度重建块中每个当前像素点(即第二色度重建块中的每个像素点作为当前像素点),若当前像素点满足dbf模式的水平边界滤波的像素级启用条件,则
基于当前像素点的第二色度重建像素值和当前像素点的周围像素点的第二色度重建像素值确定当前像素点的第三色度重建像素值。若当前像素点不满足dbf模式的水平边界滤波的像素级启用条件,则基于当前像素点的第二色度重建像素值确定当前像素点的第三色度重建像素值,也就是说,将当前像素点的第二色度重建像素值作为当前像素点的第三色度重建像素值。
[0264]
示例性的,当前像素点的周围像素点可以是当前像素点的水平边界周围的像素点。比如说,当前像素点的周围像素点,可以是当前像素点的水平边界的相邻像素点,也可以是当前像素点的水平边界的非相邻像素点。当前像素点的周围像素点,可以是位于当前色度块中的像素点,也可以是位于当前色度块的相邻色度块中的像素点。当前像素点的周围像素点,可以是当前像素点上侧的像素点,也可以是当前像素点下侧的像素点,对此当前像素点的周围像素点的位置不做限制。参见图4c所示,为当前像素点的水平边界的示意图,若当前像素点是当前色度块中的p0,则当前像素点的周围像素点可以是当前色度块下侧相邻色度块中的q0。或者,当前像素点的周围像素点可以包括p1、p2、p3、q0、q1、q2、q3中的至少一个。
[0265]
示例性的,基于当前像素点的第二色度重建像素值和当前像素点的周围像素点的第二色度重建像素值,就可以确定当前像素点的第三色度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
[0266]
示例性的,在当前色度块启用dbf模式的基础上,针对第二色度重建块中的每个当前像素点,还需要判断当前像素点是否满足dbf模式的水平边界滤波的像素级启用条件。当前像素点满足dbf模式的水平边界滤波的像素级启用条件,可以包括但不限于:当前色度块的水平边界允许dbf滤波,当前像素点的水平边界的边界强度(即bs)大于0。比如说,可以先确定当前色度块的水平边界是否允许dbf滤波,若当前色度块的水平边界不允许dbf滤波,则确定当前像素点不满足dbf模式的水平边界滤波的像素级启用条件,若当前色度块的水平边界允许dbf滤波,则可以确定当前像素点的水平边界的边界强度。若该边界强度大于0,则确定当前像素点满足dbf模式的水平边界滤波的像素级启用条件,若该边界强度等于0,则确定当前像素点不满足dbf模式的水平边界滤波的像素级启用条件。参见图4c和图4d所示,当前色度块的水平边界包括当前像素点的水平边界,当前像素点的水平边界是当前像素点所在一列的边界,而当前色度块的水平边界包括当前色度块的所有列的边界。
[0267]
示例性的,满足以下条件之一的当前色度块的水平边界不需要滤波,即当前色度块的水平边界不允许dbf滤波:若待滤波的水平边界(待滤波的水平边界即当前色度块的水平边界)是图像边界,则该水平边界不需要滤波。若待滤波的水平边界是片边界且跨片环路滤波允许标志为0,则该水平边界不需要滤波。若待滤波的水平边界是色度滤波边界,且该色度滤波边界不是色度编码块或者色度变换块的边界,且该色度滤波边界对应的亮度滤波边界不是亮度编码块的边界,则该水平边界不需要滤波。若待滤波的水平边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该水平边界不需要滤波。若待滤波的水平边界所在的编码单元的串复制帧内预测模式标志为1,则该水平边界不需要滤波。
[0268]
步骤s62、基于每个当前像素点的第三色度重建像素值确定第三色度重建块。
[0269]
比如说,针对第二色度重建块中的每个当前像素点,在得到所有当前像素点的第
三色度重建像素值后,可以将所有当前像素点的第三色度重建像素值组成第三色度重建块。
[0270]
步骤s63、若当前像素点满足dbf模式的水平边界滤波的像素级启用条件,则从当前像素点的水平边界的相邻色度块中确定与当前像素点对应的参考像素点。
[0271]
示例性的,参考像素点可以是相邻色度块中与当前像素点相邻的像素点,参考像素点也可以是相邻色度块中与当前像素点非相邻的像素点,参考像素点也可以是相邻色度块中与当前像素点对称的像素点,对此不做限制。参见图4c所示,为当前像素点的水平边界的示意图,若当前像素点是当前色度块中的p0,则参考像素点可以是相邻色度块中的q0,若当前像素点是当前色度块中的p1,则参考像素点可以是相邻色度块中的q1,以此类推。
[0272]
步骤s64、基于相邻色度块中的参考像素点的第二色度重建像素值和参考像素点的周围像素点的第二色度重建像素值确定参考像素点的第三色度重建像素值。
[0273]
示例性的,参考像素点的周围像素点可以是当前像素点的水平边界(也即参考像素点的水平边界)周围的像素点。比如说,参见图4c所示,为当前像素点/参考像素点的水平边界的示意图,若参考像素点是相邻色度块中的q0,则参考像素点的周围像素点可以是当前色度块中的p0。或参考像素点的周围像素点可以包括p0、p1、p2、p3、q1、q2、q3中的至少一个。
[0274]
示例性的,基于参考像素点的第二色度重建像素值和参考像素点的周围像素点的第二色度重建像素值,就可以确定参考像素点的第三色度重建像素值,对此确定方式不做限制,可以采用dbf滤波的实现方式,而dbf滤波的实现方式可以参见后续实施例。
[0275]
步骤504、若当前色度块启用esao模式,则对该第三色度重建块进行esao滤波,得到第四色度重建块;否则,若当前色度块启用sao模式,则对该第三色度重建块进行sao滤波,得到第四色度重建块;否则(即当前色度块未启用esao模式,且当前色度块未启用esao模式),基于该第三色度重建块确定第四色度重建块。
[0276]
比如说,可以先确定当前色度块是否启用esao模式,若启用esao模式,则对该第三色度重建块进行esao滤波,得到第四色度重建块。若未启用esao模式,则确定当前色度块是否启用sao模式,若启用sao模式,则对该第三色度重建块进行sao滤波,得到第四色度重建块。若未启用sao模式,则将第三色度重建块作为第四色度重建块。
[0277]
示例性的,对该第三色度重建块进行esao滤波,得到第四色度重建块,可以包括但不限于:基于该第三色度重建块确定增强样值偏移补偿块,并对该增强样值偏移补偿块内的各个像素点的色度重建像素值进行操作,得到偏移后的色度重建像素值。基于各个像素点的偏移后的色度重建像素值确定第四色度重建块,即将这些偏移后的色度重建像素值组成第四色度重建块。当然,上述只是esao滤波的示例,对此esao滤波的实现方式不做限制。
[0278]
示例性的,对该第三色度重建块进行sao滤波,得到第四色度重建块,可以包括但不限于:基于该第三色度重建块确定基本样值偏移补偿块,确定与该基本样值偏移补偿块对应的基本样值偏移补偿信息,并基于该基本样值偏移补偿信息对该基本样值偏移补偿块内的各个像素点的色度重建像素值进行操作,得到偏移后的色度重建像素值。基于各个像素点的偏移后的色度重建像素值确定第四色度重建块,即将这些偏移后的色度重建像素值组成第四色度重建块。当然,上述只是sao滤波的示例,对此sao滤波的实现方式不做限制。
[0279]
步骤505、若当前色度块启用ccsao模式,则对该第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于该第四色度重建块确定第五色度重建块,也就是说,若当
前色度块未启用ccsao模式,则将该第四色度重建块直接作为第五色度重建块。
[0280]
示例性的,对该第四色度重建块进行ccsao滤波,得到第五色度重建块,可以包括但不限于:基于该第四色度重建块确定跨分量样值偏移补偿块,并对该跨分量样值偏移补偿块内的各个像素点的色度重建像素值进行操作,得到跨分量偏移后样本值。基于各个像素点的跨分量偏移后样本值确定第五色度重建块,即将这些像素点的跨分量偏移后样本值组成第五色度重建块。当然,上述只是ccsao滤波的示例,对此ccsao滤波的实现方式不做限制。
[0281]
比如说,基于第四色度重建块和第四色度重建块对应的第五亮度重建块(第五亮度重建块的获取方式可以参见实施例一,在此不再赘述),确定第四色度重建块的分类;基于该分类确定第四色度重建块对应的跨分量样值偏移补偿块,并对跨分量样值偏移补偿块内的各个像素点的色度重建像素值进行操作,得到跨分量偏移后样本值;基于各个像素点的跨分量偏移后样本值确定所述第五色度重建块。
[0282]
步骤506、若当前色度块启用alf模式,则对第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于第五色度重建像素值确定第六色度重建块,也就是说,若当前色度块未启用alf模式,则可以将第五色度重建块作为第六色度重建块,即经过滤波后的重建块。
[0283]
示例性的,对第五色度重建块进行alf滤波,得到第六色度重建块,可以包括但不限于:基于该第五色度重建块确定自适应修正滤波块,并确定与该自适应修正滤波块对应的自适应修正滤波系数,基于该自适应修正滤波系数对该自适应修正滤波块内的各个像素点的色度重建像素值进行自适应修正滤波,得到自适应修正滤波后的色度重建像素值。基于各个像素点的自适应修正滤波后的色度重建像素值确定第六色度重建块,即将这些自适应修正滤波后的色度重建像素值组成第六色度重建块。当然,上述只是alf滤波的示例,对此不做限制。
[0284]
在一种可能的实施方式中,还可以获取esao允许标志位(允许标志位也可以称为使能标志位),该esao允许标志位允许当前色度块启用esao模式,或者,该esao允许标志位禁止当前色度块启用esao模式。比如说,若esao允许标志位为第一取值(如1),则允许当前色度块启用esao模式,若esao允许标志位为第二取值(如0),则禁止当前色度块启用esao模式。esao允许标志位可以是序列头级的esao允许标志位、或pps级的esao允许标志位、或图像头级的esao允许标志位、或帧级的esao允许标志位、或片头级的esao允许标志位、或ctu级的esao允许标志位、或cu级的esao允许标志位。当然,上述只是几个示例,对esao允许标志位的高层语法不做限制。
[0285]
还可以获取sao允许标志位,该sao允许标志位允许当前色度块启用sao模式,或者,该sao允许标志位禁止当前色度块启用sao模式。比如说,若sao允许标志位为第一取值(如1),则允许当前色度块启用sao模式,若sao允许标志位为第二取值(如0),则禁止当前色度块启用sao模式。示例性的,sao允许标志位可以是序列头级的sao允许标志位、或pps级的sao允许标志位、或图像头级的sao允许标志位、或帧级的sao允许标志位、或片头级的sao允许标志位、或ctu级的sao允许标志位、或cu级的sao允许标志位。当然,上述只是几个示例,对sao允许标志位的高层语法不做限制。
[0286]
还可以获取ccsao允许标志位,ccsao允许标志位允许当前色度块启用ccsao模式,
或禁止当前色度块启用ccsao模式。比如说,若ccsao允许标志位为第一取值(如1),则允许当前色度块启用ccsao模式,若ccsao允许标志位为第二取值(如0),则禁止当前色度块启用ccsao模式。ccsao允许标志位可以是序列头级的ccsao允许标志位、或pps级的ccsao允许标志位、或图像头级的ccsao允许标志位、或帧级的ccsao允许标志位、或片头级的ccsao允许标志位、或ctu级的ccsao允许标志位、或cu级的ccsao允许标志位。当然,上述只是几个示例,对ccsao允许标志位的高层语法不做限制。
[0287]
还可以获取alf允许标志位,该alf允许标志位允许当前色度块启用alf模式,或者,该alf允许标志位禁止当前色度块启用alf模式。比如说,若alf允许标志位为第一取值(如1),则允许当前色度块启用alf模式,若alf允许标志位为第二取值(如0),则禁止当前色度块启用alf模式。示例性的,alf允许标志位可以是序列头级的alf允许标志位、或pps级的alf允许标志位、或图像头级的alf允许标志位、或帧级的alf允许标志位、或片头级的alf允许标志位、或ctu级的alf允许标志位、或cu级的alf允许标志位。当然,上述只是几个示例,对alf允许标志位的高层语法不做限制。
[0288]
还可以获取dbf允许标志位,该dbf允许标志位允许当前色度块启用dbf模式,或者,该dbf允许标志位禁止当前色度块启用dbf模式;比如说,若dbf允许标志位为第一取值,则允许当前色度块启用dbf模式,若dbf允许标志位为第二取值,则禁止当前色度块启用dbf模式。示例性的,dbf允许标志位可以是图像头级的dbf允许标志位。当然,上述只是dbf允许标志位的示例,对dbf允许标志位的高层语法不做限制。比如说,还可以是序列头级、或pps级、或帧级、或片头级、或ctu级、或cu级的dbf允许标志位。
[0289]
由以上技术方案可见,本技术实施例中,若当前色度块启用dbf模式,则对第一色度重建块进行垂直dbf滤波,得到第二色度重建块,若当前色度块启用dbf模式,则对第二色度重建块进行水平dbf滤波,得到第三色度重建块,若当前色度块启用esao模式,则对第三色度重建块进行esao滤波,得到第四色度重建块(或若当前色度块启用sao模式,则对第三色度重建块进行sao滤波,得到第四色度重建块),若当前色度块启用ccsao模式,则对第四色度重建块进行ccsao滤波,得到第五色度重建块,若当前色度块启用alf模式,则对第五色度重建块进行alf滤波,得到第六色度重建块。综上可以看出,可以依次对当前色度块进行垂直dbf滤波、水平dbf滤波、esao滤波(或sao滤波)、ccsao滤波、alf滤波等滤波过程,从而提出合理的滤波方式,避免出现滤波效果不佳,编码性能比较差等问题,即可以提高滤波效果,提高编码性能,不会出现过滤波现象,即滤波后的像素值不会远大于或远小于滤波前的像素值。在对像素值进行上述各种滤波处理后,滤波后的像素值更加接近真实像素,能够提升图像质量。
[0290]
实施例3:本技术实施例中提出一种编解码方法,该编解码方法可以应用于编码端或者解码端,可以对当前亮度块(即亮度分量)和当前色度块(即色度分量)进行处理。
[0291]
对于当前亮度块(即亮度分量)来说,原始亮度重建块/第一亮度重建块可以记为y1(i);
[0292]
第一步:若当前亮度块启用dbf模式,则y1(i)可以通过垂直dbf滤波后得到y2(i);否则,y2(i)=y1(i),y2(i)可以为上述实施例的第二亮度重建块。
[0293]
第二步:若当前亮度块启用垂直dbr模式,则y2(i)可以通过垂直dbr滤波后得到y3(i);否则,y3(i)=y2(i),y3(i)可以为上述实施例的第三亮度重建块。
[0294]
第三步:若当前亮度块启用dbf模式,则y3(i)可以通过水平dbf滤波后得到y4(i);否则,y4(i)=y3(i),y4(i)可以为上述实施例的第四亮度重建块。
[0295]
第四步:若当前亮度块启用水平dbr模式,则y4(i)可以通过水平dbr滤波后得到y5(i);否则,y5(i)=y4(i),y5(i)可以为上述实施例的第五亮度重建块。
[0296]
第五步:若当前亮度块启用esao模式,则y5(i)可以通过esao滤波后得到y6(i),否则,若当前亮度块启用sao模式,则y5(i)可以通过sao滤波后得到y6(i),否则(即未启用esao模式和sao模式),y6(i)=y5(i),y6(i)可以为上述实施例的第六亮度重建块。
[0297]
第六步:若当前亮度块启用alf模式,则y6(i)可以通过alf滤波后得到y7(i),否则,y7(i)=y6(i),y7(i)可以为上述实施例的第七亮度重建块。
[0298]
在上述过程中,i表示亮度重建块中的像素点,即i的取值范围是1-像素点总数量。
[0299]
对于当前色度块(即色度分量)来说,原始色度重建块/第一色度重建块可以记为c1(i);
[0300]
第一步:若当前色度块启用dbf模式,则c1(i)可以通过垂直dbf滤波后得到c2(i);否则,c2(i)=c1(i),c2(i)可以为上述实施例的第二色度重建块。
[0301]
第二步:若当前色度块启用dbf模式,则c2(i)可以通过水平dbf滤波后得到c3(i);否则,c3(i)=c2(i),c3(i)可以为上述实施例的第三色度重建块。
[0302]
第三步:若当前色度块启用esao模式,则c3(i)可以通过esao滤波后得到c4(i),否则,若当前色度块启用sao模式,则c3(i)可以通过sao滤波后得到c4(i),否则(即未启用esao模式和sao模式),c4(i)=c3(i),c4(i)可以为上述实施例的第四色度重建块。
[0303]
第四步:若当前色度块启用ccsao模式,则c4(i)可以通过ccsao滤波后得到c5(i);否则,c5(i)=c4(i),c5(i)可以为上述实施例的第五色度重建块。
[0304]
示例性的,在c4(i)通过ccsao滤波得到c5(i)的过程中,可以基于c4(i)和y5(i)进行ccsao滤波,得到c5(i),y5(i)为上述实施例的第五亮度重建块,即经过水平dbr滤波后的亮度重建块。比如说,ccsao滤波的基本过程如下:对于需要进行ccsao滤波的色度重建块c4(i),基于对应位置的第五亮度重建块y5(i)和当前色度像素值(经过esao之后的色度像素值c4(i)),确定当前色度像素的分类。基于分类,确定当前色度像素的补偿值。将当前色度像素值加上该补偿值,得到ccsao滤波后的色度像素值(c5(i))。
[0305]
第五步:若当前色度块启用alf模式,则c5(i)可以通过alf滤波后得到c6(i);否则,c6(i)=c5(i),c6(i)可以为上述实施例的第六色度重建块。
[0306]
在上述过程中,i表示色度重建块中的像素点,即i的取值范围是1-像素点总数量。
[0307]
针对当前亮度块(即亮度分量)和当前色度块(即色度分量)的处理过程,可以参见图6所示,在图6中,y为亮度分量,cb和cr为两个色度分量。针对亮度分量y来说,依次进行垂直dbf滤波、垂直dbr滤波、水平dbf滤波、水平dbr滤波、esao滤波或sao滤波、alf滤波等,得到与亮度分量y对应的亮度分量y’,即最终滤波后的亮度分量。
[0308]
针对色度分量cb来说,可以依次进行垂直dbf滤波、水平dbf滤波、esao滤波(或sao滤波)、ccsao滤波(ccsao滤波的输入包括水平dbr滤波后的亮度分量)、alf滤波等,得到与色度分量cb对应的色度分量cb’,即最终滤波后的色度分量cb。
[0309]
针对色度分量cr来说,可以依次进行垂直dbf滤波、水平dbf滤波、esao滤波(或sao滤波)、ccsao滤波(ccsao滤波的输入包括水平dbr滤波后的亮度分量)、alf滤波等,得到与
色度分量cr对应的色度分量cr’,即最终滤波后的色度分量cr。
[0310]
在上述实施例中,dbf为deblocking filter,即去块效应滤波;dbr为deblocking refinement,即去块滤波调整;esao为enhanced sample adaptive offset,即增强样值偏移补偿;sao为sample adaptive offset,即样值偏移补偿;ccsao为cross-component sample adaptive offset,即跨分量样值偏移补偿;alf为adaptive leveling filter,即自适应修正滤波。
[0311]
实施例4:高层语法(如序列头高层语法)的控制可以参见表1所示,也就是说,编码端在序列头编码表1所示的高层语法,解码端从序列头解码表1所示的高层语法。
[0312]
表1
[0313][0314][0315]
在表1中,sao_enable_flag是sao允许标志位,当前亮度块和当前色度块可以共用同一个sao允许标志位,也可以分开设置当前亮度块的sao允许标志位和当前色度块的sao允许标志位,表1中以共用同一个sao允许标志位为例。
[0316]
在表1中,alf_enable_flag是alf允许标志位,当前亮度块和当前色度块可以共用同一个alf允许标志位,也可以分开设置当前亮度块的alf允许标志位和当前色度块的alf允许标志位,表1中以共用同一个alf允许标志位为例。
[0317]
在表1中,esao_enable_flag是esao允许标志位,当前亮度块和当前色度块可以共用同一个esao允许标志位,也可以分开设置当前亮度块的esao允许标志位和当前色度块的esao允许标志位,表1中以共用同一个esao允许标志位为例。
[0318]
在表1中,ccsao_enable_flag是ccsao允许标志位,当前亮度块和当前色度块可以共用同一个ccsao允许标志位,也可以分开设置当前亮度块的ccsao允许标志位和当前色度块的ccsao允许标志位,以共用同一个ccsao允许标志位为例。
[0319]
从表1可以看出,序列头高层语法中并没有dbf工具和dbr工具的序列头开关,即不存在序列头的dbf允许标志位、垂直dbr允许标志位和水平dbr允许标志位。
[0320]
在表1中,sao_enable_flag是样值偏移补偿允许标志,为二值变量,值为
‘1’
表示可使用样值偏移补偿,值为
‘0’
表示不应使用样值偏移补偿。
[0321]
alf_enable_flag是自适应修正滤波允许标志,为二值变量,值为
‘1’
表示可使用自适应修正滤波,值为
‘0’
表示不应使用自适应修正滤波。
[0322]
esao_enable_flag是增强样值偏移补偿允许标志,为二值变量,值为
‘1’
表示可使用增强样值偏移补偿,值为
‘0’
表示不应使用增强样值偏移补偿。
[0323]
ccsao_enable_flag是跨分量样值偏移补偿允许标志位,为二值变量,值为
‘1’
表示可使用跨分量样值偏移补偿,值为
‘0’
表示不应使用跨分量样值偏移补偿。
[0324]
ealf_enable_flag是增强自适应修正滤波允许标志,为二值变量,值为
‘1’
表示应使用增强自适应修正滤波,值为
‘0’
表示不应使用增强自适应修正滤波。ealfenableflag的值等于ealf_enable_flag的值,如果位流中不存在ealf_enable_flag,则ealfenableflag的值为0。
[0325]
实施例5:高层语法(如图像头高层语法)的控制可以参见表2所示,也就是说,编码端在图像头编码表2所示的高层语法,解码端从图像头解码表2所示的高层语法。
[0326]
表2
[0327]
deblocking_filter_disable_flagu(1)
[0328]
在表2中,deblocking_filter_disable_flag是dbf允许标志位,当前亮度块和当前色度块可以共用同一个dbf允许标志位,也可以分开设置当前亮度块的dbf允许标志位和当前色度块的dbf允许标志位,以共用同一个dbf允许标志位为例。
[0329]
综上所述,针对dbf模式来说,可以在图像头中编码/解码表2所示的高层语法,在表2中,deblocking_filter_disable_flag可以是去块滤波禁用标志,为一个二值变量,值为
‘1’
表示不应使用去块效应滤波,值为
‘0’
表示应使用去块效应滤波。
[0330]
实施例6:高层语法(如图像头高层语法)的控制可以参见表3所示,也就是说,编码端在图像头编码表3所示的高层语法,解码端从图像头解码表3所示的高层语法。
[0331]
表3
[0332][0333]
表3是dbr模式的相关高层语法,也就是说,针对dbr模式来说,可以在帧内或帧间的图像头编码/解码表3所示的高层语法。比如说,当满足如下两个条件时,才进行dbr模式的图像头的相关高层语法的编码/解码,也就是说,当满足如下两个条件时,编码端在图像头编码表3所示的高层语法,解码端从图像头解码表3所示的高层语法。针对dbr模式的高层语法来说,可以是针对当前亮度块的高层语法,即当前色度块不进行dbr模式。
[0334]
条件1:dbf允许标志位允许启用dbf模式,比如说,deblocking_filter_disable_flag为0。条件2:编码比特流中携带的档次标识(如profile_id)大于或者等于预设标识号,比如说,profile_id==0x32||profile_id==0x30,即档次标识为48或50,即当前档次为加强8位档次(high 8bit profile)或加强10位档次(high 10bit profile),加强8位档次的档次标识为48,加强10位档次的档次标识为50。显然,可以将预设标识号设置为48,若编码比特流中携带的档次标识大于或者等于预设标识号48,则表示允许进行dbr模式。
[0335]
参见表3所示,针对图像头高层语法包括的dbf模式的相关内容,可以包括:
[0336]
picture_dbr_v_enable_flag是垂直dbr允许标志位,是图像级去块滤波垂直调整允许标志,是二值变量,值为
‘1’
表示当前图像可使用去块滤波垂直调整,值为
‘0’
表示当前图像不应使用去块滤波垂直调整。picturedbrvenableflag的值等于picture_dbr_v_enable_flag的值,如果位流中不存在picture_dbr_v_enable_flag,则phdbrvenableflag的值为0。
[0337]
picture_alt_dbr_v_enable_flag是垂直dbr允许标志位,picture_alt_dbr_v_
enable_flag是图像级增强去块滤波垂直调整允许标志,是一个二值变量,值为
‘1’
可以表示当前图像应使用增强去块滤波垂直调整,值为
‘0’
可以表示当前图像不应使用增强去块滤波垂直调整。picturealtdbrvenableflag的值等于picture_alt_dbr_v_enable_flag的值,如果位流中不存在picture_alt_dbr_v_enable_flag,则picturealtdbrvenableflag的值为0。
[0338]
综上可以看出,在表3中,垂直dbr允许标志位可以包括picture_dbr_v_enable_flag和picture_alt_dbr_v_enable_flag。在此基础上,若picture_dbr_v_enable_flag的值为1,和/或,picture_alt_dbr_v_enable_flag的值为1,则表示垂直dbr允许标志位允许当前亮度块启用垂直dbr模式。若picture_dbr_v_enable_flag的值为0,且picture_alt_dbr_v_enable_flag的值为0,则表示垂直dbr允许标志位禁止当前亮度块启用垂直dbr模式。
[0339]
高层语法还可以只包括picture_dbr_v_enable_flag或picture_alt_dbr_v_enable_flag,若高层语法只包括picture_dbr_v_enable_flag,当picture_dbr_v_enable_flag的值为1,表示垂直dbr允许标志位允许当前亮度块启用垂直dbr模式,当picture_dbr_v_enable_flag的值为0,表示垂直dbr允许标志位禁止当前亮度块启用垂直dbr模式。或者,若高层语法只包括picture_alt_dbr_v_enable_flag,当picture_alt_dbr_v_enable_flag的值为1,表示垂直dbr允许标志位允许当前亮度块启用垂直dbr模式,当picture_alt_dbr_v_enable_flag的值为0,表示垂直dbr允许标志位禁止当前亮度块启用垂直dbr模式。
[0340]
在上述实施例中,picture_dbr_v_enable_flag是图像级去块滤波垂直调整允许标志,即垂直dbr模式的去块滤波调整模式的使能标志位,若picture_dbr_v_enable_flag的值为1,则在上述实施例中,需要确定当前像素点是否满足垂直dbr模式的去块滤波调整模式的像素级启用条件,确定方式参见上述实施例,在此不再赘述。若picture_dbr_v_enable_flag的值为0,则在上述实施例中,直接确定当前像素点不满足垂直dbr模式的去块滤波调整模式的像素级启用条件。picture_alt_dbr_v_enable_flag是图像级增强去块滤波垂直调整允许标志,即垂直dbr模式的增强去块滤波调整模式的使能标志位,若picture_alt_dbr_v_enable_flag的值为1,则在上述实施例中,需要确定当前像素点是否满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,确定方式参见上述实施例,在此不再赘述。若picture_alt_dbr_v_enable_flag的值为0,则在上述实施例中,直接确定当前像素点不满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件。
[0341]
dbr_v_threshold_minus1是垂直调整阈值,即去块滤波调整模式的垂直调整阈值和增强去块滤波调整模式的垂直调整阈值,dbr_v_threshold_minus1的取值范围是0-1。dbrvthreshold的值等于dbr_v_threshold_minus1的值加1,如果位流中不存在dbr_v_threshold_minus1,则dbrvthreshold的值为0。
[0342]
dbr_v_offset0_minus1是垂直调整偏移值0,dbr_v_offset0_minus1的取值范围是0-3。dbrvoffset0的值等于dbr_v_offset0_minus1的值加1后的负值,如果位流中不存在dbr_v_offset0_minus1,则dbrvoffset0的值为0。
[0343]
dbr_v_offset1_minus1是垂直调整偏移值1,dbr_v_offset1_minus1的取值范围是0-3。dbrvoffset1的值等于dbr_v_offset1_minus1的值加1,如果位流中不存在dbr_v_offset1_minus1,则dbrvoffset1的值为0。
[0344]
dbr_v_alt_offset0_minus1是增强垂直调整偏移值0,取值范围是0-3。dbrvaltoffset0的值等于dbr_v_alt_offset0_minus1的值加1后的负值,如果位流中不存在dbr_v_alt_offset0_minus1,则dbrvaltoffset0的值为0。
[0345]
dbr_v_alt_offset1_minus1是增强垂直调整偏移值1,取值范围是0-3。dbrvaltoffset1的值等于dbr_v_alt_offset1_minus1的值加1,如果位流中不存在dbr_v_alt_offset1_minus1,则dbrvaltoffset1的值为0。
[0346]
picture_dbr_h_enable_flag是水平dbr允许标志位,是图像级去块滤波水平调整允许标志,是二值变量,值为
‘1’
表示当前图像可使用去块滤波水平调整,值为
‘0’
表示当前图像不应使用去块滤波水平调整。picturedbrhenableflag的值等于picture_dbr_h_enable_flag的值,如果位流中不存在picture_dbr_h_enable_flag,则picturedbrhenableflag的值为0。
[0347]
picture_alt_dbr_h_enable_flag是水平dbr允许标志位,picture_alt_dbr_h_enable_flag是图像级增强去块滤波水平调整允许标志,是一个二值变量,值为
‘1’
可以表示当前图像应使用增强去块滤波水平调整,值为
‘0’
可以表示当前图像不应使用增强去块滤波水平调整。picturealtdbrhenableflag的值等于picture_alt_dbr_h_enable_flag的值,如果位流中不存在picture_alt_dbr_h_enable_flag,则picturealtdbrhenableflag的值为0。
[0348]
综上可以看出,在表3中,水平dbr允许标志位可以包括picture_dbr_h_enable_flag和picture_alt_dbr_h_enable_flag。在此基础上,若picture_dbr_h_enable_flag的值为1,和/或,picture_alt_dbr_h_enable_flag的值为1,则表示水平dbr允许标志位允许当前亮度块启用水平dbr模式。若picture_dbr_h_enable_flag的值为0,且picture_alt_dbr_h_enable_flag的值为0,则表示水平dbr允许标志位禁止当前亮度块启用水平dbr模式。
[0349]
高层语法还可以只包括picture_dbr_h_enable_flag或picture_alt_dbr_h_enable_flag,若高层语法只包括picture_dbr_h_enable_flag,当picture_dbr_h_enable_flag的值为1时,表示水平dbr允许标志位允许当前亮度块启用水平dbr模式,当picture_dbr_h_enable_flag的值为0时,表示水平dbr允许标志位禁止当前亮度块启用水平dbr模式。或者,若高层语法只包括picture_alt_dbr_h_enable_flag,当picture_alt_dbr_h_enable_flag的值为1,表示水平dbr允许标志位允许当前亮度块启用水平dbr模式,当picture_alt_dbr_h_enable_flag的值为0时,表示水平dbr允许标志位禁止当前亮度块启用水平dbr模式。
[0350]
在上述实施例中,picture_dbr_h_enable_flag是图像级去块滤波水平调整允许标志,即水平dbr模式的去块滤波调整模式的使能标志位,若picture_dbr_h_enable_flag的值为1,则在上述实施例中,需要确定当前像素点是否满足水平dbr模式的去块滤波调整模式的像素级启用条件,确定方式参见上述实施例,在此不再赘述。若picture_dbr_h_enable_flag的值为0,则在上述实施例中,直接确定当前像素点不满足水平dbr模式的去块滤波调整模式的像素级启用条件。
[0351]
picture_alt_dbr_h_enable_flag是图像级增强去块滤波水平调整允许标志,即水平dbr模式的增强去块滤波调整模式的使能标志位,若picture_alt_dbr_h_enable_flag
的值为1,则在上述实施例中,需要确定当前像素点是否满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,确定方式参见上述实施例,在此不再赘述。若picture_alt_dbr_h_enable_flag的值为0,则在上述实施例中,直接确定当前像素点不满足水平dbr模式的增强去块滤波调整模式的像素级启用条件。
[0352]
dbr_h_threshold_minus1是水平调整阈值,即去块滤波调整模式的水平调整阈值和增强去块滤波调整模式的水平调整阈值,dbr_h_threshold_minus1的取值范围是0-1。dbrhthreshold的值等于dbr_h_threshold_minus1的值加1,如果位流中不存在dbr_h_threshold_minus1,则dbrhthreshold的值为0。
[0353]
dbr_h_offset0_minus1是水平调整偏移值0,dbr_h_offset0_minus1的取值范围是0-3。dbrhoffset0的值等于dbr_h_offset0_minus1的值加1后的负值,如果位流中不存在dbr_h_offset0_minus1,则dbrhoffset0的值为0。
[0354]
dbr_h_offset1_minus1是水平调整偏移值1,dbr_h_offset1_minus1的取值范围是0-3。dbrhoffset1的值等于dbr_h_offset1_minus1的值加1,如果位流中不存在dbr_h_offset1_minus1,则dbrhoffset1的值为0。
[0355]
dbr_h_alt_offset0_minus1是增强水平调整偏移值0,取值范围是0-3。dbrhaltoffset0的值等于dbr_h_alt_offset0_minus1的值加1后的负值,如果位流中不存在dbr_h_alt_offset0_minus1,则dbrhaltoffset0的值为0。
[0356]
dbr_h_alt_offset1_minus1是增强水平调整偏移值1,取值范围是0-3。dbrhaltoffset1的值等于dbr_h_alt_offset1_minus1的值加1,如果位流中不存在dbr_h_alt_offset1_minus1,则dbrhaltoffset1的值为0。
[0357]
在上述实施例的表1、表2和表3中,u(n)表示n位无符号整数。在表1、表2和表3的语法表中,如果n是“v”,则其位数可以由其他语法元素值确定,对此不再赘述。
[0358]
实施例7:针对去块滤波过程(即dbf滤波和dbr滤波)来说,可以对亮度块和色度块分别进行去块滤波(亮度块可以进行dbf滤波和dbr滤波,色度块可以进行dbf滤波),去块滤波的单位可以是滤波块(即上述实施例的当前亮度块或者当前色度块),可以按照光栅扫描顺序(即从左到右,从上到下的顺序)依次处理每个滤波块,亮度滤波块的尺寸可以是8*8,色度滤波块的尺寸可以是8*8。每个滤波块包括一条垂直边界(即当前亮度块或者当前色度块的垂直边界)和一条水平边界(即当前亮度块或者当前色度块的水平边界),亮度滤波块的每条边界(即垂直边界或者水平边界)的长度为8个亮度样本,平均分为8段,色度滤波块的每条边界(即垂直边界或者水平边界)的长度是8个色度样本,平均分为8段。
[0359]
针对每个滤波块,首先滤波垂直边界,然后滤波水平边界。针对每条边界来说,先按照实施例8判断该边界(即当前亮度块或者当前色度块的边界,如垂直边界或者水平边界等)是否需要滤波。如果需要滤波,则按照实施例9确定去块滤波调整参数,并按照实施例10计算该条边界的每段边界(每段边界也就是当前像素点的边界)的滤波强度,然后,根据该段边界的滤波强度进行去块滤波,去块滤波(即dbf滤波和dbr滤波)的过程可以参见实施例11-实施例17。否则(即不需要滤波),可以直接将补偿后样本的值作为滤波后样本的值。
[0360]
示例性的,当前边界两侧的样值可能在以前的去块滤波过程中已经被修改,当前边界的滤波的输入为这些可能被修改的样值,比如说,当前滤波块的垂直边界的滤波过程中修改的样值可以作为水平边界滤波过程的输入,可以参见实施例1和实施例2,在此不再
赘述。
[0361]
实施例8:是否跳过去块滤波(即dbf滤波和dbr滤波)的判断。满足以下条件之一的边界(如垂直边界或者水平边界,这里的边界是指当前亮度块或者当前色度块的边界,而不是当前像素点的边界)不需要滤波:如果待滤波边界是图像边界,则该边界不需要滤波。如果待滤波边界是片边界且跨片环路滤波允许标志为0,则该边界不需要滤波。如果待滤波边界是亮度滤波边界,且该亮度滤波边界不是亮度编码块或亮度变换块的边界,则该边界不需要滤波。如果待滤波边界是色度滤波边界,且该色度滤波边界不是色度编码块或色度变换块的边界,且该色度滤波边界对应的亮度滤波边界不是亮度编码块的边界,则该边界不需要滤波。如果待滤波边界是亮度滤波边界,且该亮度滤波边界所在的编码单元的子块变换标志为1,且该亮度滤波边界不是亮度编码块的边界,则该边界不需要滤波。如果待滤波边界所在的编码单元的串复制帧内预测模式标志为1,则该边界不需要滤波。
[0362]
实施例9:确定去块滤波调整参数。比如说,可以确定如下去块滤波调整参数:dbrthresold、dbroffset0、dbroffset1、dbraltoffset0和dbraltoffset1。示例性的,如果当前边界为垂直边界且picturedbrvenableflag为1,或当前边界为水平边界且picturedbrhenableflag为1,则picturedbrenableflag的值为1;否则,picturedbrenableflag的值为0。如果当前边界为垂直边界且picturealtdbrvenableflag为1,或当前边界为水平边界且picturealtdbrhenableflag为1,则picturealtdbrenableflag的值为1;否则,picturealtdbrenableflag的值为0。
[0363]
综上可以看出,如果垂直dbr允许标志位表示允许启用垂直dbr滤波(即当前边界为垂直边界且picturedbrvenableflag为1,表示允许启用垂直dbr滤波的去块滤波调整模式,或,当前边界为垂直边界且picturealtdbrvenableflag为1,表示允许启用垂直dbr滤波的增强去块滤波调整模式),则picturedbrenableflag的值为1,在值为1时,用于表示需要启用dbr滤波,即需要启用垂直dbr滤波和/或水平dbr滤波。如果水平dbr允许标志位表示允许启用水平dbr滤波(即当前边界为水平边界且picturedbrhenableflag为1,表示允许启用水平dbr滤波的去块滤波调整模式,或当前边界为水平边界且picturealtdbrhenableflag为1,表示允许启用水平dbr滤波的增强去块滤波调整模式),则picturedbrenableflag的值为1,用于表示需要启用dbr滤波,即需要启用垂直dbr滤波和/或水平dbr滤波。
[0364]
示例性的,对于垂直边界来说,dbrthreshold=dbrvthreshold,dbroffset0=dbrvoffset0,dbroffset1=dbrvoffset1,dbraltoffset0=dbrvaltoffset0,dbraltoffset1=dbrvaltoffset1。
[0365]
参见上述实施例,dbrvthreshold用于表示去块滤波调整模式的垂直调整阈值和增强去块滤波调整模式的垂直调整阈值,二者为同一个垂直调整阈值,dbrvoffset0用于表示去块滤波调整模式的第一垂直调整偏移值,dbrvoffset1用于表示去块滤波调整模式的第二垂直调整偏移值,dbrvaltoffset0用于表示增强去块滤波调整模式的第一增强垂直调整偏移值,dbrvaltoffset1用于表示增强去块滤波调整模式的第二增强垂直调整偏移值。
[0366]
示例性的,对于水平边界来说,dbrthreshold=dbrhthreshold,dbroffset0=dbrhoffset0,dbroffset1=dbrhoffset1,dbraltoffset0=dbrhaltoffset0,dbraltoffset1=dbrhaltoffset1。
[0367]
参见上述实施例,dbrhthreshold用于表示去块滤波调整模式的水平调整阈值和
增强去块滤波调整模式的水平调整阈值,二者为同一个水平调整阈值,dbrhoffset0用于表示去块滤波调整模式的第一水平调整偏移值,dbrhoffset1用于表示去块滤波调整模式的第二水平调整偏移值,dbrhaltoffset0用于表示增强去块滤波调整模式的第一增强水平调整偏移值,dbrhaltoffset1用于表示增强去块滤波调整模式的第二增强水平调整偏移值。
[0368]
示例性的,上述垂直边界可以是指当前亮度块的垂直边界,上述水平边界可以是指当前亮度块的水平边界,也就是说,针对当前亮度块的垂直边界包括的每个像素点的垂直边界,均可以使用上述去块滤波调整参数进行滤波处理,针对当前亮度块的水平边界包括的每个像素点的水平边界,均可以使用上述去块滤波调整参数进行滤波处理。
[0369]
实施例10:边界滤波强度的推导过程。参见图4a和图4c所示,示出了当前像素点的垂直边界和水平边界的示意图,垂直边界/水平边界两侧的8个样本分别记为p0、p1、p2、p3和q0、q1、q2、q3。需要注意的是,在计算边界滤波强度bs时,是针对当前像素点计算边界滤波强度bs,即边界是针对当前像素点的边界,而不是针对当前亮度块或者当前色度块的边界。
[0370]
边界滤波强度确定方式一、如果满足以下所有条件,则边界滤波强度bs等于0。
[0371]
a)p0和q0所在的编码单元变换块的量化系数均为0。示例性的,如果p0(或q0)是亮度样本且p0(或q0)所在的编码单元只包含亮度样本,则p0(或q0)所在的编码单元是指包含p0(或q0)的亮度编码单元。如果p0(或q0)是色度样本且p0(或q0)所在的编码单元只包含色度样本,则p0(或q0)所在的编码单元是指包含p0(或q0)对应亮度样本的编码单元;否则(即p0或q0所在的编码单元同时包含亮度样本和色度样本),则p0(或q0)所在的编码单元是指包含p0(或q0)的编码单元。
[0372]
b)p0和q0所在的编码单元的预测类型不是帧内。
[0373]
c)记b
p
和bq分别是p0和q0所在的4*4的亮度编码块,b
p
和bq的运动信息同时满足下列条件1和条件2,或,同时满足条件3、条件4和条件5。
[0374]
1)b
p
和bq分别对应的空域运动信息存储单元的l0参考索引均等于-1,或,b
p
和bq分别对应的空域运动信息存储单元的l0参考索引对应的参考帧为同一帧、且空域运动信息存储单元的l0运动矢量的所有分量的差均小于一个整像素点。
[0375]
2)b
p
和bq分别对应的空域运动信息存储单元的l1参考索引均等于-1,或,b
p
和bq分别对应的空域运动信息存储单元的l1参考索引对应的参考帧为同一帧、且空域运动信息存储单元的l1运动矢量的所有分量的差均小于一个整像素点。
[0376]
3)满足以下条件之一:
[0377]
◆bp
对应的空域运动信息存储单元的l0参考索引等于-1、且bq对应的空域运动信息存储单元的l1参考索引等于-1。
[0378]
◆bp
对应的空域运动信息存储单元的l0参考索引对应的参考帧与bq对应的空域运动信息存储单元的l1参考索引对应的参考帧为同一帧,且b
p
对应的空域运动信息存储单元的l0运动矢量和bq对应的空域运动信息存储单元的l1运动矢量的所有分量的差均小于一个整像素点。
[0379]
4)满足以下条件之一:
[0380]
◆bq
对应的空域运动信息存储单元的l0参考索引等于-1、且b
p
对应的空域运动信息存储单元的l1参考索引等于-1。
[0381]
◆bq
对应的空域运动信息存储单元的l0参考索引对应的参考帧与b
p
对应的空域运
动信息存储单元的l1参考索引对应的参考帧为同一帧,且bq对应的空域运动信息存储单元的l0运动矢量和b
p
对应的空域运动信息存储单元的l1运动矢量的所有分量的差均小于一个整像素点。
[0382]
5)b
p
对应的空域运动信息存储单元的l0参考索引对应的参考帧和bq对应的空域运动信息存储单元的l0参考索引对应的参考帧不为同一帧;b
p
对应的空域运动信息存储单元的l1参考索引对应的参考帧和bq对应的空域运动信息存储单元的l1参考索引对应的参考帧不为同一帧。
[0383]
边界滤波强度确定方式二、否则,按照以下方法计算边界滤波强度bs(简称为边界强度)。
[0384]
a)计算p0和q0所在的编码单元的平均量化参数qp
av
。如果是亮度样本,则可以使用亮度编码块的量化参数;如果是色度样本,则可以使用色度编码块的量化参数。可以令p0所在编码单元的量化参数为qp
p
,q0所在编码单元的量化参数为qpq,在此基础上,平均量化参数可以为:qp
av
=(qp
p
+qpq+1)》》1。
[0385]
b)采用如下公式计算索引indexa和indexb。indexa=clip3(0,63,qp
av

8*(bitdepth

8)+alphacoffset);indexb=clip3(0,63,qp
av

8*(bitdepth

8)+betaoffset)。
[0386]
c)分别根据indexa和indexb查表得到α'和β'的值,再根据bitdepth得到α、β的值,参见如下公式所示:α=α'《《(bitdepth

8);β=β'《《(bitdepth

8)。
[0387]
d)如果deblockingfiltertype(去块滤波类型)为1,且abs(p0-q0)大于或等于4
×
α,则bs等于0;否则,可以按照以下方法计算边界滤波强度bs。
[0388]
1)将fl和fr的值均置为0,计算fs。
[0389][0390]
2)根据fs确定bs。
[0391]

当fs等于6时,如果abs(p
0-p1)小于或等于β/4且abs(q
0-q1)小于或等于β/4且abs(p
0-q0)小于α,则bs等于4;否则bs等于3。
[0392]

当fs等于6且deblockingfiltertype等于1时,如果abs(p0-p1)小于或等于β/4且abs(q0-q1)小于或等于β/4且abs(p0-p3)小于或等于β/2且abs(q0-q3)小于或等于β/2且abs(p0-q0)小于α,则bs等于4;否则bs等于3。
[0393]

当fs等于5时,如果p0等于p1且q0等于q1,则bs等于3;否则bs等于2。
[0394]

当fs等于5且deblockingfiltertype等于1时,如果p0等于p1且q0等于q1且abs(p2-q2)小于α,则bs等于3;否则bs等于2。
[0395]

当fs等于4时,如果fl等于2,则bs等于2;否则bs等于1。
[0396]

当fs等于3时,如果abs(p1–
q1)小于β,则bs等于1;否则bs等于0。
[0397]

当fs为其它值时,bs等于0。
[0398]
3)如果步骤2)得到的bs不等于0且滤波的边界是色度编码块边界,则bs减1。
[0399]
综上可以看出,可以采用边界滤波强度确定方式一确定出当前像素点的边界强度(即当前像素点的垂直边界的边界强度或者水平边界的边界强度),该边界强度可以等于0,也可以采用边界滤波强度确定方式二确定出当前像素点的边界强度(即当前像素点的垂直边界的边界强度或者水平边界的边界强度),该边界强度可以等于0,该边界强度也可以大于0。
[0400]
当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件,包括:当前像素点的垂直边界的边界强度等于0,当前像素点的垂直边界的边界强度等于0可以包括以下情况:
[0401]
若采用边界滤波强度确定方式一确定当前像素点的垂直边界的边界强度等于0,则当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件;若采用边界滤波强度确定方式二确定出当前像素点的垂直边界的边界强度等于0,当前像素点不满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件。或者,若采用边界滤波强度确定方式一确定出当前像素点的垂直边界的边界强度等于0,当前像素点不满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件;若采用边界滤波强度确定方式二确定出当前像素点的垂直边界的边界强度等于0,当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件。或者,若采用边界滤波强度确定方式一确定出当前像素点的垂直边界的边界强度等于0,当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件;若采用边界滤波强度确定方式二确定出当前像素点的垂直边界的边界强度等于0,当前像素点满足垂直dbr模式的增强去块滤波调整模式的像素级启用条件。
[0402]
同理,当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件,包括:当前像素点的水平边界的边界强度等于0,当前像素点的水平边界的边界强度等于0包括以下情况:
[0403]
若采用边界滤波强度确定方式一确定当前像素点的水平边界的边界强度等于0,则当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件;若采用边界滤波强度确定方式二确定出当前像素点的水平边界的边界强度等于0,当前像素点不满足水平dbr模式的增强去块滤波调整模式的像素级启用条件。或者,若采用边界滤波强度确定方式一确定出当前像素点的水平边界的边界强度等于0,当前像素点不满足水平dbr模式的增强去块滤波调整模式的像素级启用条件;若采用边界滤波强度确定方式二确定出当前像素点的水平边界的边界强度等于0,当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件。或者,若采用边界滤波强度确定方式一确定出当前像素点的水平边界的边界强度等于0,当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件;若采用边界滤波强度确定方式二确定出当前像素点的水平边界的边界强度等于0,当前像素点满足水平dbr模式的增强去块滤波调整模式的像素级启用条件。
[0404]
在上述实施例中,采用边界滤波强度确定方式一确定出当前像素点的边界强度的过程,是基于周围块(如4*4块)的变换信息、帧内预测信息、帧间预测信息确定当前像素点的边界强度。采用边界滤波强度确定方式二确定出当前像素点的边界强度的过程,是基于当前像素点所在行或列的周围像素值确定当前像素点的边界强度。
[0405]
实施例11:针对亮度分量,bs等于4时的边界滤波过程。比如说,bs的值为4时,对p0、p1、p2和q0、q1、q2滤波的计算过程如下(p0、p1、p2和q0、q1、q2是滤波后的值):
[0406]
p0=(p2*3+p1*8+p0*10+q0*8+q1*3+16)》》5;
[0407]
p1=(p2*4+p1*5+p0*4+q0*3+8)》》4;
[0408]
p2=(p3*2+p2*2+p1*2+p0*1+q0*1+4)》》3;
[0409]
q0=(p1*3+p0*8+q0*10+q1*8+q2×
3+16)》》5;
[0410]
q1=(p0*3+q0*4+q1*5+q2*4+8)》》4;
[0411]
q2=(p0*1+q0*1+q1*2+q2*2+q3*2+4)》》3。
[0412]
示例性的,上述边界滤波过程是dbf滤波,可以是垂直dbf滤波,也可以是水平dbf滤波。针对垂直dbf滤波,p0、p1、p2和q0、q1、q2是垂直dbf滤波前的像素值,p0、p1、p2和q0、q1、q2是垂直dbf滤波后的像素值。针对水平dbf滤波,p0、p1、p2和q0、q1、q2是水平dbf滤波前的像素值,p0、p1、p2和q0、q1、q2是水平dbf滤波后的像素值。
[0413]
示例性的,如果picturedbrenableflag的值为1,即,需要启用dbr滤波(如启用垂直dbr滤波和/或水平dbr滤波),则在实施例11的基础上,还可以采用实施例17进行dbr滤波。在进行垂直dbr滤波时,垂直dbr滤波前的像素值就是垂直dbf滤波后的像素值。在进行水平直dbr滤波时,水平dbr滤波前的像素值就是水平dbf滤波后的像素值。
[0414]
实施例12:针对亮度分量,bs等于3时的边界滤波过程。比如说,bs的值为3时,对p0、p1和q0、q1滤波的计算过程如下(p0、p1和q0、q1是滤波后的值):
[0415]
p0=(p2+(p1《《2)+(p0《《2)+(p0《《1)+(q0《《2)+q1+8)》》4;
[0416]
p1=((p2《《1)+p2+(p1《《3)+(p0《《2)+q0+8)》》4;
[0417]
q0=(p1+(p0《《2)+(q0《《2)+(q0《《1)+(q1《《2)+q2+8)》》4;
[0418]
q1=((q2《《1)+q2+(q1《《3)+(q0《《2)+p0+8)》》4。
[0419]
示例性的,上述边界滤波过程是dbf滤波,可以是垂直dbf滤波,也可以是水平dbf滤波。针对垂直dbf滤波,p0、p1和q0、q1是垂直dbf滤波前的像素值,p0、p1和q0、q1是垂直dbf滤波后的像素值。针对水平dbf滤波,p0、p1和q0、q1是水平dbf滤波前的像素值,p0、p1和q0、q1是水平dbf滤波后的像素值。
[0420]
示例性的,如果picturedbrenableflag的值为1,即,需要启用dbr滤波(如启用垂直dbr滤波和/或水平dbr滤波),则在实施例12的基础上,还可以采用实施例17进行dbr滤波。在进行垂直dbr滤波时,垂直dbr滤波前的像素值就是垂直dbf滤波后的像素值。在进行水平直dbr滤波时,水平dbr滤波前的像素值就是水平dbf滤波后的像素值。
[0421]
实施例13:针对亮度分量,bs等于2时的边界滤波过程。比如说,bs的值为2时,对p0和q0滤波的计算过程如下(p0和q0是滤波后的值):
[0422]
p0=((p1《《1)+p1+(p0《《3)+(p0《《1)+(q0《《1)+q0+8)》》4;
[0423]
q0=((p0《《1)+p0+(q0《《3)+(q0《《1)+(q1《《1)+q1+8)》》4。
[0424]
上述边界滤波过程是dbf滤波,可以是垂直dbf滤波或水平dbf滤波。针对垂直dbf
滤波,p0和q0是垂直dbf滤波前的像素值,p0和q0是垂直dbf滤波后的像素值。针对水平dbf滤波,p0和q0是水平dbf滤波前的像素值,p0和q0是水平dbf滤波后的像素值。
[0425]
示例性的,如果picturedbrenableflag的值为1,即,需要启用dbr滤波(如启用垂直dbr滤波和/或水平dbr滤波),则在实施例13的基础上,还可以采用实施例17进行dbr滤波。在进行垂直dbr滤波时,垂直dbr滤波前的像素值就是垂直dbf滤波后的像素值。在进行水平直dbr滤波时,水平dbr滤波前的像素值就是水平dbf滤波后的像素值。
[0426]
实施例14:针对亮度分量,bs等于1时的边界滤波过程。比如说,bs的值为1时,对p0和q0滤波的计算过程如下(p0和q0是滤波后的值):
[0427]
p0=((p0《《1)+p0+q0+2)》》2;
[0428]
q0=((q0《《1)+q0+p0+2)》》2。
[0429]
上述边界滤波过程是dbf滤波,可以是垂直dbf滤波或水平dbf滤波。针对垂直dbf滤波,p0和q0是垂直dbf滤波前的像素值,p0和q0是垂直dbf滤波后的像素值。针对水平dbf滤波,p0和q0是水平dbf滤波前的像素值,p0和q0是水平dbf滤波后的像素值。
[0430]
示例性的,如果picturedbrenableflag的值为1,即,需要启用dbr滤波(如启用垂直dbr滤波和/或水平dbr滤波),则在实施例14的基础上,还可以采用实施例17进行dbr滤波。在进行垂直dbr滤波时,垂直dbr滤波前的像素值就是垂直dbf滤波后的像素值。在进行水平直dbr滤波时,水平dbr滤波前的像素值就是水平dbf滤波后的像素值。
[0431]
实施例15:针对亮度分量,bs等于0时的边界滤波过程,该边界滤波过程是针对dbr滤波的增强去块滤波调整模式的滤波过程。比如说,bs的值为0且picturealtdbrenableflag的值为1(表示允许启用dbr滤波的增强去块滤波调整模式,如垂直dbr滤波的增强去块滤波调整模式或水平dbr滤波的增强去块滤波调整模式)时,对p0和q0滤波调整的计算过程如下(p0和q0是滤波调整后的值):
[0432][0433]
示例性的,上述边界滤波过程是增强去块滤波调整模式的dbr滤波,可以是增强去块滤波调整模式的垂直dbr滤波,也可以是增强去块滤波调整模式的水平dbr滤波。针对增强去块滤波调整模式的垂直dbr滤波,dp0和dq0是像素点的梯度值,p0和q0是增强去块滤波调整模式的垂直dbr滤波前的像素值,p0和q0是增强去块滤波调整模式的垂直dbr滤波后的
像素值。dbrthreshold、dbraltoffset0、dbraltoffset1是增强去块滤波调整模式的垂直dbr滤波的相关参数,参见实施例9。针对增强去块滤波调整模式的水平dbr滤波,dp0和dq0可以表示像素点的梯度值,p0和q0可以是增强去块滤波调整模式的水平dbr滤波前的像素值,p0和q0可以是增强去块滤波调整模式的水平dbr滤波后的像素值。dbrthreshold、dbraltoffset0、dbraltoffset1是增强去块滤波调整模式的水平dbr滤波的相关参数,参见实施例9。在上述公式中,clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth表示图像的比特深度,如bit_depth可以为8、10、12等。
[0434]
实施例16:针对色度分量,bs大于0时的边界滤波过程。
[0435]
比如说,bs的值大于0时,对p0和q0滤波的计算过程如下(p0和q0是滤波后的值):
[0436]
p0=((p1《《1)+p1+(p0《《3)+(p0《《1)+(q0《《1)+q0+8)》》4;
[0437]
q0=((p0《《1)+p0+(q0《《3)+(q0《《1)+(q1《《1)+q1+8)》》4。
[0438]
又例如,bs的值等于3时,对p1和q1滤波的计算过程如下(p1和q1是滤波后的值):
[0439]
p1=((p2《《1)+p2+(p1《《3)+(p0《《1)+p0+(q0《《1)+8)》》4;
[0440]
q1=((q2《《1)+q2+(q1《《3)+(q0《《1)+q0+(p0《《1)+8)》》4。
[0441]
示例性的,上述边界滤波过程是dbf滤波,可以是垂直dbf滤波,也可以是水平dbf滤波。针对垂直dbf滤波,p0、p1和q0、q1是垂直dbf滤波前的像素值,p0、p1和q0、q1是垂直dbf滤波后的像素值。针对水平dbf滤波,p0、p1和q0、q1是水平dbf滤波前的像素值,p0、p1和q0、q1是水平dbf滤波后的像素值。
[0442]
实施例17:针对亮度分量,bs大于0时的边界滤波过程,该边界滤波过程是针对dbr滤波的去块滤波调整模式的滤波过程。比如说,bs的值大于0且picturedbrenableflag的值为1(表示允许启用dbr滤波的去块滤波调整模式,如垂直dbr滤波的去块滤波调整模式或水平dbr滤波的去块滤波调整模式),对pi和qi调整的计算过程如下(p
i’和q
i’是滤波后的值):
[0443][0444]
示例性的,上述边界滤波过程是去块滤波调整模式的dbr滤波,可以是去块滤波调整模式的垂直dbr滤波,也可以是去块滤波调整模式的水平dbr滤波。针对去块滤波调整模式的垂直dbr滤波,pi和qi可以是去块滤波调整模式的垂直dbr滤波前的像素值,pi和qi可以是垂直dbf滤波前的像素值,p
i’和q
i’可以是去块滤波调整模式的垂直dbr滤波后的像素值,i的取值可以为0、1或2等。dbrthreshold、dbroffset0、dbroffset1是去块滤波调整模式的垂直dbr滤波的相关参数,参见实施例9。以及,针对去块滤波调整模式的水平dbr滤波,pi和
qi可以是去块滤波调整模式的水平dbr滤波前的像素值,pi和qi可以是水平dbf滤波前的像素值,p
i’和q
i’可以是去块滤波调整模式的水平dbr滤波后的像素值,i的取值可以为0、1或2等。dbrthreshold、dbroffset0、dbroffset1是去块滤波调整模式的水平dbr滤波的相关参数,参见实施例9。上述公式中,clip1(x)表示将x限制在[0,2^(bit_depth)-1]之间(包括0和2^(bit_depth)-1),bit_depth为图像的比特深度,如bit_depth为8、10、12等。
[0445]
实施例18:样本偏移补偿滤波。样本偏移补偿滤波包括基本样值偏移补偿(上述sao),增强样值偏移补偿(上述esao),跨分量样值偏移补偿(上述ccsao,只针对色度进行)。
[0446]
sao的基本过程:如果当前块的当前分量启用sao,则先导出基本样值偏移补偿单元,再导出与当前基本样值偏移补偿单元对应的基本样值偏移补偿信息,最后对当前基本样值偏移补偿单元内的各个样本的各分量进行操作,得到偏移后样本值。否则,直接将滤波后样本对应分量的值作为偏移后该样本分量的值。示例性的,上述分量可以为亮度分量或色度分量。
[0447]
esao的基本过程(esao和sao是互斥的,即启用sao则不启用esao):如果当前块的当前分量启用esao,则先导出增强样值偏移补偿单元,再对增强样值偏移补偿单元内的各个样本的各个分量进行操作,得到偏移后样本值。否则,直接将滤波后样本对应分量的值作为偏移后该样本分量的值。示例性的,上述分量可以为亮度分量或色度分量。
[0448]
ccsao的基本过程:如果当前块的当前分量启用ccsao,则先导出跨分量样值偏移补偿单元,然后对当前跨分量样值偏移补偿单元内的各分量样本进行操作,得到跨分量偏移后样本值。否则,直接将偏移后样本对应分量的值作为跨分量偏移后该样本分量的值。示例性的,对于需要进行ccsao的色度像素,基于对应位置的去块滤波(调整)后的亮度值和当前色度像素值(经过esao后的色度像素值),确定当前色度像素的分类。基于分类确定当前色度像素的补偿值,将当前色度像素值加上该补偿值,得到ccsao滤波后的色度像素值。
[0449]
实施例19:自适应修正滤波。自适应修正滤波(上述alf)可以启用增强自适应修正滤波(ealf),自适应修正滤波(上述alf)也可以不启用增强自适应修正滤波。
[0450]
alf的基本过程如下:如果当前图像的当前分量(如亮度分量或色度分量)不启用alf,则直接将偏移后样本分量的值作为对应重建样本分量的值;否则,对相应的偏移后样本分量进行自适应修正滤波。自适应修正滤波的单位是由最大编码单元导出的自适应修正滤波单元,按照光栅扫描顺序依次处理。首先,解码各分量的自适应修正滤波系数,再导出自适应修正滤波单元,并确定当前自适应修正滤波单元亮度分量的自适应修正滤波系数索引,最后对自适应修正滤波单元的亮度和色度分量进行自适应修正滤波,得到重建样本。
[0451]
示例性的,如果当前图像启用ealf,则当前图像的alf的每组滤波系数有15个,这组滤波系数的形状可以参见图7a所示,为自适应修正滤波系数(7*7十字形加5*5方形),当前图像亮度分量自适应修正滤波器的个数的最大值为64。否则,当前图像的alf的每组滤波系数有9个,这组滤波系数的形状可以参见图7b所示,为自适应修正滤波系数(7*7十字形加3*3方形),当前图像亮度分量自适应修正滤波器的个数的最大值为16。
[0452]
示例性的,上述实施例1-实施例19可以单独实现,也可以任意组合,如实施例1和实施例4-实施例19中的至少一个实施例可以组合,实施例2和实施例4-实施例19中的至少一个实施例可以组合,实施例3和实施例4-实施例19中的至少一个实施例可以组合,实施例4-实施例19中的至少两个实施例可以组合。当然,上述只是几个组合的示例,实施例1-实施
例19之间的任意至少两个实施例,均可以进行组合实现相关过程,对此不做限制。
[0453]
示例性的,上述各实施例中,编码端的内容也可以应用到解码端,即解码端可以采用相同方式进行处理,解码端的内容也可以应用到编码端,即编码端可以采用相同方式进行处理。
[0454]
实施例20:基于与上述方法同样的申请构思,本技术实施例中还提出一种解码装置,所述解码装置应用于解码端,所述解码装置包括:存储器,其经配置以存储视频数据;解码器,其经配置以实现上述实施例1-实施例19中的编解码方法,即解码端的处理流程。
[0455]
比如说,在一种可能的实施方式中,解码器,其经配置以实现:
[0456]
获取当前亮度块对应的第一亮度重建块;
[0457]
若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
[0458]
若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
[0459]
若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
[0460]
若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
[0461]
若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
[0462]
若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
[0463]
或者,
[0464]
获取当前色度块对应的第一色度重建块;
[0465]
若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
[0466]
若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
[0467]
若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
[0468]
若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
[0469]
若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
[0470]
基于与上述方法同样的申请构思,本技术实施例中还提出一种编码装置,所述编码装置应用于编码端,所述编码装置包括:存储器,其经配置以存储视频数据;编码器,其经配置以实现上述实施例1-实施例19中的编解码方法,即编码端的处理流程。
[0471]
比如说,在一种可能的实施方式中,编码器,其经配置以实现:
[0472]
获取当前亮度块对应的第一亮度重建块;
[0473]
若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
[0474]
若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
[0475]
若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
[0476]
若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
[0477]
若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
[0478]
若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
[0479]
或者,
[0480]
获取当前色度块对应的第一色度重建块;
[0481]
若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
[0482]
若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
[0483]
若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
[0484]
若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
[0485]
若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
[0486]
基于与上述方法同样的申请构思,本技术实施例提供的解码端设备(也可以称为视频解码器),从硬件层面而言,该解码端设备可以包括:处理器和机器可读存储介质,其中:所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本技术上述实施例1-19公开的编解码方法。
[0487]
例如,所述处理器用于执行机器可执行指令,以实现如下步骤:
[0488]
获取当前亮度块对应的第一亮度重建块;
[0489]
若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
[0490]
若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
[0491]
若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
[0492]
若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
[0493]
若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
[0494]
若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
[0495]
或者,
[0496]
获取当前色度块对应的第一色度重建块;
[0497]
若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
[0498]
若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
[0499]
若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
[0500]
若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
[0501]
若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
[0502]
基于与上述方法同样的申请构思,本技术实施例提供的编码端设备(也可以称为视频编码器),从硬件层面而言,该编码端设备可以包括:处理器和机器可读存储介质,其中:所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本技术上述实施例1-19公开的编解码方法。
[0503]
例如,所述处理器用于执行机器可执行指令,以实现如下步骤:
[0504]
获取当前亮度块对应的第一亮度重建块;
[0505]
若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
[0506]
若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
[0507]
若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
[0508]
若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
[0509]
若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
[0510]
若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块;
[0511]
或者,
[0512]
获取当前色度块对应的第一色度重建块;
[0513]
若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
[0514]
若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
[0515]
若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
[0516]
若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
[0517]
若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
[0518]
基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的编解码方法,如上述上述各实施例中的编解码方法。其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0519]
基于与上述方法同样的申请构思,本技术实施例还提供一种计算机应用程序,所述计算机应用程序令被处理器执行时,能够实现本技术上述示例公开的编解码方法。
[0520]
基于与上述方法同样的申请构思,本技术实施例还提供一种编解码装置,可以应用于编码端或者解码端,该编码端装置用于实现本技术上述实施例1-19公开的编解码方法。
[0521]
在一种可能的实施方式中,该编解码装置可以包括:
[0522]
第一获取模块,用于获取当前亮度块对应的第一亮度重建块;
[0523]
第一处理模块,用于若所述当前亮度块启用dbf模式,则对所述第一亮度重建块进行垂直dbf滤波,得到第二亮度重建块;否则,基于所述第一亮度重建块确定第二亮度重建块;
[0524]
若所述当前亮度块启用垂直dbr模式,则对所述第二亮度重建块进行垂直dbr滤波,得到第三亮度重建块;否则,基于所述第二亮度重建块确定第三亮度重建块;
[0525]
若所述当前亮度块启用dbf模式,则对所述第三亮度重建块进行水平dbf滤波,得到第四亮度重建块;否则,基于所述第三亮度重建块确定第四亮度重建块;
[0526]
若所述当前亮度块启用水平dbr模式,则对所述第四亮度重建块进行水平dbr滤波,得到第五亮度重建块;否则,基于所述第四亮度重建块确定第五亮度重建块;
[0527]
若所述当前亮度块启用esao模式,则对所述第五亮度重建块进行esao滤波,得到第六亮度重建块;否则,若所述当前亮度块启用sao模式,则对所述第五亮度重建块进行sao
滤波,得到第六亮度重建块;否则,基于第五亮度重建块确定第六亮度重建块;
[0528]
若所述当前亮度块启用alf模式,则对所述第六亮度重建块进行alf滤波,得到第七亮度重建块;否则,基于所述第六亮度重建块确定第七亮度重建块。
[0529]
在另一种可能的实施方式中,该编解码装置可以包括:
[0530]
第二获取模块,用于获取当前色度块对应的第一色度重建块;
[0531]
第二处理模块,用于若所述当前色度块启用dbf模式,则对所述第一色度重建块进行垂直dbf滤波,得到第二色度重建块;否则,基于所述第一色度重建块确定第二色度重建块;
[0532]
若所述当前色度块启用dbf模式,则对所述第二色度重建块进行水平dbf滤波,得到第三色度重建块;否则,基于所述第二色度重建块确定第三色度重建块;
[0533]
若所述当前色度块启用esao模式,则对所述第三色度重建块进行esao滤波,得到第四色度重建块;否则,若所述当前色度块启用sao模式,则对所述第三色度重建块进行sao滤波,得到第四色度重建块;否则,基于所述第三色度重建块确定第四色度重建块;
[0534]
若所述当前色度块启用ccsao模式,则对所述第四色度重建块进行ccsao滤波,得到第五色度重建块;否则,基于所述第四色度重建块确定第五色度重建块;
[0535]
若所述当前色度块启用alf模式,则对所述第五色度重建块进行alf滤波,得到第六色度重建块;否则,基于所述第五色度重建像素值确定第六色度重建块。
[0536]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0537]
本领域内的技术人员应明白,本技术实施例可提供为方法、系统、或计算机程序产品。本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0538]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0539]
这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现
的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1