一种算术编码方法、装置及电子设备与流程

文档序号:16247789发布日期:2018-12-11 23:44阅读:216来源:国知局
一种算术编码方法、装置及电子设备与流程

本发明涉及数据压缩技术领域,特别是涉及一种算术编码方法、装置及电子设备。

背景技术

算术编码是一种高效的熵编码方法,其能以接近熵的效率对符号进行编码。算术编码过程通常包括:首先,对待编码符号序列中的每个符号的概率进行估计;然后,根据所估计的每个符号的概率,确定每个符号对应的区间,即对每个符号进行编码;最后,将待编码符号序列中的最后一个符号对应的区间中的任一值作为待编码符号序列的编码结果。

在算术编码过程中,将待编码符号序列中的每个符号划分为高概率符号(mostprobablesymbol,mps)或低概率符号(leastprobablesymbol,lps),系统中始终存储有两个概率值:mps的当前概率值pmps和lps的当前概率值pmps,其中,pmps≥0.5,plps≤0.5,且pmps与plps之和为1。每编码完一个符号,会更新pmps和plps。

在先进视频编码国际标准h.264/avc(advancedvideocoding)或高效视频编码国际标准h.265/hevc(highefficiencyvideocoding)中,可以通过查表法估计每个符号的概率。具体的,将符号的概率量化为64个概率状态,每个概率状态包括:该概率状态的序号、该概率状态对应的plps(即:该概率状态的概率值)、该概率状态的跳转序号。对每个符号进行概率估计时,可以先根据前一个符号对应的概率状态的序号和前一个符号的类别,确定每个符号对应的概率状态的序号;然后根据每个符号对应的概率状态的序号和每个符号的类别,确定每个符号的概率。

在确定每个符号对应的区间时,同样可以通过查表法实现。具体的,在编码第一个符号前,初始化一个区间,初始化参数包括:该区间的起始位置以及该区间的宽度,其中,该区间的宽度值可以是一个九位的二进制数。

在确定每个符号对应的区间时,先根据当前区间(即上一个符号对应的区间)的宽度值的高三位中的后两位查表,确定出当前区间在当前概率状态下的lps子区间rlps的起始位置和宽度,以及mps子区间rmps的起始位置和宽度;如果当前符号为mps,则其对应的区间为上述rmps;如果当前符号为lps,则其对应的区间为上述rlps。

然而,现有技术至少存在如下问题:通过查表法确定每个符号对应的区间时有严重的串行依赖性,具体的,必须根据当前区间,即上一个符号对应的区间的宽度值的高三位中的后两位来查表,将当前区间划分为rlps和rmps两个子区间,确定出当前符号对应的区间。显然,这种串行编码的方式使得算术编码的速度较低。



技术实现要素:

本发明实施例的目的在于提供一种算术编码方法、装置及电子设备,以提高算术编码的速度。

为达到上述目的,第一方面,本发明实施提供了一种算术编码方法,包括:

获取待编码符号序列;

在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;

基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;

当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;

根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。

可选地,所述在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号,包括:

将所述待编码符号序列中的第一个符号对应的概率状态的序号确定为1;

针对所述待编码符号序列中的第i个符号,根据第i-1个符号对应的概率状态的序号以及所述第i-1个符号的类别,在预先确定的概率状态表中,查找所述第i个符号对应的概率状态的序号;其中,所述i>1。

可选地,所述根据第i-1个符号对应的概率状态的序号以及所述第i-1个符号的类别,在预先确定的概率状态表中,查找所述第i个符号对应的概率状态的序号,包括:

若第i-1个符号为高概率符号mps,则在预先确定的概率状态表中查找第i-1个符号对应的概率状态的序号si-1,并确定第i个符号对应的概率状态的序号si=si-1+1;

若第i-1个符号为低概率符号lps,则在预先确定的概率状态表中查找第i-1个符号对应的跳转序号j(si-1),并确定第i个符号对应的概率状态的序号si=j(si-1)。

可选地,所述第一预设条件为以下条件之一:

所述多个连续符号均为mps;

所述多个连续符号为满足第二预设条件的lps;

所述多个连续符号为一组或多组依次为lps、mps或依次为mps、lps的符号。

可选地,所述第二预设条件为:所述多个连续符号的lps概率之积不小于预设值;其中,所述多个连续符号中每个符号的lps概率为所述每个符号对应的概率状态的概率值。

可选地,所述根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间,包括:

确定所述目标对数序号对应的概率状态;

根据所确定的概率状态的概率值,将当前区间划分为低概率子区间rlps和高概率子区间rmps;

确定所述多个连续符号中最后一个符号的类别;

若所述最后一个符号为mps,则确定所述多个连续符号对应的区间为所述rmps;

若所述最后一个符号为lps,则确定所述多个连续符号对应的区间为所述rlps。

第二方面,本发明实施例提供了一种算术编码装置,包括:

获取模块,用于获取待编码符号序列;

查找模块,用于在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;

第一确定模块,用于基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;

处理模块,用于当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;

第二确定模块,用于根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。

可选地,所述查找模块,包括:

第一确定子单元,用于将所述待编码符号序列中的第一个符号对应的概率状态的序号确定为1;

第一查找子单元,用于针对所述待编码符号序列中的第i个符号,根据第i-1个符号对应的概率状态的序号以及所述第i-1个符号的类别,在预先确定的概率状态表中,查找所述第i个符号对应的概率状态的序号;其中,所述i>1。

可选地,所述第一查找子单元,具体用于若第i-1个符号为高概率符号mps,则在预先确定的概率状态表中查找第i-1个符号对应的概率状态的序号si-1,并确定第i个符号对应的概率状态的序号si=si-1+1;

若第i-1个符号为低概率符号lps,则在预先确定的概率状态表中查找第i-1个符号对应的跳转序号j(si-1),并确定第i个符号对应的概率状态的序号si=j(si-1)。

可选地,所述第一预设条件为以下条件之一:

所述多个连续符号均为mps;

所述多个连续符号为满足第二预设条件的lps;

所述多个连续符号为一组或多组依次为lps、mps或依次为mps、lps的符号。

可选地,所述第二预设条件为:所述多个连续符号的lps概率之积不小于预设值;其中,所述多个连续符号中每个符号的lps概率为所述每个符号对应的概率状态的概率值。

可选地,所述第二确定模块,包括:

第二确定子单元,用于确定所述目标对数序号对应的概率状态;

划分子单元,用于根据所确定的概率状态的概率值,将当前区间划分为低概率子区间rlps和高概率子区间rmps;

第三确定子单元,用于确定所述多个连续符号中最后一个符号的类别;

第四确定子单元,用于若所述最后一个符号为mps,则确定所述多个连续符号对应的区间为所述rmps;若所述最后一个符号为lps,则确定所述多个连续符号对应的区间为所述rlps。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现如上第一方面所述的算术编码方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上第一方面所述的算术编码方法步骤。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上第一方面所述的算术编码方法步骤。

本发明实施例提供的算术编码方法、装置及电子设备,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种算术编码方法的流程图;

图2为图1所示实施例中步骤s102的一种具体流程图;

图3为图1所示实施例中步骤s105的一种具体流程图;

图4为本发明实施例提供的一种算术编码装置的结构图;

图5为本发明实施例提供的一种电子设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了提高算术编码的速度,本发明实施例提供了一种算术编码方法、装置及电子设备。

下面首先对本发明实施例所提供的一种算术编码方法进行介绍。

如图1所示,本发明实施例提供的一种算术编码方法,可以包括:

s101,获取待编码符号序列。

算术编码是指:将待编码符号序列映射为[0,1]之间的一个小数,该小数可以是二进制数。可以将该小数直接作为编码结果,也可以将该小数的小数点之后的数作为编码结果。在算术编码中,通常将待编码符号序列中的每个符号划分为高概率符号mps或低概率符号lps,即待编码符号序列中的符号只有两种,mps和lps。

待编码符号序列中的符号的个数,可以根据实际情况/需要来确定。

s102,在预先确定的概率状态表中,查找待编码符号序列中每个符号对应的概率状态的序号。

算术编码的过程可以包括:一,对待编码符号序列中的每个符号进行概率估计;二,根据每个符号的概率,确定每个符号对应的区间。

在算术编码过程中,系统中始终存储有两个概率值,mps的当前概率值pmps和lps的当前概率值plps,其中,pmps≥0.5,plps≤0.5,且pmps与plps之和为1。每编码完一个符号,会更新pmps和plps,并根据更新后的pmps和plps,以及下一个符号的类别,对下一个符号的概率进行估计。

其中,pmps和plps的更新规律是:若编码了一个mps,则更新后的plps会减小,更新后的pmps会增加;若编码了一个lps,则更新后的plps会增加,更新后的pmps会减小。具体的,可以通过以下两个公式计算更新后的plps:若编码了一个mps,则更新后的plps(用plps_new来表示)为:plps_new=α×plps_old;若编码了一个lps,则更新后的plps为:plps_new=1-α+α×plps_old。其中,α为比例系数,根据经验可以将α设置为0.95。相应地,更新后的pmps(用pmps_new来表示)为:pmps_new=1-plps_new。

其中,根据更新后的pmps和plps,以及下一个符号的类别,对下一个符号的概率进行估计的具体方式为:若下一个符号为mps,则其概率为更新后的pmps;若下一个符号为lps,则其概率为更新后的plps。

为了便于对符号进行概率估计,在h.264或hevc中,将符号的概率量化为64个概率状态,组成概率状态表。每个概率状态包括:该概率状态的序号、该概率状态对应的plps(即:该概率状态的概率值)、该概率状态的跳转序号。其中,第m个概率状态的概率值的计算公式为:plps=αm-1×0.5,其中,m为概率状态的序号,0.5为初始plps,即若第一个符号为lps,则其概率为0.5。

利用上述概率状态表对符号进行概率估计时,首先,需要确定出该符号对应的概率状态的序号,然后,根据该符号对应的概率状态的序号,对该符号进行概率估计。具体的,若该符号为lps,则其概率为该符号对应的概率状态的概率值;若该符号为mps,则其概率为1减去该符号对应的概率状态的概率值。

从第m个概率状态的概率值的计算公式中可以看出:概率状态的序号与概率状态的概率值的对数成线性关系。所以两个概率状态的概率值乘积,可以基于两个概率状态的序号之和来表示。因此,若同时编码多个连续符号,即表示该多个连续符号同时出现了,该多个连续符号同时出现的概率为各符号的概率的乘积。由于各符号的概率的乘积可以基于各符号对应的概率状态的序号之和来表示,因而进一步地,可以根据该多个连续符号各自对应的概率状态的序号,得到该多个连续符号对应的一个序号,进而可以根据该序号,对该多个连续符号进行并行编码。

本实施例中,可以在h.264或hevc中的概率状态表中,查找到每个符号对应的概率状态的序号,以进一步对多个连续符号进行并行编码。

一种实现方式中,如图2所示,步骤s102中的在预先确定的概率状态表中,查找待编码符号序列中每个符号对应的概率状态的序号,可以包括:

s201,将待编码符号序列中的第一个符号对应的概率状态的序号确定为1。

本实施例中,第一个概率状态的概率为0.5。当然,在实际应用中,也可以根据情况将第一个概率状态的概率,也即初始plps设置为小于0.5的值,本发明对此并不限定。

s202,针对待编码符号序列中的第i个符号,根据第i-1个符号对应的概率状态的序号以及第i-1个符号的类别,在预先确定的概率状态表中,查找第i个符号对应的概率状态的序号;其中,i>1。

在算术编码中,由于每编码一个符号后,都会更新pmps和plps,因而,当前符号的概率与前一个符号的类别和概率相关。体现在上述概率状态表中,则是当前符号对应的概率状态的序号与前一个符号的类别、前一个符号对应的概率状态的序号相关。

一种实现方式中,根据第i-1个符号对应的概率状态的序号以及第i-1个符号的类别,在预先确定的概率状态表中,查找第i个符号对应的概率状态的序号,可以包括:

若第i-1个符号为高概率符号mps,则在预先确定的概率状态表中查找第i-1个符号对应的概率状态的序号si-1,并确定第i个符号对应的概率状态的序号si=si-1+1;

若第i-1个符号为低概率符号lps,则在预先确定的概率状态表中查找第i-1个符号对应的跳转序号j(si-1),并确定第i个符号对应的概率状态的序号si=j(si-1)。

具体的,若第i-1个符号为高概率符号mps,即编码了一个mps,则更新后的plps降低了,所以第i个符号对应的概率状态的序号相比于第i-1个符号对应的概率状态的序号增加了,根据上述第m个概率状态的概率值的计算公式可以确定出,所增加的值为1。

具体的,结合上述公式plps_new=α×plps_old和第m个概率状态的概率值的计算公式plps=αm-1×0.5可以看出,对于一个符号,只有当该符号之前的符号均为mps时,才能在概率状态表中,估计出该符号的精确概率值(该精确概率值基于公式plps_new=α×plps_old来计算)。当该符号之前的符号为其他情形时,只能在概率状态表中,找出与该符号的精确概率值最为接近的估计值。因此,若第i-1个符号为lps,即编码了一个lps,则更新后的plps增加了,所以第i个符号对应的概率状态的序号相比于第i-1个符号对应的概率状态的序号降低了,应跳转至更低的序号,且在所有概率状态中,根据跳转后序号的概率状态估计出的第i个符号的概率最接近于第i个符号的精确概率值(该精确概率值基于公式plps_new=1-α+α×plps_old来计算)。

s103,基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号。

当查找出一个符号对应的概率状态的序号后,可以根据该概率状态的概率,对该符号进行概率估计。具体的,假设该符号对应的概率状态的序号为m,若该符号为lps,则其概率为该符号对应的概率状态的概率值,即plps=αm-1×0.5;若该符号为mps,则其概率为1减去该符号对应的概率状态的概率值,即pmps=1-plps=1-αm-1×0.5。从以上两个概率值计算式可以看出,序号m与概率值成线性关系,但还不是比例关系。如果将以上两个概率值计算式表示为标准的指数函数,便可以直接利用该指数函数中的指数表示符号的概率,也就可以进一步地,根据多个连续符号中各符号的指数之和表示各符号的概率之积。

将以上两个概率值计算式分别表示为两个标准的指数函数后,意味着可以用该两个标准的指数函数来表示概率状态。实质上,也就是用该两个标准的指数函数中的指数来表示概率状态。为了便于理解,在本实施例中,将表示概率状态的两个指数分别称为:概率状态的低概率对数序号,和概率状态的高概率对数序号,这两个对数序号构成了概率状态的对数序号组。

一种实现方式中,确定所述概率状态表中各概率状态对应的对数序号组的方式,可以为:

设定:其中,α为比例参数,q为大于1的整数;

将第m个概率状态的概率值计算式plps=αm-1×0.5近似表示为:将mps符号的概率值计算式pmps=1-plps=1-αm-1×0.5近似表示为:

通过上述实现方式,将上两个概率值计算式表示为标准的指数函数,则第m个概率状态对应的对数序号组包括:第m个概率状态的低概率对数序号il(m),和第m个概率状态的高概率对数序号im(m)。

可以理解,每个概率状态的概率值不同,因而每个概率状态对应的对数序号组也不同。也就是说,一个对数序号组唯一表示一个概率状态。而且,由于plps≤0.5,pmps≥0.5,且pmps与plps之和为1,实质上,一个低概率对数序号或一个高概率对数序号均可以唯一表示一个概率状态。

基于确定出概率状态表中各概率状态对应的对数序号组,就可以确定出每个符号对应的对数序号。例如,第3个符号为lps,该符号对应的概率状态的序号为5,第5个概率状态对应的对数序号组为:il(5)=7,im(5)=4,则第3个符号对应的对数序号为7。又例如,第4个符号为mps,该符号对应的概率状态的序号为2,第2个概率状态对应的对数序号组为:il(2)=6,im(2)=5,则第4个符号对应的对数序号为5。

s104,当待编码符号序列中多个连续符号满足第一预设条件时,将多个连续符号中各符号对应的对数序号相加,得到目标对数序号。

对多个连续符号进行编码之前,需要确定出多个连续符号的概率之积,而该概率之积,反映在对数序号上,可以是多个连续符号中各符号对应的对数序号之和。因而本实施例中,可以将多个连续符号中各符号对应的对数序号相加,得到目标对数序号,以进一步根据该目标对数序号对多个符号进行编码。

本实施例的一种实现方式中,第一预设条件可以为以下条件之一:

条件1:多个连续符号均为mps。例如:多个连续符号为:1111。

条件2:多个连续符号为满足第二预设条件的lps。其中,第二预设条件可以为:多个连续符号的lps概率之积不小于预设值;多个连续符号中每个符号的lps概率为每个符号对应的概率状态的概率值。例如,多个连续符号为:00,第一个“0”的概率为0.3,第二“0”的概率为0.2,则概率之积为:0.06,预设值为:0.05,则该多个连续符号为满足第二预设条件的lps。

可以理解的是:如果多个连续符号的lps概率之积太小,可能会超出概率状态表中最小的概率值,从而无法确定出该lps概率之积对应的概率状态,也就无法确定出目标对数序号。

条件3:多个连续符号为一组或多组依次为lps、mps或依次为mps、lps的符号。例如,多个连续符号为:01,或者为:1010。

s105,根据目标对数序号和当前区间,确定多个连续符号对应的区间。

一种实现方式中,如图3所示,步骤s105中的根据目标对数序号和当前区间,确定多个连续符号对应的区间,可以包括:

s301,确定目标对数序号对应的概率状态。

由于对数序号可以唯一表示概率状态,因而根据目标对数序号可以直接确定出对应的概率状态。

s302,根据所确定的概率状态的概率值,将当前区间划分为低概率子区间rlps和高概率子区间rmps。

在算术编码中,对每个符号编码就是确定出该符号对应的区间。当前区间是指对一个符号编码前,上一个符号对应的区间。算术编码的过程就是不断划分区间的过程。具体的,对当前符号编码就是划分上一个符号对应的区间,并将其中一个子区间作为当前符号对应的区间。

在本实施例中,由于可以对多个连续符号进行编码,当前区间可以是对上一个符号或上一组连续符号编码后得到的区间。

低概率子区间rlps可以为:以当前区间的起始位置作为rlps的起始位置,以当前区间的宽度乘以所确定的概率状态的概率值作为rlps的宽度。

高概率子区间rmps可以为:以rlps的起始位置加上rlps的宽度作为rmps的起始位置,以当前区间的宽度减去rlps的宽度作为rmps宽度。

s303,确定多个连续符号中最后一个符号的类别。

其中,最后一个符号的类别可以是lps或mps。

s304,若最后一个符号为mps,则确定多个连续符号对应的区间为rmps。

s305,若最后一个符号为lps,则确定多个连续符号对应的区间为rlps。

确定出多个连续符号对应的区间后,就完成了对多个连续符号的编码,如果多个连续符号的最后一个符号是整个待编码符号序列的最后一个符号,则可以在多个符号对应的区间中任取一值,作为整个待编码符号序列的编码结果。

本发明实施例提供的方案,通过获取待编码符号序列;在预先确定的概率状态表中,查找待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的概率状态表中各概率状态对应的对数序号组、每个符号对应的概率状态的序号、每个符号的类别,确定每个符号对应的对数序号;当待编码符号序列中多个连续符号满足第一预设条件时,将多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据目标对数序号和当前区间,确定多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。

相应于图1所示方法实施例,本发明实施例提供了一种算术编码装置,如图4所示,所述装置可以包括:

获取模块401,用于获取待编码符号序列;

查找模块402,用于在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;

第一确定模块403,用于基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;

处理模块404,用于当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;

第二确定模块405,用于根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。

本发明实施例提供的方案,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。

可选地,所述查找模块402,可以包括:

第一确定子单元,用于将所述待编码符号序列中的第一个符号对应的概率状态的序号确定为1;

第一查找子单元,用于针对所述待编码符号序列中的第i个符号,根据第i-1个符号对应的概率状态的序号以及所述第i-1个符号的类别,在预先确定的概率状态表中,查找所述第i个符号对应的概率状态的序号;其中,所述i>1。

可选地,所述第一查找子单元,具体用于若第i-1个符号为高概率符号mps,则在预先确定的概率状态表中查找第i-1个符号对应的概率状态的序号si-1,并确定第i个符号对应的概率状态的序号si=si-1+1;

若第i-1个符号为低概率符号lps,则在预先确定的概率状态表中查找第i-1个符号对应的跳转序号j(si-1),并确定第i个符号对应的概率状态的序号si=j(si-1)。

可选地,所述第一预设条件为以下条件之一:

所述多个连续符号均为mps;

所述多个连续符号为满足第二预设条件的lps;

所述多个连续符号为一组或多组依次为lps、mps或依次为mps、lps的符号。

可选地,所述第二预设条件为:所述多个连续符号的lps概率之积不小于预设值;其中,所述多个连续符号中每个符号的lps概率为所述每个符号对应的概率状态的概率值。

可选地,所述第二确定模块405,可以包括:

第二确定子单元,用于确定所述目标对数序号对应的概率状态;

划分子单元,用于根据所确定的概率状态的概率值,将当前区间划分为低概率子区间rlps和高概率子区间rmps;

第三确定子单元,用于确定所述多个连续符号中最后一个符号的类别;

第四确定子单元,用于若所述最后一个符号为mps,则确定所述多个连续符号对应的区间为所述rmps;若所述最后一个符号为lps,则确定所述多个连续符号对应的区间为所述rlps。

本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,所述处理器501、所述通信接口502、所述存储器503通过所述通信总线504完成相互间的通信,

所述存储器503,用于存放计算机程序;

所述处理器501,用于执行所述存储器503上所存放的程序时,实现上述实施例中任一的算术编码方法。

本发明实施例提供的电子设备,所述处理器通过执行所述存储器上所存放的程序时,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。

上述电子设备提到的所述通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

所述通信接口用于上述电子设备与其他设备之间的通信。

所述存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,所述存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的算术编码方法。

本发明实施例提供的计算机可读存储介质内存储的指令,当其在计算机上运行时,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的算术编码方法。

本发明实施例提供的包含指令的计算程序产品,当其在计算机上运行时,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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