CN114529485A - 控件模糊方法、装置、终端设备及可读存储介质 - Google Patents

控件模糊方法、装置、终端设备及可读存储介质 Download PDF

Info

Publication number
CN114529485A
CN114529485A CN202011595573.5A CN202011595573A CN114529485A CN 114529485 A CN114529485 A CN 114529485A CN 202011595573 A CN202011595573 A CN 202011595573A CN 114529485 A CN114529485 A CN 114529485A
Authority
CN
China
Prior art keywords
layer
fuzzy
frame
image
result
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.)
Pending
Application number
CN202011595573.5A
Other languages
English (en)
Inventor
陈健
崔坤
王亮
汪永浪
黄然
陈昱衡
王晨
张琛
李煜
刘超
支渠成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to US18/252,718 priority Critical patent/US20230419454A1/en
Priority to PCT/CN2021/132150 priority patent/WO2022105920A1/zh
Priority to EP21894067.4A priority patent/EP4227785A4/en
Publication of CN114529485A publication Critical patent/CN114529485A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请适用于终端领域,提供了一种控件模糊方法、装置、终端设备及可读存储介质。该方法包括:在绘制第一帧图像时,获取第一帧图像中第一控件的动态参数。将第一帧图像的绘制结果与动态参数封装。根据动态参数对第一帧图像的绘制结果进行合成,得到包含模糊效果的所述第一帧图像的合成结果。根据第一帧图像的合成结果进行显示。由于将第一帧图像的绘制结果和动态参数封装后,第一帧图像的绘制结果与动态参数为互相关联的参数。根据动态参数进行封装时必然会根据第一帧图像的绘制结果进行合成。不会出现动态参数作用于错误的帧图像的情况,能够保证在合成时帧图像都使用了正确的动态参数。避免了视觉上出现卡顿或跳帧。

Description

控件模糊方法、装置、终端设备及可读存储介质
技术领域
本申请涉及终端领域,尤其涉及一种控件模糊方法、装置、终端设备及可读存储介质。
背景技术
在终端设备中,使用动画效果展示控件是一种常用的手段。在展示控件时,往往会对控件的背景进行模糊。例如,将控件所在位置的背景截图模糊后作为控件的背景。
现有技术中,会通过合成进程分别获取模糊参数和渲染绘制的帧图像,然后根据模糊参数对渲染绘制的帧图像进行模糊处理,最后将得到的图像作为控件的背景进行合成显示。
但是,有时合成进程获取的模糊参数可能会出错,导致正在进行模糊处理的帧图像使用了错误的模糊参数,进而使得合成显示的效果不佳。
发明内容
本申请实施例提供了一种控件模糊方法、装置、终端设备及可读存储介质,可以改善由于在当前周期中,将当前帧的模糊参数传送给合成阶段,但是合成阶段又未接收到当前帧。模糊参数将作用于错误的帧,导致显示的帧使用了错误的模糊背景的问题。
第一方面,本申请实施例提供了一种控件模糊方法,包括:在绘制第一帧图像时,获取第一帧图像中第一控件的动态参数。将第一帧图像的绘制结果与动态参数封装。根据动态参数对第一帧图像的绘制结果进行合成,得到包含模糊效果的第一帧图像的合成结果,动态参数和第一帧图像的绘制结果是从封装的结果中获取的。根据第一帧图像的合成结果进行显示。
第一方面提供的控件模糊方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
其中,动态参数是模糊参数的一部分,可以用于进行模糊处理。第一帧图像可以是绘制渲染进程正在进行绘制渲染的当前帧图像。第一控件则是已标记出需要进行模糊的控件。
需要说明的是,本申请提供的控件模糊方法在应用时,可以包括两个或者两个以上的进程。例如,可以包括用于绘制渲染的绘制渲染进程,以及用于模糊合成的合成线程。在绘制渲染进程中获取第一帧图像中第一控件的动态参数。将第一帧图像的绘制结果与动态参数封装。然后将封装的结果传递给合成线程,合成线程再从封装的结果中获取动态参数和第一帧图像的绘制结果,根据动态参数对第一帧图像的绘制结果进行合成。
在第一方面中,将第一帧图像的绘制结果与动态参数封装。并根据封装的结果进行合成,得到包含模糊效果的第一帧图像的合成结果。最后再根据第一帧图像的合成结果进行显示。由于将第一帧图像的绘制结果和动态参数封装后,第一帧图像的绘制结果与动态参数为互相关联的参数。根据动态参数进行封装时必然会根据第一帧图像的绘制结果进行合成。不会出现动态参数作用于错误的帧图像的情况,能够保证在合成时帧图像都使用了正确的动态参数。
一些实施方式中,第一帧图像中包括至少一个控件。至少一个控件中控件属性包括模糊标记的控件为第一控件,模糊标记用于指示对第一控件进行模糊处理。
另一些实施方式中,第一帧图像中包括至少一个控件。至少一个控件的控件属性包括模糊标记。当模糊标记为真时,控件为第一控件,模糊标记用于指示对第一控件进行模糊处理。
作为示例,可以根据模糊标记的标记值确定模糊标记是否为真。如,若标记值为1,则确定模糊标记为真,若标记值为0,则确定模糊标记为假。模糊标记为假时表示无需对控件进行模糊处理。
一些实施方式中,动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。
一些实施方式中,在根据封装的结果进行合成,得到包含模糊效果的第一帧图像的合成结果之前,还包括:获取第一帧图像中第一控件的静态参数,静态参数包括模糊类型和模糊强度。
根据封装的结果进行合成,得到包含模糊效果的第一帧图像的合成结果,包括:根据封装的结果、静态参数进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,根据封装的结果、静态参数进行合成,得到包含模糊效果的第一帧图像的合成结果,包括:根据封装的结果获取第一帧图像的绘制结果与动态参数。根据动态参数,确定第一帧图像的绘制结果中第一控件对应的区域。根据静态参数,对第一帧图像的绘制结果中第一控件对应的区域进行模糊处理,得到模糊后的区域图像。根据第一帧图像的绘制结果、模糊后的区域图像进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,获取第一帧图像中第一控件的动态参数,包括:根据绘制第一帧图像的绘制指令,获取第一控件的动态参数。
一些实施方式中,将第一帧图像的绘制结果与动态参数封装,包括:将第一帧图像的绘制结果与动态参数关联存储,得到封装的结果。
一些实施方式中,第一帧图像的绘制结果包括一个或多个图层的绘制结果,每个图层的绘制结果是根据图层中的一个或多个控件绘制的,图层包括用于存储绘制结果和图层信息的内存空间。
第二方面,本申请实施例提供了一种控件模糊装置,装置包括:获取模块,用于在绘制第一帧图像时,获取第一帧图像中第一控件的动态参数。封装模块,用于将第一帧图像的绘制结果与动态参数封装。合成模块,用于根据封装的结果进行合成,得到包含模糊效果的第一帧图像的合成结果。显示模块,用于根据第一帧图像的合成结果进行显示。
一些实施方式中,第一帧图像中包括至少一个控件。至少一个控件中控件属性包括模糊标记的控件为第一控件,模糊标记用于指示对第一控件进行模糊处理。
另一些实施方式中,第一帧图像中包括至少一个控件。至少一个控件的控件属性包括模糊标记。当模糊标记为真时,控件为第一控件,模糊标记用于指示对第一控件进行模糊处理。
一些实施方式中,动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。
一些实施方式中,获取模块,还用于获取第一帧图像中第一控件的静态参数,静态参数包括模糊类型和模糊强度。
合成模块,具体用于根据封装的结果、静态参数进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,合成模块,具体用于根据封装的结果获取第一帧图像的绘制结果与动态参数。根据动态参数,确定第一帧图像的绘制结果中第一控件对应的区域。根据静态参数,对第一帧图像的绘制结果中第一控件对应的区域进行模糊处理,得到模糊后的区域图像。根据第一帧图像的绘制结果、模糊后的区域图像进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,获取模块,具体用于根据绘制第一帧图像的绘制指令,获取第一控件的动态参数。
一些实施方式中,封装模块,具体用于将第一帧图像的绘制结果与动态参数关联存储,得到封装的结果。
一些实施方式中,第一帧图像的绘制结果包括一个或多个图层的绘制结果,每个图层的绘制结果是根据图层中的一个或多个控件绘制的,图层包括用于存储绘制结果和图层信息的内存空间。
第三方面,本申请实施例提供了一种终端设备,包括:至少一个处理器、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序。处理器执行计算机程序实现第一方面提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第一方面提供的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面提供的方法。
第六方面,本申请实施例提供了一种芯片系统,芯片系统包括存储器和处理器,处理器执行存储器中存储的计算机程序,以实现第一方面提供的方法。
第七方面,本申请实施例提供了一种芯片系统,芯片系统包括处理器,处理器与第四方面提供的计算机可读存储介质耦合,处理器执行计算机可读存储介质中存储的计算机程序,以实现第一方面提供的方法。
可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例提供了一种图层模糊方法、装置、电子设备及可读存储介质,可以改善由于通过GPU对每个窗口界面进行绘制,导致的GPU负载增大、功耗增加、降低电子设备续航能力的问题。
第八方面,本申请实施例提供了一种图层模糊方法,应用于电子设备,包括:获取第一帧图像的第一图层,第一图层包括第一帧图像的绘制结果。根据第一图层确定第二图层,第二图层为第一图层中用于生成模糊图层的图层。根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。根据第一帧图像的合成结果进行显示。
第八方面提供的图层模糊方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
其中,每个第一图层可以对应一个应用的窗口界面,该第一图层对应的第一帧图像的绘制结果即为应用的窗口界面,窗口界面以经过绘制渲染的纹理的形式存储在图层中。
需要说明的是,图层是一种数据结构,图层可以是用于存储绘制结果和图层信息的内存空间。图层信息可以包括图层的标识、图层尺寸、图层分辨率等图层属性信息。图层信息还可以包括其他与图层相关的信息,例如,还可以包括模糊标记、模糊参数等。
在本申请中,只将根据模糊标记确定的第二图层通过GPU进行模糊处理,生成模糊图层,然后将模糊图层和非模糊图层进行合成,得到包含模糊效果的第一帧图像的合成结果。根据第一帧图像的合成结果进行显示。由于GPU只处理模糊标记指示的图层,无需对每一个图层进行处理,可以减少GPU的负载,降低GPU的功耗,进而增加电子设备的续航能力。
一些实施方式中,根据第一图层确定第二图层,包括:获取第一图层中的模糊标记和第一图层的图层顺序,模糊标记包括模糊顶部标记或模糊底部标记。糊标记包括模糊顶部标记或模糊底部标记。若模糊标记为顶部模糊标记,则第二图层为包括模糊标记的第一图层及下方的第一图层。和/或若模糊标记为底部模糊标记,则第二图层为包括模糊标记的第一图层下方的第一图层。
一些实施方式中,非模糊图层为模糊标记未指示的第一图层。
一些实施方式中,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
一些实施方式中,根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,包括:根据动态参数,确定第二图层中待模糊的内容。根据静态参数对待模糊的内容进行模糊处理,生成模糊图层。
一些实施方式中,根据静态参数对待模糊的内容进行模糊处理,生成模糊图层,包括:创建模糊图层,模糊图层中包括待模糊的内容。对待模糊的内容进行降采样,得到待模糊图像。根据静态参数对待模糊的内容进行模糊处理,得到模糊图像。将模糊图像放大至与待模糊的内容相同的尺寸,并更新至模糊图层中。
一些实施方式中,根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果,包括:获取模糊标记的数量。若模糊标记的数量为1,则将模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果。若模糊标记的数量为大于1的整数,则将模糊图层和非模糊图层输入图形处理单元,合成得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,在将模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果之前,方法还包括:获取第一数量,第一数量为合成加速装置中通道的数量。获取第二数量,第二数量为非模糊图层和模糊图层的数量之和。若第二数量大于第一数量,则将图层顺序连续的至少两个非模糊图层合并为一个非模糊图层,以使得第二数量小于或等于第一数量。
一些实施方式中,该方法还包括:若第一图层的图层信息不包含模糊标记,则将第一图层按照图层顺序送入合成加速装置进行合成,得到第一帧图像的合成结果。
一些实施方式中,图层顺序是指第一图层图层之间的垂直于屏幕方向的顺序。
第九方面,本申请实施例提供了一种图层模糊装置,应用于电子设备,包括:获取模块,用于获取第一帧图像的第一图层,第一图层包括第一帧图像的绘制结果。确定模块,用于根据第一图层确定第二图层,第二图层为第一图层中用于生成模糊图层的图层。合成模块,用于根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。合成模块,还用于根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。显示模块,用于根据第一帧图像的合成结果进行显示。
一些实施方式中,确定模块,具体用于获取第一图层中的模糊标记和第一图层的图层顺序,模糊标记包括模糊顶部标记或模糊底部标记。若模糊标记为顶部模糊标记,则第二图层为包括模糊标记的第一图层及下方的第一图层。和/或若模糊标记为底部模糊标记,则第二图层为包括模糊标记的第一图层下方的第一图层。
一些实施方式中,非模糊图层为模糊标记未指示的第一图层。
一些实施方式中,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
一些实施方式中,合成模块,具体用于根据动态参数,确定第二图层中待模糊的内容;根据静态参数对待模糊的内容进行模糊处理,生成模糊图层。
一些实施方式中,合成模块,具体用于创建模糊图层,模糊图层中包括待模糊的内容;对待模糊的内容进行降采样,得到待模糊图像;根据静态参数对待模糊的内容进行模糊处理,得到模糊图像;将模糊图像放大至与待模糊的内容相同的尺寸,并更新至模糊图层中。
一些实施方式中,合成模块,具体用于获取模糊标记的数量;若模糊标记的数量为1,则将模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果;若模糊标记的数量为大于1的整数,则将模糊图层和非模糊图层输入图形处理单元,合成得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,获取模块还用于获取第一数量,第一数量为合成加速装置中通道的数量;获取第二数量,第二数量为非模糊图层和模糊图层的数量之和;若第二数量大于第一数量,则合成模块还用于将图层顺序连续的至少两个非模糊图层合并为一个非模糊图层,以使得第二数量小于或等于第一数量。
一些实施方式中,合成模块,还用于若第一图层的图层信息不包含模糊标记,则将第一图层按照图层顺序送入合成加速装置进行合成,得到第一帧图像的合成结果。
一些实施方式中,图层顺序是指第一图层图层之间的垂直于屏幕方向的顺序。
第十方面,本申请实施例提供了一种电子设备,包括:至少一个处理器、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序。处理器执行计算机程序实现第八方面提供的方法。
第十一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第八方面提供的方法。
第十二方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第八方面提供的方法。
第十三方面,本申请实施例提供了一种芯片系统,芯片系统包括存储器和处理器,处理器执行存储器中存储的计算机程序,以实现第八方面提供的方法。
第十四方面,本申请实施例提供了一种芯片系统,芯片系统包括处理器,处理器与第十一方面提供的计算机可读存储介质耦合,处理器执行计算机可读存储介质中存储的计算机程序,以实现第八方面提供的方法。
可以理解的是,上述第九方面至第十四方面的有益效果可以参见上述第八方面中的相关描述,在此不再赘述。
本申请实施例提供了一种转码方法、装置、终端设备及可读存储介质,可以改善由于合成服务阻塞合成线程导致合成速度减慢、呈现出的视频内容出现卡顿或丢帧的问题。
第十五方面,本申请实施例提供了一种转码方法,该方法包括:获取第x帧第一帧图像的第一图层,x为大于0的整数。根据第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层。若确定第二图层包括待转码的视频图层,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的。根据包含模糊效果的第x帧第一帧图像的合成结果进行显示。
第十五方面提供的转码方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
其中,每个第一图层可以对应一个应用的窗口界面,例如视频图层可以对应视频应用的窗口界面。窗口界面以经过绘制渲染的纹理的形式存储在图层中。
需要说明的是,图层是一种数据结构,图层可以是用于存储绘制结果和图层信息的内存空间。图层信息可以包括图层的标识、图层尺寸、图层分辨率等图层属性信息。图层信息还可以包括其他与图层相关的信息,例如,还可以包括模糊标记、模糊参数等。
在进行控件模糊时,若模糊图层中包括待转码的视频图层,第一方面提供的转码方法可以使用待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果。由于进行模糊合成时,使用的是已经转码完成的转码结果,模糊合成与硬件转码异步进行,能够节省等待转码完成的时间,减少合成进程堵塞的概率,有效提高了合成的速度,在视觉上更加流畅,用户的视觉体验更好。
一些实施方式中,确定第二图层包括待转码的视频图层,包括:遍历第二图层,获取每个第二图层的压缩格式。若第二图层的压缩格式为视频的压缩格式,则确定第二图层为视频图层。获取图像处理器支持的视频压缩格式列表。若第二图层的压缩格式不在GPU支持的视频压缩格式列表中,则确定第二图层为待转码的视频图层。
一些实施方式中,若确定第二图层包括待转码的视频图层,方法还包括:对视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果。
一些实施方式中,对视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果,包括:获取硬件转码服务。通过硬件转码服务对待转码视频的第x帧进行转码处理。在待转码视频的第x帧转码处理完成后,将待转码视频的第x帧的转码处理结果存储并添加标记第x帧的转码完成标记。
一些实施方式中,通过硬件转码服务对待转码视频的第x帧进行转码处理,包括:获取待转码视频的第x帧的第一压缩格式。将待转码视频的第x帧送入硬件转码模块,通过硬件转码模块将第一压缩格式转换为第二压缩格式,得到待转码视频的第x帧的转码结果。
一些实施方式中,若确定第二图层包括待转码的视频图层,在根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成之前,方法还包括:检测第x-1帧的转码完成标记。
根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,包括:若检测到第x-1帧的转码完成标记,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。若未检测到第x-1帧的转码完成标记,则等待待转码视频的第x-1帧的转码处理完成后再根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。
一些实施方式中,第一图层包括第一帧图像的绘制结果。
根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,包括:根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,第二图层中的视频图层包括待转码视频的第x-1帧的转码结果,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,第二图层为第一图层中用于生成模糊图层的图层。
一些实施方式中,非模糊图层为模糊标记未指示的第一图层。
一些实施方式中,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
第十六方面,本申请实施例提供了一种转码装置,该装置包括:获取模块,用于获取第x帧第一帧图像的第一图层,x为大于0的整数。确定模块,用于根据第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层。合成模块,用于若确定第二图层包括待转码的视频图层,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的。显示模块,用于根据包含模糊效果的第x帧第一帧图像的合成结果进行显示。
一些实施方式中,确定模块,还用于遍历第二图层,获取每个第二图层的压缩格式。若第二图层的压缩格式为视频的压缩格式,则确定第二图层为视频图层。获取图像处理器支持的视频压缩格式列表。若第二图层的压缩格式不在GPU支持的视频压缩格式列表中,则确定第二图层为待转码的视频图层。
一些实施方式中,该装置还包括转码模块,用于对视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果。
一些实施方式中,转码模块,具体用于获取硬件转码服务。通过硬件转码服务对待转码视频的第x帧进行转码处理。在待转码视频的第x帧转码处理完成后,将待转码视频的第x帧的转码处理结果存储并添加标记第x帧的转码完成标记。
一些实施方式中,转码模块,具体用于获取待转码视频的第x帧的第一压缩格式。将待转码视频的第x帧送入硬件转码模块,通过硬件转码模块将第一压缩格式转换为第二压缩格式,得到待转码视频的第x帧的转码结果。
一些实施方式中,该装置还包括检测模块,用于检测第x-1帧的转码完成标记。合成模块,具体用于若检测到第x-1帧的转码完成标记,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。若未检测到第x-1帧的转码完成标记,则等待待转码视频的第x-1帧的转码处理完成后再根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。
一些实施方式中,第一图层包括第一帧图像的绘制结果。合成模块,具体用于根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,第二图层中的视频图层包括待转码视频的第x-1帧的转码结果,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,第二图层为第一图层中用于生成模糊图层的图层。
一些实施方式中,非模糊图层为模糊标记未指示的第一图层。
一些实施方式中,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
第十七方面,本申请实施例提供了一种终端设备,包括:至少一个处理器、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序。处理器执行计算机程序实现第十五方面提供的方法。
第十八方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第十五方面提供的方法。
第十九方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第十五方面提供的方法。
第二十方面,本申请实施例提供了一种芯片系统,芯片系统包括存储器和处理器,处理器执行存储器中存储的计算机程序,以实现第十五方面提供的方法。
第二十一方面,本申请实施例提供了一种芯片系统,芯片系统包括处理器,处理器与第四方面提供的计算机可读存储介质耦合,处理器执行计算机可读存储介质中存储的计算机程序,以实现第十五方面提供的方法。
可以理解的是,上述第十六方面至第二十一方面的有益效果可以参见上述第十五方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种终端设备的结构示意图;
图2为本申请实施例提供的终端设备的系统架构图;
图3为本申请实施例提供的一种控件模糊方法应用时的时序图;
图4为本申请实施例提供的一种控件模糊方法的流程示意图;
图5为本申请实施例提供的一种控件模糊方法的应用场景示意图;
图6为本申请实施例提供的另一种控件模糊方法的应用场景示意图;
图7为本申请实施例提供的另一种控件模糊方法的应用场景示意图;
图8为本申请实施例提供的控件模糊方法中空间界面图像的示意图;
图9为本申请实施例提供的另一种控件模糊方法的流程示意图;
图10为本申请实施例提供的另一种控件模糊方法的应用场景示意图;
图11为本申请实施例提供的另一种控件模糊方法的应用场景示意图;
图12为本申请实施例提供的另一种控件模糊方法的应用场景示意图;
图13为本申请实施例提供的另一种方法的应用场景示意图;
图14为本申请实施例提供的一种控件模糊装置的结构示意图;
图15为本申请实施例提供的另一种终端设备的结构示意图;
图16为一种图层模糊的场景示意图;
图17为本申请实施例提供的一种电子设备的结构示意图;
图18为本申请实施例提供的一种图层模糊方法的流程示意图;
图19为本申请实施例提供的图层模糊方法中第一图层顺序的示意图;
图20为本申请实施例提供的另一种图层模糊方法的流程示意图;
图21为本申请实施例提供的另一种图层模糊方法的流程示意图;
图22为本申请实施例提供的图层模糊方法中一种第二图层顺序的示意图;
图23为本申请实施例提供的图层模糊方法中另一种第二图层顺序的示意图;
图24为本申请实施例提供的另一种图层模糊方法的流程示意图;
图25为本申请实施例提供的另一种图层模糊方法的流程示意图;
图26为本申请实施例提供的图层模糊方法中图层的示意图;
图27为本申请实施例提供的图层模糊方法的应用场景示意图;
图28为本申请实施例提供的一种图层模糊装置的结构示意图;
图29为本申请实施例提供的另一电子设备的结构示意图;
图30为同步转的时序示意图;
图31为本申请实施例提供的一种终端设备的结构示意图;
图32为本申请实施例提供的一种转码方法的流程示意图;
图33为本申请实施例提供的转码方法的中第一图层顺序的示意图;
图34为本申请实施例提供的另一种转码方法的流程示意图;
图35为本申请实施例提供的转码方法中异步转码的时序示意图;
图36为本申请实施例提供的一种转码装置的结构示意图;
图37为本申请实施例提供的另一种转码装置的结构示意图;
图38为本申请实施例提供的另一种转码装置的结构示意图;
图39为本申请实施例提供的另一种终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到”或“响应于检测到”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在本申请中,控件模糊指的是对控件的背景图像进行模糊处理。
本申请人发现,目前在实现控件模糊时,是通过渲染绘制阶段、合成阶段、显示阶段的三级流水线实现的。例如,通过渲染绘制阶段和合成阶段,绘制合成包括背景模糊的控件的帧图像合成结果,并将其通过显示阶段进行显示。其中,渲染绘制阶段是指通过渲染绘制进程进行处理的阶段,合成阶段是指通过合成进程进行处理的阶段,显示阶段则是指将包括背景模糊的控件的帧图像合成结果进行送显的阶段。
由于控件在展示时,往往会采用控件动画效果。因此对控件背景进行模糊时,动画效果的每一帧中控件的背景图像都会发生变化。所以,对该控件背景进行模糊时的模糊参数也会随着时间发生变化。
其中,可以在一个或多个图层上对当前帧图像的进行分别绘制。例如,可以先通过绘制渲染进程对一个或多个图层进行绘制,得到每个图层的绘制结果(即当前帧图像的一部分)。每个图层的绘制结果中可能会包含一个或多个控件。
若一个图层中包含的控件包含模糊标记,则该图层中的控件为需要进行模糊的控件,该图层为待模糊的图层。
图层是用于绘制图像的单元,图层对应的内存空间可以用于存储绘制结果和图层信息。图层信息可以包括色域空间、图层的位置、图层的标识、图层尺寸、图层分辨率等图层属性信息。图层信息还可以包括其他与图层相关的信息,例如,还可以包括模糊标记、模糊参数等。
在一些系统架构中,一个应用可以至少对应一个图层。例如,在安卓系统中,一个应用包括至少一个活动组件(activity),activity是一个可视化的应用程序组件,一个activity可以对应一个图层。例如,activity可以通过按键、文本、复选框等形式呈现。
绘制图层是将应用提供的与图层对应的控件内容绘制在图层对应的内存中,得到图层对应的绘制结果。而合成图层则是将一帧图像对应的一个或多个图层的绘制结果,按照图层顺序叠加进行合成得到合成结果。合成结果可用于在屏幕上显示一帧图像。
其中,第一帧图像的绘制结果包括第一帧图像对应的一个或多个图层中的绘制结果。例如,第一帧图像中包括了一个或多个应用,每个应用包括至少一个activity,则第一帧图像的绘制结果包括每个activity在对应图层上的绘制结果。
其中,图层顺序则是指一个或多个第一图层图层之间的垂直于屏幕方向的顺序。图层顺序可以是应用程序在创建图层时指定的,图层顺序可以存储在合成器(surfaceflinger)中。
渲染绘制阶段得到每个图层的绘制结果后,将每个图层的绘制结果和模糊参数传递给合成进程,进入合成阶段。在合成阶段中,合成进程调用GPU根据模糊参数对待模糊的图层进行模糊处理。然后将所有图层合成,得到当前帧图像的合成结果。最后,将当前帧图像的合成结果传送至显示装置,进入显示阶段进行显示。
其中,进行模糊处理时算法可以包括高斯模糊、动感模糊、径向模糊、镜头模糊等模糊算法中的一个。
在本申请中,模糊处理以高斯模糊为例,高斯模糊的计算过程是将图像与正态分布进行卷积,高斯模糊后的图像在视觉上与透过毛玻璃观察图像时的视觉效果类似。
在渲染绘制阶段中对每个图层进行绘制时,如果未能在一个周期内完成绘制,则无法在当前周期内将当前帧图像的每个图层的绘制结果传送给合成阶段。但是,在当前周期中,依然会将当前帧图像的模糊参数传送给合成阶段,而合成阶段又未接收到当前帧图像对应图层的绘制结果。模糊参数将作用于错误的帧图像的,导致显示阶段显示的帧图像的使用了错误的模糊背景,在视觉上出现卡顿或者跳帧。为此,本申请提供了一种控件模糊方法,包括:在绘制第一帧图像时,获取第一帧图像中第一控件的动态参数。将第一帧图像的绘制结果与动态参数封装。根据封装的结果进行合成,得到包含模糊效果的第一帧图像的合成结果。根据第一帧图像的合成结果进行显示。
由于将第一帧图像的绘制结果和动态参数封装后,第一帧图像的绘制结果与动态参数为互相关联的参数。根据动态参数进行封装时必然会根据第一帧图像的绘制结果进行合成。不会出现动态参数作用于错误的帧图像的情况,能够保证在合成时帧图像都使用了正确的动态参数。避免了视觉上出现卡顿或跳帧,提升了模糊效果的用户体验。
本申请实施例提供的控件模糊方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
在此以终端设备为手机进行说明。如图1所示,该终端设备可以包括:处理器110、音频模块120、屏幕130、摄像模块140、存储模块150、接口160、电源模块170、输入模块180、通信模块190等部件。本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对终端设备的各个构成部件及模块进行具体的介绍:
处理器110是终端设备的控制中心,处理器110可以包括CPU111和图形处理器(Graphics Processing Unit,GPU)112。CPU110可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储模块150内的软件程序和/或模块,以及调用存储在存储模块150内的数据,执行终端设备的各种功能和处理数据。而GPU112则是可以进行图像和图形相关运算工作的微处理器。GPU112的形式有多种,例如,GPU112可以设置在显卡中,或者集成在CPU111中,再或者,也可以以独立的GPU芯片的形式存在。
其中,GPU在进行图像和图形的绘制和渲染时,是将图像或图形绘制或渲染至缓存(buffer)中。对于设置在显卡中的GPU来说,缓存即为显卡中集成的显存(也被叫做帧缓存)。而对于集成在CPU中或以独立的GPU芯片的形式存在的GPU,缓存则可以是终端设备的运行内存中的一部分,如随机存取存储器(Random Access Memory,RAM)中的部分空间。
一些实施方式中,CPU111可包括一个或多个处理单元。例如,可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
还有一些实施方式中,处理器110中还可集成调制解调处理器。调制解调处理器主要处理无线通信相关的数据。本申请对此不作限制。
音频模块120,用于处理音频信号。例如,音频模块120可以将麦克风123接收到的模拟音频信号转换为数字音频数据并发送给处理器110。或者,将处理器110发送的数字音频数据转换为扬声器121和受话器122能够播放的模拟信号并发送给扬声器121或受话器122。
屏幕130用于通过视觉输出,展示终端设备输出的内容。例如,可以显示用户输入的信息、展示提供给用户的信息、显示终端设备的系统界面、以及在终端设备上运行的应用程序的界面等。屏幕130显示面板的材质可以为液晶显示器(Liquid Crystal Display,LCD)、薄膜晶体管(Thin Film Transistor,TFT)、发光半导体(Light-Emitting Diode,LED)、有机发光半导体(Organic Light-Emitting Diode,OLED)等,在此不做限制。
一些实施方式中,屏幕的显示面板上还可以覆盖有触控面板。当触控面板检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图2中屏幕和触控面板(未示出)为互相独立的两个部件来实现手机的输入和输入功能,但是在一些实施方式中,可以将触控面板与显示面板集成而实现手机的输入和输出功能。
摄像模块140包括至少1个摄像头,摄像头可以是前置摄像头141或者后置摄像头142。
仅为作为示例,终端设备可以为单摄像头、双摄像头、三摄像头或四摄像头。例如,为四摄像头时,一个摄像头为前置摄像头141,三个为后置摄像头142。三个后置摄像头142可以为不同焦距的摄像头。如一个等效焦距35mm的主摄像头、一个等效焦距20mm的广角摄像头和一个等效焦距105mm的长焦摄像头。本申请实施例对此不作限定。
需要说明的是,当终端设备包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者一部分前置、另一部分后置,本申请实施例对此不作限定。
其中,存储模块150中包括内部存储器151和外部存储器接口152,内部存储器151可以是闪存、硬盘、运算内存等。例如,内部存储器可以包括至少一个硬盘或闪存,一个运算内存。外部存储器接口152用于连接外部存储器,外部存储器可以包括内存卡、移动硬盘、U盘、光碟等。
存储模块150可用于存储软件程序以及模块,处理器110通过运行存储在存储模块150的软件程序以及模块,从而执行终端设备的各种功能应用以及数据处理。存储模块150可主要包括存储程序区和存储数据区。其中,存储程序区通常位于内部存储器151上,可存储操作系统、至少一个功能所需的应用程序(如声音播放功能、触摸响应功能)。存储数据区可以位于内部存储器151上,或者位于与外部存储器接口152连接的外部存储器上,或者同时位于内部存储器和外部存储器上。存储数据区可存储根据手机的使用所创建的数据(如音频数据、图像数据、视频数据)。
接口160包括但不限于用户识别(Subscriber Identity Module,SIM)卡接口161、USB接口162、耳机接口163。SIM卡接口用于插入运营商提供的SIM卡,以使得终端设备通过移动通信模块191与基站通信连接时,识别验证用户身份,并在通过验证后,向基站发送通话请求、数据请求以及接收基站转发的通话、数据、短信等。
USB接口162可以通过USB数据线将终端设备与电脑连接,进行数据交换。同时,USB接口162还与电源模块170连接,USB数据线在接入电脑或充电插口时,可以将输入电能传输给电源模块170,对终端设备进行充电。其中,USB接口162可以为micro-USB、mini-USB、USBType-c等,在此不做限制。
耳机接口163用于接入耳机。耳机接口163可以为独立的接口,例如,耳机接口163可以为3.5mm耳机插孔。或者,耳机接口163还可以集成于USB接口162中,例如,耳机接口可以集成在USB Type-c中。当耳机接口163中插入了耳机时,音频模块120可以不再将输出的模拟音频信号发送给扬声器121或受话器122,而是通过耳机接口163发送给耳机,通过耳机播放音频。在插入耳机时,若检测到耳机不包括麦克风,此时音频模块依然接收麦克风123发送的模拟音频信号。若检测到耳机包括麦克风,则音频模块接收耳机麦克风发送的模拟音频信号,对其进行处理并发送给处理器110。
终端设备还包括给各个部件供电的电源模块170。电源模块可以包括电池、电源管理模块等。电源管理模块可以与处理器110逻辑相连,从而通过电源管理模块实现管理电池的充电、放电、以及功耗管理等功能。
输入模块180可用于接收输入的信息和按键信号,输入的信息包括数字或字符信息、触控信息等,按键信号包括物理按键的按压信号、虚拟按键的按压信号等。
一种实施方式中,输入模块180可包括触控面板以及其他输入设备。触控面板与屏幕130可组成触摸屏,触控面板可收集用户在其上或附近的触摸操作(如用户使用手指、触控笔等能够在触控面板上产生触摸信号的物体或附件在触控面板上或在触摸屏附近的操作),并根据预先设定的程式驱动执行相应的功能。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器。触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,处理器110接收发送的触点坐标,将其转换为触控指令并加以执行。可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板。其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆中的一种或多种。
通信模块190包括移动通信模块191和无线通信模块192。移动通信模块191可以支持任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、时分复用WCDMA(Time-Division WCDMA,TD-WCDMA)、时分复用LTE(Time-Division LTE,TD-LTE)、第五代新无线(the 5th generation New Radio,5G NR)等。而无线通信模块192则可以支持蓝牙(Bluetooth)、无线保真(Wireless Fidelity,Wi-Fi)、近场通信(Near FieldCommunication,NFC)等。
移动通信模块191可以用于通过天线与通信基站连接,以建立终端设备与其他终端设备之间通话链路,收发通话音频。无线通信模块192则用于与外置设备无线连接,其中,外置设备可以是蓝牙耳机、蓝牙音响等具有放音、收音功能的外置设备,也可以是蓝牙鼠标、蓝牙键盘等用于输入的外置设备,在此不做限制。
图2是本申请实施例的终端设备中软件结构示意图。以终端设备为手机,操作系统为Android系统为例进行说明。
在一些实施例中,可将Android系统分为四层,分别为应用程序层(APP)、应用程序框架层(framework,FWK)、系统层以及硬件抽象层,层与层之间通过软件接口通信。
如图2所示,应用程序层可以一系列应用程序包,应用程序包可以包括短信息,日历,相机,视频,导航,图库,通话等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数,例如用于接收应用程序框架层所发送的事件的函数。
如图2所示,应用程序框架层可以包括窗口管理器、资源管理器以及通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。上述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
应用程序框架层还可以包括:
视图系统(未示出),所述视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器(未示出)用于提供手机100的通信功能。例如通话状态的管理(包括接通,挂断等)。
系统层可以包括多个功能模块。例如:传感器服务模块,物理状态识别模块,三维图形处理库(例如:OpenGL ES)等。
传感器服务模块,用于对硬件层各类传感器上传的传感器数据进行监测,确定手机的物理状态。物理状态识别模块,用于对用户手势、人脸等进行分析和识别。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
系统层还可以包括:表面管理器(未示出)用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库(未示出)支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音频、视频或图像编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
硬件抽象层是硬件和软件之间的层。硬件抽象层可以包括显示驱动,摄像头驱动,传感器驱动等,用于驱动硬件层的相关硬件,如显示屏、摄像头、传感器等。
图3示出了本申请提供的控件模糊方法应用时的时序图。参考图3,第一帧图像从绘制渲染、合成到显示的过程至少需要三个周期。两次同步信号之间间隔的时间为一个周期,周期的时长可以取决于屏幕的刷新率,例如,若屏幕的刷新率为60Hz,则每个周期的时长为1/60秒,即约为16.667毫秒。其中,图形处理器合成是合成进程调用GPU实现的,可用于进行模糊合成。
在第一个周期(t=0)中,绘制渲染进程先根据第一帧图像的绘制指令获取静态参数和动态参数,绘制渲染第一帧图像的绘制结果。然后将静态参数通过窗口管理器传递给合成进程。同时,将动态参数和第一帧图像的绘制结果封装存入帧缓存中。
在第二个周期(t=1)中,合成进程从帧缓存将封装的结果取出,获取动态参数和第一帧图像的绘制结果。然后根据接收到的静态参数、获取到的动态参数对第一帧图像在帧缓存中进行模糊合成,得到包含模糊效果的第一帧图像的合成结果。
在第三个周期(t=2)中,显示进程根据帧缓存中的包含模糊效果的第一帧图像的合成结果,在屏幕上进行显示。
以下,通过图4示出的控件模糊方法的示意性流程图对本申请提供的控件模糊方法进行进一步说明。作为示例而非限定,该方法可以应用于上述终端设备中。
参考图4,该方法包括:
S201、获取第一帧图像中第一控件的动态参数。
S202、获取第一帧图像中第一控件的静态参数。
一些实施方式中,参考图4,执行S201和S202可以通过绘制渲染进程。绘制渲染进程可获取第一帧图像的绘制指令,并根据绘制指令在图层中绘制渲染第一帧图像。第一帧图像可以是控件动画中当前帧的帧图像。
其中,绘制指令包括了绘制的内容,以及绘制内容的模糊参数。绘制的内容是根据第一帧图像中包含的控件,以及包含的应用界面所决定的。例如,若控件为通知控件,应用界面为桌面的界面,则绘制的内容包括通知控件的界面绘制以及桌面的界面绘制。
模糊参数可分为动态参数和静态参数。动态参数可以包括每个帧中描述控件发生变化的参数。例如,动态参数可以包括控件是否进行模糊、控件的坐标、尺寸大小、圆角半径、透明度等随着时间会发生变化的参数中的一个或多个。静态参数则可以用于表示对所有帧进行模糊处理时的模糊效果参数,例如,静态参数可以包括第一帧图像的绘制结果进行叠加时的图层顺序、模糊类型、模糊强度中的一个或多个。
其中,模糊类型可以为高斯模糊、径向模糊、镜头模糊等。每个模糊类型对应一种模糊强度,例如,高斯模糊的模糊强度可以通过模糊半径(单位为像素)进行表示。
一些实施方式中,第一帧图像中可以包括一个或多个控件。一个或多个控件中,被标记为需要进行模糊的控件即为第一控件。标记控件是否需要模糊,既可以在控件属性中进行标记,也可以在动态参数中进行标记,本申请对此不做限制。
需要说明的是,由于每一帧的第一帧图像均需要一个绘制指令进行绘制,所以可以从第一帧图像的绘制指令中确定动态参数。确定的动态参数即为对当前帧图像进行模糊处理时的动态参数。
由于展示控件时,往往是通过动画的形式,所以每个时刻的第一帧图像中控件的位置、尺寸均会随时间发生变化。
作为示例,图5至图7示出了几种可能的实现方式。
假设控件动画的播放时间为0.5秒,控件动画的帧率为60每秒传输帧数(FramesPer Second,fps),则整个控件的动画效果由30个帧图像组成。
参考图5,控件动画的效果可以是由第一区域401放大扩展至第二区域402,每个时刻的帧图像中的控件都会发生变化,即每个帧图像对应一个动态参数。例如,参考图5示出的一种控件动画。在控件动画中,第一帧中控件的左上顶点坐标与最后一帧的左上顶点坐标相同,但是控件尺寸由第一区域401的尺寸扩大至第二区域402的尺寸。
或者,还可以参照图6所示的控件动画,第一帧中控件的中心坐标与最后一帧的中心坐标相同,控件尺寸由第三区域501的尺寸扩大至第四区域502的尺寸。
还有一种实现方式中,可以参照图7,所示的控件动画,第一帧中控件位于第五区域601的位置,控件向下运动并扩大,直至填充至第六区域602的位置。在这个过程中,控件的坐标、尺寸均随之变化。
S203、通过绘制渲染进程将发送静态参数发送给合成进程。
一些实施方式中,合成进程可以是浮雕(surfaceflinger)进程。通过绘制渲染进程将静态参数发送给合成进程时,可以通过黏合剂(Binder)的方式进行通信。Binder通信时,包括使用服务的客户(Client)进程(即合成进程)、提供服务的服务(Server)进程(即绘制渲染进程)、服务管理(ServiceManager)进程和Binder驱动。Binder驱动通过ServiceManage确定Server进程和Client进程,然后在Server进程和Client进程直接创建Binder通信的通达,Binder通信的通道是通过Binder驱动进行创建的。然后,Client进程通过Binder驱动访问Server进程中的服务或数据,实现数据的跨进程传送。
S204、通过绘制渲染进程调用图形处理器,绘制第一帧图像,得到第一帧图像的绘制结果。
一些实施方式中,第一帧图像的绘制结果包括一个或多个图层的绘制结果,每个图层的绘制结果是根据图层中的一个或多个控件绘制的。
图形处理器在绘制第一帧图像时,需要先获取第一帧图像的绘制指令,绘制指令用于指示绘制第一帧图像中包含的各个应用和/或控件。然后根据绘制指令在多个图层中分别绘制对应的应用界面或控件界面(即绘制结果)。其中,图层所占用的内存空间(即帧缓存)可以是应用程序在调用控件时,向系统申请并创建的存储空间。该存储空间可以位于GPU自带的显存中,或者在终端设备的运行内存中的划分部分空间作为帧缓存。帧缓存的数量可以有多个,每个帧缓存的空间大小可以根据控件的类型进行调整,在此不做限制。
作为示例,当前帧图像的绘制结果可以参考图8。图8示出了一种通知控件的控件界面图像。参考图5至图7中的示例,该控件的界面图像可以是控件动画中的最后一帧。其中包括通知内容“AAAA”和“BBBBBBBBBBBBBBBBBBBBBB”,该控件的宽为W,高为H。
S205、将第一帧图像的绘制结果与动态参数封装,得到封装的结果。
需要说明的是,封装可以是将第一帧图像的绘制结果和第一帧图像的动态参数进行关联存储,以使得进行合成时可以一同处理,具体例如,可以将第一帧图像绘制结果和第一帧图像的动态参数存储在同一段内存单元中。或者还可以通过指针将第一帧图像绘制结果和第一帧图像的动态参数关联在一起。
一些实施方式中,封装的结果可以存储在一个帧缓存中。帧缓存包括存储特征信息的区域以及存储数据的区域,存储特征信息的区域中可以包括如缓存的大小、位置、多个标记等。存储数据的区域则用于存储第一帧图像的绘制结果。在将封装的结果存入当前帧对应的帧缓存中时,可以将动态参数存入存储特征信息的区域中,将第一帧图像的绘制结果存入存储数据的区域。或者,也可以将动态参数与第一帧图像的绘制结果的绘制结果通过指针关联后,一起存入存储数据的区域。
S206、通过绘制渲染进程将封装的结果发送给合成进程。
一些实施方式中,可以通过将存储有封装的结果的帧缓存的标识发送给合成进程,然后通过合成进程调取帧缓存中的封装的结果,实现将封装的结果发送给合成进程。
其中,绘制渲染进程将帧缓存的标记发送给合成进程也可通过Binder的方式进行通信,其具体实现方式可参照S203,在此不做赘述。
S207、通过合成进程根据封装的结果获取第一帧图像的绘制结果与动态参数。
作为示例,图9示出了一种将封装的结果存入帧缓存中,并通过合成进程获取第一帧图像的绘制结果与动态参数的方法。图9示出的方法,可用于实现在图3中绘制渲染进程将第一帧图像的绘制结果与动态参数封装并存入帧缓存,然后通过合成进程获取第一帧图像的绘制结果与动态参数的过程。
其中,可以先在绘制渲染进程中将第一帧图像的绘制结果和动态参数封装,并存储在帧缓存中,生成一个缓存项。
然后合成进程中的缓存队列生产者(BufferQueue Producer)通过queueBuffer指令,将缓存项列为缓存队列(BufferQueue)中的一个缓存。然后,缓存队列消费者(BufferQueue Consumer)根据接收到的缓存项的标记,从第一帧图像对应的缓存项中获取第一帧图像的绘制结果和动态参数。最后,根据第一帧图像的绘制结果和动态参数在模糊图层中进行合成处理,其中,模糊图层可以存储在帧缓存中,合成进程可以在模糊图层中根据接收到的静态参数、获取到的动态参数对第一帧图像进行模糊合成,得到包含模糊效果的第一帧图像的合成结果。S208、通过合成进程调用图形处理器,根据动态参数和静态参数进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,动态参数包括控件的坐标、尺寸小、圆角半径。静态参数包括第一帧图像的绘制结果进行叠加时的图层顺序,以及进行模糊处理时的模糊类型、模糊强度。
在根据动态参数、静态参数与第一帧图像的绘制结果进行合成时,可以先根据动态参数确定第一帧图像的绘制结果中,需要进行模糊的区域。由于是对控件背景进行模糊,所以需要进行模糊的区域可以为第一控件对应的区域。
然后,根据静态参数获取进行第一帧图像的绘制结果进行叠加时的图层顺序,确定用于进行模糊的背景图层。然后根据第一控件对应的区域,从背景图层中获取与第一控件对应的区域相同的待模糊图像。接着,根据静态参数中的模糊类型、模糊强度对待模糊图像进行模糊处理,得到控件的模糊背景。最后,将第一帧图像的绘制结果与模糊背景叠加合成,得到包含模糊效果的第一帧图像的合成结果。
作为示例,图8、图10至图12示出了一种根据动态参数、静态参数与第一帧图像的绘制结果进行合成的场景。
参考图10,根据第一帧图像的绘制结果进行叠加时的图层顺序,确定用于进行模糊的背景图层为背景图层902。然后参考图8中第一帧图像的绘制结果中的控件的坐标、尺寸小、圆角半径,确定背景图层902上的第一控件对应的区域901。将背景图层902中与第一控件对应的区域901相同的区域截取出来,得到如图11所示的待模糊图像。
然后,参考图12,先根据模糊类型和模糊强度对待模糊图像1101进行模糊处理,得到控件的模糊背景1102。作为示例,模糊类型和模糊强度可以为高斯模糊,模糊半径15像素。
最后,将第一帧图像的绘制结果1103和控件的模糊背景1102在进行合成,得到包含模糊效果的第一帧图像的合成结果1104。
S209、通过合成进程根据第一帧图像的合成结果进行显示。
作为示例,参考图13,图13中手机屏幕显示的即为包含模糊效果的第一帧图像的合成结果。其中,在第一控件对应的区域显示了具有模糊效果的控件的界面1201,其余区域则为背景界面1202。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的控件模糊方法,图14示出了本申请实施例提供的控件模糊装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图14,该装置包括:获取模块1301,用于在绘制第一帧图像时,获取第一帧图像中第一控件的动态参数。
封装模块1302,用于将第一帧图像的绘制结果与动态参数封装。
合成模块1303,用于根据动态参数对第一帧图像的绘制结果进行合成,得到包含模糊效果的第一帧图像的合成结果,动态参数和第一帧图像的绘制结果是从封装的结果中获取的。
显示模块1304,用于根据第一帧图像的合成结果进行显示。
一些实施方式中,第一帧图像中包括至少一个控件。至少一个控件中控件属性包括模糊标记的控件为第一控件,模糊标记用于指示对第一控件进行模糊处理。
另一些实施方式中,第一帧图像中包括至少一个控件。至少一个控件的控件属性包括模糊标记。当模糊标记为真时,控件为第一控件,模糊标记用于指示对第一控件进行模糊处理。
一些实施方式中,动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。
一些实施方式中,获取模块1301,还用于获取第一帧图像中第一控件的静态参数,静态参数包括模糊类型和模糊强度。
合成模块1303,具体用于根据封装的结果、静态参数进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,合成模块1303,具体用于根据封装的结果获取第一帧图像的绘制结果与动态参数。根据动态参数,确定第一帧图像的绘制结果中第一控件对应的区域。根据静态参数,对第一帧图像的绘制结果中第一控件对应的区域进行模糊处理,得到模糊后的区域图像。根据第一帧图像的绘制结果、模糊后的区域图像进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,获取模块1301,具体用于根据绘制第一帧图像的绘制指令,获取第一控件的动态参数。
一些实施方式中,封装模块1302,具体用于将第一帧图像的绘制结果与动态参数关联存储,得到封装的结果。
一些实施方式中,第一帧图像的绘制结果包括一个或多个图层的绘制结果,每个图层的绘制结果是根据图层中的一个或多个控件绘制的,图层包括用于存储绘制结果和图层信息的内存空间。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图15为本申请一实施例提供的终端设备的结构示意图。如图15所示,该实施例的终端设备15包括:至少一个处理器1401(图15中仅示出一个处理器)、存储器1402以及存储在存储器1402中并可在至少一个处理器1401上运行的计算机程序1403。处理器1401执行计算机程序1403实现上述方法实施例中的步骤。
终端设备14可以是手机、桌上型计算机、笔记本、掌上电脑及云端服务器等终端设备。该终端设备可包括,但不仅限于,处理器1401、存储器1402。本领域技术人员可以理解,图15仅仅是终端设备14的举例,并不构成对终端设备14的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器1401可以是中央处理单元(Central Processing Unit,CPU),该处理器1401还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器1402在一些实施例中可以是终端设备14的内部存储单元,例如终端设备14的硬盘或内存。存储器1402在另一些实施例中也可以是终端设备14的外部存储设备,例如终端设备14上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器1402还可以既包括终端设备14的内部存储单元也包括外部存储设备。存储器1402用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器1402还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种芯片系统,芯片系统包括存储器和处理器,处理器执行存储器中存储的计算机程序,以实现上述各个方法实施例中的步骤。
本申请实施例提供了一种芯片系统,芯片系统包括处理器,处理器与上述的计算机可读存储介质耦合,处理器执行计算机可读存储介质中存储的计算机程序,以实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的方法、装置和终端设备,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
电子设备在使用时,经常会出现多个应用或控件的窗口界面进行叠加显示的情况。例如,参考图16,在电子设备响应用户操作后,可升起控制中心,控制中心的窗口界面12中包括多个功能按键13,如进行数据分享的按键、展示与电子设备连接的外部设备的状态的按键等。
控制中心的窗口升起时,为了凸显控制中心中的图标,可以对背景窗口11进行模糊处理。背景窗口11可以是电子设备的桌面或正在运行的应用程序的窗口界面等。
目前对多个应用的窗口进行叠加显示时,可以参照以下方案对其中的窗口进行模糊处理。
通过GPU依次绘制每个窗口图层到对应的帧缓存(Framebuffer)中。其中,在通过GPU进行绘制时,将需要模糊的窗口图层进行模糊处理后再绘制到帧缓存中。当GPU将所有图层绘制完成后,通过GPU将所有窗口图层合成,再通过合成加速装置(Displaysubsystem,DSS)进行输出并显示至显示屏。
其中,进行模糊处理时算法可以包括高斯模糊、动感模糊、径向模糊、镜头模糊等模糊算法中的一个。
在本申请中,模糊处理以高斯模糊为例,高斯模糊的计算过程是将图像与正态分布进行卷积,高斯模糊后的图像在视觉上与透过毛玻璃观察图像时的视觉效果类似。
但是,通过GPU绘制窗口图层的功耗较大。通过GPU绘制每个窗口图层,并通过GPU进行合成,会导致GPU的负载增大,功耗也随之增大,使得电子设备的续航能力降低。
为此,本申请提供了一种图层模糊方法,包括:获取第一帧图像的第一图层,第一图层包括第一帧图像的绘制结果。根据第一图层的模糊标记和图层顺序确定第二图层。根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。根据第一帧图像的合成结果进行显示。
在本申请中,只将根据模糊标记确定的第二图层通过GPU进行模糊处理,生成模糊图层,然后将模糊图层和非模糊图层进行合成,得到包含模糊效果的第一帧图像的合成结果。根据第一帧图像的合成结果进行显示。由于GPU只处理模糊标记指示的图层,无需对每一个图层进行处理,可以减少GPU的负载,降低GPU的功耗,进而增加电子设备的续航能力。
本申请实施例提供的图层模糊方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
在此以电子设备为手机进行说明。如图1和图17所示,该电子设备还可以包括:合成加速装置200。本领域技术人员可以理解,图1和图17中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
合成加速装置200为显示控制器的一部分,合成加速装置可以使用显示控制器中的多个通道进行加速叠加合成。其中,每个通道对应一个输入的图层。
本申请实施例的电子设备中软件结构与图2中相同,在此不做赘述。
图4示出了本申请提供的图层模糊方法的示意性流程图,作为示例而非限定,该方法可以应用于上述电子设备中。
参考图18,该方法包括:
S1801、获取第一帧图像的第一图层,第一图层包括第一帧图像的绘制结果。
S1802、根据第一图层确定第二图层。
图层是用于绘制图像的单元,图层对应的内存空间可以用于存储绘制结果和图层信息。图层信息可以包括色域空间、图层的位置、图层的标识、图层尺寸、图层分辨率等图层属性信息。图层信息还可以包括其他与图层相关的信息,例如,还可以包括模糊标记、模糊参数等。
在一些系统架构中,一个应用可以至少对应一个图层,例如,在安卓系统中,一个应用包括至少一个活动组件(activity),activity是一个可视化的应用程序组件,一个activity可以对应一个图层。例如,activity可以通过按键、文本、复选框等形式呈现。
绘制图层是将应用提供的与图层对应的控件内容绘制在图层对应的内存中,得到图层对应的绘制结果。而合成图层则是将一帧图像对应的一个或多个图层的绘制结果,按照图层顺序叠加进行合成得到合成结果。合成结果可用于在屏幕上显示一帧图像。
其中,第一帧图像的绘制结果包括第一帧图像对应的一个或多个图层中的绘制结果。例如,第一帧图像中包括了一个或多个应用,每个应用包括至少一个activity,则第一帧图像的绘制结果包括每个activity在对应图层上的绘制结果。
需要说明的是,第二图层为第一图层中用于生成模糊图层的图层。根据第一图层确定第二图层时,可以先获取第一图层中的模糊标记和第一图层的图层顺序,其中,模糊标记包括模糊顶部标记或模糊底部标记。图层顺序则是指一个或多个第一图层图层之间的垂直于屏幕方向的顺序。图层顺序可以是应用程序在创建图层时指定的,图层顺序可以存储在合成器(surfaceflinger)中。
一些实施方式中,第一图层可以由应用程序创建,用以绘制该应用的绘制结果(应用的窗口图像)或该应用调用的控件的绘制结果(控件的窗口图像)。
多个第一图层在进行叠加时,需要根据图层顺序,确定每个第一图层的叠加顺序。例如,若存在5个第一图层,即第一图层1、第一图层2、第一图层3、第一图层4和第一图层5。则第一图层1为垂直显示屏向外方向最下层的图层,第一图层5为垂直显示屏向外方向最上层的图层。例如,参考图19示出的多个第一图层的顺序,其中,包括第一图层1(41)、第一图层2(42)、第一图层3(43)、第一图层4(44)、第一图层5(45)。第一图层1位于所有图层中最靠近显示装置40的位置。第一图层的堆叠方向为垂直于显示装置40向外的方向(箭头所示方向),即第一图层5为最上层的图层。
一些实施方式中,第一帧图像中可以包括一个或多个控件。一个或多个控件中,被标记为需要进行模糊的控件即为第一控件。包含第一控件的第一图层包括模糊标记。模糊标记可以在生成第一图层时,记录在第一图层的图层信息中。
若模糊标记为顶部模糊标记,则第二图层为包括模糊标记的第一图层及下方的第一图层。例如,参考图19,若在第一图层4(44)上标记模糊顶部标记,则第一图层4(44)、第一图层3(43)、第一图层2(42)和第一图层1(41)为第二图层。
若模糊标记为底部模糊标记,则第二图层为包括模糊标记的第一图层下方的第一图层。例如,参考图19,若在第一图层4(44)上标记模糊底部标记,则第一图层3(43)、第一图层2(42)和第一图层1(41)为第二图层。
S1803、根据第一图层中第一控件的模糊参数和第二图层合成模糊图层。
其中,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。
一些实施方式中,模糊参数可以包括动态参数和静态参数。动态参数可以包括每个帧中描述控件发生变化的参数。例如,动态参数可以包括控件是否进行模糊、控件的坐标、尺寸大小、圆角半径、透明度等随着时间会发生变化的参数中的一个或多个。静态参数则可以用于表示对所有帧进行模糊处理时的模糊效果参数,例如,静态参数可以包括模糊类型、模糊强度中的一个或多个。
一些实施方式中,可以先根据动态参数,确定第二图层中待模糊的内容。
然后根据静态参数对待模糊的内容进行模糊处理,生成模糊图层。
作为示例,根据第一图层中第一控件的模糊参数和第二图层合成模糊图层时,可以参照图20示出的步骤实现:
如图20所示,生成模糊图层的步骤包括:
S18031、创建模糊图层,模糊图层中包括待模糊的内容。
一些实施方式中,可以根据模糊标记确定模糊图层的图层顺序,模糊图层的顺序在第一图层和第二图层之间。例如,若存在5个第一图层,即第一图层1、第一图层2、第一图层3、第一图层4和第一图层5,其中,第一图层4存在模糊标记。若第一图层4的模糊标记为顶部模糊标记,则第一图层1、第一图层2、第一图层3、第一图层4为第二图层,创建的模糊图层应位于第一图层5和第一图层4之间。若第一图层4的模糊标记为底部模糊标记,则第一图层1、第一图层2、第一图层3为第二图层,创建的模糊图层应位于第一图层4和第一图层3之间。
需要说明的是,在根据动态参数,确定第二图层中待模糊的内容时,可根据动态参数中指示的模糊区域(即需要进行模糊的控件对应的区域)在第二图层中获取待模糊的内容。其中,模糊区域可以通过图层蒙版的形式实现。例如,可参考图16,若动态参数中的模糊区域为控制中心的窗口12,则可以建立一个与控制中心的窗口12尺寸相同的图层蒙版。在将图层1、图层2、图层3进行合并得到待模糊的内容时,然后将图层蒙版范围以外的区域裁剪掉,仅保留图层蒙版范围之内的区域作为待模糊的内容。
还需说明的是,根据动态参数得到的待模糊的内容是绘制在模糊图层中的,即将模糊图层中的待模糊的内容存储在模糊图层对应的帧缓存中。
还有一种可能的实现方式中,若第一图层的图层信息不包含模糊标记时,则可以将第一图层按照图层顺序送入合成加速装置进行合成,从而用于显示至显示屏。
S18032、对待模糊的内容进行降采样,得到待模糊图像。
S18033、根据静态参数对待模糊的内容进行模糊处理,得到模糊图像。
S18034、将模糊图像放大至与待模糊的内容相同的尺寸,并更新至模糊图层中。
一些实施方式中,在对待模糊的内容进行降采样时,可以将待模糊的内容通过HwLayerBlurEngine服务,降采样至专门用于进行模糊处理的缓存中。然后根据模糊参数,通过GPU在该缓存中对待模糊的内容进行模糊处理,得到模糊图像。最后,再将通过HwLayerBlurEngine服务将模糊图像上采样至模糊图层对应的帧缓存中,得到与待模糊的内容尺寸相同的模糊图像。
需要说明的是,静态参数可以包括模糊类型、模糊强度等。例如,模糊类型可以为高斯模糊、径向模糊、镜头模糊等。每个模糊类型对应一种模糊强度,例如,高斯模糊的模糊强度可以通过模糊半径(单位为像素)进行表示。
将待模糊的内容进行下采样后尺寸减小,对其进行模糊处理时GPU耗费的功耗会更小。而且,对模糊的图像进行上采样对图像的质量不会产生明显影响。所以,通过将待模糊的内容进行下采样并进行模糊处理,再上采样至原尺寸,能够在不影响图像质量的情况下降低GPU的功耗,进一步的增强电子设备的续航能力。
S1804、根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,在根据第一图层中第一控件的模糊参数和第二图层合成模糊图层时,可以将第二图层合成至模糊图层中。即模糊图层中包括第二图层中的绘制结果。这个情况下,非模糊图层为模糊标记未指示的第一图层。例如,参考S18031中的示例,模糊标记为顶部模糊标记时,模糊图层包括了第一图层1、第一图层2、第一图层3、第一图层4中的绘制结果,第一图层5为非模糊图层。模糊标记为底部模糊标记时,模糊图层包括了第一图层1、第一图层2、第一图层3中的绘制结果,第一图层5、第一图层4为非模糊图层。
还有一种可能的实现方式中,在根据第一图层中第一控件的模糊参数和第二图层合成模糊图层时,可以不将第二图层合成至模糊图层中,而是保留第二图层,与模糊图层和非模糊图层一同进行合成,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果时,可以先获取模糊标记的数量。
若模糊标记的数量为1,则将模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果。
需要说明的是,合成加速装置包括多个通道,每个通道对应一个图层。在进行合成时,可能会出现模糊图层和非模糊图层的图层数量大于通道数的情况。所以,在将模糊图层和非模糊图层按照图层顺序送入合成加速装置进行合成之前,可以先获取第一数量和第二数量,第一数量为合成加速装置中通道的数量,第二数量为非模糊图层和模糊图层的数量之和。
若第二数量大于第一数量,则将图层顺序连续的至少两个非模糊图层合并为一个非模糊图层,以使得第二数量小于或等于第一数量。以保证可一次性将所有图层输入合成加速装置中进行合成。
作为示例,若第一数量为8,第二数量为9。则非模糊图层和模糊图层的数量之和为9。例如,可以包括第一图层1、第一图层2、第一图层3、第一图层4、第一图层5、第一图层6、第一图层7、第一图层8、模糊图层1共9个第一图层。其中,第一图层1、第一图层2、第一图层3、第一图层4、第一图层5、第一图层6、第一图层7、第一图层8为非模糊图层。为了保证能够一次将所有图层送入合成加速装置中进行合成,可以先通过GPU将图层顺序连续的两个第一图层合并,如将第一图层2、第一图层3进行合并,或者将第一图层6、第一图层7进行合并等,在此不做限制。合并后的第二数量变为8,与第一数量相等,即可一次性将所有图层输入合成加速装置中进行合成。
若模糊标记的数量为大于1的整数,则将模糊图层和非模糊图层输入图形处理单元,合成得到包含模糊效果的第一帧图像的合成结果。
S1805、根据第一帧图像的合成结果进行显示。
以下,给出几种图层模糊方法应用的实施流程,对本申请提供的图层模糊方法进行进一步的说明。
图21示出了一种图层模糊方法可能的实施流程,其中,多个图层中只有一个图层包括模糊标记。在合成器(Surfaceflinger)中,仅对模糊图层进行模糊处理,并未将第二图层合成至模糊图层中,而是在合成加速装置中对每个图层进行合成。
参考图21,该流程包括:
S2101、确定接收到的第一图层中是否包含模糊标记,若不包含模糊标记,则执行S2102,,若包含模糊标记,则执行S2104。
S2102、将接收到的第一图层输入合成器。
S2103、将合成器输出的第一图层输入合成加速装置,执行S2112。
S2104、将接收到的包含模糊标记的图层输入合成器。
其中,参考图21,其中,通过阴影的方式标记了包含模糊标记的第一图层,即第一图层4的图层标记包含了模糊标记。
S2105、判断模糊标记为底部模糊标记或顶部模糊标记,若为底部模糊标记,则执行S2106,若为顶部模糊标记,则执行S2109。
S2106、将包括模糊底部模糊标记的第一图层以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
参考图22,其中,模糊图层441位于第一图层4(44)之下,第一图层3(43)之上,模糊图层441中的待模糊内容是根据动态参数,将第一图层1(41)、第一图层2(42)和第一图层3(43)合并得到的。
S2107、根据静态参数对待模糊的内容进行模糊处理,生成模糊图层。
其中,对模糊图层中待模糊的内容进行模糊处理时的方法可以参照S2031-S2034中示出的方法,在此不做赘述。
S2108、将合成器输出的模糊图层、非模糊图层以及第二图层按照图层顺序输入合成加速装置,执行S2112。
S2109、将包括顶部模糊标记的第一图层以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
参考图23,其中,模糊图层441位于第一图层5(45)之下,第一图层4(44)之上,模糊图层441中的待模糊内容是根据动态参数,将第一图层1(41)、第一图层2(42)、第一图层3(43)和第一图层4(44)合并得到的。
S2110、对模糊图层中待模糊的内容进行模糊处理。
其中,模糊图层中待模糊的内容进行模糊处理的方法与S2107中相同,在此不做赘述。
S2111、将合成器输出的模糊图层、非模糊图层以及第二图层按照图层顺序输入合成加速装置,执行S2112。
S2112、合成加速装置将输入的图层进行合成,从而用于显示至显示装置。
其中,显示装置可以为显示屏,显示屏可以是电子设备上集成的显示屏,也可以是与电子设备连接的外置显示屏,在此不做限制。
图24示出了另一种图层模糊方法可能的实施流程,其中,多个图层中只有一个图层包括模糊标记。在合成器(Surfaceflinger)中,先对模糊图层进行模糊处理,然后将第二图层合成至模糊图层中,最后在合成加速装置中对模糊图层和非模糊图层进行合成。
参考图24,该流程包括:
S2401、确定接收到的第一图层中是否包含模糊标记,若不包含模糊标记,则执行S2402,,若包含模糊标记,则执行S2404。
S2402、将接收到的第一图层输入合成器。
S2403、将合成器输出的第一图层输入合成加速装置,执行S2412。
S2404、将接收到的包含模糊标记的图层输入合成器。
其中,S2404中的模糊标记以及图层的顺序与S2104中相同,在此不做赘述。
S2405、判断模糊标记为底部模糊标记或顶部模糊标记,若为底部模糊标记,则执行S2406,若为顶部模糊标记,则执行S2409。
S2406、将包括模糊底部模糊标记的第一图层以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
其中,第一图层和模糊图层的位置关系可以参照S2106,在此不做赘述。
S2407、根据静态参数对待模糊的内容进行模糊处理,生成模糊图层。
在本实施例中,对模糊图层中待模糊的内容进行模糊处理时,可先将待模糊的内容进行模糊处理,得到模糊图像。然后将模糊图像与第二图层进行合成,再更新至模糊图层中。即模糊图层中包括了模糊图层包括未模糊的区域和根据动态参数模糊后的区域。例如,第一图层4包括了底部模糊标记,即第一图层1、第一图层2、第一图层3为第二图层。可以先根据动态参数将第一图层1、第一图层2、第一图层3中待模糊的区域合并,作为待模糊的内容存入模糊图层中。然后,将待模糊的内容进行模糊处理,得到模糊图像。最后,将模糊图像与第二图层进行合成,更新至模糊图层中。
其中,对将待模糊的内容进行模糊处理可以参照S2031-S2034中示出的方法,在此不做赘述。
S2408、将合成器输出的模糊图层和非模糊图层按照图层顺序输入合成加速装置,执行S2412。
S2409、将包括顶部模糊标记的第一图层以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
其中,图层和模糊图层的位置关系可以参照S2109,在此不做赘述。
S2410、对模糊图层中待模糊的内容进行模糊处理。
其中,模糊图层中待模糊的内容进行模糊处理的方法与S2407中相同,在此不做赘述。
S2411、将合成器输出的模糊图层和非模糊图层按照图层顺序输入合成加速装置,执行S2412。
S2412、合成加速装置将输入的图层进行合成,从而用于显示至显示装置。
在本实施例中,由于在合成器中先合成了部分图层,可以保证合成器输出的图层数小于合成加速装置的通道数。能够有效避免由于合成器输出的图层数量大于合成加速装置的通道数量,导致合成加速装置无法一次合成所有图层的情况。
图25示出了另一种图层模糊方法可能的实施流程,其中,第一图层中有两个第一图层包括模糊标记。在合成器(Surfaceflinger)中,对模糊图层进行模糊处理,然后通过GPU将模糊图层和非模糊图层进行了合并,得到带模糊效果的合成图层。最后在合成加速装置中将包含模糊效果的第一帧图像的合成结果送显。
参考图25,该流程包括:
S2501、确定接收到的第一图层中是否包含模糊标记且模糊标记的数量大于1,若是则执行S2502。
S2502、将接收到的第一图层输入合成器。
其中,参考图24,输入合成器的第一图层1、第一图层2、第一图层3、第一图层4、第一图层5中,第一图层4和第一图层2包括了模糊标记。由于第一图层1为最底部的图层,则可以按照从下往上的顺序依次对包括模糊标记的第一图层进行处理。
S2503、判断第一图层2的模糊标记为底部模糊标记或顶部模糊标记,若为底部模糊标记,则执行S2504,若为顶部模糊标记,则执行S2513。
S2504、将第一图层2以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
其中,第一图层2和第一模糊图层的位置关系可以参照S2106,在此不做赘述。
S2505、根据静态参数待模糊的内容进行模糊处理,生成第一模糊图层。
其中,对第一模糊图层中待模糊的内容进行模糊处理的方法与S507中相同,在此不做赘述。
S2506、判断第一图层4的模糊标记为底部模糊标记或顶部模糊标记,若为底部模糊标记,则执行S2507,若为顶部模糊标记,则执行S2510。
S2507、将第一图层4以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
S2508、根据静态参数待模糊的内容进行模糊处理,生成第二模糊图层。
其中,对第二模糊图层中待模糊的内容进行模糊处理的方法与S2505中相同,在此不做赘述。
S2509、将非模糊与第二模糊图层合成,得到包含模糊效果的第一帧图像的合成结果,执行S2522。
S2510、将第一图层4、以及第一图层4以下的第一图层和第一模糊图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
S2511、根据静态参数待模糊的内容进行模糊处理,生成第二模糊图层。
其中,对第二模糊图层中待模糊的内容进行模糊处理的方法与S2505中相同,在此不做赘述。
S2512、将非模糊图层与第二模糊图层合成,得到包含模糊效果的第一帧图像的合成结果,执行S2522。
S2513、将第一图层2及以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
S2514、根据静态参数待模糊的内容进行模糊处理,生成第一模糊图层。
其中,对第一模糊图层中待模糊的内容进行模糊处理的方法与S2505中相同,在此不做赘述。
S2515、判断第一图层4的模糊标记为底部模糊标记或顶部模糊标记,若为底部模糊标记,则执行S2507,若为顶部模糊标记,则执行S2519。
S2516、将第一图层4以下的第一图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
S2517、根据静态参数待模糊的内容进行模糊处理,生成第二模糊图层。
其中,对第二模糊图层中待模糊的内容进行模糊处理的方法与S2505中相同,在此不做赘述。
S2518、将非模糊与第二模糊图层合成,得到包含模糊效果的第一帧图像的合成结果,执行S2522。
S2519、将第一图层4、以及第一图层4以下的第一图层和第一模糊图层作为第二图层,根据动态参数,确定第二图层中待模糊的内容。
S2520、根据静态参数待模糊的内容进行模糊处理,生成第二模糊图层。
其中,对第二模糊图层中待模糊的内容进行模糊处理的方法与S2505中相同,在此不做赘述。
S2521、将非模糊图层与第二模糊图层合成,得到包含模糊效果的第一帧图像的合成结果,执行S2522。
S2522、将带模糊效果的合成图层输入合成加速装置。
S2523、合成加速装置将输入的包含模糊效果的第一帧图像的合成结果输出至显示装置进行显示。
图26和图27示出了一种本实施例合成得到的窗口界面。
参考上述关于图16的示例,如图26所示,其中,第一图层1为2604、第一图层2为2603、第一模糊图层为2601、第二模糊图层为2602。第一蒙版2605和第二蒙版2606分别用于对第一模糊图层和第二模糊图层进行调色。在一些实施方式中,第一图层2为2603和第二蒙版2606可以合并,作为同一个第一图层进行处理。
在对图26所示出的窗口进行模糊时,可以为第一图层1添加顶部模糊标记,对第一图层2添加底部模糊标记。即第一模糊图层中为第一图层1模糊后的模糊图像,第二模糊图层中为第一图层1、第一模糊图层中对应模糊区域合成后进行模糊得到的模糊图像。
需要说明的是,第一蒙版和第二蒙版也可以由合成器创建,在创建时可以根据预设的调色参数进行设置。蒙版所覆盖的图层受到调色参数的影响,例如,调色参数可以是饱和度、对比度、亮度等,在此不做限制。
将图26中的多个图层进行合成后,可以得到图27所示的窗口界面。其中,第一模糊图层2601和第二模糊图层2602的调色参数可以不同,以便突出第二模糊图层2602中的模糊图像,例如,第一模糊图层2601的亮度可以小于第二模糊图层2602的亮度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例提供的图层模糊方法,图28示出了本申请实施例提供的图层模糊装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图28,该装置包括:
获取模块2801,用于获取第一帧图像的第一图层,第一图层包括第一帧图像的绘制结果。
确定模块2802,用于根据第一图层确定第二图层,第二图层为第一图层中用于生成模糊图层的图层。
合成模块2803,用于根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。
合成模块2803,还用于根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
显示模块2804,用于根据第一帧图像的合成结果进行显示。
一些实施方式中,确定模块2802,具体用于获取第一图层中的模糊标记和第一图层的图层顺序,模糊标记包括模糊顶部标记或模糊底部标记。若模糊标记为顶部模糊标记,则第二图层为包括模糊标记的第一图层及下方的第一图层。若模糊标记为底部模糊标记,则第二图层为包括模糊标记的第一图层下方的第一图层。
一些实施方式中,非模糊图层为模糊标记未指示的第一图层。
一些实施方式中,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
一些实施方式中,合成模块2803,具体用于根据动态参数,确定第二图层中待模糊的内容;根据静态参数对待模糊的内容进行模糊处理,生成模糊图层。
一些实施方式中,合成模块2803,具体用于创建模糊图层,模糊图层中包括待模糊的内容;对待模糊的内容进行降采样,得到待模糊图像;根据静态参数对待模糊的内容进行模糊处理,得到模糊图像;将模糊图像放大至与待模糊的内容相同的尺寸,并更新至模糊图层中。
一些实施方式中,合成模块2803,具体用于获取模糊标记的数量;若模糊标记的数量为1,则将模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果;若模糊标记的数量为大于1的整数,则将模糊图层和非模糊图层输入图形处理单元,合成得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,获取模块2801还用于获取第一数量,第一数量为合成加速装置中通道的数量;获取第二数量,第二数量为非模糊图层和模糊图层的数量之和;若第二数量大于第一数量,则合成模块还用于将图层顺序连续的至少两个非模糊图层合并为一个非模糊图层,以使得第二数量小于或等于第一数量。
一些实施方式中,合成模块2803,还用于若第一图层的图层信息不包含模糊标记,则将第一图层按照图层顺序送入合成加速装置进行合成,得到第一帧图像的合成结果。
一些实施方式中,图层顺序是指第一图层图层之间的垂直于屏幕方向的顺序。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图29为本申请一实施例提供的电子设备的结构示意图。如图29所示,该实施例的电子设备29包括:至少一个处理器2901(图29中仅示出一个处理器)、存储器2902以及存储在存储器2902中并可在至少一个处理器2901上运行的计算机程序2903。处理器2901执行计算机程序2903实现上述方法实施例中的步骤。
电子设备29可以是手机、桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。该电子设备可包括,但不仅限于,处理器2901、存储器2902。本领域技术人员可以理解,图15仅仅是电子设备29的举例,并不构成对电子设备29的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器2901可以是中央处理单元(Central Processing Unit,CPU),该处理器2901还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器2902在一些实施例中可以是电子设备29的内部存储单元,例如电子设备29的硬盘或内存。存储器2902在另一些实施例中也可以是电子设备29的外部存储设备,例如电子设备29上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器2902还可以既包括电子设备29的内部存储单元也包括外部存储设备。存储器2902用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器2902还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种芯片系统,芯片系统包括存储器和处理器,处理器执行存储器中存储的计算机程序,以实现上述各个方法实施例中的步骤。
本申请实施例提供了一种芯片系统,芯片系统包括处理器,处理器与上述的计算机可读存储介质耦合,处理器执行计算机可读存储介质中存储的计算机程序,以实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的图层模糊方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的图层模糊装置和设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
用户在使用终端设备观看包含视频的页面或应用窗口时,如果出现需要进行模糊处理的控件,如通知推送、升起控制中心等。则在对控件进行模糊处理时,需要使用视频的画面进行模糊合成。如果视频使用的压缩格式无法被GPU直接使用时,就需要对视频进行转码。
视频在生成时的压缩格式有许多种,当前终端设备GPU有可能不支持视频生成时的压缩格式。例如,如果视频生成时采用了华为帧缓存压缩(Huawei framebuffercompress,HFBC),但是GUP采用了海思(Hisi)或高级精简指令集处理器(Advanced RISCMachines,ARM)芯片。由于海思和ARM的GPU不支持HFBC,所以需要将HFBC转换为ARM帧缓冲压缩(Arm framebuffer compress,AFBC),然后在通过GPU进行模糊合成。
一种应用场景中,在播放视频时,可能会接收到推送消息。推送消息的控件图层叠加在视频图层之上,且使用了视频图层作为背景图像渲染合成了模糊背景的特效。若播放的视频的压缩格式与当前终端设备GPU支持的压缩格式不匹配,则需要在进行模糊合成前,先对视频进行硬件转码。
目前对视频进行硬件转码的流程可以参照图30示出的流程。
参照图30,现有的视频转码与模糊合成是同步进行的,即在一个周期中,同时完成视频转码和模糊合成。两次同步信号之间间隔的时间为一个周期,周期的时长可以取决于屏幕的刷新率,例如,若屏幕的刷新率为60Hz,则每个周期的时长为1/60秒,即约为16.667毫秒。其中,图形处理器合成是合成进程调用GPU实现的,可用于进行模糊合成。硬件转码则是由支持硬件转码的物理器件实现,如支持硬件转码的中央处理器(Central ProcessingUnit,CPU),硬件转码芯片、硬件转码网关等。
在第一个周期(t=0)中,合成进程先通过先获取硬件转码服务的权限,在得到硬件转码服务的权限之后,将视频的第一帧进行硬件转码。例如,将视频的第一帧发送给硬件转码芯片,硬件转码芯片在缓存中对第一帧进行转码,并将转码结果记录在该缓存中。最后为该缓存添加第一帧转码成功的标记。
在硬件转码芯片转码的过程中,合成进程保持等待状态,直到得到转码结果后,合成进程将该缓存中的转码结果通过嵌入式图形库图像(Embedded-System GraphicsLibrary,EGLImage)上传至GPU,生成视频图层第一帧的纹理。然后合成进程通过GPU将视频图层与其他图层(如控件图层等)进行模糊合成,然后输出至显示设备进行送显。
其中,EGLImage则是一种由开放图形库(Open Graphics Library,OpenGL)或矢量图形算法标准(Open Vector Graphics,OpenVG)创建的共享资源类型,可以用于共享图像数据。嵌入式图形库(Embedded-System Graphics Library,EGL)则是OpenGL或OpenVG与本地窗口系统(如安卓系统中的SurfaceView)中间的一个接口层。
在现有技术中,模糊合成和硬件转码服务是同步的,即这两个服务在一个周期中处理的是待转码视频文件的同一帧。但是,由于等待硬件转码完成和进行模糊合成均需要一定的时长,当一个周期内无法既完成硬件转码也完成模糊合成时,模糊合成并送显的步骤只能在下一个周期完成,导致合成进程堵塞,使得合成速度减慢、在视觉上出现卡顿或丢帧。
为此,本申请提供了一种转码方法来处理待转码视频。
该方法包括:获取第x帧第一帧图像的第一图层,x为大于0的整数。根据第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层。若确定第二图层包括待转码的视频图层,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的。根据包含模糊效果的第x帧第一帧图像的合成结果进行显示。
在进行控件模糊时,若模糊图层中包括待转码的视频图层,本实施例中提供的转码方法可以使用待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果。由于进行模糊合成时,使用的是已经转码完成的转码结果,模糊合成与硬件转码异步进行,能够节省等待转码完成的时间,减少合成进程堵塞的概率,有效提高了合成的速度,在视觉上更加流畅,用户的视觉体验更好。
本申请实施例提供的转码方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
在此以终端设备为手机进行说明。如图2和图31所示,该终端设备还可以包括:硬件转码模块210。本领域技术人员可以理解,图2和图31中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
硬件转码模块210则可以为硬件转码芯片、硬件转码网关或者是CPU中提供的硬件转码功能的模块等。
本申请实施例的电子设备中软件结构与图2中相同,在此不做赘述。
图32示出了本申请提供的转码方法的示意性流程图,作为示例而非限定,该方法可以应用于上述终端设备中。
参考图32,通过本申请提供的转码方法来处理待转码视频,可以包括:
S3201、获取第x帧第一帧图像的第一图层。
S3202、根据第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层。
图层是用于绘制图像的单元,图层对应的内存空间可以用于存储绘制结果和图层信息。图层信息可以包括色域空间、图层的位置、图层的标识、图层尺寸、图层分辨率等图层属性信息。图层信息还可以包括其他与图层相关的信息,例如,还可以包括模糊标记、模糊参数等。
在一些系统架构中,一个应用可以至少对应一个图层,例如,在安卓系统中,一个应用包括至少一个活动组件(activity),activity是一个可视化的应用程序组件,一个activity可以对应一个图层。例如,activity可以通过按键、文本、复选框等形式呈现。
绘制图层是将应用提供的与图层对应的控件内容绘制在图层对应的内存中,得到图层对应的绘制结果。而合成图层则是将一帧图像对应的一个或多个图层的绘制结果,按照图层顺序叠加进行合成得到合成结果。合成结果可用于在屏幕上显示一帧图像。
其中,第一帧图像的绘制结果包括第一帧图像对应的一个或多个图层中的绘制结果。例如,第一帧图像中包括了一个或多个应用,每个应用包括至少一个activity,则第一帧图像的绘制结果包括每个activity在对应图层上的绘制结果。
其中,图层顺序则是指一个或多个第一图层图层之间的垂直于屏幕方向的顺序。图层顺序可以是应用程序在创建图层时指定的,图层顺序可以存储在合成器(surfaceflinger)中。
一些实施方式中,第一图层可以由应用程序创建,用以绘制该应用的绘制结果(应用的窗口图像)或该应用调用的控件的绘制结果(控件的窗口图像)。
多个第一图层在进行叠加时,需要根据图层顺序,确定每个第一图层的叠加顺序。例如,若存在5个第一图层,即第一图层1、第一图层2、第一图层3、第一图层4和第一图层5。则第一图层1为垂直显示屏向外方向最下层的图层,第一图层5为垂直显示屏向外方向最上层的图层。例如,参考图33示出的多个第一图层的顺序,其中,包括第一图层1(31)、第一图层2(32)、第一图层3(33)、第一图层4(34)、第一图层5(35)。第一图层1位于所有图层中最靠近显示装置30的位置。第一图层的堆叠方向为垂直于显示装置30向外的方向(箭头所示方向),即第一图层5为最上层的图层。
S3203、若确定第二图层包括待转码的视频图层,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果。
其中,待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的。
S3204、若确定第二图层包括待转码的视频图层,则对视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果。
一些实施方式中,确定第二图层包括待转码的视频图层,包括:遍历第二图层,获取每个第二图层的压缩格式。若第二图层的压缩格式为视频的压缩格式,则确定第二图层为视频图层。获取图像处理器支持的视频压缩格式列表。若第二图层的压缩格式不在GPU支持的视频压缩格式列表中,则确定第二图层为待转码的视频图层。
一些实施方式中,每个第二图层对应一个用于存储该图层内容的内存空间,可以获取该内存空间中存储内容的压缩格式,作为第二图层的压缩格式。视频的压缩格式可以包括HFBC、AFBC等,若第二图层的压缩格式为HFBC或AFBC,则可以确定第二图层为视频图层。在获取GPU支持的视频压缩格式列表时,可以通过HAL层向GPU发送查询指令,以查询GPU支持的视频压缩格式。作为示例,若GPU的支持列表包括AFBC,但是获取的第二图层的压缩格式为HFBC,GPU无法直接处理HFBC格式的视频,则可以确定第二图层为待转码的视频图层。
一些实施方式中,根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成之前,可以先检测第x-1帧的转码完成标记。若检测到第x-1帧的转码完成标记,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。若未检测到第x-1帧的转码完成标记,则等待待转码视频的第x-1帧的转码处理完成后再根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。
需要说明的是,检测完成标记是在第x-1帧若检测到第x-1帧的转码完成标记,则表示第x-1帧已经完成转码,第x-1帧的转码结果可以直接用于模糊合成,否则需要等待第x-1帧转码完成,得到第x-1帧转码结果才能进行模糊合成。
一些实施方式中,根据待转码视频的第x-1帧的转码结果进行模糊合成时,可以通过合成进程(surfaceflinger)将存储在第x-1帧对应的转码缓存中的第x-1帧的转码结果使用EGLImage上传至GPU,绘制生成纹理,然后将纹理用于模糊合成。其中,转码结果指的是将当前终端设备的GPU无法直接使用的数据编码转为可使用的数据编码后,存储在缓存中的数据。例如,若待转码视频在创建时是通过HFBC进行编码的,但是当前终端设备的GPU并不支持HFBC,而是支持AFBC。则待转码视频中第x-1帧的转码结果为通过AFBC进行编码的第x-1帧的图像文件。
需要说明的是,EGLImage是由OpenGL或者OpenVG等EGL客户的应用程序接口(Application Programming Interface,API)创建的共享资源类型。虽然EGLImage本意是用于共享二维(2D)图像数据,但是并未明确限定共享数据的资源类型以及共享目的,所以EGLImage理论上还可以用于共享其他的资源类型,如文本数据、音频数据等。在本申请中,EGLImage用于根据其中共享的转码结果创建一个2D纹理。
作为示例,在视频图层的缓存中,存储了第x-1帧的转码结果。surfaceflinger可以创建一个EGLImage对象,该EGLImage在被创建时,需要考虑目标(Target)和缓存(Buffer)。Target可以决定创建EGLImage的方式。例如,在安卓系统中,专门定义了名称为“EGL_NATIVE_BUFFER_ANDROID”的Target。该Target支持通过“ANativeWindowBuffer”等结构来创建EGLImage对象。而Buffer则对应创建EGLImage对象时使用的数据,例如,在本实施例中,Buffer对应的数据为第x-1帧的转码结果。
还需说明的是,GPU生成的纹理是能够被GPU识别的像素格式,能够被快速寻址并采样。常用的GPU纹理格式包括RGB-565、RGBA-4444、RGBA-5551、RGB-888、RGBA-8888等。GPU纹理还可以进行压缩,以减少纹理所占用的空间。例如,若终端设备为手机、平板电脑等移动设备,则可以基于嵌入式系统三维图形库(OpenGL for Embedded Systems,OpenGL ES)对纹理进行压缩。基于OpenGL ES的常见压缩纹理包括爱立信公司纹理压缩(Ericssontexture compression,ETC1)、PowerVR公司纹理压缩(texture compression,PVRTC)、冶天公司纹理压缩(ATI texture compression,ATITC)、S3公司纹理压缩S3TC(S3 texturecompression)等。GPU生成的纹理在经过CPU编码后,可以得到相应的图像文件,用于模糊合成。
一些实施方式中,第一图层包括第一帧图像的绘制结果。
根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,包括:根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,第二图层中的视频图层包括待转码视频的第x-1帧的转码结果,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
其中,第二图层为第一图层中用于生成模糊图层的图层,非模糊图层为模糊标记未指示的第一图层,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
一些实施方式中,对视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果,包括:获取硬件转码服务。通过硬件转码服务对待转码视频的第x帧进行转码处理。在待转码视频的第x帧转码处理完成后,将待转码视频的第x帧的转码处理结果存储并添加标记第x帧的转码完成标记。
一些实施方式中,通过硬件转码服务对待转码视频的第x帧进行转码处理,包括:获取待转码视频的第x帧的第一压缩格式。将待转码视频的第x帧送入硬件转码模块,通过硬件转码模块将第一压缩格式转换为第二压缩格式,得到待转码视频的第x帧的转码结果。
需要说明的是,硬件转码模块可以为硬件转码芯片或者是CPU中提供的硬件转码功能的模块。在进行转码时,可以先获取待转码视频的第x帧及待转码视频的第一压缩格式。将待转码视频的第x帧送入硬件转码模块,将第一压缩格式转换为第二压缩格式,得到第x帧的转码结果并存入第n帧对应的转码缓存中。
作为示例,若硬件转码模块为CPU中提供的硬件转码功能的模块。则转码线程可以从CPU中获取硬件转码服务的权限,然后将待转码视频的第x帧(压缩格式为第一压缩格式,如HFBC)传输至第x帧对应的缓存中,CPU在该缓存中对第x帧进行转码处理,得到第x帧的转码结果(压缩格式为第二压缩格式,如AFBC),并存入第x帧对应的缓存。
需要说明的是,在得到第x帧的转码结果后,还可以为第x帧对应的缓存添加第x帧转码完成的标记,以便合成进程确定第x帧已经完成转码并对其进行模糊合成。其中,缓存中包括存储特征信息的区域以及存储数据的区域,存储特征信息的区域中可以包括如缓存的大小、位置、多个标记等,添加的转码完成的标记即可存储在该区域中。而转码结果则可以存储在存储数据的区域中。
一些实施方式中,当x=1时,该帧为待转码视频的第一帧,这个情况下,可以在第一个周期中将待转码视频的第1帧通过同步转码进行处理,然后在第二个周期中,仍然使用第1帧的转码结果进行模糊合成,同时对第2帧进行转码,实现异步处理。
或者,还可以在第一个周期中不使用视频图层进行合成,只对待转码视频的第1帧进行转码,在第二个周期中使用待转码视频的第1帧的转码结果进行模糊合成,同时对第2帧进行转码,实现异步处理。
S3205、根据包含模糊效果的第x帧第一帧图像的合成结果进行显示。
图34示出了一种转码方法在应用时的流程示意图。参考图34,该方法包括:
S3401、判断第一图层的图层信息是否包括模糊标记,若是,则执行S3402,否则执行S3404。
S3402、根据第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层。
在本实施例中,S3401和S3402的实现方式可以参照S201和S202中示出的方式,在此不做赘述,
S3403、判断第二图层是否包括待转码的视频图层,若是,则执行S3405,否则执行S3404。
在本实施例中,判断第二图层是否包括待转码的视频图层可以参照S203和S204中示出的方式,在此不做赘述。
S3404、根据第一图层和第二图层进行模糊合成,得到包含模糊效果的第一帧图像的合成结果,执行S3412。
在本实施例中,根据第一图层和第二图层进行模糊合成,得到包含模糊效果的第一帧图像的合成结果可以参照S203和S204中示出的方式,在此不做赘述。
S3405、判断视频图层是否为待转码视频的第一帧,若是,则执行S3406,否则执行S3408。
在本实施例中,判断视频图层是否为待转码视频的第一帧,可以参照S203和S204中示出的方式,在此不做赘述。
S3406、对待转码的视频图层中待转码视频的第一帧进行转码处理。
S3407、根据待转码的视频图层中待转码视频的第一帧的转码结果进行模糊合成,执行S3412。
在本实施例中,S3406和S3407为同步转码的方案,其实现方式不做赘述。
将同步转码转变为异步转码的方法可以参照S203和S204中示出的方式,在此亦不做赘述。
S3408、判断是否检测到前一帧的转码完成标记,则执行S3410和S3411,否则执行S3409。
S3409、等待前一帧转码完成,完成后执行S3410和S3411。
S3410、根据待转码的视频图层中待转码视频的前一帧的转码结果进行模糊合成。
S3411、对待转码的视频图层中待转码视频的当前帧进行转码处理。
在本实施例中,S3408-S3409中进行异步转码的方法,可以参照S203和S204中示出的方式,在此不做赘述。
S3412、根据第一帧图像的合成结果进行显示。
以下,参考图35对本申请提供的转码方法加以说明。
如图35所示,图中横轴方向为时间,纵轴方向为不同进程或器件所执行的动作。
其中,两个同步信号之间时间为一个周期,设用于显示的屏幕刷新率为60hz,则一个周期为16.667ms。
参考图7,在第一个周期中,图形处理器合成(GPU合成)可以空闲一个周期,同时,转码进程获取硬件转码服务对待转码视频的第一帧(t=0)进行转码。转码后的结果存在第一帧对应的缓存中,同时转码进程为第一帧对应的缓存添加转码成功标记。
在第二个周期中,GPU合成调用第一帧对应的缓存中存储的转码结果,在视频图层上,生成第一帧(t=1)的纹理,用于模糊合成。同时,转码线程获取硬件转码服务对待转码视频的第二帧(t=1)进行转码,转码后的结果存在第二帧对应的缓存中,同时转码线程为第二帧对应的缓存添加转码成功标记。
在本申请中,依次对待转码视频的每一帧进行转码,同时使用前一帧的转码结果进行模糊合成并送显。节省了等待转码完成的时间。有效提高了模糊合成的速度,减少出现丢帧卡顿的问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的转码方法,图36示出了本申请实施例提供的转码装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图36,本申请实施例提供了一种转码装置,该装置包括:
获取模块3601,用于获取第x帧第一帧图像的第一图层,x为大于0的整数。
确定模块3602,用于根据第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层。
合成模块3603,用于若确定第二图层包括待转码的视频图层,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的。
显示模块3604,用于根据包含模糊效果的第x帧第一帧图像的合成结果进行显示。
一些实施方式中,确定模块3602,还用于遍历第二图层,获取每个第二图层的压缩格式。若第二图层的压缩格式为视频的压缩格式,则确定第二图层为视频图层。获取图像处理器支持的视频压缩格式列表。若第二图层的压缩格式不在GPU支持的视频压缩格式列表中,则确定第二图层为待转码的视频图层。
一些实施方式中,参考图37,该装置还包括转码模块3605,用于对视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果。
一些实施方式中,转码模块3605,具体用于获取硬件转码服务。通过硬件转码服务对待转码视频的第x帧进行转码处理。在待转码视频的第x帧转码处理完成后,将待转码视频的第x帧的转码处理结果存储并添加标记第x帧的转码完成标记。
一些实施方式中,转码模块3605,具体用于获取待转码视频的第x帧的第一压缩格式。将待转码视频的第x帧送入硬件转码模块,通过硬件转码模块将第一压缩格式转换为第二压缩格式,得到待转码视频的第x帧的转码结果。
一些实施方式中,参考图38,该装置还包括检测模块3606,用于检测第x-1帧的转码完成标记。
合成模块3603,具体用于若检测到第x-1帧的转码完成标记,则根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。若未检测到第x-1帧的转码完成标记,则等待待转码视频的第x-1帧的转码处理完成后再根据待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。
一些实施方式中,第一图层包括第一帧图像的绘制结果。合成模块3603,具体用于根据第一图层中第一控件的模糊参数和第二图层合成模糊图层,第二图层中的视频图层包括待转码视频的第x-1帧的转码结果,模糊图层包括未模糊的区域和根据第一控件的模糊参数模糊后的区域。根据模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
一些实施方式中,第二图层为第一图层中用于生成模糊图层的图层。
一些实施方式中,非模糊图层为模糊标记未指示的第一图层。
一些实施方式中,模糊参数包括动态参数和静态参数。动态参数为第一控件中随时间发生变化的参数。动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。静态参数包括模糊类型和模糊强度。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图39为本申请一实施例提供的终端设备的结构示意图。如图39所示,该实施例的终端设备39包括:至少一个处理器3901(图39中仅示出一个处理器)、存储器3902以及存储在存储器3902中并可在至少一个处理器3901上运行的计算机程序3903。处理器3901执行计算机程序3903实现上述方法实施例中的步骤。
终端设备39可以是手机、桌上型计算机、笔记本、掌上电脑及云端服务器等终端设备。该终端设备39可包括,但不仅限于,处理器3901、存储器3902。本领域技术人员可以理解,图11仅仅是终端设备39的举例,并不构成对终端设备39的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器3901可以是中央处理单元(Central Processing Unit,CPU),该处理器3901还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器3902在一些实施例中可以是终端设备39的内部存储单元,例如终端设备39的硬盘或内存。存储器3902在另一些实施例中也可以是终端设备39的外部存储设备,例如终端设备39上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器3902还可以既包括终端设备39的内部存储单元也包括外部存储设备。存储器3902用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器3902还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种芯片系统,芯片系统包括存储器和处理器,处理器执行存储器中存储的计算机程序,以实现上述各个方法实施例中的步骤。
本申请实施例提供了一种芯片系统,芯片系统包括处理器,处理器与上述的计算机可读存储介质耦合,处理器执行计算机可读存储介质中存储的计算机程序,以实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的转码方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的转码装置和终端设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (64)

1.一种控件模糊方法,其特征在于,所述方法包括:
在绘制第一帧图像时,获取所述第一帧图像中第一控件的动态参数;
将所述第一帧图像的绘制结果与所述动态参数封装;
根据动态参数对第一帧图像的绘制结果进行合成,得到包含模糊效果的所述第一帧图像的合成结果,所述动态参数和所述第一帧图像的绘制结果是从所述封装的结果中获取的;
根据所述第一帧图像的合成结果进行显示。
2.根据权利要求1所述的方法,其特征在于,所述第一帧图像中包括至少一个控件;所述至少一个控件中控件属性包括模糊标记的控件为所述第一控件,所述模糊标记用于指示对所述第一控件进行模糊处理。
3.根据权利要求1所述的方法,其特征在于,所述第一帧图像中包括至少一个控件;所述至少一个控件的控件属性包括模糊标记;
当所述模糊标记为真时,所述控件为所述第一控件,所述模糊标记用于指示对所述第一控件进行模糊处理。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述动态参数为所述第一控件中随时间发生变化的参数;
所述动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述根据所述封装的结果进行合成,得到包含模糊效果的所述第一帧图像的合成结果之前,还包括:
获取所述第一帧图像中第一控件的静态参数,所述静态参数包括模糊类型和模糊强度;
所述根据所述封装的结果进行合成,得到包含模糊效果的所述第一帧图像的合成结果,包括:
根据所述封装的结果、所述静态参数进行合成,得到包含模糊效果的所述第一帧图像的合成结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述封装的结果、所述静态参数进行合成,得到包含模糊效果的所述第一帧图像的合成结果,包括:
根据所述封装的结果获取所述第一帧图像的绘制结果与所述动态参数;
根据所述动态参数,确定所述第一帧图像的绘制结果中所述第一控件对应的区域;
根据所述静态参数,对所述第一帧图像的绘制结果中所述第一控件对应的区域进行模糊处理,得到模糊后的区域图像;
根据所述第一帧图像的绘制结果、所述模糊后的区域图像进行合成,得到所述包含模糊效果的所述第一帧图像的合成结果。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述获取所述第一帧图像中第一控件的动态参数,包括:
根据绘制所述第一帧图像的绘制指令,获取所述第一控件的动态参数。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述将所述第一帧图像的绘制结果与所述动态参数封装,包括:
将所述第一帧图像的绘制结果与所述动态参数关联存储,得到所述封装的结果。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述第一帧图像的绘制结果包括一个或多个图层的绘制结果,每个所述图层的绘制结果是根据所述图层中的一个或多个控件绘制的,所述图层包括用于存储绘制结果和图层信息的内存空间。
10.一种控件模糊装置,其特征在于,所述装置包括:
获取模块,用于在绘制第一帧图像时,获取所述第一帧图像中第一控件的动态参数;
封装模块,用于将所述第一帧图像的绘制结果与所述动态参数封装;
合成模块,用于根据所述封装的结果进行合成,得到包含模糊效果的所述第一帧图像的合成结果;
显示模块,用于根据所述第一帧图像的合成结果进行显示。
11.根据权利要求10所述的装置,其特征在于,所述第一帧图像中包括至少一个控件;所述至少一个控件中控件属性包括模糊标记的控件为所述第一控件,所述模糊标记用于指示对所述第一控件进行模糊处理。
12.根据权利要求10所述的装置,其特征在于,所述第一帧图像中包括至少一个控件;所述至少一个控件的控件属性包括模糊标记;
当所述模糊标记为真时,所述控件为所述第一控件,所述模糊标记用于指示对所述第一控件进行模糊处理。
13.根据权利要求10-12任一项所述的装置,其特征在于,所述动态参数为所述第一控件中随时间发生变化的参数;
所述动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述获取模块,还用于获取所述第一帧图像中第一控件的静态参数,所述静态参数包括模糊类型和模糊强度;
所述合成模块,具体用于根据所述封装的结果、所述静态参数进行合成,得到包含模糊效果的所述第一帧图像的合成结果。
15.根据权利要求14所述的装置,其特征在于,所述合成模块,具体用于根据所述封装的结果获取所述第一帧图像的绘制结果与所述动态参数;
根据所述动态参数,确定所述第一帧图像的绘制结果中所述第一控件对应的区域;
根据所述静态参数,对所述第一帧图像的绘制结果中所述第一控件对应的区域进行模糊处理,得到模糊后的区域图像;
根据所述第一帧图像的绘制结果、所述模糊后的区域图像进行合成,得到所述包含模糊效果的所述第一帧图像的合成结果。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述获取模块,具体用于根据绘制所述第一帧图像的绘制指令,获取所述第一控件的动态参数。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述封装模块,具体用于将所述第一帧图像的绘制结果与所述动态参数关联存储,得到所述封装的结果。
18.根据权利要求10-17任一项所述的装置,其特征在于,所述第一帧图像的绘制结果包括一个或多个图层的绘制结果,每个所述图层的绘制结果是根据所述图层中的一个或多个控件绘制的,所述图层包括用于存储绘制结果和图层信息的内存空间。
19.一种终端设备,包括至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述的方法。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。
21.一种图层模糊方法,应用于电子设备,其特征在于,包括:
获取第一帧图像的第一图层,所述第一图层包括所述第一帧图像的绘制结果;
根据所述第一图层确定第二图层,所述第二图层为所述第一图层中用于生成模糊图层的图层;
根据所述第一图层中第一控件的模糊参数和所述第二图层合成模糊图层,所述模糊图层包括未模糊的区域和根据所述第一控件的模糊参数模糊后的区域;
根据所述模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果;
根据所述第一帧图像的合成结果进行显示。
22.根据权利要求21所述的方法,其特征在于,所述根据所述第一图层确定第二图层,包括:
获取所述第一图层中的模糊标记和所述第一图层的图层顺序,所述模糊标记包括模糊顶部标记或模糊底部标记;
若所述模糊标记为顶部模糊标记,则所述第二图层为包括所述模糊标记的第一图层及下方的第一图层;和/或,
若所述模糊标记为底部模糊标记,则所述第二图层为包括所述模糊标记的第一图层下方的第一图层。
23.根据权利要求21或22所述的方法,其特征在于,所述非模糊图层为所述模糊标记未指示的第一图层。
24.根据权利要求21-23任一项所述的方法,其特征在于,所述模糊参数包括动态参数和静态参数;
所述动态参数为所述第一控件中随时间发生变化的参数;
所述动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个;
所述静态参数包括模糊类型和模糊强度。
25.根据权利要求24所述的方法,其特征在于,所述根据所述第一图层中第一控件的模糊参数和所述第二图层合成模糊图层,包括:
根据所述动态参数,确定所述第二图层中待模糊的内容;
根据所述静态参数对所述待模糊的内容进行模糊处理,生成所述模糊图层。
26.根据权利要求25所述的方法,其特征在于,所述根据所述静态参数对所述待模糊的内容进行模糊处理,生成所述模糊图层,包括:
创建模糊图层,所述模糊图层中包括所述待模糊的内容;
对所述待模糊的内容进行降采样,得到待模糊图像;
根据所述静态参数对所述待模糊的内容进行模糊处理,得到模糊图像;
将所述模糊图像放大至与所述待模糊的内容相同的尺寸,并更新至所述模糊图层中。
27.根据权利要求21-26任一项所述的方法,其特征在于,所述根据所述模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果,包括:
获取所述模糊标记的数量;
若所述模糊标记的数量为1,则将所述模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果;
若所述模糊标记的数量为大于1的整数,则将所述模糊图层和非模糊图层输入图形处理单元,合成得到包含模糊效果的第一帧图像的合成结果。
28.根据权利要求27所述的方法,其特征在于,在将所述模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果之前,所述方法还包括:
获取第一数量,所述第一数量为所述合成加速装置中通道的数量;
获取第二数量,所述第二数量为所述非模糊图层和所述模糊图层的数量之和;
若所述第二数量大于所述第一数量,则将图层顺序连续的至少两个所述非模糊图层合并为一个非模糊图层,以使得所述第二数量小于或等于所述第一数量。
29.根据权利要求21-28任一项所述的方法,其特征在于,所述方法还包括:
若所述第一图层的图层信息不包含模糊标记,则将所述第一图层按照所述图层顺序送入合成加速装置进行合成,得到第一帧图像的合成结果。
30.根据权利要求21-29任一项所述的方法,其特征在于,所述图层顺序是指所述第一图层图层之间的垂直于屏幕方向的顺序。
31.一种图层模糊装置,应用于电子设备,其特征在于,包括:
获取模块,用于获取第一图层,所述第一图层包括第一帧图像的绘制结果;
确定模块,用于根据所述第一图层确定第二图层,所述第二图层为所述第一图层中用于生成模糊图层的图层;
合成模块,用于根据所述第一图层中第一控件的模糊参数和所述第二图层合成模糊图层,所述模糊图层包括未模糊的区域和根据所述第一控件的模糊参数模糊后的区域;
合成模块,还用于根据所述模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果;
显示模块,用于根据所述第一帧图像的合成结果进行显示。
32.根据权利要求31所述的装置,其特征在于,所述确定模块,具体用于获取所述第一图层中的模糊标记和所述第一图层的图层顺序,所述模糊标记包括模糊顶部标记或模糊底部标记;
若所述模糊标记为顶部模糊标记,则所述第二图层为包括所述模糊标记的第一图层及下方的第一图层;和/或,
若所述模糊标记为底部模糊标记,则所述第二图层为包括所述模糊标记的第一图层下方的第一图层。
33.根据权利要求31或32所述的装置,其特征在于,所述非模糊图层为所述模糊标记未指示的第一图层。
34.根据权利要求31-33任一项所述的装置,其特征在于,所述模糊参数包括动态参数和静态参数;
所述动态参数为所述第一控件中随时间发生变化的参数;
所述动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个;
所述静态参数包括模糊类型和模糊强度。
35.根据权利要求34所述的装置,其特征在于,所述合成模块,具体用于根据所述动态参数,确定所述第二图层中待模糊的内容;
根据所述静态参数对所述待模糊的内容进行模糊处理,生成所述模糊图层。
36.根据权利要求35所述的装置,其特征在于,所述合成模块,具体用于创建模糊图层,所述模糊图层中包括所述待模糊的内容;
对所述待模糊的内容进行降采样,得到待模糊图像;
根据所述静态参数对所述待模糊的内容进行模糊处理,得到模糊图像;
将所述模糊图像放大至与所述待模糊的内容相同的尺寸,并更新至所述模糊图层中。
37.根据权利要求31-36任一项所述的装置,其特征在于,所述合成模块,具体用于获取所述模糊标记的数量;
若所述模糊标记的数量为1,则将所述模糊图层和非模糊图层输入合成加速装置,合成得到包含模糊效果的第一帧图像的合成结果;
若所述模糊标记的数量为大于1的整数,则将所述模糊图层和非模糊图层输入图形处理单元,合成得到包含模糊效果的第一帧图像的合成结果。
38.根据权利要求37所述的装置,其特征在于,所述获取模块还用于获取第一数量,所述第一数量为所述合成加速装置中通道的数量;
获取第二数量,所述第二数量为所述非模糊图层和所述模糊图层的数量之和;
若所述第二数量大于所述第一数量,则所述合成模块还用于将图层顺序连续的至少两个所述非模糊图层合并为一个非模糊图层,以使得所述第二数量小于或等于所述第一数量。
39.根据权利要求31-38任一项所述的装置,其特征在于,所述合成模块,还用于若所述第一图层的图层信息不包含模糊标记,则将所述第一图层按照所述图层顺序送入合成加速装置进行合成,得到第一帧图像的合成结果。
40.根据权利要求31-39任一项所述的装置,其特征在于,所述图层顺序是指所述第一图层图层之间的垂直于屏幕方向的顺序。
41.一种电子设备,包括至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求21至30任一项所述的方法。
42.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求21至30任一项所述的方法。
43.一种转码方法,其特征在于,所述方法包括:
获取第x帧第一帧图像的第一图层,x为大于0的整数;
根据所述第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层;
若确定所述第二图层包括待转码的视频图层,则根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,所述待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的;
根据所述包含模糊效果的第x帧第一帧图像的合成结果进行显示。
44.根据权利要求43所述的方法,其特征在于,所述确定第二图层包括待转码的视频图层,包括:
遍历第二图层,获取每个第二图层的压缩格式;
若第二图层的压缩格式为视频的压缩格式,则确定所述第二图层为视频图层;
获取图像处理器支持的视频压缩格式列表;
若所述第二图层的压缩格式不在GPU支持的视频压缩格式列表中,则确定所述第二图层为待转码的视频图层。
45.根据权利要求43或44所述的方法,其特征在于,若确定所述第二图层包括待转码的视频图层,所述方法还包括:
对所述视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果。
46.根据权利要求44或45所述的方法,其特征在于,所述对所述视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果,包括:
获取硬件转码服务;
通过所述硬件转码服务对所述待转码视频的第x帧进行转码处理;
在待转码视频的第x帧转码处理完成后,将所述待转码视频的第x帧的转码处理结果存储并添加标记第x帧的转码完成标记。
47.根据权利要求46所述的方法,其特征在于,所述通过所述硬件转码服务对所述待转码视频的第x帧进行转码处理,包括:
获取所述待转码视频的第x帧的第一压缩格式;
将所述待转码视频的第x帧送入硬件转码模块,通过所述硬件转码模块将所述第一压缩格式转换为第二压缩格式,得到所述待转码视频的第x帧的转码结果。
48.根据权利要求43-46任一项所述的方法,其特征在于,若确定所述第二图层包括待转码的视频图层,在根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成之前,所述方法还包括:
检测第x-1帧的转码完成标记;
根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,包括:
若检测到所述第x-1帧的转码完成标记,则根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成;
若未检测到所述第x-1帧的转码完成标记,则等待所述待转码视频的第x-1帧的转码处理完成后再根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。
49.根据权利要求43-47任一项所述的方法,其特征在于,所述第一图层包括所述第一帧图像的绘制结果;
所述根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,包括:
根据所述第一图层中第一控件的模糊参数和所述第二图层合成模糊图层,所述第二图层中的视频图层包括所述待转码视频的第x-1帧的转码结果,所述模糊图层包括未模糊的区域和根据所述第一控件的模糊参数模糊后的区域;
根据所述模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
50.根据权利要求49所述的方法,其特征在于,所述第二图层为所述第一图层中用于生成模糊图层的图层。
51.根据权利要求49或50所述的方法,其特征在于,所述非模糊图层为所述模糊标记未指示的第一图层。
52.根据权利要求49-51任一项所述的方法,其特征在于,所述模糊参数包括动态参数和静态参数;
所述动态参数为所述第一控件中随时间发生变化的参数;
所述动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个;
所述静态参数包括模糊类型和模糊强度。
53.一种转码装置,其特征在于,该装置包括:
获取模块,用于获取第x帧第一帧图像的第一图层,x为大于0的整数;
确定模块,用于根据所述第一图层的图层信息中的模糊标记、以及图层顺序确定第二图层;
合成模块,用于若确定所述第二图层包括待转码的视频图层,则根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成,得到包含模糊效果的第x帧第一帧图像的合成结果,所述待转码视频的第x-1帧的转码结果是在合成第x-1帧第一帧图像时转码得到的;
显示模块,用于根据所述包含模糊效果的第x帧第一帧图像的合成结果进行显示。
54.根据权利要求53所述的装置,其特征在于,所述确定模块,还用于遍历第二图层,获取每个第二图层的压缩格式;
若第二图层的压缩格式为视频的压缩格式,则确定所述第二图层为视频图层;
获取图像处理器支持的视频压缩格式列表;
若所述第二图层的压缩格式不在GPU支持的视频压缩格式列表中,则确定所述第二图层为待转码的视频图层。
55.根据权利要求53或54所述的装置,其特征在于,所述装置还包括转码模块,用于对所述视频图层中待转码视频的第x帧进行转码处理,得到第x帧的转码结果。
56.根据权利要求55所述的装置,其特征在于,所述转码模块,具体用于获取硬件转码服务;
通过所述硬件转码服务对所述待转码视频的第x帧进行转码处理;
在待转码视频的第x帧转码处理完成后,将所述待转码视频的第x帧的转码处理结果存储并添加标记第x帧的转码完成标记。
57.根据权利要求56所述的装置,其特征在于,所述转码模块,具体用于获取所述待转码视频的第x帧的第一压缩格式;
将所述待转码视频的第x帧送入硬件转码模块,通过所述硬件转码模块将所述第一压缩格式转换为第二压缩格式,得到所述待转码视频的第x帧的转码结果。
58.根据权利要求54-57任一项所述的装置,其特征在于,所述装置还包括检测模块,用于检测第x-1帧的转码完成标记;
所述合成模块,具体用于若检测到所述第x-1帧的转码完成标记,则根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成;
若未检测到所述第x-1帧的转码完成标记,则等待所述待转码视频的第x-1帧的转码处理完成后再根据所述待转码的视频图层中待转码视频的第x-1帧的转码结果进行模糊合成。
59.根据权利要求54-58任一项所述的装置,其特征在于,所述第一图层包括所述第一帧图像的绘制结果;
所述合成模块,具体用于根据所述第一图层中第一控件的模糊参数和所述第二图层合成模糊图层,所述第二图层中的视频图层包括所述待转码视频的第x-1帧的转码结果,所述模糊图层包括未模糊的区域和根据所述第一控件的模糊参数模糊后的区域;
根据所述模糊图层和非模糊图层,得到包含模糊效果的第一帧图像的合成结果。
60.根据权利要求59所述的装置,其特征在于,所述第二图层为所述第一图层中用于生成模糊图层的图层。
61.根据权利要求59或60所述的装置,其特征在于,所述非模糊图层为所述模糊标记未指示的第一图层。
62.根据权利要求59-61任一项所述的装置,其特征在于,所述模糊参数包括动态参数和静态参数;
所述动态参数为所述第一控件中随时间发生变化的参数;
所述动态参数包括控件的坐标、尺寸大小、圆角半径、透明度中的一个或多个;
所述静态参数包括模糊类型和模糊强度。
63.一种终端设备,包括至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求43至52任一项所述的方法。
64.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求43至52任一项所述的方法。
CN202011595573.5A 2020-11-23 2020-12-28 控件模糊方法、装置、终端设备及可读存储介质 Pending CN114529485A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/252,718 US20230419454A1 (en) 2020-11-23 2021-11-22 Control blurring method and apparatus, terminal device, and readable storage medium
PCT/CN2021/132150 WO2022105920A1 (zh) 2020-11-23 2021-11-22 控件模糊方法、装置、终端设备及可读存储介质
EP21894067.4A EP4227785A4 (en) 2020-11-23 2021-11-22 CONTROL BLURRING METHOD AND APPARATUS, TERMINAL DEVICE AND READABLE STORAGE MEDIUM

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN202011326712 2020-11-23
CN2020113267124 2020-11-23
CN202011386556 2020-11-30
CN2020113865607 2020-11-30
CN202011386560 2020-11-30
CN2020113865560 2020-11-30

Publications (1)

Publication Number Publication Date
CN114529485A true CN114529485A (zh) 2022-05-24

Family

ID=81619815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011595573.5A Pending CN114529485A (zh) 2020-11-23 2020-12-28 控件模糊方法、装置、终端设备及可读存储介质

Country Status (4)

Country Link
US (1) US20230419454A1 (zh)
EP (1) EP4227785A4 (zh)
CN (1) CN114529485A (zh)
WO (1) WO2022105920A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756323A (zh) * 2022-06-14 2022-07-15 统信软件技术有限公司 一种模糊控件创建方法、装置与计算设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116051387A (zh) * 2022-06-30 2023-05-02 荣耀终端有限公司 动态图像模糊方法、终端设备及计算机可读存储介质
CN114866641B (zh) * 2022-07-07 2022-11-11 荣耀终端有限公司 一种图标处理方法、终端设备及存储介质
CN116051351B (zh) * 2022-08-22 2023-10-13 荣耀终端有限公司 一种特效处理方法和电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2013206601A1 (en) * 2013-06-28 2015-01-22 Canon Kabushiki Kaisha Variable blend width compositing
CN103593155B (zh) * 2013-11-06 2016-09-07 华为终端有限公司 显示帧生成方法和终端设备
KR102203473B1 (ko) * 2013-12-13 2021-01-18 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
CN104010212A (zh) * 2014-05-28 2014-08-27 华为技术有限公司 一种多图层合成的方法和装置
US9704272B2 (en) * 2014-11-21 2017-07-11 Microsoft Technology Licensing, Llc Motion blur using cached texture space blur
KR101671391B1 (ko) * 2015-07-07 2016-11-02 한국과학기술연구원 레이어 블러 모델에 기반한 비디오 디블러링 방법, 이를 수행하기 위한 기록 매체 및 장치
CN107832103A (zh) * 2017-11-02 2018-03-23 四川长虹电器股份有限公司 基于Android系统的UI控件背景模糊处理和动态显示的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756323A (zh) * 2022-06-14 2022-07-15 统信软件技术有限公司 一种模糊控件创建方法、装置与计算设备

Also Published As

Publication number Publication date
WO2022105920A1 (zh) 2022-05-27
EP4227785A4 (en) 2024-04-24
EP4227785A1 (en) 2023-08-16
US20230419454A1 (en) 2023-12-28

Similar Documents

Publication Publication Date Title
CN114529485A (zh) 控件模糊方法、装置、终端设备及可读存储介质
US11762529B2 (en) Method for displaying application icon and electronic device
CN107770618B (zh) 一种图像处理方法、装置及存储介质
CN111611031A (zh) 一种图形绘制方法和电子设备
US12019942B2 (en) Multi-screen collaboration method and system, and electronic device
KR101767229B1 (ko) 런타임 설정가능한 사용자 인터페이스 제어기를 위한 시스템 및 방법
CN110430022B (zh) 数据传输方法及装置
CN113552986A (zh) 多窗口截屏方法、装置及终端设备
CN113518243A (zh) 一种图像处理方法及装置
CN113873187B (zh) 跨终端录屏方法、终端设备及存储介质
CN113038141A (zh) 视频帧处理方法及电子设备
US8817050B1 (en) N-patch image resizing
EP4354270A1 (en) Service recommendation method and electronic device
CN113031838B (zh) 屏幕录制方法、装置及电子设备
EP4152756A1 (en) Device recommendation method and electronic device
CN115686700A (zh) 渲染方法及电子设备
CN116680019B (zh) 一种屏幕图标移动方法、电子设备及存储介质
CN110737765A (zh) 多轮对话的对话数据处理方法及相关装置
CN115016871B (zh) 多媒体编辑方法、电子设备和存储介质
CN115334239B (zh) 前后摄像头拍照融合的方法、终端设备和存储介质
CN113255644B (zh) 显示设备及其图像识别方法
WO2024114171A1 (zh) 稳定图像帧的方法和装置
EP4220566A1 (en) Electronic device and prompting method for function setting thereof, and playing method for prompting file
CN117812283A (zh) 一种网页视频播放控制方法和装置、计算机设备
CN112817667A (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