News / Live Journal / Information / Soft / Music / Forum / Links / About project




Powered by Google
Информация

 Железо
 Сжатие звука
 Трекеры
 Мьюзиком
 Renoise
 Энциклопедия стилей
 Мастер-класс
 Словарик
 Мысли

Добавить в избранное

Железо

Имеем CD Audio, хотим MP3. Что делать?

последнее обновление 27.02.99

Переводя аудиотреки в компактный файловый формат MP3, мы сталкиваемся c необходимостью их добычи с оригинального CD. Эта задача может быть резрешена по-разному.

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

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

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

Первый вариант представлен такими грабберами, как mpegEnc, CDex, CDCOPY, AudioCatalyst, SoundLimit, хотя последние два не могут похвалиться высоким качеством кодирования. В последней проходившей через мои руки версии CDCOPY была невозможна перенастройка параметров jitter correction, выставленых по умолчанию, да и к надежности реализации этого режима в данном риппере/кодере были неизменные претензии, едва ли что-либо изменилось. Хотя риппер хороший, и возможно, это уже исправлено.

К вышеприведенному списку можно добавить грабберы, способные кодировать на лету с помощью кодека или BladeEnc.dll при их наличии в системе. В частности, WinDAC, и, возможно, AudioGrabber.

Вариант же с созданием WAV файла реализован практически во всех существующих грабберах, в том числе и в поддерживающих режим кодирования на лету. ( Использование кодека часто состоит как раз в том, что просто выбирается соответствующий подформат WAV, а именно поддерживаемый кодеком WAV-MP3, но в данном абзаце речь идет о WAV PCM. ) Неудобно только то, что необходимо всегда иметь относительно большой объем свободного места на диске — до 100Mb для длинных треков, — но это сполна окупается тем преимуществом, что мы можем сами выбирать пару граббер/кодер.

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

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

Причина нестандартной громкости — почтенный возраст CD. Было такое время, когда разные CD разными производителями записывались с совершенно разными уровнями записи. Оно и сейчас не для всех прошло. Не у всех руки откуда надо растут.

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

Причиной появления щелчков при чтении качественых дисков является неспособность большинства ( во всяком случае очень многих ) CD-ROM осуществлять точное позиционирование на нужный сектор аудиодиска. Проблему это создает потому, что часто бывает необходимо или желательно читать трек по частям, так как разное случается. Часто бывает, что граббер не успевает сохранить полученную информацию из-за загрузки системы ( скажем, полезла Windows в своп по своим нуждам ), поэтому буфер CD-ROM переполняется, чистится, информация теряется. Тем более это касается метода параллельного кодирования, когда скорость считывания обычно в несколько раз превосходит скорость кодирования.

Проблема обходится чтением по частям с перекрытием, что, однако, может сильно замедлить весь процесс. Такая техника именуется "jitter correction"; ошибки в позиционировании называют "jitter". ( Ни то, ни другое не являются основными и признанными значениями терминов jitter и jitter correction ).

В большинстве реализаций в большинстве случаев jitter correction дает вполне удовлетворительные результаты, но в особо запущенных приходится немало помучиться, выбирая самый устойчивый граббер. В случае больших проблем следует переходить на EAC.

Кстати, режим чтения всего трека за один прием применять все же можно, только при этом лучше забыть про кодирование на лету. Считывание же с немедленным сохранением на ряде систем работает неплохо.

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

Но при этом возникает проблема достаточности доступной памяти — для хранения пятиминутного трека потребуется около пятидесяти мегабайт, а для семи-десяти минутного 64Mb установленной пямяти уже не хватит. Но и в таком количестве она установливается достаточно редко.

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

Маленький "сюрприз" — проблема надежности реализации jitter correction мало затрагивает грабберы под DOS. Я имею в виду, в известных мне этот режим просто не реализован. Возможно, исключение составляет CDDA, до которого мои руки не добрались и на основе которого под Windows написан популярный граббер WinDAC. Второй "сюрприз" — грабберы под DOS отказываются работать под Windows. Но есть и плюс — под DOS гораздо чаще удается корректное копирование в режиме burst mode ( то самое копирование за один прием ), так как не мешает Windows, и на многих CD-ROM этот номер проходит.

Грабберы под другие системы через мои руки не проходили, но их тоже немало.

Выбранный вами граббер ( под DOS, под Windows, под все, что угодно ) может отказаться работать на вашей системе. Но пpактика показывает, что чаще всего проблема в неправильной настройке граббера на ваш CD-драйв. Кроме того, существует ряд проблемных CD-ROM, с которыми грабберу приходится общаться по особому, и иногда действительно приходится специально искать граббер, знающий именно ваш CD-драйв.

Впрочем, иногда попадаются CD-ROM, действительно не поддерживающие команду Long Read, с помощью которой и производится собственно копирование. Доктор сказал — в морг... Хотя, конечно, можно попробовать что-то придумать с обычно имеющим место выходом CD-ROM, по которому аудио при воспроизведении идет в цифровом виде.

Иногда проблемы снимаются заменой файла scsi1hlp.vxd ( это один из драйверов комплекта ASPI ), в некоторых ( или какой-то одной ) версиях не позволяющего многим грабберам нормально работать. Замену можно найти в архиве scsi1hlp.exe. Этот случай обнаруживается просто — о проблеме при запуске предупреждают AudioGrabber и WinDAC.

Иногда возникают затруднения, разрешаемые нетрадиционно. Мои собственные разрешились после пеpетыкания CD-ROM из слота SECONDARY IDE на матеpинской плате в аналогичный на аyдиокаpте. После этого CD-ROM неожиданно начал поддерживать команду Long Read. Новый CD-ROM понимает Long Read и в нормально подключенном положении. ;-) Но больше я о подобных случаях не слышал.

И еще, самое неприятное. Некоторые CD-ROM при считывании намеренно слегка портят данные, чтобы не нарушать авторские права. Привожу выдержку из материалов Евгения Музыченко:


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

Для следующих приводов способность точно считывать звуковые секторы доказана экспериментально:

  • Acer: 620A (прошивка 201N и позднее), 624A
  • Panasonic: CR-584, 585, 586, 587; желателен суффикс "B"
  • Pioneer: DR-511 (A24X), не все прошивки; DR-502S (A02S)
  • Sony: CDU711, 811
  • Samsung: SCR-2030, 2430
  • Teac: 532

Менее надежно (возможны сбои при паузах в процессе чтения и перечитывании блоков) работают следующие приводы:

  • Samsung: SCR-2432, 3231

Copyright (C) 1996-98, Eugene V. Muzychenko


Михаил М. Федотов (fmm@uic.nnov.ru)

Вернуться в раздел

Dreams...
Отправить письмо дизайнеру
к началу страницы
copyright © 1997-2019 t.r.a.c.k.e.r.s
All Rights Reserved