Аудио опус что за формат
Файл формата OPUS открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате OPUS
Расширение OPUS (полн. Opus Audio File) относится к категории цифровых аудиофайлов, представляющих собой открытый поток данных (аудиокодек). Opus разработан и адаптирован для работы в Skype, Mozilla и Xiph.org.
Отличительная особенность данного расширения – это кодировка с использованием международного стандарта IETF RFC 6716. Формат широко применяется интерактивными программами в режиме реального времени в сети Интернет с помощью потоковой адресации.
Основными преимуществами OPUS являются высокое качество аудио и хорошее сжатие, достигаемые посредствам потоковой передачи данных с динамической адаптацией. В основе формата лежат технологии и алгоритмы трансляции от Skype и Xiph.org (кодеки SILK и CELT соответственно). На сегодняшний день OPUS является основным аудиокодеком Skype.
В качестве контейнера для хранения формата OPUS используется Ogg. Фактическое воспроизведение расширения может быть реализовано с применением широкого набора аудио-проигрывателей, тогда как для других кодеков необходима инсталляция дополнительных внешних плагинов libopus.
Группа разработчиков данного расширения предусмотрительно позаботилась о возможности получения сборных данных о файлах OPUS, а также трансляции данных файлов в широко распространенный аудио-формат WAV (с обратной конвертацией).
В ОС Windows генерация расширения возможна с использованием медиа-проигрывателя foobar2000 с предварительно инсталлированными аудиокодеками Free Encoder Pack.
Программы для открытия OPUS файлов
Расширение OPUS адаптировано для работы исключительно на базе ОС Windows.
Для того чтобы воспроизвести или транслировать OPUS в другой формат хранения данных, можно воспользоваться одним из следующих программных плагинов:
В случае если при воспроизведении формата возникает ошибка: либо поврежден или заражен вирусом исходный файл, либо осуществляется открытие OPUS файла с применением некорректной программной утилиты.
Конвертация OPUS в другие форматы
Являясь цифровым аудио форматом представления данных, OPUS может быть конвертирован в схожие расширения, представляющие собой media-файлы.
В частности, с использованием внутреннего транслятора одного из аудиоплееров (например, Media Player Classic или VLC media player), OPUS файл может быть преобразован в MP3 или WAV.
Осуществить преобразование данных из OPUS (например, в тот же MP3), можно и в режиме онлайн через один из Интернет-ресурсов, например, fConvert.
Почему именно OPUS и в чем его достоинства?
Основными преимуществами OPUS являются высокое качество аудио и хорошее сжатие, достигаемые посредствам потоковой передачи данных с динамической адаптацией.
Однако, следует признать, что данное расширение не является столь востребованным и популярным среди пользователей аудиозаписей, как, например, MP3 или WAV.
Формат файла аудиоданных с потерями, закодированный аудиокодеком IETF (Internet Engineering Task Force) и сохраненный в контейнере OGG. Он используется интерактивными приложениями в реальном времени в Интернете (VoIP, потоковая передача, веб-фреймворки).
Опус про Opus. Новый кодек — прощай, MP3?
Почему так? Ведь кодирование с потерями — это неизбежное ухудшение качества звука. Простому обывателю вполне может показаться, что у MP3 давно есть альтернативы — FLAC, APE и прочие алгоритмы компрессии аудиоданных с возможностью идентичного восстановления волновой формы после декодирования. Суждение о том, что появление алгоритмов сжатия звука без потерь составит MP3 конкуренцию во всех отношениях, — очень поверхностно. Помимо качества звука, за которое так переживают любители музыкальных коллекций, существует еще немало других объективных причин, по которым MP3 не может быть забыт и заменен принципами сжатия без потерь.
Прежде всего, потому что форматы кодирования звука с потерями используются не только для музыки, но и для передачи голоса через Интернет. Главный козырь MP3 и других механизмов сжатия с потерями — эффективное использование каналов передачи. Чтобы организовать IP-телефонию, необходимо обеспечить внятную речь как можно большему числу абонентов. При этом качество звука уходит на второй план. Кроме этого, очень важна возможность «мгновенного» декодирования потока, без которого затрудняется синхронный обмен информацией. В данном случае использование (даже теоретически) алгоритмов сжатия без потерь приводило бы к сильным временным задержкам, и интерактивное общение было бы просто невозможным.
Тем не менее MP3 не лишен недостатков. Не секрет, что низкий битрейт «съедает» детали звука, наделяя его к тому же целым набором неприятных артефактов — призвуками, свистом и звоном, разного рода искажениями. При использовании MP3 в IP-телефонии наблюдаются большие временные задержки из-за необходимости дополнительной буферизации данных.
⇡#Opus: новое слово в цифровом звуке
Новый открытый кодек Opus лишен самых серьезных недостатков MP3, при этом он сохранил все достоинства «народного» кодека и даже приумножил их.
Структура Opus позволяет ему эффективно справляться со звуковыми артефактами. Для этого была предложена многоступенчатая архитектура обработки аудиосигнала. Основной аргумент, который говорит в пользу применения нового кодека для IP-телефонии, — низкая временная задержка.
Основную работу над созданием уникального алгоритма сжатия вели несколько человек: Jean-Marc Valin (Xiph.Org, Octasic, Mozilla Corporation), Koen Vos (Skype) и Timothy B. Terriberry (Xiph.Org, Mozilla Corporation). Не обошлось и без вездесущей Google — по словам самих создателей Opus, интернет-гигант оказал значительную поддержку при разработке и тестировании кодека.
Один из создателей кодека Opus — Jean-Marc Valin
Движок нового кодека основывается на двух независимых стандартах, предложенных Xiph.Org Foundation и Skype Technologies S.A. (принадлежит Microsoft). Новый кодек является гибридным решением, он сочетает в себе технологии кодеков CELT (Constrained Energy Lapped Transform) и SILK. Последний используется для реализации связи в Skype.
⇡#Как работает Opus
Принцип работы кодека не нов, но оригинален и главное — позволяет получить очень хороший результат на выходе. Поступивший сигнал кодируется SILK или CELT избирательно.
Первый движок (SILK) применяется для компрессии голоса, а также в тех случаях, когда требуется эффективно расходовать пропускную способность канала связи. Обрабатываемый аудиосигнал анализируется кодеком на предмет наличия человеческой речи. Голосовые составляющие отделяются от прочих звуков, после чего кодек выполняет анализ частотной характеристики звука, понижая уровень дискретизации для данных, содержащих голосовую информацию, то есть речь. Затем Opus исследует присутствующие шумы и оптимизирует сигнал для определенного битрейта. Далее кодек преобразовывает сигнал с помощью фильтра предварительной очистки. Используя речевые кадры, модуль предсказания частоты аудиосигнала вносит изменения в последующие кадры, после чего частотное квантование нормирует частоты человеческой речи. Далее следует важный этап обработки звука — устранение искажений, возникающих при недостаточно высоком битрейте. После этого используется модуль формирования шума квантования, который снижает шумы внутри рабочей полосы, вытесняя их за пределы рабочего диапазона. На заключительном этапе интервального кодирования SILK работает с дискретными величинами, которые могут принимать ограниченное число значений, — осуществляется покадровый вывод сигнала.
В процессе кодирования аудиоданных с высоким качеством, например музыки, задействуется модуль CELT. Его механизм схож с принципом работы наиболее популярных кодеков с потерями и завязан на дискретных косинусных преобразованиях, а также на «оптимизации» звука. Последняя состоит в том, что из сигнала удаляются составляющие, которые не несут полезной нагрузки для слуха человека, — до кодирования он их или не слышит, или слышит с большим трудом.
Если заглянуть в настройки кодирования, например в программе EZ CD Audio Converter (бывший Easy CD-DA Extractor), можно увидеть, что новый кодек предлагает выбрать режим сжатия — звук или музыку. Эта настройка и определяет приоритет того или иного алгоритма кодирования Opus.
Opus поддерживает частоты дискретизации от 8 до 48 кГц. Кодирование звука возможно в диапазоне битрейта 6—510 кбит/с. Длительность кадров варьируется от 2,5 до 20 мс.
Кодек осуществляет кодирование в режимах моно и стерео, используя технологию постоянного и переменного битрейта, а также поддерживает компрессию до 255 каналов.
⇡#Opus: наглядная победа
Универсальность структуры кодека Opus позволила ему на невысоком битрейте обойти самых главных конкурентов — Apple HE-AAC, Nero HE-AAC, Vorbis и AAC LC. На данной диаграмме вы можете наблюдать, насколько лучше параметры задержки у нового кодека по сравнению с конкурентами.
А это — график, демонстрирующий превосходство Opus над другими кодеками по качеству звука. Результаты тестирования говорят о том, что аудио, декодированное с помощью Opus, в большинстве случаев более полно восстанавливает исходную картину звука — на разных битрейтах и на разной частоте. Под терминами fullband stereo и narrowband подразумеваются граничные частоты дискретизации.
Говоря о достоинствах нового кодека, нужно отметить и стабильность его работы в разных условиях, что особенно важно при передаче данных в беспроводных сетях. Opus обладает гибким алгоритмом адаптации к изменению пропускной способности канала связи, поэтому качество звука остается неизменным, а сам кодек частично компенсирует потери, обеспечивая трансляцию без сбоев.
⇡#Софт для работы с Opus
Разработчики программного обеспечения торопятся выпустить обновления с поддержкой кодека Opus. Такие популярные утилиты для работы со звуком, как EZ CD Audio Converter, foobar2000, AIMP, VLC Media Player, уже могут работать с файлами в этом формате. Новый кодек принят на вооружение и при организации потокового вещания посредством Icecast, он включен в K-Lite Codec Pack и фильтры LAV.
В ближайших версиях альтернативной прошивки для портативных аудиоустройств Rockbox также появится поддержка Opus. Любители смогут слушать музыку и аудиокниги на плеерах iPod, Archos и прочих. На портативных устройствах под управлением Android также можно будет слушать аудио через Rockbox, установив соответствующее приложение RaaA (Rockbox as an Application).
На данный момент новый кодек уже поддерживается в разработках Mozilla — Firefox и Thunderbird. Очевидно, что поддержку Opus скоро можно будет увидеть и в других браузерах. В ближайшее время он появится и в Skype.
Opus: палки в колесах
Очевидное превосходство качества, которое показывает Opus при кодировании, еще не означает его безоговорочной победы. Данный кодек пока не избавился от всех багов и только в сентябре этого года прошел сертификацию в IETF (Internet Engineering Task Force) как стандарт аудиокодека для использования в Интернете.
Кроме того, новой разработке еще предстоит «пободаться» с многочисленными претензиями и судебными исками, которые следует ожидать в будущем. Opus имеет статус royalty-free, то есть за его использование не нужно платить никаких отчислений правообладателям. Появление такого продукта, понятное дело, невыгодно многим конкурентам.
Первые «бузотеры» уже высказались против нового кодека — компании Qualcomm и Huawei заявили о том, что новая разработка нарушает принадлежащие им патенты. Разработчики Opus дали комментарии по этому поводу, сообщив, что они не нарушили авторских прав и более того — они ожидали появления подобных заявлений и готовы отстаивать свою правоту.
⇡#Заключение
Спустя 20 лет существования MP3 человек все так же плохо слышит разницу между оригинальным звуком и звуком, который претерпел потери в результате компрессии. Тем не менее он всячески ищет способы улучшить качество оцифрованного звука и минимизировать потери при одинаковом битрейте.
Кодек Opus, безусловно, ждет большое будущее. Низкий уровень искажений, а также минимальные по сравнению с конкурирующими алгоритмами временные задержки — все это делает Opus идеальным для интеграции данной технологии в сфере IP-телефонии и трансляции речи.
Впрочем, скорее всего, такого размаха, который сопутствовал победоносному шествию MP3, «Опусу» вряд ли удастся достичь. В свое время появление кодека MP3 стало настоящей революцией в сфере хранения и передачи звука. Сегодня новый кодек может лишь предложить более эффективное использование каналов передачи на низких скоростях. Что же касается музыкальных предпочтений, то, полагаем, любители портативного звука останутся стоять на своем — звук должен быть без потерь. Да и сами разработчики это не отрицают.
В презентации Opus сказано буквально следующее: «Кодек может использоваться для любых целей, за исключением Lossless-сохранения (для этого используйте FLAC) и за исключением кодирования с ультранизким битрейтом (для этого используйте codec2)».
Аппаратная поддержка Opus будет обязательно. Ведь показатели у нового кодека отличные, а значит, в скором времени можно будет ожидать использования новой технологии в беспроводных наушниках и портативных плеерах, которые мы по-прежнему будем по старинке называть MP3-плеерами.
Opus: часто задаваемые вопросы
Содержание
Что такое Opus? Кто его создал?
Opus — это полностью свободный, бесплатный универсальный аудио кодек. Прежде всего он разработан для интерактивной передачи голоса и музыки через интернет, но также применим для целей хранения и потоковой передачи (стриминга). Он совмещает в себе технологии кодека SILK из Skype и кодека CELT от Xiph.Org. Opus стандартизирован Internet Engineering Task Force (IETF) как RFC 6716.
Как Opus показывает себя в сравнении с другими кодеками?
Opus выделяется среди других форматов высококачественного аудио (AAC, Vorbis, MP3) благодаря низкой задержке, от других же кодеков с низкой задержкой (G.711, GSM, Speex) его отличает поддержка высокого качества кодирования. Качество его кодирования сопоставимо либо даже превышает качество существующих кодеков в широком диапазоне битрейтов, в то же время он обладает задержками меньшими, чем практически у любого существующего формата сжатия. Кроме того, сам по себе формат Opus, а также его базовая реализация доступны под свободной бесплатной лицензией, что упрощает адаптацию кодека, делает его совместимым с бесплатным ПО и пригодным для использования в качестве части базовой инфраструктуры интернета. Более детальную информацию вы найдёте на странице сравнения.
Способен ли Opus заменить все другие кодеки?
Теоретически, да. С технической точки зрения (потери, задержка, битрейты, etc.) он может заменить и Vorbis, и Speex, и даже существующие проприетарные кодеки.
Заменит ли Opus Vorbis в видео файлах?
Это возможно для OGG Theora видео файлов, однако результирующая экономия места будет минимальной, и при этом теряется поддержка с существующими плеерами.
Для WebM видео файлов такое применяется, но требует дополнительных изменений в спецификации, так как её текущая версия позволяет использовать только кодеки VP8 и Vorbis для видео и аудио соответственно.
Как мне использовать Opus? Какие программы поддерживают Opus?
Поддержка декодирования Opus на данный момент включена во многие программы, в частности Firefox, foobar2000, а также во фреймворки вроде Gstreamer и FFmpeg. Лучшим способом кодирования будет использование консольного приложения opusenc из пакета opus-tools. Для приложений реального времени поддержка Opus вскоре будет доступна на базе Google WebRTC.
Поддерживает ли Opus высокие частоты дискретизации — 96, 192 кГц?
И да, и нет. Программы кодирования вроде opusenc с легкостью закодируют файлы, имеющие частоту дискретизации 96 или 192 кГц. Однако входные файлы будут на лету преобразованы в 48 кГц, после чего закодированы будут только частоты до 20 кГц. Смысл этих манипуляций легко объяснить: lossy кодеки призваны сохранить детализацию звука и в то же время отбросить лишнюю информацию. Так как ухо человека способно слышать только частоты ниже 20 кГц (в лучшем случае), более высокие частоты — первое, что необходимо исключить. Подробнее читайте в статье Загрузки в формате 24/192 — почему они не имеют смысла.
Каковы лицензионные требования?
Оригинальный исходный код Opus распространяется под трехпунктовой лицензией BSD, имеющей весьма разрешительный характер. Коммерческое использование и распространение (включение в проприетарное ПО) разрешено при условии выполнения некоторых базовых требований, указанных в данной лицензии.
Также на Opus распространяются некоторые патенты, для которых бесплатное использование гарантировано при выполнении условий, которые по мнению автора совместимы с большинством open-source лицензий, включая GPL (v2 и v3). Детальней смотрите на странице лицензии.
Почему Opus создан бесплатным?
В сети интернет стандарты протоколов и кодеков являются частью общей инфраструктуры, на основе которой строится всё остальное. Большую часть стандартов высокого качества составляют инновации и взаимодействие, обеспечиваемое построенными на них системами. Кода несколько участников имеют монополию на монетизацию стандарта, инфраструктура становится менее распространенной — ведь для остальных появляется больше оснований использовать собственное решение, что увеличивает стоимость и снижает эффективность. Представьте себе дорожную систему, где каждый автомобиль может ездить только по дороге собственного производителя. Мы все выиграем, если будем жить в мире, где все дороги соединены меж собой. Вот, почему Opus, в отличие от многих кодеков, является бесплатным.
Является ли SILK составляющая в Opus совместимой с реализацией SILK в Skype?
Нет. Кодек SILK, переданный Skype в IETF, в процессе интеграции в Opus был в значительной степени модифицирован. Изменения настолько значительны, что невозможно просто написать «транслятор»; даже взаимная замена частей кода между Opus и «старым SILK» — процесс далеко не тривиальный.
Почему бы не разрабатывать кодеки SILK и CELT отдельно?
Opus — это больше, чем два независимых кодека с переключением. Вдобавок к режиму SILK с линейным предсказанием и MDCT режиму CELT существует также гибридный режим, в котором голосовые частоты до 8 кГц кодируются с линейным предсказанием, а частоты выше — с использованием MDCT. Именно поэтому Opus показывает такие хорошие результаты для голоса на битрейте около 32 кбит/с. Другим преимуществом интеграции является возможность мгновенного переключения между этими режимами, без каких-либо артефактов и искажений частотного диапазона.
Теперь, когда Opus стандартизирован, остановится ли его разработка или в дальнейшем он будет совершенствоваться?
В отличие от большинства ITU-T кодеков, Opus определен лишь в плане декодирования. Кодер может продолжать развиваться сколько угодно, пока закодированный им поток сможет декодироваться референтным декодером. Именно этот момент позволил MP3 кодерам в значительной степени продвинуться относительно первых реализаций l3enc и dist10. Хоть и маловероятно, что Opus ждет такая же потрясающая революция, всё же мы надеемся, что последующие версии будут в значительной степени превосходить первый релиз. На деле — уже в libopus 1.1 мы видим значительные улучшения качества.
Будут ли все последующие релизы Opus совместимы со спецификацией Opus?
Каким образом Opus оптимизирован для интернета?
Оптимизация Opus для интернета, очевидно, означает, что он имеет хорошую устойчивость к потере пакетов, однако это еще не всё. Первой целью, которой мы задались при разработке Opus, было получение действительно адаптируемой скорости потока, так как мы никогда не знаем, какая скорость будет доступна. Это требует не только наличия широкого диапазона битрейтов, но также и возможности точной регулировки (с небольшими приращениями). Вот, почему Opus покрывает диапазон от 6 до 512 кбит/с с шагом в 0.4 кбит/с (надбавка в 1 байт для 20-милисекундных фреймов). Причина, по которой Opus имеет более 1200 возможных битрейтов, затрачивая 11 бит на указание битрейта, в том, что UDP уже кодирует размеры пакетов. Последним аспектом является простота передачи через RTP, как это видно из Opus RTP payload format. Например, можно декодировать RTP пакеты без SDP и телефонной сигнализации (out-of-band signaling).
Какие приложения Android могут воспроизводить Opus?
На данный момент их не много, однако список быстро пополняется. Просим ознакомиться с этим вопросом на android.stackexchange.com. Вы можете предлагать и свои приложения.
Когда выйдет следующая версия?
Когда она будет готова. Серьёзно. Мы не знаем. Opus не является большим проектом с фиксированной периодикой релизов. Наши предварительные релизы и даже версии из git репозитория являются вполне стабильными, пригодны для целей тестирования и распространения. Однако обратите внимание: API нового функционала (который еще не был включен в стабильные релизы) может меняться.
Информация от спонсора
IT-TERRITORY: новости высоких технологий. Здесь Вы можете бесплатно скачать Говорилку на русском языке. Программа «Говорилка» использует голосовой движок Windows для чтения любых произвольных текстов. Поддерживается запись голоса в MP3.
Основы кодирования аудио с потерями. Тестирование бета-версии Opus 1.3
0. Об авторе
Всем привет, меня зовут Максим Логвинов и я студент Харьковского Национального университета радиоэлектроники.
Меня всегда интересовали звук и музыка. Я сам любил писать электронную танцевальную музыку и мне всегда было интересно, как человеку, который недостаточно хорошо разбирается в высоких материях математики, узнать, что же происходит со звуком в компьютере: как он пишется, сжимается, какие для этого существуют технологии и так далее. Ведь со школьной скамьи и физики я понимал, что звук — он «аналоговый»: его мало того что нужно преобразовать в цифровой (для чего необходимы такие устройства как АЦП), но его нужно как-то сохранить. А ещё лучше, чтобы эта музыка занимала поменьше дискового пространства, чтобы можно было поместить в скупую папку побольше музыки. И чтобы звучала хорошо, без всяких слышимых артефактов сжатия. Музыкант ведь. Натренированное ухо, не лишённое музыкального слуха, достаточно сложно обмануть методами, которые используются для компрессии звука с потерями — по крайней мере, на достаточно низких битрейтах. Ишь, какой привередливый.
А давайте посмотрим, что из себя представляет звук, как он кодируется и какие инструменты используются для этого самого кодирования. Более того, поэкспериментируем с битрейтами одного из самых продвинутых на сегодняшний день кодеков — Opus и оценим, что и с какими циферками можно закодировать, чтобы и рыбку съесть, и… Собственно, просто почему бы и нет? Почему бы не попытаться описать простым языком не только то, как хранится и кодируется аудио компьютером, но и протестировать один из лучших кодеков на сегодняшний день? Особенно, если речь идёт о сверхнизких битрейтах, где практически все существующие кодеки начинают творить невероятные вещи со звуком в попытках уложиться в малый размер файла. Если хочется отвлечься от рутины и узнать, какие выводы были получены при тестировании нового кодека — добро пожаловать под кат.
1. Кодирование звука
Звук имеет физическую природу. Любой звук — это колебания в пространстве (в данном случае — в воздухе), которые улавливаются нашим ухом. Колебания имеют непрерывный характер, который можно описать математическими моделями. Делать же этого мы, конечно же, не будем, но поставим перед собой вопрос: как колебания, имеющие непрерывную природу, записать в машину, которая оперирует лишь нулями и единицами?
1.1. Ни сжатия, ни потерь
Рис. 1.1 — Графическое описание импульсно-кодовой модуляции
Формат WAV (WAVE) сохраняет аудио-дорожку в её истинном качестве, не проводя никаких манипуляций с самим аудио-файлом.
Для того, чтобы записать звук, нам необходимо преобразовать его в набор нулей и единиц. В случае с форматом WAV делается это наитупейшим образом: входящий звуковой поток разбивается на малейшие отрезки (кванты, отсюда термины «частота квантования», «частота выборки» или «частота дискретизации«) и в каждый такой отрезок времени пишется текущее значение аналогового сигнала в двоичной форме. Файлы формата WAV могут быть записаны с частотой дискретизации, к примеру, от 8 кГц до 192 кГц, но, де-факто, стандартом считается частота выборки в 44.1 кГц.
Следует отметить, что WAV, как контейнер, поддерживает и другие способы хранения аудио-информации: к примеру, ADPCM, который способен, в зависимости от полосы пропускания, кодировать аудио-данные с переменной частотой дискретизации.
Частота 44.1 кГц произошла не случайно. Если допустить неточности в описании, то данная цифра произошла как утверждение теоремы Котельникова: для сохранения максимально правильной формы волны при частотах до 20 кГц (теоретический предел слышимости человеческого уха) необходима частота дискретизации вдвое выше — 40 кГц. Собственно, частота именно в 44.1 кГц обусловлена техническими аспектами, подробности которых можно прочитать здесь.
В каждом таком отрезке в двоичной форме кодируется фактическое напряжение аналогового сигнала: наивысший уровень можно представить в виде «1111», наинизший — в виде «0000». И вот здесь вступает в игру второй параметр — глубина звучания, определяющая, насколько точно будет оцифровано значение волны в отрезок времени. Зачастую файлы формата WAV пишутся с разрядностью в 16 бит или 32 бит. Выше разрядность — точнее запись.
Кстати, о PCM. Что из себя представляет запись на обыкновенном компакт-диске, которые были так популярны после аудиокассет? Именно — поток несжатых нулей и единиц в формате PCM. Разрядность — 16 бит, частота выборки — 44.1 кГц. Какой тогда битрейт будет у такой записи?
2822 кбит/с.
Вывод: отсюда прожорливость данных файлов к свободному пространству на жёстком диске, но в качестве выигрыша — полное отсутствие потерь при записи и прослушивании аудио-файла.
1.2. Сжатие без потерь
О сжатии без потерь я не буду много писать. С этим термином можно ознакомиться здесь. Фактически, данный метод представляет собой, говоря грубо, архивацию аудиозаписи алгоритмами, заложенными в кодек, но данные при этом не теряются и сохраняется возможность восстановить аудио-запись с точностью бит-в-бит. При декодировании таких форматов мы получаем, фактически, тот же WAVE-формат, только он занимает меньше дискового пространства; сжатие — приблизительно двухкратное и зависит от характера кодируемой композиции. При прослушивании записи кодек производит «разархивирование» композиции и шлёт поток несжатых нулей и единиц на обработку звуковой карте.
Таких кодеков существует достаточно много: это FLAC (Free Lossless Audio Codec), разработанный организацией Xiph (она же и разработала Opus), ALAC (Apple Lossless) от одноимённой компании, APE (Monkey’s audio), WV (WavPack) и прочие, менее известные форматы сжатия аудио без потерь.
1.3. Сжатие с потерями — обманываем свой слух
Учёные умы начали задумываться о том, что, в принципе, часто нет смысла сохранять полную информацию об аудиозаписи, так как наше ухо несовершенно. Оно может не слышать тихих звуков после громких, оно может не слышать слишком высокие и слишком низкие частоты и так далее. Эти феномены называются эффектом маскировки.
В итоге поняли: можно ведь выбросить здесь, подрезать там, а слушатель практически ничего не заметит — несовершенное ухо просто даст возможность слушателю обмануть себя. Следовательно, появляется возможность избавиться от психоакустической избыточности в файле.
Собственно, психоакустика существует как дисциплина и изучает психологические и физиологические особенности восприятия звуков человеком. Собственно, эти психоакустические модели и были заложены в основу работы программ сжатия с потерями и одним из первых таких форматов стал MPEG 1 Layer III или просто MP3. Здесь же оговорюсь, что маркетинг, оперирующий фактами практически без преувеличения, сделал своё дело: аудио-файл занимает в десять раз меньше места (с оговоркой: это при кодировании с битрейтом в 128 кбит/с, что позволяет получить «приемлемое для типичного слушателя качество» — вспоминаем 1411 кбит/с для WAVE), а, следовательно, на компакт-диск или на жёсткий диск поместится уже на порядок больше аудио-записей. Фурор! Популярность формата взорвала индустрию цифровой звукозаписи. В периоды не самых быстрых подключений к сети Интернет передавать подобные файлы стало как нельзя удобно. Удобно передавать, удобно хранить, удобно закинуть пачку композиций себе на плеер. Создано множество аппаратных декодеров формата MP3, в связи с чем файл проигрывался чуть ли не на холодильнике каждой железке.
На момент написания данной статьи уже истекли сроки патентных ограничений и лицензионные сборы прекращены.
Что же касается сжатия с потерями и каким образом получается сжать аудио-файл на порядок без существенной потери для слушателя качества? Если вкратце, от одного кодека к другому нижеследующая последовательность мало отличается. Описание данного процесса упрощено до безобразия, но его течение приблизительно таково:
Следует отметить факт того, что формат MP3 не лишён существенных недостатков, при этом сам формат уже не позволяет должным образом расширять его возможности. Возьмём, к примеру, такое явление как pre-echo. Феномен данного артефакта сжатия кратко и достаточно неплохо описан здесь, но его суть заключается в искажении резко нарастающих относительно тишины звуков, например, инструмента Hi Hat. При кодировании такого инструмента в тишине, из-за особенностей работы MDCT, резкий переход будет создаваться с множеством колебаний. В исходной записи этих колебаний не существует, но при их наличии в результирующей записи они достаточно отчётливо улавливаются ухом. Современные кодеки, такие как AAC и OGG также не лишены этого недостатка, но стараются бороться с ними, применяя более точные и совершенные алгоритмы. А вот MusePack (о нём ниже), к примеру, данного недостатка лишён, так как
не использует для повышения эффективности второе MDCT-преобразованиеиспользует SBC вкупе с очень качественной психоакустической моделью, чем и объясняется его качественное кодирование лишь начиная с битрейтов в 160 кбит/с. Редко, но метко: с таким битрейтом кодек кодирует аудио лучше, чем MP3 с аналогичным битрейтом.
Нельзя не отметить, что разработчики свободного кодека Lame всё же пытаются совершенствовать своё детище, улучшая психоакустические модели и алгоритмы кодирования с переменным битрейтом; релиз версии 3.100 представлен в декабре 2017 года.
Подробную информацию о том, как внутри устроен MP3 с точки зрения формата кадров, можно почитать здесь.
А вот потрясающую статью (а, точнее, её перевод) о том, как работает сжатие аудио кодеком MP3, можно прочитать здесь. Рекомендую!
1.4. Кодирование с потерями совершенствуется: краткое описание формата AAC
На момент написания статьи кодеку MP3 уже более 23 лет. Дабы не повторяться со статьёй (её более новая версия), где уже описаны кодеки OGG Vorbis (и снова привет организации Xiph — это также её разработка), MPC (Musepack), WMA (Windows Media Audio) и AAC, я опишу здесь вкратце формат AAC с точки зрения технологий, которые являлись до недавних пор передовыми в сфере кодирования с потерями.
По моему скромному мнению, AAC (Advanced Audio Codec) — один из самих продвинутых форматов в области кодирования данных. Опишу основные особенности данного формата, начиная с популярных профилей, которые можно представить матрёшкой (см. рис. ниже):
Рис. 1.2 — Иерархия профилей AAC, источник — Википедия
— Low Complexity Advanced Audio Coding (LC-AAC)
Низкая сложность декодирования отлично подходит для реализации аппаратного кодека; аппаратные требования к ЦПУ и ОЗУ также низки, что и снискало большую популярность к этому профилю. Достаточно эффективно кодирует сигнал с 96 кбит/с.
— High-Efficiency Advanced Audio Coding (HE-AAC).
Профиль HE-AAC является расширением LC-AAC и дополнен запатентованной технологией SBR (Spectral Band Replication, груб. — «спектральное повторение», статья на английском). Именно технология спектрального повторения позволяет «сохранить» высокие частоты при кодировании с низкими битрейтами.
Рис. 1.3 — Графическое изображение принципа восстановления высоких частот
Почему «сохранить» — в кавычках? Потому что царь — не настоящий: кодек отводит место для дополнительной информации, которая используется синтезатором кодека для восстановления высоких частот, но так как эти частоты синтезируются, то бишь воссоздаются кодеком, они, фактически, являются приблизительной копией высоких частот, которые существовали в исходном файле. На практике, сигнал, кодированный битрейтом 48 кбит/с будет звучать, например, аналогично формату mp3@98 кбит/с, если это поддерживается декодером; в противном случае такой файл будет проигрываться попросту без восстановления высоких частот и его битрейт будет соответствовать его качеству, аналогичному mp3.
— High-Efficiency Advanced Audio Coding Version 2 (HE-AACv2)
Данный профиль относительно молодой (описан в 2006 году), он создан для более эффективного кодирования аудио в условиях низкой пропускной способности.
Вторая версия профиля является расширением, собственно, первого профиля, изменения заключаются в добавлении технологии PS (Parametric Stereo). Принцип несколько похож на технологию SBR: кодек также отводит место под информацию для восстановления стерео-базы, жертвуя аккуратностью.
Рис. 1.4 — Графическое изображения кодирования параметрического стерео
Условия для работы данного профиля такие же, как и для вышеописанного HE-AAC; отсутствие поддержки профиля декодером приведёт к тому, что запись будет звучать в моно.
— AAC-LD (Advanced Audio Coding — Low Delay)
Профиль AAC-LD имеет усовершенствованные алгоритмы кодирования для уменьшения задержек (до 20 мс.);
— AAC-ELD (Advanced Audio Coding — Enhanced Low Delay)
Данный профиль, который наследует все возможности HE-AACv2 (используются аналоги технологий SBR и PS, но спроектированные для низких задержек);
Данный профиль был представлен как MPEG-2 AAC или HC-AAC (High Complexity Advanced Audio Coding). Не совместим с LC-AAC;
— AAC-LTP (Advanced Audio Coding — Long Term Prediction)
Этот профиль более сложный и ресурсоёмкий (но и более качественный), чем все остальные. Также не совместим с LC-AAC.
Вот и всё, что я хотел написать об этом кодеке. Основной акцент я сделал на технологии, которые используются в различных профилях AAC (которые, кстати, порождают множество аббревиатур: AAC, LC-AAC, eAAC+, aacPlus, HE-AAC и т.д.), так как буду сравнивать их с таковыми в Opus, но кодек делает своё дело: он широко используется в интернет-радио, а также в технологиях цифрового радио-вещания: DRM (Digital Radio Mondiale) и DAB (Digital Audio Broadcasting) (ознакомиться с этими технологиями можно здесь), YouTube, как аудио-дорожка к множеству роликов в контейнерах mp4, mkv и пр.
2. Введение в Opus: описание формата
Рис. 2.1 — Логотип Opus
21 декабря 2017 года организация Xiph представила бета-версию аудиокодека Opus версии 1.3. Я не буду вдаваться в высокие материи при описании данного кодека, так как подобная информация находится в свободном доступе (например, здесь, здесь, а для знающих английский — здесь и здесь.)). Информацию о релизе этой бета-версии можно найти здесь. Здесь я отмечу, что данный кодек является замечательным кандидатом на замену остальных кодеков. У него немало достоинств:
Может возникнуть резонный вопрос: что такого особенного в вышеописанных тезисах? Всё это есть практически в любом более-менее современном кодеке. Ответы последуют далее в статье.
Одна из ключевых особенностей данного кодека — чрезвычайно низкие задержки кодирования: от 2.5 мс. (!) до 60 мс, что просто необходимо, как воздух, приложениям, позволяющим пользователям общаться голосом в сети Интернет. Такие низкие задержки также позволяют строить интерактивные приложения, например, цифровую звуковую студию для совместного написания музыки или что-то в этом роде. Стоит отметить, что по этому параметру кодек конкурирует с относительно новым профилем AAC-ELD, описанному выше; тем не менее, минимальная задержка алгоритмов кодирования составляет прибл. 20 мс., что ни чуть не является проблемой для свободного, открытого и бесплатного кодека Opus.
Я не буду рассматривать все тонкости, связанные с кодированием аудио этим кодеком, но ниже опишу режимы, которые меняются кодеком в зависимости от смены битрейта.
2.1. Opus: режимы кодирования
Рис. 2.2 — Сравнение качества кодирования различными кодеками — официальный график с сайта opus-codec.org
После выхода данной бета-версии мне стало интересно, как меняются режимы кодирования в зависимости от битрейта, поэтому я и решил провести эксперименты, начиная с самых низких битрейтов, но только с ними. Проводить эксперименты с более высокими битрейтами я не вижу смысла — это отлично описано в статьях (например, здесь).
Сейчас же перечислим те режимы, которыми оперирует кодек:
2.2. Низкие битрейты — высокие частоты. Как достигнуты такие результаты?
В начале данной статьи я не зря рассматривал кодек AAC и его навороченные профили, которые, фактически, строят стерео-базу и восстановление высоких частот, что называется, «из воздуха». Утрирую, конечно, но выражение недалеко от истины. Но вот беда: кодек покрыт патентами и является проприетарной разработкой альянса из компаний Bell Labs, Института интегральных схем общества Фраунгофера (который, кстати, и является ключевым создателем формата MP3), Dolby Laboratories и т.д. Следовательно, использование данных технологий потребует лицензионных отчислений, что недопустимо для полностью открытого и свободного кодека. Поэтому разработчики Opus пошли иным путём: они реализовали собственные алгоритмы воспроизведения высоких частот — Band Folding (Spectral Folding, Hybrid Folding). Об этом подходе кодирования высоких частот можно ознакомиться, соответственно, здесь (там даже интерактивные картинки есть), здесь (см. 4.4.1) и здесь. Кодек не синтезирует высокие частоты из дополнительных данных, как это делает HE-AACv2, он берёт за основу сам сигнал, исходя из энергии в области высоких частот, закодированной в оригинальном сигнале. Слепое тестирование со стороны энтузиастов показывает, что данный метод очень эффективен, не говоря уже о том, что подобный метод такого воспроизведения высоких частот, по заверениям разработчиков, более прост в исполнении, нежели SBR или его аналог и реализуем с меньшими алгоритмическими задержками.
К слову: результаты слепого тестирования можно посмотреть на графиках по следующей ссылке.
Давайте же испытаем это последнее слово в области сжатии звука с потерями.
2.3. Opus: инструменты для кодирования и тестирования
Данное тестирование проводилось на коротком отрывке из аудиокниги Вадима Зеланда — Трансерфинг реальности. Книга была озвучена российским актёром и радиоведущим Михаилом Черняком, который обладает приятным тембром голоса.
Как был получен отрывок?
Дальше пойдёт описание практически каждой из них — с приложением скриншотов и субъективного описания звучания, после чего последуют небольшие выводы.
3. Оценка звучания кодированных дорожек
По-хорошему, оценка звучания должна быть объективной и проводиться, к примеру, с использованием метода слепого ABX-тестирования (статья на английском). Тестирование проводится для того, чтобы исключить эффект пустышки (плацебо).
Если вкратце, суть метода заключается в прослушивании при помощи вспомогательного ПО (Foobar или аналогичное веб-приложение, см. прим. на рис. 3.1) двух семплов: референсного и сжатого — кнопки А и В соответственно. Слушатель заранее не знает, какой из них является сжатым, а какой — референсным.
Рис. 3.1 — Пример внешнего вида одной из программ слепого ABX-тестирования
Далее слушатель прослушивает аудиозапись, подставленную программой под кнопку Х и пытается определить: к какому из двух семплов (А или В) относится семпл на кнопке Х. После выбора ответа слушателем цикл повторяется определённое количество раз, после чего программой выводится результат, где показано, с какой вероятностью слушатель нажимал кнопки случайно.
Стоит оговориться, что существуют люди, которые не воспринимают эффекты психоакустической компрессии и, фактически, не могут отличить, например, запись mp3@128 кбит/с от FLAC — для них оба файла звучат «замечательно». Таких людей немало и для них 128 кбит/с — полностью прозрачное звучание, так как они не задумываются над тем, какие там артефакты и как они звучат. Музыка есть? Инструменты слышны? Отлично. Это ещё одна из причин высокой популярности формата MP3.
Я принципиально не проводил слепое ABX-тестирование, но пожелал описать субъективное восприятие звука с приведением скриншотов спектрограммы каждого семпла в надежде, что читателям данной статьи это будет интересно.
Поехали.
Рис. 3.2 — Спектрограмма записи, кодированной с битрейтом 8 кбит/с
opus-enc-8.opus
1. На рис. 3.2 показана спектрограмма для кодирования практически с самым низким битрейтом. Аудио-файл кодируется методом LP, кодек отводит спектр частот в 6 кГц; всё, что выше — обрезается. В итоге размер файла чрезвычайно мал, качество звучания соответствует таковому с кодеком AMR-NB (Narrowband). Классика жанра в сетях сотовой связи второго поколения (GSM). Поведение кодека Opus соответствует вышеописанному в диапазоне битрейтов от 6 до 9 кбит/с.
Рис. 3.3 — Спектрограмма записи, кодированной с битрейтом 10 кбит/с
opus-enc-10.opus
2. На рис. 3.3 показана спектрограмма для кодирования с битрейтом в 10 кбит/с. Та же ситуация: кодирование методом LP, но спектр частот уже шире — до 8 кГц. По звучанию — среднее между AMR-NB и AMR-WB.
Рис. 3.4 — Спектрограмма записей, кодированных с битрейтами 12 и 13 кбит/с
opus-enc-12.opus
opus-enc-13.opus
3. На рис. 3.4 показано две спектрограммы: для битрейтов 12 и 13 кбит/с соответственно. Здесь ситуация интереснее: при 12 кбит/с используется всё то же LP, но ширина спектра расширена ещё больше: до 10 кГц и звучание практически идентично таковому в AMR-WB.
Начиная с битрейта 13 кбит/с кодек переключается в гибридный режим и начинает использовать сразу три метода: LP, MDCT и Band Folding. Всё, что лежит в диапазоне от 0 до 8 кГц, кодируется LP, от 8 до 10 кГц — MDCT; именно этот отрезок спектра в 2 кГц используется как исходная информация для использования Band Folding — отсюда получаем фактически восстановленные высокие частоты, вплоть до 20 кГц.
Отчётливо видны «мазки» вдоль записи, начинающиеся с 10 кГц; видна попытка кодека сохранить максимум информации о высоких частотах. Интересно, что уже при 13 кбит/с. кодек в гибридном режиме, с использованием Hybrid Folding, пытается работать в режиме Fullband, восстанавливая спектр вплоть до 20 кГц.
Что же по поводу звучания? Звучание голоса просто Фантастическое — с большой буквы Ф. На такой результат не способен даже HE-AAC с его SBR — даже близко не способен. Высокие частоты, в области которых находятся шипящие, свистящие, цокающие (Ш, Щ, С, Ц) звуки воспроизводятся потрясающе, слушать человеческую речь — приятно. Не забываем про цифру «13 кбит/с», а ведь с таким битрейтом раньше работали кодеки GSM (AMR-NB), где толком и не разобрать, где «Ш», а где «С»…
Тем не менее, не стоит забывать, что для кодирования музыки такой режим всё ещё плохо подходит: из-за кодирования нижней части спектра методом LP в области нижних частот присутствуют существенные искажения, особенно, в области перехода, где голоса нет, но слышен соответствующий данной области FX-эффект «атмосферного ржавого скрипа».
Рис. 3.5 — Спектрограмма записей, кодированных с битрейтами 14 и 15 кбит/с
opus-enc-14.opus
opus-enc-15.opus
Рис. 3.6 — Обратите внимание на выделенную область FX-эффекта
4. На рис 3.5 видно, как меняется способ кодирования сигнала от перехода к более высокому битрейту — с 14 до 15 кбит/с. Пока спектрограмма записи для битрейта в 14 кбит/с похожа на вышеописанную с 13 кбит/с, то начиная с битрейта в 15 кбит/с использование гибридного режима прекращается и кодек полностью полагается на MDCT и Band Folding.
Почему я так решил? Потому что при прослушивании записи в области FX-эффектов все искажения, которые присущи LP, пропадают. Да и если присмотреться на спектрограмму обеих записей (см. также рис. 3.6), то можно увидеть, что точность воспроизведения спектра увеличена. Однако, характерный «мазок», разделяющий спектр пополам, в области 10 кГц, можно увидеть в обоих случаях.
Это как раз тот случай, когда качество здесь сопоставимо с таковым у mp3@80 кбит/с, если не выше. Опять-таки, не имею права ставить свои суждения истиной в последней инстанции, так как не проводил слепое ABX-тестирование.
5. Начиная с битрейта в 18 кбит/с (opus-enc-18.opus), последнего становится достаточно для того, чтобы переключиться в режим Fullband Stereo, а это означает, что на данном битрейте можно получить «приемлемое» качество записи в условиях очень малой пропускной способности сети. Нет, это не фиаско, братан, это победа!
Далее всё достаточно просто: пропорционально, с увеличением битрейта, кодек всё реже использует Band Folding, так как, собственно, битрейт становится достаточным для того, чтобы закодировать более высокие частоты без надобности в их искусственном восстановлении. Чем выше битрейт — тем более широкий спектр будет закодирован без применения Band Folding.
4. Вместо заключения
Что же касается меня, то тот «порог прозрачности» (или «Transparency», как это называют носители английского языка), который выражается в моей неспособности отличить оригинал от сжатого аналога — прибл. 170 кбит/с. Для mp3 этот параметр лежит в пределах 224-256 кбит/с, в зависимости от характера музыки.
Что же тут сказать. Технологии стремительно развиваются. И не только технологии сжатия аудио-данных — все технологии, не побоюсь обобщить. Особенно приятно, что такие качественные технологии, которые позволяют так качественно обмануть человеческое ухо и позволяющие быть настолько универсальными, также развиваются и остаются свободными и открытыми. Спасибо разработчикам и тем потрясающим людям, которые творят и двигают прогресс. А также спасибо всем за внимание и всем, кто осилил статью до конца.