Base64压缩
摘要: 作者指出,Base64并非压缩算法,但在某些场景下可通过编码特性实现“压缩”效果。以将浮点数组二进制编码后Base64处理为例,能在保持文本可读的同时减少空间占用,尤其适用于配置文件中机器生成的部分。示例中将浮点数乘255转为字节,再Base64编码,显著减小数据长度,压缩比例约75%。作者强调此方法需结合具体需求分析,不能盲目视为压缩手段。 (评价: A)
首先, 明确base64并不是一个压缩算法. 但是在某些场景我们可以使用其编码特性达到压缩的效果.
如下demo展示的一种应用场景:
|
|
输出:
|
|
config1
和config2
一般是需要人工调整的配置, 所以需要明文表示. calibration_list
一般由机器生成和阅读, 所以不太关注其可读性.
这两种配置又期望用同一个配置文件管理, 那么通过将calibration_list
转换为二进制数据, 然后base64编码, 这样既使得配置文件可以以文本方式解析, 又相对减少了文件大小, 在一些空间/传输速率敏感的场合适用.
以上demo只是一种应用场景, 细节需要具体问题具体分析.
base64编码后的大小约等于原大小的4/3(增大了空间), 压缩比例和base64编码的对象+精度需求相关. 以json格式+7位精度需求的32bit浮点数组为例, 一个数字表示至少需要8B(1B逗号+7B数字), 但是base64编码后只需要6B. 这种情况下压缩率75%.