像素數據YUV簡介與數據存儲格式介紹

主要學習鏈接:博客園51CTO

前言

照例是先廢話幾句,下面的內容都是在學習時從網上找來的,並非我原創,我之所以要寫這篇筆記是因爲網的內容都很分散,找的時候要從各個地方看,很不方便,所以就自己總結了一篇,同樣的,如果你搜到了這篇文章且有地方沒看懂,請評論讓我知道,謝謝!如果看懂了且對你有幫助可以點個贊:)

認識YUV

以下我的理解,因爲學習時間不久,可能不一定準確:

YUVRGB一樣,都是像素數據的編碼格式,一組YUV渲染屏幕上的一個像素,控制屏幕用色彩的形式將事物表現出來,其中Y表示像素中的亮度,英文是LuminanceU表示色度,英文是ChrominanceV表示濃度或飽和度,英文是Chroma。這是一種壓縮後的顏色表示方法,佔用更少的物理空間,且對顏色的表現失真不明顯,所以現在非常常用,我見過的很多視頻在播放時都是使用這種形式展現的。

YUV的宏觀存儲方式

在宏觀上,YUV有兩種存儲方式:planarpacked

planar:從字面意思上來看,planar是平面的意思,平面比較平整,對應到存儲方式上就是把YUV三種分量分別存儲,以I420爲例,存儲方式爲:YYYYYYYYUUVV,簡單明瞭,先把Y存完,再存U,再存V,這種在解析時很方便

packed:從字面意思來看,packed是打包的意思,打包就不一定是平整的了,對應到存儲方式上就是把YUV三種分量交叉存儲,以YUY2爲例,存儲方式爲:Y0U0Y1V0 Y2U1Y3V1,這種方式在解析時就會比較麻煩

上面只是舉了兩個覺的例子,事實上還有很多其它的格式,後面一一細講。

採樣方式

採樣方式即如何表現一個像素,現在主流的有三種採樣方式,444422420,這三種比例是YUV三種分量的比例,咱們前面說過像素是用YUV三個分量控制顯示的,所以一個像素應該包含一個Y,一個U,一個V,如果要完全存儲,那一個一個像素點就要存儲YUV三個分量,這種形式就是444了。但是因爲人的眼睛對色度和飽和度不是特別敏感,所以一定程度上丟失一部分UV並不影響我們分辨顏色,所以聰明的先驅們爲了節省存儲空間,在存儲時就故意丟掉部分UV分量,用兩個Y分量共用一組UV分量,這種形式就是422,或用四個Y分量共用一組UV,這種形式就是420了。用網上找的圖表示比較形象。

下圖中以黑點表示採樣該像素點的Y分量,以空心圓圈表示採用該像素點的UV分量

 

在存儲時YUV各佔一個字節Byte,如果444方式,那一個256X256分辨率的圖片要佔用256×256×3=196608Byte422方式要佔用256×256×2=131072Byte420方式要佔用256×256×2/3=43690.7Byte,可以看到採用420方式存儲空間整整減少了一半。

常見存儲格式

YU12/I420

該格式屬於420類型,存儲方式上面已經說過,就是先存儲把全部的Y分量存完,再存U分量,最後存V分量,從網上找了一張很形象的圖:

可以看到,第一行的Y1Y2和第二行的Y7Y8共同使用一組UV分量U1V1

YV12

該格式與YU12基本一樣,唯一的區別是先存儲V分量再存儲U分量,對應到上圖把第五行和第六行位置互換一下就是了。

以上兩種格式我們可以看到都是420的,因爲都是planar方式存儲,簡稱420p

除了上面兩種,還有兩種420NV12NV21,這兩種是比較特殊的存儲格式,是planarpacked混合存儲的,分別看下

NV12

該格式是先存儲全部的Y分量,然後UV分量交叉存儲,用圖像表示下:

 

很直觀,不多說了。

NV21

該格式與NV21的區別和上面YU12/YV12一樣,唯一的區別只是UV分量交叉的順序不同,NV12U排前面,NV21V排前面,用圖像表示如下:

 

上面兩種雖然也是420類型,但是並不是完全的planar格式,所以又稱爲420sp,與420p進行區分。

上面說的都是420類型的,下面說幾個422類型較常見的

YUV422P

名字中帶P表示是planar格式存儲,該格式存儲方式與I420是一樣的,唯一的區別是UV分量的數量不同,I420中四個Y共用一組UV,而該格式中兩個Y共用一組UV,也就是說UV分量相對於I420在數量上多了一倍,從網上找了一張圖,如下:

 

如上圖,在渲染時Y00Y01會共用U00V00.

YUYV/YUY2

該格式屬於422類型,且是用packed形式存儲的,上面也簡單的說過,存儲方式如下圖:

 

可以看到,每兩個Y分量共用一組UV分量,存儲順序是YUYV

YVYU

該格式與YUYV相似,只是存儲時UV分量順序不同而已,爲YVYU

UYVY

該格式也是422類型,與上面兩種方式並無大的不同,從網上找了一張圖如下:

 

 可以看到存儲時YUV分量的順序如名字所示:UYVY

結語

上面是比較常見的存儲格式,除了這些還有其它的,但是我個人查找資料看來,用的並不多,所以就沒記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章