馬維新 李建軍
摘要:對(duì)TS流的結(jié)構(gòu)及其傳輸特性進(jìn)行了分析和研究,結(jié)合地面數(shù)字電視系統(tǒng)管理和維護(hù)的實(shí)際需求,通過具體的應(yīng)用軟件設(shè)計(jì)過程,詳細(xì)介紹了地面發(fā)射臺(tái)站MPTS碼流實(shí)時(shí)監(jiān)測(cè)的方法。
關(guān)鍵詞:地面數(shù)字電視;MPTS碼流;碼率;時(shí)實(shí)監(jiān)測(cè)
中圖分類號(hào):TN94 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2020)03-0053-03
0 概述
地面數(shù)字電視其前端信息的傳輸使用了數(shù)字電視所普遍采用的TS流(Transport Stream,傳輸流)的傳輸方式。TS流是節(jié)目信源復(fù)用后的一種信息形式,它可以是SMTS(單節(jié)目流)也可以是MPTS(多節(jié)目流),以188字節(jié)的固定包長存在于在傳輸介質(zhì)中,來實(shí)現(xiàn)數(shù)字電視信息的傳輸。由于音視頻壓縮編碼在傳輸過程中的固有特性,需要TS流在承載基本編碼信息的同時(shí)還必須承載解復(fù)用以及解碼所需要諸多輔助信息,這就使TS流的描述性語法結(jié)構(gòu)十分復(fù)雜,再加上高達(dá)20M左右的傳輸碼率,傳統(tǒng)的信源監(jiān)測(cè)方法很難實(shí)現(xiàn)對(duì)地面數(shù)字電視這樣的MPTS流進(jìn)行數(shù)據(jù)層面的有效監(jiān)測(cè)。因此研究和實(shí)現(xiàn)對(duì)MPTS的時(shí)實(shí)監(jiān)測(cè)十分必要。
1 MPTS碼流的傳輸和結(jié)構(gòu)分析
TS流為MPEG-2的傳輸流,是Moving Pictures ExpertGroup (運(yùn)動(dòng)圖像專家組)制定的主要用于傳輸聲音和圖像數(shù)據(jù)壓縮的標(biāo)準(zhǔn),也是當(dāng)前國內(nèi)地面數(shù)字電視所使用的傳輸標(biāo)準(zhǔn)。相對(duì)于ASI,因?yàn)镮P傳輸有著極高性價(jià)比,更適合遠(yuǎn)距離傳輸,因此從中心(碼流發(fā)送端)到各地面發(fā)射臺(tái)站主要采用這種傳輸方式。
關(guān)于TS流的結(jié)構(gòu),有文獻(xiàn)已做了詳細(xì)的介紹,限于篇幅就不再贅述,這里僅就我們?cè)O(shè)計(jì)中所涉及到的內(nèi)容進(jìn)行分析。
TS流格式為一個(gè)基于Packet(包)的Bit流,每個(gè)Packet規(guī)定為188個(gè)字節(jié),其中前4個(gè)字節(jié)為Packet header(包頭)。
Packet header的具體含義如表1。其中PID(Packet ID)是TS流中一個(gè)非常重要的參數(shù),它標(biāo)識(shí)著Packet Data(包數(shù)據(jù))的類型,Packet Data是什么類型數(shù)據(jù)就是由PID聲明的。PAT(節(jié)目關(guān)聯(lián)表)是一個(gè)特殊的Packet Data,它定義了TS流中的所有業(yè)務(wù),其PID固定為0x0000是節(jié)目信息的根節(jié)點(diǎn)。PMT(節(jié)目映射表)是另一個(gè)特殊的Packet Data,負(fù)責(zé)提供具體節(jié)目的編號(hào)和組成它們的節(jié)目元之間的映射,它的PID由PAT指定,而具體節(jié)目SMTS中所包含的節(jié)目元Video數(shù)據(jù)的PID、Audio數(shù)據(jù)的PID和Other(其他)數(shù)據(jù)的PID(如數(shù)字廣播、圖文信息、數(shù)據(jù)通訊等使用的PID) 則由PMT指定。
可表示為:
MPTS=PAT+∑(SMTS)+Other Packet Data
SMTS=PMT+Video Packet Data+Audio Packet Data
由于我們主要關(guān)心的是電視信息碼流的實(shí)時(shí)監(jiān)測(cè),并不對(duì)信息Packet Data進(jìn)行解碼播放,這里就不對(duì)Other Packet Data和TS流中關(guān)于解碼的有關(guān)參數(shù)做詳細(xì)解析。
通過前面的分析,可以看出MPTS的結(jié)構(gòu)模型是一個(gè)基于PID的樹,PAT為根。通過PAT可以遍歷整個(gè)樹。這也正是我們?cè)O(shè)計(jì)的理論依據(jù)。
2 實(shí)際應(yīng)用
本臺(tái)地面數(shù)字電視情況:
(1)本臺(tái)地面數(shù)字電視TS流的傳輸由4個(gè)相對(duì)獨(dú)立的IP通道采用Multicast(組播)方式進(jìn)行的,Multicast地址分別為:224.30.1.11、224.30.1.12、224.30.1.13、224.30.1.14,共同使用8500端口。
(2)每個(gè)通道傳輸?shù)臑镸PTS流,由若干套電視節(jié)目的SMTS和Other Packet Data構(gòu)成。分別通過各自的PAT來指定SMTS的具體套數(shù)(目前都為10)和PMT的PID。
(3)SMTS為具體電視節(jié)目的碼流(如CCTV-1等),包含節(jié)目號(hào)、節(jié)目名、Video Packet Data和Audio Packet Data。由SMTS的PMT指定。
設(shè)計(jì)由主界面中如下3個(gè)區(qū)域來顯示監(jiān)測(cè)結(jié)果:
(1)體現(xiàn)4個(gè)通道MPTS層次結(jié)構(gòu)的區(qū)域。
(2)動(dòng)態(tài)顯示選定通道MPTS UDP包序列的區(qū)域。
(3)具體TS包數(shù)據(jù)的16進(jìn)制顯示區(qū)域。
2.1 系統(tǒng)初始化
主要是實(shí)現(xiàn)區(qū)域(1)的功能,監(jiān)測(cè)MPTS的有無,并將其層次結(jié)構(gòu)顯示出來。一個(gè)通道的初始化程序結(jié)構(gòu)如圖1所示,其他通道相同。
實(shí)際當(dāng)中,碼流處理單元是由4個(gè)獨(dú)立的嵌入式系統(tǒng)來分別完成4個(gè)通道的MPTS碼流接收的,不存在端口共用問題,而本項(xiàng)目卻存在一個(gè)操作系統(tǒng)下4個(gè)線程同時(shí)使用同一個(gè)端口的問題。這就需要們?cè)诿總€(gè)通道的組播接收線程中,在創(chuàng)建setsockopt時(shí)使用SO_REUSEADDR選項(xiàng)并做相應(yīng)的處理。
需要說明,在MPTS樹結(jié)構(gòu)中,節(jié)目號(hào)和節(jié)目名應(yīng)該是PMT的子節(jié)點(diǎn),而設(shè)計(jì)中我們做了互換,這主要是為了適應(yīng)我們的觀測(cè)習(xí)慣。
2.2 ?MPTS碼流的實(shí)時(shí)獲取、過濾與顯示
主要是實(shí)現(xiàn)區(qū)域(2)的功能,就是將包含MPTS的每個(gè)UDP包按接收順序存入緩沖區(qū),并將其Index(序號(hào))、Data type(數(shù)據(jù)類型)、n/7(所選類型TS占UDP包數(shù))、Sour IP(發(fā)送端IP地址)、Sour Port(發(fā)送端端口)等項(xiàng),以列表形式實(shí)時(shí)顯示出來。
MPTS碼流的實(shí)時(shí)獲取、過濾與顯示部分程序結(jié)構(gòu)如圖2所示。
由于區(qū)域(1)中4個(gè)通道對(duì)應(yīng)的樹有諸多節(jié)點(diǎn),選中節(jié)點(diǎn)具體處在哪個(gè)階層、屬于哪個(gè)通道是隨機(jī)的。需要由該節(jié)點(diǎn)向上遞歸來確定。遞歸算法如下:
另外,直接顯示數(shù)字電視這種高速、巨量數(shù)據(jù)將會(huì)出現(xiàn)大量丟包、界面閃爍現(xiàn)象,無法滿足觀測(cè)要求。這里我們是使用VirtualList(虛擬列表)技術(shù)解決的。
2.3 TS包數(shù)據(jù)的16進(jìn)制顯示
實(shí)現(xiàn)區(qū)域(3)的功能,根據(jù)用戶在區(qū)域(2)中選擇的Index,把其對(duì)應(yīng)緩沖區(qū)的UDP包進(jìn)行過濾,對(duì)滿足條件的ST包數(shù)據(jù)做16進(jìn)制轉(zhuǎn)換并顯示。程序結(jié)構(gòu)如圖3所示。
受MTU(網(wǎng)絡(luò)最大傳送單元)的限制,數(shù)字電視業(yè)務(wù)標(biāo)準(zhǔn)規(guī)定,每個(gè)UDP包固定包含7個(gè)TS包,所以過濾過程要執(zhí)行7次 。3.1.2節(jié)中的過濾過程也是這樣。
2.4 碼率的計(jì)算和顯示
除了上述監(jiān)測(cè)功能外,還設(shè)計(jì)了對(duì)選定通道碼率的實(shí)時(shí)監(jiān)測(cè)功能。原理描述如下:
T1=timeGetTime();
接收UDP包數(shù)據(jù)n次
T2=timeGetTime();
碼率=n個(gè)UDP包的數(shù)據(jù)量/(T2-T1)
使用Mbps為碼率單位。那么n個(gè)UDP 包的數(shù)據(jù)量為:7*188*8*n/1024*1024(Mbit)、時(shí)間間隔為:(T2-T1)/1000(s)。實(shí)際設(shè)計(jì)中根據(jù)觀測(cè)效果選擇n=3000。
3 應(yīng)用系統(tǒng)測(cè)試
設(shè)計(jì)完成,實(shí)際運(yùn)行后的在線實(shí)時(shí)監(jiān)測(cè)界面,如圖4所示。其中,左邊為區(qū)域:(1)、右上為區(qū)域(2)、右下為區(qū)域(3)、右上角為實(shí)時(shí)碼率。監(jiān)測(cè)數(shù)據(jù)與編碼端理論數(shù)據(jù)對(duì)比,結(jié)果完全相同。
4 結(jié)語
TS碼流監(jiān)測(cè)是廣播電視數(shù)字化進(jìn)程中的重要組成部分,本文通過具體的應(yīng)用事例,分析研究了數(shù)字電視MPTS碼流的結(jié)構(gòu)及其傳輸原理,給出了獲取和解析MPTS碼流、碼率的算法流程。
參考文獻(xiàn)
[1] 方濤.數(shù)字電視業(yè)務(wù)信息及其編碼[M].北京:國防工業(yè)出版社,2003.
[2] 工業(yè)和信息化部與國家新聞出版廣電總局聯(lián)合發(fā)布,廣播電視先進(jìn)視頻編解碼(AVS+)技術(shù)應(yīng)用實(shí)施指南[S].2014.
[3] 浮沉.基于IP的數(shù)字電視信號(hào)監(jiān)測(cè)系統(tǒng)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[J].廣播電視信息,2012(6):50-51.
[4] 阿合買提江吾甫爾.數(shù)字電視信號(hào)監(jiān)測(cè)系統(tǒng)方案的設(shè)計(jì)[J].廣播與電視技術(shù),2007(8):140-141.
[5] 宋棟棟.數(shù)字電視TS碼流監(jiān)測(cè)的研究分析[D].北京:北京郵電大學(xué),2009.
Abstract:This paper analyzes and studies the structure and transmission characteristics of TS streams.Based on the actual requirements of the management and maintenance of the terrestrial digital TV system, according to the specific application software design process ,the method of real-time monitoring of the MPTS code stream of the terrestrial transmitting station is introduced in detail.
Key words:digital terrestrial television;MPTS stream;bit rate; real-time monitoring