Адаптивная дифференциальная импульсно-кодовая модуляция


Адапти́вная дифференциа́льная и́мпульсно-ко́довая модуля́ция (АДИКМ) (англ. Adaptive differential pulse-code modulation, ADPCM) — разновидность дифференциальной импульсно-кодовой модуляции, алгоритм которой подразумевает изменение шага квантования, что позволяет снизить требуемую полосу пропускания для заданного отношения сигнал/шум. Обычно адаптация основывается на адаптивном коэффициенте масштабирования[1].

Алгоритм ADPCM был разработан в начале 1970-х годов П. Каммиски, Н. С. Джаянт и Джеймсом Л. Фланаганом[англ.] в Bell Labs для кодирования голоса[2].

В телефонии стандартный аудиосигнал кодируется 8000 семплами в секунду, каждый из которых состоит из 8 бит — таким образом, получается скорость передачи данных 64 Кбит/с; этот стандарт известен как DS0. Стандартным методом сжатия сигнала в DS0 является либо импульсно-кодовая модуляция, использующая Мю-закон (Северная Америка и Япония), либо импульсно-кодовая модуляция, использующая А-закон (Европа и бо́льшая часть остального мира). Это логарифмические методы сжатия, которые описаны международным стандартом G.711. В случаях, когда стоимость передачи данных по каналам связи высокая, а уровень потерь данных приемлем, имеет смысл сжимать голосовую информацию больше. Алгоритм адаптивной дифференциальной импульсно-кодовой модуляции сопоставляет набор 8-битных семплов импульсно-кодовой модуляции (использующей Мю-закон или А-закон) набору 4-битных семплов АДИКМ. Таким образом, пропускная способность линии удваивается. Этот алгоритм описан в стандарте G.726.

Некоторые принципы АДИКМ применяются в коммуникационных протоколах Voice over IP. Также АДИКМ использовалась ассоциацией Interactive Multimedia Association в начале 1990-х годов для разработки аудиокодека, известного как ADPCM DVI, IMA ADPCM или DVI4[3].

G.722 — это широкополосный голосовой кодек стандарта ITU-T[4], работающий на скоростях 48, 56 и 64 Кбит/с и основывающийся на поддиапазонном кодировании с двумя каналами, каждый из которых кодируется с помощью АДИКМ[5]. Перед процессом оцифровки происходит обработка аналогового сигнала и разделение его по частотным полосам с помощью квадратурных зеркальных фильтров для получения двух поддиапазонов сигнала. Когда происходит получение двоичного потока данных АДИКМ, происходит мультиплексирование, а затем данные либо сохраняются, либо передаются дальше. Декодер выполняет обратный процесс: демультиплексирует и декодирует каждый поддиапазон двоичного потока данных, а затем производит рекомбинацию.