获取图片:图像下载和处理

    从图像曝光到最终传送给ICS,这期间发生了很多事情。系统中的每个照相机都有自己的控制电子设备来处理命令和把从CCD获取的模拟信号转换为12位的数字值,然后把数据存储在硬件缓冲区中,直到飞行软件可以把数据下载到图像槽。

    获取图片:图像下载和处理 - 图1

    图 3-8:图像获取、处理和“下行”处理的MSC表示

    以上所有这些都是在防辐射的可编程门阵列设备中的嵌入式逻辑控制之下发生的。

    照相机一旦获取到一张图像,并把它写入图像槽,就会对该图像执行各种方式的处理,每种处理都是在图像槽的约束下就地执行。由于没有额外大的(图像尺寸)缓冲区可以供处理过程或者保存结果数据使用,因此,只有几个小的缓冲区来保存必要的中间结果。使用就地处理方式是设计成像软件的关键因素,它允许三个任务在整个系统中只占用很少的内存。图3-9显示了对于凤凰号火星着陆探测器成像飞行软件,多缓冲区的处理方式和单缓冲区(即槽)的就地设计策略之间的区别。

    我们采取就地单缓冲区处理方式,是为了满足图像处理需求,并且占用的内存仍然在预分配给照相机的内存范围之内,在早期设计时采用的一个权衡。虽然这种设计处理方式,确实满足内存需求,其不足之处是无法提供“undo”操作。如图3-10所示,如果在图像处理时出现错误,那么会导致或者整个图像丢失,或者是返回的是部分错乱的图像。

    获取图片:图像下载和处理 - 图2

    图 3-9:多数据缓冲区和单数据缓冲区

    获取图片:图像下载和处理 - 图3

    图 3-10:就地数据处理

    就地数据处理方式的处理算法是应用于图像槽中的全程数据处理,包括读数据、处理数据及写回结果数据。有些算法,如像素纠正算法,并没有改变图像的几何信息,而只是基于已知一些“坏”像素的一个“上行”表,简单地对单个像素值进行修改(一个像素有可能是“坏”像素有两个原因:一是其没有相邻的像素那么敏感,二是它可能过于敏感)。在空间环境中,人们认为奇特的宇宙射线可能会穿透CCD上的一个像素,导致该像素有缺陷。其他的操作,比如图像子图定位,从原始图像中抽取一块区域,把该区域写回到槽中,然后相应地调整高度和宽度参数。抽样技术采用了一种数学均值计算的方式,通过把像素按4、9或16分组的方式,每个组生成的是单一的结果像素,从而减少图像大小。结果像素在图像大小上相应地缩小了1/2、1/3或者1/4;而最小化“梯度步长”的处理方式,通常是在当图像通过子抽样技术,只保留每第2、第3或者第4个像素,而抛弃其他像素来达到减小图像大小。这种操作也把修改后的结果数据写回到图像槽中,并相应地调整了其几何参数。

    当一个成像任务完成了根据命令执行的处理操作,它就会向ICS发送一条消息(如之前所述),然后执行消息队列中的下一条命令。如果有可用的图像槽,该任务会执行获取另一个图像的处理操作。