【问题标题】:Compression Algorithm for Guaranteed Compression Ratio?保证压缩比的压缩算法?
【发布时间】:2016-03-03 21:04:59
【问题描述】:

任何人都可以向我提供有关查找/创建具有保证压缩率的数据压缩算法的指针或提示吗?显然这不可能是无损算法。

我的问题和这里的类似,但是没有合适的答案:

Shrink string encoding algorithm

我正在尝试通过具有严格带宽限制的无线网络(我自己的规范,而不是 WiFi)流式传输实时音频。假设我有 60 字节大小的数据包。我需要一种算法来将这些压缩到 35 字节每次都不会失败。 可靠保证压缩到固定大小是关键。音频质量不那么重要。

有什么建议或指示吗?我最终可能会从头开始创建自己的算法,所以即使你不知道任何库或标准算法,我也会感谢任何类型的绝妙想法!

【问题讨论】:

  • 为什么搜索“恒定比特率音频”没有帮助?有什么原因你不能只使用 ffmpeg?
  • 或许是分形压缩? :)

标签: algorithm audio compression streaming


【解决方案1】:

很高兴您提到了您的用例:实时音频。

many audio CODECs (COder-DECoder) 正是以这种方式工作的(恒定比特率)。例如,看看Opus。您可以选择从 6 kb/s 到 510 kb/s 的比特率,以及从 2.5 ms 到 60 ms 的帧大小。

我过去使用它通过射频数据链路传输音频。您可能还需要实现去抖动缓冲区(请参阅更多here)。另请注意,许多声卡的内部时钟不准确,源速率和目标速率之间可能存在“漂移”(例如,30mSec 缓冲区可能在 29.9mSec 或 30.1mSec 中播放),您可能需要补偿这个也是。

【讨论】: