CN117555465A - 一种用于显示设备的图形显示方法及图形显示装置 - Google Patents
一种用于显示设备的图形显示方法及图形显示装置 Download PDFInfo
- Publication number
- CN117555465A CN117555465A CN202311541199.4A CN202311541199A CN117555465A CN 117555465 A CN117555465 A CN 117555465A CN 202311541199 A CN202311541199 A CN 202311541199A CN 117555465 A CN117555465 A CN 117555465A
- Authority
- CN
- China
- Prior art keywords
- graphic
- coordinate system
- scene
- coordinate
- display
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000006870 function Effects 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000013519 translation Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000000007 visual effect Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 5
- 230000010076 replication Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 108010014173 Factor X Proteins 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000002093 peripheral effect Effects 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种用于显示设备的图形显示方法及图形显示装置,属于嵌入式图形显示技术领域,包括,步骤S1,对所述显示设备建立视口坐标系,每1.0个单位代表一个像素;步骤S2,对图形元素建立设备场景坐标系,设定场景坐标系的单位长度,并确定设备场景坐标单位长度像素数;步骤S3,将视口坐标系的视口中心对应设备场景坐标系的原点;步骤S4,通过调整视口中心对应的设备场景坐标系坐标、及视口坐标系和设备场景坐标系的对应关系,进行图形处理。本发明的图形显示方法,在低成本硬件上,通过分别设置视口坐标系和设备场景坐标系,实现图像的缩放、平移、以及部分显示等功能,减少了需占用的内存容量,提高了在显示设备上的通用性。
Description
技术领域
本发明涉及嵌入式图形显示技术领域,且特别是有关于一种用于显示设备的图形显示方法及图形显示装置。
背景技术
现在工控市场上对于图形显示装置的需求越来越大,目前常见产品一般采用以下两种方案。
第一种方案是windows加Inter平台工控机方案。此方案是基于英特尔公司为工控机领域研发的处理器产品(例如J1900)和微软公司的Windows操作系统。此方案的优点是操作系统普及,操作简单,内存、硬盘空间较大,图形处理器(graphics processing unit,简称GPU)处理器图形数据处理能力强,常用于高端的图形显示装置,其中的图形处理器可以加速图形计算和显示,非常适合解决图形化显示的需求。但缺点是采用了开放式系统,容易感染病毒,安全性存在问题,敏感数据容易泄露,并且做产品时只能采购成品主板、内存条、硬盘等硬件,无法快速实现嵌入式产品常见的接口定制需求,导致整机产品价格非常高。
第二种方案是linux加arm平台工控机方案。此方案是基于多核心arm处理器和嵌入式linux操作系统,其中arm处理器需要带图形处理器。该方案整体上与windows加Inter平台工控机方案非常相似,但可以根据产品需求自行设计电路板,成本得到有效控制。不过与此同时,其缺点也非常明显,其一是多核arm处理器与外设大多采用高速信号进行通信,需要4层甚至更多层数的pcb设计,导致硬件设计难度大;其二是多核arm处理器内部基本不会集成sdram、ddr,而是通过外扩的方式接入大容量的ddr(多在256MB以上)以满足图形处理器、图形开源库等对内存容量的需求,导致成本增加;其三是多核arm处理器基本都需要外扩大容量存储(多在256MB以上),容量大,价格高,而绝大部分图形显示装置产品并不需要如此大容量的存储,导致成本浪费。
由此可见,目前常用的两种方案都存在设备成本高的问题,在大规模使用图形显示装置的当下,成本问题逐渐成为使用者需要考虑的最大问题。并且,在现有方案中实现设备高安全性、以及低存储容量这两个要求无法并存。
发明内容
本发明旨在提供一种用于显示设备的图形显示方法及图形显示装置,实现在低存储容量的硬件上执行高效的图形显示。
为达到上述目的,本发明技术方案是:
一种用于显示设备的图形显示方法,包括,步骤S1,对所述显示设备建立视口坐标系,每1.0个单位代表一个像素;步骤S2,对图形元素建立设备场景坐标系,设定所述场景坐标系的单位长度,并确定设备场景坐标单位长度像素数;步骤S3,将所述视口坐标系的视口中心对应所述设备场景坐标系的原点;步骤S4,通过调整所述视口中心对应的所述设备场景坐标系坐标、及所述视口坐标系和所述设备场景坐标系的对应关系,进行图形处理。
本发明的一优选实施例中,所述图形处理包括图形缩放,所述图形缩放通过调整所述视口坐标系和所述设备场景坐标系的对应关系实现,所述视口坐标系和所述设备场景坐标系的对应关系为,“视口坐标系长度=设备场景坐标长度×缩放系数×设备场景坐标单位长度像素数”。
本发明的另一优选实施例中,所述图形缩放采用缩放比例预定义表格法,将所述图形元素都按照缩放比例表格的预设比例进行分级制作,通过即时查表,根据缩放比例去查找对应的所述图形元素。
本发明的另一优选实施例中,所述图形处理包括图形平移,通过调整所述视口中心对应的所述设备场景坐标系坐标实现所述图形平移。
本发明的另一优选实施例中,所述图形处理包括图形检索,所述图形检索的方法为,判断所述视口坐标系对应的所述设备场景坐标系的设备场景矩形区域是否与目标的图形元素的设备场景矩形区域存在交集。
本发明的另一优选实施例中,判断所述视口坐标系对应的所述设备场景坐标系的设备场景矩形区域是否与目标的图形元素的设备场景矩形区域存在交集的步骤包括,步骤A1,获取视口坐标系左下角的视口坐标系坐标(0,显示设备像素高度-1);步骤A2,获取视口坐标系右上角的视口坐标系坐标(显示设备像素宽度度-1,0);步骤A3,将视口坐标系左下角的视口坐标系坐标转为设备场景矩形区域的左下角坐标;步骤A4,将视口坐标系右上角的视口坐标系坐标转为设备场景矩形区域的右上角坐标;步骤A5,计算该设备场景矩形区域宽度,计算公式为:设备场景矩形区域宽度=设备场景矩形区域的右上角坐标X坐标值-设备场景矩形区域的左下角坐标X坐标值;步骤A6,计算该设备场景矩形区域高度,计算公式为:设备场景矩形区域高度=设备场景矩形区域的右上角坐标Y坐标值-设备场景矩形区域的左下角坐标Y坐标值。
本发明的另一优选实施例中,所述图形处理包括刷新背景,所述刷新背景的步骤包括,步骤B1,清空背景显示缓冲区;步骤B2,遍历所有矢量元素;步骤B3,使用坐标映射功能,将当前矢量元素的场景坐标、场景线宽、场景长度等与坐标变换相关的参数转换为视口坐标系下的视口坐标、视口线宽、视口长度参数;步骤B4,执行指定形状的绘图函数,按照当前元素的视口坐标、视口线宽、视口长度以及颜色等参数进行矢量绘图;步骤B5,遍历结束。
本发明的另一优选实施例中,所述显示设备使用不带图形处理器的arm处理器,使用不带图形处理器的arm处理器支持的直接内存访问,将可见图形检索和图形数据复制进行并行化处理。
本发明的另一优选实施例中,所述可见图形检索的步骤包括,步骤C1,设置需要刷新标志为假;步骤C2,清空显示缓冲区;步骤C3,遍历所有图形元素;步骤C4,如果当前遍历中的图形元素最小限定矩形与查询矩形不存在重叠区,继续遍历;步骤C5,将需要刷新标志设置为真;步骤C6,如果所有图形都已遍历,则跳转至步骤C10;步骤C7,将该图形元素和计算得到的重叠区矩形信息放入待刷新图形元素先进先出队列;步骤C8,执行图形数据复制开始函数;步骤C9,遍历结束;步骤C10,检查需要刷新标志,如果为假则调转至结束;步骤C11,循环检查待刷新图形元素先进先出队列是否为空,如果不为空则调转至结束。
本发明的另一优选实施例中,所述图形数据复制的步骤包括,步骤D1,检查是否正在进行复制标志,如果为真则结束流程;步骤D2,从待刷新图形元素先进先出队列取出一个图形元素和场景重叠区矩形信息作为当前待复制数据,取出图形元素对应的图像数据作为当前图像缓冲区,设置待复制行序号为0;步骤D3,执行图像数据复制函数。
本发明的另一优选实施例中,图像数据复制函数使用直接内存访问,将待刷新图形元素先进先出队列的数据复制到显示缓冲区,步骤包括,步骤E1,设置正在进行复制标志为真;步骤E2:根据当前图像缓冲区地址、场景重叠区矩形信息和待复制行序号计算进行复制的图像缓冲区行开始地址和复制数据长度;步骤E3:根据场景重叠区矩形信息和待复制行序号计算显示缓冲区行开始地址;步骤E4:申请直接内存访问资源,执行直接内存访问复制。
本发明的另一优选实施例中,复制完成回调函数是在一次直接内存访问复制结束后由处理器的中断功能调用的函数,其执行步骤包括,步骤F1,将当前待复制数据的待复制行序号加1;步骤F2,检查待复制行序号,如果已经大于等于待复制数据的重叠区矩形高度,则跳转至步骤F4;步骤F3,执行图像数据复制函数,完成后结束流程;步骤F4,检查待刷新图形元素先进先出队列,如果为空则设置正在进行复制标志为假,完成后结束流程;步骤F5,从待刷新图形元素先进先出队列取出一个图形元素和重叠区矩形信息作为当前待复制数据,取出图形元素对应的图像数据作为当前图像缓冲区,设置待复制行序号为0;步骤F6,执行图像数据复制函数。
本发明的另一优选实施例中,所述图形元素包括,背景图形、设备图形、以及设备状态图形。
还涉及一种图形显示装置,使用上述所述的用于显示设备的图形显示方法。
有益效果,本发明的用于显示设备的图形显示方法,在低成本硬件上,通过分别设置视口坐标系和设备场景坐标系,通过调整视口中心对应的设备场景坐标系坐标、及视口坐标系和设备场景坐标系的对应关系,进行图形处理,实现图像的缩放、平移、以及部分显示等功能,并基于设备场景坐标系实现可见图形筛选,基于直接内存访问技术实现局部绘图,有效提高了低成本硬件上的显示效率,减少了所需占用的内存容量,同时上述图形显示方法可以用于各种图形显示设备,具有很强的通用性,可以在使用者挑选硬件设备时有效节省了硬件成本。
为让发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1为本发明的用于显示设备的图形显示方法的流程示意图。
图2为显示设备的视口坐标系示意图。
图3为带背景图形、设备图形的设备场景坐标系示意图。
图4为将场景坐标(2.0,2.0)显示在显示设备中心的示意图。
图5为本发明通过空间索引方法筛选可见图形的示意图。
具体实施方式
为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
低成本图形显示装置实现的一般功能为通过二维图形化的方式,将若干设备的运行场景、每个设备的安装位置、设备外形、当前状态展现在显示设备(例如:显示器)上。因此,图形显示装置一般需要显示的图形元素主要有设备图形、设备状态图形、以及背景图形。设备图形和设备状态图形通常使用图像文件(例如:png格式的图像文件)。背景图形代表了若干设备运行的场景,场景大小与实际工程项目相关,背景图形可以是矢量图,也可以是位图。每个设备的显示位置都是基于背景图形进行定位,设备当前状态的显示位置都是与其相关联的设备的相对坐标。
本发明实现了基于不带图形处理器(GPU)的低成本arm处理器,利用高效的算法降低处理器在图形显示方面的资源占用,低成本arm芯片的pcb设计比较简单,通常采用2层板的pcb设计即可。目前市场上低价位arm芯片往往内部会集成32MB、64MB、128MB的ddr,通过配合高效的图形算法能够对内存使用进行精确控制,可完全满足产品需求。部分低成本arm芯片带有显示引擎,能够大幅提高本发明所示方法的执行效率,不采用linux操作系统可以实现对存储器存储容量更加精确的控制,可以根据产品开发的最终结果来选择合适容量的存储器,优化产品成本。例如,全志F1C100s芯片等。
图1为本发明的用于显示设备的图形显示方法的流程示意图。如图1所示,本发明的图形显示方法包括以下步骤。
步骤S1,对所述显示设备建立视口坐标系,每1.0个单位代表一个像素。
步骤S2,对图形元素建立设备场景坐标系,设定所述场景坐标系的单位长度,并确定设备场景坐标单位长度像素数。
步骤S3,将所述视口坐标系的视口中心对应所述设备场景坐标系的原点。
步骤S4,通过调整所述视口中心对应的所述设备场景坐标系坐标、及所述视口坐标系和所述设备场景坐标系的对应关系,进行图形处理。
将显示设备的坐标系命名为视口坐标系,图2为显示设备的视口坐标系示意图。如图2所示,显示设备的具有像素宽度(width)和像素高度(height)两个值,分别代表了显示设备在宽度方向及高度方向上的像素数量。
定义显示设备使用的坐标系最左上角的点为视口坐标系原点,视口坐标系原点的坐标为(0,0)。x轴为宽度轴且x轴正向向右增长,y轴为高度轴且y轴正向向下增长,x轴、y轴的值都只能取整数值,每1.0个单位代表一个像素,即x轴坐标相差1的两个位置,意味着两个点在x轴上相差一个像素,y轴同理。因此可知,x轴的取值范围为0到显示设备的像素宽度减1(即width-1),y轴的取值范围为0到显示设备的像素高度-1(即height-1),视口中心坐标为(width/2,height/2)。
显示设备往往无法一次将所有的设备图形、设备状态图形、以及背景图形展现出来,而是需要在平移、缩放功能的支持下,将背景图形、设备图形、设备状态图形进行部分显示。
矢量格式的图像自带坐标系,例如autodesk公司的开源矢量文件格式dxf,其使用笛卡尔坐标系来描述整个矢量图像文件中的数据。而以设备图形代表的物理设备,其安装位置往往都是基于背景图形的坐标系进行定位。因此,需要首先建立一个以笛卡尔坐标系为基础的设备场景坐标系,将背景图形、设备图形、以及设备状态图形进行统一定位标识,设备场景坐标系中的坐标值都以浮点数表示。
图3为带背景图形、设备图形的设备场景坐标系示意图。在没有进行缩放和平移的初始状态下,视口坐标系的视口中心(即显示设备的中心)对应设备场景坐标系的(0.0,0.0),设备场景坐标系的单位长度与视口坐标系的单位长度的换算公式如下。
以常见的24寸1920×1080分辨率的显示器为例,该显示器中,假设单位长度为1厘米,设备场景坐标单位长度像素数等于36.4628,即设备场景坐标系中,长度1.0代表在24寸1920×1080分辨率的显示器上的36.4628个像素,测量长度约为1厘米。也可以选用其他规格的显示设备或选用另外的单位长度尺寸进行替代,本发明中仅以该假设取值进行示例计算。
视口坐标系长度=设备场景坐标长度×缩放系数×设备场景坐标单位长度像素数。
当设备场景坐标长度=1.0,缩放系数=1.0时,得到视口坐标系长度为:
1.0×1.0×36.4628=36.4628(即在24寸1920×1080分辨率的显示器表现为1厘米长度的线条)。
当设备场景坐标长度=1.0,缩放系数=0.5时,得到视口坐标系长度为:
1.0×0.5×36.4628=18.2314(即在24寸1920×1080分辨率的显示器表现为0.5厘米长度的线条,相比上一例中缩短了50%)。
设备场景坐标长度=视口坐标系长度÷(缩放系数×设备场景坐标单位长度像素数);
设备场景坐标高度=视口坐标系高度÷(缩放系数×设备场景坐标单位长度像素数)。
假设一个显示设备的像素宽度、像素高度分别是1024、600,缩放系数=1.0(即未进行缩放),则其能够显示的场景尺寸为:
设备场景坐标宽度=1024÷(1.0×36.4628)=28.0834;
设备场景坐标高度=600÷(1.0×36.4628)=16.4551。
此时显示设备上能够显示以(0.0,0.0)为中心,以28.0834为宽、16.4551为高的矩形范围的场景内容。如果需要将场景缩小20%显示,则缩放系数=0.8,此时显示设备上看到的场景尺寸为:
场景坐标宽度=1024÷(0.8×36.4628)=35.1043;
场景坐标高度=600÷(0.8×36.4628)=20.5689。
由此可见,通过调整缩放系数就能够调整显示设备上可见的场景范围大小,实现了缩放功能。
设备场景坐标系的坐标与视口坐标系的坐标换算公式为:
设备场景坐标系X轴偏移长度=设备场景坐标系X坐标值-与当前视口中心坐标对应的场景坐标X坐标值;
设备场景坐标系Y轴偏移长度=设备场景坐标系Y坐标值-与当前视口中心坐标对应的场景坐标Y坐标值;
视口坐标系X轴偏移长度=设备场景坐标系X轴偏移长度×缩放系数×设备场景坐标单位长度像素数;
视口坐标系Y轴偏移长度=设备场景坐标系Y轴偏移长度×缩放系数×设备场景坐标单位长度像素数;
视口坐标系中心X坐标值=显示设备像素宽度÷2;
视口坐标系中心Y坐标值=显示设备像素高度÷2;
视口坐标系X坐标值=视口坐标系X轴偏移长度+视口坐标系中心X坐标值;
视口坐标系Y坐标值=视口坐标系中心Y坐标值-视口坐标系Y轴偏移长度。
假设一个显示设备的像素宽度、像素高度分别是1024、600,缩放系数=1.0(即未进行缩放),视口中心坐标对应的设备场景中心坐标=(0.0,0.0),用通过上述坐标转换公式将一个设备场景坐标(1.0,1.0)转换为对应的视口坐标,结果为:
设备场景坐标系X轴偏移长度=1.0-0.0=1.0;
设备场景坐标系Y轴偏移长度=1.0-0.0=1.0;
视口坐标系X轴偏移长度=1.0×1.0×36.4628=36.4628;
视口坐标系Y轴偏移长度=1.0×1.0×36.4628=36.4628;
视口坐标系中心X坐标值=1024÷2=512;
视口坐标系中心Y坐标值=600÷2=300;
视口坐标系X坐标值=36.4628+512≈548(视口坐标系需要取整,只要统一向上取整或向下取整即可,本示例选择向下取整);
视口坐标系Y坐标值=300-36.4628≈263。
最终得到与设备场景坐标(1.0,1.0)相对应的视口坐标(548,263),将视口坐标转换为设备场景坐标的过程就是上述过程的逆过程。
通过改变当前视口中心坐标对应的设备场景坐标,即可实现平移功能。当前视口中心坐标对应的设备场景坐标的计算公式为:
当前视口中心坐标对应的场景坐标X坐标值=设备场景中心坐标X坐标值+场景X坐标偏移量;
当前视口中心坐标对应的场景坐标Y坐标值=设备场景中心坐标Y坐标值+场景Y坐标偏移量。
例如当需要将设备场景坐标(2.0,2.0)作为当前视口中心,即是设定设备场景X坐标偏移量=2.0,设备场景Y坐标偏移量=2.0,图4为将场景坐标(2.0,2.0)显示在显示设备中心的示意图。根据上述坐标转换过程进行计算:
当前视口中心坐标对应的场景坐标X坐标值=0.0+2.0=2.0;
当前视口中心坐标对应的场景坐标Y坐标值=0.0+2.0=2.0;
场景坐标系X轴偏移长度=2.0-2.0=0;
场景坐标系Y轴偏移长度=2.0-2.0=0;
视口坐标系X轴偏移长度=0×1.0×36.4628=0;
视口坐标系Y轴偏移长度=0×1.0×36.4628=0;
视口坐标系中心X坐标值=1024÷2=512;
视口坐标系中心Y坐标值=600÷2=300;
视口坐标系X坐标值=0+512=512;
视口坐标系Y坐标值=0+300=300。
得到的视口坐标(512,300)与视口坐标新中心坐标(512,300)完全相同,说明通过设置设备场景X坐标偏移量、设备场景Y坐标偏移量能够实现将任意的设备场景坐标设定为视口中心,从而实现平移操作。
在设备场景中,使用设备场景矩形区域来描述一个图形的大小,每个设备场景中的元素都会有一个对应的设备场景矩形区域来描述该元素的大小。设备场景矩形区域包括左下角设备场景坐标、右上角设备场景坐标、设备场景矩形区域宽度、以及设备场景矩形区域高度这4个参数。
判断一个基于设备场景坐标定位的图形元素(包括设备图形、设备状态图形、背景图形中的矢量元素)是否在显示设备上可见的方法是计算视口坐标系对应的设备场景矩形区域与目标图形的设备场景矩形区域是否存在交集,这个交集指向的设备场景矩形区域称为两个设备场景矩形区域的重叠区,如果不存在交集则代表目标图形在显示设备上不可见。
计算视口坐标系对应的设备场景矩形区域步骤如下:
步骤A1:获取视口坐标系左下角的视口坐标系坐标(0,显示设备像素高度-1)。
步骤A2:获取视口坐标系右上角的视口坐标系坐标(显示设备像素宽度度-1,0)。
步骤A3:将视口坐标系左下角的视口坐标系坐标转为设备场景矩形区域的左下角坐标。
步骤A4:将视口坐标系右上角的视口坐标系坐标转为设备场景矩形区域的右上角坐标。
步骤A5:计算该设备场景矩形区域宽度,计算公式为:设备场景矩形区域宽度=设备场景矩形区域的右上角坐标X坐标值-设备场景矩形区域的左下角坐标X坐标值。
步骤A6:计算该设备场景矩形区域高度,计算公式为:设备场景矩形区域高度=设备场景矩形区域的右上角坐标Y坐标值-设备场景矩形区域的左下角坐标Y坐标值。
计算A、B两个设备场景矩形区域的重叠区公式为:
重叠区左下角X坐标值=min(A矩形区域左下角X坐标值,B矩形区域左下角X坐标值);
重叠区左下角Y坐标值=min(A矩形区域左下角Y坐标值,B矩形区域左下角Y坐标值);
重叠区右上角X坐标值=max(A矩形区域右上角X坐标值,B矩形区域右上角X坐标值);
重叠区右上角Y坐标值=max(A矩形区域右上角Y坐标值,B矩形区域右上角Y坐标值);
重叠区宽度=重叠区右上角X坐标值-重叠区左下角X坐标值;
重叠区高度=重叠区右上角Y坐标值-重叠区左下角Y坐标值。
当重叠区宽度和重叠区高度都大于0时,代表A、B两个设备场景矩形区域存在重叠区。
当需要在显示设备上显示设备图形、设备状态图形、背景图形时,需要分成两组进行独立处理。将设备、设备状态作为一组进行检索、绘制,将背景作为另一组进行检索、绘制。
矢量格式的背景图形由一系列的矢量元素构成,每个矢量元素都包含场景坐标、场景线宽、场景长度、形状、颜色、方向等信息,在读取矢量格式的背景图形文件时对所有矢量元素建立空间索引。在显示设备需要刷新背景时,通过空间索引功能将当前视口范围内需要显示的所有可见矢量元素检索出来后,需要将这些矢量元素按照其在矢量文件中的先后顺序在背景显示缓冲区进行绘制,基本流程如下。
步骤B1:清空背景显示缓冲区。
步骤B2:遍历所有矢量元素。
步骤B3:使用坐标映射功能,将当前矢量元素的场景坐标、场景线宽、场景长度等与坐标变换相关的参数转换为视口坐标系下的视口坐标、视口线宽、视口长度参数。
步骤B4:执行指定形状的绘图函数,按照当前元素的视口坐标、视口线宽、视口长度以及颜色等参数进行矢量绘图。
步骤B5:遍历结束。
快速查找当前视口范围内需要显示的设备图形、设备状态图形的方法是将设备场景中的所有设备图形、设备状态图形用二维空间索引算法进行排序,然后将视口对应的场景矩形作为空间检索条件筛选出与视口对应的场景矩形存在重叠区的设备图形、设备状态图形。图5为本发明通过空间索引方法筛选可见图形的示意图。
在检索到所有可见图形后,需要将每个可见图形的图像数据复制到显示设备的显示缓冲区进行显示。使用低成本arm处理器支持的直接内存访问(DMA)技术能够将可见图形检索逻辑和图像数据的复制操作进行并行化处理。可见图形检索的基本流程如下:
步骤C1:设置需要刷新标志为假。
步骤C2:清空显示缓冲区。
步骤C3:遍历所有图形元素。
步骤C4:如果当前遍历中的图形元素最小限定矩形与查询矩形不存在重叠区,继续遍历。
步骤C5:将需要刷新标志设置为真。
步骤C6:如果所有图形都已遍历,则跳转至步骤C10。
步骤C7:将该图形元素和计算得到的重叠区矩形信息放入待刷新图形元素先进先出队列。
步骤C8:执行图形数据复制开始函数。
步骤C9:遍历结束。
步骤C10:检查需要刷新标志,如果为假则调转至结束。
步骤C11:循环检查待刷新图形元素先进先出队列是否为空,如果不为空则调转至结束。
图形数据复制开始函数,其流程如下:
步骤D1:检查是否正在进行复制标志,如果为真则结束流程。
步骤D2:从待刷新图形元素先进先出队列取出一个图形元素和场景重叠区矩形信息作为当前待复制数据,取出图形元素对应的图像数据作为当前图像缓冲区,设置待复制行序号为0。
步骤D3:执行图像数据复制函数。
图像数据复制函数使用直接内存访问(DMA)技术将待刷新图形元素先进先出队列的数据复制到显示缓冲区,其执行流程如下:
步骤E1:设置正在进行复制标志为真。
步骤E2:根据当前图像缓冲区地址、场景重叠区矩形信息和待复制行序号计算进行复制的图像缓冲区行开始地址和复制数据长度。计算公式如下:
单个像素字节数=4;
每行图像数据字节数=图像缓冲区像素宽度×单个像素字节数;
图像重叠区矩形信息=场景矩形信息到图像矩形信息转换函数(图形元素场景矩形信息,场景重叠区矩形信息);
图像重叠区矩形X轴偏移字节数=图像重叠区矩形X轴坐标×单个像素字节数;
图像缓冲区行开始地址=图像缓冲区地址+图像重叠区矩形X轴偏移字节数+待复制行序号×每行图像数据字节数;
图像重叠区矩形宽度字节数=重叠区矩形宽度×单个像素字节数。
步骤E3:根据场景重叠区矩形信息和待复制行序号计算显示缓冲区行开始地址。计算公式如下:
显示设备重叠区矩形信息=场景矩形信息到图像矩形信息转换函数(显示设备场景信息,场景重叠区矩形信息);
显示设备重叠区矩形X轴偏移字节数=显示设备重叠区矩形X轴坐标×单个像素字节数;
显示缓冲区行开始地址=显示缓冲区地址+显示设备重叠区矩形X轴偏移字节数+待复制行序号×每行图像数据字节数。
步骤E4:申请直接内存访问资源,执行直接内存访问复制(图像缓冲区行开始地址,图像重叠区矩形宽度字节数,显示缓冲区行开始地址,复制结束回调函数地址)。
直接内存访问(DMA)操作支持将一段连续的内存数据从源地址复制到目标地址,整个复制过程并不需要处理器参与,复制完成后会通过处理器的中断系统调用回调函数。整个操作接口需要源内存开始地址、待复制的数据长度字节数、目标内存开始地址、以及复制完成回调函数地址这4个参数。
复制完成回调函数是在一次直接内存访问复制结束后由处理器的中断功能调用的函数,其执行流程为:
步骤F1:将当前待复制数据的待复制行序号加1。
步骤F2:检查待复制行序号,如果已经大于等于待复制数据的重叠区矩形高度,则跳转至步骤F4。
步骤F3:执行图像数据复制函数,完成后结束流程。
步骤F4:检查待刷新图形元素先进先出队列,如果为空则设置正在进行复制标志为假,完成后结束流程。
步骤F5:从待刷新图形元素先进先出队列取出一个图形元素和重叠区矩形信息作为当前待复制数据,取出图形元素对应的图像数据作为当前图像缓冲区,设置待复制行序号为0。
步骤F6:执行图像数据复制函数。
为了能够加快低成本arm处理器在执行缩放功能时的计算能力,这里采用缩放比例预定义表格法来约定缩放操作每一步的步进量。假设一个图形的原始显示比例为100%,现在需要按5%的步进量实现9个级别的缩放功能,其缩放比例表格为80%、85%、90%、95%、100%、105%、110%、115%、以及120%。所有设备及设备状态的图形也都按照缩放比例表格进行分级制作,每个设备及设备状态图形的内存占用量可以准确测量,且执行缩放时不需要对每个设备及设备状态的图形进行大量的缩放计算,而是通过即时查表的方法,根据目前的缩放比例去查找对应的设备和设备状态图形。具体分级的步进量和级别数量可以根据产品的功能需求、成本约束来确定。
内存占用量计算(假设每个缩放级别下的每个设备图形尺寸相同,每个缩放级别下的每个设备状态的图形尺寸相同)公式如下:
单个设备图形内存占用量=设备图形宽度×设备图形高度×像素字节数;
单个设备状态图形内存占用量=设备状态图形宽度×设备状态图形高度×像素字节数;
单个缩放级别设备图形内存占用量=该缩放级别设备种类数量×该缩放级别单个设备图形内存占用量;
单个缩放级别设备状态图形内存占用量=该缩放级别设备种类数量×该缩放级别单个设备图形内存占用量;
n个缩放级别设备图形内存占用量=设备种类数量×(缩放级别1单个设备图形内存占用量+缩放级别2单个设备图形内存占用量+...+缩放级别n单个设备图形内存占用量);
n个缩放级别设备状态图形内存占用量=设备种类数量×(缩放级别1单个设备状态图形内存占用量+缩放级别2单个设备状态图形内存占用量+...+缩放级别n单个设备状态图形内存占用量);
n个缩放级别设备及状态图形内存占用总量=n个缩放级别设备图形内存占用量×n个缩放级别设备状态图形内存占用量;
在不使用缩放比例预定义表格法时,对一个设备图形进行缩放显示的过程为:
步骤G1:计算目标缩放比例时指定设备图形的宽度和高度.
步骤G2:根据宽度和高度申请绘图缓冲区。
步骤G3:在绘图缓冲区中文成图形的缩放绘制。
步骤G4:将绘图缓冲区发送到显示设备进行显示。
而采用缩放比例预定义表格法后,对一个设备图形进行缩放显示的过程为:
步骤H1:查找目标缩放比例对应的设备图形。
步骤H2:将设备图形发送到显示设备进行显示。
对比上述两个过程,采用缩放比例预定义表格法后,实现缩放显示的过程得到大幅度简化,整个缩放过程只剩下复制图形数据的过程,完全摒弃严重降低低成本arm处理器性能的图形缩放处理过程。再配合直接内存访问(DMA)技术将图形数据复制的过程与其他图形的处理过程实现并行化处理,执行性能会得到极大提高。
综上所述,本发明的用于显示设备的图形显示方法,在低成本硬件上,通过分别设置视口坐标系和设备场景坐标系,通过调整视口中心对应的设备场景坐标系坐标、及视口坐标系和设备场景坐标系的对应关系,进行图形处理,实现图像的缩放、平移、以及部分显示等功能,并基于设备场景坐标系实现可见图形筛选,基于直接内存访问技术实现局部绘图,有效提高了低成本硬件上的显示效率,减少了所需占用的内存容量,同时上述图形显示方法可以用于各种图形显示设备,具有很强的通用性,可以在使用者挑选硬件设备时有效节省硬件成本。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (14)
1.一种用于显示设备的图形显示方法,其特征在于,包括,
步骤S1,对所述显示设备建立视口坐标系,每1.0个单位代表一个像素;
步骤S2,对图形元素建立设备场景坐标系,设定所述场景坐标系的单位长度,并确定设备场景坐标单位长度像素数;
步骤S3,将所述视口坐标系的视口中心对应所述设备场景坐标系的原点;
步骤S4,通过调整所述视口中心对应的所述设备场景坐标系坐标、及所述视口坐标系和所述设备场景坐标系的对应关系,进行图形处理。
2.如权利要求1所述一种用于显示设备的图形显示方法,其特征在于,所述图形处理包括图形缩放,所述图形缩放通过调整所述视口坐标系和所述设备场景坐标系的对应关系实现,所述视口坐标系和所述设备场景坐标系的对应关系为,“视口坐标系长度=设备场景坐标长度×缩放系数×设备场景坐标单位长度像素数”。
3.如权利要求2所述一种用于显示设备的图形显示方法,其特征在于,所述图形缩放采用缩放比例预定义表格法,将所述图形元素都按照缩放比例表格的预设比例进行分级制作,通过即时查表,根据缩放比例去查找对应的所述图形元素。
4.如权利要求1所述一种用于显示设备的图形显示方法,其特征在于,所述图形处理包括图形平移,通过调整所述视口中心对应的所述设备场景坐标系坐标实现所述图形平移。
5.如权利要求1所述一种用于显示设备的图形显示方法,其特征在于,所述图形处理包括图形检索,所述图形检索的方法为,判断所述视口坐标系对应的所述设备场景坐标系的设备场景矩形区域是否与目标的图形元素的设备场景矩形区域存在交集。
6.如权利要求5所述一种用于显示设备的图形显示方法,其特征在于,判断所述视口坐标系对应的所述设备场景坐标系的设备场景矩形区域是否与目标的图形元素的设备场景矩形区域存在交集的步骤包括,
步骤A1,获取视口坐标系左下角的视口坐标系坐标(0,显示设备像素高度-1);
步骤A2,获取视口坐标系右上角的视口坐标系坐标(显示设备像素宽度度-1,0);
步骤A3,将视口坐标系左下角的视口坐标系坐标转为设备场景矩形区域的左下角坐标;
步骤A4,将视口坐标系右上角的视口坐标系坐标转为设备场景矩形区域的右上角坐标;
步骤A5,计算该设备场景矩形区域宽度,计算公式为:设备场景矩形区域宽度=设备场景矩形区域的右上角坐标X坐标值-设备场景矩形区域的左下角坐标X坐标值;
步骤A6,计算该设备场景矩形区域高度,计算公式为:设备场景矩形区域高度=设备场景矩形区域的右上角坐标Y坐标值-设备场景矩形区域的左下角坐标Y坐标值。
7.如权利要求1所述一种用于显示设备的图形显示方法,其特征在于,所述图形处理包括刷新背景,所述刷新背景的步骤包括,
步骤B1,清空背景显示缓冲区;
步骤B2,遍历所有矢量元素;
步骤B3,使用坐标映射功能,将当前矢量元素的场景坐标、场景线宽、场景长度等与坐标变换相关的参数转换为视口坐标系下的视口坐标、视口线宽、视口长度参数;
步骤B4,执行指定形状的绘图函数,按照当前元素的视口坐标、视口线宽、视口长度以及颜色等参数进行矢量绘图;
步骤B5,遍历结束。
8.如权利要求1所述一种用于显示设备的图形显示方法,其特征在于,所述显示设备使用不带图形处理器的arm处理器,使用不带图形处理器的arm处理器支持的直接内存访问,将可见图形检索和图形数据复制进行并行化处理。
9.如权利要求8所述一种用于显示设备的图形显示方法,其特征在于,所述可见图形检索的步骤包括,
步骤C1,设置需要刷新标志为假;
步骤C2,清空显示缓冲区;
步骤C3,遍历所有图形元素;
步骤C4,如果当前遍历中的图形元素最小限定矩形与查询矩形不存在重叠区,继续遍历;
步骤C5,将需要刷新标志设置为真;
步骤C6,如果所有图形都已遍历,则跳转至步骤C10;
步骤C7,将该图形元素和计算得到的重叠区矩形信息放入待刷新图形元素先进先出队列;
步骤C8,执行图形数据复制开始函数;
步骤C9,遍历结束;
步骤C10,检查需要刷新标志,如果为假则调转至结束;
步骤C11,循环检查待刷新图形元素先进先出队列是否为空,如果不为空则调转至结束。
10.如权利要求8所述一种用于显示设备的图形显示方法,其特征在于,所述图形数据复制的步骤包括,
步骤D1,检查是否正在进行复制标志,如果为真则结束流程;
步骤D2,从待刷新图形元素先进先出队列取出一个图形元素和场景重叠区矩形信息作为当前待复制数据,取出图形元素对应的图像数据作为当前图像缓冲区,设置待复制行序号为0;
步骤D3,执行图像数据复制函数。
11.如权利要求8所述一种用于显示设备的图形显示方法,其特征在于,图像数据复制函数使用直接内存访问,将待刷新图形元素先进先出队列的数据复制到显示缓冲区,步骤包括,
步骤E1,设置正在进行复制标志为真;
步骤E2:根据当前图像缓冲区地址、场景重叠区矩形信息和待复制行序号计算进行复制的图像缓冲区行开始地址和复制数据长度;
步骤E3:根据场景重叠区矩形信息和待复制行序号计算显示缓冲区行开始地址;
步骤E4:申请直接内存访问资源,执行直接内存访问复制。
12.如权利要求8所述一种用于显示设备的图形显示方法,其特征在于,复制完成回调函数是在一次直接内存访问复制结束后由处理器的中断功能调用的函数,其执行步骤包括,
步骤F1,将当前待复制数据的待复制行序号加1;
步骤F2,检查待复制行序号,如果已经大于等于待复制数据的重叠区矩形高度,则跳转至步骤F4;
步骤F3,执行图像数据复制函数,完成后结束流程;
步骤F4,检查待刷新图形元素先进先出队列,如果为空则设置正在进行复制标志为假,完成后结束流程;
步骤F5,从待刷新图形元素先进先出队列取出一个图形元素和重叠区矩形信息作为当前待复制数据,取出图形元素对应的图像数据作为当前图像缓冲区,设置待复制行序号为0;
步骤F6,执行图像数据复制函数。
13.如权利要求1所述一种用于显示设备的图形显示方法,其特征在于,所述图形元素包括,背景图形、设备图形、以及设备状态图形。
14.一种图形显示装置,其特征在于,使用如权利要求1-13中任一项所述的用于显示设备的图形显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541199.4A CN117555465A (zh) | 2023-11-17 | 2023-11-17 | 一种用于显示设备的图形显示方法及图形显示装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541199.4A CN117555465A (zh) | 2023-11-17 | 2023-11-17 | 一种用于显示设备的图形显示方法及图形显示装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117555465A true CN117555465A (zh) | 2024-02-13 |
Family
ID=89822833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311541199.4A Pending CN117555465A (zh) | 2023-11-17 | 2023-11-17 | 一种用于显示设备的图形显示方法及图形显示装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555465A (zh) |
-
2023
- 2023-11-17 CN CN202311541199.4A patent/CN117555465A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW591547B (en) | Method and apparatus for the implementation of full-scene anti-aliasing supersampling | |
US10025879B2 (en) | Tree data structures based on a plurality of local coordinate systems | |
CN109603155B (zh) | 合并贴图的获取方法、装置、存储介质、处理器及终端 | |
US6184908B1 (en) | Method and apparatus for co-processing video graphics data | |
KR100575143B1 (ko) | 지리적 프리미티브를 포함하는 장면을 묘사하는 장치,메모리 자동 관리 방법 및 머신 판독가능 매체 | |
JP3030206B2 (ja) | グラフィック多角形をクリップ領域にクリップする方法および装置 | |
JPH03139777A (ja) | グラフイツク表示システム及び方法 | |
CN115100022A (zh) | 图形处理方法及系统 | |
KR100550240B1 (ko) | 타일형 그래픽스 아키텍쳐 | |
CN113822975B (zh) | 用于对图像进行有效采样的技术 | |
EP0324307B1 (en) | Method for enhancing three-dimensional interference checking | |
CN117555465A (zh) | 一种用于显示设备的图形显示方法及图形显示装置 | |
CN117726496A (zh) | 使用光线剪裁减少假阳性光线遍历 | |
CN117726732A (zh) | 减少包围体层次结构中的假阳性光线遍历 | |
US7050053B2 (en) | Geometric folding for cone-tree data compression | |
JPH08305625A (ja) | 演算処理機能付き半導体メモリ及びそれを用いた処理装置 | |
CN113658033B (zh) | 一种计算给定区域内部点集的gpu方法 | |
CN113051491B (zh) | 地图数据处理的方法、设备、存储介质及程序产品 | |
US11099685B2 (en) | Selective touch sensor activation for power savings | |
WO2024093610A1 (zh) | 阴影渲染方法、装置、电子设备及可读存储介质 | |
WO2023241210A1 (zh) | 虚拟场景的渲染方法、装置、设备及存储介质 | |
US20240203030A1 (en) | 3d model rendering method and apparatus, electronic device, and storage medium | |
JPH06236444A (ja) | 画像データ処理方法及び装置 | |
US10504279B2 (en) | Visibility function of a three-dimensional scene | |
WO2023202365A1 (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 |