Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

从索引序列和值序列中恢复部分频域分量,剩余分量填充为0,进行离散余弦逆变换IDCT,转为时域数据。


5 实验评估

5.1 性能对比:

对一组长度为170,000的真实气温数据,使用不同的方式进行编码压缩,结果如下:


编码压缩方式写入开销(s)查询开销(s)空间占用(byte)精度损失(RMSE)

PLAIN+UNCOMPRESSED

2.6

0.11

1,398,024

0

TS_2DIFF+GZIP

1.9

0.18

144,099

0

TS_2DIFF+GZIP+SDT(COMPDEV=0.25)

2.0

0.036

36,225

0.219

FREQ(SNR=40,BLOCKSIZE=1024)+UNCOMPRESSED2.20.1150,3030.206

FREQ(SNR=40,BLOCKSIZE=1024)+GZIP

2.1

0.11

25,663

0.206


  • TS_2DIFF+GZIP是压缩比最大的无损编码压缩方式,它的空间占用远远低于PLAIN+UNCOMPRESSED,但有损编码压缩可以进一步大幅减少空间;
  • 在TS_2DIFF+GZIP的基础上,可以继续应用有损的SDT压缩方法。由于该方法直接删除了大量数据点,而在查询时又没有通过插值进行恢复,因此查询开销远低于其余方法;
  • FREQ+GZIP可以取得最佳的空间压缩效果,在精度损失与SDT方法相当的情况下,可以节约30%的空间占用。

5.2 参数对性能的影响:

频域编码在配置文件中包括两个参数:`freq_snr`指定了编码的信噪比;`freq_block_size`指定了编码进行时频域变换的分组大小。对上述数据,测试在不同参数下的空间占用、编码时间和解码时间:


空间占用:

Image Added

  • 随着SNR的增大,我们需要保存更多的频域分量,因此空间占用也不断增大;
  • 在SNR较小时,增大block size可以降低空间占用,而SNR较大时,增大block size反而会增加空间占用。这是因为block size同时影响了下面两项:
    • 随着block size增大,频域分辨率提高,能量更加集中,这一效应在SNR较小时占主导;
    • 随着block size增大,索引序列的空间占用随之增大,由于SNR较大时保留的频域分量较多,这一效应占主导;

编码时间:

Image Added


  • 为了突出参数的影响,这里的编码时间是用于执行编码算法的时间。由于写入开销的大部分都与编码无关,这里不将其计入。
  • 随着block size的增加,编码时间增加,这是因为dct算法的复杂度是O(nlogn),在更大的block上执行会消耗更多的时间;
  • 随着SNR的增大,编码时间先减后增,这是因为SNR同时影响了下面两项:
    • 随着SNR增大,在自适应量化步骤中,量化噪声更加容易超过总体噪声阈值,量化等级的搜索空间减少,进而减少该步骤的时间开销;
    • 随着SNR增大,需要编码的二进制块增大,对索引和值序列的编码会消耗更多时间;


解码时间:

Image Added


  • 为了突出参数的影响,这里的解码时间是用于执行解码算法的时间。由于查询开销的大部分都与解码无关,这里不将其计入。
  • 随着block size的增加,解码时间增加,这是因为idct算法的复杂度是O(nlogn),在更大的block上执行会消耗更多的时间;
  • 随着SNR的增加,解码时间增加,这是因为需要解码的二进制块增大,对索引和值序列的解码会消耗更多时间。