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