天天看點

YUV圖像的常見格式(圖示)

摘要

在研究android Camera2 API的時候,涉及到采集視訊資訊。其中,在采集視訊的時候,可以設定多種類型格式的圖像資料,其中一個就是yuv_420_888,如果需要進行編碼壓縮,我們還需要将該格式的資料轉轉想要的格式後方能根據壓縮算法進行壓縮。本文記錄一下,我所知的幾種常用的yuv資料格式。

介紹

YUV是一種顔色編碼方法,是編譯true-color顔色空間(color space)的種類,常使用在各個視訊處理元件中。 YUV在對照片或視訊編碼時,考慮到人類的感覺能力,允許降低色度的帶寬。其中的“Y”表示明亮度,也就是灰階值,即黑到白的範圍值,是以隻有Y值的圖像,是黑白的,“U”表示色彩值,“V”表示色彩的飽和度,“U”“V”用于指定像素的顔色。

YUV兩大類格式:

平面格式(planar formats)

  • 将Y、U、V的三個分量分别存放在不同的矩陣中。先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,随後是所有像素點的V。

緊縮格式(packed formats)

  • 将Y、U、V值存儲成MacroPixels數組,和RGB的存放方式類似,每個像素點的Y,U,V是連續交替存儲的。

    為節省帶寬起見,大多數YUV格式平均使用的每像素位數都少于24位。主要的抽樣(subsample)格式有YCbCr4:2:0、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4:4。

YUV的表示法稱為A:B:C表示法:

4:4:4表示完全取樣。

4:2:2表示2:1的水準取樣,垂直完全采樣。

4:2:0表示2:1的水準取樣,垂直2:1采樣。

4:1:1表示4:1的水準取樣,垂直完全采樣。

圖示

下面圖示幾種常見的yuv存儲格式。

1 YUV444類型

每個像素點都存儲對應的YUV值,是以,在1080x1920的圖像中,需要1080x1920x(1Y + 1U + 1V)(位元組)≈ 0.7MB來存儲。

1.1 I444類型

在螢幕像素上的分布表示:

YUV圖像的常見格式(圖示)

在數組中存儲的分布表示:

YUV圖像的常見格式(圖示)

即先存Y,再存U,後存V的格式。

1.2 YV24類型

在螢幕像素上的分布表示:

YUV圖像的常見格式(圖示)

在數組中存儲的分布表示:

YUV圖像的常見格式(圖示)

即先存Y,再存V,後存U的格式。

2 YUV422類型

每兩個像素點共用一對UV值,是以,在1080x1920的圖像中,需要1080x1920x(1Y+ 0.5U + 0.5V)(位元組)≈ 0.5MB來存儲。

在螢幕像素上的分布表示:

YUV圖像的常見格式(圖示)
2.1 YUV422

在數組中存儲的分布表示:

(YUYV)

YUV圖像的常見格式(圖示)

(YVYU)

YUV圖像的常見格式(圖示)
2.2 YUV422P

在數組中存儲的分布表示:

YU16、I422

YUV圖像的常見格式(圖示)

YV16

YUV圖像的常見格式(圖示)
2.3 YUV422SP

在數組中存儲的分布表示:

NV16

YUV圖像的常見格式(圖示)

NV61

YUV圖像的常見格式(圖示)
3 YUV420類型

每四個像素點共用一對UV值,是以,在1080x1920的圖像中,需要1080x1920x(1Y+ 0.25U + 0.25V)(位元組)≈ 0.3MB來存儲。

在螢幕像素上的分布表示:

YUV圖像的常見格式(圖示)
3.1 YUV420P

在數組中存儲的分布表示:

YU12、I420

YUV圖像的常見格式(圖示)

YV12

YUV圖像的常見格式(圖示)
3.2 YUV420SP

在數組中存儲的分布表示:

NV12

YUV圖像的常見格式(圖示)

NV21

YUV圖像的常見格式(圖示)
總結

了解了以上的YUV格式後自己才能自由的轉換。