本帖最后由 wandersky 于 2021-3-25 18:35 编辑
WAV格式的音频文件,如果是没有经过压缩的,那里面的PCM数据,就是最原始的采样数据。根据采样位数的不同,常见的有8bit PCM数据, 16bit PCM数据, 由于种种原因,有时可能会遇到8bit 与16bit PCM编码之间相互转换的情况,
下面重点讲下8bit转换为16ibt PCM的过程(其它过程类似)
首先明确一点的时,8b PCM的采样数据是无符号数据, 而16b PCM的采样数据是有符号数据,因此8bit PCM转换为 16bit PCM时,必须先把无符号数据转换为有符号数,下面给出一个简单可行的方法:
比如1组8bit PCM数据X(n), 只需把每一个数据加上0x80 然后再强制转换为有符号数据就可以了Y(n),,
如果要转换为16bit PCM数据,只要再做一个左移8位操作为可以了 16bit PCM = Y(n) << 8;
弄懂了上面的原理,无论8位转16位,还是16位转8位都 很容易, 再进一步,即使是其它位数比如12bit, 也是可以按照上面的方法完成转换的!
|