数字机顶盒EPG系统的涉及与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
receiveArry[i】_l(LastSecNum<i<256),否则转(3h
(3)若reeeiveArry[CurSecNum】=0,则receiveArry[CurS盼
Num】-l,receiveNum++,转4,否则,若receiveArry[CurSecNum】- l,转(2),继续接收section数据;
一5129—
罩提取出当前网络所管理的频道资源ym.desciptor 显示数据。_ProceTask
则根据消息内容执行不同的请表操作,若消息来自EPG_Filter- Task模块,解析EPG FilterTask任务送回的数据,并将有效节目 信息存入相应EPG数据库,通知EPG
EPG FilterTask任务:等待从EPG MainTask模块发来的 消息,根据消息内容控制底层硬件过滤和接收PSI/SI信息的 相应section,如果收到,就将段数据取出,放到缓冲区中,并 向EPG MainTask任务发送消息,告知EPG MainTask解析 section数据。
搜索完成 }searchlnfo; 具体算法如下: (1)searchflag=FALSE,receiveArry[i】=0(-1<i<256); (2)收取一段数据,解析出段号(CurSecNum)、最后段号
(LastSecNum)等,若receiveNum=0,则total=LastSecNum+l,
typedefstruct searchlnfo_t{ int total;//子表所含的section数 int receiveNum;//已接收的section数 char receiveArry[256];//各section的接收情况,O:尚未
收取,1:已经收取 bool searchflag;//搜索完成标志FALSE:未完成,TRUE:
(4)按照表、段、描述符的顺序层层解析section,将有效事 件信息添加到EPG数据库,转(5);
(5)若receiveNum>=total,searchflag=TRUE,停止搜索,否 则转(2)。
可见,该算法避免了原算法中接收每个section时因得到 大量并非含有要求的section_number的section所浪费的时间, 大大提高了拼接的效率。
1 EPG系统豹竣计
要实现EPG,最少需要网络信息表(NIT)、蛾务描述表 (SDT)和事件依息表(EIT)这3个袭。其中,NIT提供当前网络 的所有频点信患及网络自身的物理特性;SDT提供指定传输 滚孛豹业务数攒,蘩堑务名称、簸务搀貘者等;EIT捷雩凄瓣终 内播溺的部分溅全部业务所苞禽的事释信息,如缮件名称、起 始时间、持续时间等‘21,主要用于EPG菜单的显示殿预定。这 些表格通过解麓用模块从TS流PSI(program specific informa- tion)和Sl(service information)衰巾糖取。
“)接收本传送流当前/后续的EIT表,分析处理short_event_ de如ripmr、extended event descriptor等,将本业务当Ii{『和即将播 出的所有节目段的名称、起始时间、类型、内容描述、级别等信 息存入EPG数据库。
(5)接收本传送流的EIT节目单表,将本服务中所有节R段 的名称、起始时间、类型、内容描述、级别等信息存入EPG数据库。
(6)接收TDT得到当前时间,这时EPG信息就可以显示在 屏幕上了,EPG的分析提取线程继续收取其它SI信息。
(7)接收其它传送流的SDT、EIT表,解析处理后存入EPG 数据库。
EIT表的收取和解析如下: EITP/F表只需两个section就可以收齐,section0用来描述 当前事件,sectioni用来描述下一个事件例。而EIT schedule表 因携带多日的节目预告信息,数据量比较大,拥有的section数 目也较多,为了获取完整的表信息,在接收过程中,需要将同 一个表的不同section拼接起来,构成一个完整的表。所以,拼 接算法的优劣直接影响EPG数据的获取速度,进而影响用户 操作的响应时间。 数字视频广播中文业务信息规范中规定,NIT表section_ number是8位字段,子表中的第一个段的section_number标为 “0)【oo”。每增加一个具有相同的table_id和bouquet_id的段, section number就加l。段的收取通常从第0个section开始,
啊件信息的疑求
EPG—FilterTask瓴务 接收和解¨PSI/SI储息
过滤出请求的段
|l蓁翼剽L]11产鬟羹备 11勺撵作发IJ
送相如的II
I|数搬准备 就绪
数糍请求0b
l|
*发se送№段ctI;l i¥one)II|l鞘黻
皴据请求|I
.1r…1“’“
EPG—MainTask经势 解诉PSI/Si倍塞,并创建和维护EPG数据痒
本项目中,我们采用了一种新的拼接算法,大大提高了 EIT表的搜索效率。改进之处在于每次进行section过滤时并 不指定必须得到规定section number的section,即:不需要按 section递增顺序接收section,只要该section未接收过,就将它 所携带的信息存入EPG数据库。这里,我们定义了一个数据 结构searchlnfo来保存搜索过程中的相关信息:
图l EPG系统功能模块关系
EPG ProcessTask任务:用户交飘模块,等待用户操作,根
掇爰l产操箨露不弱,淘EPG MainTask发送褪应静漩惑请求分
段(section)数据,弗使雳EPG MainTask任务建立酶EpG数据
库实现当前节目事件信息的显示。
EPG MainTask任务:等待从EPG
依次收取后续section直到收到最后一个section,完成整个收 取过程。在收取过程中,如果收到的section不是期待的section 时,则丢弃,因为每次过滤出的section是随机的,不一定就是 所要求的含有特定section—number的section,重复搜索期望的 section而丢弃|一J样需要接收的有效section数据,造成搜索任 务的大量冗余操作,严重制约了EIT表的搜索速度。
第29卷第19期
V01.29 No.1 9
计算机工程与设计
Computer Engineering and Design
2008年lo月
Oct+2008
数字电视机顶盒EPG系统的设计与实现
刘 雪, 重保保 (鼹安电子科技失学事}算规学筑,陕西西安710071)
擒要:作为数字电视机顶盒的蹙要交互式韭务,电子节鼙指惫的好坏对杌项盒的功能和桂能有筹羹欠酶影魄,敌此设计 了一种高效的数字电视EPG系统.该系统在PSFSI信息接收过穰中,采用了与传统方法不同的收表顺序,针对EIT表section 较多的客观事实,提出了一种secfion拼接算法实现section随机且无丢失的快速接收和拼接。在存储过程中,采用树状链表 结构实现PS瞒l嗣级别信息的联合存储,方便了PSI/SI信息的查询.该EPG系统实现了电视节目馆息的快速直观展承. 关键谲:数字电槐;鼹矮盒;彀挚节霉耱南;节瓣专用镕惠;焱务信息 中图法分类每:TP37 文献标识码:A 文章编号:1000-7024(2008)19-5129-03
ndriform chain structure store the relevant information in the same level.This storage project facilitate searching PSI/SI information.
The system realizes the quick and intuitionistic display of program information. Key words:digital television;set-top box;EPG;PSI;SI
模块发的,若消息来自_PocFilterTask
ll过滤到(
O引 言
作为模拟电视向数字电视过渡期的解决方案,数字电视机 顶盒不仅能够使用户用模拟电视按收机观看数字电视节目,而 萎能够提供交照式业务,它可敬支持诸魏电子节鞠攘鬻(EPG)、 准褫频点撩(NVOD)、税频点播(VOD)、数据广播等交置式多媒 体应用。这些功能的实现以成劝接收和存储PSI/SI(节目专用 信.g/qk务信息)为基础‘11。为此设计了一种数字电视机顶盒EPG 系统,实现了PSUSI信息接收、解析、存储和显示的全过程。
Design and implementation of EPG system for digital TV STB
LILT Xue,WANG Bao-bao (College ofComputer,Xidian University,Xi’an 710071,China)
Abstract:As all important interactive service,the electronic program guide produces a great effect on the fimction and performance of a STB。So a high efficiency EPG system for digital TV STB is expounded.During the receiving process ofPSI/SI information,change the order ofreceiving EPG table,fof the fact that there are multitudinous section in EIT table,a section splicing method is designed SO that sections is gotten and spliced randomly,completely and quickly.During the storage process,the storage project which adopts de-
(1)输入频率、符号率、调制方式锁定频道。 (2)接收NIT表,获得网络信息资源。从表中的cable—de—
livery
信息列表,即各个传送流(TS)的频道参数,这包括频率、符号 率、调制方式,将其存入数据库。
(3)接收本传送流的SDT表,从表中的service~descriptor中 提取出节目名称和节目提供商名称,与数据库中相应的节目 号配对后,存入数据库。
或者EPG二
EPG_ProcessTask模块,
ll雯稿日期:2008.05.30 E-maih xuepiao_01@163。COlll 作者简介:刘霉0983--),女,河南焱阳人,硕士研究嫩,研究方向为数字阁像处理、数字电视技术; 士,教授。研究方向为数字图像处理。
王保保(1963一),男,陕西麟蜜入,博
EPG系统的实现霄3令关键接零:Sl数据豹接收与瓣掇、整 数据库的建立和EPG界面的显示,其中SI数据的接收与解析主 滕依靠硬件来实现,而sI数据库的遵藏和EPG界面的照示则是 宪全通过软件来发现的鼬。这3个关键技术在本项目巾相应的 使建麴F 3令功能模块({壬务)来实瑗。其糖互关系懿黧1掰示。
EPG—ProcessTask任务 利用EPG数据库完成节H
2 EPG数据的提取和解析
现在1I,场上大多数机顶盒产品通常采用PAT表一PMT 表一NIT表一SDT表--'EIT表的接收顺序来解析构造EPG。为 了缩短EPG响应时间,我们根据SI标准及机顶盒的解码流程, 采用从NIT表直接构造EPG的方法Ⅲ。概括说有3点:一是跳 过PAT和PMT表,直接接收NIT、SDT、EIT表,构造出EPG;二 是对于内容较多的EIT表,先收取当前传送流的EITP/F和EIT Schedule分析显示出来后,再收取其它传送流的EITP/F和EIT Schedule;三是一边收表,一边分析,一边显示。这样调整以 后,无论在时间上还是效率上都得到很大提升,给用户的使用 带来极大方便。具体收表方案改进如下:
(3)若reeeiveArry[CurSecNum】=0,则receiveArry[CurS盼
Num】-l,receiveNum++,转4,否则,若receiveArry[CurSecNum】- l,转(2),继续接收section数据;
一5129—
罩提取出当前网络所管理的频道资源ym.desciptor 显示数据。_ProceTask
则根据消息内容执行不同的请表操作,若消息来自EPG_Filter- Task模块,解析EPG FilterTask任务送回的数据,并将有效节目 信息存入相应EPG数据库,通知EPG
EPG FilterTask任务:等待从EPG MainTask模块发来的 消息,根据消息内容控制底层硬件过滤和接收PSI/SI信息的 相应section,如果收到,就将段数据取出,放到缓冲区中,并 向EPG MainTask任务发送消息,告知EPG MainTask解析 section数据。
搜索完成 }searchlnfo; 具体算法如下: (1)searchflag=FALSE,receiveArry[i】=0(-1<i<256); (2)收取一段数据,解析出段号(CurSecNum)、最后段号
(LastSecNum)等,若receiveNum=0,则total=LastSecNum+l,
typedefstruct searchlnfo_t{ int total;//子表所含的section数 int receiveNum;//已接收的section数 char receiveArry[256];//各section的接收情况,O:尚未
收取,1:已经收取 bool searchflag;//搜索完成标志FALSE:未完成,TRUE:
(4)按照表、段、描述符的顺序层层解析section,将有效事 件信息添加到EPG数据库,转(5);
(5)若receiveNum>=total,searchflag=TRUE,停止搜索,否 则转(2)。
可见,该算法避免了原算法中接收每个section时因得到 大量并非含有要求的section_number的section所浪费的时间, 大大提高了拼接的效率。
1 EPG系统豹竣计
要实现EPG,最少需要网络信息表(NIT)、蛾务描述表 (SDT)和事件依息表(EIT)这3个袭。其中,NIT提供当前网络 的所有频点信患及网络自身的物理特性;SDT提供指定传输 滚孛豹业务数攒,蘩堑务名称、簸务搀貘者等;EIT捷雩凄瓣终 内播溺的部分溅全部业务所苞禽的事释信息,如缮件名称、起 始时间、持续时间等‘21,主要用于EPG菜单的显示殿预定。这 些表格通过解麓用模块从TS流PSI(program specific informa- tion)和Sl(service information)衰巾糖取。
“)接收本传送流当前/后续的EIT表,分析处理short_event_ de如ripmr、extended event descriptor等,将本业务当Ii{『和即将播 出的所有节目段的名称、起始时间、类型、内容描述、级别等信 息存入EPG数据库。
(5)接收本传送流的EIT节目单表,将本服务中所有节R段 的名称、起始时间、类型、内容描述、级别等信息存入EPG数据库。
(6)接收TDT得到当前时间,这时EPG信息就可以显示在 屏幕上了,EPG的分析提取线程继续收取其它SI信息。
(7)接收其它传送流的SDT、EIT表,解析处理后存入EPG 数据库。
EIT表的收取和解析如下: EITP/F表只需两个section就可以收齐,section0用来描述 当前事件,sectioni用来描述下一个事件例。而EIT schedule表 因携带多日的节目预告信息,数据量比较大,拥有的section数 目也较多,为了获取完整的表信息,在接收过程中,需要将同 一个表的不同section拼接起来,构成一个完整的表。所以,拼 接算法的优劣直接影响EPG数据的获取速度,进而影响用户 操作的响应时间。 数字视频广播中文业务信息规范中规定,NIT表section_ number是8位字段,子表中的第一个段的section_number标为 “0)【oo”。每增加一个具有相同的table_id和bouquet_id的段, section number就加l。段的收取通常从第0个section开始,
啊件信息的疑求
EPG—FilterTask瓴务 接收和解¨PSI/SI储息
过滤出请求的段
|l蓁翼剽L]11产鬟羹备 11勺撵作发IJ
送相如的II
I|数搬准备 就绪
数糍请求0b
l|
*发se送№段ctI;l i¥one)II|l鞘黻
皴据请求|I
.1r…1“’“
EPG—MainTask经势 解诉PSI/Si倍塞,并创建和维护EPG数据痒
本项目中,我们采用了一种新的拼接算法,大大提高了 EIT表的搜索效率。改进之处在于每次进行section过滤时并 不指定必须得到规定section number的section,即:不需要按 section递增顺序接收section,只要该section未接收过,就将它 所携带的信息存入EPG数据库。这里,我们定义了一个数据 结构searchlnfo来保存搜索过程中的相关信息:
图l EPG系统功能模块关系
EPG ProcessTask任务:用户交飘模块,等待用户操作,根
掇爰l产操箨露不弱,淘EPG MainTask发送褪应静漩惑请求分
段(section)数据,弗使雳EPG MainTask任务建立酶EpG数据
库实现当前节目事件信息的显示。
EPG MainTask任务:等待从EPG
依次收取后续section直到收到最后一个section,完成整个收 取过程。在收取过程中,如果收到的section不是期待的section 时,则丢弃,因为每次过滤出的section是随机的,不一定就是 所要求的含有特定section—number的section,重复搜索期望的 section而丢弃|一J样需要接收的有效section数据,造成搜索任 务的大量冗余操作,严重制约了EIT表的搜索速度。
第29卷第19期
V01.29 No.1 9
计算机工程与设计
Computer Engineering and Design
2008年lo月
Oct+2008
数字电视机顶盒EPG系统的设计与实现
刘 雪, 重保保 (鼹安电子科技失学事}算规学筑,陕西西安710071)
擒要:作为数字电视机顶盒的蹙要交互式韭务,电子节鼙指惫的好坏对杌项盒的功能和桂能有筹羹欠酶影魄,敌此设计 了一种高效的数字电视EPG系统.该系统在PSFSI信息接收过穰中,采用了与传统方法不同的收表顺序,针对EIT表section 较多的客观事实,提出了一种secfion拼接算法实现section随机且无丢失的快速接收和拼接。在存储过程中,采用树状链表 结构实现PS瞒l嗣级别信息的联合存储,方便了PSI/SI信息的查询.该EPG系统实现了电视节目馆息的快速直观展承. 关键谲:数字电槐;鼹矮盒;彀挚节霉耱南;节瓣专用镕惠;焱务信息 中图法分类每:TP37 文献标识码:A 文章编号:1000-7024(2008)19-5129-03
ndriform chain structure store the relevant information in the same level.This storage project facilitate searching PSI/SI information.
The system realizes the quick and intuitionistic display of program information. Key words:digital television;set-top box;EPG;PSI;SI
模块发的,若消息来自_PocFilterTask
ll过滤到(
O引 言
作为模拟电视向数字电视过渡期的解决方案,数字电视机 顶盒不仅能够使用户用模拟电视按收机观看数字电视节目,而 萎能够提供交照式业务,它可敬支持诸魏电子节鞠攘鬻(EPG)、 准褫频点撩(NVOD)、税频点播(VOD)、数据广播等交置式多媒 体应用。这些功能的实现以成劝接收和存储PSI/SI(节目专用 信.g/qk务信息)为基础‘11。为此设计了一种数字电视机顶盒EPG 系统,实现了PSUSI信息接收、解析、存储和显示的全过程。
Design and implementation of EPG system for digital TV STB
LILT Xue,WANG Bao-bao (College ofComputer,Xidian University,Xi’an 710071,China)
Abstract:As all important interactive service,the electronic program guide produces a great effect on the fimction and performance of a STB。So a high efficiency EPG system for digital TV STB is expounded.During the receiving process ofPSI/SI information,change the order ofreceiving EPG table,fof the fact that there are multitudinous section in EIT table,a section splicing method is designed SO that sections is gotten and spliced randomly,completely and quickly.During the storage process,the storage project which adopts de-
(1)输入频率、符号率、调制方式锁定频道。 (2)接收NIT表,获得网络信息资源。从表中的cable—de—
livery
信息列表,即各个传送流(TS)的频道参数,这包括频率、符号 率、调制方式,将其存入数据库。
(3)接收本传送流的SDT表,从表中的service~descriptor中 提取出节目名称和节目提供商名称,与数据库中相应的节目 号配对后,存入数据库。
或者EPG二
EPG_ProcessTask模块,
ll雯稿日期:2008.05.30 E-maih xuepiao_01@163。COlll 作者简介:刘霉0983--),女,河南焱阳人,硕士研究嫩,研究方向为数字阁像处理、数字电视技术; 士,教授。研究方向为数字图像处理。
王保保(1963一),男,陕西麟蜜入,博
EPG系统的实现霄3令关键接零:Sl数据豹接收与瓣掇、整 数据库的建立和EPG界面的显示,其中SI数据的接收与解析主 滕依靠硬件来实现,而sI数据库的遵藏和EPG界面的照示则是 宪全通过软件来发现的鼬。这3个关键技术在本项目巾相应的 使建麴F 3令功能模块({壬务)来实瑗。其糖互关系懿黧1掰示。
EPG—ProcessTask任务 利用EPG数据库完成节H
2 EPG数据的提取和解析
现在1I,场上大多数机顶盒产品通常采用PAT表一PMT 表一NIT表一SDT表--'EIT表的接收顺序来解析构造EPG。为 了缩短EPG响应时间,我们根据SI标准及机顶盒的解码流程, 采用从NIT表直接构造EPG的方法Ⅲ。概括说有3点:一是跳 过PAT和PMT表,直接接收NIT、SDT、EIT表,构造出EPG;二 是对于内容较多的EIT表,先收取当前传送流的EITP/F和EIT Schedule分析显示出来后,再收取其它传送流的EITP/F和EIT Schedule;三是一边收表,一边分析,一边显示。这样调整以 后,无论在时间上还是效率上都得到很大提升,给用户的使用 带来极大方便。具体收表方案改进如下: