YUV422 YUV420 Planar \ Semi-Planar \ Interleaved YCbCr與YUV

YCbCr是DVD、攝像機、數字電視等消費類視頻產品中,經常使用的色彩編碼方案。YCbCr 有時會稱爲 YCC.。Y'CbCr 在模擬份量視頻(analog component video)中也常被稱爲 YPbPr。YCbCr不是一種絕對色彩空間,是YUV壓縮和偏移的版本。android

一、YUV與YCbCr的區別 數組

正如幾何上用座標空間來描述座標集合, 色彩空間用數學方式來描述顏色集合。常見的3 個基本色彩模型是RGB , CMYKYUVide

  YCbCr 則是在世界數字組織視頻標準研製過程當中做爲ITU - R BT1601 建議的一部分, 實際上是YUV通過縮放和偏移的翻版。其中Y與YUV 中的Y含義一致, Cb , Cr 一樣都指色彩, 只是在表示方法上不一樣而已。在YUV 家族中, YCbCr 是在 計算機系統中應用最多的成員, 其應用領域很普遍, JPEGMPEG均採用此格式。通常人們所講的YUV大可能是指YCbCr。YCbCr 有許多取樣格式, 如4∶4∶4 , 4∶2∶2 , 4∶1∶1 和4∶2∶0。
   

YUV是被歐洲電視系統所採用的一種顏色編碼方法(屬於PAL),是PAL和SECAM模擬彩色電視制式採用的顏色空間。在現代彩色電視系統中,一般採用三管彩色攝影機或彩色CCD攝影機進行取像,而後把取得的彩色圖像信號經分色、分別放大校訂後獲得RGB,再通過矩陣變換電路獲得亮度信號Y和兩個色差信號R-Y(即U)、B-Y(即V),最後發送端將亮度和色差三個信號分別進行編碼,用同一信道發送出去。這種色彩的表示方法就是所謂的YUV色彩空間表示。採用YUV色彩空間的重要性是它的亮度信號Y和色度信號U、V是分離的。編碼

 YCbCr其中Y是指亮度份量,Cb指藍色色度份量,而Cr指紅色色度份量。人的肉眼對視頻的Y份量更敏感,所以在經過對色度份量進行子採樣來減 少色度份量後,肉眼將察覺不到的圖像質量的變化。主要的子採樣格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。component

   4:2:0表示每4個像素有4個亮度份量,2個色度份量 (YYYYCbCr),僅採樣奇數掃描線,是便攜式視頻設備(MPEG-4)以及電視會議(H.263)最經常使用格式;4:2:2表示每4個像素有4個亮度 份量,4個色度份量(YYYYCbCrCbCr),是DVD、數字電視、HDTV 以及其它消費類視頻設備的最經常使用格式;4:4:4表示全像素 點陣(YYYYCbCrCbCrCbCrCbCr),用於高質量視頻應用、演播室以及專業視頻產品。

關於yuv 格式orm

YUV 格式一般有兩大類:打包(packed)格式和平面(planar)格式。前者將 YUV 份量存放在同一個數組中,
一般是幾個相鄰的像素組成一個宏像素(macro-pixel);然後者使用三個數組分開存放 YUV 三個份量,就像
是一個三維平面同樣。視頻

 

幾種常見的yuv格式htm

1.YUV422 Planarget

這裏,Y\U\V數據是分開存放的,每兩個水平Y採樣點,有一個Cb和一個Cr採樣點,以下圖數學

ffmpeg 中的定義  PIX_FMT_YUV422P,   ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)  

android  OMX  中的定義  OMX_COLOR_FormatYUV422Planar     //*  YUV422Planar           : Three arrays Y,U,V.

 

2. YUV420 Planar

這個格式跟YUV422 Planar 相似,但對於Cb和Cr的採樣在水平和垂直方向都減小爲2:1,以下圖

 

ffmpeg 中定義  PIX_FMT_YUV420P    //< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)

android OMX 中定義  OMX_COLOR_FormatYUV420Planar     //  *  YUV420Planar           : Three arrays Y,U,V   

 

3.YUV422 Semi-Planar                                         

Semi 是’半‘的意思 個人理解這個半平面模式,這個格式的數據量跟YUV422 Planar的同樣,可是U、V是交叉存放的,以下圖。

 

ffmpeg 中 未找到定義

android  OMX  中 OMX_COLOR_FormatYUV422SemiPlanar    ////YUV422SemiPlanar       : Two arrays, one is all Y, the other is U and V

 

4.YUV420 Semi-Planar

 這個格式的數據量跟YUV420 Planar的同樣,可是U、V是交叉存放的,以下圖。

 ffmpeg 中定義  

PIX_FMT_NV12,      ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)

android   OMX  中定義 OMX_COLOR_FormatYUV420SemiPlanar    //YUV420SemiPlanar       : Two arrays, one is all Y, the other is U and V 

 

5.YUV422 Interleaved        Interleaved -- 交錯   

這個格式的數據量跟YUV422 Planar的同樣,可是Y、U、V是交叉存放的,以下圖。 這個是打包(packed)模式的

ffmpeg  中  PIX_FMT_UYVY422   ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1

android  OMX 中  OMX_COLOR_FormatCbYCrY    //CbYCrY                 : Organized as 16bit UYVY (i.e. CbYCrY)

相關文章
相關標籤/搜索