• 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

  • 相关阅读:
    Python的单元测试(二)
    Python的单元测试(一)
    未知道——广场式的真匿名交流网站(一)
    xpath提取多个标签下的text
    清空Github上某个文件的历史版本
    如何正确使用日志Log
    使用AWS亚马逊云搭建Gmail转发服务(三)
    玩转Windows服务系列——Windows服务小技巧
    玩转Windows服务系列——服务运行、停止流程浅析
    玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/6943530.html
Copyright © 2020-2023  润新知