CN117278057B - 自适应数据压缩系统、压缩方法、电生理信号压缩方法 - Google Patents
自适应数据压缩系统、压缩方法、电生理信号压缩方法 Download PDFInfo
- Publication number
- CN117278057B CN117278057B CN202311563997.7A CN202311563997A CN117278057B CN 117278057 B CN117278057 B CN 117278057B CN 202311563997 A CN202311563997 A CN 202311563997A CN 117278057 B CN117278057 B CN 117278057B
- Authority
- CN
- China
- Prior art keywords
- dictionary
- data
- entropy coding
- coding
- primary
- 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
Links
- 238000007906 compression Methods 0.000 title claims abstract description 126
- 230000006835 compression Effects 0.000 title claims abstract description 125
- 238000013144 data compression Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000013507 mapping Methods 0.000 claims abstract description 64
- 230000003044 adaptive effect Effects 0.000 claims abstract description 32
- 239000012634 fragment Substances 0.000 claims abstract description 24
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000000694 effects Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 239000000969 carrier Substances 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 6
- 230000000284 resting effect Effects 0.000 claims description 4
- 230000005236 sound signal Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 230000000052 comparative effect Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 3
- 230000003595 spectral effect Effects 0.000 description 3
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000002567 electromyography Methods 0.000 description 1
- 238000002570 electrooculography Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003183 myoelectrical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种自适应数据压缩系统、压缩方法、电生理信号压缩方法。自适应数据压缩系统包括:初级压缩单元,被配置为对数据片段进行初级压缩得到初级压缩编码值以及熵编码字典;熵编码映射单元,被配置为根据熵编码字典对初级压缩编码值进行熵编码映射,得到对应的熵编码值;字典获取单元,被配置为在满足字典获取条件时基于当前数据片段的初级压缩编码值获取对应的新熵编码字典;根据熵编码映射单元和字典获取单元被配置的载体情况,自适应数据压缩系统被配置为不同的熵编码字典更新方式,以将新熵编码字典更新为下一数据片段进行熵编码映射时的熵编码字典。本发明能够有效提升压缩性能和压缩效率。
Description
技术领域
本发明涉及信号处理技术领域,具体涉及一种自适应数据压缩系统、压缩方法、电生理信号压缩方法。
背景技术
脑电、肌电等电生理信号的有效值动态范围较小,需要更大位宽的ADC(Analog-to-Digital Converter,模数转换器)完成高保真的模数转换。ADC位宽越大,对数据传输与存储的要求越高,势必增加硬件成本。因此,对此类数字信号进行压缩,对于产品的降本增效具有实际意义。
现有针对电生理数据的压缩方法都会先做残差计算,随后针对残差值进行固定编码处理。然而,不同类型生理数据、同类型生理数据在不同场景下的残差值分布不一,固定编码的方式并非最优解。此外,基于不同的运行介质(下位机或上位机),不同残差值编码算法的运行效率各不相同。因此,需要开发一种能够兼顾压缩性能和压缩效率的数据压缩方法和系统。
发明内容
为解决上述技术问题,本发明提供一种自适应数据压缩系统、压缩方法、电生理信号压缩方法,能够兼顾压缩性能和压缩效率。
本发明解决其技术问题所采用的技术方案是:一种自适应数据压缩系统,包括:
初级压缩单元,被配置为对数据片段进行初级压缩得到初级压缩编码值以及熵编码字典;
熵编码映射单元,被配置为根据所述熵编码字典对初级压缩编码值进行熵编码映射,得到对应的熵编码值;
字典获取单元,被配置为在满足字典获取条件时基于当前数据片段的初级压缩编码值获取对应的新熵编码字典;
根据所述熵编码映射单元和字典获取单元被配置的载体情况,所述自适应数据压缩系统被配置为不同的熵编码字典更新方式,以将所述新熵编码字典更新为下一数据片段进行熵编码映射时的熵编码字典。
进一步的,所述字典获取条件包括:定长获取、不定长获取或联合获取中的任一种;
所述定长获取为以设定的固定时间进行获取;
所述不定长获取为当后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值时进行获取;
所述联合获取为在定长获取内嵌套不定长获取,即以所述固定时间进行获取的同时,当后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值时也进行获取。
进一步的,所述定长获取适于任务态活动数据;所述不定长获取适于静息态数据;所述联合获取适于静息态数据与任务态活动数据交叉存在的情形。
进一步的,当所述熵编码映射单元与字典获取单元被配置于同一载体上时,所述熵编码字典更新方式包括:
第一存储单元被配置于第一载体上;
通过第一存储单元保存每个数据片段的熵编码字典及其映射得到的熵编码值;
当满足字典获取条件时,所述字典获取单元将新熵编码字典增加至第一存储单元,作为下一数据片段进行熵编码映射时的熵编码字典。
进一步的,当所述熵编码映射单元与字典获取单元被配置于同一载体上时,所述熵编码字典更新方式还包括:
将获得的所述新熵编码字典与历史熵编码字典进行比较,若存在与新熵编码字典相同的历史熵编码字典,则新熵编码字典不再进行保存,只标记该历史熵编码字典的编号地址,该新熵编码字典基于所述编号地址调用熵编码字典。
进一步的,所述第一载体被配置为上位机或下位机。
进一步的,当所述熵编码映射单元与字典获取单元被配置于不同载体上时,所述熵编码字典更新方式包括:
所述熵编码映射单元被配置于第二载体上;
所述字典获取单元、熵解码映射单元、字典更新单元均被配置于第三载体上;
数据片段的熵编码值由所述第二载体被传输至第三载体并通过所述熵解码映射单元执行熵解码映射,得到数据片段的熵解码值;
当满足字典获取条件时,所述字典获取单元基于当前数据片段的初级压缩编码值获取新熵编码字典;
当满足字典更新条件时,所述字典更新单元将新熵编码字典发送至第二载体,以覆盖原有的熵编码字典,作为下一数据片段进行熵编码映射时的熵编码字典。
进一步的,所述第二载体配置有第二存储单元,用于存储单个熵编码字典;所述第三载体配置有第三存储单元,用于存储每个数据片段的熵解码值。
进一步的,所述字典更新条件为前后两次的熵编码字典的一致性。
进一步的,所述第二载体被配置为下位机,所述第三载体被配置为上位机。
进一步的,所述初级压缩单元包括:
信号估计模块,用于检测数据片段的分类特征;
初级编码模块,根据分类特征选择初级压缩编码方式获取数据片段的初级压缩编码值;其中
所述分类特征包括:数据片段的信号类型、频率特性、残差值特性中的任一种。
进一步的,所述信号估计模块包括:信号标识模块,用于标记数据片段的信号类型;
所述初级压缩编码方式包括:
当数据片段被标记为心电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为脑电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为眼电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为肌电信号时,初级编码模块选择7bit变长字节编码;
当数据片段被标记为音频信号时,初级编码模块选择7bit变长字节编码;
当数据片段被标记为视频信号时,初级编码模块选择8bit变长字节编码。
进一步的,所述信号估计模块包括:频率检测模块,用于检测数据片段的频率特性;
所述初级压缩编码方式包括:
当数据片段的频率特性大于或等于第二预设值,初级编码模块选择8bit变长字节编码;当数据片段的频率特性小于第二预设值,初级编码模块选择7bit变长字节编码。
进一步的,所述信号估计模块包括:残差计算模块,用于检测数据片段的残差值特性;
所述初级压缩编码方式包括:
当数据片段的残差值特性小于或等于第三预设值,初级编码模块选择8bit变长字节编码;当数据片段的残差值特性大于第三预设值,初级编码模块选择7bit变长字节编码。
进一步的,还包括:数据切片单元,用于将初始数据分割成若干个所述数据片段。
本发明还提供一种基于自适应数据压缩系统的数据压缩方法,包括:
上位机与下位机通信前,使用同一个初始熵编码字典;
下位机基于初始熵编码字典对数据片段的初级压缩编码值进行熵编码映射,得到熵编码值,若熵编码值占用空间超过数据片段占用空间,则将数据片段的原始数据作为熵编码值放入数据包,并在传输协议中标记传输类型为原始值;
上位机与下位机建立通信,下位机将含熵编码值的数据包发送至上位机,上位机根据传输协议解析数据包,并进行传输类型判断;
若数据包是原始数据,则直接存储,若是压缩数据,则进行熵编码解压缩和初级编码解压缩并存储数据;上位机判断满足字典统计条件时,根据当前数据片段的初级压缩编码值获取新的熵编码字典;
上位机判断满足字典更新条件时,上位机与下位机再次通信,将新熵编码字典发送至下位机,用于下一数据片段的熵编码映射。
本发明还提供一种基于自适应数据压缩系统的电生理信号压缩方法,包括:
根据信号所属的导联位置标记数据片段的信号类型;
当数据片段被标记为心电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为脑电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为眼电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为肌电信号时,初级编码模块选择7bit变长字节编码。
本发明的有益效果是,本发明的自适应数据压缩系统、压缩方法、电生理信号压缩方法,可以根据数据特性自适应选择初级压缩编码方式,并且可以根据数据的实时动态变化自适应更新熵编码字典,一方面,可以显著降低计算量,减轻存储压力,提高压缩效率;另一方面,可以根据载体配置情况,自适应熵编码的更新方式,可以减轻数据传输压力,减少数据丢包次数。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的自适应数据压缩系统的处理流程图。
图2是本发明基于信号标识模块的初级压缩编码的流程图。
图3是本发明的图2的处理流程与现有技术的压缩比的示意图。
图4是本发明的基于残差值特性的初级压缩编码的流程图。
图5是本发明的自适应编码的流程图。
图6是本发明的上位机与下位机通话场景的自适应编码的流程图。
图7是本发明的实施例一的处理流程图。
图8是对比例一的处理流程图。
图9是对比例二的处理流程图。
图10是实施例一与对比例一、对比例二的压缩比的对比图。
图11是24bit脑电数据的8bit溢出率的对比图。
图12是本发明的场景一的示意图。
图13是本发明的场景二的示意图。
图14是本发明的场景三的示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1至图14所示,本发明的自适应数据压缩系统,包括:初级压缩单元,被配置为对数据片段进行初级压缩得到初级压缩编码值以及熵编码字典;熵编码映射单元,被配置为根据熵编码字典对初级压缩编码值进行熵编码映射,得到对应的熵编码值;字典获取单元,被配置为在满足字典获取条件时基于当前数据片段的初级压缩编码值获取对应的新熵编码字典;根据熵编码映射单元和字典获取单元被配置的载体情况,自适应数据压缩系统被配置为不同的熵编码字典更新方式,以将新熵编码字典更新为下一数据片段进行熵编码映射时的熵编码字典。
换言之,本发明的自适应数据压缩系统,可以根据数据的动态变化实时调整伤编码字典,有利于提高数据压缩效率;并且,数据压缩方式并不是采用单一编码方式,适应性更强。
例如,自适应数据压缩系统还包括:数据切片单元,用于将初始数据分割成若干个数据片段。初级压缩单元包括:信号估计模块和初级编码模块,信号估计模块用于检测数据片段的分类特征,初级编码模块用于根据分类特征选择初级压缩编码方式获取数据片段的初级压缩编码值。其中,分类特征包括:数据片段的信号类型、频率特性、残差值特性中的任一种。换言之,本发明可以根据数据的分类特征选择不同的初级压缩编码方式,这样,对于数据压缩更具有针对性,有利于提升数据压缩效果。
例如,信号估计模块包括信号标识模块,用于标记数据片段的信号类型。数据片段的信号类型包括:心电信号、脑电信号、眼电信号、肌电信号、音频信号、视频信号等。对于不同的信号类型,初级压缩编码方式包括:当数据片段被标记为心电信号时,初级编码模块选择8bit变长字节编码;当数据片段被标记为脑电信号时,初级编码模块选择8bit变长字节编码;当数据片段被标记为眼电信号时,初级编码模块选择8bit变长字节编码;当数据片段被标记为肌电信号时,初级编码模块选择7bit变长字节编码;当数据片段被标记为音频信号时,初级编码模块选择7bit变长字节编码;当数据片段被标记为视频信号时,初级编码模块选择8bit变长字节编码。选择8bit变长字节编码还是7bit变长字节编码是由信号幅值的分布特征决定的,不同的生理信号的特征分布不同,例如,肌电信号属于生理信号中的高频信号,其他生理信号都是相对低频的。因此,肌电信号选择7bit变长字节编码。例如,7bit变长字节编码可以采用Varint编码。
例如,初始数据包含多个通道采集的数据且存在不同的信号类型,可以通过计算数据的频率特性、频率特征分布、残差值的统计指标(例如中值、过零率、均值、标准差等)来区分数据的信号类型。例如,如图2所示,以数据片段中包含高频的肌电信号和低频的脑电信号为例,可以先计算出基于频率的判断指标,若数据片段的频率特性为高频信号,则将编码方式标记位设置为flag=v,采用7bit变长字节编码方式进行初级压缩编码。若数据片段的频率特性为低频信号,则将编码方式标记位设置为flag=r,采用8bit变长字节编码进行初级压缩编码。如图3所示,曲线a 为肌电信号采用与脑电信号相同的初级压缩编码方式得到的压缩比,曲线b为肌电信号采用自适应初级压缩编码方式得到的压缩比,对于通道中的肌电信号,如果采用与脑电信号相同的压缩编码方式,压缩比明显较低,本发明通过信号类型自适应匹配初级压缩编码方式,肌电信号的压缩比提升了36%。
例如,信号估计模块包括:频率检测模块,用于检测数据片段的频率特性。初级压缩编码方式包括:当数据片段的频率特性大于或等于第二预设值,初级编码模块选择8bit变长字节编码;当数据片段的频率特性小于第二预设值,初级编码模块选择7bit变长字节编码。
例如,频率特性的第二预设值可以选择高频功率谱密度的占比,PSDh表示高频功率谱密度,PSDall表示功率谱密度(包含高频、低频)。根据数据片段的频率特性,自适应选择合适的初级压缩编码方式。
例如,信号估计模块包括:残差计算模块,用于检测数据片段的残差值特性。初级压缩编码方式包括:当数据片段的残差值特性小于或等于第三预设值,初级编码模块选择8bit变长字节编码;当数据片段的残差值特性大于第三预设值,初级编码模块选择7bit变长字节编码。根据数据自身的残差值特性选择最佳的初级压缩编码方式,可以减少单个数据样本点占用的字节数。
例如,残差值特性为残差值的8bit溢出率。如图4所示,某数据片段的残差值为dk,该残差值dk的8bit溢出率为r,若8bit溢出率r≤第三预设值,则将该数据片段的编码方式标记位设置位flag=r,对该数据片段采用8bit变长字节编码进行初级压缩编码;若8bit溢出率r>第三预设值,则将该数据片段的编码方式标记位设置为flag=v,对该数据片段采用7bit变长字节编码进行初级压缩编码。残差值可以通过差分运算计算得到,频率越高的数据经过差分运算后数据值的变化越小,低频部分经过差分运算后会被抑制,因此,高频数据的残差值更容易溢出8bit。
例如,数据片段为3Byte,压缩位宽位8bit,除数为28=256。数据在不同范围内时,不同的编码方式编码后的位长不同,7bit变长字节编码采用商余编码,8bit变长字节编码采用Varint编码。如表1所示,数据在[0, 28-2]时,8bit溢出率较低,使用商余编码可以节省更多的字节数,而数据在[28,214-1]时,8bit溢出率较高,使用Varint编码占用的字节数更少。
表1 不同编码方式编码后的位长对比
例如,残差值特性还可以采用残差值的绝对均值,若数据片段的残差值绝对均值大于第三预设值,则初级压缩编码方式采用Varint编码,若数据片段的残差值绝对均值小于或等于第三预设值,则初级压缩编码方式采用商余编码。当然,初级压缩编码方式还可以采用减法编码、对数编码等方式。
需要说明的是,本发明在对数据片段进行初级压缩编码后,可以得到初级压缩编码值和熵编码字典。对初级压缩编码值采用自适应熵编码进行二次压缩,得到最终的压缩后的数据。例如,在对第一个数据片段进行初级压缩编码后,可以统计得到熵编码字典。后续的数据片段在进行熵编码时采用同一个熵编码字典,但是,当数据变化满足熵编码字典获取条件时,基于当前数据片段获取一个新熵编码字典,该新熵编码字典作为下一个数据片段进行熵编码时的字典。
例如,字典获取条件包括:定长获取、不定长获取或联合获取中的任一种。定长获取为以设定的固定时间进行获取。不定长获取为当后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值时进行获取。联合获取为在定长获取内嵌套不定长获取,即以固定时间进行获取的同时,当后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值时也进行获取。定长获取适于任务态活动数据,不定长获取适于静息态数据,联合获取适于静息态数据与任务态活动数据交叉存在的情形。
需要说明的是,定长获取是根据设置的固定时间间隔获取新的熵编码字典,例如,假设固定时间为30s,则每隔30s就获取一次新的熵编码字典。不定长获取是通过条件比较决定是否获取,如果后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值,表明当前的熵编码字典已不适合后一次的数据片段压缩,压缩效果已不明显,需要获取熵编码字典。联合获取是指不定长获取和定长获取同时进行的,以定长获取为主,当前后两次定长获取后得到的数据压缩量变化较大,则切换为不定长获取。
本发明可以根据数据的实时变化,动态调整熵编码字典,有效提升压缩比,并且,不满足字典获取条件时,并不需要重新统计熵编码字典,可以减少计算量,而且,在压缩过程中,只保留更新的熵编码字典,可以减少字典占用的存储空间。
例如,熵编码映射单元和字典获取单元可以被配置在不同载体上或同一载体上。根据不同的配置场景,可以设置不同的熵编码字典更新方式,以提高数据压缩效率。
例如,当熵编码映射单元与字典获取单元被配置于同一载体上时,熵编码字典更新方式包括:第一存储单元被配置于第一载体上;通过第一存储单元保存每个数据片段的熵编码字典及其映射得到的熵编码值;当满足字典获取条件时,字典获取单元将新熵编码字典增加至第一存储单元,作为下一数据片段进行熵编码映射时的熵编码字典。将获得的新熵编码字典与历史熵编码字典进行比较,若存在与新熵编码字典相同的历史熵编码字典,则新熵编码字典不再进行保存,只标记该历史熵编码字典的编号地址,该新熵编码字典基于编号地址调用熵编码字典。例如,第一载体被配置为上位机或下位机。
例如,当熵编码映射单元与字典获取单元被配置于不同载体上时,熵编码字典更新方式包括:熵编码映射单元被配置于第二载体上;字典获取单元、熵解码映射单元、字典更新单元均被配置于第三载体上;数据片段的熵编码值由第二载体被传输至第三载体并通过熵解码映射单元执行熵解码映射,得到数据片段的熵解码值;当满足字典获取条件时,字典获取单元基于当前数据片段的初级压缩编码值获取新熵编码字典;当满足字典更新条件时,字典更新单元将新熵编码字典发送至第二载体,以覆盖原有的熵编码字典,作为下一数据片段进行熵编码映射时的熵编码字典。例如,第二载体被配置为下位机,第三载体被配置为上位机。第二载体配置有第二存储单元,用于存储单个熵编码字典,第三载体配置有第三存储单元,用于存储每个数据片段的熵解码值。字典更新条件为前后两次的熵编码字典的一致性。
需要说明的是,当熵编码映射单元与字典获取单元被配置于同一载体上时,熵编码映射单元与字典获取单元均位于上位机内或均位于下位机内。数据压缩处理过程仅在上位机内或下位机内进行。当所述熵编码映射单元与字典获取单元被配置于不同载体上时,即,熵编码映射单元位于下位机内,字典获取单元、熵解码映射单元、字典更新单元位于上位机内。上位机和下位机之间进行通信。下位机完成对数据片段的初级编码以及对初级压缩编码值进行熵编码映射,这部分的计算量较少。而上位机负责熵编码字典的获取,并将熵编码字典发送给下位机进行更新。上位机和下位机首次通信时,下位机接收上位机发送的初始的熵编码字典,然后下位机根据熵编码字典对数据进行熵编码映射,并将熵编码值发送给上位机,直到满足字典更新条件时,上位机将新的熵编码字典发送给下位机,下位机再根据新的熵编码字典对数据进行熵编码。
将所述熵编码映射单元与字典获取单元被配置于不同载体上的优势在于:下位机不需要额外传输熵编码字典信息,这样,单位时间内能够传输更多的有效数据信息。并且熵编码字典是基于上位机接收的数据进行更新,上位机可以积累一定数据量后,进行字典更新获取,不会出现因数据量太少而熵编码压缩率较低的情况。对于下位机而言,任意长度的数据片段都可以进行熵编码。该方案适于数据获取在处理能力较弱(下位机)的设备上进行,数据压缩需要传输给处理能力较强(上位机)的设备的场景。
熵编码字典例如为{0:‘01’,1:‘100’,2:‘000001’},初级压缩编码值为[0,0,1,1,2,0],则熵编码值为[010110010000000101],原来初级压缩编码值中,一个编码值占用8个bit,熵编码后,一个编码值占用1个bit。
下面通过实施例和对比例来说明本发明的技术效果。
实施例一:50Hz工频周期差分+单点差分+8bit溢出率特征+自适应编码,处理流程如图7所示。
对比例一:50Hz工频周期差分+单点差分+8bit商余编码,处理流程如图8所示。
对比例二:50Hz工频周期差分+单点差分+Varint编码,处理流程如图9所示。
实施例一、对比例一、对比例二处理的数据类型为24bit脑电数据,共369条数据,数据片段切分以10s为单位。如图10所示,实施例一的平均压缩比为2.18.对比例一的平均压缩比为2.06,对比例二的平均压缩比为2.14,本方法在压缩比上高于现有方法。图11是24bit脑电数据的8bit溢出率,数据的8bit溢出率是高低变化的,8bit溢出率高适合使用Varint编码,8bit溢出率低适合商余编码,因此,采用单一编码方式处理效果并不佳,采用本发明的自适应编码更合适。
场景一:如图12所示,从下位机到上位机的传输场景,实施例一采用不定长获取熵编码字典,对比例一采用实时更新编码字典,对比例二采用固定字典头,每个数据段大小为3KB,熵编码字典头是1KB,前三段数据分布与离线数据分布相似,从数据段4开始,数据分布发生变化。熵编码主要是两个环节,一是基于编码数据统计熵编码字典,二是基于熵编码字典对数据完成映射编码;其中的统计熵编码字典是熵编码中计算量占比更大的部分。要想实现对熵编码数据的解码,需要同时保留字典和压缩数据,字典本身会占用一定的字节空间。对比例一中,由于字典是实时更新的,所以每次都需要计算字典,且每次传输数据都需要将字典头传输出去,计算效率低且传输数据量大,在每个数据段数据量很小的情况下,反而会增加传输数据量,传输数据量增加也容易产生丢包情况的发生,错包重发产生严重耗时,不能保证数据的实时传输。对比例二,使用固定字典头,只需对第一次的数据计算熵编码字典,极大的减少了后面数据的压缩时间,但是由于字典是根据第一次数据分布得到的,数据分布发生变化后,就不能得到较好的压缩性能了。而实施例一,结合了二者的优势,在数据分布没有发生变化时,采用固定熵编码字典,数据分布发生变化后,更新熵编码字典信息,保证了压缩效率的同时减少传输数据量,减少丢包的次数。
场景二:如图13所示,从上位机与下位机进行通话,实施例一采用不定长获取熵编码字典,对比例一采用固定字典头,每个数据段大小为3KB,熵编码字典头是1KB,前三段数据分布与离线数据分布相似,从数据段4开始,数据分布发生变化。熵编码主要是两个环节,一是基于编码数据统计熵编码字典,二是基于熵编码字典对数据完成映射编码;其中统计熵编码字典是熵编码中计算量占比更大的部分;要想实现对熵编码数据的解码,需要同时保留字典和压缩数据,字典本身会占用一定的字节空间。如果将熵字典的计算放在上位机进行,只需将字典下发给下位机,将极大的减少下位机熵编码时间,上下位机通信也会占用时间,因此不适合实时传输字典头给下位机。对比例一使用固定初始字典头,由于字典是根据离线数据分布得到的,数据数据分布发生变化后,就不能得到较好的压缩性能了。而实施例一,在数据分布没有发生变化时,采用固定熵编码字典,数据分布发生变化后,上位机更新熵编码字典信息,下发给下位机,保证了压缩效率的同时减少传输数据量,减少丢包的次数。
场景三:如图14所示,从上位机与下位机进行通话,对比例一采用固定字典头,实施例一采用不定长获取熵编码字典或联合获取字典,每个数据段大小为3KB,熵编码字典头是1KB,前三段数据分布相似,但是与离线数据分布差异较大,第四段数据开始与第三段数据分布不同。新增实施例二:熵编码主要是两个环节,一是基于编码数据统计熵编码字典,二是基于熵编码字典对数据完成映射编码;其中统计熵编码字典是熵编码中计算量占比更大的部分;要想实现对熵编码数据的解码,需要同时保留字典和压缩数据,字典本身会占用一定的字节空间。如果将熵字典的计算放在上位机进行,只需将字典下发给下位机,将极大的减少下位机熵编码时间,上下位机通信也会占用时间,因此不适合实时传输字典头给下位机。对比例一使用固定初始字典头,由于字典是根据离线数据分布得到的,数据数据分布发生变化后,就不能得到较好的压缩性能了。对于本发明实施例一的不定长获取熵编码字典,前两段数据分布相似,字典不更新,第四段数据分布与第三段差异较大,上位机更新熵编码字典信息,下发给下位机,保证了压缩效率的同时减少传输数据量,减少丢包的次数。对于本发明实施例一的联合获取字典,在第二段数据时上位机发生了定时更新,第二、三段数据压缩率较高,第四段数据分布与第三段差异较大,上位机不定长更新熵编码字典信息,下发给下位机,定长与不定长更新字典的联用,更好的适应数据分布与数据变化,保证了压缩效率的同时减少传输数据量,减少丢包的次数。
本发明还提供一种数据压缩方法,包括:上位机与下位机通信前,使用同一个(离线的)初始熵编码字典;下位机基于初始熵编码字典对数据片段的初级压缩编码值进行熵编码映射,得到熵编码值,若熵编码值占用空间超过数据片段占用空间,则将数据片段的原始数据作为熵编码值放入数据包,并在传输协议中标记传输类型为原始值;上位机与下位机建立通信,下位机将含熵编码值的数据包发送至上位机,上位机根据传输协议解析数据包,并进行传输类型判断;若数据包是原始数据,则直接存储,若是压缩数据,则进行熵编码解压缩和初级编码解压缩并存储数据;上位机判断满足字典统计条件时,根据当前数据片段的初级压缩编码值获取新的熵编码字典;上位机判断满足字典更新条件时,上位机与下位机再次通信,将新熵编码字典发送至下位机,用于下一数据片段的熵编码映射。
也就是说,在上位机与下位机还未建立通信时,两者使用相同的离线的初始熵编码字典,下位机根据这个离线的初始熵编码字典对数据片段进行初级压缩,然后再对初级压缩编码值进行熵编码得到伤编码值,此时,需要判断这个熵编码值占用的空间是否超过数据片段的原始数据的占用空间,若是,则舍弃该熵编码值,将数据片段的原始数据存入数据包中并进行传输类型的标记;若否,则将熵编码值存入数据包中并进行传输类型的标记。然后,上位机和下位机建立通信,下位机将数据包发送给上位机,上位机对该数据包进行解析并判断数据包中的数据为原始数据还是压缩数据,如果是原始数据,则直接接收存储,如果是压缩数据,则进行解压缩后进行存储。例如,上位机解析数据包后,若是压缩数据,则获取压缩数据长度,计算过去1秒的数据压缩比,并设定字典获取条件为固定时间5秒更新,当满足字典更新条件时,上位机与下位机再次通信,将新熵编码字典发送至下位机,用于下一数据片段的熵编码映射。
本发明还提供一种自适应数据压缩系统的电生理信号压缩方法,包括:根据信号所属的导联位置标记数据片段的信号类型;当数据片段被标记为心电信号时,初级编码模块选择8bit变长字节编码;当数据片段被标记为脑电信号时,初级编码模块选择8bit变长字节编码;当数据片段被标记为眼电信号时,初级编码模块选择8bit变长字节编码;当数据片段被标记为肌电信号时,初级编码模块选择7bit变长字节编码。具体过程可参考自适应数据压缩系统中的相关描述。
综上所述,本发明的自适应数据压缩系统、压缩方法、电生理信号压缩方法,可以根据数据特性自适应选择初级压缩编码方式,并且,可以根据数据的实时动态变化自适应更新熵编码字典,一方面,可以显著降低计算量,减轻存储压力,提高压缩效率;另一方面,可以根据载体配置情况,自适应熵编码的更新方式,可以减轻数据传输压力,减少数据丢包次数。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容确定的技术性范围。
Claims (16)
1.一种自适应数据压缩系统,其特征在于,包括:
初级压缩单元,被配置为对数据片段进行初级压缩得到初级压缩编码值以及熵编码字典;
熵编码映射单元,被配置为根据所述熵编码字典对初级压缩编码值进行熵编码映射,得到对应的熵编码值;
字典获取单元,被配置为在满足字典获取条件时基于当前数据片段的初级压缩编码值获取对应的新熵编码字典;
根据所述熵编码映射单元和字典获取单元被配置的载体情况,所述自适应数据压缩系统被配置为不同的熵编码字典更新方式,以将所述新熵编码字典更新为下一数据片段进行熵编码映射时的熵编码字典;
其中,所述字典获取条件包括:定长获取、不定长获取或联合获取中的任一种;
所述定长获取为以设定的固定时间进行获取;
所述不定长获取为当后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值时进行获取;
所述联合获取为在定长获取内嵌套不定长获取,即以所述固定时间进行获取的同时,当后一次压缩数据量与前一次的压缩数据量的比值超过第一预设值时也进行获取。
2.如权利要求1所述的自适应数据压缩系统,其特征在于,
所述定长获取适于任务态活动数据;
所述不定长获取适于静息态数据;
所述联合获取适于静息态数据与任务态活动数据交叉存在的情形。
3.如权利要求1所述的自适应数据压缩系统,其特征在于,
当所述熵编码映射单元与字典获取单元被配置于同一载体上时,所述熵编码字典更新方式包括:
第一存储单元被配置于第一载体上;
通过第一存储单元保存每个数据片段的熵编码字典及其映射得到的熵编码值;
当满足字典获取条件时,所述字典获取单元将新熵编码字典增加至第一存储单元,作为下一数据片段进行熵编码映射时的熵编码字典。
4.如权利要求3所述的自适应数据压缩系统,其特征在于,
当所述熵编码映射单元与字典获取单元被配置于同一载体上时,所述熵编码字典更新方式还包括:
将获得的所述新熵编码字典与历史熵编码字典进行比较,若存在与新熵编码字典相同的历史熵编码字典,则新熵编码字典不再进行保存,只标记该历史熵编码字典的编号地址,该新熵编码字典基于所述编号地址调用熵编码字典。
5.如权利要求3所述的自适应数据压缩系统,其特征在于,
所述第一载体被配置为上位机或下位机。
6.如权利要求1所述的自适应数据压缩系统,其特征在于,
当所述熵编码映射单元与字典获取单元被配置于不同载体上时,所述熵编码字典更新方式包括:
所述熵编码映射单元被配置于第二载体上;
所述字典获取单元、熵解码映射单元、字典更新单元均被配置于第三载体上;
数据片段的熵编码值由所述第二载体被传输至第三载体并通过所述熵解码映射单元执行熵解码映射,得到数据片段的熵解码值;
当满足字典获取条件时,所述字典获取单元基于当前数据片段的初级压缩编码值获取新熵编码字典;
当满足字典更新条件时,所述字典更新单元将新熵编码字典发送至第二载体,以覆盖原有的熵编码字典,作为下一数据片段进行熵编码映射时的熵编码字典。
7.如权利要求6所述的自适应数据压缩系统,其特征在于,
所述第二载体配置有第二存储单元,用于存储单个熵编码字典;
所述第三载体配置有第三存储单元,用于存储每个数据片段的熵解码值。
8.如权利要求6所述的自适应数据压缩系统,其特征在于,
所述字典更新条件为前后两次的熵编码字典的一致性。
9.如权利要求6所述的自适应数据压缩系统,其特征在于,
所述第二载体被配置为下位机,所述第三载体被配置为上位机。
10.如权利要求1所述的自适应数据压缩系统,其特征在于,
所述初级压缩单元包括:
信号估计模块,用于检测数据片段的分类特征;
初级编码模块,根据分类特征选择初级压缩编码方式获取数据片段的初级压缩编码值;其中
所述分类特征包括:数据片段的信号类型、频率特性、残差值特性中的任一种。
11.如权利要求10所述的自适应数据压缩系统,其特征在于,
所述信号估计模块包括:信号标识模块,用于标记数据片段的信号类型;
所述初级压缩编码方式包括:
当数据片段被标记为心电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为脑电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为眼电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为肌电信号时,初级编码模块选择7bit变长字节编码;
当数据片段被标记为音频信号时,初级编码模块选择7bit变长字节编码;
当数据片段被标记为视频信号时,初级编码模块选择8bit变长字节编码。
12.如权利要求10所述的自适应数据压缩系统,其特征在于,
所述信号估计模块包括:频率检测模块,用于检测数据片段的频率特性;
所述初级压缩编码方式包括:
当数据片段的频率特性大于或等于第二预设值,初级编码模块选择8bit变长字节编码;当数据片段的频率特性小于第二预设值,初级编码模块选择7bit变长字节编码。
13.如权利要求10所述的自适应数据压缩系统,其特征在于,
所述信号估计模块包括:残差计算模块,用于检测数据片段的残差值特性;
所述初级压缩编码方式包括:
当数据片段的残差值特性小于或等于第三预设值,初级编码模块选择8bit变长字节编码;当数据片段的残差值特性大于第三预设值,初级编码模块选择7bit变长字节编码。
14.如权利要求1所述的自适应数据压缩系统,其特征在于,还包括:
数据切片单元,用于将初始数据分割成若干个所述数据片段。
15.一种基于如权利要求9所述的自适应数据压缩系统的数据压缩方法,其特征在于,包括:
上位机与下位机通信前,使用同一个初始熵编码字典;
下位机基于初始熵编码字典对数据片段的初级压缩编码值进行熵编码映射,得到熵编码值,若熵编码值占用空间超过数据片段占用空间,则将数据片段的原始数据作为熵编码值放入数据包,并在传输协议中标记传输类型为原始值;
上位机与下位机建立通信,下位机将含熵编码值的数据包发送至上位机,上位机根据传输协议解析数据包,并进行传输类型判断;
若数据包是原始数据,则直接存储,若是压缩数据,则进行熵编码解压缩和初级编码解压缩并存储数据;上位机判断满足字典统计条件时,根据当前数据片段的初级压缩编码值获取新的熵编码字典;
上位机判断满足字典更新条件时,上位机与下位机再次通信,将新熵编码字典发送至下位机,用于下一数据片段的熵编码映射。
16.一种基于如权利要求11所述的自适应数据压缩系统的电生理信号压缩方法,其特征在于,包括:
根据信号所属的导联位置标记数据片段的信号类型;
当数据片段被标记为心电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为脑电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为眼电信号时,初级编码模块选择8bit变长字节编码;
当数据片段被标记为肌电信号时,初级编码模块选择7bit变长字节编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311563997.7A CN117278057B (zh) | 2023-11-22 | 2023-11-22 | 自适应数据压缩系统、压缩方法、电生理信号压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311563997.7A CN117278057B (zh) | 2023-11-22 | 2023-11-22 | 自适应数据压缩系统、压缩方法、电生理信号压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117278057A CN117278057A (zh) | 2023-12-22 |
CN117278057B true CN117278057B (zh) | 2024-02-09 |
Family
ID=89216402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311563997.7A Active CN117278057B (zh) | 2023-11-22 | 2023-11-22 | 自适应数据压缩系统、压缩方法、电生理信号压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117278057B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009078069A (ja) * | 2007-09-27 | 2009-04-16 | Hoya Corp | 内視鏡システムおよび撮影システム |
CN103858433A (zh) * | 2011-08-25 | 2014-06-11 | 汤姆逊许可公司 | 分层熵编码及解码 |
CN106658003A (zh) * | 2016-09-27 | 2017-05-10 | 清华大学 | 一种基于字典学习的图像压缩系统的量化方法 |
US10187081B1 (en) * | 2017-06-26 | 2019-01-22 | Amazon Technologies, Inc. | Dictionary preload for data compression |
US20230319280A1 (en) * | 2022-04-05 | 2023-10-05 | Qatar Foundation For Education, Science And Community Development | Automatic generation of h.264 parameter sets to recover video file fragments |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220086445A1 (en) * | 2020-12-03 | 2022-03-17 | Intel Corporation | Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding |
-
2023
- 2023-11-22 CN CN202311563997.7A patent/CN117278057B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009078069A (ja) * | 2007-09-27 | 2009-04-16 | Hoya Corp | 内視鏡システムおよび撮影システム |
CN103858433A (zh) * | 2011-08-25 | 2014-06-11 | 汤姆逊许可公司 | 分层熵编码及解码 |
CN106658003A (zh) * | 2016-09-27 | 2017-05-10 | 清华大学 | 一种基于字典学习的图像压缩系统的量化方法 |
US10187081B1 (en) * | 2017-06-26 | 2019-01-22 | Amazon Technologies, Inc. | Dictionary preload for data compression |
US20230319280A1 (en) * | 2022-04-05 | 2023-10-05 | Qatar Foundation For Education, Science And Community Development | Automatic generation of h.264 parameter sets to recover video file fragments |
Also Published As
Publication number | Publication date |
---|---|
CN117278057A (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0084270B1 (en) | Video bandwidth reduction system employing interframe block differencing and transform domain coding | |
US20060233201A1 (en) | Adaptive encoding of digital multimedia information | |
JP2000504524A (ja) | 高速度データを圧縮し伝送する方法および装置 | |
WO2006060224A1 (en) | Golomb-rice lossless compression of satellite images | |
CN116153453B (zh) | 基于云边协同的智能戒指信息管理方法及系统 | |
Giorgi | A combined approach for real-time data compression in wireless body sensor networks | |
WO2001050613A1 (en) | Multi-rate, channel-optimized trellis-coded quantization | |
CN117278057B (zh) | 自适应数据压缩系统、压缩方法、电生理信号压缩方法 | |
WO2009158456A4 (en) | Compression scheme for interval data | |
KR100496774B1 (ko) | 디지털 비디오 신호 처리 장치를 위한 데이터 효율적인 양자화 테이블을 이용한 재압축 방법 및 장치 | |
US6396958B1 (en) | Image transmission system and method employing compression and error correction | |
JP2013515291A (ja) | 定常ビットレートアプリケーションのための最適なビット割当を備えるオーディオ及びスピーチ処理 | |
EP2933756B1 (en) | System and method for arithmetic encoding and decoding | |
RU2738141C2 (ru) | Способ и устройство сжатия/кодирования, способ и устройство декодирования | |
US10484006B2 (en) | System and method for arithmetic encoding and decoding | |
JP2003514465A (ja) | 符号分割多元アクセス通信システムの画像伝送方法 | |
CN108694734B (zh) | 一种适合复杂图像的数据压缩方法 | |
CN111325957B (zh) | 微控制单元及dtmf报警信号输出方法和系统 | |
CN111147865B (zh) | 一种视频编码前的预解码方法 | |
CN116156203A (zh) | 语法元素的编码、解码方法、装置、电子设备和存储介质 | |
CN117834870A (zh) | Jpeg-xs编码器的快速模式和截断位置选择方法 | |
CN116471241A (zh) | 一种数字信息传输方法及系统 | |
CN116226584A (zh) | 心电信号压缩方法 | |
CN110784288A (zh) | 心电信号实时无损压缩方法和系统 | |
CN110289932A (zh) | 一种乱序深度值更新方法和装置 |
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 |