开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算:广播与组播(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/811/detail/15722
广播与组播(下)
内容介绍
一、异构用户的广播、组播
二、处理方式
一、异构用户的广播、组播
智能组播和广播的方式有一个前提,就是所有的用户是在相同的网络环境下用CB R即恒定的传输速率来传送内容,不论是哪个视频的码率相同,带宽一样。
但是在真正的互联网环境下,网络接入的终端设备是复杂多样的。真正的点播,面对的是异构用户。异构用户没有单一的目标速率,需要使用多速率组播。这要求用户根据各自的带宽或处理能力,以不同的速率来接收多媒体的数据。
二、处理方式
要产生这种多速率流,通常用两种方式,一种叫做信息复制,或者叫做流复制,就是发送方为相同的数据生成不同速率的多个副本。另外一种方式,就是对相同的数据进行分解。比如将视频进行累积分层,将原始流压缩成不重叠的分层流。根据质量的需求,在解码的时候可以解不同的层次。
也就是有两种方式处理组播,第一个流复制,第二个分层组播。
1、流复制
流复制的一个典型的代表是目标集合分组,也就是dsg协议。
一个信源为相同的视频内容维护少量的媒体流。速率方面有流畅,标清,高清甚至超高清可以自主选择。如果不进行选择,它可以自主选择,每一个用户都要订阅一个与其带宽速率最匹配的一个副本。
系统会定期监测视频的接收情况,网络变差就会建议选择流畅版,网络的情况变好就可以选择标清或高清的版本。
用户组在规定的范围内可以进行自主反馈,或是系统自动进行设置,如爱奇艺的影片里有多个选择,多个选择实际上就是多个流的复制。改完之后清晰度不同。
2、分层组播
就是接收方驱动的分层组播。接受方怎么驱动,就是接受方的处理能力,发送方通过单独的组播发送每一个视频层,层数和速率预先进行确定,需要在用户端通过检测它的性能来进行改变。
比如一开始带宽有拥塞的情况,那就只接收第一层,也就是质量比较低的一层,第二层随着带宽变好,就把二,三四层都接收,类似于在I'm pack视频里有i帧,b帧,p帧。带宽低就取i帧。发现带宽好就让p帧继续播。
如果带宽继续变好,就把b帧也取了,这比较简单,但是如果都取i帧,肯定是有跳动的。
因为没有把细节的变化描述出来,那么随着网络的变化,从好又变坏,就减掉一层,又变好就把这最重要的细节再补上,就可以根据网络的变化自适应地选择特定的层数。
分层组播可以使接收方通过拥塞控制协议。它可以模仿tcp的控制行为。和式增加,积式减少,接收方再加入时间同步,每层的速率是下一层速率的两倍。用平滑控制速率方法来解决锯齿效应。也可以解决反馈内爆的问题,变得更友好。
3、应用层组播
前面是 IP 的组播解决方案。但它有一定的限制,IP 组播的范围和实现有限,因为网络服务提供商出于安全和经济上的考虑要限制范围。太大一个是不经济,用的带宽比较多,还有一个是不安全。
为避免 IP 组播的弊端,可以在应用层进行组播。而应用层组播有一个别名叫覆盖组播或终端系统组播。
构建要有几个重要的指标。
(1)覆盖效率。
(2)可扩展性和负载的平衡,
(3)自我组织能力。在点播方式下用户是动态的。自我组织、可扩展和负载平衡处理不好的话,性能很难达标。
(4)节点的自我约束。
终端系统的制作中,应用层组播通常是要在终端上安装软件,为了维护成员,一般采用树形覆盖协议。好处就是分布是自我组织和性能感觉,能力比较强,以源为根构建一棵树。
针对带宽和延迟进行优化,主要的实现技术就是分组管理,成员动态管理和性能感知适应。另外就是父节点的选择,选择不好,性能就不同。