CN102103630B - 数据压缩方法和装置以及数据解压缩方法和装置 - Google Patents

数据压缩方法和装置以及数据解压缩方法和装置 Download PDF

Info

Publication number
CN102103630B
CN102103630B CN 201010592186 CN201010592186A CN102103630B CN 102103630 B CN102103630 B CN 102103630B CN 201010592186 CN201010592186 CN 201010592186 CN 201010592186 A CN201010592186 A CN 201010592186A CN 102103630 B CN102103630 B CN 102103630B
Authority
CN
China
Prior art keywords
data
byte
current
differential data
differential
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
CN 201010592186
Other languages
English (en)
Other versions
CN102103630A (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.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN 201010592186 priority Critical patent/CN102103630B/zh
Publication of CN102103630A publication Critical patent/CN102103630A/zh
Application granted granted Critical
Publication of CN102103630B publication Critical patent/CN102103630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Medical Treatment And Welfare Office Work (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种数据压缩方法,获取原始数据序列(N1,N2,N3,…,Nm),根据
Figure DSA00000388596600011
1<k≤m和原始数据序列(N1,N2,N3,…,Nm)获取差分数据序列(D1,D2,D3,…,Dm),依次存储差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据。本发明还提供一种数据解压缩方法、数据压缩装置和数据解压缩装置。采用本发明提供的数据压缩方法和装置以及数据解压缩方法和装置,通过对原始数据序列进行后项减前项的计算获得差分数据序列,依次存储差分数据序列中的每一个差分数据,由于差分数据的值小于原始数据的值,因此,存储差分数据占用的字节数少于原始数据占用的字节数,从而节省了数据存储空间。

Description

数据压缩方法和装置以及数据解压缩方法和装置
技术领域
本发明涉及数据库技术,尤其涉及一种数据压缩方法、数据解压缩方法、数据压缩装置和数据解压缩装置。 
背景技术
在关系数据库技术领域中,数据检索通常采用目录数据表或主索引数据表实现,目录数据通常是数据库访问最频繁的部分。目前,目录数据的存储通常采用直接存储原始目录数据的方式,一般会占用较大的存储空间,特别是对于千万级以上记录数的情况,存储该目录数据需要耗费巨大的存储空间。 
以数据库存储内容为电子健康档案为例,电子健康档案的目录是电子健康的总索引,医生调阅患者的电子健康档案时,首先查看目录,然后再根据目录逐级展开查看,因此目录是电子健康档案中访问最为频繁的部分。表1为电子健康档案目录结构表。如表1所示,电子健康档案目录包括患者主索引标识(Dentity,简称ID)和多个就诊主记录ID,其中,患者的主索引ID是患者在区域卫生信息数据库中的唯一标识,就诊主记录ID用于标识该患者的一次完整的卫生服务活动,通常由区域卫生数据中心代码、医疗机构代码和活动序列号组成,其中,区域卫生数据中心代码、医疗机构代码在一个区域内都是唯一的,活动序列号为患者就诊活动的编号,通常可以依该患者就诊总次数递增。例如:一次完整的卫生服务活动为:患者李明2008年5月2日第一次到人民医院看病就诊,则患者的主索引ID为:李明,人民医院所在的区域卫生数据中心代码为100,人民医院的医院代码以100为例,本次活动的序列号为001,则第一次就诊主 记录ID为:100100001。就诊主记录I D实际上是区域卫生信息数据库的就诊主记录表的主键,医生浏览健康档案目录,想要查看患者某一次就诊的详细记录时,健康档案服务程序会根据该次就诊的就诊主记录ID,从数据库的就诊主记录表中获得详细的就诊记录,向医生展示出来。 
表1.电子健康档案目录结构表 
Figure BSA00000388596900021
在存储健康档案目录数据时,按照现有的存储方法,直接存储目录的原始数据。其中,每个就诊主记录ID用8个字节的长整型表示,因此,在存储时也用8个字节来存储。这对于单个患者的健康档案而言,存储空间耗费或许微不足道,但是对于一定区域内所有患者的健康档案而言,存储空间耗费巨大,读取效率低。 
发明内容
本发明提供一种数据压缩方法,用以解决现有技术中的缺陷,节省数据存储空间。 
本发明还提供一种数据解压缩方法,用以解决现有技术中的缺陷,节省数据存储空间。 
本发明还提供一种数据压缩装置,用以解决现有技术中的缺陷,节省数据存储空间。 
本发明还提供一种数据解压缩装置,用以解决现有技术中的缺陷,节省数据存储空间。 
本发明提供一种数据压缩方法,包括: 
获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据,m为原始数据总个数; 
根据 
Figure BSA00000388596900022
1<k≤m和所述原始数据序列(N1,N2,N3,…,Nm),获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据;
依次存储所述差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据; 
存储所述差分数据序列(D1,D2,D3,…,Dm)中的任意一个差分数据的方法包括: 
按照从低位到高位的顺序,从当前差分数据中取出指定个数的位并存储到当前字节的数据位中,其中,所述当前字节包括数据位和标识位,所述指定个数为当前字节的数据位的个数; 
判断当前差分数据是否取尽; 
如果是,在当前字节的标识位存储结束标识,并将下一个字节设置为当前字节,存储所述差分数据序列(D1,D2,D3,…,Dm)中的下一个差分数据; 
否则,在当前字节的标识位存储未结束标识,并将下一个字节设置为当前字节,返回执行所述按照从低位到高位的顺序,从当前差分数据中取出指定个数的位并存储到当前字节的数据位中的步骤。 
如上所述的数据压缩方法,其中, 
所述指定个数为7,所述结束标识为1,所述未结束标识0; 
或, 
所述指定个数为7,所述结束标识为0,所述未结束标识1。 
本发明还提供一种数据解压缩方法,包括: 
获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据,m为差分数据总个数; 
根据 N 1 = D 1 N k = D k - N k - 1 , 1 < k &le; m 和所述差分数据序列(D1,D2,D3,…,Dm),获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据; 
获取差分数据序列(D1,D2,D3,…,Dm)中的任意一个差分数据包括: 
读取当前字节的数据位存储的数据,其中,所述当前字节包括数据位和标识位; 
判断当前字节是否为该差分数据的第一个字节,如果是,将当前字节的数据位存储的数据作为临时数据,否则,将当前字节的数据位左移到当前的临时数据的最高位左侧,将当前字节的数据位存储的数据与当前的临时数据合并后的数据作为临时数据; 
判断当前字节的标识位是结束标识或未结束标识; 
如果是结束标识,将所述临时数据作为差分数据; 
如果是未结束标识,将下一个字节设置为当前字节,返回执行所述读取当前字节的数据位存储的数据的步骤。 
如上所述的数据解压缩方法,其中,所述将当前字节的数据位左移到当前的临时数据的最高位左侧包括: 
对判断当前差分数据的字节的标识位是未结束标识的次数进行计数,获得计数值; 
将当前字节的数据位左移指定位数,所述指定位数为当前字节的数据位的个数与所述计数值的乘积。 
本发明还提供一种数据压缩装置,包括: 
原始数据模块,用于获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据,m为原始数据总个数; 
差分数据模块,用于根据 D 1 = N 1 D k = N k - N k - 1 , 1 < k &le; m 和所述原始数据序列(N1,N2,N3,…,Nm),获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据; 
存储控制模块,用于向存储设备依次存储所述差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据; 
所述存储控制模块包括: 
获取单元,按照从低位到高位的顺序,从当前差分数据中取出指定个数的位,所述指定个数为当前字节的数据位的个数; 
存储单元,用于向当前字节的数据位存储所述指定个数的位,其中,所述当前字节包括数据位和标识位; 
控制单元,用于判断当前差分数据是否取尽;如果是,在当前字节的标识位存储结束标识,并将下一个字节设置为当前字节,控制所述获取单元和存储单元处理所述差分数据序列(D1,D2,D3,…,Dm)中的下一个差分数据;  否则,在当前字节的标识位存储未结束标识,并将下一个字节设置为当前字节,控制所述获取单元和存储单元再次处理当前差分数据。 
本发明还提供一种数据解压缩装置,包括: 
差分数据模块,用于获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据,m为差分数据总个数; 
原始数据模块,用于根据 N 1 = D 1 N k = D k + N k - 1 , 1 < k &le; m 和所述差分数据序列(D1,D2,D3,…,Dm),获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据; 
所述差分数据模块包括: 
读取单元,用于读取当前字节的数据位存储的数据,其中,所述当前字节包括数据位和标识位; 
第一控制单元,用于判断当前字节是否为该差分数据的第一个字节,如果是,向数据单元发送第一字节指令,否则,向数据单元发送非第一字节指令; 
数据单元,用于根据第一字节指令,将当前字节的数据位存储的数据作为临时数据,根据非第一字节指令,将当前字节的数据位左移到当前的临时数据的最高位左侧,将当前字节的数据位存储的数据与当前的临时数据合并后的数据作为临时数据; 
第二控制单元,用于判断当前字节的标识位是结束标识或未结束标识;如果是结束标识,将所述临时数据作为差分数据;如果是未结束标识,将下一个字节设置为当前字节。 
由上述技术方案可知,本发明实施例通过将原始数据序列进行后项减前项的计算获得差分数据序列,依次存储差分数据序列中的每一个差分数据,由于差分数据的值小于原始数据的值,因此,存储差分数据占用的字节数少于原始数据占用的字节数,从而节省了数据存储空间。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明实施例一的数据压缩方法的流程图; 
图2为本发明实施例二的数据解压缩方法的流程图; 
图3为本发明实施例三的数据压缩装置的结构示意图; 
图4为本发明实施例四的数据解压缩装置的结构示意图。 
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
在实际应用中,仍以数据库为电子健康档案为例,由于患者就诊具有连 续性的特点,例如,患者在初次到某医院就诊之后,通常会在几周之内多次到该医院复诊,因此,某个患者的目录中的相邻两个就诊主记录ID通常相差不大。例如,患者的主索引ID为:李明,他于2008年5月2日第一次到人民医院看病就诊的就诊主记录ID1为:100100001;他于2008年5月6日第二次到人民医院看病就诊的就诊主记录ID2为:100100002;他于2008年5月12日第三次到人民医院看病就诊的就诊主记录ID3为:100100003。因此,在实际应用中,相邻的两个就诊主记录ID的差值通常并不需要用8个字节的长整型来表示,有可能只需要1至3个字节就够了。因此,本发明实施例提出,根据电子健康档案目录的上述特点,在存储目录数据时采用数据压缩方法,以节省数据存储空间。该数据压缩方法不仅适用于存储电子健康档案的目录数据,并且也适用于存储其它各种数据库的数据,尤其对于像电子健康档案这样,具有相邻数据值相差较小的特点的数据库,采用该数据压缩方法节省数据空间的效果更优。 
图1为本发明实施例一的数据压缩方法的流程图。如图1所示,该方法包括如下过程。 
步骤101:获取原始数据序列(N1,N2,N3,…,Nm)。 
在本步骤中,N1、N2、N3、…、Nm分别为原始数据,N1<N2<N3<…<Nm,m为原始数据总个数。仍以电子健康档案的目录数据为例,N1、N2、N3、…、Nm分别为各个就诊主记录ID的原始数据。 
步骤102:根据 1<k≤m和原始数据序列(N1,N2,N3,…,Nm),获取差分数据序列(D1,D2,D3,…,Dm)。 
在本步骤中,D1、D2、D3、…、Dm分别为差分数据。仍以电子健康档案的目录数据为例,对各个就诊主记录ID的原始数据组成的序列,进行后项减前项的运算,获得相邻就诊主记录ID的原始数据的差值D1,D2,D3,…,Dm。 
步骤103:依次存储差分数据序列(D1,D2,D3,…,Dm)中的每一个差分 数据。 
仍以电子健康档案的目录数据为例,依次存储相邻就诊主记录ID的原始数据的差值D1,D2,D3,…,Dm。 
在本步骤中,可以采用多种存储方法依次存储差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据。具体地,以存储方法的一种较佳实施方式为例。在该较佳实施方式中,用于存储的每一个字节由数据位和标识位组成,其中,数据位和标识位各自的个数不受限制,较佳地,数据位为7位,标识位为1位。该较佳实施方式中,存储差分数据序列(D1,D2,D3,…,Dm)中的任意一个差分数据的方法包括如下过程:第一步,对于待存储的当前差分数据,按照从低位到高位的顺序,从当前差分数据中取出指定个数的位并存储到当前字节的数据位中,其中,当前字节包括数据位和标识位,指定个数为当前字节的数据位的个数,较佳地,该指定个数为7。第二步,判断当前差分数据是否取尽。如果是,当前差分数据已取尽,则在当前字节的标识位存储结束标识,并将下一个字节设置为当前字节,存储差分数据序列(D1,D2,D3,…,Dm)中的下一个差分数据,具体地,存储下一个差分数据的方法与存储当前差分数据的方法相同,在此不再赘述。否则,当前差分数据尚未取尽,则在当前字节的标识位存储未结束标识,并将下一个字节设置为当前字节,返回执行上述第一步,再次从当前差分数据中取出指定个数的位进行存储,循环执行上述步骤,直到当前差分数据完全取尽。在上述第二步中,可以采用结束标识为1,未结束标识0,或者,也可以采用结束标识为0,未结束标识1。以当前差分数据为11111110000000为例,首先,从低位到高位从当前差分数据中取出0000000并存储到第一个字节的7个数据位中,由于当前差分数据尚未取尽,在第一个字节的标识位存储未结束标识,此处以1表示未结束标识,则第一个字节为00000001。然后,继续从低位到高位从当前差分数据中取出1111111并存储到第二个字节的7个数据位中,由于当前差分数据已取尽,在第二个字节的标识位存储结束标识,此处以0表示结 束标识,则第二个字节为11111110。则存储该当前差分数据的两个字节为0000000111111110。 
采用实施例一记载的数据压缩方法,需要采用对应的数据解压缩方法进行解压缩操作。 
图2为本发明实施例二的数据解压缩方法的流程图。如图2所示,该方法包括如下过程。 
步骤201:获取差分数据序列(D1,D2,D3,…,Dm)。 
在本步骤中,D1、D2、D3、…、Dm分别为差分数据,m为差分数据总个数。仍以电子健康档案的目录数据为例,D1,D2,D3,…,Dm为相邻就诊主记录ID的原始数据的差值。 
在本步骤中,以获取差分数据序列(D1,D2,D3,…,Dm)的一种较佳实施方式为例。在该较佳实施方式中,用于存储的每一个字节由数据位和标识位组成,其中,数据位和标识位各自的个数不受限制,较佳地,数据位为7位,标识位为1位。该较佳实施方式中,获取差分数据序列(D1,D2,D3,…,Dm)中的任意一个差分数据的具体过程包括:第一步,读取当前字节的数据位存储的数据,其中,当前字节包括数据位和标识位。第二步,判断当前字节是否为该差分数据的第一个字节。如果当前字节是该差分数据的第一个字节,则将当前字节的数据位存储的数据作为临时数据。否则,当前字节不是该差分数据的第一个字节,则将当前字节的数据位左移到当前的临时数据的最高位左侧,将当前字节的数据位存储的数据与当前的临时数据合并后的数据作为临时数据。第三步,判断当前字节的标识位是结束标识或未结束标识。如果是结束标识,将临时数据作为差分数据。如果是未结束标识,将下一个字节设置为当前字节,返回执行第一步,再次读取一个字节的数据位存储的数据,循环执行上述步骤,直到全部读取完当前差分数据的全部字节。在上述第二步中,可以采用结束标识为1,未结束标识0,或者,也可以采用结束标识为0,未结束标识1。以存储某一个差分数据的两个字节为0000000111111110 为例。首先,读取到第一个字节00000001,读取到该字节的数据位存储的数据为0000000,由于该字节是该差分数据的第一个字节,则将该第一个字节的数据位存储的数据0000000作为临时数据。然后,由于第一个字节的标识位1为未结束标识,则继续读取第二个字节11111110,读取到该字节的数据位存储的数据为1111111,因为第二个字节不是该差分数据的第一个字节,则将第二个字节的数据位1111111左移到当前的临时数据0000000的最高位左侧,将第二个字节的数据位存储的数据与当前的临时数据合并后的数据作为临时数据,通过合并操作对临时数据进行更新,在合并操作后,此时的临时数据为11111110000000。由于第二个字节的标识位0为结束标识,则将此时的临时数据11111110000000作为获取到的差分数据。其中,将当前字节的数据位左移到当前的临时数据的最高位左侧的过程可以采用多种方法实现,具体地,一种较佳的方法是:对判断当前差分数据的字节的标识位是未结束标识的次数进行计数,获得计数值,将当前字节的数据位左移指定位数,该指定位数为当前字节的数据位的个数与上述计数值的乘积。 
步骤202:根据 
Figure BSA00000388596900101
1<k≤m和差分数据序列(D1,D2,D3,…,Dm),获取原始数据序列(N1,N2,N3,…,Nm)。 
在本步骤中,N1、N2、N3、…、Nm分别为原始数据。仍以电子健康档案的目录数据为例,根据相邻就诊主记录ID的原始数据的差值组成的序列(D1,D2,D3,…,Dm)进行计算,还原得到各个就诊主记录ID的原始数据N1,N2,N3,…,Nm。 
在本发明实施例一和实施例二中,通过将原始数据序列进行后项减前项的计算获得差分数据序列并存储,由于差分数据的值小于原始数据的值,因此,存储差分数据占用的字节数少于原始数据占用的字节数,从而节省了数据存储空间。并且,在存储差分数据时,将一个字节分为数据位和标识位,从差分数据中取出指定个数的位存储到字节的数据位中,并利用字节的标识 位标识当前差分数据是否结束,如果标识为结束,则存储下一个差分数据,如果标识为未结束,则继续采用下一个字节的数据位存储当前差分数据。从而分别根据每一个差分数据的大小采用最少个数的字节进行存储,进一步节约了数据存储空间。 
图3为本发明实施例三的数据压缩装置的结构示意图。如图3所示,该装置至少包括:原始数据模块31、差分数据模块32和存储控制模块33。 
其中,原始数据模块31用于获取原始数据序列(N1,N2,N3,…,Nm)并发送给差分数据模块32,其中,N1、N2、N3、…、Nm分别为原始数据,N1<N2<N3<…<Nm,m为原始数据总个数。 
差分数据模块32用于根据 
Figure BSA00000388596900111
1<k≤m和来自原始数据模块31的原始数据序列(N1,N2,N3,…,Nm),获取差分数据序列(D1,D2,D3,…,Dm)并发送给存储控制模块33,其中,D1、D2、D3、…、Dm分别为差分数据。 
存储控制模块33用于向存储设备依次存储来自差分数据模块32的差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据。具体地,存储控制模块33可以包括:获取单元331、存储单元332和控制单元333。其中,获取单元331按照从低位到高位的顺序,从当前差分数据中取出指定个数的位并发送给存储单元332,该指定个数为当前字节的数据位的个数。存储单元332用于向当前字节的数据位存储上述来自获取单元331的指定个数的位,其中,当前字节包括数据位和标识位。控制单元333用于判断当前差分数据是否取尽;如果是,在当前字节的标识位存储结束标识,并将下一个字节设置为当前字节,控制获取单元331和存储单元332处理差分数据序列(D1,D2,D3,…,Dm)中的下一个差分数据;否则,在当前字节的标识位存储未结束标识,并将下一个字节设置为当前字节,控制获取单元331和存储单元332再次处理当前差分数据。 
图4为本发明实施例四的数据解压缩装置的结构示意图。如图4所示,该装置至少包括:差分数据模块41和原始数据模块42。 
其中,差分数据模块41用于获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据,m为差分数据总个数。具体地,差分数据模块41包括:读取单元411、第一控制单元412、数据单元413和第二控制单元414。其中,读取单元411用于读取当前字节的数据位存储的数据并发送给第一控制单元412、数据单元413和第二控制单元414,其中,所述当前字节包括数据位和标识位。第一控制单元412用于判断当前字节是否为该差分数据的第一个字节,如果是,向数据单元413发送第一字节指令;否则,向数据单元413发送非第一字节指令。数据单元413用于根据第一字节指令将来自读取单元411的当前字节的数据位存储的数据作为临时数据,将临时数据发送给第二控制单元414;根据非第一字节指令,将来自读取单元411的当前字节的数据位左移到当前的临时数据的最高位左侧,将当前字节的数据位存储的数据与当前的临时数据合并后的数据作为临时数据,将临时数据发送给第二控制单元414。第二控制单元414用于判断当前字节的标识位是结束标识或未结束标识,如果是结束标识,将来自数据单元413的临时数据作为差分数据;如果是未结束标识,将下一个字节设置为当前字节。原始数据模块42用于根据 
Figure BSA00000388596900121
1<k≤m和差分数据序列(D1,D2,D3,…,Dm),获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据。 
在本发明实施例三和实施例四中,差分数据模块将原始数据序列进行后项减前项的计算获得差分数据序列,由于差分数据的值小于原始数据的值,因此,存储差分数据占用的字节数少于原始数据占用的字节数,从而节省了数据存储空间。并且,存储控制模块的控制单元将字节分为数据位和标识位,利用数据位进行存储当前差分数据,利用字节的标识位标识当前差分数据是 否结束,从而分别根据每一个差分数据的大小采用了最少个数的字节进行存储,进一步节约了数据存储空间。 
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。 
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。 
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。 
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。 

Claims (6)

1.一种数据压缩方法,其特征在于,包括:
获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据,m为原始数据总个数;
根据和所述原始数据序列(N1,N2,N3,…,Nm),获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据;
依次存储所述差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据;
存储所述差分数据序列(D1,D2,D3,…,Dm)中的任意一个差分数据的方法包括:
按照从低位到高位的顺序,从当前差分数据中取出指定个数的位并存储到当前字节的数据位中,其中,所述当前字节包括数据位和标识位,所述指定个数为当前字节的数据位的个数;
判断当前差分数据是否取尽;
如果是,在当前字节的标识位存储结束标识,并将下一个字节设置为当前字节,存储所述差分数据序列(D1,D2,D3,…,Dm)中的下一个差分数据;
否则,在当前字节的标识位存储未结束标识,并将下一个字节设置为当前字节,返回执行所述按照从低位到高位的顺序,从当前差分数据中取出指定个数的位并存储到当前字节的数据位中的步骤。
2.根据权利要求1所述的方法,其特征在于,
所述指定个数为7,所述结束标识为1,所述未结束标识0;
或,
所述指定个数为7,所述结束标识为0,所述未结束标识1。
3.一种数据解压缩方法,其特征在于,包括:
获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为 差分数据,m为差分数据总个数;
根据和所述差分数据序列(D1,D2,D3,…,Dm),获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据;
获取差分数据序列(D1,D2,D3,…,Dm)中的任意一个差分数据包括:
读取当前字节的数据位存储的数据,其中,所述当前字节包括数据位和标识位;
判断当前字节是否为该差分数据的第一个字节,如果是,将当前字节的数据位存储的数据作为临时数据,否则,将当前字节的数据位左移到当前的临时数据的最高位左侧,将当前字节的数据位存储的数据与当前的临时数据合并后的数据作为临时数据;
判断当前字节的标识位是结束标识或未结束标识;
如果是结束标识,将所述临时数据作为差分数据;
如果是未结束标识,将下一个字节设置为当前字节,返回执行所述读取当前字节的数据位存储的数据的步骤。
4.根据权利要求3所述的方法,其特征在于,所述将当前字节的数据位左移到当前的临时数据的最高位左侧包括:
对判断当前差分数据的字节的标识位是未结束标识的次数进行计数,获得计数值;
将当前字节的数据位左移指定位数,所述指定位数为当前字节的数据位的个数与所述计数值的乘积。
5.一种数据压缩装置,其特征在于,包括:
原始数据模块,用于获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据,m为原始数据总个数; 
差分数据模块,用于根据和所述原始数据序列(N1,N2,N3,…,Nm),获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据;
存储控制模块,用于依次存储所述差分数据序列(D1,D2,D3,…,Dm)中的每一个差分数据;
所述存储控制模块包括:
获取单元,按照从低位到高位的顺序,从当前差分数据中取出指定个数的位,所述指定个数为当前字节的数据位的个数;
存储单元,用于向当前字节的数据位存储所述指定个数的位,其中,所述当前字节包括数据位和标识位;
控制单元,用于判断当前差分数据是否取尽;如果是,在当前字节的标识位存储结束标识,并将下一个字节设置为当前字节,控制所述获取单元和存储单元处理所述差分数据序列(D1,D2,D3,…,Dm)中的下一个差分数据;否则,在当前字节的标识位存储未结束标识,并将下一个字节设置为当前字节,控制所述获取单元和存储单元再次处理当前差分数据。
6.一种数据解压缩装置,其特征在于,包括:
差分数据模块,用于获取差分数据序列(D1,D2,D3,…,Dm),其中,D1、D2、D3、…、Dm分别为差分数据,m为差分数据总个数;
原始数据模块,用于根据
Figure FSB00000840118000032
和所述差分数据序列(D1,D2,D3,…,Dm),获取原始数据序列(N1,N2,N3,…,Nm),其中,N1、N2、N3、…、Nm分别为原始数据;
所述差分数据模块包括:
读取单元,用于读取当前字节的数据位存储的数据,其中,所述当前字节包括数据位和标识位。
CN 201010592186 2010-12-08 2010-12-08 数据压缩方法和装置以及数据解压缩方法和装置 Active CN102103630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010592186 CN102103630B (zh) 2010-12-08 2010-12-08 数据压缩方法和装置以及数据解压缩方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010592186 CN102103630B (zh) 2010-12-08 2010-12-08 数据压缩方法和装置以及数据解压缩方法和装置

Publications (2)

Publication Number Publication Date
CN102103630A CN102103630A (zh) 2011-06-22
CN102103630B true CN102103630B (zh) 2013-06-05

Family

ID=44156404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010592186 Active CN102103630B (zh) 2010-12-08 2010-12-08 数据压缩方法和装置以及数据解压缩方法和装置

Country Status (1)

Country Link
CN (1) CN102103630B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281616B (zh) * 2013-07-10 2017-10-13 北京旋极信息技术股份有限公司 数据处理方法
CN103457610A (zh) * 2013-08-30 2013-12-18 百度在线网络技术(北京)有限公司 一种空间数据的编码方法及系统
CN104467870A (zh) * 2014-12-17 2015-03-25 北京全路通信信号研究设计院有限公司 一种结构化数据的传输方法、装置及高速铁路系统
CN105227634A (zh) * 2015-08-31 2016-01-06 徐州工程学院 一种基于居民健康档案的二进制数据压缩及加密方法
CN107783990B (zh) * 2016-08-26 2021-11-19 华为技术有限公司 一种数据压缩方法及终端
CN107229818A (zh) * 2017-04-24 2017-10-03 太仓鸿策拓达科技咨询有限公司 一种用于挂号申请的卫生信息综合管理方法
CN107391463A (zh) * 2017-07-20 2017-11-24 上海金大师网络科技有限公司 一种行情数据压缩方法及系统
CN109597801A (zh) * 2018-11-14 2019-04-09 金色熊猫有限公司 医疗数据标准化管理方法及系统、电子设备、存储介质
CN109597588B (zh) * 2018-12-11 2020-09-04 浙江中智达科技有限公司 一种数据存储方法、数据还原方法及装置
CN109818940B (zh) * 2019-01-03 2021-06-25 浙江好络维医疗技术有限公司 一种适用于在嵌入式硬件中实现实时传输的心电波形快速压缩算法
CN111510153B (zh) * 2019-01-31 2023-05-09 阿里巴巴集团控股有限公司 数列的压缩、解压缩方法和装置以及电子设备
CN109740582B (zh) * 2019-03-04 2020-09-11 广东石油化工学院 一种用于能量分解的功率信号噪声滤除方法及系统
CN110061813B (zh) * 2019-04-09 2022-10-04 惠州市仲恺Tcl智融科技小额贷款股份有限公司 一种数据编码方法和解码方法、及相关装置
CN111159121A (zh) * 2019-12-23 2020-05-15 深圳星康医疗科技有限公司 穿戴式心电数据压缩存储方法、系统及存储系统
CN111314392B (zh) * 2020-05-15 2020-09-15 诺领科技(南京)有限公司 卫星导航定位辅助星历数据压缩及传输方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1222040A (zh) * 1997-12-29 1999-07-07 三星电子株式会社 图像信号压缩编码方法及装置
CN1949214A (zh) * 2006-09-26 2007-04-18 北京北大方正电子有限公司 一种信息归并方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100259631A1 (en) * 2007-10-26 2010-10-14 Fujifilm Corporation Data compression apparatus, data compression program and image-taking apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1222040A (zh) * 1997-12-29 1999-07-07 三星电子株式会社 图像信号压缩编码方法及装置
CN1949214A (zh) * 2006-09-26 2007-04-18 北京北大方正电子有限公司 一种信息归并方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
叶翰霖.首标-差分数据压缩技术.《交通与计算机》.1991,(第3期),第58-61页. *

Also Published As

Publication number Publication date
CN102103630A (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
CN102103630B (zh) 数据压缩方法和装置以及数据解压缩方法和装置
CN109164980B (zh) 一种时序数据的聚合优化处理方法
US20110219020A1 (en) Columnar storage of a database index
CN109785918B (zh) 一种应用于临床科研的数据采集系统及方法
Morrill et al. Locational efficiency of Chicago hospitals: an experimental model
CN104899117B (zh) 面向非易失性内存的内存数据库并行日志方法
CN103914404B (zh) 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法
CN104281717B (zh) 一种建立海量id映射关系的方法
CN112882663B (zh) 一种随机写的方法、电子设备及存储介质
WO2024077860A1 (zh) 元数据的管理方法、装置和计算机设备和存储介质
CN109739843A (zh) 区块链数据读写方法、系统、设备及存储介质
CN106681848A (zh) 一种纠删码raid的数据一致性保障方法及系统
CN110413454A (zh) 基于存储阵列的数据重建方法、装置及存储介质
CN108121564A (zh) 一种json数据快速同步及控制的方法及系统装置
EP3940572A1 (en) Data generalization device, data generalization method, and program
Berry et al. Permutation methods. part II
Mathew et al. Distributed privacy preserving decision support system for predicting hospitalization risk in hospitals with insufficient data
CN109308200A (zh) 一种内存数据加载方法、装置及其设备
CN108762822A (zh) 一种数据加载方法及装置
CN102541463B (zh) 快闪存储装置及其数据存取方法
CN114121199A (zh) 一种引导式的肿瘤相关主要诊断选择方法和系统
CN107301044B (zh) 用于代谢病电子病历表单的多页控件
Sun et al. Optimized distributed systems achieve significant performance improvement on sorted merging of massive VCF files
CN109599155A (zh) 一种应用于医疗数据中心的智能服务系统及方法
CN105426130A (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
C14 Grant of patent or utility model
GR01 Patent grant