基于FPGA的RGB到YCrCb颜色空间转换

发布者:芳华逝水最新更新时间:2010-07-09 来源: 沈阳化工学院关键字:FPGA  RGB  YCrCb  颜色空间转换 手机看文章 扫描二维码
随时随地手机看文章

  0 引  言

  随着多媒体和通信技术的发展,视频图像处理的实时性成为人们关注的热点。视频图像处理一般都是用数字信号处理器(digital signal processor,DSP)来完成的。为了满足实时性要求,往往采用多DSP或DSP阵列的方法,使系统在成本、重量、功耗等方面都会快速升高。现场可编程门阵列(FPGA)运算的并行性和内嵌DSP核等特点,能够提高运算速度满足视频处理的实时性要求。在视频图像显示、处理时,采用的颜色空间主要有RGB,YCrCb两种。RGB基于三基色原理,颜色实现简单,在计算机、电视机显示系统中应用广泛,YCrCb将颜色的亮度信号与色度信号分离,易于实现压缩,方便传输和处理。在视频压缩、传输等应用中经常需要实现RGB与YCbCr颜色空间的相互变换。这里推导出一种适合在FPGA上实现从RGB到YCbCr。颜色空间变换的新算法,采用单片FPGA完成电路设计,利用FPGA内嵌DSP核实现乘法运算,提高了转换算法的运行速度。

  1 颜色空间

  在RGB颜色空间中,自然界所有颜色都可以用红(R)、绿(G)、蓝(B)三种颜色的不同强度组合而重现。RGB的取值范围分别为0~255,表1列出了几种颜色对应的R,G,B取值。

  RGB生成颜色容易实现,被广泛应用在计算机、彩色电视机的显示系统中。但是RGB表示颜色的效率并不是很高,3个颜色分量同等重要,而且亮度信息存在于所有颜色分量中,当需要对像素点的亮度或者色度值进行修改时,必须同时改变RGB三者的值。

  YCrCb颜色空间是在开发世界范围数字分量食品标准过程中作为ITU-R BT.601标准的一部分而开发出来的。在YCRCb颜色空间中,Y表示亮度信号,取值范围为16~235;Cr,Cb表示色度信号,取值范围为16~240,亮度信号与色度信号相互独立。这种颜色表示方法可以利用人眼的特性降低数字彩色图像的存储空间。人眼视觉系统(HVS)对亮度细节的敏感度高于颜色细节,适当减少色度分辨率不会明显影响图像的画质,易于实现数据压缩。

  2 RGB到YCrCb的转换

  在ITU-R BT.601标准中给出了RGB与YCrCb的转换关系式如下:

  式中:R’,G’,B’表示Garoma校正后的R,G,B值。该转换关系式是一个3×3乘法矩阵,电路实现时需要9个乘法器和9个加法器,在FPGA中直接实现时将会占用较多逻辑资源。[page]

  为了减少逻辑资源的使用,需要对该算法做进一步改进,简化运算过程,从而以较少的逻辑资源实现转换电路。首先对Cb,Cr做如下化简:

  Cb=0.148 2(B’-R’)+0.291 0(B’-G’)+128

  Cr=0.367 8(R’-G’)-0.071 4(B’-R’)+128

  对y的计算公式进行化简时,令Y’=0.256 8R’+0.501 4G’+0.097  9B’,Cb’  =-0.148  2R’-0.291 0G’+0.439 2B’,有0.577 2Y’+Cb’=0.495 7B’。为了计算方便,近似值为0.5B’。此时,有Y’=1.732 5(0.5B’-Cb’),与原式误差为△Y’=0.007 4B’,其范围为0~1.887。当以Y’表示Y时,需要对误差作补偿。计算公式可表示为:

  Y=1.732 5(0.5B’-Cb’)+offset

  式中:offset=16-0.007 4B’,化简后的转换公式如下:

  Y=1.732 5(0.5B’-Cb’)+offset

  Cb=0.148 2(B’-R’)+0.291 0(B’-G’)+128    (2)

  Cr=0.367 8(R’-G’)-0.071 4(B’-R’)+128

  式中:Cb’=0.148 2(B’-R’)+0.291 0(B’-G’),

  offset=16-0.007 4B’。

  根据B’的取值不同,offset的取值取整后为14,15,16。在计算过程中,可以用一个数据选择器根据B’值的不同选择offset的值。0.5B’的计算可以用移位实现。化简后的转换算法,对Y,Cb,Cr的计算将比原来节省4个乘法器。在FPGA中,加法器、数据选择器和移位算法的实现比乘法器简单,该化简将利于减少逻辑资源的应用,简化实现电路,提高运算速度。

  转换电路结构如图1所示。

[page]

  3 基于FPGA的实现

  在FPGA中,对乘法的实现比较复杂,可以采用如下几种方法:

  (1)直接用编程语言描述乘法运算,由综合工具自动实现,用该方法描述,实现简单,但是耗用比较多的逻辑资源。

  (2)利用查找表的方式实现乘法运算,事先把要相乘数据的所有结果算出来存到ROM中,根据输入数据的值读取相应的结果,当用该方法相乘数据位数比较多时,会占用大量的存储空间。

  (3)用FPGA中内嵌的乘法器实现,该方法实现简单,当用VHDL语言实现时,调用相应的乘法模块即可。

  本文采用第三种方法,用专用乘法器来实现转换公式中的乘法运算。Xilinx的Virtex 4系列FPGA芯片内嵌的乘法器为Xtreme DSPTM Slice-DSP48 Slice其工作频率高达500 MHz,支持多种独立的功能,包括乘法器、乘累加器(MAC)、后接加法器的乘法器、三输入加法器、桶形移位寄存器、宽路线多路复用器、大小及比较器或宽计数器。本文将运用DSP48 Slice模块实现乘加运算,在电路结构图的虚线框中,乘法和加法的运算将用单个DSP48 Slice模块实现。这样将会减少转换关系式中加法器的数量,节约逻辑资源,在程序中可以用元件例化语句调用DSP48 Slice模块,实现方法简单,程序简洁。为了满足浮点数和运算精度的要求,适合在FPGA中实现,将式(2)改写为:

  式中的除法运算可以通过截断低位数据的方法实现,在截断数据时,对截去小数部分判断,采用4舍5人的方法,当截去部分的最高位是1时,有进位,最高位是0时,直接舍去。用VHDL语言描述式(3)的转换算法,输入R’,G’,B’是8位无符号二进制数,进行加减运算时,需要做符号位补位。

  在每个运算部件(包括乘法和加减法器)的输出以及系统的输入/输出之间加上缓存寄存器,实现流水线设计,能提高资源利用率,加快运算速度,寄存器级数由运算延时大小决定。在输出端用计数器控制运算开始时的噪音输出。箝位电路控制输出数据范围满足颜色空间的要求。[page]

  4 仿真结果

  在Xilinx的Virtex4-FX平台实现现图1的电路结构,用ISE软件仿真。资源使用情况如下:

  时序仿真结果如图2所示。

  通过图2可以验证转换算法的正确性。在使能信号en有效后,经过6个时钟的运算时延,输出端有转换结果输出,输出结果四舍五入,误差0.5,比以往算法提高了变换结果的精度。

  5 结  语

  通过对转换算法的研究,推导出适合在FPGA上实现的新算法,算法优点突出。算式中乘法器采用DSP48 Slice模块实现,提高了转换算法的运算速度。从综合报告可以看出,除了使用5个DSP48s外,其他资源使用的比较少。运算速度最大能够达到189 MHz,能够充分满足运算量大,实时性要求高的应用。

关键字:FPGA  RGB  YCrCb  颜色空间转换 引用地址:基于FPGA的RGB到YCrCb颜色空间转换

上一篇:红外动目标识别跟踪系统的DSP+FPGA实现
下一篇:基于FPGA的彩色图像Bayer变换实现

推荐阅读最新更新时间:2024-05-02 21:05

Dialog成为赛灵思SoC和FPGA领先电源管理合作伙伴
Dialog半导体公司 (德国证券交易所交易代码: DLG )日前宣布,成为领先FPGA、SoC和3D IC供应商赛灵思的关键电源管理合作伙伴。通过与赛灵思合作,Dialog将充分发挥其在开发针对下一代传感器处理、网络连接和汽车应用的高效、可扩展电源管理解决方案的丰富经验。Dialog为赛灵思 Zynq®-7000 SoC、 Zynq UltraScale+ ™ MPSoC 和 Spartan®-7 FPGA 平台提供完整的电源管理解决方案组合。 这次合作将带来结合了两家公司器件的高效、成本优化的解决方案。 DA9063 电源管理IC(PMIC)和 DA9213 子-PMIC可满足Zynq UltraScale+ MPS
[嵌入式]
Dialog成为赛灵思SoC和<font color='red'>FPGA</font>领先电源管理合作伙伴
英特尔推出全新多功能FPGA 面向工业和汽车市场
为支持日益增多的物联网(IoT)应用,英特尔公司发布了英特尔® Cyclone® 10 系列现场可编程门阵列(FPGA)。该系列旨在提供快速、节能的处理能力,可用于广泛领域,包括汽车、工业自动化、专业视听和视觉系统等。 随着“万物”具有更高的互联水平并能够彼此共享大量实时数据,数据处理变得愈发困难。建筑物、工厂、家庭和车辆中的传感器和摄像头发出的信息日益增多,微处理器或微控制器已经无法单独处理这些信息。 英特尔FPGA等高性能处理设备能够收集和发送数据,根据物联网设备的输入做出实时决策。FPGA 可通过专门编程,提供不同物联网应用需要的特定计算和功能。 Cyclone® 10 FPGA–Cyclone® 10 GX和Cyclone
[嵌入式]
基于PXA255设计的图像采集传输系统
0 引言 图像处理技术的快速发展,使得图像采集处理系统在提高农业生产自动化程度中的应用越来越广泛。目前的图像采集系统有的基于CCD摄像机、图像采集卡和计算机,有的基于CCD摄像机、解码器、FPGA和DSP,而有的基于CMOS图像传感器芯片、FPGA和DSP,它们在实时性,灵活性,可维护性方面各有优缺点。而在农业生产中,以基于CCD摄像机、图像采集卡和计算机的系统居多。本文结合实际系统中的前端图像处理和图像数据传输需要.充分利用ARM的灵活性和FPGA的并行性特点,设计了一种基于ARM+FPGA的图像快速采集传输系统。所选的ARM (Ad-vanced RISC Machines)体系结构是32位嵌入式RISC微处理器结构,该微
[单片机]
基于PXA255设计的图像采集传输系统
专访赛灵思副总裁:让软件开发者更容易地使用硬件
文章来源:APP Devoloper Magazine 从5G和无人驾驶汽车到科学研究,都需要硬件能够可靠、快速和高效地执行独特的任务,并能够适应不断变化的标准和规范。 在本文中,Xilinx的AI和软件副总裁Ramine Roane讨论了如何通过统一的软件平台使新的和现有的芯片技术帮助广大开发变得越来越易用,并且使技术可以进步得更快。 问:是什么驱动着FPGA在新的垂直领域和细分市场中越来越广泛的采用? Roane:简而言之,数据和计算需求继续呈指数级增长,而CPU性能却停滞不前。 CPU频率难以持续提升,促使CPU制造商转移至多核架构,从本质上将缩放问题从芯片层迁移到软件层。但是,阿姆达尔定律严重限制了多线程软件的加速效率
[嵌入式]
基于SoC FPGA的异步全彩LED显示解决方案
简介 本文分析了市场上常见的异步全彩LED显示控制方案,提出了基于京微雅格SoC FPGA的针对门楣广告应用的优化解决方案。在单主控的情况下实现了高灰度,高刷新的异步全彩LEDLED显示屏市场概况    全彩LED显示被普遍应用于户外及室内的大型广告、舞台背景等场合(大多是同步显示),随着价格的下降,全彩LED显示已经开始被使用于门楣广告(异步显示)。当前门楣广告一般采用单双色LED显示,市场需求大。与单双LED相比,全彩LED能够展现更丰富的内容,如真彩图片、动画、视频等,全彩LED显示将是门楣广告屏的发展趋势。 市场流行方案的介绍 目前市场上比较流行的方案有以下几种: ①ARM-Cortex-A8+FPGA解决方案
[电源管理]
基于SoC <font color='red'>FPGA</font>的异步全彩LED显示解决方案
宽带数字下变频器的FPGA实现
随着软件无线电理论的日趋成熟,软件无线电技术越来越多地应用到军用或民用通信系统中。其中,数字下变频技术(DDC)是软件无线电中的核心技术之一。数字下变频工作在模拟前端输入模拟信号经模数转换之后,而在终端设备的数字信号处理之前,它主要用于实现将中频信号频谱变到零中频后,再对信号进行抽取,使采样速率变至后端数字信号处理单元所需要的处理速率。 目前随着A/D变换越来越向射频前端发展,高速采样速率对后续的数字信号处理和整个系统的协调工作带来了越来越大的压力。为了解决高速采样的大数据量与现有DSP器件处理能力之间很难匹配的问题,设计了一种基于多相滤波的宽带数字下变频结构,将多相滤波下变频的并行结构应用到数字下变频器中,并在后续的混频模块中
[电源管理]
宽带数字下变频器的<font color='red'>FPGA</font>实现
Intersil推出针对应用处理器、GPU等的最小尺寸和最高效率PMIC
高度集成的ISL91211为智能手机、IoT设备以及其他在空间和功率上受限的系统提供91%的效率,并缩小解决方案尺寸达40% 全球领先的半导体解决方案供应商瑞萨电子株式会社(TSE: 6723)子公司Intersil今天宣布,推出一款用于应用处理器、GPU、FPGA和高性能系统电源的高度集成且可编程电源管理IC(PMIC)-- ISL91211,在1.1V输出电压下效率可达91%。该新型PMIC的低RDS(on) MOSFET和可编程PWM频率有助于工程师使用更少的外部元件,实现比竞争解决方案小40%的50mm2电源。ISL91211三、四输出PMIC是采用单芯锂离子电池或2.5V – 5.5V电源供电的智能手机、平板电脑、
[电源管理]
Intersil推出针对应用处理器、GPU等的最小尺寸和最高效率PMIC
FPGA之DDS信号发生器
本文主要涉及以下几个问题 1:频率控制字如何得到 2:DDS的框图 3:用MATLAB得到正弦波的数字量化 4:设计代码 5:仿真代码 6:仿真图 首先将正弦波信号离散化,离散成多少位的根据自己的设计精度要求来定,但最高位一定是符号位,负数用补码来表示;然后用rom或者ram来存储离散后的数据;再由频率控制字的累加来给出地址用于读出ROM或者ram中的数据。 1:相位累加器的位宽设为n,fc/(2^n)称作频率分辨率,这是能分辨出的最小频率,提高相位累加器位宽可以调高频率分辨率。目标频率f=M*fc/2^n ,fc是采样频率,M是频率控制字,由此可以得到频率控制字。 2:DDS框图其中输入到ra
[测试测量]
<font color='red'>FPGA</font>之DDS信号发生器
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved