一种高码速率遥感卫星原始数据实时快视方法技术

技术编号:21345011 阅读:31 留言:0更新日期:2019-06-13 23:02
本发明专利技术公开了一种高码速率遥感卫星原始数据实时快视方法,首先,在GPU设备端建立CUDA和OpenGL互操作的初始化环境,然后,CPU主机端将遥感数据传入GPU设备端显存,然后,采用CUDA并行提取遥感数据中的有效图像数据,并通过CUDA和OpenGL互操作完成遥感影像快视,最后,判断遥感数据是否传输完毕,未传输完毕则返回第二步,传输完毕则结束;本发明专利技术能够提高GPU设备端的利用率,提高数据并行处理速度和实现快视性能,能够更加高效和可靠地满足目前高分辨率遥感卫星地面系统对高码速率遥感卫星数传数据实时快视的需求。

【技术实现步骤摘要】
一种高码速率遥感卫星原始数据实时快视方法
本专利技术涉及卫星遥感
,尤其涉及一种高码速率遥感卫星原始数据实时快视方法。
技术介绍
目前,随着电子元器件和通信技术水平的提高,遥感卫星有效载荷分辨率越来越高,CCD像元数量越来越多,数传速率越来越高,如吉林一号光学A星空间分辨率可达亚米级,全色为0.72米,多光谱为2.88米,全色CCD像元数量为16384个,双通道编码后数传速率可达688Mbps。而快视系统可在接收遥感数据的同时或接收完成之后即刻生成未经任何校正处理的可视图像,通过它用户可直观地了解有关遥感图像质量、云层覆盖和评估、目标图像快速判别等方面的基本情况,以及进行相机成像质量评价和星地间数传链路测试等。但是,传统的快视方法目前主要存在以下几点缺陷:(1)传统的快视方法主要采用CPU来完成像素数据由高阶向低阶的截取处理(如10位截取为8位),然后由GDI+或DirectDraw技术来显示影像。在数据截取处理方面,遥感数据快视需要从大量的连续数据码流中提取出有效图像数据,并将提取出的数据转化为像素值,最后在相应的窗口上绘制显示,以吉林一号光学A星数据为例,星上将图像数据量化为10位,处理时需要对原始数据码流每10位分割,然后从每一个10位数据中截取出8位作为一个像素点显示。常规的提取图像数据方法是采用CPU遍历全部图像数据,利用移位和位与运算提取出图像数据,这种方法处理耗时较长且长时间占用CPU;在影像显示方面,基于GDI+的影像快视系统效率很低,不能充分发挥现代计算机的硬件能力,目前已逐渐淘汰,而基于DirectDraw技术的影响快视系统,虽然显示效率高于基于GDI+技术显示的快视系统,但其所实现的硬件并行加速能力不可控,缺乏真正的线程级并行处理能力,且该接口已经被微软废弃。(2)传统快视方法在硬件设备方面需要配置大内存(通常为128GB)服务器来完成数据处理和显示,造成内存资源的极大浪费,不能充分发挥现代计算机的硬件能力,尤其是在GPU在并行处理后需将并行处理的结果数据移动回或拷贝回计算机主内存,需要进行多次数据移动和复制,容易出现数据丢失,且效率低,未能充分利用GPU在图形图像绘制方面的能力。
技术实现思路
本专利技术的目的是提供一种高码速率遥感卫星原始数据实时快视方法,能够提高GPU设备端的利用率,提高数据并行处理速度和实现快视性能,能够更加高效和可靠地满足目前高分辨率遥感卫星地面系统对高码速率遥感卫星数传数据实时快视的需求。本专利技术采用的技术方案为:包括以下步骤:A、在GPU设备端建立CUDA和OpenGL互操作的初始化环境;具体过程如下:a1:初始化OpenGL,选择CUDA设备并允许CUDA设备与OpenGL互操作;a2:创建OpenGL像素缓冲对象PBO并注册为CUDA资源;a3:创建OpenGL纹理Texture;a4:创建矩形绘制窗口顶点和纹理坐标;B、CPU主机端将遥感数据传入GPU设备端显存;遥感数据来源于CPU主机端实时接收的原始遥感数据或回放的CPU主机端硬盘中存储的历史遥感数据;C、采用CUDA并行提取遥感数据中的有效图像数据,并通过CUDA和OpenGL互操作完成遥感影像快视;具体过程如下:c1:映射CUDA资源并返回显存地址:将已注册的OpenGL像素缓冲对象PBO映射到CUDA存储空间,获取已映射像素缓冲对象PBO对应的设备指针,然后将获取的设备指针作为参数传入CUDA内核函数中;c2:执行CUDA内核函数完成数据并行提取;c3:解除映射CUDA资源;c4:互操作影像快视显示;D、判断遥感数据是否传输完毕,未传输完毕则返回步骤B,传输完毕则结束。进一步地,所述步骤c2所述的数据并行提取过程如下:c2-1.1:从原始数据中连续提取M位原始像素数据;M位像素数据中包括t个8位字节,且M等于8与遥感卫星对应成像载荷的每一位像素的量化位数Q的最小公倍数,c2-1.2:从M位字节中提取s个Q位像素数据,M=s*Q;c2-1.3:将提取的每个Q位像素数据分别截取为8位量化数据,获取s个8位量化数据。进一步地,所述遥感卫星采用吉林一号A星全色载荷遥感卫星,所述步骤c2的数据并行提取过程如下:c2-2.1:将原始数据每40位对齐;对齐的40位原始像素数据包括五个8位字节;c2-2.2:从对齐的40位原始像素数据中提取四个10位像素;具体方法为:第一个10位像素取第一个字节+第二个字节的高两位;第二个10位像素取第二个字节的低六位+第三个字节的高四位;第三个10位像素取第三个字节的低四位+第四个字节的高六位;第四个10位像素取第四个字节的低两位+第五个字节;c2-2.3:将提取的每一个10位像素通过右移两位的方式截取成为8位像素字节。进一步地,所述步骤b8中CUDA和OpenGL互操作方式显示快视影像采用的方法为:将像素缓冲对象PBO与纹理Texture绑定,将像素缓冲对象PBO作为纹理数据源,以绘制纹理的方式来绘制像素缓冲对象PBO。进一步地,所述像素缓冲对象PBO和纹理Texture之间通过DMA执行像素数据异步传送。本专利技术具有以下有益效果:(1)通过采用CUDA和OpenGL互操作的方式来完成遥感影像快视,既能够充分发挥GPU在通用计算(GPGPU)方面的能力,也能充分利用GPU在图形图像渲染绘制方面的能力,还可以减少计算机主存和显存之间的数据拷贝次数,在GPU完成数据并行处理后不必再将像素数据传送回主存,而是基于互操作接口将显存中数据作为纹理数据源直接递送给OpenGL纹理绘制接口完成影像快视显示,整个过程不需要任何数据移动或复制;(2)通过采用GPU完成遥感数据的并行提取,相比于传统的CPU数据提取方案,并行处理时间仅为传统CPU并行提取方案时间的1/4,大大提高数据提取效率,同时,由于采用了基于CUDA和OpenGL互操作的遥感影像快视绘制方案,避免了再将并行处理后的结果数据传回计算机主存的移动或拷贝,可进一步提高遥感卫星原始数据并行处理和实时快视性能。附图说明图1为本专利技术的流程图;图2为具体实施方式中吉林一号A星全色载荷遥感卫星的CUDA并行提取示意图。具体实施方式为了更好地理解本专利技术,下面结合附图对本专利技术的技术方案做进一步说明。本专利技术所公开的一种高码速率遥感卫星原始数据实时快视方法包括以下步骤:A、在GPU设备端建立CUDA和OpenGL互操作的初始化环境;具体过程如下:a1:初始化OpenGL,选择CUDA设备并允许CUDA设备与OpenGL互操作;a2:创建OpenGL像素缓冲对象PBO并注册为CUDA资源;a3:创建OpenGL纹理Texture;a4:创建矩形绘制窗口顶点和纹理坐标。B、CPU主机端将遥感数据传入GPU设备端显存;遥感数据来源于CPU主机端实时接收的原始遥感数据或回放的CPU主机端硬盘中存储的历史遥感数据。C、采用CUDA并行提取遥感数据中的有效图像数据,并通过CUDA和OpenGL互操作完成遥感影像快视。CUDA和OpenGL互操作的基本方式就是先将OpenGL资源映射到CUDA地址空间,再使用CUDA向该地址空间写入所需数据,最后利用OpenGL在屏幕上绘制出图形。可以注册到CUDA的OpenGL资源有缓冲对象、纹理和渲染对象等。本文档来自技高网
...

【技术保护点】
1.一种高码速率遥感卫星原始数据实时快视方法,其特征在于:包括以下步骤:A、在GPU设备端建立CUDA和OpenGL互操作的初始化环境;具体过程如下:a1:初始化OpenGL,选择CUDA设备并允许CUDA设备与OpenGL互操作;a2:创建OpenGL像素缓冲对象PBO并注册为CUDA资源;a3:创建OpenGL纹理Texture;a4:创建矩形绘制窗口顶点和纹理坐标;B、CPU主机端将遥感数据传入GPU设备端显存;遥感数据来源于CPU主机端实时接收的原始遥感数据或回放的CPU主机端硬盘中存储的历史遥感数据;C、采用CUDA并行提取遥感数据中的有效图像数据,并通过CUDA和OpenGL互操作完成遥感影像快视;具体过程如下:c1:映射CUDA资源并返回显存地址:将已注册的OpenGL像素缓冲对象PBO映射到CUDA存储空间,获取已映射像素缓冲对象PBO对应的设备指针,然后将获取的设备指针作为参数传入CUDA内核函数中;c2:执行 CUDA内核函数完成数据并行提取;c3:解除映射CUDA资源;c4:互操作影像快视显示;D、判断遥感数据是否传输完毕,未传输完毕则返回步骤B,传输完毕则结束。

【技术特征摘要】
1.一种高码速率遥感卫星原始数据实时快视方法,其特征在于:包括以下步骤:A、在GPU设备端建立CUDA和OpenGL互操作的初始化环境;具体过程如下:a1:初始化OpenGL,选择CUDA设备并允许CUDA设备与OpenGL互操作;a2:创建OpenGL像素缓冲对象PBO并注册为CUDA资源;a3:创建OpenGL纹理Texture;a4:创建矩形绘制窗口顶点和纹理坐标;B、CPU主机端将遥感数据传入GPU设备端显存;遥感数据来源于CPU主机端实时接收的原始遥感数据或回放的CPU主机端硬盘中存储的历史遥感数据;C、采用CUDA并行提取遥感数据中的有效图像数据,并通过CUDA和OpenGL互操作完成遥感影像快视;具体过程如下:c1:映射CUDA资源并返回显存地址:将已注册的OpenGL像素缓冲对象PBO映射到CUDA存储空间,获取已映射像素缓冲对象PBO对应的设备指针,然后将获取的设备指针作为参数传入CUDA内核函数中;c2:执行CUDA内核函数完成数据并行提取;c3:解除映射CUDA资源;c4:互操作影像快视显示;D、判断遥感数据是否传输完毕,未传输完毕则返回步骤B,传输完毕则结束。2.根据权利要求1所述的高码速率遥感卫星原始数据实时快视方法,其特征在于:所述步骤c2所述的数据并行提取过程如下:c2-1.1:从原始数据中连续提取M位原始像素数据;M位像素数据中包括t个8位字节,且M等于8与遥感卫星对...

【专利技术属性】
技术研发人员:段云龙常鹏飞孙明磊李春晓张明刘颐芳
申请(专利权)人:中国电子科技集团公司第二十七研究所
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1