com.supermap.data

类 EncodeType



  • public class EncodeType
    extends Enum
    该类定义了数据集存储时的压缩编码方式类型常量。

    对矢量数据集,支持四种压缩编码方式,即单字节,双字节,三字节和四字节编码方式,这四种压缩编码方式采用相同的压缩编码机制,但是压缩的比率不同。其均为有损压缩。需要注意的是点数据集、纯属性数据集以及 CAD 数据集不可压缩编码。对光栅数据,可以采用三种压缩编码方式,即 DCT、SGL 和 LZW。其中 DCT 为有损压缩编码方式,SGL 和 LZW 为无损压缩编码方式。

    对矢量的压缩编码方式,以线数据集的单字节编码为例,说明其压缩编码的机制。

    假设未压缩的线数据集的空间数据是以双精度数据类型存储的,现使用单字节压缩编码方式对其进行压缩存储。

    如图所示为线数据集中的一个对象,其最小外接矩形的宽度为 Width,高度为 Height,则用单字节编码进行压缩的比率为:

    ratio = max(Width,Height)/255

    其中255是单字节所能表示的最大数值。设线对象的左下角点的坐标为(x0,y0),则对于线对象上的某个点(x,y),其编码后的坐标为:

    x’=byte[(x-x0)/ratio]

    y’=byte[(y-y0)/ratio]

    因而编码之后的点的坐标以字节型数据类型存储,则数据集的存储空间为未编码时存储空间的1/8。显然在将双精度(8Byte) 类型编码成字节(1Byte) 类型时,精度是有损失的。对于坐标值来说,最大精度损失值为 ratio。对于其他矢量压缩编码方式,其原理一样,压缩后坐标精度的最大损失为

    ratio = max(Width, Height)/ maxValue

    其中,Width 和 Height 为几何对象的最小外接矩形的宽度和高度,maxValue 为编码方式的数据类型所能表示的数值的最大值(单字节编码最大值为255,双字节编码最大值为65535,三字节编码最大值为16777215,四字节编码最大值为4294967295)。

    • 字段详细资料

      • NONE

        public static final EncodeType NONE
        不使用编码方式。
      • BYTE

        public static final EncodeType BYTE
        单字节编码方式。使用1个字节存储一个坐标值。(适用于矢量数据,但不适用于点数据集和纯属性数据集)
      • INT16

        public static final EncodeType INT16
        双字节编码方式。使用2个字节存储一个坐标值。(适用于矢量数据,但不适用于点数据集和纯属性数据集)
      • INT24

        public static final EncodeType INT24
        三字节编码方式。使用3个字节存储一个坐标值。(适用于矢量数据,但不适用于点数据集和纯属性数据集)
      • INT32

        public static final EncodeType INT32
        四字节编码方式。使用4个字节存储一个坐标值。(适用于矢量数据,但不适用于点数据集和纯属性数据集)
      • DCT

        public static final EncodeType DCT
        DCT(Discrete Cosine Transform),离散余弦编码。是一种广泛应用于图像压缩中的变换编码方法,这种变换方法在信息的压缩能力、重构图像质量、适应范围和算法复杂性等方面之间提供了一种很好的平衡,成为目前应用最广泛的图像压缩技术。其原理是通过变换降低图像原始空间域表示中存在的非常强的相关性,使信号更紧凑地表达。该方法有很高的压缩率和性能,但编码是有失真的。由于影像数据集一般不用来进行精确的分析,所以 DCT 编码方式是影像数据集存储的压缩编码方式。(适用于影像数据)
      • SGL

        public static final EncodeType SGL
        SGL(SuperMap Grid LZW),SuperMap 自定义的一种压缩存储格式。其实质是改进的 LZW 编码方式。SGL 对 LZW 进行了改进,是一种更高效的压缩存储方式。目前 SuperMap 中的对 Grid 数据集和 DEM 数据集压缩存储采用的就是 SGL 的压缩编码方式,这是一种无损压缩。(适用于栅格数据)
      • LZW

        public static final EncodeType LZW
        LZW 是一种广泛采用的字典压缩方法,其最早是用在文字数据的压缩方面。LZW的编码的原理是用代号来取代一段字符串,后续的相同的字符串就使用相同代号,所以该编码方式不仅可以对重复数据起到压缩作用,还可以对不重复数据进行压缩操作。适用于索引色影像的压缩方式,这是一种无损压缩编码方式。(适用于栅格和影像数据)