Сжатие аудиоинформации без потерь
Сжатие без потерь
Кодеки, сжимающие звук без потерь, стали пользоваться популярностью в мире портативных MP3-плееров сравнительно недавно. Дело в том, что этим кодекам не под силу такие огромные степени сжатия, которыми могут похвастаться кодеки, сжимающие звук с потерями качества. Большие объемы памяти стали широко доступны пользователям MP3-плееров лишь последние года три-четыре – и с приходом больших объемов памяти в MP3-плееры, сжатие музыки без потерь стало популярным. Конечно, те, кто хотел слушать музыку без потерь качества, делали это всегда (например, с помощью Audio CD-проигрывателей), а в наше время все желающие (естественно, при наличии поддержки соответствующих кодеков их плеерами) могут попробовать Lossless-кодеки в действии.
Главное отличие кодеков, сжимающих аудиоданные без потери качества от кодеков, сжимающих с потерями, заключается в том, что кодеки без потери качества не удаляют из аудиопотока информацию, которая при сжатии с потерями может считаться избыточной. Главная задача Lossless-кодека заключается в том, чтобы как можно сильнее сжать исходную звуковую информацию, не потеряв при этом ни единого бита информации.
Ситуация с поддержкой Lossless-кодеков в настоящее время такова, что наиболее широко распространена поддержка кодека ALAC, который имеет непосредственное отношение к фирме Apple и ее плеерам. Остальные же кодеки поддерживаются пока немногими плеерами, иногда для того, чтобы плеер поддерживал кодек, требуется перепрошивка плеера, причем, пожалуй, наиболее известная прошивка для плееров, поддерживающая Lossless-кодеки, RockBox – это альтернативная, а никак не официальная прошивка.
В ходе работы с Lossless-кодеками вам могут встретиться так называемые Cue-файлы или индексные карты файлов. Cue-файлы распространяются, например, вместе с FLAC или APE-файлами, реже – с MP3 и WAV-файлами, которые представляют собой один большой (порядка 300 Мб) файл, в котором хранится целый альбом. Cue-файл – содержит в себе информацию о разбиении большого файла на треки и о названиях этих треков. С отдельными файлами работать удобнее, однако, даже если к вам в руки попадет, скажем, большой FLAC-файл с CUE-файлом, на основе информации, содержащейся в CUE-файле, исходный файл можно разделить на отдельные треки – мы рассмотрим ПО, которое может решить эту задачу.
Начнем описание форматов сжатия данных без потерь с популярного формата FLAC.
FLAC
FLAC (Free Lossless Audio Codec) – это формат сжатия аудиоданных без потерь, который разработала Xiph.Org Foundation. Это абсолютно бесплатный формат, которым могут пользоваться все желающие.
Работа FLAC и других кодеков, сохраняющих аудиоданные без потерь, напоминает работу обычных архиваторов. Однако, за счет специальных алгоритмов эффективность таких кодеков при сжатии аудиоинформации гораздо выше, чем у обычных архиваторов.
Формат FLAC разрабатывался как поточный – информация во FLAC-файле разбита на фреймы (кадры), каждый из которых может быть раскодирован отдельно от других фреймов.
Как правило, FLAC способен сжать исходный файл, например, Audio CD-качества на 40-50%. В итоге битрейт полученной записи оказывается равным порядка 800 Кбит/c.
В формате FLAC предусмотрена возможность сохранения CD-дисков таким образом, что при необходимости можно полностью воссоздать исходный диск – это очень удобно для тех, кто хочет создать цифровые копии своих CD с возможностью последующего восстановления.
Скорость кодирования и декодирования FLAC-файлов неодинакова. Скорость кодирования зависит от уровня сжатия и от скорости системы – на высоких уровнях сжатия она может быть достаточно медленной. Однако раскодирование ведется очень быстро – с ним без труда могут справиться современные MP3-плееры.
За счет возможности бесплатного свободного использования, с FLAC можно работать на базе практически любой современной ОС, все больше MP3-плееров поддерживают этот формат.
Кодирование в формат FLAC
Скачать утилиту для кодирования FLAC-файлов можно на http://flac.sourceforge.net/download.html/. Она включает в себя сам кодек и так называемый Frontend – программную оболочку для кодека. Размер дистрибутива занимает порядка 2,5 Мб. Работа с кодеком проста: вы добавляете интересующие вас файлы в окно программы (рис. 4.1.) с помощью кнопки Add Files (Добавить файлы), настраиваете опции кодирования и нажимаете кнопку Encode (Кодировать) – программа создает FLAC-файл.
Давайте рассмотрим наиболее значимые установки кодека. Для начала остановимся на группе параметров Encoding Options (Параметры кодирования)
Параметр Level (Уровень) отвечает за уровень сжатия данных. Он может изменяться от 0 до 8. Чем больше уровень сжатия, тем, соответственно, меньше готовый файл, но больше время, необходимое для кодирования файлов. На быстрых компьютерах разница между Level 0 и Level 8 при кодировании, скажем, 30-мегабайтного WAV-файла может составить несколько секунд. Размер отличается примерно на 10% от исходного размера файла. Вам стоит поэкспериментировать с этим параметром на вашем ПК – возможно, если вы будете кодировать несколько сотен файлов, вы предпочтете меньший уровень сжатия большей скорости работы.
Параметр Verify (Проверить) предписывает кодеру проверку выходных файлов.
Параметр Add tags (Добавить теги) добавляет в готовый файл теги (например, они могут содержать название композиции, автора и т. д.) – настроить их можно, нажав на кнопку Tag Conf. (Настройка тегов).
Параметр Replaygain (Уровень проигрывания) добавляет в файлы параметр, указывающий на уровень громкости файла. Если установлен параметр Treat input files as one album (Обрабатывать входные файлы как один альбом) – все записи в альбоме будут звучать с одинаковой громкостью.
Группа параметров General Options (Общие параметры) содержит два параметра. Пожалуй, здесь следует отметить параметр OGG-Flac. Если этот параметр сброшен, то FLAC-данные упаковываются в стандартный FLAC-контейнер. Если вы планируете лишь прослушивать полученные FLAC-файлы, этот параметр можно не устанавливать, а если ваши планы на эти файлы более обширны – например, вы планируете редактировать их, использовать их для вставки в видеофильмы, лучше всего включить параметр Ogg-FLAC.
Параметр Output Directory (Выходная директория) содержит путь к директории, где будут содержаться выходные файлы.
В группе параметров Decoding options (Опции декодирования) есть параметр Dec. Through errors (Декодировать несмотря на ошибки) – установите его, если хотите декодировать какой-либо файл даже в том случае, если при декодировании возникают ошибки. Декодирование – процесс обратный кодированию – то есть декодировать вы можете FLAC-файлы, превратив их в WAV-файлы. Для декодирования, естественно, вам придется добавить в окно программы FLAC-файлы.
После того, как все настроено, достаточно нажать на кнопку Encode (Кодировать) для создания FLAC-файлов, либо, если вы хотите декодировать существующие FLAC-файлы – нажмите кнопку Decode (Декодировать).
Помимо вышеописанной, кодировать FLAC могут и другие программы. Например, это уже известная вам ImTOO Audio Encoder – для кодирования в формат FLAC достаточно выбрать его из списка форматов (рис. 4.2.).
Среди доступных настроек кодека можно отметить настройку уровня сжатия, она, как и в обычном кодеке, изменяется от 0 до 8.
Что интересно, программа не поддерживает кодирование из формата FLAC – даже если упаковать FLAC-данные в поддерживаемый программой контейнер OGG, она, на этапе кодирования, сообщит об ошибке. Однако, как вы знаете, декодировать FLAC-файлы можно с помощью вышеописанной программы.
Разбиваем большие файлы на отдельные треки
Выше мы упоминали о том, что вам могут встретиться альбомы различных форматов, закодированные единым файлом с прилагающимся к этому файлу CUE-файлом, содержащим информацию о треках. Удобнее всего для использования разбивать такие файлы на отдельные треки (хотя и связка, например, FLAC+CUE вполне жизнеспособна). Для этого можете воспользоваться программой Cue Splitter. Это абсолютно бесплатная программа, которую можно скачать на http://www.enfis.it/. Размер дистрибутива – чуть больше 1 Мб. Программа (рис. 4.3.) имеет русифицированный интерфейс, вы без труда освоите ее.
Главное, что нужно сделать, разрезая большой файл на части – это открыть файл командой Файл_Открыть CUE, после чего можно сразу же нажимать на кнопку Разрезать, либо сделать это чуть позже, предварительно настроив имена файлов.