
有关压缩算法(需要源代码)
求一种压缩算法的c语言源代码,要求尽量高的压缩比,最好在10:1以上,无损。即要求输入1000Byte的话,压缩出来为100Byte。程序最好封装成一个函数,输入一个内存...
求一种压缩算法的c语言源代码,要求尽量高的压缩比,最好在10:1以上,无损。即要求输入1000Byte的话,压缩出来为100Byte。程序最好封装成一个函数,输入一个内存区,压缩后输出到另一内存区即可。以前没有搞过这方面的东西,不知道这种要求能否实现,是否已经有实现的算法,请高人指教。
给出源代码还有追加分。 展开
给出源代码还有追加分。 展开
展开全部
恩,这个问题很宽泛。
由于压缩算法一般跟内容有关,图像有图像的压缩算法,文本有文本的压缩算法,如果是文件压缩的话,最著名的开源的7-Zip,你可以去百度上搜一个代码来看看。
另外,压缩算法的效率跟文件内容有关。比如色调单一的图像压缩比更高。普通exe格式文件一般压缩比很低。任意文本文件(如txt格式的英文书籍)的压缩比一般在7:1左右。
很多算法都有公开的源码,楼主还是根据自己的需要去搜吧。
如果楼主需要纯粹的无损压缩,并且输入的数据没有什么特征的话,最著名的就是哈夫曼树算法。
哈夫曼是“替代算法”中理论最优的。比如说在ASCII中,'a'是用01100001这样的二进制表现的, 'e'是01100101。每个字符都占1Byte(8bit)。实际应用中'e'的出现频率最高,于是我们可以用较少的编码(比如6个bit)去表示频率高的字符'e',而用更多的编码(如10个bit)去表示很少出线的字符'z',这样可以使整体的编码长度降低。
哈夫曼算法就是根据输入字符频率不一致的特点去构建这个树。
关于代码,网上非常非常多,随便搜一下吧。
由于压缩算法一般跟内容有关,图像有图像的压缩算法,文本有文本的压缩算法,如果是文件压缩的话,最著名的开源的7-Zip,你可以去百度上搜一个代码来看看。
另外,压缩算法的效率跟文件内容有关。比如色调单一的图像压缩比更高。普通exe格式文件一般压缩比很低。任意文本文件(如txt格式的英文书籍)的压缩比一般在7:1左右。
很多算法都有公开的源码,楼主还是根据自己的需要去搜吧。
如果楼主需要纯粹的无损压缩,并且输入的数据没有什么特征的话,最著名的就是哈夫曼树算法。
哈夫曼是“替代算法”中理论最优的。比如说在ASCII中,'a'是用01100001这样的二进制表现的, 'e'是01100101。每个字符都占1Byte(8bit)。实际应用中'e'的出现频率最高,于是我们可以用较少的编码(比如6个bit)去表示频率高的字符'e',而用更多的编码(如10个bit)去表示很少出线的字符'z',这样可以使整体的编码长度降低。
哈夫曼算法就是根据输入字符频率不一致的特点去构建这个树。
关于代码,网上非常非常多,随便搜一下吧。

2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询