实时心电数据无损压缩、解压缩的方法、装置和系统与流程

文档序号:14039634阅读:183来源:国知局
实时心电数据无损压缩、解压缩的方法、装置和系统与流程

本申请涉及实时少量数据压缩传输技术领域,特别涉及少量实时心电数据的无损压缩、解压缩的方法、装置和系统。



背景技术:

可穿戴设备采集的实时心电数据,可通过移动终端查看实时心率值或者实时心电波形图。例如,配置有ecg电极的可穿戴设备与智能手机通过蓝牙建立无线连接,可穿戴设备采集实时ecg数据传输至智能手机,智能手机实时显示ecg波形图。

传统的压缩编码的数据处理对象一般为较大的文件数据,对压缩编码的数据传输的实时性要求不高。

而可穿戴设备采集传输实时心电数据时,为了降低手机端实时显示的延迟,需要降低每次传输数据量的大小(一般每次传输一百到几百字节),并且针对每次传输的数据量作最高效率的传输,即,需要对小量实时数据进行压缩编码。由于生理健康数据的重要性,因此要求所采用的数据压缩方法必须是无损压缩方法。



技术实现要素:

本申请公开一种实时心电数据无损压缩、解压缩的方法、装置和系统,通过对小量心电数据进行压缩编码和传输,提高采集端实时数据传输的效率,降低通过其它终端显示实时数据的显示延迟。

为实现上述目的,本申请公开技术方案如下:

一方面,本公开提出了一种实时心电数据无损压缩方法,包括:获取实时心电数据采样值;对所述实时心电数据采样值进行预处理以得到待压缩编码数据,所述待压缩编码数据的字节数据重复率高于所述采样值的字节数据重复率;对所述待压缩编码数据进行压缩编码。

优选地,所述预处理包括:从所述实时心电数据采样值的若干数据点中选取一个点作为固定点;对所述固定点以外的其它点的采样值相邻作差,得到其它各点的相邻采样值的差值。

优选地,所述压缩编码包括:构造第一编码段,所述第一编码段包括用于标识所述的相邻采样值的差值的高字节数据是否为0的若干位数据;构造第二编码段,所述第二编码段包括用于标识所述的相邻采样值的差值的高字节数据是否为0xff的若干位数据;构造第三编码段,所述第三编码段包括所述其它各点的相邻采样值的差值的高字节数据中不为0且不为0xff的数据;构造第四编码段,所述第四编码段的值表示所述第三编码段的字节数据的个数;构造第五编码段,所述第五编码段包括所述固定点的采样值以及所述其它各点的相邻采样值的差值的除高字节以外的字节数据。

优选地,所述第一编码段与所述第二编码段的累计长度包括ceil((2n-2)/8)个字节,其中,n表示所述实时心电数据采样值的数据点的个数。

优选地,所述第一编码段、所述第二编码段与所述第四编码段的累计长度包括ceil((floor(log2(n-1))+2n-1)/8)个字节,其中,n表示所述实时心电数据采样值的数据点的个数。

另一方面,本公开提出了一种实时心电数据无损压缩装置,包括:实时数据获取单元,被配置为获取实时心电数据采样值;作差预编码单元,被配置为从所述实时心电数据采样值的若干数据点中选取一个点作为固定点,对所述固定点以外的其它点的采样值相邻作差,得到所述其它各点的相邻采样值的差值;以及数据编码单元,被配置为对所述固定点的采样值以及所述其它各点的相邻采样值的差值进行压缩编码。

优选的,所述数据编码单元包括:第一编码模块,用于标识所述的相邻采样值的差值的高字节数据是否为0;第二编码模块,用于标识所述的相邻采样值的差值的高字节数据是否为0xff;第三编码模块,用于记录所述其它各点的相邻采样值的差值的高字节数据中不为0且不为0xff的数据;以及第四编码模块,用于表示所述第三编码模块所记录的字节数据的个数;第五编码模块,用于记录所述固定点的采样值以及所述其它各点的相邻采样值的差值的除高字节以外的字节数据。

再一方面,本公开提出了一种实时心电数据解压缩方法,适用于解压缩上述压缩方法得到的压缩数据段,包括:获取待解码数据,所述待解码数据包括至少一个完整的所述压缩数据段;对所述待解码数据进行解码,记录所述待解码数据中的非完整的压缩数据段;获取包括所述非完整的压缩数据段的下一待解码数据;对所述下一待解码数据进行解码。

再一方面,本公开提出了一种实施心电数据压缩和解压缩的系统,包括:上述数据无损压缩装置和配置有实时显示单元的数据解压缩装置,所述压缩装置与所述解压缩装置通过有线或无线通信方式连接,所述解压缩装置用于解压缩所述压缩装置发送的压缩数据段,所述实时显示单元用于显示解压得到的实时心电数据的波形图。

通过将其中一个点取实时采样值,将其它点取相邻实时采样值的差值,使得解压缩装置能够基于一个原始采样值计算获得其它各点的原始采样值。另外,通过将采样值相邻作差,将相邻差值数据作为待压缩数据,能够提高待压缩数据的字节数据重复率(一般地,每个采样点的数据由两个或更多个字节构成),特别是高字节数据的重复率,对作差后的数据进行无损压缩编码,能够获得更优的数据压缩率。

进一步地,仅针对差值数据中重复率高的高字节数据进行压缩编码,保持其它字节数据固定不变,编码和解码更加简单高效;

进一步地,将第一编码段、第二编码段按位连续相邻编码,可以提高位利用率,能够获得更优的数据压缩率。

附图说明

图1a示出了一示例性实施例的实时心电数据无损压缩和解压缩的系统的示意图;

图1b示出了一示例性实施例的实时心电数据无损压缩装置的模块示意图;

图2a示出了一示例性实施例的待压缩编码数据的数据结构示意图;

图2b示出了一示例性实施例的压缩编码段的组成示意图;

图2c示出了一示例性实施例的较优编码长度的示意图;

图2d示出了一示例性实施例的较优编码长度的示意图;

图2e示出了一示例性实施例的较优编码长度的示意图;

图3a示出了一示例性实施例的实时心电数据无损压缩方法的流程示意图;

图3b示出了一示例性实施例的采样数据预处理的方法的流程示意图;

图3c示出了一示例性实施例的压缩编码方法的流程示意图;

图4示出了两种示例性的压缩数据段的排列结构的示意图;

图5a示出了一示例性实施例的数据解压缩的流程示意图;

图5b示出了一示例性的数据解码操作中的数据压缩段、待解码数据以及非完整的数据压缩段之间的关系的示意图;

图6示出了一示例性的数据压缩效果对比示意图。

具体实施方式

提供以下详细的描述获得对在此描述的方法、装置和/或系统的全面理解。然而,在此描述的方法、装置和/或系统的各种变化、修改和等同物对于本领域的普通技术人员将是清楚的。除了必须以特定顺序发生的操作之外,在此描述的操作的顺序仅为示例并且不限于在此阐述的操作的顺序,而是可如对本领域的普通技术人员将是清楚的改变。此外,为了更加清楚和简洁,可省略对本领域的普通技术人员公知的功能、模块或结构的描述。

在此描述的特征可以以不同的形式被实现并且不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,使得本公开将是充分和完整的,并且将本公开的整个范围传达给本领域的普通技术人员。

在此可使用诸如第一、第二的术语以描述组件/操作。这些术语中的每个不是被用于定义相应的组件/操作的本质、次序或顺序,而是仅被用于将相应的组件/操作与其他组件/操作的区分。此外,在此使用的术语仅是描述具体示例的目的,而不意在限制本公开。除非上下文另有清楚地指示,否则如在此使用的单数形式也意图包括复数形式。如在此使用的术语“包括”、“包含”以及“具有”,说明存在叙述的特征、数量、操作、元件、组件和/或它们的组合,但不排除存在或添加一个或多个其它特征、数量、操作、元件、组件和/或它们的组合。

本文中对于本公开的各种实施例使用的术语只是用于描述特定实施例,而并不打算限制本申请的实施例的范围。单数形式打算包括复数形式,除非上下文明确地另有指示。

图1a示出了根据本公开的示例性实施例的实时心电数据无损压缩和解压缩的系统的示意图。参考图1a,所述系统包括数据压缩装置110和数据解压缩装置120,数据压缩装置110可通过数据发送单元114发送压缩数据段至数据解压缩装置120,数据解压缩装置120通过数据接收单元123接收所述压缩数据段。数据压缩装置110和数据解压缩装置120可通过无线(例如蓝牙、nfc、rf、wifi、gprs等)或有线(例如串行总线、网线等)通信连接构成一应用系统。

根据本公开的一示例性实施例,数据压缩装置110可适用于配置有ecg电极的可穿戴设备,数据解压缩装置120可适用于配置有实时显示单元122的移动终端设备(例如智能手机或平板电脑),可穿戴设备实时采集获取、压缩和通过蓝牙通信方式传输压缩的实时心电数据至智能手机端,智能手机接收压缩的实时心电数据、解压缩后显示实时心电波形图和/或者实时心率值。

参考图1a,数据压缩装置110包括实时数据获取单元111、作差预编码单元112以及数据编码单元113。数据解压缩装置120配置有数据解码单元121以及实时显示单元122。

其中,实时数据获取单元111被配置为获取实时心电数据采样值;作差预编码单元112被配置为从所述实时心电数据采样值的若干数据点中选取一个点作为固定点,对所述固定点以外的其它点的采样值相邻作差,得到其它各点的相邻采样值的差值;数据编码单元113被配置为对所述固定点的采样值以及所述其它各点的相邻采样值的差值进行压缩编码。

根据本公开的示例性的实施例,每个实时心电采样数据由两个字节组成,例如,在一组示例性的由52个数据点组成的采样率为512(sample/秒)的实时心电采样数据中,包括的采样值依次为:

0x042d,0x041f,0x03e3,0x03ce,0x03a7,0x0289,0x01aa,0x018d,0x0214,0x0353,0x0517,0x05a5,0x0580,0x04de,0x03a1,0x021b,0x013c,0x00d0,0x00b1,0x0130,0x022d,0x0350,0x040d,0x0438,0x040d,0x0347,0x01c6,0x00eb,0x0126,0x0245,0x0454,0x05ce,0x0647,0x0558,0x03b7,0x01dc,0x0077,0x0014,0x0025,0x00cf,0x01f8,0x037c,0x051b,0x05e1,0x0564,0x0458,0x0328,0x01eb,0x014a,0x0156,0x01d0,0x02e8。

将所述52个数据点中的第一个点作为固定点,将其它点的相邻采样值作差,得到的待压缩编码数据为:

0x042d,0xfff2,0xffc4,0xffeb,0xffd9,0xfee2,0xff21,0xffe3,0x0087,0x013f,0x01c4,0x008e,0xffdb,0xff5e,0xfec3,0xfe7a,0xff21,0xff94,0xffe1,0x007f,0x00fd,0x0123,0x00bd,0x002b,0xffd5,0xff3a,0xfe7f,0xff25,0x003b,0x011f,0x020f,0x017a,0x0079,0xff11,0xfe5f,0xfe25,0xfe9b,0xff9d,0x0011,0x00aa,0x0129,0x0184,0x019f,0x00c6,0xff83,0xfef4,0xfed0,0xfec3,0xff5f,0x000c,0x007a,0x0118。

由上可知,由于实时心电数据的相邻采样值数据的低差异性,相邻采样值作差得到的差值数据的高字节数据主要为0和0xff。字节数据的重复率越高,可以达到的数据压缩效果越佳。因此,通过对原始采样值相邻作差得到待压缩编码数据,可以获得更优的数据压缩率。

需要说明的是,本公开以两字节的实时心电数据作为示例性说明,实时心电数据采样值的长度也可以是两个以上字节,例如四个字节,四字节的采样值数据相邻作差后所得的高字节数据也可能具有较高的重复率。

图2a示出了包括n个采样点的待压缩编码数据的示意图,每个采样点包括两个字节的数据。其中设置了第一个点为固定点,第一个点取采样值s(1),其它点的采样值相邻作差,其它点的值为s(i)-s(i-1),1<i≤n。

图1b示出了根据本公开的一示例性实时例的实时心电数据无损压缩装置的模块组成的示意图,包括实时数据获取单元111、作差预编码单元112以及数据编码单元113。以图2a所示的待压缩编码数据作示例性说明,其中数据编码单元113具体包括:

第一编码模块,用于标识各[s(i)-s(i-1)]的byteh数据、即xbyteh(i)是否为0;

第二编码模块,用于标识各[s(i)-s(i-1)]的byteh数据、即xbyteh(i)否为0xff;

第三编码模块,用于记录各[s(i)-s(i-1)]的byteh数据、即xbyteh(i)中不为0且不为0xff的数据;

第四编码模块,用于表示第三编码模块所记录的byteh的个数;以及

第五编码模块,用于记录s(1)的byteh数据、s(1)的bytel数据以及xbytel(i)数据;

其中,1<i≤n。

图3a示出了根据本公开的一示例性实施例的实时心电数据无损压缩方法的流程示意图,包括步骤:获取实时心电数据采样值;对所获取的实时心电数据采样值进行预处理以得到待压缩编码数据,所述待压缩编码数据的字节数据重复率高于所述采样值的字节数据重复率;对所述待压缩编码数据进行压缩编码。

进一步地,图3b示出了一示例性的所述预处理方法的流程示意图,包括步骤:从所述实时心电数据采样值的若干数据点中选取一个点作为固定点;对所述固定点以外的其它点的采样值相邻作差,得到其它各点的相邻采样值的差值。

进一步地,图3c示出了一示例性的压缩编码方法的流程示意图。

参考图3c,以图2a所示的待压缩编码数据作示例性说明,所述压缩编码方法包括步骤:

构造第一编码段,第一编码段包括用于标识xbyteh(i)是否为0的若干位数据,至少包括(n-1)位标识数据,例如标识数据为1表示是,标识数据为0表是否;

构造第二编码段,第二编码段包括用于标识xbyteh(i)是否为0xff的若干位数据,至少包括(n-1)位标识数据,例如标识数据为1表示是,标识数据为0表是否;

构造第三编码段,第三编码段包括xbyteh(i)中不为0且不为0xff的数据,最大可能包括(n-1)字节数据;

构造第四编码段,第四编码段的值表示第三编码段的xbyteh的个数,可能的最大值为n-1,至少包括(floor(log2(n-1))+1)位数据;

构造第五编码段,第五编码段包括s(1)的高低字节数据以及xbytel(i),共包括(n+1)字节数据;

其中,1<i≤n,floor函数为向下取整函数,例如floor(t)表示小于或等于t的最大整数。

根据本公开的示例性实施例,以图2a所示的预处理后的数据为待压缩编码数据,按照图3c所示方法流程编码得到的一示例性压缩数据段的结构示意图如图2b所示。其中floor函数为向下取整函数。

可选地,参考图2c,将按位编码的第一、第二以及第四编码段分别编码,可设置第一编码段和第二编码段的长度分别为ceil((n-1)/8)个字节,可设置第四编码段的长度为ceil((floor(log2(n-1))+1)/8)个字节;其中ceil函数为向上取整函数,例如ceil(t)表示大于或等于t的最小整数。其它编码段可插入在第一编码段、第二编码段和第四编码段之间。例如n=52时,可设置第一编码段和第二编码段的长度分别为7字节,第四编码段的长度为1字节。第一编码段、第二编码段以及第四编码段的长度累计为15字节。

可选地,参考图2d,将按位编码的第一编码段和第二编码段连续相邻编码,可设置第一编码段与第二编码段的累计长度为ceil((2n-2)/8)个字节。

可选地,参考图2e,将按位编码的第一、第二和第四编码段连续相邻编码,可设置第一编码段、第二编码段与第四编码段的累计长度为ceil((floor(log2(n-1))+2n-1)/8)个字节。例如n=52时,可设置第一、第二和第四编码段的累计长度为14字节;例如n=54时,也可以设置第一、第二和第四编码段的累计长度为14字节。

以图2a所示待压缩数据作为示例性说明,假设待压缩编码数据的第2~n个点的高字节数据全为0和/或0xff,下表示出了如图2c、图2d和图2e三种方法的得到的最佳无损压缩比例,压缩比例的值越低表示压缩效果越佳。

由以上数据结果可知,优选地适合于将第一编码段与第二编码段按位连续相邻编码,或者将第一、第二与第四编码段按位连续相邻编码,且选择合适量n的小量原始数据,提高位利用率,获得较优的数据无损压缩效果。

图4示出了两种将第一编码段和第二编码段按位连续相邻编码得到的压缩数据段的结构示例示意图。具体实施时,可选择不限于其中的任意一种的结构作为固定的编码格式。

本公开还提出了一种适用于解压缩上述压缩数据段的基于数据流式的解压缩方法,该解压缩方法的流程示意图如图5a所示,基于该解压缩方法的压缩数据段的两端无需设置包头或包尾标识,能够使压缩传输端传输最少的与实时采集数据不相关的数据,提高应用数据的传输效率。

参考图5a,该解压缩方法包括步骤:

获取待解码数据,其中所述待解码数据中至少包括一个完整的前述压缩数据段才能被成功解码;

对所述待解码数据进行对应于前述如图3a-图3c所示编码过程的数据解码,记录所述待解码数据中的非完整的压缩数据段;

获取包括所述非完整的压缩数据段的下一待解码数据;

对所述下一待解码数据进行对应于前述如图3a-图3c所示编码过程的数据解码。

其中,所述待解码数据、所述非完整的压缩数据段以及所述压缩数据段的关系如图5b所示。所述解压缩方法可应用于前述的数据解压缩装置120(例如智能手机),所述解压缩装置解码得到如图2a所示的差值数据,再基于固定点的采样值计算得到其它各点的采样值,基于全部采样值通过实时显示单元122输出实时心电波形图。

应用中,每个压缩数据段所包含的采样点数n设置好后固定不变,压缩数据段中各编码段的相对位置设置好后也固定不变。

具体地,以图4所示的数据压缩段结构示例一以及图2c所示的编码方式作为示例性说明,假设每个压缩数据段包括52个采样点(n=52),可知第一编码段的长度为7字节,第二编码段的长度为7字节,第五编码段的长度为53字节,第四编码段的长度为1字节,第三编码段的长度为第四编码段的值(记为l),压缩数据段的长度为(68+l)。一并参考图5a及图5b,解压缩装置中的数据解码单元接收到待解码数据(假设包括m个字节)时,判断m是否大于或等于完整压缩数据段的长度(68+l),如果是,则取68+l个字节进行解码,并记录冗余的(m-68-l)个字节。数据解码单元获取下一组待解码数据时,将冗余的(m-68-l)个数据包含其中,即下一压缩数据段的起始位置为第(69+l)个数据。对应于图2a、图2c以及图3c所示的编码方法,以图4的压缩数据段结构示例一为例,针对每个压缩数据段的解码步骤包括:

从第1字节数据(第四编码段的起始位置)中获取表示xbyteh[i]不为0且不为0xff的数据的个数l,从第69字节数据开始(第三编码段的起始位置)获取l个字节数据;

从第55字节数据开始(第一编码段的起始位置)获取7个字节数据w1[7],所述7个字节数据中的51位标识了xbyteh[i]为0的采样点,其中2≤i≤52;

从第62字节数据开始(第二编码段的起始位置)获取7个字节数据w2[7],所述7个字节数据中的51位标识了xbyteh[i]为0xff的采样点,其中2≤i≤52;

根据l个有顺序的不为0且不为0xff的xbyteh[i]数据、w1[7]所标识的xbyteh[i]为0的采样点、w2[7]所标识的xbyteh[i]为0xff的采样点,得到xbyteh[i]的值,其中2≤i≤52;

从第2字节数据开始(第五编码段的起始位置)获取两个字节数据,该两个字节数据表示第一个采样点的值s(1);从第4字节开始获取51个字节数据,该51个字节数据表示xbytel[i],其中2≤i≤52;

根据s(1)、xbyteh[i]以及xbytel[i],参考图2a,计算得到s[i],其中2≤i≤52。

基于本公开的压缩编码方法的数据解码过程无需复杂计算,简单高效。

图6示出了分别采用lz77压缩编码方法与采用本公开的压缩编码方法(xjk方法)所得的压缩率和时间效率对比的示意图。针对同一段98秒实时心电采样数据,待压缩编码数据的结构如图2a所示,采用lz77方法的压缩率为96.47%,压缩耗时为1938毫秒,采用本公开方法的压缩率为66.08%,压缩耗时为125毫秒。本公开方法的数据压缩比例和压缩速率明显优于lz77方法。

本文使用的术语“模块”可以指例如包括硬件、软件和固件的一个或多个组合的单元。术语“模块”可与诸如单元、逻辑、逻辑块、组件或电路之类的术语互换。单元可以是集成的组成元素或者其一部分的最小单位。单元可以是用于执行一个或多个功能或者其一部分的最小单位。可以机械地或电子地实现模块。例如,根据本发明的实施例,单元可包括用于执行操作/步骤的专用集成电路(asic)芯片、现场可编程门阵列(fpga)和可编程逻辑器件中的至少一者。

根据本公开的实施例,设备(例如,模块或功能)或者方法(例如,操作或步骤)中的至少一些可由以程序模块形式存储在计算机可读存储介质中的命令来实现。当由至少一个处理器执行指令时,该至少一个处理器可执行与该指令相对应的功能。计算机可读存储介质可以例如是存储单元的存储器。程序模块中的至少一些可由处理器来实现。程序模块中的至少一些可包括例如用于执行一个或多个功能的模块、程序、例程、一组指令或者进程。

计算机可读记录介质可包括:磁介质,例如硬盘、软盘和磁带;光介质,例如致密盘rom和dvd;磁光介质,例如软光盘;以及被特别配置为存储并执行程序指令的硬件设备,例如rom、ram、闪存,等。此外,程序指令可包括可由计算机利用解释器来执行的高级语言代码,以及编译器作出的机器代码。上述硬件设备可被配置为作为一个或多个软件模块/单元来操作以便执行本公开的方法、操作或步骤,反之亦然。

按照本公开的各种实施例的程序模块可包括上述组件中的至少一个或多个,省去其中一些,或者还包括其它额外组件。按照本公开的各种实施例的由模块、程序模块或其它组件执行的操作可顺序地、同时地、重复地、或启发性地执行。此外,操作中的一些可按不同次序执行,或者被省去,或者包括其它额外操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1