2D桌面图像预取分块融合方法、装置及设备与流程

文档序号:33036753发布日期:2023-01-24 20:12阅读:37来源:国知局
2D桌面图像预取分块融合方法、装置及设备与流程
2d桌面图像预取分块融合方法、装置及设备
技术领域
1.本技术涉及计算机技术领域,具体地,涉及一种2d桌面图像预取分块融合方法、装置及计算机设备。


背景技术:

2.操作系统按应用领域分为桌面操作系统,服务器操作系统,嵌入式操作系统。桌面操作系统应用最为普遍,桌面操作系统基本功能是实现人机交互,人机交互过程中追求流畅的桌面窗口显示效果从而带来友好的体验。
3.实现2d桌面通常可由软件直接来实现,2d桌面性能极大的依赖cpu性能,为了摆脱对cpu的完全依赖,通过gpgpu实现硬件加速。然而在某些应用情景下,gpgpu绘图引擎被复杂的3d绘图占据时,2d桌面使用时会造成卡顿,而独立2d桌面图像分块融合操作实现2d桌面的独立加速,不占用3d绘图引擎资源。
4.现有技术中存在通过对多通道画面进行色差调整、几何矫正和画面融合等过程,来实现多通道投射画面的处理的技术方案,但该方案处理的方式比较单一,并没有说明多格式画面进行分割处理;也没有对数据进行预取处理,达到“边处理边输出”的效果。


技术实现要素:

5.为了解决上述技术缺陷之一,本技术实施例中提供了一种2d桌面图像预取分块融合方法、装置及计算机设备。
6.根据本技术实施例的第一个方面,提供了一种2d桌面图像预取分块融合方法,该方法包括:
7.在gpgpu中获取融合命令,并将融合命令发送至每个融合部件;
8.在每个融合部件中分别从帧存中读取源数据,并将读取到的源数据写入cache;
9.在每个融合部件中分别读取cache中的数据,进行字节对齐后送入融合部件单元进行数据处理;
10.在每个融合部件单元中分别完成数据处理后,写入cache,并进一步进行burst写回帧存,以完成融合。
11.在本技术一个可选的实施例中,该方法中在每个融合部件中分别读取cache中的数据,进行字节对齐后送入融合部件单元进行数据处理的步骤进一步包括:
12.在每个融合部件中分别读取cache中的数据,进行像素对齐后送入融合部件单元,并进行色域转换。
13.在本技术一个可选的实施例中,该方法中在每个融合部件单元中分别完成数据处理后,写入cache,并进一步进行burst写回帧存,以完成融合的步骤进一步包括:
14.在每个融合部件单元中分别完成色域转换后,将像素写入cache,并将分块处理的图案按照分块压缩的方式传输,进一步进行burst写回帧存,以完成融合。
15.在本技术一个可选的实施例中,该方法中在每个融合部件单元中分别完成色域转
换后,将像素写入cache,并将分块处理的图案按照分块压缩的方式传输,进一步进行burst写回帧存,以完成融合的步骤进一步包括:
16.在每个融合部件单元中分别完成色域转换后,依据目标对象起始地址进行对齐,再将像素写入cache,并将分块处理的图案按照分块压缩的方式传输,进一步进行burst写回帧存,以完成融合。
17.在本技术一个可选的实施例中,该方法中分块压缩包括:
18.通过无损压缩、有损压缩、旁路压缩中的任意一种方式进行压缩。
19.在本技术一个可选的实施例中,该方法中在每个融合部件中分别从帧存中读取源数据,并将读取到的源数据写入cache的步骤进一步包括:
20.通过tile格式方式、线性像素读取方式中的任意一种方式进行源数据的读取。
21.在本技术一个可选的实施例中,该方法中在每个融合部件中分别从帧存中读取源数据,并将读取到的源数据写入cache的步骤进一步包括:
22.通过可配置块特定大小的读操作方式进行源数据的读取。
23.根据本技术实施例的第二个方面,提供了一种2d桌面图像预取分块融合装置,该装置包括命令分发模块、cache写入模块、字节对齐模块和帧存写回模块;其中,
24.命令分发模块,用于在gpgpu中获取融合命令,并将融合命令发送至每个融合部件;
25.cache写入模块,用于在每个融合部件中分别从帧存中读取源数据,并将读取到的源数据写入cache;
26.字节对齐模块,用于在每个融合部件中分别读取cache中的数据,进行字节对齐后送入融合部件单元进行数据处理;
27.帧存写回模块,用于在每个融合部件单元中分别完成数据处理后,写入cache,并进一步进行burst写回帧存,以完成融合。
28.根据本技术实施例的第三个方面,提供了一种计算机设备,包括:存储器;处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如本技术实施例的第一个方面任一项方法的步骤。
29.根据本技术实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如本技术实施例的第一个方面任一项方法的步骤。
30.采用本技术实施例中提供的2d桌面图像预取分块融合方法,具有以下有益效果:
31.1、通过流水方式实现以及高效率burst方式写帧存,每个部件的burst操作可达到128x256bit,相比1024x768显示分辨率,一次可连续操作一行或者tile数据块大小像素;
32.2、本技术支持的图案融合操作占用资源少,高效率电路结构;
33.3、本技术采用独立的2d融合实现,命令接受方式包括三种,配置总线写命令cache,或从内存、帧存中主动读取命令的ringbuffer模式,采用标准的内部存储总线接口访问帧存,可重用性强,能在gpgpu高性能通用型图形芯片设计重复使用。
34.综上所述,基于本技术的方法,可以完成相对简单、硬件资源占比很小、性能极高的分块预取图像融合操作的实现,处理后的图案按照分块压缩的方式输出,达到“边处理边输出”效果,为2d桌面实现加速,不受限于复杂的3d应用场景,达到流畅的2d桌面显示效果。
附图说明
35.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
36.图1为本技术实施例提供的2d桌面图像预取分块融合方法的流程图;
37.图2为本技术实施例提供的融合部件架构示意图;
38.图3为本技术实施例提供的融合自适应分块策略示意图;
39.图4为本技术实施例提供的预取机制示意图;
40.图5为本技术实施例提供的2d桌面图像预取分块融合装置的结构图;
41.图6为本技术一个实施例提供的计算机设备结构示意图。
具体实施方式
42.为了使本技术实施例中的技术方案及优点更加清楚明白,以下结合附图对本技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本技术的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
43.通用图形处理器(general-purpose computing on graphics processing units,简称gpgpu),是一种利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务。这些通用计算常常与图形处理没有任何关系。由于现代图形处理器强大的并行处理能力和可编程流水线,令流处理器可以处理非图形数据。特别在面对单指令流多数据流(simd),且数据处理的运算量远大于数据调度和传输的需要时,通用图形处理器在性能上大大超越了传统的中央处理器应用程序。
44.实现2d桌面通常可由软件直接来实现,2d桌面性能极大的依赖cpu性能,为了摆脱对cpu的完全依赖,通过gpgpu实现硬件加速。在实现本技术的过程中,发明人发现,在某些应用情景下,gpgpu绘图引擎被复杂的3d绘图占据时,2d桌面使用时会造成卡顿,而独立2d桌面图像分块融合操作实现2d桌面的独立加速,不占用3d绘图引擎资源。
45.针对上述问题,本技术实施例中提供一种相对简单、硬件资源占比很小、性能极高的分块预取图像融合操作的实现方式,处理后的图案按照分块压缩的方式输出,达到“边处理边输出”效果,为2d桌面实现加速,不受限于复杂的3d应用场景,达到流畅的2d桌面显示效果。
46.本技术通过图像分块预取融合操作完成了源对象和目标对象像素合成操作,通过预取机制操作多个对象边融合边输出的方式,加快融合操作速率;通过特定的分块大小处理方式完成图像分块处理,实现图像融合。请参见如图1所示的步骤:
47.s1:在gpgpu中获取融合命令,并将融合命令发送至每个融合部件。在具体实施中,可通过派发部件分别派发到gpgpu分块融合引擎的若干个融合部件,可选的,最大为32个融合部件。
48.s2:在每个融合部件中分别从帧存中读取源数据,并将读取到的源数据写入cache。
49.在具体实施中,在读取源数据时,可通过tile格式方式、线性像素读取方式或可配置块特定大小的读操作方式中的任意一种方式进行源数据的读取。
50.基于步骤s1和s2,本技术实施例中首先获取命令,命令解析后派发到融合部件,融合部件从内存或者帧存读取源数据读到预存数据cache,可支持tile格式、线性像素读取方式或可配置块特定大小的读操作方式。
51.s3:在每个融合部件中分别读取cache中的数据,进行字节对齐后送入融合部件单元进行数据处理。
52.在具体实施中,在每个融合部件中分别读取cache中的数据,进行像素对齐后送入融合部件单元,并进行色域转换。
53.s4:在每个融合部件单元中分别完成数据处理后,写入cache,并进一步进行burst写回帧存,以完成融合。
54.在具体实施中,在每个融合部件单元中分别完成色域转换后,将像素写入cache,并将分块处理的图案按照分块压缩的方式传输,进一步进行burst写回帧存,以完成融合。
55.具体的,在每个融合部件单元中分别完成色域转换后,依据目标对象起始地址进行对齐,再将像素写入cache,并将分块处理的图案按照分块压缩的方式传输,进一步进行burst写回帧存,以完成融合。、
56.具体的,本技术实施例中的分块压缩可以通过无损压缩、有损压缩、旁路压缩中的任意一种方式进行。进一步的,配置压缩块可根据实际需要选择32、64、128、256、512等32byte倍数规格。进一步的,可以按照不同格式方式进行数据压缩,在具体实施中,包括基于颜色格式和数据格式两种不同类型的格式。具体的,颜色格式包括rgb格式、yuv格式,数据格式包括tile格式。
57.综上所述,本技术从cache读取数据进行字节对齐,再送入融合单元,再将像素写入cache,将分块处理的图案按照分块压缩的方式传输,再通过控制进行burst写回帧存。图像分块预取由控制器直接产生写帧存操作,同时产生相应的burst操作。整个图像融合操作过程高效,极大的加速了复杂3d应用场景下2d桌面流畅度。
58.此外,本技术实施例的图像预取方式可以采用多路交替预取(1、2、4、8、16、32路),且基于上述技术方案,每个融合部件128bit全流水操作,图像融合依据源和目标其实地址采用流水方式对其进行融合操作,实现了单周期128个像素(rgba,32bit)的融合操作。在具体实施中,融合技术仅需按照目标起始地址进行流水操作。融合流水操作包括从cache读取像素,两级缓存对齐,两级流水执行融合操作,流水写回。融合支持扫描线像素存储方式融合以及像素块方式存储的融合,满足了不同操作对像素存储方式的要求。
59.基于上述技术方案,可以实现快速融合方式应用在2d桌面的多图像融合、透明度调整、全屏或局部矩形块的融合。且图像采用压缩方式传输,减少传输带宽,加速gpu图案融合处理的速率,达到流畅的2d桌面显示效果。
60.请参见图2-图4,本技术实施例以图2-图4所示出的内容为例,对上述步骤s1-s4进行进一步的说明:
61.如图2所示,gpgpu中获取命令,解析为融合命令后通过派发部件分别派发到分块融合引擎的八个融合部件,发送到每个融合部件后,启动融合,并在noc和gddr的支持下完成融合。
62.每个融合部件分别需要从帧存读取源数据写入cache。具体的,如图3所示,本技术实施例通过tile格式方式、线性像素读取方式(线性格式)对图像分块,进行源数据的读取。
63.读取cache的数据,进行目前像素对齐再送入融合部件单元,再进行相应的色域转换。各流水转换后依据目标对象起始地址进行对齐,再将像素写入cache,cache非空状态可直接启动写帧存burst操作,此处数据经过压缩传输,如burst操作若存储带宽足够的情况下,也可以达到全流水操作性能。
64.图像分块预取基于如图4所示的预取机制直接产生写帧存操作,同时产生相应的burst操作,以及字节掩码控制写帧存。每周期可以输出128个像素。整个融合过程简单,高效,极大的加速了复杂3d应用场景下2d桌面流畅度。
65.应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
66.请参见图5,本技术一个实施例提供了2d桌面图像预取分块融合装置,包括命令分发模块10、cache写入模块20、字节对齐模块30和帧存写回模块40;其中,
67.命令分发模块10,用于在gpgpu中获取融合命令,并将融合命令发送至每个融合部件;
68.cache写入模块20,用于在每个融合部件中分别从帧存中读取源数据,并将读取到的源数据写入cache。
69.基于命令分发模块10、cache写入模块20,本实施例中首先获取命令,命令解析后派发到融合部件,融合部件从内存或者帧存读取源数据读到预存数据cache,可支持tile格式、线性像素读取方式或可配置块特定大小的读操作方式。
70.字节对齐模块30,用于在每个融合部件中分别读取cache中的数据,进行字节对齐后送入融合部件单元进行数据处理;
71.帧存写回模块40,用于在每个融合部件单元中分别完成数据处理后,写入cache,并进一步进行burst写回帧存,以完成融合。
72.综上所述,本实施例从cache读取数据进行字节对齐,再送入融合单元,再将像素写入cache,将分块处理的图案按照分块压缩的方式传输,再通过控制进行burst写回帧存。图像分块预取由控制器直接产生写帧存操作,同时产生相应的burst操作。整个图像融合操作过程高效,极大的加速了复杂3d应用场景下2d桌面流畅度。
73.关于上述2d桌面图像预取分块融合装置的具体限定可以参见上文中对于2d桌面图像预取分块融合方法的限定,在此不再赘述。上述2d桌面图像预取分块融合装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
74.在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器
为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种2d桌面图像预取分块融合方法。包括:存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上2d桌面图像预取分块融合方法中的任一步骤。
75.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上2d桌面图像预取分块融合方法中的任一步骤。
76.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术实施例中的方案可以采用各种计算机语言实现,例如,c语言、vhdl语言、verilog语言、面向对象的程序设计语言java和直译式脚本语言javascript等。
77.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
78.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
79.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
80.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
81.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1