多媒体数据索引--四叉树
先来一张CS中各种树的全家福
这里讨论的是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:
- Grid (spatial index)
- Z-order (curve)
- Quadtree
- Octree
- UB-tree
- R-tree: Typically the preferred method for indexing spatial data.Objects (shapes, lines and points) are grouped using the minimum bounding rectangle(最小外包矩形MBR). Objects are added to an MBR within the index that will lead to the smallest increase in its size. R+ tree
- R* tree
- Hilbert R-tree
- X-tree
- kd-tree
- m-tree - an m-tree index can be used for the efficient resolution of similarity queries on complex objects as compared using an arbitrary metric.
四叉树(quad tree)是在数据库中放置和定位文件(称作记录或键)的方法。这一算法通过不停的把要查找的记录分成4部分来进行匹配查找直到仅剩下一条记录为止。
在一个四叉树中,每个内部结点对应于二维空间中的一个正方形区域,或是k维空间的k维立方体。我们主要考虑二维的情形。四叉树是在二维图片中定位像素的唯一适合的算法。因为二维空间(图经常被描述的方式)中,平面像素可以重复的被分为四部分。
四叉树用于二维信息压缩存储
点四元树
点四元树与四元树都有共同的特点,不过于次分区的中心总是在一点时、点四元树视为一真树(true tree)。树的形态根据编过序的数据而定。在比较二维规律数据点上是相当有效率的,经常运作在O(log n)的时间复杂度内。
最小外包矩形(MBR-Minimum Bounding Rectangle)
图元的形状是不规则的,而MBR是平行于X,Y轴的规则图形。如果所有的图元都是平行于X,Y轴的矩形,那针对这样的矩形进行几何上的任何判断,比原本复杂的图形几何运算要简单很多。
过滤阶段,通过空间索引可以排除掉一些明显不符合条件的图元,得到后选集合,然后对后选图元集合进行精确几何运算,得到最终结果。
没有空间索引,我们无疑要对集合中的每个图元进行精确几何运算,而这样的运算是复杂的,是非常占用CPU的,所以需要空间索引,采取少量的内存和简单的CUP运算,来尽量减少那种高耗CUP的精确运算的次数。