数字值的火车链无损压缩器制造技术

技术编号:39836667 阅读:7 留言:0更新日期:2023-12-29 16:20
火车链无损数据压缩器检查数据块,当输入块中的所有数据值都相同时,使用相同编码器生成相同码

【技术实现步骤摘要】
【国外来华专利技术】数字值的火车链无损压缩器


[0001]本专利技术涉及数据压缩系统,特别涉及通过将数据块像火车链
(train

linking)
在一起而使用多种压缩方法的数据压缩器


技术介绍

[0002]数据可以用有损或无损的方法进行压缩

视频等图像数据通常使用有损压缩,因为视觉数据的损失可能不会被特别察觉到

其他数据则不能容忍损失,所以使用无损数据压缩

[0003]神经网络对网络中的节点使用权重

网络的拓扑结构和连接性可以由特征图来定义

对于深度神经网络和卷积神经网络,这些权重和特征图可能相当大

神经网络权重和特征图可以在存储或传输之前进行压缩

由于计算结果可能会因数据压缩损失而有所改变,因此神经网络需要无损数据压缩

[0004]图1显示了一个神经网络,其权重和特征图在存储或传输之前进行了压缩

神经网络
104
可以是图形处理单元
(GPU)
或专用神经网络处理器

神经网络
104
可能已经被训练过,其权重和特征图被调整为针对特定问题或数据集进行了优化

这些权重和特征图可以备份或存储在存储器
102


[0005]然而,存储器
102
可以远离神经网络
>104
,例如当神经网络
104
在便携式设备上而存储器
102
是云存储时

神经网络
104
和存储器
102
之间的连接在带宽上可能是有限的

压缩器
100
可以使用无损压缩对来自神经网络
104
的权重和特征图进行压缩,并且将压缩后的数据发送到存储器
102。
可以减少存储器
102
中存储所需的内存量,也可以减少传输所消耗的带宽

[0006]存储在存储器
102
中的压缩权重和特征图可以通过网络链接传输到包括压缩器
100
的本地设备,压缩器
100
对权重和特征图进行解压,并将它们加载到神经网络
104
中,以配置神经网络
104
用于特定处理任务

[0007]有些数据块可能是非常随机或无序的,以至于其压缩效果不佳

最好不要尝试压缩此类数据,因为压缩后的数据可能比原始数据还大

其他数据块可能很容易被压缩,比如包含全零的数据块

[0008]经典的无损压缩算法包括
winzip、winrar

7z。
这些压缩器通常同时具有游程编码
(run

length coding)
和熵编码
(entropy coding)。
游程编码的缺点是搜索窗口大,会产生很大的瓶颈

熵编码,如霍夫曼编码
(Huffman coding)、
算术编码
(arithmetic coding)
和有限状态熵
(Finite State Entropy,FSE)
编码,可能需要符号频率表

该符号频率表可以在压缩期间创建或填充,并与压缩数据一起传输

这种过载的符号频率表是消耗带宽的开销,在某些情况下会降低压缩效率

[0009]对于这种使用游程编码和熵编码的经典两阶段编码系统,并行实现可能很困难

延迟可能会很长

[0010]希望有一种不使用符号频率表的无损压缩系统

希望有一种没有过载符号频率表
的压缩数据流

希望有一种低延迟的无损数据压缩器,并且允许并行实施

还希望能有一种部分考虑数据结构的无损数据压缩,以便对全零块和数据变化小的块非常有效

希望有一种参考前一个块以将当前块链接到前一个块的无损数据压缩

【附图说明】
[0011]图1显示一个在存储或传输之前对其权重和特征图进行压缩的神经网络

[0012]图2是高斯分布和拉普拉斯分布图

[0013]图3显示一个具有多种数据分布的数据块

[0014]图4是一个火车链数据压缩器的框图

[0015]图5是火车链无损数据压缩的流程图

[0016]图6显示高斯和拉普拉斯编码的编码压缩数据

[0017]图7是用于编码的标签表

[0018]图8是高斯编码的表格

[0019]图9是拉普拉斯编码的表格

[0020]图
10
是高斯编码比特流的示意图

【具体实施方式】
[0021]本专利技术涉及对数据压缩的改进

下面的描述是为了使本领域普通技术人员能够在特定应用及其要求的背景下制造和使用本专利技术

对优选实施例的各种修改对于本领域的技术人员来说将是显而易见的,并且本文所定义的一般原则可应用于其它实施例

因此,本专利技术并不打算局限于所示和所述的特定实施例,而是要给予符合本文所公开的原则和新颖特征的最广泛的范围

[0022]图2是高斯分布和拉普拉斯分布图

高斯分布
112
是待压缩数据块中数据值或符号的分布的一个常用模型

许多数据块使用高斯压缩技术可以得到很好的压缩

[0023]其他数据块中可能有几个大值和许多较小的值

当使用拉普拉斯编码方法时,这些块会压缩得更好

拉普拉斯分布
110
通常可以能比高斯分布
112
更好地模拟这些具有大数据峰值的数据块

[0024]专利技术人已经意识到,高斯和拉普拉斯方法可以相互补充

一个可以选择高斯或拉普拉斯码的数据压缩器可以更好地压缩更广泛的数据集

[0025]图3显示了一个具有多种数据分布的数据块

输入数据块有
64
个字节的数据,被排列成8个块,每块8个字节

专利技术人意识到,在不同的数据块中可以出现多种数据分布

专利技术人对不同类型的数据分布使用不同的编码方法

每个数据块可以使用增量编码
(delt本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.
一种火车链数据压缩器,包括:输入端,其接收输入数据块,所述输入数据块具有多个数据值;同值检查器,其对所述多个数据值进行检查,当所述多个数据值都具有相同的数据值时,输出同值码;多个编码器,所述多个编码器中的每个编码器接收所述输入数据块,每个编码器为所述输入数据块生成压缩码,所述压缩码具有码长;最佳码选择器,其检查来自所述多个编码器中的每个编码器的码长,并将所述多个编码器中产生最小码长的编码器的压缩码作为选定的压缩码输出;长度比较器,其在所述选定的压缩码的码长大于阈值时,发出不可压缩块信号;所述阈值长度是所述输入数据块的长度加上标签长度;复制编码器,其在所述长度比较器发出不可压缩块信号时,通过生成一个标签,所述标签后面紧随所述输入数据块,来生成复制码;压缩码输出端,其在未输出所述同值码时,在未发出不可压缩块信号时,输出来自所述最佳码选择器的所述选定的压缩码,并在发出不可压缩块信号时,输出所述复制码;从而为所述输入数据块输出最佳压缩码
。2.
根据权利要求1所述的火车链数据压缩器,其中,所述多个编码器还包括:高斯编码器,用于对具有高斯分布的所述多个数据值的输入数据块进行编码;拉普拉斯编码器,用于对具有拉普拉斯分布的所述多个数据值的输入数据块进行编码
。3.
根据权利要求2所述的火车链数据压缩器,其中,所述多个编码器还包括:增量编码器,其具有增量生成器,其产生所述多个数据值与平均值的多个差值,所述增量编码器从所述多个差值生成所述压缩码
。4.
根据权利要求3所述的火车链数据压缩器,其中,所述平均值是先前输入数据块的多个数据值的平均值
。5.
根据权利要求2所述的火车链数据压缩器,其中,所述压缩码包括一个标签和多个压缩数据码,其中,用于中间数据值的压缩数据码包括码头和码值,其中所述码头指示所述码值中的比特数;其中,用于零值的压缩数据码包括码头而没有码值
。6.
根据权利要求5所述的火车链数据压缩器,其中,由所述拉普拉斯编码器生成的最大值的压缩数据码包括码头而没有码值
。7.
根据权利要求6所述的火车链数据压缩器,其中,由所述高斯编码器生成的码头具有固定的比特数,而由所述拉普拉斯编码器生成的码头具有可变的比特数
。8.
根据权利要求7所述的火车链数据压缩器,其中,由所述拉普拉斯编码器生成的码头具有可变的比特数,对于所述输入数据块中较大的数据值,所述码头的比特数会增加
。9.
根据权利要求8所述的火车链数据压缩器,其中,所述标签标识所述压缩码是由所述高斯编码器生成,还是由所述拉普拉斯编码器生成
。10.
根据权利要求9所述的火车链数据压缩器,其中,所述同值码是一个标签加上其后紧随所述同值检查器检测到的相同数据值

11.
根据权利要求
10
所述的火车链数据压缩器,其中所述输入数据块是具有所述多个数据值的固定长度块,其中所述多个数据值包括
N
个数据值,其中
N
是至少为8的整数
。12.
一种用于压缩数据的计算机实施方法,包括:检查具有多个输入数据值的输入数据块,以确定所述多个输入数据值是否都等于一个相同数据值;当所述多个输入数据值都等于所述相同数据值时,通过生成一个标签表示相同数据编码类型,并将所述相同数据值附在所述标签后,而生成一个压缩数据码;当所述多个输入数据值不都等于所述相同数据值时:从所述输入块的所述多个输入数据值生成一个高斯码,所述高斯码具有高斯码长;从所述输入块的所述多个输入数据值生成一个拉普拉斯码,所述拉普拉斯码具有拉普拉斯码长;从所述输入块的所述多个输入数据值生成一个增量码,所述增量码具有增量码长;比较所述高斯码

所述拉普拉斯码和所述增量码的码长;当所述拉普拉斯码和所述增量码的码长大于所述高斯码的码长时,选择...

【专利技术属性】
技术研发人员:李海良火熖李涛
申请(专利权)人:香港应用科技研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1