在这种情况下,我能让压缩比小于6.25%吗?
Can I have compression ratio less than 6.25% in this situation?
我有一个文本文件,其中只有两个字符的组合组成的长文本。
有什么方法可以压缩它们,压缩比小于6.25%。
我不想使用任何库或函数,但
我希望有一些公式或算法来完成这项工作。
一个想法是对我的问题最好的回答。
p。S:其实我也想自己造一个,但是我对这个东西一无所知。不管是什么,我坐在那里,拿着笔和笔记本,试着自己做这些事情。
压缩比直接由文件的内容决定。例如,一个只包含0
次N
次的文件可以使用log_2(N)
位进行压缩(您只需指定它包含多少个零)。从技术上讲,压缩比最多等于源的香农熵,因为你可能认为你的文件包含一些随机源产生的符号。
因此,除非您知道文件的结构并可以使用一些附加信息,否则不可能保证压缩比低于某个阈值。如果你不知道这个结构,你的文件只包含随机的0和1,那么就没有办法压缩它(在这种情况下熵就是1)。
参见这个链接了解更多细节。你一定要读一些介绍性的信息理论,否则重新发明轮子会很乏味。
除非您的数据中有其他冗余,否则不会。最好是12.5%,即1/8,因为您可以将每个字符编码为1位。
相关文章:
- C++中高效的大型稀疏块压缩线性方程
- 嵌入方指针压缩已禁用
- C++使用整数的压缩数组初始化对象
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C++中将函数压缩为两种方式
- 为什么constexpr的性能比正常表达式差
- 在C++中使用LZ4压缩目录
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 从值小于256的uint16到uint8的Endian安全转换
- 为什么我可以使用比分配的内存更多的内存
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 使用C++进行运行长度解压缩
- LZW压缩生成文件比原始文件更大
- 做得比比较少或小于或等于或等于比较更有效
- 压缩算法(例如gzip、zip或snappy)的输出肯定小于输入吗
- 两个Mat图像的压缩比
- 如何使用Lz4库解压缩小于原始大小的文件
- 将固定长度的短字符串(52个字符)压缩到小于40个
- 在这种情况下,我能让压缩比小于6.25%吗?