一种避免图像显示撕裂的方法和终端设备与流程

文档序号:18468991发布日期:2019-08-20 20:03阅读:190来源:国知局
一种避免图像显示撕裂的方法和终端设备与流程

本发明涉及显示技术领域,具体涉及一种避免图像显示撕裂的方法和终端设备。



背景技术:

在显示参数配置多的嵌入式实时设备上,在一个垂直消隐区的时间段内有可能无法及时完成所有配置。例如图形用户界面,每时每刻每个图层的大小、颜色数据都在变化。用户在任意时间更新显示寄存器时,是暂时先缓存在影子寄存器,至于影子寄存器什么时候更新到当前生效的显示寄存器,目前有两种更新模式,分别为自动和手动模式。首先对自动模式做说明:在垂直消隐区结束前一小段时间,显示硬件自动触发影子寄存器更新到当前生效的显示寄存器;其次是手动模式(需软件程序操作寄存器更新),使用方式是在垂直消隐区中断服务子程序内,只要操作更新影子寄存器的生效位,显示控制器则获取最新的显示参数,那么显示器就会立刻显示新的图像帧数据,具体如图1所示。

传统的显示参数更新在手动模式工作下,是在任意时间的垂直消隐中断区间更新影子寄存器到当前生效的显示寄存器,其操作并不保证用户的显示参数是否已更新完毕,因此会存在一定的概率导致新的图像帧显示参数不对。例如此时用户请求的显示参数只更新了一半,垂直消隐区中断服务便产生使能更新影子寄存器到当前生效的显示寄存器,则会导致新的图像帧显示参数不对,造成图像显示撕裂的现象,显示效果比较差。



技术实现要素:

为了解决手动模式更新的图像显示撕裂问题,本发明实施例提供了一种避免图像显示撕裂的方法,可以避免图像显示撕裂问题的发生,提高了显示效果及用户体验。

为实现上述目的,本发明的技术方案是:

一种避免图像显示撕裂的方法,对请求更新操作指令与垂直消隐区中断服务更新影子寄存器到当前生效的显示寄存器两个独立行为上做互斥处理。

本发明与现有技术相比,其有益效果在于:

在显示参数更新的手动模式下,对用户请求与垂直消隐区中断服务更新影子寄存器到当前生效的显示寄存器两个独立行为做互斥处理,对系统性能影响较小,保证了用户请求与垂直消隐区中断的并发安全,避免图像显示撕裂问题的发生,提高了图像显示效果及用户体验。

附图说明

图1为一种图像显示参数更新的示意图;

图2为用户请求更新影子寄存器的流程图;

图3为垂直消隐区中断服务更新影子寄存器到当前生效显示寄存器的流程图;

图4为本发明实施例提供的避免图像显示撕裂的终端设备的示意图。

具体实施方式

下面结合附图和具体实施方式对本发明的内容做进一步详细说明。

本申请所述的“垂直消隐区中断服务”具体是指:一幅完整的图像扫描信号,由水平消隐间隔分开的行信号序列构成,称为一帧。扫描点扫描完一帧后,要从图像的右下角返回到图像的左上角,开始新一帧的扫描,这一时间间隔,叫做垂直消隐,硬件对此信号做了中断的产生行为,所以当垂直消隐到来时就会产生硬件中断,从软件角度看,就是进入垂直消隐区中断服务来执行特定的任务。

实施例一:

针对传统的显示参数更新在手动模式工作下所存在图像显示撕裂的问题,本实施例提供了一种避免图像显示撕裂的方法,主要包括:首先为启动显示硬件初始化,初始化用户请求与垂直消隐区中断服务的互斥锁(以下简称互斥锁)以及更新影子寄存器标志和更新当前有效显示寄存器标志,配置显示参数更新的方式为手动模式进行图像显示,第一,在垂直消隐区中断服务执行期间,其它地方不能有操作显示硬件寄存器的地方,否则会存在显示撕裂的风险概率。第二,在非垂直消隐区中断服务执行期间,在操作显示硬件寄存器的时候,要保证垂直消隐区中断服务不能更新影子寄存器到当前生效的显示寄存器上。也就是说,通过采用了双互斥处理算法,在显示参数更新的手动模式下,对用户请求与垂直消隐区中断服务更新影子寄存器到当前生效的显示寄存器两个独立行为上做互斥处理,对系统性能影响较小,保证了用户请求与垂直消隐区中断的并发安全,避免图像显示撕裂问题的发生,提高了图像显示效果及用户体验。

具体地,参阅图2所示,用户请求更新影子寄存器的流程包括如下步骤:

201,用户请求更新一帧图像数据,在用户更新新图像帧的所有显示参数完毕之前,要保证垂直消隐区中断服务不能更新影子寄存器到当前生效的显示寄存器。用户能够更新新图像帧的所有显示参数的前期条件就是要获取互斥锁,否则一直循环直到获取互斥锁之后,并且更新影子寄存器标志满足条件才能更新新图像帧的所有显示参数;

202,用户请求获取到互斥锁后,但是这个时候垂直消隐区中断服务可能还在更新影子寄存器到当前生效的显示寄存器过程中,所以还需要再加一个条件判断:垂直消隐区中断服务更新影子寄存器到当前生效的显示寄存器是否完成,如没有完成,则一直循环判断直到完成为止,如已完成,则进入下一环节;

203,以上完成后,可把更新影子寄存器标志加1操作,表示用户后面要更新影子寄存器,垂直消隐区中断服务不能更新影子寄存器到当前生效的显示寄存器上了;

204,到当前这一步就可以释放互斥锁,减小锁的控制范围,避免互斥锁的颗粒度过大;由于释放了互斥锁,垂直消隐区中断服务可获取互斥锁,但由于更新影子寄存器标志有加1操作,也就是说大于0,所以垂直消隐区中断服务依然更新不了影子寄存器到当前生效的显示寄存器。

205,此时可以安全的更新影子寄存器,即使垂直消隐区中断产生了,因为更新影子寄存器标志大于0,所以也不会更新影子寄存器到当前生效的显示寄存器;

206,以上完成后,把更新影子寄存器标志减1操作,表示用户已经完成更新影子寄存器的操作,垂直消隐区中断服务此时可以获取互斥锁并更新影子寄存器到当前生效的显示寄存器。也就是说,可以进入垂直消隐区中断服务执行期间。

具体地,参阅图3所示,进入垂直消隐区中断服务执行期间,则进入如下步骤:

301,垂直消隐区中断服务可获取互斥锁,则进入下一环节;否则丢弃本次中断服务处理;

302,判断用户请求更新新的显示帧参数是否完成,如已完成,也就是说更新影子寄存器标志等于0,则进入下一环节;否则丢弃本次中断服务处理;

303,以上完成后,把更新当前生效的显示寄存器标志加1操作,表示互斥锁目前被垂直消隐区中断服务暂时占有,用户请求暂时更新不了影子寄存器。在垂直消隐区中断服务更新影子寄存器到当前生效的显示寄存器之前,保证了用户请求更新图像帧的所有显示参数已完成;

304,到当前这一步就可以释放互斥锁,减小锁的控制范围,避免互斥锁的颗粒度过大。因为更新当前生效的显示寄存器标志大于1,所以用户请求也是更新不了影子寄存器;

305,此时可以安全的更新影子寄存器到当前生效的显示寄存器,即使此时有用户请求,也是更新不了影子寄存器,也就避免产生图像显示撕裂的问题;

306,以上完成后,把更新当前生效的显示寄存器标志减1操作,表示垂直消隐区中断服务已经完成更新影子寄存器到当前生效的显示寄存器的操作,用户如果此时有新显示帧参数更新的请求,其是可以获取互斥锁并更新影子寄存器,以致不会对垂直消隐区中断服务更新影子寄存器到当前生效的显示寄存器的操作造成影响,也就是避免了产生图像显示撕裂的问题。

实施例二

对应于上文实施例一所述的避免图像显示撕裂的方法,图4示出了本发明实施例提供的避免图像显示撕裂程序的运行环境示意图。为了便于说明,仅示出了与本实施例相关的部分。

图4是本发明实施例提供的避免图像显示撕裂的终端设备的示意图。如图4所示,本实施例的避免图像显示撕裂的终端设备40包括:处理器400、存储器401以及存储在所述存储器401中并可在所述处理器400上运行的计算机程序402,例如避免图像显示撕裂程序。所述处理器400执行所述计算机程序402时实现上述实施例一中的步骤,例如图2所示的步骤201至206以及图3所示的步骤301-306。

示例性的,所述计算机程序402可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器401中,并由所述处理器400执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序402在所述避免图像显示撕裂的终端设备40中的执行过程。

所述避免图像显示撕裂的终端设备40可包括,但不仅限于,处理器400、存储器401。本领域技术人员可以理解,图4仅仅是避免图像显示撕裂的终端设备40的示例,并不构成对避免图像显示撕裂的终端设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述避免图像显示撕裂的终端设备40还可以包括输入输出设备、网络接入设备、总线等。

所称处理器400可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器401可以是所述避免图像显示撕裂的终端设备40的内部存储单元,例如避免图像显示撕裂的终端设备40的硬盘或内存。所述存储器301也可以是所述避免图像显示撕裂的终端设备40的外部存储设备,例如所述避免图像显示撕裂的终端设备40上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器401还可以既包括所述避免图像显示撕裂的终端设备40的内部存储单元也包括外部存储设备。所述存储器401用于存储所述计算机程序402以及所述避免图像显示撕裂的终端设备30所需的其他程序和数据。所述存储器401还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1