在 C/C+ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法?
Posted
技术标签:
【中文标题】在 C/C+ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法?【英文标题】:Optimal way to convert from 16-bit linear PCM audio to 32-bit floating point in C/C+? 【发布时间】:2014-02-26 21:17:54 【问题描述】:在 C 或 C++ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法是什么?
【问题讨论】:
最优在什么意义上?最有效的方法? 一次一个样本,优化它的意义不大。或者使用众多可用的音频支持库之一。 由于您似乎正在为 ios 和/或 MacOSX 进行开发,因此 Accelerate Framework 值得一看。 您是否对其进行了分析以确保它是您的应用实际花费时间的地方? 最快的可能是vDSP_vflt16
其次是vDSP_vsdiv
【参考方案1】:
简单:
std::vector<int16_t> PCM = foo();
std::vector<float> audio(begin(PCM), end(PCM));
您可以期望这是 1000 倍实时。
【讨论】:
以上是关于在 C/C+ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章