音视频基础知识

视频编码

所谓的视频编码就是指通过特定的压缩技术,将某个视频格式文件转换成另一种视频格式文件的方式。视频流传输中最重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的 M-JPEG 和国际标准化组织运动图像专家组的MPEG 系列标准,此外在互联网上被广泛应用的还有 Real-Networks的 RealVideo,微软公司的 WMV以及 Apple 公司的QuickTime等.

视频编码分为两个系列,分别介绍如下

  • MPEG系列:(由ISO[国际标准化组织]下属的 MPEG[运动图像专家组]开发)视频编码
    方面主要是MPEG1(VCD用的就是它),MPEG2(DVD使用),MPEG4(DVDRIP使
    用的都是它的变种,如DivX,XviD等)、MPEG4 AVC(正热门)。其还有音频编码方
    面,主要是MPEG Audio Layer 1/2,MPEG Audio Layer3(大名鼎鼎的MP3),MPEG-2AAC,MPEG-4 AAC等。注意,DVD音频没有采用MPEG的。
  • H.26X 系列:(由ITU[国际电传视讯联盟]主导,侧重网络传输,注意,只有视频编
    码)包括H.261,H.262,H.263,H.263+,H.263++,H.264(就是与MPEG4 AVC合作的结晶)

音频编码

常见的音频编码格式有AAC,MP3,AC3,下面分别进行介绍

  • AAC:一种专为声音数据设计的文件压缩格式,与MP3不同,它米用丁全新的算没
    行编码,更加高效,具有更高的“性价比”利用 AAC格式,在感觉声音质量没有
    显降低的前提下,可使文件更加小巧。苹果iPod,诺基亚手机也支持AAC格式的音
    文件.,AAC 的优点是,相对于 MP3,AAC 格式的音质更佳,文件更小。AAC 的敏
    是,AAC属于有损压缩格式,与时下流行的 APE,FLAC 等无损压缩格式相比音质友
    在“本质上”的差距:加之,传输速度更快的USB 3.0和16GB以上大谷量MP3正大加速普及,这也使得AAC头上“小巧”的光环逐渐暗淡。
  • MP3:MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面
    (Moving Picture Experts Group Audio Layer III),简称为MP3.它被设计用来大幅度地
    降低音频数据量。利用MP3技术,将音乐以1:10甚至1:12的压缩率,压缩成容量
    较小的文件,而对于大多数用户来说,重放的音质与最初的不压缩音频相比没有明昆
    下降。MP3的特点是,其利用人耳对高频声音信号不敏感的特性,将时域波形信号转
    换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频信号使
    用大压缩率(甚至忽略信号),对低频信号使用小压缩率,保证信号不失真。 这样一来
    就相当于抛弃人耳基本听不到的高频声音,只保留能听到的低频部分,从而将声音用1:10甚至1:12的压缩率压缩。
  • AC3:全称为 Audio Coding Version3,是Dolby 实验室所发展的有损音频编码格式。
    了6个独立的声道而 Pro Logic 混合其环绕声道。AC3普及程度很高,以384~448kb/s
    AC3被广泛应用于5.1声道,是Dolby Pro Logic的继承者,不同的地方在于 AC3提供
    的码率应用于激光唱片和 DVD,也经常以640kb/s的码率广泛应用于电影院.Dolby
    AC3 提供的环绕声系统由5个全频域声道和1个超低音声道组成,被称为5.1声道.5
    个全频域声道包括左前,中央,右前,左后,右后。超低音声道主要提供一些额外的低音信息,使一些场景(如爆炸,撞击等)的声音效果更好。

多媒体播放组件(Android)

  • MediaPlayer:播放控制
  • MediaCodec:音视颊编解码
  • OMX:多媒体部分采用的编解码标准
  • StageFright:它是一个框架,替代之前的 OpenCore,主要做了一个 OMX层,仅仅对
    OpenCore 9 omx-component部分做了引用.StageFright是在 MediaPlayerService这一层
    加入的,和 OpenCore 是并列的。StageFright在Android 中是以共享库的形式存在的(hibstagefright.so),其中的 module-NuPlayer/AwesomePlayer可用来播放音视频。
    NuPlayer/AwesomePlayer提供了许多API,可以让上层的应用程序(Java/JNI)调用。
  • AudiTrack:音频播放
  • 常见的多媒体框架及解决方案

  • VLC:即 Video LAN Client,是一款自由、开源的跨平台多媒体播放器及框架。
  • FFmpeg:多媒体解决方案,不是多媒体框架,广泛用于音视频开发中。
  • GStreamer:一套构建流媒体应用的开源多媒体框架

相关知识点

帧率

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

分辨率

视频分辨率是指视频成像产品所形成的图像大小或尺寸。

刷新率

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

编码格式

编码的目的是压缩数据量,采用编码算法压缩冗余数据。.常用的编码格式有如下这两种

  • MPEG(MPEG-2,MPEG-4)
  • H.26X(H.263,H.264/AVC,H.265/HEVC)

封装格式

把编码后的音视频数据以一定格式封装到一个容器,封装格式有MKV、AVI,TS等.

码率

码丰也蹴是比特率, 比特率是单位时间播放连续的媒体(如压缩后的音频或视频)的比特数量.比特率越高,希宽消耗得越多 比特(bit)就是二进制里面最小的单位,要么是0,要么是I.
文件大小(b)=码率(b/s)x时长(s)

DTS与PTS

  • DTS:即 Decode Time Stamp,主要用于标示读入内存中的比特流在什么时候开始送入解码器中进行解码
  • PTS:即 Presentation Time Stamp,主要用于度量解码后的视频帧什么时候被显示出来。

    YUV与 RGB

  • YUV:也被称作YCrCb,是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),
    是PAL和SECAM模拟彩色电视制式采用的颜色空间模型。其中的Y、U、V几个字母
    不是英文单词的首字母,其中 Y 代表亮度,UV 代表色差,U和V是构成颜色的两个分量.
  • RGB:是一种颜色空间模型,通过对红(R)、绿(G)蓝(B)3个颜色通道的变化以
    及它们相互之间的叠加来得到各式各样的颜色,RGB 即代表红、绿、蓝3个通道的颜色。

    视频帧及音频帧

  • I帧表示关键帧,你可以理解为这一帧画面的完整保留,解码时只需要本帧数据就可以完成(因为包含完整画面)。
  • P帧表示的是这一帧和之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的
    通面叠加上本帧定义的差别生成最终画面.(也就是差别帧,P 帧没有完整画面数据,只有与前一帧的画面差别的数据。)
  • B帧是双向差别帧, 也就是 B帧记录的是本帧与前后帧的差别(具体比较复杂,有4
    种情况),换言之, 要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,
    通过前后画面数据与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较吃力

音频帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单地认为 1帧就是编
码后的一幅图像。但音频帧跟编码格式相关,它是各个编码标准自己实现的

  • 对PCM(未经编码的音频数据)来说,它根本就不需要帧的概念,根据采样率和采样
    精度就可以播放。比如采样率为44.1Hz,采样精度为16位的音频,你可以算出比特率是4410016kb/s,每秒的音频数据是固定的4410016/8字节。
  • AMR 帧比较简单,它规定每20ms 的音频是1帧,每一帧音频都是独立的,有可能采用不同的编码算法以及不同的编码参数。
  • MP3 帧较复杂一些, 包含了更多的信息,比如采样率、比特率等各种参数。具体如下: 音频数据帧个数由文件大小和帧长决定,每一帧的长度可能不固定,也可能固定,由比特率决定,每一帧又分为帧头和数据实体两部分,帧头记录了 MP3的比特率,采样率,版本等信息,每一帧之间相互独立。

量化精度

量化精度表示可以将模拟信号分成多少个等级,量化精度越高,音乐的声压振幅越接近原音乐.量化精度的单位是 bit(比特),CD 标准的量化精度是16bit,DVD标准的量化精度是24bit.也可理解为一个采样点用多少 bit表示(8/16/24/32bit).

采样率

采样率指每秒音频采样点个数(8000/44 100Hz),采样率单位用Hz(赫兹)表示。

声道

声道(Sound Channel)是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。
常见声道有单声道,立体声道,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声道系统的基础上又增加了中左和中右两个发音点。简单来说,就是在听者的周围建立起一套前后相对平衡的声场,增加了后中声场声道