汽车工程师采用多种智能技术帮助人们安全驾驶汽车。汽车系统中的主要技术包括雷达、超声和摄像/视觉感测。这些技术统称驾驶员辅助 (DA) 系统,用于在恶劣条件和危险路况下协助安全驾驶。
第一代摄像 DA 系统目前可见于各种生产用车型。这类系统大多为驾驶员提供车辆周边环境的视频图像。最常见的是泊车/倒车辅助系统,这种系统用后视摄像头拍摄本车后面的景物,并且在收音机/导航系统的屏幕上或者在仪表板中的小型显示器上显示图像。
第二代摄像系统正处于开发测试阶段,目前使用有限。第二代系统并非仅为驾驶员提供图像,而是运用图像处理与解析从视频流中提取信息,并且对车辆环境进行表征和评估。必要时驾驶员会收到相应警示。
随着工程师们获取车辆环境表征方面的实际经验,未来的 DA 技术会更复杂,将为消费者提供更强大的实用工具并且增强其它汽车子系统的性能。图 1 概括了目前和未来的多种 DA 功能。
高级处理要求
DA 系统的处理要求可能超过目前汽车级串行 DSP 处理器的能力。另外,为了提高消费价值,在一套视觉传感器上捆绑多种 DA 功能的需求日益高涨。
例如,前瞻视觉模块可能需要同时支持车道偏离警示、智能大灯控制和标志识别功能,而所有这些都需要不同的处理算法。因此,对于用 FPGA 通过原始图像数据处理、配置灵活性和器件可缩放性来提供系统价值,DA 市场提供了实实在在的机会。
视觉 DA 系统的图像处理与解析功能可以包括空间/时间滤波、镜头失真校正、图像清晰化、对比度增强、边沿检测、图像匹配、物体识别和物体跟踪,在某些情况下还包括图形叠加。尤其值得关注的是一种支持运动估计或立体视差计算的图像匹配功能。
为了说明 FPGA 处理的性能价值,我们来考虑这样一个视觉系统:以 30 Hz 帧速率 (fps) 生成视频的宽幅 VGA 分辨率成像器件(752 x 480 像素),而且需要估计帧间物体运动(或流动)。有一种算法(也适用于立体视差计算)是将图像划分为若干个块(如大小为 4 x 4 像素),然后判断第一帧中各图像块对第二帧中指定搜索区(如 20 x 20 像素)内某位置的匹配条件。
一种常用的匹配条件是用算子 SAD(绝对差和)求出第一帧图像中的4x4块与第二帧图像上搜索区内的像素之间的像素灰度最小绝对误差 (MAE)。
4 x 4 块匹配示例需要 250 MMAE/s(每秒百万次 MAE 计算)以上的性能,因为 (752 像素) x (480 行) x (20 x 20 像素搜索区) x (30 fps)/(4 x 4 像素块大小) = 270,720,000 MAE/s。MAE 表示 4 x 4 像素块的最终匹配误差,而 SAD 是指根据四个独立元素对进行计算得到的绝对差和。所以,每 MAE 需要四次 SAD 运算。
处理选项
由汽车设计工程师决定的处理选项包括超长指令字 (VLIW) DSP-CPU 和 FPGA。FPGA 的处理能力远远高于任何现有的 VLIW DSP-CPU。这是由于 FPGA 的架构:大量并行功能单元(包括可编程 MAC)使 FPGA 的性能比任何 DSP 都高出 10-30 倍(具体性能取决于所实现的应用),即使 FPGA 的时钟频率比 DSP-CPU 的时钟频率低得多。
VLIW DSP-CPU 处理器中的 SAD 和 MAE 计算
在一个 32 位架构的单指令多数据 (SIMD) DSP-CPU 中可实现四个 8 位像素视频数据单元的 SAD 运算,因此,仅在一个周期内即可有效执行相当于11条基本指令的运算,如图 2 所示。
例如,Nexperia PNX1500 媒体处理器配有 32 位 TriMedia VLIW-CPU,对于具有二周期延迟的 8 位像素,可以在一个时钟周期内执行两条四路 SAD 指令。算上超长指令字,就是每时钟周期最多五条基本RISC/SIMD指令,其中只有两条可以是SAD指令(在TriMedia数据手册中称为“8meii”)。
所以,对 4 x 4 大小的块进行 MAE 计算需要五个时钟周期,如表 1 所示:两个周期用于两条四路 SAD 指令的流水线处理(周期 1 用于 sad1/sad2,周期 2 用于 sad3/sad4);三个周期用于部分结果的累加(周期3、4 和 5)。因此,如果只处理一个块,则一个 300 MHz 的 Nexperia PNX1500 处理器的处理能力最高可达 60 MMAE/s。
如果每次处理一个以上 4 x 4 块,最高性能可略有提高。例如,可以在七个周期内计算两个并行4x4块的 MAE,这时性能可达85.71MMAE/s;而处理三个块需要九个周期,即性能为100MMAE/s。
可并行处理的最大块数分别受限于任意长指令字中允许的 SIMD SAD 运算次数、VLIW-CPU的通用寄存器数和优化编译器的调度算法。如果继续增加块数,整体性能会趋于饱和,因此我们考虑并行处理的 MAE 不超过三个。
TI 的 TMSD320DM6437 数字媒体处理器每周期有一条由八次基本 RISC 运算组成的长指令,分别通过两条数据通路,各通路每周期有四个时隙。其 VLIW-CPU 每周期最多可执行两条 SAD 指令(在 TI DM6437 数据手册中称为“subabs4”),各指令有一个周期的延迟。但是,要累加部分结果,就必须使用常数 0x01010101 执行具有三周期延迟的 SIMD MAC 运算(称为“dotpsu4”)。 |




