本发明专利技术提供了一种改进的矢量字模数据缓存方法及装置,充分合理地利用内存资源,并且降低了内存空间。缓存算法,包括以下步骤:(1)获取目标字符对应的目标字模数据;(2)将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;(3)确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;(4)根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。缓存装置,包括:目标字模数据获取模块;目标元素位置获得模块;目标索引值存储模块;目标字模数据存储模块。目标字模数据存储模块。目标字模数据存储模块。
【技术实现步骤摘要】
改进的矢量字模数据缓存方法及装置
[0001]本专利技术涉及一种改进的矢量字模数据缓存方法及装置,能够有效减少系统缓存数据占据空间。
技术介绍
[0002]在嵌入式系统中,为了达到较好的字符显示效果,在资源允许的情况下,会采用矢量字库来显示中西文字符。当有字符需要显示时,可以指定需要显示字符的尺寸、类型,比如加粗、倾斜等特征参数,然后矢量引擎根据这些参数去字库提取对应字符的矢量参数并经过特征运算得到最终的显示效果字模数据。由此带来的一个问题是矢量字提取需要较多的CPU资源来完成运算,在嵌入式系统上,为了节省CPU资源,提高效率,往往会针对比如拉丁语系这些由较少字母通过排列组合来构成成千上万词汇的情况,采用一种缓存技术,也就是把每个字母第一次显示时提取的字模数据缓存起来,在系统后续的运行中当需要再次以同样的特征参数显示该字母时,直接提取缓存的字模数据即可,而不再需要耗费矢量引擎的运算资源。这种办法的代价是需要更多的内存来存储缓存的字模数据,以空间来换时间,用更多的内存来保证系统运行的流畅。不过对于嵌入式系统来说,内存资源和CPU资源一样是非常受限的资源,保存字模数据的缓冲方法需要设计的非常精巧,以免对内存资源造成不必要的浪费,甚至于影响了主程序其它模块运行所需的内存资源,那就得不偿失了。
技术实现思路
[0003]本专利技术目的是提供了一种改进的矢量字模数据缓存方法及装置,以解决现有技术中存在的缓存冲突以及内存资源浪费的问题,充分合理地利用内存资源,并且降低了内存空间。
[0004]本专利技术为实现上述目的,通过以下技术方案实现:一种改进的矢量字模数据缓存算法,包括以下步骤:(1)获取目标字符对应的目标字模数据;(2)将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;(3)确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;(4)根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。
[0005]所述改进的矢量字模数据缓存算法优选方案,确定所述目标字符编码对应的目标索引值包括:若当前预设索引数组中不存在索引值,则将所述目标字符编码对应的目标索引值确定为1;若当前预设索引数组中存在索引值,则获取当前预设索引数组中的最大索引值,
并将所述最大索引值加1,获得的计算结果确定为所述目标字符编码对应的目标索引值。
[0006]一种改进的矢量字模数据缓存装置,包括:目标字模数据获取模块,用于获取目标字符对应的目标字模数据;目标元素位置获得模块,用于将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;目标索引值存储模块,用于确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;目标字模数据存储模块,用于根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。
[0007]本专利技术的优点在于:通过利用预设索引数组中的索引值进行索引定位,可以根据实际需要的字符数量来分配缓存单元的数量,以保证每个字符对应的字模数据均由一个相应的缓存单元进行存储,从而避免了缓存冲突的问题,并且无需对实际不需要的字符也分配缓存单元,从而避免了内存资源浪费的问题,实现了内存资源的充分合理利用,降低了内存空间。
附图说明
[0008]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。
[0009]图1为本专利技术实施例的流程示意图。
[0010]图2为本专利技术实施例二级表结构示意图。
具体实施方式
[0011]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0012]正如
技术介绍
所述现有技术存在的缓存冲突以及内存资源浪费的问题,本专利技术采用以下方案:一种改进的矢量字模数据缓存算法,包括以下步骤:(1)获取目标字符对应的目标字模数据;(2)将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;(3)确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;(4)根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。
[0013]确定所述目标字符编码对应的目标索引值包括:若当前预设索引数组中不存在索引值,则将所述目标字符编码对应的目标索引值确定为1;
若当前预设索引数组中存在索引值,则获取当前预设索引数组中的最大索引值,并将所述最大索引值加1,获得的计算结果确定为所述目标字符编码对应的目标索引值。
[0014]一种改进的矢量字模数据缓存装置,包括:目标字模数据获取模块,用于获取目标字符对应的目标字模数据;目标元素位置获得模块,用于将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;目标索引值存储模块,用于确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;目标字模数据存储模块,用于根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。
实施例
[0015]如图1,本专利技术采用的二次索引方法,(1)获取目标字符对应的目标字模数据。
[0016](2)将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置,字符编码可以是目标字符对应的Unicode编码,以便利用Unicode编码来区分不同语言的字符,实现跨语言、跨平台的文字转换。
[0017](3)确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置,目标索引值可以是用于索引目标字符编码所对应的目标字模数据的存储位置的数值。
[0018]本实施例中的索引值可以是指一个双字节的且大于零的数值,双字节可以最大对应65535个索引值,从而可以用于索引业务所需的各个字模数据,相应地,预设索引数组的大小为业务实际所用到的最大的字符编码乘以2所得到的计算结果。比如,在业务项目需要支持东亚字符之前的最后一个字符编码,即0x2FFF,则预设索引数组的大小为:0x3000
×
2=24576字节。需要注意的是,在初始时预设索引数组中的各个元素均为0,即预设索引数组中未存储任何字符对应的索引值。
[0019]本实施例可以随机地为每个字符编码分配一个索引值,也可以基于字符的存储顺序,顺序性地为每个字符编码分配一个索引值,以便于快速索引定位。
[0020](4)在确定出目标字符编码对应的目标索引值后,可以将该目标索引值存储至目标元素位置处本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种改进的矢量字模数据缓存算法,其特征在于,包括以下步骤:(1)获取目标字符对应的目标字模数据;(2)将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;(3)确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;(4)根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。2.根据权利要求1所述改进的矢量字模数据缓存算法,其特征在于:确定所述目标字符编码对应的目标索引值包括:若当前预设索引数组中不存在索引值,则将所述目标字符编码对应的目标索引值确定为1;若当前预设索引数组中存在...
【专利技术属性】
技术研发人员:张涵,李鹏,孟祥朋,黄洋,
申请(专利权)人:山东云缦智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。