Начиная с этот вопрос Я был сделан, чтобы понять, как деинтерлейсировать левый и правый канал 16-битных данных PCM.
Мой вопрос сейчас заключается в том, как 8-битный PCM будет перемежаться и «растягиваться» в 16-битное значение.
16-битный PCM имеет в основном те же биты данных и дополнительные биты на младшей битовой стороне для указания значения и добавления точности и детализации. Тогда 8-битный PCM типично значение без знака с центральной точкой 0x80
и 16-разрядный (также применимый для более высоких битов) PCM имеет целое число со знаком, поэтому формула преобразования:
UINT8 sample8 = ...;
INT16 sample16 = (INT16) (sample8 - 0x80) << 8;