我正在尝试压缩一些我需要但不想从我的 Centos 服务器中删除的旧记录中的原始传感器数据。
记录的数据采用专有格式,但出于所有意图和目的,我们可以将其描述为 1000 Hz 的 306 通道 PCM 32 位音频记录。文件头中有数百行明文元数据。文件大小从 100MB 到 1.9GB 不等,目录大小约为 7GB,处理后的文件目录最大可达 60GB,其中包含对数据应用过滤器的原始数据副本。
这是奇怪的一点。我可以使用 bzip2 将原始数据压缩到原始大小的 30%,使用 pxz 将原始数据压缩到原始大小的 26%。使用 ZPAQ 与 lzrip 得到类似的结果。但处理数据 PCM 32 位变量我只能削减 10% 到 12%。 16位短处理数据,我可以将其压缩到原始大小的50%左右。处理数据简化了记录数据并且记录中的变化更少。
有什么建议么?有人有类似的吗?我希望在处理的数据上尽可能节省空间,并计划在处理后检查数据以确保它没有错误。知道为什么处理后的简化数据比原始数据的可压缩性差吗?
//编辑 - 查看 FLAC 但转换回原始格式可能会出现问题。并非不可能..仍在寻找。
//解决方案编辑。 FLAC 不喜欢 370 个通道的数据。但我能够通过创建自己的大字典并使用大文件的片段对其进行训练来获得一些压缩。
答案1
你有关于格式的文档吗?编写一个小程序,将原始格式转换为 PCM wav + 元数据 + 3d 数据,然后再转换回来。如果它是不同频率信号的叠加,那么它应该可以使用无损音频压缩算法(例如 FLAC)进行良好压缩。
FLAC 就像 MP3:它通过将音频数据重写为不同的格式来压缩音频数据。所以这不是我所说的“包装器”(我不会将任何压缩程序称为“包装器”)。但与 MP3 不同的是,压缩是无损的:当您解压缩时,您会得到完全相同的数据,就像 bzip2 等一样。FLAC 对音频数据的压缩比约为 50%。
有多种方法可以将元数据存储在压缩音频中,具体取决于容器格式。也可以将所有三个文件放入一个存档文件中(您选择的格式),但压缩的 PCM 数据不会进一步压缩。