周沫 汪波 江蘇省廣播電視總臺發(fā)射傳輸臺
江蘇省地面數(shù)字播出網(wǎng)按省域單頻網(wǎng)、市域單頻網(wǎng)、全省各縣多頻網(wǎng)的組合方式建設(shè),播出中央、省、市、縣節(jié)目。信號前端系統(tǒng)分省前端、各地市前端、各縣前端三級結(jié)構(gòu),各前端按IP方式進(jìn)行分級復(fù)用。與傳統(tǒng)的ASI復(fù)用方案相比,全網(wǎng)IP架構(gòu)結(jié)構(gòu)清晰、集成度高、信號調(diào)度快捷。
施工過程需要對前端編碼器、復(fù)用器、交換機(jī)、單頻網(wǎng)適配器、發(fā)射機(jī)輸入端等各節(jié)點(diǎn)進(jìn)行碼流分析比較,確定信號完好、定位故障節(jié)點(diǎn)。但在實(shí)際工程中發(fā)現(xiàn)常用的碼流分析系統(tǒng),功能都不夠完善,如TS-Reader能實(shí)現(xiàn)碼率監(jiān)控、節(jié)目列表掃描,但是不能實(shí)現(xiàn)AVS+/DRA的節(jié)目解碼;TeleSight能實(shí)現(xiàn)AVS+的節(jié)目解碼,但不能實(shí)現(xiàn)碼流的自動探測。未發(fā)現(xiàn)一款碼流分析系統(tǒng),能實(shí)現(xiàn)地面數(shù)字電視信號調(diào)試必須的SIP包分析功能。因此,需要一套碼流分析系統(tǒng),既有便攜性,又具備地面數(shù)字電視系統(tǒng)需要的碼流分析和調(diào)試功能。
按照實(shí)際工程需要,本項目開發(fā)的碼流探測分析系統(tǒng),至少具備以下基本功能:
(1)TS流自動探測:不需要手動填寫目的地址、源地址、組播地址等信息,能自動獲取所有傳入數(shù)據(jù)包并篩選出TS流,詳細(xì)顯示流列表。
(2)TS流手動探測:具備組播組加入申請功能。
(3)碼率監(jiān)控和報警:監(jiān)測TS流總碼率及所有PID的傳輸碼率,顯示所有PSI/SI信息。
(4)節(jié)目列表掃描:不論是SPTS還是MPTS,都能實(shí)現(xiàn)節(jié)目掃描。
(5)TR101-290錯誤檢查:支持實(shí)時監(jiān)測錯誤信息。
(6)TSoIP流錯誤檢查:具備基本的IP層錯誤檢查功能。
(7)AVS+/DRA節(jié)目解碼預(yù)覽:支持AVS/AVS+/H.264視頻解碼,DRA/MP2/AAC等音頻解碼,可根據(jù)讀取的節(jié)目表選擇節(jié)目,也可以指定PID解碼視音頻。
(8)單頻網(wǎng)SIP包分析:地面數(shù)字電視單頻網(wǎng)信號中SIP包信息的檢查和分析。
系統(tǒng)使用Microsoft Visual Studio開發(fā)工具以C#編寫,窗體部分使用Windows Forms設(shè)計,共兩個應(yīng)用窗體界面: 碼流探測、碼率監(jiān)控、節(jié)目信息顯示、錯誤記錄、節(jié)目解碼預(yù)覽在一個界面,SIP分析在另一個界面。
工程施工過程中發(fā)現(xiàn),碼流分析系統(tǒng)需要具備自動探測功能,一是為了方便操作,不需要每個節(jié)目手動掃描,二是實(shí)現(xiàn)查看某端口的所有節(jié)目,確保節(jié)目沒有變多或遺漏。但是常見的TS碼流分析系統(tǒng)在TS組播碼流獲取時,需要手動輸入組播地址,并不能實(shí)現(xiàn)自動探測的功能。本系統(tǒng)根據(jù)使用需求,支持自動探測所有傳入組播流,同時也支持手動輸入組播地址加入組播組。碼流探測界面如圖1所示。
圖1 碼流探測界面
自動探測功能(節(jié)目左下角):用戶選擇綁定本機(jī)某個網(wǎng)卡即可探測所有傳入的TS流,包括推送的組播流。主動加入組播組功能:也可通過自行添加組播地址加入組播組以獲得組播碼流。界面中每一行均為一個獲取的TS流信息,左邊為數(shù)據(jù)包源地址、端口,右邊為目的地址、端口。
TS流是基于Packet的位流格式,每個包是188個字節(jié)(或204個字節(jié),在188個字節(jié)后加上了16字節(jié)的CRC校驗數(shù)據(jù),其他格式一樣)。一個TS包的格式見圖2。
圖2 TS包格式
具體實(shí)現(xiàn)搜索TS流的方法為建立.net中socket對象綁定指定的本地地址并探測傳入的所有數(shù)據(jù)。根據(jù)上述TS流特征過濾收到的數(shù)據(jù)包中的TS流并將基本信息顯示在界面中。部分代碼見圖3。
圖3 TS流綁定代碼
在探測界面中選擇某個TS流并點(diǎn)擊開始分析后,軟件將對該TS流進(jìn)行詳細(xì)分析、監(jiān)控。本程序中設(shè)計一個TS_Deal類來完成所有TS碼流信息的監(jiān)測、分析功能。該類的實(shí)例綁定一個TS流后,便會持續(xù)收取碼流,在TS_Deal實(shí)例中,每隔一定時間對已獲取的所有數(shù)據(jù)包進(jìn)行分析,內(nèi)容包括:(1)分析TS包頭:根據(jù)上一節(jié)TS_header的結(jié)構(gòu),解析每個TS包的包頭,解析后即得到該TS包對應(yīng)的PID、同步字節(jié)、包遞增計數(shù)器、加密標(biāo)志等信息。
(2)計算總碼率:在一定時間后計算緩存中的TS包個數(shù),算得總碼率。
(3)統(tǒng)計PID信息:每個PID碼率與計算總碼率類似,每隔一定時間計算每個PID包個數(shù),從而得到每個PID碼率,核心代碼如圖4。
最后,將上文所述的計算總碼率和每個PID碼率信息實(shí)時展示到窗口界面。
圖4 PID統(tǒng)計代碼
解析SDT、PAT、CAT、PMT表并分析錯誤信息,通過PID判斷表類型,根據(jù)每個表結(jié)構(gòu)進(jìn)行解析。首先解析PAT表,獲取碼流中所有節(jié)目列表,PAT表結(jié)構(gòu)如圖5所示。圖5中,程序在解析到N環(huán)部分的時候,會讀取并保存節(jié)目列表及其PID。PAT表列出了TS流中所有的節(jié)目列表,以及節(jié)目對應(yīng)的PID值,這個PID值表征的是該節(jié)目對應(yīng)的PMT表的PID值。
圖5 PAT表結(jié)構(gòu)
PMT提供一路節(jié)目包含的所有原始碼流的PID映射表,程序在讀取N環(huán)的時候會讀取該節(jié)目所有的碼流列表及其PID,解析的時候可以根據(jù)PID來分離。節(jié)目時鐘參考PCR的PID和視頻的PID是相等的。由PAT得出所有的節(jié)目列表,根據(jù)一個節(jié)目篩選出等于該節(jié)目PID的TS包,就可以得到該節(jié)目的所有碼流的PID映射表。最后,通過SDT表的解析獲得所有節(jié)目的節(jié)目名稱、服務(wù)名稱等信息。
以PAT表為例,解析代碼如圖6所示。
最后,將PAT、PMT、SDT表解析后將節(jié)目信息整理并通過界面右側(cè)treeview顯示出來。
圖6 PAT表結(jié)構(gòu)解析代碼
根據(jù)上文獲取節(jié)目列表后提供節(jié)目選擇界面,將對應(yīng)節(jié)目視音頻PID的TS包發(fā)送給解碼模塊并將視音頻解碼展示在界面中,也支持指定PID進(jìn)行指定格式的音頻或視頻解碼。
錯誤變量使用TR101_Status結(jié)構(gòu)體定義,記錄錯誤狀態(tài)及錯誤發(fā)生的次數(shù),在使用中需檢測的錯誤內(nèi)容見圖7。
圖7 TR101-290錯誤分析代碼
根據(jù)TR101-290,在上文搜索SDT、PAT、PMT等表時分析碼流中的錯誤信息,錯誤解析后,將錯誤內(nèi)容和錯誤個數(shù)展示在界面下方,當(dāng)發(fā)生錯誤時對應(yīng)項目顯示為紅色以及錯誤個數(shù),軟件中提供了6個一級錯誤及傳輸錯誤、CAT錯誤,兩個二級錯誤的檢測。在IP傳輸層面,按照IP包的時間間隔計數(shù)并做統(tǒng)計報警。
以連續(xù)計數(shù)錯誤代碼舉例見圖8。
圖8 連續(xù)計數(shù)錯誤分析代碼
圖9 SIP包分析模塊
為了地面數(shù)字電視單頻網(wǎng)測試需要,加入了單頻網(wǎng) SIP包分析模塊,功能界面如圖9所示。
圖10 SIP表結(jié)構(gòu)
在地面數(shù)字電視單頻網(wǎng)中,適配器每1秒鐘向輸入的TS碼流中插入1個SIP,插入時刻與GPS的1pps對齊,SIP包的格式與MPEG2-TS包格式相同,由4字節(jié)的包頭和184字節(jié)的數(shù)據(jù)字段組成,SIP表結(jié)構(gòu)見圖10。
程序?qū)ζ渲蠸I_SIP中包含的信息進(jìn)行解析,展現(xiàn)在界面中,并將每個參數(shù)錯誤記錄次數(shù)展現(xiàn)在參數(shù)右側(cè),方便工程中進(jìn)行闡述核對和分析。
同時程序中實(shí)時統(tǒng)計SIP包間隔并計算SIP偏差,由于網(wǎng)絡(luò)傳輸中可能有誤差,程序提供SIP累計偏差調(diào)整統(tǒng)計精度。計算部分代碼見圖11。
最后在界面中展示每次SIP間隔、偏差和累計偏差并以圖表形式展現(xiàn)間隔分布。
該系統(tǒng)是在江蘇省地面數(shù)字電視施工階段,按照實(shí)際需求進(jìn)行的研發(fā),并進(jìn)行了多次修改,操作簡便、功能完善。應(yīng)用該系統(tǒng),技術(shù)人員能快速測試到所有傳入的TS流、監(jiān)測所有PID的傳輸速率、實(shí)時顯示TR101-290錯誤信息,并能提供聲音、畫面實(shí)時播放功能。對于單頻網(wǎng)信號,能進(jìn)行SIP包的檢測和分析。在快速定位信號故障節(jié)點(diǎn)方面,系統(tǒng)得到了廣泛應(yīng)用,極大地提高了施工的效率。
圖11 SIP分析代碼