[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN118229507A - 一种图像处理方法、装置、系统、设备及计算机存储介质 - Google Patents

一种图像处理方法、装置、系统、设备及计算机存储介质 Download PDF

Info

Publication number
CN118229507A
CN118229507A CN202410634303.2A CN202410634303A CN118229507A CN 118229507 A CN118229507 A CN 118229507A CN 202410634303 A CN202410634303 A CN 202410634303A CN 118229507 A CN118229507 A CN 118229507A
Authority
CN
China
Prior art keywords
image
data
vertex
drawn
processor
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
CN202410634303.2A
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.)
Xi'an Xintong Semiconductor Technology Co ltd
Original Assignee
Xi'an Xintong Semiconductor Technology 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 Xi'an Xintong Semiconductor Technology Co ltd filed Critical Xi'an Xintong Semiconductor Technology Co ltd
Priority to CN202410634303.2A priority Critical patent/CN118229507A/zh
Publication of CN118229507A publication Critical patent/CN118229507A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

本公开实施例公开了一种图像处理方法、装置、系统、设备及计算机存储介质,属于图像处理技术领域。图像处理方法可以包括:接收待绘制图像的描述数据;根据所述描述数据确定所述待绘制图像的顶点数据;基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。本公开实施例能够解决图形绘制效率较低的技术问题。

Description

一种图像处理方法、装置、系统、设备及计算机存储介质
技术领域
本公开实施例涉及图像处理技术领域,尤其涉及一种图像处理方法、装置、系统、设备及计算机存储介质。
背景技术
计算机在进行图形绘制时,通常会由中央处理器(Central Processing Unit,CPU) 根据待绘制图像的描述数据来生成待绘制图像的顶点数据,然后将顶点数据传输至图形处理器(Graphics Processing Unit, GPU),由GPU来完成对图像的绘制。
但是,由于顶点数据需要由CPU向GPU进行传输,在传输的数据量较大时,会导致对图形绘制的效率较低。
发明内容
有鉴于此,本公开实施例期望提供一种图像处理方法、装置、系统、设备及计算机存储介质;能够克服图形绘制效率较低的技术问题。
本公开实施例的技术方案是这样实现的:
第一方面,本公开实施例提供了一种图像处理方法,应用于图形处理器,所述方法包括:
接收待绘制图像的描述数据;
根据所述描述数据确定所述待绘制图像的顶点数据;
基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
在一些示例中,所述描述数据包括所述待绘制图像的几何形状和几何特征数据;
所述根据所述描述数据确定所述待绘制图像的顶点数据,包括:
根据所述几何形状确定绘制算法;
根据所述绘制算法和所述几何特征数据确定所述待绘制图像的顶点数据。
在一些示例中,所述几何特征数据包括顶点数量和顶点特征;
所述根据所述绘制算法和所述几何特征数据确定所述待绘制图像的顶点数据,包括:
根据所述绘制算法、所述顶点特征、顶点数量确定各顶点的坐标,以得到所述顶点数据。
在一些示例中,根据所述绘制算法、所述顶点特征、顶点数量确定各顶点的坐标,包括:
根据所述顶点数量和所述顶点特征确定各所述顶点的相对分布位置;
根据所述相对分布位置以及所述顶点特征中目标特征点位置,确定各所述顶点的坐标。
在一些示例中,所述方法还包括:
接收所述描述数据的更新数据;
根据所述描述数据的更新数据,更新所述待绘制图像的顶点数据。
第二方面,本公开实施例提供了一种图像处理方法,应用于中央处理器,所述方法包括:
发送待绘制图像的描述数据,以使得图形处理器根据所述描述数据确定所述待绘制图像的顶点数据,并基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
在一些示例中,所述方法还包括:
根据用户对所述目标图像的渲染场景或渲染对象显示矩阵的变换操作,生成描述数据的更新数据;
发送所述描述数据的更新数据。
第三方面,本公开实施例提供了图像处理装置,应用于图形处理器,所述装置包括:
接收模块,用于接收待绘制图像的描述数据,其中所述描述数据包括所述待绘制图像的几何特征数据;
确定模块,用于根据所述描述数据确定所述待绘制图像的顶点数据;
绘制模块,用于基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
第四方面,本公开实施例提供了图像处理装置,应用于中央处理器,所述装置包括:
发送模块,用于发送待绘制图像的描述数据,以根据所述描述数据确定所述待绘制图像的顶点数据,并基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
其中,所述描述数据包括所述待绘制图像的几何特征数据。
第五方面,本公开实施例提供了一种电子设备,所述电子设备包括:处理器和存储器;所述处理器用于执行所述存储器中存储的指令,以实现第一方面或第二方面所述的图像处理方法。
第六方面,本公开实施例提供了一种计算机存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如第一方面或第二方面所述的图像处理方法。
第七方面,本公开实施例提供了一种图像处理系统,包括中央处理器和图形处理器;其中:
所述图形处理器用于执行如第一方面所述的图像处理方法;
所述中央处理器用于执行第二方面所述的图像处理方法。
本公开实施例提供了一种图像处理方法、装置、系统、设备及计算机存储介质;由图形处理器接收待绘制图像的描述数据;根据描述数据确定待绘制图像的顶点数据;基于顶点数据对待绘制图像进行绘制,以得到目标图像。图形处理器接收待绘制图像的描述数据,并生成顶点数据,即顶点数据是由图形处理器生成的,描述数据的数据量小于顶点数据,由图形处理器生成顶点数据,能够降低CPU和GPU之间的数据传输量,提升图形绘制的效率。
附图说明
图1为可实施本公开实施例一个或多个方面的计算装置的框图。
图2为本公开实施例提供的图1中CPU、GPU和系统存储器的示例实施方案的框图。
图3为本公开实施例提供的更加详细地说明由图2的GPU结构所形成的图形处理管线的框图。
图4为本公开实施例提供的一种应用于图形处理器的图像处理方法的流程图。
图5为本公开实施例提供的一种应用于中央处理器的图像处理方法的流程图。
图6为本公开实施例提供的一种应用于图形处理器的图像处理装置的结构示意图。
图7为本公开实施例提供的一种应用于中央处理器的图像处理装置的结构示意图。
图8为本公开实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
一般来说,GPU在对图形或图像进行绘制和渲染的过程中,都需要从CPU接收顶点数据,然后再根据顶点数据进行管线渲染以生成目标图像。但是顶点数据的数据量通常比较大,传输过程会耗费时间,导致图形绘制效率较低。而本公开实施例用于描述一种用于提升图形绘制效率的图像处理方法。
参照图1,本公开实施例提供了一种能够实施用于进行图像处理技术的计算装置10,该计算装置10的实例包括但不限于:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等。在图1的实例中,该计算装置10可以包括:中央处理器(CPU)14、系统存储器17和GPU15。计算装置10还可包含显示处理器16、收发器模块11、用户接口12和显示器13。收发器模块11和显示处理器16两者可以是与CPU14和/或GPU 15相同的集成电路(IC)的部分,两者也可在包含CPU 14和/或GPU 15的一或多个IC的外部,或可形成于在包含CPU14和/或GPU 15的IC外部的IC中。
为清楚起见,计算装置10可包含图1中未图示的额外模块或单元。举例来说,计算装置10可在计算装置10为移动无线电话的实例中包含扬声器和麦克风(两者均未在图1中示出)来实现电话通信,或在计算装置10为媒体播放器的情况下包含扬声器。计算装置10还可包含摄像机。此外,计算装置10中所示的各种模块和单元可能不是在计算装置10的每个实例中都是必需的。举例来说,在计算装置10为桌上型计算机或与外部用户接口连接的其它装置的实例中,用户接口12和显示器13可在计算装置10外部。
用户接口12的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口12还可为触摸屏,并且可作为显示器13的部分并入。收发器模块11可包含电路以允许计算装置10与另一装置或网络之间的无线或有线通信。收发器模块11可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。
CPU 14可包括控制计算装置10的运算的通用或专用处理器。用户可将输入提供到计算装置10,以致使CPU 14执行一或多个软件应用程序。在CPU 14上执行的软件应用程序可包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU 14可执行用于控制GPU 15的运算的GPU驱动程序141。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口耦合到计算装置10的另一输入装置)将输入提供到计算装置10。
在CPU 14上执行的软件应用程序可包含一或多个图形渲染指令,其指令CPU 14来致使将图形数据渲染到显示器13。在一些实例中,所述软件指令可符合图形应用程序编程接口(API),例如开放式图形库API、开放式图形库嵌入系统(OpenGL ES)API、Direct3DAPI、X3D API、RenderMan API、WebGL API、开放式计算语言(OpenCLT M) 、RenderScript或任何其它异构计算API,或任何其它公用或专有标准图形或计算API。所述软件指令还可为针对无渲染算法(例如计算摄影、卷积神经网络、视频处理、科学应用程序等)的指令。为了处理图形渲染指令,CPU 14可向GPU 15发出一或多个图形渲染命令(例如,通过GPU驱动程序141),以致使GPU 15执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、等图形图元的列表。
GPU 15可经配置以执行图形运算,从而将一或多个图形图元渲染到显示器13。因此,当在CPU 14上执行的软件应用中的一者需要图形处理时,CPU 14可将图形命令和图形数据提供到GPU 15以用于渲染到显示器13。图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU 15可内置有高度并行结构,其提供比CPU 14高效的对复杂图形相关运算的处理。举例来说,GPU 15可包含经配置以并行方式对多个顶点或像素进行运算的多个处理元件,例如着色器单元。在一些情况下,GPU 15的高度并行性质允许GPU 15比使用CPU 14直接将场景绘制到显示器13更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器13上。
在一些情况下,可将GPU 15集成到计算装置10的母板中。在其它情况下,GPU 15可存在于图形卡上,所述图形卡安装在计算装置10的母板中的端口中,或可以其它方式并入在经配置以与计算装置10互操作的外围装置内。GPU 15可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 15还可包含一或多个处理器核心,使得GPU 15可被称作多核处理器。
图形存储器151可为GPU 15的一部分。因此,GPU 15可在不使用总线的情况下从图形存储器151读取数据且将数据写入到图形存储器151。换句话说,GPU 15可使用本地存储装置而不是芯片外存储器在本地处理数据。此类图形存储器151可被称作芯片上存储器。这允许GPU 15通过消除GPU 15经由总线读取和写入数据的需要来以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 15可不包含单独的存储器,而是经由总线利用系统存储器17。图形存储器151可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
在一些实例中,GPU 15可将完全形成的图像存储在系统存储器17中。显示处理器16可从系统存储器17检索图像,且输出致使显示器13的像素照亮以显示所述图像的值。显示器13可为计算装置10的显示器,其显示由GPU 15产生的图像内容。显示器13可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
如图2所示,CPU 14可执行至少一个软件应用程序142、图形API 143和GPU 驱动程序141,其中的每一者可为一或多个软件应用程序或服务。在一些实例中,图形API 143和GPU驱动程序141可实施为CPU 14的硬件单元。
可供CPU14和GPU 15使用的存储器可包含系统存储器17和输出缓冲器18。输出缓冲器18可为系统存储器17的部分或可与系统存储器17分离。输出缓冲器18可存储经渲染图像数据,例如像素数据,以及任何其它数据。输出缓冲器18还可被称为帧缓冲器或显存。
图形存储器151可包含片上存储装置或存储器,其物理上集成到GPU15的集成电路芯片中。如果图形存储器151是在芯片上,那么与经由系统总线从系统存储器17读取值或将值写入到系统存储器17相比,GPU15能够更加快速地从图形存储器151读取值或将值写入到图形存储器151。
输出缓冲器18存储GPU 15的目的地像素。每个目的地像素可与唯一屏幕像素位置相关联。在一些实例中,输出缓冲器18可存储每个目的地像素的色彩分量和目的地α值。举例来说,输出缓冲器18可存储每个像素的红色、绿色、蓝色、α(RGBA)分量,其中“ RGB”分量对应于色彩值,并且“ A”分量对应于目的地α值(例如,用于图像合成的不透明度值)。尽管将输出缓冲器18和系统存储器17说明为单独的存储器单元,但在其它实例中,输出缓冲器18可以是系统存储器17的一部分。此外,输出缓冲器18还可能够存储除像素之外的任何合适的数据。
软件应用程序142可为利用GPU 15的功能性的任何应用程序。举例来说,软件应用程序142可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。
软件应用程序142可包含GPU 15渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定将由GPU 15渲染的一组一或多个图形图元的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘制指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序142可经由图形API 143调用GPU驱动程序141,以向GPU 15发出一或多个命令,以用于将一或多个图形图元渲染到可显示的图形图像中。
处理器集群153可包含一或多个可编程处理单元1531和/或一或多个固定功能处理单元1532。对于上述两种处理单元,可编程处理单元1531可包含例如被配置成执行从CPU14下载到GPU 15上的用于将描述数据转换为顶点数据的矢量着色器、一或多个着色器程序的可编程着色器单元。在一些实例中,可编程着色器单元可被称为“着色器处理器”或“统一着色器”,且可被配置为能够至少执行顶点和片元着色操作以呈现图形;可选地,可编程着色器单元还可以被配置执行几何或其它着色操作以呈现图形。因此,处理器集群153中的可编程着色器单元可至少包含矢量着色器、顶点着色器单元、片元着色器单元,此外,还可以包含几何着色器单元、外壳着色器单元、域着色器单元、计算着色器单元和/或统一着色器单元。在具体实施过程中,可编程着色器单元可各自包含用于提取和解码操作的一或多个组件、用于进行算术计算的一或多个ALU、一或多个存储器、高速缓存和寄存器。
并且,固定功能处理单元1532可包含经硬连线以执行某些功能的硬件。尽管固定功能硬件可经由例如一或多个控制信号而配置以执行不同功能,但所述固定功能硬件通常并不包含能够接收用户编译程序的程序存储器。在一些实例中,处理器集群153中的固定功能处理单元1532可包含例如执行图元装配的处理单元、执行光栅操作的处理单元,所述光栅操作例如深度测试、裁剪测试、颜色融合等。
一般来说,GPU 15从CPU 14所接收到的命令,其示例为,CPU14执行GPU驱动程序141,以使得GPU驱动程序141可基于由软件应用程序142向GPU驱动程序141发出的指令产生定义用于由GPU 15执行的操作集合的命令流。所述命令流能够控制处理器集群153中可编程处理单元1531和固定功能处理单元1532的操作。举例来说,命令流通常控制GPU 15 的哪些组件执行命令流中界定的操作。
如上所述,GPU 15可包含可从GPU驱动程序141接收命令流的命令处理器152。命令处理器152可以是被配置成接收并处理一或多个命令流的硬件与软件的任意组合。由此,命令处理器152可在本地控制GPU 资源而无需CPU14 的干预。举例来说,GPU 15的命令处理器152可从CPU 14接收一个或一个以上“ 任务”。命令处理器152可独立地调度任务由GPU15的资源(比如一或多个可编程处理单元1531和一或多个固定功能处理单元1532)执行。在一个实例中,命令处理器152可以是硬件处理器。在图2中所示出的实例中,命令处理器152可包含于GPU 15中。在其它实例中,命令处理器152可以是与CPU 14和GPU 15分离的单元。命令处理器152还可被称为流处理器、命令/流处理器及类似者,以指示其可以是被配置成接收命令和/或操作的流的任何处理器。
命令处理器152可处理一或多个命令流,其包含调度操作,所述调度操作包含于由GPU 15执行的一或多个命令流中。具体地说,命令处理器152可处理一或多个命令流,且调度所述一或多个命令流中的操作,以由处理器集群153执行。在操作中,GPU驱动程序141可向命令处理器152发送包括待由GPU 15执行的一系列操作的命令流。命令处理器152可接收包括命令流的操作流且可基于命令流中的操作次序依序地处理命令流的操作,且可调度命令流中的操作可以由处理器集群153中的一或多个处理单元执行。
图3示出了进一步以图2中所示的GPU结构中由处理器集群153所形成的图形处理管线的示例,需要说明的是,图形处理管线是利用处理器集群153中所包含的可编程处理单元1531和固定功能处理单元1532通过级联形成的逻辑结构,相应来说,图形处理管线通常包含可编程级(如图3中圆角框示意)和固定功能级(如图3中方框示意),举例来说,可编程级可由处理器集群153中的可编程处理单元1531来执行,固定功能级可由处理器集群153中的固定功能处理单元1532实现。如图3所示,图形处理管线所包括的各级依次为:
数据输入单元31,在图3的实例中展示为固定功能级且通常负责将图形数据(三角形、线和点)供应到图形处理管线。举例来说,数据输入单元31可收集CPU发送的关于待绘制图像的描述数据,其中,描述数据可以是用于描述待绘制图像关键信息的信息,举例而言,若上述待绘制图像是圆形,则关键信息可以包括圆心的坐标、半径以及绘制点数等。若上述绘制图像是正方形,则描述数据可以包括正方形的中心点坐标、边长以及绘制点数等,描述数据的具体内容可以基于用户需求进行自定义设置,在此不做赘述。
在一些示例中,上述数据输入单元31还可以接收由CPU发送的描述数据的更新数据,其中,上述描述数据的更新数据是由CPU根据用户对所述目标图像的渲染场景或渲染对象显示矩阵的变换操作生成的,并经过CPU发送至GPU中的数据输入单元31。
其中,渲染对象显示矩阵可以包括模型矩阵、投影矩阵、视图矩阵等,在本示例实施方式中不做赘述。
其中,上述描述数据的更新数据可以包括对顶点数量的更新、图像尺寸的更新等,在本示例实施方式中不做赘述。
举例而言,在目标图像是圆时,用户在放大上述目标图像时,若顶点数量不变,圆的光滑度就会下降,在一定程度上使得用户看到的并不是一个圆,此时,生成描述数据更新操作,同时更新圆的半径和顶点数量,更新后的半径和顶点数量可以根据用户放大操作的程度决定,在此不做赘述。同理,在用户将圆缩小时,也可以将上述圆的半径和顶点数量都变小,以提高渲染性能,具体程度可以根据用户需求进行设定,在此不做赘述。
需要说明的是,上述待绘制图像为圆形只是一种示例,待绘制图像还可以是三角形、矩形、椭圆等规则图像,也可以由用户设定的如动漫人物、桥梁、房子等非规则图像,在本示例实施方式中不做具体限定。
矢量着色器级32在图3中展示为可编程级,用于接收上述描述数据,并根据上述描述数据确定待绘制图像的顶点数据。
在一些的示例中,矢量着色器级32可以是预先配置好的用于绘制特定图像的,也就是说,矢量着色器级32中的绘制算法可以是固定的,举例而言,可以将上述矢量着色器级32的绘制算法配置为圆形的绘制算法,此时,矢量着色器级32只能够生成关于圆形的顶点数据。
在一些示例中,上述描述数据中可以包括待绘制图像的几何形状和几何特征数据,可以根据上述几何形状为上述待绘制图像配置绘制算法,具体的,绘制算法可以存储在GPU的闪存中,或者存储在上述GPU中的其他存储空间中,矢量着色器级32在接收到描述数据之后,会在数据存储空间中加载与上述几何形状相对应的绘制算法。
矢量着色器级32在获取到上述绘制算法之后,可以根据上述描述数据中的几何特征数据确定待绘制图像的顶点数据,具体的,上述顶点数据可以包括顶点数量和顶点特征。
在一些示例中,关联性以根据上述绘制算法、顶点特征以及顶点数量确定上述各顶点的坐标,以得到上述顶点数据。
其中,上述顶点特征可以包括上述目标特征点位置以及各个顶点之间的关联性,举例而言,若上述待绘制图像是圆形,此时的顶点特征为多个顶点与同一个目标特征点之间的距离相同,以及各个顶点距离圆心的距离,也就是圆的半径,以及圆心位置,其中,圆心位置即为上述目标特征点位置。
需要说明的是,上述目标特征点的数量可以是一个、也可以是多个,具体数量可以根据待绘制几何图像的几何形状进行确定,也可以根据用户需求进行自定义设置,在此不做赘述。
具体的,在得到上述顶点特征之后,可以根据上述顶点特征和顶点数量确定各顶点的相对分布位置,根据顶点数量确定各个顶点之间的相对距离。
举例而言,在上述待绘制图像是圆形时,可以根据上述顶点数量确定圆上的各个顶点之间的相对距离,在得到上述相对距离之后,可以根据上述目标特征点位置确定上述顶点的坐标。
在一些示例中,数据输入单元31,可以将描述数据的更新数据发送至矢量着色器级32,矢量着色器级32可以根据上述描述数据的更新数据,更新上述顶点数据。
顶点着色器级33,在图3中展示为可编程级,且负责处理所接收顶点数据和属性,并通过每次针对每个顶点实施一组操作来处理顶点数据。
图元装配级34,在图3中展示为固定功能级,负责收集顶点着色器级33输出的顶点并将所述顶点组成几何图元。例如,图元装配级34可以配置为将每三个连续的顶点组成为几何图元(即三角形)。在一些实施例中,特定的顶点可以被重复用于连续的几何图元(例如,三角形带中的两个连续的三角形可以共享两个顶点)。
光栅器级35通常为负责修剪和准备片元着色器级36的图元的固定功能级。举例来说,光栅器级35可产生若干碎片以供片元着色器级36进行阴影处理。
片元着色器级36,在图3中展示为可编程级,从光栅器级35接收碎片且产生例如颜色等像素数据。片元着色器级36还可执行例如纹理混合和照明模型计算等像素处理。
片元后处理单元37,在图3中展示为固定功能级,通常负责对像素数据实施多种操作,例如实施透明测试(alpha test)、模板测试(stencil test)、以及将像素数据与对应于与该像素相关的其他片段的其他像素数据混合。当片元后处理单元37已经完成处理像素数据(即输出数据)时,可以将处理完成的像素数据写入到渲染目标以产生最终结果。
本公开通过在GPU侧设置矢量着色器来实现GPU生成顶点数据,避免了由于顶点数据从CPU传输至GPU造成的时间消耗,提升了对图像绘制的效率。
图4为本公开实施例提供的一种应用于图形处理器的图像处理方法的流程图,该方法可以应用于图3中的数据输入单元31和矢量着色器级32,其中,上述图像处理方法可以包括步骤S410至步骤S430。
在步骤S410中,接收待绘制图像的描述数据。
在一些示例实施方式中,数据输入单元31可收集关于CPU发送的关于待绘制图像的描述数据,其中,描述数据可以是用于描述待绘制图像关键信息的信息,举例而言,若上述待绘制图像是圆形,则关键信息可以包括圆心的坐标、半径以及绘制点数等。若上述绘制图像是正方形,则描述数据可以包括正方形的中心点坐标、边长以及绘制点数等,描述数据的具体内容可以基于用户需求进行自定义设置,在此不做赘述。
在一些示例中,上述数据输入单元31还可以接收由CPU发送的描述数据的更新数据,其中,上述描述数据的更新数据是由CPU根据用户对目标图像的操作生成的,并经过CPU发送至GPU中的数据输入单元31。
其中,上述描述数据的更新数据可以包括对顶点数量的更新、图像尺寸的更新等,在本示例实施方式中不做赘述。
举例而言,在目标图像是圆时,用户在放大上述目标图像时,若顶点数量不变,圆的光滑度就会下降,在一定程度上使得用户看到的并不是一个圆,此时,可以根据上述用户的放大操作,生成描述数据更新操作,同时更新圆的半径和顶点数量,更新后的半径和顶点数量可以根据用户放大操作的程度决定,在此不做赘述。在用户将圆缩小时,也可以将上述圆的半径和顶点数量都变小,具体程度可以根据用户需求进行设定,在此不做赘述。
需要说明的是,上述待绘制图像为圆形只是一种示例,待绘制图像还可以是三角形、矩形、椭圆形等规则图像,也可以由用户设定的如动漫人物、桥梁、房子等非规则图像,在本示例实施方式中不做具体限定。
在步骤S420中,根据描述数据确定待绘制图像的顶点数据。
在一些示例实施方式中,矢量着色器级32可以是预先配置好的用于绘制特定图像的,也就是说,矢量着色器级32中的绘制算法是固定的,举例而言,可以将上述矢量着色器级32的绘制算法配置为圆形的绘制算法,此时,矢量着色器级32只能够生成关于圆形的顶点数据。
在一些示例中,上述描述数据中可以包括待绘制图像的几何形状和几何特征数据,可以根据上述几何形状为上述待绘制图像配置绘制算法,具体的,绘制算法可以存储在GPU的闪存中,或者存储在上述GPU中的其他存储空间中,矢量着色器级32在接收到描述数据之后,会在数据存储空间中加载与上述几何形状相对应的绘制算法。
具体的,关于圆形的绘制算法可以如下所示:
#version 460 core //指定glsl版本
uniform vec3 center;
uniform float radius;
uniform int circlePoints;// / 原点位置和圆半径以及圆的绘制点数需要用户指定,这里通过uniform传入
void main() //入口函数
{
int count = min(circlePoints,6);
float span = 360.0/circlePoints;
for(double i=0.0;i<360+slan;i=i+span)// 循环计算圆上坐标
{
gl_Position=center+vec3(radius*cos(i*PI/180.0*angle),radius*sin(i*PI/180.0*angle),0.0);// 循环计算圆上坐标
EmitVertex(); //发送当前圆坐标
}
}
用户通过指定圆心位置和半径,并指定圆的点数,即可创建一系列点,以得到顶点数据。
再举例,绘制算法还可以如下所示:
void main()
{
gl_Position = vec3(0,0,0); //构建坐标为(0,0,0)的点
EmitVertex();
gl_Position = vec3(1,0,0); //构建坐标为(1,0,0)的点
EmitVertex();
gl_Position = vec3(1,1,0); //构建坐标为(1,1,0)的点
EmitVertex();
}
上述绘制算法的作用是构建三个顶点。
需要说明的是,绘制算法的具体内容还可以基于用户需求进行自定义设置,在本示例实施方式中不做赘述。
矢量着色器级32在获取到上述绘制算法之后,可以根据上述描述数据中的几何特征数据确定待绘制图像的顶点数据,具体的,上述顶点数据可以包括顶点数量和顶点特征。
在一些示例中,可以根据上述绘制算法、顶点特征以及顶点数量确定上述各顶点的坐标,以得到上述顶点数据。
其中,上述顶点特征可以包括上述目标特征点位置以及各个顶点之间的关联性,举例而言,若上述待绘制图像是圆形,此时的顶点特征为多个顶点与同一个目标特征点之间的距离相同,以及各个顶点距离圆心的距离,也就是圆的半径,以及圆心位置,其中,圆心位置即为上述目标特征点位置。
需要说明的是,上述目标特征点的数量可以是一个,也可以是多个,具体数量可以根据待绘制几何图像的几何形状进行确定,也可以根据用户需求进行自定义设置,在此不做赘述。
具体的,在得到上述顶点特征之后,可以根据上述顶点特征和顶点数量确定各顶点的相对分布位置,具体的,根据顶点数量确定各个顶点之间的相对距离。
举例而言,在上述待绘制图像是圆形时,可以根据上述顶点数量确定圆上的各个顶点之间的相对距离,在得到上述相对距离之后,可以根据上述目标特征点位置确定上述顶点的坐标。
在步骤S430中,基于顶点数据对待绘制图像进行绘制,以得到目标图像。
在一些示例实施方式中,在得到上述顶点数据之后,可以由图3中的顶点着色器级33和图元装配级34基于顶点数据生成目标图像,然后基于上述图3中的光栅器级35、片元着色器级36、片元后处理单元37对上述目标图像进行优化,并输出目标图像。
本公开实施例中的图像处理方法,图形处理器接收待绘制图像的描述数据,并生成顶点数据,即顶点数据是由图形处理器直接生成的,描述数据的数据量小于顶点数据,由图形处理器生成顶点数据,能够降低CPU和GPU之间的数据传输量,提升图形绘制的效率。
进一步的,本公开还提供一种图像处理方法,应用于中央处理器,参照图5,方法可以包括步骤S510。
在步骤S510中,发送待绘制图像的描述数据。
在一些示例中,中央处理器用于向图形处理器发送待绘制图像的描述数据。以使得上述图形处理器基于描述数据执行步骤S410至步骤S430以得到目标图像。
需要说明的是,步骤S410至步骤S430上述已经进行了详细说明,因此,在此不做赘述。
在一些示例中,中央处理器还可以用于接收用户对目标图像的渲染场景或渲染对象显示矩阵的变换操作,生成描述数据的更新数据,并将描述数据的更新数据发送至图形处理器。
其中,变换操作可以是用于通过外接设备对目标图像的渲染场景或渲染对象显示矩阵进行调整,也可以是用户基于语音、肢体发送的调整操作,其中外接设备包括但不限于鼠标、键盘等,调整操作的具体形式可以根据用户需求进行自定义设置,在本示例实施方式中不做赘述。
需要说明的是,上述渲染的对象显示矩阵的具体信息上述已经进行了详细说明,因此,此处不再赘述。
进一步的,本公开还提供一种图像处理装置,应用于图像处理器,参照图6所示,图像处理装置600可以包括接收模块610、确定模块620以及绘制模块630。
接收模块610可以用于接收待绘制图像的描述数据。
确定模块620可以用于根据描述数据确定待绘制图像的顶点数据。
绘制模块630可以用于基于顶点数据对待绘制图像进行绘制,以得到目标图像。
在一些示例中,描述数据包括待绘制图像的几何形状和几何特征数据,确定模块620还可以用于根据几何形状确定绘制算法;根据绘制算法和几何特征数据确定待绘制图像的顶点数据。
在一些示例中,几何特征数据包括顶点数量和顶点特征;确定模块620还可以用于根据绘制算法、顶点特征、顶点数量确定各顶点的坐标,以得到顶点数据。
在一些示例中,确定模块620还可以用于根据顶点数量和顶点特征确定各顶点的相对分布位置;根据相对分布位置以及顶点特征中目标特征点位置,确定各顶点的坐标。
在一些示例中,图像处理装置还可以用于接收描述数据的更新数据;根据描述数据的更新数据,更新待绘制图像的顶点数据。
进一步的,本公开还提供一种图像处理装置,应用于中央处理器,参照图7所示,图像处理装置700可以包括发送模块710。其中:
发送模块710可以用于发送待绘制图像的描述数据,以使得图形处理器根据描述数据确定待绘制图像的顶点数据,并基于顶点数据对待绘制图像进行绘制,以得到目标图像。
在一些示例中,图像处理装置700还可以用于根据用户对目标图像的渲染场景或渲染对象显示矩阵的变换操作,生成描述数据的更新数据;发送描述数据的更新数据。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(ResistiveRandom Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、 高带宽内存HBM(High-BandwidthMemory)、混合存储立方 HMC(Hybrid Memory Cube)等等。
集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
请参考图8,其示出了本公开一个示例性实施例提供的电子设备的结构方框图。在一些示例中,电子设备可以为智能手机、智能手表、台式电脑、手提电脑、虚拟现实终端、增强现实终端、无线终端和膝上型便携计算机等设备中的至少一种。电子设备具有通信功能,可以接入有线网络或无线网络。电子设备可以泛指多个终端中的一个,本领域技术人员可以知晓,上述终端的数量可以更多或更少。可以理解的,电子设备承担本公开技术方案的计算及处理工作,本公开实施例对此不作限定。
如图8所示,该电子设备800可以包括:至少一个处理器810、存储器820、和通信接口830。
存储器820,用于存储程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器820可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器810用于执行存储器820存储的计算机执行指令,以实现前述方法实施例所描述的图像处理方法。其中,处理器810可能是一个中央处理器(Central ProcessingUnit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本公开实施例的一个或多个集成电路。
该电子设备800还可以包括通信接口830,以通过通信接口830可以与外部设备进行通信交互。在具体实现上,如果通信接口830、存储器820和处理器810独立实现,则通信接口830、存储器820和处理器810可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口830、存储器820和处理器810集成在一块芯片上实现,则通信接口830、存储器820和处理器810可以通过内部接口完成通信。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的图像处理方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中;电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行以实现上述各个实施例的图像处理方法。
本公开还提供一种图像处理系统,可以包括中央处理器和图形处理器,其中,中央处理器可以用于向图形处理器发送待绘制图像的描述数据,图像处理器可以基于接收待绘制图像的描述数据;根据描述数据确定待绘制图像的顶点数据;基于顶点数据对待绘制图像进行绘制,以得到目标图像。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本公开实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。

Claims (12)

1.一种图像处理方法,其特征在于,应用于图形处理器,所述方法包括:
接收待绘制图像的描述数据;
根据所述描述数据确定所述待绘制图像的顶点数据;
基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
2.根据权利要求1所述的方法,其特征在于,所述描述数据包括所述待绘制图像的几何形状和几何特征数据;
所述根据所述描述数据确定所述待绘制图像的顶点数据,包括:
根据所述几何形状确定的绘制算法;
根据所述绘制算法和所述几何特征数据确定所述待绘制图像的顶点数据。
3.根据权利要求2所述的方法,其特征在于,所述几何特征数据包括顶点数量和顶点特征;
所述根据所述绘制算法和所述几何特征数据确定所述待绘制图像的顶点数据,包括:
根据所述绘制算法、所述顶点特征、顶点数量确定各顶点的坐标,以得到所述顶点数据。
4.根据权利要求3所述的方法,其特征在于,根据所述绘制算法、所述顶点特征、顶点数量确定各顶点的坐标,包括:
根据所述顶点数量和所述顶点特征确定各所述顶点的相对分布位置;
根据所述相对分布位置以及所述顶点特征中目标特征点位置,确定各所述顶点的坐标。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述描述数据的更新数据;
根据所述描述数据的更新数据,更新所述待绘制图像的顶点数据。
6.一种图像处理方法,其特征在于,应用于中央处理器,所述方法包括:
发送待绘制图像的描述数据,以使得图形处理器根据所述描述数据确定所述待绘制图像的顶点数据,并基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据用户对所述目标图像的渲染场景或渲染对象显示矩阵的变换操作,生成描述数据的更新数据;
发送所述描述数据的更新数据。
8.一种图像处理装置,应用于图形处理器,其特征在于,所述装置包括:
接收模块,用于接收待绘制图像的描述数据,其中所述描述数据包括所述待绘制图像的几何特征数据;
确定模块,用于根据所述描述数据确定所述待绘制图像的顶点数据;
绘制模块,用于基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像。
9.一种图像处理装置,应用于中央处理器,其特征在于,所述装置包括:
发送模块,用于发送待绘制图像的描述数据,以根据所述描述数据确定所述待绘制图像的顶点数据,并基于所述顶点数据对所述待绘制图像进行绘制,以得到目标图像;
其中,所述描述数据包括所述待绘制图像的几何特征数据。
10.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;所述处理器用于执行所述存储器中存储的指令,以实现如权利要求1至7任一项所述的图像处理方法。
11.一种计算机存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至7任一项所述的图像处理方法。
12.一种图像处理系统,其特征在于,包括中央处理器和图形处理器;其中:
所述图形处理器用于执行如权利要求1至5任一项所述的图像处理方法;
所述中央处理器用于执行如权利要求6或7所述的图像处理方法。
CN202410634303.2A 2024-05-22 2024-05-22 一种图像处理方法、装置、系统、设备及计算机存储介质 Pending CN118229507A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410634303.2A CN118229507A (zh) 2024-05-22 2024-05-22 一种图像处理方法、装置、系统、设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410634303.2A CN118229507A (zh) 2024-05-22 2024-05-22 一种图像处理方法、装置、系统、设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN118229507A true CN118229507A (zh) 2024-06-21

Family

ID=91504223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410634303.2A Pending CN118229507A (zh) 2024-05-22 2024-05-22 一种图像处理方法、装置、系统、设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN118229507A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112991143A (zh) * 2021-05-06 2021-06-18 南京芯瞳半导体技术有限公司 一种图元装配的方法、装置及计算机存储介质
CN114298915A (zh) * 2021-12-30 2022-04-08 浙江大华技术股份有限公司 图像目标的处理方法和装置、存储介质及电子装置
CN114387362A (zh) * 2021-12-23 2022-04-22 深圳市华胜软件技术有限公司 图形绘制方法、装置、电子设备和可读存储介质
CN117292039A (zh) * 2023-11-27 2023-12-26 芯瞳半导体技术(山东)有限公司 顶点坐标生成方法、装置、电子设备及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112991143A (zh) * 2021-05-06 2021-06-18 南京芯瞳半导体技术有限公司 一种图元装配的方法、装置及计算机存储介质
CN114387362A (zh) * 2021-12-23 2022-04-22 深圳市华胜软件技术有限公司 图形绘制方法、装置、电子设备和可读存储介质
CN114298915A (zh) * 2021-12-30 2022-04-08 浙江大华技术股份有限公司 图像目标的处理方法和装置、存储介质及电子装置
CN117292039A (zh) * 2023-11-27 2023-12-26 芯瞳半导体技术(山东)有限公司 顶点坐标生成方法、装置、电子设备及计算机存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
台州学院教务处: "《台州学院 2007届本科优秀毕业设计(论文)选编 下》", 31 October 2007, 《台州学院教务处》, pages: 55 - 59 *
陈宗海 主编: "《系统仿真技术及其应用 第9卷》", 31 August 2007, 中国科学技术大学出版社, pages: 401 - 405 *

Similar Documents

Publication Publication Date Title
CN108701366B (zh) 用于图形处理中的阴影光线的树遍历的开始节点确定的方法、设备及可读存储媒体
EP3108452B1 (en) Shader pipeline with shared data channels
EP3350766B1 (en) Storing bandwidth-compressed graphics data
CN109564694B (zh) 用于基于入库的图形处理的顶点着色器
US9824458B2 (en) Dynamically switching between late depth testing and conservative depth testing
CN108701367B (zh) 单遍次包围体阶层光栅化
KR20170132758A (ko) 하이브리드 2d/3d 그래픽 렌더링
CN113256764A (zh) 一种光栅化装置、方法及计算机存储介质
EP3427229B1 (en) Visibility information modification
CN114972607B (zh) 加速图像显示的数据传输方法、装置及介质
CN112991143A (zh) 一种图元装配的方法、装置及计算机存储介质
CN111080505A (zh) 一种提高图元装配效率的方法、装置及计算机存储介质
CN111311478B (zh) 一种gpu渲染核数据的预读取方法、装置及计算机存储介质
CN116909511A (zh) 提升gpu双缓冲显示效率的方法、装置及存储介质
US10089708B2 (en) Constant multiplication with texture unit of graphics processing unit
CN111127620B (zh) 一种生成半球域采样模式的方法、装置及计算机存储介质
CN118229507A (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