现在位置: 首页

__attribute__ 之weak,alias属性

2018年05月30日 技术文章  ⁄ 共 1101字 __attribute__ 之weak,alias属性已关闭评论
Weak Alias 是 gcc 扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段 gcc 手册里面的话解释下函数属性是干啥的 In GNU C, you declare certain things about functions called in your program which help the compiler optimize function calls and check your code more carefully. 先上代码,看看 weak alias 怎么写。 第一个文件 dummy.c 内容 int __foo...
阅读全文

几种图像边缘检测算子的比较(转)

2018年05月27日 技术文章  ⁄ 共 3323字 几种图像边缘检测算子的比较(转)已关闭评论
不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外,成像过程中的光照和噪声也是不可...
阅读全文

Canny边缘检测算法详解(转)

2018年05月25日 技术文章  ⁄ 共 873字 Canny边缘检测算法详解(转)已关闭评论
1.Canny边缘检测基本原理 (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。 (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。 (3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。 2.Canny边缘检测算法: step1:用高斯滤波器平滑图象; step2:用一阶偏导的有限差分来计算梯度的幅值和方向; step3:对梯度幅值进行非极大值抑制; step4:用...
阅读全文

RAM-Based Shift Register的理解

2018年05月22日 FPGA开发  ⁄ 共 496字 RAM-Based Shift Register的理解已关闭评论
举例说明,datasheet中给出了如下图所示例子: Shift Register 其中a抽头数为1,输入为8位,输出也为8位; b抽头数为4,输入为8位,因为有4个抽头,所以输出最多为4 X 8bit = 32位,同时也可以输出8位(与输入位宽一样) 如下图,配置起来非常灵活: shift_ram_1 shift_ram_2 总结概括起来:(基于上边的例子)基于RAM的移位寄存器可以输出shiftout[7..0],跟输入位宽一样。也可以输出taps[31:0],抽头就是输出位置,可以并行的...
阅读全文

BT656数据解码时序分析小记

2018年05月21日 FPGA开发  ⁄ 共 367字 BT656数据解码时序分析小记已关闭评论
项目需要解码BT656数据做视频处理,使用fpga实现,写了个testbench模拟测试解码模块的功能,如下图所示(注意静态时序分析): data_flow 上图为整体数据流,在外界pix_clk的推动下,数据源源不断的被处理。 下图为寻找SAV标致并使能数据有效信号: sav 下图为寻找EAV标致并去使能数据有效:信号: eav
阅读全文

Vivado 时序 – 什么是 TNS、WNS、THS 和 WHS

2018年05月18日 FPGA开发  ⁄ 共 312字 Vivado 时序 – 什么是 TNS、WNS、THS 和 WHS已关闭评论
编译完一个工程,会在Design Runs界面看到如下图内容: vivado 只知道这些数值和时序有关,不知道叫啥名,查看光放资料了解到各自的名字: WNS 代表最差负时序裕量 (Worst Negative Slack) TNS 代表总的负时序裕量 (Total Negative Slack),也就是负时序裕量路径之和。 WHS 代表最差保持时序裕量 (Worst Hold Slack) THS 代表总的保持时序裕量 (Total Hold Slack),也就是负保持时序裕量路径之和。   这些值告诉您的设计与...
阅读全文
×