视频编码器质量评价---你需要知道的一切

首先,对于单个的视频编码器,它将一个原始的YUV输入序列,经过有损压缩编码之后,变成视频码流,当我们将得到的码流再次解码为YUV序列的时候,由于视频编码环节中的变换量化环节,使得原YUV中的一些信息丢失了,那么如何衡量这些丢失数据对原始输入造成的损害,就成为评价一个编码器,编码质量的重要客观指标,而这个客观指标就是PSNR。

对于原始YUV与压缩后YUV的每一帧求取PSNR值,对整个序列求PSNR的算术平均值便可以,得到这个重要指标。

计算公式连接https://blog.csdn.net/XX_bai/article/details/89713343

当然一位的追求编码质量,有可能会使的编码速度非常之慢,如何衡量某个编码过程的编码效率,我们使用bitrate这一指标来衡量,对于原始的yuv序列,其拥有fps值,即正常情况下,每秒钟播放序列的帧数。在经过编码压缩后,我们依然要按照,这样的帧数来播放视频序列,由于现在视频被压缩为了码流,因此我们使用,每秒钟码流中的比特数衡量其编码效率。

其计算过程如下,将编码后码流的总比特数(注意单位是比特)除以编码后的总帧数,算出编码后每帧的比特数,然后用其乘以原视频序列的fps,就可以得到bitrate, 单位可以为kbit/s.

通常情况下,当我们改变编码器的量化参数QP的数值,PSNR与bitrate都会发生变化,因为这个参数与视频失真有着非常重要的关系,当我们对比两个不同的编码器,编码能力的时候,我们一般会取,四个不一样的qp数值,并测得他们各自的psnr ,与bitrate数值,这样,我们以bitrate为横坐标,以PSNR为纵坐标,可以画得两条曲线,以此来表征这两个编码器的编码能力。

现在我们知道了两个重要的衡量编码的指标,psnr,bitrate,一个表示编码质量,一个表示编码效率。然而鱼和熊掌不可兼得,一般编码质量越好,编码效率越低。编码效率越高,编码质量越差。

在比较两个编码器的编码能力时,我们使用两个曲线来表征他们的能力,可是大多数时候,这两条曲线很有可能是,交织在一起的,很难说哪个好,且有的编码器效率高,有的编码器质量好。如何综合起来衡量一个编码器的能力好坏呢?并进行比较呢?我们引入了新的评价指标,BDPSNR,BDBR。

量化曲线。很简单,定积分除以积分区间,得到曲线的均值。两个曲线的均值相减,量化出两个曲线的差距,也可以说是间隔。具体的公式省略了。

但要算积分,首先要得到曲线的表达式。而要得到一个稳定的,不会出现什么乱七八糟的参数的表达式。需要对坐标系进行一些调整。这里直接给出调整后的坐标系,具体怎么调整的可以参考文档VCEG-M33

调整后的坐标系为10∗lg(bitrate)/PSNR

10∗lg(bitrate)/PSNR表示x/y

x/y轴。该坐标系下,表达式可以确定为一个三阶的多项式。

y=a+b∗x+c∗x2+d∗x3

y=a+b∗x+c∗x2+d∗x3

该表达式有四个参数,需要四组xy值,就可以确定这四个参数。因此需要取四个QP值得到四组PSNR/bitrate,确定多项式。

当前有两条曲线,线上分别有四个点,取所有点中的最大最小x值,作为积分区间,计算曲线均值,相减得到BDPSNR,单位为dB

将x/y轴的对应关系互换,也就是PSNR/10∗lg(bitrate)PSNR/10∗lg(bitrate)表示x/yx/y轴,过程相同,相减得到BDBR,单位为%百分号。因为log(a)−log(b)log(a)−log(b)得到的是log(ab)log(ba​),两个值相除,而不再是减。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值