CN109068165B - 一种动态图显示方法及装置 - Google Patents
一种动态图显示方法及装置 Download PDFInfo
- Publication number
- CN109068165B CN109068165B CN201810814540.1A CN201810814540A CN109068165B CN 109068165 B CN109068165 B CN 109068165B CN 201810814540 A CN201810814540 A CN 201810814540A CN 109068165 B CN109068165 B CN 109068165B
- Authority
- CN
- China
- Prior art keywords
- frame
- image
- dynamic
- image frame
- data corresponding
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明实施例提供了一种动态图显示方法及装置,应用于动态图播放组件,动态图播放组件包括动态图播放器和动态图显示器,所述方法包括:动态图播放器从帧图片数组中获取并向动态图显示器发送目标图像帧对应的解码后的图像数据;若动态图显示器确定内存中加载了当前图像帧对应的解码后的图像数据,动态图显示器释放当前图像帧所占用的内存,并加载目标图像帧对应的解码后的图像数据,显示目标图像帧。本发明实施例通过在显示某一图像帧前,释放前一图像帧所占用的内存,则在显示动态图的各个图像帧时,占用的内存仅为某一图像帧的内存,减少了播放动态图所占用的总内存,避免了占用内存过多导致应用程序关闭的问题,提高了播放动态图的可靠性。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种动态图显示方法及装置。
背景技术
随着终端的不断发展,终端能够显示的图片类型也在不断扩展,终端不但可以显示静态图片,还可以显示动态图,例如GIF(Graphics Interchange Format,图像互换格式)格式的图片。
相关技术中,终端可以先对动态图数据进行解码,得到帧图片数组,再通过系统的控件对帧图片数组进行加载,在对帧图片数组中的每个图像帧加载完毕后,即可动态显示该动态图。
但是,如果动态图包括较多图像帧时,或者图像帧的分辨率较高时,则会占用过多内存,当内存超过系统分配的阈值时,会导致系统关闭显示动态图的应用程序的问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种动态图显示方法及装置。
根据本发明的第一方面,提供了一种动态图显示方法,应用于动态图播放组件,所述动态图播放组件包括动态图播放器和动态图显示器,所述方法包括:
所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据;
所述动态图播放器向所述动态图显示器发送所述目标图像帧对应的解码后的图像数据;
所述动态图显示器接收所述目标图像帧对应的解码后的图像数据;
所述动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据,所述当前图像帧为已经完成显示的图像帧;
当内存中加载了所述当前图像帧对应的解码后的图像数据时,所述动态图显示器释放所述当前图像帧所占用的内存;
所述动态图显示器加载所述目标图像帧对应的解码后的图像数据;
所述动态图显示器显示所述目标图像帧。
可选的,在所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据之前,所述方法还包括:
所述动态图播放器获取所述目标图像帧对应的播放间隔,所述播放间隔用于指示播放所述当前图像帧的时刻与播放所述目标图像帧的时刻之间的时长;
所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,包括:
从获取所述当前图像帧的时刻起,经过所述播放间隔所指示的时长,所述动态图播放器从所述帧图片数组中获取所述目标图像帧对应的解码后的图像数据。
可选的,所述动态图播放组件还包括处理器;
在所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据之前,所述方法还包括:
所述处理器获取动态图数据,所述动态图数据用于显示所述动态图;
所述处理器对所述动态图数据进行解码,得到所述帧图片数组,所述帧图片数组包括每一帧图像帧对应的解码后的图像数据。
可选的,所述处理器获取动态图数据,包括:
所述处理器检测用户触发的播放操作,所述播放操作用于播放所述动态图;
所述处理器响应于用户触发的播放操作,获取所述动态图数据。
可选的,在所述动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据之后,所述方法还包括:
当内存中并未加载所述当前图像帧对应的解码后的图像数据时,所述动态图显示器显示所述目标图像帧。
根据本发明的第二方面,提供了一种动态图显示装置,应用于动态图播放组件,所述动态图播放组件包括动态图播放器和动态图显示器,所述装置包括:
第一获取模块,用于所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据;
发送模块,用于所述动态图播放器向所述动态图显示器发送所述目标图像帧对应的解码后的图像数据;
接收模块,用于所述动态图显示器接收所述目标图像帧对应的解码后的图像数据;
判断模块,用于所述动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据,所述当前图像帧为已经完成显示的图像帧;
释放模块,用于当内存中加载了所述当前图像帧对应的解码后的图像数据时,所述动态图显示器释放所述当前图像帧所占用的内存;
加载模块,用于所述动态图显示器加载所述目标图像帧对应的解码后的图像数据;
第一显示模块,用于所述动态图显示器显示所述目标图像帧。
可选的,所述装置还包括:
第二获取模块,用于所述动态图播放器获取所述目标图像帧对应的播放间隔,所述播放间隔用于指示播放所述当前图像帧的时刻与播放所述目标图像帧的时刻之间的时长;
所述第一获取模块包括:
获取子模块,用于从获取所述当前图像帧的时刻起,经过所述播放间隔所指示的时长,所述动态图播放器从所述帧图片数组中获取所述目标图像帧对应的解码后的图像数据。
可选的,所述动态图播放组件还包括处理器;
所述装置还包括:
第三获取模块,用于所述处理器获取动态图数据,所述动态图数据用于显示所述动态图;
解码模块,用于所述处理器对所述动态图数据进行解码,得到所述帧图片数组,所述帧图片数组包括每一帧图像帧对应的解码后的图像数据。
可选的,所述第三获取模块包括:
检测子模块,用于所述处理器检测用户触发的播放操作,所述播放操作用于播放所述动态图;
获取子模块,用于所述处理器响应于用户触发的播放操作,获取所述动态图数据。
可选的,所述装置还包括:
第二显示模块,用于当内存中并未加载所述当前图像帧对应的解码后的图像数据时,所述动态图显示器显示所述目标图像帧。
本发明实施例包括以下优点:
通过动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,并向动态图显示器发送该目标图像帧对应的解码后的图像数据;动态图显示器则可以接收目标图像帧对应的解码后的图像数据,并判断内存中是否加载了当前图像帧对应的解码后的图像数据,当内存中加载了当前图像帧对应的解码后的图像数据时,动态图显示器可以释放当前图像帧所占用的内存,并加载目标图像帧对应的解码后的图像数据,最后显示目标图像帧。通过在显示某一图像帧之前,释放前一图像帧所占用的内存,则在显示动态图的各个图像帧时,占用的内存仅为某一图像帧的内存,减少了播放动态图所占用的总内存,避免了占用内存过多导致应用程序关闭的问题,提高了播放动态图的能力和可靠性。
附图说明
图1是根据示例性实施例示出的一种动态图显示方法所涉及的动态图播放组件100的示意图;
图2是本发明实施例提供的一种动态图显示方法的流程图;
图3是本发明实施例提供的另一种动态图显示方法的流程图;
图4是本发明实施例提供的一种动态图显示装置的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在对本申请实施例进行详细说明之前,先对本申请实施例的应用场景进行介绍。
图1是根据示例性实施例示出的一种动态图显示方法所涉及的动态图播放组件100的示意图,如图1所示,该动态图播放组件100可以包括:动态图播放器110、动态图显示器120和处理器130,动态图播放器110分别与动态图显示器120和处理器130连接。
具体地,处理器130可以根据用户触发的播放操作,获取动态图数据,并对获取的动态图数据进行解码,得到帧图片数组;动态图播放器110则可以接收解码的帧图片数组,并根据该帧图片数组中记录的各个图像帧对应的播放间隔,在不同的时间点获取不同的图像帧,并向动态图显示器120发送获取的图像帧。
动态图显示器120则可以接收动态图播放器110发送的图像帧,并释放当前显示的图像帧,也即是释放当前显示的解码后的图像帧所占用的内存,最后显示动态图播放器110发送的图像帧,从而不断地接收并显示动态图播放器110发送的图像帧,从而实现动态图的播放,并且在显示某一图像帧之前,释放前一图像帧所占用的内存,减少播放动态图所占用的总内存。
需要说明的是,动态图播放组件100可以设置在终端内,终端在显示动态图的过程中,可以通过动态图播放组件100播放动态图。
参照图2,示出了一种动态图显示方法的流程图,该方法具体可以包括如下步骤:
步骤201:动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据。
其中,帧图片数组可以包括多个按顺序排列的图像帧,是根据动态图数据解析得到的;该目标图像帧可以为帧图片数组中的任意一帧图像帧。
另外,目标图像帧对应的解码后的图像数据用于显示图像帧,例如图像帧中各个像素的RGB(Red-Green-Blue,红绿蓝)参数等,本发明实施例对此不做限定。
终端在显示动态图的过程中,实质上是在不断显示不同的图像帧,因此,终端需要持续不断地从帧图片数组中,按照排列的顺序依次获取图像帧,以便在后续步骤中,终端可以根据获取的不同的图像帧,完成动态图的显示。
具体地,动态图播放器可以检测帧图片数组中各个图像帧对应的序号,当检测到当前时刻与目标图像帧的显示时间相对应时,则动态图播放器可以从帧图片数组中获取目标图像帧对应的解码后的图像数据,以便在后续步骤中显示该目标图像帧。
步骤202:动态图播放器向动态图显示器发送目标图像帧对应的解码后的图像数据。
动态图播放器在获取目标图像帧对应的解码后的图像数据后,可以向动态图显示器发送该目标图像帧对应的解码后的图像数据,以便在后续步骤中,动态图显示器可以显示目标图像帧。
步骤203:动态图显示器接收目标图像帧对应的解码后的图像数据。
与步骤202相对应的,动态图显示器可以接收动态图播放器发送的目标图像帧对应的解码后的图像数据,以便在后续步骤中,可以加载目标图像帧对应的解码后的图像数据,从而显示目标图像帧。
步骤204:动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据。
其中,当前图像帧为已经完成显示的图像帧。
动态图显示器在获取目标图像帧对应的解码后的图像数据后,可以判断动态图显示器当前是否正在显示其他图像帧,也即是确定动态图显示器是否为第一次显示图像帧,以便在后续步骤中,动态图显示器可以根据不同的判断结果执行不同的操作步骤。
具体地,动态图显示器可以获取当前内存中所加载的数据,对获取的数据进行扫描,判断获取的数据中是否包括任一图像帧对应的解码后的图像数据,当获取的数据中包括图像帧对应的解码后的图像数据时,则说明动态图显示器当前已经开始播放动态图;但是,如果获取的数据中不包括图像帧对应的解码后的图像数据,则说明动态图显示器动态图显示器尚未播放动态图。
例如,当终端循环显示动态图的过程中,如果动态图显示器当前正在显示最后一帧的图像帧,则可以获取第一帧图像帧,并判断终端的内存中是否加载了其他图像帧的图像数据,当检测到最后一帧的图像数据时,可以确定终端的内存中加载有其他图像帧的图像数据。
步骤205:当内存中加载了当前图像帧对应的解码后的图像数据时,动态图显示器释放当前图像帧所占用的内存。
由于在显示图像帧时,动态图显示器需要加载该图像帧对应的解码后的图像数据,则需要占用终端的内存,但是为了减小显示动态图所占用的内存,动态图显示器可以释放冗余的图像帧所占用的内存。
具体地,当动态图显示器获取目标图像帧对应的解码后的图像数据后,说明动态图显示器需要显示目标图像帧,而动态图显示器当前正在显示当前图像帧,则需要释放当前图像帧所占用的内存,也即是对当前图像帧对应的解码后的图像数据进行清除,从而释放冗余内存。
但是,需要说明的是,在循环播放任一动态图的过程中,当目标图像帧为第一帧图像帧时,当前图像帧可以为帧图片数组中的最后一帧图像帧。
步骤206:动态图显示器加载目标图像帧对应的解码后的图像数据。
在动态图显示器释放了当前图像帧所占用的内存后,则可以加载目标图像帧对应的解码后的图像数据,以便在后续步骤中,动态图显示器可以显示目标图像帧,从而完成动态图的播放。
步骤207:动态图显示器显示目标图像帧。
动态图显示器在释放当前图像帧所占用的内存,并加载目标图像帧对应的解码后的图像数据后,则动态图显示器的内存中不再保留当前图像帧对应的解码后的图像数据,也不再显示当前图像帧,相应的,动态图显示器可以根据加载的目标图像帧对应的图像数据,对目标图像帧进行显示,从而不断显示不同的图像帧,完成动态图的播放。
本发明实施例包括以下优点:
通过动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,并向动态图显示器发送该目标图像帧对应的解码后的图像数据;动态图显示器则可以接收目标图像帧对应的解码后的图像数据,并判断内存中是否加载了当前图像帧对应的解码后的图像数据,当内存中加载了当前图像帧对应的解码后的图像数据时,动态图显示器可以释放当前图像帧所占用的内存,并加载目标图像帧对应的解码后的图像数据,最后显示目标图像帧。通过在显示某一图像帧之前,释放前一图像帧所占用的内存,则在显示动态图的各个图像帧时,占用的内存仅为某一图像帧的内存,减少了播放动态图所占用的总内存,避免了占用内存过多导致应用程序关闭的问题,提高了播放动态图的能力和可靠性。
参照图3,示出了另一种动态图显示方法的流程图,该方法具体可以包括如下步骤:
步骤301:获取帧图片数组。
其中,帧图片数组可以包括多个按顺序排列的图像帧,是根据动态图数据解析得到的,而帧图片数组中包括每一图像帧对应的解码后的图像数据,用于显示图像帧。
终端在显示动态图的过程中,需要先根据动态图数据进行解码,得到包括多个图像帧的帧图片数组,以便在后续步骤中,终端可以根据该帧图片数组显示动态图。
可选的,处理器可以获取动态图数据,并对动态图数据进行解码,得到帧图片数组。其中,该动态图数据用于显示动态图;该帧图片数组包括每一帧图像帧对应的解码后的图像数据。
具体地,当终端显示动态图时,处理器可以先根据当前界面对应的地址,获取当前界面中动态图所对应的动态图数据,并根据获取的动态图数据进行解码,得到包括多个图片帧的帧图片数组。
例如,当终端向用户展示某个包括动态图的网页时,处理器可以根据该网页所指示的网址,下载网页中动态图对应的动态图数据,并对下载的动态图数据进行解码,得到帧图片数组。
进一步地,在处理器获取动态图数据的过程中,处理器可以检测用户触发的播放操作,并响应于用户触发的播放操作,获取动态图数据。其中,该播放操作用于播放动态图。
具体地,处理器可以检测用户触发的播放操作,当检测到用户触发的播放操作时,则可以获取动态图数据,并进行解码,从而得到帧图片数组。但是,如果处理器并未检测到用户触发的播放操作,则可以不获取动态图数据。
步骤302:动态图播放器获取目标图像帧对应的播放间隔。
其中,该播放间隔用于指示播放当前图像帧的时刻与播放目标图像帧的时刻之间的时长。
由于动态图中各个图像帧的播放时长可以相同,也可以不同,则动态图播放组件在展示各个图像帧时,可以根据各个图像帧之间的播放间隔,在不同的时刻获取不同的图像帧,从而将不同的图像帧展示不同的时长。
具体地,在处理器获取并向动态图播放器发送帧图片数组之后,动态图播放器可以根据帧图片数组中记录的数据,确定各个图像帧之间的播放间隔,从而确定每个图像帧所对应的播放间隔,以便在后续步骤中,终端可以根据各个图像帧对应的播放间隔获取相应的图像帧。
例如,动态图播放器可以获取每两个相邻的图像帧之间的播放间隔,当在获取当前图像帧和目标图像帧之间的播放间隔后,可以将获取的播放间隔确定为目标图像帧对应的播放间隔。
需要说明的是,各个图像帧对应的播放间隔可以相同,也可以不同,本发明实施例对此不做限定。
步骤303:动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据。
动态图播放器在获取每个图像帧对应的播放间隔后,对于某个图像帧,则可以根据该图像帧对应的播放间隔以及获取上一图像帧的时刻,确定获取该图像帧的时刻,以便在后续步骤中,动态图播放器可以在不同时刻显示不同的图像帧。
可选的,从获取当前图像帧的时刻起,经过播放间隔所指示的时长,动态图播放器可以从帧图片数组中获取目标图像帧对应的解码后的图像数据。
具体地,当终端获取当前图像帧对应的解码后的图像数据后,可以根据目标图像帧对应的播放间隔,以及获取当前图像帧对应的图像数据的时刻,计算得到获取目标图像帧对应的图像数据的时刻,并根据计算得到的时刻,获取目标图像帧对应的解码后的图像数据。
例如,终端在13.79秒获取当前图像帧,与目标图像帧对应的播放间隔为0.1秒,则终端可以在第13.89秒获取目标图像帧。
步骤304:动态图播放器向动态图显示器发送目标图像帧对应的解码后的图像数据。
步骤305:动态图显示器接收目标图像帧对应的解码后的图像数据。
步骤306:动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据。
步骤304至步骤306的过程与步骤202至步骤204类似,在此不再赘述。
需要说明的是,当动态图显示器的内存中并未加载图像帧对应的解码后的图像数据,则可以执行步骤310;但是,当终端的内存中加载了图像帧对应的解码后的图像数据时,则需要执行步骤307至步骤309,以显示目标图像帧。
步骤307:当内存中加载了当前图像帧对应的解码后的图像数据时,动态图显示器释放当前图像帧所占用的内存。
步骤308:动态图显示器加载目标图像帧对应的解码后的图像数据。
步骤309:动态图显示器显示目标图像帧。
步骤307至步骤309的过程与步骤205至步骤207类似,在此不再赘述。
步骤310:当内存中并未加载当前图像帧对应的解码后的图像数据时,动态图显示器显示目标图像帧。
当确定动态图显示器的内存中并未加载图像帧对应的解码后的图像数据时,则可以确定动态图显示器尚未开始播放动态图,目标图像帧为第一帧图像帧,则动态图显示器可以显示目标图像帧,从而实现动态图的播放。
需要说明的是,在步骤303中动态图播放器获取目标图像帧对应的解码后的图像数据后,还可以判断帧图片数组中是否包括下一帧图像帧,以便在后续步骤中,可以再次获取并显示下一帧图像帧,从而连续显示多个图像帧,完成动态图的播放。
具体地,当动态图播放器获取目标图像帧对应的解码后的图像数据后,可以将目标图像帧对应的序号加一,得到下一帧图像帧对应的序号,并获取帧图片数组中图片帧的最大序号,再比较最大序号和下一帧图像帧对应的序号的大小,确定下一帧图像帧对应的序号是否大于最大序号,从而确定帧图片数组中是否包括下一帧图像帧。
例如,帧图片数组中包括10帧图像帧,则最大序号为10,在动态图播放器获取第8帧图像帧后,则终端可以获取第8帧图像帧对应的序号8,并计算得到下一帧图像帧对应的序号9,再判断下一帧图像帧对应的序号9与最大序号10的大小,确定序号9不大于最大序号10,说明帧图片数组中包括序号9对应的下一帧图像帧。
因此,当动态图播放器确定帧图片数组中包括下一帧图像帧时,可以从帧图片数组中获取该下一帧图像帧对应的解码后的图像数据,以便向用户展示获取的下一帧图像帧,从而不断地向用户展示不同的图像帧,完成动态图的播放。
但是,当帧图片数组不包括下一帧图像帧时,动态图播放器可以从帧图片数组中获取第一帧图像帧,从而再次对该帧图片数组对应的动态图进行播放,完成对动态图不间断的播放。
本发明实施例包括以下优点:
通过动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,并向动态图显示器发送该目标图像帧对应的解码后的图像数据;动态图显示器则可以接收目标图像帧对应的解码后的图像数据,并判断内存中是否加载了当前图像帧对应的解码后的图像数据,当内存中加载了当前图像帧对应的解码后的图像数据时,动态图显示器可以释放当前图像帧所占用的内存,并加载目标图像帧对应的解码后的图像数据,最后显示目标图像帧。通过在显示某一图像帧之前,释放前一图像帧所占用的内存,则在显示动态图的各个图像帧时,占用的内存仅为某一图像帧的内存,减少了播放动态图所占用的总内存,避免了占用内存过多导致应用程序关闭的问题,提高了播放动态图的能力和可靠性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了一种动态图显示装置400的框图,应用于动态图播放组件,该装置具体可以包括:
第一获取模块401,用于该动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据;
发送模块402,用于该动态图播放器向该动态图显示器发送该目标图像帧对应的解码后的图像数据;
接收模块403,用于该动态图显示器接收该目标图像帧对应的解码后的图像数据;
判断模块404,用于该动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据,该当前图像帧为已经完成显示的图像帧;
释放模块405,用于当内存中加载了该当前图像帧对应的解码后的图像数据时,该动态图显示器释放该当前图像帧所占用的内存;
加载模块406,用于该动态图显示器加载该目标图像帧对应的解码后的图像数据;
第一显示模块407,用于该动态图显示器显示该目标图像帧。
可选的,该装置还包括:
第二获取模块,用于该动态图播放器获取该目标图像帧对应的播放间隔,该播放间隔用于指示播放该当前图像帧的时刻与播放该目标图像帧的时刻之间的时长;
该第一获取模块401包括:
获取子模块,用于从获取该当前图像帧的时刻起,经过该播放间隔所指示的时长,该动态图播放器从该帧图片数组中获取该目标图像帧对应的解码后的图像数据。
可选的,该动态图播放组件还包括处理器;
该装置还包括:
第三获取模块,用于该处理器获取动态图数据,该动态图数据用于显示该动态图;
解码模块,用于该处理器对该动态图数据进行解码,得到该帧图片数组,该帧图片数组包括每一帧图像帧对应的解码后的图像数据。
可选的,该第三获取模块包括:
检测子模块,用于该处理器检测用户触发的播放操作,该播放操作用于播放该动态图;
获取子模块,用于该处理器响应于用户触发的播放操作,获取该动态图数据。
可选的,该装置还包括:
第二显示模块,用于当内存中并未加载该当前图像帧对应的解码后的图像数据时,该动态图显示器显示该目标图像帧。
本发明实施例包括以下优点:
通过动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,并向动态图显示器发送该目标图像帧对应的解码后的图像数据;动态图显示器则可以接收目标图像帧对应的解码后的图像数据,并判断内存中是否加载了当前图像帧对应的解码后的图像数据,当内存中加载了当前图像帧对应的解码后的图像数据时,动态图显示器可以释放当前图像帧所占用的内存,并加载目标图像帧对应的解码后的图像数据,最后显示目标图像帧。通过在显示某一图像帧之前,释放前一图像帧所占用的内存,则在显示动态图的各个图像帧时,占用的内存仅为某一图像帧的内存,减少了播放动态图所占用的总内存,避免了占用内存过多导致应用程序关闭的问题,提高了播放动态图的能力和可靠性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种动态图显示方法和一种动态图显示装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种动态图显示方法,其特征在于,应用于动态图播放组件,所述动态图播放组件包括动态图播放器、动态图显示器和处理器,所述方法包括:
所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,所述目标图像帧为所述帧图片数组中的任意一帧图像帧,所述帧图片数组是所述处理器根据用户触发的播放操作而对动态图数据进行解码得到的;
所述动态图播放器向所述动态图显示器发送所述目标图像帧对应的解码后的图像数据;
所述动态图显示器接收所述目标图像帧对应的解码后的图像数据;
所述动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据,所述当前图像帧为已经完成显示的、所述目标图像帧的前一图像帧;
当内存中加载了所述当前图像帧对应的解码后的图像数据时,所述动态图显示器释放所述当前图像帧所占用的内存;
所述动态图显示器加载所述目标图像帧对应的解码后的图像数据;
所述动态图显示器显示所述目标图像帧,在显示动态图的各个图像帧时,占用的内存仅为一帧图像帧的内存。
2.根据权利要求1所述的方法,其特征在于,在所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据之前,所述方法还包括:
所述动态图播放器获取所述目标图像帧对应的播放间隔,所述播放间隔用于指示播放所述当前图像帧的时刻与播放所述目标图像帧的时刻之间的时长;
所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,包括:
从获取所述当前图像帧的时刻起,经过所述播放间隔所指示的时长,所述动态图播放器从所述帧图片数组中获取所述目标图像帧对应的解码后的图像数据。
3.根据权利要求1所述的方法,其特征在于,在所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据之前,所述方法还包括:
所述处理器获取动态图数据,所述动态图数据用于显示所述动态图;
所述处理器对所述动态图数据进行解码,得到所述帧图片数组,所述帧图片数组包括每一帧图像帧对应的解码后的图像数据。
4.根据权利要求3所述的方法,其特征在于,所述处理器获取动态图数据,包括:
所述处理器检测用户触发的播放操作,所述播放操作用于播放所述动态图;
所述处理器响应于用户触发的播放操作,获取所述动态图数据。
5.根据权利要求1至4任一所述的方法,其特征在于,在所述动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据之后,所述方法还包括:
当内存中并未加载所述当前图像帧对应的解码后的图像数据时,所述动态图显示器显示所述目标图像帧。
6.一种动态图显示装置,其特征在于,应用于动态图播放组件,所述动态图播放组件包括动态图播放器、动态图显示器和处理器,所述装置包括:
第一获取模块,用于所述动态图播放器从帧图片数组中获取目标图像帧对应的解码后的图像数据,所述目标图像帧为所述帧图片数组中的任意一帧图像帧,所述帧图片数组是所述处理器根据用户触发的播放操作而对动态图数据进行解码得到的;
发送模块,用于所述动态图播放器向所述动态图显示器发送所述目标图像帧对应的解码后的图像数据;
接收模块,用于所述动态图显示器接收所述目标图像帧对应的解码后的图像数据;
判断模块,用于所述动态图显示器判断内存中是否加载了当前图像帧对应的解码后的图像数据,所述当前图像帧为已经完成显示的、所述目标图像帧的前一图像帧;
释放模块,用于当内存中加载了所述当前图像帧对应的解码后的图像数据时,所述动态图显示器释放所述当前图像帧所占用的内存;
加载模块,用于所述动态图显示器加载所述目标图像帧对应的解码后的图像数据;
第一显示模块,用于所述动态图显示器显示所述目标图像帧,在显示动态图的各个图像帧时,占用的内存仅为一帧图像帧的内存。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于所述动态图播放器获取所述目标图像帧对应的播放间隔,所述播放间隔用于指示播放所述当前图像帧的时刻与播放所述目标图像帧的时刻之间的时长;
所述第一获取模块包括:
获取子模块,用于从获取所述当前图像帧的时刻起,经过所述播放间隔所指示的时长,所述动态图播放器从所述帧图片数组中获取所述目标图像帧对应的解码后的图像数据。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于所述处理器获取动态图数据,所述动态图数据用于显示所述动态图;
解码模块,用于所述处理器对所述动态图数据进行解码,得到所述帧图片数组,所述帧图片数组包括每一帧图像帧对应的解码后的图像数据。
9.根据权利要求8所述的装置,其特征在于,所述第三获取模块包括:
检测子模块,用于所述处理器检测用户触发的播放操作,所述播放操作用于播放所述动态图;
获取子模块,用于所述处理器响应于用户触发的播放操作,获取所述动态图数据。
10.根据权利要求6至9任一所述的装置,其特征在于,所述装置还包括:
第二显示模块,用于当内存中并未加载所述当前图像帧对应的解码后的图像数据时,所述动态图显示器显示所述目标图像帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810814540.1A CN109068165B (zh) | 2018-07-23 | 2018-07-23 | 一种动态图显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810814540.1A CN109068165B (zh) | 2018-07-23 | 2018-07-23 | 一种动态图显示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109068165A CN109068165A (zh) | 2018-12-21 |
CN109068165B true CN109068165B (zh) | 2022-02-11 |
Family
ID=64836138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810814540.1A Active CN109068165B (zh) | 2018-07-23 | 2018-07-23 | 一种动态图显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109068165B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647378A (zh) * | 2019-09-30 | 2020-01-03 | 北京金山安全软件有限公司 | 动态图像的加载方法、装置和电子设备 |
CN111711841B (zh) * | 2020-07-27 | 2022-09-09 | 广州酷狗计算机科技有限公司 | 图像帧播放方法、装置、终端及存储介质 |
CN113157969A (zh) * | 2021-03-09 | 2021-07-23 | 聚融医疗科技(杭州)有限公司 | 一种用于超声诊断的快速进入电影回放状态的方法及系统 |
CN114584786B (zh) * | 2022-01-20 | 2024-02-13 | 百果园技术(新加坡)有限公司 | 基于视频解码的内存分配方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663796A (zh) * | 2012-04-16 | 2012-09-12 | 广东威创视讯科技股份有限公司 | 一种开放图形库的动画处理方法和装置 |
CN103488373A (zh) * | 2012-06-12 | 2014-01-01 | 腾讯科技(深圳)有限公司 | 一种图片展示的方法、装置及移动终端 |
CN103810738A (zh) * | 2012-11-14 | 2014-05-21 | 腾讯科技(深圳)有限公司 | Gif文件渲染方法及装置 |
CN104519404A (zh) * | 2013-09-29 | 2015-04-15 | 北京新媒传信科技有限公司 | 图像互换格式文件的播放方法及装置 |
CN107450997A (zh) * | 2017-07-27 | 2017-12-08 | 东软集团股份有限公司 | 图片动态播放的方法及装置 |
CN108282696A (zh) * | 2018-02-07 | 2018-07-13 | 北京易讯理想科技有限公司 | 一种序列帧图像播放的硬件资源分配方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151896A (ja) * | 2007-12-21 | 2009-07-09 | Sony Corp | 画像処理装置、動画再生装置、これらにおける処理方法およびプログラム |
CN106383880B (zh) * | 2016-09-13 | 2020-01-24 | 广州视睿电子科技有限公司 | 一种gif文件的播放方法及系统 |
-
2018
- 2018-07-23 CN CN201810814540.1A patent/CN109068165B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663796A (zh) * | 2012-04-16 | 2012-09-12 | 广东威创视讯科技股份有限公司 | 一种开放图形库的动画处理方法和装置 |
CN103488373A (zh) * | 2012-06-12 | 2014-01-01 | 腾讯科技(深圳)有限公司 | 一种图片展示的方法、装置及移动终端 |
CN103810738A (zh) * | 2012-11-14 | 2014-05-21 | 腾讯科技(深圳)有限公司 | Gif文件渲染方法及装置 |
CN104519404A (zh) * | 2013-09-29 | 2015-04-15 | 北京新媒传信科技有限公司 | 图像互换格式文件的播放方法及装置 |
CN107450997A (zh) * | 2017-07-27 | 2017-12-08 | 东软集团股份有限公司 | 图片动态播放的方法及装置 |
CN108282696A (zh) * | 2018-02-07 | 2018-07-13 | 北京易讯理想科技有限公司 | 一种序列帧图像播放的硬件资源分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109068165A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109068165B (zh) | 一种动态图显示方法及装置 | |
CN107509107B (zh) | 视频播放故障的检测方法、装置及设备、可读介质 | |
CN107885645B (zh) | 计算页面首屏渲染时长的方法、装置及电子设备 | |
US20180232128A1 (en) | Image reproduction apparatus and method for simultaneously displaying multiple moving-image thumbnails | |
CN109756622B (zh) | 一种图像缓存方法、装置、移动终端及存储介质 | |
US20150104149A1 (en) | Video summary apparatus and method | |
WO2017202170A1 (zh) | 一种图像压缩方法、装置及电子设备 | |
CN113852832B (zh) | 视频处理方法、装置、设备和存储介质 | |
CN110647378A (zh) | 动态图像的加载方法、装置和电子设备 | |
US10291951B2 (en) | Video channel display method and apparatus | |
CN110582016A (zh) | 视频信息展示方法、装置、服务器及存储介质 | |
CN107332914B (zh) | 一种终端展示方法及装置 | |
JP2011113282A5 (zh) | ||
CN108961380B (zh) | 图形渲染方法及装置 | |
WO2017049974A1 (zh) | 页面加载方法和装置 | |
CN112786034B (zh) | 语音交互方法、装置、设备及存储介质 | |
CN109086346B (zh) | 一种图像显示方法及装置 | |
CN114285989A (zh) | 一种紧急视频触发阈值的自适应调节方法与设备 | |
CN113034069A (zh) | 一种物流对象的处理方法及物流管理设备 | |
CN108419092B (zh) | 一种确定相同视频的方法及装置 | |
CN111522609A (zh) | 一种页面的显示方法及装置 | |
US20180288360A1 (en) | Method, apparatus, and storage medium for video file processing | |
CN115988229A (zh) | 一种图像识别方法及装置 | |
CN117475013B (zh) | 一种计算机设备和视频数据处理方法 | |
CN113487552B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |