一种基于fpga的星敏感器多模式图像预处理方法
【专利摘要】一种基于FPGA的通用多模式图像预处理方法,步骤如下:处理器设置预处理电路的存图模式,共有原图模式、自适应灰度加权滤波模式和窗口模式三种;原图模式:依据行场信号,将数据顺次存入片外存储器;滤波模式:图像数据进行自适应梯度加权滤波后,仅将像素大于0的有效像元的原始灰度值、滤波灰度值及行、列位置信息进行存储;开窗模式:进行窗口截取处理,每帧图像数据的第一字节为窗口编号,第二字节为行编号,后续字节为像元数据;依据窗口编号和行编号计算该行首个像元存储位置,然后以该地址为首地址存储后续像元数据。本发明提高了图像预处理电路的存储效率,提升了系统处理运算性能。
【专利说明】—种基于FPGA的星敏感器多模式图像预处理方法
【技术领域】
[0001]本发明涉及一种基于FPGA的星敏感器多模式图像预处理方法,适用于甚高精度星敏感器的星点导航预处理,属于星敏感器图像处理【技术领域】。
【背景技术】
[0002]甚高精度星敏相机广泛应用于星船交会对接和交会测量子系统中,单帧捕获精度可达400W像素,如果每个控制周期内都对整帧图像进行星点提取运算,将加重处理器负担并耗费大量控制周期时间与系统资源,故应在起始时间点对整帧信息处理,捕获星点位置后,在星点位置附近以开窗模式完成后续图像序列中星点的提取,以降低待处理像元数量,节省处理器开销。
[0003]由于星载应用,高动态星敏感器工作原理的复杂性和应用环境的特殊性,国内尚无法获取专用的与之相适应的宇航等级多模式转存图像预处理芯片,因此一般采用具有抗辐照能力的FPGA芯片实现多模式转存图像预处理电路功能。甚高精度图像的多模式转存及图像滤波处理算法依靠具有大数据量处理能力的大规模可编程逻辑器件完成,高动态星敏相机研制过程中要求FPGA具有全图模式、开窗模式图像转存能力以及自适应滤波等图像预处理功能,以便获取有限数量的有效像元,降低后续制导导航过程中的运算量。
[0004]多模式甚高精度图像预处理方法存在着如下应用问题需要解决:
[0005]第一,图像自适应梯度加权滤波功能。须在规定的有限像素时钟周期时间内,完成对当前像素的加权滤波,目的为提取相邻像素值变化剧烈的奇异点,该预处理算法为迭代运算,具有误差累积和错误传递的特点,电路设计需严格满足数据采集的时序要求。
[0006]第二,需具备多种模式图像转存功能:
[0007](I)原图模式下,需按整帧格式将图像数据行顺次存入片外RAM。
[0008](2)滤波模式下,对图像数据进行自适应梯度加权滤波后,仅将像素大于O的有效星点像元的原始灰度值、滤波灰度值及行、列位置等信息进行转存。
[0009](3)开窗模式下,进行窗口图像格式的截取,处理后窗口图像数据各行第一字节为窗口编号,第二字节为行编号,后续M字节为像元数据。应依据窗口编号和行编号计算该行首个像元存储位置,然后以该地址为首地址存储后续有效窗口像元数据。
[0010]目前国内外对多种模式的研究仍处于起步阶段,没有见到相关详细的报道,现急需一种方法能够实现多种模式的图像存储。
【发明内容】
[0011]本发明的技术解决问题是:克服现有技术的不足,提供一种基于FPGA的星敏感器多模式图像预处理方法,本发明通过全图模式、滤波模式和窗口模式实现了星敏感器在不同工作环境下的图像准确处理,同时通过滤波和窗口处理提高了图像预处理电路的存储效率,提升了系统处理运算性能。
[0012]本发明的技术解决方案:
[0013]一种基于FPGA的星敏感器多模式图像预处理方法,包括步骤如下:
[0014](I)选择图像存储的模式,若选择原图模式则进入步骤(2);若选择滤波模式则进入步骤⑶;若选择窗口模式则进入步骤⑷;
[0015](2)全图模式,当行、场信号均有效时,将图像数据顺次存储进存储器L,进入步骤
(5);
[0016](3)滤波模式,当行、场信号均有效时,对图像进行自适应梯度加权滤波后,将像素大于O的有效星点像元的原始灰度值、滤波灰度值及行、列位置信息存储到存储器L,进入步骤(5);
[0017](4)窗口模式,当行、场信号均有效时,将待存储图像截取为窗口图像,进而将窗口图像转换为窗口模式的传输格式,依据新的传输格式计算窗口图像中每行首个像元存储地址,然后以该地址为首地址顺次将窗口图像数据存储进存储器L,进入步骤(5);
[0018](5)存储结束。
[0019]所述步骤⑴中选择图像存储模式的具体实现原则如下:
[0020]针对星敏感器不同的运行状态,采用三种不同的图像存储模式,全图模式保证下传信息的完整和真实,滤波模式对原始图像进行粗提取,利用少量的有效像元确保捕获的有效性和实时性,窗口模式在跟踪模式下利用最少的像元信息保证有效的跟踪,本发明采用三种模式,实现了图像的预处理,实用性强,可靠性高,提高了实时性和工作效率。
[0021](I)星敏感器原始图像数据下传时选择全图模式;
[0022](2)星敏感器进行初始星点捕获时选择滤波模式;
[0023](3)星敏感器进行星点跟踪时选择窗口模式。
[0024]所述步骤(I)选择图像存储模式的具体实现形式如下:
[0025]步骤Ia:处理器对预处理电路中模式选择寄存器进行配置,设置模式选择寄存器中滤波标志、开窗标志以及窗口模式下首字节数据的行地址、列地址(待存储图像放入XY坐标系中,行地址对应为Y方向坐标,列地址对应为X方向坐标),进入步骤Ib ;所述开窗标志为处理器向预处理模式寄存器配置的模式选择标志,所述的滤波标志为处理器向预处理模式寄存器配置的滤波选择标志;
[0026]步骤Ib:预处理电路检测到场信号上升沿,并当场信号有效、行信号无效时,将开窗标志赋给当前开窗标志,滤波标志赋给当前滤波标志,同时若检测到滤波标志上升沿,进入步骤Ic ;所述的当前开窗标志为预处理电路实际执行过程中选择的模式标志,为中间量;所述的当前滤波标志为预处理电路实际执行过程中滤波选择标志;
[0027]步骤Ic:当场信号有效、行信号有效时,进行不同图像存储模式选择:
[0028](lc a)若当前开窗标志为O且当前滤波标志为0,则选择全图模式;
[0029](lc b)若当前开窗标志为O且当前滤波标志为1,则选择滤波模式;
[0030](lc c)若当前开窗标志为1,则选择窗口模式。
[0031]所述步骤(2)中在全图模式下进行数据存储的具体实现方法如下:
[0032]步骤2a:当预处理电路检测到行信号有效,并在像素时钟下降沿,将图像数据存储到预处理电路的缓存寄存器,并转入步骤2b ;
[0033]步骤2b:预处理电路生成存储器L的写信号,并将缓存寄存器中的图像数据写入存储器L,并转入步骤2c ;
[0034]步骤2c:当场信号有效时,表示一个字节的图数据像存储结束,回到步骤2a进行剩余字节图像数据的存储;若场信号无效时,则进入到步骤2d ;
[0035]步骤2d:整个图像数据存储结束,并进入步骤(I)。
[0036]所述步骤(3)进行自适应梯度加权滤波的具体实现方法如下:
[0037]当关闭滤波功能时,滤波输出为原始图像传输接口时序与数据,当开启滤波功能时,滤波输出时序与原始图像传输接口时序相同,数据为滤波后的数据。FPGA在接收图像数据的过程中进行滤波。
[0038]步骤3a:设置滤波系数S和背景估值修正量B,S的取值为4、8、16、32 (本实施例中默认值为16),B取值范围为-255?+255(本实施例中默认值为80),进入步骤3b ;所述的背景估值修正量为用于控制经过滤波后的有效像元数量的值;
[0039]步骤3b:设置中间寄存器mdl、md2、mf,并将中间寄存器清零,跳转到步骤3c ;
[0040]步骤3c:当检测到行信号下降沿时,中间寄存器mdl、md2清零,并进入步骤3d ;
[0041]步骤3d:在像素时钟上升沿时,根据滤波系数S的取值,将图像数据中当前像素时钟对应的数据D(与当前像素时钟对应的数据指像素时钟的高电平对应的数据)和将D左移一定位数后的数据赋值给中间寄存器md2和中间寄存器mdl,同时判断背景估值修正量B是否为负数,若是则将中间寄存器mf的值置为0,否则将中间寄存器mf的值赋值为B ;像素计数器加1,并进入步骤3e ;所述根据滤波系数S的取值将数据D和D左移以后的数据赋值给中间寄存器md2和中间寄存器mdl的具体方法:当S = 4时,D左移2位赋值给中间寄存器mdl ;当S = 8时,D左移3位赋值给中间寄存器mdl ;当S = 16时,D左移4位赋值给中间寄存器mdl ;当S = 32时,D左移5位赋值给中间寄存器mdl ;
[0042]步骤3e:在像素时钟上升沿时,计算中间寄存器mdl的值与图像数据中当前像素时钟对应的数据Dl之和减去中间寄存器md2的值,并将计算得到的结果赋值给中间寄存器mdl以及将数据Dl赋值给比较量T,进入步骤3f ;
[0043]步骤3f:根据滤波系数S将中间寄存器mdl右移一定位数(右移方法与步骤3d中的移动方法类似),并将中间寄存器mdl的值赋值给中间寄存器md2以及将比较量T与md2做差的结果赋值给中间量V,进入步骤3g ;
[0044]步骤3g:再次判断B是否为负数,若是则将中间量V的值赋值为中间量V和B之和;若B为正数,则将中间量V的值赋值为中间量V和B之差,并进入步骤3h ;
[0045]步骤3h:判断V是否为负数,若为负则中间寄存器mf赋值为O ;若V为正数,mf赋值为中间量V的值滤波后数据赋值为mf的值,并进入步骤3m进行存储,同时进行场信号是否失效判断,若场信号失效,则认为整个图像数据滤波完成,若场信号有效,则进入步骤3b继续存储;
[0046]在每一个像素时钟上升沿,对图像数据中该像素时钟对应的数据进行上述步骤滤波,每一个像素时钟对应的数据滤波完成后直接进入步骤(3m)中存储,同时进行后续图像数据的滤波。
[0047]所述步骤(3)中滤波模式下图像存储的具体实现方法如下:
[0048]步骤3m:当预处理电路检测到像素时钟下降沿时,若步骤(3h)滤波后的像素大于0,则将滤波后数据及未经滤波的数据锁存至缓存寄存器,并进入步骤3n ;
[0049]步骤3n:预处理电路生成存储器L的写信号,并将缓存寄存器中的滤波后的数据写入存储器L,并进入步骤30,并进入步骤3ο ;
[0050]步骤3ο:将像素大于O的滤波后的数据对应的行、列地址锁存至缓存寄存器,并进入步骤3ρ ;
[0051]步骤3ρ:预处理电路生成存储器L的写信号,并将缓存寄存器中的行、列地址写入存储器L,并进入步骤3q;
[0052]步骤3q:当场信号有效时,表示一个字节的滤波后图像数据存储结束,回到步骤3m进行剩余字节滤波后的数据的存储;若场信号无效时,则进入到步骤3r ;
[0053]步骤3r:整个滤波后的图像数据存储结束,并进入步骤(I)重新进入存储模式选择。
[0054]所述步骤(4)中进行将图像转换为窗口模式下传输格式的具体实现方法如下:
[0055]步骤(4a):将窗口模式的开窗大小设置为M*M,图像大小设置为N*N个像素大小,其中M、N均为正整数,同时外部处理器将窗口模式下首字节数据的行、列地址写入预处理电路的模式选择寄存器;
[0056]步骤(4b):预处理器电路根据行、列地址进行行信号及图像数据的裁剪调整,截取当前图像数据中范围为第A至第A+N-1行中第B至第B+N-1列的对应图像数据作为窗口图像数据;A为行地址,B为列地址;
[0057]步骤(4c):截取范围为第A至第A+N-1行中行信号生成新的行信号;
[0058]步骤(4d):在步骤(4b)的窗口图像数据的每一行数据和行信号之前增加两字节数据,分别为窗口编号和行编号;故窗口行场信号调整后的最终窗口图像数据格式为,第一字节为窗口编号(当前帧图像中第几个窗口),第二字节为行编号(输入该窗口中第几行),后续M个固定字节为像元数据,数据共2+M个字节大小。
[0059]所述步骤(4)中实现窗口模式下图像存储的具体实现方法如下:
[0060]步骤(4e):当行信号有效时,在像素时钟下降沿将窗口图像数据中的窗口编号锁存至窗口编号寄存器存储,将行编号锁存至行编号寄存器存储,然后将窗口图像数据存入缓冲寄存器,并进入到步骤(4f);
[0061]步骤(4f):根据窗口编号和行编号计算窗口数据各行首地址,并以首地址为存储开始地址将窗口图像数据顺次存储进存储器L,进入到步骤(4g);窗口数据存储地址计算方法为:(窗口编号寄存器的值+1)*E+行编号寄存器的值*M,E为存储器L的每行数据存储空间深度。
[0062]步骤(4g):预处理电路生成存储器L的写信号,并将窗口图像数据写入存储器L,并进入步骤4h ;
[0063]步骤4h:当场信号有效时,表示一行的窗口图像数据存储结束,回到步骤4e进行剩余行的窗口图像数据的存储;若场信号无效时,则进入到步骤4i ;
[0064]步骤41:整个滤波后的图像数据存储结束,并进入步骤(I)重新进入存储模式选择。
[0065]本发明与现有技术相比有益效果为:
[0066](I)本发明针对星敏感器不同的运行状态,采用三种不同的图像存储模式,全图模式保证遥测下传信息的完整和真实,滤波模式能够保证对有效像元进行捕获的有效性和实时性,窗口模式在跟踪模式下利用最少的像元信息保证有效的跟踪,同时在转存过程中通过有限数量的像元体现原图中的星点信息,提高系统制导导航运算效率;本发明采用三种模式,实现了图像的预处理,实用性强,可靠性高,提高了实时性和工作效率。
[0067](2)本发明通过滤波对原始图像进行背景抑制处理,增强星点奇异性,有效提升了星点检测精度,减少了有效像元数量,节省了处理器开销,提高了图像预处理电路的存储效率,提升了系统处理运算性能。
[0068](3)本发明是针对高动态甚高精度星敏感器提出的一种基于FPGA的多模式甚高精度图像预处理电路设计,其实现载体可以是多样的,初期在FPGA上应用外,根据需要可进行适当调整,转化为抗辐射加固的ASIC应用。本发明有效解决型号应用中的技术难题,具有重要的现实应用价值。
【专利附图】
【附图说明】
[0069]图1为本发明方法流程示意图;
[0070]图2为本发明预处理器的结构示意图。
【具体实施方式】
[0071]下面结合附图对本发明的工作原理和工作过程做进一步解释和说明。
[0072]本发明,一种基于FPGA的星敏感器多模式图像预处理方法,本发明基于如图2所示的多模式图像处理电路,包括窗口数据截取模块、自适应加权滤波模块、全图模式存储模块、滤波模式存储模块、窗口模式存储模块以及窗口行地址寄存器、窗口列地址寄存器、模式选择寄存器、数据缓冲寄存器、背景估值修正量寄存器、滤波系数寄存器。
[0073]背景估值修正量寄存器用于存储背景估值修正量,该寄存器共16位,其中D8高位表示数据正负(1:负;0:正),D7?DO表示背景估值修正量具体数值,其他位保留。
[0074]滤波系数寄存器用于存储滤波系数S的具体数值,该寄存器共16位,其中Dl?DO表示滤波系数,其他位保留:D1?DO为00,滤波系数设定为4 ;D1?DO为01,滤波系数设定为8 ;D1?DO为10,滤波系数设定为16 ;D1?DO为11,滤波系数设定为32 ;模式选择寄存器数据位共16位,其中DO表示滤波标志,I为使能滤波,O为禁止滤波。Dl表示开窗标志,I为使能开窗,O为禁止开窗。
[0075]窗口行地址寄存器共16位,表示窗口模式下首字节数据的行地址。
[0076]窗口列地址寄存器共16位,表示窗口模式下首字节数据的列地址。数据缓冲寄存器均为16位寄存器,用来缓存要存储到外部存储器的数据。
[0077]全图模式存储模块、滤波模式存储模块、窗口模式存储模块分别用于进行全图模式、滤波模式和窗口模式下的图像数据的存储。
[0078]如图1所示,本发明具体包括步骤如下:
[0079](I)选择图像存储的模式,若选择原图模式则进入步骤(2);若选择滤波模式则进入步骤⑶;若选择窗口模式则进入步骤⑷;
[0080]选择图像存储模式的具体实现原则如下:
[0081]针对星敏感器不同的运行状态,采用三种不同的图像存储模式,全图模式保证下传信息的完整和真实,滤波模式对原始图像进行粗提取,利用少量的有效像元确保捕获的有效性和实时性,窗口模式在跟踪模式下利用最少的像元信息保证有效的跟踪,本发明采用三种模式,实现了图像的预处理,实用性强,可靠性高,提高了实时性和工作效率。
[0082](I)星敏感器原始图像数据下传时选择全图模式;
[0083](2)星敏感器进行初始星点捕获时选择滤波模式;
[0084](3)星敏感器进行星点跟踪时选择窗口模式。
[0085]选择图像存储模式的具体实现形式如下:
[0086]步骤Ia:处理器对预处理电路中模式选择寄存器进行配置,设置模式选择寄存器中的滤波标志、开窗标志以及窗口模式下首字节数据的行地址、列地址(待存储图像放入XY坐标系中,行地址对应为Y方向坐标,列地址对应为X方向坐标),进入步骤Ib ;开窗标志为处理器向预处理模式寄存器配置的模式选择标志,滤波标志为处理器向预处理模式寄存器配置的滤波选择标志;
[0087]步骤Ib:预处理电路检测到场信号上升沿,并当场信号有效、行信号无效时,将开窗标志赋给当前开窗标志,滤波标志赋给当前滤波标志,同时若检测到滤波标志上升沿,进入步骤Ic ;当前开窗标志为预处理电路实际执行过程中选择的模式标志,为中间量;当前滤波标志为预处理电路实际执行过程中滤波选择标志;
[0088]步骤Ic:当场信号有效、行信号有效时,进行不同图像存储模式选择:
[0089](lc a)若当前开窗标志为O且当前滤波标志为0,则选择全图模式;
[0090](lc b)若当前开窗标志为O且当前滤波标志为1,则选择滤波模式;
[0091](lc c)若当前开窗标志为1,则选择窗口模式。
[0092](2)全图模式,当行、场信号均有效时,将图像数据顺次存储进存储器L,进入步骤
(5);
[0093]步骤(2)中在全图模式下进行数据存储的具体实现方法如下:当行、场信号均有效时,将图像数据顺次存储进存储器L ;
[0094]步骤2a:当预处理电路检测到行信号有效,并在像素时钟下降沿,将图像数据存储到预处理电路的缓存寄存器,并转入步骤2b ;
[0095]步骤2b:预处理电路生成存储器L的写信号,并将缓存寄存器中的图像数据写入存储器L,并转入步骤2c ;
[0096]步骤2c:当场信号有效时,表示一个字节的图数据像存储结束,回到步骤2a进行剩余字节图像数据的存储;若场信号无效时,则进入到步骤2d ;
[0097]步骤2d:整个图像数据存储结束,并进入步骤(I)。
[0098](3)滤波模式,当行、场信号均有效时,对图像进行自适应梯度加权滤波后,将像素大于O的有效星点像元的原始灰度值、滤波灰度值及行、列位置信息存储到存储器L,进入步骤(5);
[0099]进行自适应梯度加权滤波的具体实现方法如下:
[0100]当关闭滤波功能时,滤波输出为原始图像传输接口时序与数据,当开启滤波功能时,滤波输出时序与原始图像传输接口时序相同,数据为滤波后的数据。FPGA在接收图像数据的过程中进行滤波;
[0101]步骤3a:设置滤波系数S和背景估值修正量B,S的取值为4、8、16、32 (本实施例中默认值为16),B取值范围为-255?+255(本实施例中默认值为80),进入步骤3b ;所述的背景估值修正量为用于控制经过滤波后的有效像元数量的值;
[0102]步骤3b:设置中间寄存器mdl、md2、mf,并将中间寄存器清零,跳转到步骤3c ;
[0103]步骤3c:当检测到行信号下降沿时,中间寄存器mdl、md2清零,并进入步骤3d ;
[0104]步骤3d:在像素时钟上升沿时,根据滤波系数S的取值,将图像数据中当前像素时钟对应的数据D(与当前像素时钟对应的数据指像素时钟的高电平对应的数据)和将D左移一定位数后的数据赋值给中间寄存器md2和中间寄存器mdl,同时判断背景估值修正量B是否为负数,若是则将中间寄存器mf的值置为0,否则将中间寄存器mf的值赋值为B ;像素计数器加1,并进入步骤3e ;所述根据滤波系数S的取值将数据D和D左移以后的数据赋值给中间寄存器md2和中间寄存器mdl的具体方法:当S = 4时,D左移2位赋值给中间寄存器mdl ;当S = 8时,D左移3位赋值给中间寄存器mdl ;当S = 16时,D左移4位赋值给中间寄存器mdl ;当S = 32时,D左移5位赋值给中间寄存器mdl ;
[0105]步骤3e:在像素时钟上升沿时,计算中间寄存器mdl的值与图像数据中当前像素时钟对应的数据Dl之和减去中间寄存器md2的值,并将计算得到的结果赋值给中间寄存器mdl以及将数据Dl赋值给比较量T,进入步骤3f ;
[0106]步骤3f:根据滤波系数S将中间寄存器mdl右移一定位数(右移方法与步骤3d中的移动方法类似),并将中间寄存器mdl的值赋值给中间寄存器md2以及将比较量T与md2做差的结果赋值给中间量V,进入步骤3g ;
[0107]步骤3g:再次判断B是否为负数,若是则将中间量V的值赋值为中间量V和B之和;若B为正数,则将中间量V的值赋值为中间量V和B之差,并进入步骤3h ;
[0108]步骤3h:判断V是否为负数,若为负则中间寄存器mf赋值为O ;若V为正数,mf赋值为中间量V的值滤波后数据赋值为mf的值,并进入步骤3m进行存储,同时进行场信号是否失效判断,若场信号失效,则认为整个图像数据滤波完成,若场信号有效,则进入步骤3b继续存储;
[0109]在每一个像素时钟上升沿,对图像数据中该像素时钟对应的数据进行上述步骤滤波,每一个像素时钟对应的数据滤波完成后直接进入步骤(3m)中存储,同时进行后续图像数据的滤波。
[0110]滤波模式下图像存储的具体实现方法如下:
[0111]步骤3m:当预处理电路检测到像素时钟下降沿时,若步骤(3h)滤波后的像素大于0,则将滤波后数据及未经滤波的数据锁存至缓存寄存器,并进入步骤3n ;
[0112]步骤3η:预处理电路生成存储器L的写信号,并将缓存寄存器中的滤波后的数据写入存储器L,并进入步骤30,并进入步骤3ο ;
[0113]步骤3ο:将像素大于O的滤波后的数据对应的行、列地址锁存至缓存寄存器,并进入步骤3ρ ;
[0114]步骤3ρ:预处理电路生成存储器L的写信号,并将缓存寄存器中的行、列地址写入存储器L,并进入步骤3q;
[0115]步骤3q:当场信号有效时,表示一个字节的滤波后图像数据存储结束,回到步骤3m进行剩余字节滤波后的数据的存储;若场信号无效时,则进入到步骤3r ;
[0116]步骤3r:整个滤波后的图像数据存储结束,并进入步骤(I)重新进入存储模式选择。
[0117](4)窗口模式,当行、场信号均有效时,将待存储图像截取为窗口图像,进而将窗口图像转换为窗口模式的传输格式,依据新的传输格式计算窗口图像中每行首个像元存储地址,然后以该地址为首地址顺次将窗口图像数据存储进存储器L,进入步骤(5);
[0118]进行将图像转换为窗口模式下传输格式的具体实现方法如下:
[0119]步骤(4a):将窗口模式的开窗大小设置为M*M,图像大小设置为N*N个像素大小,其中M、N均为正整数,同时外部处理器将窗口模式下首字节数据的行、列地址写入预处理电路的模式选择寄存器;
[0120]步骤(4b):预处理器电路根据行、列地址进行行信号及图像数据的裁剪调整,截取当前图像数据中范围为第A至第A+N-1行中第B至第B+N-1列的对应图像数据作为窗口图像数据;A为行地址,B为列地址;
[0121]步骤(4c):截取范围为第A至第A+N-1行中行信号生成新的行信号;
[0122]步骤(4d):在步骤(4b)的窗口图像数据的每一行数据和行信号之前增加两字节数据,分别为窗口编号和行编号;故窗口行场信号调整后的最终窗口图像数据格式为,第一字节为窗口编号(当前帧图像中第几个窗口),第二字节为行编号(输入该窗口中第几行),后续M个固定字节为像元数据,数据共2+M个字节大小。
[0123]实现窗口模式下图像存储的具体实现方法如下:
[0124]步骤(4e):当行信号有效时,在像素时钟下降沿将窗口图像数据中的窗口编号锁存至窗口编号寄存器存储,将行编号锁存至行编号寄存器存储,然后将窗口图像数据存入缓冲寄存器,并进入到步骤(4f);
[0125]步骤(4f):根据窗口编号和行编号计算窗口数据各行首地址,并以首地址为存储开始地址将窗口图像数据顺次存储进存储器L,进入到步骤(4g);窗口数据存储地址计算方法为:(窗口编号寄存器的值+1)*E+行编号寄存器的值*M,E为存储器L的每行数据存储空间深度。
[0126]步骤(4g):预处理电路生成存储器L的写信号,并将窗口图像数据写入存储器L,并进入步骤4h ;
[0127]步骤4h:当场信号有效时,表示一行的窗口图像数据存储结束,回到步骤4e进行剩余行的窗口图像数据的存储;若场信号无效时,则进入到步骤4i ;
[0128]步骤41:整个滤波后的图像数据存储结束,并进入步骤(I)重新进入存储模式选择。
[0129](5)存储结束。
[0130]本发明与现有星敏感器进行比较,最主要性能提升表现在以下几个方面:
[0131]I)探测灵敏度提高30-50倍。
[0132]3)数据更新率由5?8Hz提高到30Hz。
[0133]本发明未公开技术属本领域技术人员公知常识。
【权利要求】
1.一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于包括步骤如下: (1)选择图像存储的模式,若选择原图模式则进入步骤(2);若选择滤波模式则进入步骤⑶;若选择窗口模式则进入步骤⑷; (2)全图模式,当行、场信号均有效时,将图像数据顺次存储进存储器L,进入步骤(5); (3)滤波模式,当行、场信号均有效时,对图像进行自适应梯度加权滤波后,将像素大于O的有效星点像元的原始灰度值、滤波灰度值及行、列位置信息存储到存储器L,进入步骤(5); (4)窗口模式,当行、场信号均有效时,将待存储图像截取为窗口图像,进而将窗口图像转换为窗口模式的传输格式,依据新的传输格式计算窗口图像中每行首个像元存储地址,然后以该地址为首地址顺次将窗口图像数据存储进存储器L,进入步骤(5); (5)存储结束。
2.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(I)中选择图像存储模式的具体实现原则如下: (1)星敏感器原始图像数据下传时选择全图模式; (2)星敏感器进行初始星点捕获时选择滤波模式; (3)星敏感器进行星点跟踪时选择窗口模式。
3.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(I)选择图像存储模式的具体实现形式如下: 步骤Ia:处理器对预处理电路中模式选择寄存器以及窗口行地址寄存器、窗口列地址寄存器进行配置,设置模式选择寄存器中的滤波标志、开窗标志以及窗口行地址寄存器、窗口列地址寄存器(窗口模式下首字节数据的行地址、列地址),进入步骤Ib ;所述开窗标志为处理器向预处理模式选择寄存器配置的模式选择标志,所述的滤波标志为处理器向预处理模式选择寄存器配置的滤波选择标志; 步骤Ib:预处理电路检测到场信号上升沿,并当场信号有效、行信号无效时,将开窗标志赋给当前开窗标志,滤波标志赋给当前滤波标志,同时若检测到滤波标志上升沿,进入步骤Ic ;所述的当前开窗标志为预处理电路实际执行过程中的模式选择标志,为中间量;所述的当前滤波标志为预处理电路实际执行过程中滤波选择标志; 步骤Ic:当场信号有效、行信号有效时,进行不同图像存储模式选择: (lc a)若当前开窗标志为O且当前滤波标志为O,则选择全图模式; (lc b)若当前开窗标志为O且当前滤波标志为1,则选择滤波模式; (lc c)若当前开窗标志为1,则选择窗口模式。
4.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(2)中在全图模式下进行数据存储的具体实现方法如下: 步骤2a:当预处理电路检测到行信号有效,并在像素时钟下降沿,将图像数据存储到预处理电路的缓存寄存器,并转入步骤2b ; 步骤2b:预处理电路生成存储器L的写信号,并将缓存寄存器中的图像数据写入存储器L,并转入步骤2c ; 步骤2c:当场信号有效时,表示一个字节的图数据像存储结束,回到步骤2a进行剩余字节图像数据的存储;若场信号无效时,则进入到步骤2d ; 步骤2d:整个图像数据存储结束,并进入步骤(I)。
5.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(3)进行自适应梯度加权滤波的具体实现方法如下: 步骤3a:设置滤波系数S和背景估值修正量B,S的取值为4、8、16、32,B取值范围为-255?+255,进入步骤3b ;所述的背景估值修正量为用于控制经过滤波后的有效像元数量的值; 步骤3b:设置中间寄存器mdl、md2、mf,并将中间寄存器清零,跳转到步骤3c ; 步骤3c:当检测到行信号下降沿时,中间寄存器mdl、md2清零,并进入步骤3d ; 步骤3d:在像素时钟上升沿时,根据滤波系数S的取值,将图像数据中当前像素时钟对应的数据D和将D左移一定位数后的数据赋值给中间寄存器md2和中间寄存器mdl,同时判断背景估值修正量B是否为负数,若是则将中间寄存器mf的值置为O,否则将中间寄存器mf的值赋值为B ;像素计数器加1,并进入步骤3e ;所述根据滤波系数S的取值将数据D和D左移以后的数据赋值给中间寄存器md2和中间寄存器mdl的具体方法:当S = 4时,D左移2位赋值给中间寄存器mdl ;当S = 8时,D左移3位赋值给中间寄存器mdl ;当S = 16时,D左移4位赋值给中间寄存器mdl ;当S = 32时,D左移5位赋值给中间寄存器mdl ;步骤3e:在像素时钟上升沿时,计算中间寄存器mdl的值与图像数据中当前像素时钟对应的数据Dl之和减去中间寄存器md2的值,并将计算得到的结果赋值给中间寄存器mdl以及将数据Dl赋值给比较量T,进入步骤3f ; 步骤3f:根据滤波系数S将中间寄存器mdl右移一定位数,并将中间寄存器mdl的值赋值给中间寄存器md2以及将比较量T与md2做差的结果赋值给中间量V,进入步骤3g ;步骤3g:再次判断B是否为负数,若是则将中间量V的值赋值为中间量V和B之和;若B为正数,则将中间量V的值赋值为中间量V和B之差,并进入步骤3h ; 步骤3h:判断V是否为负数,若为负则中间寄存器mf赋值为O ;若V为正数,mf赋值为中间量V的值滤波后数据赋值为mf的值,并进入步骤3m进行存储,同时进行场信号是否失效判断,若场信号失效,则认为整个图像数据滤波完成,若场信号有效,则进入步骤3b继续存储; 在每一个像素时钟上升沿,对图像数据中该像素时钟对应的数据进行上述步骤滤波,每一个像素时钟对应的数据滤波完成后直接进入步骤(3m)中存储,同时进行后续图像数据的滤波。
6.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(3)中滤波模式下图像存储的具体实现方法如下: 步骤3m:当预处理电路检测到像素时钟下降沿时,若步骤(3h)滤波后的像素大于O,则将滤波后数据及未经滤波的数据锁存至缓存寄存器,并进入步骤3n ; 步骤3n:预处理电路生成存储器L的写信号,并将缓存寄存器中的滤波后的数据写入存储器L,并进入步骤30,并进入步骤3ο ; 步骤3ο:将像素大于O的滤波后的数据对应的行、列地址锁存至缓存寄存器,并进入步骤3ρ ; 步骤3ρ:预处理电路生成存储器L的写信号,并将缓存寄存器中的行、列地址写入存储器L,并进入步骤3q; 步骤3q:当场信号有效时,表示一个字节的滤波后图像数据存储结束,回到步骤3m进行剩余字节滤波后的数据的存储;若场信号无效时,则进入到步骤3r ; 步骤3r:整个滤波后的图像数据存储结束,并进入步骤(I)重新进入存储模式选择。
7.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(4)中进行将图像转换为窗口模式下传输格式的具体实现方法如下: 步骤(4a):将窗口模式的开窗大小设置为M*M,图像大小设置为N*N个像素大小,其中M、N均为正整数,同时外部处理器将窗口模式下首字节数据的行、列地址写入预处理电路的模式选择寄存器; 步骤(4b):预处理器电路根据行、列地址进行行信号及图像数据的裁剪调整,截取当前图像数据中范围为第A至第A+N-1行中第B至第B+N-1列的对应图像数据作为窗口图像数据;A为行地址,B为列地址; 步骤(4c):截取范围为第A至第A+N-1行中行信号生成新的行信号; 步骤(4d):在步骤(4b)的窗口图像数据的每一行数据和行信号之前增加两字节数据,分别为窗口编号和行编号。
8.根据权利要求1所述的一种基于FPGA的星敏感器多模式图像预处理方法,其特征在于:所述步骤(4)中实现窗口模式下图像存储的具体实现方法如下: 步骤(4e):当行信号有效时,在像素时钟下降沿将窗口图像数据中的窗口编号锁存至窗口编号寄存器存储,将行编号锁存至行编号寄存器存储,然后将窗口图像数据存入缓冲寄存器,并进入到步骤(4f); 步骤(4f):根据窗口编号和行编号计算窗口数据各行首地址,并以首地址为存储开始地址将窗口图像数据顺次存储进存储器L,进入到步骤(4g);窗口数据存储地址计算方法为:(窗口编号寄存器的值+1)*E+行编号寄存器的值*M,E为存储器L的每行数据存储空间深度。 步骤(4g):预处理电路生成存储器L的写信号,并将窗口图像数据写入存储器L,并进入步骤4h ; 步骤4h:当场信号有效时,表示一行的窗口图像数据存储结束,回到步骤4e进行剩余行的窗口图像数据的存储;若场信号无效时,则进入到步骤4i ; 步骤41:整个滤波后的图像数据存储结束,并进入步骤(I)重新进入存储模式选择。
【文档编号】H04N5/232GK104202513SQ201410306767
【公开日】2014年12月10日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】叶有时, 孙强, 施蕾, 聂晓慧, 彭宇, 梁潇, 王龙, 武延鹏, 熊军, 刘波, 吴一帆, 杨桦 申请人:北京控制工程研究所