一种纠错校验方法、设备和系统的制作方法

文档序号:7741840阅读:194来源:国知局
专利名称:一种纠错校验方法、设备和系统的制作方法
技术领域
本发明涉及流媒体数据处理技术,尤其涉及一种纠错校验方法、设备和系统。
背景技术
通过网络传送实时的流媒体数据时,丢包会导致播放时出现马赛克、停顿等现象, 影响播放效果。通过数据重传可以解决丢包问题,但数据重传会导致媒体数据不能及时到 达终端,导致播放延时,满足不了用户对多媒体业务的实时需求。而前向纠错技术O^rward Error Correction, FEC)由于可以较好的解决实时传输数据时的丢包问题,在业界得到了 广泛的应用。FEC技术在媒体服务器向终端发送媒体数据包时,按照统一的冗余度对这些媒体 数据包生成冗余的纠错校验数据,将媒体数据包和纠错校验数据一并发送给终端。终端接 收到这些数据后,如果发现媒体数据包丢失,则通过已经收到的媒体数据包和纠错校验数 据把丢失的媒体数据包恢复出来,从而在实现实时传输时,能够减少丢包,提升播放效果。 媒体服务器生成的纠错校验数据越多,终端恢复媒体数据的可能性越高,播放质量越好,但 纠错校验数据占用的传输带宽也就越高;媒体服务器生成的纠错校验数据越少,终端恢复 媒体数据的可能性越低,播放质量越差,但纠错校验数据占用的传输带宽也就越小。在进行网络传输时,为降低传输带宽,对流媒体数据,如视频画面,会压缩生成媒 体数据包后,再进行纠错校验,然后在网络传输。通常采用如下三种压缩方法第1种方法 是直接对当前画面进行压缩,压缩后的画面称为I帧;第2种方法是以前一个画面为基准, 计算当前画面和前一个画面的差异,存储或发送当前画面时只存储或发送这些差异,这样 的画面称为P帧。第3种方法是以前一个画面和下一个画面为基准,计算当前画面和前后 画面的差异,存储或发送当前画面时只存储或发送这些差异,这样的画面称为B帧。对于I帧数据,终端收到后可以直接还原出当前画面以进行播放;对于P帧数据, 终端收到后需要参考前一个画面才能还原出当前画面再播放;对于B帧数据,终端收到后 需要根据前一个画面和后一个画面才能还原出当前画面再进行播放。在实现本发明的过程中,发明人发现现有技术中至少存在如下问题由于上述三种不同的压缩方法,不同类型的帧具有不同的重要性,如I帧数据的 丢失或差错会极大地影响P帧、B帧数据的恢复,现有技术对所有类型帧的媒体数据包按照 统一的冗余度进行纠错校验,不能有效地利用传输带宽,且对丢包数据的恢复能力很有限, 播放效果较差。

发明内容
为解决现有技术中存在的问题,本发明的实施例提供一种纠错校验方法、设备和 系统,用于在实现纠错校验时,有效利用传输带宽,显著增强接收端对丢包数据的恢复能 力,提高播放效果,且实现方法简单,具有较大的可行性。为达到上述目的,本发明的实施例采用如下技术方案
一种纠错校验方法,所述方法包括获知当前帧的类型,所述帧包括关键帧和非关键帧;根据当前帧的类型和冗余编码策略确定当前帧的编码冗余度,其中,关键帧的编 码冗余度大于非关键帧的编码冗余度;利用所述确定的编码冗余度为当前帧生成纠错校验码。一种纠错校验方法,所述方法包括当前帧的媒体数据包丢失时,获取丢失的媒体数据包对应的编码冗余度,所述帧 包括关键帧和非关键帧,关键帧的编码冗余度大于非关键帧的编码冗余度;利用所述编码冗余度恢复所述丢失的媒体数据包。一种纠错校验装置,所述装置包括帧类型鉴别单元,用于获知当前帧的类型,所述帧包括关键帧和非关键帧;确定单元,用于根据所述帧类型鉴别单元获知的当前帧的类型和冗余编码策略确 定当前帧的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;编码单元,用于利用所述确定单元确定的编码冗余度为当前帧生成纠错校验码。一种终端设备,所述终端设备包括获取单元,用于当当前帧的媒体数据包丢失时,获取丢失的媒体数据包对应的编 码冗余度,所述帧包括关键帧和非关键帧,关键帧的编码冗余度大于非关键帧的编码冗余 度;数据包恢复单元,用于利用所述获取单元获取到的编码冗余度恢复所述丢失的媒 体数据包。一种通信系统,该系统包括上述的纠错校验装置和/或终端设备。一种通信系统,所述系统包括流媒体服务器和终端,所述流媒体服务器包括流媒体解析单元,用于解析获取到的媒体流得到媒体数据,将媒体数据以帧为单 位发送至流媒体传输编码单元,所述帧包括关键帧和非关键帧;冗余编码策略单元,用于配置和存储冗余编码策略,以向流媒体传输编码单元提 供相应的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;流媒体传输编码单元,用于根据来自所述流媒体解析单元的每帧媒体数据的类 型,查询所述冗余编码策略单元,获知当前帧的编码冗余度,并将该媒体数据分割打包成媒 体数据包发送至前向纠错编码单元;前向纠错编码单元,用于按照所述当前帧的编码冗余度,为接收到的媒体数据包 生成纠错校验码,将该编码冗余度、纠错校验码和媒体数据包通过网络向终端发送;所述终端包括前向纠错解码单元,用于接收来自流媒体服务器的数据,当当前帧的媒体数据包 丢失时,获取丢失的媒体数据包对应的编码冗余度,利用所述编码冗余度解码并恢复所述 丢失的媒体数据包,将该媒体数据包发送至媒体播放单元;媒体播放单元,用于从来自所述前向纠错解码单元的媒体数据包中提取媒体数据 并播放。本发明实施例提供的技术方案,在进行纠错校验时,发送端对不同类型帧的媒体数据包采用不同的编码冗余度,重要性较高的关键帧所采用的编码冗余度大于重要性较低 的非关键帧所采用的编码冗余度,接收端根据不同的编码冗余度恢复传输中丢失的媒体数 据包,从而解决了现有技术中对所有类型帧的媒体数据包按照统一的冗余度进行纠错校验 而带来的问题。本发明实施例的技术方案在实现纠错校验时,不但能够有效利用传输带宽, 显著增强接收端对丢包数据的恢复能力,提高播放效果,且实现方法简单,具有较大的可行 性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例一提供的纠错校验方法流程图;图2为本发明实施例二提供的纠错校验方法流程图;图3为本发明实施例三提供的纠错校验装置结构示意图;图4为本发明实施例四提供的终端设备结构示意图;图5为本发明实施例六提供的通信系统的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明实施例一提供的纠错校验方法,如图1所示,所述方法包括步骤11 获知当前帧的类型,所述帧包括关键帧和非关键帧;步骤12 根据当前帧的类型和冗余编码策略确定当前帧的编码冗余度,其中,关 键帧的编码冗余度大于非关键帧的编码冗余度;步骤13 利用所述确定的编码冗余度为当前帧生成纠错校验码。本发明实施例提供的技术方案,在进行纠错校验时,发送端,如媒体服务器,对不 同类型帧的媒体数据包采用不同的编码冗余度,重要性较高的关键帧,如I帧,所采用的编 码冗余度大于重要性较低的非关键帧,如P帧和B帧,所采用的编码冗余度。该编码冗余度 可表示为(m,k),即为m个媒体数据包生成k个纠错校验数据包。下面对本发明实施例一进一步提供的媒体服务器为当前帧生成纠错校验数据包 的方法进行具体描述。该当前帧由若干媒体数据包组成,进行纠错校验时,以媒体数据包编 码集合为单位进行,该媒体数据包编码集合包括m个媒体数据包。首先,媒体服务器在实现纠错校验时,将连续的m个媒体数据包作为一个媒体数 据包编码集合进行冗余编码。例如,当m取2时,对待校验的连续的媒体数据包AppDatal 和AppData2,将这2个媒体数据包作为1个媒体数据包编码集合进行FEC冗余编码。然后,媒体服务器根据确定的编码冗余度,例如,编码冗余度为(2,1),即为每2个媒体数据包生成1字节纠错校验数据包),通过某种前向纠错算法为数据包编码集合生成 纠错校验数据。具体地,当一个媒体数据包编码集合中各个媒体数据包的长度不一致时,首 先按照该媒体数据包编码集合中长度最大的媒体数据包的长度对其余的各个媒体数据包 进行填充,例如,对上述包含AppDatal和AppData2的媒体数据包编码集合,当AppDatal的 长度小于AppData12,则对AppDatal进行填充,使其填充后和AppData12长度一致,对填充 后的AppDatal和AppData2使用异或操作,得到纠错校验数据FECDatal。其次,媒体服务器对纠错校验数据打包,包头中指明纠错校验数据包对应了哪些 媒体数据包,例如,在本例子中,纠错校验数据包的包头中填写AppDatal和AppData2的构 成的媒体数据包编码集合的标识(ID),将纠错校验数据FEOTatal和媒体数据包标识打包 成纠错校验数据包后,将媒体数据包和纠错校验数据包发送给终端。接收端,如终端,根据不同的编码冗余度恢复传输中丢失的媒体数据包。进一步的,上述的冗余编码策略包括采用统一的编码冗余度对关键帧进行冗余编码,不对非关键帧进行冗余编码;或 者,当传输带宽不变时,增加关键帧的编码冗余度,降低非关键帧的编码冗余度;或 者,当传输带宽降低时,保持关键帧当前的编码冗余度,降低非关键帧的编码冗余度, 例如,若t时刻的传输带宽A小于t-Ι时刻的传输带宽B时,即传输带宽降低了,则在t时 刻保持关键帧t-Ι时刻的编码冗余度,并采用小于t-Ι时刻编码冗余度的编码冗余度对t 时刻的非关键帧进行编码;或者,当传输带宽提高时,增加关键帧的编码冗余度,保持非关键帧当前的编码冗余度; 或者,当第一非关键帧在解码端的解码顺序位于第二非关键帧之前时,增加第一非关键 帧的编码冗余度,降低第二非关键帧的编码冗余度。进一步的,当所述当前帧由整数倍个媒体数据包编码集合和η个剩余的媒体数据 包组成时,生成m-n个缺省媒体数据包,并为由缺省媒体数据包和η个剩余的媒体数据包构 成的媒体数据包编码集合生成纠错校验数据包。为使本发明实施例的技术方案更加清楚,下面通过另一个示例进行具体说明。当前帧为I帧,该当前I帧包括50 X 1024字节,传输时每个媒体数据包能携带188 字节有效数据,则将当前I帧将分成273个媒体数据包,其中,最后一个媒体数据包(只有 64字节)不足188字节,对最后一个媒体数据包进行填充,如将最后一个媒体数据包中不足 的124字节填写为0。确定编码冗余度(m,η)中m为2,η为1,则将上述273个媒体数据包的每2个组 成1个媒体数据包编码集合,其中,最后一个媒体数据包编码集合中只有一个媒体数据包, 小于m的值2,则需要对最后一个媒体数据包编码集合额外生成一个缺省的媒体数据包,如 生成一个由0构成的缺省媒体数据包。对每个媒体数据包编码集合生成1个冗余校验数据 包,共生成137个纠错校验数据包。将上述273个媒体数据包和137个纠错校验数据包全 部发送至终端。本发明实施例以帧为单位采用不同的编码冗余度生成纠错校验码,不但在实现纠错校验时,能够有效利用传输带宽,显著增强接收端对丢包数据的恢复能力,提高播放效 果,而且,实现起来比较简单,计算量小,适用于吞吐率很大的媒体服务器,具有较高的可行 性。本发明实施例二提供的纠错校验方法,如图2所示,所述方法包括步骤21 当前帧的媒体数据包丢失时,获取丢失的媒体数据包对应的编码冗余 度,所述帧包括关键帧和非关键帧,关键帧的编码冗余度大于非关键帧的编码冗余度;步骤22 利用所述编码冗余度恢复所述丢失的媒体数据包。接收端,如终端,接收到媒体数据包和纠错校验数据包后,如果发现媒体数据包有 丢包现象,则通过已经接收到的媒体数据包和纠错校验数据包恢复丢失的媒体数据包。当终端接收到的属于同一媒体数据包编码集合的媒体数据包和相应的纠错校验 数据包为m个时,开始利用所述接收到的媒体数据包和纠错校验数据包恢复所述丢失的媒 体数据包,其中,所述编码冗余度表示为(m,k),所述媒体数据包编码集合包括m个媒体数 据包,所述纠错校验数据包包括包头和纠错校验码,该包头包括所述媒体数据包编码集合 的标识和所述编码冗余度。例如,编码冗余度表示为(2,1),终端接收到了属于同一媒体数据包编码集合的媒 体数据包AppDatal和包含纠错校验数据FECDatal的纠错校验数据包时,发现AppData2丢 失,则先按FECDatal的长度对AppDatal填充,之后对填充后的AppDatal和FECDatal进行 异或,恢复得到AppDatal2。进一步的,当终端接收到的属于同一媒体数据包编码集合的媒体数据包只有η个 且η小于m时,需要生成m-n个缺省媒体数据包,利用接收到的属于同一媒体数据包编码集 合的媒体数据包、相应的纠错校验数据包和生成的缺省媒体数据包恢复所述丢失的媒体数 据包。本发明实施例以帧为单位采用不同的编码冗余度生成纠错校验码,不但在实现纠 错校验时,能够有效利用传输带宽,显著增强接收端对丢包数据的恢复能力,提高播放效 果,而且,实现起来比较简单,计算量小,适用于吞吐率很大的媒体服务器,具有较高的可行 性。本发明实施例三提供了一种纠错校验装置,如图3所示,所述装置包括帧类型鉴别单元31,用于获知当前帧的类型,所述帧包括关键帧和非关键帧;确 定单元32,用于根据所述帧类型鉴别单元31获知的当前帧的类型和冗余编码策略确定当 前帧的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;编码单元33, 用于利用所述确定单元32确定的编码冗余度为当前帧生成纠错校验码。进一步的,所述确定单元32根据当前帧的类型和下述至少一种冗余编码策略确 定当前帧的编码冗余度采用统一的编码冗余度对关键帧进行冗余编码,不对非关键帧进行冗余编码;或 者,当传输带宽不变时,增加关键帧的编码冗余度,降低非关键帧的编码冗余度;或 者,当传输带宽降低时,保持关键帧当前的编码冗余度,降低非关键帧的编码冗余度; 或者,
当传输带宽提高时,增加关键帧的编码冗余度,保持非关键帧当前的编码冗余度; 或者,当第一非关键帧在解码端的解码顺序位于第二非关键帧之前时,增加第一非关键 帧的编码冗余度,降低第二非关键帧的编码冗余度。本发明装置实施例中各功能模块和单元的具体工作方式参见本发明方法实施例。 本发明装置实施例中各功能模块和单元可以单独实现,也可以集成在一个或多个单元中实 现。本发明实施例以帧为单位采用不同的编码冗余度生成纠错校验码,不但在实现纠 错校验时,能够有效利用传输带宽,显著增强接收端对丢包数据的恢复能力,提高播放效 果,而且,实现起来比较简单,计算量小,适用于吞吐率很大的媒体服务器,具有较高的可行 性。本发明实施例四提供了一种终端设备,如图4所示,该终端设备包括获取单元41,用于当当前帧的媒体数据包丢失时,获取丢失的媒体数据包对应的 编码冗余度,所述帧包括关键帧和非关键帧,关键帧的编码冗余度大于非关键帧的编码冗 余度;数据包恢复单元42,用于利用所述获取单元41获取到的编码冗余度恢复所述丢 失的媒体数据包。进一步的,所述数据包恢复单元42,还用于当接收到的属于同一媒体数据包编码 集合的媒体数据包和相应的纠错校验数据包为m个时,利用所述接收到的媒体数据包和纠 错校验数据包恢复所述丢失的媒体数据包,其中,所述编码冗余度表示为(m,k),所述媒体 数据包编码集合包括m个媒体数据包,所述纠错校验数据包包括包头和纠错校验码,该包 头包括所述媒体数据包编码集合的标识和所述编码冗余度。本发明装置实施例中各功能模块和单元的具体工作方式参见本发明方法实施例。 本发明装置实施例中各功能模块和单元可以单独实现,也可以集成在一个或多个单元中实 现。本发明实施例以帧为单位采用不同的编码冗余度生成纠错校验码,不但在实现纠 错校验时,能够有效利用传输带宽,显著增强接收端对丢包数据的恢复能力,提高播放效 果,而且,实现起来比较简单,计算量小,适用于吞吐率很大的媒体服务器,具有较高的可行 性。本发明实施例五提供了一种通信系统,该系统包括上述的纠错校验装置和/或终 端设备。该纠错校验装置的具体工作方式参见本发明实施例三,该终端设备的具体工作方 式参见本发明实施例四。由上所述,本发明实施例提供的通信系统,在进行纠错校验时,发送端对不同类型 帧的媒体数据包采用不同的编码冗余度,重要性较高的关键帧所采用的编码冗余度大于重 要性较低的非关键帧所采用的编码冗余度,接收端根据不同的编码冗余度恢复传输中丢失 的媒体数据包,从而解决了现有技术中对所有类型帧的媒体数据包按照统一的冗余度进行 纠错校验而带来的问题。本发明实施例的技术方案在实现纠错校验时,不但能够有效利用 传输带宽,显著增强接收端对丢包数据的恢复能力,提高播放效果,且实现方法简单,具有 较大的可行性。
本发明实施例六提供的通信系统包括流媒体服务器51和终端52,参见图5。所述流媒体服务器51包括 流媒体解析单元511,用于解析获取到的媒体流得到媒体数据,将媒体数据以帧为 单位发送至流媒体传输编码单元,所述帧包括关键帧和非关键帧;冗余编码策略单元512,用于配置和存储冗余编码策略,以向流媒体传输编码单元 提供相应的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;流媒体传输编码单元513,用于根据来自所述流媒体解析单元511的每帧媒体数 据的类型,查询所述冗余编码策略单元512,获知当前帧的编码冗余度,并将该媒体数据分 割打包成媒体数据包发送至前向纠错编码单元514 ;前向纠错编码单元514,用于按照所述当前帧的编码冗余度,为接收到的媒体数据 包生成纠错校验码,将该编码冗余度、纠错校验码和媒体数据包通过网络向终端52发送;所述终端52包括前向纠错解码单元521,用于接收来自流媒体服务器的数据,当当前帧的媒体数据 包丢失时,获取丢失的媒体数据包对应的编码冗余度,利用所述编码冗余度解码并恢复所 述丢失的媒体数据包,将该媒体数据包发送至媒体播放单元522 ;媒体播放单元522,用于从来自所述前向纠错解码单元521的媒体数据包中提取 媒体数据并播放。根据需要进行纠错校验的业务类型不同,处理直播业务时,所述流媒体解析单元 511包括直播流媒体解析单元5111,用于接收并解析直播媒体数据,将该直播媒体数据以 帧为单位发送至流媒体传输编码单元;和/或,处理点播业务时,所述流媒体解析单元511 包括本地媒体存储单元5112,用于存储本地的媒体数据;本地媒体解析单元5113,用于读 取所述本地媒体存储单元中的媒体数据,将该媒体数据以帧为单位发送至流媒体传输编码 单元。进一步的,为保证数据通过网络在流媒体服务器51和终端52之间的成功传输,在 流媒体服务器51中还可以包括服务器信令处理单元(图中未示出),在终端52中还可以包 括终端信令处理单元(图中未示出)。下面对本发明实施例六提供的通信系统进行具体描述。参见图5,在本发明实施例 六中以系统中的发送端为媒体服务器、接收端为终端的场景为例,分别针对不同的业务类 型具体说明纠错校验的方法,但并不局限于该场景或该执行主体。一、直播(组播)业务媒体服务器51将直播内容以组播方式发送时包括以下流程的处理1、直播流媒体解析单元5111从外部的源服务器获取直播媒体流,解析该直播媒 体流得到媒体数据,将得到的媒体数据以帧为单位发送给流媒体传输编码单元513,以进行 打包传输;2、流媒体传输编码单元513以帧为单位对媒体数据进行打包传输,包括如下处 理a)流媒体传输编码单元513确定当前帧的编码冗余度流媒体传输编码单元513根据来自所述流媒体解析单元511的每帧媒体数据的类 型,通过查询冗余编码策略单元512,获知当前帧的编码冗余度。
其中,可由直播流媒体解析单元5111解析获知当前帧媒体数据的类型,然后告知 流媒体传输编码单元513,或者,由流媒体传输编码单元513直接对媒体数据进行解析,获 知当前帧的类型,所述当前帧的类型主要包括关键帧,如I帧和非关键帧,如B帧、P帧。在冗余编码策略单元512中,配置和保存了对不同类型帧的冗余编码策略,冗余 编码策略单元512根据该冗余编码策略确定当前帧的编码冗余度。该冗余编码策略可以包括在传输带宽不变的情况下,不同类型的帧采用不同的编码冗余度,提高I帧的编 码冗余度,降低B帧和P帧的编码冗余度,即I帧的编码冗余度大于B帧和P帧的编码冗余 度,如I帧数据编码冗余度为每100个媒体数据包生成10个纠错校验数据包,P帧数据编 码冗余度为每100个媒体数据包生成5个纠错校验数据包,B帧数据冗余度为每100个媒 体数据包生成1纠错校验数据包;或者,该冗余编码策略还可以包括在冗余度不变的情况下,即采用相同的编码冗 余度,但只利用该编码冗余度对I帧进行FEC冗余编码,不对P帧和B帧进行FEC冗余编码, 这时降低了对传输带宽的要求;或者,该冗余编码策略还可以包括当第一非关键帧在解码端的解码顺序位于第 二非关键帧之前时,增加第一非关键帧的编码冗余度,降低第二非关键帧的编码冗余度。即 在一个播放单元内,媒体服务器51根据媒体数据在终端的解码顺序决定纠错校验数据的 冗余度,即解码顺序越靠前,冗余度越高,反之冗余度越低;或者,该冗余编码策略还可以包括当传输带宽降低时,保持关键帧当前的编码冗 余度,降低非关键帧的编码冗余度;例如,在传输带宽降低的情况下,媒体服务器51维持I 帧数据编码冗余度不变,降低B帧、P帧数据编码冗余度;或者,该冗余编码策略还可以包括当传输带宽提高时,增加关键帧的编码冗余 度,保持非关键帧当前的编码冗余度;例如,在传输带宽提高的情况下,媒体服务器51维持 B帧、P帧数据编码冗余度不变,提高I帧数据编码冗余度。b)对每一帧,流媒体传输编码单元513通知前向纠错编码单元514开始新一轮媒 体数据包冗余编码,并告知该前向纠错编码单元当前帧的编码冗余度为(m,k);c)流媒体传输编码单元513将媒体数据按传输协议(例如RTP、TS、TS overRTP 等)分割打包成适合传输的媒体数据包,提交给前向纠错编码单元514进行冗余编码传 输;3、前向纠错编码单元514对媒体数据包进行前向纠错冗余编码。前向纠错编码单元514以媒体数据包编码集合为单位对媒体数据包进行纠错编 码,当编码冗余度表示为(m,k)时,m个媒体数据包构成一个媒体数据包编码集合。前向纠错编码单元514接收来自流媒体传输编码单元513的媒体数据包并缓存, 如果已缓存m个媒体数据包时,进行如下处理i)计算缓存的m个媒体数据包中最大的媒体数据包的长度MaxLength ;ii)对缓存的媒体数据包添加补丁数据(如填充内容为0的数据),使所有媒体数 据包的长度都是MaxLength ;iii)使用冗余编码算法为这m个媒体数据包生成k个长度为MaxLength的纠错校 验数据包。该纠错校验数据包包括包头和纠错校验数据。
在此不对生成纠错校验数据的具体编码方法进行限定,如可以采用范德蒙码、柯 西码、复损码、Tornado码等。iv)对上述纠错校验数据进行打包,生成纠错校验数据包。每个纠错校验数据包的 包头中指明该纠错校验数据包对应的媒体数据包(即相应的媒体数据包编码集合)的标识 以及本次编码所使用的编码冗余度,但不局限于此,该包头中还可携带其它所需的信息,之 后将媒体数据包和纠错校验数据包同时发送给终端;其中,当所述当前帧由整数倍个媒体数据包编码集合和η个剩余的媒体数据包组 成时,η小于m,即对当前帧按媒体数据包编码集合为单位生成纠错校验数据包时,最后剩 余的媒体数据包(η个)不足m个,这时,前向纠错编码单元514生成m-n个缺省媒体数据 包,例如,生成m-n个长度为MaxLength,内容为全0的媒体数据包。将这m-n个缺省媒体数 据包和剩余的η个媒体数据包构成一个媒体数据包编码集合,为该媒体数据包编码集合生 成纠错校验数据包。这时,可在该纠错校验数据包的包头中携带一个标识,指示该媒体数据 包编码集合中存在缺省媒体数据包,存在η的剩余的媒体数据包。ν)清空当前缓冲区;4、当前帧数据处理完成后,流媒体传输编码单元通知前向纠错编码单元514结束 本轮媒体数据包冗余编码;前向纠错编码单元514将媒体数据包和纠错校验数据包通过网络以组播的方式 发送至各终端。终端52接收到组播媒体数据后按以下流程处理终端52的前向纠错解码单元521确定接收到的媒体数据包所采用的冗余编码算 法,例如,前向纠错解码单元521可以通过直播内容描述信息确定所述冗余编码算法,从而 保证发送端和接收端采用相同的冗余编码算法;终端的前向纠错解码单元521从网络中接收到媒体数据包和纠错校验数据包后, 先判断是否有媒体数据包丢失。如果没有,直接丢弃纠错校验数据包;当当前帧的媒体数据 包丢失时,终端52进行如下处理a)前向纠错解码单元521查找丢失媒体数据包对应的纠错校验数据包;采用不同的冗余编码算法时,丢失媒体数据包所对应的纠错校验数据包也可能不 同。例如,该对应的纠错校验数据包可以是根据该丢失的媒体数据包的所属的媒体数据包 编码集合生成的纠错校验数据包的全部或其中几个。b)前向纠错解码单元521解析纠错校验数据包包头,得到编码冗余度相关参数m 和k ;c)前向纠错解码单元521解析纠错校验数据包包头,根据包头中指明的对应的媒 体数据包标识查找已接收的媒体数据包。其中,如果包头中指明的相关媒体数据包个数小于m,假设为η个,则生成m-n个缺 省的媒体数据包;d)如果前向纠错解码单元521已接收到的纠错校验数据包、媒体数据包和缺省的 媒体数据包(如果需要时)个数已经有m个,使用冗余编码算法对应的解码算法对丢失的 媒体数据包进行恢复;e)恢复后的媒体数据包交给媒体播放单元522播放;
媒体播放单元522接收来自前向纠错解码单元521媒体数据包,从该媒体数据包 中提取媒体数据并播放。二、直播(单播)业务当终端请求流媒体服务器播放直播内容时,包括如下处理首先,终端52和媒体服务器51之间通过信息交互,保证所采用的冗余编码算法是 一致的,例如,终端52通过终端信令处理单元向媒体服务器51请求直播内容描述信息;媒 体服务器51通过服务器信令处理单元返回直播内容描述信息,该直播内容描述信息包括 指示冗余编码算法的信息;然后,终端信令处理单元设置终端的前向纠错解码单元521所 使用的编码算法,向媒体服务器51的服务器信令处理单元发送播放请求。服务器信令处理 单元通知直播流媒体解析单元5111从外部的源服务器获取直播媒体流。后续过程中媒体 服务器51的具体工作方法参见上述的直播(组播)业务中的步骤1至4和终端52的具体 工作方法参见上述的直播(组播)业务中的步骤a)至e)。二、点播业务当终端请求流媒体服务器播放点播内容时,包括如下处理首先,终端52和媒体服务器51之间通过信息交互,保证所采用的冗余编码算法是 一致的,例如,终端52通过终端信令处理单元向媒体服务器51请求点播内容描述信息;媒 体服务器51通过服务器信令处理单元返回点播内容描述信息,该点播内容描述信息包括 指示冗余编码算法的信息;然后,终端信令处理单元设置终端的前向纠错解码单元521所 使用的编码算法,向媒体服务器51的服务器信令处理单元发送播放请求。然后,服务器信令处理单元通知本地媒体解析单元5113从本地媒体存储单元 5112读取本地的媒体数据,本地媒体解析单元5113解析该本地媒体文件得到媒体数据,将 得到的媒体数据以帧为单位发送给流媒体传输编码单元513,以进行打包传输。后续过程中 媒体服务器51的具体工作方法参见上述的直播(组播)业务中的步骤1至4和终端52的 具体工作方法参见上述的直播(组播)业务中的步骤a)至e)。本发明实施例提供的技术方案,在进行纠错校验时,发送端对不同类型帧的媒体 数据包采用不同的编码冗余度,重要性较高的关键帧所采用的编码冗余度大于重要性较低 的非关键帧所采用的编码冗余度,接收端根据不同的编码冗余度恢复传输中丢失的媒体数 据包,从而解决了现有技术中对所有类型帧的媒体数据包按照统一的冗余度进行纠错校验 而带来的问题。本发明实施例的技术方案在实现纠错校验时,不但能够有效利用传输带宽, 显著增强接收端对丢包数据的恢复能力,提高播放效果,且实现方法简单,具有较大的可行 性。本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台 的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献 的部分可以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/ RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器, 或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
权利要求
1.一种纠错校验方法,其特征在于,所述方法包括 获知当前帧的类型,所述帧包括关键帧和非关键帧;根据当前帧的类型和冗余编码策略确定当前帧的编码冗余度,其中,关键帧的编码冗 余度大于非关键帧的编码冗余度;利用所述确定的编码冗余度为当前帧生成纠错校验码。
2.根据权利要求1所述的纠错校验方法,其特征在于,所述冗余编码策略包括 采用统一的编码冗余度对关键帧进行冗余编码,不对非关键帧进行冗余编码;或者, 当传输带宽不变时,增加关键帧的编码冗余度,降低非关键帧的编码冗余度;或者,当传输带宽降低时,保持关键帧当前的编码冗余度,降低非关键帧的编码冗余度;或者,当传输带宽提高时,增加关键帧的编码冗余度,保持非关键帧当前的编码冗余度;或者,当第一非关键帧在解码端的解码顺序位于第二非关键帧之前时,增加第一非关键帧的 编码冗余度,降低第二非关键帧的编码冗余度。
3.根据权利要求1所述的纠错校验方法,其特征在于,所述利用所述确定的编码冗余 度为当前帧生成纠错校验码包括按照所述确定的编码冗余度分别为当前帧的各媒体数据包编码集合生成纠错校验数 据包,所述编码冗余度表示为(m,k),所述当前帧由媒体数据包构成,所述媒体数据包编码 集合包括m个媒体数据包;利用所述纠错校验码为所述各媒体数据包编码集合生成k个纠错校验数据包,所述纠 错校验数据包包括包头和所述纠错校验码,该包头包括所述媒体数据包编码集合的标识和 编码冗余度。
4.根据权利要求3所述的纠错校验方法,其特征在于,所述方法还包括当所述当前帧由整数倍个媒体数据包编码集合和η个剩余的媒体数据包组成时,生成 m-n个缺省媒体数据包,并为由缺省媒体数据包和η个剩余的媒体数据包构成的媒体数据 包编码集合生成纠错校验数据包,其中η小于m。
5.根据权利要求1至4任一项所述的纠错校验方法,其特征在于,所述关键帧包括I 帧,所述非关键帧包括P帧和B帧。
6.一种纠错校验方法,其特征在于,所述方法包括当前帧的媒体数据包丢失时,获取丢失的媒体数据包对应的编码冗余度,所述帧包括 关键帧和非关键帧,关键帧的编码冗余度大于非关键帧的编码冗余度; 利用所述编码冗余度恢复所述丢失的媒体数据包。
7.根据权利要求6所述的纠错校验方法,其特征在于,所述利用所述编码冗余度恢复 所述丢失的媒体数据包括当接收到的属于同一媒体数据包编码集合的媒体数据包和相应的纠错校验数据包为m 个时,利用所述接收到的媒体数据包和纠错校验数据包恢复所述丢失的媒体数据包,其中, 所述编码冗余度表示为(m,k),所述媒体数据包编码集合包括m个媒体数据包,所述纠错校 验数据包包括包头和纠错校验码,该包头包括所述媒体数据包编码集合的标识和所述编码 冗余度。
8.根据权利要求7所述的纠错校验方法,其特征在于,所述利用所述编码冗余度恢复 所述丢失的媒体数据包括当属于同一媒体数据包编码集合的媒体数据包的个数为η且η小于m时,生成m-n个 缺省媒体数据包,利用接收到的属于同一媒体数据包编码集合的媒体数据包、相应的纠错 校验数据包和生成的缺省媒体数据包恢复所述丢失的媒体数据包。
9.一种纠错校验装置,其特征在于,所述装置包括帧类型鉴别单元,用于获知当前帧的类型,所述帧包括关键帧和非关键帧; 确定单元,用于根据所述帧类型鉴别单元获知的当前帧的类型和冗余编码策略确定当 前帧的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;编码单元,用于利用所述确定单元确定的编码冗余度为当前帧生成纠错校验码。
10.根据权利要求9所述的纠错校验装置,其特征在于,所述确定单元根据当前帧的类 型和下述至少一种冗余编码策略确定当前帧的编码冗余度采用统一的编码冗余度对关键帧进行冗余编码,不对非关键帧进行冗余编码;或者, 当传输带宽不变时,增加关键帧的编码冗余度,降低非关键帧的编码冗余度;或者, 当传输带宽降低时,保持关键帧当前的编码冗余度,降低非关键帧的编码冗余度;或者,当传输带宽提高时,增加关键帧的编码冗余度,保持非关键帧当前的编码冗余度;或者,当第一非关键帧在解码端的解码顺序位于第二非关键帧之前时,增加第一非关键帧的 编码冗余度,降低第二非关键帧的编码冗余度。
11.一种终端设备,其特征在于,所述终端设备包括获取单元,用于当当前帧的媒体数据包丢失时,获取丢失的媒体数据包对应的编码冗 余度,所述帧包括关键帧和非关键帧,关键帧的编码冗余度大于非关键帧的编码冗余度;数据包恢复单元,用于利用所述获取单元获取到的编码冗余度恢复所述丢失的媒体数 据包。
12.根据权利要求11所述的终端设备,其特征在于,所述数据包恢复单元,还用于当接 收到的属于同一媒体数据包编码集合的媒体数据包和相应的纠错校验数据包为m个时,利 用所述接收到的媒体数据包和纠错校验数据包恢复所述丢失的媒体数据包,其中,所述编 码冗余度表示为(m,k),所述媒体数据包编码集合包括m个媒体数据包,所述纠错校验数 据包包括包头和纠错校验码,该包头包括所述媒体数据包编码集合的标识和所述编码冗余 度。
13.—种通信系统,其特征在于,所述系统包括如权利要求9或10所述的纠错校验装置 和/或如权利要求11或12所述的终端设备。
14.一种通信系统,其特征在于,所述系统包括流媒体服务器和终端, 所述流媒体服务器包括流媒体解析单元,用于解析获取到的媒体流得到媒体数据,将媒体数据以帧为单位发 送至流媒体传输编码单元,所述帧包括关键帧和非关键帧;冗余编码策略单元,用于配置和存储冗余编码策略,以向流媒体传输编码单元提供相 应的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;流媒体传输编码单元,用于根据来自所述流媒体解析单元的每帧媒体数据的类型,查 询所述冗余编码策略单元,获知当前帧的编码冗余度,并将该媒体数据分割打包成媒体数 据包发送至前向纠错编码单元;前向纠错编码单元,用于按照所述当前帧的编码冗余度,为接收到的媒体数据包生成 纠错校验码,将该编码冗余度、纠错校验码和媒体数据包通过网络向终端发送; 所述终端包括前向纠错解码单元,用于接收来自流媒体服务器的数据,当当前帧的媒体数据包丢失 时,获取丢失的媒体数据包对应的编码冗余度,利用所述编码冗余度解码并恢复所述丢失 的媒体数据包,将该媒体数据包发送至媒体播放单元;媒体播放单元,用于从来自所述前向纠错解码单元的媒体数据包中提取媒体数据并播放。
15.根据权利要求14所述的通信系统,其特征在于,所述流媒体解析单元包括直播流媒体解析单元,用于接收直播媒体流并解析得到直 播媒体数据,将该直播媒体数据以帧为单位发送至流媒体传输编码单元;和/或所述流媒体解析单元包括本地媒体存储单元,用于存储本地的媒体文件;本地媒体 解析单元,用于读取所述本地媒体存储单元中的媒体文件并解析得到本地媒体数据,将该 本地媒体数据以帧为单位发送至流媒体传输编码单元。
全文摘要
本发明公开了一种纠错校验方法、设备和系统,涉及流媒体数据处理技术,能够有效利用传输带宽,显著增强接收端对丢包数据的恢复能力,提高播放效果,且实现方法简单,具有较大的可行性。本发明实施例提供的方法包括获知当前帧的类型,所述帧包括关键帧和非关键帧;根据当前帧的类型和冗余编码策略确定当前帧的编码冗余度,其中,关键帧的编码冗余度大于非关键帧的编码冗余度;利用所述确定的编码冗余度为当前帧生成纠错校验码。本发明适用于对各种编码格式的媒体数据进行纠错校验的场合。
文档编号H04N21/647GK102143367SQ20101010951
公开日2011年8月3日 申请日期2010年1月30日 优先权日2010年1月30日
发明者兑继英 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1