手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

基于数字电视机顶盒的交互式中间件设计与实现

吴彬,陈梅,黄长平| 数字电视,机顶盒,中间件| 2010-11-14
513 收藏
分享到: 
每日精选
热门文章
热门方案

【中心议题】
    * 介绍了
数字电视机顶盒与中间件
    * 设计了基于数字电视机顶盒的交互式中间件
【解决方案】
    *
基于长虹Sti7109机顶盒设计和实现
    * 通过中间件可以实现广播方式下的单向和双向交互功能

1
数字电视机顶盒软件架构介绍

数字电视机顶盒除具有基本的信号转换功能外,且已成为一种嵌入式计算设备,具有完善的实时操作系统,提供强大的CPU计算能力,用来协调控制机顶盒各部分硬件设施,并提供易操作的图形用户界面。机顶盒的软件结构大致可分为三层:操作系统及硬件驱动层、中间件软件系统层、应用程序层。其层次结构如图1所示。

图1

2交互式中间件(MRP)原理与实现

交互处理引擎(MRP)是为了实现广播环境下的交互式服务,其原理是通过在普通广播电视节目中添加交互信息,在机顶盒端对所收到的信息进行解码播放,按照要求将同步信息和音视频叠加显示在电视机上,用户根据同步信息提示来完成交互操作,从而实现节目和观众的互动。下图2MRP运行流程图,由图上可以看出MRP主要有以下几大模块构成:

图2

1)同步内容管理模块:同步内容管理是MRP中间件的核心部分,主要负责同步内容管理控制并接收、解析从前端发送过来的数据广播,它是以事件驱动的单任务形式运行在系统中的,并一直处于监测状态,一旦监测到相关MRP触发事件,立即处理。它需要有一个合作进程,即DVBApplSectionFilterMonitor任务负责接收数据广播的section数据,该合作进程由机顶盒厂家提供。

2)同步内容播放模块:同步内容播放模块是展示模块,即用户能看到效果的模块,它是将同步内容管理模块解析后的数据有效地在OSD层上进行显示的过程。它的实质是在普通的数字电视基础上增加了一个实时弹出信息框的过程,其目的主要是对正在播放的电视内容进行辅助性说明,即视频注解,增强对电视内容的理解,该模块负责交互功能。

3)平台接口层:该部分接口对内主要是完成和机顶盒底层函数的对接从而实现图形之类的显示操作,对外是为了方便MRP在不同型号机顶盒之间的移植操作。

2.1 基于数字电视机顶盒的交互式中间件工作原理分析

下图为MRP软件内部结构图,在整个运行过程中,MRP主要完成的工作包括中间件的初始化、系统的运行监控、同步信息接受、解析、储存,同步信息播放及交互操作,具体如下:

图3

2.1.1 基于数字电视机顶盒的交互式中间件初始化

机顶盒开机启动之后,监控函数(main函数)开始运行,它是机顶盒启动时的唯一入口,它会执行机顶盒的一些系统初始化和与硬件相关的启动工作,MRP的任务也是在这个时候被初始化。

2.1.2同步信息接收

初始化完成,进入到MRP主入口,此时循环监听MRP事件的程序一旦监听到了请求事件就会通知底层接收数据,底层硬件接收到请求同步信息(section)就会告诉数据接收部件,这样数据接收部件就会将同步信息以section的方式发给MRP中间件的同步管理模块进行接收。MRP中间件提供一个接口MRP_HandleAllData(),由合作进程DVBApplSectionFilterMonitor任务调用,实现数据接收,终端开辟一段内存对接收到的数据重组还原,其数据流程如图4所示。

图4

2.1.3同步信息解析与存贮

同步管理模块解析完同步信息后,相应的信息存于同步信息缓冲区,它是一个树型结构。它既是同步内容管理模块的输出项也是同步内容播放模块的输入项,同步内容播放模块播出的同步信息就是直接从那里提取的。

2.1.4同步信息显示与交互

同步内容播放模块搜索到相关同步信息时,就会调用相关OS层显示接口进行同步信息显示。该部分显示内容比普通电视增加了同步可交互功能。显示的信息一般用红、黄、蓝、绿4种彩色键进行标注,用文字、图片、直线、椭圆、圆、矩形等进行显示。同步内容播放模块可以接收遥控器的按键触发事件,并根据遥控器按键调用按键处理接口进行处理。

上述显示的同步信息,必须在一定的规范下进行编辑和操作,在视频通过广播网发放到机顶盒之前,必须将原始的TS流经过同步信息编辑,加入符合要求的同步信息,才可以被中间件获取和显示,不同的同步信息可以实现不同的交互操作,比如在线答题,问卷调查、在线查询等服务。

2.2 基于数字电视机顶盒的交互式中间件实现

2.2.1基于数字电视机顶盒的交互式中间件同步内容管理模块

当同步信息到达机顶盒时,该模块主要实现同步内容管理控制并接收、解析从前端发送过来的数据广播,具体如下:

1)同步内容控制

负责监听是否有MRP触发事件,该事件包括:请求链接数据管道接收MRP同步内容、释放MRP数据接收管道。主要函数为MRP_SNY_Monitor

MRP_SNY_Monitor{//一直监听有没有MRP_dataControl()发的消息

while1){

//收到MRP触发事件,MRP_cmd message为以数据结构

MRP_cmd messagewaitmassege();

ifMRP_cmd message){

switchMRP_cmd message->MRP_cmd_type)//判断命令类型

case MRP_REQUEST_SNYINF://请求接收同步内容设置filter参数,链接数据管道

break

case MRP_STOP_SNYINF://停止请求接收同步内容释放filter

defaultbreak

release MRP_cmd

MRP_SNY_Monitor是在main()中对MRP中间件创建任务后就会一直循环运行,直到关机才停止。它会一直搜索有没有MRP_dataControl()发送的MRP触发事件,当发现有触发事件时,则会判断是请求接收还是停止接收同步信息。并通知数据接收部件接收同步数据。

2)同步信息接收

MRP_dataControl发送的消息为同步内容请求时,MRP_SNY_Monitor会通知数据接收部件接收同步信息,此时MRP_HandleAllData()会被调用并接收广播发来的section数据,section数据以参数方式传入接收函数从而实现了数据接收。

void MRP_HandleAllDataBYTE*SectionData)/*接收同步信息section*

ifSectionData0]==MRP_SYN_TABLEID){

indexGet2Byte(&SectionData3]);

if0xfffe==index

同步显示标记的相关处理

else

MRP_ParseSynInfsynNumSectionData);//调用解析同步信息函数

else return

数据以section表格数据下发,根据内容不同可能为一个或多个section。接收的数据包括两种:同步内容数据和场景显示标记,同步内容数据包含了要显示的内容,收到后要解析出来,而场景显示标记只是告诉播放模块可以显示了。

3)同步内容解析

MRP_ParseSynInf()负责对接收到的同步信息进行解析,解析后的同步信息存储在缓存中等待播放。解析后的数据以树形结构存在与结构体中,具体如下图5

图5

2.2.2基于数字电视机顶盒的交互式中间件同步内容播放模块

播放模块负责对解析后的同步信息进行显示,在中间件运行的过程中,该模块会不断地循环运行,在本项目中这个接口是MRP_Service(),其框架代码如下:

MRP_Service()

初始化代码,发送请求同步信息的消息

while1

if(接收到了同步信息)//有同步信息的电视节目播放,

……

MRP_DrawPane();//显示主或子信息框,包括文字、按键等信息

MRP_Key_Handle();//处理观众的交换响应

……

……//双向机顶盒还可以调用浏览器、回传数据

else

//正常电视节目播放

用户接口模块调用MRP_Service()播放接口后,首先初始化所需的变量并发送请求接收同步信息的指令,接着不断循环判断接收到的电视节目是否有同步信息需要显示。当有同步信息需要显示时,就转向有同步信息的电视节目播放,否则就会按照原始正常的情况显示电视节目。

对于同步信息的显示,一般分为主显示和次显示,所谓主显示就是当有同步信息时,在当前的电视节目上以提示的方式提醒用户当前节目有同步信息,此时,当用户按照提示进行操作时,将会转到同步信息的次显示画面,即同步信息的内容部分。

3基于数字电视机顶盒的交互式中间件测试

本测试在STi7109机顶盒上进行,使用的TS流不仅含有原始的音视频等信息,还含有经过编辑处理后的同步信息内容,TS流的加工流程如下图6所示:

图6

含同步信息的TS流经过复用器和调制器等设备在电视上显示,最终的效果图如下图7和图8所示:

图7

4结束语

该中间件是基于长虹Sti7109机顶盒上设计和实现的,通过该中间件可以实现广播方式下的单向和双向交互功能,响应速度比较快,且不会影响正常的播放功能。但对于网站的浏览,由于机顶盒的硬件性能比较低,且受网络和机顶盒中浏览器的影响,其响应速度相对慢一点,总体上说可以满足多数业务需求。

点赞

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号