运动搜索算法之钻石搜索
来源:互联网 发布:马蓉宋哲 知乎 编辑:程序博客网 时间:2024/04/28 20:04
前言
很多年前写的老文章,备份之:DS算法是在运动搜索中使用最为广泛的搜索算法之一,有的地方被翻译成钻石搜索,菱形搜索。不管是硬件还是软件的视频编码器中,都可以看到它的存在。下面文章的内容主要从学报上摘录,希望给视频算法的新手们有些许帮助。
原理
通常,运动矢量总是高度集中在搜索窗口的中心附近。这对于物体作缓慢运动的视频序列来说更加明显,因为静止块和缓慢运动块占主导地位。运动矢量的中心偏移特性提示了在窗口内不用对所有的点进行搜索,只需要对窗口中心附近的那些点进行搜索就能快速搜索到最佳匹配块。因此,搜索模板都是以窗口中心为中心对称的,其形状和大小共同决定了搜索的速度和性能。
图表 1 (LDSP and SDSP)
DS算法用到两个模板,如图表 1 (LDSP and SDSP)所示。左边所示的模板称为大钻石搜索模板(LDSP);右边所示的模板称为小钻石搜索模板(SDSP)。在DS算法中,先反复使用LDSP进行搜索,直到本次搜索误差最小的那个点出现在模板的中心,接着就以这个最小误差点为中心,以SDSP为新的搜索模板进行最后一轮搜索,并将最后一轮搜索中误差最小的那个点作为最佳匹配点。在运用钻石算法的时候,要注意下面三点:
- 所有的搜索点必须在搜索窗口内,当待搜索的点超过窗口的边界时,算法将不采用这些点。
- 在连续使用LDSP模板进行搜索时,待搜索的点有部分重叠。若用前一个LDSP模板搜索得到的最小误差点位于LDSP的4个角之一时,则下一个搜索只需要在LDSP剩下的5个点进行;若出现在LDSP边上的中点,只需要在LDSP剩下的3个点进行搜索。这样就大大减少了搜索点数,从而大大提高搜索速度。
- 算法中并没有限制使用LDSP搜索的次数,这样可能会因等待最小误差点出现在模板的中心而使搜索次数大大增加。在这样的情况下,可以采用设置合适的搜索边框来强制搜索结束。
- 运动搜索算法之钻石搜索
- 运动目标跟踪(三)--搜索算法优化搜索方向之Meanshift
- 运动目标跟踪(四)--搜索算法优化搜索方向之Camshift
- x264运动估计六边形搜索算法分析
- JMVC 运动估计之螺旋搜索
- 运动目标跟踪(一)--搜索算法预测模型之KF,EKF,UKF
- 运动目标跟踪(二)--搜索算法预测模型之粒子滤波
- 运动目标跟踪(五)--搜索算法预测模型之PF,KF,EKF,UKF比较总结
- 运动目标跟踪(一)--搜索算法预测模型之KF,EKF,UKF
- 运动目标跟踪(一)--搜索算法预测模型之KF,EKF,UKF
- 运动目标跟踪(二)--搜索算法预测模型之粒子滤波
- 搜索算法之总结
- 算法之穷竭搜索
- 搜索算法之二分法
- 搜索算法之二分法
- 字符串搜索之蛮力搜索算法
- 搜索算法之回溯讲解
- 算法之二分搜索法
- DbUtils学习
- 关于c++的explicit关键字(有空译成中文)
- 关于double类型保留小数的问题收藏
- 路由器如何屏蔽路由功能
- eval的用法收藏
- 运动搜索算法之钻石搜索
- 从“专用”云存储产品到“通用”云存储产品有多远?——2009-1-15 CTO俱乐部第一次聚会“云计算”后记
- c++关键字详解(volatile, mutable, explicit, dynamic_ cast(expression))等
- Linux 相关的偶像[持续补充]
- 在Ubuntu 8.10下建立eabi交叉编译环境
- HDU 1251 统计难题
- java中的io系统总结收藏
- Script.NET的Ruby支持库已经快要发布了
- 常见java异常收藏