視頻轉碼

視頻轉碼

視頻轉碼(Video Transcoding)是指將已經壓縮編碼的視頻碼流轉換成另一個視頻碼流,以適應不同的網路頻寬、不同的終端處理能力和不同的用戶需求。轉碼本質上是一個先解碼,再編碼的過程,因此轉換前後的碼流可能遵循相同的視頻編碼標準,也可能不遵循相同的視頻編碼標準。

基本信息

技術背景

視頻轉碼市場已經開始吸引了不少數碼設備廠商和半導體公司的關注。前者出於市場實際需求的考量,一般都自行開發出從MPEG-2到H.264的ASIC轉碼晶片並集成在產品中。例如松下的HDD錄像機DIGA系列採用了自己開發的UniPhier晶片,可以在錄製節目的時候將17Mbps基於MPEG-2的數位電視信號轉換成5.7Mbps的H.264格式,從而大幅提高了視頻錄製時間。日本的索尼和日立等公司也在2007年推出了採用自有晶片的具有轉碼功能的產品。

隨著半導體公司對轉碼技術的興趣提升,支持MPEG-2、H.264、VC-1等多種格式轉換的新品也在去年陸續面市。但是策略也不完全相同,目前轉碼技術的實現手段有偏向軟體和硬體兩種,前者通常採用高速計算機或者高性能的DSP,後者一般採用專用ASIC或者FPGA。談到這幾種方案的區別,TI通用DSP業務發展經理鄭小龍認為:“數字視頻編解碼及轉碼的套用中高端DSP在實時處理中始終是主力平台。在基本的媒體處理平台中,ASIC類晶片一旦設計完成交付流片,則各種功能均不能再改變;FPGA雖屬有硬體可程式器件,但如果硬體設計完成並制板之後,就很難再有大的改動;DSP作為嵌入式軟體可程式平台所備受關注之處在於全面支持各種視頻標準算法,即便是已完成產品仍可以通過軟體更新的方法進行升級。”

TI支持多格式的高清多媒體處理器DM6467是一個包含多個處理器和核心的SoC,不是多個並行處理單元的羅列。DM6467中主要視頻處理核心為高速高清協處理器(HD-VICP)、高速DSP和視頻數據轉換引擎三個部。其中HD-VICP 通過編碼和解碼兩片專用加速器實現了相當於 3 GHz 以上的 DSP 處理能力,支持 HD 1080i H.264 高類轉碼;高速DSP採用主頻為600MHz的C64+核,輔助支持H.264 高清編解碼和轉碼時,所耗費時鐘低於300MHz,且DSP套用非常靈活,既支持早期算法,也支持新算法以及專有算法。視頻數據轉換引擎具有視頻下垂直調節器能降低 DSP 負載,色度採樣在硬體中完成,並有選單覆蓋功能。DM6467還集成有300MHz的ARM9核心,可以支持多種嵌入式實時作業系統,並實現各種主控和管理工作。

實現

當通過IP網路傳送DVD光碟上的數據時(例如公司培訓、視頻點播或視頻廣播等套用),轉碼技術同樣適用。對於這種情況,源視頻格式是MPEG-2,而VC1很可能被用作目標格式。以下將介紹如何利用兩片TI TMS320C6455 DSP來實現這種系統原型。

從技術上來看,需採用視頻轉碼技術來解決格式轉換、位速率減小和時間/空間解析度縮減等諸多問題。相應地,針對不同情況開發出了不同的智慧型視頻轉碼方案,其基本原則是儘可能地復用原始輸入視頻流中所包含的信息以降低複雜性。

例如,運動矢量(MV)映射、DCT(離散餘弦變換)域轉換和殘差重估(residual re-estimation)等日前流行的視頻轉碼技術可大幅降低計算複雜性。

此外,人們也期待出現簡單且可以擴展的轉碼架構。由於不同的視頻轉碼方案要求以不同的方式對算法和架構進行調整,並且不存在單個的標準化視頻轉碼方案,具有可程式能力的DSP(如C6455 DSP)適用於這一領域。

下面我們將提出一個可滿足各種轉碼方案的通用視頻轉碼架構及原型。為適應各種不同的視頻轉碼目標,我們選取了最簡單的轉碼方案將被解碼的視頻流按照新的約束條件完全重新編碼。

這個初始的視頻轉碼方案未復用原始輸入視頻流中所包含的信息,卻能夠處理所有複雜的解碼和重編碼任務。不過,該視頻轉碼架構和軟體基礎設施是可擴展的,可以支持智慧型轉碼方案(如MV映射、DCT域轉換等),以提高通道密度並充分挖掘最佳化質量的潛能。由於採用了靈活的軟硬體框架,這個架構可以實現許多傳統的和新型的轉碼方案。

原型的實現

儘管MPEG-2/WMV9組合有望套用得非常普遍,但DSP的可程式能力使其可以方便地處理源視頻/目標視頻格式的幾乎任何組合。

該系統的原始數據以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。

市場需求

視頻轉碼技術的發展及不斷增加的需求與廣播電視數位化進程密切相關,目前轉碼技術的主要套用領域是數位電視廣播和數字媒體前端處理。 “其實,多解碼晶片的套用只是在‘看’節目上套用,它讓設備可以支持多種類型的信號源。”富士通市場經理黃自力指出:“但有時有些場合只需要一種信號源,比如有線電視的前端,最好採用同一格式播出節目,這時候就需要將一部分節目的格式進行轉換。”

當前大量數字視頻節目為MPEG-2格式,而許多新的播放設備為提高傳輸和存儲效率而採用諸如MPEG-4\H.264 \Real\VC-1\AVS等高級數字編解碼格式,因此源於MPEG-2的轉碼技術已大量採用,而對與此相關的高清晰度轉碼的要求也越來越高,特別是實時轉碼技術及其實現手段的提高。

另外,在硬碟錄像機里,在MPEG-2格式時候占用硬碟空間太多,一部高清電影要占8G左右的硬碟空間,這就需要轉成更高壓縮比的H.264格式,從而擴大容量,節省硬碟的投入成本,同時也可以降低整機的重量和體積。像富士通的MB86H52就可以在保證節目質量不變的情況下,最大達到5倍的容量擴展。

還有一些場合下,比如利用網路來傳輸節目,MPEG-2就需要占用較大的頻寬,如果頻寬有限,就可以將MPEG-2的信號轉成H.264的信號,用較小的頻寬來進行傳輸,並且還可以進一步利用視頻轉碼處理器降低H.264信號的碼率,使之能夠適應網路的傳輸。

轉碼技術將用來滿足更廣泛領域的數字視頻多制式轉換需求,不僅套用於包括視頻廣播轉碼、媒體網管、多會議單元 、醫療影響和視頻監控等商用產品中,而且也將用於包括數字媒體適配器、高清視頻會議終端、高級數字機頂盒、IP視頻電話和高清網路攝像機等消費類產品。在商用產品中轉碼技術支持更高密度非常必要,而在消費類產品中轉碼技術的單片高性價比則必需。

黃自力也指出:“轉碼設備的套用市場還是很大的,新的套用還將被不斷開發出來。”

當今視頻娛樂市場以內容為王,能夠實時轉換任意格式的視頻內容是未來市場發展的一個核心趨勢。即使不被眾人所了解,但是視頻轉碼技術必將得到廣泛的使用。視頻轉碼是指將某一視頻格式轉換為另一視頻格式的過程,通常都是先將視頻暫時解碼,然後重新編碼成需要的格式和數據編碼速度。

IDC分析指出了三種主要的轉碼需求:不同視頻格式間的轉換,例如從MPEG-2或者MPEG-4轉到H.264;內容傳輸,改變比特率滿足不同網路頻寬或者設備播放速度的需求;清晰度,將高清視頻轉為標清甚至更低的清晰度,後者反向處理。典型的例子是,為了進行編輯並將信息上載到網站(例如 YouTube)而將視頻從攝像機傳輸至 PC 的套用。視頻數據傳輸時,代碼轉換也正在進行;例如從攝像機(AVI 格式)到 PC(用於編輯的 MPEG-2;用於存儲的 MPEG-4)再到網站(H.263/H.264/Flash/等)。如果要在 PC 上觀看網站上的檔案,則需再次執行代碼轉換使其能在 RealPlayer 或 Windows Media Player 上播放。

數字視頻壓縮已成為一種幾乎在各種類型的視頻套用中都非常重要的技術。隨著媒體融合的趨勢不斷發展,壓縮和互操作性能將變得越來越重要。 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標準。

發展

伴隨廣播以及IP網路視頻套用的發展,高清視頻時代正式來臨。對數字設備來說,視頻畫面質量大幅提升的同時也給視頻內容處理帶來不便。MPEG-2因壓縮比太高,占用頻寬太大,不利於高清視頻圖像的存儲及網路傳輸,而H.264因壓縮比高、占用頻寬小,逐步成為高清視頻的主流格式。目前大家都寄希望將MPEG-2格式的視頻圖像內容轉碼成H.264格式,來解決視頻內容處理過程中出現的問題。

為滿足不斷增加的轉碼需求,富士通新推出一款高質量全高清視頻轉碼晶片-MB86H52,可將高清/標清的MPEG-2格式轉碼成高清/標清的H.264格式,在保持與MPEG-2同等視頻圖像質量的同時,轉碼後的視頻內容數據量大小為轉碼前的一半甚至更小。

MB86H52晶片採用的視頻圖像處理技術基於富士通已量產的全高清H.264編解碼晶片-MB86H51,在轉碼部分使用富士通專有的視頻圖像質量保真算法,該算法針對轉碼定製設計,可保證在MPEG-2視頻圖像格式轉碼成H.264格式後,視頻圖像質量不變。

通過使用MB86H52轉碼晶片,能解決視頻內容處理的兩大難題。第一,解決數據記錄設備容量不足問題。一般來說,對於高清的視頻內容,當解析度越高時,硬碟錄像機等數據記錄設備里可保存的視頻時間就越短,而通過MB86H52的轉碼,在相同硬碟容量下可將視頻記錄時間延長2~5倍;第二,解決窄頻寬網路內高清視頻圖像傳輸問題。轉碼成H.264格式後,視頻圖像數據量大幅減小,相同頻寬內傳輸的視頻圖像數據更多,從而實現在家用網路或其它窄頻寬網路內傳送全高清視頻圖像。

特點

1. 高壓縮性能的全高清視頻圖像轉碼:高壓縮性能,可將MPEG-2的視頻圖像數據大小壓縮至轉碼前的一半,甚至更小。高清、標清格式均適用。

2. 專有的視頻圖像質量保真算法:採用富士通專有的視頻圖像質量保真算法,可使視頻圖像在由MPEG-2轉換為H.264格式後仍然保持同等畫面質量。它連續追蹤、分析人眼觀看視頻圖像時易於察覺的畫質失真部分(例如臉或緩慢移動的物體等)和不易察覺的畫質失真部分,對易察覺部分使用較小壓縮比以保持高畫面質量,同時對其他部分儘可能壓縮。

3. 內嵌的H.264高清編解碼功能:內嵌H.264高清編解碼功能,可實時將未壓縮的視頻數據編碼成H.264格式,也可實時將已壓縮或轉碼的H.264視頻數據進行解碼。HDMI接口輸入/輸出的基帶視、音頻數據也可編碼為H.264格式。

4. 低功耗:採用先進的90nm製程生產,功耗極低,全高清轉換(1080i)視頻內容格式時功耗僅為1.7W。

挑戰

視頻轉碼是一個高運算負荷的過程,需要對輸入的視頻流進行全解碼、視頻過濾/圖像處理、並且對輸出格式進行全編碼。最簡單的轉碼過程僅僅涉及到解碼一個比特流和用不同的編解碼器重新編碼兩個步驟。這種硬轉碼看似很簡單,只需要一個解碼器和一個編碼器,但是最終顯示結果並不理想,因為視頻數據解碼後重新編碼會降低畫質。

硬解碼無法利用捷徑,所以和採用智慧型轉碼算法的方法相比,要求更高的處理器性能並且產生更大的功耗。如果全部通過軟體進行臨時處理,需要2GHz頻率的處理器。以現在PC上的CPU的運算能力,在運行其他程式的情況下,是無法支持實時的高清視頻轉碼,更不要提機頂盒這樣的消費產品。

用一個專用的轉碼處理器減輕核心處理器的任務,對於機頂盒和數字錄像機這樣的設備更有幫助。而高清的轉碼更具挑戰性,因為需要處理的數據遠遠高於標清格式。事實上,在沒有硬體加速器的情況下,就算是當前比較高端的PC處理器都不能實施解碼1080i的流媒體,即便是非實時的轉碼過程也會消耗很多系統資源。

對於改善因為轉碼帶來的圖像質量下降的問題,常見的方法都是在轉換前通過軟體對已編碼的視頻數據進行分析,並且在重編碼時採用這些分析,從而改善畫質。具體來說,就是在解碼原始視頻時,通過DSP核心對動態矢量信息進行分析。源數據的動態矢量信息正確時,就在編碼過程中採用這些信息,當發覺動態矢量信息不合適,就通過編碼器再次檢測動態矢量,然後重新分析檢測到的信息。

GPU比拼

NVIDIA Badaboom

由於NVIDIA的強勢宣傳,Badaboom這款軟體大家已經比較熟悉了。雖然這款軟體並非NVIDIA自行開發,而僅僅是利用了CUDA通用計算平台。但它僅支持NVIDIA GeForce 8以上顯示卡,NVIDIA也多次以官方推薦的形式將它加入通用計算大禮包提供免費下載,儼然一副“御用軟體”的架勢。

Badaboom並非免費軟體,官方售價為29.99美元,試用版本可以免費使用30天,但輸出的視頻會帶有水印Logo。

它的界面設計精美且簡單易用。只需要在左側選擇視頻源,右側選擇輸出格式,再在中間設定編碼質量,點擊最底部的“start”就搞定了。輸入格式支持MPEG2或H.264,輸出格式僅有H.264一種,但提供了專門對應iPhone、iPod、AppleTV、Xbox 360、PS3、PSP等的多種快捷預設。

AMD催化劑8.12 ATI Avivo Video Converter

相比Badaboom的老面孔,恐怕大家對尚未正式發布的催化劑8.12還感到陌生,其內置的Avivo視頻轉碼器是ATI Stream通用計算架構的首款王牌套用。作為反擊NVIDIA CUDA的利器,它同樣能夠利用GPU運算能力實現視頻轉碼加速,支持Radeon HD 4000系列顯示卡。更重要的是,它是完全免費的,直接包含在催化劑8.12驅動程式中。

相比Badaboom,新Avivo的界面就要簡單的多了,甚至比05年首個版本的Avivo還要樸素,基本就是標準的Windows設定嚮導界面。

首先需要在催化劑控制中心中選擇“ATI Avivo Video Converter”。令人不解的是,只有“Basic”簡化版的控制中心才有這一選項,而“Advanced”完整控制中心界面中卻找不到它。

第一步選擇輸入輸出檔案。Avivo的輸入格式比Badaboom要豐富得多,包括DVD VOB、H.264、MPEG-2、DivX、Windows Media、MPEG-4等等。

這裡選擇的檔案是最新一集007電影的1080p預告片。可以看到其屬性中出現了不少錯誤,幀速顯示僅有0.77Mbps,時長顯示更是奇怪的0:2:7。

點擊下一步可以選擇輸出格式,這裡也比Badaboom要豐富,包括DVD、WMV、MPEG-2甚至MPEG-1的VCD、超級VCD格式。

向下拉還有iPod和MPEG-4 DivX。

和Badaboom允許詳細設定輸出格式不同,Avivo僅允許用一個滑桿來調整輸出檔案畫質和尺寸。實際這裡能夠改變的只有視頻碼率,解析度、音頻等設定都無法更改。

輸出為iPod格式時,碼率最高只有770Kbps。

最低為130Kbps。而實際上,當選擇MPEG-4格式時,最高碼率可達15Mbps。

點擊下一步就會彈出一個進度條視窗開始轉碼。需要注意的是,這裡的時間估計也不盡準確,經常出現進度條已經走完仍然需要幾十秒才能完成的情況。

轉碼完成後,會出現輸出結果摘要頁面。點擊“Start Over”可以重新開始。

總的來說,Avivo的界面相對Badaboom顯得過於樸素,不過其在輸入輸出格式上享有更多的靈活性。

性能對比

測試平台:

Core 2 Extreme QX9650處理器

Intel X48主機板

4GB DDR3-1333記憶體

西部數據Raptor 150GB萬轉SATA硬碟

顯示卡:

Badaboom測試:Geforce GTX 260+ 896MB

Avivo測試: Radeon HD 4870 1GB

首選需要說明的是,由於兩款軟體都和廠商顯示卡對應,沒有一個統一的平台能夠進行直接比較,甚至兩款軟體的輸出格式都不盡相同,因此結果也不能夠簡單對比。比如這裡的前三項測試都選擇輸出為iPod格式碼率780Kbps,因為這是Avivo在iPod格式下的最高碼率,而對於Badaboom來說卻幾乎是最低設定。就算設定基本一致,其輸出檔案尺寸仍有幾百KB的區別。

藍光轉iPod

第一項測試的片源為1080p藍光預告片,該視頻本身即為H.264格式,需要轉為480x320解析度的780Kbps ipod格式。這裡,使用CPU進行編解碼的Xilisoft使用了72秒才完成,Badaboom只用了23秒,Avivo更是只用了12秒。

DVD轉iPod

這裡使用星戰前傳3 DVD同樣轉為iPod格式。CPU轉碼需要接近5分半鐘,Bababoom用了142秒,Avivo則只用了51秒。

MPEG-2轉iPod

第三項使用一段800MB 720p MPEG-2視頻轉換為iPod格式。Avivo的速度是CPU轉碼的4.3倍,Badaboom則是CPU轉碼的2.6倍。

藍光轉WMV

最後一項使用1080p H.264預告片轉為2.5Mbps的WMV格式。Badaboom並不支持輸出為WMV,而Avivo在這裡的表現則相當出眾,速度是CPU轉碼的5.16倍。

NVIDIA Badaboom

ATI的解決方案使用了更多的CPU資源,這或許也是它速度更快的一大原因。因此,如果你希望在視頻轉碼時做其他工作,Badaboom或許會更加適合。而如果需要讓PC一心一意的轉碼,Avivo肯定更快。

潛在的問題

大家都應該知道,速度並不是視頻編碼轉碼的唯一問題。很遺憾,AMD的Avivo雖然速度奇快,但是其輸出視頻並不完美,其中會出現編碼錯誤,如下圖中人物手臂和小腿處出現的灰色方塊。而Badaboom的輸出視頻卻沒有這種問題。

總結

測試顯示,無論來自NVIDIA還是AMD的GPU視頻轉碼方案都相當誘人,相比CPU能夠成倍提高轉碼速度,進行批量工作時可以大幅度節約時間。當然,它們都有需要改進的地方,最大的通病在於都無法精確設定輸出視頻規格,而只有籠統的輸出格式和碼率選擇。

兩者相對比,並沒有一個明顯的贏家。Avivo速度更快,支持格式更多,但輸出結果並不完美。Badaboom輸出質量高,界面精美,但速度比 Avivo慢,支持格式也過於有限。至於具體要選擇哪一家,目前狀況下還是要看你究竟是對速度要求更高,還是對質量需求更嚴謹來做決定。

相關詞條

相關搜尋

熱門詞條

聯絡我們