一、實驗目的
了解MP3文件的結構,掌握MP3音頻解碼的原理,并實現基于SYSBIOS系統,將MP3格式的音頻解碼為PCM格式。
二、實驗原理
1、MP3音頻格式
MP3是一種音頻壓縮技術,其全稱是動態影像專家壓縮標準音頻層面3(Moving Picture Experts Group Audio Layer III),簡稱為MP3。它被設計用來大幅度地降低音頻數據量。
利用 MPEG Audio Layer 3 的技術,將音樂以1:10 甚至 1:12 的壓縮率,壓縮成容量較小的文件,而對于大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。
傳統的MP3算法需要完成大量的高精度浮點計算,其解碼速度和效率依賴于通用浮點運算單元的支持。大部分的專用MP3解碼播放系統均需要使用DSP處理器或浮點協處理器處理浮點指令并完成高速浮點運算過程。
2、MP3編解碼
MP3音頻壓縮包含編碼和解碼兩部分,編碼是將原始信號轉換成電平信號的過程,解碼即是逆過程,人耳感受聲音的頻率范圍是20Hz-20kHz,MP3截掉了大量的冗余信號和無關的信號,編碼器將原始聲音變換到頻率域,經過量化和編碼形成MP3位流。解碼器要簡單得多,它的任務是從編碼后的譜線成分中,經過反量化和逆變換,提取出聲音信號。
(1)編碼:從信息論的觀點來看,描述信源的數據是信息和數據冗余之和,即:數據=信息+數據冗余。音頻信號在時域和頻域上具有相關性,也即存在數據冗余。將音頻作為一個信源,音頻編碼的實質是減少音頻中的冗余。通常我們采用的是PCM編碼,PCM通過抽樣、量化、編碼三個步驟將連續變化的模擬信號轉換為數字信號。
(2)解碼:編碼的逆過程,將MP3文件解碼成PCM數據流輸出。
3、MP3文件結構
MP3文件數據由多個幀組成,幀是MP3文件最小組成單位。每個幀又由幀頭、附加信息和聲音數據組成。每個幀播放時間是0.026秒,其長度隨位率的不同而不等。有些MP3文件末尾有些額外字節存放非聲音數據的說明信息。
MP3文件大體上分為三個部分:ID3V2+音頻數據+ID3V1。
ID3一般位于一個MP3文件的開頭或末尾的若干字節內,記錄該MP3文件的歌手、標題、專輯名稱、年代、風格等信息,ID3分為兩個版本,V1版ID3在文件末尾的固定128字節,以TAG字符開頭,若沒有則認為無ID3V1信息,V2版ID3位于MP3的開頭,長度可變。
4、音頻數據解析
每個幀都有一個幀頭,長度是四個字節,幀后面可能有2字節的CRC校驗,取決于幀頭的第16位,為0則無校驗,為1則有校驗,后面是可變長度的附加信息,對于標準的MP3文件來說,其長度是32字節,緊接其后的是壓縮的聲音數據,當解碼器讀到此處時就進行解碼了。
5、libmp3lame庫
lame是一個有名的開源MP3編解碼庫,使用lame庫只需要包含lame.h頭文件。
6、SYS/BIOS 操作系統
SYS/BIOS 是一個可擴展的實時的操作系統(可拓展的實時內核)。
(1)具有非常快速的響應時間(在中斷和任務切換時達到較短的延遲),響應時間的確定性。
(2)SYS/BIOS提供了搶占式多線程,硬件抽象,實時分析和配置工具。
(3)優化的內存分配和堆棧管理(盡量少的消耗和碎片)。
(4)SYS/BIOS的設計是為了最大限度地減少對內存和CPU的要求.
能夠實現系統的模塊化并可裁剪。
(5)用于實時調度和同步的應用程序或實時的設備。
TASK任務
TASK任務模塊是操作系統中最基本的模塊,每個任務是一個單獨的線程,各個線程(任務)具有各自的優先級。SYS/BIOS任務對象是被任務模塊管理的線程。
(1)任務模塊動態調度和搶占任務是基于任務的優先級和任務當前執行的狀態的。這確保了處理器總是給予最高優先級的線程準備運行。
(2)SYS/BIOS的系統組件可以動態及靜態創建任務,可以通過調用Task_create()動態創建Task對象,也可以在配置中靜態創建Task對象。
(3)動態和靜態創建任務的主要區別是:動態創建的線程可以在運行時刪除,而靜態創建的任務占用更少的內存資源。
7、程序流程設計
程序流程設計中首先要進行使能SD并配置SD設備驅動,接著初始化SD設備,檢測SD卡的狀態,注冊SD卡的讀寫方式,然后在SD卡內創建PCM文件,打開MP3文件后初始化文件指針到起始點,接著初始化解碼器數據結構并配置成解碼模式,最后執行MP3文件解析,解碼完成后卸載設備即可。
三、操作現象
1、實驗設備
2、硬件連接
(1)將工程目錄下的song.mp3文件拷貝到SD卡后,把SD卡插入卡槽內。
(3)將撥碼開關撥到DEBUG模式01111,連接實驗箱電源,撥動電源開關上電。
3、軟件操作
導入工程,選擇Demo文件夾下的對應工程
編譯工程,生成可執行文件
將CCS連接開發板并加載程序
點擊運行程序
運行程序后,Console 窗口會打印信息,正在處理音頻數據。
大概等待1分鐘,解碼完成。
實驗結束后,先點擊黃色按鈕暫停程序運行,再點擊紅色按鈕退出CCS與實驗板的連接,最后實驗箱斷電即可。
-
驅動器
+關注
關注
52文章
8226瀏覽量
146253 -
PCM
+關注
關注
1文章
195瀏覽量
53203 -
SD卡
+關注
關注
2文章
564瀏覽量
63889 -
CRC校驗
+關注
關注
0文章
84瀏覽量
15207 -
音頻解碼
+關注
關注
0文章
26瀏覽量
16506
發布評論請先 登錄
相關推薦
評論