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

  • 相关阅读:
    new in swift
    Mac Git [remote rejected] master -> master (pre-receive hook declined) 解决方案
    Mac git 代码的Add 以及提交
    swift storyboard 跳转的2 种方式
    iOS 常用指令(svn cocoa pod)
    java面试题(晨星)
    谈Spring的理解
    软件产品开发文档大纲
    商城项目要点
    金蝶面试小记
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/6943530.html
Copyright © 2011-2022 走看看