基于IPP的嵌入式音頻解碼器設(shè)計(jì)與優(yōu)化
發(fā)布時(shí)間:2007/9/11 0:00:00 訪問次數(shù):558
來源:微計(jì)算機(jī)信息 作者:葉光豐 楊斌 洪艷偉
摘要:本文從Intel公司的IPP工具對(duì)基于特定處理器的音頻編解碼優(yōu)化方案出發(fā) ,簡要介紹IPP的嵌入式移植應(yīng)用與API編程規(guī)范以及優(yōu)化步驟.完成了在Intel XScale PXA255 PDA上,利用Linux下Qte/Qtopia GUI開發(fā)環(huán)境,通過IPP優(yōu)化,完成音頻解碼器的設(shè)計(jì)與實(shí)現(xiàn)。
關(guān)鍵詞:IPP Qte/Qtopia GUI PDA API Linux
1前言
隨著信息技術(shù)的飛速發(fā)展,形式多樣的數(shù)字化產(chǎn)品已經(jīng)開始成為繼PC機(jī)后的信息處理工具,在這種數(shù)字化潮流下,嵌入式系統(tǒng)已成為當(dāng)前研究和應(yīng)用的熱點(diǎn)之一。嵌入式手持設(shè)備的視音頻多媒體應(yīng)用也越來越廣泛.由于嵌入式系統(tǒng)的應(yīng)用要求及成本因素決定了嵌入式系統(tǒng)在系統(tǒng)資源, 包括硬件資源和軟件資源方面都是非常精簡和高效的。因此通過IPP底層API函數(shù)實(shí)現(xiàn)針對(duì)特定處理器的特定關(guān)鍵算法進(jìn)行程序結(jié)構(gòu)重組和優(yōu)化,為嵌入式系統(tǒng)低功耗高代碼執(zhí)行效率提供一種很好的解決方案。
2 Intel IPP簡介
Intel集成高性能原件(Intel IPP)是一個(gè)交叉架構(gòu)的跨平臺(tái)軟件庫,提供了大量庫功能,用于多媒體,音頻編碼,視頻編碼,計(jì)算機(jī)視覺密碼系統(tǒng)以及此類處理的數(shù)學(xué)過程。通過一個(gè)跨多種架構(gòu)上的單一API,可以獲得平臺(tái)兼容性,減少開發(fā)成本。提升信號(hào),影像,多媒體處理和矢量計(jì)算的執(zhí)行效率。
利用IPP優(yōu)化的步驟首先是程序結(jié)構(gòu)的重新設(shè)計(jì)。由于IPP 提供的接口為固定接口,在原程序基礎(chǔ)上以IPP函數(shù)代替,這意味著需要額外添加變量和步驟,如果程序結(jié)構(gòu)設(shè)計(jì)不當(dāng)將在相當(dāng)程度上抵消使用IPP而帶來的增益。為了避免這種情況,對(duì)于原來的程序結(jié)構(gòu)往往不能限于局部的調(diào)整,而要圍繞利用IPP提供的接口為核心,進(jìn)行較大規(guī)模的調(diào)整和安排。
3基于Linux的系統(tǒng)框架和集成開發(fā)環(huán)境的搭建
3.1開發(fā)平臺(tái)的搭建
由于嵌入式系統(tǒng)本身不具有軟件開發(fā)能力,采用PC+目標(biāo)機(jī)的開發(fā)方式,在運(yùn)行l(wèi)inux2.4.20內(nèi)核的PC機(jī)上為PXA 255板提供開發(fā)和交叉編譯環(huán)境。利用PXA 255板的FF串口作調(diào)試口與PC的串口相連,可方便地進(jìn)行調(diào)試工作,利用PXA255板的以太網(wǎng)接口和PC相連,建立點(diǎn)對(duì)點(diǎn)的連結(jié),在PC上建立FTP服務(wù)器,將應(yīng)用程序及內(nèi)核等文件通過以太網(wǎng)接口傳到PXA255板上。
3.2交叉編譯環(huán)境的建立
要在PC上開發(fā)出能運(yùn)行在PXA255板上的程序,必須在PC上為其建立一個(gè)針對(duì)ARM芯片的交叉編譯環(huán)境,為此,將用到交叉編譯工具鏈,包括:交叉編譯工具arm-linux-gcc、二進(jìn)制文件處理工具arm-linux-binutils及鏈接和運(yùn)行庫arm-linux-blibc。
建立起交叉編譯環(huán)境后,就可以用此交叉編譯器為PXA255板編譯其內(nèi)核和應(yīng)用程序了。整個(gè)開發(fā)環(huán)境的結(jié)構(gòu)框圖如下:
圖(1) 開發(fā)環(huán)境的結(jié)構(gòu)框圖
3.3基于QT/Embedded庫的GUI開發(fā)環(huán)境的建立
為使在通用PC上編譯連接的程序能在目標(biāo)平臺(tái)PXA255板上運(yùn)行,必須在開發(fā)端PC上安裝正確的庫文件。QT/E安裝包只提供所有QT類和一些輔助工具的源文件,針對(duì)目標(biāo)平臺(tái)PXA255板,還需要為QT/E庫增加觸摸屏的庫文件,以使基于QT/E的應(yīng)用程序能正確的接收到觸摸屏事件。交叉編譯工具使用專門針對(duì)Xscale系列arm-linux-gcc來編譯。
為了提高程序開發(fā)的效率,可以為QT/E安裝一個(gè)生成Makefile的工具Tmake。用它來生成Makefile文件可以節(jié)省很多時(shí)間。在Makefile文件中增加QT/E庫的路徑及用于包含觸摸屏庫的參數(shù)(-lts)之后再make。這樣QT/E程序就被正確的編譯連接成為在PXA 255板上可執(zhí)行的文件了。
4 MP3音頻播放器圖形界面GUI設(shè)計(jì)與實(shí)現(xiàn)
本設(shè)計(jì)用QTE/QTopia作為應(yīng)用程序圖形界面GUI的類庫和桌面開發(fā)環(huán)境。Qt/Embedded是Trolltech公司開發(fā)的面向嵌入式系統(tǒng)的Qt版本。采用framebuffer作為底層圖形接口。Qt/Embedded類庫完全采用C++封裝。豐富的控件資源和較好的可移植性是Qt/Embedded最為優(yōu)秀的一方面,使用X下的開發(fā)工具Qt Designer可以直接開發(fā)基于Qt/Embedded的UI(用戶操作接口)界面。
鑒于篇幅,本文只給出圖形界面的類定義和函數(shù)接口說明,其中封裝和移植IPP低層API操作的成員函數(shù)將在文章第5部分作出相應(yīng)的解釋和描述,播放器類在Qt中定義如下:
class MediaPlayer:public QWidget
{
public:/*構(gòu)造函數(shù)初始化播放器各參數(shù)*/
MediaPlayer(QWidget *parent=0,const char *name=0
來源:微計(jì)算機(jī)信息 作者:葉光豐 楊斌 洪艷偉
摘要:本文從Intel公司的IPP工具對(duì)基于特定處理器的音頻編解碼優(yōu)化方案出發(fā) ,簡要介紹IPP的嵌入式移植應(yīng)用與API編程規(guī)范以及優(yōu)化步驟.完成了在Intel XScale A255 PDA上,利用Linux下Qte/Qtopia GUI開發(fā)環(huán)境,通過IPP優(yōu)化,完成音頻解碼器的設(shè)計(jì)與實(shí)現(xiàn)。
關(guān)鍵詞:IPP Qte/Qtopia GUI PDA API Linux
1前言
隨著信息技術(shù)的飛速發(fā)展,形式多樣的數(shù)字化產(chǎn)品已經(jīng)開始成為繼PC機(jī)后的信息處理工具,在這種數(shù)字化潮流下,嵌入式系統(tǒng)已成為當(dāng)前研究和應(yīng)用的熱點(diǎn)之一。嵌入式手持設(shè)備的視音頻多媒體應(yīng)用也越來越廣泛.由于嵌入式系統(tǒng)的應(yīng)用要求及成本因素決定了嵌入式系統(tǒng)在系統(tǒng)資源, 包括硬件資源和軟件資源方面都是非常精簡和高效的。因此通過IPP底層API函數(shù)實(shí)現(xiàn)針對(duì)特定處理器的特定關(guān)鍵算法進(jìn)行程序結(jié)構(gòu)重組和優(yōu)化,為嵌入式系統(tǒng)低功耗高代碼執(zhí)行效率提供一種很好的解決方案。
2 Intel IPP簡介
Intel集成高性能原件(Intel IPP)是一個(gè)交叉架構(gòu)的跨平臺(tái)軟件庫,提供了大量庫功能,用于多媒體,音頻編碼,視頻編碼,計(jì)算機(jī)視覺密碼系統(tǒng)以及此類處理的數(shù)學(xué)過程。通過一個(gè)跨多種架構(gòu)上的單一API,可以獲得平臺(tái)兼容性,減少開發(fā)成本。提升信號(hào),影像,多媒體處理和矢量計(jì)算的執(zhí)行效率。
利用IPP優(yōu)化的步驟首先是程序結(jié)構(gòu)的重新設(shè)計(jì)。由于IPP 提供的接口為固定接口,在原程序基礎(chǔ)上以IPP函數(shù)代替,這意味著需要額外添加變量和步驟,如果程序結(jié)構(gòu)設(shè)計(jì)不當(dāng)將在相當(dāng)程度上抵消使用IPP而帶來的增益。為了避免這種情況,對(duì)于原來的程序結(jié)構(gòu)往往不能限于局部的調(diào)整,而要圍繞利用IPP提供的接口為核心,進(jìn)行較大規(guī)模的調(diào)整和安排。
3基于Linux的系統(tǒng)框架和集成開發(fā)環(huán)境的搭建
3.1開發(fā)平臺(tái)的搭建
由于嵌入式系統(tǒng)本身不具有軟件開發(fā)能力,采用PC+目標(biāo)機(jī)的開發(fā)方式,在運(yùn)行l(wèi)inux2.4.20內(nèi)核的PC機(jī)上為A 255板提供開發(fā)和交叉編譯環(huán)境。利用A 255板的FF串口作調(diào)試口與PC的串口相連,可方便地進(jìn)行調(diào)試工作,利用A255板的以太網(wǎng)接口和PC相連,建立點(diǎn)對(duì)點(diǎn)的連結(jié),在PC上建立FTP服務(wù)器,將應(yīng)用程序及內(nèi)核等文件通過以太網(wǎng)接口傳到A255板上。
3.2交叉編譯環(huán)境的建立
要在PC上開發(fā)出能運(yùn)行在A255板上的程序,必須在PC上為其建立一個(gè)針對(duì)ARM芯片的交叉編譯環(huán)境,為此,將用到交叉編譯工具鏈,包括:交叉編譯工具arm-linux-gcc、二進(jìn)制文件處理工具arm-linux-binutils及鏈接和運(yùn)行庫arm-linux-blibc。
建立起交叉編譯環(huán)境后,就可以用此交叉編譯器為A255板編譯其內(nèi)核和應(yīng)用程序了。整個(gè)開發(fā)環(huán)境的結(jié)構(gòu)框圖如下:
圖(1) 開發(fā)環(huán)境的結(jié)構(gòu)框圖
3.3基于QT/Embedded庫的GUI開發(fā)環(huán)境的建立
為使在通用PC上編譯連接的程序能在目標(biāo)平臺(tái)A255板上運(yùn)行,必須在開發(fā)端PC上安裝正確的庫文件。QT/E安裝包只提供所有QT類和一些輔助工具的源文件,針對(duì)目標(biāo)平臺(tái)A255板,還需要為QT/E庫增加觸摸屏的庫文件,以使基于QT/E的應(yīng)用程序能正確的接收到觸摸屏事件。交叉編譯工具使用專門針對(duì)Xscale系列arm-linux-gcc來編譯。
為了提高程序開發(fā)的效率,可以為QT/E安裝一個(gè)生成Makefile的工具Tmake。用它來生成Makefile文件可以節(jié)省很多時(shí)間。在Makefile文件中增加QT/E庫的路徑及用于包含觸摸屏庫的參數(shù)(-lts)之后再make。這樣QT/E程序就被正確的編譯連接成為在A 255板上可執(zhí)行的文件了。
4 MP3音頻播放器圖形界面GUI設(shè)計(jì)與實(shí)現(xiàn)
本設(shè)計(jì)用QTE/QTopia作為應(yīng)用程序圖形界面GUI的類庫和桌面開發(fā)環(huán)境。Qt/Embedded是Trolltech公司開發(fā)的面向嵌入式系統(tǒng)的Qt版本。采用framebuffer作為底層圖形接口。Qt/Embedded類庫完全采用C++封裝。豐富的控件資源和較好的可移植性是Qt/Embedded最為優(yōu)秀的一方面,使用X下的開發(fā)工具Qt Designer可以直接開發(fā)基于Qt/Embedded的UI(用戶操作接口)界面。
鑒于篇幅,本文只給出圖形界面的類定義和函數(shù)接口說明,其中封裝和移植IPP低層API操作的成員函數(shù)將在文章第5部分作出相應(yīng)的解釋和描述,播放器類在Qt中定義如下:
class MediaPlayer:public QWidget
{
public:/*構(gòu)造函數(shù)初始化播放器各參數(shù)*/
MediaPlayer(QWidget *parent=0,const char *name=0
熱門點(diǎn)擊
- 語音控制的智能小車設(shè)計(jì)
- 基于SPCE061A的車載DVD播放器設(shè)計(jì)與
- MPEG-2 TS流分析模塊及系統(tǒng)的設(shè)計(jì)和實(shí)
- 基于雙嵌入式處理器的高清數(shù)字電視設(shè)計(jì)
- 基于MC68HC05CL16的可配置型電話計(jì)
- 一種用VHDL設(shè)計(jì)實(shí)現(xiàn)的有線電視 機(jī)頂盒信源
- 基于IPP的嵌入式音頻解碼器設(shè)計(jì)與優(yōu)化
- 用追趕法實(shí)現(xiàn)光柵—筆劃兼容掃描
- 基于VoIP處理器與USB接口的IP電話設(shè)計(jì)
- 數(shù)字相機(jī)用電源產(chǎn)生電路
推薦技術(shù)資料
- 中國傳媒大學(xué)傳媒博物館開
- 傳媒博物館開館儀式隆童舉行。教育都i國家廣電總局等部門... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究