查看“︁.CSO”︁的源代码
←
.CSO
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Infobox file format | name = [[资料压缩|压缩版]][[ISO映像]] | extension = .cso | mime = application/x-compressed-iso | owner = Booster | creatorcode = | magic = 'CISO' | genre = [[磁盘映像]] | containerfor = [[ISO映像]] | containedby = | extendedfrom = | extendedto = }} '''CSO''',又称'''CISO'''(源自英文''Compressed ISO''的缩写),是一种[[计算机文件]][[档案格式|格式]],由经过[[资料压缩|压缩]]后的[[ISO映像]]产生。<ref>{{cite web|url=http://www.fileinfo.net/extension/cso |title=CSO compression |accessdate=2008-02-28 |archiveurl=https://web.archive.org/web/20080223080545/http://www.fileinfo.net/extension/cso |archivedate=23 February 2008 |url-status=live }}</ref>其是首个为了压缩ISO映像而开发出来的方案,常被用于压缩[[PlayStation 2|PS2]]以及[[PlayStation Portable|PSP]]平台上的ISO文件,以降低[[存储设备|存储]]空间上的压力。此外,为了优化该格式的[[资料压缩比]]以及解压速度等问题,该格式经历过了数次修改与迭代,产生了诸如'''CSO v2'''、'''DAX'''、'''JSO'''、'''ZSO'''等格式。 CSO格式第一版本(CSO v1)使用[[DEFLATE]]算法压缩数据,同时也提供了9个压缩级别,其中第9级为最高级别。第二版本在此基础上添加了[[LZ4]]算法的使用,但用户可为了保证向后兼容性仅使用DEFLATE算法进行压缩。压缩级别越高的代价是压缩时间的加长,但压缩级别不影响解压解压速度<ref>{{cite web |author1=unknownbrackets |title=Compression |url=https://github.com/unknownbrackets/maxcso#compression |website=GitHub |accessdate=2021-07-19 |archive-date=2021-07-21 |archive-url=https://web.archive.org/web/20210721033535/https://github.com/unknownbrackets/maxcso#compression |dead-url=no }}</ref>。其工作原理为将一个ISO文件分成无数个大小一般为2 KiB的块,并一一地对这些块进行压缩。通过这种工作原理,CSO格式能有效地将ISO文件压缩成一个较小的文件。 == 文件格式 == CSO文件格式由一个 24 字节的[[信头|文件头]]、一份[[数据库索引|索引表]]和多个数据块组成。大于一字节的字段应使用[[字节序|小端法]]读取。 === 文件头 === {| class="wikitable" |- ! 偏移量 ! 名称 ! 大小 (字节) ! 用途 |- | 0x0 | 魔术数字(Magic) | 4 | 用于识别CSO文件,因此必须为'''CISO''',当读取为32位整数时则是'''0x4F534943'''。对于CSO的其它衍生格式,这个字段可能会有所不同,比如ZSO使用的[[魔术数字_(程式设计)|魔术数字]]是'''ZISO'''。 |- | 0x4 | 文件头大小(Header size) | 4 | 在CSO格式第一版本中,由于此字段可被忽略,因此其数值的准确性不受保证。CSO格式第二版本以及ZSO格式要求此字段必须为'''0x18'''(即24字节)。 |- | 0x8 | 解压后大小(Uncompressed size) | 8 | 文件完全解压后的大小(以字节为单位)。 |- | 0x10 | 数据块大小(Block size) | 4 | 每个数据块在压缩前的大小。一般为2048字节,与[[ISO 9660]]扇区的大小一致。 |- | 0x14 | 版本 (Version) | 1 | 文件所使用的CSO格式版本。对于CSO第一版本,该字段的数值可以为'''0'''或'''1''';对于第二版本,数值则必须为'''2'''。此外,ZSO格式要求该字段的数值必须为'''1'''。 |- | 0x15 | 索引对齐(Index alignment) | 1 | 每个索引条目的[[数据结构对齐|对齐系数]],以[[位元|比特]]为单位。 |- | 0x16 | 预留(Reserved) | 2 | 未使用。 在CSO第一格式中,该字段被忽略并且可能包含任意值。 在CSO第二格式中,该字段的值必须为零。 |} === 索引表 === 索引表中含有多个条目,每个条目的长度为4字节,记录着每个数据块在文件中的位置。最后一个条目必须指向文件末(EOF),因此会多出一个条目。索引表中的条目数量可以通过以下算法计算出来:<math>N_{entries} = ceil(uncompressed\ size / block\ size) + 1</math>。 条目所记录的内容如下: {| class="wikitable" |- ! 位 ! 长度 ! 掩码 ! 名称 ! 用途 |- | 0 | 31 | 0x7FFFFFFF | 位置(Position) | 这个字段的数值经过左移后即数据块在文件中的位置,左移次数由文件头提供的索引对齐决定。 |- | 31 | 1 | 0x80000000 | 压缩方式(Compression type) | CSO格式第一版本中,该字段所表述的压缩方式如下: {| class="wikitable" |- ! 值 ! 压缩方式 |- | 0 | 该数据块使用[[DEFLATE]]压缩算法。 |- | 1 | 该数据块未经过压缩。 |} ZSO格式与CSO格式第一版本基本一致,差别在于ZSO格式使用了[[LZ4]]算法,而非DEFLATE算法进行压缩。 CSO格式第二版本中,该字段所表述的压缩方式如下: {| class="wikitable" |- ! 值 ! 压缩方式 |- | 0 | 该数据块使用DEFLATE压缩算法。 |- | 1 | 该数据块使用LZ4压缩算法。 |} 第二版本中,若该数据块的大小大过或等于文件头提供的数据块大小,则将其认定为未压缩方块。 |} === 数据块 === 每个数据块都包含未压缩或压缩的数据。每个块的实际大小可以通过使用下一个块的位置中减去该块的位置来计算。如果索引对齐大于零,则该数据块的块大小可能大于其保存的数据,因此需要进行[[数据结构对齐|填充]]。 == 参考资料 == <references/> == 外部链接 == * [http://filext.com/detaillist.php?extdetail=.cso&Search=Search File Extension Details for .CSO] * [http://www.file-extensions.org/cso-file-extension .CSO description] {{Wayback|url=http://www.file-extensions.org/cso-file-extension |date=20210127191345 }} * [https://sourceforge.net/projects/ciso/files/ ciso, the original compressor] {{Wayback|url=https://sourceforge.net/projects/ciso/files/ |date=20210721065017 }} (GPLv2) * [https://github.com/unknownbrackets/maxcso maxcso, an extended compressor] {{Wayback|url=https://github.com/unknownbrackets/maxcso |date=20210721033535 }} * [http://www.isocompressor.com ISO Compressor for CSO] {{Wayback|url=http://www.isocompressor.com/ |date=20210416024944 }} * [https://sites.google.com/site/theleecherman/cisomulticompressor Ciso Multi Compressor] {{Wayback|url=https://sites.google.com/site/theleecherman/cisomulticompressor |date=20210721094332 }} * [https://web.archive.org/web/20161223115412/http://cisoplus.pspgen.com/ CisoPlus] {{Disk images}} {{DEFAULTSORT:.Cso}} [[Category:PlayStation Portable]] [[Category:归档格式|CSO]] [[Category:磁盘映像]]
该页面使用的模板:
Template:Cite web
(
查看源代码
)
Template:Disk images
(
查看源代码
)
Template:Infobox file format
(
查看源代码
)
Template:Wayback
(
查看源代码
)
返回
.CSO
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息