一种iptv系统中丢包处理的方法、服务器及系统的制作方法

文档序号:7756518阅读:229来源:国知局
专利名称:一种iptv系统中丢包处理的方法、服务器及系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种在IPTV系统中丢包处理的方法、服务器及系 统。
背景技术
随着流媒体业务发展迅速,流媒体业务的内容和形式丰富多样,越来越多的用户 通过机顶盒或移动手机享受各种各样的音视频业务。流媒体业务由于自身的技术特点,业 务的广泛应用受到视频编码效率以及网络传输质量的影响。视频编码技术可以实现视频数据的大量压缩,是流媒体业务广泛开展前提。随着 视频编码技术的进步,视频数据编码效率大幅提高,特别是H. 264编码算法的推广,推动了 流媒体业务的发展。但是,由于受网络带宽的限制,流媒体业务经常出现各种各样影响业务 质量(Quality of Service,Qos)的问题。其中,由于网络拥塞导致数据包丢失的问题对用 户的体验影响最为严重,经过编码处理后的任何数据丢失,都将影响用户终端的解码播放 的图像。针对网络拥塞导致数据丢失进而影响用户的体验,现有技术一般采用如下方案1、超时重传(Automatic Repeat Request, ARQ)技术信宿终端在一定时间内没有 收到某个数据报文,信宿端会向信源端发送超时重传的请求,然后信源根据报文的需要进 行数据报文的重传。通过数据报的重传,减少传输数据包丢失,提升信宿端解码的质量。但 是当网络严重拥塞,丢包(数据包丢失)率超过一定比例时,过度的超时重传不仅会进一步 增加网络的拥塞程度,还会导致传输码率的突发,产生更严重的丢包,严重影响一段时间内 的网络传输质量。2、传输控制协议(Transmission Control ftOtocol,TCP)承载技术信源和信宿之 间采用TCP传输方式,信源端发包线程负责读取流媒体数据,并按照固定的速率调用网络 层的接口,向网络缓存区写入数据,然后并由网络层独立处理数据的网络发送过程。而网络 层根据TCP的流量控制和拥塞控制机制,和信宿端协商数据的发送方式和速率,保证数据 完整可靠地被信宿接收。通过TCP传输机制,可以确保信源和信宿之间传输链路上没有数 据报文的丢失,但是由于信源服务器的应用层没有实时监控网络层的状况,很可能发生网 络层缓存区的写入速率大于读出速率的情况,最终导致发送缓存区溢出,数据报文丢失采用ARQ技术或者TCP技术,在网络拥塞的情况下,由于数据包都是被随机丢弃 的,当丢失的正好是关键数据时将导致其整个一个序列所有帧的图像都无法解码,最终严 重影响信宿端解码的质量。导致终端播放的文件出现严重失真、延时,甚至无法播放等问 题,用户体验较差。

发明内容
有鉴于此,为了避免在网络拥塞的情况下,由于IPTV系统媒体数据中的关键、核 心数据包被被动、随机丢弃,从而导致的无法解码,最终严重影响信宿端的解码质量的问题。本发明实施例提供了一种IPTV系统中丢包处理方法和服务器。本发明实施例提供了一种IPTV系统中丢包处理方法,包括解析待发送媒体数据的网络提取层(Network Abstraction Layer, NAL)头和分片 Slice头数据,确认所述待发送媒体数据中数据包的重要等级;获取客户端根据接收媒体数据返回的结果信息,所述结果信息至少包括所述客户 端接收所述媒体数据的数据丢失信息;根据所述数据丢失信息确定当前传输网络的拥塞等级;根据所述当前传输网络的拥塞等级和所述数据包的重要等级,结合预先制定的丢 包策略进行丢包处理。另外,本发明实施例还提供了一种流媒体服务器,包括分析模块,用于解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,确 认所述待发送媒体数据中数据包的重要等级;获取模块,用于获取客户端根据接收媒体数据返回的结果信息,所述结果信息至 少包括所述客户端接收所述媒体数据的数据丢失信息;确定模块,用于根据所述获取模块获取的所述数据丢失信息确定当前传输网络的 拥塞等级;处理模块,用于根据所述确定模块确定的所述当前传输网络的拥塞等级和所述分 析模块确定的所述数据包的重要等级,结合预先制定的丢包策略进行丢包处理。同时,本发明实施例还提供了一种IPTV系统丢包处理系统,包括客户端,用于接收流媒体服务器发送的媒体数据,并根据接收的所述媒体数据向 所述流媒体服务器发送结果信息;所述流媒体服务器,用于解析待发送媒体数据的网络提取层NAL头和分片Slice 头数据,确认所述待发送媒体数据中数据包的重要等级,获取所述客户端返回的结果信息, 所述结果信息至少包括所述客户端接收所述媒体数据的数据丢失信息,根据所述数据丢失 信息确定当前传输网络的拥塞等级,根据所述当前传输网络的拥塞等级和所述数据包的重 要等级,结合预先制定的丢包策略进行丢包处理。本发明实施例在IPTV系统中媒体数据的传输过程中,通过通过解析待发送媒体 数据的网络提取层NAL头和分片Slice头数据,确认所述待发送媒体数据中数据包的重要 等级和判断网络拥塞等级,结合预先制定的丢包策略,有选择性地、主动丢弃数据包。避免 了媒体数据中的关键、核心数据包被被动、随机丢弃,从而导致的无法解码,最终严重影响 信宿端的解码质量的问题。从而实现根据网络拥塞等级,可以选择相对不重要,或者影响程 度较小的数据,减少丢包对信宿端解码的影响,最大程度保证播放的流畅性,极大地改善终 端用户的体验。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
图1为本发明一种IPTV系统中丢包处理方法一个实施例的流程图;图2为本发明一种IPTV系统中丢包处理方法又一个实施例的流程3为本发明一种流媒体服务器一个实施例的结构示意图;图4为本发明一种流媒体服务器又一个实施例的结构示意图;图5为本发明一种IPTV系统中丢包处理系统一个实施例的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。流媒体服务器和客户端建立连接,客户端向流媒体服务器发送内容请求,流媒体 服务器根据客户端的请求读取内容源的媒体数据。请结合参看图1,本发明实施例提供了一种IPTV系统中丢包处理方法,包括步骤102,解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,确认所 述待发送媒体数据中数据包的重要等级。流媒体服务器根据客户端的内容请求向内容源获取媒体数据,解析待发送媒体数 据的NAL头和Slice头数据,根据待发送媒体数据的NAL头和Slice头数据确认该待发送 媒体数据中各数据包的重要等级。流媒体服务器将经过解析的媒体数据向客户端发送。可选的,流媒体服务器将获 取的媒体数据承载在实时传输协议(Real-Time Transport Protocol,RTP)报文中,将承载 有媒体数据的RTP报文向客户端发送。步骤104,获取客户端根据接收媒体数据返回的结果信息,所述结果信息至少包括 所述客户端接收所述媒体数据的数据丢失信息。在流媒体服务器向客户端发送媒体数据时,由于传输网络可能存在网络拥塞,导 致媒体数据的传输过程可能存在数据丢失,即丢包。即客户端接收的可能不是流媒体服务 器发送的完整的媒体数据。客户端在接收媒体数据后,向流媒体服务器反馈结果信息。该 结果信息中至少包括客户端在接收流媒体服务器发送的媒体数据的数据丢失信息。可选的,该结果信息可以承载在实时传输控制协议(Real-Time Transport Control Protocol, RTCP)报文中,客户端将承载有该结果信息的RTCP报文信息向流媒体 服务器发送。步骤106,根据所述数据丢失信息确定当前传输网络的拥塞等级。流媒体服务器根据客户端返回的数据丢失信息确定当前传输网络的状况。该传输 网络的状况可以包括拥塞等级。可选的,流媒体服务器根据结果信息反馈的时间段内的丢包数量确定当前传输网 络的拥塞等级。其中,该结果信息反馈的时间段是指客户端接收流媒体服务器发送的媒体 数据的持续时间段。例如可以是客户端在持续接收RTP报文的时间段。可以是客户端在 接收RTP报文的1毫秒-1000毫秒范围内的任意时间段、也可以是客户端在持续接收RTP 报文最近1秒钟内、2秒钟内、3秒钟内、4秒钟内、5秒钟内等时间段内。
步骤108,根据所述传输网络的拥塞等级和所述数据包的重要等级,结合预先制定 的丢包策略进行丢包处理。流媒体服务器根据当前网络的拥塞等级和待发送媒体数据中各数据包的重要等 级,结合预先制定的丢包策略进行丢包处理。在IPTV系统中,流媒体业务中的媒体数据传输由于传输网络的不稳定性,导致媒 体数据传输过程丢包无法避免。本发明实施例通过判断网络拥塞等级和数据包的重要等 级,结合预先制定的丢包策略,有选择性地、主动丢弃数据包。避免了媒体数据中的关键、 核心数据包被被动、随机丢弃,从而导致的无法解码,最终严重影响信宿端的解码质量的问 题。可选的,在步骤104中,客户端根据接收的媒体数据,向流媒体服务器反馈结果 信息,具体包括客户端接收流媒体服务器通过RTP报文承载的媒体数据后,根据RTP报 文中的标识字段,判断丢包情况。若判断产生丢包,则通过实时传输控制协议(Real-Time Transport Control Protocol, RTCP)报文向流媒体服务器反馈结果信息。该结果信息至 少包括媒体数据丢失信息。其中该媒体数据丢失信息可以至少包括丢包数量。请结合参看图2,本发明实施例提供了一种IPTV系统中丢包处理方法,具体包括流媒体服务器和客户端建立连接。步骤202,客户端向流媒体服务器发送媒体数据请求。客户端向流媒体服务器发送媒体数据请求消息,请求流媒体服务器发送节目内容。步骤204,流媒体服务器解析待发送媒体数据。流媒体服务器解析待发送的媒体数据,并确认该待发送媒体数据中各数据包的重 要等级。流媒体服务器可以采用H. 264编码标准来压缩媒体数据。为了大幅度的提高压缩 效率,H. 264采用了帧间预测技术,通过前后帧之间的比较预测,减少冗余数据。因此H. 264 将图像分成I帧、P帧、和B帧。其中I帧是帧内预测帧,可以通过自身的数据恢复图像,也 是其他帧编码预测的参考频;P帧是前向预测帧,只参考I帧和其他P帧;而B帧是双向预测 帧,参考前后的I帧和P帧。同时,在本发明实施例中,H. 264标准采用网络提取层(Network Abstraction Layer, NAL)机制,将不同的数据分成不同的NAL类型,这样既可以减少数据 的冗余度,又可以在一定程度上减少数据的相关性。通过H. 264进行编码后的数据被封装 到不同的单元之中,这些单元的重要性级别并不相同,丢失后对信宿端解码的影响程度也 不一样。在本发明实例中,流媒体服务器通过获取前端编码器发送的媒体数据,其中该媒 体数据中的各数据包已经由前端编码器封装在不同的NAL类型中。流媒体服务器将获取的 经过前端编码器编码和封装的媒体数据或媒体数据中各数据包。由于不同的NAL类型具有 不同的作用,即不同NAL类型种的数据或数据包存在不同的重要性;同时各NAL类型中的不 同Slice单元也封装了不同类型的帧数据,分别有I、B、P帧数据。因此流媒体服务器可以 通过解析待发送给客户端的媒体数据的网络提取层NAL头和分片Slice头数据,确认该待 发送的媒体数据中各数据包的重要等级。具体的,流媒体服务器首先通过解析待发送的媒体数据得到该媒体数据中数据或数据包的类型。流媒体服务器通过解析待发送的媒体数据中网络提取层NAL头和分片 Slice头数据,得到该媒体数据中数据或数据包的NAL类型和Slice类型。一般可以将媒体 数据中的数据或数据包解析为如表1和表2的类型。表1H. 264标准中NAL单元类型
NAL typeNAL类型说明1Coded slice of a non-IDR5Coded slice of an IDR picture6Supplemental enhancement information7Sequence parameter set8Picture parameter set 表2H. 264标准中Slice类型
slice—typeSlice名称0P (P slice)1B (B slice)2I (I slice)3SP (SP slice)4SI (Si slice)5P (P slice)6B (B slice)7I (I slice)8SP (SP slice)9SI (Si slice)根据将媒体数据中的数据或数据包按照表1和表2的类型的划分,定义媒体数据 中数据或数据包的重要等级。可以将待发送媒体数据中数据包分为核心级、重要级、次重要 级以及普通级。具体可以参见表3的确认。表 3
重要等级类型核心级NAL type为5、7、8中的至少一种重要级NAL type 为 1、6 以及 Slice—type 为 2、4、7、9 中的至少一种次重要级Slice—type为0、3、5、8的单元中的至少一种普通级Slice—type为1、6的单元中的至少一种步骤206,流媒体服务器根据客户端的媒体数据请求向客户端发送RTP报文。流媒体服务器将经过解析的媒体数据向客户端发送。流媒体服务器将经过解析的 媒体数据承载在实时传输协议(Real-Time Transport Protocol,RTP)报文中,将承载有媒 体数据的RTP报文向客户端发送。步骤208,客户端根据接收的RTP报文得到接收的结果信息。具体的,在流媒体服务器向客户端发送媒体数据时,由于传输网络可能存在网络 拥塞,导致媒体数据的传输过程可能存在丢包。即客户端接收的数据可能不是流媒体服务 器发送的完整的媒体数据。客户端接收流媒体服务器通过RTP报文承载的媒体数据后,根据RTP报文中的标 识字段,判断丢包情况,得到至少包括丢包数量的结果信息。步骤210,客户端向流媒体服务器发送RTCP报文。客户端在接收媒体数据后,向流媒体服务器反馈结果信息。该结果信息中至少包 括客户端在接收流媒体服务器发送的媒体数据的数据丢失信息。具体的,该结果信息可以承载在RTCP报文中,客户端将承载有该结果信息的RTCP 报文信息向流媒体服务器发送。具体的,客户端根据RTP报文中的标识字段,判断数据丢失请求,即丢包情况,得 到至少包括丢包数量的结果信息承载在RTCP报文中。客户端将承载丢包数量RTCP报文向 流媒体服务器发送。步骤212,流媒体服务器根据RTCP报文判断当前网络的拥塞等级。流媒体服务器根据结果信息反馈的时间段内的丢包数量确定当前传输网络的拥
塞等级。流媒体服务器根据RTCP报文中的丢包信息判断当前网络的拥塞等级。流媒体服务器根据RTCP报文反馈的时间段内的丢包数量确定当前传输网络的拥 塞等级。该时间段指客户端在接收RTP报文的某个时间段。例如,可以是客户端在接收RTPl 毫秒-1000毫秒范围内的任意时间段、也可以是客户端在接收RTPl秒钟、2秒钟、3秒钟、4 秒钟、5秒钟等时间段内。具体的,流媒体服务器根据RTCP报文中反馈的某一时间段的丢包数量判断当前 网络的拥塞等级。为了能够尽可能真实地反映当前网络的拥塞等级,流媒体服务器可以根 据RTCP报文中最近的一个时间段的丢包数量判断当前网络的拥塞等级。可选的,流媒体服 务器可以根据RTCP报文反馈最近两秒钟累积的丢包数量确定当前网络的拥塞等级。其中, 该最近两秒钟可以是指离反馈RTCP报文前,客户端两秒钟内接收RTP数据包的时间段。流 媒体服务器根据RTCP报文反馈最近两秒钟累积的丢包数量确定当前网络的拥塞等级,可 以如表4所示。
权利要求
1.一种IPTV系统中丢包处理方法,其特征在于,所述方法包括解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,确认所述待发送媒体 数据中数据包的重要等级;获取客户端根据接收媒体数据返回的结果信息,所述结果信息至少包括所述客户端接 收所述媒体数据的数据丢失信息;根据所述数据丢失信息确定当前传输网络的拥塞等级;根据所述当前传输网络的拥塞等级和所述数据包的重要等级,结合预先制定的丢包策 略进行丢包处理。
2.如权利要求1所述的方法,其特征在于,所述结果信息承载在实时传输控制协议 RTCP报文中。
3.如权利要求1所述的方法,其特征在于,所述数据丢失信息至少包括丢包数量;所述 根据所述数据丢失信息确定当前传输网络的拥塞等级包括根据丢包数量确定当前传输网 络的拥塞等级。
4.如权利要求3所述的方法,其特征在于,所述根据丢包数量确定当前传输网络的拥 塞等级,包括根据结果信息反馈的时间段内的丢包数量确定当前传输网络的拥塞等级。
5.如权利要求4所述的方法,其特征在于,所述根据结果信息反馈的时间段内的丢包 数量确定当前传输网络的拥塞等级,包括若根据RTCP报文反馈的最近两秒钟累计丢包数量为零,则当前传输网络的拥塞等级 为健康级;若根据RTCP报文反馈的最近两秒钟累计丢包数量不为零,但小于20,则当前传输网络 的拥塞等级为次健康级;若根据RTCP报文反馈的最近两秒钟累计丢包数量大于20且小于50,则当前传输网络 的拥塞等级为病态级;若根据RTCP报文反馈的最近两秒钟累计丢包数量大于50,则当前传输网络的拥塞等 级为严重病态级。
6.如权利要求1-5所述的任一方法,其特征在于,所述在解析待发送媒体数据的网络 提取层NAL头和分片Slice头数据后,还包括根据解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,获得所述待发送 媒体数据中数据包的类型;所述确认所述待发送媒体数据中数据包的重要等级,包括根据所述待发送媒体数据 中数据包的类型确定所述待发送媒体数据中数据包的重要等级。
7.如权利要求6所述的方法,其特征在于,所述根据所述待发送媒体数据中数据包的 类型确定所述待发送媒体数据中数据包的重要等级,包括根据所述待发送媒体数据中数据包的类型将所述待发送媒体数据中数据包分为核心 级、重要级、次重要级以及普通级。
8.如权利要求7所述的方法,其特征在于,根据所述当前传输网络的拥塞等级和所述 数据包的重要等级,结合预先制定的丢包策略进行丢包处理,包括若所述当前网络的拥塞级别为健康级时,不丢弃数据包;若所述当前网络的拥塞级别为次健康级时,选择丢弃普通级数据包;若当前网络的拥塞级别为病态级时,先丢弃普通级数据包,并判断当前网络的拥塞级 别是否已转为次健康级或健康级,若否,则丢弃次重要级数据包;若当前网络的拥塞级别为严重病态级,先丢弃普通级数据包和次重要级数据包,并判 断当前网络的拥塞级别是否已转为病态级、次健康级、健康级中的一种,若否,则丢弃核心 级数据包。
9.一种流媒体服务器,其特征在于,所述流媒体服务器包括分析模块,用于解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,确认所 述待发送媒体数据中数据包的重要等级;获取模块,用于获取客户端根据接收媒体数据返回的结果信息,所述结果信息至少包 括所述客户端接收所述媒体数据的数据丢失信息;确定模块,用于根据所述获取模块获取的所述数据丢失信息确定当前传输网络的拥塞 等级;处理模块,用于根据所述确定模块确定的所述当前传输网络的拥塞等级和所述分析模 块确定的所述数据包的重要等级,结合预先制定的丢包策略进行丢包处理。
10.如权利要求9所述的流媒体服务器,其特征在于,所述分析模块包括解析单元,用于解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,获得所 述待发送媒体数据中数据包的类型;数据包等级确认单元,用于根据所述待发送媒体数据中数据包的类型确定所述待发送 媒体数据中数据包的重要等级。
11.一种IPTV系统中丢包处理系统,其特征在于,所述丢包处理系统包括客户端,用于接收流媒体服务器发送的媒体数据,并根据接收的所述媒体数据向所述 流媒体服务器发送结果信息;所述流媒体服务器,用于解析待发送媒体数据的网络提取层NAL头和分片Slice头数 据,确认所述待发送媒体数据中数据包的重要等级,获取所述客户端返回的结果信息,所述 结果信息至少包括所述客户端接收所述媒体数据的数据丢失信息,根据所述数据丢失信息 确定当前传输网络的拥塞等级,根据所述当前传输网络的拥塞等级和所述数据包的重要等 级,结合预先制定的丢包策略进行丢包处理。
全文摘要
本发明公开了一种IPTV系统中丢包处理方法,包括解析待发送媒体数据的网络提取层NAL头和分片Slice头数据,确认待发送媒体数据中数据包的重要等级;获取客户端根据接收媒体数据返回的结果信息,该结果信息至少包括客户端接收媒体数据的数据丢失信息;根据数据丢失信息确定当前传输网络的拥塞等级;根据当前传输网络的拥塞等级和数据包的重要等级,结合预先制定的丢包策略进行丢包处理。本发明还公开了一种流媒体服务器和IPTV系统中丢包处理系统。通过判断网络拥塞等级,结合预先制定的丢包策略,有选择性地、主动丢弃数据包。避免了媒体数据中的关键数据包被随机丢弃,从而导致的无法解码,严重影响信宿端的解码质量问题。
文档编号H04L29/06GK102130821SQ20101025038
公开日2011年7月20日 申请日期2010年8月11日 优先权日2010年8月11日
发明者徐伟军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1