基于ARM的MPEG4視頻解碼器
,通過本文所總結(jié)的ARM7TDMI上視頻解碼的優(yōu)化方法,可以使MPEG4視頻解碼節(jié)約大量的數(shù)據(jù)處理時(shí)間。由實(shí)驗(yàn)結(jié)果可見,本視頻解碼器能較好地滿足低分辨率、低幀率場(chǎng)合實(shí)時(shí)解碼的要求。 4 MPEG4視頻解碼的嵌入式系統(tǒng)實(shí)現(xiàn) 實(shí)現(xiàn)本解碼器的主要硬件平臺(tái)是Easy ARM2200,如圖5所示。它是一款功能強(qiáng)大的32位ARM單片機(jī)開發(fā)板,采用了Philips公司的ARM7TDMIS核,以及總線開放的單片機(jī)LPC2210,具有JTAG調(diào)試功能。 圖5 Easy ARM2200開發(fā)板 開發(fā)板上除了提供鍵盤、LED和RS232等一些常用功能部件外,還具有4Mb SRAM、16Mb FLASH、IDE硬盤接口、CF存儲(chǔ)卡接口、以太網(wǎng)接口和Modem接口等。 本文選擇在μClinux操作系統(tǒng)上調(diào)試MPEG4解碼程序。調(diào)試過程分為以下幾個(gè)步驟: 圖6 為一個(gè)基于μClinux的嵌入式系統(tǒng)典型框架結(jié)構(gòu)圖。 圖6 基于μClinux嵌入式系統(tǒng)框圖 (1) 建立μClinux開發(fā)環(huán)境 為了實(shí)現(xiàn)基于μClinux的應(yīng)用系統(tǒng)的開發(fā),建立或擁有一個(gè)完備的μClinux開發(fā)環(huán)境是十分必要的。建立μClinux開發(fā)環(huán)境主要包括以下3個(gè)步驟: 在完成上述所有工作后,一個(gè)嵌入式應(yīng)用開發(fā)平臺(tái)就已經(jīng)搭建好了。在這個(gè)平臺(tái)之上,可以根據(jù)不同需要開發(fā)嵌入式應(yīng)用。 (2) 在μClinux下開發(fā)應(yīng)用程序 基于μClinux系統(tǒng)的應(yīng)用程序的開發(fā),通常是在標(biāo)準(zhǔn)Linux平臺(tái)上用交叉編譯工具armelfgcc來完成的。ADS和armelfgcc都是ARM公司提供的軟件開發(fā)工具,它們都支持ARM指令集,但部分偽指令集不同。因此為了將在ADS1.2環(huán)境下優(yōu)化好的源代碼移植到armelfgcc環(huán)境下,就需要對(duì)源代碼的偽指令作修改, 然后用armelfgcc編譯源文件,以生成可在目標(biāo)板上運(yùn)行的可執(zhí)行程序。 (3) 添加應(yīng)用程序到目標(biāo)系統(tǒng)并調(diào)試 要在硬件板上調(diào)試,就必須首先把應(yīng)用軟件的可執(zhí)行程序添加到目標(biāo)系統(tǒng)中。有多種途徑可以達(dá)到這一目的。本文使用的是網(wǎng)絡(luò)方法,通過以太網(wǎng)接口從網(wǎng)絡(luò)添加用戶程序到目標(biāo)系統(tǒng)中運(yùn)行。 完成上述工作后,MPEG4解碼程序就可以在μClinux系統(tǒng)上運(yùn)行了,解碼結(jié)果數(shù)據(jù)流通過以太網(wǎng)動(dòng)態(tài)傳輸?shù)絇C機(jī)上。對(duì)幾個(gè)典型QCIF格式圖像解碼的幀率如表5所列。 表5 在μClinux操作系統(tǒng)中MPEG4視頻解碼的幀率 觀察發(fā)現(xiàn)與前面的軟件仿真結(jié)果是一致的。對(duì)于序列news、miss_am和salesman這些運(yùn)動(dòng)動(dòng)作不太大的圖像,解碼幀率明顯較高;而對(duì)于foreman、carphone和trevor這些運(yùn)動(dòng)動(dòng)作較大的圖像,解碼幀率就較低。 實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可以實(shí)現(xiàn)低幀率、低分辨率的嵌入式MPEG4視頻實(shí)時(shí)解碼。 5 結(jié)束語 本文重點(diǎn)研究了基于ARM開發(fā)平臺(tái)對(duì)MPEG4實(shí)時(shí)解碼的算法優(yōu)化及其硬件實(shí)現(xiàn)。主要完成了以下幾方面工作: 針對(duì)ARM7TDMI的體系結(jié)構(gòu),對(duì)解碼的關(guān)鍵部分進(jìn)行了算法優(yōu)化和代碼優(yōu)化,從而極大地提高了解碼速度;針對(duì)具體的硬件平臺(tái)——基于ARM7TDMI的Eeay ARM2200開發(fā)板,建立了μClinux開發(fā)環(huán)境,在其上開發(fā)應(yīng)用程序,添加到目標(biāo)系統(tǒng)中并調(diào)試,最后完成了15fps的MPEG4視頻解碼嵌入式系統(tǒng)的實(shí)時(shí)實(shí)現(xiàn)。 隨著人們對(duì)視覺媒體的要求越來越高,基于嵌入式系統(tǒng)視頻解碼技術(shù)將具有越來越廣闊的前景。 |