为什么使用FPGA?
有几个原因推动了FPGA的日益普及。这些原因中的两个反映了安防摄像机的最新趋势,大大增加了需要处理的图像数据量,第三个是经济方面原因,即摄像机元器件材料成本(BOM)。
安防摄像机的趋势:有两个主要趋势正在改变安防摄像机的结构设计方法:
1. 百万像素传感器的问世
2. 对高(或宽)动态范围(HDR/WDR)的需要
百万像素传感器
曾经有一段时间,VGA分辨率传感器对于安防目的的摄像机来说已经足够了,当时通常由操作人员来监查或者仅是存档以备日后查看。然而,随着安防摄像头在全球范围内使用的数量急剧增加,没有足够的操作人员来监查,所以安防产业已经开始依靠软件来分析视频,用以监控是否在“关注的区域”有任何异常发生,无论是实时的或留作日后分析。复杂的视频分析(VA)算法已发展到可以将异常情况从正常情况中分辨出来;然而,为了更加切实有效,这些算法需要比VGA分辨率的摄像机所能提供的更多的细节信息。
摄像机需要更高的分辨率使得VA能够识别出有限和/或大面积区域内的一般活动,例如:一个停车场。一个摄像机需要约30像素/输入用于车牌识别,以及约150像素/输入用于查看更细节的活动,如确定收银机交易。一百万像素涵盖了7英尺X 7英尺范围内的详细信息,并且4个VGA摄像头才能抵得上一个一百万像素的摄像头。
图像传感器已经开发出来并且已经商业投产,适用于1百万、2百万、5百万甚至1千万像素的分辨率。显然,随着像素数的增加,因此必须处理的数据量也利用了更高的分辨率这一优势。
高动态范围(HDR)
HDR也称为宽动态范围(WDR),用以测量传感器和ISP功能是否能够很好地区分黑暗和明亮区域。我们都对业余拍摄的以太阳为背景的家庭照片非常熟悉。虽然沐浴在阳光下的风景明亮清晰,但是人们的脸上都非常暗。这是因为(通常是自动)相机调整在阳光下的场景的曝光。然而,这个曝光时间太短,以至于无法正确识别较暗的对象。如果手动设定曝光或者使得光圈获得更多的光线,这样就能分辨出暗部的细节,但是这样做的结果是,现在明亮区域的细节已经过度曝光,甚至彻底洗白。这对于操作人员或者VA软件来说都不是一个好的结果,因为很多关注区域的细节信息都已经丢失。
HDR传感器使用创造性的方式解决了这个问题,根据不同的曝光时间拍摄多张照片,然后通过ISP流水线组合并融合这些图像,保存并呈现所关注区域的亮部和暗部区域的细节信息。显然,当对于同一个图像进行多次曝光,造成了所需处理的数据量增加。例如,当一台摄像机可以输出每秒60帧的全高清1080p图像,带有HDR传感器,每帧3次曝光,在其工作时,摄像机内的ISP流水线实际处理的是60× 3,即相当于180帧每秒。
FPGA和增加的处理负荷
一个百万像素的传感器和HDR相结合大大提高了ISP流水线的处理负荷。DSP器件本质上是“顺序处理引擎”,很难负荷巨大的数据处理负载。它可能仍然可以处理我们上述示例中高端DSP中的1080p 60HDR流水线的数据,但成本和功耗高得令人望而却步,并且在经济上无法负担。FPGA由于其固有的并行性,非常适合承担高清、高动态范围图像信号处理所增加的负载。
可编程的重要性
除了以极低的功耗和成本提供高性能之外,FPGA定义为可编程的,这提供了超越ASIC和ASSP的显着优点。ASIC的设计和构造都极其昂贵,一旦完成就不能更改。基于ASSP的摄像头设计可能会受到已经制成的标准件功能的限制,这也就无法再进行修改。事实上,在视频图像处理市场中的一些DSP和其它的ASSP器件,需要一个FPGA来桥接传感器和标准部件,以适应新的传感器制造商正在使用的新的串行接口,用于接收其传感器传输的百万像素数据。随着基于FPGA的实现方法的出现,摄像机制造商可以利用可编程的优势,迅速在其设计中采用新的传感器和技术,或迅速改变他们的ISP算法。
在FPGA中实现带有HDR的ISP
为了在FPGA实现带有HDR的ISP,至少必须实现如图1所示的图像信号处理流水线中的ISP块。
图1 图像信号处理流水线
需要以下ISP模块:
传感器端口,具有自动的黑电平校正:这对于检测和配置图像传感器寄存器和采集图像数据来说是必需的。
黑电平校正:每个颜色通道都有一个时间相关的偏移。彩色处理需要线性信号处理,因此所有信号必须没有任何偏移。CMOS图像传感器有所谓暗行输出来衡量每个颜色通道的平均偏移。黑电平校正减去专用彩色通道,基于线路的基准噪声,达到最佳的黑电平结果。
自动曝光:自动曝光模块的目的是要不断调整曝光,以适应实时的不断变化的光线条件。
线性:例如,AptinaMT9Mo24/34 HDR传感器,每颜色通道输出20位信息。为了尽量减少传感器输出的实际线路的数量,Aptina使用智能压缩机制将这一数据压缩到12位。线性化就是将这12位数据解压缩恢复到原来的20位的过程。
缺陷像素校正:由于制造工艺而造成的传感器中死的或热像素,需要使用缺陷像素校正模块进行修正。此模块使用基于相同颜色通道的相邻像素插值法纠正了缺陷的像素值。典型的纠正方法包括冷或热像素检测,使用当前像素邻域中值或平均值估计。
2-D降噪:除冷、热噪点外,传感器像素可以随机成为帧噪声。这意味着它们输出与邻近像素相比过高或过低的强度。基于相同颜色通道的相邻像素的插值法进行2D降噪来纠正噪声像素,与缺陷像素校正模块的工作原理大致类似。
De-Bayering(彩色滤波阵列插值):传感器上的每个像素都有一个所谓的Bayer滤波器,使用三种颜色:红色、绿色或蓝色中的一种。因此,三分之二的色彩数据丢失,由此产生的图像是三种颜色产生的马赛克。要获得一个全彩色图像,各种去马赛克算法,用于为每个像素使用插值算法得到一组完整的红色、绿色和蓝色的值。
色彩校正矩阵(CCM):图像传感器通常提供错误的颜色再现,由于所谓的跨色彩影响,这是由于像素间的信号串扰引起的。这种效应会导致错误颜色的图像(如:偏蓝的绿色)。色彩校正牵涉到复杂的像素数据的矩阵乘法来达到纯正的颜色。
自动白平衡(AWB):传感器不擅长的“识别”色彩。AWB调整图像中的其他颜色,通过所谓的“灰色世界”算法推断出图像中的白色从而进行参考。AWB??通过检查入射光频率(或波长)来确定白色,并呈现自然色彩的图像。
伽玛校正:传感器像素以线性的方式对入射光强度作出反应。为了能够为常见视频系统提供像素数据,如显像管的对数响应,可能需要转化为一个非线性的值编码。伽玛校正提供了这种转换。
高/宽动态范围(HDR/WDR)处理:这就是将20个像素的传感器数据映射为8位RGB数据的模块,从而在显示出来的图像中呈现图像中的明亮和黑暗区域。需要一条宽的内部流水线来确保暗部的细节没有丢失,甚至当侵入者直接将闪光照射到摄像机镜头。HDR与快速自动曝光算法密切配合工作,能在变化的光线条件下迅速调整曝光。
图2 HDR处理后的图像:强闪光从10英寸的距离直接射到镜头,没有造成图像丢失
下面表1显示了在33K查找表(KLUT)、低成本、低功耗的FPGA中实现所有上述ISP模块所需的FPGA资源的典型值:
表1 Lattice ECP3-35 FPGA中ISP流水线的FPGA资源使用情况
除了已经提到的ISP模块,实际应用的数据包括统计引擎、生成系统中特定模块使用的图像柱状图、一个Lattice Mico32软处理器用于动态流水线控制、一个I2C主控用于控制各种信号、一个HDMI PHY模块用于直接从FPGA驱动HDMI信号,甚至标志图形的叠加。这说明了可以使用低成本、低功耗的FPGA,如Lattice ECP3-35,来实现整个图像信号处理流水线加上HDMI输出。内部HDR流水线为32位宽,可以提供192dB (20 log 2**32)的高动态范围。在这个实际的应用中,使用具有120dB动态范围的传感器,限制HDR为120dB--仍然是任何FPGA可实现的最高值。实际的应用能够处理每秒60帧的1080p图像,同时提供120dB的高动态范围。
在HDR图像信号处理中使用FPGA的优点
低成本
如上所述,一个简单的低成本33KLUT FPGA可轻松处理一个1080p60流水线。使用LatticeECP3-35实现的1080p60 HDR摄像机的元器件材料主要包括传感器、FPGA和相关的时钟振荡器、电阻和电容、稳压器、一个HDMI连接器和镜头组装。
高性能
显示的实现提供了120dB的HDR、1080p60性能、业界最快的自动曝光和极高质量的自动白平衡。
低功耗
LatticeECP3与竞争对手FPGA或DSP相比,具有极低的静态和动态功耗。
DDR3支持:FPGA支持DDR3的使用。制造商希望在他们的设计中加入帧缓冲存储器,可以利用这种功能在其摄像机设计中使用高性能、低成本的DDR3存储器。
低功耗的SERDES:一个低功耗具有SERDES功能的FPGA使制造商能够在FPGA中直接实现HDMI PHY,提供HDMI功能,无需增加一块外部HDMI芯片的成本。
综述
低成本、低功耗FPGA非常适合用于处理安防应用中需要使用百万像素传感器和摄像机中的HDR功能而引起的信号处理负荷的大量增加。可编程FPGA还提供了前所未有的灵活性。FPGA的实现提供了高动态范围的高性能ISP流水线,其成本等于或低于传统的图像信号处理方法。