1.YUV的简介

YUV,是一种颜色编码方法,说白了其实跟RGB类似,也是表示颜色的一种形式,常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。“Y”表示明亮度(Luminance或Luma),也就是灰值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

YUV经常在做图像处理算法的时候会用到,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。

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

2.YUV的存储格式

为节省带宽起见,大多数YUV格式平均使用的每像素位数都少于24位。主要的抽样(subsample)格式有YCbCr4:2:0、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4:4。YUV的表示法称为A:B:C表示法:

  • 4:4:4表示完全取样。每一个Y对应一组UV分量,图像和rgb占用的字小大小一致,均为pixelsize*3。

  • 4:2:2表示2:1的水平取样,垂直完全采样。每两个Y共用一组UV分量,占用的大小为pixelsize+pixelsize/2+pixelsize/2。

  • 4:2:0表示2:1的水平取样,垂直2:1采样。每四个Y共用一组UV分量,占用大小为pixelsize+pixelsize/4+pixelsize/4。

  • 4:1:1表示4:1的水平取样,垂直完全采样。每四个Y共用一组UV分量,占用大小为pixelsize+pixelsize/4+pixelsize/4。

用三个图来直观地表示采集的方式吧,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。

【图像处理基础】YUV的解析

可以看到,YUV格式图像信息可以比RGB格式占用的字节码更少,所以可以用yYUV来传输色彩数据,接收到的YUV数据后再转换为RGB来显示图像,从而减少了传输图像占用的带宽。

3.YUV的格式

YUV衍生出了很多格式,主要是由于其存储方式决定的。

YUV按照存储方式可以分成两个大类:

  • packed:打包格式是将yuv分量混合存在同一个数组中
  • planar:平面格式是将yuv三个分量存成三个数组或者两个数组分别存储

packed存储的YUV的存储先后不同,细分为了YUV、YVU、YVYU、UYVY等等。

planar存储的YUV依据数组数量分成了YUV分别三个数组表示的完全平面的,以及Y一个数组而UV一个数组的半平面(Semi planar)的两类,而半平面的又可以细分为UV和VU两个存储顺序。

常见的YUV格式列表如下:

I420: YYYYYYYY UU VV =>YUV420P
YV12: YYYYYYYY VV UU =>YUV420P
NV12: YYYYYYYY UVUV =>YUV420SP
NV21: YYYYYYYY VUVU =>YUV420SP //安卓Camera默认格式

4.YUV、RGB的转换

链接跳转

相关文章:

  • 2022-12-23
  • 2021-09-14
  • 2021-05-12
  • 2021-04-18
  • 2021-12-29
  • 2022-02-07
猜你喜欢
  • 2021-07-11
  • 2021-11-28
  • 2021-09-02
  • 2021-12-03
相关资源
相似解决方案