CN109257047B - 数据压缩方法及装置 - Google Patents

数据压缩方法及装置 Download PDF

Info

Publication number
CN109257047B
CN109257047B CN201811061747.2A CN201811061747A CN109257047B CN 109257047 B CN109257047 B CN 109257047B CN 201811061747 A CN201811061747 A CN 201811061747A CN 109257047 B CN109257047 B CN 109257047B
Authority
CN
China
Prior art keywords
data stream
value
word length
relative
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811061747.2A
Other languages
English (en)
Other versions
CN109257047A (zh
Inventor
卢文岩
鄢贵海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Yuanshu (beijing) Technology Co Ltd
Original Assignee
Zhongke Yuanshu (beijing) Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongke Yuanshu (beijing) Technology Co Ltd filed Critical Zhongke Yuanshu (beijing) Technology Co Ltd
Priority to CN201811061747.2A priority Critical patent/CN109257047B/zh
Publication of CN109257047A publication Critical patent/CN109257047A/zh
Application granted granted Critical
Publication of CN109257047B publication Critical patent/CN109257047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种数据压缩方法及装置,该方法包括:计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流;根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长;根据确定的至少一个字长对所述相对化数据流中的相对值进行编码;根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。通过上述方案能够减少时间序列数据量,解决数据存储容量紧张的问题。

Description

数据压缩方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据压缩方法及装置。
背景技术
时间序列数据是日常生活和社会工作中十分常见的一种数据。它是通过将一系列时间点上的观测值按等时间间隔测量来获取的数据集合,比如,商业活动中日股票收盘价格、服装公司的年销售量,气象学中某城市的年降水量、月平均气温等。因此对时间序列数据的研究存在于各行各业。
随着信息技术的繁荣发展,每天产生的实时序列数据越来越多。例如,对于金融交易来说,每秒可能出现数百次或数千次事件,同时,随时间变化的数据行为模式以及历史数据值通常与当前数据值一样重要,因此需要存储的数据量呈爆发式增长。
随着时间序列数据量的增长,数据分析在商业模式中扮演着越来越重要的角色,比如在金融行业,越来越多的交易策略都是基于大数据分析模型而获得,并已逐步取代分析师的分析。同时,随着时间序列数据量的增长,数据分析模型也变得也来越复杂,需要对数据进行多次复杂的计算和变换处理。现有数据分析平台,为了提高数据分析效率,通常需要将需要用到的时间序列数据全部缓存到片上数据缓存模块中。但是,巨大的时间序列数据量给片上缓存带来了越来越大的压力,甚至会导致片上缓存模块容量不足,进而数据传输成为时间序列数据处理算法性能的瓶颈。
发明内容
有鉴于此,本发明提供了一种数据压缩方法及装置,以减少时间序列数据量,解决数据存储容量紧张的问题。
为了实现上述目的,本发明采用以下技术方案:
在本发明一个实施例中,数据压缩方法,包括:
计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流;
根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长;
根据确定的至少一个字长对所述相对化数据流中的相对值进行编码;
根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。
在本发明一个实施例中,数据压缩装置,包括:
数值相对化单元,用于计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流;
编码字长确定单元,用于根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长;
相对值编码单元,用于根据确定的至少一个字长对所述相对化数据流中的相对值进行编码;
压缩数据生成单元,用于根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。
在本发明一个实施例中,电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例所述方法的步骤。
在本发明一个实施例中,计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述方法的步骤。
本发明的数据压缩方法、数据压缩装置、电子设备及计算机可读存储介质,通过计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,对原始数值进行相对化,可以根据相对值的数值分布特征确定较短的字长。根据较短的字长对相对值进行编码,能够实现利用占用存储位较少的相对值的编码信息代替原始数值的编码信息,从而实现对时间序列数据的有效压缩,减少时间序列数据存储空间开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的数据压缩方法的流程示意图;
图2是本发明一实施例的数据压缩方法的流程示意图;
图3是本发明一实施例中的原始时间序列数据流示意图;
图4是根据本发明实施例的方法对图3所示原始时间序列数据流进行相对化得到的相对化数据流的示意图;
图5是根据本发明实施例的方法对图4所示的相对化数据流进行编码得到的编码数据流的示意图;
图6是本发明一实施例的数据压缩装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1是本发明一实施例的数据压缩方法的流程示意图。如图1所示,一些实施例的数据压缩方法,可包括:
步骤S110:计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流;
步骤S120:根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长;
步骤S130:根据确定的至少一个字长对所述相对化数据流中的相对值进行编码;
步骤S140:根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。
在上述步骤S110中,时间序列数据流可以实时或预先从数据存储设备或数据采集设备获取。时间序列数据流中的数据采用原始数据字长例如32位字长进行编码。通过对时间序列数据流中数据的原始编码信息进行解码,可以得到时间序列数据流中的各数值。
各相邻两个数值可以具有相同的时间间隔,该设定数量时间位置可指该时间间隔的个数。不同数值占据不同的时间位置,相距设定数量时间位置的两个数值的时间位置之差为该设定数量,例如,时间位置相邻的两个数值所相距的时间位置的数量为一。该设定数量的适当选择可使相对值尽可能使用较小字长进行编码,可以根据时间序列数据流中的数值的情况而确定,例如,对于连续性较强,时间上相邻的数据数值不易发生突变的时间序列数据流,可以将该设定数量设为一,即计算相邻数值的相对值;对于阶段性变化规律较明显的时间序列数据流,例如随昼夜变化的气温数据流,可以根据规律周期确定该设定数量。
该相对值可反应相距设定数量时间位置的两个数值的差异程度,具体计算方式可以根据时间序列数据流中数值的大小、变化等情况确定,可以是差值或比值。计算出时间序列数据流中所有相距设定数量时间间隔的两个数值之间的相对值之后,可以将该些相对值根据其对应的时间位置顺序排列,得到相对化数据流,换言之,该相对化数据流不仅可以包括所有相对值,还可以包括该些相对值的相对位置信息。
在上述步骤S120中,该数值分布特征可以反应相对值的大小分布特点或情况,例如,可以是相对值的数值范围、相对值的聚集特点等。时间序列数据流的原始数据的字长,可以为32位,若之前已经经过数据压缩,可以少于32位。确定出较短的字长,能够利用更短的存储位长存储时间序列数据流的编码信息。根相对值的数值分布特征能够确定一个或多个较短的字长,例如,根据相对值的取值范围和相对值的聚集特点可以分别确定不同的字长,具体所确定字长的个数可以根据数值分布特征和压缩要求确定。
在上述步骤S130中,在仅得到一个较短的字长的情况下,所有相对值可以利用同一个字长的编码信息表示;在得到多个较短的字长的情况下,不同的相对值可以利用不同字长的编码信息表示。可以采用可变字长的方式对相对值进行编码,以占用更少的存储位。可以采用较高效的压缩编码方式,例如哈夫曼编码,对相对值进行编码。
在上述步骤S140中,起始用于计算相对值的原始数值可以指在时间序列数据流中用于计算得到起始相对值的数值,可以用于结合相对值推知时间序列数据流中其余原始数值。例如,对于相邻数值的相对值,起始用于计算相对值的原始数值可以包含时间序列数据流中的首个数据值;对于相距两个时间位置的数值的相对值,起始用于计算相对值的原始数值可以包含时间序列数据流中的前两个数值,以此类推。由于利用原始数值和相对值可以推知时间序列数据流中其余原始数值,所以可以利用极少量的原始数值的编码信息和所有相对值的编码信息表示时间序列数据流中的所有原始数值。该原始数值的编码信息可以采用原始的编码方式得到,例如采用32位字长编码。由于相对值进行编码时所采用的字长比原始数据字长,所以,利用相对值的编码信息代替大部分原始数值的编码信息,可以大大减少时间序列数据流占用的存储位数,从而达到数据压缩效果。
本实施例中,通过计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,对原始数值进行相对化,可以根据相对值的数值分布特征确定较短的字长。根据较短的字长对相对值进行编码,能够实现利用占用存储位较少的相对值的编码信息代替原始数值的编码信息,从而实现对时间序列数据的有效压缩,减少时间序列数据存储空间开销。
在一些实施例中,上述步骤S110,即,计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流,可包括:计算时间序列数据流中相邻时间位置的数值之间的相对值,并按时间顺序排列所有所述相对值得到相对化数据流。相邻时间位置的两数值相距时间位置为一。时间序列数据的连续性一般较强,时间上相邻的数据数值不易发生突变,所以相邻数值的相对值可以具有数值较小、分布较集中等特点,这有利于在存储时占用较少的存储位数。而且,相对化方式简单,便于节省计算资源。
在其他实施例中,可以相距多个时间位置,即间隔一个或多个数值,计算两两数值之间的相对值。相距多个时间位置,一般就至少需要多少起始的原始数值来结合相对值推知其余数值。例如,利用相距n个时间位置的两两数值计算相对值,往往需要前n个原始数值来结合相对值推知其余数值。
在一些实施例中,更具体地,计算时间序列数据流中相邻时间位置的数值之间的相对值,可包括:计算时间序列数据流中后一时间位置的数值和紧邻的前一时间位置的数值的差值或计算所述差值与所述前一时间位置的数值的比值,作为相对值。例如,第1时间位置的数值减去第0时间位置的数值的差值作为第一个相对值,用于代替第1时间位置的数值进行编码;第2时间位置的数值减去第1时间位置的数值的差值作为第二个相对值,用于代替第2时间位置的数值进行编码;第3时间位置的数值减去第2时间位置的数值的差值作为第三个相对值,用于代替第3时间位置的数值进行编码;以此类推,得到所有的相对值。或者,例如,第1时间位置的数值减去第0时间位置的数值的差值与第0时间位置的数值作为第一个相对值,用于代替第1时间位置的数值进行编码;第2时间位置的数值减去第1时间位置的数值的差值与第1时间位置的数值作为第二个相对值,用于代替第2时间位置的数值进行编码;第3时间位置的数值减去第2时间位置的数值的差值与第2时间位置的数值作为第三个相对值,用于代替第3时间位置的数值进行编码;以此类推,得到所有的相对值。当时间序列数据流中数值的连续性较强且相邻数值的差值较小时,通过计算差值得到的相对值可以占用较少的存储位,此时可以选择计算差值来计算相对值。当时间序列数据流中数值的连续性较差或相邻数值的差值较大时,计算差值与在前数值的比值得到的相对值可以占用较少的存储位,此时可以选择计算比值来计算相对值。
在一些实施例中,在通过计算时间序列数据流中相邻时间位置的两数值的差值或进一步计算该差值与在前数值的比值得到相对值的情况下,进一步地,上述步骤S140,即,根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据,可包括:根据所述时间序列数据流中的起始数值的原始编码和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。在通过计算相邻数值的差值或该差值与在前数值的比值得到相对值的情况下,根据时间序列数据流中的一个原始数值,例如首个数值,结合相对值,可以反向计算得到其余原始数值,所以可以利用一个原始数值和所有相对值代替原始的时间序列数据流的数值进行编码,以此可以实现数据的无损压缩。
在一些实施例中,上述步骤S120,即,根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长,可包括:根据设定精度和所述相对化数据流中相对值的数值范围的端点值的大小确定短于所述时间序列数据流的原始数据字长的第一字长;所述数值分布特征包括所述数值范围;所述至少一个字长包括所述第一字长。计算得到的相对值可能具有很多位小数,而小数点后较靠后的数值对相对值的精确度的影响较小,所以,可以通过根据设定精度减少小数点后的数据位数,缩短所需字长。该设定精度可以视需求确定,例如可以是五位小数。该数值范围可以根据所有相对值的取值范围确定,一般比原始数值的范围明显减小。具体实施例中,由于较大的值往往需要存储位数较多的字长,所以可以首先确定相对值的取值范围的端点值,然后根据数值范围的端点值确定上述第一字长。根据相对值的取值范围确定字长来对相对值进行编码,容易得到能够用于无损编码且尽可能短的字长。
在另一些实施例中,可以根据相对值的其他分布特征进一步确定其他的字长,例如第二字长。此时,可以利用不同字长对不同相对值进行编码,以进一步减少相对值的编码信息占用的存储位数。
在一些实施例中,上述步骤S120,即,根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长,可包括:根据所述相对化数据流中多个相同相对值确定短于所述时间序列数据流的原始数据字长的第二字长;所述至少一个字长包括所述第二字长;所述第二字长短于所述第一字长。具体地,例如,对于大量相同且连续的相对值可以用一位字长表示,对于其他相对值例如可以用两位字长表示,以此,对于存在大量相同相对值的相对化数据流,可以大大减小存储位占用数量。
进一步,一些实施例中,上述步骤S130,即,根据确定的至少一个字长对所述相对化数据流中的相对值进行编码,可包括:根据所述第二字长对所述相对化数据流中所述多个相同相对值进行编码,并根据所述第一字长对所述相对化数据流中除所述多个相同相对值之外的相对值进行编码。以此,采用不同字长对相对化数据流中的相对值进行编码,能够进一步减少每一字长的位数,进而减少所有相对值的存储位数。
在一些实施例中,上述步骤S130,即,根据确定的至少一个字长对所述相对化数据流中的相对值进行编码,可包括:通过哈夫曼编码方法,根据确定的至少一个字长对所述相对化数据流中的相对值进行编码。通过哈夫曼编码方法可以进行可变字长编码,具有较高的编码效率。
图2是本发明一实施例的数据压缩方法的流程示意图。参见图2,该实施例的数据压缩方法,可包括:
1)数值相对化:计算原始时间序列数据流中相邻数值之间的相对值,除第一个数据元素外,其他数据均用其与前一数据元素之间的相对值来替代。
2)数据压缩编码:针对步骤1)中的相对值,选择一种较高效的压缩编码方式(如哈夫曼编码)来进一步对其进行编码,最终只存储相邻数据元素之间相对值的编码信息。
其中,上述步骤1)中,用相对值来代替原始数值,可以充分利用时间序数据流在时间上通常具有连续性,时间上相邻的数据数值不会发生突变,往往在很小的范围内变化的特点,比如股票价格,日间变化不会超过10%。所以利用通常相对数值较小的特点,在硬件中存储时可以用较少的数据位存储,减少存储空间。
其中,所述的相对值可以是相对差值,或者可以是相对比值,应用时可视具体应用特点而定。
其中,上述步骤2),用压缩编码来对相对数值进行编码,充分考虑了相对数值的分布多具有长尾效应,大部分数值集中在一个很小的数值范围内,可以用较短的数据位来存储这些数据,来节省存储空间。仅有一小部分数值分布范围较广,用稍长数据位来存储这些数据,不会带来大的数据存储开销。
与现有技术相比,本实施例的方法通过两个步骤,分别采用短字长相对值来替换长字长原始数据和对相对值进一步压缩编码来减少每个数据存储所需要的数据位长,可以大大减少时间序列数据存储空间开销。分别通过相对值变换和变长压缩数据编码可以逐步减少时间序列数据存储空间开销。
为使本领域技术人员更好地了解本发明,下面将以一具体实施例说明本发明的具体实施方式。
本发明实施例的方法可以用于对时间序列数据流进行压缩和存储,该方法既可以应用到通用的处理平台中,例如,中央处理器CPU、图形处理器GPU等,也可以应用到一些针对时间序列分析处理的专用加速平台中,如现场可编程门阵列FPGA或专用集成电路ASIC中。参见图2,具体可以包含以下步骤:
1)数值相对化,计算原始时间序列数据流中相邻数值之间的相对值,除第一个数据元素外,其他数据均用其与前一数据元素之间的相对值来替代。
2)数据压缩编码,针对步骤1)中的相对值,选择一种较高效的压缩编码方式(如哈夫曼编码)来进一步对其进行编码,最终只存储相邻数据元素之间相对值的编码信息。
具体地,图3是本发明一实施例中的原始时间序列数据流示意图,如图3所示,原始时间序列中,每个数据采用32位字长的定点数进行表示和存储,七个数据总共需要的存储位长是7*32=224。图4是根据本发明实施例的方法对图3所示原始时间序列数据流进行相对化得到的相对化数据流的示意图。如图4所示,利用上述步骤1)进行数值相对化,各相邻数据间的相对值采用比值的方式进行表示,如第0时间数值45.5与第1时间数值40.95之间相对值(40.95-45.5)/45.5=-0.1。七个数值之间相对值范围在-0.1~0.1之间,并且相对值精度要求在0.005内即可全部恢复原始数据,为此相对值采用5位字长定点数进行表示存储即可满足要求。图5是根据本发明实施例的方法对图4所示的相对化数据流进行编码得到的编码数据流的示意图。如图5所示,经过步骤1)进行数值相对化后,除第0时间位置的数据之外(32位字长表示),其他数据均用5位表示,七个数据总共所需存储位长为1*32+6*5=62,相比于原始时间序列数据存储方式,压缩率为224/62=3.613。
进一步,经过步骤1)进行数值相对化之后,大部分时间序列数据之间的相对值是相同的,图3所示第0时间位置数据至第6时间位置数据之间4个相对值全为+0.02。为了进一步节省存储空间,采用一位字长数据1来表示+0.02。其他相对值+0.1与-0.1分别采用两位字长数据01和10分别表示。第0时间位置数据仍旧采用32位字长表示。经过压缩编码之后,七个数据总共所需存储位长为4*1+2*2+1*32=40。相对于第一步数值相对化之后的表示方式,压缩率为62/40=1.55,相比于原始时间序列数据存储方式,压缩率为224/40=5.6。相比于原始数据存储方式,仅需要17.86%的存储空间就可无损的将原始数据信息进行存储。
因此,本实施例在不改变原始时间序列数据信息含量的情况下,通过两步数据变换处理,逐步减少数据存储所需位长,最终达到减少时间序列数据整体的存储空间。
基于与图1所示的数据压缩方法相同的发明构思,本发明实施例还提供了一种数据压缩装置,如下面实施例所述。由于该数据压缩装置解决问题的原理与数据压缩方法相似,因此该数据压缩装置的实施可以参见数据压缩方法的实施,重复之处不再赘述。
图6是本发明一实施例的数据压缩装置的结构示意图。如图6所示,一些实施例的数据压缩装置,可包括:数值相对化单元210、编码字长确定单元220、相对值编码单元230及压缩数据生成单元240,上述各单元顺序连接。
数值相对化单元210,用于计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流。
编码字长确定单元220,用于根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长。
相对值编码单元230,用于根据确定的至少一个字长对所述相对化数据流中的相对值进行编码。
压缩数据生成单元240,用于根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。
一些实施例中,数值相对化单元210,可包括:数值相对化模块,用于计算时间序列数据流中相邻时间位置的数值之间的相对值,并按时间顺序排列所有所述相对值得到相对化数据流。
一些实施例中,编码字长确定单元220,包括:第一字长确定模块,用于根据设定精度和所述相对化数据流中相对值的数值范围的端点值的大小确定短于所述时间序列数据流的原始数据字长的第一字长;所述数值分布特征包括所述数值范围;所述至少一个字长包括所述第一字长。
一些实施例中,编码字长确定单元220,还可包括:第一字长确定模块,用于根据所述相对化数据流中多个相同相对值确定短于所述时间序列数据流的原始数据字长的第二字长;所述至少一个字长包括所述第二字长;所述第二字长短于所述第一字长。相对值编码单元230,可包括:相对值编码模块,用于根据所述第二字长对所述相对化数据流中所述多个相同相对值进行编码,并根据所述第一字长对所述相对化数据流中除所述多个相同相对值之外的相对值进行编码。
一些实施例中,数值相对化模块,可包括:差值或比值计算模块,用于计算时间序列数据流中后一时间位置的数值和紧邻的前一时间位置的数值的差值或计算所述差值与所述前一时间位置的数值的比值,作为相对值。
一些实施例中,压缩数据生成单元240,可包括:压缩数据生成模块,用于根据所述时间序列数据流中的起始数值的原始编码和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。
一些实施例中,相对值编码单元230,可包括:相对值编码模块,用于通过哈夫曼编码方法,根据确定的至少一个字长对所述相对化数据流中的相对值进行编码。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述各实施例所述方法的步骤。该电子设备可以包括针对时间序列分析处理的专用加速平台中,例如,现场可编程门阵列FPGA、专用集成电路ASIC等。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述各实施例所述方法的步骤。
本发明实施例的数据压缩方法、数据压缩装置、电子设备及计算机可读存储介质,通过计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,对原始数值进行相对化,可以根据相对值的数值分布特征确定较短的字长。根据较短的字长对相对值进行编码,能够实现利用占用存储位较少的相对值的编码信息代替原始数值的编码信息,从而实现对时间序列数据的有效压缩,减少时间序列数据存储空间开销。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种数据压缩方法,其特征在于,包括:
计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流;
根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长;
根据确定的至少一个字长对所述相对化数据流中的相对值进行编码;
根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据;
其中:
根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长,包括:
根据设定精度和所述相对化数据流中相对值的数值范围的端点值的大小确定短于所述时间序列数据流的原始数据字长的第一字长;所述数值分布特征包括所述数值范围;所述至少一个字长包括所述第一字长;所述相对化数据流中相对值的数值范围的端点值的绝对值小于所述时间序列数据流中原始数值的范围的端点值的绝对值;
根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长,还包括:
根据所述相对化数据流中多个相同相对值确定短于所述时间序列数据流的原始数据字长的第二字长;所述至少一个字长包括所述第二字长;所述第二字长短于所述第一字长;
根据确定的至少一个字长对所述相对化数据流中的相对值进行编码,包括:
根据所述第二字长对所述相对化数据流中所述多个相同相对值进行编码,并根据所述第一字长对所述相对化数据流中除所述多个相同相对值之外的相对值进行编码。
2.如权利要求1所述的数据压缩方法,其特征在于,计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流,包括:
计算时间序列数据流中相邻时间位置的数值之间的相对值,并按时间顺序排列所有所述相对值得到相对化数据流。
3.如权利要求2所述的数据压缩方法,其特征在于,计算时间序列数据流中相邻时间位置的数值之间的相对值,包括:
计算时间序列数据流中后一时间位置的数值和紧邻的前一时间位置的数值的差值或计算所述差值与所述前一时间位置的数值的比值,作为相对值。
4.如权利要求3所述的数据压缩方法,其特征在于,根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据,包括:
根据所述时间序列数据流中的起始数值的原始编码和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据。
5.如权利要求1所述的数据压缩方法,其特征在于,根据确定的至少一个字长对所述相对化数据流中的相对值进行编码,包括:
通过哈夫曼编码方法,根据确定的至少一个字长对所述相对化数据流中的相对值进行编码。
6.一种数据压缩装置,其特征在于,包括:
数值相对化单元,用于计算时间序列数据流中相距设定数量时间位置的数值之间的相对值,得到相对化数据流;
编码字长确定单元,用于根据所述相对化数据流中相对值的数值分布特征确定短于所述时间序列数据流的原始数据字长的至少一个字长;
相对值编码单元,用于根据确定的至少一个字长对所述相对化数据流中的相对值进行编码;
压缩数据生成单元,用于根据所述时间序列数据流中起始用于计算相对值的原始数值和编码后的所述相对化数据流中的相对值生成所述时间序列数据流的压缩数据;
其中:
编码字长确定单元,包括:第一字长确定模块,用于根据设定精度和所述相对化数据流中相对值的数值范围的端点值的大小确定短于所述时间序列数据流的原始数据字长的第一字长;所述数值分布特征包括所述数值范围;所述至少一个字长包括所述第一字长;所述相对化数据流中相对值的数值范围的端点值的绝对值小于所述时间序列数据流中原始数值的范围的端点值的绝对值;
编码字长确定单元,还包括:第一字长确定模块,用于根据所述相对化数据流中多个相同相对值确定短于所述时间序列数据流的原始数据字长的第二字长;所述至少一个字长包括所述第二字长;所述第二字长短于所述第一字长;
相对值编码单元,包括:相对值编码模块,用于根据所述第二字长对所述相对化数据流中所述多个相同相对值进行编码,并根据所述第一字长对所述相对化数据流中除所述多个相同相对值之外的相对值进行编码。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN201811061747.2A 2018-09-12 2018-09-12 数据压缩方法及装置 Active CN109257047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811061747.2A CN109257047B (zh) 2018-09-12 2018-09-12 数据压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811061747.2A CN109257047B (zh) 2018-09-12 2018-09-12 数据压缩方法及装置

Publications (2)

Publication Number Publication Date
CN109257047A CN109257047A (zh) 2019-01-22
CN109257047B true CN109257047B (zh) 2019-12-27

Family

ID=65047282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811061747.2A Active CN109257047B (zh) 2018-09-12 2018-09-12 数据压缩方法及装置

Country Status (1)

Country Link
CN (1) CN109257047B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231561B (zh) * 2020-10-14 2024-06-07 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102186076A (zh) * 2011-04-29 2011-09-14 中国科学院光电技术研究所 一种实时码率预分配的图像压缩方法及图像压缩装置
CN103236846A (zh) * 2013-05-02 2013-08-07 浙江中控技术股份有限公司 一种工业实时数据压缩方法及装置
CN103795419A (zh) * 2014-01-27 2014-05-14 宁波良和路桥科技有限公司 一种波形数据实时压缩的分段线性压缩方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280052B2 (en) * 2005-09-30 2007-10-09 Intel Corporation Apparatus, system, and method of data compression
JP4689545B2 (ja) * 2006-07-05 2011-05-25 富士フイルム株式会社 データ圧縮装置およびデータ圧縮プログラム
CN101753331A (zh) * 2008-11-28 2010-06-23 国际商业机器公司 用于性能数据压缩和解压缩的方法、设备和系统
CN107577432A (zh) * 2017-09-11 2018-01-12 新浪网技术(中国)有限公司 一种证券交易数据压缩方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102186076A (zh) * 2011-04-29 2011-09-14 中国科学院光电技术研究所 一种实时码率预分配的图像压缩方法及图像压缩装置
CN103236846A (zh) * 2013-05-02 2013-08-07 浙江中控技术股份有限公司 一种工业实时数据压缩方法及装置
CN103795419A (zh) * 2014-01-27 2014-05-14 宁波良和路桥科技有限公司 一种波形数据实时压缩的分段线性压缩方法

Also Published As

Publication number Publication date
CN109257047A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
CN103326730B (zh) 数据并行压缩方法
CN106549673B (zh) 一种数据压缩方法及装置
CN100547615C (zh) 表示时变图形模型的数据流的编码方案
CN110070178A (zh) 一种卷积神经网络计算装置及方法
CN111062472A (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN109409518A (zh) 神经网络模型处理方法、装置及终端
CN103326732A (zh) 压缩数据的方法、解压数据的方法、编码器和解码器
CN103995887A (zh) 位图索引压缩方法和位图索引解压方法
CN111181569B (zh) 一种时序数据的压缩方法、装置以及设备
CN110825323B (zh) 浮点数数据的存储、读取方法和计算机可读存储介质
CN110943744B (zh) 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置
CN110868223B (zh) 一种哈夫曼编码的数值运算实现方法及电路
WO2019080670A1 (zh) 基因测序数据压缩解压方法、系统及计算机可读介质
CN116016606B (zh) 一种基于智慧云的污水处理运维数据高效管理系统
CN111384959B (zh) 编码方法、处理器、编码模块及存储介质
CN110198171B (zh) 数据压缩方法、装置、计算机可读介质及电子设备
CN109257047B (zh) 数据压缩方法及装置
CN103236846A (zh) 一种工业实时数据压缩方法及装置
CN109687875B (zh) 一种时序数据处理方法
CN113630125A (zh) 数据压缩、编码解压缩方法、装置、电子设备及存储介质
CN114697654A (zh) 一种神经网络量化压缩方法及系统
CN114268323B (zh) 支持行存的数据压缩编码方法、装置及时序数据库
CN115882867B (zh) 一种基于大数据的数据压缩存储方法
CN117278058A (zh) 一种气候投融资项目数据采集处理方法
CN103746701A (zh) 一种用于Rice无损数据压缩的快速编码选项选择方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant