H.265/HEVC视频编解码中主要分为预测编码和变换编码两个大类。这篇文章主要介绍H.265/HEVC视频编解码中的预测编码部分的基本原理。
预测编码
在空域或者时域上具有相关性的信源被称为有记忆信源,视频信号是一个有记忆信源,有记忆信源的编码方式通常有联合编码和条件编码,预测编码是一种特定的条件编码。
预测编码是视频编码最重要的编码方式之一。预测编码是指通过一些编解码端都已知的信息得到真实值的预测值,通过编码真实值与预测值之间的残差从而降低码流,解码时只需要解码出残差以及得到真实值的预测值即可解码出真实值。最简单的预测编码有差分预测编码,需要注意的是编码端必须通过反量化之后的残差得到前一个点的重建值作为下一个点的预测值,目的是为了编解码匹配。
预测编码包括帧内预测编码和帧间预测编码,帧内预测编码是指通过利用当前编码块同一帧的已经编码的块信息对当前块进行预测;帧间预测编码是指通过利用当前帧前已经编码的帧的信息对当前块进行预测。最优的预测模式并不是一定满足预测得到的最终的残差最小,而是指残差信号经过其他各个编码模块,比如(变换、量化、熵编码等)后最终的编码性能最优。率失真优化(RDO)的目的就是选择最终的编码性能最优的预测模式,拉格朗日代价的计算J=D+λR,其中D是指失真,只有在有损的情况下才有失真,因此无损的情况下不是RDO而是RO;R是指编码全部信息(变换系数,模式信息和划分方式等)所要的码流。
为了区分预测编码的方式,视频编码标准定义了三种类型的图像:I图像,P图像和B图像。其中I图像只能做帧内预测,P图像只能做前向预测,B图像可以做前向预测、后向预测或者双向预测。
1.帧内预测:
2.帧间预测:
3.运动估计准则:
运动估计的目的是为当前块在参考图像中寻找一个最佳匹配块,因此需要一个准则来衡量两个块的匹配程度。
常用的匹配准则主要有最小均方误差(MSE),最小平均绝对误差(MAD)和最大匹配像素数(MPC)为了简化计算,一般用绝对误差和(SAD)替代最小平均绝对误差(MAD)。此外,**最小变换域绝对误差和(SATD)**也是一种性能优异的匹配准则。
SAD匹配准则因为没有乘除法便于硬件实现,因此被广泛应用于编码。因为匹配准则仅考虑了残差的大小没有考虑编码运动估计后的残差,运动向量MV以及等信息编码的码流。因此用拉格朗日率失真优化的方法来选择MV。
持续更新中。。。