首页 > 编程语言 >程序是怎样跑起来的(第六章)

程序是怎样跑起来的(第六章)

时间:2024-02-25 20:25:10浏览次数:15  
标签:文件 编码 压缩 程序 算法 第六章 格式 弗曼 怎样

如何压缩文件
文件中储存数据的格式,文件是在磁盘等储存媒体中存储数据的一种形式。程序是以字节为单位向文件中存储数据的。文件的大小之所以表示为xxKB或xxMB等形式,就是出于这个原因。文件是字节数据的集合体。文件压缩的原理:就是用"字符x重复次数"来表示文件的内容.像这样将文件内容用“数据x重复次数”来表示的压缩方法称为流程编码。常用在传真的图像压缩等领域,但它并不适合用来压缩文本文件。一般的文章中很少有连续重复出现的字符,因为大部分字符后面会跟一个"1",文件大小自然会翻倍.第二种压缩方法称为哈弗曼算法。哈弗曼算法是大卫·哈弗曼于1952年提出的,ZIP格式也是使用哈弗曼算法来进行压缩的。要实现哈弗慢算法,压缩程序的内容会变得很复杂,但相应的压缩效率也会得到很大的提高。莫尔斯码的编码对象是英文字母,在一般的文本中出现频率越高的字母,其编码长度越短,这里的出现频率不是对出版物中的文章进行统计得出的结果,而是根据印刷厂所使用的活字个数来确定的。摩尔斯码规定,每两个字母之间需要有一个间隔,这里我们用00来表示这个间隔.莫尔斯码是根据字母在一般文本中的出现频率来确定他们的编码长度的。哈弗曼算法的要点是根据不同的压缩对象来构建最优的编码系统,并基于这一编码系统来进行压缩。哈夫曼算法使用哈弗慢树来构建编码系统,从而实现了不用分割符就能区分字符的编码系统。在使用哈弗曼树的情况下,即使每个字符的编码长度不同,不同的字符也能正确风分隔开来。哈弗曼树的构建方法,是先有末端的枝叶,最后形成根的。使用哈弗曼树就可以为出现频率较高的数据赋予长度较短的编码,并且可以准确判断字符之间的风分隔。最后来介绍一下图片文件的数据格式,使用图片文件的目的是将图像数据输入到显示器或打印机。有很多类型的图片文件格式,例如BMP格式、GPEG格式、GIF格式、PNG格式等。BMP之外的大多数图像数据格式采用了一定的方法对数据进行压缩。对于图片文件,我们可以使用与之前介绍的游程编码、哈夫曼算法不同的压缩方法,这是因为在大多数情况下,在质量方面,压缩后的图片文件没有必要和原来的完全相同。图片文件即使无法准确恢复到压缩前的状态,只要人眼感觉不到差异,就允许损失一些质量。能够恢复到压缩前状态的压缩方式,称为无损压缩,不能恢复到压缩前状态的压缩方式,称为有损压缩。JPEG格式的文件采用了有损压缩,GIF的格式的文件,虽然采用了无痕压缩但他最多只能储存储256种颜色,由此损失了一部分颜色信息,导致图像失真。PNG格式的文件采用了无损压缩,而且能够存储与BMP格式相同的数量颜色,因此图像能够保持原状。之所以存在这么多压缩方法,除了因为他们压缩率不同,还因为压缩所需要的处理时间(程度复杂度)以及适用于哪种文件有所不同。

标签:文件,编码,压缩,程序,算法,第六章,格式,弗曼,怎样
From: https://www.cnblogs.com/HYH16/p/18032789

相关文章

  • 程序是怎样跑起来的第一章读后感
    读过第一章后,第一章主要是程序是如何运行的这个问题涉及到计算机科学和软件工程领域的基本概念。第一章的大致内容的讲的为从功能⽅⾯来看,CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。程序是把寄存器作为对象来描述的(程序是由一系列指令组......
  • 第六章 压缩数据
    文件是将数据储存在磁盘等存储媒介中的一种形式,文件以字节为单位保存,程序文件中存储数据的单位是字节。RLE算法的机制:把文件内容用“数据*重复次数”的形式来表示的压缩方式称为RLE算法,然而在实际文本文件中,同样字符多次重复出现的情况并不多见,虽然针对相同数据经常连续出现的图像......
  • 《程序是怎样跑起来的》第七章读后感
    程序运行的环境包括两个主要方面:操作系统和硬件。操作系统决定了程序的运行环境,而硬件则提供必要的计算和存储资源。从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。不同的CPU能解释的机器语言的种类也是不同的。机器语言的程序称为本地代码。此外,有些程序会......
  • 《程序是怎样跑起来的》读后感——第十章
    读过前面的章节后,我们可以了解到在前面章节中已经多次提到,计算机CPU能直接解释运行的只有本地代码。用C语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。在各本地代码中,附带上表示其功能的英语单词缩写,这些缩写称为助记符,使用助记符的编程语言称为汇编语言。这样,通......
  • 《程序是怎样跑起来的》第二章读后感
    《程序是怎样跑起来的》第二章主要讲述了二进制,用二进制表示计算机信息的原因,什么是二进制数,移位运算和乘除运算的关系,便于计算机处理的“补数”,逻辑右移和算数右移的区别,掌握逻辑运算的窍门。了解信息在计算机内部是通过什么样的形式来表现的,又是通过什么样的方法进行运算的。只......
  • 《程序是怎样跑起来的》第一章读后感
    《程序是怎样跑起来的》第一章主要讲解了cpu是什么,cpu的内部结构,cpu是寄存器的集合体,cpu决定程序流程的程序计数器,条件分支和循环机制,函数等。CPU的内部是由寄存器,控制器,运算器和时钟四个部分构成,各部分之间的电流信号相互连通,时钟信号的频率越高,cpu的运行速度就越快。程序是由一......
  • 程序语言的真面目
    在汇编语言中,用来表示各个本机代码功能的英文缩写叫助记词。将汇编语言源代码转换成本机语言的过程叫汇编。将本机代码反过来转换成汇编语言的过程叫反汇编。汇编语言源文件的扩展名叫.asm和.s等。汇编语言的跳转指令是程序流程跳转到任意地址。在高级汇编语言的源代码中,指令和数......
  • 《程序是怎样跑起来的》第五章总结
    一,1,存储程序方式:程序要先存储在存储器中,然后才被依次读取执行。2,计算机中的存储器包括内存和磁盘,存储在磁盘中的程序要加载到内存才能运行。二,磁盘缓存:用于临时存放从磁盘读取出来的数据,可以提高磁盘数据的访问速度。三,虚拟内存:将磁盘的一部分模拟成内存来使用。磁盘缓存:将......
  • 《程序是怎样跑起来的》读后感——第九章
    首先,在简单回顾操作系统的历史的同时,我了解了操作系统到底是怎样的软件。在计算机中尚不存在操作系统的年代,程序员需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这一过程非常麻烦。基于此,就有人开发出了仅具有加载和运行功能的监控程序,这就是操作系......
  • 《程序是怎样跑起来的》第11章读书笔记
    第11章先提出了问题应用程序是否与硬件有关。操作系统还是为应用程序提供了间接访问硬件的方法,那就是使用系统调用在windows系统中系统调用也被称为API,每个AI都是一个能够被应用程序调用的函数,这些函数的本体位于dll文件中那么计算机主体上用于连接显示器键盘等外部设备的接口。这......