几种编解码算法

1.ADPCM(Adaptive Differential Pulse Code Modulation):自适应差分脉冲编码调制,其中G726就是一种自适应差分脉冲编解码调制算法,适用于采样率在8KHz的数字电话带宽(0.3-3.4KHz)语音和音频信号编码,该编码器在逐项采样基础上工作,输入样本基于线性PCM或压缩8bits(G.711 64bps)格式表示;G.711格式,对于工作在32kps,每个样本在4bit量化差分信号导致压缩比在2:1,对于工作在24kps或40kps上,量化差分信号分别是3bit和5bit,更多信息就读我
注意:PCM数据没有压缩,它是一种音频数据流,它的数据是按照时间的先后顺序依次存入,有关PCM数据格式的信息可以参考这个
2.PCM是什么?
PCM(Pulse Code Modulation),脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。原理是用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲(脉搏似的短暂起伏的电冲击),把这些脉冲的幅值按一定精度进行量化,这些量化后的数值被连续的输出、传输、处理或记录到存储介质中,所有这些组成了数字音频的产生过程(抽样、量化、编码)
在这里插入图片描述
PCM信号的两个重要指标是采样频率和量化精度,目前,CD音频的采样频率通常为44100Hz,量化精度是16bit。通常,播放音乐时,应用程序从存储介质中读取音频数据(MP3、WMA、AAC…),经过解码后,最终送到音频驱动程序中的就是PCM数据,反过来,在录音时,音频驱动不停地把采样所得的PCM数据送回给应用程序,由应用程序完成压缩、存储等任务。所以,音频驱动的两大核心任务就是:
①playback:如何将应用程序中的存储介质中的音频数据(AAC、WMA、MP3)进行解码PCM数据转化成人耳可以识别的模拟音频
②capture:将mic录入的模拟音频通过采样、量化转换成PCM数据送回给用户空间的应用程序
在这里插入图片描述
2.1 采样频率、量化精度(位深、采样位数)、声道数
采样频率是设备一秒钟内对模拟信号的采样次数,在主流的采集卡上分为:(8Khz的电话采样率就可以达到人的对话程度)

22.05KHz:无线电广播;
44.1KHz:音频 CD,MP3等;
48KHz:miniDV、数字电视、DVD、电影和专业音频。
人耳能够感觉到的最高频率为20kHz,要满足人耳的听觉要求,则需要每秒进行40k次采样,即40kHz。我们常见的CD采样率为44.1kHz。(也比如我对接过硬件的扬声器最高是16KHz,则手机MIC采样率就不用太高,节省传输带宽)

采样位数比如8bit(现在少见)、16bit(常用)和24bit,指的是描述数字信号所使用的位数。
声道数:声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号。
单声道 采样数据为8位的短整数(short);
双声道 采样数据为16位的整数,(int),高八位(左声道)和低八位(右声道)分别代表两个声道
采样数据格式:其数据排列格式为左右声道每个样本点数据交错排列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[时长]s * [采样率]Hz * [采样位数]bit * [声道数] / 8 = [文件大小]byte
某音频信号是采样率为8kHz、声道数、位宽为16bit,时长为1s,则音频数据的大小为:
1 * 8000 * 16 *2 = 256000 bit / 8 = 32000 byte / 1024 = 31.25 KB
实例

音频帧
音频跟视频很不一样,视频每一帧就是一张图像,音频数据是流式的,不同的编码格式各自不同的编码标准,拿PCM和MP3做一个对比。PCM因为没有压缩,根据采样率位宽等数据可以得到每秒的音频数据,并不需要帧的概念;MP3则是因为压缩后信息比较多,则有了类似H264的帧概念,每一个帧都有一个帧头,有兴趣可以详见如下,有很详细的MP3的帧解析:
http://blog.csdn.net/fulinwsuafcie/article/details/8972346
录播过程
播放音乐时,应用程序从存储介质中读取音频数据(MP3、WMA、AAC…),经过解码后,最终送到音频驱动程序中的就是PCM数据,反过来,在录音时,音频驱动不停地把采样所得的PCM数据送回给应用程序,由应用程序完成压缩、存储等任务。所以,音频驱动的两大核心任务就是:
playback:如何把用户空间的应用程序发过来的PCM数据,转化为人耳可以辨别的模拟音频
capture:把mic拾取到得模拟信号,经过采样、量化,转换为PCM信号送回给用户空间的应用程序。

参考的博客
参考的博客,感谢。
http://blog.csdn.net/DroidPhone/article/details/6308006
https://blog.csdn.net/ownWell/article/details/8114121
https://blog.csdn.net/lifei092/article/details/80990813

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值