MPEG-4編碼器在Intel PXA27X平臺(tái)上的實(shí)現(xiàn)時(shí)間
這里是針對(duì)Intel公司的PXA27X處理器,MPEG一4計(jì)算量復(fù)雜,特別是運(yùn)動(dòng)搜索,必須對(duì)其必要的優(yōu)化,以滿(mǎn)足實(shí)時(shí)編碼的要求。編譯優(yōu)化是靜態(tài)優(yōu)化,優(yōu)化編譯器可以自動(dòng)完成程序段和代碼塊范圍內(nèi)的優(yōu)化問(wèn)題,但由于對(duì)算法的流程很難獲取,所以人工優(yōu)化是不必可少的??墒褂脙?nèi)聯(lián)函數(shù),Wireless MMX指令編寫(xiě),如WLDRD和WMACS,特別在對(duì)數(shù)據(jù)處理時(shí),打包指令是必不可少的指令。合理分配指令周期流水線也是重點(diǎn),如WLDRD需要4個(gè)周期,而WUN—PCKEL只需要1個(gè)周期,使用IPP庫(kù)函數(shù)將大量節(jié)約開(kāi)發(fā)時(shí)間和提高性能等,按照實(shí)際的工程的需要編寫(xiě)指令。當(dāng)然對(duì)算法的本身優(yōu)化也不必可少,如運(yùn)動(dòng)搜索,運(yùn)動(dòng)補(bǔ)償算法,將這些函數(shù)優(yōu)化運(yùn)算時(shí)間大量減少。還有對(duì)數(shù)據(jù)搬移方面,如何有效應(yīng)用硬件資源也將提高運(yùn)行的性能,如DMA、緩存、寄存器等。
這里的試驗(yàn)平臺(tái)是南望信息產(chǎn)業(yè)有限公司PDA,主頻可達(dá)624 MHz。視頻大小(480×272)透過(guò)大量的試驗(yàn),測(cè)試表明MPEG一4編碼可以滿(mǎn)足用戶(hù)拍視頻需求,速度可達(dá)到20幀/s,而且有較高的壓縮率,碼流比較低,質(zhì)量也不錯(cuò)。圖3,4為實(shí)際拍攝2幀圖像。
5 結(jié) 語(yǔ)
針對(duì)Intel公司的PXA27X微處理器開(kāi)發(fā)平臺(tái),在Linux操作系統(tǒng)中實(shí)現(xiàn)視頻編碼的功能。但是消費(fèi)類(lèi)產(chǎn)品對(duì)視頻的畫(huà)面有更高的要求,同時(shí)由于視頻編碼需要消耗大量的電源,電源的管理仍是視頻開(kāi)發(fā)的研究重點(diǎn)。
2 MPEG一4視頻編碼關(guān)鍵技術(shù)
MPEG一4視頻基于VOP的編碼就是針對(duì)運(yùn)動(dòng)信息、形狀信息和紋理信息等3種信息的編碼技術(shù)。
2.1 形狀編碼
MPEG一4首次引入形狀信息的編碼。VO的形狀信息有2類(lèi):二值形狀信息和灰度形狀信息。二值形狀信息用0,1表示VOP的形狀。二值信息的編碼采用基于塊的運(yùn)動(dòng)補(bǔ)償技術(shù),可以無(wú)損或有損編碼?;叶刃螤钚畔⒂?~255之間的數(shù)值表示VOP的透明程度。對(duì)灰度形狀信息的編碼是分別對(duì)二值形狀及像素亮度值進(jìn)行編碼。目前對(duì)灰度形狀信息的編碼主要采用基于塊的運(yùn)動(dòng)補(bǔ)償與DCT方法,在不需要形狀信息的應(yīng)用中(譬如基于規(guī)則矩形框幀的視頻編碼),形狀編碼會(huì)被屏蔽掉。這部分編碼是以宏塊為單位進(jìn)行的。
2.2 運(yùn)動(dòng)估計(jì)與補(bǔ)償編碼
類(lèi)似于現(xiàn)有的編碼標(biāo)準(zhǔn),MPEG一4采用運(yùn)動(dòng)預(yù)測(cè)和運(yùn)動(dòng)補(bǔ)償技術(shù)來(lái)去除圖像信息中的時(shí)間冗余成分,這些運(yùn)動(dòng)信息的編碼技術(shù)可視為由現(xiàn)有標(biāo)準(zhǔn)向任意形狀的VOP的延伸。VOP的編碼有3種模式,即幀內(nèi)編碼模式(I—VOP)、幀間預(yù)測(cè)編碼模式(P—VOP)和雙向預(yù)測(cè)編碼模式(B—VOP)。在MFEG一4中運(yùn)動(dòng)預(yù)測(cè)和運(yùn)動(dòng)補(bǔ)償可以是基于16×16宏塊的,也可以是基于8×8子塊的。為了能適應(yīng)任意形狀的VOP,MPEG一4引入了圖像填充技術(shù)和多邊形匹配技術(shù)。圖像填充技術(shù)利用VOP內(nèi)部的像素值外推VOP外的像素值,以此獲得運(yùn)動(dòng)預(yù)測(cè)的參考值。對(duì)于標(biāo)準(zhǔn)宏塊,采用傳統(tǒng)的基于塊的運(yùn)動(dòng)估計(jì)和補(bǔ)償技術(shù)。
2.3 紋理編碼
VOP視頻的紋理信息可以表示為亮度成分Y和兩個(gè)色度成分Cr,Cb。幀內(nèi)編碼情況下,紋理信息包含有亮度和色度成分;運(yùn)動(dòng)補(bǔ)償情況下,紋理信息表示經(jīng)過(guò)運(yùn)動(dòng)補(bǔ)償后的殘差。紋理編碼的對(duì)象可以是幀內(nèi)編碼模式的I—VOP,也可以是幀間預(yù)測(cè)編碼模式B—VOP或P—VOP運(yùn)動(dòng)補(bǔ)償后的預(yù)測(cè)誤差。在幀內(nèi)編碼模式中,對(duì)于完全在VOP內(nèi)的像素塊,采用經(jīng)典DCT方法。對(duì)于完全位于VOP之外的像素塊則不進(jìn)行編碼:對(duì)于部分在VOP內(nèi),部分在VOP外的像素塊首先采用圖像填充技術(shù)獲得VOP之外的像素值,之后再進(jìn)行DCT編碼。在幀間編碼模式中,為了對(duì)B—VOP和P—VOP運(yùn)動(dòng)補(bǔ)償后的預(yù)測(cè)誤差進(jìn)行編碼,將那些位于VOP區(qū)域之外的像素值設(shè)為128。紋理編碼過(guò)程如圖1所示,DCT變換、量化、掃描及變長(zhǎng)編碼,這些過(guò)程與現(xiàn)有標(biāo)準(zhǔn)基本相同。
評(píng)論