[视频编码] BD-rate和BD-PSNR

BD-rate

BD-rate即Bjøntegaard-delta-rate的缩写,也叫BD-BR,单位是%。在[1]中作为RD性能的衡量。

BD-rate概念

BD-rate定义为两条RD-cost曲线的平均差,这个平均差又定义为下曲线的面积积分除以积分区间与上曲线的面积积分除以积分区间之差[2]。BD-rate表示在同一视频客观质量的情况下,所优化后算法与原始算法相比的速率增加量(RD-cost画水平线)BD-rate为负则表示优化后算法的编码性能得到了提高。

[1]

从上图可知,BD-rate的横坐标为bitrate(在最早的文献[2]中,横坐标为10xlog(bitrate)),纵坐标为PSNR。红线为优化算法的BD-rate线,可知算法的BD-rate线越画在上面,提出的算法越好,在同一PSNR下速率越小

[3]

从上图中可知,如果优化的算法要比之前的算法好的话,计算出的BD-rate值为负数(可通过VCEG-AE07.rar文件中的.xls和.xla来计算)。[3]中提到“测试结果发现,VVC测试模型与HEVC模型相比,无论是对于HD序列还是UHD序列都要表现得更好”,对照上图可知,BD-rate值越小,算法越好,同一PSNR下速率越小

 

BD-PSNR[5]

BD-PSNR表示在同等速率情况下,优化后算法与原始算法相比视频客观质量的提高量(RD-cost画垂直线)BD-PSNR单位为dB。BD-PSNR为正则表示优化后算法的编码性能得到了提高。

BD-PSNR越大,提出的算法越好,同一速率下PSNR越高。

 

BD-rate和BD-PSNR计算工具

可使用VCEG-AE07.rar内提供的.xls文件来计算BD-rate和BD-PSNR,具体使用方法详见[4]。

JCTVC-A031在VCEG-AE07之后提出,据说也可以计算BD-rate和BD-PSNR,但是东西多,看着复杂,有时间研究研究。

[6]中给出了计算BD-rate的matlab代码,并给了一个mathworks网站上的参考代码的链接。

[7]中提到了一个计算五点BD-rate/BD-PSNR工具。

 

 

参考文献

[1] Tang M , Chen X , Wen J , et al. Hadamard Transform Based Optimized HEVC Video Coding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2018, PP(99):1-1.

[2] Bjontegaard, G.: Calculation of Average PSNR differences Between RD-Curves, In: ITU-T VCEG-M33, VCEG 13th Meeting (2001)

[3] https://cloud.tencent.com/developer/article/1477388

[4] https://zhidao.baidu.com/question/808994909322842452.html

[5] G. Bjontegaard, Improvements of the BD-PSNR Model, document ITU-T SC16/Q6, 35th VCEG Meeting, 2008.

[6] https://blog.csdn.net/sinat_33718563/article/details/78387190

[7] https://blog.csdn.net/u010550883/article/details/16843093

 

  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
计算视频质量指标BDBR和BD-PSNR的Matlab代码如下: ```matlab % BDBR (Buffer-Delay Bitrate Ratio)的计算 function bdbr = calcBDBR(buffer, delay, bitrate) bdbr = bitrate * delay / buffer; end % BD-PSNR (Buffer-Delay Peak Signal-to-Noise Ratio)的计算 function bdpsnr = calcBDPSNR(buffer, delay, origVideo, decVideo) % 计算原始视频的PSNR origPsnr = psnr(origVideo, decVideo); % 计算从第delay帧开始的重构视频 decVideo = decVideo(:, :, delay:end); % 计算重构视频的PSNR decPsnr = psnr(origVideo(:, :, 1:size(decVideo, 3)), decVideo); % 计算BD-PSNR bdpsnr = origPsnr - (10 * log10(buffer / bitrate)) - (10 * log10(delay / size(origVideo, 4))) + (10 * log10((buffer - delay) / size(decVideo, 3))); end ``` 其中,`calcBDBR`函数用于计算BDBR指标,其输入参数为缓冲区大小(单位:比特)、延迟时间(单位:秒)和视频比特率(单位:比特/秒),输出为BDBR值。 `calcBDPSNR`函数用于计算BD-PSNR指标,其输入参数为缓冲区大小(单位:比特)、延迟时间(单位:秒)、原始视频和重构视频,输出为BD-PSNR值。该函数首先计算原始视频的PSNR,然后根据延迟时间从重构视频中截取一段,计算该段视频的PSNR,最后根据公式计算BD-PSNR值。 需要注意的是,代码中使用了Matlab自带的`psnr`函数计算视频的PSNR值。在使用该函数前,需要将视频矩阵的像素值限制在0到255之间。例如,可以使用以下代码对原始视频和重构视频进行处理: ```matlab origVideo = max(min(origVideo, 255), 0); decVideo = max(min(decVideo, 255), 0); ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值