【光盘压缩】CHDMAN (smart Z)算法优化版 软件工具

五级用户 lanyer 2月前 1011

CHDMAN (smart Z)算法优化版


官方的chdman 默认 4种算法,lzma deflate flac huffman,


其中 lzma编码 压缩率最高,但是解码速度最慢,7zip 默认就是这种算法。 最新的 zstd 解码速度最快,能比前者快10~20倍,但是由于一些历史兼容性原因,chdman在默认参数下并不开启zstd编码。


官方现有的的做法是把选定的每种算法都压缩一遍,然后无脑选择体积最小的那个保留。这通常导致压好的成品chd文件中大部分都是lzma,就算同时指定了zstd算法,其高速度低开销的特点也基本上体现不出来。


另外一些很难被压缩的数据块,例如影音动画,还有光盘中已经被压缩打包的数据,哪怕chdman压缩后体积只小一点点,也会被二次压缩。这导致使用chd游戏时无意义的解压系统开销。(lzma解压cpu开销昂贵)。尤其是一些掌上或者移动设备对电池要求高的设备。而文件体积并不能减小多少。


这个 smart Z 算法优化版 为解决以上问题而来。

算法:1.优选zstd算法(目前主流模拟器全部支持)。设置95%为阈值,如果压缩后体积超过原始95%大小的数据块将不压缩而直接存储(难压缩数据不压缩)。
          2.音频音轨选flac最优算法,为第二级算法。在数据轨中,如果flac 能比 zstd压缩率高出5%,就会优先选择。
          3. lzma为第3级算法。当数据块压缩率比 zstd ,flac 再高出5% 时会选择 lzma算法。


为配合以上算法,压缩参数应为

压缩ps1 cd:
chdman.exe createcd -c cdzs,cdfl,cdlz -i "输入文件名.cue" -o "输出文件名.chd"

压缩ps2 dvd 、 psp iso:
chdman.exe createdvd -c zstd,flac,lzma -hs 65536 -i "输入文件名.iso" -o "输出文件名.chd"


最终得到的文件体积不会比默认参数大多少,但能保证每个字节都尽可能的得到合理的算力分配。在文件体积和解压速度/cpu开销 之间取得一个微妙的平衡。

查询chd文件每个数据块算法分布命令:
chdman.exe verify -i "文件名.chd"


例如最新的 真·三国无双3 猛将传 中文版.iso ,用以上算法压缩后,显示 35.7%的数据块不压缩,49.6%的数据块用高效的 zstd算法压缩,只有 13.3%的数据用LZMA强力压缩。一个非常合理的搭配。比默认大部分lzma压缩的chd体积只大 0.5%

chd.png


下载地址:

https://bbs.xqemu.cn/forum.php?mod=viewthread&tid=2450


上一篇:刚发现GBA奥特警备队出完全汉化版了
下一篇:真女神转生5:复仇 OST和攻略
最新回复 (7)
  • 二级用户 gaoyimin1944 2月前
    0 2
    体积变大就算了,我不在乎时间,反正只压缩一次,我只在乎极致的压缩比
  • 四级用户 queen3438 2月前
    0 3
    看看
  • 五级用户 sh7820xx 2月前
    0 4
    感谢分享~
  • 二级用户 orx 2月前
    0 5
    多一种选择也不错
  • 五级用户 zhower 2月前
    0 6
    下不了外链
  • 五级用户 c83186595 2月前
    0 7
    不想注册
  • 二级用户 Hintslincoln 1月前
    0 8
    不知道有没有更好的适用于MAC机的版本
    自己学着写脚本写了这两个放到sh脚本里面如下,能跑,能压,但有些感觉还是很慢
    没有PC在手真的很麻烦

    for i in *.iso; do chdman createcd -i "$i" -o "${i%.*}.chd"; done

    for file in *.cue; do chdman createcd -i "${file%.*}.cue" -o "${file%.*}.chd"; done

    • 老男人游戏网配套论坛
      9
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。