【VC++开源代码栏目提醒】:网学会员在VC++开源代码频道为大家收集整理了“基于DM642 DSP的x264编码器研究及实现 - 硕士论文“提供大家参考,希望对大家有所帮助!
西南交通大学 硕士学位
论文基于DM642 DSP的x264编码器研究及实现 级别:硕士 专业:信号与信息处理 指导教师:苟先太 20100601 西南交通大学硕士研究生学位
论文 第1页 摘 要 作为新~代的多媒体应用视频编码标准,H.264/AVC采用了许多不同于以往标准的先进技术,在编码效率和性能大幅提高的同时,增强了错误恢复及网络自适应等功能,在广播电视、视频存储和回放、视频会议等领域具有广泛的应用前景。
本文介绍了如何在TMS320DM642平台上对从VC平台移植过来的H.264编码器进行优化并实现编码器实时采集。
编码器源代码选用三大
开源代码之一的x264代码。
H.264视频编码器在DSP芯片上的高效实现,除了要考虑算法本身的特点外,还要考虑DsP芯片的特点。
本文研究确定钻石
搜索算法为基本的快速搜素算法,结合DM642结构和指令的特点,充分利用EDMA技术提高数据传输速率,并提出了二级高速缓存优化方法;同时对软件流水做了优化修改,对
源代码及进行了汇编级优化,即把C语言的代码转化为汇编语言,使得源程序更加适合在DM642上的开发环境。
通过上述优化方法,结合实验仿真数据,使得移植到TMS320DM642平台的x264编码器每秒能够完成20”--’35帧cif尺寸的视频序列,解码后的视频图像具有较高的主观质量和客观质量。
关键词:H.264/AVC;快速搜素算法;EDMA;视频压缩 西南交通大学硕士研究生学位
论文 第1I页 AbstractAs a video coding standard for next.generation multimedia,H.264/AVC adopts a number of to improve codingadvanced technologies differs from the previous standards.In additionefficiency and coding performance,it also has some enhanced capabilities,including errorresilience and flexibility for effective use OVer a broad variety of network types.H.264/AVCprovides a technical solution for a broad range of applications,including broadcast television,video storage and playback,video conferencing,etc. The paper introduces how to develop and optimize the H.264‘’baseline’’encoder portedfrom VC platform on the hardware platform based on TMS320DM642.The source programis the encoder part of the‘‘x264’’which is one of the open H.264 codec software.For theimplementation of H.264 video encoder based on DSP,we should consider the character of DSP,except the characters of video encoding algorithm. This paper affirms the basic search methods as diamond search through some research of the integrate pixels searching.Considering the feature of the structure and instruction of DM642,in addition to use EDMA for loading data between different memories to make the data transfer work more efficient,we also propose the optimization strategy of two level Cache:Furthermore,some optimization and modification of the software water flow is needed in the project,and changing C code into compiled code in order to make the orginial code more suitable for DM642. Based on thsese strategies and the experimental data,optimized x264 encoder ported on DM642 platform Can encode 20”--’35 fps for cifresolution video.The decoded video pictures provide high subjective and objective quality. Key words:H.264/AVC;fast searching algorithm;EDMA;video compression 西南交通大学 学位
论文版权使用授权书本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,同意学校保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权西南交通大学可以将本
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位
论文。
本学位
论文属于1.保密口,在 年解密后适用本授权书;2.不保密口/覆’用本授权书。
(请在以上方框内打“V”) 学位
论文作者签名: 若妒彳n 指导老师签名: 日期. &Lo.6.1 日期:伽,0.厶.z 西南交通大学硕士学位
论文主要工作(贡献)声明 本人在学位
论文中所做的主要工作或贡献如下: 1.深入研究数字视频编解码技术的基本原理,借鉴国内外专家学者对H.264算法研究的经验和成果,通过对x264代码的研究与学习,同时结合实验数据得出适合于视频实时采集应用需求的参数配置和优化方案。
2.标准的x264源代码是基于PC环境,因此在移植入DSP前需要在CCS上进行代码修改,按DSP的语法规则和定义来重写部分程序。
本文结合DM642的硬件环境改写原有的纯C语言程序,移植后对部分代码进行汇编优化改写代码。
3.大范围使用完全针对C6000系列DSP开发的汇编语言,提高
程序的运行效率,节约编码时间。
4.充分使用EDMA和优化L2CACHE提高视频存储器的工作效率。
本人郑重声明:所呈交的学位
论文,是在导师指导下独立进行研究工作所得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中作了明确说明。
本人完全了解违反上述声明所引起的一切法律责任将由本人承担。
学位敝作者答名:爿饥韧 日期:∞?o,舐I 西南交通大学硕士研究生学位
论文 第1页曼皇曼曼曼曼曼曼曼曼曼曼曼量曼量曼曼曼II i II I曼曼曼!曼曼曼曼皇曼曼!!!舅!量曼黑 第1章绪论 1.1引言 国际电信联盟电信标准部 ITU—T(International TelecommunicationUnion.Telecommunication Standardization Sector)与国际标准化组织ISO(International Standardization Organization)/国际
电工委员会IEC(International Electron technical Commission)是制定视频编码标准的两大组织,ISO/IEC的运动图像专家组MPEG(Moving Picture Expert Group)致力于运动图像和音频压缩的处理和播放开发标 准,他们先后开发了MPEG.I(CD品质播放压缩的音视频)、MPEG.2(电视品质的视频 和音频的存储和广播)和MPEG.4(关于视听标准的最新标准),MPEG.7和MPEG一21标 准也是MPEG的工作成果,他们的目标分别是多媒体内容的表示和通用的多媒体框架,MPEG系列标准主要应用于视频存储(DVD)、广播电视、因特网或无线网上的流媒体 等。
ITU.T的标准包括H.261、H.263、H.264,主要应用于实时视频通信领域,如会议 电视等;两个组织也共同制定了一些标准,H.262标准等同于MPEG一2的视频编码标 准,而最新的H.264标准则被纳入MPEG.4的第10部分,图1.1为H.26X的发展历程。
lTU-T VCEG H.261 H.263+ l(1990年) (1997年-1998年) H.264 MPEG.2 (MPEG-4 》 H.262 》 partl0) (1994年.1995年1 厂1矿厂i丽F〕 (2002年) I(1995年.1996#:)I f(2000年) 【.........。
.............................一【......................................._J 图1.1 H.26X发展历史 1.2 DSP技术的发展现状 DSP是微处理器的一种,这种微处理器具有极高的处理速度,因为应用这类处理 器的场合要求具有很高的实时性,如移动通信,视频监控等。
从70年代DSP理论的 提出到21世纪DSP技术的飞速发展,共经历了四个阶段。
大规模集成电路技术的发展使得80年代DSP芯片发展成为必然。
如1982年世界 上首枚DSP芯片出现了,它采用的是微米工艺NMOS技术制作,运算速度比MPU提 西南交通大学硕士研究生学位
论文 第2页高了几十倍,唯一缺点就是功耗和尺寸较大,一般应用在语音合成和编码解码器中。
80年代中期,随着CMOS工艺技术的进步与发展,使得DSP技术应用在语音和图像硬件处理技术成为可能,原因就是基于CMOS工艺的第二代DSP的存储容量和运算速度都成倍的提高。
80年代后期至90年代,第三代,第四代,第五代DSP芯片相继问世,其运算速度以惊人的速度提高,应用范围包括通信、计算机、家用电子等领域,深入人们的生活。
自80年代初DSP产品推出以来,其发展迅速,生产厂家众多,产品种类繁多,工作速度不断提高。
目前市场上常见的DSP芯片有美国TI公司生产的TMS320系列,其次是AD公司、朗讯公司和摩托罗拉公司,产品覆盖了从低端的八位定点运算到高端32位定点和浮点运算,特别是TI公司的芯片已经成为目前市场应用的主流,品种多,芯片内部资源丰富,系列产品有C54X,C3X,C62X,C64X等等〔1】。
与PC
计算机结构相比,DSP系统具有功耗低,体积小,稳定性高等特点,并且广泛的应用在多媒体信号处理和通信等领域。
基于DSP运算速度快但接口能力差的情况,开始诞生了一种新型的DSP——数字媒体处理器。
媒体处理器芯片除了继承通用DSP芯片的特点,还有自己独特的运算优势,例如针对不同的多媒体应用扩充接口功能,TI、ADI和飞利浦公司都针对该市场应用做了大量投入,相继推出了具有竞争力的产品,如飞利浦的Trimedia、TMS320DM642等等。
未来10年,全球DSP产品将向着高性能、低功耗、加强融合和拓展多种应用的趋势发展,DSP芯片将越来越多的渗透到各种电子产品当中,成为各种电子产品尤其是
通信类电子产品的技术核心。
据TI预测,到2012年,DSP芯片的集成度将会增加11倍,在单个芯片内将集成5亿只晶体管。
正如ADI公司副总裁BenNaskar指出:“面对新世纪的网络产品、消费类电子产品以有无线通信等领域不断涌现的新应用,DSP产品在不断提高性能和增加功能的同时,正在不断地降低功耗和减小体积,以便适应市场的需求”12J。
1.3研究背景 基于H.264理想的压缩性能和强大的网络支持等特点,使得H.264实时编码在视频存储和图像通信领域成为一个热门的研究方向,有非常好的市场开发潜力,尤其在移动通信、视频应用、视频传输和存储等实时应用场合具有重要的研究价值和意义。
当前对于视频编码的实现主要有以下几种途径: 1.基于PC的软件实现,虽然开发的周期比较短,但是随着视频压缩标准的发展,单纯的用基于PC的
软件实现会受到很大的限制,特别是对于高分辨率的图像几乎不可曼曼曼篡曼曼曼曼璺皇曼皇曼曼曼曼曼曼曼曼曼曼!曼!曼曼曼曼曼曼孽曼!I—II—111 西南交通大学硕士研究生学位
论文 . 二 ; . ; ; 第3页 .皇曼曼曼皇皇曼曼曼曼曼曼曼曼曼曼曼曼曼曼能。
2.基于数字信号处理器的实现,采用改进的哈佛总线结构,具有良好的并行特性,并有专门应用在信号处理的指令系统,由于其高度可编程性、超强的数据吞吐能力和运算速度、非常适合用于实时应用领域,其系统的灵活性更好,修改软件就可以升级整个系统。
3.基于FPGA开发ASIC的图像压缩处理的实现,基于FPGA的应用和发展,通过软件编程和硬件实现某些特定编码算法可以实现算法的并行运算,但是开发代价相对要高很多pJ。
本课题就是选用第二种途径,将H.264编码算法移植到TI公司的DM642平台,实现H.264算法的实时编码,即要保证良好的图像质量,又要有较高的编码效率,这就需要采用各种代码优化的方法,提高编码效率,实现
系统的实时编码。
1.4本文的主要
工作及创新
论文通过对H.264的应用场合和关键技术的分析,得出H.264在实现强大的编码性能的同时,算法的复杂度也急剧增加,使得H.264在视频编码及传输应用中的开发难度增加。
本文针对以上
问题做了系统的研究,目的是为了建立一套完整的基于高速DSP平台H.264编码器实时视频采集系统的优化
方案,主要的研究成果和创新点体现在以下几个方面: 1.深入研究数字视频编解码技术的基本原理,借鉴国内外专家学者对H.264算法研究的经验和成果,通过对x264代码的研究与
学习,同时结合实验数据得出适合于视频实时采集应用需求的参数配置和优化方案。
2.标准的x264源代码是基于PC环境,因此在移植入DSP前需要在CCS上进行代码修改,按DSP的语法规则和定义来重写部分程序。
本文结合DM642的硬件环境改写原有的纯C语言程序,移植后对部分代码进行汇编优化改写代码。
3.使用完全针对C6000系列DSP开发的汇编语言,提高程序的运行效率,节约编码时间,是本文一个创新点之一。
4.充分使用EDMA和优化L2CACHE提高视频存储器的工作效率,也是本文创新点之一。
5.本文实验结果表明,移植到DM642上的x264编码器经过优化后可以很好的改善编码性能,提高编码速率,对cif视频编码达到20”--’35帧每秒,很大程度上满足了cif尺寸实时编码的需求。
1.5本文的结构安排 本文总共分为五章: 西南交通大学硕士研究生学位
论文 第4页 第一章,在阅读分析大量文献资料的基础上,了解视频编码算法的历史和研究现状,介绍了课题的研究背景和意义,以及DSP技术和视频编码技术的研究现状,同时提出本文的创新点和主要工作并对本文的研究工作和各章节内容进行安排。
第二章,重点论述了H.264的技术亮点,同时对H.264视频编码器结构进行了系统的分析,这也是后续工作重要的理论基础。
第三章,针对开发的硬件平台进行了介绍,了解DM642的硬件结构、性能特点及开发平台的接口
设计,并对开发环境做了简单的介绍。
第四章,这是本文的重点部分,主要内容包括编码器的移植和优化,详细介绍了x264编码器源代码的移植过程,并分别从代码级优化、CCS选项配置、存储器空间优化、EDMA的使用等进行了详细的介绍,并对优化后的实验数据做出分析。
西南交通大学硕士研究生学位
论文 第5页 第2章H.264编码器的结构和关键技术2.1 H.264编码器结构 在H.264中,高
压缩比通常伴随着编码的高复杂度,虽然在低码率下仍然可以提供比较好的图像质量,但同时增加了许多额外的计算。
通过和H.263编码算法的对比,可以更直观的看到H.264比较大的运算复杂度,在同样的SNR(信噪比)下,H.264编码器的复杂度增加了4倍左右,耗费了大量的运算时间,需要对其进行算法优化。
如图2—1所示,为一个编码器和解码器都包含的功能模块图,与以往的视频编码标准一样,虽然H.264没有对编解码器做详细的定义,但是却详细定义了编码视频位流的语法〔41。
从图中可以看出,除去块滤波器外,主要的基本功能模块,如预测、变换、量化、熵编码和以前的H.26X标准原理大体相同,只是在一些局部的编码策略上,H.264引入了一些新的算法与特性,例如高效的帧内预测,树状结构的分块运动补偿,环路去除块效应滤波等等。
以上技术的引入使得H.264提高了压缩能力,也提高了对传输错误的抵抗力,更好的适应
网络环境,使其能广泛应用于无线多媒体和网络多媒体领域。
魏 ‘\ J L L-------—-_一L---------一 〕8仟”广〕”“” I—L ’瓢 、1 )P 爿裟雾H篓蠹卜 _-—.叫测选择j l预测I 。
口. 【、P’n冈.厂习. +≥ 图2—1视频编码框架图 编码器工作工程可以分为前向通道和后向通道。
在编码器前向通道中,Fn表示当前编码帧,对该帧进行分块然后开始编码,宏块编码方式分为帧内编码和帧间编码。
当帧间编码时,F’n.1表示帧间编码时的参考帧,预测宏块P都是经过F’11。
1预测、运动估计、运动补偿的过程得到的;当帧内编码时,预测宏块P是由当前帧已编码的宏块但未经滤波的‖F’11部分重建形成,Dn表示P与当前帧Fn形成的预测残差,然后经 西南交通大学硕士研究生学位
论文 第6页过变换和量化的过程得到一组量化变换参数X,再对X进行重排序,熵编码与解码宏块需要的信息一起经过网络提取层(NAL)形成最终传输和存储的编码流。
在“后向通道”中,量化变换参数X通过量化和变换的逆变换过程,即反量化和反变换产生D’n,即残差宏块。
它不同于Dn,这是由于反量化过程会使得Dn产生变化,从而产生分块效应,因此在之后的重建宏块过程产生的‖F’n需要经过一个去块滤波器,其作用就是尽量减少分块效应,形成重建帧F’。
。
2.2 H.264编码器关键技术分析 基于H.264良好的的网络适应性和高压缩比编码,结合其灵活的语法配置,继承了H.263和MPEG.X视频编码协议的优点,不仅充分考虑各种多媒体通信的应用要求,而且加入了如离散余弦整数变换(DCT)、基于上下文的自适应二进制算术编码、基于内容的自适应可变长编码等新技术,从而提高图像质量和编码的压缩比,这都归因于H.264较多的技术优势,下面就改善图像质量和压缩比方面的关键技术做详细论述。
2.2.1基于灵活分割宏块的运动矢量估计和补偿 基于灵活分割宏块的运动矢量估计和补偿便是H.264关键技术之一15J,它可以灵活地选择块的大小,以可变大小的块来适应不同的应用环境和需求,可以分为16x8,8x16,8x8,16x16四种模式;当划分为8x8块时,又能再采用8x4,4x8,4x4三种子宏块划分模式块,如图2.2所示。
在帧内编码时,对亮度块的16x16和4x4两种划分模式,是依据图像的具体特征来划分的,即图像部分需要细化时,采用4x4块预测,而对于图像细化要求不高,变化相对平缓的部分则采用16x16预测模式,对应于4x4和16x16两种块划分模式分别有9种和4种预测模式,如图2.4,2—5所示。
根据需要选择不同尺寸的宏块来执行可以减小运动物体边缘误差,更好的处理运动细节,即以更小的运动补偿块的引入来提高普通和特殊情况下的预测质量,既可以提高主观视觉效果,又可以减小变换过程中的计算量;如图2.2所示,在帧间编码时,每个宏块可以按4种方式进行分割;当采用8x8分块模式时,每个子宏块可以进一步按4种方式进行分割,采用这种分割方式的运动补偿也被称为树状结构运动补偿【6】。
实验表明,应用不同大小和形状的块可以比单一的利用16x16块进行编码要提高15%以上的压缩比【7J。
无论是帧内编码还是帧间编码,对宏块的编码模式选择进行分块时都要进行帧内编码分析,因此为了更好的提高编码速度,获得更佳的H.264编码效果,针对帧内模式选择算法的优化是必不可少的。
另外在预测前,需要对当前块相邻的左、上方重构.