我最近压缩了一些文件,我注意到 base64编码的数据似乎压缩得非常糟糕。这里有一个例子:
xz -9
压缩:13,2 MiB / 429,7 MiB = 0,031
4,9 MiB/s
1:28
xz -9
进行压缩:26,7 MiB / 580,4 MiB = 0,046
2,6 MiB/s
3:47
base64
原始压缩的 xz 文件:17,8 MiB
= 预期的 1.33x
增加的大小所以我们可以观察到:
怎么会这样?Base64是一个无损的、可逆的算法,为什么它对压缩有如此大的影响?(我也用 gzip 进行了尝试,得到了类似的结果)。
我知道这对于 基地64然后压缩文件来说没有意义,但是大多数时候人们不能控制输入文件,而且我认为由于 base64编码的文件的实际信息密度(或者不管它叫什么)几乎与非编码的版本完全相同,因此同样是可压缩的。