aspose.info
BG

CSO - Компресирано ISO дисково изображение

Обновено

Какво е CSO файл?

Файл с разширение .cso е компресиран ISO файл с изображение. CSO е алтернатива на метода за компресиране на DAX; известен също като CISO; беше първият метод за компресиране на ISO файлове и обикновено е предпочитан метод за архивиране на PlayStation Portable неща. Този формат използва компресия Deflate, която може да включва до девет слоя за компресия. За създаване на изображения се използва софтуер като Prometheus и YACC.

CSO файлов формат

Файловият формат CSO беше първият метод за компресиране за ISO за спестяване на повече място в паметта. Подобренията се правят от време на време за по-добро компресиране. CSO използва компресиране на Deflate с девет нива на предварително зададени настройки, обикновено всяко ниво може да обработва 2 KiB блока поотделно. Въпреки че най-високите нива на компресия могат да забавят и удължат времето за зареждане в софтуера, който зависи силно от поточното предаване на диска, също така по-ниските нива могат да извършат значително компресиране.

CSO файлова структура

CSO файловият формат съдържа 24-байтово заглавие, блокове с данни и индексна таблица. Little-endian се приема за полета, по-големи от байт. Архитектурата endian на PlayStation Portable е дадена по-долу.

Заглавие

Отместване (байтове)ИмеРазмер (байтове)Цел
0x0магия4Винаги CISO или 0x4F534943, когато се чете като 32-битово цяло число. Това поле се използва за идентифициране на CSO файл. Обърнете внимание, че това поле може да е различно за другите производни на CSO, например ZSO използва магическия код ZISO.
0x4Размер на заглавката4За оригиналния файлов формат CSO “v1” това поле се игнорира и следователно не се изисква да бъде точно. Форматът “v2” и ZSO обаче изискват това поле винаги да е 0x18 (24 байта).
0x8Некомпресиран размер8Размерът на оригиналния некомпресиран ISO в байтове.
0x10Размер на блок4Размерът на всеки блок данни в байтове преди компресиране. Обикновено 2048 байта, същият като размера на всеки ISO 9660 сектор.
0x14Версия1Версията на използвания файлов формат. За формат “v1” стойността може да бъде 0 или 1. За формат “v2” това трябва да е 2. Освен това форматът ZSO изисква това да бъде 1.
0x15Подравняване на индекс1Подравняването на всеки запис в индекса, определено в битове.
0x16Запазено2Това поле е неизползвано. Във формат “v1” това поле се игнорира и може да съдържа произволни стойности. Във формат “v2” това поле трябва да е нула.

Индексна таблица

Индексната таблица съдържа няколко 4-байтови записа, които показват позицията на всеки блок от данни и допълнителен последен запис, който сочи към края на файла. Съдържанието на всеки запис е както следва:

БитДължинаМаскаИмеЦел
0310x7FFFFFFFПозицияТова поле, когато се измести наляво от подравняването на индекса, дадено в заглавката, показва позицията, където започва блокът с данни.
3110x80000000Тип компресияФорматът ZSO има подобна семантика, само че 0 представлява LZ4 вместо Deflate. Във формат “v2”. Блокът имплицитно се счита за некомпресиран, ако размерът на блока е равен или по-голям от размера на блока, посочен в заглавката на файла.

Блокове данни

Блоковете данни се състоят от некомпресирани или компресирани данни. Размерът на блок се изчислява, като се получи неговата позиция и след това се извади от позицията на следващия блок. Ако подравняването на индекса е по-голямо от нула, вероятно размерът на блока е по-голям от данните, които съдържа.

Препратки

  • N/A

Вижте също