【轉】圖像原始格式(YUV444 YUV422 YUV420)一探究竟


轉自:https://www.cnblogs.com/tid-think/p/10616789.html

前段時間搞x264編碼測試,傳參的時候需要告訴編碼器我的原始數據格式是什么,其中在x264.h頭文件中定義了如下一堆類型。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* Colorspace  type  */
#define X264_CSP_MASK           0x00ff  /* */
#define X264_CSP_NONE           0x0000  /* Invalid mode     */
#define X264_CSP_I400           0x0001  /* monochrome 4:0:0 */
#define X264_CSP_I420           0x0002  /* yuv 4:2:0 planar */
#define X264_CSP_YV12           0x0003  /* yvu 4:2:0 planar */
#define X264_CSP_NV12           0x0004  /* yuv 4:2:0, with one y plane and one packed u+v */
#define X264_CSP_NV21           0x0005  /* yuv 4:2:0, with one y plane and one packed v+u */
#define X264_CSP_I422           0x0006  /* yuv 4:2:2 planar */
#define X264_CSP_YV16           0x0007  /* yvu 4:2:2 planar */
#define X264_CSP_NV16           0x0008  /* yuv 4:2:2, with one y plane and one packed u+v */
#define X264_CSP_YUYV           0x0009  /* yuyv 4:2:2 packed */
#define X264_CSP_UYVY           0x000a  /* uyvy 4:2:2 packed */
#define X264_CSP_V210           0x000b  /* 10-bit yuv 4:2:2 packed in 32 */
#define X264_CSP_I444           0x000c  /* yuv 4:4:4 planar */
#define X264_CSP_YV24           0x000d  /* yvu 4:4:4 planar */
#define X264_CSP_BGR            0x000e  /* packed bgr 24bits */
#define X264_CSP_BGRA           0x000f  /* packed bgr 32bits */
#define X264_CSP_RGB            0x0010  /* packed rgb 24bits */
#define X264_CSP_MAX            0x0011  /* end of list */
#define X264_CSP_VFLIP          0x1000  /* the csp is vertically flipped */
#define X264_CSP_HIGH_DEPTH     0x2000  /* the csp has a depth of 16 bits per pixel component */

 但是這個定義只是對於這個應用而言,對於其他的應用或者場景中,相同的數據格式卻有着不同的名字,於是為了弄懂他們的差別關系,檢索了一大堆信息,整理了一個圖文出來如下。

首先要介紹的是YUV444,這種格式占用空間最大,每個像素點有一個Y分量+一個U分量+一個V分量所以和rgb一樣每個像素點占用3個字節!

但是根據UV存儲順序不一樣,又有兩種不同的格式。

 

 

接下來是YUV422 每兩個Y分量公用一個UV分量,所以一個像素占用兩個字節,根據存儲順序不同又分為四種不同的格式。

還有一種變態的V210格式,好像是蘋果搞出來的。

——————————————————————————————————————————————————————————

 

 

 

————————————————————————————————————————————————————————————————

 

接下來是YUV420 每四個y分量公用一個UV分量,所以每個像素點占用1.5個字節空間,根據存儲順序不一樣又分為四個不同的類型。

——————————————————————————————————————————————————————————————————

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM