CN102197599A - 用于将数据记录压缩和解压缩的方法和设备 - Google Patents

用于将数据记录压缩和解压缩的方法和设备 Download PDF

Info

Publication number
CN102197599A
CN102197599A CN2008801317223A CN200880131722A CN102197599A CN 102197599 A CN102197599 A CN 102197599A CN 2008801317223 A CN2008801317223 A CN 2008801317223A CN 200880131722 A CN200880131722 A CN 200880131722A CN 102197599 A CN102197599 A CN 102197599A
Authority
CN
China
Prior art keywords
record
data record
data
nibble
processor
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.)
Pending
Application number
CN2008801317223A
Other languages
English (en)
Inventor
P·J·海斯
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.)
Micro Motion Inc
Original Assignee
Micro Motion Inc
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 Micro Motion Inc filed Critical Micro Motion Inc
Publication of CN102197599A publication Critical patent/CN102197599A/zh
Pending legal-status Critical Current

Links

Images

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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

根据本发明的实施例提供了一种数据压缩方法。该数据压缩方法包括接收第一数据记录和至少第二数据记录。将第一数据记录与第二数据记录相比较。将第二数据记录压缩为第一数据记录与第二数据记录之间的差。

Description

用于将数据记录压缩和解压缩的方法和设备
技术领域
本发明涉及数据存储系统,并且更特别地,涉及用于在数据存储系统中将数据记录压缩和解压缩的方法。
背景技术
数字处理系统频繁地在内部或外部存储器中存储输入数据。数据可以采取例如数字位流的形式。数据存储的费用随着增加的对更精确的数据测量的需求而增加。因此,能够在不破坏日后检索数据的能力的情况下降低数据存储要求的任何技术能够基本上减少处理系统的相关成本。
降低数据存储要求的一种方法是在存储之前将数据压缩。存在两种被广泛接受的压缩数据的方法,即有损和无损压缩。有损压缩是一种压缩数据的方法,其中,数据的压缩和解压缩可能在被压缩或解压缩时丢失某些信息,但是通常足够接近原始记录是有用的。这种方法最常在多媒体文件(诸如音频、视频和静止图像)的压缩中使用,因为人眼或耳朵通常不能识别原始数据和解压缩数据之间的差。相反,无损数据压缩允许从压缩文件重构精确的原始数据。其中可以使用无损压缩的典型示例是源代码和可执行程序。存在其它示例,其中,可能不清楚什么信息是重要的,并且因此不推荐丢弃原始文件中的任何信息。
通常在压缩中存在的权衡之一是将数据压缩并随后解压缩所需的极限CPU时间。因此,在任何压缩例行程序中,必须由执行此类压缩所需的CPU时间来抵消压缩的量。
存在用于压缩连续或半连续数据流的现有技术方法,其中,将两个连续的记录相互比较。通常,将相同的那部分记录压缩,同时将不相同的那部分记录存储在未压缩格式中。这种方法在其中大百分比的记录包含重复数据的许多应用中是有用的。然而,这种方法在很大百分比的数据仍未被压缩并因此要求不必要的存储空间量方面受到损害。未压缩数据的百分比在其中连续记录连续地改变的情况下急剧地增加,例如,如果输入测量围绕给定点振荡。在本示例中,在一组记录中,总测量可能是显著不同的;然而,在连续记录连续地改变的情况下,所需存储器的量未显著地减少。
某些类型的数据可以包含其中连续记录仅仅少量地改变的信息。例如,对于从一个测量到下一个测量而言,从流量计的传送机接收到的输入数据可以仅仅相对少量地改变。因此,本发明提供了一种用于将数据压缩和解压缩的方法,其中,基本上整个记录能够被压缩并存储为压缩记录与第二记录之间的差。
发明内容
根据本发明的方面,一种数据存储方法包括步骤:接收第一数据记录和至少第二数据记录;将第一数据记录与第二数据记录相比较;以及将第二数据记录压缩作为第一数据记录与第二数据记录之间的差。
优选地,所述数据存储方法还包括在压缩步骤之前对第二数据记录的最低有效位(least significant digit)进行截断的步骤。
优选地,所述数据存储方法还包括将正或负指示位从第一或所述至少第二数据记录的开头移动至该数据记录的结尾的步骤。
优选地,压缩第二数据记录的步骤包括步骤:用报头半字节(header nibble)和一个或多个数据半字节(data nibble)来压缩第二数据记录。
优选地,所述报头半字节表示随后的数据半字节的数目。
优选地,所述报头半字节表示第二数据记录是大于、小于还是等于第一数据记录。
优选地,所述一个或多个数据半字节包括第一数据记录与第二数据记录之间的差。
优选地,所述数据存储方法还包括步骤:
如果不能通过预定数目的半字节来表示第一数据记录与第二数据记录之间的差,则未压缩地存储第二数据记录。
优选地,所述数据存储方法还包括步骤:
将第一数据记录设置为基线记录;以及
将随后接收到的数据记录与基线记录相比较。
优选地,所述数据存储方法还包括将压缩的记录写到存储器的步骤。
根据本发明的另一方面,一种处理系统包括:
存储器;以及
处理器,其被配置为:
接收第一数据记录和第二数据记录;
将第一数据记录与第二数据记录相比较;以及
将作为第一数据记录与第二数据记录之间的差在存储器中的第二数据记录压缩。
优选地,所述处理器还被配置为对第二数据记录的最低有效位进行截断。
优选地,所述处理器还被配置为将正或负指示位从第一或第二数据记录的开头移动至该数据记录的结尾。
优选地,所述处理器还被配置为用报头半字节和一个或多个数据半字节来表示第二数据记录。
优选地,所述报头半字节表示压缩记录中的数据半字节的数目。
优选地,所述报头半字节表示第二数据记录是大于、小于还是等于第一数据记录。
优选地,所述一个或多个数据半字节包括第一数据记录与第二数据记录之间的差。
优选地,所述处理器还被配置为如果不能用预定数目的半字节来表示第一数据记录与第二数据记录之间的差,则未压缩地存储第二数据记录。
优选地,所述处理器还被配置为将第一数据记录设置为基线记录并将随后接收到的数据记录与基线记录相比较。
附图说明
图1示出根据本发明的实施例的处理系统。
图2示出根据本发明的实施例的压缩算法。
图3示出根据本发明的另一实施例的压缩算法。
具体实施方式
图1~3和随后的说明描绘特定示例以教导本领域的技术人员如何完成和使用本发明的最佳模式。出于教导本发明的原理的目的,已经简化或省略了某些常规方面。本领域的技术人员将认识到落在本发明的范围内的来自这些示例的变体。本领域的技术人员将认识到可以以各种方式来组合下述特征以形成本发明的多个变体。结果,本发明不限于下述特定示例,而是仅仅由权利要求及其等价物来限制。
图1示出根据本发明的实施例的处理系统100。处理系统100包括处理器101和存储器102。处理系统100可以包括通用计算机、微处理系统、逻辑电路、数字信号处理器或某种其它通用或定制处理设备。处理系统100可以分布在多个处理设备之间。处理系统100可以包括任何方式的整体或独立电子存储介质,诸如存储器102。通过总线环路103连接到处理系统100的是传送机104。传送机104可以连接到任何数目的设备,包括但不限于诸如振动流量计的流量测量设备,包括例如Coriolis流量计。传送机104可以被配置为向处理系统100发送信息。该信息可以包括例如流量测量。然而,应理解的是由传送机发送的信息将取决于连接到传送机的另一端的特定设备(未示出)。因此,本发明不应局限于由流体流动信息组成的数据。
根据本发明的实施例,数据处理器101能够从传送机104接收输入的数据位并在将数据发送到存储器102之前压缩输入的数据位。处理器101可以基于当前数据记录和先前数据记录之间的差来压缩当前数据记录。不同于现有技术方法,其仅压缩与先前数据记录相同的那部分数据记录,而不压缩不同于先前记录的那部分记录,本发明能够压缩基本上所有数据记录。根据本发明的实施例,压缩的数据记录被写为当前记录与第二记录之间的差。根据本发明的另一实施例,所述压缩的数据记录被写为先前记录与当前记录之间的差。根据本发明的又另一实施例,所述压缩的数据记录被写为当前记录与基线记录之间的差。
根据本发明的实施例,由处理器101接收到的数据包括数字位流。应理解的是数据不必须包括数字位流。因此,由处理器101接收到的特定形式的数据不应限制本发明的范围。然而,如下文进一步讨论的,数字位流很容易被划分成诸如半字节(nibble)(4位)或字节(8位)的不同的统一群组。
根据本发明的实施例,例如,处理器101可以将输入的数据位表示为十进制或十六进制字符。应理解的是不必将输入数据表示为十六进制字符;然而,在某些实施例中,十六进制代码可以提供比十进制表示更好的压缩。
根据本发明的实施例,处理器101能够将输入数据作为压缩记录写在存储器102中。处理器101可以将输入数据压缩成半字节串。该半字节串可以包括一系列的“报头”半字节。根据本发明的实施例,每个报头半字节后面可以是一个或多个数据半字节。数据半字节的数目可以根据分配给每个报头半字节的特定定义而变化。然而,在一个实施例中,数据半字节的数目可以在一个至八个范围内变化。根据本发明的实施例,数据半字节的数目可以取决于连续数据记录从一个到另一个变化的量。应理解的是虽然本实施例被描述为将数据压缩成半字节,但被集中在一起的位的特定数目可以改变,并且因此,本发明不应局限于四位的分组。相反,可以将任何数目的位分组在一起。
根据本发明的实施例,可以使用以下表格来表示报头半字节,其利用十六进制字符。应理解的是该表格仅仅是作为示例提供的,并且本领域的技术人员将很容易认识到落入本发明的范围内的各种其它报头定义。
表1
Figure 450817DEST_PATH_IMAGE002
表1中的第一列是压缩记录中的报头半字节的十六进制值。应认识到可以将十六进制值提供给用户/操作员以表示实际上存储在存储器102中的二进制值。表1中的第二列提供多少数据半字节在特定报头半字节后面。表1中的第三列描述数据半字节表示什么。例如,如果报头半字节是‘E’,则后面是七个数据半字节,其中,数据半字节表示新值—先前的值。换言之,当前记录大于先前的记录。如果记录包括流量测量,则例如这可以意味着当前测量大于先前的测量。
可以与上述定义相结合地使用压缩算法以基于当前数据记录与先前的未压缩数据记录之间的差来压缩输入的数据位。被写到存储器102的压缩记录可以包括未压缩记录与先前记录之间的差。
图2示出根据本发明的实施例的数据压缩算法200。可以由用户/操作员来发起算法200,或者可替换地,可以由处理器101所操作的另一程序来发起。根据图2所示的实施例,处理器101可以在步骤201处接收输入数据。
在步骤202处,处理器101可以将当前记录与第二数据记录相比较。在某些实施例中,第二记录包括先前记录。如果不存在要与当前记录相比较的先前记录,则处理器101可以未压缩地存储记录。根据本发明的实施例,存储的记录可以包括后面是一个至八个数据半字节的报头半字节。报头半字节的值将取决于数据记录多长。换言之,报头半字节的值将取决于当前记录与先前记录之间的差。根据本发明的实施例,报头半字节可以基于表1中的值。根据本发明的实施例,处理器101可以暂时地存储记录以便将当前记录与随后接收到的记录相比较。可以将当前记录未压缩地存储在高速缓冲存储器或类似存储器中直至步骤203(下面)完成。
处理器可以确定是否能够用预定数目的半字节来表示第一和第二记录之间的差。根据其中处理器101实现表1的定义的一个实施例,半字节的预定数目将是八个,因为最高报头半字节仅提供后面的八个数据半字节。然而,如果实现了其它报头半字节定义,则数据半字节的预定数目可以改变。
如果能够用预定数目的半字节来表示该差,则处理器101前进至步骤203,在步骤203处,当前记录被压缩为当前记录与第二记录之间的差。在某些实施例中,压缩表示当前记录与先前记录之间的差。根据本发明的实施例,处理器101可以将当前记录压缩成包括后面是一个或多个数据半字节的报头半字节的记录。根据本发明的实施例,所述报头半字节可以指示随后的数据半字节的数目。根据本发明的另一实施例,所述报头半字节可以表示当前记录是大于、小于还是等于先前记录。根据本发明的实施例,所述数据半字节表示当前压缩的记录与先前记录之间的差。如果不能用预定数目的半字节来表示该差,处理器101能够未压缩地存储记录而不是将记录压缩。未压缩的记录仍可以包括报头半字节。例如,如果如在以上表格1中一样定义报头半字节,则包括八个半字节的未压缩记录的报头半字节将是‘F’。
在步骤204处,处理器101可以确定当前记录是否包括最后一个记录。如果该记录包括最后一个记录,则算法200可以结束。处理器101还可以将当前记录作为压缩记录写在存储器102中而不暂时地存储当前记录。这是因为不存在必须将当前记录与之相比较的后续记录。如果存在更多的输入数据记录,则算法200可以返回步骤202,在步骤202处,可以将后续记录与当前记录相比较。
下面示出在整数数据值上实现的算法200的示例以帮助根据本发明的实施例来理解本发明。以其中每个十进制表示二进制代码中的半字节的以下输入数据记录为例。
(1) 12345678
(2) 12345678
(3) 12345678
(4) 12345677
(5) 12345675
(6) 12345676
根据算法200,处理器101可以接收第一数据记录,并且由于不存在将第一数据记录与之相比较的先前记录,所以处理器101可以将第一数据记录连同指示后面是八个半字节的报头半字节一起存储。因此,压缩格式将是F12345678,其中,‘F’是表示后面是未压缩的八个半字节的报头半字节。换言之,八个数据半字节包括原始输入数据。
根据本发明的实施例,处理器101然后可以接收与第一数据记录相同的第二数据记录。因此,处理器101可以继续至同样与第一数据记录相同的第三数据记录。处理器101然后可以继续至第四数据记录。由于第四数据记录不与第一数据记录相同,所以可以将第二和第三数据记录压缩成两个半字节,一个报头半字节表示记录与先前记录相同,并且一个数据半字节表示多少个记录是相同的。在这种情况下,第二和第三数据记录与第一数据记录相同,并且因此,数据半字节将是2。因此,第二和第三数据记录将被压缩为‘02’。
然后,处理器101可以将第四数据记录与第三数据记录相比较。在这种情况下,差是一(12345678 - 12345677)。此外,第四数据记录小于第三数据记录。由于可以由少于预定数目的数据半字节(在这种情况下为八个)来表示该差,所以处理器101可以将记录压缩。在这种情况下,第四数据记录将被压缩为‘11’,其中,报头半字节是1,其表示后面是1个半字节,并且,数据半字节的值表示旧值—新值。数据半字节是1,因为差是1。
在第五数据记录与第四数据记录之间进行类似比较;然而,第五数据记录与第四数据记录相差二。因此,压缩记录将被存储为‘12’。
第六数据记录大于第五数据记录。然而,仍可以以一个半字节来表示该差。因此,第六数据记录将被压缩为‘81’,其中‘8’包括表示后面是一个数据半字节的报头半字节,并且数据半字节表示新值—旧值。‘1’包括其中第六和第五数据记录之间的差是一的数据半字节。
处理器101因此可以接收的输入数据流,并将压缩记录作为
Figure 367958DEST_PATH_IMAGE004
写入存储器102。这得到23(40 - 17)的存储半字节形式的总差,得到58%的总压缩。
如上所述的本发明与现有技术相比提供了优越的压缩,因为基本上所有的数据记录都被压缩,而不是仅仅数据记录的相同部分。这是因为被写入存储器102的压缩记录包括当前记录与先前记录之间的差。因此,处理器101能够实现比其中仅一部分数据记录被压缩的现有技术大得多的压缩比。
虽然示出了其中输入数据包括整数值的以上说明,但应理解的是本发明同样地适用于浮点值。虽然在以下示例中使用IEEE-754单精度浮点数,但应理解的是可以同样地使用用于浮点数据的IEEE-7554双精度以及其它标准。因此,本发明不应局限于IEEE-754单精度浮点数。考虑包括浮点数的以下输入数据,其中浮点值后面是已转换的十六进制表示。再次地,应认识到每个十六进制字符表示二进制代码的四个位。
Figure DEST_PATH_IMAGE005
根据算法200,以上示例的第一数据记录仍是未压缩的,并且被与表示记录包括未压缩的八个半字节的‘F’的报头半字节一起存储。因此,第一数据记录实际上将包括导致负压缩的附加半字节(报头半字节)。然后,处理器101可以接收第二数据记录并将其与第一数据记录比较。在比较时,处理器101可以在步骤203处确定能够以小于预定数目的半字节(八个)来存储第二数据记录与第一数据记录之间的差。因此,第二数据记录被压缩并存储为第二数据记录与第一数据记录之间的差,其压缩为‘D128F5C’。在此压缩记录中,‘D’是报头半字节,根据表1,其表示后面是六个数据半字节,并且数据半字节表示先前值减去新值。数据半字节128F5C表示第一和第二数据记录之间的十六进制的差。
处理器101可以以类似的方式将其余数据记录压缩,其中,十六进制的第二和第三数据记录之间的差是137319,并且因此,可以将第三数据记录压缩为D 137319。同样地,十六进制的第三数据记录和第四数据记录之间的差是13CD36,并且因此,可以将第四数据记录压缩为D13CD36。第四数据记录与第五数据记录之间的差是FA29C。由于仅以五个半字节而不是六个来表示该差,所以可以将第五数据记录压缩为CFA29C,其中,前'C表示后面是五个数据半字节,并且数据半字节表示先前值—新值。同样地,第五数据记录与第六数据记录之间的差是8F5C3,并且因此,可以将第六数据记录压缩为C8F5C3。
表示浮点数的六个数据记录的压缩得到约12.5%的总压缩。可以认识到较少的连续记录不同,需要较少数目的半字节来表示记录之间的差,得到更大的压缩。根据其中传送机104传送流体流动测量的实施例,总压缩可以取决于测量的频率。这是因为测量越频繁,每个测量将从一个到另一个改变越少。因此,虽然测量的数目将增加,但可以由较少的半字节来表示测量之间的差,得到压缩的总体增加。
除上文所讨论的压缩之外,处理器101能够实现附加步骤以便增加对浮点数执行的压缩。可以将这些附加步骤称为“作不合需要的修改(munging)”。根据本发明的实施例,处理器101可以对数据记录中的最低有效数(least significant number)进行截断。对于某些应用而言,对最低有效数进行截断可以基本上不影响数据的准确度。在流体流动测量中尤其如此,例如在输入测量比客户所需的更准确的情况下。根据当前的电气与电子工程师协会标准学会,用八个半字节来表示单精度浮点数,其在将尾数分量考虑在内时粗略地表示有效数字的七个十进制位。根据本发明的实施例,处理器101将数据表示为六位,因此消除了存储的一个半字节价值的需要。因此,去除一位可以增加压缩。
另外,由电气与电子工程师协会标准学会所阐明的标准规定在第一位中表示浮点数的符号(+/-),其中,0意指该数是正的且1意指该数是负的。如果输入数据在零左右徘徊且因此周期性地改变符号,则将必须用高半字节数来表示该差,即使两个记录之间的绝对差可能是相对小的。因此,根据本发明的实施例,符号将从记录的开头移动至结尾处。因此,即使输入数据连续地改变符号,由处理器101处理的所表示的数将相对很少地改变,并且可以用较少的半字节来表示连续记录之间的差。由处理器101执行的这些额外步骤可以得到压缩的显著增加,因为可以用较少的半字节来表示记录之间的差。
虽然以上讨论集中于数据压缩,处理器101还可以将存储在存储器102中的记录解压缩。解压缩可以遵循与压缩算法类似的程序。可能由于多种原因需要访问存储在存储器102中的记录,并且因此,所需的特定记录可以改变。如果需要所有的记录,则处理器101可以简单地在记录的开头处开始并连续地访问每个记录。
然而,在某些情况下,不是立刻需要访问所有的记录。如果情况是这样,则处理器101能够访问首先识别需要哪些记录所需的记录。一旦识别了所需的记录,则处理器101必须发现包括报头半字节的先前存储的记录,所述报头半字节表示后面是未压缩的数据半字节。例如,如果正在使用表1,则这将对应于报头半字节‘F’。需要此未压缩的记录,因为包括所需记录的所有后续存储的记录表示两个连续记录之间的差。然而,在不识别先前未压缩记录的情况下,该差可以不提供有价值的信息。一旦检索到未压缩的记录,则处理器101可以继续将随后的基本上所有记录解压缩,直至检索到所需记录并将其解压缩。
应认识到上文所讨论的连续访问例行程序在其中访问以便将感兴趣的记录解压缩所需的记录的数目不是抑制的情况下可以是足够的。然而,可能存在其中解压缩的记录的数目要求过度的处理时间量的情况。因此,根据本发明的实施例,处理器101可以根据压缩算法300来压缩输入数据。
图3示出根据本发明的实施例的可以由处理器101执行的压缩算法300。压缩算法300在其中输入数据不以显著的量改变的情况下特别有用。在其中传送机104正在稳态或半稳态下中继信息的示例中这可能如此。例如,如果传送机104被耦合到其中流体正在以相对恒定的流速流动的流量计,则输入流速可能不会显著地不同。因此,可能存在能够在根据算法200输入记录不能被压缩之前被压缩的数据的许多输入位。算法200可以提供高压缩比,因为连续记录之间的差可能能够用低数目的半字节来表示。然而,在其中必须将大容量的记录解压缩以便访问感兴趣的记录的解压缩期间可能证明是麻烦的。算法300通过将输入的数据位记录与基线记录相比较来解决此问题。根据本发明的实施例,例如,基线记录可以包括第一接收到的记录。然而,基线记录可以是任何接收的记录,并且不限于第一接收的记录。另外,基线记录可以是由处理器101设定的值。例如,基线记录可以包括所有接收的记录的平均值。
算法300在其中处理器101接收输入数据的步骤301处开始。输入数据可以采取如上文相对于图2所讨论的数据位的形式。根据本发明的实施例,可以将第一记录存储为第一基线记录。可以以与在算法200中如何存储第一记录类似的方式来存储第一基线记录。以在算法200的讨论中所使用的输入记录为例:
Figure 210012DEST_PATH_IMAGE006
可以再次将第一记录存储为F12345678,其中,‘F’表示后面是未压缩数据的八个半字节。
在步骤302处,处理器101可以将当前数据记录与基线记录相比较。这与算法200相比,其将当前记录与紧接在前的记录相比较。
在步骤303处,处理器101能够确定是否能够用预定数目的半字节来表示当前记录与基线记录之间的差。如果其可以,则处理器101继续至步骤304,在步骤304处,当前记录被压缩为当前记录与基线记录之间的差。如果另一方面,答案是否,则处理器101能够在步骤305处将当前记录存储为新的基线记录。
在步骤306处,处理器101确定先前存储的记录是否是最后一个记录,如果是,则算法300结束。如果存在要压缩的更多记录,则处理器返回至步骤302。
在以上六个数据记录的示例中,第二和第三记录将根据算法300以与其根据算法200被压缩相同的方式来压缩,即,第二和第三记录将被压缩为‘02’。
根据算法200,第四记录被写为压缩记录‘11’。根据算法300,第四记录还将被写为‘11’,因为第一基线记录和第四记录之间的差仍是一,并因此能够使用一个半字节来写。
根据算法200,第五记录基于第四记录与第五记录之间的差被写为压缩的记录‘12’。然而,根据算法300,将第五记录与第一基线记录相比较。第五记录与基线记录之间的差是三(12345678 - 12345675)。因此,第五记录将被写为压缩的记录‘13’。
根据算法200,第六记录被写为压缩的记录‘81’。然而,根据算法300,第六记录将基于第一基线记录与第六记录之间的差被写为‘12’。
在上述示例中,压缩比对于两个算法而言是相同的。应认识到情况并不始终如此。如果输入数据沿着单个方向连续地改变,例如,如果输入数据正在增加,则算法300可能不提供与算法200同样多的压缩。这是因为压缩的记录可能要求比表示正在被压缩的记录与先前记录之间的差所需的更多的半字节来表示正在被压缩的记录与基线记录之间的差。
在解压缩期间实现算法300相对于算法200的优点。算法300不是要求如算法200中的第一未压缩记录与要求的记录之间的所有记录的解压缩,而是仅仅要求基线记录和要求的记录的解压缩。再次参考上文提供的六个示例性记录,如果要求将第五记录解压缩,则处理器101将必须根据算法200将五个记录(1~5)解压缩,以便获得解压缩的记录五。然而,根据算法300,为了访问第五记录,只须将两个记录,第一基线记录和第五记录解压缩。因此,根据算法300,可以显著地减少访问某些记录所需的处理时间。
应认识到,根据本发明的实施例,基线记录不需要是第一接收的记录。相反,基线记录可以包括任何记录。另外,应认识到,每次要求新的基线记录时,不能用预定数目的半字节来表示当前记录与基线记录之间的差。因此,在给定数目的数据记录内,可以存在多个基线记录。当在解压缩期间访问记录时,处理器101只需要访问最近的在先基线记录。有利地,可以减少将给定记录解压缩所需的处理时间。算法300在其中用户/操作员想要在不需要访问所有记录的情况下访问特定记录的情况中尤其有用。
如上所述的本发明提供了一种用于将数据的位的连续访问记录压缩的方法。本发明通过将压缩的记录写入存储器来提供相对于现有技术的优点,所述压缩的记录表示当前数据记录与第二数据记录之间的差。第二数据记录可以包括紧接先前接收到的数据记录,或者其可以包括先前接收到的基线数据记录,但是不必须是紧接在先的记录。在任一种情况下,压缩的记录包括两个记录之间的差,而不是如在现有技术中一样存储与另一记录不同的记录的未压缩部分。有利地,本发明能够实现比在其中只有记录的相同部分被压缩的现有技术中可以实现的大得多的压缩比。
本发明还提供了一种用于将数据解压缩的高效方法。根据本发明的实施例,处理器101能够识别先前存储的未压缩记录并将在期望记录与未压缩的记录之间存储的记录解压缩。根据另一实施例,处理器101能够识别先前存储的未压缩记录,诸如基线记录,并仅仅基于基线记录来获得期望的记录。
以上实施例的详细说明不是由本发明人所预期的在本发明范围内的所有实施例的排他性说明。事实上,本领域的技术人员将认识到可以以各种方式将上述实施例的某些元件组合或消除以产生其它实施例,并且此类其它实施例落在本发明的范围和教导内。对于本领域的技术人员来说还显而易见的是可以整体地或部分地将上述实施例组合以产生在本发明的范围和教导内的附加实施例。
因此,虽然在本文中出于说明性目的描述了本发明的特定实施例和示例,但如相关领域的技术人员将认识到的那样,在本发明的范围内各种等价修改是可能的。本文所提供的教导可以应用于其它存储系统,而不仅仅是上文所述和附图所示的实施例。因此,应根据以下权利要求来确定本发明的范围。

Claims (19)

1. 一种数据存储方法,包括步骤: 
接收第一数据记录和至少第二数据记录; 
将第一数据记录与第二数据记录相比较;以及 
将第二数据记录压缩为第一数据记录与第二数据记录之间的差。
2. 权利要求1的数据存储方法,还包括在压缩步骤之前对第二数据记录的最低有效位进行截断的步骤。
3. 权利要求1的数据存储方法,还包括将正或负指示位从第一或所述至少第二数据记录的开头移动至数据记录的结尾的步骤。
4. 权利要求1的数据存储方法,其中,压缩第二数据记录的步骤包括步骤:
用报头半字节和一个或多个数据半字节来压缩第二数据记录。
5. 权利要求4的数据存储方法,其中,报头半字节表示随后的数据半字节的数目。
6. 权利要求4的数据存储方法,其中,所述报头半字节表示第二数据记录大于、小于还是等于第一数据记录。
7. 权利要求4的数据存储方法,其中,所述一个或多个数据半字节包括第一数据记录与第二数据记录之间的差。
8. 权利要求1的数据存储方法,还包括步骤:
如果不能由预定数目的半字节来表示第一数据记录与第二数据记录之间的差,则未压缩地存储第二数据记录。
9. 权利要求1的数据存储方法,还包括步骤: 
将第一数据记录设置为基线记录;以及 
将随后接收到的数据记录与基线记录相比较。
10. 权利要求1的数据存储方法,还包括将压缩记录写入存储器的步骤。
11. 一种处理系统(100),包括: 
存储器(102);
处理器(101),其被配置为: 
接收第一数据记录和第二数据记录; 
将第一数据记录与第二数据记录相比较;以及 
将存储器(102)中的第二数据记录压缩为第一数据记录与第二数据记录之间的差。
12. 权利要求11的处理系统(100),其中,所述处理器(101)还被配置为对第二数据记录的最低有效位进行截断。
13. 权利要求11的处理系统(100),其中,所述处理器(101)还被配置为将正或负指示位从第一或第二数据记录的开头移动至数据记录的结尾。
14. 权利要求11的处理系统(100),其中,所述处理器(101)还被配置为用报头半字节和一个或多个数据半字节来表示第二数据记录。
15. 权利要求14的处理系统(100),其中,所述报头半字节表示压缩记录中的数据半字节的数目。
16. 权利要求14的处理系统(100),其中,所述报头半字节表示第二数据记录大于、小于还是等于第一数据记录。
17. 权利要求14的处理系统(100),其中,所述一个或多个数据半字节包括第一数据记录与第二数据记录之间的差。
18. 权利要求11的处理系统(100),其中,所述处理器(101)还被配置为如果不能由预定数目的半字节来表示第一数据记录与第二数据记录之间的差,则未压缩地存储第二数据记录。
19. 权利要求11的处理系统(100),其中,所述处理器(101)还被配置为将第一数据记录设置为基线记录并将随后接收到的数据记录与基线记录相比较。
CN2008801317223A 2008-10-27 2008-10-27 用于将数据记录压缩和解压缩的方法和设备 Pending CN102197599A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/081363 WO2010050924A1 (en) 2008-10-27 2008-10-27 Method and apparatus for compressing and decompressing data records

Publications (1)

Publication Number Publication Date
CN102197599A true CN102197599A (zh) 2011-09-21

Family

ID=40456339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801317223A Pending CN102197599A (zh) 2008-10-27 2008-10-27 用于将数据记录压缩和解压缩的方法和设备

Country Status (11)

Country Link
US (1) US20110196849A1 (zh)
EP (1) EP2351229A1 (zh)
JP (1) JP2012506665A (zh)
CN (1) CN102197599A (zh)
AR (1) AR073836A1 (zh)
AU (1) AU2008363659A1 (zh)
BR (1) BRPI0823173A2 (zh)
CA (1) CA2741183A1 (zh)
MX (1) MX2011003914A (zh)
RU (1) RU2011121360A (zh)
WO (1) WO2010050924A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559083A (zh) * 2016-11-01 2017-04-05 惠州Tcl移动通信有限公司 一种移动终端对特定数据进行压缩的方法及系统
CN106788450A (zh) * 2016-11-22 2017-05-31 深圳市长龙铁路电子工程有限公司 一种道岔动作曲线的压缩方法
CN112104376A (zh) * 2020-11-19 2020-12-18 南京艾科朗克信息科技有限公司 一种证券期货行情数据实时压缩方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120082395A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Entropy Coder for Image Compression
GB2507751A (en) * 2012-11-07 2014-05-14 Ibm Storing data files in a file system which provides reference data files
KR102017807B1 (ko) * 2013-12-31 2019-09-03 에스케이하이닉스 주식회사 데이터 처리 장치 및 데이터 처리 방법
KR102017808B1 (ko) * 2013-12-31 2019-09-03 에스케이하이닉스 주식회사 데이터 처리 장치 및 데이터 처리 방법
WO2016131554A1 (en) * 2015-02-17 2016-08-25 Parstream Gmbh Method and apparatus for adaptive data compression
US10498865B2 (en) * 2017-12-12 2019-12-03 Intel Corporation Security-oriented compression

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472887A (zh) * 2002-08-02 2004-02-04 艺高科技股份有限公司 一种改进的音乐压缩与解压缩方法
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法
US20080131087A1 (en) * 2006-11-30 2008-06-05 Samsung Electronics Co., Ltd. Method, medium, and system visually compressing image data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165720A (ja) * 1990-10-29 1992-06-11 Hitachi Ltd データ処理装置
US5710919A (en) * 1995-09-29 1998-01-20 Electronic Data Systems Corporation Record compression
US6167499A (en) * 1997-05-20 2000-12-26 Vlsi Technology, Inc. Memory space compression technique for a sequentially accessible memory
US5999936A (en) * 1997-06-02 1999-12-07 Compaq Computer Corporation Method and apparatus for compressing and decompressing sequential records in a computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472887A (zh) * 2002-08-02 2004-02-04 艺高科技股份有限公司 一种改进的音乐压缩与解压缩方法
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法
US20080131087A1 (en) * 2006-11-30 2008-06-05 Samsung Electronics Co., Ltd. Method, medium, and system visually compressing image data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAVID SALOMON: "《Data Compression The Complete Reference Fourth Edition》", 31 December 2007, SPRINGER *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559083A (zh) * 2016-11-01 2017-04-05 惠州Tcl移动通信有限公司 一种移动终端对特定数据进行压缩的方法及系统
CN106559083B (zh) * 2016-11-01 2020-06-09 惠州Tcl移动通信有限公司 一种移动终端对特定数据进行压缩的方法及系统
CN106788450A (zh) * 2016-11-22 2017-05-31 深圳市长龙铁路电子工程有限公司 一种道岔动作曲线的压缩方法
CN112104376A (zh) * 2020-11-19 2020-12-18 南京艾科朗克信息科技有限公司 一种证券期货行情数据实时压缩方法
CN112104376B (zh) * 2020-11-19 2022-02-15 南京艾科朗克信息科技有限公司 一种证券期货行情数据实时压缩方法

Also Published As

Publication number Publication date
AR073836A1 (es) 2010-12-01
BRPI0823173A2 (pt) 2015-06-23
AU2008363659A1 (en) 2010-05-06
EP2351229A1 (en) 2011-08-03
CA2741183A1 (en) 2010-05-06
WO2010050924A1 (en) 2010-05-06
US20110196849A1 (en) 2011-08-11
MX2011003914A (es) 2011-06-20
JP2012506665A (ja) 2012-03-15
RU2011121360A (ru) 2012-12-10

Similar Documents

Publication Publication Date Title
CN102197599A (zh) 用于将数据记录压缩和解压缩的方法和设备
CN101095284B (zh) 用于有选择地压缩和解压缩数据的设备与方法
US20150012507A1 (en) System and methods for accelerated data storage and retrieval
CN104040542A (zh) 用于在易失性存储器内保持关系型数据的列向量的技术
JP6009676B2 (ja) データ圧縮装置およびデータ伸張装置
US20090136130A1 (en) Efficient histogram storage
CN107027326B (zh) 存储系统中数据备份的方法及装置
CN106233632A (zh) Ozip压缩和解压缩
US6225922B1 (en) System and method for compressing data using adaptive field encoding
CN113312325A (zh) 轨迹数据传输方法、装置、设备及存储介质
CN111178490B (zh) 数据输出方法、获取方法、装置和电子设备
US7071854B1 (en) Hardware-implemented LZW data decompression
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
US6320521B1 (en) System and method for efficiently merging compressed data
CN116707532A (zh) 一种压缩文本的解压方法、装置、存储介质及电子设备
JPH10261969A (ja) データ圧縮方法および装置
US7020340B2 (en) Methods for compressing and decompressing data
KR20110089308A (ko) 데이터 레코드들의 압축 및 압축해제를 위한 방법 및 장치
US10284226B1 (en) Performing parallel deflate compression
US20210281276A1 (en) Encoded block format
US20130181852A1 (en) Coding circuitry for difference-based data transformation
US7733249B2 (en) Method and system of compressing and decompressing data
US10432216B1 (en) Configurable compression circuit
CN112525450B (zh) 一种降低可靠性测试中振动数据存储空间占用率的方法
WO2019191904A1 (zh) 一种数据处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1162223

Country of ref document: HK

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110921

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1162223

Country of ref document: HK