首页 > 其他分享 >亲自尝试压缩数据

亲自尝试压缩数据

时间:2024-02-20 18:14:37浏览次数:24  
标签:尝试 文件 哈夫曼 编码 压缩 算法 数据 亲自

       在学习压缩文件前需要先了解文件是将数据存储在磁盘等存储媒介中的一种形式,并且程序文件中存储数据的单位是字节,这也是为什么文件的大小用xxKb或xxMb等来表示市的原因。文件又是什么呢?它就是字节数据的集合,而且文件包括文本文件和图像文件,另外我们需要特别注意任何情况下其中的字节数据都是连续存储的。 既然我们了解了文件,接下来就让我们来学习文件的压缩机制吧!本章会介绍两种常用的压缩技巧:1、RLE算法的机制(Run Length Enconding,行程长度编码)="数据×重复次数",常被用于压缩传真的图像,例子如下图:

缺点:因为文本文件中同样字符多次重复出现的情况并不多见,因此他不适合文本文件的压缩。2、哈夫曼算法,其关键是多次出现的数据用小于八位的字节数来表示,不常用的数据则可以用超过八位的字节数来表示。其中数据都要以8位为单位保存到文件中,不论其满或是不满。相对程序内容更复杂,但压缩率是相当高的,并且更适合文本文件压缩。在哈夫曼算法中可以借助哈夫曼树构造编码体系,即使不使用字符区分符号,也可以构建能够明确进行区分的编码体系。接下来我们就通过制作AAAAAABBCDDEEEEEF编码的哈夫曼树的过程来理解怎样制作哈夫曼树,如图所示:

     

我们知道了哈夫曼算法的压缩过程,但为什么他能达到这么好的效果呢?这是因为从用哈夫曼算法压缩过的文件中读取数据后就会为单位,对该数据进行排查,并与哈夫曼树进行比较看是否到达了目标编码。还有一点值得提及这是我们把能还原到压缩前状态的压缩称为可逆压缩(GIF格式),无法还原到压缩前状态的压缩称为非可逆压缩(JPEG格式)。

标签:尝试,文件,哈夫曼,编码,压缩,算法,数据,亲自
From: https://www.cnblogs.com/G-y-l-123/p/18023711

相关文章

  • 压缩数据
    压缩有以下几种1、RLE算法:又叫RunLengthEncoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。2、哈夫曼算法:无损压缩当中最好的方法。它使用预先二进制描述来替换每个符号,长度由特殊符号出现的频率决定。常见的符号需要很少的......
  • 《程序是怎样跑起来的》读后感——第六章 亲自尝试压缩数据
    读完第六章后,我了解到文件是以字节为单位来保存的,文件的大小之所以用KB、MB等来表示,就是因为字节用B来表示。文件用来压缩是可以使用RLE算法机制的。RLE算法是用“数据”*“重复次数”来压缩的,它比较适用字节重复较多的文件,并不适合文本文件的压缩。用哈夫曼算法也可以压缩文件。......
  • 自己动手压缩数据
    当我们用电子邮件附件发送较大的文件时,文件就会压缩。文件是以字节为单位记录的,文件是字节数据的集合体,1字节能够表示的字节数据共有256中,无论是文本文件还是图片文件,我们都可以认为文件就是一串连续存储的字节数据。用数据*重复次数来表示的压缩方法称为游程编码。游程编码是一种......
  • 第6章亲自尝试压缩数据
    压缩分类:压缩后的数据可以复原的称为可逆压缩,无法复原的称为不可逆压缩文件是将数据存储在磁盘等存储媒介上的一种形式,其以字节为存储单位,文件就是数据集合的字节任何情况下:文件的字节序列都是连续存储的RLE压缩算法:将文件内容用数据X重复次数,从而实现数据压缩,常用于压缩传真图......
  • java图片压缩
    /***压缩图片并返回字节数组*@paramfile*@return*@throwsException*/privatebyte[]compress(Filefile)throwsException{Filetemp=newFile(file.getAbsolutePath());//scale:大小//outputQualit......
  • 对于压缩原理和部分压缩方法的认识(《程序是怎样跑起来的》第6章)
    在阅读过后《程序是怎样跑起来的》第6章后,我了解了关于文件压缩的相关知识。文件压缩指的就是将文件中重复的字符用“数据×出现次数”的方式表达出来,就如书中所说的AAABBDDFFF这样10个字符用A×3+B×2+D×2+F×3=A3B2D2F3来表示,这是RLE算法的压缩方式,但是这种算法也存在一定的缺陷......
  • 【DBSyncer】用于数据同步的工具尝试
    1 前言DBSyncer,不知道大家用没用过,我之前看过,今儿空了,来试试。地址:https://gitee.com/ghi/dbsyncer地址如上,主要是用于数据库层面的同步,废话不多说,我简单玩了玩先,还真不错,空了我再细看看。2 数据同步例子2.1 定义目标这是我两个数据库的两张表,我们来看看如何用这个工......
  • 《程序是怎样跑起来的》第六章:亲自尝试压缩数据
    这本书的第六章中,作者矢泽久雄引领我们进入了数据压缩的神秘世界。数据压缩,对于我们日常生活和工作来说是一个不可或缺的技术。随着信息爆炸的时代,数据量正以惊人的速度增长。不论是存储空间还是网络带宽,都在面临前所未有的压力。因此,如何高效地管理和传输这些数据成为了一个亚待......
  • 第六章——亲自尝试压缩数据
    文件就是字节数据的集合,文件是以字节为单位来存储的。在任何情况下,文件中的字节数据都是连续的。文件的压缩机制——1.REL算法,就是把“数据X重复次数”的形式来表示。例如AAAAAABBCDDEEEEEF压缩为A6B2C1D2E5F1。当然这种算法也有缺点,REL算法并不适用文本文件的压缩,会使原文件增......
  • uni-app压缩图片
    imageCompress(file){ returnnewPromise((resolve,reject)=>{ let{size,path}=file lettype=path.split(".")[1] //大于0.5M进行压缩, if(size<(0.5*1024*1024)){ resolve(file) returnfalse }......