6

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

Большая часть доступного программного обеспечения, конечно, ограничена функциональностью для записи музыки или данных, и не предлагает низкоуровневую функцию «поставить точку на этом радиусе, этот угол». Есть ли что-нибудь для меня?

4 ответа4

3

Вам не нужно записывать "правильные" данные на диск ... вы можете записать произвольные данные, просто создав файл соответствующего размера.

Для начала, давайте предположим, что мы используем компакт-диск для записи (мы надеемся перезаписать, потому что мы сделаем несколько подставок !!), поэтому наш желаемый размер изображения данных составляет около 700 мегабайт.

Создайте файл с 10 мегабайтами чередующихся 0x00 и 0xff. Это покажет вам шаблон «вкл / выкл» данных в простой форме.

Модулировать данные в файле изображения ... Диски записаны по центру ... так что больше данных содержится во внешнем (быстрее!) диаметр, чем внутренний, и вы должны быть в состоянии рассчитать приблизительную точку, чтобы изменить ваши шаблоны данных в файле изображения, используя некоторые творческие шаблоны.

Как только вы выясните «зоны», вы сможете создавать еще более сложные шаблоны данных, чтобы компенсировать скорость вращения и плотность данных на внешней «дорожке» (CD/DVD на самом деле просто жесткая спираль). Веселье, веселье, веселье!!

Ну ... вот с чего бы начать, если бы я искал что-то о записи паттернов на поверхностях данных CD/DVD.

(черт возьми ... где тот старый шпиндель компакт-дисков, который я никогда не использовал ...)

О да ... команды задействованы:

 CD: wodim dev=/dev/sr0 -eject -v -data=MYIMAGE.img
DVD: growisofs -Z /dev/sr0=MYIMAGE.img
2

Похоже, что он делает то, что вы хотите, он включает в себя 2 файла MATLAB, в которых я не совсем понимаю магию. Я хотел бы видеть обновленную версию!

http://www.instructables.com/id/Burning-visible-images-onto-CD-Rs-with-data-beta/step2/Convert-a-picture-to-data/

1

Я имел некоторый успех с Red Book CD Audio, используя байты (8-битные символы) из 171 десятичного знака для темных областей и 48 десятичного с использованием программы Img2CD. Я не смог получить идеальную калибровку, но для линейного искусства вы можете увидеть изображения на CD-RW. Никакого взлома не требуется, все это музыкальный файл WAV с этим не музыкальным сигналом - он настолько же реален, как музыкальный CD, насколько позволяют перезаписываемые файлы (старые проигрыватели компакт-дисков даже не могут воспроизводить CD-RW с человеческой слушаемой музыкой) на них!). Когда вы закончите, вы можете воспроизвести CD-RW на более новом проигрывателе аудио CD, который воспроизводит перезаписываемые диски и слушает картинку. А если вам надоест изображение, просто очистите диск и перепишите что-нибудь новое. Диск лучше всего смотреть под прямыми солнечными лучами.

1

Чтобы напрямую сжечь.ISO или аналогичный образ диска с данными на CD, помните, что привод кодирует и декодирует физические пиксели, используя CIRC (Cross-Interleaved Reed – Solomon Coding) для коррекции ошибок чтения. Вам необходимо выяснить, какие байты данных соответствуют кодированным потокам записанных пикселей.

http://www.eccpage.com/reed_solomon_codes.html

http://programmersheaven.com/discussion/427831/circ-cross-interleaved-reed-solomon-code-verification?S=B10000

http://www.idea2ic.com/File_Formats/ReedSolomon.pdf

https://pypi.python.org/pypi/reedsolo

http://rscode.sourceforge.net

У последнего, rscode, есть объяснение здесь:http://rscode.sourceforge.net/rs.html

который упоминает об использовании компакт-диска, основываясь на примере rscode example.txt. Я полагаю, что код для реализации кодирования CD-типа (что будут считывать кодированные с коррекцией ошибок пиксели на CD-R):

unsigned char codeword1[28];
unsigned char codeword2[32];
unsigned char msg[24];

encode_data(msg, sizeof(msg), codeword1);
encode_data(codeword1, sizeof(codeword1), codeword2);

Я послал по электронной почте автору rscode и обновлю этот ответ, если он ответит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .