Я не уверен, насколько ZyXEL ADPCM отличается от других разновидностей ADPCM, но различные реализации ADPCM можно найти в некоторых поисках Google.
Однако настоящая причина моего поста в том, почему выбор ADPCM. ADPCM - это адаптивная дифференциально-импульсная кодовая модуляция. Это означает, что передаваемые данные - это разница в сэмплах, а не текущее значение (именно поэтому вы видите такое сильное сжатие). В чистой среде без потери битов (например, на диске) это нормально. Однако в потоковой среде обычно предполагается, что биты могут периодически искажаться. Любое повреждение данных, и вы будете слышать статические или другие звуковые артефакты очень быстро и, как правило, довольно плохо.
Механизм сброса ADPCM не основан на кадрах, что означает, что проблемы со звуком могут продолжаться в течение длительного периода времени, в зависимости от кодировщика. Код сброса обычно представляет собой набор из 0 (16 приходит на ум, но прошло уже много лет с тех пор, как я написал свои собственные порты).
ADPCM в среде телефонии обычно преобразует 12-битную выборку PCM в 4-битную выборку ADPCM (неплохо). Что касается качества звука ... неплохо для телефонных разговоров и произнесенного слова, но большинство людей в слепом тесте могут легко обнаружить снижение качества.
В своем последнем предложении вы бросаете в вопрос кривой мяч. Вы начинаете упоминать muLaw. muLaw - это реализация PCM, которая берет 12-битную выборку и преобразует ее с использованием логарифмической шкалы в 8-битную выборку. Это типичный механизм сжатия для сетей TDM (телефон) в Северной Америке (в большинстве других стран используется аналогичный алгоритм, называемый ALaw).
Итак, я запутался в том, что вы на самом деле пытаетесь найти.
Вы также упомянули реализации Microsoft и WAV. Вы, наверное, знаете, но на всякий случай, что WAV - это просто обертка вокруг аудиоданных, которая предоставляет формат, информацию о выборке, канал, размер и другую полезную информацию. Без учета WAV, AU или других оболочек muLaw и ADPCM обычно представляются в виде необработанных данных.
Еще один совет, если вы внедряете ADPCM. Как я указал, они используют 4 бита для представления 12-битной выборки. Им сходит с рук обе стороны, имеющие таблицу множителей. Ваша позиция в таблице изменяется в зависимости от 4-битного значения (другими словами, это значение кратно размеру шага и используется для определения нового размера шага). Я видел множество алгоритмов, использующих немного разные таблицы (не знаю почему, но вы обычно видите, что отправленные и полученные сигналы медленно отклоняются от предвзятости). Один из старых популярных звуковых пакетов отличался от того, что я обычно видел у поставщиков оборудования для телефонии.
И, для более бесполезных мелочей, существует множество разновидностей ADPCM. Отклонения касаются таблицы, размера исходной и целевой выборки, но мне никогда не приходилось с ними работать. Просто задокументированные варианты, которые я обнаружил, когда выполнял поиск в Интернете спецификаций для различных аудиоформатов, используемых в телефонии.