欢迎来到天天文库
浏览记录
ID:22370673
大小:57.00 KB
页数:8页
时间:2018-10-28
《h.264编解码器在c6416dsp上的实现与优化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、H.264编解码器在C6416DSP上的实现与优化
2、第1...一.引言随着通信技术和信号处理技术的发展,人们对多媒体信号的需求越来越多,要求的质量也越来越高,如何在现有的技术水平和硬件条件下实现合理、优化、实时的多媒体通信终端设备和产品一直是近年来信号处理领域和相关公司关注的话题。目前,随着数字信号处理器(DSP)的高速发展,为我们实现高效的多媒体处理提供了可能性。尤其是TI公司的TMS320C64系列产品,具有高主频,多流水线,高并行度以及专门的视频信号处理指令等优点,使其成为视频处理领域优选的DSP芯片之一。其次,针对当前网络带宽还不够,无线通信信道误码率较高的
3、情况,稳定的低码率视频信号的需求一直都是必须和必要的。H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图像专家组联合提出的最新一代的视频编码标准。不论从编码的效率方面,还是从有效的适应各种网络和各种应用领域的灵活性方面,H.264/AVC都体现着视频编码技术的很多优势。这些新特性使H.264/AVC标准在实现和现有编码标准(H.263,MPEG-4SimpleProfile)相同视觉效果的同时节省大约50%比特率。因此,将H.264的先进技术和稳定的媒体处理器相结合,实现高效的媒体通信平台有着一定的工程意义和市场价值。二.H.264简介H.264是I
4、TU-T和ISO/IEC联合制定的最新编码标准,它最先由ITU-T于1997年提出,目标是提出一种更高性能(相对于当时的H.263)的视频编码标准。相对于其它标准,H.264具有以下特点:1.低码率,高质量在相同质量的情况下,H.264相对于H.263的Baseline可以节约40%~50%的码率。2.广阔的应用范围H.264的不同Profile既可以应用于有严格时延限制的实时通信中,也可以应用于对时延要求不高的其他应用中(视频存储、流媒体等等)。3.鲁棒性H.264在设计时,针对分组交换网如Inter中的分组丢失和无线网络中比特误码都提出了相应的工具,使得H.26
5、4在这些网络中传播时具有更强的抗误码性能。4.对各种网络的友好性。H.264中增加了NAL层,负责将编码器的输出码流适配到各种类型的网络中,从而提供了友好的网络接口。H.264之所以能够达到以上性能,是因为采用了以下一些先进的技术:首先是帧内预测编码,充分利用图像空域相关性,来降低码率。共有13种预测模式(4×4块大小9种预测模式,16×16块大小4种预测模式),这在以往标准中是没有的。其次采用新的运动估计方法。H.264有7种块匹配模式,编码时对其逐一计算,选择最优。例如较为精细的部分采用4×4块大小,不运动的背景可以采用16×16块大小等等。以往标准只有固定的一
6、种或两种块大小模式。H.264采用多帧参考,最大限度利用实域相关性。参考帧可以从1帧到15帧,以往标准都是单帧参考。还有采用1/4或1/8精度的亚象素运动估计,以往标准至多采用1/2精度亚象素搜索,而且不是必选选项。为了消除视频编码中常出现的块效应,H.264使用了去块效应滤波器。它还采用整数DCT变换,以提高变换速度,采用CAVLC,CABAC等新的熵编码方法以提高编码效果。三.NVDK开发平台介绍NVDK是TI的第三方ATEME公司推出的基于TI的C64系列DSP评估开发套件,是一套适用于图像、视频信号处理的高速DSP开发平台。该套件为诸如视频基础设施及网络化视
7、频设备等高级视频应用制造商提供了方便,提高了数字视频应用项目的开发速度。NVDK的核心是一块C6416DSP,主频600Mhz,处理能力达到4800MIPS。它具有64个独立通用寄存器,1M字节的片上内存,具有64位和16位片外内存接口各一个。它还具有丰富的DMA通道,大大缓解了CPU的运算压力。此外,C6416支持8,16,32,40,64位数据读写及运算,具有丰富的媒体处理指令,如一条指令对4个字节的数据进行加、减、乘、求绝对值、点乘等运算,方便进行媒体处理开发。此外,NVDK板上还有丰富的音视频接口,并提供相关的视频捕获,格式转换,视频播放等函数,大大方便我们
8、的工作。四.H.264编解码器在DSP上的实现与优化将H.264在DSP上实现与优化,需要经过以下几个步骤:PC机端算法实现及优化,代码移植,DSP端代码优化。下面就着几个方面逐一进行介绍:1.PC机端算法实现与优化。我们选取ITU-T公布的JM6.1e参考软件作为我们的优化对象,目标是实现一个base-lineprofile的实时编解码算法。但是JM6.1e代码复杂,冗余度很大,需要在PC机端对其进行较大调整,涉及工作有:去除冗余代码、规范程序结构、全局和局部变量的调整和重新定义、结构体的调整等。2.代码移植代码移植,就是将在PC端跑通的程序,移植到DSP端,
此文档下载收益归作者所有