网络和视频领域正趋于互相融合,为嵌入式应用提供了新的应用领域。但是直到最近才出现带集成以太网功能并且能处理高质量视频的单芯片处理器。其原因有以下几点:微控制器(MCU)虽然具有以太网功能,但是处理能力的限制使其只能处理比较低的视频分辨率或比特率;另一方面,专用的视频处理器通常不是缺少网络接口(因此依赖于主机的MCU),就是太不灵活了而不能应付不断变化的需求和多样的视频编码解码情况,其高功耗对很多市场来说成本太高。
美国模拟器件公司(ADI)最新推出的ADSP-BF537为网络视频应用的提供了一个良好的平台。ADSP-BF537不仅有一个高性能的处理器内核,还有高速的并行外围接口(PPI)和一个片内的10/100以太网MAC端口,其结构如图所示。
PPI是一种16位的多功能并行接口,支持双向数据传输并且包含三条同步线和一个用于连接外部时钟的引脚。PPI可以无缝地解码ITU-RBT.656视频帧,也可以连接ITU-RBT.601视频流。PPI既灵活又快速,足以当作高速ADC和DAC的一个通道,还能当作一个无须中间连接电路的LCD显示控制器。
尽管嵌入式以太网功能的实现达到了一定程度的标准化,BF537还是包含了一些很有用的附加功能,主要目的是减少处理器“接触”网络数据包的次数。多种多样的功能大大减少了处理器必须完成的工作量。例如,数据移动是由一个直接存储器存取(DMA)控制器来完成,而不需要用到固定处理器,另一个实例是对接收数据包进行硬件校验和计算从而减轻处理器的负担。上述体系结构的增强确保了处理器资源不会完全消耗在网络端的控制应用上。
主要有两类与网络视频有关的主要应用。第一类应用,压缩视频流通过以太网接口进入处理器,在本地进行解压缩和显示。另一类应用恰好相反,原始视频流进入处理器,经过压缩后再通过以太网口发送出去。
正如前面所指出的,连接网络是一项与控制非常密切的工作,这就是为什么MCU对集成以太网功能来说是一种很自然的选择。但是,视频处理是由中心模块完成并且基于处理环路,与面向控制的MCU完全不同,这些差别又会导致不同的编程模式。如果将控制(或网络)和媒体功能分配给不同的处理器,某些事情也许变简单了,但是材料成本和制造成本就会增加,而且处理器之间的互通信又会成为主要问题。
但到目前为止,如果将上述功能集成到同一处理器中,应用的某一端(网络端或媒体端)必然受到严重的性能限制。例如,可能只能运行一个有限的低带宽网络堆栈。而在媒体端,很可能必须降低图像分辨率,如从VGA降为QVGA,或者必须降低视频的帧速率。
这些性能限制是应用的网络端和视频端具有不同的需要促成的结果。例如,两端竞争外部存储器资源(如对SDRAM的存取)。网络堆栈会消耗一些内存空间用于代码和一些外部存储器空间用于数据。指令和数据的基本存取模式在存储器中多少有些“展开”,这样会降低性能,因为外部存储器中的行将会不断地开启和关闭。
这个问题是由视频算法引起的,就是从传感器接收视频流或者将视频流输出到显示器。例如,为了给一个LCD显示器提供数据,需要进行一次存储器读取,如果因为网络端请求外部存储器总线而被拖延了,那么结果可以从显示器上清楚地看出来,表现为失去同步。
现在,一种单处理器解决方案解决了上述数据瓶颈问题。我们已经知道了以太网外设如何通过DMA移动数据从而降低处理器负荷。同样地,在视频端,一个辅助PPI的DMA控制器卸下了处理器内核不断进行数据转移的负担。
我们不仅希望处理器不进行数据移动,还希望使数据通过某个缓冲器的次数最少,因为每通过一次都会浪费存储器带宽。因此,即使视频数据以线性的一维方式存储在SDRAM中,DMA控制器也要具有对任意大小的数据块进行存取的功能,就好像数据是以二维方式存储的一样。这种功能节省了相当多的时钟周期,否则需要时间计算数据的转移“进度”或步长。
BF537还包含一些细微的控制以便减少应用的网络端和视频端之间可能的冲突。其中包括对外部存储器存取模式的控制能力,可编程中断优先级以便防止后台任务被锁在关键的处理区域之外,以及可配置的DMA通道优先级以便在应用的数据流之间进行协商。
以太网外设支持“线速率”存取,同时发送和接收数据包。对类似于用户数据包协议(UDP),传输速率很接近10/100Mb/s接口的线速率。处理器负荷问题对诸如TCP/IP的协议来说更加重要。例如,UDP所需的处理能力为30MIPS,而BF537的性能为600MIPS,还有足够的余量实现基本的视频解码功能。
一种常用的缩短产品面世时间的方式就是按照QVGA尺寸的图像执行视频算法,然后将图像内插到VGA尺寸。这样做具有双重好处,既降低了处理器负荷,又降低了外部总线带宽的占用率。对许多应用来说,放大的QVGA图像就完全够了,但是在QVGA不够的情况下,处理器也有足够的处理能力来提高分辨率。
由于同时具有网络、控制和信号处理功能,ADSP-BF537能够在诸如视频监控、远程检测(使用ADC和DAC进行测量)和IP视频等领域实现低成本、高性能的应用。