網(wǎng)上講的夠多了,貼個詳細的講解
YUV圖片?
每個圖片由像素點構(gòu)成,YUV圖片就是由Y,U,V三個維度來確定一個像素點。
所謂YUV420,YUV422是什么?
指的是采樣頻率,YUV420指的是每四個一組,Y采集4次,U采集2次,V采集0次
YUV420并不是V不采集,而是
第一行:Y采集4次,U采集2次,V采集0次
第二行:Y采集4次,U采集0次,V采集2次
第三行:Y采集4次,U采集2次,V采集0次
第四行:Y采集4次,U采集0次,V采集2次
.....
圖片顯示時,每上下左右四個Y共享一組UV
舉例:
原圖:
[Y0 U0 V0][Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5][Y6 U6 V6] [Y7 U7 V7] [Y8 U8 V8]
(每個中括號當(dāng)中為一個像素點的Y、U、V三個維度)
原圖采樣后數(shù)據(jù)流:
Y0 U0 Y1 Y2 U2 Y3
Y5 V5 Y6 Y7 V7 Y8
(如上述,每四個一組,Y采集4次,U采集2次,V采集0次 \ Y采集4次,U采集0次,V采集2次)
圖片顯示:
[Y0 U0 V5][Y1 U0 V5][Y2 U2 V7][Y3 U2 V7]
[Y5 U0 V5][Y6 U0 V5][Y7 U2 V7][Y8 U2 V7]
(如上述,每上下左右四個Y共享一組UV,Y0 Y1 Y5 Y6四個Y共享 U0 V5 這一組UV)
同理,YUV422,YUV411,YUV410,YUV444這些都是采樣率與存儲的方式。
YUV422指的是每四個一組,Y采集4次,U采集2次,V采集2次
YUV411指的是每四個一組,Y采集4次,U采集1次,V采集1次
YUV410指的是
第一行:Y采集4次,U采集1次,V采集0次
第二行:Y采集4次,U采集0次,V采集1次
YUV444指的是.....
所以對于RGB圖來說,一個像素點由R、G、B三個維度來構(gòu)成,假設(shè)每個維度都由8bit(一個字節(jié))來表示,
也就是說 R 維度有256個不同的值,256個不同的大??;
也就是說 G 維度有256個不同的值,256個不同的大??;
也就是說 B 維度有256個不同的值,256個不同的大小。
所以RGB圖的一個像素點,內(nèi)存中占用的大小為 1個字節(jié)+1個字節(jié)+1個字節(jié),也就是3個字節(jié)。
而YUV因為采樣率不同,采樣率低的圖,所占用的內(nèi)存大小要比RGB小很多。
例如YUV420圖,因為每四個Y共享一組UV,假設(shè)每個維度都由8bit(一個字節(jié))來表示,那么一個像素所占的內(nèi)存大小只有一個Y,1/4個U,1/4個V。
一個像素的大小就是1字節(jié)+1/4字節(jié)+1/4字節(jié),也就是1.5個字節(jié),比RGB圖要小一倍。
例如:
安卓手機中使用的NV21格式的yuv圖就是YUV420。
這張圖的大小,就是 2384x5424x1.5 = 19,396,224 字節(jié)

所謂NV21,NV12,YV12是什么?
是YUV圖片的存儲方式。在最上面的連接中有介紹。
例如NV12,他是YUV420格式的一種在文件/內(nèi)存中的存儲方式,特點是先存Y,后存UV,數(shù)據(jù)矩陣長這樣:
NV21和NV12差別不大,就是UV組存儲時,NV12先U后V,NV21先V后U。
其余的有各種不同的存儲方式,詳細在最上的連接中。
