Перейти к основному содержимому

Принцип сжатия G711

Алгоритм кодирования G.711 представляет собой процесс преобразования аналогового аудиосигнала в цифровую форму с использованием методов компандирования (логарифмической компрессии амплитуды сигнала). Давайте рассмотрим этот процесс шаг за шагом.

Шаг 1: Дискретизация

Сначала аналоговый аудиосигнал подвергается процессу дискретизации с частотой 8000 Гц (то есть каждые 125 мкс). Это означает, что сигнал будет представлен последовательностью отсчетов, взятых через равные промежутки времени.

Шаг 2: Квантование

Каждый отсчет сигнала затем квантуется, то есть преобразуется в целое число, соответствующее уровню сигнала. В случае G.711 используются 256 уровней (8 бит), что соответствует диапазону значений от -127 до +128.

Шаг 3: Компандирование

На этом этапе применяется логарифмическая компрессия амплитуды сигнала. Существует две версии компандирования: A-law и μ-law.

A-law (Европейская версия)

Формула для A-law компандирования выглядит следующим образом:

Формула 1.

где x — нормализованный уровень сигнала, y — сжатый уровень сигнала, A — коэффициент компрессии (обычно равен 87,6).

μ-law (Американская версия)

Формула для μ-law компандирования имеет вид:

Формула 2.

где x — нормализованный уровень сигнала, y — сжатый уровень сигнала.

Шаг 4: Кодирование

После компандирования полученные значения квантуются и кодируются в двоичный формат. Для этого используется 8-битное представление, где старший бит является знаком числа, а остальные биты — абсолютной величиной.

Пример кодирования

Рассмотрим пример кодирования одного отсчета сигнала с помощью μ-law:

Пусть у нас есть отсчет x = 0,75 Тогда:

Формула 3.

Теперь нужно перевести значение y обратно в 8-битное представление. Предположим, что мы используем линейное квантование:

Формула 4.

Таким образом, отсчет x = 0,75 будет закодирован как 8-битное число 119.

Заключение

Кодек G.711 является простым и эффективным способом кодирования голосовых сигналов благодаря использованию логарифмической компрессии. Его низкая сложность и минимальные требования к вычислительным ресурсам делают его идеальным выбором для приложений реального времени, таких как телефония и VoIP.

Вложения