一种针对变长编码数据的解码电路制造技术

技术编号:18208134 阅读:45 留言:0更新日期:2018-06-13 08:02
本发明专利技术公开了一种针对变长编码数据的解码电路,变长编码数据包括多个变长编码,且其最长编码的码字位宽为N,解码电路包括:第一行缓存和第二行缓存,依次缓存变长编码数据中2W个相继数位的值,W≥N;P个译码本单元,第i个译码本单元对2W个相继数位中第i个至第i+N‑1个数位进行解码,确定从第i位开始的一个变长编码所对应的初步译码结果,0≤i<P;M个译码结果选择单元,依次编号为0至M‑1,每个译码结果选择单元接收P个初步译码结果,并基于本轮译码起始位置分别选择一个译码本单元的初步译码结果,作为各自的译码结果,本轮译码起始位置表示本轮译码操作所针对的变长编码数据在第一行缓存中的起始位置。基于本发明专利技术可以实现对变长编码数据的并行化解码。

【技术实现步骤摘要】
一种针对变长编码数据的解码电路
本专利技术涉及数据解码领域,特别是涉及一种针对变长编码数据的解码电路。
技术介绍
变长编码给出现概率大的符号赋予较短的码字,出现概率小的符号赋予较长的码字,从而达到压缩信息冗余的目的。编码与解码过程完全可逆,因此是一种无失真的压缩编码方法。霍夫曼编码是变长编码中最重要的编码方法之一,在JPEG图像压缩、文件压缩等均扮演了重要角色。在深度学习领域,霍夫曼编码亦可发挥重要作用。深度学习算法中网络系数数百万甚至数亿个,占用大量存储资源与带宽资源,在硬件运算中是主要瓶颈,而采用变长编码可达到数倍甚至数十倍的压缩比,可显著提高算法性能。但是随之带来的问题是,计算过程需要实时解压,对解码速度要求非常高。现有的传统变长编码解码技术采用的均是单时钟周期解码出单个数据,解码效率较低。因此,需要一种新的解码方案,以提高解码效率。
技术实现思路
本专利技术主要目的是提供一种针对变长编码数据的解码电路,其能够在单时钟周期解码多个数据,以提高解码效率。根据本专利技术的一个方面,提供了一种针对变长编码数据的解码电路,所述变长编码数据包括多个变长编码,且其最长编码的码字位宽为N,包括:第一行缓存和第二行缓存,其数据位宽均为W,依次缓存所述变长编码数据中2W个相继数位的值,第一缓存的W个数位依次编号为0至W-1,第二缓存的W个数位依次编号为W至2W-1,其中,W≥N;P个译码本单元,依次编号为0至P-1,其中第i个译码本单元对所述2W个相继数位中第i个至第i+N-1个数位进行解码,确定从第i位开始的一个变长编码所对应的初步译码结果,其中,0≤i&lt;P;M个译码结果选择单元,依次编号为0至M-1,每个译码结果选择单元接收所述P个初步译码结果,并基于本轮译码起始位置分别选择一个译码本单元的初步译码结果,作为各自的译码结果,所述本轮译码起始位置表示本轮译码操作所针对的变长编码数据在所述第一行缓存中的起始位置,其中,且i、P、M、N均是正整数。在本专利技术的一个实施例中,译码结果选择单元选择为其指定的译码起始位置所对应的译码本单元的初步译码结果,其中,为第0个译码结果选择单元指定的译码起始位置是在上一轮译码操作中确定的本轮译码起始位置,为第j+1个译码结果选择单元指定的译码起始位置是为第j个译码结果选择单元所选择的初步译码结果对应的变长编码在所述第一行缓存中的结束位置的下一个位置,其中,0≤j&lt;M-1。在本专利技术的一个实施例中,第i个译码本单元以第i个数位为起始数位来识别变长编码,对所识别的变长编码进行译码以得到所述初步译码结果,并输出所述初步译码结果和所述变长编码的长度,第j个译码结果选择单元基于为其指定的译码起始位置和其所选择的初步译码结果所对应的变长编码的长度,确定第j+1个译码结果选择单元的译码起始位置,并发送给第j+1个译码结果选择单元。在本专利技术的一个实施例中,在第k个译码结果选择单元所选择的初步译码结果对应的变长编码的起始位置在所述第一行缓存,而其结束位置在第二行缓存的情况下,所述第k个译码结果选择单元发出跨行信号,其中,0≤k&lt;M。在本专利技术的一个实施例中,该解码电路还可以包括译码结果整合单元,接收M个译码结果选择单元所选择的译码结果,整合本轮译码结果集合,并确定下一轮译码起始位置。在本专利技术的一个实施例中,译码结果整合单元还可以包括:译码结果获取模块,用于从M个译码结果选择单元获取本轮译码结果集合;以及下一轮起始地址确定模块,用于确定下一轮起始地址,其中,在M个译码结果选择单元均没有发出跨行指令的情况下,译码结果获取模块获取M个译码结果选择单元所选择的译码结果,作为本轮译码结果集合,并且下一轮起始地址确定模块基于为最后一个译码结果选择单元指定的译码起始位置及其所对应的变长编码的长度,确定下一轮起始地址;在第k个译码结果选择单元发出了跨行指令的情况下,译码结果获取模块获取第0个至第k个译码结果选择单元所选择的译码结果,作为本轮译码结果集合,并且下一轮起始地址确定模块基于为第k个译码结果选择单元指定的译码起始位置及其所对应的变长编码的长度,确定下一轮起始位置。在本专利技术的一个实施例中,译码结果整合单元还可以包括:跨行使能模块,在第k个译码结果选择单元发出了跨行指令的情况下,向第一行缓存和第二行缓存发出跨行指令,响应于跨行指令,将第二行缓存中的数据转移到第一行缓存中,并且在第二行缓存中写入后续变长编码数据。在本专利技术的一个实施例中,该解码电路还可以包括先入先出队列,用于从外部存储器输入变长编码数据,并且响应于跨行指令,向第二行缓存提供变长编码数据。在本专利技术的一个实施例中,该解码电路还可以包括输出寄存器,用于寄存译码结果集合、跨行指令、下一轮起始地址,以向外输出译码结果,向第一行缓存、第二行缓存以及先入先出队列发送跨行指令,并向第0个译码结果选择单元发送下一轮译码起始地址。在本专利技术的一个实施例中,每个译码本单元还输出标识其是否成功识别出变长编码的译码有效性标识,每个译码结果选择单元向译码结果整合单元输出其所选择的译码本单元输出的译码有效性标识,译码结果整合单元还包括:译码错误检查模块,基于译码有效性标识检查本轮译码操作是否出错,并在确定译码操作出错的情况下,经由输出寄存器发出译码错误信号。综上,本专利技术采取“投机机制”,按照顺序依次以每个数位为起始数位,使用相应的译码本单元对该起始数位前向N个数位范围(包括该起始数位,数位范围也可以大于N)的编码数据进行解码。若译码本单元未找到匹配编码,则表明“投机失败”,输出无效信号,若找到匹配码本,则表明“投机成功”,可以输出包含变长编码长度、解码值、解码成功标识的初步解码结果,以此实现对变长编码数据的并行解码。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1是示出了根据本专利技术一实施例的解码方法的示意图。图2是示出了根据本专利技术一实施例的解码电路的示意性方框图。图3是示出了根据本专利技术另一实施例的解码电路的示意性方框图。图4是示出了根据本专利技术另一实施例的解码电路的示意性方框图。图5是示出了根据本专利技术一实施例的基于跨行指令更新行缓存的示意图。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本专利技术主要提出了一种针对变长编码的解码电路,为了便于更好地理解本专利技术,首先就本专利技术的专利技术机理进行简要说明。如
技术介绍
部分及本领域技术人员所公知,变长编码是一种根据数据出现的概率进行编码的方法,其主要编码思想是对出现概率大的数据赋予较短的码字位宽(即编码所包含的数位个数,下同),通过改变码字位宽达到压缩信息冗余的目的。在对变长编码数据进行解码时,由于不同的数据可能被编码成不同的码字位宽,在前一个数据未被解码时,后一个数据的编码起始位置不能确定,使得无法对变长编码数据进行并行解码。因此,现有的解码方法需要逐个对其进行本文档来自技高网
...
一种针对变长编码数据的解码电路

【技术保护点】
一种针对变长编码数据的解码电路,所述变长编码数据包括多个变长编码,且其最长编码的码字位宽为N,包括:第一行缓存和第二行缓存,其数据位宽均为W,依次缓存所述变长编码数据中2W个相继数位的值,第一缓存的W个数位依次编号为0至W‑1,第二缓存的W个数位依次编号为W至2W‑1,其中,W≥N;P个译码本单元,依次编号为0至P‑1,其中第i个译码本单元对所述2W个相继数位中第i个至第i+N‑1个数位进行解码,确定从第i位开始的一个变长编码所对应的初步译码结果,其中,0≤i<P;M个译码结果选择单元,依次编号为0至M‑1,每个译码结果选择单元接收所述P个初步译码结果,并基于本轮译码起始位置分别选择一个译码本单元的初步译码结果,作为各自的译码结果,所述本轮译码起始位置表示本轮译码操作所针对的变长编码数据在所述第一行缓存中的起始位置,其中,且i、P、M、N均是正整数。

【技术特征摘要】
1.一种针对变长编码数据的解码电路,所述变长编码数据包括多个变长编码,且其最长编码的码字位宽为N,包括:第一行缓存和第二行缓存,其数据位宽均为W,依次缓存所述变长编码数据中2W个相继数位的值,第一缓存的W个数位依次编号为0至W-1,第二缓存的W个数位依次编号为W至2W-1,其中,W≥N;P个译码本单元,依次编号为0至P-1,其中第i个译码本单元对所述2W个相继数位中第i个至第i+N-1个数位进行解码,确定从第i位开始的一个变长编码所对应的初步译码结果,其中,0≤i&lt;P;M个译码结果选择单元,依次编号为0至M-1,每个译码结果选择单元接收所述P个初步译码结果,并基于本轮译码起始位置分别选择一个译码本单元的初步译码结果,作为各自的译码结果,所述本轮译码起始位置表示本轮译码操作所针对的变长编码数据在所述第一行缓存中的起始位置,其中,且i、P、M、N均是正整数。2.根据权利要求1所述的解码电路,其中,所述译码结果选择单元选择为其指定的译码起始位置所对应的译码本单元的初步译码结果,其中,为第0个译码结果选择单元指定的译码起始位置是在上一轮译码操作中确定的本轮译码起始位置,为第j+1个译码结果选择单元指定的译码起始位置是为第j个译码结果选择单元所选择的初步译码结果对应的变长编码在所述第一行缓存中的结束位置的下一个位置,其中,0≤j&lt;M-1。3.根据权利要求2所述的解码电路,其中,第i个译码本单元以第i个数位为起始数位来识别变长编码,对所识别的变长编码进行译码以得到所述初步译码结果,并输出所述初步译码结果和所述变长编码的长度,第j个译码结果选择单元基于为其指定的译码起始位置和其所选择的初步译码结果所对应的变长编码的长度,确定第j+1个译码结果选择单元的译码起始位置,并发送给第j+1个译码结果选择单元。4.根据权利要求3所述的解码电路,其中,在第k个译码结果选择单元所选择的初步译码结果对应的变长编码的起始位置在所述第一行缓存,而其结束位置在第二行缓存的情况下,所述第k个译码结果选择单元发出跨行信号,其中,0≤k&lt;M。5.根据权利要求4所述的解码电路,还包括:译码结果整合单元,接收所述M个译码结果选择单...

【专利技术属性】
技术研发人员:姚颂方绍峡
申请(专利权)人:北京深鉴科技有限公司
类型:发明
国别省市:北京,11

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

1