第四课题在宏块级冗余可调的多描述视频编码算法方面取得进展 |
由于运动估计和运动补充的使用,经典视频编码的码流对丢包比较敏感,单个包丢失造成的错误往往扩散到随后多帧,如何有效解决该问题是一项研究热点。为此,我们提出了一种在宏块级分配冗余的多描述视频编码方案。通过实际分析误匹配误差的扩散路径,我们区分不同宏块的重要性对宏块进行分类。其中,重要性的区分考虑到了视频内容的特性以及网络状态的因素。通过得到的重要性,我们对不同的冗余宏块分配不同的量化参数,继而达到有效利用冗余的目的。经过在不同的序列内容,不同的序列分辨率,不同的丢包率和丢包模型的实验测试,结果一致表明本文的算法明显好于其它经典的多描述编码算法。 H.264/AVC标准中提供了冗余片(redundant slice)的概念,用于丢包环境下正常编码片(slice)的备份,但标准并没有对冗余片的量化和分配进行任何规定。目前一些多描述视频编码算法试图利用冗余片或者冗余片组(slice group)的概念进行多描述编码的设计。这些算法的一个主要问题是:所有属于同一冗余片的宏块分配同样数量的冗余,造成冗余的利用效率较低。 我们将冗余片的概念推广到冗余块,即每个正常编码片内的宏块都有其相对应的冗余片中的冗余宏块作为备份,而如何对冗余块进行量化以有效地保护正常编码信息,进而形成多描述编码是我们需要解决的主要问题。 整个编码框架如图1所示,正常编码过程和冗余编码过程就是正常的H.264/AVC编码过程。其中收集信息过程将统计每个宏块的重要性以进行冗余控制,是整个编码的核心部分。
图1. 算法的编码框图 为了进行重要性统计过程,首先对不同宏块在误差扩散中造成的影响进行分析,那些对随后宏块造成影响较大宏块,其对应的冗余宏块将被分配较小的量化步长以进行较好的保护。图2给出了误差扩散过程的一个示例,因为H.264/AVC支持的最小运动估计单元为4×4,因此在整个过程中我们以该大小作为基本分析单元,称为BB(basic block)。那么每个BB的重要性将由其对随后多少块和每次扩散的比例之积的总和决定。
图2. 误差扩散路径示意图 每个宏块(MB)的重要性可以由组成该宏块的16个BB块获得。下一步将建立重要性与码率的关系,这里略去复杂的推导过程,我们只给出下面的结论 QP^r(g,f)=QP^p(g,f)-3log_2(p(1+w(g,f)) 最终形成的码流经过交织形成两路描述,其中的冗余宏块分配如图3所示,由于冗余宏块的量化步长的分配考虑到了视频的内容特性和网络的丢包率,因此即使两路描述仅有一路可以收到时,误差的扩散也得到了有效的减弱。 与现有经典算法的比较结果如下,其中 分别为丢包率和GOP的大小,MTU为最大传输单元。 1. CIF格式,帧率为30fps,无记忆伯努力信道模型,MTU=400字节,如图4所示,为了进行比较,对比了RS-MDC的实验结果。
图 3. 通过交织主片(白色条带表示)和冗余片(灰色级数的条带表示,且不同灰度级表示不同的量化参数
图4. CIF “Foreman” 视频序列的期望PSNR与码率对比图,帧率30fps,p = 0.01, 0.05, 0.10, N = 45, 21, 11 2. QCIF格式,帧率为15fps,无记忆伯努力信道模型,MTU=400字节,如图5所示,对比了RS-MDC的实验结果。 3. QCIF格式,帧率为7.5fps,Internet指定丢包模式,MTU=1400字节,如图6所示,对比了基于冗余帧(Redundant Picture)的RP-MDC方案和自适应帧内刷新(Adaptive Intra Refresh,AIR)方案的实验结果。
图5. 不同码率下QCIF “Foreman”视频序列期望PSNR对比图,帧率=15fps,p = 0.01, 0.05, 0.10, N = 100, 50, 20
图6. 不同码率下QCIF “Foreman”视频序列期望PSNR对比图,帧率=7.5fps,p = 0.05,1400/包
图7. 不同码率下QCIF “Foreman”视频序列期望PSNR对比图,帧率=10fps,p = 0.07,平均突发长度为7
4. QCIF格式,帧率为10fps,群集遗失(burst packet loss)信道,每行固定为一个片,如图7所示,对比了基于不同程度FEC保护的方案。
|
更详细的实验结果与分析可参见我们的论文。
上述结果已发表于IEEE Trans. on Circuits and Systems for Video Technology, Vol. 21, No. 5, 2011.