基于PXA270平台的嵌入式流媒体播放器设计

发布者:码上奇迹最新更新时间:2008-11-26 来源: 电子设计应用关键字:流媒体播放器  模块  嵌入式Linux  流式文件  QCIF  控制端  gettext  数据域  嵌入式系统  WAV 手机看文章 扫描二维码
随时随地手机看文章

  

  摘要:随着车载导航系统的飞速发展,具有视频播放能力的车载终端逐渐成为新的热点。本文根据这一需求设计了一种嵌入式流媒体播放器,方案基于Intel PXA270 的硬件平台及嵌入式Linux 的软件平台,采用无线上网方式,可支持ASF、RM 格式的流文件解压,能够播放常见的MP1、MP2、MP3、WAV 音频和先进的MPEG- 4 视频,并可通过软件升级加入对其它格式的支持。

  关键词:PXA270;MPEG-4;流媒体

  播放器概述

  近两年来,车载导航系统在国内悄然兴起,据专家预测,中国车载市场在启动初期需求约为55 万台,折合人民币约27.6 亿。而从长远来看,规模将达到千亿元人民币。但是,当前车载终端的视频播放能力大多比较薄弱,能够支持MPEG-4等新式编码格式的只有少数厂家。而且由于嵌入式系统独有的特点,车载产品存储空间一般都很小,只有流式文件边下载边播放的特性才能满足车载终端上音、视频的播放要求,实时的为车主播放刷新的信息。本产品是基于I P 网络的嵌入式流媒体播放器,不但可以支持MPEG- 4 和主流的流媒体格式,而且可以通过软件升级支持未来的媒体格式。

  播放器的底层开发环境

  播放器的硬件环境包括:Intel PXA270开发平台Sophia (简称sophia 板) 和支持802.11a、USB接口的10Mb/s无线网卡。sophia 板以Intel 公司的嵌入式处理器PXA270 为核心,伴以2700G 多媒体加速芯片实现视频加速与3D加速,系统的硬件模块如图1所示:网络控制模块将从网卡读出的数据送入PXA270 和Intel 2700G模块处理,解压后的数据在LCD或RGB显示器上播放。

  

  播放器的模块划分

  sophia板使用的嵌入式Linux内核是由基于linux-2.4.20内核的MontaVista linux编译而成,文件系统是针对Flash 无缓冲机制的jffs2 文件系统。同时,sophia 板的开发商还提供了BSP、中间件等大量的软、硬件资源,其中通信接口中的网络控制模块、解码模块和播放器模块是系统开发的关键。整个系统的模块划分如图2 所示:Bootloader 在硬件物理层之上进行最底层的引导,它属于板级支持包BSP 的一部分。BSP负责直接和底层的硬件设备建立联系,同时,它也可以包含某些驱动。不过,在sophia 的软件系统模块中,网卡的驱动是作为嵌入式系统内核的模块之一动态加载的。嵌入式中间件位于操作系统和应用程序的中间环节,提供了到程序模块、组件库的联接,系统的解码模块和播放器模块都是在它之上开发的。

  

  [page]模块的实现

  系统实现可以被分为以下几个步骤:

  1) 嵌入式Linux 内核的移植和编译、文件系统的安装;

  2) 视频图像解压缩模块的实现;

  3) 播放模块的实现;

  嵌入式Linux 内核的移植和文件系统、图形界面系统的安装

  工作在sophia 板上的嵌入式Linux 内核对boot-loader、内核、文件系统的加载步骤和交叉编译环境的建立方法与其它嵌入式平台的开发步骤相似具有一定的通用性,具体的建立方法可以参考文献。但是有两点要注意:

  1) 在使用make menuconfig定制内核时要让内核支持无线网卡,具体步骤是在USB Support 配置菜单中选择USB network devices,再于子菜单中选择wireless,使得在内核中加入对USB 无线网卡的驱动支持。

  2) 在图形界面系统的编译与安装中注意建立工程后,要将选项中的gettext 选项勾掉,否则程序无法顺利编译。

  视频图像解压模块的实现

  由网络控制模块获取的数据在系统中是以流数据的形式存在的,因此,首先要对流式文件进行解压。同时,为了提高传输效率从而提高视频图像质量,网络上传输的原始视频图像都进行了压缩编码,所以,还需要根据编码格式进行相应解码。本系统不但支持常见的MP1、MP2、MP3 和WAV 音频文件格式,还可以对先进的MPEG- 4视频图像压缩编码文件解压缩。

  流式文件的解压缩

  按照播放器所接入的车载导航网络的要求,本方案要为当前主流的流文件格式:ASF、RM提供解压能力。

  ASF 文件解压

  ASF文件基本的组织单元叫做ASF 对象,每个对象由三个域组成:128 位的全球唯一的对象标识符域、64 位整数的对象大小域和可变长的对象数据域。ASF 文件的高层逻辑结构也包含三部分:头对象、数据对象和索引对象。其中头对象是必需的并且必须放在每一个ASF 文件的开头部分,它包含了许多全局信息,一定要在数据对象之前被接收方接收并解释;数据对象也是必需的,且一般情况下紧跟在头对象之后,包含了所有待播放的数据;索引对象是可选的。

  RM文件解压

  组成RM文件的基本部件是块,每个块包括三个字段:指明块标识符的四字符编码、块中限定数据大小的32 位数值和数据块部分。块标识符用来唯一的标识每一个块。同样地,RM文件的高层逻辑结构也由三部分组成:文件报头部分、文件数据部分和文件索引部分。因为RealMedia 文件格式是一种加标志的文件格式,块的顺序没有明确规定,但RealMedia 文件报头必须是文件的第一个块。

  MPEG- 4 视频图像的解压

  在几种开放源代码的MPEG- 4 解码软件中,作者选择xvidcore 作为系统中视频图像解压模块的核心算法。xvid 是一个高效且可移植的编码软件,系统采用的是目前最新的版本xvidcore- 1.1.0。xvid 支持SimpleProfile 和Advanced Profile,支持I/P Frames、B -Frames、Interlacing 和GMC,是目前比较流行的MPEG- 4 编码软件。对xvidcore- 1.0.1 进行交叉编译有以下主要步骤:

  [page]1) 解压缩xvidcore 源代码tar- zxvf xvidcore- 1.1.0.tar;

  2)设置环境变量export xvidcore= “the path of xvidcore”;

  3)生成makefile ./configure- - host=localhost- - build=arm- linux- gcc;

  4) 编译源代码make;make install;

  将交叉编译生成的库文件libxvidcore.so.* 拷贝到交叉编译器工作目录的./local/lib 子目录中,该库文件为系统的其它模块提供了编程接口。

  解码格式的可扩展性

  播放器支持的文件格式越多,其生命力也就越强大,PXA270 嵌入式处理器加上2700G 多媒体加速芯片的搭配方案为媒体播放提供了强大的硬件支持,通过软件升级,理论上可以支持任何媒体格式。本方案的做法是:在播放器中实现一个索引表类,将来根据需要新添加的编码格式作为独立的类注册到索引表中。基于linux 的c++解码类源代码可以由网上开放源码的解码器网站下载,系统中的MP1,MP2,MP3 和WAV 的解码就是采用这种方法实现的。

  播放模块实现

  文件的输入

  在播放器系统中,文件的来源有两种:由网卡读入存储器后播放或通过其它数据传输途径写入存储器,在存储器中直接播放。sophia 板提供了网卡的驱动模块,可以使用命令modprobe usbcore 和modprobe usbwlnc动态加载,为数据从网卡经由操作系统到达播放进程提供一个全双工的通道。数据的处理由播放器中的stream input 类来实现。

  流媒体协议

  实现流式传输有两种方法:实时流式传输和顺序流式传输,系统使用的是实时流式传输,需要标准化的流媒体协议来保证客户机和专用的流媒体服务器之间进行通信。根据流媒体协议的功能可以分为两类:

  基本网络协议

  为媒体传输提供基本的网络服务支持,由于TCP需要较多的开销,不太适合传输实时数据。在流式传输的实现方案中,采用RTSP/TCP 来传输控制信息,而用RTP/UDP 来传输实时声音、图像数据。

  传输协议

  传输协议包括RTP、RTCP、RTSP 和RSVP,RTP和RTCP 控制端到端网络数据的传输,RTSP 提供话路控制的功能,RSVP 是可选的,它为播放进程在网上预先申请一部分网络资源( 即带宽),能在一定程度上为流媒体在Internet 上的传输提供特殊服务质量QoS。为流媒体设计的协议栈如图3 所示:从UDP/TCP层得到的数据包处理后得到打包的RTP 数据流,通过RTP/RTCP/RTSP 层分离出定时和同步信息以及包的序列号,将读出的流文件交给ASF 和RM解码模块。

  

  [page]媒体的播放

  播放器以自由软件mplayer 为蓝本,处理流程如图4所示:

  1) 如果数据是从网卡获得的,调用stream input模块进行处理。Stream input 模块根据流媒体协议,使用socket 和多媒体服务器进行通信,输入的流数据放入缓冲池中并根据流文件的格式对它进行ASF 或RM解压缩;

  2) 解压后的文件根据文件的类型查找索引表调用不同的解码类将数据转化为一种统一的中间格式raw,生成相应的file,由播放器main 函数播放。如果文件已保存在存储器中,可以跳过第一步,直接执行第二步流程。

  

  小结

  本文提出了一种基于Intel PXA270 嵌入式微处理器和嵌入式Linux 的流媒体播放器系统实现方案,特有的索引表结构使得播放器可以通过软件升级增加新的编码格式,纯软件的实现方式大大缩减了研发周期。经测试,在带宽50Kb/s~100Kb/s、缓存256k 的条件下,系统对CIF(352288) 视频格式、QCIF(176144)视频格式和音频格式的文件播放失帧率在5%以下,播放流畅,满足了目前车载终端中嵌入式流视频播放的要求。

 

关键字:流媒体播放器  模块  嵌入式Linux  流式文件  QCIF  控制端  gettext  数据域  嵌入式系统  WAV 引用地址:基于PXA270平台的嵌入式流媒体播放器设计

上一篇:PC/104平台嵌入式Linux系统核心定制方法
下一篇:SPIRIT向ARM授予语音与音频软件许可

推荐阅读最新更新时间:2024-05-02 20:43

u-blox NB-IoT模块获Flashne采用
优北罗(u-blox)近日宣布该公司的SARA-N2系列NB-IoT(LTE Cat NB1)模块,获得罗马尼亚的Flashnet采用,推出第一款窄频IoT(NB-IoT)联网智能路灯控制系统--inteliLIGHT。此试验计划已经部署在希腊主要电信业者OTE集团,位于帕特雷(Patras)市的电信网络上。 Flashnet执行长Lorand Mozes表示,该公司认为这个产业已经做好采用NB-IoT的准备,归功于与u-blox的合作,我们成为提供坚固、并具备完整功能产品组合的供货商。透过选用u-blox的SARA-N2模块,我们能在非常短的时间内将FRE-220NB系列NB-IoT连网照明设备推向市场,与既有的产品互补,并为客
[半导体设计/制造]
基于bqTINY-II的便携式电子心音检测仪电源管理模块设计
0 引言 便携式电子产品以电池作为电源。随着便携式产品的迅猛发展,各种电池的用量大增,并且开发出许多新型电池。近年来开发的高能量密度的锂离子电池具有体积小、容量大、待机时间长等特性,非常适合便携式系统的应用。 在便携式电子产品的设计过程中,其电源管理模块的设计是十分重要的,因为这关系到整个系统工作的稳定性、持续性及快速恢复的能力问题。尤其是在使用锂电池作为系统电源时,其电源管理模块的作用更加突现。本文针对锂电池充电的特点,介绍了一种基于bqTINY-II的便携式电子心音检测仪电源管理模块解决方案。 1 锂离子电池充电过程 锂系列(锂离子或锂聚合物)电池的充电过程分为3个阶段,如图1所示。 第一阶段为检验和预充电阶段
[电源管理]
播思将于印度推出高通平台智能手表、追踪器和物联网模块
高通公司(Qualcomm Incorporated)(NASDAQ:QCOM)旗下子公司高通科技有限公司( Qualcomm Technologies, Inc.)和全球物联网软件、产品及云解决方案领导者Borqs Technologies, Inc.(Nasdaq: BRQS)近日在印度移动大会上宣布,将推出基于高通骁龙Wear (Qualcomm® Snapdragon™ Wear) 平台和连接物联网模块的播思商用智能手表和追踪器系列产品,以及基于高通技术平台的开发板,帮助设备制造商面向印度消费者更快速地设计、开发和部署创新物联网解决方案。 为满足印度制造商和消费者的具体需求,该智能手表和物联网模块现已通过印度运营商的网
[物联网]
工业应用中传感器数字I/O模块的选择
  数字传感器以及由数字信号驱动的激励器的应用非常广泛,几乎所有现实中的变量(如温度、流量、压力、速度等等)测量中都可以找到数字传感器的应用,其数字输出有多种格式,本文首先根据输出信号和电路接口的类型对数字传感器分类,然后指出在选择与传感器接口的数字I/O模块时应注意哪些问题。   数字传感器与模拟传感器不同,模拟传感器的输出值是一个在整个输出范围内连续变化的值,而数字传感器的输出值只有两种,非 “0”即“1”。轻触开关(touch switch)就是数字传感器的一个最简单的例子,在未被按下时,轻触开关通常是一个阻抗无穷大的开路电路,而按下之后,就变成一个阻抗为零的短路电路。   在将数字传感器与数据捕获设备对接时,必须考虑一些可
[嵌入式]
新品发布 | BeamRazor™系列LiDAR线光源模块LE02 Pro
炬光科技全新推出BeamRazor™系列基于905nm波长边发射激光器(EEL)的升级版线光源脉冲激光雷达发射模组LE02 Pro。 该模块可应用于智能驾驶车载激光雷达、3D智能感知、激光测距以及机器视觉等领域。 产品主要性能参数 - 700W峰值功率 - 5ns激光脉冲 - 0.15°快轴准直发散角 - 11°或者25°慢轴平顶分布FOV 产品特色 - 炬光科技车规级玻璃光场匀化器 - 高均匀性慢轴分布(均匀度 85%) - 纳秒级高频短脉冲驱动电路 LE02 Pro是炬光科技BeamRazor™系列LiDAR线光源模块的最新升级版。与上一版LE02相比,新版产品全
[汽车电子]
新品发布 | BeamRazor™系列LiDAR线光源<font color='red'>模块</font>LE02 Pro
MSP430笔记2——时钟模块UCS
时钟信号的产生 时钟源: LFXT1CLK 外部低频振荡器 32.768KHZ XT2CLK 外部高频振荡源 4MHZ DCOCLK 内部数字控制振荡源(1MHZ、8MHZ、12MHZ、16MHZ已校准) VLOCLK 内部低耗低频振荡源 10KHZ 时钟信号: 时钟源经过分频得到 可对时钟源分频1、2、4、8 有些型号不支持XT2CLK UCS的操作说明 开机上电默认时钟: ACLK:XT1(无效时,低频REFO,其他DCO) MCLK:DOCCLKDIV(DOC分频得到) SMCLK:DOCCLKDIV //配置时钟代码 #include msp430.h int main(void) { WDTCTL
[单片机]
MSP430笔记2——时钟<font color='red'>模块</font>UCS
基于nRF2401光线收发模块和超声波技术的精确定位系统的研制
摘要:精确的位置信息是实现普适计算的要求。提出了基于nRF2401无线收发模块和超声波技术的精确定位系统的组成框架和定位算法;并给出了基于nRF2401无线收发模块组成传感器网络的MAC协议和超声波收发时间差的修正方案。 关键词:超声波定位 普适计算 无线电收发模块 媒体接入控制 随着计算机技术和无线电通信技术的发展,普适计算(Ubiquitous Computing)将被应用在各种领域,融入到人们的日常生活中,提高人们的生活质量和水平。普适计算的一个前题条件是必须获取普适计算对象的位置信息,这个位置信息依据普适计算的不同应用,可以是基于区域范围的,也可以是基于精确坐标的。 有很多定位技术都可以对物体进行定位,但
[网络通信]
全网同步监测装置GPS接口模块的改进设计与实现
    摘要: 在电力系统全网风步监测装置GPS接口模块设计中,要注意双口RAM相关程序设计以保证接口板与计算机总线数据交换的可靠性及利用接口板内部晶振构成守时钟以削弱对单个PPS秒脉冲的依赖性。就此给出了有实际应用价值的具体实现方案。     关键词: 全网同步监测装置 GPS接口模块 双口RAM PPS秒脉冲 晶振 电力系统全网同步监测装置 以基于GPS精确授时技术的PMU(相量测量单元)装置为基本组件,用于解决黑龙江东部电网窝电问题的区域稳定控制系统,是其在工程的一个具体应用。区域稳定控制系统自1997年3月投运以来,有效地提高了黑龙江东部电网的运行极限,同时也为全网同步监测装置和GPS精确授时技术在电力
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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