Декодирование G711 (PCM U-Law) - PullRequest
2 голосов
/ 15 июля 2010

Пожалуйста, потерпите меня, так как мое понимание аудио кодека ограничено.У меня есть этот источник звука из IPCAM (через интерфейс htto // ... CGI).Я пытаюсь написать несколько клиентских программ для воспроизведения этого источника звука на Windows, MAC, а также на телефоне Android.Аудио кодируется в G711 (PCM ulaw).

Нужно ли декодировать аудиоданные PCM в необработанные аудиоданные, прежде чем я смогу передать их на аудиодвигатель для воспроизведения?Если да, есть ли пример кода, как его декодировать?Я в замешательстве, так как почему-то я считаю, что PCM уже RAW.Могу ли я просто подать его непосредственно на аудио движок на Android, например?

большое спасибо заранее

Ответы [ 2 ]

6 голосов
/ 15 июля 2010

Это зависит от того, какой API вы используете для воспроизведения звука, но для большинства из них требуется линейный PCM, и у вас есть PCM с µ-законом, поэтому, если ваш API не поддерживает воспроизведение по µ-закону, вам потребуется преобразовать значения семпла с µ-законом в линейные. ,

В G.711 сжатые выборки по закону µ имеют размер 8 бит, и они будут преобразованы в 14-битные линейные значения, которые вы будете хранить в буфере как 2 байта на выборку. Краткое описание кодировки µ-закона приведено на странице G.711 Wikipedia .

1 голос
/ 04 февраля 2012

Вы можете найти это полезным:

Алгоритм компандирования u-Law в C

...