BD-Rate 和 BD-PSNR 是视频压缩中使用的客观度量,用于在比特率或质量值范围内比较两种不同视频编解码器或同一视频编解码器的不同设置的速率失真性能或压缩效率。本文着眼于 BD-Rate 和 BD-PSNR 指标,并教授如何计算和解释 BD-Rate 读数。
失真率 (RD) 图
当您评估编解码器的性能时,您通常会得到一条速率失真 (RD) 曲线,该曲线告诉您不同比特率(通常以 kbps 或 Mbps 为单位)的质量(以 dB 为单位的 PSNR)。 BD-Rate 指标使用来自 RD 曲线的信息,告诉您一个编解码器相对于另一个编解码器的改进程度。
但是,首先,让我们了解一下视频压缩领域常见的 RD 曲线/图。 我们知道,视频压缩是为了存储或传输要求而减小视频大小的过程。并且视频压缩的过程会影响视频质量,并且通常会降低视频质量。 因此,视频压缩的目标是保持视频质量,或在压缩视频时降低失真程度!要了解有关视频压缩的更多信息,请查看 OTTVerse 视频压缩系列中的文章。
当您开始使用视频编解码器时,
您要做的第一件事是通过执行以下操作来检查其性能 – 选择某些编解码器设置(调整)并且不要更改它们。 在一系列增加的比特率中压缩具有不同空间和时间特征的多个视频。对于每次压缩运行,使用客观指标(如 PSNR (dB) 或 SSIM)记下编解码器实现的比特率和质量。 将这些结果制成表格,然后用 x 轴上的比特率和 y 轴上的质量绘制它们。 让我们试试这个。我们将使用相同的编解码器,但选择不同的调整或设置,并以四种不同的 CBR 设置(100、2000、3000、4000 kbps)在同一视频上运行我们的实验。在本教程中,我们假设我们的编解码器产生了我们设置的确切比特率(在现实世界中极不可能),并且我们使用 FFmpeg 计算每个实验的 PSNR(这是计算PSNR 使用 FFmpeg)。
在所有的交互之后,我们得到了比特率-PSNR 结果的下表。
BD-Rate 或 Bjontegaard Delta-Rate Bjontegaard 度量计算涉及两部分 - BD PSNR 和 BD Rate。它在一篇题为“G. Bjontegaard,计算 RD 曲线之间的平均 PSNR 差异 (VCEG-M33) [2] S. Pateux,J. Jung,用于计算 Bjontegaard 度量及其演变的 excel 插件”,此后提供了一个很好的比较 RD两种不同编解码器的性能或同一编解码器的两种不同设置。 BD-Rate 或 BD-PSNR 的计算很复杂,我在这里复制了 IETF 文档中的文本。如果您不明白,请不要担心! 1. 为参考和测试编解码器计算速率/失真点。 2. 必须至少计算四个点。当比较相同编解码器的两个版本时,这些点应该是相同的量化器。 3. 超出范围的额外点应该被丢弃。 4. 速率被转换成对数速率。 5. 分段三次厄米内插多项式适合每个编解码器的点,以产生失真方面的对数率函数。 计算指标分数范围: 1. 如果比较同一编解码器的两个版本,重叠是两条曲线的交点,由选定的量化点限定。 2. 如果比较不同的编解码器,则直接使用第三个锚编解码器在固定量化器上的度量分数作为界限。 3. 对数速率在每条曲线的度量范围内进行数值积分,使用至少 1000 个样本和梯形积分。 4. 所得积分对数速率被转换回线性速率,然后从参考到测试编解码器计算百分比差异。 幸运的是,作者提供了一个带有插件的 Excel 表格,使计算变得非常简单。我们不必担心上面的解释。
您需要做的就是转到他们的 GitHub 存储库 (https://github.com/tbr/bjontegaard_etro) 并下载 Excel 工作表和 Excel 加载项。如果您下载 zip 文件,您将同时获得它们。顺便说一句,repo 的 README.md 上的说明是明确的——不要跳过它🙂