生物识别方案主要包括图像采集、图像预处理、特征取样及匹配分析四个步骤;而视频监控方案则主要包括图像采集、图像预处理、图像处理与传输、图像显示及图像管理等。不难看出,无论是生物识别还是视频监控,图像预处理都不可或缺。事实上,图像预处理算法的灵活度、复杂度、对图像处理晶片资源的占用度,以及处理时间的长度,将直接对整个系统运作产生举足轻重的影响。因此,图像预处理对于整个安防方案来说,是一项艰巨而又关键的任务,直接决定后续图像处理与分析的准确性和便捷性。
图像预处理诉求高效能DSP
根据目的的不同,图像预处理可分为对采集图像进行清晰化处理,对图像进行识别前的预处理,以及对图像进行压缩前的预处理等。其中,对采集图像进行清晰化处理主要包括对互补式金属氧化物半导体(CMOS)或光耦合元件(CCD)图像传感器感光单元的不一致进行后续纠正,对实际环境与传感器采集的图像进行差异补偿(如背光),以及对采集到的原始图像进行去噪处理等。虽然这种预处理算法本身的难度不大,但随着即时性需求的普及,尤其是在画素较大时,这种算法还是对数位讯号处理器(DSP)的处理能力提出很高的要求。
而对图像进行识别前的预处理则目的性很强,可能须要破坏原来的画素和分布,以便后续进行特征提取。这种预处理算法的难度视识别场合而不同。要综合后面的识别算法部分,以选择适当的DSP。
图像压缩前的预处理主要是指将YUV422变为YUV420、将RGB变为YUV等。这类处理往往有即时性要求,如果采用软体实现,会对处理性能有较高的要求;如果采用硬体实现,则虽然在处理性能上有保证,但硬体成本会有所上升。
同时,根据应用不同,图像预处理又可分为生物识别应用中的图像预处理和视频监控应用中的图像预处理。对于生物识别应用,以指纹识别为例,其预处理主要包括指纹图像增强、指纹图像二值化、指纹图像细化、指纹图像细化后处理。而视频监控应用中的图像预处理主要是指对图像传感器输出的连续图像进行分析,获取足够的讯息,并透过自动白平衡、伽马(Gamma)校正、自动聚焦、自动曝光、背光补偿等来提升图像的实际效果。
MCU/FPGA/ASIC失色 DSP居图像预处理主流元件地位
无论是生物识别还是视频监控,其图像预处理正面临以下挑战。首先,用户对图像质量的要求越来越高,图像预处理的算法越来越复杂,从而对图像预处理主晶片处理能力及存储空间提出更加苛刻的要求。
此外,用户对图像的即时性处理和传输要求越来越高,一方面要求图像预处理算法尽量优化、精简,另一方面也对图像预处理主晶片的内核处理能力、内部汇流排架构、数据传输能力、外围介面,以及硬体整体架构和指令集对预处理算法的支援提出更高要求。
不同于图像和视频编解码算法具有业界统一的算法标准和清晰的演进路线图,图像预处理算法不仅没有统一的标准和清晰的发展方向,甚至在很大程度上,方案供应商正是透过这些祕密的个性化算法,作为市场竞争的法宝。此外,随着应用领域的不同、需求的提升和技术本身的演进,原有算法会不断升级,新的算法会不断涌现,这些都要求图像预处理晶片具有更高的灵活性和适应能力。
对于方案供应商来说,不仅其体现竞争力的核心算法须要防止被非法读取或拷贝,而且无论是生物识别还是视频监控,其图像数据往往都会涉及隐私,因此也须要提供可以信任的安全保证。以上两方面,都要求图像处理晶片必须提供一个可靠、完全的处理平台。
基于以上多方面的挑战,在图像预处理主晶片的选择上,以控制能力见长的传统微控制器(MCU)并不适合庞大、复杂的算法处理;特定应用积体电路(ASIC)虽然在运算速度和功耗方面具有一定的优势,但其成本高、灵活性差,且不利于升级和修改,因此无法满足预处理算法个性化的灵活性需求;现场可编程闸阵列(FPGA)并行处理的架构虽然具备强大的数据处理能力,但价格、功耗及开发难度方面的缺点使其很难成为图像预处理的主流选择;而DSP则以强大的数据处理能力和软体可编程能力成为图像预处理主晶片的主流选择。
除了以上挑战,从系统设计的角度来讲,还面临以下的需求,首先,虽然图像预处理和图像处理工作巨大,但是工程师并不希望采用多个晶片来处理这件事情,因为讯号处理和控制系统分别运作于不同处理器的传统DSP架构已经让工程师非常头疼,如果再把图像预处理和图像处理分开,则更加大工程师进行系统开发、联调及维护的难度。因此,对于系统设计中的主晶片DSP来说,还面临整合度的要求--有没有可能在单晶片上实现图像预处理、图像处理,甚至包括系统控制等功能。
此外,随着包括预处理在内的整个图像处理算法复杂性的不断增加,作为主处理器的DSP,除了须要提供足够的硬体处理能力之外,还应该在软体上提供针对该处理器专门优化的指令集,从而帮助工程师降低熟悉处理器物理架构的难度,达到最大限度的驾驭、发挥处理器的特性,且尽快开发出精简、优化的图像处理算法。
除了上述专门优化的指令集以外,面对日益复杂的图像处理和产品上市时间压力,工程师还期望处理器供应商能够分担一些工作,如提供专门针对该处理器优化、仅占极少量时脉周期的底层图像处理软体模块,以缩短图像处理算法开发流程,并加速软体移植。
另外,功能强大、介面友善及简单易学的开发工具,也是系统开发中工程师要求的重点,而且随着系统复杂度和模块复用性需求的增加,对开发工具的兼容性也提出更高的要求。
整合迭有进展 DSP硬体支援能力出线
基于以上分析,针对图像处理应用的理想DSP处理器,必须具备以下特点,包括内核处理能力强、专门针对图像处理的指令集、易于大量数据传输的低功耗硬体架构、高整合度;丰富的软体模块库及功能强大的开发工具。以下是对该类DSP处理器的代表系列Blackfin汇聚处理器架构的具体分析。
Blackfin DSP处理器(图1)基于由亚德诺(ADI)和英特尔(Intel)联合开发的微讯号架构(MSA),透过将传统DSP和微控制单元的优点融为一体,兼顾事件控制及纯算法运算处理功能。其汇聚的单一内核可提供高达756MHz的处理能力,不仅为处理复杂的预处理算法提供性能保证,而且为整个系统的图像处理和事件控制提供有力的硬体支援,从而允许工程师在单晶片上实现图像预处理、图像处理及系统控制,提升系统的整合度。
图1 Blackfin DSP适用于复杂的预处理演算法。
Blackfin系列处理器的硬体架构专门针对图像处理进行优化,多个直接记忆体存取(DMA)通道和可灵活配置的快取(Cache)能解决大运算量和高数据吞吐率的图像处理应用要求。在图像处理应用中,虽然对图像数据进行的传输也可由软体实现,但是会消耗掉大量的CPU时脉周期,从而使DSP的高速数据处理能力难以发挥。如果由DMA独立负责数据传输,在系统内核对DMA进行初始设定并启动后,DMA控制单元就可在无需内核参与的情况下,直接把图像数据从PPI介面传输至SDRAM记忆体进行储存,比如在进行MPEG或JPEG处理的计算密集型算法中,一个灵活的DMA控制单元能省去额外的数据通路。此外,透过二维DMA还能简化大区块(Macroblock)进出外部记忆体的传送,从而允许数据控制成为数据实际传送的一部分,这对色彩空间元素的交叉和解交叉来说,便利性也非常重要。因此,Blackfin处理器的这种特性在解决大批量图像数据传输这一速度瓶颈的同时,又能让DSP处理器抽出更多的资源从事算法处理工作,提升系统处理能力。
而且,针对图像处理应用,Blackfin系列DSP还在不断强化硬体功能模块的支援,比如,ADSP-BF54x系列Blackfin处理器的最新版本中,增加一个用于处理叠加图像的硬体加速器和一个扩展视频介面(EPPI),它使得色彩空间变换、缩放和图像叠加等任务可以在无需处理器参与计算的情况下完成,从而减轻内核的处理压力,为进行更高性能、更高速度的图像处理提供更多空间。
最佳化图像 向量指令集举足轻重
在指令集方面,Blackfin系列DSP针对图像处理提供丰富的向量指令和视频指令。其中向量指令可以实现对16位元的操作。由于图像处理运算中大多是针对16位元的操作,因此,透过合理使用这些向量指令来优化图像运算非常重要。不仅Blackfin指令集中的大多数演算指令和移位指令都有对应的向量指令,而且,向量指令中还有根据符号相加、32位元转16位元等特殊指令。在对图像预处理的汇编优化中合理的应用这些向量指令,可以提升算法的并行度,并加快运算速度。
视频画素指令主要包括BYTEOP16P(完成两个8位元加法操作)、BYTEOP3P(完成16位和8位元的加法操作)、BYTEOPIP(完成两个8位元求平均操作)、BYTEOPZP(完成四个8位元求平均操作)、BYTEOP16M(完成两个8位元减法操作)、SAA(完成求SAD操作)、BYTEAPCK(完成16位元转8位元操作),以及BYTEUNAPCK(完成8位元转16位元操作)等。一条视频画素操作指令可以在一个周期内完成四对视频数据分量的加、减、加减混合、取平均值,或者相减,并求绝对值等十一种视频画素运算。由于视频画素值一般都是按照8位元存放,所以使用视频画素指令可以提升包括求SAD、画素插值、8位数和16位数直接转换等在内的各种视频图像运算的速度。
结合软硬体保护 OTP实现安全模式
在安全性方面,Blackfin Lockbox Secure技术透过提供一次可编程(OTP)记忆体与安全处理模式,将软体与硬体保护相结合,为开发人员提供实现以上安全措施的手段,其中,OTP记忆体的公共、非安全、用户可编程区域,开发人员可以用来储存公共密钥,这样可以透过可控制与可配置的模式来鉴别系统。而在OTP记忆体的私有、安全、用户可编程区域,开发人员则可以设定私人密钥等私有元件资产,并保持这些元件资产的机密性与完整性。此外,在Blackfin处理器上使用安全模式后,处理器只能在安全处理环境内执行授权的信任编码。包括保护祕密如原始设备制造商智慧产权、为保护电子商务与社会网路而验证元件和用户身分,以及数位版权管理(DRM)内容保护。从而为图像预处理方案的各个环节提供量身定做的安全保护功能。
软体模块助阵 DSP系统效率跃进
除了以上Blackfin DSP在硬体架构和指令集方面对图像处理的支援外,多种针对图像处理的软体模块如H.264 Baseline Profile Decoder模块、能够按比例缩放具有不同输入及输出尺寸图像的增强视频后处理(Evpp)模块、JPEG编码器模块、MPEG-2 Decoder Simple & Main Profile Decoder、MPEG-4 Simple Profile & Advanced Simple Profile Decoder,以及MPEG-4 Simple Profile & Advanced Simple Profile Video Encoder模块等,都专门针对Blackfin处理器而优化,并经过业界严格验证。这些软体模块能降低系统工程师的开发难度,并提升系统效率。
Image Tool Box套装软件针对图像处理应用,由一系列专用模块组成,并针对图像处理算法的一些常用和基本函数进行专门优化,可进行图像变换、图像分析与图像增强、二值图像操作及形态学处理等图像处理操作。这款套装软件有利于降低工程师的开发难度,加速上层算法的实现和优化。
简化系统维护 开发工具挑重担
用于Blackfin系列DSP处理器开发应用和工程管理的VisualDSP++开发环境主要包括整合VisualDSP++内核的整合编译和调试环境(DIDE)、带即时运作库的CC/++优化编译器、汇编器和链接器,以及仿真软体和程式程序等。其中,编译器允许程式开发人员用C或C++语言编写讯号处理和控制代码,从而方便系统的开发和维护。图形化的友善用户讯息交换介面使工程师能够在视窗中进行工程管理、编辑、编译和调试程式,并在其间快速轻松地切换。此外,VisualDSP++开发工具还与Green Hills的MULTI环境、美商国家仪器(NI)的LabVIEW软体,以及MathWorks的MATLAB和Simulink软体相兼容,为系统开发和模块复用提供更加便捷、宽松的环境。