zoukankan      html  css  js  c++  java
  • 程序是怎样跑起来的 第六章

    讲文件的压缩机制。先了解一下保存在文件中的数据形式,文件是将数据存储在磁盘等存储媒介中的一种形式。说白了就是字节数据的集合。如果数据是文字,这个文件就是文本文件,是图形就是图像文件,但是文件的字节数据都是连续存储的。现在看一下压缩机制,第一种是 RLE算法。就是将文件的内容用“字符*重复次数”的形式压缩。比如“aaaaaabbcddeeeeef”这个数据,它就可以用“a6b2c1d2e5f1”来表示。但是,在文本文件中,同样字符多次 重复出现的情况不多见,它不适合文本文件的压缩,只适合相同数据经常连续出现的图像、文件。第二种是哈夫曼算法。它是“多次出现的数据用小于8位的字节数表示,不常用的数据用超过8位的字节数表示。”在这个算法中,只要掌握了哈夫曼树的制作方法,并用程序完成,就可以用这个算法实现文件压缩了。哈夫曼树是从叶生枝,然后再生根。步骤是:1 列出数据和它出现的次数 2 选择两个次数最少的数字。拉出两条线,在交叉的地方写出两个数字的和 (有多个选项时,任意选取)3 重复  2  4 最终这些数字汇集到一个点上,它就是根。从根到底部的枝子这个顺序,左边枝子写0,右边写1,按照顺序写下来。就是哈夫曼编码。这个算法能够大幅提升压缩比率。最后讲了可逆压缩(能还原到原状态的压缩)和非可逆压缩(不能--)。jpg格式的文件是非可逆,还原后的信息有一部分是模糊的,gif文件是可逆的,但有色数限制,所以还原后也会图像模糊。

  • 相关阅读:
    334 Increasing Triplet Subsequence 递增的三元子序列
    332 Reconstruct Itinerary 重建行程单
    331 Verify Preorder Serialization of a Binary Tree 验证二叉树的前序序列化
    330 Patching Array
    329 Longest Increasing Path in a Matrix 矩阵中的最长递增路径
    328 Odd Even Linked List 奇偶链表
    327 Count of Range Sum 区间和计数
    326 Power of Three 3的幂
    Java中的Class.forName
    巧用Java中Calendar工具类
  • 原文地址:https://www.cnblogs.com/hzusbjxg/p/10617944.html
Copyright © 2011-2022 走看看