【编解码-003】YUV 像素格式存储原理

1 YUV overview

YUV实际上是所有“YUV”像素格式通用的色彩空间的名称。与RGB格式(红-绿-蓝)相反,YUV颜色由一个称为Y(相当于灰度)的“亮度”分量和两个分别称为U(蓝色投影)和V(红色投影)的“色度”分量表示,因此得名。

YUV也可以被称为YCbCr,尽管这两个术语的含义略有不同,[注1]它们往往会被混淆和互换使用(包括在与vvc相关的场所)。

类似于我们熟悉的RGB。YUV也是一种颜色编码方法,主要应用于电视系统和模拟视频领域,它将亮度信息(Y)和颜色信息(UV)分开,没有UV信息可以显示完整的图像,只有黑白,这种设计很好地克服了彩色电视和黑白兼容性的问题。

此外,YUV不需要像RGB一样同时传输三个独立的视频信号,因此它在YUV模式下使用的带宽非常小。

2 formats

There are two main types of YUV format: planar and packed.

对于平面的 YUV 格式。所有像素点的 y 都是连续存储的。紧接着存储所有像素点的 u。接下来是 v 的全像素点,

对于 YUV 包装格式 ,每个像素点的 y、u、v 都是连续的交叉存储。

2.1 Planar formats

平面(或者有时是“三平面”)格式对3种颜色成分中的每一种使用单独的矩阵。换句话说,有一个亮度像素值表和两个单独的色度分量表。这种像素在内存中的分离表示更便于视频编码。

YUV 4:2:0 (I420/J420/YV12)

I420

首先是亮度平面Y,然后是U色度平面,最后是V色度平面。
两个色度平面(蓝色和红色投影)在水平和垂直维度上都以2的系数进行子采样。也就是说,对于一个2×2正方形的像素,有4个Y样本,但只有1个U样本和1个V样本。
这种格式需要4×8+8+8=48位每4像素,所以它的深度是每像素12位。

**note:**每个字母代表一个比特。
—单个I420像素:YYYYYYYY UU VV

  • 50像素I420帧:YYYYYYYY×50 UU×50 VV×50(或简称Y×8×50 U×2×50 V×2×50)
    —n像素I420帧:Y×8×n U×2×n V×2×n
J420

J420与I420完全相似,但具有全范围(“数字”,0-255)亮度(Y)分量,而不是有限范围(“模拟”,16-240)。色度平面与I420完全相同。

YV12

YV12与I420完全相同,但U和V平面的顺序相反。在名称中,“YV”指的是平面顺序:Y,然后V(然后U)。“12”表示像素深度:与I420一样为每像素12位。

YUV 4:2:2 (I422/J422)

I422

和I420一样,I422有一个亮度平面Y和两个色度平面U, V。
然而,在I422中,色度平面(蓝色和红色投影)仅在水平维度上进行子采样,仍然是2倍。因此,在色度平面中有与在亮度平面中相同数量的线。
对于一组2×2像素,各有4个Y样本和2个U和2个V样本。深度是4×8+2×8+2×8=64位每4像素,所以16位每像素。
一些视频编解码器支持I422(可选),用于更高质量的视频编码。

J422

J422与I422完全相似,但具有全范围(“数字”,0-255)亮度(Y)分量,而不是有限范围(“模拟”,16-240)。色度平面与I422完全相同。

YUV 4:4:4

I444

与I420和I422一样,I444有一个亮度平面Y和2个色度平面U和v。色度平面不进行次采样:每个像素有3个八字节值。因此,深度是每像素24位(与RGB24或RGB32一样)。

2.2 Packed formats

在Packed formats中,你通常只有一个平面,所有的亮度和色度数据交错。这类似于RGB像素格式,只是使用不同的色彩空间。
Packed formats在网络摄像头中非常流行。在硬件中,使用单独的平面是低效的:每个像素需要多次内存访问。打包格式更简单,使用起来也更便宜。
另一方面,Packed formats通常不能处理垂直子采样。否则扫描线就会有不同的大小。所以一般来说,Packed formats是水平次采样的,特别是以2倍(即YUV 4:2:2)。

UYVY

被称为UYVY, Y422或UYNV。
在UYVY中,色度样本的子采样系数为2。
在UYVY中,2个像素的连续,从U开始,然后是第一个像素的一个亮度,然后是V,然后是第二个像素的另一个亮度,也就是 U1Y1V2Y2

YUY2

称为YUY2、YUYV、V422或YUNV。
在YUY2中,色度样本以2倍的倍数进行子采样。
在YUY2中,2个像素的连续,从第一个像素的一个亮度开始,然后是U,然后是第二个像素的另一个亮度,然后是V,也就是 Y1U1Y2V2
YUY2和UYVY之间的转换是通过成对交换字节来实现的。

YVYU

YVYU就像YUY2,只是U和V的顺序颠倒了。

2.3 Semi-planar

NV12

与I420相关,NV12有一个亮度平面Y和一个U和V值交错的平面。
在NV12中,色度平面(蓝色和红色)在水平和垂直维度上都以2倍的倍数进行抽样。
对于2×2组像素,您有4个Y样本和1个U和1个V样本。
将NV12想象成U和V平面交错的I420可能会有所帮助。
这是NV12的图形表示。每个字母代表一个位:
—对于1个NV12像素:YYYYYYYY UVUV
—对于2像素的NV12帧:YYYYYYYYYYYYYYYY UVUVUVUV
—50像素NV12帧:Y×8×50 (UV)×2×50
—n像素NV12帧:Y×8×n (UV)×2×n

NV21

NV21类似于NV12,但U和V的顺序相反:它以V开头。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值