一种接收电子节目指南数据的方法

文档序号:7929523阅读:174来源:国知局

专利名称::一种接收电子节目指南数据的方法
技术领域
:本发明属于数字电视
技术领域
,尤其涉及一种接收电子节目指南数据的方法。
背景技术
:现有的数字电视系统的前端采用了复用技术,即将一个节目的视频、音频和其他数据分别打包编码复用形成一个单服务传输流,然后与同一个频道(Channel)的其他单节目流二次复用,再加上各种业务信息,形成一个多节目的传输流,然后经过调制,通过电缆、地面传输或卫星传输到数字电视终端。数字电视终端通过调谐器解调,加密节目还需经过解扰器解扰,然后经过解复用器将不同节目的音视频流过滤出来,送到音视频解码器解码,最后经过D/A(数/模)变换,将用户选择的电视节目播放出来。现有的电子节目指南(EPG)数据中包括网络信息、服务信息、业务群信息、节目信息和时间信息等。电子节目指南的出现成为数字电视传输的一种特色,而为用户提供节目导航功能的电子节目指南的信息是和音视频信号一起复用在传输流里的,所以数字电视终端需要将节目导航信息从传输流里提取出来,形成能供用户浏览和查询的数据结构。电子节目指南数据包括网络信息表(NIT)、服务描述表(SDT)、业务群关联信息表(BAT)、节目信息表(EIT),时间日期表(TDT/T0T)等。NIT、SDT、BAT、EIT可以被划分为多个子表,每个子表又被分为最多256个段(section),数字电视终端对section数据有一个组合过程,将属于同一个子表的section数据给合在一起,然后再按照子表的数据结构,填入相应的section数据到子表的数据结构中。Section的组合通常是由数字电视终端的硬件过滤器来完成的,组合时首先设置好通道的PID(包识别码),以及在过滤器设置中所需的table—id(表标识符),transport_stream_id(传输流标识),section—number(当前段号码)等信息,然后打开过滤器和通道,不同的表之间可以通过表标识符进行区分,不同的Section数据可以通过PID进行区分,从传输流包中过滤出属于同一PID的section数据,这样就将属于一个PID的Section数据过滤在一起,属于另一个PID的是section数据过滤在一起,硬件芯片完成从传输流包到section的过滤。当数字电视终端接收到section后,硬件产生中断,此中断服务程序在程序中也被称为回调程序。该回调程序得到一个缓冲区(buffer)的起始地址和长度,由软件对该buffer进行对信息表的解析,将解析得到信息填入到固定的数据结构中,提供给EPG应用。如上所述,现有技术中对section中数据的解析是在回调程序里完成的。由于两个section之间的时间间隔不能少于25ms(见SI标准的en300468的5.1.4),现有技术对section数据的处理过程是一边接收一边解析,而两个section之间的时间不能少于25ms,故机顶盒至少需要25ms的时间来处理一个section,经过至少25ms之后再接收第二个section并对其进行处理,但是SI信息的发送数据量是较大的,一般发送速度较快,如每10ms发送一个section数据,用以上的方法来处理可能在处理过程中错过很多section,从而需要频繁等待下一轮数据,导致接收的效率低下,接收时间成倍增加。
发明内容本发明的目的在于提供一种接收电子节目指南数据的方法,旨在解决现有技术中存在的电子节目指南数据接收时间过长的问题。本发明是这样实现的,一种接收电子节目指南数据的方法,所述的方法包括a、接收EPG信息表的section,将所接收的section存储到存储器中;b、当所述EPG所有信息表的section全部接收完毕后,对所接收的EPG进行解析。其中步骤a之前还包括a0、为接收所述EPG信息表的section分配系统资源;其中步骤a具体包括al、调用Section回调程序,逐一接收某一EPG信息表中各个子表的Section,将所接收的section存储到所述存储器中;a2、当该信息表各个子表的section全部接收完毕后,逐一接收所述EPG其他信息表各个子表的section,将接收的section存储到所述存储器中,直至所述EPG全部信息表的所有section接收完毕。其中步骤b还包括当所述EPG所有信息表的section全部接收完毕后,释放系统资源。所述的系统资源包括通道和过滤器。所述的信息表为下列各项中的一项或者多项网络信息表、服务描述表、业务群关联信息表、节目信息表,时间日期表。所述的存储器为缓冲池。步骤b之后还包括c、将解析得到的数据填入到固定的数据结构中,提供给EPG应用。本发明克服现有技术的不足,将对电子节目指南数据的获取过程分成接收数据和解析数据两个步骤来完成,首先只接收各个信息表的section,将接收的section存储到存储空间;在全部信息表的所有section都接收完毕之后,释放系统资源;然后再执行对信息表的解析过程,从而得到所需的EPG数据。本发明提供的技术方案在接收EPG数据的过程中,避免了频繁等待未接收到的section的情况,同时由于对section进行批量解析,也縮短了对所有section数据的解析时间,加快了整个的处理EPG电子节目指南信息的过程。图1是本发明实施例流程图。具体实施例方式本发明提供的技术方案是将对电子节目指南数据的获取过程分成接收数据和解析数据两个步骤来完成,首先只接收各个信息表的section,将接收的section存储到存储器中;在全部信息表的所有section都接收完毕之后,释放系统资源;然后再执行对信息表的解析过程,从而得到所需的EPG数据。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并4不用于限定本发明。本发明实施例提供的接收EPG的方法具体流程如图1所示,包括如下的步骤1、为接收EPG数据分配系统资源;2、检测到数据到达,调用Section回调程序,接收过滤器传输的Section,—个Section的数据完全被接收,回调程序将其存储到缓存中;3、重新调用Section回调程序,接收下一个Section的数据,一个Section的数据完全被接收,回调程序将其存储到缓存中;4、当前信息表的全部section接收完毕?如果是,转步骤5,否则转步骤3;5、接收其他信息表的section,调用Section回调程序,接收过滤器传输的Section,—个Section的数据完全被接收,回调程序将其存储到缓存中;6、重新调用Section回调程序,接收下一个Section的数据,一个Section的数据完全被接收,回调程序将其存储到缓存中;7、所有信息表的全部section接收完毕?如果是,转步骤8,否则转步骤5;8、释放系统资源;9、对接收的section进行解析,将解析得到的数据按照固定的数据结构提供给EPG应用。其中步骤1具体包括101、在解复用器中分配未使用的通道;102、为步骤101所分配的通道注册相应的回调程序(此程序在监测到数据到达时被调用)103、为步骤101所分配的通道分配缓存资源;104、为步骤101所分配的通道设置PID值,此PID值为过滤器接收传输流的PID值;105、为步骤101所分配的通道分配过滤器。具体应用本发明提供的技术方案时,在接收EPG数据的过程中,可能出现由于网络状态不好,接收的时间过长的情况,为了节省系统资源,可以对上述接收EPG所有信息表的section设置一定的时间,当接收时间超过预先设定的时间时,强制停止接收过程,并释放占用的资源。本发明提供的技术方案中,数字电视终端每接收一个section就将其存储到缓存内,待EPG所有的section全部接收完毕后,再对section进行解析。为了更有效的利用内存,本发明实施例中采用了缓冲池的方式来更合理的利用内存,防止随机进行内存分配而出现的大量的小块内存无法利用的情况,提高内存的利用效率。对所有不同的信息表采用一致的数据结构(即内存池),包含起始地址、长度、末尾地址,总的Section个数等内容。每个内存池最多存放256个Section,在多子表的情况下,一个完整的信息表包含多个内存池,每个内存池存放一个子表。内存池的初始大小根据信息表的种类各不相同,如NIT表、BAT表、SDT表可以为20KB;0SDT表可以为40KB。本发明实施例中,采用如下的方法判断信息表某一子表所有的section是否到达当缓冲池内的Section总个数等于对应子表的最后段编号(lastSectionN咖ber)时,表示该子表已经被完全接收。当EPG所有的section全部接收完毕后,进行数据的解析,具体的解析过程与现有技术相同,此不赘述。经过解析之后得到的数据填入到固定的数据结构中,提供给EPG应用,即将数据赋值给数据结构中的对应的变量,便于EPG应用使用这些变量,完成相应的功能。对于多section的信息表(包括网络信息表NIT、服务描述表SDT、业务群关联信息表BAT、节目信息表EIT等),解析后存储的信息可以采用一致的单链表存储结构,采用一致的单链表存储结构可以很好的节约存储空间,并且更新EPG也很方便。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。权利要求一种接收电子节目指南数据的方法,所述的方法包括a、接收EPG信息表的section,将所接收的section存储到存储器中;b、当所述EPG所有信息表的section全部接收完毕后,对所接收的EPG进行解析。2.根据权利要求1所述的方法,其特征在于,其中步骤a之前还包括a0、为接收所述EPG信息表的section分配系统资源;3.根据权利要求1所述的方法,其特征在于,其中步骤a具体包括al、调用Section回调程序,逐一接收某一EPG信息表中各个子表的Section,将所接收的section存储到所述存储器中;a2、当该信息表各个子表的section全部接收完毕后,逐一接收所述EPG其他信息表各个子表的section,将接收的section存储到所述存储器中,直至所述EPG全部信息表的所有section接收完毕。4.根据权利要求1所述的方法,其特征在于,其中步骤b还包括当所述EPG所有信息表的section全部接收完毕后,释放系统资源。5.根据权利要求4所述的方法,其特征在于,所述的系统资源包括通道和过滤器。6.根据权利要求1所述的方法,其特征在于,所述的信息表为下列各项中的一项或者多项网络信息表、服务描述表、业务群关联信息表、节目信息表,时间日期表。7.根据权利要求1所述的方法,其特征在于,所述的存储器为缓冲池。8.根据权利要求1所述的方法,其特征在于,步骤b之后还包括c、将解析得到的数据填入到固定的数据结构中,提供给EPG应用。全文摘要本发明适用于数字电视
技术领域
,提供了一种接收电子节目指南数据的方法,所述的方法包括a、接收EPG信息表的section,将所接收的section存储到存储器中;b、当所述EPG所有信息表的section全部接收完毕后,对所接收的EPG进行解析。本发明提供的技术方案在接收EPG数据的过程中,避免了频繁等待未接收到的section的情况,同时由于对section进行批量解析,也缩短了对所有section数据的解析时间,加快了整个的处理EPG电子节目指南信息的过程。文档编号H04N5/00GK101771803SQ200810241678公开日2010年7月7日申请日期2008年12月26日优先权日2008年12月26日发明者陈志申请人:深圳Tcl新技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1