国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于多任務(wù)嵌入式應(yīng)用的MP3實(shí)時(shí)解碼系統(tǒng)

發(fā)布時(shí)間:2010-11-4 12:20    發(fā)布者:eetech
1 引 言

MP3是目前世界上流行的音頻格式之一,采用MPEG-1標(biāo)準(zhǔn)的Audio LayerⅢ壓縮編碼格式,具有高壓縮率和保真度。MP3的解碼功能大多以專用解碼芯片的形式應(yīng)用于多種消費(fèi)類電子產(chǎn)品中。采用軟解碼的方式實(shí)現(xiàn)MP3實(shí)時(shí)播放功能可以充分利用硬件資源,節(jié)省芯片面積,有利于降低設(shè)計(jì)成本,同時(shí)軟件方式可移植性好,解碼質(zhì)量可通過軟件參數(shù)設(shè)定,具有更大的靈活性,便于系統(tǒng)升級(jí)。隨著主流嵌入式微處理器ARM的處理能力越來越強(qiáng),這種實(shí)現(xiàn)方式也已經(jīng)成為眾多嵌入式設(shè)計(jì)公司研究的焦點(diǎn)。

與專用解碼芯片相比,采用軟件方式實(shí)現(xiàn)MP3實(shí)時(shí)解碼的瓶頸在于解碼效率。在多任務(wù)嵌入式系統(tǒng)中,單個(gè)任務(wù)的執(zhí)行效率以及任務(wù)間的調(diào)度方式將直接影響整個(gè)系統(tǒng)在一定硬件資源條件下的實(shí)時(shí)響應(yīng)速度。因此,在多任務(wù)嵌入式系統(tǒng)中采用軟解碼方式實(shí)現(xiàn)MP3實(shí)時(shí)播放,必須通過優(yōu)化算法提高解碼效率,在保證實(shí)時(shí)性的基礎(chǔ)上降低對(duì)硬件資源的要求。

2 設(shè)計(jì)思想

MP3解碼需要經(jīng)過大量的數(shù)據(jù)處理。首先對(duì)MP3數(shù)據(jù)流進(jìn)行幀同步并解出頭信息和邊信息供解碼主數(shù)據(jù)使用,之后對(duì)主數(shù)據(jù)依次進(jìn)行霍夫曼解碼、反量化、IMDCT以及子帶合成濾波,最終輸出PCM碼流。整個(gè)解碼過程如圖1所示。對(duì)定點(diǎn)化開源解碼程序各模塊執(zhí)行時(shí)間進(jìn)行測(cè)試,找出關(guān)鍵耗時(shí)模塊并對(duì)其采用改進(jìn)型快速算法;在保證一定音質(zhì)的前提下,根據(jù)解碼運(yùn)算特征降低運(yùn)算精度,從而在基于ARM926EJ-S處理器開發(fā)平臺(tái)上實(shí)現(xiàn)對(duì)MP3音樂(碼率為192 kb/s,采樣率為44.1 kHz,立體聲編碼模式)的解碼;在實(shí)時(shí)播放方面,提出雙Buffer輪換DMA傳送的設(shè)計(jì)方案,為高效任務(wù)調(diào)度的實(shí)現(xiàn)提供有利條件。





3 系統(tǒng)實(shí)現(xiàn)過程

3.1 硬件系統(tǒng)

本文采用的嵌入式系統(tǒng)是以ARM926EJ-S處理器為核心的SoC開發(fā)平臺(tái),最高運(yùn)行主頻為190 MHz,支持ARMv5T指令集,存儲(chǔ)器包括SDRAM和NAND FLASHROM,外圍設(shè)備包括DMA控制器、中斷控制器、USB控制器、UART、控制器、I2S控制器以及定時(shí)/計(jì)數(shù)器。整個(gè)硬件系統(tǒng)的架構(gòu)如圖2所示。





MP3文件和程序代碼通過USB線下載并分別存放入NAND FLASH ROM和SDRAM;解碼MP3文件得到的PCM碼流送入I2S控制器輸出;UART控制器可實(shí)現(xiàn)串口打印輸出調(diào)試信息,跟蹤程序運(yùn)行狀態(tài);定時(shí)/計(jì)數(shù)器用于測(cè)試解碼時(shí)間,對(duì)解碼各個(gè)模塊進(jìn)行耗時(shí)分析。

3.2 代碼移植

搭建好硬件平臺(tái)后,對(duì)各硬件模塊進(jìn)行初始化,并加載文件系統(tǒng),完成軟件平臺(tái)的搭建。將開源的MP3解碼程序代碼移植到軟件平臺(tái)上,這一過程主要是針對(duì)平臺(tái)的文件系統(tǒng),對(duì)文件讀寫函數(shù)進(jìn)行替換,并將屏幕打印替換為串口打印操作。移植后的代碼實(shí)現(xiàn)對(duì)MP3文件進(jìn)行解碼,并輸出為PCM碼流文件。利用CoolEdit對(duì)輸出PCM碼流文件進(jìn)行測(cè)試播放,輸出音質(zhì)良好。

3.3 耗時(shí)分析

成功移植后,對(duì)代碼進(jìn)行耗時(shí)分析,找出耗時(shí)最大的功能模塊,確定重點(diǎn)優(yōu)化對(duì)象。該系統(tǒng)采用硬件定時(shí)/計(jì)數(shù)器作為測(cè)試工具,將計(jì)數(shù)器的計(jì)數(shù)頻率調(diào)配為1 MHz,可實(shí)現(xiàn)1μs的測(cè)試精度。在ARM工作主頻為150 MHz的條件下,對(duì)100幀MP3數(shù)據(jù)的解碼過程進(jìn)行耗時(shí)測(cè)試,測(cè)試結(jié)果如表1所示。根據(jù)表1測(cè)試數(shù)據(jù)可知,子帶合成濾波占了整個(gè)解碼時(shí)間的60%以上,是決定解碼速度的最關(guān)鍵模塊;其次是長(zhǎng)塊IMDCT運(yùn)算,占了整個(gè)解碼時(shí)間的10%以上。因此,子帶合成濾波與長(zhǎng)塊IMDCT成為優(yōu)化重點(diǎn)。





3.4 解碼算法分析與優(yōu)化

3.4.1 子帶合成濾波算法優(yōu)化

子帶合成濾波是MP3解碼過程中最耗時(shí)的關(guān)鍵流程,該解碼系統(tǒng)采用Konstantinos Konstantinides提出的改進(jìn)型算法對(duì)其進(jìn)行優(yōu)化。子帶合成濾波的標(biāo)準(zhǔn)算法涉及從32值變換到64值的矩陣運(yùn)算,Konstantinos Konstantinides提出的改進(jìn)型算法將矩陣運(yùn)算進(jìn)行一系列變化,最終歸結(jié)于32點(diǎn)DCT變換,而DCT變換有類似于FFT的快速算法(FCT),從而加速了整個(gè)子帶合成濾波過程。由DCT變換到矩陣運(yùn)算的轉(zhuǎn)換過程如圖3所示,其中S和V分別為矩陣運(yùn)算的32點(diǎn)輸入序列和64點(diǎn)輸出序列,A,B均為16點(diǎn)矢量。

3.4.2 IMDCT算法優(yōu)化

IMDCT采用Szu-Wei Lee提出的快速算法進(jìn)行優(yōu)化,該算法充分利用余弦函數(shù)的對(duì)稱性,將N點(diǎn)IMDCT運(yùn)算經(jīng)過一系列變形,最終轉(zhuǎn)化為N/4點(diǎn)的SDCT-Ⅱ運(yùn)算,其轉(zhuǎn)化流程如圖4所示。對(duì)短塊IMDCT使用該算法并沒有帶來較大的速度改善,故只對(duì)長(zhǎng)塊應(yīng)用。相比于直接運(yùn)算的648次乘法和612次加法,優(yōu)化后的長(zhǎng)塊。IM-DCT運(yùn)算量下降為43次乘法和115次加法。

3.4.3 低精度乘法

在ARM指令集中的乘法指令有2類:32 b×32 b→64 b長(zhǎng)乘法指令(MULL,MLAL)和32 b×32 b→32 b短乘法指令(MUL,MLA),前者的指令周期為3+m,而后者為2+m。由于解碼過程中,尤其是子帶合成濾波過程,乘法指令使用非常頻繁,如果能夠使用短乘法指令進(jìn)行乘法運(yùn)算,將會(huì)大大提高系統(tǒng)性能。





該系統(tǒng)的定點(diǎn)運(yùn)算過程采用Q28定點(diǎn)表示法,若采用長(zhǎng)乘法指令運(yùn)算,得到的64位結(jié)果中有效位只有第28~59位,低28位和高4位都是無用的,需要通過移位去除。根據(jù)解碼過程中運(yùn)算系數(shù)的定點(diǎn)表示特征,可以在乘法運(yùn)算前預(yù)先對(duì)操作數(shù)進(jìn)行移位,以便使編譯器采用短乘法指令進(jìn)行運(yùn)算。在子帶合成濾波過程中,定點(diǎn)化濾波系數(shù)的低12位均為0。根據(jù)這一特征,可將濾波系數(shù)預(yù)先右移14位再進(jìn)行乘法運(yùn)算,這一過程僅損失2位精度。另外,在子帶濾波快速算法的DCT運(yùn)算結(jié)果參加乘法運(yùn)算前,預(yù)先右移12位,最后將子帶濾波的輸出結(jié)果右移2位。經(jīng)過3次右移操作后的輸出結(jié)果共降低16位精度,對(duì)于16位PCM輸出剛好滿足精度要求。

經(jīng)過以上一系列優(yōu)化處理后,主要解碼耗時(shí)模塊的改善情況如表2所示。





3.5 實(shí)時(shí)播放方案設(shè)計(jì)

該系統(tǒng)采用雙Buffer輪換DMA傳送的方案實(shí)現(xiàn)實(shí)時(shí)播放,整個(gè)播放流程如圖5所示。其中n為解碼當(dāng)前幀的幀序號(hào),第一幀序號(hào)為0;buffer0和buffer1分別用于存放當(dāng)前播放幀的PCM數(shù)據(jù)和下一幀的PCM數(shù)據(jù)。DMA傳送采用LLI傳送方式,可實(shí)現(xiàn)將2個(gè)buffer存放的PCM數(shù)據(jù)輪換向I2S FIFO傳送,因此只需在解碼完第1幀后啟動(dòng)一次DMA傳送。





該方案的實(shí)現(xiàn)原理是在一幀MP3數(shù)據(jù)解碼時(shí)間遠(yuǎn)小于1幀PCM數(shù)據(jù)播放時(shí)間(采樣率為44.1 kHz時(shí),一幀PCM播放時(shí)間為26.1 ms)這一前提條件下,播放當(dāng)前幀PCM數(shù)據(jù)的同時(shí)開始解碼下一幀MP3數(shù)據(jù)。因此在解碼完下一幀數(shù)據(jù)后,需要等待當(dāng)前幀播放完畢,再繼續(xù)解碼。在圖5中,這一等待過程采用的是查詢DMA傳送結(jié)束標(biāo)志的方式,這使得CPU一直處于忙狀態(tài),白白消耗了系統(tǒng)資源。然而在多任務(wù)嵌入式系統(tǒng)中,這段等待時(shí)間恰恰是非常有利用價(jià)值的。MP3實(shí)時(shí)解碼可以一個(gè)任務(wù)的形式存在于多任務(wù)系統(tǒng)中,將圖5中的查詢過程改為休眠M(jìn)P3解碼任務(wù),同時(shí)將DMA中斷打開,在中斷服務(wù)程序中喚醒解碼任務(wù),那么在解碼完畢下一幀后便可釋放CPU資源,將DMA中斷發(fā)生前的這段等待時(shí)間用于調(diào)度其他進(jìn)程,例如JPEG解碼任務(wù)和GUI任務(wù),從而實(shí)現(xiàn)播放音樂、播放圖片和用戶操作3者的高效協(xié)同工作。

4 結(jié) 語(yǔ)

本文給出的MP3實(shí)時(shí)解碼系統(tǒng)在基于ARM926EJ-S核心的SoC硬件平臺(tái)上,對(duì)MP3解碼算法和實(shí)時(shí)播放方案進(jìn)行優(yōu)化設(shè)計(jì)。實(shí)驗(yàn)結(jié)果證明,該系統(tǒng)可在處理器主頻僅為36 MHz的條件下流暢播放MP3音樂(碼率為192 kb/s),可嵌入數(shù)碼相框、MP4等產(chǎn)品中實(shí)現(xiàn)MP3實(shí)時(shí)播放功能
本文地址:http://m.qingdxww.cn/thread-36381-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91小视频app 91香蕉在线看私人影院 | 国产亚洲综合精品一区二区三区 | 国产一卡二卡3卡4卡无卡下载 | 亚洲人与日本人jjzz | 大学生久久香蕉国产线观看 | 欧美成人免费观看久久 | 精品第一页 | 国产片自拍| 特级毛片aaaa免费观看 | 日韩一级视频免费观看 | 日韩毛片大全免费高清 | 国产在线观看一区二区三区 | 欧美成人精品一区二区三区 | 亚欧视频在线观看 | 黑人操白逼 | 国产盗摄精品一区二区三区 | 国产国语一级毛片在线视频 | 欧美亚洲国产成人精品 | 亚洲一区二区三区免费在线观看 | 亚洲一区二区在线成人 | 欧美成人精品一区二三区在线观看 | 国产日韩欧美亚洲 | 日韩精品免费视频 | 男女交配在线观看 | 轻点灬大ji巴太粗太大了小说 | 欧美综合视频在线 | 91久久线看在观草草青青 | 艹逼网| 日本中文在线视频 | 黄色国产在线视频 | 高清亚洲综合色成在线播放放 | 一级毛片一级片 | 久久成人黄色 | 九色最新网址 | 久久精品国产精品青草不卡 | 香蕉精品高清在线观看视频 | 高清在线一区 | 一区二区三区免费看 | 好爽毛片一区二区三区四区 | 欧美一区二区视频在线观看 | 综合网五月 |