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

发布者:zeta16最新更新时间:2012-09-17 来源: 现代电子技术 关键字:MPEG-4  编码器  PXA27X 手机看文章 扫描二维码
随时随地手机看文章
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视频编码软件部分,最后还介绍了优化方法和实际平台的测试。


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


2 MPEG一4视频编码关键技术
    MPEG一4视频基于VOP的编码就是针对运动信息、形状信息和纹理信息等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)。在MFEG一4中运动预测和运动补偿可以是基于16×16宏块的,也可以是基于8×8子块的。为了能适应任意形状的VOP,MPEG一4引入了图像填充技术和多边形匹配技术。图像填充技术利用VOP内部的像素值外推VOP外的像素值,以此获得运动预测的参考值。对于标准宏块,采用传统的基于块的运动估计和补偿技术。[page]
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的编码的总函数;
    ippiBlockMatcn_Imeger_16x16_MVFAST:运动搜索MVFAST(Motion Vector Field AdaDtive 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_16slu:zigzig扫描和变长编码。
    IPP的函数合理使用,可以提高性能。如ip—piBlockMatch_InIeger_16x16_MVFAST这个函数就比ippiMotionEstimation_16x16_MVFAST减少3倍时间。这个函数是占正个系统最多的时间之一。


4 MPEG一4是视频编码优化和结果
    这里是针对Intel公司的PXA27X处理器,MPEG一4计算量复杂,特别是运动搜索,必须对其必要的优化,以满足实时编码的要求。编译优化是静态优化,优化编译器可以自动完成程序段和代码块范围内的优化问题,但由于对算法的流程很难获取,所以人工优化是不必可少的。可使用内联函数,Wireless MMX指令编写,如WLDRD和WMACS,特别在对数据处理时,打包指令是必不可少的指令。合理分配指令周期流水线也是重点,如WLDRD需要4个周期,而WUN—PCKEL只需要1个周期,使用IPP库函数将大量节约开发时间和提高性能等,按照实际的工程的需要编写指令。当然对算法的本身优化也不必可少,如运动搜索,运动补偿算法,将这些函数优化运算时间大量减少。还有对数据搬移方面,如何有效应用硬件资源也将提高运行的性能,如DMA、缓存、寄存器等。
    这里的试验平台是南望信息产业有限公司PDA,主频可达624 MHz。视频大小(480×272)透过大量的试验,测试表明MPEG一4编码可以满足用户拍视频需求,速度可达到20帧/s,而且有较高的压缩率,码流比较低,质量也不错。图3,4为实际拍摄2帧图像。


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

关键字:MPEG-4  编码器  PXA27X 引用地址:MPEG一4编码器在Intel PXA27X平台上的实现

上一篇:基于PXA270嵌入式系统的Socket通信设计
下一篇:基于PXA272的Bootloader的设计与实现

推荐阅读最新更新时间:2024-03-16 13:08

博世隆重推出新型VIP-X1XF编码器H 264
      博世安保系统公司新推出了一款单通道视频编码器,该编码器通过将现有模拟摄像机转换成功能强大的自动侦测设备来提高模拟摄像机的性能。编码器能生成画质一流的H.264压缩视频,并通过内置硬件加速器进行智能视频分析(IVA)。   VIP-X1XF编码器功能强大,每个编码器可为每台摄像机生成两路独立的全帧速、全分辨率( 25IPS@4CIF )视频流。该功能支持两路视频流在不同媒介上同时进行录制,从而实现最佳灵活性和冗余度,例如,在iSCSI驱动器-由博世录像管理器(VRM)控制-进行集中录像的同时,还可在SD卡等本地媒介上进行冗余录像。   编码器采用H.264压缩技术,与MPEG-4等传统压缩技术相比,网络负载最高可
[安防电子]
为何说Per-Title编码思想仍在发挥着重要作用
我们花了数年时间开发出这种名为“Per-Title”的编码方法,其核心是对每一主题(的视频)进行独立分析,根据其复杂度选择最佳编码方式。设想一下,针对一个非常复杂的动作场景,我们将更多比特位用来封装动作信息,而只用较少的比特位封装固定不变的风景及动画部分。这种方法使我们能够在降低带宽占用的情况下,为用户提供同样优质的视频观看体验。对于带宽较低的国家,以及用户经常在移动网络上观看视频的地区,这一特质尤为重要。 相关背景 在地面无线电视、有线电视或卫星电视这些传统电视传媒方式下,广播公司会拥有自己固定可用的带宽。他们提供的节目(或同时提供的多个节目)在编码后得到的视频流需要合理地占用这部分带宽。广播公司通常会利用统计复用的方法,将
[网络通信]
MPEG-4编码器在BF561上的优化
随着网络技术和多媒体技术的发展。视频通信的需求逐渐增加。同时,最新的视频压缩标准不断推出。MPEG-4(Moving Pictures Expcrts Group-4)是国际运动图像像编码专家组(MPEG Moving Picture ExpertsGroup)在1998年11月制定的。它提供了用于甚低速率的音视频编码,实现了基于内同的压缩编码,具有良好的兼容性、伸缩性和可靠性。以DSP为嵌入式图像处理核心的系统,具有开发周期短,编程灵活的特点,因此DSP图像处理系统成为了当前研究热点。Blackfin系列处理器是ADI专门针对于通信和多媒体方面的应用而开发的定点DSP,在片上集成了一套通用的数字图像处理外围设备,为数字图像
[家用电子]
<font color='red'>MPEG-4</font><font color='red'>编码器</font>在BF561上的优化
编码器常用测速方法
对于电机的转速测量,可以将增量式编码器安装在电机上,用编码器的轴连接电机的轴,然后用控制器对编码器进行计数,最后通过特定的方法计算出电机的转速。 常用的编码器测速方法有三种:M法、T法和MT法。 M法:又叫做频率测量法。这种方法是在一个固定的计时周期内,统计这段时间的编码器脉冲数,从而计算速度值。设编码器单圈总脉冲数为C,在时间T0内,统计到的编码器脉冲数为M0,则转速n的计算公式为:n = M0/(C*T0)。 M法是通过测量固定时间内的脉冲数来求出速度的。 假设编码器转过一圈需要100个脉冲(C=100),在100毫秒内测得产生了20个脉冲,则说明在1秒内将产生200个脉冲,对应的圈数就是200/100=2圈,也就
[测试测量]
基于DSP和FPGA的编码器信号测量及处理的通用模块
随着科学技术的飞速发展,自动控制系统在各领域中的应用越来越多,特别是计算机自动控制系统已成为现代科学技术、军事工程和现代工业等领域不可缺少的部分。因而,自动控制元件如作为动力装置的各种电动机、发电机和作为信号变换的各种控制电机在各种控制系统中得到广泛的应用。要对被控对象进行控制,不仅需要控制器和执行机构,还需要反馈装置。因此,编码器作为电机的角度、速度、方向的检测装置,也得到了广泛的应用。编码器又有旋转变压器、霍尔传感器和光电编码器。其中,光电编码器精度高,抗干扰能力强,接口简单,使用方便,因而获得了最广泛的应用。 光电编码器按编码方式又主要有增量式编码器和绝对式编码器两大类,前者具有分辨率高、价格较低、接口简单等优点,然而在当今
[测试测量]
基于DSP和FPGA的<font color='red'>编码器</font>信号测量及处理的通用模块
CAST提供H.264 High Profile编码器IP核
2012年12月5日新泽西,Woodcliff Lake报道 - 由半导体知识产权供应商 CAST Inc. 提供的 H.264High Profile 视频编码器 IP 核 现已上市。 S2C 公司是 CAST 在中国的正式代理商 , 想了解 CAST 的 IP 方案详情和购买产品,请联系 sales@s2cinc.com 。 高清 H.264/AVC 视频编码器核专为对高清视频具有严格要求的 HD 广播、专业摄像机、视频刻录等产品研制,具有出众的视频效果、极佳的播放性能及便捷的系统集成等特性。 Intra-only 版本以其极低的延迟性而适用于实时应用,同时适用于 AVC-Intra 5
[半导体设计/制造]
旋转编码器在线速度检测控制中的应用
引言   该项目是为某电缆厂的技术改造项目,要改造的设备是利用束线原理制造的盘绞式成缆机,改造的内容是更换全部电气控制系统。这种成缆机的放线盘固定,而收线盘固定在盘绞架上同时完成绞合和收线的双重运动。工作时,在线缆盘直流电机的带动下,完成电缆的收线运动,在排线电机的带动下实现电缆在收线盘的整齐排列。在大盘电机的带动下,通过齿轮箱带动盘绞架实现轴向旋转,完成电缆绞合运动,是保证节距的关键。线速度是由收线盘的旋转速度决定的,如果收线电机的转速恒定,收线盘随着收线轴的变粗,线速度会增大,因此,为保证收线速度恒定,要逐渐降低收线电机的转速。    1 系统设计原理   根据电缆的生产工艺要求,不同型号的电缆,其走线速度是恒定的。通
[模拟电子]
旋转<font color='red'>编码器</font>在线速度检测控制中的应用
基于Arduino开发环境的光电编码器检测仪设计方案
Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的。其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块、各种模拟量传感器输入模块、总线类传感器的输入模块,还有网络通信模块 .Arduino有自己特有的编程语言。其语法规则类似C/C++语言,IDE环境和语言把单片机与硬件相关的一些参数都参数化并进行了很好的封装,把端口都打包,寄存器、地址指针之类的基本不用管,大大降低了软件开发难度。因此不用开发者去了解其硬件结构即可对其编程,实现设计者的设计意图和创意 . 本文提出了一种基于Arduino开发环境的光电编码器检测仪设计方案,能够对光电编码器的好坏进行判断
[电源管理]
基于Arduino开发环境的光电<font color='red'>编码器</font>检测仪设计方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved