CN108391129B - 数据编码方法及装置 - Google Patents

数据编码方法及装置 Download PDF

Info

Publication number
CN108391129B
CN108391129B CN201810379378.5A CN201810379378A CN108391129B CN 108391129 B CN108391129 B CN 108391129B CN 201810379378 A CN201810379378 A CN 201810379378A CN 108391129 B CN108391129 B CN 108391129B
Authority
CN
China
Prior art keywords
encoded
data
bit
value
coding
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.)
Active
Application number
CN201810379378.5A
Other languages
English (en)
Other versions
CN108391129A (zh
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.)
Xian Wanxiang Electronics Technology Co Ltd
Original Assignee
Xian Wanxiang Electronics Technology Co 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 Xian Wanxiang Electronics Technology Co Ltd filed Critical Xian Wanxiang Electronics Technology Co Ltd
Priority to CN201810379378.5A priority Critical patent/CN108391129B/zh
Publication of CN108391129A publication Critical patent/CN108391129A/zh
Application granted granted Critical
Publication of CN108391129B publication Critical patent/CN108391129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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

Abstract

本公开提供一种数据编码方法及装置,涉及数据处理领域,能够解决现有Cabac单比特编码速率低的问题,提高编码效率。具体技术方案为:获取N比特待编码数据;获取N比特待编码数据中每个待编码数据的概率状态值;根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间长度值和对应的归一化次数;根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。本发明用于多比特数据编码。

Description

数据编码方法及装置
技术领域
本公开涉及数据处理领域,尤其涉及数据编码方法及装置。
背景技术
Cabac(Context-based Adaptive Binary Arithmetic Coding,基于上下文的自适应二进制算术编码)编码是一种广泛应用于图像处理、云计算的海量数据处理的编码技术,其主要思想是用区间0到1上的一个实数表示整个输入的码流,而不是为输入码流中的每一个字符都指定一个码字。算术编码使用层层递进的方式为输入的整个码流寻找这个码字,它从输入的第一个符号开始确定初始区间(0到1)中的一个子区间,作为编码下一个字符的当前区间,在编码一个新的字符时根据各个字符出现的概率递归地划分当前区间,将当前区间划分成若干子区间,将当前编码字符对应的子区间取出,作为新的编码区间,依此类推,编码完最后一个字符就得到了最终区间,在最终区间中任意挑选一个实数作为输出,这样,可以大幅度的降低数据的存储空间,提升数据传输的吞吐率。但目前Cabac编码大多采用单比特编解码,即一个时钟周期只能编码1bit数据,编码速度低。
发明内容
本公开实施例提供一种数据编码方法及装置,能够解决现有Cabac单比特编码速率低的问题,提高编码效率。所述技术方案如下:
根据本公开实施例的第一方面,提供一种数据编码方法,该方法包括:
获取N比特待编码数据;
获取N比特待编码数据中每个待编码数据的概率状态值;
根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数;
根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;
根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。
该方法对N比特待编码数据同时进行编码,在编码过程中,通过查询的方式快速得到N比特待编码数据的编码码流,能够解决现有Cabac单比特编码速率低的问题,提高编码效率。
在一个实施例中,获取N比特待编码数据中每个待编码数据的概率状态值包括:
获取N比特待编码数据中每个待编码数据的上下文索引值;
根据每个待编码数据的上下文索引值,从预设概率状态表中查询得到每个待编码数据的概率状态值。
根据每个待编码数据的上下文索引值,在预设概率状态表中进行查询,得到每个待编码数据对应的概率状态值。通过查表的方式能够快速的获取概率状态值,提高编码效率。
在一个实施例中,根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间值,获取每个待编码数据的编码区间信息包括:
根据每个待编码数据的概率状态值,从预设区间信息表中获取得到每个待编码数据的编码区间集合,编码区间集合中包括四的编码区间长度值和对应的归一化次数;
根据第i-1比特位的待编码数据的编码区间长度值,从第i比特位待编码数据对应的编码区间集合中选取第i比特位待编码数据的编码区间信息,其中,1≤i≤N且i为整数。
根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间值,通过查询的方式能够快速获取每个待编码数据的编码区间信息,提高编码效率。
在一个实施例中,根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值包括:
判断每个比特位待编码数据的符号类型;
在第i比特位待编码数据的符号类型为小概率符号时,根据第i比特位待编码数据的编码区间长度值和第i-1比特位待编码数据的编码区间下限值,计算得到第i比特位待编码数据的编码区间下限值;
在第i比特位待编码数据的符号类型为大概率符号时,第i比特位待编码数据的编码区间下限值等于第i-1比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
在一个实施例中,根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流包括:
根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量;
对每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量进行整合,得到N比特待编码数据的编码码流。
通过查表的方式快速进行归一化,得到N路编码数据,同时,将N路编码数据整合成一路,得到N比特待编码数据的编码码流,提高编码效率。
根据本公开实施例的第二方面,提供一种数据编码装置,包括:
第一获取模块,用于获取N比特待编码数据;
第二获取模块,用于获取N比特待编码数据中每个待编码数据的概率状态值;
第三获取模块,用于根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数;
计算模块,用于根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;
查询模块,用于根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。
在一个实施例中,第二获取模块包括:第一获取子模块和第一查询子模块;
第一获取子模块,用于获取N比特待编码数据中每个待编码数据的上下文索引值;
第一查询子模块,用于根据每个待编码数据的上下文索引值,从预设概率状态表中查询得到每个待编码数据的概率状态值。
在一个实施例中,第三获取模块包括:第二查询子模块和第二获取子模块;
第二查询子模块,用于根据每个待编码数据的概率状态值,从预设区间信息表中查询得到每个待编码数据的编码区间集合,编码区间集合中包括四个不同编码区间长度值和对应的归一化次数;
第二获取子模块,用于根据第i-1比特位的待编码数据的编码区间长度值,从第i比特位待编码数据对应的编码区间集合中选取第i比特位待编码数据的编码区间信息,其中,1≤i≤N且i为整数。
在一个实施例中,计算模块包括:判断子模块和计算子模块;
判断子模块,用于判断每个比特位待编码数据的符号类型;
计算子模块,用于在第i比特位待编码数据的符号类型为小概率符号时,根据第i比特位待编码数据的编码区间长度值和第i-1比特位待编码数据的编码区间下限值,计算得到第i比特位待编码数据的编码区间下限值;
计算子模块,用于在第i比特位待编码数据的符号类型为大概率符号时,第i比特位待编码数据的编码区间下限值等于第i-1比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
在一个实施例中,查询模块包括:第三查询子模块和整合子模块;
第三查询子模块,用于根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量;
整合子模块,用于对每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量进行整合,得到N比特待编码数据的编码码流。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种数据编码方法的流程图;
图2是本公开实施例提供的一种数据编码装置的结构示意图;
图3是本公开实施例提供的一种多比特概率更新及查询示意图;
图4是本公开实施例提供的一种TabrangLPS表格的数据格式示意图;
图5是本公开实施例提供的一种单个比特rang/low的更新示意图;
图6是本公开实施例提供的一种多个比特rang/low的更新示意图;
图7是本公开实施例提供的一种归一化流程示意图;
图8是本公开实施例提供的一种数据编码装置的结构图;
图9是本公开实施例提供的一种数据编码装置的结构图;
图10是本公开实施例提供的一种数据编码装置的结构图;
图11是本公开实施例提供的一种数据编码装置的结构图;
图12是本公开实施例提供的一种数据编码装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供一种数据编码方法,如图1所示,该数据编码方法包括以下步骤:
101、获取N比特待编码数据。
由于Cabac是基于上下文的自适应二进制算术编码技术,因此,待编码数据必须是由字符“0”和字符“1”构成的二进制序列。当需要编码的数据具有非二进制的值,那就需要将非二进制的值进行“二进制化”,即将非二进制的值映射为由字符“0”和字符“1”构成的二进制序列,这个映射过程就叫做语法元素或句法元素的二进制化过程。
其中,Cabac的二值化方案包括四种基本类型:一元码(Unary)、截断一元码(Truncated Unary,TU)、K阶指数哥伦布编码和定长编码(Fixed Length,FL)等。此外,还有基于这些基本类型的联合的二值化方案与基于查表的二值化方案。针对不同的句法元素使用不同的二值化方法,更利于提升编码效率。
102、获取N比特待编码数据中每个待编码数据的概率状态值。
在本公开实施例中,步骤102包括:
a1、获取N比特待编码数据中每个待编码数据的上下文索引值。
在上下文索引值的获取中,为每个比特位的待编码数据选择一个概率模型(也可称为上下文模型),概率模型依赖于之前已编码的数据和已编码数据的上下文索引值。进而,根据比特本身和上下文模型,确定每个待编码数据的上下文索引值。
a1、根据每个待编码数据的上下文索引值,从预设概率状态表中查询得到每个待编码数据的概率状态值。
根据每个待编码数据的上下文索引值,在预设概率状态表中进行查询,得到每个待编码数据对应的概率状态值。通过查表的方式能够快速的获取概率状态值,提高编码效率。另外,由于每一个比特与其上一个比特密切相关,上下文值索引值的变化会使对应的概率状态值发生变化,因此,在每获得一个比特待编码数据的概率状态值后,需要根据该概率状态值和对应的上下文索引值对预设概率状态表进行更新,从而得到新的概率状态表,实现上下文自适应。
103、根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数。
在本公开实施例中,步骤103包括:
b1、根据每个待编码数据的概率状态值,从预设区间信息表中获取得到每个待编码数据的编码区间集合,编码区间集合中包括四个编码区间长度值和对应的归一化次数;
b2、根据第i-1比特位的待编码数据的编码区间长度值,从第i比特位待编码数据对应的编码区间集合中选取第i比特位待编码数据的编码区间信息,其中,1≤i≤N且i为整数。
为了降低获取每个待编码数据的编码区间长度值的计算量,预先计算每个概率状态值对应的编码区间范围,每个概率状态值对应的编码区间范围被划分为四个区间,根据每个编码区间值计算得到对应的归一化次数,将不同编码区间长度值和对应的归一化次数存储在预设区间信息表中。进而,在获取当前比特位待编码数据的编码区间信息时,根据当前比特位的前一比特位待编码数据的编码区间长度值(即当前比特位编码前的编码区间值),从当前比特位待编码数据的编码数据集合中选取当前比特位待编码数据的编码区间信息。具体的,获取第一比特位待编码数据的编码区间信息时,根据预先设置的编码区间长度值从第一比特位待编码数据对应的编码区间集合中选取第一比特位待编码数据的编码区间长度值和对应的归一化次数,然后,根据第一比特位待编码数据编码区间长度值,从第二比特位待编码数据对应的编码区间集合中选取第二比特位待编码数据的编码区间信息,以此类推,直至得到每个待编码数据的编码区间信息。
104、根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值。
在本公开的一个实施例中,步骤103包括:
c1、判断每个比特位待编码数据的符号类型。
由于每一比特位的待编码数据的值为0或1,因此,采用MPS(Most ProbableSymbol,大概率符号)表示最有可能出现的状态,对应0和1中概率最大的那一个,采用LPS(Least Probable Symbol,小概率符号)表示最不可能出现的状态,对应0和1中概率小的那一个,因此,待编码数据的符号类型要么为小概率符号,要么为大概率符号。
c2、在第i比特位待编码数据的符号类型为小概率符号时,根据第i比特位待编码数据的编码区间长度值和第i-1比特位待编码数据的编码区间下限值,计算得到第i比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
当第一比特位待编码数据的符号类型为小概率符号时,第一比特位待编码数据的编码区间下限值根据第一比特位待编码数据的编码区间长度值和预设的编码区间下限值计算得到;当第二比特位待编码数据的符号类型为小概率符号时,第二比特位待编码数据的编码区间下限值根据第二比特位待编码数据的编码区间长度值和第一比特位待编码数据的编码区间下限值计算得到。
c3、在第i比特位待编码数据的符号类型为大概率符号时,第i比特位待编码数据的编码区间下限值等于第i-1比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
当第一比特位待编码数据的符号类型为大概率符号时,第一比特位待编码数据的编码区间下限值等于预设的编码区间下限值计算得到;当第二比特位待编码数据的符号类型为小概率符号时,第二比特位待编码数据的编码区间下限值等于第一比特位待编码数据的编码区间下限值。
105、根据每个待编码数据的编码区间的下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。
在本公开的一个实施例中,步骤105具体包括:
d1、根据每个待编码数据的区间下限值和归一化次数,查询编码信息表得到每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量;
d2、对每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量进行整合,得到N比特待编码数据的编码码流。
编码信息表根据归一化规则计算得到的,归一化规则包括:当某一比特位待编码数据的区间下限值小于第一预设阈值时,确定输出0,后面输出非确定性比特数量的1,同时将非确定比特数的数量设置为0;当某一比特位待编码数据的区间下限值小于第二预设阈值时,将该比特位待编码数据的区间下限值减去第二预设阈值,然后确定输出1,后面输出非确定性比特数量的0,同时将非确定比特数的数量设置为0,否则,将该比特位待编码数据的区间下限值减去第一预设阈值,同时,非确定比特的数量加1。然后,该比特位待编码数据的编码区间值和编码区间下限值向左位移1比特,直至该比特位待编码数据的编码区间值大于或等于第一预设阈值。其中,第二预设阈值大于第一预设阈值。根据上述归一化规则,建立输入值为待编码数据的编码区间的下限值和归一化次数,输出为确定性比特的数量、确定性比特值及非确定性比特的数量的编码信息表,能够快速归一化输出结果。
在得到每个比特位待编码数据的归一化输出结果后,将N比特待编码数据输出的确定性比特的数量,确定性比特值及非确定性比特的数量整合成一组码流输出,得打N比特待编码数据的编码码流。
本公开实施例提供的数据编码方法,获取N比特待编码数据;获取N比特待编码数据中每个待编码数据的概率状态值;根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数;根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。该方法对N比特待编码数据同时进行编码,在编码过程中,通过查询的方式快速得到N比特待编码数据的编码码流,能够解决现有Cabac单比特编码速率低的问题,提高编码效率。
基于上述图1对应的实施例提供的数据编码方法,本公开另一实施例提供一种数据编码方法,该方法可以应用于图2所示的多比特编码处理系统,该系统包括:二值化及上下文模型组件201、上下文模型管理及查表组件202、更新及归一化组件203和输出调整组件204。
其中,二值化及上下文模型组件201主要完成对非二进制数据转化为二进制的功能,并生成更具二值化的数据特点的上下文模型索引,是实现数据编码的必备组件;上下文模型管理及查表组件202主要完成上下文的管理,更新概率值的功能,是实现数据编码的必备组件;更新及归一化组件203主要完成更新当前待编码数据的编码区间值和编码区间下限值,并对当前待编码数据的编码区间值和编码区间下限值进行归一化操作,是实现数据编码的必备组件;输出调整组件204主要通过未归一化的编码区间下限值的归一化过程输出比特值,将压缩后的比特流进行数据调整及打包处理输出,是实现数据编码的关键组件。
根据图2所描述的多比特编码处理系统,本实施例提供的数据编码方法包括以下步骤:
301、二值化及上下文模型生成。
CABAC中常用的二值化方法有:一元二进制化、截断一元二进制化、K阶指数哥伦布二进制化和定长二进制化等;针对不同的句法元素使用不同的二值化方法,更利于提升编码效率。根据不同的算法确定比特流的上下文模型。
302、上下文模型管理。上下文模型管理包括上下文模型变量读写,概率更新及LPS_range查找三部分。上下文模型变量读写单元支持N个上下文模型表的读写,可独立输出对应上下文的概率P及大概率符号vMPS,并在时钟的上升沿完成N个模型下概率P及vMPS的更新。
具体的,每次输入N比特的待编码值到概率更新,然后根据上下文模型,确定上下文模型的索引,到上下文模型变量寄存器表中取出相应的概率值,并对上下文变量寄存器表写入更新过后的概率表值。如图3所示,输入N比特的待编码值用Bin[N-1:0]表示;Bin[0]所对应的概率值为p[0]及大概率符号vMPS[0],Bin[1]所对应的概率值为p[1]及大概率符号vMPS[1],以此类推,Bin[N-1]所对应的概率值为p[N-1]及大概率符号vMPS[N-1];更新过后的概率表值分别用update[0]、update[1]、……、update[N-1]表示。
进而,根据查寻上下文变量寄存器表得到的N个P值,查找小概率符号区间信息表TabRangLPS得到N组值,每组包括4个rTabLPS值,每个rTabLPS值包括3比特小概率符号的归一化次数lps_shift_num值和8比特小概率符号编码区间值rLPS值,即每个rTabLPS值为11比特,TabRangLPS表格内容如图4所示,此处以rTabLPS0为例进行示意说明。由于每个rTabLPS值占用11个比特,因此,rTabLPS0占用编号从0~10的比特位,rTabLPS1占用编号从11~21的比特位,rTabLPS2占用编号从22~32的比特位,rTabLPS3占用编号从33~43的比特位。每一个P值可以查出4个rLPS值,根据每个rLPS的值提前算好相应的3比特小概率符号的归一化次数lps_shift_num,存放到TabRangLPS表格中。如图3所示,根据p[0]查询TabRangLPS表格得到的4个rTabLPS值为rLPS0[0~3]以及对应的归一化次数lps_shift_num0[0~3],根据p[1]查询TabRangLPS表格得到的4个rTabLPS值为rLPS1[0~3]以及对应的归一化次数lps_shift_num1[0~3],依次类推,根据p[N-1]查询TabRangLPS表格得到的4个rTabLPS值为rLPS(N-1)[0~3]以及对应的归一化次数lps_shift_num(N-1)[0~3]。
303、Rang和Low值的更新,在一个时钟周期内完成N个Rang(编码区间长度值)和Low(编码区间下限值)的更新。
Rang的初值固定为510,low的初始值为0。如图5所示,以其中一个比特的rang/low更新为例进行说明,bin_dv表示比特的有效指示,bin_is mps表示当前比特编码数据是否为大概率符号,rLPS[0~3]和lps_shift_num0[0~3]表示根据当前比特编码数据的概率状态值从TabRangLPS得到的查表结果,rang update表示对rang进行更新,low update表示对low进行更新。
具体的,先根据上一次迭代rang值的bit7和bit6两位,从TabRangLPS的查表结果中的四组数据rLPS[0~3]和对应的lps_shift_num[0~3]中选择对应的rLPS和lps_shift_num。若当前符号为小概率符号时,Rang等于查表得出的rLPS,Low等于上一次的low值加上rMPS(rMPS=Rang-rLPS);否则,Rang、low保持。当rang值小于256时,需要进行归一化。对rang进行左移,直到rang值大于等于256,得到归一化的rang_updata值。同时,low也要左移相同的位数,得到归一化的low_updata值。还要向后级更新及归一化组件输出归一化次数(lps_shift_num)和未归一化之前的low值(unrenome_low)。多比特的rang值和low值的更新过程如图6所示,直接通过组合逻辑级联,一个时钟周期得到N组未归一化的low值(unrenome_low0、unrenome_low1、……、unrenome_low(N-1))和对应的归一化次数(lps_shift_num0、lps_shift_num1、……、lps_shift_num(N-1))。
304、快速归一化输出结果,在一个时钟周期内完成N组归一化处理。
N路输出bit查找模块分别对未归一化的low值及shift_num值进行查表,查表输出确定性bit的数量,确定性bit值及非确定性bit的数量。单比特归一化过程如图7所示。判断当前编码区间长度rang是否小于256(即图7所示的R<0x100),在当前编码编码区间rang小于256时,判断当前未归一化的编码区间下限值是否小于256(即图7所示的L<0x100),在L<0x100,采用putbit(1)的方式输出,putbit(1)的方式为确定输出0,后面输出bitsoutstanding(非确定性比特的数量)个1,同时清bitsoutstanding值为0。在当前未归一化的编码区间下限值不小于256时,判断当前未归一化的编码区间下限值是否小于512(即图7所示的L<0x200),若L<0x200时,L=L-0x200,采用putbit(1)的方式输出,putbit(1)的方式为确定输出1,后面输出bitsoutstanding个0,同时清bitsoutstanding值为0,否则L=L-0x100,同时bitsoutstanding值加1。然后R、L值左移1bit(即图7所示的R<<1,L<<1),直到R值大于或等于256。从TabRangLPS表格可以看出,每次归一化最多6次。根据上述规则,做一个深度为2048的查找表。输入值为高8位low(未归一化后的low值)值和3比特shift_num(归一化次数)值,输出为确定性bit的数量,确定性bit值及非确定性bit的数量。
305、输出比特调整。当有一个确定性比特值时,后面要紧接着输出bitsoutstanding个与该确定性比特值相反的值,同时清除bitsoutstanding。根据这一原则,将多路输出的确定性bit的数量,确定性bit值及非确定性bit的数量调整整合成一组码流输出。
本公开实施例提供的数据编码方法,获取N比特待编码数据;获取N比特待编码数据中每个待编码数据的概率状态值;根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数;根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。该方法对N比特待编码数据同时进行编码,在编码过程中,通过查询的方式快速得到N比特待编码数据的编码码流,能够解决现有Cabac单比特编码速率低的问题,提高编码效率。
基于上述图1和图3对应的实施例中所描述的数据编码方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种数据编码装置,如图8所示,该数据编码装置80包括:第一获取模块801、第二获取模块802、第三获取模块803、计算模块804和查询模块805;
第一获取模块801,用于获取N比特待编码数据;
第二获取模块802,用于获取N比特待编码数据中每个待编码数据的概率状态值;
第三获取模块803,用于根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数;
计算模块804,用于根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;
查询模块805,用于根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。
在一个实施例中,如图9所示,第二获取模块802包括:第一获取子模块8021和第一查询子模块8022;
第一获取子模块8021,用于获取N比特待编码数据中每个待编码数据的上下文索引值;
第一查询子模块8022,用于根据每个待编码数据的上下文索引值,从预设概率状态表中查询得到每个待编码数据的概率状态值。
在一个实施例中,如图10所示,第三获取模块803包括:第二查询子模块8031和第二获取子模块8032;
第二查询子模块8031,用于根据每个待编码数据的概率状态值,从预设区间信息表中查询得到每个待编码数据的编码区间集合,编码区间集合中包括四个不同编码区间长度值和对应的归一化次数;
第二获取子模块8032,用于根据第i-1比特位的待编码数据的编码区间长度值,从第i比特位待编码数据对应的编码区间集合中选取第i比特位待编码数据的编码区间信息,其中,1≤i≤N且i为整数。
在一个实施例中,如图11所示,计算模块804包括:判断子模块8041和计算子模块8042;
判断子模块8041,用于判断每个比特位待编码数据的符号类型;
计算子模块8042,用于在第i比特位待编码数据的符号类型为小概率符号时,根据第i比特位待编码数据的编码区间长度值和第i-1比特位待编码数据的编码区间下限值,计算得到第i比特位待编码数据的编码区间下限值;
计算子模块8042,用于在第i比特位待编码数据的符号类型为大概率符号时,第i比特位待编码数据的编码区间下限值等于第i-1比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
在一个实施例中,如图12所示,查询模块805包括:第三查询子模块8051和整合子模块8052;
第三查询子模块8051,用于根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量;
整合子模块8052,用于对每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量进行整合,得到N比特待编码数据的编码码流。
本公开实施例提供的数据编码装置,获取N比特待编码数据;获取N比特待编码数据中每个待编码数据的概率状态值;根据每个待编码数据的概率状态值和每个待编码数据编码前的编码区间长度值,获取每个待编码数据的编码区间信息,编码区间信息中包括编码区间长度值和对应的归一化次数;根据每个待编码数据的符号类型和每个待编码数据的编码区间长度值,计算得到每个待编码数据的编码区间下限值;根据每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到N比特待编码数据的编码码流。该方法对N比特待编码数据同时进行编码,在编码过程中,通过查询的方式快速得到N比特待编码数据的编码码流,能够解决现有Cabac单比特编码速率低的问题,提高编码效率。
基于上述图1对应的实施例中所描述的数据编码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的数据编码方法,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (8)

1.一种数据编码方法,其特征在于,所述方法包括:
获取N比特待编码数据;
获取所述N比特待编码数据中每个待编码数据的概率状态值;
根据所述每个待编码数据的概率状态值和所述每个待编码数据编码前的编码区间长度值,获取所述每个待编码数据的编码区间信息,所述编码区间信息中包括编码区间长度值和对应的归一化次数;
根据所述每个待编码数据的符号类型和所述每个待编码数据的编码区间长度值,计算得到所述每个待编码数据的编码区间下限值,所述每个待编码数据的符号类型为大概率符号或小概率符号;
根据所述每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到所述N比特待编码数据的编码码流;
其中,所述根据所述每个待编码数据的概率状态值和每个待编码数据编码前的编码区间值,获取所述每个待编码数据的编码区间信息包括:
根据所述每个待编码数据的概率状态值,从预设区间信息表中获取得到所述每个待编码数据的编码区间集合,所述编码区间集合中包括四个编码区间长度值和对应的归一化次数;
根据第i-1比特位的待编码数据的编码区间长度值,从第i比特位待编码数据对应的编码区间集合中选取所述第i比特位待编码数据的编码区间信息,其中,1≤i≤N且i为整数。
2.根据权利要求1所述的方法,其特征在于,所述获取所述N比特待编码数据中每个待编码数据的概率状态值包括:
获取所述N比特待编码数据中每个待编码数据的上下文索引值;
根据所述每个待编码数据的上下文索引值,从预设概率状态表中查询得到所述每个待编码数据的概率状态值。
3.根据权利要求1所述的方法,其特征在于,所述根据所述每个待编码数据的符号类型和所述每个待编码数据的编码区间长度值,计算得到所述每个待编码数据的编码区间下限值包括:
判断每个比特位待编码数据的符号类型;
在所述第i比特位待编码数据的符号类型为小概率符号时,根据所述第i比特位待编码数据的编码区间长度值和第i-1比特位待编码数据的编码区间下限值,计算得到所述第i比特位待编码数据的编码区间下限值;
在所述第i比特位待编码数据的符号类型为大概率符号时,所述第i比特位待编码数据的编码区间下限值等于第i-1比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到所述N比特待编码数据的编码码流包括:
根据所述每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到所述每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量;
对所述每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量进行整合,得到所述N比特待编码数据的编码码流。
5.一种数据编码装置,其特征在于,包括:
第一获取模块,用于获取N比特待编码数据;
第二获取模块,用于获取所述N比特待编码数据中每个待编码数据的概率状态值;
第三获取模块,用于根据所述每个待编码数据的概率状态值和所述每个待编码数据编码前的编码区间长度值,获取所述每个待编码数据的编码区间信息,所述编码区间信息中包括编码区间长度值和对应的归一化次数;
计算模块,用于根据所述每个待编码数据的符号类型和所述每个待编码数据的编码区间长度值,计算得到所述每个待编码数据的编码区间下限值,所述每个待编码数据的符号类型为大概率符号或小概率符号;
查询模块,用于根据所述每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到所述N比特待编码数据的编码码流;
其中,所述第三获取模块包括:
第二查询子模块,用于根据所述每个待编码数据的概率状态值,从预设区间信息表中查询得到所述每个待编码数据的编码区间集合,所述编码区间集合中包括四个不同编码区间长度值和对应的归一化次数;
第二获取子模块,用于根据第i-1比特位的待编码数据的编码区间长度值,从第i比特位待编码数据对应的编码区间集合中选取所述第i比特位待编码数据的编码区间信息,其中,1≤i≤N且i为整数。
6.根据权利要求5所述的装置,其特征在于,所述第二获取模块包括:
第一获取子模块,用于获取所述N比特待编码数据中每个待编码数据的上下文索引值;
第一查询子模块,用于根据所述每个待编码数据的上下文索引值,从预设概率状态表中查询得到所述每个待编码数据的概率状态值。
7.根据权利要求5所述的装置,其特征在于,所述计算模块包括:
判断子模块,用于判断每个比特位待编码数据的符号类型;
计算子模块,用于在所述第i比特位待编码数据的符号类型为小概率符号时,根据所述第i比特位待编码数据的编码区间长度值和第i-1比特位待编码数据的编码区间下限值,计算得到所述第i比特位待编码数据的编码区间下限值;
所述计算子模块,用于在所述第i比特位待编码数据的符号类型为大概率符号时,所述第i比特位待编码数据的编码区间下限值等于第i-1比特位待编码数据的编码区间下限值,其中,1≤i≤N且i为整数。
8.根据权利要求5所述的装置,其特征在于,所述查询模块包括:
第三查询子模块,用于根据所述每个待编码数据的编码区间下限值和归一化次数,查询编码信息表得到所述每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量;
整合子模块,用于对所述每个待编码数据的确定性比特的数量、确定性比特值和非确定性比特的数量进行整合,得到所述N比特待编码数据的编码码流。
CN201810379378.5A 2018-04-25 2018-04-25 数据编码方法及装置 Active CN108391129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810379378.5A CN108391129B (zh) 2018-04-25 2018-04-25 数据编码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810379378.5A CN108391129B (zh) 2018-04-25 2018-04-25 数据编码方法及装置

Publications (2)

Publication Number Publication Date
CN108391129A CN108391129A (zh) 2018-08-10
CN108391129B true CN108391129B (zh) 2019-09-27

Family

ID=63065552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810379378.5A Active CN108391129B (zh) 2018-04-25 2018-04-25 数据编码方法及装置

Country Status (1)

Country Link
CN (1) CN108391129B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110875744B (zh) * 2018-08-31 2023-06-20 阿里巴巴集团控股有限公司 编码方法及装置
CN109525249B (zh) * 2018-09-30 2023-10-27 湖南瑞利德信息科技有限公司 编码解码方法、系统、可读存储介质及计算机设备
CN111241674A (zh) * 2020-01-08 2020-06-05 郑州航空工业管理学院 一种基于数学建模的数据分类方法和系统
CN113727104B (zh) * 2020-05-22 2024-01-16 北京小米移动软件有限公司 编码方法及装置、解码方法及装置、以及存储介质
CN115277871A (zh) * 2022-07-18 2022-11-01 深圳市正浩创新科技股份有限公司 数据传输方法、数据解析方法、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011113291A1 (zh) * 2010-03-19 2011-09-22 西安电子科技大学 基于jpeg2000标准的高速实时处理算术熵编码系统
WO2015102432A1 (en) * 2014-01-01 2015-07-09 Lg Electronics Inc. Method and apparatus for performing an arithmetic coding for data symbols
CN107277553A (zh) * 2017-07-10 2017-10-20 中国科学技术大学 一种二元算术编码器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089917A (ja) * 2010-10-15 2012-05-10 Sony Corp 符号化装置および方法、並びにプログラム
CN107743239B (zh) * 2014-09-23 2020-06-16 清华大学 一种视频数据编码、解码的方法及装置
CN105791828B (zh) * 2015-12-31 2019-05-31 杭州士兰微电子股份有限公司 二进制算术编码器及其编码方法
CN107343201B (zh) * 2017-06-21 2019-11-26 珠海市杰理科技股份有限公司 Cabac编码方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011113291A1 (zh) * 2010-03-19 2011-09-22 西安电子科技大学 基于jpeg2000标准的高速实时处理算术熵编码系统
WO2015102432A1 (en) * 2014-01-01 2015-07-09 Lg Electronics Inc. Method and apparatus for performing an arithmetic coding for data symbols
CN107277553A (zh) * 2017-07-10 2017-10-20 中国科学技术大学 一种二元算术编码器

Also Published As

Publication number Publication date
CN108391129A (zh) 2018-08-10

Similar Documents

Publication Publication Date Title
CN108391129B (zh) 数据编码方法及装置
Said Introduction to arithmetic coding--theory and practice
US5272478A (en) Method and apparatus for entropy coding
US4122440A (en) Method and means for arithmetic string coding
Rubin Arithmetic stream coding using fixed precision registers
CN101095284B (zh) 用于有选择地压缩和解压缩数据的设备与方法
CN105656604A (zh) 一种比特交织极化编码调制方法及装置
US11178212B2 (en) Compressing and transmitting structured information
Goto et al. Space efficient linear time Lempel-Ziv factorization for small alphabets
CN105791828B (zh) 二进制算术编码器及其编码方法
WO2002037687A2 (en) Method of performing huffman decoding
JP2977570B2 (ja) 可変長符号化方法および可変長復号方法を実施するための装置
US8660187B2 (en) Method for treating digital data
Bell et al. A note on the DMC data compression scheme
US6055273A (en) Data encoding and decoding method and device of a multiple-valued information source
Bell A unifying theory and improvements for existing approaches to text compression
Steadman et al. Variable-length constrained sequence codes
WO2016178826A1 (en) Asic block for high bandwidth lz77 decompression
EP0079442B1 (en) Data translation apparatus translating between raw and compression encoded data forms
CN113961568A (zh) 基于区块链的链式数据结构的区块快速查找方法
US11640265B2 (en) Apparatus for processing received data
CN104199352A (zh) 基于fpga的区间编码硬件实现系统
JP2590287B2 (ja) データ圧縮方法およびデータ圧縮装置
Calderbank et al. The normalized second moment of the binary lattice determined by a convolutional code
Bookstein et al. Models of bitmap generation: A systematic approach to bitmap compression

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
GR01 Patent grant
GR01 Patent grant