关于拉普拉斯金字塔算法硬件实现的一些想法

文章目录

从算法的角度,拉普拉斯的计算需要两张相邻分辨率的高斯图像(3840x2160,1920x1080),拉普拉斯对低分辨率的图像做上采样、填充之后卷积,然后和高分辨率的图像相减,得到残差(边缘纹理)。

上采样的过程,是行列偶数倍插值“0”的过程,因为低分辨率的图像中灰度值为高分辨率图像的1/4,因此对上采样后的值要x4。(很重要)

填充的圈数和卷积核有关,卷积核3x3,填充1圈0。5x5就填充2圈0。

卷积核是高斯核,权重为1,4,…36,…4,1。高斯的权重本来是0.01左右的小数,将其放大256倍,量化投射到8bit的范围,因此这个卷积计算完毕后,需要做归一化处理,即对结果除以256。

上述x4,/256的过程可以等价为>>6。即对结果进行右移(截掉低位),然后使用uchar对结果进行强制转换,截掉高位,最后得到8bit的像素(Y通道8bit)。很多计算,如果不考虑中间bit的浪费,其实可以最后再截位,从而忽略中间的定点(根据产生数据的实际范围来决定截取哪些位,这是一个经验方法,和上述理论有相通也有违背,因为每张图的灰度存在范围是不同的,会影响截位的效果)

定点是一个比较有意思的话题,这里暂且不提。

5x5的卷积核可以拆分为4个3x3的卷积核,因为上采样的过程填充的0并没有参与计算,因此可以优化。具体方法不提,画图就明白了,分行奇偶数,列奇偶数讨论。

另外两幅图像相减的时候,求得是残差(像素之间的差距),因为应该取差的绝对值。对于8bit的像素,在rtl中都是无符号数计算,不取绝对值,则1-255=2(而非254),119-120=256(而非1)。在计算机里,-255=+1(补码计算)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值