RGB 的采样和存储【音视频基础知识】

2022/10/14

在前文《RTC 应用中最常使用的色彩空间之 RGB 和 YUV》中,我们已经知道,图像由像素组成,而像素通过记录色彩空间各分量呈现各种各样的色彩。对于 RGB 色彩空间,其三个分量 R(红)、G(绿)、B(蓝),它们之间具有相关性,对于色彩的表示来说缺一不可。

所以,RGB 的每个像素都会完整采样三个分量,采样比例为 1:1:1(指每个分量的采样数,而非每个分量的数值)。也正是因为这种采样要求,RGB 颜色空间在采集上不好进行数据压缩,不太适用于视频图像的编码、传输。

RGB 三个分量采样后,在内存中是依次排列存储的。但是,它们的存储顺序不一定是字面描述的 R、G、B。不同的应用场景,因处理逻辑差异可能会使用不同的规则。比如,MATLAB 使用的存储顺序为 R、G、B,而 OpenCV 则使用 B、G、R,如下图所示:

R、G、B 顺序
B、G、R 顺序

我们把 RGB 字面描述的分量顺序,称为字面序,将其实际存储的分量顺序,称为字节序。确定好色彩空间存储的字节序,是正确处理图像的前提,如果随意对各分量进行读取,可能会导致处理后的颜色出现异常。下图,即为使用 RGB 顺序读取字节序为 BGR 的图片的效果,此时,由于将 B、R 分量混淆了,得到了错误的图片颜色。

左一:原图,存储格式为 BGR;左二:使用 RGB 格式进行读取

另外,大家还也会接触到 BGRA 这样的存储格式(比如在 iOS、MAC 上处理摄像头数据),其中的 A ,表示在 RGB 三个通道基础上,增加了一个透明度通道 Alpha,用于调整色彩的透明度,实现更丰富的色彩效果。对于增加了透明度的RGB,同样需要留意其实际的存储顺序,常见的有 BGRA、RGBA、ABGR 和 ARGB 等等。

总之,RGB 的采样格式、存储格式相对比较简单,我们也不做过多的展开。正如上篇文章所述,在视频处理领域,YUV 色彩空间才是主角,它的采样格式、存储格式相对于 RGB 也更加复杂

最新文章
语音 AI 正引发巨大的投资兴趣
2025/06/30
什么是互动直播?互动直播优势、应用场景及实现方式
2025/06/30
AI数字人直播:虚拟主播如何改变游戏规则
2025/06/27
企业如何利用 AI Voice Agent 进行协作和连接?
2025/06/26
多模态AI:定义、工作原理、趋势及技术挑战
2025/06/25
扫一扫,获取更多服务与支持
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们