aspose.info
LT

CSO – suspaustas ISO disko vaizdas

Atnaujinta

Kas yra CSO failas?

Failas su plėtiniu .cso yra suglaudintas ISO vaizdo failas. CSO yra alternatyva DAX glaudinimo metodui; taip pat žinomas kaip CISO; buvo pirmasis būdas suspausti ISO failus ir dažniausiai yra pageidaujamas PlayStation Portable daiktų archyvavimo būdas. Šiame formate naudojamas glaudinimas, kuris gali apimti iki devynių glaudinimo sluoksnių. Vaizdams kurti naudojama tokia programinė įranga kaip Prometheus ir YACC.

CSO failo formatas

CSO failo formatas buvo pirmasis ISO suspaudimo metodas, skirtas sutaupyti daugiau vietos atmintyje. Kartkartėmis buvo daromi patobulinimai, siekiant geresnio suspaudimo. CSO naudoja Deflate glaudinimą, turėdamas devynis išankstinių nustatymų lygius, paprastai kiekvienas lygis gali apdoroti 2 KiB blokus atskirai. Nors aukščiausias glaudinimo lygis gali sulėtinti ir pailginti programinės įrangos įkėlimo laiką, kuris labai priklauso nuo disko srautinio perdavimo, taip pat žemesni lygiai gali atlikti didelį suspaudimą.

CSO failo struktūra

CSO failo formatą sudaro 24 baitų antraštė, duomenų blokai ir rodyklės lentelė. Manoma, kad laukuose, didesniuose nei baitas, Little-endian. PlayStation Portable architektūros baigtis pateikta žemiau.

Antraštė

Poslinkis (baitai)VardasDydis (baitais)Paskirtis
0x0Magija4Visada CISO arba 0x4F534943, kai skaitomas kaip 32 bitų sveikasis skaičius. Šis laukas naudojamas CSO failui identifikuoti. Atkreipkite dėmesį, kad šis laukas gali skirtis kitiems CSO dariniams, pavyzdžiui, ZSO naudojo stebuklingą kodą ZISO.
0x4Antraštės dydis4Pradinio CSO v1 failo formato atveju šis laukas nepaisomas, todėl nereikia, kad jis būtų tikslus. Tačiau v2 ir ZSO formatai reikalauja, kad šis laukas visada būtų 0x18 (24 baitai).
0x8Nesuspaustas dydis8Originalo nesuspausto ISO dydis baitais.
0x10Bloko dydis4Kiekvieno duomenų bloko dydis baitais prieš suspaudimą. Paprastai 2048 baitai, tiek pat, kiek kiekvieno ISO 9660 sektoriaus dydis.
0x14Version1The version of the file format in use. For the “v1” format, the value can be either 0 or 1. v2 formatui tai turi būti 2. Be to, ZSO formatui tai turi būti 1.
0x15Rodyklės lygiavimas1Kiekvieno indekso įrašo lygiavimas, nurodytas bitais.
0x16Rezervuota2Šis laukas nenaudojamas. V1 formatu šis laukas nepaisomas ir jame gali būti savavališkų reikšmių. v2 formatu šis laukas turi būti lygus nuliui.

Rodyklės lentelė

Indekso lentelėje yra keli 4 baitų įrašai, nurodantys kiekvieno duomenų bloko vietą, ir papildomas paskutinis įrašas, nukreipiantis į failo pabaigą. Kiekvieno įrašo turinys yra toks:

BitIlgisKaukėVardasPaskirtis
0310x7FFFFFFFPadėtisŠis laukas, perkeltas į kairę pagal antraštėje pateiktą rodyklės išlygiavimą, suteikia vietą, kurioje prasideda duomenų blokas.
3110x80000000Suspaudimo tipasZSO formatas turi panašią semantiką, tik 0 reiškia LZ4, o ne Deflate. v2 formatu. Blokas netiesiogiai laikomas nesuspaustu, jei bloko dydis yra lygus arba didesnis už bloko dydį, nurodytą failo antraštėje.

Duomenų blokai

Duomenų blokus sudaro nesuspausti arba suspausti duomenys. Bloko dydis apskaičiuojamas gavus jo vietą ir atimant jį iš kito bloko padėties. Jei indekso lygiavimas yra didesnis nei nulis, tikėtina, kad bloko dydis yra didesnis nei jame saugomi duomenys.

Nuorodos

  • N/A

Taip pat žiūrėkite