视频监视这一新的视频市场应用逐步向高清晰技术(HD)过渡,需要性能相对较高的视频处理能力。HD监视摄像机采用高质量H.264编码器对图像直接进行编码,这样,图像可以通过标准以太网连接实现无失真传输。
对HD视频流实时编码的主要类H.264编码器需要采用结合了高性能信号处理架构和低成本、低功耗特性的硬件平台,因此,最新一代低成本FPGA成为实现这种平台的理想选择。本文介绍HD监视摄像机的体系结构,以及怎样采用低成本FPGA构建整个系统。
HD监视摄像机体系结构
新的高清晰IP摄像机是所有IP联网数字系统的终端设备。这些IP摄像机采集HD视频,经过预处理、编码,通过以太网发送编码后的数据流。所有信号处理功能都必须在一个器件中实现,以满足这类系统苛刻的成本和功耗要求。
图1所示为这类摄像机的顶层体系结构。注意,除了编码引擎,高性价比设计还集成了摄像传感器预处理功能、帧缓冲存储控制器、用于系统控制的嵌入式处理器,以及以太网MAC。目的是提高整个系统的集成度,降低成本和功耗。

图1. HD监视系统顶层体系结构
这一设计包括摄像传感器前端模块、视频压缩模块、以太网MAC模块、嵌入式处理器,以及向所有其他模块提供存储功能的多端口帧缓冲。
多端口帧缓冲用作汇集器。所有其他模块与帧缓冲进行双向数据传送,和别的模块进行通信。摄像传感器接收到的视频图像被送入摄像传感器前端模块。摄像传感器前端模块处理视频数据,将视频存储到帧缓冲中。然后,H.264编码器读取帧缓冲中的视频数据,完成编码过程。H.264编码器将压缩后的比特流送回帧缓冲,进行存储。最后,以太网MAC模块读取帧缓冲中压缩后的比特流,将其发送至以太网。
采用这种集成方式,电路板上的其他元件只有摄像传感器、DDR2-SDRAM、闪存和以太网PHY芯片。图2所示为这类系统的各个组成部分。

图2. HD监视摄像机的各个组成部分
详细设计
H.264编码器模块
该设计中使用的H.264编码器是EyeLytics公司提供的IP内核,它针对监视应用进行了优化。这一内核具有很多监视功能,包括多通道支持、恒定质量速率控制、帧内/帧间模式、QPEL、CABAC,并且逻辑门数量较少。
“Raster to Block”模块(图3左侧所示)按照光栅扫描顺序读取来自帧缓冲的图像,以宏模块格式重新排列这些图像。然后,将其发送至运动估算引擎和空间估算引擎。运动估算引擎读取来自帧缓冲的参考图像,搜索参考图像,找到当前宏模块的运动矢量。运动估算引擎还确定了每一宏模块所使用的最佳划分。

图3. H.264编码器体系结构
H.264规范支持4种不同的帧间预测宏模块划分以及4种不同的子宏模块划分。最佳运动矢量和最佳划分以及相应的估算宏模块编码成本被送至模式确定模块。最佳运动矢量和最佳划分信息还被送至运动补偿引擎。运动补偿引擎获得相应的参考区,完成半象素和四分之一象素滤波,为当前宏模块产生帧间预测。
空间估算引擎使用同一图像中相邻象素值,找到当前宏模块的最佳估算值。H.264规范共定义了9种帧内4x4亮度模式、4种帧内16x16亮度模式和4种帧内色度模式。空间估算引擎确定当前宏模块中使用的最佳亮度和色度模式。最佳模式以及相应的估算宏模块编码成本被送至模式确定模块。模式确定模块比较宏模块编码成本,确定要使用的最佳预测。预测可以是帧内或者帧间预测。最佳帧内模式被发送至帧内预测引擎。帧内预测引擎使用邻近象素值为当前宏模块产生帧内预测。
基于模式确定结果,变换和量化引擎从当前宏模块中提取出预测值。然后,它进行变换和量化,产生量化系数。宏模块信息采集器收集量化系数和其他宏模块信息,例如,运动矢量、帧间预测模式和帧内预测模式等。采集信息被送至CABAC模块,产生最终的比特流。使用基于前后关系的自适应二进制算法编码来完成这一工作。得到的比特流被送至帧缓冲。
通过以下三步来产生运动估算引擎和运动补偿引擎使用的参考图像:逆量化、逆变换和解块。解块模块减少了图像中的块状假象。然后,将处理后的图像发送至帧缓冲,用作下一帧周期的参考图像。
摄像传感器前端模块
这一设计中使用的摄像传感器是Aptina公司的MT9P031,5MP传感器。该摄像传感器被设置为向FPGA发送1920x1080视频图像,每秒30帧。使用的视频数据格式为12位RGB Bayer码型。数据传输时钟被设置为100MHz。
图4显示了将Bayer RGB码型转换为普通RGB图像所使用的CFA插值。颜色矩阵用于调整RGB颜色,使其更接近真实色彩。然后进行RGB至YC转换。它产生YC 4:2:2视频数据,然后使用DMA引擎将其保存到帧缓冲中。

图4. 摄像传感器前端结构图
其他详细设计
采用嵌入式处理器来设置不同模块中的各种寄存器,同时运行TCP/IP堆栈,传送压缩视频。采用以太网MAC模块,嵌入式处理器运行lwIP (简化的TCP/IP堆栈)、流应用程序以及网络服务器应用程序。多端口帧缓冲通过150MHz的32位数据总线连接两个DDR2-SDRAM芯片。这达到了每秒1.2GB的最大存储器带宽。
图5所示为整个基于FPGA的系统。实现720p/30视频流主要类H.264编码时,整个设计使用了大约50,000个逻辑单元(LE),编码器模块使用了大约30,000个LE。

图5. 基于Altera Cyclone III开发平台的HD监视系统
FPGA的优势
基于FPGA的体系结构非常灵活,可以进行定制,完全能够在大家都了解的标准硬件平台上实现。可以增强和修改本文介绍的系统体系结构,以适应不同的系统需求。由于设计采用了标准HDL来实现,因此,很容易提高摄像机分辨率,增加定制视频处理功能或者视频分析引擎。
H.264编码器模块支持多通道编码,同时对分辨率不同的帧速率视频流进行编码。而且,设计可以在任意FPGA上实现,采用开放设计方案使您能够针对最新的FPGA进行设计,有了更新的FPGA后,您可以进一步提高性能,降低成本和功耗。
Suhel