【通俗易懂】为什么视频存储用YUV而不是RGB

RGB和YUV区别

RGB常常用于图像的存储,并且十分简单。

但是在视频领域中,RGB就不那么常见了。我们知道,视频其实是由一张张连续的图片序列组成的,我们假设有一个1080p(1920 * 1080)分辨率、帧率为30帧的视频,如果不对视频进行压缩,并且使用RGB进行存储的话,仅仅一分钟的视频就能达到 ( 1920 * 1080 * 8 * 30 * 60 )bit (约等于27G)。这明显是不现实的,所以我们需要对视频数据进行压缩。

但由于RGB的三个分量是存在相关性的,这不利于我们对数据进行压缩编码。

所以我们需要一种数据相关性没那么强的颜色空间,我们接下来要介绍的YUV,就是这么一种颜色空间。

YUV同样使用三个分量来存储数据,他们分别是

Y:用于表示 明亮度(Luminance或Luma);

U/V:用于表示色度(Chrominance或Chroma);

Y其实就是我们常说的灰度值,是图片的总体轮廓,而U和V则用于描述色彩颜色和颜色饱和度。

视频拍摄、存储、输出流程

1. 摄像头从自然界采集到的RGB 数据,传给主控;

2. 主控取得RGB 数据后,由于数据量太大,预算和存储都费劲,于是前辈们就把RGB 转换成YUV,怎么转换呢? 就需要我们用到的标准了 BT709/BT601。

简单来说讲,BT709/BT601 定义一个RGB<->YUV的标准规范,大家都按照标准来做事,那么不同厂家生产出来的产品才能对接上。

3. 我们的LCD 最终显示出来的也是RGB 颜色,那么主控的数据想要在LCD 显示出来,就的吧YUV 转成RGB啊,这个转换可以再主控那边实现,也可在LCD 端实现。

转换的时候,也得根据标准BT709/BT601 来转换。

光学镜头 ->光学芯片sensor把光信号转换成RGB -> 转给主控 -> 主控把RGB 按照一定标准(BT709/BT601)转化成YUV -> 编码(H264)存储->解码得到YUV 数据 -> 主控把YUV 按照一定标准(BT709/BT601)转化成RGB -> LCD 显示RGB 数据。

4. BT709/BT601

BT601是SDTV的数据结构,BT656是SDTV的接口定义;

BT709是HDTV的数据结构,BT1120是HDTV的接口定义;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值