您的位置:逆风者 VC++ 正文
 添加时间:2008-03-21 原文发表:2008-03-21 人气:22 来源:vckbase.com

作者:rtcodec


前言

  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. MPEG4 编解码:PC、DM642、blackfin。1.8G CPU可实现16路CIF全实时编解码
  2. H.264编解码:PC下4路CIF全实时
  3. WMA、WMV9解码:PC、DM642、blackfin


相关文章

基于GDI+的数字图像处理
MFC 通用控件的初始化
浅谈输入法编程
多线程管理类
如何实现由列表控件控制的属性表
动态创建控件支持事件响应并可保存与读取
简单录、放音并保存为wav文件程序
I2C通信
文件过滤系统驱动开发Filemon学习笔记
DynamicLayout-VC 6.0对话框动态布局解决方
VC6下的GDI+双缓冲
使用SNMP编辑(添加/删除/修改)ARP表
VC6绘制3D饼状图
强制编译时约束
在C++中实现C#的delegate机制
一个工业控制管道流动控件的实现
Thunk 技术的一个改进
直接调用类成员函数地址
自定义控件—特效列表控件
VC6绘制3D饼状图 - 完美版

相关评论


本文章所属分类:首页 VC++

  热门关键字: