|
FPGAs ——支持DSP技术在实时视频处理中的应用
|
FPGAs——Support to DSP Technology in Application
of Real-time Video Processing
|
■Xilinx战略解决方案营销高级经理 David Nicklin
|
``实时视频处理对系统级性能提出了极高的要求,几乎最简单的功能也超出了单个通用DSP器件的处理能力。采用可编程逻辑器件进行设计使工程师可利用并行处理技术实现视频信号处理算法。
利用最新的成本效率高的FPGA器件进行系统开发使设计人员可将专业的广播质量的视频处理能力用于数字视频技术领域,如高端消费类产品、安全系统、工业和机器视觉应用和图像采集器等。
这一趋势的一个重要驱动力来自网络、广播、处理和显示技术的综合,即业界所称的"数字统一"。通过极为困难的传输信道(如无线)发送大带宽的视频数据,同时还要保持可接受的服务质量(QoS)是极为困难的。这导致对如何改善错误校正算法、压缩和图像处理技术进行范围更为广泛的研究,而相当一部分工作是围绕利用FPGA器件进行的。
图像压缩/解压缩- DCT/IDCT
目前数字视频系统中采用的主要视频压缩方案是MPEG2。它广泛用于数字电视、机顶盒、数字卫星系统、高分辨率电视(HDTV)解码器、DVD播放机、数字视频会议设备和Web电话等应用的核心部分。为了通过适当的传输信道发送或存储到适当的媒介(如盘片)中,原始数字视频信息必须进行压缩。
同时也有一些新标准已经或正在制定之中,包括最著名的MPEG4标准。基于这一技术的产品还在开发之中,相信短时间内即可投入生产。
在MPEG2和MPEG4算法的核心是称为离散余弦变换(DCT)的功能。DCT的目的是取出一块像素点并去除其中人觉察不到的冗余信息。为解压缩数据,需要离散余弦变换反变换功能。
虽然MPEG算法中的DCT部分是标准化的,可以在FPGA内以极高的效率实现,但MPEG编码方案中还有许多未定义的模块。正是通过标准中的这些未定义的部分,一个公司才可将自己的产品真正与竞争产品区别开来,同时也才可开发自己专有的算法。许多专业的MPEG编码器都利用FPGA实现这些功能,如运动预测功能等。由于FPGA可重新配置,因此设备在开发过程的所有阶段,甚至在安装后的现场,都可容易地升级支持新的算法。完全依靠标准ASSP解决方案的企业在开发可从竞争中脱颖而出的产品方面能力受到限制,从而有被市场认为仅能提供有限的几种类似解决方案的危险。
色彩空间变换
一个视频系统的另一个重要部分是色彩空间变换,这一过程定义了以一种色彩格式表示的图像如何转换到另一种色彩格式。
人眼中的感受器仅能探测到400nm至700nm的光线。这些感受器被称为视锥体,共有三种类型,一种感受红光,一种感受绿光,而另一种感受蓝光。如果观察到一种单色光,这3种感受器的相对响应使我们可分辨出该光线的颜色。这一现象极为有用,因为这意味着可以通过简单地将三种不同光波进行不同比例的混合即可产生各种色彩。这一过程也称为加色匹配法,并在彩色电视系统中得到广泛的应用。
可以将光线的颜色表示在由红、绿和蓝(RGB)为轴的三维立方体中,其中黑色位于原点,而白色在对角。这一立方体称为RGB色彩空间。
无论最终的显示介质是纸张、LED、CRT还是等离子体显示器,图像总成分解为图像元素或像素(如高清晰度电视可达到1920 x 1080像素)阵列。尽管每种介质的显示机制有所不同,但基本的概念都是根据驱动显示屏的电压信号在每一像素点显示相应比例的红、绿或蓝色。
在RGB格式中,每一像素以对应每一原色的三个8或10位字来定义。以RGB格式进行图像处理并不是最有效率的一种方法。因为在RGB格式下,对一个像素的每一步操作都需要涉及所有红、绿、蓝三个通道。这比其它色彩格式需要更多的存储能力和数据处理带宽。为解决这一问题,许多广播标准,如欧洲的PAL和北美的NTSC电视系统,都采用亮度和色差视频信号。因此需要一种机制进行不同色彩格式间的转换,这也称为色彩空间变换。
一旦知道从一个色彩空间向另一个映射的系数,用硬件实现这些电路非常简单。其中一个最普通的例子是RGB 至 YCbCr (以及反过来 YCbCr至
RGB)格式的变换。研究发现人眼所感受到的亮度信息(Y)的60%至70%都可从绿色中得到。事实上红色和绿公通道中重复了亮度信息,因此,这一重复信息可放心地去除。最终图像可以用色度和亮度信号来表示。在采用这一格式的8位系统中,亮度定义为16至235,Cb和Cr信号的取值范围为16至240,其中128与0相等。
YCrCb 空间中的颜色可按下式转换至RGB色彩空间:
R' = 1.164 (Y-16) + 1.596(Cr -128)
G' = 1.164 (Y-16) - 0.813 (Cr -128) - 0.392(Cb-128)
B' = 1.164 (Y-16) + 1.596 (Cr-128)
其中R'G'B'是伽马(Gamma)校正RGB数值。CRT显示器在信号幅度和输出强度间是非线性关系。通过显示器前的伽马校正信号,接受信号幅度和输出强度的关系可以线性化。输出增益也限制在一定的阈值,从而降低图像暗部由于传输引有多种可能的实现方法,利用存储器、逻辑或嵌入式乘法器来完成所需的乘法功能。
当然,完全可以满足甚至超过HDTV系统需要的74.25MHz数据速率。同时还可以尝试不同的设计折衷,如在系统精度和设计所占面积之间。例如,如果允许3%的亮度误差,则YCrCb-to-RGB色彩空间变换器的设计规模和尺寸可减少一半之多。对于多数显示产品这可能难以接受,但对其它应用,如机器视觉或安全系统却是完全可接受的。利用FPGA器件,系统架构可根据应用调整相应的算法,从而使性能、效率或两者同时实现最大化。
实时图像和视频处理功能
标准DSP在性能方面的局限导致开发更为专用的芯片,如媒体处理器,来克服这些问题。然而,事实证明这些器件除了在范围极窄的一些应用中,都有太不灵活的缺点,同时还有性能瓶颈存在。基于处理器方法的局限在高分辨率系统,如HDTV和医疗图像系统中特别明显。基本上,基于处理器的解决方案受限于多少个周期可以完成滤波器的一阶反馈,或变换的一步。一旦达到极限,通常没有其它方法解决这一问题,只有增加额外的DSP器件。而FPGA器件则可以通过定制,在利用率和性能方面提供最大的效率。设计人员还可以在设计面积和速度之间进行折衷,并且可以比DSP低得多的时钟速率完成给定的功能。
例如,Visicom公司发现对中值过滤器应用,DSP处理器需要67个周期完成该算法。采用FPGA器件只需要运行在25MHz,因为FPGA可并行实现该功能。而DSP要达到同样的性能则需要运行在超过1.5GHz频率。在这一特定的应用中,FPGA解决方案比一个100MHz的DSP处理器要强大约17倍。
范围广泛的实时图像和视频处理功能都适配采用FPGA器件实施,它们包括实时:
● 图像放置
● 缩放
● 色彩和色差校正
● 阴影增强
● 边缘检测
● 直方图功能
● 锐化
● 中值过滤器
● 模糊分析
许多此类功能都是针对特定应用和系统的,并且与核心架构如2D-滤波器相关。这些功能可利用HDL语言设计或利用象Xilinx CoreGen软件这样的高级核心设计工具中提供的DSP构造模块快速实现。还可利用Matlabs
Simulink 和 Xilinx 系统生成器工具等,通过采用系统级设计方法,同时缩短设计和模拟时间。
|
|