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