欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

YUV 学习记录 - II.分类

最编程 2024-04-07 19:56:15
...

首先我们看一张图片:
在这里插入图片描述可以就看出,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;