当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:本文提出了一种基于FPGA的图像裁剪电路的设计方法,利用像素的抽取改变图像的分辨率,从而达到图像裁剪的效果。与传统的方法相比,这种方法简单易行,开发成本低,图像的清晰度能满足一定的要求。此方法数据处

摘要:本文提出了一种基于FPGA的图像裁剪电路的设计方法,利用像素的抽取改变图像的分辨率,从而达到图像裁剪的效果。与传统的方法相比,这种方法简单易行,开发成本低,图像的清晰度能满足一定的要求。此方法数据处理速度快,尤其适用于动态图像的处理。
关键词:现场可编程门阵列:图像裁剪;分辨率

0 概述
    图像处理电路是信息控制系统中必不可少的环节,广泛应用于生产生活中,如住宅小区的安全监控系统、生产线的质量监控系统、电视机的机顶盒等,因此图像的处理电路的开发受到了人们的重视。裁剪压缩是图像处理技术中一个重要的内容,传统的方法往往采用DSP芯片或插值算法来实现图像的裁剪压缩功能,这种方法存在电路设计复杂、开发成本高的问题。本文提出了一种基于FPGA的设计方法,利用像素的抽取改变图像的分辨率,从而达到图像裁剪的效果。这种设计方法简单易行,图像的清晰度能满足一定的要求。特别是由于不需要数学运算,所以此方法数据处理速度快,尤其适用于一般要求的动态图像的处理。

1 电路设计方案
    本设计是一个基于FPGA的数字图像的裁剪电路,电路框图如图1所示。其中FPGA中包含了三个功能模块电路的设计:

 


    (1)SDRAM的控制模块:预处理的图像存在SDRAM存储器中,通过SDRAM的控制模块,将图像信息读出并进行相应的处理,提供给下一个电路模块使用。
    (2)图像裁剪电路:包括像素的抽取和缓存电路,采用改变图像分辨率的方法,将有效的像素提取出来提供给显示电路,使图像进行4:3或2:3等多比例变化,以达到不同的视觉效果。
    (3)显示控制电路:根据VGA显示屏的特点,产生时序驱动信号控制图像数据显示。

2 设计实现
2.1 SDRAM控制模块的设计
    预处理的图像需要放在存储器中,对于大部分的FPGA来说器件内部都含有4k的内存,但考虑到图像的容量及今后对动态图像处理功能的扩展,本设计选用了存储容量为8M外存的SDRAM。8M的SDRAM在存储空间上划分了4个BANK区块,每个BANK有16位数据宽。SDRAM虽然存储的容量大,但是其内部结构复杂,对该器件的读写使用必须设计专门的控制器进行控制操作。由于本设计采用的图像色彩为30位,RGB各10位,显然用一个16位宽度BANK不能存储一个像素,因此采用了2个BANK合并存储像素,如图2。这样一来,在SDRAM控制电路上需要仿真成四个虚拟的数据端口(两个写端口+两个读端口),在同一时刻将一个像素RGB从两个BANK中同时写入或读出,合并之后形成一个完整的数据。

 


    根据这样的存取原则,一个具有640×480个像素、色彩为30位的图像,就需要同时BANKl和BANK2中存入640×480个16位的信息,SDRAM控制模块读入数据的端口程序如下所示,读出数据同理。
    SDRAM_Control_4PortSDRAM0(
    .WRl_DATA({R[9:0],G[9:5]}),
    .WRl(E N),
    .WRl_ADDR(0),----BANKl的地址
    .WRl_MAX_ADDR(640*480),
    .WRl_LENGTH(9'h100),
    .WRl_LOAD(RST_0),
    .WR1_CLK(P1X_CLK),
    .WR2_DATA({G[4:0],B[9:0]}),
    .WR2(E N),
    .WR2_MAX_ADDR(22'h100000+640*480),
    .WR2_LENGTH(9'hl00),
    .WR2_LOAD(RST_0),
    .WR2_CLK(PIX_CLK);
2.2 图像裁剪模块
    在图像的裁剪处理上,有两种方案可选,第一种为线性插值算法。这是一种广泛使用的图像插值算法,通常使用8邻域采样加权产生新像素:


        第二种为抽取算法,即通过变换分辨率的方法实现,例如将原来的640×480的分辨率变换为320×240或120×60的分辨率,这样图像的宽高比近似为4:3或16:8。比较两种算法,第二种算法通过直接丢弃部分原始数据达到分辨率的压缩,虽然有图像信息损失,但在图像显示满足要求的前提下,这种电路的实现更加便捷、方便,因此本设计采用了第二种算法。
2.2.1 像素的抽取
    根据VGA的显示原理,储存在SDRAM中的640×480个像素,受显示控制电路中行同步信号的控制,每个行周期读出640个像素,并同步显示。采用抽取法实现分辨率的压缩,必须丢弃行和列的部分像素。以变换320×240分辨率为例,具体的设计方法是,将分辨率为640×480的原图像每隔一行进行行标记,在标记的行里,每隔1个像素进行列标记,最后将行列都被标记过的像素取出,提供给显示控制电路。
    由于SDRAM存储器本身具有逐行读取、读取显示同步的特点,为了达到对行像素的隔行提取,本设计采用快读慢显的方式。例如原640× 480的分辨率采用25MHz的频率作为SDRAM数据读取频率和VGA的像素显示频率,现在采用50MHz作为SDRAM数据读取频率,VGA的像素显示频率仍然采用25MHz,即读取两行,保存一行并显示。在提取的行像素里每隔1个像素对列像素进行提取,则得到所需要的行列像素。
2.2.2 双端口RAM控制模块
    VGA显示器要求行像素读取和显示同步,由于抽取出来的行列像素在时序上是不连续的,电路必须加存储器对提取的像素进行缓存。数据缓存模块可以选用任何存储单元,根据像素存取的特点,本设计选用了双端口的RAM对有效像素进行乒乓操作。双端口RAM乒乓操作的原理如图3所示。

 
    在第N个周期,将输入的数据流缓存到“数据缓存模块1”,与此同时,“数据缓存模块2”中缓存的数据通过“输出数据流选择单元”的选择,送到显示电路。在第N+1个周期,将输入的数据流缓存到“数据缓存模块2”,与此同时,“数据缓存模块l”中缓存的数据通过“输出数据流选择单元”的切换,送到显示电路。乒乓操作的最大特点是:通过“输入数据流选择单元”和“输出数据流选择单元”按节拍相互配合切换,将经过缓存的数据流没有时间停顿地传送到输出端,因此非常适合对时序不连续的像素进行流水线式处理。
    根据双口RAM乒乓操作的原理,被抽取出来的像素,一行被缓存的同时,另一行则被顺序地读取出来,保证了像素显示的连续与同步。双端口RAM的输入输出信号的端口程序如下:
    WIRE [29:0] DATA a,DATA b;
    WIRE I_a=I;
    WIRE I_b=~I;
    WIRE[9:0]COIANTER a=(I)?ADDRESSl:COUNlER;
    WIRE[9:0]COUNTER b=(!I)?ADDRESSl:COUNTER;
    RAM U2(
    .DATA a (INDATA),
    .WREN a (I a),
    .ADDRESS a(COUNTER a),
    .CLOCK A(CLK),
    .Q a(DATA a),
    .DATA b (INDATA),
    .WREN b(I_b),
    .ADDRESS b(COUNTER b,
    .CLOCK B (CLK),
    .Q_b(DATA_b));
2.3 VGA显示控制模块
    显示控制器主要用于输出VGA显示器所需要的RGB数据信号和控制信号,根据输入时钟,显示控制器可以产生VGA所需要的控制信号,包括场同步、行同步和复合消隐信号等。输出像素则与输入像素相同。图4为VGA的控制模块的仿真波形。

 

 

3 电路调试结果与分析
    图5是分辨率为640×480的原图像,图6是分辨率为320×240,比例为4:3的图像。从处理后的图像效果可以看出,图像清晰,信息量丰富,能够满足图像的一般要求。

 

 

4 结论
    本论文提出了一种基于FPGA的图像裁剪电路的设计方法,通过改变图像的分辨率达到压缩图像的效果。这种设计方法不仅具备了FPGA开发电路所具有的开发周期短、设计效率高、扩展性和升级性良好、设计灵活等特点,而且与通常所用的插值算法相比,电路结构简单、设计简便,从测试的效果来看,图像清晰,能够满足一般图像的要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着嵌入式的快速发展,在工控、通信、5G通信领域,FPGA以其超灵活的可编程能力,被越来越多的工程师选择。近日,米尔电子发布2款FPGA的核心板和开发板,型号分别为:基于紫光同创Logos-2系列PG2L100H的MYC...

关键字: FPGA 核心板 开发板

在某FPGA系统中,对电源系统进行调试,在同样的测试条件下,发现其中有一块板相对其它的板功耗总偏大,进而对其进行调试分析。

关键字: 电源 纹波调试 FPGA

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

在现代人的生活中,断路器绝对是一种举足轻重的电路装置,而且是家用电路中最重要的安全机制之一。

关键字: 断路器 电路 灭弧系统

UART(Universal Asynchronous Receiver/Transmitter)是一种通信协议,用于在电子设备之间传输数据。它是一种串行通信协议,意味着数据位按顺序一个接一个地传输。

关键字: FPGA UART串口通信

电力系统呈现出电力电子化趋势,在电磁暂态仿真计算中,针对不同的仿真对象以及不同的仿真精度要求,使用的数值计算方法不尽相同 。

关键字: 电力电子 电路 仿真

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

电路功率元件由标准的boost电路组成,通过电压和电流的双重反馈,其中电压位于外环,而电流位于内环。因此,APFC在保证输出端恒定电压的同时,使得电流的波形为正弦波。

关键字: 电路 功率元件 电压
关闭
关闭