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

亲自尝试压缩数据

时间:2024-02-27 15:25:24浏览次数:17  
标签:尝试 编码 哈夫曼 文件 压缩 算法 数据 亲自

文件的大小之所以用XXKB,XXMB等来表示,就是因为文件是以字节为单位来存储的。文件就是字节数据的集合。如果文件中存储的数据是文字,那么该文件就是文本文件。如果是图形,那么该文件就是图像文件。在任何情况下,文件中的字节数据都是连续存储的。
由于半角字母中,一个字符是作为一个字节的数据被保存在文件中的。只要能使文件小于十七字节,我们就可以使用任何压缩方法。把文件内容用“数据×重复次数”的形式来表示的压缩方法称为RLE算法。RLE算法是一种很好的压缩方法,经常被用于压缩传真的图像等。因为图像文件本质上也是字节数据的集合体,所以可以用RLE算法来压缩。
在实际的文本文件中,同样字符多次重复出现的情况并不多见。虽然针对相同数据经常连续出现的图像、文件等,RLE算法可以发挥不错的效果,但它并不适合文本文件的压缩。不过,因为该压缩机制非常简单,因此使用 RLE算法的程序也相对更容易编写。
哈夫曼算法是哈夫曼于1952年提出来的压缩算法。 日本人比较常用的压缩软件LHA,使用的就是哈夫曼算法。 文本文件是由不同类型的字符组合而成的, 而且不同的字符出现的次数也是不同的。不过有一点需要注意,不管是不满8位的数据,还是超过8位的数据,最终都要以8位为单位保存到文件中。 这是因为磁盘是以字节(8位)为单位来保存数据的。 为了实现这一处理,压缩程序的内容会复杂很多,不过作为回报, 最终得到的压缩率也是相当高的。 为了更好地理解哈夫曼算法,先
来看一下莫尔斯编码。莫尔斯编码是 1837年莫尔斯提出的。莫尔斯编码不是通过语言,而是通过 “嗒嘀嗒嘀”这些长点和短点的组合来传递文本信息的。实际上,根据字符种类的不同, 莫尔斯电码符号的长度也是不同的。莫尔斯编码把 一般文本中出现频率高的字符用短编码来表示。
哈夫曼算法是指,为各压缩对象文件分别构造最佳的编码体系, 并以该编码体系为基础来进行压缩。因此,用什么样式的编码(哈夫曼编码 )对数据进行分割,就要由各个文件而定。用哈夫曼算法压缩过的文件中, 存储着哈夫曼编码信息和压缩过的数据。而在哈夫曼算法中, 通过借助哈夫曼树构造编码体系,即使在不使用字符区分符号的情况下, 也可以构建能够明确进行区分的编码体系。也就是说,利用哈夫曼树后, 就算表示各字符的数据位数不同,也能够做成可以明确区分的编码。因此, 只要掌握了哈夫曼树的制作方法,并用程序将其完成, 就可以借助哈夫曼算法实现文件压缩了。不过,与RLE算法相比,程序的内容要复杂很多。
而从用哈夫曼算法压缩过的文件中读取数据后,就会以位为单位对该数据进行排查, 并与哈夫曼树进行比较看是否到达了目标编码 ,这就是为什么哈夫曼算法可以对数据进行区分的原因。
图像文件的使用目的通常是把图像数据输出到显示器、打印机等设备上。 图像文件还可以使用与前文介绍的RLE算法、 哈夫曼算法不同的其他压缩算法。这是因为,多数情况下, 并不要求压缩后的图像文件必须还原到与压缩前同等的质量。我们把能还原到压缩前状态的压缩称为可逆压缩, 无法还原到压缩前状态的压缩称为非可逆压缩。

标签:尝试,编码,哈夫曼,文件,压缩,算法,数据,亲自
From: https://www.cnblogs.com/duyan123/p/18036923

相关文章

  • 7z 压缩时使用多个密码
    今天在命令行中使用7z进行压缩和解压缩时遇到一个有趣的事情。压缩用7z压缩时使用以下命令:7za123.zip123/后来发现,将文件添加到压缩文件时可以加上密码,像这样:7za123.zip123/-p123这样在解压时就需要输入密码123但是每使用7z添加一次文件到压缩包,就可以增加一次密码......
  • linux下.gz文件的解压与压缩
    Usage:gzip[OPTION]...[FILE]...CompressoruncompressFILEs(bydefault,compressFILESin-place).Mandatoryargumentstolongoptionsaremandatoryforshortoptionstoo.-c,--stdoutwriteonstandardoutput,keeporiginalfilesunchanged#在标准输出......
  • 亲自尝试压缩数据
    在我们下载文件时,总能遇到文件格式的问题,各种各样的文件格式,有的需要我们压缩处理,通过本章的学习我对压缩有了更深刻的了解1·我们为什么要进行数据压缩呢在这个每天都会诞生大量数据的时代,数据压缩扮演着重要的角色,如数据传输,传输压缩过的数据肯定会比原数据快。2首先我们需......
  • 状态压缩动态规划
    集合 第1题   集合基本概念1、集合与元素集合:由一个或多个确定的元素所构成的整体,是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。元素:构成集合的这些对象则称为该集合的元素。例如,全中国人的集合,它的元素就是每一个中国人。例如,{1,3,5}是一个集合,3是......
  • makecab命令工具 无损数据压缩工具
    CabinetMaker-无损数据压缩工具MAKECAB[/V[n]][/D变量=值...][/L目录]源文件[目标文件]MAKECAB[/V[n]][/D变量=值...]/F指令文件[...]源文件要压缩的文件。目标文件压缩后的文件名。如果省略,将用下划线(_)替换源文件名的最后一个字符作为目标文件名。......
  • 轻松搞定 RAR、Zip压缩包密码!Hashcat +john the ripper
    https://www.freedidi.com/2655.html 1.hashcat:https://hashcat.net2.johntheripper:https://www.openwall.com注:官网是英文的,可以通过谷歌浏览器翻译成中文只需用到2个命令:rar2john.exexxxx.rar  –获取hash值hashcat.exe-m13000-w4-a3$rar5$16$b88c1d7d2c......
  • 《程序是怎样跑起来的》第六章“亲自尝试压缩数据”
    在亲自尝试压缩数据这一章中,用直观、易懂的方式介绍了数据压缩的基本概念、算法和应用。读完本章,我对数据压缩有了更深入的理解,也认识到了它在计算机科学中的重要性和广泛应用。在书中,我了解到了RLE算法和哈夫曼算法这两种数据压缩算法。RLE算法是一种非常直观的数据压缩算法......
  • 第六章 压缩数据
    文件是将数据储存在磁盘等存储媒介中的一种形式,文件以字节为单位保存,程序文件中存储数据的单位是字节。RLE算法的机制:把文件内容用“数据*重复次数”的形式来表示的压缩方式称为RLE算法,然而在实际文本文件中,同样字符多次重复出现的情况并不多见,虽然针对相同数据经常连续出现的图像......
  • PNG格式PNG(Portable Network Graphics)位图图形文件格式 无损压缩的图片格式,支持索引
    PNG(PortableNetworkGraphics)是一种位图图形文件格式,它是一种无损压缩的图片格式,支持索引、灰度、RGB和RGBA等多种颜色模式。PNG格式支持多种颜色模式,包括以下几种:索引色模式(IndexedColor):索引色模式使用一个颜色索引表来存储图像中使用的颜色。每个像素使用索引值来指定......
  • 《程序是怎样跑起来的》第六章——尝试亲自压缩数据
    回答章前问题:1、字节,一字节等于八位2、DOC和TXT肯定不是,DOC是word文档的后缀,TXT是文本文件的后缀。答案是LZH。(压缩文件扩展名)3、?      注:不会,问题:数据的值*循环次数来表示的压缩方法是RLE算法还是哈夫曼算法? (什么是RLE算法?哈夫曼算法?)4、一个半角英数为一字......