前言:
当前你们对“pkzip算法”大概比较关怀,大家都想要剖析一些“pkzip算法”的相关资讯。那么小编在网上网罗了一些有关“pkzip算法””的相关内容,希望大家能喜欢,你们一起来学习一下吧!在电脑刚流行起来的年代,一个硬盘有10G容量就不错了(硬盘历史戳这里),不像现在一个3A游戏都能破100G,硬盘随随便便都是1TB起步,那是十几年前想都不敢想的。
在容量稀缺的时候,数据的压缩显得尤为重要。那压缩是什么原理?什么样的压缩更好?带着诸多疑问,我们今天就来了解一下“压缩”吧!
▌压缩的好处
要说压缩的好处显然易见,最主要的就是能够节省存储空间。存储设备的发展没有那么快,而且硬件是需要付出金钱的,所以利用压缩技术,我们可以又省钱,又能多存东西。
当然,也有一个不能忽视的代价,那就是“时间”。压缩和解压缩的过程,都是需要付出时间成本的,动辄数百G的信息经过压缩,可能大半天都过去了。
那压缩还有什么额外的意义呢?你说干脆多买块硬盘不就得了嘛,为什么还要压缩呢?当然有,通过把许多东西压缩到一个包里,是能够方便传输的。
比方说有一天,你的朋友要你把旅行的几百张照片发给他,如果你一张张用QQ发给他,自己觉得麻烦且不说,对面的心态估计要崩了。这种情况你给照片文件夹打个包再发过去,是不是舒服多了呢。
另外有一点比较重要的就是“保密性”,很多压缩软件都提供了密码加密功能,公司的文件、自己的隐私、都可以通过加个密码来进行保护。因为有强制破解密码的软件,所以建议密码设置的复杂一些。
▌压缩的缺点
最大的缺点,就是我们刚刚所说的“需要大量时间”压缩和解压缩,另外有一大缺点,就是在于传输的过程中。
往往我们在网上下个大文件压缩包、视频压缩包,上传者除了给你个磁力链接外,下方还会附上一个“MD5”码,这个东西是干啥用的呢?其实它是用于校验的。
因为信息在网络传输过程中是可能损坏的,很多小文件坏了顶多重新下一个,耽误不了什么功夫,但是压缩文件有损坏、可能导致整个压缩包解不开。所以少数朋友可能在解压前会用MD5校验文件的完整性、或者看看文件有没有被人动过手脚。
▌压缩的格式
说了这么多,那么有哪些常见的压缩格式呢?从后缀上来看,最常见的就是:ZIP、RAR、7Z,分别来自WinZIP、WinRAR以及7-Zip。他们都有着不同的字典、规范,这意味着不同的压缩效率。
ZIP是历史非常悠久的压缩格式,也是最通用的标准格式,在Windows中你可以直接访问内容。缺点是对Unicode字符支持一般,缺乏修复功能,安全性一度堪忧等。
他的发明者是Philip Katz(名字缩写PK),伴随他的还有一个曲折的故事。还在DOS的时代,流行的是ARC压缩格式,但因为效率慢Philip很不满意,于是亲自开发完全兼容ARC的“PKARC”,不料被律师函警告,还败诉了。
但他依然不屈不挠,开发出了PKZIP、首创了ZIP格式,而且没有注册专利,让ZIP成为开放的格式。可惜Philip年仅37岁就因酗酒去世了。后来Windows崛起,Nico Mak开发了WinZIP让历史继续前进。
RAR也用了ZIP的算法,但格式并不开放、只开放了解压组件,压缩率比ZIP更高一些。他在中国可能比国外还火,因为这个格式受到了破解组织的推崇,所以在当年的国内可以说是有了得天独厚的生长土壤。
相比ZIP,RAR对Unicode字符支持好多了,不用担心多语言导致乱码。它还是最早支持分卷压缩的压缩格式,支持CRC修复。优点多多但它起初是收费软件,后来才出了免费的带广告版。
7Z算是比较晚出现的了,它完全开源,支持LZMA等先进算法,有着更高的压缩效率,压缩比大、速度还快。同时对AES加密、固实压缩、超大文件压缩的支持也极好,还兼容解压其他压缩格式。
▌其他的格式
但是,压缩并不是只有一种压缩包的形式,它更是一种封装形式。我们平时接触的图片、视频等等也算作一种压缩格式。
比如JPG就是最常见的有损压缩格式,很多压缩的厉害的JPG你都能看到马赛克,不过好处是占用空间很小,适合网上传输、交流使用。而TIFF、RAW、PNG、BMP、GIF等等都是无损压缩格式,大多体积很大。
在音频领域,肯定玩Hifi的朋友们都比较熟悉,什么WAV、FLAC、APE都是无损压缩格式,而MP3是有损的格式。比较有趣的是,网上大多数APE都可能是假无损,是用盗版CD自己抓轨出来的,所以下无损的时候看到这个格式可要当心咯。
▌压缩的原理
从某种程度上讲,摩斯电码也是一种信息的压缩,甚至更早的象形文字都算一种信息的压缩,所以说压缩的历史相当悠久。
计算机处理信息是以二进制数(0和1)的形式表示的,压缩软件把二进制信息中相同的字符串以特殊字符标记起来压缩的,从而实现缩小文件大小的。
同样是压缩,方法却各不相同,比较常见的有哥伦布指数编码、霍夫曼编码、字典算法、固定位长算法、算数编码、行程长度编码等等,讲起来会比较复杂也不好理解,所以我们就简单地说说原理:
压缩的本质,就是“找规律、作简化”。比如1111100000可以视作5个1、5个0,而AAABBB可以堪称3A3B。
字典算法算是比较好理解的,就相当于用简单代码来指代复杂词汇,比如你的字典里01=初号机、02=头上长角的红衣美少女。那么“我驾驶着初号机,搂着头上长角的红衣美少女”就能压缩为“我驾驶着01,搂着02”,是不是一下子就短了很多呢?(以上纯属大雾)
压缩比会根据文件类型有所不同,比如文字类压缩比会很大,因为字、词在同一个文件中给可能重复出现;而已经压缩过的文件经过再压缩却不能变小。
Prophecy的3D 电影《彗星撞地球》甚至还能从几G压缩成64k的图片,原因是,这类DEMO和普通视频不同,不是把每一帧都用视频解码器解析,而是实时演算的,而算出来的部分贴图还能重复使用,所以大大减少了体积。
▌常见的软件
最常见的肯定是WinZIP、WinRAR、7-ZIP这些,一般来说,WinRAR免费版足够使用,相信很多人会用火绒拦截广告,但广告是作者的经济来源,除非万不得已、否则并不推荐这么做。7-ZIP虽然界面low了点,但是简单好用。
那么有没有更好用、还免费的呢?可以试试Bandizip,这是个韩国的软件,它是完全免费的,用起来和WinRAR差不多,支持自动解压,根据压缩包内容自动选择解压方式;还能设置在关闭软件后不删除临时文件。
如果屏幕前的你还有什么见解,或者好用的软件,不妨在评论区分享吧~
▼
戳图片传送至往期精彩
喜欢我们的推送别忘了点一个顶
向亲朋好友推荐一下我们的文章
或者赞赏一下
我们下期再见啦!
标签: #pkzip算法