Cubic 6点插值公式:
示意图:
原始插值点计算公式:
从硬件实现角度考虑,如果采用Cubic6点精确插值算法放大,插值点在原始图像中两点之间的位置可能是任意的,这样势必需要一个乘法器一直来算这个位置,计算量很大。如果把捅值点位于原始图像中两A之间的位置固定在0,1/8,2/8,3/8,4/8,5/8,6/8,7/8 8个位置(即当实际位置不在这8个点1/_时,也把它移到这8个点上),那么滤波系数就是8组固定值。只需要一个大小为6×8的LUT(查找表)就可以存储了。实际插值时,根据插值点的实际位置调用查找表中的对应系数,通过简单的乘加运算就可以完成缩放了。Cubic6点捅值的硬件实现得到大幅度简化。
当然也可以考虑量化为16个点或32个点以提高精度,但实验证实8点精度已经可以得到良好的效果了。
计算后,8组滤波参数如下:
确定X所处的区间之后,选择对应的滤波器参数,代入下式:
分级算法思想处理结果虽然有影响,但是大大简化了计算量。对于硬件处理来说是一种不错的选择。
欢迎关注我的公众号,两只摩羯程序员的日常更新~~