YUV学习记录

一、介绍

YUV是一种表示颜色的模型,也可以叫做采样率。
YUV又可以叫为Y Cb Cr ,其中Y是指亮度分量,Cb (U)指蓝色色度分量,而Cr(V)指红色色度分量。

二、分类

首先我们看一张图片:
在这里插入图片描述可以就看出,YUV分为 YUV420、YUV422、YUV444三大类
为什么分为这三类呢,是因为我们的眼睛对Y的敏感度远超U和V,这三中类型就是针对不同的人眼特性。

2.1YUV的占比

  1. YUV 420,由 4 个 Y 分量共用一套 UV 分量;
  2. YUV 422,由 2 个 Y 分量共用一套 UV 分量;
  3. YUV 444,不共用,一个 Y 分量使用一套 UV 分量;

2.2YUV排布方式
根据YUV三种分量在内存中的排布方式不一样,我们可以将YUV的三种类别再次进行细分;

  1. Planar (平面类格式):YUV 三个分量分开存放;
  2. Semi-Planar(半平面类格式) :Y 分量单独存放,UV 分量交错存放;
  3. Packed (打包类格式):YUV 三个分量全部交错存放;

2.3格式详解
(1)YUV420中的 I420(Planar)
依次序存放:先存放所有Y再存所有U最后存放所有V。

    Y1 Y2 Y Y Y Y
    Y3 Y4 Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    U1 U  U
    U  U  U
    U  U  U
    V1 V  V
    V  V  V
    V  V  V

其中Y1 Y2 Y3 Y4 共用 U1 V1;

(2)YUV420中的NV12(Planar)
依次序存放:先存放所有Y再存所有V最后存放所有U。


 	Y1 Y2 Y Y Y Y
    Y3 Y4 Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    V1 V  V
    V  V  V
    V  V  V
    U1 U  U
    U  U  U
    U  U  U

其中Y1 Y2 Y3 Y4 共用 V1 U1;

(3)YUV420中的NV12(Semi-Planar)
依次序存放:先存放所有Y,然后UV依次存放,从U开始。


Y1 Y2 Y  Y  Y  Y
Y3 Y4 Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
U1 V1 U  V  U  V
U  V  U  V  U  V
U  V  U  V  U  V

其中Y1 Y2 Y3 Y4 共用 V1 U1;

(4)YUV420中的NV21(Semi-Planar)
依次序存放:先存放所有Y,然后VU依次存放,从V开始。

 	Y1 Y2 Y  Y  Y  Y
    Y  Y  Y  Y  Y  Y
    Y  Y  Y  Y  Y  Y
    Y  Y  Y  Y  Y  Y
    Y  Y  Y  Y  Y  Y
    Y  Y  Y  Y  Y  Y
    V1 U1 V  U  V  U
    V  U  V  U  V  U
    V  U  V  U  V  U 

其中Y1 Y2 共用 V1 U1;

(5)YUV422中的I422(Planar)
依次序存放:先存放所有Y再存所有U最后存放所有V。

    Y1 Y2 Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    U1 U  U U U U
    U  U  U U U U 
    U  U  U U U U 
    V1 V  V V V V
    V  V  V V V V 
    V  V  V V V V

其中Y1 Y2 共用 V1 U1;

(6)YUV422中的YV16(Planar)
依次序存放:先存放所有Y再存所有V最后存放所有U。

    Y1 Y2 Y Y Y Y
    Y3 Y4 Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    Y  Y  Y Y Y Y
    V1 V  V V V V
    V  V  V V V V 
    V  V  V V V V
    U1 U  U U U U
    U  U  U U U U 
    U  U  U U U U 

其中Y1 Y2 共用 V1 U1;

(7) YUV422中的 NV16 (Semi-Planar)
依次序存放:先存放所有Y再依次存放UV,从U开始。

Y1 Y2 Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
Y  Y  Y  Y  Y  Y
U1 V1 U  V  U  V
U  V  U  V  U  V
U  V  U  V  U  V
U1 V1 U  V  U  V
U  V  U  V  U  V
U  V  U  V  U  V

其中Y1 Y2 共用 V1 U1;

(8)YUV 422中的VYUY (Packed)
按照VYUY 格式依次排序

V1 Y1 U1 Y2   V Y U Y   V Y U Y
V  Y  U  Y    V Y U Y   V Y U Y
V  Y  U  Y    V Y U Y   V Y U Y
V  Y  U  Y    V Y U Y   V Y U Y
V  Y  U  Y    V Y U Y   V Y U Y
V  Y  U  Y    V Y U Y   V Y U Y

Y1 Y2 共用 V1 U1 ;

(9)YUV 422中的YUVY (Packed)
按照YUVY 格式依次排序

Y1 U1 V1 Y2   Y U V Y   Y U V Y
Y  U  V  Y   Y U V Y   Y U V Y
Y  U  V  Y   Y U V Y   Y U V Y
Y  U  V  Y   Y U V Y   Y U V Y
Y  U  V  Y   Y U V Y   Y U V Y
Y  U  V  Y   Y U V Y   Y U V Y

Y1 Y2 共用 V1 U1 ;

(10)YUV 422中的UYVY (Packed)
按照UYVY依次排序。

U1 Y1 V1 Y2   U Y V Y   U Y V Y
U  Y  V  Y   U Y V Y   U Y V Y
U  Y  V  Y   U Y V Y   U Y V Y
U  Y  V  Y   U Y V Y   U Y V Y
U  Y  V  Y   U Y V Y   U Y V Y
U  Y  V  Y   U Y V Y   U Y V Y

Y1 Y2 共用 V1 U1 ;
(11)YUV 444中的 I444(Planar)
依次序存放:先存放所有Y再存所有U最后存放所有V。

Y1 Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U1 U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
V1 V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V

Y1 U1 V1组成一组YUV;

(12)YUV 444中的 YV42(Planar)
依次序存放:先存放所有Y再存所有U最后存放所有V。

Y1 Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V1 V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
U1 U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U

Y1 U1 V1组成一组YUV;

(13)YUV 444中的 NV24 (半Planar)
依次序存放:先存放所有Y然后UV依次存放,从U开始。

Y1 Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
U1 V1 U V U V U V U V U V 
U  V  U V U V U V U V U V 
U  V  U V U V U V U V U V 
U  V  U V U V U V U V U V 
U  V  U V U V U V U V U V 
U  V  U V U V U V U V U V 

Y1 U1 V1组成一组YUV;

(14)YUV 444中的 NV42 (半Planar)
依次序存放:先存放所有Y然后VU依次存放,从V开始。

Y1 Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
Y  Y  Y Y Y Y
V1 U1 V U V U V U V U V U
V  U  V U V U V U V U V U
V  U  V U V U V U V U V U
V  U  V U V U V U V U V U
V  U  V U V U V U V U V U
V  U  V U V U V U V U V U

Y1 U1 V1组成一组YUV;

(15)YUV444 中的 yuv444(packed)
YUV 依次排列;

Y1 U1 V1   Y U V   Y U V   Y U V   Y U V   Y U V
Y U V      Y U V   Y U V   Y U V   Y U V   Y U V
Y U V      Y U V   Y U V   Y U V   Y U V   Y U V
Y U V      Y U V   Y U V   Y U V   Y U V   Y U V
Y U V      Y U V   Y U V   Y U V   Y U V   Y U V
Y U V      Y U V   Y U V   Y U V   Y U V   Y U V

Y1 U1 V1组成一组YUV;

三、关于YUV内存大小的计算

可能我的理解力不强,在网上看的很多计算都是迷茫的,所以这里按照我自己的理解来,我不知道这种方式是否标准。如果有错误请评论留言,我立即改正
3.1 YUV420大小的计算
在这里插入图片描述
根据YUV的比例,我们分成6块,由于Y代表整个图片亮度,所以我们将Y占用的长和宽就设定为图片的长(w)和宽(h)。
那么U 占用的空间就是1/4Y;
V 也是1/4Y;
所以YUV占用的内存大小就是 wh(1+ 1/4+ 1/4) = wh3/2;

3.2YUV422内存大小计算

还是按照YUV420的分析
在这里插入图片描述
Y = wh;
U = 1/2 Y;
V = 1/2 Y;
所以YUV422占用的大小是就是 w
h*2

3.3YUV444内存大小计算
在这里插入图片描述Y = wh;
U = Y ;
V = Y;
所以YUV444占用内存大小是 w
h*3;

这种计算方式不知道对不对。请指正。
还要一个问题 YUV420的 Y:U:V = 4:1:1,为啥不叫411,而叫420.
emmm!
晚安各位。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永不秃头的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值