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