[an error occurred while processing this directive]
|
Надо просто домножить этот коэффициент на какое-то число, зависящее от выбранных параметров квантователя. Например после квантования 16.15 надо домножить на 2^15 (32768), для квантования 16.12 - на 2^12 (4096) и т.п.
На асме это будет выглядеть просто командой умножения со знаком (или умножения со сложением). Только надо учитывать, что перемножение двух чисел с фиксированной точкой со знаком выглядит вот так:
(N1.M1) * (N2.M2) = ((N1+N2-1).(M1+M2)). Для примера - перемножаем два числа 16.15*16.15 получаем 31.30. Для того, что бы получить результат в том-же 16.15 надо сдвинуть 1 раз влево (для этого, кстати, есть биты управления умножителем). Получаем 31.30 << 1 => 32.31. Осталось взять старшие 16 бит: HI(32.31) => 16.15.
E-mail: info@telesys.ru