CN111291055A - 数据存储方法及装置、数据处理方法及装置、电子设备 - Google Patents

数据存储方法及装置、数据处理方法及装置、电子设备 Download PDF

Info

Publication number
CN111291055A
CN111291055A CN202010115295.2A CN202010115295A CN111291055A CN 111291055 A CN111291055 A CN 111291055A CN 202010115295 A CN202010115295 A CN 202010115295A CN 111291055 A CN111291055 A CN 111291055A
Authority
CN
China
Prior art keywords
container
storage
node
closed curve
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.)
Granted
Application number
CN202010115295.2A
Other languages
English (en)
Other versions
CN111291055B (zh
Inventor
韩忠涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202010115295.2A priority Critical patent/CN111291055B/zh
Publication of CN111291055A publication Critical patent/CN111291055A/zh
Application granted granted Critical
Publication of CN111291055B publication Critical patent/CN111291055B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof

Abstract

本发明提供一种数据存储方法及装置、数据处理方法及装置、电子设备,包括:获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器。本发明实施例可以提高数据处理的效率。

Description

数据存储方法及装置、数据处理方法及装置、电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据存储方法及装置、数据处理方法及装置、电子设备。
背景技术
目前,短视频和直播类应用日益普遍,在短视频制作和直播中,对文字和图形数据进行处理的需求日益增多。
比如,在短视频制作和直播中,可能需要对文字数据进行渲染处理。现有技术中,通常是通过扫描线方式,从文字的整个位图中扫描每个像素点,从而得到字体的边缘曲线;然后,根据字体的字号大小,去缩放和离散化该边缘曲线;最后,基于离散化后的边缘曲线实现渲染。
由于离散化后会产生大量的点,因此,在对离散化后的边缘曲线进行渲染处理时,会涉及到大量点的插入、删除、拷贝、赋值等操作。这些操作都会频繁访问离散化后的边缘曲线上的点信息,如此,导致对文字数据进行渲染处理时计算量比较大,效率比较低。
发明内容
本发明实施例提供一种数据存储方法及装置、数据处理方法及装置,以解决现有技术中对离散化后的边缘曲线进行数据处理时计算量比较大,使得处理效率比较低的问题。
第一方面,本发明实施例提供了一种数据存储方法,所述方法包括:
获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
第二方面,本发明实施例还提供一种数据处理方法,所述方法包括:
从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
基于获取的节点数据,对所述形状曲线数据进行处理。
第三方面,本发明实施例还提供一种数据存储装置,所述装置包括:
第一获取模块,用于获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
第一创建模块,用于基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
第二创建模块,用于基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
第四方面,本发明实施例还提供一种数据处理装置,所述装置包括:
第二获取模块,用于从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
第三获取模块,用于基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
处理模块,用于基于获取的节点数据,对所述形状曲线数据进行处理。
第五方面,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述数据存储方法的步骤,或者实现上述数据处理方法的步骤。
第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法的步骤,或者实现上述数据处理方法的步骤。
本发明实施例中,针对由封闭曲线组成的图形的形状曲线数据,通过定义形状曲线数据中封闭曲线的第一位置关联信息,表达所述形状曲线数据的曲线结构,以及通过定义所述封闭曲线上每个节点的第二位置关联信息,表达所述封闭曲线上的轮廓结构。同时,按照所定义的形状曲线数据的曲线结构创建封闭曲线的存储容器;以及按照所定义的封闭曲线上的轮廓结构在所述存储容器中创建每个节点的存储子容器,从而使所述形状曲线数据中的节点数据以链表的形式进行存储。
相对于现有技术,本发明实施例通过定义统一规范的数据存储结构,实现对由封闭曲线组成的图形的表达统一化。使得在后续进行数据处理时,可以直接基于存储容器定位图形的封闭曲线,并直接基于存储容器中各存储子容器存储的节点数据,对该图形进行处理。如此,在数据处理时无需频繁访问离散化后的边缘曲线上的点信息,从而可以减少数据处理时的计算量,进而提高数据处理的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据存储方法的流程图;
图2是文字图形d的结构示意图;
图3是文字图形d离散化的封闭曲线的结构示意图;
图4是基于封闭曲线的存储结构和节点的存储结构所创建的存储容器的结构示意图之一;
图5是基于封闭曲线的存储结构和节点的存储结构所创建的存储容器的结构示意图之二;
图6是本发明实施例提供的数据处理方法的流程图;
图7是本发明实施例提供的数据存储装置的结构图;
图8是本发明实施例提供的数据处理装置的结构图;
图9是本发明实施提供的电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本发明实施例提供的数据存储方法进行说明。
需要说明的是,本发明实施例提供的数据存储方法可以应用于电子设备。可选的,该电子设备可以为终端设备,用于将由封闭曲线组成的图形的形状曲线数据以统一的数据存储结构存储于存储容器中,以在后续进行数据处理时达到提高数据处理效率的目的。
其中,所述终端设备可以为移动终端如手机、平板电脑(Tablet PersonalComputer),也可以为膝上型电脑(Laptop Computer)、个人数字助理(personal digitalassistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等。
以下实施例中,所述终端设备将以移动终端为例进行详细说明。
参见图1,图1是本发明实施例提供的数据存储方法的流程图,如图1所示,包括以下步骤:
步骤101,获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
步骤102,基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
步骤103,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
在步骤101中,所述形状曲线数据可以为由封闭曲线组成的图形的数据,该图形可以为文字图形,也可以为任意形状的图形,以下实施例中,该图形将以文字图形为例进行详细说明。
以文字图形“d”为例进行说明,参见图2,图2是文字图形d的结构示意图,如图2所示,该文字图形由至少一条封闭曲线组成,每条封闭曲线都包括很多个像素点,有的像素点为封闭曲线的端点,其在封闭曲线上,而有的像素点为封闭曲线的控制点,其不在封闭曲线上。
因此,在得到文字图形的封闭曲线之后,还需要对文字图形的封闭曲线进行离散化,得到离散化的封闭曲线。具体的,可以根据像素点的性质,将文字图形的像素点插值至封闭曲线上,得到封闭曲线上真正的离散点,这些离散点可以称之为离散化的封闭曲线上的节点。参见图3,图3是文字图形d离散化的封闭曲线的结构示意图,如图3所示,文字图形“d”的封闭曲线进行离散化后,其节点都处于封闭曲线上,这些所有的节点数据即组成了形状曲线数据。
另外,该形状曲线数据表征的图形中可以包括至少一条封闭曲线,比如,文字图形“一”仅包括一条封闭曲线,而文字图形“d”包括了两条封闭曲线。同时,由封闭曲线的特性可知,为了组成一个封闭曲线,其上需要至少包括三个节点,因此,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据。
需要说明的是,在文字图形设计时,规定了文字图形中封闭曲线的曲线排列顺序和每条封闭曲线的节点排列顺序。比如,如图2所示,文字图形“d”中,规定包括像素点0至26的封闭曲线为该文字图形的第一条封闭曲线,包括像素点27至39的封闭曲线为文字图形的第二条封闭曲线,且第一条封闭曲线中,规定像素点0为起点,像素点26为终点。另外,还可以规定像素点标识增加的方向为封闭曲线的环绕方向。
在步骤102和步骤103中,可以预先定义每条封闭曲线的存储结构,每条封闭曲线的存储结构可以由所述封闭曲线的位置关联信息来表征,定义封闭曲线上每个节点的存储结构,每个节点的存储结构可以由节点的位置关联信息来表征。同时,由于节点承载于封闭曲线上,因此,可以采用封闭曲线的存储容器来承载所述封闭曲线上每个节点的存储子容器。
如下表1所示,封闭曲线可以用Outline标识,Outline的位置关联信息可以包括曲线排列顺序中本Outline的前一条Outline的存储容器地址,本Outline中第一个节点的存储子容器地址,本Outline中最后一个节点的存储子容器地址、曲线排列顺序中本Outline的后一条Outline的存储子容器地址。
序号 封闭曲线的存储结构
1 曲线排列顺序中本Outline的前一条Outline的存储容器地址
2 本Outline中第一个节点的存储子容器地址
3 本Outline中最后一个节点的存储子容器地址
4 曲线排列顺序中本Outline的后一条Outline的存储子容器地址
表1封闭曲线的存储结构
如下表2所示,封闭曲线上节点可以用Contour标识,Contour的位置关联信息可以包括节点排列顺序中本Contour的前一个Contour的存储子容器地址,本Contour的节点数据,节点排列顺序中本Contour的后一个Contour的存储子容器地址。
序号 封闭曲线上节点的存储结构
1 节点排列顺序中本Contour的前一个Contour的存储子容器地址
2 本Contour的节点数据
3 节点排列顺序中本Contour的后一个Contour的存储子容器地址
表2封闭曲线上节点的存储结构
另外,参见图4,图4是基于封闭曲线的存储结构和节点的存储结构所创建的存储容器的结构示意图之一,如图4所示,包括如上表1所示封闭曲线的位置关联信息和上表2所示节点的位置关联信息。从图4可以看出,基于封闭曲线的存储结构和节点的存储结构,可以通过一条链表来表达封闭曲线,存储容器中各存储子容器存储有封闭曲线上的节点数据,且其链接方向即为封闭曲线上的节点排列顺序,可以称之为封闭曲线的正方向,反之为反方向。
在实现过程中,根据文字图形的封闭曲线的数量,封闭曲线的第一位置关联信息所包括的内容可能有所差别,比如,在文字图形的封闭曲线的数量仅为1时,封闭曲线之前和之后并没有其他的封闭曲线,此时,第一位置关联信息中可能并未包括有曲线排列顺序中本Outline的前一条Outline的存储容器地址和曲线排列顺序中本Outline的后一条Outline的存储容器地址。然而,不管封闭曲线的数量到底有几条,所述第一位置关联信息至少包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址。
至此,文字图形的形状曲线数据通过统一规范的数据存储结构在移动终端处存储完成。在后续数据处理时,移动终端可以直接基于存储容器定位图形的封闭曲线,并直接基于存储容器中各存储子容器存储的节点数据,对该图形进行处理。
本发明实施例中,针对由封闭曲线组成的图形的形状曲线数据,通过定义形状曲线数据中封闭曲线的第一位置关联信息,表达所述形状曲线数据的曲线结构,以及通过定义所述封闭曲线上每个节点的第二位置关联信息,表达所述封闭曲线上的轮廓结构。同时,按照所定义的形状曲线数据的曲线结构创建封闭曲线的存储容器;以及按照所定义的封闭曲线上的轮廓结构在所述存储容器中创建每个节点的存储子容器,从而使所述形状曲线数据中的节点数据以链表的形式进行存储。
相对于现有技术,本发明实施例通过定义统一规范的数据存储结构,实现对由封闭曲线组成的图形的表达统一化。使得在后续进行数据处理时,可以直接基于存储容器定位图形的封闭曲线,并直接基于存储容器中各存储子容器存储的节点数据,对该图形进行处理。如此,在数据处理时无需频繁访问离散化后的边缘曲线上的点信息,从而可以减少数据处理时的计算量,进而提高数据处理的效率。
另外,数据处理可以为图形渲染处理,在移动终端中,通过对各种格式的图形的形状曲线数据以统一规范的数据存储结构进行存储,使得图形的表达方式在移动终端上统一化,从而在移动终端处为后续的图形渲染提供基础。
可选的,若形状曲线数据表征的文字图形包括至少两条封闭曲线,所述步骤102具体包括:
基于所述节点数据,按照曲线排列顺序创建每条所述封闭曲线的存储容器;
其中,每条所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息还包括所述曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及所述曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址。
参见图5,图5是基于封闭曲线的存储结构和节点的存储结构所创建的存储容器的结构示意图之二,如图5所示,创建的存储容器个数与封闭曲线的个数一致,通过将创建的各存储容器也通过链式方式进行链接,使得可以将形状曲线数据包括的节点数据以一条完整链表来表达。
如此,通过将各封闭曲线的存储容器进行链接,可以将由任意条封闭曲线组成的图形的形状曲线数据以一条链表的形式进行存储,为后续进行数据处理提供基础。
下面对数据存储的细节进行详细描述。
可选的,基于图5所示的实施例,所述封闭曲线的数量为M,M为大于或等于2的正整数;所述基于所述节点数据,按照曲线排列顺序创建每条所述封闭曲线的存储容器,包括:
在基于所述形状曲线数据进行结构解析到第i条封闭曲线的情况下,为所述第i条封闭曲线创建第一存储容器;其中,i为小于M的正整数;
将所述第i条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址赋值后存储至所述第一存储容器中;
在基于所述形状曲线数据进行结构解析到第i+1条封闭曲线的情况下,为所述第i+1条封闭曲线创建第二存储容器;
将所述第二存储容器的上一个存储容器地址指针指向所述第一存储容器,并将所述第一存储容器的下一个存储容器地址指针指向所述第二存储容器。
具体的,首先,解析形状曲线数据的结构,以解析到图形的封闭曲线,并为封闭曲线创建存储容器。当发现一条新的封闭曲线如第i条封闭曲线时,为该条封闭曲线创建一个新的存储容器如第一存储容器。其中,i可以取值1,2…M-1,存储容器可以理解一块存储内存,也就是说,为该条封闭曲线预留一块存储内存,以存储该条封闭曲线的位置关联信息和该条封闭曲线上各节点的位置关联信息。
然后,解析该条封闭曲线,为所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址进行赋值,并在第一存储容器中为该条封闭曲线上的各节点创建存储子容器,该过程具体实现将在以下实施例进行详细说明。同时,将该条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址存储至第一存储容器。
接着,解析完成第i条封闭曲线,当又解析到一条新的封闭曲线如第i+1条封闭曲线时,又创建一个新的存储容器如第二存储容器。并将所述第二存储容器的上一个存储容器地址指针指向所述第一存储容器,将所述第一存储容器的下一个存储容器地址指针指向所述第二存储容器。
最后,直至解析完成所有的封闭曲线,为所有的封闭曲线创建完成存储容器,并将每两个相邻的第一存储容器和第二存储容器进行链接。
可选的,所述将所述第i条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址赋值后存储至所述第一存储容器中之前,所述方法还包括:
若所述i大于1,将所述第一存储容器的上一个存储容器地址指针指向第三存储容器;其中,所述第三存储容器为第i-1条封闭曲线创建的存储容器。
也就是说,若创建的第一存储容器为按照曲线排列顺序处于中间的封闭曲线,则不仅需要将第一存储容器与后一条封闭曲线的第二存储容器建立链接,还需要将第一存储容器与前一条封闭曲线的第三存储容器建立链接,如此,生成了一条从第一条封闭曲线至最后一条封闭曲线的有向链表。
上述介绍了从第一条封闭曲线至最后一条封闭曲线的有向链表的建立,以下将详细介绍封闭曲线上节点的有向链表的建立过程。
可选的,针对每条所述封闭曲线,所述封闭曲线上包括N个节点,N为大于或等于3的正整数;所述基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器,包括:
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j个节点的情况下,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,在所述封闭曲线的存储容器中为所述第j个节点创建第一存储子容器;其中,j为小于N的正整数;
将获取的所述第j个节点数据存储至所述第一存储子容器中;
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j+1个节点的情况下,在所述封闭曲线的存储容器中为所述第j+1个节点创建第二存储子容器;
将所述第二存储子容器的上一个存储子容器地址指针指向所述第一存储子容器,并将所述第一存储子容器的下一个存储子容器地址指针指向所述第二存储子容器。
具体的,首先,解析所述封闭曲线,以解析到所述封闭曲线上的节点,并为节点创建存储子容器。当发现一个新的节点如第j个节点时,在该条封闭曲线的存储容器中为该节点创建一个新的存储子容器如第一存储子容器。其中,j可以取值1,2…N-1,存储子容器可以理解存储容器中的一块小的存储内存,也就是说,在该条封闭曲线的存储容器中为该节点预留一块小的存储内存,以存储该节点的位置关联信息。
然后,将第j个节点的数据存储至第一存储子容器中。
接着,当又解析到一个新的节点如第j+1个节点时,又在该存储容器中创建一个新的存储子容器如第二存储子容器。并将所述第二存储子容器的上一个存储子容器地址指针指向所述第一存储子容器,将所述第一存储子容器的下一个存储子容器地址指针指向所述第二存储子容器。
最后,直至解析完成该封闭曲线上所有的节点,在该存储容器中为所有的节点创建完成存储子容器,并将每两个相邻的第一存储子容器和第二存储子容器进行链接。
需要说明的是,针对其他封闭曲线上节点的存储子容器的创建都可以基于上述方式,唯一不同的是,其他封闭曲线上节点的存储子容器的创建需要在与其对应的封闭曲线的存储容器里创建,这里将不再对其赘述。
可选的,所述将获取的所述第j个节点数据存储至所述第一存储子容器中之前,所述方法还包括:
若所述j大于1,将所述第一存储子容器的上一个存储子容器地址指针指向第三存储子容器;其中,所述第三存储子容器为所述封闭曲线上第j-1个节点创建的存储子容器。
也就是说,若创建的第一子存储容器为按照节点排列顺序处于中间的节点,则不仅需要将第一存储子容器与下一个节点的第二存储子容器建立链接,还需要将第一存储子容器与上一个节点的第三存储子容器建立链接,如此,生成了一条从形态曲线数据中第一个节点至最后一个节点的有向链表。
上述对本发明实施例提供的数据存储方法进行了详细地描述,下面基于该数据存储方法,对本发明实施例提供的数据处理方法进行说明。
参见图6,图6是本发明实施例提供的数据处理方法的流程图,如图6所示,包括以下步骤:
步骤601,从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
步骤602,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
步骤603,基于获取的节点数据,对所述形状曲线数据进行处理。
在步骤601中,对数据处理可以理解为对形状曲线数据进行处理,该数据处理可以包括多种,比如可以为渲染处理,也可以将形状曲线数据中各节点数据进行反向操作,以实现创建一个反向链表的操作等等。
在数据处理过程中,首先需要获取该形状曲线数据。
具体的,由于在数据存储时是按照封闭曲线进行存储的,因此,在数据获取过程中,可以直接定位封闭曲线,从封闭曲线的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址。
在步骤602中,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据。
具体的,针对一存储容器,由于该存储容器中每个存储子容器都存储有上一个存储子容器地址和下一个存储子容器地址,因此,可以通过修改指针地址,一次性获取存储容器中除第一个存储子容器和最后一个存储子容器中存储的节点数据。
至于第一个存储子容器和最后一个存储子容器中存储的节点数据,可以基于所述封闭曲线上第一个节点的存储子容器地址,获取封闭曲线上第一个节点的数据,并基于最后一个存储子容器地址,获取封闭曲线上最后一个节点的数据。
至此,可以从存储容器中各存储子容器获取封闭曲线的节点数据。
在步骤603中,基于获取的节点数据,对所述形状曲线数据进行处理。
如此,在对形状曲线数据进行处理时,可以从存储容器中直接定位图形的封闭曲线,并从存储容器的各存储子容器中获取封闭曲线上的节点数据。这样,可以直接定位封闭曲线,根据封闭曲线去进行处理,只处理封闭曲线上的节点就可以,从而可以大大减少计算量,提高数据处理效率,使得该方法能够更好地应用在移动终端。
可选的,所述形状曲线数据对应至少两个存储容器,所述步骤601具体包括:
遍历所述至少两个存储容器中各存储容器存储的封闭曲线的第一位置关联信息,确定所述至少两个存储容器的处理顺序;其中,所述封闭曲线的第一位置关联信息包括曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址;
基于所述处理顺序,依次从每个所述存储容器中获取所述存储容器中存储的封闭曲线的第一节点的存储子容器地址和最后一个节点的存储子容器地址。
也就是说,在定位封闭曲线时,由于封闭曲线具有曲线排列顺序,因此,针对形状曲线数据对应的各存储容器,在获取数据时,需要根据曲线排列顺序来处理各存储容器。
具体的,可以遍历所述至少两个存储容器中各存储容器存储的封闭曲线的第一位置关联信息,基于曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址,去查找到第一条封闭曲线的存储容器,从而基于第一条封闭曲线的存储容器,通过链表链接的方向,确定所述至少两个存储容器的处理顺序。
并基于所述处理顺序,依次从每个所述存储容器中获取所述存储容器中存储的封闭曲线的第一节点的存储子容器地址和最后一个节点的存储子容器地址。
相应的,按照所述处理顺序,依次基于当前处理的存储容器中存储的封闭曲线的第一节点的存储子容器地址和最后一个节点的存储子容器地址,去获取该存储容器中各存储子容器存储的节点数据。
可选的,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据的过程可以为封闭曲线的复制过程。
所述存储容器为第一目标存储容器,所述第一目标存储容器为所述至少两个存储容器中任一存储容器;
所述步骤602具体包括:
创建第二目标存储容器;
在所述第二目标存储容器中创建目标数量的存储子容器;其中,所述目标数量与所述第一目标存储容器中存储子容器的数量对应;
基于所述第一目标存储容器中存储的封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,将所述第一目标存储容器中各存储子容器的节点数据复制到所述第二目标存储容器对应的存储子容器中;
获取所述第二目标存储容器中各存储子容器存储的节点数据。
也就是说,针对当前处理的存储容器,该存储容器可以称之为第一目标存储容器。基于该第一目标存储容器,创建第二目标存储容器,其中,第二目标存储容器的内存大小可以与第一目标存储容器相等。
在所述第二目标存储容器中创建与所述第一目标存储容器中存储子容器的数量相等的存储子容器,实现一个复制的前提。其中,在第二目标存储容器中创建的各存储子容器可以用
Figure BDA0002391310610000145
表示,其中,k可以取值1,2…L-1,L为第一目标存储容器中存储子容器的数量。
遍历所述第一目标存储容器,基于所述第一目标存储容器中存储的封闭曲线上第一个节点的存储子容器地址,获取封闭曲线上第一节点的数据,并对第二目标存储容器中第一个存储子容器进行赋值。
可以采用以下公式(1)对第一个存储子容器中节点进行赋值。
Figure BDA0002391310610000141
其中,
Figure BDA0002391310610000146
为在第二目标存储容器中创建的第一个存储子容器中节点的存储结构,Contour1为第一目标存储容器中第一个存储子容器中节点的存储结构。
修改
Figure BDA0002391310610000142
内部的指针,使其指向使其指向新的上一个节点
Figure BDA0002391310610000143
和新的下一个节点
Figure BDA0002391310610000144
并重新采用上式公式(1)进行赋值。如此,可以实现一次性对存储容器中除第一个存储子容器和最后一个存储子容器中存储的节点数据进行复制。
最后,基于第一目标存储容器中最后一个节点的存储子容器地址,获取封闭曲线上最后一个节点的数据。
至此,当前处理的存储容器中存储的封闭曲线复制完成。基于处理顺序,依次将其他的存储容器中存储的封闭曲线按照上述相同的方式进行复制,从而获得形状曲线数据中所有的节点数据。
为了更好的理解整个过程,以下举例对本发明实施例的数据存储方法和数据处理方法进行详细说明。
如图3所示,文字图形“d”的形状曲线数据包括两条封闭曲线,第一条封闭曲线包括节点0至节点34,其标号增加的方向为第一条封闭曲线的环绕方向,第二条封闭曲线包括节点35至节点53,其标号增加的方向为第二条封闭曲线的环绕方向。
首先,解析形状曲线数据,发现第一条封闭曲线,则创建一个Outline1结构;
然后,为Outline1中第一个Contour和最后一个Contour指针赋值;
接着,解析第一条封闭曲线,创建一个新的Contour11结构,解析第一条封闭曲线上的第一个点,将第一个点的节点数据存储在Contour11中;
接着,解析第一条封闭曲线上的下一个点,创建一个新的Contour12结构,将该点的节点数据存储在Contour12中;
接着,将Contour12的上一个节点指针指向Contour11,将Contour11的下一个节点指针指向Contour12
接着,按照上述方式解析第一条封闭曲线上所有的点,并相互连接起来,生成一条链表:节点0->节点1->…->节点34;
接着,当发现第二条封闭曲线时,创建一个新的Outline2结构,并将Outline2的上一个节点地址指针指向Outline1结构,将Outline1的下一个节点地址指针指向Outline2
接着,为Outline2中第一个Contour和最后一个Contour指针赋值;
接着,解析第二条封闭曲线,创建一个新的Contour21结构,解析第二条封闭曲线上的第一个点,将第一个点的节点数据存储在Contour21中;
接着,解析第二条封闭曲线上的下一个点,创建一个新的Contou22结构,将该点的节点数据存储在Contour22中;
接着,将Contour22的上一个节点指针指向Contour21,将Contour21的下一个节点指针指向Contour22
接着,按照上述方式解析第二条封闭曲线上所有的点,并相互连接起来;
最终生成一条完整链表:节点0->节点1->…->节点34->节点35->节点36…->节点53,以该链表的形式存储文字图形“d”的形状曲线数据。
基于上述存储的文字图形“d”的形状曲线数据,获取形状曲线数据上各节点数据,并基于获取的节点数据,对形状曲线数据进行处理。
其中,获取过程可以为Outline的复制过程。Outline的复制步骤如下:
首先,遍历各Outline,取得第一个Outline1,创建一个新的结构
Figure BDA0002391310610000161
接着,遍历Outline1,取得第一个Contour11,创建一个新的结构
Figure BDA0002391310610000162
按如下公式,给节点
Figure BDA0002391310610000163
赋值:
Figure BDA0002391310610000164
(unit8t*)Contour11+sizeof(Contour*),
sizeof(Contour)-2*sizeof(Contour*))
接着,修改
Figure BDA0002391310610000165
内部的指针,使其指向新的上一个节点
Figure BDA0002391310610000166
和新的下一个节点
Figure BDA0002391310610000167
最后,重复上述复制步骤对第二个Outline2进行相同的处理。
至此,可以基于上述复制的节点数据,对形状曲线数据进行处理。
下面对本发明实施例提供的数据存储装置进行说明。
参见图7,图7是本发明实施例提供的数据存储装置的结构图,能实现上述数据存储方法的细节,并达到相同的效果。如图7所示,数据存储装置700包括:
第一获取模块701,用于获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
第一创建模块702,用于基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
第二创建模块703,用于基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
可选的,所述封闭曲线的数量为至少两条,所述第一创建模块702,具体用于基于所述节点数据,按照曲线排列顺序创建每条所述封闭曲线的存储容器;
其中,每条所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息还包括所述曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及所述曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址。
可选的,所述封闭曲线的数量为M,M为大于或等于2的正整数;所述第一创建模块702,具体用于:
在基于所述形状曲线数据进行结构解析到第i条封闭曲线的情况下,为所述第i条封闭曲线创建第一存储容器;其中,i为小于M的正整数;
将所述第i条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址赋值后存储至所述第一存储容器中;
在基于所述形状曲线数据进行结构解析到第i+1条封闭曲线的情况下,为所述第i+1条封闭曲线创建第二存储容器;
将所述第二存储容器的上一个存储容器地址指针指向所述第一存储容器,并将所述第一存储容器的下一个存储容器地址指针指向所述第二存储容器。
可选的,所述第一创建模块702,还用于若所述i大于1,将所述第一存储容器的上一个存储容器地址指针指向第三存储容器;其中,所述第三存储容器为第i-1条封闭曲线创建的存储容器。
可选的,针对每条所述封闭曲线,所述封闭曲线上包括N个节点,N为大于或等于3的正整数;所述第二创建模块703,具体用于:
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j个节点的情况下,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,在所述封闭曲线的存储容器中为所述第j个节点创建第一存储子容器;其中,j为小于N的正整数;
将获取的所述第j个节点数据存储至所述第一存储子容器中;
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j+1个节点的情况下,在所述封闭曲线的存储容器中为所述第j+1个节点创建第二存储子容器;
将所述第二存储子容器的上一个存储子容器地址指针指向所述第一存储子容器,并将所述第一存储子容器的下一个存储子容器地址指针指向所述第二存储子容器。
可选的,所述第二创建模块703,还用于若所述j大于1,将所述第一存储子容器的上一个存储子容器地址指针指向第三存储子容器;其中,所述第三存储子容器为所述封闭曲线上第j-1个节点创建的存储子容器。
上述数据存储装置700能实现上述数据存储方法实施例中电子设备实现的各个过程,并能达到相同的技术效果,为避免重复,这里不再赘述。
下面对本发明实施例提供的数据处理装置进行说明。
参见图8,图8是本发明实施例提供的数据处理装置的结构图,能实现上述数据处理方法的细节,并达到相同的效果。如图8所示,数据处理装置800包括:
第二获取模块801,用于从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
第三获取模块802,用于基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
处理模块803,用于基于获取的节点数据,对所述形状曲线数据进行处理。
可选的,所述形状曲线数据对应至少两个存储容器,所述第二获取模块801,具体用于:
遍历所述至少两个存储容器中各存储容器存储的封闭曲线的第一位置关联信息,确定所述至少两个存储容器的处理顺序;其中,所述封闭曲线的第一位置关联信息包括曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址;
基于所述处理顺序,依次从每个所述存储容器中获取所述存储容器中存储的封闭曲线的第一节点的存储子容器地址和最后一个节点的存储子容器地址。
可选的,所述存储容器为第一目标存储容器,所述第一目标存储容器为所述至少两个存储容器中任一存储容器;
所述第三获取模块802,具体用于:
创建第二目标存储容器;
在所述第二目标存储容器中创建目标数量的存储子容器;其中,所述目标数量与所述第一目标存储容器中存储子容器的数量对应;
基于所述第一目标存储容器中存储的封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,将所述第一目标存储容器中各存储子容器的节点数据复制到所述第二目标存储容器对应的存储子容器中;
获取所述第二目标存储容器中各存储子容器存储的节点数据。
上述数据处理装置800能实现上述数据处理方法实施例中电子设备实现的各个过程,并能达到相同的技术效果,为避免重复,这里不再赘述。
参见图9,图9是本发明实施提供的电子设备的结构图,如图9所示的电子设备包括:处理器901、存储器902及存储在所述存储器902上并可在所述处理器上运行的计算机程序,电子设备中的各个组件通过总线接口903耦合在一起,所述计算机程序被所述处理器901执行时实现如下步骤:
获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
可选的,所述封闭曲线的数量为至少两条,所述处理器901,具体用于:
基于所述节点数据,按照曲线排列顺序创建每条所述封闭曲线的存储容器;
其中,每条所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息还包括所述曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及所述曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址。
可选的,所述封闭曲线的数量为M,M为大于或等于2的正整数;所述处理器901,具体用于:
在基于所述形状曲线数据进行结构解析到第i条封闭曲线的情况下,为所述第i条封闭曲线创建第一存储容器;其中,i为小于M的正整数;
将所述第i条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址赋值后存储至所述第一存储容器中;
在基于所述形状曲线数据进行结构解析到第i+1条封闭曲线的情况下,为所述第i+1条封闭曲线创建第二存储容器;
将所述第二存储容器的上一个存储容器地址指针指向所述第一存储容器,并将所述第一存储容器的下一个存储容器地址指针指向所述第二存储容器。
可选的,所述处理器901,还用于:
若所述i大于1,将所述第一存储容器的上一个存储容器地址指针指向第三存储容器;其中,所述第三存储容器为第i-1条封闭曲线创建的存储容器。
可选的,针对每条所述封闭曲线,所述封闭曲线上包括N个节点,N为大于或等于3的正整数;所述处理器901,具体用于:
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j个节点的情况下,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,在所述封闭曲线的存储容器中为所述第j个节点创建第一存储子容器;其中,j为小于N的正整数;
将获取的所述第j个节点数据存储至所述第一存储子容器中;
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j+1个节点的情况下,在所述封闭曲线的存储容器中为所述第j+1个节点创建第二存储子容器;
将所述第二存储子容器的上一个存储子容器地址指针指向所述第一存储子容器,并将所述第一存储子容器的下一个存储子容器地址指针指向所述第二存储子容器。
可选的,所述处理器901,还用于:
若所述j大于1,将所述第一存储子容器的上一个存储子容器地址指针指向第三存储子容器;其中,所述第三存储子容器为所述封闭曲线上第j-1个节点创建的存储子容器。
另外,所述计算机程序还可被所述处理器901执行时实现如下步骤:
从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
基于获取的节点数据,对所述形状曲线数据进行处理。
可选的,所述形状曲线数据对应至少两个存储容器,所述处理器901,具体用于:
遍历所述至少两个存储容器中各存储容器存储的封闭曲线的第一位置关联信息,确定所述至少两个存储容器的处理顺序;其中,所述封闭曲线的第一位置关联信息包括曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址;
基于所述处理顺序,依次从每个所述存储容器中获取所述存储容器中存储的封闭曲线的第一节点的存储子容器地址和最后一个节点的存储子容器地址。
可选的,所述存储容器为第一目标存储容器,所述第一目标存储容器为所述至少两个存储容器中任一存储容器;
所述处理器901,具体用于:
创建第二目标存储容器;
在所述第二目标存储容器中创建目标数量的存储子容器;其中,所述目标数量与所述第一目标存储容器中存储子容器的数量对应;
基于所述第一目标存储容器中存储的封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,将所述第一目标存储容器中各存储子容器的节点数据复制到所述第二目标存储容器对应的存储子容器中;
获取所述第二目标存储容器中各存储子容器存储的节点数据。
优选的,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一方法实施例的数据存储方法的各个过程,或者实现上述任一方法实施例的数据处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法的各个过程,或者实现上述数据处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种数据存储方法,其特征在于,所述方法包括:
获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
2.根据权利要求1所述的方法,其特征在于,所述封闭曲线的数量为至少两条,所述基于所述节点数据创建所述封闭曲线的存储容器,包括:
基于所述节点数据,按照曲线排列顺序创建每条所述封闭曲线的存储容器;
其中,每条所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息还包括所述曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及所述曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址。
3.根据权利要求2所述的方法,其特征在于,所述封闭曲线的数量为M,M为大于或等于2的正整数;所述基于所述节点数据,按照曲线排列顺序创建每条所述封闭曲线的存储容器,包括:
在基于所述形状曲线数据进行结构解析到第i条封闭曲线的情况下,为所述第i条封闭曲线创建第一存储容器;其中,i为小于M的正整数;
将所述第i条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址赋值后存储至所述第一存储容器中;
在基于所述形状曲线数据进行结构解析到第i+1条封闭曲线的情况下,为所述第i+1条封闭曲线创建第二存储容器;
将所述第二存储容器的上一个存储容器地址指针指向所述第一存储容器,并将所述第一存储容器的下一个存储容器地址指针指向所述第二存储容器。
4.根据权利要求3所述的方法,其特征在于,所述将所述第i条封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址赋值后存储至所述第一存储容器中之前,所述方法还包括:
若所述i大于1,将所述第一存储容器的上一个存储容器地址指针指向第三存储容器;其中,所述第三存储容器为第i-1条封闭曲线创建的存储容器。
5.根据权利要求1所述的方法,其特征在于,针对每条所述封闭曲线,所述封闭曲线上包括N个节点,N为大于或等于3的正整数;所述基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器,包括:
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j个节点的情况下,基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,在所述封闭曲线的存储容器中为所述第j个节点创建第一存储子容器;其中,j为小于N的正整数;
将获取的所述第j个节点数据存储至所述第一存储子容器中;
在基于所述形状曲线数据对所述封闭曲线进行节点解析到第j+1个节点的情况下,在所述封闭曲线的存储容器中为所述第j+1个节点创建第二存储子容器;
将所述第二存储子容器的上一个存储子容器地址指针指向所述第一存储子容器,并将所述第一存储子容器的下一个存储子容器地址指针指向所述第二存储子容器。
6.根据权利要求5所述的方法,其特征在于,所述将获取的所述第j个节点数据存储至所述第一存储子容器中之前,所述方法还包括:
若所述j大于1,将所述第一存储子容器的上一个存储子容器地址指针指向第三存储子容器;其中,所述第三存储子容器为所述封闭曲线上第j-1个节点创建的存储子容器。
7.一种数据处理方法,其特征在于,所述方法包括:
从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
基于获取的节点数据,对所述形状曲线数据进行处理。
8.根据权利要求7所述的方法,其特征在于,所述形状曲线数据对应至少两个存储容器,所述从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址,包括:
遍历所述至少两个存储容器中各存储容器存储的封闭曲线的第一位置关联信息,确定所述至少两个存储容器的处理顺序;其中,所述封闭曲线的第一位置关联信息包括曲线排列顺序中所述封闭曲线的前一条封闭曲线的存储容器地址,以及曲线排列顺序中所述封闭曲线的后一条封闭曲线的存储容器地址;
基于所述处理顺序,依次从每个所述存储容器中获取所述存储容器中存储的封闭曲线的第一节点的存储子容器地址和最后一个节点的存储子容器地址。
9.根据权利要求8所述的方法,其特征在于,所述存储容器为第一目标存储容器,所述第一目标存储容器为所述至少两个存储容器中任一存储容器;
所述基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据,包括:
创建第二目标存储容器;
在所述第二目标存储容器中创建目标数量的存储子容器;其中,所述目标数量与所述第一目标存储容器中存储子容器的数量对应;
基于所述第一目标存储容器中存储的封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,将所述第一目标存储容器中各存储子容器的节点数据复制到所述第二目标存储容器对应的存储子容器中;
获取所述第二目标存储容器中各存储子容器存储的节点数据。
10.一种数据存储装置,其特征在于,所述装置包括:
第一获取模块,用于获取形状曲线数据;其中,所述形状曲线数据包括离散化的封闭曲线上至少三个节点数据;
第一创建模块,用于基于所述节点数据创建所述封闭曲线的存储容器;其中,所述封闭曲线的存储容器存储有所述封闭曲线的第一位置关联信息;所述第一位置关联信息包括所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址;
第二创建模块,用于基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,按照节点排列顺序在所述封闭曲线的存储容器中创建所述封闭曲线上每个节点的存储子容器;其中,每个所述节点的存储子容器存储有所述节点的第二位置关联信息;所述第二位置关联信息包括所述节点数据,所述节点排列顺序中所述节点的前一个节点的存储子容器地址,以及所述节点排列顺序中所述节点的后一个节点的存储子容器地址。
11.一种数据处理装置,其特征在于,所述装置包括:
第二获取模块,用于从形状曲线数据对应的存储容器中获取封闭曲线的第一个节点的存储子容器地址和最后一个节点的存储子容器地址;其中,所述形状曲线数据包括离散化的所述封闭曲线上至少三个节点数据;
第三获取模块,用于基于所述封闭曲线上第一个节点的存储子容器地址和最后一个节点的存储子容器地址,获取所述形状曲线数据对应的存储容器中各存储子容器存储的节点数据;
处理模块,用于基于获取的节点数据,对所述形状曲线数据进行处理。
12.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的数据存储方法的步骤,或者实现如权利要求7至9中任一项所述的数据处理方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据存储方法的步骤,或者实现如权利要求7至9中任一项所述的数据处理方法的步骤。
CN202010115295.2A 2020-02-25 2020-02-25 数据存储方法及装置、数据处理方法及装置、电子设备 Active CN111291055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010115295.2A CN111291055B (zh) 2020-02-25 2020-02-25 数据存储方法及装置、数据处理方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010115295.2A CN111291055B (zh) 2020-02-25 2020-02-25 数据存储方法及装置、数据处理方法及装置、电子设备

Publications (2)

Publication Number Publication Date
CN111291055A true CN111291055A (zh) 2020-06-16
CN111291055B CN111291055B (zh) 2023-03-14

Family

ID=71030793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010115295.2A Active CN111291055B (zh) 2020-02-25 2020-02-25 数据存储方法及装置、数据处理方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN111291055B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130110784A1 (en) * 2011-10-31 2013-05-02 Symantec Corporation Managing backups of data objects in containers
CN106202367A (zh) * 2016-07-07 2016-12-07 腾讯科技(深圳)有限公司 一种对象信息的处理方法及装置
CN108810523A (zh) * 2017-04-26 2018-11-13 宁波舜宇光电信息有限公司 模组信息存储方法、模组信息检索方法、模组信息存储装置和测试设备
CN109871418A (zh) * 2019-01-04 2019-06-11 广州市城市规划勘测设计研究院 一种时空数据的空间索引方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130110784A1 (en) * 2011-10-31 2013-05-02 Symantec Corporation Managing backups of data objects in containers
CN106202367A (zh) * 2016-07-07 2016-12-07 腾讯科技(深圳)有限公司 一种对象信息的处理方法及装置
US20190102341A1 (en) * 2016-07-07 2019-04-04 Tencent Technology (Shenzhen) Company Limited Object information processing method and apparatus, and storage medium
CN108810523A (zh) * 2017-04-26 2018-11-13 宁波舜宇光电信息有限公司 模组信息存储方法、模组信息检索方法、模组信息存储装置和测试设备
CN109871418A (zh) * 2019-01-04 2019-06-11 广州市城市规划勘测设计研究院 一种时空数据的空间索引方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
钱小燕;韩磊;王帮峰;: "封闭式P2P网络中的离线数据存储" *

Also Published As

Publication number Publication date
CN111291055B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
CN103678631B (zh) 页面渲染方法及装置
US9697423B1 (en) Identifying the lines of a table
CN102884526B (zh) 在应用窗口中显示项目
CN104268229B (zh) 一种基于多进程浏览器的资源获得方法及装置
US20210216595A1 (en) Document information extraction system using sequenced comparators
CN113183759A (zh) 一种仪表盘字符的显示方法及装置
CN114266945A (zh) 一种目标检测模型的训练方法、目标检测方法及相关装置
CN116955863A (zh) 基于虚拟树的动态树形结构渲染方法及装置
JP7392707B2 (ja) 画像処理の方法、デバイス及びコンピュータ可読記憶媒体
CN114792355A (zh) 虚拟形象生成方法、装置、电子设备和存储介质
CN113516697B (zh) 图像配准的方法、装置、电子设备及计算机可读存储介质
CN111145202A (zh) 模型生成方法、图像处理方法、装置、设备及存储介质
CN111639523B (zh) 目标检测方法、装置、计算机设备和存储介质
CN111291055B (zh) 数据存储方法及装置、数据处理方法及装置、电子设备
CN110490157B (zh) 文字评估方法、文字学习方法、装置、设备及存储介质
US20190332859A1 (en) Method for identifying main picture in web page
WO2018208412A1 (en) Detection of caption elements in documents
CN117093619A (zh) 一种规则引擎处理方法、装置、电子设备及存储介质
CN115186738B (zh) 模型训练方法、装置和存储介质
CN113095058B (zh) 一种流式文档翻页处理方法、装置、电子设备及存储介质
US20170337657A1 (en) Merging filters for a graphic processing unit
CN108182202B (zh) 内容更新通知方法、装置、电子设备及存储介质
CN112256175A (zh) 文字显示方法、装置、电子设备及计算机可读存储介质
CN103838743A (zh) 在线阅读版式文档的方法、系统和设备
CN103593532A (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