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

  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/6943530.html
Copyright © 2011-2022 走看看