率失真优化(RDO)是一种提高视频压缩视频质量的方法。 该名称是指针对视频编码所需的数据量(速率)优化失真量(视频质量损失)。 虽然它主要由
视频编码器使用,但速率失真优化可用于提高任何编码情况(图像,视频,音频或其他)的质量,在这种情况下必须同时做出影响文件大小和质量的决策。
制作编码决策的经典方法是
视频编码器选择产生最高质量输出图像的结果。然而,这样做的缺点在于它所做出的选择可能需要更多的比特,同时提供相对较少的质量益处。该问题的一个常见示例是运动估计,[1]并且特别是关于四分之一像素精度运动估计的使用。在运动估计期间向块的运动添加额外的精度可以提高质量,但是在某些情况下,额外的质量不值得将运动矢量编码为更高精度所需的额外比特。
速率 - 失真优化通过充当视频质量度量来解决上述问题,测量与源材料的偏差和每个可能的决策结果的比特成本。通过将比特成本乘以
拉格朗日量来数学地测量比特,拉格朗日是表示特定质量等级的比特成本和质量之间的关系的值。与源的偏差通常被测量为均方误差,以便最大化PSNR视频质量度量。
现代视频编解码器中的熵编码器使得比特成本更难以计算,需要速率 - 失真优化算法将要测试的每个视频块传递给熵编码器以测量其实际比特成本。在MPEG编解码器中,整个过程包括
离散余弦变换,然后是量化和熵编码。因此,速率失真优化比大多数其他块匹配度量慢得多,例如绝对差值的简单总和(SAD)和绝对变换差值之和(SATD)。因此,它通常仅用于运动估计过程的最后步骤,例如在H.264 / AVC中的不同分区类型之间进行决定。