Opus (кодек)

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

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

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

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

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

Основные возможности 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, AIMP, LAVfilters, PotPlayer и VLC player (начиная с 2.0.4). Анонсированы работы по поддержке Opus в голосовом чате Mumble и прошивке для аудиоплееров Rockbox. Разработчики популярных приложений для голосового чата Discord и TeamSpeak 3[21] также внедрили поддержку кодека.

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

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

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

См. также

Примечания

Ссылки