2.7.1.1. 封裝的YUV格式¶
與封裝的RGB格式類似,封裝的YUV格式在記憶體中連續儲存Y、Cb和Cr分量。它們可能會對色度分量應用子取樣,因此在如何交錯這三個分量上有所不同。
注意
在以下所有表格中,位7是位元組中的最高有效位。
“Y”、“Cb”和“Cr”分別表示亮度、藍色色度(也稱為“U”)和紅色色度(也稱為“V”)分量的位。“A”表示alpha分量的位(如果格式支援),“X”表示填充位。
2.7.1.1.1. 4:4:4 子取樣¶
這些格式不對色度分量進行子取樣,並將每個畫素儲存為Y、Cb和Cr值的完整三元組。
下表列出了每分量少於8位的封裝YUV 4:4:4格式。它們的命名基於在16位字中Y、Cb和Cr分量的順序,該字隨後以小端位元組序儲存在記憶體中,並基於每個分量的位數。例如,YUV565格式將一個畫素儲存在一個16位字[15:0]中,佈局為[Y’4-0 Cb5-0 Cr4-0],並在記憶體中以兩個位元組儲存,即[Cb2-0 Cr4-0]後跟[Y’4-0 Cb5-3]。
識別符號 |
程式碼 |
記憶體中的位元組 0 |
位元組 1 |
||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
|
‘Y444’ |
Cb3 |
Cb2 |
Cb1 |
Cb0 |
Cr3 |
Cr2 |
Cr1 |
Cr0 |
a3 |
a2 |
a1 |
a0 |
Y’3 |
Y’2 |
Y’1 |
Y’0 |
|
‘YUVO’ |
Cb2 |
Cb1 |
Cb0 |
Cr4 |
Cr3 |
Cr2 |
Cr1 |
Cr0 |
a |
Y’4 |
Y’3 |
Y’2 |
Y’1 |
Y’0 |
Cb4 |
Cb3 |
|
‘YUVP’ |
Cb2 |
Cb1 |
Cb0 |
Cr4 |
Cr3 |
Cr2 |
Cr1 |
Cr0 |
Y’4 |
Y’3 |
Y’2 |
Y’1 |
Y’0 |
Cb5 |
Cb4 |
Cb3 |
下表列出了每分量8位的封裝YUV 4:4:4格式。它們的命名基於Y、Cb和Cr分量在記憶體中的儲存順序,以及每個畫素的總位數。例如,VUYX32格式將一個畫素儲存在第一個位元組中的Cr7-0,第二個位元組中的Cb7-0和第三個位元組中的Y’7-0。
識別符號 |
程式碼 |
位元組 0 |
位元組 1 |
位元組 2 |
位元組 3 |
|---|---|---|---|---|---|
|
‘YUV4’ |
A7-0 |
Y’7-0 |
Cb7-0 |
Cr7-0 |
|
‘AYUV’ |
A7-0 |
Y’7-0 |
Cb7-0 |
Cr7-0 |
|
‘XYUV’ |
X7-0 |
Y’7-0 |
Cb7-0 |
Cr7-0 |
|
‘VUYA’ |
Cr7-0 |
Cb7-0 |
Y’7-0 |
A7-0 |
|
‘VUYX’ |
Cr7-0 |
Cb7-0 |
Y’7-0 |
X7-0 |
|
‘YUVA’ |
Y’7-0 |
Cb7-0 |
Cr7-0 |
A7-0 |
|
‘YUVX’ |
Y’7-0 |
Cb7-0 |
Cr7-0 |
X7-0 |
|
‘YUV3’ |
Y’7-0 |
Cb7-0 |
Cr7-0 |
- |
注意
alpha分量預計包含一個有意義的值,可供驅動程式和應用程式使用。
填充位包含未定義的值,所有應用程式和驅動程式都必須忽略它們。
下表列出了每分量12位的封裝YUV 4:4:4格式。將每分量的位擴充套件到16位,資料在高位,低位為零,以小端位元組序排列,每個畫素儲存在6個位元組中。
識別符號 |
程式碼 |
位元組 1-0 |
位元組 3-2 |
位元組 5-4 |
位元組 7-6 |
位元組 9-8 |
位元組 11-10 |
|---|---|---|---|---|---|---|---|
|
‘Y312’ |
Y’0 |
Cb0 |
Cr0 |
Y’1 |
Cb1 |
Cr1 |
2.7.1.1.2. 4:2:2 子取樣¶
這些格式,通常稱為YUYV或YUY2,將色度分量水平方向上進行2倍子取樣,在容器中儲存2個畫素。對於8位格式,容器是32位;對於10位或更高位格式,容器是64位。
每分量超過8位的封裝YUYV格式以四個16位小端序字儲存。每個字的最高有效位包含一個分量,最低有效位為零填充。
識別符號 |
程式碼 |
位元組 0 |
位元組 1 |
位元組 2 |
位元組 3 |
位元組 4 |
位元組 5 |
位元組 6 |
位元組 7 |
|---|---|---|---|---|---|---|---|---|---|
|
‘UYVY’ |
Cb0 |
Y’0 |
Cr0 |
Y’1 |
Cb2 |
Y’2 |
Cr2 |
Y’3 |
|
‘VYUY’ |
Cr0 |
Y’0 |
Cb0 |
Y’1 |
Cr2 |
Y’2 |
Cb2 |
Y’3 |
|
‘YUYV’ |
Y’0 |
Cb0 |
Y’1 |
Cr0 |
Y’2 |
Cb2 |
Y’3 |
Cr2 |
|
‘YVYU’ |
Y’0 |
Cr0 |
Y’1 |
Cb0 |
Y’2 |
Cr2 |
Y’3 |
Cb2 |
識別符號 |
程式碼 |
字 0 |
字 1 |
字 2 |
字 3 |
|---|---|---|---|---|---|
|
‘Y210’ |
Y’0 (bits 15-6) |
Cb0 (bits 15-6) |
Y’1 (bits 15-6) |
Cr0 (bits 15-6) |
|
‘Y212’ |
Y’0 (bits 15-4) |
Cb0 (bits 15-4) |
Y’1 (bits 15-4) |
Cr0 (bits 15-4) |
|
‘Y216’ |
Y’0 (bits 15-0) |
Cb0 (bits 15-0) |
Y’1 (bits 15-0) |
Cr0 (bits 15-0) |
顏色樣本位置:色度樣本在水平方向上間隔定位。
2.7.1.1.3. 4:1:1 子取樣¶
此格式將色度分量水平方向上進行4倍子取樣,在12個位元組中儲存8個畫素。
識別符號 |
程式碼 |
位元組 0 |
位元組 1 |
位元組 2 |
位元組 3 |
位元組 4 |
位元組 5 |
位元組 6 |
位元組 7 |
位元組 8 |
位元組 9 |
位元組 10 |
位元組 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
‘Y41P’ |
Cb0 |
Y’0 |
Cr0 |
Y’1 |
Cb4 |
Y’2 |
Cr4 |
Y’3 |
Y’4 |
Y’5 |
Y’6 |
Y’7 |
注意
不要將V4L2_PIX_FMT_Y41P與V4L2_PIX_FMT_YUV411P混淆。Y41P來源於“YUV 4:1:1 packed (封裝)”,而YUV411P代表“YUV 4:1:1 planar (平面)”。
顏色樣本位置:色度樣本在水平方向上間隔定位。