您好,欢迎访问三七文档
多视点视频编解码吕永超[摘要]与二维视频编码有所不同,多视点视频编码还存在不同视点间的空间冗余,因此除了进行运动估计和运动补偿外,还需要对立体视频进行视差补偿预测,来消除视点间的空间冗余,提高视频压缩的效率。大模块所占比率大,耗时少,小模块所占比例小,但是耗时多。而且,立体视频编码中,小模块模式相对于平面视频编码所占的比例更少,这也说明了立体视频编码中模式选择的重要性。JMVC测试模型遍历所有模式然后选择最优编码模式,致使编码速度低下。我们通过快速模式选择,尽可能的减少小模块模式的预测,在保证图像质量和压缩效率的基础上,大幅度的提高了立体视频编码速度。CPU单独解码效率较低,最多仅能支持6个视点1280X720P格式的高清视频实时解码。而基于本文提出的CPU和GPU混合解码技术,由于IDCT和彩色空间变换这些并行运算均有GPU完成,充分发掘了当前GPU的特点,CPU主要负责解码控制类型的运算,整体解码运算效率较高,可以实时解码8个视点的1280X720P格式的高清视频。[关键词]多视点视频快速帧间模式选择IDCT和图像彩色空间变换目录第一章绪论......................................................................................................................................1第二章多视点视频编码.............................................................................................................12.1多视点视频编码原理................................................................................................................12.2视频编码方案...........................................................................................................................22.3立体视频运动估计搜索算法...................................................................................................32.4快速帧间模式选择..................................................................................................................32.5本章小结.................................................................................................................................3第三章基于GPU和CPU混合运算的解码技术........................................................................43.1IDCT运算在GPU上实现的基本原则.....................................................................................43.2图像彩色空间变化在GPU上的实现.......................................................................................43.3本章小结................................................................................................................................4参考文献...........................................................................................................................................51第一章绪论立体视频压缩与平面视频压缩的主要区别在于立体视频压缩利用了视点间的视差信息进行编码,大幅度的提高了压缩率,从而也解决了立体视频庞大数据信息的存储和传输问题。编码优化包括快速运动估计搜索算法的实现以及快速帧间模式选择算法的实现,它们都是在保证立体视频编码质量的前提下,提高立体视频的编码速度。解码器移植包括PC端和WM手机端实现H.264解码并显示。视频编码框图,主要包括参考帧管理,运动估计,模式选择,变换,量化,重排列和嫡编码几个部分。JMVC是通过参考帧管理实现进行运动估计和视差估计的,从而确保了视频编码的高效率。本文主要工作集中在虚线框中的运动估计和模式选择部分,在帧间预测时通过实现S-UMHexagonSearch算法提高运动搜索的速率,在模式选择部分进行快速模式选择,提前判断最优模式,降低编码复杂度,从而提高编码速率。变换一般是用来去除图像信号中的相关性并减少图像编码的动态范围,量化则是用来减少图像编码长度,减少图像恢复中不必要的信息,二者的目的都是降低码率,实现图像压缩。嫡编码是无损压缩,解码时能够无失真的恢复原数据,它实现了图像信息到数字信号的转换。第二章多视点视频编码本章首先介绍了多视点视频编码原理方案和立体视频运动估计搜索算法;然后详细介绍了快速帧间模式选择。2.1多视点视频编码原理多视点视频编码原理如下图所示,ME代表运动估计,DE代表视差估计,MD代表模式选择,T代表变换,Q代表量化,R代表重排列,E代表嫡编码,代表反变换,代表反量化。以两视点为例,进行立体视频编码。(1)第一视点按照二维视频编码(H.264的步骤进行编码。(2)第二视点第一帧,采用帧内预测的同时,以第一视点第一帧为参考进行视差补偿预测,并存储视差矢量和残差。(3)第二视点非第一帧,以第二视点己编码帧为参考进行运动补偿预测,遍历所有模式,记录最优预测块的运动矢量MV1、残差D开销COST1;然后以第一视点同一时间的图像为参考进行视差补偿预测,遍历所有模式,记录最优块的视差矢量DV2、残差D2及开销COST2;选择开销最小的模式为最佳编码模式,记录矢量和残差。借鉴单视点视频编码的运动补偿技术来实现视差补偿,消除视点间的冗余信息。具体实现方法如下:首先将视点间的参考图像和同一视点编码的参考图像统一放入参考图像列表进行管理,然2后利用匹配算法搜索得到最佳匹配块,接着将当前编码块和预测块做差值,得到残差和矢量(MV/DV),最后对残差进行压缩编码。这也是JVT推荐的测试模型JMVC中使用的处理方法。2.2视频编码方案JMVC测试模型在立体视频压缩方面有着高效的压缩效率及优良的参考帧管理机制。我们选择使用JMVC测试模型进行立体视频压缩,但是其编码速度极其缓慢,我们就必须进行JMVC编码速率优化。本文主要从运动估计搜索算法和快速模式选择算法两个方面着手,实现编码速率的提高。2.3立体视频运动估计搜索算法几种常见的搜索算法有:全局搜索算法、三步搜索法、菱形搜索法、以及复合搜索算法等。由于物体的运动千变万化,很难用一种简单的模型去描述,所以实际上大多采用多种搜索算法的组合方式,即复合搜索算法。采用符合搜索算法可以很大程度上提高预测的编码效率和性能。2.4快速帧间模式选择在立体视频编码过程中,由于视差估计的存在,使得模式8x8,8x4,4x8,4x4所占比例减少,但是这些小预测块消耗的时间最长。因此我们为了大幅度缩短编码时间,必须进行帧间模式的快速选择,尽可能的减少小预测块的遍历。视频图像的内容可以粗略分为3种:平坦背景区域、复杂背景区域、运动区域。背景区域在视频中占有较大的比例,我们选用较大的预测块(如16x16,16x8,8x16),这也意味着用于表示运动矢量和分割区域类型的比特会比较少。而对于运动区域,它所占的比例小,同时我们必须选用较小的预测块或者intra预测,这也意味着用于表示运动矢量和分割区域类型的比特会比较多,并且搜索过程耗时比较长,视差补偿预测的引用运动区域的“转变”,使得小模块预测比例更小。如果能够较早的判断当前宏块是较大预测块还是较小预测块,就能够大幅度缩短编码时间。(1)利用率失真损耗模块越小,搜索时间越长,我们应当尽可能少的遍历小模块模式。1.对16x16模块进行运动估计,并判断是否为SKIP模式。若为是,则不进行其他模式的预测;2.计算16x8,8x16模块的率失真损耗,若16x16模块的率失真损耗小于这两种模式,则认为采用大模块预测,不进行8x8,8x4,4x8模块预测;3.计算8x8,8x4,4x8子块的率失真损耗,若8x8的率失真损耗小于8x4,4x8模块,则不进行4x4模块预测;4.择率失真损耗最小的模块作为最优模式进行编码。(2)利用细节块能量通过计算细节块能量,提前判断宏块是采用大尺寸还是小尺寸模式进行编码,能够降低计算复杂度,缩短编码时间。1.对16X16模块进行运动估计,并判断是否为SKIP模式。若为是,则不进行其他模式的预测;32.将16x16分成4个8x8的块,通过DCT变化系数计算其细节程度,当高细节块数目大于2,并且尺6X160.7时,认为当前宏块要进行小模块模式预测,否则,只进行大模块模式预测(16x16,16x8,8x16)3.计算8x8模块的4个4x4DCT系数块的能量,当细节块数目大于2,并且尺Xs0.7时,认为要进行4x4模块的预测,否则只进行8x8,8x4,4x8模式预测。4.选择率失真损耗最小的模块最为最优编码方式进行编码。(3)利用运动矢量较大预测块预测说明用来表示运动矢量和分割区域的比特比较少,较小预测块预测说明用来表示运动矢量和分割区域的比特较多。如果两种预测块的运动矢量相等,那么我们就采用较大预测块进行预测。以16x16,16x8,8x16为例,当16x16的运动矢量和16x8,8x16的运动矢量相同时,我们就可以认为当前块为大模块模式,采用16x16进行编码。1.对16x16模块进行运动估计,并判断是否为SKIP模式。若为是,则不进行其他模式的预测;2.进行16x16,16x8,8x16模块预测,并比较3种模式的运动矢量,当3种模式的运动矢量相等时,则采用16x16模式进行编码。否则跳转3;3.进行8x8,8x4,4x8模块预测,如果运动矢量相等,则不进行4x4模块预测;4.选择率失真损耗最小的模块最为最优编码方式进行编码。经过试验测试,这种方法比较适合单一参考帧的情况,对于立体视频编码效果不太理想,只有SKIP模式判断提高了编码速度,这是因为立体视频编码中绝大部分都是B-Slice,并且参考帧为视点间参考,利用运动矢量判断约束条件太多,提高的编码速度不理想。2.5本章小结一般而言,一个编码器主要包括5个基本功能模块:帧间和帧内预测、变换和反变换、量化和反量化、环路滤波、熵编码。与二维视频编码有所不同,立体视频编码还存在不同视点间的空间冗余,因此除了进行运动估计和运动补偿外,还需要对立体视频进行视差补偿预测,来消除视点间的空间冗余,提高视频压缩的效率。大模块所占比率大,耗时少,小模块所占比例小,但是耗时多。而且,立体视频编码中,小模块模式相对于平面视频编码所占的比例更少,这也说明了立体视频编码中模式选择的重要性。JMVC测试模型遍历所有模式然后选择最优编码模式,致使编码速度低下。我们通过快速模式选择,尽可能的减
本文标题:数字视频技术论文
链接地址:https://www.777doc.com/doc-2330651 .html