PCM音频格式的深入理解

PCM:其数据排列格式为左右声道每个样本点数据交错排列

16bit的PCM数据是有负数的,至于负数的意义,我估计是代表电压的正负的,0值代表无声。如下为FFmpeg中所定义的音频格式:enum   AVSampleFormat {    AV_SAMPLE_FMT_NONE = -1,    AV_SAMPLE_FMT_U8,          ///< unsigned 8 bits    AV_SAMPLE_FMT_S16,         ///< signed 16 bits    AV_SAMPLE_FMT_S32,         ///< signed 32 bits    AV_SAMPLE_FMT_FLT,         ///< float    AV_SAMPLE_FMT_DBL,         ///< double// 以下都是带平面格式    AV_SAMPLE_FMT_U8P,         ///< unsigned 8 bits, planar    AV_SAMPLE_FMT_S16P,        ///< signed 16 bits, planar    AV_SAMPLE_FMT_S32P,        ///< signed 32 bits, planar    AV_SAMPLE_FMT_FLTP,        ///< float, planar    AV_SAMPLE_FMT_DBLP,        ///< double, planar    AV_SAMPLE_FMT_NB           ///< Number of sample formats. DO NOT USE if linking dynamically};其中,AV_SAMPLE_FMT_FLT 为float类型(4字节)AV_SAMPLE_FMT_FLTP 为平面排列float类型(4字节)带P和不带P的数据类型的区别:P表示Planar(平面),其数据格式排列方式为 : LLLLLLRRRRRRLLLLLLRRRRRRLLLLLLRRRRRRL...(每个LLLLLLRRRRRR为一个音频帧)而不带P的数据格式(即交错排列)排列方式为:LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL...(每个LR为一个音频样本)注:L表示左声道一个采样点数据,R表示右声道一个采样点数据之前由于没有透彻了解音频的数据结构,使用Adobe Audition软件播放PCM音频数据总是出现问题,如下图所示,此图的原始数据为左声道为0而右声道为正常声音采集,由于是Planar的数据排列方式而非交错排列方式,导致最终音频失真。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值