能够使数字电视接收机以提取的格式存取系统信息的应用程序编程接口的利记博彩app

文档序号:7587196阅读:238来源:国知局

专利名称::能够使数字电视接收机以提取的格式存取系统信息的应用程序编程接口的利记博彩app
技术领域
:本发明的
背景技术
本专利申请要求享有1998年10月30日申请的美国临时专利申请No.60/106,508、1998年11月12日申请的美国临时专利申请No.60/107,965以及1998年12月23日申请的美国临时专利申请No.60/113,444的权益。本申请文件中使用下列缩写A/V—音频/视频API—应用程序编程接口ATSC—高级电视系统委员会BAT—一揽子(Bouquet)相关表格(DVB)CA—条件准入CAT—条件准入表(MPEG)CNN—有线新闻网DAVIC—数字音频-视频协会DCII—GIDigicipherII(tm)DIT—数据信息表DTV—数字电视DVB—数字视频广播DVS—数字视频标准EIT—事件信息表(DVB/ATSC)EMM—权利管理消息EPG—电子节目指南ETT—扩展文本表格(ATSC)FCC—联邦通信委员会GIC—通用仪器公司GPS—全球定位卫星ID—标识符IP—互联网协议JMF—Java介质框架(SunMicrosystems)MGT—主要的指南表格(ATSC)MPAA—美国活动图像协会MPEG—活动图像专家组MSP—消息流协议NIT—网络信息表(DVB)NVOD—接近视频点播PID—信息包标识符PMT—节目变换表PSI—节目特定信息PSIP—节目和系统信息协议(ATSC)RRT—费率区域表(ATSC)SCTE—有线电视工程师协会SDT—服务描述表(DVB)SI—系统信息STT—系统时间表TDT—时间日期表(DVB)TOT—时间偏置表(DVB)TS—传送流TSDT—传送流描述符表(MPEG)UML—统一的建模语言URL—一致的资源定位器VCT—虚频道表VSB—残留边带本发明为接入节目和系统信息提供API,所述的节目和系统信息描述了MPEG-2TS的安排和内容。这个也称为服务信息的信息一般称做系统信息(SI)。现在将已经使用的不同格式的SI标准化。这些格式包括最初的ATSCA56标准,它是DigiCipherII(DCII)MSP的子集,用于卫星和有线电视传输,新的ATSCPSIP用于地面和有线电视DTV,有线电视SI如DVS(SCTEDVS234用于数字有线电视的带外传送的服务信息),以及DVBSI标准。如也可以使用其知识产权属于通用仪器公司,即,本发明的受让人的DigicipherII标准中的专用数据。从ATSC可得到的1997年12月23日的Doc.A/65“用于地面广播和有线电视的节目和系统信息协议”中描述了ATSC标准。从欧洲广播联盟或欧洲电信标准协会可得到的EN300468V1.3.1(1998-02)的“数字视频广播(DVB);DVB系统中服务信息(SI)的规范”描述了DVB标准。用户终端经过网络接收SI。也称为集成的接收机—译码器(IRD)或用户终端的机顶终端是接收和译码用于电视机显示的电视信号的装置。例如,可以经过卫星、经过电缆线路或借助于地面广播提供这些信号。通过使用现代机顶技术,已经提出了各种应用,或者当前可获得的各种应用,这些应用包括视频点播(VOD)、音频点播、每次观看付费、交互式购物、电子商务、电子节目指南、互联网浏览器、邮件业务(例如,文本电子邮件、话音邮件、音频邮件和/或视频邮件)、电话业务、股票机、天气预报、旅游信息、游戏、赌博、银行、购物、选举以及其它项目。这些应用也可能实现互联网连通和可能的基于互联网的电话。该机顶功能能够通过专门的硬件和软件实现。例如,应用程序可以经过网络由终端下载、本地加载(例如经过智能卡)、或在制造时安装。然而,接收SI的用户终端必须知道正在使用哪种格式,以及提供对于该协议特定的相应处理。因为它必须开发用于存取SI的终端的特定代码(软件)。这样,终端的成本、复杂性和计算要求增加了,并且影响了对于终端软件的开发。由于趋势朝向集成宽带分配网络、电话网络和计算机网络如互联网和家网(in-homenetwork),以及由于要求能够提供给观看者丰富感受的新型应用,使得上面的问题更加突出。因此,最好提供一个系统用于存取兼容于不同SI格式的数字传送流或其它数据流的SI。该系统应该从不同的格式中提取SI的公共部分以提供“提取的SI”。“提取的SI”应该以这样一种提取的级别提供对应用程序有用的SI的存取,该应用程序不必知道使用什么SI标准格式将信息提供给接收机。当系统试图在不同的环境如DVB、SCTE和基于ATSC的系统运行时,它不需要应用程序具有特定的代码(软件)。该系统应该适应于使用不同格式提供的SI,包括MPEG节目特定信息(PSI)、数字视频广播服务信息(DVBSI)、高级电视系统委员会节目和系统信息协议(ATSCPSIP)、有线电视SI如DVS、以及专用SI如DCII系统中的那些SI。该系统应该允许不同的应用程序仅检索它们要求的特定的SI。如果需要,该系统应该允许应用程序从SI中检索特定的描述符。描述符指的是扩展表格数据的方法。通常,不同的数字视频标准允许使用不同类型的数据表格来传送SI。例如,表格可以指定传送特定的频道或节目的TS(例如,PID、频率)的位置。另外,因为表格是很难随着时间扩展以容纳附加信息的固定结构,所以已经将描述符开发成一种扩展方法。描述符可以附加在表格的外环或内环上。在外环,描述符附加在表格的末尾并且每次读整个表格时提供附加的表格入口。在内环,描述符附加在一部分表格的末尾并且在每次读该部分表格时提供附加的表格入口。例如,描述符可以包括后面跟随信息字段或信息串的标记。描述符仅在需要时被包括,并且不干扰接收机,该接收机没有更新以识别描述符。另外,该系统应该使用当前对DTV规定的UTL语法概念。该系统应该能用电视网络用户终端的API实现。API应该兼容于Java(tm),ActiveX(tm)或相同类型的基于分量的、面向对象的技术。该系统应该选择地提供异步的输出结果、与TS分开的MPEG-2特定的数据、以及SI数据的递增检索。该系统应该兼容于URL定位器语法。注意对于DTV的URL定义仍然建立。当前的API定义支持DAVICDVBURL和GIC建议的DTV以及ATSCURL。本发明提供具有上面和其它优点的系统。本发明的概述本发明提供一种API,它允许应用程序运行在数字电视终端,以恢复来自数字TS的SI而不用考虑特定的格式类型。API提取SI的相关部分,以在终端可以由不同应用程序使用的格式提供它。另外,如果下面描述的描述符子信息包具有特别的需要,则它允许应用程序检索特定的DVB或ATSC或专用(例如DCII)描述符。这个SIAPI定义还使用在互联网和浏览器应用程序中公知的URL概念。DTV的正式URL定义仍然在讨论中。当前的API定义支持DAVICDVBURL和通用仪器公司(GI)建议的DTV和ATSCURL。本发明的电视机顶终端包括具有计算机编程代码方式(例如面向目标的代码如Java(tm))的计算机可读介质(例如磁或光存储装置),以及用于执行计算机编程代码方式的装置(例如任何处理器如CPU),以实现应用程序编程接口(API)。API适用于在由终端以多个不同格式的任何一个接收的数字电视传送流中提取SI。API以适用于终端应用程序的通用格式提供提取的SI,而不管提供的SI的特定格式。例如,不同的SI格式可以包括不同的数据表格式。这允许终端兼容于许多不同的数据流格式。另外,API可以在响应于提取的SI的终端提供许多功能,例如导航功能,使终端能够在传送流中电视频道之间导航;节目指南功能,实现电视频道的电子节目指南;选择功能,选择特定的电视频道;以及描述符检索功能,再现SI的描述符。另外,API提供包含支持对象的实用功能,它包括事件和异常、用于支持同步地输出SI到应用程序、用于根据提取的SI实现传送流中数据服务的指南的数据功能、以及提供关于传送流的实际输出方法(例如卫星或转发器标识符)的信息的管道功能。管道功能使用适当的SI表格以提供关于输出网络(MPEG-2传送流等)的信息。API通过将适当的SI数据显露给应用程序来提供这些功能。应用程序如EPG能够使用这些API来做它的工作,例如EPG使用导航信息包(或功能)来查明有关频道,并且它使用指南信息包(功能)来查明选定频道上有关安排的节目。这样,这里讨论的API或信息包由特定的应用程序使用(调用)。不同的可利用SI格式可以包括活动图像专家组(MPEG)节目特定信息(PSI)、数字视频广播(DVB)系统信息(SI)、高级电视系统委员会(ATSC)节目和系统信息协议(PSIP)、有线电视和电视工程师协会的有线电视SI数字视频标准234、以及专用SI。当终端接收传送流时,终端可以包括存储SI的存储器,其中API提供检索函数调用,使得调用应用程序能够检索SI,因此在存储器可利用的SI作为直接返回值基本上立刻返回。如果不能利用存储器中服务信息,检索函数调用返回异常信号到调用的应用程序,SI被异步地输出到调用的应用程序。在这种情况下,API也可以提供包含支持对象的实用函数,包括事件和异常、支持异步输出SI到调用的应用程序。另外,当传送流以多个可利用传送流格式的一个被提供时,API可以提取SI,以适用于终端应用程序的通用格式提供它。这可以通过提供基本信息包而实现,该基本信息包具有对于可利用的传送流格式通用的信息。API适用于使用单独的信息包,这种单独的信息包的信息是针对所接收的传送流格式的。一般地,API提供可扩展的API的基本集。例如,ATSC加上新的信息包,以提供PSIP特定的信息,DVB也可以做同样的工作。这里没有示出这样的信息包。然而,本发明的API是可扩展的,使得特定格式的扩展可以通过再细分类或扩展提取的SIAPI类和接口而容易地实现。在本发明的又一个方面,API通过允许在终端的调用应用程序获得在终端可利用的SI的子集来提供服务信息的递增检索,完成获得的SI的分析,以及如果需要,根据该分析来检索附加的SI。附加的SI可以在终端存储器中,从终端可获得的SI的子集中检索或从传送流中检索。注意SI数据可以使用不同的方法存储在终端中。例如,它可以在提取之前和/或之后存储,在优化和压缩之后存储,等等。API允许在终端的调用应用程序恢复传送流中的SI子集,同时拒绝不是调用应用程序要求的传送流中的其它SI。API也可以提供响应于提取的SI的滤波功能,以便使应用程序规定感兴趣的应用程序的传送流中的至少一种服务。滤波可以基于该服务是否相关于特定的传送流(当可以利用来自多个传送流的服务时一接收机可以具有多个调谐器,或SI数据可以存储在接收机的存储器中,存储在SI数据库中,它随着时间从多个传送流中收集)、网络、一揽子(abouquet)情况、卫星、卫星转发器、服务名称、服务/频道号码、喜欢的频道以及主题。另外,API可以使用提取SI的多个信息包实现,在这种情况下它有效地用于终端的不同应用程序,以包括根据每个应用程序要求的提取SI的特定部分的信息包中规定的那些内容。同时,还提出了相应的方法。附图的简要说明图1示出了本发明的API的信息包关系和相关性。图2表示本发明的导航信息包类别/接口图。图3表示本发明的节目指南信息包类别/接口图。图4表示本发明的选择信息包类别/接口图。图5表示本发明的描述符信息包类别/接口图。图6表示本发明的管道信息包类别/接口图。图7表示本发明的数据信息包类别/接口图。图8表示本发明的实用信息包类别/接口图。本发明的详细说明API允许运行在数字电视终端的应用程序从数字TS恢复SI而不用考虑特定的格式类型。API提取SI的相关部分以在终端由不同的应用程序可以使用的格式提供它。API最好独立于终端的操作系统和硬件。注意这些图是通过美国的RationalSoftwareCorportion开发的RationalRose(tm)CASE工具自动产生的。这些图使用UML的RationalRose(tm)描述,它是用于规定、构造、可视化以及提供资料给软件增强系统的人工制造物的语言。类图(classdiagram)表示系统的静态结构,并且表示该系统表现的性能模式。这是通过示出类的存在和它们的关系来实现的。每个类由具有三个部分的方框表示。顶部列出类的名称。中间部分表示属性列表,底部表示操作列表。类之间的实线或虚线表示相关或依赖。白色的菱形尖表示参考的集合,而黑色的菱形尖表示值的集合。三角箭头表示限制的导航,例如操作而不是结构的继承。另外,接口和类由大写字母开始,而方法由小写字母开始。类是规定一个对象的数据结构、方法和函数调用的模板。接口规定一组可以由类操作的方法/函数调用。该类提供实现接口的代码。1.模型描述整个SI数据库模型基于“视图(view)”的概念。有不同的方法来概述SI数据库,不同的应用程序可以具有不同的需求。规定的概述允许应用程序仅仅考虑根据应用程序需要的SI数据库的子集。概述的概念由Java信息包来表示。以下部分是描述AbstractSIAPI的对象模型。图1是一个示出本发明的API信息包关系和相关性的上位示意图。导航信息包110包含用于导航现有电视频道(DVB服务或ATSC虚频道)的类和接口的主要设置。选择信息包130增加的特性允许TvChannel用于调谐和选择特定的服务(MPEG节目)。指南信息包120提供对于EPG有用的信息,包括节目时间表、各个节目事件和节目费率。描述符信息包140允许检索与输出SI的MPEG部分有关的各个MPEG描述符。管道信息包170隔离一些特定输出的介质信息。当前在这个信息包中提供的类表示MPEG-2输出方法。数据信息包160类似于指南信息包120,除了它提供关于数据相关事件(服务)的信息以外,例如与音频/视频流一起发送的任何软件应用程序,如股票机、新闻机、运动统计、交互式商务等,而没有音频/视频事件。最后,Util(实用)信息包150包含支持特性的对象,如事件、异常等。这个模型提供了描述经过多路复用(元数据)上输出的内容布置的SI的高级提取,以及对于特定SI格式的特定详细信息。这通过存取MPEG表格描述符来实现。因为描述符用作扩展SI的附加和未来功能的方式,本发明显著的优点是API提供了对描述符的通用存取而不必采用每个新的或改变的描述符来改变API的实现。在本发明的一个方面,提供了异步输出的结果。因为DTV接收机具有不同的性能,最好不是每个接收机都要将所有的SI数据高速缓存在存储器中。对于需要的最有用信息的子集要这样做,但当需要检索不存储在存储器中的数据时必须分析实际的TS。然而,存取TS可能占用很大的时间量。因此,API一直对于不期望在存储器中的信息提供异步存取。一般来说,异步(或无阻塞)调用不仅将增加了API实现的复杂性而且也增加了使用API应用程序的复杂性。为了隐藏低端和高端接收机之间的差别,这个API提供一种方法,如果信息可以本地获得(在存储器中)则能够同步完成,或如果数据必须从TS检索就异步地完成。以“检索”开始的所有API调用返回请求的对象或者发出一个异常,表示该数据将经过异步事件稍后提供。调用者可以将自己登记为这个事件的收听者。或者不通过登记,调用者可以表示仅仅感兴趣同步数据输出。异常包括有足够的信息来取消该请求并且将它与输出数据的实际事件相联系。SI通常以PSIPSTT消息或DVBTDT和TOT消息的形式包含系统时间相关的信息。这时假设本地DTV接收机时间将与当前调谐的频道的系统时间同步并且可以使用java.util.Data类获得该值。注意如果所有传送的多路复用使用一个可靠的和同步的数据源(如GPS)则这是可接受的。如果某一多路复用提供错误的时间信息,则通过接收机来实现对这种情况的分析。1.1导航信息包概述图2表示本发明的导航信息包类/接口图。图中,相同标号的部件相互对应。导航信息包110具有两个主要功能,即(1)利用所有的或选择的TvChannel的子集,它表示DVB服务和ATSC虚频道;以及(2)利用网络相关信息如网络定义、卫星和转发器信息、TS和一揽子信息等。图中,相同标号的部件相互对应。该信息包包括下面的类和接口CAIdentification205、DeliverySystemType807、SystemInformationType810、ChannelCollection220、TvChannel225、SIUpdate830、ChannelConstraint235、SIManager240、TvChannelDetails245以及ChannelIdentification250。主要的导航功能通过下面的类和接口表示。SIManager240是到基本SI数据库的主要存取点。它可以根据ChannelConstraint235对象表示的选择准则产生称为ChannelCollection220的一群TvChannels225。选择准则可以是网络ID、TSID、一揽子ID、用户喜欢的频道、URL等等。该群可以随后用于通过频道数或通过频道名称分类,并且导航经过TvChannels225,TvChannels225表示DVB服务或ATSC虚频道。TvChannel225本身仅包含需用于导航的最少的信息(如定位器、频道名称和号码)。关于该频道附加的信息包含在TvChannelDetails对象245中。当关于这个频道的信息被最后更新时TvChannelDetails还经过CAIdenfication接口205提供一些CA相关信息、输出方法以及时间。频道名称和号码实际上被封装在ChannelIdentification对象250中,该对象可以扩展以容纳对频道命名和编号的不同方法,如ATSC两部分频道号码(例如,使用最大最小符号一在最大和最小频道号码之间具有一个点的串—ex10.2)。1.2指南信息包概述图3表示本发明的节目指南信息包类/接口图。该信息包包括下面的接口SIManager240、TvChannelDetails245、TvChannelWithSchedule300、ContentRatingAdvisory310、ProgramSchedule320、RatingRegion330、ProgramEvent340、RatingDimension350和SIUpdate830(在图8中详细示出)。这个信息包用于支持电子节目指南类型应用程序。它提供给应用程序两个相关的信息组每个频道的节目时间表以及费率信息。ProgramSchedule对象320能够用于检索当前播放的节目,紧跟的下一个,以及在未来特定时间周期的任何其它可获得的节目。能够询问每个ProgramEvent340它的名称、开始时间和结束时间、描述符、费率、成本和其它相关的信息。费率相关信息被组织到费率范围,这里每个范围可以具有多种费率大小如MPAA费率、FCCTV费率、DVB基于使用期限的费率等等。每种大小包含多个等级;每个ProgramEvent以所有支持的费率范围的这些级别中的一个级别来标记。1.3选择信息包概述图4表示本发明的选择/调谐信息包类/接口图。该信息包包括下面的类和接口TvChannelDetails245、ChannelComponent410、MPEGChannelComponent420、Locator430、MPEGLocator440和ATSCLocator450。调谐信息包基本上通过加上关于每个TvChannel的各个分量的信息如视频、可能的多个音频分量和选择的数据分量来扩展导航功能。TvChannel对象225能够提供遵守JMF播放机模型或单独的服务选择API的TV播放机使用的定位器。通用的ChannelComponent410通过表示MPEG特定信息的MPEGChannelComponent420扩展。基本的定位器430概念被扩展,以支持MPEG特定的定位器(MPEGLocator440),它随后专用于ATSC(ATSCLocator450)。注意DAVIC信息包也包括DVB特定的子类。1.4描述符信息包概述图5表示本发明的描述符信息包类/接口图。该信息包包括下面的接口TableType510、DescriptorTag520、Descriptor530、MPEGTableDescriptors540和MPEGPipeline660(图6中详细示出)。描述符一般在MPEG-2表格的两个位置获得将描述符与整个表格相联系的外环,以及将描述符与内环中描述的特定实体相联系的内环。一个例子是PSIPVCT,它具有外环和内环描述符。外环描述符与这个VCT定义的所有虚频道相联系,而每个内环包含用于特定的虚频道的描述符。在机顶执行的应用程序使用API,以利用包括SI的机顶功能。它的目的是提供格式独立的API来检索SI(ATSCPSIP,DVBSI等),以将应用程序要求了解的这些SI格式的细节减至最小。在大多数情况下提取是很好的,但是某些应用程序需要利用在提取的API级别不提供的特定描述符。例如,这可以是将在未来定义的描述符。因此,它不能直接在API中表示。它也可以不是用于应用程序的描述符中的一个;而是被接收机本身使用(例如,AC3描述符,Linkage描述符等)。问题在于规定应用程序感兴趣的特定的描述符。它适用于确定适当的表格以及描述符环路的位置。用于检索描述符的信息类型(例如,TS、服务、事件等)主要由DTVURL识别。有一些少有的异常;例如,DVBBAT实际上不被任何当前的URL格式识别。DTVURL通常足以指向特定的<table_type,描述符环路>对,特别用于URL指向一个事件或一个基本流。存在URL不是特别足够的一些情况,因为一个实体例如服务可以在多个表格如PMT和DVBSDT中描述。因此,table_type被规定用于识别从哪种类型的表格检索描述符。不使用Table_id,因为一些表格类型在类型中具有不同的table_id(例如,DVBNIT具有0x40和0x41)。table_type缩小表格的范围,以特别在较高级别的URL(服务和TS级别)搜索描述符。在一些偶然情况下,需要附加的识别。例如,如果规定了rating_type,则需要费率范围ID从ATSCRRT检索描述符的适当子集。同样应用于navigation_type表格,这里需要一揽子ID从DVBBAT外部描述符环路检索描述符。另外,一组选择的描述符标记可以在调用中规定,以限制搜索和返回的描述符组对应于列表中暗示的描述符。如果通过<url,table_type,entity_info>tuple(例如,一组值)识别的给定表格找到一组描述符,只有那些匹配于暗示中提供的描述符标记返回。注意根据DTV接收机的高速缓冲能力,所有的描述符检索方法支持同步以及异步数据输出。1.5管道信息包概述在选择的实施例中,提供分开的MPEG-2特定的数据。使用MPEG-2传送格式主要输出数字电视内容。对于DVB以及ATSC实际上就是这样。通过将电视和个人计算机集合,最好可以通过其他手段,如借助于某种类型的实时协议,以IP格式经过互联网将数字视频内容输出到电视接收机。这激发了较高级别的SIAPI的提取,它不仅隐藏了ATSCPSIP和DVBSI(都是MPEG-2的扩展)之间的差别,而且隐藏了输出内容和SI的不同方式之间的差别。这种设计将所有MPEG-2(例如TS)特定的信息移到分开的信息包中。提供通用传送的中性信息的基类可以采用用于MPEG-2输出网络的MPEG-2特定的信息进一步扩展。因为新的输出方法已经很普遍,可以扩展基类,以提供关于特定协议的详细信息。实质上,API进一步提取SI以独立于特定的TS格式的方式提供它。因此,API可以运行在以许多不同的可利用格式的任何一个接收TS的终端上。图6表示本发明管道信息包的类/接口图。该信息包包括下面的类和接口SIManager240、SatelliteInformation605、NetworkInformation610、BouquetInformation630、SISpecificManager640、PipelineInformation650、TransportStreamInfo660、MPEGPipeline670和SystemInformationType810(图8中详细示出)。管道信息包提供关于物理方法介质的附加信息,该介质输出SI数据描述的内容。物理输出方法可以包括例如卫星/转发器信息。SISpecificManager640提供了提取PipelineInfomation650的途径(access),在这种特定的情况下,PipelineInfomation650通过表示MPEG-2多路复用的MPEGPipeline670来扩展。通用的PipelineInfomation650可以被扩展,以支持其他类型的内容输出(例如,互联网协议)。1.6数据信息包概述图7表示本发明数据信息包的类/接口图。该信息包包括下面的接口TvChannelDetails245、ContentRatingAdvisory310、TvChannelWithData710、DataSchedule720、DataEvent730和SIUpdate830(图8中详细示出)。数据信息包概述类似于指南信息包概述,它表示类似EPG的信息。在这种情况下,数据时间表表示与音频/视频事件不同的数据事件的调整或指南。注意这个信息包在仍然进行中的ATSCT3/S13工作之后建模。1.7实用信息包概述图8表示本发明实用信息包的类/接口图。该包包括下面的类和接口SIFactory805、SIManager240、SystemInformationType810、SIChangeListener815、EventObject820、SIUpdate830、SIChangeEventType832、SIChangeEvent834、TvChannelChangeEvent835、DataChangeEvent840、ProgramChangeEvent845、SIInfoChangeEvent850、Exception860(来自java.lang信息包)、SIRetrievalEvent865、SIRetrievalListener870、SIDelayedDeliveryException875、SIException880、SIRetrievalFailEvent882、SIRetrievalSuccessEvent884、SIRequest886、SINotAvailableException890、SIRetrievalSingleSuccessEvent892和SIRetrievalMultipleSuccessEvent894。实用信息包在一些范围内提供支持,即1.对于在TS中检测的SI实体变化和输出异步请求事件的事件通知方法;2.创建SIManager(s)的SIFactory;以及3.异常SIChangeListener815和SIChangeEvent834支持标准Java事件模型。有三种类型的对象收听变化1.SIManager240,它报告TransportStreamInfo660、NetworkInformation610、BouquetInformation630等对象表示的网络定义相关表格中检测的变化。2.ChannelCollection220,它报告通过群包含的TvChannels225的任何一个中检测的变化。3.ProgramSchedule320,它报告时间表中ProgramEvents340的任何一个中检测的变化。应用程序可以登记为具有上面列出的对象的收听者,并且它们通过接收三个适当事件中的一个得到通知,它将输出关于哪个特定的对象已经改变的细节。为了获得新的信息,应用程序需要重新产生特定的对象群(ChannelCollection220、ProgramSchedule320等)。注意,可能很难实现上面规定的事件,除非接收机进行相同类型的旧、新表格的逐个字段比较。接收机可以选择仅输出高级别事件,并且如果需要使应用程序更新多个对象。实用信息包150也提供异步输出数据的方法。通过SIRequest886、SIDelayedDeliveryException875、SIRetrievalEvent865和SIRetrievalListener870提供这种功能。SIDelayedDeliveryException875发信号给调用者,该数据仅异步可利用,并且提供可以用于取消请求和将这个请求与SIRetrievalEvent865相联系的SIRequest对象886,它最后输出请求数据或失败的指示。异步方法的调用者(通过“retrieveXXX”名称表示)可以登记为收听者以获得该事件。如果它决定不登记作为收听者,则它对于API实现是一个指示,不需要分析TS以及检索请求的数据。这样,根据本发明,应用程序在数据输出时具有完全的控制。这样,可以提供SI数据的递增检索。一般地,有许多应用程序将在DTV接收机上执行。一些接收机需要利用整个SI数据组(如EPG类的应用程序),而其他的可能仅需要非常小的SI数据的子集。为了支持所有这些应用程序而不将多余的负担加到那些需要小的SI数据子集的接收机上,本发明能够进行SI数据的递增检索。这允许应用程序获得一小组SI数据,做出智能的判定,以及检索更多的SI用于可能的一个选择的SI对象或一个SI对象子集。这样一个设计对于应用程序提供了灵活的、更多的控制、以及更有效的SI数据的检索。因为大多数SI对象实际上是没有结构的接口,应用程序没有办法用具体例子来说明实现规定的接口的对象。为了获得实现SIManager接口240的对象的情况,提供SIFactory类805,它具有获得SIManager情况的方法。一些方法发出异常来报告无效参数或其他类型的错误状态(见类875和880)。2.0类和接口描述2.1导航信息包(图2)从导航方法如简单的频道指南、channelUp和channelDown按钮等的角度来概述SI。它提供了足够信息来显示具有滤波方法的可利用MPEG-2服务的列表。2.1.1TvChannel225TvChannel225表示称为MPEG节目、DVB服务或ATSC虚频道的提取的概述。它表示与它相关的通用信息,如频道名称、频道号码、描述符等。每个TvChannel通过包括系统类型、网络标识符、TSID、服务号码或频道号码的多元组唯一地识别。这种识别可以用URL格式表示。公共操作getLocator()Locator返回这个TvChannel的整个定位器。getLongChannelName()String返回整个频道名称。isHidden()boolean返回TRUE,这是一个隐藏的频道。retrieveDetails(listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.navigation.TvChannelDetails这种方法检索关于TvChannel的附加信息。这个信息基于SI数据(也称为元数据)。可以考虑SI数据是关于其他数据(内容)如传送流的音频/视频/数据分量的信息。因为它是关于其他数据的数据,所以有时称它为元数据。这种方法可以同步或异步地返回数据。getIdentification()org.atsc.abstractSI.navigation.ChannelIdentification这种方法用于获得频道标识(例如,频道名称和号码)。2.1.2ChannelCollection220CharmelCollection表示根据ChannelConstraint相关类235定义的特定的分组规则的一群TVChannel225。用于创建这样一个群的滤波可以基于TSID、NetworkID、Systemtype(DVB,ATSC等)、Bouquet、内容主题(例如运动)、频道名称或它的子集(例如CNN)或可能的这些的组合。这个类还提供用于浏览被特定群的情况包含的那些TVChannels的方法。这类似于SortedMap接口(来自SunMicrosystem的JDK1.2APIs),但仅提供很小的功能子集应用于这个范围。公共属性SORT_BY_CHANNEL_NUMBERshort=1SORT_BY_NAMEshort=2公共操作size()int返回包含在这个群中的TvChannel的数量。sort(criterionshort)void用于规定一种算法,以确定nextChannel和previousChannel方法的性能。例如,如果规定了用频道名称分类,nextChannel方法将在当前TvChannel之后按名称的字母顺序返回下一个TvChannel对象。它总是以升序分类nextChannel(currentChannelorg.atsc.abstractSI.navigation.TvChannel)TvChannel根据分类准则返回相关于规定的TvChannel的下一个TvChannel。如果到达该群的末尾则返回空(null)。previousChannel(currentChannelorg.atsc.abstractSI.navigation.TvChannel)TvChannel根据分类准则返回先前的TvChannel。如果到达这个群的开始则返回空。firstChannel()TvChannel根据为这个群设置的分类准则返回这个群中第一个TvChannel。lastChannel()TvChannel根据为这个群设置的分类准则返回这个群中最后的TvChannel。addListener(listenerSIChangeListener)void用于登记SIChangeListener815以相关于这个群中频道的改变。TvChannelChangeEvent835将输出给收听者。removeListener(listenerSIChangeListener)void用于撤销SIChangeListener的登记,以相关于这个群中频道的改变。retrieveChannels(flterorg.atsc.abstractSI.navigation.ChangeConstraint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)ChannelCollection基于滤波器参数中规定的分组条件,这种方法返回ChannelCollection对象220,它是这个群的子集。如果滤波器是空的,则返回包含在这个群中一群所有的TvChannels225。根据多个滤波(分组)准则,这种方法产生越来越多的特定群的TvChannels。findChannel(locatororg.davic.net.Locator)org.atsc.abstractSI.navigation.TvChannel如果它是这个群中的一个成员,则这种方法返回相应于规定的定位器的TvChannel。否则,它返回空。findChannel(channelIDorg.atsc.abstractSI.navigation.ChannelIdentification)org.atsc.abstractSI.navigation.TvChannel如果它是这个群中的一个成员,则这种方法返回相应于规定的频道标识的TvChannel。否则,它返回空。2.1.3SIManager240SIManager表示中心管理实体,它了解整个网络或一群网络,并且能够根据ChannelConstraint滤波规则创建一群TvChannel。它也可利用每个单独的TS(DVBSIDatabase,ATSCPSIPDatabase等)的特定的SI表示。公共操作retrieveChannels(filterorg.atsc.abstractSI.navigation.ChannelConstraint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)ChannelCollection这种方法根据在滤波器参数中规定的分组条件返回ChannelCollection对象。如果滤波器是空的,则产生一群所有已知的TvChannel。这种方法能够同步或异步地输出结果。如果请求的数据是可以立刻得到的,则它被同步地返回。如果该数据必须首先由传送检索,则发出SDelayedDeliveryException875并且其结果经过一个事件输出给登记的收听者。参数滤波器—限定请求的频道群的规则。参数收听者—当异步检索数据时接收输出事件的收听者。如果应用程序不提供收听者(空),则不试图进行异步检索。收听者仅为了这个调用而被登记。setPreferredLanguage(languageint)void如果提供作为多种语言中的多种语言串,这种方法设置从SI相关类和接口(例如TvChannel名称等)返回任何文本信息使用的语言。如果规定的语言是不可利用的,则使用系统级的优选语言。如果该语言也是不可利用的,则使用第一种可利用的语言。这种方法用于临时取代abstractSI信息包中的系统级优选语言。getPreferredLanguage()int使用这种方法来确定返回串类型值的优选语言。getRatingRegions()int[]这种方法返回一个可利用费率范围ID的列表。retrieveRatingRegion(regionIDint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)RatingRegion这种方法用于获得规定的ratingRegionID的RatingRegion对象。这种方法可以同步地以及异步地输出数据。2.1.4ChannelConstraint235这个相关类表示用于产生特定的ChannelCollection220的一组规则或滤波准则。用于创建这样一群的滤波可以基于TSID、NetworkID、SystemType(DVB,ATSC等)、一揽子内容、内容主题(例如运动)、频道名称或它的子集(例如CNN)等。公共操作ChannelConstraint(filterint,valuejava.lang.Object)这种构造器规定什么是分组准则。参数滤波器—滤波器表示特定的滤波器类型的计算值。参数值—根据滤波器类型设置滤波器值。getFilterType()int用于确定什么分组方法用于这个ChannelConstraint。getFilterValue()java.lang.Object用于确定当前滤波器值。该值的意思根据滤波器类型改变。2.1.5CAIdentification205CAIdentification接口提供一种方法将CA相关的信息与任何SI相关的类相联系,如TS或TvChannel。它存取在CATMPEG表格中找到的信息。公共操作getCASystemIDs()int[]返回CATMPEG消息中定义的CA系统ID的阵列。如果没有CAT信息提供给这个频道则返回空。isAccessControlled()boolean如果这个TvChannel被CA保护,则返回TRUE。如果它没有被保护或不知道,则返回FALSE。2.1.6FilterType265这个接口提供支持滤波方法如通过NetworkID、TSID等滤波的恒定值的定义。公共属性NETWORK_ID_FILTERshort=1基于NetworkID的滤波器TRANSPORT_ID_FILTERshort=2基于TSID的滤波器BOUQUET_ID_FILTERshort=3基于BouquetID的滤波器SYSTEM_TYPE_FILTERshort=4基于SI类型(例如,DVB、ATSC等)的滤波器SATELLITE_FILTERshort=5基于SatelliteID的滤波器TRANSPONDER_FILTERshort=6基于转发器号码的滤波器LOCATOR_FILTERshort=7基于定位器(URL)的滤波器CHANNEL_NAME_FILTERshort=8基于频道名称的滤波器CHANNEL_NUMBER_FILTERshort=9基于频道号码的滤波器THEME_FILTERshort=10基于主题/内容种类的滤波器FAVORITE_CHANNELS_FILTERshort=11基于用户喜欢的频道的滤波器2.1.7TvChannelDetails245这个接口提供了利用TvChannel元数据。从DeliverySystemType807、SIUpdate830、SystemInformationType810以及CAIdentification205产生。公共操作retrieveChannelDescription(listenerorg.atsc.abstractSI.util.SIRetrievalListener)String返回这个频道的文本描述符,或者如果什么都没获得,返回空。getServiceProvider()String返回服务供应商的名称。getServiceType()int返回这个服务的类型。服务类型是下面值中的一个数字电视、数字无线电、模拟电视、模拟无线电、数据服务、NVOD参考服务、NVOD时移服务。这个列表可以在未来用新类型的服务扩展。retrieveComponents(listenerorg.atsc.abstractSI.util.SIRetrievalListener)ChannelComponent[]这种方法返回一个作为这个频道部分的基本分量列表。getRunningStatus()short返回这个服务的运行状态(见DVBSI文件)。retrieveContentAdvisory(listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.guide.ContentRatingAdvisory[]返回每个费率范围的ContentAdvisory信息的列表。getDeliverySystemType()int用于确定输出这个TvChannel的方法(例如,有线电视、卫星等)。2.1.8ChannelIdentification250这个接口用于通过名称、频道号码或其它手段提供识别TvChannel的灵活性和可扩展的方式。它可以扩展,以支持特定的方法,如ATSC两部分频道号码。公共操作getChannelNumber()String返回频道名称,它是系统特定的值。例如,DCII使用一单个号码,DVB实际上不支持频道号码或者它们是特别的机顶技术或广播电台,现在ATSC具有两部分频道号码。在ATSC范围中,它可以用最大、最小符号表示(在最大和最小频道号码之间具有一个点的串)。对于DVB频道,它可以是作为频道号码的服务ID。它也可以表示作为专用描述符输出的广播电台特定的频道编号方法。getChannelName()String返回短的频道名称或缩写。2.2指南信息包(图3)从节目指南的角度来概述SI,节目指南不仅表示服务可利用性而且表示它们中每一个提供的未来事件列表。2.2.1ProgramSchedule320这个接口表示对于时间排序的给定TvChannel225的一群节目事件。它提供当前的、下一个和未来的事件。公共操作retrievePresentEven(listenerorg.atsc.abstractSI.util.SIRetrievalListener)ProgramEvent返回当前的(如果调谐到可以观看的)节目事件。retrieveFollowingEvent(listenerorg.atsc.abstractSI.util.SIRetrievalListener)ProgramEvent返回即时跟随当前节目事件的节目事件。retrieveFutureEvent(whenjava.util.Date,Listenerorg.atsc.abstractSI.util.SIRetrievalListener)ProgramEvent返回规定时间的节目事件。将返回包含规定时间的节目事件。规定的时间落在节目事件的开始时间和开始时间加事件持续时间之间。当规定的时间没有落在任何已知的节目事件内时,返回空。retrieveFutureEvents(startOfIntervaljava.util.Date,endOfIntervaljava.util.Date,Listenerorg.atsc.abstractSI.util.SIRetrievalListener)ProgramEvent[]返回规定时间间隔的这个频道上所有已知的节目事件。retrieveEvent(locatororg.davic.net.Locator,Listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.guide.ProgramEvent这种方法检索匹配于定位器的节目事件。注意该事件必须是这个时间表的一部分。addListener(listenerorg.atsc.abstractSI.util.SIChangeListener)void对于与这个时间表中ProgramEvents340的变化有关的事件,登记SIChangeListener815。当这个时间表上任何ProgramEvent变化时,将ProgramChangeEvent845输出给指定的收听者。removeListener(listenerSIChangeListener)void用于撤销SIChangeListener815的登记。2.2.2ProgramEvent340这个接口包括具有公用时基(timebase)、相关的开始时间以及相关的结束时间的一群基本流。事件等同于“电视节目”的通常工业使用。事件信息表(EIT)包含在规定的TvChannel上事件的信息(标题、开始时间等)。在大多数情况下,事件是典型的电视节目,然而它的定义可以扩展,以包括广播对话和其他信息段,如信息数值的特别数据,或者可以表示部分该事件包括交互式数据应用程序,而其他部分不包括。由SystemInformationType810和SIUpdate830产生。SIUpdate是表示SI表格的所有SI对象共享的接口,并且它提供最后时间更新这个对象的有关信息。公共操作getLocator()Locator返回表示这个节目事件的定位器。getStartTime()java.util.Date返回这个节目事件的开始时间。getEndTime()java.util.Date返回这个节目事件的结束时间。getDuration()long立刻返回这个节目事件的持续时间。getEventName()String返回节目事件标题。retrieveDescription(listenerorg.atsc.abstractSI.util.SIRetrievalListener)String返回该事件的文本描述。这个信息来自ATSC的扩展文本表(ETT)或DVB的扩展事件描述符。当没有ETT可用于这个事件时,将返回一个空串。retrieveContentAdvisory(listenerorg.atsc.abstractSI.util.SIRetrievalListener)ContentRatingAdvisory[]返回每个费率范围的ContentAdvisory信息的列表。getRunningStatus()short返回这个事件的运行状态(见DVBSI文件)。getTvChannel()TvChannel返回这个节目事件相关的TvChannel。在DVB中,通过服务ID,事件和TvChannel相关;在ATSC中,通过源ID,它们相关。getCost()String这种方法返回IPPV节目事件的成本或者如果这不是IPPV事件则返回空。getTheme()short[]这种方法返回与节目相关的题目列表。它表示为数字,并且是系统特定的(例如,DVB内容四位字节)。详细内容可以参照适当的说明。2.2.3ContentRatingAdvisory310ContentAdvisory用于对给定事件表示每个费率范围规定的任何或所有的费率大小。费率可以给予任何或所有的定义范围。没有内容咨询(contentadvisory)的事件表示用于任何费率范围中规定的任何费率大小的费率值是零。缺少特定大小的费率完全等同于具有这样一种大小的零值费率。缺少特定范围的费率表示缺少用于范围中所有大小的费率。公共操作getRatingRegion()short返回规定费率范围的无符号8位整数用于这个对象中定义的数据。ratingregion将这里给出的费率数据与相应的费率范围标记的RRT中定义的数据相关。注意,DVB费率系统仅基于使用期限。它可以容易地变换到这个更精致的费率系统作为规定大小中的一个。getDimension()short[]返回这个费率范围额定的所有大小的列表。getRatingValue(ratedDimensionshort)short对于这个费率范围,返回表示参数规定大小的费率值的数值。getRatingText(ratedDimensionshort)String返回规定大小的费率描述显示串。它应该限制于16个字符或者更少。2.2.4RatingRegion330这个接口定义特定费率范围的所有费率大小。PSIP费率规定对于服务或事件由任何内容咨询描述符参照的电视最原始的指南系统。它基于RRT。公共操作getNumberOfDimensions()short返回这个费率范围中规定的费率大小的数字。getRegionName()String返回与费率范围有关的费率范围名称,例如“美国(50个州+属地)”。用于费率范围名称的显示串应该限制于32个字符或更少。getRatingDimensions()RatingDimension[]返回这个费率范围定义的所有费率大小的阵列。2.2.5RatingDimension350例如,美国费率范围中一个大小用于描述MPAA列表。用于这种情况的大小名称可以定义为“MPAA”。费率大小的另一个例子可以是基于使用期限的DVB费率。公共操作getDimensionName()String返回表示这个对象描述的大小名称的串,如“MPAA”。大小名称显示串应该限于20个字符或更少。isGraduatedScale()boolean表示是否这个大小中的费率值是一个比例尺,即较高的费率值表示该大小内额定内容的增加级别。值1意味着“是”,而值0意味着“不是”。getNumberOfLevels()short返回规定这个特别大小所定义的数字值4位字段(1-15)。getRatingLevelDescription(ratingLevelIndexshort)string[]返回描述这个大小的规定的费率级别的一对串。第一个串表示一个特别费率值的缩写名称。费率值0的缩写名称被设置为空串,即“”。缩写值显示串应该限于8个字符或更少。第二个串表示一个特定的费率值的全名。费率值0的全名应该设置为空串,即“”。费率值显示串应该限于150个字符或更少。2.2.6TvChannelWithSchedule300这个接口通过加上存取与这个TvChannel相关的节目时间表来扩展TvChannelDetails。这由TvChannelDetails245产生。公共操作getProgramSchedule()ProgramSchedule返回与这个TvChannel相关的节目/事件时间表。2.3选择信息包(见图4)从频道选择的角度来概述SI。它表示必需提供给其他API,如NetworkInterfaceController、JMF播放机、A/V译码器等的信息,以选择、调谐和最后译码特定的MPEG-2服务和它的分量。2.3.1ChannelComponent410这个接口表示MPEG基本流的提取。它提供关于TvChannel225的各个分量的信息。它可以用于播放机选择TS的适当的分量。公共操作getComponentName()String返回与这个分量有关的名称。如果存在,则可以使用分量描述符。否则,可以使用通用的名称(例如,视频、第一音频等)。getAssociatedLanguage()int根据ISO639.2/B,返回3字节(24位)字段,规定基本流使用的语言。在没有规定这个基本流例如视频的语言的情况下,每个字节应该具有值0x00。getStreamType()short返回这个分量流的类型。也参见StreamType2.3.2MPEGLocator440由Locator430产生。公共操作getNetworkID()int用于确定这个定位器表示的网络的网络ID。getServiceID()int用于确定这个定位器表示的服务的服务ID(MPEG节目号码)。getTransportStreamID()int用于确定这个定位器表示的传送的TransportStreamID。getEventID()int返回这个节目事件的标识。注意ATSCPSIP事件ID仅在单个EIT表中是唯一的,而DVB事件ID在服务中是唯一的。2.3.3ATSCLocator450由MPEGLocator440产生。公共操作getSourceID()int返回整数号码,该整数号码识别与虚频道相关的节目源。在这方面,源是视频、文本、数据或音频节目的一个特定的源。源ID值零被保留。在0x0001到0x0FFF范围内的源ID值应该在传递VCT的TS中是唯一的,而值0x1000到0xFFFF在区域级别上应该是唯一的。用于sourceids0x1000以及以上的值应该由ATSC指定的登记授权发出和管理。2.3.4MPEGChannelComponent420这是表示MPEG-2基本流的特定的频道分量。由ChannelComponent410产生。公共操作getPID()short返回PID,基本流的数据在TS上发送。getPcrPID()short返回与这个分量有关的PCRPID号码。getTag()int返回这个基本流的分量标记(流标识描述符),或者如果什么都没出现,则返回空。getAssociationTag()int返回这个基本流的相关标记(相关标记描述符),或者如果什么都没出现则返回空。2.3.5TrunableChannelControl(415)TunableChannelControl是一个接受TvChannel对象的接口,它能够被JMF播放机或它的DTV衍生物调谐和播放。由JMFjavax.media.Control产生。公共操作getCurrentChannel()TvChannel返回当前播放的TvChannel。play(newChannelTvChannel)这种方法称为初始化TvChannel的调谐、译码和显示。play(newChannelTvChannel,componentsint[])这种方法称为初始化TvChannel的调谐、译码和显示。附加的参数规定TvChannel的哪些分量来播放。通过它们的标记数字来识别分量。play(newChannelTvChannel,languageint)这种方法称为初始化TvChannel的调谐、译码和显示。根据语言相关性,附加的参数规定TvChannel的哪些分量来播放。2.4描述符信息包(图5)这个信息包描述从任何类型MPEG表格中检索描述符的一般的API方法,这些表格包括MPEGPSI、DVBSI、ATSCPSIP、或甚至专用表格,如DCII。目的是规定检索这些描述符的SI格式独立的方法,以使对于DVB和ATSC差别的了解以及对于调用这个API的应用程序中特别代码的需求达到最小。参照在1.4部分“描述符信息包概述”中的讨论。2.4.1MPEGTableDescriptors540这个接口提供一种用于检索与任何MPEG、DVB、ATSC或甚至专用表格相关的MPEG描述符的方法。它返回一组描述符或一组可利用的描述符标记。调用的应用程序也可以暗示它感兴趣的描述符。仅当这些描述符出现在规定的表格时那些描述符的子集将返回。描述符主要由URL识别。这在许多情况下是不够的,因为例如服务可以在多个表格如PMT和SDT中描述。因此,规定表格类型,以识别从哪种类型的表格中检索描述符。在极少的情况下需要附加的识别。例如,如果规定RRT类型,就需要费率范围ID来检索适当的描述符子集。同样地应用于BAT类型表格,这里需要BouquetID来确定哪些描述符要检索。另外,可以在调用中规定选择的描述符标记组,以限制搜索和返回的描述符组。由DescriptorTag520和TableType510产生。公共操作retrieveDescriptors(urlLocator,tableTypeshort,someTagsshort[],listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.descriptor.Descriptor[]检索一组描述符。这种方法检索所有或一组描述符,这些描述符与采用描述符广播的次序的规定的表格中通过输出的定位器(URL)规定的实体有关。参数url—实体(如TS、服务等)的基于URL的说明,对于该实体获得描述符。参数tableID—表格的TableType,从该表格中检索规定的描述符。参数someTags—一个标记列表,用于应用程序感兴趣的描述符(由它们的标记来识别)。所有不可应用的标记值被忽略。如果这个列表是清空的或空的,则返回所有的描述符。参数收听者—一个在数据被异步检索时接收输出事件的收听者。如果应用程序不提供一个收听者(空),则不试图进行异步检索。收听者仅为了这个调用而登记。返回值—一组(或一个子集)描述符对象,如someTags中表示。参见描述符信息包。retrieveDescriptors(urlLocator,tableTypeshort,entityIDshort,someTagsshort[],listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.descriptor.Descriptor[]检索一组描述符。这种方法检索所有或一组描述符,这些描述符与采用描述符广播的次序的规定的表格中通过输出的定位器(URL)规定的实体有关。参数url—见前面的定义。参数tableID—见前面的定义。参数entityID—一个表示在规定表格中描述的特定实体的ID。实体类型取决于表格类型。例如,如果表格ID识别一个BAT,则实体ID是一个特定的BouquetID。参数someTags—见前面的定义。参数收听者—见前面的定义。返回值—见前面的定义。还参见描述符信息包。retrieveDescriptorTags(urlLocator,tableTypeshort,listenerorg.atsc.abstractSI.util.SIRetrievalListener)short[]检索通过对于规定的表格类型实际广播的Locator(URL)规定的实体有关的所有描述符的标记。以描述符广播(即在传送流中)相同的次序返回标记。参数url—见前面的定义。参数tableID—表格的表格ID,从该表格中检索描述符标记。参数收听者—见前面的定义。返回值—描述符的标记,实际上对于规定的表格广播(通过它们的标记来识别)。还参见DescriptorTag。retrieveDescriptorTags(urlLocator,tableTypeshort,entityIDshort,listenerorg.atsc.abstractSI.util.SIRetrievalListener)short[]检索所有描述符的标记,这些所有描述符的标记与Locator(URL)规定的实体相关,Locator(URL)实际上对于规定的表格类型广播。当描述符广播时,标记以相同的次序返回。参数url—见前面的定义。参数tableID—见前面的定义。参数entityID—表示在规定的表格中描述的特定实体的ID。实体类型取决于表格类型。例如,如果表格ID识别BAT,则实体ID是一个特定的BouquetID。参数收听者—见前面的定义。返回值—见前面的定义。还参见DescnptorTag。2.4.2Descriptor530这个接口规定MPEG描述符的基本结构。它包括标记、长度和字节阵列。由SystemInformationType810和DescriptorTag520产生。公共操作getTag()short返回描述符标记。getByteAt(indexint)byte返回描述符内容中特定的字节。getLength()short返回描述符内容的长度。getContent()byte[]返回整个描述符内容。2.4.3DescriptorTag520这个接口规定相应于大多数通用描述符标记的常数。参见描述符。公共属性NETWORK_NAMEshort=0x40SERVICE_LISTshort=0x41STUFFINGshort=0x42SATELLITE_DELIVERY_SYSTEMshort=0x43CABLE_DELIVERY_SYSTEMshort=0x44BOUQUET_NAMEshort=0x47SERVICEshort=0x48COUNTRY_AVAILABILITYshort=0x49LINKAGEshort=0x4ANVOD_REFERENCEshort=0x4BTIME_SHIFTED_SERVICEshort=0x4CSHORT_EVENTshort=0x4DEXTENDED_EVENTshort=0x4ETIME_SHIFTED_EVENTshon=0x4FCOMPONENTshort=0x50MOSAICshort=0x51STREAM_IDENTIFIERshort=0x52CA_IDENTIFIERshort=0x53CONTENTshort=0x54PARENTAL_RATINGshort=0x55TELETEXTshort=0x56TELEPHONEshort=0x57LOCAL_TIME_OFFSETshort=0x58SUBTITLINGshort=0x59TERRESTRIAL_DELIVERY_SYSTEMshort=0x5AMULTILINGUAL_NETWORK_NAMEshort=0x5BMULTILINGUAL_BOUQUET_NAMEshort=0x5CMULTILINGUAL_SERVICE_NAMEshort=0x5DMULTILINGUAL_COMPONENTshort=0x5EPRIVATE_DATA_SPECIFIERshort=0x5FSERVICE_MOVEshorr=0x60SHORT_SMOOTHING_BUFFERshort=0x61FREQUENCE_LISTshort=0x62PARTIAL_TRANSPORT_STREAMshort=0x63DATA_BROADCASTshort=0x64AC3_AUDIOshort=0x81PROGRAM_IDENTIFIERshort=0x85CAPTION_SERVICEshort=0x86CONTENT_ADVISORYshort=0x87EXTENDED_CHANNEL_NAMEshorr=0xA0SERVICE_LOCATIONshort=0xA1TIME_SHIFTED_ATSC_SERVICEshort=0xA2COMPONENT_NAMEshort=0xA32.4.4TableType510这个接口定义一组相应于MPEG、ATSC和DVB表格类型,或者专用表格如DCII的常数。公共属性UNKNOWNshort=0CA_INF0short=1MPEGPSICAT表格。SERVICE_INFOshort=2MPEGPSIPMT表格.TRANSPORT_INFOshort=3MPEGPSITSDT表格。NAVIGATION_INFOshort=4DVBBAT和SDT表格,以及ATSCVCT表格。NET_INFOshort=5DVBNIT表格和ATSCMGT表格。RATING_INFOshort=6ATSCRRT表格。TIME_INFOshort=7DVBTOT表格和ATSCSTT表格。EVENT_INFOshort=8DVBEIT表格和ATSCEIT表格。2.5管道信息包(见图6)这个信息包表示管道(或网络)概述。它表示相关于传送输出方法如MPEG-2的对象。它也能够包括关于非MPEG输出协议如IP的信息。2.5.1SatelliteInformation605这个接口表示关于卫星输出网络中卫星的信息。公共操作getSatelliteID()int返回这个卫星的ID。getSatelliteName()String返回整个卫星名称。getSatelliteAbbreviation()String返回缩写的卫星名称。getNumberOfTransponders()int返回这个卫星上可利用的转发器数量。getTransponderNumbers()int[]这种方法返回这个卫星上一系列可利用的转发器。getTransponderName(transponderNumberint)String返回规定的转发器的名称。getTransponderNumber(transportStreamIDint)int返回输出规定的TS的转发器数量。2.5.2BouquetInformation630这个接口表示关于一揽子内容(一群能够跨过TS和网络边界的服务)的信息,它是DVB特定的概念。公共操作getBouquetID()int这种方法返回这个一揽子规定的ID。getName()java.lang.String这种方法返回这个一揽子内容的名称。2.5.3TransportStreamInfo660这个接口提供关于TS的信息。由SystemInformationType810产生。公共操作getLocator()org.davic.net.Locator这种方法返回这个TS的URL。getNetworkID()int返回传递这个TS的网络的ID。getTransportStreamID()int这种方法返回这个TS的ID。getDescription()String返回这个TS的文本名称或描述符。getOriginalNetworkID()int这种方法返回产生TS的网络的网络ID。如果这个TS产生在传递它的网络上,这种方法返回与getNetworkID相同的ID。2.5.4NetworkInformation这个接口提供关于传送流网络的描述信息。公共操作getNetworkID()int这种方法返回这个网络的ID。getLocator()org.davic.net.Locator这种方法返回这个网络的URL。getNetworkName()java.lang.String这种方法返回这个网络的名称。2.5.5MPEGPipeline670MPEGSIManager表示MPEG-2特定的SI。由PipelineInformation650和MPEGTableDescriptors540产生。公共操作retrieveSatelliteInformation(transportStreamIDint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)SatelliteInformation[]这种方法返回一系列表示有关卫星传递规定的TransportStream信息的对象。如果没有规定TS,它返回一系列表示关于所有已知卫星信息的对象。如果这不是卫星网络,则它返回空阵列。RetrieveBouquet(bouquetIDint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.pipeline.BouquetInformation这种方法返回关于规定的一揽子内容的信息。RetrieveBouquet(listenerorg.atsc.abstractSI.uril.SIRetrievalListener)BouquetInformation[]返回一系列表示所有已知Bouquet的BouquetInformation对象。RetrieveTransportStream(urlLocator,listenerorg.atsc.abstractSI.util.SIRetrievalListener)TransportStreamInfo该方法返回表示有关规定的TS信息的特定的TransportStreamInfo对象。RetrieveTransportStreams(networkIDint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)TransportStreamInfo[]返回一系列表示规定网络的所有已知传送流的TransportStreamInfo对象。RetrieveNetwork(networkIDint,listenerorg.atsc.abstractSI.util.SIRetrievalListener)NetworkInformation返回它的ID规定的NetworkInformarion。RetrieveNetworks(listenerorg.atsc.abstractSI.util.SIRetrievalListener)NetworkInformation[]返回表示所有已知网络的NetworkInformation对象的阵列。addListener(listenerSIChangeListener)void登记SIChangeListener815,用于与SIManager240提供的对象中变化有关的变化。这包括TransportStreamInfo660、NetworkInformation610等,但不包括可以经过适当的群如ChannelCollection220和ProgramSchedule320收听的TvChannel225和ProgramEvent340。因此,SIInfbChangeEvent850将输出给收听者。removeListener(listenerSIChangeListener)void用于撤销SIChangeListener815的登记。2.5.6SISpecificManager640这个SI管理器具有关于内容输出介质特定的信息。从SIManager240产生。公共操作getPipelineInfb()org.atsc.abstractSI.pipeline.PipelineInformation[]这种方法返回表示不同的内容输出介质如MPEG-2传送的对象列表。2.5.7PipelineInformation650这个提取类是用于不同内容输出介质的位置保持器(placeholder)。它必须通过对于特别的传送方法如MPEG-2TS特定的对象扩展。2.6数据信息包(图7)这个信息包表示数据事件时间表。类似于音频/视频节目,它们也可以是对于给定TvChannel安排的数据事件。2.6.1TvChannelWithData710这个接口通过加上存取与这个TvChannel有关的数据事件时间表来扩展TvChannelDetails。从TvChannelDetails245产生。公共操作getDataSchedule()org.atsc.abstractSI.data.DataSchedule这种方法返回数据事件时间表。2.6.2DataSchedule720这个接口表示对于给定的、以时间排序的TvChannel的一群数据事件。公共操作addListener(listenerorg.atsc.abstractSI.util.SIChangeListener)void登记SIChangeListener815,用于与这个时间表上DataEvents730的变化有关的事件。当这个时间表上任何DataEvent730变化时,将DataChangeEvent840输出给指定的收听者。RemoveListener(listenerorg.atsc.abstractSI.util.SIChangeListener)void撤销SIChangeListener的登记。RetrieveEvent(whenjava.util.Date,listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.data.DataEvent返回对于规定时间的数据事件。返回包含规定时间的数据事件。规定的时间落在数据事件的开始时间和开始时间加上事件的持续时间之间。当规定的时间不落在任何已知的数据事件内时,返回空。RetrieveEvents(startOfIntervaljava.util.Date,EndOfIntervaljava.util.Date,listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.data.DataEvent[]对于规定的时间间隔,返回这个频道上所有已知的数据事件。RetrieveEvent(locatororg.davic.net.Locator,listenerorg.atsc.abstractSI.util.SIRetrievalListener)DataEvent这种方法检索匹配于定位器的数据事件。该事件必须是这个时间表的一部分。2.6.3DataEvent730这个对象表示对于特别的时间间隔与TvChannel225有关的数据事件。在ATSC中,信息在DIT表格中输出。DIT是PSIP的扩展。它类似于EIT,但它宣布数据事件(不是视听事件),并且在ATSCT3/S13数据广播说明中定义。从SIUpdate830产生。公共操作getLocator()org.davic.net.Locator返回表示这个数据事件的定位器。getStartTime()java.util.Date返回这个数据事件的开始时间。getEndTime()java.util.Date返回这个数据事件的结束时间。getDuration()long立刻返回这个数据事件的持续时间。getTitle()java.lang.String返回数据事件标题。RetrieveDescription(listenerorg.atsc.abstractSI.util.SIRetrievalListener)java.lang.String返回该事件的文本描述。这个信息来自ATSC中的ETT或DVB中的扩展事件描述符。当没有ETT可用于这个事件时,将返回空串。retrieveContentAdvisory(listenerorg.atsc.abstractSI.util.SIRetrievalListener)org.atsc.abstractSI.guide.ContentRatingAdvisory返回每个费率范围的ContentAdvisory信息的列表。getTvChannel()org.atsc.abstractSI.navigation.TvCharmel返回这个数据事件相关的TvChannel。在DVB中,通过服务ID,事件和TvChannel相关;在ATSC中,通过源ID,它们相关。2.7实用信息包(图8)这个信息包定义将支持功能提供给SI信息包的类和接口。这包括通知方法(事件和收听者),用于创建SIManager对象的Factory方法,以及所有异常。如面向对象编程的领域所知道的,Factory方法是解决问题的方法和结构。2.7.1SIFactory805这个类提供一种创建实现SIManager接口240的对象的方法。这个类在Factory方法设计模式之后建模。公共操作SIFactory()构造器getSIManager()SIManager返回SIManager接口的实现,或者如果不能利用,则返回空。2.7.2SIChangeListener815应该通过使用应用类来收听SI对象中的变化来实现SIChangeListener接口。它提供一种通过收听SI对象的回答信号来通知事件的方法。公共操作SIChange(eventSIChangeEvent)void当现有的SI对象改变时调用这种方法,检测新的SI对象或现有的SI对象不再可用。2.7.3SIChangeEvent834将SIChangeEvent对象834发送到SIChangeListeners815,以通知新的事件。由EventObject820产生。公共操作getType()byte返回事件类型(在SIChangeEventType接口中定义可能的值)。2.7.4SIChangeEventType这个接口定义相应于SIChangeEvent类型值的常数。公共属性OBJECT_CHANGEDbyte=1现有的对象已经改变。NEW_OBJECTbyte=2检测新的对象。OBJECT_UNKNOWNbyte=3对象不再可利用。2.7.5TvChannelChangeEvent835这个事件输出关于特定的TvChannel的信息。由SIChangeEvent834产生。公共操作getChangedChannel()Locator这种方法用于确定哪个频道已经改变。2.7.6ProgramChangeEvent845这个事件输出关于特定的ProgramEvent的信息。由SIChangeEvent834产生。公共操作getChangedProgram()Locator这种方法用于确定哪个ProgramEvent已经改变。2.7.7SIInfoChangeEvent850这个事件输出信息,所输出的信息通常经过SIManager获得,是有关特定高级别SI对象的信息。公共操作getSIObjectType()short这种方法用于确定哪种类型的SI对象已经改变。这可以是TransportStreamInfo660、NetworkInformation610、BouquetInformation630、RatingRegion330等。getSIObjectID()int这种方法返回改变的SI对象的ID,该对象的类型由getSIObjectType方法识别。例如,如果SIObjectType是TransportStreamInfo,则SIObjectID是TSID。2.7.8SIUpdate830这个接口能够与任何SI实体相关。它提供关于何时数据被最后更新的信息。SI数据库可以具有新的有关所有的收听者得到通知的信息。公共操作getUpdateTime()java.util.Date返回包含在实现这个接口的对象中的信息被最后更新的时间。返回值—最后更新的日期。2.7.9SIDelayedDeliveryException875当请求的数据不能立刻利用时(例如没有高速缓冲存储),发出这种异常,并且给出异步输出数据的信号。由Exception860产生。公共操作getRequest()org.atsc.abstractSI.util.SIRequest这种方法返回表示异步请求的对象。它能够用于取消请求,并且使它与输出请求数据的事件相关。2.7.10SIRetrievalListener870通过应用类接收关于整个异步SI请求的事件来实现这个接口。一般地,收听者将它自己登记在可能异步调用的时间(作为参数中的一个)。收听者仅登记一个调用,并且当请求满足时自动地撤销登记。公共操作postRetrievalEvent(eventorg.atsc.abstractSI.util.SIRetrievalEvent)void这种方法用于将异步SI检索事件输出给收听者。2.7.11.SIRetrievalEvent865这个事件通过任何“retrieveXXX”调用异步输出请求的数据。以词“retrieve”开始的所有方法落入这个范畴,例如方框225的retrieveDetails()、块320的retrievePresentEvent()等。提供数据本身或者提供故障的指示。它也提供通过使用请求序列号将这个事件与最初的请求相关的方法。仅当“retrieveXXX”调用发出SIDelayedDelivery异常875时,输出这个事件,它包含具有请求序列号的SIRequest对象886。由EventObject820产生。公共操作getSequenceNumber()int这种方法返回分配给最初异步检索请求的序列号,这个事件响应于该请求。2.7.12SIRequest886这个对象便于异步检索SI数据。这个对象可以用于取消等待状态的请求,并且使该请求与输出请求数据的事件相关。公共操作cancelRequest()boolean这种方法将取消等待状态的请求。返回表示这个请求成功取消的值“True”。“False”表示请求已经输出,并且不能取消。getSequenceNumber()int这种方法返回与这个异步检索调用有关的号码。它能够用于将该子序列事件与这个请求配对。2.7.13SIRetrievalSuccessEvent884这个事件发出请求的数据已经检索并且被输出的信号。由SIRetrievalEvent865产生。2.7.14SIRetrievalSingleSuccessEvent892该事件输出请求的单个对象。由SIRetrievalSuccessEvent884产生。公共操作getResult()java.lang.Object这种方法用于获得这个事件输出的数据。特定类型(类)的返回对象可以从最初调用的上下文预计它是通过“retrieveXXX”方法同步返回的相同的对象。2.7.15SIRetrievalMultipleSuccessEvent894该事件提供一系列请求的对象。由SIRetrievalSuccessEvent884产生。公共操作getResult()java.lang.Object[]这种方法用于获得这个事件输出的数据。特定类型(类)的返回对象可以从最初调用的上下文预计它是通过“retrieveXXX”方法同步返回的相同的对象。2.7.16SIRetrievalFailEvent882这个事件发出输出请求的数据失败的信号。这个故障可能的原因可以是数据不在TS中或资源不能用于获得该数据。由SIRetrievalEvent865产生。2.7.17SIException880这是当特别的SI相关的调用包含无效参数时能够发出的一般异常。由Exception860产生。2.7.18SystemInformationType810这个接口提供利用特定的SI数据库(例如,DVBSI数据库、ATSCPSIP数据库等)公共属性ATSC_PSIPshort=lDVB_SIshort=2SCTE_SIshort=3公共操作getSystemInformationType()short用于确定输出这个元素的特定SI格式(例如,ATSCPSIP,DVBSI等)。2.7.19DataChangeEvent840这个事件输出关于特定的数据事件的信息。由SIChangeEvent834产生。公共操作getChangeData()org.davic.net.Locator2.7.20SINotAvailableException890该异常表示请求的数据不能用于特定的情况。由SIException880产生。2.7.21DeliverySystemType807这个接口提供有关输出系统类型(例如,有线电视、卫星等)的信息,这些输出系统是实现这个接口的特定对象的系统。公共属性CABLE_DELIVERY_SYSTEMshort=lSATELLITE_DELIVERY_SYSTEMshort=2TERRESTRIAL_DELIVERY_SYSTEMshort=3因此,能够看到本发明提供的API允许在数字电视终端的应用程序从数字TS恢复SI,而不用考虑特定的格式类型。API提取SI的相关部分以终端可以使用的格式提供它。该系统适用于例如包括MPEGPSI、DVBSI和ATSCPSIP以及专用SI的SI格式。虽然结合各种具体的实施例描述了本发明,但是本领域的普通技术人员应该理解,可以进行许多修正和改变,而不背离如书所述的精神和范围。例如,尽管这里讨论了不同的语法元素,但是,要注意它们只是例子而已,可以使用任何语法。另外,本发明适用于实际上任何类型的网络,包括有线电视或卫星电视广播通讯网络、局域网(LAN)、城域网(MAN)、广域网(WAN)、互联网络、企业网和因特网、或它们的组合。另外,已知的计算机硬件、固件和/或软件技术可以用于实现本发明。权利要求1.一种电视机顶终端包括具有计算机程序代码装置的计算机可读介质;以及用于执行所述计算机程序代码装置以实现应用程序编程接口(API)的装置,其中API适用于提取数字电视传送流中的系统信息(SI),该流由终端以多种不同格式的任何一种格式接收;以及API以通用格式提供提取的SI,该格式适用于终端的应用程序而不考虑提供SI的特定格式。2.如权利要求1所述的终端,其中API提供导航功能,以使得终端能够根据提取的SI在传送流中不同的电视频道之间导航。3.如权利要求1所述的终端,其中API提供节目指南功能,用于根据提取的SI在传送流的电视频道实现电子节目指南。4.如权利要求1所述的终端,其中API提供选择功能,用于根据提取的SI在传送流中选择特定电视频道。5.如权利要求1所述的终端,其中API提供描述符检索功能,用于根据提取的SI恢复SI的描述符。6.如权利要求1所述的终端,其中API提供包含支持对象的实用功能,这些对象包括事件和异常,用于支持同步输出SI到应用程序。7.如权利要求1所述的终端,其中API提供数据功能,用于根据提取的SI在传送流中实现数据服务的指南。8.如权利要求1所述的终端,其中API提供管道功能用于根据提取的SI提供关于传送流的物理输出方法的信息。9.如权利要求1所述的终端,其中多种可利用SI格式包括下列中的至少一种活动图像专家组(MPEG)节目特定信息(PSI);数字视频广播(DVB)系统信息(SI);高级电视系统委员会(ATSC)节目和系统信息协议(PSIP);有线电视和电视工程师协会的有线电视SI数字视频标准234;以及专用SI。10.如权利要求1所述的终端,还包括存储器,当在终端接收传送流时,存储服务信息;其中API提供检索功能调用,使终端的调用应用程序能够检索服务信息,使得在存储器可利用的SI实质上立刻作为直接返回值返回,并且如果不能利用存储器中的服务信息,所述检索功能调用返回异常信号到调用的应用程序,使得将SI异步地输出到调用的应用程序。11.如权利要求10所述的终端,其中API提供包含支持对象的实用功能,这些对象包括事件和异常,用于支持将SI异步输出到调用的应用程序。12.如权利要求1所述的终端,其中传送流以多种可利用传送流格式中的一种格式提供;以及API提取SI,以适用于应用程序的通用格式提供它,而不用考虑提供SI的特定的传送流格式。13.如权利要求12所述的终端,其中API提供一个对于可利用传送流格式具有通用信息的基本信息包;以及API适用于对于终端接收的传送流的格式具有特定信息的分开的信息包。14.如权利要求1所述的终端,其中API通过使终端的调用应用程序能够获得在终端可利用的SI的子集来提供服务信息的递增检索,完成获得的SI的分析,以及如果根据分析认为需要,则检索附加的SI。15.如权利要求14所述的终端,其中附加的SI从在终端存储器的终端可利用SI的子集来检索。16.如权利要求14所述的终端,其中附加的SI从传送流检索。17.如权利要求1所述的终端,其中API使终端的调用应用程序能够恢复传送流中SI的子集,同时拒绝传送流中调用的应用程序不需要的其他SI。18.如权利要求1所述的终端,其中API提供响应于提取的SI的滤波功能,以使应用程序能够在传送流中规定感兴趣的应用程序的至少一个服务。19.如权利要求18所述的终端,其中滤波功能适用于根据服务是否与下列中至少一个相关来滤波传送流中的服务当来自多个传送流的服务可利用时的传送流;网络;一揽子内容;卫星;卫星转发器;服务名称;服务/频道号码;喜欢的频道;以及主题。20.如权利要求1所述的终端,其中API使用多个信息包实现,以提取SI;以及在终端的不同应用程序包括根据每个应用程序要求的提取SI的特定部分的信息包中仅仅特定的那些。21.一种在电视机顶终端、用于处理由终端以多种不同格式中任何一种格式接收的数字电视传送流的系统信息(SI)的方法,包括下列步骤提供具有计算机程序代码装置的计算机可读介质;以及执行所述计算机程序代码装置,以实现应用程序编程接口(API),其中API适用于提取来自多种不同格式中任何一种格式的系统信息(SI);以及API提供以通用的格式提取SI,该通用格式适用于终端应用程序的使用,而不管提供SI的特定格式。全文摘要应用程序编程接口(API)使得在数字电视终端的应用程序(例如,applets)能够从数字传送流来恢复系统信息(SI),而不考虑特定的SI格式。API提取SI的相关部分,以通用的、有用的格式提供它。该系统适用于例如SI格式,包括MPEG节目特定的信息(PSI)、DVBSI、ATSC节目和系统信息协议(PSIP)、有线电视SI如数字视频标准234以及专用的SI。在选择的实施例中,异步输出的SI提供用于在终端的存储器中不能立刻利用的SI。另外,API能够进一步提取SI,使得它独立于特定的传送流格式(例如,MPEG-2)。另外,使应用程序能够获得在终端可利用的SI的很小的子集,分析它,并根据该分析在需要时,检索附加的SI,由此可以提供SI数据的递增检索。API包括导航信息包(110)、节目指南信息包(120)、节目选择/调谐信息包(130)、描述符信息包(140)、实用信息包(150)、数据信息包(160)以及管道信息包(170)。文档编号H04N7/24GK1332935SQ99815174公开日2002年1月23日申请日期1999年10月28日优先权日1998年10月30日发明者彼得·彼得卡,托德·卡斯曼,吉萨·曼加洛尔申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1