CN111179369B - 一种基于安卓系统的gpu渲染方法及装置 - Google Patents
一种基于安卓系统的gpu渲染方法及装置 Download PDFInfo
- Publication number
- CN111179369B CN111179369B CN201911372630.0A CN201911372630A CN111179369B CN 111179369 B CN111179369 B CN 111179369B CN 201911372630 A CN201911372630 A CN 201911372630A CN 111179369 B CN111179369 B CN 111179369B
- Authority
- CN
- China
- Prior art keywords
- module
- memory
- android
- fbdev
- kernel
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于安卓系统的GPU渲染技术。其中的方法包括以下步骤:A、在安卓系统的init进程中调用fork函数创建子进程;B、在通过fork函数创建的子进程中装载fbdev native window框架模块;C、将渲染后的数据给到fb设备的显存;D、针对fb设备调用ioctl在内核中将fb显存设置为DE layer的addr。其中的装置包括存储器和处理器,该处理器在执行储存在存储器的指令时实施所述方法。本发明解决了在Android显示相关的服务没有起来之前进行GPU渲染的问题;减少了渲染显示框架的层次,缩短了渲染显示执行流程的时间且不依赖Android车载系统本身的服务进程。
Description
技术领域
本发明涉及一种基于安卓(Android)系统的GPU渲染方法及装置,属于软件技术领域。
背景技术
Android车载系统下具有一个基于Android Native Window的GPU渲染显示框架,在该框架下需要等到Android一系列显示相关的服务起来之后才可进行GPU的渲染操作,因此就导致Android系统的显示相关的服务没有起来之前想进行GPU渲染场景(比如快速倒车等)在该框架下无法操作。
发明内容
本发明提供一种基于安卓系统的GPU渲染方法及装置,旨在至少解决现有技术中存在的技术问题之一。例如,解决了在Android显示相关的服务没有起来之前进行GPU渲染的技术问题。
本发明的技术方案涉及一种基于安卓系统的GPU渲染方法,所述方法包括以下步骤:A、在安卓系统的init进程中调用fork函数创建一个子进程;B、在通过fork函数创建的子进程中装载fbdev native window框架模块;C、将渲染后的数据给到fb设备的显存;D、针对fb设备调用ioctl在内核中将fb显存设置为DE layer的addr。
在本发明的一些方面,所述步骤B还包括:在init的子进程中,基于fbdev nativewindow框架,渲染显示EGL模块和openGL ES模块。
在本发明的一些方面,所述步骤C包括:
在fbdev native window框架模块中操作fb设备节点和mali设备节点,将渲染后的数据给到fb设备的显存。
在本发明的一些方面,所述步骤D还包括:
通过调用ioctl,在内核的驱动模块和所述子进程之间,操作fb模块获取fb显存。
在本发明的一些方面,所述步骤D还包括:
通过调用ioctl,在内核的驱动模块和所述子进程之间,操作GPU模块进行渲染。
在本发明的一些方面,所述的安卓系统为车载安卓系统。
本发明的技术方案还涉及一种计算机装置,包括存储器和处理器,所述处理器执行储存在所述存储器中的计算机程序时实施上述的方法。
本发明的技术方案还涉及一种计算机可读存储介质,其上储存有计算机程序指令,所述计算机程序指令被处理器执行时实施上述的方法。
本发明的有益效果为:
提出改进的基于安卓系统的GPU渲染方法及装置;解决了在Android显示相关的服务没有起来之前进行GPU渲染的问题;减少了渲染显示框架的层次,缩短了渲染显示执行流程的时间且不依赖Android车载系统本身的服务进程。
附图说明
图1所示为根据现有技术的方法的流程图。
图2所示为根据本发明的方法的总体流程图。
图3所示为根据本发明的实施例的基于fbdev native window的GPU渲染显示框架示意图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
参照图1,在传统的或安卓原生的基于android native window框架下的渲染方法包括以下步骤:
S1、在安卓系统的init进程中调用fork函数创建一些列的多个子进程;
S2、在每个子进程中装载显示相关的服务;
S3、通过服务装载基于android native window渲染显示EGL模块和openGL ES模块以及HWC模块;
S4、将GPU渲染的数据的句柄给到HWC;
S5、HWC通过ioctl操作将数据送显DE。
区别于现有技术,本发明的方案采用fbdev native window框架。
参照图2,在一些实施例中,根据本发明的基于fbdev native window框架的GPU渲染方法,所述方法包括以下步骤:
A、在安卓系统的init进程中调用fork函数创建一个子进程;
B、在通过fork函数创建的子进程中装载fbdev native window框架模块;
C、将渲染后的数据给到fb设备的显存;
D、针对fb设备调用ioctl在内核中将fb显存设置为DE layer的addr。
对比图1可以见到,与Android车载系统原生的Android native window渲染显示框架相比,根据本发明的方法的优点在于减少了渲染显示框架的层次,缩短了渲染显示执行流程的时间且不依赖Android车载系统本身的服务进程。
参照图3,在一些实施例中,所述步骤B还包括:在init的子进程中,基于fbdevnative window框架,渲染显示EGL模块和openGL ES模块。
在一些实施例中,所述步骤C包括:在fbdev native window框架模块中操作fb设备节点和mali设备节点,将渲染后的数据给到fb设备的显存。
在一些实施例中,所述步骤D还包括:通过调用ioctl,在内核的驱动模块和所述子进程之间,操作fb模块获取fb显存;通过调用ioctl,在内核的驱动模块和所述子进程之间,操作GPU模块进行渲染。
在一些实施例中,所述的安卓系统优选为车载的安卓系统,尤其是集成快速倒车、全景显示等快速视频切换的功能的车载安卓系统。应理解,所述的安卓系统还可以包括基于安卓架构二次开发的其它智能操作系统,或者通过虚拟机运行的安卓系统。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于输入响应优化安卓应用程序启动速度的系统中的执行过程。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于安卓系统的GPU渲染方法,其特征在于,所述方法包括以下步骤:
A、在安卓系统的init进程中调用fork函数创建一个子进程;
B、在通过fork函数创建的子进程中装载fbdev native window框架模块;
C、将渲染后的数据给到fb设备的显存;
D、针对fb设备调用ioctl在内核中将fb显存设置为DE layer的addr,
其中,所述步骤B还包括:在init的子进程中,基于fbdev native window框架,渲染显示EGL模块和openGL ES模块,
所述步骤C还包括:在fbdev native window框架模块中操作fb设备节点和mali设备节点,将渲染后的数据给到fb设备的显存,以及
所述步骤D还包括:通过调用ioctl,在内核的驱动模块和所述子进程之间,操作GPU模块进行渲染。
2.根据权利要求1所述的方法,其中,所述步骤D还包括:
通过调用ioctl,在内核的驱动模块和所述子进程之间,操作fb模块获取fb显存。
3.根据权利要求1所述的方法,其中,所述的安卓系统为车载安卓系统。
4.一种计算机装置,包括存储器和处理器,其特征在于,所述处理器执行储存在所述存储器中的计算机程序时实施的方法包括以下步骤:
A、在安卓系统的init进程中调用fork函数创建子进程;
B、在通过fork函数创建的子进程中装载fbdev native window框架模块;
C、将渲染后的数据给到fb设备的显存;
D、针对fb设备调用ioctl在内核中将fb显存设置为DE layer的addr,
其中,所述步骤B还包括:在init的子进程中,基于fbdev native window框架,渲染显示EGL模块和openGL ES模块,
所述步骤C还包括:在fbdev native window框架模块中操作fb设备节点和mali设备节点,将渲染后的数据给到fb设备的显存,以及
所述步骤D还包括:通过调用ioctl,在内核的驱动模块和所述子进程之间,操作GPU模块进行渲染。
5.根据权利要求4所述的装置,其中,所述步骤D还包括:
通过调用ioctl,在内核的驱动模块和所述子进程之间,操作fb模块获取fb显存。
6.一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施如权利要求1至3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911372630.0A CN111179369B (zh) | 2019-12-27 | 2019-12-27 | 一种基于安卓系统的gpu渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911372630.0A CN111179369B (zh) | 2019-12-27 | 2019-12-27 | 一种基于安卓系统的gpu渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111179369A CN111179369A (zh) | 2020-05-19 |
CN111179369B true CN111179369B (zh) | 2023-07-25 |
Family
ID=70652211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911372630.0A Active CN111179369B (zh) | 2019-12-27 | 2019-12-27 | 一种基于安卓系统的gpu渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111179369B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237532A (zh) * | 2021-11-30 | 2022-03-25 | 珠海全志科技股份有限公司 | 基于Linux嵌入式系统的多窗口实现方法、装置及介质 |
CN114022344B (zh) * | 2022-01-10 | 2022-04-05 | 北京蔚领时代科技有限公司 | 基于Linux服务器的Android容器渲染资源共享方法和装置 |
CN114756191B (zh) * | 2022-06-14 | 2023-03-21 | 南京芯驰半导体科技有限公司 | 一种基于安卓系统的视频数据快速显示方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336816B (zh) * | 2013-06-28 | 2017-02-08 | 广州市动景计算机科技有限公司 | 安卓系统上基于GPU实现的Canvas元素渲染方法及装置 |
CN104219555B (zh) * | 2014-08-21 | 2018-03-30 | 北京奇艺世纪科技有限公司 | 一种安卓系统终端中的视频显示装置和方法 |
CN107861827B (zh) * | 2017-10-31 | 2021-05-21 | 努比亚技术有限公司 | 卡屏检测方法、移动终端及计算机可读存储介质 |
CN108170503B (zh) * | 2018-01-24 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 一种跨系统运行安卓应用的方法、终端及存储介质 |
-
2019
- 2019-12-27 CN CN201911372630.0A patent/CN111179369B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111179369A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111179369B (zh) | 一种基于安卓系统的gpu渲染方法及装置 | |
US11301237B2 (en) | Upgrading method and apparatus | |
CN108632533A (zh) | 一种相机的控制方法、移动终端及计算机可读存储介质 | |
CN108228344B (zh) | 多进程内存处理方法及装置、计算机装置及可读存储介质 | |
CN116483587B (zh) | 一种基于图像分割的视频超分并行方法、服务器及介质 | |
US11195248B2 (en) | Method and apparatus for processing pixel data of a video frame | |
US7206001B1 (en) | Fractal-dithering technique for image display | |
CN111176641A (zh) | 流程节点执行方法、装置、介质及电子设备 | |
CN111785229B (zh) | 一种显示方法、装置及系统 | |
CN115754413A (zh) | 示波器及数据处理方法 | |
CN111367799B (zh) | 定位源代码崩溃位置的方法、装置、介质及电子设备 | |
CN115309315A (zh) | Wayland环境下X应用的截图方法、系统及介质 | |
CN114998172A (zh) | 图像处理方法及相关系统 | |
CN114077473A (zh) | 通信方法、装置及系统 | |
CN111488189B (zh) | 窗体显示方法、装置、设备以及计算机可读存储介质 | |
EP1516288A1 (en) | Calculation method of a cumulative histogram | |
CN117935726B (zh) | Mini-LED显示屏色彩均化方法及装置 | |
US11423600B2 (en) | Methods and apparatus for configuring a texture filter pipeline for deep learning operation | |
CN116916095B (zh) | 一种云视频的平滑显示方法、装置、设备及存储介质 | |
CN108958718B (zh) | 一种纹理图像绑定方法、装置及可读存储介质 | |
CN106331708A (zh) | 一种视频流处理方法、装置及系统 | |
CN116225561A (zh) | 一种界面展示方法、装置、终端设备和存储介质 | |
CN117271026A (zh) | 页面渲染方法、装置、电子设备和存储介质 | |
CN117271072A (zh) | 数据处理的流程运转方法、装置及终端 | |
CN118295740A (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 |