在单个音频通道上操作,无需解交错

时间:2014-01-01 18:19:32

标签: c++ iterator audio-processing

我正在处理存储在矢量中的波形。音频通道是交错的。我必须单独处理通道,然后以交错(再次)提供最终结果。在每个通道上运行的函数接受由随机访问迭代器分隔的范围,并假设范围是连续的。

由于这些操作必须实时(或者某种程度)执行,我想假设解交织阶段:换句话说,我正在寻找一种方法来使单通道功能在特定的情况下运行通道没有实际解交换任何东西而不影响它们的当前代码,这些代码假定迭代器的++(或--)运算符移动到下一个(或前一个)元素。

你有什么建议?我目前正在考虑编写自定义随机访问迭代器。还有其他可行的解决方案吗?我宁愿不使用提升。

1 个答案:

答案 0 :(得分:1)

您应该提供一个自定义迭代器,它实现operator++()operator--() w / r / t保持交错的通道数。你可以不使用boost来做到这一点。

但是,您还必须调整vector类以使用新的迭代器。因此,当前代码必须通过使用新的矢量类来改变。