DVD、HDTV、視頻電話/電信會議和近出現的視頻監視系統是的幾個數字視頻應用。不過,這些產品的系統級技術各有不同的歷史背景,因此,需要采用不同的壓縮算法。
在過去幾年,數字視頻市場中的標準數目大幅增長,特別是在該市場引入了H.264(MPEG-4 Part 10)AVC(視頻編碼)和WMV9等新型編解碼器后。同時,負責視頻系統設計的工程師們仍必須與僅支持幾種舊標準(如H.261、H.263、MPEG-2或MPEG-4 part 2)的傳統設備打交道。但在某些應用中,該設備必須具備與集成了算法的新型設備進行互操作的能力。
算法的開發也是一個富于挑戰性的難題。當功能更強大的新算法被開發出來并被標準化之后,還必須保證它們與原有算法兼容,這是一個令人生畏的任務,因而,必須開發出一些強大的通用轉碼(transcoding)方案。
知識產權方面的問題甚至更加復雜。盡管許多視頻編碼算法(如MPEG-2、MPEG-4、H.263和H.264)是公開的標準,但其它一些算法(如On2和Real Video)卻是專有的。專有算法有時也可以成為標準算法。例如,起初為專有算法的WMV9終因被SMPTE協會采納而成為公共的VC1標準。
什么是視頻轉碼技術?
視頻轉碼技術將視頻信號從一種格式轉換成另一種格式。它具有兩個面向不同領域的重要功能。首先是在傳統設備和新興設備之間實現通信。例如,許多現有的視頻會議系統是基于舊的視頻編碼標準H.263而建立,而的視頻會議系統采用了H.264基線規范。因此,實時視頻轉碼技術是實現兩者之間通信的必不可少因素。
網絡(特別是互聯網)限制了視頻傳輸的帶寬。例如,目前大多數電影以MPEG-2格式存儲在DVD光盤中。視頻點播和IP視頻流系統的帶寬限制要求在傳輸之前通過實時視頻轉碼將視頻數據轉換成帶寬效率更高的格式。
在視頻會議系統中,需要利用視頻轉碼技術對傳統和新興視頻流進行格式轉換。視頻點播應用通常從采用傳統視頻編碼標準(MPEG-2、H.263)的視頻流轉換到采用視頻編碼標準(H.264或VC1)的視頻流。使用轉碼的意義在于可以在不損失任何視頻質量的前提下節省高達50%的網絡帶寬。
視頻轉碼系統的背景
從運作的角度來看,視頻轉碼通常在一個系統局端的視頻基礎設施中采用。常見的系統實現要求主處理器處理網絡數據流同時由多個DSP來處理轉碼任務中的視頻編碼和解碼。通常,一個單獨的視頻多端口控制單元(MCU)有足夠的能力來同時處理多個視頻轉碼通道。
例如,圖1展示了一個視頻會議系統中的基本視頻轉碼要求和數據流。DSP2對輸入視頻流解碼并生成重建的視頻幀,通過串行RapidIO接口將該視頻幀傳送到DSP1。另一個DSP將對重建的視頻幀編碼使之達到目標格式。常見的情形是視頻會議的一個終端使用基于H.263的設備,而其它終端使用基于H.264的設備。
圖1:這一簡化的視頻轉碼實例被用于一個視頻會議的MCU中。
此時,主處理器通過PCI連接與多個DSP(在本例中為4個)進行通信。實現處理器多向通信的一個關鍵特性是在4個DSP之間采用sRIO連接。由于在DSP之間傳送的數據是未經壓縮的視頻數據(速度通常為30幀/s),因此對設備之間的帶寬要求很高。
以NTSC標準分辨率(720×480)、4:2:0 YUV色彩空間的視頻為例,每個幀的大小為720×480×1.5=518,400字節。以30幀/s的速度轉碼意味著要求每通道速度達到約124Mbps。考慮到對視頻帶寬的要求以及需支持靈活的交換結構,sRIO連接是理想的選擇。而sRIO的特性也成為在該應用中選擇DSP的一個關鍵因素。
sRIO是一種交流耦合接口,可提供1.24、2.5和3.125Gbps三種數據速率。該接口利用串行器/解串器(SERDES)接口從數據流恢復時鐘并完成8/10位編碼。該串行規范支持單通道(1x)和四通道(4x)端口,其物理層定義了鏈接方之間的握手機制并執行基于CRC的錯誤檢測。此外,還定義了用于在交換結構中進行路由的數據包優先級。
為充分利用sRIO的帶寬性能,DSP必須具有sRIO接口。TI公司的TMS320C6455 DSP內置了sRIO接口,可同時實現四路通道的鏈接,峰值傳輸速率可達20Gbps(雙向)。
視頻轉碼原型的實現
當通過IP網絡發送DVD光盤上的數據時(例如公司培訓、視頻點播或視頻廣播等應用),轉碼技術同樣適用。對于這種情況,源視頻格式是MPEG-2,而VC1很可能被用作目標格式。以下將介紹如何利用兩片TI TMS320C6455 DSP來實現這種系統原型。
從技術上來看,需采用視頻轉碼技術來解決格式轉換、位速率減小和時間/空間分辨率縮減等諸多問題。相應地,針對不同情況開發出了不同的智能視頻轉碼方案,其基本原則是盡可能地復用原始輸入視頻流中所包含的信息以降低復雜性。
例如,運動矢量(MV)映射、DCT(離散余弦變換)域轉換和殘差重估(residual re-estimation)等日前流行的視頻轉碼技術可大幅降低計算復雜性。
此外,人們也期待出現簡單且可以擴展的轉碼架構。由于不同的視頻轉碼方案要求以不同的方式對算法和架構進行調整,并且不存在單個的標準化視頻轉碼方案,具有可編程能力的DSP(如C6455 DSP)適用于這一領域。
下面我們將提出一個可滿足各種轉碼方案的通用視頻轉碼架構及原型。為適應各種不同的視頻轉碼目標,我們選取了簡單的轉碼方案將被解碼的視頻流按照新的約束條件完全重新編碼。
這個初始的視頻轉碼方案未復用原始輸入視頻流中所包含的信息,卻能夠處理所有復雜的解碼和重編碼任務。不過,該視頻轉碼架構和軟件基礎設施是可擴展的,可以支持智能轉碼方案(如MV映射、DCT域轉換等),以提高通道密度并充分挖掘優化質量的潛能。由于采用了靈活的軟硬件框架,這個架構可以實現許多傳統的和新型的轉碼方案。
DSP至關重要
由C6455 DSP等器件所提供的高DSP計算性能是實現視頻編碼和解碼的先決條件。視頻基礎設施應用還有其它一些關鍵的性能要求,可以把它們歸為四個主要方面:
多個強大的I/O選項:系統設計者需要從不同的角度來處理各種問題,這意味著面向視頻基礎設施應用的DSP應提供可用于板級連接的I/O選項。正如之前提到的,C6455 DSP為實現設備之間的通信內置了一個sRIO端口。sRIO使用的高吞吐量消息傳遞機制可實現95%的可用數據帶寬利用率。其它I/O選項包括一個速度為1Gbps的以太網媒體訪問控制器(EMAC)、一個32位雙數據速率(DDR2-500)存儲控制器和一個66MHz的PCI總線。
高效的片上數據遷移:在視頻基礎設施應用中,DSP被用做主處理器的從設備,因此,應保證主從設備之間的高吞吐量、低延遲和并發式數據傳送。這些要求在架構上表現為通過高效的交換中央資源(SRC)來實現外圍設備、內部存儲器和DSP內核之間的互連(就像在C6455 DSP中那樣)。
數據流的簡化也非常重要。使用256位的存儲器總線和內部DMA(IDMA)可以提高簡化水平。IDMA在兩個內部存儲器級之間完成后臺(background)數據移動以及從/到外圍總線的數據移動。
大容量的片上存儲器:與片外SDRAM相比,片上SRAM速度更快且尺寸小得多。對于典型的視頻應用而言,片上存儲器主要有兩個用途。首先,它儲存可變長度碼(VLC)表等需被頻繁訪問的代碼和數據;然后,交換處理前后的輸入/輸出時態數據。通常,可用的片上存儲器越多,應用系統的性能就越好。C6455 DSP中包含高達2MB的片上SRAM,這有助于提升視頻應用的性能并使其具有處理多個通道的潛力。
代碼兼容性:在轉碼技術廣泛用于視頻基礎設施應用之前,已經開發出了大量的視頻應用代碼,因此應保證代碼的后向兼容性。與改變指令集相比,DSP內核架構是提高關鍵信號處理性能的場所。
例如,C6455對架構進行了兩項革新,其一是通過引入循環緩沖區改進小規模循環代碼的軟件流水效率,其二是采用原始32位指令的16位版本,極大地減小了代碼規模,從而降低了程序緩存的丟失率(miss rate)。
原型的實現
圖2顯示了一個分別使用MPEG-2和WMV9作為原始格式和目標格式的視頻轉碼引擎。盡管MPEG-2/WMV9組合有望應用得非常普遍,但DSP的可編程能力使其可以方便地處理源視頻/目標視頻格式的幾乎任何組合。
圖2:圖中的實時視頻轉碼應用利用了兩顆TI公司的TMS320C6455 DSP芯片。首先將一個MPEG-2文件解碼,然后將信號編碼成WMV9格式,使其可以在Windows Media Player引擎中播放。
該系統的原始數據以MPEG-2格式的視頻壓縮文件儲存在硬盤中,數據流始于圖中的左側并通過Windows Media Player軟件止于平板顯示器。在這個展示裝置中,視頻信號采用NTSC標準分辨率并以30幀/s的速度進行轉碼。
運行在DSP1上的數據流接收器模塊負責緩存MPEG-2數據流,并對MPEG-2解碼器模塊的輸入數據進行管理。數據接收操作由TI公司的Network Development Kit(NDK)庫(本質上是一種TCP/IP棧)控制。DSP2也有一個基于NDK的HTTP服務器,負責處理由Windows Media Player發出的流處理請求并把ASF數據包傳送給WMP。然后,WMP將ASF數據包解碼并在屏幕上顯示視頻信號。
該數據流的一個有趣和富挑戰性的特性是兩個DSP在sRIO接口上的交互。對于每個視頻幀的傳送,這一過程包括:
一旦DSP1發送完視頻幀,便馬上發送一個在sRIO協議規范中被稱為DOORBELL(門鈴)的數據包。DOORBELL數據包在DSP2上產生一個系統中斷告知有幀到達,然后開始WMV9編碼。在完成對幀的編碼后,DSP2將一個DOORBELL數據包發送回DSP1,再次觸發一個中斷給DSP1中告知可繼續發送下一幀。在實際的實現中,使用了一種PING-PONG緩沖方案來并行處理編碼/解碼和數據傳送操作。接下來,該序列以循環方式運行直到演示停止。
GUI模塊將控制和監視功能內置到系統中。sRIO鏈接和兩個吉比特MAC(GMAC)鏈接的活動以實時方式顯示出來。對于傳送MPEG-2數據流的鏈接,平均數據速率為8Mbps,這對于標準分辨率下編碼速率達30fps的情況十分普遍。對于傳送ASF數據包的鏈接,平均位速率為4Mbps,這表明WMV9能夠節省50%的帶寬但仍可達到同樣的視頻質量。對于sRIO鏈接,平均位速率為124Mbps。
本文小結
由于視頻編碼標準過多和在IP網絡中受到帶寬和延遲的限制,視頻解碼已成為一種必不可少的技術。
盡管基礎的技術在很久以前就已準備就緒,但更高質量的視頻以及在IP網絡上終實現HDTV的目標要求提供一種新的視頻基礎設施架構,該架構應包含sRIO和一些可與該接口的傳輸方案相互作用并提供補充功能的DSP。為同時處理多個通道,用于視頻基礎設施應用中的DSP通常需具有大容量的片上存儲器。此外,它們必須向設計者提供多種I/O選擇(包括GMAC和UTOPIA)以及更好的內部數據流。C6455 DSP和上述演示軟件表明,IP視頻在現在以及將來所面臨的挑戰是可以克服的。