從視訊編碼標(biāo)準(zhǔn)來看移動多媒體應(yīng)用設(shè)計趨勢
從錄音帶、CD,到MP3、MPEG-4、H.264,消費者從單純的音樂欣賞,到移動視訊的要求,不僅層面愈來愈廣,也愈來愈注重視訊本身的質(zhì)量,而過去主流的單一功能視聽娛樂裝置。
如今也已經(jīng)被多媒體移動產(chǎn)品所取代,手機上也內(nèi)建愈來愈多、愈來愈強大的移動影音處理能力,當(dāng)初誰也不會想到,多媒體處理能力在移動應(yīng)用方面所占的重要性會如此之大。
移動影音的質(zhì)量方面開始逐漸被重視的現(xiàn)在,研發(fā)人員若仍采用過去的硬件設(shè)計架構(gòu),肯定逐漸有力不從心的感覺,為了遷就分辨率,勢必要犧牲流暢度;或者為了流暢度,畫質(zhì)就被降級!那么,沒有1個兩全其美的方法嗎?其實有的,但是這樣的產(chǎn)品在開發(fā)上,或制造成本考慮上,又有可能超出預(yù)期規(guī)劃,因此在面臨微利化的數(shù)字產(chǎn)品設(shè)計與銷售方面,想要面面俱到,其實是相當(dāng)困難的一件事。
視訊編譯碼應(yīng)用成為了移動多媒體設(shè)備的主要功能之后,相關(guān)設(shè)計方案也逐漸被提出,在廠商爭鳴的情況下,設(shè)計者可以輕易得到符合功耗、性能、功能等不同要求的產(chǎn)品架構(gòu),但是產(chǎn)品最終仍要以消費者的需求為依歸,因此慎選架構(gòu)幾乎就是決定1款產(chǎn)品的成敗關(guān)鍵。
△圖說:移動影音的需求已經(jīng)逐漸被重視。(www.iriver.com)
視訊編碼技術(shù)的重要地位
雖然說多媒體處理包含了聲音、影像以及視訊幾個部分,在嵌入式移動應(yīng)用方面,音效以及影像編譯碼幾乎都可以完全靠應(yīng)用處理器的通用運算來解決,然而視訊編譯碼卻無法單純以軟件方式進(jìn)行,會造成此種結(jié)果有下列幾個原因。
首先,音效的編譯碼標(biāo)準(zhǔn)變動非常小,且復(fù)雜度并不會隨著時間而增加,舉例來說,MP3規(guī)格是在1995年所發(fā)明,時至今日,雖然有其它訴求更高音質(zhì)或更高壓縮比的規(guī)格出現(xiàn),但無一能取代MP3,即便是不同音效壓縮規(guī)格,其編碼復(fù)雜度也相差不大,一般來說,音效的流量要比編碼壓縮規(guī)格本身對音效質(zhì)量的影響來得大,但是流量本身也不能無限上綱,畢竟聲音的分辨率只要高到一定的程度,人的耳朵就無法分辨非壓縮原音與壓縮后音效的差別。
而視訊方面就完全不是這么一回事了,人的眼睛相較起耳朵而言,是非常敏感且精細(xì)的器官,不論是對顏色,對分辨率或者是流暢度,都具有非常敏銳的辨別能力,視訊的壓縮要考慮的要素比之于音效要復(fù)雜上許多,以常見的NTSC視訊規(guī)范為例:NTSC(National Television Standard Committee)是眾所周知的522線制,其中480行被用于畫面表現(xiàn)上。如果現(xiàn)在將NTSC模擬訊號轉(zhuǎn)成數(shù)字化數(shù)據(jù),4:3的橫縱比率意味著每行有640個像素。如果以每張圖像640*480,那么一張24位的全彩NTSC位圖的大小為640 x 480 x 3Bytes = 921600Bytes,約0.9MB;另外,NTSC電視系統(tǒng)每秒顯示29.97張畫面,換句話說,當(dāng)電視訊號以數(shù)字化方式呈現(xiàn)時,每秒大約會有29.97 x 0.9MB = 26.973MB的數(shù)據(jù)流量。
如果想要在計算機上播放該視訊,計算機將需以每秒約27MB的速度將數(shù)據(jù)由儲存裝置讀取出來之后再顯示到屏幕上;另外每小時27MB x 3600 = 97200MB =97.2GB的視訊容量儲存需求是十分驚人的。如此龐大的數(shù)據(jù)儲存及傳輸量直到近幾年硬盤技術(shù)才追趕上這樣的需求。至于現(xiàn)在市面上已上市的數(shù)字化影音儲存裝置(CD、DAT、MD、VCD/DVD…等),若非傳輸速度不夠,便是儲存容量不足。由此可見,數(shù)字化的數(shù)據(jù)處理雖有其好處,然而對于多媒體數(shù)據(jù)來說,未經(jīng)壓縮處理的原始數(shù)據(jù)(Raw data),光是數(shù)據(jù)存儲便是極大的問題,而在架構(gòu)微縮,頻寬有限的移動裝置上,亦無法肩負(fù)起如此龐大的流量需求,因此必須借助各種有效的實時壓縮/解壓縮手段,借以節(jié)省儲存空間,并且大幅降低視訊串流所造成的頻寬沖擊。
視訊編碼標(biāo)準(zhǔn)的演進(jìn)
為了解決數(shù)字視訊儲存與傳輸?shù)膯栴},1992年制訂出了MPEG-1壓縮標(biāo)準(zhǔn),隨后則是MPEG-2,而到MPEG4出現(xiàn)后,真正移動影音的未來才逐漸明朗化。MPEG-4與之前的視訊編碼標(biāo)準(zhǔn)有著相當(dāng)大的不同,傳統(tǒng)的MPEG-1、MPEG-2等視訊壓縮技術(shù)中,壓縮方式是以1張張個別的影像畫面為主體來進(jìn)行壓縮。因此,整張影像畫面上的所有圖形與文字都采用相同的壓縮方式,產(chǎn)生出來的數(shù)據(jù)量也就比較大。MPEG-4則采用新一代的壓縮理念,將影像畫面上的文字、背景及圖形視為不同對象,并制定以對象為基礎(chǔ)的方式來壓縮影像畫面,借以達(dá)到最有效率的壓縮方式。
MPEG-1與MPEG-2的壓縮算法只是將視訊間的多余數(shù)據(jù)予以刪除,然而MPEG-4則提出不一樣的壓縮技術(shù),此技術(shù)稱為以內(nèi)容為基礎(chǔ)之視訊壓縮。MPEG-4的壓縮技術(shù)可依照需求,將視訊內(nèi)容分割成數(shù)個視訊對象平面,再將這些視訊對象平面分別編碼、儲存和傳送,之后再于譯碼端依不同的應(yīng)用來重組、刪減或是替換所需的視訊對象平面。
在此一概念中,我們將動態(tài)影像序列中的每1個場景,看成是由不同的視訊對象平面所組成。而同一對象的連續(xù)視訊對象平面,則稱為視訊對象。視訊對象可以是動態(tài)影像序列中的人物或景物,如電視新聞中的主播,也可以是電視畫面中的1輛汽車。對于輸入的動態(tài)影像序列,經(jīng)過分析后可將其分割成數(shù)個視訊對象,而每個視訊對象再對其中所組成的視訊對象平面進(jìn)行編碼。
視訊對象平面的編碼包括對運動(采用移動預(yù)測與補償)及紋理(采用數(shù)字離弦轉(zhuǎn)換編碼)的編碼,其基本原理則與MPEG-1、MPEG-2極為相似。
但因視訊對象平面可能是各種不同的形狀,因此,MPEG-4要求編碼時,必須處理視訊對象平面的形狀和其透明度等信息。這跟只能處理矩形影像序列的視訊編碼標(biāo)準(zhǔn)(MPEG-1與MPEG-2)則形成了鮮明的對照。
在MPEG-4中,矩形區(qū)塊可被認(rèn)為是視訊對象平面的1個特例,這時編碼系統(tǒng)不用處理視訊對象平面形狀信息,而以類似MPEG-1、MPEG-2的傳統(tǒng)編碼方法,來對矩形區(qū)塊的視訊對象平面進(jìn)行編碼,因此,MPEG-4能與現(xiàn)有標(biāo)準(zhǔn)(MPEG-1和MPEG-2)兼容。
MPEG-4標(biāo)準(zhǔn)衍生出許多標(biāo)準(zhǔn)與非標(biāo)準(zhǔn)的影音壓縮格式,目前最為熱門的H.264即為其中一例。H.264是ITU-T以H.26x系列為名稱命名的標(biāo)準(zhǔn)之一,同時AVC是ISO/IEC MPEG一方的稱呼。因此這個視訊壓縮標(biāo)準(zhǔn),通常被稱之為H.264/AVC (或者 AVC/H.264、H.264/MPEG-4 AVC及MPEG-4/H.264 AVC),明確的說明該標(biāo)準(zhǔn)出自兩方面的開發(fā)者。
該標(biāo)準(zhǔn)最早來自于ITU-T的稱之為H.26L的項目的開發(fā),H.26L這個名稱雖然不太常見,但是一直被使用著。有時候該標(biāo)準(zhǔn)也被稱之為"JVT 編譯碼器",這是由于該標(biāo)準(zhǔn)是由JVT組織并開發(fā)的(作為2個機構(gòu)合作開發(fā)同1個標(biāo)準(zhǔn)的事情并非空前,之前的視訊編碼標(biāo)準(zhǔn)MPEG-2也是由MPEG和ITU-T兩方合作開發(fā)的--因此MPEG-2在ITU-T的命名規(guī)范中被稱之為H.262)。
采用H.264是移動影音裝置的必走方向
H.264/AVC項目最初的目標(biāo)是希望新的編譯碼器能夠在比相對以前的視訊標(biāo)準(zhǔn)(比如MPEG-2或者H.263)低很多的流量(一半或者更少)下提供合理的視訊質(zhì)量;同時,盡可能減少復(fù)雜編碼工具的使用,因此使得硬件難以實現(xiàn)。另外1個目標(biāo)是可適應(yīng)性,即該編譯碼器能夠在1個很廣的范圍內(nèi)使用(比如說,既包含高碼率也包含低碼率,以及不同的視訊分辨率),并且能在各種網(wǎng)絡(luò)和系統(tǒng)上(比如電視、DVD儲存、RTP/IP封包網(wǎng)絡(luò)、ITU-T多媒體電話系統(tǒng))工作。以目前來看,H.264除了在高流量的應(yīng)用占有主要的地位以外,低流量的應(yīng)用更是發(fā)光發(fā)熱。
Youtube的在線視訊幾乎全數(shù)轉(zhuǎn)成H.264格式,而目前可播放視訊的移動裝置,也幾乎都以H.264為標(biāo)準(zhǔn)格式,畢竟H.264規(guī)范完整,目前有許多IC設(shè)計廠商都已經(jīng)針對H.264設(shè)計出幾乎可完全硬件化的解壓縮流程方案,相較起過去的軟件解壓縮方式,硬件化解壓縮除了有助于降低處理器負(fù)載,同時也能有效降低系統(tǒng)功耗。
至于其它在移動影音裝置上常見的視訊標(biāo)準(zhǔn)來看,就缺乏了完全以硬件進(jìn)行譯碼的方案,比如說網(wǎng)絡(luò)上流行的Divx、Xvid、Real等,都完全沒有硬件解壓縮方案出現(xiàn),很難在不影響系統(tǒng)本身功耗或工作負(fù)載的前提下,達(dá)到高質(zhì)量視訊的播放,因此不論從功耗方面、播放質(zhì)量方面,采用以上影音壓縮格式的產(chǎn)品其實都不甚出色。
微軟的VC1雖然在高畫質(zhì)影音也占有一席之地,但是在低流量應(yīng)用方面少之又少,如此也更確定了H.264確定了在高畫質(zhì)影音與移動影音的主流地位。
移動影音裝置的設(shè)計方向
先看看我們最常用的手機。現(xiàn)在的手機基本上采用1個ARM處理器加1個DSP的架構(gòu),由ARM處理器完成基頻處理工作,由DSP對數(shù)字化的射頻訊號進(jìn)行處理。也有一些處理器采用了2個ARM核心,如德州儀器的雙核心OMAP850處理器由2個不同的CPU組成,1個ARM926負(fù)責(zé)PDA功能,另1個ARM7負(fù)責(zé)GSM電話功能。有些手機的處理器采用了2個處理器加DSP的架構(gòu),2個處理器分別用做基頻處理器和應(yīng)用處理器,以便提供更好的影音編解碼處理能力。
△圖說:TI的OMAP850應(yīng)用處理器,多媒體性能不錯,但是通用計算性能相當(dāng)貧弱,采用此處理器的移動產(chǎn)品一般應(yīng)用程序響應(yīng)速度相當(dāng)遲緩。(www.TI.com)
為了更好地支持多媒體和娛樂功能,同時盡可能地降低功耗,有些廠商采用可配置處理器技術(shù),開發(fā)了音視訊處理芯片,如ATI公司的多媒體處理芯片上,就采用了2個Tensilica公司的Xtensa核心,該芯片用于摩托羅拉超薄的V3手機上。
再看看iPhone上發(fā)生的情況。iPhone的熱銷說明了這樣1個趨勢,將來的手機將成為手機終端、娛樂終端和網(wǎng)絡(luò)終端的綜合體。在正常的通話功能之外,手機還要具有娛樂和多媒體功能,支持MP3、MP4、H.264、VC1等多媒體標(biāo)準(zhǔn),支持移動電視、數(shù)字廣播、在線交易等各種無線業(yè)務(wù),支持Wi-Fi、WiMAX、藍(lán)牙等無線通信標(biāo)準(zhǔn),還要支持GPS這樣的功能,不但可以做導(dǎo)航之用,在意外發(fā)生時還能夠提供緊急的位置服務(wù)。
要保證這些功能的實現(xiàn),首先是要有足夠的處理能力?,F(xiàn)在的iPhone使用了5個ARM處理器,是把各個任務(wù)分解到多個處理器上。這樣做的結(jié)果是功能豐富了,但成本也提高了。如果能把多個處理器的功能整合到1個處理器中,無疑將顯著降低成本,也有助于降低功耗。將來不論是利用SoC方式將所有核心整合為單一芯片,或者是使用內(nèi)建更多、更強大處理單元的處理器,都是可參考的開發(fā)方向。
△圖說:iphone所內(nèi)建的處理器數(shù)目可說是目前手機之冠,其將多媒體能力列為主要賣點,也獲得了極大的成功。(www.apple.com)
至于在移動電視或者是諸如PMP等移動影音產(chǎn)品,通用運算的要求并不高,因此可以將眼光放在更節(jié)省功耗、以及具備更強大視訊譯碼能力的架構(gòu)設(shè)計上。以下提出幾種常見的硬件設(shè)計體系,可供應(yīng)用在具備多媒體視訊處理能力的各種移動裝置上:
■以SoC方式實現(xiàn),此亦可稱ASIC或ASSP,ASIC/ASSP內(nèi)會用上嵌入式的處理器(或控制器)核心,甚至是嵌入式的數(shù)字信號處理器(Digital Signal Processor;DSP),或硬件線路式的影音編譯碼核心。數(shù)字訊號處理器具備了相當(dāng)強大的向量數(shù)學(xué)運算處理能力,剛好可以切合視訊編譯碼的計算需求,而如果將部分通用的視訊編譯碼流程化為硬件線路,其它部分則以通用運算處理器或DSP來計算,其實也是相當(dāng)均衡的方式。
■使用多媒體處理器來實現(xiàn),例如NXP的TriMedia或者是Sigma Designs的Media Processor等,此類型的處理器多半具備VLIW架構(gòu),可加速多媒體視訊的運算。而NVIDIA的GoForce及ATI的Imageon也有類似的功效,不過這2款處理器都著重于視訊處理,不具備通用運算能力。
■使用雙處理器(或雙核)設(shè)計,除了使用1個通用(General)的32-bit微處理器(或微控制器)外,會再額外搭配1顆數(shù)字信號處理器,影音編解碼運算的部分就由DSP負(fù)責(zé),微處理器/微控制器(uP/uC)則負(fù)責(zé)一般性的控制工作及一般性的應(yīng)用程序執(zhí)行,TI的OMAP方案即是此中的代表。而ARM的MPCore也可視為解決方案之一,但是MPCore僅具備通用處理能力,要具備更有效或更高畫質(zhì)的多媒體編譯碼能力,建議整合第3方,如ARC的多媒體串流處理單元,或者是在移動裝置上內(nèi)建諸如NVIDIA GoForce等獨立處理芯片。
■一樣使用1個通用的32-bit微處理器、微控制器,但另1個搭配芯片則是1個已將音視訊編譯碼運算加以硬件線路化的編譯碼芯片,此一般稱為CODEC芯片,如果只考慮播放功能,則只需要譯碼運算硬件線路化的芯片,此稱為譯碼芯片(Decoder);如果在播放外也希望能拍照、錄像,那么就必須用上「編譯碼芯片,CODEC」。這樣的方式可達(dá)到相當(dāng)高的功耗控制能力,但是缺乏可程序化能力,也不具備新增支持未來新視訊標(biāo)準(zhǔn)的能力。
■只使用單純的通用嵌入式處理器、微控制器芯片,所有的多媒體編譯碼運算一律以軟件方式實現(xiàn),這種方式彈性最高,但是程序撰寫與最佳化更為復(fù)雜,而且通用處理器在功耗表現(xiàn)上,往往不如一般特定用途的加速器(如DSP或VLIW處理單元)。因此要使用這類處理器,首先要考慮到處理器本身是否有針對特定多媒體應(yīng)用設(shè)計的指令集或處理單元,否則將難以負(fù)擔(dān)未來逐漸走向高質(zhì)量的移動影音解碼需求。
評論