论文部分内容阅读
当前我国已成为规模上世界第一的通信大国。宽带网络不断发展建设,通信质量不断提高。视频通信无疑成为关注的热点。而当前的数字视频分配主要以MPEG-2为基础,这是一个近10年的旧标准,已经达到了视频压缩效率的极限。在这种背景下,2001年,ISO与ITU开始组建了包括来自ISO/IECMPEG与ITU-T VCEG的联合视频组(JVT)。JVT的主要任务就是将H.26L草案发展成为一个国际性标准。2003年,国际电联关于数字视频编解码的技术建议H.264被国际标准组织正式接受,成为正式的国际标准。H.264主要包括整数变换、空域内的帧内预测、1/4像素精度的运动估计、多参考帧与多种大小块的帧间预测技术、统一的熵编码码表、基于内容的白适应变长编码与基于内容的自适应算术编码、去块效应滤波器等编码新技术。本论文要实现的目标是:对H.264的整数变换和量化进行优化和实现。软件开发基于windows平台,在前期算法研究时参考的是JM8.4模型,软件版本主要基于x.264代码,采用C语言开发。通过移植,灌入TI公司的TMS320 DM642 DSP处理板。DSP版本的软件代码是C语言和线性汇编混合编程。视频的捕捉通过DSP自带的视频输入口送入到DSP,编码码流通过视频输出口,利用UDP协议实现网络通信。H.264采用的是整数变换和乘法与移位实现的量化方式。整数变换的所有操作运用整数运算处理,不损失解码精确度;它可以确保编码器和解码器之间的零失配反变换;变换的核心部分可以仅仅通过加法和移位实现;标量乘法(变换的部分)可以整合到量化器中,减少乘法次数。而乘法与移位实现的量化方式避免了除法和浮点运算,这大大提高了编码效率。H.264中的整数变换和量化,有两种尺寸—4x4和8x8。在算法选择上基于以下几个方面:-不采用耗费时间过长的算法。-视频格式是D1标清,大的变换块能够得到更好的压缩效率。在图像处理中,大的变换块更能利用图像的相关信息,使得变换后的能量更加集中。-在图像质量相同的情况下,选择执行效率高的算法。通过理论上的分析和算法仿真,自适应尺寸的变换和量化耗费时间过长,对于大尺寸图像,8x8尺寸的质量比4x4稍好,并且执行效率相对较高。最终的选择是,除了帧内16x16预测的情况,其他情况均采用8x8整数变换和量化(帧内采用16x16和8x8预测,帧间预测块尺寸均在8x8以上)。对C语言版本的代码,调整结构体和函数的结构并且使用通用的软件优化方法。经过profile分析编码性能,整数变换和量化是运算密集,耗费时间长的代码段,所以移植到DSP的代码中将变换和量化部分代码改写成线性汇编,并且使用特定指令以减少执行周期。然后根据DSP存储器特点以及两级高速缓存的特性,进行内存分配和cache优化并把经常访问的代码和数据放到片上。最终达到提高执行效率的要求。