2、實驗原理
音頻編解碼的主要對象是音樂和語音,音頻的編解碼格式可分為無壓縮的格式、無損壓縮格式、有損音樂壓縮格式、有損語音壓縮格式和合成算法。本實驗中使用的MP3格式屬于有損音樂壓縮格式。音頻編解碼的目的是減少傳輸?shù)男畔⒘亢蜏p少儲存的信息。
MP3是一種音頻壓縮技術,能夠在音質(zhì)丟失很小的情況下把文件壓縮到更小的程度,而且還非常好的保持了原來的音質(zhì)。描述信源的數(shù)據(jù)是信息和數(shù)據(jù)冗余之和,將音頻作為一個信源,音頻編碼的實質(zhì)是減少音頻中的冗余。通常情況下,我們采用的是脈沖代碼調(diào)制編碼。PCM通過抽樣、量化、編碼三個步驟將連續(xù)變化的模擬信號轉(zhuǎn)換為數(shù)字信號。
MP3編碼一般會使用libmp3lame庫,這是一個開源的MP3編碼庫。使用lame庫只需要包含lame.h頭文件即可。通過lame庫實現(xiàn)MP3編碼的流程是初始化編碼參數(shù)、設置編碼參數(shù)、初始化編碼器、編碼PCM數(shù)據(jù)、結(jié)束編碼,最后銷毀編碼器。
我們來詳細了解下lame庫提供的各種參數(shù)設置的接口。首先看下初始化編碼參數(shù)的接口lame_init,這個接口可以用來設置參數(shù)。
然后看下編碼參數(shù)設置的相關接口。
第一個是設置設置被輸入編碼器的原始數(shù)據(jù)的采樣率
第二個是設置最終MP3編碼輸出的聲音的采樣率,如果不設置則和輸入采樣率一樣
第三個是設置被輸入編碼器的原始數(shù)據(jù)的聲道數(shù)
第四個是設置最終MP3編碼輸出的聲道模式,如果不設置則和輸入聲道數(shù)一樣。
第五個是設置比特率控制模式,默認是CBR,但是通常我們都會設置VBR
第六個是設置CBR的比特率,只有在CBR模式下才生效
第七個是設置VBR的比特率,只有在VBR模式下才生效
接著看一下初始化編碼器的接口,根據(jù)設置好的參數(shù)建立編碼器
然后調(diào)用接口將PCM數(shù)據(jù)送入編碼器,獲取編碼出的MP3數(shù)據(jù)。本實驗中的雙聲道數(shù)據(jù)是交錯在一起輸入的,所以使用lame_encode_buffer_interleaved接口。
編碼結(jié)束前需要刷新編碼器緩沖,獲取殘留在編碼器緩沖里的數(shù)據(jù)。
最后,編碼結(jié)束后要銷毀編碼器釋放資源。
本實驗中的MP3音頻編碼是基于SYSBIOS系統(tǒng)下完成的。SYS/BIOS 是一個可擴展的實時的操作系統(tǒng),具有非??焖俚捻憫獣r間,可以最大限度地減少對內(nèi)存和CPU的要求,并且能夠?qū)崿F(xiàn)系統(tǒng)的模塊化并可裁剪。
靜態(tài)創(chuàng)建任務的方法是通過在cfg Script腳本語言中添加相應的配置語句實現(xiàn)的,通過調(diào)用 Task_create()創(chuàng)建任務。
var Task = xdc.useModule('ti.sysbios.knl.Task');
var task0Params = new Task.Params();
task0Params.instance.name = "task0";
Program.global.task0= Task.create("&taskMain", task0Params);
3、操作現(xiàn)象
硬件接口
本實驗使用的硬件接口為SD卡座,所需硬件為實驗板、仿真器、電源、SD卡和讀卡器。
硬件連接
將工程目錄下的song.pcm文件拷貝到SD卡后,把SD卡插入卡槽內(nèi)。
連接仿真器和電腦的USB接口。
將撥碼開關撥到DEBUG模式01111,連接實驗箱電源,撥動電源開關上電
實驗現(xiàn)象
導入工程,選擇Demo文件夾下的對應工程
編譯工程,生成可執(zhí)行文件
將CCS連接開發(fā)板并加載程序
點擊運行程序
運行程序后,Console 窗口會持續(xù)打印信息,本次實驗每次處理9045字節(jié)的數(shù)據(jù)。
大概等待1分鐘,編碼完成。
實驗箱斷電后,取下 SD 卡
通過讀卡器將SD卡插入電腦可查看 SD 卡目錄下的內(nèi)容,程序把 SD卡目錄下的 song.pcm 文件編碼并生成 song.mp3 文件。
打開并播放 MP3 文件,
-
PCM
+關注
關注
1文章
201瀏覽量
54112 -
緩沖器
+關注
關注
6文章
2039瀏覽量
46830 -
仿真器
+關注
關注
14文章
1035瀏覽量
85160 -
調(diào)制器
+關注
關注
3文章
897瀏覽量
46225 -
音頻編解碼
+關注
關注
0文章
19瀏覽量
3157
發(fā)布評論請先 登錄
數(shù)字信號處理實驗操作教程:3-3 mp3音頻編碼實驗(AD7606采集)
請問如何把WAV,MP3格式的音頻文件轉(zhuǎn)化為16位的數(shù)據(jù)IIS格式?
MP3和WMA音頻格式的基礎知識
只需五步教你如何把wma格式轉(zhuǎn)換為MP3格式
嵌入式教程_教學實驗箱實驗操作_音頻處理:3-2 mp3音頻編碼實驗
將聲音從音頻編碼器記錄到MP3格式存儲到縮微SD卡中
MP3常用音頻格式詳細解說
音頻轉(zhuǎn)換技巧分享,ogg怎么轉(zhuǎn)成mp3格式?

評論