Перейти к содержанию

Opus (кодек)

Материал из Википедии — свободной энциклопедии
Opus
Изображение логотипа
Расширение .opus
MIME-тип audio/opus[1] audio/ogg [2]
Разработчик рабочая группа IETF по кодекам
Опубликован 11 сентября 2012[3][4]
Последний выпуск 1.6.1 (2026-01-14)
Тип формата аудиоформат
Содержится в Ogg, Matroska, WebM
Расширен из SILK, CELT
Стандарт(ы) RFC 6716[5]
Открытый формат? Да
Сайт 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:[5]

Сокращение Полоса пропускания звука, кГц Эффективная частота дискретизации, кГц
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. ↑ https://lists.xiph.org/pipermail/opus/2012-September/001698.html
  4. ↑ https://hacks.mozilla.org/2012/09/its-opus-it-rocks-and-now-its-an-audio-codec-standard/
  5. 1 2 Terriberry, Timothy B.; Valin, Jean-Marc; Vos, Koen. Definition of the Opus Audio Codec (11 сентября 2012). Дата обращения: 21 июня 2014. Архивировано 12 декабря 2015 года.
  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 (16 сентября 2013). 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. Архивировано 11 октября 2011 года.
  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 года.