YUV视频码流介绍

视频颜色编码编码常用的有RGB,YUV等,RGB也就是我们常说的三原色,一个像素会采集三个向量,占用更大的带宽,常用于图形的渲染。而YUV编码,有更小的带宽,常用于网络视频的传输

YUV介绍

YUV采用亮度/色度等来描述一个像素。其中Y代表亮度,UV表示色度和浓度
Y’UV,YUV,YCbCr,YPbPr等都是YUV格式。区别在于, Y’UV,YUV,是以前使用时电视,用来描述模拟信号的,而YCbCr,YPbPr等是现在描述网络传输的数字信号的。

YUV与RGB转换

YUV的 U越大,颜色越蓝,V越大,颜色越红,RGB的转换有很多,列一个简单的转换。
Y = 0.299 R + 0.587 G + 0.114 B
U = - 0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128
反过来,RGB 也可以直接从YUV (256级别) 计算:
R = Y + 1.402 (Cr-128)
G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)
B = Y + 1.772 (Cb-128)

YUV采样方式

那么在存储时候,会将所以像素的YUV存储下来吗?YUV相比RGB格式节约带宽就是因为它采取一种抽样的方式,相邻像素只采集Y,而像素的UV在几个周围像素点中是公用的。
所以,在YUV采样时候,那些像素UV公用等,具体怎么采样。就出现了几种方式,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。采样方式用来描述一个宏像素,一个宏像素由4个像素组成
YUV4:4:4代表1个宏像素,Y采集4次,U采集4次,V采集4次。
YUV4:4:2代表1个宏像素,Y采集4次,U采集4次,V采集2次。
YUV4:4:0代表1个宏像素,Y采集4次,U采集4次,V采集0次。
其中v为0次不代表就不会采集V,而是和U相互援引,下次就变为YUV4:0:4再下次又变成YUV4:4:0
RGB采集时每个分量采用8bit存储,所以一个像素需要8*3=24bit
而如果采用YUV4:1:1格式,一个像素需要8bit+8/4+8/4=12bit,图像就压缩了一半。

YUV分类方式

YUV格式分为两大类:planar(平面格式)和packed(打包格式)
  对于planar的YUV格式,先连续存储所有像素点的Y,然后存储所有像素点的U,随后是所有像素点的V。如IF09,YVU9等格式。
  比如采用YUV4:4:4采集的平面格式,Y1Y2Y3Y4Y5…U1U2U3U4U5…V1V2V3V4V5
  对于packed的YUV格式,先存一个像素点的YUV再存下一个像素点的YUV。
YUV分类格式的不同,采集的格式也不同,在存储时候也会有所不同。如YUV2,Y211等
比如采用YUV4:4:4采集的打包格式,Y1U1V1Y2U2V2Y3U3V3…

YUV的存储方式

采用不同的分类格式和不同采集格式就有不同的存储方式

YUV4:4:4的打包格式

   //一个宏像素,两行两列四个像素
   [Y0U0V0] [Y1U1V1]
   [Y2U2V2] [Y3U3V3]
   //存储的码流
   Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 

YUV4:2:2的打包格式

   //一个宏像素,两行两列四个像素
   [Y0U0V0] [Y1U1V1]
   [Y2U2V2] [Y3U3V3]
   //存储的码流
   //U和V横向两个像素共用,所以横向一个像素采集U一个像素采集V
   Y0 U0 Y1 V1 Y2 U2 Y3 V3
   //还原时候的像素
   [Y0U0V1] [Y1U0V1]
   [Y2U2V3] [Y3U2V3]

YUV4:1:1的打包格式

   //一个宏像素,两行两列四个像素
   [Y0U0V0] [Y1U1V1]
   [Y2U2V2] [Y3U3V3]
   //存储的码流
   //U和V横列向四个像素共用,唯一的U由0来采集,唯一的V由2采集(列采集)
   Y0 U0 Y1 Y2 V2 Y3 
   //还原时候的像素
   [Y0U0V2] [Y1U0V2]
   [Y2U0V2] [Y3U0V2]

YUV4:2:0的打包格式

   //一个宏像素,两行两列四个像素
   [Y0U0V0] [Y1U1V1]  [Y4U4V4] [Y5U5V5]
   [Y2U2V2] [Y3U3V3]  [Y6U6V6] [Y7U7V7]
   //存储的码流
   //不表示V不采集而是代表Y与UV的比例为2:1。第一个宏像素采集U下一个就采集V
   //所以一个像素占8+4=12bit
   Y0 U0 Y1 Y2 U2 Y3   Y4 V4 Y5 Y6 V6 Y7
   //还原时候的像素
   [Y0U0V4] [Y1U0V4]   [Y4U0V4] [Y5U0V4]
   [Y2U2V6] [Y3U2V6]   [Y6U2V6] [Y7U2V6]

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工农村贴膜小哥

我倒是要看看是那个憨憨在给我打

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值