Введение

Стандарт кодирования речи Full Rate (FR, GSM FR, GSM 06.10 или иногда просто GSM) был первым цифровым стандартом кодирования речи, использованным в цифровой системе мобильной связи GSM. Он использует линейное предсказательное кодирование (LPC). Скорость передачи данных кодека составляет 13 кбит/с, или 1,625 бит на аудиообразец (часто дополняется до 33 байт/20 мс или 13,2 кбит/с). Качество кодируемой речи довольно низкое по современным меркам, но на момент разработки (начало 1990-х годов) это был хороший компромисс между вычислительной сложностью и качеством, требующий порядка миллиона сложений и умножений в секунду. Кодек до сих пор широко используется в сетях по всему миру. Постепенно FR будет заменен стандартами Enhanced Full Rate (EFR) и Adaptive Multi Rate (AMR), обеспечивающими значительно более высокое качество речи при меньшей скорости передачи данных.

Технология

GSM FR специфицирован в ETSI 06.10 (ETS 300 961) и основан на методе кодирования речи RPE LTP (Regular Pulse Excitation Long Term Prediction). Как и многие другие речевые кодеки с линейным предсказанием (LPC), в синтезирующем фильтре используется линейное предсказание. Однако, в отличие от большинства современных речевых кодеков, порядок линейного предсказания составляет всего 8. В современных узкополосных речевых кодеках порядок обычно равен 10, а в широкополосных – 16. Речевой кодировщик принимает 13-битный линейный PCM с частотой дискретизации 8 кГц. Это может поступать непосредственно от аналого-цифрового преобразователя в телефоне или компьютере, либо быть преобразованным из 8-битного нелинейного PCM со законами A или μ стандарта G.711 из PSTN с использованием таблицы соответствий. В GSM кодированная речь передается в канальный кодировщик, специфицированный в GSM 05.03. В направлении приема выполняются обратные операции. Кодек обрабатывает фреймы по 160 отсчетов, что соответствует 20 мс, и это является минимально возможной задержкой транскодера, даже при использовании бесконечно быстрых процессоров и нулевой сетевой задержке. Операционным требованием является задержка транскодера менее 30 мс. Задержка транскодера определяется как интервал времени между моментом получения речевого фрейма из 160 отсчетов на входе кодировщика и моментом выдачи соответствующих 160 реконструированных отсчетов речи декодером речи с частотой дискретизации 8 кГц.

Реализация

Свободный кодек libgsm может кодировать и декодировать GSM Full Rate аудио. "Libgsm" был разработан в 1992–1994 годах Юттой Дегенер и Карстеном Борманном, в то время работавшими в Техническом университете Берлина. Поскольку GSM-кадр имеет размер 32,5 байта, эта реализация также определила 33-байтовое представление GSM-кадра с добавлением заполняющих бит (что при частоте кадров 50/с является основой для ошибочного утверждения о том, что битрейт GSM составляет 13,2 кбит/с). Этот кодек также может быть скомпилирован для Wine, чтобы обеспечить поддержку GSM-аудио. Существует также плагин Winamp для необработанного GSM 06.10, основанный на libgsm. GSM 06.10 также используется в VoIP-программном обеспечении, например, в Ekiga, QuteCom, Linphone, Asterisk (PBX), Ventrilo и других.