ackyee 发表于 2022-4-29 10:26:17

一个FPGA的图像饱和度运算把自己绕晕了,有没有思路借鉴下

本帖最后由 ackyee 于 2022-4-29 10:27 编辑

如题,请教大牛们,   像饱和度运算这种 需要图像归一化的代码,在FPGA里 都是放大256 或者512或者1024 去参与运算最后再缩小吗?

现在乘法除法, 有时候扩大了1024 ,还得扩大1024,最后自己绕晕了   , 有没有定点小数的运算方法,或者别的什么新大陆 的方法 , 我感觉我的思路可能受限了,需要大牛们指教

下面公式是没有任何修改的饱和度 C语言算法,一开始放大对应倍数还好, 做到1/alpha 这一步后面,就一路晕了



                        delta = (max - min) / 255;
                        if (delta == 0)
                                continue;
                        value = (max + min) / 255;
                        L = value / 2;
                        if (L < 0.5)
                                S = delta / value;
                        else
                                S = delta / (2 - value);
                        if (Increment >= 0)
                        {
                                if ((Increment + S) >= 1)
                                        alpha = S;
                                else
                                        alpha = 1 - Increment;
                                alpha = 1 / alpha - 1;
                                R=( r + (r - L * 255) * alpha);
                                G=(g + (g - L * 255) * alpha);
                                B=(b + (b - L * 255) * alpha);
                        }
                        else
                        {
                                alpha = Increment;
                                R=(L * 255 + (r - L * 255) * (1 + alpha));
                                G=(L * 255 + (g - L * 255) * (1 + alpha));
                                B=(L * 255 + (b - L * 255) * (1 + alpha));
                        }

wye11083 发表于 2022-4-29 11:49:06

你按定点小数去处理数据就不晕了。一般是先左移乘完右移回来。

ackyee 发表于 2022-4-29 12:31:28

wye11083 发表于 2022-4-29 11:49
你按定点小数去处理数据就不晕了。一般是先左移乘完右移回来。
(引用自2楼)

中间结果都是0到1之间的小数,没进行最后一步之前,都无法移回来,忧伤?
页: [1]
查看完整版本: 一个FPGA的图像饱和度运算把自己绕晕了,有没有思路借鉴下