发明名称 一种用于分层搜索运动估计的GPU加速方法
摘要 本发明公开了一种利用GPU并行计算能力加速的分层搜索运动估计方法,包括:并行进行分层搜索算法中不同图像层图像的生成;自适应进行线程分配;并行对每个搜索图像块在每个搜索点进行SAD的计算;并行及利用CPU协同的查找最小SAD。该发明提出的自适应线程分配方案,能满足不同搜索图像分辨率及搜索区域大小的要求;图像下采样由GPU并行处理,能获得更好的加速效果及减少CPU和GPU间的数据通信;GPU/CPU协同进行的最小SAD值查找方法,能有效避免GPU空转。
申请公布号 CN102647588A 申请公布日期 2012.08.22
申请号 CN201110040025.0 申请日期 2011.02.17
申请人 北京大学深圳研究生院 发明人 王振宇;王荣刚;董胜富;高文
分类号 H04N7/26(2006.01)I;H04N7/46(2006.01)I;H04N5/14(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 代理人
主权项 一种基于GPU加速的分层搜索运动估计算法,其特征在于:包括以下步骤:第一步:CPU将参考帧和当前帧传输到显存,由GPU并行进行各图像层的下采样操作,生成用于分层搜索的各个图像层,并将最顶层图像层设为当前图像层;第二步:为当前图像层的每一个搜索图像块分配一个线程块用于搜索,线程块根据GPU处理能力及当前图像层上指定的搜索区域大小选择线程分配方案,并分配所需线程;第三步:各个线程使用上一层图像层的搜索结果,初始化当前图像层上各个搜索图像块的搜索中心;第四步:各个线程按所分配的搜索点计算在各个搜索点的SAD,并将结果存储在共享内存中;第五步:各个线程块使用并行归约查找共享内存中记录的最小SAD,当剩余SAD数目小于等于线程块Warp大小的时候,停止归约;第六步:各个线程块将第五步中剩余的SAD及对应搜索点坐标传回CPU,由CPU进行遍历查找,找出最小SAD并得到运动向量;第七步:如果当前图像层是第1层图像层,则输出各个搜索图像块的运动向量;否则,将运动向量传回显存,并将当前图像层设为更低一层图像层,并跳回第二步。
地址 518055 广东省深圳市南山区西丽深圳大学城北大校区