压缩算法的完整描述

时间:2009-07-15 13:13:00

标签: compression

我正在寻找一种压缩算法(用于编程竞赛),我需要完整描述如何实现它(所有技术细节),任何失去和无专利的算法都可以,但实现的简易性是奖金:)

(虽然可能不相关)我打算用C ++实现算法......

提前致谢。

编辑: 我将仅压缩文本文件,没有其他文件类型......

8 个答案:

答案 0 :(得分:4)

好吧,我不能为你完成比赛,但请查看wiki上的这篇文章:Run Length Encoding。它是迄今为止压缩数据的最简单方法之一,尽管并不总是有效的。压缩也是特定于域的,即使在无损算法中,您会发现您正在压缩的决定如何最好对其进行编码。

答案 1 :(得分:3)

我会在维基百科上开始here

有很多可供选择,但如果不了解您想要的更多内容,则很难提供更多帮助。您是在压缩文本,图像,视频还是随机文件?每个人都有自己的技术和挑战,以获得最佳结果。

如果易于实施是我使用“filecopy”压缩的唯一标准。保证压缩比恰好为1:1,并且实现简单......

答案 2 :(得分:3)

如果您正在压缩纯文本,

Huffman会很好。以下所有评论者向我保证,实施;D

是一种乐趣

答案 3 :(得分:3)

RFC 1951描述了膨胀/收缩,包括压缩机算法的简要描述。 Antaeus Feldspar的An Explanation of the Deflate Algorithm提供了更多背景。

此外,zlib源代码分发在contrib / puff / puff.c中包含一个简化的引用inflater,它可以帮助您准确理解这些位的排列方式(但它不包含deflate,只有膨胀)。 / p>

答案 4 :(得分:1)

易于实施:霍夫曼,如前所述。我相信LZW不再申请专利,但我不确定。这是一个相对简单的算法。不过,LZ77应该可用。最后,Burrows-Wheeler变换允许压缩,但实现起来要困难得多。

答案 5 :(得分:1)

我喜欢Burrows-Wheeler Transform的介绍。

答案 6 :(得分:0)

如果您在互联网浏览器中查看“查看”,则应选择“缩小”或缩小文字。

选择其中一个并......

<强> BAM

您在同一屏幕上获得了更多文字! Yay压缩!

答案 7 :(得分:0)

Security Now! podcast最近推出了一集突出数据压缩算法。 Steve Gibson对Huffman和Lempel-Ziv压缩技术的基础知识进行了很好的解释。您可以收听音频播客或阅读Episode 205的成绩单。