最近我使用霍夫曼编码技术来压缩c ++中的文本文件。霍夫曼编码特别减少了磁盘上文件所需的位,并且这种编码也是无损压缩。我想知道还有哪些其他技术可用于压缩数据,如文本文件图像和其他类型的数据。还有什么确实意味着无损压缩及其对应部分?
答案 0 :(得分:2)
也许最简单的无损是Run-length encoding字符串:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW
将编码为:
12W1B12W3B24W1B14W
或:
WW12BWW12BB3WW24BWW14
最简单的有损编码算法类似于:down-sampling,或者对向量的3个邻居单元求平均值并保持平均值。
答案 1 :(得分:1)
“无损”压缩意味着原始输入在解压缩时始终可以完全再现。
“有损”压缩用于特定情况(例如,图像和声音),其中一些细节损失(例如,高频信息的丢失)仅被注意到总体“质量”的轻微降低。请注意,对于被压缩的介质,必须仔细选择所使用的“有损”压缩类型(以及伴随的潜在信息丢失) - 对声音有利的事物不太可能对图像有益,例如,对于图像而言可能是灾难性的财务数据(通常不应受到“有损”压缩)。