当前位置:文档之家› 流媒体传输协议及音视频编解码技术

流媒体传输协议及音视频编解码技术

1.1 音视频编解码技术1.1.1 MPEG4MPEG全称是Moving Pictures Experts Group,它是“动态图象专家组”的英文缩写,该专家组成立于1988年,致力于运动图像及其伴音的压缩编码标准化工作,原先他们打算开发MPEG1、MPEG2、MPEG3和MPEG4四个版本,以适用于不同带宽和数字影像质量的要求。

目前,MPEG1技术被广泛的应用于VCD,而MPEG2标准则用于广播电视和DVD 等。

MPEG3最初是为HDTV开发的编码和压缩标准,但由于MPEG2的出色性能表现, MPEG3只能是死于襁褓了。

MPEG4于1999年初正式成为国际标准。

它是一个适用于低传输速率应用的方案。

与MPEG1和MPEG2相比,MPEG4更加注重多媒体系统的交互性和灵活性MPEG1、MPEG2技术当初制定时,它们定位的标准均为高层媒体表示与结构,但随着计算机软件及网络技术的快速发展,MPEG1、MPEG2技术的弊端就显示出来了:交互性及灵活性较低,压缩的多媒体文件体积过于庞大,难以实现网络的实时传播。

而MPEG4技术的标准是对运动图像中的内容进行编码,其具体的编码对象就是图像中的音频和视频,术语称为“AV对象”,而连续的AV对象组合在一起又可以形成AV场景。

因此,MPEG4标准就是围绕着AV对象的编码、存储、传输和组合而制定的,高效率地编码、组织、存储、传输AV对象是MPEG4标准的基本内容。

在视频编码方面,MPEG4支持对自然和合成的视觉对象的编码。

(合成的视觉对象包括2D、3D动画和人面部表情动画等)。

在音频编码上,MPEG4可以在一组编码工具支持下,对语音、音乐等自然声音对象和具有回响、空间方位感的合成声音对象进行音频编码。

由于MPEG4只处理图像帧与帧之间有差异的元素,而舍弃相同的元素,因此大大减少了合成多媒体文件的体积。

应用MPEG4技术的影音文件最显著特点就是压缩率高且成像清晰,一般来说,一小时的影像可以被压缩为350M左右的数据,而一部高清晰度的DVD电影, 可以压缩成两张甚至一张650M CD光碟来存储。

对广大的“平民”计算机用户来说,这就意味着, 您不需要购置 DVD-ROM就可以欣赏近似DVD 质量的高品质影像。

而且采用MPEG4编码技术的影片,对机器硬件配置的要求非常之低,300MHZ 以上CPU,64M的内存和一个 8M显存的显卡就可以流畅的播放。

在播放软件方面,它要求也非常宽松,你只需要安装一个 500K左右的 MPEG4 编码驱动后,用 WINDOWS 自带的媒体播放器就可以流畅的播放了AV对象(AVO,Audio Visual Object)是MPEG-4为支持基于内容编码而提出的重要概念。

对象是指在一个场景中能够访问和操纵的实体,对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。

在MPEG-4中所见的音视频已不再是过去MPEG-1、MPEG-2中图像帧的概念,而是一个个视听场景(AV场景),这些不同的AV场景由不同的AV对象组成。

AV对象是听觉、视觉、或者视听内容的表示单元,其基本单位是原始AV对象,它可以是自然的或合成的声音、图像。

原始AV对象具有高效编码、高效存储与传输以及可交互性的特性,它又可进一步组成复合AV对象。

因此MPEG-4标准的基本内容就是对AV对象进行高效编码、组织、存储与传输。

AV对象的提出,使多媒体通信具有高度交互及高效编码的能力,AV对象编码就是MPEG-4的核心编码技术。

MPEG-4不仅可提供高压缩率,同时也可实现更好的多媒体内容互动性及全方位的存取性,它采用开放的编码系统,可随时加入新的编码算法模块,同时也可根据不同应用需求现场配置解码器,以支持多种多媒体应用1.1.2 H264H.264是由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)联合组建的联合视频组(JVT:joint video team)提出的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。

而国内业界通常所说的MPEG-4是MPEG-4的第2部分。

H.264标准从1998年1月份开始草案征集,到2003年7月,整套H.264 (ISO/IEC 14496-10)规范定稿。

2005年1月,MPEG组织正式发布了H.264验证报告,从各个方面论证了H.264的可用性以及各种工具集的效果,从标准的角度,印证H.264的成熟性。

从标准制定到颁布,H.264一直是ITU、MPEG、DVD、DVB、3GPP等工业化组织共同推进的视频编码国际标准,可以想见,在众多行业巨擘的推动下,H.264技术的应用将迅速进入到视频服务、媒体制作发行、固定及移动运营网络、平台开发、设备终端制造、芯片开发等多个领域。

H.264使图像压缩技术上升到了一个更高的阶段,能够在较低带宽上提供高质量的图像传输,该优点非常适合国内运营商用户量大、接入网/骨干网带宽相对有限的状况。

在同等的画质下,H.264比上一代编码标准MPEG2平均节约64%的传输码流,而比MPEG4 ASP要平均节约39%的传输码流。

全球很多IPTV业务运营商都将H.264作为编解码格式的标准,包括比利时电信,荷兰KPN,泰国ADC电信,中国电信等等。

根据中国电信上海研究院的实际测试结果表明:国内普遍采用的MPEG-4编码技术在3Mbps的带宽下尚达不到标清的图像质量,而H.264编码技术可以在2M带宽下提供要求的图像效果。

因而运营商希望引入更先进的H.264编码技术,在有限的带宽资源下进一步提高图像质量。

1.2 流媒体网络传输协议流媒体技术采用一系列的网络协议,包括:1. 实时传输协议RTP(Real-time Transport protocol)2. 实时传输控制协议RTCP(Real-time Transport Control protocol)3. 实时流协议RTSP(Real Time Streaming protocol)4. 资源预留协议RSVP(Resource Reserve Protocol)。

1.2.1 RTPRTP是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP协议来监视和控制。

RTP定义在RFC 1889中。

信息包的结构包含广泛用于多媒体的若干个域,包括声音点播(audio-on-demand)、影视点播(video on demand)、因特网电话(Internet telephony)和电视会议(videoconferencing)。

RTP的规格没有对声音和电视的压缩格式制定标准,它可以被用来传输普通格式的文件。

例如,WAV或者GSM(Global System for Mobile communications)格式的声音、MPEG-1和MPEG-2的电视,也可以用来传输专有格式存储的声音和电视文件。

使用RTP协议的应用程序运行在RTP之上,而执行RTP的程序运行在UDP的上层,目的是为了使用UDP的端口号和检查和。

如下图所示,RTP可以看成是传输层的子层。

由多媒体应用程序生成的声音和电视数据块被封装在RTP信息包中,每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中。

RTP是传输层上的协议从应用开发人员的角度来看,可把RTP执行程序看成是应用程序的一部分,因为开发人员必需把RTP集成到应用程序中。

在发送端,开发人员必需把执行RTP 协议的程序写入到创建RTP信息包的应用程序中,然后应用程序把RTP信息包发送到UDP的套接接口(socket interface),如下图所示;同样,在接收端,RTP信息包通过UDP套接接口输入到应用程序,因此开发人员必需把执行RTP协议的程序写入到从RTP信息包中抽出媒体数据的应用程序。

RTP和UDP之间的接口RTP本身不提供任何机制来确保把数据及时递送到接收端或者确保其他的服务质量,它也不担保在递送过程中不丢失信息包或者防止信息包的次序不被打乱。

的确,RTP的封装只是在系统端才能看到,中间的路由器并不区分那个IP数据报是运载RTP信息包的。

RTP允许给每个媒体源分配一个单独的RTP信息包流,例如,摄像机或者麦克风。

例如,有两个团体参与的电视会议,这就可能打开4个信息包流:两台摄像机传送电视流和两个麦克风传送声音流。

然而,许多流行的编码技术,包括MPEG-1和MPEG-2在编码过程中都把声音和电视图像捆绑在一起以形成单一的数据流,一个方向就生成一个RTP信息包流。

RTP信息包没有被限制只可应用于单目标广播,它们也可以在一对多(one-to-many)的多目标广播树或者在多对多(many-to-many)的多目标广播树上传送。

例如,多对多的多目标广播,在这种应用场合下,所有发送端通常都把他们的RTP信息包流发送到具有相同多目标广播地址的多目标广播树上。

RTP标题由4个信息包标题域和其他域组成:有效载荷类型(payload type)域,顺序号(sequence number)域,时间戳(timestamp)域和同步源标识符(Synchronization Source Identifier)域等。

RTP信息包的标题域的结构如下图所示:1. 有效载荷类型RTP信息包中的有效载荷域(Payload Type Field)的长度为7位,因此RTP可支持128种不同的有效载荷类型。

对于声音流,这个域用来指示声音使用的编码类型,例如PCM、自适应增量调制或线性预测编码等等。

如果发送端在会话或者广播的中途决定改变编码方法,发送端可通过这个域来通知接收端。

2. 顺序号顺序号(Sequence Number Field)域的长度为16位。

每发送一个RTP信息包顺序号就加1,接收端可以用它来检查信息包是否有丢失以及按顺序号处理信息包。

例如,接收端的应用程序接收到一个RTP信息包流,这个RTP信息包在顺序号86和89之间有一个间隔,接收端就知道信息包87和88已经丢失,并且采取措施来处理丢失的数据。

(初始是随机的)3. 时间戳时间戳(Timestamp)域的长度为32字节。

它反映RTP数据信息包中第一个字节的采样时刻(时间)。

接收端可以利用这个时间戳来去除由网络引起的信息包的抖动,并且在接收端为播放提供同步功能。

(由该时间恢复出原始时钟信息,要处理分布式终端的时钟漂移)4. 同步源标识符同步源标识符(Synchronization Source Identifier,SSRC)域的长度为32位。

它用来标识RTP信息包流的起源,在RTP会话或者期间的每个信息包流都有一个清楚的SSRC。

相关主题