精华内容
下载资源
问答
  • 数据压缩方法概述

    千次阅读 2013-03-25 10:15:04
    一、 行程长度压缩  原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替... 1.PCX行程压缩方法: 该算法实际上是位映射格式到压缩格式的转换算法,该算法对于连续出现1次的字节Ch,若Ch

    一、 行程长度压缩
      原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。对于拥有大面积,相同颜色区域的图像,用RLE压缩方法非常有效。由RLE原理派生出许多具体行程压缩方法:
      1.PCX行程压缩方法: 该算法实际上是位映射格式到压缩格式的转换算法,该算法对于连续出现1次的字节Ch,若Ch>0xc0则压缩时在该字节前加上0xc1,否则直接输出Ch,对于连续出现N 次的字节Ch,则压缩成0xc0+N,Ch这两个字节,因而N最大只能为ff-c0=3fh(十进制为63),当N大于63时, 则需分多次压缩。
      2.BI_RLE8压缩方法:在WINDOWS的位图文件中采用了这种压缩方法。该压缩方法编码也是以两个字节为基本单位。其中第一个字节规定了用第二个字节指定的颜色重复次数。 如编码 0504表示从当前位置开始连续显示5个颜色值为04的像素。当第二个字节为零时第二个字节有特殊含义:0表示行末;1表示图末;2转义后面2个字节, 这两个字节分别表示下一像素相对于当前位置的水平位移和垂直位移。这种压缩方法所能压缩的图像像素位数最大为8位(256色)图像。
      3.BI_RLE压缩方法: 该方法也用于WINDOWS位图文件中,它与 BI_RLE8编码类似,唯一不同是:BI_RLE4的一个字节包含了两个像素的颜色,因此,它只能压缩的颜色数不超过16的图像。因而这种压缩应用范围有限。
      4.紧缩位压缩方法(Packbits):该方法是用于Apple公司的Macintosh机上的位图数据压缩 方法, TIFF 规范中使用了这种方法, 这种压缩方法与BI_RLE8压缩方法相似,如1c1c1c2132325648 压缩为:83 1c 21 81 32 56 48,显而易见, 这种压缩方法最好情况是每连续128个字节相同,这128个字节可压缩为一个数值7f。这种方法还是非常有效的。

    二、霍夫曼编码压缩:
      也是一种常用的压缩方法。是1952年为文本文件建立的,其基本原理是频繁使用的数据用较短的代码代替,很少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。如: 有一个原始数据序列,ABACCDAA则编码为A(0),B(10),C(110),(D111),压缩后为010011011011100。产生霍夫曼编码需要对原始数据扫描两遍,第一遍扫描要精确地统计出原始数据中的每个值出现的频率,第二遍是建立霍夫曼树并进行编码,由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢,但简单有效,因而得到广泛的应用。
    哈夫曼编码是无损压缩当中最好的方法。它使用预先二进制描述来替换每个符号,长度由特殊符号出现的频率决定。常见的符号需要很少的位来表示,而不常见的符号需要很多为来表示。
    哈夫曼算法在改变任何符号二进制编码引起少量密集表现方面是最佳的。然而,它并不处理符号的顺序和重复或序号的序列。


    三、LZW压缩方法
      LZW压缩技术比其它大多数压缩技术都复杂, 压缩效率也较高。其基本原理是把每一个第一次出现的字符串用一个数值来编码,在还原程序中再将这个数值还成原来的字符 串,如用数值0x100代替字符串"abccddeee"这样每当出现该字符串时,都用0x100代替,起到了压缩的作用。 至于0x100与字符串的对应关系则是在压缩过程中动态生成的,而且这种对应关系是隐含在压缩数据中,随着解压缩的进行这张编码表会从压缩数据中逐步得到恢复,后面的压缩数据再根据前面数据产生的对应关系产生更多的对应关系。直到压缩文件结束为止。LZW是可逆的, 所有信息全部保留。
    属于无损压缩编码,该编码主要用于图像数据的压缩(如GIF)。对于简单图像和平滑且噪声小的信号源具有较高的压缩比,并且有较高的压缩和解压缩速度。
    LZW压缩技术把数据流中复杂的数据用简单的代码来表示,并把代码和数据的对应关系建立一个转换表,又叫“字符串表”。
         转换表是在压缩或解压缩过程中动态生成的表,该表只在进行压缩或解压缩过程中需要,一旦压缩和解压缩结束,该表将不再起任何作用。

    四、算术压缩方法
      算术压缩与霍夫曼编码压缩方法类似,只不过它比霍夫曼编码更加有效。算术压缩适合于由相同的重复序列组成的文件,算术压缩接近压缩的理论极限。这种方法,是将不同的序列映像到0到1之间的区域内,该区域表示成可变精度(位数 )的二进制小数,越不常见的数据要的精度越高(更多的位数),这种方法比较复杂,因而不太常用。


    五、Rice
    对于由大word(例如:16或32位)组成的数据和教低的数据值,Rice编码能够获得较好的压缩比。音频和高动态变化的图像都是这种类型的数据,它们被某种预言预处理过(例如delta相邻的采样)。

    尽管哈夫曼编码处理这种数据是最优的,却由于几个原因而不适合处理这种数据(例如:32位大小要求16GB的柱状图缓冲区来进行哈夫曼树编码)。因此一个比较动态的方式更适合由大word组成的数据。
    Rice编码背后的基本思想是尽可能的用较少的位来存储多个字(正像使用哈夫曼编码一样)。实际上,有人可能想到Rice是静态的哈夫曼编码(例如,编码不是由实际数据内容的统计信息决定,而是由小的值比高的值常见的假定决定)。

    编码非常简单:将值X用X个‘1’位之后跟一个0位来表示。

    六、Lempel-Ziv (LZ77)
    Lempel-Ziv压缩模式有许多不同的变量。基本压缩库有清晰的LZ77算法的实现(Lempel-Ziv,1977),执行的很好,源代码也非常容易理解。

    LZ编码器能用来通用目标的压缩,特别对于文本执行的很好。它也在RLE和哈夫曼编码器(RLE,LZ,哈夫曼)中使用来大多数情况下获得更多的压缩。
    在LZ压缩算法的背后是使用RLE算法用先前出现的相同字节序列的引用来替代。

    简单的讲,LZ算法被认为是字符串匹配的算法。例如:在一段文本中某字符串经常出现,并且可以通过前面文本中出现的字符串指针来表示。当然这个想法的前提是指针应该比字符串本身要短。

    例如,在上一段短语“字符串”经常出现,可以将除第一个字符串之外的所有用第一个字符串引用来表示从而节省一些空间。

    一个字符串引用通过下面的方式来表示:

    1.  唯一的标记

    2.  偏移数量

    3.  字符串长度

    由编码的模式决定引用是一个固定的或变动的长度。后面的情况经常是首选,因为它允许编码器用引用的大小来交换字符串的大小(例如,如果字符串相当长,增加引用的长度可能是值得的)。

     (转) LZ77算法是由 Lempel-Ziv 在1977发明的,也是GBA内置的压缩算法。LZ77算法有许多派生算法(这里面包括 LZSS算法)。它们的算法原理上基本都相同,无论是哪种派生算法,LZ77算法总会包含一个动态窗口(Sliding Window)和一个预读缓冲器(Read Ahead Buffer)。动态窗口是个历史缓冲器,它被用来存放输入流的前n个字节的有关信息。一个动态窗口的数据范围可以从 0K 到 64K,而LZSS算法使用了一个4K的动态窗口。预读缓冲器是与动态窗口相对应的,它被用来存放输入流的前n个字节,预读缓冲器的大小通常在0 – 258 之间。这个算法就是基于这些建立的。用下n个字节填充预读缓存器(这里的n是预读缓存器的大小)。在动态窗口中寻找与预读缓冲器中的最匹配的数据,如果匹 配的数据长度大于最小匹配长度 (通常取决于编码器,以及动态窗口的大小,比如一个4K的动态窗口,它的最小匹配长度就是2),那么就输出一对〈长度(length),距离 (distance)〉数组。长度(length)是匹配的数据长度,而距离(distance)说明了在输入流中向后多少字节这个匹配数据可以被找到。

      例如:(假设一个 10个字节的动态窗口, 以及一个5个字节的预读缓冲器)
    文本:A A A A A A A A A A A B A B A A A A A
    --------------------- =========
    动态窗口 预读缓存器
    动 态窗口中包含10个A ,这就是最后读取的10个字节。预读缓冲器包含了 B A B A A。编码的第一步就是寻找动态窗口与预读缓存器相似长度大于2的字节部分。在动态窗口中找不到B A B A A,所以B就被按照字面输出。然后动态窗口滑过1个字节,现在暂时输出了一个B。
    第二步:A A A A A A A A A A A B A B A A A A A
    --------------------- =========
    动态窗口 预读缓存器
    现 在预读缓冲器包含A B A A A,然后再和动态窗口进行比较。这时,在动态窗口找到了相似长度为2的A B,因此一对〈长度, 距离〉就被输出了。长度(length)是2 并且向后距离也是2,所以输出为<2,2>,然后动态窗口滑过2个字节。现在已经输出了B <2,2>。
    第三步:A A A A A A A A A A A B A B A A A A A
    --------------------- =========
    动态窗口 预读缓存器
    继续上面的方法得到输出结果<5,8>。现在已经输出了B <2,2> <5,8>。
    最终的编码结果是:A A A A A A A A A A A B <2,2> <5,8>。
    但 数组是无法直接用二进制来表示的,LZ77会把编码每八个数分成一组,每组前用一个前缀标示来说明这八个数的属性。比如数据流:A B A C A C B A C A按照LZ77的算法编码为:A B A C<2,2> <4,5>,刚好八个数。按照LZ77的规则,用“0”表示原文输出,“1”表示数组输出。所以这段编码就表示为:00001111B(等于 0FH),因此得到完整的压缩编码表示:F A B A C 2 2 4 5。虽然表面上只缩短了1个字节的空间,但当数据流很长的时候就会突出它的优势,这种算法在zip格式中是经常用到。

     


    七、DEFLATE是同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。它最初是由Phil Katz为他的PKZIP归档工具第二版所定义的,后来定义在RFC 1951规范中。

    人们普遍认为DEFLATE不受任何专利所制约,并且在LZW(GIF文件格式使用)相关的专利失效之前,这种格式除了在ZIP文件格式中得到应用之外也在gzip压缩文件以及PNG图像文件中得到了应用。

    DEFLATE压缩与解压的源代码可以在自由、通用的压缩库zlib上找到。

    更高压缩率的DEFLATE是7-zip所实现的。AdvanceCOMP也使用这种实现,它可以对gzip、PNG、MNG以及ZIP文件进行压缩从而得到比zlib更小的文件大小。在Ken Silverman的KZIP与PNGOUT中使用了一种更加高效同时要求更多用户输入的DEFLATE程序。

    PS:见维基百科http://zh.wikipedia.org/zh/DEFLATE

     

     出处:http://www.cnblogs.com/shtianhai/archive/2010/11/30/1892269.html

    展开全文
  • 常见数据压缩方法

    千次阅读 2013-03-07 09:16:28
    数据压缩方法   无损数据压缩 理论 熵 · 复杂性 · 信息冗余 · 有损数据压缩   熵编码法 香农-范诺编码 · Shannon–Fano–Elias · 霍夫曼编码...
    展开全文
  • 栅格数据压缩概念方法

    千次阅读 2020-04-26 19:25:36
    1. 游程编码 2.链式编码结构 2.链式编码结构 3.块状编码压缩 4.四叉树编码 反解

    在这里插入图片描述

    1. 游程编码

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.链式编码结构

    2.链式编码结构
    在这里插入图片描述

    3.块状编码压缩

    在这里插入图片描述

    4.四叉树编码

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    反解

    在这里插入图片描述

    展开全文
  • 多种矢量数据压缩方法

    千次阅读 2009-05-19 23:32:00
    矢量数据压缩算法是比较常用的一个GIS数据处理方法,对于此,本程序提供了常见的道格拉斯算法,光栏法,垂距法等压缩算法。编译环境:VS2005 C#运行环境要求:.NET FrameWork 2.0数据来源:一段公开的格网数据更多...

    矢量数据压缩算法是比较常用的一个GIS数据处理方法,对于此,本程序提供了常见的道格拉斯算法,光栏法,垂距法等压缩算法。

    编译环境:VS2005 C#

    运行环境要求:.NET FrameWork 2.0

    数据来源:一段公开的格网数据

    更多有偿技术支持:请联系作者:GISExpert,邮箱号:gisexpert@sina.com

    展开全文
  • 数据压缩知识点整理

    千次阅读 2017-04-27 16:57:20
    数据压缩 是指在不丢失有用信息的前提下, 缩减数据量 以减少存储空间, 提高传输、存储和处理效率, 或按照一定的算法对数据进行重新组织, 减少数据的冗余和存储的空间的一种技术.
  • 数据压缩编码方法

    千次阅读 2016-12-18 12:08:20
    经典的数据压缩算法 三大类:预测编码、变换编码、统计编码 常用的解除相关性的措施是预测和变换,其实质都是进行序列的映射。 一般,预测编码有可能完全解除序列的相关性,但须确知序列的概率特性;变换编码一般...
  • 传入数据压缩request(前台后台统一压缩方式后台进行解压): 配置压缩数据生效: 传回数据压缩Response: package com.pds.report.core.config.mvc; import javax.servlet.*; import javax.servlet....
  • 深入解析数据压缩算法

    万次阅读 多人点赞 2018-05-06 10:30:45
    1、为什么要做数据压缩? 数据压缩的主要目的还是减少数据传输或者转移过程中的数据量。2、什么是数据压缩? 是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高传输、存储和处理效率的一种技术方法。或者...
  • 数据压缩的历史、原理及常用算法

    万次阅读 2017-05-24 14:58:26
    数据压缩的概念相当古老,可以追溯到发明了摩尔斯码的19世纪中期。摩尔斯码的发明,是为了使电报员能够通过电报系统,利用一系列可听到的脉冲信号传递字母信息,从而实现文字消息的传输。摩尔斯码的发明者意识到,...
  • 作为GISer,处理空间数据才是主要任务,矢量数据压缩这一块要学习学习。 这里矢量数据压缩是指线的数据压缩,意思是假如某根线有n个点,现在如果删除一些点,这条线仍然性质良好,那么就实现了压缩,那么下面的算法...
  • 点云数据压缩 G-PCC综述

    千次阅读 2019-12-23 09:49:58
    用激光雷达或者摄像机矩阵将一个三维物体直接数字化,变成一个点的数据。每一个点会包括它的位置x、y、z和其他信息包括r、g、b和色彩信息y、u、v等,这样的描述方式我们称之为点云。 点云数据结构包括: 位置...
  • 矢量数据压缩

    千次阅读 2013-11-28 19:45:59
    1矢量数据压缩的几种常用算法 目前,矢量曲线数据压缩算法主要有:垂距限制法、角度限制法141、道格拉斯一普克法、基于自然规律的宏 观综合法,以及黄培之1995年...
  • 第七章数据压缩技术

    千次阅读 2016-04-30 10:13:26
    第七章 数据压缩技术 转自:http://www.dataguru.cn/article-3856-1.html     本章导读 前面的章节已经介绍了海量数据的存储、查询、分区、容错等技术,这些技术对于海量数据的处理是必不可少的,但要进一步...
  • 生成tar包后,就可以用其它的程序来进行压缩了,tar命令本身不进行数据压缩,但可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2 选项: -c 创建.tar格式包文件 -x 解开.tar格式包文件 -v显示详细...
  • 数据压缩的两种方法

    千次阅读 2018-12-15 15:09:07
    将整型数据存在字节里面 参考了 http://www.cnblogs.com/chencheng/archive/2012/07/01/2572251.html     方法二: 对二进制码流进行压缩 举例:000011111000111111 压缩后:40513061 (4个0 - 5个1 - 3个0...
  • 数据压缩原理与应用

    热门讨论 2013-10-07 08:37:58
    数据压缩是现代计算最重要的领域和工具之一。... 本书为所有的计算机科学家、计算机工程师、电气工程师、信号/图像处理工程师,以及其他需要一部压缩方法大全的科学家们,提供了一本十分宝贵的参考和指南。
  • 图像的基本有损压缩和无损压缩及解压

    万次阅读 多人点赞 2016-11-17 20:12:27
    关键词:5-5-5,5-6-5,游长编码优化,图像压缩、解压 背景有损量化这里介绍从8-8-8到5-5-5和5-6-5的量化压缩原理及其编程实现。无损压缩这里基于游长编码算法(利用像素的重复)...这种方法简单高效,但适应性差,主要利
  • 大数据常用压缩方式对比

    千次阅读 2019-06-15 18:30:20
    1. 压缩的好处和坏处 好处 减少存储磁盘空间 降低IO(网络的IO和磁盘的IO) 加快数据在磁盘和网络中的传输速度,从而提高系统的处理速度 坏处 由于使用数据时,需要先将数据解压,加重CPU负荷 2. 压缩格式 压缩比 ...
  • 压缩感知原理简介

    万次阅读 多人点赞 2019-07-15 21:51:23
    压缩感知,compressed sensing又称compressed sampling,是在采样过程中完成了数据压缩的过程。 压缩感知在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。 信号采样 学过通信原理或信号与系统的都...
  • 数据压缩】JPEG标准与原理解析

    万次阅读 2015-12-24 19:26:49
    为了满足不同应用的需求,JPEG标准包括两种基本的压缩方法:1.基于DCT变换的有损压缩算法;2.基于预测方法的无损压缩算法。基于DCT的基线系统有损压缩技术是到目前为止应用最为广泛的一种压缩方法。 1.基于DCT有损...
  • 浅析数据压缩算法

    千次阅读 2017-05-17 15:51:17
    数据压缩是减少信息传输量最经济直接的办法,所以这篇文章将讲解一些经典的数据压缩算法。 一 热身:基因组 对于生物学的基因研究中,A、C、T、G是是用来表示生物DNA的四种碱基,对基因序列的处理实际上是对这四种...
  • json数据压缩

    千次阅读 2020-07-24 15:40:18
    默认的json数据是带有换行的,所以最简单的压缩方法是将json中的回车换行去掉,压缩成一行字符串。 测试:找了一个大的json字符串,原始大小为1.1m,去掉回车换行压缩成一行后,大小变为了360k。 在线压缩工具:...
  • HBase数据压缩方式的介绍与实战

    千次阅读 2019-09-20 19:20:17
    1、HBase数据压缩方式的介绍 为了提高HBase存储的利用率,很多HBase使用者会对 HBase 表中的数据进行压缩。目前 HBase 可以支持的压缩方式有 GZ(GZIP)、LZO、LZ4 以及 Snappy。它们之间的区别如下: GZ:用于冷...
  • 高级数据库十二:数据库压缩

    千次阅读 2017-12-28 12:32:24
    所以需要对数据进行压缩。 内存中的数据库管理系统比较复杂。压缩数据库降低了DRAM的性能要求和处理时间。DRAM不仅价格贵,而且在运行且维护的代价也非常大。 关键在于如何平衡速度和压缩率之间的关系。在内存...
  • 数据压缩的历史、常用算法原理

    万次阅读 2019-05-28 14:58:13
    数据压缩的概念相当古老,可以追溯到发明了摩尔斯码的19世纪中期。 摩尔斯码的发明,是为了使电报员能够通过电报系统,利用一系列可听到的脉冲信号传递字母信息,从而实现文字消息的传输。摩尔斯码的发明者意识到,...
  • iOS gzip压缩数据

    2014-12-18 10:05:35
    使用改方法需要倒入asi框架,一个简单的gzip数据压缩工具类
  • 光栏法是一种矢量数据压缩算法。光栏法的基本思路是对每一条曲线上的所有点, 逐点定义一个扇形区域。若曲线的下一节点在扇形外, 则保留当前节点; 若曲线的下一节点在扇形内, 则舍去当前节点。 说明: 光栏法与...
  • 数据压缩算法该如何选择?

    万次阅读 热门讨论 2021-05-05 13:01:33
    写在前面 ...为了优化存储(减少存储空间)和充分利用网络带宽,通常采用压缩方法。大数据需要处理海量数据,此时数据压缩非常重要。 在企业中存在的许多场景中,通常,数据源来自多种文本格式(CSV、TS
  • Http协议实现数据压缩

    千次阅读 2011-09-08 17:11:10
    ... import java.io.ByteArrayOutputStream; import java.io.IOException;...import java.util.zip....如果看到的压缩后的数据大小比压缩前的数据大的话,说明被压缩数据太小,实际上需要压缩数据是非常大的。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 526,430
精华内容 210,572
关键字:

数据压缩方法