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

  • 相关阅读:
    【转】Java中super和this的几种用法与区别
    公寓上网新认证方式破解研究
    移动设计
    破解哈工程大学深澜认证路由器
    Arch Linux安装记录
    foreach新解
    工具大全(转载)
    Linux 入门
    设置为驼峰命名
    efcore Add-Migration 错误
  • 原文地址:https://www.cnblogs.com/justkong/p/6589813.html
Copyright © 2011-2022 走看看