版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄EPG功能實(shí)現(xiàn)2第一章EPG簡(jiǎn)介21.EPG的產(chǎn)生2第二章.EPG信息的構(gòu)成與傳輸31 EPG信息的構(gòu)成32 基本EPG 信息的傳輸方式32.1 說明52.2 段到傳送流(TS)包的映射62.3 PID 及表標(biāo)識(shí)符字段編碼62.4 重復(fù)率73 SI信息的插入84 網(wǎng)絡(luò)信息84.1網(wǎng)絡(luò)基本信息的構(gòu)成84.2 TS流信息84.3 網(wǎng)絡(luò)信息在NIT表中的表示95.PSI/SI主要字表之間邏輯關(guān)系11第三章 EPG在STB上的實(shí)現(xiàn)121 EPG信息的提取122 實(shí)際應(yīng)用中EPG接收的步驟123 節(jié)目?jī)?nèi)容和時(shí)間信息的獲取143.1 接收TDT表143.2 接收EIT表143.3 注意事項(xiàng)164.MJ
2、D和UTC時(shí)間轉(zhuǎn)換17EPG功能實(shí)現(xiàn)第一章 EPG簡(jiǎn)介1.EPG的產(chǎn)生EPG的英文全稱是Electronic Program Guide,一般稱“電子節(jié)目指南”,它是傳輸流中所包含的信息。數(shù)字電視相對(duì)于傳統(tǒng)的模擬電視而言,傳輸更多的數(shù)字化信息,多種業(yè)務(wù)可以混合在一起通過一個(gè)信道傳輸。因此,數(shù)字電視已經(jīng)不是單一的電視業(yè)務(wù),而是指通過電視傳輸通道傳輸?shù)臄?shù)字業(yè)務(wù),包括視頻、音頻、圖像、數(shù)據(jù)等。這就需要引入一個(gè)重要的概念-服務(wù)信息(Service Information, SI)。全球數(shù)字電視已經(jīng)進(jìn)入快速發(fā)展階段,可以預(yù)見,在今后幾年,與數(shù)字電視相關(guān)的業(yè)務(wù)將大幅度增長(zhǎng)。隨之而來的問題是,當(dāng)數(shù)字電視能為
3、用戶提供數(shù)倍于目前節(jié)目量的節(jié)目及多種業(yè)務(wù)時(shí),用戶怎樣才能便捷地找到所要的節(jié)目和信息呢?通過SI信息實(shí)現(xiàn)的電子節(jié)目指南(EPG)能更好的幫助用戶搜索數(shù)字電視頻道,獲得節(jié)目播出時(shí)間,了解節(jié)目?jī)?nèi)容,預(yù)定喜愛的節(jié)目,找到更多的對(duì)用戶有用的信息,使數(shù)字電視具備更多的交互功能。因此,電子節(jié)目指南(EPG)顯然是必不可少的工具。 數(shù)字電視與模擬電視節(jié)目選擇的方式完全不同,模擬電視每個(gè)頻道對(duì)應(yīng)一個(gè)節(jié)目,只要調(diào)到相應(yīng)的頻率,就可以看到圖像。而在數(shù)字電視中,多個(gè)節(jié)目被復(fù)用到一個(gè)碼流中,每個(gè)節(jié)目只占有碼流中的部分包,一個(gè)物理的頻道只能給出包含多個(gè)節(jié)目的傳輸流,要觀看其中的某個(gè)節(jié)目,還必須從
4、碼流中提取出節(jié)目對(duì)應(yīng)的傳輸包,然后再進(jìn)行解碼。怎樣從眾多的節(jié)目和服務(wù)中選取所需要的服務(wù)就變得比較復(fù)雜。此外,各種影響接收的技術(shù)參數(shù)對(duì)用戶來說也是非常難懂的。為此,提供一些必要的服務(wù)信息以幫助用戶選擇節(jié)目使非常必要的。第二章.EPG信息的構(gòu)成與傳輸1 EPG信息的構(gòu)成EPG信息分為基本EPG信息和擴(kuò)展EPG信息兩種。基本EPG信息是用SI信息表進(jìn)行描述,以文本格式表示的與節(jié)目描述有關(guān)的網(wǎng)絡(luò)信息、節(jié)目群信息、業(yè)務(wù)描述信息和事件信息,可以完全通過GY/Z 174-2001中規(guī)定的NIT、BAT、SDT、EIT和EMT進(jìn)行表示和傳輸,這些表被分為一個(gè)或若干個(gè)段(SECTION),每個(gè)分段包含有一部分或
5、全部關(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ù)字電視平臺(tái)之間交換EPG信息時(shí),按XML格式描述全部EPG信息,內(nèi)容被封裝成具有多級(jí)目錄結(jié)構(gòu)的文件系統(tǒng),通過數(shù)據(jù)轉(zhuǎn)盤傳遞,這些信息的入口采用EPG映射表(EMT)進(jìn)行描述?;綞PG信息是必需的,擴(kuò)展EPG信息是可選的。EPG信息組織層次圖2 基本EPG 信息的傳輸方式基本EPG信息采用表傳輸方式。在數(shù)字電視中,所有視頻、音頻、文字、圖片等經(jīng)數(shù)字化處理后都變成了數(shù)據(jù),并按照MPEG-2的標(biāo)準(zhǔn)
6、打包,形成固定長(zhǎng)度(188個(gè)字節(jié))的傳送包,然后將這些數(shù)據(jù)包進(jìn)行復(fù)用,形成傳送碼流(TS),通常一個(gè)頻道對(duì)應(yīng)一個(gè)TS流,一個(gè)頻道的TS流由多個(gè)節(jié)目及業(yè)務(wù)組成。在TS流中如果沒有引導(dǎo)信息,機(jī)頂盒將無法找到需要的碼流,所以在MPEG-2中,專門定義了PSI信息,其作用是自動(dòng)設(shè)置和引導(dǎo)接收機(jī)進(jìn)行解碼。PSI信息在復(fù)用時(shí)通過復(fù)用器插入到TS流中,并用特定的PID(包標(biāo)識(shí)符)進(jìn)行標(biāo)識(shí)。 在MPEG-2標(biāo)準(zhǔn)中定義的節(jié)目信息PSI,是對(duì)單一碼流的描述,由于系統(tǒng)通常存在多個(gè)碼流,為了使使用者能在多碼流中快速地找出自己需要的業(yè)務(wù),在DVB標(biāo)準(zhǔn)中對(duì)MPEG-2的PSI進(jìn)行了擴(kuò)充,在PSI
7、四個(gè)表的基礎(chǔ)上再增加了九個(gè)表,形成SI。SI是對(duì)整個(gè)系統(tǒng)所有碼流的描述,描述系統(tǒng)傳輸內(nèi)容、廣播數(shù)據(jù)流的編排和時(shí)間表等的數(shù)據(jù),它包括PSI信息。PSI即為節(jié)目專用信息。PSI由節(jié)目關(guān)聯(lián)表(PAT)、條件接收表(CAT)、節(jié)目映射表(PMT)和網(wǎng)絡(luò)信息表(NIT)組成。節(jié)目關(guān)聯(lián)表(Program Association Table,PAT):PAT由PID0X0000標(biāo)識(shí),它的主要作用是指出傳輸碼流中包括那些節(jié)目,節(jié)目的編號(hào)與對(duì)應(yīng)的節(jié)目映射表(Program Map Table, PMT),并指定網(wǎng)絡(luò)信息表(Network Information Table, NIT)所對(duì)應(yīng)的PID。
8、 條件接收表(Conditional Access Table, CAT):CAT由PID0X0001標(biāo)識(shí),CAT提供系統(tǒng)中條件接收的信息,指定CA系統(tǒng)與它們相應(yīng)的授權(quán)管理信息EMM之間的聯(lián)系,指定EMM的PID,以及其它相關(guān)的參數(shù)。在武漢數(shù)字電視平臺(tái)中它指定愛迪德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é)目中各流所對(duì)應(yīng)的PID,以及該節(jié)目的PCR所對(duì)應(yīng)的PID。
9、; NIT:NIT提供與多組傳輸流、物理網(wǎng)絡(luò)及網(wǎng)絡(luò)傳輸相關(guān)的一些信息,比如用于調(diào)諧的頻率信息以及編碼方式、調(diào)制方式等參數(shù)方面的信息,例如武漢電視臺(tái)的傳輸頻點(diǎn)為459MHz,調(diào)制方式為64QAM,糾錯(cuò)方式為RS方式等。SI信息共定義了9個(gè)表,但有一些表實(shí)際意義不大 :1)業(yè)務(wù)群關(guān)聯(lián)表(BAT):- 業(yè)務(wù)群關(guān)聯(lián)表提供了業(yè)務(wù)群相關(guān)的信息,給出了業(yè)務(wù)群的名稱以及每個(gè)業(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ù),例如事件名稱、起始時(shí)間、持續(xù)時(shí)間等。 - 不同的
10、描述符用于不同類型的事件信息的傳輸,例如不同的業(yè)務(wù)類型。 4)運(yùn)行狀態(tài)表(RST): - 運(yùn)行狀態(tài)表給出了事件的狀態(tài)(運(yùn)行/非運(yùn)行)。運(yùn)行狀態(tài)表更新這些信息,允許自動(dòng)適時(shí)切換事件。 5)時(shí)間和日期表(TDT): - 時(shí)間和日期表給出了與當(dāng)前的時(shí)間和日期相關(guān)的信息。由于這些信息頻繁更新,所以需要使用一個(gè)單獨(dú)的表。 6)時(shí)間偏移表(TOT): - 時(shí)間偏移表給出了與當(dāng)前的時(shí)間、日期和本地時(shí)間偏移相關(guān)的信息。由于時(shí)間信息頻繁更新,所以需要使用一個(gè)單獨(dú)的表。 7)填充表(ST): - 填充表用于使現(xiàn)有的段無效,例如在一個(gè)傳輸系統(tǒng)的邊界。 8)選擇信息表(SIT): - 選擇信息表僅用于碼流片段(例如,
11、記錄的一段碼流)中,它包含了描述該碼流片段的業(yè)務(wù)信息的概要數(shù)據(jù)。 9)間斷信息表(DIT): - 間斷信息表僅用于碼流片段(例如,記錄的一段碼流)中,它將插入到碼流片段業(yè)務(wù)信息間斷的地方。GY/Z 174-2001中NIT、BAT、SDT、EIT都被分成為一個(gè)或若干個(gè)段表示,然后插入到TS包中。段是一種用來把SI信息表和EPG信息表映射成TS包的語(yǔ)法結(jié)構(gòu)。這些信息語(yǔ)法結(jié)構(gòu)符合GB/T17975.1-2000定義的專用段語(yǔ)法結(jié)構(gòu)。EPG的功能均可通過SI來實(shí)現(xiàn),也就是說SI是實(shí)現(xiàn)EPG功能的前提。在SI中,最重要的是NIT、EIT和SDT,利用這3個(gè)表中的數(shù)據(jù)就可以構(gòu)成功能不同的EPG。
12、0; NIT的作用在于提供調(diào)諧的頻率信息以及編碼方式、調(diào)制方式等參數(shù)方面的信息。SDT的作用是提供對(duì)每個(gè)業(yè)務(wù)的描述,使用戶能方便地了解每個(gè)業(yè)務(wù)的內(nèi)容。對(duì)于每一個(gè)TS都有一個(gè)SDT與之對(duì)應(yīng)。EIT實(shí)際上是一個(gè)節(jié)目表,對(duì)于每一個(gè)節(jié)目都存在一個(gè)獨(dú)立的EIT。EPG包含兩個(gè)部分:一是播出前端的EPG編輯器;二是用戶端接收機(jī)相應(yīng)的控制軟件,兩部分一一對(duì)應(yīng),每個(gè)接收機(jī)的相關(guān)部分必須要按照前端定義的數(shù)據(jù)結(jié)構(gòu)來定制,從而接收顯示前端送出的業(yè)務(wù)信息。以上這些表在傳送流中以數(shù)據(jù)段的形式傳送,不同的信息表在傳送流中通過賦予不同的特定的PID來進(jìn)行區(qū)分。而具有相同PID的不同信息表則進(jìn)行由表標(biāo)識(shí)符TAB
13、LE ID來區(qū)分,在接收端通過查這些特定的PID來找到它們。這里說明一下,TS中有兩種標(biāo)識(shí)符,一種是包標(biāo)識(shí)符,一種是表標(biāo)識(shí)符。例如SI中的SDT的每一個(gè)表都對(duì)一個(gè)特定TS中的業(yè)務(wù)進(jìn)行描述,這些業(yè)務(wù)可能是這個(gè)表所存在的TS的一部分,也可能是其它TS的一部分,這些SDT的PID都是相同的,這時(shí)候我們就可以通過不同的表標(biāo)識(shí)符來區(qū)分它們,從而識(shí)別出那一個(gè)表所描述的業(yè)務(wù)是那一個(gè)TS的。2.1 說明段的長(zhǎng)度是可變的。除EIT表外,每個(gè)表中的段限長(zhǎng)為1024 字節(jié),但EIT中的段限長(zhǎng)為4096 字節(jié)。每一個(gè)段由以下元素的組合唯一標(biāo)識(shí):a) 表標(biāo)識(shí)符(table_id) 1) 表標(biāo)識(shí)符標(biāo)識(shí)段所屬的表;2) 一
14、些表標(biāo)識(shí)符已分別被ISO 和ETSI 定義。表標(biāo)識(shí)符的其它值可以由用戶根據(jù)特定目的自行分配。b) 表標(biāo)識(shí)符擴(kuò)展(table_id_extension) 1) 表標(biāo)識(shí)符擴(kuò)展用于標(biāo)識(shí)子表;2) 子表的解釋:子表 sub_table,具有相同表標(biāo)識(shí)符(table_id)的段的集合,并且: 對(duì)NIT 具有相同的table_id_extension(network_id)和version_number; 對(duì)BAT 具有相同的table_id_extension(bouquet_id)和version_number; 對(duì)SDT 具有相同的table_id_extension(transport_strea
15、m_id ),相同的original_network_id 和version_number; 對(duì)EIT 具有相同的table_id_extension ( service_id ),相同的transport_stream_id 、original_network_id和version_number。當(dāng)段語(yǔ)法指示(section_syntax_indicator )字段置“1”時(shí),表標(biāo)識(shí)符擴(kuò)展(table_id_extension) 字段等同于段的第四和第五字節(jié)。c) 段號(hào)(section_number) 1) 段號(hào)字段用于解碼器將特定子表的段以原始順序重新組合。本指導(dǎo)性技術(shù)文件建議段按順序傳輸
16、,除非某些子表的段需要比其它的段更頻繁地傳輸,例如出于隨機(jī)存取的考慮;2) 在本指導(dǎo)性技術(shù)文件中指定的各種SI 信息表和EPG 映射表,段編號(hào)也適用于子表;d) 版本號(hào)(version_number) 1) 當(dāng)本指導(dǎo)性技術(shù)文件中規(guī)定的SI信息表和EPG映射表所描述的TS流特征發(fā)生變化時(shí)(例如:新事件開始,給定業(yè)務(wù)的組成的基本流發(fā)生變化),應(yīng)發(fā)送更新了的業(yè)務(wù)信息數(shù)據(jù)。GY/Z 2032004 新版本的業(yè)務(wù)信息以傳送一子表為標(biāo)志,它與前子表具有相同的標(biāo)識(shí)符,但版本號(hào)改為下一值;e) 當(dāng)前/后續(xù)指示符(current_next_indicator) 每一段都要標(biāo)以“當(dāng)前”有效或“后續(xù)”有效。它使得新
17、的SI版本可以在TS流特征發(fā)生變化之前傳輸,讓解碼器能夠?yàn)樽兓鰷?zhǔn)備。然而,一個(gè)段的下一個(gè)版本的提前傳輸不是必需的,但如果被傳輸,它將成為該段的下一個(gè)正確版本。2.2 段到傳送流(TS)包的映射段可直接映射到TS包中。段可能起始于TS包有效負(fù)載的起始處,但這并不是必需的,因?yàn)門S包有效負(fù)載的第一個(gè)段的起始位置是由pointer_field 字段指定的。一個(gè)TS包內(nèi)不允許存在多于一個(gè)的pointer_field 字段,其余段的起始位置均可從第一個(gè)段及其后各段的長(zhǎng)度中計(jì)算出來,這是因?yàn)檎Z(yǔ)法規(guī)定一個(gè)TS包中的段之間不應(yīng)有空隙。在任一PID值的TS包中,一個(gè)段應(yīng)在下一個(gè)段允許開始之前結(jié)束,否則就無法識(shí)
18、別數(shù)據(jù)屬于哪個(gè)段標(biāo)題。若一個(gè)段在TS包的末尾前結(jié)束了,但又不便打開另一個(gè)段,則提供一種填充機(jī)制來填滿剩余空間。該機(jī)制對(duì)包中剩下的每個(gè)字節(jié)均填充為0xFF 。這樣table_id 就不允許取值為0xFF ,以免與填充相混淆。一旦一個(gè)段的末尾出現(xiàn)了字節(jié)0xFF,該TS包的剩余字節(jié)必然都被填充為0xFF,從而允許解碼器丟棄TS 包的剩余部分。填充也可用一般的adaptation_field機(jī)制實(shí)現(xiàn)。2.3 PID 及表標(biāo)識(shí)符字段編碼用于傳送PSI、SI信息段和EPG信息段的TS包的PID值見表表標(biāo)識(shí)符值(table_id)的分配2.4 重復(fù)率在考慮隨機(jī)存取的系統(tǒng)中,即使結(jié)構(gòu)沒有發(fā)生變化,也建議對(duì)EP
19、G有關(guān)的SI段重復(fù)傳輸數(shù)次。在傳輸碼率為100兆比特/秒的系統(tǒng)中,對(duì)于標(biāo)有同一個(gè)PID、table_id及table_id_extension值的業(yè)務(wù)信息段,該段的最后一個(gè)字節(jié)與下一個(gè)段的首字節(jié)發(fā)送的最小時(shí)間間隔為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ù)
20、表的段應(yīng)至少每10s傳輸一次;g) 所有未來八日內(nèi)的EIT 時(shí)間表的段應(yīng)至少每10s 傳輸一次,包括八日內(nèi)其它傳輸流的EIT 時(shí)間表的段;h) 所有超過未來八日的EIT 時(shí)間表的段應(yīng)至少每30s傳輸一次,包括超過未來八日的其它傳輸流的EIT時(shí)間表的段;i) 所有TDT和TOT的段應(yīng)至少每30s傳輸一次。3 SI信息的插入SI一般在復(fù)用器合成TS時(shí)插入。按照SI標(biāo)準(zhǔn)形成各表的數(shù)據(jù)段后,數(shù)據(jù)可以三種方式送入復(fù)用器: (1)將各表數(shù)據(jù)通過復(fù)用器生產(chǎn)廠家提供的應(yīng)用軟件接口(API),由復(fù)用器插入節(jié)目碼流。其優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、系統(tǒng)穩(wěn)定;缺點(diǎn)是需要復(fù)用器廠家提供接口資料和硬件支持,對(duì)不同廠家復(fù)用器需要編寫不
21、同的軟件。 (2)將各表數(shù)據(jù)段按MPEG-2標(biāo)準(zhǔn)打包,通過碼流播出卡輸出只包含SI信息的MPEG-2碼流,再將之送入復(fù)用器異步串行接口(ASI)與節(jié)目碼流復(fù)用。其優(yōu)點(diǎn)是不需要復(fù)用器廠家支持,有一定的通用性;缺點(diǎn)是系統(tǒng)復(fù)雜,穩(wěn)定性、可靠性不如方法(1),系統(tǒng)資源有一些浪費(fèi)。 (3)一些條件接收廠商在復(fù)用器后端的加擾器提供接口,因此可以通過局域網(wǎng)將各數(shù)據(jù)表送入加擾器,由加擾器向碼流中插入SI信息。其優(yōu)缺點(diǎn)與方式(1)類似。4 網(wǎng)絡(luò)信息網(wǎng)絡(luò)信息分為網(wǎng)絡(luò)基本信息和TS流信息。它包含了與通過一個(gè)給定的網(wǎng)絡(luò)傳輸?shù)膹?fù)用流/TS流的物理結(jié)構(gòu)相關(guān)的信息,以及與網(wǎng)絡(luò)自身特性的信息。4.1網(wǎng)絡(luò)基本信息的構(gòu)成包含網(wǎng)絡(luò)
22、標(biāo)識(shí)、網(wǎng)絡(luò)名稱、多語(yǔ)言網(wǎng)絡(luò)名稱和連接信息。網(wǎng)絡(luò)標(biāo)識(shí):在整個(gè)國(guó)家范圍內(nèi)唯一確定一個(gè)網(wǎng)絡(luò),用以區(qū)別其它的網(wǎng)絡(luò)。網(wǎng)絡(luò)標(biāo)識(shí)通過NIT表中的網(wǎng)絡(luò)標(biāo)識(shí)符(network_id)進(jìn)行描述。網(wǎng)絡(luò)名稱:通過NIT中的網(wǎng)絡(luò)名稱進(jìn)行描述符(network_name_descriptor)進(jìn)行描述。多語(yǔ)言網(wǎng)絡(luò)名稱:通過NIT中的多語(yǔ)言網(wǎng)絡(luò)名稱描述符(multilingual_network_name_descriptor)進(jìn)行描述,數(shù)字電視接收終端可以根據(jù)需要選擇相應(yīng)的語(yǔ)言顯示網(wǎng)絡(luò)名稱。鏈接信息:通過NIT表中的鏈接描述符(linkage_descriptor)進(jìn)行描述,用于給出與包含網(wǎng)絡(luò)附加信息、EPG信息的業(yè)務(wù)的
23、鏈接關(guān)系,或者用于給出與包含了全部網(wǎng)絡(luò)SI信息的TS流的鏈接關(guān)系。a) 當(dāng)linkage_type=1時(shí),鏈接指向一個(gè)包含網(wǎng)絡(luò)附加信息的業(yè)務(wù);b) 當(dāng)linkage_type=2時(shí),鏈接指向一個(gè)包含本網(wǎng)絡(luò)的EPG信息的業(yè)務(wù);c)當(dāng)linkage_type=4時(shí),鏈接指向一個(gè)包含了全部網(wǎng)絡(luò)SI信息的TS流。4.2 TS流信息每個(gè)網(wǎng)絡(luò)都包含一個(gè)到多個(gè)TS流,對(duì)一個(gè)具體的TS流,它包含TS流標(biāo)識(shí)、原始網(wǎng)絡(luò)標(biāo)識(shí)、TS流物理特性、TS流所包含業(yè)務(wù)列表信息。TS標(biāo)識(shí)與原始網(wǎng)絡(luò)標(biāo)識(shí):共同標(biāo)識(shí)在一個(gè)網(wǎng)絡(luò)中的Ts流。這兩個(gè)標(biāo)識(shí)出現(xiàn)在NIT中,分別為transport_stream_id和original_net
24、work_id。傳輸系統(tǒng)描述:傳輸系統(tǒng)描述給出了TS流在衛(wèi)星、有線或者地面三種傳輸網(wǎng)絡(luò)中傳輸時(shí)傳輸通道的參數(shù)。對(duì)一個(gè)TS而言,無論采用哪種傳輸網(wǎng)絡(luò),傳輸通道的物理參數(shù)總是唯一的。a) 如果TS流在衛(wèi)星傳輸網(wǎng)絡(luò)傳輸,使用以下參數(shù)對(duì)傳輸通道進(jìn)行描述:頻率、軌道位置、東西標(biāo)志、極化方式、調(diào)制方式、符號(hào)率、前向糾錯(cuò)內(nèi)碼。由NIT表中的衛(wèi)星傳輸系統(tǒng)描述符(satellite_delivery_system_descriptor)描述。b) 如果TS在有線傳輸網(wǎng)絡(luò)中傳輸,使用以下參數(shù)對(duì)傳輸通道進(jìn)行描述:頻率、前向糾錯(cuò)外碼、調(diào)制方式、符號(hào)率、前向糾錯(cuò)內(nèi)碼。由NIT表中的有線傳輸系統(tǒng)描述符(cable_del
25、ivery_system_descriptor)描述。c) 如果TS在地面?zhèn)鬏斁W(wǎng)絡(luò)中傳輸,由NIT表中的地面?zhèn)鬏斚到y(tǒng)描述符(terrestrial_delivery_system_descriptor)描述,參數(shù)待定,國(guó)內(nèi)并未出臺(tái)相關(guān)規(guī)定。頻率列表信息:給出了由多個(gè)頻率傳送的某個(gè)復(fù)用流的附加頻率的完整列表,通過NIT表中的頻率描述符(frequency_list_descriptor)描述。業(yè)務(wù)列表信息:給出了網(wǎng)絡(luò)中包含的全部業(yè)務(wù)的標(biāo)識(shí)及類型。通過NIT表中的業(yè)務(wù)列表描述(service_list_descriptor)描述,每個(gè)業(yè)務(wù)通過字段service_id唯一標(biāo)識(shí),通過字段service
26、_type指名該業(yè)務(wù)的類型。Service_id相當(dāng)于PMY表中的program_number,但業(yè)務(wù)類型值為0x04(service_type=0x04)時(shí)(即NVOD參考業(yè)務(wù))除外,這種情況下,service_id沒有對(duì)應(yīng)的program_number。網(wǎng)絡(luò)信息構(gòu)成圖4.3 網(wǎng)絡(luò)信息在NIT表中的表示 NIT表在傳輸時(shí)被切分成網(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)。指向
27、一個(gè)現(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上的實(shí)現(xiàn)1 EPG信息的提取要實(shí)現(xiàn)EPG,利用SI表來實(shí)現(xiàn)是很自然的方法。在這種方法中,發(fā)送端和接收端必須達(dá)成協(xié)議。發(fā)送端必須發(fā)送接收端設(shè)備實(shí)現(xiàn)EPG所需的SI表,而接收端接收發(fā)送端發(fā)出的SI表,通過信息提取和信息重組,組織構(gòu)成EPG,并顯示給用戶。一般而言,PAT表的PID號(hào)為“0x00”,解復(fù)用器工作總是通過尋找PAT表開始。PAT給出了
28、構(gòu)成傳送流中各個(gè)節(jié)目業(yè)務(wù)的PMT的PID,同時(shí)也給出了NIT的PID號(hào)。根據(jù)PID值及對(duì)應(yīng)的Table ID值可以從流中解出相應(yīng)的PMT、NIT、SDT、EIT等信息。機(jī)頂盒接收端的解析主要負(fù)責(zé)這些SI數(shù)據(jù)信息的重建。信息內(nèi)容應(yīng)與PSI和SI表中的信息相對(duì)應(yīng),它可按照Network-Transport Stream-Service-Event的分層順序描述,同時(shí)內(nèi)嵌Transport Stream-Program(Service)-Element Stream的分層順序。利用DVB-SI表實(shí)現(xiàn)EPG流程圖SI表的組織流程2 實(shí)際應(yīng)用中EPG接收的步驟1) 輸入頻率、符號(hào)率、調(diào)制方式鎖定頻道。2
29、) 接收當(dāng)前頻道上的PAT表,已知條件是PAT的PID固定為0,將PAT表解析保存。3) 從PAT中取得NIT表的PID: 方法是:當(dāng)program_number=0時(shí),取得network_pid。當(dāng)然將NIT表的PID固定認(rèn)為是0x0010也是一種解決方法,但這種解決方法不是最基本的方式。說明:如果從PAT表中找不到NIT的PID,則將NIT的PID默認(rèn)為0x0010。4) 根據(jù)NIT表的PID取得NIT表,解析并保存。5) 從NIT表中的第一個(gè)descriptor()中取得network_name_descriptor可以得到網(wǎng)絡(luò)名稱,這個(gè)一般描述的是網(wǎng)絡(luò)運(yùn)營(yíng)商的名稱,可以在屏幕上顯示,根
30、據(jù)需要顯示,不是必須的。從NIT表中的第二個(gè)descriptor()循環(huán)中取得當(dāng)前網(wǎng)絡(luò)所管理的頻道資源信息表cable_delivery_system_descriptor(),從中可以得到所有幾個(gè)頻道的關(guān)鍵字段值frequency,modulation,symbol_rate。至此,網(wǎng)絡(luò)信息資源已全部獲得,這是關(guān)鍵的一步。6) 根據(jù)上述網(wǎng)絡(luò)新,建上一個(gè)循環(huán),分別各自鎖定不同的頻道。7) 在已鎖定的頻道下,接收當(dāng)前PAT表(PID0)。通過分析program_number字段就可以知道在當(dāng)前頻道上共播放了多少個(gè)節(jié)目(服務(wù)),記錄下每個(gè)服務(wù)的PMT表,解析并保存。8) 通過一個(gè)PMT表的PID就
31、可以接收這個(gè)節(jié)目的PMT表,解析并保存。9) 在PMT表中取得以下幾個(gè)關(guān)鍵字段:PCRPID,分別取得流類型字段stream_type各自對(duì)應(yīng)的流的基本PID(elementary_PID),如:當(dāng)stream_type=0x02時(shí),表示是視頻流,那么此時(shí),elementary_PID代表Video_PID,當(dāng)stream_type=0x04時(shí),表示是音頻流,此時(shí),elementary_PID代表Audio_PID.。這里要著重注意:一個(gè)視頻配套多個(gè)音頻PID的情況。說明:到了這一步就可以實(shí)現(xiàn)一個(gè)節(jié)目的播放了。特別申明:在PMT表的第一個(gè)descriptor()循環(huán)中要檢測(cè)是否有CAdescr
32、iptor()描述,如果有,則取出其中的CAsystem_ID和CAPID。通過這兩個(gè)PID可以取得關(guān)于CA更詳細(xì)的信息,關(guān)于CA這里不做更詳細(xì)的解釋和描述。10) 接收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表。11) 通過service_id(對(duì)應(yīng)PMT表中的program_number)找到各自服務(wù)的名稱(節(jié)目名,如:CCTV1等)。在SDT
33、表中的service_id中找到service_descriptor(),從中可以取得service_name(如:CCTV1等)。注意:這里free_CA_mode不能做為節(jié)目是否加密的判斷標(biāo)志,因?yàn)樵谟行┘訑_器里,并沒有對(duì)該字段進(jìn)行修改,比如barco的加擾器就是如此。還要注意兩個(gè)特殊字段:EIT_schedule_flag,該值為1時(shí),表示在當(dāng)前頻道上出現(xiàn)了時(shí)間表(用于報(bào)告一個(gè)服務(wù)里所包含的一天甚至一個(gè)月的節(jié)目預(yù)告)。當(dāng)EIT_present_following_flag=1時(shí),表示在當(dāng)前頻道上出現(xiàn)了出現(xiàn)/跟隨事件信息表(當(dāng)前時(shí)刻/下一時(shí)刻的信息)。12) 從第八步循環(huán),完成的有節(jié)目信息
34、的收集:說明:至此,除了節(jié)目時(shí)間、內(nèi)容信息沒有收集外,其余的節(jié)目信息已收集完畢,包括以下內(nèi)容:a、 共多少個(gè)頻道。b、 每個(gè)頻道下有多少套可供播放的節(jié)目。c、 每個(gè)節(jié)目的名稱,相關(guān)PCR_PID,V_PID,A_PID等。根據(jù)以上信息可以組織菜單,實(shí)現(xiàn)節(jié)目的播放了。注意:要取得多語(yǔ)種描述的節(jié)目名稱,可以從SDT表中的country_availability_descriptor()字段為:country_code=”CHN”代表中文,”ENG代表英文等”,但是要知道country_availability_descriptor()不是一定會(huì)播發(fā)的,也就是說這個(gè)表可能不存在。3 節(jié)目?jī)?nèi)容和時(shí)間信
35、息的獲取3.1 接收TDT表TDT信號(hào)在數(shù)字視頻廣播業(yè)務(wù)信息(SI)中作為時(shí)間和日期表,在規(guī)范里屬于強(qiáng)制規(guī)定的基礎(chǔ)數(shù)據(jù),不能被加擾,以供公開使用。TDT表的PID固定為0x0014,在所有的頻道上都有,字段為UTC_time,比如:0xc079124500代表:1993/10/13,12:45:00(后節(jié)會(huì)單獨(dú)介紹時(shí)間如何獲得),取得該時(shí)間后,就由STB的定時(shí)器自動(dòng)去計(jì)算以后的時(shí)間了。3.2 接收EIT表什么是event(事件)?通俗的說事件就是一個(gè)節(jié)目中的一個(gè)時(shí)間片斷。它有起始時(shí)間、持續(xù)時(shí)間、事件名稱和事件的簡(jiǎn)單描述。也可以說一個(gè)service(節(jié)目)就是多個(gè)連續(xù)event的集合。例如:19
36、:00-19:30的新聞聯(lián)播就是一個(gè)event,它的起始時(shí)間是19:00;持續(xù)時(shí)間是30分鐘;節(jié)目名稱是新聞聯(lián)播。由此看出event可以任意定義,只要具備了它的幾個(gè)屬性就是一個(gè)event。 EIT present/following表示的是兩個(gè)事件。EIT present是正在播出的事件,EIT following是即將播出的事件。在任一頻道上可以取得全網(wǎng)的所有的EIT表,EIT表的PID固定為0x0012當(dāng)table_id=0x4e時(shí),表示的是當(dāng)前頻道上實(shí)際的出現(xiàn)/跟隨事件信息當(dāng)table_id=0x4f時(shí),表示的是其它頻道上的出現(xiàn)/跟隨事件信息當(dāng)table_id=0x500x5f時(shí),表示的
37、是當(dāng)前頻道上的節(jié)目時(shí)間表當(dāng)table_id=0x600x6f時(shí),表示的是其它頻道上的節(jié)目時(shí)間表當(dāng)table_id=0x4e或0x4f時(shí),如何區(qū)分當(dāng)前出現(xiàn)時(shí)間和跟隨時(shí)間呢?通過section_number 來區(qū)分,當(dāng)section_number= 0x00時(shí)表示是當(dāng)前時(shí)刻,當(dāng)section_number=0x01時(shí),表示的是下一時(shí)刻。在EIT表中有幾個(gè)非常關(guān)鍵的字段,一個(gè)是transport_stream_id表示頻道,與SDT表中的對(duì)應(yīng),service_id表示服務(wù)號(hào)(節(jié)目號(hào)),同時(shí)與PMT表中的program_number對(duì)應(yīng),如何獲取一個(gè)節(jié)目的事件信息呢?首先定位頻道:transport_
38、stream_id,在該頻道下找到要檢測(cè)的節(jié)目service_id當(dāng)table_id=0x4e時(shí),表示是當(dāng)前頻道,如果現(xiàn)在手中已有的當(dāng)前頻道的transport_stream_id和在此條件下EIT表中的transport_stream_id能對(duì)應(yīng)上的話,說明正確。接下來,取得當(dāng)前信息。方法是判斷section_number=0x00的段確定后找到start_time,該事件的開始時(shí)間,duration持續(xù)時(shí)間,duration+start_time就是該事件(節(jié)目)的結(jié)束時(shí)間。通過descriptor()中的short_event_descriptor()可以取得多語(yǔ)種的節(jié)目名和節(jié)目簡(jiǎn)介信息
39、,關(guān)鍵同為ISO_639_language_code(比如:“CHN”),event_name_char(比如:“新聞聯(lián)播”),text_char(節(jié)目簡(jiǎn)介)。在數(shù)字電視中簡(jiǎn)介部分暫可以不取(text_char)。注意:當(dāng)table_id=”0x4e”或”0x4f”時(shí),for(;)里面描述的事件只有一個(gè)。只有當(dāng)table_id=0x500x5f或0x600x6f時(shí)才能出現(xiàn)多個(gè)。同樣,取下一時(shí)刻信息時(shí),要判斷的條件為section_number=0x01。舉個(gè)例子: 假如現(xiàn)在時(shí)間是19:20,那么我們會(huì)收到下面這樣的當(dāng)前/后續(xù)事件: 19:00-19:30 新聞聯(lián)播 event_id=0x01
40、(當(dāng)前事件) 19:31-20:00 動(dòng)畫片 event_id=0x02 (后續(xù)事件) 如果時(shí)間到了19:35,那么我們將會(huì)收到下面這樣更新的當(dāng)前/后續(xù)事件: 19:31-20:00 動(dòng)畫片 event_id=0x02 (當(dāng)前事件) 20:01-22:00 黑客帝國(guó) event_id=0x03 (后續(xù)事件) EIT Schedule用來發(fā)送大量的event信息,也就是EPG的節(jié)目單。例如中央1臺(tái)一周的電視節(jié)目預(yù)告就需要用到EIT Schedule傳送。 EIT Schedule被分成16個(gè)table_id傳送。當(dāng)table_id=0x500x5F,表示是現(xiàn)行傳送流的表;當(dāng)table_id=0x
41、600x6F,表示是其他傳送流的節(jié)目表。也就是說一個(gè)節(jié)目最多可以用16個(gè)子表用來發(fā)送節(jié)目預(yù)告。這16個(gè)table_id的EIT是按照時(shí)間先后順序排列的。 這里要注意的是EIT子表中引入節(jié)(segment)的概念。這是個(gè)很讓人迷惑的東西,我在這里解釋一下。 在普通子表中分段使用段(section),每個(gè)子表語(yǔ)法結(jié)構(gòu)中都有個(gè)8bit字段last_section_number,用來表示一個(gè)子表最多由多少個(gè)段組成。由字長(zhǎng)我們可以看出,一個(gè)子表最多有256個(gè)段。而EIT中在子表和段中插入了一個(gè)節(jié)的層次。關(guān)于節(jié)有如下的約定: l 一個(gè)EIT子表被分成32個(gè)節(jié); l 每個(gè)節(jié)最多有8個(gè)段; l 一個(gè)EIT子表
42、最多有256個(gè)段; l 每個(gè)節(jié)所包含的事件信息最長(zhǎng)不能超過3個(gè)小時(shí); l 如果在節(jié)中小于8個(gè)段在使用, 就需要靠字段segment_last_section_number標(biāo)識(shí)節(jié)中有哪些有效的段。EIT中傳送的字段segment_last_section_number值算法為s0 + n 1。這里s0的值是節(jié)中的第一個(gè)段號(hào),n表示該節(jié)中段的個(gè)數(shù)。 舉個(gè)例子:如果某個(gè)EIT子表中第二個(gè)節(jié)只包含2個(gè)段,那么在這2個(gè)段中字段segment_last_section_number的值就是:8 + 2 - 1 = 9。大家想一想為什么這里的s08?因?yàn)槊總€(gè)節(jié)最多包含8個(gè)段,第一個(gè)節(jié)的段號(hào)是07,那么第二個(gè)
43、節(jié)段號(hào)就是815,由此得出第二個(gè)節(jié)的s0為8。這一段約定有些難以理解,大家可以分析一些EIT sechudle的碼流再結(jié)合上述就能明白了; l 節(jié)中包含所有的段,也就是有8個(gè)段。那么字段segment_last_section_number值算法為s0 +7; l 如果節(jié)中包含所有的段是空段(段中沒有任何事件信息),那么字段segment_last_section_number值算法為s0 +0; l EIT Table_id=0x50(或者0x60)的第一個(gè)節(jié)包含著今天00:0002:59:59 UTC時(shí)間的三個(gè)小時(shí)的事件信息,第二個(gè)節(jié)包含了03:00:00 and 05:59:59 UTC
44、時(shí)間的三個(gè)小時(shí)的事件信息,依次類推下去,一個(gè)子表最多能包含4天的事件信息; 這樣我們可以計(jì)算出一個(gè)EIT Schedule最多能存放多長(zhǎng)時(shí)間的節(jié)目簡(jiǎn)介: 3h(單個(gè)節(jié)最長(zhǎng)時(shí)間)*32(最大的節(jié)個(gè)數(shù))*16(最大的子表個(gè)數(shù))1536h=64day一個(gè)service的EIT Schedule子表最多可以傳送64天的EPG,一個(gè)子表最多可以傳送4天的EPG。在實(shí)際運(yùn)營(yíng)中一般會(huì)只傳一周的節(jié)目指南,也就是說只要兩個(gè)子表就足夠了最后我用一張示意圖表示EIT中子表、節(jié)(segment)、段(section)之間的關(guān)系,對(duì)上述概念做一個(gè)回顧并出幾道題給大家便于加深理解。EIT子表是EPG的關(guān)鍵,這部分一定要熟
45、練掌握。 練習(xí):Q1:這個(gè)EIT Schedule最多能傳送幾天的節(jié)目預(yù)告? Q2:Segment#0、Segment#1、Segment#31這3個(gè)節(jié)中的section字段segment_last_section_number分別是多少? Q3:假設(shè)第一個(gè)子表0x50起始event時(shí)間是從2006年1月1日00:00開始的,那么圖中Section0的起始時(shí)間是什么時(shí)間? 答案:A1:因?yàn)閠able_id從0x500x59,一共10個(gè)子表,一張子表最多包含4天事件信息,所以這個(gè)EIT Schedule最多能傳送40天的節(jié)目信息。 A2:Segment#0中有8個(gè)section,所以segmen
46、t_last_section_number077 Segment#1中只有2個(gè)section,所以segment_last_section_number8219 Segment#31中有1個(gè)section但沒有包含event內(nèi)容,所以segment_last_section_number2480248 A3:因?yàn)?x50最多包含4天信息,所以0x51的Section0起始時(shí)間為2006年1月5日00:0002:59:59 這里有一個(gè)特殊的情況需要處理,那就是當(dāng)running_status=0時(shí),表示的是NVOD的參考事件描述,duration、start_time、event_name_cha
47、r、text_char不屬于DTV的EPG范疇,遇到這種情況需要屏蔽掉。通過以上條件的循環(huán),在一個(gè)物理頻道上,可以取得所有的節(jié)目時(shí)間表和內(nèi)容,包括一天或一周、一月、二個(gè)月的節(jié)目預(yù)告。至此,可以形成完整的EPG。3.3 注意事項(xiàng)1、 當(dāng)接收到一個(gè)表后,一定要將version_number保存下來,當(dāng)?shù)诙谓邮者@個(gè)表時(shí),如果發(fā)現(xiàn)version_number發(fā)生了變化,則一定要開始重新接收所有相關(guān)聯(lián)的表。2、 還有一個(gè)可選機(jī)制,那就是接收RST表,該表用于描述EIT表的狀態(tài)變化。RST表的播發(fā)不是必須的,不能作為EIT表接收的必要條件。4.MJD和UTC時(shí)間轉(zhuǎn)換儒略日(JulianDay)是一種不用年月的計(jì)量很長(zhǎng)時(shí)間的方法,它以公元前4713年1月1日為起點(diǎn)算,連續(xù)計(jì)算日期,這種發(fā)放便于求兩節(jié)目之間相隔的天數(shù)。在MJD+UTC 和 “l(fā)ocal”MJD +local time 之間的轉(zhuǎn)換是一種簡(jiǎn)單的加或減本地偏移的方法,這種方法勢(shì)必會(huì)導(dǎo)致UTC 的進(jìn)位或借位,進(jìn)而會(huì)影響到MJD。下面以公式給出另外五種轉(zhuǎn)換的路線圖。MJD: 修正的儒略日期;UTC: 世界協(xié)調(diào)時(shí);Y : 從1900 年開始(例如:對(duì)于2003 年,Y=103);M : 從1 月到12 月;D : 從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 考研政治輔導(dǎo)馬原
- 安全生產(chǎn)管理理念與案例分析
- 聯(lián)想猜詞游戲
- 車工工人轉(zhuǎn)正申請(qǐng)書15篇
- 2025年輪胎均勻性試驗(yàn)機(jī)項(xiàng)目合作計(jì)劃書
- 江蘇鹽城鹽城八校2025屆高三上學(xué)期開學(xué)考試化學(xué)試卷試題及答案解析
- 很好的高習(xí)參考計(jì)劃范文
- 駕校場(chǎng)地出租合同模板
- 技術(shù)設(shè)備融資租賃協(xié)議書
- 八年級(jí)語(yǔ)文上冊(cè)第二單元人物畫像6藤野先生高效教案新人教版
- IPC-7530A-2017 CN群焊工藝溫度曲線指南(再流焊和波峰焊)
- 初期支護(hù)設(shè)計(jì)驗(yàn)算
- 石關(guān)煤礦緊急避險(xiǎn)系統(tǒng)管理制度及技術(shù)檔案匯編
- 醫(yī)院醫(yī)務(wù)科科長(zhǎng)崗位競(jìng)聘答辯PPT課件(帶內(nèi)容)
- 2023年華僑、港澳、臺(tái)聯(lián)考高考語(yǔ)文試卷(含解析)
- 快上來吧要開車了課件
- 非織造學(xué)講義(大學(xué)期末復(fù)習(xí)資料)
- 《菜根譚》讀書分享
- 年產(chǎn)10萬(wàn)噸氫化棕櫚硬脂(包含下游產(chǎn)品5萬(wàn)噸硬脂酸)、5000噸甘油、黑腳擴(kuò)產(chǎn)項(xiàng)目環(huán)境影響評(píng)價(jià)報(bào)告書
- 工會(huì)法課件完整版
- 機(jī)械租賃施工公司機(jī)構(gòu)設(shè)置
評(píng)論
0/150
提交評(píng)論