CN115391298A - 基于内容的动态混合数据压缩 - Google Patents
基于内容的动态混合数据压缩 Download PDFInfo
- Publication number
- CN115391298A CN115391298A CN202110571311.3A CN202110571311A CN115391298A CN 115391298 A CN115391298 A CN 115391298A CN 202110571311 A CN202110571311 A CN 202110571311A CN 115391298 A CN115391298 A CN 115391298A
- Authority
- CN
- China
- Prior art keywords
- data
- data file
- compression
- data compression
- compression algorithm
- 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
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3071—Prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3064—Segmenting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种信息处置系统包括处理器,所述处理器被配置为处理训练数据文件以确定最佳数据压缩算法。所述处理器还可以执行压缩率分析,所述压缩率分析包括使用数据压缩算法来压缩所述训练数据文件,计算与所述数据压缩算法中的每一者相关联的压缩率,从与所述每种数据压缩算法相关联的所述压缩率来确定最佳压缩率;以及基于所述最佳压缩率来确定与所述训练数据文件相关联的期望数据压缩算法。所述处理器还可以执行概率分析,所述概率分析包括基于所述期望数据压缩算法来生成符号转换矩阵,基于所述符号转换矩阵提取统计特征数据,以及基于所述统计特征数据生成概率矩阵以确定用于工作数据文件的每个片段的所述最佳数据压缩算法。
Description
技术领域
本公开总体上涉及信息处置系统,并且更具体地涉及基于内容的动态混合数据压缩。
背景技术
随着信息的价值和使用持续增长,个人和商家寻求附加方式来处理和存储信息。一个选项是信息处置系统。信息处置系统通常处理、编译、存储或传送用于商业、个人或其他目的的信息或数据。在不同的应用之间,技术和信息处置需求和要求可能会有所不同。因此,信息处置系统也可能关于以下方面有所不同:处置何种信息,如何处置信息,处理、存储或传送多少信息,以及可以多快且多高效地处理、存储或传送信息。信息处置系统的变化允许信息处置系统是通用的或者针对特定用户或特定用途(诸如财务事务处理、航空订票、企业数据存储或全球通信)进行配置。另外,信息处置系统可以包括可以被配置为处理、存储和传送信息的多种硬件和软件资源,并且可以包括一个或多个计算机系统、图形接口系统、数据存储系统、联网系统和移动通信系统。信息处置系统还可以实施各种虚拟化架构。信息处置系统中的数据和语音通信可以经由网络来进行,所述网络是有线的、无线的或某种组合。
发明内容
一种信息处置系统包括处理器,所述处理器被配置为处理训练数据文件以确定最佳数据压缩算法。所述处理器还可以执行压缩率分析,所述压缩率分析包括使用数据压缩算法来压缩所述训练数据文件,计算与所述数据压缩算法中的每一者相关联的压缩率,从与所述每种数据压缩算法相关联的所述压缩率来确定最佳压缩率;以及基于所述最佳压缩率来确定与所述训练数据文件相关联的期望数据压缩算法。所述处理器还可以执行概率分析,所述概率分析包括基于所述期望数据压缩算法来生成符号转换矩阵,基于所述符号转换矩阵提取统计特征数据,以及基于所述统计特征数据生成概率矩阵以确定用于工作数据文件的每个片段的所述最佳数据压缩算法。
附图说明
应当理解,为了使图示简单和清楚起见,图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可能相对于其他元件被夸大。关于本文中的附图示出和描述结合了本公开的教导的实施方案,在附图中:
图1是示出根据本公开的实施方案的信息处置系统的框图;
图2是示出根据本公开的实施方案的用于基于内容的动态混合数据压缩的系统的示例的框图;
图3是示出根据本公开的实施方案的在用于基于内容的动态混合数据压缩的训练模式期间的过程的示例的流程图;
图4示出了根据本公开的实施方案的符号转换矩阵的构造的示例;
图5A示出了根据本公开的实施方案的观察概率矩阵的示例;
图5B示出了根据本公开的实施方案的初始状态分布矩阵的示例;
图5C示出了根据本公开的实施方案的状态转换概率矩阵的示例;
图6是示出根据本公开的实施方案的在用于基于内容的动态混合数据压缩的工作模式期间的过程的示例的流程图;
图7A、图7B、图7C、图7D和图7E示出了根据本公开的实施方案的在用于基于内容的动态混合压缩的工作模式期间生成的状态序列的示例;
图8A和图8B是示出根据本公开的实施方案的以用于基于内容的动态混合压缩的训练模式进行的方法的示例的流程图;
图9是示出根据本公开的实施方案的以用于基于内容的动态混合压缩的工作模式进行的方法的示例的流程图;并且
图10是示出根据本公开的实施方案的用于验证用于基于内容的动态混合压缩的最佳数据压缩算法的方法的示例的流程图。
在不同附图中使用相同的附图标记指示类似或相同的项目。
具体实施方式
提供以下结合附图的描述以帮助理解本文公开的教导。所述描述集中于教导的具体实施方式和实施方案,并且被提供来帮助描述本教导。该集中不应被解释为限制本教导的范围或适用性。
图1示出了信息处置系统100的实施方案,所述信息处置系统包括处理器102和104、芯片组110、存储器120、与视频显示器134连接的图形适配器130、包括基本输入和输出系统/可扩展固件接口(BIOS/EFI)模块142的非易失性RAM(NV-RAM)140、磁盘控制器150、硬盘驱动器(HDD)154、光盘驱动器156、与固态驱动器(SSD)164连接的磁盘仿真器160、与扩展资源174和可信平台模块(TPM)176连接的输入/输出(I/O)接口170、网络接口180以及基板管理控制器(BMC)190。处理器102经由处理器接口106连接到芯片组110,而处理器104经由处理器接口108连接到芯片组。在特定实施方案中,处理器102和104经由诸如HyperTransport链路、QuickPath互连等高容量的相干结构连接在一起。芯片组110表示集成电路或一组集成电路,所述集成电路管理处理器102和104与信息处置系统100的其他元件之间的数据流。在特定实施方案中,芯片组110表示一对集成电路,诸如北桥部件和南桥部件。在另一个实施方案中,芯片组110的一些或全部功能和特征与处理器102和104中的一个或多个集成。
存储器120经由存储器接口122连接到芯片组110。存储器接口122的示例包括双倍数据速率(DDR)存储器通道,并且存储器120表示一个或多个DDR双列直插式存储器模块(DIMM)。在特定实施方案中,存储器接口122表示两个或更多个DDR通道。在另一个实施方案中,处理器102和104中的一个或多个包括存储器接口,所述存储器接口为处理器提供专用存储器。DDR通道和所连接的DDR DIMM可以符合特定的DDR标准,诸如DDR3标准、DDR4标准、DDR5标准等。
存储器120可以进一步表示存储器类型的各种组合,诸如动态随机存取存储器(DRAM)DIMM、静态随机存取存储器(SRAM)DIMM、非易失性DIMM(NV-DIMM)、存储类存储器装置、只读存储器(ROM)装置等。图形适配器130经由图形接口132连接到芯片组110,并且向视频显示器134提供视频显示器输出136。图形接口132的示例包括高速外围组件互连(PCIe)接口,并且根据需要或期望,图形适配器130可以包括四通道(x4)PCIe适配器、八通道(x8)PCIe适配器、16通道(x16)PCIe适配器,或另一种配置。在特定实施方案中,图形适配器130向下设置在系统印刷电路板(PCB)上。视频显示器输出136可以包括数字视频接口(DVI)、高清多媒体接口(HDMI)、DisplayPort接口等,并且视频显示器134可以包括监视器、智能电视、诸如膝上型计算机显示器之类的嵌入式显示器等。
NV-RAM 140、磁盘控制器150和I/O接口170经由I/O通道112连接到芯片组110。I/O通道112的示例包括芯片组110与NV-RAM140、磁盘控制器150和I/O接口170中的每一者之间的一个或多个点对点PCIe链路。芯片组110还可以包括一个或多个其他I/O接口,包括PCIe接口、工业标准架构(ISA)接口、小型计算机串行接口(SCSI)接口、集成电路间(I2C)接口、系统分组接口(SPI)、通用串行总线(USB)、另一种接口或其组合。NV-RAM 140包括BIOS/EFI模块142,所述BIOS/EFI模块存储机器可执行代码(BIOS/EFI代码),所述机器可执行代码操作以检测信息处置系统100的资源,提供用于资源的驱动器、将资源初始化并提供用于资源的常见访问机制。将在下面进一步描述BIOS/EFI模块142的功能和特征。
磁盘控制器150包括磁盘接口152,所述磁盘接口将磁盘控制器连接到硬盘驱动器(HDD)154、光盘驱动器(ODD)156和磁盘仿真器160。磁盘接口152的示例包括集成驱动电子器件(IDE)接口、诸如并行ATA(PATA)接口或串行ATA(SATA)接口之类的高级技术附件(ATA)、SCSI接口、USB接口、专有接口或其组合。磁盘仿真器160允许SSD 164经由外部接口162连接到信息处置系统100。外部接口162的示例包括USB接口、电气与电子工程师协会(IEEE)1394(火线)接口、专有接口或其组合。替代地,SSD 164可以设置在信息处置系统100内。
I/O接口170包括外围接口172,所述外围接口将I/O接口连接到扩展资源174、TPM176和网络接口180。外围接口172可以是与I/O通道112相同类型的接口,或者可以是不同类型的接口。因而,当外围接口172和I/O通道112为相同类型时,I/O接口170扩展I/O通道的能力,而当它们为不同类型时,I/O接口将信息从适合于I/O通道的格式转化为适合于外围接口172的格式。扩展资源174可以包括数据存储系统、附加图形接口、网络接口卡(NIC)、声音/视频处理卡、另一种扩展资源或其组合。扩展资源174可以位于主电路板上、位于设置在信息处置系统100内的单独电路板或扩展卡上、位于信息处置系统外部的装置上或其组合。
网络接口180表示网络通信装置,所述网络通信装置设置在信息处置系统100内、位于信息处置系统的主电路板上、集成到诸如芯片组110之类的另一个部件上、位于另一个合适的位置中或其组合。网络接口180包括网络通道182,所述网络通道为信息处置系统100外部的装置提供接口。在特定实施方案中,网络通道182与外围接口172为不同的类型,并且网络接口180将信息从适合于外围通道的格式转化为适合于外部装置的格式。
在特定实施方案中,网络接口180包括NIC或主机总线适配器(HBA),并且网络通道182的示例包括InfiniBand通道、光纤通道、千兆位以太网通道、专有通道架构或其组合。在另一个实施方案中,网络接口180包括无线通信接口,并且网络通道182包括Wi-Fi通道、近场通信(NFC)通道、或蓝牙低功耗(BLE)通道、诸如全球移动系统(GSM)接口之类的基于蜂窝的接口、码分多址(CDMA)接口、通用移动电信系统(UMTS)接口、长期演进(LTE)接口或另一种基于蜂窝的接口,或其组合。网络通道182可以连接到外部网络资源(未示出)。网络资源可以包括另一种信息处置系统、数据存储系统、另一种网络、网格管理系统、另一种合适的资源或其组合。
BMC 190经由一个或多个管理接口192连接到信息处置系统100的多个元件,以提供对信息处置系统的元件的带外监视、维护和控制。因而,BMC 190表示与处理器102和处理器104不同的处理装置,所述处理装置为信息处置系统100提供各种管理功能。例如,BMC190可以负责电源管理、冷却管理等。术语BMC通常在服务器系统的上下文中使用,而在消费级装置中,BMC可以被称为嵌入式控制器(EC)。数据存储系统中所包括的BMC可以被称为存储箱体处理器。刀片式服务器的机箱处所包括的BMC可以被称为机箱管理控制器,而刀片式服务器的刀片处所包括的嵌入式控制器可以被称为刀片管理控制器。由BMC 190提供的能力和功能可以基于信息处置系统的类型而大有不同。BMC 190可以根据智能平台管理接口(IPMI)进行操作。BMC 190的示例包括集成式远程访问控制器(iDRAC)。
管理接口192表示BMC 190与信息处置系统100的元件之间的一个或多个带外通信接口,并且可以包括集成电路间(I2C)总线、系统管理总线(SMBUS)、电源管理总线(PMBUS)、低引脚数(LPC)接口、诸如通用串行总线(USB)或串行外围接口(SPI)之类的串行总线、诸如以太网接口之类的网络接口、诸如PCIe接口之类的高速串行数据链路、网络控制器边带接口(NC-SI)等。如本文所使用的,带外访问是指与BIOS/操作系统执行环境分开地在信息处置系统100上执行的操作(即,与处理器102和104对代码的执行以及响应于所执行的代码而在信息处置系统上实施的程序分开地)。
根据需要或期望,BMC 190操作以监视和维护系统固件,诸如存储在BIOS/EFI模块142中的代码、用于图形适配器130的选项ROM、磁盘控制器150、扩展资源174、网络接口180或信息处置系统100的其他元件。具体地,BMC 190包括网络接口194,所述网络接口可以根据需要或期望连接到远程管理系统以接收固件更新。在此,BMC 190接收固件更新,将更新存储到与BMC相关联的数据存储装置,将固件更新传输到作为固件更新对象的装置或系统的NV-RAM,由此更换与所述装置或系统相关联的当前操作的固件,并重新启动信息处置系统,随后所述装置或系统利用更新后的固件图像。
BMC 190利用各种协议和应用程序编程接口(API)来指导和控制用于监视和维护系统固件的过程。根据需要或期望,用于监视和维护系统固件的协议或API的示例包括与BMC 190相关联的图形用户接口(GUI)、由分布式管理任务组(DMTF)定义的接口(诸如Web服务管理(WSMan)接口、管理部件传输协议(MCTP),或接口)、各种供应商定义的接口(诸如Dell EMC远程访问控制器管理器(RACADM)实用程序、Dell EMC OpenManage企业、Dell EMC OpenManage服务器管理器(OMSS)实用程序、Dell EMC OpenManage存储服务(OMSS)实用程序或Dell EMC OpenManage部署工具包(DTK)套件)、诸如由“F2”启动选项调用的BIOS设置实用程序或另一种协议或API。
在特定实施方案中,根据需要或期望,BMC 190包括在信息处置系统100的主电路板(诸如基板、母板或其任何组合)上,或者集成到信息处置系统的另一个元件(诸如芯片组110)或另一个合适的元件上。因而,BMC 190可以是信息处置系统100内的集成电路或芯片组的一部分。BMC 190的示例包括iDRAC等。BMC 190可以在与信息处置系统100中的其他资源分开的电源层上操作。因此,在信息处置系统100的资源断电时,BMC 190可以经由网络接口194与管理系统通信。在此,信息可以从管理系统发送到BMC 190,并且所述信息可以存储在与BMC相关联的RAM或NV-RAM中。在BMC 190的电源层掉电之后存储在RAM中的信息可能会丢失,而存储在NV-RAM中的信息可以通过BMC的电源层的掉电/上电循环来保存。
信息处置系统100可以包括为了清楚起见未示出的附加部件和附加总线。例如,信息处置系统100可以包括多个处理器核、音频装置等。尽管出于示例目的示出了总线技术和互连的特定布置,但是本领域技术人员将理解,本文公开的技术可适用于其他系统架构。信息处置系统100可以包括多个中央处理单元(CPU)和冗余总线控制器。一个或多个部件可以集成在一起。信息处置系统100可以包括附加总线和总线协议,例如I2C等。信息处置系统100的附加部件可以包括可以存储机器可执行代码的一个或多个存储装置、用于与外部装置通信的一个或多个通信端口以及各种输入和输出(I/O)装置(诸如键盘、鼠标和视频显示器)。
出于本公开的目的,信息处置系统100可以包括可操作以计算、分类、处理、传输、接收、检索、产生、切换、存储、显示、表明、检测、记录、再现、处置或利用用于商业、科学、控制、娱乐或其他目的的任何形式的信息、情报或数据的任何工具或工具集合。例如,信息处置系统100可以是个人计算机、膝上型计算机、智能电话、平板装置或其它消费者电子装置、网络服务器、网络存储装置、交换机、路由器或另一种网络通信装置,或任何其它合适的装置,并且可以在大小、形状、性能、功能和价格方面有所不同。此外,信息处置系统100可以包括用于执行机器可执行代码的处理资源,诸如处理器102、可编程逻辑阵列(PLA)、诸如片上系统(SoC)之类的嵌入式装置,或其它控制逻辑硬件。信息处置系统100还可以包括用于存储诸如软件或数据之类的机器可执行代码的一种或多种计算机可读介质。
应用程序通常经由未压缩的数据文件(诸如超文本标记语言(HTML)、可扩展标记语言(XML)、遥测、日志、清单文件等)在客户端与服务器之间传输数据。使用各种数据压缩算法来减少用于存储和/或传输数据的资源。这些数据压缩算法可以被分类为无损的或有损的。可以逆转无损压缩以产生原始数据,而有损压缩可能会在逆转中引入一些错误。无损压缩通常用于文本数据,而有损压缩可以用于可能可以接受一些错误的语音或图像。诸如压缩率和速度之类的各种度量可以用于评价数据压缩算法的性能。最佳数据压缩算法可能有助于减少在客户端与服务器之间传输文件时的网络带宽,并有助于减少数据存储需求。本公开提供了基于内容的动态混合数据压缩系统和方法,其具有选择最佳数据压缩以快速实现最佳压缩的能力。
图2示出了用于基于内容的动态混合数据压缩的环境200的示例。环境200包括经由网络260与信息处置系统270通信地耦合的信息处置系统205。信息处置系统205和270类似于图1的信息处置系统100。信息处置系统205包括数据训练套件210、数据存储装置230、索引表240、压缩率分析表245、训练数据集250和学习模型255。数据训练套件210包括训练模块215和数据分析器220。信息处置系统270包括数据管理套件275、目标数据文件290和压缩数据文件295。数据管理套件275包括工作模块280和数据压缩特征285。可以硬件、软件、固件或者其任何组合来实施环境200的部件。所示出的部件未按比例绘制,并且环境200可以包括更多或更少的部件。为了描述清楚,可以省略部件和/或传感器之间的附加连接。
本公开可以以两种模式操作:训练模式和工作模式。训练模式包括由训练模块215执行的压缩率分析和由数据分析器220执行的概率分析。在一个实施方案中,信息处置系统205可以是开发系统,其中训练模块215读取多个训练数据集250以生成索引表240和/或压缩率分析表245。压缩率分析表245(也被称为映射表)包括与每个训练数据文件相关联的最佳压缩率。所述关联可以用作为目标数据文件(也被称为工作数据文件)或其片段选择适当压缩算法时的因素中的一者。训练模块215还可以生成数据压缩特征285,可以在安装数据管理套件275期间将所述数据压缩特征传输到信息处置系统270。数据压缩特征285可以包括具有用于目标数据文件290的压缩的信息的参数。例如,数据压缩特征285可以包括索引表240和压缩率分析表245。数据压缩特征285还可以包括矩阵A、矩阵B和矩阵π,如图6的所学习的模型627所描绘。
数据分析器220可以被配置为对训练数据集250执行概率分析并生成学习模型255。概率分析可以包括使用隐马尔可夫模型对系统进行统计建模,在所述系统中,系统的输出(诸如在数据压缩期间产生的符号序列)是可见的,但是产生所述输出(诸如数据压缩算法)的特定状态变化不可见。作为非限制性示例,数据分析器220可以生成学习模型255,所述学习模型包括被指定为矩阵A的状态转换概率矩阵、被指定为矩阵B的观察概率矩阵以及被指定为矩阵π的初始状态分布矩阵。学习模型220可以用于提取统计特征,所述统计特征表示训练数据文件的内容与数据压缩算法之间的关系。在提取统计特征之后,数据分析器220可以利用Baum-Welch算法,所述Baum-Welch算法使用期望最大化算法(Expectation-Maximization algorithm)来在给定观察到的状态序列集合的情况下寻找隐马尔可夫模型的参数的最大似然估计值。
工作模块280可以被配置为将目标数据文件290划分为一个或多个片段,并预测每个片段的最佳数据压缩算法。工作模块280可以被配置为使用多线程处理方法来并行地处理每个片段。工作模块280使用在学习模型255中提取的统计特征来预测每个片段的最佳数据压缩算法。然后,工作模块280可以使用统一格式来组合压缩片段中的每一个,从而生成压缩数据文件295,所述压缩数据文件类似于图6的输出620。
在一个实施方案中,工作模块280可以从数据管理套件275接收压缩目标数据文件290的请求。响应于所述请求,工作模块280可以检索或接收目标数据文件290,并使用本文所述的方法来生成压缩数据文件295。目标数据文件290可以被划分为具有相等长度的一个或多个片段。如果最后一个片段的长度不等于其他片段的长度,则可以使用标志来存储最后一个片段的长度。可以基于数据压缩特征285为每个片段预测最佳数据压缩算法。然后可以使用最佳数据压缩算法来压缩每个片段。可以使用与其他片段不同的数据压缩算法来压缩每个片段。
网络260可以被实施为存储区域网络(SAN)、个人区域网络(PAN)、局域网(LAN)、城域网(MAN)、广域网(WAN)、无线局域网(WLAN)、虚拟专用网(VPN)、内联网、互联网或促进信号、数据和/或消息传送的任何其它适当的架构或系统或者可以是它们的一部分。网络260可以使用任何存储和/或通信协议来传输数据,所述存储和/或通信协议包括但不限于光纤通道、帧中继、异步传输模式(ATM)、互联网协议(IP)、其他基于分组的协议、小型计算机系统接口(SCSI)、互联网SCSI(iSCSI)、串行连接的SCSI(SAS)或以SCSI协议、高级技术附件(ATA)、串行ATA(SATA)、高级技术附件分组接口(ATAPI)、串行存储架构(SSA)、集成驱动电子器件(IDE)操作的任何其他传输,和/或其任何组合。网络260及其各种部件可以使用硬件、软件或其任何组合来实施。
数据存储装置230可以是持久性数据存储装置。数据存储装置230可以包括固态磁盘、硬盘驱动器、磁带库、光盘驱动器、磁光盘驱动器、光盘驱动器、光盘阵列、磁盘阵列控制器和/或可操作以存储数据的任何计算机可读介质。数据存储装置230可以包括与对训练数据集250的处理相关联的数据库或数据文件集合,数据训练套件210可以存储、检索和利用所述训练数据集,所述数据库或数据文件集合诸如索引表240、压缩率分析表245、学习模型255和训练数据集250。
尽管数据训练套件210和数据管理套件275被示出为部署到两个不同的信息处置系统中,但是数据训练套件210和数据管理套件275可以被部署在一个信息处置系统或两个以上的信息处置系统中。例如,两个信息处置系统可以各自具有并行操作的数据训练套件210。在另一个示例中,一个信息处置系统可以包括训练模块215,而另一个信息处置系统可以包括数据分析器220。
本领域普通技术人员将理解,图2所描绘的环境200的配置、硬件和/或软件部件可能会有所不同。例如,环境200内的说明性部件并非旨在是详尽的,而是表示以突出显示可以用于实施本公开的各方面的部件。例如,可以使用其他装置和/或部件作为所描绘的装置/部件的补充或替代。关于当前描述的实施方案和/或总体公开,所描绘的示例不传达或暗示任何架构或其他限制。在对附图的讨论中,为了描述的连续性,也可以参考在其他附图中示出的部件。
图3示出了描绘了在用于基于内容的混合数据压缩的系统的训练模式期间的压缩分析的过程300的流程图。过程300包括训练数据集305、训练数据文件310、数据压缩算法315a至315n、压缩率计算器320、压缩数据文件325a至325n、索引表335以及压缩率分析表340。尽管根据图2的信息处置系统205描述了本公开的实施方案,但是应当认识到,可以利用其他系统来执行所描述的方法。本领域技术人员将理解,该流程图解释了典型示例,在实践中可以将其扩展到高级应用程序或服务。
图3用一系列字母A至B1/B2至Bn至C进行注释。这些字母中的每一个表示一个或多个操作的阶段。尽管这些阶段对于该示例是有序的,但是所述阶段示出了一个示例以帮助理解本公开,并且不应用于限制权利要求。落入权利要求书的范围内的主题可以关于操作顺序而变化。
训练模式的目标中的一个是生成压缩率分析表340,所述压缩率分析表捕获每个文件(诸如训练数据集305的训练数据文件310)的最佳压缩率。可以选择训练数据集305以表示将在工作模式期间被压缩的期望数据集。可以从在工作模式期间可能遇到的不同类型或型号的计算机系统的不同文件中收集训练数据集305。这些不同的文件也被称为训练数据文件。
期望数据压缩算法在本文中也可被互换地称为用于训练模式的最佳数据压缩算法,或者期望数据压缩技术可以与训练数据集305的每个训练数据文件相关联。为了确定期望数据压缩算法,可以在阶段A处从训练数据集305中选择单独的训练数据文件,诸如训练数据文件310。在阶段B1至Bn处,多种数据压缩算法或技术中的每一者(诸如数据压缩算法315a至315n)可以用于压缩单独的训练数据文件,从而产生压缩数据文件325a至325n。压缩数据文件325a是通过使用数据压缩算法315a压缩训练数据文件310而产生的。压缩数据文件325b是通过使用数据压缩算法315b压缩训练数据文件310而产生的。压缩数据文件325n是通过使用数据压缩算法315n压缩训练数据文件310而产生的。
在一个示例中,数据压缩算法315a可以是游程长度编码(RLE)数据压缩算法,其是一种形式的无损编码,其中未压缩数据集中的重复符号序列被压缩数据集中的单独的控制符号和单独的未压缩符号代替。数据压缩算法315b可以是差分脉冲编码调制(DPCM)数据压缩算法,其是一种形式的无损编码,其中将未压缩数据集中的每个后续符号与参考符号进行比较,并将它们的代码点之间的距离编码到未压缩数据集中,前提是所述距离低于距离阈值。DPCM充分利用以下事实:未压缩数据集中的符号可能会群集在数据空间的局部区域内,因此与表示单独的未压缩符号所用的位相比,可以使用更少的位来表示参考符号与单独的未压缩符号之间的距离。
压缩算法315n可以是GZIP数据压缩算法,其指代基于Lempel、Ziv、Welch(LZW)和霍夫曼码的文件压缩和解压缩的多种实施方式中的一个。与LZW一样,GZIP标识先前出现的具有任意长度并将一个或多个未压缩符号编码为引用先前观察到的序列的单独控制符号的序列。LZW是构建跟踪符号序列的字典的无损数据压缩算法。当从未压缩数据文件中读取符号时,寻找字典中已经存在的任何相同符号序列,直到字典模式和输入模式发散为止。此时,将表示模式的匹配部分的代码传递到压缩数据文件,并且将发散符号作为在其之前的模式的扩展添加到字典。可以使用可变长度代码来实施LZW以允许字典增长,直到将重置字典并重新开始的单独控制符号放置到压缩数据集中为止。根据LZW,解码器构建的字典与编码器在产生压缩数据集时构建的字典相同,并且因此能够解释压缩数据集中表示序列的符号。
在阶段C处,从两个或更多个压缩率(诸如CR1至CRn)确定最佳压缩率。压缩率是数据集或数据文件的未压缩大小与压缩大小之间的比率,诸如:
最佳压缩率是与其他数据压缩算法相比实现数据压缩算法的最大压缩率的压缩率。训练数据文件与最佳压缩率之间的关联可以存储在压缩率分析表340中。在该示例中,与训练数据文件310相关联的最佳压缩率是CR1,如索引表335中所示,所述最佳压缩率被映射到数据压缩算法315a。因此,数据压缩算法315a是用于训练数据文件310的期望数据压缩算法。
图4示出了用于与数据压缩算法相关联地对训练数据集中的符号转换的发生进行计数的示例性矩阵400。可以按以下方式使用矩阵400的尺寸:垂直出现在矩阵400左侧上方和下方的符号对应于训练数据文件中的符号转换的起始符号,而出现在矩阵顶部上的符号对应于训练数据文件中的符号转换的结束符号。与起始符号和结束符号相对应的单元示出看到符号转换的位置。所述单元对于每次转换都会递增并且与和正在处理的训练数据文件相关联的期望数据压缩算法相关联。本领域技术人员将理解,为了便于理解,被描绘为14×14矩阵的矩阵400是简化示例,并且在现实世界条件下,矩阵400将比所描绘的矩阵更大。
矩阵400是符号转换跟踪矩阵,并且它将针对由特定数据压缩算法压缩的训练数据集发生的特定符号转换的数量制成表格。在矩阵400的底部示出了第一训练数据文件405a、第二训练数据文件405b和第三训练数据文件405n。为了简化非限制性示例,每个训练数据文件的大小和数据集的数量保持很小。在该示例中,RLE数据压缩算法被确定为第一训练数据文件405a的期望数据压缩算法。DPCM数据压缩算法被确定为第二训练数据文件405b的期望数据压缩算法。GZIP数据压缩算法被确定为第三训练数据文件405n的期望数据压缩算法。可能多于或少于所示出的训练数据文件。另外,训练数据文件可以具有不同的数据压缩算法,它们已经被发现是用于特定训练数据文件和/或训练数据集的数据压缩算法。
矩阵400可以在每个单元中被初始化为零。训练数据集或训练数据文件中的每一者中的每次符号转换都可以在矩阵400中进行检查并制成表格。当处理每个训练数据文件时,可以更新矩阵400。在该示例中,第一训练数据文件405a中的前两个符号是“AA”,因此单元410递增。符号的字母出现在矩阵400的左侧和顶部,使得可以对这些符号转换进行索引。第一训练数据文件405b中的下一次符号转变是“AB”,因此单元415递增。符号转换“BB”连续出现四次,因此单元417递增四次。第一训练数据文件405a的其余部分以相同方式进行检查和制表。与第一训练数据文件405a相关联的增量用下划线示出,诸如“1”。
第二训练数据文件405b中的前两个符号是“AB”,因此单元415递增。注意,单元415递增到高于当分析第一训练数据文件405a时的单元。与第二训练数据文件405b相关联的增量用斜体字示出,诸如“1”。第三训练数据文件405n中的前两个符号是“CG”,因此单元425递增。与第三训练数据文件405n相关联的增量用粗体示出,诸如“1”。注意,当符号转变“DE”出现在第二训练数据文件405b和第三训练数据文件405n两者上时,单元430递增两次。
图5A示出了表505(也被称为矩阵B)是观察概率表,并且它根据训练数据集将在数据中出现特定符号之后使用数据压缩算法的概率制表。行525的单元520中的值指示,根据训练数据集在符号“A”出现在训练数据文件中之后将有百分之六十六的概率使用RLE数据压缩算法。对前述值和行525中的值的计算包括以下各项:如图4的矩阵400所示,存在来自第一训练数据文件405a的以符号“A”开始的两次符号转换。如图4的矩阵400所示,存在来自第二训练数据文件405b的以符号“A”开始的一次符号转换。如图4的矩阵400所示,没有来自第三训练数据文件405c的以符号“A”开始的符号转换。因此,以符号“A”开始的符号转换总共有三次。在以符号“A”开始的三次符号转换中,有三分之二或百分之六十七是来自与RLE数据压缩算法相关联的第一训练数据文件405a,有三分之一或百分之三十三是来自与DPCM数据压缩算法相关联的第二训练数据文件405b,有三分之零或百分之零是来自与GZIP数据压缩算法相关联的第三训练数据文件405c。这些值填充行525。表505的其他行可以以相同方式计算。
图5B示出了表510(也被称为矩阵π)是初始状态分布矩阵,并且它将最初使用特定数据压缩算法的概率制表。矩阵π中的值是在训练模式结束时通过计算每种数据压缩算法最有效地压缩了多少百分比的训练数据集来计算的。在该简单的非限制性示例中,仅使用了三个训练数据文件,并且在不同的数据压缩算法下,每个训练数据文件都得到了最有效的压缩。行535的单元530中的值指示在总共三个训练数据文件中有一个或百分之三十三的训练数据文件与RLE数据压缩算法相关联。可以对DPCM数据压缩算法和GZIP数据压缩算法执行相同的计算。
图5C示出了表515(也被称为矩阵A)是状态转换概率矩阵,并且它根据训练数据集将从一种数据压缩算法转换到另一种数据压缩算法的概率制表。在图4的矩阵400已经使用训练数据集中的训练数据文件制表之后,可以计算矩阵A中的值,所述矩阵A指示压缩算法将改变状态的概率。
行545的单元540中的值指示如果RLE压缩算法用于符号转换,则RLE压缩算法有百分之九十的概率可以用于下一符号转换。对前述值和行545中的其他值的计算包括以下各项:与RLE数据压缩算法相关联的第一训练数据文件405a存在九次符号转变,如图4的矩阵400所示。另外,有一次符号转换与第一训练数据文件405a的符号转换重叠。具体地,符号转换“AB”在单元415中递增两次。第二增量是来自与DPCM数据压缩算法相关联的第二训练数据文件405b。因此,总共有十次符号转换。因为与RLE数据压缩算法相关联的第一训练数据文件405a有九次符号转换,所以在总共十次符号转换中,RLE到RLE数据压缩算法转换概率为百分之九十。因为与DPCM数据压缩算法相关联的第二训练数据文件405b有一次重叠符号转换,所以在总共十次符号转换中,一次RLE到DPCM数据压缩算法转换概率为百分之十。因为与GZIP数据压缩算法相关联的第三训练数据文件405c没有重叠符号转换,所以RLE到GZIP数据压缩算法转换概率为百分之零。矩阵A的其他行可以以相同方式计算。
图6示出了描绘在用于基于内容的混合数据压缩的工作模式期间的数据压缩的阶段的过程600的示例的流程图。可以在工作数据集、工作数据文件或其片段上执行数据压缩。过程600包括目标文件605、片段610a至610n、压缩片段615a至615n、输出620、压缩率分析表625、数据结构650和包括矩阵630a至630c的学习模型627。尽管根据图2的环境200描述了本公开的实施方案,但是应当认识到,可以利用其他系统来执行所描述的方法。本领域技术人员将理解,该流程图解释了典型示例,在实践中可以将其扩展到高级应用程序或服务。
图6用一系列字母A至C1/C2至Cn至D注释。这些字母中的每一个表示一个或多个操作的阶段。尽管这些阶段对于该示例是有序的,但是所述阶段示出了一个示例以帮助理解本公开,并且不应用于限制权利要求。落入权利要求书的范围内的主题可以关于操作顺序而变化。
在阶段A处,目标文件605被划分为一个或多个片段。目标数据文件也可以被称为工作数据文件。所述片段的长度可以是相等的,除了最后一个片段可能比其他片段更短或更长之外。在此,目标文件605被划分为具有特定长度的片段610a至610n。在阶段B处,可以基于训练模式期间的分析来预测与每个片段相关联的最优数据压缩算法。在阶段C1至Cn处,可以针对在阶段B处预测的每个片段使用最佳数据压缩算法来压缩每个片段610a至610n。例如,片段615a可以使用RLE数据压缩算法来压缩,而片段610b可以使用DPCM数据压缩算法来压缩,并且片段610n可以使用GZIP数据压缩算法来压缩。
在阶段D处,使用基于数据结构650的统一格式对压缩片段615a至615n进行组合,从而产生输出620。输出620在其元素之间(诸如在压缩内容之间以及在压缩索引与压缩内容之间)包括分隔符。在所示的示例中,尽管逗号和括号用作分隔符:8(1,1C2A5F)(2,A00011233)…(1,4P1A1B,6),但是其他字符或标记也可以用作分隔符。数据结构650包括文件头640和压缩数据块645a至645n。文件头640可以包括与目标文件、片段和/或压缩片段相关联的元数据。例如,文件头640可以包括每个片段的大小和长度、文件名、日期和时间戳、输出的大小或文件大小、校验和等。在一些实施方案中,文件头640可以包括后面的压缩数据块(诸如压缩数据块645a至645n)的数量和/或大小。文件头的末尾可以用分隔符标记。每个压缩数据块可以包括编码器标签655和作为压缩片段(诸如压缩片段615a)的压缩数据有效载荷。编码器标签655指示使用哪种数据压缩算法来压缩所述压缩数据片段。如果最后一个片段的长度与其他片段不同,则最后一个压缩数据块(诸如压缩数据块615n)也可以包括长度标签665。如果最后一个压缩数据块不包括长度标签665,则最后一个片段的大小与其他片段相同。
图7A至7E示出了序列700、730、740、750和760,它们是在工作模式期间做出的决策序列。决策序列可以基于根据训练模式提取和/或计算的统计特征集,并且包括在目标数据文件的数据块中观察到的符号串、先前状态转换的历史或其组合。决策序列可以用于基于符号到符号分析来确定最佳数据压缩算法。目标数据文件的片段705中的字符或符号用作此处所示的非限制性示例。
图7A的序列700示出了在节点715处的第一观察符号,从数据块中读取“C”,并且结合决策A处的统计特征集,预测DPCM是所使用的数据压缩算法。所述预测是基于矩阵π单元532,其中DPCM数据压缩用作初始数据压缩算法的最高概率的值为百分之三十五。
在决策B处,预测哪个符号在符号C之后。基于图4的矩阵400的行423,其中起始符号是C,符号D或符号G可以是C之后的下一符号。由于两个可能的符号在符号C之后,因此可以确定符号D或G中的哪个符号在符号C之后。首先,可以确定决策点C处的数据压缩算法。基于表515的行547(矩阵A),选择三种数据压缩算法之间的最大数据值,诸如max(DPCM=0.82,GZIP=0.09以及RLE=0.09)。在此,在决策C处,基于DPCM数据压缩算法从DPCM数据压缩算法开始的状态将有百分之八十二的概率具有DPCM数据压缩算法的结束状态来选择DPCM数据压缩算法。其次,基于前述决策来确定符号D还是符号G在符号C之后。在决策点D处,表505的行528和行529(矩阵B)基于它们分别与符号D和G的关联来引用。对于符号D,其基于单元523在符号C之后的概率为百分之五十。对于符号G,其基于单元524在符号C之后的概率为百分之二十五。选择两个概率之间的最大值,诸如max{D(DPCM)=0.5,G(DPCM)=0.25)}。因此,如在节点720中所描绘,符号D被预测为下一符号。
在图7B中,系统继续在片段705中检索所述符号之后的下一符号,所述下一符号是符号B。由于预测的符号是不同的,因此节点720被所检索的符号B覆盖。在决策点E处,基于矩阵400的行422,B之后的下一符号被确定为符号B、C或H中的一者的概率。由于在符号B之后有三个可能符号,因此可以确定三个符号中的哪个符号在B之后。基于单元417,与单元C或D各自递增一次相比,符号B递增了四次,符号B被预测在较早符号B之后。在决策点F处,基于表515的行547(矩阵A),选择三种数据压缩算法之间的最大数据值,诸如可以确定max(DPCM=0.82,GZIP=0.09以及RLE=0.09)。在此,如果基于DPCM数据压缩算法有百分之八十二的概率,起始状态是DPCM数据压缩算法,则将DPCM数据压缩算法预测为结束状态。然而,基于表505(矩阵B)的行526,max(RLE=0.83,DPCM=0.17,GZIP=0),如果起始符号为B,则预测在节点725处有百分之八十三的概率使用RLE数据压缩算法,所述概率大于DPCM数据压缩算法的百分之八十二的概率。
图7C示出了在状态序列的几次迭代之后的序列740,如图7B的具有类似决策的序列730所示。由于符号都是B,因此在下一状态序列中也会预测RLE数据压缩算法。图7D示出了序列750,其描绘了在预测针对片段705中的下一符号A的期望数据压缩算法时的状态序列。系统检索符号A,并且基于矩阵400的行421,继续确定阶段G处的下一符号可以是符号A或B。基于表515(矩阵A)的行545,预测RLE数据压缩算法是决策点H处的期望数据压缩算法。所述预测是基于三种数据压缩算法之间的最大值,诸如max(RLE=0.9,DPCM=0.1,GZIP=0)。参考表505(矩阵B)的行525,根据RLE数据压缩算法,预测有百分之六十七的概率与起始符号A相关联。相比之下,在行526中,根据RLE数据压缩算法,预测有百分之八十三的概率与起始符号B相关联。符号A之后的符号为max(A=0.67,B=0.83)。因此,符号B被预测为决策点I处的下一符号。
图7E示出了序列760,其包括用于片段705的状态序列。在此,DPCM数据压缩算法被预测总共十次中的两次,而RLE数据压缩算法被预测总共十次中的八次。因此,最佳数据压缩算法被预测为max(RLE=0.8,DPCM=0.2),这是概率为百分之八十的RLE数据压缩算法。为了验证预测,可以使用RLE数据压缩算法和DPCM数据压缩算法来压缩片段705,并且所述片段确定最佳压缩率。使用RLE数据压缩算法以压缩率10/8或1.25生成压缩文本1C5B3A1C。使用DPCM数据压缩算法以压缩率10/11或.909生成压缩文本C2111110002。最佳数据压缩算法是max(RLE=1.25,DPCM=.909),这是确认所述预测的RLE数据压缩算法。
图8A和图8B示出了用于基于内容的混合数据压缩的方法800的流程图。方法800可以由环境200和/或图3的过程300的一个或多个部件来执行。然而,尽管根据环境200和/或过程300描述了本公开的实施方案,但是应当认识到,可以利用其他系统来执行所描述的方法。本领域技术人员将理解,该流程图解释了典型示例,在实践中可以将其扩展到高级应用程序或服务。方法800可以在开发系统处执行,诸如在客户端/服务器系统的服务器侧上执行。
方法800通常在框805处开始,此时选择多个训练数据集(也被称为数据语料库)来在基于内容的混合数据压缩的训练模式期间使用。训练数据集可以从多个训练数据集中进行选择,并且可以基于要处理的工作数据文件。例如,如果标识出客户端相对于文本数据文件具有音频和/或视频文件,则可以相应地选择训练数据集,诸如可以为处理音频和/或视频文件的客户端选择音频和/或视频训练数据文件。
在框810处,所述方法标识在训练模式期间要使用的一种或多种数据压缩算法。数据压缩算法可以基于要处理的训练数据文件的类型。在框815处,所述方法处理训练数据集中的每个训练数据文件。可以将正在处理的训练数据文件称为当前训练数据文件。在框820处,所述方法使用数据压缩算法中的每一个来处理每个训练数据文件。在框825处,所述方法在正在处理的当前训练数据文件上运行数据压缩算法,并在框830处计算压缩率。在框835处,所述方法确定是否要在当前训练数据文件上运行附加的数据压缩。如果存在附加的数据压缩算法,则采取“是”分支,并且所述方法前进到框820,并使用下一数据压缩算法来处理当前训练数据文件。如果没有附加的数据压缩算法,则采取“否”分支,并且所述方法前进到框840,此时所述方法基于在框830处计算的一个或多个压缩率来确定最佳压缩率。
在框845处,所述方法确定是否有附加的训练数据文件要处理。如果有附加训练数据文件要处理,则所述方法前进到框815,在该框中所述方法检索训练数据集中的下一训练数据文件以进行处理。如果没有附加的训练数据文件要处理,则所述方法前进到框850,在该框中所述方法用针对每个训练数据文件的最佳压缩率来更新压缩率分析表。
在框855处,所述方法将符号转换矩阵和学习模型初始化并将其加载到存储器中,所述符号转换矩阵和学习模型包括矩阵A、矩阵B和矩阵π。符号转换矩阵可以类似于图4的矩阵400。在框865处,所述方法将学习参数(在本文也被称为学习模型)初始化并将其加载到存储器中。学习模型包括可以与隐马尔可夫模型相关联的模型,诸如第一矩阵A、第二矩阵B和第三矩阵π。可以使用可以在计算期间使用的阵列来定义矩阵,并将矩阵加载到存储器中,然后在每个单元中用零值初始化。
在框860处,所述方法处理训练数据集中的每个训练数据文件。在框865处,所述方法为训练数据文件中的每一个更新符号转换矩阵。例如,如图4所示,所述方法可以针对训练数据文件405a至405n中的每一个更新符号转换矩阵,诸如矩阵400。与被映射到最佳压缩率的数据压缩算法相关联的每个训练数据文件中的符号序列可以用于表示符号转换矩阵中的观察序列。可以基于压缩率分析表和索引表(诸如图2的压缩率分析表245、索引表240,图3的索引表335和压缩率分析表340)来确定最佳数据压缩算法。从训练数据文件中的每一个循序地读取一对符号并使用这对符号来将反映这对符号在如图4所描绘的符号转换矩阵中的相交的单元递增。
在框870处,所述方法可以确定是否有附加的训练数据文件要处理。如果存在附加的训练数据文件,则采取“是”分支,并且所述方法前进到框860并处理当前的训练数据文件。如果没有附加的训练数据文件要处理,则采取“否”分支,并且所述方法前进到框875。
在框875处,所述方法可以从符号转换矩阵中提取统计特征集。所述方法可以执行一次或多次计算以确定统计特征集。例如,对于矩阵π,所述方法可以应用Baum-Welch算法,对矩阵A应用Baum-Welch正向程序并对矩阵B应用Baum-Welch后向程序。Baum-Welch算法使用期望最大化算法以在给定观察特征矢量集(诸如符号转换矩阵中的特征矢量集)的情况下寻找隐马尔可夫模型参数的最大似然估计值。
在框880处,所述方法可以基于在框875中提取的统计特征集来更新学习模型,诸如矩阵A、矩阵B和矩阵π。在更新之后,学习模型中的信息可以被打包并成为安装包的一部分以分布在客户的站点上。
图9示出了用于基于内容的混合压缩的方法900的流程图。方法900可以由图2的环境200或图6的过程600的一个或多个部件来执行。然而,尽管根据环境200和/或过程600描述了本公开的实施方案,但是应当认识到,可以利用其他系统来执行所描述的方法。本领域技术人员将理解,该流程图解释了典型示例,在实践中可以将其扩展到高级应用程序或服务。方法900可以由客户端/服务器系统中的客户端来执行。在可以使用方法900压缩数据文件之前,可以首先安装包括来自学习模型的信息的安装包。
方法900通常在框905处开始,在该框中目标数据文件被划分成具有相等长度的几个片段。可以基于目标数据文件中的字符或符号的数量来划分目标数据文件。如果字符或符号的数量不均匀,则最后一个片段可能比其他片段具有更多或更少的字符或符号。对于非基于拉丁文的文本目标数据文件,在将目标数据文件划分为片段之前,可以使用Unicode对文本进行编码。可以对非文本目标数据文件(诸如音频或视频文件)执行相同过程。例如,在处理此类音频或视频文件之前,可以使用诸如base64编码之类的各种编码方案对音频或视频文件进行编码。每个片段都进行并行处理。因此,在并发地处理每个片段时使用的线程数量将基于片段数量。例如,方法900可以使用n个线程来处理n个片段。尽管下面示出的示例描绘了框910a至930a,但是类似过程可以用于处理多达n个片段。
在框910a处,所述方法将目标数据文件的片段存储在存储器中。正在处理的片段可以被称为当前片段。所述方法前进到框915a,在该框中所述方法确定当前片段的最佳数据压缩算法。可以基于在训练模式期间获得的知识来确定最佳数据压缩算法,诸如在图6的过程600中所描绘的。具体地,在给定符号或文本序列(诸如片段或数据文件)的情况下,可以基于与所学习的模型(诸如矩阵A、矩阵B和矩阵π)相关联的统计特征来确定最佳数据压缩算法。如图7A至图7E所描绘的,可以为片段生成最佳状态序列。状态(即,在状态序列中出现次数最多的数据压缩算法)是最佳数据压缩算法。在框920a处,所述方法使用框915a中的最佳数据压缩算法来压缩片段。所述方法可以确定压缩片段的第一压缩率。在框925a处,所述方法可以验证在框915a处确定的最佳数据压缩算法。
在框930a处,所述方法确定将压缩片段存储在存储器中。在框935处,压缩片段被组合,从而产生与图6的数据结构650类似的统一格式的输出。所述输出可以包括每个片段和压缩数据块的大小或长度。大小或长度可以是每个片段中的字符数量。每个压缩数据块包括前缀和压缩片段。前缀可以是用于压缩片段的最佳数据压缩算法的索引。因为最后一个压缩片段的大小可能与另一压缩片段的大小不同,所以与最后一个压缩片段相关联的压缩数据块也可以包括后缀,其中后缀是最后一个压缩片段的大小或长度。如果最后一个压缩片段的大小或长度与其他片段相同,则可能不包括后缀。在验证之后,所述方法结束。
图10示出了用于基于内容的混合数据压缩的方法1000的流程图。具体地,方法1000是图9的框925的详细图示。方法1000通常从框1005开始,在该框中所述方法从训练数据集中确定当前片段是否具有匹配的数据文件。例如,基于一个或多个因素(诸如数据文件的类型,诸如数据文件是音频、视频、还是文本文件等),可以比较数据文件和片段中的符号和/或符号转换的比较。在决策框1010处,如果存在匹配的训练数据文件,则采取“是”分支,并且所述方法前进到框1015。如果不存在匹配的数据文件,则采用“否”分支,并且所述方法前进到框1025。
在框1015处,基于在训练模式期间获得的知识,选择与匹配的训练数据文件相关联的数据压缩算法。可以使用与图2的压缩率分析表340类似的映射表来选择数据压缩算法。在框1020处,所述方法可以验证最佳数据压缩算法。所述方法可以基于压缩率分析表使用数据压缩算法来压缩片段,并确定第二压缩率。所述方法可以执行第一压缩率与第二压缩率的比较。如果第一压缩率大于或等于第二压缩率,则最佳压缩率得到验证。在框1025处,将当前片段添加到训练数据集。所述方法前进到框1030,在该框中所述方法前进到训练模式,其中目标数据文件被训练。例如,框910a至框930a可以与框910b至930b并行执行,直到图9的方法900的框910n至930n为止。
尽管在一些实施方式中,图8A、图8B、图9和图10示出了方法800、方法900和方法1000的示例性框,但是与图8A、图8B、图9和图10中所描绘的那些框相比,方法800、方法900和方法1000可以包括附加的框、更少的框、不同的框或以不同方式布置的框。另外或替代地,可以并行执行方法800、方法900和方法1000的框中的两个或更多个。例如,可以并行地执行框805和810。
根据本公开的各种实施方案,本文描述的方法可以由计算机系统可执行的软件程序来实施。此外,在示例性非限制性实施方案中,实施方式可以包括分布式处理、部件/对象分布式处理以及并行处理。替代地,虚拟计算机系统处理可以被构造为实施如本文描述的方法或功能性中的一者或多者。
本公开设想了计算机可读介质,其包括指令或者响应于传播信号而接收并执行指令;使得连接到网络的装置可以通过网络传送语音、视频或数据。此外,可以经由网络接口装置通过网络传输或接收指令。
尽管计算机可读介质被示出为单个介质,但是术语“计算机可读介质”包括单个介质或多个介质,诸如集中式或分布式数据库,和/或存储一个或多个指令集的相关联的高速缓存和服务器。术语“计算机可读介质”还应包括能够存储、编码或携带指令集以供处理器执行或使计算机系统执行本文所公开的方法或操作中的任何一者或多者的任何介质。
在特定的非限制性示例性实施方案中,计算机可读介质可以包括固态存储器,诸如容纳一个或多个非易失性只读存储器的存储卡或其他封装。此外,计算机可读介质可以是随机存取存储器或其他易失性可重写存储器。另外,计算机可读介质可以包括磁光或光学介质(诸如磁盘或磁带)或另一种存储装置,以存储经由载波信号(诸如通过传输介质传送的信号)接收的信息。电子邮件或其他独立信息档案或档案集的数字文件附件可以被视为等效于有形存储介质的分布式介质。因此,本公开被认为包括其中可以存储数据或指令的计算机可读介质或分布式介质以及其他等效物和后继介质中的任何一者或多者。
尽管上文仅详细描述了几个示例性实施方案,但是本领域技术人员将易于理解,在不实质上脱离本公开的实施方案的新颖教导和优点的情况下,可以对示例性实施方案进行许多修改。因此,所有此类修改旨在包括在如所附权利要求书所定义的本公开的实施方案的范围内。在权利要求书中,装置加功能条款旨在涵盖在本文中被描述为执行所叙述功能的结构,而不仅涵盖结构上的等效形式,而且还涵盖等效结构。
Claims (20)
1.一种方法,其包括:
处理训练数据文件以预测最佳数据压缩算法,其中对所述训练数据文件的所述处理包括:
执行压缩率分析,所述压缩率分析包括:
使用多种数据压缩算法来压缩所述训练数据文件;
计算与所述数据压缩算法中的每种数据压缩算法相关联的压缩率;
根据与所述数据压缩算法中的所述每一者相关联的所述压缩率来确定最佳压缩率;以及
标识与所述训练数据文件的所述最佳压缩率相关联的期望数据压缩算法;以及
执行概率分析,所述概率分析包括:
基于所述期望数据压缩算法来生成符号转换矩阵;
基于所述符号转换矩阵提取统计特征数据;以及
基于所述统计特征数据生成概率矩阵以预测用于工作数据文件的每个片段的所述最佳数据压缩算法。
2.根据权利要求1所述的方法,其生成压缩率分析表,所述压缩率分析表包括所述训练数据文件与所述期望数据压缩算法的关联。
3.根据权利要求1所述的方法,其中所述最佳压缩率与和所述训练数据文件相关联的至少一个其他压缩率相比具有最大值。
4.根据权利要求1所述的方法,其还包括处理所述工作数据文件,其中对所述工作数据文件的所述处理包括将所述工作数据文件划分为一个或多个片段以及基于所述最佳数据压缩算法来压缩每个片段以生成一个或多个压缩片段。
5.根据权利要求4所述的方法,其中所述工作数据文件的每个片段具有相等长度。
6.根据权利要求4所述的方法,其还包括使用统一格式将每个压缩片段组合成压缩数据文件。
7.根据权利要求6所述的方法,其中第一数据压缩算法用于压缩第一片段,并且第二数据压缩算法用于压缩所述压缩数据文件的第二片段。
8.根据权利要求1所述的方法,其中所述概率矩阵包括初始状态分布矩阵、状态转换概率矩阵和观察概率矩阵。
9.一种信息处置系统,其包括:
存储器,所述存储器用于存储用于确定最佳数据压缩算法的概率矩阵;以及
耦合到所述存储器的处理器,所述处理器被配置为处理训练数据文件以确定所述最佳数据压缩算法,其中所述处理器还被配置为:
执行压缩率分析,所述压缩率分析包括:
使用多种数据压缩算法来压缩所述训练数据文件;
计算与所述数据压缩算法中的每一者相关联的压缩率;
从与所述每种数据压缩算法相关联的所述压缩率来确定最佳压缩率;以及
基于所述最佳压缩率来确定与所述训练数据文件相关联的期望数据压缩算法;以及
执行概率分析,所述概率分析包括:
基于所述期望数据压缩算法来生成符号转换矩阵;
基于所述符号转换矩阵提取统计特征数据;以及
基于所述统计特征数据生成概率矩阵以确定用于工作数据文件的每个片段的所述最佳数据压缩算法。
10.根据权利要求9所述的信息处置系统,其中所述处理器还被配置为生成压缩率分析表,所述压缩率分析表包括所述训练数据文件与所述期望数据压缩算法的关联。
11.根据权利要求9所述的信息处置系统,其中所述最佳压缩率与和所述训练数据文件相关联的至少一个其他压缩率相比具有最大值。
12.根据权利要求9所述的信息处置系统,其中所述处理器还被配置为处理所述工作数据文件,所述处理包括将所述工作数据文件划分为一个或多个片段以及基于所述最佳数据压缩算法来压缩每个片段以生成一个或多个压缩片段。
13.根据权利要求12所述的信息处置系统,其中所述处理器还被配置为使用统一格式将每个压缩片段组合成压缩数据文件。
14.根据权利要求12所述的信息处置系统,其中所述工作数据文件的每个片段具有相等长度。
15.一种包括代码的非暂时性计算机可读介质,所述代码在被执行时执行方法,所述方法包括:
处理训练数据文件以确定最佳数据压缩算法,其中对所述训练数据文件的所述处理包括:
执行压缩率分析,所述压缩率分析包括:
使用多种数据压缩算法来压缩所述训练数据文件;
计算与所述数据压缩算法中的每种数据压缩算法相关联的压缩率;
从与所述每种数据压缩算法相关联的所述压缩率来确定最佳压缩率;以及
基于所压缩率来确定与所述训练数据文件相关联的期望数据压缩算法;以及
执行概率分析,所述概率分析包括:
基于所述期望数据压缩算法来生成符号转换矩阵;
基于所述符号转换矩阵提取统计特征数据;以及
基于所述统计特征数据生成概率矩阵以确定用于工作数据文件的每个片段的所述最佳数据压缩算法。
16.根据权利要求15所述的方法,其还包括处理所述工作数据文件,其中对所述工作数据文件的所述处理包括将所述工作数据文件划分为一个或多个片段以及基于所述最佳数据压缩算法来压缩每个片段以生成一个或多个压缩片段。
17.根据权利要求16所述的方法,其中所述工作数据文件的每个片段具有相等长度。
18.根据权利要求16所述的方法,其还包括使用统一格式将每个压缩片段组合成压缩数据文件。
19.根据权利要求18所述的方法,其中第一数据压缩算法用于压缩第一片段,并且第二数据压缩算法用于压缩所述压缩数据文件的第二压缩片段。
20.根据权利要求15所述的方法,其中所述概率矩阵包括初始状态分布矩阵、状态转换概率矩阵和观察概率矩阵。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571311.3A CN115391298A (zh) | 2021-05-25 | 2021-05-25 | 基于内容的动态混合数据压缩 |
US17/383,555 US11841829B2 (en) | 2021-05-25 | 2021-07-23 | Content-based dynamic hybrid data compression |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571311.3A CN115391298A (zh) | 2021-05-25 | 2021-05-25 | 基于内容的动态混合数据压缩 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115391298A true CN115391298A (zh) | 2022-11-25 |
Family
ID=84114133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110571311.3A Pending CN115391298A (zh) | 2021-05-25 | 2021-05-25 | 基于内容的动态混合数据压缩 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11841829B2 (zh) |
CN (1) | CN115391298A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521063A (zh) * | 2023-03-31 | 2023-08-01 | 北京瑞风协同科技股份有限公司 | 一种hdf5的试验数据高效读写方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230029608A1 (en) * | 2021-07-28 | 2023-02-02 | 214 Technologies, Inc. | Saliency-based compression |
US11966597B1 (en) * | 2022-09-29 | 2024-04-23 | Amazon Technologies, Inc. | Multi-domain configurable data compressor/de-compressor |
CN116055008B (zh) * | 2023-03-31 | 2023-06-02 | 深圳市网联天下科技有限公司 | 一种用于云端服务器连接的路由器数据处理方法 |
CN116668731B (zh) * | 2023-07-26 | 2023-11-10 | 深圳市君兰电子有限公司 | 一种卡拉ok机直播流传输方法 |
CN117708513B (zh) * | 2024-02-05 | 2024-04-19 | 贵州省畜牧兽医研究所 | 一种用于缬草特征研究的种植数据管理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215910B1 (en) * | 1996-03-28 | 2001-04-10 | Microsoft Corporation | Table-based compression with embedded coding |
US6489902B2 (en) * | 1997-12-02 | 2002-12-03 | Hughes Electronics Corporation | Data compression for use with a communications channel |
US6661839B1 (en) * | 1998-03-24 | 2003-12-09 | Advantest Corporation | Method and device for compressing and expanding data pattern |
US6624761B2 (en) * | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
US6195024B1 (en) * | 1998-12-11 | 2001-02-27 | Realtime Data, Llc | Content independent data compression method and system |
US6885319B2 (en) * | 1999-01-29 | 2005-04-26 | Quickshift, Inc. | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms |
US6601104B1 (en) * | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US9093110B2 (en) | 2013-07-30 | 2015-07-28 | Dell Products, Lp | System and method for calculating data compression ratio without writing data to media |
US10749546B1 (en) | 2019-05-15 | 2020-08-18 | Dell Products L.P. | Method and system of content based dynamic data compression |
US11157189B2 (en) | 2019-07-10 | 2021-10-26 | Dell Products L.P. | Hybrid data reduction |
CN113055017A (zh) * | 2019-12-28 | 2021-06-29 | 华为技术有限公司 | 数据压缩方法及计算设备 |
GB2594514A (en) * | 2020-05-01 | 2021-11-03 | Memoscale As | Data compression and transmission technique |
WO2022008311A1 (en) * | 2020-07-10 | 2022-01-13 | Koninklijke Philips N.V. | Genomic information compression by configurable machine learning-based arithmetic coding |
US11394397B2 (en) * | 2020-10-27 | 2022-07-19 | EMC IP Holding Company LLC | System and method for selecting a lossless compression algorithm for a data object based on performance objectives and performance metrics of a set of compression algorithms |
-
2021
- 2021-05-25 CN CN202110571311.3A patent/CN115391298A/zh active Pending
- 2021-07-23 US US17/383,555 patent/US11841829B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521063A (zh) * | 2023-03-31 | 2023-08-01 | 北京瑞风协同科技股份有限公司 | 一种hdf5的试验数据高效读写方法及装置 |
CN116521063B (zh) * | 2023-03-31 | 2024-03-26 | 北京瑞风协同科技股份有限公司 | 一种hdf5的试验数据高效读写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11841829B2 (en) | 2023-12-12 |
US20220382717A1 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115391298A (zh) | 基于内容的动态混合数据压缩 | |
CN104008064B (zh) | 用于多级存储器压缩的方法和系统 | |
US10003357B2 (en) | Systems and methods for verification of code resiliency for data storage | |
US11483009B2 (en) | Self-checking compression | |
US11973519B2 (en) | Normalized probability determination for character encoding | |
US11609882B2 (en) | System and method for random-access manipulation of compacted data files | |
US11422978B2 (en) | System and method for data storage, transfer, synchronization, and security using automated model monitoring and training | |
US11868616B2 (en) | System and method for low-distortion compaction of floating-point numbers | |
US12061794B2 (en) | System and method for multiple pass data compaction utilizing delta encoding | |
US11928335B2 (en) | System and method for data compaction utilizing mismatch probability estimation | |
US11487629B2 (en) | Method, device and computer program product for managing data backup | |
US20200110670A1 (en) | Using accelerators for distributed data compression and decompression to improve checkpoint / restart times | |
US10678505B2 (en) | Subset encoding method: increasing pattern density for finite automata | |
US20230047349A1 (en) | Selectively shearing data when manipulating data during record processing | |
JP2023057546A (ja) | コンピュータに実装された方法、コンピュータプログラム又はコンピュータシステム | |
US20240362189A1 (en) | System and method for random-access manipulation of compacted data files | |
US20240202163A1 (en) | System and method for random-access manipulation of compacted data files | |
US20240061578A1 (en) | A system and method for operating system multiloading and virtualization using codebook encoding of data streams and process calls | |
US11392493B2 (en) | System and method for optimizing non-volatile random access memory usage | |
US11853262B2 (en) | System and method for computer data type identification | |
US11914443B2 (en) | Power-aware transmission of quantum control signals | |
US20240248602A1 (en) | System and method for codebook management based on data source grouping | |
US20240211133A1 (en) | Medical imaging data compression utilizing codebooks | |
CN117194488A (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 |