深度解析视频颜色空间YUV420P和YUV420SP的异同

原创
2023/04/05 21:29
阅读数 34

前言

在视频相关的技术参数中,经常提到的一个参数就是颜色空间,YUV色彩空间就是其中之一。其实,除了YUV之外,还有非常多其他类型的颜色空间模型,比如RGB、CMYK、Hex等,我们也没有必要记住所有的颜色空间模型,只需要关注自己常用的颜色空间模型就行了。另外,YUV颜色空间模型也有非常多的子类型,比如我们今天讨论的YUV420P和YUV420SP颜色模型,它们在实时音视频通讯领域存在广泛的应用。

正文

一、共同点

首先,我们来看一下YUV420P和YUV420SP二者的相同点,后边再介绍二者的不同点。YUV420P和YUV420SP颜色空间模型有如下几个相同点:

1、无论是YUV420P,还是YUV420SP,它们都是YUV颜色空间模型的子类型。

2、无论是YUV420P,还是YUV420SP,它们存储的数据信息都是表示亮度的Y分量以及表示色度的UV分量。

3、无论是YUV420P,还是YUV420SP,它们的依赖关系都是4个Y分量共用一对UV分量。

4、无论是YUV420P,还是YUV420SP,它们都是Planar平面存储形式。

二、不同点

1. 从名字上进行区分

YUV颜色空间在宏观存储时可以分为Planar和Packed两种模式,前者是平面模式,后者是打包模式。Packed打包模式我遇到的情况比较少,这里就不展开讨论了,它的特点是Y、U、V分量是交叉存储的,下面举个YUYV的例子。

本文重点介绍Planar平面模式的存储形式,YUV420P和YUV420SP的差异从名字上就可以看出一二,主要看S的含义。S是Semi(半的)的缩写,SP就是Semi-Planar,意思是半平面存储形式。前者是Y、U、V分量分别存储在三个平面中,总共占用三个平面;后者是Y分量单独存储在一个平面中,UV分量共同存储在另一个平面中,总共占用两个平面。

2. 从存储形式上进行区分

2.1 YUV420P

YUV420P采用Planar平面模式进行数据存储,其中,Y分量、U分量、V分量分别存储在不同的平面内,也就是三个平面。同时,YUV420P又可以细分为YU12和YV12两种子类型,二者的差异主要体现在U分量和V分量的存储顺序上,下面会详细介绍。

1、YU12格式

YU12 又被称为 I420 格式,它是按照“先Y再U后V”的顺序进行数据分量存储的,具体形式可以参考下图:

2、YV12格式

YV12按照“先Y再V后U”的顺序进行数据分量的存储,具体形式可以参考下图:

2.2 YUV420SP

YUV420SP也是采用Planar平面模式进行数据存储,其中,Y分量、UV分量分别存储在不同的平面内,也就是两个平面。同时,YUV420SP又可以细分为NV12和NV21子类型,二者的差异也是主要体现在U和V分量的存储顺序上,下面详细介绍。

1、NV12格式

NV12 是iOS手机中常用的颜色空间模式,比如iOS的视频硬解就只支持NV12格式。NV12模型的存储顺序是先存Y分量,再将UV分量交替存储(注意:用词,是UV不是VU),具体形式可以参考下图:

2、NV21格式

NV21 是Android手机Camera摄像头自带的默认预览格式。NV21模型的存储顺序是先存Y分量,再将VU分量交替存储(注意:用词,是VU不是UV),具体形式可以参考下图:

其他

相比YUV444和YUV422,YUV420颜色空间模型存在的意义体现在更加节省存储空间和传输带宽。简单的举个例子,YUV444或者RGB颜色空间的存储大小计算公式如下:



YUV420颜色空间的存储大小计算公式如下:



上面的公式稍微变形后的结果如下:



对比YUV444和RGB颜色空间的存储大小,很明显YUV420颜色空间模型节省了一半的存储空间和大小。在实际业务场景中,流量和带宽就意味的钱和成本,换句话说,使用YUV420颜色空间模型比使用YUV444颜色空间模型可以节省一半的带宽费用。

结论

综上所述,YUV420P和YUV420SP颜色空间模型的主要差异在于UV分量的存储形式上,是分开存储还是组合存储。另外,根据U分量和V分量存储的先后顺序又可以细分为YU12、YV12、NV12、NV21。


本文分享自微信公众号 - 玩转音视频(gh_5da216074f34)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部