CN111026890A - 基于索引表的图片数据存储方法、系统、装置和存储介质 - Google Patents
基于索引表的图片数据存储方法、系统、装置和存储介质 Download PDFInfo
- Publication number
- CN111026890A CN111026890A CN201911194660.7A CN201911194660A CN111026890A CN 111026890 A CN111026890 A CN 111026890A CN 201911194660 A CN201911194660 A CN 201911194660A CN 111026890 A CN111026890 A CN 111026890A
- Authority
- CN
- China
- Prior art keywords
- storage unit
- picture data
- index table
- level storage
- level
- 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 61
- 238000013500 data storage Methods 0.000 title claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 51
- 108700007698 Genetic Terminator Regions Proteins 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 20
- 230000008569 process Effects 0.000 abstract description 16
- 238000013508 migration Methods 0.000 abstract description 9
- 230000005012 migration Effects 0.000 abstract description 9
- 210000004027 cell Anatomy 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于索引表的图片数据存储方法、系统、装置和存储介质,所述方法包括配置第一层级存储单元,将图片数据的二进制码流依次写入至所述第二层级存储单元,记录所述图片数据的二进制码流所占用的第二层级存储单元的地址,以及使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号等步骤。通过实施本发明,对大量图片文件的批量读取处理和批量迁移可以达到很高的速度,其处理效率远高于现有技术中将大量图片文件进行碎片化存储的方式。由于第一层级存储单元中所存储的数据是图片数据对应的原始的二进制码流,对图片数据的读写过程都无需对图片数据进行处理,从而节省计算资源和时间。本发明广泛应用于计算机技术领域。
Description
技术领域
本发明涉及计算机技术领域,尤其是一种基于索引表的图片数据存储方法、系统、装置和存储介质。
背景技术
在视频处理领域,经常需要将视频切分为多个图片进行存储。当视频较长或切分密度较大时将导致产生大量的图片数据。这些图片数据所占用的存储空间可能不大,但是可能因数量过多而导致一些麻烦。例如,UNIX系统的文件系统使用inode来记录所存储的各文件的元信息,如果所存储的图片数据的数量过多,可能导致inode资源被耗尽,使得即使仍有大量的可用存储空间但仍无法正常存储图片数据。在对这些图片数据进行读写时,碎片化的图片数据会导致读取和写入的过程非常缓慢,不利于进行批量处理和数据迁移等工作。
发明内容
为了解决上述技术问题,本发明的目的在于提供一种基于索引表的图片数据存储方法、系统、装置和存储介质。
一方面,本发明实施例中包括一种基于索引表的图片数据存储方法,包括以下步骤:
配置第一层级存储单元;所述第一层级存储单元包括多个在物理层上连续的第二层级存储单元;
预留位于最前的多个所述第二层级存储单元用作索引表地址区;
接收图片数据并为其分配编号;
将图片数据的二进制码流依次写入至所述第二层级存储单元;
记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址;
使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号;所述索引表的地址存储于所述索引表地址区内。
进一步地,为所述图片数据所分配的编号,包含所述图片数据的消息摘要。
进一步地,所述将图片数据的二进制码流依次写入至所述第二层级存储单元这一步骤,具体包括:
根据所述索引表地址区内所存储的索引表地址,访问所述索引表;
在所述索引表中存储有所述第二层级存储单元的地址的情况下,根据所存储的第二层级存储单元的地址,确认这些第二层级存储单元当中位于最后的第二层级存储单元;
从所确认的第二层级存储单元的后一第二层级存储单元开始,依次接收所写入的所述二进制码流。
进一步地,所述将图片数据的二进制码流依次写入至所述第二层级存储单元这一步骤,具体还包括:
在所述索引表中未存储所述第二层级存储单元的地址的情况下,从所述索引表地址区的后一第二层级存储单元开始,依次接收所写入的所述二进制码流。
进一步地,所述图片数据存储方法还包括以下步骤:
在所述第一层级存储单元内配置结束符区;所述结束符区占用至少一个第二层级存储单元,且所述结束符区所占用的第二层级存储单元位于所述图片数据所占用的最后一个第二层级存储单元之后;
向所述结束符区内写入具有反向读取不变性的文件结束符。
进一步地,所述图片数据存储方法还包括以下步骤:
从所述结束符区的前一第二层级存储单元开始,依次反向读取各所述第二层级存储单元的存储内容;
从所述结束符区的后一第二层级存储单元开始,依次将读取到的存储内容写入各第二层级存储单元。
进一步地,所述图片数据存储方法还包括以下步骤:
在存在多个第一层级存储单元的情况下,对所有第一层级存储单元进行配置,使得各第一层级存储单元所包括的第二层级存储单元在物理层上连续;
对于位于最前的所述第一层级存储单元,预留位于其最前的多个所述第二层级存储单元用作总索引表地址区;
获取各所述第一层级存储单元对应的索引表的地址,并对各所述索引表进行编号;
使用总索引表将所获取的各索引表的地址以及相应的编号,并将所述总索引表的地址存储在所述总索引表地址区内。
另一方面,本发明实施例中还包括一种基于索引表的图片数据存储系统,包括:
第一模块,用于配置第一层级存储单元;所述第一层级存储单元包括多个在物理层上连续的第二层级存储单元;所述第一层级存储单元中,位于最前的多个所述第二层级存储单元被预留用作索引表地址区;
第二模块,用于接收图片数据并为其分配编号;
第三模块,用于将图片数据的二进制码流依次写入至所述第二层级存储单元;
第四模块,用于记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址;
第五模块,用于使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号;所述索引表的地址存储于所述索引表地址区内。
另一方面,本发明实施例中还包括一种基于索引表的图片数据存储装置,包括存储器和处理器,所述存储器用于提供多个在物理层上连续的第二层级存储单元,这些连续的第二层级存储单元组成第一层级存储单元;所述处理器用于执行与本发明实施例所述方法相应的指令,从而将图片数据存储至所述存储器中。
另一方面,本发明实施例中还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行本发明实施例所述方法。
本发明的有益效果是:第一层级存储单元中所包含的各第二层级存储单元在物理层上是连续的,因此对第一层级存储单元中各第二层级存储单元的寻址速度很快,操作系统或文件系统可以将第一层级存储单元中所存储的图片数据作为一个整体来处理。通过第一层级存储单元存储对应大量图片文件的图片数据时,由于在操作系统层面始终对应一个文件,因此对大量图片文件的批量读取处理和批量迁移可以达到很高的速度,其处理效率远高于现有技术中将大量图片文件进行碎片化存储的方式。由于第一层级存储单元中所存储的数据是图片数据对应的原始的二进制码流,因此无论是将图片数据写入至第一层级存储单元的过程,还是从第一层级存储单元中将图片数据读出的过程,都无需对图片数据进行处理,从而节省计算资源和时间。同时,由于各图片数据在第一层级存储单元中的地址信息和编号被存储在索引表中,而索引表可以与第一层级存储单元独立存储和传递,因此便于通过将索引表公开允许访问的方式,实现对第一层级存储单元所存储的图片数据的共享。
附图说明
图1为实施例中所述图片数据存储方法的流程图;
图2为实施例中所述第一层级存储单元的结构示意图以及从所述第一层级存储单元中读取图片数据的原理图;
图3为实施例中将图片数据的二进制码流依次写入至所述第二层级存储单元这一过程的原理图;
图4为实施例中所述结束符区的位置示意图;
图5为实施例中对第一层级存储单元进行反向读取和写入的原理图;
图6为实施例中对第一层级存储单元进行反向读取和写入所取得的效果示意图;
图7为实施例中对多个第一层级存储单元进行配置的效果示意图。
具体实施方式
实施例1
本实施例中所述基于索引表的地址的图片数据存储方法,如图1所示,包括以下步骤:
S1.配置第一层级存储单元;所述第一层级存储单元包括多个在物理层上连续的第二层级存储单元;
S2.预留位于最前的多个所述第二层级存储单元用作索引表地址区;
S3.接收图片数据并为其分配编号;
S4.将图片数据的二进制码流依次写入至所述第二层级存储单元;
S5.记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址;
S6.使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号;所述索引表的地址存储于所述索引表地址区内。
所述步骤S1-S6的具体实施方式如下:
S1.识别所使用的存储器件的类型,例如磁盘、NAND FLASH或NOR FLASH等,根据所使用的存储器件的工作原理以及具体的硬件型号,确认存储器件在物理层面各个层级的存储单元。
例如,对于磁盘,其物理层面的最小存储单元是扇区,一个扇区的容量通常是512byte,因此当执行本实施例中的图片数据存储方法时,可以将磁盘的扇区定义为步骤S1中的第二层级存储单元。当使用Windows等操作系统中所包含的文件系统对磁盘进行管理和使用时,其对磁盘的最小单位是簇,一个簇可以是2、4、8、16、32或64个连续的扇区,Windows操作系统中的簇虽然满足步骤S1中的第一层级存储单元的定义,但是Windows操作系统中的文件操作系统并不允许用户直接对一个簇中的某个具体的扇区进行读写,只能对整个簇进行读写,这可能会为本实施例中步骤S1-S6的执行带来困难,但本领域技术人员可以凭借现有的计算机知识,通过使用VC++工具中的CreateFile()函数等方式来在Windows操作系统上直接访问磁盘的某个扇区。而DOS等操作系统以及一些磁盘逻辑管理软件则可以直接对磁盘的扇区进行读写。
对于磁盘来说,虽然其物理层面的最小存储单元是扇区,但是通过对从扇区读出的数据或者向扇区写入的数据中各字节进行编号或计数,可以识别出一个扇区中的数据中的各具体的字节。基于同样的道理,可以识别出一个扇区中的数据中的各具体的比特。因此,通过这样的方式,可以对磁盘中所存储的某个具体的比特位进行操作,以这个比特位的读取为例,具体方式是:访问这个比特位所在的扇区,读取该扇区的全部数据,其数据量为512byte,即4096bit,再从这些比特位中寻找到特定位置的比特位,实现对该比特位的读取。
综上,当使用磁盘来存储图片数据时,可以将磁盘中的比特位定义为步骤S1中所述的第二层级存储单元,而将可以存储多个连续比特位的磁面甚至整个磁盘定义为步骤S1中所述的第一层级存储单元。本实施例中,所述第一层级存储单元可以是磁盘中由连续比特位组成的存储空间,其大小可以根据所存储的图片数据的大小而设定,例如设为50MB。
对于NAND FLASH来说,其物理层面的最小操作单元是页(Page),一般来说一个页的数据容量为528Byte,其具体包括512Byte的数据存储区域以及16Byte的备用区域,但实际上16Byte的备用区域也可以被使用来存储数据,因此可以认为NAND FLASH的一个页的整体是可被操作的。一般地,NAND FLASH中16、32或64个页组成一个块(Block),通过块地址(Block Address)可以定位到每个块,通过页地址(Page Address)可以进一步定位到每个页,通过列地址(Column Address,又称页内偏置地址)可以进一步定位到页中的每个字节。因此,通过块地址、页地址和列地址的组合,可以对NAND FLASH中的各字节进行读写;通过对字节内的每个比特位进行编号或计数等方式,可以识别所读写的字节中的各比特位,从而实现对NAND FLASH中的各比特位进行读写。
综上,当使用NAND FLASH来存储图片数据时,可以将NAND FLASH中的比特位定义为步骤S1中所述的第二层级存储单元,而将可以存储多个连续比特位的一个NAND FLASH芯片定义为步骤S1中所述的第一层级存储单元。本实施例中,所述第一层级存储单元可以是NAND FLASH中由连续比特位组成的存储空间,其大小可以根据所存储的图片数据的大小而设定,例如设为50MB。
对于NOR FLASH来说,其物理层面的最小操作单元是字节,通过对字节内的每个比特位进行编号或计数等方式,可以识别所读写的字节中的各比特位,从而实现对NOR FLASH中的各比特位进行读写。因此,当使用NOR FLASH来存储图片数据时,可以将NOR FLASH中的比特位定义为步骤S1中所述的第二层级存储单元,而将可以存储多个连续比特位的一个NOR FLASH芯片定义为步骤S1中所述的第一层级存储单元。本实施例中,所述第一层级存储单元可以是NOR FLASH中由连续比特位组成的存储空间,其大小可以根据所存储的图片数据的大小而设定,例如设为50MB。
S1中的配置第一层级存储单元,是指通过文件系统或直接向存储器件的主控芯片发出请求指令,从而请求分配存储空间。所分配的存储空间就是第一层级存储单元,图2是所述第一层级存储单元的结构示意图,它由多个在物理层上连续的第二层级存储单元组成,值得注意的是,图2仅为示意图,并不表示第二层级存储单元与第一层级存储单元的实际数量、存储容量以及它们之间的关系,也不表示第二层级存储单元与第一层级存储单元的实际位置分布。
当完成对第一层级单元的分配请求后,存储器件的主控芯片会将磁碟或者NANDFLASH芯片等相应的多个第二层级存储单元配置为可写入或可读取状态,返回这些第二层级存储单元的地址区间,使用这些地址区间内的地址可以对这些第二层级存储单元进行访问。
S2.将位于所述第一层级存储单元中最前的多个所述第二层级存储单元用作索引表地址区。在预留索引表地址区之后,索引表地址区内的第二层级存储单元只用于存储索引表的地址,以及在响应索引表的地址读取请求时供读取出索引表的地址。图片数据的读写只能针对索引表地址区以外的第二层级存储单元进行。
所述索引表的地址指向用于存储索引表的空间。用于存储索引表的空间可以与第一层级存储单元同属于一个存储器件,也可以将索引表存储在云服务器等空间,此时,所述索引表的地址的形式可以是网络IP,通过访问该网络IP,可以从云服务器中读取到索引表。
所述“最前”是指按照存储器件的读写逻辑,在对第一层级存储单元进行读写时最先读取到的多个第二层级存储单元。不同型号的存储器件的地址编码规则可能不同,即一些存储器件的地址编码规则是按照正常读写顺序由低至高开始编码,而另一些存储器件的地址编码规则可能相反,因此索引表地址区中的第二层级存储单元的地址,在数值上可能是第一层级存储单元中最大的,也有可能是最小的。
S3.接收图片数据并根据预设的编号规则,为图片数据分配编号。这一步骤中,所接收到的图片数据可能只对应一个图片文件或对应多个图片文件,以对应的图片文件为单位,为这些图片数据进行编号,即一个图片文件对应的图片数据对应一个编号。
S4.将图片数据的二进制码流依次写入至所述第二层级存储单元。
在写入图片数据的过程中,不对图片数据进行任何变换处理。如果要写入对应多个图片文件的图片数据,写入过程中每个图片文件所对应的二进制码流之间也是连续的,即不以任何分隔符或其他类型的冗余数据进行隔离,仅以所分配的编号对图片文件进行区分。
在使用磁盘、NAND FLASH或NOR FLASH的情况下,所述第二层级存储单元为比特位,因此二进制码流中每个二进制数据将占用一个第二层级存储单元。如图3所示,如果要将图片文件1和图片文件2对应的图片数据写入到第一层级存储单元中,则图片文件1对应的图片数据所占用的多个第二层级存储单元与图片文件2对应的图片数据所占用的多个第二层级存储单元是连续的,它们之间无需使用任何分隔符或其他类型的冗余数据进行隔离。
S5.记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址。对于所写入的图片数据对应多个图片文件的情况,分别记录每个图片文件所对应的图片数据所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址,然后分别与图片文件的编号建立映射关系,使用编号来查找每个图片文件对应的图片数据所在的第二层级存储单元。
S6.将所记录的第二层级存储单元的地址以及所分配的编号写入至所述索引表中。所述索引表由多组索引数据组成,每组数据分别包括图片数据的编号,以及相应的图片数据所占用的首个第二层级存储单元的地址和所占用的最后一个第二层级存储单元的地址。在索引表的存储空间足够大的情况下,所述索引表可以被写入新的索引数据,从而实现对索引表的生成和更新。
所述索引表可以被存储在与第一层级存储单元同一个存储器件中,也可以存储在云服务器等空间,使得索引表与第一层级存储单元独立存储和传递。
通过步骤S1-S6所存储的图片数据,其读取方式如下:参照图2,通过访问位于所述第一层级存储单元最前的索引表地址区,读取存储在其中的索引表的地址。根据索引表的地址访问相应的存储空间,获取索引表,从索引表中可以获取第一层级存储单元所包含的其他第二层级存储单元所存储的图片数据,即所存储的各图片文件的编号,以及每个图片文件对应的图片数据所在的第二层级存储单元中,首个第二层级存储单元的地址以及最后一个第二层级存储单元的地址,进而可以根据想要读取的图片文件的编号,直接跳转到相应的首个第二层级存储单元,从所述首个第二层级存储单元开始,依次读取后面的多个第二层级存储单元的数据,直至读取到该图片文件的编号相应的最后一个第二层级存储单元。由于在执行步骤S1-S6将图片数据写入至第一层级存储单元的过程中,所存储的是图片数据的原始的二进制码流,并未对图片数据进行任何转换处理,因此读取出的图片数据也是原始的数据,并未有任何的数据损失。
通过步骤S1-S6所存储的图片数据,其优点主要体现在对图片数据进行批量处理和数据迁移的过程。第一层级存储单元中所包含的各第二层级存储单元在物理层上是连续的,因此对第一层级存储单元中各第二层级存储单元的寻址速度很快,无论是Windows操作系统、Linux操作系统或者其他操作系统,第一层级存储单元中所存储的图片数据可以作为一个整体来处理,例如在Windows操作系统中第一层级存储单元中所存储的图片数据可以作为一个文件来管理。通过第一层级存储单元存储对应大量图片文件的图片数据时,由于在操作系统层面始终对应一个文件,因此对大量图片文件的批量读取处理和批量迁移可以达到很高的速度,其处理效率远高于现有技术中将大量图片文件进行碎片化存储的方式。由于第一层级存储单元中所存储的数据是图片数据对应的原始的二进制码流,因此无论是将图片数据写入至第一层级存储单元的过程,还是从第一层级存储单元中将图片数据读出的过程,都无需对图片数据进行处理,从而节省计算资源和时间。
进一步作为优选的实施方式,步骤S3中,为所述图片数据所分配的编号,包含所述图片数据的消息摘要。所述消息摘要是通过哈希函数对一个图片文件所对应的图片数据进行处理,所获得的一个固定长度的值。具体而言,可以直接使用图片数据的消息摘要来作为该图片数据的编号,也可以先按照自然顺序分配编号,然后将消息摘要作为后缀添加到编号中。
由于消息摘要是从图片数据中提取出的信息,消息摘要具有可辨识性,通过向编号中添加消息摘要,可以在一定程度上使得各图片数据所分配得到的编号与该图片数据具有内在联系,可以通过再次计算图片数据的消息摘要并与其编号进行对比的方式,分析该图片数据所分配得到的编号是否有误,从而使得所分配的编号具有可纠错性。
进一步作为优选的实施方式,所述步骤S4,即将图片数据的二进制码流依次写入至所述第二层级存储单元这一步骤,具体包括:
S401.根据所述索引表地址区内所存储的索引表地址,访问所述索引表;
S402.在所述索引表中存储有所述第二层级存储单元的地址的情况下,根据所存储的第二层级存储单元的地址,确认这些第二层级存储单元当中位于最后的第二层级存储单元;
S403.从所确认的第二层级存储单元的后一第二层级存储单元开始,依次接收所写入的所述二进制码流;
S404.在所述索引表中未存储所述第二层级存储单元的地址的情况下,从所述索引表地址区的后一第二层级存储单元开始,依次接收所写入的所述二进制码流。
本实施例中,所述步骤S4是由步骤S401-S404组成的,即通过执行步骤S401-S404来实现步骤S4的执行效果。
当需要将图片数据的二进制码流依次写入至所述第二层级存储单元时,可以面临以下两种情况:第一种情况就是第一层级存储单元中已存储图片数据,相应地索引表中存储了编号,以及该编号所表示的图片数据所占用的首个第二层级存储单元的地址和最后一个第二层级存储单元的地址;第二种情况就是第一层级存储单元是新申请分配得到的存储空间,其内部的第二层级存储单元并未存储任何图片数据,或者其内部的第二层级存储单元原先存储的图片数据被全部删除了,相应地索引表中并没有存储任何编号或者与编号对应的第二层级存储单元的地址,或者原先存储的编号以及与编号对应的第二层级存储单元的地址被全部删除了。
在所述索引表中存储有所述第二层级存储单元的地址的情况下,对应第一种情况,此时应当从索引表所存储的编号以及第二层级存储单元中,查找到存储于最靠后的第二层级存储单元的图片数据,确定该图片数据所占用的最后一个第二层级存储单元的地址。从该最后一个第二层级存储单元的下一第二层级存储单元开始,依次写入新的图片文件的二进制码流,从而实现对应不同图片文件所对应的图片数据之间在物理层面上实现连续存储。
在所述索引表中没有存储所述第二层级存储单元的地址的情况下,对应第二种情况,也就是说,此时需要写入的图片文件应当写入到除索引表地址区之外最靠前的第二层级存储单元,此时从索引表地址区的后一第二层级存储单元开始,依次写入新的图片文件的二进制码流,从而实现图片数据与索引表地址区之间在物理层面上实现连续存储。而在索引表地址区的最后多个第二层级存储单元中可以写入特定的结束符,从而识别索引表地址区的末端。
进一步作为优选的实施方式,所述图片数据存储方法还包括以下步骤:
S7.在所述第一层级存储单元内配置结束符区;所述结束符区占用至少一个第二层级存储单元,且所述结束符区所占用的第二层级存储单元位于所述图片数据所占用的最后一个第二层级存储单元之后;
S8.向所述结束符区内写入具有反向读取不变性的文件结束符。
所述结束符区的位置如图4所示,其位于第一层级存储单元所存储的最后一个图片文件对应的图片数据之后,即从最后一个图片文件对应的图片数据所占用的最后一个第二层级存储单元的下一第二层级存储单元开始,被用作结束符区。所述结束符区所存储的文件结束符具有反向读取不变性,指的是其无论是从头到尾读取还是从尾到头读取,其所得的二进制码流都是一样的,例如,可以将所述文件结束符赋值为“001100”。
通过配置结束符区并在结束符区内存储文件结束符,可以作为第一层级存储单元所存储的图片数据与其他类型数据的分隔点,例如在进行数据迁移时,从第一层级存储单元的索引表地址区开始,按照地址顺序读取至结束符区,在检测到文件结束符时停止读取。
进一步作为优选的实施方式,所述图片数据存储方法还包括以下步骤:
S9.从所述结束符区的前一第二层级存储单元开始,依次反向读取各所述第二层级存储单元的存储内容,直至读取至与所述索引表地址区相邻的第二层级存储单元,或者直至读取至第一层级存储单元中的第一个第二层级单元,也就是所述索引表地址区也在读取范围内;
S10.从所述结束符区的后一第二层级存储单元开始,依次将读取到的存储内容写入各第二层级存储单元。
所述步骤S9和S10的原理如图5所示。经过步骤S9和S10的处理,参照图6,所述第一层级存储单元所存储的二进制码流具有“对称性”,也就是无论从第一层级存储单元的“始端”开始逐个读取各第二层级存储单元,还是从第一层级存储单元的“始端”开始逐个读取各第二层级存储单元,其读取到的二进制码流都是相同的,都能读取到同样的结果。并且由于结束符区所存储的文件结束符具有反向读取不变性,无论是从哪个方向开始读取,都能检测到文件结束符,从而实现对第一存储单元中所存储的图片数据的读取。
经过步骤S9和S10的处理,可以实现以下效果:首先是第一层级存储单元中所存储的图片数据的冗余度提高,相当于每个图片文件都有两份图片数据,其中一份所占用的第二层级存储单元位于所述结束符区之前,另一份所占用的第二层级存储单元位于所述结束符区之后,提高了数据存储的安全性,在数据迁移等过程中出错时也可以进行自我修复,而且也可以将存储结束符区前后的两份对应相同图片文件的图片数据进行互相校对,进一步避免数据存储或迁移过程中出错带来的不良后果。而且,一些数据处理算法、一些存储器件或者处理器的控制逻辑具有特殊的设计,即通过地址值减少的方式进行反向寻址,从而取得更快的数据读取速度。例如一些X型DSP具有位倒序寻址的特殊寻址方式,用于实现基于位倒序寻址的FFT算法。在这种情况下,通过步骤S9和S10处理的图片数据则很好地满足了这些数据处理算法、存储器件或处理器的要求,从而使得利用本实施例中所述存储方法进行存储的图片数据具有更好的可迁移性和对不同硬件的适应性。
进一步作为优选的实施方式,所述图片数据存储方法还包括以下步骤:
S11.在存在多个第一层级存储单元的情况下,对所有第一层级存储单元进行配置,使得各第一层级存储单元所包括的第二层级存储单元在物理层上连续;
S12.对于位于最前的所述第一层级存储单元,预留位于其最前的多个所述第二层级存储单元用作总索引表地址区;
S13.获取各所述第一层级存储单元对应的索引表的地址,并对各所述索引表进行编号;
S14.使用总索引表将所获取的各索引表的地址以及相应的编号,并将所述总索引表的地址存储在所述总索引表地址区内。
本实施例中,所述步骤S1-S10主要是用于对单个第一层级存储单元进行处理。如果存在多个第一层级存储单元,这些不同的第一层级存储单元分别存储了不同的图片数据,那么可以进一步对它们进行步骤S11-S14的处理。
步骤S11中,所述对所有第一层级存储单元进行配置,可以是指选定一个第一层级存储单元不变,将其他的第一层级存储单元所存储的数据依次复制到该第一层级存储单元之后,使得各第一层级存储单元所包括的第二层级存储单元在物理层上连续,也就是前一第一层级存储单元中的最后一个第二层级存储单元,与后一第一层级存储单元中的第一个第二层级存储单元相邻。图7所示是具有两个第一层级存储单元,即第一层级存储单元1和第一层级存储单元2的情况。
步骤S12中,如图7所示,在第一个第一层级存储单元中预留总索引表地址区。
步骤S13中,记录索引表1和索引表2的地址,将所记录的第二层级存储单元的地址以及各索引表地址区的编号形成映射关系,存储至总索引表中。
步骤S14中,将总索引表存储在与各第一层级存储单元同属的一个存储器件中,或者存储在云服务器等空间,并获取总索引表的地址。
总索引表地址区中所存储的数据形成总索引表的地址。
步骤S11-S14的原理如图7所示,访问总索引表地址区,获取或访问总索引表,然后从总索引表中查找到相应的索引表的地址,根据索引表的地址访问或获取索引表,进一步跳转到所要读取的图片数据所在的第二层级存储单元,从而实现从多个图片文件中快速查找出所要的图片文件对应的图片数据。
通过步骤S11-S14的处理,可以在单个第一层级存储单元的存储空间不够的情况下,通过增加第一层级存储单元的数量来扩大存储空间。多个第一层级存储单元所占用的各第二层级存储单元在物理层上仍然是连续的,因此可以取得单个第一层级存储单元所具备的数据迁移速度和批量处理效率上的优势。
实施例2
本实施例中的图片数据存储系统包括:
第一模块,用于配置第一层级存储单元;所述第一层级存储单元包括多个在物理层上连续的第二层级存储单元;所述第一层级存储单元中,位于最前的多个所述第二层级存储单元被预留用作索引表地址区;
第二模块,用于接收图片数据并为其分配编号;
第三模块,用于将图片数据的二进制码流依次写入至所述第二层级存储单元;
第四模块,用于记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址;
第五模块,用于使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号;所述索引表的地址存储于所述索引表地址区内。
所述第一模块、第二模块、第三模块、第四模块和第五模块可以是具有相应功能的软件模块或硬件模块。所述基于索引头的图片数据存储系统可以执行实施例1中所述基于索引头的图片数据存储方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
实施例3
本实施例中,所述图片数据存储装置包括存储器和处理器,所述存储器用于提供多个在物理层上连续的第二层级存储单元,这些连续的第二层级存储单元组成第一层级存储单元;所述处理器用于执行与实施例1中所述方法相应的指令,从而将图片数据存储至所述存储器中。
对于市面上销售的机械硬盘和固态硬盘等主流存储器件,其磁碟以及NAND FLASH芯片等真正用于存储数据的部件就是本实施例中所述的存储器,而主控芯片以及其他必要的外围电路构成了本实施例中所述的处理器。
所述基于索引头的图片数据存储装置可以执行实施例1中所述基于索引头的图片数据存储方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
本实施例还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述基于索引头的图片数据存储方法。
所述存储介质可以是指用于存储操作系统或文件系统程序代码的存储器件及其存储区域。例如,对于一台个人电脑,其C盘用于存储操作系统程序代码,运行该代码可以执行实施例1中所述的方法,因此该个人电脑的C盘便属于本实施例中所述的存储介质。而该个人电脑的D盘属于实施例1中所述的第一层级存储单元。C盘和D盘可以均属于同一硬盘。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读介质在计算机程序中实现,其中如此配置的介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像系统、装置通信等等。本发明的各方面可以以存储在非暂时性介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入介质、RAM、ROM等,使得其可由可编程计算机读取,当介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (10)
1.一种基于索引表的图片数据存储方法,其特征在于,包括以下步骤:
配置第一层级存储单元;所述第一层级存储单元包括多个在物理层上连续的第二层级存储单元;
预留位于最前的多个所述第二层级存储单元用作索引表地址区;
接收图片数据并为其分配编号;
将图片数据的二进制码流依次写入至所述第二层级存储单元;
记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址;
使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号;所述索引表的地址存储于所述索引表地址区内。
2.根据权利要求1所述的一种基于索引表的图片数据存储方法,其特征在于,为所述图片数据所分配的编号,包含所述图片数据的消息摘要。
3.根据权利要求1所述的一种基于索引表的图片数据存储方法,其特征在于,所述将图片数据的二进制码流依次写入至所述第二层级存储单元这一步骤,具体包括:
根据所述索引表地址区内所存储的索引表地址,访问所述索引表;
在所述索引表中存储有所述第二层级存储单元的地址的情况下,根据所存储的第二层级存储单元的地址,确认这些第二层级存储单元当中位于最后的第二层级存储单元;
从所确认的第二层级存储单元的后一第二层级存储单元开始,依次接收所写入的所述二进制码流。
4.根据权利要求3所述的一种基于索引表的图片数据存储方法,其特征在于,所述将图片数据的二进制码流依次写入至所述第二层级存储单元这一步骤,具体还包括:
在所述索引表中未存储所述第二层级存储单元的地址的情况下,从所述索引表地址区的后一第二层级存储单元开始,依次接收所写入的所述二进制码流。
5.根据权利要求1所述的一种基于索引表的图片数据存储方法,其特征在于,还包括以下步骤:
在所述第一层级存储单元内配置结束符区;所述结束符区占用至少一个第二层级存储单元,且所述结束符区所占用的第二层级存储单元位于所述图片数据所占用的最后一个第二层级存储单元之后;
向所述结束符区内写入具有反向读取不变性的文件结束符。
6.根据权利要求5所述的一种基于索引表的图片数据存储方法,其特征在于,还包括以下步骤:
从所述结束符区的前一第二层级存储单元开始,依次反向读取各所述第二层级存储单元的存储内容;
从所述结束符区的后一第二层级存储单元开始,依次将读取到的存储内容写入各第二层级存储单元。
7.根据权利要求1所述的一种基于索引表的图片数据存储方法,其特征在于,还包括以下步骤:
在存在多个第一层级存储单元的情况下,对所有第一层级存储单元进行配置,使得各第一层级存储单元所包括的第二层级存储单元在物理层上连续;
对于位于最前的所述第一层级存储单元,预留位于其最前的多个所述第二层级存储单元用作总索引表地址区;
获取各所述第一层级存储单元对应的索引表的地址,并对各所述索引表进行编号;
使用总索引表将所获取的各索引表的地址以及相应的编号,并将所述总索引表的地址存储在所述总索引表地址区内。
8.一种基于索引表的图片数据存储系统,其特征在于,包括:
第一模块,用于配置第一层级存储单元;所述第一层级存储单元包括多个在物理层上连续的第二层级存储单元;所述第一层级存储单元中,位于最前的多个所述第二层级存储单元被预留用作索引表地址区;
第二模块,用于接收图片数据并为其分配编号;
第三模块,用于将图片数据的二进制码流依次写入至所述第二层级存储单元;
第四模块,用于记录所述图片数据的二进制码流所占用的首个第二层级存储单元的地址,以及所占用的最后一个第二层级存储单元的地址;
第五模块,用于使用索引表存储所记录的第二层级存储单元的地址以及所分配的编号;所述索引表的地址存储于所述索引表地址区内。
9.一种基于索引表的图片数据存储装置,其特征在于,包括存储器和处理器,所述存储器用于提供多个在物理层上连续的第二层级存储单元,这些连续的第二层级存储单元组成第一层级存储单元;所述处理器用于执行与权利要求1-7任一项所述方法相应的指令,从而将图片数据存储至所述存储器中。
10.一种存储介质,其中存储有处理器可执行的指令,其特征在于,所述处理器可执行的指令在由处理器执行时用于执行如权利要求1-7任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911194660.7A CN111026890A (zh) | 2019-11-28 | 2019-11-28 | 基于索引表的图片数据存储方法、系统、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911194660.7A CN111026890A (zh) | 2019-11-28 | 2019-11-28 | 基于索引表的图片数据存储方法、系统、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111026890A true CN111026890A (zh) | 2020-04-17 |
Family
ID=70207112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911194660.7A Pending CN111026890A (zh) | 2019-11-28 | 2019-11-28 | 基于索引表的图片数据存储方法、系统、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026890A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698931A (zh) * | 2021-01-12 | 2021-04-23 | 北京理工大学 | 一种云工作流分布式调度系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990074888A (ko) * | 1998-03-16 | 1999-10-05 | 김영환 | 메시지 핸들링방법 |
CN1878301A (zh) * | 2006-07-19 | 2006-12-13 | 杭州华为三康技术有限公司 | 一种视频监控数据存储管理方法及系统 |
CN101533408A (zh) * | 2009-04-21 | 2009-09-16 | 北京四维图新科技股份有限公司 | 一种海量数据的处理方法及处理装置 |
CN103257831A (zh) * | 2012-02-20 | 2013-08-21 | 深圳市腾讯计算机系统有限公司 | 存储器的读写控制方法及对应的存储器 |
CN104469234A (zh) * | 2014-12-05 | 2015-03-25 | 浪潮集团有限公司 | 一种数字视频数据的硬盘存储方法 |
CN104750858A (zh) * | 2015-04-16 | 2015-07-01 | 成都影泰科技有限公司 | 一种基于网络的数据存储方法 |
CN105100716A (zh) * | 2015-07-23 | 2015-11-25 | 浙江立元通信技术股份有限公司 | 一种用于网络视频监控的安全存储单元及其系统 |
CN106294603A (zh) * | 2016-07-29 | 2017-01-04 | 北京奇虎科技有限公司 | 文件存储方法及装置 |
-
2019
- 2019-11-28 CN CN201911194660.7A patent/CN111026890A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990074888A (ko) * | 1998-03-16 | 1999-10-05 | 김영환 | 메시지 핸들링방법 |
CN1878301A (zh) * | 2006-07-19 | 2006-12-13 | 杭州华为三康技术有限公司 | 一种视频监控数据存储管理方法及系统 |
CN101533408A (zh) * | 2009-04-21 | 2009-09-16 | 北京四维图新科技股份有限公司 | 一种海量数据的处理方法及处理装置 |
CN103257831A (zh) * | 2012-02-20 | 2013-08-21 | 深圳市腾讯计算机系统有限公司 | 存储器的读写控制方法及对应的存储器 |
CN104469234A (zh) * | 2014-12-05 | 2015-03-25 | 浪潮集团有限公司 | 一种数字视频数据的硬盘存储方法 |
CN104750858A (zh) * | 2015-04-16 | 2015-07-01 | 成都影泰科技有限公司 | 一种基于网络的数据存储方法 |
CN105100716A (zh) * | 2015-07-23 | 2015-11-25 | 浙江立元通信技术股份有限公司 | 一种用于网络视频监控的安全存储单元及其系统 |
CN106294603A (zh) * | 2016-07-29 | 2017-01-04 | 北京奇虎科技有限公司 | 文件存储方法及装置 |
Non-Patent Citations (3)
Title |
---|
倪鹏云: "计算机网络系统结构分析 第2版", 30 April 2000, 国防工业出版社, pages: 393 - 395 * |
尹彦芝: "C语言高级实用教程", 31 October 1991, 清华大学出版社, pages: 246 * |
彭强,等: "多媒体个人计算机实用技术", 31 October 1996, 西南交通大学出版社, pages: 111 - 112 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698931A (zh) * | 2021-01-12 | 2021-04-23 | 北京理工大学 | 一种云工作流分布式调度系统 |
CN112698931B (zh) * | 2021-01-12 | 2022-11-11 | 北京理工大学 | 一种云工作流分布式调度系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220137849A1 (en) | Fragment Management Method and Fragment Management Apparatus | |
US9684462B2 (en) | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory | |
CN104346357B (zh) | 一种嵌入式终端的文件存取方法及系统 | |
CN107273042B (zh) | 重复删除dram系统算法架构的存储器模块及方法 | |
US7933938B2 (en) | File storage system, file storing method and file searching method therein | |
JP5413948B2 (ja) | ストレージシステム | |
US20070288711A1 (en) | Snapshot copy management method used for logic volume manager | |
KR101730151B1 (ko) | 플래시 메모리 장치에 데이터를 기록하는 방법, 플래시 메모리 장치, 및 저장 시스템 | |
US20100318760A1 (en) | Memory controller, nonvolatile storage device, and nonvolatile storage system | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
WO2010125574A1 (en) | Description | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
WO2023045407A1 (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
WO2016106757A1 (zh) | 一种存储数据的管理方法、存储管理器及存储系统 | |
US11372774B2 (en) | Method and system for a solid state drive with on-chip memory integration | |
WO2024078122A1 (zh) | 数据库表扫描的方法、装置以及设备 | |
CN111026890A (zh) | 基于索引表的图片数据存储方法、系统、装置和存储介质 | |
CN117577163A (zh) | 一种ssd坏块检测方法、装置、计算机设备及存储介质 | |
CN117492661A (zh) | 数据写入方法、介质、装置和计算设备 | |
CN105765542B (zh) | 访问文件的方法、分布式存储系统和存储节点 | |
CN110990605A (zh) | 基于索引头的图片数据存储方法、系统、装置和存储介质 | |
CN111125011B (zh) | 一种文件处理方法、系统及相关设备 | |
CN114816856A (zh) | 一种数据备份方法、装置、设备及可读存储介质 | |
US11429519B2 (en) | System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221013 Address after: Room 1602, 16th Floor, Building 18, Yard 6, Wenhuayuan West Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 Applicant after: Beijing Lajin Zhongbo Technology Co.,Ltd. Address before: 310000 room 650, building 3, No. 16, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province Applicant before: Tianmai Juyuan (Hangzhou) Media Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |