APP下载

MPEG-4编码器在Intel PXA27X平台上的实现

2009-05-12

现代电子技术 2009年2期
关键词:纹理形状像素

邹 涛 易 凡

摘 要:提出基于Intel PXA27X微处理器开发平台,在Linux操作系统上实现MPEG-4编码软件设计。介绍了MPEG-4的视频标准、编码关键技术以及编码软件实现部分,并进行针对Intel PXA27X处理器软件的优化和实际平台的测试。测试结果表明作为商用PDA的MPEG-4编码可以满足用户的对视频的需求,其速度达到了20帧/s,且有较高的压缩率,码流比较平稳,并有较好的质量。

关键词:MPEG-4;Intel PXA27X;优化;Linux

中图分类号:TP368.2文献标识码:B

文章编号:1004 373X(2009)02 023 02

Implementation of MPEG-4 Encoder on the Intel PXA27X Embedded Platform

ZOU Tao,YI Fan

(School of Physics and Technology,Wuhan University,Wuhan,430072,China)

Abstract:The thesis introduces the software designed implementation of MPEG-4 encoder based on Intel PXA27Xmicroprocessor,in the Linux operating system.The MPEG-4 standard,MPEG-4 encoder key technologies and implementation of MPEG-4 encoder software are introduced.software optimization and test through Intel PXA27X processor are finished,results show the MPEG-4 encoder of commercial PDA can satify the user′s shot need,which reaches 20 frames/s,it has high compression,steady bitrate and good quality.

Keywords:MPEG-4;Intel PXA27X;optimization;Linux

0 引 言

随着人们对消费类电子产品(如PDA,MP4,HDTV等)需求不断增加,特别是对高质量高清晰多媒体的要求越来越高,因此视频质量已经成为广大消费者关注的焦点之一。在视频的格式方面,一些国际组织和大公司分别提出了自己的标准,如ISO组织的MPEG-2,MPEG-4,微软的WMV等。

针对Intel公司的PXA27X处理器(这是一个包含Intel Wireless MMX 技术基于Intel Xscale的处理器),以XVID MPEG-4为基础,针对MPEG-4在Linux操作系统中实现视频的编码要求。在此首先介绍MPEG-4视频标准,紧接着阐述MPEG-4视频标准的关键技术和

MPEG-4视频编码软件部分,最后还介绍了优化方法和实际平台的测试。

1 MPEG-4是视频标准

MPEG-4视频部分是MPEG-4标准[1]的核心内容之一。既提供传统的基于帧的编码方法又提供基于视频对象(VO)的编码方法。在某一时刻,视频对象以视频对象平面(VOP )的形式出现,图1所示为MPEG-4编码的框架[1,2]。编码也主要针对该时刻视频对象的形状、运动和纹理[1,2]这三类信息来进行。

2 MPEG-4视频编码关键技术

MPEG-4视频基于VOP的编码就是针对运动信息、形状信息和纹理信息[3,4]等3种信息的编码技术。

2.1 形状编码

MPEG-4首次引入形状信息的编码。VO的形状信息有2类:二值形状信息和灰度形状信息。二值形状信息用0,1表示VOP的形状。二值信息的编码采用基于块的运动补偿技术,可以无损或有损编码。灰度形状信息用0~255之间的数值表示VOP的透明程度。对灰度形状信息的编码是分别对二值形状及像素亮度值进行编码。目前对灰度形状信息的编码主要采用基于块的运动补偿与DCT方法,在不需要形状信息的应用中(譬如基于规则矩形框帧的视频编码),形状编码会被屏蔽掉。这部分编码是以宏块为单位进行的。

2.2 运动估计与补偿编码

类似于现有的编码标准,MPEG-4采用运动预测和运动补偿技术来去除图像信息中的时间冗余成分,这些运动信息的编码技术可视为由现有标准向任意形状的VOP的延伸。VOP的编码有3种模式,即帧内编码模式(I-VOP )、帧间预测编码模式(P-VOP )和双向预测编码模式(B-VOP )。在MPEG-4中运动预测和运动补偿可以是基于16×16宏块的,也可以是基于8×8子块的。为了能适应任意形状的VOP,MPEG-4引入了图像填充技术和多边形匹配技术。图像填充技术利用VOP内部的像素值外推VOP外的像素值,以此获得运动预测的参考值。对于标准宏块,采用传统的基于块的运动估计和补偿技术。

2.3 纹理编码

VOP视频的纹理信息可以表示为亮度成分Y和两个色度成分Cr,Cb。е∧诒嗦肭榭鱿拢纹理信息包含有亮度和色度成分;运动补偿情况下,纹理信息表示经过运动补偿后的残差。纹理编码的对象可以是帧内编码模式的I-VOP,也可以是帧间预测编码模式B-VOP或P-VOP运动补偿后的预测误差。在帧内编码模式中,对于完全在VOP内的像素块,采用经典DCT方法。对于完全位于VOP之外的像素块则不进行编码:对于部分在VOP内,部分在VOP外的像素块首先采用图像填充技术获得VOP之外的像素值,之后再进行DCT编码。在帧间编码模式中,为了对B-VOP和P-VOP运动补偿后的预测误差进行编码,将那些位于VOP区域之外的像素值设为128。纹理编码过程如图1所示,DCT变换、量化、扫描及变长编码,这些过程与现有标准基本相同。

3 MPEG-4是视频编码软件

MPEG-4是软件编码是一个比较大的工程,项目用到的主要函数有:

mp4_encoder_init:初始化编码的参数,如视频大小尺寸、码流、缓冲大小;

encode_MPEG-4:编码调用的总函数,文本是基本层;

encode_pvop_MPEG-4 对P帧的VOP的编码的总函数;

ippiBlockMatch_Integer_16x16_MVFAST:运动搜索MVFAST(Motion Vector Field Adaptive Search Technique)。

下面是帧间宏块编码的函数:

encode_inter_mb_MPEG-4

(1) lookup_uvmv_MPEG-4:查找色度图像块的运动矢量;

(2) ippiComputeTextureErrorBlock_SAD_8u16s:计算块残余的纹理误差;

(3) encode_block_inter_MPEG-4:DCT变化和量化每块的系数。这还得反变化,来重构下帧的参考帧;

(4) create_mb_MPEG-4:得到宏块编码的信息;

(5) ippiEncodeMV_MPEG-4_8u16s:运动矢量和纹理残余的编码;

(6) ippiEncodeVLCZigzag_Inter_MPEG-4_16s1u:zigzig扫描和变长编码。

IPP的函数合理使用,可以提高性能。如ippiBlockMatch_Integer_16x16_MVFAST这个函数就比ippiMotionEstimation_16x16_MVFAST减少3倍时间。这个函数是占正个系统最多的时间之一。

4 MPEG-4是视频编码优化和结果

这里是针对Intel公司的PXA27X处理器,MPEG-4计算量复杂,特别是运动搜索,必须对其必要的优化[5-9],以满足实时编码的要求。编译优化是静态优化,优化编译器可以自动完成程序段和代码块范围内的优化问题,但由于对算法的流程很难获取,所以人工优化是不必可少的。可使用内联函数,Wireless MMX 指令编写,如WLDRD 和WMACS,特别在对数据处理时,打包指令是必不可少的指令。合理分配指令周期流水线也是重点,如WLDRD需要4个周期,而WUNPCKEL只需要1个周期,使用IPP库函数将大量节约开发时间和提高性能等,按照实际的工程的需要编写指令。当然对算法的本身优化也不必可少,如运动搜索,运动补偿算法,将这些函数优化运算时间大量减少。还有对数据搬移方面,如何有效应用硬件资源也将提高运行的性能,如DMA、缓存、寄存器等。

这里的试验平台是南望信息产业有限公司PDA,主频可达624 MHz。视频大小(480×272)透过大量的试验,测试表明MPEG-4编码可以满足用户拍视频需求,速度可达到20帧/s,而且有较高的压缩率,码流比较低,质量也不错。图3,4为实际拍摄2帧图像。

5 结 语

针对Intel公司的PXA27X微处理器开发平台,在Linux操作系统中实现视频编码的功能。但是消费类产品对视频的画面有更高的要求,同时由于视频编码需要消耗大量的电源,电源的管理仍是视频开发的研究重点。

参考文献

[1] ISO IEC FDIS 14496-2.Information Technology-GenericCoding of Audio-Visual Objects Part.2001.

[2] Lain E G Richardson.H.264 and MPEG-4 Video Compression.Halsted Press,2003.

[3]夏良正.数字图像处理[M].南京:东南大学出版社,1999.

[4]万俊青.MPEG-4视频编码器算法研究及优化 [D].杭州:浙江大学,2005.

[5]Intel PXA27x Processor Family Optimization Guidel [S].2004.

[6]李英伦,杜旭.基于IntelXscale和嵌入式Linux的视频模块设计与开发[J].计算机工程与设计,2005,26(9):2 282-2 260.

[7]顾建军,李文元.MPEG-4-SP在DSP上的优化分析[J].测控技术,2004(23):191-192.

[8]洪艳,杨斌.嵌入式手持设备设计及其基于IPP的优化[J].微计算机信息,2007(23):4-7.

[9]李英伦,杜旭.基于IntelXscale和嵌入式Linux的视频模块设计与开发[J].计算机工程与设计,2005,26(9):2 282-2 260.

[10]钟玉琢,王琪,贺玉文.基于对象的多媒体数据压缩编码国际标准MPEG-4及其校验模型[M].北京:科学出版社,2000.

作者简介 邹 涛 微电子与固体电子学硕士。主要研究方向为信息处理与微系统。

猜你喜欢

纹理形状像素
赵运哲作品
挖藕 假如悲伤有形状……
像素前线之“幻影”2000
基于BM3D的复杂纹理区域图像去噪
“像素”仙人掌
使用纹理叠加添加艺术画特效
你的形状
TEXTURE ON TEXTURE质地上的纹理
看到的是什么形状
消除凹凸纹理有妙招!