CN103428502A - 一种解码方法及解码系统 - Google Patents

一种解码方法及解码系统 Download PDF

Info

Publication number
CN103428502A
CN103428502A CN2013104053412A CN201310405341A CN103428502A CN 103428502 A CN103428502 A CN 103428502A CN 2013104053412 A CN2013104053412 A CN 2013104053412A CN 201310405341 A CN201310405341 A CN 201310405341A CN 103428502 A CN103428502 A CN 103428502A
Authority
CN
China
Prior art keywords
value
interval
probability
probability interval
decoding
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
Application number
CN2013104053412A
Other languages
English (en)
Other versions
CN103428502B (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.)
SHANGHAI HIGH DEFINITION DIGITAL TECHNOLOGY INDUSTRIAL Co Ltd
Original Assignee
SHANGHAI HIGH DEFINITION DIGITAL TECHNOLOGY INDUSTRIAL 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 SHANGHAI HIGH DEFINITION DIGITAL TECHNOLOGY INDUSTRIAL Co Ltd filed Critical SHANGHAI HIGH DEFINITION DIGITAL TECHNOLOGY INDUSTRIAL Co Ltd
Priority to CN201310405341.2A priority Critical patent/CN103428502B/zh
Publication of CN103428502A publication Critical patent/CN103428502A/zh
Application granted granted Critical
Publication of CN103428502B publication Critical patent/CN103428502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种解码方法,至少包括:1)初始化全概率区间以及最后区间的低值;2)从概率模型中得到大概率符号、小概率符号以及大概率符号的概率值,用全概率区间的对数值和大概率符号的概率值的对数值得到大概率区间的对数值;3)比较最后区间的低值的对数值与大概率区间的对数值的大小:若大于等于,则输出小概率符号,并以小概率区间更新全概率区间、计算最后区间的低值;否则,输出大概率符号,并以大概率区间更新全概率区间;本发明去掉了rS1,valueS这两个变量,判决中不再使用这两个变量,从而大大的简化了判决的电路,降低了单次解码的时间,提高了单次解码速度,在硬件上可以提高解码电路的时钟频率;一次解码后需要读进来的码流数小于或者等于9;由于存储系统的总线宽度至少是32位,因此实现了单周期解码,提高了解码器解码效率。

Description

一种解码方法及解码系统
技术领域
本发明涉及一种解码方法及解码系统,尤其是一种应用于AVS高级熵解码标准的解码方法及解码系统。
背景技术
在视频信源熵编码领域为了达到更高的压缩率,目前多采用比传统可变长编码更高的效率的算术编码。所述的算术编码是图像压缩的主要算法之一,是一种熵编码的方法。和其他熵编码的方法不同的地方在于:其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码;而算术编码是直接把整个输入的消息编码为一个数,一个大于或者等于0并且小于1的小数。
例如对一个简单的信号源进行概率统计,得到的结果为,出现0的概率为40%,出现1的概率为60%,如果要对信号“010”进行算术编码,其编码过程为:
首先,定义初始区间为0到1,按照概率模型将区间分为0到0.6和0.6到1,信号源的第一个符号为“0”,根据概率模型“0”出现的概率为40%,因此应该落在0.6到1这个区间,因此第一符号编码完成后,区间更新为0.6到1;然后,再把这个区间按照概率模型进行划分,划分为0.6到0.84和0.84到1两个区间,因为第二符号为“1”出现的概率为60%,因此应该落在0.6到0.84这个区间,第二个符号编码完成后,区间更新为0.6到0.84。
以此类推,将区间0.6到0.84按照概率模型划分成0.6到0.744和0.744到0.84这两个区间,因为第三个符号为“0”,出现的概率为40%,因此应该落在0.744到0.84这个区间,因此这个信号源编码完成后区间更新为0.744到0.84,算术编码的编码器输出的结果为这个区间的底值0.744。
当然,算术编码的解码器与算术编码的编码器采用相同的概率模型,进行相同的区间划分,然后将划分好的区间与编码器的输出进行比较,从而解码出信号源的所有符号。
依照上述理论,对上例中的解码过程为:
首先,依然定义初始区间为0到1,按照概率模型将区间分为0到0.6和0.6到1,发现编码结果0.744落在0.6到1这个区间,因此区间更新为0.6到1,按照概率模型,第一符号为“0”,区间更新为0.6到1。
然后再把这个区间按照概率模型进行划分,划分为0.6到0.84和0.84到1两个区间,发现编码结果0.744落在0.6到0.84这个区间,因此区间更新为0.6到0.84,按照概率模型,第二个符号为“1”,区间更新为0.6到0.84。
以此类推,将区间0.6到0.84按照概率模型划分成0.6到0.744和0.744到0.84这两个区间,发现编码结果落在0.744到0.84,(因为编码结果定义的是最后区间的低值,因此不是0.6到0.744这个区间),因此区间更新为0.744到0.84,按照概率模型,第三个符号为“0”,区间更新为0.744到0.84。至此,解码结束。
从上述的算术编码的编码例子中可以发现,每一次算术编码的解码过程中需要用到这样几个变量,编码前的区间-全概率区间rang1,如0到1、概率模型中的大概率符号的概率值Pmps,如0.6、进行区间划分后的大概率区间rang2,如0到0.6、小概率区间rang1-rang2,如0.6到1。编码器送来的编码结果即最后区间低值value,如0.744。需要判断编码结果value是落在大概率区间rang1还是小概率区间rang1-rang2来输出最终的信号符号值。具体在进行区间划分时,采用以下公式来实现:rang2=rang1*Pmps   (公式1)
国标AVS高级熵编码的方法为了简化上述表达式中的乘法运算,采用的两边取对数的方法将上述表达式中的乘法转换为加法,即采用以下表达式,当然此运算也可以查表得到。
log2rang2=log2rang1+log2Pmps   (公式2)
由对数函数的特性可知,rang1和rang2的值域为0到1,log2rang1,log2rang2的值域为负无穷大到0,Pmps的值域为0.5到1,log2Pmps的值域为-1到0。
国标AVS将这几个值用以下几个表达式进行了定点化处理:
log 2 rang 1 = - rS 1 + rT 1 256 (公式3)
log 2 rang 2 = - rS 2 + rT 2 256 (公式4)
log 2 value = - valueS + value 2 256 (公式5)
log 2 Pmps = - lgPmps > > 2 256 (公式6)
rS1是log2rang1的整数部分,是一个8位宽的二进制无符号数,
Figure BDA0000378877380000031
是log2rang1的小数部分,并将这个小数进行256级的量化,rT1即为小数值的定点化部分。
同理,rS2是log2rang2的整数部分,是一个8位宽的二进制无符号数,
Figure BDA0000378877380000032
是log2rang2的小数部分,将这个小数进行了256级的量化,rT2即为小数值的定点化部分。
valueS是log2value的整数部分,是一个32位宽的二进制无符号数,
Figure BDA0000378877380000033
是log2value的小数部分,将这个小数进行了256级的量化,valueT即为小数值的定点化部分。
lgPmps是一个10位宽的二进制无符号数,它是大概率符号概率进行了1024级量化,得到的一个定点化的值,国标AVS中计算仅仅用到它的高8位精度,因此将其逻辑精度右移两位,将其低两位舍去。
根据国标AVS高级熵编码的方法,在解码开始前需要对其中一些变量进行初始化,国标AVS中将rS1初始化为0,将rT1初始化为255。在第一次解码前的全概率区间rang1就己经得到了。还需对编码器结果value进行初始化,其值是一个用多位二进制定点化的小数,那么它是一个原数域的值,而国标AVS中的判决是在对数域进行的,因此这个初始化过程就是对value进行一次从原数域到对数域的转换。其转换过程中需要用到如下所示的一个公式:
2x≈1+x   (公式7)
即,首先从码流中(编码器的输出)读取9位二进制数存入valueT中,判断最高位是否是1,如果最高位是1,则valueT大于或者等于256,那么可以得到以下算式:
valueT [ 8 : 0 ] 256 = 1 + valueT [ 7 : 0 ] 256 ≈ 2 valueT [ 7 : 0 ] 256 (公式8)
将公式8最后得到的算式转换到对数域可得公式5中的valueS等于0,公式5中的valueT等于公式8中的valueT[7:0]。
如果最高位不是1,则无法用公式7回到对数域,那么就要再从码流中读入1位二进制数,如果此时最高位为1,则可以转化到对数域,转化后valueS等于1,valueT为当前读入码流的最低8位二进制数。
以此类推,只有找到了码流中第一个1为止,初始化才结束,而每读入一位码流则valueS将累加1。valueT为当前最后读入码流的最低8位二进制数。
根据算术编码原理,此时己经具备解码第一个符号的条件了,首先将区间1按照概率模型进行区间划分,将公式3,公式4和公式6代入公式2得到以下算式:
- rS 2 + rT 2 256 = - rS 1 + rT 1 - lgPmps > > 2 256  (公式9)
由公式9即得到了大概率区间rang2的对数域的值,下一步将value和rang2在对数域进行比较,如果value小于rang2的顶值,则value落在大概率区间,输出大概率符号,然后更新rang1。更新rang1如附图1所示。
当前解码得到的rang2将作为下一次解码的初始区间rang1。
如果value大于等于rang2,则value落在小概率区间,此时输出小概率符号,然后更新rang1,下一次解码的初始区间rang1等于当前的rang1-rang2。此时编码结果value需要进行同步更新,下一次用所用到编码结果value等于value-rang2,如附图2所示。
由于rang1-rang2和value-rang2这两个计算必须在原数域上进行,因此依然使用公式7将rang1,rang2和value的值从对数域转换到原数域,将公式3两边分别进行指数变换,可得rang1在原数域上的表达式:
rang 1 = 2 - rS 1 2 rT 1 256 (公式10)
公式10中
Figure BDA0000378877380000043
满足公式7中变换条件,因此将公式10按照公式7变换为:
rang 1 = 2 - rS 1 ( 1 + rT 1 256 ) (公式11)
由公式9可得rang2的对数域表达式为:
log 2 rang 2 = - rS 1 + rT 1 - lgPmps > > 2 256 (公式12)
将公式12进行指数变换可得到rang2在原数域上的表达式:
rang 2 = 2 - rS 1 2 rT 1 - lgPmps > > 2 256 (公式13)
如果公式13中
Figure BDA0000378877380000047
这部分要按照公式7去变换,那么
Figure BDA0000378877380000048
必须是一个在0到1之间的数。
情形1:
如果rT1大于或者等于lgPmps>>2,则公式7中的条件满足,可将公式13变换为:
rang 2 = 2 - rS 1 ( 1 + rT 1 - lgPmps > > 2 256 ) (公式14)
即可得到rang1-rang2在原数域上的表达式:
rang 1 - rang 2 = 2 - rS 1 ( 1 + rT 1 256 ) - 2 - rS 1 ( 1 + rT 1 - lgPmps > > 2 256 ) (公式15)
这样就得到了新的初始概率区间rang1_new的原数域的表达式:
rang 1 _ new = 2 - rS 1 ( lgpmps > > 2 256 ) (公式16)
举例2:
如果rT1小于lgPmps>>2,则公式7中的条件不满足,先将公式13变换为:
rang 2 = 2 - rS 1 - 1 2 256 + rT 1 - lgPmps > > 2 256 (公式17)
公式17中
Figure BDA0000378877380000055
己经满足公式7中条件,可将公式17变换为:
rang 2 = 2 - rS 1 - 1 ( 1 + 256 + rT 1 - lgPmps > > 2 256 ) (公式18)
即可得到rang1-rang2在原数域上的表达式:
rang 1 - rang 2 = 2 - rS 1 ( 1 + rT 1 256 ) - 2 - rS 1 - 1 ( 1 + 256 + rT 1 - lgPmps > > 2 256 ) (公式19)
这样就得到了新的初始概率区间rang1_new的原数域的表达式:
rang 1 _ new = 2 - rS 1 - 1 ( rT 1 + lgpmps > > 2 256 ) (公式20)
将公式5两边进行指数变换,可得到value在原数域上的表达式:
value = 2 - valueS 2 valueT 256 (公式21)
公式21中
Figure BDA00003788773800000510
满足公式7中变换条件,因此将公式21按照公式7变换为:
value = 2 - valueS ( 1 + valueT 256 ) (公式22)
对应举例1中的rang2,可得到value-rang2在原数域上的表达式为:
value - rang 2 = 2 - valueS ( 1 + valueT 256 ) - 2 - rS 1 ( 1 + rT 1 - lgPmps > > 2 256 ) (公式23)
举例1-1:
如果valueS与rS1相等,则由公式23可以得到新的编码区间value_new的表达式为:
value _ new = 2 - rS 1 ( valueT - rT 1 + lgPmps > > 2 256 ) (公式24)
举例1-2:
如果valueS与rS1不相等,则根据图2所示,value大于rang2,那么valueS必定小于rS1,又因为0.5rang1≤rang2≤value≤rang1,因此valueS等于rS1-1,由此由公式23可以得到新的编码区间value_new的表达式为:
value _ new = 2 - rS 1 ( 256 + 2 valueT - rT 1 + lgPmps > > 2 256 ) (公式25)
公式25中2valueT是通过将valueT向左移动1为并且再读入1为码流来实现的。
对应举例2中的rang2,可得到value-rang2在原数域上的表达式为:
value - rang 2 = 2 - valueS ( 1 + valueT 256 ) - 2 - rS 1 - 1 ( 1 + 256 + rT 1 - lgPmps > > 2 256 ) (公式26)
举例2-1:
如果valueS与rS1+1相等,则由公式26可以得到新的编码区间value_new的表达式为:
value _ new = 2 - rS 1 - 1 ( valueT - 256 - rT 1 + lgPmps > > 2 256 ) (公式27)
举例2-2:
与举例1-2类似,如果valueS与rS1+1不相等,则valueS等于(rS1+1)-1,由公式26等到新的编码区间value_new的表达式为:
value _ new = 2 - rS 1 ( 2 valueT - rT 1 + lgPmps > > 2 256 ) (公式28)
与举例1-2类似,公式28中2valueT是通过将valueT向左移动1为并且再读入1为码流来实现的。
通过以上计算步骤得到了新的初始化区间rangl_new和新的编码区间value_new的原数域的值,为了下一次解码做判决,需要将这两个变量转换到对数域,现有的技术采用如下的两个步骤来实现:
第一步:现将rang_new转换到对数域,这个过程与value的初始化过程相同,即寻找公式16中lgPmps>>2和公式20中rT1+1gPmps>>2中从左边开始第一个1,国标AVS中规定1gPmps>>2的值最小等于1,因此这个过程一定能找到,又由于rT1的二进制位宽为8位,1gPmps>>2的位宽也为8位,因此这个过程最多找8次,就能找到,即不断的将16中1gPmps>>2和公式20中rT1+1gPmps>>2向左移动,最低位补0,看最高位是否为1,如果为1则这个过程停止,根据公式7,rang_new可以转回到对数域,国标AVS中规定,此过程,value new也需要跟着进行向左移位操作,区别于rang_new的移位操作,value_new向左移位后,最低位需要补进来新的码流。而举例1-2和举例2-2中计算value_new时已经读入1位码流,因此这个过程需要最多读入9位码流。
第二步:rang_new转换到对数域后,value_new还没有转换到对数域,此时需要再用对value进行初始化的方法对value_new进行转换,此过程由于是对value_new向左移位,最低位补充码流的过程,因此如果码流中存在很多0后再有一个1的话,那么此过程将需要读入大量的码流。完成上述两个步骤后,本次解码结束。
从上述的描述中可以看出,在编码结果value初始化和当前解码结果为小概率符号而需要更新编码结果value时,需要将原数域转换到对数域,此过程是不断的读入码流,每读入1位码流,编码结果value对数域的整数部分valueS就会加1。因此上述技术至少存在两大缺陷:
1.valueS最终是用在对数域判决上的,这样一个32位的整数会使得判决电路的延时加大,从而降低解码电路的工作的时钟频率。
2.码流读入的具体位数无法估计,可能一次会读入非常多的码流,而实际的解码器中,码流是来自片外存储器中,一次读入码流数量由数据总线的位宽决定,是一个定值,因此背景技术会导致一个时钟周期内由于码流无法及时提供而使得解码暂停,从而降低解码器的解码效率。
综上所述,一种新的、可以有效避免上述问题的应用于AVS高级熵解码的解码方法及系统的发明是势在必行的。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种新的应用于AVS高级熵解码的解码方法及系统。
为实现上述目的及其他相关目的,一种解码方法,至少包括:
1)初始化全概率区间以及最后区间的低值;
2)从概率模型中得到大概率符号、小概率符号以及大概率符号的概率值,用全概率区间的对数值和大概率符号的概率值的对数值得到大概率区间的对数值;
3)比较最后区间的低值的对数值与大概率区间的对数值的大小:若大于等于,则输出小概率符号,并以小概率区间更新全概率区间、计算最后区间的低值;否则,输出大概率符号,并以大概率区间更新全概率区间;
4)符号解码结束。
所述的解码方法,还包括步骤5)判断当前符号是否是终止符号,若是,则解码结束,否则,重复步骤2)--4)。
所述的解码方法,所述步骤1)中最后区间的低值是从码流中读取9比特数,作为最后区间的低值。
所述的解码方法,所述比较最后区间的低值的对数值与大概率区间的对数值的大小,则首先判断最后区间的低值的从零开始计数的第八位是否为1:
A,若为1,则将最后区间的低值转换为对数值,比较大概率区间的对数值与最后区间的低值的对数值的大小;
B,若不为1:则根据大概率区间的对数值做进一步的判断。
所述的解码方法,所述步骤B中,当大概率区间的对数值的小数部分大于等于0,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;否则,判断最后区间低值的从零开始计数的第七位是否为1,若不为1,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若为1,则将最后区间低值向第八位的方向移动一位后从码流中补足,重复进行步骤A的操作。
所述的解码方法,所述步骤A中的最后区间的低值对数值小于大概率区间的对数值,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若大于等于,则输出小概率符号,并将全概率区间、最后区间的低值和大概率区间转换到原数域:
A,将转换后全概率区间与大概率区间进行相减运算得到小概率区间,并将小概率区间转换至对数域,则将当前的小概率区间的对数值作为下次解码的全概率区间;
B,将转换后最后区间的低值与大概率区间进行相减运算得到下一次解码所需的最后区间的低值。
一种解码系统,其特征在于,至少包括:码流读取模块:初始化全概率区间以及最后区间的低值;区间计算模块:从概率模型中得到大概率符号、小概率符号以及大概率符号的概率值,用全概率区间的对数值和大概率符号的概率值的对数值得到大概率区间的对数值;判决模块:比较最后区间的低值的对数值与大概率区间的对数值的大小:若大于等于,则输出小概率符号;否则,输出大概率符号;区间更新模块:根据上述判决结果更新全概率区间以及最后区间的低值。
所述解码系统,还包括终止模块,其判断当前符号是否是终止符号,若是,则解码结束,否则,重复操作;还包括存储模块,存储概率模型以及更新后的全概率区间以及最后区间的低值。
所述的解码系统,所述解码初始时刻最后区间的低值是从码流中读取9比特数,作为最后区间的低值。
所述的解码系统,所述比较最后区间的低值的对数值与大概率区间的对数值的大小,则首先判断最后区间的低值的从零开始计数的第八位是否为1:
A,若为1,则将最后区间的低值转换为对数值,比较大概率区间的对数值与最后区间的低值的对数值的大小;
B,若不为1:则根据大概率区间的对数值做进一步的判断。
所述的解码系统,所述步骤B中,当大概率区间的对数值的小数部分大于等于0,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;否则,判断最后区间的低值的从零开始计数的第七位是否为1,若不为1,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若为1,则将最后区间的地址向第八位的方向移动一位后从码流中补足,重复进行步骤A的操作。
所述的解码系统,所述步骤A中的最后区间的低值对数值小于大概率区间的对数值,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若大于等于,则输出小概率符号,并将全概率区间、最后区间的低值和大概率区间转换到原数域:
A,将转换后全概率区间与大概率区间进行相减运算得到小概率区间,并将小概率区间转换至对数域,则将当前的小概率区间的对数值作为下次解码的全概率区间;
B,将转换后最后区间的低值与大概率区间进行相减运算得到下一次解码所需的最后区间的低值。
如上所述,本发明的解码方法及解码系统,具有以下有益效果:
1、rS1,valueS这两个变量去掉了,判决中不再使用这两个变量,从而大大的简化了判决的电路,降低了单次解码的时间,提高了单次解码速度,在硬件上可以提高解码电路的时钟频率。
2、一次解码后需要读进来的码流数小于或者等于9;由于存储系统的总线宽度至少是32位,因此实现了单周期解码,提高了解码器解码效率。
附图说明
图1显示为本发明的解码方法的解码出大概率符号的示意图。
图2显示为本发明的解码方法的解码出小概率符号的示意图。
图3显示为背景技术的解码实现流程示意图。
图4显示为本发明的解码方法的一种优选方式的解码实现流程示意图。
图5显示为本发明的解码系统的结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
请参阅图1至图5。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
本发明如下实施例中的解码系统是以支持国标AVS的视频解码器或视频解码模块为基础的解码系统,本发明的解码系统包括:码流读取模块,初始化全概率区间以及最后区间的低值;区间计算模块,从概率模型中得到大概率符号、小概率符号以及大概率符号的概率值,用全概率区间的对数值和大概率符号的概率值的对数值得到大概率区间的对数值;判决模块,比较最后区间的低值的对数值与大概率区间的对数值的大小:若大于等于,则输出小概率符号;否则,输出大概率符号;区间更新模块,根据上述判决结果更新全概率区间以及最后区间的低值;终止模块,其判断当前符号是否是终止符号,若是,则解码结束,否则,重复操作;存储模块,存储概率模型以及更新后的全概率区间以及最后区间的低值。
本发明的解码系统在解码的初始时刻,码流读取模块提供9比特码流给存储模块,用于初始化最后区间低值,每次符号解码时,由存储模块向区间计算模块提供全概率区间以及概率模型,区间计算模块进行大概率区间计算操作,然后将结果即大概率区间输出给判决模块,存储模块输出最后区间低值给判决模块,判决模块进行判决操作后得到判决结果即当前符号为大概率符号还是小概率符号,这个判决结果输出给区间更新模块,区间更新模块根据这个判决结果对全和最后区间低值进行更新,并输出更新后的结果给存储模块,存储模块将这两个结果存储下来以用于下一次符号解码,终止模块将根据判决模块输出的符号来判断解码是否结束,如果符号不是最后一个符号,则下一次符号解码将启动。
本发明的解码方法在解码开始前初始化区间rang1,此时得到rS1等于0,rT1等于255,本发明的解码方法中对value的初始化操作是仅仅从码流中读入9位二进制数存放到valueT中,此时valueS值为0,不对value进行从原数域到对数域的转换。
经过上述两步操作后,解码前的初始区间rang1已经有了对数域的值,而编码结果value并没有从原数域转换到对数域,依据背景技术,此时并不能进行判决,而本发明的解码方法采取的技术是:预测编码区间value是否能够转换到对数域,然后再做出判决。
具体的实施方案为:
初始化时先从码流中读入了9位二进制数存放到valueT中,如果valueT的最高位(第8位,计数从0到8)即valueT[8]等于1,则式
Figure BDA0000378877380000121
可以转化为下式:
1 + valueT [ 7 : 0 ] 256 (公式29)
根据公式7,将公式29变换为:
1 + valueT [ 7 : 0 ] 256 ≈ 2 valueT [ 7 : 0 ] 256 (公式30)
公式30就可以转换到对数域,因此编码区间value此时转换到对数域的表达式为技术背景中的公式5,而此时公式5中的valueS等于0,因此编码区间value在对数域的表达式变为:
log 2 value = valueT 256 (公式31)
由于初始区间rS1也等于0,因此初始区间rang1对数域的表达式变为:
log 2 rang 1 = rT 1 256 (公式32)
经过概率运算得到的大概率区间rang2在对数域上的表达式为:
log 2 rang 2 = rT 1 - lgPmps > > 2 256 (公式33)
公式31,公式33与公式3和公式5相比,少了valueS和rS1,因此本技术方案中的判决电路较背景技术中判决电路简单。
与背景技术相同,如果value小于rang2,则输出大概率符号,用大概率区间rang2来更新下一次解码所用到的全概率区间rang1,而value不做更新,如果value大于或者等于rang2,则输出小概率符号,此时与背景技术相同,需要更新rang1和value。
将公式31转换到原数域,并利用公式7,可以得到value原数域的表达式为:
value = ( 1 + valueT 256 ) (公式34)
将公式32转换到原数域,并利用公式7,可以得到rang1原数域的表达式为:
rang 1 = ( 1 + rT 1 256 ) (公式35)
将公式33转换到原数域,并利用公式7,可以得到rang2的原数域表达式为:
case1:
如果rT1大于或者等于lgPmps>>2,则符合公式7中的转换条件,rang2的原数域的表达式为:
rang 2 = ( 1 + rT 1 - lgPmps > > 2 256 ) (公式36)
即可得到rang1-rang2在原数域上的表达式:
rang 1 - rang 2 = ( 1 + rT 1 256 ) - ( 1 + rT 1 - lgPmps > > 2 256 ) (公式37)
这样就得到了新的初始概率区间rang1_new的原数域的表达式:
rang 1 _ new = ( lgPmps > > 2 256 ) (公式37)
case2:
如果rT1小于lgPmps>>2,则公式7中的条件不满足,先将公式33变换为:
rang 2 = 2 - 1 2 256 + rT 1 - lgPmps > > 2 256 (公式38)
公式38中
Figure BDA00003788773800001310
已经满足公式7中条件,可将公式38变换为:
rang 2 = 2 - 1 ( 1 + 256 + rT 1 - lgPmps > > 2 256 ) (公式39)
即可得到rang1-rang2在原数域上的表达式:
rang 1 - rang 2 = ( 1 + rT 1 256 ) - 2 - 1 ( 1 + 256 + rT 1 - lgPmps > > 2 256 ) (公式40)
这样就得到了新的初始概率区间rang1_new的原数域的表达式:
rang 1 _ new = 2 - 1 ( rT 1 + lgPmps > > 2 256 ) (公式41)
case1:
根据公式34和公式36可得到新的编码区间value_new的表达式为:
value _ new = ( valueT - rT 1 + lgPmps > > 2 256 ) (公式42)
case2:
根据公式34和公式39可得到新的编码区间value_new的表达式为:
value _ new = 2 - 1 ( 2 valueT - rT 1 + lgPmps > > 2 256 ) (公式43)
公式43中2valueT是通过将valueT向左移动1为并且再读入1为码流来实现的。
通过以上计算步骤得到了新的初始化区间rang1_new和新的编码区间value_new的原数域的值,与背景技术不同的是,本方案接下来仅仅将rang1_new从原域转换到对数域,这个过程中由于value_new也要进行相应的移位和读取码流的操作,而这一步将最多从码流中读取9位二进制数,由于本方案不做将value_new从原数域到对数域的操作,因此本方案此种情况下将最多读取9位码流,有一个最大的确定值。
如果初始化时valueT的最高位(第8位,计数从0到8)即valueT[8]等于0,则依据公式7,此时value并不能从原数域转换到对数域,先进行大概率区间计算,得到的大概率区间rang2在对数域上的表达式如公式33所示:
case1:
如果rT1大于或者等于lgPmps>>2,则公式33可以保持不变,即此时rS2等于0,由于valueT的最高位为0,因此根据原数域转换到对数域的原理,如果value能转换到对数域,则其整数部分valueS一定大于0,因此本技术方案通过预判得知,此种情况下value必定小于rang2,此时输出大概率符号,用大概率区间rang2来更新下一次解码的全概率区间rang1,不更新value。
case2:
如果rT1小于lgPmps,则公式33所代表的rang2的对数域的表达式将变成:
log 2 rang 2 = - 1 + 256 + rT 1 - lgPmps > > 2 256 (公式44)
由公式44可知,此时rang2对数域的整数部分rS2等于1,由于valueT的最高位为0,根据原数域转换到对数域的原理。
case2-1:
如果valueT的次高位等于1,则value此时不但可以从原数域转换到对数域,而且转换到对数域时,其整数部分valueS等于1,其对数域表达式变为:
log 2 value = - 1 + { valueT [ 6 : 0 ] , read _ bit ( 1 ) } 256 (公式45)
公式45中read_bit(1)代表最低位从码流中读入1位二进制位。
此时可以对rang2和value对数域的值进行判决。
如果value小于rang2,则输出大概率符号,不需要更新用大概率区间rang2来更新下一次解码的全概率区间rang1,value,如果value大于或者等于rang2,则输出小概率符号,并且需要更新rang1和value。
将公式44两边取指数操作并且利用公式7进行变换得到rang2的原数域的表达式为公式39。
将公式45两边取指数操作并且利用公式7进行变换得到value的原数域的表达式为:
value = 2 - 1 ( 1 + { valueT [ 6 : 0 ] , read _ bit ( 1 ) } 256 ) (公式46)。
得到了新的初始概率区间rang1_new的原数域的表达式为公式41。
利用公式46和公式39得到的value_new的原数域的表达式为:
value _ new = 2 - 1 ( { valueT [ 6 : 0 ] , read _ bits ( 1 ) - 256 - rT 1 + lgPmps > > 2 256 ) (公式47)
通过以上计算步骤得到了新的初始化区间rang1_new和新的编码区间value_new的原数域的值,与背景技术不同的是,本方案接下来仅仅将rang1_new从原域转换到对数域,其转换过程与背景技术相同,这个过程中由于value_new也要进行相应的移位和读取码流的操作,而这一步将最多从码流中读取9位二进制数,由于本方案不做将value_new从原数域到对数域的操作,因此本方案此种情况下将最多读取9位码流,有一个最大的确定值。
case2-2:
如果valueT的次高位等于0,则value此时如果能从原数域转换到对数域,而且转换到对数域时,其整数部分valueS必定大于1,而此时rS2等于1,因此rang2必定大于value,此时输出大概率符号,不更新用大概率区间rang2来更新下一次解码的全概率区间rangl,value。
至此本方案的单次解码的所有case均以完成。
即,如果当前valueT的最高位即第8位(从0开始计数)等于1,则当前所取的value能够转换到对数域,那么相应的valueS等于0,value对数值的小数等于valueT的低8位。然后进行判决,即value和rang2进行比较,此时valueS的值是0,因此不需要参与比较,而rS2的值只能等于1或者0,因此判决电路大大得到了简化。
a)如果最终的解码结果是大概率符号,则区间更新不需要在原数域上进行,因此不要再读取码流。
b)如果最终的解码结果是小概率符号,则区间更新必需要有从原数域到对数域这一步骤,此时按照原数域到对数域转换的规则,小概率区间从原数域转换到对数域所进行的移位操作不会超过8位,而此时,value要与区间更新同时进行,那么这个过程中读取码流不会超过8位,而本发明的解码方法不需要将value彻底转换到对数域,因此本次解码需要读取的码流不会超过8位,是一个固定值。
如果当前valueT的最高位即第8位等于0,则当前value不能转换到对数域,那么如果value转换到对数域则valueS的值一定大于或者等于1,由于rS1等于0,因此可得到rS2要么等于1要么等于0。
c)如果rS2等于0,valueS>rS2,那么此时已经可以进行判决,并且输出大概率符号,此时不进行原数域到对数域的转换。
d)如果rS2等于1,那么还要依据同样的方法进行处理,即看valueT的次高位即第7位,是否等于1,如果第7位等于1,则value具备转换到对数域的条件,此时valueS的值等于1,而rS2也等于1,则valueS和rS2均不参加判决,只用判决value低7位加上读进来的1位码流和rT2的大小,因此判决电路大大的得到简化。判决结束后如果是输出大概率符号则不进行原数域到对数域的转换,如果输出小概率符号,则区间更新必选要有从原数域到对数域这一步骤,此时按照原数域到对数域转换的规则,小概率区间从原数域转换到对数域所进行的移位操作不会超作8位,而此时,value要与区间更新同时进行,那么这个过程中读取码流不会超作8位,而本方案不需要将value彻底转换到对数域,因此本次解码需要读取的码流不会超过8位,再加上刚刚读进来的1位,总共本次解码读入的码流不超过9位,也是个固定值。解码结束。
当然,本发明的解码方法以及解码系统,除了应用在AVS高级熵解码标准的以支持国标AVS的视频解码器或视频解码模块为基础高级熵解码应用外,其他算数编解码系统也都可以参照此解码方法及解码系统进行操作,本领域的普通技术人员都可以理解,在此不再赘述。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (12)

1.一种解码方法,其特征在于,至少包括:
1)初始化全概率区间以及最后区间的低值;
2)从概率模型中得到大概率符号、小概率符号以及大概率符号的概率值,用全概率区间的对数值和大概率符号的概率值的对数值得到大概率区间的对数值;
3)比较最后区间的低值的对数值与大概率区间的对数值的大小:若大于等于,则输出小概率符号,并以小概率区间更新全概率区间、计算最后区间的低值;否则,输出大概率符号,并以大概率区间更新全概率区间;
4)符号解码结束。
2.根据权利要求1所述的解码方法,其特征在于,还包括步骤5)判断当前符号是否是终止符号,若是,则解码结束,否则,重复步骤2)--4)。
3.根据权利要求1所述的解码方法,其特征在于,所述步骤1)中最后区间的低值是从码流中读取9比特数,作为最后区间的低值。
4.根据权利要求1所述的解码方法,其特征在于,所述比较最后区间的低值的对数值与大概率区间的对数值的大小,则首先判断最后区间的低值的从零开始计数的第八位是否为1:
A,若为1,则将最后区间的低值转换为对数值,比较大概率区间的对数值与最后区间的低值的对数值的大小;
B,若不为1:则根据大概率区间的对数值做进一步的判断。
5.根据权利要求4所述的解码方法,其特征在于,所述步骤B中,当大概率区间的对数值的小数部分大于等于0,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;否则,判断最后区间低值的从零开始计数的第七位是否为1,若不为1,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若为1,则将最后区间低值向第八位的方向移动一位后从码流中补足,重复进行步骤A的操作。
6.根据权利要求4所述的解码方法,其特征在于,所述步骤A中的最后区间的低值对数值小于大概率区间的对数值,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若大于等于,则输出小概率符号,并将全概率区间、最后区间的低值和大概率区间转换到原数域:
A,将转换后全概率区间与大概率区间进行相减运算得到小概率区间,并将小概率区间转换至对数域,则将当前的小概率区间的对数值作为下次解码的全概率区间;
B,将转换后最后区间的低值与大概率区间进行相减运算得到下一次解码所需的最后区间的低值。
7.一种解码系统,其特征在于,至少包括:
码流读取模块:初始化全概率区间以及最后区间的低值;
区间计算模块:从概率模型中得到大概率符号、小概率符号以及大概率符号的概率值,用全概率区间的对数值和大概率符号的概率值的对数值得到大概率区间的对数值;
判决模块:比较最后区间的低值的对数值与大概率区间的对数值的大小:若大于等于,则输出小概率符号;否则,输出大概率符号;
区间更新模块:根据上述判决结果更新全概率区间以及最后区间的低值。
8.根据权利要求7所述解码系统,其特征在于,还包括终止模块,其判断当前符号是否是终止符号,若是,则解码结束,否则,重复操作;还包括存储模块,存储概率模型以及更新后的全概率区间以及最后区间的低值。
9.根据权利要求7所述的解码系统,其特征在于,所述解码初始时刻最后区间的低值是从码流中读取9比特数,作为最后区间的低值。
10.根据权利要求7所述的解码系统,其特征在于,所述比较最后区间的低值的对数值与大概率区间的对数值的大小,则首先判断最后区间的低值的从零开始计数的第八位是否为1:
A,若为1,则将最后区间的低值转换为对数值,比较大概率区间的对数值与最后区间的低值的对数值的大小;
B,若不为1:则根据大概率区间的对数值做进一步的判断。
11.根据权利要求10所述的解码系统,其特征在于,所述步骤B中,当大概率区间的对数值的小数部分大于等于0,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;否则,判断最后区间的低值的从零开始计数的第七位是否为1,若不为1,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若为1,则将最后区间的地址向第八位的方向移动一位后从码流中补足,重复进行步骤A的操作。
12.根据权利要求10所述的解码系统,其特征在于,所述步骤A中的最后区间的低值对数值小于大概率区间的对数值,则将当前的大概率区间的对数值作为下次解码的全概率区间并输出大概率符号;若大于等于,则输出小概率符号,并将全概率区间、最后区间的低值和大概率区间转换到原数域:
A,将转换后全概率区间与大概率区间进行相减运算得到小概率区间,并将小概率区间转换至对数域,则将当前的小概率区间的对数值作为下次解码的全概率区间;
B,将转换后最后区间的低值与大概率区间进行相减运算得到下一次解码所需的最后区间的低值。
CN201310405341.2A 2013-09-08 2013-09-08 一种解码方法及解码系统 Active CN103428502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310405341.2A CN103428502B (zh) 2013-09-08 2013-09-08 一种解码方法及解码系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310405341.2A CN103428502B (zh) 2013-09-08 2013-09-08 一种解码方法及解码系统

Publications (2)

Publication Number Publication Date
CN103428502A true CN103428502A (zh) 2013-12-04
CN103428502B CN103428502B (zh) 2017-02-01

Family

ID=49652593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310405341.2A Active CN103428502B (zh) 2013-09-08 2013-09-08 一种解码方法及解码系统

Country Status (1)

Country Link
CN (1) CN103428502B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005697A (zh) * 2014-12-26 2017-08-01 英特尔公司 用于视频译码的使用基于查找表的概率更新的熵译码的方法与系统
CN110474876A (zh) * 2019-07-15 2019-11-19 湖南遥昇通信技术有限公司 一种数据编码解码方法、装置、设备以及存储介质
CN115348455A (zh) * 2022-10-18 2022-11-15 北京轨道未来空间科技有限公司 卫星物联网图像压缩方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983334A (zh) * 2005-12-05 2007-06-20 华为技术有限公司 一种实现算术编解码的方法及装置
CN102223149A (zh) * 2010-04-14 2011-10-19 朱洪波 基于概率聚合的算术编码器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983334A (zh) * 2005-12-05 2007-06-20 华为技术有限公司 一种实现算术编解码的方法及装置
CN102223149A (zh) * 2010-04-14 2011-10-19 朱洪波 基于概率聚合的算术编码器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
梁宏程,陈常谦: "自适应算术编码及其在JPEG2000中的应用", 《计算机与数字工程》 *
王琪,郭雷: "一种快速有效的自适应算术编码", 《数字电视与数字视频》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005697A (zh) * 2014-12-26 2017-08-01 英特尔公司 用于视频译码的使用基于查找表的概率更新的熵译码的方法与系统
CN110474876A (zh) * 2019-07-15 2019-11-19 湖南遥昇通信技术有限公司 一种数据编码解码方法、装置、设备以及存储介质
CN110474876B (zh) * 2019-07-15 2020-10-16 湖南遥昇通信技术有限公司 一种数据编码解码方法、装置、设备以及存储介质
CN115348455A (zh) * 2022-10-18 2022-11-15 北京轨道未来空间科技有限公司 卫星物联网图像压缩方法及装置
CN115348455B (zh) * 2022-10-18 2023-01-06 北京轨道未来空间科技有限公司 卫星物联网图像压缩方法及装置

Also Published As

Publication number Publication date
CN103428502B (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN110825323B (zh) 浮点数数据的存储、读取方法和计算机可读存储介质
CN104579360B (zh) 一种数据处理的方法和设备
JP2008118307A5 (zh)
CN115062877B (zh) 电力设备材料信息调整方法、装置、设备和计算机介质
CN110543518A (zh) 一种分布式id生成方法、装置、设备及存储介质
CN103428502A (zh) 一种解码方法及解码系统
CN112818387A (zh) 模型参数调整的方法、设备、存储介质及程序产品
CN1766830B (zh) 基于处理器字长的数的二进制表示
CN104579352B (zh) 基于fpga的温度计码到二进制码的编码转换装置和方法
CN109388373B (zh) 用于低功耗内核的乘除法器
CN113630125A (zh) 数据压缩、编码解压缩方法、装置、电子设备及存储介质
CN106484753B (zh) 数据处理方法
CN105302520B (zh) 一种倒数运算的求解方法及系统
CN104349165B (zh) 高性能变长编解码方法及装置
CN100426219C (zh) 一种集成电路中的数据运算方法及装置
CN103546169A (zh) Fpga中实现3/4速率(2,1,7)卷积编码的方法
CN114117063A (zh) 实体对齐方法、装置、电子设备及计算机可读存储介质
CN110647308B (zh) 累加器及其运算方法
CN107277553A (zh) 一种二元算术编码器
CN108052307B (zh) 处理器浮点单元前导零数量的超前运算方法及系统
CN104202053A (zh) 一种快速n位原码到补码的转换装置和转换方法
CN113434820B (zh) 图表y轴坐标优化方法、装置、设备及存储介质
TWI549437B (zh) 編解碼系統與方法
CN111817729B (zh) 一种译码终止方法及装置
CN117874314B (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
CB02 Change of applicant information

Address after: 200152, Shanghai, Pudong New Area East Three Li Road Bridge, No. 1018, block B, building 8 HD

Applicant after: Shanghai High Definition Digital Technology Industrial Co., Ltd.

Address before: 200152, 1018 East Three Li bridge road, Shanghai, Pudong New Area

Applicant before: Shanghai High Definition Digital Technology Industrial Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant