zoukankan      html  css  js  c++  java
  • YUV的数据格式

    一、YUV格式分为两大类:planar(平面)和packed(打包)。planar格式,先连续存储所有像素点的Y分量,紧接着存储所有像素点的U,随后存储所有像素点的V。packed格式,每个像素点的Y、U、V分量是连续存储的。

    二、YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。用三个图来直观地表示采集的方式,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。如下:

    1、YUV 4:4:4采样,每一个Y对应一组UV分量。

    2、YUV 4:2:2采样,每两个Y共用一组UV分量。

    3、YUV 4:2:0采样,每四个Y共用一组UV分量。 

    三、YUV各种存储格式

    1、YUV420

    (1)IYUV(I420)

    IYUV(I420)是planar模式的YUV。

    假设YUVI420视频的长为L,宽为W,则一帧YUV数据长度为L*W*3/2字节,一帧YUV数据中内存起始指针为P,Y数据的起始指针为P,U数据的起始指针为P+L*W,V数据的起始指针为P+L*W*5/4。

    (2)YV12

    YV12类似于IYUV(I420),只是U和V的顺序相反。

    (3)NV12

    NV12是two-planar模式的YUV。

    (4)NV21

    NV21类型与NV12,只是U和V的顺序相反。

     2、YUV444

    假设YUVI420视频的长为L,宽为W,则一帧YUV数据长度为L*W*3字节,一帧YUV数据中内存起始指针为P,Y数据的起始指针为P,U数据的起始指针为P+L*W,V数据的起始指针为P+L*W*2。

    参考:

    http://www.fourcc.org/fourcc.php

    http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html

  • 相关阅读:
    mysql的sql性能分析器
    Maven(一)
    SVN使用(二)
    SVN使用(一)
    php smarty section使用
    php smarty foreach循环注意
    PHP unlink() 函数
    PHP file_exists() 函数
    PHP realpath() 函数
    PHP dirname() 函数
  • 原文地址:https://www.cnblogs.com/justkong/p/6589813.html
Copyright © 2011-2022 走看看