多媒体数据传输方法

文档序号:7654706阅读:223来源:国知局
专利名称:多媒体数据传输方法
技术领域
本发明涉及多媒体数据传输的方法,尤其涉及接收传输流的多媒体终端产品中用于提高解码器容错性能的方法。
背景技术
近年来,多媒体技术被广泛应用,各种基于网络的多媒体终端层出不穷。在多媒体流复用和传输方面,由于传输流具有良好的可扩展性而被广泛应用于IP网络、有线电视网络多媒体流的传送。网络传送具有距离远的特性,多媒体码流需要经过众多的网络设备,从而不可避免地会有数据丢失。
处理多媒体数据丢失主要有两种方法。一种是采用某种重传机制,让丢失的多媒体数据再传送一次,这种方式不具备实时性,会造成图像或声音不连续。另一种方法是将不完整的数据直接交给解码器解码,由解码器来处理这些错误,由于目前的多媒体压缩数据之间具有极强的相关性,这种方法可能会使得图像花屏或声音嘈杂。
因此,需要一种提高解码器容错性能的解决方案,能够解决上述相关技术中的问题。

发明内容
本发明的目的在于利用传输流提高解码器容错性能。
根据本发明的一个方面,提供了一种用于机顶盒的多媒体数据传输方法,该方法包括以下步骤利用传输流包头中的预定字段中的计数值或净荷包头中的预定字段的计数值来检测数据是否有丢失,如果有,在丢失数据的多媒体数据帧中设置错误帧标志。
在上述多媒体数据传输方法,预定字段为计数字段;且相邻的两个传输流包头中的预定字段中的计数值相差预定值;以及预定值为1。
上述检测步骤还包括以下步骤判断播放方式是正常播放方式还是快进/快退播放方式。
在正常播放方式的情况下,检测的步骤包括以下步骤将传输流包头中的预定字段中的计数值与前一传输流包头中的预定字段中的计数值进行比较,在所得到的差不等于预定值的情况下,在传输流包所在的多媒体数据帧中设置丢弃标志。
在正常播放方式的情况下,检测的步骤包括以下步骤将净荷包的有效长度与净荷包头中的预定字段中的计数值所指示的长度进行比较,在比较结果不一致的情况下,在传输流包所在的多媒体数据帧中设置丢弃标志。
在上述方法中,将设置了丢弃标志的多媒体数据帧标志为错误帧。
在快进/快退播放方式的情况下,检测步骤包括以下步骤在传输流包头中的预定字段中的计数值与前一传输流包头中的预定字段中的计数值之差不等于预定值时,记录此时帧中已经分析过的传输流包的数量作为第一值,并在传输流包所在的多媒体数据帧中设置丢弃标志;以及在快进/快退播放方式的情况下,检测步骤包括以下步骤比较净荷包的有效长度与净荷包头中的预定字段中的计数值所指示的长度,在比较结果不一致的情况下,在净荷包所在的多媒体数据帧中设置丢弃标志,并指示净荷包的包长不匹配。
在上述方法中,检测步骤包括以下步骤在到达多媒体数据帧的结束位置并在多媒体数据帧中设置了丢弃标志的情况下,记录已经分析过的所述传输流包的数量作为第二值,当第二值与第一值之间的差不等于预定值,或出现了净荷包长不匹配的情况时,将多媒体数据帧标志为错误帧。
上述方法中,还包括以下步骤解码器丢弃错误帧。
本发明主要利用传输流(TS)包头中的continuity_counter或PES(净荷)包头中的PES_packet_length字段来检测多媒体数据是否有丢失,当有数据丢失时,解码器会采取相应的措施。
具体来说,就是利用TS包头中的continuity_counter或PES包头中的PES_packet_length字段来识别是否有数据丢失。continuity_counter是一个4bit的计数字段,对于复用后的码流中的同一视频流或音频流,此字段是连续递增的,即后一个TS包的此字段的值是在前一个TS包的基础上加1;若continuity_counter不连续则说明多媒体数据有丢失。
PES_packet_length指示一个PES包的长度,若此字段的值与解复用后分析出来的实际PES包长度不相等,则说明多媒体数据有丢失。当解码器遇到一个不完整的帧时不进行解码,以避免图像花屏或声音异常。
本发明所述的方法适用于采用传输流传送的多媒体流中的视频流和音频流,同样适用于采用其他复用方法的多媒体流。
通过本发明,当视频数据有丢失时不会出现花屏现象,只要帧速率足够,用户感觉不到画面有跳动。当音频数据有丢失时,不会出现噪音,最多是声音有跳跃。从而给用户带来良好的图像质量及声音效果。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是示出根据本发明的用于机顶盒的多媒体数据传输方法的流程图;图2是示出根据本发明第一实施例的正常播放视频流时的多媒体数据传输方法的流程图;以及图3是根据本发明第二实施例的快进/快退播放视频流时的多媒体数据传输方法的流程图。
图4是示出根据本发明第三实施例的正常播放视频流时的多媒体数据传输方法的流程图;以及图5是根据本发明第四实施例的快进/快退播放视频流时的多媒体数据传输方法的流程图。
具体实施例方式
下面将参考附图并结合实施例,来详细说明本发明。
图1是示出根据本发明的用于机顶盒的多媒体数据传输方法的流程图。参照图1,根据本发明的用于机顶盒的多媒体数据传输方法包括以下步骤步骤S102,判断播放方式是正常播放方式还是快进/快退播放方式,如果是正常播放方式则执行步骤S104,否则执行步骤S112;步骤S104,将传输流包头中的预定字段中的计数值与前一传输流包头中的预定字段中的计数值进行比较,在所得到的差不等于预定值的情况下,执行步骤S108;步骤S106,将净荷包的有效长度与净荷包头中的预定字段中的计数值所指示的长度进行比较,在比较结果不一致的情况下,执行步骤S108;步骤S108,在传输流包所在的多媒体数据帧中设置丢弃标志;步骤S110,将设置了丢弃标志的多媒体数据帧标志为错误帧,继续执行步骤S120;步骤S112~S114,在传输流包头中的预定字段中的计数值与前一传输流包头中的预定字段中的计数值之差不等于预定值时,记录此时帧中已经分析过的传输流包的数量,并继续执行步骤S118,否在执行步骤S116;
步骤S116,比较净荷包的有效长度与净荷包头中的预定字段中的计数值所指示的长度,在比较结果不一致的情况下,并指示净荷包的包长不匹配,并继续执行步骤S118,否在执行步骤S124;步骤S118,多媒体数据帧中设置丢弃标志;步骤S120,在到达多媒体数据帧的结束位置并在多媒体数据帧中设置了丢弃标志的情况下,记录已经分析过的传输流包的数量作为第二值,当第二值与第一值之间的差不等于预定值,或出现了净荷包长不匹配的情况时,将多媒体数据帧标志为错误帧;步骤S122,解码器丢弃错误帧;以及步骤S124,解码器正常解码。
其中,预定字段为计数字段,且相邻的两个传输流包头中的预定字段中的计数值相差预定值,以及预定值为1。
下面将结合图2到图5来详细说明本发明的几个实施例,在下列实施例中,结合附图对本发明所述的方法在网络机顶盒终端系统中的具体实施作进一步的详细描述。正常播放时,网络机顶盒接收到的多媒体数据经过传输流复用,包含音频和视频数据;快进/快退播放时,网络机顶盒接收到的多媒体数据只包含视频中的I帧数据。
图2是示出根据本发明第一实施例的正常播放视频流时的多媒体数据传输方法的流程图。参照图2,该方法包括以下步骤步骤S202,对视频帧中的每一个视频TS包进行分析,比较视频流中两个连续的TS包中的continuity_counter字段的差值是否为1,如果不为1则说明视频流有数据丢失,则执行步骤S206;
步骤S204,每当从视频流中分析出一个PES包,比较PES包中的有效数据长度与PES包头中的PES_packet_length所指示的长度,若两者不一致,则执行步骤S206,否在执行步骤S210;步骤S206,在该帧中设置丢弃标志;步骤S208,解复用程序在组成一个视频帧送往解码器时,将帧属性中的错误帧标志置1,以告知解码器此帧数据不完整,随后,解码器将该帧丢弃;以及步骤S210,解码器正常解码。
图3是根据本发明第二实施例的快进/快退播放视频流时的多媒体数据传输方法的流程图。在该实施例中,传送的视频流可以只包含I帧数据,此时只需要检测I帧内的continuity_counter字段是否连续。参照图3,该方法包括以下步骤步骤S302~S304,在分析I帧内的TS包时,用变量统计I帧内的TS包数量,当发生continuity_counter字段不连续时,记录此时的I帧内的TS包的数量,并执行步骤S308;步骤S306,每当从视频流中分析出一个PES包时,比较PES包中的有效数据长度与PES包头中的PES_packet_length所指示的长度,若两者不一致,则指示是PES包长不匹配导致的数据不完整,并执行步骤S308;步骤S308,在所在帧中设置丢弃标志;步骤S310,当找到帧的结束位置并设置了丢弃标志时,需要判断是否是I帧内数据不完整,当此时的TS包的统计数量值与continuity_counter字段不连续时记录的值相差不为1,或出现PES包长不匹配的情况,在该帧中设置错误帧标志;步骤S312,解码器直接丢弃设置了错误标志的帧,或丢弃该帧和随后的一些B帧,直到找到下一个I帧才重新开始解码所有的帧,以避免图像花屏;也可以采用某种错误复原技术解码该帧;以及步骤S314,解码器正常解码。
图4是示出根据本发明第三实施例的正常播放视频流时的多媒体数据传输方法的流程图。参照图4,该方法包括步骤S402,对视频流中的每一个视频TS包进行分析;步骤S404,比较视频流中两个连续的TS包中的continuity_counter字段的中的计数值,如两者的差值不为1,则说明有视频流有数据丢失,执行步骤S408;步骤S406,每当从视频流中分析出一个PES包,比较PES包中的有效数据长度与PES包头中的PES_packet_length所指示的长度,若两者不一致,说明视频流有数据丢失,执行步骤S408;步骤S408,在所在帧中设置丢弃标志drop_frm=1;步骤S410,当找到帧的结束位置并且drop_frm=1时,解复用程序会将帧属性中的错误帧标志置1,以告知解码器此帧数据不完整,解码器遇到设置了错误标志的帧时,可以直接丢弃该帧,或丢弃该帧和随后的一些B帧,直到找到下一个I帧才重新开始解码所有的帧,以避免图像花屏;也可以采用某种错误复原技术解码该帧。
图5是示出根据本发明第四实施例的快进/快退播放视频流时的多媒体数据传输方法的流程图。该实施例中,用于传送过来的视频流可以只包含I帧数据,这样不会增加带宽,发送端不用重新编码,降低了发送端的运算量和复杂度,因此I帧之间的TS包的continuity_counter字段是不连续的,只需要检测I帧内的此字段是否连续即可。参照图5,该方法包括以下步骤步骤S502,在分析I帧内的TS包时,用变量packet_count记录I帧内的TS包数量,每分析一个TS包此变量增加1。
步骤S504~S506,判断continuity_counter字段是否连续,若发生了不连续,则将packet_count的值赋给drop_packet_count,并执行步骤S512;步骤S508~S510,每当从视频流中分析出一个PES包,比较PES包中的有效数据长度与PES包头中的PES_packet_length所指示的长度是否一致,若不一致时,设置ES_size_error,表示是PES包长不匹配导致的数据不完整,并执行步骤S512,否则执行步骤S518。
步骤S512,在该帧中设置丢弃标志drop_frm=1;步骤S514,找到帧的结束位置后,解复用程序可将前面分析出来的数据组成一个完整的帧交给解码器解码。此时若丢弃标志drop_frm=1,则需要判断是否是I帧内数据不完整,只有当packet_count的值与drop_packet_count的值相差为1,并且没有出现PES包长不匹配的情况,才能认为是I帧之间的丢包,不需要将帧属性中的错误帧标志置1,执行步骤S518,否则执行步骤S516;步骤S516,设置错误帧标志,当解码器遇到设置了错误标志的帧时,可以直接丢弃该帧,或丢弃该帧和随后的一些B帧,直到找到下一个I帧才重新开始解码所有的帧,以避免图像花屏;也可以采用某种错误复原技术解码该帧;以及步骤S518,正常进行解码。
网络机顶盒使用了本发明所述的方法后,在网络丢包不是很严重的情况下,图像不会花屏,用户感觉不到图像和声音质量有任何变化;在网络丢包比较严重的情况下,图像和声音稍有跳跃,不会出现花屏现象;从而能够改善用户体验。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用于机顶盒的多媒体数据传输方法,其特征在于,包括以下步骤利用传输流包头中的预定字段中的计数值或净荷包头中的预定字段的计数值来检测数据是否有丢失,如果有,在丢失数据的多媒体数据帧中设置错误帧标志。
2.根据权利要求1所述的多媒体数据传输方法,其特征在于,相邻的两个所述传输流包头中的所述预定字段中的计数值相差预定值。
3.根据权利要求2所述的多媒体数据传输方法,其特征在于,所述预定值为1。
4.根据权利要求3所述的多媒体数据传输方法,其特征在于,所述检测步骤还包括以下步骤判断播放方式是正常播放方式还是快进/快退播放方式。
5.根据权利要求4所述的多媒体数据传输方法,其特征在于,在所述正常播放方式的情况下,所述检测步骤包括以下步骤将所述传输流包头中的所述预定字段中的计数值与前一传输流包头中的所述预定字段中的计数值进行比较,在所得到的差不等于所述预定值的情况下,在所述传输流包所在的多媒体数据帧中设置丢弃标志。
6.根据权利要求4所述的多媒体数据传输方法,其特征在于,在所述正常播放方式的情况下,所述检测的步骤包括以下步骤将净荷包的有效长度与所述净荷包头中的预定字段中的计数值所指示的长度进行比较,在比较结果不一致的情况下,在所述传输流包所在的多媒体数据帧中设置丢弃标志。
7.根据权利要求5或6所述的多媒体数据传输方法,其特征在于,将设置了所述丢弃标志的所述多媒体数据帧标志为错误帧。
8.根据权利要求4所述的多媒体数据传输方法,其特征在于,在所述快进/快退播放方式的情况下,所述检测步骤包括以下步骤在所述传输流包头中的所述预定字段中的计数值与前一传输流包头中的所述预定字段中的计数值之差不等于所述预定值时,记录多媒体数据帧中已经分析过的传输流包的数量作为第一值,并在所述传输流包所在的所述多媒体数据帧中设置丢弃标志。
9.根据权利要求4所述的多媒体数据传输方法,其特征在于,在所述快进/快退播放方式的情况下,所述检测步骤包括以下步骤比较所述净荷包的有效长度与所述净荷包头中的预定字段中的计数值所指示的长度,在比较结果不一致的情况下,在所述净荷包所在的多媒体数据帧中设置丢弃标志,并指示所述净荷包的包长不匹配。
10.根据权利要求8或9所述的多媒体数据传输方法,其特征在于,所述检测步骤包括以下步骤在到达多媒体数据帧的结束位置并在所述多媒体数据帧中设置了所述丢弃标志的情况下,记录已经分析过的传输流包的数量作为第二值,当所述第二值与所述第一值之间的差不等于所述预定值,或出现了所述净荷包长不匹配的情况时,将所述多媒体数据帧标志为错误帧。
11.根据权利要求7或10所述的多媒体数据传输方法,其特征在于,还包括以下步骤解码器丢弃所述错误帧。
12.根据前述权利要求中任一项所述的多媒体数据传输方法,其特征在于,所述预定字段为计数字段。
全文摘要
本发明披露了一种用于机顶盒的多媒体数据传输方法,该方法包括以下步骤利用传输流包头中的预定字段中的计数值或净荷包头中的预定字段的计数值来检测数据是否有丢失,如果有,在丢失数据的多媒体数据帧中设置错误帧标志。通过本发明能够给用户带来良好的图像质量及声音效果。
文档编号H04L29/06GK101068210SQ20071011146
公开日2007年11月7日 申请日期2007年6月20日 优先权日2007年6月20日
发明者梁宪, 徐峰, 刘卫, 吴忻 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1