Еще десять лет назад трудно было даже представить, что обычный ПК можно использовать для хранения музыкальных архивов. Некоторые, наверно, еще помнят восьмибитовые аудиоплаты, самодельные цифро-аналоговые преобразователи, подключаемые к LPT-порту, разработанные энтузиастами музыкальные редакторы. Сегодня многое изменилось — увеличились объемы жестких дисков и тактовые частоты процессоров, значительно повысилось качество аудиоплат. Сегодня хранение домашней фонотеки — вполне возможный вариант использования ПК. Действительно, это ведь гораздо удобнее, чем загромождать комнату стеллажами с компакт-дисками. Появилось достаточно много программных пакетов для сохранения информации со звуковых СD (см. статью «Искусство наступать на грабли», «Мир ПК», № 6/03). Однако несмотря на значительное увеличение объемов жестких дисков большая фонотека может просто не уместиться на «винчестере». При перезаписи аудиоматериалов на компьютер возникает дилемма: записать либо больший объем аудиоматериала (в формате MP3, OGG Vorbis или аналогичном), но потерять качество, либо меньший (в формате wav), но сохранить качество. Наличие свободного пространства на «винчестере» особенно волнует тех, кто наряду с качественной аудиоаппаратурой обладает и хорошим слухом и потому различает источник звука — компакт-диск или MP3-файл.

В данном случае на помощь придут специализированные архиваторы, позволяющие сохранять аудиофайлы без внесения каких-либо искажений и со значительно большим коэффициентом сжатия, чем при использовании архиваторов общего назначения.

Принцип приближений и ошибок

Прежде чем описывать основные принципы алгоритма сжатия, напомним некоторые моменты из теории цифрового звука. При аналого-цифровом преобразовании звук представляется в виде массива значений функции, описывающей звуковые колебания через небольшие заданные промежутки времени. Количество значений функции (отсчетов) в секунду называется частотой дискретизации. В современном формате записи аудиокомпакт-дисков принята частота дискретизации, равная 44,1 кГц, т. е. ежесекундно сохраняется 44 100 значений, а в случае стереозвука — по 44 100 значений для левого и правого канала. При записи со звукового CD на жесткий диск данные сохраняются в виде wav-файла, представляющего собой массив целых чисел — значений функции, описывающей звуковые колебания. Особенность этой функции заключается в том, что между ее значениями в некотором диапазоне аргументов легко установить простую математическую зависимость, благодаря чему и возможно заметное сжатие аудиофайлов без потери информации. Практически любой из алгоритмов сжатия, использующий этот факт, включает в себя следующие этапы:

  • массив данных разбивается на блоки определенной временной длины;
  • последовательно для каждого блока повторяются выявление линейной или более сложной зависимости (вид функции зависимости от конкретной реализации алгоритма), расчет соответствующих коэффициентов функции, аппроксимирующей зависимость, и запись коэффициентов для текущего блока. Далее, для каждого блока создается массив ошибок (разность между значением аппроксимирующей функции и исходного сигнала в каждой точке), а также запись в архивный файл массива ошибок с помощью традиционных механизмов архивации данных.

В некоторых алгоритмах используется также и наличие определенной зависимости между сигналами в левом и правом аудиоканалах, т. е. сигнал представляется в виде отклонения от среднего арифметического значений для левого и правого каналов.

Основная идея описанных алгоритмов состоит в том, что числа, содержащиеся в массиве ошибок, как правило, значительно меньше тех, что имеются в исходном массиве, и следовательно, сокращается и число бит, необходимых для хранения последовательности.

Ниже представлена схема кодирования данных, реализуемая такими алгоритмами.

Выбираем аудиоархиватор по интерфейсу и стилю

В теории все получается вроде бы очень хорошо. Для того чтобы выяснить, как обстоит дело на практике, использовался набор из десяти аудиотреков разных стилей и исполнителей (от классической музыки до тяжелого металла) и четырех наиболее известных архиваторов.

Один из первых алгоритмов сжатия данных без потерь — MUSICompress — был предложен компанией SoundSpace Audio, которая реализовала его как для ПК, так и для нескольких различных специализированных сигнальных процессоров. Позднее этот же алгоритм был применен и в других разработках. Для пользователей ПК предназначен продукт MUSICompress for PC, однако он не имеет стандартного оконного и пользовательского интерфейса и работает в режиме командной строки. После его запуска предлагается выбрать режим работы (сжатие или распаковка файла) и уровень возможных потерь(loss factor): для сжатия без потерь — 0, при выборе сжатия с потерями накладываются ограничения на размер массива ошибок для каждого блока. Эта программа наглядно демонстрирует возможности архивации аудиофайлов, но из-за не слишком удачного интерфейса вряд ли ее удобно использовать постоянно.

При сжатии с помощью программы MUSICompress for PC объем заархивированных файлов для тестового набора аудиотреков составил примерно 0,6 от исходного. (Поскольку записи разных музыкальных стилей с большим или меньшим успехом аппроксимируются функциями определенного вида, результаты подобных тестов для классической и популярной музыки заметно различаются.)

Другой известный алгоритм сжатия был предложен Тони Робинзоном (Tony Robinson) и реализован в программе Shorten, конвертирующей аудиофайлы в собственный формат Shn. Объем файлов, сжатых в этом формате, для того же тестового набора составил 0,55 от начального объема wav-файлов. В отличие от MUSICompress, программа Shorten имеет стандартный Windows-интерфейс, позволяющий не только выбирать входные файлы и указывать путь для записи архивов, но и изменять различные параметры сжатия, в частности размер блока и точность описания ожидаемой функции. Еще один серьезный аргумент в пользу сжатия музыки с помощью программы Shorten — возможность проигрывать файлы, созданные с ее применением в WinAmp. Для этого достаточно лишь установить подключаемый модуль ShnAmp для соответствующей версии проигрывателя.

Еще более удачной можно считать реализацию алгоритма для сжатия аудиоданных, именуемого LPAC, который разработал Тилман Либхен (Tilman Liebchen).

В эту программу включен не только подключаемый модуль для WinAmp, но и собственный проигрыватель.

Кроме того, возможность сжатия данных с помощью кодека LPAC поддерживает ExactAudioCopy — одна из наиболее известных программ для перезаписи данных с аудиодисков. Для того чтобы использовать кодек LPAC при работе с этой программой, достаточно выбрать в параметрах опции Compression Options программы ExactAudioCopy вариант LPAC Lossless Encoder и указать местонахождение файла lpac.exe на диске.

Из всех описанных здесь архиваторов LPAC обеспечивает лучшую степень сжатия (правда, следует учесть, что для иного набора аудиотреков ситуация может несколько отличаться и для какого-либо конкретного музыкального стиля наибольшая степень сжатия будет достигаться с помощью другого алгоритма). Объем обработанных им файлов составил 0,51 от начального.

Стоит обратить внимание и на программу Monkeys Audio, написанную Мэтью Ашлендом (Маthew Ashland). Она отличается тем, что наряду с собственным алгоритмом сжатия автор включил в нее (с согласия соответствующих правообладателей) еще несколько менее известных алгоритмов — WavPack, RKAU и др. Эта программа легко интегрируется с ExactAudioCopy, а также имеет встроенный проигрыватель для воспроизведения файлов собственного формата. Кроме того, в комплект поставки входят подключаемые модули для воспроизведения файлов в WinAmp и Microsoft Media Player. К тому же при всех своих достоинствах MonkeysAudio не только обладает довольно приятным интерфейсом, но и распространяется с открытым исходным текстом. После обработки выбранных для теста файлов суммарный объем сжатых файлов составил 0,53 от начального.

Возможно, кого-то качество MP3-файлов вполне устраивает, а кому-то проще купить новый жесткий диск. Так что вряд ли имеет смысл рекомендовать всем пользоваться подобными архиваторами. Но в некоторых случаях подобные средства сжатия вполне могут избавить от необходимости выбирать между количеством и качеством.


Когда не нужна альтернатива MP3

К сожалению, в последнее время все большее распространение получает не только перезапись аудиодисков в формат MP3, но и, наоборот, запись из формата MP3 на аудиодиск.

Особенно обидно бывает тогда, когда стремишься сохранить качество записи, а затем выясняется, что диск содержит треки, созданные из МP3-файлов, и потому было абсолютно ни к чему проводить какие-либо манипуляции для сохранения исходного качества.

Итак, если все вроде бы в порядке, но есть какие-либо подозрения относительно подлинности вашего диска, то проверить его происхождение проще всего таким образом. Воспользуйтесь любым аудиоредактором, например СoolEdit, чтобы получить сонограмму (спектр частот) аудиотрека. Если она резко обрывается на определенной частоте (для MP3-файлов обычно около 16 кГц), то перед вами диск, созданный из MP3-файлов.