基带帧的封装方法及解封装方法

文档序号:8489833阅读:1004来源:国知局
基带帧的封装方法及解封装方法
【技术领域】
[0001]本发明涉及无线传输基带帧的传输技术领域,特别涉及一种基带帧的封装方法及解封装方法。
【背景技术】
[0002]随着无线广播和通信业务的发展,无线链路中传输的数据内容呈现多样化的特征,IP数据包成为主要的数据类型。IP数据包由数据包头和数据载荷两部分组成,前者用于标注发送和接收地址、协议类型等;后者用于承载所要传输的数据内容,可以进一步分为UDP或TCP等不同协议。这两部分数据都存在一定的冗余度。此外,其他一些无线广播和通信业务中所可能用的到数据类型,例如TS数据包等,也一定程度存在冗余度。为了提高无线链路的传输效率,在发送端对数据进行压缩并在接收端进行解压无损失地恢复出原数据是可行和有利的。
[0003]在现有技术中,一些无线广播系统中并未考虑对输入数据进行压缩优化;在有些无线通信系统中,使用了带反馈的包头压缩功能,并不适用于单向的广播网络;在有些无线广播系统中,使用了 RoHC协议等压缩方法,只适用于特定的数据类型,无法适用类型更广泛的其他数据类型或一些新型数据类型。
[0004]无线链路基带帧中对数据的压缩传输方法主要需要解决的问题包括:一方面针对不同的输入数据类型与特征,以及基带帧本身的参数,适用不同的压缩方法,以提高效率;另一方面考虑到无线传输环境的复杂和恶劣,能够及时检测出传输错误并及时恢复正常工作状态。但现有技术中没有提供较理想的解决方案。

【发明内容】

[0005]本发明解决的问题是现有的广播系统未考虑对输入数据进行压缩优化以及适应不同数据类型进行压缩优化。
[0006]为解决上述问题,本发明实施例提供一种基带帧的封装方法,包括如下步骤:将接收到的未压缩数据包存储于输入数据缓冲区;对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;将该压缩数据包替换压缩数据缓冲区中已有的压缩数据包;当两个缓冲区内存储的数据长度都等于或大于一个基带帧所能容纳的最大数据长度时,选择其中数据长度较短的缓冲区内存储的数据包作为待传输数据块;其中该待传输数据块的长度为一个基带帧所能容纳的最大数据长度;将所述待传输数据块封装为基带帧,并在该基带帧的帧头内标识该待传输数据块是否经过压缩。
[0007]可选的,基带帧的封装方法还包括如下步骤:若选择的数据长度较短的缓冲区内存储的所有数据包的长度大于一个基带帧所能容纳的最大数据长度,则将剩余数据包存储于该缓冲区的头部,并将该剩余数据包复制存储到另一个缓冲区的头部。
[0008]可选的,基带帧的封装方法还包括如下步骤:无论该剩余数据包为未压缩数据包或是压缩数据包,该剩余数据包不再进行压缩。
[0009]可选的,基带帧的封装方法还包括如下步骤:每封装完一个基带帧后,将输入数据缓冲区和压缩数据缓冲区中除剩余数据包以外的其他数据包清零。
[0010]可选的,基带帧的封装方法还包括如下步骤:设定超时阈值,并在数据缓冲区清零时同时清零计时器;从执行将接收到的未压缩数据包存储于输入数据缓冲区的步骤开始计时,在计时器达到该超时阈值时,无论压缩数据缓冲区内存储的压缩数据包的数据长度是否等于或大于一个基带帧所能容纳的最大数据长度,将当前该压缩数据缓冲区内已存储的压缩数据包作为待传输数据块;将所述待传输数据块封装为基带帧,并在该基带帧的帧头标识该待传输数据块已经过压缩。
[0011]可选的,所述输入数据缓冲区和所述压缩数据缓冲区所能容纳的数据长度至少大于一个基带帧所能容纳的最大数据长度。
[0012]可选的,所述未压缩数据包和压缩数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。
[0013]可选的,所述对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包包括如下步骤:1)把所有未压缩数据包作为一个整体进行压缩,并统计其压缩后的长度;2)根据接收到的未压缩数据包的不同类型,对所有未压缩数据包进行内容重排;3)对经过内容重排的所有未压缩数据包中的包头进行压缩以形成压缩数据包包头;4)将所述压缩数据包包头与经过内容重排的所有未压缩数据包中的数据负载拼接在一起以形成压缩数据包,并统计该压缩数据包的长度;5)比较上述步骤I)和步骤4)得到的长度,选择其中长度较短的一个压缩后数据包放入压缩数据缓冲区;6)在压缩数据包的头部设置压缩信息,所述压缩信息包括所述压缩数据的压缩方法与包的类型。
[0014]本发明实施例还提供了一种基带帧的解封装方法,包括如下步骤:接收基带帧,其中所述基带帧是采用上述基带帧的封装方法封装而成;检测该基带帧的帧头以判断该基带帧内的传输数据包是否经过压缩;若判断结果为是,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的压缩数据包;对该完整的压缩数据包进行解压以得到原始数据;将当前基带帧的帧头与所述原始数据拼接在一起,并在当前基带帧的帧头内标识该原始数据已解压缩。
[0015]可选的,基带帧的解封装方法还包括如下步骤:若判断结果为否,则提取当前基带帧内的传输数据包中除剩余数据包以外的所有未压缩数据包,以及下一个基带帧内的传输数据包中的剩余数据包拼接成一个完整的未压缩数据包;将当前基带帧的帧头与所述完整的未压缩数据拼接在一起。
[0016]可选的,所述未压缩数据包、压缩数据包以及传输数据包为IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包。
[0017]可选的,提取压缩数据包中的压缩数据包包头;根据压缩信息中的标志位,选择对剩下的数据进行解压;或只对压缩数据包包头进行解压以得到各个包头,此后将各个包头与其对应的数据负载依照顺序进行重排并拼接以得到原始数据包。
[0018]与现有技术相比,本发明技术方案具有以下有益效果:
[0019]I)对接收到的存储于输入数据缓冲区内的未压缩数据包进行压缩后存储于压缩数据缓冲区,并比较两个缓冲区内的数据包的数据长度,选择其中数据长度较短的缓冲区内的数据包作为待传输数据块,以实现基带帧的传输效率最优化。
[0020]2)在基带帧封装过程中,设定超时阈值,当处理一个基带帧封装的时间超过该超时阈值时,停止对未压缩数据包的压缩处理,将当前该压缩数据缓冲区内已存储的压缩数据包作为待传输数据块,从而避免了因输入的数据包信息冗余度高、压缩效率高而导致需要花费很长时间完成一个基带帧的封装,影响基带帧的正常传输。
[0021 ] 3 )对于IP数据包或UDP数据包或TCP数据包或TS包,在压缩过程中,先对所有未压缩数据包进行内容重排,将其中的包头取出合并进行压缩以形成压缩数据包包头,再与所有未压缩数据包中的数据负载拼接在一起以形成压缩数据包,从而减少运算量,提高压缩效率。
[0022]4)在压缩过程中,对IP数据包或UDP数据包或TCP数据包或TS包或其他未指定类型数据包,还可将其看作一般数据进行完整压缩。通过比较该方法与上述重排-压缩的方法所得到的压缩数据包长度,选择更优的一种,以提高压缩效率。
【附图说明】
[0023]图1是本发明的一种基带帧的封装方法的【具体实施方式】的流程示意图;
[0024]图2是本发明的一种基带帧的解封装方法的【具体实施方式】的流程示意图。
【具体实施方式】
[0025]发明人发现现有的广播系统未考虑对输入数据进行压缩优化以及适应不同数据类型进行压缩优化。
[0026]针对上述问题,发明人经过研究,提供了一种基带帧的封装方法及解封装方法,以实现基带帧的传输效率最优化。
[0027]为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的【具体实施方式】做详细的说明。
[0028]如图1所示的是本发明的一种基带帧的封装方法的【具体实施方式】的流程示意图。参考图1,基带帧的封装方法包括如下步骤:
[0029]步骤Sll:将接收到的未压缩数据包存储于输入数据缓冲区;
[0030]步骤S12:对当前该输入数据缓冲区内的所有未压缩数据包进行压缩以形成压缩数据包;
[0031]步骤S13:将该压缩数据包替换压缩数据缓冲区中已有的压缩数据包;
[0032]步骤S14
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1