CN108989825A - 一种算术编码方法、装置及电子设备 - Google Patents
一种算术编码方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108989825A CN108989825A CN201810790615.7A CN201810790615A CN108989825A CN 108989825 A CN108989825 A CN 108989825A CN 201810790615 A CN201810790615 A CN 201810790615A CN 108989825 A CN108989825 A CN 108989825A
- Authority
- CN
- China
- Prior art keywords
- symbol
- serial number
- probability state
- probability
- lps
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供了一种算术编码方法、装置及电子设备,所述方法包括:获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。
Description
技术领域
本发明涉及数据压缩技术领域,特别是涉及一种算术编码方法、装置及电子设备。
背景技术
算术编码是一种高效的熵编码方法,其能以接近熵的效率对符号进行编码。算术编码过程通常包括:首先,对待编码符号序列中的每个符号的概率进行估计;然后,根据所估计的每个符号的概率,确定每个符号对应的区间,即对每个符号进行编码;最后,将待编码符号序列中的最后一个符号对应的区间中的任一值作为待编码符号序列的编码结果。
在算术编码过程中,将待编码符号序列中的每个符号划分为高概率符号(MostProbable Symbol,MPS)或低概率符号(Least Probable Symbol,LPS),系统中始终存储有两个概率值:MPS的当前概率值PMPS和LPS的当前概率值PMPS,其中,PMPS≥0.5,PLPS≤0.5,且PMPS与PLPS之和为1。每编码完一个符号,会更新PMPS和PLPS。
在先进视频编码国际标准H.264/AVC(Advanced Video Coding)或高效视频编码国际标准H.265/HEVC(High Efficiency Video Coding)中,可以通过查表法估计每个符号的概率。具体的,将符号的概率量化为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上所存放的程序时,实现上述实施例中任一的算术编码方法。
本发明实施例提供的电子设备,所述处理器通过执行所述存储器上所存放的程序时,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。
上述电子设备提到的所述通信总线可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述通信接口用于上述电子设备与其他设备之间的通信。
所述存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,所述存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的算术编码方法。
本发明实施例提供的计算机可读存储介质内存储的指令,当其在计算机上运行时,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的算术编码方法。
本发明实施例提供的包含指令的计算程序产品,当其在计算机上运行时,通过获取待编码符号序列;在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。本发明实施例通过将待编码符号序列中满足第一预设条件的多个连续符号进行并行编码,可以提高算术编码的速度。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (13)
1.一种算术编码方法,其特征在于,包括:
获取待编码符号序列;
在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;
基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;
当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;
根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。
2.根据权利要求1所述的方法,其特征在于,所述在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号,包括:
将所述待编码符号序列中的第一个符号对应的概率状态的序号确定为1;
针对所述待编码符号序列中的第i个符号,根据第i-1个符号对应的概率状态的序号以及所述第i-1个符号的类别,在预先确定的概率状态表中,查找所述第i个符号对应的概率状态的序号;其中,所述i>1。
3.根据权利要求2所述的方法,其特征在于,所述根据第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)。
4.根据权利要求1所述的方法,其特征在于,所述第一预设条件为以下条件之一:
所述多个连续符号均为MPS;
所述多个连续符号为满足第二预设条件的LPS;
所述多个连续符号为一组或多组依次为LPS、MPS或依次为MPS、LPS的符号。
5.根据权利要求4所述的方法,其特征在于,所述第二预设条件为:所述多个连续符号的LPS概率之积不小于预设值;其中,所述多个连续符号中每个符号的LPS概率为所述每个符号对应的概率状态的概率值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间,包括:
确定所述目标对数序号对应的概率状态;
根据所确定的概率状态的概率值,将当前区间划分为低概率子区间rLPS和高概率子区间rMPS;
确定所述多个连续符号中最后一个符号的类别;
若所述最后一个符号为MPS,则确定所述多个连续符号对应的区间为所述rMPS;
若所述最后一个符号为LPS,则确定所述多个连续符号对应的区间为所述rLPS。
7.一种算术编码装置,其特征在于,包括:
获取模块,用于获取待编码符号序列;
查找模块,用于在预先确定的概率状态表中,查找所述待编码符号序列中每个符号对应的概率状态的序号;
第一确定模块,用于基于预先确定的所述概率状态表中各概率状态对应的对数序号组、所述每个符号对应的概率状态的序号、所述每个符号的类别,确定所述每个符号对应的对数序号;
处理模块,用于当所述待编码符号序列中多个连续符号满足第一预设条件时,将所述多个连续符号中各符号对应的对数序号相加,得到目标对数序号;
第二确定模块,用于根据所述目标对数序号和当前区间,确定所述多个连续符号对应的区间。
8.根据权利要求7所述的装置,其特征在于,所述查找模块,包括:
第一确定子单元,用于将所述待编码符号序列中的第一个符号对应的概率状态的序号确定为1;
第一查找子单元,用于针对所述待编码符号序列中的第i个符号,根据第i-1个符号对应的概率状态的序号以及所述第i-1个符号的类别,在预先确定的概率状态表中,查找所述第i个符号对应的概率状态的序号;其中,所述i>1。
9.根据权利要求8所述的装置,其特征在于,
所述第一查找子单元,具体用于若第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)。
10.根据权利要求7所述的装置,其特征在于,所述第一预设条件为以下条件之一:
所述多个连续符号均为MPS;
所述多个连续符号为满足第二预设条件的LPS;
所述多个连续符号为一组或多组依次为LPS、MPS或依次为MPS、LPS的符号。
11.根据权利要求10所述的装置,其特征在于,所述第二预设条件为:所述多个连续符号的LPS概率之积不小于预设值;其中,所述多个连续符号中每个符号的LPS概率为所述每个符号对应的概率状态的概率值。
12.根据权利要求10所述的装置,其特征在于,所述第二确定模块,包括:
第二确定子单元,用于确定所述目标对数序号对应的概率状态;
划分子单元,用于根据所确定的概率状态的概率值,将当前区间划分为低概率子区间rLPS和高概率子区间rMPS;
第三确定子单元,用于确定所述多个连续符号中最后一个符号的类别;
第四确定子单元,用于若所述最后一个符号为MPS,则确定所述多个连续符号对应的区间为所述rMPS;若所述最后一个符号为LPS,则确定所述多个连续符号对应的区间为所述rLPS。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810790615.7A CN108989825B (zh) | 2018-07-18 | 2018-07-18 | 一种算术编码方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810790615.7A CN108989825B (zh) | 2018-07-18 | 2018-07-18 | 一种算术编码方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989825A true CN108989825A (zh) | 2018-12-11 |
CN108989825B CN108989825B (zh) | 2021-05-07 |
Family
ID=64549231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810790615.7A Active CN108989825B (zh) | 2018-07-18 | 2018-07-18 | 一种算术编码方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108989825B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501716A (zh) * | 2002-11-14 | 2004-06-02 | ���µ�����ҵ��ʽ���� | 编码装置及方法 |
CN1652611A (zh) * | 2004-02-05 | 2005-08-10 | 三星电子株式会社 | 解码方法和解码设备 |
WO2008024345A1 (en) * | 2006-08-24 | 2008-02-28 | Thomson Licensing | Adaptive region-based flipping video coding |
US20080240597A1 (en) * | 2005-12-05 | 2008-10-02 | Huawei Technologies Co., Ltd. | Method and apparatus for realizing arithmetic coding/decoding |
CN101502123A (zh) * | 2006-11-30 | 2009-08-05 | 松下电器产业株式会社 | 编码装置 |
EP2211552A1 (en) * | 2009-01-22 | 2010-07-28 | Thomson Licensing | Method and device for video coding using macroblock groups |
CN102223149A (zh) * | 2010-04-14 | 2011-10-19 | 朱洪波 | 基于概率聚合的算术编码器 |
CN103200407A (zh) * | 2013-04-16 | 2013-07-10 | 中国科学院光电技术研究所 | 一种自适应熵编码器 |
CN103535032A (zh) * | 2011-03-07 | 2014-01-22 | 奥林奇公司 | 编码和解码图像的方法、编码和解码设备、计算机程序 |
CN103748886A (zh) * | 2011-06-16 | 2014-04-23 | 弗兰霍菲尔运输应用研究公司 | 支持模式切换的熵编码 |
CN103947120A (zh) * | 2011-10-27 | 2014-07-23 | 高通股份有限公司 | 在用于视频译码的二进制算术译码器中映射状态 |
CN104394418A (zh) * | 2014-09-23 | 2015-03-04 | 清华大学 | 一种视频数据编码、解码的方法及装置 |
CN104995919A (zh) * | 2012-02-04 | 2015-10-21 | 摩托罗拉移动有限责任公司 | 用于最末重要系数位置编码中的上下文减少的设备和方法 |
CN105357539A (zh) * | 2013-01-04 | 2016-02-24 | 三星电子株式会社 | 视频解码方法和视频解码设备 |
CN106416246A (zh) * | 2014-06-20 | 2017-02-15 | 寰发股份有限公司 | 视频编码中的语法的二进制化和上下文自适应编码的方法和装置 |
CN106658012A (zh) * | 2017-01-06 | 2017-05-10 | 华南理工大学 | 一种vp9解码器并行流水线任务划分方法 |
CN107229446A (zh) * | 2017-04-26 | 2017-10-03 | 深圳市创成微电子有限公司 | 一种音频数据处理器 |
-
2018
- 2018-07-18 CN CN201810790615.7A patent/CN108989825B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501716A (zh) * | 2002-11-14 | 2004-06-02 | ���µ�����ҵ��ʽ���� | 编码装置及方法 |
CN1652611A (zh) * | 2004-02-05 | 2005-08-10 | 三星电子株式会社 | 解码方法和解码设备 |
US20080240597A1 (en) * | 2005-12-05 | 2008-10-02 | Huawei Technologies Co., Ltd. | Method and apparatus for realizing arithmetic coding/decoding |
WO2008024345A1 (en) * | 2006-08-24 | 2008-02-28 | Thomson Licensing | Adaptive region-based flipping video coding |
CN101502123A (zh) * | 2006-11-30 | 2009-08-05 | 松下电器产业株式会社 | 编码装置 |
EP2211552A1 (en) * | 2009-01-22 | 2010-07-28 | Thomson Licensing | Method and device for video coding using macroblock groups |
CN102223149A (zh) * | 2010-04-14 | 2011-10-19 | 朱洪波 | 基于概率聚合的算术编码器 |
CN103535032A (zh) * | 2011-03-07 | 2014-01-22 | 奥林奇公司 | 编码和解码图像的方法、编码和解码设备、计算机程序 |
CN103748886A (zh) * | 2011-06-16 | 2014-04-23 | 弗兰霍菲尔运输应用研究公司 | 支持模式切换的熵编码 |
CN103947120A (zh) * | 2011-10-27 | 2014-07-23 | 高通股份有限公司 | 在用于视频译码的二进制算术译码器中映射状态 |
CN104995919A (zh) * | 2012-02-04 | 2015-10-21 | 摩托罗拉移动有限责任公司 | 用于最末重要系数位置编码中的上下文减少的设备和方法 |
CN105357539A (zh) * | 2013-01-04 | 2016-02-24 | 三星电子株式会社 | 视频解码方法和视频解码设备 |
CN103200407A (zh) * | 2013-04-16 | 2013-07-10 | 中国科学院光电技术研究所 | 一种自适应熵编码器 |
CN106416246A (zh) * | 2014-06-20 | 2017-02-15 | 寰发股份有限公司 | 视频编码中的语法的二进制化和上下文自适应编码的方法和装置 |
CN104394418A (zh) * | 2014-09-23 | 2015-03-04 | 清华大学 | 一种视频数据编码、解码的方法及装置 |
CN106658012A (zh) * | 2017-01-06 | 2017-05-10 | 华南理工大学 | 一种vp9解码器并行流水线任务划分方法 |
CN107229446A (zh) * | 2017-04-26 | 2017-10-03 | 深圳市创成微电子有限公司 | 一种音频数据处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN108989825B (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020248187A1 (zh) | 一种点云编码方法、点云解码方法及相关设备 | |
JP6797281B2 (ja) | 符号化方法およびデバイスならびに装置 | |
WO2017193716A1 (zh) | 一种极化码的编码和速率匹配方法、装置及设备 | |
TWI694712B (zh) | 編解碼符號之熵編解碼方法與裝置 | |
WO2020119487A1 (zh) | 点云的编解码方法及装置 | |
US20180199046A1 (en) | Method and Apparatus for Range Derivation in Context Adaptive Binary Arithmetic Coding | |
CN109977415A (zh) | 一种文本纠错方法及装置 | |
CN114817651A (zh) | 数据存储方法、数据查询方法、装置和设备 | |
CN108989825A (zh) | 一种算术编码方法、装置及电子设备 | |
EP3890320A1 (en) | Point cloud encoding method and encoder | |
CN108810543B (zh) | 视频编码的补偿方法、装置及电子设备 | |
CN109068144A (zh) | 一种概率估计方法、装置及电子设备 | |
CN105516727A (zh) | 一种图像编码方法及装置 | |
CN110377822A (zh) | 用于网络表征学习的方法、装置及电子设备 | |
US9923576B2 (en) | Decoding techniques using a programmable priority encoder | |
Borysenko et al. | The Fibonacci numeral system for computer vision | |
CN107645665A (zh) | 一种WebP熵编码的方法及装置 | |
CN114760481A (zh) | 一种视频编码方法、装置、设备及存储介质 | |
CN103428502A (zh) | 一种解码方法及解码系统 | |
US9722631B2 (en) | Method and apparatus for calculating estimated data compression ratio | |
CN107026652B (zh) | 基于分区的正整数序列压缩方法 | |
US10742783B2 (en) | Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities | |
CN110350922A (zh) | 一种二进制编码的寻址方法及寻址器 | |
CN111126465B (zh) | 节点分类方法、装置、终端设备及计算机可读存储介质 | |
CN109005413A (zh) | 一种算术编码中的概率估计方法、装置及电子设备 |
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 |