一种数据存储的方法及设备与流程

文档序号:11530787阅读:236来源:国知局
一种数据存储的方法及设备与流程

本发明涉及涉及存储技术领域,尤其涉及的是一种数据存储的方法及设备。



背景技术:

在相机拍摄视频时,对不同的帧数据均按照图像采集、图像处理、编码、存储的流水进行,由于视频分辨率越高,在保证视频局部清晰度的情况下,若使用同样的编码方式,视频码率也越高,相应的,所拍摄的视频的文件大小也越大。较大的视频需要更快的写入速度,因此,对于视频码率高的视频,在写入相机的存储介质时整个流水容易发生阻塞,从而导致编码缓存溢出,甚至无法继续拍摄。目前为了保证整个流水正常进行,一般采取写入速度大于编码生成的速度的存储介质,否则将导致编码缓存溢出,进而导致录像无法继续进行,因此写入速度不足制约视频画质的提升。例如,采用安全数字卡(英文全称:securedigitalcard,英文简称:sdcard)、闪存卡(英文全称:compactflashcard,英文简称:cfcard)、记忆棒、固态硬盘(英文全称:solidstatedisk,英文简称:ssd)等写入速度高、容量大、可靠性高的存储介质。

由于各个存储卡厂家的技术与生产工艺的差异,并不能保证任何时刻的写入速度都能达到标称的写入速度,特别是在随机写入(英文全称:randomwrite)状态下。并且由于相机拍摄视频为并行流水处理的过程,如果中间出现突发的存储介质写入速度变慢、卡顿(比如sd卡,由于每个区块的速度可能会有差异,厂家不保证任何时刻的写入速度都能达到标称的速度,特别是在随机写入状态下)等情况,则会导致视频拍摄无法继续进行。

现有机制中,主要采用以下两种方式解决写入速度的稳定性的问题:一、采用内置的存储介质,但不支持外部存储介质,但采用内置的存储介质不利于设备间的数据分发和流转,使用场景受限,并且在内置的存储介质的容量较大时,成本较高。二、通过厂商的大量评测,提供可支持的外存储设备型号的列表供用户选择。但该列表限制用户选择存储设备,且生产过程中的大量评测需额外增加测试成本。



技术实现要素:

本申请提供了一种数据存储的方法及设备,能够解决现有技术中存储设备的写入速度的可靠性较低的问题。

本申请第一方面提供了一种数据存储的方法,所述方法应用于拍摄设备,所述拍摄设备包括n个存储介质,其中,n为大于或等于2的正整数;所述方法包括:

在拍摄之前,根据预设选择规则在所述n个存储介质中选择用于存储拍摄设备所拍摄的视频数据的第一目标存储介质;

将所述拍摄设备拍摄的视频数据写入所述第一目标存储介质;

所述预设选择规则至少包括以下项之一:根据所述拍摄设备当前拍摄设定的视频码率选择所述第一目标存储介质,根据所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质,根据所述拍摄设备当前拍摄设定的视频码率、以及所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质根据均衡算法选择所述第一目标存储介质,或根据所述拍摄设备中内置的应用计算得到所述第一目标存储介质。

在一种可能的设计中,为实现后期对存储的视频文件进行针对性、有效的修复,还可以在存储上述视频数据过程中,对相应视频数据的存储信息进行记录和备份,具体体现为:

在所述拍摄设备拍摄过程中,为拍摄的视频数据建立索引文件,所述索引文件包括所述视频数据的索引信息;

采用乒乓交替方式将所述索引文件写入所述第一目标存储介质。

可选的,所述索引文件包括至少一个索引信息,每个所述索引信息包括索引号、帧数据的时间戳、帧数据在所述视频数据中的偏移以及帧数据的长度,还可以包括存储帧数据的存储介质的编号。

在一种可能的设计中,在存储拍摄视频的过程中,还可以根据所述索引文件对所述视频数据定时进行增量备份或全备份。可以采用快照或类似技术进行备份操作,备份的时刻可以根据用户需求或由软件配置,具体不作限定。

在一种可能的设计中,在拍摄之前,为适应视频数据的写入速度,可以根据存储模式和视频码率选择第一目标存储介质,具体为:

在拍摄之前,根据目的存储介质和所述拍摄设备当前拍摄设定的视频码率计算将拍摄的视频数据写入目的存储介质所需的理论写入速度,所述目的存储介质为所述拍摄设备当前设定的存储模式对应的用于存储所述视频数据的存储介质;

根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的第一目标存储介质。一定程度上能够提高视频数据的写入速度。

在一种可能的设计中,由于拍摄设备的存储介质的写入速度、型号等参数会有所不同,可以为一个拍摄设备配置n个存储介质,其中,n为大于或等于2的正整数。例如,可能存在某些存储介质无法达到当前的写入速度,则可以同时选择多个存储介质来并行写入视频数据以适应当前视频数据的写入速度,在拍摄完毕后,可以将存储在各存储介质中的视频数据合并为完整的视频文件。由此可见,在拍摄之前,可以根据存储介质的写入速度、和所述理论写入速度选择第一目标存储介质,则在根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的第一目标存储介质时,满足以下之一:

若所述n个存储介质中的至少2个存储介质的实际写入速度均大于或等于所述理论写入速度,则按照用户配置信息或均衡算法选择所述第一目标存储介质;

若所述n个存储介质中的每个存储介质的实际写入速度均小于所述理论写入速度,且所述n个存储介质中的至少2个存储介质的实际写入速度总和大于或等于所述理论写入速度,则从所述至少2个存储介质中选择至少2个目的存储介质作为所述第一目标存储介质;

或者,若所述n个存储介质中,仅有1个存储介质的实际写入速度大于或等于所述理论写入速度,则将实际写入速度均大于或等于所述理论写入速度的存储介质作为临时存储介质。

在一种可能的设计中,根据存储介质的写入速度、和所述理论写入速度选择第一目标存储介质时,将所述拍摄设备拍摄的视频数据写入所述第一目标存储介质,至少包括以下两种情况:

1、若所述n个存储介质中的每个存储介质的实际写入速度均小于所述理论写入速度,且所述n个存储介质中的至少2个存储介质的实际写入速度总和大于或等于所述理论写入速度,则按照均衡算法将所述视频数据分为至少两块数据,并将所述至少两块数据分别写入所述至少2个目的存储介质;

在所述拍摄设备的空闲时间或低负载时,将写入所述至少2个目的存储介质的所述至少两块数据合并,并迁移至所述n个存储介质中的第二目标存储介质,该第二目标存储介质为n各存储介质中的任意存储介质,可以是除所述至少2个目的存储介质之外的任意存储介质,可以是除所述至少2个目的存储介质之外的任意存储介质,可以是内部存储介质,也可以是外部存储介质,也可以是内部存储介质与外部存储介质的组合,具体的存储介质数量、类型或组合方式均不作限定。

其中,合并的过程为:读取所述至少两块数据中各数据的索引信息,然后根据所述至少两块数据中每块数据对应的索引信息,按照帧数据的时间戳将所述至少两块数据拼接,形成一个视频文件。

2、若所述n个存储介质中,仅有1个存储介质的实际写入速度大于或等于所述理论写入速度,则将所述视频数据写入所述临时存储介质;

在所述拍摄设备的空闲时间或低负载时,将写入所述临时存储介质的所述视频数据迁移至所述n个存储介质中除所述临时存储介质之外的第三目标存储介质,该第三目标存储介质可由用户自行选择。

在第2种情况下,若当前拍摄设备的存储模式为自动存储模式,则可将写入该临时存储介质的视频数据不作迁移,仍存储于该临时存储介质,即将该临时存储介质作为上述第一目标存储介质。

在一种可能的设计中,为提高写入视频数据的稳定性,在拍摄过程中,为视频数据建立索引文件之后,所述采用乒乓交替方式将所述索引文件写入所述第一目标存储介质中之前,本申请还可以进行:

按队列管理方式对所述视频数据进行监控;

在编码完成的帧数据进入写队列之前,判断所述写队列当前的占用率高于第一阈值时,则确定写操作异常;

根据所述预设选择规则从所述n个存储介质中选择第四目标存储介质,将未进入所述写队列的已编码的帧数据写入所述第四目标存储介质。

在一种可能的设计中,还可以根据存储模式和写入速度选择第一目标存储介质,故根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的所述第一目标存储介质,至少满足以下之一:

若所述拍摄设备的外部存储介质的实际写入速度小于所述理论写入速度,且所述拍摄设备当前设定的存储模式为外部存储模式,则选择所述拍摄设备的内部存储介质作为所述第一目标存储介质;

若所述拍摄设备的外部存储介质的实际写入速度大于或等于所述理论写入速度,且所述拍摄设备当前设定的存储模式为内部存储模式,或当前设定的存储模式为自动模式,则选择所述内部存储介质作为所述第一目标存储介质;

或者,若所述拍摄设备的外部存储介质的实际写入速度大于或等于所述理论写入速度,且所述拍摄设备当前设定的存储模式为外部存储模式,则选择所述外部存储介质作为所述第一目标存储介质。

在一种可能的设计中,当所述拍摄设备当前设定的存储模式为外部存储模式,且选择所述内部存储介质作为所述第一目标存储介质时,所述方法还包括:

在将所述视频数据写入所述内部存储介质时,将写入所述内部存储介质中的视频数据同步至所述外部存储介质。通过本设计,无需等到拍摄停止后再同步,若出现了内部存储介质的部分区域速度不够,可以将其他视频数据临时放到外部存储介质,最终做修复,从而保证数据的可用性。

在一种可能的设计中,在将所述视频数据写入所述内部存储介质过程中,当所述内部存储介质的实际写入速度低于所述理论写入速度时,则将未写入所述内部存储介质的待修复数据写入所述外部存储介质,以便通过所述拍摄设备内置的应用或用户配置方式将所述待修复数据写入所述内部存储介质。其中,内置的应用可以是拍摄设备的交互界面,例如虚拟按钮或者物理按钮,用户配置方式一般通过app或者物理按钮来响应用户的指令。

在一种可能的设计中,在选择所述外部存储介质作为所述第一目标存储介质时,若视频数据无法写入所述外部存储介质,则将第一目标存储介质切换为所述内部存储介质,并在所述内部存储介质中记录切换时刻之后写入所述内部存储介质中的帧数据,以便在所述拍摄设备的空闲时间或低负载时,通过所述拍摄设备内置的应用或用户配置方式将写入所述内部存储介质中的帧数据与写入所述外部存储介质的帧数据合并,并迁移至备用存储介质。

通过提供灵活的存储机制,可以应付多种写入受限的场景,从而保证数据的完整度和有效性。

在一种可能的设计中,还可以实时监测写入状态,在写入状态异常(例如,进入写入速度慢区、死区、其他外界突发因素导致的无法写入)时,切换到备份存储介质,进一步提高数据的稳定性和完整性。具体为:

在将所述拍摄设备拍摄的视频数据写入所述第一目标存储介质的过程中,实时监测写入状态;

若监测到将所述拍摄设备拍摄的视频数据无法写入所述第一目标存储介质,则将第一目标存储介质切换为备用存储介质,将所述拍摄设备拍摄的视频数据写入所述备用存储介质,以便在所述拍摄设备的空闲时间或低负载时,通过所述拍摄设备内置的应用或用户配置方式将写入所述备用存储介质中的帧数据与写入所述第一目标存储介质的帧数据合并,形成一个视频文件。

在一种可能的设计中,在完成拍摄后,对需要修复的视频数据进行修复时,考虑到视频文件的大小不一,可以根据存储介质的实际空闲容量来选择用于存储修复后的视频文件,具体为:

从所述外部存储介质和所述内部存储介质中读取所述索引文件,从所述索引文件中提取目标索引信息;例如可以选择索引信息最完整且修复信息最多的索引信息作为目标索引信息,以减少合并多个修复数据的操作。

根据均衡算法选择用于存储修复所述待修复数据后的所述视频数据的第五目标存储介质,并根据所述目标索引信息获取所述待修复数据;

使用所述待修复数据对所述视频数据进行修复,以及将修复后的所述视频数据写入所述第五目标存储介质,其中,第五目标存储介质可以是n各存储介质中的任意存储介质,可以是内部存储介质,也可以是外部存储介质,也可以是内部存储介质与外部存储介质的组合,具体的存储介质数量、类型或组合方式均不作限定。

在一种可能的设计中,所述目标索引信息包括索引号、帧头信息、所述待修复数据中每个帧数据存储的索引信息、以及切换时刻之后写入所述内部存储介质中的帧数据的索引信息,还可以包括存储所述拍摄设备拍摄的视频数据的存储介质的编号。通过提供每帧数据的存储信息,使得后期在修复时可以快速、有针对性、准确的定位到想要修复的数据。

在一种可能的设计中,为进一步的提高修复数据的效率,还可以先获取待修复数据的所有索引信息,然后使用这些索引信息为待修复数据建立一个索引表,实现在修复数据时,可以直接调用、定位修复的数据,有效缩短修复数据的查找时间。即上述目标索引信息包括至少一个索引信息,所述从所述索引文件中提取目标索引信息之后,所述使用所述待修复数据对所述视频数据进行修复之前,所述方法还包括:

根据索引号的编排规则,将至少一个索引信息重组为一个索引表;

则根据所述索引表指示的所述待修复数据中帧数据的时间戳,对所述视频数据进行修复。

在一种可能的设计中,存储介质的实际写入速度通过以下步骤得到:

通过读取存储介质的状态寄存器,或对存储介质进行读写速度测试,得到存储介质的实际写入速度,所述读写速度包括连续写入速度和随机写入速度。

本发明第二方面还提供一种存储设备,该存储设备具有实现上述方法设计中存储设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。

一种可能的设计中,所述存储设备包括存储模块,处理模块以及写模块;

所述存储模块包括n个存储介质,其中,n为大于或等于2的正整数;

所述处理模块,用于在拍摄之前,根据预设选择规则在所述n个存储介质中选择用于存储拍摄设备所拍摄的视频数据的第一目标存储介质;

所述写模块,用于将所述拍摄设备拍摄的视频数据写入所述处理模块选择的所述第一目标存储介质;

所述预设选择规则至少包括以下项之一:根据所述拍摄设备当前拍摄设定的视频码率选择所述第一目标存储介质,根据所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质,根据所述拍摄设备当前拍摄设定的视频码率、以及所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质根据均衡算法选择所述第一目标存储介质,或根据所述拍摄设备中内置的应用计算得到所述第一目标存储介质。

一种可能的设计中,所述存储设备包括:

处理器、n个存储器、控制器;

其中,n为大于或等于2的正整数,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:

在拍摄之前,根据预设选择规则在所述拍摄设备中选择用于存储拍摄设备所拍摄的视频数据的第一目标存储介质;

通过所述控制器将所述拍摄设备拍摄的视频数据写入选择的所述第一目标存储介质;

所述预设选择规则至少包括以下项之一:根据所述拍摄设备当前拍摄设定的视频码率选择所述第一目标存储介质,根据所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质,根据所述拍摄设备当前拍摄设定的视频码率、以及所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质根据均衡算法选择所述第一目标存储介质,或根据所述拍摄设备中内置的应用计算得到所述第一目标存储介质。

相较于现有技术,本发明提供的方案中,在拍摄之前根据预设选择规则动态的选择适合写入拍摄数据的第一目标存储介质,有效提高写入速度的可靠性以及录象流水过程的流畅性,避免写入速度不足导致的卡顿、画面不流畅等问题。

附图说明

图1为本发明实施例中数据存储的方法的一种流程示意图;

图2为本发明实施例中数据存储的方法的另一种流程示意图;

图3为本发明实施例拍摄设备的一种结构示意图;

图4为本发明实施例拍摄设备的另一种结构示意图;

图5为本发明实施例拍摄设备的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分不到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本发明实施例方案的目的。

本发明实施例提供了一种数据存储的方法及设备,用于存储技术领域。以下对本文中所出现的技术名词进行详细说明。

贯穿本文,拍摄设备包括拍摄装置、处理模块、写模块、至少2个存储介质,其中,写模块包括缓存模块和回写模块,缓存模块用于将写入存储介质的数据缓存至缓存介质;回写模块用于将缓存模块缓存至缓存介质的数据写入存储介质;缓存介质为至少2个存储介质中的一种存储介质,读/写速度较快。

本发明中的拍摄设备可应用于各种拍摄场景,尤其适用于对实时拍摄的效率要求较高的场景,例如拍摄设备搭载于飞行器、地面端的电影录制、运动赛况的实时录制等场景。

本发明中的拍摄设备可以预留多种类型的接口,可支持多种类型的外接存储介质,方便用户选择。该拍摄设备可以是移动终端、平板电脑、数码相机、单反相机等具有拍摄功能的装置。

为解决写入速度的可靠性较低的问题,本发明实施主要提供以下技术方案:

1、拍摄设备采用多个存储介质。

存储介质可以采用非易失性存储器,存储介质的数量可以配置最少两个,可以是多种类型的存储介质的组合,存储介质的容量可相同或不相同,具体的存储介质的数量、类型或容量本文均不作限定。另外,各存储介质可支持内置或外接扩展等方式,具体的安装方式也不限定。

2、根据预设选择规则选择用于存储视频数据的存储介质。

例如,该预设选择规则可以是,根据存储介质的实际写入速度、当前的存储模式或拍摄的视频码率等选择合适的存储介质,以适应视频数据的写入速度,将拍摄设备的写性能发挥到最大。

需要说明的是,选择录像阶段用于存储视频数据的存储介质需要考虑的是:实际写入速度需要足够支持录像的存储介质。在后期需要选择长期保存视频数据的存储介质时需要考虑的则是:存储介质的空闲容量,而不用考虑实际写入速度。可以理解的是,选择录像时用的存储介质和选择存储用的介质可以相同或不同,或者有交集,即可以将录像时使用的存储介质中的视频数据部分或全部迁移至其他存储介质,也可以不迁移,继续保存在录像时使用的存储介质中。

请参照图1,以下对本发明实施例中的一种数据存储的方法进行描述,所述拍摄设备包括包括n个存储介质,其中,n为大于或等于2的正整数,n各存储介质至少包括内部存储介质、和外部存储介质中的一种,存储介质的类型可相同或不同,本发明实施例包括:

101、在拍摄之前,根据预设选择规则在所述n个存储介质中选择用于存储拍摄设备所拍摄的视频数据的第一目标存储介质;

所述预设选择规则至少包括以下项之一:根据所述拍摄设备当前拍摄设定的视频码率选择所述第一目标存储介质,根据所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质,根据所述拍摄设备当前拍摄设定的视频码率、以及所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质根据均衡算法选择所述第一目标存储介质,或根据所述拍摄设备中内置的应用计算得到所述第一目标存储介质。

102、将所述拍摄设备拍摄的视频数据写入所述第一目标存储介质。

可选的,在一些发明实施例中,为实现后期对存储的视频文件进行针对性、有效的修复,还可以在存储上述视频数据过程中,对相应视频数据的存储信息进行记录和备份,具体体现为:

在所述拍摄设备拍摄过程中,为拍摄的视频数据建立索引文件,所述索引文件包括所述视频数据的索引信息;

采用乒乓交替方式将所述索引文件写入所述第一目标存储介质和/或备用存储介质。其中,乒乓交替方式是指每次只更新第一目标存储介质中的一个存储介质的索引信息,从而避免在更新的瞬间断电导致的信息异常等情况。另外,通过将索引文件同时写入备用存储介质实现对索引文件的备份,能够进一步加强数据备份机制。

可选的,所述索引文件包括至少一个索引信息,每个所述索引信息包括索引号、帧数据的时间戳、帧数据在所述视频数据中的偏移以及帧数据的长度,还可以包括存储帧数据的存储介质的编号。可选的,索引信息可以是针对i帧、p帧或b帧中的至少一个的写入记录,例如同时针对i帧、p帧和b帧进行记录时,则后期可以根据i帧、p帧和b帧的时间戳等信息形成完整的视频文件时,相较于只针对i帧、p帧和b帧中的一种或两种类型的帧记录,在拼接帧数据时不容易出错。

可选的,在存储拍摄视频的过程中,还可以根据所述索引文件对所述视频数据定时进行增量备份或全备份。例如,可以采用快照或类似技术进行备份操作,备份的时刻可以根据用户需求或由软件配置,可以采用第三方的备份软件实现增量备份或全备份,具体不作限定。

其中,全备份是指对本次备份时刻之前的所有数据进行一次备份,或者是基础备份。增量备份是指对上一次备份时刻到本次备份时刻之间的差异数据进行备份,即在前一次备份的基础上进行的增量备份。

本发明实施例中,在拍摄之前根据预设选择规则动态的选择适合写入拍摄数据的第一目标存储介质,有效提高写入速度的可靠性以及录象流水过程的流畅性,避免写入速度不足导致的卡顿、画面不流畅等问题。

具体的数据存储过程可参考图2所示的流程示意图,本处不作赘述。

可选的,在一些发明实施例中,在拍摄之前,为适应视频数据的写入速度,可以根据存储模式和视频码率选择第一目标存储介质,具体为:

在拍摄之前,根据目的存储介质和所述拍摄设备当前拍摄设定的视频码率计算将拍摄的视频数据写入目的存储介质所需的理论写入速度,所述目的存储介质为所述拍摄设备当前设定的存储模式对应的用于存储所述视频数据的存储介质;

根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的第一目标存储介质。一定程度上能够提高视频数据的写入速度。

可选的,在一些发明实施例中,由于拍摄设备的存储介质的写入速度、型号等参数会有所不同,可以为一个拍摄设备配置n个存储介质,其中,n为大于或等于2的正整数。例如,可能存在某些存储介质无法达到当前的写入速度,则可以同时选择多个存储介质来并行写入视频数据以适应当前视频数据的写入速度,在拍摄完毕后,可以将存储在各存储介质中的视频数据合并为完整的视频文件。由此可见,在拍摄之前,可以根据存储介质的写入速度、和所述理论写入速度选择第一目标存储介质,则在根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的第一目标存储介质时,至少满足以下情况之一:

1、若所述n个存储介质中的至少2个存储介质的实际写入速度均大于或等于所述理论写入速度,则按照用户配置信息或均衡算法选择所述第一目标存储介质。

举例来说,若有2个存储介质的实际写入速度均大于或等于理论写入速度,则可以采用均衡算法选择其中一个,或者同时选择这两个。n个存储介质中每个存储介质的实际写入速度均大于或等于理论写入速度时,同理,不作赘述。

2、若所述n个存储介质中的每个存储介质的实际写入速度均小于所述理论写入速度,且所述n个存储介质中的至少2个存储介质的实际写入速度总和大于或等于所述理论写入速度,则从所述至少2个存储介质中选择至少2个目的存储介质作为所述第一目标存储介质。

进一步的,按照均衡算法将所述视频数据分为至少两块数据,并将所述至少两块数据分别写入所述至少2个目的存储介质,在所述拍摄设备的空闲时间或低负载时,将写入所述至少2个目的存储介质的所述至少两块数据合并,并迁移至所述n个存储介质中的第二目标存储介质,该第二目标存储介质为n各存储介质中的任意存储介质,可以是除所述至少2个目的存储介质之外的任意存储介质,可以是除所述至少2个目的存储介质之外的任意存储介质,可以是内部存储介质,也可以是外部存储介质,也可以是内部存储介质与外部存储介质的组合,具体的存储介质数量、类型或组合方式均不作限定。

其中,合并的过程为:读取所述至少两块数据中各数据的索引信息,然后根据所述至少两块数据中每块数据对应的索引信息,按照帧数据的时间戳将所述至少两块数据拼接,形成一个视频文件。可以理解的是,不管是针对待修复数据的合并、还是针对存储于多个存储介质的多块数据的合并等类似的数据合并场景,均可参考此处说明,后文类似之处均不再赘述。

3、若所述n个存储介质中,仅有1个存储介质的实际写入速度大于或等于所述理论写入速度,则将实际写入速度均大于或等于所述理论写入速度的存储介质作为临时存储介质。

进一步的,将所述视频数据写入所述临时存储介质;

在所述拍摄设备的空闲时间或低负载时,将写入所述临时存储介质的所述视频数据迁移至所述n个存储介质中除所述临时存储介质之外的第三目标存储介质,该第三目标存储介质由用户自行选择。

在第3种情况下,若当前拍摄设备的存储模式为自动存储模式,则可以不用对写入该临时存储介质的视频数据进行迁移,仍存储于该临时存储介质,即将该临时存储介质作为长期保存视频数据的上述第一目标存储介质。

可选的,在一些发明实施例中,为提高写入视频数据的稳定性,在拍摄过程中,为视频数据建立索引文件之后,所述采用乒乓交替方式将所述索引文件写入所述第一目标存储介质中之前,本申请还可以进行写入速度的监控,并提供灵活的异常处理机制,例如:

一、根据写队列当前的占用率判断写操作是否异常。

具体为:按队列管理方式对所述视频数据进行监控;

在编码完成的帧数据进入写队列之前,判断所述写队列当前的占用率高于第一阈值时,则确定写操作异常;

在确定写操作异常后,则根据所述预设选择规则从所述n个存储介质中选择第四目标存储介质,将未进入所述写队列的已编码的帧数据写入所述第四目标存储介质。

二、实时监测写入状态。

在写入状态异常(例如,进入写入速度慢区、死区、其他外界突发因素导致的无法写入)时,切换到备份存储介质,进一步提高数据的稳定性和完整性。

具体为:在将所述拍摄设备拍摄的视频数据写入所述第一目标存储介质的过程中,实时监测写入状态;

若监测到将所述拍摄设备拍摄的视频数据无法写入所述第一目标存储介质,则将第一目标存储介质切换为备用存储介质,将所述拍摄设备拍摄的视频数据写入所述备用存储介质,以便在所述拍摄设备的空闲时间或低负载时,通过所述拍摄设备内置的应用或用户配置方式将写入所述备用存储介质中的帧数据与写入所述第一目标存储介质的帧数据合并,形成一个视频文件。

可选的,在一些发明实施例中,还可以根据存储模式和写入速度选择第一目标存储介质,故根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的所述第一目标存储介质,至少满足以下之一:

若所述拍摄设备的外部存储介质的实际写入速度小于所述理论写入速度,且所述拍摄设备当前设定的存储模式为外部存储模式,则选择所述拍摄设备的内部存储介质作为所述第一目标存储介质;

若所述拍摄设备的外部存储介质的实际写入速度大于或等于所述理论写入速度,且所述拍摄设备当前设定的存储模式为内部存储模式,或当前设定的存储模式为自动模式,则选择所述内部存储介质作为所述第一目标存储介质;

或者,若所述拍摄设备的外部存储介质的实际写入速度大于或等于所述理论写入速度,且所述拍摄设备当前设定的存储模式为外部存储模式,则选择所述外部存储介质作为所述第一目标存储介质。

可选的,在一些发明实施例中,当所述拍摄设备当前设定的存储模式为外部存储模式,且选择所述内部存储介质作为所述第一目标存储介质时,所述方法还包括:

在将所述视频数据写入所述内部存储介质时,将写入所述内部存储介质中的视频数据同步至所述外部存储介质。通过本可能的设计,无需等到拍摄停止后再同步,可以缩短用户等待至同步到外部存储介质的时间。

并且,写入所述内部存储介质,和同步至外部存储介质为两个任务,可以为这两个任务设置优先级,以保证同步不影响拍摄的效率。另外,若出现了内部存储介质的部分区域速度不够,可以将其他视频数据临时放到外部存储介质,最终做修复,从而保证数据的可用性。

可选的,在一些发明实施例中,在将所述视频数据写入所述内部存储介质过程中,当所述内部存储介质的实际写入速度低于所述理论写入速度时,则将未写入所述内部存储介质的待修复数据写入所述外部存储介质,以便通过所述拍摄设备内置的应用或用户配置方式将所述待修复数据写入所述内部存储介质。其中,内置的应用可以是拍摄设备的交互界面,例如虚拟按钮或者物理按钮,用户配置方式一般通过内置的应用(英文全称:application,英文简称:app)或者物理按钮来响应用户的指令。

可选的,在一些发明实施例中,在选择所述外部存储介质作为所述第一目标存储介质时,若视频数据无法写入所述外部存储介质,则将第一目标存储介质切换为所述内部存储介质,并在所述内部存储介质中记录切换时刻之后写入所述内部存储介质中的帧数据。在所述拍摄设备的空闲时间或低负载时,再通过所述拍摄设备内置的应用或用户配置方式将写入所述内部存储介质中的帧数据与写入所述外部存储介质的帧数据合并,并迁移至备用存储介质。合并的方式不再赘述。

通过提供灵活的存储机制,可以应付多种写入受限的场景,从而保证数据的完整度和有效性。

可选的,在一些发明实施例中,在完成拍摄后,对需要修复的视频数据进行修复时,考虑到视频文件的大小不一,可以根据存储介质的实际空闲容量来选择用于存储修复后的视频文件,具体为:

从所述外部存储介质和所述内部存储介质中读取所述索引文件,从所述索引文件中提取目标索引信息;例如可以选择索引信息最完整且修复信息最多的索引信息作为目标索引信息,以减少合并多个修复数据的操作。

根据均衡算法选择用于存储修复所述待修复数据后的所述视频数据的第五目标存储介质,并根据所述目标索引信息获取所述待修复数据,即根据目标索引信息的指示去对应的存储介质中提取相应的待修复数据。

使用所述待修复数据对所述视频数据进行修复,以及将修复后的所述视频数据写入所述第五目标存储介质。该修复后的所述视频数据为最终合并后的完整视频文件。其中,第五目标存储介质可以是n各存储介质中的任意存储介质,可以是内部存储介质,也可以是外部存储介质,也可以是内部存储介质与外部存储介质的组合,具体的存储介质数量、类型或组合方式均不作限定。

例如,该第五目标存储介质可以是空闲容量最多的存储介质,也可以由用户指定第五目标存储介质,原则上要能够保证空闲容量大于或等于修复后的所述视频数据的实际大小。可选的,为尽可能的减少数据的迁移,在修复后的所述视频数据写入所述第五目标存储介质时,还可以将修复的数据都写入数据大小最大的存储介质,即将数据大小最大的存储介质作为第五目标存储介质。

可选的,所述目标索引信息包括索引号、帧头信息、所述待修复数据中每个帧数据存储的索引信息、以及切换时刻之后写入所述内部存储介质中的帧数据的索引信息,还可以包括存储所述拍摄设备拍摄的视频数据的存储介质的编号,以便在拼接帧数据时,能够有序的从对应的存储介质中提取帧数据,从而提高处理效率。通过提供每帧数据的存储信息,使得后期在修复时可以快速、有针对性、准确的定位到想要修复的数据。可以理解的是,切换时刻之后写入所述内部存储介质中的帧数据的索引信息主要是用在:将各分块的视频数据存储存储于多个不同的存储介质时,保证后续修复视频文件时,能够重组准确的帧上下文,使得按照拍摄时的帧数据的顺序进行修复,从而保证视频文件的完整性。其中,切换时刻可以包括:内/外部存储介质之间的切换时刻,异常(例如拔出正在写入视频数据的外部存储介质、断电、存储介质故障、写入存储空间不足等)时切换存储介质的切换时刻,具体不作限定。

可选的,在一些发明实施例中,为进一步的提高修复数据的效率,还可以先获取待修复数据的所有索引信息,然后使用这些索引信息为待修复数据建立一个索引表,实现在修复数据时,可以直接调用、定位对应的存储介质中待修复的数据,有效保证数据的准确度,以及缩短修复数据的查找时间。即上述目标索引信息包括至少一个索引信息,所述从所述索引文件中提取目标索引信息之后,所述使用所述待修复数据对所述视频数据进行修复之前,所述方法还包括:

根据索引号的编排规则,将至少一个索引信息重组为一个索引表;

然后根据所述索引表指示的所述待修复数据中帧数据的时间戳,对所述视频数据进行修复,具体来说,则是按照帧数据的顺序将多个帧数据拼接,然后替换原视频文件中故障的数据,从而形成一个完整的视频文件。

可选的,在一些发明实施例中,存储介质的实际写入速度通过以下步骤得到:

通过读取存储介质的状态寄存器,或对存储介质进行读写速度测试,得到存储介质的实际写入速度,所述读写速度包括连续写入速度和随机写入速度。

例如,所述目的存储介质为外部存储介质时,可执行对外部存储介质进行写入速度的测试,即通过读取所述目的存储介质的状态寄存器,或对所述目的存储介质进行读写速度测试,得到所述目的介质的实际写入速度,所述读写速度包括连续写入速度和随机写入速度。

请参照图3,以下对本发明实施例中用于执行上述图1或图2中数据存储的方法的拍摄设备30进行描述,需要说明的是,本实施例中,处理模块301对应的实体设备可以是处理器,获取模块302对应的实体设备可以是输入/输出单元,写模块303对应的实体设备可以是控制器,处理器可通过调用存储在存储介质中的程序代码执行上述图1和图2所对应的方法。其中,处理模块301、获取模块302、写模块303可以分别通过专有电路来实现,具体实现方式参见现有技术,这里不作赘述。当拍摄设备30具有如图5所示的结构时,图5中的处理器、发射器和接收器实现前述对应该装置的装置实施例提供的处理模块、获取模块和写模块相同或相似的功能,图5中的存储器存储处理器执行上述数据存储的方法时需要调用的程序代码。

本发明实施例中,所述拍摄设备30包括存储模块,处理模块以及写模块;

所述存储模块包括n个存储介质,其中,n为大于或等于2的正整数;

所述处理模块301,用于在拍摄之前,根据预设选择规则在所述n个存储介质中选择用于存储拍摄设备所拍摄的视频数据的第一目标存储介质;

获取模块302,用于获取所述拍摄设备拍摄的视频数据;

所述写模块303,用于将所述拍摄设备拍摄的视频数据写入所述处理模块301选择的所述第一目标存储介质;

所述预设选择规则至少包括以下项之一:根据所述拍摄设备当前拍摄设定的视频码率选择所述第一目标存储介质,根据所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质,根据所述拍摄设备当前拍摄设定的视频码率、以及所述拍摄设备中各存储介质的实际写入速度选择所述第一目标存储介质根据均衡算法选择所述第一目标存储介质,或根据所述拍摄设备中内置的应用计算得到所述第一目标存储介质。

可选的,在一些发明实施例中,所述处理模块301还用于:

在所述拍摄设备拍摄过程中,为拍摄的视频数据建立索引文件,所述索引文件包括所述视频数据的索引信息;

采用乒乓交替方式通过所述写模块303将所述索引文件写入所述第一目标存储介质和/或备用存储介质。

进一步,所述处理模块301还用于:

根据所述索引文件对所述视频数据定时进行增量备份或全备份。

其中,所述索引文件包括至少一个索引信息,每个所述索引信息包括索引号、帧数据的时间戳、帧数据在所述视频数据中的偏移以及帧数据的长度,还可以包括存储帧数据的存储介质的编号。

可选的,在一些发明实施例中,所述处理模块301具体用于:

在拍摄之前,根据目的存储介质和所述拍摄设备当前拍摄设定的视频码率计算将拍摄的视频数据写入目的存储介质所需的理论写入速度,所述目的存储介质为所述拍摄设备当前设定的存储模式对应的用于存储所述视频数据的存储介质;

根据所述理论写入速度和/或所述拍摄设备当前设定的存储模式,确定用于存储视频数据的第一目标存储介质。

可选的,在一些发明实施例中,所述拍摄设备包括n个存储介质,其中,n为大于或等于2的正整数;所述处理模块301具体用于执行以下之一:

若所述n个存储介质中的至少2个存储介质的实际写入速度均大于或等于所述理论写入速度,则按照用户配置信息或均衡算法选择所述第一目标存储介质;

若所述n个存储介质中的每个存储介质的实际写入速度均小于所述理论写入速度,且所述n个存储介质中的至少2个存储介质的实际写入速度总和大于或等于所述理论写入速度,则从所述至少2个存储介质中选择至少2个目的存储介质作为所述第一目标存储介质;按照均衡算法将所述视频数据分为至少两块数据,并通过所述写模块303将所述至少两块数据分别写入所述至少2个目的存储介质,并在所述拍摄设备的空闲时间或低负载时,将写入所述至少2个目的存储介质的所述至少两块数据合并后,通过所述写模块303迁移至所述n个存储介质中的第二目标存储介质,该第二目标存储介质为n各存储介质中的任意存储介质,可以是除所述至少2个目的存储介质之外的任意存储介质,可以是内部存储介质,也可以是外部存储介质,也可以是内部存储介质与外部存储介质的组合,具体的存储介质数量、类型或组合方式均不作限定。

或者,若所述n个存储介质中,仅有1个存储介质的实际写入速度大于或等于所述理论写入速度,则将实际写入速度均大于或等于所述理论写入速度的存储介质作为临时存储介质,通过所述写模块303将所述视频数据写入所述临时存储介质,并在所述拍摄设备的空闲时间或低负载时,将写入所述临时存储介质的所述视频数据通过所述写模块303迁移至所述n个存储介质中除所述临时存储介质之外的第三目标存储介质,该第三目标存储介质由用户自行选择,或者,如果当前拍摄设备的存储模式为自动存储模式,则可以不用迁移,继续存储在该临时存储介质中。

可选的,在一些发明实施例中,所述拍摄设备30还包括监控模块,在拍摄过程中,所述处理模块301为视频数据建立索引文件之后,采用乒乓交替方式通过所述写模块303将所述视频数据和所述索引文件写入拍摄设备的存储介质中之前,还用于:

通过所述监控模块按队列管理方式对所述视频数据进行监控;

在编码完成的帧数据进入写队列之前,判断所述写队列当前的占用率高于第一阈值时,则确定写操作异常;

根据所述预设选择规则从所述n个存储介质中选择第四目标存储介质,通过所述写模块303将未进入所述写队列的已编码的帧数据写入所述第四目标存储介质。

可选的,在一些发明实施例中,所述处理模块301至少还执行以下之一:

若所述拍摄设备的外部存储介质的实际写入速度小于所述理论写入速度,且所述拍摄设备当前设定的存储模式为外部存储模式,则选择所述拍摄设备的内部存储介质作为所述第一目标存储介质;

若所述拍摄设备的外部存储介质的实际写入速度大于或等于所述理论写入速度,且所述拍摄设备当前设定的存储模式为内部存储模式,或当前设定的存储模式为自动模式,则选择所述内部存储介质作为所述第一目标存储介质;

或者,若所述拍摄设备的外部存储介质的实际写入速度大于或等于所述理论写入速度,且所述拍摄设备当前设定的存储模式为外部存储模式,则选择所述外部存储介质作为所述第一目标存储介质。

可选的,在一些发明实施例中,当所述拍摄设备当前设定的存储模式为外部存储模式,且选择所述内部存储介质作为所述第一目标存储介质时,所述处理模块301还用于:

在将所述视频数据写入所述内部存储介质时,通过所述写模块303将写入所述内部存储介质中的视频数据同步至所述外部存储介质。

可选的,在一些发明实施例中,在将所述视频数据写入所述内部存储介质过程中,当所述内部存储介质的实际写入速度低于所述理论写入速度时,则所述处理模块301通过所述写模块303将未写入所述内部存储介质的待修复数据写入所述外部存储介质,以便在拍摄设备空闲或负载较小时,通过所述拍摄设备内置的应用或用户配置方式将所述待修复数据写入所述内部存储介质。

可选的,在一些发明实施例中,在选择所述外部存储介质作为所述第一目标存储介质时,若视频数据无法写入所述外部存储介质,则所述处理模块301将第一目标存储介质切换为所述内部存储介质,并在所述内部存储介质中记录切换时刻之后写入所述内部存储介质中的帧数据。在所述拍摄设备的空闲时间或低负载时,再通过所述拍摄设备内置的应用或用户配置方式将写入所述内部存储介质中的帧数据与写入所述外部存储介质的帧数据合并,并迁移至备用存储介质。

或者,通过所述监控模块用于在将所述拍摄设备拍摄的视频数据写入所述第一目标存储介质的过程中,实时监测写入状态;

若所述监控模块监测到将所述拍摄设备拍摄的视频数据无法写入所述第一目标存储介质,则所述处理模块还用于将第一目标存储介质切换为备用存储介质,通过所述写模块将所述拍摄设备拍摄的视频数据写入所述备用存储介质,以便在所述拍摄设备的空闲时间或低负载时,通过所述拍摄设备内置的应用或用户配置方式将写入所述备用存储介质中的帧数据与写入所述第一目标存储介质的帧数据合并,形成一个视频文件。

可选的,在一些发明实施例中,所述处理模块301还用于:

从所述外部存储介质和所述内部存储介质中读取所述索引文件,从所述索引文件中提取目标索引信息;

根据均衡算法选择用于存储修复所述待修复数据后的所述视频数据的第五目标存储介质,并根据所述目标索引信息获取所述待修复数据;

使用所述待修复数据对所述视频数据进行修复,以及通过所述写模块303将修复后的所述视频数据写入所述第五目标存储介质。

其中,第五目标存储介质可以是n各存储介质中的任意存储介质,可以是内部存储介质,也可以是外部存储介质,也可以是内部存储介质与外部存储介质的组合,具体的存储介质数量、类型或组合方式均不作限定。

可选的,所述目标索引信息包括索引号、帧头信息、所述待修复数据中每个帧数据存储的索引信息、以及切换时刻之后写入所述内部存储介质中的帧数据的索引信息,还可以包括存储所述拍摄设备拍摄的视频数据的存储介质的编号。

可选的,在一些发明实施例中,所述目标索引信息包括至少一个索引信息,所述处理模块301在从所述索引文件中提取目标索引信息之后,使用所述待修复数据对所述视频数据进行修复之前,还用于:

根据索引号的编排规则,将至少一个索引信息重组为一个索引表;

所述使用所述待修复数据对所述视频数据进行修复,包括:

根据所述索引表指示的所述待修复数据中帧数据的时间戳,对所述视频数据进行修复。

可选的,在一些发明实施例中,所述处理模块301通过执行以下步骤得到存储介质的实际写入速度:

读取存储介质的状态寄存器,或对存储介质进行读写速度测试,得到存储介质的实际写入速度,所述读写速度包括连续写入速度和随机写入速度。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1