论文部分内容阅读
近年来,在高清视频市场需求的驱使下,出现了多种多样的视频编码格式。这些不同的编码格式之间兼容的关键技术就是视频的去隔行算法。去隔行算法需要通过准确检测视频中的运动才能得到正确的图像。现在主要的运动检测算法包括:基于帧的运动检测算法,基于区域的运动检测算法和基于块的运动检测算法。但是现有的运动检测算法对复杂背景和多区域的视频图像内的运动检测不够理想。而且,这些复杂算法也很难达到视频处理的实时性要求。GPGPU (general purpose computation on GPU,基于GPU的通用计算)的出现为处理高清视频巨大运算量和满足复杂算法的实时性提供了一种可行的方法。相对于CPU, GPU拥有更大的数据传输带宽,更多的计算单元,更强的浮点运算能力。非常适合用于那些具有高度并行特征的计算领域。NVIDIA公司的CUDA(Compute Unified Device Architecture,统一计算架构)技术发布以后,通用算法运算速度得到从几倍到几十倍的增加,甚至得到更大程度的提高。本文结合基于帧、基于区域和基于块的运动检测算法,给出了一种改进的适应上下文的实时视频运动检测算法。该算法不仅能够适应一般的视频运动检测,也可以有效快速的检测复杂的视频输入。首先,通过计算帧间差,并且进行区域分块和宏模块分割。然后,对视频进行高通滤波处理,通过锯齿效应估计、块细节估计、单行检测,得到运动检测的上下文参数。最后,把得到的上下文参数结合低通滤波处理综合进行运动检测。在本文主要完成了以下工作:1)开发高清视频算法仿真平台。该平台基于CUDA架构,并且具备丰富的算法控制和处理接口,方便进行外部算法扩展。2)实现适应上下文的实时视频运动检测算法。并且把算法中拥有大量数据的并行处理部分移植到GPU完成基于CUDA的优化。通过带宽、数据存取和寄存器等优化对CUDA代码进行二次优化。3)进行综合仿真。本文采用的改进算法,不但可以对复杂背景的视频图像准确检测到视频运动,而且适应于多区域复杂视频格式运动检测。经过算法优化,处理时间可以达到22帧每秒,基本达到实时性要求。