CN116018758A - 用于对整数值序列进行编码和解码的装置,用于对整数值序列进行编码和解码的方法以及用于实现这些方法的计算机程序 - Google Patents

用于对整数值序列进行编码和解码的装置,用于对整数值序列进行编码和解码的方法以及用于实现这些方法的计算机程序 Download PDF

Info

Publication number
CN116018758A
CN116018758A CN202180052109.8A CN202180052109A CN116018758A CN 116018758 A CN116018758 A CN 116018758A CN 202180052109 A CN202180052109 A CN 202180052109A CN 116018758 A CN116018758 A CN 116018758A
Authority
CN
China
Prior art keywords
integer
data stream
exponential golomb
difference
golomb code
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
CN202180052109.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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Publication of CN116018758A publication Critical patent/CN116018758A/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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明描述用于对整数值序列进行编码的编码方案,特别是通过首先对预定位置处的值进行编码,然后连续地计算和编码相邻值之间的差。还提供了相应的解码方案。这些编码和解码方案提供更有效的编码概念。

Description

用于对整数值序列进行编码和解码的装置,用于对整数值序列进行编码和解码的方法以及用于实现这些方法的计算机程序
技术领域
本申请涉及对整数值序列进行编码,特别是通过首先使用对预定位置处的值进行编码,然后连续地计算和编码相邻值之间的差。
根据本发明的实施例涉及用于编码整数值序列的装置。
根据本发明的进一步实施例涉及用于解码整数值序列的装置。
根据本发明的进一步实施例涉及用于编码整数值序列的方法。
根据本发明的进一步实施例涉及用于解码整数值序列的方法。
根据本发明的进一步实施例涉及用于执行整数值序列的编码和解码的方法的计算机程序。
本发明可应用于涉及整数值的信令的任意数据压缩应用,例如神经网络的参数的压缩。
背景技术
目前已知有许多对值序列进行编码和解码的设备和方法。
然而,由于代码的长度,已知的设备和方法需要相当大的位流带宽,并且只有当序列的元素之间出现少量不同的值时才有效。
综上所述,期望创建编码概念,其提供改进的压缩性能,从而提高编码效率。
因此,本发明的目的是提供一种更有效的编码概念。此目的是通过未决独立权利要求的主题来实现的。
进一步有利的方面是从属权利要求的主题。
发明内容
根据本发明的实施例,创建了用于将按严格单调方式排列的整数值序列,例如码本,编码到数据流中,例如编码到比特流中的装置。装置被配置为:将位于整数值序列的预定位置(z)处的预定整数值例如C[z]编码到数据流中;对于在预定位置(例如z)之前的整数值序列中的每个位置,计算紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差,以及将第一差编码到数据流中;以及对于位于预定位置之后的整数值序列中的每个位置,计算相应位置处的整数值与紧接相应位置之前处的整数值之间的差值减1的第二差,以及将第二差编码到数据流中。
本实施例基于如下发现:首先对位于序列的预定位置处的序列的预定整数值进行编码然后因此仅标志相邻值之间的差增加压缩性能。
值得注意的是,本文教导的整数值序列的编码将序列分为两部分,一部分在预定位置之前,另一部分沿着序列在预定位置之后。许多要编码的序列,例如参数(例如神经网络参数)的量化级别的码本,显示了以某个整数值为中心的值的分布,该整数值的大小相当小,并且然后可以用于形成预定位置处的预定整数值,其中围绕该中心的整数值密度很高,并且在远离中心的连续整数值之间实现较大的间隔。这意味着与编码序列的第一或最后一个整数值,然后相对于此第一或最后一个值差分编码所有其他值相比,单独地编码预定的整数值,然后编码其他整数值相对于紧邻整数值对的差(减1),有助于避免必须编码一个大的整数值。在将预定位置的信息编码到数据流中的情况下,相应的节省甚至过度补偿额外的开销。
此外,应该注意的是,在许多应用中,用于量化特定参数群(诸如神经网络参数)的索引在它们所指向的码本的整数值之间分布,该码本本身的中心在序列的整数值的质心所在的预定位置处或附近。这使得在编码到数据流的情况下,可以有效地重用预定位置的信息,作为编码指向序列/码本的所有参数的量化索引的偏移,即可以针对每个参数对索引减去预定位置(z)进行编码/解码,而不是直接针对序列或码本内的整数值的秩位置。量化索引的重用以及相应的差分/偏移编码到序列/码本中,使得诸如神经网络NN参数的参数的编码更加高效。
根据实施例,装置被配置为将整数值序列的整数值的数量,例如码本的大小,例如L(C),或码本的长度编码到数据流,例如比特流。这使得重新使用码本大小的信息成为可能。数据流中的整数值的编码序列可用于确定码本的中心和预定位置的秩。根据实施例,装置被配置为使用第一可变长度码,例如A1,将整数值序列的整数值的数量编码到数据流中。例如,第一可变长度码可以将较短的码字分配给具有较小大小的整数。例如,第一可变长度码可以是无符号整数值的代码。
根据实施例,装置被配置为使用指数哥伦布码将整数值序列的整数值的数量编码到数据流中。指数哥伦布码的参数例如k可以例如控制对不同大小的编码值的码长度分配。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。因此提高编码效率。
根据实施例,指数哥伦布码的指数哥伦布码参数为值2。对于第一可变长度码使用预定的指数哥伦布码参数是更有效的,因为每个整数值序列(例如码本)仅编码一个值。
根据实施例,装置被配置为通过使用第一二值化码将数量二值化为一个或多个第一二进制位的第一二进制字符串,并对一个或多个第一二进制位进行上下文自适应二进制算术编码,来将整数值序列的整数值的数量编码到数据流中。因为无损二值化编码,编码效率不会降低。
根据实施例,装置被配置为将表明预定位置例如z的信息编码到数据流中。它使得重用预定位置的信息成为可能。
根据实施例,装置被配置为在整数值序列内的数个位置中选择预定位置,并从数个位置中选择满足预定标准的位置作为预定位置。例如,当整数值序列的整数值以零为中心时,预定位置,例如z,优选地指向大小较小的值,以提供有效的编码方法。
根据实施例,装置被配置为,预定的标准是用于将整数值序列编码到数据流中的最低比特率。
根据实施例,装置被配置为计算预定位置的秩与整数值数量的整数四舍五入的一半之间的第三差,并将第三差编码到数据流中。例如,第三差被计算为
Figure BDA0004091890950000031
例如,当z指向接近序列中间的位置时,变量y很小。从而提供一种有效的编码方法。
根据实施例,装置被配置为使用第二可变长度码,例如A2将第三差编码到数据流中。例如,第二可变长度码是有符号整数值的代码。
根据实施例,装置被配置为使用指数哥伦布码将第三差编码到数据流中。例如,指数哥伦布码的参数例如k可以控制对不同大小的编码值的码长分配。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。因此提高编码效率。
根据实施例,装置被配置为通过根据预定义的映射规则将第三差映射到第一无符号整数以及使用第三可变长度码,例如A6对第一无符号整数进行编码而将第三差编码到数据流中。
根据实施例,装置被配置为使用指数哥伦布码将无符号整数编码到数据流中。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。因此提高编码效率。
根据实施例,指数哥伦布码的指数哥伦布码参数为值2。使用预定的指数哥伦布码参数可以更有效。
根据实施例,映射规则将有符号整数映射到无符号整数,使得小于0的有符号整数和大于0的有符号整数分别映射到偶数无符号整数和奇数无符号整数的单独一个,并将0映射到0,并且使得,对于每个无符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
根据实施例,映射规则根据以下将有符号整数Is映射到无符号整数Iu:
若Is≤0→Iu=-Is*2,
若Is>0→Iu=Is*2-1.
根据实施例,装置被配置为通过使用第二二值化码将数量二值化为具有一个或多个第二二进制位的第二二进制字符串,并对一个或多个第二二进制位进行上下文自适应二进制算术编码,来将第三差编码到数据流中。
根据实施例,装置被配置为使用第四可变长度码,例如A3将预定的整数值编码到数据流中。例如,第四可变长度码可以是有符号整数值的代码。
根据实施例,装置被配置为使用指数哥伦布码将预定的整数值编码到数据流中。例如,指数哥伦布码的参数例如k可以控制对不同大小的编码值的码长度分配。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。因此提高编码效率。
根据实施例,装置被配置为根据另一预定义的映射规则将预定整数值映射到第二无符号整数,以及使用第五可变长度码,例如A7对第二无符号整数进行编码,来将预定整数值编码到数据流中。
根据实施例,装置被配置为使用指数哥伦布码将无符号整数编码到数据流中。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。因此提高编码效率。
根据实施例,指数哥伦布码的指数哥伦布码参数为值7。使用预定的指数哥伦布码参数可以更有效。
根据实施例,映射规则将有符号整数映射到无符号整数,使得小于0的有符号整数和大于0的有符号整数分别被映射到偶数无符号整数和奇数无符号整数的单独一个,并将0映射到0,并且使得,对于每个无符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
根据实施例,映射规则根据以下将有符号整数Is映射到无符号整数Iu:
若Is≤0→Iu=-Is*2,
若Is>0→Iu=Is*2-1.
根据实施例,设备被配置为通过使用第三二值化码将数量二值化为一个或多个第三二进制位的第三二进制字符串和对一个或多个第三二进制位进行上下文自适应二进制算术编码来将预定整数值编码到数据流中。由于无损二值化编码,编码效率不被降低。
根据实施例,装置被配置为通过使用第六可变长度码,例如A4将第一差编码到数据流中。例如,第六可变长度码可以是无符号整数值的代码。
根据实施例,装置被配置为使用指数哥伦布码将第一差编码到数据流中。例如,指数哥伦布码的参数例如k可以控制对不同大小的编码值的码长分配。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。当两个或更多个整数值序列,例如两个或更多个码本在数据流中被编码,并且对于所有序列,只有一个指数哥伦布码参数被编码在数据流中时,这种方法尤其有效。在较大的码本的情况下,标志第六可变长度码的指数哥伦布参数,以便优化码长以适应要编码的值的分布,可能是有利的。因此提高编码效率。
根据实施例,指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
根据实施例,指数哥伦布码的指数哥伦布码参数为值7。使用预定的指数哥伦布码参数可以更有效。
根据实施例,装置被配置为通过使用第二二值化码将数量二值化为一个或多个第四二进制位的第四二进制字符串和对一个或多个第四二进制位进行上下文自适应二进制算术编码来将第一差编码到数据流中。由于无损二值化编码,编码效率不被降低。
根据实施例,装置被配置为通过使用第七可变长度码,例如A5,将第二差编码到数据流中。例如,第七可变长度码可以是无符号整数值的代码。
根据实施例,装置被配置为使用指数哥伦布码将第二差编码到数据流中。例如,指数哥伦布码的参数例如k可以控制对不同大小的编码值的码长分配。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。当两个或更多个整数值序列,例如两个或更多个码本被编码到数据流中,并且对于所有序列,只有一个指数哥伦布码参数被编码到数据流中时,这种方法尤其有效。在较大的码本的情况下,为第六可变长度码标志指数哥伦布参数,以便优化码长以适应要编码的值的分布,可能是有利的。因此提高编码效率。
根据实施例,指数哥伦布码参数是0到15范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
根据实施例,指数哥伦布码的指数哥伦布码参数为值7。使用预定的指数哥伦布码参数可以更有效。
根据实施例,用于编码第二差的指数哥伦布码的指数哥伦布码参数与用于编码第一差的指数哥伦布码的指数哥伦布码参数相同。
根据实施例,用于编码第一差和第二差的指数哥伦布码的指数哥伦布码参数与用于将预定整数值编码到数据流中的指数哥伦布码的指数哥伦布码参数相同。
根据实施例,装置被配置为通过使用第二二值化码将数量二值化为一个或多个第五二进制位的第五二进制字符串和对一个或多个第五二进制位进行上下文自适应二进制算术编码来将第二差编码到数据流中。由于无损二值化编码,编码效率不被降低。
根据实施例,装置被配置为通过聚类算法获得整数值序列。
根据实施例,整数值序列是与神经网络的参数相关联的码本。在编码到数据流的情况下,将预定位置的信息重新用作对指向序列/码本的所有参数的量化索引进行编码的偏移,以及将量化索引相应差分/偏移编码到序列/码本中,使得神经网络NN参数的编码更加高效。
根据实施例,参数包括神经网络的权重、偏差和批量范数参数中的一个或多个。
根据实施例,装置被配置为通过将多个浮点值量化到由整数值序列和浮点量化参数定义的一组量化级别上来获得整数值序列。
根据实施例,装置被配置为,对于多个浮点值中的每一个,将指向整数值序列中的相关整数值的量化索引编码到数据流中,根据浮点量化参数,相关整数值与相应浮点值被量化到其上的量化级别相关联。
根据实施例,浮点量化参数包括第一有符号整数量化参数和第二无符号整数参数。
根据实施例,装置被配置为将第一有符号整数量化参数编码到数据流中,并且其中第二无符号整数参数是固定值,或者装置被配置为从另一个整数值序列或整数值序列集继承第二无符号整数参数。
根据实施例,装置被配置为将第一有符号整数量化参数和第二无符号整数参数编码到数据流中。
根据实施例,装置被配置为以整数值序列内相关整数值的位置的第一秩与预定位置的秩的秩差的形式将量化索引编码到数据流中。
根据实施例,装置被配置为使用第八可变长度码将秩差编码到数据流中。
根据实施例,装置被配置为使用指数哥伦布码将秩差编码到数据流中。例如,指数哥伦布码的参数例如k可以控制对不同大小的编码值的码长分配。使用指数哥伦布码提供一种更有效的编码方法。
根据实施例,装置被配置为通过使用二值化码将数量二值化为一个或多个二进制位的二进制字符串以及对一个或多个二进制位进行上下文自适应二进制算术编码来将秩差编码到数据流中。由于无损二值化编码,编码效率不被降低。
根据实施例,装置被配置为将浮点量化参数编码到数据流中,用于通过应用浮点量化参数从整数值序列中获得量化级别。
根据实施例,其中浮点量化参数定义量化级别之间的量化步长。
根据本发明的实施例创建用于从数据流,例如从比特流,解码以严格单调方式排序的整数值序列,例如码本的装置。装置被配置为从数据流解码位于整数值序列的预定位置,例如z处的预定整数值,例如C[z];并且对于在预定位置之前的整数值序列中的每个位置,从数据流解码紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差;并且对于位于预定位置之后的整数值序列中的每个位置,从数据流解码相应位置处的整数值与紧接在相应位置之前处的整数值之间的差值减1的第二差。
根据本实施例和下面描述的实施例的用于解码的装置基于与上面描述的用于编码的装置相同的考虑。
根据实施例,装置被配置为从数据流解码整数值序列的整数值的数量,例如码本的大小,例如L(C),或例如码本的长度。
根据实施例,装置被配置为使用第一可变长度码,例如A1从数据流解码整数值序列的整数值的数量。
根据实施例,装置被配置为通过使用指数哥伦布码从数据流解码整数值序列的整数值的数量。
根据实施例,装置被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
根据实施例,指数哥伦布码的指数哥伦布码参数为值2。根据实施例,装置被配置为通过经由第一二值化码从一个或多个第一二进制位的第一二进制字符串中对数量进行去二值化,并从数据流对一个或多个第一二进制位进行上下文自适应二进制算术解码,来从数据流中解码整数值序列的整数值的数量。
根据实施例,装置被配置为从数据流解码表明预定位置的信息。
根据实施例,装置被配置为,对于在预定位置之前的位置序列的每个位置,通过线性组合第一差、紧接在相应位置后面处的整数值和1,计算(206)相应位置处的整数值;并且对于预定位置之后的位置序列的每个位置,通过线性组合第二差、紧接在相应位置前面处的整数值和1,计算(208)相应位置处的整数值。
根据实施例,装置被配置为从数据流解码预定位置的秩与整数值的数量的整数四舍五入的一半之间的第三差;以及基于第三差和整数值的数量计算预定位置。
根据实施例,装置被配置为经由第二可变长度码,例如A2从数据流解码第三差。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码第三差。
根据实施例,装置被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
根据实施例,装置被配置为通过使用第三可变长度码,例如A6解码第一无符号整数,以及通过根据预定义的逆映射规则从第一无符号整数逆映射来检索第三差,而从数据流解码第三差。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码无符号整数。
根据实施例,装置被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
根据实施例,指数哥伦布码的指数哥伦布码参数为值2。
根据实施例,逆映射规则将无符号整数映射到有符号整数,使得偶数无符号整数和奇数无符号整数分别映射到小于0的有符号整数和大于0的有符号整数的单独一个,并将0映射到0,以及使得,对于每个有符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
根据实施例,逆映射规则根据以下将无符号整数Iu映射到有符号整数Is:
Figure BDA0004091890950000081
Figure BDA0004091890950000091
根据实施例,装置被配置为通过经由第二二值化码从一个或多个第二二进制位的第二二进制字符串对数量进行去二值化并对一个或多个第二二进制位进行上下文自适应二进制算术解码来从数据流解码第三差。
根据实施例,装置被配置为经由第四可变长度码,例如A3从数据流解码预定的整数值。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码预定整数值。
根据实施例,装置被配置为通过经由第五可变长度码,例如A7解码第二无符号整数,以及通过根据另一预定义的逆映射规则,对第二无符号整数的逆映射来检索预定的整数值,来从数据流解码预定整数值。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码无符号整数。
根据实施例,装置被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
根据实施例,指数哥伦布码的指数哥伦布码参数为值7。
根据实施例,逆映射规则将无符号整数映射到有符号整数,使得偶数无符号整数和奇数无符号整数分别映射到小于0的有符号整数和大于0的有符号整数的单独一个,并将0映射到0,以及使得,对于每个有符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
根据实施例,逆映射规则根据以下将无符号整数Iu映射到有符号整数Is:
Figure BDA0004091890950000092
Figure BDA0004091890950000093
根据实施例,装置被配置为通过使用第三二值化码从一个或多个第三二进制位的第三二进制字符串对数量进行去二值化,并对一个或多个第三二进制位进行上下文自适应二进制算术解码,来从数据流解码预定整数值。
根据实施例,装置被配置为经由使用第六可变长度码,例如A4将第一差编码到数据流中。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码第一差。
根据实施例,装置被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。当要从数据流解码两个或更多个整数值序列,例如两个或更多个码本时,这尤其有效。
根据实施例,指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
根据实施例,指数哥伦布码的指数哥伦布码参数为值7。
根据实施例,装置被配置为通过使用第二二值化码从一个或多个第四二进制位的第四二进制字符串中对数字进行去二值化,并对一个或多个第四二进制位进行上下文自适应二进制算术解码,来从数据流解码第一差。
根据实施例,装置被配置为经由第七可变长度码,例如A5从数据流解码第二差。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码第二差。
根据实施例,装置被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。当要从数据流中解码两个或更多个整数值序列,例如两个或更多个码本时,这尤其有效。
根据实施例,指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
根据实施例,指数哥伦布码的指数哥伦布码参数为值7。
根据实施例,用于解码第二差的指数哥伦布码的指数哥伦布码参数与用于解码第一差的指数哥伦布码的指数哥伦布码参数相同。
根据实施例,用于解码第一差和第二差的指数哥伦布码的指数哥伦布码参数与用于从数据流解码预定整数值的指数哥伦布码的指数哥伦布码参数相同。
根据实施例,装置被配置为通过经由第二二值化码从一个或多个第五二进制位的第五二进制字符串对数量进行去二值化,并对一个或多个第五二进制位进行上下文自适应二进制算术解码,来从数据流解码第二差。
根据实施例,装置被配置为将去聚类算法应用于解码的整数值序列。
根据实施例,装置被配置为,其中整数值序列是与神经网络的参数相关联的码本。
根据实施例,参数包括神经网络的权重、偏差和批量范数参数中的一个或多个。
根据实施例,装置被配置为从由整数值序列和浮点量化参数定义的一组量化级别将解码的整数值序列重构为多个浮点值。
根据实施例,装置被配置为对于多个浮点值中的每一个,从数据流解码指向整数值序列中的相关整数值的量化索引,整数值根据浮点量化参数与相应浮点值被量化到的量化级别相关联。
根据实施例,浮点量化参数包括第一有符号整数量化参数和第二无符号整数参数。
根据实施例,装置被配置为将第一有符号整数量化参数编码到数据流中,并且其中第二无符号整数参数是固定值或装置被配置为从另一个整数值序列或整数值序列集继承第二无符号整数参数。
根据实施例,装置被配置为将第一有符号整数量化参数和第二无符号整数参数编码到数据流中。
根据实施例,装置被配置为基于整数值序列中相关整数值的位置的第一秩和预定位置的秩的秩差从数据流解码量化索引。
根据实施例,装置被配置为经由第八可变长度码从数据流解码秩差。
根据实施例,装置被配置为经由指数哥伦布码从数据流解码秩差。
根据实施例,装置被配置为通过使用二值化码从一个或多个二进制位的二进制字符串中对数量进行去二值化,并对一个或多个二进制位进行上下文自适应二进制算术解码,来从数据流解码秩差。
根据实施例,装置被配置为从数据流解码浮点量化参数,用于通过应用浮点量化参数从量化级别重构整数值序列。
根据实施例,装置被配置为浮点量化参数定义量化级之间的量化步长。
根据本发明的实施例创建了一种用于将以严格单调方式排序的整数值序列编码到数据流中的方法,包括:将位于整数值序列的预定位置(例如z)处的预定整数值,例如C[z],编码到数据流中;并且对于在预定位置之前的整数值序列的每个位置,计算紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差,以及将第一差值编码到数据流中;并且对于位于预定位置之后的整数值序列的每个位置,计算相应位置处的整数值与紧接相应位置前面处的整数值之间的差值减1的第二差,以及将第二差编码到数据流中。
根据本实施例的方法基于与上述编码装置相同的考虑。此外,本公开的实施例可以可选地由本文结合用于编码的装置公开的任何其他特征、功能和细节来补充,无论是单独的还是组合的。
根据本发明的实施例创建了用于从数据流解码以严格单调方式排序的整数值序列的方法,包括:从数据流解码位于整数值序列的预定位置(例如z)处的预定整数值,例如C[z];并且对于在预定位置之前的整数值序列的每个位置,从数据流解码紧接相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差;并且对于位于预定位置之后的整数值序列的每个位置,从数据流解码相应位置处的整数值与紧接在相应位置之前处的整数值之间差值减1的第二差。
根据本实施例的方法基于与上述用于解码的装置相同的考虑。此外,本公开的实施例可以可选地由本文结合用于解码的装置公开的任何其他特征、功能和细节来补充,无论是单独的还是组合的。
根据本发明的实施例创建具有程序代码的计算机程序,用于在计算机上运行时执行根据上述任何实施例的方法。
用于编码的装置、用于解码的装置、用于编码的方法、用于解码的方法和用于实现这些方法的计算机程序,可以可选地由本文(在整个文档中)公开的任何特征、功能和细节来补充,无论是单独的还是组合的。
附图说明
以下基于附图列出本申请的优选实施例,其中:
图1示出了根据实施例用于编码的方法100的流程图;
图2示出了根据实施例用于解码的方法200的流程图;
图3示出了根据实施例编码和解码过程的示意图表示。
具体实施方式
图1中示出了用于根据实施例对整数值序列进行编码的方法100。
方法100包括在步骤101对待编码的整数值序列的整数值的数量进行编码,在步骤102计算预定位置的秩与整数值数量的整数四舍五入的一半之间的差,并在步骤103将此差编码到数据流中。方法100进一步包括在步骤104对位于整数值序列的预定位置z处的预定整数值C[z]进行编码。
方法100进一步包括对预定位置z之前的整数值序列的每个位置执行以下编码步骤:在步骤105计算紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的差,并在步骤106将此差编码到数据流中。
方法100进一步包括对位于预定位置z后面的整数值序列的每个位置执行以下编码步骤:在步骤107计算相应位置处的整数值与紧接在相应位置前面处的整数值之间的差值减1的差,并在步骤108将此差编码到数据流中。
然而,应当注意的是,方法100可以可选地由本文所公开的任何特性、功能和细节单独或组合地补充。
图2中示出了用于根据实施例解码整数值序列的方法200。
方法200包括在步骤201从数据流解码待解码的整数值序列L(C)的整数值的数量。
方法200进一步包括在步骤202处从数据流解码预定位置的秩与整数值数量的整数四舍五入的一半之间的差y;以及在步骤203,基于差y和整数值的数量,计算预定位置z。
方法200包括在步骤204从数据流解码位于整数值序列的计算的预定位置z处的预定整数值,例如C[z]。
方法200进一步包括对位于预定位置之前的整数值序列中的每个位置执行以下解码步骤:在步骤205从数据流中解码紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的差d1,以及在步骤206通过线性组合第一差、紧接在相应位置后面处的整数值和1,计算相应位置处的整数值。
方法200进一步包括对位于预定位置之后的整数值序列的每个位置执行以下解码步骤:在步骤207从数据流中解码相应位置处的整数值与紧接在相应位置前面处的整数值之间的差值减1的差d2,以及在步骤208通过线性组合第二差、紧接在相应位置前面的整数值与1,计算相应位置处的整数值。
然而,应该注意的是,方法200可以可选地由本文公开的任何特性、功能和细节单独或组合地补充。
在下文中,描述了如何将整数值12的序列10编码到数据流14的几个实施例。整数值序列10可以是正常网络参数的量化级别的码本。在序列10中,整数值12可以以严格单调的方式排序。也就是说,它们可以按升序16或降序18排列,在序列10中没有整数值出现超过一次。
整数值12按照如下方式编码到数据流14中。在图3中通过哈希表示并且位于以下实施例中表示为z的预定位置处的预定整数值12通过使用,例如,在以下实施例中称为A3的可变长度码被编码到数据流14中。因此,对于预定的整数值,在数据流14中包括码字20。在默认情况下,位置z可以是默认已知的,或者,如以下实施例中所概述的,可以通过使用另一个可变长度码A2编码到数据流14中,从而最终变成码字22。同样地,序列10的大小,即其中整数值12的数量,可以是默认已知的,或者可以,如以下实施例中所概述的,编码到数据流14中,诸如通过使用下面的另一个称为A1的可变长度码,从而最终变成码字24。
此外,除预定值外的其余整数值12被编码到数据流14中。后面这些整数值12通过差的方式被编码到数据流14中。例如,位于预定位置上游的整数值12通过一方面这些后续整数值12中的每个和另一方面相应整数值的紧接前一个整数值的差被编码到数据流14中。该差被减1,并且可以通过使用另一个可变长度码A5被编码到数据流14中,从而对于在预定值之后的每个整数值12产生一个码字26。类似地,在预定值之前的每个整数值以相应整数值与紧接在相应整数值之后的整数值之间的差的形式被编码到数据流14中。如下面更详细地描述的,为了说明整数值以严格单调的方式在序列10中排序的事实,差被减1,并且每个差使用另一个可变长度码A4编码到数据流14中,从而导致用于序列10中预定的整数值之前的每个整数值的码字28。
对于如何计算差值,存在不同的可能性,使用该差值,计算预定整数值上游的整数值12和下游的整数值12。如下面的实施例所描述的,可以是差30的被减数被定位在差30的减数之后,基于差30对预定整数值之前的整数值12进行编码,并且同样可以应用于差32,使用该差32,在预定位置之后的整数值12被编码到数据流14中,即被减数可以被定位在减数之后。然而,这仅仅是示例,并且可以针对差值30和32或者仅在预定位置的一侧切换减数和被减数之间的顺序。
如图3所示,可以是由刚才概述的编码过程产生的码字按顺序编码到数据流14中,以便序列10的大小比预定整数值的位置集先被编码,然后是预定整数值,然后编码预定位置之前的整数值12,甚至后面是预定位置之后的整数值的码字26。然而,这只是一种可能性,并且例如,码字28和26可以以彼此相对交错的方式编码到数据流中。
如图3所示,解码器反转刚才关于图3概述的编码过程,这方面的细节在其他实施例中阐述。
在下文中,描述了用于在数据流(例如比特流)中对整数值序列进行编码的实施例,例如,在包含编码神经网络数据的比特流中(例如,在NNR比特流中)。整数值的编码序列的结构以伪代码的形式显示在表1中。
表1
Integer_codebook()的定义如下:
Figure BDA0004091890950000141
Figure BDA0004091890950000151
如表1所示,待被编码的整数值序列包含在向量integerCodebook中,其中它们以严格单调的方式排序。对于编码,编码器将预定的整数值codebook_zero_value编码到数据流中,该值位于整数值序列的预定位置cbZeroOffset处。在第一个for循环中首先对位于预定位置cbZeroOffset之前的整数值序列的位置进行编码。特别地,对于每个这样的位置j,当for循环朝着整数值序列的开始位置遍历这些位置时,计算紧接在相应位置后面处的整数值(这里存储在previousValue中)与相应位置处的整数值integerCodebook[j]之间的差值减去1的第一差,并且将第一差编码到数据流中,即codebook_delta_left=previousValue-integerCodebook[j]-1。然后,在第二for循环中首先对位于预定位置之后的整数值序列的位置进行编码。对于整数值序列的每个这样的位置,当for循环朝整数值序列的末尾遍历这些位置并在第二for循环之前用预定的整数值codebook_zero_value初始化,计算相应位置处的整数值integerCodebook[j]与紧接在相应位置前面处的整数值(这里存储在previousValue中)之间的差值减1的第二差,并将第二差编码到数据流中,即codebook_delta_right=integerCodebook[j]-previousValue-1。如前所述,编码差的顺序可以切换,或者甚至可以交错。为了解码整数值序列,从数据流解码位于整数值序列的预定位置cbZeroOffset处的预定整数值codebook_zero_value。然后,对于整数值序列中位于预定位置之前的每个位置,从数据流解码紧接在相应位置后的整数值与相应位置处的整数值之间的差值减去1的第一差,即codebook_delta_left=previousValue-integerCodebook[j]-1,并且对于整数值序列中位于预定位置之后的每个位置,从数据流解码相应位置处的整数值与紧接在相应位置之前处的整数值之间的差值减去1的第二差,即codebook_delta_right=integerCodebook[j]-previousValue-1。
更详细地说,整数值序列的整数值的数量也被编码到数据流中,即codebook_size。这使用可变长度码,即2阶指数哥伦布码完成。
关于整数值的编码序列的预定位置codebook_centre_offset的信息也可以被编码到数据流中。此编码相对于序列的中间位置是不同的。即,cbZeroOffset-(codebook_size>>1)=codebook_centre_offset被编码,即,预定位置的秩cbZeroOffset与整数值数量的整数四舍五入的一半,这里是舍入的一半,之间的差,即codebook_size>>1。这是使用可变长度码,即2阶指数哥伦布码完成的。
预定的整数值codebook_zero_value使用7阶指数哥伦布码进行编码。
第一和第二差使用k阶指数哥伦布码被编码,k作为codebook_egk被编码到数据流中。它被编码为4位无符号整数。
编码的整数值序列,例如码本,(integer_codebook)由变量cbZeroOffset和integerCodebook——整数值序列的预定位置,例如z,以及位于预定位置的预定整数值,例如C(z),定义。
定义序列(例如码本)的参数包括指数型哥伦布码参数,例如指数哥伦布码参数,例如k(codebook_egk)和整数值序列的整数值的数量,例如码本中的元素的数量(codebook_size)。这些参数从数据流,例如比特流中解码,用于创建解码的整数值序列。
预定位置(cbZeroOffset)是使用在比特流中编码的预定位置的秩与整数值数量的整数四舍五入的一半之间的差(codebook_centre_offset)计算的变量(codebook_centre_offset)。在实施例中,变量codebook_centre_offset被定义为第三差,例如y。变量codebook_centre_offset指定访问序列中整数值(例如,码本中的元素)相对于序列(例如,码本)的中心的偏移。差(codebook_centre_offset)从数据流,例如比特流中解码,用于创建解码的整数值序列。
定义编码的序列(例如,码本)的参数codebook_zero_value指定位于预定位置(cbZeroOffset)的预定整数值(integerCodebook),例如,位置cbZeroOffset处的码本的值。此参数涉及创建解码的整数值序列,例如变量码本(表示码本的阵列)。
在创建解码的序列时,从数据流,例如比特流中解码第一差(codebook_delta_left)和第二差(codebook_delta_right)。
第一差(codebook_delta_left)指定紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值,对于预定位置(cbZeroOffset)前面的整数值序列的每个位置,减去1,例如,对于中心位置左侧的值,码本值与其右邻值之间的差减去1。第一差(codebook_delta_left)涉及创建解码的整数值序列,例如变量码本(表示码本的阵列),如表1所示。对于预定位置(cbZeroOffset)之前的位置序列的每个位置,通过线性组合第一差(codebook_delta_left)、紧接在相应位置后面的整数值(previousValue=integerCodebook[j+1])和1来计算相应位置的整数值:
integerCodebook[j]=previousValue-codebook_delta_left-1。
第二差(codebook_delta_right)指定相应位置的整数值与紧接在相应位置前面的整数值之间的差,对于位于预定位置(cbZeroOffset)后面的整数值序列的每个位置,减1,例如,对于中心位置右侧的值,码本值与其左邻值之间的差减1。第二差涉及创建解码的整数值序列,例如变量码本(表示码本的阵列),如表1所示。对于位于预定位置(cbZeroOffset)之后的整数值序列的每个位置,通过线性组合第二差(codebook_delta_right)、紧接在相应位置前面的整数值(previousValue=integerCodebook[j-1])和1来计算相应位置的整数值:
integerCodebook[j]=previousValue+codebook_delta_right+1。
指数哥伦布码参数(codebook_egk)用于解码定义第一差的语法元素codebook_delta_left,以及定义第二差的codebook_delta_right。
然而,应该注意的是,如参考表1所描述的对整数值序列进行编码可以可选地由本文所公开的任何特征、功能和细节单独地或组合地补充。
综上所述,根据本发明的实施例提供了改进的压缩性能,从而提高了编码效率。
4.进一步实施例和方面
在下面,将描述根据本发明的进一步方面和实施例,其可以单独使用或与本文所公开的任何其他实施例组合使用。
此外,本节中公开的实施例可以可选地由本文公开的任何其他特征、功能和细节单独地或组合地补充。
进一步描述了根据本发明的实施例用于发信号通知用于数据压缩的码本的改进概念。
例如,根据本发明的本实施例描述了一种用于码本编码和解码的方法,该方法与现有技术的方法相比,可以实现压缩效率方面的改进。根据本发明的实施例可应用于涉及整数值的信令的任意数据压缩应用,例如神经网络参数的压缩。
考虑整数值序列W,它将通过使用码本有效地被编码。当W的元素之间只有少量不同的值时,这可能特别有效。例如,具有这种属性的W可以是伴有聚类中心的量化的著名的k-均值算法的输出。在这种情况下,聚类中心包括码本C。
码本C应该是升序的整数值序列,其中特定整数值最多可能出现一次。此外,设z是指向码本的第z个元素的整数偏移量,例如,可以理解为对等于或接近于零的码本值的偏移。
为了使用码本,W被转换为码本索引V的序列,以便W中的元素w_i等于位置z+v_i处的码本元素,其中v_i是V在位置i处的元素(第一位置是在i=0处)。
示例:
令C=[-20,-5,3,17],令z=2,令V=[-2,-2,1,0,-1]。那么W可以由C,z,V重建,产生序列[-20,-20,17,3,-5]。
在下面的实施例中,将描述根据本发明的实施例。
提出了用于编码和解码码本的有效方法,例如以严格单调方式排序的整数值序列表示的码本。当码本的元素(例如,如果整数值序列,则为整数值)以零为中心以及当z(例如,预定位置)优选地指向具有小幅度的值时,这可能特别有效。然而,当这些假设不适用时,它也可以工作。基本思想是先发信号通知位置z(例如预定的位置)处的元素,然后连续地只发信号通知相邻值之间的差,如下所示:
1.使用用于无符号整数值的代码A1,例如第一可变长度码,对码本的大小L(C),例如整数值序列的整数值,进行编码。
2.计算变量y=z-floor(L(C)/2),例如,预定位置的秩与整数值数量的整数四舍五入一半之间的第三差,并使用用于有符号整数值的代码A2,例如,第二可变长度码,对y,例如,第三差,进行编码。注意,当z指向接近码本中间的位置时,y很小。
3.使用用于有符号整数值的代码A3,例如,第四可变长度码,编码C[z],例如,预定的整数值。
4.对于每个位置i=z-1,i=z-2,...i=0,例如,在预定位置之前的整数值序列的位置,执行以下操作:
a.计算差d=C[i+1]-C[i]-1,例如,C[i+1]和C[i]之间的差值减去1的第一差(因为码本中相邻的值在大小上至少相差1)。
b.使用用于无符号整数值的代码A4,例如第六可变长度码,编码d,例如第一差。
5.对于每个位置i=z+1,i=z+2,…直到i=L(C)-1(其中L(C)是码本的长度),例如在预定位置之后的整数值序列的位置,执行以下操作:
a.计算差d=C[i]-C[i-1]-1,例如,C[i]和C[i-1]之间的差值减1的第二差(因为码本中的相邻值的大小至少相差1)。
b.使用用于无符号整数值的代码A5,例如第七可变长度码,编码d,例如第二差。
对应的解码方法如下:
1.使用用于无符号整数值的代码A1,例如,第一可变长度码,解码变量l,例如整数值的数量,并用长度为l的整数值的数量l初始化空码本,例如整数值序列,即码本L(C)的长度等于l。
2.使用用于有符号整数值的代码A2,例如第二可变长度码,解码变量y,例如第三差,并设置z,例如预定位置,为
floor(L(C)/2)+y。
3.使用用于有符号整数值的代码A3,例如第四可变长度码,解码C[z]的值,例如位于预定位置处的预定整数值,。
4.对于每个位置i=z-1,i=z-2,...i=0,例如,在预定位置之前的整数值序列的位置,执行以下操作:
a.使用用于无符号整数值的代码A4,例如,第六可变长度码,解码值d,例如第一差。
b.将C[i]设置为C[i+1]-d-1。
5.对于每个位置i=z+1,i=z+2,...直到i=L(C)-1(其中L(C)为码本的长度),例如,预定位置后面的整数值序列的位置,执行以下操作:
a.使用用于无符号整数值的代码A5,例如,第七可变长度码,解码值d,例如第二差。
b.将C[i]设置为C[i-1]+d+1。
例如,代码A1至A5可以是固定长度码或将较短的码字分配给具有较小大小的整数的代码。上述编码和解码方法的优点是,用代码A1到A5编码的值倾向于具有较小的幅度,从而导致较短的比特流。
例如,著名的指数哥伦布码可用于此目的,其中相关的指数哥伦布参数k控制对不同大小的编码值的码长分配。在这种情况下,参数k要么是预先确定的值,要么在比特流中被标志。在较大的码本的情况下,用信号通知代码A4和A5的指数哥伦布参数信号以便优化码长度以适应待编码值的分布可能是有益的。另一方面,对于代码A1、A2和A3使用预定的指数哥伦布参数k可能更有效,因为每个码本只编码一个值。
例如,可以将4位的值写入比特流,指示0到15之间的整数,该整数应为代码A4和A5的指数哥伦布参数k。
在另一个示例中,用于有符号整数的编码的著名DeepCABAC方案可用于代码A1到A5的任何一个。可选地,在无符号代码的情况下,DeepCabac的sign_flag不被编码。而是,它在编码器和解码器中总是被假设为0(指示正值)。
示例性配置
在示例性配置中,根据本发明的实施例应用于与神经网络的参数相关联的码本的编码。
例如,在编码器中,通过聚类算法(如k均值)生成码本。然后,采用涉及步长参数(例如浮点值)的均匀重构量化,将码本中的值量化为整数。
接下来,量化码本值被按升序排序,并删除潜在的重复值。
接下来,采用根据本发明的本实施例的方案对量化码本进行编码,并巧妙地选择整数偏移z。
接下来,将(待被编码的)参数转换为码本索引,并且使用著名的DeepCABAC方案对这些码本索引进行编码。
注意,例如,整数偏移z的巧妙选择可以是最小化通过码本的编码产生的位和相关联的DeepCABAC编码的码本索引的和的结果。
例如,步长可以是从第一有符号整数量化参数QP和第二无符号整数参数qp_density得出的浮点值,其中QP和/或qp_density是预定值,或者在比特流中被信号通知。
例如,步长“stepSize”可以通过以下公式计算:
mul=(1<<qp_density)+(QP&((1<<qp_density)–1))
shift=QP>>qp_density
stepSize=mul*2shift–qp_density
在解码器中,从比特流解码码本和码本索引。解码的码本索引首先被重构为量化的码本元素(通过使用码本作为具有整数偏移z的查找表),然后使用步长对它们重构(例如,重构为浮点值),产生重构的神经网络参数。
例如,神经网络参数可以是权重、偏差、批量范数参数等。
优选实施例
在优选实施例中,代码A1至A5是将较短的码字分配给具有较小幅度的整数的可变长度码。
在另一个优选实施例中,代码A2或代码A3是这样的代码:首先根据映射规则M将有符号整数s映射为无符号整数u,然后分别使用代码A6或A7对无符号整数u进行编码。
在另一个优选实施例中,映射规则M根据以下等式将有符号整数s映射为无符号整数u:
若s<=0:u=-s*2,
否则(s>0):u=s*2 -1
对应的逆映射(在解码器中使用)如下给出:
若u is偶数((u&1)==0):s=-u/2,
否则((u&1)!=0):s=(u+1)/2
在另一个优选实施例中,代码A4和A5相同。
在另一个优选实施例中,代码A1或代码A4或代码A5或代码A6或代码A7是k阶的指数哥伦布码。
注意,用于编码无符号整数u的k阶指数哥伦布码如下给出:
    while u>=(1<<k)
{
writeBits(1,0)
u-=1<<k
k+=1
    }
     writeBits(1,1)
writeBits(k,u)
函数writeBits(n,x)将无符号整数x的n个最低有效位写入比特流中。
在另一个优选实施例中,在比特流中信号通知一些或全部涉及的指数哥伦布码的参数k。
在另一个优选实施例中,代码A1至A7中的一个或多个采用算术编码。
在另一个优选实施例中,代码A1、A6和A7分别为2、2和7阶的指数哥伦布码。
在根据上述优选实施例的另一个优选实施例中,代码A4和A5是相同阶数k的指数哥伦布码,并且k在比特流中作为允许值0<=k<16的4位无符号整数被发信号通知。
在另一个优选实施例中,代码A4和A5是7阶的指数哥伦布码。
总之,根据本发明的实施例提供了压缩性能和视觉质量以及低编码时延之间的改进权衡,从而导致改进的编码效率。一些实施例还提供附加的编码效率。
例如,在“介绍”、“样本自适应偏移”、“PSAO的分类”、“解码器”、“编码器”和“一些注释”章节中描述了不同的发明实施例和方面,其中“样本自适应偏移”章节中的特征、功能和细节可以可选地引入到任何其他实施例中。
然而,任何其他章节中描述的特征、功能和细节也可以可选地引入到根据本发明的实施例中。
此外,上述章节中描述的实施例可以单独使用,也可以由其他章节中的任何特征、功能和细节进行补充。
此外,应该注意的是,本文所描述的各个方面可以单独使用,也可以组合使用。因此,细节可以添加到所述各个方面的每一个,而无需添加细节到所述方面的另一个。
具体地说,权利要求书中还描述了实施例。权利要求中描述的实施例可以可选地由在本文所述的任何特征、功能和细节单独地和组合地加以补充。
还应注意,本公开显式或隐式描述了在视频编码器(用于提供输入视频信号的编码表示的装置)和视频解码器(用于基于视频信号的编码表示提供视频信号的解码表示的装置)中可用的特征。因此,本文所描述的任何特征可以在视频编码器的上下文中和视频解码器的上下文中使用。
此外,本文所公开的与方法有关的特征和功能也可以用于装置(配置为执行此类功能)中。此外,本文公开的关于装置的任何特征和功能也可以用于相应的方法。换句话说,本文所公开的方法可以由关于装置所描述的任何特性和功能来补充。
此外,本文描述的任何特性和功能可以在硬件或软件中实现,或者使用硬件和软件的组合实现,如“实现替代方案”的章节所述。
实现替代方案
虽然有些方面是在装置的上下文中描述的,但很明显,这些方面也表示相应方法的描述,其中块或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的方面也表示相应装置的相应块或项目或特征的描述。方法步骤的一些或全部可由(或使用)硬件装置执行,例如,微处理器、可编程计算机或电子电路。在一些实施例中,可以通过这样的装置执行一个或多个最重要的方法步骤。
根据一定的实施要求,本发明的实施例可以在硬件中实现,也可以在软件中实现。该实现可以使用数字存储介质执行,例如软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或FLASH存储器,其上存储有电子可读控制信号,该数字存储介质与可编程计算机系统协作(或能够协作)以执行相应的方法。因此,数字存储介质可以是计算机可读的。
根据本发明的一些实施例包括具有电子可读控制信号的数据载体,该控制信号能够与可编程计算机系统协作,从而执行本文所述的方法之一。
通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,当计算机程序产品在计算机上运行时,该程序代码为执行方法之一而可操作。例如,程序代码可以存储在机器可读的载体上。
其他实施例包括用于执行本文所述方法之一的计算机程序,该计算机程序存储在机器可读载体上。
换句话说,因此,本发明方法的实施例是具有当计算机程序在计算机上运行时用于执行本文所述方法之一的程序代码的计算机程序。
因此,本发明方法的进一步实施例是数据载体(或数字存储介质,或计算机可读介质),包括其上记录有用于执行本文所述方法之一的计算机程序。数据载体、数字存储介质或记录介质通常是有形的和/或非暂时性的。
因此,本发明方法的进一步实施例是表示用于执行本文所述方法之一的计算机程序的数据流或信号序列。例如,数据流或信号序列可以被配置为经由数据通信连接传送,例如经由互联网传送。
进一步实施例包括处理装置,例如计算机或可编程逻辑器件,其被配置为或适应于执行本文所述的方法之一。
进一步实施例包括在其上安装用于执行本文所述方法之一的计算机程序的计算机。
根据本发明的进一步实施例包括被配置为将用于执行本文所述方法之一的计算机程序(例如,电子或光学)传送到接收器的装置或系统。例如,接收器可以是计算机、移动设备、存储设备等。例如,装置或系统可以包括用于将计算机程序传送到接收器的文件服务器。
在一些实施例中,可编程逻辑器件(例如现场可编程门阵列)可用于执行本文所述方法的一些或全部功能。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文所述的方法之一。通常,方法最好由任何硬件装置来执行。
此处所述的装置可以使用硬件装置或使用计算机,或使用硬件装置和计算机的组合来实现。
本文所述的装置,或本文所述装置的任何组件,可以至少部分地在硬件和/或软件中实现。
本文所述的方法可以使用硬件装置或使用计算机,或使用硬件装置和计算机的组合来执行。
本文所述的方法,或本文所述装置的任何组件,可以至少部分地通过硬件和/或软件来实现。
本文所描述的实施例仅仅是对本发明的原理的说明。可以理解的是,本文所述的布置和细节的修正和变化将对本领域技术人员的其他人是显而易见的。因此,其意图仅受即将到来的专利权利要求的范围的限制,而不受通过本文实施例的描述和解释的方式所呈现的具体细节的限制。

Claims (120)

1.一种用于将按严格单调方式排列的整数值序列编码到数据流的装置,所述装置被配置为:
将位于整数值序列的预定位置(z)处的预定整数值(C[z])编码(104)到数据流中;以及
对于在预定位置(z)之前的整数值序列的每个位置,
计算(105)紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差;以及
将第一差编码(106)到数据流中;以及
对于位于预定位置之后的整数值序列的每个位置,
计算(107)相应位置处的整数值与紧接相应位置之前处的整数值之间的差值减1的第二差;以及
将第二差编码(108)到数据流中。
2.根据权利要求1所述的装置,被配置为将整数值序列的整数值的数量编码(101)到数据流中。
3.根据权利要求2所述的装置,被配置为使用第一可变长度码[A1]将整数值序列的整数值的数量编码到数据流中。
4.根据权利要求2所述的装置,被配置为使用指数哥伦布码将整数值序列的整数值的数量编码到数据流中。
5.根据权利要求4所述的装置,被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
6.根据权利要求4所述的装置,其中指数哥伦布码的指数哥伦布码参数为值2。
7.根据权利要求2至6中任何一项所述的装置,被配置为通过使用第一二值化码将数量二值化为一个或多个第一二进制位的第一二进制字符串,并对一个或多个第一二进制位进行上下文自适应二进制算术编码,而将整数值序列的整数值的数量编码到数据流中。
8.根据上述权利要求中任何一项所述的装置,被配置为将表明预定位置的信息编码到数据流中。
9.根据上述权利要求中任何一项所述的装置,被配置为在整数值序列内的数个位置中选择预定位置,并从数个位置中选择满足预定标准的位置作为预定位置。
10.根据权利要求9所述的装置,其中预定的标准是用于将整数值序列编码到数据流中的最低比特率。
11.根据上述权利要求中任何一项所述的装置,其中装置被配置为
计算(102)预定位置的秩与整数值的数量的整数四舍五入的一半之间的第三差,以及
将第三差编码(103)到数据流中。
12.根据权利要求11所述的装置,被配置为通过使用第二可变长度码[A2]将第三差编码到数据流中。
13.根据权利要求11所述的装置,被配置为使用指数哥伦布码将第三差编码到数据流中。
14.根据权利要求13所述的装置,被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
15.根据权利要求11所述的装置,被配置为通过以下将第三差编码到数据流中:
根据预定义的映射规则将第三差映射到第一无符号整数;以及
使用第三可变长度码[A6]对第一无符号整数进行编码。
16.根据权利要求15所述的装置,配置为使用指数哥伦布码将无符号整数编码到数据流中。
17.根据权利要求16所述的装置,配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
18.根据权利要求16所述的装置,其中指数哥伦布码的指数哥伦布码参数为值2。
19.根据权利要求15至18中任何一项所述的装置,其中映射规则将有符号整数映射到无符号整数,使得小于0的有符号整数和大于0的有符号整数分别映射到偶数无符号整数和奇数无符号整数的单独一个上,并将0映射到0,并且使得,对于每个无符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
20.根据权利要求15至18中任何一项所述的装置,其中映射规则根据以下将有符号整数Is映射为无符号整数Iu:
若Is≤0→Iu=-Is*2,
若Is>0→Iu=Is*2-1.
21.根据权利要求11至20中任何一项所述的装置,被配置为通过使用第二二值化码将数量二值化为具有一个或多个第二二进制位的第二二进制字符串,并对一个或多个第二二进制位进行上下文自适应二进制算术编码,而将第三差编码到数据流中。
22.根据上述权利要求中任何一项所述的装置,被配置为通过使用第四可变长度码[A3]将预定的整数值编码到数据流中。
23.根据上述权利要求中任何一项所述的装置,被配置为通过使用指数哥伦布码将预定的整数值编码到数据流中。
24.根据权利要求23所述的装置,被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
25.根据上述权利要求中任何一项所述的装置,被配置为通过以下将预定的整数值编码到数据流中:
根据另一预定义的映射规则将预定的整数值映射到第二无符号整数;以及
使用第五可变长度码[A7]对第二无符号整数进行编码。
26.根据权利要求25所述的装置,被配置为通过使用指数哥伦布码将无符号整数编码到数据流中。
27.根据权利要求26所述的装置,被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
28.根据权利要求26所述的装置,其中指数哥伦布码的指数哥伦布码参数为值7。
29.根据权利要求25至28中任何一项所述的装置,其中映射规则将有符号整数映射到无符号整数,使得小于0的有符号整数和大于0的有符号整数分别被映射到偶数无符号整数和奇数无符号整数的单独一个上,并将0映射到0,并且使得,对于每个无符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
30.根据权利要求25至28中任何一项所述的装置,其中映射规则根据以下将有符号整数Is映射为无符号整数Iu:
若Is≤0→Iu=-Is*2,
若Is>0→Iu=Is*2-1.
31.根据权利要求1至24中任何一项所述的装置,被配置为通过使用第三二值化码将数量二值化为一个或多个第三二进制位的第三二进制字符串和对一个或多个第三二进制位进行上下文自适应二进制算术编码,而将预定整数值编码到数据流中。
32.根据上述权利要求中任何一项所述的装置,被配置为通过使用第六可变长度码[A4]将第一差编码到数据流中。
33.根据上述权利要求中任何一项所述的装置,被配置为使用指数哥伦布码将第一差编码到数据流中。
34.根据权利要求33所述的装置,被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
35.根据权利要求34所述的装置,其中指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
36.根据权利要求33至35中任何一项所述的装置,其中指数哥伦布码的指数哥伦布码参数为值7。
37.根据上述权利要求中任何一项所述的装置,被配置为通过使用第二二值化码将数量二值化为一个或多个第四二进制位的第四二进制字符串和对一个或多个第四二进制位进行上下文自适应二进制算术编码来将第一差编码到数据流中。
38.根据上述权利要求中任何一项所述的装置,被配置为通过使用第七可变长度码[A5]将第二差编码到数据流中。
39.根据上述权利要求中任何一项所述的装置,被配置为通过使用指数哥伦布码将第二差编码到数据流中。
40.根据权利要求39所述的装置,被配置为将指数哥伦布码的指数哥伦布码参数编码到数据流中。
41.根据权利要求40所述的装置,其中指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
42.根据权利要求39所述的装置,其中指数哥伦布码的指数哥伦布码参数为值7。
43.根据权利要求39所述的装置,其中用于编码第二差的指数哥伦布码的指数哥伦布码参数与用于编码第一差的指数哥伦布码的指数哥伦布码参数相同。
44.根据权利要求43所述的装置,其中用于编码第一差和第二差的指数哥伦布码的指数哥伦布码参数与用于将预定整数值编码到数据流中的指数哥伦布码的指数哥伦布码参数相同。
45.根据上述权利要求中任何一项所述的装置,被配置为通过使用第二二值化码将数量二值化为一个或多个第五二进制位的第五二进制字符串和对一个或多个第五二进制位进行上下文自适应二进制算术编码来将第二差编码到数据流中。
46.根据上述权利要求中任何一项所述的装置,被配置为经由聚类算法获取整数值序列。
47.根据上述权利要求中任何一项所述的装置,其中整数值序列是与神经网络的参数相关联的码本。
48.根据权利要求47所述的装置,其中参数包括神经网络的权重、偏差和批量范数参数中的一个或多个。
49.根据上述权利要求中任何一项所述的装置,被配置为通过将多个浮点值量化到由整数值序列和浮点量化参数定义的一组量化级别上来获取整数值序列。
50.根据权利要求49所述的装置,被配置为对于多个浮点值中的每个,将量化索引编码到数据流中,
量化索引指向整数值序列中的相关整数值,根据浮点量化参数,所述相关整数值与相应浮点值被量化到其上的量化级别相关联。
51.根据权利要求49和50中任何一项所述的装置,其中浮点量化参数包括第一有符号整数量化参数和第二无符号整数参数。
52.根据权利要求51所述的装置,被配置为将第一无符号整数量化参数编码到数据流中,并且其中第二无符号整数参数是固定值,或者所述装置被配置为从另一个整数值序列或整数值序列集继承第二无符号整数参数。
53.根据权利要求51所述的装置,被配置为将第一有符号整数量化参数和第二无符号整数参数编码到数据流中。
54.根据权利要求49所述的装置,被配置为
以整数值序列内相关整数值的位置的第一秩与预定位置的秩的秩差的形式将量化索引编码到数据流中。
55.根据权利要求54所述的装置,被配置为通过使用第八可变长度码将秩差编码到数据流中。
56.根据权利要求54所述的装置,被配置为通过使用指数哥伦布码将秩差编码到数据流中。
57.根据权利要求54至56中任何一项所述的装置,被配置为通过使用二值化码将数量二值化为一个或多个二进制位的二进制字符串以及对一个或多个二进制位进行上下文自适应二进制算术编码来将秩差编码到数据流中。
58.根据上述权利要求中任何一项所述的装置,被配置为将浮点量化参数编码到数据流中,用于通过应用浮点量化参数从整数值序列中获得量化级别。
59.根据权利要求58所述的装置,其中浮点量化参数定义量化级别之间的量化步长。
60.一种用于从数据流解码以严格单调方式排序的整数值序列的装置,所述装置被配置为
从数据流解码(204)位于整数值序列的预定位置(z)处的预定整数值(C[z]);以及
对于在预定位置之前的整数值序列中的每个位置,
从数据流解码(205)紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差;以及
对于位于预定位置之后的整数值序列中的每个位置,
从数据流解码(207)相应位置处的整数值与紧接相应位置之前处的整数值之间的差值减1的第二差。
61.根据权利要求60所述的装置,被配置为从数据流解码(201)整数值序列的整数值的数量。
62.根据权利要求61所述的装置,被配置为通过使用第一可变长度码[A1]从数据流解码整数值序列的整数值的数量。
63.根据权利要求61所述的装置,被配置为使用指数哥伦布码从数据流解码整数值序列的整数值的数量。
64.根据权利要求63所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
65.根据权利要求63所述的装置,其中指数哥伦布码的指数哥伦布码参数为值2。
66.根据权利要求61至63中任何一项所述的装置,被配置为经由第一二值化码从一个或多个第一二进制位的第一二进制字符串中对数量进行去二值化,并从数据流中对一个或多个第一二进制位进行上下文自适应二进制算术解码,来从数据流中解码整数值序列的整数值的数量。
67.根据权利要求60所述的装置,被配置为从数据流解码表明预定位置的信息。
68.根据权利要求60至67中任何一项所述的装置,被配置为,
对于在预定位置之前的位置序列中的每个位置,
通过线性组合第一差、紧接在相应位置后面的整数值和1,计算(206)相应位置处的整数值;以及
对于位于预定位置之后的位置序列中的每个位置,
通过线性组合第二差、紧接在相应位置之前的整数值和1,计算(208)相应位置处的整数值。
69.根据权利要求60至68中任何一项所述的装置,其中装置被配置为
从数据流解码(202)预定位置的秩与整数值的数量的整数四舍五入的一半之间的第三差;以及
基于第三差和整数值的数量计算(203)预定位置。
70.根据权利要求69所述的装置,被配置为经由第二可变长度码[A2]从数据流解码第三差。
71.根据权利要求69所述的装置,被配置为经由指数哥伦布码从数据流解码第三差。
72.根据权利要求71所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
73.根据权利要求69所述的装置,被配置为通过以下从数据流解码第三差:
使用第三可可变长度码解码第一无符号整数[A6],以及
根据预定义的逆映射规则,通过从第一无符号整数逆映射来检索第三差。
74.根据权利要求73所述的装置,被配置为通过使用指数哥伦布码从数据流解码无符号整数。
75.根据权利要求74所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
76.根据权利要求74所述的装置,其中指数哥伦布码的指数哥伦布码参数为值2。
77.根据权利要求73所述的装置,其中逆映射规则将无符号整数映射到有符号整数,使得偶数无符号整数和奇数无符号整数分别映射到小于0的有符号整数和大于0的有符号整数的单独一个,并将0映射到0,以及使得,对于每个有符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
78.根据权利要求77所述的装置,其中逆映射规则根据以下将无符号整数Iu映射为有符号整数Is:
Figure FDA0004091890940000101
Figure FDA0004091890940000102
79.根据权利要求69至78中任何一项所述的装置,被配置为通过经由第二二值化码从一个或多个第二二进制位的第二二进制字符串对数量进行去二值化并对一个或多个第二二进制位进行上下文自适应二进制算术解码来从数据流解码第三差。
80.根据权利要求60至79中任何一项所述的装置,被配置为经由第四可变长度码[A3]从数据流解码预定整数值。
81.根据权利要求60至80中任何一项所述的装置,被配置为经由指数哥伦布码从数据流解码预定整数值。
82.根据权利要求81所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
83.根据权利要求60至82中任何一项所述的装置,被配置为通过以下从数据流解码预定整数值:
经由第五可变长度码[A7]解码第二无符号整数;以及
根据另一预定义的逆映射规则,通过从第二无符号整数的逆映射,检索预定整数值。
84.根据权利要求83所述的装置,被配置为使用指数哥伦布码从数据流解码无符号整数。
85.根据权利要求84所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
86.根据权利要求84所述的装置,其中指数哥伦布码的指数哥伦布码参数为值7。
87.根据权利要求83到86中任何一项所述的装置,其中逆映射规则将无符号整数映射到有符号整数,使得偶数无符号整数和奇数无符号整数分别映射到小于0的有符号整数和大于0的有符号整数的单独一个,并将0映射到0,以及使得,对于每个有符号整数,映射到相应无符号整数的第一有符号整数在大小上大于或等于映射到相应的无符号整数后面的无符号整数的第二有符号整数。
88.根据权利要求83至86中任何一项所述的装置,其中逆映射规则根据以下将无符号整数Iu映射为有符号整数Is:
Figure FDA0004091890940000121
Figure FDA0004091890940000122
89.根据权利要求60至81中任何一项所述的装置,被配置为通过使用第三二值化码从一个或多个第三二进制位的第三二进制字符串中对数量进行去二值化,并对一个或多个第三二进制位进行上下文自适应二进制算术解码来从数据流解码预定整数值。
90.根据权利要求60至89中任何一项所述的装置,被配置为通过使用第六可变长度码[A4]将第一差编码到数据流中。
91.根据权利要求60至90中任何一项所述的装置,被配置为经由指数哥伦布码从数据流解码第一差。
92.根据权利要求91所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
93.根据权利要求92所述的装置,其中指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
94.根据权利要求91所述的装置,其中指数哥伦布码的指数哥伦布码参数为值7。
95.根据权利要求60至94中任何一项所述的装置,被配置为通过使用第二二值化码从一个或多个第四二进制位的第四二进制字符串中对数量进行去二值化并对一个或多个第四二进制位进行上下文自适应二进制算术解码,来从数据流解码第一差。
96.根据权利要求60至95中任何一项所述的装置,被配置为经由第七可变长度码[A5]从数据流解码第二差。
97.根据权利要求60至96中任何一项所述的装置,配置为经由指数哥伦布码从数据流解码第二差。
98.根据权利要求97所述的装置,被配置为从数据流解码指数哥伦布码的指数哥伦布码参数。
99.根据权利要求98所述的装置,其中指数哥伦布码参数是0到15的范围内的值中的一个,并作为4位无符号整数被编码到数据流中。
100.根据权利要求97所述的装置,其中指数哥伦布码的指数哥伦布码参数为值7。
101.根据权利要求98至100中任何一项所述的装置,其中用于解码第二差的指数哥伦布码的指数哥伦布码参数与用于解码第一差的指数哥伦布码的指数哥伦布码参数相同。
102.根据权利要求101所述的装置,其中用于解码第一差和第二差的指数哥伦布码的指数哥伦布码参数与用于从数据流解码预定整数值的指数哥伦布码的指数哥伦布码参数相同。
103.根据权利要求60至102中任何一项所述的装置,被配置为通过经由第二二值化码从一个或多个第五二进制位的第五二进制字符串对数量进行去二值化并对一个或多个第五二进制位进行上下文自适应二进制算术解码来从数据流解码第二差。
104.根据权利要求60至103中任何一项所述的装置,被配置为将去聚类算法应用于解码的整数值序列。
105.根据权利要求60至104中任何一项所述的装置,其中整数值序列是与神经网络的参数相关联的码本。
106.根据权利要求105所述的装置,其中参数包括神经网络的权重、偏差和批量范数参数中的一个或多个。
107.根据权利要求60至106中任何一项所述的装置,被配置为从由整数值序列和浮点量化参数定义的一组量化级别将解码的整数值序列重构为多个浮点值。
108.根据权利要求107所述的装置,被配置为
从对于多个浮点值中的每一个,从数据流解码量化索引,
量化索引指向整数值序列中的相关整数值,所述相关整数值根据浮点量化参数与相应浮点值被量化到的量化级别相关联。
109.根据权利要求107和108中任何一项所述的装置,其中浮点量化参数包括第一有符号整数量化参数和第二无符号整数参数。
110.根据权利要求109所述的装置,其中被配置为将第一有符号整数量化参数编码到数据流中,并且其中第二无符号整数参数是固定值或所述装置被配置为从另一个整数值序列或整数值序列集继承第二无符号整数参数。
111.根据权利要求109所述的装置,被配置为将第一有符号整数量化参数和第二无符号整数参数编码到数据流中。
112.根据权利要求108所述的装置,被配置为基于整数值序列中相关整数值的位置的第一秩和预定位置的秩的秩差从数据流解码量化索引。
113.根据权利要求108所述的装置,被配置为经由第八可变长度码从数据流解码秩差。
114.根据权利要求108所述的装置,被配置为经由指数哥伦布码从数据流解码秩差。
115.根据权利要求108至113中任何项所述的装置,被配置为通过使用二值化码从一个或多个二进制位的二进制字符串对数量进行去二值化并对一个或多个二进制位进行上下文自适应二进制算术解码,来从数据流解码秩差。
116.根据权利要求60至115中任何一项所述的装置,被配置为从数据流解码浮点量化参数,用于通过应用浮点量化参数从量化级别重构整数值序列。
117.根据权利要求116所述的装置,其中浮点量化参数定义量化级别之间的量化步长。
118.一种用于将按严格单调方式排列的整数值序列编码到数据流中的方法,包括:
将位于整数值序列的预定位置(z)处的预定整数值(C[z])编码到数据流中;以及
对于在预定位置(z)之前的整数值序列中的每个位置,
计算紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差;以及
将第一差值编码到数据流中;以及
对于位于预定位置之后的整数值序列中的每个位置,
计算相应位置处的整数值与紧接相应位置之前处的整数值之间的差值减1的第二差;以及
将第二差值编码到数据流中。
119.一种用于从数据流解码以严格的单调方式排序的整数值序列的方法,包括
从数据流解码位于整数值序列的预定位置(z)处的预定整数值(C[z]);以及
对于在预定位置之前的整数值序列中的每个位置,
从数据流解码紧接在相应位置后面处的整数值与相应位置处的整数值之间的差值减1的第一差;以及
对于位于预定位置之后的整数值序列中的每个位置,
从数据流解码相应位置处的整数值与紧接相应位置之前处的整数值之间的差值减1的第二差。
120.一种具有程序代码的计算机程序,用于在计算机上运行时,执行根据权利要求118至119中任何一项所述的方法。
CN202180052109.8A 2020-06-23 2021-06-23 用于对整数值序列进行编码和解码的装置,用于对整数值序列进行编码和解码的方法以及用于实现这些方法的计算机程序 Pending CN116018758A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20181776 2020-06-23
EP20181776.4 2020-06-23
PCT/EP2021/067217 WO2021260046A1 (en) 2020-06-23 2021-06-23 Apparatuses for encoding and decoding a sequence of integer values, methods for encoding and decoding a sequence of integer values and computer program for implementing these methods

Publications (1)

Publication Number Publication Date
CN116018758A true CN116018758A (zh) 2023-04-25

Family

ID=71138608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180052109.8A Pending CN116018758A (zh) 2020-06-23 2021-06-23 用于对整数值序列进行编码和解码的装置,用于对整数值序列进行编码和解码的方法以及用于实现这些方法的计算机程序

Country Status (6)

Country Link
US (1) US20230117869A1 (zh)
EP (1) EP4169166A1 (zh)
JP (1) JP2023533223A (zh)
KR (1) KR20230026422A (zh)
CN (1) CN116018758A (zh)
WO (1) WO2021260046A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363225B2 (en) * 2005-06-23 2008-04-22 Microsoft Corporation Compressing language models with Golomb coding

Also Published As

Publication number Publication date
JP2023533223A (ja) 2023-08-02
US20230117869A1 (en) 2023-04-20
WO2021260046A1 (en) 2021-12-30
EP4169166A1 (en) 2023-04-26
KR20230026422A (ko) 2023-02-24

Similar Documents

Publication Publication Date Title
US7746249B2 (en) Method and apparatus for encoding and decoding key data
TWI658702B (zh) 資料編碼及解碼
KR100561875B1 (ko) 위치 인터폴레이터 복호화 방법 및 장치
US7336713B2 (en) Method and apparatus for encoding and decoding data
KR100489908B1 (ko) 디지탈정보신호부호화방법및장치
KR930024507A (ko) 영상데이타의 가변장부호화/복호화방법 및 장치
US7304590B2 (en) Arithmetic decoding apparatus and method
EP3550726B1 (en) Methods and devices for reducing sources in binary entropy coding and decoding
KR20190079689A (ko) 움직임 벡터 차분값의 엔트로피 코딩
KR20110037898A (ko) 멀티미디어 서명 코딩 및 디코딩
CN100423582C (zh) 一种用于将待编码数据进行二进制化编码的方法和装置
US11475600B2 (en) Method and device for digital data compression
CN112398484A (zh) 一种编码方法及相关设备
CN115087988A (zh) 用于编码神经网络参数的构思
JP4163680B2 (ja) コードワードインデックスに対してパラメータ値のマッピングを行うための適応型方法およびシステム
US20200186583A1 (en) Integer Multiple Description Coding System
CN104380733A (zh) 视频量化参数编码方法、视频量化参数解码方法、设备、以及程序
US20180205952A1 (en) Method and apparatus for performing arithmetic coding by limited carry operation
CN116018758A (zh) 用于对整数值序列进行编码和解码的装置,用于对整数值序列进行编码和解码的方法以及用于实现这些方法的计算机程序
CN112262578B (zh) 点云属性编码方法和装置以及点云属性解码方法和装置
RU2765654C9 (ru) Способ и устройство для сжатия цифровых данных
CN100413343C (zh) 一种用于二进制化解码得到解码数据值的方法和装置
CN117917857A (zh) 非迭代熵编码
Mihalík et al. Solutions of image coding problems
GB2465809A (en) Data compression using a predictor filter and a plurality of variable-length codes selected based on the proportion of zeros in the data

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