V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ChauncyYAO
V2EX  ›  分享创造

分享一个我自己做的专门为照片优化的极高压缩比压缩工具

  •  
  •   ChauncyYAO · 2019-07-03 21:07:23 +08:00 · 2250 次点击
    这是一个创建于 1751 天前的主题,其中的信息可能已经有所发展或是发生改变。

    既然是我做的,那就给它取个名字吧,我管它叫作高压缩图像包,英文HCIP (Highly Compressed Images Package)


    这是什么?有什么用?

    类似于 zip 之类的压缩软件,只是这个工具是专门压缩图片的(目前支持 jpg 和 png )。支持有损和无损压缩,比 zip 之类的方法有着更高的压缩比。在画质基本相同的情况下,我这工具的压缩比比先压缩成 jpg 再打包成 zip 要高不少。因为原本需求是压缩多张照片,所以压缩单张图片时无法达到最优效果。

    能压到多少?值得使用吗?

    我日常使用的结果显示如果比较多的话,jpg 格式的照片能在不影响观感(有损)的前提下再压缩 70%。png 格式的照片(照片不太常用这个吧)能达到 97%,这个压缩比自认为可以说是很高了。这个工具本身只有不到 16MB,而且还是绿色版无需安装的。本地储存大量照片时相当有用的了,你可以自己试试。

    为什么要这个?现成的不好吗?

    一开始是因为我在整理旧照片的时候,觉得照片占用了我太多的空间。上传吧我这水管太小传不动,删掉吧又不愿意删。而且 jpg 文件再打包成 zip 并不能节省空间,也就是现成的方法达不到我想要的压缩比。所以我就花了一天时间(差不多就是一整天)做出来这么个东西,然后觉得还行就稍作修改分享出来了。

    怎么用?好用吗?

    目前有 Windows 32 位和 64 位的版本,简单地做了一下基本的 GUI。非常简单的啦,按照界面上的提示按几下鼠标就可以了。 做 64 位的版本是因为我的照片比较大,32 位的内存空间很可能不够用。其实也做了 CLI 但我懒得写文档,所以现在 CLI 版只是被 GUI 版(这是个只画了 UI 的壳,具体操作都不在这实现)调用。

    那么缺点呢?待改进什么?

    首先压缩和解压的过程还是不够快,虽然已经支持多线程和 CUDA 加速。接着是目前只能把图片解压出来再查看,不支持直接查看压缩后的图片。还有目前只能将所有长宽都一致的图片打包到一起,就是长宽不一致的图片必须分开压缩。还有压缩会使文件名信息丢失,就是解压后的文件名不是原来的文件名…………

    12 条回复    2019-07-05 10:43:28 +08:00
    ChauncyYAO
        1
    ChauncyYAO  
    OP
       2019-07-03 21:10:44 +08:00
    哪里下载(刚注册的号,只能发这了)?
    链接: pan.baidu.com/s/1BcqOMunr0wdQ9kGeXL-ZNQ
    提取码: 0blm
    Kagari
        2
    Kagari  
       2019-07-03 21:59:39 +08:00
    值越大相似度越高
    "已选无损模式"
    源文件:4675kb
    hcip:4399kb
    恢复格式选 PNG,勾"已选无损模式"
    PSNR y:49.437218 u:61.623752 v:61.324814 average:51.064288 min:51.064288 max:51.064288
    SSIM Y:0.997177 (25.492990) U:0.999355 (31.905328) V:0.999299 (31.543126) All:0.997894 (26.764902)
    BPG:2145kb
    PSNR y:51.396418 u:52.029707 v:51.999862 average:51.592910 min:51.592910 max:51.592910
    SSIM Y:0.993429 (21.823768) U:0.994434 (22.544242) V:0.994461 (22.566060) All:0.993769 (22.054166)

    EXIF 信息:未发现 EXIF 信息保留

    不勾"已选无损模式"
    源文件:4675kb
    hcip:57kb
    恢复格式选 PNG
    PSNR y:43.777377 u:50.979689 v:51.014222 average:45.144762 min:45.144762 max:45.144762
    SSIM Y:0.976229 (16.239462) U:0.994546 (22.632656) V:0.994652 (22.718452) All:0.982352 (17.533079)
    我不压这么小的,因为就是某无限空间自动压缩这张图也只是压到 210kb
    还是压了,q=34
    BPG:58kb
    PSNR y:44.537966 u:49.977782 v:49.930300 average:45.715868 min:45.715868 max:45.715868
    SSIM Y:0.977300 (16.439705) U:0.993831 (22.097544) V:0.994035 (22.243726) All:0.982844 (17.655884)

    210kb:
    PSNR y:44.528578 u:48.213567 v:48.554462 average:45.476199 min:45.476199 max:45.476199
    SSIM Y:0.975755 (16.153774) U:0.994219 (22.380064) V:0.994426 (22.538618) All:0.981944 (17.433848)

    不知道 BPG 现在的循环压缩还不会大量损坏

    "因为原本需求是压缩多张照片,所以压缩单张图片时无法达到最优效果。"
    这个我就懒得测了,真的麻烦。可以试试压成视频,毕竟帧内压缩和帧间压缩一起上挺爽的,就是噪点麻烦
    CEBBCAT
        3
    CEBBCAT  
       2019-07-03 21:59:55 +08:00
    相较 tinypng 如何?(不好意思放大招了)
    darmau
        4
    darmau  
       2019-07-03 22:43:43 +08:00 via iPhone
    我现在都转成 heif 格式
    ChauncyYAO
        5
    ChauncyYAO  
    OP
       2019-07-03 22:50:11 +08:00
    @Kagari 感谢,我只是大一,没有了解得太深入,边查资料边做那种。当时忘记测试 bpg 格式了。如果要压缩成视频,噪点的影响应该不会太大吧,这是个好办法。
    ChauncyYAO
        6
    ChauncyYAO  
    OP
       2019-07-03 22:50:29 +08:00   ❤️ 1
    @CEBBCAT 对比了一下
    原图: 3.21MiB
    TinyPNG: 768KiB; avgPSNR=38.187526; allSSIM=0.954836
    我的 HCIP: 110KiB(更好); avgPSNR=52.107820(更好); allSSIM=0.997999(更好)
    ChauncyYAO
        7
    ChauncyYAO  
    OP
       2019-07-03 22:53:47 +08:00
    @darmau 我还没测试过 HEIF 格式,下次有空试试。这个工具的目的是压多张照片,所以侧重点不太一样?
    Kagari
        8
    Kagari  
       2019-07-03 23:14:06 +08:00
    @CEBBCAT #3 tinypng 其实非常弱鸡,应该和 tinyjpg 比
    CEBBCAT
        9
    CEBBCAT  
       2019-07-03 23:15:14 +08:00
    @Kagari #8 这俩不是『一个机构两块牌子』么?
    Kagari
        10
    Kagari  
       2019-07-03 23:46:50 +08:00
    @CEBBCAT #9 但是一个是 jpg 一个是 png。我的意思是 png 有损压缩非常弱鸡
    bbmmwan886
        11
    bbmmwan886  
       2019-07-04 15:13:59 +08:00 via Android
    用过瑞影压缩还可以
    ChauncyYAO
        12
    ChauncyYAO  
    OP
       2019-07-05 10:43:28 +08:00
    @bbmmwan886 我用过,它速度很快,用起来比我的方便不少。但效果还不如 TinyPNG。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1194 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:14 · PVG 07:14 · LAX 16:14 · JFK 19:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.