>
首页 » 业界动态 » 基于FPGA的HDTV视频图像灰度直方图统计算法设计

基于FPGA的HDTV视频图像灰度直方图统计算法设计

作者:  时间:2007-12-07 07:03  来源:

摘要:介绍了用fpga实现高分辨率hdtv视频图像的灰度直方图统计的算法设计和实现方法。

关键词:fpga;hdtv;直方图统计

引言

随着hdtv 的普及,以lcd-tv 为主的高清数字电视逐渐进入蓬勃发展时期。与传统crt 电视不同的是,这些高清数字电视需要较复杂的视频处理电路来驱动,比如:模数转换(a/d converter)、去隔行(de-interlacer)、视频缩放(scaler)和视频图像增强(videoenhancement)等等。由于hdtv 的带宽较高,720p 信号(1280×720@60hz)的像素速率达到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 所示:

图2 spartan-3e 系列fpga 集成的block ram

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

图3 用block ram 实现计数器阵列

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

1. block ram 使用双端口方式,端口a 用来将内存单元计数值读出,端口b 将计数值加一后写回该内存单元。

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

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

4. 数据的读出、加一和写入采用了流水线结构以提高性能,所以在地址控制上要进行适当暂存以保证数据同步。

图4 为256 级灰度720p 视频图像直方图统计的算法实现功能框图:

图4 用fpga 的block ram 实现直方图统计

结语

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

参考文献:

1. xilinx,spartan-3e fpga datasheet,2005.3

2. xilinx,using block ram in spartan-3 generation fpgas,2005.3

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点