隨着廣播電視的不斷髮展與消費者對於音畫體驗的要求不斷提高,傳輸方式亟需與時俱進迎來新的變革。安徽廣播電視臺的張博力將從衛星傳輸、公網傳輸SRT協議理論入手,經過分析鏈路測試報告,給出4K衛星傳輸的鏈路搭建方案,並重點分析在實際應用中如何保證公網傳輸的安全性和可用性。
文 / 張博力數組
整理 / LiveVideoStack安全
你們好,我是來自安徽廣播電視臺的張博力,接下來我將爲你們詳細介紹泛廣電領域的衛星傳輸和公網傳輸。網絡
隨着廣播電視的不斷髮展與消費者對於音畫體驗的要求不斷提高,傳輸方式亟需與時俱進迎來新的變革,這不由讓咱們感到好奇:4K時代衛星傳輸可否勝任?公網傳輸做爲一種新的選擇,可否擔當起主流廣播電視服務的傳輸責任?架構
我是電視臺的技術工做者,按照傳統廣電的理論,廣播電視臺的工做能夠簡單歸納爲如下幾點:採、編、播、存、傳——也就是採集、編輯、播出、存儲、傳輸。可是如今,不管你是製做公司仍是我的用戶,只要擁有這五項工做所須要的設備,你就能夠組建出屬於本身的類廣播電視系統,因此咱們今天討論的也是在泛廣電領域下,衛星傳輸與公網傳輸的前世此生與將來發展。併發
現代泛廣電領域的工做流程,按順序能夠簡單歸納爲「製做」、「傳輸」與「分發」,這與以前傳統廣電領域「製做」、「分發」與「傳輸」的順序有所不一樣,主要緣由是這裏咱們分享與討論的「傳輸」,是指從製做端到分發端的高效可靠低延遲B to B傳輸。框架
這裏咱們能夠選用多種傳輸方式,最多見的就是傳統廣電領域使用多年的衛星傳輸和如今逐漸流行的公網傳輸。運維
這裏的衛星是同步軌道衛星,隨地球一塊兒自轉,相對於地面的位置始終不變。轉播車將數據沿衛星鏈路發送給同步軌道衛星,再借助衛星發送至電視臺製做基地。不須要線纜、網絡便可完成跨國甚至洲際間廣播電視傳輸,穩定可靠。ide
上圖展現的就是衛星鏈路的傳輸示意圖。工具
首先在發射端,咱們傳輸的數據確定不能是基帶信號而是通過信源編碼的信號,這裏以HEVC爲例。HEVC編碼完成的信號在傳輸以前還須要通過信道編碼(FEC編碼)、交織星座映射、I/Q調製與數字預失真以及SRRC濾波器等一系列處理,接下來還需通過上變頻放大器(BUC)與高功率放大器(HPA)提升信號頻率與功率,處理完畢的信號會經過天線沿上行鏈路傳輸至衛星轉發器;衛星轉發器這裏接收信號後再將信號放大併發射,信號沿下行鏈路傳輸至製做基地的接收端並在接收端通過一系列與發射端反向的信號處理工做以後,基帶信號纔算是正式傳輸完畢。性能
上圖展現的衛星傳輸鏈路設備圖能夠更直觀地說明衛星傳輸鏈路的工做流程。首先,第一步信源編碼須要超高清編碼器,隨後的調製則須要調製器的參與;接下來的上變頻與高功放處理模塊則是爲了讓信號更加穩定可靠地沿上行鏈路傳輸至衛星,而衛星天線則負責發射信號;由衛星天線發射的信號被高頻頭接收,並通過解調器的解調處理和解碼器解碼,得到目標信號,這也是安徽廣播電視臺構建的全國第一套KU波段車載4K衛星傳輸系統。
爲何說4K給衛星傳輸帶來了新的挑戰?咱們知道4K相對於1080i,其分辨率提高到四倍,幀率提升到兩倍而基帶碼流提升到8倍。若是使用傳統H.264編碼方式,4K下的碼流是原有全高清碼流的8倍,;而若是使用H.265進行編碼,4K下的碼流則是原有全高清碼流的4倍,其所帶來的編碼效率提高是顯而易見的。
儘管如此,4倍的碼流提高對衛星傳輸而言也是一項艱鉅的挑戰,由於衛星傳輸是一種典型的帶寬受限的傳輸系統。
一顆衛星由火箭送入太空,須要在太空工做十幾年;十幾年的技術發展日新月異,用戶對於高質量音畫體驗的追求愈來愈高,但衛星的傳輸帶寬卻始終不變;而衛星不管是其發射代價仍是運營維護成本都十分高昂,頻繁升級其帶寬也是不現實的。這就須要咱們充分利用有限的衛星帶寬資源實現傳輸質量的最大化,而究竟能充分利用到什麼程度呢?數學家克勞德·香農給出了這個問題的答案。
1948年數學家克勞德·香農在論文《通訊的數學原理》與《噪聲下的通訊》中,給出了在加性高斯白噪聲信噪下信道的最大容量:
最大容量只由信噪比與帶寬兩個變量決定,也就是咱們若是知道帶寬與信噪比,就能推斷出該條件下所能傳輸信號的最大碼率。
例如在30dB的信噪比下,信號與噪聲之比爲1000倍,有線傳輸(同軸電纜等)所能承載的最大數據容量爲帶寬的10倍;若是是在衛星傳輸中常見的10dB信噪比下,那麼最大容量爲帶寬的3.46倍。這一數值也就是10dB信噪比下衛星傳輸的極限值,使用衛星傳輸的廣播電視行業也是在用一代代演進的標準逐步逼近這一極限值——香農極限。
因而咱們不能不說的就是衛星傳輸標準的演進。1993年,DVB-S正式被做爲一套完整的適用於衛星傳輸的數字電視系統規範,我國也是率先採用了DVB-S。2005年推出的第二代衛星傳輸的數字電視系統規範DVB-S2採用了新的信道編碼方式——LDPC內碼與BHC外碼,有效提升了頻譜效率;2015年提出的擴展標準DVB-S2X則支持更低的滾降係數和更高階的調製方式,進一步逼近了香農極限。
DVB-S2X是如何逼近香農極限呢?以下圖所示,圖線表示的是載噪比和頻譜效率的比值,虛線是香農極限也就是上限。能夠看到表示DVB-S2X的紅色圖線已經很是接近香農極限,而表示DVB-S2的藍色圖線略遜於DVB-S2X。在低滾降係數下信噪比和載噪比的數值是比較近似的,結合剛纔的計算咱們能夠來看一下,以剛纔咱們提到的載噪比10dB爲例,剛纔咱們計算的10dB下信道最大容量爲帶寬的3.46倍,觀察圖線咱們能夠發現DVB-S2X的頻譜效率不到3倍,香農極限約爲3.5倍,與咱們的計算結果相符合。
接下來咱們須要瞭解DVB-S2的系統框架,下圖展現的爲DVB-S2的系統框圖。
能夠看到信號會首先被輸入至模式適配與流適配工具,在這裏進行合併分割、與結合基帶信令的流適配;隨後信號進入前向糾錯編碼處理,這裏咱們以3/4編碼爲例(能夠簡單理解爲4個數據裏面有3個有效數據1個糾錯數據),前向糾錯編碼(BCH外碼+LDPC內碼+比特交織)以後信號會通過星座映射與物理層組幀,最後進入基帶成形與正交調製階段。很是重要的一點是在基帶成形階段其滾降係數在DVB-S2X標準下會發生很大變化,0.35可能降到0.05,滾降係數下降意味着信道編碼效率的提升。
在相同帶寬狀況下,滾降係數0.05時符號率更高,波形中平坦的部分更寬,而0.2則相對較窄。儘管滾降係數提升了效率,但滾降係數越低其信號強度也越小。從圖中咱們也能夠看到滾降係數爲0.2時的信號,其強度要高於滾降係數爲0.05時的信號。根據計算,若是滾降係數從0.2降到0.05,那麼接收的信噪比會降0.6dB,這種信噪比的下降是否值得?
帶寬=符號率*(1+滾降係數)其中符號率爲單位時間內所能發送的符號數,也就是實際利用能夠傳輸數據的有效帶寬當中平坦的部分。
以衛星傳輸常租用的9M帶寬來計算,當滾降係數爲0.35時,傳輸所能使用的帶寬僅爲6.67M;而當滾降係數下降至0.05時,傳輸所能使用的帶寬最高可達8.57M,相對前者提高了28.5%。以信噪比下降0.6dB爲代價,換來28.5%的可用帶寬提高,這對咱們來講是很是划算的選擇。能夠說滾降係數的下降是一項很是出色的改進,應當善加利用。
低滾降所帶來的28.5%的可用帶寬提高實際上還沒法知足4K的傳輸需求,因此咱們還須要優化調製方式。下圖座標系中包含了衛星傳輸常見的調製方式,包括QPSK、8PSK、16APSK、32APSK。如何理解座標系呢?座標系的橫軸與餘弦初始相位同向,豎軸與其正交,該座標系包含了調製所需的全部相位(調製)資源和幅度(調製)資源。
首先,QPSK也就是二階調製下,4個狀態點均分360度,每一個狀態點相位相差90度;能夠理解在接收端,相位相差90度的正交相位點易於識別和解調。接下來8PSK也就是三階調製下,8個狀態點均分360度,每一個狀態點相位相差45度,解調端解調的難度相對於二階調製更大。
此時調製方式的發展面臨瓶頸:若是從三階調製升級到四階調製,意味着16個狀態點均分360度,狀態點之間的相位差爲22.5度,太小的歐拉距離極容易致使相位模糊和符號間干擾,繼而形成接收端很難對信號進行有效解調。突破該瓶頸的解決方案是結合相位調製和幅度調製,如16APSK所示那樣將外圈分爲12個狀態點而將內圈分爲4個狀態點,以此湊齊了16個狀態點。有的狀態點儘管同相位但幅度不一樣,經過幅度與相位雙重調製,咱們實現了四階調製16APSK。四階調製的意思是若是不考慮前向糾錯帶來的效率損失,其頻譜效率可達4倍,實際頻譜效率咱們能夠經過觀察下圖獲知。
根據上圖咱們不難發現,在16APSK下,當LDPC糾錯碼率爲3/4時(爲保證信道可用,糾錯是必需的過程) 頻譜效率可達3倍。這樣的頻譜效率能夠說是很是可觀了,咱們能夠看到在32APSK下,當LDPC糾錯碼率爲0.9時,頻譜效率爲4.5。要知道在符號率與帶寬必定的狀況下,更高的頻譜效率意味着能夠傳輸更高的碼流,可是如此高性能高效率也是有必定代價的,那就是高階調製和高糾錯旅會大幅提高接收門限。
根據上圖表格咱們能夠看到,MOD=QPSK、COD=3/4而頻譜效率爲1.487時的接收門限爲2.3,MOD=16APSK、COD=9/10而頻譜效率爲3.567時的接收門限爲7.6,如此高的接收門限不管是對發射天線仍是接收衛星而言都是一項巨大的挑戰。若是追求極致的效率與極致的性能,咱們也要付出極致的代價,甚至要冒着接收失敗的風險,這無疑是得不償失的。
咱們能夠認爲低滾降係數與高階調製能夠提高頻譜效率,而高階調製與高糾錯率卻也提高了接收門限。但接收門限是一項必須被控制在合理範圍以內的參數,若是接收門限太高那麼就意味着連正常的信號接收都沒法保證,其餘性能指標的提高都是紙上談兵。這時你們都會想到一個問題:爲何不能增長信噪比?只要信噪比增長的幅度追得上接收門限的提高,就能夠不用擔憂此問題?在解答該問題以前咱們須要對衛星傳輸鏈路進行詳細分析。
因爲受到硬件設備的客觀限制,衛星鏈路傳輸中許多參數爲固定值,想提高基於衛星鏈路傳輸信號的信噪比並非一件容易的事情。例如轉發器接收品質因數G/T與轉發器最大下行EIRP均沒法改變,都致使衛星傳輸鏈路當中信噪比不能無限制地增長。因而提高頻譜效率的同時有效控制接收門限,是咱們解決衛星傳輸4K廣播電視信號須要踐行的技術關鍵。如何找到兩者之間的最佳平衡?經過大量的測試!
上圖展現的測試數據結果是咱們完成的多是國內第一個KU波段的4K衛星鏈路信號測試,咱們實際上是使用了許多參數組合,在不一樣參數組合下選擇不一樣的帶寬和符號率並實際測量了接收信號的信號強度、載噪比、載噪比餘量等,最後得出了最合適的四個參數組合(圖中背景灰色高亮的四行數據)。觀察這四組數據咱們能夠看到前三組數據的實際可用碼率都在40Mbps左右,也就是說4K廣播電視信號通過HEVC編碼以後,若是碼率在40Mbps左右,其質量能夠說很是出色了,這也表示該三個信道能夠知足4K廣播電視信號的傳輸需求;若是帶寬實在受限,例如只有與高清同樣的9M帶寬,那麼咱們只能選擇合適的參數也就是第18組參數,能夠在確保接收門限合適的狀況下實現大概27Mbps的編碼後碼流。
總結以上內容,咱們能夠認爲衛星傳輸鏈路具備如下三大需求:
但三個需求全都達到極致是不可能的,咱們須要尋找到一個合適的平衡點,而尋找該平衡點的重要參數爲如下三個:調製方式、前向糾錯與滾降係數。這三個參數會在不一樣程度上同時影響頻譜利用率與接收門限,這就使得每一條衛星鏈路的搭建都須要進行鏈路測試並尋找到合適的參數組合與設備選型。
傳統基於衛星傳輸的廣播電視系統,鑑於其高昂成本與複雜架構,只有大公司或公共電視臺纔有能力使用;而進入4K時代,成倍增加的數據傳輸量更是將衛星發射、鏈路組建和運維成本提到了新的高度。因而公網傳輸提供了一種新的選擇,逐漸被應用在廣播電視領域。
這裏咱們只討論單播協議,更多的是指點對點的傳輸。有多種選擇例如RTMP、SRT、ZIXI、UDP等。其中RTMP雖然門檻低但因爲基於TCP,其不管是時延仍是性能都不盡如人意;而基於UDP且帶糾錯與差錯控制的協議如SRT、ZIXI等也是點對點傳輸,若是網絡條件足夠好,那麼你也可使用裸露的UDP協議。
接下來咱們詳細聊一聊SRT協議。
SRT爲「Secure」、「Reliable」與「Transport」三個單詞的首字母,意思是安全可靠傳輸協議,由Havision公司開發並將其開源,是一個基於UDP的傳輸協議。我想你們聽到UDP內心不由會產生疑問:UDP協議可靠嗎?
實際上,儘管UDP的效率比較出色,但其並非一個可靠的傳輸協議,沒法對傳輸結果負責。
下圖展現的是在模擬2%丟包的網絡環境下使用UDP協議傳輸的測試結果,衛星鏈路傳輸與公網傳輸的目的是一致的,都是將信源編碼後的視音頻碼流傳輸到目的地。這裏對比編碼後的視音頻碼流與通過公網傳輸後的碼流,能夠看到原來編碼後的視音頻碼流具備固定的幀間隔與必定特性的可變比特率,但通過公網傳輸後的碼流,其幀間隔變得不固定且碼率特性也被徹底改變,解碼這樣的信號是一項十分艱鉅的挑戰,甚至根本沒法解碼。
而若是使用加入糾錯的SRT協議進行公共互聯網傳輸,儘管編碼後的視音頻碼流通過公網傳輸幀間隔變得不固定,但因爲SRT協議封裝中包含精準的時間戳,解碼接收端能夠經過該時間戳重現固定的幀間隔;更重要的是,經過規定延時量,同時劃定了發送端緩衝區與接收端緩衝區,來自接收端的反饋信號(能夠理解爲後向糾錯)經過一系列的設置、糾錯、流量控制,使編碼後的視音頻碼流擁有與原碼流幾乎同樣的碼率特性。下圖展現的就是在模擬2%丟包的網絡環境下使用SRT協議傳輸的測試結果。
爲何SRT能夠實現這樣的效果?簡單分析,緣由主要爲如下五點:
● SRT以UDP協議爲基礎,具有穩定、可重複並具備連續吞吐量的數據包投遞機制。(這種特性使得其很是適合用來傳輸實時的音視頻廣播電視信號。)
● 在UDP之上採用握手機制創建鏈接
● 使用了改進後的ARQ技術(後向糾錯技術)
● 封裝協議中帶有精準的時間戳(用以實現精準的幀間隔)
● 經過設定延時量參數,統一規定了發送端和接收端緩衝區的大小
上述特性具體是如何實現的呢?下圖展現了SRT協議的流程圖
首先,SRT的握手遠沒有TCP的三次握手那麼複雜,Caller與Listener之間進行的是一個簡化版的握手,用以提升效率;握手以後Caller與Listener間進行重要信息的交換,整個SRT的第一項關鍵步驟就是Caller與Listener在這裏交換了延時量與緩衝區的大小;隨後Caller與Listener之間開始媒體數據的傳輸,同時也傳輸了爲恢復幀間隔而封裝的精準時間戳;SRT的第二項關鍵步驟是Listener向Caller同步控制信息,用以對抗公網中的抖動、丟包等一系列突發情況;最後,待至媒體數據傳輸完畢以後關閉傳輸。
這裏你也許會感到好奇:控制信息是如何對抗公網中的抖動、丟包等一系列突發情況呢?如何實現差錯控制和流量控制?其實是經過ARQ技術也就是自動重發請求。
ARQ技術的基本概念很簡單:發送端在將數據包發送至接收端後並不急着把數據包刪除,而是等待接收端給出ACK-確定應答以後纔會刪除;而若是發送端在將數據包發送至接收端後,接收端給發送端反饋NCK-否認應答,那麼發送端會向接收端從新發送數據包,這就是一種糾錯機制;或者是在發送數據包以後等待一段時間,若是收到NCK-否認應答那麼就會自動重發數據包。
以上圖爲例,假設發送端緩衝區發送五個數據包:一、二、三、四、5給接收端緩衝區,接收端緩衝區成功接收到這些數據包以後會向發送端緩衝區發送ACK——確定應答,發送端接收到ACK——確定應答以後會刪除一、二、三、四、5這五個數據包並準備發送數據包6。
在成功接收數據包以後,接收端緩衝區會逐個拿出數據包輸送至解碼器以進行解碼操做,最終輸出相應的音視頻;在解碼的同時緩衝區窗口就會向前滑動,輸送下一個待解碼的數據包。
以上是不考慮丟包等異常情況的理想網絡條件,若是考慮丟包呢?
如上圖所示,假設數據包4出現了丟包的狀況,那麼此時接收端緩衝區須要檢測到這一異常並馬上發送NAK-否認應答至發送端緩衝區,發送端會再次發送數據包4。而若是出現返回信息也就是ACK/NCK在網絡中丟失,該如何應對?其實SRT對ARQ作出了大量改進,包括重發全部過時的ACK、按期重發NCK策略等。實際上SRT實現了ARQ的第三次飛躍,很好地解決了在網絡中的丟包和抖動,能夠說這是SRT協議中最重要的部分。
而在實際應用中咱們應當如何理解發送端緩衝區與接收端緩衝區?
發送端緩衝區發送信號,只有在收到來自接收端的確認信息以後纔會刪除數據包,沒有收到確認信息則不刪除;這種狀況下,若是發送端緩衝區充滿了數據包,說明一直沒有收到來自接收端的確定應答,數據一直保存在發送端,這可能意味着傳輸出現了異常。因此SRT在實際應用中須要注意,發送端緩衝區的佔用率越少越好。
接收端緩衝區的終極目的是將數據包輸送給解碼器以進行解碼,咱們以去自助餐廳吃飯爲例:
解碼器就像圖中的壯漢,須要一直不停地吃,考慮動態碼率VBR的做用,壯漢的胃口時大時小;一旦餓着,解碼出的圖像和聲音就會中斷。而餐盤其實就像接收端緩衝區,其中必定須要充滿了食物也就是待解碼數據。儘管一直有人在上菜,就像公網傳輸碼流不斷進行,但上菜時快時慢,就像網絡帶寬有波動,萬一網絡很差,上菜的速度沒有壯漢吃的速度快,即會形成編碼的中斷,所以咱們必須確保餐盤裏始終充滿了食物。
所以咱們得出如下結論:接收端緩衝區必須充滿了數據,以讓其可以有效應對因爲網絡帶寬波動形成的傳輸碼流不穩定。因此SRT在實際應用中須要注意,接收端緩衝區的佔用率越高越好。
將以上內容過渡到實際應用當中,能夠幫助咱們更好地理解這一規律——下圖展現的是安徽廣播電視臺進行第一次5G直播時的狀態監測圖。
● 發送端狀態分析
首先是發送端狀態圖:白色線爲鏈路往返的時間,5G下的網絡環境已經足夠出色,因而能夠看到鏈路往返一直處於較平穩的狀態,說明網絡環境與帶寬質量一直處於較爲理想的狀態;黃色線爲咱們規定的延時量也就是發送端緩衝區的大小,以前咱們也聊到發送端緩衝區其實佔用的越少越好,根據圖中能夠看到當時佔用的發送端緩衝區並不高。
可是即便是5G網絡也有網絡波動:圖中能夠看到在網絡波動出現時緩衝區的佔用也激增,即使如此仍留出了一半左右的安全冗餘量。
● 接收端狀態分析
接下來是接收端狀態圖:上圖的上半部分中綠色線表示丟包率,能夠看到5G網絡下的丟包率很是低;下圖紅色線表示RTT鏈路往返時間,也是一直處於較爲穩定的狀態。
上圖的下半部分,圖中黑色線表示接收端緩衝區的上限也是延時量,最好的狀況就是綠色線一直貼着黑色線波動,表示接收端緩衝區一直處於較爲理想的高佔用狀態。
可是在5G網絡中不免出現波動,能夠看到出現波動時,接收端緩衝區被消耗到實際佔用量接近緩衝區的一半,這就是由於網絡有波動致使數據沒法及時傳輸至接收端緩衝區,但解碼卻消耗了接收端緩衝區大量的數據。即使如此,通過大量的前期鏈路測試,咱們仍保證了在波動中可以留出大約一半的安全冗餘量。
總結一下咱們勇於使用公網傳輸廣播電視信號的緣由:首先SRT協議支持糾錯,其次須要在正式商用以前進行大量的前期鏈路測試併爲發送端緩衝區與接收端緩衝區留出合適且足夠的安全冗餘量。而在鏈路搭建階段,進行網絡鏈路測試時須要着重測試並關注網絡帶寬、丟包率與RTT也就是鏈路往返時間。
測試完畢以後,咱們能夠根據測試結果設定合適的延時量。下圖所示表格來自Havision官方,根據計算結果與表格參數咱們就能夠尋找到不一樣網絡環境下最佳延時量的設定,也就是規定緩衝區的大小。肯定最佳延時量並設置完畢,通過一段時間的測試以觀察反饋結果。
基於以上介紹的衛星鏈路與SRT協議下的公網傳輸鏈路,咱們實現了安徽廣播電視臺首次5G現場直播。
下圖展現了直播中所用到的5G鏈路設備,值得注意的是,因爲SRT的開放特性,這裏咱們使用了三家不一樣廠商的設備,仍然能夠兼容並實現良好協調的使用,這也是開源設備的好處。
SRT可實現多碼率多格式的分發,這裏並非分發到用戶而是分發到不一樣平臺。若是是基於SRT的硬件編碼器,則可編碼多個分辨率、格式不一樣的流並分發到不一樣的平臺如電視臺、CDN、私有云等。
SRT也可應用於節目製做中,甚至在手機上安裝一個軟件便可收到解碼完成的流,這也常常被咱們用於節目測試。固然還有在進行一項節目時,編導、攝影師、記者等都但願接收到電視信號,SRT的這種應用能夠幫助他們隨時隨地動態掌握節目進行狀態。
基於以上內容,咱們成功實現瞭如下應用案例:如安徽廣播電視臺首次5G直播、「長江之戀」十二省市聯動大型直播以及超鐵賽事在中國大陸的首次亮相,都是基於衛星鏈路與SRT協議下的公網傳輸,這也爲咱們探索將來廣播電視傳輸技術發展積累了豐富的經驗。