Кодек Opus: новый звук для Всемирной паутины
Новый аудиостандарт Opus работает эффективнее, чем MP3 или AAC. Он годится и для телефонии, а также бесплатен для пользователя.
IP-телефония, потоковое вещание музыки, подкасты — львиная доля мирового интернет-трафика приходится на передачу аудиоданных. Все это безупречно работает при использовании широкополосного соединения, но стоит переключиться на мобильный Интернет, как возникают проблемы в виде запинающегося голоса собеседника при телефонных звонках через Сеть или прерывистой передачи музыки.
Дело в том, что речевые кодеки для мобильных телефонов работают быстро, но не способны обеспечить хорошее качество. Классическим же музыкальным кодекам не хватает способности работать в режиме реального времени. Решить проблему позволит новый аудиостандарт под названием Opus. Предполагается, что он не будет требовательным к пропускной способности, обеспечит более высокое качество звука и сможет работать в режиме реального времени.
В отличие от других аудиокодеков Opus покрывает при малой задержке весь диапазон битрейта. Соответствующий кодек Opus разрабатывается сообществом Open Source, что означает отсутствие проблем с лицензией. Кроме того, кодек Opus подходит не только для музыки, а также оптимизирован для двунаправленной передачи данных — например, для IP- или видеотелефонии.
Высокая гибкость кодирования аудио
Разработчики Opus большое внимание уделили гибкости. Так, битрейт можно выбирать в пределах 6–510 кбит/с, частота дискретизации может составлять от 8 до 48 кГц, а длительность кадров изменяется от 2,5 до 20 мс. Если заглянуть «за кулисы», то выяснится, что Opus объединяет кодеки CELT (Constrained Energy Lapped Transform) и SILK в модифицированном виде. CELT принадлежит к семейству кодеков OGG — он разрабатывался с прицелом на возможность работы в режиме реального времени; SILK — продукт создателей Skype, используемый в четвертой и более поздних версиях клиента для кодирования речи. Структура и принцип работы кодера в Opus просты: поток данных, в зависимости от частотного диапазона входящего сигнала, передается на обработку кодекам CELT или SILK.
CELT выбирается в том случае, если требуется высокое конечное качество. Он отличается от таких кодеков, как AAC и MP3, по некоторым отдельным параметрам — например, времени задержки сжатия звука.
SILK применяется при необходимости оптимального использования пропускной способности, и для этого он должен уметь делать то, на что не способны другие доступные аудиокодеки.
Голосовой анализ при разговоре
SILK хорошо подходит для передачи низко- и среднечастотных сигналов с частотой дискретизации до 16 кГц. Кодек состоит из ряда элементов, которые можно разделить на четыре блока: блок анализа, фильтр предварительной очистки, блок кодирования и блок вывода.
Перед выводом сигнал проходит в SILK девять этапов обработки:
Блок распознавания речи пытается отделить ее от посторонних шумов.
Блок анализа высоты звука снижает частоту дискретизации для речевых кадров.
Блок анализа шумов оптимизирует сигнал в соответствии с нужным битрейтом.
Фильтр предварительной очистки настраивает сигнал соответствующим образом и передает его кодеру.
Блок предсказания высоты звука на основе имеющихся речевых кадров определяет изменения для будущих кадров.
Частотное квантование выравнивает высоту звука передаваемой речи.
Блок оптимизации искажений необходим для того, чтобы при низком битрейте речь передавалась с малым уровнем искажения.
Блок формирования шума квантования снижает шумы внутри рабочей полосы передаваемого звука (вытесняет шумы за пределы рабочей полосы).
Блок интервального кодирования выполняет покадровый вывод готового сигнала.
При этом основой является блок голосового анализа, который выполняет распознавание речи. Он отделяет ее от фоновых шумов, а после этого выполняет разделение речевых кадров по частотам на фрагменты меньших размеров, в которых SILK удаляет задержки с помощью фильтров и распознает признаки речевого сигнала. На втором этапе оптимизации производится анализ шумов, в ходе которого все посторонние шумы объединяются по возможности в небольшие субкадры, которые не сильно ограничивают пропускную способность. Данные, полученные при анализе шума, SILK использует в ходе предсказания высоты звука и частотного квантования. Например, если голосовой диапазон в процессе разговора претерпевает незначительные изменения, то достаточно лишь передать с пакетом речевых данных информацию о расхождениях. В данном случае преследуется цель получения пакета данных минимальных размеров при сохранении качества. Следующими вспомогательными средствами являются избыточная дискретизация и формирование шума квантования. При этом SILK следит за тем, чтобы не выполнялись ненужные операции оптимизации и шум занимал немного места в доступном битрейте.
Сигналы с более широким диапазоном частот используют кодек CELT. Как и MP3 и AAC, он преобразует частоты посредством модифицированного метода дискретного косинусного преобразования и удаляет в ходе последующего квантования частоты, которые человеческое ухо воспринимает с трудом или не воспринимает вовсе. Так как SILK и CELT могут использоваться одновременно, разработчики предусмотрели для Opus три схемы работы: режим SILK для передачи только речи при низкой пропускной способности, гибридный режим для трансляции речи в наилучшем качестве и режим CELT для передачи одной только музыки. В версии Firefox 15 и выше файлы Opus можно воспроизводить без плагинов, поддержка Opus в VLC media player появится в скором времени.
Источник