提高視訊轉碼品質 DSP搭配SRIO效果佳

數位視訊壓縮幾已成為所有視訊應用的重要技術。隨著媒體匯聚趨勢的持續發展,壓縮技術與操作互通性也變得更加重要。
數位視訊壓縮幾已成為所有視訊應用的重要技術。隨著媒體匯聚趨勢的持續發展,壓縮技術與操作互通性也變得更加重要。  

目前最主要的數位視訊應用包括DVD、高畫質電視、視訊電話、視訊會議和近來相當熱門的視訊監控等,然而這些消費性系統層級技術卻有不同的發展過程,因此也必須採用不同的壓縮演算法。  

產業標準的類型已在過去幾年裡大幅增加,在這段時間內更出現了許多最新的編碼解碼器標準,如H.264/MPEG-4 AVC及其所含的各種類別、WMV9/VC-1及其他各種類別。但在這些標準發展的同時,視訊系統設計工程師仍須使用許多舊式設備,但舊設備卻只認得H.261/H.263、MPEG-2或MPEG-4 Part 2 SP和ASP等早期標準,這意味工程師必須交互操作這些舊設備與已整合最新演算法的產品。  

演算法的發展也是挑戰之一,廠商若想開發更強大的新演算法並使其成為主流標準,就須克服萬難,確保新演算法與現有的各種演算法相容,否則就要發展某種強大而通用的轉碼機制。  

智慧財產權的問題讓這個問題更複雜。儘管MPEG-2、MPEG-4、H.263和H.264/AVC等視訊編碼演算法都是公開標準,市場上仍存在On2和Real Video等專屬演算法。這些專屬演算法有時也會變成業界標準,例如微軟(Microsoft)的Media Video最初就是一種專屬演算法,後來才獲得美國電影及電視工程師學會(SMPTE)採用成為VC1公開標準。  

視訊轉碼帶來標準互通與頻寬節省 

視訊轉碼是指把一種視訊格式轉換成另一種格式,它有兩項獨特而重要的用途,一是讓新舊產品相互溝通,如許多現有的視訊會議系統都是採用早期的H.263視訊編碼標準,最新的視訊會議系統則使用H.264/AVC基本類別(Baseline),兩者間需要即時視訊轉碼功能才能進行通訊;二是提升效率,減少網路對視訊傳輸頻寬造成的限制。如多數電影目前是以MPEG-2格式儲存於DVD,但由於隨選視訊和IP串流視訊系統的頻寬有限,在傳輸前須先利用即時視訊轉碼功能把視訊資料轉換為頻寬效率更高的格式。  

視訊會議系統必須利用視訊轉碼功能轉換成不同標準的視訊串流,而隨選視訊應用則通常把舊編碼標準(MPEG-2、H.263)的視訊串流轉換為H.264/AVC或WMV1/VC1等較新和先進的視訊編碼標準。進行轉碼的主要原因是能在不影響視訊畫質的情形下,節省高達五成的網路頻寬。  

視訊轉碼系統多元  

從作業觀點來看,視訊轉碼功能通常是由系統局端的視訊基礎設施提供。最常見的設計是利用主機處理器處理網路流量,再由多顆數位訊號處理器(DSP)處理轉碼作業所需的視訊編碼與解碼。一般而言,一個視訊多埠控制單元(Multiport Control Unit, MCU)就能同時處理多個視訊轉碼通道。  

圖1 轉碼功能再視訊會億多埠控制單元的簡單應用範例
圖1是簡化後的多埠控制單元在視訊會議系統裡的基本視訊轉碼需求和資料流程。這個單元利用一個DSP(如圖1中的DSP2)執行輸入視訊串流解碼並產生視訊圖框,再透過SRIO介面傳送給另一DSP(如圖1中的DSP1),然後由其他DSP將視訊圖框編碼為目標格式。在多數應用環境裡,視訊會議的一方會使用H.263設備,另一方則使用H.264設備。在此例中,主機處理器會透過PCI連線與多個DSP(此處為四顆)進行通訊。  

處理交換器是此例中很重要的處理器間通訊功能,可連接四個DSP。因為必須以每秒三十格畫面 (30fps)的速率相互傳送未壓縮的視訊資料,因此這些DSP之間的頻寬需求相當龐大。  

以NTSC標準解析度(720×480)YUV 4:2:0視訊為例,每個圖框的大小為720×480×1.5=518,400個位元組,這表示每個通道約需124Mbit/s頻寬,才能達到每秒三十格畫面的轉碼速率。由於這類應用需要龐大的視訊頻寬和彈性的切換器架構支援,選擇處理交換器就成為整個設計的關鍵。  

SRIO是一種交流耦合介面,提供1.24Gbit/s、2.5Gbit/s和3.125Gbit/s等三種資料速率。這套介面包含8b/10b編碼功能,還可利用並串/串並轉換(SerDes)技術執行資料串流的時脈復原。SRIO序列規格支援1-lane(1X)和4-lane(4X)連接埠,實體層還定義了連結裝置之間的交握機制 (Handshaking)和以CRC為基礎的錯誤偵測處理機制。SRIO還包含了封包優先順序規定,可支援交換器架構內的路由功能。一般認為,這些DSP必須包含SRIO介面才能充分利用SRIO的頻寬優勢。  

可擴充視訊轉碼方式功效大 

轉碼功能對透過IP網路傳送DVD資料也很有幫助,例如企業訓練、隨選視訊或視訊廣播應用。這類應用的來源視訊格式多半為MPEG-2,目標格式則最可能是WMV9。  

就技術而言,許多問題都要靠視訊轉碼才能解決,例如轉換格式、降低位元率、以及降低時間/空間解析度。因此業界開發了不同的智慧型視訊轉碼機制來因應不同問題,基本原則是儘可能重複使用原始視訊串流所含的資訊,以便降低運算複雜性。舉例來說,移動向量映射、DCT域轉換和殘值重新估測等技術都常用來大幅降低視訊轉碼的運算複雜性。  

另外,一套簡單和可擴充的轉碼架構也很重要。由於不同的視訊轉碼解決方案會以不同方式修改演算法和架構,目前又沒有一種標準的視訊轉碼機制,因此具備可程式能力的元件就成為相關應用的最佳選擇。  

為了配合視訊轉碼的各種應用,選擇一種最簡單的轉碼機制將能根據新要求對已解碼的視訊串流進行重新編碼,而這種通用視訊轉碼架構和產品原型,也適用於所有類型的轉碼機制。這樣簡易的視訊轉碼設計不會重複使用原始視訊串流所含的資訊,但其效能仍可滿足解碼和再編碼的運算要求。同時還能進一步進行擴充,以便利用智慧型轉碼機制如移動向量映射和DCT域轉換等,提高通道密度和實現畫質最佳化。  

WMV9漸受重視  

MPEG-2是過去業界最受歡迎和最廣泛使用的視訊壓縮技術之一,如DVD和數位電視廣播就是採用MPEG-2標準,這個標準還同時支援循序和交錯視訊格式。不過,MPEG-2的主要缺點是需要極高的位元率才能提供良好畫質。例如MPEG-2需要5M~8Mbit/s頻寬,才能以30fps速率傳送NTSC標準解析度的畫面。  

微軟在2002年推出Windows Media Video 9(WMV9)系列壓縮演算法,當時它仍是微軟的專屬標準。但在過去四年裡,因為這套演算法的編碼解碼器提供許多功能,在IP視訊串流和隨選視訊系統等領域享有一定優勢,因而獲得愈多廠商重視。  

相較MPEG-2等傳統視訊編碼標準,WMV9提供下列功能:  

‧移動估測可同時支援二分之一和四分之一畫素內插,能直接改善畫質。
‧支援適應性迴路內區塊消除濾波(Adaptive In-loop De-blocking Filtering),可大幅減少低目標位元率的量化假影訊號(Quantization Artifact)。
‧支援多個可變長度編碼表(VLC Table):WMV9的主類別(Main Profile)包含多個可變長度編碼表,這些表格已針對不同類型的內容最佳化,並能在圖框層級進行切換以適應輸入視訊的特性。
‧DCT/IDCT變換切換:WMV9支援多種大小的區塊變換,例如8×8、8×4、4×8和4×4。DCT還採用整數變換,避免MPEG-2因為實作差異而造成的漂移問題。
‧量化:支援死區(Dead-zone)量化,能在位元預算(Bit Budget)有限時省下可觀的位元數量。
 

WMV9的視訊編碼效率遠高於MPEG-2/MPEG-4,同樣壓縮效率下的運算需求則低於H.264/AVC。WMV9由微軟所發展,因此在個人電腦中被廣泛應用,而個人電腦又是重要的視訊顯示平台,因此WMV9逐漸成為業界主流的編碼解碼器。另外,HD-DVD和藍光光碟機也都將WMV9當成必備格式。  

而從DSP的角度來看,也有部分功能是被強力需求的,如強大的運算效能,就是支援視訊編碼與解碼的必備條件。除此之外,還須要提供許多重要功能,才能成為轉碼等視訊基礎設施應用的最佳選擇。整體而言,這些功能可分為四個主要領域:  

‧強大豐富的I/O功能  

系統設計人員會從不同角度解決問題,因此表示視訊基礎設施應用的DSP必須提供電路板層級的I/O連結功能。DSP應包含元件間通訊所需的SRIO介面,可用來實作元件間通訊功能。SRIO採用高產出的訊息傳送機制,資料頻寬使用率最高可達95%。  

其他I/O功能尚應包括1Gbit/s乙太網路媒體存取控制器(EMAC)、一個32位元DDR2-500記憶體控制器和一組66MHz PCI匯流排。若包含ATM通用測試與操作實體層介面(UTOPIA 2)連接埠,將也能用於電信基礎設施。  

‧高效率的晶片內部資料移動 

適合的DSP採用高資料移動效率的晶片架構,這是它勝過早期產品的重要優勢。DSP在視訊基礎設施應用中擔任主機處理器的僕裝置,因此DSP能否在主裝置與僕裝置之間提供高產出、低延遲時間的並行資料傳輸就成為一項重要考慮。部分DSP架構為了滿足這些要求,特別透過高效率的交換式中央資源(Switched Central Resource, SRC)把周邊電路、內部記憶體和DSP核心連結在一起。  

提高資料流程效率也很重要,這主要可透過256位元的記憶體匯流排和內部直接記憶體存取 (IDMA)來實現。IDMA能以背景作業的方式,在兩層內部記憶體之間和記憶體與周邊匯流排之間移動資料。  

‧晶片內建龐大記憶體 

晶片內建SRAM的速度遠超過外部SDRAM,體積則大幅縮減。晶片內建記憶體在典型視訊應用中有兩大用途:一是儲存常用的程式碼和資料,例如VLC表格;二是在處理前/後移入和移出(Swap In/Out)暫時性資料。通常晶片內建記憶體越多,應用效能就越高。DSP的晶片內建記憶體若達2MB,不僅可提高視訊應用效能,還能提供多數視訊基礎設施系統需求的多通道處理能力。  

‧程式碼相容性 

與現有程式的相容性也很重要,因為遠在視訊基礎設施應用像今天一樣廣泛使用轉碼功能前,許多視訊應用程式就已發展完成。想要提高重要訊號處理作業的效能,最好的方法是透過DSP核心架構,而不是修改指令集。例如提供迴圈緩衝區(Loop Buffer),能藉以提高小型迴圈程式碼的軟體執行管線效率。其次則是使用原生32位元指令的16位元版本,這會大幅縮短程式長度,進而降低程式快取的失誤率。  

圖2 及時視訊轉碼應用
圖2是以MPEG-2和WMV9為來源和目標格式的視訊轉碼引擎。雖然MPEG-2/WMV9是將來很常見的組合,但DSP的可程式能力卻不僅止於此,它能輕易處理任何方式組合的來源/目標視訊格式。  

系統資料流程是從圖2左方儲存於硬碟的MPEG-2壓縮視訊檔開始,並以Windows Media Player軟體在平面顯示器上播放視訊做為結束。此處採用NTSC標準解析度,轉碼速率為30fps。  

在DSP1上執行的串流接收器模組除了提供MPEG-2串流緩衝外,還會管理MPEG-2解碼器模組的輸入資料。資料接收作業是由網路開發套件(NDK)程式庫控制,它基本上就是一個TCP/IP協定堆疊。DSP2執行的ASF封裝器(Packetizer)模組則會將WVM9模組輸出的RCV壓縮資料封裝為ASF格式。DSP2還會執行一個以NDK為基礎的HTTP伺服器,負責處理Windows Media Player的串流要求,然後傳送ASF封包。Windows Media Player會對ASF封包進行解碼,再透過螢幕播放視訊。  

兩個DSP如何透過SRIO介面互動是資料流程中最值得注意和最困難的問題之一。對所有視訊圖框傳送而言,這個過程包括:  

‧在DSP1完成了視訊圖框傳送後,會接著傳送SRIO協定規格中所稱的DOORBELL訊號(DOORBELL Package)。這個訊號會在DSP2上產生一個系統中斷,讓DSP知道有一個圖框已完成準備,可以開始執行WMV9編碼。圖框編碼完成後,DSP2會送出DOORBELL訊號給DSP1,這個訊號同樣會在DSP1上產生中斷,告訴它可以繼續傳送下一個圖框。在實際設計裡,系統會採用PING-PONG緩衝機制,以便平行執行編碼/解碼和資料傳送作業。此過程會以迴圈的方式重複執行,直到應用展示結束為止。
‧GUI方塊代表系統內建的控制與監測功能,SRIO線路和Gigabit MAC(GMAC)線路的動作都會以即時方式顯示。MPEG-2串流傳送線路的平均資料速率為8Mbit/s,這也是標準解析度編碼視訊在30fps下的典型速率。ASF封包傳送線路的平均速率則為4Mbit/s,這證明WMV9在維持同樣視訊畫質的情形下,最多可以節省五成頻寬,而SRIO線路的平均速率為124Mbit/s。
 

圖3 即時視訊編碼系統流程
圖3為圖2硬體架構的對應軟體架構。  

視訊轉碼不可或缺  

視訊編碼標準的應用日益廣泛,但是IP網路卻受到頻寬和傳輸延遲時間的限制,這些因素讓視訊轉碼成為一種不可或缺的技術。雖然基礎技術的出現已有一段時間,廠商仍需全新的視訊基礎設施架構,才能透過IP網路傳送更高品質的視訊和高畫質電視。這套架構除了包含SRIO外,還要有多個DSP搭配該介面的傳輸機制並與其互動。基礎設施應用的DSP通常需要更多的晶片內建記憶體,以便同時處理多個通道。還須提供設計人員各種I/O功能如GMAC和UTOPIA以及更好的內部資料流程。  

(本文作者任職於德州儀器)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!