用FPGA替代DSP实现即时图像和视频处理
随着数字融合的进一步发展,系统的设计和实现需要更大的灵活性,以解决将完全不同的标准和要求整合为同类产品时引发的诸多问题。本文介绍FPGA在视频处理中的应用,与ASSP和芯片组解决方案相比,FPGA可根据目前设计工程师的实际需求提供不同层次的灵活性,并保持明显优于传统DSP的性能。
实时视频处理对系统性能的要求极高,因此几乎所有只具最简单功能的通用DSP都不具备这项功能。可程序逻辑组件允许设计人员利用平行处理技术实现视频信号处理算法,并且只需单个组件就能实现期望的性能。基于DSP的解决方案通常需要在单板上嵌入许多DSP,以得到必需的处理能力,这无疑将增加程序资源开销和数据内存资源开销。
藉由在实时环境下进行视频处理,系统工程人员可将帧内存需求和数据缓冲需求降至最低,而在非实时应用中则无需如此。随着业界积极推动高质量视频开发以及压缩格式的不断改进,系统处理速度也不断提高。可程序逻辑组件也采用了专用寻呼设备中广泛采用的FPGA组件架构。由于FPGA制程的发展遵循摩尔定律,因此与稍早开发的同种产品相比,新产品能以更具吸引力的成本优势实现相同的功能和性能。
这种趋势的一大源动力来自网络、广播、处理和显示技术的融合,即业界所称的‘数位融合’。由于在极窄的传输信道(如无线信道)上发送高频宽视频数据并保持适当的业务质量(QoS)极其困难,因此设计人员展开了广泛的研究,致力于改进纠错、压缩和图像处理技术,这些研究均建立在FPGA实现的基础上。
图像压缩/解压缩-DCT/IDCT 目前在数字视频系统中主要使用的视频压缩格式是MPEG2,已广泛应用于数字电视、视讯转换盒、数字卫星系统、高清晰度电视(HDTV)译码器、DVD播放器、视频会议设备和*中。原始的数字视频信息总需要进行压缩,以便藉由适当的传输通道传送或者储存在适当的介质(如磁盘)中。此外还有许多新标准即将或正在推出,包括最为引人注目的MPEG4,但大多数基于该技术的产品仍在开发中。
MPEG2和MPEG4算法的核心是一种称为离散余弦变换(DCT)的作业。DCT的基本原理是取图素块的平方并除去观察者察觉不到的冗余信息。为了解压缩数据,还需要反离散余弦(IDCT)运算。
虽然MPEG算法中的DCT部份已经标准化并能在FPGA中有效实现,MPEG编码仍有许多部份尚未明确规定。而正是这些不明确部份使得一家公司的产品得以区别于竞争对手,并开发出拥有自主产权的算法。许多专用MPEG译码器在这些部份(如运动估计模块)使用了FPGA。因为FPGA可重新配置,因此组件能方便地进行刷新,并在整个开发阶段(包括配置之后)整合新算法,而完全依赖标准ASSP解决方案的公司由于受到自身能力的限制而无法开发出类似产品,因此市场风险较大(图1)。
色彩空间转换
视频系统另一重要部份是色彩空间转换,该制程规定了图像的表示方法,例如由一种色彩格式转化为另一种不同的色彩格式。
人眼传感器只能检测到波长介于400nm至700nm之间的可见光,这些传感器称为圆锥细胞,具有三种不同的类型:红光圆锥细胞、绿光圆锥细胞和蓝光圆锥细胞。如果单波长的光可见,这三种传感器的相对反应能使我们鉴别出光的颜色。该现象极具实用价值,因为这意味着我们只需简单地按不同比例将上述三种光混合,就能产生各种颜色的光。这就是著名的三色原理,它在彩电系统中获得了广泛的应用。
我们可以在3维立方体中藉由绘制三原色(即红色、绿色和蓝色,简写为RGB)的构成比率图以表示各种颜色,其中黑色位于原点,而白色则位于原点的斜对角。得到的立方体就是著名的RGB色彩空间。
不管最终的显示媒体是纸张、LED、CRT或等离子显示器,图像总可细分为很多个图素(例如HDTV可具备1920×1080个图素)。同时每种媒体之间又存在些许差异,但其基本原理都是每个图素由一定比例的红色、绿色或蓝色构成,构成的比例取决于驱动显示的电压信号。
利用RGB格式处理图像时,每个图素由3个分别对应于三原色的8位或10位字确定,因而这不是一种最高效的处理方法。这种格式下,必须在所有的红色、绿色和蓝色信道上对图素进行作业,所需的储存空间和数据频宽毫无疑问将比其它可供选择的色彩格式更大。为了解决这个问题,许多广播标准(如欧洲的PAL和北美的NTSC电视系统)均采用亮度和色度视频信号。因此,不同的色彩格式之间需要一种能互相转换的机制,即色彩空间转换(图2)。
用硬件实现这些电路则相对比较简单,只需要知道从一种格式映像到另一种格式的系数。最通用的一种转换是由RGB格式转换至YCbCr格式(反之则从YCbCr格式转换至RGB格式)。研究显示,人眼察觉到
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)