文件压缩

文件压缩(Huaffman树的概念及其实现)

不问归期 提交于 2020-01-15 02:08:12
什么是压缩 想办法让源文件变得更小并能还原。 为什么要进行文件压缩 文件太大,节省空间 提高数据再网络上传输的效率 对数据有保护作用—加密 文件压缩的分类 无损压缩 源文件被压缩后,通过解压缩能够还原成和源文件完全相同的格式 有损压缩 解压缩之后不能将其还原成与源文件完全相同的格式–解压缩之后的文件再识别其内容时基本没有影响 GZIP压缩 LZ77变形: 原理将重复出现得语句用尽可能短得标记来替换 字符串的压缩 LZ77可以消除文件中重复出现的语句,但还存在字节方面的重复 基于Huffman编码得压缩 基于字节的压缩 1个字节—>8个bit位,如果对于每个字节如果能够找到一个更短的编码,来重新改写原3数据,可以起到压缩的目的 Huffman树的概念 从二叉树的根结点到二叉树中所有叶结点的路径长度与相应权值的乘积之和为该二叉树的带权路径长度WPL。 把带权路径最小的二叉树称为Huffman树 Huffman树的概念 用户提供一组权值信息 以每个权值为结点创建N棵二叉树的森林 如果二叉树森林中有超过两个树,进行以下操作 从二叉树森林中取出根结点权值最小的两棵二叉树 以该两棵二叉树作为某个结点的左右子树创建一颗新的二叉树,新二叉树中的权值为其左右子树权值之和 将新创建的二叉树插入到森林中 创建好之后的二叉树森林中的每棵树可以采用堆(priority_queue)保存

Huffman算法实现文件压缩解压

China☆狼群 提交于 2020-01-04 01:15:42
title: Huffman算法实现文件压缩解压 date: 2020-01-02 20:33:11 description: 基于Huffman编码算法实现文件压缩解压 原文网址 Huffman算法实现文件压缩解压 前言  哈夫曼编码是一种贪心算法和二叉树结合的字符编码方式,具有广泛的应用背景,最直观的是文件压缩。下面讲述如何用哈夫曼编解码实现文件的压缩和解压。 哈夫曼编码的概念  哈夫曼树又称作最优树,是一种带权路径长度最短的树,而通过哈夫曼树构造出的编码方式称作哈夫曼编码。 也就是说哈夫曼编码是一个通过哈夫曼树进行的一种编码,一般情况下,以字符 “0” 与 “1” 表示。编码的实现过程很简单,只要实现哈夫曼树,通过遍历哈夫曼树,这里我们从根节点开始向下遍历,如果下个节点是左孩子,则在字符串后面追加 “0”,如果为其右孩子,则在字符串后追加 “1”。结束条件为当前节点为叶子节点,得到的字符串就是叶子节点对应字符的编码。 哈夫曼编码用于文件压缩的原理  我们都知道根据人类使用文字对应的每个字符都是有特定的频率的。比如说英文,一般来说字母a或者e的使用频率很高。如果我们能给出现频率最高的字符很短的编码,出现最少的字符最长的编码,而且保证每个编码都不是任意一个编码的前缀码。为什么要保证这样呢?如果任意一个编码都不是其他编码的前缀码

linux中文件压缩介绍

此生再无相见时 提交于 2019-12-05 11:38:42
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接: https://app.yinxiang.com/shard/s17/nl/19391737/1c62bb7f-f817-427f-b9e8-0c3107b4b26c linux中文件压缩的简单介绍 *.zip文件,表示 zip程序打包压缩的文件 *.rar文件,表示rar程序压缩的文件 *.tar文件,表示tar程序打包 未压缩的文件 命令: zip -r -q -o shiyanlouCode.zip /home/shiyanlou/Code (-r表示递归打包子目录的全部内容,-q 表示安静模式,即不向页面输出信息,-o 表示输出文件,需要再其后面紧跟打包输出文件的文件名( 不写也可以 ),shiyanlouCode.zip 表示打包后输出的文件名称,/home/shiyanlou/Code 表示所要打包的对象路径( 绝对路径 ),此处表示将home下的shiyanlou文件夹下Code文件下的所有文件打包。且打包后的生成名称为shiyanlouCode.zip) 此处打包时,需要注意并清楚的是,生成后的文件(linux下应该叫做输出后的文件)包,所在的目录是此时当前打包时,用户所在的目录。即此时如果是在/home文件夹下执行的该打包命令

对于PDF文件压缩怎么操作? PDF文件压缩攻略

匿名 (未验证) 提交于 2019-12-02 22:56:40
PDF文件压缩怎么操作呢?在我们日常工作中,由于工作性质的不同,所要使用到为文件都有大小的限制。如果是在处理PDF文件,需要你将它压缩成比较小的PDF文件,对于其它文件的压缩可能都遇到过,PDF文件就很少有人处理过,下面分享一种PDF文件压缩攻略交给大家! 1、首先压缩PDF文件的话大家可以在浏览器中搜索到PDF压缩工具,然后将它安装到操作的电脑中,考虑到每个工具操作工具方法不同,建议大家使用到同一款软件。 2、进入到PDF工具中,可以看到软件界面中分布层次分明,然后可以移动鼠标到左侧“PDF的其他操作”,这时候可以点击打开这个栏目,它分为了多个功能操作,里面就有我们需要的“PDF压缩”,下面重点介绍这个功能。 3、PDF压缩功能选择完毕后,点击到“添加文件”这里,在跳转出来的文件夹内找到PDF文件并将添加到转换器中,可以支持多个PDF文件一起进行操作。 4、文件添加成功后,在输出目录这里,“自定义”和“原文件夹”两个选项,点击自定义后可以点击浏览框设置压缩之后文件的保存路径,如下图所示: 5、在列表的下方可以选择设置压缩的等级和清晰度,这个可以根据个人的需求来进行设置,清晰度通过百分百。点击下方的“确定转换”就进入PDF文件压缩的过程了。 6、看到状态栏的进度完成100%了就说明文件压缩成功了,打开文件对比一下。 关于PDF文件压缩的攻略介绍就到这里了

C#文件压缩

匿名 (未验证) 提交于 2019-12-02 22:06:11
using System.IO.Compression; try {   ZipFile.CreateFromDirectory(Server.MapPath(TOZipPath), Server.MapPath(TOZipFilePath)); } catch (Exception ex){} 文章来源: C#文件压缩

CSS性能优化的技巧(一)

邮差的信 提交于 2019-11-28 22:33:30
下面我们开始介绍 实践型的4个优化技巧 ,先从首屏关键CSS开始。 1. 内联首屏关键CSS(Critical CSS) 性能优化中有一个重要的指标——首次有效绘制(First Meaningful Paint,简称FMP)即指页面的首要内容(primary content)出现在屏幕上的时间。这一指标影响用户看到页面前所需等待的时间,而**内联首屏关键CSS(即Critical CSS,可以称之为首屏关键CSS)**能减少这一时间。 大家应该都习惯于通过link标签引用外部CSS文件。但需要知道的是,将CSS直接内联到HTML文档中能使CSS更快速地下载。而使用外部CSS文件时,需要在HTML文档下载完成后才知道所要引用的CSS文件,然后才下载它们。所以说,内联CSS能够使浏览器开始页面渲染的时间提前,因为在HTML下载完成之后就能渲染了。 既然内联CSS能够使页面渲染的开始时间提前,那么是否可以内联所有的CSS呢?答案显然是否定的,这种方式并不适用于内联较大的CSS文件。因为 初始拥塞窗口 3存在限制(TCP相关概念,通常是 14.6kB,压缩后大小),如果内联CSS后的文件超出了这一限制,系统就需要在服务器和浏览器之间进行更多次的往返,这样并不能提前页面渲染时间。因此,我们应当只将渲染首屏内容所需的关键CSS内联到HTML中。 既然已经知道内联首屏关键CSS能够优化性能了