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]。

封裝YUV 4:4:4影像格式(每分量少於8位)

識別符號

程式碼

記憶體中的位元組 0

位元組 1

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

V4L2_PIX_FMT_YUV444

‘Y444’

Cb3

Cb2

Cb1

Cb0

Cr3

Cr2

Cr1

Cr0

a3

a2

a1

a0

Y’3

Y’2

Y’1

Y’0

V4L2_PIX_FMT_YUV555

‘YUVO’

Cb2

Cb1

Cb0

Cr4

Cr3

Cr2

Cr1

Cr0

a

Y’4

Y’3

Y’2

Y’1

Y’0

Cb4

Cb3

V4L2_PIX_FMT_YUV565

‘YUVP’

Cb2

Cb1

Cb0

Cr4

Cr3

Cr2

Cr1

Cr0

Y’4

Y’3

Y’2

Y’1

Y’0

Cb5

Cb4

Cb3

注意

對於YUV444和YUV555格式,從驅動程式讀取時alpha位的值是未定義的,寫入驅動程式時會被忽略,除非已經為影片疊加影片輸出疊加協商了alpha混合。

下表列出了每分量8位的封裝YUV 4:4:4格式。它們的命名基於Y、Cb和Cr分量在記憶體中的儲存順序,以及每個畫素的總位數。例如,VUYX32格式將一個畫素儲存在第一個位元組中的Cr7-0,第二個位元組中的Cb7-0和第三個位元組中的Y’7-0

封裝YUV影像格式(8bpc)

識別符號

程式碼

位元組 0

位元組 1

位元組 2

位元組 3

V4L2_PIX_FMT_YUV32

‘YUV4’

A7-0

Y’7-0

Cb7-0

Cr7-0

V4L2_PIX_FMT_AYUV32

‘AYUV’

A7-0

Y’7-0

Cb7-0

Cr7-0

V4L2_PIX_FMT_XYUV32

‘XYUV’

X7-0

Y’7-0

Cb7-0

Cr7-0

V4L2_PIX_FMT_VUYA32

‘VUYA’

Cr7-0

Cb7-0

Y’7-0

A7-0

V4L2_PIX_FMT_VUYX32

‘VUYX’

Cr7-0

Cb7-0

Y’7-0

X7-0

V4L2_PIX_FMT_YUVA32

‘YUVA’

Y’7-0

Cb7-0

Cr7-0

A7-0

V4L2_PIX_FMT_YUVX32

‘YUVX’

Y’7-0

Cb7-0

Cr7-0

X7-0

V4L2_PIX_FMT_YUV24

‘YUV3’

Y’7-0

Cb7-0

Cr7-0

-

注意

  • alpha分量預計包含一個有意義的值,可供驅動程式和應用程式使用。

  • 填充位包含未定義的值,所有應用程式和驅動程式都必須忽略它們。

下表列出了每分量12位的封裝YUV 4:4:4格式。將每分量的位擴充套件到16位,資料在高位,低位為零,以小端位元組序排列,每個畫素儲存在6個位元組中。

封裝YUV 4:4:4影像格式(12bpc)

識別符號

程式碼

位元組 1-0

位元組 3-2

位元組 5-4

位元組 7-6

位元組 9-8

位元組 11-10

V4L2_PIX_FMT_YUV48_12

‘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位小端序字儲存。每個字的最高有效位包含一個分量,最低有效位為零填充。

32位容器中的封裝YUV 4:2:2格式

識別符號

程式碼

位元組 0

位元組 1

位元組 2

位元組 3

位元組 4

位元組 5

位元組 6

位元組 7

V4L2_PIX_FMT_UYVY

‘UYVY’

Cb0

Y’0

Cr0

Y’1

Cb2

Y’2

Cr2

Y’3

V4L2_PIX_FMT_VYUY

‘VYUY’

Cr0

Y’0

Cb0

Y’1

Cr2

Y’2

Cb2

Y’3

V4L2_PIX_FMT_YUYV

‘YUYV’

Y’0

Cb0

Y’1

Cr0

Y’2

Cb2

Y’3

Cr2

V4L2_PIX_FMT_YVYU

‘YVYU’

Y’0

Cr0

Y’1

Cb0

Y’2

Cr2

Y’3

Cb2

64位容器中的封裝YUV 4:2:2格式

識別符號

程式碼

字 0

字 1

字 2

字 3

V4L2_PIX_FMT_Y210

‘Y210’

Y’0 (bits 15-6)

Cb0 (bits 15-6)

Y’1 (bits 15-6)

Cr0 (bits 15-6)

V4L2_PIX_FMT_Y212

‘Y212’

Y’0 (bits 15-4)

Cb0 (bits 15-4)

Y’1 (bits 15-4)

Cr0 (bits 15-4)

V4L2_PIX_FMT_Y216

‘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個畫素。

封裝YUV 4:1:1格式

識別符號

程式碼

位元組 0

位元組 1

位元組 2

位元組 3

位元組 4

位元組 5

位元組 6

位元組 7

位元組 8

位元組 9

位元組 10

位元組 11

V4L2_PIX_FMT_Y41P

‘Y41P’

Cb0

Y’0

Cr0

Y’1

Cb4

Y’2

Cr4

Y’3

Y’4

Y’5

Y’6

Y’7

注意

不要將V4L2_PIX_FMT_Y41PV4L2_PIX_FMT_YUV411P混淆。Y41P來源於“YUV 4:1:1 packed (封裝)”,而YUV411P代表“YUV 4:1:1 planar (平面)”。

顏色樣本位置:色度樣本在水平方向上間隔定位