打印
[DSP编程]

嵌入式教程_教学实验箱实验操作_音频处理:3-2 mp3音频编码实验

[复制链接]
3321|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

3-2 mp3音频编码实验

1、实验目的
本次视频教程是基于创龙教仪TL6748-PlusTEB教学实验箱完成的。
本此教程的目的是了解MP3音频格式,掌握MP3音频编码的原理,并实现基于SYSBIOS系统,将PCM格式的音频编码为MP3格式。

2、实验原理
音频编解码的主要对象是音乐和语音,音频的编解码格式可分为无压缩的格式、无损压缩格式、有损音乐压缩格式、有损语音压缩格式和合成算法。本实验中使用的MP3格式属于有损音乐压缩格式。音频编解码的目的是减少传输的信息量和减少储存的信息。


MP3是一种音频压缩技术,能够在音质丢失很小的情况下把文件压缩到更小的程度,而且还非常好的保持了原来的音质。描述信源的数据是信息和数据冗余之和,将音频作为一个信源,音频编码的实质是减少音频中的冗余。通常情况下,我们采用的是脉冲代码调制编码。PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字信号。


MP3编码一般会使用libmp3lame库,这是一个开源的MP3编码库。使用lame库只需要包含lame.h头文件即可。通过lame库实现MP3编码的流程是初始化编码参数、设置编码参数、初始化编码器、编码PCM数据、结束编码,最后销毁编码器。




我们来详细了解下lame库提供的各种参数设置的接口。首先看下初始化编码参数的接口lame_init,这个接口可以用来设置参数。


然后看下编码参数设置的相关接口。
第一个是设置设置被输入编码器的原始数据的采样率
第二个是设置最终MP3编码输出的声音的采样率,如果不设置则和输入采样率一样
第三个是设置被输入编码器的原始数据的声道数
第四个是设置最终MP3编码输出的声道模式,如果不设置则和输入声道数一样。


第五个是设置比特率控制模式,默认是CBR,但是通常我们都会设置VBR
第六个是设置CBR的比特率,只有在CBR模式下才生效
第七个是设置VBR的比特率,只有在VBR模式下才生效

接着看一下初始化编码器的接口,根据设置好的参数建立编码器


然后调用接口将PCM数据送入编码器,获取编码出的MP3数据。本实验中的双声道数据是交错在一起输入的,所以使用lame_encode_buffer_interleaved接口。


编码结束前需要刷新编码器缓冲,获取残留在编码器缓冲里的数据。


最后,编码结束后要销毁编码器释放资源。


本实验中的MP3音频编码是基于SYSBIOS系统下完成的。SYS/BIOS 是一个可扩展的实时的操作系统,具有非常快速的响应时间,可以最大限度地减少对内存和CPU的要求,并且能够实现系统的模块化并可裁剪。


静态创建任务的方法是通过在cfg Script脚本语言中添加相应的配置语句实现的,通过调用 Task_create()创建任务。
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、操作现象
硬件接口
本实验使用的硬件接口为SD卡座,所需硬件为实验板、仿真器、电源、SD卡和读卡器。


硬件连接
将工程目录下的song.pcm文件拷贝到SD卡后,把SD卡插入卡槽内。
连接仿真器和电脑的USB接口。
将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电


实验现象
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
CCS连接开发板并加载程序
点击运行程序
运行程序后,Console 窗口会持续打印信息,本次实验每次处理9045字节的数据。
大概等待1分钟,编码完成。
实验箱断电后,取下 SD 卡
通过读卡器将SD卡插入电脑可查看 SD 卡目录下的内容,程序把 SD卡目录下的 song.pcm 文件编码并生成 song.mp3 文件。
打开并播放 MP3 文件,

615996479ab9c1ed12.png (77.84 KB )

615996479ab9c1ed12.png

547676479abb01c92a.png (77.84 KB )

547676479abb01c92a.png

567846479abb5a1dca.png (77.84 KB )

567846479abb5a1dca.png

573826479abb5d7fbd.png (77.84 KB )

573826479abb5d7fbd.png

704416479abb6013ef.png (77.84 KB )

704416479abb6013ef.png

132396479abcfcb20a.png (45.67 KB )

132396479abcfcb20a.png

250416479abda3f355.png (45.67 KB )

250416479abda3f355.png

569736479ac728ea5d.png (20.24 KB )

569736479ac728ea5d.png

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

54

帖子

1

粉丝