论文部分内容阅读
受大气湍流影响,平面波经大气传播后,振幅和相位将发生随机起伏,导致光强闪烁、波面畸变。当光进入光学系统后,光学系统自身装调误差、光学元件制造误差以及温度和重力等因素都会导致波前发生畸变。为提高成像质量,必须消除或降低大气湍流和系统自身误差的影响。为此,研究人员提出了许多方法,这些方法大体分为两类:一类是自适应光学技术,这一技术通过波前探测器对波前畸变进行探测,并实时地将探测到的波前转变为变形镜的控制信号,使波前畸变得到实时补偿。另一类方法是事后图像处理技术,该技术的核心是通过成像面的光强分布对目标进行反演,这类方法主要包括斑点成像、解卷积和盲解卷积等算法。相位差算法(Phase Diversity,PD)是一种既可以作为波前探测又可以用于事后图像复原的技术。与其他波前探测技术相比,PD算法不仅可以应用于点目标还可以应用于扩展目标,并且结构简单、不存在非共光路误差。但是,PD算法计算量大,一直以来只应用在图像事后处理领域或者与自适应光学相结合使用。近些年,随着高性能计算技术的发展,许多复杂的计算问题都得到了解决。在此基础上,本课题针对如何提高相位差算法计算速度开展如下研究:第一,对PD算法的计算过程进行分析,找到限制算法计算速度的瓶颈。从计算步骤来看,耗时最长的部分为代价函数和梯度函数的计算。从运算单元的角度来看,耗时最长的为傅里叶变换和规约求和。第二,基于GPU平台的FFT库函数CUFFT虽历经几次升级,计算效率得到大幅提升。但是,通过分析发现二维FFT计算效率仍有较大提升空间,而且针对特定应用,CUFFT库函数不能与上下文的计算合并,从而导致多次对Global Memory的访问。本文分析了合并内存事务大小与占用率之间的关系,得到了最优的线程块配置。与CUFFT 6.5相比,512×512双精度浮点复数二维FFT的效率提升了1.27倍。第三,对代价函数和梯度函数计算过程中最耗时的光学传递函数的计算进行分析,并提出了一种从波前到光学传递函数的快速计算方法,并且在GPU平台上予以实现。本文提出的方法有效地剔除了PSF和OTF计算过程中的冗余计算。针对像面为512×512像素的成像系统,本文方法比采用CUFFT库函数的方法效率提高了4.88倍。第四,在PD算法GPU实现过程中,对代价函数和梯度函数进行冗余计算的分析。PD算法计算过程中涉及到傅里叶变换,采用了两种方法,方法1采用库函数CUFFT,方法2采用本文实现的FFT函数。与方法1相比,方法2不仅通过剔除冗余计算减少了计算量,还通过上下文Kernel的合并,减少了对Global Memory的访问。实验结果表明对于像面为256×256像素、光瞳采样因子为3的成像系统,方法2比方法1计算效率提升了1.83倍。然后,在双GPU平台上对PD算法进行了合理的任务划分,方法2在双GPU上效率比单GPU提升了17%。最后,针对点目标搭建了闭环实验平台,研究了PD算法对静态像差的探测能力。实验过程中,采用He-Ne激光器和空间滤波器模拟了点目标,液晶空间光调制器(LC-SLM)除了被用于产生附加离焦像差还要作为波前校正器。实验结果表明,PD算法可以有效地对波前像差进行校正。