CN112767231B - 图层合成方法和设备 - Google Patents
图层合成方法和设备 Download PDFInfo
- Publication number
- CN112767231B CN112767231B CN202110358498.9A CN202110358498A CN112767231B CN 112767231 B CN112767231 B CN 112767231B CN 202110358498 A CN202110358498 A CN 202110358498A CN 112767231 B CN112767231 B CN 112767231B
- Authority
- CN
- China
- Prior art keywords
- layer
- sum
- layers
- pixel
- color parameter
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 85
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 85
- 230000008859 change Effects 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 22
- 238000012935 Averaging Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 319
- 238000009877 rendering Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 7
- 238000001308 synthesis method Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 239000000126 substance Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供一种图层合成方法和设备。该方法包括:系统服务模块SurfaceFlinger获取待合成的M个图层以及硬件合成器HWC支持合成的图层数量N,检测所述M个图层中每个图层的内容变化程度;所述硬件合成器HWC对所述M个图层中内容变化程度排在前面的N个图层进行合成处理,得到第一合成图层;所述图形处理器GPU对所述M个图层中除所述N个图层以外的图层进行合成处理,得到第二合成图层;所述硬件合成器HWC对所述第一合成图层和所述第二合成图层进行合成处理,得到待显示图层。可以保证内容变化程度较大的图层使用HWC合成,充分利用了HWC的资源,同时提升了图层合成速度。
Description
技术领域
本申请实施例涉及终端领域,尤其涉及一种图层合成方法和设备。
背景技术
用户通过终端设备安装的视频应用程序(Application,APP)观看视频时,终端设备显示的画面通常是由多个图层合成的。视频播放流畅度和多个图层合成速度有关。目前,图层合成方式包括图形处理器(Graphics Processing Unit,GPU)合成和硬件合成器(hwcomposer,HWC)合成两种。GPU是一种通用的图像处理设备,GPU除了用于图层的合成,还用于完成其他图形处理任务,而HWC是一种专用图像处理设备,HWC合成和GPU合成相比,具有性能高,合成速度快等优点。如何提高HWC的利用率是目前亟待解决的问题。
目前,直接使用HWC反馈的建议合成方式进行图层的合成。然而,HWC反馈的建议合成方式可能不合理,可能导致HWC没有被充分利用,造成资源浪费。
发明内容
本申请实施例提供一种图层合成方法和设备,用于提高HWC的利用率。
第一方面,本申请实施例提供一种图层合成方法,应用于终端设备,所述终端设备包括系统服务模块SurfaceFlinger、硬件合成器HWC以及图形处理器GPU,所述方法包括:系统服务模块SurfaceFlinger获取待合成的M个图层以及硬件合成器HWC支持合成的图层数量N;
所述系统服务模块SurfaceFlinger检测所述M个图层中每个图层的内容变化程度;所述系统服务模块SurfaceFlinger按照内容变化程度从大到小对所述M个图层进行排序;所述硬件合成器HWC对所述M个图层中内容变化程度排在前面的N个图层进行合成处理,得到第一合成图层;所述图形处理器GPU对所述M个图层中除所述N个图层以外的图层进行合成处理,得到第二合成图层;所述硬件合成器HWC对所述第一合成图层和所述第二合成图层进行合成处理,得到待显示图层。
可选的,所述系统服务模块SurfaceFlinger检测所述M个图层中每个图层的内容变化程度,包括:根据第一图层上各个像素的RGB值,确定第一色彩参数值,所述第一图层为所述M个图层中的任一图层,所述第一色彩参数值用于表征所述第一图层的亮度和色度;根据第二图层上各个像素的RGB值,确定第二色彩参数值,所述第二图层为合成前一帧画面的各个图层中与所述第一图层对应的图层,所述第二色彩参数值用于表征所述第二图层的亮度和色度;根据所述第一色彩参数值和所述第二色彩参数值,确定所述第一图层的内容变化程度。
可选的,所述根据第一图层上各个像素的RGB值,确定第一色彩参数值,包括:根据所述第一图层上各个像素的RGB值,获取所述第一图层上各个像素的YUV值;根据所述第一图层上各个像素的Y值,确定第一Y分量和值;根据所述第一图层上各个像素的U值,确定第一U分量和值;根据所述第一图层上各个像素的V值,确定第一V分量和值;根据所述第一Y分量和值、所述第一U分量和值以及所述第一V分量和值,确定所述第一色彩参数值。
可选的,所述根据第二图层上各个像素的RGB值,确定第二色彩参数值,包括:根据所述第二图层上各个像素的RGB值,获取所述第二图层上各个像素的YUV值;根据所述第二图层上各个像素的Y值,确定第二Y分量和值;根据所述第二图层上各个像素的U值,确定第二U分量和值;根据所述第二图层上各个像素的V值,确定第二V分量和值;根据所述第二Y分量和值、所述第二U分量和值以及所述第二V分量和值,确定所述第二色彩参数值。
可选的,所述根据所述第一色彩参数值和所述第二色彩参数值,确定所述第一图层的内容变化程度,包括:获取所述第一色彩参数值和所述第二色彩参数值的差值;将所述差值和所述第一色彩参数值的比值作为所述第一图层的内容变化程度。
可选的,所述检测所述M个图层中每个图层的内容变化程度,包括:将第一图层划分为W个区域块,所述第一图层为所述M个图层中的任一图层;检测所述W个区域块的内容变化程度;对所述 W个区域块的内容变化程度取平均,得到所述第一图层的内容变化程度。
第二方面,本申请实施例提供一种电子设备,包括:系统服务模块SurfaceFlinger、硬件合成器HWC以及图形处理器GPU;所述SurfaceFlinger用于获取待合成的M个图层以及硬件合成器HWC支持合成的图层数量N;所述SurfaceFlinger还用于检测所述M个图层中每个图层的内容变化程度;所述SurfaceFlinger还用于按照内容变化程度从大到小对所述M个图层进行排序;所述硬件合成器HWC用于对所述M个图层中内容变化程度排在前面的N个图层进行合成处理,得到第一合成图层;所述GPU用于对所述M个图层中除所述N个图层以外的图层进行合成处理,得到第二合成图层;所述HWC还用于对所述第一合成图层和所述第二合成图层进行合成处理,得到待显示图层。
可选的,所述SurfaceFlinger具体用于:根据第一图层上各个像素的RGB值,确定第一色彩参数值,所述第一图层为所述M个图层中的任一图层,所述第一色彩参数值用于表征所述第一图层的亮度和色度;根据第二图层上各个像素的RGB值,确定第二色彩参数值,所述第二图层为合成前一帧画面的各个图层中与所述第一图层对应的图层,所述第二色彩参数值用于表征所述第二图层的亮度和色度;根据所述第一色彩参数值和所述第二色彩参数值,确定所述第一图层的内容变化程度。
可选的,所述SurfaceFlinger具体用于:根据所述第一图层上各个像素的RGB值,获取所述第一图层上各个像素的YUV值;根据所述第一图层上各个像素的Y值,确定第一Y分量和值;根据所述第一图层上各个像素的U值,确定第一U分量和值;根据所述第一图层上各个像素的V值,确定第一V分量和值;根据所述第一Y分量和值、所述第一U分量和值以及所述第一V分量和值,确定所述第一色彩参数值。
可选的,所述SurfaceFlinger具体用于:根据所述第二图层上各个像素的RGB值,获取所述第二图层上各个像素的YUV值;根据所述第二图层上各个像素的Y值,确定第二Y分量和值;根据所述第二图层上各个像素的U值,确定第二U分量和值;根据所述第二图层上各个像素的V值,确定第二V分量和值;根据所述第二Y分量和值、所述第二U分量和值以及所述第二V分量和值,确定所述第二色彩参数值。
可选的,所述SurfaceFlinger具体用于:获取所述第一色彩参数值和所述第二色彩参数值的差值;将所述差值和所述第一色彩参数值的比值作为所述第一图层的内容变化程度。
可选的,所述SurfaceFlinger具体用于:将第一图层划分为W个区域块,所述第一图层为所述M个图层中的任一图层;检测所述W个区域块的内容变化程度;对所述 W个区域块的内容变化程度取平均,得到所述第一图层的内容变化程度。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器;所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现第一方面提供的方法。
第四方面,本申请实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现上述第一方面提供的方法。
本申请实施例提供的图层合成方法和设备,SurfaceFlinger接收到HWC反馈的建议合成方式后,检测每个图层的内容变化程度,将内容变化程度大的图层发送给HWC进行合成处理,将内容变化小的发送给GPU进行合成处理,和上述实施例中直接按照HWC反馈的建议合成方式分发图层的方式相比,本实施例可以保证内容变化程度较大的图层使用HWC合成,充分利用了HWC的资源。同时提升了图层合成速度。
附图说明
图1为本申请实施例提供的应用场景图;
图2为本申请实施例提供的终端设备架构图;
图3为本申请实施例提供的图层合成方法的流程图一;
图4为本申请实施例提供的获取待合成的M个图层的流程图;
图5为本申请实施例提供的用户界面图;
图6为本申请实施例提供的用于合成第i帧画面的4个图层的示意图;
图7为本申请实施例提供的获取每个图层的建议合成方式的流程图;
图8为本申请实施例提供的图层合成方法的流程图二;
图9为本申请实施例提供的并行检测的流程图;
图10为本申请实施例提供的区域块的示意图;
图11为本申请实施例提供的电子设备100的结构示意图;
图12为本申请实施例提供的终端设备100的软件架构图。
具体实施方式
图1为本申请实施例提供的应用场景图。用户通过终端设备安装的视频应用程序(Application,APP)观看视频时,终端设备显示的画面通常是由多个图层合成的,该多个图层包括以下至少一个:程序窗口图层、视频图层、弹幕图层或者台标图层。视频播放流畅度和多个图层合成速度有关。本申请实施例中终端设备的形态包括但不限于:手机、电视、平板电脑或者笔记本电脑,图1仅以手机为例示意。目前,图层合成方式包括GPU合成和HWC合成两种。
参见图2所示,终端设备中与图层合成相关的软件包括但不限于:视频APP和系统服务模块(SurfaceFlinger),视频APP在终端设备的分层架构中位于应用程序层,SurfaceFlinger在终端设备的分层架构中位于系统层。终端设备中与图层合成相关的硬件包括但不限于:图形处理器(graphics processing unit,GPU)和硬件合成器(HwComposer,HWC)。HWC可以是独立的器件,也可以集成在系统级芯片(System on Chip,SOC)中。终端设备通过视频APP、SurfaceFlinger、GPU和HWC的交互完成多个图层的合成。
在一些实施例中,通过图3所示方法完成图层的合成,参见图3所示,具体过程包括:
S301、SurfaceFlinger获取待合成的M个图层。
SurfaceFlinger可通过如下步骤获取待合成的M个图层,参见图4所示,具体包括:
S301-1、视频APP显示第一界面时,检测到第一操作。
示例性的,参见图5所示,第一界面可以是视频APP中某个视频的播放界面,该播放界面可用于播放视频和弹幕。第一操作可以是用户在第一界面的点击操作。
应理解的,第一界面还可以是视频APP中的其他界面,第一操作还可以是双击、滑动等其他操作,本申请实施例对第一界面和第一操作不限定。
S301-2、响应于第一操作,视频APP确定待显示界面包含的M个窗口。
具体的,开发者在开发视频APP的过程中,可为视频APP中每个界面配置窗口,并且指定窗口的属性,该属性包括但不限于高度、宽度、中心坐标、缩放属性以及旋转属性,开发者可将每个界面包含的若干窗口的标识以及每个窗口的属性存储在配置文件中。视频APP接收到第一操作后,从该配置文件中查找待显示界面包含的M个窗口。
示例性的,参见表1所示,从配置文件中查找到待显示界面包含4个窗口,这4个窗口的标识为Surface1、Surface2、Surface3和Surface4,Surface1对应的窗口的高度为H1cm,Surface1对应的窗口的宽度为W1cm,Surface1对应的窗口的中心坐标为(x1,y1),Surface1对应的窗口支持缩放,Surface1对应的窗口支持旋转。Surface2对应的窗口的高度为H2cm,Surface2对应的窗口的宽度为W2cm,Surface2对应的窗口的中心坐标为(x2,y2),Surface2对应的窗口支持缩放,Surface2对应的窗口支持旋转。Surface3对应的窗口的高度为H3cm,Surface3对应的窗口的宽度为W3cm,Surface3对应的窗口的中心坐标为(x3,y3),Surface3对应的窗口支持缩放,Surface3对应的窗口支持旋转。Surface4对应的窗口的高度为H4cm,Surface4对应的窗口的宽度为W4cm,Surface4对应的窗口的中心坐标为(x4,y4),Surface4对应的窗口不支持缩放,Surface4对应的窗口不支持旋转。
表1
S301-3、视频APP根据M个窗口中每个窗口的属性,对各个窗口进行渲染,生成待合成的M个图层,并将待合成的M个图层发送给SurfaceFlinger。
示例性的,以表1所示待显示界面为例,待显示界面包含4个窗口,视频APP可通过网络下载视频内容和弹幕内容。视频内容是由至少一帧图像内容构成的,同样的,弹幕内容也是由至少一帧图像内容构成的。针对待显示界面上的每帧画面,一方面,视频APP可从视频内容中获取该画面对应的图像内容,根据该图像内容和Surface1的属性,渲染生成视频图层;另一方面,视频APP可从弹幕内容中获取该画面对应的图像内容,根据该图像内容和Surface2的属性,渲染生成弹幕图层;再一方面,视频APP可根据预存的程序窗口内容和Surface3的属性,渲染生成程序窗口图层;再一方面,视频APP可根据预存的台标内容和Surface4的属性,渲染生成台标图层。图6示出了用于合成第i帧画面的4个图层。
需要说明的是:针对每帧画面,渲染生成视频图层、弹幕图层、程序窗口图层以及台标图层的过程可以通过多个线程同时进行。视频APP将待合成的M个图层发送给SurfaceFlinger。
S302、SurfaceFlinger获取待合成的M个图层中每个图层的建议合成方式。
SurfaceFlinger可通过如下步骤获取每个图层的建议合成方式,参见图7所示,具体包括:
S302-1、视频APP向SurfaceFlinger发送第一消息,第一消息包括待显示界面包含的M个窗口的标识和属性。
示例性的,假设从配置文件中查找到待显示界面包含的M个窗口的标识和属性如表1所示,第一消息可以为:
Surface1,H1cm,W1cm,(x1,y1),缩放,旋转;
Surface2,H2cm,W2cm,(x2,y2),缩放,旋转;
Surface3,H3cm,W3cm,(x3,y3),缩放,旋转;
Surface4,H4cm,W4cm,(x4,y4),无缩放,无旋转。
需要说明的是:缩放属性和旋转属性可以用数值来表示,以旋转属性为例,数值为1代表对应窗口支持旋转,数值为0代表该窗口不支持旋转,上述第一消息的格式仅是一种示例,不构成对本申请实施例的限制。
需要说明的是:待合成的M个图层和第一消息可以同时发送给SurfaceFlinger;也可先发送待合成的M个图层,再发送第一消息;也可先发送第一消息,再发送待合成的M个图层,本申请实施例对两者的发送顺序不作限定。
S302-2、SurfaceFlinger向HWC发送第二消息,第二消息包括待显示界面包含的M个窗口的标识、属性以及期望合成方式。
示例性的,每个窗口对应的图层的期望合成方式可默认为HWC合成。第二消息的格式可以为:窗口标识,属性,期望合成方式。
示例性的,假设第一消息为:
Surface1,H1cm,W1cm,(x1,y1),缩放,旋转;
Surface2,H2cm,W2cm,(x2,y2),缩放,旋转;
Surface3,H3cm,W3cm,(x3,y3),缩放,旋转;
Surface4,H4cm,W4cm,(x4,y4),无缩放,无旋转。
SurfaceFlinger发送给HWC的第二消息可以为:
Surface1,H1cm,W1cm,(x1,y1),缩放,旋转,HWC;
Surface2,H2cm,W2cm,(x2,y2),缩放,旋转,HWC;
Surface3,H3cm,W3cm,(x3,y3),缩放,旋转,HWC;
Surface4,H4cm,W4cm,(x4,y4),无缩放,无旋转,HWC。
第二消息用于指示根据Surface1的属性渲染生成的视频图层、根据Surface2的属性渲染生成的弹幕图层、根据Surface3的属性渲染生成的程序窗口图层、根据Surface4的属性渲染生成的台标图层的期望合成方式均为HWC合成。
S302-3、HWC向SurfaceFlinger反馈第三消息,第三消息包括待显示界面包含的M个窗口的标识、属性以及建议合成方式。
示例性的,第三消息的格式可以为:窗口标识,属性,建议合成方式。
示例性的,假设第二消息为:
Surface1,H1cm,W1cm,(x1,y1),缩放,旋转,HWC;
Surface2,H2cm,W2cm,(x2,y2),缩放,旋转,HWC;
Surface3,H3cm,W3cm,(x3,y3),缩放,旋转,HWC;
Surface4,H4cm,W4cm,(x4,y4),无缩放,无旋转,HWC。
HWC向SurfaceFlinger反馈的第三消息可以为:
Surface1,H1cm,W1cm,(x1,y1),缩放,旋转,GPU;
Surface2,H2cm,W2cm,(x2,y2),缩放,旋转,GPU;
Surface3,H3cm,W3cm,(x3,y3),缩放,旋转,HWC;
Surface4,H4cm,W4cm,(x4,y4),无缩放,无旋转,HWC。
第三消息用于指示根据Surface1的属性渲染生成的视频图层和根据Surface2的属性渲染生成的弹幕图层的建议合成方式为GPU合成,根据Surface3的属性渲染生成的程序窗口图层和根据Surface4的属性渲染生成的台标图层的建议合成方式为HWC合成。
S303、SurfaceFlinger将待合成的M个图层中建议合成方式为HWC合成的图层发送给HWC。
S304、SurfaceFlinger将待合成的M个图层中建议合成方式为GPU合成的图层发送给GPU。
需要说明的是:S303和S304可以同时执行,也可先执行S303,后执行S304,或者先执行S304,后执行S303,本申请实施例对两个步骤的先后顺序不限定。
S305、HWC对接收到的图层进行合成处理,得到第一合成图层。
S306、GPU对接收到的图层进行合成处理,得到第二合成图层。
GPU得到第二合成图层后,将第二合成图层发送至HWC,由HWC执行S307。
S307、HWC对第一合成图层和第二合成图层进行合成处理,得到待显示图层。
示例性的,参见S302-3示例的第三消息,Surface1和Surface2对应的建议合成方式为GPU合成,Surface3和Surface4对应的建议合成方式为HWC合成,则将S301-3中根据Surface3的属性渲染生成的程序窗口图层和根据Surface4的属性渲染生成的台标图层发送给HWC进行合成,得到第一合成图层;将S301-3中根据Surface1的属性渲染生成的视频图层和根据Surface2的属性渲染生成的弹幕图层发送给GPU进行合成,得到第二合成图层。GPU得到第二合成图层后,进一步将第二合成图层发送至HWC,由HWC将第一合成图层和第二合成图层合成为待显示图层。
GPU是一种通用的图像处理设备,GPU除了用于图层的合成,还用于完成其他图形处理任务,而HWC是一种专用图像处理设备,HWC合成和GPU合成相比,具有性能高,合成速度快等优点。如上文所描述,视频播放流畅度和多个图层合成速度有关,上述实施例中HWC向SurfaceFlinger反馈的建议合成方式可能不合理,SurfaceFlinger直接使用建议合成方式分发图层,可能导致HWC没有被充分利用,造成资源浪费。
为解决上述技术问题,本申请提供另一实施例,该实施例可应用于图2所示终端设备,图8为该实施例的流程图,具体包括:
S801、SurfaceFlinger获取待合成的M个图层。
本步骤的实现方式可参见上述实施例中的S301,本申请实施例在此不再赘述。
S802、SurfaceFlinger获取HWC支持合成的图层数量N。
SurfaceFlinger先通过上述实施例中S302-1、S302-2、S302-3获取待合成的M个图层中每个图层的建议合成方式,然后根据每个图层的建议合成方式,确定硬件合成器HWC支持合成的图层数量N。
示例性的,HWC向SurfaceFlinger反馈的第三消息为:
Surface1,H1cm,W1cm,(x1,y1),缩放,旋转,GPU;
Surface2,H2cm,W2cm,(x2,y2),缩放,旋转,GPU;
Surface3,H3cm,W3cm,(x3,y3),缩放,旋转,HWC;
Surface4,H4cm,W4cm,(x4,y4),无缩放,无旋转,HWC。
由第三消息可知,根据Surface1的属性渲染生成的视频图层和根据Surface2的属性渲染生成的弹幕图层的建议合成方式为GPU合成,根据Surface3的属性渲染生成的程序窗口图层和根据Surface4的属性渲染生成的台标图层的建议合成方式为HWC合成。由于有2个图层的建议合成方式为HWC合成,则确定HWC支持合成的图层数量为2。
S803、SurfaceFlinger检测待合成的M个图层中的每个图层的内容变化程度。
为方便说明,将待合成的M个图层中的任一图层称为第一图层,第一图层的内容变化程度指第一图层相对于第二图层的内容变化程度,第二图层为合成前一帧画面的各个图层中与第一图层对应的图层。
可通过如下方式计算第一图层的内容变化程度:
首先,根据第一图层上各个像素的RGB值,确定第一色彩参数值。第一色彩参数值用于表征第一图层的亮度和色度。
一种可能的实现方式中,首先根据第一图层上各个像素的RGB值,获取第一图层上各个像素的YUV值;根据第一图层上各个像素的Y值,确定第一Y分量和值;根据第一图层上各个像素的U值,确定第一U分量和值;根据第一图层上各个像素的V值,确定第一V分量和值;最后根据第一Y分量和值、第一U分量和值以及第一V分量和值,确定第一色彩参数值。
具体的,可采用公式1计算第一色彩参数值:
𝑌N=∑(𝑌𝑈𝑉(𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵) ) (公式1)
其中,𝑌N为第一色彩参数值,𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵为第一图层上各个像素的𝑅𝐺𝐵值。将第一图层上各个像素的𝑅𝐺𝐵值转换为YUV值后,对各个像素的Y值求和得到第一Y分量和值,对各个像素的U值求和得到第一U分量和值,对各个像素的V值求和得到第一V分量和值,对第一Y分量和值、第一U分量和值和第一V分量和值求和,得到第一色彩参数值。
然后,根据第二图层上各个像素的RGB值,确定第二色彩参数值。第二色彩参数值用于表征第二图层的亮度和色度。
一种可能的实现方式中,和第一图层类似,首先根据第二图层上各个像素的RGB值,获取第二图层上各个像素的YUV值;根据第二图层上各个像素的Y值,确定第二Y分量和值;根据第二图层上各个像素的U值,确定第二U分量和值;根据第二图层上各个像素的V值,确定第二V分量和值;最后根据第二Y分量和值、第二U分量和值以及第二V分量和值,确定第二色彩参数值。
具体的,可采用公式2计算第二色彩参数值:
𝑌N-1=∑(𝑌𝑈𝑉(𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵) )(公式2)
其中,𝑌N-1为第二色彩参数值,𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵为第二图层上各个像素的𝑅𝐺𝐵值。将第二图层上各个像素的𝑅𝐺𝐵值转换为YUV值后,对各个像素的Y值求和得到第二Y分量和值,对各个像素的U值求和得到第二U分量和值,对各个像素的V值求和得到第二V分量和值,对第二Y分量和值、第二U分量和值和第二V分量和值求和,得到第二色彩参数值。
最后,根据第一色彩参数值和第二色彩参数值,确定第一图层的内容变化程度。
一种可能的实现方式中,可获取第一色彩参数值和第二色彩参数值的差值;将该差值和第一色彩参数值的比值作为第一图层的内容变化程度。
具体的,可采用公式3计算第一图层的内容变化程度:
Delta=(𝑌N - 𝑌N-1)/ 𝑌N(公式3)
其中,Delta为第一图层的内容变化程度,𝑌N为第一色彩参数值,𝑌N-1为第二色彩参数值。
下面举例说明:
继续参见图6所示,用于合成第i帧画面的图层包括视频图层、弹幕图层、程序窗口图层以及台标图层,以视频图层为例,可通过上述公式1计算视频图层的第一色彩参数值,可通过上述公式2计算用于合成第i-1帧画面的视频图层的第二色彩参数值,可通过上述公式3计算视频图层的内容变化程度。采用同样的方法,还可得到弹幕图层的内容变化程度、程序窗口图层的内容变化程度以及台标图层的内容变化程度。
为了加快第一图层的内容变化程度的检测速度,在检测第一图层的内容变化程度时,可将第一图层和第二图层划分为W个区域块(block),针对第一图层上W个区域块,采用上述公式并行检测W个区域块的内容变化程度,然后对该W个区域块的内容变化程度取平均,便可得到第一图层的内容变化程度。上述并行计算的方式可提升第一图层的内容变化程度的检测速度。
下面详细介绍上述并行检测的过程,参见图9所示,具体包括:
S803-1、分别将第一图层和第二图层划分为W个区域块(block),W为正整数。
S803-2、针对第一图层上W个block,并行检测W个block的内容变化程度。
下面介绍每个block的内容变化程度的检测过程:
将第一图层上W个block中任一block称为第一block,可通过如下方式检测第一block的内容变化程度。
首先,计算第一block的色彩参数值和第二block的色彩参数值,第二block为第二图层上与第一block对应的block。
可采用公式4计算第一block的色彩参数值:
𝑌N_block=∑(𝑌𝑈𝑉(𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵) ) (公式4)
其中,𝑌N为第一block的色彩参数值,𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵为第一block上各个像素的𝑅𝐺𝐵值。将第一block上各个像素的𝑅𝐺𝐵值转换为YUV值后,对各个像素的Y值求和得到Y分量和值,对各个像素的U值求和得到U分量和值,对各个像素的V值求和得到V分量和值,对Y分量和值、U分量和值和V分量和值求和,得到第一block的色彩参数值。
可采用公式5计算第二block的色彩参数值:
𝑌N-1_block =∑(𝑌𝑈𝑉(𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵) ) (公式5)
其中,𝑌N-1为第二block的色彩参数值,𝑃𝑖𝑥𝑒l_𝑅𝐺𝐵为第二block上各个像素的𝑅𝐺𝐵值。将第二block上各个像素的𝑅𝐺𝐵值转换为YUV值后,对各个像素的Y值求和得到Y分量和值,对各个像素的U值求和得到U分量和值,对各个像素的V值求和得到V分量和值,对Y分量和值、U分量和值和V分量和值求和,得到第二 block的色彩参数值。
然后,根据第一block的色彩参数值和第二block的色彩参数值,确定第一block的内容变化程度。
可采用公式6计算第一block的内容变化程度:
Delta(i)=(𝑌N_block - 𝑌N-1_block)/ 𝑌N_block(公式6)
其中,Delta(i)为第一block的内容变化程度,𝑌N为第一block的色彩参数值,𝑌N-1为第二block的色彩参数值。
S803-3、对第一图层上W个block的内容变化程度取平均,得到第一图层的内容变化程度。
可采用如下公式计算第一图层的内容变化程度:
下面对上述并行检测过程举例说明:
以图6中的视频图层为例,参见图10所示,将该视频图层和合成第i-1帧画面的视频图层等分为16个block。针对该视频图层中16个block,通过公式4、公式5和公式6并行检测各个block的内容变化程度,比如:用图7中block1替换上述第一block,用图7中block1’替换上述第二block,便可得到block1的内容变化程度。得到该视频图层上16个block的内容变化程度后,采用公式7取平均,便可得到视频图层的内容变化程度。
S804、SurfaceFlinger按照内容变化程度从大到小对M个图层进行排序。
举例来说,假设通过S803得到用于合成第i帧画面的4个图层中视频图层的内容变
化程度为1,台标图层的内容变化程度为2,弹幕图层的内容变化程度为3,
程序窗口图层的容变化程度为4,通过比较,1>3>4>2,则按照内
容变化程度从大到小对上述4个图层进行排序可得到:视频图层>弹幕图层>程序窗口图层>
台标图层。
S805、SurfaceFlinger将待合成的M个图层中内容变化程度排在前面的N个图层发送给HWC。
S806、SurfaceFlinger将待合成的M个图层中除上述N个图层以外的图层发送给GPU。
需要说明的是:S805和S806可以同时执行,也可先执行S805,后执行S806,或者先执行S806,后执行S805,本申请实施例对两个步骤的先后顺序不限定。
S807、HWC对接收到的图层进行合成处理,得到第一合成图层。
S808、GPU对接收到的图层进行合成处理,得到第二合成图层。
GPU得到第二合成图层后,将第二合成图层发送至HWC,由HWC执行S809。
S809、HWC对第一合成图层和第二合成图层进行合成处理,得到待显示图层。
下面举例说明:
假设通过S803得到用于合成第i帧画面的4个图层中内容变化程度从大到小排序为:视频图层>弹幕图层>程序窗口图层>台标图层,第三消息中建议合成方式为HWC合成的数量为2,可将内容变化程度排在前面的2个图层发送给HWC进行合成,即,将视频图层和弹幕图层发送给HWC进行合成。将除上述2个图层以外的图层发送给GPU进行合成,即,将程序窗口图层和台标图层发送给GPU进行合成。和上述实施例中直接按照HWC反馈的建议合成方式分发图层的方式相比,本实施例可以保证内容变化程度较大的图层使用HWC合成,充分利用了HWC的资源。同时提升了图层合成速度。
需要说明的是:图8所示实施例为HWC支持合成的图层数量N大于零且小于M的情况,若所有图层的建议合成方式均为HWC合成,即N等于M,则将待合成的M个图层均发送给HWC,由HWC对M个图层进行合成处理,得到待显示图层,并将待显示图层发送给显示设备进行显示。若所有图层的建议合成方式均为GPU合成,则将待合成的M个图层均发送给GPU,由GPU对待合成图层进行合成处理,得到待显示图层,将待显示图层发送给显示设备进行显示。
本申请实施例提供的图层合成方法,SurfaceFlinger接收到HWC反馈的建议合成方式后,检测每个图层的内容变化程度,将内容变化程度大的图层发送给HWC进行合成处理,将内容变化小的发送给GPU进行合成处理,和上述实施例中直接按照HWC反馈的建议合成方式分发图层的方式相比,本实施例可以保证内容变化程度较大的图层使用HWC合成,充分利用了HWC的资源。同时提升了图层合成速度。
图11示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,显示屏194。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,神经网络处理器(neural-network processing unit,NPU)和/或硬件合成器(HwComposer,HWC)。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中,例如,HWC可以集成在系统级芯片(System on Chip,SOC)中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network ,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
参见图12所示,在一些实施例中,可将终端设备100的软件分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,层与层之间通过软件接口通信。
应用程序层可以包括一系列应用程序包。
如图12所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图12所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话图层形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)以及系统服务器模块(SurfaceFlinger)。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种图层合成方法,应用于终端设备,所述终端设备包括系统服务模块SurfaceFlinger、硬件合成器HWC以及图形处理器GPU,其特征在于,所述方法包括:
所述系统服务模块SurfaceFlinger获取待合成的M个图层以及硬件合成器HWC支持合成的图层数量N;
所述系统服务模块SurfaceFlinger检测所述M个图层中每个图层的内容变化程度;
所述系统服务模块SurfaceFlinger按照内容变化程度从大到小对所述M个图层进行排序;
所述硬件合成器HWC对所述M个图层中内容变化程度排在前面的N个图层进行合成处理,得到第一合成图层;
所述图形处理器GPU对所述M个图层中除所述N个图层以外的图层进行合成处理,得到第二合成图层;
所述硬件合成器HWC对所述第一合成图层和所述第二合成图层进行合成处理,得到待显示图层。
2.根据权利要求1所述的方法,其特征在于,所述系统服务模块SurfaceFlinger检测所述M个图层中每个图层的内容变化程度,包括:
根据第一图层上各个像素的RGB值,确定第一色彩参数值,所述第一图层为所述M个图层中的任一图层,所述第一色彩参数值用于表征所述第一图层的亮度和色度;
根据第二图层上各个像素的RGB值,确定第二色彩参数值,所述第二图层为合成前一帧画面的各个图层中与所述第一图层对应的图层,所述第二色彩参数值用于表征所述第二图层的亮度和色度;
根据所述第一色彩参数值和所述第二色彩参数值,确定所述第一图层的内容变化程度。
3.根据权利要求2所述的方法,其特征在于,所述根据第一图层上各个像素的RGB值,确定第一色彩参数值,包括:
根据所述第一图层上各个像素的RGB值,获取所述第一图层上各个像素的YUV值;
根据所述第一图层上各个像素的Y值,确定第一Y分量的和值,所述第一Y分量的和值用于表征所述第一图层上各个像素的Y值的和;
根据所述第一图层上各个像素的U值,确定第一U分量的和值,所述第一U分量的和值用于表征所述第一图层上各个像素的U值的和;
根据所述第一图层上各个像素的V值,确定第一V分量的和值,所述第一V分量的和值用于表征所述第一图层上各个像素的V值的和;
根据所述第一Y分量的和值、所述第一U分量的和值以及所述第一V分量的和值,确定所述第一色彩参数值。
4.根据权利要求2所述的方法,其特征在于,所述根据第二图层上各个像素的RGB值,确定第二色彩参数值,包括:
根据所述第二图层上各个像素的RGB值,获取所述第二图层上各个像素的YUV值;
根据所述第二图层上各个像素的Y值,确定第二Y分量的和值,所述第二Y分量的和值用于表征所述第二图层上各个像素的Y值的和;
根据所述第二图层上各个像素的U值,确定第二U分量的和值,所述第二U分量的和值用于表征所述第二图层上各个像素的U值的和;
根据所述第二图层上各个像素的V值,确定第二V分量的和值,所述第二V分量的和值用于表征所述第二图层上各个像素的V值的和;
根据所述第二Y分量的和值、所述第二U分量的和值以及所述第二V分量的和值,确定所述第二色彩参数值。
5.根据权利要求2-4任一项所述的方法,其特征在于,根据所述第一色彩参数值和所述第二色彩参数值,确定所述第一图层的内容变化程度,包括:
获取所述第一色彩参数值和所述第二色彩参数值的差值;
将所述差值和所述第一色彩参数值的比值作为所述第一图层的内容变化程度。
6.根据权利要求1所述的方法,其特征在于,所述系统服务模块SurfaceFlinger检测所述M个图层中每个图层的内容变化程度,包括:
将第一图层划分为W个区域块,所述第一图层为所述M个图层中的任一图层;
检测所述W个区域块的内容变化程度;
对所述 W个区域块的内容变化程度取平均,得到所述第一图层的内容变化程度。
7.一种电子设备,其特征在于,包括:系统服务模块SurfaceFlinger、硬件合成器HWC以及图形处理器GPU;
所述SurfaceFlinger用于获取待合成的M个图层以及硬件合成器HWC支持合成的图层数量N;
所述SurfaceFlinger还用于检测所述M个图层中每个图层的内容变化程度;
所述SurfaceFlinger还用于按照内容变化程度从大到小对所述M个图层进行排序;
所述硬件合成器HWC用于对所述M个图层中内容变化程度排在前面的N个图层进行合成处理,得到第一合成图层;
所述图形处理器GPU用于对所述M个图层中除所述N个图层以外的图层进行合成处理,得到第二合成图层;
所述硬件合成器HWC还用于对所述第一合成图层和所述第二合成图层进行合成处理,得到待显示图层。
8.根据权利要求7所述的电子设备,其特征在于,所述SurfaceFlinger具体用于:
根据第一图层上各个像素的RGB值,确定第一色彩参数值,所述第一图层为所述M个图层中的任一图层,所述第一色彩参数值用于表征所述第一图层的亮度和色度;
根据第二图层上各个像素的RGB值,确定第二色彩参数值,所述第二图层为合成前一帧画面的各个图层中与所述第一图层对应的图层,所述第二色彩参数值用于表征所述第二图层的亮度和色度;
根据所述第一色彩参数值和所述第二色彩参数值,确定所述第一图层的内容变化程度。
9.根据权利要求8所述的电子设备,其特征在于,所述SurfaceFlinger具体用于:
根据所述第一图层上各个像素的RGB值,获取所述第一图层上各个像素的YUV值;
根据所述第一图层上各个像素的Y值,确定第一Y分量的和值,所述第一Y分量的和值用于表征所述第一图层上各个像素的Y值的和;
根据所述第一图层上各个像素的U值,确定第一U分量的和值,所述第一U分量的和值用于表征所述第一图层上各个像素的U值的和;
根据所述第一图层上各个像素的V值,确定第一V分量的和值,所述第一V分量的和值用于表征所述第一图层上各个像素的V值的和;
根据所述第一Y分量的和值、所述第一U分量的和值以及所述第一V分量的和值,确定所述第一色彩参数值。
10.根据权利要求8所述的电子设备,其特征在于,所述SurfaceFlinger具体用于:
根据所述第二图层上各个像素的RGB值,获取所述第二图层上各个像素的YUV值;
根据所述第二图层上各个像素的Y值,确定第二Y分量的和值,所述第二Y分量的和值用于表征所述第二图层上各个像素的Y值的和;
根据所述第二图层上各个像素的U值,确定第二U分量的和值,所述第二U分量的和值用于表征所述第二图层上各个像素的U值的和;
根据所述第二图层上各个像素的V值,确定第二V分量的和值,所述第二V分量的和值用于表征所述第二图层上各个像素的V值的和;
根据所述第二Y分量的和值、所述第二U分量的和值以及所述第二V分量的和值,确定所述第二色彩参数值。
11.根据权利要求8-10任一项所述的电子设备,其特征在于,所述SurfaceFlinger具体用于:
获取所述第一色彩参数值和所述第二色彩参数值的差值;
将所述差值和所述第一色彩参数值的比值作为所述第一图层的内容变化程度。
12.根据权利要求7所述的电子设备,其特征在于,所述SurfaceFlinger具体用于:
将第一图层划分为W个区域块,所述第一图层为所述M个图层中的任一图层;
检测所述W个区域块的内容变化程度;
对所述 W个区域块的内容变化程度取平均,得到所述第一图层的内容变化程度。
13.一种电子设备,其特征在于,包括:存储器和处理器;所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现权利要求1-6中任一项所述的方法。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现上述权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110358498.9A CN112767231B (zh) | 2021-04-02 | 2021-04-02 | 图层合成方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110358498.9A CN112767231B (zh) | 2021-04-02 | 2021-04-02 | 图层合成方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112767231A CN112767231A (zh) | 2021-05-07 |
CN112767231B true CN112767231B (zh) | 2021-06-22 |
Family
ID=75691132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110358498.9A Active CN112767231B (zh) | 2021-04-02 | 2021-04-02 | 图层合成方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112767231B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986162B (zh) * | 2021-09-22 | 2022-11-11 | 荣耀终端有限公司 | 图层合成方法、设备及计算机可读存储介质 |
CN113873206B (zh) * | 2021-10-30 | 2024-05-14 | 珠海研果科技有限公司 | 一种多路视频录制方法及系统 |
CN114510207A (zh) * | 2022-02-28 | 2022-05-17 | 亿咖通(湖北)技术有限公司 | 图层合成方法、装置、设备、介质及程序产品 |
CN116700578B (zh) * | 2022-09-21 | 2024-05-28 | 荣耀终端有限公司 | 图层合成方法、电子设备以及存储介质 |
CN117453170B (zh) * | 2023-12-25 | 2024-03-29 | 西安芯云半导体技术有限公司 | 一种显示控制方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107615770A (zh) * | 2016-03-31 | 2018-01-19 | 华为技术有限公司 | 应用程序的处理方法及终端设备 |
CN108885775A (zh) * | 2016-04-05 | 2018-11-23 | 华为技术有限公司 | 一种显示方法及终端 |
CN109871192A (zh) * | 2019-03-04 | 2019-06-11 | 京东方科技集团股份有限公司 | 一种显示方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4591576B2 (ja) * | 2008-08-18 | 2010-12-01 | ソニー株式会社 | 画像処理装置、画像処理方法、プログラム |
CN110377263B (zh) * | 2019-07-17 | 2021-08-17 | Oppo广东移动通信有限公司 | 图像合成方法、装置、电子设备及存储介质 |
CN110377264B (zh) * | 2019-07-17 | 2023-07-21 | Oppo广东移动通信有限公司 | 图层合成方法、装置、电子设备及存储介质 |
CN110362186B (zh) * | 2019-07-17 | 2021-02-02 | Oppo广东移动通信有限公司 | 图层处理方法、装置、电子设备及计算机可读介质 |
CN110363831B (zh) * | 2019-07-17 | 2023-04-07 | Oppo广东移动通信有限公司 | 图层合成方法、装置、电子设备及存储介质 |
-
2021
- 2021-04-02 CN CN202110358498.9A patent/CN112767231B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107615770A (zh) * | 2016-03-31 | 2018-01-19 | 华为技术有限公司 | 应用程序的处理方法及终端设备 |
CN108885775A (zh) * | 2016-04-05 | 2018-11-23 | 华为技术有限公司 | 一种显示方法及终端 |
CN109871192A (zh) * | 2019-03-04 | 2019-06-11 | 京东方科技集团股份有限公司 | 一种显示方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112767231A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112767231B (zh) | 图层合成方法和设备 | |
CN110543289B (zh) | 控制音量的方法和电子设备 | |
CN113726950B (zh) | 一种图像处理方法和电子设备 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
US11930130B2 (en) | Screenshot generating method, control method, and electronic device | |
CN113741840A (zh) | 多窗口投屏场景下的应用界面显示方法及电子设备 | |
CN111263002B (zh) | 一种显示方法和电子设备 | |
WO2023130921A1 (zh) | 一种适配多设备的页面布局的方法及电子设备 | |
CN115756268A (zh) | 跨设备交互的方法、装置、投屏系统及终端 | |
CN114489529A (zh) | 电子设备的投屏方法及其介质和电子设备 | |
CN113409427A (zh) | 动画播放方法、装置、电子设备及计算机可读存储介质 | |
CN115017534A (zh) | 文件处理权限控制方法、装置及存储介质 | |
CN115640083A (zh) | 一种可提升动效性能的屏幕刷新方法及设备 | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
CN117156088A (zh) | 图像处理方法及相关装置 | |
CN115086888A (zh) | 消息通知方法与装置、电子设备 | |
CN116672707B (zh) | 生成游戏预测帧的方法和电子设备 | |
WO2024109481A1 (zh) | 窗口控制方法及电子设备 | |
CN113986406B (zh) | 生成涂鸦图案的方法、装置、电子设备及存储介质 | |
CN116700660B (zh) | 音频播放方法和电子设备 | |
CN116684521B (zh) | 音频处理方法、设备及存储介质 | |
CN115567666B (zh) | 屏幕录制方法、电子设备及可读存储介质 | |
WO2022206600A1 (zh) | 一种投屏方法、系统及相关装置 | |
US20240086035A1 (en) | Display Method and Electronic Device | |
WO2024109198A1 (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 |