Преобразование 8-битной неподписанной PCM в 8-битную подписанную PCM - PullRequest
1 голос
/ 18 июля 2011

Как преобразовать 8-битный поток PCM без знака (0-255) в 8-битный поток PCM со знаком (-128-127). Это так же просто, как вычитание 128 из каждого неподписанного байта, так что 0 становится -128, а 255 становится 127? Или это сложнее? Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

Для кода, который вы разместили в своем комментарии, вычитание 128 отменит предыдущую операцию и даст вам подписанные данные.

0 голосов
/ 18 июля 2011

Почему бы вам не попробовать? На мой взгляд, этого должно быть достаточно, но я не знаю, какой язык вы используете.

При работе со знаковым и беззнаковым целым / символом имейте в виду, что внутреннее представление для отрицательных значений является дополнением к двум. Безопаснее всего будет рассчитать размер signed int, чтобы избежать переполнения.

...