当前位置:课程学习>>第四章 栅格数据模型>>学习内容>>知识点六


知识点六:栅格数据的压缩和编码


视频学习资源下载

○ 教师讲解

我们通过上述视频深入了解了栅格数据的压缩和编码。现在我们来进行归纳总结:

栅格数据的编码分为两种:直接栅格编码和栅格压缩编码。

直接栅格编码:将栅格数据看做一个数据矩阵, 逐行(或逐列)记录代码,可以每行都从左到右记录,也可以奇数行从左到右、偶数行从右到左记录。如图4-11所示的栅格数据可存储记录为:AAAAABBBAABBAABB。

图4-11 直接栅格编码示例

这种记录栅格数据的文件常称为栅格文件,且常在文件头中存有该栅格数据的长宽,即行数和列数以及两方向的密度。这样,具体的像元值就可连续存储了。其特点是处理方便, 但没有压缩。

栅格压缩编码:分辨率的提高和数据量之间呈平方指数关系。如果精度越大、分辨率大,数据量就越大。为了减少数据量,产生了多种压缩存储量的数据结构。通过某种编码的方法,达到减少数据长度的目的。

一、链式编码(chain codes):链式编码又称为弗里曼链码(Freeman)或边界链码。该编码方法将数据表示为由某一原点开始并按某些基本方向确定的单位矢量链。基本方向可定义为:东=0,东南=1,南=2,西南=3,西=4,西北=5,北=6,东北=7 等八个基本方向(图4-12)。

图4-12 链式编码示意图

二、游程长度编码(Run-Length Encoding):也称为行程编码,其基本思想是:按行扫描,将相邻等值的像元合并,并记录代码的重复个数。将每行中具有相同属性值的连续像元映射为一个游程,每个游程的数据结构为(A,P),A表示属性值,P代表该游程最右端的列号或个数。如图4-13编码所示。

图4-13 游程编码示意图

三、四叉树编码(Quad tree Encoding):四叉树是一种可变分辨率的非均匀网格系统。其基本思想是:将一幅栅格数据层或图像等分为四部分,逐块检查其格网属性值(或灰度);如果某个子区的所有格网值都具有相同的值,则这个子区就不再继续分割,否则还要把这个子区再分割成四个子区。这样依次地分割,直到每个子块都只含有相同的属性值或灰度为止。

图4-14 四叉树编码示意图

四叉树结构按其编码的方法不同分为常规四叉树和线性四叉树:

四、其他编码:还有很多编码方法,如傅立叶变换、小波变换、余弦变换等,常常用于遥感原始数据的压缩。由于它们多数是有损压缩,一般不用于需要进行分析的栅格数据。在四叉树基础上发展而来的八叉树目前也是研究热点之一。

接下来我们进入学以致用。