Vorbis
Vorbis – свободный аудиокодек, разработанный организацией Xiph.Org Foundation и являющийся частью проекта Ogg. Он предназначен для эффективного сжатия аудио при высоких битрейтах, но также поддерживает переменный битрейт (VBR). Кодек был выпущен под лицензией BSD, что делает его доступным для использования в коммерческих проектах без лицензионных отчислений.
Основные характеристики:
- Частота дискретизации: от 8 кГц до 192 кГц.
- Битовая глубина: 16–32 бита.
- Каналы: моно, стерео, многоканальный звук (до 255 каналов).
- Алгоритм сжатия: психоакустический анализ, основанный на преобразовании Фурье и модифицированном дискретном косинусном преобразовании (MDCT), что позволяет эффективно сжимать аудиосигнал, сохраняя высокое качество звука.
Области применения:
- Потоковое вещание (интернет-радио, стриминговые сервисы).
- Хранение музыки в цифровых библиотеках.
- Игры и мультимедийные приложения.
- Видеоконференции и VoIP-приложения благодаря низкому задержке декодера.
Лицензия:
- Лицензия BSD предоставляет свободу использовать кодек в любых целях, включая коммерческие проекты, без необходимости выплачивать роялти.
Сравнение с другими кодеками:
- MP3: Vorbis обеспечивает лучшее качество звука при одинаковом битрейте по сравнению с MP3, особенно на низких битрейтах (ниже 128 kbps). Также Vorbis поддерживает переменное количество каналов и частоту дискретизации, тогда как MP3 ограничен двумя каналами и частотой до 48 кГц.
- AAC: AAC имеет схожие показатели качества со Vorbis, однако Vorbis является полностью свободным и открытым стандартом, а AAC требует лицензирования.
- Opus: Opus считается преемником Vorbis и предлагает еще большую эффективность сжатия и меньшую задержку, особенно для голосовых приложений. Однако Vorbis остается популярным выбором для музыкальных приложений.
Совместимость с ПО:
- Поддерживается большинством популярных медиа-плееров, таких как VLC, Winamp, foobar2000, Audacious.
- Интеграция с фреймворками для работы с мультимедиа, такими как FFmpeg, GStreamer, Libav.
- Широко используется в играх и приложениях на базе OpenAL и SDL.
Принцип сжатия:
- Психоакустическая модель: Vorbis использует психоакустические модели для анализа аудиосигнала и удаления тех частей спектра, которые человеческое ухо не способно различить.
- Преобразование Фурье: Аудиопоток разбивается на короткие временные окна, после чего применяется быстрое преобразование Фурье (FFT) для перехода из временной области в частотную.
- Модифицированное дискретное косинусное преобразование (MDCT): Используется для уменьшения количества данных за счет преобразования сигнала в коэффициенты, которые затем квантуются и кодируются.
- Квантование и энтропийное кодирование: Коэффициенты MDCT квантуются и подвергаются энтропийному кодированию (например, Хаффмана), чтобы уменьшить избыточность информации.
- Формат контейнера Ogg: Для хранения сжатых данных обычно используется контейнерный формат Ogg, который позволяет передавать метаданные вместе с аудиофайлом.
Пример кодирования через FFmpeg:
ffmpeg -i input.wav -c:a libvorbis -qscale:a 6 output.ogg
Параметр -qscale:a управляет качеством выходного файла (чем меньше значение, тем выше качество):
10— минимальное качество,0— максимальное качество.