多媒体数据索引--四叉树

先来一张CS中各种树的全家福

image

image

这里讨论的是Spatial index

Spatial index

Spatial indices使用于spatial databases (databases which store information related to objects in space)用以优化spatial queries.

许多传统(conventional) index类型不能有效处理一些特征,比如说how far two points differ或者whether points fall within a spatial area of interest.

Common spatial index methods include:

四叉树(quad tree)是在数据库中放置和定位文件(称作记录或键)的方法。这一算法通过不停的把要查找的记录分成4部分来进行匹配查找直到仅剩下一条记录为止。

在一个四叉树中,每个内部结点对应于二维空间中的一个正方形区域,或是k维空间的k维立方体。我们主要考虑二维的情形。四叉树是在二维图片中定位像素的唯一适合的算法。因为二维空间(图经常被描述的方式)中,平面像素可以重复的被分为四部分。

Bitmap and its compressed quadtree representation

四叉树用于二维信息压缩存储

 

点四元树

点四元树与四元树都有共同的特点,不过于次分区的中心总是在一点时、点四元树视为一真树(true tree)。树的形态根据编过序的数据而定。在比较二维规律数据点上是相当有效率的,经常运作在O(log n)时间复杂度内。

 

最小外包矩形(MBR-Minimum Bounding Rectangle)

图元的形状是不规则的,而MBR是平行于X,Y轴的规则图形。如果所有的图元都是平行于X,Y轴的矩形,那针对这样的矩形进行几何上的任何判断,比原本复杂的图形几何运算要简单很多。

过滤阶段,通过空间索引可以排除掉一些明显不符合条件的图元,得到后选集合,然后对后选图元集合进行精确几何运算,得到最终结果。

没有空间索引,我们无疑要对集合中的每个图元进行精确几何运算,而这样的运算是复杂的,是非常占用CPU的,所以需要空间索引,采取少量的内存和简单的CUP运算,来尽量减少那种高耗CUP的精确运算的次数。

posted on 2012-12-03 21:58  小唯THU  阅读(694)  评论(0编辑  收藏  举报

导航