YUV 是一種顏色編碼方法,Y 表明明亮度,U 和 V 則是色度。YUV 是一類顏色編碼方法的統稱,如 YUV、Y`UV、YCbCr、YPbPr 等專有名詞均可以稱爲 YUV。數組
Y'UV 的發明是因爲黑白電視到彩色電視的過渡時期。黑白視頻只有 Y 數據,也就是灰階值,到了彩色電視時期,增長了 UV 表示圖像的色度(U 表明藍色通道與亮度的差值,V 表明紅色通道與亮度的差值),若是忽略了 UV,那麼剩下的 Y 信號就與以前的黑白電視表現一致,這樣便解決了黑白電視和彩色電視的兼容問題。ide
RGB 訴求於人眼對色彩的感應,YUV 則着重於視覺對於亮度的敏感程度。所以 YUV 能夠經過下降色度的採樣率來減小帶寬而不會對圖像產生大的影響。優化
YUV 格式一般有兩類:編碼
根據不一樣的採樣方式分爲 YUV4:4:四、YUV4:2:二、YUV4:2:0、YUV4:1:1 等,表明 Y:U:V。orm
YUV420P 屬於 YUV4:2:0 採樣,是一種 Plane 模式,將 Y、U、V 份量分別打包,依次存儲。YU12 與 I420 相同,而 YV12 與 YU12 的區別僅僅是 UV 順序不一樣。視頻
在 I420/YU12 格式中,是以 Y平面-> U 平面-> V 平面的方式排列的,即 YUV;YV12 則相反,以 Y平面-> V 平面-> U 平面的方式排列,即 YVU。ip
排列舉例:get
YU12 取名錶明 Y 後面緊跟 U,YV12 則相反,12 表明它位深 12,在 2*2 圖像中,一共四個像素點,佔用 6 個字節,則每一個像素佔用空間 12 bit。it
YUV420P 屬於 YUV4:2:0 採樣,是一種 Two-Plane 模式,即 Y 和 UV 分爲兩個平面,UV 爲交錯存儲。NV12 和 NV21 相似,區別僅是 UV 順序不一樣。io
在 NV12 格式中,是以 Y平面-> UV平面(以 UV 的方式交錯存儲);NV21 則相反,以 Y平面-> UV平面(以 VU 的方式交錯存儲)。
排列舉例:
首先說下 YCbCr,YCbCr 是被 ITU 定義在標準 ITU-R BT.601(標清)、ITU-R BT.709(高清)、ITU-R BT.2020(超高清)中的一種色彩空間, 是一種針對 RGB 所作的編碼,是 YUV 壓縮和偏移的版本,YCbCr 一般用於視頻和圖像壓縮和傳輸,在視頻編解碼中的"YUV 圖像"指的就是 YCbCr。
對於 YCbCr 和 RGB 的轉換來講,不一樣的標準有不一樣的方式,而且有時候須要區分 Video Range[16-235] 和 Full Range[0-255]。
爲方便計算機運算和優化,下列提供定點化後的公式,默認使用 ITU-R BT.601 Video Range。
定點化後:
定點化後:
定點化後:
定點化後:
定點化後:
定點化後:
定點化後:
定點化後: