这次主要讲的文献就是这篇“VLSI Architecture Design of Guided Filter for 30 Frames/s Full-HD Video”,本身讲的就是一个用TSMC90nm库为基础的ASIC实现,而且保证30帧/秒的视频流和1920x1080的分辨率。这要求了很高的实时性,高存储耗费和高带宽的软件方略无法做到这种要求。这篇文中大量使用了片上存储,不跨越总线,基本思路和之前的双边滤波器的文章非常相似。
1st stage:盒子滤波器(boxfilter)实现(文中称作integral image engine)
对于输入量p(引导图像),I(输入图像),运算过程中需要计算
计算原理和均值滤波相同,因为均值滤波属于一种权值相等的滤波器类型(卷积核内值全部相等),本身可以通过盒子滤波器进行简化,其思路就是直接计算所有以每个像素点为中心的窗口内的像素和(积分)
这种计算可以全部用盒子滤波器实现,盒子滤波器的一般做法是求取图中所有位置到其实点的积分和,这种方式有很多问题,在双边滤波器(二)中已经叙述过,文中使用的方法就是基于之前双边滤波器的改进方法(结合RUM、SBM、SOM),
整个积分计算就被整合成了如上图的两步,b中黄色框区域内的就是integration image engine输出到ocm(100bitx180,和2个双口寄存器组,每个90个字,100bit)中的结果,图像数据Is、Iq通过总线和I/O wrapper和总线从片外DRAM获取
ps:计算
的时候会多一个乘法器,输入16bit位宽原因是:2^8^2=2^16。
4个结果都计算出来,就完成了作者1st stage的部分
2nd Stage 卷积核系数计算(a,b)(coefficient kernel engine):
系数计算过程,作者对过程进行了推导简化
实现方法为(
13bit和12bit输出位宽是最后截位选择结果
3rd Stage:
同第一级一样,是两个integral engine组成,对ak和bk做区域积分 。
4th Stage:
对积分结果做归一化(