视频音频编码解码技术初探

视频音频编码解码技术初探

    • 视频播放器原理
    • 流媒体协议技术
    • 封装技术
    • 视频压缩编码技术
    • 音频压缩编码技术
    • 网络视音频服务

平时我们下载的电影、音乐文件有各种各样的格式,它们用不同的后缀来表示,如avi、rmvb、mp4、flv、mkv等,这些格
式代表了不同的封装格式。所谓的封装格式就是把视频数据和音频数据打包成一个文件的规范。

视频播放器原理

视频播放器播放一个网上的视频文件的经过:

Created with Raphaël 2.2.0 开始 解协议 解封装 解码视音频 视音频同步 结束

视频播放器播放一个本地文件的经过(不需要解协议):

Created with Raphaël 2.2.0 开始 解封装 解码视音频 视音频同步 结束
  • 解协议,就是将流媒体协议的数据,解析为相应的封装格式的数据的过程。视音频在网络上传输时,常常采用各种流媒体协议,如
    HTTP、RTMP、MMS等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放、暂
    停、停止)和对网络状态的描述等。解协议的过程会去除掉信令数据而只保留视音频数据。如采用RTMP协议传输的数据,经过解协
    议操作后,输出FLV格式的数据。
  • 解封装,就是将输入的封装格式的数据,分离为音频流压缩编码数据和视频流压缩编码数据的过程。常见的封装格式有MP4、RMVB、
    TS、FLV、AVI等,封装的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起,如FLV格式的数据,经过解封装
    操作后,输出压缩H.264编码的视频码流和压缩AAC编码的音频码流。
  • 解码视音频,就是将视频/音频的压缩编码数据,解码为非压缩的视频/音频原始数据。音频的压缩编码标准包括AAC,MP3,AC-3等,
    视频的压缩编码标准包括H.264,MPEG2等。通过解码压缩编码的视频数据得到非压缩的颜色数据,如YUV420P、RGB等;通过解
    码压缩编码的音频数据得到非压缩的音频抽样数据,如PCM数据。
  • 视音频同步,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显
    卡和声卡播放出来。

流媒体协议技术

流媒体协议是服务器与客户端之间通信遵循的规定。主要的流媒体协议如下所示。

名称 推出机构 传输层协议 客户端 目前使用领域
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传输视音频,支持组播,效率较高。但其缺点是网络不好的情况下可能
会丢包,影响视频观看质量。因为互联网网络环境的不稳定性,RTSP+RTP较少用于互联网视音频传输。互联网视频服务
通常采用TCP作为其流媒体的传输层协议,像RTMP,MMS,HTTP这类的协议广泛用于互联网视音频服务之中。这类协
议不会发生丢包,因而保证了视频的质量,但是传输的效率会相对低一些。此外RTMFP是一种比较新的流媒体协议,特点
是支持P2P。

封装技术

封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。主流的封装格式如下所示。

名称 推出机构 流媒体 支持的视频编码 支持的音频编码 目前使用领域
AVI Microsoft Inc. 不支持 几乎所有格式 几乎所有格式 BT下载影视
MKV CoreCodec Inc. 支持 几乎所有格式 几乎所有格式 互联网视频网站
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 AAC,MPEG-1 Layers I, II, III IPTV,数字电视
FLV Adobe Inc. 支持 Sorenson, VP6, H.264 MP3, ADPCM, Linear PCM, AAC等 互联网视频网站
RMVB Real Networks Inc. 支持 RealVideo 8, 9, 10 AAC, Cook Codec, RealAudio Lossless BT下载影视

除了AVI之外,其他封装格式都支持流媒体,即可以“边下边播”。

视频压缩编码技术

视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩为视频码流,从而降低视频的数据量。如果
视频不经过压缩编码的话,体积一般是很大的,一部电影可能就要上百G的空间。视频码流的数据量占了视
音频总数据量的绝大部分
高效率的视频编码在同等的码率下,可以获得更高的视频质量。主流的视频编码
如下所示。

名称 推出机构 推出时间 目前使用领域
H.264 MPEG/ITU-T 2003 各个领域
MPEG4 MPEG 2001 都有,不多也不少
MPEG2 MPEG 1994 数字电视
VC-1 Microsoft Inc. 2006 微软平台
HEVC(H.265) MPEG/ITU-T 2013 研发中
VP9 Google 2013 研发中
VP8 Google 2008 不普及

当前使用最多的视频编码方案就是H.264。H.264仅仅是一个编码标准,而不是一个具体的编码器,H.264
只是给编码器的实现提供参照用的。基于H.264标准的编码器的编码质量排序(注意:这里并没有考虑编
码速度):

H.264
x264
MainConcept
DivX H.264
Elecard
Intel Ivy Bridge QuickSync
XviD
DiscretePhoton
MainConcept CUDA 视频音频编码解码技术初探_第1张图片
实际中使用最多的就是x264了,性能强悍(超过了很多商业编码器),而且开源,但是x264编码速度是比较慢的。

音频压缩编码技术

音频编码的主要作用是将音频采样数据(PCM等)压缩为音频码流,从而降低音频的数据量。一般情况下
音频的数据量要远远小于视频的数据量,所以即使使用稍微落后的音频编码标准,而导致音频数据量有所
增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的
音质

名称 推出机构 推出时间 目前使用领域
AAC MPEG 1997 各个领域
AC-3 Dolby Inc. 1992 电影
MP3 MPEG 1993 各个领域
WMA Microsoft Inc. 1999 微软平台

实际中使用最多的就是AAC了,杜比数字(杜比AC-3)的编码标准也比较流行。目前的音频编码技术已经
基本可以满足人们的需求。在音频编码技术方面,近期绝大部分的改动都是在MP3的继任者--AAC的基
础上完成的。

在码率较低的情况下,不同编码方案的音频的音质排序为:
AAC+> MP3PRO > AAC > RealAudio > WMA > MP3

网络视音频服务

主要包括两种:点播和直播。

  • 点播,即根据用户的需要播放相应的视频节目,如当下各下很火的小视频,这是互联网视音频服务最主要的方式。
  • 直播,即互联网视音频平台直接将视频内容实时发送给用户,目前还处于发展阶段。直播在网络电视台,社交视频网站较为常见。

主流网络视音频服务平台点播服务的参数如下所示。

名称 流媒体协议 封装格式 视频编码 音频编码 播放器
CNTV HTTP MP4 H.264 AAC Flash
CNTV(部分) RTMP FLV H.264 AAC Flash
华数TV HTTP MP4 H.264 AAC Flash
优酷网 HTTP FLV H.264 AAC Flash
土豆网 HTTP F4V H.264 AAC Flash
56网 HTTP FLV H.264 AAC Flash
音悦台 HTTP MP4 H.264 AAC Flash
乐视网 HTTP FLV H.264 AAC Flash
新浪视频 HTTP FLV H.264 AAC Flash

点播服务普遍采用了HTTP作为流媒体协议,H.264作为视频编码格式,AAC作为音频编码格式,视频播放
器方面,无一例外的都使用了Flash播放器。点播服务采用的封装格式有多种:MP4,FLV,F4V等,它们
之间的区别不是很大。

采用HTTP作为流媒体协议有以下两个优势:

  • 一方面,HTTP是基于TCP协议的应用层协议,媒体传输过程中不会出现丢包等现象,从
    而保证了视频的质量;
  • 另一方面,HTTP被绝大部分的Web服务器支持,因而流媒体服务机构不必投资购买额外
    的流媒体服务器,从而节约了开支。

谢谢观赏!

你可能感兴趣的:(音视频开发,视音频编码技术,视频编码,音频编码,流媒体,封装格式)