0
点赞
收藏
分享

微信扫一扫

神经网络模型底层原理与实现10-softmax的实现

视频编码评价包括主观评价和客观评价,主观评价需要设计相应的实验,组织人员观看视频图像,打出分数,最后综合分数,给出最终的主观评价分数,而视频的客观评价主要利用统计学的概念来评判视频的质量。
在这里插入图片描述
主观评价

主观评价,顾名思义,即为人眼主观上对编码重建视频的感受,进而给出的评价,带有个人的观性,一般是在画面质量差别比较大是才能给出较合理的评价,如下图,下边的图明显会比上边的画面质量要差一些(点击查看效果):
在这里插入图片描述
在这里插入图片描述

但很多情况下,人眼观看后画面质量,差别不是很大,如下所示图,因此也无法给出合理的视频画面质量评价,这时候客观评价指标就变得不可或缺。
在这里插入图片描述
在这里插入图片描述
客观评价
客观评价主要是基于视频图像统计学的特性,评价不同编码器编码重建的图像,会有更优秀的质量,目前广泛应用的客观评价指标主要包括PSNR,SSIM,BD-Bitrate/BD-Psnr和VMAF。
峰值信噪比(peak signal to noise ratio,PSNR)
压缩后重建的图像,一般都会与原始图像有差别。评价这些重建的图像很多会参考PSNR值,来判定编码后重建的视频质量是否能够达到优秀或者观众观看的标准,其计算公式如下:
在这里插入图片描述
其中n表示编码图像的bit深度,如8bit的情况下n为8,10bit的情况下n为10;MSE为编码后图像与原始图像的均方差(方差的平均数),MSE定义如下:

在这里插入图片描述
统计学中,方差为衡量波动性指标,方差越小,表示波动越小,越稳定。PSNR计算公式中,将方差作为分母后取对数,这样MSE越小,PSNR值越高,图像质量越好。单位为dB,其值越高,表示画面质量越好。
PSNR值大于40dB时画面质量极好,(几乎和原始图像相同,人眼察觉不出来差别);
PSNR值在30dB-40dB之间,画面质量较好(有失真但可接受);
PSNR值在20dB-30dB之间,此时画面质量差;
PSNR值小于20db可以认为画面不可接受。

借助FFMPEG命令行如下:
ffmpeg -s 1920x1080 -i src.yuv -s 1920x1080 -i dst.yuv -lavfi psnr=“stats_file=psnr.log” -f null –

BD-RATE和BD-PSNR
评价编解码器性能,不能仅靠PSNR,同时需要考虑压缩后比特流的比特率(bitrate)。所以在编码时是更注重质量,还是更希望节约带宽而牺牲质量。那么问题也就来了,怎么做这个选择呢,这样就有了BD-RATE和BD-PSNR。
BD-RATE:假定码率相同的情况下,比较psnr的值,即在固定码率下找到更高质量的编码器;
BD-PSNR:假定编码质量相同的情况下,比较编码后比特率的值,在固定的编码质量下寻找码率更小的编码器。
BD-RATE和BD-PSNR的计算一般通过采样多个值(一般用3次多项式拟合,所以最少需要四个点),然后进行曲线拟合,绘制拟合曲线,得到相应的图表,进而进行选择判断。

结构相似性(Structural Similarity,SSIM)
PSNR较常用,但不能体现原始图像和重建图像之间的相关性,SSIM就是评估两幅图像相似度的指标,常用于衡量图像失真前与失真后的相似性,也用于衡量模型生成图像的真实性。
SSIM三部分构成:luminance(亮度)、contrast(对比度)和structure(结构)

亮度相关性
假设x 表示第一张图像窗口中的数据,y 表示第二张图像窗口中的数据,基于两个图像的均值,定义一个亮度对比函数如下:
在这里插入图片描述
对比度相关性
图像的标准差是对比度估量值。基于标准差定义的对比度函数如下:
在这里插入图片描述
结构相关性
利用两幅图像之间的协方差,定义结构对比函数如下:
在这里插入图片描述
上述三个公式具体参数介绍如下:
在这里插入图片描述
最终SSIM定义如下:
在这里插入图片描述
如果令α , β , γ 均为1,则常用SSIM计算可表示为:
在这里插入图片描述
对于原始图像和编码后重建的图像按照SSIM来评价:
SSIM值为1表示两幅图像完全一致;
SSIM值越接近1,表示编码后图像与原始图像相关性更强,理解为编码失真更小;
SSIM的值越接近于0,编码后图像与原始图像相关性更弱,理解为编码失真更大。

FFmpeg实现ssim计算命令如下:
ffmpeg -s 1920x1080 -i src.yuv -s 1920x1080 -i rec.yuv -lavfi ssim=“stats_file=ssim.log” -f null -

视频多方法评价融合,(Video Multimethod Assessment Fusion,VMAF)
PSNR/SSIM缺乏对画面前后序列的总体评估(前后帧之间相关性与编码质量密切相关),很多情况下计算结果与主管感受不相符。奈飞公司(Netflix)为解决这个问题,提出vmaf作为评价编码质量的指标。

对于不同特征视频源、编码失真及失真程度,各个评价指标各有优劣,奈飞使用机器学习算法,为每个基本指标分配一定权重,最终“融合”为一个指标,这样不仅保留每个基本指标的评价优势,还能得到更精确的评价分数,这是vmaf的核心理念。
VMAF基本指标包括空间域的 视觉信息保真度(VIF:visual quality fidelity)和细节损失指标(DLM:detail loss measure)、时间域的时域运动指标/平均相关位置像素差(TI:temporal information),可表示多帧画面之间相关性的特征。这些特性之间融合计算总分的过程使用训练好的SVM来预测。
vmaf的计算可参考官方给出的例子,在github上开源(https://github.com/Netflix/vmaf):github项目计算vmaf的代码开源,实际计算时以github最新的为准。
在这里插入图片描述
该项目提供多种计算vmaf方式,这里演示命令行方式,命令行可执行程序vmafossexec,原始yuv文件和编码后重建的yuv文件,使用如下命令,即可计算vmaf:
vmafossexec yuv420p 576 324 src01_hrc00_576x324.yuv src01_hrc01_576x324.yuv vmaf_v0.6.1.pkl --log vmaf_output.xml --psnr --ssim --subsample 5

VMAF取值从 0 到 100, 0 最低质量,100最高质量。感受VMAF分数的一种好方法:可将其线性映射到人眼观看评价表中,在此条件下获得的训练分数。例如,默认模型 v0.6.1 使用由绝对类别评分(ACR)方法收集的分数进行训练,使用 1080p 显示屏,观看距离为3H。观看者对视频质量的评分分为“很差”,“差”,“一般”,“好”和“优秀”,并且粗略地讲,“差”被映射为VMAF分数20,“优秀”为100。

举报

相关推荐

0 条评论