Вы можете сделать это, используя целочисленное умножение.
Если у вас есть FPGA с 18-битными умножителями, вы умножаете и затем используете верхние биты.
Например: 0,299, R = 20 =>
0.299 * 2 ^ 17 = 39191
39191 * 20, затем используйте верхние биты результата (сверху вниз до 17), которые равны делению на 2 ^ 17
, так как вашЯ использую RGB для YUV. Думаю, это критично ко времени, поэтому приведенный выше пример - лучший выбор, в противном случае я обычно использую Instant SoC для реализации алгоритмов с плавающей запятой, которые не критичны по времени.