電信行業內真正有趣的玩笑很少,不過有一條卻以其諷刺性的幽默讓人聽后不禁莞爾:關于標準最大的好處,就是有如此多的標準可供人們選擇。這句話不僅適用于視頻領域,通信、傳輸系統以及技術接口等領域亦是如此。
本文首先會簡要介紹一些最常用的視頻標準,然后討論諸如LSI等芯片制造商們所采用的多內核且基于媒體處理器的靈活方法。LSI在面向語音/視頻媒體網關市場開發產品方面積累了豐富的行業經驗,包括借助新一代媒體網關提供針對任意設備間視頻通信和實時協作應用的可擴展的產品系列。
奠定基礎
過去十年來,視頻的重要性一直在與日俱增。消費廣告形式的轉變是其中第一個也可能是最重要的促進因素。不過從目前來看,電視的收視率已經下降到了歷史最低點,電視廣告的效果和影響力出現了下滑,然而廣告費用卻始終居高不下。因此,廣告商正著力為其廣告開支尋找新的流向,其中最受廣告商青睞的一個方向,就是蓬勃發展的在線視頻點播。
這種變化的原因顯而易見。因為信息可以實現極其精細的傳輸,而且成本遠遠低于傳統方法,所以將視頻作為一種基于網絡的應用(借助互聯網),其大受歡迎也就不足為奇了。此外,無處不在的寬帶、現代個人電腦的強大功能以及多媒體內容涌現出的驚人廣度、深度與豐富性也為視頻的逐步流行助了一臂之力。
受到市場追捧的任何新興技術同時也都會促進創新,進而轉化為產品和服務的差異化、對爭做第一的追求以及消費成本的降低。但創新以及對獨樹一幟的追求往往會導致為滿足市場需求而各自為政,同時也不可避免地導致產品互不兼容。這種不兼容性會減緩市場發展,因為用戶擔心選擇的產品或服務最后會走上錯誤的技術路線。
標準化機構有責任協調開發商所采納的不同方案。平衡是解決問題的關鍵所在。標準化組織必須制定“為產品開發提供統一方案”的建議,同時為實施闡釋留出足夠的空間,以避免創新陷入僵化和畫地為牢的境地。
當前大多數視頻標準均是由國際電聯(ITU)與動態圖像專家組(MPEG)這兩個機構制定。ITU 從傳輸視頻流的網絡角度制定標準,而MPEG則是從所傳輸的產品角度來制定標準。二者均得到了廣泛應用且具有良好的兼容性。
ITU 標準
ITU發布的視頻標準位于相關標準的‘H’卷,包括H.261、H.263與H.264等。本節將對上述標準進行逐一介紹。
H.261
H.261 最初是針對 ISDN 時代的有限數據速率(特別是 64kbps 的倍數)而開發的視頻編碼標準。在一些文件中該標準也被稱為 Px64,其中 P 代表 1~30 之間的任何一個數字(30 是ISDN 基本速率線路或 E-1 設備所能夠提供的最大信道數)。
H.263
H.263 是專為執行中等質量視頻會議與視頻電話應用的視頻壓縮而制定的視頻編碼標準。H.263 最初用于傳輸 20kbps 的低帶寬視頻,基本建立在 H.261 設計方案的基礎之上,不過僅需 H.261 的一半帶寬即可實現同等質量。因此,H.263 在實施頻率方面已經有效取代了 H.261。與 H.261 一樣,H.263 也依靠實時傳輸協議 (RTP) 傳輸視頻信號。
H.261 僅支持兩種分辨度,但 H.263 卻可支持 5 種。除了 CIF 與 QCIF,H.263 還可支持 SQCIF、4CIF 與 16CIF。
H.264
H.264是ITU系列中的新一代標準,由ITU和國際標準化組織(ISO)聯合制定,也被稱為 MPEG-4 Part 10標準。H.264/MPEG-4又稱為高級視頻編碼( AVC)標準,旨在支持視頻會議、視頻電話等高端視頻應用,具有數字壓縮視頻(諸如低碼率互聯網流、HDTV廣播、數字影院等)等功能。
H.264包含的高效視頻編碼工具能夠進一步提高編碼效率。相對于以往標準,該標準在速率失真方面有顯著的優勢(根據相關應用,平均增益可高達50%)。它針對特定應用需求提供了多個類別。基本類包括針對視頻會議與移動應用優化的工具;擴展類針對流媒體應用;而主類和高級類則針對廣播以及存儲應用。
H.264在算法概念上分為兩層:視頻編碼層(VCL)代表了視頻壓縮的內容;網絡適配層(NAL)根據網絡能力對視頻壓縮數據進行打包和傳送。另外它還為RTP等傳輸協議以及存儲系統提供頭信息。
可擴展視頻編解碼器 (SVC) 標準是對 H.264 的最新擴展,用于傳輸在時間、空間和視頻質量方面具有可擴展性的編碼流。該 SVC 擴展引入了一個原始 H.264 中不存在的概念 ——把視頻碼流分成幾層。基礎層對視頻流最基本的時間、空間和質量的表達進行編碼。增強層利用基礎層作為起點,對附加信息進行編碼,從而在解碼過程中把編碼結果用于重構高質量、高分辨率或高幀率的視頻版本。通過對基礎層以及需要的后續增強層進行解碼,解碼器能夠以所希望的特征產生一種視頻流。編碼視頻流可被刪節以限制帶寬占用或降低解碼計算要求。刪節過程僅指從編碼視頻流提取所需各層,而對視頻流本身不做其它任何處理。因此,可以根據端點解碼器的功能(如顯示尺寸、計算資源等)來實現最佳體驗質量 (QoE)。
MPEG 標準
MPEG 視頻標準系列包含 MPEG-1、MPEG-2、MPEG-3 與 MPEG-4四個主要協議。
MPEG-1
MPEG-1 是一種由聯合圖像專家組與 CCITT(即現在的 ITU-T)的電話專家組共同制定的視頻和音頻有損壓縮標準,旨在用于把數字視頻與 CD 級音頻壓縮到 1.5Mb/s,壓縮比分別為 26:1 和 6:1。依據此標準,可以在信號質量無過多損失的情況下傳輸高度壓縮的視頻與音頻。
MPEG-2
源于 MPEG-1 標準的 MPEG-2支持有損音頻與視頻壓縮。MPEG-2 是廣播、有線和直播衛星電視系統中數字電視傳輸最常用的標準。另外,它還適用于電影的格式化,以便于 DVD 的發行。MPEG-2 是一種國際標準,其個別部分(第 1 與第 2 部分)是與 ITU 聯合制定的。雖然 MPEG-2 廣泛應用于電視與 DVD 系統,但它并未對此類環境做出全面的規定。該標準為本地化闡釋保留了大量余地。
MPEG-3
人們普遍認為 MPEG-3 就是音樂編碼的流行標準 MP3(其區別在于 MPEG-1 第 3 層),但事實恰恰與此相反。MPEG-3 規定了一系列專門用于以 20~40Mb/s 的速率傳輸 1080p HDTV 信號的音頻與視頻編碼標準。當 HDTV 問世時,大家發現當時的 MPEG 標準似乎稍顯不足,因此選擇 MPEG-3 作為臨時解決方案。1992 年,HDTV 作為一種特殊服務配置文件被添加到了 MPEG-2 之中,MPEG-3 隨之成為 MPEG-2 的一部分。
MPEG-4
隨著多媒體應用在 20 世紀 90 年代后期和 21 世紀初期的日益普及,人們越發需要一種能夠滿足此類應用特殊需求的壓縮標準,在這種背景下,MPEG-4 應運而生。
MPEG-4 于 1998 年問世,很快即成為用于基于 Web 的流媒體、基于 CD 的音頻內容、語音和廣播電視的專用標準。該標準提供許多 MPEG-1 與 MPEG-2 已經規定的相同功能,但另外針對渲染數字圖形的特殊要求而增加了一些新規范,包括對用于 3D 圖形渲染和數字版權管理 (DRM) 的虛擬現實標記語言 (VRML) 的支持。該標準的許多部分都是經過精心設計的,而且得到了廣泛應用。MPEG-4 第 2 部分得到了 DivX?、Xvid?、Nero Digital? 與 QuickTime? 以及 H.264 所含高級視頻編碼 (AVC) 的廣泛采納。另外該部分也已應用到了 HD DVD 與 Blu-ray Disc? 之中。
幾種外圍標準
由于VC-1、Flash視頻等新視頻標準已經在技術領域站穩腳跟,因此值得一提。VC-1是之前討論的許多標準中所采用的編解碼格式的變體。VC-1由業界眾多公司編寫而成,不過普遍認為它是由微軟開發,它被視為H.264的替代標準。VC-1針對交錯式視頻內容進行了優化,因此成為廣播與視頻行業更適用的解決方案。盡管VC-1剛問世不久,但藍光與高清 DVD均采用了 VC-1,而且 Windows Vista也支持VC-1解碼器,從而使其在市場中占據了有利地位。
Flash視頻采用Adobe Flash Player播放,可支持H.264視頻及AAC音頻等各種編解碼格式輸出。此格式廣泛應用于互聯網視頻分配,而且已被YouTube以及Yahoo!等各大網站所采用。
文章開頭提到的笑話并非是玩笑,看起來,有多少種需要傳輸的視頻就有多少種視頻格式化和傳輸標準。這種現象好的一面,是各種標準組織已經展開緊密合作,從而減少了新標準數量,更多關聯標準得以涌現。不過,制造商似乎也一直面臨著同樣的挑戰。面對如此多的標準,他們該如何快速、高效地實現產品上市?如何才能確定哪個標準會是最好的,以及該按照哪個標準設計自己的產品?顯然,他們可以設計出符合多種標準的產品,但這需要采用某種媒體網關以確保實現全面的互操作性。
值得注意的是,即使采用的標準再好,實際產品仍然會受到成本與上市時間的限制,因此往往不得不進行折中,如:硬接線邏輯可以滿足HD視頻編解碼器的復雜需求,但卻缺乏靈活性。為了實現更壓縮水平,視頻編解碼標準的復雜性在不斷提高,因此需要更高的靈活性來處理部分兼容的實施方案。一種方法是采用技術體系中的最低等級,顯然,為了適應視頻以及視頻用戶的不斷變化,視頻標準過去幾年已經有所發展。視頻最初存在于廣播或有線電視領域,但現在它以適合一系列廣泛設備的各種格式逐步進入互聯網。當然,其挑戰是為各種設備與平臺提供一切內容并且使其能夠播放這些內容,這并非易事。一部分解決方案源于市場中能夠處理上述繁雜功能的多種成功的操作系統的發展。雖然靈活性與功能非常出色,但是這些操作系統實現上述目的需要付出高功率和低密度的代價,不過,如果所需要的正是低密度應用,并且功率不是問題時,那么就值得付出上述代價。
多媒體是現在的熱門,而隨著支持互聯網接入、游戲、視頻以及電視的寬帶手機問世,形勢已經發生了改變。其它應用對網絡以及聯網設備的需求同樣巨大,如用戶生成的內容以及社交網絡等。為此,在電信領域大獲成功的半導體公司針對這種需求開發了支持各種視頻分辨率(如:QCIF、CIF以及HD)以及具有支持各種標準的靈活性的視頻處理架構。
為了成功處理高分辨率視頻,設計人員必須將功耗作為一種關鍵設計要素。視頻是各種應用中功耗需求最高的應用之一,因為滿足QoS要求以及觀眾期望的輸出,需要大量的處理工作。實現最高功率性能需要采用低功耗技術。視頻應用可通過采用具有高效管線設計的多內核媒體處理器來滿足可編程性以及低功耗的需求。
可編程多核媒體處理器
隨著多種視頻與音頻格式的出現,支持它們及其應用的設備也在變得日益復雜,從而催生了成本更高且更為復雜的半導體設計方案。視頻屬于要求極高的應用,所呈現的高質量信號需要進行特別處理,因此在部署視頻專用產品時必須考慮一系列功能。可編程多核解決方案不但靈活,而且功耗較低。
視頻編碼過程中一大部分實時周期實際上是用于控制與數據處理。例如,理想方案是在單次運算中同時處理用于轉換和過濾的控制敏感型數據。通過增強控制和修改流程指令,如高效硬件環路、并行條件計算以及高效預加載,可以獲得更佳的解決方案。
另外,還應盡可能采用效率最高的方式處理解析、運動矢量預測、內插、運動補償、CABAC運算及其它計算強度高的任務。事件處理或管理中的每個元素所要求的計算形式都有少許不同。此類考慮決定了系統的整體架構。所有任務都采用單一處理器內核會導致整體架構效率低下。例如,如果需要更高時鐘頻率或更多內核,則需要更昂貴、耗電更高的器件。通過讓每種處理采用專用可編程內核,可以優化計算任務并提高整體系統效率。提供多個內核、高級處理和高數據吞吐量的媒體處理器,能夠實現具有滿足當前與未來多媒體需求所需性能與靈活性組合的解決方案。
媒體格式豐富的應用要求能夠跨越多個通道的高密度DSP功能,值得慶幸的是,滿足該種應用需求的多核多媒體處理器已經問世。在為新一代媒體應用挑選多核媒體處理器時應當考慮一系列重要特性。表 1 列出了這些特性及相關重要說明。
表 1. 多媒體專用多核DSP重要特性。
多層編碼器架構
典型視頻轉碼器實施方案需要HD解碼器(SD、720p或1080p),有可能要調整圖像尺寸、將YUV輸出分配到其它內核或器件,并以CIF、SD、720p或1080p分辨度進行視頻編碼。本部分主要介紹完整的解/編碼轉碼技術,相同工作原理也適用于高效轉碼器,其解碼器參數(如:運動矢量)等常被用于編碼器來降低編碼器復雜性。
高清視頻編碼,即1080p(1920x1080)與 720p(1280x720)分辨度的任務非常苛刻,其需要多個媒體處理內核,以便實時實現30FPS~60FPS。該任務甚至可以跨越多個多核DSP器件。本文主要針對H.264展開討論,不過相同原理同樣適用于H.263與MPEG4編碼器。可以采用兩種方式實現DSP內核之間的任務劃分。
圖 1. H.264 編碼器方框圖。
一種選擇是在DSP內核之間進行功能分配,盡可能均勻地在內核之間分配計算負載。例如,如圖1所示,一個內核負責幀間預測與幀內預測,另一個內核負責實現變換與量化,而第三個內核則負責運行去塊效應濾波器與熵編碼工作。實際上,功能劃分存在多種缺陷。負載均衡需要在內核之間實現更高級的通信與協調。均衡內核之間的計算負載難度更高,因為每個功能塊都具有很高的復雜性。當圖像分辨率從CIF提高到HD時,無法采用功能劃分架構實現可擴展性。
能夠克服上述問題的另一種視頻編碼器實施方案,是適用于可擴展多核器件的多層架構。該方案還適用于多器件架構,其中多個多核器件通過sRIO、PCIe等高速互連總線進行連接。
在這種架構中,編碼器的實施分配到多個 DSP 內核。每個宏塊條都分配到一個DSP內核。其中每個內核都提供一些特定功能,如:速率控制與幀內圖像處理。事實上,無法預先進行比特預算并分配到各個宏塊條,因為不同宏塊條可能具有不同的圖像復雜性,而在圖像分割塊之間采用差異很大的Qp值會造成合成圖像的層邊界出現偽影。在H.264中,宏塊條NAL可以包含任意數量的宏塊,因此與H.263不同,圖像分割塊的形狀無需符合GOB邊界。每個宏塊條的頭部(slice header)均包含宏塊條數據中編碼的第一個宏塊的編號。
圖2. HD 編碼器多層處理。
在多宏塊條架構中(如圖2所示),DSP內核從sRIO接口(連接另一個多核媒體處理器)接收YUV格式的原始視頻。該媒體處理器可實施H.264解碼器。這種多處理器架構可以充分利用 sRIO的靈活性優勢,動態地將一個多核媒體處理器中已經解碼的宏塊條分配給另一個多核媒體處理器中的DSP內核,從而進行深入處理。
sRIO是一種點對點技術,可以很靈活地連接多個器件來傳輸數據或處理通用數據集。每個器件都在其它器件的I/O空間自主地進行“寫”操作。每個sRIO在各個方向都可支持高達 10Gbps的吞吐能力。把sRIO與高效DMA通道完美結合,可實現:
* 并行進行視頻處理與數據傳輸
* 協調執行
* 通過共享存儲器(DPS內核位于同一器件的情況下)或通過高速sRIO接口(DSP內核位于不同器件的情況下)實現數據共享。
圖3. 高吞吐量、低時延多核器件互連示例。
圖3說明,高速串行I/O在復雜視頻處理任務中的潛在應用。圖中顯示用于擴展多個器件中多核器件處理能力的連接方案,其可以實現更復雜的視頻處理運算或支持更多視頻轉碼通道。采用sRIO開關能夠實現更靈活的器件間通信,不過如果處理流處于相鄰器件之間,也可以不采用這種開關。與PCIe開關相比,sRIO由于其數據包開銷較低,因此一般成本更低、性能更高、且時延更短。
多核解碼器架構
視頻解碼器的實現一般需要獨立于編碼器。也就是說,解碼器結構必須通用,以處理不同編碼器方案,如單NAL或多NAL實現方案。H.264解碼器涉及串行操作和并行操作,而且一項重要任務是在多個內核DSP間實現高效分配。高效的多核實現架構是可分成眾多串行操作。
熵解碼器是一種包含串行操作和局部循環的功能塊,無法分配給運行在多個內核中的并行任務。即使考慮采用上下文自適應二進制算術編碼(CABAC)等先進技術,熵解碼器的復雜性也低于重組塊。隨著DSP內核功能日益提高,可在單個DSP內核中實現解碼功能。
圖 4. H.264解碼器方框圖。
圖4為一種多核架構,其采用單個DSP內核實現熵解碼,且將重組塊的計算強度更高的任務分配給多個DSP內核。這種數據分配技巧可將任務間通信保持在指定內核上并實現更有效的高速緩存性能。此架構的另一個優勢,是具有從SD到HD的可擴展性,同時實現DSP 內核間更均勻的負載均衡。可以考慮采用不同實現方案,如:每內核單行或每內核多列。數據分配還有利于整體時延的最優化,因為是采用流水線方式實現解碼,所以只要收到來自相鄰宏塊的數據就能夠執行宏塊的解碼。
評論
查看更多