一种在iptv网络中动态自适应前向差错控制的系统及方法

文档序号:7651621阅读:155来源:国知局
专利名称:一种在iptv网络中动态自适应前向差错控制的系统及方法
技术领域
本发明涉及多媒体通信和IPTV(网络电视)领域,尤其涉及IPTV领域中流媒体的网络传输与差错控制领域。
背景技术
当前,IP网络以其普及广、兼容性好、性价比高等优点,越来越多的传统电信和广电业务都将其作为平台开展业务,而IPTV正是这一发展的最新技术热点之一。
现有技术中,由于各种因素的存在,尤其是交换机、路由器等设备的拥塞,以及传输线路误码引起CRC校验失败等,IP网络中的丢包是一个不容忽视也常常是难以避免的问题。
现有技术中的丢包通常是通过重传方式来解决的。但是,由于IPTV业务的实时性要求较高,尤其是在直播节目、组播节目、快进快退模式和视频通话等情况下,采用重传方式来解决丢包问题会有很大的局限性,有时甚至根本就不可能解决丢包问题。
另一方面,在现有技术中,各种音视频编解码技术,诸如MPEG2、MPEG4、H.264和AVS等,若其中含有关键信息的数据包被丢失,会对解码器的解码效果造成很大的影响,如出现马赛克、屏幕停顿、音视频不同步等。当然,电路交换里的各种前向纠错(FECForward Error Correction)技术可以实时发现并纠正信道误码以提高电路交换的信道可靠性。IETF和Pro-MPEG Forum等相关国际标准机构和组织为此提出了一些规范和草案,试图采用FEC方法来解决IP网络中的丢包问题,例如,IETF的RFC2733、RFC3452、RFC3453、draft-ietf-rmt-bb-fec-ldpc-00、draft-lacan-rmt-fec-bb-rs-00、draft-peltotalo-rmt-bb-fec-supp-xor-pcm-rs-00、draft-watson-tsvwg-fec-sf-00和Pro-MPEG COP #3release2等。但是这些规范和草案在发展和完善过程中存在一些不足和缺陷。其一是以异或逻辑为基础的FEC算法过于简单,通常只能对丢包率非常低和非常有限的丢包模型起作用,并且额外网络开销过大、网络延迟过长;其二是缺乏动态自适应机制,在产品化过程中缺乏效率和实用性;其三是没有考虑并解决长短包组合、非固定长度分组等关键应用技术;最后,上述的规范和草案并没有顾及到IPTV领域的一些具体情况,也不曾被IPTV相关的行业规范采用。

发明内容
针对IPTV系统中因网络丢包而引起音视频质量较差的技术缺陷,本发明提供了一种基于许可证认证机制并兼容有FEC属性和无FEC属性的机顶盒和IPTV流服务器的动态自适应FEC反馈控制技术的实现方法。
按照本发明的一个方面,提供了一种在IPTV系统中采用动态自适应FEC对IP网络中丢包实施差错控制的方法,它包含下述步骤(1)机顶盒向流服务器发送流服务请求,并带上FEC认证授权标记;(2)所述流服务器接收所述请求,并将请求结果返回至所述机顶盒;(3)利用所述流服务器中的FEC编码器对所述流服务中的源数据包进行编码,产生FEC数据包;(4)通过IP网络将所述源数据包和部分FEC数据包传输至所述机顶盒;(5)所述机顶盒的FEC解码器对所述IP网络中基于FEC分组的丢包数目进行统计,产生统计结果;(6)将FEC分组的丢包数目反馈到所述流服务器中,所述流服务器中的所述FEC编码器调整FEC分组的FEC数据包的发送数目,以及(7)所述机顶盒的所述FEC解码器恢复丢失的源数据包。
其中,采用实时反馈调整方式时,所述流服务器中的所述FEC编码器只调整当前FEC分组的FEC数据包的发送数目;其中,采用统计反馈调整方式时,所述机顶盒中的所述FEC解码器统计反馈到所述流服务器中的所述FEC编码器的是FEC分组丢包数目的分布情况;其中,FEC实时反馈调整的只是当前的FEC分组的FEC数据包的发送数目;其中,该差错控制方法不仅可以在单播业务下应用,也可以在组播和广播业务下应用。
按照本发明的又一个方面,提供了一种对IP网络丢包进行动态自适应前向差错控制的IPTV系统。该系统中包括嵌套在流服务器中的FEC编码器、嵌套在机顶盒中的FEC解码器,以及认证服务器。以下对上述三个装置进行具体的说明。
其中,FEC编码器用来对流服务中的源数据包进行编码,并生成包含源数据包和多个FEC数据包的编码数据;接收来自FEC解码器的基于FEC分组的丢包统计结果,并依据该统计结果调整FEC分组发送的FEC数据包的数目;其中,认证服务器用来接收FEC解码器的注册请求,查询用户数据库,并将该注册请求的结果返回至FEC解码器;以及其中,FEC解码器通过IPTV网络接收源数据包和所述FEC数据包,如果网络中丢失源数据包,则利用FEC包并对其解码,恢复所述流服务中的所丢失源数据包;并将IPTV网络的基于FEC分组的丢包结果实时或者一定时间内的统计结果发送至所述FEC编码器。
按照本发明的又一个方面,提供了一种在IPTV系统中结合源数据和FEC数据的流控技术的方法。该流控技术的主要特点是FEC编码器向FEC解码器发送数据时,先发送完所有的媒体数据包,然后再发送所有的FEC数据包。假设媒体数据包的发送码率为m,则包含源数据包和FEC数据包的流的发送码率为m×(1+l/k)(考虑到FEC数据包在IPTV网络上的负载),则按照流控技术依次发送媒体数据包和FEC数据包时,流服务器发送的数据码率绝对均匀,网络阻塞现象大大降低。
采用本发明中基于前向纠错技术的动态自适应反馈控制方法和系统,可最大化地提供IPTV网络中丢包的恢复能力,有效地解决由于IPTV网络丢包而引起的音视频质量问题。


读者在参照附图阅读了本发明的具体实施方式
以后,将会更清楚地了解本发明的各个方面。其中,图1示出本发明的机顶盒与流服务器经认证服务器实现认证与兼容的流程示意图;图2示出丢包模式下FEC编码和解码原理的示意图;
图3为实现整个FEC编码和解码过程的构造矩阵;图4示出本发明的FEC编码过程的流程图;图5示出本发明的FEC解码过程的流程图;图6为本发明的FEC数据包的格式定义图;图7为本发明的FEC数据包FEC头的格式定义图;图8示出本发明的基于动态自适应FEC反馈控制的流程图;而图9示出本发明的码率匀速控制示意图。
具体实施例方式
下面参照附图,对本发明的具体实施方式
作进一步的详细描述。
图1示出了本发明的机顶盒与流服务器经认证服务器实现认证与兼容的流程示意图。参照图1,基于FEC处理的IPTV系统包括机顶盒100、认证服务器102和流服务器104。其中,在机顶盒100和流服务器102之间的数据交互可以通过如下流程实现(1)由机顶盒100向认证服务器102发送注册请求;(2)认证服务器102接收该注册请求,并查询用户数据库的信息,该信息包括用户是否拥有FEC权限;(3)认证服务器102向机顶盒100发送注册请求结果,该结果中包含FEC授权标记;(4)机顶盒100根据经认证服务器102接收到的FEC授权标记,向流服务器104请求流服务;(5)流服务器104根据FEC授权标记产生请求结果,并回送至机顶盒100。
其中,步骤(5)在单播业务下,流服务器104根据FEC授权标记决定是否对机顶盒100发送FEC数据包,并允许后续的FEC相关操作。若机顶盒100没有被授予FEC权限,则流服务器104仍然向其发送媒体数据,但不会发送FEC数据包。
其中,步骤(5)在组播业务下,机顶盒100根据经流服务器104回送的流服务请求结果决定是否启动FEC功能。当一个拥有FEC权限的机顶盒和一个没有FEC权限的机顶盒同时观看相同的组播节目时,没有FEC权限的机顶盒可照常接收通用的媒体数据流,但不会接收FEC数据包。
图2示出了IPTV系统在丢包模式下FEC编码和解码原理的示意图。如图2所示,流媒体内容可分为k个源数据包,即,x=(x0,x1,x2,...,xk-1),经过FEC编码器进行编码后,由k个源数据包可编码形成与其对应的数据包组合y=(y0,y1,y2,...,yk+l-1),其中y0至yk-1为源数据包,yk至yk+l-1为FEC数据包。当利用IPTV网络进行数据传输时,在FEC解码器解码一侧侧,接收任意源数据包和FEC数据包共计k’个。参照图2,只要接收到的源数据包和FEC数据包的数量不少于源数据包的数量,即k’>=k,利用FEC解码器就能够把所有的源数据包恢复出来,以解决IPTV网络中的丢包问题。为了进一步说明对丢失的源数据包进行恢复的原理,图3示出了实现整个FEC编码和解码过程的构造矩阵G。
参照图2和图3,构造矩阵G是一个包含了一个k×k阶单位矩阵lk的n×k的矩阵(预定要产生的FEC数据包为L个,则n≥k+L),假设源数据包系列为x=x0...xk-1,则经FEC编码器后的数据为y=Gx,其中,y为包含了源数据包系列x和L个FEC数据包的编码数据。经过IPTV网络进行传输时部分源数据包丢失,在FEC解码器的输入侧接收到y的一个子集y’,只要y’的个数k’大于或等于k,就可以根据公式x=G’-1y’来还原源数据包系列x,从而完成FEC编码和解码过程。上述原理中的n、k和L的选择主要由IPTV系统对于实时性要求、网络丢包率和FEC编码解码效率等因素共同决定。
图4示出了FEC编码过程400的流程图。在IPTV系统中对于源数据包的编码可采用如下的流程实现(1)生成(n,k)的编码矩阵402,根据由k个源数据包构成的源数据包系列x,构造一个含有一k×k阶单位矩阵的n×k矩阵;(2)新的RTP生成404;(3)与编码矩阵G进行运算406;(4)判断一组FEC编码是否完成408;(5)发送FEC数据包410;以及(6)重复步骤(2)-(5),直至对源数据包系列的编码完成。
图5示出了FEC解码过程500的流程图。在IPTV系统中对于源数据包进行编码后的解码处理可以采用下列步骤实现(1)生成(n,k)的编码矩阵502,根据由k个源数据包构成的源数据包系列x,构造一个含有一k×k阶单位矩阵的n×k矩阵;
(2)接收到媒体RTP数据包或FEC数据包504;(3)判断本组媒体RTP数据包是否已齐全506;(4)针对步骤(3)中的判断结果,本组媒体包齐全且无需FEC解码508,返回至步骤(2);(5)针对步骤(3)中的判断结果,本组媒体包不齐全,并判断是否满足FEC解码条件510;(6)若不满足FEC解码条件,判断本FEC组是否超时512,若超时,则进行FEC解码失败处理516;若没有超时,则返回至步骤(2);(7)若满足FEC解码条件,则生成FEC解码矩阵514,并实行FEC解码及恢复丢失的媒体包518,返回步骤(2)。
需要指出的是,在图4和图5所示的FEC编解码过程中,本发明利用了矩阵预算对数值为0的数据特殊处理的特点,并采用了添加FEC包头的控制信息的方法,以充分解决长短包组合和非固定长度分组等问题。更具体地说,对于主要因媒体RTP包小于正常长度而形成的长短包组合,将每个媒体包的长度都作为源数据参与FEC编解码,并把编码数据作为FEC数据包包头的一部分。对于未达到正常分组k的组合,采用FEC包头携带特殊分组长度标志,在FEC解码器端用全0数据进行恢复。
图6示出了本发明的FEC数据包的格式定义图,而图7则示出了本发明的FEC数据包头的格式定义图。其中,对FEC数据包的格式进行了重新定义,以实现基于里德索罗门(Reed Solomon)码和TS/RTP/UDP、TS/UDP或其它RTP传输的需求,并解决了长短包组合和非固定长度分组的问题。FEC数据包的RTP包头依据RFC3550定义,pt取96作为FEC的负载类型。参照图7,对FEC数据包的包头格式定义进行说明type表示该FEC分组类型,更具体地,1为RS码正常分组,即有k个源数据包;2为短分组,分组数量为sgn;其它值无效;l域表示该分组将要发送的FEC数据包的数量;k表示每组所含的源数据包的数量;sgn在type的取值为2时,表示短分组中所含有效源数据包的数量;offset表示该FEC数据包在FEC编解码中的具体位置;sn_base表示该FEC分组的数据包基数,若数据包为RTP包,则为第一个RTP包的seq;max_payload_len表示该FEC分组中最大负载长度,若数据包为RTP包,则为最大的RTP包长度;len_recovery表示负载长度恢复参数,并作为FEC负载的特殊一部分参与FEC编码和解码。
图8示出了动态自适应FEC反馈控制的示意图。其中动态自适应FEC参数的修改和控制主要取决处于FEC解码器侧对FEC组丢包信息的统计和反馈,并使得IPTV网络中丢包恢复能力最大化、额外带宽占用最小化。该反馈控制的协议基于RTSP(Real Time Streaming Protocol实时流协议)。参考图8,该反馈控制依据IPTV系统的特点和需求可分为实时反馈调整和统计反馈调整两种方案。
实时反馈调整是指FEC编码器(流服务器)800将FEC数据包重传至FEC解码器(机顶盒)802。因其重传的数据是FEC包,而非RTP媒体包,所以该调整方法可支持组播的业务,也能有效避免流媒体服务器缓存过多的RTP媒体包或者再次从存储介质中进行读取。如图8中实线所示,当在FEC编码器800和FEC解码器802间建立好流服务后,采用FEC实时反馈调整方案且出现某个FEC组的接收到的媒体包和FEC包的总数小于源媒体包的数量时,FEC解码器802向FEC编码器800发送RTSP扩展命令SET_CUR_FEC,FEC编目器根据当前FEC组的丢包情况实时调整FEC组所发送的FEC包的个数l,此时,FEC实时反馈调整只影响当前的FEC组的FEC数据包发送的数量,并不改变系统的默认值。在该调整方案下,由于系统的实时性和效率要求,FEC编码器800无须对FEC解码器进行答复确认。
统计反馈调整是指经过一段时间的统计,将反映当前IPTV网络丢包状态的统计数据反馈给FEC编码器800,并由FEC编码器800根据单播或组播的业务类型和能力来决定系统中FEC组的FEC数据包发送的数量l,并将该结果答复给FEC解码器802。该反馈调整方案重点在于对k个RTP媒体包的FEC分组情况下对IPTV网络中的丢包情况进行测量,并统计该丢包情况以决定FEC组的FEC数据包发送的数量l。无论是单播业务还是组播业务,在FEC解码器802侧都会统计一段时间内每个FEC组的媒体包的丢包个数,并据此确定在分组长度为k时将丢包率降低到一定程度所要求的FEC包的最小l值。如图8中虚线所示,当在FEC编码器800和FEC解码器802间建立好流服务后,采用统计反馈调整方案时,FEC解码器802首先向FEC编码器800发送RTSP扩展命令SET_DFT_FEC,并根据其统计的网络丢包情况设置当前FEC组的FEC数据包发送的数量l。随后,FEC编码器800向FEC解码器802发送RTSP扩展命令SET_DFT_FEC作为应答。
图9示出了本发明的码率匀速控制示意图。如图9所示,假设RTP媒体包的码率为m,考虑到FEC包的网络负载后,其发送码率为m×(1+l/k)。先发送完所有的RTP媒体包,再发送FEC包。这样一来,从发送时序上保证了从流媒体服务器出来的流码率绝对均匀,从而有效地减少了网络拥塞。
上文中,参照附图描述了本发明的具体实施方式
。但是,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式
作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
权利要求
1.一种在IPTV系统中采用动态自适应FEC对IP网络中丢包实施差错控制的方法,它包含下述步骤(1)机顶盒向流服务器发送流服务请求,并带上FEC认证授权标记;(2)所述流服务器接收所述请求,并将请求结果返回至所述机顶盒;(3)利用所述流服务器中的FEC编码器对所述流服务中的源数据包进行编码,产生FEC数据包;(4)通过IP网络将所述源数据包和部分FEC数据包传输至所述机顶盒;(5)所述机顶盒的FEC解码器对所述IP网络中基于FEC分组的丢包数目进行统计,产生统计结果;(6)将FEC分组的丢包数目反馈到所述流服务器中,所述流服务器中的所述FEC编码器调整FEC分组的FEC数据包的发送数目,以及(7)所述机顶盒的所述FEC解码器恢复丢失的源数据包。
2.如权利要求1所述的方法,其特征在于,所述流服务器中的所述FEC编码器根据所述机顶盒中所述FEC解码器的反馈所继续传送的是任意的FEC数据包。
3.如权利要求1所述的方法,其特征在于,所述差错控制采用实时反馈调整方式或统计反馈调整方式。
4.如权利要求3所述的方法,其特征在于,采用实时反馈调整方式时,所述流服务器中的所述FEC编码器只调整当前FEC分组的FEC数据包的发送数目。
5.如权利要求3所述的方法,其特征在于,采用统计反馈调整方式时,所述机顶盒中的所述FEC解码器统计反馈到所述流服务器中的所述FEC编码器的是FEC分组丢包数目的分布情况。
6.如权利要求3所述的方法,其特征在于,FEC实时反馈调整的只是当前的FEC分组的FEC数据包的发送数目。
7.如权利要求1所述的方法,其特征在于,所述的差错控制方法不仅可以在单播业务下应用,也可以在组播和广播业务下应用。
8.如权利要求1所述的方法,其特征在于,FEC分组可以实行长短包组合分组和/或非固定长度分组。
9.如权利要求1所述的方法,其特征在于,所述实时反馈调整或所述统计反馈调整与传输方式无关,与音视频编解码的格式无关。
10.如权利要求1所述的方法,其特征在于,基于FEC分组传送的FEC数据包的FEC包头格式为
其中,type表示FEC分组类型;l域表示该FEC分组类型将要发送的FEC数据包的数量;k表示每组所含的源数据包的数量;sgn在type的取值为2时,表示短分组中所含有效源数据包的数量;offset表示该FEC数据包在FEC编解码中的具体位置;sn_base表示该FEC分组的数据包基数,max_payload_len表示该FEC分组中最大的负载长度;len_recovery表示负载长度的恢复参数。
11.如权利要求1所述的方法,其特征在于,动态自适应FEC反馈调整是通过扩展实时流协议来实现的。
12.一种对网络丢包实施动态自适应前向差错控制的IPTV系统,其特征在于,它包含嵌套在流媒体服务器内的FEC编码器,对流服务中的源数据包进行编码,并生成包含源数据包和多个FEC数据包的编码数据;接收来自嵌套于机顶盒内的FEC解码器的基于FEC分组的丢包统计结果,并依据所述统计结果调整FEC分组发送的FEC数据包的数目;认证服务器,接收所述FEC解码器的注册请求,查询用户数据库,并将所述注册请求的结果返回至所述FEC解码器;以及嵌套于机顶盒内的FEC解码器,通过IPTV网络接收源数据包和所述FEC数据包,如果网络中丢失源数据包,则利用FEC包并对其解码,恢复所述流服务中的所丢失源数据包;并将IPTV网络的基于FEC分组的丢包结果实时或者一定时间内的统计结果发送至所述FEC编码器。
13.如权利要求12所述的系统,其特征在于,所述FEC编码器和所述FEC解码器处理的基于FEC分组的FEC数据包可以实行长短包组合和/或非固定长度的形式。
14.如权利要求12所述的系统,其特征在于,基于FEC分组的丢包统计可以采用实时统计和反馈统计两种方式动态自适应调整FEC分组的FEC包的发包数量。
15.如权利要求12所述的系统,其特征在于,所述认证服务器和流服务器兼容具有FEC属性的机顶盒和不具有FEC属性的机顶盒。
16.如权利要求12所述的系统,其特征在于,所述机顶盒兼容具有FEC能力和不具有FEC能力的流服务器。
17.如权利要求12所述的系统,其特征在于,具有FEC属性的机顶盒通过所述认证服务器的认证许可后,接收媒体数据包和基于FEC分组的数据包。
18.如权利要求12所述的系统,其特征在于,该系统对IP网络丢包的动态自适应前向差错控制不仅适用于单播业务,也适用于组播和广播业务。
19.如权利要求12所述的系统,其特征在于,机顶盒和流服务器之间的FEC实时反馈是通过扩展实时流协议来实现的。
20.一种在IPTV系统中结合源数据和FEC数据的流控技术的方法,其特征在于,FEC编码器向FEC解码器发送数据时,先发送完所有的媒体数据包,然后再发送所有的FEC数据包。
21.如权利要求20所述的方法,其特征在于,当所述FEC编码器发送流服务时,流码率均匀。
全文摘要
本发明揭示了一种在IPTV系统中采用动态自适应FEC对IP网络丢包实施差错控制的方法,它包括实时反馈调整和统计反馈调整,在实时反馈调整中,FEC解码器将FEC分组丢包统计的数量发送至FEC编码器,并由FEC编码器实时调整当前FEC分组的FEC数据包的发送数目;在统计反馈调整中,FEC解码器在一定时间内统计IPTV网络中FEC分组的丢包状态,并由FEC编码器调整后续所有的FEC分组的FEC数据包的发送数目,此外,本发明还揭示了对流媒体内容的网络传输实施动态自适应前向差错控制的IPTV系统,它包括机顶盒、流服务器和认证服务器。采用本发明的系统和方法,可动态自适应的对IP网络传输模式进行差错控制,最大化地提供IPTV网络中丢包的恢复能力,有效地解决由于IP网络丢包而引起的音视频质量问题。
文档编号H04L29/06GK101030838SQ20071009595
公开日2007年9月5日 申请日期2007年4月2日 优先权日2007年4月2日
发明者陈俊楷, 谢主中, 皮佩文, 曾文涛 申请人:Ut斯达康通讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1