aspose.info
LV

CSO — saspiests ISO diska attēls

Atjaunināts

Kas ir CSO fails?

Fails ar paplašinājumu .cso ir saspiests ISO attēla fails. CSO ir alternatīva DAX saspiešanas metodei; pazīstams arī kā CISO; bija pirmā metode ISO failu saspiešanai, un parasti tā ir ieteicamā metode PlayStation Portable satura arhivēšanai. Šajā formātā tiek izmantota saspiešanas deflācija, kas var ietvert līdz deviņiem saspiešanas slāņiem. Attēlu izveidošanai tiek izmantota programmatūra, piemēram, Prometheus un YACC.

CSO faila formāts

CSO faila formāts bija pirmā ISO saspiešanas metode, lai ietaupītu vairāk vietas atmiņā. Uzlabojumi tika veikti laiku pa laikam, lai nodrošinātu labāku saspiešanu. CSO izmanto Deflate saspiešanu ar deviņiem iepriekš iestatītu līmeņu līmeņiem, parasti katrs līmenis var apstrādāt 2 KiB blokus atsevišķi. Lai gan augstākie saspiešanas līmeņi var palēnināt un paildzināt ielādes laiku programmatūrā, kas lielā mērā ir atkarīga no diska straumēšanas, arī zemākie līmeņi var veikt ievērojamu saspiešanu.

CSO failu struktūra

CSO faila formātā ir 24 baitu galvene, datu bloki un indeksa tabula. Tiek pieņemts Little-endian laukiem, kas ir lielāki par baitu. PlayStation Portable arhitektūras galīgums ir norādīts zemāk.

Galvene

Nobīde (baiti)VārdsIzmērs (baitos)Mērķis
0x0Maģija4Vienmēr CISO vai 0x4F534943, lasot kā 32 bitu veselu skaitli. Šis lauks tiek izmantots, lai identificētu CSO failu. Ņemiet vērā, ka šis lauks var atšķirties citiem CSO atvasinājumiem, piemēram, ZSO izmantoja maģisko kodu ZISO.
0x4Virsraksta izmērs4Sākotnējam CSO v1” faila formātam šis lauks tiek ignorēts, un tāpēc tam nav jābūt precīzam. Tomēr v2 un ZSO formātā šim laukam vienmēr jābūt 0x18 (24 baiti).
0x8Nesaspiests izmērs8Sākotnējā nesaspiestā ISO lielums baitos.
0x10Bloka izmērs4Katra datu bloka lielums baitos pirms saspiešanas. Parasti 2048 baiti, kas ir tāds pats kā katra ISO 9660 sektora lielums.
0x14Version1The version of the file format in use. For the “v1” format, the value can be either 0 or 1. Formātam v2 tam ir jābūt 2. Turklāt ZSO formātam tam ir jābūt 1.
0x15Indeksa izlīdzināšana1Katra indeksa ieraksta līdzinājums, kas norādīts bitos.
0x16Rezervēts2Šis lauks nav izmantots. Formātā v1” šis lauks tiek ignorēts, un tajā var būt patvaļīgas vērtības. Formātā v2” šim laukam ir jābūt nullei.

Indeksu tabula

Indeksa tabulā ir vairāki 4 baitu ieraksti, kas norāda katra datu bloka pozīciju, un papildu, pēdējais ieraksts, kas norāda uz faila beigām. Katra ieraksta saturs ir šāds:

BitsGarumsMaskaVārdsMērķis
0310x7FFFFFFFPozīcijaŠis lauks, kad tas tiek pārvietots pa kreisi ar indeksa līdzinājumu, kas norādīts galvenē, parāda pozīciju, kurā sākas datu bloks.
3110x80000000Kompresijas veidsZSO formātam ir līdzīga semantika, tikai tas, ka 0 apzīmē LZ4, nevis Deflate. v2 formātā. Bloks netieši tiek uzskatīts par nesaspiestu, ja bloka izmērs ir vienāds ar faila galvenē norādīto bloka izmēru vai lielāks par to.

Datu bloki

Datu bloki sastāv no nesaspiestiem vai saspiestiem datiem. Bloka lielumu aprēķina, iegūstot tā pozīciju un pēc tam atņemot to no nākamā bloka pozīcijas. Ja indeksa līdzinājums ir lielāks par nulli, iespējams, ka bloka lielums ir lielāks nekā tajā glabātie dati.

Atsauces

  • N/A

Skatīt arī