国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

DVB-C數(shù)字電視EPG的設(shè)計與實現(xiàn)

2012-04-29 00:44:03任陽山趙濟民劉辛濤
電腦知識與技術(shù) 2012年1期
關(guān)鍵詞:數(shù)字電視機頂盒

任陽山 趙濟民 劉辛濤

(1.哈爾濱工程大學(xué)信息與通信工程學(xué)院,黑龍江哈爾濱150056;2.海軍青島航保修理廠,山東青島266071;3.天津市和平區(qū)開封道4號航保代表室,天津300042 )

摘要:目前,有線數(shù)字視頻廣播(DVB-C)是我國有線數(shù)字電子技術(shù)的主要標(biāo)準(zhǔn),涵蓋了數(shù)字電視信號的傳輸、加擾以及解碼等方面。隨著技術(shù)的發(fā)展,數(shù)字電視機頂盒(STB)越來越多成為電視信號接入的關(guān)鍵設(shè)備,而其中電子節(jié)目指南(EPG)是數(shù)字電視基本的業(yè)務(wù)之一,是電視節(jié)目信息與用戶的交互平臺。論文簡要概述了數(shù)字電視活動圖像專家組(MPEG-2)傳輸碼流結(jié)構(gòu),EPG的基本信息結(jié)構(gòu)以及整個架構(gòu)的設(shè)計與實現(xiàn)。

關(guān)鍵詞:有線數(shù)字視頻廣播;活動圖像專家組;電子節(jié)目指南;數(shù)字電視;機頂盒

中圖分類號:TN949.197文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)01-0139-03

DVB-C digital TV EPG Design and Implementation

RENG Yang-shan1, ZHAO Ji-min2, LIU Xin-tao3

(1.College of Information And Communication Engineering of Harbin Engineering Harbin 150056,China; 2.University Navy Maritime Security repair shop of Qingdao,Qingdao 266071, China)

Abstract: At present, Cable Digital Video Broadcasting (DVB-C) is the main criteria of our cable digital electronic technology, covering digital TV signal transmission, scrambling and decoding and so on. As technology advances, digital TV set-top boxes (STB) to become more and more television signal access key equipment, and one electronic program guide (EPG) is the basic business of digital TV, the TV program information and user interaction platform. Paper provides a brief overview of the digital television transport stream structure, EPG information structure and the basic design of the architecture and implementation.

Key words:DVB-C; MPEG-2; EPG; Digital TV; STB

相對于傳統(tǒng)的模擬電視而言,數(shù)字電視包含了更多的電視信息與業(yè)務(wù),涵蓋了視頻、音頻、實時數(shù)據(jù)等信息。所有的信息均通過符合MPEG-2標(biāo)準(zhǔn)的TS流進(jìn)行傳輸,其中也包含了電視節(jié)目服務(wù)信息PSI。為了使得用戶更好的尋找節(jié)目以及獲得節(jié)目相關(guān)信息,在數(shù)字電視機頂盒之中設(shè)計了基于PSI實現(xiàn)的EPG(電子節(jié)目指南[1])。通過對獲取的TS碼流采用適當(dāng)?shù)慕獯a技術(shù),能夠得到比如節(jié)目頻道、節(jié)目數(shù)量、播放時間以及內(nèi)容介紹等信息,使得數(shù)字電視具有了與用戶的交互功能,是數(shù)字電視技術(shù)中的重要組成部分。

1傳輸碼流結(jié)構(gòu)

數(shù)字電視信號經(jīng)過調(diào)諧與解調(diào),在終端輸出部分能夠得到按照MPEG-2標(biāo)準(zhǔn)壓縮的碼流。MPEG-2標(biāo)準(zhǔn)規(guī)定了在傳輸流中的各個部分比如音頻、視頻以及各種傳輸數(shù)據(jù)所用格式,即定義了完整的TS流(MPEG-2傳輸流)與PS流(MPEG-2節(jié)目流)。在此標(biāo)準(zhǔn)中音頻與視頻數(shù)據(jù)進(jìn)過編碼壓縮以后形成各自的基本流(ES流),然后將視頻與音頻的ES流按照一定的格式打包成為各自的基本信息流(PES流),隨后通過復(fù)用技術(shù)將PES流以及輔助數(shù)據(jù)也按照不同的格式打包、編碼成為PS流或者TS流。由于數(shù)字電視信號傳輸過程中誤碼率比較高,因此一般采用TS碼流。每一個TS碼流均由多個TS包組合而成,而每一個TS包固定長度為188Bytes,由4 Bytes長的包頭和184 Bytes有效載荷組成。

TS包頭以0x47開頭的2Bytes數(shù)據(jù)作為同步字節(jié),用于檢測同步包的數(shù)據(jù)。當(dāng)接收到同步字節(jié)時就代表下一個TS包的到來;起始指示單元指示出TS包具體數(shù)據(jù)的開始位置;隨后的PID占據(jù)13 bites,用于區(qū)分不同類型的傳輸流包(音頻和視頻)的重要參數(shù),通過PID數(shù)據(jù)可以知道此TS流包包含了哪一種信息;加擾控制可以提供給解碼器進(jìn)行判斷是否需要對TS包進(jìn)行解擾,但包頭和自適應(yīng)區(qū)是不能夠被加擾的,如果檢測到有自適應(yīng)區(qū)則表示具體的數(shù)據(jù)要跳過一定長度的適應(yīng)區(qū)之后才能獲??;隨后的連續(xù)計數(shù)器可以對所取得的TS包的傳送順序進(jìn)行計數(shù),可以讓解碼器判斷在這個TS傳輸流中是否有丟失包數(shù)據(jù)和順序傳輸錯誤[2]。因此TS數(shù)據(jù)包頭對整個包的傳輸具有同步、識別與檢測的功能,所有EPG的信息均從包頭解析取得。

包頭之后即是184 Bytes的具體數(shù)據(jù),其中包含了每個TS包或者包括一個節(jié)目流中的音頻或視頻信息、或者包含了單一節(jié)目解密信息,或者是對節(jié)目專用信息即PSI表數(shù)據(jù)。對于一個PID分組的TS流包只包含一種信息[3]。PID主要用于區(qū)分一個或者多個復(fù)用的TS流所包含的節(jié)目。

2 EPG基本信息結(jié)構(gòu)

TS碼流由多個節(jié)目以及業(yè)務(wù)所組成,通過獲取PSI信息來進(jìn)行解析就能得到形成EPG所需要的數(shù)據(jù)。系統(tǒng)中由于存在多個碼流,其中所包含節(jié)目也不相同,因此DVB-C在原來PSI信息的基礎(chǔ)上增加了描述節(jié)目的數(shù)據(jù)結(jié)構(gòu),形成了SI信息。

SI信息由一個或表所組成,分別為節(jié)目關(guān)聯(lián)表、節(jié)目映射表、網(wǎng)絡(luò)信息表、業(yè)務(wù)描述表、事件信息表、條件接收表、運行狀態(tài)表、時間和日期表、時間偏移表、信息選擇表、間斷信息表、業(yè)務(wù)群關(guān)聯(lián)表、填充表。每種類型的表由一個或者多個子表所組成,而且每一個子表由一個或者多個具有相同的table_id(表標(biāo)識符)的一系列段所組成[4]。段是一個語法結(jié)構(gòu),用于將TS流中的相應(yīng)信息映射成為符合GB/T 17975.1標(biāo)準(zhǔn)的數(shù)據(jù)包。將每種表的各個段按照段號收集起來就可以組成一張完整的表[5],主要取得的表如下所示:

節(jié)目關(guān)聯(lián)表(PAT):主要用于指出當(dāng)前TS流中包含的節(jié)目編號[6]、網(wǎng)絡(luò)信息表PID以及所對應(yīng)的節(jié)目映射表。

節(jié)目映射表(PMT):每個節(jié)目映射表對應(yīng)于一個節(jié)目[7],其中包含了相對應(yīng)

節(jié)目的碼流信息比如包含音頻數(shù)據(jù)包的PID、視頻數(shù)據(jù)包PID,如果節(jié)目加密,則還包括了加密系統(tǒng)中用于解密的ECM控制授權(quán)信息。

網(wǎng)絡(luò)信息表(NIT):NIT表描述了整個傳輸網(wǎng)絡(luò)的信息[8],主要傳輸了一個給定的網(wǎng)絡(luò)傳輸?shù)膹?fù)用流的結(jié)構(gòu)相關(guān)信息,以及網(wǎng)絡(luò)本身所具有的特定信息與碼流包含的所有頻點信息。

業(yè)務(wù)描述表(SDT):SDT每一個子表是用來描述包含于一個特定的傳送流中的業(yè)務(wù)。該業(yè)務(wù)可以是當(dāng)前傳送流的一部分,也可以是其它傳送流的一部分,這個是根據(jù)表的table_id來進(jìn)行判斷。

事件信息表(EIT):事件信息表也是由多個事件信息段所組成,是制作EPG中重要的一個數(shù)據(jù)表。EIT是按照時間順序來傳送相應(yīng)的業(yè)務(wù)所包含的事件信息。事件是每一個服務(wù)里面所包含的具體信息,是一組給定了起始時間和結(jié)束時間、屬于同一個業(yè)務(wù)的基本廣播數(shù)據(jù)流。比如:中央一套節(jié)目里面的焦點訪談、新聞聯(lián)播就屬于其中的事件。

3 EPG設(shè)計流程

PSI信息即節(jié)目數(shù)據(jù)信息是TS碼流以一定的頻率進(jìn)行發(fā)送,每秒鐘至少二十次,因此隨時都能夠在終端取得所需要的EPG參數(shù),比如節(jié)目的頻點數(shù)據(jù)、調(diào)制方式、符號率等,所以PSI信息不能夠被加密。在PSI傳輸中,首先不同的信息表根據(jù)不同的TS包PID來獲取,具有相同PID的不同信息表則由其各自的table_id來區(qū)分。

節(jié)目關(guān)聯(lián)表PAT是首先需要從解碼器取出的數(shù)據(jù),裝載節(jié)目關(guān)聯(lián)表的TS包ID值為0x00,其table_id也為0x00。PAT表是所有PSI數(shù)據(jù)的根,當(dāng)從解碼器中獲取到了整個PAT表,需要取出NIT表的PID和節(jié)目映射表PMT的PID。獲取NIT表主要用于獲得包含所有節(jié)目的頻點頻率、符號率以及業(yè)務(wù)號、業(yè)務(wù)類型;獲取PMT的PID可以提供給解碼器用來取出當(dāng)前流的PMT表,每一個PMT表對應(yīng)于一個具體的節(jié)目,其中包括了包含音頻、視頻PES數(shù)據(jù)的PID,通過找到屬于這兩個PID的TS包,即可以送至解碼器進(jìn)行對音視頻數(shù)據(jù)的解碼播放;隨后獲取PID為0x0011的SDT段的包,根據(jù)table_id為0x42取得當(dāng)前TS流節(jié)目列表,0x46獲取其它TS流節(jié)目列表。根據(jù)段的結(jié)構(gòu)獲取SDT表的service_id,其對應(yīng)于PMT表中的program_number,都指向一個具體的節(jié)目號;根據(jù)PID為0x0012的TS包取得事件信息表EIT,EIT表記錄了現(xiàn)行傳送流與其它傳送流的節(jié)目事件名稱、開始與持續(xù)時間等信息,可以根據(jù)段的數(shù)據(jù)結(jié)構(gòu)找到其中每一個service_id所對應(yīng)的業(yè)務(wù)與節(jié)目事件、持續(xù)時間以及當(dāng)前與后續(xù)節(jié)目的信息??紤]到EIT表所包含數(shù)據(jù)量太大,如果傳送一周的所有節(jié)目數(shù)據(jù),能夠達(dá)到1MB容量,這會造成開始初始化時間過長以及占用太多內(nèi)存空間,因此,目前設(shè)計的EPG只需取得現(xiàn)行傳送流的EIT表,減少了資源的開銷;由于音頻、視頻數(shù)據(jù)會被加密,所以我們還要取得條件接收表CAT。CAT的PID為0x0001,用于節(jié)目碼流的解擾,并幫助解碼器獲取控制加密的加密控制信息(ECM)和加密管理信息(EMM)。

4 EPG架構(gòu)實現(xiàn)

由于國標(biāo)規(guī)定TS流傳輸頻率為50-870MHz,因此在設(shè)備啟動的時候先對調(diào)諧器設(shè)置從50MHz開始的頻率、符號率、調(diào)制方式鎖定頻點,如果接收到數(shù)據(jù),則獲取PAT、PMT、NIT等表信息;隨后接收當(dāng)前頻點上的PAT表,由固定的PID與table_id為0x00來識別獲取,并將PAT表解析保存。

從解析的PAT表中取出當(dāng)program_number為0時的network_id,雖然NIT的固定PID為0x0010,但是這樣容易產(chǎn)生不確定性,因此我們采取從PAT表獲取NIT表的PID的方式,如果從PAT表中找不到NIT表PID,則將NIT的PID默認(rèn)為0x0010。

在NIT過濾器中依據(jù)NIT表的PID與table_id取得NIT表,解析并且保存;然后從其中取出業(yè)務(wù)列表描述符中的節(jié)目服務(wù)號(ser? vice_id)與節(jié)目服務(wù)類型(service_type)保存至總體數(shù)據(jù)結(jié)構(gòu)dvb_search_table_t的鏈表中,在這個鏈表中以service_id為主線,每一個service_id所代表的結(jié)構(gòu)信息作為鏈表中的一個單元,具體結(jié)構(gòu)如下:

typedef struct dvb_search_eit

{

unsigned service_id;

unsigned long start_time;

unsigned duration;

char *event_name;

struct dvb_search_eit *next;

} dvb_search_eit_t;//從當(dāng)前流取得的EIT表信息

typedef struct dvb_search_table

{

unsigned program_num;//通過NIT表獲取

float freq;//通過NIT表獲取

unsigned modulation;

unsigned symbol_rate;

int type;//當(dāng)前節(jié)目類型

unsigned video_id;

unsigned audio_id;//從當(dāng)前流取得

char *program_name;//SDT(當(dāng)前流和其它流)

dvb_search_eit_t*eit_table;//對應(yīng)于當(dāng)前service_id的所有節(jié)目時間信息

struct dvb_search_table *next;

} dvb_search_table_t;//DVB總體結(jié)構(gòu)當(dāng)從NIT的業(yè)務(wù)列表描述符取出所有的service_id之后,在程序中就要建立對應(yīng)的鏈表,這樣在用戶搜索每個電視臺時能夠根據(jù)program_number號找到對應(yīng)的節(jié)目名稱、類型、事件信息以及音視頻TS數(shù)據(jù)包。其中的freq、modulation、symbol_rate從NIT表中有線傳送描述符中獲取。經(jīng)過這兩個步驟網(wǎng)絡(luò)信息已經(jīng)全部獲取,之后使用已經(jīng)取得的頻點、調(diào)試方式、符號率再次輸入調(diào)諧器,鎖定頻點,即可以提供選臺的功能。

在已經(jīng)鎖定的頻點下取得PAT表,獲取保存當(dāng)前流下的所有program_number以及對應(yīng)的PID,如果此時需要播放當(dāng)前節(jié)目,就可以找到對應(yīng)program_number的PMT表并解析,得到音頻、視頻流PID送入播放模塊;同時,還要在PMT表中取得幾個字段:PCR_PID、stream_type。其中通過PCR_PID找到記錄PCR域的數(shù)據(jù)包送入播放模塊進(jìn)行音頻、視頻同步,而stream_type為0x02時代表是視頻流,為0x04時候為音頻流;最后還要在PMT表中檢測是否有CA描述符,如果有則需取出其中的CA_system_ID和CA_PID字段并保存以便搜索到用于解密的ECM包。根據(jù)PID為0x0011,table_id為0x42與0x46接收當(dāng)前流與其它流的SDT表并解析,取得所有的service_id與其對應(yīng)的業(yè)務(wù)描述符中service_name,鏈入鏈表,因此能夠提供給用戶顯示所有的節(jié)目選擇,如果用戶選擇某個節(jié)目,則可以循環(huán)至第4步驟來播放節(jié)目。

當(dāng)選擇某個節(jié)目即service_id之后,為了獲取更多節(jié)目信息,就要取得EIT表里對應(yīng)節(jié)目的數(shù)據(jù)。獲得現(xiàn)行傳送流的當(dāng)前/后續(xù)事件信息,則獲得table_id為0x4e的表;如要獲得一周內(nèi)的節(jié)目事件信息,則還要獲取table_id為0x50至0x5f的表;從表中取得當(dāng)前流所有service_id對應(yīng)的start_time、duration以及短事件描述符中的event_name,保存至dvb_search_eit_t結(jié)構(gòu)鏈表中,每一個節(jié)目對應(yīng)一個結(jié)構(gòu)單元,當(dāng)選擇了某個節(jié)目時,會根據(jù)service_id在dvb_search_eit_t鏈表中搜索,找到對應(yīng)單元就能取得事件與時間信息。

5結(jié)束語

本文從整體介紹了EPG的組成,包括對各個數(shù)據(jù)表與對應(yīng)描述符的分析獲取,從中取得EPG各種數(shù)據(jù)。隨后設(shè)計并實現(xiàn)了EPG的整體架構(gòu)以及運行流程,實現(xiàn)了快速搜臺、顯示全部電視節(jié)目內(nèi)容、播放信息等功能,并能夠?qū)?jié)目頻道進(jìn)行選擇以及在播放節(jié)目的同時顯示出當(dāng)前節(jié)目的事件、時間等信息,實現(xiàn)了用戶與電視節(jié)目設(shè)備之間的交互。

參考文獻(xiàn):

[1]彭志強.有線電視數(shù)字機頂盒與視頻點播[OL].北京:廣電在線, 2004.

[2] Digital Video Broadcasting(DVB), Specification for Service Information (SI) in DVB systems, EN300 468 V1.3. 1998.

[3]孫蘇廣. DVB條件接收系統(tǒng)簡介[J].廣播與電視技術(shù), 1997, (3).

[4]鄭立新等. DVB機頂盒中條件接收系統(tǒng)的設(shè)計與實現(xiàn)[J].電視技術(shù),2003, (7).

[5]國家廣播電影電視總局標(biāo)準(zhǔn)規(guī)劃研究所.數(shù)字電視廣播條件接收系統(tǒng)規(guī)范[S], 2001.

[6]黎宏松.數(shù)字視頻技術(shù)及應(yīng)用[M].北京:清華出版社, 1997.

[7]宋靖濤.數(shù)字機頂盒技術(shù)綜述[J].北京:衛(wèi)視周刊, 2003, (4): 76-78.

[8]李倉峰,張海亮,趙行波.一種基于DMB-T的車載數(shù)字電視終端的設(shè)計與實現(xiàn)[J].北京:電視技術(shù), 2005,(12).

猜你喜歡
數(shù)字電視機頂盒
機頂盒上別蓋布
安全使用機頂盒注意五點
機頂盒上別蓋布
數(shù)字電視機頂盒軟件自動測試系統(tǒng)的開發(fā)及應(yīng)用
電子測試(2017年15期)2017-12-18 07:19:23
同江分公司數(shù)字電視備播系統(tǒng)解析
試論數(shù)字電視硬盤播出系統(tǒng)的技術(shù)要點
DVB數(shù)字電視傳輸流的生成和復(fù)用技術(shù)及實現(xiàn)
數(shù)字電視信號傳播技術(shù)發(fā)展問題研究
數(shù)字電視的安裝調(diào)試與檢修的探析
關(guān)于我臺站將MMDS做為應(yīng)急信號源的實際應(yīng)用
科技視界(2016年4期)2016-02-22 13:06:42
伊川县| 松桃| 镇江市| 庄浪县| 综艺| 塘沽区| 江川县| 东平县| 安庆市| 石棉县| 包头市| 平湖市| 黄梅县| 武鸣县| 岚皋县| 宽甸| 五常市| 开原市| 双鸭山市| 苍山县| 灯塔市| 印江| 自贡市| 张家界市| 绩溪县| 吐鲁番市| 兴山县| 甘德县| 泰来县| 临清市| 红河县| 九台市| 东平县| 田阳县| 宝鸡市| 和林格尔县| 高尔夫| 陵水| 泸水县| 永州市| 鹤壁市|