申请/专利权人:上海数字电视国家工程研究中心有限公司
申请日:2014-01-29
公开(公告)日:2021-01-19
公开(公告)号:CN107094144B
主分类号:H04L29/06(20060101)
分类号:H04L29/06(20060101);H04L1/00(20060101);H04W28/06(20090101)
优先权:
专利状态码:有效-授权
法律状态:2021.01.19#授权;2017.09.19#实质审查的生效;2017.08.25#公开
摘要:一种基带帧的封装方法及解封装方法,其中封装方法包括:将接收到的未压缩数据包存储于输入数据缓冲区;对当前输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;将压缩数据包替换压缩数据缓冲区中已有的压缩数据包;当两个缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块;其中该待传输数据块的长度为一个基带帧所能容纳的最大数据长度;将待传输数据块封装为基带帧,并在基带帧的帧头内标识该待传输数据块是否经过压缩。本技术方案解决了现有的广播系统未考虑对输入数据进行压缩优化以及适应不同数据类型进行压缩优化的技术问题。
主权项:1.一种基带帧的封装方法,其特征在于,包括如下步骤:将接收到的未压缩数据包存储于输入数据缓冲区;对当前所述输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;将所述压缩数据包替换压缩数据缓冲区中已有的压缩数据包;当所述输入数据缓冲区和所述压缩数据缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块,其中,所述待传输数据块的长度为一个基带帧所能容纳的最大数据长度;以及将所述待传输数据块封装为基带帧,并在所述基带帧的帧头内标识所述待传输数据块是否经过压缩;还包括如下步骤:设定超时阈值,并在数据缓冲区清零时同时清零计时器;从执行将接收到的未压缩数据包存储于所述输入数据缓冲区的步骤开始计时,在所述计时器达到所述超时阈值时,无论所述压缩数据缓冲区内存储的压缩数据包的数据长度是否等于或大于一个基带帧所能容纳的最大数据长度,将当前所述压缩数据缓冲区内已存储的压缩数据包作为所述待传输数据块;以及将所述待传输数据块封装为基带帧,并在所述基带帧的帧头标识所述待传输数据块已经过压缩;当接收到的未压缩数据包为IP数据包或UDP数据包或TCP数据包或TS包时,对当前所述输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包的步骤具体包括:1把所有未压缩数据包作为一个整体进行压缩,并统计压缩后的长度;2根据接收到的未压缩数据包的不同类型,对所有未压缩数据包进行内容重排;3对经过内容重排的所有未压缩数据包中的包头进行压缩以形成压缩数据包包头;4将所述压缩数据包包头与经过内容重排的所有未压缩数据包中的数据负载拼接在一起,以形成压缩数据包,并统计所述压缩数据包的长度;5比较上述步骤1和步骤4得到的长度,选择其中长度较短的一个压缩后,将数据包放入所述压缩数据缓冲区;以及6在压缩数据包的头部设置压缩信息,所述压缩信息包括所述压缩数据包的压缩方法与包的类型;当接收到的未压缩数据包为其他类型的数据包时,对当前所述输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包的步骤中,压缩前不进行内容重排,把所有未压缩数据包作为一个整体直接进行压缩。
全文数据:基带帧的封装方法及解封装方法[0001]本申请是原案的分案申请,原案的申请号201410043596.3,申请日2〇14年1月29日,发明创造名称“基带帧的封装方法及解封装方法”。技术领域[0002]本发明涉及无线传输基带帧的传输技术领域,特别涉及一种基带帧的封装方法及解封装方法。背景技术[0003]随着无线广播和通信业务的发展,无线链路中传输的数据内容呈现多样化的特征,IP数据包成为主要的数据类型。IP数据包由数据包头和数据载荷两部分组成,前者用于标注发送和接收地址、协议类型等;后者用于承载所要传输的数据内容,可以进一步分为UDP或TCP等不同协议。这两部分数据都存在一定的冗余度。此外,其他一些无线广播和通信业务中所可能用的到数据类型,例如TS数据包等,也一定程度存在冗余度。为了提高无线链路的传输效率,在发送端对数据进行压缩并在接收端进行解压无损失地恢复出原数据是可行和有利的。[0004]在现有技术中,一些无线广播系统中并未考虑对输入数据进行压缩优化;在有些无线通信系统中,使用了带反馈的包头压缩功能,并不适用于单向的广播网络;在有些无线广播系统中,使用了RoHC协议等压缩方法,只适用于特定的数据类型,无法适用类型更广泛的其他数据类型或一些新型数据类型。[0005]无线链路基带帧中对数据的压缩传输方法主要需要解决的问题包括:一方面针对不同的输入数据类型与特征,以及基带帧本身的参数,适用不同的压缩方法,以提高效率;另一方面考虑到无线传输环境的复杂和恶劣,能够及时检测出传输错误并及时恢复正常工作状态。但现有技术中没有提供较理想的解决方案。发明内容[0006]本发明解决的问题是现有的广播系统未考虑对输入数据进行压缩优化以及适应不同数据类型进行压缩优化。[0007]为解决上述问题,本发明实施例提供一种基带帧的封装方法,包括如下步骤:将接收到的未压缩数据包存储于输入数据缓冲区;对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;将该压缩数据包替换压缩数据缓冲区中已有的压缩数据包;当两个缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块;其中该待传输数据块的长度为一个基带帧所能容纳的最大数据长度;将所述待传输数据块封装为基带帧,并在该基带帧的帧头内标识该待传输数据块是否经过压缩。[0008]可选的,基带帧的封装方法还包括如下步骤:若选择的数据长度较短的缓冲区内存储的所有数据包的长度大于一个基带帧所能容纳的最大数据长度,则将剩余数据包存储于该缓冲区的头部,并将该剩余数据包复制存储到另一个缓冲区的头部。[0009]可选的,基带帧的封装方法还包括如下步骤:无论该剩余数据包为未压缩数据包或是压缩数据包,该剩余数据包不再进行压缩。[0010]可选的,基带帧的封装方法还包括如下步骤:每封装完一个基带帧后,将输入数据缓冲区和压缩数据缓冲区中除剩余数据包以外的其他数据包清零。[0011]可选的,基带帧的封装方法还包括如下步骤:设定超时阈值,并在数据缓冲区清零时同时清零计时器;从执行将接收到的未压缩数据包存储于输入数据缓冲区的步骤开始计时,在计时器达到该超时阈值时,无论压缩数据缓冲区内存储的压缩数据包的数据长度是否等于或大于一个基带帧所能容纳的最大数据长度,将当前该压缩数据缓冲区内已存储的压缩数据包作为待传输数据块;将所述待传输数据块封装为基带帧,并在该基带帧的帧头标识该待传输数据块己经过压缩。[0012]可选的,所述输入数据缓冲区和所述压缩数据缓冲区所能容纳的数据长度至少大于一个基带帧所能容纳的最大数据长度。[0013]可选的,所述未压缩数据包和压缩数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。[0014]可选的,所述对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包包括如下步骤:1把所有未压缩数据包作为一个整体进行压缩,并统计其压缩后的长度;2根据接收到的未压缩数据包的不同类型,对所有未压缩数据包进行内容重排;3对经过内容重排的所有未压缩数据包中的包头进行压缩以形成压缩数据包包头;4将所述压缩数据包包头与经过内容重排的所有未压缩数据包中的数据负载拼接在一起以形成压缩数据包,并统计该压缩数据包的长度;5比较上述步骤1和步骤4得到的长度,选择其中长度较短的一个压缩后数据包放入压缩数据缓冲区;6在压缩数据包的头部设置压缩信息,所述压缩信息包括所述压缩数据的压缩方法与包的类型。[0015]本发明实施例还提供了一种基带帧的解封装方法,包括如下步骤:接收基带帧,其中所述基带帧是采用上述基带帧的封装方法封装而成;检测该基带帧的帧头以判断该基带帧内的传输数据包是否经过压缩;若判断结果为是,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的压缩数据包;对该完整的压缩数据包进行解压以得到原始数据;将当前基带帧的帧头与所述原始数据拼接在一起,并在当前基带帧的帧头内标识该原始数据已解压缩。[0016]可选的,基带帧的解封装方法还包括如下步骤:若判断结果为否,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有未压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的未压缩数据包;将当前基带帧的帧头与所述完整的未压缩数据拼接在一起。[0017]可选的,所述未压缩数据包、压缩数据包以及传输数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。[0018]可选的,提取压缩数据包中的压缩数据包包头;根据压缩信息中的标志位,选择对剩下的数据进行解压;或只对压缩数据包包头进行解压以得到各个包头,此后将各个包头与其对应的数据负载依照顺序进行重排并拼接以得到原始数据包。[0019]与现有技术相比,本发明技术方案具有以下有益效果:[0020]1对接收到的存储于输入数据缓冲区内的未压缩数据包进行压缩后存储于压缩数据缓冲区,并比较两个缓冲区内的数据包的数据长度,选择其中数据长度较短的缓冲区内的数据包作为待传输数据块,以实现基带帧的传输效率最优化。[0021]2在基带帧封装过程中,设定超时阈值,当处理一个基带帧封装的时间超过该超时阈值时,停止对未压缩数据包的压缩处理,将当前该压缩数据缓冲区内已存储的压缩数据包作为待传输数据块,从而避免了因输入的数据包信息冗余度高、压缩效率高而导致需要花费很长时间完成一个基带帧的封装,影响基带帧的正常传输。[0022]3对于IP数据包或UDP数据包或TCP数据包或TS包,在压缩过程中,先对所有未压缩数据包进行内容重排,将其中的包头取出合并进行压缩以形成压缩数据包包头,再与所有未压缩数据包中的数据负载拼接在一起以形成压缩数据包,从而减少运算量,提高压缩效率。[0023]4在压缩过程中,对IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包,还可将其看作一般数据进行完整压缩。通过比较该方法与上述重排-压缩的方法所得到的压缩数据包长度,选择更优的一种,以提高压缩效率。附图说明[0024]图1是本发明的一种基带帧的封装方法的具体实施方式的流程示意图;[0025]图2是本发明的一种基带帧的解封装方法的具体实施方式的流程示意图。具体实施方式[0026]发明人发现现有的广播系统未考虑对输入数据进行压缩优化以及适应不同数据类型进行压缩优化。[0027]针对上述问题,发明人经过研究,提供了一种基带帧的封装方法及解封装方法,以实现基带帧的传输效率最优化。[0028]为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。[0029]如图1所示的是本发明的一种基带帧的封装方法的具体实施方式的流程示意图。参考图1,基带帧的封装方法包括如下步骤:[0030]步骤S11:将接收到的未压缩数据包存储于输入数据缓冲区;[0031]步骤S12:对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;[0032]步骤S13:将该压缩数据包替换压缩数据缓冲区中已有的压缩数据包;[0033]步骤S14:当两个缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块;其中该待传输数据块的长度为一个基带帧所能容纳的最大数据长度;'[0034]步骤S15:将所述待传输数据块封装为基带帧,并在该基带帧的帧头内标识该待传输数据块是否经过压缩。[0035]本实施例中,在发送端作基带帧封装时,可以设置两个缓冲区,分别为输入数据缓冲区和压缩数据缓冲g,且所述输入数据缓冲区和所述压缩数据缓冲区所能容纳的数据长度至少大于一个基带帧所能容纳的最大数据长度。[0036]在开始传输未压缩数据包时,先清零两个缓冲区。然后,将接收到的未压缩数据包存储于输入数据缓冲区如步骤S11所述),其中所述未压缩数据包可以是IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。[0037]然后,如步骤S12所述,对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包。如步骤S13所述,将该压缩数据包替换压缩数据缓冲区中已有的压缩数据包。[0038]具体来说,在接收到第一个未压缩数据包并存储于输入数据缓冲区后,启用压缩器对该第一个未压缩数据包进行压缩以形成压缩数据包。然后,将该压缩数据包存储于压缩数据缓冲区中并替换已有的压缩数据包。需要说明的是,此时压缩数据缓冲区中尚未存储任何压缩数据包,替换已有的压缩数据包为空数据包。[0039]接下来,接收到第二个未压缩数据包并存储于输入数据缓冲区后,是将第一个未压缩数据包和第二个未压缩数据包作为整体进行压缩后以形成压缩数据包。然后,再将该压缩数据包存储于压缩数据缓冲区中并替换已有的压缩数据包,此时替换的己有的压缩数据包为先前的第一个压缩数据包。[0040]以此类推,依次对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包,并将该压缩数据包替换压缩数据缓冲区中己有的压缩数据包。[0041]接着,如步骤S14所述,当两个缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块。其中,该待传输数据块的长度为一个基带帧所能容纳的最大数据长度。[0042]具体来说,依照上述步骤S11至步骤S13的方式对接收到的未压缩数据包进行压缩处理,直到两个缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块。[0043]这里分为两种情况:[0044]1当两个缓冲区内存储的数据长度都等于一个基带帧所能容纳的最大数据长度时,可以选择其中任一个缓冲区内存储的数据包作为待传输数据块,而且在这种情况下,任一个缓冲区内所有的数据包全部在一个基带帧内传输,没有剩余数据包。[0045]2当两个缓冲区内存储的数据长度都大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块。具体地,当输入数据缓冲区内的数据长度大于压缩数据缓冲区内的数据长度时,说明压缩后的数据包的数据长度更少,从而选择压缩数据包(即压缩数据缓冲区内的数据包作为待传输数据块。当输入数据缓冲区内的数据长度小于压缩数据缓冲区内的数据长度时,说明压缩后的数据包的数据长度反而更大(即没有实现数据压缩,数据包反而多了冗余),这时选择未压缩数据包即输入数据缓冲区内的数据包作为待传输数据块。[0046]如步骤S15所述,将所述待传输数据块封装为基带帧,并在该基带帧的帧头内标识该待传输数据块是否经过压缩。其中,将待传输数据块封装为基带帧的封装过程可以现有技术来实现,在此不再赘述。在基带帧的帧头内设置一个标志位例如CMP,用于告知接收端当前基带帧的传输数据包是否经过了压缩,长度为1比特)。当CMP=0时,表示未启用数据包压缩功能,接收端可根据原有标准对数据域内容进行解析和使用;当CMP=1时,表示启用数据包压缩功能,接收端需把数据域内容先进行解压缩后再行解析和使用。[0047]需要说明的是,当两个缓冲区内存储的数据长度都大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块,该待传输数据块的长度为一个基带帧所能容纳的最大数据长度。这样缓冲区内将有一部分数据包称为剩余数据包需要放在下一个基带帧中传输,对于该剩余数据包的处理方式如下:[0048]将剩余数据包存储于所选择的数据长度较短的缓冲区的头部,并将该剩余数据包复制存储到另一个缓冲区的头部。例如,当所选择的缓冲区为输入数据缓冲区时,该剩余数据包存储于输入数据缓冲区的头部,并复制存储于压缩数据缓冲区的头部。当所选择的缓冲区为压缩数据缓冲区时,该剩余数据包存储于压缩数据缓冲区的头部,并复制存储于输入数据缓冲区的头部。[0049]进一步地,无论该剩余数据包为未压缩数据包或是压缩数据包,该剩余数据包不再进行压缩。也就是说,在后续输入数据缓冲区内接收新的未压缩数据包并对其进行压缩时,不再将存储于头部的剩余数据包进行压缩。[0050]依照上述实施例的方式对每一个基带帧进行封装,而每封装完一个基带帧后,将输入数据缓冲区和压缩数据缓冲区中除剩余数据包以外的其他数据包清零。[0051]发明人进一步考虑,若输入的未压缩数据包的信息冗余度高、而压缩效率高、压缩后的数据量很小,将会导致需要很多输入的未压缩数据包进行压缩才能填满压缩数据缓冲区,从而花费很长时间才能完成一个基带帧的封装。[0052]因此,基于上述实施例,发明人做了如下改进:[0053]1设定超时阈值,并在数据缓冲区清零时同时清零计时器;[0054]2从执行将接收到的未压缩数据包存储于输入数据缓冲区的步骤开始计时,在计时器达到该超时阈值时,无论压缩数据缓冲区内存储的压缩数据包的数据长度是否等于或大于一个基带帧所能容纳的最大数据长度,将当前该压缩数据缓冲区内已存储的压缩数据包作为待传输数据块;[0055]3将所述待传输数据块封装为基带帧,并在该基带帧的帧头标识该待传输数据块已经过压缩。[0056]通过这样改进,从而避免了因输入的数据包信息冗余度高、压缩效率高而导致需要花费很长时间完成一个基带帧的封装,影响基带帧的传输效率。[0057]另一方面,对于对未压缩数据包进行压缩的方式,本实施例提供如下实施方式,gp上述步骤S12包括如下步骤:[0058]1把所有未压缩数据包作为一个整体进行压缩,并统计其压缩后的长度;[0059]2根据接收到的未压缩数据包的不同类型,对所有未压缩数据包进行内容重排;[0060]3对经过内容重排的所有未压缩数据包中的包头进行压缩以形成压缩数据包包头;[0061]4将所述压缩数据包包头与经过内容重排的所有未压缩数据包中的数据负载拼接在一起以形成压缩数据包,并统计该压缩数据包的长度;[0062]5比较上述步骤1和步骤4得到的长度,选择其中长度较短的一个压缩后数据包放入压缩数据缓冲区;[0063]6在压缩数据包的头部设置压缩信息,所述压缩信息包括所述压缩数据的压缩方法与包的类型。[0064]在本实施例中,对所有未压缩数据包进行内容重排的实施过程是:将每一个未压缩数据包的包头提取出来,将这些包头合并在一起并进行压缩处理以形成压缩数据包包头;而将每一个未压缩数据包的数据负载提取出来,将这些数据负载合并在一起,但这些数据负载并不做压缩处理,从而减少运算量,提高压缩效率。[0065]需要说明的是,这样的压缩方式适用于IP数据包或UDP数据包或TCP数据包或TS包。对于其他类型的数据包,不进行内容重排,直接对其整体进行压缩处理。对于IP数据包或UDP数据包或TCP数据包或TS包,也可不进行内容重排,直接对其整体进行压缩处理。[0066]本发明实施例还提供了一种基带帧的解封装方法。如图2所示的是本发明的一种基带帧的解封装方法的具体实施方式的流程示意图。参考图2,基带帧的解封装方式包括如下步骤:[0067]步骤S21:接收基带帧,其中所述基带帧是采用上述基带帧的封装方法封装而成;[0068]步骤S22:检测该基带帧的帧头以判断该基带帧内的传输数据包是否经过压缩;[0069]步骤S23:若判断结果为是,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的压缩数据包;[0070]步骤S24:对该完整的压缩数据包进行解压以得到原始数据;[0071]步骤S25:将当前基带帧的帧头与所述原始数据拼接在一起,并在当前基带帧的帧头内标识该原始数据已解压缩。[0072]在本实施例中,接收端接收到基带帧后,检测该基带帧的帧头以判断该基带帧内的传输数据包是否经过压缩。[0073]若判断结果为是,则提取当前基带帧内的传输数据包中除剩余数据包若有的话)以外的所有压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的压缩数据包。然后,对该完整的压缩数据包进行解压以得到原始数据;接着,将当前基带帧的帧头与所述原始数据拼接在一起,并在当前基带帧的帧头内标识该原始数据已解压缩,交由接收端的下一级处理单元进行处理。[0074]其中,对该完整的压缩数据包进行解压以得到原始数据包括如下步骤:[0075]步骤S241:提取压缩数据包中的压缩信息;[0076]步骤S242:根据压缩信息中的标志位,选择对全部数据进行解压;或只对压缩数据包包头进行解压以得到各个包头,此后将各个包头与其对应的数据负载依照顺序进行重排并拼接以得到原始数据包。[0077]实际上,所述步骤S241和步骤S242是上文实施例中对未压缩数据包进行压缩以形成压缩数据包的逆过程。[0078]若判断结果为否,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有未压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的未压缩数据包;然后,将当前基带帧的帧头与所述完整的未压缩数据拼接在一起,交由接收端的下一级处理单元进行处理。[0079]在本实施例中,所述未压缩数据包、压缩数据包以及传输数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他不指定类型的数据包。[0080]本发明虽然己以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
权利要求:1.一种基带帧的封装方法,其特征在于,包括如下步骤:将接收到的未压缩数据包存储于输入数据缓冲区;对当前所述输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;将所述压缩数据包替换压缩数据缓冲区中己有的压缩数据包;当所述输入数据缓冲区和所述压缩数据缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块,其中,所述待传输数据块的长度为一个基带帧所能容纳的最大数据长度;以及,将所述待传输数据块封装为基带帧,并在所述基带帧的帧头内标识所述待传输数据块是否经过压缩。2.如权利要求1所述的基带帧的封装方法,其特征在于,还包括如下步骤:若选择的数据长度较短的缓冲区内存储的所有数据包的长度大于一个基带巾贞所能容纳的最大数据长度,则将剩余数据包存储于所述缓冲区的头部,并将所述剩余数据包复制存储到另一个缓冲区的头部。3.如权利要求2所述的基带帧的封装方法,其特征在于,还包括如下步骤:无论所述剩余数据包为未压缩数据包或是压缩数据包,所述剩余数据包不再进行压缩。4.如权利要求1所述的基带帧的封装方法,其特征在于,还包括如下步骤:每封装完一个基带帧后,将所述输入数据缓冲区和所述压缩数据缓冲区中除剩余数据包以外的其他数据包清零。5.如权利要求1所述的基带帧的封装方法,其特征在于,还包括如下步骤:设定超时阈值,并在数据缓冲区清零时同时清零计时器;从执行将接收到的未压缩数据包存储于所述输入数据缓冲区的步骤开始计时,在所述计时器达到所述超时阈值时,无论所述压缩数据缓冲区内存储的压缩数据包的数据长度是否等于或大于一个基带帧所能容纳的最大数据长度,将当前所述压缩数据缓冲区内已存储的压缩数据包作为所述待传输数据块;以及将所述待传输数据块封装为基带帧,并在所述基带帧的帧头标识所述待传输数据块已经过压缩。6.如权利要求1所述的基带帧的封装方法,其特征在于,所述输入数据缓冲区和所述压缩数据缓冲区所能容纳的数据长度至少大于一个基带帧所能容纳的最大数据长度。7.如权利要求1所述的基带帧的封装方法,其特征在于,所述未压缩数据包和压缩数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。8.如权利要求7所述的基带帧的封装方法,其特征在于,对当前所述输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包的步骤具体包括:1把所有未压缩数据包作为一个整体进行压缩,并统计压缩后的长度;2根据接收到的未压缩数据包的不同类型,对所有未压缩数据包进行内容重排;3对经过内容重排的所有未压缩数据包中的包头进行压缩以形成压缩数据包包头;4将所述压缩数据包包头与经过内容重排的所有未压缩数据包中的数据负载拼接在一起,以形成压缩数据包,并统计所述压缩数据包的长度;5比较上述步骤1和步骤4得到的长度,选择其中长度较短的一个压缩后,将数据包放入所述压缩数据缓冲区;以及6在压缩数据包的头部设置压缩信息,所述压缩信息包括所述压缩数据包的压缩方法与包的类型。9.一种基带帧的解封装方法,其特征在于,包括如下步骤:接收基带帧,其中所述基带帧是采用权利要求1所述的基带帧的封装方法封装而成;检测所述基带帧的帧头以判断所述基带帧内的传输数据包是否经过压缩;若判断结果为是,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包,拼接成一个完整的压缩数据包;对所述完整的压缩数据包进行解压以得到原始数据;以及将当前基带帧的帧头与所述原始数据拼接在一起,并在当前基带帧的帧头内标识所述原始数据已解压缩。10.如权利要求9所述的基带帧的解封装方法,其特征在于,还包括如下步骤:若判断结果为否,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有未压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包,拼接成一个完整的未压缩数据包;以及将当前基带帧的帧头与所述完整的未压缩数据包拼接在一起。11.如权利要求10所述的基带帧的解封装方法,其特征在于,所述未压缩数据包、压缩数据包以及传输数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。12.如权利要求11所述的基带帧的解封装方法,其特征在于,对所述完整的压缩数据包进行解压以得到原始数据的步骤具体包括:提取压缩数据包中的压缩信息;根据压缩信息中的标志位,选择对全部数据进行解压,或只对压缩数据包包头进行解压以得到各个包头,之后将各个包头与其对应的数据负载依照顺序进行重排并拼接,以得到原始数据。
百度查询: 上海数字电视国家工程研究中心有限公司 基带帧的封装方法及解封装方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。