CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

谁知道压缩和解压缩怎么实现,请指教!!!

楼主mhlxhm(卖姑娘的小火柴)2004-09-03 15:57:21 在 .NET技术 / C# 提问

谁知道压缩和解压缩怎么实现,请指教!!! 问题点数:100、回复次数:2Top

1 楼jinrocky(3c273)回复于 2004-09-03 15:59:10 得分 0

【缩位压缩】    
    "缩位",就是缩减编码里没有必要    
  使用的"位"。例如文件里一个汉字也没有,也就是说内容中没有使用扩展   ASCII码,这样所    
  有字符编码的第七位(最前面那一位)将都会是0。利用这一点我们就可以缩掉这一位,假设    
  文件内容是ABCDEFGH。    
    文件内容:   ABCDEFGH    
    二进制内容:01000001   01000010   01000011   01000100   01000101   01000110   01000111   01001000    
    压缩后文件内容:   [该内容中文状态下显示是乱码,故无法写出]    
    二进制内容:10000011   00001010   00011100   01001000   10110001   10100011   11001000    
    这个压缩过程就是将原来顶头的0全部去掉后每8位重排,这样原来占用   8个字节的文件    
  就只占用了7个字节。只要解压时再加上第七位的0,文件就可以恢复原样。这一压缩技术特    
  别适用于对数字的压缩。因为0~9这十个阿拉伯数字占用的ASCII码是从00110000-00111001,    
  其前四位全部都是"0011"。    
       
  【直接压缩】    
    直接压缩的原理最易理解,因为有些时候,文件里不可避免地存在着连续同样的字符,    
  比如在文件末尾加了一行"※※※※※※※※※※※※※※※※※※※※※※"符号。这样的    
  话,压缩时可以只记住这个符号以及重复的次数,就可以迅速还原。    
       
  【字典压缩】    
    字典压缩是最重要的一种压缩技术,也是应用最为广泛的一种压缩技术。该技术搜索文    
  件中重复出现的字符串,如"中华人民共和国"、"改革开放"等,记录后(记录后的内容被称    
  为"字典")在正文中使用另一个简短的编码来代替它。想一想   Windows系统里充满了多少的    
  "Windows"和"Microsoft"这些字符,你就会明白为什么这种压缩技术对   Windows操作系统如    
  此有效了。这种压缩方案对政治稿件和学术论文特别适用。    
    字典压缩技术无论对文本文件还是可执行的代码文件都同样高效,而且可以涵盖掉   "直    
  接压缩"技术。现在流行的   ZIP,ARJ、RAR,AIN等压缩软件都采用了此项技术。但是此种技    
  术中,合适的字典长度很重要,将字典设得太大或太小都严重影响压缩效果,且进行压缩时    
  速度相对较慢。    
    多数压缩软件综合使用各项压缩技术。    
       
  【矢量压缩】    
    虽然字典压缩强劲有力,但是对有些文件内容还是无能为力,比如下面的内容:    
    啊雹玻长触郸锭法    
    这些看起来不成文的汉字实际上却有着内在的联系,它们分别是GB2312编码中的第1601、    
  1702、1803、1904、2005、2106、2207、2308区位的汉字。对于这种情况,可以通过寻找它    
  们之间的数学联系(如数列、方程等)进行记忆式的压缩。这种记忆式的压缩叫做矢量压缩,    
  是一种正在兴起的新压缩技术。    
    矢量压缩有时可以带给我们意想不到的享受。很多人惊奇于   FLASH能以如此小的体积带    
  给我们如此丰富的信息,就是因为   FLASH里使用了矢量压缩技术。使用方程记忆一个点的运    
  动轨迹远比记忆这个点的所有位置信息量要小得多的多。但另一面,对于照片和录音这些资    
  料,现在的矢量化技术还做不到从中找到即高保真又有规律的方案来,所以下一种压缩技术    
  有了大显身手的空间。    
       
  【有损压缩与VCD】    
    VCD的产生要归功于联合图象专家组   (JPEG)的努力。他们提出了一种全新的压缩技术标    
  准,也可以说是一种全新的压缩概念。这种概念催化了运动图象专家组(MPEG)标准的诞生    
  及VCD工业化的实现。JPEG图象压缩技术以图象的每8*8个点的点阵做为一个处理单元,在这    
  个范围内,如果全部都是某一色彩而只有极个别的其他色彩,那么其他色彩将被忽略。这种    
  压缩技术理论上的压缩比高达为64:1,一个64MB的文件现在只需   1MB就可以了?这实在很令    
  人心动。为了进一步扩展压缩效果和提高该技术的适应范围,JPEG做了灵活调整。允许用户    
  自行设置处理单元的大小和忽略其他色彩的程度,这也就是为什么JPEG图像有"质量"属性的    
  原因。    
    JPEG提出的这种"有损压缩"的概念使得该压缩技术有一定的局限性,比如说,JPEG不适    
  合用来压缩工程图纸、医学影像等资料。但其注重实用性的思路却启发了人们,RealPlayer    
  就是沿着这条路率先实现了网上视频的实时播放。而   VCD中剥离了图象的声音则也渐渐形成    
  了流行的MP3音乐。(声音压缩的编码方案过于繁杂,本文未予论述)    
       
  【压缩文件缝隙】    
    除这些技术之外,DOS/Windows系统本身也留给了大家一个压缩的故事。在DOS/Windows    
  系统下,磁盘存储空间被划分成一小块一小块地使用,而不是象UNIX或者Novell那样在系统    
  控制下所有文件都搅和在一起。这种开放式的磁盘文件使用格式虽然不安全(简直毫无安全    
  可言),但是效率高,易操作。这可能也是DOS/Windows在家用和商用市场打败UNIX和Novell    
  但在服务器领域却始终比不上他们的一个重要原因。——因为每个分配块只能供一个文件使    
  用,所以即使文件(或文件的最后一块)只有一个字节,也必须占用一个分配块。因为当时    
  只留了两个字节来分配这种存储块(两个字节是16位,这种分配机制叫做   FAT16),所以不    
  论分区有多么大,最多都只能被分为2^16=65536个分配块。比如说一个2GB的分区,其分配    
  块大小是32KB;当分区超过2GB时,分配块将不得不增长到   64KB。想一想,如果一个字节的    
  文件也要占掉你的64KB时,你能够不恼火?所以从Windows   95   OSR2版本开始,Microsoft推    
  出了FAT32解决方案。但是即使如此,"文件缝隙"依然存在。    
    Microsoft为了解决文件缝隙,曾在DOS   6.0时代推出过Double   Space(DBLSPACE),后    
  来改为DRVSPACE,这东西在Windows   95/98/ME上还依然存在。当时号称可以倍增硬盘容量,    
  令大家激动不已,但是尝试过后高呼上当。原来Microsoft只不过是抄袭他人,使用了"虚拟    
  卷"技术而已,该技术顶多可以省掉文件缝隙,对于整盘只放了一个大文件的用户来说简直毫    
  无用途。    
    压缩文件缝隙现在有了一个较好的办法,那就是把不常用的文件用WINZIP打成一个包,    
  尤其是大量的小文件和/或在FAT16的环境下,使用这一方法可以节省你很多的磁盘空间。但    
  是无论如何,"文件缝隙"看来要在Windows系统中永远存在Top

2 楼stdotleo(大雨仔|M$ MVP)回复于 2004-09-03 16:18:49 得分 100

http://blog.csdn.net/stdotleo/archive/2004/08/24/83702.aspxTop

相关问题

  • 如何实现自动压缩和解压缩?
  • 如何在vb.net中实现压缩和解压缩?
  • 怎样实现将备份的数据库文件压缩和解压缩?
  • 在DELPHI中如何实现文件的“压缩和解压”???
  • 关于php压缩和解压缩
  • 一个BYTE[]能压缩吗?怎么压缩和解压缩?
  • 有没有适合于BCB5的压缩和解压缩控件?
  • 请问如何处理字符串的压缩和解压缩?
  • 如何压缩和解压缩字符串!!!
  • 关于压缩MemoryStream和解压缩Memory的方法!

关键词

  • 文件
  • 技术
  • 内容
  • jpeg
  • 编码
  • 字符
  • vcd
  • 系统
  • 压缩
  • 缝隙

得分解答快速导航

  • 帖主:mhlxhm
  • stdotleo

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo