YUV 420、YCbCr 422、RGB 444以及色度二次采样

本文探讨了RGB和YUV两种颜色编码方式。RGB作为显示器常用的彩色信息表达,通过红、绿、蓝三基色混合形成各种颜色。而YUV常用于视频通信,利用人眼对亮度敏感度高于色度的特性,减少数据量的同时保持图像质量。YUV有多种采样方式,如YUV420,适用于内存和带宽有限的场景。

学习完YUV相关的知识点,现谈谈自己对这方面的理解。

计算机里面,R、G、B也被称为“基色分量”。它们的取值,分别从0到255,一共256个等级(256是2的8次方)。所以,任何颜色,都可以用R、G、B三个值的组合表示。而且只有RGB格式的数据才能在屏幕或显示器上显示出来。

既然只有RGB格式信号才可以在显示器上显示出来,为什么还需要其他格式的信号(比如YUV)?带着这个问题让我们一起回顾一下RGB与YUV。

RGB

RGB 模型是目前常用的一种彩色信息表达方式,每一种颜色都是红、绿、蓝三种颜色的混合,在这种模式下通过叠加颜色生成其他的颜色值,因而适合于显示器等发光体的显示。

image.png

image.png RGB 颜色空间可以看作是三维直角颜色坐标系中的一个正立方体。如上右图所示。红绿蓝三色在立方体的三个顶点上;洋红、青、黄色在立方体的立方体的另外三个顶点;黑色在坐标原点;而白色在离原点最远的定点上。在连接黑色与白色的对角线上,是亮度等量的三基色混合而成的灰色,该线称为灰色线。

下图是RGB如何形成图像的

image.png 那么对于一张1920 * 1080的图片,如果采用RGBA编码格式,这一张图片加载到内存并在设备中显示时,所占用的内存大小就是:

1920 * 1080 * 4 /1024 / 1024 = 7.9M`

YUV

YUV就是另外一种颜色数字化表示方式,常用与视频通信系统中。其中Y代表亮度(Luma),U和V代表色度(Chroma)。YUV与YCbCr可统称为YUV(具体原因可以查阅相关方面的资料)。下图演示了RGB 和YUV的关系,以及Y对UV的影响

image.png

由于人眼对色度的敏感程度要低于对亮度的敏感程度,因而可以在使用YUV的时候, 保证Y分量的前提下,可以舍弃一部分UV分量,来减少对带宽的需求,却也并不会太影响图像的质量。这就是YUV相对于RGB的优势,所以才会引入YUV的使用

下图是YUV如何形成图像的

image.png

YUV常用采样方式

主流的YUV采样方式有如下三种:

  • YUV444
  • YUV422
  • YUV420

    YUV444

image.png

YUV422

image.png

YUV420

image.png 其中YUV420最常用,YUV420包含YUV420p与YUV420sp, 区别在于plane数量分别为3和2。 根据uv分量的顺序不同YUV420p分为YV12和YU12,,YUV420sp分为NV12和NV21。 YUV420sp中uv分量是杂糅在一个plane中以uvuv或者vuvu的顺序存储在第二个plane中。

资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 在图像处理领域,色彩空间转换是一项基础且关键的任务,涉及多种常见颜色格式之间的相互转换,如GRAY8、YUV420P、YUV422P、YUV444P、YUYV422RGB24。以下是这些格式的详细介绍以及它们之间的转换方法。 GRAY8(灰度图像) GRAY8是一种仅包含亮度信息的图像格式,没有色度信息。每个像素由一个8位灰度值表示,范围为0到255,其中0代表黑色,255代表白色。 YUV色度空间) YUV是一种将图像分解为亮度(Y)两个色差分量(UV)的颜色模型,有多种子格式: YUV420P:也称为I420或YV12,是最常见的YUV格式。它采用4:2:0采样率,即每4个Y像素对应1个U1个V分量,这种采样方式减少了存储带宽需求。 YUV422P:采用4:2:2采样率,每行中的每个Y像素对应1个U1个V分量,但隔行采样YUV444P:每个Y像素都有对应的UV分量,没有采样率降低,提供完整的色彩信息。 YUYV422YUV交错格式) 这种格式也称为YCbCr 4:2:2,每个像素由4个字节组成,顺序为Y、Cb、Y、Cr。与YUV422P类似,但数据是交错存放的。 RGB24(红绿蓝三原色格式) RGB24是一种典型的彩色图像格式,每个像素由三个8位的红、绿、蓝分量组成,总共24位。 色彩空间转换通常借助图像处理库或工具完成,例如OpenCV、ImageMagick或FFmpeg。FFmpeg是一个强大的多媒体处理框架,其swscale库专门用于色彩空间转换。例如,“simplest_ffmpeg_swscale_1.1.1”可能是一个示例代码或工具,用于演示如何利用FFmpeg进行颜色空间转换。 转换过程包括读取源图像、解析其格式,然后应用适当的算法将像素从一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值