首页 / 专利分类库 / 基本电子电路 / 一种基于雷达算法的数据压缩方法

一种基于雷达算法数据压缩方法

申请号 CN202410289762.1 申请日 2024-03-14 公开(公告)号 CN117895950A 公开(公告)日 2024-04-16
申请人 成都秀为科技发展有限公司; 发明人 王勇刚;
摘要 本 发明 公开了一种基于雷达 算法 的 数据压缩 方法,涉及数据压缩处理方法领域,现提出如下方案,包括以下步骤:S1、数据样本可压缩性分析处理;S2、压缩实现与结果分析处理;S3、实现方式分析处理;S4、详细设计处理;S5、效果评估处理;S6、技术难点与 风 险分析评估处理;本发明通过数据样本可压缩性分析处理、压缩实现与结果分析处理、实现方式分析处理、详细设计处理、效果评估处理和技术难点与风险分析评估处理,有效的增加了字典深度,减小了字典的更新 频率 ,可以很好的提高压缩速度,同时LZ系列压缩算法也存在模板匹配和字典生成,也会增加资源使用率,降低工作时长。
权利要求

1.一种基于雷达算法数据压缩方法,其特征在于,包括以下步骤:
S1、数据样本可压缩性分析处理:对数据样本进行数据样本格式以及信息冗余与可压缩性的分析判断处理;
S2、压缩实现与结果分析处理:对压缩性分析后的数据样本进行样本数据表达与信息冗余度分析,同时进行编码格式的改进,并进行压缩和解压缩处理,同时对压缩和解压缩处理结果进行对比分析处理;
S3、实现方式分析处理:对压缩实现与结果分析处理后的数据进行多种实现途径的分析;
S4、详细设计处理:对实现方式分析处理后的数据进行算法实现原理与组成处理,其中包括压缩过程设计、解压缩过程设计、工程验证和资源占用分析处理;
S5、效果评估处理:对通过S4详细设计处理后的数据进行压缩和解压效果的评估分析;
S6、技术难点与险分析评估处理:最后进行技术难点与风险的分析包括压缩率、资源开销与压缩速度和并行化与数据同步分析评估。
2.根据权利要求1所述的一种基于雷达算法的数据压缩方法,其特征在于,所述S1数据样本可压缩性分析处理中的数据样本格式分为原始数据、基带数据和脉压数据;
所述原始数据是ADC采样数据,为实数表达的一组二进制离散序列,所述原始数据包含了噪声位和有效位;
所述基带数据是原始数据经过处理变换后的数据,为零频的复数数据;
所述脉压数据是经过冲压缩算法处理过的数据,采用双精度浮点型表达。
3.根据权利要求1所述的一种基于雷达算法的数据压缩方法,其特征在于,所述S2压缩实现与结果分析处理中的样本数据表达与信息冗余度分析步骤如下:
步骤一:分析数据样本,数据格式为matlab格式;
步骤二:导入到matlab后,分离出数据头文件,T1回波数据,T2回波数据,两种回波数据均为双精度浮点型复数形式;
步骤三:把分离的T1、T2数据单独存储成二进制文件,使用十六进制观察数据序列;
所述S2压缩实现与结果分析处理中的编码格式的改进步骤如下:
步骤一:设计一套编码格式,对二进制序列进行重新编码;
步骤二:对重新编码后的数据进行符号位独立、权值位和数据有效位强制编码转换,使之每个权值数据实现8bit对齐。
4.根据权利要求1所述的一种基于雷达算法的数据压缩方法,其特征在于,所述S2中的压缩和解压缩处理流程分别如下:
所述压缩实现流程为:双精度浮点型数据序列和定点型数据序列,先送入数值回归编码单元,进行串行序列号编码,然后把编码后的字符序列送入压缩引擎压缩后,进行数据打包,然后通过物理通信接口送到存储单元进行存储;
所述解压缩实现流程为:将存储的压缩数据发到各个解压支路,然后进行LZ解压缩,解压缩后的数据进行多路同步重组后,进行数据流打包;
所述S2中的压缩结果对比,使用LZO算法进行压缩,数据使用二进制文件方式保存,原始数据根据压缩比进行压缩。
5.根据权利要求1所述的一种基于雷达算法的数据压缩方法,其特征在于,所述S3实现方式分析处理中的实现方式分析包括实现途径分析、CPU实现和FPGA实现:
所述实现途径分析基于理论分析和代码验证,对原始信源的二进制序列重新编码处理;
所述CPU实现用于在CPU上实现编码和数据压缩处理;
所述FPGA实现通过LZW算法进行计算处理。
6.根据权利要求1所述的一种基于雷达算法的数据压缩方法,其特征在于,所述S4详细设计处理中的压缩过程设计主要包含SRIO接口、数据分发、数据回归编码、数据压缩单元和数据打包单元;
所述解压缩过程设计跟压缩流程对称处理,解压缩流程采用24个LZW解压缩模并行工作的方式来进行数据的解压缩处理;
所述S4详细设计处理中的算法实现原理与组成包括分发模块、同步数据编码模块、数据压缩模块和存储处理模块。
7.根据权利要求1所述的一种基于雷达算法的数据压缩方法,其特征在于,所述S5效果评估处理中的压缩效果评估和解压缩效果评估在详细设计处理完成和综合编译后,通过Vivado集成的仿真工具xsim进行仿真验证。

说明书全文

一种基于雷达算法数据压缩方法

技术领域

[0001] 本发明涉及数据压缩处理方法,尤其涉及一种基于雷达算法的数据压缩方法。

背景技术

[0002] 对于数据压缩,有两大类无损压缩(lossless compression)和有损压缩(lossy compression),无损压缩能够保留全部的信息,但是相应的压缩率也就比不上有损压缩,无损压缩也叫做可逆压缩,有损压缩也被称为不可逆压缩;由于人的感觉器官对于图片、声音或视频中的某些信息的丢失难以察觉,采用有损压缩算法可以节约大量的存储空间,主要有预测编码、多分辨率编码、分型图形编码等,无损压缩算法主要有哈夫曼编码、算术编码、游程编码和LZ编码等,其中哈夫曼编码与算术编码均根据源数据发生的概率进行编码,需要对压缩数据进行统计,处理过程缓慢,实时性差;游程编码只有在字符连续出现4次以上才能获得比较好的压缩效果,不适用于压缩雷达回波信号,LZ编码是基于字典的模式,用单个代码代替字符串,数据流式输入,对数据源无分要求,实时效果好,解压完全可逆,因此对于特定的数据样本,需要考察数据样本的编码格式的动态范围(量程)和数据信息流的幅度分布和概率,动态范围很大,分布随机的数据流,信息冗余很小,基本不可以被压缩,动态范围小,分布规律的数据,具备很高的压缩性,并且压缩率跟两个变量(信息熵)正相关,为此,我们提出了一种基于雷达算法的数据压缩方法。

发明内容

[0003] 本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于雷达算法的数据压缩方法。
[0004] 为了实现上述目的,本发明采用了如下技术方案:一种基于雷达算法的数据压缩方法,包括以下步骤:
S1、数据样本可压缩性分析处理:对数据样本进行数据样本格式以及信息冗余与可压缩性的分析判断处理;
S2、压缩实现与结果分析处理:对压缩性分析后的数据样本进行样本数据表达与信息冗余度分析,同时进行编码格式的改进,并进行压缩\解压缩处理,同时对压缩\解压缩处理结果进行对比分析处理;
S3、实现方式分析处理:对压缩实现与结果分析处理后的数据进行多种实现途径的分析;
S4、详细设计处理:对实现方式分析处理后的数据进行算法实现原理与组成处理,其中包括压缩过程设计、解压缩过程设计、工程验证和资源占用分析处理;
S5、效果评估处理:对通过S4详细设计处理后的数据进行压缩和解压效果的评估分析;
S6、技术难点与险分析评估处理:最后进行技术难点与风险的分析包括压缩率、资源开销与压缩速度和并行化与数据同步分析评估。
[0005] 进一步地,所述S1数据样本可压缩性分析处理中的数据样本格式分为原始数据、基带数据和脉压数据;所述原始数据是ADC采样数据,为实数表达的一组二进制离散序列,对齐到16bit,所述原始数据包含了噪声位和有效位,所述噪声位服从高斯白噪声分布,并且方差较小(带宽限制);
所述有效位用于表达有效信号(信息),为一组有规律的序列(信息熵有限),考虑到雷达处理机的动态范围,噪声需要3 5bit来表达,信号序列又有规律,因此存在压缩的可~
能;
所述基带数据是原始数据经过处理变换后的数据,为零频的复数数据,为32bit的二进制离散序列,所述基带数据跟原始数据类似,也存在较大的信息冗余,存在压缩的可能;
所述脉压数据是经过冲压缩算法处理过的数据,采用双精度浮点型(64bit)表达,所述脉压数据为双精度浮点表达的复数序列,也包含了信息和噪声,从数据信息组成上,跟基带数据和原始数据一致,只是扩展了数据的表达范围(信号动态),但是根据信息的有限性,数据的分布存在规律性,幅度范围不可能扩展到双精度范围的最大量程(累加处理需要,另外,双精度浮点型数据量程范围为:‑1.7E‑308~1.7E+308),实际数据远远小于最大量程,因此存在数据的可压缩性。
[0006] 进一步地,所述S2压缩实现与结果分析处理中的样本数据表达与信息冗余度分析步骤如下:步骤一:分析数据样本,数据格式为matlab格式;
步骤二:导入到matlab后,分离出数据头文件,T1回波数据,T2回波数据,两种回波数据均为双精度浮点型复数形式;
步骤三:把分离的T1、T2数据单独存储成二进制文件,使用十六进制观察数据序列;
由于符号位扩展,以及双精度浮点类型的数据表达方式的原因,导致数据序列分布排列无序,数据基本没有重复序列,因此存在压缩困难,使用LZ算法压缩后,压缩比很低;
把复数序列单独提取,并且重新组合成I路和Q路序列,并用二进制的方式保存成文件,重新使用十六进制观察数据序列,由于做了信号分离,数据虽然还是双精度浮点型表达,但是有了一定的重复性,因此具备一定的压缩可能,数据压缩后,由于双精度类型的编码格式问题,重复性还是非常低,导致压缩率很低;
所述S2压缩实现与结果分析处理中的编码格式的改进步骤如下:
步骤一:设计一套编码格式,对二进制序列进行重新编码,实现量程压缩和映射集缩小,来达到数据无损压缩率增加的目的;
步骤二:对重新编码后的数据进行符号位独立、权值位和数据有效位强制编码转换,使之每个权值数据实现8bit对齐,以实现高位宽的数据流到串行码流的转换,压缩动态,提升了符号的重复率,在此基础上对串行码流再进行压缩,大大提高压缩比,提高传输信道和存储空间的利用率;
考察IQ数据的时域频率信息,根据数据时频域特性得出以下特点:
1)幅度有限(能量有限),并且幅度范围远小于双精度浮点数据类型的编码范围(量程);
2)信息集中,信息能量有规律的分布在一定带宽,噪声能量服从高斯分布,方差小;
因此,这类型的数据存在很大的压缩性,但是由于双精度浮点数据类型的编码格式,导致信息编码分成了3个区域,并且没有按照字节对齐,因此在二进制序列内,信息分布离散化,导致信息熵增大,压缩比例降低,基于以上分析,对二进制序列进行重新编码,以此实现量程压缩和映射集缩小(提高重复性),来达到数据无损压缩率增加的目的,把符号位独立,权值位和数据有效位强制编码转换,使之每个权值数据实现8bit对齐,以实现高位宽的数据流到串行码流的转换,压缩动态,提升了符号的重复率,在此基础上对串行码流再进行压缩,有效的提高了压缩比,提高传输信道和存储空间的利用率。
[0007] 进一步地,所述S2中的压缩和解压缩处理流程分别如下:所述压缩实现流程为:双精度浮点型数据序列和定点型数据序列,先送入数值回归编码单元,进行串行序列号编码,然后把编码后的字符序列送入到压缩引擎压缩后,进行数据打包,然后通过物理通信接口送到存储单元进行存储;所述解压缩实现流程为:存储的压缩数据,通过高速接口送入解压缩模块,通过数据分发模块分发到各个解压支路,然后进行LZ解压缩,解压缩后的数据进行多路同步重组后,进行数据流打包,送入到通信接口
所述S2中的压缩结果对比,利用计算机实现了数值回归编码,并使用LZO算法进行压缩,数据使用二进制文件方式保存,原始数据根据压缩比进行压缩,由结果可见,重新编码后的数据,经过压缩后,压缩比为41.31%,低于预期的50%,另外需要注意的是,当原始的二进制序列经过数值回归编码后,由于存在数据切割和字节对齐的原因,会存在数据膨胀的现象,膨胀大小跟两种编码开销的比例相关,但是编码后的数据由于重复率比较高,因此压缩后,压缩率会提高,编码前数据和编码后数据分布使用16进制表示,可见编码后数据明显规律性更强。
[0008] 进一步地,所述S3实现方式分析处理中的多种实现途径包括:实现途径分析,所述实现途径分析基于理论分析和代码验证,发现对原始信源的二进制序列重新编码后,提高了数据的冗余度,对数据压缩率有明显的提升,对于具体的压缩算法的实现方式,分为传统的实现方式和硬件加速方式,所述传统方式是X86平台上使用C语言实现,所述硬件加速方式采用FPGA硬件并行化实现;
CPU实现,所述CPU实现在CPU上实现编码和数据压缩,由于算法本身限制,在字符匹配和字典生成的过程中,每一次遍历都经过3~4次内存操作,所以使用memcpy调用开销来量化压缩开销,所述压缩算法的开销为memcpy开销的3 6倍,10MB/s的处理速度,远远小~
于采集系统的带宽;
FPGA实现,所述FPGA实现中的FPGA具有运行速率快,逻辑资源丰富,片内RAM资源丰富,通用性好特点,用FPGA实现LZW算法需要解决以下几个关键问题:
(1)字典的生成:通常采用FPGA片内存储单元生成RAM;
(2)字典的维护与更新:在压缩过程中,对于一个新的字符串要在对字典进行查找后,根据字典中是否已经存在来决定是否更新字典,这一过程必须利用FPGA片内逻辑单元完成,因而过于复杂的字典需要耗费大量逻辑单元,因此采用FPGA模块化设计非常具有难度;
(3)压缩编码流的处理:由于压缩算法改变了原始数据的编码格式,需要在压缩过程中添加一些标识符,使得在解压缩过程中能够完全还原原始数据,并且在压缩编码输出数据时,需要根据存储器件或传输总线的数据位宽度进行重新编码;
针对上述问题,采用流化multi‑stage设计,结合PFGA资源和外部存储DDR SDRAM,对LZW算法进行了实现,本实现经过仿真测试,具有良好的实时性和较小的资源占用率,同时CPU上实现并行化开销大,效率低,就算采用多线程/多任务并发的方式,也很难提高带宽,因此不作考虑。
[0009] 进一步地,所述S4详细设计处理中的算法实现原理与组成包括分发模块、同步数据编码模块、数据压缩模块和存储处理模块,整个数据压缩/解压缩FPGA设计分为上行压缩链路和下行解压缩链路两个部分,针对数据压缩流程,Virtex 7 FPGA通过4组x4 SRIO接口接收雷达数据,送入到SRIO IP当中进行SRIO协议解析,并通过分发模块把4组SRIO数据重组后缓存到DDR SDRAM中,同时同步数据编码模块收取DDR SDRAM中缓存的接收数据,并进行数据回归编码;编码后的数据送入数据压缩模块中进行压缩处理,压缩后的数据送入到数据打包模块进行打包处理,然后送入到DDR SDRAM缓存,缓存后的数据通过PCIe的DMA引擎搬移到存储处理模块,完成整个数据的压缩,针对数据解压缩流程,解压缩处理模块通过PCIe DMA获取压缩的数据,并缓存到DDR SDRAM中,数据分发模块读取DDR SDRAM中的数据,送入到数据解压模块进行解压操作,然后再进行数据编码,把解压缩的数据恢复成双精度浮点数据,再缓存后打包通过SRIO接口发送;所述压缩过程设计压缩过程主要包含了SRIO接口,数据分发,数据回归编码,数据压缩单元和数据打包单元部分,其中SRIO接口使用SRIO IP完成SRIO的协议转换,把接收到的雷达数据转换成4组64bit的AXIS数据,数据分发模块把4组64bit的数据按照约定的协议组成128bit位宽的数据流,送入DDR SDRAM缓存;
所述数据编码模块负责把DDR SDRAM中缓存的浮点数据进行数值回归编码,转换成多组BCD码值序列,并按照3组512bit位宽分发到3组LZW压缩模块,每个压缩模块包含了8个LZW处理引擎,所述LZW处理引擎是整个压缩流程的核心,接收未压缩的输入数据块,产生压缩后的数据块,Core使用合适的头和尾封装了压缩后的数据载荷,所以用户不需要处理压缩后的数据块,输入的数据块可以被分段,并且不同数据块的分段可以交织输入Core,针对压缩过程中的压缩字典占用空间大和动态更新的问题,本方案采用128‑bit位宽DDR4 SDRAM作为字典的临时存储空间,工作在2400MHz的DDR4 SDRAM,在128‑bit的位宽下,可以提供92Gbps的实际工作带宽(按照30%的实际带宽计算),对于频繁的字典查找和存储提供了足够小的操作延迟,另外,大容量的DDR4 SDRAM存储深度,增加了字典深度,减小了字典的更新频率,可以很好的提高压缩速度;
所述数据压缩模块的吞吐量取决于工作时钟和数据位宽,根据LZW的工作模块,一个LZW的压缩位宽是固定为8bit,而FPGA的最大工作时钟,在V7平台上为375MHz,所以单个压缩模块的最大吞吐带宽为375MHz*8bit=3000Mbps,在实际的设计中,兼顾工程布局布线,FPGA的工作时钟往往只能工作在250MHz,因此单个压缩模块的最大吞吐带宽为250MHz*
8bit=2000Mbps,所以为了提高数据压缩模块的吞吐量,达到40Gbps的数据带宽,方案采用了24个LZW压缩模块并行工作的方式,在工作时,24个LZW压缩模块分成3组,每组有8个LZW压缩模块,数据分发模块一次预取64KB*3大小的数据,分成3个512bit的数据通道,发送到
24个LZW压缩模块,多路数据分别经过压缩,编码后,发送到数据打包模块进行打包,并通过DMA和PCIe接口送到存储处理模块;
所述解压缩过程设计跟压缩流程对称处理,解压缩流程也采用了24个LZW解压缩模块并行工作的方式来进行数据的解压缩,在工作时,24个LZW解压缩模块分成3组,每组有
8个LZW解压缩模块;数据分发模块一次预取64KB*3大小的数据,分成3个512bit的数据通道,发送到24个LZW解压缩模块,多路数据分别经过解码,解压缩后,发送到数据打包模块进行数据合并,并通过SRIO接口发送;
所述资源占用分析经过在FPGA上编译,可以看到单个LZW引擎的资源使用率如下:
BRAM:32个,LUT:7200个,DSP:1个;
单个LZW解压缩引擎资源使用率如下:
BRAM:16个,LUT:2400个,DSP:0个;
24个LZW压缩模块所消耗资源为:
BRAM:768个,LUT:172K,DSP:24个;
24个LZW解压缩模块所消耗资源为:
BRAM:384个,LUT:60K,DSP:0个;
XC7VX690T提供的片上资源为:
BRAM:1470个,LUT:433K,DSP:3600个;
由此可见,除了BRAM资源占比较高外,所有资源都可以满足要求,在后续的设计实现中,可以继续优化算法,降低BRAM的使用率。
[0010] 进一步地,所述S5效果评估处理中的压缩效果评估在详细设计处理完成和综合编译后,因为不具备实际测试环境,因此在PC上使用Vivado集成的仿真工具xsim进行仿真验证,仿真验证平台为高性能服务器平台,I9 第十代CPU x16core,64G DDR4 SDRAM,测试数据为实际的雷达数据,由于仿真速度非常慢,所以测试工程封装了4个LZW压缩模块进行同步压缩测试,由结果得出服务器使用了34分钟,处理6.7毫秒的仿真路径,共计处理数据7.19MB,性能为7.19MB/6.7e‑3秒=8.58Gbps,由此可见,单个LZW压缩模块的压缩性能为
2.16Gbps,24个LZW压缩模块可以实现51Gbps的压缩性能,可以达到预设的目标,长时间仿真结果,服务器使用155分钟,处理28.75毫秒的仿真路径,共计处理数据30.5MB,性能为
30.5MB/28.75e‑3秒=8.49Gbps,单个LZW模块的性能为2.12Gbps,经过多次长时间仿真,压缩性能基本稳定在2.1Gbps/LZW core,可以满足设计要求;
所述解压缩效果评估在详细设计处理完成和综合编译后,因为不具备实际测试环境,因此在PC上使用Vivado集成的仿真工具xsim进行仿真验证,仿真验证平台为高性能服务器平台,I9 第十代CPU x16core,64G DDR4 SDRAM,测试数据为实际的lzw压缩算法压缩的数据,经过长时间仿真,解压缩数据跟原始数据一致。
[0011] 进一步地,所述S6技术难点与风险分析评估处理中的压缩率都具备信息冗余的特点,对于满量程,随机分布的二进制序列,不存在随机性误差,则无法压缩;所述资源开销与压缩速度在上面论述的改进型算法中,数值回归编码耗费的资源n
非常多,并且在数值回归编码中,需要进行查表,表的深度跟数据位宽呈指数关系(2),因此资源开销非常大,并且逻辑资源复杂,不利于提高工作时钟,同时LZ系列压缩算法也存在模板匹配和字典生成,也会增加资源使用率,降低工作时长;
所述并行化与数据同步为了提高压缩性能,需要对雷达回波数据进行多路并行处理,比如IQ分路,乃至单独I路或者Q路信息会按照2路乃至多路并行处理(最小粒度为
8bit),但是每一路的开销都比较大,可以预见最后的工程实现上,时钟约束余量非常紧张,资源开销也非常大,同时,由于多路信号压缩后,压缩比例不一样,会存在多路缓存再打包转发的问题,需要后续验证和优化。
[0012] 本发明通过数据样本可压缩性分析处理、压缩实现与结果分析处理、实现方式分析处理、详细设计处理、效果评估处理和技术难点与风险分析评估处理,有效的增加了字典深度,减小了字典的更新频率,可以很好的提高压缩速度,同时LZ系列压缩算法也存在模板匹配和字典生成,也会增加资源使用率,降低工作时长。附图说明
[0013] 图1为本发明提出的一种基于雷达算法的数据压缩方法的步骤框图

具体实施方式

[0014] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0015] 实施例:参照图1:一种基于雷达算法的数据压缩方法,包括以下步骤:S1、数据样本可压缩性分析处理:对数据样本进行数据样本格式以及信息冗余与可压缩性的分析判断处理;
S2、压缩实现与结果分析处理:对压缩性分析后的数据样本进行样本数据表达与信息冗余度分析,同时进行编码格式的改进,并进行压缩\解压缩处理,同时对压缩\解压缩处理结果进行对比分析处理;
S3、实现方式分析处理:对压缩实现与结果分析处理后的数据进行多种实现途径的分析;
S4、详细设计处理:对实现方式分析处理后的数据进行算法实现原理与组成处理,其中包括压缩过程设计、解压缩过程设计、工程验证和资源占用分析处理;
S5、效果评估处理:对通过S4详细设计处理后的数据进行压缩和解压效果的评估分析;
S6、技术难点与风险分析评估处理:最后进行技术难点与风险的分析包括压缩率、资源开销与压缩速度和并行化与数据同步分析评估。
[0016] 本发明中,S1数据样本可压缩性分析处理中的数据样本格式分为原始数据、基带数据和脉压数据;原始数据是ADC采样数据,为实数表达的一组二进制离散序列,对齐到16bit,原始数据包含了噪声位和有效位,噪声位服从高斯白噪声分布,并且方差较小(带宽限制);
有效位用于表达有效信号(信息),为一组有规律的序列(信息熵有限),考虑到雷达处理机的动态范围,噪声需要3 5bit来表达,信号序列又有规律,因此存在压缩的可能;
~
基带数据是原始数据经过处理变换后的数据,为零频的复数数据,为32bit的二进制离散序列,基带数据跟原始数据类似,也存在较大的信息冗余,存在压缩的可能;
脉压数据是经过脉冲压缩算法处理过的数据,采用双精度浮点型(64bit)表达,脉压数据为双精度浮点表达的复数序列,也包含了信息和噪声,从数据信息组成上,跟基带数据和原始数据一致,只是扩展了数据的表达范围(信号动态),但是根据信息的有限性,数据的分布存在规律性,幅度范围不可能扩展到双精度范围的最大量程(累加处理需要,另外,双精度浮点型数据量程范围为:‑1.7E‑308~1.7E+308),实际数据远远小于最大量程,因此存在数据的可压缩性。
[0017] 本发明中,S2压缩实现与结果分析处理中的样本数据表达与信息冗余度分析步骤如下:步骤一:分析数据样本,数据格式为matlab格式;
步骤二:导入到matlab后,分离出数据头文件,T1回波数据,T2回波数据,两种回波数据均为双精度浮点型复数形式;
步骤三:把分离的T1、T2数据单独存储成二进制文件,使用十六进制观察数据序列;
由于符号位扩展,以及双精度浮点类型的数据表达方式的原因,导致数据序列分布排列无序,数据基本没有重复序列,因此存在压缩困难,使用LZ算法压缩后,压缩比很低;
把复数序列单独提取,并且重新组合成I路和Q路序列,并用二进制的方式保存成文件,重新使用十六进制观察数据序列,由于做了信号分离,数据虽然还是双精度浮点型表达,但是有了一定的重复性,因此具备一定的压缩可能,数据压缩后,由于双精度类型的编码格式问题,重复性还是非常低,导致压缩率很低;
S2压缩实现与结果分析处理中的编码格式的改进步骤如下:
步骤一:设计一套编码格式,对二进制序列进行重新编码,实现量程压缩和映射集缩小,来达到数据无损压缩率增加的目的;
步骤二:对重新编码后的数据进行符号位独立、权值位和数据有效位强制编码转换,使之每个权值数据实现8bit对齐,以实现高位宽的数据流到串行码流的转换,压缩动态,提升了符号的重复率,在此基础上对串行码流再进行压缩,大大提高压缩比,提高传输信道和存储空间的利用率;
考察IQ数据的时域频率信息,根据数据时频域特性得出以下特点:
1)幅度有限(能量有限),并且幅度范围远小于双精度浮点数据类型的编码范围(量程);
2)信息集中,信息能量有规律的分布在一定带宽,噪声能量服从高斯分布,方差小;
因此,这类型的数据存在很大的压缩性,但是由于双精度浮点数据类型的编码格式,导致信息编码分成了3个区域,并且没有按照字节对齐,因此在二进制序列内,信息分布离散化,导致信息熵增大,压缩比例降低,基于以上分析,对二进制序列进行重新编码,以此实现量程压缩和映射集缩小(提高重复性),来达到数据无损压缩率增加的目的,把符号位独立,权值位和数据有效位强制编码转换,使之每个权值数据实现8bit对齐,以实现高位宽的数据流到串行码流的转换,压缩动态,提升了符号的重复率,在此基础上对串行码流再进行压缩,有效的提高了压缩比,提高传输信道和存储空间的利用率;
本发明中,S2中的压缩和解压缩处理流程分别如下:
压缩实现流程为:双精度浮点型数据序列和定点型数据序列,先送入数值回归编码单元,进行串行序列号编码,然后把编码后的字符序列送入到压缩引擎压缩后,进行数据打包,然后通过物理通信接口送到存储单元进行存储;
解压缩实现流程为:存储的压缩数据,通过高速接口送入解压缩模块,通过数据分发模块分发到各个解压支路,然后进行LZ解压缩,解压缩后的数据进行多路同步重组后,进行数据流打包,送入到通信接口;
S2中的压缩结果对比,利用计算机实现了数值回归编码,并使用LZO算法进行压缩,数据使用二进制文件方式保持,原始数据根据压缩比进行压缩,由结果可见,重新编码后的数据,经过压缩后,压缩比为41.31%,低于预期的50%,另外需要注意的是,当原始的二进制序列经过数值回归编码后,由于存在数据切割和字节对齐的原因,会存在数据膨胀的现象,膨胀大小跟两种编码开销的比例相关,但是编码后的数据由于重复率比较高,因此压缩后,压缩率会提高,编码前数据和编码后数据分布使用16进制表示,可见编码后数据明显规律性更强。
[0018] 本发明中,S3实现方式分析处理中的多种实现途径包括:实现途径分析,实现途径分析基于理论分析和代码验证,发现对原始信源的二进制序列重新编码后,提高了数据的冗余度,对数据压缩率有明显的提升,对于具体的压缩算法的实现方式,分为传统的实现方式和硬件加速方式,传统方式是X86平台上使用C语言实现,硬件加速方式采用FPGA硬件并行化实现;
CPU实现,CPU实现在CPU上实现编码和数据压缩,由于算法本身限制,在字符匹配和字典生成的过程中,每一次遍历都经过3~4次内存操作,所以使用memcpy调用开销来量化压缩开销,压缩算法的开销为memcpy开销的3 6倍,10MB/s的处理速度,远远小于采集系~
统的带宽;
FPGA实现,FPGA实现中的FPGA具有运行速率快,逻辑资源丰富,片内RAM资源丰富,通用性好特点,用FPGA实现LZW算法需要解决以下几个关键问题:
(1)字典的生成:通常采用FPGA片内存储单元生成RAM;
(2)字典的维护与更新:在压缩过程中,对于一个新的字符串要在对字典进行查找后,根据字典中是否已经存在来决定是否更新字典,这一过程必须利用FPGA片内逻辑单元完成,因而过于复杂的字典需要耗费大量逻辑单元,因此采用FPGA模块化设计非常具有难度;
(3)压缩编码流的处理:由于压缩算法改变了原始数据的编码格式,需要在压缩过程中添加一些标识符,使得在解压缩过程中能够完全还原原始数据,并且在压缩编码输出数据时,需要根据存储器件或传输总线的数据位宽度进行重新编码;
针对上述问题,采用流水化multi‑stage设计,结合PFGA资源和外部存储DDR SDRAM,对LZW算法进行了实现,本实现经过仿真测试,具有良好的实时性和较小的资源占用率,同时CPU上实现并行化开销大,效率低,就算采用多线程/多任务并发的方式,也很难提高带宽,因此不作考虑。
[0019] 本发明中,S4详细设计处理中的算法实现原理与组成包括分发模块、同步数据编码模块、数据压缩模块和存储处理模块,整个数据压缩/解压缩FPGA设计分为上行压缩链路和下行解压缩链路两个部分,针对数据压缩流程,Virtex 7 FPGA通过4组x4 SRIO接口接收雷达数据,送入到SRIO IP当中进行SRIO协议解析,并通过分发模块把4组SRIO数据重组后缓存到DDR SDRAM中,同时同步数据编码模块收取DDR SDRAM中缓存的接收数据,并进行数据回归编码;编码后的数据送入数据压缩模块中进行压缩处理,压缩后的数据送入到数据打包模块进行打包处理,然后送入到DDR SDRAM缓存,缓存后的数据通过PCIe的DMA引擎搬移到存储处理模块,完成整个数据的压缩,针对数据解压缩流程,解压缩处理模块通过PCIe DMA获取压缩的数据,并缓存到DDR SDRAM中,数据分发模块读取DDR SDRAM中的数据,送入到数据解压模块进行解压操作,然后再进行数据编码,把解压缩的数据恢复成双精度浮点数据,再缓存后打包通过SRIO接口发送;压缩过程设计压缩过程主要包含了SRIO接口,数据分发,数据回归编码,数据压缩单元和数据打包单元部分,其中SRIO接口使用SRIO IP完成SRIO的协议转换,把接收到的雷达数据转换成4组64bit的AXIS数据,数据分发模块把4组64bit的数据按照约定的协议组成
128bit位宽的数据流,送入DDR SDRAM缓存;
数据编码模块负责把DDR SDRAM中缓存的浮点数据进行数值回归编码,转换成多组BCD码值序列,并按照3组512bit位宽分发到3组LZW压缩模块,每个压缩模块包含了8个LZW处理引擎,LZW处理引擎是整个压缩流程的核心,接收未压缩的输入数据块,产生压缩后的数据块,Core使用合适的头和尾封装了压缩后的数据载荷,所以用户不需要处理压缩后的数据块,输入的数据块可以被分段,并且不同数据块的分段可以交织输入Core,针对压缩过程中的压缩字典占用空间大和动态更新的问题,本方案采用128‑bit位宽DDR4 SDRAM作为字典的临时存储空间,工作在2400MHz的DDR4 SDRAM,在128‑bit的位宽下,可以提供
92Gbps的实际工作带宽(按照30%的实际带宽计算),对于频繁的字典查找和存储提供了足够小的操作延迟,另外,大容量的DDR4 SDRAM存储深度,增加了字典深度,减小了字典的更新频率,可以很好的提高压缩速度;
数据压缩模块的吞吐量取决于工作时钟和数据位宽,根据LZW的工作模块,一个LZW的压缩位宽是固定为8bit,而FPGA的最大工作时钟,在V7平台上为375MHz,所以单个压缩模块的最大吞吐带宽为375MHz*8bit=3000Mbps,在实际的设计中,兼顾工程布局布线,FPGA的工作时钟往往只能工作在250MHz,因此单个压缩模块的最大吞吐带宽为250MHz*
8bit=2000Mbps,所以为了提高数据压缩模块的吞吐量,达到40Gbps的数据带宽,方案采用了24个LZW压缩模块并行工作的方式,在工作时,24个LZW压缩模块分成3组,每组有8个LZW压缩模块,数据分发模块一次预取64KB*3大小的数据,分成3个512bit的数据通道,发送到
24个LZW压缩模块,多路数据分别经过压缩,编码后,发送到数据打包模块进行打包,并通过DMA和PCIe接口送到存储处理模块;
解压缩过程设计跟压缩流程对称处理,解压缩流程也采用了24个LZW解压缩模块并行工作的方式来进行数据的解压缩,在工作时,24个LZW解压缩模块分成3组,每组有8个LZW解压缩模块;数据分发模块一次预取64KB*3大小的数据,分成3个512bit的数据通道,发送到24个LZW解压缩模块,多路数据分别经过解码,解压缩后,发送到数据打包模块进行数据合并,并通过SRIO接口发送;
资源占用分析经过在FPGA上编译,可以看到单个LZW引擎的资源使用率如下:
BRAM:32个,LUT:7200个,DSP:1个;
单个LZW解压缩引擎资源使用率如下:
BRAM:16个,LUT:2400个,DSP:0个;
24个LZW压缩模块所消耗资源为:
BRAM:768个,LUT:172K,DSP:24个;
24个LZW解压缩模块所消耗资源为:
BRAM:384个,LUT:60K,DSP:0个;
XC7VX690T提供的片上资源为:
BRAM:1470个,LUT:433K,DSP:3600个;
由此可见,除了BRAM资源占比较高外,所有资源都可以满足要求,在后续的设计实现中,可以继续优化算法,降低BRAM的使用率。
[0020] 本发明中,S5效果评估处理中的压缩效果评估在详细设计处理完成和综合编译后,因为不具备实际测试环境,因此在PC上使用Vivado集成的仿真工具xsim进行仿真验证,仿真验证平台为高性能服务器平台,I9 第十代CPU x16core,64G DDR4 SDRAM,测试数据为实际的雷达数据,由于仿真速度非常慢,所以测试工程封装了4个LZW压缩模块进行同步压缩测试,由结果得出服务器使用了34分钟,处理6.7毫秒的仿真路径,共计处理数据7.19MB,性能为7.19MB/6.7e‑3秒=8.58Gbps,由此可见,单个LZW压缩模块的压缩性能为2.16Gbps,24个LZW压缩模块可以实现51Gbps的压缩性能,可以达到预设的目标,长时间仿真结果,服务器使用155分钟,处理28.75毫秒的仿真路径,共计处理数据30.5MB,性能为30.5MB/
28.75e‑3秒=8.49Gbps,单个LZW模块的性能为2.12Gbps,经过多次长时间仿真,压缩性能基本稳定在2.1Gbps/LZW core,可以满足设计要求;
解压缩效果评估在详细设计处理完成和综合编译后,因为不具备实际测试环境,因此在PC上使用Vivado集成的仿真工具xsim进行仿真验证,仿真验证平台为高性能服务器平台,I9 第十代CPU x16core,64G DDR4 SDRAM,测试数据为实际的lzw压缩算法压缩的数据,经过长时间仿真,解压缩数据跟原始数据一致。
[0021] 本发明中,S6技术难点与风险分析评估处理中的压缩率都具备信息冗余的特点,对于满量程,随机分布的二进制序列,不存在随机性误差,则无法压缩;资源开销与压缩速度在上面论述的改进型算法中,数值回归编码耗费的资源非常n
多,并且在数值回归编码中,需要进行查表,表的深度跟数据位宽呈指数关系(2),因此资源开销非常大,并且逻辑资源复杂,不利于提高工作时钟,同时LZ系列压缩算法也存在模板匹配和字典生成,也会增加资源使用率,降低工作时长;
并行化与数据同步为了提高压缩性能,需要对雷达回波数据进行多路并行处理,比如IQ分路,乃至单独I路或者Q路信息会按照2路乃至多路并行处理(最小粒度为8bit),但是每一路的开销都比较大,可以预见最后的工程实现上,时钟约束余量非常紧张,资源开销也非常大,同时,由于多路信号压缩后,压缩比例不一样,会存在多路缓存再打包转发的问题,需要后续验证和优化。
[0022] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
QQ群二维码
意见反馈