用FPGA替代DSP实现实时视频处理

简介: 随着数字融合的进一步发展,系统的设计和实现需要更大的灵活性,以解决将完全不同的标准和要求集成为同类产品时引发的诸多问题。本文介绍FPGA在视频处理中的应用,与ASSP和芯片组解决方案相比,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解决方案的公司由于受到自身能力的限制而无法开发出类似产品,因此市场风险较大。

色彩空间转换

视频系统另一重要部分是色彩空间转换,该工艺规定了图像的表示方法,例如由一种色彩格式转化为另一种不同的色彩格式。

人眼感测器只能检测到波长介于400nm至700nm之间的可见光,这些感测器称为圆锥细胞,具有三种不同的类型:红光圆锥细胞、绿光圆锥细胞和蓝光圆锥细胞。如果单波长的光可见,这三种感测器的相对反应能使我们鉴别出光的颜色。该现象极具实用价值,因为这意味着我们只需简单地按不同比例将上述三种光混合,就能生成各种颜色的光。这就是著名的三色原理,它在彩电系统中获得了广泛的应用。

我们可以在3维立方体中通过绘制三原色(即红色、绿色和蓝色,简写为RGB)的构成比率图以表示各种颜色,其中黑色位于原点,而白色则位于原点的斜对角。得到的立方体就是著名的RGB色彩空间。

不管最终的显示媒质是纸张、LED、CRT或等离子显示器,图像总可细分为很多个像素(例如HDTV可具备1920×1080 个像素)。同时每种媒质之间又存在些许差异,但其基本原理都是每个像素由一定比例的红色、绿色或蓝色构成,构成的比例取决于驱动显示的电压信号。

利用RGB格式处理图像时,每个像素由3个分别对应于三原色的8位或10位字确定,因而这不是一种最高效的处理方法。这种格式下,必须在所有的红色、绿色和蓝色信道上对像素进行操作,所需的存储空间和数据带宽毫无疑问将比其它可供选择的色彩格式更大。为了解决这个问题,许多广播标准(如欧洲的PAL和北美的NTSC电视系统)均采用亮度和色度视频信号。因此,不同的色彩格式之间需要一种能互相转换的机制,即色彩空间转换。

用硬件实现这些电路则相对比较简单,只需要知道从一种格式映射到另一种格式的系数。最通用的一种转换是由RGB格式转换至YCbCr 格式(反之则从YCbCr 格式转换至RGB格式)。研究表明,人眼察觉到的光亮度信息(Y)的60%至70%来自绿色光。红色和蓝色信道实际上只是亮度信息的复制,因此这些重复信息完全可以去除掉。最终的结果是图像可用表征色度和亮度的信号来表示。在这种格式下,8位系统规定亮度的取值范围介于16至235之间,而Cb和Cr 信号的取值范围介于16至240之间,并规定128表示亮度为0。

可用如下的方程将YCbCr空间中的色彩转换为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' 表示图像灰度校正RGB值。例如,CRT显示器的信号振幅与输出密度之间存在非线性,如果在显示信号之前进行图像灰度校正,就能使信号振幅与输出密度间的关系趋于线性。输出增益同样必须限定低于特定的阀值,以减少图像暗区中的传输噪声.

我们可以采用许多可行的方法实现所需的乘积功能,如利用内存、逻辑器件或嵌入式乘法器。

显然,HDTV系统所需的74.25MHz数据率可轻松地达到,而且还可以尝试不同的设计折衷考虑,如系统精确度和设计范围之间的折衷。例如,为了保证3%的转换误差,YCbCr至RGB色彩空间转换器的设计尺寸可以至少减小一半。这或许超出了大多数显示器产品所能承受的范围,但仍然能被其它的应用系统接受,如机器视觉或安全系统。采用FPGA的系统架构就能调整应用系统的算法,由此实现最佳的性能和效率。

实时图像和视频处理功能

标准DSP自身性能上的缺陷促进了专门解决此难题的专用设计芯片(如媒质处理器)的发展。但是,这些器件极低的灵活度往往使其局限于非常有限的应用中并容易产生性能瓶颈。在高分辨率系统(如HDTV和医疗成像系统)中,基于处理器的方法受到的限制尤为明显。从根本上讲,处理器的分辨率受限于分配给滤波器每个抽头或每个转换阶段时钟周期的数目。一旦达到极限条件,通常除了增加额外的DSP部件外别无选择。FPGA可以通过定制调整提供最具实用价值的高性能高效率产品。设计人员可在适用范围和速率之间进行折衷考虑,从而以比DSP时钟低得多的速率实现指定功能。

例如Visicom公司发现,在中值滤波器应用中[3],DSP处理器需要67个时钟周期执行算法,而FPGA只需工作在25MHz频率下,因为FPGA能并行实现该功能。实现上述功能的DSP必须工作在1.5GHz频率下,可见在此特定应用中,FPGA解决方案的处理能力可以达到100MHz DSP处理器的17倍。

许多实时图像和视频处理功能均适合于用FPGA器件来实现,包括:图像旋转、图像缩放色彩校正和色度校正、阴影增强、边缘检测、直方图功能、锐化、中值滤波器和斑点分析等。

许多功能都针对特定的应用和系统,并构建在核心架构(如2D-FIR滤波器)之上。我们可以利用HDL设计语言或高级内核设计工具(如Xilinx CoreGen软件)中的DSP程序块迅速实现这些功能。此外,还能通过系统级设计方法,利用Matlabs Simulink和Xilinx SystemGenerator工具进一步减少设计和仿真时间。需要获取最新的视频技术信息以及数字融合市场信息,可访问http://www.xilinx.com/esp/esp.htm。

相关文章
|
存储 数据采集 Linux
基于Xines广州星嵌OMAPL138 DSP+ARM+FPGA无人机避障系统
Xines广州星嵌OMAPL138 DSP+ARM+FPGA无人机避障系统方案:前端由FPGA采集数据,通过uPP或EMIF总线传输至DSP;数据被DSP处理之后,被送往ARM,用于应用界面开发、网络转发、SATA硬盘存储等应用;OMAP-L138的DSP或者ARM根据处理结果,将得到的逻辑控制命令送往FPGA,由FPGA控制板载DA实现逻辑输出。
|
测试技术 异构计算
Xines广州星嵌全新FPGA开发板—OMAPL138/C6748 DSP+ARM+FPGA
基于广州星嵌TI OMAP-L138(浮点DSP C6748+ARM9) +Xilinx Spartan-6 FPGA工业核心板
|
传感器 5G 数据处理
ZYNQ(FPGA)与DSP之间GPIO通信
基于 TI KeyStone 架构 C6000 系列 TMS320C6657双核C66x 定点/浮点 DSP以及 Xilinx Zynq-7000 系列 XC7Z035/045 SoC 处理器设计的高端异构多核评估板,由核心板与评估底板组成。 DSP采用 TMS320C6657 双核C66x 定点/浮点,每核主频1GHz/1.25GHz。 Xilinx Zynq SoC处理器采用的XC7Z035/045集成PL端Kintex-7架构+PS 端双核ARM Cortex-A9 ,28nm可编程逻辑资源。
ZYNQ(FPGA)与DSP之间GPIO通信
|
数据采集 数据处理 异构计算
ZYNQ(FPGA)与DSP之间SRIO通信实现
XQ6657Z35-EVM多核开发板通过SPI、EMIF16、uPP、SRIO 通信接口将DSP 与Zynq 结合在一起,组成DSP+Zynq 架构,实现了需求独特、灵活、功能强大的DSP+Zynq 高速数据采集处理系统。
ZYNQ(FPGA)与DSP之间SRIO通信实现
|
网络协议 测试技术 芯片
基于ZYNQ+DSP平台Zynq7035/45 FPGA高速串行接口的千兆以太网UDP例程设计和使用说明
Xilinx XC7Z035/45-2FFG676I PL端高速串行接口的千兆以太网UDP例程设计和使用说明
基于ZYNQ+DSP平台Zynq7035/45 FPGA高速串行接口的千兆以太网UDP例程设计和使用说明
|
存储 数据采集 Linux
Xines广州星嵌 DSP+ARM+FPGA开发板XQ138AS-EVM OMAPL138+FPGA
XQ138AS-EVM是广州星嵌基于SOM-XQ138S核心板(OMAPL138+Xilinx FPGA)和SOM-XQ138A核心板(OMAPL138+AlteraFPGA)开发的DSP+ARM+FPGA三核评估套件,底板同时兼容两款核心板,用户可以采用该开发套件进行项目前期的验证和评估,也可以直接用来开发自己的产品。OMAPL138+FPGA
Xines广州星嵌 DSP+ARM+FPGA开发板XQ138AS-EVM  OMAPL138+FPGA
|
数据采集 传感器 监控
SOM-XQ6657Z45工业级核心板DSP+ARM+FPGA C6657 ZYNQ7035/45
一款基于TI KeyStone 架构C6000 系列TMS320C6657 双核C66x定点/浮点DSP以及Xilinx Zynq-7000 系列XC7Z035/045 SoC 处理器设计的工业级核心板。
SOM-XQ6657Z45工业级核心板DSP+ARM+FPGA C6657 ZYNQ7035/45
|
18天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
117 69
|
22天前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
56 26
|
28天前
|
算法 异构计算
基于FPGA的4ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的4-ASK调制解调系统的算法仿真效果、理论基础及Verilog核心程序。仿真在Vivado2019.2环境下进行,分别测试了SNR为20dB、15dB、10dB时的性能。理论部分概述了4-ASK的工作原理,包括调制、解调过程及其数学模型。Verilog代码实现了4-ASK调制器、加性高斯白噪声(AWGN)信道模拟、解调器及误码率计算模块。
56 8

热门文章

最新文章