CN109979498A - 磁盘视频数据写入、读取的方法及装置 - Google Patents
磁盘视频数据写入、读取的方法及装置 Download PDFInfo
- Publication number
- CN109979498A CN109979498A CN201910069777.6A CN201910069777A CN109979498A CN 109979498 A CN109979498 A CN 109979498A CN 201910069777 A CN201910069777 A CN 201910069777A CN 109979498 A CN109979498 A CN 109979498A
- Authority
- CN
- China
- Prior art keywords
- disk
- block
- video data
- index
- read
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 2
- 238000013500 data storage Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 4
- 238000004590 computer program Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
- G11B27/105—Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/781—Television signal recording using magnetic recording on disks or drums
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明适用于磁盘存储数据技术领域,提供了一种磁盘视频数据写入、读取的方法及终端设备,该磁盘视频数据写入的方法包括:将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1;根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内;根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块,由于采用索引和数据物理介质分离方式及索引设计方式,顺序写磁盘数据的方式减少了寻址操作,另外在磁盘块内大块写数据减少I/O操作,从而有效提升了写以及读取磁盘效率。
Description
技术领域
本发明属于磁盘存储数据的技术领域,尤其涉及一种磁盘视频数据写入、读取的方法及装置。
背景技术
通常写磁盘需要完成寻址和写数据两部分工作,寻址时间实际上包含两部分:寻道时间和旋转等待时间;磁头定位到磁道的时间为寻道时间,等待盘片转动到正确位置的时间称为旋转等待时间。磁盘寻址的目的是为了找到将要读取的文件的起始扇区,然后在相应的扇区内开始去写数据。相对磁盘寻址,在磁盘相应的扇区内写数据的时间小很多。
然而,现有技术通常写磁盘时采用随机写或采用既定策略跳写方式,导致每次写数据都需要寻址,同时,每次写数据量比较小,增加了磁盘输入/输出(Input/Output,I/O)操作,大大降低了写磁盘效率。
发明内容
有鉴于此,本发明实施例提供了一种磁盘视频数据写入、读取的方法及装置,以解决现有技术中采用随机写或采用既定策略跳写方式,导致每次写数据都需要寻址,同时,每次写数据量比较小,增加了磁盘输入/输出操作,大大降低了写磁盘效率的问题。
本发明实施例的第一方面提供了一种磁盘视频数据写入的方法,包括:
将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1;
根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;
根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内;
根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块。
在一实施例中,每个磁盘块对应一个磁盘块标号;每个磁盘块标号对应一个磁盘块首地址;
所述根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块,包括:
在不同于所述磁盘的存储介质内分配与所述磁盘块标号一一对应的M个连续的存储空间相同的索引块。
在一实施例中,所述根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内,包括:
根据所述磁盘块的存储空间,确定所述视频数据中N个连续帧为待写入数据,所述N大于等于1;
将所述待写入数据和结束标识写入所述磁盘块内。
在一实施例中,一帧视频数据包括媒体头和媒体ES数据,所述媒体头包括视频数据关键信息;
所述结束标识为负载数据长度为零的媒体头。
在一实施例中,所述确定所述视频数据中N个连续帧为待写入数据,包括:
检测所述磁盘块存储所述视频数据的帧的时间是否大于预设时间;当所述磁盘块存储所述视频数据的帧的时间大于预设时间时,确定所述预设时间内的N个连续帧为待写入数据;或者,
确定所述磁盘块的存储空间能够存储的视频数据中连续帧的最大数据P,根据确定出的连续帧的所述最大数据P,确定连续帧的数量N,将N个连续帧作为待写入数据,所述P大于等于1。
在一实施例中,在所述根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块之前,还包括:
确定所述N个连续帧的起始时间和和时间长度;
所述根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块,包括:
根据所述磁盘块标号更新对应标号的索引块的码流标识、所述N个连续帧的起始时间和和时间长度;
在所述根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块之后,还包括:
根据索引块标号确定下一索引块为待更新索引块。
在一实施例中,当检测到所述磁盘的存储空间用完时,删除所述磁盘中存储视频数据时间最早的磁盘块中保存的视频数据,同时更新所述磁盘块的磁盘块标号对应标号的索引块。
本发明实施例的第二方面提供了一种磁盘视频数据读取的方法,包括:
根据预设索引列表以及待读取视频数据,确定预设存储介质中待读取索引块,所述预设索引列表保存所述预设存储介质中全部索引块的索引块标号与对应的码流标识;
读取所述待读取索引块,获得码流标识、所述索引块的索引块标号对应的磁盘块中保存的N个连续帧的起始时间和时间长度,每个所述索引块对应一个索引块标号;
根据所述码流标识、所述N个连续帧的起始时间和时间长度,检测所述待读取索引块是否为待读取视频数据对应的索引块;
当所述待读取索引块为所述待读取视频数据对应的索引块,根据所述待读取索引块标号确定对应标号的所述磁盘块;
读取所述磁盘块,获取所述磁盘块中保存的媒体头以及结束标识;
根据所述媒体头以及结束标识,解析所述磁盘块中的视频数据,读取所述视频数据。
本发明实施例的第三方面提供了一种磁盘视频数据写入的装置,包括:
划分模块,用于将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1;
所述划分模块,还用于根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;
写入模块,用于根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内;
更新模块,用于根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块。
本发明实施例的第四方面提供了一种磁盘视频数据读取的装置,包括:
确定模块,用于根据预设索引列表以及待读取视频数据,确定预设存储介质中待读取索引块,所述预设索引列表保存所述预设存储介质中全部索引块的索引块标号与对应的码流标识;
读取模块,用于读取所述待读取索引块,获得码流标识、所述索引块的索引块标号对应的磁盘块中保存的N个连续帧的起始时间和时间长度,每个所述索引块对应一个索引块标号;
检测模块,用于根据所述码流标识、所述N个连续帧的起始时间和时间长度,检测所述待读取索引块是否为待读取视频数据对应的索引块;
所述确定模块,还用于当所述待读取索引块为所述待读取视频数据对应的索引块,根据所述待读取索引块标号确定对应标号的所述磁盘块;
获取模块,用于读取所述磁盘块,获取所述磁盘块中保存的媒体头以及结束标识;
所述读取模块,还用于根据所述媒体头以及结束标识,解析所述磁盘块中的视频数据,读取所述视频数据。
本发明实施例与现有技术相比存在的有益效果是:本实施例采用索引和数据物理介质分离方式及索引设计方式,即索引和数据不在同一个存储区,顺序写磁盘数据的方式减少了寻址操作,另外在磁盘块内大块写数据减少I/O操作,从而有效提升了写以及读取磁盘效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种磁盘视频数据写入的方法的实现流程示意图;
图2是本发明实施例提供的磁盘和索引块保存数据的示意图;
图3是本发明实施例提供的另一种磁盘视频数据写入的方法的实现流程示意图;
图4是本发明实施例提供的一种磁盘视频数据读取的方法的实现流程示意图;
图5是本发明实施例提供的磁盘视频数据写入的装置的示例图;
图6是本发明实施例提供的磁盘视频数据读取的装置的示意图;
图7是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
本发明实施例提供一种磁盘视频数据写入的方法,如图1所示,该方法包括以下步骤:
步骤101,将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1。
可选的,在步骤101之前,先格式化磁盘。
可选的,每个磁盘块对应一个磁盘块标号,每个磁盘块标号对应一个磁盘块首地址。每个磁盘块的存储空间可以为第一预设存储空间,例如每个磁盘块的存储空间可以为1M,在本实施例中不限定每个磁盘块的存储空间,可以根据需求进行设定。根据磁盘的容量将磁盘划分为若干个1M空间的磁盘块,例如,如图2所示,磁盘的容量为4T,则可以将磁盘划分为4194304(4*1024*1024)个1M的硬盘块。
步骤102,根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块。
可选的,不同于所述磁盘的存储介质可以为第一存储介质。在一实施例中,第一存储介质可以为现有的存储数据的载体,例如第一存储介质可以为flash存储介质。
可选的,在不同于所述磁盘的存储介质内分配与所述磁盘块标号一一对应的M个连续的存储空间相同的索引块。
可选的,每个索引块的存储空间可以为第二预设存储空间,例如每个索引块的存储空间可以为8Byte,在本实施例中不限定每个索引块的存储空间,可以根据需求进行设定。
如图2所示,每个索引块的存储空间可以为8Byte,则在flash存储介质中分配与所述磁盘块标号一一对应的连续的32M(即8Byte*4M)索引空间。即一个1M的磁盘块对应flash存储介质中一个8Byte的flash索引块。
步骤103,根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内。
进一步的,如图3所示,步骤103包括以下子步骤:
步骤1031,根据所述磁盘块的存储空间,确定所述视频数据中N个连续帧为待写入数据,所述N大于等于1。
可选的,当磁盘块的存储空间为1M时,则每次最多写1M的数据。
进一步的,检测所述磁盘块存储所述视频数据的帧的时间是否大于预设时间;当所述磁盘块存储所述视频数据的帧的时间大于预设时间时,确定所述预设时间内的N个连续帧为待写入数据;或者,
确定所述磁盘块的存储空间能够存储的视频数据中连续帧的最大数据P,根据确定出的连续帧的所述最大数据P,确定连续帧的数量N,将N个连续帧作为待写入数据,所述P大于等于1。
进一步可选的,磁盘块的存储空间为1M时,则一个磁盘块能够存储的视频数据中连续帧的最大数据M不超过1M。根据每帧包含的字节数,确定视频数据中连续帧的最大数据M个字节最多为N个连续帧。
可选的,预设时间可以根据需求进行设定。例如一个磁盘块最多可以存储60s的视频数据,因此预设时间可以设置为60s。又如一个磁盘块若最多可以存储120s的视频数据,因此预设时间可以设置为120s。
步骤1032,确定所述N个连续帧的起始时间和和时间长度。
可选的,确定每个磁盘块中写入的视频数据的起始时间以及时间长度,即确定所述N个连续帧的起始时间和和时间长度,后续需要将视频数据的起始时间以及时间长度更新到索引块中,以便后续读取视频数据时快速确定对应的索引块以及磁盘块。
步骤1033,将所述待写入数据和结束标识写入所述磁盘块内。
可选的,一个磁盘块内保存的数据为N个连续帧数据以及一个结束标识。
本实施例中在磁盘中写入视频数据,以视频数据的帧为单位,一帧视频数据包括媒体头和媒体ES数据,所述媒体头包括所述视频数据关键信息,所述媒体头可以包括帧类型、分辨率、帧率、负载长度以及设备ID中的至少一种。
所述结束标识为负载数据长度为零的媒体头。
步骤104,根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块。
进一步的,根据所述磁盘块标号更新对应标号的索引块的码流标识、所述N个连续帧的起始时间和和时间长度。码流标识用于区分不同的码流。通过索引块中保存的内容可以确定待读取的视频数据。进一步的,将码流标识与对应的索引块保存在索引块列表中,以便根据不同的码流标识确定所有的索引块,从而通过索引块标号确定对应标号的磁盘块,从而快速读取视频数据。
进一步的,在本步骤执行完毕后,根据索引块标号确定下一索引块为待更新索引块。例如001索引块根据标号对应的001磁盘块更新存储数据后,移到下一个索引块,即索引块002,当下一个磁盘块002存储视频数据后,对应更新索引块002。
进一步的,当检测到所述磁盘的存储空间用完时,即每个磁盘块都存储了视频数据时,删除所述磁盘中存储视频数据时间最早的磁盘块中保存的视频数据,同时更新所述磁盘块的磁盘块标号对应标号的索引块。例如,磁盘块标号按照从小到大的顺序排序,则磁盘的存储空间用完时,删除磁盘块标号最小的磁盘块中保存的视频数据,同时删除磁盘块标号最小的磁盘块对应标号的索引块内存储的数据。
通过具体实验表明,假设每次写1M数据,其中平均寻址时间10ms,写数据时间5ms,磁盘吞吐量足够情况下,采用现有技术,随机写速度为66.7M/s(即1000/(10+5)*1M),采用本实施例提供的方法写入速度可以达到200MB/s(即(1000/5)*1M),写入速度为原有方案的2~3倍。
如果每次写的数据量不定,如每帧音视频数据都写,假设视频数据为50KB,写数据时间可以忽略,则最差情况下写入速度为5MB/s(1000/(10)*50KB),则写入速度为原来的40倍。
本发明实施例提供一种磁盘视频数据写入的方法,通过将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1;根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内;根据各个所述磁盘块内存储的所述视频数据的信息更新对应的索引块。本实施例采用索引和数据物理介质分离方式,即索引和数据不在同一个存储区,顺序写磁盘数据的方式减少了寻址操作,另外在磁盘块内大块写数据减少I/O操作,从而有效提升了写磁盘效率。
本发明实施例提供一种磁盘视频数据读取的方法,如图4所示,该方法包括以下步骤:
步骤401,根据预设索引列表以及待读取视频数据,确定预设存储介质中待读取索引块,所述预设索引列表保存所述预设存储介质中全部索引块的索引块标号与对应的码流标识。
可选的,预设索引列表用于根据不同的码流标识确定连续的待读取视频数据对应的索引块标号。码流标识,用于区分不同的码流,码流(Media Stream)用于区分不同数据源的标识。例如,码流标识1表示摄像机1拍摄的视频数据,码流标识1对应的索引块标号为1、5、8、10,即索引块标号1、5、8、10中保存摄像机1拍摄的视频数据的相关数据信息,码流标识2表示摄像机2拍摄的视频数据,码流标识2对应的索引块标号为3、7、15、100,即索引块标号3、7、15、100中保存摄像机2拍摄的视频数据的相关数据信息。每个索引块中包含码流标识、起始时间与时间长度,如上码流标识2可知索引块标号3、7、15、100,通过索引块标号可以得知该索引块对应的磁盘块位置,结合各个索引块中包含的N个连续帧的起始时间与时间长度,可以得知摄像机2有数据的时间段。如索引块标号3为(0,20),索引块标号7为(20,30),索引块标号15为(50,10),索引块标号100为(60,40),其中(起始时间、时间长度)的单位为秒,说明摄像机2在磁盘内只有一段100s的数据,其中索引3为20s,索引100为40s等。如果各索引块标号中包含的N个连续帧的起始时间不连续,说明有多段数据。
步骤402,读取所述待读取索引块,获得码流标识、所述索引块的索引块标号对应的磁盘块中保存的N个连续帧的起始时间和时间长度,每个所述索引块对应一个索引块标号。
可选的,预设存储介质可以为第一存储介质。在一实施例中,第一存储介质可以为现有的存储数据的载体,例如第一存储介质可以为flash存储介质。
可选的,根据上述实施例提供的磁盘视频数据写入的方法将视频数据写入磁盘中,当需要读取磁盘数据时,首先找到flash索引块,根据索引块中的数据确定要读取的磁盘块。
步骤403,根据所述码流标识、所述N个连续帧的起始时间和时间长度,检测所述待读取索引块是否为待读取视频数据对应的索引块。
可选的,由于磁盘块中保存的视频数据N个连续帧的帧数量不同,视频数据的起始时间和时间长度可能不同,因此需要步骤403检测待读取索引块是否为待读取视频数据对应的索引块。
在一实施例中,若待读取视频数据为0S至50S的视频数据,当前待读取索引块中保存的N个连续帧的起始时间为0S,时间长度为60S,则当前待读取索引块为待读取视频数据对应的索引块。
在另一实施例中,若待读取视频数据为0S至80S的视频数据,当前待读取索引块中保存的N个连续帧的起始时间为0S,时间长度为60S,则当前待读取索引块为待读取视频数据对应的索引块。然而,仅当前待读取的索引块对应的磁盘块中没有包含全部的待读取视频数据,因此需要继续执行步骤407,即读取完当前待读取索引块后,读取步骤401中根据预设索引列表以及待读取视频数据,确定的预设存储介质中待读取索引块,除当前待读取索引块之外的待读取索引块,直到全部获取待读取视频数据。例如,另一待读取索引块中保存的N个连续帧的起始时间为60S,时间长度为30S,则此待读取索引块为待读取视频数据对应的索引块。
步骤404,当所述索引块为所述待读取索引块,根据所述索引块标号确定对应标号的所述磁盘块。
可选的,索引块标号与磁盘块标号一一对应,当索引块标号确定后,对应标号的磁盘块即为待确定的磁盘块。
步骤405,读取所述磁盘块,获取所述磁盘块中保存的媒体头以及结束标识。
可选的,磁盘块中保存的媒体头为一帧视频数据中的媒体头,如图2所示,一帧视频数据包括媒体头和媒体ES数据,所述媒体头包括视频数据关键信息,例如媒体头包括帧类型、分辨率、帧率、负载长度、设备ID等媒体关键信息中的至少一种。可选的,结束标识为负载数据长度为零的媒体头。
步骤406,根据所述媒体头以及结束标识,解析所述磁盘块中的视频数据,读取所述视频数据。
进一步的,如图4所示,读取磁盘视频数据还包括以下步骤。
步骤407,继续读取下一个所述待读取索引块,直到所述待读取视频数据读取完成。
可选的,读取下一所述待读取索引块,按照步骤402至步骤406的方式读取待读取视频数据。
本发明实施例提供一种磁盘视频数据读取的方法,通过读取索引块确定与所述索引块标号对应的磁盘块,从而可以快速定位磁盘块快速读取视频数据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例提供一种磁盘视频数据写入的装置,如图5所示,该装置包括:划分模块501,写入模块502,更新模块503。
划分模块501,用于将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1。
所述划分模块501,还用于根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块。
可选的,每个磁盘块对应一个磁盘块标号;每个磁盘块标号对应一个磁盘块首地址。所述划分模块501,还用于在不同于所述磁盘的存储介质内分配与所述磁盘块标号一一对应的M个连续的存储空间相同的索引块。
写入模块502,用于根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内。
可选的,所述写入模块502,具体用于根据所述磁盘块的存储空间,确定所述视频数据中N个连续帧为待写入数据;将所述待写入数据和结束标识写入所述磁盘块内,所述N大于等于1。
进一步的,所述写入模块502确定N个连续帧为待写入数据时,检测所述磁盘块存储所述视频数据的帧的时间是否大于预设时间;当所述磁盘块存储所述视频数据的帧的时间大于预设时间时,确定所述预设时间内的N个连续帧为待写入数据;或者,
确定所述磁盘块的存储空间能够存储的视频数据中连续帧的最大数据P,根据确定出的连续帧的所述最大数据P,确定连续帧的数量N,将N个连续帧作为待写入数据,所述P大于等于1。
进一步可选的,所述写入模块502确定待写入数据为N个连续帧时可以为:检测所述磁盘块的存储空间是否大于存储N个连续的帧所需的存储空间;当所述磁盘块的存储空间大于存储N个连续的帧所需的存储空间时,检测所述磁盘块的存储空间是否小于或等于存储(N+1)个连续的帧所需的存储空间;当所述磁盘块的存储空间小于或等于存储(N+1)个连续的帧所需的存储空间,确定N个连续帧为待写入数据。
可选的,一帧视频数据包括媒体头和媒体ES数据,所述媒体头包括视频数据关键信息;所述媒体头包括帧类型、分辨率、帧率、负载长度、设备ID等媒体关键信息。
所述结束标识为负载数据长度为零的媒体头。
更新模块503,用于根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块。
可选的,所述装置还用于确定所述N个连续帧的起始时间和和时间长度;然后更新模块503,具体用于根据所述磁盘块标号更新对应标号的索引块的码流标识、所述N个连续帧的起始时间和和时间长度。
本发明实施例提供一种磁盘视频数据写入的装置,通过划分模块将磁盘划分为M个连续的存储空间相同的磁盘块,以及根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;根据各个所述磁盘块的存储空间,写入模块将视频数据按顺序依次写入各个所述磁盘块内;更新模块根据各个所述磁盘块内存储的所述视频数据的信息更新对应的索引块。本实施例采用索引和数据物理介质分离方式及索引块的设计方式,即索引和数据不在同一个存储区,采用顺序写磁盘数据的方式减少了寻址操作,另外在磁盘块内大块写数据减少I/O操作,从而有效提升了写磁盘效率。
本发明实施例提供一种磁盘视频数据读取的装置,如图6所示,该装置包括:确定模块601,读取模块602,检测模块603,获取模块604。
确定模块601,用于根据预设索引列表以及待读取视频数据,确定预设存储介质中待读取索引块,所述预设索引列表保存所述预设存储介质中全部索引块的索引块标号与对应的码流标识。
可选的,预设索引列表用于根据不同的码流标识确定连续的待读取视频数据对应的索引块标号。码流标识,用于区分不同的码流,码流(Media Stream)用于区分不同数据源的标识。例如,码流标识1表示摄像机1拍摄的视频数据,码流标识1对应的索引块标号为1、5、8、10,即索引块标号1、5、8、10中保存摄像机1拍摄的视频数据的相关数据信息,码流标识2表示摄像机2拍摄的视频数据,码流标识2对应的索引块标号为3、7、15、100,即索引块标号3、7、15、100中保存摄像机2拍摄的视频数据的相关数据信息。每个索引块中包含码流标识、起始时间与时间长度,如上码流标识2可知索引块标号3、7、15、100,通过索引块标号可以得知该索引块对应的磁盘块位置,结合各个索引块中包含的N个连续帧的起始时间与时间长度,可以得知摄像机2有数据的时间段。如索引块标号3为(0,20),索引块标号7为(20,30),索引块标号15为(50,10),索引块标号100为(60,40),其中(起始时间、时间长度)的单位为秒,说明摄像机2在磁盘内只有一段100s的数据,其中索引3为20s,索引100为40s等。如果各索引块标号中包含的N个连续帧的起始时间不连续,说明有多段数据。
读取模块602,用于读取所述待读取索引块,获得码流标识、所述索引块的索引块标号对应的磁盘块中保存的N个连续帧的起始时间和时间长度,每个所述索引块对应一个索引块标号。
检测模块603,用于根据所述码流标识、所述N个连续帧的起始时间和时间长度,检测所述待读取索引块是否为待读取视频数据对应的索引块。
可选的,由于磁盘块中保存的视频数据N个连续帧的帧数量不同,视频数据的起始时间和时间长度可能不同,因此需要步骤403检测待读取索引块是否为待读取视频数据对应的索引块。
在一实施例中,若待读取视频数据为0S至50S的视频数据,当前待读取索引块中保存的N个连续帧的起始时间为0S,时间长度为60S,则当前待读取索引块为待读取视频数据对应的索引块。
在另一实施例中,若待读取视频数据为0S至80S的视频数据,当前待读取索引块中保存的N个连续帧的起始时间为0S,时间长度为60S,则当前待读取索引块为待读取视频数据对应的索引块。然而,仅当前待读取的索引块对应的磁盘块中没有包含全部的待读取视频数据,因此需要继续执行步骤407,即读取完当前待读取索引块后,读取步骤401中根据预设索引列表以及待读取视频数据,确定的预设存储介质中待读取索引块,除当前待读取索引块之外的待读取索引块,直到全部获取待读取视频数据。例如,另一待读取索引块中保存的N个连续帧的起始时间为60S,时间长度为30S,则此待读取索引块为待读取视频数据对应的索引块。
所述确定模块601,还用于当所述待读取索引块为所述待读取视频数据对应的索引块,根据所述待读取索引块标号确定对应标号的所述磁盘块。
可选的,索引块标号与磁盘块标号一一对应,当索引块标号确定后,对应标号的磁盘块即为待确定的磁盘块。
获取模块604,用于读取所述磁盘块,获取所述磁盘块中保存的媒体头以及结束标识。
可选的,磁盘块中保存的媒体头为一帧视频数据中的媒体头,如图3所示,一帧视频数据包括媒体头和媒体ES数据,所述媒体头包括视频数据关键信息,例如媒体头包括帧类型、分辨率、帧率、负载长度、设备ID等媒体关键信息中的至少一种。可选的,结束标识为负载数据长度为零的媒体头。
所述读取模块602,用于根据所述媒体头以及结束标识,解析所述磁盘块中的视频数据,读取所述视频数据。
进一步的,所述读取模块602,还用于继续读取下一个所述待读取索引块,直到所述待读取视频数据读取完成。
本发明实施例提供一种磁盘视频数据读取的装置,通过读取索引块确定与所述索引块标号对应的磁盘块,从而可以快速定位磁盘块快速读取视频数据。
图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器701、存储器702以及存储在所述存储器702中并可在所述处理器701上运行的计算机程序703,例如磁盘视频数据写入、读取的程序。所述处理器701执行所述计算机程序703时实现上述磁盘视频数据写入、读取的方法实施例中的步骤,例如图1或图2所示的步骤101至104,或者图4所示的步骤401至步骤407,所述处理器701执行所述计算机程序703时实现上述各装置实施例中各模块的功能,例如图5所示模块501至503或者图6所示模块601至604的功能。
示例性的,所述计算机程序703可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器702中,并由所述处理器701执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序703在所述磁盘视频数据写入、读取的装置或者终端设备7中的执行过程。例如,所述计算机程序703可以被分割成划分模块501,写入模块502,更新模块503,或者确定模块601,读取模块602,检测模块603,获取模块604,各模块具体功能如图5或者图6所示,在此不再一一赘述。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器701、存储器702。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器701可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器702可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器702也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器702还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器702用于存储所述计算机程序以及所述终端设备7所需的其他程序和数据。所述存储器702还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种磁盘视频数据写入方法,其特征在于,包括:
将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1;
根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;
根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内;
根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块。
2.如权利要求1所述的磁盘视频数据写入的方法,其特征在于,每个磁盘块对应一个磁盘块标号;每个磁盘块标号对应一个磁盘块首地址;
所述根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块,包括:
在不同于所述磁盘的存储介质内分配与所述磁盘块标号一一对应的M个连续的存储空间相同的索引块。
3.如权利要求2所述的磁盘视频数据写入的方法,其特征在于,所述根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内,包括:
根据所述磁盘块的存储空间,确定所述视频数据中N个连续帧为待写入数据,所述N大于等于1;
将所述待写入数据和结束标识写入所述磁盘块内。
4.如权利要求3所述的磁盘视频数据写入的方法,其特征在于,
一帧视频数据包括媒体头和媒体ES数据,所述媒体头包括所述视频数据的关键信息;
所述结束标识为负载数据长度为零的媒体头。
5.如权利要求4所述的磁盘视频数据写入的方法,其特征在于,所述确定所述视频数据中N个连续帧为待写入数据,包括:
检测所述磁盘块存储所述视频数据的帧的时间是否大于预设时间;当所述磁盘块存储所述视频数据的帧的时间大于预设时间时,确定所述预设时间内的N个连续帧为待写入数据;或者,
确定所述磁盘块的存储空间能够存储的视频数据中连续帧的最大数据P,根据确定出的连续帧的所述最大数据P,确定连续帧的数量N,将N个连续帧作为待写入数据,所述P大于等于1。
6.如权利要求5所述的磁盘视频数据写入的方法,其特征在于,在所述根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块之前,还包括:
确定所述N个连续帧的起始时间和和时间长度;
所述根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块,包括:
根据所述磁盘块标号更新对应标号的索引块的码流标识、所述N个连续帧的起始时间和和时间长度;
在所述根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块之后,还包括:
根据索引块标号确定下一索引块为待更新索引块。
7.如权利要求1至6中任一项所述的磁盘视频数据写入的方法,其特征在于,
当检测到所述磁盘的存储空间用完时,删除所述磁盘中存储视频数据时间最早的磁盘块中保存的视频数据,同时更新所述磁盘块的磁盘块标号对应标号的索引块。
8.一种磁盘视频数据读取的方法,其特征在于,包括:
根据预设索引列表以及待读取视频数据,确定预设存储介质中待读取索引块,所述预设索引列表保存所述预设存储介质中全部索引块的索引块标号与对应的码流标识;
读取所述待读取索引块,获得码流标识、所述索引块的索引块标号对应的磁盘块中保存的N个连续帧的起始时间和时间长度,每个所述索引块对应一个索引块标号;
根据所述码流标识、所述N个连续帧的起始时间和时间长度,检测所述待读取索引块是否为待读取视频数据对应的索引块;
当所述待读取索引块为所述待读取视频数据对应的索引块,根据所述待读取索引块标号确定对应标号的所述磁盘块;
读取所述磁盘块,获取所述磁盘块中保存的媒体头以及结束标识;
根据所述媒体头以及结束标识,解析所述磁盘块中的视频数据,读取所述视频数据。
9.一种磁盘视频数据写入的装置,其特征在于,包括:
划分模块,用于将磁盘划分为M个连续的存储空间相同的磁盘块,所述M大于等于1;
所述划分模块,还用于根据所述磁盘块的数量在不同于所述磁盘的存储介质内分配与各个所述磁盘块一一对应的连续的索引块;
写入模块,用于根据各个所述磁盘块的存储空间,将视频数据按顺序依次写入各个所述磁盘块内;
更新模块,用于根据各个所述磁盘块内存储的视频数据的信息更新对应的索引块。
10.一种磁盘视频数据读取的装置,其特征在于,包括:
确定模块,用于根据预设索引列表以及待读取视频数据,确定预设存储介质中待读取索引块,所述预设索引列表保存所述预设存储介质中全部索引块的索引块标号与对应的码流标识;
读取模块,用于读取所述待读取索引块,获得码流标识、所述索引块的索引块标号对应的磁盘块中保存的N个连续帧的起始时间和时间长度,每个所述索引块对应一个索引块标号;
检测模块,用于根据所述码流标识、所述N个连续帧的起始时间和时间长度,检测所述待读取索引块是否为待读取视频数据对应的索引块;
所述确定模块,还用于当所述待读取索引块为所述待读取视频数据对应的索引块,根据所述待读取索引块标号确定对应标号的所述磁盘块;
获取模块,用于读取所述磁盘块,获取所述磁盘块中保存的媒体头以及结束标识;
所述读取模块,还用于根据所述媒体头以及结束标识,解析所述磁盘块中的视频数据,读取所述视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910069777.6A CN109979498A (zh) | 2019-01-24 | 2019-01-24 | 磁盘视频数据写入、读取的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910069777.6A CN109979498A (zh) | 2019-01-24 | 2019-01-24 | 磁盘视频数据写入、读取的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109979498A true CN109979498A (zh) | 2019-07-05 |
Family
ID=67076712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910069777.6A Pending CN109979498A (zh) | 2019-01-24 | 2019-01-24 | 磁盘视频数据写入、读取的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109979498A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444152A (zh) * | 2020-03-30 | 2020-07-24 | 北京小米移动软件有限公司 | 文件系统、文件系统访问方法、电子设备及存储介质 |
CN115993938A (zh) * | 2023-03-21 | 2023-04-21 | 苏州浪潮智能科技有限公司 | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262738A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Command and interrupt grouping for a data storage device |
CN104182354A (zh) * | 2014-08-26 | 2014-12-03 | 浙江宇视科技有限公司 | 一种视频管理方法及装置 |
CN105069002A (zh) * | 2014-03-21 | 2015-11-18 | Aupera技术有限公司 | 采用不同类型的存储介质的闪存文件系统及其数据存储方法 |
CN107391030A (zh) * | 2017-06-26 | 2017-11-24 | 广州日滨科技发展有限公司 | 数据存储方法、装置、计算机可读存储介质以及计算机设备 |
CN107704202A (zh) * | 2017-09-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种数据快速读写的方法和装置 |
-
2019
- 2019-01-24 CN CN201910069777.6A patent/CN109979498A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262738A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Command and interrupt grouping for a data storage device |
CN105069002A (zh) * | 2014-03-21 | 2015-11-18 | Aupera技术有限公司 | 采用不同类型的存储介质的闪存文件系统及其数据存储方法 |
CN104182354A (zh) * | 2014-08-26 | 2014-12-03 | 浙江宇视科技有限公司 | 一种视频管理方法及装置 |
CN107391030A (zh) * | 2017-06-26 | 2017-11-24 | 广州日滨科技发展有限公司 | 数据存储方法、装置、计算机可读存储介质以及计算机设备 |
CN107704202A (zh) * | 2017-09-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种数据快速读写的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444152A (zh) * | 2020-03-30 | 2020-07-24 | 北京小米移动软件有限公司 | 文件系统、文件系统访问方法、电子设备及存储介质 |
CN115993938A (zh) * | 2023-03-21 | 2023-04-21 | 苏州浪潮智能科技有限公司 | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 |
CN115993938B (zh) * | 2023-03-21 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3786789A1 (en) | Data read/write method and device, and circular queue | |
US9886352B2 (en) | De-duplicated virtual machine image transfer | |
CN110377226B (zh) | 基于存储引擎bluestore的压缩方法、装置及存储介质 | |
CN108632624B (zh) | 图像数据处理方法、装置、终端设备及可读存储介质 | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
CN108255989B (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
CN113010116B (zh) | 一种数据处理方法、装置、终端设备及可读存储介质 | |
CN109542495A (zh) | 一种软件升级方法及装置 | |
CN109979498A (zh) | 磁盘视频数据写入、读取的方法及装置 | |
CN111381775A (zh) | 硬盘驱动器中多流场景的服务质量保障系统和方法 | |
EP1683001A2 (en) | Drive device and related computer program | |
CN105389126B (zh) | 一种视频监控数据的分块存储系统 | |
CN109783321B (zh) | 监控数据管理方法、装置、终端设备 | |
CN112181275A (zh) | 一种数据处理器及数据处理方法 | |
CN114374392A (zh) | 一种数据压缩存储方法、装置、终端设备及可读存储介质 | |
CN112379835B (zh) | 一种oob区数据提取方法、终端设备及存储介质 | |
CN111625531A (zh) | 基于可编程装置的合并装置、数据合并方法及数据库系统 | |
CN111143240B (zh) | 图像存储方法、系统及终端设备 | |
CN114446330B (zh) | 一种修复mp4文件的方法、装置以及存储介质 | |
US20010032326A1 (en) | Recording method and apparatus, transferring method and apparatus, reproducing method and apparatus, and recording medium | |
CN111198857A (zh) | 一种基于全闪存阵列的数据压缩方法及系统 | |
CN111639055B (zh) | 差分包计算方法、装置、设备及存储介质 | |
CN114550809A (zh) | 多存储卡的测试方法、装置、计算机设备及存储介质 | |
CN114556283A (zh) | 一种数据写入、一致性检查和读取的方法及装置 | |
CN108776578B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190705 |