視頻播放設(shè)備的設(shè)計(jì)需符合娛樂(lè)類(lèi)規(guī)范
在不遠(yuǎn)的將來(lái),現(xiàn)代家庭的客廳都將配備具有IPTV功能的數(shù)字電視、高清電視(HDTV)機(jī)頂盒和高清視頻光盤(pán)播放機(jī)。移動(dòng)設(shè)備中也將越來(lái)越多地增加娛樂(lè)媒體回放功能。很快,所有設(shè)備都將能播放專(zhuān)業(yè)制作的娛樂(lè)內(nèi)容。
支持視頻播放的下一代家庭與便攜設(shè)備的設(shè)計(jì)者在考慮他們以后的SOC設(shè)計(jì)架構(gòu)時(shí)必須清楚什么對(duì)此類(lèi)設(shè)備消費(fèi)者來(lái)說(shuō)才是最重要的。現(xiàn)在有很多IP供應(yīng)商提供可集成進(jìn)SOC的視頻處理器內(nèi)核或硬件模塊。在評(píng)估這些內(nèi)核和模塊時(shí),設(shè)計(jì)師必須清楚市場(chǎng)在支持各種視頻標(biāo)準(zhǔn)方面的發(fā)展動(dòng)向。
多種不同的視頻標(biāo)準(zhǔn)
盡管H.264已成為未來(lái)系統(tǒng)與設(shè)備的全球性?xún)?yōu)秀視頻編碼標(biāo)準(zhǔn),但仍有越來(lái)越多的標(biāo)準(zhǔn)在被人們采用。例如,下一代視頻光盤(pán)和DTV標(biāo)準(zhǔn)要求采用Windows Media Video 9或SMPTE VC-1編碼;有些IPTV系統(tǒng)采用MPEG-4及類(lèi)似編碼;很多系統(tǒng)出于兼容目的仍要求采用MPEG-2編解碼;實(shí)時(shí)雙向視頻會(huì)議系統(tǒng)仍廣泛采用H.263標(biāo)準(zhǔn);中國(guó)的國(guó)家廣播則主要采用AVS編碼標(biāo)準(zhǔn)。
不同類(lèi)型的設(shè)備對(duì)編解碼性能的要求也不盡相同。例如,機(jī)頂盒只需解碼高質(zhì)量的視頻信號(hào),而視頻會(huì)議設(shè)備則必須同時(shí)進(jìn)行實(shí)時(shí)的視頻編解碼。電池供電的設(shè)備要求低功耗,而裝備有移動(dòng)天線的設(shè)備則需要特別強(qiáng)的比特流糾錯(cuò)能力。
由于許多編碼標(biāo)準(zhǔn)又根據(jù)采用的編碼技術(shù)對(duì)哪些應(yīng)用和設(shè)備有益而細(xì)分為不同的規(guī)范,這就讓視頻處理世界變得更加復(fù)雜。通常,適用于雙向通信類(lèi)的規(guī)范要求具備實(shí)時(shí)編碼能力但只需進(jìn)行低復(fù)雜度的糾錯(cuò),而用于專(zhuān)業(yè)娛樂(lè)視頻編碼的規(guī)范則要求更高壓縮率和更低解碼成本。表1所示為主要壓縮標(biāo)準(zhǔn)的實(shí)時(shí)應(yīng)用類(lèi)規(guī)范和娛樂(lè)應(yīng)用類(lèi)規(guī)范。
對(duì)于將來(lái)的視頻設(shè)備甚至移動(dòng)設(shè)備,能解碼H.264主規(guī)范(Main Profile)之類(lèi)的娛樂(lè)視頻規(guī)范是很重要的。例如,手持式設(shè)備中的全功能DVB-H解碼器必須同時(shí)支持H.264基本規(guī)范(Baseline)和主規(guī)范(Main Profile)。終端用戶(hù)產(chǎn)品要在市場(chǎng)中取得成功,必須支持恰當(dāng)?shù)慕獯a規(guī)范。
早期RCA Lyra便攜式媒體播放機(jī)的購(gòu)買(mǎi)者就曾因?yàn)榘l(fā)現(xiàn)它無(wú)法播放任何帶B幀編碼的視頻而大感失望。B幀雖然提高了壓縮率,但要實(shí)現(xiàn)實(shí)時(shí)編碼則很困難,因此只有部分娛樂(lè)類(lèi)規(guī)范使用它。Lyra播放機(jī)的這一缺點(diǎn)導(dǎo)致用戶(hù)從因特網(wǎng)上下載的大部分視頻都無(wú)法觀看。這種功能上的不足在競(jìng)爭(zhēng)日益激烈的消費(fèi)品市場(chǎng)迅速導(dǎo)致了一個(gè)視頻播放機(jī)產(chǎn)品線的消亡。Lyra的失敗為Archos公司的產(chǎn)品 stellar的成功讓出了道路。
要處理多樣化的編碼標(biāo)準(zhǔn)和規(guī)范,需要多格式的可編程視頻處理器。消費(fèi)者對(duì)娛樂(lè)和通信的要求刺激了芯片制造商采用既能處理娛樂(lè)類(lèi)規(guī)范也能處理實(shí)時(shí)類(lèi)規(guī)范的可編程視頻處理器。一般認(rèn)為硬連線的視頻模塊面積更小,但當(dāng)同時(shí)需要多種模塊以滿(mǎn)足多種標(biāo)準(zhǔn)時(shí),整個(gè)視頻功能模塊的面積就可能比采用處理器實(shí)現(xiàn)時(shí)占用的面積大得多。而且硬連線的視頻模塊在應(yīng)付這些不斷發(fā)展的視頻標(biāo)準(zhǔn)中的各種變化時(shí)也不夠靈活。因此,現(xiàn)在絕大部分芯片設(shè)計(jì)師都只會(huì)考慮采用可編程視頻處理器。
表1:實(shí)現(xiàn)壓縮標(biāo)準(zhǔn)中不同部分的各個(gè)規(guī)范。
關(guān)鍵是能高效地處理各種標(biāo)準(zhǔn)
然而,僅僅因?yàn)橐粋€(gè)處理器能夠編程并不意味它就能高效地處理每一種標(biāo)準(zhǔn)。通用嵌入式CPU若用于處理視頻流則顯得配置不足,僅解碼一段低質(zhì)量的視頻就不得不以極高的主頻運(yùn)行。因此,這種方案對(duì)便攜式設(shè)備而言能效比太低。相反,專(zhuān)用視頻處理器中集成有專(zhuān)用指令集,可以利用SIMD(單指令多數(shù)據(jù))技術(shù)進(jìn)行像素?cái)?shù)據(jù)的并行處理或利用特殊指令進(jìn)行視頻數(shù)據(jù)的串行處理(例如熵解碼、運(yùn)動(dòng)向量預(yù)測(cè)等)。在設(shè)計(jì)Diamond 388VDO標(biāo)準(zhǔn)視頻引擎時(shí),Tensilica公司在標(biāo)準(zhǔn)32-bit RISC指令集之外還增加了很多視頻專(zhuān)用的指令集以?xún)?yōu)化引擎的視頻處理能力。
要實(shí)現(xiàn)用于H.264 主規(guī)范的處理器尤其困難。H.264主規(guī)范采用了比特流無(wú)損熵編碼中基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)方法。要從CABAC比特流中解碼每個(gè)二進(jìn)制元素(稱(chēng)為bin)需要依賴(lài)于前一bin的完全解碼結(jié)果,每個(gè)bin都對(duì)解碼器的狀態(tài)有很大影響。有兩種嵌入式處理器能?chē)?yán)格用軟件實(shí)現(xiàn)實(shí)時(shí)CABAC解碼:菲利普半導(dǎo)體(NXP)的Trimedia和Tensilic Diamond 388VDO。全軟件CABAC解碼這種方法經(jīng)證實(shí)有一大優(yōu)點(diǎn),那就是在高比特率工作情況下能夠達(dá)到最高效的性能。
Tensilica能夠使用指令集擴(kuò)展實(shí)現(xiàn)全軟件的熵解碼,因而能創(chuàng)建出可處理復(fù)雜比特流的低時(shí)鐘速率、高能效視頻處理器。例如,Tensilica能以?xún)H162 MHz的時(shí)鐘速率實(shí)現(xiàn)對(duì)一個(gè)5 Mbps比特流的所有D1 Main profile解碼。
與此類(lèi)似,H.264 Main profile支持B幀和交織式視頻內(nèi)容,而這兩項(xiàng)功能會(huì)給經(jīng)驗(yàn)不足的視頻處理器和編解碼器開(kāi)發(fā)人員帶來(lái)很大困難。解決視頻編解碼器難題最簡(jiǎn)單的方法就是增大DRAM存儲(chǔ)器帶寬。這種方法在高端PC機(jī)上沒(méi)有問(wèn)題,但用在嵌入式系統(tǒng)中就不現(xiàn)實(shí)了。由于受功耗和成本限制,嵌入式系統(tǒng)無(wú)法承受這樣的DRAM帶寬浪費(fèi)。
圖1所示為T(mén)ensilica Diamond388VDO標(biāo)準(zhǔn)視頻引擎的框圖。其中包含兩個(gè)Tensilica Xtensa可配置處理器和一個(gè)DMA控制器,可最大限度發(fā)揮視頻壓縮解壓算法固有的并行性。Diamond 388VDO內(nèi)核中的流處理器和像素處理器共同分擔(dān)視頻壓縮任務(wù),DMA控制器則負(fù)責(zé)在處理器內(nèi)核內(nèi)外和兩個(gè)處理器之間傳送壓縮前后的圖象。Diamond 388VDO視頻引擎中的每個(gè)處理器都有自己的指令集和數(shù)據(jù)RAM。
圖1:Tensilica的 Diamond388VDO視頻引擎框圖。
Diamond視頻引擎內(nèi)核中的這兩個(gè)處理器都采用了Tensilica的可配置Xtensa處理器架構(gòu)。流處理器通過(guò)增加額外指令集來(lái)完成比特流解析和熵編碼。這些新指令中一部分基于Tensilica的FLIX(可變長(zhǎng)度指令擴(kuò)展),并采用每條指令執(zhí)行兩次獨(dú)立操作的VLIW指令格式。像素處理器中也增加了可同時(shí)操作多個(gè)像素的SIMD(單指令多數(shù)據(jù))指令。
流處理器和像素處理器中添加的指令使Diamond視頻引擎能夠在時(shí)鐘速率低于200MHz時(shí)以標(biāo)準(zhǔn)顯示分辨率(SD或D1)和30幀/秒的速度編碼MPEG-4 ASP(Advanced Simple Profile)比特流或解碼H.264/AVC MP(Main Profile)、MPEG-4 ASP、MPEG-2 MP、和VC-1/WMV 9 MP視頻比特流。低時(shí)鐘速率通常意味著低功耗,該引擎之所以選擇200-MHz的時(shí)鐘速率是因?yàn)樵撘婵梢圆捎闷胀ǖ牡统杀?30nm IC加工工藝制造。
圖2所示為Diamond視頻引擎在解碼H.264/AVC視頻數(shù)據(jù)流時(shí)內(nèi)部的任務(wù)分配情況。流處理器用于完成比特流解析(包括分離網(wǎng)絡(luò)抽象層、圖象層和片層)和熵解碼。像素處理器則用于完成反向量化、反向變換編碼、幀內(nèi)預(yù)測(cè)、運(yùn)動(dòng)補(bǔ)償和圖像解塊處理。流處理器也可輔助像素處理器進(jìn)行運(yùn)動(dòng)補(bǔ)償。
圖2:Diamond 388VDO視頻引擎在進(jìn)行H.264/AVC解碼時(shí)的內(nèi)部任務(wù)分配情況。
需要注意的是,在一塊處理器上運(yùn)行所有這些解碼任務(wù)其實(shí)是可能的,但這需要高得多的時(shí)鐘速率,而時(shí)鐘速率高意味著需要采用更加昂貴的工藝技術(shù)。為了盡可能減小電池供電的便攜式視頻產(chǎn)品的功耗,Diamond 388VDO視頻引擎即使在解碼標(biāo)準(zhǔn)分辨率的視頻時(shí)都保持很低的時(shí)鐘速率,從而最大限度減小了功耗。
所有視頻解碼任務(wù)都應(yīng)在處理器外完成
在評(píng)估不同的視頻處理器性能時(shí),很重要的一點(diǎn)就是檢查并確保系統(tǒng)主CPU的處理器內(nèi)核無(wú)需承擔(dān)任何視頻解碼任務(wù),包括所有比特流解析任務(wù)。傳統(tǒng)視頻處理器,例如Hantro出產(chǎn)的處理器,只將運(yùn)動(dòng)估計(jì)之類(lèi)的像素處理功能挪至主CPU外完成,而給系統(tǒng)控制器留下了運(yùn)算量很大的一部分任務(wù)。這些開(kāi)銷(xiāo)可能要求SOC設(shè)計(jì)師采用更加龐大也更耗電的系統(tǒng)控制器,這在便攜式設(shè)備的設(shè)計(jì)中是需要付出昂貴代價(jià)的。
研究一下業(yè)界領(lǐng)先的家用和手持嵌入式視頻設(shè)備,我們會(huì)發(fā)現(xiàn)最好的視頻處理器是那些以高比特率和低內(nèi)存帶寬處理娛樂(lè)類(lèi)數(shù)據(jù)的處理器。只有深刻理解各種視頻規(guī)范,并清楚哪些規(guī)范需要利用下一代設(shè)備來(lái)實(shí)現(xiàn),SOC架構(gòu)師們才能正確評(píng)估不同IP廠商提供的產(chǎn)品。
評(píng)論