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

Posted anyRTC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享| 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色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。

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

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

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

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

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

四,总结

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

以上是关于技术分享| RTC通讯中常用的图像格式的主要内容,如果未能解决你的问题,请参考以下文章

技术分享| RTC通讯中常用的音频格式

经验分享RTC 技术系列之视频编解码

技术分享| anyRTC服务单端口设计

新浪微博技术分享:微博实时直播答题的百万高并发架构实践

马志强:语音识别技术研究进展和应用落地分享丨RTC Dev Meetup

腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践