SVC笔记之一
本笔记参考Advance in Scalable Video Coding[1]。
在PPT介绍可伸缩编码原理部分,有一张编码系统框图不是很直观(相对于它上面那幅):
需要做一些说明。假设当前帧是fn,则前一帧为fn-1,相应的运动补偿分别为rn和rn-1,高精度量化通道为qH,低精度量化通道为qL。于是高精度量化的环路的方程是dH,n(fn) = qH(fn - rn-1(dH,n-1(fn-1))) + rn-1(dH,n-1(fn-1)),这也是这个系统的整体工作状况,而在系统的低精度支路上有dL,n(fn) = qL(fn - rn-1(dH,n-1(fn-1))) + rn-1(dL,n-1(fn-1))。可以证明,当r为确定的运动补偿时,r(fA-fB)=r(fA)-r(fB)。如果令pn = rn(dH,n(fn)) - rn(dL,n(fn)),则有pn = rn(dH,n(fn) - dL,n(fn)) = rn(pn-1 + qH(fn - rn-1(dH,n-1(fn-1))) - qL(fn - rn-1(dH,n-1(fn-1)))),而这恰好描述了图中中间支路对低精度支路的补偿作用(中间支路左侧加法器的输入即此处所述的pn)。
高精度输出即oH,n = qH(fn - rn-1(dH,n-1(fn-1))),
低精度输出即oL,n = qL(fn - rn-1(dH,n-1(fn-1))),
低精度解码结果即dL,n(fn) = qL(fn - rn-1(dH,n-1(fn-1))) + rn-1(dL,n-1(fn-1)) = oL,n + rn-1(dL,n-1(fn-1)),即低精度传输值和重建值的和,即图中最下方支路的加法器的输出值。
高精度解码结果即dH,n(fn) = qH(fn - rn-1(dH,n-1(fn-1))) + rn-1(dH,n-1(fn-1)) = oH,n + rn-1(dH,n-1(fn-1)),即高精度传输值和重建值的和,解码支路的结构和低精度解码支路一致。
上述讨论假设两个运动补偿器对每一帧采用相同的预测判断(即运动矢量),同时,如PPT文档所述,低精度解码和高精度解码相比(即|dL,n(fn) - dH,n(fn)|),除去量化精度带来的误差外,还有一个漂移(Drifting)误差,根据上式就是|pn-1|,而这个误差是会累积的。
参考文献:
[1] Advance in Scalable Video Coding, Proc. IEEE 2005, Invited Paper, Jens-Rainer Ohm, Member, IEEE