基于IntelPXA270平台的嵌入式流媒体播放器设计
时间:07-31
来源:互联网
点击:
播放器概述
近两年来,车载导航系统在国内悄然兴起,据专家预测,中国车载市场在启动初期需求约为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 的软件系统模块中,网卡的驱动是作为嵌入式系统内核的模块之一动态加载的。嵌入式中间件位于操作系统和应用程序的中间环节,提供了到程序模块、组件库的联接,系统的解码模块和播放器模块都是在它之上开发的。
模块的实现
系统实现可以被分为以下几个步骤:
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 是一个高效且可移
近两年来,车载导航系统在国内悄然兴起,据专家预测,中国车载市场在启动初期需求约为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 的软件系统模块中,网卡的驱动是作为嵌入式系统内核的模块之一动态加载的。嵌入式中间件位于操作系统和应用程序的中间环节,提供了到程序模块、组件库的联接,系统的解码模块和播放器模块都是在它之上开发的。
模块的实现
系统实现可以被分为以下几个步骤:
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 是一个高效且可移
嵌入式 USB LCD 显示器 Linux 解码器 相关文章:
- 支持汽车电子的嵌入式软件编程接口库设计(11-29)
- 用IXP网络处理器设计的数字家庭媒体中心系统 (02-12)
- 基于DSP和CPLD的智能相机系统设计与研制(08-19)
- 基于DM642嵌入式无线视频监控硬件设计 (10-15)
- 基于AD7892SQ和CPLD的数据采集系统的设计(11-10)
- 嵌入式向产业上游迈进(01-06)