Opus (кодек)

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

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

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

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

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

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

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

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

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

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

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

Контейнеры

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

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

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

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

4 февраля 2013 года была анонсирована новость[17] о сеансе видеосвязи напрямую между браузерами 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[18][19].

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

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

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

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

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

См. также

Примечания

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

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.