Тест бесплатныx MP3-энкодеров
Все мы любим 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
Кбит/с).
Битрейт |
Битрейт (bitrate) - слово, пришедшее в
систему кодирования звука из терминов передачи данных. Битрейт
измеряется в килобитах в секунду (Кбит/с) и показывает объем
сжатия исходного звука. К примеру, если кодирование происходит
с битрейтом 128 Кбит/с, то это означает, что 1 с звука будет
занимать 128 Кбит или 16 Кбайт. Если закодировать звук с
битрейтом 32 Кбит/с, а скорость связи и передачи данных будет
33,6 - то звук может прослушиваться по мере его передачи по
сети. Чем выше битрейт, тем выше результирующее качество
сжатого звука и, соответственно, больше размер сжатого звука.
Стандарт MP3 позволяет осуществлять кодирование звука с
битрейтом от 8 до 320 Кбит/с. Для получения сжатого звука,
сравнимого и порой неотличимого от CD-качества, необходимо
использовать битрейты от 112 Кбит/с. Стандартом де-факто стал
битрейт 128 Кбит/с, на котором достигается оптимальное
соотношение качество/размер результирующего
MP3-файла. | |
Список возможностей Blade Encoder сравнительно невелик - поддержка
битрейта до 320 Кбит/с, создание монофайла из одного канала стереозвука,
поддержка незакодированных звуковых данных в качестве источника и работа
со стандартным вводом и выводом, а также использование конфигурационного
файла.
Если вы просто запустите Blade Encoder, то получите краткую справку по
данному кодировщику и список ключей. Чтобы повлиять на результат работы
программы, вам придется обратиться к командной строке. В качестве
параметров программы надо указать исходный файл, имя результирующего
MP3-файла и ключи-параметры кодирования. Blade Encoder способен
воспринимать несколько исходных звуковых файлов или даже маску файлов (т.
е. применение символов "*" или "?"), при этом можно указать свои параметры
сжатия для каждого звукового файла. Такая возможность позволяет запускать
программу в автоматическом режиме или работать в фоновом режиме.
При кодировании нескольких исходных файлов следует знать несколько
правил их записи в командной строке Blade Encoder. Сначала задается имя
исходного файла, а затем, по желанию, имя производимого MP3-файла. Если
имя последнего отсутствует, то результирующий файл получит то же имя, что
и исходный, но с расширением ".mp3". Следующая строка закодирует
последовательно два WAV-файла и создаст файлы track1.mp3 и
mymusic.mp3:
bladeenc track1.wav track2.wav
mymusic.mp3
| |
Параметры кодирования, которые были написаны сразу после имени
программы, считаются "глобальными" и будут применяться для всех
перечисленных файлов. После имени файла можно указать "локальные" ключи,
которые будут влиять только на данный файл. Например, следующая команда
создаст три MP3-файла. Первый и третий будут закодированы с битрейтом 160
Кбит/с и получат имена track1.mp3 и output.mp3, а второй, с именем
track2.mp3, будет закодирован с битрейтом 256 Кбит/с:
bladeenc -160 track1.wav track2.wav
-256 track3.wav output.mp3
| |
Как видите, все довольно просто.
Помимо этого Blade Encoder может использовать в качестве исходного
звукового файла или результирующего закодированного файла стандартный
входной и выходной потоки. Для Windows-систем подобная возможность особого
применения, скорее всего, не найдет, но вот в других системах
(Unix-подобных) это довольно часто применяется. Таким образом вы можете
осуществлять кодировку "на лету". Например, с помощью одной программы
считывать звук с компакт-диска (которая должна будет выдавать свой
результат на стандартный входной поток), а Blade Encoder будет кодировать
эти данные. Или результат кодирования будет подаваться на стандартный
выходной поток, а он, в свою очередь, будет передаваться по сети. Для
использования входного или выходного потока в качестве имени файла
потребуется ключевое слово stdin или stdout.
Программа Blade Encoder также поддерживает работу с конфигурационным
файлом. Все, что в нем записано, будет добавлено в командную строку при
каждом вызове кодировщика. В файле можно использовать комментарии, которые
должны начинаться с символа решетки "#". Например, если ваш
конфигурационный файл выглядит следующим образом:
# конфигурация Blade Encoder -256 -quit
-outdir=c:\Mpegs | |
то вызов команды
закодирует звук в файл 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, но для
простых и несложных работ он подходит наилучшим образом.
Командная строка Blade
Encoder |
В общем виде командная строка для Blade
Encoder будет выглядеть следующим образом: bladeenc
[параметры] имя_wave [имя_mp3 [параметры]] : Список ключей
перечислен ниже.
| |
Lame
Сравнивать возможности 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, так это обилие настроек. Нечасто подобные
программы предоставляют возможности по изменению параметров кодирования,
как правило, разрешается устанавливать лишь битрейт и частоту
дискретизации. В этом отношении Lame дает сто очков вперед практически
любому MP3-кодировщику: разнообразные настройки и установки, применение
фильтров верхних и нижних частот, изменение частоты дискретизации входного
файла и многое другое. Lame может служить и декодером MP3-файла,
преобразовывая его в стандартный звуковой файл WAV PCM. Источником звука
для компрессора может служить как несжатая аудиозапись, так и уже готовый
MP3. Результат применения психоакустической модели можно проигнорировать и
использовать стандартный алгоритм абсолютного порога слышимости, ATH
(absolute threshold of hearing), который будет осуществлять сжатие на
основе нечувствительных для человеческого уха звуках. Этот алгоритм
обоснован только при высоких битрейтах или для проверки ATH.
Чтобы облегчить нам жизнь, разработчики Lame определили заготовленные
параметры сжатия. Вам достаточно лишь выбрать качество - phone, voice, fm,
tape, hifi, cd или studio, и результат компрессии будет сопоставим с
указанным вариантом. Еще одним упрощением является установка желаемого
коэффициента сжатия аудиозаписи вместо самостоятельного подбора битрейта.
Кодировщик предоставляет специальную возможность работы с записанным
голосом. Применение специальной опции голосового сжатия заставит
кодировщик особым образом обрабатывать входной файл, результатом чего
могут стать весьма позитивные показатели сжатия записанного голоса. Ну и,
наконец, есть варианты high quality и fast сжатия, которые ориентированы
на высококачественное, но медленное и, наоборот, низкокачественное, но
быстрое кодирование аудиопотока.
Я думаю, несложно было заметить, что данный кодер по всем статьям
превосходит своего "оппонента". Впрочем, окончательные выводы мы будем
делать после проверки программ в работе.
Командная строка Lame |
Формат командной строки Lame выглядит
следующим образом: lame параметры входной_файл
выходной_файл Описание ключей (параметров):
| |
Тестирование
Для начала сравним работу бесплатных кодировщиков с их коммерческим
аналогом и исходным звуковым файлом. Тестирование специально проводилось
на маломощной машине (Pentium-100), чтобы сразу проверить и такую
ситуацию. Понятно, что на более современном компьютере операция
кодирования будет происходить быстрее. В качестве оригинала был взят
52-секундный звуковой файл, а кодировался он с качеством 128 кбит/с, 44
кГц. Результаты кодирования приведены в соответствующей таблице.
|
|
Спектральная характеристика исходного
звукового файла. |
Спектральная характеристика после применения
Lame. |
|
|
Спектральная характеристика после применения
Fraunhofer ISS. |
Спектральная характеристика после применения Blade
Encoder. |
> |
|
Графическое представление амплитуды
исходного звукового файла. |
Графическое представление амплитуды в
результате применения Lame. |
|
|
Графическое представление амплитуды в
результате применения Fraunhofer ISS. |
Графическое представление амплитуды в
результате применения Blade
Encoder. |
Кодировщик |
Время сжатия |
Размер файла, байт |
Незакодированный файл |
00:52 |
8 494 492 |
Blade Encoder |
03:49 |
770 717 |
Lame |
02:00 |
771 006 |
Fraunhofer mp3 producer |
04:42 |
769
436 | |
Таким образом, самым "скоростным" оказался кодировщик Lame, но и его же
результирующий размер файла является самым большим. О "монстре" Fraunhofer
mp3 producer можно сказать словами пословицы "тише едешь - дальше будешь":
хоть он и показал самые высокое время, но размер результирующего
закодированного файла самый небольшой. С другой стороны, разница в 1
Кбайт, наверное, не так уж и существенна, правда?
Теперь рассмотрим на приведенных картинках качество кодирования.
Как видно, у всех кодировщиков начинаются провалы на высоких частотах
от 13 кГц. Результат работы Blade Encoder имеет наиболее глубокие провалы
в высоких частотах по сравнению с результатами других кодировщиков.
Наиболее близким к оригиналу является, как и следовало ожидать, вариант
кодировщика Fraunhofer. И совсем чуть-чуть от него отстает Lame.
Выводы
Lame достаточно быстр, результат кодирования по размеру у него хоть и
самый большой, но по качеству достаточно близок к эталонному кодировщику
от Fraunhofer. Blade Encoder представляет собой нечто среднее и
"любительское", если вам необходимо просто и со средним качеством
закодировать файл - данный кодировщик подходит для этого больше всего. Как
утверждает сам разработчик Blade Encoder: "Используйте кодировщик
Fraunhofer для файлов с низким битрейтом, а Blade - с высоким". Lame
помимо хорошего качества и скорости предоставляет обширные возможности по
настройке и использованию новых технологий в кодировании, таких, как VBR
или joint stereo. При этом он бесплатен, а его разработка и
усовершенствование ведется постоянно. Так что победитель, я полагаю,
очевиден. Если у вас еще нет этого кодера, обязательно скачайте его. Как
нам кажется, Lame способен заменить даже весьма дорогие коммерческие
программы, так что не мешкайте. Кто знает, вдруг разработчики передумают и
решат сделать его платным?!
Автор: Дмитрий Шипилов
Источник: www.submarine.ru
|