率-失真优化Rate–distortion optimization,简称RDO)是一种提升视频压缩性能的优化方法。其原理是对视频的失真(画面质量)与位元率(编码所需的资料量)同时进行优化,以求达到一个最佳的平衡点。虽然此算法一开始是在视频压缩编码器中被使用,但也可以用于各种多媒体编码包含影像、视频、音频等等,只要编码时会同时考虑到质量及文件大小皆可使用。

背景

编辑

传统视频编码器在做编码决策时,是挑选出影像质量最好的画面。然而只考虑质量的缺点是,会让决策的结果有时相较于质量稍差的选择下,花费了更多资料量但只相对提升了一点点质量。一个常见的例子就是动作补偿[1],尤其是使用1/4像素精确度的时候。在动作补偿过程中,为宏区块的动作向量增加额外的精确度可能可提升质量,但有些时候提升的质量,并不值得额外花费用来编码高精确度动作向量的资料量。

运作原理

编辑

率-失真优化借由作为影像质量的衡量方法,解决了上述的问题。资料量会被用位元数乘上拉格朗日乘数来取代。拉格朗日乘数代表了在某种程度范围的影像质量下,位元的花费与影像质量之间的关系。以数学式表示:

 

其中

 :最终的衡量数据,也被称为RD cost(rate-distortion cost)
 :失真的衡量数据
 :拉格朗日乘数
 :资料量的衡量数据

为了最大化峰值信噪比的视频画值衡量,失真部分通常使用均方差做计算。

现行的视频压缩编解码器中,率-失真优化需要将每一块视频画面的区块,经由熵编码器运算来衡量实际的位元花费,而此计算是复杂的。例如在MPEG的许多编解码器标准中,完整的计算流程包含了离散余弦变换量化以及熵编码,需全部运算完才能得到实际的位元花费。因此率-失真优化会较大部分其他区块比对的衡量方法来得慢,譬如绝对值差和英语sum of absolute differences(SAD)和转换后绝对值差和英语sum of absolute transformed differences(SATD)。因此率-失真优化通常只在动作补偿的最后一个步骤才会被使用,像是在H.264/AVC中最后需要对各种分割模式下决定的时候。

支持的编码器

编辑

参见

编辑

参考资料

编辑
  1. ^ D. T. Hoang, P. M. Long, and Jeffrey Vitter, Rate-Distortion Optimizations for Motion Estimation in Low-Bitrate Video Coding页面存档备份,存于互联网档案馆), IEEE Transactions on Circuits and Systems for Video Technology, 8(4), August 1998, 488-500. A shorter version appears in Proceedings of the Digital Video Compression Conference, IS&T/SPIE 1996 Symposium on Electronic Imaging: Science & Technology, 2668, San Jose, CA, January–February 1996, 18-27.