LZW实现可正确却非最优?Rust库TIFF压缩体积增大排查
问题:image-rs的LZW压缩TIFF体积反而增大,对比ImageMagick差异排查
我一直使用ImageMagick CLI工具的-compress lzw参数压缩TIFF图像以节省存储空间,目前用Rust开发图像管理工具时,使用image-rs库处理TIFF发现压缩后文件体积反而增大,但图像依然有效且无损坏。
我正在排查同用LZW算法却结果不同的原因:是Rust的LZW编码器(weezl)存在正确但非最优的实现,还是ImageMagick做了预/后处理优化?
文件大小对比
-rw-r--r-- 1 jb staff 57M Jul 26 15:47 original.tif -rw-r--r-- 1 jb staff 67M Aug 1 16:07 image-rs.tiff -rw-r--r-- 1 jb staff 44M Aug 1 16:07 magick.tiff
注:三张图像在查看器中显示完全一致。
weezl编码器压缩日志
# Log traces added to the source; sizes are in bytes: input -> output 2024-08-02T12:01:37.032Z TRACE [weezl::encode] Done: 1012584 -> 1153508 2024-08-02T12:01:37.048Z TRACE [weezl::encode] Done: 1012584 -> 1155616 2024-08-02T12:01:37.063Z TRACE [weezl::encode] Done: 1012584 -> 1157896 2024-08-02T12:01:37.077Z TRACE [weezl::encode] Done: 1012584 -> 1157644
查看EXIF头信息可知,ImageMagick的LZW编码器能将相同条带压缩至更小体积,第一条带仅为840183字节,且压缩率稳定。
内容的提问来源于stack exchange,提问作者spoutnik
相关产品推荐
相关产品推荐

