https://www.jianshu.com/p/4fa388739e05
https://blog.csdn.net/andrexpert/article/details/69267043
https://www.jianshu.com/p/bc013beb2e83 (YUV的采样与格式)
https://www.elecfans.com/d/2154050.html
目录
RGB
https://blog.csdn.net/jisuanji111111/article/details/120737874
RGB 图像中,每个像素点都有红、绿、蓝三个原色,其中每种原色都占用 8 bit,也就是一个字节,那么一个像素点也就占用 24 bit,也就是三个字节。
一张 1280 720 大小的图片,就占用 1280 720 * 3 / 1024 / 1024 = 2.63 MB 存储空间。
每个像素点的空间占用大小是固定的:3字节。
RGBXXX
https://zhuanlan.zhihu.com/p/547359303?utm_id=0 (不同RGB的存储格式)
https://blog.csdn.net/weixin_44030507/article/details/131922861
RGB 则是对使用的位数进行缩减
例如常见的 RGB888, RGB565 就是通过减少整个存储的位数来减少像素点的存储大小。
RGB24, 即 RGB 888, 每个分量用 8bit 来存储,大小为 24bpp。
RGB565, 即 R 分量占据 5 bit ,G 分量占 6 bit,B 分量占 5 bit, 大小为 16 bpp 。
RGBA, 即在原来的 RGB 分量上多一个 A (Alpha )透明度, 大小为 32 bpp。
YUV
https://zhuanlan.zhihu.com/p/636871825?utm_id=0 (非常易于理解)
https://blog.csdn.net/tyyj90/article/details/127859411
https://zhuanlan.zhihu.com/p/248120814
YUV 颜色编码采用的是 明亮度 和 色度 来指定像素的颜色。
其中,Y 表示明亮度(Luminance、Luma),而 U 和 V 表示色度(Chrominance、Chroma)。
而色度又定义了颜色的两个方面:色调和饱和度。
一、采样方式
YUV 4:4:4采样,每一个Y对应一组UV分量,一个YUV占8+8+8 = 24bits 3个字节。
YUV 4:2:2采样,每两个Y共用一组UV分量,一个YUV占8+4+4 = 16bits 2个字节。
YUV 4:2:0采样,每四个Y共用一组UV分量,一个YUV占8+2+2 = 12bits 1.5个字节。
-
YUV444
Y、U、V 三个分量的采样比例相同,这时相同分辨率的图片大小与RGB格式的图片大小一致。 -
YUV422
-
YUV420
YUV 4:2:0 采样的图像比 RGB 模型图像节省了一半的存储空间,因此它也是比较主流的采样方式。
二、存储格式
https://zhuanlan.zhihu.com/p/538459722
https://wenku.baidu.com/view/3e95a1eb6c1aff00bed5b9f3f90f76c661374ce6.html?wkts=1704695140337&needWelcomeRecommand=1
https://blog.csdn.net/moon9999/article/details/131990082 (*)
https://blog.csdn.net/u012117034/article/details/124881416
YUV 在存储上按 YUV 三个分量的存储顺序不同可以分为三种格式:
Planar 平面格式,也称为三面格式,即 YUV 三个分量分别按顺序保存,一个平面存储一个分量
比如yuv444p,就是字节数*1/3部分是Y,1/3至2/3部分是U,2/3至3/3部分是V.
Semi-Planar 半平面格式,即两个平面,一个平面存储 Y,另外两个平面存储 UV 分量。
Packed 打包格式,只有一个平面,所有亮度(Y)和色度(UV)数据都交织在一起。
1.平面模式
YUV420
分为YU12和YV12
- YU12
首先是所有Y值 ,然后是所有U值,最后是所有V值。 - YV12
首先是所有Y值,然后是所有V值,最后是所有U值。
YUV420SP
- NV21
在Android Carmra中手机从摄像头采集的预览数据默认值是NV21。
先存Y值,再VU交替存储
- NV12
先存Y值,再UV交替存储
0 条评论