MPEG-4編碼器在Intel PXA27X平臺上的實(shí)現(xiàn)時間
隨著人們對消費(fèi)類電子產(chǎn)品(如PDA,MP4,HDTV等)需求不斷增加,特別是對高質(zhì)量高清晰多媒體的要求越來越高,因此視頻質(zhì)量已經(jīng)成為廣大消費(fèi)者關(guān)注的焦點(diǎn)之一。在視頻的格式方面,一些國際組織和大公司分別提出了自己的標(biāo)準(zhǔn),如ISO組織的MPEG一2,MPEG一4,微軟的WMV等。
針對Intel公司的PXA27X處理器(這是一個包含Intel Wireless MMX技術(shù)基于Intel Xscale的處理器),以XVID MPEG一4為基礎(chǔ),針對MPEG一4在Linux操作系統(tǒng)中實(shí)現(xiàn)視頻的編碼要求。在此首先介紹MPEG一4視頻標(biāo)準(zhǔn),緊接著闡述MPEG-4視頻標(biāo)準(zhǔn)的關(guān)鍵技術(shù)和MPEG一4視頻編碼軟件部分,最后還介紹了優(yōu)化方法和實(shí)際平臺的測試。
l MPEG一4是視頻標(biāo)準(zhǔn)
MPEG一4視頻部分是MPEG一4標(biāo)準(zhǔn)的核心內(nèi)容之一。既提供傳統(tǒng)的基于幀的編碼方法又提供基于視頻對象(VO)的編碼方法。在某一時刻,視頻對象以視頻對象平面(VOP)的形式出現(xiàn),圖1所示為MPEG一4編碼的框架。編碼也主要針對該時刻視頻對象的形狀、運(yùn)動和紋理這三類信息來進(jìn)行。
3 MPEG一4是視頻編碼軟件
MPEG一4是軟件編碼是一個比較大的工程,項(xiàng)目用到的主要函數(shù)有:
mp4_encoder_init:初始化編碼的參數(shù),如視頻大小尺寸、碼流、緩沖大?。?
encode_MPEG一4:編碼調(diào)用的總函數(shù),文本是基本層;
encode_pvop_MPEG一4對P幀的VOP的編碼的總函數(shù);
i ppiBlockMatcn_Imeger_16x16_MVFAST:運(yùn)動搜索MVFAST(Motion Vector Field AdaDtive Search Technique)。
下面是幀間宏塊編碼的函數(shù):
encode_inter_mb_MPEG一4
(1)lookup_uvmv_MPEG一4:查找色度圖像塊的運(yùn)動矢量;
(2)ippiComputeTextureErrorBlock_SAD_8u16s:計(jì)算塊殘余的紋理誤差;
(3)encode_block_inter_MPEG一4:DCT變化和量化每塊的系數(shù)。這還得反變化,來重構(gòu)下幀的 參考幀;
(4)create_mb_MPEG一4:得到宏塊編碼的信息;
(5)ippiEncodeMV_MPEG一4_8u16s:運(yùn)動矢量和紋理殘余的編碼;
(6)ippiEncodeVLCZigzag_Inter_MPEG一4_16slu:zigzig掃描和變長編碼。
IPP的函數(shù)合理使用,可以提高性能。如ip—piBlockMatch_InIeger_16x16_MVFAST這個函數(shù)就比ippiMotionEstimation_16x16_MVFAST減少3倍時間。這個函數(shù)是占正個系統(tǒng)最多的時間之一。
評論