專利名稱::能夠使數字電視接收機以提取的格式存取系統信息的應用程序編程接口的制作方法
技術領域:
:本發明的
背景技術:
本專利申請要求享有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日發明者彼得·彼得卡,托德·卡斯曼,吉薩·曼加洛爾申請人:通用儀器公司