嵌入式网络音视频解码平台播放系统的架构设计

2016-07-10 07:08杨锐刘宏杰周永录
电子技术与软件工程 2016年8期

杨锐 刘宏杰 周永录

摘 要:本文主要是基于Sigma嵌入式网络流媒体解码平台,设计一个可提供网络多媒体信息浏览、选择、解码、播放和显示的播放系统。

【关键词】Sigma嵌入式 音视频解码 播放系统

建立在嵌入式网络音视频解码系统硬件平台和系统底层固件实现高音质数字音频、高清晰数字视频、高分辨数字图像等本地或网络多媒体信息的浏览、选择、解码、播放和显示等功能的播放系统在软件设计上主要包括底层软件设计和应用层软件设计。

1 软件系统总体结构

有些高清播放机的应用软件设计主要分为主控模块,播放器模块,浏览器,系统管理模块,增值业务模块。本文设计的嵌入式网络音视频解码播放系统按照面向对象的设计方法,将系统功能分布到各个基于类的对象中,在对象之间的协同工作上执行程序。应用系统划分为以下模块:

(1)入口模块main,作为执行软件的入口函数,即C++程序通用的main函数;

(2)响应用户控制模块GuiControl, C++类,提供用于响应用户命令的各种功能;

(3)界面绘制模块GuiRender,C++类,实现界面绘制使用的底层功能;

(4)界面分析模块GuiParse,C++类,进行XML界面配置文件的读取和分析;

(5)媒体资源播放引擎MSPE,封装媒体资源解码播放相关功能,提供API接口。

本文设计的嵌入式网络音视频解码播放系统软件总体结构如图1所示。

以上模块中,入口模块、响应用户控制模块、界面绘制模块、界面分析模块是可执行文件的一部分。媒体资源播放引擎单独封装为动态链接库,实现媒体资源播放相关功能的封装性和重用性。

模块结构如图2所示。

2 底层软件设计

嵌入式网络音视频解码系统底层固件是各种应用系统的软件基础架构,主要由SMP8634 XOS、引导程序(Zboot)、ROM监控程序(Yamon)、Linux内核(Kernel)、硬件驱动程序(Drivers)和文件系统(Filesys)等几个部分组成,具有模块化、可裁减、可升级、可固化、可移植等特点。底层软件数据流如图3所示。

2.1 SMP8634/5 XOS

是SMP8634/5处理器的第一阶段引导程序,芯片出厂时已经固化在处理器芯片的ROM中,无须进行改动,其功能是提供上电复位后硬件的基本初始化以及FLASH所保存环境变量XENV状态、电源工作状态DRAM工作状态、ZBOOT存在状态的校验检查,为加载第二阶段ZBOOT引导程序做好准备。

2.2 Zboot

SMP8634/5处理器是采用Zboot作为第二阶段的bootloader,固化在硬件平台上的FLASH芯片中,完成硬件平台系统时钟、DMA控制器、UART、中断、GPIO等相关硬件的初始化,并加载运行YAMON或Linux内核的功能。本设计中,采用SIGMA公司提供的ZBOOT2.5.0-2.8.0源码包,通过SIGMA SMP8634/5专用开发环境进行编译,得到可执行代码,并烧写到硬件平台上的FLASH芯片中。

2.3 YAMON

YAMON是基于MIPS处理器板的ROM监控程序,在ZOOT引导后加载,作为MIPS处理器板的底层监控台,为MIPS处理器板提供内存操作、Linux内核加载运行、FLASH程序烧写、XENV环境变量设置等SHELL功能。本设计中,采用SIGMA公司提供的Yamon2.06源码包,通过SIGMA SMP8634/5专用开发环境进行编译,得到可执行代码,并烧写到硬件平台上的FLASH芯片中。

2.4 Linux Kernel

本设计中,Linux Kernel是指运行在硬件平台之上的嵌入式操作系统内核,采用固化在硬件平台上的FLASH芯片中,完成对整个硬件平台的控制管理和调度,并作为应用层软件的运行环境。采用的Linux内核版本号是2.6.15,通过对此内核的裁剪和配置,使之与硬件平台所具有的硬件芯片及接口相匹配。

2.5 Drivers

本设计中,Drivers指硬件平台上各类硬件部件的linux驱动程序模块,包括了SMP8634/5主芯片所含各个硬件模块的驱动以及外围接口芯片的驱动,可通过内核的配置和整个Linux 内核集成在一起,也可作为单独的驱动模块在运行过程中进行动态的加载和卸载。

2.6 Filesys

Filesys指支持linux内核以及应用层软件运行的文件系统,在本设计中,可针对不同需要,采用基于NOR FLASH 的CRAMFS文件系统、或基于硬盘/CF卡的EXT2/EXT3文件系统等多种形式

3 入口模块设计

3.1 模块概述

本模块是执行文件的入口函数,初始化用户控制设备(遥控器或键盘),初始化基于响应用户控制模块GuiControl类的对象gui,初始化媒体资源播放引擎MSPE,以便使用其API接口,读取存储在系统Flash中 App Params分区的配置参数,初始化音视频环境设置。在循环中接受用户命令,送交用户控制模块处理,检测全局变量显示信息标志m_info,调用GuiControl类接口函数显示更新播放信息,收到用户命令为POWER键值,则进行系统软关机或软开机。

3.2 算法和流程

如图4所示。

4 XML界面配置文件设计

界面在屏幕上的完整显示称为页面(OsdPage),列表、菜单、图片(Bitmap)、字符串(String)等界面元素是包含在页面中的项目,一个列表(List)可包含多个列表项(ListItem);一个菜单(Menu)可包含多个菜单项(MenuItem),一个菜单项又可有多个子菜单项。各个界面元素,又可根据用户命令产生事件(Event),并规定事件触发的命令(Command)。

因此,按照上述上下级包含关系设计XML结构,顶级XML节点可包含多个OsdPage节点,OsdPage节点可包含多个List节点、Menu节点、Bitmap节点、String节点。List节点可包含多个ListItem节点,Menu节点可包含多个MenuItem节点,也可包含Menu节点作为下级菜单,Item节点可包含Event节点。在OsdPage节点外,还有一个ScreenFormat节点,配置屏幕分辨率;多个Popup节点,配置弹出信息提示框;多个TextTable节点,配置信息表的显示,TextTable节点中又可包含多个textItem节点,配置信息表中的一行一格内容;多个Command节点,配置弹出信息提示框的显示;多个Slider节点,配置滚动条的显示。

XML结构如图5所示。

参考文献

[1]编辑部.IPTV与OTT的时代已经到来[J].家庭影院技术.2013,01.

[2]2014年1月份通信业经济运行情况[EB/OL].http://www.miit.gov.cn. 2014.03.03

[3]2018年全球IPTV用户数将达1亿[EB/OL].http://www.91.com.2013.12.26

[4]金伟.IPTV机顶盒现状与趋势的研究[J]. 电信科学. 2006,03.

[5]个人便携式媒体播放机(PMP)解决方案现状及未来展望[EB/OL]. http://club.tom.com/ item_154_107_0_1.html.

[6]郯道宗.选购高清播放机务须了解其技术本质[J].实用影音技术.2009,12.

[7]易勇平.嵌入式硬盘播放器设计与实现[D].北京:中国地质大学,2012.

[8]Sigma Designs Company.SMP8634 datasheet [EB/OL].http://www.sigmadesigns.com.

[9]刘波,王荣国,洪雨,赵明慧,刘丽娟.各种视频编码标准简介[J].北京:有线电视技术.2006,10.

[10]李伟强.嵌入式多媒体器的设计与实现[D].吉林:东北师范大学,2010.

[11]MPEG[EB/OL].http://baike.baidu.com/link?url=9_GT0CgRO-MhcQJXMyJn32289TBBZ1lrw780yHJC-oFC4Hh2HuFBFhE19Kvcq7G_.

[12]MPEG全揭示[EB/OL]. http://www.people.com.cn/GB/channel5/569/20000721/154432.html, 2000-12-29

[13]刘富强.数字视频与视频信息处理[M].北京:机械工业出版社.2004.4-106.

[14]林福宗.多媒体技术基础[M].北京:清华大学出版社.2003:269-312

[15]Information technology—Coding of audio-visualobject--part 2:Audio,ISO/IEC.2002.

[16]岑斌,肖钢,程振波,周涛明,流媒体技术综述[J].北京:中国有线电视,2003

[17]汤宝伟,王劲林,陈晓,李挺屹,一种基于嵌入式的流媒体播放系统的是基于实现[J],广播与电视技术,2003.

[18]嵌入式操作系统[EB/OL].http://baike.baidu.com/link?url=MLlaB2OgG0j1NkMqvpuVmPUo1nY5JzYm2qS-fVtBA4Qh0x_c78NsUHdN5QM9wltE

[19]魏晨曦.基于SMP8655的UPnP AV终端的设计与实现[D].广东:华南理工大学,2012.

[20]耿建平,何学良.基于SMP8653的高清播放机的设计与实现[J].电视技术,2012,36(5).

作者简介

杨锐(1974-),女,曾毕业于云南师范大学获得硕士研究生学历。现为云南农业职业技术学院讲师。研究方向为软件工程。

作者单位

1.云南农业职业技术学院 云南省昆明市 650031

2.云南大学云南省电子计算中心 云南省昆明市 6500223