1. 程式人生 > >關於“硬解碼”與“軟解碼”

關於“硬解碼”與“軟解碼”

由於高清視訊的解析度遠遠高於一般格式視訊,使得高清視訊的位元速率非常高。再加上VC-1和H.264編碼的壓縮率很高,解碼運算的運算量很大。因此常規地直接用CPU解碼(即常說的“軟解”)會極大地消耗CPU的運算能力,一些較老的CPU軟解H.264時CPU佔用率往往高達90%以上,更老的可能就放不動了。

    “硬解”是硬體解碼的簡稱。簡單而言,硬體解碼就是通過顯示卡的視訊加速功能對高清視訊進行解碼。因此硬解能夠將CPU從繁重的視訊解碼運算中釋放出來,使電腦具備流暢播放高清視訊的能力。顯示卡的GPU/VPU要比CPU更適合這類大資料量的、低難度的重複工作。視訊解碼工作從處理器那裡分離出來,交給顯示卡去做,這就叫做“硬解碼”,例如NVIDIA的PureVideo、AMD的UVD技術等等。與之對應的,以前那種純粹依靠CPU來的方式則是“軟解碼”

。不過受到技術條件的限制,純粹的“硬解碼”在現階段是不存在的,CPU依然在發揮一部分作用,只不過硬解碼時GPU/VPU已經成為運算的主力。

誰更“好”?
    軟解碼是在顯示卡本身不支援或者部分不支援硬體解碼的前提下,將解壓高清編碼的任務交給CPU,這是基於硬體配置本身達不到硬解壓要求的前提下,屬於一個折中的無奈之舉。那這麼說是不是軟解壓就一無是處了呢?不,這要是情況而定。對於一個不看、或者不經常看高清的使用者而言,如果專門為很少用到的功能進行過多支出,那無疑是一種浪費;而在保證正常應用的前提下,還能在偶爾看一下高清的時候自己的電腦配置不至於播放不了,或者播放不流暢,那麼這時候一顆效能不算太次的CPU就大有用武之地了,好在現在早已是雙核,甚至多核CPU的時代,這個已經不是問題。總結軟解碼的好處,就是成本低廉,幾乎不用二次投入,就可以享受高清帶來的樂趣和震撼。

    硬解碼的優勢是不言而喻的,一款支援VC-1、H.264和MPEG-2格式硬體加速的顯示卡或者整合顯示卡主機板是高清愛好者的上佳選擇。由於解壓縮的任務基本全部交給了顯示晶片,CPU就可以如釋重負,輕鬆上陣,承擔更多的其他任務,這尤其對於經常需要多工執行的使用者更為重要,如果讓他們使用CPU負擔解壓任務的同時,再執行3個QQ、2個UC,執行BT、迅雷等一大堆任務,這將是一件不可想象的事情,但是如果換成硬解壓方案,這又是一件很輕鬆的事情,看看吧,差別就是這麼大。不過硬解壓也並不都是優點,它也有缺憾的,比如硬體的支出,其餘配置基本相同的前提下,就會比軟解壓方案多一些,這對於配置預算很有限的使用者來說更是一個擺在面前的實際問題。另外,多了一塊獨立顯示卡,就會增加功耗,尤其是像GTX 280、HD 4870之類的高階顯示卡,動不動就是上百瓦,另外還要牽扯到電源的功率是否可以應付、機箱的散熱是否能達到要求等等,這些都更增加了使用者的整體預算。

    列舉了軟解壓和硬解壓兩者的優、劣,最終還是不好確定哪個好哪個壞,還是那句話,“適合的,就是最好的”。配機預算有限,只是偶爾欣賞一下高清的使用者,使用軟解壓方案即可;而對於高清愛好者,同時兼顧大型3D遊戲的使用者,一款支援多種高清格式的主流顯示卡或者效能不算很弱的整合主機板是他們的最終選擇。

誰的播放效果更好?
    由於硬體解碼尤其是全程解碼是新推出的技術,所以在大部分人心目中硬體解碼要比軟體解碼先進,因此在自己顯示卡支援硬體解碼的情況下會千方百計地開啟硬體解碼設定。其實硬解解碼並不是必須的,因為硬體解碼的出現是當CPU效能不足以應付視訊解碼需求時的一種解決方案,主要作用是降低CPU佔用率,如果在CPU能流暢播放高清視訊硬解的作用也就不明顯了。這裡有人可能會說降低CPU佔有率可以降低能耗,硬解確實可以降低CPU功耗,但是顯示卡的功耗是會增加的,而且就目前情況來看,顯示卡的功耗已經大幅超過CPU了,所以靠硬解來降低系統能耗是不太可能的。也有很多人而覺得讓CPU處於空閒比較好,但是CPU佔有率高就是電腦的使用率高,不然買這麼貴的CPU就沒有必要了。

從使用角度來講的硬體解碼則有三大缺點,一是畫面質量比不上軟體解碼,根據測試表明,軟解碼畫面質量明顯優於早期顯示卡的硬體解碼,與最新最強顯示卡硬體解碼播放高清相比也略佔上風;二是硬體解碼需要播放軟體中設定,且對字幕等支援不好;三是早期支援硬解碼的顯示卡還存在著各種各樣的小毛病。當然隨著技術進步這些問題可能會得到解決,但是到時CPU的效能也就更高了,軟解高清的能力也許就像現在軟解DVD一樣了。比如現在的9600GT除了新增的“動態對比度增強”和“色彩增強”這兩項視訊優化技術之外,NVIDIA還提供了“去交織”、“反鋸齒”和“降噪”等高清視訊最重要的畫面後期處理技術,並且支援雙視訊流解碼效能超強,但是Intel Core i7 效能也令人咋舌,可以在沒有任何快取或預處理措施的情況下即時處理總容量達到200GB,合計畫素數為224萬億的RAW格式照片,估計播放HDTV根本就是小菜一碟。

    當然,硬體解碼對CPU效能較差的人來說還是十分重要的。但是,並不是有硬體解碼的顯示卡就一定要用的,在Core 2 Duo下使用MPlayer + CoreAVC播放高清時即使開啟反交錯等濾鏡也可以流暢播放。在這種情況下其實並不需要硬解。是否需要使用硬解應該視情況而定,不需要一味求新,因為這些新的概念多數是硬體廠商的營銷策略。

軟解:相容性好,適用更多平臺,播放高清視訊CPU負載大

硬解:與平臺相關,播放高清視訊更加清晰順暢