文档库 最新最全的文档下载
当前位置:文档库 › 基于FPGA的高速图像处理系统的设计

基于FPGA的高速图像处理系统的设计

基于FPGA的高速图像处理系统的设计
基于FPGA的高速图像处理系统的设计

基于FPGA的高速图像处理系统的设计

摘要: 在本文中,设计了一个高速图像处理系统,是为了解决这样的问题,如出现在车载计算机图像处理中的低系统集成,低速的处理过程。通过配置Nios II软核CPU和一些基于主要硬件FPGA的图像预处理,处理和显示的功能模块和设计的系统软件,使得该系统实现了图像的采集,记忆和重叠功能。由于采用可编程芯片和并行处理技术,该系统集成度高,好维修,图像处理速度快、实时性强。

关键词:图像处理,FPGA,Nios II CPU。

I.介绍

近年来,车载计算机中存在的主要问题集中在两个方面。首先,在使用低功率损耗的PowerPC CPU的状态下,对于图像的采集和显示,一个集成板是必需的。其次,随着视频图像和红外热像仪的广泛使用,还有电子一体化的发展,应该设计出一个高速的图像处理系统。

为了解决这两个主要的问题,作者设计了一个基于FPGA的高速图像处理系统用来识别重叠的多通道图像信息。功能模块,比如图像采集,处理和显示,都可以在一个单一的FPGA芯片上实现,它减少了外围电路,提高整个系统的性能。因为并行处理技术,处理速度和实时性都大大的提高。

II.图像处理算法分析

A.基于双线性插值的图像放大

基于像素的放大倍率的方法原理简单、快速,但它只是复制原始像素的邻域。随着放大系数增大,图像会出现明显的块锯齿,不能保留原始图像的边缘信息。这个问题是可以通过双线性插值来解决。双线性插值可以消除锯齿,保留原始图像的边缘信息和获得更好的视觉效果。

图1.原始图像(略)

图2.放大图像(略)

图1是原始图像,其中f ij,f i,j+1,f i+1,j,f i+1,j+1是相邻的像素块。图2是在水平方向上放大K倍,在垂直方向放大L倍的图像。f ij,f i,j+1,f i+1,j,f i+1,j+1在放大图像中只改变位置但像素值保持不变。因此,我们可以得到以下方程:

在放大的图像中,我们定义保留原始图像信息的数据作为初始数据,它的坐标值是原始图像的整数,还从原始图像的数据中定义需要插值运算的数据,这些插值数据的坐标值不是原始图像的整数倍数。在进行插值,在初始位置的像素值数据保持不变,其他像素值通过插值算法计算。

具体算法如下。设置放大图像中的像素位置为(x,y),在放大的图像和原始图像中坐标有以下关系:

其中,x,y是放大的图像坐标;i,j是原始图像的坐标;K是

横向放大倍数和L是垂直的放大倍数;0<u<1 ,0<V<1。

通过双线性插值我们可以计算出放大图像中的像素值

公式(3)表明当像素点位于初始数据的位置时,像素值仅通过一

次插值就可以计算出来,例如F(ki,l(j+v)),F(k(i+1),l(j+v)),当像素点位于插值数据的位置就需要三次插值。

公式(3)也表明,这些算式符合乘加模式而且很容易在FPGA芯片上实现。结果是,该方法不仅保证了图像的放大效应也保证实时性的要求。

B.多通道图像重叠[4]

1.Alpha通道

α-通道是Alpha通道的缩写形式,除了基本的颜色通道,它决定了每个像素的透明度。用每个通道的色值乘以它的α值用来确定它对像素的贡献。

Alpha通道使用不同的灰度级表示其透明的大小。α值的变化从0到1,当α-通道有8位二进制数据的宽度时,它有256个层次的透明度。白色的(α= 1,对应于255)是不透明的,黑色的(α= 0,对应于0)是完全透明的,黑与白之间的灰度值表示部分透明。

2.多通道图像重叠

结合性:图像叠加处理符合结合性:

根据结合公式演绎多通道图像重叠的。

设置为α1为前景I1的α值,而i1为I1的前景颜色。设置α2作为前景I2的α值和i2为前景I2的颜色。b表明背景的颜色,它的α值是1 。

对于(重叠的I1,B),色值由颜色i1在某像素点的采样值覆盖。因为α1是I1的透明度,背景B中的像素的透明度为1~α1和色值(1 ~α1)b.全彩色的i1,b值是两个部分的总和:

然后计算一个重叠的值(I1重叠B),我们得到i2,1,b的色值:

对于重叠的I1 ,I2,设置α为重叠的图像的α值,而i作为其色值,那么重叠的B(I1 重叠I2)的色值将是αi+(1–α),立足于结合性我们有以下的公式:

由于背景是随机的,两层图像的重叠公式可以由公式(7)得到。

该集成α-通道值是:

在公式(8)里,把每个通道的色值乘以它的α值的结果称为预乘颜色。I= αi,I2 =α2i2,I1 =α1i1,公式(8)的缩写形式是:

用重叠公式与预乘颜色表示不仅使表达更加简单而且使颜色的集

成和综合的α-通道值具有相同的表达形式。当第三层I3和I2,I1重叠,其重叠公式可以从两层重叠公式推导出来。

设置I3 为第三层图像的预乘颜色而α3为其α-通道值,然后第三层图像的重叠的预乘颜色是:

该集成α-通道值是:

同样,n层图像的重叠的综合预乘颜色和集成α-通道值是:

III.系统的总体设计

该系统由Nios II软核CPU,图像预处理模块,图像显示模块,图像处理模块和通用外围接口组成。图3显示的是系统的总体结构。

图3.系统总体结构(略)

该系统集成了Altera开发的软核CPU,和作者自界定的SDRAM 控制器,通用输入/输出接口和图像的预处理,处理和显示模块。每个模块靠Avalon总线连接和由Nios II CPU协调运行。

除了视频解码芯片,视频DAC芯片,存储器和键盘,该系统的其它部分都集成在FPGA芯片。系统的工作过程如下。来自摄像机的模拟视频信号通过解配置在I2C总线上的视频解码芯片解码,然后传输给图像预处理模块。图像预处理模块对视频数据进行格式和去交错,然后将它存储到SDRAM。有几个DMA通道这是在图像处理模块中定义的。每个通道的图像在图像重叠模块中重叠。显示控制器生成的扫描时间信号并通过DAC芯片将其由数字图像转换成模拟信号。所有的功能模块

系统工作在一个统一的时钟,并由Nios II CPU控制。此外,用户可以通过键盘操作实现相应的图像处理功能。

IV.系统的硬件设计

A:图像预处理模块的设计

图像预处理模块包含itu-r656解码器,FIFO和输入DMA。

视频信号通过视频解码芯片解码后是交错的,应该分别分成奇数场和偶数场。每一行数字视频信号的视频数据格式如图4所示。

“FF0000SAV”是标志有效的视频数据开始的时间参考代码。“CB0 Y0 Cr0 Y1 cb2 Y2 CR2 Y3……cr718 y719”是符合itu-r656标准的有效视频数据。“FF0000EAV”是标志有效的视频数据结束的时间参考代码。

图4.数字视频信号的数据格式(略)

itu-r656解码器检测时间是根据代码“FF0000 SAV”,产生一个有效的线路信号,和开始解码后面的视频数据。它将8的itu-r656数据转换为16位的YCrCb数据。它也产生输入DMA的控制信号。

输入DMA 定义DMA的主端口。一方面,它提供了写时显示的内存地址,数据而且写要求信号到Avalon总线,开始总线传输和存储

YCrCb数据到SDRAM显示内层里;另一方面,它也为数据源去隔行,也就是说隔行信号转换成线线信号。

B.图像处理模块的设计

图像处理模块包含两个DMA的主端口,数据缓冲区和图像重叠的子模块。它如图5所示。

图5.图像处理模块(略)

1.多通道DMA

多通道DMA是Avalon总线的主端口设备。它的职责是提供有效的地址,数据和读取时请求的信号到Avalon总线,并在时钟的上升沿时开始总线传输以读取存储的数据;同时,DMA模块产生的缓冲区的写入数据地址,正确的将数据从内存传到数据缓冲区。

当多通道DMA从不同的内存中读取数据时,每个DMA主端口可以工作在并行而不干扰。然而,它读取的数据从相同的内存中时,DMA 在地址总线和数据总线之间将发生冲突。要解决这个的问题,模块采用流水线设计。每个DMA主端口在不同的时间占用地址总线和数据总线。当第一DMA主端口使用总线,其他主端口等。特定的时间延迟后,第一DMA主端口释放总线而其它的主端口争夺总线的使用权,然后重复。延迟时间与存储器的读频率和显示频率的差值呈反比例。

2.重叠的子模块

重叠的子模块能识别重叠的多通道图像信息。各种渠道像素的透明度的alpha值和重叠区域的起始和结束地址在这个子模块里定义了。以重叠的3通道图像比如说。引用公式(11),图像重叠的算法可以很容易地在FPGA芯片实现因为它的乘加操作

C.显示控制器

这个模块是用来产生的扫描信号以驱动显示器,以及读取数据的缓存及读请求信号的地址信号。同时也传达了当前过程地址到图像处理模块和控制有关的模块。

V.系统的软件设计

系统软件运行在Nios II CPU。自整个系统的功能模块都由硬件来设计,CPU只是配置了每个模块的寄存器和寄存器的从端口。结果是,CPU的负担比较小;从而有效地提高系统的运行速度。软件流程如图6所示。

VI.实验验证

软件和硬件验证运行Altera的DE2板。结果显示在图7。图7(a)显示的图像在两个通道的图像重叠的。图7(b)显示在视频图像

重叠特征。

图6.软件流程(略)

与传统的基于软件的图像处理系统相比,图像处理模块设计的主要优点如下:

1.每个DMA通道可以并行工作,处理多通道图像信息的同时,高速图像数据处理。

2,硬件乘法器在FPGA的嵌入式应用取得了高速和实时计算的结果;3,利用嵌入式RAM资源作为图像数据的缓存存储部分(或几行)可以增加数据处理量;

4,在该模块中,CPU只负责改变配置动态参数而不是参与到具体的加工操作中,因此,提高系统的速度。

图7(a)后两个通道的图像重叠图像(略)

图7.(b)在视频图像叠加字符图像(略)

图7.验证图像

VII.结论

这种基于FPGA的高速图像处理系统能够并行的获取和处理图像。同一般的基于PC的图像处理系统相比,它具有集成度高,图像处理快和处理实时。该系统在可编程芯片上实现了各种图像处理功能模块。它不需要重新配置技术来改变硬件的结构。现有的系统可以在线或者通过网络更新,这使得它广泛应用于很多领域。

参考文献

相关文档