压缩随机 32 位整数:我们离香农熵有多近?

问题描述 投票:0回答:3

我开发了一种无损压缩算法,可以将 32 位整数(频率/概率未知)压缩到每个整数 31.95824 位(对于较小的值,它的效果更好,就像大多数压缩算法一样)。显然,不可能将均匀分布的随机数据压缩为小于其未压缩的大小。 因此我的问题是,假设 32 位整数,哪种无损压缩算法最接近伪随机数据每个整数 32 位的香农熵?

本质上,我正在寻找一个表,其中包含压缩算法及其各自的正压缩 32 位整数的每整数位数。

algorithm integer compression
3个回答
1
投票

所以答案是,当然你可以通过对数字不做任何事情来精确地得到 32 位。但是,您并没有针对您设计的非均匀分布所暗示的应用程序进行优化。

恒等函数要求每个 32 位整数恰好有 32 位,这是很难击败的。 (如果您坚持更改数据流,还有许多其他保留长度的双射。)


0
投票

值得注意的是,除非消息是固定长度的,否则在熵的计算中,分子和分母都需要考虑消息的长度。对于很长的消息,这通常可以被忽略,但如果消息很短,则消息定界符(或显式长度指示符)的成本可能会很大。 (否则,“压缩”到原始大小的 103% 是“压缩”的有点笨拙的定义。)

这正是 pcodec (

https://github.com/mwlon/pcodec

0
投票

© www.soinside.com 2019 - 2024. All rights reserved.