1.本发明涉及数据压缩技术领域,尤其是涉及一种波形数据压缩方法、系统、设备及介质。
背景技术:
2.随着芯片集成度越来越高,晶体管规模也越来越大,eda仿真验证所需的波形数据也随之增长。动辄千万级器件规模的集成电路,保存波形数据需要巨大的存储空间,现有技术将eda仿真验证所需的波形数据直接进行二进制存储,或使用通用压缩算法进行压缩后存储,现有技术对波形数据的压缩效果差强人意。
技术实现要素:
3.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种波形数据压缩方法、系统、设备及介质,能够针对波形数据比通用压缩算法有更好的压缩率,同时打包压缩数据,杜绝了大量小文件对存储和性能的影响。
4.第一方面,本发明的实施例提供了一种波形数据压缩方法,包括:
5.获取eda仿真实验的波形数据;
6.按照波形发展顺序将所述波形数据中除第一个数之外的每一个数均用自身和所述自身的前一位数的差值进行压缩表示,得到所述波形数据对应的第一压缩数据;
7.将所述第一压缩数据通过压缩算法进一步压缩,得到所述波形数据对应的第二压缩数据;
8.将所述第二压缩数据打包至预设的文件。
9.根据本发明实施例的方法,至少具有如下有益效果:
10.本方法首先根据按照波形发展顺序将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示,由于波形数据都是以极小的幅度递增或者递减,因此将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示能够准确地表示波形数据中的数字,同时也通过差值进行压缩的方法大大压缩了波形数据;然后通过通用的压缩算法进一步地压缩得到第二压缩数据,更加提高了波形数据压缩率;最后将第二压缩数据打包至预设的文件,杜绝了大量小文件对存储和性能的影响,进一步解放了算力,同时也减少了操作时间。
11.根据本发明的一些实施例,所述波形数据由双精度浮点数组成。
12.根据本发明的一些实施例,所述按照波形发展顺序将所述波形数据中除第一个数之外的每一个数均用自身和所述自身的前一位数的差值进行压缩表示,得到所述波形数据对应的第一压缩数据,包括:
13.选取所述差值的三个字节,所述三个字节用于表示正负标记位、指数位和整数位;
14.将所述差值通过所述三个字节存储,得到压缩差值;
15.通过所述第一个数和所述压缩差值得到所述波形数据对应的第一压缩数据。
16.根据本发明的一些实施例,所述将所述第二压缩数据打包至预设的文件,包括:
17.将所述第二压缩数据进行打包处理,得到压缩包;
18.通过文件管理系统将所述压缩包存储至所述预设的文件中;所述预设的文件根据所述波形数据的项目建立。
19.根据本发明的一些实施例,所述压缩差值通过如下公式进行还原:
20.x=(2
×
s-1)
×n×
10-e
21.其中,x表示差值,s表示正负标记位的数值,n表示整数位的数值,e表示指数位的数值。
22.根据本发明的一些实施例,选取所述三个字节中的第一位、第五位和第十八位分别表示正负标记位、指数位和整数位。
23.根据本发明的一些实施例,所述压缩算法采用可逆压缩。
24.第二方面,本发明的实施例提供了一种波形数据压缩系统,包括:
25.波形数据获取模块,用于获取eda仿真实验的波形数据;
26.第一压缩模块,用于按照波形发展顺序将所述波形数据中除第一个数之外的每一个数均用自身和所述自身的前一位数的差值进行压缩表示,得到所述波形数据对应的第一压缩数据;
27.第二压缩模块,用于将所述第一压缩数据通过压缩算法进一步压缩,得到所述波形数据对应的第二压缩数据;
28.文件管理模块,用于将所述第二压缩数据打包至预设的文件。
29.第三方面,本发明的实施例提供了一种电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如第一方面所述的波形数据压缩方法。
30.第四方面,本发明的实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的波形数据压缩方法。
31.需要注意的是,本发明的第二方面至第四方面与现有技术之间的有益效果与第一方面的波形数据压缩方法的有益效果相同,此处不再细述。
32.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
33.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
34.图1是本发明一实施例提供的一种波形数据压缩方法的流程图;
35.图2是本发明一实施例提供的按照波形发展顺序将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示得到波形数据对应的第一压缩数据的流程图;
36.图3是本发明一实施例提供的将第二压缩数据打包至预设的文件的流程图;
37.图4是本发明一实施例提供的波形数据的示意图;
38.图5是本发明一实施例提供的一种波形数据压缩方法的示意图;
39.图6是本发明一实施例提供的得到差值的示意图;
40.图7是本发明一实施例提供的一种压缩差值的示意图;
41.图8是本发明一实施例提供的一种波形数据压缩系统的结构示意图;
42.图9是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
43.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
44.在本发明的描述中,如果有描述到第一、第二等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
45.在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
46.本发明的描述中,需要说明的是,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
47.下面将结合附图对本发明的技术方案进行清楚、完整的描述,显然,以下所描述的实施例是本发明一部分实施例,并非全部实施例。
48.参照图1,在本发明的一些实施例中,提供了一种波形数据压缩方法,包括:
49.步骤s100、获取eda仿真实验的波形数据。
50.步骤s200、按照波形发展顺序将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示,得到波形数据对应的第一压缩数据。
51.步骤s300、将第一压缩数据通过压缩算法进一步压缩,得到波形数据对应的第二压缩数据。
52.步骤s400、将第二压缩数据打包至预设的文件。
53.首先根据步骤s200按照波形发展顺序将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示,由于波形数据都是以极小的幅度递增或者递减,因此将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示能够准确地表示波形数据中的数字,同时也通过差值的方法大大压缩了波形数据;然后通过步骤s300常见的压缩算法进一步地压缩得到第二压缩数据,更加提高了波形数据压缩率;最后步骤s400将第二压缩数据打包至预设的文件,杜绝了大量小文件对存储和性能的影响,进一步解放了算力,同时也减少了操作时间。
54.在本发明的一些实施例中,波形数据由双精度浮点数组成。
55.参照图4,需要说明的是,波形数据从微观尺度描述信号变化过程,通常伴随着逐
渐升高、逐渐降低,最终收敛于某值,数据基本由大量双精度浮点数组成。
56.将波形数据均由双精度浮点数组成,保证后续进行波形数据的压缩时不会出现因数据类型不符合而报错的问题,同时通过双精度浮点数也能够更加精确描述功耗仿真的结果。
57.参照图2和图6,在本发明的一些实施例中,按照波形发展顺序将波形数据中除第一个数之外的每一个数均用自身和自身的前一位数的差值进行压缩表示,得到波形数据对应的第一压缩数据,包括:
58.步骤s210、选取差值的三个字节,三个字节用于表示正负标记位、指数位和整数位。
59.步骤s220、将差值通过三个字节存储,得到压缩差值。
60.步骤s230、通过第一个数和压缩差值得到波形数据对应的第一压缩数据。
61.需要说明的是,由于波形数据总是以极小的幅度递增或递减,因此用差值来表示波形数据中的数则不需要双精度浮点数8个字节来存储,因此通过三个字节来存储波形数据中的数,达到进一步压缩的效果。
62.通过三个字节表示正负标记位、指数位和整数位将波形数据压缩,极大地降低了波形数据所占的存储空间,并且同样能够精确表示波形数据中的数,实现了更好的压缩率,并且通过特定的三个字节存储波形数据中的数,也能够保证一定的安全性。
63.参照图3,在本发明的一些实施例中,将第二压缩数据打包至预设的文件,包括:
64.步骤s410、将第二压缩数据进行打包处理,得到压缩包。
65.步骤s420、通过文件管理系统将压缩包存储至预设的文件中;预设的文件根据波形数据的项目建立。
66.需要说明的是,磁盘的控制器已经替我们做了很多事情,它对这些内部的结构进行了统一管理,呈现的只是一个线性的地址。比如个1t的硬盘,其呈现的就是从0字节开始,以1字节递增,直到1tb的地址空间。一个文件如果大小1g,比如存储到0-1g位置,第二个文件大小2g,你存到1-3g位置。但是这时要删除第一个文件再存第二个文件,找到第一个删除了,然后想把第二个文件放进去,发现不够大,只能放到最后面。也就是每次都要评估硬盘空间大小,然后添加删除文件数据。这样导致存储数据非常麻烦,有了文件管理系统,只需要把文件扔进某个文件夹,或者直接删除掉文件。同时文件管理系统用树的形式进行了规划,非常方便用户记忆和查找。如果没有文件管理系统,用户只能自己去记录位置然后查找所需文件。
67.通过将第二压缩数据进行打包处理得到压缩包并将压缩包存储至预设的文件,能够杜绝大量小文件对存储及性能的影响,并且极大地提升了磁盘的整体使用率,方便用户对第二压缩数据进行管理。
68.在本发明的一些实施例中,压缩差值通过如下公式进行还原:
69.x=(2
×
s-1)
×n×
10-e
70.其中,x表示差值,s表示正负标记位的数值,n表示整数位的数值,e表示指数位的数值。
71.优选的是,将压缩差值的还原公式通过自定义脚本的方式进行定义,保证压缩差值的还原准确度和速率。
72.将压缩差值通过正负标记位的数值、整数位的数值和指数位的数值的计算脚本等手段快速进行还原,能够加快解压速度并且减少解压的复杂度。
73.参照图7,在本发明的一些实施例中,选取三个字节中的第一位、第五位和第十八位分别表示正负标记位、指数位和整数位。
74.需要说明的是,由于通过差值表示波形数据中的数,那么差值中的指数位相对于正负标记位和整数位需要的位数更多,因此将三个字节中的第一位定为正负标记位,第五位定为指数位,第十八位定为整数位,使得指数位具有较大的冗余空间,不会导致出现存储容量超出的问题。
75.将三个字节中的第一位、第五位和第十八位分别表示正负标记位、指数位和整数位,很具数据大小提供了相对充足的存储冗余空间,同时也精确地对差值进行了存储。
76.在本发明的一些实施例中,压缩算法采用可逆压缩。
77.需要说明的是,可逆压缩能够无失真地从压缩后的数据重构,准确地还原原始数据。可用于对数据的准确性要求严格的场合,如可执行文件和普通文件的压缩、磁盘的压缩,也可用于多媒体数据的压缩。主要的压缩方法包括差分编码、rle、huffman编码、lzw编码和算术编码。
78.通过可逆压缩进行波形数据的第二次压缩,保证了能够准确还原原始数据,同时再次减少了波形数据的存储空间。
79.参照图5,为了方便本领域技术人员理解,本发明的一个具体实施例,提供了一种波形数据压缩方法,包括:
80.第一步:获取eda仿真实验的波形数据。
81.第二步:先存储波形数据中的第一个数,除第一个数以外的其他数字用当前数字和前一个数字的差值表示。计算机中存储double一般用8个字节,由于差值都是极小值,不需要这么大的空间,改用3个字节存储一个double:1位为正负标记位,5位为指数位,18位为整数位。因此还原波形数据的公式为:
82.x=(2
×
s-1)
×n×
10-e
83.其中,x表示差值,s表示正负标记位的数值,n表示整数位的数值,e表示指数位的数值。
84.第三步,通过通用的压缩算法进一步压缩,压缩算法采用可逆压缩。可逆压缩能够无失真地从压缩后的数据重构,准确地还原原始数据。可用于对数据的准确性要求严格的场合,如可执行文件和普通文件的压缩、磁盘的压缩,也可用于多媒体数据的压缩。主要的压缩方法包括差分编码、rle、huffman编码、lzw编码和算术编码。
85.第四步:将压缩后的数据统一存入项目的文件管理系统,避免大量小文件所造成的存储及io资源的浪费。通过文件管理系统只需要把文件扔进某个文件夹,或者直接删除掉文件。同时文件管理系统用树的形式进行了规划,非常方便用户记忆和查找。如果没有文件管理系统,用户只能自己去记录位置然后查找所需文件。
86.参照图8,本发明的一个实施例,还提供了一种波形数据压缩系统,包括波形数据获取模块1001、第一压缩模块1002、第二压缩模块1003和文件管理模块1004,其中:
87.波形数据获取模块1001,用于获取eda仿真实验的波形数据。
88.第一压缩模块1002,用于按照波形发展顺序将波形数据中除第一个数之外的每一
个数均用自身和自身的前一位数的差值进行压缩表示,得到波形数据对应的第一压缩数据。
89.第二压缩模块1003,用于将第一压缩数据通过压缩算法进一步压缩,得到波形数据对应的第二压缩数据。
90.文件管理模块1004,用于将第二压缩数据打包至预设的文件。
91.需要说明的是,由于本实施例中的一种波形数据压缩系统与上述的一种波形数据压缩方法基于相同的发明构思,因此,方法实施例中的相应内容同样适用于本装置实施例,此处不再详述。
92.参考图9,本发明的另一个实施例,还提供了一种电子设备,该电子设备6000可以是任意类型的智能终端,例如手机、平板电脑、个人计算机等。
93.具体的,电子设备6000包括:一个或多个控制处理器6001和存储器6002,图9中以一个控制处理器6001与一个存储器6002为例,控制处理器6001和存储器6002可以通过总线或者其他方式连接,图9中以通过总线连接为例。
94.存储器6002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的一种电子设备对应的程序指令/模块;
95.控制处理器6001通过运行存储在存储器6002中的非暂态软件程序、指令以及模块,从而执行一种波形数据压缩方法的各种功能应用以及数据处理,即实现上述方法实施例的一种波形数据压缩方法。
96.存储器6002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储一种波形数据压缩方法的使用所创建的数据等。此外,存储器6002可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器6002可选包括相对于控制处理器6001远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备6000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
97.在一个或者多个模块存储在存储器6002中,当被该一个或者多个控制处理器6001执行时,执行上述方法实施例中的一种波形数据压缩方法,例如执行以上描述的图1至图3的方法步骤。
98.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
99.需要说明的是,由于本实施例中的一种电子设备与上述的一种波形数据压缩方法基于相同的发明构思,因此,方法实施例中的相应内容同样适用于本装置实施例,此处不再详述。
100.本发明的一个实施例,还提供一种计算机可读存储介质,存储有计算机可执行指
令,计算机可执行指令用于执行:如上述实施例的波形数据压缩方法。
101.需要说明的是,由于本实施例中的一种计算机可读存储介质与上述的一种波形数据压缩方法基于相同的发明构思,因此,方法实施例中的相应内容同样适用于本装置实施例,此处不再详述。
102.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储数据(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的数据并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何数据递送介质。
103.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
104.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。