1.一种基于深度学习的提高视频压缩编码效率的方法,其特征在于包括如下步骤:
步骤1:获取由基本的运动估计和运动补偿组成的原始视频帧间预测的峰值信噪比PSNR1;
1-
1.对相邻帧进行运动估计;
1-
2.对相邻帧进行运动补偿;
1-
3.计算原始视频帧间预测的PSNR值PSNR1;
步骤2:引入SRCNN模型对帧间图片进行训练得到权重矩阵与偏差矩阵,对SRCNN模型的参数进行修改,并对网络进行调整从而,得到最优的训练参数;
步骤3:将训练得到的模型对测试图片进行测试,得出由SRCNN模型测试的结果PSNR2,对PSNR1与PSNR2进行比较,得出SRCNN模型应用于帧间预测编码的可行性;
步骤4:将SRCNN模型应用于最新编码标准HEVC提供的官方代码HM16.0中;
4-
1.测试用了SRCNN模型的帧间预测PSNR值记做PSNR3;
4-
2.测试没用SRCNN模型的帧间预测PSNR值记做PSNR4;
4-
3.比较PSNR3与PSNR4并得出相关结论;
步骤1-1所述的对相邻帧进行运动估计,具体实现如下:
对于原始视频序列中前一帧中的某一块Ⅰ,在后一帧对应位置的块Ⅱ周边的搜索区域内找到与之最相似的块Ⅲ,其中前一帧设为第i帧,记做im_src;后一帧设为第i+1帧,记做im_actual;
比较块Ⅰ和块Ⅲ的位移变化并获得一个运动矢量;从而对于第i帧的每一块区域都能获得相应的运动矢量;
所述的搜索区域设置为20;
步骤1-2所述的对相邻帧进行运动补偿,具体实现如下:
用前后两帧运动估计得到的运动矢量来对第i帧图片的每一块区域进行补偿,即对于某一块得到的运动矢量直接加在该块上;从而对于第i帧的每一块都能获得一个运动补偿后的结果,最后得到图片im_output;
步骤1-3所述的计算原始视频帧间预测的PSNR值PSNR1,具体实现如下:
PSNR值名为峰值信噪比,具体的PSNR1计算公式如下
公式中的n表示图片的比特数,由于图片是8比特,因而n=8,MSE指的是两张图片的均方误差,I和J分别为两张图片,m和n分别是图片的长和宽;在我们的方法中,I和J分别是图片im_actual与im_output;从而得到PSNR1;
步骤2所述的引入SRCNN模型对帧间图片进行训练得到权重矩阵与偏差矩阵,对SRCNN模型的参数进行修改,并对网络进行调整从而,得到最优的训练参数;具体实现如下:
首先将前一帧的图片组成一个集合Ⅰ,集合Ⅰ相当于卷积神经网络的输入集合,需要将每一张图片分成f1×f1的小块当做输入,同时将后一帧的图片组成一个集合Ⅱ,集合Ⅱ相当于卷积神经网络的label,进行一个训练操作;在训练操作过程中,不断查看loss值,执行300000次迭代,以loss曲线为是否达到迭代次数标准,防止过拟合;训练最终得到一个权重矩阵文件和一个偏差矩阵文件;此模型训练需要三个网络,三个网络的作用以及执行方法具体如下:
2-
1.小块提取和表示
F
1(Y)=max(0,W
1*Y+B
1) (2)
其中,Y是输入的图片,实际上为f
1×f
1的小块;W
1是由训练第一层网络生成的一个权重矩阵文件,本质上是一个滤波器或者卷积核,大小为c×f
1×f
1×n
1,n
1代表滤波器的数量,c为常数;B
1是由训练第一层网络生成的一个偏差矩阵文件,大小为n
1×1的向量;
2-
2.非线性映射
F
2(Y)=max(0,W
2*F
1(Y)+B
2) (3)
式中,F
1(Y)是第一层网络的输出,也就是第二层网络的输入,W
2是由训练第二层网络生成的一个权重矩阵文件,大小为n
1×1×1×n
2,n
2代表滤波器的数量;B
2是由训练第二层网络生成的一个偏差矩阵文件,大小为n
1×1的向量;
2-
3.非线性映射
F
3(Y)=max(0,W
3*F
2(Y)+B
3) (4)
式中,F
2(Y)是第二层网络的输出,也就是第三层网络的输入,W
3是由训练第三层网络生成的一个权重矩阵文件,大小为n
2×f
1×f
1×c,B
3是由训练第三层网络生成的一个偏差文件,大小为n
1×1的向量;
2-
4.在训练过程中不断将输出F
3(Y)与label进行比较,以两者之间最小的误差为基准,生成一组W
1,W
2,W
3,B
1,B
2,B
3;
步骤3所述的将训练得到的模型对测试图片进行测试,得出由SRCNN模型测试的结果PSNR2,对PSNR1与PSNR2进行比较,得出SRCNN模型应用于帧间预测编码的可行性;具体实现如下:
3-
1.对图片im_src进行双三次插值预处理操作;
3-
2.将预处理后的图片作为输入,利用得到的参数进行三层网络卷积操作得到输出图片im_output_srcnn;
3-
3.比较im_actual与im_output_srcnn的PSNR值得到PSNR2;
3-
4.比较PSNR2与PSNR1之间的值,若PSNR2大于PSNR1,则该块为运动剧烈的块,若PSNR2小于等于PSNR1,则该块为运动静止不变的块;
步骤4所述的将SRCNN模型应用于最新编码标准HEVC提供的官方代码HM16.0中,具体实现如下:
4-
1.在hevc官方提供的代码HM16.0中,找出用于帧间预测的图像帧buffer,并将图像帧buffer中运动剧烈的块找出来,将SRCNN模型先作用于这些块,再执行后续的官方代码的操作,将测试用了SRCNN模型的帧间预测PSNR值记做PSNR3;
4-
2.将测试没用SRCNN模型的帧间预测PSNR值记做PSNR4;
4-
3.比较PSNR3与PSNR4并得出相关节结论,若图像帧buffer中用了SRCNN模型的块,PSNR值会提高,即帧间的编码效率是提高的。