zoukankan      html  css  js  c++  java
  • 音视频编解码: YUV存储格式中的YUV420P,YUV420SP,NV12, NV21理解(转)

    概述 

    之前介绍了YUV码流的采样格式,下面分析下YUV码流的存储格式,YUV码流的存储格式与采样格式息息相关。总的来讲,YUV存储格式主要分为两种:

    • planar 平面格式
      • 指先连续存储所有像素点的 Y 分量,然后存储 U 分量,最后是 V 分量。
    • packed 打包模式
      • 指每个像素点的 Y、U、V 分量是连续交替存储的。

    根据采样方式和存储格式的不同,就有了多种 YUV 格式。这些格式主要是基于 YUV 4:2:2 和 YUV 4:2:0 采样。

    常见的基于 YUV 4:2:2 采样的格式如下表:

    常见的基于 YUV 4:2:0 采样的格式如下表:

    更多的 YUV 格式信息参考这里:YUV pixel formats

    基于YUV4:2:2采样的格式

    YUV 4:2:2 采样规定了 Y 和 UV 分量按照 2: 1 的比例采样,两个 Y 分量公用一组 UV 分量。

    【YUYV格式】 

    YUYV 格式是采用打包格式进行存储的,指每个像素点都采用 Y 分量,但是每隔一个像素采样它的 UV 分量,排列顺序如下:

    Y0 UO Y1 V0 Y2 U2 Y3 V2

    Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….

    【UYVY格式】

     UYVY 格式也是采用打包格式进行存储,它的顺序和 YUYV 相反,先采用 U 分量再采样 Y 分量,排列顺序如下:

    U0 Y0 V0 Y1 U2 Y2 V2 Y3

    Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….
    根据 UV 和 Y 的顺序还有其他格式,比如,YVYU 格式,VYUY 格式等等,原理大致一样了。

     

    【YUV422P格式】

     YUV 422P 格式,又叫做 I422,采用的是平面格式进行存储,先存储所有的 Y 分量,再存储所有的 U 分量,再存储所有的 V 分量。

    基于YUV 4:2:0采样的格式

    基于 YUV 4:2:0 采样的格式主要有 YUV 420P 和 YUV 420SP 两种类型,每个类型又对应其他具体格式。

    • YUV 420P 类型
      • YU12 格式
      • YV12 格式
    • YUV 420SP 类型
      • NV12 格式
      • NV21 格式

    YUV 420P 和 YUV 420SP 都是基于 Planar 平面格式 进行存储的,先存储所有的 Y 分量后, YUV420P 类型就会先存储所有的 U 分量或者 V 分量,而 YUV420SP 则是按照 UV 或者 VU 的交替顺序进行存储了,具体查看看下图:

    YUV420P 的格式:

    其在码流中的表现形式为:

    YUV420SP的格式:

    其在码流中的表现形式为:

    【YU12和YV12格式】

    YU12 和 YV12 格式都属于 YUV 420P 类型,即先存储 Y 分量,再存储 U、V 分量,区别在于:YU12 是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U 。YV 12 的存储格式如下图所示:

     

    YU 12 又称作 I420 格式,它的存储格式就是把 V 和 U 反过来了。

    【NV12和NV21格式】

    NV12 和 NV21 格式都属于 YUV420SP 类型。它也是先存储了 Y 分量,但接下来并不是再存储所有的 U 或者 V 分量,而是把 UV 分量交替连续存储。 

    需要注意的是,

    NV12是iOS中有的模式,它的存储顺序是先存Y分量,再YV进行交替存储。

    NV21是Android中有的模式,它的存储顺序是先存Y分量,再VU交替存储。

    参考链接:

    1. 一文读懂 YUV 的采样与格式

    2.YUV数据格式详解

  • 相关阅读:
    前端每周学习分享--第7期
    前端每周学习分享--第5期
    博客迁移声明
    使用Angular CLI创建Angular 2项目
    使用Gulp压缩CSS/JS
    [JS]继承方式总结
    [JS]算法总结
    圆梦之旅 – 日本(一)攻略篇
    新年畅想
    [CSS]三栏自适应布局
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/10696214.html
Copyright © 2011-2022 走看看