多通道信号数据压缩存储
多通道信号数据压缩存储
1 信号压缩描述
数据压缩分为无损压缩和有损压缩,无损压缩是可以从压缩后数据完全一致地还原出压缩前数据的方法,可以针对任何数据,是通过重新编码把本来存在于数据中的信息冗余去掉而不会损失数据信息,压缩比(原数据量/压缩后数据量)的大小与数据本身有关,数据中信息冗余量大压缩比就高,数据中信息冗余量小压缩比就低。有损压缩允许以一定的精度损失换取高的压缩效率,通常针对特殊数据进行,是根据数据的特点,在不严重损失数据质量的条件下经过适当处理产生一些数据冗余量,然后再进行无损压缩,从而达到提高压缩比的目的,如mp3声音压缩、JPEG图像压缩。
信号通常以连续波形的形式表现,每个通道信号的特点可以大不相同,如采样率、幅度范围、光滑程度、包含的频率成分等。因此,多通道信号数据有损压缩存储变得比较复杂,其压缩恢复后信号的质量是否符合要求需要用户来加以判别。长时间记录的多通道信号往往数据比较大,经过压缩存储后可以大大节省存储介质空间和数据传输时间。借鉴JPEG图像压缩算法原理,多道信号分析软件提供了一种通用的多通道信号有损压缩保存方法,用户可以根据自己对信号质量要求,来设置信号数据压缩控制参数。假设信号是连续变化的,将信号分成很多时间段,对每一段信号进行压缩,将多通道信号压缩结果作为一个整体保存成文件。其压缩算法步骤是:(1)消除信号中的直流成分(去均值);(2)对信号进行一维离散余弦变换(DCT);(3)将绝对值较小的余弦变换系数设置成零,以便产生数据冗余;(4)对余弦变换系数进行量化;(5)对量化后的余弦变换系数进行无损失霍夫曼(Huffman)压缩;(6)将压缩后的数据保存到文件之中。多道信号分析软件支持信号的无损压缩和有损压缩保存,有损压缩生成的文件为*.cmpdct,无损压缩生成的文件为*.cmp。因此,压缩控制参数包括信号分段长度、余弦系数量化水平、压缩质量控制因子,用这些参数来平衡压缩比和信号质量,满足用户需要。
多通道信号数据压缩,借鉴了JPEG压缩原理。假设信号曲线是光滑连续的,认为信号的主要信息包含在离散余弦变换的高幅系数之中,将余弦系数绝对值低于一定门限的设置成零并量化后产生信息冗余,最后将量化后的系数进行无损压缩保存。长时间记录的多通道信号往往数据大,经过压缩存储后可以大大节省存储介质空间和数据传输时间。通过压缩参数(分段长度、量化水平、质量因子)设置来权衡压缩效率和信号保真度。
信号数据压缩过程如下图所示。
2 参数设置与压缩比
以多通道信号文件1125.dss为例,来观察不同压缩参数的设置对压缩结果的影响。原始数据文件(1125.dss)的长度为78566 Kbytes,记录时长为8小时35分17秒(30917秒),信号包含12个通道,各通道的采样速率、幅度范围、信号名称如下表所示。
通道序号 |
名称 |
采样率(Hz) |
AD值范围 |
0 |
EEG1 |
100 |
0-255 |
1 |
EEG2 |
100 |
0-255 |
2 |
EOG1 |
100 |
0-255 |
3 |
EOG2 |
100 |
0-255 |
4 |
EMG |
100 |
0-255 |
5 |
Flow |
100 |
0-255 |
6 |
胸呼吸 |
100 |
0-255 |
7 |
腹呼吸 |
100 |
0-255 |
8 |
Snore |
100 |
0-255 |
9 |
ECG |
200 |
0-255 |
10 |
Pulse |
200 |
0-255 |
11 |
SaO2 |
1 |
0-255 |
无损压缩:将该多通道信号保存为无损压缩文件,文件名为1125.cmp,文件长度14877 Kbytes,压缩比:R = 78566/14877 = 5.28。无损压缩的菜单操作为:《保存》→《另存数据》,出现选择保存文件对话框后输入后缀为cmp的文件。
有损压缩:下表是针对该信号进行有损压缩时,不同压缩参数设置的比较。有损压缩的菜单操作为:《保存》→《另存数据》,出现选择保存文件对话框后输入后缀为cmpdct的文件。在执行有损压缩保存前需要用户输入压缩参数:
表中有损数据压缩文件名,依据输入参数,取名规则为1125(nSeg_ADmax_Quality).cmpdct,即:
1125(分段长度_量化水平_质量因子).cmpdct,观察不同参数设置的压缩比变化。
编号 |
文件名 |
文件长度(Kbytes) |
压缩比 |
说明 |
1 |
1125(4096_4095_10).cmpdct |
12491 |
6.29 |
压缩比较小但信号质量高 |
2 |
1125(4096_4095_8).cmpdct |
11863 |
6.62 |
|
3 |
1125(4096_4095_5).cmpdct |
8479 |
9.27 |
|
4 |
1125(4096_4095_4).cmpdct |
7103 |
11.06 |
|
5 |
1125(4096_4095_3).cmpdct |
5566 |
14.12 |
|
6 |
1125(4096_4095_2).cmpdct |
3906 |
20.11 |
|
7 |
1125(4096_4095_1).cmpdct |
2140 |
36.71 |
压缩比高但信号质量低 |
|
|
|
|
|
8 |
1125(8192_4095_4).cmpdct |
6540 |
12.01 |
|
9 |
1125(2048_4095_4).cmpdct |
7947 |
9.89 |
|
10 |
1125(1024_4095_4).cmpdct |
8988 |
8.74 |
|
11 |
1125(512_4095_4).cmpdct |
10524 |
7.47 |
|
12 |
1125(256_4095_4).cmpdct |
13349 |
5.89 |
|
|
|
|
|
|
13 |
1125(4096_2047_4).cmpdct |
6736 |
11.66 |
|
14 |
1125(4096_1023_4).cmpdct |
6323 |
12.43 |
|
15 |
1125(4096_511_4).cmpdct |
5854 |
13.42 |
|
16 |
1125(4096_255_4).cmpdct |
5264 |
14.93 |
|
|
|
|
|
|
17 |
1125(4096_2047_5).cmpdct |
8026 |
9.79 |
|
18 |
1125(4096_2047_3).cmpdct |
5287 |
14.86 |
|
从上表中数据文件压缩结果的情况来看,质量因子越大,压缩比越小,信号保真越好,反之,质量因子越小,压缩比越大,信号损失越大;信号分段越长,压缩比越大,信号损失越大,反之,信号分段越短,压缩比越小,信号保真越好;量化水平越高,压缩比越小,信号保真越好,反之,量化水平越低,压缩比越大,信号损失越大。依据信号特性,权衡压缩比和质量保证,选取适当的参数。例如信号分段长度(nSegment)为4096,量化水平(ADmax)为2047,质量因子(Quality)为5。
3 压缩前后的信号波形比较
例1:对1125.dss数据,观察一段20秒多道信号压缩前后的波形,其中压缩参数为分段长度4096,量化水平2047,质量因子3,输出文件为1125(4096_2047_3).cmpdct。压缩比R=14.86。
压缩前原始波形(20s)
压缩后恢复波形(20s)
例2:对声音信号数据文件CoughDemo2.wav实施压缩存储, 16比特,双通道,采样率44100Hz,记录时间长度为3分42秒(222s),文件大小为38161Kbytes。无损压缩后保存成文件:CoughDemo2.cmp,文件大小为26862 Kbytes,压缩比R=31861/26862=1.19,太小。有损压缩参数设置为分段长度4096点,量化水平2047,质量因子3,保存文件为CoughDemo2(4096_2047_3).cmpdct,文件长度为2198 Kbytes,压缩比R = 31861/2198 = 17.36。
观察一段0.5s压缩前后的信号波形。
压缩前原始波形(0.5s)
压缩后恢复波形(0.5s),压缩参数设置为nSeg=4096 ADmax=2047 Quality=3
例3:心电信号数据,文件名称DemoECG1ch.dss,文件大小为42196 Kbytes,采样率250Hz,幅度范围0-4095。无损压缩后文件名DemoECG1ch.cmp,文件大小为9743 Kbytes,压缩比R=4.33。有损压缩后文件名DemoECG1ch(4096_2047_3).cmpdct,文件大小4049 Kbytes,压缩比R=10.42。压缩参数设置为分段长度4096,量化水平2047,质量因子4。
压缩前原信号波形
压缩后恢复信号波形
参考文献
[1] 钱国祥,孙宏,彭振云,詹榜华,徐广方 编著. 数据压缩技术经典[M]. 北京 学苑出版社,1994年8月第1版.
[2] 高文 著. 多媒体数据压缩技术[M]. 北京 电子工业出版社,1994年4月第1版.
- 点赞
- 收藏
- 关注作者
评论(0)