最小均方误差(MMSE)意义下的最优帧内预测推导:
MMSE:Minimum Mean Squared Error,思想是将预测值和真值的误差的平方的期望(均值)最小化,以使得预测值尽量逼近真值,和真值差距尽可能小,这个理论指导下,我们来推导最优帧内预测的加权系数向量。
帧内预测是用于消除单帧图像内部的空间冗余的图像压缩方法,视频压缩中I帧(关键帧)就只需要帧内预测编码。
先把所有像素值去中心化,即减去均值再除以标准差,对得到的标准像素进行编码即可。则标准像素是标准高斯分布的,均值为0,方差为1。
这里帧内预测用已编码像素
Xn={Xi}T,i=0,1,2…,K
的线性加权和来预测待编码像素xj,即
x^j=i=0∑Kxiwi=XnTWj
所以关键,核心就是求解最优的预测权重向量Wj={wi}T,i=0,1,2…,K。
之前不懂为甚么示意图画为这个形状,看了后面的例子就明白了,这是由于图像中像素的相关性与空间位置有关。
下面从均方误差开始推导:
MSE=E[(xj−x^j)2]
=E[(xj−x^j)T(xj−x^j)]
=E[(xj−i=0∑Kxiwi)T(xj−i=0∑Kxiwi)]
=E[(xj−XnTWj)T(xj−XnTWj)]
=E(xj2)−E(xjXnTWj)−E(xjWjTXn)+E(WjTXnXnTWj)
注意其中xj,x^j 都是scalar,转置值同。
为了求最优的权重向量Wj,将上面推导出来的MSE误差对Wj求导,令为0即可:
(标量对向量求导)
∂Wj∂MSE=∂Wj∂E(xj2)−E(xjXnTWj)−E(xjWjTXn)+E(WjTXnXnTWj)
=0−E(xjXn)−E(xjXn)+E(XnXnTWj)+E(XnXnTWj)=0
E(xjXn)=E(XnXnT)Wj
Wj=E(XnXnT)−1E(xjXn)
其中E(xjXn)是待编码像素和已编码像素的互相关向量,E(XnXnT)是已编码像素的自相关矩阵,所以根据推导,在最小均方误差意义下的最优帧内预测的线性加权系数向量就是已编码像素向量的自相关矩阵的逆矩阵作用于待编码像素和已编码像素的互相关向量。
需要注意的是,其中涉及到的标量对向量求导,用的是分母布局,即求导结果和分母维度一致。
下面展示一个帧内预测的例子:
假设图像内像素符合一阶Markov分布,即每个像素取值只与自己距离1个像素的3个neighbors有关,这里采用典型的3近邻结构,水平距离1个pixel的两个像素互相关系数为ρh,垂直距离1个pixel的两个像素互相关系数为ρv,以此类推得到水平距离p个像素,垂直距离q个像素的两点的互相关系数为R(p,q)=ρhpρvq,可见距离越远,互相关系数越小(0≤ρv≤1,0≤ρh≤1)。
如上图,灰色区域的像素已经编码,白色区域则可以直接根据灰色区域预测,无需再编码,因此可节省码率,这就是3近邻结构,x(1,1)像素的值仅由x(0,0),x(0,1),x(1,0)决定。将这三个近邻作为Xn,则自相关矩阵R=E(XnXnT)=
⎣⎡1ρhρvρh1ρvρhρvρvρh1⎦⎤
x(1,1)和三个近邻的互相关向量为⎣⎡ρvρhρvρh⎦⎤
所以在这种情况下最优的预测编码权重系数向量Wj=R−1⎣⎡ρvρhρvρh⎦⎤