Cs. Kádár Péter - XXI. századi Diszkónika, 469. A CD nagycsalád – Változatok CD-ROM-ra
A CD-ROM kódolása két lényeges szempontból tér el az audió CD kódszerkezetétől.
Ahhoz azonban, hogy a CD-ROM kódolását megértsed, olvasd el ismét a sorozat 466. részét!
A két eltérés egyike abból adódik, hogy míg a hang esetében túl nagy baj nem származik abból, hogy a nem javíthatóan hibás jelek egy részének kiesését interpolálással, tehát az előző jelek értékének alapján megjósolt értékkel pótolni lehet, ez az általános számítástechnikai alkalmazásokban nem lehetséges, mert minden egyes adatbit az előzőtől nagyon eltérő információt hordozhat. Emiatt lényegesen jobb hibajavítási rendszerre van szükség.
A másik eltérés oka, hogy míg CD-DA esetén elegendően gyors, ha a lézersugaras hangszedő 1 másodpercen belül találja meg a kívánt helyet – ennek a helynek a koordinátáit a Vörös Könyv a Q alkódban határozza meg –, ez a számítástechnikai alkalmazásokban lassúnak bizonyult, s a pozícionálási időt 1/75 másodpercben állapították meg. 1/75 másodperc alatt egy adatblokkot lehet beolvasni egyszeres sebességgel. Ez blokkonként 2 kilobájtnyi adatot jelent. A CD-ROM digitális vagy bitsebessége 2 kB*75 = 150 kB/s. A helymeghatározási pontosság ilyen fokának elérése érdekében írja elő a Sárga Könyv a szinkronizálási és fejlécinformációk beépítését minden egyes szektorba. A szinkronbájtok szerkezete egységes: 1 bájt csupa 0, 10 bájt csupa 1-es végül ismét 1 bájt csupa 0. A szinkronbájtok alapján ismeri föl a CD ROM meghajtóhoz illeszkedő program az egyes új szektorok kezdetét. A fejléc tartalmazza a szektor abszolút címét percekben, másodpercekben és adatblokkokban megadva, és van egy olyan bájt is, amely jelzi, hogy a szektor Mode 1 vagy Mode 2 kódolású sávban (szakaszban) van-e. A CD-ROM-on lévő sáv, vagyis a szektorok adott csoportja csak ugyanabban a módban lévő szektorokat tartalmazhat, de ha több sáv van egy CD-ROM-on, akkor a különböző sávok szektorai eltérő módban lehetnek. Együtt is létezhetnek audió CD-sávokkal, ami az úgynevezett vegyes módú CD-k esetében van így.
A vegyes módú CD-kkel a korai időkben gond volt, mert azok az audió CD-játszók, amelyeket a CD-ROM megjelenése előtt adtak ki, a CD-ROM nyers bináris adatait zajként játszották le. A probléma megoldása érdekében a Q alkód csatornában "adat" jelző van a lemez azon részein, amelyek számítógépes adatokat tartalmaznak, nem pedig lejátszható hangot. Az adatjelző utasítja a későbbi CD-játszókat, hogy némítsák el a kimenetet.
A kétféle módnak helytakarékossági oka van. Mind az 1-es, mind a 2-es módú szektor az első 16 bájtot használja a fejléc információkhoz, de a fennmaradó 2 336 bájtban különbözik a hibajavító bájtok használata miatt. A jobb hibajavítás és -észlelés elérése érdekében az 1-es mód egy 32 bites ciklikus redundancia-ellenőrző (CRC) kódot ad hozzá a hibaészleléshez, kiegészítve ezzel a CIRC-hez hasonló, RSPC (Red-Solomon Product Code) hibajavító kóddal. Az 1-es mód szektoronként 288 bájtot használ föl a hibaészlelés és -javítás céljából, így szektoronként 2 048 bájt áll rendelkezésre hasznos adatok számára. A 2-es mód, amely jobban megfelel kép- vagy videó adatokhoz (ahol a tökéletes megbízhatóság egy kicsit kevésbé fontos), nem tartalmaz további hibaészlelési vagy -javító bájtokat, ezért szektoronként több, 2 336 adatbájtnyi adat rögzíthető.
Most kapaszkodj, kicsit részletesebben mesélek a CD-ROM kódolásáról! Az adatok legkisebb egysége a blokk, amelyben 24 adatbájt található. 98 adatblokk alkot egy szektort, amelyben összesen 2 352 adatbájt fér el. Minden lemez legfeljebb 333 000 szektort tartalmazhat. A CD-ROM nem használhatja a szektor minden bájtját adattárolásra, lehetővé kell tenni a hibajavítás második szintjét. A szektorban lévő első 12 bájt a szektorok elválasztására szolgáló szinkronizációs mintát tartalmazza. Tekintve, hogy a szinkronminta a felhasználói adatok között is előfordulhat, a szektor azonosítása a szinkronmintával és a szektor hosszával közösen történik. A következő 4 bájt fejlécet alkot, amelyből 3 bájt időadatot, az utolsó pedig szektormódot határoz meg. A fejlécben lévő információ alapján azonosítja a számítógép a szektort. Az egyszeres sebességű CD-ROM meghajtó másodpercenként 75 szektort olvas be. A szektor további felosztása a választott módtól függ. Az 1-es mód jelenti az igazi CD-ROM módot, mert bővített hibajavítást tesz lehetővé. Az adatterület 2 048 bájt tárolására elegendő. Az 1-es mód egyenként címezhető 2 kilobájtos szektorai a CD-ROM-ot nagyon egyszerűen kezelhetővé teszi a többi háttértároló eszközhöz képest. Az 1-es módú szektorokkal elérhető kapacitás 650 megabájt. Az adatokhoz 4 hibaérzékelő (EDC, Error Detection Code), és 276 hibajavító (ECC, Error Correction Code) bájt tartozik. Az EDC és ECC mező között 8 bájt üresen marad a szektorban. Tekintve, hogy az EDC/ECC mező alapján a CIRC-hez hasonló, RSPC (Red-Solomon Product Code) kódú hibajavítástól függetlenül javíthatók a hibák, a CD-ROM megbízhatósága több nagyságrenddel jobb, mint a hang CD megbízhatósága. Az 1-es módú CD-ROM bármely szektorának olvasásakor csak minden ezertizenötödik bit hibáját nem lehet javítani. A szektor logikai blokkokra tagolható. Különböző méretű logikai blokkokat használhatunk 512 és 2 048 bájt között. Ha a logikai blokk kisebb 2 048 bájtnál, a címzett blokk logikai száma (LBN, Logical Block Number) az időadatok és a szektorbeli helye alapján határozható meg. Az első fizikai szektor időcíme 00:02:00. Ez a szektor jelenti az első logikai blokkot. Ha pl. a blokk mérete 512 bájt, egy percben 18 000 logikai blokk, egy másodpercben 300, és egy szektorban 4 logikai blokk található.
A 2-es módú szektor nem tartalmaz hibaérzékelő és javító bájtokat, ezért a szektorból maradó részt adattárolásra használhatjuk.
Az EDC/ECC információk az 1-es módú szektor külső adatmezőjének nagy részét elfoglalják. A hibajavítás végrehajtása komoly processzor-erőforrást köt le, ezért gyakran önálló processzor végzi ezt a feladatot a meghajtóban. A hibaérzékelés (EDC) 32 bites ciklikus ellenőrző kóddal (CRC) történik a szinkron, a fejléc és az adatmezőn. A CRC a külső adatmező első négy bájtját foglalja el, és igen nagy valószínűséggel érzékeli a hibát. Mint említettem, hibajavításhoz az RSPC-t használják.
Ezt követően minden CD-ROM szektort átkódolnak, hogy megakadályozzák néhány problémás minta rögzítését. Ezek a kódolt szektorok ezután ugyanazt a kódolási folyamatot követik (EFM), amelyet a Vörös Könyvben leírtak, hogy végül CD-n tárolják őket.
Ne hidd, hogy már nem lehetett még tovább bonyolítani a dolgot!
A különböző CD-formátumok barátkozása érdekében 1988-ban alkották meg és 1991-ben fogadták el a CD-ROM XA változatot. Az XA az „extended architecture” rövidítése, amit bővített struktúrának lehetne fordítani, de nem fordítjuk. A CD-ROM XA jelentősége a hídszerep mellett az, hogy egyidejűleg lehet olvasni az ugyanazon a CD-n levő tömörített hang-, kép-, videó- és számítógépes adatokat. A CD-ROM XA előírásai két új szektorelrendezést határoznak meg: az egyik a Mode 2 Form 1, a másik a Mode 2 Form 2. Ezek eltérnek az eredeti 2-es módtól.
A CD-ROM XA Mode 2 Form 1 szektora megegyezik a CD-ROM 1-es módú szektorával, azzal a különbséggel, hogy az 1-es módú szektorban lévő 8 bájtos üres mezők át lettek helyezve, hogy kövessék a szektoron belüli fejléc információkat, és alfejléc információkat is lehetővé tegyenek. Az 1-es módú szektorokhoz hasonlóan 2 048 bájt áll rendelkezésre a felhasználói adatokhoz, amelyek általában számítógépes adatok, s amelyek megkövetelik az 1-es módú szektorok extra hibaészlelési és -javítási szolgáltatását.
A CD-ROM XA Mode 2 Form 2 nevű szektor tartalmazza a szinkronizálás, a fejléc és az alfejléc bájtjait, valamint a 4 további hibaérzékelő bájtot. Mivel azonban a Form 2 szektorokat hang-, videó- vagy képadatok tárolására használják – ami nem igényli a számítógépes adatokhoz szükséges magas szintű adatintegritást –, a Form 1 szektoraiban használt hibajavító adat nem szerepel benne, így 2 324 bájt áll rendelkezésre a felhasználói adatok számára.
Na, ez most elég tömény volt, nem is akarom a türelmedet próbára tenni, pedig van itt még néhány szinte kimeríthetetlen csámcsogni és anyázni való, nevezetesen a másolásvédelmi ügyeskedések tárháza, amelyeknek a kijátszása a nagy örömforrások egyike. Ám hogy most se maradj videó nélkül, az alábbi CD-ROM játszóról még lesz szó.