Burning synliga bilder på CD-skivor med data (beta) (1 / 4 steg)
Steg 1: Lär dig hur CD-skivor och CD-skivor fungerar
Data på en CD, eller optiska medier, lagras som en sekvens av gropar med varierande längd. För att vara exakt, en 1 representeras av förändringen från grop till no-grop eller ändringen från nr-pit till grop och en 0 representeras av någon förändring i höjd (grop till grop eller nr-pit till no-pit). Gropar och nr-gropar återspeglar olika mängder av ljus; Det är således möjligt att rita bilder på CD-skivor genom att på lämpligt sätt ordna dessa 1: or och 0: or.Hur ordnar du 1s och 0: or? Det hjälper för att veta att data skrivs längs en spiral som börjar från mitten av CD och spiraler utåt i medurs riktning. Längden på varje bit är ganska exakta värdet (mer om detta senare), och graden av spiral eller avståndet mellan successiva spiraler, är också ett ganska exakta värde. Således, använda några matematiska och några gissningar, det är möjligt att skapa en mappning från den n: te lite i dina data till ett x, y-koordinat.
Nu har vi verkligen att titta under huven på CD datalagring till räkna ut hur till berätta den CD författaren att skriva en 0 eller 1 för den n: te lite. Data är organiserad som en sekvens av sektorer, som alla är 2352 byte långt. Data inom varje sektor struktureras på ett särskilt sätt beroende på vilken typ av CD ni behandlar (data, ljud, etc...). De flesta "rå" typen av organisation som kallas "mode 2." Mode 2 gör sig av med många av de trevliga sakerna om CD-skivor som felkorrigering, men det ger oss den största möjliga kontrollen över bitarna. Inom en mode 2, första 12 byte innehåller "synkronisering" data och den nästa 4 innehåller specifik information om sektorn. Dessa byte kan inte ändras på programvara nivå. (Kanske det är möjligt att skriva en drivrutin som kunde ändra dessa?) Nästa 2336 byte är fria att vara något ändå. Om detta var allt som hände med data, skulle vårt jobb vara lätt. Tyvärr finns det mycket mer datamanipulation innan data faktiskt blir skrivs till CD-skivan.
Första, data i varje sektor är "kodade" med vilket vi menar det körs genom vissa matematiska funktionen som är tänkt för att "bleka" data (dvs hålla den genomsnittliga höjden för data på CD emellan grop och nr-pit).
För det andra skickas data genom en CIRC encoder, som gäller vissa koder felkorrigering.
Slutligen skickas data om en åtta till fjorton modulator (EFM). Detta mappas varje 8-bitars byte till en 14-bitars sekvens. Detta är att förhindra långa sekvenser av 0 (ingen ändring i höjd) som är svårt för CD-enheten att läsa.
Poängen är: rita bilder på CD-skivor är möjligt, så det ska göras.
För en mer komplett (men fortfarande på ibland kryptiska) förklaring av CD-skivor, kolla in fritt tillgängliga ECMA-130 specifikationen.