多模式高速率高光谱图像并行采集处理方法转让专利

申请号 : CN202010954433.6

文献号 : CN112235578B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张小荣李思远胡炳樑

申请人 : 中国科学院西安光学精密机械研究所

摘要 :

本发明涉及一种图像并行采集处理方法,特别涉及一种多模式高速率高光谱图像并行采集处理方法,解决了现有图像采集系统功能单一、传输速率有限,不能同时处理可见光、红外光对应的图像原始数据、压缩数据、半视场、全视场所组合的八种图像数据,难以满足航天载荷地面测试要求的问题。该采集处理方法包括以下步骤:步骤1:数据采集;若采集的是完整的一帧图像原始数据,执行步骤5;若采集的是一组相对应的左视场图像压缩码流数据和右视场图像压缩码流数据,对两个视场图像的压缩码流数据分别独立执行步骤2;步骤2:帧搜索;步骤3:中转;步骤4:解压缩;步骤5:拼接;步骤6:存储、显示图像;步骤7:循环执行步骤1至步骤6,直至完成。

权利要求 :

1.一种多模式高速率高光谱图像并行采集处理方法,其特征在于,包括以下步骤:步骤1:数据采集

采用Medium的Camera link采集卡采集图像数据;

判断该采集的图像数据是完整的一帧图像原始数据,还是一组字节长度为定值的相对应的左视场图像压缩码流数据和右视场图像压缩码流数据;

若采集的图像数据是完整的一帧图像原始数据,执行步骤5;

若采集的图像数据是一组字节长度为定值的相对应的左视场图像压缩码流数据和右视场图像压缩码流数据,对采集到的该组两个视场图像的压缩码流数据分别独立执行步骤

2;

步骤2:帧搜索

判断是否存储有上一组压缩码流数据的剩余字节;

若存储有上一组压缩码流数据的剩余字节,则依据完整的一帧图像压缩码流数据的标志位,按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据合并搜索;若未存储有上一组压缩码流数据的剩余字节,则依据完整的一帧图像压缩码流数据的标志位,对本组压缩码流数据进行帧搜索;

对搜索中发现的错误数据进行存储;对搜索到的完整的一帧图像压缩码流数据执行步骤3;若本组压缩码流数据有剩余字节,对剩余字节进行存储,供下组搜索调用;

步骤3:中转

对步骤2中帧搜索到的完整的一帧图像压缩码流数据进行帧连续性判读,若连续,则执行步骤4;若不连续,则存储此错误信息后,执行步骤4;

步骤4:解压缩

复制数据,进行解压缩,获得该完整的一帧图像压缩码流数据对应的相应视场图像解压缩码流数据;

步骤5:拼接

对于步骤1采集的完整的一帧图像原始数据,从每个采集卡采集的图像原始数据中各取一行图像原始数据,依照像元正常顺序排列整齐,拼接形成完整的全视场数据,然后循环读取完整的一帧图像原始数据的所有行,拼接获得该完整的一帧图像的全视场数据;

或者对于经过步骤4解压缩后获得的完整的一帧图像的左视场图像解压缩码流数据和右视场图像解压缩码流数据,从左视场图像解压缩码流数据和右视场图像解压缩码流数据中各取一行解压缩码流数据,依照像元正常顺序排列整齐,拼接形成完整的全视场数据,然后循环读取完整的一帧图像解压缩码流数据的所有行,拼接获得该完整的一帧图像的全视场数据;

步骤6:存储、显示图像;

存储并显示步骤5拼接获得的该完整的一帧图像的全视场数据对应的图像;

步骤7:循环执行步骤1至步骤6,直至采集处理完成。

2.根据权利要求1所述的多模式高速率高光谱图像并行采集处理方法,其特征在于:步骤1中,采集的所述压缩码流数据为标准的JPEG2000压缩码流数据。

3.根据权利要求2所述的多模式高速率高光谱图像并行采集处理方法,其特征在于,所述步骤2具体包括以下步骤:

步骤2.1:判断是否存储有上一组压缩码流数据的剩余字节;

若存储有上一组压缩码流数据的剩余字节,执行步骤2.2;

若未存储有上一组压缩码流数据的剩余字节,跳过步骤2.2,执行步骤2.3;

步骤2.2:按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据合并搜索,并根据搜索结果进行相应处理后,然后再执行步骤2.3;不同搜索结果的相应处理如下:

若搜索到上一组压缩码流数据以FF结尾且本组压缩码流数据以D9开头,则对上一组压缩码流数据的剩余字节与本组压缩码流数据开头的D9所构成的完整的一帧图像压缩码流数据,执行步骤3;

若搜索到本组压缩码流数据以3C 4F开头,则上一组压缩码流数据的剩余字节为错误数据,存储此错误数据;

若搜索结果不是以上两种情况,则在本组压缩码流数据中逐行搜索第一个3C 4F,对上一组压缩码流数据的剩余字节与本组压缩码流数据中该搜索到的第一个3C 4F之前的字节所构成的完整的一帧图像压缩码流数据,执行步骤3,并记录该搜索到的第一个3C 4F所在行的行号;

步骤2.3:设置起始搜索行号

对于存储有上一组压缩码流数据的剩余字节的情况,根据步骤2.2的搜索结果,若上一组压缩码流数据以FF结尾且本组压缩码流数据以D9开头,或本组压缩码流数据以3C 4F开头,则将本组压缩码流数据第二行对应的行号设置为起始搜索行号;若搜索结果不是以上两种情况,则将步骤2.2中记录的所述该搜索到的第一个3C 4F所在行的行号加1,设置为起始搜索行号;

对于未存储有上一组压缩码流数据的剩余字节的情况,将本组压缩码流数据第一行对应的行号设置为起始搜索行号;

步骤2.4:从步骤2.3设置的所述起始搜索行号的对应行开始,直至本组压缩码流数据倒数第二行末尾,逐行进行搜索,并进行相应处理;

步骤2.4.1:判断是否已到达倒数第二行末尾;

若未到达倒数第二行末尾,执行步骤2.4.2;

若已到达倒数第二行末尾,执行步骤2.5;

步骤2.4.2:判断在本组压缩码流数据中,在正搜索的搜索行之前,是否搜索到过3C 

4F;

若未搜索到过3C 4F,则先逐行搜索本组压缩码流数据中的第一个3C 4F,搜索到第一个3C 4F后,再执行步骤2.4.3;

若已搜索到过3C 4F,则直接执行步骤2.4.3;

步骤2.4.3:逐行搜索本组压缩码流数据中的下一个3C 4F,并判断是否搜索到下一个

3C 4F;

若搜索到下一个3C 4F,则对与该搜索到的下一个3C 4F相邻的前一个3C 4F至该搜索到的下一个3C 4F之前的字节所构成的完整的一帧图像压缩码流数据执行步骤3,然后返回步骤2.4.1;

若搜索至本组压缩码流数据倒数第二行末尾,未搜索到下一个3C 4F,则直接执行步骤

2.5;

步骤2.5:对本组压缩码流数据的最后一行进行搜索,并进行相应处理;

步骤2.5.1:判断本组压缩码流数据的最后一行是否以3C 4F开头;

若最后一行是以3C 4F开头,则对与最后一行开头的3C 4F相邻的前一个3C 4F至最后一行开头的3C 4F之前的字节所构成的完整的一帧图像压缩码流数据执行步骤3,并记录最后一行字节为本组压缩码流数据的剩余字节,然后执行步骤2.6;

若最后一行不是以3C 4F开头,则执行步骤2.5.2;

步骤2.5.2:判断在最后一行中是否搜索到码流结束标识;

若搜索到码流结束标识,则对该搜索到的码流结束标识所在的完整的一帧图像压缩码流数据执行步骤3,并记录本组压缩码流数据的剩余字节为零;

若未搜索到码流结束标识,则记录本组压缩码流数据中搜索到的最后一个3C 4F及其之后的字节为本组压缩码流数据的剩余字节,执行步骤2.6;

步骤2.6:若本组压缩码流数据有剩余字节,根据步骤2.5记录的本组压缩码流数据的剩余字节,设置本组压缩码流数据的剩余字节并存储,供下组搜索调用。

4.根据权利要求1至3任一所述的多模式高速率高光谱图像并行采集处理方法,其特征在于:

对于步骤1采集的完整的一帧图像原始数据,在完成步骤5之后,步骤5反馈已完成信号给步骤1,在步骤1接到所述已完成信号后,再对步骤1采集的完整的下一帧图像原始数据,执行步骤5;

对于步骤1采集的一组压缩码流数据,在完成步骤2、步骤3、步骤4以及步骤5四个步骤中的每一个步骤之后,均反馈该步骤已完成信号给上一步骤,在上一步骤接到所述已完成信号后,再对步骤1采集的下一组压缩码流数据相对应的数据,执行自身对应的下一步骤。

5.根据权利要求4所述的多模式高速率高光谱图像并行采集处理方法,其特征在于:步骤5中,所述拼接采用Openmp编译指令作加速处理。

6.根据权利要求5所述的多模式高速率高光谱图像并行采集处理方法,其特征在于:所述步骤3还包括计算实时帧频和平均帧频的步骤。

7.根据权利要求6所述的多模式高速率高光谱图像并行采集处理方法,其特征在于:步骤1中,所述采集卡采用BitFlow公司的KBN‑PCE‑CL4‑F采集卡。

8.根据权利要求7所述的多模式高速率高光谱图像并行采集处理方法,其特征在于:步骤2、步骤3以及步骤6中的所述存储,采用多块PCI‑E固态盘组成的磁盘阵列实现。

说明书 :

多模式高速率高光谱图像并行采集处理方法

技术领域

[0001] 本发明涉及一种图像并行采集处理方法,特别涉及一种多模式高速率高光谱图像并行采集处理方法。

背景技术

[0002] 图像采集系统的作用就是保证图像数据流可靠地按照预先安排好的路径传输、显示及存储。在航天载荷地面测试时,需要图像采集系统能满足星载可见光谱相机、红外光谱
相机的1040fps~1500fps可变高速帧频下的原始、压缩数据采集处理需求。
[0003] 然而,现有的图像采集系统功能单一、传输速率有限。例如,目前非常流行的高速相机接口Camera link,使用national semiconductor公司的LVDS接收芯片DS90CR288A,其
最高仅支持2.38Gbit/s的数据传输。此外,目前尚未见有图像采集系统能够同时处理可见
光、红外光分别对应的图像原始数据、压缩数据、半视场、全视场所组合的八种模式图像数
据的资料报道。

发明内容

[0004] 本发明的目的是提供一种多模式高速率高光谱图像并行采集处理方法,以解决现有图像采集系统功能单一、传输速率有限,不能同时处理可见光、红外光分别对应的图像原
始数据、压缩数据、半视场、全视场所组合的八种模式图像数据,难以满足航天载荷地面测
试中对图像采集系统要求的技术问题。
[0005] 本发明所采用的技术方案是,一种多模式高速率高光谱图像并行采集处理方法,其特殊之处在于,包括以下步骤:
[0006] 步骤1:数据采集
[0007] 采用Medium的Camera link采集卡采集图像数据;
[0008] 判断该采集的图像数据是完整的一帧图像原始数据,还是一组字节长度为定值的相对应的左视场图像压缩码流数据和右视场图像压缩码流数据;
[0009] 若采集的图像数据是完整的一帧图像原始数据,执行步骤5;
[0010] 若采集的图像数据是一组字节长度为定值的相对应的左视场图像压缩码流数据和右视场图像压缩码流数据,对采集到的该组两个视场图像的压缩码流数据分别独立执行
步骤2;
[0011] 步骤2:帧搜索
[0012] 判断是否存储有上一组压缩码流数据的剩余字节;
[0013] 若存储有上一组压缩码流数据的剩余字节,则依据完整的一帧图像压缩码流数据的标志位,按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据
合并搜索;若未存储有上一组压缩码流数据的剩余字节,则依据完整的一帧图像压缩码流
数据的标志位,对本组压缩码流数据进行帧搜索;
[0014] 对搜索中发现的错误数据进行存储;对搜索到的完整的一帧图像压缩码流数据执行步骤3;若本组压缩码流数据有剩余字节,对剩余字节进行存储,供下组搜索调用;
[0015] 步骤3:中转
[0016] 对步骤2中帧搜索到的完整的一帧图像压缩码流数据进行帧连续性判读,若连续,则执行步骤4;若不连续,则存储此错误信息后,执行步骤4;
[0017] 步骤4:解压缩
[0018] 复制数据,进行解压缩,获得该完整的一帧图像压缩码流数据对应的相应视场图像解压缩码流数据;
[0019] 步骤5:拼接
[0020] 对于步骤1采集的完整的一帧图像原始数据,从每个采集卡采集的图像原始数据中各取一行图像原始数据,依照像元正常顺序排列整齐,拼接形成完整的全视场数据,然后
循环读取完整的一帧图像原始数据的所有行,拼接获得该完整的一帧图像的全视场数据;
[0021] 或者对于经过步骤4解压缩后获得的完整的一帧图像的左视场图像解压缩码流数据和右视场图像解压缩码流数据,从左视场图像解压缩码流数据和右视场图像解压缩码流
数据中各取一行解压缩码流数据,依照像元正常顺序排列整齐,拼接形成完整的全视场数
据,然后循环读取完整的一帧图像解压缩码流数据的所有行,拼接获得该完整的一帧图像
的全视场数据;
[0022] 步骤6:存储、显示图像;
[0023] 存储并显示步骤5拼接获得的该完整的一帧图像的全视场数据对应的图像;
[0024] 步骤7:循环执行步骤1至步骤6,直至采集处理完成。
[0025] 进一步地,为了满足星上传输的需求,步骤1中,采集的所述压缩码流数据为标准的JPEG2000压缩码流数据。
[0026] 进一步地,为了应对星上可能遇到的各种数据所需要的容错机制和针对特殊数据的处理机制,步骤2.1:判断是否存储有上一组压缩码流数据的剩余字节;
[0027] 若存储有上一组压缩码流数据的剩余字节,执行步骤2.2;
[0028] 若未存储有上一组压缩码流数据的剩余字节,跳过步骤2.2,执行步骤2.3;
[0029] 步骤2.2:按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据合并搜索,并根据搜索结果进行相应处理后,然后再执行步骤2.3;不同搜索结果
的相应处理如下:
[0030] 若搜索到上一组压缩码流数据以FF结尾且本组压缩码流数据以D9开头,则对上一组压缩码流数据的剩余字节与本组压缩码流数据开头的D9所构成的完整的一帧图像压缩
码流数据,执行步骤3;
[0031] 若搜索到本组压缩码流数据以3C 4F开头,则上一组压缩码流数据的剩余字节为错误数据,存储此错误数据;
[0032] 若搜索结果不是以上两种情况,则在本组压缩码流数据中逐行搜索第一个3C 4F,对上一组压缩码流数据的剩余字节与本组压缩码流数据中该搜索到的第一个3C 4F之前的
字节所构成的完整的一帧图像压缩码流数据,执行步骤3,并记录该搜索到的第一个3C 4F
所在行的行号;
[0033] 步骤2.3:设置起始搜索行号
[0034] 对于存储有上一组压缩码流数据的剩余字节的情况,根据步骤2.2的搜索结果,若上一组压缩码流数据以FF结尾且本组压缩码流数据以D9开头,或本组压缩码流数据以3C 
4F开头,则将本组压缩码流数据第二行对应的行号设置为起始搜索行号;若搜索结果不是
以上两种情况,则将步骤2.2中记录的所述该搜索到的第一个3C 4F所在行的行号加1,设置
为起始搜索行号;
[0035] 对于未存储有上一组压缩码流数据的剩余字节的情况,将本组压缩码流数据第一行对应的行号设置为起始搜索行号;
[0036] 步骤2.4:从步骤2.3设置的所述起始搜索行号的对应行开始,直至本组压缩码流数据倒数第二行末尾,逐行进行搜索,并进行相应处理;
[0037] 步骤2.4.1:判断是否已到达倒数第二行末尾;
[0038] 若未到达倒数第二行末尾,执行步骤2.4.2;
[0039] 若已到达倒数第二行末尾,执行步骤2.5;
[0040] 步骤2.4.2:判断在本组压缩码流数据中,在正搜索的搜索行之前,是否搜索到过3C 4F;
[0041] 若未搜索到过3C 4F,则先逐行搜索本组压缩码流数据中的第一个3C4F,搜索到第一个3C 4F后,再执行步骤2.4.3;
[0042] 若已搜索到过3C 4F,则直接执行步骤2.4.3;
[0043] 步骤2.4.3:逐行搜索本组压缩码流数据中的下一个3C 4F,并判断是否搜索到下一个3C 4F;
[0044] 若搜索到下一个3C 4F,则对与该搜索到的下一个3C 4F相邻的前一个3C 4F至该搜索到的下一个3C 4F之前的字节所构成的完整的一帧图像压缩码流数据执行步骤3,然后
返回步骤2.4.1;
[0045] 若搜索至本组压缩码流数据倒数第二行末尾,未搜索到下一个3C 4F,则直接执行步骤2.5;
[0046] 步骤2.5:对本组压缩码流数据的最后一行进行搜索,并进行相应处理;
[0047] 步骤2.5.1:判断本组压缩码流数据的最后一行是否以3C 4F开头;
[0048] 若最后一行是以3C 4F开头,则对与最后一行开头的3C 4F相邻的前一个3C 4F至最后一行开头的3C 4F之前的字节所构成的完整的一帧图像压缩码流数据执行步骤3,并记
录最后一行字节为本组压缩码流数据的剩余字节,然后执行步骤2.6;
[0049] 若最后一行不是以3C 4F开头,则执行步骤2.5.2;
[0050] 步骤2.5.2:判断在最后一行中是否搜索到码流结束标识;
[0051] 若搜索到码流结束标识,则对该搜索到的码流结束标识所在的完整的一帧图像压缩码流数据执行步骤3,并记录本组压缩码流数据的剩余字节为零;
[0052] 若未搜索到码流结束标识,则记录本组压缩码流数据中搜索到的最后一个3C 4F及其之后的字节为本组压缩码流数据的剩余字节,执行步骤2.6;
[0053] 步骤2.6:若本组压缩码流数据有剩余字节,根据步骤2.5记录的本组压缩码流数据的剩余字节,设置本组压缩码流数据的剩余字节并存储,供下组搜索调用。
[0054] 进一步地,为了减少数据出错,对于步骤1采集的完整的一帧图像原始数据,在完成步骤5之后,步骤5反馈已完成信号给步骤1,在步骤1接到所述已完成信号后,再对步骤1
采集的完整的下一帧图像原始数据,执行步骤5;
[0055] 对于步骤1采集的一组压缩码流数据,在完成步骤2、步骤3、步骤4以及步骤5四个步骤中的每一个步骤之后,均反馈该步骤已完成信号给上一步骤,在上一步骤接到所述已
完成信号后,再对步骤1采集的下一组压缩码流数据相对应的数据,执行自身对应的下一步
骤。如果各步骤不相互通信,数据处理不采用同步机制,比如正在拼接本帧的过程中,新的
一帧采集到来,这样会更新共享缓冲区,导致数据出错。
[0056] 进一步地,为了提高拼接的速率,从而使整个采集处理过程速率更高,步骤5中,所述拼接采用Openmp编译指令作加速处理。
[0057] 进一步地,为了保证传输的平稳性,所述步骤3还包括计算实时帧频和平均帧频的步骤。
[0058] 进一步地,为了使采集处理过程速率更高,步骤1中,所述采集卡采用BitFlow公司的KBN‑PCE‑CL4‑F采集卡。
[0059] 进一步地,步骤2、步骤3以及步骤6中的所述存储,采用多块PCI‑E固态盘组成的磁盘阵列实现。
[0060] 本发明的有益效果是:
[0061] (1)采用本发明的多模式高速率高光谱图像并行采集处理方法,能处理星上设备通过数传接口传输的图像的原始、压缩格式的可见光、红外光等各种模式数据;采用Medium
的Camera link采集卡采集,大幅提升采集速率;通过帧搜索、中转以及解压缩步骤能实现
对不定长的完整的一帧图像压缩码流数据的实时解压缩;通过拼接步骤能将采集的图像原
始数据或解压缩后获得的左视场图像解压缩码流数据和右视场图像解压缩码流数据拼接
成全视场数据;并可对拼接获得的全视场数据对应的图像存储并显示;因此,本发明解决了
现有图像采集系统功能单一、传输速率有限,不能同时处理可见光、红外光分别对应的图像
原始数据、压缩数据、半视场、全视场所组合的八种模式图像数据,难以满足航天载荷地面
测试中对图像采集系统要求的技术问题。采用本发明方法能满足星载可见光谱相机、红外
光谱相机的1040fps~1500fps可变高速帧频下的原始、压缩数据的采集处理需求。
[0062] (2)本发明的多模式高速率高光谱图像并行采集处理方法,适用于星载高光谱成像仪地面测试系统,采用该方法,其实时采集处理能力达13Gbps,处理和存储能力达
16Gbps,整个采集处理流延时小于0.2s。
[0063] (3)本发明的多模式高速率高光谱图像并行采集处理方法,提供了一种优选地的具体帧搜索方案,采用该帧搜索方案进行帧搜索,可以应对星上可能遇到的各种数据所需
要的容错机制和针对特殊数据的处理机制。
[0064] (4)本发明的多模式高速率高光谱图像并行采集处理方法,优选地各步骤相互通信,数据处理采用同步机制,可以有效防止数据出错。
[0065] (5)本发明的多模式高速率高光谱图像并行采集处理方法,优选地拼接采用Openmp编译指令作加速处理,这样可以提高拼接的速率,从而使整个采集处理过程速率更
高。

附图说明

[0066] 图1是采用本发明方法采集处理图像原始数据的流程图;
[0067] 图2是采用本发明方法采集处理图像压缩码流数据的流程图;
[0068] 图3是采用本发明方法对图像原始数据采集处理时,其同步机制示意图;
[0069] 图4是采用本发明方法对图像压缩码流数据采集处理时,其同步机制示意图;
[0070] 图5是本发明实施例中的帧搜索整体流程图;
[0071] 图6是本发明实施例的帧搜索中,当存储有上一组压缩码流数据的剩余字节时,按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据合并搜索,并
根据搜索结果进行相应处理的流程图;
[0072] 图7是本发明实施例的帧搜索中,从设置的起始搜索行号的对应行开始,直至本组压缩码流数据倒数第二行末尾,逐行进行搜索,并进行相应处理的流程图;
[0073] 图8是本发明实施例的帧搜索中,对本组压缩码流数据的最后一行进行搜索,并进行相应处理的流程图。

具体实施方式

[0074] 下面结合附图和具体实施方式对本发明进行详细说明。
[0075] 本发明一种多模式高速率高光谱图像并行采集处理方法,包括以下步骤:
[0076] 步骤1:数据采集
[0077] 采用Medium的Camera link采集卡采集图像数据;
[0078] 判断该采集的图像数据是完整的一帧图像原始数据,还是一组字节长度为定值的相对应的左视场图像压缩码流数据和右视场图像压缩码流数据;
[0079] 若采集的图像数据是完整的一帧图像原始数据,执行步骤5;
[0080] 若采集的图像数据是一组字节长度为定值的相对应的左视场图像压缩码流数据和右视场图像压缩码流数据,对采集到的该组两个视场图像的压缩码流数据分别独立执行
步骤2;采用本发明方法采集处理图像原始数据的流程图参见图1,采集图像原始数据时,采
用四个Medium的Camera link采集卡;采用本发明方法采集处理图像压缩码流数据的流程
图参见图2;采集压缩码流数据时,采用两个Medium的Camera link采集卡;
[0081] 步骤2:帧搜索
[0082] 判断是否存储有上一组压缩码流数据的剩余字节;
[0083] 若存储有上一组压缩码流数据的剩余字节,则依据完整的一帧图像压缩码流数据的标志位,按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据
合并搜索;若未存储有上一组压缩码流数据的剩余字节,则依据完整的一帧图像压缩码流
数据的标志位,对本组压缩码流数据进行帧搜索;
[0084] 对搜索中发现的错误数据进行存储;对搜索到的完整的一帧图像压缩码流数据执行步骤3;若本组压缩码流数据有剩余字节,对剩余字节进行存储,供下组搜索调用;
[0085] 步骤3:中转
[0086] 对步骤2中帧搜索到的完整的一帧图像压缩码流数据进行帧连续性判读,若连续,则执行步骤4;若不连续,则存储此错误信息后,执行步骤4;
[0087] 步骤4:解压缩
[0088] 复制数据,进行解压缩,获得该完整的一帧图像压缩码流数据对应的相应视场图像解压缩码流数据;
[0089] 步骤5:拼接
[0090] 对于步骤1采集的完整的一帧图像原始数据,从每个采集卡采集的图像原始数据中各取一行图像原始数据,依照像元正常顺序排列整齐,拼接形成完整的全视场数据,然后
循环读取完整的一帧图像原始数据的所有行,拼接获得该完整的一帧图像的全视场数据;
[0091] 或者对于经过步骤4解压缩后获得的完整的一帧图像的左视场图像解压缩码流数据和右视场图像解压缩码流数据,从左视场图像解压缩码流数据和右视场图像解压缩码流
数据中各取一行解压缩码流数据,依照像元正常顺序排列整齐,拼接形成完整的全视场数
据,然后循环读取完整的一帧图像解压缩码流数据的所有行,拼接获得该完整的一帧图像
的全视场数据;
[0092] 步骤6:存储、显示图像;
[0093] 存储并显示步骤5拼接获得的该完整的一帧图像的全视场数据对应的图像;
[0094] 步骤7:循环执行步骤1至步骤6,直至采集处理完成。
[0095] 图1是采用本发明方法采集处理图像原始数据的流程图。图2是采用本发明方法采集处理图像压缩码流数据的流程图。
[0096] 处理高速率的高光谱数据,本发明从前端采集到后端存储、显示,通过并行和多线程技术提高其处理能力。本发明实施例中,上述步骤1中采集时,Medium的Camera link(一
个工业高速串口数据和连接标准,旨在简化图像采集接口,方便高速数字相机和数据采集
卡的连接)采集卡采用美国BitFlow公司的KBN‑PCE‑CL4‑F采集卡。在标准协议Camera Link
中,其接口有三种配置Base、Medium、Full。本发明中,每个Medium的Camera link采集卡
75MHz下最高速率为3.6Gbps。上述步骤2、步骤3以及步骤6中的存储,采用多块PCI‑E(高速
串行计算机扩展总线标准,peripheral component interconnect express)固态盘组成的
磁盘阵列(RAID)实现。
[0097] 针对高速数据流而言,每个步骤均得作高速处理,不然就会成为实时流中的短板。本发明中优选地对拼接线程作加速处理。因为针对星上不同探测器而言,像元输出顺序可
能是从左至右从上至下,有时可能是从右至左从下至上输出,需要针对不同的图像块作镜
像翻转处理,故而需要的时间较长。以采用本发明方法对图像原始数据采集处理时的拼接
为例,拼接线程从四个采集线程中分别取一行图像原始数据,依照像元正常顺序排列整齐,
拼接形成完整的全视场数据,然后循环读取完整的一帧图像原始数据的所有行。该拼接采
用Openmp编译指令作加速处理非常便利。例如采用“#pragma omp parallel for private
(i)schedule(dynamic)num_threads(6)”这样的编译指令,利用6个动态分配线程同时处理
多行读写,实现6倍加速。其中i为行号,为每个线程自己的变量私有副本。
[0098] 本发明中,为了保证高速(1500帧/s)的数据流,防止数据出错,优选地各步骤相互作通信,数据处理采用同步机制。假如不采用同步机制,比如正在进行本帧拼接的过程中,
新的一帧采集到来,这样会更新共享缓冲区,导致数据出错。图3是采用本发明方法对图像
原始数据采集处理时,其同步机制示意图。从图3中可以看出,采用本发明方法对图像原始
数据采集处理时,对于步骤1采集的完整的一帧图像原始数据,在完成步骤5之后,步骤5反
馈已完成信号给步骤1,在步骤1接到已完成信号后,再对步骤1采集的完整的下一帧图像原
始数据,执行步骤5。图4是采用本发明方法对图像压缩码流数据采集处理时,其同步机制示
意图。从图4中可以看出,采用本发明方法对图像压缩码流数据采集处理时,对于步骤1采集
的一组压缩码流数据,在完成步骤2、步骤3、步骤4以及步骤5四个步骤中的每一个步骤之
后,均反馈该步骤已完成信号给上一步骤,在上一步骤接到已完成信号后,再对步骤1采集
的下一组压缩码流数据相对应的数据,执行自身对应的下一步骤。本发明实施例中采用
WaitForMultipleObjects等待多个信号量,某一线程处理完成后,ReleaseSemaphore释放
信号量,以便将相关阻塞线程重新运行起来。
[0099] 参见图2,采用本发明方法采集处理图像压缩码流数据时,帧搜索线程是本发明方法的一大特色。由于采集卡每次采集的压缩码流数据的字节长度为定值,然而完整的一帧
图像压缩码流数据字节长度却是不断变化的,采集卡每次采集的压缩码流数据字节长度往
往会大于完整的一帧图像压缩码流数据字节长度,故而每次帧搜索时,经常会剩余部分字
节数据,需要在下一帧图像帧搜索时,一并进行帧搜索。本发明中优选地帧搜索时,按图5、
图6、图7以及图8所示的流程图进行帧搜索,这样可以应对星上可能遇到的各种数据所需要
的容错机制和针对特殊数据的处理机制。这是因为星上传输的是标准的JPEG2000压缩码
流。对于标准的JPEG2000压缩码流数据,每一帧均有码流开始标识和结束标识,开始标识为
“FF 4F FF 51”,结束标识为“FF D9”。在码流数据前有辅助数据,以”3C 4F”开头,帧计数位
于3C 4F和开始标识之间。因此,本发明实施例中优选地步骤1中,采集的压缩码流数据为标
准的JPEG2000压缩码流数据。采集卡每次采集1024×128字节大小的压缩码流数据。帧开始
标识“3C 4F”位于每一行的开始,共128行。帧搜索线程依照上述这些标志位检索完整的一
帧图像压缩码流数据。按图5、图6、图7以及图8所示流程进行帧搜索时,上述步骤2的帧搜索
具体包括以下步骤:
[0100] 参见图5,步骤2.1:判断是否存储有上一组压缩码流数据的剩余字节;
[0101] 若存储有上一组压缩码流数据的剩余字节,执行步骤2.2;
[0102] 若未存储有上一组压缩码流数据的剩余字节,跳过步骤2.2,执行步骤2.3;
[0103] 步骤2.2:按先后顺序依次对存储的上一组压缩码流数据的剩余字节和本组压缩码流数据合并搜索,并根据搜索结果进行相应处理后,然后再执行步骤2.3;参见图6,不同
搜索结果的相应处理如下:
[0104] 若搜索到上一组压缩码流数据以FF结尾且本组压缩码流数据以D9开头,则对上一组压缩码流数据的剩余字节与本组压缩码流数据开头的D9所构成的完整的一帧图像压缩
码流数据,执行步骤3;
[0105] 若搜索到本组压缩码流数据以3C 4F开头,则上一组压缩码流数据的剩余字节为错误数据,存储此错误数据;
[0106] 若搜索结果不是以上两种情况,则在本组压缩码流数据中逐行搜索第一个3C 4F,对上一组压缩码流数据的剩余字节与本组压缩码流数据中该搜索到的第一个3C 4F之前的
字节所构成的完整的一帧图像压缩码流数据,执行步骤3,并记录该搜索到的第一个3C 4F
所在行的行号;
[0107] 步骤2.3:设置起始搜索行号
[0108] 对于存储有上一组压缩码流数据的剩余字节的情况,根据步骤2.2的搜索结果,若上一组压缩码流数据以FF结尾且本组压缩码流数据以D9开头,或本组压缩码流数据以3C 
4F开头,则将本组压缩码流数据第二行对应的行号设置为起始搜索行号;若搜索结果不是
以上两种情况,则将步骤2.2中记录的所述该搜索到的第一个3C 4F所在行的行号加1,设置
为起始搜索行号;
[0109] 对于未存储有上一组压缩码流数据的剩余字节的情况,将本组压缩码流数据第一行对应的行号设置为起始搜索行号;
[0110] 步骤2.4:从步骤2.3设置的所述起始搜索行号的对应行开始,直至本组压缩码流数据倒数第二行末尾,逐行进行搜索,并进行相应处理,参见图7;
[0111] 步骤2.4.1:判断是否已到达倒数第二行末尾;
[0112] 若未到达倒数第二行末尾,执行步骤2.4.2;
[0113] 若已到达倒数第二行末尾,执行步骤2.5;
[0114] 步骤2.4.2:判断在本组压缩码流数据中,在正搜索的搜索行之前,是否搜索到过3C 4F;
[0115] 若未搜索到过3C 4F,则先逐行搜索本组压缩码流数据中的第一个3C4F,搜索到第一个3C 4F后,再执行步骤2.4.3;
[0116] 若已搜索到过3C 4F,则直接执行步骤2.4.3;
[0117] 步骤2.4.3:逐行搜索本组压缩码流数据中的下一个3C 4F,并判断是否搜索到下一个3C 4F;
[0118] 若搜索到下一个3C 4F,则对与该搜索到的下一个3C 4F相邻的前一个3C 4F至该搜索到的下一个3C 4F之前的字节所构成的完整的一帧图像压缩码流数据执行步骤3,然后
返回步骤2.4.1;
[0119] 若搜索至本组压缩码流数据倒数第二行末尾,未搜索到下一个3C 4F,则直接执行步骤2.5;
[0120] 步骤2.5:对本组压缩码流数据的最后一行进行搜索,并进行相应处理,参见图8;
[0121] 步骤2.5.1:判断本组压缩码流数据的最后一行是否以3C 4F开头;
[0122] 若最后一行是以3C 4F开头,则对与最后一行开头的3C 4F相邻的前一个3C 4F至最后一行开头的3C 4F之前的字节所构成的完整的一帧图像压缩码流数据执行步骤3,并记
录最后一行字节为本组压缩码流数据的剩余字节,然后执行步骤2.6;
[0123] 若最后一行不是以3C 4F开头,则执行步骤2.5.2;
[0124] 步骤2.5.2:判断在最后一行中是否搜索到码流结束标识;
[0125] 若搜索到码流结束标识,则对该搜索到的码流结束标识所在的完整的一帧图像压缩码流数据执行步骤3,并记录本组压缩码流数据的剩余字节为零;
[0126] 若未搜索到码流结束标识,则记录本组压缩码流数据中搜索到的最后一个3C 4F及其之后的字节为本组压缩码流数据的剩余字节,执行步骤2.6;
[0127] 步骤2.6:若本组压缩码流数据有剩余字节,根据步骤2.5记录的本组压缩码流数据的剩余字节,设置本组压缩码流数据的剩余字节并存储,供下组搜索调用。
[0128] 本发明中的中转线程,对步骤2中帧搜索到的完整的一帧图像压缩码流数据进行帧连续性判读,若连续,则进行解压缩,若不连续,则存储此错误信息后,进行解压缩。本发
明实施例中优选地上述步骤3的中转还包括计算实时帧频和平均帧频的步骤,以保证传输
的平稳性。
[0129] 本发明中的解压线程,对中转线程中转的完整的一帧图像压缩码流数据进行复制数据,解压缩,获得该完整的一帧图像压缩码流数据对应的相应视场图像解压缩码流数据。
[0130] 本发明中的存储线程和快视线程用于对拼接线程拼接获得的该完整的一帧图像的全视场数据对应的图像进行存储、显示。
[0131] 本发明方法适用于星载高光谱成像仪测试系统,本发明方法对星上多模式(原始、压缩)数据有很强的适应性,其13Gbps的实时采集处理能力,16Gbps的处理和存储能力,相
比传统的采集处理方法,其能力大幅度提升。同时,本发明中由于多个线程间合理的同步机
制和加速措施,实验结果显示整个采集处理流延时小于0.2s。本发明方法能满足星载可见
光谱相机、红外光谱相机的1040fps~1500fps可变高速帧频下的原始、压缩数据的采集处
理需求。