aspose.info
CS

CSO - komprimovaný obraz disku ISO

Aktualizováno

Co je soubor CSO?

Soubor s příponou .cso je komprimovaný soubor obrazu ISO. CSO je alternativou ke kompresní metodě DAX; také známý jako CISO; byla první metodou ke komprimaci souborů ISO a je obvykle preferovanou metodou pro archivaci obsahu PlayStation Portable. Tento formát používá kompresi Deflate, která může obsahovat až devět vrstev komprese. K vytvoření obrázků se používá software jako Prometheus a YACC.

Formát souboru CSO

Formát souboru CSO byl první kompresní metodou pro ISO pro úsporu více místa v paměti. Čas od času byla provedena vylepšení pro lepší kompresi. CSO používá kompresi Deflate s devíti úrovněmi předvoleb, obvykle každá úroveň zvládne samostatně bloky 2 KiB. Zatímco nejvyšší úrovně komprese mohou zpomalit a prodloužit načítání softwaru, který silně závisí na streamování disku, také nižší úrovně mohou provádět podstatnou kompresi.

Struktura souborů CSO

Formát souboru CSO obsahuje 24bajtové záhlaví, datové bloky a indexovou tabulku. Little-endian se předpokládá pro pole větší než bajt. Architektura systému PlayStation Portable je uvedena níže.

Záhlaví

Offset (bajty)JménoVelikost (bajty)Účel
0x0Magie4Vždy CISO nebo 0x4F534943 při čtení jako 32bitové celé číslo. Toto pole se používá k identifikaci souboru CSO. Všimněte si, že toto pole se může lišit pro ostatní deriváty CSO, například ZSO použil magický kód ZISO.
0x4Velikost záhlaví4U původního formátu souboru CSO “v1” je toto pole ignorováno, a proto nemusí být přesné. Formát “v2” a ZSO však vyžaduje, aby toto pole bylo vždy 0x18 (24 bajtů).
0x8Nekomprimovaná velikost8Velikost původního nekomprimovaného ISO v bajtech.
0x10Velikost bloku4Velikost každého bloku dat v bajtech před kompresí. Obvykle 2048 bajtů, stejně jako velikost každého sektoru ISO 9660.
0x14Verze1Verze používaného formátu souboru. Pro formát “v1” může být hodnota 0 nebo 1. Pro formát “v2” to musí být 2. Formát ZSO navíc vyžaduje, aby to bylo 1. Zpět nahoru
0x15Zarovnání indexu1Zarovnání každé položky indexu zadané v bitech.
0x16Rezervováno2Toto pole je nevyužité. Ve formátu “v1” je toto pole ignorováno a může obsahovat libovolné hodnoty. Ve formátu „v2“ musí být toto pole nula.

Indexová tabulka

Indexová tabulka obsahuje několik 4bajtových položek, které označují polohu každého datového bloku, a další, poslední položku, která ukazuje na konec souboru. Obsah každého záznamu je následující:

BitDélkaMaskaJménoÚčel
0310x7FFFFFFFFPoziceToto pole, když je posunuto doleva o zarovnání indexu uvedené v záhlaví, udává pozici, kde datový blok začíná.
3110x80000000Typ kompreseFormát ZSO má podobnou sémantiku, jen 0 představuje LZ4 místo Deflate. Ve formátu “v2”. Blok je implicitně považován za nekomprimovaný, pokud je velikost bloku stejná nebo větší než velikost bloku zadaná v záhlaví souboru.

Datové bloky

Datové bloky se skládají z nekomprimovaných nebo komprimovaných dat. Velikost bloku se vypočítá získáním jeho polohy a následným odečtením od polohy následujícího bloku. Pokud je zarovnání indexu větší než nula, je pravděpodobné, že velikost bloku je větší než data, která obsahuje.

Reference

  • N/A

Viz také