基于应用的触摸屏扫描方法、装置及触摸屏
技术领域
本发明涉及触摸屏扫描技术领域,尤其涉及一种基于应用的触摸屏扫描方法、扫描装置及触摸屏。
背景技术
触摸屏的应用越来越普及,手机、平板电脑(PAD)、手提电脑、台式电脑显示屏以及车载显示屏等大量采用触摸屏。触摸屏应用中对触摸点位置和触摸点点数的识别是通过首先将屏幕划分成若干个格元,再对每个格元按一定的顺序或方式进行扫描,识别出每个格元所在的位置是否被触摸,最后统计出被触摸的格元的总数的过程完成的。对所有格元扫描一遍叫做扫描一帧。现有的触摸屏控制集成电路每扫描一帧,对所有格元均要扫描一遍。因此,随着屏幕分辨率的提高、屏幕尺寸的增大和触摸反应速度要求的加快,要求单位时间内扫描的点数及扫描计算量大大增加,这不仅提高了芯片的复杂度和成本,同时也消耗更多的功率。例如,假如屏幕分辨率提高到原来的x% PPI (Points Per Inch, x > 100), 屏幕尺寸增大到原来的y% (y > 100), 反应速度加快到原来的z% (z > 100),则单位时间扫描量将增加到原来的(x%)2*(y%)2*(z%),计算量明显增加。
而实际上,并不是屏幕上所有格元均能对触摸有响应,对于某一应用程序,例如但不限于“画图板”、“媒体播放器”、“照片浏览器”、“互联网浏览器”、“文字编辑器”、“游戏”等等,可能只有屏幕最上方和最下方两行格元(可以是但不限于按钮及其选项,如“File”、“文件”、“帮助”、“help”等,见图中斜线阴影格元)以及中间的“链接(URL)”标签、堆叠窗口按钮区域或其他可能触摸区域等(图1中竖线阴影区)是对触摸有响应的,其他空白单元为非事件格元,即使触摸也没有事件(响应)发生。因此,对这些空白单元的扫描是无效的,造成了功率的浪费和效率的降低,严重影响触摸体感。
发明内容
针对上述问题,本发明利用一帧画面所包含的事件格元是稀疏的特点,提出一种基于应用的触摸屏扫描方法,周期性进行全帧扫描和针对事件格元的局部扫描,有效提高了扫描的效率。
本发明所述的基于应用的触摸屏扫描方法,包括如下步骤:
(1)由触摸屏驱动程序获取目前屏幕所显示的应用,读取该应用所对应的所有事件格元及各格元的触摸概率,并下传至触摸屏控制集成电路;
(2)触摸屏控制集成电路根据实时记录的格元触摸概率和下载到的事件格元触摸概率得到最新的事件格元触摸概率,然后对屏幕所有格元进行全帧扫描;
(3)将触摸概率相同的事件格元归为一个子集,共分成K个子集,并将扫描该子集的扫描序列称为与该子集对应的子序列;
(4)计算每个子集的子序列在整个扫描序列位置中所占用的位置数,公式为:Ci=α*(Pi*Li)*N*M,其中,α为扫描因子,Pi为该子集的触摸概率,Li为该子集所包含的事件格元数,i=1,2,…,K,N*M为屏幕格元总数;
(5)将每个子集的子序列作为整体,均匀分布在一个扫描周期的Di个位置上,Di=α*(Pi*Li)*N*M/Li,使得K个子集的子序列在一个扫描周期内均占用至少一个位置;
(6)重复步骤(1)-(5)周期性扫描。
本发明在扫描过程中,由触摸屏控制集成电路实时记录各格元的触摸概率,并上传至触摸屏驱动程序,由触摸屏驱动程序预先统计分析已知的应用对应的事件格元数量和被触摸的概率。触摸屏控制集成电路同时存储事件格元及最新的触摸概率。每进行W轮扫描(W为正整数,例如但不限于W=1,W=10,W=100,W=1000, W=10000等),触摸屏驱动程序获取屏幕显示的应用,将应用所包含的事件格元及其触摸概率下传至触摸屏控制集成电路。触摸屏控制集成电路将得到的事件格元触摸概率与实时记录的新的触摸概率相加,得到最新的事件格元触摸概率,然后按步骤(3)-(5)产生扫描序列。
另外,也可以为现有已知应用赋予一代码,当应用被打开时,触摸屏驱动程序下载代码到触摸屏控制集成电路,触摸屏控制集成电路根据代码对应出已打开的应用,并根据以前的存储记录(触摸屏控制集成电路能存储最近一小时内的事件格元及触摸概率)得到该应用的事件格元及其触摸概率,进而利用这些信息按照步骤(3)-(5)产生扫描序列。
步骤(6)中每进行下一轮周期扫描时,根据需要判断是否改变扫描因子α,取值范围为0 ≤ α≤1。扫描因子用于改变扫描周期,决定了扫描频率,扫描因子越小,扫描频率越低,越省电,但会导致触摸反应降低,扫描因子越大,触摸反应越快。α取0时,与传统扫描方法类似,每次扫描都扫描全帧格元,但扫描帧频只有传统扫描方法的一半;α取1时,扫描的格元数量与传统扫描方法相同,即与传统扫描方法消耗同样功率,但事件格元被最大限度扫描,有最快的反应速度。扫描因子对于所有应用可先取0.5,然后,若触摸频繁发生,可提高至0.5-1.0之间。据此,不同应用或时刻可采用不同扫描因子。
一种触摸屏扫描装置,采用上述扫描方法扫描触摸屏。
一种触摸屏,设有上述触摸屏扫描装置。
扫描序列以两个相邻的全帧扫描为周期,通过改变扫描因子,周期可变;每个扫描周期包含一个全帧扫描子序列和若干个与事件格元概率相关的子序列,事件格元概率大的子序列在一个扫描周期内可有多个,概率越大,相应的子序列越多,并均匀分布在一个周期内;每个事件格元子序列至少在一个扫描周期内出现一次。即在每次扫描所有格元后,多次扫描那些对触摸有响应的格元(事件格元),而不是再次扫描所有格元,触摸概率越大的事件格元,扫描到的次数越多,从而提高扫描的针对性和效率。由于绝大多数显示应用中,事件格元数远远低于总的格元数,在体感相同的条件下,本发明基于应用的格元扫描方法可以减少扫描量40%以上,或者在扫描量、屏幕分辨率和尺寸相同的情况下,可以加快反应速度5倍以上。假如全帧共有N个格元(N为正整数),在某一应用中,事件格元为10%N,在体感相同情况下,本发明的扫描量与其他方法扫描量之比为1.1N/2N,即,其他扫描量的55%,减少了45%;或者在扫描量均为2N的前提下,本发明可以扫描全帧一次,再扫描事件格元10次,大大提升触摸体感。
本发明通过改变屏幕扫描方法,在全帧扫描之后只针对对触摸有响应的格元进行扫描,减少了总扫描量,节省了扫描功率,而且事件格元的扫描次数大大增加,明显提升了触摸体感。
附图说明
图1是某应用的格元示意图;
图2是本发明的流程图。
具体实施方式
如图1所示,以某一应用为例,说明本发明的扫描过程及效果,将触摸屏划分为N*M个格元(N、M为正整数),具体扫描步骤如下:
(1)由触摸屏驱动程序获取目前屏幕所显示的应用,读取该应用所对应的所有事件格元及各格元的触摸概率,并下载至触摸屏控制集成电路中;
(2)触摸屏控制集成电路动态统计各格元的触摸概率,与下载到的事件格元概率相加得到最新的事件格元概率,然后对屏幕格元进行全帧扫描,扫描N*M所有格元;
(3)将所有事件格元按触摸概率分成K个子集,触摸概率相同的为一个子集,第I个子集中包含Li个触摸概率为Pi(i = 1,2,…,K )的事件格元;扫描该子集的扫描序列称为与该子集对应的子序列{Qi}。
(4)计算第I子集的子序列在N*M个扫描序列位置中所占用的位置数,公式为:Ci=α*(Pi*Li)*N*M,其中,α为扫描因子,取值范围为0 ≤ α≤1,Pi为该子集的触摸概率,Li为该子集所包含的事件格元数;
(5)将第I子集的子序列{Qi}作为整体,均匀分布在一个扫描周期的Di个位置上,Di=α*(Pi*Li)*N*M/Li;
(6)重复步骤(5),将K个子集的子序列均分布到扫描周期的相应位置,使得K个子集的子序列在一个扫描周期内均占用至少一个位置;这个过程完成了针对事件格元区域的多次扫描。
(7)判断是否需改变扫描因子,如需改变,则改变后返回步骤(1),如不需改变,则直接返回步骤(1),重复步骤(1)-(6)进行周期性扫描,每次都重新获取屏幕所显示内容,根据显示内容读取出对应的事件格元及其触摸概率,进行全帧扫描后再建立针对事件格元的扫描序列。
现有已知应用对应的事件格元及触摸概率是由触摸屏驱动程序预先统计分析的。触摸屏控制集成电路在操作过程中实时记录各格元的触摸概率,并上传到触摸屏驱动程序,同时存储最新的触摸概率。在进行扫描时,触摸屏驱动程序根据已打开的应用,从其内存中下载其对应的事件格元和触摸概率至触摸屏控制集成电路中,供其建立扫描序列用。若事先为现有已知应用赋予了代码,也可只下载已打开应用的代码到控制集成电路,控制集成电路根据存储记录对应出相应的事件格元及触摸概率。
作为一个例子,取N=20,M=10,α=0.5,P1=20/200,L1=5,P2=10/200,L2=5,P3=5/200,L3=10,
则得到的扫描序列如下所示:
{{F}{P1}{P1}{P2}{P1}{P1}{P2}{P1}{P1}{P2}{P3}{P1}{P1}{P2}{P1}{P1}{P2}{P3}{F}。。。},其中,{F}表示全帧扫描;{P1}表示扫描概率为P1的子集,在一个周期内取得十组位置,包含50个事件格元;{P2}表示扫描概率为P2的子集,在一个周期内取得五组位置,包含25个事件格元;{P3}表示扫描概率为P3的子集,在一个周期内取得两组位置,包含20个事件格元。
在上例中,其他的扫描方法每扫描400个格元每个格元扫描两次;本发明每扫描380个格元,P1概率格元扫描11次,P2概率格元扫描6次,P3概率格元扫描3次。不仅减少了总扫描量,节省了扫描功率,而且事件格元的扫描次数大大增加,明显提升了触摸体感。