網(wǎng)上講的夠多了,貼個詳細(xì)的講解
YUV圖片撵幽?
每個圖片由像素點(diǎn)構(gòu)成反浓,YUV圖片就是由Y,U,V三個維度來確定一個像素點(diǎn)煎源。
所謂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)中為一個像素點(diǎn)的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圖來說,一個像素點(diǎn)由R券躁、G、B三個維度來構(gòu)成也拜,假設(shè)每個維度都由8bit(一個字節(jié))來表示,
也就是說 R 維度有256個不同的值慢哈,256個不同的大小滥沫;
也就是說 G 維度有256個不同的值,256個不同的大欣夹濉;
也就是說 B 維度有256個不同的值缀辩,256個不同的大小。
所以RGB圖的一個像素點(diǎn)瓢阴,內(nèi)存中占用的大小為 1個字節(jié)+1個字節(jié)+1個字節(jié)健无,也就是3個字節(jié)荣恐。
而YUV因?yàn)椴蓸勇什煌墙В蓸勇实偷膱D旗唁,所占用的內(nèi)存大小要比RGB小很多。
例如YUV420圖讶请,因?yàn)槊克膫€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圖要小一倍焙矛。
例如:
安卓手機(jī)中使用的NV21格式的yuv圖就是YUV420。
這張圖的大小贫导,就是 2384x5424x1.5 = 19,396,224 字節(jié)
所謂NV21,NV12脱盲,YV12是什么?
是YUV圖片的存儲方式掖看。在最上面的連接中有介紹面哥。
例如NV12,他是YUV420格式的一種在文件/內(nèi)存中的存儲方式尚卫,特點(diǎn)是先存Y,后存UV刹泄,數(shù)據(jù)矩陣長這樣:
NV21和NV12差別不大怎爵,就是UV組存儲時,NV12先U后V鳖链,NV21先V后U。
其余的有各種不同的存儲方式芙委,詳細(xì)在最上的連接中。