【发布时间】:2015-09-23 07:47:42
【问题描述】:
我正在编写一些音频处理软件,我需要知道如何使用 SSE2 双精度指令进行饱和运算。我的值需要在 -1 和 1 之间进行标准化。是否有一种巧妙的方法可以使用 SSE2 内在函数来做到这一点,或者我是否需要 2 组 if/else 语句(每个值一个)?
【问题讨论】:
-
你为什么还要对音频使用双精度?无论如何,在您最终转换回您正在使用的任何音频格式之前,您实际上并不需要饱和,此时您可以使用饱和包指令(如果它是整数格式)或最大/最小指令,如果你想这样做明确的。
-
那么音频格式可以被处理为 int32、int64、float32 和 float64。我现在正好在做 float64 部分。
-
OK - 只需使用 max/min 操作 - 请参阅下面的答案...
标签: c sse simd intrinsics sse2