多源卫星图像实时在线处理技术方法及装置的制作方法

文档序号:7555304阅读:400来源:国知局
专利名称:多源卫星图像实时在线处理技术方法及装置的制作方法
技术领域
本发明涉及计算机网络、多线程、并行和图像处理技术,具体地说,就是以计算机并行技术和图像处理技术为基础,以计算机网络和多线程技术为辅助对多源卫星图像进行实时在线处理。
背景技术
在各行各业的计算处理中,实时处理是大势所趋,实时处理中最关键的技术是计算机并行技术。实现计算机并行的技术有很多,其中最主要有数据并行和任务并行,数据并行技术主要是将数据分块,按块进行并行处理,之后将分块数据进行合并;任务并行技术是将本来顺序执行或者不同的执行顺序,通过一定的变换后同时执行;数据并行和任务并行没有明显的区分界限,有些既可以归为数据并行也可以归为任务并行。卫星图像具有数据量大,处理时间长的特点,并且进行卫星图像的实时在线处理又是很多行业应用的迫切需求;同时很多应用都需要多源卫星图像数据的联合,所以进行多源卫星图像实时处理是这些应用的基础。目前,尚没有关于多源卫星实时在线处理的文献报道。

发明内容
本发明公开一种技术方法及装置,综合使用计算机网络技术,计算机并行技术,计算机多线程技术以及图像处理技术进行实时在线卫星图像处理。本发明的基本思路为:首先在高速网络上接收数据包,并将接收到的数据包组织成图像;然后对组织好的图像数据进行解析,并对解析后的图像进行存储格式转换和处理;继而对处理后的图像数据进行压缩;最后将压缩后的图像数据分包发送回高速网络。本发明实现的多源卫星图像实时在线处理系统的技术方案,流程如图1所示,具体包含如下步骤:A数据接收:实时接收高速网络中的卫星图像数据包,并进行实时组包,形成完整的图像;B图像处理,完成图像解析、图像存储格式转换、图像去噪、图像自适应增强等功倉泛;C图像压缩,完成图像的实时在线无损压缩;D图像发送,将压缩后的图像数据进行分包,并通过高速网络发送出去。上述实施步骤的特征在于:步骤A数据接收,可动态设置接收卫星图像类型的数量,系统根据设置值初始化相同数量的卫星图像数据包链表和组包线程;数据包和卫星图像数据包链表都包含卫星图像类型标志,系统根据接收到数据包的卫星图像类型标志将数据包加入到对应的卫星图像数据包链表中。组包时每个线程都锁住自己处理的卫星图像数据包链表,防止新插入数据包破坏卫星图像数据包链表的整体结构;每个线程只负责对自己内部的卫星图像数据包链表进行组包,各线程之间没有关联。
步骤B图像处理,进行图像解析时需要获取图像各类属性信息,包括:数据格式、图像宽高、图像分辨率、图像卫星类型、图像元数据。卫星图像进行解析时设置一次解析的数据量为卫星图像位数和中央处理器缓存大小的公倍数;同时,完成图像存储格式转换,将特殊以10位存储数据格式的卫星图像转换成16位格式存储的的卫星图像;卫星图像去噪、图像自适应增强处理算法全部采用OpenMP (Open Mult1-Processing开放多处理)技术进行分块并行化改造,分块技术采用按行分块的模式。步骤C图像压缩,对分块处理后的卫星图像使用OpenMP技术进行并行压缩,压缩算法采用哈弗曼无损压缩算法。步骤D图像发送,卫星图像发送时采用分包发送的策略,将卫星图像分为N包,其前N-1包大小相等,第N包为前N-1发送完后剩余的数据。相应的,一种多源卫星图像实时在线处理装置,包括:图像接收单元,用于实时接收高速网络发来的图像数据包,并进行实时组包,形成完整的图像。图像处理单元,用于完成在线的实时图像处理,主要包括:图像解析、图像数据存储格式转换功能、图像去噪、图像自适应增强。图像压缩单元,用于完成图像的实时在线无损压缩。图像发送单元,用于将压缩后的图像数据进行分包,并通过高速网络发送出去。此外,还包括了给本装置发送数据的模拟发送单元和接收本装置发送数据的模拟接收单元。本发明的优点是:通过使用计算机多线程技术,将不同卫星图像组包处理放在不同的线程中,可以增加同时接收组包的卫星图像类型数,提高了总的数据包吞吐率;使用OpenMP技术对图像处理和图像压缩算法进行并行化改造,大大提高了卫星图像处理和压缩速度;图像解析时,充分利用图像数据位数和中央处理器缓存的大小,有效增加缓存的命中率,提高了图像解析的速度;该方法实现简单,易于移植。


图1多源卫星图像实时在线处理系统流程2数据包结构示意3卫星图像数据包链表结构示意4数据组包技术流程5图像最小单元解析示意6图像按行分块示意7压缩后的图像数据结构示意8多源卫星图像实时在线处理装置示意图
具体实施例方式现在结合附图,描述本发明的一种具体实施方式
。结合多源卫星图像实时在线处理系统流程如图1和“发明内容”中的具体描述,本发明技术方案的主要步骤是:数据接收;图像处理;图像压缩;图像发送以及模拟发送和接收软件的实现。步骤A数据接收。系统根据设置的卫星图像类型数进行初始化,其设置的卫星类型数取值范围为[1,16],根据设置值初始化相同数量的接收卫星图像数据包链表和组包线程,并将不同的链表放入不同的线程中,其中每个线程处理一个链表。初始化后在高速网络上等待并接收数据包,之后解析接收到的数据包,最后按解析出的卫星图像类型将数据包放入对应的链表。其中解析后的数据包结构示意图如图2所示,第一个元素为卫星图像类型,I个字节表示,其取值范围为[1,16],分别表示不同类型的卫星图像;第二个元素为数据包标志,表示数据包的分包情况,I个字节表示,其取值范围为[1,3],1表示图像第一包,2表示图像中间包,3表示图像最后一包;第三个元素为数据包顺序编号,4个字节的无符号整型表示,其取值范围为
,对每一类卫星图像数据包进行顺序计数,循环使用;第四个元素为图像顺序编号,4个字节表示的无符号整型,其值从O开始,对每一类卫星图像进行顺序计数,循环使用;第五个元素为图像数据包数,为该类型的卫星图像分包数,2个字节的无符号整型表示;第六个元素为数据包数据长度,4个字节的无符号整型表示,表示该数据包有多少字节的数据;第七个元素为图像数据包的数据,该数据包小于60K字节。接收卫星图像数据包的链表结构示意图如图3所示,第一个元素为卫星图像类型,I个字节表示,与图2的第一个元素相同;第二个元素为当前数据包数,即链表当前已经加入数据包的数量,4个字节的无符号整型表示;第三个元素为图像数据包数,4个字节无符号整型表示,与图2的第五个元素相同;第四个元素为数据池,即数据包接收时,在内存中数据包存储的地方,数据包以链表的方式存放。数据组包过程是将卫星图像数据包链表中的数据包组织成一幅完整的图像,每个线程各自负责自己链表的组包,各线程之间没有关联。其组包技术流程如图4所示,首先对卫星图像数据包链表的当前数据包数进行判断,看当前数据包数是否大于或等于图像数据包数,如果小于则结束,不进行组包,大于或等于则开始锁住链表,进行组包;将链表中的数据包按数据包顺序编号进行排序,根据数据包顺序编号在
之间循环计数的特点,需要将数据包顺序编号小于图像数据包数的值都加上65536之后再排序;排序之后判断是否有连续N包,其第I包的标志为1,第N包的标志为3,其中N为图像数据包数,如果没有则结束,有则将连续N包的数据拷贝在一起,即构成了一幅完整的图像。步骤B图像处理。图像处理包括三个步骤,图像解析、图像数据格式转换以及图像实时处理。图像解析。对组织好的卫星图像进行解析,即获取卫星图像各类属性信息,包括:数据格式、图像宽高、图像分辨率、图像卫星类型、图像元数据等属性信息。图像数据格式转换,可以针对特殊以10位存储数据格式的卫星图像进行实时转换。原始卫星图像数据按10位格式连续存储,图像数据格式转换主要是将10位卫星图像解析成16位卫星图像。解析时充分考虑原始图像位数10和中央处理器缓存大小(64字节)的关系,将一次解析的数据设置为出4*8*10) =5120位,即640个字节。在图像解析的过程中,又考虑到5个字节40位数据刚好是4个10位数据,所以将原始卫星图像数据按5字节组成最小解析单元进行解析,如图5所示,图5下方是40位数据连续存储示意图,解析时按10位顺序连接就构成了一个完整的10位数据,40位数据可以解析成4个10位数据,解析后将每个10位数据存放在2字节即16位的内存空间中,16位数据的高6位补零。
图像实时处理。图像处理算法都采用按行分块的方式进行并行,其分块方式如图6所示。首先将图像数据按行分成与中央处理器核心数相等的块,之后分别使用OpenMP并行技术将每一块数据调度到不同的中央处理器核心上进行处理,其分块和处理过程都不改变块在原卫星图像中的空间位置,所有子块并行处理完成后依然是一整幅图像。以下为各图像处理算法的实现。图像去噪,图像去噪使用中值滤波算法,中值滤波算法的步骤为:(I)用3*3大小的模板在图像中遍历,将模板的中心分别与图像除上下左右最外层之后的像素点分别对应;(2)对落入模板中的图像像素数据求取中值;(3)使用(2)求出的中间值代替模板中心对应的图像像素值。图像自适应增强:自适应增强采用设置固定极亮极暗裁切比的线性拉伸算法,其裁切比都设置为5 %,图像自适应增强步骤为:(I)统计图像的灰度直方图;(2)根据图像的灰度直方图去掉图像极亮的5%和极暗的5% ;(3)将图像线性拉伸到O到1023之间,16位图像真实有值的部分只有10位,即最大值为1023。步骤C图像压缩。图像压缩时采用按行分块的方式进行并行,其分块方式如图6所示。首先将图像数据按行分成与CPU核心数量相等的块,之后分别使用OpenMP并行技术将每一块数据调度到不同的CPU核心上进行压缩,压缩完成后再将数据组织在一起,组织后的图像数据结构示意图如图7所示,第一个元素为图像压缩时的分块数M,第二个元素为图像压缩前的大小,之后还有3M个元素,其中前2M个元素分别依次为第一块数据压缩前的大小,第一块数据压缩后的大小,直到第M块数据压缩前的大小,第M块数据压缩后的大小,后M个元素为压缩后的M个数据区,分别存储压缩后的M块数据,从第一块到第M块依次存储。压缩算法使用无损的哈弗曼压缩,哈弗曼压缩的实现为,首先对数据进行遍历,构建哈弗曼树,然后对哈弗曼树的叶子节点进行编码,最后使用该编码对数据再进行遍历替换。步骤D图像发送。将图像数据分包进行发送,分包后每包图像数据结构与图2所示的图像数据包结构示意图相同,图像分包时也采用如图6所示的按行分块模式,不同类型的卫星图像都按60KB进行分包,其前N-1包大小都是60KB,第N包的大小为剩余量。数据包结构中的第一个元素卫星图像类型为对应接收该图像时的卫星图像类型;第二个元素数据包标志为第一包标志为1,中间包标志为2,最后包标志为3 ;第三个元素数据包顺序编号是对每一类卫星图像分别进行编号,从O开始,到65535之后再开始继续使用0,循环使用;第四个元素图像顺序编号与接收到的图像顺序编号相同,其编号方式也是从O开始,到65535之后再开始继续使用O,循环使用;第五个元素图像数据包数为图像数据按60KB进行分包的数量;第六个元素图像数据长度为前N-1包都是60K字节长度,只有第N包为剩余量;最后一个元素填入对应的分包块数据。数据分包发送时的网络协议采用用户数据报协议。本发明的实施例还相应提供一种多源卫星图像实时在线处理装置,如图8所示,包括:图像接收整理单元401,用于实时接收高速网络发来的图像数据包,并进行实时组包,形成完整的图像。图像处理单元402,用于完成图像解析、图像数据存储格式转换功能、图像去噪、图像自适应增强。图像压缩单元403,用于完成图像的实时在线无损压缩。图像发送单元404,用于将压缩后的图像数据进行分包,并通过高速网络发送出去。进一步,本发明还包括模拟发送单元405和模拟接收单元406。模拟发送单元配置多源卫星图像实时在线处理装置的接收地址、多源卫星的种类,并使用步骤D中的图像发送技术,图像数据直接从磁盘中读取,通过网络向本发明装置发送数据。模拟接收单元使用步骤A中的技术实现,最后将组织好的图像数据写入磁盘。本发明的一个实施例在一个32核心的集群上实现,其图像处理速度快,CPU利用效率高,数据包吞吐率大。本发明所述具体实施方式
可以使本领域的技术人员更全面地理解本发明,但不以任何方式限制本发明。因此,本领域技术人员应当理解,仍然对本发明进行修改或者等同替换;而一切不脱离本发明的精神和技术实质的技术方案及其改进,均应涵盖在本发明专利的保护范围中。
权利要求
1.多源卫星图像实时在线处理技术方法,其特征在于包含如下步骤: 图像接收,实时接收高速网络发来的图像数据包,并进行实时组包,形成完整的图像; 图像处理,完成图像解析、图像存储格式转换、图像实时处理; 图像压缩,完成图像的实时在线无损压缩; 图像发送,将压缩后的图像数据进行分包,并通过高速网络发送出去。
2.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像接收包括: 数据接收,实时接收高速网络中的卫星图像数据包,根据数据包的卫星图像数据类型将数据包加入对应的卫星图像数据包链表中; 数据组包,每个线程负责处理一类卫星图像数据包链表的组包,将接收到的数据包组织成一幅完整的图像。
3.根据权利要求2中所述,多源卫星图像实时在线处理技术方法,其特征在于:所述图像数据包由以下部分字段内容组成:卫星图像类型(IByte)、数据包标志(IByte)、数据包顺序编号(4Byte)、图像顺序编号(4Byte)、图像数据包数(2Byte)、数据包数据长度(4Byte)和数据(小于60KByte);所述数据包链表由以下部分字段内容组成:卫星图像类型(IByte)、当前数据包数(4Byte)、图像数据包数(4Byte)、数据池(由图像数据包构成的链表)。
4.根据权利要求2中所述多源卫星图像实时在线处理技术方法,其特征在于:所述数据接收包括:可动态设置接收卫星图像类型`的数量,系统根据设置值初始化相同数量的卫星图像数据包链表和组包线程;数据包和卫星图像数据包链表都包含卫星图像类型标志,系统根据接收到数据包的卫星图像类型标志将数据包加入到对应的卫星图像数据包链表中。
5.根据权利要求2中所述多源卫星图像实时在线处理技术方法,其特征在于:所述数据组包包括:每个线程组包时都锁住自己处理的卫星图像数据包链表,防止新插入数据包破坏卫星图像数据包链表的整体结构;每个线程只负责对自己内部的卫星图像数据包链表进行组包,各线程之间没有关联。
6.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像解析包括:对组织好的卫星图像进行解析,即获取图像各类属性信息,包括:数据格式、图像宽高、图像分辨率、图像卫星类型、图像元数据。
7.根据权利要求6中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像解析还包括:设置一次解析的数据量为卫星图像位数和中央处理器缓存大小的公倍数。
8.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像存储格式转换包括:将特殊以10位存储数据格式的卫星图像转换成16位格式存储的卫星图像。
9.根据权利要求8中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像存储格式转换包括:设置一次转换的数据量为卫星图像位数和中央处理器缓存大小的公倍数。
10.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像实时处理包括:图像去噪,自适应增强。
11.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像实时处理步骤包括将图像数据进行按行分块,并使用OpenMP技术将每一块数据调度到不同的中央处理器核心上进行处理,图像数据按行分块数与中央处理器核心数相等。
12.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像压缩采用哈弗曼无损压缩算法,将图像数据进行按行分块,并使用OpenMP技术将每一块数据调度到不同的中央处理器核心上进行压缩,图像数据按行分块数与中央处理器核心数相等。
13.根据权利要求1中所述多源卫星图像实时在线处理技术方法,其特征在于:所述图像发送采用分包发送的策略,将卫星图像分为N个包,其中前N-1个包大小相等,最大为60KB,第N包为前N-1个包发送后剩余的图像数据。
14.多源卫星图像实时在线处理技术装置,其特征在于包含如下步骤: 图像接收单元,用于实时接收高速网络发来的图像数据包,并进行实时组包,形成完整的图像; 图像处理单元,包括用于完成图像解析、图像数据存储格式转换、图像去噪;图像压缩单元,用于完成图像的实时在线无损压缩; 图像发送单元,用 于将压缩后的图像数据进行分包,并通过高速网络发送出去。
全文摘要
本发明公开一种多源卫星图像实时在线处理技术方法和装置,综合使用计算机网络技术,计算机并行技术,计算机多线程技术以及图像处理技术进行多源卫星图像实时在线处理,其卫星图像处理速度快,计算资源利用效率高,数据包吞吐率大。首先在高速网络上接收数据包,并将接收到的数据包组织成图像;然后对组织好的图像数据进行解析,并对解析后的图像进行存储格式转换和处理;继而对处理后的图像数据进行压缩;最后将压缩后的图像数据分包发送回高速网络。
文档编号H04N7/20GK103209328SQ201310135768
公开日2013年7月17日 申请日期2013年4月19日 优先权日2013年4月19日
发明者李宏益, 郑柯, 冯峥, 单小军 申请人:中国科学院遥感与数字地球研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1