数字相机的读出和帧率Digital Camera Readout and Frame Rates
近来在宽场荧光和共聚焦显微镜中的成像应用越来越集中在记录快速瞬态动态过程的苛刻要求上,这些瞬态动态过程可能与非常小的光子信号有关,并且通常只能在活细胞或组织中进行研究。生产高度特异性的荧光标记物和抗体的技术进步,以及相机,激光和计算机硬件的显著进步,为许多领域的许多突破性研究成就做出了贡献。随着通常采用低噪声冷却电荷耦合器件(CCD)检测器的高性能相机系统变得越来越能够以视频速率甚至更高的速度捕获相对较弱的信号,某些性能因素必将变得更加重要。相机系统的读出率和帧率是相互关联的参数,这些参数对于系统以高时间频率记录标本数据的能力至关重要。

专为定量成像而设计的传感器,例如高性能光学显微镜相机中使用的传感器,主要采用三种众所周知的CCD架构之一的变体:全帧,帧转移或行间转移。帧转移和行间转移格式通常提供更快的帧速率功能,但是制造商在每种类型的设计中结合了一系列结构和时钟增强功能,以提高性能。图1说明了一个全帧CCD传感器,该传感器被设计为通过使用分离的并行寄存器来实现高帧速率,它通过时钟控制电荷向两个方向的向双串行寄存器转移,每个串行寄存器都有一个单独的输出放大器。通过这种转移方案,传感器的帧速率大约可以提高一倍。标准CCD架构的其他一些修改提供了类似的优点,并在随后的讨论中进行了简要介绍。
读出速率由数字化单个像素所需的时间(串行转换时间)决定,并定义为该值的倒数。因为单个像素的转换时间大大少于一秒,所以典型的读出速率采用每秒像素的单位。该速率通常表示为频率(赫兹Hz),一些相机制造商将此规格称为像素时钟速率或简称为时钟速率。成像系统的帧速率结合了曝光时间,并将单个像素的读出速率扩展到整个像素阵列。它定义为获取图像并将图像数据完全读出到放大器所需时间的倒数。通常以每秒帧数(fps)或频率单位(Hz)表示此变量。通过将总像素数字化时间与曝光(积分)时间之和取反,可以得到帧速率的近似值,如下所示:

其中,Npixel是要读取的传感器像素数,tread和Texp分别表示单像素读取时间和曝光时间。在等式中,阵列的总像素数字化时间由总像素数除以单个像素读取时间Npixel/tread的商表示。
尽管这种用于计算帧速率的简化表达式用于某些比较目的很有用,但它忽略了影响实际实现的真实帧速率的多种其他因素,其中包括CCD的操作模式以及在给定的应用中相对于帧读取时间所需的曝光时间。特定传感器设计所采用的电荷收集和转移机制的细节,以及操作模式的选择(如像素合并和减少扫描阵列),对确定实际成像帧速率非常重要。此外,隐含地以牺牲曝光持续时间为代价来获得绝对最大帧速率,在这种情况下,相对于读出累积电荷所需的时间而言,较长的曝光时间成为限制因素。在列出相机系统规格时,制造商可以指定在“典型”条件下达到的帧速率,或者在某些情况下,将曝光时间为零的帧速率值指定为用于比较使用不同扫描模式或阵列尺寸获得的性能。
真正的帧频值由组合的帧获取时间和帧读出时间确定,每个时间都取决于特定于相机系统和应用的操作细节。因此,从数量上看,帧速率是这两个变量之和的倒数,如以下等式所示:

为了获得对真实帧速率的准确评估,与使用像素数除以读出速率再加上曝光时间得到的简化近似值相比,需要更详细地考虑两个主要成分。 虽然帧获取和帧读出时间在概念上很明显,但每个都包含随CCD架构和操作条件而变化的几个操作因素。 许多基本操作对帧获取和帧读取时间间隔有贡献,下面将对这些基本操作列出和讨论。
帧获取时间组成:
- 开始积分之前从并行寄存器清除电荷所需的时间
- 采用机械快门的CCD的快门打开延迟
- 曝光时间
- 快门关闭延迟(如果有)
帧读出时间组成:
- 开始读出之前从串行寄存器清除电荷所需的时间。
- 并行行移位所需的时间乘以阵列中的行数。
- 串行丢弃时间乘以不打算读取的像素数。
- 每个像素的串行转换(数字化)时间乘以要读取的像素数。
在图像获取之前,由于暗电流,宇宙射线相互作用或其他电荷产生事件,许多CCD传感器有必要清除像素阵列中可能在曝光之前累积的电荷。 清除整个并行寄存器所需的时间(称为并行清除时间)取决于电荷转移时钟周期,可以将其重复几次以完全清除电荷。 所需的总时间等于并行清除时间乘以清除周期重复次数。 在开始实际的帧积分之前,消除阵列中累积的任何电荷可以减少图像拖影Smear的现象,并可以更精确地控制帧与帧之间的曝光时间。 通常,当前的CCD传感器执行几个并行的清除周期,但是由于电荷被丢弃并且不必进行数字化,因此这些周期比正常的读取时间快。

打开和关闭快门以控制曝光时间的延迟严格取决于特定的相机系统及其操作方式。某些CCD架构要求在图像获取的读取阶段使用外部快门将阵列遮挡住光线。如果使用机械快门,则操作时间可能会大大增加。许多高灵敏度系统基于帧转移CCD架构,该架构具有独立的片上存储区和积分区,并且可以在没有快门的情况下以高速率连续运行。在许多光学显微应用中,曝光时间或积分时间通常是决定帧获取时间并限制可实现的最大帧速率的主要因素。
在数据获取阶段之后,根据CCD体系结构,通过几种不同的转移序列之一读取收集到的电荷。对于全帧器件,通过将像素行直接从并行寄存器移入串行寄存器以转移到输出放大器来进行读出。帧转移CCD的不同之处在于,在信号积分之后,通过同时并行地为两个部分提供时钟,然后将存储部分中的数据单行移位到串行寄存器中,从而将整个图像阵列中的数据转移到存储阵列中。从图像到存储阵列的转移迅速发生,并且在读取存储阵列时,可以使用图像阵列为下一帧积分电荷。因此,在确定帧转移器件的帧读取时间时,从积分到存储部分的转移通常并不重要。无论CCD是全帧设计还是帧转移设计,在从并行寄存器转移电荷之前,可能有必要从串行寄存器中清除累积的电荷。此操作所需的时间称为串行清除时间。
清除所有残留的串行寄存器电荷后,图像读出以门控电位的时钟序列开始,该时序使并行寄存器中的所有电荷包向串行寄存器偏移一个像素行,从而使第一行(与串行寄存器相邻) )移入串行寄存器。并行移位时间是执行单个并行移位周期所需的时间。此时,每列中的第一个电荷包就位,可以通过串行寄存器转移到输出节点进行处理。将并行移位时间乘以图像阵列中的行数可得出一部分帧读取时间,这是由像素行向串行寄存器的并行移位所占的。
请注意,CCD读出的正常模式是将一个像素行移入串行寄存器,然后在寄存器中执行一系列列移位来读取该行中的每个电荷包,并在每个像素的电荷行进到输出节点并被收集以进行放大和处理读出。当通过交替的列移位和像素读取周期读出了整个串行寄存器时,另一个并行移位周期将阵列的下一行移入串行寄存器。重复此过程,直到所有电荷移出并行寄存器。帧读出时间的主要部分是像素读取时间或串行转换时间,它乘以从图像阵列读取的像素总数。图2示意性地表示了从全画幅CCD累积,转移和读出电荷的正常顺序。
图2(a)中所示的是已截断的平行CCD像素阵列(4 x 4),该像素阵列已暴露于光下,以便累积光电子的电荷图案(以红色球体表示)。并行寄存器中的电荷从图2(a)移到图2(b)一行,并且并行寄存器中的光电子边缘行被转移到串行寄存器中。在图2(c)中,串行寄存器中的第一个像素在转移到放大器(图2(d))并输出以进行处理之前,先移入输出节点。同时在图2(d)中,串行寄存器中的电荷向输出节点移动一个像素。串行寄存器中的下一个电荷在图2(e)中从输出节点移至放大器,而在串行寄存器中的其他电荷在图2(f)中再次移向输出一个像素。重复此序列,直到整个电荷图案从并行阵列通过串行寄存器转移到放大器为止。

由于像素读取周期决定了帧读取时间,因此应该丢弃或忽略不必要的像素,而不要对其进行测量。这是一种读取CCD的缩小阵列或子阵列可以提高相机帧速率的机制。在读出周期中,可以丢弃在帧中定义的感兴趣区域(ROI)之前或之后发生的从芯片转移的像素。其他像素(也必须丢弃)通常位于输出节点附近,从而扩展了串行寄存器的大小。大多数CCD的串行寄存器在成像阵列的每一列都有一个像素,在数据阵列和输出放大器之间的寄存器末尾还有一个额外的数字(通常为10-50)(扩展像素,见图1)。这些额外的像素既可提供暗参考电平,又有助于在图像数据到达输出放大器之前稳定串行时钟脉冲和信号链。
丢弃时间可以与串行移位以及并行行移位相关联,并且通过将适当的丢弃时间乘以执行的相应丢弃次数来获得每个帧周期的总丢弃时间。在忽略像素读取步骤的同时,通过在串行寄存器中执行重复移位,可以忽略(丢弃)单个像素,从而导致此步骤的离散时间值称为串行丢弃时间。通过编程进行重复并行移位可丢弃整个像素行,而无需执行串行行读出。因此,并行丢弃时间相当于并行移位时间,任何节省时间的结果都是将必要串行转换的总数减少,减少丢弃行中的像素数。实际上,可以针对特定应用进行信号输出编程,通过操作并行和串行转移以及电荷读出周期的时钟序列,可以读取图像帧的某些部分实现帧速率的提高。
像素合并是另一种机制,可用于减少CCD成像中的图像读出时间并提高帧速率,其执行方式与子阵列显示的相同,其通过控制传感器生成的电荷包的转移和数字化。像素合并技术在读出过程中合并了来自相邻像素的电荷,从而改善了信噪比和系统的动态范围。尽管有效地增大像素大小会降低空间分辨率,但是减少了待转移和数字化的电荷包的数量,从而提高了读出速度同时改善了信号电平。
并行和串行像素合并都是可行的,并且与减少阵列读取类似,执行电荷积分周期,但随后用于电荷转移和像素读出的时钟序列与正常编程的不同。在读出周期内,通过并行时钟将两个或多个像素并行转移到串行寄存器中,同时保持串行时钟固定,从而执行并行合并。效果是在串行移位周期开始之前,将多行像素电荷累加到每个串行像素中。串行像素合并过程在电荷被读出之前,将两个或多个电荷包从串行寄存器转移到CCD输出节点。图3给出了一个像素合并的读出序列,其中来自两个并行转移的电荷在串行寄存器中相加,然后将两个串行像素相加到输出节点中读出。因此,每个读出周期包含来自四个相邻像素的电荷。
可以利用各种程度的像素合并,并且通过指定在并行和串行移位方向上组合的像素数量(称为合并因子,值为1表示没有合并)来表示。例如,3 x 3合并因子指通过并行移位重复将三个电荷包加到串行寄存器的每个孔中,然后在每个电荷读出周期中进行三个串行移位重复。因此,对于3x 3像素合并,被数字化以用于图像显示或定量分析的每个电荷包代表CCD阵列的九个相邻像素。实际上,只要合并像素的电荷总和不超过设备的满阱容量,并行和串行合并因子的任何组合都可以编程为读出模式。为了适应电荷求和并保持电荷转移效率,串行寄存器中的像素通常设计为具有比并行寄存器中的像素更高的阱容量。关于像素合并对帧读取时间的影响,并行移位和串行转换时间不受影响,并且增加的读取速度仅是由于减少了通过读取节点处理的电荷包(组合像素)的数量。
为了总结影响帧获取时间和帧读出时间并因此确定相机的真实帧速率,可以使用以下表达式:
帧获取时间 = (TPR×Nclear)+Topen+Texp+Tclose
其中TPR和Nclear是清除并行寄存器所需的时间和执行的清除周期数,Topen,Texp和Tclose表示快门打开延迟时间,曝光时间和快门关闭延迟时间。
帧读出时间= TSR+(Trow×Nrow)+(TSD×Ndiscard)+(tread×Nread)
其中TSR表示清除串行寄存器所需的时间,Trow和Nrow是并行行移位所需的时间以及阵列中的行数,TSD和Ndiscard是串行丢弃时间和丢弃的像素数,tread是每个像素的串行转换时间,Nread表示要读出的像素数。后一数字最大为像素阵列的总大小,并且根据子阵列读出和/或像素合并操作而减少。
尽管帧获取时间和帧读出时间在确定CCD帧速率时结合在一起,但是相互关系可能并不能简单地相加,因为在不同的操作模式和不同的CCD体系结构中,两个过程的部分重叠程度不同。 CCD传感器中采用的体系结构设计会影响积分和读出的过程是必须顺序进行还是可以同时发生,并且在不同情况下,帧速率可能受到曝光时间或读出时间的限制。在帧转移设备中,在数据收集间隔期间,时钟电压不会循环进行成像和存储部分之间的电荷转移。但是,先前收集并保存在芯片存储区域中的数据可以随意计时和转移,同时在成像部分同时收集信号。因此,就曝光和读出序列的定时而言,帧转移传感器可以有几种不同的模式进行操作。行间转移CCD具有帧转移设备的许多性能属性,因为它们还合并了一个存储区域,该存储区域不是作为单独的存储阵列排列,而是作为遮光像素的列与活动非遮光像素的列交替排列。跨并行寄存器的成像像素和存储像素的交替列允许在行间遮掩下将积分在有效列中的信号快速移位,将其读出到串行寄存器,同时将下一帧的电荷积分到未遮光像素中列。

如前所述,帧速率与在CCD系统中获取和读出光子产生的电荷所需的总时间之间的关系部分取决于CCD所采用的曝光和读出模式。通常,无论相机的工作模式如何,图像获取的电荷积分阶段都以相同的方式执行,而选择子阵列图像输出或像素合并等功能可以提高帧速率,主要是由于减少了读取的帧。从CCD寄存器清除电荷所需的时间以及移位时间足够短,因此它们不会对读出速率产生重大影响,而读出速率主要由像素读取时间(串行转换时间)决定。
在施加到CCD电极的时钟信号重复循环的影响下,各个电荷包通过并行寄存器和串行寄存器移位。每个像素通常由三个电极驱动,允许三相时钟周期,其中每个像素的相应电极并联连接,每个像素的时钟产生相同的电荷转移效果。三个时钟相位的单个周期在并行寄存器中产生单行(垂直)移位,在串行寄存器中产生单列(水平)移位。通过修改施加到电极上的时钟周期序列,可以实现操作模式的改变,例如选择子阵列扫描或各种合并因子。在选择相机系统时,时钟序列在相机中可以控制的定时的程度可能是系统是否适合特定应用的决定性因素。
因为曝光时间和读出时间之间的相互关系对于确定相机帧速率至关重要,所以在时序图中通常会针对特定CCD架构支持的不同操作模式说明这两个变量。高性能相机系统通常采用帧转移或行间转移传感器来实现最快的帧速率和连续成像,而无需使用机械快门来控制曝光时间。由于这些CCD设计既包括感光传感器区域,又包括遮光区域并用于将帧转移到串行寄存器的存储区域,因此曝光和读出的两个过程可能会在时间上重叠。相机系统可以提供可选的曝光和读出模式,基于两种操作是依次独立执行还是同时执行,它们可分为非重叠和重叠模式。其他系统则以不同的方式或结合其他功能对这些变量进行控制。例如,时钟模式可以由相机固件自动确定,以根据需要利用重叠或不重叠的曝光读取序列来最大程度地提高帧速率,或者可以设置成不考虑高帧速率而优化灵敏度。高灵敏度操作通常需要不重叠的操作,而与曝光时间无关。
当CCD在非重叠模式下运行时,可以指定任何曝光时间并完全完成曝光,并且在曝光结束后会顺序读出。图4给出了该曝光-读出模式的时序图。在非重叠模式下,对序列中的每个帧重复相同的周期;清除CCD的残留电荷,在指定的曝光时间内对电荷进行积分,将电荷从感光阵列转移到遮光的存储阵列(独立的存储部分或行间阵列),最后读出电荷。根据特定情况,曝光时间可能比读取时间短或长,并且每帧的总时间是两个间隔的总和(在没有机械快门延迟的情况下),因为清除时间和将数据转移到存储阵列中的速度非常快,并且在确定帧速率方面并不重要。该操作模式提供了与常规全帧设备体系结构相似的性能。时序图(图4)说明了一系列三个图像帧的曝光和读出时间序列。使用示例中所示的任意时间,曝光时间为10毫秒(ms)和帧读出时间为50毫秒,获取三帧的总时间为180毫秒(3 x 10毫秒+ 3 x 50毫秒)。因此,相应的帧速率为每秒16.7帧(3帧/0.180秒)。

重叠模式用于需要记录动态过程的应用中,其中需要连续成像以提供足够的时间分辨率。为了使用于数据收集的时间比例最大化,CCD连续运行(占空比为100%)。初始曝光后,数据被移至帧转移阵列,下一个曝光间隔立即开始,而前一帧读取开始。该序列继续进行,从帧到帧的时间由曝光时间或帧读出时间确定,取决于哪个时间较长。因此,最小曝光时间相当于帧读出时间。在编程的曝光时间小于读出时间的情况下,序列中的第一个帧在被编程的精确时间内曝光,随后的帧在前面的帧被读出期间曝光。序列定时实际上是由较长的读出周期控制的。图5所示为重叠模式操作的时序图,其中编程曝光时间为10毫秒,而CCD读出时间为50毫秒,如先前(非重叠模式;图4)示例中所示的。在此模式下获取3帧所需的总时间为160毫秒,是根据一次10毫秒的曝光,然后是两次50毫秒的曝光而计算的,这重叠了三个读出周期(每个50ms)(10 ms + 3 x 50ms)。在重叠模式操作可使三帧序列的时间减少20毫秒,相应的帧速率为每秒18.8帧(3帧/0.160秒)。在这种类型的序列中,第一帧的曝光时间比后一帧的曝光时间短,并且图像强度通常不匹配。
当编程的曝光时间小于帧读取时间时,以下通用表达式可用于计算捕获指定帧数(N)所需的总时间:
TN =(Tread×N)+Texp
其中TN是捕获N帧序列所需的总时间,Tread是单帧读出时间,Texp表示编程的曝光时间。
当曝光时间大于帧读出时间时,在重叠模式下的操作期间会发生第二种可能的时序变化,因此会控制顺序帧的时序。因此,序列中的每一帧都会在系统控制软件中指定的确切时间内曝光,并且所有图像的强度均相等。如该操作模式的时序图所示(图6),在序列的初始帧曝光后,在每个后续帧的曝光期间进行读取,并且该序列以最后的只读出周期结束。图中所示的时序图是针对三个曝光时间分别为75毫秒的帧和CCD帧读出时间为50毫秒的情况。三帧序列需要275毫秒,计算为三个曝光间隔和一个附加的读取周期(3 x 75 ms + 50ms),并导致每秒10.9帧的帧速率(3帧/0.275秒)。
当编程的曝光时间大于帧读出时间时,以下方程式用于计算重叠模式下N帧序列捕获时间:
TN =(Texp×N)+Tread
其中TN是捕获N帧序列所需的总时间,Texp表示编程的曝光时间,Tread是单帧读出时间。
尽管上述操作模式与光学显微应用中常见的许多情况相对应,包括那些需要最大帧速率成像的情况,但某些高性能相机系统可以通过采用外部触发源来实现其他定时模式。对于用于跟踪动态过程的指定时延技术(包括时间分辨荧光和离子扩散研究),精确触发图像序列是必需的。图像序列可以由延迟发生器或与激光激发脉冲协调的激光定时信号以及其他来源触发。通常使用几种不同的触发成像模式,并且对于帧转移CCD,通常都以非重叠模式运行。最简单的外部触发时序变化中称为触发优先模式。此模式利用单个触发脉冲来启动一系列图像帧,这些图像帧由交替的曝光间隔和读出周期执行。序列一直持续,直到捕获了指定数量的帧为止,并且每次曝光都具有精确的编程持续时间。

类似的触发序列(称为频闪模式)会产生一系列曝光的图像,这些图像在已编程的积分时间内曝光,但每个图像均由单独的触发脉冲启动。如果需要,单独触发每个曝光可以使曝光间隔在读出前一帧后延迟,而不是像在一个脉冲触发整个序列时那样,在读取周期之后立即开始。在另一个时序变化中,序列中每个帧的曝光时间由触发脉冲宽度确定,并且在每次曝光后立即进行读出。这种类型的操作称为灯泡模式BulbMode,其触发脉冲持续时间的作用类似于在传统摄影中将相机快门保持打开以进行定时(“灯泡”)曝光。
除了提供操作功能(例如通过像素合并和子阵列读取获得的各种像素格式)之外,CCD制造商还经常进行各种设计修改,以增强对某些应用至关重要的性能规格。为了提供更快的帧速率和读出速率,某些传感器设计有多个输出节点,每个输出节点都有自己的放大器。可以使用许多不同的布置来馈送输出。一种变化是在并行阵列的相对侧利用独立的串行寄存器和相关的输出放大器,该输出放大器沿光学中心线分开,以便在读出期间将累积的电荷从中心传输到两个串行寄存器(参见图1)。为了提高行在并行寄存器中移位的速率,可以从阵列的两个边缘输入用于驱动并行门相位的时钟信号。另一个可能的增强功能是拆分串行寄存器,以便它在其每一端都向输出放大器供电。结合双向并行传输,可以使用位于传感器角落的四个放大器在此配置中进行读取。此外,CCD可以进一步划分为四个象限,并以帧转移模式运行,从而允许将中心两个部分用于电荷积分,而两个外部象限用作存储阵列,以读出位于任一传感器端的串行寄存器。一些专为超高速成像而设计的系统采用分离转移架构,并将独立的输出放大器放置在每个像素列的顶部和底部。
当像素电荷包通过多个串行寄存器和放大器进行处理和数字化以提高读出速率(而不是在单个串行输出流中)时,与每个像素关联的强度值将由计算机重新组装到其正确的图像位置以进行显示。 任何减少电荷包所经历的传输次数的机制都有助于保持传感器的整体电荷传转移率。 在低信号级别的应用中,这应尽可能接近统一,以避免显著的图像质量下降,许多设计良好的高性能系统可以执行帧出取通常所需的数千次传输,而不会造成明显的电荷损失。
撰稿人
Thomas J. Fellers and Michael W. Davidson – National High Magnetic Field Laboratory, 1800 East Paul Dirac Dr., The Florida State University, Tallahassee, Florida, 32310.