具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本发明的实施例提供一种数据的传输方法,应用于天基遥测系统,所述方法包括:
步骤11,获取待传输数据;
步骤12,对所述待传输数据进行分块处理,获取多个数据块;其中,所述数据块为一帧视频或一段时间的传感器数据;
步骤13,通过预设压缩算法对每个所述数据块分别进行压缩,获取每个数据块所对应的压缩数据块;
步骤14,对每个所述压缩数据块进行差分处理,获取每个所述压缩数据块所对应的目标数据块;
步骤15,将所述目标数据块传输至接收端。
本实施例中,所述预设压缩算法能够识别和消除数据中的冗余,并将数据以更紧凑的形式表示的压缩算法;通过对每个数据块应用预设压缩算法压缩,可以显著减小数据的大小,从而节省传输带宽;所述数据的传输方法,主要应用于天基遥测系统,实现对天基遥测系统的遥测数据的实时传输(所述遥测数据包括星箭分离的视频数据),同时提高了数据传输的准确性,解决传统的天基遥测系统在传输星箭分离视频时面临带宽有限的挑战,导致传输时间延长,无法实时观看分离画面的问题;该实施例通过对待传输数据进行分块处理,并通过上下文感知压缩算法和差分传输等方式对分块后的数据块进行压缩处理和差分传输处理,从而减小视频数据的大小,减少了传输所需的时间,节省了传输带宽,从而实现对天基遥测系统的遥测数据的实时传输和提高数据传输的准确性,同时,选用的预设压缩算法还可具有自适应压缩参数调整功能,通过自适应压缩参数的调整,可确保关键细节的保留,因此,即使在节省传输带宽和时间的同时,传输的视频数据质量依然能够满足实时观看的要求,使得操作人员或分析人员能够准确地观察和分析星箭分离画面;本发明所述的数据的传输方法,实现了对于天基遥测数据的高效传输,提升了对于卫星箭体分离过程的实时监测能力,为任务的成功与分析决策提供了有力支持。
本发明的一个可选的实施例中,步骤13可以包括:
步骤131,根据所述数据块中不同字符的频率,构建预设压缩算法的编码树;
步骤132,根据所述编码树,获取预设压缩算法的编码表;
步骤133,获取预设压缩算法的基本参数;
步骤134,通过所述编码表和所述预设压缩算法的基本参数,对所有所述数据块分别进行编码,获取每个数据块所对应的压缩数据块。
其中,步骤133可以包括:
获取预设压缩算法的滑动窗口大小;
获取预设压缩算法的查找缓冲区大小;
获取预设压缩算法的最小匹配长度。
步骤134,可以包括:
步骤1341,初始化预设压缩算法的滑动窗口和查找缓冲区;
步骤1341,遍历数据块,并基于所述编码表,通过滑动窗口和查找缓冲区,获取数据块中的所有重复序列;
步骤1341,通过指针指向滑动窗口中所有与所述重复序列相同的序列,获取压缩数据块。
本实施例中,所述预设压缩算法中,滑动窗口指定了在压缩过程中用于查找重复序列的窗口大小,较大的窗口可以增加重复序列的查找范围,提高压缩效率;查找缓冲区是滑动窗口中用于查找重复序列的部分,其大小限制了查找重复序列的最大长度;算法中的最小匹配长度指定了重复序列的最小长度,只有匹配长度达到或超过该值时,才会进行压缩;编码树用于生成编码,可根据数据块中不同字符的频率进行构建;编码表根据编码树生成,记录了每个字符对应的编码;
该实施例中,在天基遥测视频流数据传输中,所述滑动窗口和查找缓冲区的初始化是为了在压缩过程中查找重复序列;滑动窗口用于存储当前数据块的一部分内容,查找缓冲区用于存储滑动窗口内的历史数据,以供比较和匹配;在DEFLATE压缩算法中,通过滑动窗口和查找缓冲区,找到重复的序列,并使用指针指向滑动窗口中的相同序列,实现对天基遥测视频流数据的压缩;这样可以减少数据的冗余信息,从而节省传输时间和带宽;
下面将以具体的实施例对步骤134进行举例说明:
假设数据块为:$D$=[10,15,20,15,10,25,30,35,40,35];滑动窗口大小为:$W$=5;查找缓冲区大小:$L$=3;最小匹配长度为:$M$=2;编码表为:$T$={'10':'00','15':'01','20':'10','25':'110','30':'1110','35':'1111','40':'110'};
首先,初始化预设压缩算法的滑动窗口和查找缓冲区:
$Sl=0$;
$Sr=W-1=4$;
$Ll=Sl-L=-3$;
$Lr=Sl-1=-1$;
其中,$Sl$为滑动窗口左边界;$Sr$为滑动窗口右边界;$Ll$为查找缓冲区左边界;$Lr$为查找缓冲区右边界;
根据DEFLATE压缩算法,对数据块进行压缩,获取压缩后的数据块$C$,即$C=\text{DEFLATE}(D,Sl,Sr,Ll,Lr,M,T)$:
将滑动窗口内的初始内容设置为[10,15,20,15,10];
遍历数据块,从索引5开始(因为滑动窗口内已经有5个元素):
当前索引为5,滑动窗口为[10,15,20,15,10],查找缓冲区为空;
从滑动窗口尾部开始向前查找匹配的序列,找到匹配序列[10,15],并记录指针为-3;
将指针和下一个字符(25)添加到压缩后的数据块:$C$=[(指针:-3,字符:25)];
更新滑动窗口和查找缓冲区,滑动窗口变为[15,20,15,10,25];
继续遍历数据块,从索引6开始:
当前索引为6,滑动窗口为[15,20,15,10,25],查找缓冲区为[10,15]。
从滑动窗口尾部开始向前查找匹配的序列,找到匹配序列[15,10],并记录指针为-2;
将指针和下一个字符(30)添加到压缩后的数据块:$C$=[(指针:-3,字符:25),(指针:-2,字符:30)];
更新滑动窗口和查找缓冲区,滑动窗口变为[20,15,10,25,30];
继续遍历数据块,从索引7开始:
当前索引为7,滑动窗口为[20,15,10,25,30],查找缓冲区为[15,10];
从滑动窗口尾部开始向前查找匹配的序列,找到匹配序列[15,10],并记录指针为-2;
将指针和下一个字符(35)添加到压缩后的数据块:$C$=[(指针:-3,字符:25),(指针:-2,字符:30),(指针:-2,字符:35)];
更新滑动窗口和查找缓冲区,滑动窗口变为[15,10,25,30,35];
继续遍历数据块,从索引8开始:
当前索引为8,滑动窗口为[15,10,25,30,35],查找缓冲区为[10,25];
从滑动窗口尾部开始向前查找匹配的序列,找到匹配序列[10,25],并记录指针为-2;
将指针和下一个字符(40)添加到压缩后的数据块:$C$=[(指针:-3,字符:25),(指针:-2,字符:30),(指针:-2,字符:35),(指针:-2,字符:40)];
更新滑动窗口和查找缓冲区,滑动窗口变为[10,25,30,35,40];
最终,压缩后的数据块为$C$=[(指针:-3,字符:25),(指针:-2,字符:30),(指针:-2,字符:35),(指针:-2,字符:40)],即将$C$作为压缩数据块输出。
该实施例,通过DEFLATE压缩算法,将原始数据块$D$=[10,15,20,15,10,25,30,35,40,35]压缩为$C$=[(指针:-3,字符:25),(指针:-2,字符:30),(指针:-2,字符:35),(指针:-2,字符:40)];压缩后的数据块$C$只包含指向滑动窗口中已经出现过的重复序列的指针,以及新的不重复的字符;这样可以减少数据的冗余信息,从而节省传输时间和带宽。
本发明的一个可选的实施例中,所述数据的传输方法,还包括:
步骤16,根据编码表,获取预设压缩算法的解码字典;
步骤17,将所述预设压缩算法的解码字典传输至接收端;
步骤18,所述接收端通过所述解码字典对所述目标数据块进行解码,获取目标数据。
本实施例中,所述预设压缩算法的解码字典为编码字典;所述编码字典表示了压缩后数据块中每个字符的位置信息,以便解压缩和重构过程中的准确还原;该实施例中,接收端接收到传输的目标数据块后,使用所述编码字典,对目标数据块进行解码和还原,恢复原始的天基遥测数据,通过解压缩和重构,可以得到与原始数据一致的信息,以供后续的分析和处理;
解压缩过程中,根据编码表和编码字典,将目标数据块中的编码逐个解码,恢复出原始的字符序列;通过对每个字符进行解码,逐步重构出原始的天基遥测视频数据,这样,接收端就能够实时观看和处理天基遥测视频数据;其中,所述目标数据块中的编码是根据编码表生成的,它将每个字符映射为对应的比特序列,以实现数据的压缩表示。
一种优选的实施例中,所述数据的传输方法,还包括:
获取目标数据的大小;
根据所述目标数据的大小评估解压缩的效果和传输带宽的占用情况,并根据需要进行传输带宽的调整。
本实施例中,计算目标数据的大小,即解目标数据中的比特数;通过对目标数据的大小进行计算,可以评估解压缩的效果和传输带宽的占用情况,并根据需要进行传输带宽的调整。
本发明的一个可选的实施例中,步骤14可以包括:
步骤141,确定每个压缩数据块中,和上次传输的目标数据块结果相比,发生变化的差异数据;
步骤142,根据每个压缩数据块的所述差异数据,获取每个压缩数据块所对应的目标数据块。
本实施例中,所述差分处理主要是用于获取连续压缩数据块中与前一个压缩数据块不同的部分,从而减少传输的数据量;下面通过一个具体的例子来说明差分处理的实现过程;
假设有三个连续的压缩数据块:$D_1$,$D_2$,$D_3$,其中,$D_1$为第一压缩数据块,$D_2$和$D_3$为第一压缩数据块的后续压缩数据块,分别设$D_2$为第二压缩数据块、$D_3$为第三压缩数据块;
首先,将第一个数据块$D_1$作为基准数据块(即初始目标数据块),并直接传输给接收端;
对于第二个数据块$D_2$,与基准数据块$D_1$进行比较,找出两者之间的差异即差异数据;
假设$D_2$中与$D_1$不同的部分为$D_{diff1}$,即差异数据为$D_{diff1}$;
则提取差异数据$D_{diff1}$,获取含有差异数据$D_{diff1}$的差分数据块;
将所述差分数据块作为新的目标数据块,传输给接收端;
接收端接收到目标数据块后,使用基准数据块$D_1$和差异数据$D_{diff1}$进行合并,得到完整的第二个数据块$D_2'$,即$D_2'=D_1\oplus D_{diff1}$;
对于第三个数据块$D_3$,则与合并后的$D_2'$进行比较,找出两者之间的差异;
假设差异部分为$D_{diff2}$,表示$D_3$中与$D_2'$不同的部分;
将$D_{diff2}$,传输给接收端;
接收端接收到$D_{diff2}$后,使用合并后的数据块$D_2'$和$D_{diff2}$进行合并,得到完整的第三个数据块$D_3'$,即$D_3'=D_2'\oplus D_{diff2}$;
该实施例中,通过差分处理的方式,只需要传输差异部分,即$D_{diff1}$和$D_{diff2}$,而不需要重复传输相同的数据,该方式可以减少传输的数据量,提高传输效率;
需要注意的是,差分处理需要实时获取接收端的合并操作结果,使用基准数据块和差分数据块进行异或运算($\oplus$),以恢复出完整的数据块。
本发明的一个可选的实施例中,步骤15可以包括:
步骤151,设置至少两种标识符;
步骤152,通过至少两种标识符对所有所述目标数据块分别优先级标记,获取至少两种标记数据块;
步骤153,确定每个种标识符的优先级,并根据所述标识符的优先级对所述标记数据块进行排序;
步骤154,将排序后的标记数据块按照排列顺序依次传输至接收端。
本实施例中,使用前可将每个目标数据块分配一个优先级,并使用整数或其他标识符表示;较高的优先级表示数据块的重要性更高,需要优先传输;将所有标记后的目标数据块(即标记数据块)按照优先级从高到低进行排序(可以使用优先队列、堆等数据结构来实现),依次按照优先级顺序传输标记后的目标数据块;从优先级最高的标记数据块开始传输,直到所有标记数据块被传输完毕或达到传输的带宽限制为止;
一种优选的实施例中,在传输过程中,可以实时监测传输状态,包括已传输的目标数据块数量、传输速度等指标;根据实时的带宽情况和目标数据块的优先级,动态调整传输策略;通过设置目标数据块的优先级,可以确保关键信息的实时传输;较高优先级的数据块将被优先传输,确保其在有限带宽下能够及时到达接收端;这样可以保证关键信息的实时性和准确性,同时提高数据传输的效率。
本发明所述的数据的传输方法,通过采用特定的上下文感知压缩算法和自适应压缩参数,有效减小视频数据的大小,从而节省传输所需的带宽;解决了传统的天基遥测系统在传输星箭分离视频时面临带宽有限的挑战,传输所需的带宽较大,无法满足实时传输的需求等问题;通过压缩算法的应用和差分处理的方式,进一步的减小数据量并仅传输变化部分,大幅减少传输时间,实现对星箭分离画面的实时观看;同时,通过自适应压缩参数的调整和关注关键细节的保留,确保在带宽节省的同时,保持传输视频的良好质量;本发明的方法能够有效的节省天基遥测带宽,提高带宽利用率,减少传输时间,并保证传输视频的质量,同时,实时观看星箭分离画面的实现也提供了重要的实时监测和决策支持,进一步提升了对任务的成功性和响应性。
如图2所示,本发明的实施例提供一种数据的传输装置20,包括:
获取模块21,用于获取待传输数据;对所述待传输数据进行分块处理,获取多个数据块;
处理模块22,用于通过预设压缩算法对每个所述数据块分别进行压缩,获取每个数据块所对应的压缩数据块;对每个所述压缩数据块进行差分处理,获取每个所述压缩数据块所对应的目标数据块;将所述目标数据块传输至接收端。
可选的,所述数据块为一帧视频或一段时间的传感器数据。
可选的,通过预设压缩算法对每个所述数据块分别进行压缩,获取每个数据块所对应的压缩数据块,包括:
根据所述数据块中不同字符的频率,构建预设压缩算法的编码树;
根据所述编码树,获取预设压缩算法的编码表;
获取预设压缩算法的基本参数;
通过所述编码表和所述预设压缩算法的基本参数,对所有所述数据块分别进行编码,获取每个数据块所对应的压缩数据块。
可选的,获取预设压缩算法的基本参数,包括:
获取预设压缩算法的滑动窗口大小;
获取预设压缩算法的查找缓冲区大小;
获取预设压缩算法的最小匹配长度。
可选的,通过所述编码表和所述预设压缩算法的基本参数,对所有所述数据块分别进行编码,获取每个数据块所对应的压缩数据块,包括:
初始化预设压缩算法的滑动窗口和查找缓冲区;
遍历数据块,并基于所述编码表,通过滑动窗口和查找缓冲区,获取数据块中的所有重复序列;
通过指针指向滑动窗口中所有与所述重复序列相同的序列,获取压缩数据块。
可选的,所述的数据的传输方法,还包括:
根据编码表,获取预设压缩算法的解码字典;
将所述预设压缩算法的解码字典传输至接收端;
所述接收端通过所述解码字典对所述目标数据块进行解码,获取目标数据。
可选的,对每个所述压缩数据块进行差分处理,获取每个所述压缩数据块所对应的目标数据块,包括:
确定每个压缩数据块中,和上次传输的目标数据块结果相比,发生变化的差异数据;
根据每个压缩数据块的所述差异数据,获取每个压缩数据块所对应的目标数据块。
可选的,将所述目标数据块发送至接收端,包括:
设置至少两种标识符;
通过至少两种标识符对所有所述目标数据块分别优先级标记,获取至少两种标记数据块;
确定每个种标识符的优先级,并根据所述标识符的优先级对所述标记数据块进行排序;
将排序后的标记数据块按照排列顺序依次传输至接收端。
需要说明的是,该装置是与上述数据的传输方法对应的装置,上述方法中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
本发明的实施例还提供一种计算设备,包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如所述的数据的传输方法的步骤。
本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上所述的数据的传输方法。上述各方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。