參考:
https://blog.csdn.net/amy2020/article/details/62049376
https://www.cnblogs.com/xkfz007/archive/2012/07/31/2616806.html
https://baike.so.com/doc/5398205-5635586.html
https://baike.so.com/doc/5509659-5745405.html
RGB
在色度學中,爲了確切表示某一種彩色,採用亮度、色調和色飽和度三個基本參量。
- 彩色視覺是人眼對這個三個參量的總體感覺。
- 亮度是光作用於人眼所引起的明亮程度的感覺。
- 色調是反映了彩色的類別。也就是通常所說的紅,綠,藍等就指的是色調。
- 色飽和度是指彩色光所呈現彩色的深淺程度。
RGB特點: (R,G,B 都是 8bit unsigned) 模型,每個像素點需要 8x3=24 bits
- 【red】0,0,255
- 【green】0,255,0
- 【blue】255,0,0
- 【white】255,255,255
- 【black】0,0,0
YUV 和 YCbCr 來源上的差異
YUV 色彩模型來源於rgb模型,該模型的特點是將亮度和色度分離開,從而適合於圖像處理領域。
- 應用:用在模擬彩色電視廣播的基本顏色模型中。
YCbCr模型來源於yuv模型,應用於數字視頻,ITU-R BT.601 recommendation
- 應用:數字視頻,ITU-R BT.601 recommendation。
在YUV 家族中, YCbCr 是在計算機系統中應用最多的成員, 其應用領域很廣泛,JPEG、MPEG、H.264、 H.265 均採用此格式。一般所講的YUV大多是指 YCbCr。
YCbCr特點: YCbCr其中Y是指亮度分量,C代表分量(是component的縮寫)
- Cb對應b(藍) , Cr對應r(紅)分量信號
- Cb(U)和 Cr(V )通道從紅 (U) 和藍 (V) 中提取亮度值來減少顏色信息量表示色度
- Y除了g(綠)分量信號,還疊加了亮度信號
- YCbCr 常用格式YUV4∶4∶4 , YUV4∶2∶2 , YUV4∶1∶1 和YUV4∶2∶0
YCbCr採樣格式 (Cb≈U和 Cr≈V )
主流的採樣方式有三種,YUV4:4:4,YUV4:2:2,YUV4:2:0
1、YUV444: 每一個Y對應一組UV分量
- YUV444p:YYYYYYYYY VVVVVVVVV UUUUUUUU
2、YUV422: 每兩個Y共用一組UV分量
- YUV422p:YYYYYYYY VVVV UUUU
- YUVY :YUYV YUYV YUYV YUYV
- UYVY :UYVY UYVY UYVY UYVY
3、YUV420: 每四個Y共用一組UV分量
- YV12:YYYYYYYY VVUU
- I420 :YYYYYYYY UUVV
4、YUV420sp:每四個Y共用一組UV分量
- NV12:YYYYYYYY UVUV
- NV21:YYYYYYYY VUVU
- android 通常使用 NV21
YUV和RGB的轉換:
Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128
R = Y + 1.402 (V-128)
G= Y - 0.34414 (U-128) - 0.71414 (V-128)
B= Y + 1.772 (U-128)
YCbCr與RGB的相互轉換
Y = 0.257*R+0.504*G+0.098*B+16
Cb = -0.148*R-0.291*G+0.439*B+128
Cr = 0.439*R-0.368*G-0.071*B+128
R = 1.164*(Y-16)+1.596*(Cr-128)
G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B = 1.164*(Y-16)+2.017*(Cb-128)