PSP/iPhone片友必看!GPU視頻編碼測試
[泡泡網顯卡頻道 12月29日] 將時間回溯到一年前的今天,也許還有很多人都在討論AMD的UVD解碼技術是多么的強大,高清視頻的解碼完全可以依靠GPU來完成,而與此同時可以利用CPU做更多的工作。是的,去年的今天,我們確實還在討論GPU的解碼技術,包括NVIDIA的全系列產品線都擁有了硬件解碼高清視頻的能力。
俗話說三十年河東,三十年河西,而在發展速度甚至達到兩倍于摩爾定律的顯卡界,何需等到三十年。早在半年前,利用GPU進行硬件(轉碼)編碼的技術已經逐步成熟,NVIDIA推出的CUDA顯卡通用計算開發工具,讓GPU幾乎可以模擬所有的CPU運算,其中最重要的一個特點就是利用GPU進行視頻編碼與轉碼。而AMD雖然在這方面比較落后,但也于前一段時間正式發布了Stream技術,讓GPU編碼從理論走到了現實。

也許很多人會問,為什么要選擇使用GPU來進行視頻轉碼處理呢?事實上,除了在進行視頻轉碼(壓片)處理的同時可以利用CPU做其他的工作以外,還有另外的諸多優勢:
● 使用GPU進行視頻轉碼速度更快;
● GPU相對于CPU來說更加便宜(相同處理能力下);
● 將顯卡更加有效的利用,也不再是玩游戲需要顯卡。
當然,使用GPU進行視頻轉碼最大的理由就是低成本高效率。NVIDIA宣稱使用GPU進行視頻轉碼的速度可以達到CPU數倍,那么到底是不是這樣呢?今天,我們就是要來看看使用GPU進行視頻轉碼到底有多快!
前面我們提到,使用GPU進行視頻編/轉碼計算實際上就是利用了GPU通用計算技術。說起GPU通用計算,我們就不得不提起NVIDIA的CUDA技術。
大家都知道,顯卡的硬件規模遠遠要比CPU更加復雜,早在多年前就有人構想利用顯卡強大的硬件規模實現其他方面的計算,但是一直沒有大規模的實現。NVIDIA終于在2008年推出了CUDA技術,任何用戶都可以通過CUDA開發包,開發出利用顯卡來計算的程序。
簡單的說,CUDA就是顯卡處理通用計算的一個接口,曾經只能執行圖形渲染的GPU終于可以處理其他方面的計算。并且,顯卡進行通用計算還有一個最大的優勢,那就是并行計算。我們先來看看什么是串行計算,什么又是并行計算:
串行計算是指在單個中央處理器單元上對數據進行處理,并行計算是相對于串行計算來說的,其在時間和空間上都比串行計算效率更高,時間上的并行就是指流水線技術,而空間上的并行則是指用多個處理器并發的執行計算。

CPU就是串行計算的代表,當然我們也看到其向并行計算發展的趨勢,比如目前的雙核、四核CPU。但是,CPU永遠也無法跟上顯卡的發展速度,比如如今NVIDIA最強大的單卡GTX280擁有240個流處理器,也就是相當于240核同時并發性的計算,可以想象其計算能力有多強大。
當然,并不是說CPU就完全沒用,今后的PC主要還是CPU與GPU搭配使用,CPU+GPU的計算就是我們所謂的異構計算。
CUDA技術推出以后,GPU通用化的技術受到了各行各業的支持,醫學、地理、股票、期貨、金融等凡是涉及到大規模數據計算的時候,都需要CUDA。所以,從目前的這種現狀來看,GPU的重要性正在逐步取代CPU。
視頻轉碼是NVIDIA GPU CUDA應用的一個重要方面,而且這個對于普通用戶來說意義重大。因為我們經常都可能遇到外出旅游拍攝的視頻,需要轉換/壓縮成其他格式的這種事情。NVIDIA也特別強調了在CUDA在視頻轉換方面的應用。
那么,使用GPU進行視頻轉碼操作到底有多快,我們只能用測試的數據來證明。
為了使測試更加有意義,我們使用5款顯卡分別給iPhone和PSP進行視頻轉碼,然后再用E8200雙核心CPU、QX9770四核心CPU進行同樣的視頻轉碼操作,進行速度對比。
測試的片源我們選擇了兩張正版DVD光盤和一段高清視頻,這樣可以從支持的格式上進行驗證。下面我們來看一看本次測試產品的具體硬件規格,測試的結果能不能和硬件的規格成正比。
● Geforce 9800GT 799元
具體硬件規格:
112個流處理器;
512M/256Bit顯存規格;
默認頻率600/1800MHz。
● Geforce 9600GT 680元
具體硬件規格:
64個流處理器;
512M/256Bit顯存規格;
默認頻率650/1800MHz。
● Geforce 9600GSO 499元
具體硬件規格:
48個流處理器;
256M/256Bit顯存規格;
默認頻率650/1800MHz。
● Geforce 9500GT
具體硬件規格:
32個流處理器;
256M/128Bit顯存規格;
默認頻率550/1600MHz。
● Geforce 9400GT
具體硬件規格:
16個流處理器;
256M/128Bit顯存規格;
默認頻率460/1200MHz。
以上介紹的就是本次參測的5款顯卡,可以看出上至9800GT、下至9400GT的產品都在一起,而這一個價格段的產品也是消費者關注最多的產品。顯卡的價格也從388元至799元全部覆蓋。
除了顯卡之外,我們分別使用了一顆雙核的E8200 CPU和一顆4核心的QX9770 CPU,下面是這兩款CPU的簡單規格:
Intel Core 2 Duo E8200 2.66GHz L2=6144K 45nm 1000元
Intel Core 2 Extreme QX9770 3.2G L2=6144K×2 45nm 10800元
● GPU視頻轉換工具:BadaBoom
在測試之前,我們首先來看一下本次測試所涉及到的視頻轉換工具。NVIDIA推薦的GPU轉換工具為BadaBoom,這是NVIDIA聯合Elemetal制作的Geforce GPU視頻轉碼工具。
這個就是BadaBoom的軟件界面,現在BadaBoom的最新版是1.10,相對于之前的版本來說,1.10版的速度更快,界面更加美觀,同時支持更多視頻源格式和目標格式,比如可以直接壓縮成Youtube視頻,甚至可以支持虛擬光驅。下圖是1.10版本的界面。
經過筆者的測試,很大一部分視頻格式都可以被BadaBoom支持,可以說所有編碼格式的視頻都能夠支持。只不過互聯網上有部分視頻采用的非標準容器封裝的,有可能導致BadaBoom不能正確識別。
BadaBoom在目標視頻的輸出上可以直接支持數十種設備,即使這數十種分辨率中都沒有你想要的,你還可以完全自定義視頻分辨率,非常方便。不過需要提醒大家的是,BadaBoom是一款共享軟件,從網上下載之后只有30次的試用期,過期后則必須購買正式版本。
● CPU視頻轉換工具:MediaCoder
MediaCoder是一個免費的通用音頻/視頻批量轉碼工具,它將眾多來自開源社區的優秀音頻視頻編解碼器和工具整合為一個通用的解決方案,可以將音頻、視頻文件在各種格式之間進行轉換。MediaCoder具備一個可擴展的架構和豐富的功能,可滿足各種場合下的轉碼需求。目前,MediaCoder已經擁有上百萬分布在全世界170多個國家的用戶。

功能和特點
基于優秀的眾多的開源編解碼后臺,能夠解碼和編碼的格式多;
良好的多線程設計,為多核處理器優化(PCPOP評),在四核上可達到90%以上的平均CPU使用率;
極為豐富的可調整的編碼參數;
全部編解碼器自帶,不依賴于系統的編解碼器和任何組件;
良好的可擴展的程序架構,快速適應新的需求,不斷增加新的格式的支持;
利用腳本語言擴展的界面,支持眾多影音設備。
典型應用
提高影音文件壓縮率,減小其文件尺寸;
轉換至可在各種影音設備上播放的影音文件,如MP3播放器、MP4播放器、手機、PDA、VCD/DVD播放機;
提取視頻文件中的音軌并轉換成MP3、AAC、WMA等音頻文件;
修復和改善一些損壞的、部分下載的或質量不佳的影音文件;
不過,相對于BadaBoom來說,MediaCoder最大的優勢就是可以完美支持字幕顯示,不過在筆者的測試中,MediaCoder根本無法支持光驅和虛擬光驅讀取,官方論壇有網友反映據說是與Vista兼容性不好。
在使用顯卡進行轉碼操作中,我們在BadaBoom的軟件里將輸出畫質都設定到最高,同時將分辨率設置為全屏輸出,這樣輸出的結果完全可以達到最高質量。下圖是設置界面:
注:本次測試除特殊說明外均采用BadaBoom 1.10版進行測試,上截圖來自BadaBoom 1.0版。
由于本次測試有兩張DVD光盤(《加勒比海盜》和《終結者3》),為了避免光驅的讀取速度造成瓶頸,所以本次測試都將DVD的內容做成ISO,然后用虛擬光驅加載,完全避免了因光驅讀取速度造成的轉換瓶頸。另外,還有一段碼率高達80Mbps的高清測試片,主要測試高清視頻的轉碼能力。
在使用MediaCoder進行CPU轉碼的測試中,關于文件碼率、封裝格式等的設定我們都直接參靠通過BadaBoom轉換后輸出的視頻信息,也就是說CPU和GPU測試的環境和輸出視頻的壓縮率、文件碼率,甚至音頻部分的信息等都完全一樣,保證測試時間對比度準確性。
本次測試主要以給iPhone轉片為主,所有視頻都被每一款顯卡和CPU轉換成iPhone格式。由于時間關系,PSP格式的視頻只是轉換了一段高清視頻,沒有全部轉換,但是已經足以體現出GPU視頻轉換與CPU視頻轉換的速度差異了。
經過前面的介紹,我們已經了解了本次測試的目的、方法以及測試環境,下面我們正式來看看測試的成績,首先我們看各大轉碼硬件(5款顯卡與兩款CPU)將《加勒比海盜》DVD版轉換成iPhone格式所花費的時間!
● 轉換片源:《加勒比海盜》DVD版/片長:143分鐘/格式:For iPhone

● Geforce 9800GT/轉換時長:25分50秒
● Geforce 9600GT/轉換時長:28分50秒
● Geforce 9600GSO/轉換時長:33分05秒
● Geforce 9500GT/轉換時長:48分02秒
● Geforce 9400GT/轉換時長:1小時21分10秒
● Intel Core 2 Extreme QX9770/轉換時長:33分18秒
● Intel Core 2 Duo E8200/轉換時長:1小時09分29秒
● 轉換片源:《終結者3》DVD版/片長:110分鐘/格式:For iPhone

● Geforce 9800GT/轉換時長:19分46秒
● Geforce 9600GT/轉換時長:21分57秒
● Geforce 9600GSO/轉換時長:25分22秒
● Geforce 9500GT/轉換時長:36分13秒
● Geforce 9400GT/轉換時長:1小時00分26秒
● Intel Core 2 Extreme QX9770/轉換時長:28分42秒
● Intel Core 2 Duo E8200/轉換時長:58分41秒
● 轉換片源:無名高清視頻片段/片長:1分44秒/格式:For iPhone
● Geforce 9800GT/轉換時長:47秒
● Geforce 9600GT/轉換時長:47秒
● Geforce 9600GSO/轉換時長:45秒(參考成績)
● Geforce 9500GT/轉換時長:54秒
● Geforce 9400GT/轉換時長:1分34秒
● Intel Core 2 Extreme QX9770/轉換時長:58秒
● Intel Core 2 Duo E8200/轉換時長:1分19秒
● 轉換片源:無名高清視頻片段/片長:1分44秒/格式:For PSP
● Geforce 9800GT/轉換時長:40秒
● Geforce 9600GT/轉換時長:47秒
● Geforce 9600GSO/轉換時長:45秒(參考成績)
● Geforce 9500GT/轉換時長:51秒
● Geforce 9400GT/轉換時長:1分24秒
● Intel Core 2 Extreme QX9770/轉換時長:52秒
● Intel Core 2 Duo E8200/轉換時長:1分12秒
前面我們說到,本次測試采用的BadaBoom軟件為1.10版,而上一個版本是1.0版,在測試的時候,筆者在國外論壇上看到有網友測試,BadaBoom 1.10版在效率上會比1.0版本快很多。為了印證,筆者還專門找了一款1.0版本的BadaBoom,進行了兩三個項目的測試,結果證明1.10版本的速度確實要比1.0版本快不少。比如我們使用9800GT顯卡,搭配1.0版本的BadaBoom為iPhone轉換《加勒比海盜》DVD版,花費的時間是32分35秒;
而如果使用1.10版的BadaBoom,進行同樣的測試項目,所花費的時間為25分50秒,如下:

我們繼續使用9800GT,來為iPhone轉換《終結者3》DVD版本,使用1.0版本的BadaBoom,花費的時間是23分20秒。
而同樣適用1.10版本的BadaBoom,進行同樣的測試,只花了19分46秒,如下:

再來看看9500GT,使用1.0版本的BadaBoom,為iPhone轉《加勒比海盜》,花費的時間為58分32秒。
而使用1.1版本的BadaBoom,所花費的時間縮短到了48分02秒:

同樣,使用9500GT為iPhone轉《終結者3》,1.0版本BadaBoom軟件下花費的時間為44分14秒。
而當將軟件升級到1.1版本的BadaBoom,時間則縮短到了36分13秒。
從這幾個簡單的測試項目中我們不難看出,1.10版本的BadaBoom確實在轉換效率上要比上一個版本高很多,所以強烈推薦大家在進行轉換操作的時候,選擇最新版的軟件,不僅可以支持更多的格式,同時轉換速度還將會大幅度提高。
前面我們測試了很多很多項目,但是如果使用GPU轉換出來的視頻不能正常播放,這將是本次測試的一大笑柄。筆者分別對這些轉換后的視頻,在iPhone上進行了測試,請看視頻:
● 《加勒比海盜》在iPhone上的播放情況
● 《終結者3》在iPhone上的播放情況
● 高清視頻在iPhone上的播放情況以上3段視頻的成功播放,已經印證了使用GPU轉換的視頻沒有任何問題,完全可以使用,但唯一的遺憾是沒有字幕。
本文的測試部分到這里也就告一個段落了,從前面的測試中我們可以看出,GPU依靠著強大的并行計算能力,在視頻編碼這方面的性能確實要遠遠大于同樣價位的CPU。比如我們可以看到,售價超過萬元的優異4核心QX9770 CPU,進行視頻編碼計算的能力只能和零售價格為499元的9600GSO媲美,甚至在有些時候還不如9600GSO;而雙核心的E8200就更不用說了,稍微能比9400GT快一點點。

很顯然,使用GPU進行視頻編碼計算一定是未來的主流,但是也并不是完全沒有遺憾,字幕的支持就是一個很大的問題,至于BadaBoom會不會解決這個問題,什么時候能夠解決這個問題,目前都還沒有答案。
有很多朋友說BadaBoom對視頻格式的支持太少,筆者認為這完全是由于互聯網上的視頻封裝方式太怪異的問題導致,目前互聯網上的視頻封裝容器花樣太多,而BadaBoom又主要面向的是正版視頻,恐怕確實支持的會少一些。但是據筆者了解,BadaBoom可以支持幾乎所有編碼格式的視頻,支持不了僅僅是因為視頻封裝容器的問題。
不過,BadaBoom收費的問題確實有點難辦,從官方網站下載的BadaBoom軟件,只能有30次的免費試用,并且轉換的視頻還有Logo,在這一點上無法和一些免費的軟件相比。
另外,文章前面筆者提到了CPU視頻編碼軟件MediaCoder無法讀取光盤和虛擬光驅額的問題。而在本文臨近截稿時,MediaCoder發布了最新的版本MediaCoder 0.6.2.4230,在更新Log中有這樣一個項目:[fix] Add Track feature blocking issue on some systems,估計是已經解決了這個問題,感興趣的朋友可以下載試試。■<
關注我們


