aspose.info
UK

CSO - стислий образ диска ISO

Оновлено

Що таке файл CSO?

Файл із розширенням .cso є стислим файлом образу ISO. CSO є альтернативою методу стиснення DAX; також відомий як CISO; був першим методом стиснення файлів ISO і зазвичай є кращим методом для архівування матеріалів PlayStation Portable. У цьому форматі використовується стиснення Deflate, яке може містити до дев’яти рівнів стиснення. Для створення зображень використовується таке програмне забезпечення, як Prometheus і YACC.

Формат файлу CSO

Формат файлу CSO був першим методом стиснення для ISO для збереження додаткового місця в пам’яті. Час від часу вносилися вдосконалення для кращого стиснення. CSO використовує стиснення Deflate із дев’ятьма рівнями попередніх налаштувань, зазвичай кожен рівень може обробляти 2 блоки KiB окремо. У той час як найвищі рівні стиснення можуть уповільнити та збільшити час завантаження програмного забезпечення, яке значною мірою залежить від потокового передавання диска, також нижчі рівні можуть виконувати значне стиснення.

Структура файлу CSO

Формат файлу CSO містить 24-байтовий заголовок, блоки даних і таблицю індексів. Припускається, що для полів, розмір яких перевищує байт, порядковий порядок байтів. Нижче наведено архітектуру 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

Див. також