При проектировании и создании информационно-поисковой системы (ИПС) Музея истории детского движения возникла задача обоснования и выбора форматов для размещения в базе данных ИПС оцифрованных аудиозаписей. При этом потребовалось для каждой аудиозаписи выбрать два формата:
1) формат со сжатием аудиоданных без потерь [1];
2) формат со сжатием аудиоданных с потерями [2].
Первый тип формата должен использоваться для длительного хранения аудиозаписей в максимально возможном качестве. Второй — для реализации возможности ознакомления с аудиозаписями с удалённых рабочих мест, в частности, по сети Интернет.
Идеального формата аудиоданных не бывает. Различные типы аудиоформатов имеют как плюсы, так и минусы. Из аудиоданных плохого качества невозможно восстановить аудиосигнал высокого качества. Поэтому при выборе аудиоформатов будем предполагать, что в качестве исходного аудиосигнала всегда используется аудиопоток без сжатия типа WAV [3] или AudioCD. Классические параметры такого потока: 1411 кбит/с, частота дискретизации 44100 кГц.
Сжатие без потерь — способ кодирования аудиосигнала, позволяющий впоследствии полностью восстановить исходные аудиоданные сжатого потока. Его применяют в случае необходимости полного сохранения качества исходной звуковой аудиоинформации. Современные алгоритмы сжатия без потерь позволяют сократить объем более чем в два раза, не потеряв качества. Кодирование без потерь сохраняет качество аудиосигнала, но часто не обеспечивает требуемый уровень сжатия. Для сжатия большего уровня применяют сжатие с потерями [4].
Сжатие с потерями — способ кодирования, который применяется в случае, когда нужно как можно сильнее сжать данные, сохранив при этом приемлемое качество звучания. Кодирование с потерями основывается на том, что из исходного несжатого материала удаляется часть информации, которая не приводит к сильному искажению звучания. Как следствие обеспечивается повышение уровня сжатия [4].
Методы кодирования с потерями основаны на использовании несовершенства нашего слухового аппарата, а также ряда хитростей, связанных с переквантованием и передискретизацией [5]. При таком сжатии часто происходит пренебрежение полезным сигналом, что дает большую разницу в сравнении с оригиналом.
Основными требованиями к выбору аудиоформатов (и для сжатия без потерь, и для сжатия с потерями) являлись:
– отсутствие лицензионных ограничений;
– открытость формата;
– наличие программ кодирования и декодирования с открытым исходным кодом;
– кроссплатформенность;
– многоканальность.
Было установлено, что сформулированным требованиям удовлетворяют форматы Flac, Wavpack, Oggvorbis.
Flac
Flac [6] — это кодек для сжатия аудио данных, изначально написанный Джошем Колсоном. Flacосуществляет сжатие данных, оставляя при этом их идентичными оригиналу, таким образом, ни одна часть данных не теряется — это и является основной задачей алгоритмов сжатия без потерь. Степень сжатия форматаFlac, как правило, варьируется от 50 % до 60 % от оригинального размера.
Flacподходит как для ежедневного прослушивания записей, так и для архивирования, так как имеет поддержку тэгов, встроенных обложек и быстрого изменения места воспроизведения. Бесплатность и открытость формата делают его хорошо поддерживаемым различным программным обеспечением.
Будучи схемой сжатия без потерь,Flacтакже является популярным форматом для хранения архивов у владельцев аудио дисков или других медиа-данных, стремящихся сохранить свою аудио коллекцию. Если оригинальная запись потеряется, повредится или износится, копия в форматеFlacдает гарантию того, что точный дубликат оригинальной записи может быть восстановлен в любое время.
WavPack
WavPack — открытый, бесплатный аудиокодек, разработанный Дэвидом Брайантом. Изначально он был lossless-кодеком. Однако в нем появилась возможность, выделяющая его — гибридный режим.
При кодировании в этом режиме создается два файла — один содержит композицию, сжатую с потерями качества (файл имеет расширение.wv), а другой — коррекционный (с расширением.wvc). Он нужен для восстановления потерянных данных, что позволяет решить проблему выбора между количеством и качеством. Используя первый файл, можно прослушать музыку, однако, с потерями в качестве, а используя оба файла, можем восстановить файл в исходном виде, без потери в качестве.
WavPackподдерживает высокие частоты дискретизации и позволяет сжимать 8/16/24/32-битные аудиофайлы. В lossless-режиме работает подобно архиватору типа Zip. Степень сжатия зависит от конкретного типа аудио — аудиозаписи с более широким диапазоном частот сжимаются сильнее. В среднем, при lossless-режиме можно рассчитывать на 50 % [7].
Oggvorbis
Vorbis — свободный формат сжатия звука с потерями, официально появившийся летом 2002 года. Используется в компьютерных играх и для подкастов [8].
Vorbis идеален для применения в качестве звуковых дорожек фильмов, так как не изменяет их длину при переменном битрейте, что позволяет сохранять синхронность с видеодорожкой и применим для многоканального звука (например, 6-канальный звук).
Формат изначально разрабатывался с возможностью потокового вещания. Это даёт формату достаточно полезный побочный эффект — в одном файле можно хранить несколько композиций с собственными тегами.
Формат имеет гибкую систему тегов. Заголовок тегов легко расширяется и позволяет включать тексты любой длины и сложности (например, текст песни), перемежающиеся изображениями (например, фотографиями обложек альбомов). Текстовые теги хранятся в UTF-8, что позволяет писать на нескольких языках одновременно и исключает возможные проблемы с кодировками.
С технологической точки зрения наиболее привлекательным для архивного хранения аудиоданных является формат WavPack, поскольку он за одну процедуру сжатия позволяет получить сразу и файл для потокового воспроизведения, и корректирующий файл, позволяющий восстановить исходный аудиосигнал без потерь. Тем самым минимизируется и состав программного обеспечения, необходимого для работы с форматом, и место на архивных дисках, необходимое для хранения файлов.
Однако исследования показали, что на сегодняшний день WavPack не имеет широкой поддержки — с ним могут работать далеко не все распространённые аудиопрограммы, а о поддержке его непосредственно в устройствах типа плееров речь вообще не идёт.
В противоположность WavPack, форматы Flac (сжатие без потерь) и ogg vorbis (сжатие с потерями) поддерживаются гораздо шире, в том числе непосредственно в ряде плееров. Поэтому выбор именно этих форматов для использования в ИПС можно считать наиболее обоснованным.
Представляет интерес также определение оптимальных значений параметров кодирования (сжатия) без потерь, поскольку закодированные в этом формате аудиофайлы потенциально будут занимать значительное дисковое пространство.
Аудиокодек формата Flac допускает кодирование с уровнями сжатия от 0 до 8. Был проведён эксперимент по сжатию аудиофайла в формат Flac с разными уровнями сжатия двумя свободно распространяемыми программами (Fre:ac [9] и Germanix Transcoder [10]). При этом использовался исходный файл с характеристиками:
– Формат: Wav;
– Битрейт: 1414 кб/с;
– Размер:40 132 525 байт;
– Длительность: 3:47 мин;
– Частота: 44100 Гц.
Результаты экспериментов приведены в таблице 1.
Таблица 1
Характеристики аудиозаписи при сжатии разными уровнями кодека Flac
Программа |
Уровень сжатия |
Время, с |
Размер, Мб |
Битрейт, кб/с |
Fre:ac |
0 |
2,29 |
30,328928 |
1069 |
1 |
2,37 |
30,179341 |
1064 |
|
2 |
2,4 |
30,087614 |
1060 |
|
3 |
2,45 |
29,573474 |
1042 |
|
4 |
2,52 |
29,387187 |
1036 |
|
5 |
2,9 |
29,333782 |
1034 |
|
6 |
4,08 |
29,273257 |
1032 |
|
7 |
4,2 |
29,250964 |
1031 |
|
8 |
6 |
29,237793 |
1030 |
|
Germanix Transcoder |
0 |
3,85 |
30,333327 |
1066 |
1 |
4,02 |
30,18374 |
1061 |
|
2 |
4,11 |
30,092013 |
1058 |
|
3 |
4,14 |
29,551747 |
1039 |
|
4 |
4,2 |
29,362598 |
1032 |
|
5 |
4,3 |
29,311711 |
1030 |
|
6 |
4,4 |
29,311393 |
1030 |
|
7 |
5,9 |
29,30182 |
1030 |
|
8 |
7 |
29,278565 |
1029 |
По таблице 1 для наглядности построим графики зависимости итогового размера сжатого файла от уровня сжатия и времени сжатия от уровня сжатия для каждой программы (рис. 1–4).
Рис. 1. Соотношение уровень сжатия — размер при сжатии кодеком Flac программе Fre:ac
Рис. 2. Соотношение уровень сжатия — время при сжатии кодеком Flac в программе Fre:ac
Рис. 3. Соотношение уровень сжатия — размер при сжатии кодеком Flac в программе GermanixTranscoder
Рис. 4. Соотношение уровень сжатия — время при сжатии кодеком Flac в программе GermanixTranscoder
На построенных графиках хорошо видно, что примерно на уровне сжатия 5 происходит «насыщение» алгоритма сжатия. Дальнейшее увеличение уровня сжатия приводит к незначительному уменьшению размера итогового файла, но при этом значительно увеличивается время работы программы кодера. То есть, уровень сжатия 5 во многом является оптимальным.
Литература:
- Сжатие аудиоинформации без потерь. URL: http://www.intuit.ru/studies/courses/511/367/lecture/8699?page=1 (Дата обращения: 7.04.2015)
- Форматы сжатия аудиоданных с потерями. URL: http://www.intuit.ru/studies/courses/511/367/lecture/8699?page=1 (Дата обращения: 7.04.2015)
- Батов Сергей. Форматы звуковых файлов часть 1 // «Звукорежиссер» — информационно-технический журнал предназначенный для специалистов в области профессиональных звуковых технологий. Статья от 1999 г. URL: http://www.linuxlib.ru/mmedia/sndfl1.htm (Дата обращения 14.10.2015).
- Сергей Кайбер. Форматы аудио файлов. URL: http://allfrets.ru/studiotheory/audiofiles (Дата обращения 03.10.2015).
- Цифровой звук: теория. // «Upgrade» — журнал, посвященный комплектующим, мониторам, устройствам мультимедиа — всему, из чего состоит современный ПК. Статьяот 16.04.2005 г. URL: http://www.npk.ru/articles/article.html?io=1&id=126&pv=1 (Дата обращения: 11.10.2015).
- Whatisflac? URL: https://xiph.org/flac/ (Дата обращения 08.11.2015).
- WavPack звук без потерь // «LinuxFormat» — журнал, посвященный операционной системе Linux. Статья от 25.12.2009 г. URL: http://wiki.linuxformat.ru/wiki/LXF99:WavPack (Дата обращения: 03.10.2015).
- Знакомьтесь: OggVorbis — современный формат аудиосжатия. URL: http://vorbis.org.ru (Дата обращения: 23.11.2015)
- Welcome to the fre:ac project. URL: http://www.freac.org (Дата обращения: 04.12.2015).
- James Thornton. Convert audio files into virtually any format you want. URL: http://germanix-transcoder.en.softonic.com (Дата обращения: 04.12.2015).