CELT - CELT

CELT
Разработано Фонд Xiph.Org
Тип формата Аудио
Содержится Ogg
Расширен до Opus
Стандарт Документация
libcelt
Разработчики) Фонд Xiph.org , Жан-Марк Валин
Предварительный выпуск
0.11.1 / 15 февраля 2011 г . ; 10 лет назад ( 2011-02-15 )
Тип Аудиокодек , эталонная реализация
Лицензия BSD с двумя пунктами
Веб-сайт opus-codec .org

Преобразование с перекрытием энергии с ограничением ( CELT ) - это открытый, бесплатный формат сжатия звука с потерями и бесплатный программный кодек с особенно низкой алгоритмической задержкой для использования в аудиосвязи с малой задержкой . Алгоритмы открыто задокументированы и могут использоваться без ограничений патента на программное обеспечение . Разработка формата поддерживалась фондом Xiph.Org Foundation (как часть семейства кодеков Ogg ), а позже координировалась рабочей группой Opus Инженерной группы Интернета (IETF).

CELT был предназначен для преодоления разрыва между Vorbis и Speex для приложений, где требуется как высокое качество звука, так и низкая задержка. Он подходит как для речи, так и для музыки. Он заимствует идеи из алгоритма CELP , но позволяет избежать некоторых его ограничений, работая исключительно в частотной области .

Оригинальный автономный CELT был объединен с Opus . Таким образом, CELT как автономный формат сейчас заброшен и устарел. Разработка продолжается только для его гибридной формы в виде слоя Opus, интегрированного с SILK . В этой статье рассматривается исторический автономный формат; чтобы узнать об интегрированной форме и ее эволюции с момента интеграции в Opus, смотрите статью об Opus.

Характеристики

Центральная особенность CELT - низкая алгоритмическая задержка. Он допускает задержки, как правило, от 3 до 9 мс, но его можно настроить на значение менее 2 мс по цене большего битрейта для достижения аналогичного качества звука. CELT поддерживает моно и стерео звук и применим как к речи, так и к музыке. Он может использовать частоту дискретизации от 32 кГц до 48 кГц и выше и адаптивный битрейт от 24 кбит / с до 128 кбит / с на канал и выше.

Нет никаких известных проблем интеллектуальной собственности, относящихся к алгоритму CELT, и его эталонная реализация опубликована под разрешающей лицензией с открытым исходным кодом ( BSD с двумя пунктами ).

Как и Vorbis , CELT является полнополосным (весь диапазон человеческого слуха ) универсальным кодеком, то есть не специализированным для особых типов аудиосигналов и, следовательно, отличным от своего родственного проекта Speex . Формат обеспечивает прозрачные результаты при высоких битрейтах, а также очень достойное качество при более низких битрейтах. В целом, возможности сжатия, как говорят, значительно превосходят возможности MP3 , и в качестве еще одной полезной функции для приложений реального времени, таких как телефония, качество звука CELT при более низких битрейтах даже на уровне HE-AAC v1 благодаря складыванию полосы . В сравнительных тестах двойного слепого прослушивания он оказался заметно превосходит HE-AACv1 на скорости ~ 64 кбит / с.

Он имеет сравнительно низкую вычислительную сложность, напоминающую вариант AAC с малой задержкой (AAC-LD), и остается значительно ниже сложности Vorbis.

Это позволяет использовать постоянный и переменный битрейт. Если сигнал исчезает в минимальном уровне шума в речевых паузах и подобных случаях, передача может быть ограничена сигналом вывода комфортного шума на декодер. Большинство настроек формата с естественной потоковой передачей можно изменить на лету, не прерывая передачи.

Формат устойчив к ошибкам передачи. Потеря целых пакетов, а также битовые ошибки могут быть замаскированы с постоянным ухудшением качества звука ( маскирование потери пакетов , PLC).

Технология

блок-схема кодека

CELT - это кодек преобразования, основанный на модифицированном дискретном косинусном преобразовании (MDCT) и концепциях CELP (с кодовой книгой для возбуждения, но в частотной области).

Исходный сигнал, кодированный с помощью PCM, обрабатывается относительно небольшими перекрывающимися блоками для MDCT ( оконная функция ) и преобразуется в частотные коэффициенты. Выбор особенно короткого размера блока, с одной стороны, обеспечивает низкую задержку, но также приводит к плохому разрешению по частоте, которое необходимо компенсировать. Для дальнейшего уменьшения алгоритмической задержки за счет незначительной жертвы в качестве звука, по своей природе 50% перекрытия между блоками практически сокращается вдвое за счет отключения сигнала в течение одной восьмерки на обоих концах блока, соответственно. .

Коэффициенты сгруппированы так, чтобы напоминать критические полосы слуховой системы человека. Анализируется весь объем энергии каждой группы, а значения квантуются для сокращения данных и сжимаются посредством прогнозирования путем передачи только разности прогнозируемых значений ( дельта-кодирование ).

(Неквантованные) значения энергии полосы удаляются из необработанных коэффициентов DCT (нормализация). Коэффициенты результирующего остаточного сигнала (так называемая «форма полосы») кодируются с помощью квантования векторов пирамиды (PVQ, квантование сферических векторов ). Это кодирование приводит к кодовым словам фиксированной (предсказуемой) длины, что, в свою очередь, обеспечивает устойчивость к битовым ошибкам и не оставляет необходимости в энтропийном кодировании . Наконец, все выходные данные кодера кодируются в один поток битов с помощью кодировщика диапазона . В связи с PVQ, CELT использует технику, известную как сворачивание полос, которая обеспечивает аналогичный эффект репликации спектральной полосы (SBR) за счет повторного использования коэффициентов нижних полос для более высоких, но оказывает гораздо меньшее влияние на алгоритмическую задержку и вычислительную сложность, чем SBR. Это работает против «птичьих» артефактов , сохраняя больше богатства в соответствующих частотных диапазонах.

Декодер распаковывает отдельные компоненты из кодированного по диапазону потока битов, умножает энергию полосы на коэффициенты формы полосы и преобразует их обратно (через iMDCT) в данные ИКМ. Отдельные блоки повторно соединяются с использованием взвешенного сложения с перекрытием (WOLA). Многие параметры не кодируются явно, а вместо этого восстанавливаются с использованием тех же функций, что и кодировщик.

Для соединения каналов CELT может использовать M / S стерео или интенсивное стерео . Блоки можно описывать независимо от соседних кадров ( внутрикадр ); например, чтобы позволить декодеру перейти в текущий поток. С кодеками преобразования могут быть слышны так называемые артефакты пре-эха, потому что ошибка квантования резких, энергоемких звуков ( переходных процессов ) может распространяться по всему блоку DCT, и переходный процесс не маскирует их как назад во времени, так и вперед. . С помощью CELT каждый блок может быть дополнительно разделен, чтобы предотвратить появление таких артефактов.

История

Первая работа над планами и проектами преемника Vorbis была проведена в 2005 году на Xiph.org в рамках проекта Ghost (первоначально называвшегося «Vorbis II»). Это обсуждение вместе с создателем Vorbis Кристофером Монтгомери привело к интересу Жана-Марка Валина к кодеку с особенно низкой задержкой. Валин работает над CELT с 2007 года. В декабре 2007 года была опубликована первая черновая версия libcelt как версия 0.0.1, первоначально названная «Преобразование притирки с кодовым возбуждением». CELT была создана как технология IETF в июле 2009 года рабочей группой «ietfcodec». В мае 2009 года был опубликован проект формата полезной нагрузки RTP для кодека CELT .

В версии 0.9 прогнозирование основного тона, работающее в частотной области, использовавшейся до этого, было заменено менее сложным решением с парой пре- и постфильтров во временной области, которое внесло Раймонд Чен из Broadcom .

С CELT 0.11 от 4 февраля 2011 года формат был предварительно заморожен («мягкое замораживание») - за исключением возможности неожиданно необходимых последних изменений.

Вскоре после появления гибридного кодека CELT / SILK Opus (ранее известного как Harmony) разработка CELT как отдельного проекта была остановлена, вместо этого он жил на основе Opus, который направлен на обработку нижней части спектрального диапазона в временная область с линейным предсказанием (SILK) и более высокая часть в частотной области с MDCT . Черновик Opus зарегистрирован в IETF с сентября 2010 года.

Программное обеспечение

Библиотека программного обеспечения libcelt служит эталонной реализации для ЦЭЛТ, написанной в C и опубликованы в виде свободного программного обеспечения под собственной 3-п BSD-иш лицензии Xiph в.

Несмотря на то, что формат не был окончательно заморожен, он использовался во многих приложениях VoIP, таких как Ekiga и FreeSWITCH , которые перешли на CELT после перехода в режим soft-freeze в январе 2009 года, а также в Mumble , TeamSpeak и другом программном обеспечении. В апреле 2011 года поддержка CELT была включена в FFmpeg .

CELT также поддерживается или используется:

Смотрите также

использованная литература

внешние ссылки