Кодек 2 - Codec 2
Кодек 2 это аудио с низким битрейтом кодек (кодирование речи ) то есть патент бесплатно и Открытый исходный код.[1] Кодек 2 сжимает речь с помощью синусоидальный кодирование, метод, специально предназначенный для людей речь. Скорость передачи данных от 3200 до 450 бит / с была успешно создана. Codec 2 был разработан для использования в любительское радио и другие голосовые приложения с высокой степенью сжатия.
Обзор
Кодек был разработан Дэвидом Грантом Роу при поддержке и сотрудничестве других исследователей (например, Жан-Марк Валин из Opus ).[2]
Кодек 2 состоит из режимов кодека 3200, 2400, 1600, 1400, 1300, 1200, 700 и 450 бит / с. Он превосходит большинство других низкоскоростных речевые кодеки. Например, он использует половину полосы пропускания Продвинутое многополосное возбуждение кодировать речь с аналогичным качеством.[нужна цитата ] Речевой кодек использует 16-битный PCM дискретизированный звук и вывод упакованных цифровых байтов. При отправке упакованных цифровых байтов он выводит дискретизированный звук PCM. Частота дискретизации звука установлена на уровне 8 кГц.
В эталонная реализация является открытым исходным кодом и свободно доступен в GitHub репозиторий.[3] Исходный код выпущен на условиях версии 2.1 Стандартная общественная лицензия ограниченного применения GNU (LGPL).[4] Он запрограммирован в C и текущий исходный код требует арифметика с плавающей запятой, хотя сам алгоритм этого не требует. В эталонный пакет программного обеспечения также входит мультиплексирование с частотным разделением цифровой голосовой программный модем и графический пользовательский интерфейс на основе WxWidgets. Программное обеспечение разработано на Linux и порт для Майкрософт Виндоус создан с Cygwin предлагается в дополнение к Apple Macintosh версия.
Кодек был представлен на различных конференциях и получил награду 2012 г. ARRL Премия за технические инновации,[5] и награда за лучшую презентацию на конференции Linux Australia.[6]
Некогерентный PSK
Роу также создал мультиплексирование с частотным разделением (FDM) модем, который передает цифровой голос (DV) только в полосе радиочастот 1,3 кГц.[7] Кодек и модем FDM используются каждый день в радиолюбительских коротковолновых диапазонах с использованием как аппаратной реализации SM1000, так и приложения FreeDV.
Этот модем работает со скоростью 50 бод и битрейтом 1600 бит / с. Он отправляется с использованием шестнадцати несущих QPSK FDM (по 2 бита каждая) или 32 бита 50 раз в секунду. Для создания кадра вокодера необходимо 64 бита, поэтому эффективная частота его составляет 25 Гц. 64 бита содержат 52 бита данных вокодера и 12 битов прямого исправления ошибок (Golay). Таким образом, для вокодера используются эффективные 1300 бит / с. Отдельная несущая BPSK отправляется в середине спектра (1500 Гц) для синхронизации.
В Обозначение излучения МСЭ - это J2E для полезной нагрузки телефона и J2D для полезной нагрузки данных.
Связный PSK
Вторая форма волны модема FDM была разработана для вокодера 700 бит / с. Этот модем работает с символьной скоростью 75 бод, используя когерентную квадратурную фазовую манипуляцию (QPSK) с семью поднесущими. Двойной набор поднесущих используется в качестве канала разнесения. Этот канал разнесения используется для борьбы с эффектами замирания при распространении коротких волн. Модем по-прежнему будет работать с ошибкой настройки ± 40 Гц.
Модем FDM отправляет и принимает ряд поднесущих 75 раз в секунду. Однако для создания кадра модема требуется шесть из этих строк. Во-первых, два опорной фазы пилот-сигнала строки (28 бит), затем два речевых вокодера рядов (28 бит), и, наконец, еще две строки для второго кадра речевого вокодера (28 бит). Затем процесс повторяется до тех пор, пока на передатчике будет нажата клавиша «нажми и говори» (PTT).
Таким образом, длина кадра модема составляет 84 бита. 56 битов используются для передачи речи, и 28 битов используются для опорного фазы пилот-сигналов. Именно эти пилоты делают этот модем связным. Они используются для коррекции фаз полученных битов данных. Скорость передачи данных составляет 1050 бит / с (75 бод × 14 бит). Эффективная скорость передачи данных составляет 700 бит / с (75 бод / 6 или 12,5 бод × 56 бит). Каждая строка из 14 бит отправляется как семь несущих QPSK (2 бита на несущую).
Время модема также имеет значение, поскольку каждый кадр речевого вокодера выводит 28 бит каждые 40 мс. Поскольку модем имеет кадр модема 80 мс, он может транспортировать два кадра речевого вокодера.
Для каждой строки имеется 100 комплексных аудиосэмплов IQ (синфазных и квадратурных) с частотой 7500 Гц. Всего 600 отсчетов для кадра модема. Таким образом, 100 × 6 * 12,5 соответствует частоте дискретизации 7500 Гц. Используя фильтр преобразования скорости, приложению предоставляется интерфейс 8 кГц, который намного лучше совместим со звуковыми картами. Имеется 640 сложных аудиосэмплов с частотой 8 кГц. В прошивке такое преобразование скорости не требуется.
Модем FDM работает с центральной частотой 1500 Гц. Начальные частоты поднесущих FDM устанавливаются с использованием функции расширения. Это немного изменяет интервал между каждой поднесущей, каждая поднесущая левее. Различие примерно 105 Гц справа и примерно 109 Гц слева. Эта конструкция, наряду с ограничением спектра, улучшает отношение пиковой мощности к средней (PAPR). Измеренный Пик-фактор составляет около 8,3 дБ с ограничением и около 10,3 дБ без ограничения.
Форма волны модема FDM потребляет разную полосу пропускания в зависимости от того, включен ли канал разнесения. Около 750 Гц на группу из семи поднесущих. Обычно вы хотите использовать разнесение на коротких волнах, но необязательно на VHF и выше.
Обозначение излучения ITU - J2E для полезной нагрузки телефона и J2D для полезной нагрузки данных.
Ортогональный PSK
В 2018 году был выпущен третий модем на базе Мультиплексирование с ортогональным частотным разделением каналов (OFDM). Этот модем работает на скорости 50 бод, значение по умолчанию - 17.QPSK перевозчики. Этот параметр и многие другие были сделаны настраиваемыми для соответствия другим схемам сигналов OFDM. Модем может работать с погрешностью настройки до ± 60 Гц.
С 17 операторами он использует Циклический префикс длительность 2 мс и время символа 18 мс. Время символа обеспечивает символьную скорость модуляции 55,556 бод. При частоте дискретизации 8 кГц получается 144 отсчета символов и 16 отсчетов циклического префикса, всего 160 отсчетов для каждой из семи строк и требующая полосы пропускания 994 Гц. Количество перевозчиков достаточно низкое, чтобы Дискретное преобразование Фурье (DFT) используется вместо Быстрое преобразование Фурье (БПФ), который работает с достаточной скоростью на 32-битных устройствах с плавающей запятой (таких как STM32 как используется в устройстве SM1000).
Отличие этого модема от многих других конструкций OFDM заключается в том, что он использует несколько строк данных для отправки всех битов. С 17 несущими это приводит к семи строкам данных, всего 238 битов. Эти биты содержат четыре слова вокодера 700 бит / с по 28 бит каждое и такое же количество Код проверки на четность с низкой плотностью (LDPC), плюс четыре текстовых бита и 10-битное уникальное слово синхронизации. Каждому пакету данных предшествует 19 несущих БПСК пилот-сигнал. Две дополнительные несущие используются для ограничения каждой несущей QPSK с тремя пилотами для усреднения фазы и обеспечения согласованности.
Этот модем был написан в C99 стандарт, чтобы использовать современные сложная математика Особенности.
Обозначение излучения ITU - J2E для полезной нагрузки телефона и J2D для полезной нагрузки данных.
Технологии
Внутренне алгоритмы параметрического кодирования звука работают с кадрами ИКМ длительностью 10 мс, используя модель человеческого голоса. Каждый из этих аудиосегментов объявлен озвучен (гласная) или глухая (согласная).
Кодек 2 использует синусоидальное кодирование моделировать речь, которая тесно связана с речью многополосное возбуждение кодеки. Синусоидальное кодирование основано на закономерностях (периодичности) в структуре частот обертона и слоев гармонических синусоид. Разговорный звук воссоздается путем моделирования речи как суммы гармонически связанных синусоидальных волн с независимыми амплитудами, называемых Линейные спектральные пары, или LSP, поверх определенного основная частота голоса говорящего (высота тона). (Квантованная) высота и амплитуда (энергия) гармоники кодируются, а с LSP обмениваются по каналу в цифровом формате. Коэффициенты LSP представляют собой Кодирование с линейным прогнозированием (LPC) модели в частотной области и позволяют надежно и эффективно квантовать параметры LPC.[8]
Цифровые байты представлены в формате битового поля, которые упакованы вместе в байты. Эти битовые поля также необязательно с серым кодом прежде, чем быть сгруппированы вместе. Серое кодирование может быть полезно при отправке необработанных данных, но обычно приложение просто выделяет битовые поля. Битовые поля составляют различные параметры, которые сохраняются или обмениваются (высота звука, энергия, логические значения голоса, LSP и т. Д.).
Например, в режиме 3200 20 мс аудио преобразуются в 64 бита. Таким образом, 64 бита будут выводиться каждые 20 мс (50 раз в секунду) для минимальной скорости передачи данных 3200 бит / с. Эти 64 бита отправляются в виде 8 байтов в приложение, которое должно развернуть битовые поля или отправить байты по каналу данных.
Другой пример - режим 1300, который отправляет 40 мс звука и выводит 52 бита каждые 40 мс (25 раз в секунду) для минимальной скорости 1300 бит / с. Эти 52 бита отправляются в виде 7 байтов в приложение или канал данных.
Принятие
Кодек 2 в настоящее время используется в нескольких радиостанциях и программно-определяемых радиосистемах.
Codec2 также был интегрирован в FreeSWITCH и есть патч доступен для поддержки в Звездочка.
На околоземной орбите на любительском радио появился цифровой речевой ретранслятор FM-to-Codec2 CubeSat LilacSat-1 (позывной ON02CN, QB50 созвездие), который был запущен и впоследствии развернут с Международная космическая станция в 2017 году.[14]
История
Видный свободное программное обеспечение защищать и радиолюбитель Брюс Перенс лоббировал создание кодека свободной речи для работы со скоростью менее 5 кбит / с. Поскольку у него самого не было опыта, в 2008 году он обратился к Жан-Марку Валину, который представил его ведущему разработчику Дэвиду Гранту Роу, который работал с Валином над Speex несколько раз. Сам Роу также является радиолюбителем (радиолюбитель позывной VK5DGR) и имеет опыт создания и использования голосовых кодеков и других алгоритмов обработки речевых сигналов. Он получил докторскую степень в области кодирования речи в 1990-х годах и участвовал в разработке одного из первых спутниковая телефония системы (Mobilesat ).
Он согласился с задачей и объявил о своем решении работать над форматом 21 августа 2009 года. Он основывался на исследованиях и выводах своей докторской диссертации.[15][16] Основное синусоидальное моделирование восходит к разработкам Роберта Дж. Маколея и Томаса Ф. Кватири (лаборатории Линкольна Массачусетского технологического института) в середине 1980-х годов.
В августе 2010 года Дэвид Роу опубликовал альфа-версию 0.1.[17] Версия 0.2 была выпущена в конце 2011 года, в ней был представлен режим с 1400 бит / с и значительные улучшения в квантовании.
В январе 2012 г. linux.conf.au Жан-Марк Валин помог улучшить квантование спектральных пар линий, с которым Роу менее знаком.[18] После нескольких изменений доступных режимов скорости передачи данных зимой и весной 2011/2012 гг. После мая того же года стали доступны режимы 2400, 1400 и 1200 бит / с.
Codec 2 700C, новый режим с битрейтом 700 бит / с, был завершен в начале 2017 года.[19]
В июле 2018 года был продемонстрирован экспериментальный режим 450 бит / с, который был разработан в рамках магистерской диссертации в Университете Эрлангена-Нюрнберга. Путем умной тренировки векторного квантования скорость передачи данных может быть дополнительно снижена на основе принципа режима 700C.[20]
использованная литература
- ^ "DCC2011-Codec2-VK5DGR" (PDF).
- ^ «Квантизатор высоты звука для Codec2». Архивировано из оригинал на 19.06.2015.
- ^ «Репозиторий для исходного кода Codec 2».
- ^ «Codec2 - голосовой кодек с открытым исходным кодом и низкой пропускной способностью». Slashdot.
- ^ Премия ARRL за технические инновации в 2012 году
- ^ «Конференция Linux Australia 2012». Архивировано из оригинал на 2012-11-29. Получено 2012-08-02.
- ^ «Модем FDMDV».
- ^ «Методы гармонического синусоидального кодирования» (PDF).
- ^ "FreeDV".
- ^ «FreeDV, CODEC2 и WaveformAPI». Архивировано из оригинал на 2015-04-02. Получено 2015-03-06.
- ^ «Представляем смарт-микрофон SM1000».
- ^ «Радио с программным определением Quisk».
- ^ "Описание протокола M17" (PDF).
- ^ "Спутники группировки QB-50, развернутые с МКС". Сайт Американской радиорелейной лиги. 2017-11-15. Получено 2019-03-31.
- ^ http://www.itr.unisa.edu.au/~steven/thesis/dgr.pdf
- ^ http://www.rowetel.com/blog/?p=128
- ^ http://www.rowetel.com/blog/?p=839
- ^ http://jmspeex.livejournal.com/10446.html
- ^ «Кодек с открытым исходным кодом кодирует голос только до 700 бит в секунду». Slashdot. Получено 2019-03-31.
- ^ «Codec2 HF цифровой голос со скоростью 450 бит / с». Новости Саутгейтского любительского радио. 2018-07-08. Получено 2019-03-31.