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

2019-07-03 21:07:23 +08:00
 ChauncyYAO

既然是我做的,那就给它取个名字吧,我管它叫作高压缩图像包,英文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 加速。接着是目前只能把图片解压出来再查看,不支持直接查看压缩后的图片。还有目前只能将所有长宽都一致的图片打包到一起,就是长宽不一致的图片必须分开压缩。还有压缩会使文件名信息丢失,就是解压后的文件名不是原来的文件名…………

2344 次点击
所在节点    分享创造
12 条回复
ChauncyYAO
2019-07-03 21:10:44 +08:00
哪里下载(刚注册的号,只能发这了)?
链接: pan.baidu.com/s/1BcqOMunr0wdQ9kGeXL-ZNQ
提取码: 0blm
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
2019-07-03 21:59:55 +08:00
相较 tinypng 如何?(不好意思放大招了)
darmau
2019-07-03 22:43:43 +08:00
我现在都转成 heif 格式
ChauncyYAO
2019-07-03 22:50:11 +08:00
@Kagari 感谢,我只是大一,没有了解得太深入,边查资料边做那种。当时忘记测试 bpg 格式了。如果要压缩成视频,噪点的影响应该不会太大吧,这是个好办法。
ChauncyYAO
2019-07-03 22:50:29 +08:00
@CEBBCAT 对比了一下
原图: 3.21MiB
TinyPNG: 768KiB; avgPSNR=38.187526; allSSIM=0.954836
我的 HCIP: 110KiB(更好); avgPSNR=52.107820(更好); allSSIM=0.997999(更好)
ChauncyYAO
2019-07-03 22:53:47 +08:00
@darmau 我还没测试过 HEIF 格式,下次有空试试。这个工具的目的是压多张照片,所以侧重点不太一样?
Kagari
2019-07-03 23:14:06 +08:00
@CEBBCAT #3 tinypng 其实非常弱鸡,应该和 tinyjpg 比
CEBBCAT
2019-07-03 23:15:14 +08:00
@Kagari #8 这俩不是『一个机构两块牌子』么?
Kagari
2019-07-03 23:46:50 +08:00
@CEBBCAT #9 但是一个是 jpg 一个是 png。我的意思是 png 有损压缩非常弱鸡
bbmmwan886
2019-07-04 15:13:59 +08:00
用过瑞影压缩还可以
ChauncyYAO
2019-07-05 10:43:28 +08:00
@bbmmwan886 我用过,它速度很快,用起来比我的方便不少。但效果还不如 TinyPNG。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/579770

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX