MPEG-4视频编程技术研究_毕业设计论文.doc_第1页
MPEG-4视频编程技术研究_毕业设计论文.doc_第2页
MPEG-4视频编程技术研究_毕业设计论文.doc_第3页
MPEG-4视频编程技术研究_毕业设计论文.doc_第4页
MPEG-4视频编程技术研究_毕业设计论文.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计(论文)题 目 mpeg-4视频编程技术研究 部 系 地方生部 专 业 电子信息工程 中国人民解放军海军航空工程学院摘 要视频编码是多媒体通信中的核心技术,它不但关系到通信带宽,也关系到通信过程中的图像质量。随着多媒体技术在网络的广泛应用,视频编码技术更加显得重要。与之相适应,各种多媒体数据压缩编码标准也在不断地发展和完善.mpeg4是现在最重要最有影响的多媒体数据编码国际标准之一。基于对象的编码思想使其具有高压缩比、可扩展性、可交互性等许多特点。adi公司的blacfin系列的dsp在图像处理方面有其出色的表现和较低的价格而获得关注。本文基于adspbf561 dsp的特点,探讨了mpeg4在bf561上的视频数据的实时编码的实现。本论文首先系统介绍了mpeg4编码的特点以及选用bf561的原因,接着分析了mpeg4的主要技术,并介绍了mpeg4简单编码框架编码器的软件实现方案,给出了方案流程图,在vc+环境下用c语言实现了mpeg4简单框架的视频压缩功能。其次,研究了核心算法dct变换和运动估计的优化算法,通过分析运动向量的分布相关性,结合提前中止准则,提出了基于起点预测的改进菱形运动估计算法。另外根据bf561双核的特点,设计了一种基于宏块层并行算法。最后,本文从硬件平台特征出发,在存储器设置、dma控制和代码等方面对编码方案进行优化。经本方案优化后,编码器的编码效果得到很大的提高,能够在bf561处理器上实现cif格式30帧秒的码率,达到预期的目标。第一章绪论11课题提出21世纪的人类社会将是信息化社会,数字化后的信息,尤其是数字化后的视频信息具有海量数据性,它给信息的存储和传输造成很大的困难,己成为人类有效地获取和使用信息的瓶颈问题之一。1895年电影的诞生第一次将视频信号带给了人类社会,随着电视的发明和普及,视频信号走进了千家万户。数字技术的广泛应用,对视频信号的存储和传输带来了一次革命,但是从模拟转换到数字的原始视频信号的数据量是惊人的,单纯地靠提高存储容量或信道传输速率的做法是不切实际的,以传输未经处理的标准清晰度电视(sdtv,standard definitiontelevision)的图像格式为例,704像素(水平)*480像素(垂直),帧频60hz隔行扫描,其每秒的数据量是:704*480*30*15(4:2:0)=15206400bytes。更不用说,现在流行的高清电视(hdtv,hign definition television),其数据量是标清的5倍多,这显然远远超出了目前intemet通信信道的能力,而且直接把未经处理的视频数据发送到通信信道上,也是对通信带宽的极大浪费。因此,研究有效的视频压缩编码方法具有很重要的现实意义。视频压缩编码技术是多媒体应用的核心技术,对视频编码的研究已成为信息技术领域的研究重点,并制定了一系列的视频标准。其中mpeg-4利用很窄的带宽【l】,使用帧重建技术,压缩数据,以最少的代价获得最佳的图像质量。因此,其广泛应用于实时、高效、适合网络传输等特点的领域,如数字监控、可视电话和手机视频等。本课题设计了实时mpeg4视频编码系统,能够实现cif格式(352*288)数据每秒30帧的处理能力,结合该系统功耗低、体积小、性价比突出的特点,在进一步改进的基础上,具有广阔的工程应用前景。12数字视频编码发展历程1-21编码方法的发展第一代编码方法。1948年oliver提出了第一个编码理论脉冲编码调制(pcm,pulse coding modulation)。同年shannon的经典论文通信的数学原理中首次提出并建立了信息率失真函数概念;1959年shannon进一步确立了码率失真理谢21。以上工作奠定了经典信息编码的理论基础,在此基础上视频编码理论和技术取得了长足的发展,其主要的编码方法有:预测编码、变换编码和统计编码,也称为三大经典编码方法。其中预测编码的基本思想是:根据数据的统计特性得到预测值,然后传输图像像素与其预测值的残值信号,使传输的码率降低,达到压缩的目的。变换编码的基本思想是:由于数字图像像素间存在高度相关性,因此可以进行某种变换来消除这种相关性。变换编码不直接对空域图像像素编码,而是先将它变换到频域,得到一组变换系数。虽然变换并不对数据进行压缩,但经过变换后,能量相对集中,通过后续的量化、编码就能达到压缩的目的。变换编码方法中的离散余弦变换(dct,discrete cosinetransform)和小波变换在视频图像压缩中得到了广泛应用。统计编码的基本思想是:根据信息码字出现概率的分布特征而进行压缩编码,寻找概率与码字长度间的最优匹配。统计编码主要针对无记忆信源,它又可分为定长码和变长码(vlc,variable lengthcoding)。hufman编码和算术编码是两种常见的变长码字编码方法。第一代编码技术【3】只是以信息论和数字信号处理技术为理论基础,旨在去除图像数据中的线性相关性,其压缩比不是很高,对于视频图像来讲一般在40:1左右。为了克服第一代视频编码技术的局限性,kunt等人于1985年提出了第二代视频编码技术。而第二代编码技术不再局限于信息论的框架,从更为底层的基础上探索视频图像信息的表述机制,充分利用人的视觉生理心理特性和图像信源的各种特征,实现从“波形编码到“模型”编码的转变,以期获得更高压缩比。第二代编码方法主要有:基于分形的编码方法、基于模型的编码方法、基于区域分割的编码方法和基于神经网络的编码方法等。分形编码是一种不对称的编码技术,适于自相似性较强的自然景物图像。基于模型或知识的方法,是把计算机视觉和计算机图形学中的方法应用到视频编码,在编码端通过各种分析手段,提取所建模型的特征与状态参数,在解码端通过这些参数通过模型及相关知识生成所建模的信源。基于区域分割与合并的视频编码方法,是根据图像的空域特征将图像分成纹理和轮廓两部分,然后分别对它们进行预处理、编码。预处理将图像分割成纹理和轮廓两部分,对纹理可采用预测编码和变换编码,对轮廓则采用链码方法进行编码,较好地保存了对人眼十分重要的边缘轮廓信息,因此,在压缩比很高时解码图像质量仍然很好。神经网络法是模仿人脑处理问题的方法,通过各种人工神经元网络模型对数据进行非线性压缩,目前还处在探索阶段。第二代基于内容和语义的编码方法为视频压缩编码开拓了广阔的前景,但同时也大大增加了分析的难度和实现的复杂度,要得到充分应用还有赖于进一步深入研究以及相关辅助学科的同步发展。122视频编码标准的发展1988年形成草案,1990年通过的itut h261标准是视频编码技术走向实用化的里程碑,被誉为“图像编码40年经验之总结”。从此开始,视频编码的技术得到迅速的发展和应用,制定了多个视频编码的国际标准,即国际电信联盟itut关于电视电话会议电视的视频编码标准h261、h263及h264和国际标准化组织iso和国际电工委员会iec关于活动图像的编码标准mpeg1、mpeg2和mpeg4等。这些标准图像编码算法融合了各种性能优良的图像编码方法,体现了图像编码的发展水平。1mpeg11993年8月通过的mpeg1【4】是15mbps数据传输率的数字存储媒体运动图像及其伴音编码的国际标准。它的视频部分与h261及h263原理图大致相同。然而,mpeg1主要是针对存储媒体的视频编码标准,而h261和h263主要是针对传输的视频编码标准,故mpeg1在顾及图像质量、压缩比的同时还要考虑对序列图像进行随机访问和编辑的方便,mpeg1在充分参考h261以及jpeg的基础上,加入了双向预测帧b帧,从而提高了压缩比。对随机访问和编辑的支持由每秒2个i帧来支持,不需依赖p帧和b帧而独立解码。2mpeg21994年11月通过的mpeg2t5】主要是针对数字视频广播(dvb,digital videobroadcasting)、高清晰度电视(hdtv)、数字视盘(dvd,digital versatile disc)等制定的高于15mbps运动图像及其伴音的国际标准。mpeg2的制定,充分的考虑了对mpeg1兼容,对图像质量和数据率的多层次需求,因此其最大的特点在于支持格式多、兼容性好并易于扩展。mpeg2不仅支持帧编码而且支持场编码;不仅支持mpeg1比特流,而且支持更高时域和空域分辨率。mpeg2另一特点是其可伸缩性。3mpeg4mpeg4t6】标准专家组成立与1993年,于1998年正式成为国际标准。其最初的目标是极低比特率的音频视频编码压缩标准,主要适用于公共交换电话网络(pstn,public switched telephone network)上的视频通信或移动通信网络,但是随着研究工作的深入,它所包含的内容和将起到的作用远远超过了最初的设计思想。mpeg-4目的是寻求支持数字音频视频数据通信、存取和管理的新途径,它为多媒体数据编码提供了一个更为广阔的平台,它更多定义的是一种格式和框架,而不是具体的算法,以支持各种各样新颖的和高效的功能。13视频编码器研究现状考虑到实时视频编码算法所需的运算资源和存储空间,进行系统设计重点考察了下列三种技术成熟并在市场上存在商业应用方案。在此基础上,选定本课题编码器采用的系统设计方案。1通用pc机软件实现通用pc的发展异常迅速,目前可以已近1000元买到intel双核处理器,单核主频是2330mhz(参考2008年3月24日intel core2 duo e6550报价)。该方案的优点是通用pc系统的主频性价比非常高,并且拥有最丰富的软件工具。并且提供了较完整的多媒体指令集和流水线控制,但是通用pc应用广泛,其内核支持各种应用,而不只限于特定的多媒体处理,且功耗过高,软件实现存在执行效率上的损失。2专业dsp芯片实现该方案的优点是dspt7】提供了极其强大的多媒体处理能力,并且具有众多的多媒体接口,相关厂商提供了丰富的开发包和必要的开发资源。如philipstrimedia系列,应用于数字电视,监控设备,机顶盒等。其缺点是成本高,功耗较大,不适应于小型设备的开发。3通用dsp芯片实现如adi的blackfin系列【引。其优点是主频高,功耗低,并且具有很强大的功耗控制模块,芯片体积小,适用于小型设备的研发。厂商提供了非常多的开发资源,便于开发人员的快速上手。处理器支持众多的多媒体接口,利用系统的扩展和商业应用。结合课题研究的目的,综合比较上述三种解决方案,最后选定采用通用dsp芯片进行项目的研发。比较adi blackfin系列产品的特点,最后选用adspbf56 1。adspbf561是美国模拟器件公司(adi)和intel联合开发的高性能双核dsp。这一产品专为通信和互联网应用而设计,能处理互联网的大量的图像、声音、文本等数据流。其特点是结合多媒体处理器和普通微处理控制单元(mcu,micro controller unit),较高的主频,较低的价格,加上极低的功耗,加上体积小的特性,极其设和数据流巨大的实时视频处理设备。14研究的内容本课题的研究工作主要着眼于实时视频编码工作,这是当前研究的热点之一。综合考虑各种成熟的设计方案后,选用adspbf561进行mpeg4实时编码系统的开发,系统的设计目标是达到cif格式(352*288)yuv数据每秒30帧的处理能力。针对这一目标,本课题首先深入研究了mpeg4视频压缩标准。分析mpeg4各种应用框架的复杂程度以及系统实时编码的设计目标,决定采用mpeg-4 sp层次框架结构。在研读mpeg4 sp源代码的基础上,首先在通用pc上面实现完整版本的纯c语言程序,进行正确的mpeg4编码。以此版本作为通用pc机上的研究基础,对计算量大的模块,进行算法改进,提高效率。移植到dsp上后,根据dsp的特点,对代码进行优化,以达到系统设计要求。15论文的结构安排本课题以mpeg4参考模型xvidcorl02为蓝本,采用adspbf561作为主处理平台,研究编码算法在dsp上的实现和优化。本文主要章节结构安排如下:第一章绪论介绍课题提出的原因,视频编码的发展情况,以及采用通用dsp方案的原因。第二章研究了mpeg-4编码标准的特点和关键技术,以及双核bf561适用于多媒体处理的原因。第三章是本论文的重点章节,重点研究了影响编码效率的关键算法改进。通过对计算量要求最大的dct和运动估计补偿算法的改进,获得较好的效率提高。第四章讨论了mpeg4 sp编码框架的软硬件设计,以及移植到dsp上的方法。并重点设计基于双核bf561的宏块层并行处理算法流程。第五章讨论了编码器的优化问题。其涉及到各个层次上的优化:编译器优化、存储空间优化、c语言级优化和汇编优化等。在优化过程中,充分利用bf561硬件特性,提高编码的效率,最终实现系统设计的要求。第六章对全文进行总结,并对下一步工作进行展望。第二章mpeg4视频编码技术和双核dsp561开发基础课题选用了bf561进行mpeg4视频编码技术进行研究与开发。进行深入探讨之前,对课题涉及到的两大关键点:mpeg4视频编码技术和dsp处理器bf561进行详细的介绍。mpeg4视频编码部分重点介绍了与本文开发相关的sp框架下的关键技术;bf561部分重点介绍与并行处理、存储和dma相关的基础内容。这些基础内容与论文后续章节的论述密切相关,为论文提供基础知识。21 mpge-4标准开发基础211发展简况iso于1991年5月提出关于视频音频编码的mpeg-4项目,设有系统、音频、视频、需求、实现研究、测试及自然合成混合编码等几个小组。mpeg4于1998年11月成为国际标准,iso于1999年1月公布了mpeg4(视频和音频对象的压缩)标准的第一版,随后又于1999年12月公布了此标准的第二版,mpeg4的正式iso命名为isoiecl4496。在拟定mpeg4的初期,其主要目标是低码率视频通讯,mpeg4 v20版本的“simple profile支持无线多媒体通信。其支持5-64kbiffs的甚低比特率视频通信业务的算法和工具,支持极低分辨率(从每行每列几个象素到cif级分辨率)和极低帧率(o-15hz)的图像序列。随着研究工作的进一步深入,mpeg4逐渐发展为一个功能强大的多媒体编码标准,它不仅仅是一个低码率的音像编码标准,其编码速率己扩展到涵盖从64kbps到10mbps的范围。mpeg-4旨在提供在多媒体环境中有效存储、传送以及操作视频数据的核心标准技术,建立一种能被多媒体传输、多媒体存储、多媒体检索等应用领域普遍采纳的统一的多媒体数据格式。由于所要覆盖的应用范围如此广阔,而且各种应用本身的要求又如此不同,因此,为了提高和改善编码效率,mpeg-4提供了如下新功能【9】:1具有对被称为视听对象(avo,audio visual objects)的混合媒体数据的高效编码能力。这些混合媒体数据包括:视频图像、图形、文本、音频、语音等。 2具有用合成文本(script)组合成的混合媒体对象来产生多媒体信息表现的能力。3压缩的数据在噪声信道传输中具有恢复差错的鲁棒性。4具有对任意形状视频对象进行编码的能力。5具有在网络信道所提供的适合于特有对象性质的业务质量下实现音视频对象同步与复用的能力。6具有在接收端与视听场景进行交互的能力。212 mpeg-4的核心思想在mpeg4制定之前,mpeg1、mpeg2、h261、h263都是采用第一代压缩编码技术,着眼于图像信号的统计特性来设计编码器,属于波形编码的范畴。第一代压缩编码方案把视频序列按时问先后分为一系列帧,每一帧图像划分为宏块进行运动补偿和编码,这种编码方案存在以下缺陷【io】:1将图像固定地分成相同大小的块,在高压缩比的情况下会出现严重的块效应,即马赛克效应。2不能对图像内容进行访问、编辑和回放等操作。3未充分利用人类视觉系统(hvs,human visual system)的特性。mpeg-4则代表了基于模型对象的第二代压缩编码技术,它充分利用了人眼视觉特性,抓住了图像信息传输的本质,从轮廓、纹理思路出发,支持基于视觉内容的交互功能,适应了多媒体信息的应用由播放型转向基于内容的访问、检索及操作的发展趋势,如图2-1所示。 av(audio video)inx,-t象是mpeg4为支持基于内容编码而提出的重要概念。对象是指在一个场景中能够访问和操纵的实体,对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。在mpeg-4中所见的视音频己不再是过去mpeg-l、mpeg2中图像帧的概念,而是一个个视听场景(av场景),这些不同的av场景由不同的av对象组成。av对象是听觉、视觉、或者视听内容的表示单元,其基本单位是原始av对象,它可以是自然的或合成的声音、图像。原始av对象具有高效编码、高效存储与传输以及可交互操作的特性,它又可进一步组成复合av对象。因此mpeg4标准的基本内容就是对av对象进行高效编码、组织、存储与传输。av对象的提出,使多媒体通信具有高度交互及高效编码的能力,av对象编码就是mpeg-4的核心编码技术。mpeg-4不仅可提供高压缩率,同时也可实现更好的多媒体内容互动性及全方位的存取性,它采用开放的编码系统,可随时加入新的编码算法模块,同时也可根据不同应用需求现场配置解码器,以支持多种多媒体应用【12】。mpeg-4采用了新一代视频编码技术,它在视频编码发展史上第一次把编码对象从图像帧拓展到具有实际意义的任意形状视频对象13】,从而实现了从基于像素的传统编码向基于对象和内容的现代编码的转变,因而引领着新一代智能图像编码的发展潮流。213 mpeg4的框架及应用场合mpeg4的应用领域非常广泛,即可以用于高质量的数字电视,也可以用于极低码率的无线多媒体通信,还可以进行交互式处理,为了适应各种应用对编码特性的需求,同时满足编码结构的清晰,mpeg-4设计了各种层次的框架(profile)结构【】,以适应于不同领域的编码需求。每一个框架下定义了多个级(level),用于限制计算的复杂度,也适应于不同编码领域的细分要求,具有很大的灵活性。mpeg4中的profilelevel组合形式,其作用是:允许编码器的厂家仅仅实现标准的子集,加上上级子集对下级子集的全兼容,这样可以最大限度的实现与其他mpeg-4设备的互通。由于mpeg-4是一个完整的多媒体应用框架【l 51,设计的范围非常广泛,视频编码仅仅是其中的一部分,而且涉及到编码部分就包含自然景物、三维图像等领域。结合目前图像分割技术的不完善,本文仅仅研究基于矩形编码类的框架。所以,考虑表21所列三类编码框架。本课题研究的cif格式实时mpeg4编码系统,因为高级简单框架涉及bvop编码,具有后向预测部分,需要根据视频对象平面组层的排列,存储多帧数据,不利于实时处型16】。对比而言,简单编码框架(simple profile),虽然在编码的压缩率方面存在一定的损失,针对本课题实时编码的研究,压缩率上的损失是可以接受,并因其编码的复杂度最低,具有很好的成本控制能力,所以本课题选用该框架结构。214 mpeg4 sp框架的关键技术分析mpeg-4是mpeg系列的最新发展,其借鉴了其他视频标准的优秀算法,并在其基础上进行了一系列的改进。本章节重点介绍课题应用的sp框架关键的技术,为后续章节的论述,打下基础。1i-vopp-vopmpeg-4编码的基本单元是vop(video object plane),相对于以前编码标准中“帧的概念。i-vop:帧内vop,称为i帧。i-vop是独立压缩编码的,不需要其他vop作为参考。是后续的p-vop所需运动估计的参考点,因此,在视频码流中需要周期性的插入i-vop。p-vop:帧间vop,称为p帧。利用前一帧编码的ivop或者p-vop做帧间预测编码。为了减少编码误差,所使用的预测参考帧不是那帧图像的原始图像,而是该帧的重构帧。在实际的编码中,一个视频对象组(gov)包括一个ivop和多个p-vop。开始的是i-vop,其与前面的vop无依赖关系,可以独立编码,因此出现误码,也不会传播到下面的gov,后面的是p-vop,其参考重构的ivop编码,提高码流压缩率。2运动估计补偿技术运动估计补偿技术n71其主要目的是除去视频序列的时域相关性,其基本的原理这里不进行叙述。运动估计补偿模块是编码标准的关键算法:其很大程度上决定编码的效率。好的运动估计算法可以快速确定匹配的运动估计向量,大大减少计算量,提高编码速率。据估计,运动估计算法占到编码计算量约60,对编码速度的影响很大。目前,mpeg-4编码验证模型采用的运动估计算法是钻石搜索法,又叫菱形搜索法。本课题对其进行了细致的研究,并进行了较大的改进,详细论述见章节32。下面主要介绍mpeg一4 sp框架区别于以前编码标准的一些特点: (1)12或者14像素精度估计考虑到前后两帧的物体运动不一定是整数像素,为提供运动估计的精度,需要在12或者14像素位置内插一个参考帧。可以提高估计精度,但增大了运算开销和存储容量。(2)无限制运动向量无限制运动向量(umv)砌通过填充技术,针对边界处的宏块,根据搜索窗口的大小,等值扩充边界,提高搜索精度。因运动向量超出原有图像的边界,因此称为无限制运动向量。(3)四运动向量模式16*16的亮度宏块可以作为一个整体进行运动补偿n91,或者作为4个8*8块单独进行运动补偿,即为四运动向量模式,每个8*8的亮度块对应于一个运动向量,小尺度的块更适应于图像细节部分的运动估计,提高编码压缩率。3容错性由于mpeg-4的应用范围很广,为了有效的消除错误的影响,mpeg-4提供了三种错误恢复工具:再同步、数据恢复和错误掩盖与刷新啪3。(1)再同步机制类似mpeg-2的slice层语法提供的功能。在mpeg-4中以视频包作为再同步单位瞳,由于错误发生的随机性和码字的不均匀性,mpeg一4决定使用固定比特数的视频包。如果当前视频包中比特数超过一个预定的门限时,在下一个宏块的丌始处就创建一个新包。视频包中含有重新开始解码过程所必要的信息。(2)在重新建立同步之后,用数据恢复工具恢复前面丢失的数据。数据恢复主要利用rvlc(reversible variable length code)的逆向可解性进行。(3)错误掩盖与刷新。首先将数据分区为纹理信息和运动信息两部分,中间插一个标志位“motion marker”。若纹理信息发生错误,则用运动信息从上一个解码的vop中恢复出当前的纹理。错误刷新方法有两种,一是用帧内编码周期性或自适应地刷新vop或宏块;二是利用具有上行通道的帧间编码技术选择j下确的参考帧从而避免误差扩散,称为newpred方式(高级实时简单框架所采用)。newpred方式适用于实时通信环境,而帧内刷新不仅适用于实时通信,而且可用于广播和存储媒体。实际使用时可将两种方式结合起来。22双核bf561性能分析blackfin系列dsp是analogdevices与intel联合开发的体现高性能体系架构的第四代dsp产品。这一新产品是专为通信和互联网应用而设计的通用处理器,能处理广泛用于互联网的大量图像、声音、文本等数据流,使用于通信和各种互联网设备,例如可视电话、游戏设备、网络终端、网络电视和智能手持设备。作为一种尖端的信号处理器,blackfin系列dsp的体系架构特别适合于完成视频、音频和数据通信的数字信号处理,同时还提供强大的控制能力。blackfin dsp将一个双mac(乘法累加)16位dsp引擎的处理能力与一个巧妙的正交微处理器精简指令集的优势结合在一起,为开发人员提供一个单指令集的编程环境,同时消除了在双处理器系统中与多器件相关的附加复杂性。因而blackfin dsp在编程易用性、性能和功耗方面都有重大改进,并经过优化设计,可用于在有功率限制的应用中,处理调制解调器、音频、视频、图像和语音信号。主要应用包括数码相机、便携式多媒体播放机、网络可视电话、volp(voiceover-interact protoc01)网关、互联网协议(ip)机顶盒、25g和3g无线手机和高速公路监控系统等。221 bf561整体结构adspbf561包含两个blaekfindsp核【221,每个blackfin核的最高工作频率可达600mhz,具有各自独立的l1指令存储单元、l1数据存储单元、内存控制单元(mmu,memory manage unit)和中断控制单元,并共享128k字节l2存储单元。adspbf561具有三个dma(direct memoryaccess)控制器,包括dmal控制器、dma2控制器和imdma(internal memory direct memory access)控制器。dmal和dma2用来进行与外设进行数据交换,每个dma都有12个可编程外设dma通道和两个mdma通道;imdma是内部mdma,用于在片内存储单元间进行数据传输。adspbf561的dma不仅可以传输一维数据,也可以传输二维数据,这方便了图像数据的交换。此外,adspbf561还具有丰富的外设接口,如ppi(parallel peripheral interfaces)、uart、spi、sports、gpio(general purpose inputoutput)、外部时钟接口、看门狗时钟接口和通用io等。其中ppi是用来接入视频信号的并行接口,具有ccir656和gp ppi两种模式;而spoim则支持音频接入和输出。222 bf561的存储结构adspbf561的结构体系将存储器构造成统一的4gb地址空间【23】,用32位地址寻址。包括内部存储器、外部存储器、pci地址空间和io控制寄存器在内的所有资源,在这个统一的地址空间中独立占据各自的一段。该地址空间中的存储器空间部分按登记结构来安排,用于cache和sram(static rnadomaceessmemory)的快速、低延迟的存储器系统离处理器最近,其他部分离处理器较远。l1存储器系统是adspbf561内核所用的性能最高的存储器。l2存储器提供额外的容量,但性能稍低一些。片外的存储器系统通过外部总线接口单元(ebiu)访问,可以为sdram、flash和sram扩展,并可以达到768m的物理存储空间。存储器dma控制器提供高带宽的数据传输能力。它能在内部l1l2存储器和外部存储空间(包括pci存储空间)之间,提供代码或数据块的传输功能。adspbf561的每一个dsp核都拥有100kb的片上存储空洲241,即ll存储空间。这些存储空间分为三个部分:132kb指令存储器,包括16kb指令sram和16kb指令cachesram,可以以全处理器速度进行读写。对于16kb的可配置成sram或cache的单元,通过l1指令存储控制寄存器imem control的控制位进行配置。264kb数据存储器,包括32kb数据sram和32103数据cachesram,可以以全处理器速度进行读写。adspbf561的每个dsp核都有两个数据sram单元,每个数据栏包括低地址的16kb sram单元,和高地址的16kbcachesram单元。如果没有冲突,u指令寄存器可以在一个内核时钟周期内完成下列动作之一:两次32位dags(data address generators)读取:一次流水线内的32位dag存储;一次64位dma输入输出;或一次64位cache填充。对l1数据存储器的配置通过dmem control寄存器来完成。34kb的数据便签sram,和l1存储器运行在同一速度上,但只能作为数据sram访问,不能作为高速缓冲存储器。此外,adspbf561还提供128kb的l2存储器,l2运行在12处理器全速带宽上,比l1存储器的响应时间要长。但l2存储器可以随机读写系统设计所需的任何代码和数据。分层结构的内存缩短了内核对内存的访问时间,以获得最大的数据吞吐量、较少的延迟和缩短的处理空载时间。l1内存直接连接到内核并且以全系统时钟速度工作。对于较大数据量的程序和数据空间,可以使用l2内存。访问l2内存虽然需要一定的执行时间,但是一旦访问通过,它就像一个突发存储内存。对于大程序和数据的传输,外部存储器能通过dma直接载入l2内存。l1内存结构能提供数字信号处理所需要的性能以及便于微控制器的编程访问。这是通过将l1内存配置成sram,或指令(数据)高速缓存器(cache),或二者的结合来完成的。由于同时支持sram和高速缓存器,系统设计师能够为操作系统(os)和微控制器代码保持简单的数据缓存编程模式,同时还能将要求宽带宽和短执行时间的关键数据映射到sram中。内存管理单元(mmu)能提供内存保护,当内核工作在用户方式和监控方式时,内存保护支持全部os核心。os核心在监控方式运行,并且为了实际应用软件在用户方式下运行,将内存单元和其它系统资源分开。而传统dsp则不具有这种独特而强大的功能。223指令和流水线结构blackfin dsp系列汇编语言指令集瞳钉使用易于编程和可读性强的代数语法,而且在与cc+编译器的链接上进行了优化。blackfin处理器支持有限的并行能力,即1个32位的指令可以和2个16位指令并行执行。采用专门调整的灵活的高密度编码的指令,这些指令被编译后只占用非常小的存储空间。指令集还提供了体现bf561全部特点的多功能指令,以使在一个指令中能够使用多个dsp内核资源m1。blackfin指令长度有三种:16位、32位单指令和64位并行指令。64位并行指令由一个32位指令和两个16位指令组成。并行指令允许对两个单元同时读或者一个读一个写,但是不支持两个存储单元同时写。例如ai+=r0h,r1h,a0+=r0l,r1l r2=10+l li 1+=r3:在这个例子中,有两个乘法加法器操作,一个读一个写操作,还有地址指针自加操作。blackfin有八级流水线结构,如图3-4所示。第一步从sram中开始取指令,第二步取出指令后完成指令的排列,第三步开始指令的解码和读取寄存器地址,第四步数据地址的计算或转移地址的获得,第五步从数据寄存器里读取数据,第六步完成读取数据并进行双乘法累加器计算操作,第七步执行单周期指令,最后一步将数据和指针传递给相应寄存器。同时blackfin提供了较多的向量操作指令和多媒体操作指令,这些指令对地址的访问都有限定。所以在编程中尽量采用并行指令和零开销循环来完成算法,进行流水线操作,同时注意地址的变化,处理器的空载。224 dma管理结构bf561有多个独立的dma控制器26】,提供全面的dma管理和控制能力,能够以最小的dsp内核开销完成数据的传输。dma传输可以发生在bf561的内部存储器与任一有dma能力的外设之间,此外,dma传输也可以在任一有dma能力的外设和已连接到外部存储器接口的外部设备之间完成(包括sdram控制器、异步存储器控制器)。有dma传输能力的外设包括sport、spi端口、uart和ppi端口。每个独立的有dma能力的外设至少有一个专用dma通道。在典型的应用中,原始数据首先从视频端口或串行端口等外围设备直接通过dma进入媒体处理器;然后在处理器处理期间,中间数据直接经过dma送到外部存储器或者从外部存储器获取;最后,处理过的数据直接经过dma送回到外围设备或系统存储器。225动态功率管理结构bf561提供4种运行模式,每种模式有不同的性能、功耗特性。此外,动态功率管理有动态地改变处理器内核供电电压的控制功能,进一步降低功耗。控制每一个bf561外设的时钟也能降低功耗网。blackfin有5种内部电源区域,如果某区域不工作,可以通过外部电源管理器关闭。另外,提供一个逻辑,是外部电源管理器能够操纵blackfin处理器的内部电压,进一步减低功耗。226选用bf561的依据在一个复杂的多媒体处理系统当中,通常有两个显著的需求。一是系统一般会提供多种多样的用于连接其他子系统的外围设备,这些外围设备包括低速的串行端口(如串行外围接口spi和通用异步收发器uai玎)、可编程通信接口pci、通用串行总线usb以及外围一些设备。另外,为了进行事件控制,它们通常还包括可以作为事件捕获设备或者脉宽调制输出节点的可编程定时器、实时时钟、监视定时器以及大量有用的可编程输入输出标志。而包含这些外围设备的正是微信号系统控制器(mcu)。二是多媒体处理过程当中,势必存在大量的待处理的信息,这就对系统的处理器提出了具有较高信息处理能力的要求。数字信号处理器dsp适于处理大量的数据。而且具有微信号结构的bf561,拥有一定的片内硬件支持,可用于软件异常、硬件断点、性能计数器和执行跟踪等,也同样支持mcu所支持的外围设备。同时,它是包含两个内核的dsp处理器,具有全面的dma能力,所以很适合数据量较大的应用。另外,bf561具有出色的功耗控制能力,适用于便携式编码系统开发使用,切合本课题开发的目标。因此, 采用bf561处理器,能够以极佳的性价比实现音频、视频、图像等多媒体信息实时编码的功能,适合本课题的研发需求。23本章小结本章主要针对课题开发的内容,对meeg4编码标准和bf561处理器开发的所需基础内容进行阐述。对于mpeg4标准背景说明部分重点介绍了sp框架编码的特点。首先,简要介绍了mpeg4发展简况和其核心思想;然后,重点分析了其编码框架分类和应用范围,论述了本课题选取sp框架的原因,并在第四小节对sp框架的关键技术进行分析,为后续章节的代码开发部分进行知识铺垫。对于bf561知识概述部分着重介绍bf61适应于多媒体丌发的特性。对bf561整体结构、存储结构、指令流水线结构、功率管理结构和dma管理结构进行了介绍。最后一小节结合多媒体开发的需求,再次说明选用bf561的原因。第三章关键算法研究与改进视频编码的首要目标就是压缩数据量。视频编码算法的主流是以离散余弦变换和运动估计为框架的混合编码算法瞳8j,其也被mpeg一4国际标准所采用。图3-1显示该类编码器结构模型。由于未压缩的视频数据,存在大量的空间冗余和时间冗余。因此,在视频压缩算法中,主要利用时域编码模块和空域编码模块消除时空冗余度。原始的视频数据输入的时域编码模块,利用视频时间上的相关性,通过参考帧进行运动估计补偿,减少时间上的冗余度。空域编码模块利用离散余弦变换(dct),利用图像相邻点之间的相似性,把时域上的信号变换到空间域,减少空间上的冗余度。因此,dct和运动估计在视频编码中起到关键作用,同时也是视频编码算法中,计算量最大的两大模块。根据在通用pc上,对编码代码进行简单的统计,dctidct运算时间占总运算时间的23,运动估计占56,其他的占21。因此,凸显出去研究dctidct和运动估计算法,对提高编码效率的重大作用。 本章节主要阐述了编码采用的dct和运动估计算法进行的改进。详细介绍了改进的原因和方法,并结合实际测试,说明了改进的可行性和有效性。31 dct算法在数字视频压缩中,最常用的变换方法是dct291,dct常被认为是对自然场景图像信号进行变换的次优选择,其变换特性接近kl变换(karhunenloevetransform)30】。但是,不同于k-l变换,其存在快速算法,能够实时编码,因而其得到广泛的使用。其特点如下:1性能优越,变换后,信号的能力集中于少数几个变换系数,采用量化和熵编码后,能够有效的压缩数据。2存在无损的逆变换,能够有效的减低变换带来的图像质量损失。3变换算法具有很强的对称性,能够有效的利用处理器架构,实现快速算法,适应于实时编码。311 dct算法理论基础在视频编码算法中,广泛使用的8*8二维dct、idct的定义如下:其中f(i,j)是在(f,j)位置处的像素值,u和v分别是水平和垂直位置索引,而常量c(u)和c(v)如下:这样经过正交变换所得的结果f(u,v)就是dct系数,我们把其中的f(o,0)成为直流系数(dc,direct coefficient),而其他的成为交流系数(ac,alternatingcurrent)。一般图像的特性是低频分量居多,高频分量较少,经过dct后,低频系数较大,高频系数很小(量化后很多为o),这样便于后续的统计编码。 在dct变换中,对于一个8*8块,每个像素有64次乘法和63次加法,整个块则需要4096次乘法和4032次加法。而一帧格式为4:2:o大小为cif(352*288)的图像一共有2376个8*8的宏块,需要的运算量极大,难以实时处理。因此,在实际的应用中,采用dct快速算法,这也是dct广泛应用的原因。根据公式(31)可分离变量的特点,把二维变换分解成二次串联的一维变换。即先沿图像每一列进行一维dct,得到:在沿f(u,y)的每一行进行第二次一维dct,得到:二维的dct变换就转变成一维dct变换,为dct快速算法的实现提供了基础。312 dot算法的改进常规的dct算法使用了到大量的乘法和加法,因此,dct快速算法都是以减少乘法和加法的运算次数为目的【3l】。多年以来,提出了一系列的dct快速算法。在1977年,chen32】根据变换矩阵具有对称性,利用稀疏矩阵分解法提出了dct的快速算法。cloeffler33】实现了基于循环卷积的快速算法,只需要11步乘法。2000年,tracdtran34】提出了一种移位的近似算法,不需要乘法。表3-1介绍各种算法效率的特点。由此,可见这些算法具有各自的特点。但以下列三种算法,特点最为明显:chen算法所需加法数最少(26次);loeffler算法所需乘法最少(11次),且总计算量最小;而tran算法无需乘法,只要19次移位操作和36次加法。因此,选择dct快速算法时,需要根据所用处理器的不同特点来考虑。而不应只考虑其中某个加法或乘法的运算次数。参考第二章bf561处理器的概述。bf561每个内核都含有两个乘法一累加器:mac0,macl。每个mac可以在一个内核指令周期内,完成依次定点乘法或者乘法累加操作。乘法指令对16位的定点数据进行相乘运算,产生32位结果,该结果可以累加或累减到40位的累加器中。因此,本文采用的快速算法是chen式算法【37】,因为一个指令周期可以完成一次乘法和加法,所以完成18 dct变换所需总周期更短【3引,而不是总计算量最小的loeffler算法或者无需乘法的tran算法。chen氏算法模型参考图32所示蝶形算法示意图。舻f7:输入的原始数据硕ij学位论文 第三章提商编码效率关键算法研究j分析fof7:dct变换后的数。以fo的计算过程,简单说明算法蝶形图的含义。fo的计算过程分为三个步骤,图示中以l,2,3标明。定义其相应的变量为90-97,hoh7,ko7。步骤l:go=(fo+f7)2;步骤2:ho=(go+93)2;步骤3:ko=(1lo奉cos(n4)+h1)2。上述所求的b即fo的值。实现该算法的过程中,需要注意的两个问题【39】:1浮点小数运算改成定点小数运算该算法能够把1次8个数据的dct计算量控制在16次乘法和26次加法,算法的效率很高。但是,其中cos(n4),sin(n16)等正余弦数据是浮点型,而bf561的硬件结构不直接支持浮点运算,如果直接使用浮点数据,将调用浮点计算库函数,利用复杂的运算模拟浮点运算,将大大影响算法的效率。因此,采用bf561内建的16位定点小数类型fractl6来表示浮点数。下面显示如何用fractl6代替原始浮点数据。定义如下:2调整语句顺序防止总线阻塞bf561每个内核都有两个16位数据地址发生器(dag),每个mac单元都接受同一对32位的输入寄存器,提供4种16位操作数的组合,形成向量操作。这样在一个内核周期内,处理器能够完成两对1616并把结果累加到40位寄存器种。因此,在编码时,合理设计流程,使得硬件资源得到充分的利用。例如下列语句:r0=10+川r1=11+;可以在一个内核周期内完成,但是因10,11地址空间紧密相连,所以,可能产生数据总线阻塞的现象,影响流水线的正常运行。把采用改进的dct算法移植到dsp上后,一个8*8矩阵的dct变换,在fractl6数据格式下,能够在294个内核周期完成,与原程序的算法效率存在极大的差异。32运动估计算法的改进321运动估计和运动补偿的基本原理运动图像在多数情况下只是其中的很少一部分图像在运动,同一场景相邻的两幅视频帧之间在内容上的差异不会太大,或者说后一帧的内容与前一帧的重复部分很多,图3-3所示。前后两帔存存很强的时怕l相关性。对于相关的视频图像,发送端不一定必须把每帧图像上所有的像素都传给接收端,而只要将物体的运动的信息告知接收端,接收端就可以根据运动信息和前一帧图像的内容来更新当前帧图像,这比全部传送每帧图像的具体细节所需的数据量要小的多。这样做首先要解决的问题是如何从序列图像中提取有关物体运动的信息,这个过程称为运动估计(motion estimation),其表达方式是运动向量(motion vector),运动估计研究的主要内容就是如何快速、有效的获得足够精度的运动向量;而把前一帧相应的运动部分信息根据运动向量补偿过来的过程称为运动补偿(motion compensation)。图34是一个典型的运动估计和补偿的原理图。图中的运动估计模块就是根据一定的匹

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论