Il vostro masterizzatore quante pecore ha?
Intodotta da clone cd,
l'espression "quante pecore ha il tuo masterizzatore" è diventata molto comene
in tutti i forum, sia italiani sia internazionali. Ma cosa vuol dire: "quante
pecore ha"?
Questa espressione è
basata sul database del sito www.elby.ch, dove
ad ogni masterizatore presente sono assegnate zero, una o due pecore in
"codifica EFM" (eight to fourteen).
Qui sotto riporto una
semplice spiegazione delle codifica efm e dei weak sectors di safedisc 2 (in
inglese):
Weak Sectors
Well, It's the most talked
about protection in the CD world. But what is it? What makes it tick? That's
what this page tries to answer.
First off, You must understand what XOR
is (Exclusive OR). XOR is a bitwise operation (meaning it operates on individual
bits in a stream, not bytes etc.) The Basic principle is that XOR'ing with a 1
flips a bit, and XOR'ing with a 0 does not. Note that XOR'ing a data pattern
with the same stream twice will be equal to the original data.
Input/Output XOR Table
|
Input Bit 1 |
Input Bit 2 |
Output Bit |
|
1 |
1 |
0 |
|
1 |
0 |
1 |
|
0 |
1 |
1 |
|
0 |
0 |
0 |
For Example: The pattern 100001100101
XOR'd with the pattern 100101010010 would produce the pattern: 100100110111
You must also understand that CD-ROMs
are analogue representations of digital data, and thus, are subject to the
problems of damage, and that they must be read using electrical devices. Due to
this, there are some safeguards to ensure that the CD's can be read reliably.
1: It is hard for the laser to reliably
detect frequent changes between pits and lands. Therefore, the number of pits
and lands cannot change frequently.
2: To satisfy this need, the number of changes needs to be
minimized.
3. A binary 1 is designated by the change from a pit from a
land, or vice versa, and a 0 as a lack of such a change.
4. Since a 1 is a change between a pit and a land, and a change
is hard to detect, we want to minimize the number of 1's in a data stream that
will be placed on the CD.
5. To ensure that this happens, an invention known as EFM (Eight
to Fourteen Modulation) was invented. This turns 8 bits into 14 bits, as given
by a lookup table. These bits are chosen so that there are at least 2, and at
most 10, 0's between any 1's (The max of 10 zero's is because if there is a very
long pit or land, the drive can again lose the ability to track correctly).
Remember that since a 0 is designated as a lack of a change, the drive doesn't
have to keep up with so many changes.
You can find an EFM table
here.
6. Because some EFM outputs end and/or
begin in 1, it is not possible to put two EFM encoded outputs directly next to
each other, and still obey the minimum of two and maximum of ten 0's between two
one's. Therefore, merging bits were introduced. There are 3 merging bits between
each two EFM encoded bytes. Two merging bits would be enough to satisfy the Min
of 2, Max of 10 rule, a third is added to ensure that the Digital Sum Value
(DSV) is close to zero.
The Digital Sum Value is integral to
understanding the problem with weak sectors. The DSV is an integer, that changes
at each point along the CD. For every pit on the CD, the DSV is incremented by
one, and for every land it is decremented by one. For instance, take the
following series of pits and lands:
Pit-Pit-Pit-Pit-Land-Land-Land-Pit-Pit-Land-Land-Land-Land.
The DSV for that small sequence would
be -7 (The number of lands), +6 (The number of pits), or -1.
The CD-Reader has trouble reading CD's
with a high DSV, because (Not sure about this info, this is just an idea from
Pio2001, a trusted source), the pits return little light when they are read. The
CD drive cannot reliably track in this situation, so it reports a read error.
The merging bits are chosen so that:
1. The Min of 2, Max of 10 rule is obeyed.
2. The pattern 100000000001000000000010 occurs
only at the position for the Sync Header (The synch header is at the beginning
of every sector. It is useful in helping to find a given position in a sector.
If it appeared somewhere else, it would confuse the drive)
3. The DSV is kept as close to 0 as possible.
As found in Annex E of the
ECMA-130:
Feeding a regular bit pattern into the
EFM encoder can cause a situation in which the merging bits are not sufficient
to keep the DSV low. For example, if the EFM encoder were fed with the bit
pattern "D9 04 D9 04 D9 04 D9 04 D9 04 D9 04 D9 04 D9 04 D9 04 D9 04 D9 04"
(Note: These values are in Hexadecimal), than there would be a high DSV. Since
there are many times in which one would need to write a regular bit pattern, a
"Sector Scrambler" was introduced. The sector scrambler, obviously, scrambles
the sectors. It does this by XOR'ing them with the output of a shift register. A
shift register basically outputs random-appearing data, thus, when XOR'ed with
the non-random sector, greatly reduces the risk of a regular bit pattern ever
being fed to the EFM encoder.
You're probably wondering what all this
has to do with SafeDisc 2.
Well, SafeDisc 2's weak sectors are already XOR'd with what the
output of the sector scrambler will be. So, since the sectors will be scrambled
before they reach the EFM encoder, and since any data pattern XOR'd with the
same pattern twice will result in the original data pattern, the EFM encoder
will have to write the twice scrambled (or in other terms, the unchanged)
sectors, which are regular bit patterns.
Here is where we run into the problem.
The algorithm for calculating the merging bits is far too slow to be viable in
an actual CD-Burner. Therefore, CD designers had to come up with their own
algorithms, which are faster. The problem is, when confronted with the weak
sectors, the algorithms cannot produce the correct the merging bits. This
results in sectors filled with incorrect EFM-Codes. This means that every byte
in the sector will be interpreted as a read error. The error correction is not
nearly enough to correct every byte in the sector (obviously).
The SafeDisc 2 guard module checks the
weak sectors, searching for read errors. If one is found, it assumes that the
disc is a copy, and refuses to run.
Well, that's about it. Check out the
CD Freaks Board for mo
In poche parole:
1. Sui cd i diti vengono rappresentati come
"rilievi" (zone elevate) o "pianure" (zone piane).
2. E' estrememente difficile per il laser
rilevare frequenti cambiamenti fra zone piane e zone elevate
3. Il numenro binario 1 indica cambiamento fra
piano ed elevato, il numero binario 0 indica invece nessun cambiamento
4. Poiche 1 indica un cambiamento e il laser
ha difficoltà nel rilevare i cambiamenti, è necessario ridurre al minimo gli 1.
5. Per far sì che questo avvenga, è stata
introdotta la codifica EFM (eight to fourteen) che trasforma 8 bit in 14 bit. Ad
ogni sequenza di bit corrisponde una sola sequenza di 14 bit. Queste
sequenze di 14 bit sono state composte facendo sì che fra due 1 ci fossero
minimo 2 e al massimo 10 zeri (al massimo 10 perchè il laser potrebe aver
problemi a leggere grandi zone sempre uguali)
6. Poichè alcune sequenze EFM incominciano con
1 ed altre terminano con 1, ponendole consecutivamente si potrebbero ottinere
casi in cui due "1" sono consecutivi
7. per evitare questo sono stati introdotti i
3 bit di unione. Due di questi servono perchè il minimo di 2 e il massimo di 10
sia rispettato. Il terzo serve perchè la DVS (digital sum value) sia zero.
Per misuarre la
capacità di un masterizzatore nella codifica EFM, Clone Cd ha introdotto le
pecorelle:
A. Zero pecorelle
significa che il masterizzatore non ha la corretta codifica EFM.
B. 1 pecorella
significa che il masterizzatore scrive le regolari sequenze di bit quasi
correttamente
C. 2 pecorelle
significa che il masterizzatore scrive le sequenze di bit correttamente
Questo è perlopiù
esatto, ma non del tutto. Molti dei masterizzatori a 2 pecorelle non scrivono
sempre le sequenze correttamente. E' stata così aggiunta una nuova categoria di
masterizzatori, queli a 3 pecorelle. Quelli a due pecorelle infatti scrivono
quasi tutte le sequenze correttamente, ma non tutte. Quelli a 3 pecorelle invece
le scrivono tutte esattamente. Per testare il vostro masterizzatore, scaricate
il file sheep.zip nella
sezione downloads. Nel file sono contenuti 6 files:
aprote il file "sd2old.bat" per generare il file di test da 1 pecorella, quindi
aprite "sd251.bat" per generare il file di test da 2 pecorelle e quindi aprite i
file "bad.bat" e "sheep_3.bat" per generare i due file di test da tre pecorelle.
Usate Nero-nuovo cd-unica sessione. Aggiungete i 4 file .dat al progetto cd,
quindi scrivete il cd (preferibilmente su un riscrivibile a bassa velocità (non
più di 12x)). Quindi, una volta completato il processo di scrittura, cercate di
copiare i file sull'HD.
Se non riuscite a
copiarne nemmeno uno vuol dire che il masterizzatore usato ha 0 pecore in
codifica EFM
Se riuscite a copiare
solo sd2old.dat vuol dire che il masterizzatore usato ha una pecora in codifica EFM
Se riuscite a copiare
sia sd2old.dat sia sd251.dat vuol dire che ha 2 pecore in codifica EFM
Se riuscite a copiarli
tutti vuol dire che ha 3 pecore in codifica EFM