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

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

3天内不再提示

FPGA ISP Bayer与常见颜色空间转换介绍

Comtech FPGA 来源:Comtech FPGA 2023-01-16 15:57 次阅读

前言

FPGA实现ISP(Image Signal Processor)过程中,在图像接收、处理、传输过程中往往会接触到各种各样的图像格式,比如接收图像可能是原始RAW数据,驱动LCD显示器需要RGB格式,HDMI/SDI显示需要YUV格式等。各种图像格式之间可能涉及到相互转换,本文简单介绍几种常见的图像格式以及Xilinx FPGA实现方式。

Bayer图像

ISP通常是从接收到CMOS/CCD的图像信号开始,对于彩色图像传感器,输出图像格式可能是RGB、YUV或Bayer。为了降低成本,绝大部分的彩色图像传感器采用彩色滤镜阵列(color filter array,CFA)的方式捕获彩色图像,因此输出Bayer格式的Sensor最为常见。 典型Bayer图像的成像过程如下图所示。

c925c960-9571-11ed-bfe3-dac502259ad0.png

图2-1CFA示意图(图片来自wikipedia)

随着技术的发展,也有一些其他滤镜的Sensor出现,如RGBW、EXR、X-Trans等,如下图所示。

c93900ca-9571-11ed-bfe3-dac502259ad0.png

图2-2RGBW、Fujifilm “EXR”、“X-Trans”示意图(图片来自wikipedia)

通过上图可以发现,这些滤镜中,绿色的分量最多。这是因为人眼对绿色最为敏感,所以保留最多的绿色分量。

Demosaic

Bayer图像采集到FPGA以后,每个像素只有一种颜色分量。以Sony IMX290为例,输出图像的bayer格式如下图所示:

ca6a2d02-9571-11ed-bfe3-dac502259ad0.png

图3-1SonyIMX290 Pixel Arrangement

此时,如果将采集到的1920x1080图像以灰度展示,由于CFA的原因,图像会呈现一种马赛克现象,如下图所示:

ca8524ae-9571-11ed-bfe3-dac502259ad0.png

图3-2Bayerimage

所以将Bayer转成RGB的过程又称为Demosaic(去马赛克)。 每一个像素仅包含光谱的一部分,需要通过插值来填充每个像素的RGB分值。为了从Bayer格式得到每个像素的RGB格式,需要通过插值对每个像素填补缺失的两个颜色分量。插值的方法有很多(包括近邻、双线性等)。 插值后可以得到RGB图像:

caaf760a-9571-11ed-bfe3-dac502259ad0.png

图3-3Bayerto RGB

需要注意的是,Bayer图像根据第一个像素的颜色分量有4种排列方式,分别为GRBG、RGGB、BGGR、GBRG:

cc2ecc60-9571-11ed-bfe3-dac502259ad0.png

图2-4Bayer4种排列方式

如果输入Bayer的排列与IP core配置中插值的排列方式不同,则图像颜色会错乱。

cc4f7690-9571-11ed-bfe3-dac502259ad0.png

图3-5Bayer排列方式与Demosaic配置不一致

RGB/YUV颜色空间转换

YUV是一种颜色模型。它对彩色图像或视频进行编码时考虑到了人类的感知,与 "直接 "的RGB表示相比,允许减少色度成分的带宽。YUV模型定义了一个亮度分量(Y),代表物理线性空间的亮度,以及两个色度分量,分别称为U和V。它可以用来与RGB或其他色域空间进行相互转换。 同样常见的还有YCbCr,但是在实际中,往往是把YUV和YCbCr认为是同一种色域,只有模拟和数字的区别。我们一般也统称为YUV。

由于YUV色域相比于RGB带宽更低,所以经常见于图像接口,如BT656、BT1120、HDMI等。也由于YUV亮度与色度分开的特性,许多图像增强算法也基于YUV来设计,如3D降噪、边沿增强等。 YUV于RGB颜色空间的转换可由公式表现,不同的标准如ITU601.SDTV、ITU709.PAL/NTSC参数略有不同。

cc8bee0e-9571-11ed-bfe3-dac502259ad0.png

图4-1BT.601标准

ccaa6384-9571-11ed-bfe3-dac502259ad0.png

图4-2BT.709标准

根据以上公式,可以由RGB图像得到YUV,此时YUV有三个通道,图像大小相比于RGB没有变化,我们通常称之为YUV444。

ccc76042-9571-11ed-bfe3-dac502259ad0.png

图4-3RGBto YUV444

由于人眼对亮度敏感而对色度不敏感的特点,因此在YUV格式中减少了UV的数据量,在不影响用户观看的情况下有效的压缩了总体的数据量。所以YUV与RGB格式相比,占用更少的存储空间,相对应的在传输过程中也会减少带宽的消耗量。常见的YUV格式有YUV444、YUV422、YUV420等。

ccf2f87e-9571-11ed-bfe3-dac502259ad0.png

图4-4Chromasubsampling示意图(图片来自wikipedia)

延伸

在RGB转YUV的过程中,我们通常可以加一个系数,作为比例因子放大和缩小UV的分量,达到调节图像饱和度的目的。以8bit图像深度为例,比例因子为r,公式如下:

Cb=U*r+128;

Cr= V*r+128;

调整比例因子r,能得到不同色彩饱和度的图像。

cd02cdd0-9571-11ed-bfe3-dac502259ad0.png

图5-1 饱和度设置效果

RGB/YUV的颜色空间转换并非完全无损。FPGA运算精度有限,多次转换可能导致颜色失真,尤其是当转入转出标准不同时,会引入累积误差。 比如网络上流传的有趣的表情包、梗图,在传来传去的过程中,网络平台可能会反复压缩、解压,而显示基于RGB,压缩基于YUV,所以对图片不断地进行RGB/YUV转换。虽然每次转换损失轻微,但久而久之,在不断取整的过程中,Y、U、V三个值就会不断减小,Y让图像越来越暗,UV让图像越来越向绿偏移。

cd44cc30-9571-11ed-bfe3-dac502259ad0.png

图5-2模拟“电子包浆”

AMD-Xilinx FPGA实现

对于Demosaic,Xilinx提供IPcore供用户调用,用户可根据应用场景以及资源开销选择对应的插值方式,Fringe TolerantInterpolation或者HighResolution Interpolation,支持RGB bayer和CMY bayer两种格式。详细说明参考Xilinx官网PG286。 IP接口如下图所示:

cd65861e-9571-11ed-bfe3-dac502259ad0.png

图6-1XilinxDemosaic IP core

对于RGB与YUV的颜色空间转换或YUV444/YUV422/YUV420之间的转换,Xilinx也提供了IP core供用户调用。详细说明参考Xilinx官网PG231。

IP接口以及配置方式如下图所示:

cd829dee-9571-11ed-bfe3-dac502259ad0.png

cda56266-9571-11ed-bfe3-dac502259ad0.png

图6-2XilinxVPSS IP core

Xilinx提供的VPSS(Video Processing Subsystem),可以很方便地对RGB、YUV444、YUV422、YUV420进行互转。RGB与YUV的互转公式如下:

YUV to RGB:

B = Y + ((Cb * 2081)>> 10)

Cr = V -(1<<(HSC_BITS_PER_COMPONENT-1))

Cb = U -(1<<(HSC_BITS_PER_COMPONENT-1))

R = Y + ((Cr *1733) >> 10)

G = Y - ((Cb * 404+ Cr * 595) >> 10)

RGB to YUV:

V =(1<<(HSC_BITS_PER_COMPONENT-1)) + (((R-Y)*898)>>10)

Y = (306*R + 601*G+ 117*B)>>10

U =(1<<(HSC_BITS_PER_COMPONENT-1)) + (((B-Y)*504)>>10)

其中HSC_BITS_PER_COMPONENT = C_MAX_DATA_WIDTH (这里C_MAX_DATA_WIDTH可以由用户通过GUI设置。)

综上,使用这两个IP即可基于Xilinx FPGA快速实现Bayer与常见颜色空间转换。





审核编辑:刘清

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

    关注

    1602

    文章

    21320

    浏览量

    593201
  • LCD显示器
    +关注

    关注

    0

    文章

    85

    浏览量

    19982
  • ISP
    ISP
    +关注

    关注

    6

    文章

    457

    浏览量

    50845
  • RAW
    RAW
    +关注

    关注

    0

    文章

    20

    浏览量

    3748

原文标题:FPGA ISP Bayer与常见颜色空间转换

文章出处:【微信号:Comtech FPGA,微信公众号:Comtech FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于CPLD/FPGA视频颜色空间转换电路的设计

    基于CPLD/FPGA视频颜色空间转换电路的设计
    发表于 05-02 12:21

    ISP处理流程及应用场景

    )、Bayer 噪声去除、 白平衡( awb) 矫正、 色彩矫正( color correction) 、 gamma 矫正、 色彩空间转换( RGB 转换为 YUV) 、 在 YUV
    发表于 09-25 15:11

    基于FPGA的rgb与yuv颜色空间转换

    `基于FPGA的rgbtoyuv颜色空间转换一、概述 一般来说,摄像头输出的格式有RGB、YUV(Ycbcr)RAW图像格式,大部分图像算法都是基于灰度图像的,因此在输出格式为rgb时
    发表于 03-03 17:59

    YCbCr色彩空间和RGB色彩空间之间的转换方法介绍

    摘要:文章介绍了YCbCr色彩空间和RGB色彩空间之间的转换的方法,实现了不同规模以及不同数据结构的YCbCr到RGB的快速硬件转换。采用数
    发表于 07-01 06:41

    基于FPGA视频处理系统的颜色空间转换

    针对目前视频处理系统中应用比较广泛的YCbCr 4:2:0格式的数据,提出了一种在硬件上实现颜色空间转换的设计,解决了色度信号的插值操作和插值后数据流的重组问题,并在FPGA上采用Ve
    发表于 07-28 17:23 38次下载

    常见颜色模式HSB/RGB/CMYK详细介绍

    常见颜色模式HSB/RGB/CMYK详细介绍 颜色模式决定了用于显示和打印图像的颜色模型,它决定了如何描述和重现图像的色彩。
    发表于 02-23 13:45 5289次阅读

    基于FPGABayer到RGB图像格式转换设计

    基于FPGABayer到RGB图像格式转换设计
    发表于 08-29 16:05 35次下载

    图像处理的颜色空间及其OpenCV实现

    对图像的颜色空间做了一个概念性的介绍,并通过代码的方式可视化了每种颜色空间的每个通道所表示的意义。   文章内容包括: 什么是
    的头像 发表于 12-25 11:36 1476次阅读

    图像的颜色空间及其OpenCV实现

    对图像的颜色空间做了一个概念性的介绍,并通过代码的方式可视化了每种颜色空间的每个通道所表示的意义。   文章内容包括: 什么是
    的头像 发表于 12-26 11:33 1792次阅读
    图像的<b class='flag-5'>颜色</b><b class='flag-5'>空间</b>及其OpenCV实现

    如何使用FPGA实现Bayer到RGB图像格式转换的设计

    利用FPGA处理数据量大、处理速度快,结合CMOS图像传感器MT9M001和BayerCFA格式图像的特点,设计一种基于FPGA的图像数据转换处理系统,提出用硬件实现Bayer格式到R
    发表于 01-25 16:04 6次下载
    如何使用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>Bayer</b>到RGB图像格式<b class='flag-5'>转换</b>的设计

    基于彩色MT9V034摄像头 Bayer转RGB FPGA实现

    1 图像bayer格式介绍 bayer格式是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛
    的头像 发表于 06-12 17:12 3113次阅读
    基于彩色MT9V034摄像头 <b class='flag-5'>Bayer</b>转RGB <b class='flag-5'>FPGA</b>实现

    颜色空间有哪些类别 如何在OpenCV中实现

    对图像的颜色空间做了一个概念性的介绍,并通过代码的方式可视化了每种颜色空间的每个通道所表示的意义。
    的头像 发表于 02-07 15:15 544次阅读
    <b class='flag-5'>颜色</b><b class='flag-5'>空间</b>有哪些类别 如何在OpenCV中实现

    图像Bayer格式介绍及差值原理

    Bayer俗称为“拜耳阵列”,是实现 CCD 或 CMOS 传感器拍摄彩色图像的主要技术之一,是伊士曼·柯达公司科学家Bryce Bayer发明的,并于1976年注册专利,是工业相机领域中最为常见的彩色成像格式。
    的头像 发表于 05-29 12:05 4792次阅读
    图像<b class='flag-5'>Bayer</b>格式<b class='flag-5'>介绍</b>及差值原理

    IP库新增多种颜色转换空间IP简介

    颜色空间转换是图像及视频中常用的解决方案,涉及hsv-rgb、rgb-ycrcb等一些常见颜色空间
    的头像 发表于 07-17 08:48 1106次阅读
    IP库新增多种<b class='flag-5'>颜色</b><b class='flag-5'>转换</b><b class='flag-5'>空间</b>IP简介

    基于FPGABayer彩色自动白平衡设计

    电子发烧友网站提供《基于FPGABayer彩色自动白平衡设计.pdf》资料免费下载
    发表于 10-08 11:32 0次下载
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>Bayer</b>彩色自动白平衡设计