是否有可用的工具将大量数据压缩成输出原始信息的小而复杂的算法?

时间:2013-01-08 01:13:07

标签: compression

我记得有时候计算机会以有趣的方式保存图像。例如,其中一些像素彼此相邻的图像是相同的精确颜色,然后它们被存储为下一个30或一些像素都是“红色”的信息,而不是说每个像素单独具有我们所知的值。红色。

有时您下载大小为GB的大型程序,但以900 kb文件开头。我想这些只是将你连接到ftp的工具,它通常会为你提供一些数据。

那么,如果我们不立即需要访问这些信息,比如长期存储,我们为什么不能将千兆字节的信息存储为千字节?

举个例子,程序被要求压缩大小为1024千字节的文件。用于压缩此信息的程序检测到内存中的字节只是形成{1,0,0,1,0,0,...}的模式。该程序创建一个算法,如果要求解压缩信息并存储该模式应占用的内存长度,该算法可以在以后识别。原始信息占用的数据现在要小得多。

如果所需的算法太复杂而无法压缩整个文件,那么计算机可能会将数据分成不同的算法,以便在解压缩时输出较小的数据长度。

这是压缩数据的现实方法吗?我认为这可能已经被使用了,因为有时我看到一个程序,例如Windows 7,“扩展”数据。这是该计划真正做的事情吗?

1 个答案:

答案 0 :(得分:1)

LZW的工作原理是构建一个位串字典,然后使用对该字典的引用而不是字符串。其他压缩算法以不同的方式工作,但想法总是找到一个较小的表示。一些压缩,例如jpeg丢失数据,这适用于我们的眼睛或耳朵能够填充缺失数据的媒体。其他如LZW是“无损”的,它们不会丢失数据。

某些压缩程序(如pkzip和winzip)使用基于数据的各种算法。此方法不能用于流式传输,但适用于文件。

整个区域非常复杂,你可以花一辈子的时间就不知道它的一切。祝你好运。