欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

YUV模型解析:比较YUV420P和YUV420SP

最编程 2024-08-15 16:29:42
...

YUV模型是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间,常见的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等,其中比较常见的YUV420分为两种:YUV420P和YUV420SP。

YUV420格式单帧数据

YUV420P

YUV420P又叫plane平面模式,Y , U , V分别在不同平面,也就是有三个平面,它是YUV标准格式4:2:0,主要分为:YU12和YV12

YU12

按照 Y、U、V的顺序存储


YU12格式

YV12

按照 Y、V、U的顺序存储


YV12格式

YUV420SP

YUV420SP格式的图像阵列,首先是所有Y值,然后是UV或者VU交替存储,NV12和NV21属于YUV420SP格式,是一种two-plane模式,即Y和UV分为两个plane,但是UV(CbCr)为交错存储,而不是像YUV420格式那样分为三个平面。主要分为:NV21和NV12

NV21

存储顺序是先存Y值,再VU交替存储:YYYYVUVUVU,以 4 × 4 图片为例子,占用内存为 4 × 4 × 3 / 2 = 24 个字节


NV21格式

NV12

存储顺序是先存Y值,再UV交替存储:YYYYUVUVUV,以 4 × 4 图片为例子,占用内存为 4 × 4 × 3 / 2 = 24 个字节


NV12

YUV和RGB转换

Y =    (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
U =    (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
V =  - (0.148 * R) - (0.291 * G) + (0.439 * B) + 128

R = 1.164 * (Y - 16) + 2.018 * (U - 128)
G = 1.164 * (Y - 16) + 0.813 * (V - 128) - 0.391 * (U - 128)
B = 1.164 * (Y - 16) + 1.596 * (V - 128)

推荐阅读