Преобразование 8-битной PCM в 16-битную PCM

Начиная с этот вопрос Я был сделан, чтобы понять, как деинтерлейсировать левый и правый канал 16-битных данных PCM.

Мой вопрос сейчас заключается в том, как 8-битный PCM будет перемежаться и «растягиваться» в 16-битное значение.

0

Решение

16-битный PCM имеет в основном те же биты данных и дополнительные биты на младшей битовой стороне для указания значения и добавления точности и детализации. Тогда 8-битный PCM типично значение без знака с центральной точкой 0x80и 16-разрядный (также применимый для более высоких битов) PCM имеет целое число со знаком, поэтому формула преобразования:

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

Другие решения


По вопросам рекламы [email protected]