摘要:
第一章: 1.混乱的代码难以维护,导致生产力越来越低。糟糕的代码引发混乱,越改越烂。 2.整洁的代码:优雅,高效,少依赖,性能优,命名规范,清晰尽量少的api 3.破窗理论:窗户破损的建筑让人觉得无人照管,于是别人也无心看管,任其继续破损,最终自己也参加破坏活动。 第二章 有意义的命名 1.使用可搜 阅读全文
摘要:
5、优化程序性能 1.存储器别名(memory aliasing),妨碍优化。__restrict关键字 2.消除不必要的存储器引用,使用临时变量。 6、存储器层次结构 1.寄存器0周期,cache 1-10,主存50-100. 冷不命中cold miss和冲突不命中 conflict miss。 阅读全文
摘要:
1.立体视觉基础 深度定义为物体间的距离 视差定义为同一点在左图(reference image) 和右图( target image) 中的x坐标差。 根据左图中每个点的视差得到的灰度图称为视差图。 那么根据三角几何关系可以由视差(xR - xT ) 计算出深度.b=camera基线距离,f=焦距 阅读全文
摘要:
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of different C++ constructs 栈的速度快是因为,总是反复访问同一段地址,如果没有大的数组,肯定实在 阅读全文
摘要:
当是正数时,没有问题。 但当是负数时,对于不需要舍入刚好整除的情况,结果是正确的。但是当需要舍入时,移位导致结果向下舍入,而不是像规则需要的那样向零舍入。例如,- 7/2应该得到- 3,而不是- 4。 利用规律:对于整数x和任意y > 0,有 「x/y = (x + y- 1)/y」。「 向上舍入 阅读全文
摘要:
1.大部分算术运算和逻辑运算指令都是单周期的,例如加法、减法、位级运算和移位 2.乘法指令根据操作数位数的不同,从2-5个周期都有可能。 3.无条件跳转语句和跳转语句成功跳转,需要重新填充流水线,因此至少需要3个周期 4.跳过条件不满足的指令只需要花1个周期 (以上周期应该是指各指令包含的机器周期数 阅读全文
摘要:
C中嵌入汇编PLD指令:asm("PLD [%0,#128]": :"r" (psrc) ); copy自官方文档: 4.2.7. PLD、PLDW 和 PLI 预载数据和预载指令。 处理器可向内存系统发送信号,告诉内存系统在不久的将来可能要从某个地址加载数据或指令。 语法 PLtype{cond} 阅读全文
摘要:
定义了一个宏定义形式的"函数": #define SUM8(YY)\ {\ int Y = YY>>2;\ ...\ } 然后使用的时候,传入了一个同名的变量Y: int Y = Ywin[x]; SUM8(Y) 本意是想展开成int Y = Ywin[x]>>2; 但实际上#define只是把参数 阅读全文
摘要:
1.新建环境变量 OPENCV = D:\Programss\opencv\build 2.%OPENCV%\x86\vc12\bin;加入Path环境变量 3.导入 VS属性表文件 cv2413.props 到工程,避免重复配置lib vs2015中导入属性文件:在菜单栏中选择 “视图”、 “属性 阅读全文
摘要:
1 void Analysis::compressIntraCU(const CUData& parentCTU, const CUGeom& cuGeom, uint32_t& zOrder) 2 { 3 uint32_t depth = cuGeom.depth;//geometric CU几何结构 4 ModeDepth& md = m_modeDepth... 阅读全文