CN103024380B - 一种数据的熵编码方法和装置 - Google Patents

一种数据的熵编码方法和装置 Download PDF

Info

Publication number
CN103024380B
CN103024380B CN201210535423.4A CN201210535423A CN103024380B CN 103024380 B CN103024380 B CN 103024380B CN 201210535423 A CN201210535423 A CN 201210535423A CN 103024380 B CN103024380 B CN 103024380B
Authority
CN
China
Prior art keywords
bin
group
string
context model
bin string
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
CN201210535423.4A
Other languages
English (en)
Other versions
CN103024380A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201210535423.4A priority Critical patent/CN103024380B/zh
Publication of CN103024380A publication Critical patent/CN103024380A/zh
Application granted granted Critical
Publication of CN103024380B publication Critical patent/CN103024380B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种数据的熵编码方法和装置;对待解码或者编码数据的二值化的bin串进行了分组,并且第一个组中bin的个数并不是固定的,从而使得第二个组的第一个bin的二进制序列序号并不是全相同的。第二组被划分成了至少一段,第二组第一段的bin用同一套上下文模型。本发明应用于数字信号处理领域,尤其是编解码领域。本发明的方法结合了特殊的二值化方法,实现了在bin串中不同位置的bin共用一套上下文模型。

Description

一种数据的熵编码方法和装置
技术领域
本发明涉及一种熵编码技术,尤其涉及一种基于上下文的自适应的二进制算术编码方法和装置。
背景技术
熵编码是用在视频编码的最后一个阶段的一种无损压缩方法,其输入是转变为一系列语法元素的视频数据。这些语法元素可以在解码端被解析出来并进一步重建出视频序列。语法元素大致分为两类:预测方法和预测误差。熵编码的作用是将这些语法元素无损的编码入码流中。
基于上下文的自适应二进制算术编码(CABAC)是一种广泛用于视频编码的熵编码方法,首次出现于H.264/AVC中,现在也在AVS1,AVS2,HEVC等标准中使用,其中包括三个主要功能单元,二值化、上下文建模和算术编码。二值化将语法元素映射为二进制符号,上下文建模为每个bin估计一个概率值。最后算术编码依据估计的概率值将bin压缩为bit。
二值化的方法有很多,常见的有一元码,截断一元码,指数哥伦布码和定长码等二值化方法。二值化指的是将每个非二进制的语法元素值映射成一个bin串,所有的bin串都不全相同。bin串中的每个bin都会按照其写入码流的顺序拥有一个从0开始的二进制序列序号。反二值化的过程即为一个查表的过程,每个bin串都唯一对应一个语法元素值,通过查二值化的表可以找出要解析的bin串对应的语法元素值。解析bin串的过程是一个寻找一个可以反二值化的bin串的过程,即如果当前已解析的bin串可以反二值化为一个语法元素,解析bin串完毕;否则,继续解析下一个bin,直到bin串可以反二值化为一个语法元素。
上下文建模是为了提供比较精确的概率估计而建立一系列概率模型。有相似的概率分布的bin往往共用相同的上下文模型。上下文模型中存储两个值,一个是概率状态,一个是最有可能出现的bin的值(MPS),上下文模型的概率状态是依据已编码bin的值进行更新过的,每编完一个bin都会对所用的上下文模型中的概率状态和MPS造成影响。上下文模型的选择主要依据是每个bin的语法元素类型,在bin串中的位置,色度还是亮度,相邻信息等。以前的上下文建模方法中几乎没有在bin串中位置不同的bin共用一个上下文模型。共用一个上下文模型指的是共用一个上下文模型的bin用同一个上下文模型进行概率估计,同时该上下文模型统计的是已经编码的用该上下文模型进行概率估计的bin的情况,该上下文模型是依照这些统计的bin建立的概率模型。随着二值化方法的不断更新和改进,这种情况还是有必要的。
算术编码是基于迭代的区间划分的编码方法。解析bin的过程为:初值为0到1的区间根据bin的概率值,被划分为两子区间。编码的bit流提供了一个以二进制小数表示的偏移值,依据该偏移值可以从两个子区间中选择一个,该区间就代表解码出来的bin的值。在解析bin之后,区间的宽度值都被更新为所选的子区间的宽度,然后不断重复这个区间的划分过程。编码bin过程与之相反,区间根据bin的概率值,被划分为两子区间,在编码的bin所对应出的区间内找一个一个以二进制小数表示的偏移值作为编码的bin。在编码完一个bin后,区间的宽度值都被更新为所选的子区间的宽度,然后不断重复这个区间的划分过程。算术边编码的概率估计可以用一个估计得到的概率值进行(上下文编码),也可以假设一个等概率值进行(旁路编码)。
发明内容
本发明针对现有技术的不足,提出了一种数据的熵编码方法和装置,本发明能进行更高效数据压缩,能使bin串中不同二进制序列序号的bin用同一个上下文模型进行编码。
本发明的目的是通过以下技术方案来实现的:一种语法元素的熵编码方法,熵编码过程至少包括以下步骤:
(1)对输入语法元素值进行二值化;二值化之后的bin串包括n(n>=2)个bin串组,第i个bin串组中包含Ni个bin,其中i=1…n,Ni>=1,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号;至少有两个不同的语法元素值进行二值化后的bin串的第一个bin串组所包含的bin的个数不相同;第二个bin串组包括k个段,其中k>=1,第二个bin串组的第j段bin串包含Kj个bin,其中j=1,…k,K1>=1,且第二个bin串的第j段bin串中任一bin的二进制序列序号小于第二个bin串的第j+1段bin串中任一bin的二进制序列序号;
(2)对所述的第二个bin串组的第1段bin串采用同一套上下文模型进行熵编码。
一种语法元素的熵解码方法,熵解码过程至少包括以下步骤:
(1)解析第一组bin,对于所述的语法元素至少存在两个不同的语法元素值,使得这两个语法元素值对应的第一组bin的个数不同;
(2)对于所述的语法元素用同一套上下文模型解析出第二组数据的第一段bin,所述的第二组第一段bin的个数为m,m>=1;
(3)根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值,所述的bin串至少包括第一组bin和第二组第一段bin,并且由第一组bin开始,第二组第一段bin紧随第一组bin。
一种经过二值化的数据类型及码流,数据二值化之后的bin串包括n(n>=2)个bin串组,第i个bin串组中包含Ni个bin,其中i=1…n,Ni>=1,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号;至少有两个不同的语法元素值进行二值化后的bin串的第一个bin串组所包含的bin的个数不相同;第二个bin串组包括k个段,其中k>=1,第二个bin串组的第j段bin串包含Kj个bin,其中j=1,…k,K1>=1,第二个bin串的第j段bin串中任一bin的二进制序列序号小于第二个bin串的第j+1段bin串中任一bin的二进制序列序号;所述的第二组中的第1段bin串采用同一套上下文模型进行熵编码。
一种语法元素的熵编码装置,它包括:
一对输入语法元素进行二值化的装置:二值化之后的bin串包括n(n>=2)个bin串组,第i个bin串组中包含Ni个bin,其中i=1…n,Ni>=1,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号;至少有两个不同的语法元素值进行二值化后的bin串的第一个bin串组所包含的bin的个数不相同;第二个bin串组包括k个段,其中k>=1,第二个bin串组的第j段bin串包含Kj个bin,其中j=1,…k,K1>=1,第二个bin串的第j段bin串中任一bin的二进制序列序号小于第二个bin串的第j+1段bin串中任一bin的二进制序列序号;和
一上下模型选择装置:上下模型选择装置与对输入语法元素进行二值化的装置相连,在该装置中所述的第二个bin串组的第1段bin串采用同一套上下文模型进行熵编码
一种语法元素的熵解码装置,它包括:
一解析第一组bin的装置:对于所述的语法元素至少存在两个不同的语法元素值,使得这两个语法元素值对应的第一组bin的个数不同;
一解析第二组数据第一段bin的装置:解析第二组数据第一段bin的装置与解析第一组bin的装置相连,对于所述的语法元素用同一套上下文模型解析出第二组数据的第一段bin,所述的第二组第一段bin的个数为m,m>=1;和
一解析语法元素的装置:解析语法元素的装置与解析第二组数据第一段bin的装置相连,根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值,所述的bin串至少包括第一组bin和第二组第一段bin,并且由第一组bin开始,第二组第一段bin紧随第一组bin。
进一步地,上述同一套上下文模型包括以下之一:
(1)整个段的所有bin用一个上下文模型;
(2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
本发明的有益效果为:本发明对数据的二值化的bin串进行了分组,并且第一个组中bin的个数并不是固定的,从而使得第二个组的第一个bin的二进制序列序号并不是全相同的。第二组被划分成了至少一段,第二组第一段的bin用同一套上下文模型,实现了不同二进制序列序号的bin共用一套上下文模型。
附图说明
图1是实施例9的一种语法元素的熵编码装置的结构框图;
图2是实施例10的一种语法元素的熵解码装置的结构框图;
图3是实施例11的一种语法元素的熵解码装置的结构框图。
具体实施方式
现在将对本发明的实施例进行详细论述。本发明的主要思想是将一个语法元素二值化之后的bin串分成至少二组,第一组包括的bin的个数不全相等,第二组被划分成至少一段。第二组的第一段的bin用同一套上下文模型。
本发明关于语法元素的熵编码的方法,在视频或图像编码过程中包括以下步骤:
步骤一:将语法元素进行二值化。
将每个非二进制的语法元素值映射成一个bin串,所有的bin串都不全相同。二值化后的bin串有如下特点:
二值化之后的bin串包括n(n>=2)个组,每个bin串组中至多包含Ni(Ni>=1)个bin(i=1…n),第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号,至少有二个数据值的第一组的bin的个数不相同。第二组中的bin串包括至少k个段(k>=1),各段bin串至多包含Kj(k1>=1)个bin(j=1,…k),第二个bin串的第j段bin串中任一bin的二进制序列序号小于第二个bin串的第j+1段bin串中任一bin的二进制序列序号
步骤二:为二值化的语法元素选择合理的上下文模型
依据各自二值化的bin串特性根据bin的聚类性设计、选择和建立上下文模型。上下文模型的选择方法有很多,其中包括几个bin用一个上下文模型,一个bin用一个上下文模型,一个bin用几个上下文模型,所有bin用一个上下文模型等。本发明设计的上下文模型选择方法的为:步骤一中第二组中的第1段bin采用同一套上下文模型。其余的bin的上下文模型选择在此不做规定,可以为前面所述的方法中的一个或者几个。同一套上下文模型包括以下之一:
1)整个段的所有bin用一个上下文模型;
2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
本发明关于语法元素的熵编码的方法,此熵编码在视频或图像解码过程中包括以下步骤:
步骤一:解析第一组bin,对于所述的语法元素至少存在两个不同的语法元素值,使得该语法元素值对应的第一组bin的个数不同。
解析bin串的过程是一个寻找一个可以反二值化的bin串的过程,即如果当前已解析的bin串可以反二值化为一个语法元素,解析bin串完毕;否则,继续解析下一个bin,直到bin串可以反二值化为一个语法元素。其中,解析bin的过程为:初值为0到1的区间根据bin的概率值,被划分为两子区间。编码的bit流提供了一个以二进制小数表示的偏移值,依据该偏移值可以从两个子区间中选择一个,该区间就代表解码出来的bin的值,在解析bin之后,区间的宽度值都被更新为所选的子区间的宽度,然后不断重复这个区间的划分过程。bin的概率值由对应的上下文模型进行估计。上下文模型根据bin的聚类性设计、建立和选择。反二值化的过程即为一个查表的过程,每个bin串都唯一对应一个语法元素值,通过查二值化的表可以找出要解析的bin串对应的语法元素值。
步骤一的特点为所述的语法元素至少存在两个不同的语法元素值,使得该语法元素值对应的第一组bin的个数不同。
步骤二:对于所述的语法元素用同一套上下文模型解析出第二组数据的第一段bin,所述的第二组第一段bin的个数为m,m>=1;
解析bin串的过程是一个寻找一个可以反二值化的bin串的过程,即如果当前已解析的bin串可以反二值化为一个语法元素,解析bin串完毕;否则,继续解析下一个bin,直到bin串可以反二值化为一个语法元素。其中解析bin的过程为:初值为0到1的区间根据bin的概率值,被划分为两子区间。编码的bit流提供了一个以二进制小数表示的偏移值,依据该偏移值可以从两个子区间中选择一个,该区间就代表解码出来的bin的值,在解析bin之后,区间的宽度值都被更新为所选的子区间的宽度,然后不断重复这个区间的划分过程。bin的概率值由对应的上下文模型进行估计。上下文模型根据bin的聚类性设计、建立和选择。反二值化的过程即为一个查表的过程,每个bin串都唯一对应一个语法元素值,通过查二值化的表可以找出要解析的bin串对应的语法元素值。
步骤二的特点为:在解析第二组数据的第一段bin的时候用同一套上下文模型,同一套上下文模型包括以下之一:
1)整个段的所有bin用一个上下文模型;
2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
步骤三:根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值,所述的bin串至少包括第一组bin和第二组第一段bin,并且由第一组bin开始,第二组第一段bin紧随第一组bin。
该语法元素的bin串至少包括第一组的bin和第二组第一段的bin。如果存在其他的bin串,则在解析完第一组的bin和第二组第一段的bin之后继续解析剩余的bin串。由第一组bin开始,第二组第一段bin紧随第一组bin,剩余bin紧随第二组第一段bin的顺序形成语法元素的bin串。如果只有第一组的bin和第二组第一段的bin,则语法元素的bin串为第一组bin开始,第二组第一段bin紧随第一组bin。反二值化的过程即为一个查表的过程,每个bin串都唯一对应一个语法元素值,通过查二值化的表可以找出要解析的bin串对应的语法元素值。
下面根据附图和实施例详细描述本发明,本发明的目的和效果将变得更加明显。其中,实施例1.2.中bin串分为两个组,只有第一组和第二组的第一段;实施例3.4中bin串分为两个组,有第一组和第二组的两个段;实施例5.6中bin串分为三个组,有第一组,第二组的两个段和第三组;实施例7.8中bin串分为两个个组,第二个组分为三个段;实施例9是编码器的装置;实施例10是解码器的装置(只有第一组和第二组第一段bin);实施例11是解码器的装置。
实施例1
以一个语法元素A为例,A表示元素A1,A2的值,其中A1有3种可能的值,A2有2种可能的值,因此,语法元素A有6种可能的值。下面描述对语法元素A进行二值化,并且选择合适的上下文模型的方法。具体实施步骤如下:
步骤一:将语法A进行二值化,二值化的方法见表1
表1.语法元素A的二值化方法
表中最左边一栏为语法元A的取值,右边为该取值二值化后的bin串
其中二值化之后的bin串分为2个组,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号。第一组最多包括2个bin。第一组所包含的bin的个数可能为1,2中任意一个。第二组分为一段。
步骤二:为二值化的语法元素选择合理的上下文模型
上下文模型选择的情况见表2
表2.语法元素A的上下文建模方法
第二组的第一段有1个bin,这个bin用上下文模型3,第一组每个位置的bin用了一个上下文模型。
实施例2:
以一个语法元素A为例,A表示元素A1,A2的值,其中A1有3种可能的值,A2有2种可能的值,因此,语法元素A有6种可能的值。下面描述,选择合适的上下文模型,从码流中解析出bin串,最后反二值化解析得出A的方法。具体实施步骤如下:
步骤一:解析第一组bin
解析bin串的方法见背景介绍,二值化的表格见表1,设计的上下文模型见表2。第一组的bin的个数可能为一个也可能为2个。
步骤二:用同的一套上下文模型解析出第二组数据的第一段bin
解析bin串的方法见背景介绍,二值化的表格见表1,设计的上下文模型见表2。这里第二组第一段bin的个数为一个。第二组第一段的bin用都用上下文模型3进行解析。这里所说的用同一套上下文模型指的是第二组第一段bin都用上下文模型3。
步骤三:根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值。
由于该语法元素的二值化的bin串中只有第一组和第二组的第一段,因此通过步骤一和步骤二就已经解析出该语法元素对应的bin串,其中由第一组bin开始,第二组第一段bin紧随第一组bin。反二值化过程见背景介绍。二值化的表格见表1
实施例3:
以一个语法元素B为例,B表示元素B1,B2的值,其中B1有4种可能的值,B2有4种可能的值,因此,语法元素B有16种可能的值。下面描述对语法元素B进行二值化,并且选择合适的上下文模型的方法。具体实施步骤如下:
步骤一:将语法B进行二值化,二值化的方法见表B
表3.语法元素B的二值化方法
表中最左边一栏为语法元B的取值,右边为该取值二值化后的bin串。
其中二值化之后的bin串分为2个组,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号。第一组最多包括3个bin。第一组所包含的bin的个数可能为1,2,3中任意一个。第二组分为两段,第1个bin分为一段,第2,3个bin分为一段
步骤二:为二值化的语法元素选择合理的上下文模型上下文模型选择的情况见表4
表4.语法元素B的上下文建模方法
第二组的第一段只有一个bin,它们共用了一个上下文模型4。第一组每个位置的bin用了一个上下文模型。第二组的第二段为2个bin,根据第一组的数值不同,分配了8个上下文模型。
实施例4:
以一个语法元素B为例,B表示元素B1,B2的值,其中B1有3种可能的值,B2有2种可能的值,因此,语法元素B有6种可能的值。下面描述,选择合适的上下文模型,从码流中解析出bin串,最后反二值化解析得出B的方法。具体实施步骤如下:
步骤一:解析第一组bin,
解析bin串的方法见背景介绍,二值化的表格见表3,设计的上下文模型见表4。第一组的bin的个数可能为1个也可能为2个还可能为3个。
步骤二:用同的一套上下文模型解析出第二组数据的第一段bin
解析bin串的方法见背景介绍,二值化的表格见表3,设计的上下文模型见表4。这里第二组第一段bin的个数为一个,第二组第一段的bin用都用上下文模型4进行解析。这里所说的用同一套上下文模型指的是第二组第一段所有bin都用上下文模型4。
步骤三:根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值。
由于该语法元素的二值化的bin串中不只有第一组和第二组的第一段,还包括了第二组的第二段,因此在步骤一,二之后还需要解析出第二组第二段的bin。该语法元素对应的bin串,由第一组bin开始,第二组第一段bin紧随第一组bin,第二组第二段的bin紧随第二组第一段的bin组成。反二值化过程见背景介绍。二值化的表格见表3
实施例5
以一个语法元素C为例,C表示元素C1,C2,C3的值,其中C1,C2,C3各有3个可能的值,因此,语法元素C有27种可能的值。下面描述对语法元素C进行二值化,并且选择合适的上下文模型的方法。具体实施步骤如下:
步骤一:将语法C进行二值化,二值化的方法见表5。
表5.语法元素C的二值化方法
表中最左边一栏为语法元C的取值,右边为该取值二值化后的bin串。
其中二值化之后的bin串分为3个组,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号。第一组最多包括2个bin。第一组所包含的bin的个数可能为1,2中任意一个。第二组分为两段,第1个bin分为一段,第2个bin分为一段,并且语法元素C的二值化的bin串中有第三组,第三组至多包括2个bin
步骤二:为二值化的语法元素选择合理的上下文模型
上下文模型选择的情况见表6:
表6.语法元素C的上下文建模方法
第二组的第一段只有一个bin,它们共用了一个上下文模型3。第一组每个位置的bin用了一个上下文模型。第二组的第二段为2个bin,根据第一组的数值不同,分配了4个上下文模型。第三组的每个位置的bin各自分配了一个上下文模型。
实施例6:
以一个语法元素C为例,C表示元素C1,C2,C3的值,其中C1,C2,C3各有3个可能的值,因此,语法元素C有27种可能的值。下面描述,选择合适的上下文模型,从码流中解析出bin串,最后反二值化解析得出C的方法。具体实施步骤如下:
步骤一:解析第一组bin,
解析bin串的方法见背景介绍,二值化的表格见表5,设计的上下文模型见表6。第一组的bin的个数可能为1个也可能为2。
步骤二:用同的一套上下文模型解析出第二组数据的第一段bin
解析bin串的方法见背景介绍,二值化的表格见表5,设计的上下文模型见表6。这里第二组第一段bin的个数为一个,第二组第一段的bin用都用上下文模型3进行解析。这里所说的用同一套上下文模型指的是第二组第一段所有bin都用上下文模型3。
步骤三:根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值。
由于该语法元素的二值化的bin串中不只有第一组和第二组的第一段,还包括了第二组的第二段和第三组,因此在步骤一二之后还需要依次解析出第二组第二段的bin和第三组的bin。该语法元素对应的bin串,由第一组bin开始,第二组第一段bin紧随第一组bin,第二组第二段的bin紧随第二组第一段的bin,第三组的bin紧随第二组第二段的bin组成。反二值化过程见背景介绍。二值化的表格见表5
实施例7
以一个语法元素D为例,D表示元素D1,D2的值,其中D1有3种可能的值,D2有5种可能的值,因此,语法元素D有15种可能的值。下面描述对语法元素D进行二值化,并且选择合适的上下文模型的方法。具体实施步骤如下:
步骤一:将语法D进行二值化,二值化的方法见表7
表7.语法元素D的二值化方法
表中最左边一栏为语法元素D的取值,右边为该取值二值化后的bin串。
其中二值化之后的bin串分为3个组,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号。第一组最多包括2个bin。第一组所包含的bin的个数可能为1,2中任意一个。第二组分为三段,第1,2个bin分为一段,第3个bin为一段,第4个bin分为一段。
步骤二:为二值化的语法元素选择合理的上下文模型
上下文模型选择的情况见表8:
表8.语法元素D的上下文建模方法
第二组的第一段有2个bin,他们都用了上下文模型3。第一组每个位置的bin用了一个上下文模型。第二组第二段为一个bin,用一个上下文模型,第二组的第三段为1个bin,根据第一组的数值不同,分配了3个上下文模型。
实施例8:
以一个语法元素D为例,D表示元素D1,D2的值,其中D1有3种可能的值,D2有5种可能的值,因此,语法元素D有15种可能的值。下面描述选择合适的上下文模型,从码流中解析出bin串,最后反二值化解析得出D的方法。具体实施步骤如下:
步骤一:解析第一组bin,
解析bin串的方法见背景介绍,二值化的表格见表7,设计的上下文模型见表8。第一组的bin的个数可能为1个也可能为2。
步骤二:用同的一套上下文模型解析出第二组数据的第一段bin
解析bin串的方法见背景介绍,二值化的表格见表7,设计的上下文模型见表8。这里第二组第一段bin的个数为2个,都用上下文模型3进行解析。
步骤三:根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值。
由于该语法元素的二值化的bin串中不只有第一组和第二组的第一段,还包括了第二组的第二段和第二组的第三段,因此在步骤一二之后还需要解析出第二组第二段的bin和第二组第三段的bin。该语法元素对应的bin串,由第一组bin开始,第二组第一段bin紧随第一组bin,第二组第二段的bin紧随第二组第一段的bin,第二组第三段的bin紧随第二组第二段的bin组成。反二值化过程见背景介绍。二值化的表格见表7
实施例9
一个实际编码器语法元素的熵编码装置,如图1所示,包括二值化单元,上下文模型选择单元。具体实施如下:
1)在二值化单元中对输入语法元素进行二值化,二值化之后的bin串包括n(n>=2)个bin串组,第i个bin串组中包含Ni个bin,其中i=1…n,Ni>=1,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号;至少有两个不同的语法元素值进行二值化后的bin串的第一个bin串组所包含的bin的个数不相同;第二个bin串组包括k个段,其中k>=1,第二个bin串组的第j段bin串包含Kj个bin,其中j=1,…k,K1>=1,第二个bin串的第j段bin串中任一bin的二进制序列序号小于第二个bin串的第j+1段bin串中任一bin的二进制序列序号;
2)在上下文模型选择单元中对所要编码的bin选择上下文模型,其中对所述的第二个bin串组的第1段bin串采用同一套上下文模型进行熵编码
实施例10
一个实际编码器语法元素的熵解码码装置,如图2所示,解析第一组bin的单元,解析第二组第一段bin的单元,解析语法元素的单元。具体实施如下:
1)在解析第一组bin的单元中解析第一组bin,对于所述的语法元素至少存在两个不同的语法元素值,使得这两个语法元素值对应的第一组bin的个数不同;
2)在解析第二组第一段bin的单元中解析第二组第一段bin,对于所述的语法元素用同一套上下文模型解析出第二组数据的第一段bin,所述的第二组第一段bin的个数为m,m>=1;
3)在解析语法元素的单元中,由前两个单元解析出的bin组成语法元素的bin串,第一组bin开始,第二组第一段bin紧随第一组bin。然后所述的bin串经过反二值化过程解析得到语法元素的值。
实施例11
一个实际编码器语法元素的熵解码码装置,如图3所示,解析第一组bin的单元,解析第二组第一段bin的单元,解析语法元素的单元。具体实施如下:
1)在解析第一组bin的单元中解析第一组bin,对于所述的语法元素至少存在两个不同的语法元素值,使得这两个语法元素值对应的第一组bin的个数不同;
2)在解析第二组第一段bin的单元中解析第二组第一段bin,对于所述的语法元素用同一套上下文模型解析出第二组数据的第一段bin,所述的第二组第一段bin的个数为m,m>=1;
3)在解析语法元素的单元中,包括两个子单元,分别为剩余bin的解析单元和反二值化单元,首先在剩余bin的解析单元中根据解析bin串的规则,解析出语法元素的bin串中除了第一组与第二组第一段的bin。然后在反二值化单元中按照第一组bin开始,第二组第一段bin紧随第一组bin,剩余的bin紧随第二组第一段bin的顺序组成语法元素的bin串,然后所述的bin串经过反二值化过程解析得到语法元素的值。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种语法元素的熵编码方法,特征在于,熵编码过程至少包括以下步骤:
步骤1:对输入语法元素值进行二值化;二值化之后的bin串包括n个bin串组,n>=2,第i个bin串组中包含Ni个bin,其中i=1…n,Ni>=1,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号;至少有两个不同的语法元素值进行二值化后的bin串的第一个bin串组所包含的bin的个数不相同;第二个bin串组包括k个段,其中k>=1,第二个bin串组的第j段bin串包含Kj个bin,其中j=1,…k,K1>=1,且第二个bin串组的第j段bin串中任一bin的二进制序列序号小于第二个bin串组的第j+1段bin串中任一bin的二进制序列序号;
步骤2:对所述的第二个bin串组的第1段bin串采用同一套上下文模型进行熵编码。
2.根据权利要求1所述的熵编码方法,其特征在于,所述步骤2中,所述同一套上下文模型包括以下之一:
(1)整个段的所有bin用一个上下文模型;
(2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
3.一种语法元素的熵解码方法,特征在于,熵解码过程至少包括以下步骤:
步骤1:解析第一组bin,对于所述的语法元素至少存在两个不同的语法元素值,使得这两个语法元素值对应的第一组bin的个数不同;
步骤2:对于所述的语法元素用同一套上下文模型解析出第二组第一段bin,所述的第二组第一段bin的个数为m,m>=1;
步骤3:根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值,所述的bin串至少包括第一组bin和第二组第一段bin,并且由第一组bin开始,第二组第一段bin紧随第一组bin。
4.根据权利要求3所述的熵解码方法,其特征在于,所述步骤2中,所述同一套上下文模型包括以下之一:
(1)整个段的所有bin用一个上下文模型;
(2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
5.一种语法元素的熵编码装置,其特征在于,它包括:
一对输入语法元素进行二值化的装置:二值化之后的bin串包括n个bin串组,n>=2,第i个bin串组中包含Ni个bin,其中i=1…n,Ni>=1,第i个bin串组中任一bin的二进制序列序号小于第i+1bin串组中任一bin的二进制序列序号;至少有两个不同的语法元素值进行二值化后的bin串的第一个bin串组所包含的bin的个数不相同;第二个bin串组包括k个段,其中k>=1,第二个bin串组的第j段bin串包含Kj个bin,其中j=1,…k,K1>=1,第二个bin串组的第j段bin串中任一bin的二进制序列序号小于第二个bin串组的第j+1段bin串中任一bin的二进制序列序号;和
一上下模型选择装置:上下模型选择装置与对输入语法元素进行二值化的装置相连,在上下模型选择装置中所述的第二个bin串组的第1段bin串采用同一套上下文模型进行熵编码。
6.根据权利要求5所述的熵编码装置,其特征在于,所述同一套上下文模型包括以下之一:
(1)整个段的所有bin用一个上下文模型;
(2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
7.一种语法元素的熵解码装置,其特征在于,它包括:
一解析第一组bin的装置:对于所述的语法元素至少存在两个不同的语法元素值,使得这两个语法元素值对应的第一组bin的个数不同;
一解析第二组数据第一段bin的装置:解析第二组数据第一段bin的装置与解析第一组bin的装置相连,对于所述的语法元素用同一套上下文模型解析出第二组数据第一段bin,所述的第二组数据第一段bin的个数为m,m>=1;和
一解析语法元素的装置:解析语法元素的装置与解析第二组数据第一段bin的装置相连,根据解析bin串的规则,解析出该语法元素对应的bin串,所述的bin串经过反二值化过程解析得到语法元素的值,所述的bin串至少包括第一组bin和第二组数据第一段bin,并且由第一组bin开始,第二组数据第一段bin紧随第一组bin。
8.根据权利要求7所述的熵解码装置,其特征在于,所述同一套上下文模型包括以下之一:
(1)整个段的所有bin用一个上下文模型;
(2)整个段的所有bin根据相同的上下文规则决定使用多个上下文模型中的一个。
CN201210535423.4A 2012-12-10 2012-12-10 一种数据的熵编码方法和装置 Active CN103024380B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210535423.4A CN103024380B (zh) 2012-12-10 2012-12-10 一种数据的熵编码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210535423.4A CN103024380B (zh) 2012-12-10 2012-12-10 一种数据的熵编码方法和装置

Publications (2)

Publication Number Publication Date
CN103024380A CN103024380A (zh) 2013-04-03
CN103024380B true CN103024380B (zh) 2016-04-13

Family

ID=47972454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210535423.4A Active CN103024380B (zh) 2012-12-10 2012-12-10 一种数据的熵编码方法和装置

Country Status (1)

Country Link
CN (1) CN103024380B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104949B (zh) * 2013-04-12 2018-01-09 浙江大学 一种方向信息语法元素的熵编解码方法和装置
CN110891180B (zh) * 2018-09-10 2023-11-17 华为技术有限公司 视频解码方法及视频解码器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1719903A (zh) * 2005-06-24 2006-01-11 清华大学 用于图象算术编码中的一种二值化和概率模型选择方法
WO2007014509A1 (fr) * 2005-08-04 2007-02-08 Huawei Technologies Co., Ltd. Système et appareil de décodage arithmétique adaptatif basé sur le contexte
EP2091257A1 (en) * 2006-11-30 2009-08-19 Panasonic Corporation Coder
CN102186087A (zh) * 2011-06-24 2011-09-14 哈尔滨工业大学 用于二进制算术编码可并行的非零系数上下文建模方法
CN102231830A (zh) * 2010-11-23 2011-11-02 浙江大学 用于上下文算术编解码的运算单元
CN102404571A (zh) * 2011-11-22 2012-04-04 浙江大学 视频图像编解码中的二进制化的方法和装置
CN102650969A (zh) * 2011-02-27 2012-08-29 浙江大学 一种获取、更新bin的上下文概率模型值的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1719903A (zh) * 2005-06-24 2006-01-11 清华大学 用于图象算术编码中的一种二值化和概率模型选择方法
WO2007014509A1 (fr) * 2005-08-04 2007-02-08 Huawei Technologies Co., Ltd. Système et appareil de décodage arithmétique adaptatif basé sur le contexte
EP2091257A1 (en) * 2006-11-30 2009-08-19 Panasonic Corporation Coder
CN102231830A (zh) * 2010-11-23 2011-11-02 浙江大学 用于上下文算术编解码的运算单元
CN102650969A (zh) * 2011-02-27 2012-08-29 浙江大学 一种获取、更新bin的上下文概率模型值的方法及装置
CN102186087A (zh) * 2011-06-24 2011-09-14 哈尔滨工业大学 用于二进制算术编码可并行的非零系数上下文建模方法
CN102404571A (zh) * 2011-11-22 2012-04-04 浙江大学 视频图像编解码中的二进制化的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于上下文的自适应二进制算术编码研究;谢林 等;《浙江大学学报(工学版)》;20050630;第39卷(第6期);第900-914页 *

Also Published As

Publication number Publication date
CN103024380A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
US7385535B2 (en) Decoding system and method based on context-based adaptive binary arithmetic coding
KR102588145B1 (ko) 엔트로피 인코딩 및 디코딩 방식
US7982641B1 (en) Context-based adaptive binary arithmetic coding engine
CN107517383B (zh) 解码器、编码器、解码方法、编码方法以及存储介质
CA2798125C (en) Method and device for compression of binary sequences by grouping multiple symbols
CN102783154B (zh) 采用双码集的编码和解码方法和设备
JP2002016500A (ja) 複数のマッピングテーブルを用いた可変長符号化及び復号化方法、並びにその装置
CN102868882A (zh) 在cabac中使用分离的绝对值和符号(savs)对dpq进行二元化
CN103227924B (zh) 一种算术编码器及编码方法
US10127913B1 (en) Method of encoding of data stream, method of decoding of data stream, and devices for implementation of said methods
CN100423582C (zh) 一种用于将待编码数据进行二进制化编码的方法和装置
CN103974066B (zh) 视频编码方法和设备
CN102547294A (zh) 适用于h.264和hevc视频标准的cabac硬件解码器架构
CN103024380B (zh) 一种数据的熵编码方法和装置
CN104378634A (zh) 输入符号二值化的方法以及从码字中产生索引值的方法
CN108965878A (zh) 一种熵解码方法及装置
CN100551064C (zh) 变长编码方法及装置
KR20100009032A (ko) 데이터 무손실 압축 방법
CN103051895B (zh) 一种上下文模型选择的方法和装置
CN102638680A (zh) 基于硬件的cabac编码方法及系统
CN101267559A (zh) 视频解码器的通用熵解码方法及装置
CN114429200A (zh) 规范化哈夫曼编解码方法及神经网络计算芯片
CN104104949B (zh) 一种方向信息语法元素的熵编解码方法和装置
CN107277518A (zh) Cabac解码方法
CN100428634C (zh) 数字信号处理中联合变长编解码的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant