袁金保,杜亞軍,楊雪松
(惠州市偉樂科技股份有限公司,廣東 惠州 516003)
超大容量視聽媒體綜合處理設備中的關鍵技術
袁金保,杜亞軍,楊雪松
(惠州市偉樂科技股份有限公司,廣東 惠州 516003)
廣播電視、視頻網絡運營和監控行業當前面臨的挑戰之一:輸入端視頻源和格式多樣化、視聽數據海量化;輸出端則需要支持輸出格式的多樣化和應對傳輸媒介兼容化。因此,應對這個挑戰的超大容量高密度媒體設備開發通常涉及多種關鍵處理技術。介紹幾種已應用在我司此類設備中的包括模塊化設計技術、高速接口技術、軟硬件協同技術和并行PCR校正技術。
高密度;視聽媒體處理;高速接口;傳輸流復用;并行PCR校正
隨著生活水平的提高,人們對于視聽的需求也越來越高,視聽播放設備已成為生活中不可或缺的一部分。超大容量、高密度、高靈活性、高性能的前端視聽設備越來越受到廣電運營商、視頻網絡運營商等用戶的青睞。這就需要開發一種高密度視聽處理設備,支持任意視頻信號輸入,如 DVB-S2/T2/C,ASI,DS3,TSIP,CVBS,HDMI等;支持任意視頻信號輸出,如QAM,TSIP,ASI,DS3,HDMI和SDI等。設備還須具備海量內容復用處理、編碼處理、轉碼處理、加擾和解擾處理等功能,以提供完備的一站式音視頻解決方案。本文將介紹在該類設備研發中,采用的幾種關鍵技術,包括模塊化設計技術、高速接口技術、軟硬件協同技術和并行PCR處理技術。

圖1 一站式音視頻解決方案
1.1 模塊化設計技術
廣播電視、電信和網絡等視頻技術的飛速發展,視頻內容的信號來源越來越豐富,如圖1所示,包括有線DVB-C、地面DVB-T/T2、衛星DVB-S/S2射頻信號源、DS3電信信源、TSIP網絡信源、ASI和本地編碼節目信源等。用戶使用的輸出媒介也多種多樣,如QAM調制輸出、ASI輸出、TSIP輸出、SDI或HDMI輸出等。不同的用戶有不同的信源輸入場景,也有不同的輸出需求。甚至同一個用戶,在不同的時期內,也會有不同的輸入輸出需求。
為此,同一套設備既要能滿足不同的應用場景需求使設備功能完備,又要能滿足定制用戶的特定需求使設備成本最低。采用模塊化設計技術能很好地平衡這兩個需求。
如圖2所示,在設備中固定裝配一個主模塊,可選(最多6個)搭配子模塊,所有子模塊與主模塊之間采用統一通用的接口,子板模塊可以插入任何一個插槽。這樣,用戶可以根據自身實際的輸入信源、節目處理需求和輸出需求,選擇滿足要求的子模塊即可快速搭建一套音視頻處理系統。該設備目前配套有50多款子模塊,全面解決接收、編轉碼、解碼、加擾、調制、轉調和復用等需求。
1.2 高速接口技術
視頻處理面臨最大的難題之一是海量數據傳輸,尤其是隨著Internet技術的發展,TSOVER IP的應用越來越多,而IP網絡的高帶寬傳輸能力,使音視頻數據量呈爆炸式增長。模塊化設備可配套2個IP子模塊,每個IP子模塊通過5個SFP口最大可收發5×256通道的網絡并發流。如圖3所示,主模塊和IP子模塊之間最大為2×5 Gbit/s全雙工高速接口,與其他子模塊之間為6×4 Gbit/s的全雙工高速接口。如此大的數據率傳輸必須采用高速接口技術。考慮到子模塊與主模塊FP?GA資源的限制,IP子模塊和主模塊之間的數據傳輸采用Transceiver收發器實現;其他子模塊與主模塊之間的接口采用LVDS自定義收發器實現。

圖2 單主模塊多子模塊搭配設備內部圖

圖3 板間高速數據傳輸
1.2.1 Transceiver收發器實現
Transceiver收發器如圖4所示,包含發送端和接收端兩部分。
發送端PCS接收待傳輸的視頻數據后先進行8B/ 10B編碼,編碼后的數據轉換到PMA時鐘域,最后,通過Polarity配置TXP和TXN是否需要極性互換。PCS處理后的數據送到PMA,PMA內部先由PISO完成數據并行到串行的轉換,然后,通過TX_Pre/Post_Emp對信號進行預加重等配置,提升發送端信號的質量,最終通過LVDS發送出去。
接收端PMA接收發送端送過來的LVDS的串行數據,由RX_EQ/DFE進行均衡調整以提升接收的信號質量,然后由SIPO完成數據串行到并行的轉換。PCS接收PMA轉換好的并行數據,通過Polarity配置TXP和 TXN是否需要極性互換,然后由Comma Detect and Align進行數據對齊,對齊后的數據進行8B/10B解碼,8B/10B解碼后進入RX Elastic Buffer緩存。一旦RX Elastic Buffer緩存有數據時,就可以送給RX模塊,同時將當前鏈路狀態反饋給用戶。

圖4 Transceiver TX內部原理圖
Transceiver收發器還提供豐富的環回鏈路,包括PCS遠端環回模式、PCS近端環回模式、PMA遠端環回模式、PMA近端環回模式以及PRBS測試模式,可以快速定位高速接口的問題。
1.2.2 自定義收發器發送端實現
發送端實現如圖5所示,發送端實現包含兩部分,第一部分為源同步時鐘的產生。通過板級晶振輸入50 MHz時鐘,經FPGA內部的PLL產生125 MHz時鐘和500 MHz時鐘。500 MHz時鐘經過ODDR后,再經過OBUFDS轉換為差分信號,即產生源同步時鐘CLK_P/ CLK_N。第二部分為待發送數據的處理。接口啟動后,開始發送訓練序列。發送訓練序列的目的是為了接收端能根據采樣的數據與訓練序列比對,從而找到正確且最佳采樣位置。當接收端找到最佳數據采樣點后,返回TRAIN_DONE信號給發送端。發送端接收到TRAIN_DONE后,不再發送訓練序列,開始發送待傳輸視頻數據。訓練序列/待傳輸視頻數據經寄存后,每8 bit送給1個OSERDES單元,這樣,32 bit數據輸出給4個OSERDES。每個OSERDES單元完成數據的并行轉串行,轉換時序如圖6所示。最后,串行信號經過OBUFDS即可完成數據的差分對DAT_P[3:0]/DAT_N [3:0]輸出。同時,PLL產生的125 MHz和500MHz時鐘也需要送給OSERDES模塊,供其并轉串使用。

圖5 自定義收發器發送端實現原理圖

圖6 OSERDES數據并行轉串行示意圖(截圖)
1.2.3 自定義收發器接收端實現
接送端實現如圖7所示,其用到Xinlix FPGA兩種重要單元ISERDES和IDELAYE2。ISERDES單元用于將數據串行轉為并行,轉換關系如圖8所示。IDE?LAYE2單元用于提供可編程的延遲。筆者使用的Xilinx 7 Series FPGA中的IDELAYE2單元提供32級延遲,給其輸入參考時鐘為200 MHz,每級延遲約78 ps。

圖7 自定義收發器接收端整體框圖

圖8 ISERDES串行轉并行時序關系圖(截圖)
接收端實現包含3部分,第1部分為時鐘處理:時鐘差分對信號CLK_P/CLK_N經IBUFDS轉換后,恢復出500 MHz單端時鐘,然后經過IDELAYE2單元延遲后,通過BUFIO和BUFR,分別產生500 MHz和125 MHz時鐘給ISERDES單元。第2部分為數據處理;4對數據差分對信號經IBUFDS轉換后,恢復出單端信號,然后經過IDELAYE2單元延遲后,送給ISERDES。ISERDES負責將串行數據轉換為并行數據。第3部分為訓練模塊,目的為查找最佳數據采樣點。考慮到LVDS在PCB上為等長走線,所以不考慮各數據線之間的skew,只是找到每對數據線的最佳數據采樣點即可。
查找最佳數據采樣點實現原理如圖9所示:Initial為初始狀態下數據和時鐘的相位關系。增加數據線IDELAYE2單元的延遲級數,直至數據發生邊沿跳變,即找到數據窗口右邊界,記錄此時延遲級數為DLY_RIGHT_TAP;繼續增加數據線IDELAYE2單元的延遲級數,直至數據再次發生邊沿跳變,即找到數據左邊界,記錄延遲級數為DLY_LEFT_TAP。最后將IDE?LAYE2單元的延遲級數設置為DLY_RIGHT_TAP+(DLY_LEFT_TAP-DLY_RIGHT_TAP)/2,這樣,即可實現時鐘與數據相位關系為中間對齊。

圖9 查找最佳采樣數據實現原理同
1.3 軟硬件協同技術
由于設備支持的子模塊數目多、節目通路多,因此,系統的復雜程度也隨之增加。軟件和硬件設計需要協同考慮,才能使系統的性能最優。相對來說,軟件在處理協議層方面,具備自身優勢,而對于實時性和大寬帶并發處理要求的場合,則難以勝任。而數字邏輯電路在實時處理與高帶寬并發處理場合時,具備天然優勢,但對于復雜的協議處理,通常由于開發工作量較大使得開發周期長,性價比較低。
圖10為本設備主模塊內部軟硬件設計框圖,對于TS流的處理,需要保證TS流處理的效率和實時性,全部由數字邏輯電路實現。對于源節目表的解析、復用后節目表的重構、復用后去向的配置、日志告警的顯示、用戶交互接口以及網管管理部分,由于涉及協議層面的處理,全部由軟件實現。

圖10 主模塊內部軟硬件協同處理
具體軟硬件主要工作配合:主模塊數字邏輯電路接收子模塊的并行TS流,緩存后進行復用處理。復用后,根據軟件配置的節目表過濾條件,將信源的節目表上報給軟件;軟件得到所有信源的節目表后,通過解析節目表,就可以通過網管將源節目信息顯示給用戶。軟件還會根據用戶配置的節目去向,得到去向查找表并構造各輸出通道的最新的節目表,再將這些表配置到數字邏輯器件提供的內部存儲器中。這樣,數字邏輯電路將軟件重新構造表復用到TS流中,即可保證復用后各輸出通道都有正確的節目表。同時,通過查找去向表,即可將TS流正確地分發給各個子模塊。
另外,對于系統產生的日志和告警,軟件很容易呈現給用戶。同時,系統的配置管理,采用Internet方式,涉及到TCP/IP層協議的處理。這些協議處理,如果用數字邏輯電路來實現,工作量和實現難度將非常巨大,而軟件則通常有專門的協議棧底層支持,只需要簡單配置即可實現。
通過上述的軟硬件分工協調配合,使系統達到最優的性價比。
1.4 并行PCR校正技術
PCR(Program Clock Reference)節目參考時鐘,是MPEG-2系統中的一個非常重要的參數,其作用供TS流的發送端和接收端實現時鐘同步。現有技術中,一般發送端以參考時鐘27 MHz進行模300計數分頻,獲得9位計數值,稱為PCR_EXT。PCR_EXT每計數到299時,進行模233計數,獲得33位計數值,稱為PCR_BASE。每隔10~40 ms會將計數值PCR_BASE和PCR_EXT插入TS包中PCR域段中,表示該TS包在發送端是某一時刻打包的。在接收端也有一個和發送端一樣結構的PCR本地時鐘計數系統,由于接收端的27 MHz參考時鐘和發送端的27 MHz時鐘總是會有一定的偏差的,如果不做任何處理,就會造成數據播出速度和編碼輸入速度不匹配,造成數據脫節或累積。由于發送端已經周期性地插入了PCR,這樣,接收端接收到PCR后就會和本地的PCR比較,如果有偏差,就微調本地27 MHz振蕩頻率,使收發嚴格同步。
MPEG-2標準設計的TS流的傳輸環節是恒定速率的傳輸信道,即只產生數據的時延,而不會造成數據包的順序錯亂或相對時間的變化。但是,在本設備中存在3個方面的問題:1)支持復用,會導致包含PCR的TS包偏離原來的位置;2)IP傳輸實時性差的特點,從IP中恢復的TS包是斷斷續續的,同樣會導致包含PCR的TS包偏離原來的問題;3)輸出子模塊并行輸出通道多,最多高達256個IP并行輸出,PCR校準的通道多,為保證設備輸出的TS流正確被接收端解碼,需要對多通道的PCR進行并行實時校正。
圖11為設備內部的PCR校準模塊框圖,該模塊支持多個通道的PCR校準請求,請求調度模塊接收到PCR校準請求后,采用RR輪詢調度,從多個通道中調度出一個PCR校準請求,同時將調度請求的當前PCR信息送給New_Pcr_Calc模塊,并控制讀寫控制模塊遍歷讀PCR存儲模塊。讀寫控制模塊在讀存儲器的過程中,會將讀出來的PID的信息與當前調度請求的PCR PID比較。如果相等,則表示存儲器中存儲了上一次PCR校準后的結果,將上次校準好的PCR信息取出來,送 給 New_Pcr_Calc模 塊 進 行 PCR校 準 。 當New_PCR_Calc校準得到New_Pcr后,將校準后的PCR信息寫入該存儲單元供下一次該PID做PCR校準使用;如果在遍歷比較中沒有找到匹配的PID,說明該PCR的PID是第一次參與校準,則查找存儲器中空閑單元,并將該PID及當前PCR信息存入空閑單元中,作為該PID下一次PCR校準使用。New_Pcr_Calc模塊判定如果當前PID在存儲器中匹配到,則根據當前包的PCR信息與上一次校準過的信息,采用專門的算法(已申請專利)進行校準運算,得到最新的PCR值;如果當前PID在存儲器中未匹配到,該PID第一次參與校準,則本次不校準,PCR值保持為原值。注意,在校準的過程中,為防止PCR_BASE和PCR_EXT計算溢出導致PCR校準錯誤,設計溢出保護模塊進行保護處理。
本文分析了超大容量高密度視聽媒體綜合處理設備研發中遇到的技術難點,并提出幾種關鍵技術進行應對,所述技術均已成功應用到偉樂公司DMP等媒體平臺設備中,實踐證明設備運行穩定、可靠,為高密度視聽設備的大規模推廣奠定了堅實的基礎。

圖11 PCR校準模塊框圖
[1]Xilinx:7 Series FPGAs SelectIO Resources[EB/OL].[2014-07-20]. http://www.xilinx.com/support/documentation/user_guides/ug471_ 7Series_SelectIO.pdf.
[2]李培琳,王濤,方超,等.MPEG-2中TS碼流傳輸損傷測量方法研究與設計[J].電視技術,2014,38(12):37-39.
[3]德州儀器.LVDS—低壓差分信號傳輸[EB/OL].[2014-07-20].http:// wenku.baidu.com/link?url=2IxZpKDfJlO3qLCfdCHYThylzNeh_DY D1wU-bLNh2eXwn4eRL6go6ScsF_022geJwwX6aJC-YzjW 1qdHf Hv9ZvxAR1PNxrmjoy3b0H3jTXy.
[4] 方濤.數字電視業務信息及其編碼[M].北京:國防工業出版社,2003.
[5]易湖,趙照.DVB傳輸流PCR抖動檢測的FPGA實現[J].中國有線電視,2005(17):1670-1671.
TN791;G229
B
?? 雯
2014-08-15
【本文獻信息】袁金保,杜亞軍,楊雪松.超大容量視聽媒體綜合處理設備中的關鍵技術[J].電視技術,2014,38(20).