馬維新 李建軍



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