【问题标题】:Optimal way to convert from 16-bit linear PCM audio to 32-bit floating point in C/C+?在 C/C+ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法?
【发布时间】:2014-02-26 21:17:54
【问题描述】:

在 C 或 C++ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法是什么?

【问题讨论】:

  • 最优在什么意义上?最有效的方法?
  • 一次一个样本,优化它的意义不大。或者使用众多可用的音频支持库之一。
  • 由于您似乎正在为 iOS 和/或 MacOSX 进行开发,因此 Accelerate Framework 值得一看。
  • 您是否对其进行了分析以确保它是您的应用实际花费时间的地方?
  • 最快的可能是vDSP_vflt16其次是vDSP_vsdiv

标签: c++ c audio core-audio


【解决方案1】:

简单:

std::vector<int16_t> PCM = foo();
std::vector<float> audio(begin(PCM), end(PCM));

您可以期望这是 1000 倍实时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多