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

视频编码、解码方法、装置、电子设备及存储介质与流程

2021-11-30 22:02:00 来源:中国专利 TAG:


1.本技术涉及视频处理技术领域,尤其涉及一种视频编码、解码方法、装置、电子设备及存储介质。


背景技术:

2.近年来,随着深度学习技术的发展,已经有不少研究尝试采用深度学习模型替代传统视频编码框架中的部分模块或提出基于深度学习的端到端编码框架,尤其是在环路滤波工具上,相比于传统滤波工具能明显提升编码性能。但是,基于深度学习的环路滤波工具的使用,会增加视频解码端的解码复杂度,目前的一种处理方式是通过rdo(rate distortion optimization,率失真优化)筛选出滤波后的视频帧中有增益提升的ctu(coding tree unit,编码树单元),并在视频解码端对这部分ctu进行滤波。


技术实现要素:

3.但是,基于rdo筛选出的ctu的增益分布不均匀,其中包括大量增益较小的ctu,这部分ctu对提升图像质量的帮助较小,却会增加解码复杂度。基于此,本技术实施例提供一种视频编码、解码方法、装置、电子设备及存储介质,可在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。
4.一方面,本技术一实施例提供了一种视频编码方法,包括:
5.从视频帧的编码数据中获得重建的视频帧,所述视频帧包括至少两个区块;
6.对重建的视频帧进行滤波处理,获取重建的视频帧中的各个区块在滤波处理后获得的增益;
7.根据各个区块的增益分布,从所述各个区块中确定出对所述编码数据进行解码时需要进行滤波处理的区块;
8.发送所述视频帧的编码数据,所述编码数据中包含需要进行滤波处理的区块的指示信息。
9.一方面,本技术实施例提供了一种视频解码方法,包括:
10.获取视频帧的编码数据,所述视频帧包括至少两个区块,所述编码数据中包含需要进行滤波处理的区块的指示信息,所述指示信息是根据所述至少两个区块在滤波处理后获得的增益的增益分布确定的;
11.从所述编码数据中获得重建的视频帧;
12.基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理。
13.可选地,所述编码数据中还包括用于指示所述视频帧是否需要进行滤波处理的帧级开关信息,所述帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第一总增益阈值时,是否需要在解码时对所述重建的视频帧进行滤波处理,其中,所述第一总增益阈值为所述视频帧中增益大于所述增益阈值的区块
的增益之和;
14.所述方法还包括:
15.所述基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,所述方法还包括:
16.确定从所述编码数据中获取的帧级开关信息表示需要对所述视频帧进行滤波处理。
17.可选地,所述增益阈值是通过如下方式确定的:
18.根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和;
19.基于总增益保留比例与总增益的乘积,获得第二总增益阈值;
20.按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于所述第二总增益阈值时,将参与累加处理的至少两个增益中的最小增益,确定为增益阈值。
21.可选地,所述总增益保留比例是根据增益为正的区块的数量和所述视频帧中的区块总数之间的比值确定的;或者,所述总增益保留比例是根据增益为正的区块的增益统计特征值确定的。
22.可选地,所述编码数据中还包括用于指示所述视频帧是否需要进行滤波处理的帧级开关信息,所述帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到第二总增益阈值时,是否需要在解码时对所述重建的视频帧进行滤波处理;
23.所述方法还包括:
24.所述基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,所述方法还包括:
25.确定从所述编码数据中获取的帧级开关信息表示需要对所述视频帧进行滤波处理。
26.可选地,所述编码数据中还包括用于指示所述视频帧是否需要进行滤波处理的帧级开关信息,所述帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到总增益时,是否需要在解码时对所述重建的视频帧进行滤波处理,其中,所述总增益为增益为正的区块的增益之和;
27.所述方法还包括:
28.所述基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,所述方法还包括:
29.确定从所述编码数据中获取的帧级开关信息表示需要对所述视频帧进行滤波处理。
30.一方面,本技术一实施例提供了一种视频编码装置,包括:
31.解码模块,用于从视频帧的编码数据中获得重建的视频帧,所述视频帧包括至少两个区块;
32.滤波模块,用于对重建的视频帧进行滤波处理,获取重建的视频帧中的各个区块在滤波处理后获得的增益;
33.筛选模块,用于根据各个区块的增益分布,从所述各个区块中确定出对所述编码
数据进行解码时需要进行滤波处理的区块;
34.发送模块,用于发送所述视频帧的编码数据,所述编码数据中包含需要进行滤波处理的区块的指示信息。
35.可选地,所述筛选模块,具体用于:
36.根据各个区块的增益分布,确定出增益阈值;
37.将增益大于所述增益阈值的区块,确定为对所述编码数据进行解码时需要进行滤波处理的区块。
38.可选地,所述筛选模块,具体用于:
39.基于增益为正的区块的增益,获得增益统计特征值;
40.根据所述增益统计特征值,确定增益阈值。
41.可选地,所述筛选模块还用于:在将增益大于所述增益阈值的区块,确定为对所述编码数据进行解码时需要进行滤波处理的区块之前,基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到第一总增益阈值时,需要在解码时对所述重建的视频帧进行滤波处理,其中,所述第一总增益阈值为增益大于所述增益阈值的区块的增益之和。
42.可选地,所述筛选模块,具体用于:
43.根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和;
44.基于总增益保留比例与总增益的乘积,获得第二总增益阈值;
45.按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于所述第二总增益阈值时,将参与累加处理的多个增益中的最小增益,确定为增益阈值。
46.可选地,所述筛选模块还用于:
47.根据增益为正的区块的数量和所述视频帧中的区块总数之间的比值,确定所述总增益保留比例;或者,
48.根据增益为正的区块的增益统计特征值,确定所述总增益保留比例。
49.可选地,所述筛选模块还用于:
50.在对区块的增益进行累加处理之前,基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到第二总增益阈值时,需要在解码时对所述重建的视频帧进行滤波处理。
51.可选地,所述筛选模块,还用于:在根据各个区块的增益分布,从所述各个区块中确定出对所述编码数据进行解码时需要进行滤波处理的区块之前,基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到总增益时,需要在解码时对所述重建的视频帧进行滤波处理,其中,所述总增益为增益为正的区块的增益之和。
52.一方面,本技术一实施例提供了一种视频解码装置,包括:
53.获取模块,用于获取视频帧的编码数据,所述视频帧包括至少两个区块,所述编码数据中包含需要进行滤波处理的区块的指示信息,所述指示信息是根据所述至少两个区块在滤波处理后获得的增益的增益分布确定的;
54.视频解码模块,用于从所述编码数据中获得重建的视频帧;
55.视频滤波模块,用于基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理。
56.可选地,所述指示信息中指示的需要进行滤波处理的区块为增益大于增益阈值的
区块,所述增益阈值是根据所述至少两个区块在滤波处理后获得的增益的增益分布确定的。
57.可选地,所述增益阈值是通过如下方式确定的:
58.基于所述至少两个区块中增益为正的区块的增益,获得增益统计特征值;
59.根据所述增益统计特征值,确定增益阈值。
60.可选地,所述编码数据中还包括用于指示所述视频帧是否需要进行滤波处理的帧级开关信息,所述帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第一总增益阈值时,是否需要在解码时对所述重建的视频帧进行滤波处理,其中,所述第一总增益阈值为所述视频帧中增益大于所述增益阈值的区块的增益之和;
61.所述视频滤波模块还用于:在基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,确定从所述编码数据中获取的帧级开关信息表示需要对所述视频帧进行滤波处理。
62.可选地,所述增益阈值是通过如下方式确定的:
63.根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和;
64.基于总增益保留比例与总增益的乘积,获得第二总增益阈值;
65.按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于所述第二总增益阈值时,将参与累加处理的至少两个增益中的最小增益,确定为增益阈值。
66.可选地,所述总增益保留比例是根据增益为正的区块的数量和所述视频帧中的区块总数之间的比值确定的;或者,所述总增益保留比例是根据增益为正的区块的增益统计特征值确定的。
67.可选地,所述编码数据中还包括用于指示所述视频帧是否需要进行滤波处理的帧级开关信息,所述帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到第二总增益阈值时,是否需要在解码时对所述重建的视频帧进行滤波处理;
68.所述视频滤波模块还用于:在基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,确定从所述编码数据中获取的帧级开关信息表示需要对所述视频帧进行滤波处理。
69.可选地,所述编码数据中还包括用于指示所述视频帧是否需要进行滤波处理的帧级开关信息,所述帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当所述重建的视频帧滤波后获得的增益达到总增益时,是否需要在解码时对所述重建的视频帧进行滤波处理,其中,所述总增益为增益为正的区块的增益之和;
70.所述视频滤波模块还用于:在基于所述指示信息,对所述重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,确定从所述编码数据中获取的帧级开关信息表示需要对所述视频帧进行滤波处理。
71.一方面,本技术一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。
72.一方面,本技术一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
73.本技术实施例提供的视频编码、解码方法、装置、电子设备及存储介质,在视频编码端完成对视频帧的编码后,从视频帧的编码数据中获得重建的视频帧,对重建的视频帧进行滤波处理,并获得视频帧中各个区块因滤波处理带来的增益,根据各个区块的增益分布,筛选出增益较大的区块,使得视频解码端在解码时仅对增益较大的区块进行滤波处理,对增益较小的区块不进行滤波处理,在尽可能提高滤波后视频帧的增益的前提下,减少参与滤波的区块数量,在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。
附图说明
74.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
75.图1为视频编码器的基本流程图;
76.图2为ra和ldb配置下各个视频帧上ctu的命中率;
77.图3为经过cnnlf处理后有性能提升的ctu的增益分布情况;
78.图4为本技术实施例提供的视频编码方法的应用场景示意图;
79.图5为本技术一实施例提供的视频编码方法的流程示意图;
80.图6为本技术一实施例提供的确定增益阈值的一种实施方式的流程示意图;
81.图7为本技术一实施例提供的确定出需要进行滤波处理的区块的一种实施方式的流程示意图;
82.图8为本技术一实施例提供的确定增益阈值的另一种实施方式的流程示意图;
83.图9为本技术一实施例提供的确定出需要进行滤波处理的区块的另一种实施方式的流程示意图;
84.图10为本技术一实施例提供的视频解码方法的流程示意图;
85.图11为本技术一实施例提供的视频编码装置的结构示意图;
86.图12为本技术一实施例提供的视频解码装置的流程示意图;
87.图13为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
88.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。需要说明的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
89.yuv是编译true-color颜色空间(color space)的种类,“y”表示明亮度(luminance或luma),也就是灰阶值,“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
90.视频信号:从信号的获取方式看,可以分为摄像机拍摄到的以及计算机生成的两
种方式。由于统计特性的不同,其对应的压缩编码方式也可能有所区别。
91.参考图1,现代主流视频编码技术,以国际视频编码标准hevc,vvc,以及中国国家视频编码标准avs为例,采用了混合编码框架,对输入的原始视频信号,进行了如下一系列的操作和处理:
92.(1)块划分结构(block partition structure):根据输入图像的大小,划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作ctu,或者lcu(largest coding unit,最大编码单元)。每一个ctu还可以继续进行更加精细的划分,得到一个或多个基本编码的单元,称之为cu(coding unit编码单元),每个cu是一个编码环节中最基本的元素。以下描述的是对每一个cu可能采用的各种编码方式。
93.(2)预测编码(predictive coding):包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。视频编码端需要为当前cu决定在众多可能的预测编码模式中,选择最适合的一种,并告知视频解码端。
94.帧内预测(intra-picture prediction):预测的信号来自于同一图像内已经编码重建过的区域,即从参考帧中找出与当前块最匹配的位置,参考的是时域上信息,包括:运动估计(motion estimation,me)和运动补偿(motion compensation,mc)。其中,运动估计是指,确定当前待编码的cu在已编码的图像(参考帧)中的最佳对应图像块,并且计算出对应块的偏移(运动矢量)。
95.帧间预测(intra-picture prediction):预测的信号来自已经编码过的,不同于当前图像的其他图像(称之为参考图像),即参考周围像素来插值出预测像素,参考的是空域上信息。
96.i帧(i frame),即参考帧,又称为内部画面(intra picture),i帧通常是每个gop(mpeg所使用的一种视频压缩技术)的第一个帧。i帧法是帧内压缩法,也称为“关键帧”压缩法,是基于离散余弦变换dct(discrete cosine transform)的压缩技术,这种算法与jpeg压缩算法类似。在编码的过程中,部分视频帧序列压缩成为i帧,部分压缩成p帧,还有部分压缩成b帧,解码时仅用i帧的数据就可重构一帧完整的图像,即i帧不需要参考其他视频帧即可完成重构,其它视频帧可基于i帧实现重构。
97.(3)变换编码及量化(transform&quantization):残差视频信号经过dft(discrete fourier transform,离散傅里叶变换)、dct(discrete cosine transform,离散余弦变换)等变换操作,将信号转换到变换域中,称之为变换系数。在变换域中的信号,进一步的进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此,视频编码端也需要为当前编码cu选择其中的一种变换,并告知视频解码端。量化的精细程度通常由量化参数(qp)来决定,qp取值较大大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,qp取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
98.(4)熵编码(entropy coding)或统计编码:量化后的变换域信号,将根据各个值出现的频率,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的模式,运动矢量等,也需要进行熵编码以降低码率。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编
码(vlc,variable length coding)或者基于上下文的二值化算术编码(cabac,content adaptive binary arithmetic coding)。
99.(5)环路滤波(loop filtering):已经编码过的图像,经过反量化,反变换及预测补偿的操作(上述2~4的反向操作),可获得重建的解码图像。重建的解码图像与原始图像相比,由于存在量化的影响,部分信息与原始图像有所不同,产生失真(distortion),因此需要对重建图像进行滤波处理,例如去块效应滤波(deblocking)、sao(sample adaptive offset,样点自适应补偿)或者alf(adaptive loop filter,自适应环路滤波)等滤波器,可以有效地降低量化所产生的失真程度。由于这些经过滤波后的重建图像,将做为后续编码图像的参考,用于对将来的信号进行预测,所以上述的滤波操作也被称为环路滤波,即在编码环路内的滤波操作。图1展示了一个视频编码器的基本流程图。
100.根据上述视频编码过程可以看出,在视频解码端,对于每一个cu,解码器获得压缩码流后,先进行熵解码,获得各种模式信息及量化后的变换系数。各个系数经过反量化及反变换,得到残差信号。另一方面,根据已知的编码模式信息,可获得该cu对应的预测信号,两者相加之后,即可得到重建信号。最后,解码图像的重建值,需要经过环路滤波的操作,产生最终的输出信号。
101.近年来,随着深度学习技术的发展,已经有不少研究尝试采用深度学习模型替代传统视频编码框架中的部分模块或提出基于深度学习的端到端编码框架,尤其是在环路滤波工具上,相比于传统滤波工具能明显提升编码性能。基于深度学习的环路滤波工具主要思路是通过神经网络学习重建图像到原始图像的映射关系,通常用来替换或帮助传统滤波工具修复有损编码带来的信息损失、抑制编码噪声,从而提升重建帧质量,提升编解码器性能。
102.例如,目前avs3参考软件hpm5.2中采纳的cnnlf(convolutional neural network loop filter,基于深度学习的环路滤波)方案相较于hpm5.0(无cnnlf方案)实现了接近7%的码率节省,但高性能的同时也带来了高复杂度,即使在gpu(graphics processing unit,图形处理器)上处理,在ra(random access)配置下的解码复杂度仍高达3942%,在ldb(low delay b)配置下的解码复杂度仍高达7938%,这严重影响了基于深度学习的环路滤波工具在实际中的推广和应用。由于hpm5.2中目前采纳方案的视频解码端部署思路是仅对flag为1(即cnnlf开关为开)的ctu进行cnnlf处理,因此减少开启cnnlf的ctu个数将能直接降低解码复杂度。目前,标准提案m5129根据ra测试中ctu上命中率呈现的规律性,提出时域层(temporal layer)并关闭4和5级时域层,如表1所示,表1为不同时域帧cnn环路滤波的开关情况。
103.表1
104.时域层包含的帧是否打开cnn环路滤波00(i frame)开116开28开34,12开42,6,10,14关51,3,5,7,9,11,13,15关
105.随着时域层(temporal layer)增大,参考帧中的时域信息利用的更加充分,ctu开关选中神经网络滤波的块数逐渐减少,神经网络滤波带来的质量提升逐渐减少,关闭对质量提升贡献不大的时域层能在对性能影响较小的情况下降低解码复杂度,相较于hpm5.2的bd-rate与解码复杂度如表2所示,表2为关闭4和5级temporal layer后对比hpm5.2的性能。
106.表2
[0107][0108]
标准提案m5129的复杂度优化方法虽然达到降低复杂度的目的,但性能有明显下降,尤其是在4k序列上。参考图2,为ra和ldb配置下各个视频帧上ctu的命中率,可见ldb配置下temporal layer规律与ra配置下略有不同,因此,表1的策略并不完全适用于ldb测试。
[0109]
在avs3参考软件hpm5.2中,通过ctu级rdo判断cnnlf是否会给当前ctu带来性能增益,如果有增益则该打开该ctu的cnnlf工具,即对该ctu内的像素点进行cnnlf,否则关闭该ctu的cnnlf工具,即不对该ctu内的像素点进行cnnlf。本技术发明人对ritualdance序列的第二帧中进行cnnlf处理后有性能提升的ctu增益分布情况进行了统计,统计结果如图3所示,此处的增益采用欧式距离衡量,其计算方法如下:
[0110]
dist
i
=(i
i,rec-i
i,org
)
2-(i
i,cnn-i
i,org
)2,
[0111]
其中,i表示ctu序号,i
i,cnn
为经过cnnlf处理后视频帧中第i个ctu对应的图像,i
i,rec
为未经过cnnlf处理的视频帧中第i个ctu对应的解码图像,i
i,org
为未经过压缩编码的原始视频帧中第i个ctu对应的图像,dist
i
为正数则说明经过cnnlf处理后该ctu上存在增益,且dist
i
越大代表增益越大,dist
i
为负数则说明经过cnnlf处理后该ctu上存在损失,dist
i
越小代表损失越大。从图3中发现在同一视频帧中,不同ctu上存在增益分布不均的情况,且很大一部分ctu上增益并不明显,由于每个ctu上cnnlf处理的时间相同,因此,将过多的计算资源用于增益并不明显的ctu,将极大地增加解码复杂度,且并不能大幅提高滤波后的图像质量。
[0112]
基于此,本技术提出了一种视频编码方法,在视频解码端完成对视频帧的编码后,从视频帧的编码数据中获得重建的视频帧,并对重建的视频帧进行滤波处理,获取重建的视频帧中的各个区块在滤波处理后获得的增益,并根据各个区块的增益分布,从各个区块中确定出对编码数据进行解码时需要进行滤波处理的区块,将视频帧的编码数据发送至视频解码端,该编码数据中包含需要进行滤波处理的区块的指示信息,这样,视频解码端在对视频帧进行解码时,可根据编码数据中的指示信息,仅对视频帧中需要进行滤波处理的区块进行滤波处理,在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。其中,视频帧可划分成至少两个区块,本技术实施例中的区块可以是ctu,也可以是比ctu定义更小的区域(如cu),或者一个可包含至少两个ctu的区域,或者帧内部其他划分方法得到的区域等等。上述视频编码方法,可根据滤波后的视频帧中各个区块的增益分布,筛选出增益较大的区块,解码时仅对增益较大的区块进行滤波处理,对增益较小的区块不进行滤波处理,虽然该方法会降低某一帧的总增益,但在帧间预测中,能提升
滤波工具在下一帧上的滤波效果,最终在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。
[0113]
需要说明的是,本技术实施例的视频编码方法,不涉及编解码过程中使用的滤波模型本身,因此,本技术实施例的视频编码方法可适用于任何滤波模型,可以应用到使用了基于深度学习的滤波模型的视频编解码器或视频压缩的后处理产品中。
[0114]
在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
[0115]
参考图4,其为本技术实施例提供的视频编码方法的应用场景示意图。该应用场景包括终端设备401(包括终端设备401-1、终端设备401-2、
……
终端设备401-n)和服务器402。其中,终端设备401和服务器402之间可通过无线通信网络或有线通信网络连接,终端设备401包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personal digital assistant,pda)等电子设备。服务器402可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0116]
当终端设备401的用户想观看某一视频时,可通过终端设备401向服务器402发送视频获取请求,服务器402基于视频获取请求查找对应的视频,对该视频进行编码以得到编码后的视频流,并将视频流传输给终端设备401,终端设备401对接收到的视频流进行解码和滤波处理,以实现该视频在终端设备401-2上的正常播放。此时,服务器402相当于视频编码端,而终端设备401相当于视频解码端。
[0117]
当终端设备401-1的用户想将某一视频上推送给其它用户(如终端设备401-2)时,终端设备401-1对该视频进行编码以得到编码后的视频流,将视频流传输给服务器402,服务器402再将该视频流转发给终端设备401-2,终端设备401-2对接收到的视频流进行解码和滤波处理,以实现该视频在终端设备401-2上的正常播放。此时,终端设备401-1相当于视频编码端,而终端设备401-2相当于视频解码端。
[0118]
当然,本技术实施例提供的方法并不限用于图4所示的应用场景中,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图4所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
[0119]
为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。
[0120]
下面结合图4所示的应用场景,对本技术实施例提供的技术方案进行说明。需要说明的时,本技术实施例提供任一视频编码方法,可应用任一视频编码端,如图4所示的终端设备或服务器。
[0121]
参考图5,本技术实施例提供一种视频编码方法,包括以下步骤:
[0122]
s501、从视频帧的编码数据中获得重建的视频帧,视频帧包括至少两个区块。
[0123]
实际应用中,区块可以是视频帧中的ctu,也可以是比ctu定义更小的区域(如cu),或者一个可包含至少两个ctu的区域,或者通过其他区块划分方法对视频帧内部进行划分后得到的区域,本技术实施例不作限定。
[0124]
具体实施时,从视频帧的编码数据中获得重建的视频帧的过程,即为对编码数据进行反量化、反变换及预测补偿的操作,不再赘述。
[0125]
s502、对重建的视频帧进行滤波处理,获取重建的视频帧中的各个区块在滤波处理后获得的增益。
[0126]
其中,步骤s502中采用的滤波方法与视频解码端采用的滤波方法相同,本技术实施例对视频解码端采用的滤波处理方法不作限定,可以是采用cnnlf模型进行滤波,也可以是其它的滤波模型。
[0127]
具体实施时,视频编码端先对原始视频进行编码处理,获得编码数据,再从每个视频帧的编码数据中获得重建的视频帧。然后,视频编码端对每个重建的视频帧进行滤波处理,获得每个重建的视频帧对应的滤波图像。接着,视频编码端基于一定的评价标准,获取重建的视频帧中的各个区块在滤波处理后获得的增益,例如,可对原始视频帧、解码后的视频帧(即重建的视频帧)以及滤波后的视频帧进行相似度的评估,从而获取重建的视频帧中的各个区块在滤波处理后获得的增益。区块的增益越大,表明滤波处理对该区块的图像质量的提升效果越明显,反之,区块的增益越小,表明滤波处理对该区块的图像质量的提升效果越不明显。
[0128]
具体地,可通过如下方式获得重建的视频帧中的每一区块在滤波处理后获得的增益:针对重建的视频帧中的每一区块,基于每一区块对应的原始图像和重建图像之间的第二相似度,以及每一区块对应的原始图像和滤波图像之间的第二相似度,获得每一区块在滤波处理后获得的增益,其中,原始图像为每一区块在编码前的视频帧中对应的图像,重建图像为每一区块在重建的视频帧中对应的图像,滤波图像为对重建的视频帧中的每一区块进行滤波处理后获得的图像。其中,计算第一相似度和第二相似度时使用的评价标准可以是欧氏距离、mse(mean square error,均方误差)或ssim(structural similarity index,结构相似性)等,本技术实施例不作限定。具体实施时,可采用如下公式计算视频帧中的每一区块的增益:
[0129]
dist
i
=s(i
i,rec
,i
i,org
)-s(i
i,cnn
,i
i,org
),
[0130]
其中,i表示视频帧中区块的序号,i
i,org
为第i个区块对应的原始图像,i
i,rec
为第i个区块对应的重建图像,i
i,cnn
为第i个区块对应的滤波图像,s(i
i,rec
,i
org
)表示i
i,rec
和i
i,org
的相似度,s(i
i,cnn
,i
i,org
)表示i
i,cnn
和i
i,org
的相似度,dist
i
为视频帧中第i个区块的增益。dist
i
为正数则说明经过滤波处理后第i个区块上存在增益,此时dist
i
越大代表增益越大;dist
i
为负数则说明经过滤波处理后第i个区块上存在损失,此时dist
i
越小代表损失越大。
[0131]
实际应用中,可基于区块中像素点的像素参数计算第一相似度和第二相似度,其中,像素参数可以是以下至少一种:y分量、u分量和v分量,像素参数也可以是灰度值、rgb值等。
[0132]
s503、根据各个区块的增益分布,从各个区块中确定出对编码数据进行解码时需
要进行滤波处理的区块。
[0133]
具体实施时,可通过如下方式确定出每个视频帧中需要进行滤波处理的区块:根据各个区块的增益分布,确定出增益阈值;将增益大于增益阈值的区块,确定为对编码数据进行解码时需要进行滤波处理的区块。这样,可基于视频帧内的区块的增益分布确定出合适的增益阈值,并基于增益阈值筛选出增益较大的区块,从而在解码时筛选出的增益较大的区块进行滤波,对增益较小的区块不进行滤波,以将计算资源用于对提升图像质量帮助较大的区块,从而降低解码复杂度,提升滤波效率。
[0134]
s504、发送视频帧的编码数据,编码数据中包含需要进行滤波处理的区块的指示信息。
[0135]
具体实施时,每一视频帧的编码数据中均携带有指示信息,该指示信息用于指示该视频帧中的哪些区块需要进行滤波处理。例如,指示信息可包括视频帧中每个区块对应的flag标识,当区块的flag=1时,表示解码时需要对该区块进行滤波处理,当区块的flag=0时,表示解码时不需要对该区块进行滤波处理。再如,指示信息可包括视频帧中需要进行滤波处理的区块的序号,例如指示信息中包含序号1、4、5,则需要对视频帧中的第1、4、5个区块进行滤波处理。
[0136]
具体实施时,视频编码端将指示信息写入编码数据中,并发送给视频解码端。视频解码端从编码数据中获得重建的视频帧,基于编码数据中的指示信息,对重建的视频帧中需要进行滤波处理的区块进行滤波处理,获得滤波后的视频帧并播放。
[0137]
本技术实施例的视频编码方法,在视频编码端完成对视频帧的编码后,视频帧的编码数据中获得重建的视频帧,对重建的视频帧进行滤波处理,并获得视频帧中各个区块因滤波处理带来的增益,根据各个区块的增益分布,筛选出增益较大的区块,使得视频解码端在解码时仅对增益较大的区块进行滤波处理,对增益较小的区块不进行滤波处理,在尽可能提高滤波后视频帧的增益的前提下,减少参与滤波的区块数量,在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。
[0138]
具体实施时,参考图6,可通过以下方式确定任一视频帧所对应的增益阈值:
[0139]
s601、根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和。
[0140]
其中,步骤s601中的各个区块是指同一个视频帧中的区块。
[0141]
s602、基于总增益保留比例与总增益的乘积,获得第二总增益阈值。
[0142]
具体实施时,总增益可通过如下公式表示:其中,n为增益为正的区块数量,则第二总增益阈值为其中,g为总增益保留比例。
[0143]
具体实施时,可预先设定一个总增益保留比例,即每个视频帧对应相同的总增益保留比例。
[0144]
具体实施时,还可以根据各个区块的增益分布,确定总增益保留比例。这样,每个视频帧对应的总增益保留比例是不同的,通过增益分布动态确定总增益保留比例,可提高区块筛选的准确度。具体地,可通过如下任一方式确定视频帧的总增益保留比例:
[0145]
第一种方式:基于增益为正的区块的数量和视频帧中的区块总数的比值,确定总增益保留比例。
[0146]
具体实施时,根据视频帧中各个区块的增益,统计增益为正的区块的数量n,确定
视频帧的命中率r=n/block_num,其中,block_num为该视频帧中包含的区块总数;然后,基于命中率r确定总增益保留比例g。
[0147]
实际应用中,r与g的关系可以通过如下分段函数表示:
[0148][0149]
其中,分段数n、范围a
n
以及对应的g
n
均根据经验取值,0≤a
n
,g
n
≤1。
[0150]
进一步地,可限定a0<a1<a2<

<a
n-1
<a
n
,g1<g2<

<g
n
,即命中率r越高,总增益保留比例g越大。
[0151]
具体实施时,总增益保留比例可以与比值正相关,例如,r与g的关系也可以是:g=k
×
r b,其中,k和b可根据经验取值。
[0152]
第二种方式:基于增益为正的区块的增益统计特征值,确定总增益保留比例。
[0153]
具体实施时,增益统计特征值包括但不限于:平均值、中位值、标准差等。
[0154]
具体实施时,增益统计特征值与总增益保留比例的关系可通过分段函数表示。以标准差为例,标准差std与g的关系可以通过如下分段函数表示:
[0155][0156]
其中,分段数n、范围a
n
以及对应的g
n
均根据经验取值,0≤a
n
,g
n
≤1。
[0157]
进一步地,可限定a0<a1<a2<

<a
n-1
<a
n
,g1<g2<

<g
n
,即标准差std越高,总增益保留比例g越大。
[0158]
具体实施时,总增益保留比例可以与增益统计特征值正相关,例如,增益统计特征值p与g的关系也可以是:g=k
×
p b,其中,k和b可根据经验取值。
[0159]
s603、按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于第二总增益阈值时,将参与累加处理的至少两个增益中的最小增益,确定为增益阈值。
[0160]
实际应用中,可根据各个区块的增益,确定每个区块对应的flag的初始值,将增益为正的区块的flag设为1,将增益小于等于0的区块的flag设为0;然后,令其中,flag
i
表示视频帧中第i个区块的flag,此时,计算命中率的公式可以表示为:block_num为该视频帧中包含的区块总数。
[0161]
然后,根据各个区块的增益分布,确定总增益保留比例g,基于总增益保留比例g与总增益的乘积,获得第二总增益阈值
[0162]
接着,按增益从大到小的顺序,对增益为正的区块的增益进行排序,获得序列
dist

j
,其中,排序越靠前的区块的增益越大,即j越小,dist

j
越大。然后,按照dist

j
的排序,从j=1开始对区块的增益dist

j
进行累加处理,直到停止累加,此时可确定增益阈值d1=dist

j

[0163]
最后,将该视频中,增益不小于增益阈值d1的区块的flag设为1,将增益大于增益阈值d1的区块的flag设为0,并将设置好的各个区块的flag作为指示信息写入编码数据,并发送给视频解码端。
[0164]
视频解码端在收到编码数据后,根据指示信息中各个区块的flag,对flag=1的区块进行滤波处理,对flag=0的区块不进行滤波处理。
[0165]
图6所示的实施方式中,基于各个区块的增益分布,保留合适比例的区块进行滤波处理,这样,在尽可能提高解码后的视频帧获得的总增益的前提下,降低视频帧中参与滤波的区块的比例,进而在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。
[0166]
进一步地,在步骤s603之前,本技术实施例的方法还包括如下步骤:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第二总增益阈值时,需要在解码时对重建的视频帧进行滤波处理。通过上述步骤,可基于第二总增益阈值,进一步地确定是否要对视频帧进行滤波处理,针对需要滤波处理的视频帧,继续筛选出视频帧中需要进行滤波处理的区块。
[0167]
具体地,参考图7,可通过如下方式确定视频帧中需要进行滤波处理的区块:
[0168]
s701、根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和。
[0169]
s702、基于总增益保留比例与总增益的乘积,获得第二总增益阈值,总增益为增益为正的区块的增益之和。
[0170]
其中,步骤s701和步骤s702的具体实施方式可参考步骤s601和步骤s602,不再赘述。
[0171]
s703、基于率失真优化算法,判断当重建的视频帧滤波后获得的增益达到第二总增益阈值时是否需要在解码时对重建的视频帧进行滤波处理,若需要,则执行步骤s705,否则,执行步骤s704。
[0172]
其中,率失真优化(rdo)是一种提高视频压缩视频质量的方法,该名称是指针对视频编码所需的数据量(速率)优化失真量(视频质量损失),速率失真优化可在提高视频编码的质量的同时减少编码后视频的数据量,即平衡视频大小和视频质量,作出最优的编码决策。通过编解码器或编解码标准中现有的率失真优化算法判断是否需要在解码时对重建的视频帧进行滤波处理,即根据对视频帧进行滤波处理带来的增益,以及在编码数据中写入指示信息所增加的数据量,判断是否值得对该视频帧进行滤波处理。步骤s703中,确定为了要使滤波后的视频帧获得的总增益达到第二总增益阈值,需要在编码数据中增加指示信息的数据量,基于率失真优化算法,根据增加的数据量和视频帧获得的总增益,判断是否值得对该视频帧进行滤波处理。实际应用中,可确定当视频帧的总增益达到第二总增益阈值时,需要进行滤波的区块数量,进而确定需要在编码数据中增加指示信息的数据量,例如,每一区块的指示信息需要占用m比特的数据量,若有t个区块需要进行滤波,则增加tm比特的数据量。
[0173]
s704、确定不需要对该视频帧进行滤波处理。
[0174]
具体实施时,若确定不需要对该视频帧进行滤波处理,则该视频帧对应的帧级开关frame_flag=0,将帧级开关的信息作为指示信息写入该视频帧的编码数据内。当视频帧对应的帧级开关frame_flag=0时,视频解码端不会对该视频帧进行滤波处理。
[0175]
s705、按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于第二总增益阈值时,将参与累加处理的至少两个增益中的最小增益,确定为增益阈值。
[0176]
其中,步骤s705的具体实施方式可参考步骤s603的具体实施方式,不再赘述。
[0177]
s706、将增益大于增益阈值的区块,确定为对编码数据进行解码时需要进行滤波处理的区块。
[0178]
具体实施时,参考图8,可通过以下方式确定任一视频帧所对应的增益阈值:
[0179]
s801、基于增益为正的区块的增益,获得增益统计特征值。
[0180]
s802、根据增益统计特征值,确定增益阈值。
[0181]
具体实施时,增益统计特征值包括但不限于:平均值、中位值、标准差等。
[0182]
以平均值为例,可根据各个区块的增益,确定每个区块对应的flag的初始值,将增益为正的区块的flag设为1,将增益小于等于0的区块的flag设为0,然后,令其中,flag
i
表示视频帧中第i个区块的flag,此时,增益为正的区块的增益的平均值可设置增益阈值a为根据经验设置的系数。
[0183]
当然,也可以采用分段函数的方式,确定增益统计特征值和增益阈值之间的对应关系,具体可参考第一种方式和第二种方式中介绍的分段函数,不再赘述。
[0184]
基于其它增益统计特征值确定增益阈值的具体实施方式,可参考平均值的处理方式,不再赘述。
[0185]
进一步地,在将增益大于增益阈值的区块,确定为对编码数据进行解码时需要进行滤波处理的区块之前,本技术实施例的方法还包括如下步骤:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第一总增益阈值时,需要在解码时对重建的视频帧进行滤波处理,其中,第一总增益阈值为增益大于步骤s802确定出的增益阈值的区块的增益之和。
[0186]
具体地,参考图9,可通过如下方式确定视频帧中需要进行滤波处理的区块:
[0187]
s901、基于增益为正的区块的增益,获得增益统计特征值。
[0188]
s902、根据增益统计特征值,确定增益阈值。
[0189]
其中,步骤s901和步骤s902的具体实施方式可参考步骤s801和步骤s802,不再赘述。
[0190]
s903、基于率失真优化算法,判断当重建的视频帧滤波后获得的增益达到第一总增益阈值时是否需要在解码时对重建的视频帧进行滤波处理,若需要,则执行步骤s905,否则,执行步骤s904。
[0191]
其中,第一总增益阈值为增益大于步骤s902确定出的增益阈值的区块的增益之和。步骤s903中,可先确定为了要使滤波后的视频帧获得的总增益达到第一总增益阈值,需要在编码数据中增加指示信息的数据量,再基于率失真优化算法,根据增加的数据量和视频帧获得的总增益,判断是否值得对该视频帧进行滤波处理。实际应用中,可确定当视频帧的总增益达到第一总增益阈值时,需要进行滤波的区块数量,进而确定需要在编码数据中增加指示信息的数据量,例如,每一区块的指示信息需要占用m比特的数据量,若有t个区块需要进行滤波,则增加t
×
m比特的数据量。
[0192]
s904、确定不需要对该视频帧进行滤波处理。
[0193]
具体实施时,若确定不需要对该视频帧进行滤波处理,则该视频帧对应的帧级开关frame_flag=0,将帧级开关的信息作为指示信息写入该视频帧的编码数据内。当视频帧对应的帧级开关frame_flag=0时,视频解码端不会对该视频帧进行滤波处理。当视频帧对应的帧级开关frame_flag=1时,视频解码端才会继续从解码数据中获取针对区域的指示信息,基于区域的指示信息,对需要进行滤波处理的区块进行滤波处理。
[0194]
s905、将增益大于增益阈值的区块,确定为对编码数据进行解码时需要进行滤波处理的区块。
[0195]
在上述任一实施方式的基础上,在执行步骤s503之前,可先确定是否需要对视频帧进行滤波处理,若确定需要对视频帧进行滤波处理,则执行步骤s503;若确定不需要对视频帧进行滤波处理,则确定无需执行步骤s503。
[0196]
为此,在执行步骤s503之前,可通过如下方式确定是否需要对视频帧进行滤波处理:基于率失真优化算法,判断当重建的视频帧滤波后获得的增益达到总增益时,是否需要在解码时对重建的视频帧进行滤波处理,其中,总增益为增益为正的区块的增益之和;若需要,则执行步骤s503,否则,确定不需要对该视频帧进行滤波处理。具体实施方式,可参考步骤s703和步骤s903,不再赘述。
[0197]
具体实施时,若确定不需要对该视频帧进行滤波处理,则该视频帧对应的帧级开关frame_flag=0,将帧级开关的信息作为指示信息写入该视频帧的编码数据内。当视频帧对应的帧级开关frame_flag=0时,视频解码端不会对该视频帧进行滤波处理。
[0198]
基于率失真优化算法和视频帧的总增益,进一步判断是否要对视频帧进行滤波,提高针对视频帧的判断准确率。
[0199]
在使用i帧进行解码的方案中,i帧是十分关键的参考帧,为了保证后续视频帧的质量,在解码时可对i帧中的所有区块均进行滤波,提高i帧的质量,进而保证整个视频的质量。为此,具体实施时,可根据实际应用需求选择是否需要在解码时,对i帧的所有区块都进行滤波处理。
[0200]
当选择对i帧的所有区块都进行滤波处理时,可在执行步骤s503之前,先判断当前处理的视频帧是否为i帧,若该视频帧为i帧,则将该视频帧中的各个区块,确定为解码时需要进行滤波处理的区块;若该视频帧不是i帧,则执行步骤s503以及后续的步骤。例如,针对目前avs3的帧间预测(ra和ldb配置下)进行解码效率优化时,为了保证性能没有明显下降而不对i帧的区块进行筛选,即i帧中所有的区块均需要滤波。
[0201]
当不选择对i帧的所有区块都进行滤波处理时,则在执行步骤s503之前不需要判断当前处理的视频帧是否为i帧,即i帧的处理方式与其他帧的处理方式相同,具体处理方
式参考图5~图9。例如,当本技术实施例的方法应用于帧内预测帧以及ai(all intra)配置下时,可不再对i帧进行特殊处理,即对所有视频帧均执行的相同的筛选操作。
[0202]
参考图10,基于与上述视频编码方法相同的发明构思,本技术实施例还提供了一种视频解码方法,具体包括以下步骤:
[0203]
s1001、获取视频帧的编码数据,视频帧包括至少两个区块,编码数据中包含需要进行滤波处理的区块的指示信息,指示信息是根据至少两个区块在滤波处理后获得的增益的增益分布确定的。
[0204]
具体实施时,指示信息中指示的需要进行滤波处理的区块为增益大于增益阈值的区块,该增益阈值是根据视频帧中的至少两个区块在滤波处理后获得的增益的增益分布确定的。
[0205]
具体实施时,确定出视频帧的指示信息的具体实施方式可参考图5~图9所示的方法,不再赘述。
[0206]
s1002、从编码数据中获得重建的视频帧。
[0207]
s1003、基于指示信息,对重建的视频帧中需要进行滤波处理的区块进行滤波处理。
[0208]
具体实施时,每一视频帧的编码数据中均携带有指示信息,该指示信息用于指示该视频帧中的哪些区块需要进行滤波处理。例如,指示信息可包括视频帧中每个区块对应的flag标识,当区块的flag=1时,表示解码时需要对该区块进行滤波处理,当区块的flag=0时,表示解码时不需要对该区块进行滤波处理。再如,指示信息可包括视频帧中需要进行滤波处理的区块的序号,例如指示信息中包含序号1、4、5,则需要对视频帧中的第1、4、5个区块进行滤波处理。
[0209]
具体实施时,视频编码端将指示信息写入编码数据中,并发送给视频解码端。视频解码端从编码数据中获得重建的视频帧,基于编码数据中的指示信息,对重建的视频帧中需要进行滤波处理的区块进行滤波处理,获得滤波后的视频帧并播放。
[0210]
本技术实施例的视频解码方法,在视频编码端完成对视频帧的编码后,从视频帧的编码数据中获得重建的视频帧,对重建的视频帧进行滤波处理,并获得视频帧中各个区块因滤波处理带来的增益,根据各个区块的增益分布,筛选出增益较大的区块,使得视频解码端在解码时仅对增益较大的区块进行滤波处理,对增益较小的区块不进行滤波处理,在尽可能提高滤波后视频帧的增益的前提下,减少参与滤波的区块数量,在几乎不影响视频质量或视频质量下降不明显的情况下,降低解码复杂度,提升滤波效率。
[0211]
具体实施时,编码数据中还包括用于指示视频帧是否需要进行滤波处理的帧级开关信息。相应地,在执行步骤s1003之前,本技术实施例的视频解码方法还包括如下步骤:从编码数据中获取帧级开关信息,若获取的帧级开关信息表示需要对视频帧进行滤波处理,则执行步骤s1003;若获取的帧级开关信息表示不需要对视频帧进行滤波处理,则无需执行步骤s1003,即无需对视频帧进行滤波处理。
[0212]
具体实施时,可通过帧级开关表示帧级开关信息,若视频帧对应的帧级开关frame_flag=0,则表示不需要对该视频帧进行滤波处理;若视频帧对应的帧级开关frame_flag=1,则表示需要对该视频帧进行滤波处理,然后再根据区块的指示信息进行滤波处理。
[0213]
具体实施时,可通过以下任一方式确定帧级开关信息:
[0214]
第一种方式:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第一总增益阈值时,是否需要在解码时对重建的视频帧进行滤波处理,其中,第一总增益阈值为视频帧中增益大于增益阈值的区块的增益之和。
[0215]
第二种方式:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第二总增益阈值时,是否需要在解码时对重建的视频帧进行滤波处理;
[0216]
第三种方式:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到总增益时,是否需要在解码时对重建的视频帧进行滤波处理,其中,总增益为增益为正的区块的增益之和。
[0217]
上述三种方式的具体实现过程,可参考视频解码方法对应的实施例,不再赘述。
[0218]
基于视频帧的第一总增益阈值、第二总增益阈值或总增益,进一步判断是否需要对视频帧进行滤波,提高针对视频帧的判断准确率。
[0219]
如图11所示,基于与上述视频编码方法相同的发明构思,本技术实施例还提供了一种视频编码装置110,包括解码模块1101、滤波模块1102、筛选模块1103和发送模块1104。
[0220]
解码模块1101,用于从视频帧的编码数据中获得重建的视频帧,所述视频帧包括至少两个区块。
[0221]
滤波模块1102,用于对重建的视频帧进行滤波处理获取重建的视频帧中的各个区块在滤波处理后获得的增益。
[0222]
筛选模块1103,用于根据各个区块的增益分布,从所述各个区块中确定出对所述编码数据进行解码时需要进行滤波处理的区块;
[0223]
发送模块1104,用于发送所述视频帧的编码数据,所述编码数据中包含需要进行滤波处理的区块的指示信息。
[0224]
可选地,筛选模块1103具体用于:根据各个区块的增益分布,确定出增益阈值;将增益大于增益阈值的区块,确定为对编码数据进行解码时需要进行滤波处理的区块。
[0225]
可选地,筛选模块1103具体用于:基于增益为正的区块的增益,获得增益统计特征值;根据增益统计特征值,确定增益阈值。
[0226]
可选地,筛选模块1103还用于:在将增益大于增益阈值的区块,确定为对编码数据进行解码时需要进行滤波处理的区块之前,基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第一总增益阈值时,需要在解码时对重建的视频帧进行滤波处理,其中,第一总增益阈值为增益大于增益阈值的区块的增益之和。
[0227]
可选地,筛选模块1103具体用于:
[0228]
根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和;
[0229]
基于总增益保留比例与总增益的乘积,获得第二总增益阈值;
[0230]
按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于第二总增益阈值时,将参与累加处理的至少两个增益中的最小增益,确定为增益阈值。
[0231]
可选地,筛选模块1103还用于:根据增益为正的区块的数量和视频帧中的区块总数之间的比值,确定总增益保留比例;或者,根据增益为正的区块的增益统计特征值,确定总增益保留比例。
[0232]
可选地,筛选模块1103还用于:在对区块的增益进行累加处理之前,基于率失真优
化算法,确定当重建的视频帧滤波后获得的增益达到第二总增益阈值时,需要在解码时对重建的视频帧进行滤波处理。
[0233]
可选地,筛选模块1103还用于:在根据各个区块的增益分布,从各个区块中确定出对编码数据进行解码时需要进行滤波处理的区块之前,基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到总增益时,需要在解码时对重建的视频帧进行滤波处理,其中,总增益为增益为正的区块的增益之和。
[0234]
本技术实施例提的视频编码装置与上述视频编码方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
[0235]
如图12所示,基于与上述视频解码方法相同的发明构思,本技术实施例还提供了一种视频解码装置120,包括获取模块1201、视频解码模块1202和视频滤波模块1203。
[0236]
获取模块1201,用于获取视频帧的编码数据,视频帧包括至少两个区块,编码数据中包含需要进行滤波处理的区块的指示信息,指示信息是根据至少两个区块在滤波处理后获得的增益的增益分布确定的。
[0237]
视频解码模块1202,用于从编码数据进行解码中获得重建的视频帧。
[0238]
视频滤波模块1203,用于基于指示信息,对重建的视频帧中需要进行滤波处理的区块进行滤波处理。
[0239]
可选地,指示信息中指示的需要进行滤波处理的区块为增益大于增益阈值的区块,增益阈值是根据至少两个区块在滤波处理后获得的增益的增益分布确定的。
[0240]
可选地,增益阈值是通过如下方式确定的:
[0241]
基于至少两个区块中增益为正的区块的增益,获得增益统计特征值;
[0242]
根据增益统计特征值,确定增益阈值。
[0243]
可选地,编码数据中还包括用于指示视频帧是否需要进行滤波处理的帧级开关信息,帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第一总增益阈值时,是否需要在解码时对重建的视频帧进行滤波处理,其中,第一总增益阈值为视频帧中增益大于增益阈值的区块的增益之和。
[0244]
相应地,视频滤波模块1203还用于:在基于指示信息,对重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,确定从编码数据中获取的帧级开关信息表示需要对视频帧进行滤波处理。
[0245]
可选地,增益阈值是通过如下方式确定的:
[0246]
根据各个区块的增益分布,确定总增益为增益为正的区块的增益之和;
[0247]
基于总增益保留比例与总增益的乘积,获得第二总增益阈值;
[0248]
按区块的增益从大到小的顺序,对区块的增益进行累加处理,当累加值大于或等于第二总增益阈值时,将参与累加处理的至少两个增益中的最小增益,确定为增益阈值。
[0249]
可选地,总增益保留比例是根据增益为正的区块的数量和视频帧中的区块总数之间的比值确定的;或者,总增益保留比例是根据增益为正的区块的增益统计特征值确定的。
[0250]
可选地,编码数据中还包括用于指示视频帧是否需要进行滤波处理的帧级开关信息,帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到第二总增益阈值时,是否需要在解码时对重建的视频帧进行滤波处理。
[0251]
相应地,视频滤波模块1203还用于:在基于指示信息,对重建的视频帧中需要进行
滤波处理的区块进行滤波处理之前,确定从编码数据中获取的帧级开关信息表示需要对视频帧进行滤波处理。
[0252]
可选地,编码数据中还包括用于指示视频帧是否需要进行滤波处理的帧级开关信息,帧级开关信息是通过如下方式确定:基于率失真优化算法,确定当重建的视频帧滤波后获得的增益达到总增益时,是否需要在解码时对重建的视频帧进行滤波处理,其中,总增益为增益为正的区块的增益之和。
[0253]
相应地,视频滤波模块1203还用于:在基于指示信息,对重建的视频帧中需要进行滤波处理的区块进行滤波处理之前,确定从编码数据中获取的帧级开关信息表示需要对视频帧进行滤波处理。
[0254]
本技术实施例提的视频解码装置与上述视频解码方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
[0255]
基于与上述视频编码以及视频解码方法相同的发明构思,本技术实施例还提供了一种电子设备,该电子设备具体可以为图4所示的终端设备或服务器等。如图13所示,该电子设备130可以包括处理器1301和存储器1302。
[0256]
处理器1301可以是通用处理器,例如中央处理器(cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0257]
存储器1302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器1302还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0258]
本技术实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述视频编码方法或视频解码方法的程序。
[0259]
上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
[0260]
以上,以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本技术实施例的方法,不应理解为对本技术实施例的限制。本技术
领域的技术人员可轻易想到的变化或替换,都应涵盖在本技术实施例的保护范围之内。
再多了解一些

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

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

相关文献