一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

可定制的分隔文本压缩框架的制作方法

2022-06-01 20:17:26 来源:中国专利 TAG:
可定制的分隔文本压缩框架1.相关申请的交叉引用2.本技术与2019年10月18日提交的美国临时专利申请us62/923113相关,出于所有目的,通过引用将其全部内容并入本文。3.本技术与2019年10月18日提交的美国临时专利申请us62/923141相关,出于所有目的,通过引用将其全部内容并入本文。4.本技术与同本技术同时提交的美国临时专利申请us62/956952(代理人案卷号2019p00842us01)(名称为“systemandmethodforeffectivecompression,representationanddecompressionofdiversetabulateddata”)相关,出于所有目的,通过引用将其全部内容并入本文。
技术领域
:5.本文描述的各种实施例涉及数据压缩,更具体地但非排他性地涉及分隔文本的压缩。
背景技术
::6.许多大型数据文件(尤其是在基因组学、生物信息学和医疗保健分析领域中)本质上都是分隔文本,不同之处在于它们的横行和竖列的定义以及其他格式细节。分隔文本中的基因组数据的示例包括变体调用文件(vcf)、基因表达数据、浏览器可扩展数据(bed)、bigbed、gff3、gtf、wig、bedgraph以及bigwig等。7.已经提出了各种技术来压缩数据和其他类型的分隔文件。一种示例压缩技术是gzip。然而,分隔文件并不适合用于所有类型的压缩技术进行的压缩。而且,压缩分隔文件的现有方法使用相同的算法来压缩文件的所有部分。而且,一些压缩器缺乏对所需功能的支持(例如,快速查询和随机访问、加密、认证和访问控制)。至少由于这些原因,分隔文件的现有压缩性能被证明是次优的。技术实现要素:8.下面给出了各种示例实施例的简要概述。在以下概述中可以做出一些简化和省略,这旨在突出和介绍各种示例实施例的一些方面,而不是限制本发明的范围。足以允许本领域普通技术人员制造和使用本发明的构思的示例实施例的详细描述将在后面的章节中进行。9.根据一个或多个实施例,一种用于压缩数据的方法包括:获得针对分隔文本文件的格式而定制的压缩模式;基于所述压缩模式将所述分隔文本文件解析成多个数据块;基于所述压缩模式将所述数据块中的每个数据块划分成多个数据单元;并且使用不同的压缩算法来压缩所述多个数据块中的所述多个数据单元,其中,基于所述模式中的区域定义将所述分隔文本文件解析成所述多个数据块;基于在所述模式中的所述多个数据块中的每个数据块的相应数据单元大小将所述多个数据块中的每个数据块划分成所述多个数据单元;并且使用由所述模式中的压缩指令指示的所述不同的压缩算法来压缩所述多个数据块中的每个数据块中的所述多个数据单元。10.获得所述压缩模式可以包括:基于由用户输入的信息或所述分隔文本文件的扩展名来创建新的压缩模式或者从多个压缩模式中确定最佳匹配的压缩模式,其中,所述多个压缩模式中的每个压缩模式都是针对分隔文本文件的多种不同格式中的相应一种格式而定制的。11.获得所述压缩模式可以包括:自动分析或检测所述分隔文本文件的所述格式;并且自动生成针对最优压缩性能的新的压缩模式或者从在模式储存库中存储的多个压缩模式中选择一个最佳匹配的压缩模式,其中,所述多个压缩模式中的每个压缩模式都是针对分隔文本文件的多种不同格式中的相应一种格式而定制的。与在所述模式储存库中存储的所述压缩模式相对应的文件具有预定的文件扩展名,所述文件扩展名指示所述分隔文本文件的所述多种不同格式。12.所述方法可以包括:基于具有图形用户界面的工具来创建针对所述分隔文本文件的所述格式而定制的所述压缩模式,所述图形用户界面包括预定窗口以允许输入关于针对所述分隔文本文件的所述格式而定制所述压缩模式的信息。13.所述方法可以包括:生成压缩文件和压缩模式,所述压缩文件包括所述多个数据块中的所述多个压缩数据单元,所述压缩模式包括用于对所述多个压缩数据单元进行解压缩和对所述压缩文件进行文件重建的指令。所述压缩文件包括用于解压缩、文件重建和扩展功能的元数据信息。所述扩展功能包括数据安全和搜索查询。14.所述压缩文件可以包括用于所述压缩文件的可移植性和可访问性的专用压缩/解压缩算法的代码和使用定义。所述压缩指令可以指示所述不同的压缩算法及其对应参数,所述不同的压缩算法及其对应参数用于基于所述块的不同内容来压缩所述多个单元中的不同单元。15.所述压缩指令可以指示:要使用第一类型的压缩算法来压缩第一数据单元,所述第一数据单元包括包含以下各项的组中的一个第一项目:值的类型、信息的类型、数据格式的类型,以及数据布置的类型;并且要使用第二类型的压缩算法来压缩第二数据单元,所述第二数据单元包括包含以下各项的组中的一个第二项目:值的类型、信息的类型、数据格式的类型,以及数据布置的类型,其中,所述组中的所述第一项目不同于所述组中的所述第二项目。16.根据一个或多个实施例,一种用于选择性的数据访问的方法包括:接收指示所述数据中的感兴趣区域的信息,例如,表中的横行和竖列的范围,所述感兴趣区域对应于在所述压缩文件中的至少一个数据块中包括的一个或多个数据单元;选择性地对与所述压缩文件中的所述感兴趣区域相关联的至少一个数据块的所述一个或多个数据单元进行解压缩,而不对所述压缩文件中的所述至少一个数据块或其他数据块中的其他数据单元进行解压缩,所述一个或多个数据单元是基于由所述压缩模式中的所述压缩指令指示的一个或多个解压缩算法而被选择性地解压缩的;根据经选择性地解压缩的一个或多个第一数据单元来重建所述感兴趣区域,所述感兴趣区域是基于所述压缩模式中的所述区域定义或任何用户定义的输出格式来重建的;并且输出指示所重建的感兴趣区域的信息。17.确定所述压缩模式可以包括从多个压缩模式中确定所述压缩模式,其中,所述多个压缩模式中的每个压缩模式被定制为包括用于与所述压缩文件相对应的多种不同格式中的相应一种格式的解压缩信息。确定所述压缩模式可以包括从在模式储存库中存储的所述多个压缩模式中选择所述压缩模式。18.所述方法可以包括:基于对所述压缩文件的查询来选择性地访问所述一个或多个数据单元,所述查询是基于在被选择性地解压缩的一个或多个数据单元中找到的一个或多个项目或值的范围来执行的。所述分隔文本文件包括基因组信息,并且其中,所述感兴趣区域能够对应于基因组坐标或基因id的选定范围。19.根据一个或多个实施例,一种用于压缩数据的系统包括:模式管理器,其被配置为允许用户创建、选择或自动生成针对分隔文本文件的格式而定制的压缩模式;解析器,其被配置为基于所述压缩模式中的区域定义将所述分隔文本文件解析成多个块;划分器,其被配置为基于在所述压缩模式中指定的所述多个块中的每个块的相应数据单元大小将所述多个块中的每个块划分成多个数据单元;以及压缩管理器,其被配置为使用由所述压缩模式中的压缩指令指示的不同的压缩算法来压缩所述多个数据块中的所述多个数据单元。20.所述模式管理器可以基于由用户输入的信息或所述分隔文本文件的扩展名来创建新的压缩模式或者从多个压缩模式中确定最佳匹配的压缩模式,其中,所述多个压缩模式中的每个压缩模式都是针对分隔文本文件的多种不同格式中的相应一种格式而定制的。所述模式管理器可以自动分析或检测所述分隔文本文件的所述格式;并且自动生成针对最优压缩性能的新的压缩模式或者从在模式储存库中存储的多个压缩模式中选择最佳匹配的压缩模式,其中,所述多个压缩模式中的每个压缩模式都是针对分隔文本文件的多种不同格式中的相应一种格式而定制的。21.所述压缩管理器可以从所述压缩器储存库或专用压缩器的元数据中提取所述压缩算法的所述代码,通过分配计算资源和存储器对用于每个数据块的所述压缩器进行实例化,并且运行和监控对所述数据单元的所述压缩。附图说明22.附图连同下面的详细描述一起并入说明书中并形成说明书的部分,并且用于进一步说明在权利要求中找到的构思的示例实施例,并且解释这些实施例的各种原理和优点,在附图中,相同的附图标记在各幅视图中指代完全相同或功能相似的元件。23.参考附图,在下面的说明书中更全面地公开了这些和其他更详细且具体的特征,在附图中:24.图1图示了用于生成针对分隔文本文件的压缩模式的方法的实施例;25.图2a和图2b图示了针对第一压缩模式的指令表的(一个或多个)示例;26.图3a和图3b图示了针对第二压缩模式的指令表的(一个或多个)示例;27.图4图示了用于解构和压缩分隔文本文件的系统的实施例;28.图5图示了用于解构和压缩分隔文本文件的方法的实施例;29.图6图示了用于根据压缩的分隔文本文件进行解压缩和构建的系统的实施例;30.图7图示了用于根据压缩的分隔文本文件进行解压缩和构建的方法的实施例;31.图8图示了用于对压缩的分隔文本文件中与感兴趣区域相对应的一个或多个块进行选择和解压缩的方法的实施例;并且32.图9图示了可以用于实施本文描述的实施例的操作的处理系统的实施例。具体实施方式33.本文给出的描述和附图说明了各种原理。将意识到,本领域技术人员将能够设计出以下各种布置,虽然在本文中没有明确描述或示出这些布置,但是这些布置体现了这些原理并且被包括在本公开内容的范围内。如本文中所使用的术语“或”是指非排他性的“或”(即,和/或),除非另有说明(例如,“或否则”或“或在替代方案中”)。另外,本文描述的各种实施例不一定相互排斥,并且可以组合以产生结合本文描述的原理的额外实施例。34.本文描述的一个或多个实施例涉及以下系统和方法,该系统或方法为各种类型(包括但不限于基因组数据和/或生物信息学数据)的信息提供数据表示和压缩框架。在一个应用中,该系统和方法为分隔文本文件提供数据表示和压缩框架。与已经提出的其他方法不同,该方法可以使用不同的压缩技术来解析和压缩同一分隔文本文件的不同部分。可以针对每个部分中的数据压缩来优化用于该部分的压缩技术,用于该部分的压缩技术对于其他部分可能不是最优的。因此,针对所考虑的同一文件的特定部分或一些特定类型的文件,可以以可定制和可优化的方式压缩分隔文本文件。而且,在至少一些实施例中,可以使用便于下游数据筛选、操纵和分析的高级功能来表示和压缩文件数据。35.此外,(使用相同或不同的压缩算法)单独压缩同一分隔文本文件的不同部分可以允许仅对分隔文本文件的选定部分进行检索、解压缩和构建,而与同一文件中的不感兴趣的其他部分无关。这提高了解压缩的效率,并且允许仅访问文件中的独立于其他部分的(那个或那些)部分。因此,各种实施例给出了可定制的分隔文本压缩(cdtc)框架,可以为了分隔文本中的各种数据格式的无损压缩而容易且灵活地专门定制该cdtc框架,以便实现高效存储和处理。36.压缩模式37.图1图示了用于生成压缩模式的方法的实施例,该压缩模式例如可以用于使用不同的压缩算法来解构和压缩分隔文本文件的不同部分,并且该压缩模式还可以用作选择性地对已被压缩的分隔文本文件的部分进行解压缩和构建的基础。基于该压缩模式,用户可以容易且灵活地定制如何将分隔文本文件划分成不同组成部分(例如,部分行、行、横行、竖列、矩阵等)以及可以如何压缩和存储每个组成部分(例如,通过多种压缩算法中的一种不同的压缩算法及其对应参数)。在一个实施例中,压缩模式可以包括以预定义格式(包括但不限于表的格式)排列的全局参数和压缩指令的列表。38.参考图1,该方法包括:在110处,获得要压缩并随后解压缩的分隔文本文件。该文本文件可以具有任何大小,并且可以包括任何类型的数据,但是至少一个实施例可能特别适合用于存储很大的文件。例如,在一个特别有用的应用中,文本文件可以包括基因组信息,该基因组信息要被解构成数据块并被独立压缩成数据单元,以用于后续存储和研究或其他目的。39.文本文件可以被分隔,在这个意义上讲,本文文件是这样一种格式,其中每行表示一个单元或块并且具有由分隔符符号或值分开的字段。在另一实施例中,单元或块可以对应于文件的另一大小或部分,例如,行的部分、行的预定组,或文本文件的一个或多个其他类型、大小或节段,它们分别由(一个或多个)预定的符号或值彼此分开(或分隔)。例如,根据定义模式的方式,将文件分开所得到的单元或块可以具有相同的大小,或者它们中的至少部分可以具有不同的大小。40.在120处,例如,在给定在分隔文本文件中包含的特定类型的信息的情况下,选择定义压缩模式的一组全局参数。这些参数可以定义分隔符、默认数据单元大小和将在文件的不同部分上使用的默认通用压缩算法以及其他信息。根据一个实施例,可以为压缩模式选择和定义以下一组全局参数。41.input_file。模式参数可以包括指向要压缩的分隔文本文件的指针。例如,指针可以指示以未压缩形式存储分隔文本文件的存储器或其他存储设备的(一个或多个)位置/地址。存储器可以远离实施本文描述的实施例的处理系统,或者可以在本地耦合到处理系统。在一个实施例中,存储器或其他存储设备可以通过一个或多个网络连接到处理系统,这一个或多个网络包括但不限于虚拟专用网络、互联网、基于云的网络或其他类型的网络。42.delimiters。模式参数还可以包括一个或多个用作文本文件中的分隔符的符号。这些符号可以将文本文件中的数据和其他信息分开到具有相同性质的个体字段或组成部分,由于这些字段或组成部分具有共同的数据特性,因此能够对这些字段或组成部分进行集中压缩。这些字段或组成部分可以对应于本文描述的字段或组成部分中的任一个字段或组成部分。在一个实施例中,可以由一个或多个符号(分隔符)以将每个横行(例如,每个单元)划分成文件中的一个或多个竖列的方式将文本文件中的横行分开。分隔符的示例是制表符('\t')。43.在一个实施例中,如下面将更详细地描述的,文件可以包括一个或多个数据竖列(例如可以被称为数据块)。每个数据块可以包括一个或多个数据单元;也就是说,在一些情况下,整个数据块可以被认为是单个数据单元,而在其他情况下,数据块(例如,数据竖列)可以包括多个数据单元。44.encap_symbol。模式参数还可以包括封装符号,该封装符号指示符号之间的文本不应被分隔符(如果有的话)划分成竖列。封装符号的示例是双引号(")。45.comment_symbol。模式参数还可以包括注释符号,该注释符号在文本文件的部分的开头(例如,在横行的开头)标记注释行。注释行可以保持完整,并且在分隔文本文件被解构之后与默认的块名称(例如,"注释")一起被存储在文件部分中。这可以包括压缩指令中定义的区域中的注释行。注释符号的示例是散列字符('#')。46.gen_comp_alg。模式参数还可以指示要应用于在模式中尚未指定特定压缩算法的块的通用压缩算法。如本文所描述的,在一个或多个实施例中,可以使用不同的压缩算法来压缩分隔文本文件的不同数据块,每个数据块包括一个或多个数据单元。在模式中尚未为特定数据块指示压缩算法的情况下,可以通过由该参数指定的通用压缩算法来压缩该数据块。因此,当尚未指定其他算法时,通用压缩算法可以被认为是默认算法。47.在一个实施例中,可以使用相同或不同的压缩算法来压缩整个文件(即,所有数据块及其相应数据单元)。在另一实施例中,可以使用例如不同的压缩算法来选择性地压缩文件的不同部分。例如,该文件可以包括一个或多个数据竖列,这一个或多个数据竖列例如可以被称为数据块。每个数据块可以包括一个或多个数据单元;也就是说,在一些情况下,整个数据块可以被认为是单个数据单元,而在其他情况下,数据块(例如,数据竖列)可以包括多个数据单元。例如,在选择性压缩的实施例中,通过使用在模式中描述的选定的数据块或数据单元的相应算法,仅对该选定的数据块或数据单元应用压缩,而其余的数据块或数据单元不经压缩就被存储。当某些数据块被频繁地访问或查询时,这种方法很有用,因此应当保持不压缩以便于数据检索。48.default_data_unit_size。模式参数还可以指示形成或定义用于压缩的数据单元的默认横行数。在一个实施例中,该参数可以指示预定的固定整数值。在一个实施例中,该参数可以指示处理器应当运行实施"auto"功能的算法,该"auto"功能涉及基于对用于选择性访问的单个数据单元的压缩比和解压缩速度的影响来自动选择每个块的大小。在一个实施例中,该参数可以指示应当执行"inf"功能,该"inf"功能包括将数据块作为一个整体进行压缩,而不将数据块划分成个体数据单元。49.output_folder。模式参数还可以包括用于存储压缩数据部分和相关联的元数据的输出文件夹。下面将更详细地讨论元数据的示例。50.在130处,可以生成/定制压缩指令表并将其包括在模式中。当包括压缩指令表时,每个横行可以定义(i)分隔文件中的用于数据提取的特定区域,以及(ii)应当如何表示和压缩所提取的数据。该表可以指示将使用不同的压缩算法来压缩特定区域中的不同区域。51.因此,这种表可以包括用于以指令指示处理器使用不同的压缩算法来压缩数据文件的不同区域(或部分)的信息。出于多种原因,这可以是有益的。例如,可以用这样一种算法来压缩文件的一个区域或部分中的数据或信息,这种算法已经被确定为对这种类型的数据或信息更加有效。可以通过对文件的其他区域或部分中的数据或信息更加有效的另一种算法来压缩文件的其他区域或部分中的数据或信息。52.在一个实施例中,压缩表可以被配置为包括指定下面指示的信息类型的字段。53.region_lines。该表可以包括:指示分隔文本文件中的应当应用压缩指令的当前横行的矩形区域(或其他单元或块)的行号的范围的字段。例如:54.·"100:500"可以定义从第100行到第500行的区域(包括端点行)55.·"100:"可以指示从第100行开始并继续,直到到达空白行或文件结尾为止的区域。56.如果该表没有为横行指定行的范围,那么控制软件可以以指令指示系统处理器使用与在前一横行中使用的行的范围相同的行的范围。并且,如果该横行是第一横行,则控制软件可以以指令指示系统处理器从即将到来的非注释/空白行开始,直到它碰到空白行或文件结尾为止。57.region_cols。该表可以包括指示分隔文本文件中的应当应用当前压缩指令的矩形区域(或其他单元或块)的一组竖列索引的字段。这可以例如为如下内容:58.·"11:15"可以指示将第11竖列至第15竖列提取到具有五个竖列的矩阵中59.·"11:2:15"可以指示将第11竖列、第13竖列和第15竖列(以2为间隔)提取到具有三个竖列的矩阵中60.·"11-15"可以指示将第11竖列至第15竖列折叠成一个竖列,同时保留分隔符61.如果未指定,则可以将其余的行(在先前为相同的行的范围定义的最右边的竖列之后)提取为一个竖列,并且不会被分隔符进一步划分。62.data_type。该表还可以包括指示数据元素的类型的字段。这些类型的示例包括string、fstring(格式化字符串)、char、int、uint(无符号整数)、float等。例如,可以在括号中指定字符数或位数,例如,char(8)意指8个字符,并且uint(8)意指8位无符号整数。对于fstring数据类型,可以在带括号的字符串中指定字符串格式,例如,fstring('rs%uint(24)')表示以前缀"rs"开头并后跟无符号整数的字符串元素。如果未指定,系统处理器可以自动选择数据类型以对应于默认类型或优化性能。另外,如果数据块中的值将用于查询访问,则能够在数据类型定义中包括"key"限定符。在这种情况下,将为数据块生成搜索索引并将其作单独存储为元数据组成部分。63.comp_alg。该表还可以包括指示针对分隔文本文件中的区域/块中的相应区域/块的压缩算法名称及其参数(如果有的话)的字段。在一个实施例中,可以基于要压缩的区域/块的内容来确定要使用的压缩算法的类型。例如,可以使用与用于格式化字符串的算法不同的算法来压缩包括数值的区域/块。在一些实施例中,如果在格式化字符串中存在多个数据元素,则可以以相同的顺序为数据元素中的每个数据元素指定用逗号分开的压缩算法。以下是可以指出的压缩算法的示例的非穷举列表:64.·"rle"(行程编码):这种类型的压缩算法可以用于压缩相同值的长连续数据元素,例如,单核苷酸多态性(snp)阵列数据的基因型值。65.·"delta"(增量编码):这种类型的压缩算法可以适用于数值,只对当前元素与先前元素之差进行编码,而不是存储整个值。例如,该算法可以用于基因组坐标。66.·"enum"(枚举)。如果要压缩的数据包括从一小组可能值中选择的重复项目,则可以使用这种类型的压缩算法。在这种情况下,可以通过利用足够长以覆盖所有可能值的固定的最小位数对每个独特值进行编码来实现压缩。例如,在变体(错义、无义、沉默、移码、剪接位点等)的功能注释上可以使用枚举压缩。67.·"index"。如果要压缩的数据包括一系列具有固定格式的值和以规则间隔增加或减少的数值组成部分,则可以使用这种类型的压缩算法。在这种情况下,可以通过导出和存储以下各项来执行压缩:(i)数据格式,(ii)数值组成部分的初始值,(iii)间隔,以及(iv)元素的数量。68.·"sparse"。如果要压缩的数据包括大多数元素为默认值的稀疏矩阵,则可以使用这种类型的压缩算法。在这种情况下,可以通过将矩阵变换成类似矩阵市场的坐标格式来执行压缩,这种类似矩阵市场的坐标格式仅包含横行索引、竖列索引和非默认条目的值。此外,通过仅存储来自下三角形部分的条目,可以利用矩阵的任何对称属性。例如,在ngs数据的基因型值上可以使用这种方法。69.·通用压缩器。用户能够从多种通用压缩算法(例如,gzip、bzip2、7-zip或算术编码)中指定一种通用压缩算法来压缩不属于先前类别中的任一种类别的通用数据类型。70.·组合算法。用户能够指定要在数据单元上顺序地执行的一连串编码算法。例如,"enum rle"意味着首先将原始数据变换成枚举代码,然后对转换后的值应用rle。71.·"auto"。该值指示让控制系统处理器的软件基于数据分析来选择压缩算法。应当注意将所选择的压缩算法正确解压缩。72.·"default"或""(空白)。该值指示应当应用在全局参数gen_comp_alg中定义的通用压缩算法。73.·"original"。该值指示应当在不压缩的情况下保存分隔文本字段的区域/块中的原始数据。这可以允许对数据字段进行更快的选择性访问查询。74.data_unit_size。该表还可以包括指示数据单元大小是否偏离全局参数default_data_unit_size中的默认值的字段。类似地,它的值可以是整数、"auto"或"inf"。75.column_name。该表还可以包括指示由定义区域覆盖的(一个或多个)竖列的(一个或多个)名称的字段。在一个实施例中,用户可以指定用逗号分开的竖列名称字符串,或者使用保留表达式"first_row"来指示第一横行包含(一个或多个)竖列名称并且不应当与其余横行一起压缩。如果未指定,则可以为每个竖列自动生成名称。76.block_name。该表还可以包括指示独特标识数据压缩块的名称的字段。如果未指定,则可以使用column_name。77.在一个实施例中,用户可以创建压缩和相关联的解压缩算法,以便处理特殊的数据类型。为了防止恶意软件的侵害,每个压缩器/解压缩器可以附有数字签名作为来源和真实性的证明。在一些实施例中,用户创建的算法可能需要这种数字签名。可以将可执行文件连同它们的数字签名与要在模式定义中使用的它们的相关id和方法签名(输入参数列表)一起导入到压缩器/解压缩器储存库中,或者将它们存储为用于可移植性和可访问性的压缩数据文件的部分。在一些场景中,算法可以要求来自另一竖列或块的数据作为输入。例如可以由用户将用特殊字符(例如,"$")作为前缀的竖列/块名称指定为comp_alg中的方法签名的部分来支持这种情况。78.可以基于定义区域的位置对指令表中的横行进行排序。在一个实施例中,具有较小起始行号的区域应当首先出现。如果多个区域的起始行号相同,则具有较小起始竖列索引的区域会最先出现。而且,可以将指令表中未覆盖的整行的块与其他注释/空白行聚集在一起以进行压缩。可以将它们在原始文本中的行号存储为元数据,以用于将来的文件重建。软件可以将指令表中缺失的任何其他区域识别为要使用在全局参数gen_comp_alg中定义的算法来压缩的个体块。在一些实施例中,如果在区域定义中存在任何歧义或重叠,则可以返回region_error。在一个实施例中,可以将全局参数和指令表的定义散布在模式中,以便允许在压缩指令之间改变全局参数。79.可以用诸如《blocks》《/blocks》之类的标签来标记一组块的指令,而可以用诸如《block》《/block》之类的标签来标记个体块。然后可以将上述字段指定为这些标签的属性。在至少一个实施方式中,可以例如通过嵌套块结构将每个块划分成子块。80.在一些实施例中,可以用诸如《table》《/table》之类的标签来封闭每个数据表的开头和结尾。以下是可以应用的属性的一些示例:81.·id——表的名称82.·start_line——表中第一横行的行号,包括标题(如果存在的话)。如果未指定,则从文件解析器的当前位置开始。83.·num_rows——表中的横行数。如果未指定,则表可以在碰到空白行或文件结尾时结束。84.·first_row_col_names——如果为真,则第一横行包含要与数据条目分开处理并被存储在元数据中的竖列名称。默认值可以为假。85.·first_col_row_names——如果为真,则第一竖列包含要与数据条目分开处理并被存储在元数据中的横行名称。默认值可以为假。86.·col_names——竖列名称列表,其顺序与表中的竖列顺序相同。87.·row_names——横行名称列表,其顺序与表中的横行顺序相同。88.·col_span——整数值列表,每个整数值对应于一个竖列名称,并且指示与该竖列名称相关联的数据竖列的数量。这对于将多个数据竖列分组到同一标题下会很有用。如果未指定,则可以假定竖列名称与数据竖列之间是一对一的映射。89.在表定义中,可以在表或块的水平上定义相同的数据元素(例如,竖列名称)。在这种情况下,后面的值可能会覆盖前面的值。可以遵循分层命名方法来引用表中的数据元素。例如,一个表可以具有包含四个竖列的id"tab1",其中,前两个竖列被命名为"col_1"和"col_2",第3个竖列和第4个竖列被分组在名称"cols_3_4"下。然后,所有竖列可以被称为tab1.cols,第一竖列被称为tab1.col[1]或tab1.col["col_1"],并且第四个竖列被称为tab1.col[4]或tab1.col["cols_3_4"][2](例如,第二个竖列被分组在"cols_3_4"下)。[0090]图2a和图2b图示了用于第一类型的压缩模式的指令表的(一个或多个)示例,这(一个或多个)示例图示了可以如何定义用于压缩的块。在图2a中,包括用于将原始分隔文本分隔成要独立压缩的块的信息。在图2b中,图示了用于以扩展形式和紧凑形式执行分隔的相关联的指令表,扩展形式和紧凑形式是等效的。因为紧凑表涉及从第五行开始的区域,所以应当将文件中的前四横行作为一般文本进行压缩。可以将扩展形式的第2-4横行折叠成紧凑形式的单个横行,因为相同的压缩指令应用于这三个竖列。"first_row"条目指示应当从相应竖列的第一横行中提取竖列名称。[0091]图3a和图3b图示了用于第二类型的压缩模式的指令表的示例,该示例图示了可以如何定义用于压缩的块。在图3a中,包括用于将原始分隔文本分隔成要独立压缩的块的信息。在图3b中,图示了用于执行分隔的指令表。因为该表涉及从第五行开始的区域,所以应当将前四横行作为一般文本进行压缩。对于第5行到第8行,"2:3"中的冒号指示应当单独压缩和存储第2竖列和第3竖列。而对于第9行到第10行,"2-3"中的连字符指示应当将第2竖列和第3竖列合并成单个竖列以进行压缩。[0092]使用压缩模式对于至少一些应用来说尤其有益,因为用户可以根据特定应用来设计压缩模式。因此,该模式及其伴随的压缩特征和解压缩特征允许定制实施例中的一个或多个实施例,同时允许仅选择性地访问要进行解压缩的那些部分(例如,数据块、数据块中的数据单元等),而不必对压缩文件的其他部分进行解压缩。这不仅允许仅将压缩文件的特定部分作为访问目标,而且还使得其他部分(例如,不是直接感兴趣的部分)不用被解压缩,从而在文件指向这种应用时加速了访问基因组数据的目标部分的过程。[0093]在140处,将压缩模式存储在存储区(例如但不限于模式储存库)中。可以随后检索压缩模式以指导处理器(例如,实施各种管理器和其他逻辑单元的处理器)执行包括以下各项的操作:对分隔文本文件进行解构,使用不同的压缩算法来压缩解构文件的不同部分,对文件的压缩部分进行解压缩,以及根据解压缩部分来重建文件。如本文所述,压缩模式可以包括元数据或者与元数据相关联地进行存储。[0094]文件解构和压缩[0095]图4图示了用于解构和压缩分隔文本文件的系统的实施例,该分隔文本文件例如可以包括基因组信息。图5图示了用于解构和压缩分隔文本文件的方法的实施例,该方法例如可以由图4的系统来执行。[0096]参考图4和图5,该方法包括:在510处,将分隔文本文件405从数据源上传到系统的文件管理器。数据源可以是例如计算机或其他类型的处理系统,其捕获和/或存储原始获得的数据。例如,当数据对应于基因组信息时,可以最初从实验室仪器获得数据。数据可以是直接从实验室仪器上传的,也可以是以原始形式或预处理形式存储的。在一个实施例中,对数据进行预处理以符合根据本文描述的实施例格式化和布置的数据表示。当以这种方式进行表示、格式化或进行其他构建时,可以以有效方式执行对分隔文本文件的不同块(和/或数据块中的一个或多个数据块内的不同数据单元)的压缩。[0097]在520处,检测分隔文本文件的数据格式。例如,可以通过检测分隔文本文件的文件扩展名来完成这种操作。可以例如通过压缩模式生成器或选择器或者通过其他管理逻辑单元来检测文件扩展名或指示文件格式的其他信息。[0098]在530处,确定或选择与检测到的分隔文本文件的格式相对应的压缩模式。可以例如通过压缩模式生成器/选择器410单独地或结合一个或多个其他特征来执行这种操作。例如,如果存在与分隔文本文件的文件扩展名相关联的预定义模式,则压缩模式生成器可以从模式储存库430中检索该模式,分隔文本文件的文件扩展名先前与用于与具有对应兼容格式的分隔文本文件一起使用的模式一起进行加载和存储。[0099]如果分隔文本文件的格式是新的文件格式,则用户可以为新的文件格式定义和导入压缩模式。例如,可以通过压缩模式编辑器420来完成这种操作,该压缩模式编辑器420基于用户输入415来接收和生成针对新的文件格式的定制的压缩模式425。在一个实施例中,压缩模式编辑器420可以是帮助用户定义具有支持功能的新的模式的压缩模式创建工具,该支持功能例如可以包括(i)通过分析分隔文本来自动生成压缩模式,以及(ii)用于模式定制的用户界面,其具有对压缩方法和参数的自动建议。然后可以将定制的压缩模式与一个或多个文件扩展名相关联地存储在模式储存库中以供将来使用。[0100]在一个实施例中,分隔文本文件的格式和/或通过压缩模式生成的压缩格式可以包括具有适当安全保护措施的嵌入式代码(例如,能在文件格式本身内执行的压缩器)。相同或不同的实体可以使用该代码至少对压缩文件中的与嵌入式代码相对应的选定部分进行解压缩。可以包括嵌入式代码,而不管压缩数据的压缩器或内容,但是对于使用定制的压缩算法压缩的内容来说,这可能特别有益。也可以根据需要使用该代码来压缩数据。[0101]在540处,模式解读器440解读被确定为与检测到的分隔文本文件的格式相对应的压缩模式。可以以多种方式解读该模式。例如,压缩模式的解读可以包括利用在模式中定义的值来更新在运行时存储器中的全局参数。仅在后续指令中使用这些新值。在一些实施例中,压缩指令可以只有在对分隔文本的解析(例如,从上到下逐行解析,并且针对每行,从左到右逐列解析)已经进入与该指令相关联的矩形区域时才是激活的。对于每个激活的指令,可以创建缓冲器来保存从相关联的区域提取的值的向量或矩阵,并且可以根据(一个或多个)定义的算法和参数来设置压缩器。[0102]在550处,解析分隔文本文件以提取符合由模式解读器解读的模式的多个块4551至455n。可以将这些块划分成相同大小的数据单元,或者这些数据单元中的至少部分数据单元具有不同的大小。可以随机确定不同的大小或者根据对应的模式来确定不同的大小。可以通过解析器和数据提取逻辑单元450以各种方式执行解析操作。例如,可以逐行解析分隔文本文件以生成对应的多个块。例如可以通过以下操作来执行上述操作:使用分隔符将分隔文本文件的每行划分成令牌,然后根据每个令牌的行号和竖列索引将每个标记分配给块缓冲器。然后,可以将每个缓冲器中的令牌聚集成预定义大小的数据单元以进行压缩。在另一实施例中,可以将分隔文本文件解析成二维块。一旦生成了块,就将这些块输入到压缩管理器中。[0103]在560处,压缩管理器460使用一种或多种压缩技术来压缩块。例如,压缩管理器可以包括多个压缩器4651至465n,其中,n≥1。压缩器4651至465n中的每个压缩器可以实施不同的压缩算法来压缩由块提取逻辑单元生成的块中的一个或多个块。基于与从模式解读器输出的适用模式的解读相对应的信息来确定用于压缩每个块的压缩器/算法。在一个实施例中,可以并行执行不同压缩器对块的压缩,以实现提高的效率和性能。虽然图4图示出解析的块与压缩器一对一的对应关系,但是在一个实施例中,压缩器中的任何一个或多个压缩器都可以压缩多个块。[0104]在570处,将压缩的块4681、4682、…468n存储在档案的相应存储区中。在一个实施例中,可以将压缩的块存储为个体文件部分并将其与标识每个压缩的块的位置以支持随机数据访问的主索引表存储在一起。一个或多个存储设备可以包括存储区。例如,存储设备可以是一个或多个缓冲器、数据库位置、存储器、高速缓冲存储器或其他类型的数据存储装置。[0105]可以将各种类型的信息与压缩的块存储一起或相关联地存储。该信息可以包括例如用于解析分隔文本文件的压缩模式470和/或描述或以其他方式链接到已被压缩的多个块中的相应的一个块的元数据475。元数据的示例包括:表的横行和竖列的名称、为数据块自动选择的(在模式中未指定的)特定压缩算法,以及针对每个块的分隔符符号(当使用一个以上的分隔符符号时)。为了便于对特定的行和列进行快速随机访问或通过特定项目进行查询,元数据还可以包括索引信息。还可以存储任何数据块所需的任何专用压缩和解压缩算法480的可执行程序以及它们的id和方法签名,以提高压缩文件的可移植性和可访问性。[0106]额外地或替换地,可以将标识压缩器用来压缩多个块中的相应的一个块的特定类型的压缩算法的信息与多个块中的对应的块存储在一起,或者可以将标识压缩器用来压缩多个块中的相应的一个块的特定类型的压缩算法的信息存储在链接用于压缩的块中的每个压缩的块的压缩算法类型的表中。[0107]在570处,可以通过文件管理器485将所有生成的文件组成部分(包括压缩的块、模式、元数据和任何专用压缩器和解压缩器)组织和打包到档案490中。[0108]在另一实施例中,不是将压缩的数据单元、模式和元数据作为文件部分存储在档案中,而是能够以紧凑的文件格式进一步组织和存储这些不同的组成部分,如在相关的美国专利申请us______________(代理人案卷号phi3170)中所描述的。[0109]上述系统和方法实施例可以包括许多额外特征。例如,该系统可以包括压缩器/解压缩器储存库492,该压缩器/解压缩器储存库492存储针对要使用的压缩技术和解压缩技术中的每种压缩技术和解压缩技术的实际算法以及它们在模式指令中的用法的定义。在一个实施例中,可以以加密形式将这些算法中的全部或部分内容存储在储存库492中。而且,在494中,可以将加密算法与验证加密的数字签名相关联地存储。可以将数字签名与批准模式在系统中的用法的数字证书存储在一起,也可以不存储在一起。[0110]而且,在一些情况下,可以提取注释/空白行的一个或多个块或压缩模式中定义的区域未覆盖的横行并将其聚合成一个块,同时记录它们在原始文本中的行号。在这种情况下,然后可以应用预定类型的文本压缩,同时将压缩的块存储为独立的文件部分。[0111]数据解压缩和文件重建[0112]图6图示了用于对分隔文本文件的压缩部分进行解压缩并然后将解压缩的部分重建为分隔文本文件的系统的实施例。图7图示了用于执行解压缩和文件重建操作的方法的实施例,该方法例如可以使用图6的系统来实施。[0113]参考图6和图7,该方法包括,在710处,检索(例如dtc格式的)压缩文件605并将其加载到系统的文件管理器610中。文件管理器610可以是在压缩期间使用的同一文件管理器,也可以是不同的文件管理器。可以从存储区中检索压缩文件,如前所述,该存储区可以是档案或另一类型的存储区。例如,可以响应于来自将压缩数据(例如,基因组数据)用于研究或其他目的的应用或系统的请求而检索压缩文件。可以从被包括在处理器中或被连接到处理器的本地处理器接收该请求,或者可以从网络接收该请求。在后一种情况下,档案或存储区可以是例如服务器、云存储装置或通过网络连接到文件管理器的其他储存库。[0114]在720处,文件管理器从压缩文件中提取(或者从针对压缩文件存储的表中检索)与压缩模式和元数据相对应的信息620。可以使用文件管理器已知的预定压缩算法来压缩该信息本身。当以加密和压缩的形式存储与压缩模式和元数据相对应的信息时,文件管理器可以使用对已知压缩算法执行的压缩进行逆转的解压缩器对压缩模式信息和元数据进行解密和解压缩。如前所述,在一个实施例中,压缩模式信息和元数据不仅可以指示例如用于压缩分隔文本文件的块的压缩指令(包括算法),而且在一些情况下还可以指示用于块和/或索引信息的一个或多个分隔符符号。[0115]在730处,从文件的压缩模式中提取关于要应用于不同数据块的解压缩算法的信息。基于该信息,然后在665中从压缩器/解压缩器储存库检索(例如,验证、解密和/或解压缩)解压缩算法的代码,和/或在630中从专用压缩器/解压缩器的嵌入式模块中检索(例如,验证、解密和/或解压缩)解压缩算法的代码。[0116]在740处,为了恢复原始分隔数据文件的各部分的目的,解压缩管理器通过以下操作来创建多个解压缩器6551至655n的实例(对其进行实例化):加载多个解压缩器6551至655n的相应算法的代码,设置任何解压缩参数,并且为计算和运行时存储分配资源。虽然解压缩器的数量被示为与压缩的块的数量相同,但是在一些实施例中可能不是这种情况。例如,当两个或更多个块由相同的算法压缩时,解压缩器中的每个解压缩器可以对压缩的块中的两个或更多个压缩的块进行解压缩。[0117]解压缩管理器650对解压缩器实例进行协调,以基于由模式解读器660接收的信息使用不同的对应算法对块进行解压缩,该模式解读器660可以是也可以不是与在该方法的解压缩阶段期间使用的模式解读器相同的模式解读器。该模式解读器读取并运行用于基于模式信息和元数据进行解压缩的指令,并且检索要应用于压缩数据块的解压缩算法的代码。然后,该模式解读器将对应的信息传递给解压缩管理器,该解压缩管理器根据来自模式解读器的指令对压缩的块进行解压缩。例如,可以由已经基于在压缩模式中指定的算法和参数而实例化的解压缩器中的(与所使用的压缩算法兼容的)一个解压缩器来执行对每个文件部分的解压缩。为了加速解压缩过程,可以并行执行对各个文件部分甚至各个数据单元的解压缩。[0118]在一个实施例中,一旦根据通过文件管理器获得的压缩模式确定了特定的解压缩算法及其对应参数,模式解读器就可以从储存库665或嵌入式模块630中检索与适当的解压缩算法相对应的代码,并且将该代码和相关参数传递给解压缩器管理器,以用于对解压缩器进行实例化。[0119]在750处,文件管理器从捆绑文件中提取压缩的块6401至640n。如前所述,n可以大于或等于1,并且可以基于不同的压缩算法来压缩这些块。[0120]在760处,将压缩的块输入到解压缩管理器650中。一旦已经利用来自压缩器/解压缩器储存库和/或嵌入式模块的代码对解压缩器进行了实例化和配置,解压缩器6551至655n就对压缩的块进行解压缩,以恢复呈其未压缩形式的分隔文本文件的块。可以将这些块存储在例如相应的缓冲器中,以供文件重建逻辑单元使用。[0121]在770处,文件重建管理器680对现在未压缩的块6701至670n进行组合以形成现在重建的原始分隔文本文件690。文件重建管理器可以基于压缩模式、元数据和由模式解读器确定的其他信息来确定如何组合未压缩的块,以便恢复重建的分隔文本文件。这包括重新组合行、列、块或块的其他部分,以重建在解构和压缩之前存在的分隔文本文件的原始格式。在一个实施例中,可以通过以下操作来逐行执行对原始文件的重建:从缓冲器中提取数据元素,并且根据压缩模式和元数据利用插入正确的分隔符符号的手段来组装原始文件。[0122]由本文描述的实施例执行的选择性压缩和解压缩可以允许对压缩的分隔文本文件的一个部分中的一个或多个块进行检索、解压缩和重建,而无需对文件的其他部分中的块进行进行检索、解压缩和重建。例如,可以从压缩数据中检索包含用户感兴趣的信息的特定区域(例如,特定范围的一个或多个横行和/或一个或多个竖列),而无需对压缩的分隔文本文件的其他部分进行检索和/或解压缩。因此,可以以独立于文件的其他部分的方式,仅检索和使用感兴趣的多部分分隔文件的数据。这允许仅选择性地解压缩和访问分隔文本文件的目标部分,这有益于支持快速查询和随机访问。[0123]图8图示了选择性地访问压缩的分隔文本文件中的一个或多个块而独立于访问(例如,解压缩、解构等)文件的其他部分的方法的实施例。[0124]参考图8,该方法包括:在810处,接收指示压缩的分隔文本文件的一个或多个感兴趣区域的信息。这一个或多个感兴趣区域可以对应于例如基因组数据文件的特定部分。例如,可以通过从与感兴趣区域相关联的压缩模式中提取指令来接收信息。在一个实施例中,区域信息可以包括在压缩模式中定义的表/块标识符(id),该id标识压缩的分隔文本文件的(一个或多个)感兴趣部分。[0125]在820处,基于从压缩模式中提取的指令来识别与(一个或多个)感兴趣区域相关联的压缩数据块(例如,文件部分)。可以通过例如模式解读器来执行这个操作。[0126]在830处,对于在操作820中识别的每个数据块,可以识别与(一个或多个)感兴趣区域相关联的一个或多个数据单元。[0127]对于操作820或830或这两者,可以例如根据在由文件管理器访问的表中存储的位置信息对压缩的分隔文本文件的(一个或多个)部分(例如,数据块、数据单元)进行定位。例如可以通过以下方式完成这种操作。首先,将(一个或多个)感兴趣的文件部分的起始行号和结束行号映射到块中的对应的块索引和移位行号。这可以例如基于公式(1)和(2)来完成。[0128]data_unit_index=floor((line_number-data_block_loc)/data_unit_size) 1ꢀꢀ(1)[0129]data_unit_offset=line_number-(data_unit_index-1)*data_unit_size(2)[0130]在这些公式中,data_block_loc是块位置,例如,原始文本中的块的起始行号,并且data_unit_size是每个数据单元的行数。这两个元素都可以由在压缩模式中包括的信息来指示。其中,使用表的row_index而不是line_number,此时data_block_loc可以改为表中块的第一横行的索引。[0131]为了基于竖列值来执行查询,可以对查询条件中涉及的竖列进行解压缩。替代地,能够在基于竖列值生成的搜索树上执行查询并将查询结果存储为与该竖列相关联的元数据组成部分。然后,可以计算匹配的横行的行号,并且可以使用公式(1)和(2)来确定(一个或多个)对应的数据单元块和(一个或多个)移位。[0132]对于所有涉及的块,可以识别在操作840中指示的块,并且可以使用计算的行移位来提取(一个或多个)块内的相关横行。[0133]在840处,数据解压缩管理器使用针对与(一个或多个)感兴趣区域相关联的数据块指定的(一种或多种)算法和参数对解压缩器进行实例化和配置。这可以涉及配置解压缩器中的一个解压缩器或者否则选择已经利用对应的解压缩算法进行配置的解压缩器。[0134]在850处,解压缩器中的对应的解压缩器对与(一个或多个)感兴趣区域相关联的(一个或多个)数据块中的数据单元进行解压缩。[0135]在860处,一旦发生了解压缩,就根据在压缩模式中定义的格式在选定区域中组装(一个或多个)解压缩的块。在一个实施例中,用户可以(通过用户输入中的信息)指定所提取的数据单元的输出格式,例如通过指定描述应当如何利用与压缩模式的语义相似的语义来组织块的重建模式来指定所提取的数据单元的输出格式。然后,可以(例如在显示器上)以组装形式输出(一个或多个)感兴趣的解压缩的块,所有这些操作都不需要对压缩的分隔文本文件中的不感兴趣的块进行解压缩。在一个实施例中,针对感兴趣区域而显示其所在的(一个或多个)感兴趣的解压缩的块的该感兴趣区域可以对应于整个基因组信息中的特定数据节段,例如对应于感兴趣的特定对象或样本。[0136]根据一个实施例,可以使用所提出的cdtc框架为虚拟联系人文件(vcf)和bed文件的处理定制压缩模式。在下面的示例中,我们说明了如何能够分别为vcf文件格式和bed文件格式定义压缩模式。[0137]vcf文件示例[0138][0139]参考表1中的vcf文件示例,可以使用以下代码作为可能的(但不一定是最优的)方法来应用以下压缩模式。[0140][0141][0142]注意,在这个示例中,两个专门的压缩算法"vcf_info"和"vcf_sample"被设计来处理信息和样本数据(na00001,na00002,na00003)。对于vcf_info方法,输入参数$comments指示注释块中的信息应当用于标识所有变体属性。然后提取info竖列中的对应属性值并将其存储为每个要单独压缩的属性的矩阵。对于vcf_sample方法,输入参数$format指示格式竖列中的属性(gt,gq,dp,hq)应当用于划分数据元素并将其组织到它们的相应矩阵中,以便更有效地压缩各个属性。[0143]bed文件示例[0144][0145]参考表2中的bed文件示例,可以使用以下代码作为可能的(但不一定是最优的)方法来应用以下压缩模式。[0146][0147][0148]图9图示了可以用于执行本文描述的系统和方法实施例的操作的处理系统的示例。该处理系统包括至少一个处理器910、存储器920、存储区930、通信接口940以及输出设备950。[0149]至少一个处理器910可以执行管理器、选择器、解读器、解析器的操作以及本文描述的其他信息生成和处理操作。在一个实施例中,处理器910可以具有多个核,每个核专用于执行不同的压缩和/或解压缩算法。在另一实施例中,可以包括多个用于执行不同的预定操作的处理器,这些不同的预定操作包括不同的压缩/解压缩算法和/或各种其他操作,包括解析、模式生成、模式解读以及与实施例相关联的其他操作。在一个实施例中,同一处理器可以执行所有的压缩和解压缩。在这样做时,至少一个处理器910可以执行文件构建和解构操作,并且可以生成表、数据结构和模式,并且可以解读模式并执行允许用户生成定制模式的生成和编辑操作。[0150]存储器920可以存储用于使至少一个处理器910执行系统和方法实施例的操作的指令。存储器可以是本地连接到至少一个处理器的(一个或多个)非瞬态计算机可读介质中的任何一个或组合。在一个实施例中,处理器和存储器可以位于在研究机构、实验室或其他位置使用的工作站中,其中,可以将来自分隔文本文件的信息与一个或多个预期应用结合使用。在存储基因组数据的分隔文本文件的背景中尤其如此。[0151]存储区930可以是用于以原始形式、压缩形式或这两种形式存储分隔文本文件的数据库、储存库、档案或其他存储区。像存储器一样,存储区可以是本地连接到至少一个处理器的(一个或多个)非瞬态计算机可读介质中的任何一个或组合。在一个实施例中,存储区可以通过网络连接被远程连接到至少一个处理器。例如,当存储区930被包括在存储区网络、云计算网络或其他处理和/或数据存储架构中时,可能就是这种情况。[0152]通信接口(i/f)940可以接收原始数据,该原始数据然后可以由至少一个处理器910处理以形成分隔文本文件。该处理可以包括:利用结合本文讨论的压缩模式描述的分隔符和其他符号和信息将数据转换成文本文件格式。接口940还可以接收结合实施例发出的请求以及来自可能也对查看或使用分隔文本文件感兴趣的其他实体的请求。[0153]输出设备950可以是显示器,该显示器生成如本文所述地存储和/或处理的分隔文本文件的全部或选定部分。当只有感兴趣区域被输出以用于分析时,这是特别有用的,在这种情况下,只有在存储区930中存储的压缩的分隔文本文件的(一个或多个)感兴趣块被解压缩以用于输出,而在同一文件中的与感兴趣区域不相关联的其他块不被解压缩。[0154]本文描述的方法、过程和/或操作可以由通过计算机、处理器、控制器或其他信号处理设备运行的代码或指令来执行。根据一个或多个实施例,这种代码或指令可以被存储在非瞬态计算机可读介质中。因为详细描述了形成方法(或计算机、处理器、控制器或其他信号处理设备的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理设备转换成用于执行本文的方法的专用处理器。[0155]本文公开的实施例的处理器、解读器、生成器、解析器、提取器、编辑器、压缩器、解压缩器、管理器、重建器、解构器、选择器以及其他信息生成、处理和计算特征可以在逻辑单元中实施,该逻辑单元例如可以包括硬件、软件或这两者。当至少部分地在硬件中实施时,处理器、解读器、生成器、解析器、提取器、编辑器、压缩器、解压缩器、管理器、重建器、解构器、选择器以及其他信息生成、处理和计算特征可以是例如各种集成电路中的任一种,包括但不限于专用集成电路、现场可编程门阵列、逻辑门的组合、片上系统、微处理器或另一类型的处理或控制电路。[0156]当至少部分地在软件中实施时,处理器、解读器、生成器、解析器、提取器、编辑器、压缩器、解压缩器、管理器、重建器、解构器、选择器以及其他信息生成、处理和计算特征可以包括例如用于存储例如由计算机、处理器、微处理器、控制器或其他信号处理设备运行的代码或指令的存储器或其他存储设备。因为详细描述了形成方法(或计算机、处理器、微处理器、控制器或其他信号处理设备的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理设备转换成用于执行本文的方法的专用处理器。[0157]从前面的描述中应当清楚,本发明的各种示例实施例可以以硬件或固件来实施。此外,各种示例性实施例可以被实施为在机器可读存储介质上存储的指令,这些指令可以由至少一个处理器读取并运行以执行本文详细描述的操作。机器可读存储介质可以包括用于以机器可读的形式存储信息的任何机构,例如,个人计算机或膝上型计算机、服务器或其他计算设备。因此,机器可读存储介质可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光学存储介质、闪存设备和类似的存储介质。[0158]本领域技术人员应当意识到,本文中的任何框图都表示体现本发明的原理的说明性电路的概念图。类似地,将意识到,任何流程图、流程图解、状态转变图、伪代码等都表示可以基本上在机器可读介质中表示并由计算机或处理器如此执行的各种过程,而无论这种计算机或处理器是否被明确示出。[0159]虽然已经特别参考本发明的某些示例性方面详细描述了各种示例性实施例,但是应当理解,本发明还能够具有其他实施例,并且能够在各种明显的方面修改其细节。对于本领域技术人员来说显而易见的是,在本发明的精神和范围内能够实施各种变化和修改。因此,前述公开内容、描述和附图仅用于说明目的,而决不以任何方式限制本发明,本发明仅由权利要求来限定。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献