Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Свойства [ править ]

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

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

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

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

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

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

Технология [ править ]

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

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

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

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

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

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

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

История [ править ]

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

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

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

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

Программное обеспечение [ править ]

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

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

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

  • Габларски [23]
  • GStreamer
  • комплект для подключения аудио-разъема (netjack)
  • liboggz
  • Mumble (начиная с версии 1.2)
  • NexGenVoIP
  • Радио CHNC
  • РевАудио
  • SFLфон
  • Саундджек
  • TeamSpeak 3
  • СПЕЦИЯ
  • Dota 2 [24]
  • Counter Strike: глобальное наступление
  • Team Fortress 2 [25]

См. Также [ править ]

  • Сравнение форматов кодирования аудио
  • Opus (аудиоформат) - преемник CELT

Ссылки [ править ]

  1. ^ a b c Xiph.Org Аудиокодек CELT с ультранизкой задержкой - домашняя страница Архивировано 31 августа 2018 г. на Wayback Machine , проверено 1 сентября 2009 г.
  2. ^ a b c Презентация кодека, заархивированная 7 августа 2011 г. на Wayback Machine Тимоти Б. Террибери (65 минут видео в ~ 100 МБ OggTheora + Vorbis, см. также слайды презентации. Архивировано 10 августа 2011 г. на Wayback Machine) в PDF, ~ 2,3 МиБ)
  3. ^ a b Проект CELT IETF
  4. Фиона Глейзер (18 ноября 2010 г.). "Важно: предстоящее замораживание битового потока CELT!" . ffmpeg-devel.mplayerhq.hu - список рассылки обсуждений разработки и исправлений FFmpeg . mplayerhq.hu . Проверено 11 июня 2012 .
  5. ^ a b c d Кристофер Монтгомери (23 декабря 2010 г.). «Аудио следующего поколения: обновление CELT 20101223» . Демо-страницы Монти . Xiph.Org. Архивировано из оригинала на 2013-08-23 . Проверено 11 июня 2012 .
  6. ^ Дирк Бёзель (2011-04-18). "CELT beeindruckt beim 64 kb / s Multiformat Hörtest (2011)" . MPeX.net (на немецком языке). MPeX.net GmbH . Проверено 25 апреля 2011 .
  7. ^ Валин, Жан-Марк; Террибери, Тимоти Б .; Монтгомери, Кристофер ; Максвелл, Грегори (17 апреля 2009 г.), «Высококачественный речевой и аудиокодек с задержкой менее 10 мс» (PDF) , Транзакции IEEE по обработке звука, речи и языка , Общество обработки сигналов IEEE, 18 (1) , получено 16.02.2011
  8. ^ Фишер, Томас Р. (июль 1986), "Пирамида вектор квантователь", IEEE Transactions по теории информации , 32 (4), стр 568-583,. Дои : 10,1109 / TIT.1986.1057198
  9. ^ вторая версия проекта спецификации
  10. ^ Жан-Марк Валин (2007-12-09). «Экспериментальный выпуск Ghost / CELT 0.0.1» . Форумы Hydrogenaudio . Проверено 11 июня 2012 .
  11. ^ Xiph.Org (2007-12-08) Выпуски CELT - celt-0.0.1.tar.gz , дата обращения 01.09.2009
  12. ^ Monika Ermert (2009-11-13). «IETF kümmert sich um lizenzfreien Audiocodec» . heise онлайн . Проверено 12 февраля 2011 .
  13. ^ первый проект спецификации, представленный в IETF
  14. ^ IETF - Рабочая группа AVT ( 04.07.2009) Кодек преобразования с перекрытием энергии (CELT) , дата обращения 01.09.2009.
  15. ^ IETF - Рабочая группа AVT (2008-05-08) Формат полезной нагрузки RTP для кодека CELT, проверено 1 сентября 2009 г.
  16. Жан-Марк Валин (15 февраля 2011 г.). «Сложность CELT декодера» . CELT-dev . Xiph.Org. Архивировано из оригинала на 2012-04-02 . Проверено 11 июня 2012 .
  17. Жан-Марк Валин, Коэн Вос (октябрь 2010 г.). «Определение аудиокодека Opus» . Интернет-проекты IETF . Сетевая рабочая группа IETF . Проверено 11 июня 2012 .
  18. ^ Доступна Ekiga 3.1.0
  19. ^ FreeSWITCH: новый релиз на новый год
  20. ^ a b «Программное обеспечение, которое использует или поддерживает CELT» . CELT сайт . Xiph.Org . Проверено 12 июня 2012 .
  21. ^ http://ffmpeg.org/pipermail/ffmpeg-devel/2011-April/110850.html
  22. ^ http://git.videolan.org/?p=ffmpeg.git;h=89451dd6e4da40ed73b8bbee2d48d8d8be1d5b0c
  23. ^ "www.gablarski.org" . Архивировано из оригинала на 2010-07-03 . Проверено 17 октября 2010 .
  24. ^ http://dev.dota2.com/showthread.php?t=43087
  25. ^ http://www.teamfortress.com/post.php?id=25766

Внешние ссылки [ править ]

  • Официальная домашняя страница