一种基于媒体内容的自适应FEC方法与流程

文档序号:18214178发布日期:2019-07-19 22:31阅读:214来源:国知局
一种基于媒体内容的自适应FEC方法与流程

本发明涉及多媒体传输技术领域,更具体地,涉及一种基于媒体内容的自适应FEC(前向纠错)方法。



背景技术:

在异构网络媒体服务系统中,内容通过因特网协议或广播协议分发到终端,因特网中使用IP/TCP或UDP报文来传输媒体数据,广播通过MPEG2-TS来传输内容。UDP报文在经过多个网络设备后可能会出现丟失,广播TS流可能因为传输环境的影响,产生误码,从而造成终端侧的画面破损或者声音停顿。

FEC(Forward Error Correction,前向纠错)技术是一种广泛应用于通信系统中的编码技术。通过服务器侧对媒体数据进行纠错编码,加入冗余信息一并发送,终端侧进行反向FEC解码,对丟失的报文进行恢复。以典型的分组码为例,其基本原理是:在发送端,通过将kbit信息作为一个分组进行编码,加入(n-k)bit的冗余校验信息,组成长度为n bit的码字。码字经过信道到达接收端之后,如果错误在可纠范围之内,通过译码即可检查并纠正错误bit,从而抵抗信道带来的干扰,有效降低系统的误码率,提高通信系统的可靠性。

但是FEC处理,是以冗余开销代价来降低系统的误码率,过度FEC编码对系统实时性和网络状态也会造成压力。

在ISO-23008-1/10/13标准中,传统的FEC结构对于所有信息统一进行编码,对于用户信息没有区分度。对于混合内容或者混合网络下分发不适合,因此他们提出了两层结构。两层结构,如附图1所示。

第一层将source packet block分为较多的小块分别做FEC保护,第二层是一个整块做FEC保护。第一层划分较细致可以提供较小的时延,第二层保证了恢复性能和较小的冗余。

对于混合内容传输,其内容可能分为timed和non-timed,因此可以采用这种两层结构。时序内容用方式1,保证了时延,非时序内容同时借助方式1和方式2,保证了准确性。

对于用户处于不同性能信道,信道性能好的用户只需要FEC1保证时延和功耗,对于信道性能差的用户同时做FEC1和FEC2保证了准确性。

这在一定程度上的解决了问题,对于信道性能较差的用户(GroupB),两层结构确实提高了恢复性能,但是会引入极大的时延。对于信道性能较好的用户(GroupA),不一定是做FEC1,越小的分包带来越小的时延。没有考虑信息的不等重要程度。对于信息或者用户要根据两层结构进行分类,以及对于将大block拆分为小blcok的具体策略是一个复杂的问题。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于媒体内容的自适应FEC方法,从而解决目前FEC系统中实时性好,而准确性差,准确性好而实时性差,以及过度FEC编码造成的数据拥塞问题。

为实现上述目的,本发明采用以下技术方案:

一种基于媒体内容的自适应FEC方法,该方法将媒体内容进行分级,并赋予不同的重要性,在不对原有媒体数据流进行分流的情况下,根据当前信道状况,动态调整媒体数据包中所包含的帧的重要程度和相应的编码方案,把数据包传送到相应的FEC编码器,进行不同程度的保护,最终一个源数据流只会被编码为一个FEC码流。

进一步的,所述方法在与媒体处理单元(MPU)一同传输的信令信息中加入不等差错保护标志位。

进一步的,所述方法加入专门的指示字段,可以做更多个性化的保护方案。更进一步的,所述专门的指示字段加在MFU包头前。

进一步的,所述方法将媒体内容进行分级,并赋予不同的重要性,然后利用信令和指示字段控制,采用不同的FEC编码强度编码。

进一步的,所述方法能够根据当前网络状况动态的改变编码方案,提供自适应的保护强度。

进一步的,所述方法在与媒体处理单元(MPU)一同传输的信令信息中加入不等差错保护标志位,同时加入专门的指示字段,以形成更多个性化的保护方案。

较优地,所述方法将媒体内容进行分级,并赋予不同的重要性,然后利用信令和指示字段控制,采用不同的FEC编码强度编码。

进一步的,所述方法针对MMT AL-FEC发送端架构,发送端流程为:

a)服务器端根据媒体资源生成MMTP流和信令;

b)根据MMT流中每帧数据的重要性的不同,把MMT包传递到FEC编码器,对不同的优先级,采用不同的FEC编码矩阵对MMT包进行FEC编码生成相应的FEC码;

c)将上步中对同一数据流的不同优先级的MMT包进行FEC编码后形成的FEC码进行整合生成一个FEC码流;

d)FEC编码完后,返回相应的修复字符以及FEC数据负载标识和原数据负载标识;

e)所有的修复字符打包成FEC修复包,发送到传输层。

进一步的,本发明通过信令识别FEC流以及采用的FEC编码结构和FEC code,为了支持这种方法,修改了信令中的fec_flow_descriptor字段:在AL-FEC message中现有的三种fec_coding_structure的基础上增加了一种新的fec_coding_structure,fec_coding_structure的功能是用来描述当前采用的FEC编码方案,包括选择的编码算法,是否采用私有编码方案,最大的保护时间窗时间和值等信息,该字段位于AL-FEC信令中被传送到接收端;新增加的fec_coding_structure的标志位的值在现有的reserved的范围内选择;

原来的信令仅仅支持一个FEC流中复用多个媒体资源的修复信息,现在增加了一种针对一个媒体资源的不同重要性部分,分别进行FEC的信令控制,使FEC方法能够更加细化,服务端可以根据用户网络状态动态地调整媒体资源不同部分的FEC强度,在网络带宽和用户体验间取得一个平衡点。

与现有技术相比,本发明具有如下的有益效果:

采用了本发明的技术方案,可以针对目前FEC系统中过度编码造成的数据拥塞,通过对媒体内容分级,赋予不同的重要性,利用信令和指示位控制,采用不同的FEC编码强度;实现最大限度保证媒体内容质量的同时,减少FEC造成的极大的数据量;由于不需要对源数据流进行分流,因此降低了发送端FEC编码的复杂度,提高了FEC编码的效率;由于对一个源数据流只会编码生成一个FEC码流,因此可以极大的减少因FEC编码带来的数据量的增加;同时由于可以根据当前网络状态的变化动态的调整编码方案,因此对时变网络具有更强的适应性。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是MMT中针对媒体资源的FEC两层结构;

图2a-图2b是一个图像组中各帧依赖关系图;

图3是一个通用的MPU组成部分及各部分的重要性示意图;

图4是改进的MMT AL-FEC发送端架构图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。

如图1所示:MMT中针对媒体资源的FEC两层结构,第一层将source packet block分为较多的小块分别做FEC保护,第二层是一个整块做FEC保护。第一层划分较细致可以提供较小的时延,第二层保证了恢复性能和较小的冗余,但是这种灵活性不够。

如图2a-图2b所示:一个图像组中各帧依赖关系,此图说明一个图像组中不同帧的依赖程度和重要性不同,I帧是最重要的,前面的P帧比后面P帧重要,B帧重要性最低,因此可以根据重要性不同进行分层FEC。这也是进行FEC的基础。

实施例一:

本实施例以MMT传输协议为例

MMT方案中,MPU包下的MFU包拥有不同的重要性,缺少不等差错的保护,这样就不能设定个性化的传输方案。在MMT的包中,不同重要程度的帧(如I帧和B帧)是可以区分开的(有指示标志)如附图2a-图2b,附图3。然而编码中并没有涉及到不等差错的保护,虽然Two-stage结构方案和LA-FEC在一定程度上可以实现不等差错保护,但是灵活性低,复杂度高。尤其对于变化的信道状况和具有不同特征(如缓存不同)的接收用户,现有两种方式会存在冗余大,适应性差,只能针对单一状况,无法从用户体验考虑等问题。

解决方式:

1根据属于不同重要程度帧的包,其重要程度有所区分,同时结合信道状况和用户体验感受,自适应的改变编码方案。例如当信道状况很差或是用户存储能力有限时候,发送端将更针对I帧数据进行保护,使得用户以更大的概率接收到I帧,B帧和P帧将更大程度的在接收时候舍弃,这样不再是接收端后续的处理中舍弃B,P帧,而是从发送端就解决了这一问题,节省了带宽资源,可以利用资源保护更多的重要帧。而在时变信道中,可以根据当前网络状况的变化自适应的改变FEC编码方案,例如如果出现网络状况恶化的情况,可以通过改变FEC seed来改变FEC编码的编码矩阵,增加传输数据的保护强度。

2如果不加入专门的指示字段,那么只能根据现有的状况来编码,不等差错保护只能按照所属帧的重要程度来安排。在与MPU同传输的信令中加入不等差错保护标志位。

3但是如果想更个性化的方案,随着信道质量改变保护方案,根据用户特征来定制,那么则需要加入专门的指示字段。由于不同的MFU有不同的重要性,则在MFU包头前加入指示,可以做更多个性化的保护方案。

如图4所示,是改进的MMT AL-FEC发送端架构,主要修改了MMT协议中流化后的输出,把MMT数据包按照优先级发送到FEC编码器分别进行FEC编码,根据MMT包的优先级不同,选择不同的编码矩阵,并将各个优先级经过FEC编码器处理后生成的FEC码整合成一个FEC码流。

发送端架构如附图4所示。

发送端流程:

a)服务器端根据媒体资源生成MMTP流和信令。

b)根据MMT流中每帧数据的重要性的不同,把MMT包传递到FEC编码器,对不同的优先级,采用不同的FEC编码矩阵对MMT包进行FEC编码生成相应的FEC码。

c)将上步中对同一数据流的不同优先级的MMT包进行FEC编码后形成的FEC码进行整合生成一个FEC码流。

d)FEC编码完后,返回相应的修复字符以及FEC数据负载标识和原数据负载标识。

e)所有的修复字符打包成FEC修复包,发送到传输层。

通过信令识别FEC流以及采用的FEC编码结构和FEC code,为了支持这种方法,本实施例中修改了信令中的fec_flow_descriptor字段。

表1:fec_coding_structure的说明

原来的信令仅仅支持一个FEC流中复用多个媒体资源的修复信息,本实施例增加新的fec_coding_structure,fec_coding_structure的功能是用来描述当前采用的FEC编码方案,包括选择的编码算法,是否采用私有编码方案,最大的保护时间窗时间和值等信息,该字段位于AL-FEC信令中被传送到接收端。新增加的fec_coding_structure的标志位的值可以在现有的reserved的范围内选择,本方案中建议选取为0110。

表中的字段语义如下:

seed:随机种子,是作为产生伪随机数的初始条件,用于产生伪随机序列以构造FEC编码的生成矩阵和校验矩阵。seed的选取有多种算法,常用的如获取系统当前时间,获取当前进程ID等方法。

num_of_priority_for_mmtps:一个媒体资源中优先级的数目。

priority_mapping:优先级映射,用于指示媒体资源中不同数据包与资源优先级的映射关系。

private_fec_flag:指示位,指明是否使用私有的FEC编码方案。

private_flag:指示位,指明是否存在一个private_field用来描述所使用的私有FEC编码方案。

private_field_length:长度字段,用于描述私有FEC编码方案的字段的长度。

private_field:用于描述私有FEC方案的详细信息。

priority_id:优先级id,用于指示MMT包的优先级。

fec_code_id_for_repair_flow:用于描述所使用的FEC编码方案。

repair_flow_id:8位整数,用于指示生成的FEC repair flow,与FEC repair包的包头中的packet id有对应关系。

maximum_k_for_repair_flow:24位整数,描述在一个source sysmbol块中source symbol的最大数目。

maximum_p_for_repair_flow:24位整数,描述在一个repair sysmbol块中repair symbol的最大数目。

protection_window_time:保护窗时间,指示在FEC编码中发送第一个source或者repair包与发送最后一个source或者repair包之间的最大时间差,单位为毫秒。

protection_window_size:保护窗值,指示在FEC编码流中发送第一个FEC包的负载与发送最后一个FEC包负载之间的最大计数值。

修改后的信令针对一个媒体资源的不同重要性部分,采用不同的编码矩阵分别对不同的优先级进行FEC的编码控制,对于一个媒体数据流最终只生成一个FEC码流,使FEC方法能够更加细化,同时减少因过度FEC编码带来的网络流量增加,采用该方案服务端可以根据用户网络状态动态地调整媒体资源不同部分的FEC强度,收端收到信令后,可以从中解析出seed以及各个资源包的优先级,根据seed生成校验矩阵进行FEC解码恢复媒体资源。在网络带宽和用户体验间取得一个平衡点。

上述解决方式的优势:

1资源的节省,如果在接收端,人为的根据情况舍弃已经接收的帧(例如B帧)则造成了传输资源的浪费,上述方案从源端解决问题,让不想要的包在传输过程中更大概率丢掉,而更大程度的保护了重要的包。

2个性化的传输方案。视频传输应该是基于用户体验的,做更细致的不等差错保护就可以针对用户状况,如视觉体验,缓存状况等设计I帧和B帧的FEC保护的程度。

3能根据当前网络状况自适应的改变FEC编码的方式,在对不同优先级的数据进行不同强度的FEC保护的基础上,如果出现网络状况恶化丢包率增加的情况下,可自适应的调整FEC的seed,改变FEC的生成矩阵,增加FEC强度来抵抗网络恶化带来的影响。

4MMT中现有的AL-FEC方案只支持对不同的优先级的MMT包生成不同的FEC码流,本方案提出的方案支持对一个媒体资源数据流只生成一个FEC码流,可以极大的减少FEC带来的流量增加,减小网络压力。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1