EPG功能實現(xiàn)介紹_第1頁
EPG功能實現(xiàn)介紹_第2頁
EPG功能實現(xiàn)介紹_第3頁
EPG功能實現(xiàn)介紹_第4頁
EPG功能實現(xiàn)介紹_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

/目錄TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc258568125”EPG功能實現(xiàn) PAGEREF_Toc258568125\h2HYPERLINK\l"_Toc258568126"第一章 EPG簡介 PAGEREF_Toc258568126\h2HYPERLINK\l"_Toc258568127”1。EPG的產(chǎn)生 PAGEREF_Toc258568127\h2HYPERLINK1EPG信息的構(gòu)成 PAGEREF_Toc258568129\h3HYPERLINK\l”_Toc258568130"2基本EPG信息的傳輸方式?PAGEREF_Toc258568130\h3HYPERLINK\l"_Toc258568131"2。1說明?PAGEREF_Toc258568131\h5HYPERLINK\l”_Toc258568132”2。2段到傳送流(TS)包的映射 PAGEREF_Toc258568132\h6HYPERLINK\l"_Toc258568133”2.3PID及表標(biāo)識符字段編碼 PAGEREF_Toc258568133\h6HYPERLINK\l"_Toc258568134"2。4重復(fù)率 PAGEREF_Toc258568134\h7HYPERLINK\l”_Toc258568135"3SI信息的插入 PAGEREF_Toc258568135\h8HYPERLINK\l”_Toc258568136"4網(wǎng)絡(luò)信息 PAGEREF_Toc258568136\h8HYPERLINK\l"_Toc258568137”4。1網(wǎng)絡(luò)基本信息的構(gòu)成?PAGEREF_Toc258568137\h8HYPERLINK\l”_Toc258568138"4。2TS流信息 PAGEREF_Toc258568138\h8HYPERLINK4.3網(wǎng)絡(luò)信息在NIT表中的表示?PAGEREF_Toc258568139\h9HYPERLINK\l”_Toc258568140"5。PSI/SI主要字表之間邏輯關(guān)系 PAGEREF_Toc258568140\h11HYPERLINK\l"_Toc258568141"第三章EPG在STB上的實現(xiàn) PAGEREF_Toc258568141\h12HYPERLINK\l"_Toc258568142"1EPG信息的提取 8142\h12HYPERLINK\l”_Toc258568143”2實際應(yīng)用中EPG接收的步驟?PAGEREF_Toc258568143\h12HYPERLINK3。1接收TDT表 PAGEREF_Toc258568145\h14HYPERLINK3.2接收EIT表 PAGEREF_Toc258568146\h14HYPERLINK\l"_Toc258568147"3.3注意事項?PAGEREF_Toc258568147\h16HYPERLINK4。MJD和UTC時間轉(zhuǎn)換 PAGEREF_Toc258568148\h17?EPG功能實現(xiàn)EPG簡介1.EPG的產(chǎn)生EPG的英文全稱是ElectronicProgramGuide,一般稱“電子節(jié)目指南",它是傳輸流中所包含的信息。數(shù)字電視相對于傳統(tǒng)的模擬電視而言,傳輸更多的數(shù)字化信息,多種業(yè)務(wù)可以混合在一起通過一個信道傳輸。因此,數(shù)字電視已經(jīng)不是單一的電視業(yè)務(wù),而是指通過電視傳輸通道傳輸?shù)臄?shù)字業(yè)務(wù),包括視頻、音頻、圖像、數(shù)據(jù)等。這就需要引入一個重要的概念—-服務(wù)信息(ServiceInformation,SI).全球數(shù)字電視已經(jīng)進(jìn)入快速發(fā)展階段,可以預(yù)見,在今后幾年,與數(shù)字電視相關(guān)的業(yè)務(wù)將大幅度增長。隨之而來的問題是,當(dāng)數(shù)字電視能為用戶提供數(shù)倍于目前節(jié)目量的節(jié)目及多種業(yè)務(wù)時,用戶怎樣才能便捷地找到所要的節(jié)目和信息呢?通過SI信息實現(xiàn)的電子節(jié)目指南(EPG)能更好的幫助用戶搜索數(shù)字電視頻道,獲得節(jié)目播出時間,了解節(jié)目內(nèi)容,預(yù)定喜愛的節(jié)目,找到更多的對用戶有用的信息,使數(shù)字電視具備更多的交互功能.因此,電子節(jié)目指南(EPG)顯然是必不可少的工具。?

數(shù)字電視與模擬電視節(jié)目選擇的方式完全不同,模擬電視每個頻道對應(yīng)一個節(jié)目,只要調(diào)到相應(yīng)的頻率,就可以看到圖像.而在數(shù)字電視中,多個節(jié)目被復(fù)用到一個碼流中,每個節(jié)目只占有碼流中的部分包,一個物理的頻道只能給出包含多個節(jié)目的傳輸流,要觀看其中的某個節(jié)目,還必須從碼流中提取出節(jié)目對應(yīng)的傳輸包,然后再進(jìn)行解碼。怎樣從眾多的節(jié)目和服務(wù)中選取所需要的服務(wù)就變得比較復(fù)雜。此外,各種影響接收的技術(shù)參數(shù)對用戶來說也是非常難懂的。為此,提供一些必要的服務(wù)信息以幫助用戶選擇節(jié)目使非常必要的。?第二章.EPG信息的構(gòu)成與傳輸1EPG信息的構(gòu)成EPG信息分為基本EPG信息和擴(kuò)展EPG信息兩種。基本EPG信息是用SI信息表進(jìn)行描述,以文本格式表示的與節(jié)目描述有關(guān)的網(wǎng)絡(luò)信息、節(jié)目群信息、業(yè)務(wù)描述信息和事件信息,可以完全通過GY/Z174—2001中規(guī)定的NIT、BAT、SDT、EIT和EMT進(jìn)行表示和傳輸,這些表被分為一個或若干個段(SECTION),每個分段包含有一部分或全部關(guān)于表的信息,然后插入到TS流傳輸包中.構(gòu)成圖如下:基本EPG信息的組成構(gòu)成擴(kuò)展EPG信息是在基本EPG信息基礎(chǔ)上的擴(kuò)充,它描述網(wǎng)絡(luò)、業(yè)務(wù)群、業(yè)務(wù)、事件、EPG提供商以及廣告等方面的擴(kuò)充信息。當(dāng)用于數(shù)字電視平臺之間交換EPG信息時,按XML格式描述全部EPG信息,內(nèi)容被封裝成具有多級目錄結(jié)構(gòu)的文件系統(tǒng),通過數(shù)據(jù)轉(zhuǎn)盤傳遞,這些信息的入口采用EPG映射表(EMT)進(jìn)行描述。基本EPG信息是必需的,擴(kuò)展EPG信息是可選的。EPG信息組織層次圖2基本EPG信息的傳輸方式基本EPG信息采用表傳輸方式。在數(shù)字電視中,所有視頻、音頻、文字、圖片等經(jīng)數(shù)字化處理后都變成了數(shù)據(jù),并按照MPEG-2的標(biāo)準(zhǔn)打包,形成固定長度(188個字節(jié))的傳送包,然后將這些數(shù)據(jù)包進(jìn)行復(fù)用,形成傳送碼流(TS),通常一個頻道對應(yīng)一個TS流,一個頻道的TS流由多個節(jié)目及業(yè)務(wù)組成.在TS流中如果沒有引導(dǎo)信息,機(jī)頂盒將無法找到需要的碼流,所以在MPEG-2中,專門定義了PSI信息,其作用是自動設(shè)置和引導(dǎo)接收機(jī)進(jìn)行解碼.PSI信息在復(fù)用時通過復(fù)用器插入到TS流中,并用特定的PID(包標(biāo)識符)進(jìn)行標(biāo)識。?

在MPEG—2標(biāo)準(zhǔn)中定義的節(jié)目信息PSI,是對單一碼流的描述,由于系統(tǒng)通常存在多個碼流,為了使使用者能在多碼流中快速地找出自己需要的業(yè)務(wù),在DVB標(biāo)準(zhǔn)中對MPEG—2的PSI進(jìn)行了擴(kuò)充,在PSI四個表的基礎(chǔ)上再增加了九個表,形成SI.SI是對整個系統(tǒng)所有碼流的描述,描述系統(tǒng)傳輸內(nèi)容、廣播數(shù)據(jù)流的編排和時間表等的數(shù)據(jù),它包括PSI信息.PSI即為節(jié)目專用信息。PSI由節(jié)目關(guān)聯(lián)表(PAT)、條件接收表(CAT)、節(jié)目映射表(PMT)和網(wǎng)絡(luò)信息表(NIT)組成。節(jié)目關(guān)聯(lián)表(ProgramAssociat(yī)ionTable,PAT):PAT由PID0X0000標(biāo)識,它的主要作用是指出傳輸碼流中包括那些節(jié)目,節(jié)目的編號與對應(yīng)的節(jié)目映射表(ProgramMapTable,PMT),并指定網(wǎng)絡(luò)信息表(NetworkInformationTable,NIT)所對應(yīng)的PID。

條件接收表(ConditionalAccessTable,CAT):CAT由PID0X0001標(biāo)識,CAT提供系統(tǒng)中條件接收的信息,指定CA系統(tǒng)與它們相應(yīng)的授權(quán)管理信息EMM之間的聯(lián)系,指定EMM的PID,以及其它相關(guān)的參數(shù)。在武漢數(shù)字電視平臺中它指定愛迪德CA系統(tǒng)的EMM為0X66,永新同方CA系統(tǒng)的EMM為0X68,這樣機(jī)頂盒根據(jù)這一數(shù)值去解析CA加密信息.

PMT:PMT指出相應(yīng)節(jié)目中包含的內(nèi)容,即節(jié)目由那些流構(gòu)成,以及這些流的類型(視頻、音頻、數(shù)據(jù)),指定節(jié)目中各流所對應(yīng)的PID,以及該節(jié)目的PCR所對應(yīng)的PID。?

NIT:NIT提供與多組傳輸流、物理網(wǎng)絡(luò)及網(wǎng)絡(luò)傳輸相關(guān)的一些信息,比如用于調(diào)諧的頻率信息以及編碼方式、調(diào)制方式等參數(shù)方面的信息,例如武漢電視臺的傳輸頻點為459MHz,調(diào)制方式為64QAM,糾錯方式為RS方式等。SI信息共定義了9個表,但有一些表實際意義不大:

1)業(yè)務(wù)群關(guān)聯(lián)表(BAT):-業(yè)務(wù)群關(guān)聯(lián)表提供了業(yè)務(wù)群相關(guān)的信息,給出了業(yè)務(wù)群的名稱以及每個業(yè)務(wù)群中的業(yè)務(wù)列表。2)業(yè)務(wù)描述表(SDT):—業(yè)務(wù)描述表包含了描述系統(tǒng)中業(yè)務(wù)的數(shù)據(jù),例如業(yè)務(wù)名稱、業(yè)務(wù)提供者等.3)事件信息表(EIT):—事件信息表包含了與事件或節(jié)目相關(guān)的數(shù)據(jù),例如事件名稱、起始時間、持續(xù)時間等?!煌拿枋龇糜诓煌愋偷氖录畔⒌膫鬏敚绮煌臉I(yè)務(wù)類型.4)運(yùn)行狀態(tài)表(RST):-運(yùn)行狀態(tài)表給出了事件的狀態(tài)(運(yùn)行/非運(yùn)行)。運(yùn)行狀態(tài)表更新這些信息,允許自動適時切換事件。5)時間和日期表(TDT):—時間和日期表給出了與當(dāng)前的時間和日期相關(guān)的信息。由于這些信息頻繁更新,所以需要使用一個單獨的表。6)時間偏移表(TOT):—時間偏移表給出了與當(dāng)前的時間、日期和本地時間偏移相關(guān)的信息。由于時間信息頻繁更新,所以需要使用一個單獨的表。7)填充表(ST):-填充表用于使現(xiàn)有的段無效,例如在一個傳輸系統(tǒng)的邊界。8)選擇信息表(SIT):-選擇信息表僅用于碼流片段(例如,記錄的一段碼流)中,它包含了描述該碼流片段的業(yè)務(wù)信息的概要數(shù)據(jù)。9)間斷信息表(DIT):-間斷信息表僅用于碼流片段(例如,記錄的一段碼流)中,它將插入到碼流片段業(yè)務(wù)信息間斷的地方。?GY/Z174-2001中NIT、BAT、SDT、EIT都被分成為一個或若干個段表示,然后插入到TS包中。段是一種用來把SI信息表和EPG信息表映射成TS包的語法結(jié)構(gòu)。這些信息語法結(jié)構(gòu)符合GB/T17975.1—2000定義的專用段語法結(jié)構(gòu)。EPG的功能均可通過SI來實現(xiàn),也就是說SI是實現(xiàn)EPG功能的前提.在SI中,最重要的是NIT、EIT和SDT,利用這3個表中的數(shù)據(jù)就可以構(gòu)成功能不同的EPG。?

NIT的作用在于提供調(diào)諧的頻率信息以及編碼方式、調(diào)制方式等參數(shù)方面的信息。SDT的作用是提供對每個業(yè)務(wù)的描述,使用戶能方便地了解每個業(yè)務(wù)的內(nèi)容。對于每一個TS都有一個SDT與之對應(yīng)。EIT實際上是一個節(jié)目表,對于每一個節(jié)目都存在一個獨立的EIT。EPG包含兩個部分:一是播出前端的EPG編輯器;二是用戶端接收機(jī)相應(yīng)的控制軟件,兩部分一一對應(yīng),每個接收機(jī)的相關(guān)部分必須要按照前端定義的數(shù)據(jù)結(jié)構(gòu)來定制,從而接收顯示前端送出的業(yè)務(wù)信息。以上這些表在傳送流中以數(shù)據(jù)段的形式傳送,不同的信息表在傳送流中通過賦予不同的特定的PID來進(jìn)行區(qū)分。而具有相同PID的不同信息表則進(jìn)行由表標(biāo)識符TABLEID來區(qū)分,在接收端通過查這些特定的PID來找到它們.這里說明一下,TS中有兩種標(biāo)識符,一種是包標(biāo)識符,一種是表標(biāo)識符。例如SI中的SDT的每一個表都對一個特定TS中的業(yè)務(wù)進(jìn)行描述,這些業(yè)務(wù)可能是這個表所存在的TS的一部分,也可能是其它TS的一部分,這些SDT的PID都是相同的,這時候我們就可以通過不同的表標(biāo)識符來區(qū)分它們,從而識別出那一個表所描述的業(yè)務(wù)是那一個TS的。?2.1說明段的長度是可變的。除EIT表外,每個表中的段限長為1024字節(jié),但EIT中的段限長為4096字節(jié)。每一個段由以下元素的組合唯一標(biāo)識:a)表標(biāo)識符(table_id)1)表標(biāo)識符標(biāo)識段所屬的表;2)一些表標(biāo)識符已分別被ISO和ETSI定義。表標(biāo)識符的其它值可以由用戶根據(jù)特定目的自行分配.b)表標(biāo)識符擴(kuò)展(table_id_extension)1)表標(biāo)識符擴(kuò)展用于標(biāo)識子表;2)子表的解釋:子表sub_table,具有相同表標(biāo)識符(table_id)的段的集合,并且:①對NIT具有相同的table_id_extension(network_id)和version_number;②對BAT具有相同的table_id_extension(bouquet_id)和version_number;③對SDT具有相同的table_id_extension(transport_stream_id),相同的original_network_id和version_number;④對EIT具有相同的table_id_extension(service_id),相同的transport_stream_id、original_network_id和version_number。當(dāng)段語法指示(section_syntax_indicator)字段置“1”時,表標(biāo)識符擴(kuò)展(table_id_extension)字段等同于段的第四和第五字節(jié)。c)段號(section_number)1)段號字段用于解碼器將特定子表的段以原始順序重新組合。本指導(dǎo)性技術(shù)文件建議段按順序傳輸,除非某些子表的段需要比其它的段更頻繁地傳輸,例如出于隨機(jī)存取的考慮;2)在本指導(dǎo)性技術(shù)文件中指定的各種SI信息表和EPG映射表,段編號也適用于子表;d)版本號(version_number)1)當(dāng)本指導(dǎo)性技術(shù)文件中規(guī)定的SI信息表和EPG映射表所描述的TS流特征發(fā)生變化時(例如:新事件開始,給定業(yè)務(wù)的組成的基本流發(fā)生變化),應(yīng)發(fā)送更新了的業(yè)務(wù)信息數(shù)據(jù).GY/Z203—2004新版本的業(yè)務(wù)信息以傳送一子表為標(biāo)志,它與前子表具有相同的標(biāo)識符,但版本號改為下一值;e)當(dāng)前/后續(xù)指示符(current_next_indicator)每一段都要標(biāo)以“當(dāng)前”有效或“后續(xù)”有效.它使得新的SI版本可以在TS流特征發(fā)生變化之前傳輸,讓解碼器能夠為變化做準(zhǔn)備。然而,一個段的下一個版本的提前傳輸不是必需的,但如果被傳輸,它將成為該段的下一個正確版本.2.2段到傳送流(TS)包的映射段可直接映射到TS包中。段可能起始于TS包有效負(fù)載的起始處,但這并不是必需的,因為TS包有效負(fù)載的第一個段的起始位置是由pointer_field字段指定的。一個TS包內(nèi)不允許存在多于一個的pointer_field字段,其余段的起始位置均可從第一個段及其后各段的長度中計算出來,這是因為語法規(guī)定一個TS包中的段之間不應(yīng)有空隙.在任一PID值的TS包中,一個段應(yīng)在下一個段允許開始之前結(jié)束,否則就無法識別數(shù)據(jù)屬于哪個段標(biāo)題。若一個段在TS包的末尾前結(jié)束了,但又不便打開另一個段,則提供一種填充機(jī)制來填滿剩余空間。該機(jī)制對包中剩下的每個字節(jié)均填充為0xFF。這樣table_id就不允許取值為0xFF,以免與填充相混淆.一旦一個段的末尾出現(xiàn)了字節(jié)0xFF,該TS包的剩余字節(jié)必然都被填充為0xFF,從而允許解碼器丟棄TS包的剩余部分。填充也可用一般的adaptation_field機(jī)制實現(xiàn)。2.3PID及表標(biāo)識符字段編碼用于傳送PSI、SI信息段和EPG信息段的TS包的PID值見表表標(biāo)識符值(table_id)的分配2.4重復(fù)率在考慮隨機(jī)存取的系統(tǒng)中,即使結(jié)構(gòu)沒有發(fā)生變化,也建議對EPG有關(guān)的SI段重復(fù)傳輸數(shù)次.在傳輸碼率為100兆比特/秒的系統(tǒng)中,對于標(biāo)有同一個PID、table_id及table_id_extension值的業(yè)務(wù)信息段,該段的最后一個字節(jié)與下一個段的首字節(jié)發(fā)送的最小時間間隔為25毫秒。在衛(wèi)星或有線傳輸系統(tǒng)中,建議采用以下最小重復(fù)率:a)所有NIT的段應(yīng)至少每10s傳輸一次,包括其它網(wǎng)絡(luò)的NIT的段;b)所有BAT的段應(yīng)至少每10s傳輸一次;c)所有當(dāng)前傳輸流的SDT的段應(yīng)至少每2s傳輸一次;d)所有其它傳輸流的SDT的段應(yīng)至少每10s傳輸一次;e)所有當(dāng)前傳輸流的EIT當(dāng)前/后續(xù)表的段應(yīng)至少每2s傳輸一次;f)所有其它傳輸流的EIT當(dāng)前/后續(xù)表的段應(yīng)至少每10s傳輸一次;g)所有未來八日內(nèi)的EIT時間表的段應(yīng)至少每10s傳輸一次,包括八日內(nèi)其它傳輸流的EIT時間表的段;h)所有超過未來八日的EIT時間表的段應(yīng)至少每30s傳輸一次,包括超過未來八日的其它傳輸流的EIT時間表的段;i)所有TDT和TOT的段應(yīng)至少每30s傳輸一次。3SI信息的插入SI一般在復(fù)用器合成TS時插入。按照SI標(biāo)準(zhǔn)形成各表的數(shù)據(jù)段后,數(shù)據(jù)可以三種方式送入復(fù)用器:(1)將各表數(shù)據(jù)通過復(fù)用器生產(chǎn)廠家提供的應(yīng)用軟件接口(API),由復(fù)用器插入節(jié)目碼流。其優(yōu)點是結(jié)構(gòu)簡單、系統(tǒng)穩(wěn)定;缺點是需要復(fù)用器廠家提供接口資料和硬件支持,對不同廠家復(fù)用器需要編寫不同的軟件。(2)將各表數(shù)據(jù)段按MPEG-2標(biāo)準(zhǔn)打包,通過碼流播出卡輸出只包含SI信息的MPEG-2碼流,再將之送入復(fù)用器異步串行接口(ASI)與節(jié)目碼流復(fù)用。其優(yōu)點是不需要復(fù)用器廠家支持,有一定的通用性;缺點是系統(tǒng)復(fù)雜,穩(wěn)定性、可靠性不如方法(1),系統(tǒng)資源有一些浪費.(3)一些條件接收廠商在復(fù)用器后端的加擾器提供接口,因此可以通過局域網(wǎng)將各數(shù)據(jù)表送入加擾器,由加擾器向碼流中插入SI信息.其優(yōu)缺點與方式(1)類似。4網(wǎng)絡(luò)信息網(wǎng)絡(luò)信息分為網(wǎng)絡(luò)基本信息和TS流信息。它包含了與通過一個給定的網(wǎng)絡(luò)傳輸?shù)膹?fù)用流/TS流的物理結(jié)構(gòu)相關(guān)的信息,以及與網(wǎng)絡(luò)自身特性的信息。4.1網(wǎng)絡(luò)基本信息的構(gòu)成包含網(wǎng)絡(luò)標(biāo)識、網(wǎng)絡(luò)名稱、多語言網(wǎng)絡(luò)名稱和連接信息。網(wǎng)絡(luò)標(biāo)識:在整個國家范圍內(nèi)唯一確定一個網(wǎng)絡(luò),用以區(qū)別其它的網(wǎng)絡(luò)。網(wǎng)絡(luò)標(biāo)識通過NIT表中的網(wǎng)絡(luò)標(biāo)識符(network_id)進(jìn)行描述。網(wǎng)絡(luò)名稱:通過NIT中的網(wǎng)絡(luò)名稱進(jìn)行描述符(network_name_descriptor)進(jìn)行描述。多語言網(wǎng)絡(luò)名稱:通過NIT中的多語言網(wǎng)絡(luò)名稱描述符(multilingual_network_name_descriptor)進(jìn)行描述,數(shù)字電視接收終端可以根據(jù)需要選擇相應(yīng)的語言顯示網(wǎng)絡(luò)名稱。鏈接信息:通過NIT表中的鏈接描述符(linkage_descriptor)進(jìn)行描述,用于給出與包含網(wǎng)絡(luò)附加信息、EPG信息的業(yè)務(wù)的鏈接關(guān)系,或者用于給出與包含了全部網(wǎng)絡(luò)SI信息的TS流的鏈接關(guān)系。a)當(dāng)linkage_type=1時,鏈接指向一個包含網(wǎng)絡(luò)附加信息的業(yè)務(wù);b)當(dāng)linkage_type=2時,鏈接指向一個包含本網(wǎng)絡(luò)的EPG信息的業(yè)務(wù);c)當(dāng)linkage_type=4時,鏈接指向一個包含了全部網(wǎng)絡(luò)SI信息的TS流。4.2TS流信息每個網(wǎng)絡(luò)都包含一個到多個TS流,對一個具體的TS流,它包含TS流標(biāo)識、原始網(wǎng)絡(luò)標(biāo)識、TS流物理特性、TS流所包含業(yè)務(wù)列表信息.TS標(biāo)識與原始網(wǎng)絡(luò)標(biāo)識:共同標(biāo)識在一個網(wǎng)絡(luò)中的Ts流。這兩個標(biāo)識出現(xiàn)在NIT中,分別為transport_stream_id和original_network_id。傳輸系統(tǒng)描述:傳輸系統(tǒng)描述給出了TS流在衛(wèi)星、有線或者地面三種傳輸網(wǎng)絡(luò)中傳輸時傳輸通道的參數(shù)。對一個TS而言,無論采用哪種傳輸網(wǎng)絡(luò),傳輸通道的物理參數(shù)總是唯一的.如果TS流在衛(wèi)星傳輸網(wǎng)絡(luò)傳輸,使用以下參數(shù)對傳輸通道進(jìn)行描述:頻率、軌道位置、東西標(biāo)志、極化方式、調(diào)制方式、符號率、前向糾錯內(nèi)碼.由NIT表中的衛(wèi)星傳輸系統(tǒng)描述符(sat(yī)ellite_delivery_system_descriptor)描述。如果TS在有線傳輸網(wǎng)絡(luò)中傳輸,使用以下參數(shù)對傳輸通道進(jìn)行描述:頻率、前向糾錯外碼、調(diào)制方式、符號率、前向糾錯內(nèi)碼.由NIT表中的有線傳輸系統(tǒng)描述符(cable_delivery_system_descriptor)描述。如果TS在地面?zhèn)鬏斁W(wǎng)絡(luò)中傳輸,由NIT表中的地面?zhèn)鬏斚到y(tǒng)描述符(terrestrial_delivery_system_descriptor)描述,參數(shù)待定,國內(nèi)并未出臺相關(guān)規(guī)定。頻率列表信息:給出了由多個頻率傳送的某個復(fù)用流的附加頻率的完整列表,通過NIT表中的頻率描述符(frequency_list_descriptor)描述。業(yè)務(wù)列表信息:給出了網(wǎng)絡(luò)中包含的全部業(yè)務(wù)的標(biāo)識及類型。通過NIT表中的業(yè)務(wù)列表描述(service_list_descriptor)描述,每個業(yè)務(wù)通過字段service_id唯一標(biāo)識,通過字段service_type指名該業(yè)務(wù)的類型。Service_id相當(dāng)于PMY表中的program_number,但業(yè)務(wù)類型值為0x04(service_type=0x04)時(即NVOD參考業(yè)務(wù))除外,這種情況下,service_id沒有對應(yīng)的program_number。網(wǎng)絡(luò)信息構(gòu)成圖4。3網(wǎng)絡(luò)信息在NIT表中的表示NIT表在傳輸時被切分成網(wǎng)絡(luò)信息段(network_information_section).任何構(gòu)成NIT表的段,都由PID為0x10的TS包傳輸。描述現(xiàn)行網(wǎng)絡(luò)的NIT表的任何段的table_id值應(yīng)為0x40,且具有相同的table_id_ectension(network_id)。指向一個現(xiàn)行網(wǎng)絡(luò)之外的其它網(wǎng)絡(luò)的NIT表的任何段的table_id值應(yīng)取0x41。網(wǎng)絡(luò)信息在NIT段中的表示5。PSI/SI主要字表之間邏輯關(guān)系理解了這張圖也就理解了PSI/SI主要子表之間的邏輯關(guān)系,進(jìn)而就掌握了SI標(biāo)準(zhǔn)的核心內(nèi)容。

第三章EPG在STB上的實現(xiàn)1EPG信息的提取要實現(xiàn)EPG,利用SI表來實現(xiàn)是很自然的方法。在這種方法中,發(fā)送端和接收端必須達(dá)成協(xié)議。發(fā)送端必須發(fā)送接收端設(shè)備實現(xiàn)EPG所需的SI表,而接收端接收發(fā)送端發(fā)出的SI表,通過信息提取和信息重組,組織構(gòu)成EPG,并顯示給用戶。一般而言,PAT表的PID號為“0x00",解復(fù)用器工作總是通過尋找PAT表開始。PAT給出了構(gòu)成傳送流中各個節(jié)目業(yè)務(wù)的PMT的PID,同時也給出了NIT的PID號。根據(jù)PID值及對應(yīng)的TableID值可以從流中解出相應(yīng)的PMT、NIT、SDT、EIT等信息。機(jī)頂盒接收端的解析主要負(fù)責(zé)這些SI數(shù)據(jù)信息的重建.信息內(nèi)容應(yīng)與PSI和SI表中的信息相對應(yīng),它可按照Network-TransportStream—Service—Event的分層順序描述,同時內(nèi)嵌TransportStream-Program(Service)-ElementStream的分層順序。利用DVB-SI表實現(xiàn)EPG流程圖SI表的組織流程2實際應(yīng)用中EPG接收的步驟輸入頻率、符號率、調(diào)制方式鎖定頻道。接收當(dāng)前頻道上的PAT表,已知條件是PAT的PID固定為0,將PAT表解析保存。從PAT中取得NIT表的PID:方法是:當(dāng)program_number=0時,取得network_pid.當(dāng)然將NIT表的PID固定認(rèn)為是0x0010也是一種解決方法,但這種解決方法不是最基本的方式。說明:如果從PAT表中找不到NIT的PID,則將NIT的PID默認(rèn)為0x0010.根據(jù)NIT表的PID取得NIT表,解析并保存.從NIT表中的第一個descriptor()中取得network_name_descriptor可以得到網(wǎng)絡(luò)名稱,這個一般描述的是網(wǎng)絡(luò)運(yùn)營商的名稱,可以在屏幕上顯示,根據(jù)需要顯示,不是必須的。從NIT表中的第二個descriptor()循環(huán)中取得當(dāng)前網(wǎng)絡(luò)所管理的頻道資源信息表cable_delivery_system_descriptor(),從中可以得到所有幾個頻道的關(guān)鍵字段值frequency,modulat(yī)ion,symbol_rate。至此,網(wǎng)絡(luò)信息資源已全部獲得,這是關(guān)鍵的一步。根據(jù)上述網(wǎng)絡(luò)新,建上一個循環(huán),分別各自鎖定不同的頻道。在已鎖定的頻道下,接收當(dāng)前PAT表(PID=0).通過分析program_number字段就可以知道在當(dāng)前頻道上共播放了多少個節(jié)目(服務(wù)),記錄下每個服務(wù)的PMT表,解析并保存。通過一個PMT表的PID就可以接收這個節(jié)目的PMT表,解析并保存。在PMT表中取得以下幾個關(guān)鍵字段:PCR_PID,分別取得流類型字段stream_type各自對應(yīng)的流的基本PID(elementary_PID),如:當(dāng)stream_type=0x02時,表示是視頻流,那么此時,elementary_PID代表Video_PID,當(dāng)stream_type=0x04時,表示是音頻流,此時,elementary_PID代表Audio_PID..這里要著重注意:一個視頻配套多個音頻PID的情況。說明:到了這一步就可以實現(xiàn)一個節(jié)目的播放了。特別申明:在PMT表的第一個descriptor()循環(huán)中要檢測是否有CA_descriptor()描述,如果有,則取出其中的CA_system_ID和CA_PID.通過這兩個PID可以取得關(guān)于CA更詳細(xì)的信息,關(guān)于CA這里不做更詳細(xì)的解釋和描述.接收SDT表,PID固定為0x0011,注意:由于SDT和BAT的PID完全一致,因此要通過table_id來區(qū)分,其中(table_id=0x4A表示是BAT表)table_id=0x42表示是當(dāng)前服務(wù)描述SDT表,解析并保存。說明:table_id=0x46表示是其他頻道上的服務(wù)描述SDT表。通過service_id(對應(yīng)PMT表中的program_number)找到各自服務(wù)的名稱(節(jié)目名,如:CCTV—1等)。在SDT表中的service_id中找到service_descriptor(),從中可以取得service_name(如:CCTV—1等)。注意:這里free_CA_mode不能做為節(jié)目是否加密的判斷標(biāo)志,因為在有些加擾器里,并沒有對該字段進(jìn)行修改,比如barco的加擾器就是如此。還要注意兩個特殊字段:EIT_schedule_flag,該值為1時,表示在當(dāng)前頻道上出現(xiàn)了時間表(用于報告一個服務(wù)里所包含的一天甚至一個月的節(jié)目預(yù)告)。當(dāng)EIT_present_following_flag=1時,表示在當(dāng)前頻道上出現(xiàn)了出現(xiàn)/跟隨事件信息表(當(dāng)前時刻/下一時刻的信息).從第八步循環(huán),完成的有節(jié)目信息的收集:說明:至此,除了節(jié)目時間、內(nèi)容信息沒有收集外,其余的節(jié)目信息已收集完畢,包括以下內(nèi)容:a、共多少個頻道。b、每個頻道下有多少套可供播放的節(jié)目。c、每個節(jié)目的名稱,相關(guān)PCR_PID,V_PID,A_PID等。根據(jù)以上信息可以組織菜單,實現(xiàn)節(jié)目的播放了。注意:要取得多語種描述的節(jié)目名稱,可以從SDT表中的country_availability_descriptor()字段為:country_code=”CHN”代表中文,”ENG代表英文等”,但是要知道country_availability_descriptor()不是一定會播發(fā)的,也就是說這個表可能不存在。3節(jié)目內(nèi)容和時間信息的獲取3。1接收TDT表TDT信號在數(shù)字視頻廣播業(yè)務(wù)信息(SI)中作為時間和日期表,在規(guī)范里屬于強(qiáng)制規(guī)定的基礎(chǔ)數(shù)據(jù),不能被加擾,以供公開使用。TDT表的PID固定為0x0014,在所有的頻道上都有,字段為UTC_time,比如:0xc079124500代表:1993/10/13,12:45:00(后節(jié)會單獨介紹時間如何獲得),取得該時間后,就由STB的定時器自動去計算以后的時間了。3。2接收EIT表什么是event(事件)?通俗的說事件就是一個節(jié)目中的一個時間片斷。它有起始時間、持續(xù)時間、事件名稱和事件的簡單描述。也可以說一個service(節(jié)目)就是多個連續(xù)event的集合.例如:19:00—--19:30的新聞聯(lián)播就是一個event,它的起始時間是19:00;持續(xù)時間是30分鐘;節(jié)目名稱是新聞聯(lián)播。由此看出event可以任意定義,只要具備了它的幾個屬性就是一個event.EITpresent/following表示的是兩個事件。EITpresent是正在播出的事件,EITfollowing是即將播出的事件。在任一頻道上可以取得全網(wǎng)的所有的EIT表,EIT表的PID固定為0x0012當(dāng)table_id=0x4e時,表示的是當(dāng)前頻道上實際的出現(xiàn)/跟隨事件信息當(dāng)table_id=0x4f時,表示的是其它頻道上的出現(xiàn)/跟隨事件信息當(dāng)table_id=0x50-0x5f時,表示的是當(dāng)前頻道上的節(jié)目時間表當(dāng)table_id=0x60-0x6f時,表示的是其它頻道上的節(jié)目時間表當(dāng)table_id=0x4e或0x4f時,如何區(qū)分當(dāng)前出現(xiàn)時間和跟隨時間呢?通過section_number來區(qū)分,當(dāng)section_number=0x00時表示是當(dāng)前時刻,當(dāng)section_number=0x01時,表示的是下一時刻.在EIT表中有幾個非常關(guān)鍵的字段,一個是transport_stream_id表示頻道,與SDT表中的對應(yīng),service_id表示服務(wù)號(節(jié)目號),同時與PMT表中的program_number對應(yīng),如何獲取一個節(jié)目的事件信息呢?首先定位頻道:transport_stream_id,在該頻道下找到要檢測的節(jié)目service_id當(dāng)table_id=0x4e時,表示是當(dāng)前頻道,如果現(xiàn)在手中已有的當(dāng)前頻道的transport_stream_id和在此條件下EIT表中的transport_stream_id能對應(yīng)上的話,說明正確。接下來,取得當(dāng)前信息。方法是判斷section_number=0x00的段確定后找到start_time,該事件的開始時間,duration持續(xù)時間,duration+start_time就是該事件(節(jié)目)的結(jié)束時間。通過descriptor()中的short_event_descriptor()可以取得多語種的節(jié)目名和節(jié)目簡介信息,關(guān)鍵同為ISO_639_language_code(比如:“CHN”),event_name_char(比如:“新聞聯(lián)播”),text_char(節(jié)目簡介)。在數(shù)字電視中簡介部分暫可以不取(text_char)。注意:當(dāng)table_id=”0x4e”或”0x4f”時,for(;;)里面描述的事件只有一個。只有當(dāng)table_id=0x50-0x5f或0x60-0x6f時才能出現(xiàn)多個。同樣,取下一時刻信息時,要判斷的條件為section_number=0x01。舉個例子:假如現(xiàn)在時間是19:20,那么我們會收到下面這樣的當(dāng)前/后續(xù)事件:19:00-—--19:30新聞聯(lián)播event_id=0x01(當(dāng)前事件)19:31--—-20:00動畫片event_id=0x02(后續(xù)事件)如果時間到了19:35,那么我們將會收到下面這樣更新的當(dāng)前/后續(xù)事件:19:31——--20:00動畫片event_id=0x02(當(dāng)前事件)20:01—-——22:00黑客帝國event_id=0x03(后續(xù)事件)EITSchedule用來發(fā)送大量的event信息,也就是EPG的節(jié)目單。例如中央1臺一周的電視節(jié)目預(yù)告就需要用到EITSchedule傳送。EITSchedule被分成16個table_id傳送。當(dāng)table_id=0x50-0x5F,表示是現(xiàn)行傳送流的表;當(dāng)table_id=0x60-0x6F,表示是其他傳送流的節(jié)目表.也就是說一個節(jié)目最多可以用16個子表用來發(fā)送節(jié)目預(yù)告。這16個table_id的EIT是按照時間先后順序排列的。這里要注意的是EIT子表中引入節(jié)(segment)的概念.這是個很讓人迷惑的東西,我在這里解釋一下。在普通子表中分段使用段(section),每個子表語法結(jié)構(gòu)中都有個8bit字段last_section_number,用來表示一個子表最多由多少個段組成.由字長我們可以看出,一個子表最多有256個段。而EIT中在子表和段中插入了一個節(jié)的層次。關(guān)于節(jié)有如下的約定:一個EIT子表被分成32個節(jié);每個節(jié)最多有8個段;一個EIT子表最多有256個段;每個節(jié)所包含的事件信息最長不能超過3個小時;如果在節(jié)中小于8個段在使用,就需要靠字段segment_last_section_number標(biāo)識節(jié)中有哪些有效的段.EIT中傳送的字段segment_last_section_number值算法為s0+n–1.這里s0的值是節(jié)中的第一個段號,n表示該節(jié)中段的個數(shù)。舉個例子:如果某個EIT子表中第二個節(jié)只包含2個段,那么在這2個段中字段segment_last_section_number的值就是:8+2-1=9.大家想一想為什么這里的s0=8?因為每個節(jié)最多包含8個段,第一個節(jié)的段號是0—7,那么第二個節(jié)段號就是8—15,由此得出第二個節(jié)的s0為8.這一段約定有些難以理解,大家可以分析一些EITsechudle的碼流再結(jié)合上述就能明白了;節(jié)中包含所有的段,也就是有8個段。那么字段segment_last_section_number值算法為s0+7;如果節(jié)中包含所有的段是空段(段中沒有任何事件信息),那么字段segment_last_section_number值算法為s0+0;EITTable_id=0x50(或者0x60)的第一個節(jié)包含著今天00:00-02:59:59UTC時間的三個小時的事件信息,第二個節(jié)包含了03:00:00and05:59:59UTC時間的三個小時的事件信息,依次類推下去,一個子表最多能包含4天的事件信息;這樣我們可以計算出一個EITSchedule最多能存放多長時間的節(jié)目簡介:3h(單個節(jié)最長時間)*32(最大的節(jié)個數(shù))*16(最大的子表個數(shù))=1536h=64day一個service的EITSchedule子表最多可以傳送64天的EPG,一個子表最多可以傳送4天的EPG。在實際運(yùn)營中一般會只傳一周的節(jié)目指南,也就是說只要兩個子表就足夠了最后我用一張示意圖表示EIT中子表、節(jié)(segment)、段(section)之間的關(guān)系,對上述概念做一個回顧并出幾道題給大家便于加深理解。EIT子表是EPG的關(guān)鍵,這部分一定要熟練掌握.練習(xí):Q1:這個EITSchedule最多能傳送幾天的節(jié)目預(yù)告?Q2:Segment#0、Segment#1、Segment#31這3個節(jié)中的section字段segment_last_section_number分別是多少?Q3:假設(shè)第一個子表0x50起始event時間是從2006年1月1日00:00開始的答案:A1:因為table_id從0x50~0x59,一共10個子表,一張子表最多包含4天事件信息,所以這個EITSchedule最多能傳送40天的節(jié)目信息。A2:Segment#0中有8個section,所以segment_last_section_number=0+7=7Segment#1中只有2個section,所以segment_last_section_number=8+2—1=9Segment#31中有1個section但沒有包含event內(nèi)容,所以segment_last_section_number=248+0=248A3:因為0x50最多包含4天信息,所以0x51的Section0起始時間為2006年這里有一個特殊的情況需要處理,那就是當(dāng)running_status=0時,表示的是NVOD的參考事件描述,durat(yī)ion、start_time、event_name_char、text_char不屬于DTV的EPG范疇,遇到這種情況需要屏蔽掉。通過以上條件的循環(huán),在一個物理頻道上,可以取得所有的節(jié)目時間表和內(nèi)容,包括一天或一周、一月、二個月的節(jié)目預(yù)告。至此,可以形成完整的EPG。3。3注意事項1、當(dāng)接收到一個表后,一定要將version_number保存下來,當(dāng)?shù)诙谓邮者@個表時,如果發(fā)現(xiàn)version_number發(fā)生了變化,則一定要開始重新接收所有相關(guān)聯(lián)的表.2、還有一個可選機(jī)制,那就是接收RST表,該表用于描述EIT表的狀態(tài)變化。RST表的播發(fā)不是必須的,不能作為EIT表接收的必要條件。4.MJD和UTC時間轉(zhuǎn)換儒略日(JulianDay)是一種不用年月的計量很長時間的方法,它以公元前4713年1月1日為起點算,連續(xù)計算日期,這種發(fā)放便于求兩節(jié)目之間相隔的天數(shù).在MJD+UTC和“l(fā)ocal"MJD+localtime之間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論