0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用FPGA的Block RAM性能实现HDTV视频增强算法中灰度直方图统计

电子设计 来源:郭婷 作者:电子设计 2019-07-10 08:10 次阅读

引言

随着HDTV 的普及,以LCD-TV 为主的高清数字电视逐渐进入蓬勃发展时期。与传统CRT 电视不同的是,这些高清数字电视需要较复杂的视频处理电路来驱动,比如:模数转换(A/D Converter)、去隔行(De-interlacer)、视频缩放(Scaler)和视频图像增强(Video Enhancement)等等。由于HDTV 的带宽较高,720p 信号(1280×720᤼Hz)的像素速率达到74MHz,因此针对HDTV 的视频处理算法需要更高性能的器件。采用大规模高工艺的ASIC 芯片是目前这个问题的主要解决方案,Pixelworks、Genesis 等公司均推出了基于大规模ASIC 的解决方案。但是,随着FPGA 工艺的不断改善,其性价比与日俱增,尤其是Xilinx、Altera厂商纷纷采用90nm 工艺量产后,其价格不断降低,Xilinx 最新推出的Spartan-3E系列FPGA 120 万门的售价只有 9 美元,已经在小量产品的IC 设计中开始替代结构化ASIC,在数字高清电视这类价格敏感型消费类电子产品中也开始大量采用。

本文介绍了如何在FPGA 中利用Block RAM 的特殊结构实现HDTV视频增强算法中灰度直方图统计。

灰度直方图统计

灰度直方图统计是图像处理过程中很常用的一个步骤,简单来讲,就是对一幅图像各个灰度的像素进行计数,得到一张灰度分布表。例如,8 位量化的灰度图像统计结果就是256个值,分别代表0-255 每个灰度像素的数量,如图1 所示为Lena 图像的灰度直方图统计结果。直方图是分析一幅图像亮度分布特性有力的工具,根据它的结果可以进行诸如灰度拉伸、自动对比度、动态伽马调整等操作。

图1 Lena 图像的灰度直方图统计

FPGA算法统计

在计算机或者DSP 上实现直方图统计时,我们通常会使用数组结构,即在内存中开辟一个整数数组来进行计数,但是在FPGA 中定义数组是非常消耗资源的,尤其是当数组成员的位宽很大时。例如用触发器来统计256 灰度的720p 图像的直方图,将消耗4000 个逻辑单元(每个逻辑单元是一个四输入查找表),这几乎消耗了一个Spartan-3E 25 万门器件(XC3S250E)80%的逻辑资源。

幸运的是,FPGA 器件提供了一个很好的结构可以处理这类问题,这就是Block RAM。在Altera 和Xilinx 的各型号FPGA 器件上都集成了一种称为Block RAM 的片上内存,它们以若干Kbits 为一块,不同型号集成不同数量的块,例如在Spartan-3E 系列中以18Kbits 为一块,在规模最小的型号XC3S100E 上集成了4 块这样的内存,如图2 所示:

如何用FPGA的Block RAM性能实现HDTV视频增强算法中灰度直方图统计

这种内存很容易实现数组类型的结构,而且这种内存被设计成双端口方式,即可以用两组独立的地址数据总线来读写,因此可以用不到一块的Block RAM 就实现256×24 这样的高位宽计数器阵列来进行HDTV 视频图像的直方图统计,如图3 所示:

如何用FPGA的Block RAM性能实现HDTV视频增强算法中灰度直方图统计

以Block RAM 的结构为核心,按照以下几点来设计直方图统计算法:

1. Block RAM 使用双端口方式,端口A 用来将内存单元计数值读出,端口B 将计数值加一后写回该内存单元。

2. 内存的地址在像素有效时由像素灰度值选择,在行同步期间不计数,在场同步期间使用一个递增计数器在前256 个时钟将统计结果输出,在之后的256 个时钟将RAM 块清零。

3. 双端口读写时钟相位相差180 度,以避免双端口读写冲突。

4. 数据的读出、加一和写入采用了流水线结构以提高性能,所以在地址控制上要进行适当暂存以保证数据同步。 图4 为256 级灰度720p 视频图像直方图统计的算法实现功能框图:

如何用FPGA的Block RAM性能实现HDTV视频增强算法中灰度直方图统计

结语

该算法借助FPGA 片上的高性能Block RAM(读写速度可以到200 兆以上),可以实现SMPTE 定义的从720p 到1080p 的各种HDTV 视频图像的实时直方图统计,仅占用FPGA不到一百个逻辑单元和一块Block RAM,是一种性价比较高的FPGA 实现直方图统计的算法,而且该算法具有很好的通用性,可以应用到各种需要大量高位宽计数器的高速FPGA设计中。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21272

    浏览量

    592798
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8638

    浏览量

    361612
  • 数字电视
    +关注

    关注

    3

    文章

    315

    浏览量

    44872
收藏 人收藏

    评论

    相关推荐

    基于直方图算法进行FPGA架构设计

    引言 直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图直方图的不同种类
    的头像 发表于 12-10 16:37 2398次阅读

    嵌入式操作教程:在LCD上显示灰度图像的直方图统计结果

    学习直方图统计的原理,掌握图像的读取方法,并实现在LCD上显示灰度图像的直方图统计结果。
    的头像 发表于 11-30 16:10 542次阅读
    嵌入式操作教程:在LCD上显示<b class='flag-5'>灰度</b>图像的<b class='flag-5'>直方图</b><b class='flag-5'>统计</b>结果

    一文带你了解FPGA直方图操作

    后面慢慢介绍,先重点介绍直方图均衡。公众号:OpenFPGA 直方图统计FPGA实现 从数学上
    发表于 01-10 15:07

    图像自适应分段线性拉伸算法FPGA设计

    FPGA实现2.1 设计思路根据以上算法分析,FPGA设计思路如下:在每帧图像帧正程,用双端口RAM进行
    发表于 04-27 14:37

    基于FPGAHDTV视频图像灰度直方图统计算法设计

    本文介绍了如何在FPGA 利用Block RAM 的特殊结构实现HDTV
    发表于 05-14 12:37

    FPGA图像处理 直方图统计灰度拉伸 然后VGA显示的问题

    本人目前用FPGA做一个图像处理并VGA显示的东西,中间用到直方图统计灰度拉伸,使图像对比度提高。现在遇到一个问题,取统计的5%和95%的
    发表于 06-28 09:35

    基于FPGA的图像直方图均衡处理

    灰度值为模拟量的情况下讨论直方图均衡的算法原理。1)基本思想把原始图的直方图变换为均匀分布的形式,增加像素灰度值的动态范围以
    发表于 07-14 17:26

    【干货】基于FPGA的图像处理(图像增强)之直方图均衡

    什么呢?是增强图像的对比度。先来看下在Matlab实现直方图均衡的效果吧。图片比较随意,直接对电脑桌面截了一张图,大家应该能有一个直观的感受,知道
    发表于 12-08 09:40

    如何实现HDTV视频增强算法灰度直方图统计

    本文介绍了如何在FPGA利用Block RAM的特殊结构实现HDTV
    发表于 04-30 07:34

    嵌入式操作教程_DSP教学实验箱:5-6 灰度图像直方图(LCD显示)

    一、实验目的 学习直方图统计的原理,掌握图像的读取方法,并实现在LCD上显示灰度图像的直方图统计
    发表于 11-30 10:42

    基于FPGA视频图像灰度信号直方图均衡算法实现设计

    FPGA实现可以很好地解决实时处理的难题,而且目前的FPGA资源容量已经很丰富,片内的SRAM/PLL/逻辑资源已经足以应对一般图像处理算法的需要,同时随着价格的不断下降,客观上使得
    发表于 07-20 18:06 2519次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>视频</b>图像<b class='flag-5'>灰度</b>信号<b class='flag-5'>直方图</b>均衡<b class='flag-5'>算法</b><b class='flag-5'>实现</b>设计

    MATLAB如何实现图像增强灰度变换直方图均衡匹配

    在MATLAB数字图像处理领域,如何实现空间域图像增强灰度变换,以及图像直方图的均衡和匹配(配准)?本文通过大量的图片增强案例,从图像的显
    发表于 01-13 21:56 1w次阅读
    MATLAB如何<b class='flag-5'>实现</b>图像<b class='flag-5'>增强</b><b class='flag-5'>灰度</b>变换<b class='flag-5'>直方图</b>均衡匹配

    基于直方图算法FPGA设计架构

    直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图直方图的不同种类和
    发表于 04-20 10:47 1082次阅读
    基于<b class='flag-5'>直方图</b><b class='flag-5'>算法</b>的<b class='flag-5'>FPGA</b>设计架构

    如何使用FPGA实现实时图像增强算法

    针对复杂背景的多目标图像,提出了一种基于直方图的实时自适应图像增强方法。该方法根据自适应直方图窗口选择高低阈值,通过灰度线性变换及灰度级等间
    发表于 02-03 15:21 10次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>实时图像<b class='flag-5'>增强</b><b class='flag-5'>算法</b>

    剖析FPGA灰度直方图线性拉伸

    纯工程师社群 直方图线性拉伸相对于直方图均衡化来说就更好理解一些了,即用线性变化将灰度直方图较窄的部分拉伸至整个区间,增强整幅图像的对比度。
    的头像 发表于 07-02 10:37 2617次阅读
    剖析<b class='flag-5'>FPGA</b><b class='flag-5'>灰度</b><b class='flag-5'>直方图</b>线性拉伸