zoukankan      html  css  js  c++  java
  • YUV采样及存储格式

      YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

      与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。

      一、采集

      YUV主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。下面用三个图来直观地表示采集的方式,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。

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

      二、存储

      YUV格式有两大类:planar和packed。
      对于planar的YUV格式,先连续存储所有像素点的Y,随后存储U、V。存储类型表示为采样方式后缀加P。
      对于packed的YUV格式,每个像素点的Y,U,V是连续交错存储的。存储类型表示为采样方式后缀加SP。

      下面以几种存储方式来解释:

      存储格式:内存布局=>所属存储类型=>planes

      

      IYUV: YYYYYYYY UU VV    =>YUV420P  =>3 planes
      YV12: YYYYYYYY VV UU    =>YUV420P  =>3 planes
      NV12: YYYYYYYY UVUV    =>YUV420P  =>2 planes
      NV21: YYYYYYYY VUVU    =>YUV420P  =>2 planes
      YUY2: Y0U0Y1V0Y2U1Y3V1  =>YUV422SP  =>1 planes
      UYVY: U0Y0V0Y1U1Y2V1Y3  =>YUV422SP  =>1 planes
      YVYU: Y0V0Y1U0Y2V1Y3U1  =>YUV422SP  =>1 planes

      

  • 相关阅读:
    min-max 容斥
    集训作业
    UOJ Test Round 3
    uoj Goodbye Dingyou
    Codeforces Round #516 (Div. 1) 题解
    Codeforces Round #517(Div. 1) 题解
    概率论(Ⅱ)
    Berlekamp-Massey算法学习笔记
    多项式取模优化线性递推总结
    [ZJOI2019]线段树
  • 原文地址:https://www.cnblogs.com/budapeng/p/5492020.html
Copyright © 2011-2022 走看看