将8位PCM转换为16位PCM

时间:2014-06-27 10:46:56

标签: c++ audio pcm

this question开始,我了解了如何对16位PCM数据的左右声道进行解交织。

我现在的问题是,如何对8位PCM进行去交织并且"拉伸"成16位值

1 个答案:

答案 0 :(得分:2)

16位PCM在最低有效位侧具有基本相同的数据位和附加位,用于指定值并增加精度和细节。那么8位PCM是typically无符号值,中心点为0x80,而16位(也适用于更高位)PCM是有符号整数,因此转换公式为:

UINT8 sample8 = ...;
INT16 sample16 = (INT16) (sample8 - 0x80) << 8;