版权归原作者所有,如有侵权,请联系我们

[科普中国]-比特率-失真优化

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

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

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

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

运作原理率失真优化借由作为视频品质的衡量方法,解决了上述的问题。数据量会被用比特数乘上拉格朗日乘数来取代。拉格朗日乘数代表了在某种程度范围的视频品质下,比特的花费与视频品质之间的关系。以数学式表示:

其中J最终的衡量数据,也被称为RD cost(rate-distortion cost),D有损的衡量数据,:拉格朗日乘数,R:数据量的衡量数据

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

支持的编码器AtemeH.264编码器

草谷ViBE编码器(SD & HD MPEG-2/MPEG-4)

Harmonic Electra 8000编码器(SD & HD MPEG-2/MPEG-4)

libavcodec

MainConceptH.264编码器

MicrosoftVC-1编码器

TANDBERG TelevisionSD MPEG-2 EN8100

TANDBERG TelevisionHD MPEG-4 EN8190

TANDBERG TelevisionSD & HD MPEG-4 iPlex

Theora1.1-alpha1 and later(the "Thusnelda" branch)

x264H.264编码器

XvidMPEG-4 ASP编码器

H.264/AVC标准引用软件JM(Joint Model)

H.265/HEVC标准引用软件HM(HEVC Test Model)2

参见视频质量

压缩比

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所