CN117893665A - 图像渲染处理方法及相关装置 - Google Patents
图像渲染处理方法及相关装置 Download PDFInfo
- Publication number
- CN117893665A CN117893665A CN202211224089.0A CN202211224089A CN117893665A CN 117893665 A CN117893665 A CN 117893665A CN 202211224089 A CN202211224089 A CN 202211224089A CN 117893665 A CN117893665 A CN 117893665A
- Authority
- CN
- China
- Prior art keywords
- rendering
- image
- rendering rate
- pixel
- rate
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 470
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 6
- 239000010410 layer Substances 0.000 description 30
- 230000006870 function Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 19
- 230000009286 beneficial effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 8
- 230000001105 regulatory effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011068 loading method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000004659 sterilization and disinfection Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/63—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请公开了一种图像渲染处理方法及相关装置,所述方法包括:获取待处理图像;确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;在所述屏幕上展示所述目标渲染图像。采用本申请实施例实现在用户无感知的情况下,降低画质。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种图像渲染处理方法及相关装置。
背景技术
随着电子设备(如手机、平板电脑等等)的大量普及应用,电子设备能够支持的应用越来越多,功能越来越强大,电子设备向着多样化、个性化的方向发展,成为用户生活中不可缺少的电子用品。
以游戏应用为例,往往需要不断加载新的画面,且需要对每一画面进行渲染,由于渲染会给图形处理器(graphics processing unit,GPU)带来较大的负载,因此,在某些时候,也需要降低画质,但是,降低整体画质会导致用户界面文字和其它图像变化尖锐的地方锯齿显著和模糊,影响感官,或者,有的方案则需要游戏重启生效,影响用户体验,因此,如何实现在用户无感知的情况下,降低画质的问题亟待解决。
发明内容
本申请实施例提供一种图像渲染处理方法及相关装置,实现在用户无感知的情况下,降低画质。
第一方面,本申请实施例提供一种图像渲染处理方法,所述方法包括:
获取待处理图像;
确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;
在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;
在所述屏幕上展示所述目标渲染图像。
第二方面,本申请实施例提供一种图像渲染处理装置,所述装置包括:获取单元、确定单元、渲染单元和展示单元,其中,
所述获取单元,用于获取待处理图像;
所述确定单元,用于确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;
所述渲染单元,用于在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;
所述展示单元,用于在所述屏幕上展示所述目标渲染图像。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由处理器执行,所述程序包括用于执行如第一方所描述的部分或者全部步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,具备如下有益效果:
可以看出,本申请实施例中所描述的图像渲染处理方法及相关装置,获取待处理图像,确定待处理图像中每一像素的渲染速率,得到多个渲染速率,在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,在屏幕上展示目标渲染图像,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的画质在屏幕之外的缓冲区域进行渲染速率调控处理,再通过对图像内容不同像素信息使用不同的渲染速率,实现自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU负载,有助于提升应用流程度,有助于提升用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种电子设备的软件结构示意图;
图3是本申请实施例提供的一种图像渲染处理方法的流程示意图;
图4是本申请实施例提供的另一种图像渲染处理方法的流程示意图;
图5是本申请实施例提供的一种用于执行图像渲染处理方法的底层架构示意图;
图6是本申请实施例提供的一种用于执行图像渲染处理方法的另一底层架构示意图;
图7是本申请实施例提供的另一种图像渲染处理方法的流程示意图;
图8是本申请实施例提供的一种渲染速率的演示示意图;
图9是本申请实施例提供的另一种图像渲染处理方法的流程示意图;
图10是本申请实施例提供的另一种图像渲染处理方法的流程示意图;
图11是本申请实施例提供的一种电子设备的结构示意图;
图12是本申请实施例提供的一种图像渲染处理装置的功能单元组成框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。
具体实现中,被测物可以包括各种具有通信功能的电子设备,例如,手持设备(智能手机、平板电脑等)、车载设备(导航仪、辅助倒车系统、行车记录仪、车载冰箱等等)、可穿戴设备(智能手环、无线耳机、智能手表、智能眼镜等等)、客户前置设备(customer premiseequipment,CPE)、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),虚拟现实/增强现实设备,终端设备(terminal device)等等,电子设备还可以为基站或者服务器。
电子设备还可以包括智能家居设备,智能家居设备可以为以下至少一种:智能音箱、智能摄像头、智能电饭煲、智能轮椅、智能按摩椅、智能家具、智能洗碗机、智能电视机、智能冰箱、智能电风扇、智能取暖器、智能晾衣架、智能灯、智能路由器、智能交换机、智能开关面板、智能加湿器、智能空调、智能门、智能窗、智能灶台、智能消毒柜、智能马桶、扫地机器人等等,在此不做限定。
其中,本申请实施例中所提及的本地控制设备、云服务器、测试设备均可以理解为上述电子设备中的一种电子设备。
第一部分,本申请所公开的技术方案的软硬件运行环境介绍如下。
如图所示,图1示出了电子设备100的结构示意图。电子设备100可以包括处理器110、外部存储器接口120、内部存储器121、通用串行总线(universal serial bus,USB)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、传感器模块180、指南针190、马达191、指示器192、摄像头193、显示屏194以及用户标识模块(subscriber identification module,SIM)卡接口195等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器AP,调制解调处理器,图形处理器GPU,图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器NPU等。其中,不同的处理单元可以是独立的部件,也可以集成在一个或多个处理器中。在一些实施例中,电子设备100也可以包括一个或多个处理器110。其中,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。在其他一些实施例中,处理器110中还可以设置存储器,用于存储指令和数据。示例性地,处理器110中的存储器可以为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。这样就避免了重复存取,减少了处理器110的等待时间,因而提高了电子设备100处理数据或执行指令的效率。处理器还可以包括图像处理器,图像处理器可以为图像预处理器(preprocess image signal processor,Pre-ISP),其可以理解为一个简化的ISP,其也可以进行一些图像处理操作,例如,可以获取图像统计信息。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路间(inter-integrated circuit,I2C)接口、集成电路间音频(inter-integrated circuitsound,I2S)接口、脉冲编码调制(pulse code modulation,PCM)接口、通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobile industry processor interface,MIPI)、用输入输出(general-purpose input/output,GPIO)接口、SIM卡接口和/或USB接口等。其中,USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口、Micro USB接口、USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。该USB接口130也可以用于连接耳机,通过耳机播放音频。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110、内部存储器121、外部存储器、显示屏194、摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量、电池循环次数、电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G/6G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络)、蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备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)、迷你发光二极管(mini light-emitting diode,miniled)、MicroLed、Micro-oLed、量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或多个显示屏194。
电子设备100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点、亮度、肤色进行算法优化。ISP还可以对拍摄场景的曝光、色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或多个摄像头193。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1、MPEG2、MPEG3、MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别、人脸识别、语音识别、文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得电子设备100执行本申请一些实施例中所提供的显示页面元素的方法,以及各种应用以及数据处理等。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用(比如图库、联系人等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如照片,联系人等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储部件,闪存部件,通用闪存存储器(universal flash storage,UFS)等。在一些实施例中,处理器110可以通过运行存储在内部存储器121的指令,和/或存储在设置于处理器110中的存储器的指令,来使得电子设备100执行本申请实施例中所提供的显示页面元素的方法,以及其他应用及数据处理。电子设备100可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、以及应用处理器等实现音频功能。例如音乐播放、录音等。
传感器模块180可以包括压力传感器180A、陀螺仪传感器180B、气压传感器180C、磁传感器180D、加速度传感器180E、距离传感器180F、接近光传感器180G、指纹传感器180H、温度传感器180J、触摸传感器180K、环境光传感器180L、骨传导传感器180M等。
其中,压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即X、Y和Z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所连接的位置不同。
示例性的,图2示出了电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图2所示,应用程序层可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
第二部分,本申请实施例所公开的图像渲染处理方法及相关装置介绍如下。
请参阅图3,图3是本申请实施例提供的一种图像渲染处理方法,应用于如图1或者图2所示的电子设备,本图像渲染方法可以包括如下步骤:
301、获取待处理图像。
本申请实施例中,待处理图像可以为单帧图像,或者,可以为序列帧图像中的任一帧图像。
具体实现中,待处理图像可以为游戏应用,或者,视频应用中的任一帧待加载图像,即其未显示在屏幕,而是处于后台加载状态。
本申请实施例可以应用于2D渲染场景或者3D渲染场景。
302、确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率。
具体实现中,本申请实施例中,不同的像素则其变化差异不一样,则需要的渲染速率也不一样,因此,可以确定待处理图像中每一像素的渲染速率,得到多个渲染速率。
本申请实施例中,每一像素对应一个像素位置(a,b),其中,a表示像素在x方向的坐标位置,b表示像素在y方向的坐标位置。
在一些可能的示例中,上述步骤302,确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率,可以包括如下步骤:
21、获取像素i的偏导数对,所述偏导数对包括x方向的偏导数和y方向的偏导数;所述像素i为所述待处理图像中的任一像素;
22、获取预设最小渲染速率值和预设最大渲染速率值;
23、根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率;
24、获取所述像素i的当前渲染速率;
25、根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率。
本申请实施例中,以像素i为例,像素i为待处理图像中的任一像素,则可以获取像素i的偏导数对,该偏导数对可以包括x方向的偏导数和y方向的偏导数,像素i的偏导数用于表示像素i与周边像素的差异信息,例如,x方向的偏导数用于表示在x方向像素i与周围像素之间的差异信息,y方向的偏导数用于表示在y方向像素i与周围像素之间的差异信息。
进一步的,可以获取预设最小渲染速率值和预设最大渲染速率值,预设最小渲染速率值、预设最大渲染速率值均可以预先设置或者系统默认,设最小渲染速率值小于设最大渲染速率值。接着,可以根据预设最小渲染速率值、预设最大渲染速率值和偏导数对确定初始渲染速率,即基于像素本身的变化,决策对应的初始渲染速率,深度符合用户的审美思维或者审美习惯。
接下来,则可以获取像素i的当前渲染速率,像素i的当前渲染速率可以预先设置或者系统默认,当然,像素i的当前渲染速率也可以为上一帧图像在像素i所在的坐标位置或者像素i所在目标或者背景中对应的渲染速率。最后,可以根据初始渲染速率和当前渲染速率确定像素i的目标渲染速率,从而,可以得到最优渲染速率,每一个像素的偏导对反映了其与周围像素的差异信息,该差异信息则反映了图像的主要特征(如特征点、轮廓等),这些差异信息往往是用户关注的重点,从而,可以实现用户关注的内容着重渲染,用户不关注的内容则可以轻度渲染,进而,有效降低GPU的负载。
举例说明下,在计算像素偏导数时,可以利用硬件层提供接口直接获取偏导数对,即dFdx和dFdy,其中,dFdx用于表示x方向的偏导数,dFdy用于表示y方向的偏导数,进而,可以获取到当前像素与周边像素在x方向和y方向的差异信息Fxy,每一方向的偏导数的取值范围均为0~1之间,值越小差异越小,相应的,偏导数越大,则渲染速率越小,偏导数越小,则渲染速率越大。
其中,本申请实施例中,渲染速率可以理解为一个二维量,其包括x方向和y方向两个方向的渲染速率值,例如,渲染速率1*1;渲染速率值可以理解为一个具体值,例如,x方向的渲染速率值为1。
进一步的,在一些可能的示例中,上述步骤23,根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率,可以包括如下步骤:
231、根据所述预设最小渲染速率值构造第一向量;
232、根据所述预设最大渲染速率值构造第二向量;
233、根据所述第一向量、所述第二向量、所述x方向的偏导数和所述y方向的偏导数确定所述初始渲染速率。
本申请实施例中,可以假设预设最小渲染速率值为min_rate,预设最大渲染速率值为max_rate,则可以基于预设最小渲染速率值构造第一向量,即vec2(min_rate,min_rate),还可以基于预设最大渲染速率值构造第二向量,即vec2(max_rate,max_rate)。还可以基于偏导数对,即x方向的偏导数和y方向的偏导数确定像素i与周边像素在x方向和y方向的差异信息Fxy,即整体差异信息,再基于第一向量、第二向量和整体差异信息确定初始渲染速率,具体公式如下:
init_xy=vec2(min_rate,min_rate)*Fxy+vec2(max_rate,max_rate)*(1-Fxy)
其中,init_xy用于表示初始渲染速率,具体实现中,Fxy越小时,可以设置更大的渲染速率值,即功耗降的越多;反之,Fxy越大时,则可以设置更小的渲染速率,则功耗降低相对较少。
进一步的,在一些可能的示例中,上述步骤25,根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率,可以包括如下步骤:
251、确定所述当前渲染速率和所述初始速渲染率之间的差异值;
252、在所述差异值小于预设阈值时,将所述当前渲染速率确定为所述目标渲染速率;
253、在所述差异值大于或等于所述预设阈值时,将所述初始渲染速率确定为所述目标渲染速率。
本申请实施例中,预设阈值可以预先设置或者系统默认。
具体实现中,可以确定当前渲染速率和初始速渲染率之间的差异值,在差异值小于预设阈值时,则可以将当前渲染速率确定为目标渲染速率,在差异值大于或等于预设阈值时,将初始渲染速率确定为目标渲染速率,如此,可以实现动态策略出最优渲染速率,有助于提升渲染速率,以及保证渲染效果。
举例说明下,具体如下中,基于当前渲染速率和初始渲染速率可以按照如下公式确定差异值,具体如下:
d=(rate_currunt_xy.x-init_xy.x)2*(rate_currunt_xy.y-init_xy.y)2
其中,d表示差异值;rate_currunt_xy.x表示在x方向的当前渲染速率值,rate_currunt_xy.y表示在y方向的当前渲染速率值;init_xy.x表示在x方向的初始渲染速率值,init_xy.y表示在y方向的初始渲染速率值。
进一步的,在一些可能的示例中,上述步骤24,获取所述像素i的当前渲染速率,可以包括如下步骤:
241、在所述待处理图像不为第一帧图像时,获取上一帧的渲染速率表,所述渲染速率表用于表示像素与渲染速率之间的映射关系;
242、根据所述渲染速率表获取与所述像素i对应的渲染速率作为所述当前渲染速率;
或者,
243、在所述待处理图像为第一帧图像,或者,所述待处理图像仅为单帧图像时,将预设渲染速率作为所述当前渲染速率。
本申请实施例中,上一帧的渲染速率表可以预先存储在屏幕外的帧缓冲区域。
具体实现中,可以在待处理图像不为第一帧图像时,获取上一帧的渲染速率表,该渲染速率表用于表示像素与渲染速率之间的映射关系,进而,可以根据渲染速率表获取与像素i对应的渲染速率作为当前渲染速率,例如,可以基于像素i的像素位置从渲染速率表中获取对应像素位置的渲染速率作为当前渲染速率,又例如,可以基于像素i所在的目标或者背景中的像素位置获取上一帧图像中的相同的目标或者背景所对应的像素位置对应的渲染速率表中的渲染速率作为当前渲染速率,如此,可以利用上一帧图像的渲染速率表指导当前帧的渲染操作,有助于提升渲染效率。
当然,在待处理图像为第一帧图像,则可以将预设渲染速率作为当前渲染速率;或者,在待处理图像仅为单帧图像时,可以将预设渲染速率作为当前渲染速率,预设渲染速率可以预先设置或者系统默认,能够基于用户设置的渲染速率,决策出最优渲染速率,且最终的渲染策略符合用户需求,有助于提升用户体验。
在一些可能的示例中,还可以包括如下步骤:
将所述待处理图像进行图像提取,得到彩色图像,和/或,深度图像,其中,所述像素i为所述彩色图像,和/或,所述深度图像中的任一像素。
本申请实施例中,可以将待处理图像进行图像提取,得到彩色图像,或者,可以将待处理图像进行图像提取,得到深度图像,或者,可以将待处理图像进行图像提取,得到彩色图像和深度图像。
举例说明下,在将待处理图像进行图像提取,得到彩色图像时,则像素i可以为彩色图像中的任一像素,如此,可以实现只对彩色图像进行渲染。
再举例说明下,在将待处理图像进行图像提取,得到深度图像时,则像素i可以为深度图像中的任一像素,如此,可以实现只对深度图像进行渲染。
再举例说明下,在将待处理图像进行图像提取,得到彩色图像和深度图像时,则像素i可以为彩色图像或者深度图像中的任一像素,如此,可以实现只对彩色图像和深度图像进行渲染。
在一些可能的示例中,还可以包括如下步骤:
将所述待处理图像划分为多个区域,得到多个区域图像,将所述目标渲染速率作为所述像素i所在区域图像的渲染速率,所述像素i为所述多个区域图像中任一区域图像中的一个像素。
本申请实施例中,可以将待处理图像划分为多个区域,得到多个区域图像,像素i为多个区域图像中任一区域图像中的一个像素,接着,可以将目标渲染速率作为该像素i所在区域图像的渲染速率,即针对一片区域,可以基于其中一个像素点确定其对应的渲染速率,从而,实现区域一致性渲染,在降低GPU负载的同时,也可以保持目标或者背景的一致性渲染效果。
在一些可能的示例中,上述步骤,将所述待处理图像划分为多个区域,得到多个区域图像,可以按照如下方式实施:
将所述待处理图像进行目标分割,得到所述多个区域图像,所述多个区域图像包括至少一个背景区域,和/或,至少一个目标区域;
或者,
将所述待处理图像进行区域分割,得到多个区域图像,每一区域图像的面积相等或者不等。
本申请实施例中,可以将待处理图像进行目标分割,得到多个区域图像,多个区域图像包括至少一个背景区域,和/或,至少一个目标区域,进而,可以实现目标区域分割,实现目标或者背景的一致性渲染,有助于提升渲染效率,也降低了GPU的负载。
另外,本申请实施例中,也可以将待处理图像进行区域分割,得到多个区域图像,每一区域图像的面积相等或者不等,例如,可以利用九宫格将待处理图像进行分割,得到多个区域图像,实现每一区域的一致性渲染,有助于提升渲染效率,也降低了GPU的负载。
303、在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像。
本申请实施例中,可以在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,即可以首先对待处理图像中不同像素进行差异化渲染,由于该渲染操作发生在屏幕之外,可以对用户敏感的最上层用户界面(userinterface,UI)保持画质不变,进而,使用户对画质无感知,来降低GPU的负载。
304、在所述屏幕上展示所述目标渲染图像。
本申请实施例中,可以最后再在屏幕上展示最终的渲染效果,即目标渲染图像。
本申请实施例,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的3D场景的画质做渲染速率调控处理,然后,通过对图像内容不同像素信息使用不同的渲染速率,即自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU的负载。
具体实现中,如图4所示,本申请实施例中,可以在3D渲染(3D Render)模式下,在屏幕外的帧缓冲区域(Offscreen FrameBuffer)对待处理图像进行渲染(复合渲染(Composite Render)),最后在用户界面呈现(UI Render)。
举例说明下,如图5所示,以基于安卓系统的游戏应用为例,初始化流程阶段,可以执行如下步骤:
S1:启动Hook Layer流程。Hook layer(Hook)位于游戏(应用程序)和GPU的图形接口(Graphics API)中间,每一个Graphics API都会经过Hook Layer,从而为后续动作做好准备。游戏启动,带动Hook Layer启动。
S2:捕获Frame Buffer创建接口。用于3D场景渲染的帧缓存区域(Frame Buffe)可以包含两个附件:颜色附件(color attachment)和深度附件(depth attachment)。在创建Frame Buffer的参数信息中插入渲染速率表附件,附件大小可以为color attachment的1/n*1/n(n为大于1的整数,例如,n一般取值8,假设color attachment大小可以为1024*1024,则渲染速率表大小为128*128),渲染速率表初始内容设置为1,即保持原本渲染速率。
具体的,如图6所示,应用程序则可以通过CreateFrameBuffer(CreateInfo*info)创建帧缓冲区,以及生成颜色附件和深度附件,即通过info:color attachment depthattachment实现,接着,Hook则可以CreateFrameBuffer(CreateInfo*info)创建缓冲区域,以及颜色附件、深度附件和着色速率附件,即info:color attachment depth attachment,shading rate attaching实现,接下来GPU中的驱动(Driver)则可以通过CreateFrameBuffer创建帧缓冲区域,通过各个模块之间的帧缓冲区域可以实现图像数据加载、渲染和呈现。
具体实现中,应用程序可以向Hook发送系列渲染指令(如Render Command0),再由Hook将这些渲染指令转发给驱动,由驱动执行一系列渲染操作。
进一步的,运行时处理流程,如图7所示,通过第N帧中每一像素的渲染操作进行着色速率处理,即确定每一像素对应的渲染速率,则可以得到渲染速率表,在3D渲染之后、合成渲染之前插入一个新的渲染节点,利用当前帧的渲染像素信息计算渲染速率表信息,用于指导下一帧的渲染,即利用第N帧的渲染速率表指导第N+1帧的渲染操作,从而,有助于提升渲染效果,也可以避免相邻帧之间的渲染变化差异,在降低GPU负载的同时,也能够让用户敏感的最上层用户界面保持画质不变。其中,针对第N帧的输入端,其可以输入当前帧3D场景的渲染像素信息,而输出端可以为输出渲染速率表。
举例说明下,可以采用可变渲染速率技术(如VRS技术)实现渲染操作。其中,VRS是Vulkan图形驱动支持的一种降低GPU负载的技术,可以包含一种接口,该接口是为帧缓冲设定渲染速率表,不同渲染区域可以选择不同的渲染速率,如图8所示,渲染速率可以包含如下:1x1:原始,1x2、2x1:2像素同时渲染,2x2:4像素同时渲,2x4,4x2:8像素同时渲,4x4 16像素同时渲染,其中,1x1可以表示为x方向的渲染速率为1且y方向的渲染速率为1。
本申请实施例中,在计算最优速率值,也可以将渲染速率只设置为如图8所示的这几种,可能会得出初始渲染速率为小数,则可需要遍历获取到最匹配的速率值,例如,可以设置初始阈值(即预设阈值)设置为max_rate*max_rate,在遍历过程中,则可以将初始渲染速率与当前渲染速率之间的差异与初始阈值进行比较,决策出最优渲染速率。在一帧图像渲染完之后,则可以将计算好的渲染速率表设置到FrameBuffer上,用于指导下一帧的渲染。
本申请实施例中,可以通过对游戏渲染使用VRS,最小影响用户感知的情况下,降低了GPU负载,由于只降低离屏分辨率,从而,不影响UI画质,针对游戏应用而言,能够依据游戏本身渲染内容自动化匹配到最优的渲染速率,从而无需游戏开发商接入。
实际应用中,在本申请实施例应用于2D场景或者3D场景渲染,均可以实现较好效果。
可以看出,本申请实施例中所描述的图像渲染处理方法,获取待处理图像,确定待处理图像中每一像素的渲染速率,得到多个渲染速率,在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,在屏幕上展示目标渲染图像,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的画质在屏幕之外的缓冲区域进行渲染速率调控处理,再通过对图像内容不同像素信息使用不同的渲染速率,实现自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU负载,有助于提升应用流程度,有助于提升用户体验。
与所述图3所示的实施例一致的,请参阅图9,图9是本申请实施例提供的另一种图像渲染处理方法,应用于如图1或图2所示的电子设备,具体包括以下步骤:
901、获取待处理图像,所述待处理图像不为第一帧图像。
本申请实施例中,待处理图像可以为单帧图像,或者,可以为序列帧图像中的任一帧图像。
具体实现中,待处理图像可以为游戏应用,或者,视频应用中的任一帧待加载图像,即其未显示在屏幕,而是处于后台加载状态。
902、获取上一帧的渲染速率表。
本申请实施例中,待处理图像的上一帧渲染速率表可以预先保存在屏幕外的帧缓存区域。
903、根据所述渲染速率表,确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率。
具体实现中,以像素i为例,像素i为待处理图像中的任一像素。可以在待处理图像不为第一帧图像时,获取上一帧的渲染速率表,该渲染速率表用于表示像素与渲染速率之间的映射关系,进而,可以根据渲染速率表获取与像素i对应的渲染速率作为当前渲染速率,例如,可以基于像素i的像素位置从渲染速率表中获取对应像素位置的渲染速率作为当前渲染速率,又例如,可以基于像素i所在的目标或者背景中的像素位置获取上一帧图像中的相同的目标或者背景所对应的像素位置对应的渲染速率表中的渲染速率作为当前渲染速率,如此,可以利用上一帧图像的渲染速率表指导当前帧的渲染操作,有助于提升渲染效率。
904、在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像。
本申请实施例中,可以在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,即可以首先对待处理图像中不同像素进行差异化渲染,由于该渲染操作发生在屏幕之外,可以对用户敏感的最上层用户界面保持画质不变,进而,使用户对画质无感知,来降低GPU的负载。
905、在所述屏幕上展示所述目标渲染图像。
本申请实施例中,可以最后再在屏幕上展示最终的渲染效果,即目标渲染图像。
本申请实施例,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的3D场景的画质做渲染速率调控处理,然后,通过对图像内容不同像素信息使用不同的渲染速率,即自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU的负载。
其中,上述步骤901-步骤905的具体描述可以参照上述图3所描述的图像渲染处理方法的相关描述,在此不再赘述。
可以看出,本申请实施例中所描述的图像渲染处理方法,获取待处理图像,确定待处理图像中每一像素的渲染速率,得到多个渲染速率,在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,在屏幕上展示目标渲染图像,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的画质在屏幕之外的缓冲区域进行渲染速率调控处理,再通过对图像内容不同像素信息使用不同的渲染速率,实现自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU负载,有助于提升应用流程度,有助于提升用户体验。
与上述图3所示的示例一致的,请参阅图10,图10是本申请实施例提供的一种图像渲染处理方法的流程示意图,应用于如图1或图2所示的电子设备;其中,如图所示,本图像渲染处理方法包括:
1001、获取待处理图像。
1002、获取像素i的偏导数对,所述偏导数对包括x方向的偏导数和y方向的偏导数;所述像素i为所述待处理图像中的任一像素。
1003、获取预设最小渲染速率值和预设最大渲染速率值。
1004、根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率。
1005、获取所述像素i的当前渲染速率。
1006、根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率。
1007、在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像。
1008、在所述屏幕上展示所述目标渲染图像。
其中,上述步骤1001-步骤1008的具体描述可以参照上述图3所描述的图像渲染处理方法的相关描述,在此不再赘述。
可以看出,本申请实施例中所描述的图像渲染处理方法,获取待处理图像,获取像素i的偏导数对,偏导数对包括x方向的偏导数和y方向的偏导数;像素i为待处理图像中的任一像素,获取预设最小渲染速率值和预设最大渲染速率值,根据预设最小渲染速率值、预设最大渲染速率值和偏导数对确定初始渲染速率,获取像素i的当前渲染速率,根据初始渲染速率和当前渲染速率确定像素i的目标渲染速率,在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,在屏幕上展示目标渲染图像,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的画质在屏幕之外的缓冲区域进行渲染速率调控处理,再通过对图像内容不同像素信息使用不同的渲染速率,实现自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU负载,有助于提升应用流程度,有助于提升用户体验。
与上述实施例一致地,请参阅图11,图11是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由处理器执行,本申请实施例中,上述程序包括用于执行以下步骤的指令:
获取待处理图像;
确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;
在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;
在所述屏幕上展示所述目标渲染图像。
在一些可能的示例中,在所述确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率方面,上述程序包括用于执行以下步骤的指令:
获取像素i的偏导数对,所述偏导数对包括x方向的偏导数和y方向的偏导数;所述像素i为所述待处理图像中的任一像素;
获取预设最小渲染速率值和预设最大渲染速率值;
根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率;
获取所述像素i的当前渲染速率;
根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率。
进一步的,在一些可能的示例中,在所述根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率方面,上述程序包括用于执行以下步骤的指令:
根据所述预设最小渲染速率值构造第一向量;
根据所述预设最大渲染速率值构造第二向量;
根据所述第一向量、所述第二向量、所述x方向的偏导数和所述y方向的偏导数确定所述初始渲染速率。
进一步的,在一些可能的示例中,在所述根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率方面,上述程序包括用于执行以下步骤的指令:
确定所述当前渲染速率和所述初始速渲染率之间的差异值;
在所述差异值小于预设阈值时,将所述当前渲染速率确定为所述目标渲染速率;
在所述差异值大于或等于所述预设阈值时,将所述初始渲染速率确定为所述目标渲染速率。
进一步的,在一些可能的示例中,在所述获取所述像素i的当前渲染速率方面,上述程序包括用于执行以下步骤的指令:
在所述待处理图像不为第一帧图像时,获取上一帧的渲染速率表,所述渲染速率表用于表示像素与渲染速率之间的映射关系;
根据所述渲染速率表获取与所述像素i对应的渲染速率作为所述当前渲染速率;
或者,
在所述待处理图像为第一帧图像,或者,所述待处理图像仅为单帧图像时,将预设渲染速率作为所述当前渲染速率。
在一些可能的示例中,上述程序包括用于执行以下步骤的指令:
将所述待处理图像进行图像提取,得到彩色图像,和/或,深度图像,其中,所述像素i为所述彩色图像,和/或,所述深度图像中的任一像素。
在一些可能的示例中,上述程序还包括用于执行以下步骤的指令:
将所述待处理图像划分为多个区域,得到多个区域图像,将所述目标渲染速率作为所述像素i所在区域图像的渲染速率,所述像素i为所述多个区域图像中任一区域图像中的一个像素。
在一些可能的示例中,在所述将所述待处理图像划分为多个区域,得到多个区域图像方面,上述程序包括用于执行以下步骤的指令:
将所述待处理图像进行目标分割,得到所述多个区域图像,所述多个区域图像包括至少一个背景区域,和/或,至少一个目标区域;
或者,
将所述待处理图像进行区域分割,得到多个区域图像,每一区域图像的面积相等或者不等。
可以看出,本申请实施例中所描述的电子设备,获取待处理图像,确定待处理图像中每一像素的渲染速率,得到多个渲染速率,在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,在屏幕上展示目标渲染图像,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的画质在屏幕之外的缓冲区域进行渲染速率调控处理,再通过对图像内容不同像素信息使用不同的渲染速率,实现自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU负载,有助于提升应用流程度,有助于提升用户体验。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图12是本申请实施例中所涉及的图像渲染处理装置1200的功能单元组成框图。该图像渲染处理装置1200应用于电子设备;所述装置1200包括:获取单元1201、确定单元1202、渲染单元1203和展示单元1204,其中,
所述获取单元1201,用于获取待处理图像;
所述确定单元1202,用于确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;
所述渲染单元1203,用于在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;
所述展示单元1204,用于在所述屏幕上展示所述目标渲染图像。
在一些可能的示例中,在所述确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率方面,所述确定单元1202具体用于:
获取像素i的偏导数对,所述偏导数对包括x方向的偏导数和y方向的偏导数;所述像素i为所述待处理图像中的任一像素;
获取预设最小渲染速率值和预设最大渲染速率值;
根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率;
获取所述像素i的当前渲染速率;
根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率。
在一些可能的示例中,在所述根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率方面,所述确定单元1202具体用于:
根据所述预设最小渲染速率值构造第一向量;
根据所述预设最大渲染速率值构造第二向量;
根据所述第一向量、所述第二向量、所述x方向的偏导数和所述y方向的偏导数确定所述初始渲染速率。
在一些可能的示例中,在所述根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率方面,所述确定单元1202具体用于:
确定所述当前渲染速率和所述初始速渲染率之间的差异值;
在所述差异值小于预设阈值时,将所述当前渲染速率确定为所述目标渲染速率;
在所述差异值大于或等于所述预设阈值时,将所述初始渲染速率确定为所述目标渲染速率。
在一些可能的示例中,在所述获取所述像素i的当前渲染速率方面,所述确定单元1202具体用于:
在所述待处理图像不为第一帧图像时,获取上一帧的渲染速率表,所述渲染速率表用于表示像素与渲染速率之间的映射关系;
根据所述渲染速率表获取与所述像素i对应的渲染速率作为所述当前渲染速率;
或者,
在所述待处理图像为第一帧图像,或者,所述待处理图像仅为单帧图像时,将预设渲染速率作为所述当前渲染速率。
在一些可能的示例中,所述装置1200还具体用于:
将所述待处理图像进行图像提取,得到彩色图像,和/或,深度图像,其中,所述像素i为所述彩色图像,和/或,所述深度图像中的任一像素。
在一些可能的示例中,所述装置1200还具体用于:
将所述待处理图像划分为多个区域,得到多个区域图像,将所述目标渲染速率作为所述像素i所在区域图像的渲染速率,所述像素i为所述多个区域图像中任一区域图像中的一个像素。
在一些可能的示例中,在所述将所述待处理图像划分为多个区域,得到多个区域图像方面,所述装置1200具体用于:
将所述待处理图像进行目标分割,得到所述多个区域图像,所述多个区域图像包括至少一个背景区域,和/或,至少一个目标区域;
或者,
将所述待处理图像进行区域分割,得到多个区域图像,每一区域图像的面积相等或者不等。
可以看出,本申请实施例中所描述的图像渲染处理方法,获取待处理图像,确定待处理图像中每一像素的渲染速率,得到多个渲染速率,在屏幕外的帧缓冲区域,根据多个渲染速率对待处理图像中对应的像素进行渲染,得到目标渲染图像,在屏幕上展示目标渲染图像,可以对用户敏感的最上层用户界面保持画质不变,而对用户界面渲染之前的画质在屏幕之外的缓冲区域进行渲染速率调控处理,再通过对图像内容不同像素信息使用不同的渲染速率,实现自动化调控图像不同区域的渲染速率,使用户对画质无感知,来降低GPU负载,有助于提升应用流程度,有助于提升用户体验。
需要注意的是,本申请实施例所描述的电子设备是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。
其中,获取单元1201、确定单元1202可以是处理器,该处理器可以为人工智能芯片、NPU、CPU、GPU等等,在此不做限定,渲染单元1203和展示单元1204可以为GPU。基于上述单元模块能够实现上述任一方法的功能或者步骤。
本实施例还提供了一种芯片,其中,该芯片可以用于实现上述实施例中的任一方法。
本实施例还提供了一种计算机可读存储介质,其中,该计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例,以用于实现上述实施例中的任一方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的任一方法。
另外,本申请的实施例还提供一种图像渲染处理装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的任一方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种图像渲染处理方法,其特征在于,所述方法包括:
获取待处理图像;
确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;
在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;
在所述屏幕上展示所述目标渲染图像。
2.根据权利要求1所述的图像渲染处理方法,其特征在于,所述确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率,包括:
获取像素i的偏导数对,所述偏导数对包括x方向的偏导数和y方向的偏导数;所述像素i为所述待处理图像中的任一像素;
获取预设最小渲染速率值和预设最大渲染速率值;
根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率;
获取所述像素i的当前渲染速率;
根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率。
3.根据权利要求2所述的图像渲染处理方法,其特征在于,所述根据所述预设最小渲染速率值、预设最大渲染速率值和所述偏导数对确定初始渲染速率,包括:
根据所述预设最小渲染速率值构造第一向量;
根据所述预设最大渲染速率值构造第二向量;
根据所述第一向量、所述第二向量、所述x方向的偏导数和所述y方向的偏导数确定所述初始渲染速率。
4.根据权利要求2或3所述的图像渲染处理方法,其特征在于,所述根据所述初始渲染速率和所述当前渲染速率确定所述像素i的目标渲染速率,包括:
确定所述当前渲染速率和所述初始速渲染率之间的差异值;
在所述差异值小于预设阈值时,将所述当前渲染速率确定为所述目标渲染速率;
在所述差异值大于或等于所述预设阈值时,将所述初始渲染速率确定为所述目标渲染速率。
5.根据权利要求2-4任一项所述的图像渲染处理方法,其特征在于,所述获取所述像素i的当前渲染速率,包括:
在所述待处理图像不为第一帧图像时,获取上一帧的渲染速率表,所述渲染速率表用于表示像素与渲染速率之间的映射关系;
根据所述渲染速率表获取与所述像素i对应的渲染速率作为所述当前渲染速率;
或者,
在所述待处理图像为第一帧图像,或者,所述待处理图像仅为单帧图像时,将预设渲染速率作为所述当前渲染速率。
6.根据权利要求2-5任一项所述的图像渲染处理方法,其特征在于,所述方法还包括:
将所述待处理图像进行图像提取,得到彩色图像,和/或,深度图像,其中,所述像素i为所述彩色图像,和/或,所述深度图像中的任一像素。
7.根据权利要求2-5任一项所述的图像渲染处理方法,其特征在于,所述方法还包括:
将所述待处理图像划分为多个区域,得到多个区域图像,将所述目标渲染速率作为所述像素i所在区域图像的渲染速率,所述像素i为所述多个区域图像中任一区域图像中的一个像素。
8.根据权利要求7所述的方法,其特征在于,所述将所述待处理图像划分为多个区域,得到多个区域图像,包括:
将所述待处理图像进行目标分割,得到所述多个区域图像,所述多个区域图像包括至少一个背景区域,和/或,至少一个目标区域;
或者,
将所述待处理图像进行区域分割,得到多个区域图像,每一区域图像的面积相等或者不等。
9.一种图像渲染处理装置,其特征在于,所述装置包括:获取单元、确定单元、渲染单元和展示单元,其中,
所述获取单元,用于获取待处理图像;
所述确定单元,用于确定所述待处理图像中每一像素的渲染速率,得到多个渲染速率;
所述渲染单元,用于在屏幕外的帧缓冲区域,根据所述多个渲染速率对所述待处理图像中对应的像素进行渲染,得到目标渲染图像;
所述展示单元,用于在所述屏幕上展示所述目标渲染图像。
10.一种电子设备,其特征在于,所述电子设备包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置处理器执行,所述程序包括用于执行如权利要求1-8任一项所述的方法中的步骤的指令。
11.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211224089.0A CN117893665A (zh) | 2022-10-08 | 2022-10-08 | 图像渲染处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211224089.0A CN117893665A (zh) | 2022-10-08 | 2022-10-08 | 图像渲染处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117893665A true CN117893665A (zh) | 2024-04-16 |
Family
ID=90649629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211224089.0A Pending CN117893665A (zh) | 2022-10-08 | 2022-10-08 | 图像渲染处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117893665A (zh) |
-
2022
- 2022-10-08 CN CN202211224089.0A patent/CN117893665A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114397980B (zh) | 一种应用显示方法及电子设备 | |
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
US20220107821A1 (en) | User interface layout method and electronic device | |
CN113254120B (zh) | 数据处理方法和相关装置 | |
CN111768416B (zh) | 照片裁剪方法及装置 | |
CN111553846B (zh) | 超分辨率处理方法及装置 | |
CN111882642B (zh) | 三维模型的纹理填充方法及装置 | |
CN111768352B (zh) | 图像处理方法及装置 | |
CN110780929B (zh) | 调用硬件接口的方法及电子设备 | |
CN113177229B (zh) | 数据处理方法及相关装置 | |
CN116051351B (zh) | 一种特效处理方法和电子设备 | |
CN114422686B (zh) | 参数调整方法及相关装置 | |
CN114244655B (zh) | 信号处理方法及相关装置 | |
CN115933952B (zh) | 一种触控采样率调节方法及相关装置 | |
CN111836226B (zh) | 数据传输控制方法、装置及存储介质 | |
CN117769696A (zh) | 显示方法、电子设备、存储介质和程序产品 | |
CN117893665A (zh) | 图像渲染处理方法及相关装置 | |
CN114630152A (zh) | 用于图像处理器的参数传输方法、装置及存储介质 | |
CN114596819B (zh) | 亮度调节方法及相关装置 | |
CN114336998A (zh) | 充电控制方法、装置及存储介质 | |
CN113495733A (zh) | 主题包安装方法、装置、电子设备及计算机可读存储介质 | |
CN114510192B (zh) | 图像处理方法及相关装置 | |
CN114630153B (zh) | 用于应用处理器的参数传输方法、装置及存储介质 | |
CN115175164B (zh) | 通信控制方法及相关装置 | |
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 |