Все мы любим MP3-файлы - цифровая музыка основательно и надолго вошла в мир любого пользователя персонального компьютера. Как ее слушать - вопрос, ответ на который дают десятки бесплатных и несколько коммерческих программ, доступных на просторах Паутины и способных проигрывать музыкальные файлы самых различных форматов. Перед создателем же MP3-файлов стоит более серьезный вопрос: где найти бесплатный кодировщик, результат работы которого не бросал бы в дрожь, щадящий барабанные перепонки и экономящий ваше драгоценное время. Как ни странно, но есть абсолютно бесплатные разработки, по своему качеству и возможностям не намного отстающие от аналогичных, коммерческих кодировщиков. Тестирование двух подобных программ мы и проведем на этот раз.
В то время, как коммерческие кодеры в основном ориентированы на пользователя Windows или редко MacOS, большинство бесплатных компрессоров не привязаны к операционной системе, поскольку распространяются в исходных кодах, и их выполняемые версии можно найти для любой ОС, будь то Windows, OS/2, Linux или Mac. Подобная переносимость между системами накладывает некоторый, вполне очевидный отпечаток на интерфейс программ - оригинальные версии подобных компрессоров работают в консольном текстовом режиме (т. к. консольный режим - это единственная возможность объединить интерфейсы практически всех операционных систем, за исключением, пожалуй, только MacOS). Сразу скажем, что для применения таких кодировщиков вам придется поработать с клавиатурой. Те же, кто предпочитает создавать MP3 только при помощи мышки, смогут воспользоваться не менее бесплатными "графическими оболочками", работающими на "движках" этих кодировщиков. Тем не менее есть несколько доводов за оригинальные, текстовые версии подобных программ для создания MP3. Во-первых, программы сторонних разработчиков могут не предусмотреть некоторые возможности изначального компрессора, посчитав их необязательными или вовсе ненужными. Во-вторых, как правило, новые версии этих программ выходят довольно часто (иногда даже раз в день) - разработка и оптимизация программы ведется постоянно. Другие разработчики могут просто не предоставить новой версии своей программы с обновленным компрессором или даже закрыть проект. Не стоит забывать и об ошибках разработчиков. Возможным следствием перехода к оконному интерфейсу может стать снижение производительности "движка". Поэтому следует подумать над возвращением к столь непривычной для современного пользователя командной строке в консольном режиме.
В последнее время в области бесплатных MP3-кодировщиков наиболее четко выделяются две разработки - Blade Encoder и Lame. На них мы и остановим ваше внимание в данной статье.
Blade Encoder
Blade Encoder является одним из наиболее широко известных бесплатных MP3-кодировщиков. В качестве исходного звука Blade может воспринимать файл в звуковом формате WAV, AIFF или незакодированные звуковые данные RAW. В оригинале эта программа является консольной, но все же минимум удобств для оконного интерфейса она предоставляет. Для начала кодировки вам будет необходимо мышкой перетащить незакодированный WAV-файл на пиктограмму программы Blade Encoder, и кодировщик начнет свою работу с параметрами, заданными "по умолчанию" (обычно это кодировка с битрейтом 128 Кбит/с).
|
Список возможностей Blade Encoder сравнительно невелик - поддержка битрейта до 320 Кбит/с, создание монофайла из одного канала стереозвука, поддержка незакодированных звуковых данных в качестве источника и работа со стандартным вводом и выводом, а также использование конфигурационного файла.
Если вы просто запустите Blade Encoder, то получите краткую справку по данному кодировщику и список ключей. Чтобы повлиять на результат работы программы, вам придется обратиться к командной строке. В качестве параметров программы надо указать исходный файл, имя результирующего MP3-файла и ключи-параметры кодирования. Blade Encoder способен воспринимать несколько исходных звуковых файлов или даже маску файлов (т. е. применение символов "*" или "?"), при этом можно указать свои параметры сжатия для каждого звукового файла. Такая возможность позволяет запускать программу в автоматическом режиме или работать в фоновом режиме.
При кодировании нескольких исходных файлов следует знать несколько правил их записи в командной строке Blade Encoder. Сначала задается имя исходного файла, а затем, по желанию, имя производимого MP3-файла. Если имя последнего отсутствует, то результирующий файл получит то же имя, что и исходный, но с расширением ".mp3". Следующая строка закодирует последовательно два WAV-файла и создаст файлы track1.mp3 и mymusic.mp3:
|
Параметры кодирования, которые были написаны сразу после имени программы, считаются "глобальными" и будут применяться для всех перечисленных файлов. После имени файла можно указать "локальные" ключи, которые будут влиять только на данный файл. Например, следующая команда создаст три MP3-файла. Первый и третий будут закодированы с битрейтом 160 Кбит/с и получат имена track1.mp3 и output.mp3, а второй, с именем track2.mp3, будет закодирован с битрейтом 256 Кбит/с:
|
Как видите, все довольно просто.
Помимо этого Blade Encoder может использовать в качестве исходного звукового файла или результирующего закодированного файла стандартный входной и выходной потоки. Для Windows-систем подобная возможность особого применения, скорее всего, не найдет, но вот в других системах (Unix-подобных) это довольно часто применяется. Таким образом вы можете осуществлять кодировку "на лету". Например, с помощью одной программы считывать звук с компакт-диска (которая должна будет выдавать свой результат на стандартный входной поток), а Blade Encoder будет кодировать эти данные. Или результат кодирования будет подаваться на стандартный выходной поток, а он, в свою очередь, будет передаваться по сети. Для использования входного или выходного потока в качестве имени файла потребуется ключевое слово stdin или stdout.
Программа Blade Encoder также поддерживает работу с конфигурационным файлом. Все, что в нем записано, будет добавлено в командную строку при каждом вызове кодировщика. В файле можно использовать комментарии, которые должны начинаться с символа решетки "#". Например, если ваш конфигурационный файл выглядит следующим образом:
|
то вызов команды
|
закодирует звук в файл c:\Mpegs\track1.mp3 с битрейтом 256 (а не 128, как стоит по умолчанию).
В Windows и BeOS конфигурационный файл должен называться bladeenc.cfg и размещаться в том же каталоге, что и сама программа. В Unix-подобных системах данный файл должен иметь имя .bladeencrc и размещаться в домашнем каталоге пользователя.
Процесс кодировки можно прервать, нажав комбинацию клавиш Ctrl+С (в системах Windows и BeOS) или Esc (в UNIX). Если вам необходимо освободить ресурсы процессора и приостановить кодирование, то необходимо нажать Esc (в Windows и BeOS) или Ctrl+Z (в UNIX).
В итоге можно сказать, что Blade Encoder предоставляет несколько ограниченный набор возможностей (например, не реализован алгоритм использования переменного битрейта, VBR) по кодированию MP3, но для простых и несложных работ он подходит наилучшим образом.
|
Сравнивать возможности Lame и Blade Encoder - все равно что сопоставлять слабенький компьютер образца середины 90-х гг. и новейший суперкомпьютер. "Каковы же особенности и возможности Lame? - спросите вы.- Что позволяет мне утверждать подобное?"
Основой кодировщика является его психоакустическая модель, которая определяет процесс и метод кодирования. В Lame используется собственная наработка под названием GPSYCHO, а в остальных бесплатных кодировщиках - разработки ISO, которые были реализованы только в качестве демонстрационной версии. В коммерческих программах применяются, в основном, собственные методики, лучшей из которых принято считать модель, созданную Fraunhofer IIS в программе MP3 Producer. В GPSYCHO реализован и переменный битрейт (VBR, variable bitrate), и технология mid/side stereo, дающая иногда лучшие результаты, нежели технология объединенного стерео (joint stereo) и другие разработки, такие, как ABR (average bitrate), улучшенная квантизация и т. п.
Сущность технологии переменного битрейта (или VBR) заключается в увеличении битрейта в тех местах, где требуется более точная передача звука, и соответственно в его уменьшении, когда человеческое ухо менее чувствительно к потерям сжатия. При работе VBR указывается наименьший и наибольший битрейт, в рамках которых он будет изменяться при компрессии звука. Битрейт для какого-то определенного участка звука выбирается, естественно, самой программой автоматически. MP3-файл, закодированный с переменным битрейтом, занимает, как правило, меньше места и обладает лучшим качеством, в сравнении с той же композицией, сжатой с постоянным битрейтом.
Технология mid/side stereo дополняет систему объединенного стерео (joint stereo). Без их применения MP3-компрессор использует классическую схему стереосжатия, когда левый и правый канал звука сжимаются раздельно. При joint stereo кодируется общий поток звука для обоих каналов, а затем отдельно записываются различия в звучании правых и левых каналов. Обычно эти отличия минимальны, что позволяет достигать меньшего размера результирующего сжатого файла при сохранении высокого качества. Модель GPSYCHO добавляет технологию mid/side stereo, при которой анализируются не левый и правый канал, а средний и боковой. Для среднего канала отводится больше места, чем для бокового. Если звук имеет небольшие стереовариации, то в боковом канале будет появляться незначительное количество информации и использование mid/side stereo приводит к серьезным выигрышам в объеме сжатия. В противном случае, когда правый и левый канал сильно различаются, в боковом канале аудиопотока будет содержаться большое количество данных, и результат применения mid/side stereo проявится в виде шумов как в левом, так и в правом канале.
Что наиболее приятно в Lame, так это обилие настроек. Нечасто подобные программы предоставляют возможности по изменению параметров кодирования, как правило, разрешается устанавливать лишь битрейт и частоту дискретизации. В этом отношении Lame дает сто очков вперед практически любому MP3-кодировщику: разнообразные настройки и установки, применение фильтров верхних и нижних частот, изменение частоты дискретизации входного файла и многое другое. Lame может служить и декодером MP3-файла, преобразовывая его в стандартный звуковой файл WAV PCM. Источником звука для компрессора может служить как несжатая аудиозапись, так и уже готовый MP3. Результат применения психоакустической модели можно проигнорировать и использовать стандартный алгоритм абсолютного порога слышимости, ATH (absolute threshold of hearing), который будет осуществлять сжатие на основе нечувствительных для человеческого уха звуках. Этот алгоритм обоснован только при высоких битрейтах или для проверки ATH.
Чтобы облегчить нам жизнь, разработчики Lame определили заготовленные параметры сжатия. Вам достаточно лишь выбрать качество - phone, voice, fm, tape, hifi, cd или studio, и результат компрессии будет сопоставим с указанным вариантом. Еще одним упрощением является установка желаемого коэффициента сжатия аудиозаписи вместо самостоятельного подбора битрейта. Кодировщик предоставляет специальную возможность работы с записанным голосом. Применение специальной опции голосового сжатия заставит кодировщик особым образом обрабатывать входной файл, результатом чего могут стать весьма позитивные показатели сжатия записанного голоса. Ну и, наконец, есть варианты high quality и fast сжатия, которые ориентированы на высококачественное, но медленное и, наоборот, низкокачественное, но быстрое кодирование аудиопотока.
Я думаю, несложно было заметить, что данный кодер по всем статьям превосходит своего "оппонента". Впрочем, окончательные выводы мы будем делать после проверки программ в работе.
|
Тестирование
Для начала сравним работу бесплатных кодировщиков с их коммерческим аналогом и исходным звуковым файлом. Тестирование специально проводилось на маломощной машине (Pentium-100), чтобы сразу проверить и такую ситуацию. Понятно, что на более современном компьютере операция кодирования будет происходить быстрее. В качестве оригинала был взят 52-секундный звуковой файл, а кодировался он с качеством 128 кбит/с, 44 кГц. Результаты кодирования приведены в соответствующей таблице.
|
Таким образом, самым "скоростным" оказался кодировщик Lame, но и его же результирующий размер файла является самым большим. О "монстре" Fraunhofer mp3 producer можно сказать словами пословицы "тише едешь - дальше будешь": хоть он и показал самые высокое время, но размер результирующего закодированного файла самый небольшой. С другой стороны, разница в 1 Кбайт, наверное, не так уж и существенна, правда?
Теперь рассмотрим на приведенных картинках качество кодирования.
Как видно, у всех кодировщиков начинаются провалы на высоких частотах от 13 кГц. Результат работы Blade Encoder имеет наиболее глубокие провалы в высоких частотах по сравнению с результатами других кодировщиков. Наиболее близким к оригиналу является, как и следовало ожидать, вариант кодировщика Fraunhofer. И совсем чуть-чуть от него отстает Lame.
Выводы
Lame достаточно быстр, результат кодирования по размеру у него хоть и самый большой, но по качеству достаточно близок к эталонному кодировщику от Fraunhofer. Blade Encoder представляет собой нечто среднее и "любительское", если вам необходимо просто и со средним качеством закодировать файл - данный кодировщик подходит для этого больше всего. Как утверждает сам разработчик Blade Encoder: "Используйте кодировщик Fraunhofer для файлов с низким битрейтом, а Blade - с высоким". Lame помимо хорошего качества и скорости предоставляет обширные возможности по настройке и использованию новых технологий в кодировании, таких, как VBR или joint stereo. При этом он бесплатен, а его разработка и усовершенствование ведется постоянно. Так что победитель, я полагаю, очевиден. Если у вас еще нет этого кодера, обязательно скачайте его. Как нам кажется, Lame способен заменить даже весьма дорогие коммерческие программы, так что не мешкайте. Кто знает, вдруг разработчики передумают и решат сделать его платным?!