• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

现在搞压缩的用的是什么算法(大概的),为什么这么不稳定?

haha_0_2000_2001 2003-11-29 12:12:43
如题,希望大家能给我讲一些压缩软件压缩的原理、概念、算法。
还有,为什么压缩的比例那么不稳定呢?
...全文
8 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
abbot 2003-12-17
你好,我现在在用算术码压缩,可是出了问题,cmsbai(小白)帮我一下吧,
Lun_box@sina.com
回复
cmsbai 2003-11-29
常用的压缩算法有:
1.算术算法。
2.哈夫曼算法
3.字典压缩算法
等等。
其实我个人认为还是算术压缩比最高,不过不太稳定。还需改进。
回复
dzqsuper 2003-11-29
我也想知道哦
热切关注此贴
加入收起来了
希望那位大仙能给出有用的答案
回复
kingaim 2003-11-29
常见的压缩算法大致分为两类:一类是有损压缩,另一类是无损压缩,而无损压缩又有两类模型,基于统计模型的压缩方法和基于字典模型的压缩方法。基于统计模型的Adaptive Huffman 和基于字典模型的Lzw 算法。
Adaptive Huffman 算法是对传统的Huffman算法的改进。传统Huffman算法的缺点在于:
1.在压缩前,需进行预处理,即先扫描一遍源文件,统计字符出现的频率得到各个字符的频率表,然后根据权重(频率的大小)建立一颗二元树,形成每个字符的01代码,接着第二次扫描源文件,形成压缩文件。两遍扫描文件,时间开销大,效率低。
2.在解压缩时,需要得到压缩时的频率表,为了维护频率表,也需要额外的空间开销。
Adaptive Haffman 正是基于以上两点做的改进。首先,它不需要对原文件进行预处理,通过“自适应”的原理,在对原文件的一次扫描中同时完成了二元树的动态建立和文件的压缩。这样就节省了时间开销。其次,解压缩时,也不需要任何压缩时的信息,同时完成了二元树的动态建立和减压缩。

lzw 编码算法流程如下:

1初始化:将所有的单字符放入字典
2 读第一个输入字符-->前缀串w
3 step: 读入下一个输入字符k
4 if没有这样的k(输入已穷尽)
5 码字(w)-->输出;结束。
6 if wk 已存在于字典中: //这里要在字典中查找wk
7 wk-->w;repeat step.
8 else wk不在字典中:
{
9 码字(w)-->输出
10 wk-->字典;
11 k-->w;repeat step.}
回复
haha_0_2000_2001 2003-11-29
请问什么是lzw算法,请说详细一点行吗?
回复
压缩比例跟文件内容有关,比如zip和cab是lzw算法。
回复
wuliangge2001 2003-11-29
因为软件会根据不同种类的文件进行不同的压缩
google上搜索一下吧
回复
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2003-11-29 12:12
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……