zoukankan      html  css  js  c++  java
  • YUV摘要格式

    始终保持视频数据YUV联系,因为基于其产品的组织不同的公司格不同的类型定义,派生出多种不同YUV格公式。
    大体,YUV从在点的形式的像素组织中,有两个:1.planer状态。2.packet状态。
    planar模式示例: Y0Y1....Yn  U0U1...Um  V0V1..Vm,YUV三个通道分别连续存储;
    packet模式举例: Y0U0V0 + Y1U1V1 + ... + YnUnVn,YUV三个通道混合存储。


    planar模式有利于编解码的输入输出;packet模式有利于视频数据採集输入与显示输出。

    因为人眼对于色度不敏感,因此能够减少色度採样。这样能够减少处理数据量。也减少存储空间。
    依据UV採样的不同,YUV格式又能够分为400。420,422,444等格式。


    400 灰度数据,没有色度数据;
    420 色度在水平和垂直两个方向上,採样率都减半。这样每相邻的4个Y公用一个U,V数据。U,V的数据量都为Y的1/4. (420这个名字起的很不好,令人产生误解,可是约定俗成就这个延续下来了。


    422 色度在水平方向上採样率减半。这样每行相邻的2个Y公用一个U,V数据,U,V的数据量都为Y的1/2.
    444 色度採样率和亮度一样。每一个Y都有各自的U,V数据,U,V的数据量都和Y同样。
    还有种411格式。不经常使用,就不关注了。
    一般称400用8bit来表征一个像素点。420是12比特,422是16比特,444是24比特。

    用总的数据量/像素个数 就是这个比特数。比如420格式 总数据量是(w*h + w*h/4 + w*h/4)*8比特 = 12*w*h比特。

                                                                 YUV经常使用格式

      格式 Mode 通道 比特 演示样例
      GRAY Planar 1 8 400. Y0Y1...Y15
      I420 Planar 3 12 420. Y0Y1..Y15  U0U1U2U3 V0V1V2V3   * 经常使用 理解为YU12
      IYUV Planar 3 12 同I420
      YUV420P Planar 3 12 同I420
      YUVJ420P Planar 3 12 同I420,不同的是色彩转换公式,YUVJ使用  JPEG 公式, 输出数据范围[0..255], I420的范围是 [16-240]
      YV12 Planar 3 12 420. Y0Y1..Y15  V0V1V2V3 U0U1U2U3   * 经常使用 非常多编解码器都用这个格式输入输出
      YVU420P Planar 3 12 同YV12
      NV12 Planar 2 12 420. Y0Y1..Y15  U0V0U1V1.....U3V3 *经常使用
      NV21 Planar 2 12 420. Y0Y1..Y15  V0U0V1U1.....V3U3
      YV16 Planar 3 16 422. Y0Y1..Y15  V0V1..V7 U0U1..U7
      YUV422P Planar 3 16 同YV16
      I422 Planar 3 16 同YV16
      UYVY Packed 1 16 422. U0Y0V0Y1|U1Y2V1Y3|...
      Y422 Packed 1 16 同UYVY
      YUY2 Packed 1 16 422. Y0U0Y1V0|Y2U1Y3V1|...  *非常多摄像机的输出格式
      YUV422 Packed 1 16 同YUY2
      YUYV Packed 1 16 同YUY2
      YVYU Packed 1 16 422. Y0V0Y1U0|Y2V1Y3U1|...
      YU16 Planar 3 16 422. Y0Y1..Y15 U0U1..U7 V0V1..V7
      NV16 Planar 2 16 422. Y0Y1..Y15  U0V0U1V1..U7V7
      YV24 Planar 3 24 444. Y0Y1..Y15  V0V1..V15 U0U1..U15
      I444 Planar 3 24 同YV24
      IYU2 Packed 1 24 444. U0Y0V0|U1Y1V1|...


    參考:
    http://www.fourcc.org/yuv.php
    http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    14.Java基础_函数/函数重载/参数传递
    98. 验证二叉搜索树(深搜)
    13.Java基础_数组内存图
    12Java基础_数组定义格式/动态初始化/静态初始化
    计算几何基础
    11.Java基础_IDEA常用快捷键
    Add Two Numbers
    Two Sum
    登录界面id属性的使用
    系统查看
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4908672.html
Copyright © 2011-2022 走看看