RGB、YUV颜色采样与编码格式

一、RGB 的采样与编码格式

R、G、B分别代表red、green、blue,三原色。将他们按照不同比例叠加,可得到更多不同颜色。

在这里插入图片描述
每个像素点的颜色由R、G、B三原色表示。每一个颜色通道(原色)包含2^8= 256种不同的红/绿/蓝(八位二进制),占用8bit,也就是一字节,那么一个像素点也就占用了3字节。
图片大小计算:
一张 1280 * 720 大小的图片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存储空间。

二、YUV 的采样与编码格式

在这里插入图片描述
YUV(YCbCr )格式也包含三个分量:
Y——明亮度,也成灰阶,没有UV分量也可成像,图像是黑白的(基础信号)
UV——色度:色彩+色彩饱和度(正交调制信号)

每个 Y 分量可以都有自己对应的 UV 分量,也可以几个 Y 分量共用 UV 分量,这就是为何会有YUV4:4:4、YUV4:2:2、YUV4:2:0采样格式出现,用于减小图像包含的数据量大小,便于传输和存储。

采样原理

YUV4:4:4
YUV三个信道的信号全采样,每个像素的三个分量信息完整(每个分量一般用8bit),因此每个像素经量化后,未经压缩,占用3字节。

假设四个像素为:
[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的码流为:
Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3

YUV4:2:2

亮度Y分量保持不变;对UV分量进行采样,数据量减小一半

假设四个像素为:
[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样码流为:
[Y0 U0 ] [Y1 V1] [Y2 U2 ] [Y3 V3]
存放的码流为:
[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3 ] [Y3 U2 V3]

隔行扫描,行1出U分量,那么下一行行2则出V分量(即UV分量按照1:1的比例进行采样),最终相邻两个Y分量共用一组UV分量。

YUV4:2:0

亮度Y分量保持不变;对UV分量进行采样,数据量只有1/4

假设八个像素为:
[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 ]
存放的码流为:
[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]
[Y5 U0 V5] [Y6 U0 V5] [Y7 U2 V7] [Y8 U2 V7]

隔行扫描,且UV分量按照2:1的比例进行采样,第一个像素保留一半U/(V)数据,相邻第二个像素U和V分量全舍弃,第三个像素采集第二次U/(V)数据,第四个像素U和V分量全舍弃,第五个像素采集第一次V/(U),最终相邻四个Y分量共用一组UV分量,而且是按照 2*2 的小方格的形式分布。

如图:
在这里插入图片描述
黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。
YUV 4:4:4采样,每一个Y对应一组UV分量。
YUV 4:2:2采样,每两个Y共用一组UV分量。
YUV 4:2:0采样,每四个Y共用一组UV分量,如图中的红色部分。

图像大小计算

假设一幅图像,像素大小为1280*720

YUV 4:4:4采样,12807203/1024/1024 ≈2.64M
YUV 4:2:2采样,(128072081+12807200.52)/8/1024/1024 ≈1.76M
YUV 4:2:0采样,(128072081+12807200.252)/8/1024/1024 ≈1.32M

YUV存储格式

planar(平面)格式
对于planar格式,先连续存储所有像素点的Y分量,紧接着存储所有像素点的U分量,最后是所有像素点的V分量。
packed(打包)格式
对于packed格式,每个像素点的 Y、U、V 分量是连续交叉存储的。

常见的基于 YUV 4:2:2 采样的格式如下表:
在这里插入图片描述
常见的基于 YUV 4:2:0 采样的格式如下表:
在这里插入图片描述

YUV420P下 YU12和YV12两种格式

YUV420P中的Y、U、V分量都是平面格式,如下图所示:
在这里插入图片描述
YUV420P又分为YU12YV12 两种格式
YU12格式和YV12格式的不同处在U平面和V平面的位置不同。

YU12格式中,U平面紧跟在Y平面之后,然后才是V平面(即:YUV);
YV12则是相反(即:YVU)。

YU12: YYYYYYYY UU VV =>YUV420P
YV12: YYYYYYYY VV UU =>YUV420P

YUV420SP下 NV12 和 NV21两种格式

YUV420SP中的Y分量为平面格式,UV分量为打包格式,即 U 和 V 分量交错排列。如下图所示:

YUV420SP也分为两种格式 NV12 和 NV21,这两种格式的不同在于UV交错排列的顺序不同。

NV12: YYYYYYYY UVUV =>YUV420SP
NV21: YYYYYYYY VUVU =>YUV420SP

RGB和YUV格式相互转换

图像显示器——通过RGB模型显示图像
传输图像数据——通过YUV模型传输 (YUV 模型可以节省带宽)
因此:
在这里插入图片描述
转换公式为:
在这里插入图片描述
YUV图像基本处理(含代码)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值