音视频基础概念
音视频之所以叫音视频是因为他由音频和视频构成,我们平时看的视频其实就是音视频。本文将记录笔者在学习音视频遇到的概念,如果你和笔者一样对音视频并没有接触太多,那么下面的笔记将会帮你认识音视频。
描述概念
PCM 即音频裸数据量大,存在本地稍微可以接受,但是要在网络中实时在线传播的话就太大了,因此就有了音频压缩编码的存在。压缩编码实际上就是 压缩冗余信号 ,冗余信号指的是人耳听不到的音频信号(20Hz ~ 20kHz范围以外)。
PCM(Pulse Code Modulation,脉冲编码调制)是无损编码,也是音频裸数据,能够达到最大程度的高保真。
优点 :音源信息保存完整,音质好
缺点 :信息量大,体积大,冗余度过大
适用场合 :广泛用于素材保存及音乐欣赏
WAV(Waveform Audio File Format)是一种不会进行压缩操作的编码,他在 PCM 数据格式的前面加上了 44字节 ,分别用来描述 PCM 的采样率、声道数、数据格式等信息。
优点 :音质非常好,大量软件都支持
缺点 :信息量大,体积大,冗余度过大
适用场合 :多媒体开发的中间文件、保存音乐和音效素材
MP3 具有不错的压缩比,使用 LAME 编码的中高码率的 MP3 文件,听感上非常接近 WAV 文件。
优点 :音质在 128 Kbps 以上表现还不错,压缩比比较高,兼容性高
缺点 :在 128 Kbps 及以下时,会出现明显的高频丢失
适用场合 :高比特率下对兼容性有要求的音乐欣赏
AAC 是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS、SBR等),衍生出了 LC-AAC、HE-AAC、HE-AAC v2 三种主要的编码格式:
优点 :在小于 128 Kbps 的码率下表现优异,支持多种音频声道组合,提供优质的音质
适用场合 :128 Kbps 以下的音频编码,多用于视频中的音频轨的编码
Ogg 在各种码率下大豆油比较优秀的表现,尤其在中低码率场景下。可以用更小的码率达到更好的音质,128 Kbps 的 Ogg 比 192 Kbps 甚至更高码率的 MP3 还要出色。但是它的兼容性不是很好,因此和 MP3 无法相提并论。
优点 :可用比 MP3 个更小的码率实现比 MP3 更好的音质,高低中码率下均有良好的表现
缺点 :软件硬件的兼容性不好
使用场合 :语音聊天的音频消息场景
一幅幅图像是由一个个像素点组成的,每个像素点都由3个子像素点组成。
像素点的数量就是分辨率,比如一个屏幕的分辨率是 1280 x 720 ,那么说明水平方向有 720 个像素点,垂直方向有 1280 个像素点,因此整个屏幕就有 1280 x 720 个像素点(注:这是不算子像素点的说法)。
位图的像素都分配有特定的位置和颜色值。每个像素的颜色信息由 RGB 组合或者灰度值表示。根据 位深度 ,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就越逼真,相应的数据量越大。
一个图像可以由 RGB 组成,这些 子像素点的常用表示方式 如下:
那么一张 1280 x 720 的 RGBA_8888 图像的大小就是:
YUV 主要应用于优化彩色视频信号的传输,使其向后兼容老实黑白电视。与 RGB 视频型号传输相比,最大的优点是占用极少的 频宽
表示方式 :YUV 的每个分量都使用一个字节(8位)来表示,所以取值范围是 0 ~ 255。
存储格式 :
采样范式 :YUV 图像的主流采样方式有如下三种:
YUV 4:4:4 采样,意味着 Y、U、V 三个分量的采样比例相同,因此在生成的图像里,每个像素的三个分量信息完整,都是 8 bits,也就是一个字节。
如下图所示(Y 分量用叉表示,UV 分量用圆圈表示):
这种采样方式的图像和 RGB 颜色模型的图像大小是一样,并没有达到节省带宽的目的,当将 RGB 图像转换为 YUV 图像时,也是先转换为 YUV 4:4:4 采样的图像。
YUV 4:2:2 采样,意味着 UV 分量是 Y 分量采样的一半,Y 分量和 UV 分量按照 2 : 1 的比例采样。每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一个采集一个。如下图所示(Y 分量用叉表示,UV 分量用圆圈表示):
两个图像共用一个 U、V 分量,因此YUV 4:2:2 采样的图像比 RGB 模型图像节省了三分之一的存储空间,在传输时占用的带宽也会随之减少。
YUV 4:2:0 采样,并不是指只采样 U 分量而不采样 V 分量。而是指,在每一行扫描时,只扫描一种色度分量(U 或者 V),和 Y 分量按照 2:1 的方式采样。每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一行按照 2 : 1 进行采样。对于每个色度分量来说,它的水平方向和竖直方向的采样和 Y 分量相比都是 2:1 。如下图所示(Y 分量用叉表示,UV 分量用圆圈表示):
四个图像共用一个 U、V 分量,因此YUV 4:2:0 采样的图像比 RGB 模型图像节省了一半的存储空间,因此它也是比较主流的采样方式。
RGB 到 YUV 的转换,就是将图像所有像素点的 R、G、B 分量转换到 Y、U、V 分量。对于显示器来说,它是通过 RGB 模型来显示图像的,而在传输图像数据时又是使用 YUV 模型(可节省带宽),因此就有:
视频中的每帧都代表着一幅静止的图像
相较于音频数据,视屏数据有极强的相关性,也就是说有大量的冗余信息,包括空间上的冗余信息和时间上的冗余信息。
帧间编码技术 -> 去除时间上的冗余信息
帧内编码技术 -> 去除空间上的冗余信息
MPEG 算法是适用于动态视频的压缩算法,它除了对单幅图像进行编码外,还利用图像序列中的相关原则去除冗余,大大提高了视频的压缩比。
ITU-T 制定的 H.261、H.262、H.263、H.264⼀系列视频编码标准是⼀套单独的体系。其中,H.264 集中了以往标准的所有优点,并吸取了以往标准的经验,采⽤的是简洁设计,这使得它⽐ Mpeg4 更容易推⼴。现在使⽤最多的就是 H.264 标准,H.264 创造了 多参考帧 、 多块类型 、 整数变换 、 帧内预测 等新的压缩技术,使⽤了更精细的分像素运动⽮量(1/4、1/8)和新⼀代的环路滤波器,这使得压缩性能得到⼤⼤提⾼,系统也变得更加完善。
GOP( Group Of Picture ),表示一组图片,两个I帧之间就形成的一组图片。通常在为编码器设置参数的时候,必须要设置 gop_size 的值,其代表的是两个I帧之间的帧数目。
《音视频开发进阶指南》
一文读懂 YUV 的采样与格式
移动端图片格式调研