摘 要:本文主要研究MPEG-4算法進行移植、測試、優化,分別針對PC機、OMAP3530 單ARM核工作、OMAP3530雙核協同工作等狀態下視頻處理性能進行測評。
關鍵詞:OMAP;MPEG-4算法視頻處理
1 引言
OMAP是一款面向多操作系統(包括PalmOS5.0,PocketPC2002和通信領域的Symbian)的高性能低功耗處理器。它集成了包括一個數字協處理器在內的多媒體單元,并且加入和GSM/GPRS接口和藍牙無線協議等一些當前的高級功能。由于其較低的主頻150Mhz和廣泛的支持性能,OMAP獲得了Palm公司的認可,成為了其下Palm OS5產品的標準處理器。而其中的OMAP3530是TI公司推出的面向移動網絡多媒體信號處理的雙核處理器,片內集成了ARM Cortex-A8和TMS320C64+處理器。
數字視頻編碼在諸如數字視頻監控系統與視頻會議系統等眾多應用中發揮著重要作用。本文將對以TMS320C64x DSP為基礎的通用視頻編碼器優化技術進行介紹。基于DM64x的視頻編碼優化結合了多種技術,其中包括算法/系統優化、存儲器緩沖優化、EDMA及高速緩存利用率優化等。TMS320C64x器件建立在德州儀器(TI)開發的第二代高性能VLIW架構(VelociTI.2)基礎之上。該器件具有VLIW架構、2級存儲器/高速緩存層次結構以及EDMA引擎等關鍵特性,從而使其成為計算強度較大的視頻/影像應用(如視頻編碼與分析)的最佳選擇之一。利用DM64x進行應用開發時,需要全面了解其特性與開銷以實現最佳性能。
2 研究內容
本設計在OMAP3530硬件平臺進行數字視頻應用設計。主要內容是對MPEG-4算法進行移植、測試、優化,分別針對PC機、OMAP3530 單ARM核工作、OMAP3530雙核協同工作等狀態下視頻處理性能進行測評,其中雙核協同工作部分應與同組同學共同設計,通過基于XDM的ARM和DSP交互驅動進行編程開發。
在完成上述基本工作的基礎上可進一步設計基于MPEG-4和Qtopia圖形界面的網絡視頻通信。開發的最終希望能夠實現一個基于OMAP3530的視頻處理設備,可以高速地對視頻進行MPEG-4的編碼解碼和播放功能。
下面以TMS320C64為例在此列出其所有DSP關鍵特性:
1. 增強功能單元
TMS320C64x的8個功能單元中的VelociTI.2擴展包括加速視頻與影像應用性能的新指令。
2. L1/L2分級存儲器結構
16KB直接映射的L1P程序高速緩存,帶有32字節的高速緩存管線(8周期L1P高速緩存缺失損失)。
16KB雙路關聯L1D數據高速緩存,帶有64字節的高速緩存管線(6循環L1D高速緩存缺失損失)。
256KBL2統一映射RAM/高速緩存(靈活的RAM/緩存分配)
L2四路關聯高速緩存,帶有128字節的高速緩存管線。
3. 位優先原則:低位優先(Little Endian),高位優先(Big Endian)。
4.64位外部存儲器接口(EMIF):至異步與異步存儲器的無膠合邏輯接口。
5.1024MB總的可尋址外部存儲器空間。
6.增強型直接存儲器存取(EDMA)控制器(64個獨立通道)。
片上外設集包括:三個可配置的視頻端口,一個10/100Mbps以太網MAC(EMAC),一個管理數據輸入/輸出(MDIO)模塊,一個VCXO內插控制端口(VIC)。視頻端口外設提供與通用視頻解碼器和編碼器相連的無縫接口,以支持多種視頻分辨率及標準,如ITU-BT.656、BT.1120、SMPTE125M/260M/274M/296M等。
上面的功能特性對包括視頻編碼在內的所有算法的執行都相當重要。二級存儲器/高速緩存分級結構與EDMA引擎基本決定了視頻編碼器實現的架構。在算法實現過程中,我們需要弄清一些有關存儲器/高速緩存層次結構以及EDMA引擎的基本概念。如果代碼大于L1P,就可能發生L1P高速緩存缺失,CPU停止運行至到讀取到所需代碼。類似地,如果數據與L1D不符,就會出現L1D高速緩存缺失并且CPU停止運行。所有的L1P與L1D缺失問題均由L2高速緩存/SRAM來解決。如果代碼與數據的大小均大于L2高速緩存的容量,那么就可能出現L2高速緩存缺失。與L1P/L1D高速緩存缺失損失相比,L2缺失損失通常更嚴重,因為L2高速緩存需要與速度較低的片外存儲器相互傳遞數據/代碼。
確保視頻編碼器最佳性能的兩大重要因素是進行有利于高速緩存的程序分區(program partitioning)以及數據傳輸處理(如減少L1/L2缺失)。盡管L2 SRAM可用于解決L1D/L1P缺失問題,我們通常還是更傾向于采用EDMA來傳輸L2 SRAM與片外存儲器之間的代碼/數據,因為EDMA的傳輸效率通常高于L2高速緩存。
3 實現方法及預期目標
圖1給出了通用視頻編碼算法結構圖,MPEG2、H.263及MPEG4等許多視頻編碼標準都可從該算法結構圖衍生而來。在圖1中,DCT與量化(Q)去除了視頻的空間冗余;運動估計(ME)降低了視頻的時間冗余;VLC進行熵編碼(entropycoding),以將數據有效地進行分組。
通常,視頻編碼器的實現是以宏模塊(MB)為基礎。這就是說,只有在當前MB完成所有處理步驟后,視頻編碼器才讀取下一個MB。這種靠直覺進行操作的方法存在兩大缺點:
1.視頻編碼器的整體代碼尺寸通常大于L1P。在每個MB讀取階段,代碼都需要在L1P和L2P之間進行交換,這會造成嚴重的高速緩存缺失問題。endprint
2.用EDMA從外部視頻幀存儲器向內部存儲器傳輸小塊數據(如一個MB)的效率不高。
為了避免造成大量高速緩存缺失損失和CPU停止響應問題,我們可將算法分為三個小循環/模塊,每部分都能在L1P中容下。每個循環中每次同時操作M個宏模塊(MB串),而不是只操作一個宏模塊。M是宏模塊串的大小,只受可用L1D大小的限制。M越大,就能獲得的越高的EDMA數據吞吐量性能。
正如上面強調指出的那樣,每次都讀取M個宏模塊,一起經過三個環路中的一個來處理。舉例來說,在宏模塊編碼循環中,如果將M個宏模塊讀入內部存儲器,那么將對其進行DCT轉換、量化以及熵編碼。只有當宏模塊編碼環路結束時,這一組宏模塊才離開L1D。相應的程序包括DCT、量化以及VLC內核,其會在所有M個宏模塊在L1P中完全處理之后才脫離該環路。EDMA引擎驅動的乒乓存儲器緩沖方案有助于減少執行一組宏模塊時環路初始的設置時間,同時還可確保最小化的CPU停止周期,這是由于傳輸與處理并行進行的原因。
當測試通過時將所編好的程序進行從PC機向OMAP3530嵌入式開發板的移植工作。這里需要先對OMAP3530嵌入式開發板有一個熟悉的過程,對于該開發板有一個基本的掌握。然后將程序移植入OMAP3530嵌入式開發板中以進行調試與運行測試。
最后,將程序進行修改,以實現OMAP3530雙核協同工作等狀態下視頻處理。
這里面的重點有兩個,首先是MPEG-4算法的研究,如果沒有對MPEG-4編碼、解碼算法應用方法的正確理解是無法完成測速任務的,更不可能完成實現雙核協同工作的任務。另一個是OMAP3530嵌入式開發板在使用前的原理理解還有對配置與應用的掌握。這一步走的好壞與否輕則將直接影響到開發的進度,重則影響到最后一項結果的實現。
參考文獻
[1]徐鵬,鄒浩斌.達芬奇技術簡化數字視頻設計:[博士論文].廣州:華南理工大學,2006
[2]周軍,徐衛,劉廣存,蔡慶安.基于達芬奇技術的H.264視頻編碼器的實現:[博士論文].廣州:華南理工大學,2007
[3]趙勇,袁譽樂,丁銳.DAVINC技術原理與應用指南[M].南京:東南大學出版社,2008:93-121
[4]鐘玉啄王琪賀玉文.基于對象的多媒體數據壓縮編碼國際標準MPEG-4及其校驗模型[M].北京:科學出版社,2000
作者簡介
宮曉梅(1976-),女,內蒙古赤峰,漢族,碩士,副教授,研究方向:計算機信息技術,通信技術。endprint