ไฟล์ CSO คืออะไร??
ไฟล์ที่มีนามสกุล .cso คือไฟล์อิมเมจ ISO ที่ถูกบีบอัด CSO เป็นทางเลือกแทนวิธีการบีบอัด DAX หรือที่เรียกว่า CISO; เป็นวิธีแรกในการบีบอัดไฟล์ ISO และมักเป็นวิธีที่นิยมในการจัดเก็บไฟล์ PlayStation Portable รูปแบบนี้ใช้การบีบอัด Deflate ซึ่งสามารถรวมเลเยอร์การบีบอัดได้สูงสุดเก้าชั้น ใช้ซอฟต์แวร์เช่น Prometheus และ YACC เพื่อสร้างภาพ
รูปแบบไฟล์ CSO
รูปแบบไฟล์ CSO เป็นวิธีการบีบอัดแบบแรกสำหรับ ISO เพื่อประหยัดพื้นที่หน่วยความจำมากขึ้น มีการปรับปรุงเป็นครั้งคราวเพื่อการบีบอัดที่ดีขึ้น CSO กำลังใช้การบีบอัดแบบยุบตัวซึ่งมีการตั้งค่าล่วงหน้าเก้าระดับ โดยปกติแล้ว แต่ละระดับสามารถจัดการบล็อก KiB ได้ 2 บล็อกแยกกัน ในขณะที่ระดับการบีบอัดสูงสุดอาจทำให้โหลดช้าและนานขึ้นในซอฟต์แวร์ซึ่งขึ้นอยู่กับการสตรีมดิสก์เป็นอย่างมาก นอกจากนี้ ระดับที่ต่ำกว่ายังสามารถทำการบีบอัดได้มากอีกด้วย
โครงสร้างไฟล์ CSO
รูปแบบไฟล์ CSO ประกอบด้วยส่วนหัว 24 ไบต์ บล็อกข้อมูล และตารางดัชนี ระบบจะใช้ Little-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 ไบต์หลายรายการ ซึ่งระบุตำแหน่งของแต่ละบล็อกข้อมูล และรายการสุดท้ายเพิ่มเติมซึ่งชี้ไปที่จุดสิ้นสุดของไฟล์ เนื้อหาของแต่ละรายการมีดังนี้:
บิต | ความยาว | หน้ากาก | ชื่อ | วัตถุประสงค์ |
---|---|---|---|---|
0 | 31 | 0x7FFFFFFFF | ตำแหน่ง | ฟิลด์นี้ เมื่อเลื่อนไปทางซ้ายตามการจัดตำแหน่งดัชนีที่กำหนดในส่วนหัว จะให้ตำแหน่งที่บล็อกข้อมูลเริ่มต้น |
31 | 1 | 0x80000000 | ประเภทการบีบอัด | รูปแบบ ZSO มีความหมายคล้ายกัน โดย 0 เท่านั้นที่แทน LZ4 แทน Deflate ในรูปแบบ “v2” บล็อกจะถือว่าไม่มีการบีบอัดโดยปริยายหากขนาดบล็อกเท่ากับหรือใหญ่กว่าขนาดบล็อกที่ระบุในส่วนหัวของไฟล์ |
บล็อกข้อมูล
บล็อกข้อมูลประกอบด้วยข้อมูลที่ไม่บีบอัดหรือบีบอัด ขนาดของบล็อกคำนวณโดยการหาตำแหน่งของบล็อก แล้วลบออกจากตำแหน่งของบล็อกต่อไปนี้ หากการจัดตำแหน่งดัชนีมีค่ามากกว่าศูนย์ มีแนวโน้มว่าขนาดบล็อกจะใหญ่กว่าข้อมูลที่เก็บไว้
อ้างอิง
- N/A