社区
数据结构与算法
帖子详情
如何在一个压缩数据流中解压缩出指定原始数据中偏移位置的一块数据?
dxl
2001-01-06 03:10:00
比如有200M数据,压缩后得到100M的数据文件。要求在压缩后的数据中读出在原来200M
数据中偏移195M地方的100个字节数据,如何实现?可采用那一种压缩算法?请各位大虾
多多指教。
...全文
522
4
打赏
收藏
如何在一个压缩数据流中解压缩出指定原始数据中偏移位置的一块数据?
比如有200M数据,压缩后得到100M的数据文件。要求在压缩后的数据中读出在原来200M 数据中偏移195M地方的100个字节数据,如何实现?可采用那一种压缩算法?请各位大虾 多多指教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kevin_qing
2001-01-10
打赏
举报
回复
压缩算法一般是分块计算的,拟可以根据块的信息跳过部分数据,直到找到某块包含你所需数据的部分或者全部,在解压该块即可得到数据。
比如设有一数据流in;我们需要解压offset开始的128字节。
0.计数器Cur=0;
1.读in,查找记录该块解压后大小的记录nSize。
2.cur+=nSize;
3;if(cur>offset) goto 4;否则从in读到信息里面找到下一个块记录的地址,in=下一个块记录的地址,goto 1.
4;解压该块并计数,储存offset后128字节数据。
其实还有简单但是效率很低的方法。即从头开始解压,把不需要的数据丢弃即可。
boldragon
2001-01-10
打赏
举报
回复
dxl:
我想这跟某种具体的压缩方法有关的,因为压缩后的数据一般而言,其前后的相关性是很大的。首先你得了解用的是那种压缩方法,然后才有可能在压缩数据中正确的寻址。一般来说,压缩后的数据是块状的(当然块长可能是可变的),首先按块寻址(找到块头,得到其块长),然后就可以在块内寻址,找出具体所需的数据,再解压出这部分数据。
sundayboys
2001-01-06
打赏
举报
回复
只有看了zip算法的原程序才行。
whoo
2001-01-06
打赏
举报
回复
建议你从压缩入手,如分段压缩等.
或者找一个WinZip的原码研究研究.
如何在HDFS
中
进行
数据
压缩
以实现高效存储?
本节作为《Hadoop从入门到精通》专题的第四章第二节,将主要介绍如何在HDFS
中
进行
数据
压缩
,有哪些可选的
数据
压缩
方法等内容。
数据
压缩
是一种将
数据
简化为更紧凑形式的机制,以节省存储空间并提高
数据
传输效率。 4.2...
stream流的
解
压缩
对于Stream对象,除了使用GZipStream或DeflateStream进行
解
压缩
之外,还可以使用其他的
解
压缩
库或API。需要注意的是,这段代码假设你的Stream是使用GZip
压缩
的。如果你的Stream包含的是.NET支持的
压缩
格式,例如GZip...
C语言实例_
数据
压缩
与解压
数据
压缩
是通过一系列的算法和技术将
原始
数据
转换为更紧凑的表示形式,以减少
数据
占用的存储空间。
数据
解
压缩
则是将
压缩
后的
数据
恢复到原始的表示形式。
Zlib在C++
中
实现ZIP文件
解
压缩
它旨在为应用程序提供
一个
稳定的,跨平台的
压缩
库,用于
数据
流
的
压缩
和解压功能。自发布以来,Zlib已经成为了各种软件系统
中
不可或缺的一部分,特别是在网络
数据
传输、文件
压缩
、多媒体编码等领域得到了广泛应用。
Linux(程序设计):28---
数据
流
压缩
原理(Deflate
压缩
算法、gzip、zlib)
比如,有一篇文章大量使用"
中
华人民共和国"这个词语, 我们用"
中
国"代替,就缩短了 5 个字符,如果用"华"代替,就缩短了6个字符。事实上, 只要保证对应关系,可以用任意字符代替那些重复
出
现的字符串 本质上,所谓...
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章