До сих пор находятся странные люди, которые считают компакт-диск более качественным источником музыки, чем файл. Ну что же, придется отправить их в путешествие на… глубину кодов Рида-Соломона!
Для начала сверим наши знания о компакт-диске. Речь не о басенках Sony/Philips про 9-ю симфонию на 74 минуты. Какова архитектура CD как носителя аудиоинформации? Ок, даже груднички знают, что в основе диска из поликарбоната лежит алюминиевая матрица под защитным слоем. Иногда для коллекционеров ее делали из золота, или в случае CD-R использовали фталоцианин и тому подобные активные красители. Однако во всех случаях суть одна.
В начале диска находится область Lead-In с оглавлением TOC (Table Of Contents), а в конце — закрывающая сессию область Lead-Out, где пикап лазера получает команду на возврат в исходное положение. Между ними находится собственно территория музыки Program Memory Area (PMA). Помимо спиралевидной дорожки с ямками, никаких других пометок (а тем более файловой структуры) на компакт-диске больше нет.
При воспроизведении CD матрица работает как отражающий элемент, на котором нанесены данные в виде спирали из лендов (land – поверхность) и питов (pit – ямка, углубление). И не спешите называть это нулями и единичками, не все так просто, друзья! Двоичный код не начертан на диске, он генерируется в другом месте и куда более изощренным способом.
Когда на фотоэлемент CD-привода попадает отраженный лазерный луч, система реагирует только на смену ландшафта — т.е. когда падает или крепчает световой поток. Иными словами, «единица» генерируется лишь тогда, когда пит сменяется лендом или, наоборот, ленд сваливается в яму. Пока этого не произошло, система выдает на поток строго «ноль». Быстро сменяющие друг друга питы и ленды позволяют с помощью оптического приемника формировать высокочастотный сигнал с двумя уровнями напряжения — по сути аналоговый процесс, не так ли? Вот это и есть те самые аналоговые «нолики» и единички», которые отправляются на декодирование.
Формально CD содержит аудиоинформацию в 16-битном исчислении. Но на самом деле плотность данных у него выше примерно на четверть. Эта избыточность массива нужна, чтобы система успевала синхронизировать скорость носителя, а самое главное — исправить ошибки считывания. Коррекция ошибок происходит до определенной степени, и границы этих степеней мы рассмотрим ниже.
Red Book, формат компакт-диска описан в 1982 году в стандарте IEC 908, и, кстати, никаких упоминаний о джиттере и прочих пакостях цифрового тракта не содержал. Измышления на эти темы появились позже. Перемежение данных CIRC (Cross Interleaved Reed-Solomon Code) в коде Рида-Соломона позволяло вполне прилично восстанавливать форму звуковой волны. Песенка не картинка, слушатели не жаловались. Однако дальнейшая практика быстро показала, что IEC 908, при всей своей впечатляющей (на то время!) плотности упаковки, совершенно не годился для хранения текста, графики и других медиаданных. Количество ошибок чтения Red Book не оставляло шансов восстановить подобную информацию. Поэтому для формата CD-ROM, оформленного в 1983 году в виде стандарта «Желтой книги» (Yellow Book), пришлось уменьшать объем полезной площади, чтобы расчистить место для еще одной цепи коррекции ошибок EDC/ECC (Error Detection/Error Correction Code).
Что же происходит с высокочастотным сигналом после фотоприемника CD-проигрывателя? Система модуляции Philips EFM (Eight-to-fourteen) рассматривает 1 байт (т.е. 8 битов) данных как табличное 14-разрядное слово. В таком блоке не может оказаться более десяти «нулей» или двух «единиц» подряд. Не будем нагружать читателя полиномами и засылать его в еще более дальнюю прогулку на математических полях Галуа. Самые дерзкие могут обратиться к труду покойного Криса Касперски «Техника защиты компакт-диска от копирования», где анатомия CD разобрана с феноменальной дотошностью.
Главным для нас является то, что ошибки при сканировании компакт-диска возникают всегда и везде. Оптических носителей, в которых все данные считались идеально, не существует, понимаете? В конце концов, ведь одно и то же значение «нуля» можно получить последовательностью хоть питов, хоть лендов. Также доподлинно неизвестны пороговые значения фотодатчика, при которых он «отличает» на поверхности более затемненные участки диска, чтобы отчитаться в декодер о «единичке». Отражающие свойства матрицы CD-R хуже, чем у алюминия, этим и объясняется неуверенное чтение болванок на некоторых винтажных CD-проигрывателях, чей лазер еще не учитывал носители с активными красителями. Когда мощность лазера снижается со временем, начинает падать и читаемость дисков.
А ведь мы еще не разбирали другие факторы. Например, эксцентриситет диска или паразитные субкоды защиты от копирования. Кстати, и у оптического носителя есть свой джиттер. Так называют отклонения размеров питов от стандарта. В какой-то момент производители вообще забили на исходные требования Red Book, чтобы увеличить емкость компакт-диска свыше стандартных 74 минут. Так появились CD-R с возможностью overburn и вполне официальные CD-издания длиной более 80 минут. Причем даже если новый альбом окажется обычной длины, наверняка для него была использована современная 80-минутная матрица с уменьшенным шагом питов и лендов на дорожке. Все эти особенности, без сомнения, потенциально увеличивают лишние напряги в сервосистеме CD-привода.
В итоге худо-бедно какие-то данные с CD сняты, диск продолжает вращаться дальше, а народ же не будет ждать, он музыку хочет слушать! Что же предлагается делать с ошибками?
Стандарт IEC 908 оперирует показателями BLER (Block Error Rate) — количеством ошибочных блоков, которое не должно превышать максимального значения 220 в секунду. На уровне CD-привода возможно исправление двух видов ошибок С1 и C2. Как уже упоминалось, метод избыточности и перемежевания CIRC позволяет как бы «размазывать» данные перед помещением на носитель, а затем декодировать размазанное. Таким образом, длинные ошибки, возникающие при линейном чтении CD-приводом, расщепляются на несколько мелких, которые математически исправить гораздо легче.
Ошибки такого рода называются С1 и занимают не более одного (E11) или двух (E12) байт. Если сбой простирается далее двух байт, то решение переносится на второй уровень C2. Максимум две ошибки (E22) можно скорректировать на CD-приводе, хотя по правилам на качественном носителе ошибок C2 быть не должно. Если проблема не исправлена на уровне С2, то ошибке E23 уже ничто не поможет. Артефакт может быть слышимым, а может и нет. Старые CD-плееры просто на мгновение выключали аудиовыход на проблемной точке.
Классификация качества оптических носителей по уровню ошибок
A — максимальный BLER < 6. Не должны содержать ошибок С2.
B — максимальный BLER < 50. Не должны содержать ошибок С2.
C — максимальный BLER < 100 или одна ошибка С2.
D — максимальный BLER < 220.
Попробуем посчитать эти ошибки на конкретных компакт-дисках и CD-R. На производстве, посвященном мастерингу и репликации CD, раньше использовались специальные устройства наподобие Clover QA-101. Такой сидюк стоил уже в десять раз дороже своего прародителя Philips CD950, но позволял подключаться к компьютеру, выводил индикацию флагов ошибок, а также позволял проводить анализ CD вроде измерения длины питов.
А мы в кои-то веки откроем лоток оптического привода в ноутбуке и достанем из архивов старенькую программку Opti Drive Control 1.70. Все это было актуально во времена флешек размером 64 Мб, когда болванки были основным носителем контента.
В качестве первого испытуемого начнем с такого же почтенного аудиофильского издания The Sheffield / A2TB Test Disc родом из 1994 года. Этот диск уже у меня очень давно и за это время приобрел несколько заметных царапин.
Итак, программа насчитала 23 842 ошибки С1 на 74 минуты, в среднем 5,36. Максимальное количество С1 в одном месте составило 57. Ну-у, в принципе, это терпимо и можно слушать. Да и С2, к счастью, нет. Теперь посмотрим копию этого издания на качественной болванке Verbatim производства Taiyo Yuden, которых уже давно нет в продаже.
О, здесь уже намного лучше — тот случай, когда копия может отыграть лучше оригинала. Количество ошибок уменьшилось в 40 раз, теперь их всего 536. Хотя максимальное количество BLER 46 принципиально не изменилось. Это соответствует компакт-диску высокого качества (класс B).
Изучим тестовый диск местных издателей: АудиоМагазин Тест-CD 1 — тот самый, с записями Лихницкого, переизданный в 2003 году. Царапин на поверхности нет, я его использовал нечасто. Очень даже прилично — 17 максимального BLER. И всего 530 ошибок С1 на 69 минут звучания (средний 0,13).
А вот, например, диск-вкладыш нашего Stereo & Video Rock ’N’ Roll Music: максимальный BLER 23, а ошибок 1 141 на 55 минут звучания (средний 0,35). В принципе, большинство западной CD-печати, как и эти два наших диска, примерно соответствуют классу B. Компакт-диски класса А с уровнем BLER менее 6 я не смог найти даже среди самых нарядных японских изданий.
Теперь возьмем CD-R, записанный не мною на современной дешевой болванке Ritek. И (в чем я уверен) на максимальной скорости. Здесь программа насчитала количество С1 меньше, чем у фирменного The Sheffield / A2TB Test Disc (ровно 7 400 на 69 минут), но максимальный уровень С1 при этом составил тревожные 125, а С2 наловило аж 45 штук, причем в самом начале диска. Нехорошо!
Но не забывайте, что речь идет о картине, снятой с конкретного компьютерного привода. На другом транспорте эти цифры могут оказаться иными. Даже если один и тот же образец прогнать в Opti Drive Control или аналогичной Nero DiscSpeed несколько раз подряд, итоговые цифры C1 и С2 всегда будут немного отличаться.
И не стоит думать, что С2 случаются только на всяком самописном барахле. Полюбуйтесь на издание Lee Hazlewood (The Complete MGM Recordings). Диск made in UK, все дела. Никаких царапин на нем, разве что немного разводов на поверхности. Количество ошибок на краю диска зашкалило, да так, что процесс проверки завис на 96%. Позже, через программу экстракции EAC, удалось потихоньку, в несколько проходов пикапа, с разгонами и паузами, все-таки скопировать последний трек. Но поможет ли многотонный чугунный лоток вашего любимого CD-плеера справиться с подобной задачей? Думается, что вряд ли.
В этом свете с реальным CD-плеером ситуация достоверного снятия данных с оптического носителя выглядит абсолютно непрозрачной. Индикации флагов ошибок, как у Clover QA-101, в его интерфейсе не предусмотрено. Слышимых сбоев может и не оказаться, но кто даст гарантию, что система втихаря не выполнила интерполяцию данных? Даже если вы не услышите никаких щелчков, очевидно же, что на достаточно чутком и прозрачном тракте воспроизведение музыкального материала на CD с высоким уровнем ошибок запросто может быть омрачено. А потом люди колдуют с фломастерами, чтобы ублажить оптическую систему CD-проигрывателя. А потом люди ведут длинные разговоры о разнице звучания CD европейских и американских прессов...
А тем временем индустрия — под стать упертым меломанам — продолжает себе клепать железо, заточенное под вычислительные возможности процессоров 40-летней (!) давности. Хотя какая это индустрия? Она сейчас в других областях, а это — звон горшков в доме престарелых.