首页> 中国专利> 一种获取图像更新时垂直同步时间后的处理方法及装置

一种获取图像更新时垂直同步时间后的处理方法及装置

摘要

本发明公开了一种获取图像更新时垂直同步时间后的处理方法:当不启用垂直同步时,获取调用更新的系统时间t1;获取更新完成后的系统时间t2;当开启垂直同步时,获取某一次垂直同步信号到来时更新完成后的系统时间T1;根据t1、t2以及T1,计算垂直同步信号到来的系统时间T_sync1;根据屏幕刷新率计算两个相邻垂直同步信号的时间差T_diff;以T_sync1为基准,并根据T_diff,预先获得各个垂直同步信号到来的系统时间T_syncn;开启垂直同步时,获取每次调用更新的系统时间kn;根据kn以及T_syncn,预先获得每次更新时,调用更新的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;每次更新时,在Mn内,系统运行其他应用程序。

著录项

  • 公开/公告号CN101968728A

    专利类型发明专利

  • 公开/公告日2011-02-09

    原文格式PDF

  • 申请/专利权人 广东威创视讯科技股份有限公司;

    申请/专利号CN201010295244.9

  • 发明设计人 蔡才冠;

    申请日2010-09-27

  • 分类号G06F3/14(20060101);

  • 代理机构44224 广州华进联合专利商标代理有限公司;

  • 代理人王茹;曾旻辉

  • 地址 510663 广东省广州市广州高新技术产业开发区彩频路6号

  • 入库时间 2023-12-18 01:48:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-06-06

    授权

    授权

  • 2011-03-23

    实质审查的生效 IPC(主分类):G06F3/14 申请日:20100927

    实质审查的生效

  • 2011-02-09

    公开

    公开

说明书

技术领域

本发明涉及图像处理领域,尤其涉及一种获取图像更新时垂直同步时间后的处理方法及装置。

背景技术

计算机从显卡到显示器的一个简单图像显示的流程:计算机系统应用调用接口,显卡把图像数据写入显示缓冲区,而把显示缓冲区中的数据读取传输到显示器,显示器负责把数据显示于屏幕上。

系统把图像数据“写入”显卡显示缓冲区,显示器“读取”显示缓冲区的图像数据并显示。这两个步骤在没有任何限制的前提下,有可能发生两个步骤同时执行的情况,在某一时刻,显卡在完成第i帧图像“写入”缓冲区操作后,正在进行第i+1帧图像“写入”缓冲区操作时,显示器同步在执行从缓冲区读取操作,那么显示器读取的图像数据就是第i帧与第i+1帧的组合图像——即一部分是第i帧的图像,而剩下的部分是第i+1帧的图像。看起来就像图像撕裂成两部分一样。这种现象就是图像显示的“图像撕裂”现象。解决图形撕裂的一种通用方法是“垂直同步”。

当应用程序采用垂直同步方法来更新图像时,必须等到垂直同步信号才能往显示缓冲区写入图像数据,而显示安装指定的频率绘制刷新屏幕图像。垂直同步信号的频率与屏幕刷新频率相等,即两个垂直同步信号与两个屏幕绘制刷新间的时间差是相等的。而垂直同步信号与显示器绘制刷新图像间有一定的时间差,由于现代显卡的强劲绘图能力,所以该时间差足够显卡完成图像数据的写入工作,从而避免显卡与显示器两者同时操作显示缓冲区,进而解决了上述的图像更新时“画面撕裂”问题。

垂直同步技术是解决“画面撕裂”问题的有效手段,但由于没有相应的接口函数可以获取垂直同步信号的具体时间,如图1所示,图中粗虚线表示垂直同步信号到来,即显卡实际写缓冲区更新图像的时间;细虚线表示应用程序调用显示接口更新图像的时间。从上图可以看出,应用程序“调用更新”与显卡“实际更新”是有时间差的,而且在该时间差内,应用程序更新图像时只能被动阻塞等待,造成了系统资源的浪费。

发明内容

本发明公开了一种获取图像更新时垂直同步时间后的处理方法及装置,可以主动获取各垂直同步信号到来的系统时间,提高系统的利用率。

一种获取图像更新时垂直同步时间后的处理方法,其特征在于,包括步骤:

(1)当不启用垂直同步时,获取应用程序调用显示接口更新图像的系统时间t1;以及获取所述显示接口更新图像完成后的系统时间t2;

(2)当开启垂直同步时,获取某一次垂直同步信号到来时所述显示接口更新图像完成后的系统时间T1;

(3)根据所述t1、所述t2以及所述T1,计算所述垂直同步信号到来的系统时间T_sync1;

(4)根据屏幕刷新率计算两个相邻垂直同步信号的时间差T_diff;

(5)以所述T_sync1为基准,并根据所述T_diff,预先计算各个垂直同步信号到来的系统时间T_syncn;

(6)开启垂直同步时,获取每次应用程序调用显示接口更新图像的系统时间kn;根据所述kn以及所述T_syncn,预先计算每次更新时应用程序调用显示接口更新图像的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;

(7)每次更新时,在所述Mn内,系统运行其他应用程序。

本发明还公开了一种获取图像更新时垂直同步时间后的处理装置,其特征在于,包括:

获取模块,用于当不启用垂直同步时,获取应用程序调用显示接口更新图像的系统时间t1、所述显示接口更新图像完成后的系统时间t2以及当开启垂直同步时,获取某一次垂直同步信号到来时所述显示接口更新图像完成后的系统时间T1以及开启垂直同步时,获取每次应用程序调用显示接口更新图像的系统时间kn;

计算模块,用于计算两个相邻垂直同步信号的时间差T_diff、根据获取模块中获取的时间和所述T_diff来计算各垂直同步信号到来的系统时间T_syncn以及根据所述kn和所述T_syncn,预先计算每次更新时应用程序调用显示接口更新图像的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;

运行模块,用于在所述Mn内,运行其他应用程序。

本发明中通过获取到不开启垂直同步时,应用程序调用更新时的系统时间和更新完成时间,进而可计算出更新一帧固定图像内容所需的时间;再获取到开启垂直同步时的更新完成时间,并计算出两个相邻垂直同步信号时间的时间间隔,因各个垂直同步信号的系统时间成等差数列,由此可以计算出个垂直同步信号到来的系统时间;每次更新时,系统可以提前知道垂直同步信号到来的时间,进而根据调用更新的时间来计算调用更新与实际更新的时间差,利用这个时间差去运行其他应用程序,提高系统利用率。

附图说明

图1是一个垂直同步图像更新流程图;

图2是本发明方法的一个流程图;

图3是不启动垂直同步时的图像更新流程图;

图4是另一个垂直同步图像更新流程图;

图5是本发明的装置示意图。

具体实施方式

参考图2,本发明公开了一种获取图像更新时垂直同步时间后的处理方法,具体步骤如下:

201、当不启用垂直同步时,获取调用更新时间t1以及更新完成时间t2;

当不启用垂直同步时,获取应用程序调用显示接口更新图像的系统时间t1;以及获取显示接口更新图像完成后的系统时间t2;

202、当开启垂直同步时,获取某一次垂直同步信号到来时更新完成的时间T1;

当开启垂直同步时,获取某一次垂直同步信号到来时更新完成的时间T1;当开启垂直同步时,获取某一次垂直同步信号到来时显示接口更新图像完成后的系统时间T1;

203、根据t1、t2以及T1,计算垂直同步信号到来的系统时间T_sync1;

204、根据屏幕刷新率计算两个相邻垂直同步信号的时间差T_diff;

205、预先计算各个垂直同步信号到来的系统时间T_syncn;

以T_sync1为基准,并根据T_diff,预先计算各个垂直同步信号到来的系统时间T_syncn;

206、预先计算每次更新时应用程序调用显示接口更新图像的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;

开启垂直同步时,获取每次应用程序调用显示接口更新图像的系统时间kn;根据kn以及T_syncn,预先计算每次更新时应用程序调用显示接口更新图像的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;

207、运行其他应用程序。

每次更新时,在所述Mn内,系统运行其他应用程序。

本发明中通过获取到不开启垂直同步时,应用程序调用更新时的系统时间和更新完成时间,进而可计算出更新一帧固定图像内容所需的时间;再获取到开启垂直同步时的更新完成时间,并计算出两个相邻垂直同步信号时间的时间间隔,因各个垂直同步信号的系统时间成等差数列,由此可以计算出个垂直同步信号到来的系统时间,系统可以提前知道各垂直同步信号到来的时间,进而根据调用更新的时间来计算调用更新与实际更新的时间差,利用这个时间差去运行其他进程,提高系统利用率。

下面介绍本发明方法的一个实施例:

不开启垂直同步时,参考图3,获取应用程序调用显示接口更新图像的系统时间t1;因为不开启垂直同步时应用程序调用显示接口更新图像的系统时间与显卡实际开始更新的系统时间是同一时间,那么获取到该显示接口更新图像完成后的系统时间t2后;就可以计算出更新一帧固定图像内容所需的时间T0;T0=t2-t1;

参考图4,开启垂直同步的情况下,获取某一次垂直同步信号到来时该显示接口更新图像完成后的系统时间T1;

因为T1由2部分的时间组成:更新一帧固定图像内容所需的时间T0和垂直同步信号到来的时间T_sync1,那么T_sync1=T1-T0;

因为垂直同步信号的频率与屏幕的刷新频率Refresh相等,而Refresh是已知的,那么两个屏幕刷新时间间隔t4=1/Refresh,那么相邻两个垂直同步信号的时间间隔是T_diff=t4=1/Refresh;

因为每两个相邻垂直同步信号的时间间隔是相等的,即为T_diff=t4=1/Refresh;那么各个垂直同步信号到来的系统时间间成公差是T_diff的等差数列;

以该T_sync1时刻到来的垂直同步信号为第一个垂直同步信号,则第二个垂直同步信号到来的系统时间为T_sync2=T_sync1+T_diff=(T1-T0)+T_diff=[T1-(t2-t1)]+T_diff;第三个垂直同步信号到来的系统时间为T_sync3=T_sync2+T_diff=(T_sync1+T_diff)+T_diff={[T1-(t2-t1)]+T_diff}+T_diff=[T1-(t2-t1)]+2T_diff……第n个垂直同步信号到来的系统时间是T_syncn=T_sync1+(n-1)T_diff。

开启垂直同步时,获取每次应用程序调用显示接口更新图像的系统时间kn;根据kn以及T_syncn,预先计算每次更新时应用程序调用显示接口更新图像的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;每次更新时,在该Mn内,系统运行其他应用程序。

本发明中通过获取到不开启垂直同步时,应用程序调用更新时的系统时间和更新完成时间,进而可计算出更新一帧固定图像内容所需的时间;再获取到开启垂直同步时的更新完成时间,并计算出两个相邻垂直同步信号时间的时间间隔,因各个垂直同步信号的系统时间成等差数列,由此可以计算出个垂直同步信号到来的系统时间,系统可以提前知道各垂直同步信号到来的时间,进而根据调用更新的时间来计算调用更新与实际更新的时间差,利用这个时间差去运行其他进程,提高系统利用率。

图5是本发明的装置示意图,包括获取模块501、计算模块502和运行模块503;

其中,获取模块501,用于当不启用垂直同步时,获取应用程序调用显示接口更新图像的系统时间t1、显示接口更新图像完成后的系统时间t2以及当开启垂直同步时,获取某一次垂直同步信号到来时显示接口更新图像完成后的系统时间T1以及开启垂直同步时,获取每次应用程序调用显示接口更新图像的系统时间kn;

计算模块502,用于计算两个相邻垂直同步信号的时间差T_diff、根据获取模块中获取的时间和T_diff来计算各垂直同步信号到来的系统时间T_syncn以及根据kn和T_syncn,预先计算每次更新时应用程序调用显示接口更新图像的系统时间与垂直同步信号到来的系统时间之间的时间差Mn;

运行模块503,用于在Mn内,运行其他应用程序。

本发明中通过获取到不开启垂直同步时,应用程序调用更新时的系统时间和更新完成时间,进而可计算出更新一帧固定图像内容所需的时间;再获取到开启垂直同步时的更新完成时间,并计算出两个相邻垂直同步信号时间的时间间隔,因各个垂直同步信号的系统时间成等差数列,由此可以计算出个垂直同步信号到来的系统时间,系统可以提前知道各垂直同步信号到来的时间,进而根据调用更新的时间来计算调用更新与实际更新的时间差,利用这个时间差去运行其他进程,提高系统利用率。

以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号