视频压缩方法、装置及系统与流程
未命名
10-25
阅读:90
评论:0
1.本技术涉及电子技术领域中存储领域、互联网应用领域和通信领域,具体涉及一种视频压缩方法、装置及系统。
背景技术:
2.随着多媒体时代的到来,视频大量地出现在人们的日常生活中。经过数字化后的视频具有海量数据性,这给视频的存储和传输带来了很多的困难;调听视频时,由于视频的数据量过大,也会出现调听加载过慢的情况。为解决视频数据量大的问题,视频压缩技术运用而生。
3.现有技术,常用的视频压缩技术主要为基于显著性图的自编码网络进行视频压缩,其编码时将待压缩的视频图像帧输入网络,通过卷积层逐步减少图像的特征图数目和空间尺度,将图像从像素空间映射到新的特征空间;然后通过量化、cabac(context-based adaptive binary arithmetic coding)熵编码去除特征空间内的统计冗余,通过显著性图指导像素分配,最后输出码流得到编码结果,实现去除视频图像中的空间冗余。
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.第七方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的视频压缩方法的步骤。
76.本技术实施例提供的视频压缩方法、装置及系统,通过对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对视频帧的第一初始视频数据进行下采样,得到第一目标视频数据,并对第一目标视频数据进行感兴趣区域分析,得到视频帧中各感兴趣区域的坐标;针对每个视频帧,根据视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对视频帧进行区域码率调整;对区域码率调整后的各视频帧进行编码和封装,得到压缩后的目标视。本技术提供的视频压缩方法不仅适用
于实时视频流,还能应用于离线视频文件,采用一系列压缩算法,可以有效提高对原有视频的压缩率,解决了海量视频数据带来的存储压力,有利于提高在视频调听中快速加载大量的音视频,提高了系统的响应速度,从而提高用户在视频的调用过程的体验感。
附图说明
77.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
78.图1是本技术实施例提供的视频压缩方法的流程示意图之一;
79.图2是本技术实施例提供的自编码器的结构示意图之一;
80.图3是本技术实施例提供的自编码器的结构示意图之二;
81.图4是本技术实施例提供的神经网络模型的架构图;
82.图5是本技术实施例提供的下采样网络的结构示意图;
83.图6是本技术实施例提供的上采样网络的结构示意图;
84.图7是本技术实施例提供的人脸感兴趣区域分析的示意图之一;
85.图8是本技术实施例提供的人脸感兴趣区域分析的示意图之二;
86.图9是本技术实施例提供的区域码率调整的流程示意图;
87.图10是本技术实施例提供的基于帧间差异化的视频编码算法的流程示意图;
88.图11是本技术实施例提供的归一化因子的效果示意图;
89.图12是本技术实施例提供的不同频带的归一化系数的分布图;
90.图13是本技术实施例提供的u-v对照图;
91.图14是本技术实施例提供的视频插帧算法的流程示意图;
92.图15是本技术实施例提供的视频压缩方法的流程示意图之二;
93.图16是本技术实施例提供的压缩和还原的流程示意图;
94.图17是本技术实施例提供的下采样的流程示意图;
95.图18是本技术实施例提供的上采样的流程示意图;
96.图19是本技术实施例提供的视频压缩装置的结构示意图;
97.图20是本技术实施例提供的视频压缩系统的结构示意图;
98.图21是本技术实施例提供的终端的结构示意图;
99.图22是本技术实施例提供的网络设备的结构示意图
100.图23是本技术实施例提供的电子设备的结构示意图;
具体实施方式
101.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
102.为了便于更加清晰地理解本发明各实施例,首先对一些相关的背景知识进行如下
介绍。
103.随着多媒体时代的到来,视频大量地出现在人们的日常生活中。视频具有连续性强、数据量大的特点。在视频呼叫系统中,离线视频通常用来保存用户之间的通话过程,作为后续的一个可回溯的流程。
104.经过数字化后的视频具有海量数据性,这给视频的存储和传输带来了很多的困难;调听视频时,由于视频的数据量过大,也会出现调听加载过慢的情况。为解决视频数据量大的问题,视频压缩技术运用而生。
105.现有的视频压缩技术有两种,第一种是基于传统的视频压缩技术,主要包括无损压缩和有损压缩。第二种是基于深度学习的视频压缩技术,主要包括基于深度学习的帧内压缩与帧间压缩。
106.第一种基于传统的视频压缩技术,主要包括图像压缩算法以及视频插帧算法。根据解压缩后数据与原始数据是否完全相同,数据压缩方法可分为无损压缩和有损压缩。无损压缩算法的原理是去除图片统计上的冗余,其过程是可逆的,目前应用较为广泛的无损压缩方法主要有行程编码、哈夫曼编码、算术编码和字典编码等。有损压缩方法的原理是根据人眼对于某些视觉特征不敏感的原理对图像信息进行筛选,从而大幅度提升压缩比率,常用的有损压缩方法主要包括预测编码、矢量编码、金字塔方法、子带编码和变换编码等。视频插值方法一般是估计两张输入帧之间的密集运动,然后根据运动估计的结果在输入图像之间插入一个或若干个中间帧。
107.第二种基于深度学习的视频压缩技术,视频压缩可以分成帧内压缩与帧间压缩。帧内压缩只利用当前帧的帧内信息进行压缩,可以视为图像压缩。帧间压缩利用已经解码的参考帧信息,消除时间冗余,达到压缩的目的。基于深度学习的帧内压缩算法主要有自动编解码器与像素生成模型两类。与帧内压缩相比,帧间压缩要求采用有效的方法消除视频时间维度上的冗余,其中关键的一步是利用已经解码的帧对下一帧进行预测,然后再对预测图像与真实图像的残差信息进行编码,对残差的压缩需要用到帧内压缩的相关算法,因此帧内压缩是帧间压缩的基础。
108.现有技术,常用的视频压缩技术为基于深度学习的视频压缩技术,其实现流程主要分为两部分。
109.一是基于显著性图的自编码网络进行视频压缩,其编码时将待压缩的视频图像帧输入网络,通过卷积层逐步减少图像的特征图数目和空间尺度,将图像从像素空间映射到新的特征空间;然后通过量化、cabac熵编码去除特征空间内的统计冗余,通过显著性图指导像素分配,最后输出码流得到编码结果,实现去除视频图像中的空间冗余。
110.二是基于多尺度卷积网络和对抗训练的视频插帧,其采用多尺度结构更能捕捉物体的运动信息,而对抗训练能使插帧结果更符合人类的视觉系统;通过对抗生成网络(generative adversarial networks,gan)的生成器得到插帧结果,通过gan的判别器判别插帧结果的准确性;通过对比损失函数的选择和多尺度结构对插帧结果的影响,实现去除视频中相邻图像帧之间的时间冗余。
111.然而,上述方法一中,普通的量化算法在低码率的情况下图像的连续性较差,会出现明显的伪轮廓和块效应等问题,且图像压缩方法中各模块(变换、量化、编码)之间是独立的,不能联合优化。上述方法二中,通过插帧算法实现去除视频中相邻图像帧之间的时间冗
余,主要是通过运动估计(光流估计)和像素合成实现的,其质量很大程度上受到光流估计效果的影响,传统的光流估计方法大多都不能精确估计位移较大时的光流,并且在输入受到遮挡、模糊等噪声的影响时并不能得到精确的估计结果,从而使得插帧结果存在很大的失真,影响播放体验;无法将编码器与解码器通过深度神经网络作为桥梁连接起来,不能对码率进行很好的控制。
112.且方法一和方法二均存在以下缺点:只考虑对图像信息的压缩,而不关注人眼对边缘、纹理等特殊信息的敏感性,因而在低码率的情况下并不能提供较好的压缩质量;通过引入基于人的注意力机制进行视频压缩,主要作用于实时视频流传输,未考虑到离线视频的高压缩率场景,其作用到离线视频文件压缩上并未起到很好的压缩效果;未考虑到对静态视频文件压缩的场景,直接将上述方法应用到静态视频文件上,其压缩比不足以解决海量视频所引起的存储问题。由于压缩率比较低,在视频调听中需要加载大量的音视频,影响了系统的响应速度,从而使视频的调用过程体验感较差。
113.因此,本技术提供了视频压缩方法、装置及系统以解决上述问题。
114.图1为本技术实施例提供的视频压缩方法的流程示意图之一。参照图1,本技术实施例提供一种视频压缩方法,可以包括:
115.步骤101:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据。
116.具体地,初始视频,即原始视频,可以是实时视频流,也可以是静态视频,即离线视频,如视频呼叫形成的通话视频、下载的电视剧等。
117.实际应用中,对待压缩的初始视频(原始视频)进行解码,解码出单帧的yuv视频数据,再将yuv数据转换成对应的rgb视频数据,即第一初始视频数据。
118.其中,yuv是一种彩色编码系统,用于优化彩色视频信号传输的色彩模型,yuv分为三个分量,y表示亮度(luminance或luma),也就是灰度值(灰阶值),uv表示的是色度(chrominance或chroma),描述影像的色彩及饱和度。rgb是一种色彩模式,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,rgb即是代表红、绿、蓝三个通道的颜色。
119.步骤102:针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标。
120.实际应用中,针对每个视频帧,对rgb视频数据,即第一初始视频数据进行下采样,得到下采样后的rgb视频数据,即第一目标视频数据。进一步地,对第一目标视频数据进行感兴趣区域的分析,得到各感兴趣区域的坐标。
121.优选地,所述下采样为人工智能(artificial intelligence,ai)下采样。
122.示例性地,将rgb视频数据输入至ai下采样网络中进行ai下采样,得到下采样后的rgb视频数据。对ai下采样后的rgb视频数据进行感兴趣区域的分析,得到各感兴趣区域的坐标。
123.此外,本技术实施例提供一种新的深度学习的训练模型,可以用于下采样或上采样。在深度学习中,自编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,即编码,同时用学习到的新特征(隐含特征)可以重构出原始输入数据,即解码。自编
码器可以用于特征降维,类似主成分分析(principal component analysis,pca)pca,但是相比pca其性能更强、效率更高,这是由于神经网络模型可以提取更有效的新特征。除了进行特征降维,自编码器学习到的新特征可以送入有监督学习模型中,所以自编码器可以起到特征提取器的作用。
124.自编码器有三大特点:一是自编码器是数据相关的,这意味着自编码器只能压缩那些与训练数据类似的数据,比如使用人脸图片训练出来的自动编码器在压缩别的图片,如树木图片,其性能很差,因为自编码器学习到的特征是与人脸相关的;二是自编码器是有损的,即自编码器解压缩的输出与原来的输入相比是退化的,mp3和jpeg等压缩算法也是如此,这与无损压缩算法不同;三是自编码器是从数据样本中自动学习的,因此自编码器很容易对指定类的输入训练出一种特定的编码器,而不需要完成任何新工作。
125.搭建自编码器包括:搭建编码器、搭建解码器和设定损失函数,用以衡量由于压缩而损失掉的信息。编码器和解码器一般都是参数化的方程,并关于损失函数可导,优选为神经网络。编码器和解码器的参数可以通过最小化损失函数而优化,例如自适应矩估计(adaptive moment estimation,adam)。
126.自编码器可看作由两个级联网络组成,第一个网络是一个编码器,负责接收信号x(第一初始视频数据),并将信号x通过函数h(下采样函数)变换为信号y(第一目标视频数据),如式(1)所示:
127.y=h(x)
ꢀꢀ
(1)
128.第二个网络是一个解码器,将编码的信号y(第一目标视频数据)作为其输入,通过函数f(上采样函数)得到重构的信号r(第一初始视频数据),如式(2)所示:
129.r=f(y)=f(h(x))
ꢀꢀ
(2)
130.定义误差e为信号x与信号r之差,即e=x-r,该误差e又称为l1损失,网络训练的目标是减少l1损失,同多层感知器(multilayer perceptron,mlp)一样,误差e(即损失值)被反向传播回编码器和解码器的隐藏层。
131.参见图2,图2是本技术实施例提供的自编码器的结构示意图之一,自编码器的结构和多层感知机类似,输入神经元和输出神经元的个数相等。隐藏层的个数比输入和输出少,表示隐藏层可以很好地总结输入的特征,可以用来还原出与原始输入匹配的输出,信号x经输入神经元与中间层神经元后处理,转换成了信号y(抽象特征);信号y经中间层神经元与输出神经元处理后,重构成了信号r。参见图3,是本技术实施例提供的自编码器的结构示意图之二,对图2所示的自编码器进行简化后的自编码器,对于中间层神经元和连接,可以通过简化其结构来进行加速。
132.在离线视频的压缩场景下,上采样/下采样使用自编码器的原理结构进行联合设计和训练,从而达到存储优化和高质量还原的目的。参见图4所示的本技术实施例提供的神经网络模型的架构图:神经网络模型整体采用自编码器的类型,编码器(encoder)和解码器(decoder)内部的具体实现与u型网络(unet)相同。其中下采样(编码器)使用的比较频繁,并且下采样过程对延时更加敏感,因此下采样网络结构层数设置较低。将x输入至编码器后得到抽象特征z,抽象特征z经过解码器后输出x'。
133.参见图5,图5是本技术实施例提供的下采样网络的结构示意图,包含4层,输入的视频帧的尺寸是256x256x3,经下采样处理后,输出的视频帧的尺寸是128x128x3,进行两倍
下采样,即输出设置的为输入的1/2。
134.对损失的数据进行还原的过程由于需要根据现有的数据对损失的数据进行还原,且对时延敏感度不高,所以可以使用更多的层。参见图6,图6是本技术实施例提供的上采样网络的结构示意图,包含9层,输入的视频帧的尺寸是128x128x3,输出的视频帧的尺寸是256x256x3,进行两倍上采样。通过新的深度学习训练模型,提升卷积神经网络模型的帧内与帧间压缩性能,并将改进后的人眼注意力机制引入卷积神经网络中,以提升神经网络的拟合能力。
135.步骤103:针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整。
136.具体地,宏块(macroblock),是视频编码技术中的一个基本概念,通过将画面分成一个个大小不同的块在不同位置实行不同的压缩策略,一个宏块由一个亮度像素块和附加的两个色度像素块组成。宏块设置参数是指针对宏块设置的参数。
137.实际应用中,针对每个视频帧,根据该视频帧中各感兴趣区域在整个视频帧中的坐标,结合编码宏块的设置,即宏块设置参数,进行区域码率调整:增加感兴趣区域的码率,降低非感兴趣区域的码率。
138.基于深度学习的视频上下采样算法(训练模型),通过神经网络提取到的视频画面新特征,除了可以进行特征降维,还可以将学习的新特征送入到监督学习模型中,通过中间层的神经元和连接,实现对rgb视频数据多达两倍的下采样压缩,进而优化数据存储空间,即利用ai技术,对视频帧数据进行分辨率维度的下采样,减少原始视频帧的数据,解决了离线视频文件压缩率不高以及由于数据量过大导致的调听响应慢的问题,实现了离线视频文件的快速调用。
139.步骤104:对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
140.实际应用中,在对视频帧进行区域码率调整后,可以对各视频帧进行编码,可以采用h264编码,也可以进行h265编码,得到编码后的各视频帧。由于h264编码相对于h265编码,更为通用,为了保证压缩后视频的通用性,优选采用h264编码。
141.进一步地,对编码后的各视频帧进行封装,得到压缩后的目标视频,目标视频可以是mp4文件,可以是mkv文件,还可以是avi文件等,本技术对此不作任何限定。
142.本技术实施例提供的视频压缩方法,通过对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对视频帧的第一初始视频数据进行下采样,得到第一目标视频数据,并对第一目标视频数据进行感兴趣区域分析,得到视频帧中各感兴趣区域的坐标;针对每个视频帧,根据视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对视频帧进行区域码率调整;对区域码率调整后的各视频帧进行编码和封装,得到压缩后的目标视。本技术提供的视频压缩方法不仅适用于实时视频流,还能应用于离线视频文件,采用一系列压缩算法,可以有效提高对原有视频的压缩率,解决了海量视频数据带来的存储压力,有利于提高在视频调听中快速加载大量的音视频,提高了系统的响应速度,从而提高用户在视频的调用过程的体验感。
143.在本技术一个或更多个可选的实施例中,所述感兴趣区域为人脸感兴趣区域;相应地,所述对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区
域的坐标,实现过程可以如下:
144.基于滑动窗口人脸检测算法,对所述第一目标视频数据进行人脸感兴趣区域分析,得到各人脸感兴趣区域的坐标。
145.具体地,人脸感兴趣区域是指观察者在观看时所感兴趣的区域,即人脸对视频帧或视频的感兴趣区域。滑动窗口人脸检测算法是指基于滑动窗口进行人脸感兴趣区域检测的算法。
146.实际应用中,在离线视频的高压缩率场景下,可以采用改进型感兴趣区域的帧内压缩算法,即引入了滑动窗口人脸快速检测算法(滑动窗口人脸检测算法)。如此,相对于现有的多尺度滑动窗口算法,在人脸检测速度上能提升10%,对于大文件的离线视频的压缩时间效率上有较快地提升。
147.可选地,所述基于滑动窗口人脸检测算法,对所述第一目标视频数据进行人脸感兴趣区域分析,得到各人脸感兴趣区域的坐标,包括:
148.基于滑动窗口人脸检测算法的滑动窗口,将所述视频帧分割为多个子图;
149.针对每个子图,根据所述子图对应的第一目标视频数据提取所述子图的图像特征,并将所述图像特征输入至分类器进行人脸感兴趣区域分析,得到分析结果;
150.在所述分析结果为所述子图为人脸感兴趣区域的情况下,将所述子图在所述视频帧中的位置,作为所述人脸感兴趣区域的坐标。
151.实际应用中,参见图7,图7是本技术实施例提供的人脸感兴趣区域分析的示意图之一:滑动窗口人脸检测算法,基于图像像素分割技术,将视频帧分割截取设定大小的窗口,即小图,设定大小为滑动窗口的窗口大小,可以根据需求进行调整。然后将窗口(小图)的图像特征放到分类器中进行人脸感兴趣区域分析,即判断。
152.具体判断,参见图8,图8是本技术实施例提供的人脸感兴趣区域分析的示意图之二,针对视频帧中的任一小图,提取该小图的图像特征,如多个局部二值模式(local binary pattern,lbp)特征,从第一个lbp特征开始进行判决,如对第一个lbp特征(特征1)进行是不是人脸的判决,如果是人脸则该小图通过所有分类器,如果不是人脸,则继续第二个lbp特征(特征2)的判决,如此类推,直至最后一个,即会在某一级分类器被排除。
153.在本技术一个或更多个可选的实施例中,所述宏块设置参数包括量化参数偏移值;相应地,所述根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整,包括:
154.针对所述视频帧中每个宏块,根据所述视频帧中各感兴趣区域的坐标,判断所述宏块是否在感兴趣区域内;
155.若是,设置所述宏块的量化参数偏移值为预设负数;
156.若否,设置所述宏块的量化参数偏移值为预设正数;
157.根据所述视频帧中各所述宏块的量化参数偏移值,对所述视频帧进行区域码率调整。
158.实际应用中,在进行区域码率调整,可以基于区域码率调整算法进行调整,区域码率调整的关键是对宏块进行实际编码前设置其量化参数偏移值(constant quantizer offset,qpoffset),量化参数偏移值大于零表示给当前宏块分配更少的码率,量化参数偏移值小于零表示给当前宏块分配更多的码率。对于在感兴趣区域内的宏块,其需要的编码
质量更高,设置qpoffset为负数,分配更多的码率,对于不在感兴趣区域内的宏块,其需要的编码质量较低,设置qpoffset为正数,分配更少的码率。如此,可以实现感兴趣区域的高质量编码,非感兴趣区域的低质量编码,相较于现有的感兴趣区域检测算法,检测效率上可以达到10%的提升,即一定程度上提升了检测效率。基于针对离线视频特殊场景的人眼感兴趣机制,对视频宏块动态分配对应的码率,有效解决了低码率场景下离线视频文件压缩效率不高的问题。
159.参见图9所示的本技术实施例提供的区域码率调整的流程示意图:针对任一视频帧,获取感兴趣区域,然后根据感兴趣区域的坐标,判断当前宏块是否在感兴趣区域内,若是,设置当前宏块的量化参数偏移值为负数,若否,设置当前宏块的量化参数偏移值为正数。之后进行宏块编码,即区域码率调整。
160.在本技术一个或更多个可选的实施例中,所述对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频,包括:
161.基于帧间差异化,对各指定视频帧进行编码,得到编码后的各所述指定视频帧,所述指定视频帧为区域码率调整后的所述视频帧;
162.对编码后的各所述指定视频帧进行封装,得到压缩后的目标视频。
163.实际应用中,在进行各视频帧进行编码时,可以采用基于帧间差异化的视频编码算法。该算法是指在视频编码算法框架中加入基于ssim的分歧归一化算法,即基于帧间差异化对各指定视频帧进行编码,可以优化编码过程中的码率分配,使画质ssim指标基本不变,降低所需的码率。进一步地,对编码后的各指定视频帧进行封装,得到压缩后的视频帧。
164.可选地,所述基于帧间差异化,对各指定视频帧进行编码,得到编码后的各所述指定视频帧,具体实现过程可如下:
165.确定各所述指定视频帧中的关键帧和参考帧,并将各所述指定视频帧划分为多个画面组,其中,每个画面组中包括一个关键帧和至少一个参考帧;
166.对各所述关键帧进行编码,得到编码后的各所述关键帧;
167.针对每个参考帧,计算所述参考帧与目标帧的残差值,所述目标帧为所述参考帧所属的画面组中的关键帧或上一个参考帧;对所述残差值进行离散余弦变换和基于帧间差异化的归一化计算,得到归一化后的残差值;对所述归一化后的残差值进行量化,得到量化后的所述残差值;对量化后的所述残差值进行熵编码,得到编码后的各所述参考帧。
168.实际应用中,基于帧间差异化的视频编码算法是对h264编码过程进行优化,输入可以是视频序列,也可以是视频帧,帧的像素格式可以为yuv,也可以为rgb。
169.识别各指定视频帧中的关键帧和参考帧,并按照关键帧的位置,将各指定视频帧划分为多个画面组,即两个关键帧之间的参考帧以及两个关键帧中的第一个关键帧划分为一个画面组(group of pictures,gop)。对于关键帧,即i帧,采用h264编码,即对判断为关键帧的视频帧,使用帧内预测来进行帧内压缩。基于帧间差异化的视频编码算法主要是针对于参考帧,即p帧和b帧。
170.参见图10,图10是本技术实施例提供的基于帧间差异化的视频编码算法的流程示意图:针对任一参考帧,首先计算该参考帧(输入的视频帧)与该参考帧所处gop中的目标帧(关键帧或上一个参考帧)的残差值(残差数据):在编码过程中,宏块采用4x4到16x16大小的变化单元进行编码,使用帧内预测来进行帧内压缩。对判断参考帧的视频帧,与它当前所
处的gop组中的关键帧或者前面的帧进行残差计算。其中,d表示感知失真,即误差。
171.然后对得到的残差值进行离散余弦变换(discrete cosine transform,dct),即变换,把视频帧转换到频域空间,得到频域空间的残差值。转换到频域空间有利于数据分析,易于把人眼不太敏感的高频特征去除。
172.进一步地,将频域空间的残差值进行基于帧间差异化的归一化,即dct域进行基于帧间差异化的归一化计算,将dct域的残差值变换为基于dct域ssim索引的感知一致空间域的残差值,即归一化后的残差值。进一步地,在感知一致空间域上对残差值进行量化,得到量化后的残差值,以减少比特占用。在感知一致空间域上,根据qpoffset对残差值进行不同程度的数据量化,根据内容进行自适应,而不是整个帧的所有宏块均使用同一个量化步长。
173.之后,对量化后的残差值进行熵编码,从而得到编码后的视频帧。对量化后的残差值进行熵编码,可以进一步无损地降低数据间的冗余比特,减少总体的比特占用,从而得到编码后的视频帧,即码流。
174.基于帧间差异归一化的视频编码算法,在原有视频编码框架中加入基于ssim(structural similarity,结构相似性)的分歧归一化算法,优化编码过程中的码率分配,从而达到画质ssim指标基本不变,所需码率降低的目标,解决离线视频文件视频画面场景快速切换时需要更高码率的问题。实现了低码率高清晰度的视频播放质量,解决了传统视频压缩技术在低码率的情况下图像的连续性较差,会出现明显的伪轮廓和块效应等问题。其中,ssim是图像质量的评价指标,该指标通过对比图像结构的相似度,能够更好的适应人类的视觉感知。
175.可选地,所述计算所述参考帧与目标帧的残差值,包括:
176.针对所述参考帧中每个宏块,根据所述宏块的色彩信息和时间冗余,以及参考宏块的色彩信息和时间冗余,计算所述宏块与所述参考宏块的子残差值,所述参考宏块为所述宏块映射在所述目标帧中的宏块;
177.根据各所述子残差值,确定所述参考帧与目标帧的残差值。
178.实际应用中,针对参考帧中的当前宏块,确定当前宏块映射在目标帧上的参考宏块,然后计算当前宏块与参考宏块的子残差值。遍历参考帧中的所有宏块,得到各宏块对应的子残差值,将各子残差值进行组合,得到参考帧与目标帧的残差值。如此,以宏块为单位,进行子残差值的计算,能够提高残差值的效率和准确度。
179.可选地,所述对所述残差值进行离散余弦变换和基于帧间差异化的归一化计算,得到归一化后的残差值,包括:
180.按照所述参考帧中宏块的划分,将所述残差值进行离散余弦变换,得到频域空间的所述残差值;
181.基于帧间差异化,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
182.实际应用中,对计算出来的残差值,按照宏块的划分,对每个宏块的子残差值进行离散余弦变换,把视频帧转换到频域空间。转换到频域空间有利于数据分析,易于把人眼不太敏感的高频特征去除。进一步地,基于帧间差异化,对频域空间的残差值进行归一化计算,得到归一化后的残差值。
183.基于帧间差异化的视频编码算法使用的归一化因子与图像局部特性和图像内容
直接相关。归一化因子的大小直接关系到局部图像的视觉重要程度。例如,视觉不显著的宏块会因此被量化得粗糙一些,而视觉重要性高的宏块会因此使其量化的步长变小。dc和ac能量的期望是视觉重要性的参考,具有更大能量的宏块会因此而使其量化步长加大。这样可以进行码率的重分配,使其从视觉不重要的地方分配到视觉重要的地方。从ssim值的角度来说,可以实现变换残差在视觉均衡空间中的统一处理。dct变换是将数据从时(空)域变换到频域,在频域平面上变换系数是二维频域变量u和v的函数。对应于u=0,v=0的系数,称做直流分量,即dc系数,其余63个系数称做ac系数,即交流分量。
184.对于dc、ac的归一化因子计算结果参见图11所示,图11是本技术实施例提供的归一化因子的效果示意图:黑色的地方表示更小的归一化因子。由于人脸和围巾的纹理结构可以掩盖更多的失真,因此可以将其ac系数分配更大的归一化因子。然而,由于亮度在这些纹理区域中相对比较低,对于dc系数,其归一化因子相对小。可以看出,归一化因子的求解结果符合hvs颜色空间的亮度自适应性与纹理掩盖特性。
185.可选地,所述基于帧间差异化,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值,包括:
186.构建帧级的量化矩阵;
187.将所述量化矩阵和帧间差异化结合,得到失真模型;
188.利用所述失真模型,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
189.实际应用中,基于帧间差异化的视频编码优化算法主要分为3个部分,一是将h.264编码过程中预测后得到的离散余弦变换(dct)域的残差值变换为基于dct域ssim索引的感知一致空间的残差值;二是定义一个新的失真模型和一种新的(感知)率失真优化(rate-distortion optimization,rdo)模式选择方案;三是使用一种帧级量化矩阵选择方法,量化矩阵,使得不同频率的归一化系数具有相同的r-d关系。其中,rdo是视频编码中最优选择模型的一种方法,rdo是在计算代价函数时,同时考虑码率和失真度两方面因素的制约,在保证低失真度的同时保证低码率,这样更加有利于视频流的传输。h.264在运动搜索、参考帧择优、模式决策三个方面运用了不同的rdo代价函数,也将非rdo代价函数列为可选模式,以满足不同的需要。
190.1)对于将离散余弦变换(dct)域残差变换为基于dct域ssim索引的感知一致空间的残差值:在现有的视频编码算法中,宏块运动补偿帧间预测技术在提高压缩率方面发挥着重要作用。本技术的优化算法也遵循这个框架,其中先前编码的帧用于预测当前帧,并且仅对预测后的残差进行编码。假设c(k)是编码残差块(宏块的子残差值)的第k个dct变换系数,则归一化系数的计算方式如式(3)所示:
191.c(k)'=c(k)/f(k)(3)
192.其中,f(k)是第k个子带的正则归一化因子,c(k)'为归一化系数。dct变换后,信号由时间域转变为频率域,然后将其分割为若干个子频带,并对其分别进行数字编码的技术。第k个子带就是第k个子频带,k为0时,表示第1个子带。
193.给定预定义量化步长qs,归一化残差的量化过程可以用如下示(4)表示:
194.195.其中,p是量化过程中的舍入偏移。q(k)为归一化残差,即归一化后的残差值。
196.帧间差异归一化过程的目的是将dct域的残差值变换为感知一致空间的残差值。因此,因子f(k)决定了每个对应的变换系数的感知重要性。帧间差异归一化有两种方式,第一种是使用自适应归一化因子,使用预定义的固定步长qs来进行量化。另一种是为每一个编码宏块定义自适应量化矩阵,使用不同的量化步骤对每个系数进行量化。
197.在h264编码算法中,每个宏块内的局部统计信息没有显著变化,因此可以将每个宏块划分为i个子块进行dct变换,xi(k)表示第i个子块中的第k个dct系数。由于ssim指数可以分为dc和ac系数,所以需要对ac和dc系数使用单独的归一化因子,如式(5)所示:
[0198][0199]
其中e指数学中的期望算子,f
dc
表示dc的归一化因子,f
ac
表示ac的归一化因子,xi(k)和yi(k)分别表示第i个子块中的第k个dct系数,x和y表示大小相同的两个图片,可以理解为输入图片和输出图片,yi(k)表示图片y中第i个块中的元素,y(k)表示整个图片。n表示像素点总数。
[0200]
由于对ac和dc系数使用单独的归一化因子,残差的归一化dct系数如下式(6):
[0201][0202]
其中,r(k)'表示整个图像的归一化系数。差异归一化因子在空间上是自适应的,根据宏块的内容确定每个宏块的相对感知重要性。与重要的宏块相比,不太重要的宏块被更粗略地量化。以dc和ac系数的期望为参考,来确定每个宏块的重要性。能量高于平均值的宏块具有更大的量化步长,反之亦然。通过这种方式,从感知上不太重要的区域借用比特,并将它们用于具有更多感知相关性的区域。
[0203]
2)对于定义一个新的失真模型和一种新的感知rdo模式选择方案。
[0204]
视频编码中的rdo过程可以阐述为最小化感知失真d和受限于限定码率值rc的使用比特数r,即最小化感知失真和比特占用,选择合适的编码模式,使得失真最小。编码模式包括量化步长、宏块模式选择、帧内/帧间预测模式选择等。码率控制的rdo模型的目标是确定每帧或每个宏块合适的量化步长qp。通过式(7)把这个过程转化为无约束优化问题:
[0205]
min{j} where j = d+ α
·rꢀꢀ
(7)
[0206]
其中j表示率失真(rd)损失,α表示拉格朗日乘数,用来控制r和d之间的权衡。
[0207]
该算法使用与帧间差异归一化过程一致的新失真模型替换了传统h.264编码过程中的sad(sum of absolute differences)和ssd(sum of squared differences)过程。对每个宏块,失真模型被定义为归一化dct系数之间的ssd,如式(8)所示:
[0208][0209]
其中ri表示第i个子块的归一化系数。对式(8)进一步细化,得到式(9):
[0210][0211]
根据式(9),rdo问题可以转换成式(10):
[0212][0213]
其中,α
h.264
表示h264(h.264)编码中定义的具有预定义量化步长qs的拉格朗日乘法算子。
[0214]
从残差系数正则化角度,所定义的视觉失真可以理解为经过正则化以后原始dct系数与失真dct系数的ssd。因此,在算法中该拉格朗日乘数不会发生改变,即λ=λ
h.264
。
[0215]
由于dct系数的分布不同,因此,对于不同频带的系数最优拉格朗日乘数也不相同。然而,在视频编码的率失真优化中,对所有的系数统一进行考虑,而不同频带上系数分布的各异性并没有被考虑在其中。本算法对码率和失真进行模拟,其中d的计算是将每个量化区间的失真加和,而r的计算是通过每个量化区间的概率计算信息熵。
[0216]
3)使用一种帧级量化矩阵选择方法,使得不同频率的归一化系数具有相同的r-d关系。
[0217]
算法通过微调dct归一化矩阵来进行进一步改进,从而使每个ac系数具有不同的归一化因子。基于不同频率残差的归一化dct系数具有不同的统计分布这一事实,算法设计了一种考虑重建视频感知质量的帧级量化矩阵选择算法。首先使用拉普拉斯分布对归一化变换系数x进行建模,这已被证明在模型保真度和复杂性之间取得了良好的平衡,如式(11)所示:
[0218][0219]
其中,
△
表示拉普拉斯参数,f
lap
(x)表示使用拉普拉斯分布对归一化变换系数x进行建模后的正则归一化因子。
[0220]
对于拉格朗日乘数,如式(12)所示:
[0221]
λ=
ꢀ‑
dd/dr
ꢀꢀ
(12)
[0222]
设为在第m个块位置为(i,j)的原始dct系数,为重构系数,为对于(i,j)子带的归一化因子。则子带的失真d
i,j
如式(13)所示:
[0223]
[0224]
其中,nb为每帧中dct变换块的数量,和分别为归一化后的原始、重构的dct系数。于是,将d
i,j
应用归一化空间中变换系数的拉普拉斯分布来模拟,如式(14)所示:
[0225][0226]
其中γ表示量化步长qs的控制因子,码率模型是采用熵模型来进行估计,如式(15)所示:
[0227][0228]
其中,p0和pn分别是量化到第0和第n量化级别的变换残差的概率。
[0229]
每个频带系数所对应的拉格朗日乘数是qs和拉普拉斯分布参数λ的函数,如式(16)所示:
[0230]
λ
opt
=f(λ,qs)
ꢀꢀ
(16)
[0231]
λ
opt
表示每个频带系数所对应的拉格朗日乘数。对于不同的(λ,qs)组合,λ都有唯一值与其对应,如下图所示。可见λ是qs的单调递增函数,且是λ的递减函数。因此,对于相同的λ,不同的λ有不同的qs与之对应。
[0232]
参见图12,图12是本技术实施例提供的不同频带的归一化系数的分布图,可见不同频带上的分布参数不同,所以在同样的量化步长下,对应着不同的最优拉格朗日乘数。然而,对不同的频带,无法直接调整其对应的拉格朗日乘数,因此,算法提出了自适应量化矩阵算法,即调整每个频带的量化步长qs,使得不同频带的最优拉格朗日乘数相同。已知最优的拉格朗日乘数为λ,则对于(i,j)子带的最优量化步长如式(17)所示:
[0233]
q(i,j) =g(λ
opt , λ
i,j
)
ꢀꢀ
(17)
[0234]
参见图13所示的u-v对照图,可见本发明可自适应调整每个频带的量化步长qs,使得不同频带的最优拉格朗日乘数相同。在实现中,使用dc系数的拉格朗日乘数作为参考,对ac系数采用查表的方式进行最优的量化参数计算。最终,量化矩阵被定义为式(18):
[0235][0236]
其中,w
i,j
=q
i,j
/qs。
[0237]
第(i,j)子带的拉普拉斯参数λ
i,j
以及dc、ac系数的能量期望也是由已编码帧对应的分布参数预测得到,如式(19)所示:
[0238][0239]
其中,t表示编码帧号。由于相关的信息无法在解码端得到,因此,在码流中传输帧级量化矩阵。为了节省传输开销,定义阈值来确定当前帧的量化矩阵是否需要进行更新,如式(20)所示:
[0240][0241]
其中tr表示控制量化矩阵更新步长的阈值,为了平衡量化矩阵的精确度与传输的代价,将tr设置为100。
[0242]
可选地,所述对频域空间的所述残差值进行归一化计算,得到归一化后的残差值,具体实现过程可以如下:
[0243]
对所述参考帧中各所述宏块的量化参数偏移值进行计算;
[0244]
基于各所述宏块的量化参数偏移值对应的相似性指标,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0245]
实际应用中,对每个宏块的量化参数偏移值进行计算;进一步地,基于宏块ssim数据相似性指标,即宏块的量化参数偏移值对应的相似性指标,对每一个宏块计算其指标值最大的归一化计算,即频域空间的残差值进行归一化计算,得到归一化后的残差值,从而达到编码优化的目的。
[0246]
可选地,所述对所述归一化后的残差值进行量化,得到量化后的所述残差值之后,还包括:
[0247]
对量化后的所述残差值进行反量化,得到量化前的所述残差值;
[0248]
对量化前的所述残差值进行基于帧间差异化的逆归一化,得到归一化前的所述残差值;
[0249]
对归一化前的所述残差值进行离散余弦逆变换,得到所述参考帧与所述目标帧的所述残差值;
[0250]
根据所述残差值对所述参考帧进行重建,并缓存。
[0251]
实际应用中,参见图10,在量化之后,还可以对量化后的数据(残差值)进行反量化,得到量化前的残差值;然后对根据帧间差异化的逆运算,对量化前的残差值进行反归一化(逆归一化),把感知一致空间的残差值转换回dct域的残差值,即归一化前的残差值。之后,对归一化前的残差值进行离散余弦变换逆运算(idct),即反变化,还原出参考帧与关键帧的残差值。利用残差值对视频帧(参考帧)进行重建,保存到缓存buffer中,即进行帧缓存,供下一宏块或参考帧的残差计算。有利于提高残差值的计算效率。
[0252]
在本技术一个或更多个可选的实施例中,所述的视频压缩方法还包括视频还原,具体如下:
[0253]
对所述目标视频进行解码,得到各所述视频帧的第二初始视频数据;
[0254]
针对每个视频帧,对所述第二初始视频数据进行上采样,得到第二目标视频数据;
[0255]
对各所述第二目标视频数据进行渲染播放,或对各所述第二目标视频数据进行编码并保存。
[0256]
实际应用中,对二次压缩视频文件,即封装后的目标视频进行解码,解码出单帧(每个视频帧)的yuv视频数据,把yuv数据转换成对应的rgb视频数据,即第二初始视频数据。把rgb视频数据输入ai上采样网络,得到上采样后的rgb视频数据,即第二目标视频数据。对上采样后的rgb视频数据进行渲染播放或者转换成yuv进行编码保存成文件。如此,可以实现对视频的快速调取。通过该还原过程,用户无须安装特定播放器,即可快速调听离线
视频,实现与原始视频相同质量的观看体验。
[0257]
可选地,所述对所述第二初始视频数据进行上采样,得到第二目标视频数据,包括:
[0258]
将所述第二初始视频数据输入至基于多尺度卷积网络的视频插帧模型中进行上采样,得到所述第二目标视频数据;
[0259]
其中,所述视频插帧模型的训练过程,包括:
[0260]
获取相连的三个视频帧,所述三个视频帧包括两个边缘视频帧和一个中间视频帧;
[0261]
将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧,得到预测视频帧;
[0262]
根据所述中间视频帧和所述预测视频帧,计算损失值;
[0263]
根据所述损失值判断所述视频插帧模型是否收敛;
[0264]
若是,根据所述损失值调整所述视频插帧模型,并继续执行所述将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧的步骤,直至所述视频插帧模型收敛,得到训练好的所述视频插帧模型。
[0265]
实际应用中,可以采用基于多尺度卷积网络的视频插帧算法,即视频插帧模型进行上采样,即多尺度的卷积网络结构,该卷积网络结构逐渐提高通过卷积得到的图像特征的尺寸,随着特征尺寸的增大,使用更多的卷积层来训练网络以生成更大尺度的高分辨率合成图像。由于只使用插帧结果和真值之间的像素误差作为损失函数会使对复杂的运动插帧结果模糊,视频插帧算法还引入了生成对抗性损失和感知损失。
[0266]
通过上采样还原算法,可将高压缩率的视频文件内容还原到与原始文件一样的播放画质体验。即对损失的数据采用同样的训练模型进行处理,实现压缩后数据的两倍上采样还原,保持与原始视频一样的播放画质体验。
[0267]
参见图14是本技术实施例提供的视频插帧算法的流程示意图:
[0268]
该算法的流程图如下:首先将临近的两张大小为240
×
320
×
3的视频帧i1和i3(两个边缘视频帧),以及真值i2(中间视频帧)输入生成器网络,即输入临近的大小为240
×
320
×
3的视频帧以及真值至生成器网络,得到初步的视频插帧结果i2'(预测视频帧),然后将i1、i2、i2'和i3输入至判别器网络判别i2和i2'的重叠顺序,判别器的目的是尽可能的分辨出i2和i2'的顺序,即最大化推土机(wasserstein)距离(损失值),也即计算损失函数,评估由p分布转换成q分布所需要的最小代价(移动的平均距离的最小值)。根据最小化损失和损失值,判断视频插帧模型是否收敛,即网络是否收敛。若损失值大于最小化损失,即否,调整视频插帧模型的模型参数,返回生成器网络,继续执行所述将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧的步骤;若损失值小于等于最小化损失,即是,输出生成器网络和判别器网络的参数,即视频插帧模型的模型参数,得到选练好的视频插帧模型。
[0269]
而生成器则是尽可能生成足以以假乱真的视频帧,对抗训练直至平衡,得到生成器网络和判别器网络模型。根据算法流程图,基于多尺度卷积的视频插帧算法描述如下:
[0270][0271][0272]
其中l1表示l1损失,主要是衡量插帧的真实值和网络输出的估计值之间的误差。ld表示对抗损失,通过对抗网络生成器生成,其优点是可以生成更逼近真实图像的插帧结果。l
p
表示感知损失,使用网络第二个池化层之后的输出来计算l1范数作为感知损失。对于训练数据集中的每对输入,分别计算其l1损失、对抗损失和感知损失,并通过加权求和求得最终的损失函数。为了更好的对图像的信息进行恢复,将上述三种损失加权整合在一起生成最终的损失函数l1,λ1和λ2表示加权系数,用来保持客观的插帧质量和主观的对插帧结果的视觉感知之间的平衡,最终通过最小化该损失函数得到模型的最优参数,可以使离线视频文件在还原播放时达到接近于原始视频一样的播放流畅感。
[0273]
对于训练数据集中的每对输入,分别计算其l1损失、对抗损失和感知损失,并通过加权求和求得最终的损失函数。最后通过最小化该损失得到模型的参数。通过该算法,可以使离线视频文件在还原播放时达到接近于原始视频一样的播放流畅感。
[0274]
基于多尺度卷积网络的视频插帧算法(多帧信息融合的帧间压缩算法),利用光流进行运动补偿,消除视频的时间冗余。为了减小视频压缩带来的损失,设计了重建帧质量增强网络,利用多张参考帧,采用卷积神经网络对重建帧进行质量增强。实现了对压缩后的离线视频再次还原播放时,保持与原始视频一样的播放流程感,即通过引入改进后的注意力机制与重建帧质量增强网络,解决了视频还原时播放时顿挫感问题。
[0275]
示例性地,参见图15所示的本技术实施例提供的视频压缩方法的流程示意图之二:离线视频的压缩主要包括3个部分,分别是压缩、还原和视频编解码。压缩部分包括ai下采样、感兴趣区域和区域码率调整,实现对初始视频进行降低分辨率和区域码率调整来降低存储消耗。还原部分包括ai上采样,实现对降分辨率后的目标视频进行分辨率的提升和丢失信息的还原。视频编解码部分包括视频编码和视频解码,分别在压缩和还原部分提供视频解码和视频编码的能力,其中视频编码部分采用了多种编码算法。
[0276]
参见图16所示的本技术实施例提供的压缩和还原的流程示意图:包括压缩流程和还原流程。
[0277]
压缩流程包括:1)对原始视频文件(初始视频)进行解码,解码出单帧的yuv视频数据,把yuv数据转换成对应的rgb视频数据;2)把rgb视频数据输入ai下采样网络,得到下采样后的rgb视频数据;3)对下采样后的rgb视频数据进行感兴趣区域分析,得到各感兴趣区域的坐标;4)根据各感兴趣区域在整个视频帧中的坐标,结合编码宏块的设置(宏块设置参
数),进行区域码率调整,即根据感兴趣区域的坐标,判断宏块是否是感兴趣区域,若是,按照宏块设置参数中针对感兴趣区域的参数对感兴趣区域画质优化处理,若否,按照宏块设置参数中针对非感兴趣区域的参数对非感兴趣区域画质调整处理,并是否需要调整码率,即判断是否区域码率调整,若是,增加感兴趣区域的码率,降低非感兴趣区域的码率,即码率调整处理,然后进入步骤5);若否,进入步骤5);5)进行h.264编码处理;6)封装成mp4文件,即二次压缩视频文件。
[0278]
还原流程包括:1)对二次压缩视频文件(mp4文件)进行解码,解码出单帧的yuv视频数据,把yuv数据转换成对应的rgb视频数据,即h.264编码。2)把rgb视频数据输入ai上采样网络,得到上采样后的rgb视频数据。3)对上采样后的rgb视频数据进行渲染播放或者转换成yuv进行编码保存成文件。
[0279]
在压缩流程的步骤2)中,采用ai下采样使用训练好的网络结构进行下采样操作,如图17所示的本技术实施例提供的下采样的流程示意图:首先加载训练好的下采样模型,即加载下采样模型,然后对视频帧解码yuv(视频数据),把yuv转换为rgb(视频数据),转换后的rgb作为ai下采样网络的输入,接着使用加载的下采样模型权重进行ai下采样计算,得到下采样后的rgb,即下采样数据,并缓存下采样数据。
[0280]
在还原流程的步骤2)和3)中,采用ai上采样使用训练好的网络结构进行上采样还原操作,如图18所示的本技术实施例提供的上采样的流程示意图:首先加载训练好的上采样模型,即加载上采样模型,然后对视频帧解码出yuv(视频数据),即解码低分辨率;把yuv转换为rgb,转换后的rgb作为ai上采样网络的输入,接着使用加载的模型权重进行ai上采样计算,得到上采样后的rgb,接着把rgb转换为yuv,并编码高分辨率帧,使还原后的yuv画质基本与原始画质保持一致,保存高分辨率视频。
[0281]
如此,基于深度学习训练模型使用ai下采样,对原始视频(初始视频)帧进行分辨率的降低,从而降低视频数据,并且针对离线视频文件高压缩率特殊场景,提出了一种改进型的基于人脸感兴趣区域分析算法,通过引入滑动窗口人脸快速检测算法,在人脸区域给予更多码率占用,其余区域更少比特,从而达到存储优化的目的。同时在想回溯原始视频的内容时,可以利用对应的ai上采样进行还原,达到跟原始分辨率视频非常接近的视觉体验。
[0282]
下面对本技术实施例提供的视频压缩装置进行描述,下文描述的视频压缩装置与上文描述的视频压缩方法可相互对应参照。
[0283]
图19为根据本技术实施例的视频压缩装置的结构示意图,参照图19,所述视频压缩装置1900,包括:
[0284]
解码模块1901,用于对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;
[0285]
下采样模块1902,用于针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;
[0286]
调整模块1903,用于针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;
[0287]
封装模块1904,用于对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
[0288]
可选地,所述感兴趣区域为人脸感兴趣区域;相应地,所述下采样模块1902,进一步用于基于滑动窗口人脸检测算法,对所述第一目标视频数据进行人脸感兴趣区域分析,得到各人脸感兴趣区域的坐标。
[0289]
可选地,所述下采样模块1902,进一步用于基于滑动窗口人脸检测算法的滑动窗口,将所述视频帧分割为多个子图;针对每个子图,根据所述子图对应的第一目标视频数据提取所述子图的图像特征,并将所述图像特征输入至分类器进行人脸感兴趣区域分析,得到分析结果;在所述分析结果为所述子图为人脸感兴趣区域的情况下,将所述子图在所述视频帧中的位置,作为所述人脸感兴趣区域的坐标。
[0290]
可选地,所述宏块设置参数包括量化参数偏移值;相应地,所述调整模块1903,进一步用于针对所述视频帧中每个宏块,根据所述视频帧中各感兴趣区域的坐标,判断所述宏块是否在感兴趣区域内;若是,设置所述宏块的量化参数偏移值为预设负数;若否,设置所述宏块的量化参数偏移值为预设正数;根据所述视频帧中各所述宏块的量化参数偏移值,对所述视频帧进行区域码率调整。
[0291]
可选地,所述封装模块1904,进一步用于基于帧间差异化,对各指定视频帧进行编码,得到编码后的各所述指定视频帧,所述指定视频帧为区域码率调整后的所述视频帧;对编码后的各所述指定视频帧进行封装,得到压缩后的目标视频。
[0292]
可选地,所述封装模块1904,进一步用于确定各所述指定视频帧中的关键帧和参考帧,并将各所述指定视频帧划分为多个画面组,其中,每个画面组中包括一个关键帧和至少一个参考帧;对各所述关键帧进行编码,得到编码后的各所述关键帧;针对每个参考帧,计算所述参考帧与目标帧的残差值,所述目标帧为所述参考帧所属的画面组中的关键帧或上一个参考帧;对所述残差值进行离散余弦变换和基于帧间差异化的归一化计算,得到归一化后的残差值;对所述归一化后的残差值进行量化,得到量化后的所述残差值;对量化后的所述残差值进行熵编码,得到编码后的各所述参考帧。
[0293]
可选地,所述封装模块1904,进一步用于针对所述参考帧中每个宏块,根据所述宏块的色彩信息和时间冗余,以及参考宏块的色彩信息和时间冗余,计算所述宏块与所述参考宏块的子残差值,所述参考宏块为所述宏块映射在所述目标帧中的宏块;根据各所述子残差值,确定所述参考帧与目标帧的残差值。
[0294]
可选地,所述封装模块1904,进一步用于按照所述参考帧中宏块的划分,将所述残差值进行离散余弦变换,得到频域空间的所述残差值;基于帧间差异化,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0295]
可选地,所述封装模块1904,进一步用于构建帧级的量化矩阵;将所述量化矩阵和帧间差异化结合,得到失真模型;利用所述失真模型,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0296]
可选地,所述封装模块1904,进一步用于对所述参考帧中各所述宏块的量化参数偏移值进行计算;基于各所述宏块的量化参数偏移值对应的相似性指标,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0297]
可选地,所述封装模块1904,进一步用于对量化后的所述残差值进行反量化,得到量化前的所述残差值;对量化前的所述残差值进行基于帧间差异化的逆归一化,得到归一化前的所述残差值;对归一化前的所述残差值进行离散余弦逆变换,得到所述参考帧与所
述目标帧的所述残差值;根据所述残差值对所述参考帧进行重建,并缓存。
[0298]
可选地,所述视频压缩装置1900,还包括还原模块,用于对所述目标视频进行解码,得到各所述视频帧的第二初始视频数据;针对每个视频帧,对所述第二初始视频数据进行上采样,得到第二目标视频数据;对各所述第二目标视频数据进行渲染播放,或对各所述第二目标视频数据进行编码并保存。
[0299]
可选地,所述还原模块,进一步用于将所述第二初始视频数据输入至基于多尺度卷积网络的视频插帧模型中进行上采样,得到所述第二目标视频数据;其中,所述视频插帧模型的训练过程,包括:获取相连的三个视频帧,所述三个视频帧包括两个边缘视频帧和一个中间视频帧;将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧,得到预测视频帧;根据所述中间视频帧和所述预测视频帧,计算损失值;根据所述损失值判断所述视频插帧模型是否收敛;若是,根据所述损失值调整所述视频插帧模型,并继续执行所述将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧的步骤,直至所述视频插帧模型收敛,得到训练好的所述视频插帧模型。
[0300]
下面对本技术实施例提供的视频压缩系统进行描述,下文描述的视频压缩系统与上文描述的视频压缩方法可相互对应参照。
[0301]
图20为根据本技术实施例的视频压缩系统的结构示意图,参照图20,所述视频压缩系统2000,包括:
[0302]
压缩单元2001,用于对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频;对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;
[0303]
还原单元2002,用于对所述目标视频进行解码,得到各所述视频帧的第二初始视频数据;针对每个视频帧,对所述第二初始视频数据进行上采样,得到第二目标视频数据;对各所述第二目标视频数据进行渲染播放,或对各所述第二目标视频数据进行编码并保存。
[0304]
视频编解码单元2003,用于为所述压缩单元和所述还原单元提供编码和解码功能。
[0305]
可选地,所述感兴趣区域为人脸感兴趣区域;相应地,所述压缩单元2001,进一步用于基于滑动窗口人脸检测算法,对所述第一目标视频数据进行人脸感兴趣区域分析,得到各人脸感兴趣区域的坐标。
[0306]
可选地,所述压缩单元2001,进一步用于基于滑动窗口人脸检测算法的滑动窗口,将所述视频帧分割为多个子图;针对每个子图,根据所述子图对应的第一目标视频数据提取所述子图的图像特征,并将所述图像特征输入至分类器进行人脸感兴趣区域分析,得到分析结果;在所述分析结果为所述子图为人脸感兴趣区域的情况下,将所述子图在所述视频帧中的位置,作为所述人脸感兴趣区域的坐标。
[0307]
可选地,所述宏块设置参数包括量化参数偏移值;相应地,所述压缩单元2001,进
一步用于针对所述视频帧中每个宏块,根据所述视频帧中各感兴趣区域的坐标,判断所述宏块是否在感兴趣区域内;若是,设置所述宏块的量化参数偏移值为预设负数;若否,设置所述宏块的量化参数偏移值为预设正数;根据所述视频帧中各所述宏块的量化参数偏移值,对所述视频帧进行区域码率调整。
[0308]
可选地,所述压缩单元2001,进一步用于基于帧间差异化,对各指定视频帧进行编码,得到编码后的各所述指定视频帧,所述指定视频帧为区域码率调整后的所述视频帧;对编码后的各所述指定视频帧进行封装,得到压缩后的目标视频。
[0309]
可选地,所述压缩单元2001,进一步用于确定各所述指定视频帧中的关键帧和参考帧,并将各所述指定视频帧划分为多个画面组,其中,每个画面组中包括一个关键帧和至少一个参考帧;对各所述关键帧进行编码,得到编码后的各所述关键帧;针对每个参考帧,计算所述参考帧与目标帧的残差值,所述目标帧为所述参考帧所属的画面组中的关键帧或上一个参考帧;对所述残差值进行离散余弦变换和基于帧间差异化的归一化计算,得到归一化后的残差值;对所述归一化后的残差值进行量化,得到量化后的所述残差值;对量化后的所述残差值进行熵编码,得到编码后的各所述参考帧。
[0310]
可选地,所述压缩单元2001,进一步用于针对所述参考帧中每个宏块,根据所述宏块的色彩信息和时间冗余,以及参考宏块的色彩信息和时间冗余,计算所述宏块与所述参考宏块的子残差值,所述参考宏块为所述宏块映射在所述目标帧中的宏块;根据各所述子残差值,确定所述参考帧与目标帧的残差值。
[0311]
可选地,所述压缩单元2001,进一步用于按照所述参考帧中宏块的划分,将所述残差值进行离散余弦变换,得到频域空间的所述残差值;基于帧间差异化,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0312]
可选地,所述压缩单元2001,进一步用于构建帧级的量化矩阵;将所述量化矩阵和帧间差异化结合,得到失真模型;利用所述失真模型,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0313]
可选地,所述压缩单元2001,进一步用于对所述参考帧中各所述宏块的量化参数偏移值进行计算;基于各所述宏块的量化参数偏移值对应的相似性指标,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。
[0314]
可选地,所述压缩单元2001,进一步用于对量化后的所述残差值进行反量化,得到量化前的所述残差值;对量化前的所述残差值进行基于帧间差异化的逆归一化,得到归一化前的所述残差值;对归一化前的所述残差值进行离散余弦逆变换,得到所述参考帧与所述目标帧的所述残差值;根据所述残差值对所述参考帧进行重建,并缓存。
[0315]
可选地,所述还原单元2002,进一步用于将所述第二初始视频数据输入至基于多尺度卷积网络的视频插帧模型中进行上采样,得到所述第二目标视频数据;其中,所述视频插帧模型的训练过程,包括:获取相连的三个视频帧,所述三个视频帧包括两个边缘视频帧和一个中间视频帧;将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧,得到预测视频帧;根据所述中间视频帧和所述预测视频帧,计算损失值;根据所述损失值判断所述视频插帧模型是否收敛;若是,根据所述损失值调整所述视频插帧模型,并继续执行所述将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧的步骤,直至所述视频插帧模型收敛,得到训练好的所述视频插帧模型。
[0316]
本技术实施例涉及的终端,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备等。在不同的系统中,终端设备的名称可能也不相同,例如在5g系统中,终端设备可以称为用户设备(user equipment,ue)。
[0317]
本技术实施例涉及的网络设备,可以是基站,该基站可以包括多个为终端提供服务的小区。根据具体应用场合不同,基站又可以称为接入点,或者可以是接入网中在空中接口上通过一个或多个扇区与无线终端设备通信的设备,或者其它名称。
[0318]
图21为根据本技术实施例的终端的结构示意图,参照图21,本技术实施例还提供一种终端,可以包括:存储器2110,收发机2120以及处理器2130;
[0319]
存储器2110用于存储计算机程序;收发机2120,用于在所述处理器2130的控制下收发数据;处理器2130,用于读取所述存储器2110中的计算机程序并执行以下操作:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
[0320]
其中,在图21中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器2130代表的一个或多个处理器和存储器2110代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机2120可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口2140还可以是能够外接内接需要设备的接口。
[0321]
处理器2130负责管理总线架构和通常的处理,存储器2110可以存储处理器2130在执行操作时所使用的数据。
[0322]
处理器2130通过调用存储器2110存储的计算机程序,用于按照获得的可执行指令执行本技术实施例提供的任一所述方法。处理器与存储器也可以物理上分开布置。
[0323]
图22为根据本技术实施例的网络设备的结构示意图,参照图22,本技术实施例还提供一种网络设备,可以包括:存储器2210,收发机2220以及处理器2230;
[0324]
存储器2210用于存储计算机程序;收发机2220,用于在所述处理器2230的控制下收发数据;处理器2230,用于读取所述存储器2210中的计算机程序并执行以下操作:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
[0325]
其中,在图22中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器2230代表的一个或多个处理器和存储器2210代表的存储器的各种电路链接在一起。总线架
构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机2220可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器2230负责管理总线架构和通常的处理,存储器2210可以存储处理器2230在执行操作时所使用的数据。
[0326]
在此需要说明的是,本技术实施例提供的终端以及网络设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
[0327]
图23示例了一种电子设备的实体结构示意图,如图23所示,该电子设备可以包括:处理器(processor)2310、通信接口(communication interface)2320、存储器(memory)2330和通信总线2340,其中,处理器2310,通信接口2320,存储器2330通过通信总线2340完成相互间的通信。处理器2310可以调用存储器2330中的计算机程序,以执行视频压缩方法的步骤,例如包括:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
[0328]
此外,上述的存储器2330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0329]
另一方面,本技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例所提供的视频压缩方法的步骤,例如包括:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
[0330]
另一方面,本技术实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行上述各实施例提供的视频压缩方法的步骤,例如包括:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下
采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。
[0331]
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
[0332]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0333]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0334]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
技术特征:
1.一种视频压缩方法,其特征在于,包括:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。2.根据权利要求1所述的视频压缩方法,其特征在于,所述感兴趣区域为人脸感兴趣区域;相应地,所述对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标,包括:基于滑动窗口人脸检测算法,对所述第一目标视频数据进行人脸感兴趣区域分析,得到各人脸感兴趣区域的坐标。3.根据权利要求2所述的视频压缩方法,其特征在于,所述基于滑动窗口人脸检测算法,对所述第一目标视频数据进行人脸感兴趣区域分析,得到各人脸感兴趣区域的坐标,包括:基于滑动窗口人脸检测算法的滑动窗口,将所述视频帧分割为多个子图;针对每个子图,根据所述子图对应的第一目标视频数据提取所述子图的图像特征,并将所述图像特征输入至分类器进行人脸感兴趣区域分析,得到分析结果;在所述分析结果为所述子图为人脸感兴趣区域的情况下,将所述子图在所述视频帧中的位置,作为所述人脸感兴趣区域的坐标。4.根据权利要求1所述的视频压缩方法,其特征在于,所述宏块设置参数包括量化参数偏移值;相应地,所述根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整,包括:针对所述视频帧中每个宏块,根据所述视频帧中各感兴趣区域的坐标,判断所述宏块是否在感兴趣区域内;若是,设置所述宏块的量化参数偏移值为预设负数;若否,设置所述宏块的量化参数偏移值为预设正数;根据所述视频帧中各所述宏块的量化参数偏移值,对所述视频帧进行区域码率调整。5.根据权利要求1所述的视频压缩方法,其特征在于,所述对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频,包括:基于帧间差异化,对各指定视频帧进行编码,得到编码后的各所述指定视频帧,所述指定视频帧为区域码率调整后的所述视频帧;对编码后的各所述指定视频帧进行封装,得到压缩后的目标视频。6.根据权利要求5所述的视频压缩方法,其特征在于,所述基于帧间差异化,对各指定视频帧进行编码,得到编码后的各所述指定视频帧,包括:
确定各所述指定视频帧中的关键帧和参考帧,并将各所述指定视频帧划分为多个画面组,其中,每个画面组中包括一个关键帧和至少一个参考帧;对各所述关键帧进行编码,得到编码后的各所述关键帧;针对每个参考帧,计算所述参考帧与目标帧的残差值,所述目标帧为所述参考帧所属的画面组中的关键帧或上一个参考帧;对所述残差值进行离散余弦变换和基于帧间差异化的归一化计算,得到归一化后的残差值;对所述归一化后的残差值进行量化,得到量化后的所述残差值;对量化后的所述残差值进行熵编码,得到编码后的各所述参考帧。7.根据权利要求6所述的视频压缩方法,其特征在于,所述计算所述参考帧与目标帧的残差值,包括:针对所述参考帧中每个宏块,根据所述宏块的色彩信息和时间冗余,以及参考宏块的色彩信息和时间冗余,计算所述宏块与所述参考宏块的子残差值,所述参考宏块为所述宏块映射在所述目标帧中的宏块;根据各所述子残差值,确定所述参考帧与目标帧的残差值。8.根据权利要求6所述的视频压缩方法,其特征在于,所述对所述残差值进行离散余弦变换和基于帧间差异化的归一化计算,得到归一化后的残差值,包括:按照所述参考帧中宏块的划分,将所述残差值进行离散余弦变换,得到频域空间的所述残差值;基于帧间差异化,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。9.根据权利要求8所述的视频压缩方法,其特征在于,所述基于帧间差异化,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值,包括:构建帧级的量化矩阵;将所述量化矩阵和帧间差异化结合,得到失真模型;利用所述失真模型,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。10.根据权利要求8或9所述的视频压缩方法,其特征在于,所述对频域空间的所述残差值进行归一化计算,得到归一化后的残差值,包括:对所述参考帧中各所述宏块的量化参数偏移值进行计算;基于各所述宏块的量化参数偏移值对应的相似性指标,对频域空间的所述残差值进行归一化计算,得到归一化后的残差值。11.根据权利要求6所述的视频压缩方法,其特征在于,所述对所述归一化后的残差值进行量化,得到量化后的所述残差值之后,还包括:对量化后的所述残差值进行反量化,得到量化前的所述残差值;对量化前的所述残差值进行基于帧间差异化的逆归一化,得到归一化前的所述残差值;对归一化前的所述残差值进行离散余弦逆变换,得到所述参考帧与所述目标帧的所述残差值;根据所述残差值对所述参考帧进行重建,并缓存。12.根据权利要求1所述的视频压缩方法,其特征在于,还包括:对所述目标视频进行解码,得到各所述视频帧的第二初始视频数据;
针对每个视频帧,对所述第二初始视频数据进行上采样,得到第二目标视频数据;对各所述第二目标视频数据进行渲染播放,或对各所述第二目标视频数据进行编码并保存。13.根据权利要求12所述的视频压缩方法,其特征在于,所述对所述第二初始视频数据进行上采样,得到第二目标视频数据,包括:将所述第二初始视频数据输入至基于多尺度卷积网络的视频插帧模型中进行上采样,得到所述第二目标视频数据;其中,所述视频插帧模型的训练过程,包括:获取相连的三个视频帧,所述三个视频帧包括两个边缘视频帧和一个中间视频帧;将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧,得到预测视频帧;根据所述中间视频帧和所述预测视频帧,计算损失值;根据所述损失值判断所述视频插帧模型是否收敛;若是,根据所述损失值调整所述视频插帧模型,并继续执行所述将所述两个边缘视频帧输入至初始的视频插帧模型中进行视频插帧的步骤,直至所述视频插帧模型收敛,得到训练好的所述视频插帧模型。14.一种视频压缩装置,其特征在于,包括:解码模块,用于对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;下采样模块,用于针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;调整模块,用于针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;封装模块,用于对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。15.一种视频压缩系统,其特征在于,包括:压缩单元,用于对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频;对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;还原单元,用于对所述目标视频进行解码,得到各所述视频帧的第二初始视频数据;针对每个视频帧,对所述第二初始视频数据进行上采样,得到第二目标视频数据;对各所述第二目标视频数据进行渲染播放,或对各所述第二目标视频数据进行编码并保存。视频编解码单元,用于为所述压缩单元和所述还原单元提供编码和解码功能。16.一种终端,其特征在于,包括存储器,收发机,处理器;
存储器,用于存储计算机程序;收发机,用于在所述处理器的控制下收发数据;处理器,用于读取所述存储器中的计算机程序并执行以下操作:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。17.一种网络设备,其特征在于,包括存储器,收发机,处理器;存储器,用于存储计算机程序;收发机,用于在所述处理器的控制下收发数据;处理器,用于读取所述存储器中的计算机程序并执行以下操作:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对所述视频帧的所述第一初始视频数据进行下采样,得到第一目标视频数据,并对所述第一目标视频数据进行感兴趣区域分析,得到所述视频帧中各感兴趣区域的坐标;针对每个视频帧,根据所述视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对所述视频帧进行区域码率调整;对区域码率调整后的各所述视频帧进行编码和封装,得到压缩后的目标视频。18.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13任一项所述的视频压缩方法的步骤。19.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13任一项所述的视频压缩方法的步骤。
技术总结
本申请涉及电子技术领域,提供一种视频压缩方法、装置及系统。所述方法包括:对待压缩的初始视频进行解码,得到所述初始视频中每个视频帧对应的第一初始视频数据;针对每个视频帧,对视频帧的第一初始视频数据进行下采样,得到第一目标视频数据,并对第一目标视频数据进行感兴趣区域分析,得到视频帧中各感兴趣区域的坐标;针对每个视频帧,根据视频帧中各感兴趣区域的坐标和预设的宏块设置参数,对视频帧进行区域码率调整;对区域码率调整后的各视频帧进行编码和封装,得到压缩后的目标视。本申请实施例提供的视频压缩方法不仅可应用于实时视频流的压缩中,还能应用于离线视频的压缩中,可以有效地提高视频的压缩率。可以有效地提高视频的压缩率。可以有效地提高视频的压缩率。
技术研发人员:王文敏 杨森轲 李胜辉 程明 贵永冬
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2023.07.19
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/