CN111626411A - 压缩数据的方法和装置 - Google Patents
压缩数据的方法和装置 Download PDFInfo
- Publication number
- CN111626411A CN111626411A CN202010120623.8A CN202010120623A CN111626411A CN 111626411 A CN111626411 A CN 111626411A CN 202010120623 A CN202010120623 A CN 202010120623A CN 111626411 A CN111626411 A CN 111626411A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- compression technique
- blocks
- header
- 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 OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/4056—Coding table selection
-
- 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/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- 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/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
-
- 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/6047—Power optimization with respect to the encoder, decoder, storage or transmission
-
- 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
- H03M7/607—Selection between different types of compressors
-
- 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
- H03M7/6082—Selection strategies
- H03M7/6088—Selection strategies according to the data type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了用于压缩数据的方法、装置、系统和制品。示例装置包括:片外存储器,用于存储数据;数据切片器,用于将数据集划分为多个数据块;数据处理器,用于:基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术;以及基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术;第一压缩器,其使用所述第一压缩技术来压缩所述第一块,以生成第一压缩数据块;第二压缩器,其使用所述第二压缩技术来压缩所述第二块,以生成第二压缩数据块;报头生成器,其用于生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头;以及接口,其用于发送要被存储在所述片外存储器中的具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块。
Description
技术领域
本公开总体上涉及处理器,并且更具体地涉及压缩数据的方法和装置。
背景技术
近年来,在各种数据处理系统中,在处理器芯片(例如,片上)上实现的基于硬件的神经网络已经越来越流行。神经网络为机器学习算法提供了一个框架以协同工作并处理大型和/或复杂数据。在一些示例中,神经网络连接到片外存储器(例如,位于处理器芯片之外的存储器)以提供片上神经网络的增加的可用容量。
附图说明
图1是包括示例数据压缩器和数据解压缩器的图的框实现。
图2是图1的数据压缩器和数据解压缩器的示例实现的框图。
图3-4是表示示例机器可读指令的流程图,示例机器可读指令可以被执行以实现图1和/或图2的示例数据压缩器以压缩数据集。
图5是表示示例机器可读指令的流程图,该示例机器可读指令可以被执行以实现图1和/或图2的示例数据解压缩器以解压缩压缩的数据集。
图6示出了可以由图1和/或图2的数据解压缩器执行的示例数据解压缩过程。
图7是被构造为执行图3至图4的指令来实现图1和/或图2的示例数据压缩器的示例处理平台的框图。
图8是被构造为执行图5的指令来实现图1和/或图2的示例数据解压缩器的示例处理平台的框图。
附图未按比例绘制。通常,在整个附图和随附的书面描述中将使用相同的附图标记来指代相同或相似的部分。
具体实施方式
包括个人计算机和/或移动设备在内的典型计算系统采用高级图像处理或计算机视觉算法来自动化人类视觉可以执行的任务。计算机视觉任务包括获取,处理,分析和/或理解数字图像。这样的任务部分地促进了从数字图像中提取维度数据以产生数字和/或符号信息。计算机视觉算法可以使用数字和/或符号信息来进行决策和/或以其他方式执行与三维(3-D)姿态估计、事件检测、对象识别、视频跟踪等相关联的操作。为了支持增强现实(AR)、虚拟现实(VR)、机器人技术和/或其他应用,因此重要的是快速(例如,实时或近实时)高效地执行此类任务。
先进的图像处理或计算机视觉算法有时会使用硬件加速器和/或卷积神经网络(CNN或ConvNet)。硬件加速器是比通用中央处理单元(CPU)实现的软件更高效地执行功能(例如,对图像进行分类,对图像进行聚类,执行对象识别等)的硬件组件。CNN是一种深层的人工神经网络,可用于对图像进行分类,通过相似度对图像进行聚类(例如照片搜索),和/或使用卷积在图像内执行对象识别。如本文中所使用的,卷积被定义为通过积分从两个给定的函数派生的函数,该积分表示如何通过另一个函数的形状来修改一个函数的形状。因此,CNN可用于通过在输入图像上传递与图像特征(例如,水平线、二维(2-D)形状等)相对应的一个或多个滤波器的输出以标识输入图像内图像特征的匹配项来识别输入图像中所包含的面部、个体、街道标志、动物等。
一些硬件加速器和/或CNN的存储器容量有限。因此,位于处理器芯片上的这种硬件加速器和/或CNN可以连接到存储器(例如,诸如动态随机存取存储器(DRAM)之类的片外存储器)以增加容量以支持硬件加速器和/或CNN的增加的数据处理能力。但是,将数据从片外存储器传输到片上硬件加速器和/或CNN会产生与有限带宽相对应的瓶颈效应,从而限制了硬件加速器和/或CNN的处理能力。一些技术使用无损压缩技术(例如,霍夫曼压缩)来减少片外存储器接口的带宽需求,以减少需要移至片上硬件加速器和/或CNN的数据量。但是,这样的技术与某些硬件加速器和/或CNN的运行频率和/或需要运行解码器的频率不兼容。
本文公开的示例包括片外数据压缩技术,该片外数据压缩技术用于优化由无损编码技术提供的带宽改善,同时使硬件解压缩实现与硬件加速器和/或CNN的频率兼容。本文公开的示例包括将要存储在片外存储器中的数据分裂(例如,分组)为多个数据块,并基于每个块的数据特性在每个块的基础上应用压缩技术(例如,游程编码(RLE)、部分霍夫曼编码、不编码和/或其他任何无损压缩技术)。
例如,如果块中的所有数据都对应于相同的字符(例如,全为“0”,全为“1”,全为“a”),则本文公开的示例使用RLE编码来压缩该块。RLE编码是一种无损数据压缩,其将所有块数据压缩为表示该块的所有值的单个值,该值包括原始块中的字符数信息。例如,如果该块是一个16个字符的数据块,其中每个字符对应“0”,则RLE编码会将子块压缩为一个单个字符“0”,代表包括表示数据块的原始大小的字符(例如16)的16个“0”字符。
如果块中的数据并非全部对应于相同字符,则本文公开的示例可以执行霍夫曼技术(例如,完整霍夫曼技术或部分霍夫曼技术)。霍夫曼技术是一种无损数据压缩/编码算法,用于将可变长度代码分配给输入字符,其中代码的长度基于对应输入字符的频率。因此,霍夫曼技术导致长度不均匀的代码。例如,与块的较不频繁的字符相比,将块的较频繁的字符分配给较小长度的代码。因此,霍夫曼技术减小了具有重复字符的数据块的大小。为了应用霍夫曼编码,基于数据集中每个字符出现的频率来生成霍夫曼树。块的数据的每个字符都分配给基于霍夫曼树的代码。在大多数情况下,使用霍夫曼编码技术编码数据会导致无损数据压缩。
部分霍夫曼编码技术包括仅将霍夫曼编码技术应用于预设数量的字符,而其余字符未编码。然后将每个字符标记或标注为已编码或未编码。以这种方式,减少了解码时间,并且减少了对霍夫曼编码数据进行解码所需的霍夫曼表的大小。减小霍夫曼表的大小会减少需要与编码数据一起传输到解码器的数据量。此外,减少霍夫曼表有助于提高解码速度的硬件解决方案。本文公开的示例通常对应于部分霍夫曼技术。但是,可以选择使用完整的霍夫曼技术。
此外,本文公开的示例将霍夫曼编码的数据块划分为编码的数据子块。可以通过在每个子块的末尾添加预设代码来填充此类编码数据子块,以使片上解码器可以分离子块以进行并行解码,从而增加计算带宽。在一些示例中,例如当块中有很少重复字符或没有重复字符时,部分霍夫曼技术可能不会减小数据块的大小,这是由于与包含的报头相对应的开销量所致。因此,本文公开的示例对于部分霍夫曼技术不减小数据块的大小的块不执行任何压缩/编码技术。
使用本文公开的示例,用户可以将压缩方案定制为特定的应用数据简档以实现更高的压缩率。另外,本文公开的示例降低了霍夫曼编码查找表要求以与硬件存储器限制和速度要求兼容。另外,本文公开的示例使得能够进行解码和/或编码并行化,从而对应于更高的解码带宽。
图1是示例片外组件100和示例片上组件102的框图。示例片外组件100包括用于存储数据/数据集的示例片外存储器104和示例数据压缩器106,示例数据压缩器106用于在传输到示例片上组件102以进行基于硬件的处理之前压缩存储在示例片外存储器104中的数据集。示例片上组件102包括用于解压缩压缩的数据集的示例数据解压缩器108以及用于处理数据集的示例硬件加速器/神经网络引擎110。尽管图1的示例框图包括片外组件100,示例片外存储器104和/或示例数据压缩器106可以与示例片上组件102位于同一芯片上(例如,图1的所有组件可以位于同一芯片上)。
图1的示例片外组件100包括片外存储器104(例如,DRAM)以存储将由硬件加速器/神经网络110处理的数据。示例片外存储器104通过提供附加存储器来存储可由硬件加速器/神经网络110处理的附加数据来增加示例硬件加速器/神经网络110的存储器容量。如上所述,由于片外存储器104(例如,DRAM)的带宽限制,将未压缩数据从片外存储器104传输到硬件加速器/神经网络110会产生瓶颈。因此,示例数据压缩器106在发送到片上组件102之前压缩要存储到片外存储器104中和/或已经存储在片外存储器104中的数据,以减小数据的大小以减小和/或消除瓶颈问题。示例数据压缩器106通过将存储的数据分成数据块并基于块的数据的特性使用三种压缩/编码技术来压缩数据。另外,示例数据压缩器106生成标识所使用的压缩/编码技术并提供示例数据解压缩器108可以用来解压缩块的信息(例如,块大小、编码表、子块大小等)的块的报头(例如,第一块的第一报头、第二块的第二报头等)。以这种方式,示例数据解压缩器108可以适当地解压缩压缩的数据。一旦被压缩,示例数据压缩器106就将压缩的数据存储在示例片外存储器104中。以这种方式,片外存储器104可以发送要由示例硬件加速器/神经网络110处理的压缩数据。在一些示例中,数据压缩器106包括多个处理器以并行地压缩数据的多个块,从而增加了计算带宽。下面结合图2进一步描述示例数据压缩器106。
图1的示例片上组件102包括数据解压缩器108,用于与片外组件100接合以从片外存储器104接收压缩数据,并在将压缩数据发送到硬件加速器/神经网络110之前对其进行解压缩。在一些示例中,数据解压缩器108是硬件加速器。示例数据解压缩器108接收压缩数据并识别压缩数据的块的报头,以确定压缩压缩块的技术。以这种方式,数据解压缩器108基于在每个块的报头中标识的压缩技术来对压缩的块进行解压缩。一旦被解压缩,示例数据解压缩器108将解压缩的数据发送到示例硬件加速器/神经网络110。示例硬件加速器/神经网络110基于硬件加速器/神经网络110的配置来处理解压缩的数据。下面结合图2进一步描述示例数据解压缩器108。
图2是图1的示例数据压缩器106的示例实现的框图和图1的示例数据解压缩器108的示例实现的框图。示例数据压缩器106包括示例存储器接口200、示例数据切片器202、示例数据处理器204、示例压缩器206、示例报头生成器208、示例填充器210和示例压缩数据汇编器212。示例数据解压缩器108包括示例片外接口218、示例报头处理器220、示例数据分离器221、示例解压缩器222、示例解压缩数据汇编器224和示例硬件加速器/神经网络接口226。
图2的示例存储器接口200从图1的示例片外存储器104接收数据,所述数据将被压缩并被发送到示例片上数据解压缩器108。一旦数据压缩器106压缩了数据,图2的示例存储器接口200就将压缩数据发送到示例片外存储器104,使得压缩的数据可以被图1的片上组件102取回。
一旦存储器接口200从示例片外存储器104获得数据,则示例数据切片器202将数据分离(例如,切片)为数据块。在一些示例中,数据切片器202将数据分离成统一的固定大小的块。另外,数据切片器202可以将编码数据(例如,已经使用部分霍夫曼压缩编码的块)切片为编码数据子块,以使得能够对示例数据解压缩器108进行并行解压缩处理,如下文进一步描述的。在一些示例中,数据切片器202包括两个数据切片器。例如,可能存在第一数据切片器将原始数据分离为数据块,以及第二数据切片器将霍夫曼编码的数据分离为编码的数据子块。
图2的示例数据处理器204是一个或多个数据处理器,用于基于块的数据的特性来确定(例如,选择)用于数据块的压缩技术(例如,RLE编码、霍夫曼编码、无编码和/或任何其他无损压缩技术)。例如,当数据处理器204获得一个块时,数据处理器204确定该块的所有数据是否对应于相同的值和/或字符(例如,全为“0”,全为“1”,全为“a”等)。如果数据处理器204确定该块的数据对应于相同的值/字符,则数据处理器204确定可以将RLE编码技术应用于该块以压缩该块而不会丢失信息。如果数据处理器204确定块的数据对应于不同的值/字符,则数据处理器204可以确定霍夫曼编码(例如,部分或全部)应该应用于该块或不应当将编码应用于该块。如上所述,将霍夫曼编码技术应用于一些块可能导致大量的数据(例如,当该块具有很少的重复值/字符或没有重复的值/字符时)。因此,在一些示例中,示例数据处理器204可以处理数据块以确定该数据块的部分霍夫曼编码技术是否会导致较小或较大数量的数据。在这样的示例中,如果示例数据处理器204确定数据块的部分霍夫曼编码产生比没有编码更多的数据(例如,使用概率建模),则数据处理器204确定没有编码将应用于数据块。在其他示例中,压缩器206对数据应用部分霍夫曼编码,并且数据处理器204确定结果是大于还是小于不应用压缩技术(例如,不编码)的情况。如果数据处理器204确定结果大于不应用压缩技术的情况,则数据处理器204丢弃霍夫曼编码数据,从而使数据块保持未编码(例如,未压缩)。数据处理器204可以是单个数据处理器或多个数据处理器。例如,多个数据处理器204可以并行用于处理数据块。
图2的示例压缩器206基于数据处理器204选择的技术对数据块执行压缩技术(例如,RLE编码、霍夫曼编码和/或任何其他无损压缩技术)。如上所述,当块的所有数据对应于相同的值和/或字符(例如,全部为“0”,全部为“1”,全部为“a”等)时,数据处理器204选择RLE编码。当数据处理器204为数据块选择RLE时,数据处理器204指示报头生成器208生成标识该块的重复值和/或值的重复数的报头或数据分组。例如,如果块是每个位对应于“1”的8字符块,则数据处理器204指示报头生成器208生成报头,该报头标识8个字符中的每一个对应于值“1”,以及“1”重复了8次的指示。
当图2的数据处理器204选择了霍夫曼编码或部分霍夫曼编码时,示例压缩器206将霍夫曼编码或部分霍夫曼编码应用于数据块。如上所述,为了应用霍夫曼编码,基于一组数据中每个字符的出现频率来生成霍夫曼树。块的数据的每个字符都分配给基于霍夫曼树的代码。在大多数情况下,使用霍夫曼编码技术编码数据会导致无损数据压缩。部分霍夫曼编码技术包括仅将霍夫曼编码技术应用于预设数量的字符,而其余字符不进行编码,从而减少解码时间并减小解码霍夫曼编码数据所需的霍夫曼表的大小。编码数据中的字符预先附加了一个标记,用于标识该字符是否已编码。在一些示例中,数据处理器204确定在霍夫曼编码技术中包括哪些和/或多少个预设字符在报头开销和数据压缩之间进行折衷。例如,数据处理器204可以确定部分霍夫曼技术可以仅应用于236个可能字符中的8个字符。因此,数据处理器204将确定最频繁重复的数据的8个字符,并且压缩器206将对8个确定的字符应用符号,以使用8个确定的字符应用部分霍夫曼编码。应用部分霍夫曼编码技术允许更快的压缩,并且允许存储器104发送较小的霍夫曼表,该较小的霍夫曼表用于解压缩(例如,解码)已经使用霍夫曼编码技术压缩的块。压缩器206可以是单个压缩器或多个压缩器。例如,多个压缩器206可以用于并行地编码(例如,压缩)数据块。
图2的示例报头生成器208生成标识用于编码和/或压缩数据块的编码和/或压缩类型(例如,RLE编码、霍夫曼编码、无编码和/或任何其他无损压缩技术)的报头和/或数据分组。例如,如果块的压缩类型是RLE压缩,则报头生成器208生成标识RLE压缩以及与RLE压缩相对应的重复字符和重复字符的次数的报头和/或数据分组。如果块的压缩类型是霍夫曼压缩或部分霍夫曼压缩,则报头生成器208生成与霍夫曼和/或部分霍夫曼压缩技术相对应的报头和/或数据分组。例如,报头生成器208可以生成报头以包括指示该块是霍夫曼编码的指示、用于解码数据的表、编码的数据的大小、子块的大小和/或指示该子块是否被编码的字符标记。如果未对块的压缩类型进行编码和/或压缩,则示例报头生成器208生成与无压缩和/或编码以及未编码数据的大小相对应的报头和/或数据分组。示例报头生成器208将报头和/或数据分组添加到编码或未编码块。以这种方式,示例数据解压缩器108可以识别针对每个块使用了哪种压缩技术,并且基于该压缩技术对压缩的块进行解压缩。报头生成器208可以是单个报头生成器或多个报头生成器。例如,可以利用报头生成器208并行地为数据块生成报头。
当霍夫曼编码或部分霍夫曼编码被应用于数据块以产生霍夫曼编码数据时,图2的示例切片器202将霍夫曼编码数据切片(例如,分组)为与N个编码子块相对应的预设数目的编码子块。例如,如果编码数据包括27个霍夫曼码,并且编码子块的预设数量是9,则切片器202针对每个子块将3个霍夫曼码分组。预设数量的编码子块可以基于数据解压缩器108的并行处理器的数量。以这种方式,每个并行处理器可以并行处理每个编码子块或N个子块。一旦被切成已编码的子块,示例填充器210就用代表子块的结尾的预定义代码模式来填充各个子块。如上所述,霍夫曼码的长度是可变的(例如,不均匀的)。例如,第一16位子块的第一霍夫曼码的长度可以是8位,而第二16位子块的第二霍夫曼码的长度可以是10位。因此,对一个或多个霍夫曼码进行分组将对应于可变(例如,非均匀)长度的编码子块。因此,填充器210将预定义的代码添加到子块的末尾,并且报头生成器208在报头中包括被填充的子块的大小,从而示例数据解压缩器108可以基于报头中标识的大小来分离单独的编码子块以促进并行解码。填充器210可以是单个填充器或多个填充器。例如,可以利用填充器210并行地填充编码子块。
图2的示例压缩数据汇编器212将填充的编码子块与生成的报头按顺序汇编在一起,以完成数据块的霍夫曼编码。另外,示例压缩数据汇编器212汇编编码(例如,压缩)或未编码(例如,未压缩)的数据块,以生成将被发送到示例数据解压缩器108的整个压缩数据。在一些示例中,可以并行处理数据块。因此,压缩数据汇编器212监视块以能够以与在编码之前对数据块进行排序的顺序相同的顺序来汇编编码的块。
图2的示例片外接口218从示例片外存储器104获得压缩数据。一旦获得了压缩数据,示例报头处理器220就处理该压缩数据以识别该压缩数据的块的报头。如上所述,报头包括标识用于压缩压缩数据的每个块的编码技术的信息。因此,报头处理器220可以通过识别用于(例如,一对一或并行)解压缩数据块的报头来分离压缩块。
图2的示例解压缩器222基于在每个对应块的报头中标识的对应压缩信息对数据块进行解压缩。例如,如果第一编码数据块的第一报头对应于RLE压缩,则解压缩器222处理第一报头以识别重复哪个字符以及该字符重复多少次并将确定的重复字符数传递给解压缩数据汇编器224。次数可以是预设的或可以在报头中标识次数。如果第二编码数据块的第二报头对应于不编码,则解压缩器222移除报头并将未编码的数据传递给解压缩数据汇编器,而无需对该数据进行解压缩(例如,解码)。如果第三编码数据块的第三报头对应于霍夫曼编码(例如,部分或全部),则解压缩器222使用霍夫曼表从与霍夫曼码对应的块的报头中解压缩第三编码数据块。在一些示例中,数据分离器221基于在报头内标识的子块大小将压缩数据块分成子块。在这个问题上,每个子组可以由多个解压缩器222并行处理。一旦解压缩,解压缩器222将解压缩的子块传递到示例解压缩数据汇编器224。
图2的示例解压缩数据汇编器224汇编解码的子块以便完成数据块的霍夫曼解码。例如,如果存在多个解压缩器222以并行地解码霍夫曼编码的子块,则解压缩数据汇编器224监视并行处理器以能够对解压缩的子块进行排序以生成解压缩的数据块。另外,示例解压缩数据汇编器224汇编解码的(例如,解压缩的)数据块以生成要被发送到示例硬件加速器/神经网络110的整个解压缩数据。在一些示例中,数据块被并行处理(例如,解压缩和/或解码)。因此,解压缩数据汇编器224监视块以能够以与接收的数据块相同的顺序汇编解码块。图2的示例硬件加速器/神经网络接口226将整组的解压缩数据发送到图1的片上组件102的示例的硬件加速器/神经网络110。
尽管在图2中示出了实现图1的示例数据压缩器106和示例数据解压缩器108的示例方式,图2中示出的元件、过程和/或设备中的一个或多个可以以任何其他方式来组合,划分,重新布置,省略,消除和/或实施。此外,示例存储器接口200、示例数据切片器202、示例数据处理器204、示例压缩器206、示例报头生成器208、示例填充器210、示例压缩数据汇编器212、示例片外接口218、示例报头处理器220、示例数据分离器221、示例解压缩器222、示例解压缩数据汇编器224、示例硬件加速器/神经网络接口226、和/或更一般地,图2的示例数据压缩器106和/或示例数据解压缩器108可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例存储器接口200、示例数据切片器202、示例数据处理器204、示例压缩器206、示例报头生成器208、示例填充器210、示例压缩数据汇编器212、示例片外接口218、示例报头处理器220、示例数据分离器221、示例解压缩器222、示例解压缩数据汇编器224、示例硬件加速器/神经网络接口226、和/或更一般地,图2的示例数据压缩器106和/或示例数据解压缩器108中的任何一个可以通过一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)来实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例存储器接口200、示例数据切片器202、示例数据处理器204、示例压缩器206、示例报头生成器208、示例填充器210、示例压缩数据汇编器212、示例片外接口218、示例报头处理器220、示例数据分离器221、示例解压缩器222、示例解压缩数据汇编器224、示例硬件加速器/神经网络接口226、和/或更一般地,图2的示例数据压缩器106和/或示例数据解压缩器108中的至少一个在此明确地定义为包括非暂时性计算机可读存储设备或存储磁盘,例如存储器、数字通用磁盘(DVD)、光盘(CD)、蓝光盘等,包括软件和/或固件。更进一步地,图2的示例数据压缩器106和/或数据解压缩器108可以包括:除了或代替图2所示的元件、过程和/或设备之外的一个或多个元件、过程和/或设备,和/或可以包括所图示的元件、过程和设备中的任何一个或全部中的一个以上。如本文所使用的,短语“在通信中”,包括其变体,涵盖通过一个或多个中间组件的直接通信和/或间接通信,并且不需要直接的物理(例如,有线)通信和/或恒定的通信,而是此外,它还包括定期间隔、计划间隔、非周期性间隔和/或一次性事件的选择性通信。
在图3-4中示出了表示用于实现图1和/或图2的示例数据压缩器106的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。在图5中示出了表示用于实现图1和/或图2的示例数据解压缩器108的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是供计算机处理器执行的可执行程序或可执行程序的一部分,该计算机处理器诸如以下结合图7和/或图8讨论的示例处理器平台700、800中所示的处理器712、812。该程序可以体现在存储在诸如与处理器712、812相关联的CD-ROM、软盘、硬盘驱动器、DVD、蓝光光盘或存储器的非暂时性计算机可读存储介质上的软件中,但是整个程序和/或其部分可以可选地由除处理器712、812之外的设备执行和/或体现在固件或专用硬件中。此外,尽管参考图3-5所示的流程图描述了示例程序,可以可替代地使用实现图2的示例数据压缩器106和/或数据解压缩器108的许多其他方法。例如,可以改变框的执行顺序,和/或可以改变,消除或组合所描述的一些框。附加地或替代地,任何或所有块可以由构造成不执行软件或固件来执行对应的操作一个或多个硬件电路(例如,离散和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现。
如上所述,图3-5的示例过程可以使用存储在存储了任何持续时间的信息(例如,用于延长的时间段,永久地,用于短暂的情况,用于临时缓冲,和/或用于信息缓存)的非暂时性计算机和/或机器可读介质(例如,硬盘驱动器、闪存、只读存储器、压缩磁盘、数字通用磁盘、高速缓存、随机存取存储器和/或任何其他存储设备或存储磁盘)上的可执行指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语“非暂时性计算机可读介质”被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。
“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括”或“包含”(例如,包含有,包括有,包含了,包括了,具有等)作为序言或在任何种类的权利要求叙述中时,应理解为在不超出对应权利要求或陈述的范围的情况下,可以存在额外要素、术语等。如本文所使用的,当例如在权利要求的序言中使用短语“至少”作为过渡术语时,其以与术语“包含”和“包括”是开放式的相同的方式是开放式的。当例如以诸如A,B和/或C的形式使用时,术语“和/或”是指A,B,C的任何组合或子集,诸如(1)仅A,(2)仅B,(3)仅C,(4)A与B,(5)A与C,(6)B与C,以及(7)A与B与C。
图3是表示可以由图1和/或图2的数据压缩器106的示例实现来执行以在发送到图1的片上组件102之前压缩片外存储的数据的示例机器可读指令的示例流程图300。尽管图3的流程图300结合图1和/或图2的示例数据压缩器106进行描述,可以替代地使用其他类型的数据压缩器和/或其他类型的处理器。尽管结合RLE压缩、霍夫曼压缩和/或无压缩来描述图3的示例流程图300,但是可以附加地或替代地使用其他压缩技术。
在框302处,示例数据切片器202经由示例存储器接口200从示例片外存储器104获得数据集。该数据集是存储在示例片外存储器104中的一组数据,示例片外存储器104由图1的示例片上硬件加速器/神经网络110使用来对数据集执行基于硬件的处理。在框304,数据切片器202将数据集划分为N个数据块。块的大小和/或数量可以基于用户和/或制造商的偏好。N个数据块的大小可以统一也可以不统一。在框306,示例数据压缩器106压缩数据块,如下面结合图4进一步描述的。
在框308,示例压缩数据汇编器212汇编压缩块以生成压缩数据集。例如,如果数据压缩器106按顺序压缩块,则数据汇编器212以与压缩块相同的顺序附加压缩的块。如果数据压缩器106无序地或并行地压缩块,则数据汇编器212监视压缩以能够以与来自数据集的数据相同的顺序重新汇编压缩的数据块。在框310,示例接口202将压缩的数据集发送到图的片外存储器104以便被存储为压缩数据。
图4是表示可以由图1和/或图2的数据压缩器106的示例实现来执行以压缩数据块的示例机器可读指令的示例流程图306,如上面结合图3所描述的。尽管结合图1和/或图2的示例数据压缩器106描述图4的流程图306,可以替代地使用其他类型的数据压缩器和/或其他类型的处理器。图4的示例流程图306可以线性地和/或并行地对多个数据块执行(例如,通过并行数据切片器202、数据处理器204、压缩器206、报头生成器208和/或填充器210)。尽管结合RLE压缩、霍夫曼压缩和/或无压缩描述了图4的示例流程图306,但是可以附加地或替代地使用其他压缩技术。
对于N个数据块中的每个(框402-430),示例数据处理器204确定该数据块中的所有数据是否对应于相同的值和/或字符(框404)。例如,如果数据块包括全“a”,则示例数据处理器204确定该数据块的所有数据对应于相同字符。
如果示例数据处理器204确定该块的所有数据都对应于相同的值和/或字符(框404:是),则示例压缩器206执行RLE压缩技术以编码/压缩块的数据(框406)。例如,压缩器206可以指示报头生成器208生成标识重复字符和/或该字符在数据块中重复的次数的数据分组。在框408处,示例报头生成器208生成数据分组和/或报头以与压缩数据一起包括,该压缩数据标识出使用RLE压缩技术对数据块进行了压缩。以这种方式,示例数据解压缩器108可以将块识别为与RLE压缩相对应,并且基于RLE解压缩技术对块进行解压缩。
如果示例数据处理器204确定并非块的所有数据都对应于相同的值和/或字符(框404:否),则示例压缩器206执行部分霍夫曼编码技术来编码/压缩数据块(框412)。在一些示例中,压缩器206可执行完整的霍夫曼编码技术。如上所述,为了应用霍夫曼编码,示例压缩器206基于数据集中每个字符出现的频率来产生霍夫曼树。压缩器206基于霍夫曼树为块的数据的每个字符分配代码。在大多数情况下,使用霍夫曼编码技术对数据进行编码会导致无损数据压缩,该压缩的大小要比无编码小。为了应用部分霍夫曼编码技术,示例压缩器206仅将霍夫曼编码技术应用于预设数量的字符,而其余字符未编码,从而增加了编码和/或解码时间并减小了解码霍夫曼编码数据所需的霍夫曼表的大小。另外,示例压缩器206将每个字符标记为已编码或未编码。
在框414处,示例数据处理器204确定编码数据和报头是否对应于比未编码数据更多的比特。如上所述,霍夫曼或部分霍夫曼压缩技术可对应于块中具有很少字符重复或没有字符重复的数据块的更多数据。在一些示例中,数据处理器204可以基于块内数据的重复来确定霍夫曼压缩或部分霍夫曼压缩在执行压缩之前(例如,在框412之前)是否将导致更多比特。
如果示例数据处理器204确定编码数据和报头对应于比未编码数据更多的比特(框414:是),则示例数据处理器204丢弃编码数据(框416)。在框418处,示例报头生成器208生成与无编码相对应的报头。以这种方式,示例数据解压缩器108可以确定该块的数据是未编码的和/或未压缩的。在框420处,示例报头生成器208将具有生成的报头的块的未编码数据传递给示例压缩数据汇编器212。
如果示例数据处理器204确定编码数据不对应于比未编码的数据更多的比特(框414:否),则示例报头生成器208生成与霍夫曼和/或部分霍夫曼(PF)编码相对应的报头(框422)。以这种方式,示例数据解压缩器108可以将块识别为与霍夫曼和/或PH压缩相对应,并且基于霍夫曼和/或PH解压缩技术对块进行解压缩。在框424处,示例数据切片器202将编码数据切片,分割和/或分组为编码子块。子块可包括一个或多个霍夫曼码。每个子块的霍夫曼码的数量可以是预设的,可定制的,和/或基于用户和/或制造商的偏好。例如,每个子块的霍夫曼码的数量可以对应于示例数据解压缩器108中的并行处理器的数量,从而优化数据解压缩器108的处理能力。
在框424处,示例填充器210使用预定义的图案填充编码的子块。如上所述,作为编码过程的结果,不同的霍夫曼码可以对应于不均匀(例如,不同)的长度。例如,第一霍夫曼码可以是2位数据,并且第二霍夫曼码可以是4位数据。因此,切片的子块的大小可以对应于不均匀(例如,不同)的长度。因此,示例填充器210以与子块的末端相对应的预定图案填充每个编码子块。在一些示例中,填充确保每个可变大小的子块具有相同的长度(例如,选定的长度)。以这种方式,示例数据解压缩器108可以通过基于所选择的子块长度分离子块来分离压缩的子块以进行并行解压缩。在一些示例中,填充的子块的长度不同。在这样的示例中,数据解压缩器108基于报头中的指定填充将编码的块划分为子块。在框428,示例填充器210将带有报头的填充的子块传递到示例压缩数据汇编器212,以在发送图2的示例片上组件102之前按顺序汇编。
图5是表示可以由图1和/或图2的数据解压缩器108的示例实现来执行以从图1的示例片外组件100解压缩压缩数据的示例机器可读指令的示例流程图500。尽管结合图1和/或图2的示例数据解压缩器108描述了图5的流程图500,可以替代地使用其他类型的数据解压缩器和/或其他类型的处理器。尽管结合压缩块的串行解压缩描述了流程图500,但是该流程图可以与并行解压缩处理结合使用,在并行解压缩处理中,每个块被并行处理。
在框502处,示例报头处理器220从示例片外接口218获得压缩数据集。该压缩数据集对应于存储在示例片外存储器104中的,已经被示例数据压缩器106使用本文公开的技术压缩的数据。对于每个压缩数据块(框504-530)(例如,用单个解压缩器222顺序地处理),示例报头处理器220标识与编码数据块相对应的可用压缩块的报头(框506)。如上所述,在数据压缩期间,每个压缩数据块包括报头,该报头标识用于压缩数据块的压缩类型。因此,在框508,示例报头处理器220基于编码块的报头来确定压缩和/或编码类型。尽管结合已经使用RLE压缩、霍夫曼压缩和/或无压缩来压缩的数据来描述图5的示例流程图500,报头可以对应于附加和/或替代压缩技术。在这样的示例中,数据解压缩器108基于这样的附加和/或替代压缩技术对数据进行解压缩。
对于每个压缩数据块(框508-530)(例如,由示例数据分离器221分离并用单个解压缩器222顺序处理),示例解压缩器222确定压缩类型是否对应RLE编码和/或压缩(框510)。如果示例解压缩器222确定压缩类型对应于RLE编码(框510:是),则示例解压缩器222执行RLE解压缩以基于报头信息对数据进行解码(框512)。例如,如果报头信息识别出数据块对应于16个重复的“a”,则解压缩器222对数据进行解压缩以生成16个重复的“a”。在框514,示例解压缩器222将解压缩的数据(例如,在上面的示例中16个重复的“a”)传递到示例解压缩数据汇编器224。
如果示例解压缩器222确定压缩类型不对应于RLE编码(框510:否),则示例解压缩器222确定压缩类型是否对应于未编码数据(框516)。如果示例解压缩器222确定压缩类型对应于未编码数据(框516:是),则示例解压缩器222将未编码数据传递给解压缩数据汇编器224。如果示例解压缩器222确定压缩类型不对应于未编码数据(框516:否),则示例解压缩器222基于报头中识别出的子块的大小来确定霍夫曼或部分霍夫曼编码的数据块的编码的子块(框520)。如上所述,示例数据压缩器106将数据块的子块的端(end)填充有预定的端图案。以这种方式,示例解压缩器222可以基于在报头中标识的子块大小将块分成子块。
对于每个编码子块(框520-528)(例如,由示例数据分离器221划分为子块,并使用单个解压缩器222线性处理或使用多个解压缩器222并行处理),示例解压缩器222对编码的子块执行块(例如,部分或完整霍夫曼)解码(框524)。例如,解压缩器222可以利用霍夫曼表,该霍夫曼表将霍夫曼码对应于代表解压缩数据的字符,以对标记为编码的字符进行解压缩和/或解码,并且保持标记为未编码的字符不变。在框526处,示例解压缩器222将解码的子块传递给解压缩数据汇编器224。在框529,示例解压缩数据汇编器224将子块汇编成解压缩块。
在框532处,示例解压缩数据汇编器224将解码的块汇编为解压缩数据集,以与存储在示例片外存储器104中的数据集相对应。在框534,示例硬件加速器/神经网络接口226将解压缩的数据集发送到图1的硬件加速器/神经网络110。
图6示出了使用图1和/或图2的示例数据压缩器106对来自图1的示例片外组件100的数据进行的示例数据解压缩过程600。示例解压缩过程600包括示例数据集601、示例数据块602、示例决策块604、614、示例RLE压缩606、示例报头608、616、620、示例压缩数据集610、示例编码块612、示例霍夫曼压缩613、示例编码数据块616、示例未编码数据块618、示例编码块622、示例切片624、示例编码子块626和示例填充628。
图6的示例数据集601对应于存储在示例片外存储器100中的数据。示例数据切片器202将数据集601切片成数据块,包括示例数据块602。切片后,示例数据处理器204在决策框604基于数据块602的数据的特性来选择编码技术。如果数据处理器204确定该块的所有数据都相同,则数据处理器204选择RLE压缩606来压缩数据块602。如果数据处理器204确定不是块的所有数据都相同,则数据处理器204选择部分霍夫曼压缩(或完整霍夫曼压缩)613。
如果选择了RLE压缩606,则示例报头生成器208生成与RLE压缩技术相对应的示例报头608,该示例报头608标识表示该数据块中所有数据的值以及在该报头中标识的重复次数。因此,示例报头608被包括为压缩数据集610中的编码数据块612。如果选择了部分霍夫曼压缩613,则一旦压缩器206执行部分霍夫曼压缩613,数据处理器204确定编码数据和报头是否大于阈值(例如,与对应于未编码数据块602的数据量相对应的阈值)。如果数据处理器204确定编码数据和对应的报头大于阈值,则压缩器206丢弃编码数据块,并且示例报头生成器208生成与无编码对应的示例报头616并且包括具有未编码数据块602的报头616作为压缩数据集610的编码块612。
如果数据处理器204确定编码的数据和对应的报头小于阈值,则示例报头生成器208生成标识部分霍夫曼压缩613的示例报头620。另外,示例数据切片器202在示例切片块624处对霍夫曼编码数据622进行切片以生成编码子块626。因为编码数据子块626的大小可能不均匀(例如,每个数据子块626可能对应于不同的大小),示例填充器210在示例填充块628处以选择的模式填充编码数据子块626。另外,报头生成器208将每个子块的大小添加到报头中。以这种方式,示例数据解压缩器108可以基于所识别的大小将编码块612分解为示例编码数据子块626。一旦被填充,报头620和被填充的子块以及对应的报头被包括在示例压缩数据集610中作为编码块612。
图7是被构造为执行图3-4的指令以实现图2的示例数据压缩器106的示例处理器平台700的框图。处理器平台700可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,手机、智能电话、平板电脑,例如iPadTM)或其他任何类型的计算设备。
示出的示例的处理器平台700包括处理器712。示出的示例的处理器712是硬件。例如,处理器712可以由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实现。硬件处理器可以是基于半导体的(例如,基于硅的)设备。在该示例中,处理器实现图2的示例存储器接口200、示例数据切片器202、示例数据处理器204、示例压缩器206、示例报头生成器208、示例填充器210和/或示例压缩数据汇编器212。
所示示例的处理器712包括本地存储器713(例如,高速缓存)。在一些示例中,本地存储器713实现示例结果存储装置218。所示示例的处理器712经由总线718与包括易失性存储器714和非易失性存储器716的主存储器通信。易失性存储器714可以通过同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器716可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器714、716的访问由存储器控制器控制。
在所示的示例中,一个或多个输入设备722连接到接口电路720。输入设备722允许用户向处理器712中输入数据和/或命令。可以通过例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现输入设备。
一个或多个输出设备724也连接到所示示例的接口电路720。输出设备724可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、就地开关(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所示示例的接口电路720通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
所示示例的接口电路720也包括通信设备,例如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口,以方便经由网络726与外部机器进行数据交换(例如,任何类型的计算设备)。通信可以经由,例如,以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传(line-of-site)无线系统、蜂窝电话系统等来进行。
所示示例的处理器平台700还包括一个或多个用于存储软件和/或数据的大容量存储设备728。这种大容量存储设备728的示例包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统和数字多功能盘(DVD)驱动器。
图3-4的机器可执行指令732可以存储在大容量存储设备728中,在易失性存储器714中,在非易失性存储器716中,和/或在可移动的非暂时性计算机可读存储介质(例如,CD或DVD)上。
图8是被构造为执行图5的指令以实现图2的示例数据压缩器106的示例处理器平台800的框图。处理器平台800可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,手机、智能电话、平板电脑,例如iPadTM)或任何其他类型的计算设备。
所示示例的处理器平台800包括处理器812。所示示例的处理器812是硬件。例如,处理器812可以由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实现。硬件处理器可以是基于半导体的(例如,基于硅的)设备。在该示例中,处理器实现图2的示例片外接口218、示例报头处理器220、示例数据分离器221、示例解压缩器222、示例解压缩数据汇编器224和/或示例硬件加速器/神经网络接口226。
所示示例的处理器812包括本地存储器813(例如,高速缓存)。在一些示例中,本地存储器813实现示例结果存储装置218。所示示例的处理器812经由总线818与包括易失性存储器814和非易失性存储器816的主存储器进行通信。易失性存储器814可以通过同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器816可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器814、816的访问由存储器控制器控制。
所示示例的处理器平台800还包括接口电路820。接口电路820可以通过任何类型的接口标准来实现,例如以太网接口、通用串行总线(USB)、蓝牙接口、近场通信(NFC)接口和/或PCI Express接口。
在所示的示例中,一个或多个输入设备822连接到接口电路820。输入设备822允许用户将数据和/或命令输入到处理器812中。输入设备可以由例如音频传感器、麦克风、照相机(静态或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现。
一个或多个输出设备824也连接到所示示例的接口电路820。输出设备824可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、就地开关(IPS)显示器,触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所示示例的接口电路820通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
所示示例的接口电路820还包括通信设备,例如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络826与外部机器(例如,任何种类的计算设备)进行数据交换。通信可以经由例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传(line-of-site)无线系统、蜂窝电话系统等来进行。
所示示例的处理器平台800还包括一个或多个用于存储软件和/或数据的大容量存储设备828。这种大容量存储设备828的示例包括软盘驱动器、硬驱动器盘、光盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统和数字通用盘(DVD)驱动器。
图5的机器可执行指令832可以存储在大容量存储设备828中,在易失性存储器814中,在非易失性存储器816中,和/或在可移动的非暂时性计算机可读存储介质(例如CD或DVD)上。
本文公开了压缩数据的示例方法、装置、系统和制品。其他示例及其组合包括以下内容:
示例1包括一种装置,包括:片外存储器,用于存储数据,数据切片器,用于将数据集划分为多个数据块,数据处理器,用于:基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术,以及基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术,第一压缩器,其使用所述第一压缩技术来压缩所述第一块,以生成第一压缩数据块,第二压缩器,其使用所述第二压缩技术来压缩所述第二块,以生成第二压缩数据块,报头生成器,其用于生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头,以及接口,其用于发送要被存储在所述片外存储器中的具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块。
示例2包括示例1的装置,其中,所述数据处理器用于当所述块的数据对应于相同值时,选择所述第一压缩技术,而当所述块的数据包括至少一个不同值时,选择所述第二压缩技术。
示例3包括示例1的装置,其中,所述第一压缩技术是霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
示例4包括示例3的装置,其中,数据处理器用于当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
示例5包括示例1的装置,其中,所述压缩器用于将所述第一压缩数据块划分为第一压缩数据的子块。
示例6包括示例5的装置,其中,第一压缩数据的所述子块在大小上是不均匀的。
示例7包括示例5的装置,还包括一个或多个填充器,其用于通过将图案添加到所述子块来用所述图案填充所述子块。
示例8包括示例1的装置,其中,所述数据块在大小上是均匀的。
示例9包括示例1的装置,其中,所述第一压缩器和所述第二压缩器用于在各自的块上并行地执行所述第一压缩技术和所述第二压缩技术。
示例10包括示例1的装置,其中,所述压缩器用于当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并保留未压缩的数据块。
示例11包括示例10的装置,其中,第一报头标识所述无压缩技术。
示例12包括非暂时性计算机可读存储介质,其包括指令,所述指令在被执行时使机器至少执行以下操作:将数据集划分为多个数据块,基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术,以及基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术,使用所述第一压缩技术压缩所述第一块以生成第一压缩数据块,使用所述第二压缩技术压缩所述第二块以生成第二压缩数据块,生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头,以及将具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块存储在芯片存储器中。
示例13包括示例12的计算机可读存储介质,其中,所述指令使所述机器用于当所述块的数据对应于相同值时,选择所述第一压缩技术,并且当所述块的数据包括至少一个不同值时,选择所述第二压缩技术。
示例14包括示例12的计算机可读存储介质,其中,所述第一压缩技术是霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
示例15包括示例14的计算机可读存储介质,其中,所述指令使所述机器用于当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
示例16包括示例12的计算机可读存储介质,其中,所述指令使所述机器用于将所述第一压缩数据块划分为第一压缩数据的子块。
示例17包括示例16的计算机可读存储介质,其中,第一压缩数据的所述子块在大小上是不均匀的。
示例18包括示例16的计算机可读存储介质,其中,所述指令使所述机器用于通过将图案添加到所述子块来用所述图案填充所述子块。
示例19包括示例12的计算机可读存储介质,其中,所述数据块在大小上是均匀的。
示例20包括示例12的计算机可读存储介质,其中,所述指令使所述机器用于并行地对各个块执行所述第一压缩技术和所述第二压缩技术。
示例21包括示例12的计算机可读存储介质,其中,所述指令使所述机器用于当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并且保留未压缩的数据块。
示例22包括示例20的计算机可读存储介质,其中,第一报头标识所述无压缩技术。
示例23包括一种方法,包括:将数据集划分为多个数据块,基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术,以及基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术,使用所述第一压缩技术压缩所述第一块以生成第一压缩数据块,使用所述第二压缩技术压缩所述第二块以生成第二压缩数据块,生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头,以及将具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块存储在片外存储器中。
示例24包括示例23的方法,其中,当所述块的数据对应于相同值时选择所述第一压缩技术,并且当所述块的数据包括至少一个不同值时选择所述第二压缩技术。
示例25包括示例23的装置,其中,所述第一压缩技术为霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
示例26包括示例25的装置,其中,当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
示例27包括示例23的装置,还包括:将所述第一压缩数据块划分为第一压缩数据的子块。
示例28包括示例27的装置,其中,第一压缩数据的所述子块在大小上是不均匀的。
示例29包括示例27的装置,还包括通过将图案添加到所述子块而用所述图案填充所述子块。
示例30包括示例23的装置,其中,所述数据块在大小上是均匀的。
示例31包括示例23的装置,其中,并行地对所述相应块执行所述第一压缩技术和所述第二压缩技术。
示例32包括示例23的装置,还包括,当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并且保留未压缩的数据块。
示例33包括示例32的装置,其中,第一报头标识所述无压缩技术。
示例34是示例计算机可读介质,其包括第一指令,所述第一指令在被执行时使机器进行分发,配置,汇编,安装,实例化,检索,解压缩和解密用于执行的第二指令中的至少一个,第二指令在执行时使机器至少将数据集划分为多个数据块,基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术,以及基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术,使用所述第一压缩技术压缩所述第一块以生成第一压缩数据块,使用所述第二压缩技术压缩所述第二块以生成第二压缩数据块,生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头,以及将具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块存储在芯片存储器中。
示例35包括示例34的计算机可读存储介质,其中,所述指令使得所述机器用于当所述块的数据对应于相同值时选择所述第一压缩技术,并且当所述块的数据包括至少一个不同值时选择所述第二压缩技术。
示例36包括示例34的计算机可读存储介质,其中,所述第一压缩技术为霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
示例37包括示例36所述的计算机可读存储介质,其中,所述指令使得所述机器用于当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
示例38包括示例34的计算机可读存储介质,其中,所述指令使得所述机器用于将所述第一压缩数据块划分为第一压缩数据的子块。
示例39包括示例38的计算机可读存储介质,其中,第一压缩数据的所述子块在大小上是不均匀的。
示例40包括示例38所述的计算机可读存储介质,其中,所述指令使得所述机器用于通过将图案添加到所述子块而用所述图案填充所述子块。
示例41包括示例34的计算机可读存储介质,其中,所述数据块在大小上是均匀的。
示例42包括示例34的计算机可读存储介质,其中,所述指令使得所述机器用于并行地对所述相应块执行所述第一压缩技术和所述第二压缩技术。
示例43包括示例34的计算机可读存储介质,其中,所述指令使得所述机器用于当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并且保留未压缩的数据块。
示例44包括示例42的计算机可读存储介质,其中,第一报头标识所述无压缩技术。
根据前述内容,将理解的是,已经公开了示例方法、装置和制造品,该示例方法、装置和制造品在存储在片外存储器中的数据被发送到片上神经网络和/或硬件加速器之前,压缩存储在片外存储器中的数据。所公开的方法、装置和制品通过利用片上神经网络和/或硬件加速器来促进利用片外存储器来增加存储器容量,从而提高了计算设备的效率。使用本文公开的示例,用户可以将压缩方案定制为特定的应用数据简档以实现更高的压缩率。通过在将数据从片外组件传输到片上组件之前压缩数据,本文公开的示例防止或以其他方式减少了在不压缩的情况下传输数据的瓶颈效应。另外,通过将数据分成数据的块和/或子块,本文公开的示例促进了使用片上组件对数据的并行解码,从而增加了片上组件的处理带宽。使用本文公开的部分霍夫曼编码方案的示例降低了霍夫曼编码查找表的要求,以与硬件存储器限制和速度要求兼容。因此,所公开的方法、装置和制品相应地针对计算机功能上的一个或多个改进。
尽管本文已经公开了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,该专利涵盖了完全落入该专利的权利要求范围内的所有方法、装置和制品。
Claims (33)
1.一种装置,包括:
片外存储器,用于存储数据;
数据切片器,用于将数据集划分为多个数据块;
数据处理器,用于:
基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术;以及
基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术;
第一压缩器,其使用所述第一压缩技术来压缩所述第一块,以生成第一压缩数据块;
第二压缩器,其使用所述第二压缩技术来压缩所述第二块,以生成第二压缩数据块;
报头生成器,其用于生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头;以及
接口,其用于发送要被存储在所述片外存储器中的具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块。
2.根据权利要求1所述的装置,其中,所述数据处理器用于当所述块的数据对应于相同值时,选择所述第一压缩技术,而当所述块的数据包括至少一个不同值时,选择所述第二压缩技术。
3.根据权利要求1所述的装置,其中,所述第一压缩技术是霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
4.根据权利要求3所述的装置,其中,数据处理器用于当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
5.根据权利要求1所述的装置,其中,所述压缩器用于将所述第一压缩数据块划分为第一压缩数据的子块。
6.根据权利要求5所述的装置,其中,第一压缩数据的所述子块在大小上是不均匀的。
7.根据权利要求5所述的装置,还包括一个或多个填充器,其用于通过将图案添加到所述子块来用所述图案填充所述子块。
8.根据权利要求1所述的装置,其中,所述数据块在大小上是均匀的。
9.根据权利要求1所述的装置,其中,所述第一压缩器和所述第二压缩器用于在各自的块上并行地执行所述第一压缩技术和所述第二压缩技术。
10.根据权利要求1所述的装置,其中,所述压缩器用于当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并且保留未压缩的数据块。
11.根据权利要求10所述的装置,其中,第一报头标识所述无压缩技术。
12.一种非暂时性计算机可读存储介质,其包括指令,所述指令在被执行时使机器至少执行以下操作:
将数据集划分为多个数据块;
基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术;以及
基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术;
使用所述第一压缩技术压缩所述第一块以生成第一压缩数据块;
使用所述第二压缩技术压缩所述第二块以生成第二压缩数据块;
生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头;以及
将具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块存储在芯片存储器中。
13.根据权利要求12所述的计算机可读存储介质,其中,所述指令使所述机器用于当所述块的数据对应于相同值时,选择所述第一压缩技术,并且当所述块的数据包括至少一个不同值时,选择所述第二压缩技术。
14.根据权利要求12所述的计算机可读存储介质,其中,所述第一压缩技术是霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
15.根据权利要求14所述的计算机可读存储介质,其中,所述指令使所述机器用于当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
16.根据权利要求12所述的计算机可读存储介质,其中,所述指令使所述机器用于将所述第一压缩数据块划分为第一压缩数据的子块。
17.根据权利要求16所述的计算机可读存储介质,其中,第一压缩数据的所述子块在大小上是不均匀的。
18.根据权利要求16所述的计算机可读存储介质,其中,所述指令使所述机器用于通过将图案添加到所述子块来用所述图案填充所述子块。
19.根据权利要求12所述的计算机可读存储介质,其中,所述数据块在大小上是均匀的。
20.根据权利要求12所述的计算机可读存储介质,其中,所述指令使所述机器用于并行地对各个块执行所述第一压缩技术和所述第二压缩技术。
21.根据权利要求12所述的计算机可读存储介质,其中,所述指令使所述机器用于当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并且保留未压缩的数据块。
22.根据权利要求20所述的计算机可读存储介质,其中,第一报头标识所述无压缩技术。
23.一种方法,包括:
将数据集划分为多个数据块;
基于所述多个数据块中的第一块的第一特性,选择针对所述第一块的第一压缩技术;以及
基于所述多个数据块中的第二块的第二特性,选择针对所述第二块的第二压缩技术;
使用所述第一压缩技术压缩所述第一块以生成第一压缩数据块;
使用所述第二压缩技术压缩所述第二块以生成第二压缩数据块;
生成标识所述第一压缩技术的第一报头和标识所述第二压缩技术的第二报头;以及
将具有所述第一报头的所述第一压缩数据块和具有所述第二报头的所述第二压缩数据块存储在片外存储器中。
24.根据权利要求23所述的方法,其中,当所述块的数据对应于相同值时选择所述第一压缩技术,并且当所述块的数据包括至少一个不同值时选择所述第二压缩技术。
25.根据权利要求23所述的装置,其中,所述第一压缩技术为霍夫曼压缩技术、RLE压缩技术或无压缩技术中的至少一种。
26.根据权利要求25所述的装置,其中,当霍夫曼压缩技术比所述无压缩技术产生更多的数据时,将所述第一压缩技术选择为所述无压缩技术。
27.根据权利要求23所述的装置,还包括:将所述第一压缩数据块划分为第一压缩数据的子块。
28.根据权利要求27所述的装置,其中,第一压缩数据的所述子块在大小上是不均匀的。
29.根据权利要求27所述的装置,还包括通过将图案添加到所述子块而用所述图案填充所述子块。
30.根据权利要求23所述的装置,其中,所述数据块在大小上是均匀的。
31.根据权利要求23所述的装置,其中,并行地对所述相应块执行所述第一压缩技术和所述第二压缩技术。
32.根据权利要求23所述的装置,还包括,当第一选择的压缩技术比无压缩技术产生更多的数据时,丢弃所述第一压缩数据块并且保留未压缩的数据块。
33.根据权利要求32所述的装置,其中,第一报头标识所述无压缩技术。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/288,026 US11075647B2 (en) | 2019-02-27 | 2019-02-27 | Methods and apparatus to compress data |
| US16/288,026 | 2019-02-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111626411A true CN111626411A (zh) | 2020-09-04 |
Family
ID=72139129
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010120623.8A Pending CN111626411A (zh) | 2019-02-27 | 2020-02-26 | 压缩数据的方法和装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US11075647B2 (zh) |
| JP (1) | JP7548706B2 (zh) |
| KR (1) | KR20200105432A (zh) |
| CN (1) | CN111626411A (zh) |
| DE (1) | DE102020201153A1 (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112200301A (zh) * | 2020-09-18 | 2021-01-08 | 厦门星宸科技有限公司 | 卷积计算装置及方法 |
| CN117579079A (zh) * | 2024-01-15 | 2024-02-20 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
| WO2024197659A1 (zh) * | 2023-03-29 | 2024-10-03 | 华为技术有限公司 | 数据传输方法、通信装置及通信系统 |
| CN121000872A (zh) * | 2025-10-15 | 2025-11-21 | 摩尔线程智能科技(北京)股份有限公司 | 视频切片编码控制方法及熵编码器、设备、可读存储介质 |
| CN121000872B (zh) * | 2025-10-15 | 2026-02-06 | 摩尔线程智能科技(北京)股份有限公司 | 视频切片编码控制方法及熵编码器、设备、可读存储介质 |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3633857B1 (en) * | 2018-10-03 | 2022-01-26 | BlackBerry Limited | Methods and devices for on-the-fly coder mapping updates in point cloud coding |
| US11075647B2 (en) | 2019-02-27 | 2021-07-27 | Movidius Limited | Methods and apparatus to compress data |
| EP3817236B1 (en) * | 2019-11-04 | 2024-10-16 | Samsung Electronics Co., Ltd. | Neural network data processing method and apparatus |
| US11405622B2 (en) * | 2020-04-22 | 2022-08-02 | Apple Inc. | Lossless compression techniques |
| US11664816B2 (en) | 2020-04-22 | 2023-05-30 | Apple Inc. | Lossy compression techniques |
| US11360920B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Mapping high-speed, point-to-point interface channels to packet virtual channels |
| US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
| US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
| US11418455B2 (en) * | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
| US11539623B2 (en) | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
| US11791838B2 (en) | 2021-01-15 | 2023-10-17 | Samsung Electronics Co., Ltd. | Near-storage acceleration of dictionary decoding |
| JP7801853B2 (ja) * | 2021-06-08 | 2026-01-19 | 株式会社日立製作所 | データ圧縮伸長システム、データ圧縮伸長方法、及びデータ圧縮伸長プログラム |
| CN113485950A (zh) * | 2021-06-22 | 2021-10-08 | 上海天数智芯半导体有限公司 | 一种合并发送PCIe存储器写请求的系统及方法 |
| CN113381768B (zh) * | 2021-08-11 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种哈夫曼校正编码方法、系统及相关组件 |
| KR102703790B1 (ko) * | 2021-10-22 | 2024-09-06 | 에이치씨에스테크놀로지 주식회사 | 정밀 패터닝을 위한 레이저 롤 패터닝 장치 |
| US12535950B2 (en) * | 2023-03-24 | 2026-01-27 | Samsung Electronics Co., Ltd. | Memory device compressing soft decision data and operating method thereof |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020097172A1 (en) * | 1998-12-11 | 2002-07-25 | Fallon James J. | Content independent data compression method and system |
| CN101241508A (zh) * | 2007-08-01 | 2008-08-13 | 金立 | 结构化数据序列的压缩方法 |
| US8194736B2 (en) * | 2008-04-15 | 2012-06-05 | Sony Corporation | Video data compression with integrated lossy and lossless compression |
| CN103210590A (zh) * | 2012-08-21 | 2013-07-17 | 华为技术有限公司 | 压缩方法及设备 |
| US8631055B2 (en) * | 2009-09-30 | 2014-01-14 | Samplify Systems, Inc. | Enhanced multi-processor waveform data exchange using compression and decompression |
| CN103997648A (zh) * | 2014-06-11 | 2014-08-20 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法 |
| CN107565970A (zh) * | 2017-08-17 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
| US10164654B2 (en) * | 2016-10-07 | 2018-12-25 | Kabushiki Kaisha Toshiba | Data compressing device, data decompressing device, and data compressing/decompressing apparatus |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5225832A (en) * | 1992-02-13 | 1993-07-06 | Industrial Technology Research Institute | High speed variable length decoder |
| JPH05344162A (ja) * | 1992-06-09 | 1993-12-24 | Canon Inc | データ伝送装置 |
| JP3225754B2 (ja) * | 1994-10-07 | 2001-11-05 | 松下電器産業株式会社 | データ記憶装置ならびにデータ読出装置 |
| JPH10232838A (ja) * | 1996-11-05 | 1998-09-02 | Hitachi Ltd | ディスク記憶システム |
| JPH11284518A (ja) * | 1998-03-30 | 1999-10-15 | Hitachi Ltd | 前処理付きデータ圧縮方法および圧縮データの伸長方法 |
| JP2001045479A (ja) * | 1999-07-29 | 2001-02-16 | Sanyo Electric Co Ltd | 可変長符号化データの誤り保護方法、及び装置 |
| JP2004200893A (ja) * | 2002-12-17 | 2004-07-15 | Fuji Xerox Co Ltd | 符号化装置、符号化方法および符号化プログラム |
| US9158686B2 (en) * | 2012-03-30 | 2015-10-13 | Altera Corporation | Processing system and method including data compression API |
| US10691361B2 (en) * | 2017-02-24 | 2020-06-23 | Microsoft Technology Licensing, Llc | Multi-format pipelined hardware decompressor |
| US11075647B2 (en) | 2019-02-27 | 2021-07-27 | Movidius Limited | Methods and apparatus to compress data |
-
2019
- 2019-02-27 US US16/288,026 patent/US11075647B2/en active Active
-
2020
- 2020-01-30 DE DE102020201153.2A patent/DE102020201153A1/de active Pending
- 2020-02-26 JP JP2020030252A patent/JP7548706B2/ja active Active
- 2020-02-26 CN CN202010120623.8A patent/CN111626411A/zh active Pending
- 2020-02-27 KR KR1020200024420A patent/KR20200105432A/ko active Pending
-
2021
- 2021-07-23 US US17/384,439 patent/US11817887B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020097172A1 (en) * | 1998-12-11 | 2002-07-25 | Fallon James J. | Content independent data compression method and system |
| CN101241508A (zh) * | 2007-08-01 | 2008-08-13 | 金立 | 结构化数据序列的压缩方法 |
| US8194736B2 (en) * | 2008-04-15 | 2012-06-05 | Sony Corporation | Video data compression with integrated lossy and lossless compression |
| US8631055B2 (en) * | 2009-09-30 | 2014-01-14 | Samplify Systems, Inc. | Enhanced multi-processor waveform data exchange using compression and decompression |
| CN103210590A (zh) * | 2012-08-21 | 2013-07-17 | 华为技术有限公司 | 压缩方法及设备 |
| CN103997648A (zh) * | 2014-06-11 | 2014-08-20 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法 |
| US10164654B2 (en) * | 2016-10-07 | 2018-12-25 | Kabushiki Kaisha Toshiba | Data compressing device, data decompressing device, and data compressing/decompressing apparatus |
| CN107565970A (zh) * | 2017-08-17 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112200301A (zh) * | 2020-09-18 | 2021-01-08 | 厦门星宸科技有限公司 | 卷积计算装置及方法 |
| CN112200301B (zh) * | 2020-09-18 | 2024-04-09 | 星宸科技股份有限公司 | 卷积计算装置及方法 |
| WO2024197659A1 (zh) * | 2023-03-29 | 2024-10-03 | 华为技术有限公司 | 数据传输方法、通信装置及通信系统 |
| CN117579079A (zh) * | 2024-01-15 | 2024-02-20 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
| CN117579079B (zh) * | 2024-01-15 | 2024-03-29 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
| CN121000872A (zh) * | 2025-10-15 | 2025-11-21 | 摩尔线程智能科技(北京)股份有限公司 | 视频切片编码控制方法及熵编码器、设备、可读存储介质 |
| CN121000872B (zh) * | 2025-10-15 | 2026-02-06 | 摩尔线程智能科技(北京)股份有限公司 | 视频切片编码控制方法及熵编码器、设备、可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102020201153A1 (de) | 2020-08-27 |
| KR20200105432A (ko) | 2020-09-07 |
| US20220158654A1 (en) | 2022-05-19 |
| US11817887B2 (en) | 2023-11-14 |
| US20200274552A1 (en) | 2020-08-27 |
| JP7548706B2 (ja) | 2024-09-10 |
| JP2020141402A (ja) | 2020-09-03 |
| US11075647B2 (en) | 2021-07-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111626411A (zh) | 压缩数据的方法和装置 | |
| US11044495B1 (en) | Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation | |
| US11575922B2 (en) | Methods and apparatuses for hierarchically encoding and decoding a bytestream | |
| JP7261300B2 (ja) | 適応ポイントクラウド属性コーディングのための方法、装置、及びコンピュータプログラム | |
| US8933825B2 (en) | Data compression systems and methods | |
| CN114116635B (zh) | 压缩数据流的并行解压缩 | |
| CN107836083B (zh) | 用于语义值数据压缩和解压缩的方法、设备和系统 | |
| JP2009542093A (ja) | データ圧縮 | |
| JP2014525183A (ja) | 2dマトリクスにエンコーディングパラメータを保存する画像圧縮のための方法および装置 | |
| KR102395669B1 (ko) | 오류 벡터 크기 계산을 기반으로 한 데이터 압축 및 복원 장치와 그 방법 | |
| US9661321B2 (en) | Remote viewing of large image files | |
| WO2014131517A1 (en) | Encoder, decoder and method | |
| JP2019529979A (ja) | インデックスコーディング及びビットスケジューリングを備えた量子化器 | |
| CN103051341B (zh) | 数据编码装置及方法、数据解码装置及方法 | |
| CN104125475A (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
| CN107431491A (zh) | 改进的文件压缩和加密 | |
| CN103746701B (zh) | 一种用于Rice无损数据压缩的快速编码选项选择方法 | |
| KR20180067956A (ko) | 데이터 압축 장치 및 방법 | |
| CN111832257B (zh) | 编码数据的条件转码 | |
| JP6005273B2 (ja) | データストリームの符号化方法、送信方法、伝送方法、データストリームを符号化するための符号化装置、送信装置、および、伝送装置 | |
| KR100636370B1 (ko) | 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법 | |
| US10491241B1 (en) | Data compression scheme utilizing a repetitive value within the data stream | |
| CN102572425A (zh) | 霍夫曼解码的方法 | |
| KR101632116B1 (ko) | 이진 데이터의 압축 및 복원 방법과 장치 | |
| US12495147B2 (en) | Image processing method and system, encoder, and computer readable storage medium |
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 |