数据编码方法及装置与流程

文档序号:15152516发布日期:2018-08-10 21:18阅读:226来源:国知局

本公开涉及数据处理领域,尤其涉及数据编码方法及装置。



背景技术:

cabac(context-basedadaptivebinaryarithmeticcoding,基于上下文的自适应二进制算术编码)编码是一种广泛应用于图像处理、云计算的海量数据处理的编码技术,其主要思想是用区间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)、截断一元码(truncatedunary,tu)、k阶指数哥伦布编码和定长编码(fixedlength,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(mostprobablesymbol,大概率符号)表示最有可能出现的状态,对应0和1中概率最大的那一个,采用lps(leastprobablesymbol,小概率符号)表示最不可能出现的状态,对应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_ismps表示当前比特编码数据是否为大概率符号,rlps[0~3]和lps_shift_num0[0~3]表示根据当前比特编码数据的概率状态值从tabranglps得到的查表结果,rangupdate表示对rang进行更新,lowupdate表示对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对应的实施例中所描述的数据编码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:readonlymemory,rom)、随机存取存储器(英文:randomaccessmemory,ram)、cd-rom、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的数据编码方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1