我已经获得了一些课程来实现我选择的压缩算法。它可以是任何语言,但我最了解的语言是 Java,其次是 C。它将基于 -
解压后的输出必须和原始输入匹配,所以只能看lossless的算法。
运行时间必须与消息的长度成比例。
内存要求必须与消息的长度无关。
我们的实现将按如下方式进行测试 -
标准文本文件
字节值范围为 0-255 的二进制文件
一个约 10mb 的未指定内容的大文件。
我最初的想法是使用动态算术编码,但我想知道是否有更适合上述约束的算法?其次,用 C 语言而不是 Java 语言是更好的主意吗?我问这个是因为我认为 C 的内存占用会更小,但我不确定是否真的如此。
我花了一些时间在谷歌上搜索这个问题,一些网站提到 LZW 编码与动态霍夫曼编码相结合。这会是一个明智的追求途径吗?我们的讲师确实警告我们,多年来尝试动态霍夫曼编码的提交中有 90% 没有正确实施。
也就是说,我不害怕尝试一下,但在开始之前我会重视一些意见。
任何反馈将不胜感激。