вторник, 22 января 2013 г.

Точное копирование звуковых компакт-дисков. Часть 1.



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

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




Структура информации на диске CD-DA

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

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




Разница в звучании оригинала и копии

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

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

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




Разница между дисками CD-DA и CD-ROM

Формат CD-DA - самый основной, первичный формат, из которого растет все дерево форматов компакт-дисков (CD-I, Video-CD, CD-Text, CD-R, CD-RW и т.п.). Он определяет способ кодирования информации на диске и его структуру: до 99 "дорожек", каждая из которых обычно представляет собой одно музыкальное произведение.

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

На самом же деле защита от ошибок в формате CD-DA есть, и весьма серьезная - информация как бы "размазана" по диску, и блоки собственно звуковых данных собираются при чтении из совершенно несмежных между собой кадров низкого уровня, а большинство возникших ошибок исправляется (корректируется) при помощи специального избыточного кода, способного исправлять как единичные, так и множественные ошибки. Избыточность (доля дополнительной информации в ее общем объеме) корректирующего кода Рида-Соломона в CD-DA составляет 25%, а поверх этого кода накладывается еще канальный код 8/14, так что окончательная избыточность равна 57%. Иными словами - больше половины всей информации на диске занимают проверочные и корректирующие данные.

Адресация звуковых блоков (кадров) в CD-DA выполняется по меткам в так называемых подканалах (subchannels), которые кодируются вместе со звуковой информацией. Один кадр имеет длительность 1/75 секунды и вмещает 2352 байтов данных (588 стереофонических звуковых отсчетов).

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

Адресация блоков данных в CD-ROM выполняется по специальным адресным заголовкам, которые записываются в каждом кадре CD-DA. Поиск блока происходит вначале грубо, по меткам из адресного подканала, а затем - точно, по адресному заголовку из кадра.




Как происходит чтение с CD-DA и с CD-ROM

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

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

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

Таким образом, грамотно построенный привод CD-ROM, читающий диск CD-DA в режиме "грабления", должен работать в совершенно ином алгоритме, нежели в режиме воспроизведения, причем логика работы должна меняться в первичном декодере формата CD-DA, а не во вторичном декодере CD-ROM. К сожалению, далеко не все приводы умеют правильно читать CD-DA в режиме прямого чтения (называемом еще Digital Audio Extraction - DAE), и в результате либо теряют синхронизацию между кадрами, либо отдают в магистраль блоки с интерполированными отсчетами, никак не информируя контроллер об ошибках чтения. Выловить такие ошибки можно только путем многократного (3-5 раз) чтения одних и тех же дорожек диска с последующим сравнением получившихся файлов.
 

 
 
 

Комментариев нет:

Отправить комментарий