一种数字电视EPG的高效实现方法*

2010-06-25 09:38解玉芳郭里婷苏凯雄
电视技术 2010年4期
关键词:机顶盒缓冲区进程

解玉芳,郭里婷,苏凯雄

(福州大学 物理与信息工程学院;福建省数字电视工程研究中心,福建 福州 350002)

1 引言

EPG(Electronic Program Guide)是采用电子化手段进行数字电视节目预告信息传送的一种常用方法。在符合MPEG-2标准的TS流中插入按照DVB标准定义的业务信息,在终端通过机顶盒的相关软件对信息进行解析,并以直观字符或图表显示在电视屏幕上,方便用户迅速地搜索节目和了解节目信息[1]。因此,EPG是数字电视的基本业务之一,EPG信息的完整性、显示速度以及占用的存储空间一直是数字电视终端设计中的一个难点。笔者针对这些问题,提出了一种新的改进设计方法。

2 EPG的总体结构

事件信息中提供了节目表的内容,根据EIT及其他表所提供的信息,可以实现各种EPG功能,如按节目类型检索、按时间检索及对某类节目的锁定等。

现在市场上的机顶盒产品通常采用PAT表→PMT表→NIT表→SDT表→EIT表的顺序解析构造EPG、搜索节目的方法[2]。基本上采用的是本地应用方案,在技术上包含两个部分,一是播出前端的EPG编辑器,二是用户端接收机相应的控制软件,即EPG信息和EPG应用。在发送端,通过EPG编辑系统编辑、动态生成和播放EPG信息;在接收端,通过EPG接收软件平台接收、分析、处理系统业务信息(SI),完成EPG信息接收、显示与控制,为用户提供电子节目指南信息,将相关的节目信息显示到电视屏幕上[3]。EPG的软件总体结构如图1所示。

图1 节目指南功能的软件总体结构

在上述EPG实现过程中,包括3个关键技术,即EIT表数据的滤取、EIT信息的分析和EPG界面的显示。其中EIT表数据的滤取主要依靠解复用芯片来实现,而EIT信息的分析和EPG界面的显示则是通过软件来实现的[4-5]。这3个过程的相互关系如图2所示。

图2 EPG系统主要功能模块的关系

Usif_Task进程为用户交互模块,响应用户的操作,如用户要求换台则向EPG_Builder发送相应的消息请求分段数据,如果要求显示则使用EPG_Builder进程所建立的EPG数据库实现当前节目事件信息的显示。

EPG_Builder进程等待来自Usif_Task或者Filter-Moniter模块的消息。若消息来自Usif_Task模块,则根据消息内容执行不同的申请滤表操作;若消息来自Filter-Moniter模块,则解析FilterMoniter任务送回的数据,并将有效节目信息存入相应的EPG数据库。

FilterMoniter进程等待来自EPG_Builder模块的消息,根据消息内容控制底层硬件过滤和接收相应的PSI/SI信息,将数据放入缓冲区中,并向EPG_Builder进程发送消息,通知 EPG_Builder解析数据[6]。

3 EPG的实现方法

3.1 EPG信息的滤取

为了方便用户的随机接入,SI数据采用重复发送方式。硬件模块PTI有两个对象,即Slot和Filter。Slot用来过滤PID值,得到相应的TS包;Filter用来过滤Table_Id,得到相应表信息。通过滤波申请函数对滤波器模式、PID、Table_Id等参数进行设置,再进行过滤,从而得到需要的分级分组[7]。

EPG在滤波方面最常见的问题就是漏包、丢失数据,这是滤波速度比分析速度快、数据量大时来不及分析造成的。改进做法是开辟一个较大的缓冲区,底层由一个较高级的进程负责数据滤波。滤到的数据段如果是EIT分段,首先判断是否为新的分段,若是新的分段,则由暂存区拷贝到环形缓冲区中,相应的写指针往下移,收到分段后再往下移。同时由分析数据进程分析数据,将读指针往下移,根据写与读指针来控制分析与滤波两个进程。如果缓冲区剩余空间已经不够再写入一段数据,则将写指针指向缓冲区首地址,从头开始往下写。

同时,将滤波进程优先级设为高,可以将分析进程打断。只有当缓冲区存满,才会暂时将滤波通道关闭,这样做不易漏包与丢失数据。并且,由于只有新的分段才能存入缓冲区,就不需要对重复的事件进行分析以及遍历,从而可以在EPG信息的存储模块中将遍历去除,提高效率。其结果是,无论在EPG信息的完整性上还是在效率上都得到很大提升,给用户的交互使用带来方便。

3.2 EPG信息的存储

由于接收端的EPG系统运行于操作系统中,用户对其速度有一定的要求,如果接收端的SI数据组织不够合理,则将对EPG系统的整体性能产生较大影响。为了方便快捷地实现数据检索,前端系统是按照“网络-传输流-业务-事件”的分层顺序来组织SI数据的。因此,在接收端也采用这样的分层结构,来构成从传输流标识符到业务标识符、事件标识符的树状结构,每级都采用ID进行存储,从而便于查找,提高检索效率。

在机顶盒中,EPG信息置于本地数据库,为了使用户在浏览EPG信息时快捷方便,通常采用固定数组形式存储事件信息,并给每个事件开辟了固定的空间。但由于每个事件的长度不一样,每个事件的空间又是按照事件的最大长度来开辟的,这样则会导致内存空间的浪费。

本文的改进算法中,内存采用链表形式管理,并根据其实际长度分配空间存储,释放后进行碎片整理收回空间,每个事件根据其实际长度存储,则同样的内存条件下可存的事件更多。这种方式有效地利用了嵌入式系统有限的内存空间,管理更灵活。

3.3 EPG信息的显示

用户所看到的画面是电视节目图像和EPG界面的叠加,画面从前到后分为3层,依次为OSD层、视频层和静帧层。OSD层是在图像上叠加文字显示,EPG画面在OSD层上构建,由许多EPG图形元素(如文本框、选择按钮等)叠加而成[8]。视频层为当前正在收看的电视节目图像,静帧层为EPG应用程序菜单的背景图像。用户依据EPG界面显示,通过遥控器或机顶盒的前面板按键来进行各项功能操作,Usif_Task响应这些操作,同时向EPG_Builder发送消息,触发其相应的处理。

通常做法是通过检索EPG数据库得到所需的事件进行显示。为提高显示速度,所做的改进是在分析完数据后马上核对该节目是否为当前要显示的,若是,则直接调用一个回调函数发送消息至上层,要求立即显示,这样就节省了将该节目存至EPG数据库,再从事件库中查找该节目的时间,从而使显示速度变得更快。

4 小结

笔者从EPG信息的完整性、显示速度和存储空间的角度出发,提出了一种基本的EPG实现方案,更高效地实现了PSI/SI信息接收、分析、处理和显示的整个过程。实践表明,采用以上方案,该EPG系统能够有效地节省空间,并能更完整地显示出EPG信息,为进一步开发交互式多媒体、网络数字电视机顶盒奠定了基础。

[1]苏凯雄,郭里婷.数字卫星电视接收技术[M].北京∶人民邮电出版社,2002.

[2]JY/Z 174-2001,数字视频广播中文业务信息规范[S].2001.

[3]WHITAKER J.数字技术:数字电视原理与应用[M].邱绪环,乐匋,徐孟侠,等,译.北京:电子工业出版社,2000.

[4]MONDWURFSW.LowcostMPEG-2multiplexingschemeformultimedia and digital TV distribution systems[J].Devices Circuits and Systems,2004(1):3.

[5]周晓,于鸿洋.高清/标清兼容的数字电视接收软件的设计与实现[D].成都∶电子科技大学,2007.

[6]刘雪,王保保.数字电视机顶盒EPG系统的设计与实现[J].计算机工程与设计,2008,29(19):5129-5130.

[7]刘浩,王保保.DVB-C机顶盒软件接收系统的研究[D].西安∶西安电子科技大学,2006.

[8]李颖,甘育裕.新型数字机顶盒的GUI系统研究与设计[J].电视技术,2007,31(5):40-42.

猜你喜欢
机顶盒缓冲区进程
债券市场对外开放的进程与展望
机顶盒上别盖布
安全使用机顶盒注意五点
改革开放进程中的国际收支统计
基于网络聚类与自适应概率的数据库缓冲区替换*
有线电视高清数字电视机顶盒测试系统的构建
What is Apple Watch All About?
关键链技术缓冲区的确定方法研究
初涉缓冲区
社会进程中的新闻学探寻