H.265標準下視頻軟解與硬解的對比
1.概念
從數字視頻誕生以來(lái),硬解碼和軟解碼的說(shuō)法一直伴隨著(zhù)它的發(fā)展。數字視頻的軟解碼是指在通用CPU上通過(guò)專(zhuān)門(mén)的播放軟件解碼并播放視頻;而硬解碼則是指在專(zhuān)用的硬件解碼模塊解碼視頻,然后將解碼數據送至顯示屏播放。嚴格來(lái)說(shuō),并不存在純粹的硬解碼,因為即使有硬件協(xié)處理模塊存在,整個(gè)解碼過(guò)程也需要軟件來(lái)控制。所以本文所討論的是約定俗稱(chēng)的軟解碼和硬解碼。
2.歷史
早在20世紀80年代,數字視頻商業(yè)化應用(Sony的D1格式,http://en.wikipedia.org/wiki/Digital_video#History)已經(jīng)出現。那時(shí)的數字視頻是未經(jīng)壓縮地存儲在磁帶上,所占空間非常大,其相關(guān)產(chǎn)品極其昂貴,普通消費者難以承擔,因此數字視頻的概念沒(méi)有普及。1992年數字視頻壓縮標準MPEG-1的發(fā)布,尤其后來(lái)的基于該標準的VCD標準發(fā)布以及相關(guān)產(chǎn)品的問(wèn)世,極大地推動(dòng)了數字視頻在消費領(lǐng)域的發(fā)展,同時(shí)也使數字視頻的概念在消費者中得到了普及。后來(lái)的MPEG-2和基于其上的DVD和數字電視的普及,讓消費者欣賞到更高品質(zhì)的視頻節目。新世紀的H264標準和其它私有視頻標準如RM,WMV,VP8格式等,極大促進(jìn)了網(wǎng)絡(luò )視頻的快速發(fā)展。去年新一代標準H.265的推出,標志著(zhù)數字視頻技術(shù)和產(chǎn)業(yè)達到了一個(gè)新的高度。
在數字壓縮標準(技術(shù))不斷進(jìn)步的同時(shí),它的編解碼技術(shù)、手段也有不斷的創(chuàng )新。數字視頻壓縮標準剛剛誕生的上世紀90年代初,通用CPU計算能力遠遠無(wú)法滿(mǎn)足解碼需求,所以那時(shí)的解碼方式全部采用專(zhuān)門(mén)硬件解碼芯片來(lái)解碼,如VCD播放機、MPEG-1解壓卡(可以插到386或者486電腦上用來(lái)播放VCD電影)。到了2000年左右,計算機的性能已經(jīng)可以播放DVD節目,這時(shí)涌現出不少優(yōu)秀的DVD播放軟件,可以在個(gè)人計算機上流暢地軟解碼DVD數據。這一時(shí)期軟解碼和硬解碼都非常流行。此后隨著(zhù)網(wǎng)絡(luò )的發(fā)展,網(wǎng)絡(luò )視頻發(fā)展迅猛。網(wǎng)絡(luò )視頻的壓縮格式多種多樣,如RM、VP8、MPEG4、H.264、WMV、MPEG2。由于格式的多樣,對于硬件實(shí)現來(lái)說(shuō),實(shí)現起來(lái)相對復雜,另外這一時(shí)期的網(wǎng)絡(luò )終端是個(gè)人電腦,其運算能力也足以解碼這些視頻內容,所以軟解碼的優(yōu)勢比較明顯。當下,ARM架構的通用CPU在移動(dòng)設備領(lǐng)域取得了X86架構在個(gè)人電腦領(lǐng)域那樣的地位。ARM架構的CPU主頻也可以達到1.5GHZ以上,同時(shí)雙核,四核甚至八核的CPU也得到了廣泛的應用,其運算能力早已達到或者超過(guò)了以前的PC。視頻軟解方案也大量出現在移動(dòng)設備中。
3.解碼流程以及軟硬解碼的區別
數字視頻軟解碼,是指視頻流數據完全通過(guò)通用CPU來(lái)實(shí)現播放。其大致流程如下:首先視頻播放軟件把視頻流文件從存儲介質(zhì)中讀取到內存中,然后通過(guò)一個(gè)封裝格式解析模塊,把文件中的視頻數據和音頻數據分開(kāi);接下來(lái)播放軟件負責把視頻數據傳送到視頻解碼模塊,音頻數據傳送到視頻解碼模塊;視頻解碼模塊也是一個(gè)運行在通用CPU上的純粹的軟件模塊,它利用復雜的算法,實(shí)現對視頻數據的解壓縮;解壓縮之后的數據被送到視頻顯示模塊,由顯示模塊驅動(dòng)硬件來(lái)顯示視頻內容。音頻數據的處理方式類(lèi)似。
數字視頻的硬解碼,則是在專(zhuān)用的解碼硬件模塊協(xié)助之下,CPU完成視頻流數據的播放。它的流程是:首先通用CPU負責把視頻流數據讀到內存中,有運行在通用CPU上的數據封裝格式解析模塊把數據中視頻和音頻分開(kāi),其中音頻數據被送到專(zhuān)用的硬件解碼模塊中去,由硬件解碼模塊負責把視頻數據解壓縮,把解壓縮出來(lái)的數據又送回通用CPU,由后者用解壓后的數據驅動(dòng)硬件實(shí)現視頻的顯示。而音頻可能是由通用CPU軟解碼,也可能有專(zhuān)門(mén)的硬件模塊來(lái)進(jìn)行音頻解碼。
從上述描述中可以看出,不管是硬件解碼或者軟件解碼,通用CPU的參與必不可少,通用CPU負責視頻流的播放流程。不同之處是極大運算量的解碼算法是在通過(guò)CPU中完成,還是在專(zhuān)用硬件解碼模塊中完成。
4.軟解碼和硬解碼的應用
目前壓縮視頻的軟解碼和硬解碼均廣泛存在,然而二者的應用領(lǐng)域和范圍有一定差別。
軟解碼主要在下列設備廣泛應用:
(1)個(gè)人計算機。目前個(gè)人計算機上的視頻全部是通過(guò)軟解碼的形式實(shí)現播放的,這個(gè)和個(gè)人應用以及網(wǎng)絡(luò )應用中,存在大量的壓縮格式有關(guān),同時(shí)也和目前個(gè)人計算機超強的計算能力密不可分。
(2)智能手機?,F在的智能手機芯片都具有很強的計算能力,同時(shí)也都有視頻硬件解碼模塊,但是硬件解碼模塊支持的視頻格式有限,同時(shí)受限于與之適配的專(zhuān)用播放軟件,所以智能手機在播放網(wǎng)絡(luò )視頻時(shí),大部分采用是軟解碼方式。
(3)平板電腦。平板電腦普遍采用與智能手機同樣的芯片組,同時(shí)使用方式也與智能手機類(lèi)似,所以在播放網(wǎng)絡(luò )視頻也主要采用軟解碼。
硬解碼主要應用于下列設備:
(1)智能手機和平板電腦,如前所述,這些設備存在視頻加速模塊,在播放本地高清文件時(shí),采用硬解碼的情形還是比較多的。
(2)機頂盒。早期的機頂盒基本上是一個(gè)MIPS架構的CPU+硬件解碼模塊。所以在這種設備上只存在硬解碼一種情形。不過(guò)最近比較新的機頂盒采用與智能手機相同檔次的芯片,但是基于成本考慮,大部分機頂盒還是采用硬解碼方案。不過(guò)隨著(zhù)芯片性能提升和價(jià)格的降低,機頂盒采用軟解碼的比例會(huì )慢慢提升。
(3)家用相機(攝像和回放功能)。具有攝像功能的相機,都具有回放功能,這些設備的視頻解碼都是應用硬解碼實(shí)現。
(4)視頻會(huì )議。視頻會(huì )議強調實(shí)時(shí)性,同時(shí)視頻編碼格式唯一,解碼一般是硬解碼
5.趨勢與展望
硬件解碼的存在是為了彌補通用CPU的運算能力的不足。隨著(zhù)通用CPU的運算能力的提升,原來(lái)在通用CPU上無(wú)法完成的解碼任務(wù),也逐漸可以完成,這時(shí)硬件解碼方案就顯得不太重要了。目前的智能手機芯片軟解碼MPEG-1,MPEG-2視頻數據非常流暢,部分手機軟解碼H.264視頻數據也很流暢,所以在智能手機領(lǐng)域用軟解碼方式也越來(lái)越普遍。但是這并不是說(shuō)明硬解碼方式會(huì )慢慢淡出,因為人們的視頻壓縮比,視頻解析度的需求也在不斷提升,這就要求設備有更強大的計算能力,在通用CPU無(wú)法滿(mǎn)足的情況下,硬件解碼模塊也是必不可少的。
去年H.265標準的推出帶來(lái)了硬件解碼與軟件解碼之間的一些爭論,爭論的焦點(diǎn)是在智能手機上到底H.265硬件解碼會(huì )占主流地位,還是軟件解碼占主流地位。
硬件解碼支持者認為,智能手機芯片計算能力支持H.265高清播放還比較勉強,只有用硬件解碼才能實(shí)現流暢的播放,從成本考慮不必僅僅為了支持H.265而對主芯片要求更高的性能。軟解碼支持者則從標準成熟度以及通用CPU的性能發(fā)展考慮,認為H.265作為一個(gè)比較新的標準,會(huì )經(jīng)過(guò)不斷的修訂,如果用硬件解碼方案,可能硬件無(wú)法隨著(zhù)修訂案不斷地更改,導致硬件無(wú)法解碼有關(guān)視頻,另外通用CPU的性能提升大致符合摩爾定律,性能提升很快。原來(lái)認為在A(yíng)RM架構下軟解碼H.265視頻是不太可能的事情,現在看來(lái)是可以實(shí)現的。用紅米手機(小米公司出品的一款低價(jià)的智能手機,采用MTK6589芯片,四核cotrtex-A71.5G)播放H.265壓縮格式的1080p的視頻,已經(jīng)非常流暢(播放軟件采用的是北京瑞普圖視科技有限公司開(kāi)發(fā)的H.265播放apk,視頻播放能到30fps以上)。目前高端手機普遍采用的是運算能力更強的高通驍龍800四核處理器,播放H.265視頻更是沒(méi)有問(wèn)題。
評論