RGB和YUV

什么是RGB

RGB 模型是目前常用的一种彩色信息表达方式,它使用红、绿、蓝三原色的亮度来定量表示颜色。该模型也称为加色混色模型,是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。

这里写图片描述

什么是YCbCr

Y表示亮度,CbCr表示颜色。怎么表示颜色,可以看下面这幅坐标图:

这里写图片描述

Y要如何表示亮度呢,下面是Y在不同的情况下的表现:

这里写图片描述

现在的YUV是通常用于计算机领域用来表示使用YCbCr编码的文件。所以可以粗浅地视YUV为YCbCr。

 

什么是YUV

YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像(是不是写错了),只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。
 

YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。

前者将 YUV 分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);

而后者使用三个数组分开存放 YUV 三个分量,就像是一个三维平面一样。

 

YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,关于其详细原理,可以通过网上其它文章了解,这里我想强调的是如何根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来。


存储方式

用三个图来直观地表示采集的方式吧,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。

这里写图片描述

先记住下面这段话,以后提取每个像素的YUV分量会用到。

YUV 4:4:4采样,每一个Y对应一组UV分量。 
YUV 4:2:2采样,每两个Y共用一组UV分量。  
YUV 4:2:0采样,每四个Y共用一组UV分量。 

下面我用图的形式给出常见的YUV码流的存储方式,并在存储方式后面附有取样每个像素点的YUV数据的方法,其中,Cb、Cr的含义等同于U、V。

 

YUVY 格式 ——》属于YUV422

这里写图片描述

YUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr,分析,对于像素点Y’00、Y’01 而言,其Cb、Cr的值均为 Cb00、Cr00,其他的像素点的YUV取值依次类推。

UYVY 格式 ——》属于YUV422

这里写图片描述

UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不同的是UV的排列顺序不一样而已,还原其每个像素点的YUV值的方法与上面一样。

YUV422P——》属于YUV422

这里写图片描述

YUV422P也属于YUV422的一种,它是一种Plane模式,即平面模式,并不是将YUV数据交错存储,而是先存放所有的Y分量,然后存储所有的U(Cb)分量,最后存储所有的V(Cr)分量,如上图所示。其每一个像素点的YUV值提取方法也是遵循YUV422格式的最基本提取方法,即两个Y共用一个UV。比如,对于像素点Y’00、Y’01 而言,其Cb、Cr的值均为 Cb00、Cr00。
 

YV12,YU12格式——》属于YUV420

这里写图片描述

YU12和YV12属于YUV420格式,也是一种Plane模式,将Y、U、V分量分别打包,依次存储。其每一个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y分量共用一组UV。注意,上图中,Y’00、Y’01、Y’10、Y’11共用Cr00、Cb00,其他依次类推。

NV12、NV21——》属于YUV420

这里写图片描述

NV12和NV21属于YUV420格式,是一种two-plane模式,即Y和UV分为两个Plane,但是UV(CbCr)为交错存储,而不是分为三个plane。其提取方式与上一种类似,即Y’00、Y’01、Y’10、Y’11共用Cr00、Cb00

 

 

存储格式:内存布局=>所属存储类型=>planes

IYUV: YYYYYYYY UU VV      =>YUV420P   =>3 planes
YV12: YYYYYYYY VV UU      =>YUV420P   =>3 planes
NV12: YYYYYYYY UVUV       =>YUV420P   =>2 planes
NV21: YYYYYYYY VUVU       =>YUV420P     =>2 planes
YUY2: Y0U0Y1V0Y2U1Y3V1    =>YUV422SP  =>1 planes
UYVY: U0Y0V0Y1U1Y2V1Y3  =>YUV422SP  =>1 planes
YVYU: Y0V0Y1U0Y2V1Y3U1  =>YUV422SP  =>1 planes

YUV文件大小计算
以720×488大小图象YUV420 planar为例,其存储格式是: 共大小为(720×480×3>>1)字节,

分为三个部分:Y,U和V
Y分量:       (720 x 480)个字节 
U(Cb)分量:(720 x 480 x 1/4)个字节 
V(Cr)分量: (720 x 480 x 1/4)个字节

三个部分内部均是行优先存储,三个部分之间是Y,U,V 顺序存储。 
即 
 

      0     --720×480     字节是Y分量 
720×480     --720×480×5/4 字节是U分量 
720×480×5/4 --720×480×3/2 字节是V分量

假设一个分辨率为8X4的YUV图像,它们的格式如下图:

                     YUV420sp格式如下图                                                                  YUV420p数据格式如下图

                  

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RGBYUV是数字图像和视频中常用的色彩编码格式。RGB是红绿蓝三原色的颜色值组合,通过对这三种颜色不同强度的组合来生成不同的颜色。而YUV则是亮度(Y)和色度(UV)两个分量组成的编码格式,它将图像的亮度和颜色分开编码,适合于人眼对亮度更敏感。 在显示工具中,RGBYUV的转换是必要的。一方面,大多数显示设备都是以RGB格式来接收和显示图像,因此需要将从摄像头或其他来源获取的YUV格式的信号转换为RGB格式进行显示。另一方面,通过将RGB格式的图像信号转换为YUV格式可以在一定程度上减小数据量,提高传输效率。 RGB/YUV显示工具的主要功能包括图像格式的转换和图像质量的调整。转换功能包括将YUV格式转换为RGB格式和将RGB格式转换为YUV格式,以满足不同设备之间的兼容性需求。调整功能包括调整图像的亮度、对比度、饱和度等参数,以优化图像的显示效果。 除此之外,RGB/YUV显示工具还可以提供一些额外的功能,比如色彩空间的转换,像素值的查看和修改,以及图像处理算法的应用等。这些功能可以帮助用户更好地理解和处理数字图像和视频数据。 总之,RGB/YUV显示工具是一种用于转换和调整数字图像和视频的格式和质量的工具。通过它,我们可以方便地将不同格式的图像信号进行转换,并对图像进行各种参数的调整,以实现更好的图像显示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值