CN113810058A - 数据压缩方法、数据解压缩方法、装置及电子设备 - Google Patents

数据压缩方法、数据解压缩方法、装置及电子设备 Download PDF

Info

Publication number
CN113810058A
CN113810058A CN202111094531.8A CN202111094531A CN113810058A CN 113810058 A CN113810058 A CN 113810058A CN 202111094531 A CN202111094531 A CN 202111094531A CN 113810058 A CN113810058 A CN 113810058A
Authority
CN
China
Prior art keywords
data
probability distribution
code
compressed
compression
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
Application number
CN202111094531.8A
Other languages
English (en)
Inventor
郭烈强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zeku Technology Shanghai Corp Ltd
Original Assignee
Zeku Technology Shanghai Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zeku Technology Shanghai Corp Ltd filed Critical Zeku Technology Shanghai Corp Ltd
Priority to CN202111094531.8A priority Critical patent/CN113810058A/zh
Publication of CN113810058A publication Critical patent/CN113810058A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6035Handling of unkown probabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例公开了一种数据压缩方法、数据解压缩方法、装置及电子设备。所述方法包括:获取待压缩数据;通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数;基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,第二编码为待压缩数据的压缩结果。通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。

Description

数据压缩方法、数据解压缩方法、装置及电子设备
技术领域
本申请涉及数据压缩技术领域,更具体地,涉及一种数据压缩方法、数据解压缩方法、装置及电子设备。
背景技术
随着深度学习技术的进步,越来越多的深度学习算法开始部署在手机等电子设备上,为了能够在电子设备上运行神经网络算法,电子设备上会配置NPU(Neural ProcessingUnit,嵌入式神经网络处理器)。然而,神经网络的某些中间结果存储需求过大,使得无法完全暂存于NPU,需要先将该中间结果写入DDR(Double Data Rate,双倍速率同步动态随机存储器)中,当有需要时再将中间结果从DDR中读入NPU。但由于DDR的带宽有限,大数据量的读写会产生很大的延迟,极大地制约了对速度要求极高的神经网络算法在微型终端设备上的应用。在此背景下,对神经网络中间结果进行压缩成为研究热点。
但是,相关的压缩算法还存在压缩效率低下的问题。
发明内容
鉴于上述问题,本申请提出了一种数据压缩方法、数据解压缩方法、装置及电子设备,以实现改善上述问题。
第一方面,本申请提供了一种数据压缩方法,应用于电子设备,所述方法包括:获取待压缩数据;通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数;基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
第二方面,本申请提供了一种数据解压缩方法,应用于电子设备,所述方法包括:获取待解码信息,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据;将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码;将所述第一解码结果输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络;将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。
第三方面,本申请提供了一种数据压缩装置,运行于电子设备,所述装置包括:数据获取单元,用于获取待压缩数据;参数获取单元,用于通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数;数据压缩单元,用于基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
第四方面,本申请提供了一种数据解压缩装置,运行于电子设备,所述装置包括:数据获取单元,用于获取待解码信息,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据;数据解压缩单元,用于将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码;将所述第一解码结果输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络;将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。
第五方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第六方面,本申请提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现上述方法的步骤。
第七方面,本申请提供的一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
本申请提供的一种数据压缩方法、数据解压缩方法、装置及电子设备,在获取待压缩数据后,通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提出的一种数据压缩方法的流程图;
图2示出了本申请图1中S120的一种实施例方式的流程图;
图3示出了本申请提出的一种压缩网络模型的示意图;
图4示出了本申请提出的一种下采样模块的示意图;
图5示出了本申请提出的一种上采样模块的示意图;
图6示出了本申请提出的一种算数编码的示意图;
图7示出了本申请另一实施例提出的一种数据压缩方法的流程图;
图8示出了本申请再一实施例提出的一种数据压缩方法的流程图;
图9示出了本申请实施例提出的一种数据解压缩方法的流程图;
图10示出了本申请提出的一种算数解码的示意图;
图11示出了本申请提出的一种解压缩网络模型的示意图;
图12示出了本申请提出的一种数据压缩和解压缩方法的应用场景示意图;
图13示出了本申请实施例提出的一种数据压缩装置的结构框图;
图14示出了本申请实施例提出的一种数据解压缩装置的结构框图;
图15示出了本申请提出的一种电子设备的结构框图;
图16是本申请实施例的用于保存或者携带实现根据本申请实施例的参数获取方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着深度学习技术的进步,越来越多的深度学习算法开始部署在手机等电子设备上,为了能够在电子设备上运行神经网络算法,电子设备上会配置NPU(Neural ProcessingUnit,嵌入式神经网络处理器)。然而,神经网络的某些中间结果存储需求过大,使得无法完全暂存于NPU,需要先将该中间结果写入DDR(Double Data Rate,双倍速率同步动态随机存储器)中,当有需要时再从DDR中读入NPU。但由于DDR的带宽有限,大数据量的读写会产生很大的延迟,极大地制约了对速度要求极高的神经网络算法在微型终端设备上的应用。在此背景下,对神经网络中间结果进行压缩成为研究热点。
发明人在对相关压缩方法的研究中发现,目前常用的压缩算法主要是基于数据的重复出现次数对数据进行压缩的,可能会导致压缩效率低下的问题。
因此,发明人提出了本申请中的一种数据压缩方法、数据解压缩方法、装置及电子设备,在获取待压缩数据后,通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。
请参阅图1,本申请提供的一种数据压缩方法,应用于电子设备,所述方法包括:
S110:获取待压缩数据。
其中,待压缩数据为准备进行压缩的数据。并且,在将本申请实施例体提供的数据压缩方法应用在不同场景中时该待压缩数据可以对应不同。
可选的,该待压缩数据可以为神经网络的中间结果,示例性的,该中间结果可以为神经网络所提取的中间特征、神经网络隐藏层的超参数等。
可选的,该待压缩数据可以为图像、神经网络模型的权重等。
S120:通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数。
其中,第一概率分布参数可以用于反映所述中间压缩结果的概率分布状态,第二概率分布参数可以用于反映所述待压缩数据的概率分布状态。
可选的,所述待压缩数据和所述中间压缩结果的概率分布可以为高斯分布,所述第一概率分布参数为所述中间压缩结果高斯分布的均值和方差,所述第二概率分布参数为所述待压缩数据高斯分布的均值和方差。
其中,作为一种方式,所述压缩网络模型包括下采样网络和上采样网络。如图2所示,通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,包括:
S121:将所述待压缩数据输入所述下采样网络,得到所述下采样网络输出的所述中间压缩结果与所述第一概率分布参数。
S122:将所述中间压缩结果输入到所述上采样网络,得到所述上采样网络输出的所述第二概率分布参数。
如图3所示,示出了一种压缩网络模型的结构示意图,图3中所示的压缩网络模型包括下采样网络和上采样网络两部分。其中,该下采样网络可以有三个下采样模块(Downsampling),该上采样网络可以包括三个上采样模块(Upsampling)。
如图4所示,每个下采样模块可以有一个3*3大小的卷积、一个激活函数(Leaky_Relu)、一个2*2的平局池化。如图5所示,每个上采样模块可以有一个3*3大小的反卷积、一个激活函数(Leaky_Relu)。其中,卷积和反卷积的strides可以为2,padding可以为samepadding,这样可以使待压缩数据每进行一次padding,长和宽维度都正好变为该次padding前的1/2,在后续解码过程中会把待压缩数据padding的数据丢弃。
示例性的,如图3所示,所述待压缩数据为神经网络所提取的中间特征F,将该中间特征F输入该压缩网络模型,在经过下采样网络部分后,可以得到该中间特征F的中间压缩结果Z以及第一概率分布参数Z:Mu、Z:Sigma,然后Z再经过上采样网络部分可以得到第二概率分布参数F:Mu和F:Sigma。
其中,为了便于计算,Z可以是该下采样网络部分输出取整后得到的,可以表示经过压缩的与F分布相关的信息,Z的概率分布参数Z:Mu、Z:Sigma是可以通过压缩网络模型训练完成后得到的。可以理解的是,因为Z可以表示经过压缩的与F分布相关的信息,所以Z的分布情况是比F的分布情况更加简单的,因此,可以使用固定的概率分布参数来描述Z,也就是说,Z的概率分布参数Z:Mu、Z:Sigma为固定值,这个值在该压缩网络模型训练完成后就固定不变了。
通过将所述待压缩数据输入到压缩网络模型得到该待压缩数据的中间压缩结果,再由该中间压缩结果得到与该待压缩数据的概率分布对应的第二概率分布参数,可以使得该待压缩数据的概率分布对应的第二概率分布参数更为准确,并且待压缩数据的概率分布参数是通过压缩网络模型基于待压缩数据得到的,也就是说压缩网络模型可以自适应地得到与待压缩数据相对应的概率分布参数。
作为另一种方式,为了获得更为准确的压缩网络模型,可以对上述压缩网络模型进行改进。这种改进可以是;增大卷积核的大小,例如,将上述卷积与反卷积的大小(3×3)改为5×5,这样可以增加压缩网络模型的感受野,学习到更多的信息;增加压缩网络模型的复杂程度,例如,可以在每一个上、下采样模块中叠加更多的卷积层,再例如,增加上、下采样网络中上、下采样模块的个数等。
可以理解的是,在当压缩网络模型结构较为复杂时,会使得该压缩网络模型出现过参化(overparameterization)的情况,进一步地使该压缩网络模型计算效率下降,为了应对高实时计算场景,还可以对该压缩网络模型进行剪枝操作,示例性的,可以对对训练好的压缩网络模型进行通道剪枝(channel pruning),主要通过以下两步操作进行:(1)通道的选择:可以通过LASSO regression来完成,也就是在损失函数中添加L1范数对权重进行约束,以目标函数优化的角度考虑,L1范数可以使得权重中大部分值为0,使得通道内权重具有稀疏性,从而可以将稀疏的通道剪掉;(2)特征图重建(feature mapreconstruction),可以基于最小二乘(linear least squares)来实现,使得剪枝前后输出特征图的变化尽可能的小。
需要说明的是,所述压缩网络模型是可以通过多种改进方式的结合所得到的。例如,可以同时增大卷积核的大小和上、下采样网络中上、下采样模块的个数等。示例性的,可以将上、下采样网络中的上、下采样模块数增加到5个,每一个上、下采样模块中的卷积核大小都变为5×5。
S130:基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
示例性的,如图6所示,所述中间压缩结果为Z,所述第一概率分布参数为Z:Mu、Z:Sigma,将Z与Z:Mu、Z:Sigma输入算数编码器,可以得到第一编码,也就是Z的编码结果CZ,所述待压缩数据为F,所述第二概率分布参数为F:Mu、F:Sigma,将F与F:Mu、F:Sigma输入算数编码器,可以得到第二编码,也就是F的编码结果CF,其中,CF为F的压缩结果。
本实施例提供的一种数据压缩方法,在获取待压缩数据后,通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。
请参阅图7,本申请提供的一种数据压缩方法,所述方法包括:
S210:通过压缩损失函数对待训练的压缩网络模型进行训练,得到所述压缩网络模型。
其中,压缩损失函数用于使待压缩数据与中间压缩结果的多个子数据所需存储空间的均值之和最小。
作为一种方式,所述压缩损失函数包括第一损失函数和第二损失函数,所述第一损失函数用于使所述中间压缩结果的多个子数据所需存储空间的均值最小,所述第二损失函数用于使所述待压缩数据的多个子数据所需存储空间的均值最小。可选的,该压缩损失函数的计算公式可以为:
Loss=-(BPPF+BPPZ)
其中,该公式的BPPZ为第一损失函数,该公式中的BPPF为第二损失函数。
其中,第一损失函数的计算公式可以为:
Figure BDA0003268745300000081
该第一损失函数的计算公式中的Z表示将待压缩数据输入到压缩网络模型所产生的中间压缩结果,该中间压缩结果可以表示经过压缩的与该待压缩数据分布相关的信息。该中间压缩结果包含多个子数据,每个子数据表示为Zi,其中,每个子数据都有与该数据对应的概率分布参数Zi:Mui和Zi:Sigmai。由此可以看出,式中的
Figure BDA0003268745300000082
为Zi的概率值,对该概率值进行一个以2为底的对数操作是为了得出该子数据Zi需要多少比特数来表示,其中,比特数的大小对应于该子数据Zi所需的存储空间的大小,若该子数据Zi所需要的比特数越多,则表明该子数据Zi所需要的存储空间也越多;若该子数据Zi所需要的比特数越少,则表明该子数据Zi所需要的存储空间也越少。通过对该中间压缩结果Z中的每一个子数据所需的比特数进行求和再取平均的操作,可以用于表示该中间压缩结果Z的多个子数据所需存储空间的均值。
其中,第二损失函数的计算公式可以为:
Figure BDA0003268745300000091
该第二损失函数的计算公式中的F表示待压缩数据,该待压缩数据包含多个子数据,每个子数据表示为Fi,其中,每个子数据都有与该数据对应的概率分布参数Fi:Mui和Fi:Sigmai。由此可以看出,式中的
Figure BDA0003268745300000092
为Fi的概率值,对该概率值进行一个以2为底的对数操作是为了得出该子数据Fi需要多少比特数来表示,其中,比特数的大小对应于该子数据Fi所需的存储空间的大小,若该子数据Fi所需要的比特数越多,则表明该子数据Fi所需要的存储空间也越多;若该子数据Fi所需要的比特数越少,则表明该子数据Fi所需要的存储空间也越少。通过对该待压缩数据F中的每一个子数据所需的比特数进行求和再取平均的操作,可以用于表示该待压缩数据F的多个子数据所需存储空间的均值。
需要说明的是,因为子数据Zi、Fi的概率非常小,是无限趋近于0的,所以,在计算中间压缩结果的子数据Zi与待压缩数据的子数据Fi的概率时,可以选取子数据Zi、Fi附近的一个区间,将该区间的概率值作为子数据Zi、Fi的概率值。示例性的,选取[Fi-0.5,Fi+0.5]这个区间的概率积分作为Fi的概率。
S220:获取待压缩数据。
S230:通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数。
S240:基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
需要说明的是,S210中压缩网络模型的训练过程可以在计算机工作站(Computerworkstation)上实施,计算机工作站是一种高性能的计算机,具有强大的数据运算与图形、图像处理能力;S220~S240可以在电子设备上实施,例如:手机、电脑等。
本实施例提供的一种数据压缩方法,通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。并且,在本实施例中,通过运用与压缩网络模型相适配的压缩损失函数对压缩网络模型进行训练,提高了压缩网络模型的准确性。
请参阅图8,本申请提供的一种数据压缩方法,应用于电子设备,所述方法包括:
S310:获取待压缩数据。
S320:通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数。
S330:基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
S340:将所述第一编码与所述第二编码进行拼接得到第三编码,存储所述第三编码。
其中,第三编码可以通过对第一编码与第二编码进行简单拼接得到,示例性的,第一编码为:AAAAAA,第二编码为:BBBBBB,则第三编码为AAAAAABBBBBB。
可以理解的是,为了便于后续解压缩操作,可以对第三编码设置一个标志位,该标志位可以表明:在该标志位以前为第一编码,在该标志位以后为第二编码。
本实施例提供的一种数据压缩方法,通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。并且,在本实施例中,相对于分别存储第一编码和第二编码的方式来说,通过将第一编码与第二编码进行拼接得到第三编码,存储该第三编码的方式可以更加便于管理。
请参阅图9,本申请提供的一种数据解压缩方法,应用于电子设备,所述方法包括:
S410:获取待解码信息,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据。
其中,第一概率分布参数是与第一编码的解码结果的概率分布相对应的参数,示例性的,该第一编码的解码结果呈高斯分布,则第一概率分布参数包括均值和方差。
其中,作为一种方式,待解码信息的获取可以通过获取第一概率分布参数、第一编码以及第二编码来实现。
作为另一种方式,待解码信息的获取可以通过获取第一概率分布参数以及第三编码,对所述第三编码进行拆分得到第一编码以及第二编码来实现。其中,第三编码可以通过标志位对第一编码以及第二编码进行拆分,该标志位可以表明:在该标志位以前为第一编码,在该标志位以后为第二编码,示例性的,第三编码为AAAAAABBBBBB,根据标志位可以将第三编码拆为:第一编码AAAAAA,第二编码BBBBBB。
S420:将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码。
示例性的,如图10所示,第一概率分布参数为Z:Mu、Z:Sigma,第一编码为CZ,将Z:Mu、Z:Sigma与CZ输入算数解码器,可以得到第一解码Z。
S430:将所述第一解码输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络。
其中,第二概率分布参数是与第二编码的解码结果的概率分布相对应的参数,也就是说,第二概率分布参数是与待解压缩数据的概率分布相对应的参数。示例性的,该待解压缩数据呈高斯分布,则第二概率分布参数包括均值和方差。
示例性的,如图11所示,第一解码为Z,将Z输入上采样网络可以得到第二概率分布参数F:Mu、F:Sigma。
S440:将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。
示例性的,如图10所示,第二概率分布参数为F:Mu、F:Sigma,第二编码为CF,将F:Mu、F:Sigma与CF输入算数解码器,可以得到第二解码F,F即为解压缩结果。
本实施例提供的一种数据解压缩方法,在获取待解码信息后,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据,将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码,将所述第一解码输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络,将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。通过上述方式使得,可以基于待解压缩数据的概率分布特性,通过待解码信息与由解压缩网络模型得到的与待解压缩数据概率分布相对应的第二概率分布参数对待解压缩数据进行解压缩,便于后续调用该解压缩数据。
为了更好地理解本申请所有实施例的方案,下面在结合一种应用场景对本申请的数据压缩与解压缩方法进行介绍。
请参阅图12,该应用场景可以由以下三部分组成:(1)NPU:可以用于将待压缩数据输入压缩与解压缩模块和接收该压缩与解压缩模块输出的解压缩数据;(2)压缩与解压缩模块:可以用于实现数据的压缩与解压缩,该模块可以有压缩网络模型、算数编码器、解压缩网络模型、算数解码器,其中,解压缩网络模型可以为该压缩网络模型的上采样网络部分;(3)DDR:可以用于存储压缩与解压缩模块的输出结果。
在数据压缩阶段:NPU可以将待压缩数据输入压缩与解压缩模块中的压缩网络模型,该待压缩数据可以为神经网络的中间结果、图像、神经网络模型的权重等,其中,该中间结果可以为神经网络所提取的中间特征、神经网络隐藏层的超参数等。在压缩与解压缩模块中,通过压缩与解压缩模块中的压缩网络模型可以得到与该待压缩数据对应的中间结果、与该中间结果相对应的第一概率分布参数和与该待压缩数据相对应的第二概率分布参数。将该中间结果与该第一概率分布参数输入算数编码器,可以得到第一编码,将该待压缩数据与该第二概率分布参数输入算数编码器,可以得到第二编码,该第二编码即为压缩结果。之后,可以将该第一概率分布参数、第一编码与第二编码存储在DDR中,其中,第一编码与第二编码可以进行拼接得到第三编码后,再对第三编码进行存储,该第三编码可以设置一个标志位对第一编码和第二编码进行区分。
在数据解压缩阶段,DDR可以将第一概率分布参数、第一编码与第二编码输入到压缩与解压缩模块,该第二编码即为待解压缩数据,其中,若第一编码与第二编码是拼接为第三编码再存储于DDR中,可以先通过标志位将第三编码拆为第一编码与第二编码。在压缩与解压缩模块中,可以先将该第一概率分布参数与第一编码输入算数解码器,得到第一解码;再将该第一解码输入解压缩网络模型得到第二概率分布参数,该第二概率参数是与第二编码的解码结果的概率分布相对应的参数,也就是说,第二概率分布参数是与待解压缩数据的概率分布相对应的参数。将该第二概率分布参数与第二编码输入算数解码器可以得到第二解码,该第二解码即为解压缩结果。可以将该解压缩结果输入NPU中进行后续计算。
请参阅图13,本申请提供的一种数据压缩装置600,运行于电子设备,所述装置600包括:
数据获取单元610:用于获取待压缩数据;
参数获取单元620:用于通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数;
数据压缩单元630:用于基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
其中,所述压缩网络模型包括下采样网络和上采样网络,可选的,参数获取单元620,具体用于将所述待压缩数据输入所述下采样网络,得到所述下采样网络输出的所述中间压缩结果与所述第一概率分布参数;将所述中间压缩结果输入到所述上采样网络,得到所述上采样网络输出的所述第二概率分布参数。。
其中,所述装置600还包括:
模型训练单元640:用于通过压缩损失函数对待训练的压缩网络模型进行训练,得到所述压缩网络模型,所述压缩损失函数包括第一损失函数和第二损失函数,所述第一损失函数用于使所述中间压缩结果的多个子数据所需存储空间的均值最小,所述第二损失函数用于使所述待压缩数据的多个子数据所需存储空间的均值最小。
数据存储单元650:用于将所述第一编码与所述第二编码进行拼接得到第三编码,存储所述第三编码。
本申请提供的一种数据压缩装置,运行于电子设备,在获取待压缩数据后,通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。
请参阅图14,本申请提供的一种数据解压缩装置800,运行于电子设备,所述装置800包括:
数据获取单元810,用于获取待解码信息,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据;
数据解压缩单元820,用于将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码;将所述第一解码结果输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络;
将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。
其中,可选的,数据获取单元810,具体用于获取第一概率分布参数以及第三编码;对所述第三编码进行拆分得到第一编码以及第二编码。
请参阅图15,基于上述的数据压缩和解压缩方法、装置,本申请实施例还提供的另一种可以执行前述终端控制方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、嵌入式神经网络处理器(Neural Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信;NPU用于处理视频、图像类的海量多媒体数据。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory),还可以包括双倍速率同步动态随机存储器(Double DataRate,DDR)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图16,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质1000中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1000可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1000包括非易失性计算机可读存储介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码1010的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1010可以例如以适当形式进行压缩。
综上所述,本申请提供的一种数据压缩方法、数据解压缩方法、装置及电子设备,在获取待压缩数据后,通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。通过上述方式使得,可以基于待压缩数据的概率分布特性以及由压缩网络模型得到的与待压缩数据概率分布相对应的第二概率分布参数对待压缩数据进行压缩,提高了压缩效率。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种数据压缩方法,其特征在于,应用于电子设备,所述方法包括:
获取待压缩数据;
通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数;
基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
2.根据权利要求1所述的方法,其特征在于,所述压缩网络模型包括下采样网络和上采样网络,通过压缩网络模型得到所述待压缩数据对应的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数,包括:
将所述待压缩数据输入所述下采样网络,得到所述下采样网络输出的所述中间压缩结果与所述第一概率分布参数;
将所述中间压缩结果输入到所述上采样网络,得到所述上采样网络输出的所述第二概率分布参数。
3.根据权利要求2所述的方法,其特征在于,所述待压缩数据和所述中间压缩结果都包含多个子数据,所述获取待压缩数据之前,还包括:
通过压缩损失函数对待训练的压缩网络模型进行训练,得到所述压缩网络模型,所述压缩损失函数包括第一损失函数和第二损失函数,所述第一损失函数用于使所述中间压缩结果的多个子数据所需存储空间的均值最小,所述第二损失函数用于使所述待压缩数据的多个子数据所需存储空间的均值最小。
4.根据权利要求1所述的方法,其特征在于,所述基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述目标压缩数据的压缩结果之后,还包括:
将所述第一编码与所述第二编码进行拼接得到第三编码,存储所述第三编码。
5.一种数据解压缩方法,其特征在于,应用于电子设备,所述方法包括:
获取待解码信息,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据;
将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码;
将所述第一解码输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络;
将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。
6.根据权利要求5所述的方法,其特征在于,所述获取待解码信息包括:
获取第一概率分布参数以及第三编码;
对所述第三编码进行拆分得到第一编码以及第二编码。
7.一种对数据进行压缩的装置,其特征在于,运行于电子设备,所述装置包括:
数据获取单元,用于获取待压缩数据;
参数获取单元,用于通过压缩网络模型得到所述待压缩数据的中间压缩结果、与所述中间压缩结果的概率分布对应的第一概率分布参数和与所述待压缩数据的概率分布对应的第二概率分布参数;
数据压缩单元,用于基于算数编码器以及所述第一概率分布参数对所述中间压缩结果进行编码,得到第一编码,基于算数编码器以及所述第二概率分布参数对所述待压缩数据进行编码,得到第二编码,所述第二编码为所述待压缩数据的压缩结果。
8.一种对数据进行解压缩的装置,其特征在于,运行于电子设备,所述装置包括:
数据获取单元,用于获取待解码信息,所述待解码信息包括第一概率分布参数、第一编码以及第二编码,所述第二编码为待解压缩数据;
数据解压缩单元,用于将所述第一概率分布参数与所述第一编码输入算数解码器,获取第一解码;
将所述第一解码结果输入解压缩网络模型,获取第二概率分布参数,所述解压缩网络模型为上采样网络,所述上采样网络为与所述解压缩网络模型对应的压缩网络模型中的上采样网络;
将所述第二概率分布参数与所述第二编码输入算数解码器,获取第二解码,所述第二解码为所述待解压缩数据的解压缩结果。
9.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-6任一所述的方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-6所述方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行权利要求1-6任一所述的方法。
CN202111094531.8A 2021-09-17 2021-09-17 数据压缩方法、数据解压缩方法、装置及电子设备 Pending CN113810058A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111094531.8A CN113810058A (zh) 2021-09-17 2021-09-17 数据压缩方法、数据解压缩方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111094531.8A CN113810058A (zh) 2021-09-17 2021-09-17 数据压缩方法、数据解压缩方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN113810058A true CN113810058A (zh) 2021-12-17

Family

ID=78895797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111094531.8A Pending CN113810058A (zh) 2021-09-17 2021-09-17 数据压缩方法、数据解压缩方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113810058A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023174256A1 (zh) * 2022-03-14 2023-09-21 华为技术有限公司 一种数据压缩方法以及相关设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023174256A1 (zh) * 2022-03-14 2023-09-21 华为技术有限公司 一种数据压缩方法以及相关设备

Similar Documents

Publication Publication Date Title
CN110889381B (zh) 换脸方法、装置、电子设备及存储介质
US10599935B2 (en) Processing artificial neural network weights
CN111669587B (zh) 一种视频图像的拟态压缩方法、装置、存储介质及终端
US9848192B2 (en) Region-based image decompression
CN107565971B (zh) 一种数据压缩方法及装置
CN110892419B (zh) 停止码容忍的图像压缩神经网络
CN111641832A (zh) 编码方法、解码方法、装置、电子设备及存储介质
CN112581552B (zh) 自适应分块的基于体素的点云压缩方法及装置
JP7408799B2 (ja) ニューラルネットワークモデルの圧縮
CN111641826B (zh) 对数据进行编码、解码的方法、装置与***
CN112771541A (zh) 使用整数神经网络的数据压缩
EP4082119A1 (en) Systems and methods of data compression
KR20210126102A (ko) 신경망 모델 압축/압축해제를 위한 방법 및 장치
US20220114454A1 (en) Electronic apparatus for decompressing a compressed artificial intelligence model and control method therefor
CN116233445B (zh) 视频的编解码处理方法、装置、计算机设备和存储介质
CN113810058A (zh) 数据压缩方法、数据解压缩方法、装置及电子设备
CN113424200A (zh) 用于视频编码和视频解码的方法、装置和计算机程序产品
CN113256744B (zh) 一种图像编码、解码方法及***
CN113382244B (zh) 编解码网络结构、图像压缩方法、装置及存储介质
JP7394980B2 (ja) ブロック分割を伴うニューラルネットワークを復号する方法、装置及びプログラム
US11189005B1 (en) Index buffers in graphics processing systems
CN112101548A (zh) 数据压缩方法及装置、数据解压方法及装置、电子设备
CN110717948A (zh) 一种图像后处理方法、***及终端设备
CN113949868B (zh) 一种熵编码方法及装置
WO2024011417A1 (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