读取Excel数据计算BDBR和BD-PSNR(基于Matlab)

前言

  • BDBR是Bjøntegaard Delta Bit Rate的缩写,表示在同样的客观质量下,两种算法的码率节省情况(RD curves 画一条水平线)。
  • BD-PSNR是Bjøntegaard Delta Peak Signal-to-Noise Rate的缩写,表示在给定的同等码率下,两种算法的PSNR-Y的差异(RD curves 画一条垂直线)。

之前要计算这两个指标还得把数据从Excel中复制到Matlab代码中的矩阵中计算,麻烦而且容易把格式搞乱,强迫症实在是受不了了,就稍微改了下原来的代码,改调用xlsread函数来读取数据,计算的效率高了很多。

代码

a.BDBR和BD-PSNR计算基础算法

function [BDPSNR BDBR] = BD_PSNR_BR(PSNR,BR,PSNR_0,BR_0)
% Ouput: BDPSNR (dB) and BDBR (%)
% Input: PSNR[size],BR[size],PSNR_0[size],BR_0[size], size>=4

dB_BR=10*log10(BR);
dB_BR_0=10*log10(BR_0);

% BDPSNR
p=polyfit(dB_BR,PSNR,3);
p_0=polyfit(dB_BR_0,PSNR_0,3);
p_d=p-p_0;
min_dB_BR=min(min(dB_BR),min(dB_BR_0));
max_dB_BR=max(max(dB_BR),max(dB_BR_0));
F=@(x) p_d(1)*x.^3+p_d(2)*x.^2+p_d(3)*x+p_d(4);
BDPSNR=quad(F,min_dB_BR,max_dB_BR)/(max_dB_BR-min_dB_BR);

% BDBR
p=polyfit(PSNR,dB_BR,3);
p_0=polyfit(PSNR_0,dB_BR_0,3);
p_d=p-p_0;
min_PSNR=min(min(PSNR),min(PSNR_0));
max_PSNR=max(max(PSNR),max(PSNR_0));
F=@(x) p_d(1)*x.^3+p_d(2)*x.^2+p_d(3)*x+p_d(4);
BDBR=quad(F,min_PSNR,max_PSNR)/(max_PSNR-min_PSNR);
BDBR=10^(BDBR/10)*100-100;

end

b.读取Excel中的数据并计算BDBR和BD-PSNR

%%读取Excel数据计算BDBR和BD_PSNR by Kobay
title1 = {'balloons','kendo','lovebird1','newspaper','book_arrival'};
s = 5;%sheet编号
title_name = title1(s);%选择要读取的文件
path1 = 'E:\Image_processing_based_on_DL\Multiview_Reconstruction\实验数据\对标算法\';%算法1路径
path2 = 'E:\Image_processing_based_on_DL\Multiview_Reconstruction\实验数据\对标算法\';%算法2路径
path3 = 'E:\Image_processing_based_on_DL\Multiview_Reconstruction\实验数据\MVRGAN\v4.0\';%笔者算法路径
fn1 = cell2mat(strcat(path1,title_name,'.xlsx'));%cell转char
fn2 = fn1;%记录算法1和算法2数据的Excel文件名
fn3 = [path3,'数据汇总.xlsx'];%记录算法3数据的Excel文件名
%%读取Excel中的算法1数据
[x1]=xlsread(fn1,1,'C14:F14')';
[y1]=xlsread(fn1,1,'C16:F16')';
%%读取Excel中的算法2数据
[x2]=xlsread(fn2,1,'C35:F35')';
[y2]=xlsread(fn2,1,'C52:F52')';
%%读取Excel中的笔者算法数据
%balloons
[x3]=xlsread(fn3,s,'B16:E16')';
[y3]=xlsread(fn3,s,'B17:E17')';
%计算和算法1的BDBR和BD-PSNR
[MRMV_BDPSNR,MRMV_BDBR] = BD_PSNR_BR(y3,x3,y1,x1)
%计算和算法2的BDBR和BD-PSNR
[MVD_BDPSNR,MVD_BDBR] = BD_PSNR_BR(y3,x3,y2,x2)

参考

[1] 视频编解码质量评价—BDBR与BD-PSNR
码字不易,如果您觉得有帮助,欢迎点赞和收藏~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值