目录
音视频基础知识
1 相关术语
1.1 帧
帧(Frame):
视频或者动画中的每一张画面
帧数:
帧生成数量
帧率( Frame rate):
每秒显示帧数,测量单位为“每秒显示帧数”( Frame per Second, FPS)或“赫兹”( Hz)
帧率= 帧数/时间,单位为帧每秒(f/s, frames per second, fps)
常见帧率有 15fps、24fps、30fps、60fps,其中被用的最为广泛的是 30fps ,但仅仅是流畅,一般超过75fps人眼就不易察觉帧率的变化。
1.2 分辨率
指一帧图像包含的像素的多少,常见有1280x720(720P),1920X1080(1080P)等规格。『分辨率』影响图像大小,且与之成正比:『分辨率』越高,图像越大;反之,图像越小。
1.3 刷新率
刷新率一般指垂直刷新率,是指电子束对屏幕上的图像重复扫描的次数。刷新率越高,所显示的图象(画面)稳定性就越好。
以赫兹( Hz)为单位
帧率大小取决于显卡的性能,刷新率大小取决于屏幕性能。体验上二者的匹配也能达到比较自然流畅的效果。但互二者不影响,即刷新率仅是对屏幕而言的,其他硬件无法影响刷新率。
水平刷新率一般称水平扫描频率,指电子枪按照从左至右,从上至下的顺序扫过所有像素(Pixel)的过程中,每秒扫描的水平线数。
1.4 码率
码率就是比特率,视频码率就是单位时间传送的数据位数,常见单位KBPS(千位每秒)和MBPS(兆位每秒)
1.5 画质
画质的好坏,取决于上述属性和编码算法,并非码率越高,画质一定好,当然有效比特数量越多,画质好的潜力越大。
1.6 采样率
采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
对音频来说,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样频率,还可以达到DVD的音质。
1.7 量化精度
量化,就是把各个时刻的采样值用计算机能识别的二进制来表示。量化后的数值与原来的采样值是有误差的,这个数值就是量化精度。
量化精度单位是Bit,表示模拟信号转化成数字信号的存储比特位数,如CD标准的量化精度是16Bit,DVD标准的量化精度是24Bit。
1.8 视频帧(I帧、P帧、B帧)
- I帧:帧内编码帧(Intra Picture),俗称关键帧。I帧就是一帧画面的完整保留,一般来说处理I帧不需要依赖前后帧信息。**I帧就是平常概念上的完整的一个画面。**仅I帧的压缩率,可以达到7。
- P帧:predictive-frame(predictive-frame),又称前向预测编码帧,俗称(前向)差别帧、预测帧。P帧是当前帧画面与前一帧(I帧或P帧)的差别,解码时就是用前一帧叠加上P帧得到最终画面。所以P帧存储的不是一幅完整的画面,而是存储当前帧画面与前一帧的差别数据。P帧的压缩率约在20左右,几乎所有的H264编码流都带有大量的P帧。
- B帧: 双向预测内插编码帧(bi-directional interpolatedprediction frame),俗称双向差别帧、双向预测帧。B帧非常特殊,它存储的是本帧与前后帧的差别,因此带有B帧的视频在解码时的逻辑会更复杂些,CPU开销会更大。B帧的压缩率能够达到50甚至更高,在压缩率指标上还是很客观的。
- IDR帧:即时解码刷新(Instantaneous Decoding Refresh),是特殊的I帧,作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码.
1.9 音频帧
音频帧没有统一的标准,由其编码标准定义
对于PCM(未经编码的音频数据)来说,根据采样率和采样精度就可以播放
1.10 声道
指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。
声卡所支持的声道数是衡量声卡档次的重要指标之一,从单声道到最新的环绕立体声。
- 单声道:即一个声源
- 双声道:两个左右对称的声源
- 4声道:四声道环绕规定了4个发音点:前左、前右,后左、后右,听众则被包围在这中间。同时还建议增加一个低音音箱,以加强对低频信号的回放处理(4.1声道)。
- 5.1声道:5.1声音系统来源于4.1环绕,不同之处在于它增加了一个中置单元。这个中置单元负责传送低于80Hz的声音信号,在欣赏影片时有利于加强人声,把对话集中在整个声场的中部,以增加整体效果。
- 7.1声道:它在5.1声道的基础上增加了后中声场声道,同时它也不同于普通6.1声道声场,因为7.1声道有双路后中置,而这双路后中置的最大作用就是为了防止听者因为没有坐在皇帝位而在听觉上产生声场的偏差。
1.11 PTS、DTS
- DTS:解码时间戳(Decoding Time Stamp),这个时间戳的意义在于告诉解码器该在什么时候解码这一帧的数据。
- PTS:显示时间戳(Presentation Time Stamp),这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。
这两个概念在做视音频同步的时候特别重要,尤其是PTS,目前常见的视音频同步的三种策略“同步到音频的PTS”、“同步到视频的PTS”和“同步到系统/外部时钟”,都是基于PTS完成的。
1.12 RGB 和 YUV
RGB是色彩空间模型,通过红(RED )、绿(GREEN)、蓝 (BLUE)三个通道的数值(0-255)叠加而成,三原色组成所有不同颜色。
YUV是一种颜色编码方法,Y表示亮度,U V表示色差信息(构成颜色的两个分量)
2 音视频编码
2.1 视频编码标准
视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。
如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。视频编码是视音频技术中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。
常见的音频视频编码主要是以下两个系列:
2.1.1 MPEG系列:
MPEG 系列标准是由ISO/IEC制定的,主要应用于视频存储(DVD)、广播电视、互联网或无线网络的流媒体等。
由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发,视频编码方面主要是Mpeg1(vcd)、Mpeg2(DVD)、Mpeg4(DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC;
MPEG系列包括音频编码方面,主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(mp3)、MPEG-2 AAC 、MPEG-4 AAC等。注意:DVD音频没有采用Mpeg的。
2.1.2 H.26X系列:
主要应用于实时视频通信领域,如视频会议。
由ITU(国际电传视讯联盟)主导,侧重网络传输,(注只是视频编码),ITU-T 的标准包括 H.261、H.263、H.264;。
如今广泛使用的 H.264 视频压缩标准可能不能够满足应用需要,应该由另一种更高的分辨率、更高的压缩率以及更高质量的编码标准所替代。ISO/IEC 动态图像专家组和ITU-T视频编码的专家组共同建立了视频编码合作小组,出台了H.265/HEVC标准。H.265的压缩有了显著提高,一样质量的编码视频能节省40%至50%的码流,还提高了并行机制以及网络输入机制 。
2.1.3 关系
两个组织也共同制定了一些标准,H.262标准等同于 MPEG-2的视频编码标准,而H.264标准则被纳入 MPEG-4的第10部分。
2.2 音频编码
音频编码的主要作用是将音频采样数据(如PCM格式等)压缩成为音频码流,从而降低音频的数据量。
音频编码也是互联网视音频技术中一个重要的技术。但是一般情况下音频的数据量要远小于视频的数据量,因而即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。
主要音频编码一览
名称 | 推出机构 | 推出时间 | 目前使用领域 |
AAC | MPEG | 1997 | 各个领域(新) |
AC-3 | Dolby Inc. | 1992 | 电影 |
MP3 | MPEG | 1993 | 各个领域(旧) |
WMA | Microsoft Inc. | 1999 | 微软平台 |
2.3 封装格式
封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。
主要封装格式一览
名称 | 推出机构 | 流媒体 | 支持的视频编码 | 支持的音频编码 | 目前使用领域 |
AVI | Microsoft Inc. | 不支持 | 几乎所有格式 | 几乎所有格式 | BT下载影视 |
MP4 | MPEG | 支持 | MPEG-2, MPEG-4, H.264, H.263等 | AAC, MPEG-1 Layers I, II, III, AC-3等 | 互联网视频网站 |
TS | MPEG | 支持 | MPEG-1, MPEG-2, MPEG-4, H.264 | MPEG-1 Layers I, II, III, AAC, | IPTV,数字电视 |
FLV | Adobe Inc. | 支持 | Sorenson, VP6, H.264 | MP3, ADPCM, Linear PCM, AAC等 | 互联网视频网站 |
MKV | CoreCodec Inc. | 支持 | 几乎所有格式 | 几乎所有格式 | 互联网视频网站 |
RMVB | Real Networks Inc. | 支持 | RealVideo 8, 9, 10 | AAC, Cook Codec, RealAudio Lossless | BT下载影视 |
3 流媒体
流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,不使用流媒体技术,就必须在使用前下载整个媒体文件。
主要流媒体协议一览
名称(应用层协议) | 推出机构 | 传输层协议 | 客户端 | 目前使用领域 |
RTSP+RTP | IETF | TCP+UDP | VLC, WMP | IPTV |
RTMP | Adobe Inc. | TCP | Flash | 互联网直播 |
RTMFP | Adobe Inc. | UDP | Flash | 互联网直播 |
MMS | Microsoft Inc. | TCP/UDP | WMP | 互联网直播+点播 |
HTTP | WWW+IETF | TCP | Flash | 互联网点播 |
RTSP+RTP经常用于IPTV领域。因为其采用UDP传输视音频,支持组播,效率较高。但其缺点是网络不好的情况下可能会丢包,影响视频观看质量。因而围绕IPTV的视频质量的研究还是挺多的。
因为互联网网络环境的不稳定性,RTSP+RTP较少用于互联网视音频传输。互联网视频服务通常采用TCP作为其流媒体的传输层协议,因而像RTMP,MMS,HTTP这类的协议广泛用于互联网视音频服务之中。这类协议不会发生丢包,因而保证了视频的质量,但是传输的效率会相对低一些。
4 视频播放原理
播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议。过程如图所示。
解协议:将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。
解封装:将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。
解码:将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。
视音频同步:根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。