美文网首页
YUV与RGB颜色编码

YUV与RGB颜色编码

作者: 吕建雄 | 来源:发表于2021-01-12 13:27 被阅读0次

    YUV颜色编码

    YUV颜色编码采用的是明亮度和色度来指定像素的颜色

    其中Y表示明亮度(Luminance、Luma),U、V表示色度(Chrominance、Chroma)

    而色度又定义了颜色的两个方面:色调和饱和度

    使用YUV表示颜色编码表示一副图像,它应该是下面这个样子:

    YUV表示图像

    每个像素点包含Y、U、V分量;但是它的Y和U、V分量是可以分离的,如果没有UV分量一样可以显示图片,只不过是黑白的;对于YUV图像来说,并不是每个像素点都需要包含Y、U、V三个分量,根据不同的采样格式,可以每个Y分量都对应自己的UV分量,也可以几个Y分量共享一个UV分量

    RGB颜色编码

    RGB三个字母分别表示Red,Green,Blue,这三种颜色称为三原色,将它们以不同的比例组合,可以得出不同的颜色;使用RGB编码的颜色,每个像素点都由RGB三种分量来组成,每个分量占8个字节,比如:在一张100*100大小的图片,就代表有100*100个像素点,每个像素点的颜色都采用RGB颜色编码方式,那么占用的内存大小为:

    100*100*3/1024/1024 = 0.0286M

    使用RGB颜色编码表示的一副图片,它应该是下面这个样子:

    RGB颜色格式

    RGB到YUV的转换

    对于图像显示器来说,它是通过RGB模型来显示图像的,而在传输图像数据时候又是使用的YUV模型来传输的,这是因为YUV模型可以节省带宽,因此就需要在采集图像时将RGB转换为YUV,在显示图像时将YUV转换为RGB

    RGB到YUV转换就是将所有的R、G、B分量转换为Y、U、V分量

    转换公式如下:

    Y = R*0.299+G*0.587+B*0.114

    U= R*-0.147-G*0.298+B*0.436

    B= R*0.615-G*0.515-B*0.100

    R=Y+1.14*V

    G=Y-0.39*U-0.58*V

    B=Y+2.03*U

    YUV采样格式

    YUV 4:4:4采样

    采用YUV 4:4:4采样意味着Y、U、V三个分量的采样比例相同,因此在生成的图像里,每个像素的三个分量信息完整,都是8bit,也就是一个字节

    举例子:

    假如图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

    最后映射出的像素点依旧为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

    可以看到这种采样方式的图像和RGB颜色模型的图像大小是一样的,没有达到节省带宽的目的,将RGB图像转换为YUV图像时,也是先转换为 YUV 4:4:4采样的图像

    YUV 4:2:2采样

    采用YUV 4:2:2采样意味着UV分量是Y分量采样的一半,Y分量和UV分量安装2:1的比例采样;如果水平方向有10个像素点,那么采样了10个Y分量,而只采样5个UV分量

    假如图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

    那么采样的码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3,其中每采样过一个像素点,都会采样其Y分量,而U、V分量就会间隔一个采集。

    最后映射出的像素点是:[Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

    可以看到,第一和第⼆像素点公⽤了 U0、V1 分量,第三 和第四个像素点公用了 U2、V3 分量,这样就节省了图像空间

    YUV 4:2:0采样

    YUV 4:2:0 采样,并不是指只采样 U 分量⽽不采样 V 分量。⽽是 指,在每一行扫描时,只扫描一种⾊度分量(U 或者 V),和 Y 分量 按照 2 : 1 的⽅式采样。比如,第⼀行扫描时,YU 按照 2 : 1 的⽅式 采样,那么第⼆行扫描时,YV 分量量按照 2:1 的方式采样。对于每个 ⾊度分量来说,它的⽔平⽅向和竖直方向的采样和 Y 分量相⽐都是 2:1 

    假如图像像素为:

    [Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]

     [Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]

    那么采样的码流为:Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8

    其中每采样一个像素点,都会采样其Y分量,而U、V分量就会间隔一行按照2:1进行采样

    最后映射出的像素点为:

    [Y0 U0 V5]、[Y1 U0 V5]、 [Y2 U2 V7]、 [Y3 U2 V7]

     [Y5 U0 V5]、[Y6 U0 V5]、 [Y7 U2 V7] 、[Y8 U2 V7]

    从映射出的像素点中可以看到,四个 Y 分量是共⽤了⼀套 UV 分量, 而且是按照 2*2 的⼩方格的形式分布的,相比 YUV 4:2:2 采样中两个 Y 分量共⽤一套 UV 分量,这样更能够节省空间

    相关文章

      网友评论

          本文标题:YUV与RGB颜色编码

          本文链接:https://www.haomeiwen.com/subject/wfjsaktx.html