文章目录
- 一、前言
- 二、YUV 介绍
- 三、YUV 优点
- 四、YUV 采样格式
- 五、YUV 存储格式
- 六、具体分类详解
一、前言
视频采集芯片输出的码流一般都是 YUV 格式数据流,后续视频处理也是对 YUV 数据流进行编码和解析。所以,了解 YUV 数据流对做视频领域的人而言,至关重要。
下面我们对YUV进行一下总结。
二、YUV 介绍
YUV 编码采用了明亮度和色度表示每个像素的颜色。
其中 Y 表示明亮度(Luminance、Luma),也就是灰阶值。
U、V 表示色度(Chrominance 或 Chroma),描述的是色调和饱和度。
YCbCr 其实是 YUV 经过缩放和偏移的翻版。其中 Y 与 YUV 中的 Y 含义一致,Cb,Cr 同样都指色彩,只是在表示方法上不同而已。YCbCr 其中 Y 是指亮度分量,Cb 指蓝色色度分量,而 Cr 指红色色度分量。
三、YUV 优点
对于 YUV 所表示的图像,Y 和 UV 分量是分离的。如果只有 Y 分量而没有 UV 分离,那么图像表示的就是黑白图像。彩色电视机采用的就是 YUV 图像,解决与和黑白电视机的兼容问题,使黑白电视机也能接受彩色电视信号。
人眼对色度的敏感程度低于对亮度的敏感程度。主要原因是视网膜杆细胞多于视网膜锥细胞,其中视网膜杆细胞的作用就是识别亮度,视网膜锥细胞的作用就是识别色度。所以,眼睛对于亮度的分辨要比对颜色的分辨精细一些。
利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点。
所以,并不是每个像素点都需要包含了 Y、U、V 三个分量,根据不同的采样格式,可以每个 Y 分量都对应自己的 UV 分量,也可以几个 Y 分量共用 UV 分量。
四、YUV 采样格式
采样格式即在对视频数据进行采样时的格式,是在获取原始图像数据时采用的策略。
采样格式主要包括三种:YUV420、YUV422和YUV444。
YUV 420:每四个Y共用一组UV分量。
YUV 422:每两个Y共用一组UV分量。
YUV 444:每一个Y对应一组UV分量。
备注:【嵌入式技术部落】是我的公众号,本文图片是从我的公众号文章里拷贝的。
我们以一张大小为1920*1280的图像为例:
(1)【使用YUV4:4:4格式采样的大小】
YUV 4:4:4 表示Y、U、V三个分量采样率相同。因此在生成的图像里,每个像素的三个分量信息完整,都是8bit,每个像素占用3个字节。 那么它的采样大小为 (8 + 8 + 8)* 1920 * 1280 / 8 / 1024 / 1024 = 7.03MB。
(2)【使用YUV4:2:2格式采样的大小】
YUV 4:2:2 表示 UV 分量的采样率是 Y 分量的一半。每采样一个像素点,都会采样其 Y 分量,而 U、V 分量都会间隔采集一个,即第一个像素点和第二个像素点共用了 U、V分量,以此类推。从而节省了图像空间。那么它的采样大小为:(1920 * 1280 * 8 + 1920 * 1280 * 8 * 2 * 0.5) / 8 / 1024 / 1024 = 4.68M。可以看到 YUV 4:2:2 采样的图像比YUV 4:4:4 采样的图像节省了三分之一的存储空间。
(3)【使用YUV4:2:0格式采样的大小】
YUV4:2:0 表示UV 分量的采样率是 Y 分量的四分之一。所有像素都保留Y分量, 同一行的像素只保留U分量,或者是V分量,同一行中相临的两个像素只保留同一个V分量或者U分量。 那么它的采样大小为:(1920 * 1280 * 8 + 1920 * 1280 * 8 * 2 * 0.25) / 8 / 1024 / 1024 = 3.51M。可以看到 YUV4:2:0 采样的图像比 YUV 4:4:4 采样的图像节省了一半的存储空间, 因此它也是比较主流的采样方式。
五、YUV 存储格式
YUV 数据有三种存储格式:Planar,Semi-Planar 和 Packed。
Planar:YUV 三个分量分开存放
Semi-Planar:Y 分量单独存放,UV 分量交错存放
Packed:三个分量全部交错存放
根据YUV的采样格式和存储格式,我们对 YUV 格式进行一下分类,大家可以参考下面总结的YUV格式图:
六、具体分类详解
根据采样方式和存储方式,我们对具体分类详解一下。
1、I420
I420(属于 YUV 420 Plannar) I420 是 YUV 420 Planar 的一种,YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.25 长度的 U, 最后是 w * h * 0.25 长度的 V,总长度为 w * h * 1.5。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U U U
U U U
U U U
V V V
V V V
V V V
2、YV12
YV12(属于 YUV 420 Plannar) YV12 是 YUV 420 Planar 的一种,YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.25 长度的 V, 最后是 w * h * 0.25 长度的 U,总长度为 w * h * 1.5。与 I420 不同的是,YV12 是先 V 后 U。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V V V
V V V
V V V
U U U
U U U
U U U
3、NV12
NV12(属于 YUV 420 Semi-Planar) NV12 是 YUV 420 Semi-Planar 的一种,Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 U 开始。总长度为 w * h * 1.5。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U V U V U V
U V U V U V
U V U V U V
4、NV21
NV21(属于 YUV 420 Semi-Planar) NV21 是 YUV 420 Semi-Planar 的一种,Y 分量单独存放,UV 分量交错存放,与 NV12 不同的是,UV 在排列的时候,从 V 开始。总长度为 w * h * 1.5。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V U V U V U
V U V U V U
V U V U V U
5、I422
I422(属于 YUV 422 Plannar) I422 是 YUV 422 Planar 的一种,YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.5 长度的 U, 最后是 w * h * 0.5 长度的 V,总长度为 w * h * 2。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U U U U U U
U U U U U U
U U U U U U
V V V V V V
V V V V V V
V V V V V V
6、YV16
YV16(属于 YUV 422 Plannar) YV16 是 YUV 422 Planar 的一种,YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.5 长度的 V, 最后是 w * h * 0.5 长度的 U,总长度为 w * h * 2。与 I422 不同的是,YV16 是先 V 后 U。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V V V V V V
V V V V V V
V V V V V V
U U U U U U
U U U U U U
U U U U U U
7、NV16
NV16(属于 YUV 422 Semi-Planar) NV16 是 YUV 422 Semi-Planar 的一种,Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 U 开始。总长度为 w * h * 2。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U V U V U V
U V U V U V
U V U V U V
U V U V U V
U V U V U V
U V U V U V
8、NV61
NV61(属于 YUV 422 Semi-Planar) NV61 是 YUV 422 Semi-Planar 的一种,Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 V 开始。总长度为 w * h * 2。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V U V U V U
V U V U V U
V U V U V U
V U V U V U
V U V U V U
V U V U V U
9、YUYV
YUVY(属于 YUV 422 Interleaved) YUVY 属于 YUV 422 Interleaved 的一种。事实上,Interleaved 是属于 Packed 的,但是在 422 中,用 Interleaved 更加形象一些。在 Packed 内部,YUV 的排列顺序是 Y U V Y,两个 Y 共用一组 UV。
Y U V Y Y U V Y Y U V Y
Y U V Y Y U V Y Y U V Y
Y U V Y Y U V Y Y U V Y
Y U V Y Y U V Y Y U V Y
Y U V Y Y U V Y Y U V Y
Y U V Y Y U V Y Y U V Y
10、VYUY
VYUY(属于 YUV 422 Interleaved) VYUY 属于 YUV 422 Interleaved 的一种。在 Packed 内部,YUV 的排列顺序是 VYUY,两个 Y 共用一组 UV。
V Y U Y V Y U Y V Y U Y
V Y U Y V Y U Y V Y U Y
V Y U Y V Y U Y V Y U Y
V Y U Y V Y U Y V Y U Y
V Y U Y V Y U Y V Y U Y
V Y U Y V Y U Y V Y U Y
11、UYVY
UYVY(属于 YUV 422 Interleaved) UYVY 属于 YUV 422 Interleaved 的一种。在 Packed 内部,YUV 的排列顺序是 UYVY,两个 Y 共用一组 UV。
U Y V Y U Y V Y U Y V Y
U Y V Y U Y V Y U Y V Y
U Y V Y U Y V Y U Y V Y
U Y V Y U Y V Y U Y V Y
U Y V Y U Y V Y U Y V Y
U Y V Y U Y V Y U Y V Y
12、I444
I444(属于 YUV 444 Plannar) I444 属于 YUV 444 Plannar 的一种。YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h 长度的 U, 最后是 w * h 长度的 V,总长度为 w * h * 3。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
V V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
13、YV24
YV24(属于 YUV 444 Plannar) YV24 属于 YUV 444 Plannar 的一种。YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h 长度的 V, 最后是 w * h 长度的 U,总长度为 w * h * 3。与 I444 不同的是,YV24 是先排列 V。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
V V V V V V
U U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
U U U U U U
14、NV24
NV24(属于 YUV 444 Semi-Planar) NV24 是 YUV 444 Semi-Planar 的一种,Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 U 开始。总长度为 w * h * 3。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U V U V U V U V U V U V
U V U V U V U V U V U V
U V U V U V U V U V U V
U V U V U V U V U V U V
U V U V U V U V U V U V
U V U V U V U V U V U V
15、NV42
NV42(属于 YUV 444 Semi-Planar) NV42 是 YUV 444 Semi-Planar 的一种,Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 V 开始。总长度为 w * h * 3。
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V U V U V U V U V U V U
V U V U V U V U V U V U
V U V U V U V U V U V U
V U V U V U V U V U V U
V U V U V U V U V U V U
V U V U V U V U V U V U
16、YUV 444 Packed
YUV 分量交错存放,总长度为 w * h * 3。
Y U V Y U V Y U V Y U V Y U V Y U V
Y U V Y U V Y U V Y U V Y U V Y U V
Y U V Y U V Y U V Y U V Y U V Y U V
Y U V Y U V Y U V Y U V Y U V Y U V
Y U V Y U V Y U V Y U V Y U V Y U V
Y U V Y U V Y U V Y U V Y U V Y U V
我的文章一项是理论+示例,本篇是偏理论,关于YUV,之后将总结文章【YUV】YUV图像全面详解(二)——代码示例,我们将通过代码示例对YUV图片进行解析,,以及推荐好用的查看YUV图像的工具软件,以便使读者更好的理解YUV。