图像基础知识之YUV

 1、YUV经常使用格式ide

  YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词均可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度与浓度(Chrominance、Chroma)spa

  YUV格式有两大类:packedplanar。注:planar还分平面存储平面打包格式。orm

  • 对于packed的YUV格式,每一个像素点的Y,U,V是连续交错存储的。
  • 对于planar的YUV格式,先连续存储全部像素点的Y,紧接着存储全部像素点的U,而后是全部像素点的V(平面存储格式),或者 紧接着UV交错存储(平面打包格式)。

  经常使用的CODEC格式-planar,如图:
blog

                                  YV12内存

   

     

                              NV12it

                               

    W即图像的宽度,H即图像的高度,Stride表示图像行的跨度,超出W部分为填充数据,主要目的是为了字节对齐,通常以16字节或者或者32字节对齐居多。io

    从左侧数据存储结构图看出高度(H)是分层次的,YV12三层和NV12两层,这个层次结构称为 Plane,即YV12在代码中用 Plane[0]表示Y数据的起始地址,Plane[1]表示V数据的起始地址,Plane[1]表示U数据的起始地址。
    而NV12的UV是在一个Plane中交错存放,所以用两个Plane表示便可。编译

    从右侧的数据排布图可见YV12和NV12都是YUV 4:2:0采样,每四个Y共用一组UV份量,已用颜色标明Y一、Y二、Y七、Y8共用U一、V1,而且在内存中连续排布。打包

 

2、YUV拓展知识方法

    YUV格式主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:二、YCbCr 4:1:1和 YCbCr 4:4:4。
  用三个图来直观地表示采集的方式,黑点表示采样该像素点的Y份量,以空心圆圈表示采样该像素点的UV份量:

   

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

 

(1) YUVY 格式 (属于YUV422)

  
  YUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr,分析,对于像素点Y'00、Y'01 而言,其Cb、Cr的值均为 Cb00、Cr00,其余的像素点的YUV取值依次类推。

 
(2) UYVY 格式 (属于YUV422)
 
  UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不一样的是UV的排列顺序不同而已,还原其每一个像素点的YUV值的方法与上面同样。
 
(3) YUV422P(属于YUV422)
 
  YUV422P也属于YUV422的一种,它是一种Plane模式,即平面模式,并非将YUV数据交错存储,而是先存放全部的Y份量,而后存储全部的U(Cb)份量,最后存储全部的V(Cr)份量,如上图所示。其每个像素点的YUV值提取方法也是遵循YUV422格式的最基本提取方法,即两个Y共用一个UV。好比,对于像素点Y'00、Y'01 而言,其Cb、Cr的值均为 Cb00、Cr00。
 
(4)YV12,YU12格式(属于YUV420)

YU12和YV12属于YUV420格式,也是一种Plane模式,将Y、U、V份量分别打包,依次存储。其每个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y份量共用一组UV。注意,上图中,Y'00、Y'0一、Y'十、Y'11共用Cr00、Cb00,其余依次类推。

(5)NV十二、NV21(属于YUV420)

NV12和NV21属于YUV420格式,是一种two-plane模式,即Y和UV分为两个Plane,可是UV(CbCr)为交错存储,而不是分为三个plane。其提取方式与上一种相似,即Y'00、Y'0一、Y'十、Y'11共用Cr00、Cb00

 

注:

YUV420P,Y,U,V三个份量都是平面格式,分为I420和YV12。I420格式和YV12格式的不一样处在U平面和V平面的位置不一样。在I420格式中,U平面紧跟在Y平面以后,而后才是V平面(即:YUV);但YV12则是相反(即:YVU)。
YUV420SP, Y份量平面格式,UV打包格式, 即NV12。 NV12与NV21相似,U 和 V 交错排列,不一样在于UV顺序。
I420: YYYYYYYY UU VV    =>YUV420P
YV12: YYYYYYYY VV UU    =>YUV420P
NV12: YYYYYYYY UVUV     =>YUV420SP
NV21: YYYYYYYY VUVU     =>YUV420SP

相关文章
相关标签/搜索