VEC-C滑窗
来源:互联网 发布:sql创建两个主键约束 编辑:程序博客网 时间:2024/06/05 22:42
例
/*因为vacc0.i16所以滑窗长度为16,每次循环做16次步长为4的滑窗,1次移1位*/vacc0 = (uint16) vswmpy5(v0, v0, v_coeff, (uint)0);//对v0滑窗,v0后面那个v0只是凑长度,/*将滑窗的结果向量与向量vacc0做内和*d[20:16]=4表示coeff偏移4位*accumulate相当于vacc1 = (uint16) vswmpy5(v1, v1, v_coeff, (uint)4<<16);vacc0=vintrasum(vacc1,vacc0);*/vacc0 = vswmac5(accumulate, v1, v1, v_coeff, (uint)4<<16, vacc0);/*psl表示结果向量使用逻辑移位,也就是每个元素除以2^n,忽略符号*d[5:0]=4表示shift=4,element要除以2^4*d[20:16]=8表示coeff偏移8位*/v3 = (ushort16) vswmac5(psl, v2, v2, v_coeff, (uint)4|8<<16, vacc0);//以上3步就一次性做了16位的3X3高斯滤波vst(sat, v3, (uchar16*)p_out_u8, vprMask);注意:vswmac3余vswmac5的区别vswmac3出来的结果vacc的每一个元素都是滑窗2步的值加上vacc0每个元素的值。vswmac5步长为4这个很拗口,要好好理解。例如:vacc0=(uint8)vswmac3(v0,v1,coeff,0);vacc1=(uint8)vswmac3(v0,v1,coeff,SW_CONFIG(0,0,2,2,0,0), vacc0);出来的结果是:vacc0[0]=0*a+1*b vacc1[0]=2*c+3*d+vacc0[0]=0*a+1*b+2*c+3*dvacc0[1]=1*a+2*b vacc1[1]=3*c+4*d+vacc0[1]=1*a+2*b+3*c+4*d......所以这2步的操作与vacc1=(uint8)vswmac5(v0,v1,coeff,0);这一步操作得到的结果是一样的。这样做就可以组合成任意步长的滑窗,比如9X9的高斯滤波,就可以4+4+1或者2+2+2+2+1进一步思考高斯9X9滤波矢量化处理解决方案:
阅读全文
0 0
- VEC-C滑窗
- VEC-C基础
- VEC-C直方图
- vec
- 看懂第一个VEC-C 程序
- VEC-C之直方图使用案例源码
- VEC-C 进阶 指令解析及寻址模式
- VEC-C之VPLD的rel与abslute两种寻址模式理解源码
- VEC-C之滑窗应用案例-3X3高斯滤波器
- if( vec.end() == vec.erase( vec.begin() , vec.end() ) )不一定为真!
- 縮寫(uchar、ushort、Vec)
- Rust: rev()、Vec<>、其它
- Cocos2d-x中的Vec类
- const vector<int> vec(10)
- Rust: Vec用法及其它
- OpenCV Tutorial: 縮寫(uchar、ushort、Vec)
- hdu 1106 排序(auto遍历)(vec用法)
- opencv中Matx类和Vec类
- 软硬件之间的桥梁-指令集
- python pandas 基础知识
- 文字省略样式
- HBase数据快速导入之ImportTsv&Bulkload
- C++ 堆内存管理
- VEC-C滑窗
- Humble Numbers
- Mac下安装opencv-python
- numpy array append or concatenate
- halcon手册——匹配matching
- chattr 命令
- android textview小技巧
- Python
- SSH ftp 上传下载