前言

  很多年前写的老文章,备份之:DS算法是在运动搜索中使用最为广泛的搜索算法之一,有的地方被翻译成钻石搜索,菱形搜索。不管是硬件还是软件的视频编码器中,都可以看到它的存在。下面文章的内容主要从学报上摘录,希望给视频算法的新手们有些许帮助。

原理

  通常,运动矢量总是高度集中在搜索窗口的中心附近。这对于物体作缓慢运动的视频序列来说更加明显,因为静止块和缓慢运动块占主导地位。运动矢量的中心偏移特性提示了在窗口内不用对所有的点进行搜索,只需要对窗口中心附近的那些点进行搜索就能快速搜索到最佳匹配块。因此,搜索模板都是以窗口中心为中心对称的,其形状和大小共同决定了搜索的速度和性能。
 

图表 1 (LDSP and SDSP)

  DS算法用到两个模板,如图表 1 (LDSP and SDSP)所示。左边所示的模板称为大钻石搜索模板(LDSP);右边所示的模板称为小钻石搜索模板(SDSP)。在DS算法中,先反复使用LDSP进行搜索,直到本次搜索误差最小的那个点出现在模板的中心,接着就以这个最小误差点为中心,以SDSP为新的搜索模板进行最后一轮搜索,并将最后一轮搜索中误差最小的那个点作为最佳匹配点。在运用钻石算法的时候,要注意下面三点:

  1. 所有的搜索点必须在搜索窗口内,当待搜索的点超过窗口的边界时,算法将不采用这些点。
  2. 在连续使用LDSP模板进行搜索时,待搜索的点有部分重叠。若用前一个LDSP模板搜索得到的最小误差点位于LDSP的4个角之一时,则下一个搜索只需要在LDSP剩下的5个点进行;若出现在LDSP边上的中点,只需要在LDSP剩下的3个点进行搜索。这样就大大减少了搜索点数,从而大大提高搜索速度。
  3. 算法中并没有限制使用LDSP搜索的次数,这样可能会因等待最小误差点出现在模板的中心而使搜索次数大大增加。在这样的情况下,可以采用设置合适的搜索边框来强制搜索结束。

运动搜索算法之钻石搜索相关推荐

  1. 字符串搜索算法:暴力搜索,KMP

    目录 前言废话 暴力搜索 KMP算法 前言废话    最近脑子有点昏昏沉沉,喝点那种红枣泡的白酒居然神奇的好了一些,感觉很舒服.看来喝少量的酒可以让人更清醒,长期喝可能有养生的效果? 写道这里去百度了 ...

  2. 二进制搜索算法_二进制搜索的一个扭曲故事

    二进制搜索算法 by Divya Godayal 通过Divya Godayal 二进制搜索的一个扭曲故事 (A twisted tale of Binary Search) Awesome. Tha ...

  3. 二进制树形搜索算法_二进制搜索

    二进制树形搜索算法 二进制搜索用于在 值的排序列表 . 它选择排序值数组中的中间元素,并将其与目标值进行比较: 这就是我们在数组中寻找的关键. 如果它小于目标值,则在中间元素之后搜索,直到数组末尾. ...

  4. android t9搜索算法,T9拨号盘搜索和排序算法

    T9拨号盘搜索和排序算法 一. 背景 今日头条为何能突破bat的壁垒,很大程度在于它精确的推荐算法, 能够根据用户的喜爱推荐适合用户的资讯,不断根据用户的浏览记录构建用户的偏好生态圈,进而精准投放流量 ...

  5. 【搜索算法】深度优先搜索遍历

    深度优先,顾名思义是向纵深处遍历树或图,如下图所示: 遍历顺序为1–3–6–9–13–12–5–2–4–8–11–7–10 每次都看向树的右子树,当右子树全部看完后再回到树根向左看(回溯),因此采用堆 ...

  6. AVS2运动搜索方法简介

    AVS2配置文件中有这一项: FME:                        =3  #Fast Motion Estimation method (1:DIA, 2:HEX,3:UMH,4: ...

  7. 运动搜索(运动估计)知识

    转载自:雷霄骅 https://blog.csdn.net/leixiaohua1020/article/details/45936267 运动搜索可以分成两种基本类型: 运动搜索(运动估计)知识 ( ...

  8. 经典运动估计算法之全搜索、三步搜索、四步搜索、菱形搜索

    全搜索算法 三步搜索算法 四步搜索算法 菱形搜索算法 由于搜索方法的不同,因此有多种运动估计算法,较为经典的运动估计搜索算法有全搜索法.三步搜索法.菱形搜索法以及四步搜索法等等.以下是几种运动估计搜索 ...

  9. 局部遮荫光伏matlab,一种基于随机蛙跳全局搜索算法的局部阴影光伏阵列MPPT控制的制作方法...

    本发明涉及一种局部阴影光伏阵列多峰MPPT控制方法,特别涉及一种基于随机蛙跳全局搜索算法的局部阴影光伏列阵多峰MPPT控制. 背景技术: 伴随太阳能发电的普及,光伏阵列的运行环境变的越来越复杂,局部遮 ...

最新文章

  1. C语言——实现用链表存储学生信息,当输入0退出输入,并查找学号为3的学生是否存在
  2. 数据结构--栈 codevs 1107 等价表达式
  3. 营销型成人高考自考百度竞价推广落地页源码 单页织梦模板 带手机版
  4. 被黑客NeoN“附体” QQ为推产品谎报漏洞
  5. js ---- 对象转JSON,JSON转对象
  6. IE6 的 hover 伪类 bug
  7. python3使用paramiko
  8. 微信小程序前期申请企业认证、后期提审发布流程
  9. DeviceManager--Device administration设备管理器
  10. Java点集_java-二维点集的包装
  11. linux sht11驱动,SHT11.h下载 温湿度传感器SHT11的驱动程序,提供了外界调用接口函数...
  12. python java php c#_Python和Java、PHP、C、C#、C++等其他语言的对比?
  13. 蓝牙(二)A2DP协议
  14. 腾讯系持续集成(CI)方案
  15. 位图排序算法优化篇-永无止境
  16. 求矩阵的逆的三种方法
  17. componentWillReceiveProps为什么deprecated
  18. 完美解决**ModuleNotFoundError: No module named ‘src‘**
  19. C语言编程实现冰雹猜想的算法,并测算各个自然数到达4-2-1谷底(即N等于4,2,1结束后)所经过的变换次数。
  20. 【多元统计分析】14.贝叶斯判别法

热门文章

  1. brand.php dnfire.cn_火灾报警品牌
  2. 【单片机基础】ADC0832详解
  3. 耳朵上的艺术品,飞利浦圈铁真无线耳机JT60无敌了!
  4. 关联规则—Apriori算法—FPTree
  5. 从包工头到程序猿(六)汶川地震
  6. android自定义起止时间的时间刻度尺,Android中自定义RecyclerView如何实现不固定刻度的刻度尺...
  7. 倒卖什么赚钱?倒卖赚差价的生意[在闲鱼倒卖商品轻松月入过万]
  8. Windows10自带键盘突然失灵
  9. HJY-F931A/YJ三相电压继电器
  10. 【雕爷学编程】Arduino动手做(64)---RGB全彩LED模块