图像存储格式YUV444 YUV422 YUV420叫法的原因

图像存储格式YUV444 YUV422 YUV420叫法的原因分析 YUV444 YUV422 YUV420 名称的由来 yuv444

大家好,欢迎来到IT知识分享网。

最近决定开始学习音视频开发,在看教程视频的时候产生了很多疑问,可惜视频里的老师并没有讲解到,后面我去查了些资料,为了防止忘记,更为了整理刚学到知识,进行以下记录,也是对自我的鞭策,如有错误,欢迎指正!

什么是YUV?

在开始分析YUV格式前,我们应该知道什么是YUV:Y表示明亮度,U和V表示色度分量
在这里插入图片描述
明亮度很好理解,可是为什么有两个色度分量呢?

受过9年义务教育的应该都知道,三原色几乎可以组成任何颜色的,其中V值就是从绿到红,V值越大,颜色越红,V值越小,颜色则越偏向绿色;U是从蓝到黄,U值越小,越蓝,U值越大,越黄。

说到这里,兄弟们可能有疑惑了,为什么是蓝色和黄色呢?经过我的查找,据说在颜色空间中,蓝色和黄色被认为是两种对比强烈的颜色,它们位于视觉系统感知的对立方位,说人话就是对比度最大。

上面我们说了它的含义,众所周知的至理:存在即合理,为什么要用YUV呢?目前我是觉得从两个方面来说觉得这玩意还是挺有必要的。

YUV格式

packed:顾名思义,packed就是打包嘛,就是一个像素一个像素的打包好存储,如图所示
在这里插入图片描述

YUV444

一段时长60秒,分辨率为1280×720的电影视频(即一秒24帧)为例(当然前提是这些数据没有经过编码处理),一帧的字节数:1280x720x24/8= Byte,那么一秒的数据量应就是x24= Byte,60秒就是:x60= Byte = 3.75GB,可以看出这数据量是非常庞大的,要是看60秒视频要这么多流量,那一个月得多少话费呀,当然,在实际传输中是不会这样传输的,肯定是要经过编码压缩再进行传输的,编码部分待老夫学成之后会再另写博客进行说明。

关于YUV444为什么叫YUV444,而不是YUV888 YUV999或者别的名字的问题,从存储 Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3 中可以看出这四个像素点里面一共有 4个Y,4个U,4个V,所以就叫YUV444,这样是不是就理解了,嘿嘿

YUV422

经过上面YUV444的说明,再看YUV422的名字,阁下肯定联想到了这玩意在存储时肯定丢弃的一部分数据,也就是说相邻的四个像素里肯定是只有4个Y 2个U 2个V,不得不说,阁下果真聪明‘绝顶’。

还是以刚刚例子举例,正常情况下我们60秒是需要3.75GB的存储空间的,我们来计算下 YUV422的,在计算之前我们应该知道这种存储方式,一个像素点里应该有几个字节,从上方我们就能看出一个像素点里应当是2个字节,由此可得存储数据应当是YUV444的2/3,即2.5GB,不信?那咱再来计算一下:一帧的字节数:1280x720x16/8= Byte,那么一秒的数据量应就是 x24= Byte,60秒就是:x60= Byte = 2.5GB

YUV420

这里咱就直接说YUV420的由来吧,看第一行的是YUV,比例是不是就是4:2:0

先解释下这个什么意思,我们只看第一行 yuv420p 他的成分是3 一个像素点占位12bit 精度是8。成分3就是Y、U、V三个量了;精度8和rgb一样就是Y、U、V这三个值的范围都是0~255,也就是一个字节;问题来了,既然是精度8,成分3,怎么会占位是12bit也就是1.5字节呢?我们看上面420的存储:Y0U0 Y1 Y2U2 Y3 相邻的两个像素点加起来不就是3字节吗,平均一下可不就是1.5Byte了…后面的存储数据量什么的我就不计算了,有兴趣的可以自己计算下。

最后留个联系方式寻找同道:trw(微信),如果有学习环境好的音视频开发群希望能拉下我(僵尸群就算了),大家一起讨论进步。

补充

YIQ:Y是亮度(Luminance),I是橙色到青色,Q是紫色到黄绿色

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122225.html

(0)
上一篇 2025-10-18 12:10
下一篇 2025-10-18 12:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信