aspose.info
VI

CSO - Ảnh đĩa ISO được nén

Cập nhật

Tệp CSO là gì?

Tệp có phần mở rộng .cso là tệp ảnh ISO được nén. CSO là một giải pháp thay thế cho phương pháp nén DAX; còn được gọi là CISO; là phương pháp đầu tiên để nén các tệp ISO và thường là phương pháp ưa thích để lưu trữ nội dung PlayStation Portable. Định dạng này sử dụng nén Deflate, có thể bao gồm tối đa chín lớp nén. Phần mềm như Prometheus và YACC được sử dụng để tạo hình ảnh.

Định dạng tệp CSO

Định dạng tệp CSO là phương pháp nén đầu tiên cho ISO để tiết kiệm thêm dung lượng bộ nhớ. Các cải tiến được thực hiện theo thời gian để nén tốt hơn. CSO đang sử dụng nén Deflate có chín cấp độ cài đặt trước, thông thường, mỗi cấp độ có thể xử lý 2 khối KiB riêng lẻ. Mặc dù các mức nén cao nhất có thể làm chậm và kéo dài thời gian tải trong phần mềm phụ thuộc nhiều vào truyền phát đĩa, nhưng các mức thấp hơn cũng có thể thực hiện nén đáng kể.

Cấu trúc tệp CSO

Định dạng tệp CSO chứa tiêu đề 24 byte, khối dữ liệu và bảng chỉ mục. Little-endian được giả định cho các trường lớn hơn một byte. Độ bền kiến trúc của PlayStation Portable được đưa ra dưới đây.

Tiêu đề

Độ lệch (byte)TênKích thước (byte)Mục đích
0x0Phép thuật4Luôn là CISO hoặc 0x4F534943 khi được đọc dưới dạng số nguyên 32 bit. Trường này được sử dụng để xác định tệp CSO. Lưu ý rằng trường này có thể khác đối với các dẫn xuất khác của CSO, ví dụ: ZSO đã sử dụng mã ma thuật ZISO.
0x4Kích thước tiêu đề4Đối với định dạng tệp CSO “v1” ban đầu, trường này bị bỏ qua và do đó không bắt buộc phải chính xác. Tuy nhiên, định dạng “v2” và ZSO yêu cầu trường này luôn là 0x18 (24 byte).
0x8Kích thước không nén8Kích thước của ISO không nén ban đầu tính bằng byte.
0x10Kích thước khối4Kích thước của mỗi khối dữ liệu tính bằng byte trước khi nén. Thông thường là 2048 byte, giống như kích thước của từng cung theo tiêu chuẩn ISO 9660.
0x14Phiên bản1Phiên bản của định dạng tệp đang sử dụng. Đối với định dạng “v1”, giá trị có thể là 0 hoặc 1. Đối với định dạng “v2”, giá trị này phải là 2. Ngoài ra, định dạng ZSO yêu cầu giá trị này phải là 1.
0x15Căn chỉnh chỉ mục1Căn chỉnh của mỗi mục nhập chỉ mục, được chỉ định bằng bit.
0x16Dành riêng2Trường này không được sử dụng. Ở định dạng “v1”, trường này bị bỏ qua và có thể chứa các giá trị tùy ý. Ở định dạng “v2”, trường này phải bằng không.

Bảng chỉ mục

Bảng chỉ mục chứa một số mục 4 byte, cho biết vị trí của từng khối dữ liệu và một mục bổ sung, cuối cùng trỏ đến cuối tệp. Nội dung từng entry như sau:

ChútChiều dàiMặt nạTênMục đích
0310x7FFFFFFFFVị tríTrường này, khi được dịch chuyển sang trái bởi căn chỉnh chỉ mục được cung cấp trong tiêu đề, sẽ đưa ra vị trí bắt đầu khối dữ liệu.
3110x80000000Loại nénĐịnh dạng ZSO có ngữ nghĩa tương tự, chỉ có điều 0 đại diện cho LZ4 thay vì Deflate. Ở định dạng “v2”. Khối được coi là không nén nếu kích thước khối bằng hoặc lớn hơn kích thước khối được chỉ định trong tiêu đề tệp.

Khối dữ liệu

Các khối dữ liệu bao gồm dữ liệu không nén hoặc nén. Kích thước của một khối được tính bằng cách lấy vị trí của nó, sau đó trừ nó khỏi vị trí của khối tiếp theo. Nếu căn chỉnh chỉ mục lớn hơn 0, có khả năng kích thước khối lớn hơn dữ liệu mà nó chứa.

Người giới thiệu

  • N/A

Xem thêm