写点什么

技术分享| RTC 通讯中常用的图像格式

发布于: 刚刚

一,概述

在 RTC 通讯过程中,图像需要采集、美化、压缩编码、传输、解码、显示,这个过程中会涉及到很多图像格式,常用的如 YUV、RGB,其中 YUV 和 RGB 各自也有很多分类。今天我们就详细的介绍一下这些图像格式。

二,YUV 格式

YUV 是视频、图片、相机等应用中使用的一类图像格式,是所有“YUV”像素格式共有的颜色空间的名称。 与 RGB 格式(红 - 绿 - 蓝)不同,YUV 是用一个称为 Y(相当于灰度)的“亮度”分量和两个“色度”分量表示,分别称为 U(蓝色投影)和 V(红色投影),由此得名。


YUV 也可以称为 YCbCr,虽然这些术语意味着略有不同,但它们往往会混淆并可互换使用。

1,什么是 YCbCr

Y 表示亮度,CbCr 表示颜色。怎么表示颜色,可以看下面这幅坐标图:



Y 表示亮度分量:如果只显示 Y 的话,图像看起来会是一张黑白照。


U(Cb)表示色度分量:是照片蓝色部分去掉亮度(Y)。


V(Cr)表示色度分量:是照片红色部分去掉亮度(Y)。


要说清楚 YUV,我们时刻需要记住要从 bit 数,和存储结构两方面考察,所以得分别说清楚这两点:


YUV 的采样格式: 空间-间:不同空间,即描述一个像素的 bit 数不同,比如 yuv444,yuv422,yuv411,yuv420。即我们在采集图片、视频帧时,是如何获取每个像素的 Y、U、V 三个分量的。


YUV 的存储格式: 空间-内:相同空间,即描述一个像素的 bit 数相同,但是存储方式不同,比如对于 yuv420 而言,又可细分为 yuv420p,yuv420sp,nv21,nv12,yv12,yu12,I420。即 Y、U、V 三个分量的值,是以什么方式存储在内存或者文件中的。

2,分类标准

首先,我们可以将 YUV 格式按照数据大小分为三个格式,YUV 420,YUV 422,YUV 444。由于人眼对 Y 的敏感度远超于对 U 和 V 的敏感,所以有时候可以多个 Y 分量共用一组 UV,这样既可以极大得节省空间,又可以不太损失质量。这三种格式就是按照人眼的特性制定的。


  • YUV 420,由 4 个 Y 分量共用一套 UV 分量

  • YUV 422,由 2 个 Y 分量共用一套 UV 分量

  • YUV 444,不共用,一个 Y 分量使用一套 UV 分量


按照多个 Y 分量共用一个 UV 的方式,我们可以把 YUV 分为 420,422,444 三种类型,而在这三种类型之下,我们又可以按照 YUV 的排列储存顺序,将其细分为好多种格式,这些格式数量繁多,又不好记忆,这为我们学习过程中造成了不少困难。下面我就为大家一一介绍。


首先,我们将可以按照 YUV 的排列方式,再次将 YUV 分成三个大类,Planar,Semi-Planar 和 Packed。


  • Planar YUV 三个分量分开存放

  • Semi-Planar Y 分量单独存放,UV 分量交错存放

  • Packed YUV 三个分量全部交错存放


注意:Interleaved 是属于 Packed 的,但是在 422 中,用 Interleaved 更加形象一些。


按照这三种方式,我们就可以将 YUV 格式进行比较细致的分类了。


具体分类我们总结了一张图:


三,RGB

那么什么是 RGB 图像格式呢,其实他并不陌生,从初中开始接触的色光的三原色,告诉我们我们可以看到的光可以由这三种颜色按一定的比例去混合得到;后来在 HTML 以及 Android 开发中设置元素/控件的颜色时,可以通过一串数字,得到某个特定的颜色。这就是 RGB 的应用。


RGB 色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB 即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。


其原理是: RGB 是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越混合亮度越高,即加法混合。



红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。


红、绿、蓝三个颜色通道每种色各分为 256 阶亮度,在 0 时“灯”最弱——是关掉的,而在 255 时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为 0 时,是最暗的黑色调;三色灰度都为 255 时,是最亮的白色调。


RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于照明光、电视和计算机显示器。例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生黄、青和紫。


下图是常用的 RGB 格式的总结:


四,总结

数字图像已经发展了近百年的时间,不同的图像格式在这个发展过程中也不断涌现,图像格式有很多很多种类,因此我们总结了一些常用图像格式类型分类,需要的小伙伴可以收藏,在开发的过程中可以进行快速查阅。

发布于: 刚刚阅读数: 2
用户头像

实时交互,万物互联! 2020.08.10 加入

实时交互,万物互联,全球实时互动云服务商领跑者!

评论

发布
暂无评论
技术分享| RTC通讯中常用的图像格式