lvqcl
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору "Пока проблемы c 16bit -> float, звук портиться - надо смотреть причину ..." Теоретически мне лучше писать на том форуме, но лень регистрироваться ещё в одном месте... При выполнении "_mm_unpacklo_epi16(__tmpIn, __zero);" получается zero-extend, а надо бы sign-extend. Из-за этого отрицательные значения портятся. Наверно, можно сделать так (не тестировал): __tmpLo = _mm_unpacklo_epi16(__zero, __tmpIn); // in = pIn << 16 __tmpOutLo = _mm_cvtepi32_ps(__tmpLo); // out = in __tmpOutLo = _mm_mul_ps(__tmpOutLo, __32bitScalarDiv); // out = out / INT32_PEAK; | Всего записей: 1146 | Зарегистр. 03-02-2007 | Отправлено: 15:43 15-10-2016 | Исправлено: lvqcl, 16:15 15-10-2016 |
|