一种基于媒体内容的自适应FEC方法及系统

文档序号:24979387发布日期:2021-05-07 22:53阅读:220来源:国知局
一种基于媒体内容的自适应FEC方法及系统

本申请是申请日为2016年8月23日,申请号为cn201610712260.0的发明专利申请“一种基于媒体内容的自适应fec机制及系统”的分案申请。

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



背景技术:

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

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

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

传统的fec结构对于所有信息统一进行编码,对于用户信息没有区分度。对于混合内容或者混合网络下分发不适合,因此他们提出了两层结构。两层结构,如附图1所示。第一层将sourcepacketblock分为较多的小块分别做fec保护,第二层是一个整块做fec保护。第一层划分较细致可以提供较小的时延,第二层保证了恢复性能和较小的冗余。

对于混合内容传输,其内容可能分为timed和non-timed,因此可以采用这种两层结构。时序内容用方式1,保证了时延,非时序内容同时借助方式1和方式2,保证了准确性。对于用户处于不同性能信道,信道性能好的用户只需要fec1保证时延和功耗,对于信道性能差的用户同时做fec1和fec2保证了准确性。

不等差错保护(unequalerrorprotection,uep)是联合信源信道编码的一种。其核心思想是,依据码流的各部分数据的重要性不同,对各部分数据采用不同的信道保护机制,即对重要码流进行重点保护。尽管uep降低了非重要码流的抗噪声性能,但有利于系统抗误码总体性能的提升。

作为一种前向纠错编码技术,数字喷泉码(digitalfountaincode)在传输过程中,不需要反馈及自动重发机制,避免了信号往返的延时以及广播应用中的反馈爆炸问题。数字喷泉的基本思想是:发端将原始数据分割成k个数据符号,对这些数据符号进行编码,输出一个任意长度的编码符号码流,接收端只需正确地接收n(n稍大于k)个编码符号就可以很大的概率恢复出所有的k个数据符号。

数字喷泉码本身就具有uep性能,可以实现对不同重要性的数据的保护。相比与传统的固定码率的信道编码方法,数字喷泉码具有以下明显的优势:

1、理想的可扩展性。由于单向广播没有反馈,发送方不受用户数量增长的任何影响。使得发送方能够为任意数量的用户提供服务。

2、适应时变信道,高效利用信道容量。用户的译码性能与信道的删除概率和带宽无关。当信道丢包率较高、状况不好时,不会对接收端的译码造成影响,即接收端接收足够数量的编码数据就可以正常译码,具有更强的适应性。

3、编译码复杂度低。在理想情况下,喷泉码生成每个编码符号具有线性编译码复杂度,有利于简化收发端编译码器的设计和软件化实现。

4、对异质用户的适用性能良好。喷泉码的无码率特性使得具有不同丢包率或带宽的用户之间互不影响,优质用户不受劣质用户牵制。除此之外,数字喷泉码可以支持中断续传、异步接入等多种服务模式。

两层结构的fec在一定程度上的解决了问题,对于信道性能较差的用户(groupb),两层结构确实提高了恢复性能,但是会引入极大的时延。对于信道性能较好的用户(groupa),不一定是做fec1,越小的分包带来越小的时延。但是该方法并没有考虑信息的不等重要程度。对一个媒体数据流中所有的数据分配相同的冗余进行保护,但数据流中的数据包例如i、b、p帧具有不同的重要程度,当i帧数据大量丢失时,将严重影响视频质量,而b、p帧的丢失将不会产生明显的影响。两层结构缺乏fec编码的灵活性,不能对数据流内的数据包进行不等差错保护。而不等差错保护的编码设计并不完全适用于媒体数据流,在媒体数据流中,不同重要性的数据包将无序的排列在已给数据流中,单纯的采用不等差错保护的方法,并不能达到保护数据流中重要数据的目的。

经检索,公开号为cn105827361a、申请号为cn201510010097.9的中国发明申请,该发明介绍了一种基于媒体内容的fec机制,其是将媒体内容进行分级,并赋予不同的重要性,再根据属于不同重要程度帧的包,结合信道状况和用户体验感受,改变编码方案,按照所属帧的重要程度进行保护;在与媒体处理单元(mpu)一同传输的信令信息中加入不等差错保护标志位。

但是,上述专利主要针对不同重要帧的包的保护,对不同重要程度下的数据分别采用不同的fec编码方案,需要进行多次fec,复杂度还有进一步改进的空间。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于媒体内容的自适应fec机制及系统,用以解决在对数据流不进行分流的情况下,对不同重要程度的数据包进行不等差错保护fec,同时能够使接收端正确的恢复数据。

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

根据本发明的第一方面,提供一种基于媒体内容的自适应fec机制,包括:

s1:将媒体数据流进行分级,并赋予数据不同重要程度;

s2:根据媒体数据流中数据的不同重要程度,对媒体数据流的数据包划分fec保护的不同优先级;

s3:按照所述优先级对媒体数据流的数据包进行排序形成数据包列表,再对排序后的媒体数据流进行不等差错的fec保护。

进一步的,所述s3中:在不对媒体数据流进行分流的情况下,按照所述优先级对媒体数据流中的数据包进行排序,并记录各优先级下的数据包列表。

进一步的,所述对排序后的媒体数据流进行不等差错的fec保护,是指:对排序后的媒体数据流的数据包进行fec编码后,返回修复字符、fec数据负载标识和原数据负载标识,所有的修复字符打包成fec修复包,发送到传输层。

本发明对排序的数据流进行不等差错的fec保护,解决了采用不等差错保护的fec编码时,接收端无法正确恢复源数据流的问题。

进一步的,在所述媒体数据流的数据包包头上加入指示字段,用以指示不同数据包的重要程度。

进一步的,本发明上述基于媒体内容的自适应fec机制,发送端流程包括:

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

将媒体数据流进行分级,赋予数据不同重要程度,对媒体数据流的数据包划分fec保护的不同优先级,按照优先级对媒体数据流中的数据包进行排序,并记录各优先级下的数据包列表;

对不同的优先级数据包进行不等差错保护,对媒体数据流的数据包进行fec编码生成相应的fec码;fec编码完后,返回相应的修复字符以及fec数据负载标识和原数据负载标识,所有的修复字符打包成fec修复包,发送到传输层。

进一步的,在所述信令中加入不等差错保护标志位,用以指示基于媒体内容的自适应fec编码方案。

进一步的,所述fec编码,其中编码方案根据当前网络状态的变化进行动态调整。

根据本发明的第二方面,提供用于实现上述方法的服务器端设备,所述设备根据媒体资源生成媒体数据流和信令,将媒体数据流进行分级,赋予数据不同重要程度,根据媒体数据流中数据的不同重要程度对媒体数据流的数据包划分fec保护的不同优先级,按照所述优先级对媒体数据流的数据包进行排序形成数据包列表,再对排序后的媒体数据流进行不等差错的fec保护。

根据本发明的第三方面,提供一种基于媒体内容的自适应fec系统,其特征在于:包括:

服务器端,根据媒体资源生成媒体数据流和信令,将媒体数据流进行分级,赋予数据不同重要程度,根据媒体数据流中数据的不同重要程度对媒体数据流的数据包划分fec保护的不同优先级,按照所述优先级对媒体数据流的数据包进行排序形成数据包列表,再对排序后的媒体数据流进行不等差错的fec保护;

接收端,根据所述数据包列表,能够正确解码并恢复数据包的原始顺序。

本发明不仅可以针对数据流中的不同重要帧的保护,也可针对流中其他类型的数据包;采用不等差错保护的fec方案,极大的降低了复杂度。

本发明提供了不同优先级下的数据包列表,这样在采用不等差错保护的fec编码方案时,即使有数据包的丢失,接收端也可以根据包列表正确恢复数据。

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

本发明可以针对目前fec系统中过度编码造成的数据拥塞,通过对媒体内容分级,赋予不同的重要性,利用信令和指示位控制,采用不等差错保护(uep);实现最大限度保证媒体内容质量的同时,减少fec造成的极大的数据量。

本发明由于不需要对源数据流进行分流,因此降低了发送端fec编码的复杂度,提高了fec编码的效率;

本发明由于对一个源数据流只会编码生成一个fec码流,因此可以极大的减少因fec编码带来的数据量的增加;

本发明由于给出不同重要程度下的数据包列表,可以使接收端正确的恢复原始数据流;同时,由于可以根据当前网络状态的变化动态的调整编码方案,因此对时变网络具有更强的适应性。

附图说明

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

图1是针对媒体资源数据的fec两层结构图;

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

图3是一个mmtp流中各部分重要性示意图;

图4是本发明一实施例中不等差错保护fec编码结构示意图;

图5是本发明一实施例中发送端架构图。

具体实施方式

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

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

本发明对媒体数据流中不同数据进行重要程度的划分,对不同重要程度的数据给予不同的保护,使得编码更加灵活,解决了目前fec系统中实时性好,而准确性差,准确性好而实时性差,以及过度fec编码造成的数据拥塞问题;同时,提供基于不同重要程度的数据包列表,在对源数据流不分流的情况下,将数据流中的数据包进行重新排序,对重新排序的数据流进行不等差错的fec保护,解决了采用不等差错保护的fec编码时,接收端无法正确恢复源数据流的问题。

具体的,在一个数据流中可以根据其内容分成不同类型的数据包,不同类型的数据包具有不同的重要程度。例如,数据包中的i、b、p帧的重要程度如图2a、图2b所示:一个图像组中各帧依赖关系,此图说明一个图像组中不同帧的依赖程度和重要性不同,i帧是最重要的,前面的p帧比后面p帧重要,b帧重要性最低。因此可以根据一个数据流中数据内容重要性的不同进行分层fec。

如图4所示,具体考虑传输信源数据具有三个重要等级的情况,如i,b,p帧,将信源数据按上述标准进行划分,并将其按照重要程度重新进行排序,以表的形式将排序情况记录下来。将排序后的数据发送到fec编码器,经过不等差错保护对不同重要级的数据进行保护。在接收端恢复数据时,可以根据排序情况正确解码并重新恢复原始数据。

如图5所示,是发送端架构,数据包按照优先级进行重新排序后发送到fec编码器,进行不等差错保护的fec编码。

发送端流程:

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

b)根据媒体数据流中数据的重要性的不同,对数据包划分不同的优先级,并按照优先级对原媒体数据流中的数据包进行重新排序,并记录各优先级下的数据包列表。对不同的优先级数据可以采用如扩展窗喷泉码等uep码进行不等差错保护,对媒体数据流的数据包进行fec编码生成相应的fec码。

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

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

实施例一:

本实施例以mmt传输协议为例,应该理解的是,本发明也同样适用于其他的协议。

mmt方案中,mpu包下的mfu包拥有不同的重要性,缺少不等差错的保护,这样就不能设定个性化的传输方案。在mmt的包中,不同重要程度的数据(如i帧和b帧)是可以区分开的(有指示标志)如图2a、图2b、图3。i帧不依赖于其他类型帧,p帧依赖于i帧,b帧依赖于i、p帧。因此当i帧丢失时,会导致视频质量的下降,而b、p的丢失不会造成严重的影响。因此应对数据包中的i帧给予更高强度的保护。然而现有编码中并没有涉及到不等差错的保护,也没有提供不同重要程度下的包列表,这样对于变化的信道状况和具有不同特征(如缓存不同)的接收用户,会存在冗余大,适应性差,同时接收端无法正确的解码恢复mmtp流中各mmt包。

解决方式:

1根据属于不同重要程度帧的包,其重要程度有所区分,同时结合信道状况和用户体验感受,将编码方案改变。例如当信道状况很差或是用户存储能力有限时,发送端将更针对i帧数据进行保护,使得用户以更大的概率接收到i帧,b帧和p帧将更大程度的在接收时候舍弃,这样不再是接收端后续的处理中舍弃b,p帧,而是从发送端就解决了这一问题,节省了带宽资源,可以利用资源保护更多的重要帧。

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

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

具体的,在本实施例中:

1)服务器端根据媒体资源生成mmtp流,同时生成相关的信令,信令中利用fec_priority_value指示了各mmt包的优先级,并指示了各优先级下的mmt包的packet_sequence_number列表。

2)根据mmtp流中各mmt包的优先级,对原来mmtp流中的包进行重新排序,其排序方式与信令提供的包列表一致,即具有相同优先级的mmt包排列在一起。

3)对重新排序后的mmtp采用不等差错保护的fec编码,生成相应的fec码。

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

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

6)当接收端接收到重新排序的mmtp流后,尽管在传输过程中发生丢包,接收端可以根据信令中的包列表,得到丢包的packet_sequence_number,从而能够正确的解码,恢复出原始数据。再根据恢复的数据包的packet_sequence_number,恢复重新排序的源数据流中各数据包的排列顺序。

对应于上述方法,基于媒体内容的自适应fec系统包括:

服务器端,根据媒体资源生成媒体数据流和信令,将媒体数据流进行分级,赋予数据不同重要程度,根据媒体数据流中数据的不同重要程度对媒体数据流的数据包划分fec保护的不同优先级,按照所述优先级对媒体数据流的数据包进行排序形成数据包列表,再对排序后的媒体数据流进行不等差错的fec保护;

接收端,根据所述数据包列表,能够正确解码并恢复数据包的原始顺序。

基于媒体内容的自适应fec系统各部分具体实现的技术细节与上述方法各步骤对应。

通过信令识别fec流以及采用的fec编码结构和feccode,为了支持这种机制,本实施例中修改了信令中的fec_flow_descriptor(fec流描述符)。

表1:新的fec_coding_structure(fec编码结构)的说明

原来的信令仅仅支持一个fec流中复用多个媒体资源的修复信息,为了达到这个目的,本实施例在al-fecmessage中现有的三种fec_coding_structure的基础上增加了一种新的fec_coding_structure,fec_coding_structure的功能是用来描述当前采用的fec编码方案,包括选择的编码算法,是否采用私有编码方案,最大的保护时间窗时间和值等信息,同时提供了在不同重要程度下的数据包列表,利用该列表接收端可以恢复重排数据包的顺序。该字段位于al-fec信令中被传送到接收端。新增加的fec_coding_structure的标志位的值可以在现有的reserved的范围内选择,本实施例中建议选取为0100。

表中字段语义如下:

num_of_fec_priority(fec优先级数目):指示一个媒体数据流中进行fec的优先级的数目;

fec_priority_value(fec优先级值):该字段指示不同数据包进行划分fec保护的不同优先级的值;

number_of_packets(数据包数目):媒体数据流中具有相同fec_priority_value(fec优先级值)的数据包的个数;

packet_sequence_number(数据包序列号):一种优先级下所有数据包的列表,利用该列表接收端可以将排序后的数据恢复成原顺序;

private_fec_flag(私有fec指示位):指示位,指明是否使用私有的fec编码方案;

private_flag(私有域指示位):指示位,指明是否存在一个private_field(私有域)用来描述所使用的私有fec编码方案;

private_field_length(私有域长度):长度字段,用于描述私有fec编码方案的字段的长度;

private_field(私有域):用于描述私有fec编码方案的详细信息;

fec_code_id_for_repair_flow(fec恢复流fec编码标识符):用于描述所使用的fec编码方案;

repair_flow_id(恢复流标识):用于指示生成的fecrepairflow(fec恢复流),与fecrepair(fec恢复数据包)包的包头中的packetid(数据包标识)有对应关系;

maximum_k_for_repair_flow(源符号最大数目):描述在一个sourcesymbol(源符号)块中sourcesymbol(源符号)的最大数目;

maximum_p_for_repair_flow(恢复符号最大数目):描述在一个repairsymbol(恢复符号)块中repairsymbol(恢复符号)的最大数目;

protection_window_time(保护窗时间):保护窗时间,指示在fec编码中发送第一个source或者repair包与发送最后一个source(源数据包)或者repair(恢复数据包)包之间的最大时间差,单位为毫秒;

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

本发明将媒体内容进行分级,并赋予不同的重要性,在不对原有媒体数据流进行分流的情况下,结合信道状况和用户体验感受,按照媒体数据包的重要程度,将媒体数据包进行重新排序,并对重新排序后的数据进行不等差错保护的fec编码,使不同重要程度的数据得到不同程度的保护。

上述解决方式的优势:

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

2个性化的传输方案。可以根据信道状况、用户体验等设计不等差错保护的方案,使得视频传输更加灵活、细致。同时,尽管发送端的编码方式灵活,接收端都可以根据列表信息正确的恢复出原始的数据。

综上,本发明对媒体数据流中不同数据进行重要程度的划分,对不同重要程度的数据给予不同的保护,使得编码更加灵活,解决了目前fec系统中实时性好,而准确性差,准确性好而实时性差,以及过度fec编码造成的数据拥塞问题;同时,基于不同重要程度的数据包列表,将源数据流中的数据进行重新排序,对重新排序的数据流进行不等差错的fec保护,解决了采用不等差错保护的fec编码时,接收端无法正确恢复源数据流的问题。

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

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