Компьютерра - Журнал «Компьютерра» № 12 от 28 марта 2006 года
Завершаем тематику Rockbox — альтернативной операционной системы для цифровых джукбоксов Archos, iRiver и iPod.
После установки ROCKbox H300 Experimental, специализированного порта для iRiver H340, алгоритм которой мы разобрали на прошлой неделе, около часа уходит на любование новым интерфейсом (десятки сменных красочных скинов!) и изучение бескрайнего моря ранее недоступных опций и настроек, затем, однако, непременно материализуется лингам вопроса: что будем слушать?
В самом деле, эффективное проигрывание Рокбоксом lossless-кодеков задвигает привычные «эмпэтришки» вкупе с «оггворбисами» в кладовку. С места хочется чего-нибудь продвинутого, типа «терамису» из цифрового аудио. Тут-то и приключается первая непонятка: оказалось, что популярная на бакунианских порталах «мартышка» — формат без потери качества Monkey’s Audio — под Рокбоксом не играет и, к сожалению, никогда играть не будет. По двум причинам. Во-первых, лицензия этого кодека несовместима с требованиями open source, во-вторых — и это главное — Monkey’s Audio специально заточен под процессор x86, поэтому на Motorola 68K, используемом в iRiver H340, в реальном времени декодироваться не сможет.
По гамбургскому счету, никакой трагедии нет, поскольку Рокбокс легко справляется с прочими кодеками без потери качества — FLAC, AIFF, ALAC, Shorten и Wavpack, — однако потребуются лишние телодвижения, связанные с перекодированием и, соответственно, знакомством с дополнительным софтом.
Итак, львиная доля lossless-цифрового звука, поступающего в распоряжение рунетчиков-меломанов, представлена в вариантах APE+CUE и FLAC+CUE. APE, как мы только что узнали, не поддерживается, зато FLAC — очень даже ираклий годидзе. Тем не менее я остановился на другом, ранее незнакомом мне кодеке — Wavpack. Опять же по двум причинам:
Процесс кодирования Wavpack — один из самых быстрых (вдвое быстрее FLAC и почти втрое — Monkey’s Audio), а это немаловажно с учетом огромной коллекции накопившихся дисков.
Оптимизация Wavpack на Rockbox доведена до предела, поэтому негласно он рекомендуется на роль фаворита. Дело в том, что с учетом дополнительных опций Rockbox — регулируемой величины антишока, фейдинга на паузах и остановках (плавное затухание звука), кроссфейдинга на стыках (затухание завершающейся при одновременном усилении начинающейся композиции), эффекта replaigain (выравнивание всех композиций по громкости), предотвращения клиппинга и пр. — скорость декодирования должна существенно превышать то, что называется real-time, и именно у Wavpack этот показатель наилучший.
При прочих равных условиях (уровень компрессии всех lossless-кодеков примерно одинаков — от 35 до 55%) выбор в пользу Wavpack очевиден. По традиции процедуру перегонки форматов излагаю в алгоритмическом виде.
1. Разбираемся с индексной картой
Хорошо, если вам попадется диск с так называемой потрековой компрессией lossless-кодеком. Иными словами, каждая композиция обрабатывается по отдельности, и на выходе мы получаем нечто вроде такого:
Gut Reaction.ape
Long And Lonely Ride.ape
Love Gun.ape
Loving On Borrowed Time.ape
Moonshine.ape
(первые треки диска Яна Гиллана «Naked Thunder» 1990 — пост kpax от 18 марта на блоге Капитана Немо: grand merci, buddy!).
В этом случае никакой предварительной обработки не требуется, и мы можем сразу приступить к перекодировке формата. Гораздо чаще, однако, приходится иметь дело с упаковкой всего диска в единый APE— или FLAC-файл солидного размера (230—320 Мбайт), который сопровождается так называемой индексной картой (CUE-файлом, в нем хранится информация о названиях композиций и разбивке треков). Программа EAC, о которой я рассказывал в «Бум грувить!», использует CUE-файлы для прожига дисков на лету, но вот вопрос: как следует поступить, если мы не планируем ничего прожигать, а просто пытаемся разделить большой файл на самостоятельные треки для их последующей обработки?
Казалось бы, тривиальнейшая задача, однако пришлось поковыряться, прежде чем выудить на поверхность маленький итальянский шедевр под названием CUE Splitter (рис. 1).
Римский человечек по имени Давид Чукини, 79-го года рождения, поклонник транса и техно, похоже, отработал за весь мир: сколько ни искал, аналога CUE Splitter так и не обнаружил. Особенно впечатляет, что при своем фриварном статусе программа постоянно обновляется, причем самым радикальным образом, чего не скажешь о большинстве бесплатных поделок: сварганит человек то ли в порыве фибрильного альтруизма, то ли по пьяни фриварную утилитку, а на утро — застыдится, сконфузится, отмахнется да и ляжет на дно. Вот и получается, что большинство халявных программ никогда не обновляются — радуйтесь, мол, тому, что дают.
Работа с CUE Splitter — сплошной ноубрейнер: скармливаете программе CUE-файл с исходным WAVE-, MP3-, FLAC— или APE-массивом, а на выходе получаете вырезку по трекам — простенько, но ой как со вкусом.
2. Перекодировка APE (FLAC)-WAVE-WAVPACK
После разделения на треки нам остается два телодвижения: возгонка «обезьянки» или «флака» до первоначального состояния (некомпрессированный WAVE) и обратная упаковка в новый lossless-кодек Wavpack.
Под каждую из операций заточена своя, очень даже филигранная программа. Декодирование APE отлично и быстро проводит «родная» Monkey’s Audio (рис. 2).
Программа — такой же ноубрейнер, что и CUE Splitter: загнали исходные файлы, нажали на Decompress и через минуту— другую получили Wave-файлы, абсолютно идентичные оригинальным трекам на компакт-диске CD-Audio. Подчеркиваю слово «абсолютно», поскольку неоднократно встречал на различных форумах шальные мысли о том, что, мол, lossless-кодеки компрессируют музыку не то чтобы один в один, а с мааааленькими искажениями — это, Kameraden, вредный миф, так себе и намотайте (кто на что хочет).
Декодирование FLAC проводится с помощью универсальной «морды» (frontend), которая приводит в человеческий вид исходный кодек, оперирующий с командной строки (рис. 3). На скриншоте видно множество тонких настроек — так вот, бога ради, не заморачивайтесь, поскольку они относятся к процессу кодировки, а не декодированию. Остальное — всё как всегда: вводите список файлов, жмете Decode, получаете на выходе WAVE.
Наконец, последний телодвиг — компрессирование в формат WavPack. Подобно FLAC этот кодек запускается с командной строки, поэтому для него используется точно такой же frontend (рис. 4).
Раз уж мы заговорили о frontend, не могу утаить от читателей самую-пресамую универсальную «мордаху» под названием Multi Frontend. По сути, это просто компиляция большинства существующих кодеков, однако под одной крышей всё это выглядит жутко удобно. Судите сами: Multi Frontend понимает 36 кодеков, и все они включены в дистрибутив программы (рис. 5)!
Последний информационный штрих: кодировщик WavPack позволяет создавать как компрессированный чисто lossless, так и «гибридный» файл, представляющий собой хоть и сомнительное (в свете сегодняшней стоимости носителей), однако ж оригинальное решение. В гибридном варианте мы создаем компрессированный файл с потерей качества (скажем, с битрейтом 320 кбит/с) плюс специальный корректировочный файл, который содержит всю дополнительную информацию, необходимую для восстановления оригинального качества (размеры файлов приведены в таблице).
Как видите, размер гибридного файла WavPack идентичен традиционному MP3, только скорость кодировки (на глазок и без секундомера) у меня оказалась раз в пять выше, чем у Lame (c параметром «—b 320»). Считается, что гибридным файлом человек пользуется в повседневной жизни, а коррекционный файл (Wvc) хранится в архиве на случай, если понадобится восстановить оригинальный компакт-диск.
Мое отношение к такому раскладу передается крылатой фразой Вовочки, обращенной к своей скабрёзной учительнице: «Вы ошибаетесь, Мариванна, но ход ваших мыслей мне нравится!» Иными словами, если ваш плейер не позволяет слушать музыку в полноценном lossless-формате, то вариант с гибридным WavPack и в самом деле выглядит оптимально. При этом наличие коррекционного файла в архиве будет лишний раз согревать душу в предвкушении момента, когда вы приобретете правильный плейер (желательно с Рокбоксом!).
Что ж, сворачиваем до будущей оказии музыкальную тему в «Голубятнях» и готовимся к софтверным приключениям в иных брамфатурах (да простят меня поклонники Даниила Андреева за святотатство!).
Напоследок — чуть не забыл! — поясню заголовок. «Назад в будущее» относится не к Рокбоксу и не к iRiver H340, а к старому знакомому нашей колонки — наладоннику HP iPaq 4700. Полтора года для КПК, каким бы удивительным он ни был, согласитесь — многовато для тестирования. Мне давно уже хочется погонять чего-нибудь свеженького. Поверите ли — невозможно! Почему? Потому что до сих пор на рынке нет ничего, что бы хоть как-то могло сравниться с удивительным «сорок седьмым». Невероятно, но факт. Особенно горько осознавать столь безысходную ситуацию после того, как Hewlett-Packard отказался от дальнейших выпусков наладонников класса hi-end, переметнувшись на рынок смартфонов, а главная надежда — Fujitsu-Siemens — так чудовищно обманул надежды поклонников долгожданной моделью Pocket Loox N560. Изначально предполагалось, что «убийца 4700», слухи о котором поползли прошлой осенью, окажется на пике технологического прогресса: 256 Мбайт ROM, видеоускоритель, 3,7-дюймовый VGA-дисплей, Bluetooth 2.0, скоростной Wi-Fi (802.11b/g) и встроенный GPS-приемник последнего поколения на суперчипе SiRF Star III. Несомненно, подобная машинка обходила iPaq 4700 по всем параметрам, несмотря даже на чуть меньший экран (3,7 против 4 дюймов) и отсутствие слота CF-карт.