我看到了很多 js 的压缩方法,但在大多数情况下,压缩数据是字符串形式的,并且包含文本。我需要在 0-1 范围内压缩小于 10^7 个浮点数的数组。
由于精度并不是很重要,最终我可以将其保存为仅包含数字 0-9 的字符串(每个浮点数仅包含 2 个小数点后的第一个数字)。什么方法最适合这样的数据?我希望输出尽可能小,但压缩这个字符串不应该超过 10 秒,每个浮点数保存 2 位数字时大约有 10 000 000 个符号。我看到了很多 js 的压缩方法,但在大多数情况下压缩数据是字符串,它包含文本。我需要在 0-1 范围内压缩小于 10^7 个浮点数的数组。
由于精度并不是很重要,最终我可以将其保存为仅包含数字 0-9 的字符串(每个浮点数仅包含 2 个小数点后的第一个数字)。什么方法最适合这样的数据?我希望输出尽可能小,但解压缩此字符串的时间也不应超过 10 秒,每个浮点数保存 2 位数字时大约有 10 000 000 个符号。
数据包含声音波形记录,用于在不支持 Web Audio API 的旧浏览器上进行可视化。波形在 Chrome 用户客户端上以 20 fps 的速度记录,压缩并存储在服务器数据库中。然后在请求绘制可视化后发送回 IE 或 ff - 所以我需要有损压缩 - 实现能够与歌曲元数据请求一起发送的大小确实是有损的。我希望 wav -> mp3 64k 级别的压缩是可能的(比如 200:1 或其他东西)没有人会认识到波形在可视化上并不完美,我想也许将这些浮点数保存为 0-9a-Z 它给出 36 而不是100 步,但将一个频率的记录减少到 1 个符号。但接下来,在这个带有 0-Z 符号的字符串上使用什么压缩来实现最佳压缩?lzma 适合这样的字符串吗?压缩/解压将在 Web Worker 上运行,因此它不需要真正即时 - 解压 10 秒,压缩无关紧要 - 而不是一首歌,所以大约 2 分钟