MPEG—4视频解码器的设计与优化

来源 :计算机时代 | 被引量 : 0次 | 上传用户:qjw335471690
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: MPEG-4标准是最有影响的多媒体数据编码国际标准之一,具有高压缩比、可扩展性、可交互性等诸多优点,逐渐成为现代视频编码领域的主流标准。为加快视频解码的速度,在分析MPEG-4视频编解码标准的基础上,利用GPU加速视频解码的并行架构方案,对解码算法中的DCT变换、运动估计和运动补偿算法分别进行了优化。实验测试显示,优化后的MPEG-4视频解码器解码速度平均提高了25%,具有一定的实用价值。
  关键词: 视频压缩编码; MPEG-4; 视频解码器; 图形处理单元
  中图分类号:TP393.04 文献标志码:A 文章编号:1006-8228(2013)01-06-02
  Design and optimization of MPEG-4 video decoder
  Li Xiang
  (Network Center, Department of Information Engineering, Lanzhou VOC-TECH College, Lanzhou, Gansu 730070, China)
  Abstract: The MPEG-4, one of the most influential international standards of multimedia date code, has many advantages: the high compression ratio, the property of expanding and the property of switching. It has already gradually become the main standard in the realm of modern video frequency code. In order to accelerate the speed of the video decoding, on the basis of analyzing the coding and decoding standards of MPEG-4 video, a project abreast of parallel structures to accelerate the decoding of video frequency is designed. Decoding algorithm DCT, motion estimation and motion compensation algorithm are optimized. Finally through the test, the optimized MPEG-4 video decoder decoding speed increases by an average of 15%. It has certain practical value.
  Key words: video compression; MPEG-4; video decoder; GPU
  0 引言
  作为第一个面向对象的视频编码标准,MPEG-4的出现具有很强的历史意义[1]。由于其广泛适用于实时监控、多媒体通信、网络的可视化合作等多媒体应用场合,使基于MPEG-4标准的视频编解码技术受到前所未有的重视。本文针对MPEG-4系统提出了一种GPU+CPU并行实现架构,并在PC平台实现了基于DCT算法改进的MPEG-4解码器软件设计,所设计的解码器具有实时高效和控制灵活的特点,并加快了视频解码的速度。
  1 并行解码器架构
  传统的解码器都是基于MB Level的,也就是说,依照次序对每一个宏块完成IQ(逆量化)、IDCT(逆DCT变换)和MC(运动补偿)。由于CPU和GPU之间频繁的小块数据交换非常低效,而且绘制小图形也不能充分发挥GPU的性能,因此这种方式并不适合在GPU上实现。
  适合在CPU+GPU的体系上实现的并行解码器架构是基于帧级(Frame Level)的,把包括运动补偿、相加和帧缓冲的整个反馈回路都放到GPU上去执行,图1为分级的并行解码器构架原理图。原理图中整个反馈环都已经并入了MC的框图之中,由于缓冲区的存在,GPU上执行的部分可以延后X帧。CPU和GPU可以并行工作,显然这非常有利于解码速度的提高。并行解码器可以分3个级别来分别实现,解码器的3种架构级别分别对应不同的硬件情况:如果CPU性能比GPU强很多,就可以选择级别1,反之则选择级别3,级别2则介于两者之间。事实上,这3种级别是可以切换的。在解码过程中,通过动态地在3种级别间进行切换,可以比较合理地将任务分配给CPU和GPU[2]。
  2 MPEG-4视频解码器的软件算法优化
  2.1 MPEG-4视频的解码流程
  解码器是基于Frame Level的,无论是MC,还是IDCT或者IQ,当它们在GPU上实现时,每一步的操作都是针对同一帧上的所有宏块的。VOP是MPEG-4的基本编码单元,它包含视频对象边框的尺寸。图2是MPEG-4的解码流程,可以看出MPEG-4视频解码主要由三部分组成:形状解码、运动解码和纹理解码,重建的VOP是通过合并解码的形状、运动和纹理信息得到的[3,4]。
  2.2 解码算法优化
  2.2.1 IDCT变换的优化
  从复杂度上分析,DCT变换是很耗时的,为了减少这部分的计算量,需要对它进行优化。在DCT变换前,需要根据信号能量的量化因子QP进行DCT模式选择,模式选择我们设定了0×0 DCT变换、1×1 DCT变换、2×2 DCT变换、4×4 DCT变换、8×8 DCT变换五种。首先根据二维DCT/IDCT计算公式进行行列分离,把二维的DCT变换转化为一维的DCT变换。然后采用一维DCT快速算法进一步降低其复杂度。   在帧间模式下,通过当前块的量化因子QP和信号能量值作DCT模式选择可以减少计算量。为了简化计算,取绝对差之和SAD来近似信号能量值。此外,为了减少误判率和加快计算速度,在0×0 DCT变换和8×8 DCT变换两种模式基础上加了1×1 DCT变换、2×2 DCT变换、4×4 DCT变换三种模式。
  2.2.2 运动估计优化
  运动补偿是MPEG-4视频解码的核心之一。在编码过程中,通过块的匹配得出运动矢量信息,同时也会得出当前编码块的残差信息。由于残差信息带有的信息量较少,可以通过纹理进行编码。通过逆向推导,解码时运动补偿通过从码流中获取运动信息,进而解码出运动矢量。然后根据运动矢量从参考帧中得出预测值。最后将预测值与解码的纹理信息相加,即得到实际的图像。由于MPEG-4(简单框架)处理的都是基于块对象的,因此不涉及形状编码,无需填充过程[5]。
  3 MPEG-4视频解码器的实现
  3.1 MPEG-4压缩视频的码流结构
  MPEG-4标准定义了MPEG-4码流中的每一位的具体含义,MPEG-4码流的组织形式是按分层的形式组织起来的。首先是码流头,又叫起始码字,是一个在码流中其他地方不会出现的一个比较长的特殊序列,具体的头信息定义了整个码流的一些特征。接下来是帧头,帧起始码字和具体的帧头信息,定义了当前帧的一些特征,这些信息决定了该如何解码当前帧。从宏块头开始就是具体的数据,宏块头并没有一个宏块起始码字,它紧跟在帧头信息后面。
  应用程序调用相关接口函数,通过封装静态链接库的方法可以实现解码器。在视频序列解码的不同阶段分别调用相关的接口函数,首先调用getvophdr获取VOP的头信息,然后调用macroblock函数实现帧解码。
  3.2 头信息的解码[6]
  首先看V0、VOL、VOP头信息的编解码过程。编码时,若编码第一帧,则首先调用函数PutVoVolHeader对V0、VOP的头信息进行编码,接下来对每一帧编码时,即编码VOP时,首先调用函数BitstreamPutVopHeader对每个VOP的头信息进行编码。与此相对应,在解码时,首先调用函数getvophdr,解码V0、VOL的头信息,然后在解码每一帧时,调用函数getvophdr获取VOP的头信息。
  3.3 VOP解码
  头信息解码完成之后,调用函数get_mp4picture对每个VOP进行解码。该函数的实现过程为[6]:
  ⑴ 初始化宏块的循环控制变量;
  ⑵ 循环调用宏块解码函数macroblock对VOP中的每一个宏块进行解码;
  ⑶ 调用函数make_edge对上一步获得的解码帧frame_ref(亦作为参考帧)进行边填允;
  ⑷ 调用函数PictureDisplay将frame_ref图像转换为bmp图像;
  ⑸ 将当前帧与参考帧交换。
  3.4 宏块的解码
  VOP解码的整体过程中最关键就是函数macroblock的实现。VOP的编码过程是基于宏块的,所以VOP解码过程同样是基于宏块的,因此此函数是解码的核心函数,它一方面通过VLD(可变长解码)、RLD(行程解码)、IQ(逆量化)、IDCT(逆DCT变换)解码出原始图像值(I_VOP)或误差值(P_VOP);一方面解码出运动矢量Motion Vector,并进行MC(运动补偿)[7]。
  4 结束语
  为了验证GPU+CPU加速视频解码方案和相关算法优化的效果,我们采用XVID作为模拟验证软件。软件测试的计算机硬件配置为Intel奔腾双核E5300 CPU,2GRAM,GeForce 9500GT GPU。软件实现的软件环境为Windows XP 中文专业版操作系统平台,采用VisualC++7.0为程序开发环境[8]。
  通过选取标准视频QICF文件做了视频编码后作为测试的视频序列,测试其优化前和优化后解码一帧所需要的时间,从而对同一帧的解码时间进行比较。从测试结果看,视频解码速度优化前与优化后的平均解码时间差有15ms。解码器对于所有的视频序列解码速度平均提高了25%,解码的视频质量能让人眼所接受,证明GPU辅助CPU加速解码,对DCT算法、运动估计和运动补偿算法的改进是行之有效的。
  参考文献:
  [1] 尤会明,杨杰.MPEG-4视频编码分析[M].武汉理工大学学报(信息与管理工程版),2005.27(5):136-139
  [2] 房波.基于通用可编程GPU的视频编解码器——架构、算法与实现[D].浙江大学,2005.
  [3] 张志伟.一种远程矿井瓦斯浓度检测仪的设计[M].煤矿安全,2011.42(5):78-80
  [4] 赵丽鲜,苏鸿根.MPEG-4视频编解码器设计实现与性能优化[J].计算机工程与设计,2009.30(12):3001-3004
  [5] 张石,张明亮,鲍喜荣,佘黎煌.MPEG-4视频解码模块的设计与优化[J].计算机工程,2007.5:193-195
  [6] 刘璋.MPEG-4视频解码器的设计与优化[D].华中科技大学,2006.
  [7] 沈承东.MPEG4视频编码算法的研究与实现[D].国防科学技术大学,2002.
  [8] 张志伟.电磁带隙结构在同步开关噪声抑制中的应用分析[M].电讯技术,2010.50(3):64-68
其他文献
二次函数解析式y=ax^2+bx+c的求法,是二次函数知识的重点,也是中考必考内容,二次聪数常见的表达形式有:
师生共建型科研团队的建设和成长是一个从无到有、从无序到有序的自组织过程,针对这个过程,首先,从系统科学的角度剖析了师生共建型科研团队的特征和发展现状,然后,结合自组
对高职网络技术专业125名毕业生就业满意度跟踪调查,从就业情况、首次就业成功因素、专业课程内容设置、专业教师教学水平、专业教学管理、专业技能重要性、运用专业技能熟练
结合从定性到定量的综合集成法,提出了“办公软件高级应用”课程建设综合集成研讨厅概念,研究建立了办公软件高级应用课程建设综合集成研讨厅体系.该研讨厅体系集计算机技术
目的:研究渗透胁迫下皱果苋的渗透调节物质变化,探讨皱果苋的耐旱机理。方法:分别用浓度为5%、10%和20%PEG6000进行渗透胁迫,处理皱果苋幼苗0、1、3、5和7d,取叶片测定各项生理指标。结果:随着渗透胁迫时间的延长,皱果苋幼苗叶片中相对含水量(RWC)逐步下降;而脯氨酸和可溶性糖含量上升;在5d,5%、10%、20%PEG胁迫下的叶片脯氨酸含量分别是对照的3.73、6.27、9.77倍;而
兴趣是学好语言的关键。这就要求教师在把握小学英语趣味教学方法的同时,提高自身素养,提高学生学习英语的兴趣,让学生在这种快乐的教学过程中,领略到英语的无穷魅力。
书法是我国传统民族文化的精髓,是中华民族所特有的文化艺术。在高中教育工作中,要想提高学生的写字能力和水平,促进学生综合素质的提升,上好书法课是最重要的途径之一。文章