CN110147330B - 一种字模数据的缓存方法、装置、设备和存储介质 - Google Patents
一种字模数据的缓存方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110147330B CN110147330B CN201910435174.3A CN201910435174A CN110147330B CN 110147330 B CN110147330 B CN 110147330B CN 201910435174 A CN201910435174 A CN 201910435174A CN 110147330 B CN110147330 B CN 110147330B
- Authority
- CN
- China
- Prior art keywords
- target
- index value
- determining
- character code
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种字模数据的缓存方法、装置、设备和存储介质,该方法包括:获取目标字符对应的目标字模数据;将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置;确定目标字符编码对应的目标索引值,并将目标索引值存储至目标元素位置;根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。通过本发明实施例的技术方案,可以充分合理地利用内存资源,并且降低了内存空间。
Description
技术领域
本发明实施例涉及缓存技术,尤其涉及一种字模数据的缓存方法、装置、设备和存储介质。
背景技术
在嵌入式***中,通常需要将字符对应的字模数据进行缓存,以便节省中央处理器CPU(Central Processing Unit)资源,提高显示效率。
现有技术中,通常是将字符对应的万国码Unicode直接作为字模数据的索引值,此时字模存储区为一个严格符合Unicode编码顺序的顺序表,从而在缓存和提取字模数据时可以直接利用字符的Unicode编码来进行索引定位。然而这种缓存方式需要非常大的内存支撑,比如若需要支持0x18AF的蒙古语字符,则需要至少0x18AF个字模缓存单元。针对于此,现有技术中还采用了一种散列算法来节省内存空间,具体为:对于字号小于或等于24的字符,将该字符对应的索引值设置为Unicode编码值和0x7FF的与运算值;对于字号大于24的字符,将该字符对应的索引值设置为Unicode编码值和0x1FF的与运算值。
通过上述的散列运算虽然可以适当降低内存空间的使用,但是对于字号小于或等于24的字符,等于忽略了Unicode编码的高5位,而对于字号大于24的字符,更是忽略了Unicode编码的高7位,使得一个缓存单元可能对应多个Unicode编码,从而会存在缓存冲突,并且由于实际使用的Unicode编码是不连续的,从而在存在缓存冲突的情况下还会导致有很多的缓存单元是空白的,造成了内存资源的浪费。
发明内容
本发明实施例提供了一种字模数据的缓存方法、装置、设备和存储介质,以解决现有技术中存在的缓存冲突以及内存资源浪费的问题,充分合理地利用内存资源,并且降低了内存空间。
第一方面,本发明实施例提供了一种字模数据的缓存方法,包括:
获取目标字符对应的目标字模数据;
将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;
确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;
根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。
第二方面,本发明实施例还提供了一种字模数据的缓存装置,包括:
目标字模数据获取模块,用于获取目标字符对应的目标字模数据;
目标元素位置获得模块,用于将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;
目标索引值存储模块,用于确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;
目标字模数据存储模块,用于根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的字模数据的缓存方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的字模数据的缓存方法。
本发明实施例通过预先将每个字符对应的字符编码作为元素下标值,建立一个预设索引数组,以便利用该预设索引数组存储每个待缓存的字模数据对应的索引值。在获取待缓存的目标字模数据后,将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置,并确定目标字符编码对应的目标索引值,将目标索引值存储至预设索引数组中的目标元素位置;根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。通过利用预设索引数组中的索引值进行索引定位,可以根据实际需要的字符数量来分配缓存单元的数量,以保证每个字符对应的字模数据均由一个相应的缓存单元进行存储,从而避免了缓存冲突的问题,并且无需对实际不需要的字符也分配缓存单元,从而避免了内存资源浪费的问题,实现了内存资源的充分合理利用,降低了内存空间。
附图说明
图1是本发明实施例一提供的一种字模数据的缓存方法的流程图;
图2是本发明实施例一所涉及的一种利用预设索引数组进行缓存的示例;
图3是本发明实施例二提供的一种字模数据的缓存方法的流程图;
图4是本发明实施例二所涉及的一种第一级表和第二级表的示例;
图5是本发明实施例三提供的一种字模数据的缓存装置的结构示意图;
图6是本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种字模数据的缓存方法的流程图,本实施例可适用于在对字符的字模数据进行缓存的情况,尤其是可以用于在嵌入式***中,对矢量字符的字模数据进行缓存的场景。该方法可以由字模数据的缓存装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于具有缓存功能的设备中。该方法具体包括以下步骤:
S110、获取目标字符对应的目标字模数据。
其中,目标字符可以是指待缓存的字模数据所对应的字符。本实施例中的字符可以是指但不限于点阵字符或者矢量字符,其中点阵字符是利用像素点的虚实来表示字符的轮廓;矢量字符是通过数学曲线来描述字符的字形,数学曲线信息可以包含字形边界上的关键点、连线的导数信息等。目标字模数据可以是指目标字符对应的待缓存字模数据。
具体地,本实施例可以从点阵字库文件或者矢量字库文件中确定目标字模数据。示例性地,当设备的显示界面上需要显示目标字符时,可以指定目标字符所需要显示的尺寸、类型,比如加粗、倾斜等特征参数,矢量引擎可以根据这些特征参数从矢量字库文件中提取相应的数学曲线信息,并对提取的数学曲线信息进行预定的数学运算来进行渲染,从而可以获得目标字符对应的目标字模数据。或者也可以从点阵字库文件中直接提取出目标字符对应的目标字模数据。
S120、将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置。
其中,目标字符编码可以是指目标字符对应的Unicode编码,以便可以利用Unicode编码来区分不同种语言中的每个字符,实现跨语言、跨平台的文本转换,比如西里尔文对应的Unicode编码范围:0x0400-0x052F,其中“0x”表示十六进制。预设索引数组的数组大小可以根据业务所需要支持的字符数量预先确定。本实施例可以利用字符编码作为预设索引数组的下标值,每个下标值所对应的元素位置可以用于存储相应的字模数据所对应的索引值。需要注意的是,在建立预设索引数组时,预设索引数组中的每个元素位置均未存储有效的索引值,索引值是在缓存字模数据的过程中,实时进行存储的。
具体地,获取目标字符所对应的目标字符编码,并在预设索引数组中,将目标字符编码作为下标值所对应的元素位置确定为目标元素位置。比如,目标字符编码为0x0020,则表明目标元素位置为预设索引数组中下标值为32的元素位置。
S130、确定目标字符编码对应的目标索引值,并将目标索引值存储至目标元素位置。
其中,索引值可以是用于索引定位字模数据的存储位置的数值。目标索引值可以是用于索引目标字符编码所对应的目标字模数据的存储位置的数值。本实施例中的索引值可以是指一个双字节的且大于零的数值。双字节可以最大对应65535个索引值,从而可以用于索引业务所需的各个字模数据。相应地,预设索引数组的大小为业务实际所用到的最大的字符编码乘以2所得到的计算结果。比如,在业务项目需要支持东亚字符之前的最后一个字符编码,即0x2FFF,则预设索引数组的大小为:0x3000×2=24576字节。需要注意的是,在初始时预设索引数组中的各个元素均为0,即预设索引数组中未存储任何字符对应的索引值。
具体地,本实施例可以随机地为每个字符编码分配一个索引值,也可以基于字符的存储顺序,顺序性地为每个字符编码分配一个索引值,以便于快速索引定位。在确定出目标字符编码对应的目标索引值后,可以将该目标索引值存储至目标元素位置处,从而可以在预设索引数组的下标值为目标字符编码时,获得的元素为目标索引值。
示例性地,S130中的确定目标字符编码对应的目标索引值,可以包括:若当前预设索引数组中不存在索引值,则将目标字符编码对应的目标索引值确定为1;若当前预设索引数组中存在索引值,则获取当前预设索引数组中的最大索引值,并将最大索引值加1,获得的计算结果确定为目标字符编码对应的目标索引值。
具体地,本实施例可以实时确定每个字符对应的索引值,即索引值可以从1开始,每需要存储一个字模数据,相应的索引值自动累加1。在预设索引数组中,所有项目需要支持的字符所对应的索引值均大于0,而其他不会使用的字符所对应的元素位置均存储为0。如图2所示,预设索引数组Array中的“x”表示字符编码为0x0020所对应的索引值,也可以表示第x个被存储的索引值。在当前预设索引数组中不存在索引值,即当前时刻的预设索引数组中的每个元素值均为0时,可以将目标索引值确定为1。在当前预设索引数组中存在索引值,即当前时刻存在非0的索引值时,可以获得最大的索引值,并将最大索引值加1,获得的计算结果确定为目标索引值,从而可以快速地确定每个需要缓存的字符数据所对应的索引值。
S140、根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。
其中,缓存单元可以是指用于存储字模数据的缓存区。每个索引值与缓存单元一一对应,以便可以利用每个缓存单元存储相应的字模数据,从而可以避免现有技术中因同一缓存单元存储多个字模数据而导致缓存冲突的情况。
具体地,本实施例可以根据业务所需要支持的字符数量预先确定缓存单元的数量,并基于字符的字号信息预先确定每个缓存单元的内存空间。比如若字符的字号为24,即字模数据的大小为24点阵,预留的显示区域为24×24个像素,每个像素需要1个字节的透明度,则每个缓存单元的内存空间大小为:24×24=576字节。示例性地,根据目标索引值确定目标缓存单元,可以包括:根据预先存储的索引值与缓存单元之间的对应关系,从预先分配的各个缓存单元中确定目标索引值对应的目标缓存单元。其中,预先分配的缓存单元的数量等于字符的数量,缓存单元的内存空间可以根据字符的字号信息预先确定。本实施例在基于业务所需要支持的字符分配相应的缓存单元后,可以建立字符对应的索引值与缓存单元之间的对应关系并进行存储,从而可以基于该对应关系,从预先分配的所有缓存单元中确定出目标索引值对应的目标缓存单元,并将目标字模数据存储至目标缓存单元处,实现了字模数据的缓存。如图2所示,索引值与缓存单元之间的对应关系可以是将索引值直接作为缓存单元的排列次序。比如,第一个缓存单元用于存储索引值为1的字模数据,即第一个被缓存字符的字模数据,从而可以基于字符的缓存顺序来顺序存储各个字模数据,以便快捷地进行缓存和读取字模数据。
示例性地,利用现有技术中存储24号字符时,只缓存2048个字符,其所需要的缓存空间为:24×24×2048=1179648字节。而利用本实施例所提供的缓存方式存储24号字符时,预设索引数组的大小为:0x3000×2=24576字节,通常业务项目需要支持大部分西文,实际所需支持字符的数量为512,即所有缓存单元的总内存空间大小为:24×24×512=294912字节,从而所需要的内存空间一共为:294912+24576=319488字节。可见,利用本实施实施例所提供的缓存方式仅24字号可以减少内存使用1179648-319488=860160字节,并且每个字符所对应的字模数据均进行了存储,不存在散列冲突的情况,从而充分合理地利用了内存资源,降低了内存空间。
本实施例的技术方案,通过预先将每个字符对应的字符编码作为元素下标值,建立一个预设索引数组,以便利用该预设索引数组存储每个待缓存的字模数据对应的索引值。在获取待缓存的目标字模数据后,将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置,并确定目标字符编码对应的目标索引值,将目标索引值存储至预设索引数组中的目标元素位置;根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。通过利用预设索引数组中的索引值进行索引定位,可以根据实际需要的字符数量来分配缓存单元的数量,以保证每个字符对应的字模数据均由一个相应的缓存单元进行存储,从而避免了缓存冲突的问题,并且无需对实际不需要的字符也分配缓存单元,从而避免了内存资源浪费的问题,实现了内存资源的充分合理利用,降低了内存空间。
在上述技术方案的基础上,在S140之后,还可以包括:获取待提取字模数据对应的待提取字符编码;根据待提取字符编码和预设索引数组,确定待提取字符编码对应的待提取索引值;根据待提取索引值确定待提取缓存单元,并提取待提取缓存单元中的待提取字模数据。
具体地,本实施例在提取字模数据时,可以先将待提取字模数据所对应的待提取字符编码作为下标值,确定预设索引数组中待提取字符编码所对应的待提取索引值,并可以基于索引值与缓存单元之间的对应关系,确定出待提取索引值对应的待提取缓存单元,从而可以从待提取缓存单元中提取出待提取字模数据。本实施例中实际所需的每个字符均可以进行缓存,从而在显示字符时,可以从缓存单元中直接快速提取出字模数据,无需通过矢量引擎生成字模数据,大大提高了显示效率。
实施例二
图3为本发明实施例二提供的一种字模数据的缓存方法的流程图,本实施例在上述实施例的基础上,利用二级表结构设置各个缓存单元,并基于二级表结构对字模数据的缓存过程进行了详细描述。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例提供的字模数据的缓存方法包括以下步骤:
S210、获取目标字符对应的目标字模数据。
S220、将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置。
S230、确定目标字符编码对应的目标索引值,并将目标索引值存储至目标元素位置。
S240、根据目标索引值确定第二级表对应的目标地址指针和目标序号。
其中,第二级表可以是指由预设单元数量的缓存单元组成的缓存区块。本实施例中的第二级表可以有一个或多个,其具体数量可以根据实际需要显示的字符的数量进行确定。第二级表包含的缓存单元的预设单元数量可以根据业务需求和实际情况进行确定,并且该预设单元数量小于实际所需的字符数量,以便可以随着待缓存字符的增加,实时分配扩大缓冲区,以实现内存的动态分配,避免因预先分配内存不当而导致浪费内存或者无法正常缓存的情况。本实施例中每个第二级表对应一个地址指针,以便可以快速定位到第二级表。每个第二级表中的每个缓存单元地址均对应一个第二序号,以便区分第二级表中不同的缓存单元。
具体地,本实施例可以根据目标索引值确定目标地址指针和目标序号,以便可以基于目标地址指针确定出目标第二级表,以及基于目标序号确定出目标第二级表中用于缓存目标字模数据的目标缓存单元。
示例性地,S240可以包括:将目标索引值除以预设单元数量,获得的商确定为第二级表对应的目标地址指针,以及获得的余数确定为第二级表对应的目标序号,其中,预设单元数量是指第二级表包含的缓存单元的数量。如图4所示,每个二级表包含的A个缓存单元,即预设单元数量为A,每个缓存单元对应的序号分别为0到A-1;每个第二级表对应一个地址指针,比如第一个二级表对应地址指针0,即Index(0-(A-1))。示例性地,若目标索引值为10,预设单元数量为4,则第二级表对应的目标地址指针为2,目标序号为2。
S250、根据第一级表检测目标地址指针是否为空地址;若是,则进入步骤S260;若否,则进入步骤S270。
其中,第一级表可以用于存储每个第二级表对应的地址指针。第一级表中每个地址指针可以对应一个第一序号,以便区分不同的地址指针,如图4所示。
具体地,可以通过检测第一级表中是否存在目标地址指针,以便可以确定目标地址指针是否为空地址。若第一级表中不存在目标地址指针,则表明目标地址指针为空地址,此时可以执行步骤S260的操作。若第一级表中存在目标地址指针,则表明目标地址指针不是空地址,存在目标地址指针对应的第二级表,此时可以执行步骤S270的操作。
S260、基于目标地址指针分配一个新的第二级表,并将目标地址指针存储至第一级表中,将当前分配的第二级表中的目标序号对应的缓存单元确定为目标缓存单元,并进入步骤S280。
具体地,在目标地址指针为空地址时,表明当前时刻之前所分配的所有第二级表均存满了字模数据,此时需要重新malloc(memory allocation,动态内存分配)一个新的第二级表,并将目标地址指针指向当前分配的第二级表,以及将目标地址指针存储至第一级表中,以对第一级表进行内容更新。本实施例可以将当前分配的第二级表作为目标第二级表,并将该目标第二级表中的目标序号对应的缓存单元作为目标缓存单元。
需要说明的是,本实施例可以预先分配一个第一级表和一个较小缓存空间的第二级表,之后第二级表逐次分配,每当一个第二级表存满了字模数据再分配一个新的第二级表,从而可以逐步分配扩大字模缓冲区,无需预先一次性分配一个较大的字模缓存区,进一步充分合理的利用内存资源,提高内存的利用率。
S270、将目标地址指针对应的已有第二级表中的目标序号对应的缓存单元确定为目标缓存单元。
具体地,在目标地址指针为非空地址时,表明当前存在目标地址指针指向的第二级表,即已有第二级表,并且在该已有第二级表中当前还存在空闲状态的缓存单元,此时可以直接将该已有第二级表中目标序号对应的缓存单元确定为目标缓存单元。
S280、将目标字模数据存储至目标缓存单元中。
本实施例的技术方案,通过利用二级表结构(第一级表和第二级表)设置各个缓存单元,从而可以无需预先精确计算项目所有支持字符的数量并基于该数量来预先分配字模缓冲区,而是随时缓存随时分配,以第二级表为单元逐步增加字模缓冲区的空间,充分合理的利用内存资源,进一步提高内存利用率。
在上述技术方案的基础上,在S280之后还可以包括:获取待提取字模数据对应的待提取字符编码;根据待提取字符编码和预设索引数组,确定待提取字符编码对应的待提取索引值;根据待提取索引值确定待提取缓存单元,并提取待提取缓存单元中的待提取字模数据。
具体地,本实施例可以先将待提取字模数据所对应的待提取字符编码作为下标值,查询预设索引数组中是否存在待提取字符编码所对应的待提取索引值,若存在,则表明当前缓存区中已经缓存了待提取字模数据,此时可以将待提取索引值处于预设单元数量,获得第二级表的待提取地址指针和待提取序号,基于待提取地址指针获得待提取第二级表,并将待提取第二级表中的待提取序号对应的缓存单元作为待提取缓存单元,从而可以从待提取缓存单元中提取出待提取字模数据,以便在显示界面上可以快速显示出提取的字模数据所对应的字符,大大提高了显示效率。
以下是本发明实施例提供的字模数据的缓存装置的实施例,该装置与上述各实施例的字模数据的缓存方法属于同一个发明构思,在字模数据的缓存装置的实施例中未详尽描述的细节内容,可以参考上述字模数据的缓存方法的实施例。
实施例三
图5为本发明实施例三提供的一种字模数据的缓存装置的结构示意图,本实施例可适用于在对字符的字模数据进行缓存的情况,该装置具体包括:目标字模数据获取模块310、目标元素位置获得模块320、目标索引值存储模块330和目标字模数据存储模块340。
其中,目标字模数据获取模块310,用于获取目标字符对应的目标字模数据;目标元素位置获得模块320,用于将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置;目标索引值存储模块330,用于确定目标字符编码对应的目标索引值,并将目标索引值存储至目标元素位置;目标字模数据存储模块340,用于根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。
可选地,目标索引值存储模块330包括:目标索引值确定单元,用于:若当前预设索引数组中不存在索引值,则将目标字符编码对应的目标索引值确定为1;若当前预设索引数组中存在索引值,则获取当前预设索引数组中的最大索引值,并将最大索引值加1,获得的计算结果确定为目标字符编码对应的目标索引值。
可选地,目标字模数据存储模块340包括:目标缓存单元确定单元,用于:根据预先存储的索引值与缓存单元之间的对应关系,从预先分配的各个缓存单元中确定目标索引值对应的目标缓存单元。
可选地,预先分配的缓存单元的数量等于字符的数量,缓存单元的内存空间根据字符的字号信息预先确定。
可选地,目标缓存单元确定单元,包括:
目标信息确定子单元,用于根据目标索引值确定第二级表对应的目标地址指针和目标序号;
目标地址指针检测子单元,用于根据第一级表检测目标地址指针是否为空地址;
第一目标缓存单元确定子单元,用于若是,则基于目标地址指针分配一个新的第二级表,并将目标地址指针存储至第一级表中,将当前分配的第二级表中的目标序号对应的缓存单元确定为目标缓存单元;
第二目标缓存单元确定子单元,用于若否,则将目标地址指针对应的已有第二级表中的目标序号对应的缓存单元确定为目标缓存单元。
可选地,目标信息确定子单元,具体用于:将目标索引值除以预设单元数量,获得的商确定为第二级表对应的目标地址指针,以及获得的余数确定为第二级表对应的目标序号,其中,预设单元数量是指第二级表包含的缓存单元的数量。
可选地,该装置还包括:
待提取字符编码获取模块,用于在将目标字模数据存储至目标缓存单元中之后,获取待提取字模数据对应的待提取字符编码;
待提取索引值确定模块,用于根据待提取字符编码和预设索引数组,确定待提取字符编码对应的待提取索引值;
待提取字模数据提取模块,用于根据待提取索引值确定待提取缓存单元,并提取待提取缓存单元中的待提取字模数据。
本发明实施例所提供的字模数据的缓存装置可执行本发明任意实施例所提供的字模数据的缓存方法,具备执行字模数据的缓存方法相应的功能模块和有益效果。
实施例四
图6是本发明实施例四提供的一种设备的结构示意图。参见图6,该设备包括:
一个或多个处理器410;
存储器420,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现如上述实施例中任意实施例所提供的字模数据的缓存方法,该方法包括:
获取目标字符对应的目标字模数据;
将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置;
确定目标字符编码对应的目标索引值,并将目标索引值存储至目标元素位置;
根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。
图6中以一个处理器410为例;设备中的处理器410和存储器420可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的字模数据的缓存方法对应的程序指令/模块(例如,字模数据的缓存装置中的目标字模数据获取模块310、目标元素位置获得模块320、目标索引值存储模块330和目标字模数据存储模块340)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的字模数据的缓存方法。
存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本实施例提出的设备与上述实施例提出的字模数据的缓存方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行字模数据的缓存方法相同的有益效果。
实施例五
本实施例五提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的字模数据的缓存方法,该方法包括:
获取目标字符对应的目标字模数据;
将目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中目标字符编码对应的目标元素位置;
确定目标字符编码对应的目标索引值,并将目标索引值存储至目标元素位置;
根据目标索引值确定目标缓存单元,并将目标字模数据存储至目标缓存单元中。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种字模数据的缓存方法,其特征在于,包括:
获取目标字符对应的目标字模数据;
将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;
确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;
根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中;
确定所述目标字符编码对应的目标索引值,包括:
若当前预设索引数组中不存在索引值,则将所述目标字符编码对应的目标索引值确定为1;
若当前预设索引数组中存在索引值,则获取当前预设索引数组中的最大索引值,并将所述最大索引值加1,获得的计算结果确定为所述目标字符编码对应的目标索引值。
2.根据权利要求1所述的方法,其特征在于,根据所述目标索引值确定目标缓存单元,包括:
根据预先存储的索引值与缓存单元之间的对应关系,从预先分配的各个缓存单元中确定所述目标索引值对应的目标缓存单元。
3.根据权利要求2所述的方法,其特征在于,所述预先分配的缓存单元的数量等于所述字符的数量,所述缓存单元的内存空间根据所述字符的字号信息预先确定。
4.根据权利要求1所述的方法,其特征在于,根据所述目标索引值确定目标缓存单元,包括:
根据所述目标索引值确定第二级表对应的目标地址指针和目标序号;
根据第一级表检测所述目标地址指针是否为空地址;
若是,则基于所述目标地址指针分配一个新的第二级表,并将所述目标地址指针存储至所述第一级表中,将当前分配的第二级表中的所述目标序号对应的缓存单元确定为目标缓存单元;
若否,则将所述目标地址指针对应的已有第二级表中的所述目标序号对应的缓存单元确定为目标缓存单元。
5.根据权利要求4所述的方法,其特征在于,根据所述目标索引值确定第二级表对应的目标地址指针和目标序号,包括:
将所述目标索引值除以预设单元数量,获得的商确定为第二级表对应的目标地址指针,以及获得的余数确定为第二级表对应的目标序号,其中,所述预设单元数量是指所述第二级表包含的缓存单元的数量。
6.根据权利要求1-5任一所述的方法,其特征在于,在将所述目标字模数据存储至所述目标缓存单元中之后,还包括:
获取待提取字模数据对应的待提取字符编码;
根据所述待提取字符编码和所述预设索引数组,确定所述待提取字符编码对应的待提取索引值;
根据所述待提取索引值确定待提取缓存单元,并提取所述待提取缓存单元中的所述待提取字模数据。
7.一种字模数据的缓存装置,其特征在于,包括:
目标字模数据获取模块,用于获取目标字符对应的目标字模数据;
目标元素位置获得模块,用于将所述目标字符对应的目标字符编码作为元素下标值,获得预设索引数组中所述目标字符编码对应的目标元素位置;
目标索引值存储模块,用于确定所述目标字符编码对应的目标索引值,并将所述目标索引值存储至所述目标元素位置;
目标字模数据存储模块,用于根据所述目标索引值确定目标缓存单元,并将所述目标字模数据存储至所述目标缓存单元中;
目标索引值存储模块包括:目标索引值确定单元,用于:若当前预设索引数组中不存在索引值,则将目标字符编码对应的目标索引值确定为1;若当前预设索引数组中存在索引值,则获取当前预设索引数组中的最大索引值,并将最大索引值加1,获得的计算结果确定为目标字符编码对应的目标索引值。
8.一种字模数据的缓存设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的字模数据的缓存方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的字模数据的缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910435174.3A CN110147330B (zh) | 2019-05-23 | 2019-05-23 | 一种字模数据的缓存方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910435174.3A CN110147330B (zh) | 2019-05-23 | 2019-05-23 | 一种字模数据的缓存方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110147330A CN110147330A (zh) | 2019-08-20 |
CN110147330B true CN110147330B (zh) | 2023-09-01 |
Family
ID=67592976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910435174.3A Active CN110147330B (zh) | 2019-05-23 | 2019-05-23 | 一种字模数据的缓存方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147330B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837575B (zh) * | 2019-10-31 | 2023-02-24 | 广州方硅信息技术有限公司 | 视频图像的传输特征信息的生成方法和装置 |
CN112069366B (zh) * | 2020-08-28 | 2024-02-09 | 喜大(上海)网络科技有限公司 | 召回确定方法、装置、设备及存储介质 |
CN112988795A (zh) * | 2021-02-26 | 2021-06-18 | 开放智能机器(上海)有限公司 | 一种号码检索方法、***、设备和存储介质 |
CN112949257A (zh) * | 2021-02-26 | 2021-06-11 | 深圳市英威腾电气股份有限公司 | 字符显示方法、装置、设备以及计算机可读存储介质 |
CN114035974A (zh) * | 2021-10-14 | 2022-02-11 | 杭州隆埠科技有限公司 | 数据操作方法和装置 |
CN115687669B (zh) * | 2022-10-12 | 2024-06-21 | 广州中望龙腾软件股份有限公司 | 文字缓存方法、终端以及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083770A (zh) * | 2002-08-08 | 2007-12-05 | 松下电器产业株式会社 | 动态图像的编码方法及解码方法 |
CN102637422A (zh) * | 2012-02-17 | 2012-08-15 | 天地融科技股份有限公司 | 一种字模获取方法、字符显示装置和***,电子签名工具 |
CN104657362A (zh) * | 2013-11-18 | 2015-05-27 | 深圳市腾讯计算机***有限公司 | 数据存储、查询方法和装置 |
CN106294291A (zh) * | 2016-07-20 | 2017-01-04 | 中国航空无线电电子研究所 | 一种TrueType字体渲染方法 |
CN106484734A (zh) * | 2015-09-01 | 2017-03-08 | 天脉聚源(北京)科技有限公司 | 一种数据查询缓存方法及*** |
CN106528647A (zh) * | 2016-10-15 | 2017-03-22 | 北京语联炉火信息技术有限公司 | 一种基于cedar双数组字典树算法进行术语匹配的方法 |
CN107071471A (zh) * | 2011-10-28 | 2017-08-18 | 太阳专利托管公司 | 图像编码方法及图像编码装置 |
CN107291858A (zh) * | 2017-06-09 | 2017-10-24 | 成都索贝数码科技股份有限公司 | 一种基于字符串后缀的数据索引方法 |
CN107402817A (zh) * | 2017-08-01 | 2017-11-28 | 深圳创维数字技术有限公司 | 节省内存的方法、装置、机顶盒和存储介质 |
CN107622115A (zh) * | 2017-09-19 | 2018-01-23 | 武大吉奥信息技术有限公司 | 一种面向wfs服务的空间查询结果缓存方法 |
CN109299719A (zh) * | 2018-09-30 | 2019-02-01 | 武汉斗鱼网络科技有限公司 | 基于字符分割的弹幕校验方法、装置、终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8099555B2 (en) * | 2009-01-23 | 2012-01-17 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for memory management on print devices |
US8266409B2 (en) * | 2009-03-03 | 2012-09-11 | Qualcomm Incorporated | Configurable cache and method to configure same |
-
2019
- 2019-05-23 CN CN201910435174.3A patent/CN110147330B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083770A (zh) * | 2002-08-08 | 2007-12-05 | 松下电器产业株式会社 | 动态图像的编码方法及解码方法 |
CN107071471A (zh) * | 2011-10-28 | 2017-08-18 | 太阳专利托管公司 | 图像编码方法及图像编码装置 |
CN102637422A (zh) * | 2012-02-17 | 2012-08-15 | 天地融科技股份有限公司 | 一种字模获取方法、字符显示装置和***,电子签名工具 |
CN104657362A (zh) * | 2013-11-18 | 2015-05-27 | 深圳市腾讯计算机***有限公司 | 数据存储、查询方法和装置 |
CN106484734A (zh) * | 2015-09-01 | 2017-03-08 | 天脉聚源(北京)科技有限公司 | 一种数据查询缓存方法及*** |
CN106294291A (zh) * | 2016-07-20 | 2017-01-04 | 中国航空无线电电子研究所 | 一种TrueType字体渲染方法 |
CN106528647A (zh) * | 2016-10-15 | 2017-03-22 | 北京语联炉火信息技术有限公司 | 一种基于cedar双数组字典树算法进行术语匹配的方法 |
CN107291858A (zh) * | 2017-06-09 | 2017-10-24 | 成都索贝数码科技股份有限公司 | 一种基于字符串后缀的数据索引方法 |
CN107402817A (zh) * | 2017-08-01 | 2017-11-28 | 深圳创维数字技术有限公司 | 节省内存的方法、装置、机顶盒和存储介质 |
CN107622115A (zh) * | 2017-09-19 | 2018-01-23 | 武大吉奥信息技术有限公司 | 一种面向wfs服务的空间查询结果缓存方法 |
CN109299719A (zh) * | 2018-09-30 | 2019-02-01 | 武汉斗鱼网络科技有限公司 | 基于字符分割的弹幕校验方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于VB实现的的汉字点阵字模的提取方法;范志敏 等;《全国冶金自动化信息网年会论文集》;20040801;421-423 * |
Also Published As
Publication number | Publication date |
---|---|
CN110147330A (zh) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147330B (zh) | 一种字模数据的缓存方法、装置、设备和存储介质 | |
US9940744B2 (en) | Remote font management | |
CN108959127B (zh) | 地址转换方法、装置及*** | |
KR102147356B1 (ko) | 캐시 메모리 시스템 및 그 동작방법 | |
CN108984553B (zh) | 缓存方法和装置 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN105468365A (zh) | 一种解决树控件节点数量限制的方法 | |
US11822811B2 (en) | Method, electronic device and computer program product for processing data | |
CN101483035B (zh) | 在图形界面上显示文字的方法和*** | |
CN109376125A (zh) | 一种元数据存储方法、装置、设备及计算机可读存储介质 | |
CN115964002B (zh) | 一种电能表终端档案管理方法、装置、设备及介质 | |
US9639566B2 (en) | Method, apparatus and computer program product for improved storage of key-value pairs | |
CN107748649B (zh) | 一种缓存数据的方法和装置 | |
EP3872642A1 (en) | Caching device, cache, system, method and apparatus for processing data, and medium | |
WO2024124843A1 (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN116166583B (zh) | 一种数据精度的转换方法、装置、dma控制器及介质 | |
CN109144853B (zh) | 一种软件定义无线电SoC芯片调试*** | |
CN104424163A (zh) | 文字处理方法和*** | |
CN111858612A (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
CN115277553B (zh) | 一种流表存储方法、装置、设备和计算机可读存储介质 | |
CN116467235A (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
US9258258B2 (en) | Implementing injection of formal numerical message identifiers in cloud stacks | |
CN111949648A (zh) | 内存缓存数据***和数据索引方法 | |
KR100399495B1 (ko) | 소스 스트링의 타겟 스트링으로의 변환 방법, 이의 컴퓨터시스템 및 프로그램 제품 | |
CN112015425A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |