使用人机界面进行绘图的方法和系统
技术领域
本申请涉及图像处理,尤其涉及一种使用人机界面进行绘图的方法和系统。
背景技术
人机交互系统是人和机器间的接口,有重要的现实意义。随着计算机软硬件技术飞速发展,计算机系统性能大幅提升且成本急剧下降,计算机及其相关技术作为人机交互系统的重要组成技术持续发展。向使用者提供更加易学、易记和易用的操作界面是当前乃至未来一段时间内人机交互技术的首要任务。
人机界面(Human Machine Interface,简称HMI)则是人机交互中的一个重要媒介,它实现计算机内部的形式与人类可以接受的形式之间的转换。图形用户界面(GraphicUser Interface)作为该技术的核心内容,以其丰富的图形图像信息、直观的表达方式与用户进行交互。嵌入式图形用户界面是嵌入式实时操作系统的一个重要组成部分,所以人机界面的绘图速度是其性能衡量的一个很重要的指标。
传统的嵌入式系统中人机交互界面的实现方法为纯软件绘图模式,而不具备独立的图形处理的硬件模块。随着图形用户界面的不断发展,人机界面的绘图的精度要求不断提高,传统的人机界面绘图架构逐渐出现了绘图速度慢与功耗大的问题。同时,很多时候在嵌入式系统中CPU要进行很复杂的运算,图形处理部分若占用大量CPU资源无疑会降低CPU运算速度。
发明内容
本申请提供一种使用人机界面进行绘图的系统和方法。
根据本申请的第一方面,本申请提供一种使用人机界面进行绘图的系统,包括:CPU、FPGA、存储器和显示器;
所述CPU,用于将包括绘图元素的数据写入所述存储器;
所述FPGA,用于从所述存储器中读取绘图元素,判断所述绘图元素的类型,所述绘图元素的类型包括三角形和纹理,根据所述绘图元素的类型分别进入三角形处理流程和纹理处理流程,进行并行处理,使三角形处理流程输出的三角形数据,使纹理处理流程输出的纹理数据;并将所述三角形数据和所述纹理数据进行颜色混合;
所述CPU还用于在所述绘图元素读取完毕时,通过所述FPGA控制所述显示器显示进行颜色混合后的数据。
上述系统中,所述FPGA包括人机界面HMI、内存控制器、显示控制器和内部总线;所述内存控制器分别与所述存储器、所述人机界面HMI、所述显示控制器连接,所述人机界面HMI和所述显示控制器分别与所述内部总线连接,所述存储器通过所述内存控制器与所述内部总线连接。
上述系统中,所述人机界面HMI还用于判断三角形数据是否作为动态掩膜的信息,若是,则将三角形数据输入纹理处理流程进行纹理处理;将三角形透明度信息附加在三角形颜色信息中。
上述系统中,所述人机界面HMI包括纹理处理模块、三角形着色模块和颜色混合模块;所述三角形着色模块用于计算三角面的参数和每个像素点的颜色值,并输出三角形数据;所述纹理处理模块用于读取纹理的压缩数据,进行解压操作后输出纹理数据;所述颜色混合模块将所述三角形数据和所述纹理数据进行颜色混合。
上述系统中,所述三角形着色模块用于在三角形作为动态掩膜信息时,将三角形的透明度信息输出至所述纹理处理模块,所述纹理处理模块还用于将三角形透明度信息附加在三角形数据在输出。
上述系统中,所述存储器包括动态随机存储器和静态只读存储器,所述动态随机存储器用于存储三角形绘图元素信息以及进行颜色混合后的数据,所述静态只读存储器用于存储纹理绘图元素信息。
上述系统中,所述内部总线包括AXI总线。
根据本申请的第二方面,本申请提供一种使用人机界面进行绘图的方法,包括:
读取绘图元素,判断所述绘图元素的类型,所述绘图元素的类型包括三角形和纹理;
根据所述绘图元素的类型分别进入三角形处理流程和纹理处理流程,进行并行处理;
将三角形处理流程输出的三角形数据和纹理处理流程输出的纹理数据进行颜色混合;
若所述绘图元素读取完毕,则显示进行颜色混合后的数据。
上述方法中,步骤所述三角形处理流程输出的三角形数据后,还包括:
判断三角形数据是否作为动态掩膜的信息;
若是,则将三角形数据输入纹理处理流程进行纹理处理。
上述方法中,所述将三角形数据输入纹理处理流程进行纹理处理,具体包括:
将三角形透明度信息附加在三角形颜色信息中;
将附加有三角形透明度信息的三角形颜色信息,附加在纹理处理流程输出的颜色数据上。
由于采用了以上技术方案,使本申请具备的有益效果在于:
⑴ 在本申请的具体实施方式中,由于包括FPGA,用于判断绘图元素的类型,根据绘图元素的类型分别进入三角形处理流程和纹理处理流程,进行并行处理,增加了图像处理的并行度,分离了纹理贴图和三角形着色的步骤,不仅可以将CPU从繁重的图形处理与绘制的任务中解放出来,而且加快了图像处理速度。
⑵ 在本申请的具体实施方式中,引入了动态掩模进行图形处理,能够加快包含大量纹理贴图的图像的绘制。
附图说明
图1为本申请的系统在一种实施方式中的结构示意图;
图2为本申请的系统中FPGA在一种实施方式中的功能模块示意图;
图3为本申请的方法在一种实施方式中的流程图;
图4为本申请的方法在另一种实施方式中的流程图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。
实施例一:
如图1所示,本申请提供一种使用人机界面进行绘图的系统,其一种实施方式,包括CPU、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、存储器和显示器。CPU,用于将包括绘图元素的数据写入存储器; FPGA,用于从存储器中读取绘图元素,判断绘图元素的类型,绘图元素的类型包括三角形和纹理,根据绘图元素的类型分别进入三角形处理流程和纹理处理流程,进行并行处理,使三角形处理流程输出的三角形数据,使纹理处理流程输出的纹理数据;并将三角形数据和纹理数据进行颜色混合;CPU还用于在绘图元素读取完毕时,通过FPGA控制显示器显示进行颜色混合后的数据。
在一种实施方式中,FPGA包括HMI、内存控制器、显示控制器和内部总线;内存控制器分别与HMI、显示控制器连接,HMI和显示控制器分别与内部总线连接,存储器通过内存控制器与内部总线连接。
在一种实施方式中,FPGA通过如下方式进行工作:首先CPU通过内部总线控制内存控制器从存储器中将HMI所需要的绘图数据写入HMI中,然后HMI进行运算后再将运算后的颜色数据通过总线与存储控制器写回存储器中,最后CPU控制内存控制器将HMI写回的数据传输给显示控制器并显示到屏幕。
FPGA可通过硬件描述语言实现内部总线、HMI、内存控制器和显示控制器。在一种实施方式中,内部总线包括AXI总线。
在一种实施方式中,FPGA还用于判断三角形数据是否作为动态掩膜的信息,若是,则将三角形数据输入纹理处理流程进行纹理处理。
本申请的使用人机界面进行绘图的系统, FPGA还用于将三角形透明度信息附加在三角形颜色信息中。
在一种实施方式中,HMI包括纹理处理模块、三角形着色模块和颜色混合模块。三角形着色模块用于计算三角面的参数和每个像素点的颜色值,并输出三角形数据;纹理处理模块用于读取纹理的压缩数据,进行解压操作后输出纹理数据;颜色混合模块将三角形数据和纹理数据进行颜色混合。
在一种实施方式中,三角形着色模块用于在三角形作为动态掩膜信息时,将三角形的透明度信息输出至纹理处理模块,纹理处理模块还用于将三角形透明度信息附加在三角形数据中输出。
掩模,是指一个附着于纹理之上一张部分透明的图片。当这张图片附着于纹理之上后,纹理只有部分能显示,部分不能显示。掩模本身没有颜色的概念,只有可见与不可见之分。掩膜的可见部分,也就是纹理经过掩膜操作之后的可见部分。
而动态掩膜,是指掩膜的图片不仅仅可以使用系统默认的掩膜,还可以由用户自己绘制所需的形状。用户绘制掩膜图像与用户绘制其他图像一样,会转换为一组三角形信息,并送入三角形处理的流水线中。只是最后在颜色混合的时候不是直接与背景图片进行混合,而是送到掩膜缓冲单元中,供纹理在纹理掩膜步骤中使用。
利用动态掩膜掩模的思想,纹理贴图的步骤不再是传统的利用纹理坐标进行纹理变换再贴在三角形上,而是先绘制纹理然后再进行动态掩膜。
如图2所示,三角形数据存储于三角形存储单元202,纹理数据存储于纹理存储单元201。其中每个三角形数据包括是否作为动态掩膜的信息,每个纹理数据包括是否使用动态掩膜的信息。
三角形数据被送入三角形着色模块204。在三角形着色模块204中,三角形数据先进入参数建立单元204A进行三角面的参数的计算,包括tile的划分、包围盒计算等。然后进入颜色插值单元204B,计算每个像素点的颜色值。之后三角形颜色插值单元204B根据三角形是否作为动态掩膜的信息,选择输出的位置。如果三角形不作为动态掩膜,则直接输出至颜色缓存204C。否则,如果三角形作为动态掩膜,则将三角形的透明度信息输出至掩膜缓存205B以供纹理的动态掩膜步骤使用。
纹理数据被送入纹理处理模块205进行纹理的处理。首先纹理解压缩模块从纹理存储单元201中读取纹理的压缩数据,在纹理解压缩单元203中进行解压操作后传递给纹理缓存205A。这时纹理混合单元205C读取纹理是否使用动态掩膜的信息。如果纹理不使用动态掩膜,则纹理混合单元205C直接输出纹理信息。否则,如果纹理需要使用动态掩膜,则纹理混合单元205C将掩膜缓存中的三角形透明度信息附加在三角形颜色信息中并输出。
最后,纹理处理模块205的数据与三角形着色模块204的数据都输出至颜色混合模块206中,进行颜色混合操作。混合操作完成后输出至tile缓存207中存储,以便后续的显示单元使用。
在一种实施方式中,存储器可以包括动态随机存储器和静态只读存储器。动态随机存储器用于存储三角形绘图元素信息以及进行颜色混合后的数据,静态只读存储器用于存储纹理绘图元素信息。
实施例二:
如图3所示,本申请的使用人机界面进行绘图的方法,其一种实施方式,包括以下步骤:
步骤302:读取绘图元素,判断绘图元素的类型,绘图元素的类型包括三角形和纹理;
步骤304:根据所述绘图元素的类型分别进入三角形处理流程和纹理处理流程,进行并行处理;
步骤306:将三角形处理流程输出的三角形数据和纹理处理流程输出的纹理数据进行颜色混合;
步骤308:若绘图元素读取完毕,则显示进行颜色混合后的数据。
在一种实施方式中,步骤306中,三角形处理流程输出的三角形数据前,还包括:
判断三角形数据是否作为动态掩膜的信息;
若是,则将三角形数据输入纹理处理流程进行纹理处理。
在另一种实施方式中,纹理处理流程输出纹理数据前,还包括:
将三角形透明度信息附加在三角形颜色信息中;
将附加有三角形透明度信息的三角形颜色信息,附加在纹理处理流程输出的颜色数据上。
如图4所示,本申请的使用人机界面进行绘图的方法,其一种具体实施方式,包括以下步骤:
步骤402:读取绘图元素;
步骤404:判断绘图元素是否读取完毕;如读取完毕,转步骤420;否则转步骤406;
步骤406:判断读取元素是三角形还是纹理;如果是是三角形数据转步骤408,如果是纹理数据转步骤414;
步骤408:将读取的数据送入三角形着色模块;
步骤410:判断三角形是否作为掩膜;
步骤412:如果三角形作为掩膜,则将三角形送入掩膜缓冲单元;
步骤414:将数据送入纹理处理模块;
步骤416:将纹理处理模块和三角形着色模块输出的数据进行颜色混合;
步骤418:数据缓存;转步骤402;
步骤420:显示进行颜色混合后的数据。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换。