Tslib解析
Author:Jiujin.hong
转载请说明出处:http://blog.csdn.net/hongjiujing or www.linuxforum.net 嵌入式linux版块
tslib背景:
在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。
Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。
tslib插件:
pthres 为Tslib 提供的触摸屏灵敏度门槛插件;variance 为Tslib 提供的触摸屏滤波算法插件;dejitter 为Tslib 提供的触摸屏去噪算法插件;linear 为Tslib 提供的触摸屏坐标变换插
件。
触摸屏驱动为与硬件直接接触部分,为上层的Tslib 提供最原始的设备坐标数据,并可以配置采样间隔、屏幕灵敏度等。采样间隔决定了单位时间内的采样数量,在其他参数不变的
情况下,采样间隔越小意味着单位时间内的采样数量越多,也就意味着采样越逼真、越不容易出现采样信息丢失如输入法书写时丢笔划的情况,但因为噪声的影响,采样间隔越小同时
也意味着显示出来的图形的效果越差。
Tslib 为触摸屏驱动和应用层之间的适配层,其从驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕
坐标。
tslib接口:
在tslib 中为应用层提供了2 个主要的接口ts_read()和ts_read_raw(),其中ts_read()为正常情况下的借口,ts_read_raw()为校准情况下的接口。
正常情况下,tslib 对驱动采样到的设备坐标进行处理的一般过程如下:
raw device --> variance --> dejitter --> linear --> application
module module module
校准情况下,tslib 对驱动采样到的数据进行处理的一般过程如下:
raw device--> Calibrate
由于各种相关期间的影响,在不同的硬件平台上,相关参数可能需要调整。以上参数的相互关系为:采样间隔越大,采样点越少,采样越失真,但因为信息量少,容易出现丢笔划
等丢失信息情况,但表现出来的图形效果将会越好;去噪算法跟采样间隔应密切互动,采样间隔越大,去噪约束应越小,反之采样间隔越小,去噪约束应越大。去抖算法为相对独立的
部分,去抖算法越复杂,带来的计算量将会变大,系统负载将会变重,但良好的去抖算法可以更好的去除抖动,在进行图形绘制时将会得到更好的效果;灵敏度和ts 门槛值为触摸屏的
灵敏指标,一般不需要进行变动,参考参考值即可。
过滤插件分析:
Variance:触摸屏滤波算法
问题:一些触摸屏取样非常粗略,因此,即使你持着笔不放,样本可能不同,有时会大幅增加。最坏的情况是由于采样的时候电噪声的干扰,可大大脱离现实笔的位置不同,这会导致鼠标光标移动“跳”起来,然后返回回来。
解决方法:延迟一个时隙采样数据。如果我们看到最后采样读出来的数据太多的不同,我们将其标示为“可疑”
Tslib主要滤波算法分析
最新推荐文章于 2020-04-21 18:02:37 发布
Tslib是一个用于触摸屏调试的开源程序,提供滤波、去抖、校准等功能。本文深入分析了Variance滤波算法和Dejitter去噪插件的工作原理,探讨了它们如何处理触摸屏的噪声和抖动问题,以提高触摸屏性能。
摘要由CSDN通过智能技术生成