本发明涉及图形计算领域,具体涉及一种基于最佳缓存空间计算的混合图元渲染方法及系统。
背景技术:
伴随着信息化技术的快速发展,文字图标作为地理信息系统的一个重要组成部分,具备清晰直观、简易迅捷的诸多特点,是辅助展示分析目标区域综合态势情况的有效手段。在综合态势环境中,由于多源态势数据总量大的特性,接收到属性相同或曾经渲染过的文字图元的概率比较大,如果将待渲染的文字图元属性数据单纯的交予gpu计算,gpu将会重复渲染同一文字图元,尤其是针对复杂高级的图元渲染效果,将造成硬件资源的浪费。
为了减少不必要的硬件资源浪费,业界借鉴操作系统缓存快表的技术思想,利用缓存加载和gpu计算的混合方法,在内存设置图元映射表,在硬盘开辟一块缓存空间用于存储渲染过的文字图元,由cpu调用指令判断当前待渲染文字图元是否在缓存中留有备份,如果检测到备份则由cpu直接调取加载到综合态势场景;如果未检测到备份图元,则交由gpu处理渲染。这种方案利用缓存消除了gpu冗余的计算,但是从本地缓存调取图元数据涉及到备份检索及备份文字图元的加载,随着大量的文字图元属性数据传入opengl规范的渲染接口,所需空间不断扩大,造成文字图元备份平均检索时间延长,不能保证批量文字图元渲染时间最佳。因此还需要计算并设置最佳的缓存空间容量,提高文字绘制图元的渲染效率。
另外,缓存空间有限,缓存图元备份的筛选也是需要考虑的另一个问题。目前较为常用的缓存筛选机制是lru,但这种机制并没有充分考虑文字图元的加载问题。
技术实现要素:
本发明的目的在于提出一种基于最佳缓存空间计算的混合图元渲染方法及系统。
实现本发明目的的技术解决方案为:一种基于最佳缓存空间计算的混合图元渲染方法,包括如下步骤:
步骤1,初始化输入参数,包括缓存序列、缓存策略序列、图元备份映射序列、最佳缓存空间、检索快表、探索概率、待渲染图元集合序列、最佳缓存空间推算基准;
步骤2,选择渲染缓存并结合检索快表进行分类,对于缓存空间中与待渲染图元属性集合中图元相同的,则通过cpu调用加载指令,将该部分图元加载到综合态势环境中;对于缓存空间中与待渲染图元属性集合中图元不同的,则利用gpu渲染图元的方法将该部分图元属性集合呈现到综合态势环境中;然后记录本次待渲染图元属性集合渲染的总时间和缓存空间的调用次数,并依据权重策略更新缓存序列和图元备份映射序列;
步骤3,若完成渲染的图元属性集合的个数不是预设最佳缓存空间推算基准值的整数倍,则转至步骤2渲染下一个待渲染图元属性集合;否则,根据探索概率和缓存空间的调用次数,判断渲染过程是否收敛,若收敛,则更新最佳缓存空间为中心点的缓存序列,释放不再使用的缓存空间,将当前最佳缓存空间中的图元备份元素填充到新增的缓存空间,并更新图元备份映射序列;否则,保持缓存序列不变;
步骤4,若步骤3中判断渲染过程是收敛的,则根据预设的概率变化幅度降低探索概率;否则,增加探索概率;然后转至步骤2,渲染下一个待渲染图元属性集合。
进一步的,步骤1的具体实施步骤为:
s101,缓存序列初始化:设置辅助混合渲染图元的缓存空间,默认其中一个缓存为最佳缓存空间,设置缓存容量策略摆幅i,缓存容量步长δs,初始缓存序列
s102,图元备份映射序列初始化:初始化缓存空间序列
s103,最佳缓存空间初始化:默认最佳策略aopt=a(bopt),即最佳缓存空间bopt=b,多个缓存空间为探索最佳缓存空间提供强化学习范围,等同于强化学习中多臂赌博机的摇臂,初始默认选择缓存空间大小位于均值线的摇臂为最佳摇臂,即缓存序列
s104,检索快表初始化:在内存空间设置一张快表,标记缓存序列
s105,探索概率初始化:预设一个初始探索概率∈,剩余的概率空间为当前最佳缓存空间的使用概率1-∈,设置探索概率的上下限值分别为∈′,∈″,其中∈″≤∈≤∈′,预设的概率变化幅度为δξ;
s106,待渲染图元集合序列初始化:假设将会有k个图元属性集合
s107,推算最佳缓存空间临界点预设:预设用于推算最佳缓存空间的参数基准是m,即针对待渲染图元集合序列初始化中的
进一步的,步骤2的具体实施步骤为:
s201,选择渲染缓存:依据探索概率∈,决定执行探索或者最佳缓存行为,即确定待使用的缓存bselect,鉴于此,将会出现两种情况:
(1)若探索概率大于初始化探索概率,则选择执行探索行为,这种情况,将会随机地从缓存序列
(2)若探索概率不大于初始化探索概率,则选择执行最佳缓存行为,这种情况,将会直接选择最佳缓存空间作为待使用的缓存,即直接选择bopt作为待使用的缓存,即bselect=bopt;
s202,执行渲染工作:开始执行混合渲染工作,针对选出的缓存空间bselect,将会面临两种情况:
(1)对于缓存空间bselect中与本次待渲染图元属性集合
(2)对于缓存空间bselect中与本次待渲染图元属性集合
s203,统计渲染时间:记录本次使用缓存空间bselect执行混合渲染图元属性集合
s204,统计缓存调用次数:记录缓存空间bselect被调用的次数加1,即n(bselect)=n(bselect)+1,其中n用于表达缓存序列
s205,更新缓存序列和图元备份映射序列:将本次渲染的图元属性集合dj备份更新到图元备份映射序列
(1)合并图元属性集合dj和图元备份映射序列
(2)清空缓存序列
s206,更新图元备份映射序列:根据目前缓存序列
进一步的,步骤3的具体实施步骤为:
s301,最佳缓存空间推算:经历渲染过程后,将面临两种情况:
(1)若渲染的次数j不是最佳缓存空间推算基准m的整数倍,即j%m≠0,则跳转到步骤2;
(2)若渲染的次数j为最佳缓存空间推算基准m的整数倍,即j%m=0,则会出现如下(a)(b)两种情况:
(a)若当前的缓存序列
(b)若任一
进一步的,步骤4的具体实施步骤为:
s401,探索概率调整:探索概率详细的调整流程如下:
(1)若步骤3中推算出的渲染过程是收敛的,则降低探索概率,即∈=∈-δξ,若∈<∈″,则∈=∈″,其中∈″为探索概率下限,δξ为预设的概率变化幅度;
(2)若步骤3中推算出的渲染过程是离散的,则增加探索概率,即∈=∈+δξ,若∈>∈′,则∈=∈′,其中∈′为探索概率上限。
一种基于最佳缓存空间计算的混合图元渲染系统,包括:
输入参数初始化模块,用于初始化缓存序列、缓存策略序列、图元备份映射序列、最佳缓存空间、检索快表、探索概率、待渲染图元集合序列、最佳缓存空间推算基准;
渲染执行模块,用于选择渲染缓存并结合检索快表进行分类,对于缓存空间中与待渲染图元属性集合中图元相同的,则通过cpu调用加载指令,将该部分图元加载到综合态势环境中;对于缓存空间中与待渲染图元属性集合中图元不同的,则利用gpu渲染图元的方法将该部分图元属性集合呈现到综合态势环境中;然后记录本次待渲染图元属性集合渲染的总时间和缓存空间的调用次数,并依据权重策略更新缓存序列和图元备份映射序列;
最佳缓存空间推算模块,用于确定最佳缓存空间,若完成渲染的图元属性集合的个数不是预设最佳缓存空间推算基准值的整数倍,则渲染下一个待渲染图元属性集合;否则,根据探索概率和缓存空间的调用次数,判断渲染过程是否收敛,若收敛,则更新最佳缓存空间为中心点的缓存序列,释放不再使用的缓存空间,将当前最佳缓存空间中的图元备份元素填充到新增的缓存空间,并更新图元备份映射序列;否则,保持缓存序列不变;
探索概率调整模块,用于根据渲染过程的收敛情况,调整探索概率,若渲染过程是收敛的,则根据预设的概率变化幅度降低探索概率;否则,增加探索概率;然后利用渲染执行模块,渲染下一个待渲染图元属性集合。
进一步的,所述输入参数初始化模块的具体实施步骤为:
s101,缓存序列初始化:设置辅助混合渲染图元的缓存空间,默认其中一个缓存为最佳缓存空间,设置缓存容量策略摆幅i,缓存容量步长δs,初始缓存序列
s102,图元备份映射序列初始化:初始化缓存空间序列
s103,最佳缓存空间初始化:默认最佳策略aopt=a(bopt),即最佳缓存空间bopt=b,多个缓存空间为探索最佳缓存空间提供强化学习范围,等同于强化学习中多臂赌博机的摇臂,初始默认选择缓存空间大小位于均值线的摇臂为最佳摇臂,即缓存序列
s104,检索快表初始化:在内存空间设置一张快表,标记缓存序列
s105,探索概率初始化:预设一个初始探索概率∈,剩余的概率空间为当前最佳缓存空间的使用概率1-∈,设置探索概率的上下限值分别为∈′,∈″,其中∈″≤∈≤∈′,预设的概率变化幅度为δξ;
s106,待渲染图元集合序列初始化:假设将会有k个图元属性集合
s107,推算最佳缓存空间临界点预设:预设用于推算最佳缓存空间的参数基准是m,即针对待渲染图元集合序列初始化中的
进一步的,所述渲染执行模块的具体实施步骤为:
s201,选择渲染缓存:依据探索概率∈,决定执行探索或者最佳缓存行为,即确定待使用的缓存bselect,鉴于此,将会出现两种情况:
(1)若探索概率大于初始化探索概率,则选择执行探索行为,这种情况,将会随机地从缓存序列
(2)若探索概率不大于初始化探索概率,则选择执行最佳缓存行为,这种情况,将会直接选择最佳缓存空间作为待使用的缓存,即直接选择bopt作为待使用的缓存,即bselect=bopt;
s202,执行渲染工作:开始执行混合渲染工作,针对选出的缓存空间bselect,将会面临两种情况:
(1)对于缓存空间bselect中与本次待渲染图元属性集合
(2)对于缓存空间bselect中与本次待渲染图元属性集合
s203,统计渲染时间:记录本次使用缓存空间bselect执行混合渲染图元属性集合
s204,统计缓存调用次数:记录缓存空间bselect被调用的次数加1,即n(bselect)=n(bselect)+1,其中n用于表达缓存序列
s205,更新缓存序列和图元备份映射序列:将本次渲染的图元属性集合dj备份更新到图元备份映射序列
(1)合并图元属性集合dj和图元备份映射序列
(2)清空缓存序列
s206,更新图元备份映射序列:根据目前缓存序列
进一步的,所述最佳缓存空间推算模块的具体实施步骤为:
s301,最佳缓存空间推算:经历渲染过程后,将面临两种情况:
(1)若渲染的次数j不是最佳缓存空间推算基准m的整数倍,即j%m≠0,则渲染下一个待渲染图元属性集合;
(2)若渲染的次数j为最佳缓存空间推算基准m的整数倍,即j%m=0,则会出现如下(a)(b)两种情况:
(a)若当前的缓存序列
(b)若任一
进一步的,所述探索概率调整模块的具体实施步骤为:
s401,探索概率调整:探索概率详细的调整流程如下:
(1)若推算出的渲染过程是收敛的,则降低探索概率,即∈=∈-δξ,若∈<∈″,则∈=∈″,其中∈″为探索概率下限,δξ为预设的概率变化幅度;
(2)若推算出的渲染过程是离散的,则增加探索概率,即∈=∈+δξ,若∈>∈′,则∈=∈′,其中∈′为探索概率上限。
本发明与现有技术相比,其显著优点为:1)依据模型权重策略备份文字绘制图元到缓存,由cpu调用指令检索并加载缓存中存在的文字绘制图元到综合态势环境,由gpu执行渲染缓存中不存在的文字图元属性数据,这在一定程度上避免了gpu对已备份文字绘制图元的重复计算;2)针对近似分布的文字图元属性数据集合,通过贪心强化学习策略和蒙特卡罗采样技术,推算出利用gpu绘制文字图元与cpu加载缓存中文字图元的一个均衡点,即最佳缓存容量,保证了态势文字图元目标的展示效率。
附图说明
图1是本发明基于最佳缓存空间计算的混合图元渲染的流程图。
图2是多臂赌博机强化学习模式的最佳缓存探索原理图。
具体实施方式
下面结合附图和具体实施例,进一步说明本发明方案。
为了提升图元的渲染效率,减少不必要的硬件资源浪费,本发明设计一种基于最佳缓存空间计算的混合图元渲染方法,对于在缓存空间中存有备份的图元,通过cpu调用指令加载到态势环境中;而对于在缓存空间中不存在备份的图元,则通过gpu的渲染方法将图元呈现到态势环境。利用本发明设计的方法,通过大量的具有相似分布的数据训练集(图元属性数据)不断的进行强化学习,直到策略收敛(探寻到最佳缓存),如果本发明推算出的缓存空间不断的减小,那么说明近似分布的文字图元数据的渲染效率更加依赖gpu计算;反之,如果缓存空间不断的增加,说明近似分布的文字图元数据的渲染效率更加依赖于cpu的检索加载。如此一来,可以寻找到近似分布文字图元属性数据集渲染的效率均衡点,即文字渲染图元备份缓存的大小。如果待渲染的图元属性数据趋于离散,本发明会提升寻找最佳缓存策略的力度,最大化渲染效率。本发明涉及到贪心强化学习策略技术,模仿多臂赌博机,设置多个缓存空间用于探索最佳缓存,通过基于贪心策略的强化学习方法,模型可以探索到哪种策略(增加缓存策略、减小缓存的策略、维持缓存不变策略)对文字图元的渲染效率更加有利。
基于最佳缓存空间计算的混合图元渲染方法,操作详细流程参见图1,具体步骤如下:
步骤100:初始化基于最佳缓存空间计算的混合图元渲染方法的输入参数。
详细步骤包括:
缓存序列初始化101:初始化设置辅助混合渲染图元的多个缓存空间,默认其中一个缓存为最佳缓存空间,为了便于叙述,设置缓存容量策略摆幅i,缓存容量步长δs,初始缓存容量
缓存备份图元映射序列初始化102:缓存空间序列
最佳缓存空间初始化103:默认最佳策略aopt=a(bopi),即最佳缓存空间bopt=b,多个缓存空间为探索最佳缓存空间提供强化学习范围,等同于强化学习中多臂赌博机的摇臂,如图2所示的缓存容量策略。初始默认选择缓存空间大小位于均值线的摇臂为最佳摇臂,即缓存序列
检索快表方法104:在内存空间设置一张快表,标记缓存序列
探索概率初始化105:预设一个初始探索概率∈,剩余的概率空间为当前最佳缓存空间的使用概率1-∈,设置探索概率的上下限值分别为∈′,∈″,其中∈″≤∈≤∈′。
待渲染图元集合序列初始化106:定义在未来很长的一段时间内,假设将会有k个图元属性集合
推算最佳缓存空间临界点预设107:定义m是预设的用于推算最佳缓存空间的参数基准,即针对待渲染图元集合序列初始化106中的
步骤200:开始执行渲染工作,具体过程包括:
选择渲染缓存201:依据步骤100的探索概率∈,决定执行哪种行为,即确定待使用的缓存bselect,鉴于此,将会出现两种情况:
(1)选择执行探索行为,这种情况,将会随机地从步骤100缓存空间序列
(2)选择执行最佳缓存行为,这种情况,将会直接选择最佳缓存空间作为待使用的缓存,即直接选择步骤100中的bopt作为待使用的缓存,即bselect=bopt。
执行渲染工作202:开始执行混合渲染工作,针对选出的缓存空间bselect,将会面临两种情况:
(1)对于缓存空间bselect中与图元属性集合
(2)对于缓存空间bselect中与图元属性集合
统计渲染时间203:记录本次使用缓存空间bselect执行混合渲染图元属性集合
统计缓存调用次数204:记录缓存空间bselect被调用的次数加1,即n(bselect)=n(bselect)+1,其中n用于表达步骤100中缓存序列
更新缓存序列图元备份205:依据权重策略更新缓存序列,充分考虑单个图元备份的使用频率和所需缓存容量,举例说明,定义图元属性集合d中图元备份元素的权重为
其中f代表图元渲染的次数,v代表图元所需占据的缓存空间大小,n代表图元属性集合d元素个数。
由步骤100中缓存序列
(1)合并图元属性集合dj和图元备份集合序列
(2)清空缓存序列
更新图元备份映射序列206:根据目前缓存序列
步骤300:进行最佳缓存空间的推算。其中,
最佳缓存空间推算301:经历步骤200的渲染过程后,将面临两种情况:
(1)若步骤100中j不是m的整数倍,即j%m≠0,那么跳转到步骤200;
(2)若步骤100中j恰为m的整数倍,即j%m=0。依据蒙特卡罗概率思想(参阅图2中蒙特卡罗思想使用方法),将会出现如下(a)(b)两种情况:
(a)若当前的缓存序列
(b)若任一
步骤400:依据执行混合渲染的最佳缓存bopt在步骤300中是否发生变更的标准,对步骤200中的探索概率进行如下调整,以保持本发明的持续学习能力。简言之,设置步骤200中的探索及使用最佳缓存空间策略的概率在合理区间:
(1)若在步骤300推算出的渲染过程是收敛的,说明
(2)若在步骤300推算出的渲染过程是离散的,说明
探索概率调整401:步骤200中探索概率详细的调整流程如下:
(1)若步骤300中推算出的渲染过程是收敛的,则降低步骤200中的探索概率,即∈=∈-δξ,若∈<∈″,则∈=∈″,其中∈″为步骤200中的探索概率下限,δξ为预设的概率变化幅度。
(2)若步骤300中推算出的渲染过程是离散的,则增加步骤200中的探索概率,即∈=∈+δξ,若∈>∈′,则∈=∈′,其中∈′为步骤200中的探索概率上限。
步骤500:判断渲染过程是否结束。
渲染过程结束判断501:判断渲染过程是否结束,分为两种情况:
(1)若步骤100中的待渲染的图元属性集合尚存在未被渲染的集合,即j<k,则转至步骤200继续渲染。
(2)若步骤100中的待渲染的图元属性集合全部渲染完毕,即