CN107203960B - 图像渲染方法及装置 - Google Patents
图像渲染方法及装置 Download PDFInfo
- Publication number
- CN107203960B CN107203960B CN201610512971.3A CN201610512971A CN107203960B CN 107203960 B CN107203960 B CN 107203960B CN 201610512971 A CN201610512971 A CN 201610512971A CN 107203960 B CN107203960 B CN 107203960B
- Authority
- CN
- China
- Prior art keywords
- rendering
- image frame
- timestamp
- current image
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种图像渲染方法及装置,属于图像处理领域。所述方法包括:通过主线程接收屏幕刷新通知,所述屏幕刷新通知携带有第一时间戳;通过所述主线程将所述屏幕刷新通知传递至位于用户界面UI中的视图所关注的渲染对象中;通过所述子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳;在所述第一时间戳晚于或者等于所述第二时间戳时,对所述当前图像帧的下一图像帧进行渲染。本发明解决了现有技术中预先解码所有图像帧会产生较大的延迟的问题;达到了在第一时间戳晚于或等于第二时间戳时,才会对下一图像帧继续进行渲染,主线程不会产生较大的延迟,减少了不必要的渲染次数,提高了UI的显示速度。
Description
技术领域
本发明实施例涉及图像处理领域,特别涉及一种图像渲染方法及装置。
背景技术
GIF(Graphics Interchange Format,图像互换格式)图像是一种动态图像,GIF图像可由多帧图像组成。在定时器控制下,GIF图像通过依次显示各帧图像而产生动画效果。
由于很多动画表情都是GIF图像,即时通讯程序需要支持GIF图像的渲染。现有技术中的一种适用于IOS(苹果移动操作系统)的图像渲染方法,包括:在视图中存在GIF图像时,采用操作系统提供的UIImageView的方法,预先解码出GIF图像中的所有帧图像,并将解码得到的各帧图像保存在数组中;设置统一的间隔时间t,由UIImageView自动按照该统一的间隔时间t,对各帧图像进行渲染展示。
发明人在实现本发明实施例的过程中,发现现有技术至少存在如下问题:
一些GIF图像中可能包括上百帧图像,预先将GIF图像中的所有图像帧都进行解码,会产生较大的延迟。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种图像渲染方法及装置。所述技术方案如下:
第一方面,提供了一种图像渲染方法,所述方法包括:
通过主线程接收屏幕刷新通知,所述屏幕刷新通知携带有第一时间戳;
通过所述主线程将所述屏幕刷新通知传递至位于用户界面UI中的视图所关注的渲染对象中,所述渲染对象是与GIF图像中的当前图像帧对应的对象;
通过所述子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳;
在所述第一时间戳晚于或者等于所述第二时间戳时,对所述当前图像帧的下一图像帧进行渲染。
在可选的实施例中,所述对所述当前图像帧进行渲染之前,还包括:
为画布分配内存空间,所述画布用于使用同一内存空间对所述GIF图像中的各个图像帧进行逐帧渲染;
所述对所述当前图像帧的下一图像帧进行渲染,包括:
解码所述下一图像帧的图像数据,作为新的当前图像帧的图像数据;
通过所述子线程在所述画布上对所述当前图像帧的图形数据进行渲染。
在可选的实施例中,所述通过所述子线程在所述画布上对所述当前图像帧的图形数据进行渲染之后,还包括:
通过所述主线程监听所述当前图像帧的渲染状态;
当所述当前图像帧的渲染状态是渲染完毕时,通过所述子线程将所述当前图像帧的渲染结果传入所述主线程。
在可选的实施例中,所述通过所述子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳之后,还包括:
在所述第一时间戳早于所述第二时间戳时,对所述当前图像帧的下一图像帧暂不渲染。
在可选的实施例中,所述通过主线程接收屏幕刷新通知之前,还包括:
通过所述主线程加载与所述GIF图像对应的所述视图,并创建所述渲染对象。
根据本发明实施例的第二方面,提供了一种图像渲染装置,所述装置包括:
通知模块,用于通过主线程接收屏幕刷新通知,所述屏幕刷新通知携带有第一时间戳;
传递模板,用于通过所述主线程将所述屏幕刷新通知传递至位于用户界面UI中的视图所关注的渲染对象中,所述渲染对象是与GIF图像中的当前图像帧对应的对象;
检测模块,用于通过所述子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳;
渲染模块,用于在所述第一时间戳晚于或者等于所述第二时间戳时,对所述当前图像帧的下一图像帧进行渲染。
在可选的实施例中,所述装置,还包括:
分配模块,用于为画布分配内存空间,所述画布用于使用同一内存空间对所述GIF图像中的各个图像帧进行逐帧渲染;
所述渲染模块,用于解码所述下一图像帧的图像数据,作为新的当前图像帧的图像数据;通过所述子线程在所述画布上对所述当前图像帧的图形数据进行渲染。
在可选的实施例中,所述装置,还包括:
监听模块,用于通过所述主线程监听所述当前图像帧的渲染状态;
回传模块,用于当所述当前图像帧的渲染状态是渲染完毕时,通过所述子线程将所述当前图像帧的渲染结果传入所述主线程。
在可选的实施例中,所述渲染模块,还用于在所述第一时间戳早于所述第二时间戳时,对所述当前图像帧的下一图像帧暂不渲染。
在可选的实施例中,所述装置,还包括:
创建模块,用于通过所述主线程加载与所述GIF图像对应的所述视图,并创建所述渲染对象。
本发明实施例提供的技术方案带来的有益效果是:
通过在屏幕刷新通知对应的第一时间戳晚于或等于当前图像帧对应的第二时间戳时,由子线程继续对当前图像帧的下一图像帧进行渲染;解决了现有技术中预先解码所有图像帧会产生较大的延迟的问题;由于主线程和子线程分离且不需要预先将所有图像帧都进行解码,达到了仅在第一时间戳晚于或等于当前图像帧对应的第二时间戳时,才会对下一图像帧继续进行渲染,主线程不会产生较大的延迟,减少了不必要的渲染次数,提高了UI的显示速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例涉及的视图的界面示意图;
图2是本发明一个实施例提供的图像渲染方法的流程图;
图3是本发明一个实施例提供的图像渲染方法的原理示意图;
图4是本发明另一个实施例提供的图像渲染方法的流程图;
图5是本发明一个实施例提供的图像渲染装置的框图;
图6是本发明一个实施例提供的移动终端的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
同一个UI(User Interface,用户界面)中可能包含多种类型的视图(View)。在编程领域,视图可被理解为一种用于显示UI元素的代码逻辑。比如,内容视图(ContentView)、集合视图(Collection View)、图片视图(Image View)、地图视图(MapView)、滚动视图(Scroll View)、文本视图(Text View)等等。用于显示GIF图像的视图属于图片视图。
如图1所示,在移动终端的屏幕中显示有一个UI10。示意性的,该UI10中包括:用于显示GIF图像12的视图,和用于显示GIF图像14的视图。
当UI10上下滑动时,GIF图像12或GIF图像14可能会被移出屏幕。被移出屏幕的GIF图像所对应的视图会被后台保存在一个重用队列中,当有新的GIF图像被移入屏幕时,该视图可被重用,用于显示该新的GIF图像。也即,同一个视图可以在UI滑动过程中,在不同时间段用于显示不同的GIF图像。
可选地,移动终端是智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPicture E11perts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture E11perts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机等等。
图2示出了本发明一个实施例提供的图像渲染方法的流程图。本实施例以该方法应用于移动终端中来举例说明。该方法包括:
步骤202,通过主线程接收屏幕刷新通知,屏幕刷新通知携带有第一时间戳;
屏幕刷新通知是移动终端的屏幕在刷新时所触发的通知。比如,屏幕以60赫兹(HZ)的刷新频率进行刷新,则该屏幕刷新通知在每隔1/60≈0.017秒会产生一次。
第一时间戳是屏幕刷新时的刷新时间戳。
步骤204,通过主线程将屏幕刷新通知传递至位于UI中的视图所关注的渲染对象中,渲染对象是与GIF图像的当前图像帧对应的对象;
步骤206,通过子线程检测第一时间戳是否晚于或者等于当前图像帧所对应的第二时间戳;
当前图像帧是GIF图像中正在渲染或已经渲染的图像帧。
第二时间戳是对当前图像帧进行渲染的渲染时间戳。
步骤208,在第一时间戳晚于或者等于第二时间戳时,对当前图像帧的下一图像帧进行渲染。
综上所述,本实施例提供的图像渲染方法,通过在屏幕刷新通知对应的第一时间戳晚于或等于当前图像帧对应的第二时间戳时,由子线程继续对当前图像帧的下一图像帧进行渲染;解决了现有技术中预先解码所有图像帧会产生较大的延迟的问题;由于主线程和子线程分离且不需要预先将所有图像帧都进行解码,达到了仅在第一时间戳晚于或等于当前图像帧对应的第二时间戳时,才会对下一图像帧继续进行渲染,主线程不会产生较大的延迟,减少了不必要的渲染次数,提高了UI的显示速度。
同时,如果GIF图像被移出了UI,该GIF图像中的当前图像帧会暂停渲染,不影响视图的复用,不会导致UI滑动出现卡顿。
示意性的如图3所示,GIF图像中的各个图像帧是按照预定顺序依次渲染的。假设GIF图像的帧率是20帧/每秒,GIF图像中的第一帧图像帧的第二时间戳是t,则第二帧图像帧的第二时间戳是t+1/20,第三帧图像帧的第二时间戳是t+2/20,第四帧图像帧的第二时间戳是t+3/20。
而屏幕刷新频率是60HZ,则每隔1/60秒会产生一个屏幕刷新通知,屏幕刷新通知如图3中的空心箭头所示。当收到一个屏幕刷新通知时,子线程判断该屏幕刷新通知对应的第一时间戳是否早于当前图像帧的第二时间戳,若第一时间戳早于当前图像帧的第二时间戳,则暂不对该下一图像帧进行渲染;若第一时间戳晚于或等于当前图像帧的第二时间戳,则对该下一图像帧进行渲染。
当然,若GIF图像被移出了UI,则用于对该GIF图像进行渲染的渲染对象不会收到屏幕刷新通知,该当前图像帧的下一图像帧也不会被渲染。
图4示出了本发明另一个实施例提供的图像渲染方法的流程图。本实施例以该方法应用于移动终端中来举例说明。该方法包括:
步骤401,通过主线程加载与GIF图像对应的视图,并创建渲染对象;
主线程是启动应用程序时所创建的线程。比如,应用程序是即时通讯程序,则主线程是启动该即时通讯程序时创建的线程。可选地,主线程用于显示UI。
UI中通常包括多个视图。主线程会加载UI中的各个视图,每个视图用于显示UI中的一种视觉元素。在本实施例中,UI中包括与GIF图像对应的视图。
主线程还会创建渲染对象,该渲染对象是与GIF图像的当前图像帧对应的对象。可选地,该渲染对象是GifImage对象。
可选地,本实施例中通过子线程执行GIF图像的渲染计算。比如,在IOS操作系统中,通过GCD(Grand Central Dispatch,并行多线程优化技术)来实现子线程对GIF图像的渲染。
可选地,不同的GIF图像对应不同的子线程。
步骤402,在子线程中为画布分配内存空间,该画布用于使用同一内存空间对GIF图像中的各个图像帧进行逐帧渲染。
为了减少GIF图像中的每个图像帧都分别占用一块内存空间,在本实施例中,采用画布的方式对GIF图像中的各个图像帧进行逐帧渲染,也即同一个GIF图像中的各个图像帧在渲染时使用同一块内存空间。
比如,在IOS操作系统中,使用libgif库对GIF图像采用画布的方式进行渲染。
步骤403,通过主线程接收屏幕刷新通知,屏幕刷新通知携带有第一时间戳;
比如,在IOS操作系统中,屏幕刷新通知由CADisplayLink来产生。CADisplayLink一个与屏幕刷新率具有相同频率的定时器。
步骤404,通过主线程将屏幕刷新通知传递至位于UI中的视图所关注的渲染对象中;
主线程将屏幕刷新通知传递至位于UI中的视图所关注的渲染对象中。对移出UI的视图,主线程不会传递屏幕刷新通知给对应的渲染对象。
比如,在IOS操作系统中,CADisplayLink由UIViewController(UI视图控制器)传来,主线程通过枚举UIViewController中列表视图中当前可见的GIF图像,可确定位于UI中的视图所关注的渲染对象。
步骤405,通过子线程检测第一时间戳是否晚于或等于当前图像帧所对应的第二时间戳;
可选地,GIF图像中第一帧图像帧所对应的第二时间戳,由该GIF图像的加载时间所确定。
可选地,GIF图像中的每帧图像帧的图像数据前会有一段描述位,该描述位里面包含了显示从前一图像帧显示到当前图像帧前所必需经过的延迟时间△t。所以,当前图像帧对应的第二时间戳=前一图像帧所对应的第二时间戳+该延迟时间△t。可选地,当前图像帧对应的第二时间戳在解码图像数据时计算得到。或者,上述延迟时间△t有GIF图像的默认最高帧率所确定。
如果第一时间戳晚于或等于第二时间戳,则进入步骤406。
如果第一时间戳早于第二时间戳,则进入步骤409。
步骤406,在第一时间戳晚于或等于第二时间戳时,对当前图像帧的下一图像帧进行渲染;
可选地,在对GIF图像的下一图像帧进行渲染时,包括如下步骤:
第一,通过子线程解码下一图像帧的图像数据,作为新的当前图像帧的图像数据;
第二,通过子线程在所述画布上对当前图像帧的图形数据进行渲染。
步骤407,通过主线程监听当前图像帧的渲染状态;
可选地,在IOS操作系统中,KVO(Key-Value Observing,键-值观察机制)是一种用于对象间通讯的技术。主线程通过KVO机制对子线程中当前图像帧的渲染状态进行监听,
步骤408,当当前图像帧的渲染状态是渲染完毕时,通过子线程将当前图像帧的渲染结果传入主线程;
可选地,当前图像帧的位图数据被产生时,认为该当前图像帧渲染完毕。通过子线程将该当前图像帧的位图数据传入主线程。
可选地,主线程将当前图像帧的渲染结果进行显示。
步骤409,在第一时间戳早于第二时间戳时,对当前图像帧的下一图像帧暂不渲染。
当然,若GIF图像被移出UI,则与该GIF图像对应的渲染对象不再被位于UI中的视图所关注,该渲染对象也不会收到屏幕刷新通知,该GIF图像中的下一图像帧也不会被渲染。
综上所述,本实施例提供的图像渲染方法,通过在屏幕刷新通知对应的第一时间戳晚于或等于当前图像帧对应的第二时间戳时,由子线程继续对当前图像帧的下一图像帧进行渲染;解决了现有技术中预先解码所有图像帧会产生较大的延迟的问题;由于主线程和子线程分离且不需要预先将所有图像帧都进行解码,达到了仅在第一时间戳晚于或等于当前图像帧对应的第二时间戳时,才会对下一图像帧继续进行渲染,主线程不会产生较大的延迟,减少了不必要的渲染次数,提高了UI的显示速度。
与现有技术中预先对GIF图像中所有图像帧进行解码的方案相比,本实施例提供的图像渲染方法,能够减少半秒至一秒左右的初始化时间。
本实施例提供的图像渲染方法,还在GIF图像被移出了UI时,停止对该GIF图像中的下一图像帧的后续渲染,不影响视图的复用,不会导致UI滑动出现卡顿。
本实施例提供的图像渲染方法,通过画布来对GIF图像中的各个图像帧进行逐帧渲染,也即同一个GIF图像中的各个图像帧在渲染时使用同一块内存空间,减少了渲染过程对内存空间的占用,对于内存空间偏少的移动终端来讲,降低了内存空间的开销。
本实施例提供的图像渲染方法,由于采用画布方式对GIF图像进行渲染,该画布方式是GIF图像默认支持的渲染方式,能够支持GIF图像中的所有字段。与IOS操作系统的图像函数接口不能完全支持GIF图像中的所有字段相比(比如,不支持用户输入检测位字段UserInpuyFlag),本方法的适用性更强。
在一个采用IOS操作系统的示意性实施例中,提供了如下实现代码,并对主要代码逻辑进行了注释:
上述代码仅用于示意性说明,不构成对本发明实施例的限定。
图5是本发明一个实施例提供的图像渲染装置的结构方框图。该图像渲染装置可以通过专用硬件电路,或,软硬件的结合,实现成为移动终端的全部或一部分。所述装置包括:
通知模块520,用于通过主线程接收屏幕刷新通知,所述屏幕刷新通知携带有第一时间戳;
传递模板540,用于通过所述主线程将所述屏幕刷新通知传递至位于用户界面UI中的视图所关注的渲染对象中,所述渲染对象是与GIF图像中的当前图像帧对应的对象;
检测模块560,用于通过所述子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳;
渲染模块580,用于在所述第一时间戳晚于或者等于所述第二时间戳时,对所述当前图像帧的下一图像帧进行渲染。
综上所述,本实施例提供的图像渲染装置,通过在屏幕刷新通知对应的第一时间戳晚于或等于当前图像帧对应的第二时间戳时,由子线程继续对当前图像帧的下一图像帧进行渲染;解决了现有技术中预先解码所有图像帧会产生较大的延迟的问题;由于主线程和子线程分离且不需要预先将所有图像帧都进行解码,达到了仅在第一时间戳晚于或等于当前图像帧对应的第二时间戳时,才会对下一图像帧继续进行渲染,主线程不会产生较大的延迟,减少了不必要的渲染次数,提高了UI的显示速度。
在可选的实施例中,所述装置,还包括:
分配模块,用于为画布分配内存空间,所述画布用于使用同一内存空间对所述GIF图像中的各个图像帧进行逐帧渲染;
所述渲染模块580,用于解码所述下一图像帧的图像数据,作为新的当前图像帧的图像数据;通过所述子线程在所述画布上对所述当前图像帧的图形数据进行渲染。
在可选的实施例中,所述装置,还包括:
监听模块,用于通过所述主线程监听所述当前图像帧的渲染状态;
回传模块,用于当所述当前图像帧的渲染状态是渲染完毕时,通过所述子线程将所述当前图像帧的渲染结果传入所述主线程。
在可选的实施例中,所述渲染模块580,还用于在所述第一时间戳早于所述第二时间戳时,对所述当前图像帧的下一图像帧暂不渲染。
在可选的实施例中,所述装置,还包括:
创建模块,用于通过所述主线程加载与所述GIF图像对应的所述视图,并创建所述渲染对象。
需要说明的是:上述实施例提供的图像渲染装置在渲染GIF图像时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像渲染装置与图像渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6其示出了本发明一个实施例提供的移动终端600的框图,该移动终端可以包括射频(RF,Radio Frequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(WiFi,WirelessFidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图6中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器608,并能接收处理器608发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元604可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图6中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
移动终端还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在移动终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路606、扬声器,传声器可提供用户与移动终端之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一移动终端,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与移动终端的通信。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块607,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是移动终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行移动终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
移动终端还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,移动终端中的处理器608会运行存储在存储器602中的一个或一个以上的程序指令,从而实现上述各个方法实施例中所提供的图像渲染方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种图像渲染方法,其特征在于,所述方法包括:
通过主线程接收屏幕刷新通知,所述屏幕刷新通知携带有第一时间戳,所述主线程用于显示用户界面UI;
通过所述主线程将所述屏幕刷新通知传递至位于所述UI中的视图所关注的渲染对象中,所述渲染对象是与GIF图像中的当前图像帧对应的对象;
通过子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳;
在所述第一时间戳晚于或者等于所述第二时间戳时,解码下一图像帧的图像数据,作为新的当前图像帧的图像数据;通过所述子线程在画布上对所述当前图像帧的图形数据进行渲染;所述画布用于使用同一内存空间对所述GIF图像中的各个图像帧进行逐帧渲染;
通过所述主线程调用键-值观察机制对所述子线程中所述当前图像帧的渲染状态进行监听;当所述当前图像帧的渲染状态是渲染完毕时,通过所述子线程将所述当前图像帧的渲染结果传入所述主线程。
2.根据权利要求1所述的方法,其特征在于,所述通过子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳之后,还包括:
在所述第一时间戳早于所述第二时间戳时,对所述当前图像帧的下一图像帧暂不渲染。
3.根据权利要求1或2所述的方法,其特征在于,所述通过主线程接收屏幕刷新通知之前,还包括:
通过所述主线程加载与所述GIF图像对应的所述视图,并创建所述渲染对象。
4.一种图像渲染装置,其特征在于,所述装置包括:
通知模块,用于通过主线程接收屏幕刷新通知,所述屏幕刷新通知携带有第一时间戳,所述主线程用于显示用户界面UI;
传递模板,用于通过所述主线程将所述屏幕刷新通知传递至位于所述UI中的视图所关注的渲染对象中,所述渲染对象是与GIF图像中的当前图像帧对应的对象;
检测模块,用于通过子线程检测所述第一时间戳是否晚于或者等于所述当前图像帧所对应的第二时间戳;
渲染模块,用于在所述第一时间戳晚于或者等于所述第二时间戳时,解码下一图像帧的图像数据,作为新的当前图像帧的图像数据;通过所述子线程在画布上对所述当前图像帧的图形数据进行渲染;所述画布用于使用同一内存空间对所述GIF图像中的各个图像帧进行逐帧渲染;
监听模块,用于通过所述主线程调用键-值观察机制对所述子线程中所述当前图像帧的渲染状态进行监听;
回传模块,用于当所述当前图像帧的渲染状态是渲染完毕时,通过所述子线程将所述当前图像帧的渲染结果传入所述主线程。
5.根据权利要求4所述的装置,其特征在于,
所述渲染模块,还用于在所述第一时间戳早于所述第二时间戳时,对所述当前图像帧的下一图像帧暂不渲染。
6.根据权利要求4或5所述的装置,其特征在于,所述装置,还包括:
创建模块,用于通过所述主线程加载与所述GIF图像对应的所述视图,并创建所述渲染对象。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序被处理器读取并执行以实现如权利要求1至3任一所述的图像渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610512971.3A CN107203960B (zh) | 2016-06-30 | 2016-06-30 | 图像渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610512971.3A CN107203960B (zh) | 2016-06-30 | 2016-06-30 | 图像渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203960A CN107203960A (zh) | 2017-09-26 |
CN107203960B true CN107203960B (zh) | 2021-03-09 |
Family
ID=59904742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610512971.3A Active CN107203960B (zh) | 2016-06-30 | 2016-06-30 | 图像渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203960B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019071600A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 一种图像处理方法及装置 |
CN108184054B (zh) * | 2017-12-28 | 2020-12-08 | 上海传英信息技术有限公司 | 一种用于智能终端拍摄图像的预处理方法及预处理装置 |
CN108845777B (zh) * | 2018-06-11 | 2021-07-02 | 广州酷狗计算机科技有限公司 | 播放帧动画的方法和装置 |
CN110636306B (zh) * | 2018-06-22 | 2021-07-20 | 杭州海康威视数字技术股份有限公司 | 一种图像显示方法、解码设备及电视墙系统 |
CN111402349B (zh) * | 2019-01-03 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | 渲染方法、渲染装置和渲染引擎 |
CN110647378A (zh) * | 2019-09-30 | 2020-01-03 | 北京金山安全软件有限公司 | 动态图像的加载方法、装置和电子设备 |
CN112686981B (zh) | 2019-10-17 | 2024-04-12 | 华为终端有限公司 | 画面渲染方法、装置、电子设备及存储介质 |
CN110930496B (zh) * | 2019-11-19 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 视图绘制方法、装置、电子设备和存储介质 |
CN113741842B (zh) * | 2021-08-26 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 屏幕刷新延迟的确定方法和装置、存储介质及电子设备 |
CN113506298A (zh) * | 2021-09-10 | 2021-10-15 | 北京市商汤科技开发有限公司 | 图像检测与渲染方法及装置、设备、存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270133A (zh) * | 2011-07-18 | 2011-12-07 | 百度在线网络技术(北京)有限公司 | 一种用于展现页面窗口的状态的方法与设备 |
WO2012041082A1 (zh) * | 2010-09-27 | 2012-04-05 | 深圳市融创天下科技股份有限公司 | 一种视频解码和播放的方法、装置、系统和终端设备 |
CN102413382A (zh) * | 2011-12-27 | 2012-04-11 | 四川九洲电器集团有限责任公司 | 一种提高实时视频平滑性的方法 |
CN103390260A (zh) * | 2012-05-09 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 一种处理图像的方法及图像处理装置 |
CN103530898A (zh) * | 2013-01-06 | 2014-01-22 | Tcl集团股份有限公司 | 一种基于3d实时渲染的动画处理方法和系统 |
CN103617031A (zh) * | 2013-11-20 | 2014-03-05 | 广东威创视讯科技股份有限公司 | 图像渲染的方法和装置 |
CN103810738A (zh) * | 2012-11-14 | 2014-05-21 | 腾讯科技(深圳)有限公司 | Gif文件渲染方法及装置 |
CN104102488A (zh) * | 2014-07-18 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
CN104269155A (zh) * | 2014-09-24 | 2015-01-07 | 广东欧珀移动通信有限公司 | 一种调整屏幕刷新频率的方法及装置 |
CN104808984A (zh) * | 2015-03-24 | 2015-07-29 | 魅族科技(中国)有限公司 | 显示界面刷新方法及装置 |
CN104918136A (zh) * | 2015-05-28 | 2015-09-16 | 北京奇艺世纪科技有限公司 | 视频定位方法和装置 |
CN105631921A (zh) * | 2015-12-18 | 2016-06-01 | 网易(杭州)网络有限公司 | 图像数据的处理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010047702A1 (en) * | 2008-10-22 | 2010-04-29 | Hewlett-Packard Development Company, L.P. | Processing images of a display |
US8315672B2 (en) * | 2008-12-01 | 2012-11-20 | Research In Motion Limited | Portable electronic device and method of controlling same |
CN102314460B (zh) * | 2010-07-07 | 2014-05-14 | 阿里巴巴集团控股有限公司 | 数据分析方法、系统及服务器 |
US9336405B2 (en) * | 2014-09-02 | 2016-05-10 | International Business Machines Corporation | Photographic copy prevention of a screen image |
CN105549820B (zh) * | 2015-12-11 | 2019-04-16 | 魅族科技(中国)有限公司 | 一种显示图形用户界面的方法及终端 |
-
2016
- 2016-06-30 CN CN201610512971.3A patent/CN107203960B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012041082A1 (zh) * | 2010-09-27 | 2012-04-05 | 深圳市融创天下科技股份有限公司 | 一种视频解码和播放的方法、装置、系统和终端设备 |
CN102270133A (zh) * | 2011-07-18 | 2011-12-07 | 百度在线网络技术(北京)有限公司 | 一种用于展现页面窗口的状态的方法与设备 |
CN102413382A (zh) * | 2011-12-27 | 2012-04-11 | 四川九洲电器集团有限责任公司 | 一种提高实时视频平滑性的方法 |
CN103390260A (zh) * | 2012-05-09 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 一种处理图像的方法及图像处理装置 |
CN103810738A (zh) * | 2012-11-14 | 2014-05-21 | 腾讯科技(深圳)有限公司 | Gif文件渲染方法及装置 |
CN103530898A (zh) * | 2013-01-06 | 2014-01-22 | Tcl集团股份有限公司 | 一种基于3d实时渲染的动画处理方法和系统 |
CN103617031A (zh) * | 2013-11-20 | 2014-03-05 | 广东威创视讯科技股份有限公司 | 图像渲染的方法和装置 |
CN104102488A (zh) * | 2014-07-18 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
CN104269155A (zh) * | 2014-09-24 | 2015-01-07 | 广东欧珀移动通信有限公司 | 一种调整屏幕刷新频率的方法及装置 |
CN104808984A (zh) * | 2015-03-24 | 2015-07-29 | 魅族科技(中国)有限公司 | 显示界面刷新方法及装置 |
CN104918136A (zh) * | 2015-05-28 | 2015-09-16 | 北京奇艺世纪科技有限公司 | 视频定位方法和装置 |
CN105631921A (zh) * | 2015-12-18 | 2016-06-01 | 网易(杭州)网络有限公司 | 图像数据的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107203960A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203960B (zh) | 图像渲染方法及装置 | |
US10419823B2 (en) | Method for controlling multimedia playing, apparatus thereof and storage medium | |
US10853979B2 (en) | Electronic device and method for displaying screen thereof | |
CN109388297B (zh) | 表情展示方法、装置、计算机可读存储介质及终端 | |
US10884605B2 (en) | Methods and systems for displaying hidden information on a web page | |
CN110264935B (zh) | 显示器驱动方法、显示器驱动集成电路及电子设备 | |
CN108062190B (zh) | 一种应用运行状态控制方法及移动终端 | |
CN105912091B (zh) | 电子装置以及减少其电力消耗的方法 | |
WO2018161534A1 (zh) | 一种显示图像的方法、双屏终端和计算机可读的非易失性存储介质 | |
CN106658064B (zh) | 虚拟礼物展示方法及装置 | |
US20150301991A1 (en) | Webapp startup method and device | |
US20180366054A1 (en) | Electronic device and method for controlling display in electronic device | |
CN104423996B (zh) | 视图刷新方法和装置 | |
CN107995440B (zh) | 一种视频字幕贴图生成方法、装置、计算机可读存储介质及终端设备 | |
KR102281227B1 (ko) | 응용프로그램을 공유하기 위한 방법 및 그 전자 장치 | |
CN105095259B (zh) | 瀑布流对象显示方法及装置 | |
CN110300047B (zh) | 一种动画播放方法、装置及存储介质 | |
WO2015014138A1 (zh) | 一种显示框显示的方法、装置和设备 | |
CN109660445B (zh) | 一种消息处理方法、装置及存储介质 | |
CN107622234B (zh) | 一种显示萌脸礼物的方法和装置 | |
CN105631059B (zh) | 数据处理方法、数据处理装置及数据处理系统 | |
US11243668B2 (en) | User interactive method and apparatus for controlling presentation of multimedia data on terminals | |
CN104238931B (zh) | 信息输入方法、装置及电子设备 | |
CN106528083B (zh) | 一种显示展示信息的方法和装置 | |
CN108269223B (zh) | 一种网页图形绘制方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Applicant after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building block A room 602 Applicant before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |