鄒 濤 易 凡
摘 要:提出基于Intel PXA27X微處理器開發平臺,在Linux操作系統上實現MPEG-4編碼軟件設計。介紹了MPEG-4的視頻標準、編碼關鍵技術以及編碼軟件實現部分,并進行針對Intel PXA27X處理器軟件的優化和實際平臺的測試。測試結果表明作為商用PDA的MPEG-4編碼可以滿足用戶的對視頻的需求,其速度達到了20幀/s,且有較高的壓縮率,碼流比較平穩,并有較好的質量。
關鍵詞:MPEG-4;Intel PXA27X;優化;Linux
中圖分類號:TP368.2文獻標識碼:B
文章編號:1004 373X(2009)02 023 02
Implementation of MPEG-4 Encoder on the Intel PXA27X Embedded Platform
ZOU Tao,YI Fan
(School of Physics and Technology,Wuhan University,Wuhan,430072,China)
Abstract:The thesis introduces the software designed implementation of MPEG-4 encoder based on Intel PXA27Xmicroprocessor,in the Linux operating system.The MPEG-4 standard,MPEG-4 encoder key technologies and implementation of MPEG-4 encoder software are introduced.software optimization and test through Intel PXA27X processor are finished,results show the MPEG-4 encoder of commercial PDA can satify the user′s shot need,which reaches 20 frames/s,it has high compression,steady bitrate and good quality.
Keywords:MPEG-4;Intel PXA27X;optimization;Linux
0 引 言
隨著人們對消費類電子產品(如PDA,MP4,HDTV等)需求不斷增加,特別是對高質量高清晰多媒體的要求越來越高,因此視頻質量已經成為廣大消費者關注的焦點之一。在視頻的格式方面,一些國際組織和大公司分別提出了自己的標準,如ISO組織的MPEG-2,MPEG-4,微軟的WMV等。
針對Intel公司的PXA27X處理器(這是一個包含Intel Wireless MMX 技術基于Intel Xscale的處理器),以XVID MPEG-4為基礎,針對MPEG-4在Linux操作系統中實現視頻的編碼要求。在此首先介紹MPEG-4視頻標準,緊接著闡述MPEG-4視頻標準的關鍵技術和
MPEG-4視頻編碼軟件部分,最后還介紹了優化方法和實際平臺的測試。
1 MPEG-4是視頻標準
MPEG-4視頻部分是MPEG-4標準[1]的核心內容之一。既提供傳統的基于幀的編碼方法又提供基于視頻對象(VO)的編碼方法。在某一時刻,視頻對象以視頻對象平面(VOP )的形式出現,圖1所示為MPEG-4編碼的框架[1,2]。編碼也主要針對該時刻視頻對象的形狀、運動和紋理[1,2]這三類信息來進行。
2 MPEG-4視頻編碼關鍵技術
MPEG-4視頻基于VOP的編碼就是針對運動信息、形狀信息和紋理信息[3,4]等3種信息的編碼技術。
2.1 形狀編碼
MPEG-4首次引入形狀信息的編碼。VO的形狀信息有2類:二值形狀信息和灰度形狀信息。二值形狀信息用0,1表示VOP的形狀。二值信息的編碼采用基于塊的運動補償技術,可以無損或有損編碼。灰度形狀信息用0~255之間的數值表示VOP的透明程度。對灰度形狀信息的編碼是分別對二值形狀及像素亮度值進行編碼。目前對灰度形狀信息的編碼主要采用基于塊的運動補償與DCT方法,在不需要形狀信息的應用中(譬如基于規則矩形框幀的視頻編碼),形狀編碼會被屏蔽掉。這部分編碼是以宏塊為單位進行的。
2.2 運動估計與補償編碼
類似于現有的編碼標準,MPEG-4采用運動預測和運動補償技術來去除圖像信息中的時間冗余成分,這些運動信息的編碼技術可視為由現有標準向任意形狀的VOP的延伸。VOP的編碼有3種模式,即幀內編碼模式(I-VOP )、幀間預測編碼模式(P-VOP )和雙向預測編碼模式(B-VOP )。在MPEG-4中運動預測和運動補償可以是基于16×16宏塊的,也可以是基于8×8子塊的。為了能適應任意形狀的VOP,MPEG-4引入了圖像填充技術和多邊形匹配技術。圖像填充技術利用VOP內部的像素值外推VOP外的像素值,以此獲得運動預測的參考值。對于標準宏塊,采用傳統的基于塊的運動估計和補償技術。
2.3 紋理編碼
VOP視頻的紋理信息可以表示為亮度成分Y和兩個色度成分Cr,Cb。е∧詒嗦肭榭魷攏紋理信息包含有亮度和色度成分;運動補償情況下,紋理信息表示經過運動補償后的殘差。紋理編碼的對象可以是幀內編碼模式的I-VOP,也可以是幀間預測編碼模式B-VOP或P-VOP運動補償后的預測誤差。在幀內編碼模式中,對于完全在VOP內的像素塊,采用經典DCT方法。對于完全位于VOP之外的像素塊則不進行編碼:對于部分在VOP內,部分在VOP外的像素塊首先采用圖像填充技術獲得VOP之外的像素值,之后再進行DCT編碼。在幀間編碼模式中,為了對B-VOP和P-VOP運動補償后的預測誤差進行編碼,將那些位于VOP區域之外的像素值設為128。紋理編碼過程如圖1所示,DCT變換、量化、掃描及變長編碼,這些過程與現有標準基本相同。
3 MPEG-4是視頻編碼軟件
MPEG-4是軟件編碼是一個比較大的工程,項目用到的主要函數有:
mp4_encoder_init:初始化編碼的參數,如視頻大小尺寸、碼流、緩沖大小;
encode_MPEG-4:編碼調用的總函數,文本是基本層;
encode_pvop_MPEG-4 對P幀的VOP的編碼的總函數;
ippiBlockMatch_Integer_16x16_MVFAST:運動搜索MVFAST(Motion Vector Field Adaptive Search Technique)。
下面是幀間宏塊編碼的函數:
encode_inter_mb_MPEG-4
(1) lookup_uvmv_MPEG-4:查找色度圖像塊的運動矢量;
(2) ippiComputeTextureErrorBlock_SAD_8u16s:計算塊殘余的紋理誤差;
(3) encode_block_inter_MPEG-4:DCT變化和量化每塊的系數。這還得反變化,來重構下幀的參考幀;
(4) create_mb_MPEG-4:得到宏塊編碼的信息;
(5) ippiEncodeMV_MPEG-4_8u16s:運動矢量和紋理殘余的編碼;
(6) ippiEncodeVLCZigzag_Inter_MPEG-4_16s1u:zigzig掃描和變長編碼。
IPP的函數合理使用,可以提高性能。如ippiBlockMatch_Integer_16x16_MVFAST這個函數就比ippiMotionEstimation_16x16_MVFAST減少3倍時間。這個函數是占正個系統最多的時間之一。
4 MPEG-4是視頻編碼優化和結果
這里是針對Intel公司的PXA27X處理器,MPEG-4計算量復雜,特別是運動搜索,必須對其必要的優化[5-9],以滿足實時編碼的要求。編譯優化是靜態優化,優化編譯器可以自動完成程序段和代碼塊范圍內的優化問題,但由于對算法的流程很難獲取,所以人工優化是不必可少的。可使用內聯函數,Wireless MMX 指令編寫,如WLDRD 和WMACS,特別在對數據處理時,打包指令是必不可少的指令。合理分配指令周期流水線也是重點,如WLDRD需要4個周期,而WUNPCKEL只需要1個周期,使用IPP庫函數將大量節約開發時間和提高性能等,按照實際的工程的需要編寫指令。當然對算法的本身優化也不必可少,如運動搜索,運動補償算法,將這些函數優化運算時間大量減少。還有對數據搬移方面,如何有效應用硬件資源也將提高運行的性能,如DMA、緩存、寄存器等。
這里的試驗平臺是南望信息產業有限公司PDA,主頻可達624 MHz。視頻大小(480×272)透過大量的試驗,測試表明MPEG-4編碼可以滿足用戶拍視頻需求,速度可達到20幀/s,而且有較高的壓縮率,碼流比較低,質量也不錯。圖3,4為實際拍攝2幀圖像。
5 結 語
針對Intel公司的PXA27X微處理器開發平臺,在Linux操作系統中實現視頻編碼的功能。但是消費類產品對視頻的畫面有更高的要求,同時由于視頻編碼需要消耗大量的電源,電源的管理仍是視頻開發的研究重點。
參考文獻
[1] ISO IEC FDIS 14496-2.Information Technology-GenericCoding of Audio-Visual Objects Part.2001.
[2] Lain E G Richardson.H.264 and MPEG-4 Video Compression.Halsted Press,2003.
[3]夏良正.數字圖像處理[M].南京:東南大學出版社,1999.
[4]萬俊青.MPEG-4視頻編碼器算法研究及優化 [D].杭州:浙江大學,2005.
[5]Intel PXA27x Processor Family Optimization Guidel [S].2004.
[6]李英倫,杜旭.基于IntelXscale和嵌入式Linux的視頻模塊設計與開發[J].計算機工程與設計,2005,26(9):2 282-2 260.
[7]顧建軍,李文元.MPEG-4-SP在DSP上的優化分析[J].測控技術,2004(23):191-192.
[8]洪艷,楊斌.嵌入式手持設備設計及其基于IPP的優化[J].微計算機信息,2007(23):4-7.
[9]李英倫,杜旭.基于IntelXscale和嵌入式Linux的視頻模塊設計與開發[J].計算機工程與設計,2005,26(9):2 282-2 260.
[10]鐘玉琢,王琪,賀玉文.基于對象的多媒體數據壓縮編碼國際標準MPEG-4及其校驗模型[M].北京:科學出版社,2000.
作者簡介 鄒 濤 微電子與固體電子學碩士。主要研究方向為信息處理與微系統。