摘要
阅读完官方文档,在这里简单的总结一下。本文主要介绍两个评价标准BDPSNR和BDBR(BD-bitrate)的计算过程。
正文
首先计算PSNR(peek signal-to-noise ratio)和bitrate。
PSNR
峰值信噪比表示的是信号最大可能功率与噪声功率的比值。在视频图像领域,也就可以表示编码器编码过程中引入的失真。通常通过均方误差 ( M S E ) (MSE) (MSE) 来定义。假设两个 m m m x n n n 单色图像 I I I和 K K K,两者的均方误差为:
M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 MSE=\frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(i,j)-K(i,j)]^2 MSE=mn1∑i=0m−1∑j=0n−1[I(i,j)−K(i,j)]2
峰值信噪比定义为:
P S N R = 10 ∗ log 10 ( M A X I 2 M S E ) PSNR =10*\log_{10}{(\frac{MAX_I^2}{MSE})} PSNR=10∗log10(MSEMAXI2)
其中 M A X I MAX_I MAXI表示像素的最大值, 8 b i t 8bit 8bit就为255, P S N R PSNR PSNR单位为 d B dB dB。对于YUV文件,一个道理,色度亮度一起计算。
当前得到的是一帧的PSNR,而整个视频的PSNR则为每一帧的算术平均值。
bitrate
码流比特率的计算较为简单,直接将码流的总比特数除以帧数得到平均值,然后再乘以fps,就是bitrate,单位为kbit/s。
一个编码器的QP(quantization parameter)决定编码失真的程度,随着QP的变化,PSNR和bitrate的值也随之改变。基于这三个值,可以得到一个以 b i t r a t e / P S N R bitrate/PSNR bitrate/PSNR为坐标系的曲线,该曲线就表示当前编码器的效率。
将两个编码器进行对比,也就可以直接观察两者的曲线。但在大多数情况下,曲线往往是交错在一起的,不同情况下效果是不同的。要得到两个编码器到底哪个好哪个坏,仅仅依靠观察是不行的,我们需要去量化两个曲线的差距,最终得到一个总的值,明确表示哪个编码器比较好,好到什么程度。最终得到的那个值就是BDPSNR或者BDBR。接下来就来看这两个值是如何计算的。
BDPSNR、BDBR
量化曲线。很简单,定积分除以积分区间,得到曲线的均值。两个曲线的均值相减,量化出两个曲线的差距,也可以说是间隔。具体的公式省略了。
但要算积分,首先要得到曲线的表达式。而要得到一个稳定的,不会出现什么乱七八糟的参数的表达式。需要对坐标系进行一些调整。这里直接给出调整后的坐标系,具体怎么调整的可以参考文档VCEG-M33。
调整后的坐标系为 10 ∗ lg ( b i t r a t e ) / P S N R 10*\lg(bitrate)/PSNR 10∗lg(bitrate)/PSNR表示 x / y x/y x/y轴。该坐标系下,表达式可以确定为一个三阶的多项式。
y = a + b ∗ x + c ∗ x 2 + d ∗ x 3 y =a +b*x+c*x^2+d*x^3 y=a+b∗x+c∗x2+d∗x3
该表达式有四个参数,需要四组xy值,就可以确定这四个参数。因此需要取四个QP值得到四组PSNR/bitrate,确定多项式。
当前有两条曲线,线上分别有四个点,取所有点中的最大最小x值,作为积分区间,计算曲线均值,相减得到BDPSNR,单位为dB。
将 x / y x/y x/y轴的对应关系互换,也就是 P S N R / 10 ∗ lg ( b i t r a t e ) PSNR/10*\lg(bitrate) PSNR/10∗lg(bitrate)表示 x / y x/y x/y轴,过程相同,相减得到BDBR,单位为%百分号。因为 log ( a ) − log ( b ) \log(a)-\log(b) log(a)−log(b)得到的是 log ( a b ) \log(\frac{a}{b}) log(ba),两个值相除,而不再是减。
总结
文字描述大致就是如此,参考文献中有几张图,可以帮助理解。这里体现一下对应关系:VCEG-L38介绍了PSNR和bitrate的计算方法、VCEG-M33介绍了BDPSNR和BDBR的计算方法、VCEG-AE07给出了Excel用以计算BDPSNR和BDBR,以及Excel的使用方法。了解了计算过程,excel使用方法也非常好理解。VCEG-AE有一个系列,它们之间的区别不太清楚。
所有的文档在Google上都可以直接下载,不用到CSDN上面下。
参考文献
Document VCEG-L38
Title : Recommended Simulation Conditions for H.26L
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=2ahUKEwjb3qHO5_fhAhVb4XMBHVMwBgUQFjAAegQIBRAC&url=https%3A%2F%2Fwww.itu.int%2Fwftp3%2Fav-arch%2Fvideo-site%2F0101_Eib%2FVCEG-L38.doc&usg=AOvVaw3S3714B_ppSlIytQOCgn9O
Document VCEG-M33
Title : Calculation of average PSNR differences between RD-curves
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=2ahUKEwjb3qHO5_fhAhVb4XMBHVMwBgUQFjABegQIAxAC&url=https%3A%2F%2Fwww.itu.int%2Fwftp3%2Fav-arch%2Fvideo-site%2F0104_Aus%2FVCEG-M33.doc&usg=AOvVaw28nfdGxLOuM9xOYxBLc5wA
Document VCEG-AE07
Title : An excel add-in for computing Bjontegaard metric and its evolution
https://www.itu.int/wftp3/av-arch/video-site/0701_Mar/