RGB、YUV
2021-11-29 本文已影响0人
AgileHouse
RGB和YUV是什么?
RGB和YUV是色彩空间模型,还有诸如HSV
不是存储格式,如PEG、BMP、JPEG、GIF等
RGB是什么?
Red, Green, Blue, 也有叫为BGR,在编解码时要注意先后顺序
顺便说下:三基色和三原色
三基色(红绿蓝)是光学的概念:太阳光色散成七色光,其中红黄蓝可以通过不同比例搭配成其他颜色的光
三原色(红黄青)是绘画的概念:最基础最原始的色彩,可以调配出其他颜色,不能被其他颜色所调配
青是什么颜色:赤橙黄绿青蓝紫,青天,天蓝色


三基色分量都为0(最弱)时混合为黑色光;当三基色都为k(最大,值由存储空间决定)时混合为白色光


YCbCr
Y'为亮度,Cb、Cr分量代表当前颜色对蓝色和红色的偏移程度
Y用来表示明亮度,只有Y可以显示黑白照片
CbCr,粗浅理解为UV,用来表示色度


YUV有什么好处
-
先看下YUV在图片和视频中编码的pipeline
YUV颜色编码在video pipeline的使用
-
编码方式
编码方式
黑点是Y,空心是UV
- 为什么有要这种编码方式
人眼对色度的敏感程度要低于对亮度的敏感程度
既然看不见(或难发现差别),那么就不浪费全量444存储空间
- 存储方式
主要分为两种:Packeted 和 Planar
紧缩格式(packed formats):将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel),和RGB的存放方式类似,在这种格式下每个像素点的YUV数据混合放在一个矩阵中
平面格式(planar formats):使用三个数组分开存放YUV三个分量,就像是一个三维平面一样。其中Y为width*height,而U、V合占Y的一半
参考:
https://www.zhihu.com/question/25074051
https://www.sohu.com/a/206504761_286880
https://www.jianshu.com/p/a91502c00fb0
https://blog.csdn.net/kangweijian/article/details/82952871
https://www.cnblogs.com/amxiang/p/14889393.html
https://www.cnblogs.com/justkong/p/6570914.html
https://www.cnblogs.com/amxiang/p/14889393.html
https://www.zhihu.com/question/24994945