论文部分内容阅读
现今我们正处于一个信息速增的时代,每日有数以PB计的数据在网络上传输与处理。然而,在这些数据中,除了传统的文本数据之外,图片和视频等多媒体数据也受到越来越多用户的青睐。面对急速增长的多媒体数据,如何对其进行有效地管理和检索变得越来越为重要。对于基于图像/视频内容本身的检索和过滤系统来说,SIFT(Scale Invariant Feature Transform)和SURF(Speedup Up Robust Features)算法,作为两种最为常用的图像特征提取算法,是这些系统应用的核心算法之一。然而,这两种图像特征提取算法的处理速度相当有限,对一个普通单核CPU来说,一秒钟只能处理不到3张的图片。这样的处理速度使得这些算法在海量数据的系统中无法满足用户的实时需求,从而不能投诸实际。因此,如何提高图像特征提取算法的处理速度成为了研究的重点。多核体系结构的普及与发展为加速这类算法提供了一个有效的途径。本文针对图像特征提取算法,首先对其做了系统全面的并行性分析。我们发现算法中工作量的不平衡是影响之前并行算法性能的主要原因。为了减轻工作量不平衡的影响,我们设计并实现了一种新的并行算法——动态流水线的算法,来提高SIFT和SURF这两种图像特征提取算法的处理速度。该并行算法将根据工作量,把不同的计算过程放到流水线的不同阶段中去,以此来减少每个阶段中工作量不平衡的问题。而所谓的动态流水线是指算法能够根据流水线各阶段的工作量,动态地更改每个阶段所占用的计算资源个数(线程数)。该并行算法能高效处理图片数据,并具有较好的可扩展性。实验数据表明,在16核机器上,SIFT和SURF算法分别获得了16.88倍和20.33倍的加速,即30帧/秒和52帧/秒的处理速度,基本符合实时的处理需求。在不影响检索正确性的情况下,我们发现SURF算法无论是从本身的处理速度上来看,还是从多核体系结构上的加速比来看,都比SIFT算法更适用于海量数据的图像检索。