YUV图像的常见格式(图示)

摘要

在研究android Camera2 API的时候,涉及到采集视频信息。其中,在采集视频的时候,可以设置多种类型格式的图像数据,其中一个就是yuv_420_888,如果需要进行编码压缩,我们还需要将该格式的数据转转想要的格式后方能根据压缩算法进行压缩。本文记录一下,我所知的几种常用的yuv数据格式。

介绍

YUV是一种颜色编码方法,是编译true-color颜色空间(color space)的种类,常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。其中的“Y”表示明亮度,也就是灰阶值,即黑到白的范围值,所以只有Y值的图像,是黑白的,“U”表示色彩值,“V”表示色彩的饱和度,“U”“V”用于指定像素的颜色。

YUV两大类格式:
平面格式(planar formats)
  • 将Y、U、V的三个分量分别存放在不同的矩阵中。先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。
紧缩格式(packed formats)
  • 将Y、U、V值存储成MacroPixels数组,和RGB的存放方式类似,每个像素点的Y,U,V是连续交替存储的。
    为节省带宽起见,大多数YUV格式平均使用的每像素位数都少于24位。主要的抽样(subsample)格式有YCbCr4:2:0、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4:4。
YUV的表示法称为A:B:C表示法:

4:4:4表示完全取样。
4:2:2表示2:1的水平取样,垂直完全采样。
4:2:0表示2:1的水平取样,垂直2:1采样。
4:1:1表示4:1的水平取样,垂直完全采样。

图示

下面图示几种常见的yuv存储格式。

1 YUV444类型

每个像素点都存储对应的YUV值,所以,在1080x1920的图像中,需要1080x1920x(1Y + 1U + 1V)(字节)≈ 0.7MB来存储。

1.1 I444类型

在屏幕像素上的分布表示:
在这里插入图片描述
在数组中存储的分布表示:
在这里插入图片描述
即先存Y,再存U,后存V的格式。

1.2 YV24类型

在屏幕像素上的分布表示:
在这里插入图片描述
在数组中存储的分布表示:
在这里插入图片描述
即先存Y,再存V,后存U的格式。

2 YUV422类型

每两个像素点共用一对UV值,所以,在1080x1920的图像中,需要1080x1920x(1Y+ 0.5U + 0.5V)(字节)≈ 0.5MB来存储。

在屏幕像素上的分布表示:
在这里插入图片描述

2.1 YUV422

在数组中存储的分布表示:
(YUYV)
在这里插入图片描述
(YVYU)
在这里插入图片描述

2.2 YUV422P

在数组中存储的分布表示:
YU16、I422
在这里插入图片描述
YV16
在这里插入图片描述

2.3 YUV422SP

在数组中存储的分布表示:
NV16
在这里插入图片描述
NV61
在这里插入图片描述

3 YUV420类型

每四个像素点共用一对UV值,所以,在1080x1920的图像中,需要1080x1920x(1Y+ 0.25U + 0.25V)(字节)≈ 0.3MB来存储。

在屏幕像素上的分布表示:
在这里插入图片描述

3.1 YUV420P

在数组中存储的分布表示:
YU12、I420
在这里插入图片描述

YV12
在这里插入图片描述

3.2 YUV420SP

在数组中存储的分布表示:
NV12
在这里插入图片描述
NV21
在这里插入图片描述

总结

了解了以上的YUV格式后自己才能自由的转换。

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值