音视频相关基础知识

音视频相关基础知识

视频编码

而编码主要从两个维度压缩数据:
1、单一图像某一个区域的相邻像素相似,如一片红色区域只记录红色的色值以及区域,不记录这个区域的每一个像素点。
2、相邻的的两张图像比较相似,对图像方法的第一帧进行编码,然后用某种方式描述接下来的帧相对于附近的帧有什么区别。

运动静止图像专家组的 M-JPEG

M-JPEG 是一种图像压缩编码标准,是 Motion-JPEG 的简称,JPEG 标准主要是用来处理静止图像,而 M-JPEG 把运动的视频序列作为连续的静止图像来处理,这种压缩方式单独完整地压缩每一帧,在编辑过程中可随机存储每一帧,可进行精确到帧的编辑,M-JPEG 只对帧内的空间冗余进行压缩,不对帧间的时间冗余进行压缩,故压缩效率不高。

国际标准化组织(ISO)运动图像专家组的 MPEG 系列标准

由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发 视频编码方面主要是Mpeg1(vcd)、Mpeg2(DVD)、Mpeg4(DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC;音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(mp3)、MPEG-2 AAC 、MPEG-4 AAC等。注意:DVD音频没有采用Mpeg的。

MPEG 标准的视频压缩编码技术主要利用了具有运动补偿的帧间压缩编码技术以减小时间冗余度,利用 DCT 技术以减小图像的空间冗余度,利用熵编码则在信息表示方面减小了统计冗余度。这几种技术的综合运用,大大增强了压缩性能。

国际电联(ITU-T)的 H.26X

  • H.261:第一个实用的数字视频解码标准,采用的压缩算法是运动补偿帧间预测与分块 DCT 相结合的混合编码,其运动补偿使用用全像素精度和环路滤波,支持 CIF 和 QCIF 两种分辨率。
  • H.263:H.263 与 H.261 编码算法一样,但是做了一点改善,使得 H.263 标准在低码率下能够提供比 H.261 更好的图像效果,其运动补偿使用半像素精度,支持 CIF、QCIF 、SQCIF、4CIF和16CIF 五种分辨率。
  • H.264:H.264则是由两个组织 ISO 和 ITU-T 联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是 ITU-T 的H.264,又是 ISO/IEC 的 MPEG-4 高级视频编码(Advanced Video Coding,AVC)的第 10 部分,因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是 ISO/IEC 14496-10,都是指 H.264,H.264 是基于传统框架的混合编码系统,做了局部优化,注重编码效率和可靠性。H.264 在具有高压缩比的同时还拥有高质量流畅的图像,经过 H.264 压缩的视频数据,在网络传输过程中所需要的带宽更少,是压缩率最高的视频压缩标准。

音频编码

常见的音频编解码标准如下:

  • ITU:G.711、G.729 等
  • MPEG:MP3、AAC 等
  • 3GPP:AMR、AMR-WB、AMR-WB+等
  • 还有企业制定的标准,如 Dolby AC-3、DTS 、WMA 等

常见的介绍如下:

  • MP3(MPEG-1 audio layer 3):一种音频压缩技术,它被设计用来大幅度地降低音频数据量,利用 MPEG Audio Layer 3 的技术,将音乐以 1:10 甚至 1:12 的压缩率,压缩成容量较小的文件,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降,它是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号),对低频信号使用小压缩比,保证信号不失真,这样就相当于抛弃人耳基本听不到的高频声音,只保留能听到的低频部分,从而对音频进行一定压缩,此外 MP3 属于有损压缩的文件格式。
  • AAC:Advanced Audio Coding 的缩写,最初是基于 MPEG-2 的音频编码技术,MPEG-4 出现后,AAC 重新集成了其特性,且加入了SBR 技术和 PS 技术,为了区别于传统的 MPEG-2 AAC 又称为MPEG-4 AAC,AAC 是一种专为声音数据设计的文件压缩格式,相较 MP3,AAC 格式的音质更佳,文件更小,但是 AAC 是一种有损压缩格式,随着大容量设备的出现,其优势将越来越小。
  • WMA:Windows Media Audio 的缩写,是微软公司开发的一系列音频编解码器,也指相应的数字音频编码格式,WMA 包括四种不同的编解码器:WMA,原始的WMA编解码器,作为 MP3 和 RealAudio 编解码器的竞争者;WMA Pro,支持更多声道和更高质量的音频[;WMA Lossless,无损编解码器;WMA Voice,用于储存语音,使用的是低码率压缩。一些使用 Windows Media Audio 编码格式编码其所有内容的纯音频 ASF 文件也使用 WMA 作为扩展名,其特点是支持加密,非法拷贝到本地是无法播放的,WMA 也属于有损压缩的文件格式。

常见的多媒体框架及解决方案

常见的多媒体框架及解决方案有 VLC 、 FFmpeg 、 GStream 等,具体如下:

  • VLC :即 Video LAN Client,是一款*、开源的跨平台多媒体播放器及框架 。

  • FFmpeg:多媒体解决方案,不是多媒体框架,广泛用于音视频开发中。

  • GStreamer :一套构建流媒体应用的开源多媒体框架 。

颜色空间

  • YUV:一种颜色编码方法,一般使用在在影像处理组件中,YUV 在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽,其中 Y 表示明亮度、U 表示色度、V 表示浓度,Y′UV、YUV、YCbCr、YPbPr 所指涉的范围,常有混淆或重叠的情况。从历史的演变来说,其中 YUV 和 Y’UV 通常用来编码电视的模拟信号,而 YCbCr 则是用来描述数字的影像信号,适合视频与图片压缩以及传输,例如 MPEG、JPEG,现在 YUV 通常已经在电脑系统上广泛使用。
  • RGB:原色光模式,又称 RGB 颜色模型或红绿蓝颜色模型,是一种加色模型,将红(Red)、绿(Green)、[蓝(Blue)三原色的色光以不同的比例相加,以合成产生各种色彩光,目前的大多数显示器都采用 RGB 这种颜色标准。

YUV 主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视,与 RGB 视频信号传输相比,它最大的优点在于只需占用极少的带宽。

RGB24/RGB32/I420(YUV)

一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width× heighth ×3 Byte,RGB32的size=width× heighth ×4,如果是I420(即YUV标准格式4:2:0)的数据量是 size=width× heighth ×1.5 Byte。
X264在进行编码的时候需要标准的YUV(4:2:0)。

I420/YV12

YV12和I420基本上是一样的,就是UV的顺序不同。
YV12 : 亮度(行×列) + V(行×列/4) + U(行×列/4)
I420 : 亮度(行×列) + U(行×列/4) + V(行×列/4)

YUV420

YUV,是一种颜色编码方法。常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。
“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

YUV420格式是指,每个像素都保留一个Y(亮度)分量,而在水平方向上,不是每行都取U和V分量,而是一行只取U分量,则其接着一行就只取V分量,以此重复(即4:2:0, 4:0:2, 4:2:0, 4:0:2 …),所以420不是指没有V,而是指一行采样只取U,另一行采样只取V。在取U和V时,每两个Y之间取一个U或V。但从4x4矩阵列来看,每4个矩阵点Y区域中,只有一个U和V,所以它们的比值是4:1。所以对于一个像素,RGB需要8 * 3 = 24位,即占3个字节;而YUV420P,8 + 8/4 + 8/4 = 12位,即占2个字节,其中8指Y分量,8/4指U和V分量。

图像色彩模式

位图模式

位图模式是图像中最基本的格式,图像只有黑色和白色像素,是色彩模式中占有空间最小的,同样也叫做黑白图,它包含的信息量最少,无法包含图像中的细节,相当于只有0或者1
一副彩色图如果要转换成黑白模式,则一般不能直接转换,需要首先将图像转换成灰度模式

灰度模式

灰度模式即使用单一色调来表示图像,与位图模式不同,不像位图只有0和1,使用256级的灰度来表示图像,一个像素相当于占用8为一个字节,每个像素值使用0到255的亮度值代表,其中0为黑色,255为白色,相当于从黑->灰->白的过度,通常我们所说的黑白照片就是这种模式,与位图模式相比,能表现出一定的细节,占用空间也比位图模式较大

RGB模式

RGB模式为我们经常见到的,被称为真色彩。RGB模式的图像有3个颜色通道,分布为红(Red),绿(Green)和蓝(Bule),每个都占用8位一个字节来表示颜色信息,这样每个颜色的取值范围为0~255,那么就三种颜色就可以有多种组合
当三种基色的值相等是,表现出为灰色,三种颜色都为255即为白色,三种颜色都为0,即为黑色
音视频相关基础知识

RGB模式的图像占用空间要比位图,灰度图都要大,但表现出的细节更加明显

CMYK模式

CMYK模式被称为印刷色彩模式,主要是来源于印刷行业,以打印油墨在纸张上的光线吸收特性为基础,与RGB类似,也是使用三种颜色,分别为青色(Cyan),品红色(Magenta),黄色(Yellow),以及黑色(Black)
与RGB不同的是:RGB模式依靠的是自身发光的色彩模式,而CMYK是一种依靠反光的色彩模式。
音视频相关基础知识

HSB模式

是根据日常生活中人眼的视觉对色彩的观察得而制定的一套色彩模式,最接近与人类对色彩的辨认的思考方式,所有的颜色都是用色彩三属性来描述

H:(色相):是指从物体反射或透过物体传播的颜色
S:(饱和度):是指颜色的强度或纯度,表示色相中灰色成分所占的比例
B:(亮度):是指颜色对相对明暗程度,通常 100%定义为白色;0%为黑色 

除了上述以上之外,还有索引模式,多通道模式等等不再介绍

YUV格式

除了上述图像模式之外,由于历史原因大部分摄像头输入的图片格式都是YUV格式,开始主要用于电视系统以及模拟视频领域。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。如果没用UV信息,只有Y信息,也可以进行成像不过只是黑白的,这样就能很好解决彩色电视与黑白电视的兼容问题,与RGB相比,YUV占用带宽较少,目前摄像头输出格式普遍采用YUV格式。
而在图像的处理过程中,其实很少使用YUV格式,一般都需要转成RGB格式或者灰度图格式进行转换,而opencv的cvtColor()函数支持这种转换

帧率

帧率是用于测量显示帧数的量度。单位为「每秒显示帧数」(Frame per Second,FPS)或「赫兹,Hz」,表示每秒的帧数(FPS)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数,高的帧率可以得到更流畅、更逼真的动画,一般来说 30fps 就是可以接受的,但是将性能提升至 60fps 则可以明显提升交互感和逼真感,但是一般来说超过 75fps 一般就不容易察觉到有明显的流畅度提升了,如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。

分辨率

视频分辨率是指视频成像产品所形成的图像大小或尺寸,常见的 1080P、4K 等有代表什么呢,P 本身的含义是逐行扫描,表示视频像素的总行数,1080P 表示总共有 1080 行的像素数,而 K 表示视频像素的总列数,4K 表示有 4000 列的像素数,通常来说,1080P 就是指 1080 x 1920 的分辨率,4 k 指 3840 x 2160 的分辨率。

刷新率

刷新率就是屏幕每秒画面被刷新的次数,刷新率分为垂直刷新率和水平刷新率,一般提到的刷新率通常指垂直刷新率,垂直刷新率表示屏幕的图象每秒钟重绘多少次,也就是每秒钟屏幕刷新的次数,以 Hz(赫兹)为单位,刷新率越高越好,图象就越稳定,图像显示就越自然清晰,对眼睛的影响也越小,刷新频率越低,图像闪烁和抖动的就越厉害,眼睛疲劳得就越快,一般来说,如能达到 80Hz 以上的刷新频率就可完全消除图像闪烁和抖动感,眼睛也不会太容易疲劳。

编码格式

针对音视频来说,编码格式对应的就是音频编码和视频编码,对照前面的音频编码标准和视频编码标准,每种编码标准都对应的编码算法,其目的是通过一定编码算法实现数据的压缩、减少数据的冗余。

封装格式

直接看下百度百科的关于封装格式的介绍,封装格式(也叫容器),就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者大家把它当成一个放视频轨和音频轨的文件夹也可以,说得通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个碗,或者一个锅,用来盛放饭菜的容器。

码率

码率,也就是比特率(Bit rate),指单位时间内传输或处理的比特的数量,单位为 bps(bit per second)也可表示为 b/s,比特率越高,单位时间传送的数据量(位数)越大,多媒体行业在指音频或视频在单位时间内的数据传输率时通常使用码率,单位是 kbps,一般来说,如果是 1M 的宽带,在网上只能看码流不超过 125kbps 的视频,超过 125kbps 的视频只能等视频缓冲才能顺利观看。

码率一般分为固定码率和可变码率:

  • 固定码率会保证码流的码率恒定,但是会牺牲视频质量,比如为了保证码率恒定,某些图像丰富的内容就是失去某些图像细节而变得模糊。
  • 可变码率指的是输出码流的码率是可变的,因为视频信源本身的高峰信息量是变化的,从确保视频传输质量和充分利用信息的角度来说,可变码率视频编码才是最合理的。

码率的高低与视频质量和文件提交成正比,但当码率超过一定数值后,对视频质量没有影响。

采样率

采样率,表示每秒从连续信号中提取并组成离散信号的采样个数,用赫兹(Hz)来表示,采样率是指将模拟信号转换成数字信号时的采样频率,人耳能听到的声音一般在 20Hz~20KHz 之间,根据采样定理,采样频率大于信号中最高频率的 2 倍时,采样之后的数字信号便能完整的反应真实信号,常见的采样率如下:

  • 8000 Hz:电话所用采样率, 对于人的说话已经足够
  • 11025 Hz:AM调幅广播所用采样率
  • 22050 Hz 和 24,000 Hz:FM调频广播所用采样率
  • 44100Hz:音频CD,常用于 MPEG-1 音频(VCD,SVCD,MP3)所用采样率
  • 47,250 Hz:商用 PCM 录音机所用采样率
  • 48,000 Hz:miniDV、数字电视、DVD、DAT、电影和专业音频所用的数字声音所用采样率

CD 音乐的标准采样频率为 44.1KHz,这也是目前声卡与计算机作业间最常用的采样频率,目前比较盛行的蓝光的采样率就相当的高,达到了 192kHz。而目前的声卡,绝大多数都可以支持 44.1kHz、48kHz、96kHz,高端产品可支持 192kHz 甚至更高,总之,采样率越高,获得的声音文件质量越好,占用存储空间也就越大。

量化精度

声波在转换为数字信号的过程中不只有采样率影响原始声音的完整性,还有一个重要影响因素是量化精度,采样频率针对的是每秒钟所采样的数量,而量化精度则是对于声波的振幅进行切割,切割的数量是以最大振幅切成 2 的 n 次方计算,n 就是 bit 数,而 bit 数就是音频分辨率。

另外,bit 的数目还决定了声波振幅的范围(即动态范围,最大音量与最小音量的差距),如果这个位数越大,则能够表示的数值越大,描述波形更精确,每一个 Bit 的数据可以记录约等于 6dB 动态的信号,一般来说,16Bit 可以提供最大 96dB 的动态范围(加高频颤动后 只有 92dB),据此可以推断出 20Bit 可以达到 120dB 的动态范围,动态范围大了,会有什么好处呢?动态范围是指系统的输出噪音功率和最大不失真音量功率的比值,这个值越大,则系统可以承受很高的动态。

声道

声道指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量,常见声道有单声道、立体声道、4 声道、5.1 声道、7.1 声道等 ,具体如下:

  • 单声道:设置一个扬声器。
  • 立体声道:把单声道一个扬声器扩展为左右对称的两个扬声器,声音在录制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果,这种技术在音乐欣赏中显得尤为有用,听众可以清晰地分辨出各种乐器来自何方,从而使音乐更富想象力,更加接近临场感受。立体声技术广泛应用于自 Sound Blaster Pro 以后的大量声卡,成为了
    影响深远的音频标准。
  • 4 声道:4 声道环绕规定了 4 个发音点,分别是前左、前右、后左、后右,听众则被包围在中间,同时还建议增加一个低音音箱,以加强对低频信号的回放处理,这也就是如今 4.1 声道音箱系统广泛流行的原因,就整体效果而言,4 声道系统可以为听众带来来自多个不 同方向的声音环绕,可以获得身 临各种不同环境的昕觉感受,给用户以全新的体验。
  • 5.1 声道:其实 5.1 声道系统来源于 4.1 声道系统,将环绕声道一分为二,分为左环绕和右环绕,*位置增加重低音效果。
  • 7.1 声道:7.1 声道系统在 5.1 声道系统的基础上又增加了中左和中右两个发音点,简单来说就是在听者的周围建立起一套前后相对平衡的声场,增加了 后中声场声道。

部分参考资料

音视频基本概念
视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等
图片格式之YUV420 转RGB格式
fourcc

上一篇:第五章 顺序型编程进阶


下一篇:[译] HTML5 媒体源扩展(MSE):把影视制作级别的视频格式带入 Web