




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西华大学课程设计说明书 1. 前言IPTV编码器是一种用于广播或者电视转播项目的专业音视频数据处理设备,由音视频压缩编解码器芯片、输入输出通道、网络接口、音视频接口、串行接口控制、协议接口控制、系统软件管理等构成,通过串行接口控制摄像头和麦克风录制音频和视频信号,并对其进行编码,完成声音图像数据的采集和复原等。IPTV编码器输出的主要是基于MPEG-4或H.264的图像数据以及音频数据。目前国际上主流的IPTV编码器是针对媒体传输和IPTV解决方案的第四代实时MPEG-4 AVC/H.264编码器。它们大多采用MPEG-4 AVC/H.264压缩技术,这基本是标清广播采集、分配和IPTV应用的
2、理想选择。它们能以不到2Mbps的码流传输全分辨率最高质量的视频。MPEG-4编码技术在宽带接入日益普及的环境下,在网上观看、下载电影成为很多用户非常熟悉的应用。压缩电影的背后是MPEG-4技术,而MPEG-4背后有一条不平凡的发展道路。运动图像专家组这个名称对很多人来说还很陌生,但提到它的英文简称MPEG(Moving Picture Experts Group),便几乎是尽人皆知了。MPEG是隶属于ISO/IEC的一个专家工作组,主要负责为数字音视频编码算法开发和制定标准。MPEG组织始建于1988年,并于1992年制定出MPEG0-1标准,它能将视频数据压缩成1-2Mpbs的标准数据流,
3、工业产品VCD机和MP3播放器都是以该标准为基础衍生出来的。随后的1994年,该组织制定出MPEG-2标准,它是为了获得更高的分辨率(720*486)、提供广播级视频和CD品质的音频而产生的高质量音视频编码标准,传输速率在3-10Mbps,它也是数字电视、DVB和DVD所遵循的压缩标准。随着研究工作的深入发展,ISO又公布了“超低比特率活动图像和语音压缩标准”,排序MPEG-4。1998年10月批准第一版,1994年4月又公布了第二版及其校验模型(VM)。MPEG-4正式编号是ISO/IEC国际标准14496,它是一种新型的多媒体标准。与前标准一个重要区别就在于,它是一个基于对象的视频编码压缩
4、标准,它所定义的码率控制的目标就是获得在给定码率下的最优质量,它为互联网上传输高质量的多媒体视频提供了很好的技术平台。2. 总体方案设计随着视频技术和MPEG4应用领域更加广泛,国内对IPTV编解码器研究探索也将步入更高层次的阶段,从应用现状和市场需求的角度来看,对MPEG4编解码器的研究和开发更是重点。目前实现IPTV编码器的方式主要有三种,分别是纯硬件方式、软件方式和基于DSP的方式,三种方式各有特点。2.1 各方案论证(1) 纯硬件方式纯硬件方式就是使用专用集成芯片来实现视频编码,随着VLSI(超大规模集成电路)技术的发展,各大VLSI厂商相继推出了各种高性能的视频图像处理专用芯片,如P
5、hilips公司的Trimedia系列、IBM公司的MPEG S系列等。这种方式将视频压缩算法固化在芯片中,特点是开发周期短,压缩率高,运算速度快,图像质量和系统实时性较好,缺点是一旦视频编码方案固定,则系统升级与更新比较困难,而且专用芯片造价比较高,通用性差,不易推广。(2) 软件方式软件方式就是利用PC机通过基于计算机操作系统的软件来实现视频编码,虽然比较容易实现软件的升级,但系统性能受PC机处理器运算能力所限,最大缺陷为速度慢,实时处理视频信号不容易实现,其主要是用于前期仿真,验证算法的正确性。(3) 基于DSP的方式基于高速DSP实现视频编码是应用最多的一种方法。利用DSP的高速信号处
6、理能力,使用软件实现的算法在其上运行时可以大大缩短执行时间,获得高压缩率,同时由于数字视频的标准广泛,产品的更新要求更多,采用DSP做产品将更加具有优势,当进行软件升级或使用新的编码标准的时候,只需要对代码进行修改和调整DSP的配置就可以实现。该方案易升级,应用灵活,通用性强,具有更加实际的产品发展前景。随着DSP向高速、低功耗、多媒体化、多处理器的方向发展,使得用DSP实现视频编码更加方便,图像质量也更好。我的设计主要是通过对MPEG4编码标准原理和算法进行深入分析,以MPEG4的公开参考源代码XVID-1.1.0为基础,对基于PC的软件代码进行调整,结合DSP的硬件和指令结构特性,在以TI
7、公司的TMS320DM642 DSP为核心的硬件平台上实现了MPEG4视频编码器,并通过软件优化等方法,使编码器基本满足实时性要求。2.2 方案比较通过对上述三种方案的分别论述可知:纯硬件方式实现容易,并且各方面参数都能到达理想值,但是其方案一旦固定就无法更改,因此系统的升级和更新困难,而且芯片造价高,性价比较低,这就给产品的推广造成了阻碍;方案二阐明了软件方式的优缺点,虽然比较容易实现升级,但其运算速度慢,一般仅用于前期的仿真处理。方案三是基于DSP的方式,它不仅能高速的处理信号,而且具有良好的兼容性,软件更新和使用新的编码标准时易实现,具有更多实际产品的发展前景。2.3 方案选择我的设计意
8、义在于通过基于DSP的MPEG4编码器的研究,全面剖析了MPEG标准的核心算法,总结讨论了基于DSP的软件开发和优化方法,尤其是在视频编码器方面,可作为今后对MPEG4编码算法改进和研究其它视频标准编码器在DSP平台上实现的基础和借鉴。本课题的研究成果可应用于实现脱离计算机独立工作的脱机图像处理系统,使MPEG4的应用更加灵活方便,可以将MPEG4应用于更加多样化的领域和不同的工作环境。而且鉴于目前市场上专用视频编码芯片价格昂贵,本方案可以大大降低实现MPEG4应用的成本,与同类产品相比将具有较强的市场竞争力。近年来,随着网络和多媒体技术的发展,视频信息通信的重要性和需求急剧增长,而其中的关键
9、就在于视频压缩编码技术的应用。ITU和ISO制订的这一系列视频编码标准,都在原来的技术上不断地完善和升级,从而极大地推动了视频多媒体技术的实用化和产业化。MPEG4是一种可应用于通信、广播和计算机等诸多领域的通用视频编码标准,它基于对象的编码方式可以使图像主观质量、交互性更好,同时具有很好的容错性和时间、空间伸屈性,具有适应各种带宽的强大能力,能够使视频数据在多媒体环境中对视频目标进行高效存储、传输和操纵。MPEG4已经在数字电视、视频会议、实时多媒体监控、低比特率下的移动多媒体通信、Internet上的视频流与可视游戏、DVD上的交互多媒体应用、电视点播等方面有了广泛的应用,目前是视频压缩编
10、码应用的主流,从而成为国内外视频编码研究和应用的热点。同其他IPTV编码标准相比,MPEG4的特点和所支持的新功能主要表现在以下三个方面:(1) 基于内容的交互性(Content-based Interactivity)a.MPEG4最大的特点是基于内容、基于对象进行编码,支持无须编码就可进行基于内容的操作与比特率编辑,而不是像MPEG1、MPEG2基于视频帧的编码。例如:使用者可在图像或比特流中选择一具体的对象(例如图像中的某个人、建筑物等等),随后改变它的某些特性。这些对象可以使单声道、立体声和多声道音频,二维和三维或者单目、立体或多目视频、计算机图形、动画、文字等。对每一个对象的编码形成
11、一个对象码流层,该码流中包含着对象的形状、位置、纹理以及其他方面的属性等。对一幅图像编码所形成的码流就由一系列这样的对象层码流所构成。用户可以直接对“对象层”进行存取操作,也可以自行选择场景中的物体的解码质量。b.支持自然与合成数据的混合编码,提供将自然视频图像同合成数据(如文本、图形等)有效结合的方式,包括混合编码以及同步,同时支持交互性操作。c.增强的时间域,随机存取。提供有效的随机存取方式,在有限的时间间隔内,可按帧或任意形状的对象,对音频、视频序列进行随机存取。例如以一序列中的某个音、视频对象为目标进行“快进”搜索。(2) 高压缩率(Compression)a.提高编码效率。在可比拟速
12、率下,MPEG4提供的主观视频质量要好于已有的或是其它在制定中的标准。一般的说,MPEG4的理论压缩倍数高达100倍。这一功能可望在迅速发展的移动通信网中获得应用,但值得注意的是,提高编码效率不是MPEG4唯一的主要目标。b.对多个并发数据流编码。MPEG4将提供对一景物的有效多视角编码,加上多伴音声道编码及有效的视听同步。在立体视频应用方面,MPEG4将利用对同一景物的多视点观察所造成的信息冗余。MPEG4的这一功能在足够的观察视点条件下,将有效地描述三维自然景物。(3) 通用存取(Universal Access)a.错误易发环境中的鲁棒性和纠错性。MPEG4将提高抗误码能力,尤其是在易发
13、生严重错误的环境下的低比特率应用中(移动通信链路)实现安全的低码率编码和传输。它采用3个策略来达到此目的:再同步(resynchroniaztion)、数据恢复(data recovery)、错误隐藏(error concealment)。再同步工具在检测到误码时重新再解码器和码流间建立同步点,前一个同步点和新建立的同步点间的码流就是发生误码的数据;数据恢复是通过标准中提供的一种可逆变长编码技术来恢复两个同步点之间的数据;错误隐藏通过空间的纹理相关性和视频前后帧的相关性对错误的图像区域进行隐藏。b.基于内容的尺度可变性。内容尺度可变性给图像中的各个对象分配优先级,对重要性不同的对象在从视频码流
14、解码时用不同的时间或空间分辨率表示。MPEG4提供了两种基本分级工具,即时域分级和空域分级,可实现时间、空间的尺度可变性,此外还支持时域和空域的混合分级。每一种分级编码都至少有两层,低层称为基本层(base-layer),高层称为增强层(enhancement-layer)。基本层提供了视频序列的基本信息,增强层提供了视频序列更高的分辨率和细节。基于内容的尺度可变性是MPEG4的核心,因为图像中所含对象的目录相应的优先级确定后,其他的基于内容的功能就比较容易实现了。对甚低比特率应用,可伸缩性是一个关键的因素,它提供了自适应使用可用资源的能力,可以最有效的利用有限资源。3. IPTV的编码标准长
15、期以来,基于像素的第一代编码技术一直是图像编码的主流方法。它从消除图像数据的时间、空间相关冗余出发,编码实体是像素或像素块,以显示器件为图像/视频系统的最后环节,没有考虑人眼视觉特性对编码图像的影响。20世纪80年代初人们就认识到这种基于数据统计的编码技术的不足,特别是在低速率视频编码时有严重的局限性。20世纪80年代中后期,相关学科的迅速发展和新兴学科的不断出现为视频编码的发展注入了新的活力,同时关于人类的视觉生理、心理特性的研究成果也拓展了人们的视野。M.Kunt于1985年提出了利用人眼视觉特性的第二代图像编码的思想。图像编码中的对象不再是像素或像素块,而是考虑到人眼是图像/视频信号的最
16、终接受者,根据人类视觉对图像轮廓纹理较为敏感的特点将图像数据进行分割,即按图像内容来划分编码区域。基于内容的第二代编码技术是视频编码的新一代技术,是目前视频编码研究中最为活跃的一个领域。ISO/IEC下的运动图像专家组(MPEG)对MPEG4标准的讨论最早开始于1991年,其初衷是为了研究满足视频会议、可视电话等极低比特率应用的编码方案,并定名为音视频对象的编码技术。但是由于传统的基于像素分块的DCT变换和运动补偿技术的第一代编码方法已达到了视频压缩的极限,同时为了满足当今世界越来越多的视听信息要求以数字形式进行相应的变换而产生的种种新的需求,适应多媒体数据压缩技术的发展趋势,1994年7月的
17、Grimstad MPEG会议上,MPEG4的目标发生了根本的变化,转而致力于成为可以适应各种传输码率的通用标准,为多媒体的数据压缩提供一个更为广阔的平台,它更多定义的是一种格式和框架,而不再是具体的算法,为实际开发者提供自由的开发空间,实际应用中可根据要求的不同来现场配置解码器。MPEG4编码系统是完全开放的,可以随时加入各种新的算法模块。同时,MPEG4提供了一个包含各种工具和算法的工具箱,给出各种任意形状可是对象的高效表达式,可用于各种图像和视频的高效压缩。在此背景下,MPEG工作组于1999年推出了MPEG4标准的第一版,并于2000年初正式成为国际标准(ISO/IEC14496),之
18、后陆续有第二版的制订和增补工作。MPEG4标准的主要特征是基于对象(object-based)的编码。所谓的对象就是在一个场景中能够访问和操纵的实体,具体到一幅图像中,对象就是能表征有含义的实体的一组区域。对象的划分可以根据其独特的纹理、运动、形状、模型和高层语义为依据,语音、图像、视频等都可以作为单独的对象,也可以集成为更高级的对象场景。MPEG4除了采用变换编码、运动估计与运动补偿、量化、熵编码等第一代视频编码核心技术外,采用基于对象的编码理念,即在压缩之前将每个场景定义成一幅背景图和一个或者多个前景音视频对象,然后对背景和前景分别进行编码,再经过复用传输到接收端,然后再对背景和前景分别解
19、码,从而组成需要的音视频。随着网络、有线和无线通信系统的迅猛发展,多媒体网络技术的日趋成熟与完善,交互式计算机和交互性电视技术普遍应用,以及视频、音频数据综合服务等应用的发展,通过应用MPEG4视频编码技术基于对象的特点,人们对多媒体信息特别是视频信息的应用可以从单纯的播放转向基于内容的访问和操作,从对多媒体信息被动的接受方式转向自由操作多媒体信息。从MPEG4编码技术特点来看,其应用前景将是非常广阔的。MPEG4标准必将广泛应用于数字电视、动态图像、万维网(WWW)、实时多媒体监控、低比特率下的移动多媒体通信、内容存储和检索多媒体系统、Internet或Internet上的视频流与可视游戏、
20、基于面部表情模拟的虚拟会议、DVD上的交互多媒体应用、基于计算机网络的可视化合作实验室场景应用、演播电视等。3.1 IPTV编码模块的介绍3.1.1 IPTV编码技术模块DMIF(Delivery Multimedia Integrtion Framework)主要解决交互网络中、广播环境下以及磁盘中多媒体应用的操作问题,通过传输多路合成比特信息,建立客户端和服务器端的连接和传输。传输接口层在MPEG4中使用DMIF传输基本流,面向应用将网络实现的细节包装。DMIF使用服务和会话的概念,通过信道处理媒体基本流。对信道的处理是由DMIF所产生的信道标识决定的,即告诉用户在哪儿能得到所需的信息。使
21、用复接器将几路同步的基本流通过一个信道进行传输,因此MPEG4系统处理媒体流,而DMIF处理传输,它不需要知道媒体流的特性。对客户与服务器之间的控制是通过DMIF应用接口(DAI)。实际上,DMIF相当于OSI的会话层的功能,DAI表示会话服务存取点。传输接口层对媒体不透明,而对传输是透明的。3.1.2 AV对象编码模块MPEG4引入一个关键的概念:AV对象。MPEG4技术是对运动图像中的内容进行编码,其具体的编码对象就是图像中的音频和视频,术语称为“AV对象”。为了支持基于对象的交互,系统将图像视为由若干个AV对象组成的场景,AV对象变成了系统编码、存取和传输的最小单位,也是用户所能操纵的最
22、小单位。AV对象是听觉,视觉或者视听内容的表示单元。其中最基本的单元是原始AV对象,它可以使自然的或合成的声音、图像。原始AV对象又可以进一步组成符合AV对象。整个MPEG4是围绕如何高效编码AV对象,如何有效组织和传输AV对象而编制的。因此,AV对象的编码是MPEG4的核心编码技术。AV对象的提出,使多媒体通信具有高度的交互能力和很高的编码效率。3.1.3 VOP视频编码模块为实现基于视频对象的编码,MPEG4引入了视频对象面VOP(Video Object Plane)的概念。MPEG4假定输入视频序列的每帧都被分割成了一系列的形状不规则的图像区域,即VOP,每个区域由感兴趣的特定图像或视
23、频内容构成,不再局限于MPEG1和MPEG2所必须要求的矩形形状。由任意形状的VOP图像区域所构成的输入视频,其帧与帧之间的VOP的形状和位置又可以不同,而一系列连续的属于同一场景同一物理对象的VOP构成了视频对象(VO),同一视频对象的VOP序列的形状、运动和纹理信息被编码传输,或者编码为一个隔离的视频对象层VOL(Video Object Layer)。构成VOP的信息包括纹理信息、运动信息和形状信息。对运动信息和纹理信息的编码,MPEG4沿袭了MPEG1和MPEG2中的技术,在保持图像质量的条件下可以达到很高的压缩比。算法采用基于宏块(Micro block)的带运动补偿的预测编码以减少
24、时间冗余度,预测误差则进一步采用DCT(离散余弦变换)压缩以消除空间冗余度,最后再使用变长编码法(如Huffman编码)产生最后的代码。而形状的表示有2种方法。自然的视频场景中,VOP可按照一定的语义通过分割视频对象产生,在该情况下,形状是二进制(binary),0表示在对象内部,1表示在对象外部。而在混合的场景中,形状被表示为8bit component(又称灰度形状),以用于组合。MPEG4定义了3种主要的VOP类型;帧内编码VOP(I-VOP)、预测编码VOP(P-VOP)和双向预测编码VOP(B-VOP)。对于I-VOP,它的编码不需要参照其他图像,是独立的。它是编码序列中的解码的开始
25、点,以它作为起始点的其它类型的视频对象平面的解码需用它作为参照,它的编码效率较低。P-VOP的编码采用相对于上一个I-VOP或P-VOP带运动补偿的预测编码,它的编码效率要优先于I-VOP。B-VOP的编码效率是最高的,它的编码不仅要参照前面的VOP,而且还要参照后续的VOP,但它本身不能作为其他VOP编码时的参与。VOP编码后的信息形成视频对象层被传输。其帧结构如图2.1所示:图3.1 MPEG4视频编码帧结构3.2 MPEG4的视频图像模块的介绍视频被描述为一组连续的画面,每幅画面称为一帧,即视频序列由帧组成,而每帧画面可看作是二维的像素阵列。颜色空间(Color Space)是指用来表示
26、亮度和颜色的方法。在静态图像处理技术中,一般使用RGB颜色空间表示图像,即每一像素采样点的颜色三个分量表示的:红(R)、绿(G)、蓝(B);而基于人类视觉系统的特性,在视频编码中一般采用YCbCr颜色空间,YCbCr空间是指用亮度、色度分开来表示图像信息,每一彩色像素是用另三个分量表示的:亮度分量(Y)以及两个色差分量(Cr,Cb)。我们可以利用两个空间的联系进行空间转换,两个空间相互转化的线性变换矩形阵因不同制式而有多种,以下是ITU-RBT.709标准推荐:Y=0.7154G+0.0721B+0.2125RCb=-0.386G+0.500B+0.115RCr=-0.454G-0.046B+
27、0.500R进行两个彩色空间的转换是基于人类视觉系统的特性:在RGB空间中,亮度和色度都被同等重要地表现出来,R、G、B三个信号有一个发生了变化,则总的图像的颜色就会发生变化,人眼很容易察觉这种变化的;然而人眼对Y、Cr、Cb三个信号的变化是有不同反应的,人类视觉系统对亮度的敏感度远远大于对色度的敏感度,这样就可以更多地考虑亮度信号,而对色差信号采用一些处理方法以提高压缩比,比如即使经过亚采样或直接丢弃一部分数据等处理,但人眼对恢复时转换到RGB空间后的图像的变化任然是不易察觉的。经过从RGB到YCrCb的变换后,图像中比较重要的信息,也就是对人类视觉影响比较大的信息都集中在Y矩阵中,而CrC
28、b矩阵中的图像信息比较小,因此,为了节约比特数,可以不用对整个的CrCb矩阵进行编码,首先对CrCb矩阵进行一下采样,使得CrCb图像的长度宽度都为原来的一半,这样就得到MPEG4视频编码中使用的4:2:0采样的YUV图像格式,即每采样四个亮度信号值(Y),就同时采样2个色度信号值(Cr和Cb),表示色度元素(CbU,CrV)在垂直方向和水平方向上均是亮度元素(Y)比例的一半。对标准的码流进行解码之后得到也是4:2:0的YUV矩阵,当然显示时还需要对这个矩阵上进行采样,使得YCrCb矩阵都为原始图像大小,然后再变换到RGB颜色空间进行显示。图3.2 4:2:0格式的亮度和色度位置关系MPEG4
29、定义的5种标准化的图像格式如下:Sub-QCIF(128*96):亚四分之一的公共中间格式QCIF(176*144):四分之一的公共中间格式CIF(352*288):公共中间格式4CIF(704*576):四倍公共中间格式16CIF(1408*1152):十六倍公共中间格式3.3 IPTV编码的设计过程对于静止的图像,MPEG4采用零树小波算法编码,并提供高压缩比,同时有多达11及的空间分辨率和质量可伸缩性;对于运动视频对象,MPEG4的编码框图如图2.3所示。从图上可以看出,基于对象的编码任然采用的是传统的预测编码、运动补偿、DCT变换构成的混合编码方式,这是由于混合编码方法具有良好的压缩性
30、能。虽然是使用与以前制订的标准相似的编码技术,但前者是基于帧的,而MPEG4是基于对象的。图3.3 MPEG4视频编码框图MPEG4中基于对象的视频编码可分3步进行:(1) 从原始视频流中采用全自动、半自动、人工等方法分割出视频对象。(2) 对输入的任意形状的VOP序列,用基于块的混合编码技术编码。处理顺序是先I-VOP(帧内VOP),后P-VOP(预测VOP)和B-VOP(双向预测VOP),大致过程是:在对VOP的形状信息编码后,取得任意形状VOP的采样,每个VOP用宏块栅格划分成不相交的宏块,每个宏块含有4个8*8像素块进行运动估计和补偿以及纹理编码。已编码的VOP帧保存在帧中,运动矢量在
31、当前VOP帧和已编码VOP帧之间计算。对将被编码的块和宏块,计算它们的运动补偿预测误差。运动补偿预测后的I-VOP及误差用8*8块DCT变换,并进行DCT系数的量化,然后是行程编码和熵编码。(3) 每个视频对象的形状、运动纹理信息复合成VOL比特流,各视频对象视频流复合成统一的码流输出。还有两点值得注意:一是编码时,不同视频对象的运动、形状、纹理信息应分配不同的码字;二是对于极低码率(小于64Kb/s)的应用,需用方块滤波器进行相应处理。MPEG4视频码流语法的分层数据结构从上到下大致分为:视觉对象序列VS(Visual Object Sequence),视觉对象VO(Visual Objec
32、t),视频对象层VOL(Video Object Layer),视频对象平面组GOV(Group of VOP),视频对象平面VOP(Video Object Plane),其中视频对象包括:视频数据、静态纹理数据、2D网格数据、人脸活动参数数据等,这些结构化数据称为对象,它是用户可以访问和处理的实体。VS对应于一段完整的视频场景,包含一个或多个VO的集合,VO对应于场景中具体的人或者是其它的物体,VO码流中包括的纹理、形状和运动信息层构成了VOL,VOL是VO在时间或空间上的分级描述,用于实现分级编码,一个VO可以由一个或多个VOL组成,在MPEG4的码流中GOV是可选的,多个VOL组成GO
33、V,用于实现比特流的随机存取。4. IPTV编码算法的软件实现IPTV是一个开放的框架标准,并没有规定具体的算法和程序,用户可根据需要自行开发代码,本设计主要参考了Xvid-1.1.0开放源码来实现MPEG4编码器,实现了MPEG4视频编码的简单级别框架。4.1 Xvid视频编码技术Xvid代码用C语言编写,是当前最为流行的实现MPEG4的方案之一,该编码器以原始视频图像序列(YUV文件)为输入数据,编码生成符合MPEG4标准的压缩视频数据流。Xvid是OpenDivx的延续,出于应用的考虑,Xvid和Divx一样,都没有实现MPEG4所有的功能和内容,这点不同于MPEG4校验模型。它是目前基
34、于整帧编码的MPEG4编码器中表现非常出众的一个,具有以下几特点:(1) 多种编码模式除了最原始单重固定码流压缩(1-pass CBR)之外,Xvid提供了包括:单重质量模式动态码流压缩、单重量化模式动态码流压缩、包括外部控制和内部控制的两种双重(2-pass)动态码流压缩模式。由此,Xvid是目前MPEG4编码内核中可选模式最多的。其中特别是双重动态码流压缩模式,通过检测画面运动幅度,以最优化的方式曲线分配画面量化幅度,使视频图像可以在占用空间和画面质量之间获得最佳的平衡。而单重量化模式动态码流压缩,可以高速地一次性生成可控画面细节的动态码流视频文件,在较少的压缩时间代价之下,可以获得较稳定
35、的画面细节质量。(2) 量化方式选择和范围控制Xvid不仅提供了标准的MPEG量化方式,还特地提供了更适合低码流压缩的H.263量化方式。并且Xvid还可以再双重运算(2-pass)时,根据对画面信息的综合分析,动态的决定某段场景的画面量化方式,有利于网络媒体文件传播中空间与画质的平衡。除了量化方式选择,Xvid还提供了强大的对压缩过程中的量化幅度的范围控制,用户可以选定压缩时允许使用的量化幅度范围。例如设定一个量化的上限,就可以避免可能出现的画质大幅下降的情况。(3) 运动侦测和曲线平衡分配Xvid可以对画面逐帧进行运动侦测,以及对全片段的运动侦测结果进行分析后,重新以曲线平衡分配每一帧的量
36、化幅度。这样,需要高码率的运动画面可以分配更多空间、更高的码率、更低的量化幅度来保持画面的细节;而对于不包含太多运动信息的静态画面,则消减分配预算。(4) 动态关键帧距动态关键帧距是另一个Xvid所具有的,在空间和画面之间获得最大平衡的技术。我们知道在视频压缩中不是每一帧都记录着全部的画面信息,事实上只有关键帧(I帧)记录着完整的画面信息,而后续的P帧(P-Frame)仅仅是记录下与之前一帧的差值。如果关键帧之间的画面变化很大,则会浪费宝贵的空间在P-Frame上;而加入把变化很大的那一帧记录在关键帧里,那么由于后续的帧不再有更大的变化,就可以节省P帧所需的空间。因此,根据画面镜头切换和运动幅
37、度来变换关键帧的位置,有利于画面质量的提高。如上所述,Xvid在改善图像质量和增强编码效率两方面下了很大的功夫。但以某些实际应用领域来说,图像质量并不要求要达到DVD的效果,这样我们可以考虑以牺牲图像质量为代价,去掉Xvid的某些功能,如GMC(全局运动估计)、RVLC等,可减少运算量,降低复杂度,来换取编码速率的提高。另外,Xvid是针对PC机的X86芯片应用而是用标准C语言设计开发的,可以在VC+6.0中运行调试,但对DSP嵌入式视频编码器系统移植还需要进行大量的分析和修改,如删除所有PC机上的汇编(MMX、SSE指令)优化代码及其他非ANSI C编写的函数,因为这些指令和函数无法在DSP
38、系统中使用。XVID代码实现的MPEG4编码器,读入YUV格式的原始视频数据,以原始视频数据中的每一帧作为一个视频对象,首先判断是I帧还是P帧,I帧需要对整帧图像数据进行编码存储,P帧则进行运动估计和补偿,只编码当前帧与参与帧之间的图像残差和运动矢量。每帧数据都被分为16*16宏块,每个宏块又分为6个8*8子块:4个亮度块,2个色差块,然后在宏块和子块的基础上进行DCT、量化、VLC编码。4.2 IPTV编码系统流程图4.1 系统流程图对一段视频序列进行编码,主要流程包括三个部分:(1) 初始化内存分配:调用int enc_create(xvid enc_create_t*create)对所有
39、视频结构分配空间并进行初始化。返回XVID_ERR_MEMORY表示分配空间失败,将pParam->handle赋值为NULL。设置编码器参数:编码开始时,首先定义一些编码器的参数,如视频数据的宽度和高度、原始数据的文件名、帧率、编码后的文件名、比特率等一系列参数。设置enc_opt为ENC_OPT_INIT,输入参数结构体指针指向ENC_PARAM结构,输入参数结构体指针为空,编码器根据编码参数结构体中设置的参数,ENC_PARAM结构体中主要的参数:输入图像宽度(x_dim)输入图像高度(y_dim)编码图像序列的帧率(framerate)目标比特率(bitrate)关键帧最大间隔(
40、max_key_interval)量化器的最大量化参数(max_quantizer)量化器的最小量化参数(min_quantizer)运动估计的搜索范围(search_range)源数据文件名(Source Name)编码文件名(Target Name)(2) 编码视频帧循环读入每个视频帧,如果图像的高度不为16的倍数,进行图像扩充;调用unsigned int image_create(IMAGE *image,unsigned int edged_width,unsigned int edged_height)将原始帧中的图像数据读到编码VOP的Y、U、V分量中;如果当前帧是编码的第一帧,
41、还要写入VO和VOL头信息。判断视频帧的类型,如果为I-VOP,调用帧内编码函数;如果为P-VOP,调用帧间编码函数。对每一帧进行编码:调用int xvid_encore( Void *handle, int XVID_ENC_ENCODE, xvid_enc_frame_t *paraml, xvid_enc_stats_t *param2)对视频帧进行编码。其中参数handle对应enc_create的返回状态;paraml表示视频帧信息;param2对应已进行初始化的xvid_enc_create_t结构信息。设置enc opt为ENC OPT ENCODE,输入参数结构体指针指向结构体
42、ENC_FRAME,输出参数结构体指向ENC_RESULT结构。ENC_FRAME结构定义了三个参数,这三个参数分别为:输入代码的图像指针(*image) 输出比特流的缓冲区指针(*bitstream)输出比特流的长度(length)对每一帧图像进行编码之前,将原始图像数据存放到image指针指向缓冲区,为输出比特流分配足够的空间并让bitsream指向该空间,开始编码。在主程序中用来实现编码时间的计算与输出的代码如下:Main() Static double msecond() Clock_t clk; Clk = clock() Return(clk * 1000.0/CLOCKS_PER
43、_SEC); Enctime = msecond(); /编码开始时间 M4v_size = enc_main(!result ? in_buffer:0,mp4_buffer,&key,&stats_type, &stats_quant,&stats_length,sse); /对一帧图像进行编码 Enctime = msecond() enctime; /通过计算编码结束与开始时间之差得到编码耗时 Totalenctime += enctime; /通过对每一帧图像编码耗时累加得到编码总耗时 Printf(“Tot:enctime(ms)=%7.2f”,to
44、talenctime); /输出编码总耗时 5. IPTV编码器的系统调试5.1 硬件调试本课题设计的MPEG4编码器硬件系统以TMS320DM642 DSP为核心,并配合以适当的外部存储器SDRAM、Flash等外围设备,构成了MPEG4编码算法软件在DSP上开发、移植、调试、运行实现的平台,该硬件平台主要实现以下功能:(1) 实现原始视频数据的采集和预处理,转换视频数据格式。(2) 对软件代码进行实时仿真调试,通过JTAG接口以及硬件仿真器与上位机连接,加载测试程序并实时采集调试结果。(3) 可以通过外部存储器暂存图像数据和固化系统启动时加载的软件程序。(4) 具备PCI总线,可以通过开发
45、相应软件利用PCI总线传输数据以及实现与上位机的通信。 本课题设计的MPEG4编码器硬件平台可以实现一路标准PAL或NTSC制式复合视频输入/输出,具有16M SDRAM和4M FLASH以及标准JTAG接口设计,可方便实现仿真调试,并具有实时时钟RTC以及PCI总线接口。图5.1 基于DM642的MPEG4硬件平台结构框图5.2 软件调试帧内编码的功能是实现VOP的内部纹理编码,它不借助于其他的参考帧,而是单独进行编码。在做DCT变换前对块做预判断,如果为全零块,则直接转到VLC编码,并将全零信息送到帧存储器中;如果不是则做DCT变换继续编码。量化后的数据信息分两路传送:一路继续编码过程,通
46、过zigzag扫描和VLC编码生成最终的编码码流;另一路送至反量化单元为重建帧做准备,经过反量化、IDCT变换重建视频帧,存入帧存储器,作为参考帧为以后的运动估计做准备。量化后的数据在逻辑上分两路处理,而在实际中这两路是顺序执行的。帧间编码在运动估计和补偿的基础上进行,主要任务是编码运动矢量以及重构图像与补偿图像之间的残差。同帧内编码不同,帧间编码需要借助参考帧的信息,编码流程首先在参考帧与目标帧之间进行运动估计,通过块匹配算法在参考帧中寻找当前块的最佳匹配位置,得到运动矢量,然后进行运动补偿,得到重构图像与补偿图像之间的残差,将两块之间的像素差(残差)和位移差(运动矢量)作为编码的内容,对残
47、差和运动矢量进行DCT变换、量化、行程编码及VLC编码。帧间编码在运动估计前预判断零运动矢量,即如前面所讲在对应宏块SAD小于所设阈值的情况,这时待编码宏块与匹配块非常接近,可以用匹配块直接替代,无须再计算运动矢量MV。6. 编码测试结果及分析Xvid实现的编码器采用命令行输入的方法确定初始编码的参数,主要包括:视频文件的输入、压缩文件的输出、图像尺寸大小的输入(图像的高和宽)、编码码率的输入、关键帧间隔的输入等。测试序列:本课程设计采用MPEG4标准测试序列foreman.qcif,news.qcif和suzie.qcif对编码器进行测试。 Foreman序列,QCIF(176*144) 格
48、式,彩色,400帧; News序列,QCIF(176*144) 格式,彩色,300帧; Suzie序列,QCIF(176*144) 格式,彩色,150帧。实验硬件条件:P42.4GHz CPU、512M内存的PC机一台。实验软件条件:Microsoft Windowns 2000 操作系统、VC+6.0、C语言。本次实验主要考察视频编码程序是否能正确执行,因而编码峰值信噪比(PSNR)和压缩比是两个主要考察的指标,PSNR的计算方法在前面已经介绍,压缩比即图像压缩编码前后数据量大小的比值,编码速率由于运行平台的不同而有很大不同,这里只作为参考数据,在程序中已经设置了对PSNR值和编码帧率的计算
49、与输出,其结果可以在CCS的显示窗口中读取。实验结果如表5.1、5.2所示。表6.1 PC机上标准测试序列编码结果分析测试序列PSNR(dB)帧率(fps)码率(kbps)Foreman43.95449.94300News45.09662.25300suzie46.29480.77300表6.2 PC机上标准测试序列编码压缩比测试序列原始数据大小(kb)压缩后大小(kb)压缩比码率(kbps)Foreman1450016408.84300News1113846424300suzie556931517.683007. 总结本文主要分析了MPEG4视频图像压缩编码标准及其相关技术,讨论了MPEG4编码器在TMS320DM642 DSP上的实现方案和优化方法,实现了MPEG4视频编码的简单框架功能。实验结果表明,本文所提出的系统设计方案具有较高的易实现性和实用性,所采用的代码优化方法是有效的,性能测试获得了满意的效果。本人在课程设计中的主要工作总结如下:(1) 仔细搜集、阅读了大量的相关书籍和资料,了解了视频编码技术的发展概况,比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论