Opus (кодек)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Opus
Изображение логотипа
Расширение .opus
MIME-тип audio/opus[1] audio/ogg [2]
Разработчик рабочая группа IETF по кодекам
Опубликован 11 сентября 2012[4][5]
Последний выпуск 1.5.2 (2024-04-12)
Тип формата аудиоформат
Содержится в Ogg, Matroska, WebM
Расширен из SILK, CELT
Стандарт(ы) RFC 6716[3]
Открытый формат? Да
Сайт opus-codec.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Opus (ранее Harmony) — аудиокодек для сжатия с потерями, разработанный сообществом Internet Engineering Task Force (IETF) специально для применения в приложениях реального времени в Интернете[6]. Является открытым форматом, стандартизованным в RFC 6716, a эталонная реализация распространяется под трёхчастной лицензией BSD. Все известные патенты, под которые подпадает кодек Opus, доступны под лицензией royalty-free[6].

Основное преимущество данного кодека — низкая задержка кодирования (от 2,5 до 60 мс, настраиваемо), более сильное сжатие аудиоданных, поддержка многоканального звука (до 255 каналов).

Формат битового потока был зафиксирован 8 января 2012 года.

Основные возможности

[править | править код]

Основные возможности Opus:

  • Частота дискретизации от 8 до 48 кГц[7];
  • Битрейт от 6 до 510 кбит/с[8];
  • Поддерживаются режимы постоянного и переменного битрейта;
  • Задержка кодирования от 2,5 до 60 мс, настраиваемо;
  • Существуют реализации, использующие арифметику либо с фиксированной запятой, либо с плавающей запятой;
  • Многие параметры (практически, все, за исключением частоты дискретизации и числа каналов) можно менять «на лету», без переинициализации и, следовательно, прерывания потока;
  • При потере блока (например, при передаче посредством UDP) возможна попытка восстановления сигнала.
  • Не является обязательной синхронизация настройки частоты дискретизации между кодером и декодером. Рекомендуется настраивать частоту дискретизации при декодировании, исходя из вычислительной мощности[9].

Opus продемонстрировал более высокое качество[10] на битрейте 64 кбит/с по сравнению c Nero HE-AAC, Vorbis и AAC LC, но несколько ниже, чем Apple HE-AAC.[11]

Частота дискретизации

[править | править код]

Поддерживаемые частоты дискретизации были определены в RFC 6716RFC:[3]

Сокращение Полоса пропускания звука, кГц Эффективная частота дискретизации, кГц
NB (narrowband) 4 8
MB (medium-band) 6 12
WB (wideband) 8 16
SWB (super-wideband) 12 24
FB (fullband) 20[12] 48

Контейнеры

[править | править код]

Звуковые данные кодека могут быть упакованы в контейнер Ogg. Содержимое такого Ogg Opus потока должно быть определено как audio/ogg; codecs=opus с рекомендованным расширением файла .opus.[2] Поддержка упаковки в контейнеры Matroska была реализована в MKVToolNix.[13] Opus также является зарегистрированным форматом MPEG-TS[14] и контейнеров MP4[15]. Спецификация медиаконтейнера WebM предусматривает использование кодека Opus для кодирования аудиоданных.

Ключевые особенности

[править | править код]

Сравнение с аналогами

[править | править код]
Сравнение эффективности кодирования разных кодеков в зависимости от битрейта[16]

В 2011 году Яном Скёглундом из Google были проведены две серии тестов[17][18], в ходе которых было проведено сравнение кодирования и декодирования в Opus на основе оценки группы экспертов и неподготовленных слушателей. По его выводам, для стереомузыки Opus при 64 кбит/20 мс, 80 кбит/10 мс и 128 кбит/5 мс дает такое же качество, как MP3 128 кбит, AAC-LC 96 кбит и лучшее качество, чем G.719 64 кбит.

История появления

[править | править код]

4 февраля 2013 года была анонсирована новость[19] о сеансе видеосвязи напрямую между браузерами Mozilla Firefox Nightly и Google Chrome Beta 25. Этот сеанс анонсировал поддержку обоими браузерами стандарта WebRTC, на основе которого и был совершен сеанс. Соединение осуществлялось с помощью дополнения RTCPeerConnection. Для передачи звука и видео используются свободные кодеки Opus и VP8, для шифрования — DTLS-SRTP, для поддержки NAT — ICE.

Использование

[править | править код]

Черновик стандарта WebRTC «WebRTC Audio Codec and Processing Requirements» от 15 октября 2013 года содержит требование поддержки клиентами форматов Opus и G.711[20][21].

Поддерживается в разработанных Mozilla программах Firefox и Thunderbird с 15 версии[22].

Аудиоформат Opus поддерживают такие приложения, как GStreamer, FFMpeg, foobar2000, K-Lite Codec Pack, AIMP, LAVfilters, PotPlayer и VLC player (начиная с 2.0.4). Анонсированы работы по поддержке Opus в голосовом чате Mumble и прошивке для аудиоплееров Rockbox. Разработчики популярных приложений для голосового чата Discord и TeamSpeak 3[23] также внедрили поддержку кодека.

Популярный видеохостинг YouTube использует Opus для звуковых дорожек при воспроизведении любого видео.[24]

Патентные претензии

[править | править код]

Компании Huawei и Qualcomm предъявили[25][26] претензии о нарушении собственных патентов, которые затем были отвергнуты как несостоятельные[27].

Примечания

[править | править код]
  1. Network Working Group. RTP Payload Format and File Storage Format for Opus Speech and Audio Codec. Opus codec. IETF (4 июля 2011). Дата обращения: 26 октября 2011. Архивировано из оригинала 29 сентября 2012 года.
  2. 1 2 Ogg Encapsulation for the Opus Audio Codec. IETF (28 апреля 2015). Дата обращения: 30 июня 2015.
  3. 1 2 Valin, Jean-Marc; Vos, Koen; Terriberry, Timothy B. Definition of the Opus Audio Codec (11 сентября 2012). Дата обращения: 21 июня 2014. Архивировано 12 декабря 2015 года.
  4. https://lists.xiph.org/pipermail/opus/2012-September/001698.html
  5. https://hacks.mozilla.org/2012/09/its-opus-it-rocks-and-now-its-an-audio-codec-standard/
  6. 1 2 "Newly standardized Opus audio codec fills every role from online chat to music". Ars Technica (англ.). Архивировано 7 июня 2017. Дата обращения: 31 мая 2018.
  7. Opus Codec. opus-codec.org. — «Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband)». Дата обращения: 12 марта 2016. Архивировано 17 мая 2019 года.
  8. Opus Codec. opus-codec.org. — «Bitrates from 6 kb/s to 510 kb/s». Дата обращения: 12 марта 2016. Архивировано 17 мая 2019 года.
  9. OpusFAQ — XiphWiki. Дата обращения: 31 августа 2015. Архивировано 3 марта 2016 года.
  10. Raymond Chen et al. Opus Testing Архивная копия от 9 марта 2013 на Wayback Machine. IETF 80
  11. Maxwell, Greg 64kbit/sec stereo multiformat listening test - unofficial results page. Xiph.org Foundation (2011). Дата обращения: 19 июня 2011. Архивировано из оригинала 29 сентября 2012 года.
  12. Несмотря на то, что Теорема Котельникова лимитирует полосу пропускания половиной частоты дискретизации, Opus не кодирует аудио выше чем 20 кГц, общепринятым порогом человеческого восприятия звука.
  13. Bunkus, Moritz (2013-09-16). "MKVToolNix v6.4.0 released". Matroska users (Mailing list). Архивировано 25 декабря 2013. Дата обращения: 24 декабря 2013.
  14. SMPTE Registration Authority, LLC Registrations. SMPTE Registration Authority, LLC. Дата обращения: 31 мая 2018. Архивировано 13 октября 2014 года.
  15. The 'MP4' Registration Authority. Дата обращения: 31 мая 2018. Архивировано 28 августа 2004 года.
  16. Codec Landscape (англ.). opus-codec.org. Дата обращения: 12 апреля 2024.
  17. Архивированная копия. Дата обращения: 31 августа 2015. Архивировано 14 июля 2015 года.
  18. Архивированная копия. Дата обращения: 31 августа 2015. Архивировано 14 июля 2015 года.
  19. Hello Chrome, it's Firefox calling! (англ.). Mozilla Hacks – the Web developer blog. Дата обращения: 31 мая 2018. Архивировано 28 мая 2018 года.
  20. RFC 7874 - WebRTC Audio Codec and Processing Requirements (англ.). datatracker.ietf.org. Дата обращения: 31 мая 2018. Архивировано 24 марта 2016 года.
  21. Google proposes VP8 and Opus for WebRTC standard - The H Open: News and Features (англ.). www.h-online.com. Дата обращения: 31 мая 2018. Архивировано 28 мая 2018 года.
  22. Media formats supported by the audio and video elements. MDC. Дата обращения: 31 мая 2018. Архивировано 27 июня 2010 года.
  23. TeamSpeak 3 Client 3.0.10 released - TeamSpeak. Дата обращения: 3 февраля 2017. Архивировано 2 апреля 2016 года.
  24. encoding - What audio formats and codecs are used for YouTube videos? Sound Design Stack Exchange. Дата обращения: 27 июля 2020. Архивировано 27 июля 2020 года.
  25. Qualcomm Incorporated's Statement about IPR related to draft-ietf-codec-opus-05 (англ.). IPR Details. Дата обращения: 31 мая 2018. Архивировано 10 октября 2015 года.
  26. Huawei Technologies Co.,Ltd's Statement about IPR related to draft-ietf-codec-opus-11 (англ.). IPR Details. datatracker.ietf.org. Дата обращения: 31 мая 2018. Архивировано 14 декабря 2012 года.
  27. It's Opus, it rocks and now it's an audio codec standard! (англ.). Mozilla Hacks – the Web developer blog. Дата обращения: 31 мая 2018. Архивировано 2 июня 2017 года.