首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在文件中允许随机读/写的最佳压缩算法是什么?

在文件中允许随机读/写的最佳压缩算法是什么?
EN

Stack Overflow用户
提问于 2008-10-25 13:38:38
回答 6查看 7.9K关注 0票数 29

在文件中允许随机读/写的最佳压缩算法是什么?

我知道任何自适应压缩算法都是不可能的。

我知道霍夫曼编码是不可能的。

有没有更好的压缩算法,允许随机读/写?

我认为如果你以块的形式编写,你可以使用任何压缩算法,但理想情况下,我不想一次解压缩整个块。但是如果你有一个简单的方法和如何知道区块边界的建议,请让我知道。如果这是您的解决方案的一部分,请让我知道当您想要读取的数据跨越块边界时您会做什么?

在你回答的上下文中,请假设有问题的文件是100 17,有时我想读取前10个字节,有时我想读取后19个字节,有时我想读取中间的17个字节。。

EN

回答 6

Stack Overflow用户

发布于 2010-08-08 13:20:33

许多回复暗示这样的事情是不可能的,我对此感到震惊。

这些人难道从来没有听说过“压缩文件系统”吗?在1993年微软被Stac Electronics起诉压缩文件系统技术之前,压缩文件系统就已经存在了。

我听说对于实现压缩文件系统的人来说,LZSLZJB是流行的算法,这必然需要随机访问读取和随机访问写入。

也许最简单也是最好的做法是为该文件打开文件系统压缩,然后让操作系统处理细节。但是,如果您坚持手动处理它,也许您可以通过阅读有关NTFS transparent file compression的知识来获得一些提示。

另请查看:"StackOverflow: Compression formats with good support for random access within archives?"

票数 28
EN

Stack Overflow用户

发布于 2011-08-23 23:23:58

razip格式支持随机访问读取,比gzip/bzip2具有更好的性能,而gzip/bzip2必须进行调整才能实现此支持:

http://sourceforge.net/projects/razip/

票数 4
EN

Stack Overflow用户

发布于 2008-11-06 10:03:19

基于字典的压缩方案,每个字典条目的代码都用相同的大小编码,将导致能够以代码大小的任意倍数开始读取,并且如果代码不使用其上下文/邻居,则写入和更新很容易。

如果编码包括一种区分代码开始或结束的方法,那么您不需要代码具有相同的长度,并且可以从文件中间的任何位置开始读取。如果您从流中的未知位置进行读取,则此技术更有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/236414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档