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

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

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

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

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

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

我們繼續(xù)使用9800GT,來為iPhone轉(zhuǎn)換《終結(jié)者3》DVD版本,使用1.0版本的BadaBoom,花費(fèi)的時(shí)間是23分20秒。
而同樣適用1.10版本的BadaBoom,進(jìn)行同樣的測試,只花了19分46秒,如下:

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

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

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


