Введение
Стандарт кодирования речи 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), обеспечивающими значительно более высокое качество речи при меньшей скорости передачи данных.
Full Rate (FR or GSM FR or GSM 06.10 or sometimes simply GSM) was the first digital speech coding standard used in the GSM digital mobile phone system. It uses linear predictive coding (LPC). The bit rate of the codec is 13 kbit/s, or 1.625 bits/audio sample (often padded out to 33 bytes/20 ms or 13.2 kbit/s). The quality of the coded speech is quite poor by modern standards, but at the time of development (early 1990s) it was a good compromise between computational complexity and quality, requiring only on the order of a million additions and multiplications per second. The codec is still widely used in networks around the world. Gradually FR will be replaced by Enhanced Full Rate (EFR) and Adaptive Multi Rate (AMR) standards, which provide much higher speech quality with lower bit rate.
Технология
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 и других.