常见 YUV 格式
YUV 是指亮度和色度分开表示的像素格式,其中,Y 表示亮度(Luma),或者称为灰度值;UV 表示的则是色度(Chroma)。一般人们所讲的 YUV 大多是指 YCbCr,Cb 指蓝色色度分量,Cr 指红色色度分量。YCbCr 又有许多采样格式,例如 4 : 4 : 4 , 4 : 2 : 2 , 4 : 1 : 1 4:4:4, 4:2:2,4:1:1 4:4:4,4:2:2,4:1:1 以及最常见的 4 : 2 : 0 4:2:0 4:2:0 等。
YUV444
完全采样,每个像素都有独立的 Y,U,V 值,即一个像素用 24 比特表示(比特深度为 8 时)。
存储方式:
s
=
w
i
d
t
h
∗
h
e
i
g
h
t
Y
1
,
Y
2
,
Y
3
.
.
.
Y
s
,
U
1
,
U
2
,
U
3
.
.
.
U
s
,
V
1
,
V
2
,
V
3
.
.
.
V
s
.
s = width * height \\ Y_1,Y_2,Y_3...Y_s,U_1,U_2,U_3...U_s,V_1,V_2,V_3...V_s.
s=width∗heightY1,Y2,Y3...Ys,U1,U2,U3...Us,V1,V2,V3...Vs.
YUV420
水平方向做 1/2 下采样,竖直方向做 1/2 下采样,因此,每 4 个 Y 共用一对 U,V 值,即平均一个像素用 12 比特表示(比特深度为 8 时)。
存储方式:
s
=
w
i
d
t
h
∗
h
e
i
g
h
t
Y
1
,
Y
2
,
Y
3
.
.
.
Y
s
,
U
1
,
U
2
,
U
3
.
.
.
U
s
/
4
,
V
1
,
V
2
,
V
3
.
.
.
V
s
/
4
.
s = width * height \\ Y_1,Y_2,Y_3...Y_s,U_1,U_2,U_3...U_{s/4},V_1,V_2,V_3...V_{s/4}.
s=width∗heightY1,Y2,Y3...Ys,U1,U2,U3...Us/4,V1,V2,V3...Vs/4.
YUV422
只在水平方向做 1/2 下采样,因此,水平方向每 2 个 Y 共用一对 U,V 值,即平均一个像素用 16 比特表示(比特深度为 8 时)。
存储方式:
s
=
w
i
d
t
h
∗
h
e
i
g
h
t
Y
1
,
Y
2
,
Y
3
.
.
.
Y
s
,
U
1
,
U
2
,
U
3
.
.
.
U
s
/
2
,
V
1
,
V
2
,
V
3
.
.
.
V
s
/
2
.
s = width * height \\ Y_1,Y_2,Y_3...Y_s,U_1,U_2,U_3...U_{s/2},V_1,V_2,V_3...V_{s/2}.
s=width∗heightY1,Y2,Y3...Ys,U1,U2,U3...Us/2,V1,V2,V3...Vs/2.
YUV411
与 YUV420 类似,但是在水平方向做 1/4 下采样,因此,水平方向每 4 个 Y 共用一对 U,V 值,即平均一个像素用 12 比特表示(比特深度为 8 时)。
存储方式:
s
=
w
i
d
t
h
∗
h
e
i
g
h
t
Y
1
,
Y
2
,
Y
3
.
.
.
Y
s
,
U
1
,
U
2
,
U
3
.
.
.
U
s
/
4
,
V
1
,
V
2
,
V
3
.
.
.
V
s
/
4
.
s = width * height \\ Y_1,Y_2,Y_3...Y_s,U_1,U_2,U_3...U_{s/4},V_1,V_2,V_3...V_{s/4}.
s=width∗heightY1,Y2,Y3...Ys,U1,U2,U3...Us/4,V1,V2,V3...Vs/4.