RGB转YUV原理及代码验证

本文介绍了RGB颜色空间到YUV颜色空间的转换原理,以1920*1080的图像为例,详细解析了RGB24和YV12的数据结构差异,并探讨了数据量的节省。同时,提供了RGB转YUV的代码实现,帮助理解转换过程。
摘要由CSDN通过智能技术生成

        我们在视频数据传输前,都要使用相应的压缩算法来转换压缩数据,比如压缩成H264和H265,这两种基本上都是在YUV颜色空间上进行的。但是如果采集源采集的数据不是YUV的,在压缩前就需要转换,例如摄像头采集的资源是RGB的,那么首先要转换为YUV,再进行压缩。

        在了解压缩算法之前,先看一下颜色空间转换的原理。以1920*1080的一帧图像为例RGB24的排列方式如下图所示:

每个像素点有三个字节组成分别表示R,G,B分量上的颜色值。在数据中的表示方式为一个像素 一个像素表示。字节流可以表述如下:

BGRBGRBGRBGRBGR……

|---------------1920*1080*3-------|

        每一个字母表示一个字节,也就是该颜色分量的数值,相邻的三个BGR字节表示一个像素点。在我们做计算时,通常一次取三个字节,也就是一个像素点。

相应的YV12的排列方式如下图所示:

        每个像素点都有一个Y分量,每隔一列就有一个U或者V分量,U和V交替出现。YV12的字节流表示方式和RGB24有很大区别,YV12并不是按照像素依次排列的,而是先放置Y空间,然后放置整个V空间,最后放置U空间,那么字节流如下所示:

YYYYYYY……VVVV……UUUU……

|-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值