软件特性
在指令集方面,Blackfin系列DSP针对图像处理提供了丰富的向量指令和视频指令。其中向量指令可以实现对16位数的操作(大多指令可以并行完成两个16位数的操作)。由于图像处理运算中大多是针对16位数的操作,因此,通过合理使用这些向量指令来优化图像运算非常重要。不仅Blackfin指令集中的大多数算术指令和移位指令都有对应的向量指令,而且,向量指令中还有根据符号相加、32位数转16位数等特殊指令。在对图像预处理的汇编优化中合理的应用这些向量指令,可以提高算法的并行度,并大大加快运算速度。
视频像素指令主要包括BYTEOP16P (完成两个8位数加法操作)、BYTEOP3P (完成16位和8位数的加法操作)、BYTEOPIP(完成两个8位数求平均操作)、BYTEOPZP(完成四个8位数求平均操作)、BYTEOP16M(完成两个8位数减法操作)、SAA (完成求SAD操作)、BYTEAPCK (完成16位数转8位数操作),以及BYTEUNAPCK(完成8位数转16位数操作)等。一条视频像素操作指令可以在一个周期内完成4对视频数据分量的加、减、加减混合、取平均值,或者相减并求绝对值等11种视频像素运算。由于视频像素值一般都是按照8位存放的,所以使用视频像素指令可以大大提高包括求SAD、像素插值、8位数和16位数直接转换等在内的各种视频图像运算的速度。
安全特性
在安全性方面,ADI公司的Blackfin Lockbox Secure Technology通过提供一次可编程(OTP)存储器与安全处理模式(Blackfin安全模式),将软件与硬件保护相结合,为开发人员提供实现以上安全措施的手段,其中,在OTP存储器的公共、非安全、用户可编程区域开发人员可以用来存储公共密钥,这样可以通过可控制与可配置的方式来鉴别系统。而在OTP存储器的私有、安全、用户可编程区域,开发人员则可以设置私人密钥等私有器件资产(deviceassets),并保持这些器件资产的机密性与完整性。此外,在Blackfin处理器上使用安全模式后,处理器只能在安全处理环境内执行授权的信任编码。包括保护秘密(如原始设备制造商知识产权)、为保护电子商务与社会网络而验证器件和用户身份、以及数字版权(DRM)内容保护。从而为图像预处理方案的各个环节提供了量身定做的安全保护功能。
软件模块库支持
除了以上Blackfin DSP在硬件架构和指令集方面对图像处理的支持外,ADI公司还提供多种针对图像处理的软件模块,包括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处理器而优化,并经过业界严格验证。这些软件模块能够大幅降低系统工程师的开发难度,并显著提高系统效率。
此外,ADI公司还专门针对图像处理应用推出了“Image Tool Box”软件包,该软件包由一系列专用模块组成,并针对图像处理算法的一些常用和基本函数进行了专门优化,可以进行图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。这款软件包有利于降低工程师的开发难度,加速上层算法的实现和优化。
开发环境的支持
用于Blackfin系列DSP处理器开发应用和工程管理的VisualDSP++开发环境主要包括集成了ViusalDSP++内核的集成编译和调试环境(DIDE);带实时运行库的CC/++优化编译器;汇编器和链接器,以及仿真软件和程序例程等。其中,编译器允许程序开发人员用C或C++语言编写信号处理和控制代码,从而方便了系统的开发和维护。图形化的友好用户信息交换界面使工程师能够在窗口中进行工程管理、编辑、编译和调试程序,并在其间快速轻松地切换。此外,VisualDSP++开发工具还与Green Hills软件公司的MULTI环境、NI公司的LabVIEW软件,以及MathWorks公司的MATLAB和Simulink软件相兼容,为系统开发和模块复用提供了一个更加便捷、宽松的环境。