CN110915213B - 编解码符号的熵编解码的方法与装置 - Google Patents
编解码符号的熵编解码的方法与装置 Download PDFInfo
- Publication number
- CN110915213B CN110915213B CN201880047646.1A CN201880047646A CN110915213B CN 110915213 B CN110915213 B CN 110915213B CN 201880047646 A CN201880047646 A CN 201880047646A CN 110915213 B CN110915213 B CN 110915213B
- Authority
- CN
- China
- Prior art keywords
- probability
- range
- current
- index
- symbol
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000003044 adaptive effect Effects 0.000 claims description 16
- 230000007717 exclusion Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 102100032047 Alsin Human genes 0.000 description 1
- 101710187109 Alsin Proteins 0.000 description 1
- 101710163092 D-lysergyl-peptide-synthetase subunit 1 Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- DGMKFQYCZXERLX-UHFFFAOYSA-N proglumide Chemical compound CCCN(CCC)C(=O)C(CCC(O)=O)NC(=O)C1=CC=CC=C1 DGMKFQYCZXERLX-UHFFFAOYSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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 Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种使用CABAC的编解码符号的熵编解码方法与装置。依据本发明,使用算术等式来计算LPS范围,以获取1的范围的值与0的范围的值。举例来说,LPS范围是使用一或者多个算术操作来获取,该一或者多个算术操作包含计算第一值与第二值的乘积,其中该第一值与(2*该LPS概率索引+1)或者LPS概率索引相关,而该第二值与(2*该范围索引+1)或者该范围索引相关。此外,该LPS范围可使用查找表来获取,该查找表包含表格内容,该表格内容对应与一组LPS概率索引相关的LPS范围的值以及一组范围索引,来编码或者解码该当前字节的二进制值。
Description
交叉引用
本申请是要求2017年7月14日提交的申请号为62/532,389的美国临时专利申请案、2018年5月11日提交的申请号为62/670,614的美国临时专利申请案、2018年5月31日提交的申请号为62/678,343的美国临时专利申请案、2018年7月3日提交的申请号为62/693,497的美国临时专利申请案的优先权的美国正式专利申请案的部分。上述列出的申请案内容以引用方式并入本文。
技术领域
本发明是关于熵编解码技术,用于图像与视频的编解码。具体来说,本发明是关于用于图像与视频编解码的上下文参考的自适应二元算术编解码(Context-Based AdaptiveBinary Arithmetic Coder)的范围获取(range derivation)。
背景技术
算术编解码是一种有效的数据压缩方式,并且在编解码标准中广泛地应用,包含JBIG、JPEG2000、H.264/AVC、与高效视频编码(High-Efficiency Video Coding,HEVC)。在H.264/AVC与HEVC测试模式版本16.0(HM-16.0)中,上下文参考的自适应二元算术编码被采用作为在视频编解码系统中的熵编解码。旁通
如图1(a)所示,CABAC编码器包含三部分:二值化单元(binarization unit)110、上下文模型单元(context modelling unit)120与二元算术编码单元130。CABAC编码过程包含二值化步骤、上下文模型步骤与二元算术编码步骤。在二值化步骤中,每一个语法元素唯一映像至一二进制值字符串(二进制字节(bin)或者多个二进制字节(bins))。在上下文模型步骤中,针对每一二进制字节选择概率模型(probability model)。该对应概率模型是基于先前编解码的语法元素、二进制字节索引(bin index)与边侧信息(sideinformation)。在二进制化与设定上下文模型完成之后,二进制值与其对应的模型(例如上下文、旁通)同传输至二进制算术编码单元130来产生比特流(bitstream)。在另一个方面,CABAC解码器接收该比特流,并且执行对应上述CABCA编码过程的CABAC解码过程至该比特流,从而获得语法元素的值。如图1(b)所示,CABAC解码器包含三个部分:去-二值化单元(de-binarization unit)150、上下文模型单元160与二元算术解码单元140。该CABAC解码过程包含二元算术解码步骤、去-二值化步骤以及上下文模型步骤。在去-二值化步骤与上下文模型步骤中,依据该目标解码语法元素,针对每一二进制字节选择概率模型。对应的概率模型可依赖于先前解码的语法元素、二进制位索引与旁侧信息。依据概率模型,二进制比特值被二元算术解码单元140解析。语法元素被去-二值化单元150解码。
在130中的二元算术编码是递归区间-分割(interval-subdividing)程序。输出比特流是指向编解码区间的最终概率的指针。编码区间的概率T由范围(以下可表示为range)和编码区间的下限(low boundary)(在下文中用“low”表示)来指定。该范围是编解码区间的可能范围。根据当前符号(symbol)是否是最大概率符号(most probable symbol,MPS)或者最小概率符号(least probable symbol,LPS),相应地将下一编解码区间更新为两个子区间中一个,相应地将下一编解码区间更新为两个子区间中一个,如公式(1)和(2)所示。
其中范围LPS(以下简写为rangeLPS)是编解码LPS时的估计范围。
图2标出了二元算术编解码的概念。开始时,如概率数值范围(probabilityscale)210表示,概率范围(即range0)为l,并且下限(即low0)为0,其包含rangeLPS0。如果第一符号为MPS,概率数值范围210的较低部分中的指针可以用于发信MPS符号的事件。range1表示用于处理下一符号的概率数值范围220,并且下限为low1。将概率数值范围220划分成分别用于MPS和LPS的两部分,其包含rangeLPS1。如果第二符号是LPS,选择LPS1的范围作为用于下一符号的概率数值范围230。每当编解码新的符号时,相应的范围将变得更小。当范围变得太小时,范围可以重新归一化(re-normalized)处理,以形成具有更大范围range2的概率数值范围240,其下限为low2。
在现代算术编码中,通常根据模型来完成概率更新。例如,在技术出版物(“Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC VideoCompression Standard”,IEEE Transactions on Circuits and Systems for VideoTechnology,Vol.13,No.7,pp.620-636,July 2003)中由Marpe等描述了一种方法,其中,使用如下公式:
pnew=(1-α)·y+α·pold. (3)
在上式公式中,若当前符号为最大概率字符(MPS),则y等于0,否则y等于1。该公式提供用于最小概率符号(LPS)的概率的估计值。根据下面公式获取权重α:
α=(min_prob/0.5)(1/state_number), (4)
其中min_prob对应于CABAC的最小概率符号的最小概率(可简写为Prob Min),state_number对应于用于概率值估计的上下文状态的数量。
对于HEVC的CABAC,存在64个概率状态(probability state)。min_prob为0.01875,state_number为63。每个状态具有概率值,其表示选择最小概率符号的概率。通过下面递归公式,获取用于最小概率符号的64个代表性的概率值Pσ,∈[0.01875,0.5]
Pσ=α·Pσ-1对所有σ=1,...,63
其中α=(0.01875/0.5)1/63,p0=0.5 (5)
状态σ的rangeLPS值是通过如下等式获得:
rangeLPSσ=RANGE×Pσ (6)
为了降低获取LPS的范围(以下简写为rangeLPS)所需的计算量,可以预先计算每个rangeLPS的结果,并存储到查找表(lookup table,以下可简称为LUT)中。在H.264/AVC和HEVC中,如查找表1所示,为了减小表格尺寸,采用4列已预先计算的rangeLPS表格。该范围被划分成四段。在每段中,预先定义了每个概率状态o(pσ)的rangeLPS。换言之,概率状态o的rangeLPS被量化成四个值。所选择的rangeLPS依赖于该范围所属的段(segment)。
查找表1.
在查找表1中,“>>”表示右移操作。在JCTVC-F254(Alshin et al.,multi-parameter probability up-datefor CABAC,Joint Collaborative Team on VideoCoding(JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting:Torino,IT,14-22July,2011,Document:JCTVC-F254)中,Alshin等公开了用于HEVC标准的CABAC的多参数概率更新。参数N=1/(1-α)是对之前已编码的二进制比特的数量(即“窗口尺寸”)的近似测量,之前已编码的二进制比特对当前二进制比特有很大影响。参数N的选择决定模型的灵敏度。灵敏的系统将对实时变化快速反应。另一方面,不灵敏的模型将不会对噪声和随机错误进行反应。这两个属性是有用但却相互矛盾的。因此,Alshin等公开了用不同的αi同时计算多个值的方法:
pi_new=(1-αi)·y+αi·pi_old (7)
并使用加权平均作为下一比特概率预测:
pnew=∑(βi·pi_new), (8)
其中βi是与αi相关的加权因子。
Alshin等使用了具有非乘法公式(multiplication free formula)的显式计算以用于概率更新,而不是AVC标准的CABAC中所使用的状态转换查找表(state transitionlookup table)(m_aucNextStateMPS与m_aucNextStateLPS)。假设概率pi被表示为从0至2k(即pi=Pi/2k)的整数Pi,并且αi由2幂分之一来表示(即αi=1/2Mi),可获得如下所示的用于概率更新的非乘法公式:
Pi=(Y>>Mi)+P-(Pi>>Mi). (9)
该公式预测下一二进制比特将为“1”的概率,其中若最后一个编解码二进制比特是“1”,则Y=2k,若最后一个二进制比特是“0”,则Y=0,并且“>>Mi”对应于向右移位Mi比特的操作。
为了保持复杂度增加和性能改善之间的平衡,考虑仅由两个参数组成的用于概率估计的线性组合:
P0=(Y>>4)+P0-(P0>>4), (10)
P1=(Y>>7)+P1-(P0>>7),以及 (11)
P=(P0+P1+1)>>1. (12)
对应于用于AVC CABAC的概率的浮点值总通常是小于或者等于1/2。若该概率超过该界限,LPS将变成MPS,以使得概率在上述的区间之内。当MPS/LPS的概率大于0.5时,需要进行MPS/LPS转换。Alshin等提出(以浮点值的形式)将概率的容许水平增加到1,以避免MPS/LPS转换。因此,获得了用于存储RangeOne或者RangeZero的一个查找表。
在VCEG-AZ07(Chen,et al.,“Further improvements to HMKTA-1.0”,ITU-TVideo Coding Experts Group(VCEG)meeting,Warsaw,Poland,IT,19-26 June 2015,Document:VCEG-AZ07),中,Chen等提出了使用单个参数的CABAC。概率的取得方式与JCTVC-F254中相同,即使用公式(9)来获得为1或者0的概率。对于每一上下文,仅使用一个更新速度,意味着对每一上下文而言,仅使用一个N。但是,不同的上下文可以利用不同的N取值。N的范围从4到7,并且使用2比特(2-bit)变量来表示特定的上下文模型的概率更新速度。编码器侧确定该N值,并被发信在比特流中。
在JCTVC-F254与VCEG-AZ07中,1的范围(以下简写为RangeOne)或者0的范围(以下简称为RangeZero)的查找表是512行(row)乘64列(column)的表格。该查找表的输入为当前范围(current range)和当前概率(current probability)。该当前范围的有效范围为从256到510。将当前范围划分成64段,其中每段包括当前范围的4个值(例如,256至259、260至263等)。可以由以下公式获得范围的段索引(the section index of range):
rangeIdx=(range>>2)-64,或 (13)
rangeIdx=(range>>2)&63 (14)
当前概率(即P)的有效范围从0到2k-1。在JCTVC-F254和VCEG-AZ07中,k为15。将该当前概率划分成512段,其中每段包括当前概率的64个值(例如,0到63、64到127等)。可以由以下公式获得概率的段索引(the section index of probability):
probIdx=(P>>6). (15)
通过查找表来获得RangeOne值,例如
RangeOne=RangeOne的查找表[rangeIdx][probIdx] (16)
在JCTVC-F254与VCEG-AZ07中,RangeOne的查找表是512行(row)乘64列(column)乘9比特的表格。RangeOne的查找表覆盖了从0.0至1.0的概率。该查找表的尺寸将变得很大。其需要294912比特的内存。需要不降低编解码性能或者不显著增加计算复杂度并且克服该问题的技术方案。
发明内容
提供一种使用上下文参考自适应二元算术编码(CABAC)的编解码符号的熵编解码方法与装置。依据本发明,上下文参考自适应算术编码或者解码是依据与上下文自适应算术编码或解码的当前状态相关的当前字节的二进制值的当前概率以及当前范围,应用该上下文自适应算术编码或者解码至当前编解码符号的二进制数据的该当前字节,其中该当前概率是依据在该当前编解码符号之前的或多个已编解码的符号来产生。基于该当前字节的该二进制值的该当前概率是否大于0.5,获取对应于逆当前概率或者该当前概率的LPS概率索引。获取用于标识包含该当前范围的范围区间的范围索引。使用一或者多个算术操作来获取LPS范围,该算术操作包含计算第一值与第二值的乘积,该第一值与(2*该LPS概率索引+1)或者该LPS概率索引相关,该第二值与(2*该范围索引+1)或者该范围索引相关,或者使用一查找表来获取该LPS范围,该查找表包含表格内容,该表格内容对应于与用于编码或者解码该当前字节的一二进制值的与一组LPS概率索引相关的LPS范围的值以及一组范围索引,其中该范围索引对应于该当前范围右移mm的结果,并且mm是非负整数,以及LPS范围的每一值对应(2*LPS概率索引+1)以及(2*范围索引+1)的乘积,或者对应偏移值以及LPS概率索引与范围索引的乘积。
在一实施例中,当该当前字节的该二进制值的该当前概率大于0.5,LPS概率是设置为等于(1-该当前概率),否则该LPS概率设置为等于该当前概率;并且该LPS概率索引是基于指示包含该当前概率的概率区间的目标索引来决定。
在另一实施例中,其中当该当前字节的该二进制值的该当前概率大于2k-1或者大于或等于2k-1,LPS概率是设置为等于(2k-1-该当前概率)以及该LPS概率索引是设置为等于(2n+1-1)减去该当前概率右移(k-n-1)比特的一结果;否则该LPS概率是设置为等于该当前概率并且该LPS概率索引是设置为等于该当前概率右移(k-n-1)比特的结果;并且其中该当前概率是由k-比特值代表,n与k是正整数。该LPS范围是通过(2*该LPS概率索引+1)与(2*该范围索引+1)相乘而获取的乘积、并且将该乘积右移x比特而获取,其中x是正整数。举例来说,k等于15,n等于5并且x等于3。在另一个例子中,该LPS范围是通过该LPS概率索引与该范围索引相乘而获取的乘积、并且将该乘积右移x比特加上偏移值而获取,其中x是正整数,该偏移值是整数。举例来说,k可以等于15,n等于1,x等于1,并且该偏移值等于2、3或4。
该查找表对应于二维查找表,该二维查找表在第一维度上具有LPS概率索引作为第一查找表索引,以及在第二维度上具有一裁切的范围索引作为第二查找表索引,其中该裁切的范围索引对应该范围索引。该LPS概率索引具有从0至31的第一值。该裁切的范围索引具有从0至7至第二值,并且该LPS范围具有从大于或者等于0至小于或者等于255的第三值范围。
在实施例中,LPS概率设置为等于针对(当前概率>>(k-1))的值与当前概率进行逐比特排除或异或的结果,或者该LPS概率索引设置为等于针对(当前概率>>(k-1))的值与(当前概率>>(k-n-1))的值进行逐比特排除或异或的结果;以及其中该当前概率是由k-比特值来表示,n与k是正整数。
该方法进一步包含:从该当前范围获取针对该当前字节分别具有1的值与0的值的1的范围的值与0的范围的值,其中如果该当前字节的该二进制值的该当前概率大于0.5或者大于等于0.5,该1的范围的值设定为(该当前范围-该LPS范围),并且该0的范围设定为该LPS范围;否则该0的范围设定为(该当前范围-该LPS范围)并且该1的范围设定为该LPS范围。
附图说明
图1(a)与图1(b)是上下文自适应二元算术编码的编码器与解码器的基本结构。
图2是二元算术编解码的内容的举例说明,其中如概率尺度所示,初始时概率范围(即range0)是1并且下限(即low0)为0。
图3是依据JVET-J0058的使用扩展相邻区块以混合候选获取的举例说明。
图4是根据本发明一实施例的使用扩展相邻区块以混合候选获取的举例说明。
图5是根据本发明一实施例的上下文参考自适应二元算术编解码的示例性流程图
具体实施方式
以下描述为实施本发明的较佳方式。本文仅用来举例阐释本发明的基本原理,并非用以限定本发明。本发明的保护范围应当视所请求保护范围所界定为准。
在JCTVC-F254与VCEG-AZ07中,RangeOne查找表覆盖从0.0至1.0的概率。JCTVC-F254的LUT是HEVC的LUT的144倍,其实施时在硬件上成本过大。此外,由于RangeOne或者RangeZero的输入值是从最小范围(MinRange)获得,如果使用降采样的LUT,则编码效率将显著下降。
BAC参数初始化
在JCTVC-F254中的复数参数CABAC能够增进熵编解码的编解码效率。然而在等式(10)与(11)中,参数被固定于4与7。在VCEG-AZ07中,参数被发信以适应目标语法的目标内容的概率转换。然而,最佳参数可针对不同的内容而不同,也可针对不同的片段(slice)与不同的QP而不同。因此,本发明针对不同的QP或者不同的片段的不同的内容,设定不同的参数。
复数参数CABAC可重新公式化,如等式(19)至(21):
P0=(Y>>α)+P0-(P0>>α)或P0=P0+((Y-P0)>>α), (19)
P1=(Y>>β)+P1-(P1>>β)或P1=P1+((Y-P1)>>β), (20)
P=(P0+P1+1)>>1 (21)
针对在不同QP的不同上下文,α与β可不同。α与β可在上下文初始程序中初始化,其在编码/解码一片段的初始发生。α与β可通过一预先定义等式以及一或者多个初始值来获得。该多个初始值可预先在标准中定义。在本发明中,提出一些参数初始化方法。
方法-1:单独等式
α=((m0*QP+n0)>>o0)+((p0*q0)>>r0)+s0 (22)
β=((m1*QP+n1)>>o1)+((p1*q1)>>r1)+s1 (23)
在上述等式中,QP是片段QP,m0、n0、o0、p0、q0、r0、s0、m1、n1、o1、p1、q1、r1与s1是整数值。须注意到,如果一可变Y是一负值,(X>>Y)表示(X<<(-Y))。如果获取的α或者β并非是一整数值,其将取整为一整数值。并且,所获取的α或者β将裁切至一预定范围。
在一实施例中,m0、p0、m1、p1是作为针对不同上下文的初始值来存储,而n0、o0、q0、r0、s0、n1、o1、q1、r1与s1是固定值并且可以是0。
方法-2:α与delta值
α=((m0*QP+n0)>>o0)+((p0*q0)>>r0)+s0 (24)
delta=((m1*QP+n1)>>o1)+((p1*q1)>>r1)+s1 (25)
β=α+delta (26)
在一实施例中,QP是片段QP,m0、n0、o0、p0、q0、r0、s0、m1、n1、o1、p1、q1、r1与s1是整数值。须注意的是,如果一变量Y是负值,(X>>Y)表示(X<<(-Y))。如果获取的α、β或delt并非整数值,其将取整为整数值。并且,获取的α或者β将裁切至一预定范围。
在一实施例中,m0、p0、m1、p1是针对不同的上下文而存储为初始值,而n0、o0、q0、r0、s0、n1、o1、q1、r1与s1是固定值并且可以是0。在另一个实施例中,m0、p0、m1是针对不同的上下文而存储为初始值,而n0、o0、q0、r0、s0、n1、o1、p1、q1、r1与s1是固定值并且可以为0,。在另一个实施例中,m0、p0、p1是针对不同的上下文而存储为初始值,而n0、o0、q0、r0、s0、m1、n1、o1、q1、r1与s1是固定值并且可以为0。
方法-3:成对索引
α与β的组合可分类为多个参数对。一个索引指派至一参数对。所选择的成对索引(pair index)可通过一预定定义的等式以及一或者多个初始值来获取。举例来说,如果α与β的范围是在3至8中,其具有15对,对应于:
#1:[3,4],#2:[3,5],#3:[3,6],#4:[3,7],#5:[3,8],#6:[4,5],#7:[4,6],#8:[4,7],#9:[4,8],#10:[5,6],#11:[5,7],#12:[5,8],#13:[6,7],#14:[6,8],#15:[7,8]
或
#1:[3,4],#2:[4,5],#3:[5,6],#4:[6,7],#5:[7,8],#6:[3,5],#7:[4,6],#8:[5,7],#9:[6,8],#10:[3,6],#11:[4,7],#12:[5,8],#13:[3,7],#14:[4,8],#15:[3,8].
所选择的成对索引可获取为:
索引=((m0*QP+n0)>>o0)+((p0*q0)>>r0)+s0 (27)
在上述等式中,QP是片段QP,m0、n0、o0、p0、q0、r0与s0是整数值。需注意,如果一变量Y是负值,(X>>Y)表示(X<<(-Y))。如果获取的索引并非整数值,其将取整为整数值。
在一个实施例中,m0与p0是针对不同的上下文而存储为初始值,而n0、o0、q0、r0、s0是固定值并且可以是0。
在上述方法中,多个初始值可封包至一初始值。举例来说,在方法-2中,m0、p0、m1、p1可封包为一初始值。
在上述方法中,针对一上下文,多个初始值可针对不同的片段而不同,或者针对不同的片段是相同。举例来说,一初始值或值集合是针对I-片段而设定,初始值或值集合是针对P-片段而设定,一初始值或值集合是针对B-片段而设定。在另一实施例中,一初始值或值集合是针对I-片段而设定,初始值或值集合是针对P-片段与B-片段而设定。
rangeLPS的获取
在CABAC编码器与解码器中,一递归区间-分割程序(recursive interval-subdividing procedure)在二元算术编码单元130以及二元算术解码单元140中执行。在区间-分割中,获取rangeLPS、RangeOne或者RangeZero。在JCTVC-F254与VCEG-AZ07中,RangeOne从查找表导出。RangeOne的查找表覆盖从0.0至1.0的概率。然而,其使得LUT过大,以使得硬件成本过高。其LUT是HEVC的LUT的144倍。然而,由于RangeOne或者RangeZero的输入值是从rangeMin获取,如果采用降采样的LUT,则编解码效率将显著下降。
因此,在本发明中,提出仅存储从0.0至0.5的概率范围。在另一半查找表中的值可使用“范围-rangeLPS”来获取。行(row)的数量定义了概率的分辨率。举例来说,设计针对概率范围等于0.5至0.0的具有64行rangeLPS的查找表。每一行代表1/64的概率范围的LPS的范围。rangeLPS的值是通过(范围A)*(概率B)来获取。举例来说,查找表2展示具有4列与64行的rangeLPS的查找表。第一行代表概率为63/128至64/128之间的4个不同范围段的rangeLPS。在查找表2中,范围A是range Mid(以下简称为range Mid)并且概率B是最大概率(以下简称为Prob Max)。rangeLPS的值是通过(range Mid)*(Prob Max)来导出。在JCTVC-F254与VCEG-AZ07中,针对查找表2,如果1的概率大于0.5(例如0.64),其表示0的概率是0.36。将使用0.36(在第18行)来寻找RangeZero。RangeOne将通过(范围-RangeZero)来获取。
查找表2.针对具有(range Mid)*(Prob Max)的一定概率的rangeLPS的查找表
查找表3表示另一值获取方法,其rangeLPS可通过具有32x8查找表的(rangeMid)*(Prob Mid)来获取,其中range Mid表示范围中值,Pro Mid表示概率中值。查找表3的列与行索引可分别为(范围>>5)&7以及(概率>>9),其中概率是通过15-比特值来表示。如果(概率>>9)是大于31,(63-(概率>>9))的值是用来表示查找表的列索引(probIdx)。举例来说,如果对应二进制比特值概率的概率等于1,该概率是使用15-比特值表示,并且如果(概率>>9)小于32,(概率>>5)&7以及(概率>>9)是用于查找表查找。所导出的值是RangeOne,并且RangeZero以(范围-RangeOne)来导出。如果(Prob>>9)等于或者大于32(即概率≥16384),(范围>>5)&7以及(63-(概率>>9))(即(32767-P)>>9)被用于查找表查找。所导出的值是RangeZero,并且RangeOne是从(范围-RangeZero)导出。
查找表3.针对具有((range Mid)*(Prob Mid)的一定概率的rangeLPS的查找表
查找表也可通过使用(rangeMin)*(Prob Max)来获取,如查找表4所示。
查找表4.针对具有(rangeMin)*(Prob Max)的一定概率的rangeLPS的查找表
在导出RangeOne(或者RangeZero)的实施例中,针对k-比特概率(2k>P>0)以及一9-比特范围,LPS的概率(以下简称为probLPS)可依据probLPS=(P>=2k-1)?2k-1-P∶P来计算。probIdx可通过probLPS>>(k-n-1)来获取,其中rangeLPS的查找表具有2n行。rangeIdx是以(范围>>(8-m))-(256>>m)、((范围-256)>>(8-m))或者(范围>>(8-m))&(2m-1)来获取,其中rangeLPS查找表具有2m列。rangeLPS可依据rangeLPS=rangeLPS的查找表[probIdx][rangeIdx]来计算。如果P等于或者大于2k-1(即,P的第k-比特等于1),rangeOne与rangeZero可依据rangeOne=范围-rangeLPS以及rangeZero=rangeLPS来分别计算。否则(即P小于2k-1),rangeOne与rangeZero可依据rangeOne=rangeLPS以及rangeZero=范围-rangeLPS来分别计算。
在JCTVC-F254与VCEG-AZ07的例子中,k是15,probLPS、probIdx与rangeIdx可依据probLPS=(P>=16384)?32767-P∶P、probIdx=probLPS>>8以及rangeIdx=(range>>6)&3来分别计算。如果P等于或者大于16384,rangeOne与rangeZero可依据rangeOne=范围-rangeLPS以及rangeZero=rangeLPS来分别计算。否则(即P小于16384),rangeOne与rangeZero可依据rangeOne=rangeLPS以及rangeZero=范围-rangeLPS来分别计算。
rangeLPS的值可通过计算(range Min)*(Prob Max)、(range Min)*(Prob Mid)、(range Min)*(Prob Min)、(range Mid)*(Prob Max)、(range Mid)*(Prob Mid)、(rangeMid)*(Prob Min)、(range Max)*(Prob Max)、(range Max)*(Prob Mid)或(range Max)*(Prob Min)来获取。rangeLPS的查找表的输入值可使用乘法器来获取。
举例来说,如果rangeLPS的查找表是使用(range Min)*(Prob Max)来导出,其输入值可通过等式来获取。举例来说,针对k-比特概率(2k>P>0)以及一9-比特范围,LPS的概率(以下简称为probLPS)可依据probLPS=(P>=2k-1)?2k-1-P∶P来计算。probIdx可通过probLPS>>(k-n-1)来获取。rangeIdx以(范围>>(8-m))来获取。rangeLPS可依据rangeLPS=((probIdx+1)*rangeIdx)>>(k-n-m-6)、((probIdx)*rangeIdx+rangeIdx)>>(k-n-m-6)、(((probIdx)*rangeIdx)>>(k-n-m-6))+((rangeIdx)>>(k-n-m-6))或(((probIdx+偏移值1)*rangeIdx+偏移值2)>>(k-n-m-6))+偏移值3来计算,其中偏移值1、偏移值2与偏移值3是整数。举例来说,偏移值1与偏移值2可以是0,偏移值3可以是2、3或者4。
在一实施例中,k是15并且如果n是5以及m是3,probLPS、probIdx与rangeIdx可依据probLPS=(P>=16384)?32767-P:P、probIdx=probLPS>>9与rangeIdx=(range>>5)来分别计算。rangeLPS可依据rangeLPS=((probIdx+1)*rangeIdx)>>1、或((probIdx*rangeIdx)>>1)+(rangeIdx>>1)、或((probIdx*rangeIdx)>>1)+4来记算。如果P等于或者大于16384,rangeOne与rangeZero可分别依据rangeOne=范围-rangeLPS与rangeZero=rangeLPS来计算。否则(即小于16384),rangeOne与rangeZero可依据rangeOne=rangeLPS与rangeZero=范围-rangeLPS来分别计算。
rangeLPS的值可预先计算并且存储在查找表中。举例来说,查找表4是通过针对查找表使用probIdx与rangeIdx的“rangeLPS=((probIdx+1)*rangeIdx)>>1”的结果。查找表5是通过针对查找表使用probIdx与rangeIdx的“rangeLPS=((probIdx*rangeIdx)>>1)+(rangeIdx>>1)”的结果。
查找表5.具有(range Min)*(Prob Max)的一定概率的rangeLPS的查找表
在另一实施例中,如果rangeLPS查找表是通过使用(range Min)*(Prob Max)来获取,输入值可通过使用等式来获得。举例来说,针对k-比特概率(2k>P>0)以及一9-比特范围,probIdx可依据probIdx=(P>=2k-1)?2n+1-(P>>(k-n-1)):(P>>(k-n-1))+1来计算,rangeIdx以(range>>(8-m))来导出。rangeLPS=(probIdx*rangeIdx)>>(k-n-m-6)。
在JCTVC-F254与VCEG-AZ07的例子中,k是15,并且如果n是5以及m是3,probIdx与rangeIdx可依据probIdx=(P>=16384)?64-(P>>9):(P>>9)+1与rangeIdx=(range>>5)来分别计算。rangeLPS可依据rangeLPS=(probIdx*rangeIdx)>>1来计算。如果P等于或者大于16384,rangeOne与rangeZero可依据rangeOne=范围-rangeLPS以及rangeZero=rangeLPS来分别计算。否则(即P小于16384),rangeOne与rangeZero可依据rangeOne=rangeLPS以及rangeZero=范围-rangeLPS来分别计算。
在另一实施例中,如果rangeLPS查找表是通过等式来获取,输入值可通过使用等式来获取。举例来说,针对k-比特概率(2k>P>0)以及9-比特范围,probIdx可依据probIdx=(P>=2k-1)?2n+1-(P>>(k-n-1)):max(1,(P>>(k-n-1)))或probIdx=(P>=2k-1)?2n +1-(P>>(k-n-1))-1:max(1,(P>>(k-n-1)))来计算,其中rangeLPS查找表具有2n行。rangeIdx以(范围>>(8-m))来导出,其中rangeLPS查找表具有2m列。rangeLPS可依据rangeLPS=(probIdx*rangeIdx)>>(k-n-m-6)来计算,其中k可以是15、n可以是5,并且m可以是3。
在另一实施例中,如果rangeLPS查找表是通过(range mid)*(Prob Max)来获取,输入值可通过使用一等式来获得。举例来说,针对k-比特概率(2k>P>0)以及一9-比特范围,probIdx可依据probIdx=(P>=2k-1)?2n+1-(P>>(k-n-1)):(P>>(k-n-1))+1来计算。rangeIdx以2*(range>>(8-m))+1来导出。rangeLPS可依据rangeLPS=(probIdx*rangeIdx)>>(k-n-m-6+1)来计算,其中k可以是15、n可以是5,并且m可以是3。
在另一实施例中,如果rangeLPS查找表是通过(range min)*(Prob mid)来获取,输入值可通过使用等式来获得。举例来说,针对k-比特概率(2k>P>0)以及9-比特范围,probIdx’可依据probIdx’=(P>=2k-1)?2n+1-(P>>(k-n-1))-1:(P>>(k-n-1))来计算。probIdx是依据probIdx=2*probIdx’+1来计算。rangeIdx以(range>>(8-m))来导出。rangeLPS可依据rangeLPS=(probIdx*rangeIdx)>>(k-n-m-6+1)来计算,其中k可以是15、n可以是5,并且m可以是3。我们可以使用一8-比特*(1<<m)*(1<<n)的查找表来存储该预算计算的rangeLPS值。举例来说,如果n是5并且m是4,在查找表6中,通过使用probIdx’and(range>>(8-m))&((1<<m)-1),8-比特*16*32的查找表可用来获取rangeLPS值。举例来说,如果n是5并且m是3,在查找表-7、通过使用probIdx’and(range>>(8-m))&((1<<m)-1),8-比特*8*32查找表可用于获取rangeLPS值。
查找表6.具有(range min)*(Prob Mid)的一定概率的rangeLPS的查找表
查找表7.具有(range min)*(Prob Mid)的一定概率的rangeLPS的查找表
在另一实施例中,如果rangeLPS的查找表是使用(range mid)*(Prob mid)来获取,其输入值可使用一等式来获取。举例来说,针对k-比特概率(2k>P>0)以及一9-比特范围,probIdx’可依据probIdx’=(P>=2k-1)?2n+1-(P>>(k-n-1))-1:(P>>(k-n-1))或probIdx’=(P>=2k-1)?(2k-P-1)>>(k-n-1):(P>>(k-n-1))计算。probIdx依据probIdx=2*probIdx’+1计算。rangeIdx以2*(range>>(8-m))+1来获取。rangeLPS依据rangeLPS=(probIdx*rangeIdx)>>(k-n-m-6+2)来获取,k可以是15,n是5并且m是3。举例来说,probIdx’可依据probIdx’=(P>=16384)?(32767-P)>>9:P>>9或probIdx’=(P>=16384)?63-(P>>9):(P>>9)来计算。probIdx可依据probIdx=2*probIdx’+1来计算。rangeIdx以2*(range>>5)+1来获取。rangeLPS可依据rangeLPS=(probIdx*rangeIdx)>>3来获取。可使用一8-比特*(1<<m)*(1<<n)的查找表来存储该预先计算的rangeLPS值。举例来说,如果n是5并且m是3,在查找表8中,8-比特*8*32查找表可用于通过使用probIdx’与(range>>(8-m))&((1<<m)-1)来获取rangeLPS值。举例来说,为了获取RangeOne(或RangeZero),probIdx’可依据probIdx’=(P>=2k-1)?(2k-1-P)>>(k-n-1):P>>(k-n-1)或者probIdx’=(P>=2k-1)?2n+1-(P>>(k-n-1))-1:(P>>(k-n-1))来计算。rangeIdx’以(range>>(8-m))-(256>>m)、((range-256)>>(8-m))或(range>>(8-m))&(2m-1)来获取。rangeLPS可依据rangeLPS=rangeLPS查找表[probIdx’][rangeIdx’]来获取。如果P等于或者大于2k-1(即,P的第k比特等于1),rangeOne与rangeZero可依据rangeOne=range-rangeLPS与rangeZero=rangeLPS来分别计算。否则(即P小于2k-1),rangeOne与rangeZero可分别依据rangeOne=rangeLPS与rangeZero=range-rangeLPS来计算。举例来说,如果k是15并且如果n是5以及m是3,probIdx’可依据probIdx’=(P>=16384)?(32767-P)>>9:P>>9或probIdx’=(P>=16384)?63-(P>>9):(P>>9)来计算。rangeIdx’以(range>>5)&7来获取。rangeLPS可依据rangeLPS=rangeLPS查找表[probIdx’][rangeIdx’]来计算。如果P等于或者大于16384,rangeOne与rangeZero可依据rangeOne=range-rangeLPS与rangeZero=rangeLPS来分别计算。否则,(即P小于16384),rangeOne与rangeZero可依据rangeOne=rangeLPS与rangeZero=range-rangeLPS来计算。
查找表8.具有(range Mid)*(Prob Mid)的一定概率的rangeLPS的查找表
通常而言,针对k-比特概率(2k>P>0)以及9-比特范围,probIdx’可依据probIdx’=(P>=2k-1)?2n+1-(P>>(k-n-1))-1:(P>>(k-n-1))来计算。probIdx可依据probIdx=a*probIdx’+b来计算。rangeIdx是以c*(range>>(8-m))+d来获取。rangeLPS可依据rangeLPS=((probIdx*rangeIdx+e)>>(k-n-m-6))/a/c+f来计算。a、b、c、d、e、f是预先定义整数值或者已获取值,k可是15、n可是5、m可是3。
对于上述通常情形,如果f是0(即不增加偏移),提出一些方式来避免所获取的rangeLPS的值过小。在一种方法中,使用了裁切(clip)。如果rangeLPS小于阈值,rangeLPS值设定为该阈值。该阈值可以是2、3或4。在另一方法中,rangeLPS是具有数值的“比特运算符or(bit-wise or)”。该数值可以是2、3或4。举例来说,rangeLPS=(rangeLPS|数值),或者rangeLPS=(rangeLPS OR数值).
举例来说,a与c等于1,b、d与e等于0,f等于4。如果使用16-比特概率(216>P>0)与9-比特范围,n是5,m是3,并且probIdx=(P>=16384)?63-(P>>9):(P>>9)。rangeIdx以(range>>5)来获取。rangeLPS=((probIdx*rangeIdx)>>1)+4。可使用一8-比特*(1<<m)*(1<<n)查找表来存储该预先计算的rangeLPS值。举例来说,如果n是5并且m是3,在查找表9中,可使用一8-比特*8*32查找表来获取rangeLPS值。
在另一实施例中,如果16-比特概率(216>P>0)与9-比特范围,n是5,m是3,并且probIdx=(P>=16384)?63-(P>>9):(P>>9)。rangeIdx以(range>>5)来获取。TherangeLPS=((probIdx*rangeIdx)>>1)|4。可使用一8-比特*(1<<m)*(1<<n)查找表来存储该预先计算的rangeLPS值。在另一实施例中,如果((probIdx*rangeIdx)>>1)<4,rangeLPS设置为等于4。否则,rangeLPS设置为等于((probIdx*rangeIdx)>>1)。
查找表9.具有((probIdx*rangeIdx)>>1)+4的一定概率的rangeLPS的查找表
针对已获取的rangeLPS,其数值将以一阈值来裁切。该阈值可为一固定值、一预先定义值、一信令值(在序列/图像/片段/切片-等级发信)、或对应至该当前范围(或范围索引)或者当前概率(或概率索引、LPS概率、LPS概率索引)的一适应性数值。在一举例中,该阈值等于在该范围索引-128的最小范围、或该范围索引-2q-2的最小范围,其中q是用于该当前范围的比特。举例来说,如果使用9-比特并且rangeIdx是以(range>>5)来获取,在该rangeIdx的最小范围是等于(rangeIdx<<5)。该阈值等于(rangeIdx<<5)-128。如果该rangeLPS大于该阈值,rangeLPS设定为等于该阈值;否则,该rangeLPS不改变。查找表10表示该修正的查找表8,该查找表8中考虑到了最大reangeLPS约束。在另一个实施例中,该阈值等于当前范围-128或者当前范围-2q-2,其中q是用于当前范围的比特数。举例来说,如果使用一9-比特范围,该阈值等于范围-128,如果rangeLPS大于该阈值,rangeLPS设定为等于该阈值;否则,rangeLPS不变。
查找表10.具有(range Mid)*(Prob Mid)的一定概率的rangeLPS查找表
需注意,由于2k-1在二进制表达中是完全为1,因此2k-1-P针对最低有效比特LSB(less significant bit)的k-1比特仅做逐比特取逆。在硬件实现中,可针对P的第k比特以及P的第k-1比特实施逐比特排除或者异或(XOR)来获取probLPS或probIdx。
在上述实施例中,rangeLPS查找表的尺寸可显著减小。与在JCTVC-F254与VCEG-AZ07中所使用的查找表相比较,当前应用可使用一较小查找表,该尺寸是JCTVC-F254与VCEG-AZ07中所使用的数据查找表的1/72、1/144或1/288。此外,在rangeLPS查找表的输入值可使用乘法器来获取,其通过使用硬件描述语言(例如Verilog)而容易实现。从查找表中获取的值与通过使用乘法器获取的值相同。设计者可选择合适的实施方案来获取rangeLPS、rangeOne或rangeZero。该方式提供实施的设计灵活性。
MV存储准确性
在HEVC中,运动向量准确性(MVprecision,以下简称为MV准确性)是四分之一像素(quarter-pel)解决方案。MV存储在一16-比特缓冲器中,其定义MV范围是-215至215-1。有效MV范围是在[-8192.00,8191.75](单位是像素)。
在下一代视频编解码中,优选较高MV准确性。MV准确性可以为1/8像素(1/8-pel)、1/16像素(1/16-pel)或者更优。如果MV比特-宽度是固定或者MV缓冲器尺寸是固定,有两种方式来在不同的MV准确性下存储MV。
A.以最高准确性存储所有的MV
如果系统具有不同的MV分辨率,其以最高准确性来存储所有的MV。低准确性MV是左移(left-shift)并且裁切(clip),以成为一高准确性MV。该裁切是限制最大有效MV范围。举例来说,如果MV比特-宽度是16比特并且准确性是1/16像素,有效MV范围是在[-2048.00,2047.09375](以像素为单位)。较低准确性MV左移至相同的准确性,在范围[-2048.00,2047.09375]内裁切并且存储。在另一个实施例中,较低准确性MV是以低准确性在范围[-2048.00,2047.09375]内裁切并且左移至高准确性。
B.以低准确性存储所有的MV
如果系统具有不同的MV分辨率,针对MV参考,其以最低准确性来存储所有的MV。但在中间过程中,例如在运动补偿、放射运动向量获取(affine MV derivation),使用最高准确性MV来处理。在该过程之后,MV以低准确性存储。
C.以不同的准确性存储MV
针对每一MV,使用一MV分辨率索引来代表MV的MV准确性。不同的MV分辨率可具有不同的有效MV范围。
D.针对时域同位MV的具有低MV准确性的A/C方法
在该实施例中,方法A与/或C可用于在当前图像中存储MV。然而,MV以低准确性存储在MV缓冲器中,用于时域同位MV参考。
MVP获取
在JVET-J0058(Ye等.,“Merge mode modification on top of Tencent’ssoftware in response to CfP”,Joint Video Experts Team(JVET)of ITU-T SG 16WP 3and ISO/IECJTC 1/SC 29/WG 11,10th Meeting:San Diego,US,10-20Apr.2018,Document:JVET-J0058)中,公开一种修正的混合候选获取方法。不仅相邻4x4MV用于混合候选列表获取,并且4x4MV与其左侧96像素以及上部96像素亦用于混合候选列表获取,如图3所示。在图3中,相邻区块E是位于当前区块310的上-左角,相邻区块B与C位于当前区块310的上侧以及上-右位置,并且相邻区块A与D位于当前区块310的左侧以及左-右位置。依据JVET-J0058,增加的混合候选是由扩展区块B与C垂直使用320,由区块A与D水平使用330、以及由区块E对角线使用340,其位于具有与当前区块尺寸相同的网格尺寸的均分网格(blockgrid)。因此,需要存储多个MV至存储器中,以实现混合候选列表获取。
在本发明中,提出在不同的编码单元(以下简称为CU)存取已编解码的MV信息,如图4所示。依据本发明,用于定位扩展的相邻区块的网格是基于包含该相邻区块的区块尺寸。举例来说,在编解码区块420中的相邻区块C以及相邻区块C1用于扩展混合候选。更进一步,区块C1是包含在编解码区块422中,并且相邻区块C2是用于扩展混合候选。针对相邻区块D与B,两者皆包含在编解码区块430中,并且区块D1与B1用来作为扩展混合候选。更进一步,相邻区块D1与B1是包含在编解码区块432中,并且区块D2与B2用作扩展混合候选。针对相邻区块E,区块包含在编解码区块440中,并且在区块440的上的区块E1用作扩展混合候选。更进一步,区块E1包含在编解码区块442中,并且区块E2用作扩展混合候选。与JVET-J0058中所提出的方法相比较,所存取的区块的位置并非是固定的位置。其基于已编解码的CU尺寸来决定。举例来说,在较上图示中,区块B、B’、与B’之间的距离是相同的,其等于CU高度。在较下图示中,B、B1、与B2依赖于包含区块B、B1与B2的多个CU的CU高度。换言之,其沿一些方向或者一些规则提取不同CU的多个MV信息。所提取区块的最大距离可控制在一范围内。举例来说,一、两、三个CTU宽度以及/或者CTU高度,或者不超出当前CTU行(row)。
图5是依据本发明的实施例的CABAC的示例性流程图。在该流程图中所示的步骤,以及在本发明中所提及的其他流程,可在编码器端以及/或者解码器端的一或者多个处理器(例如一或者多个CPU)上执行的程序代码来实现。在该流程图中所示的步骤可基于硬件,例如安排来执行该流程图中多个步骤的一或者多个电子装置或者处理器,来实现。依据本发明的实施例,上下文适应性算术编码或者解码是依据当前字节的二进制值的当前概率以及与该算术编解码器当前状态相关的当前范围,应用于当前编解码符号的二进制数据的当前字节,其中该当前概率是依据在该当前编解码符号之前的一或者多个先前已编解码符号来产生,在步骤510中。针对一视频编解码系统,该编解码符号对应变换的以及量化的预测残差、帧间预测区块的运动向量以及多种编解码参数(例如编解码模式)。编解码符号二值化以产生一二进制字符串。CABAC编解码可应用至该二进制字符串。在步骤520,依据该当前字节的该二进制值的该当前概率是否大于0.5(或者2k-1,如果当前概率是以k-比特值表示)来获取对应于一逆当前概率(inverted current probability)或者当前概率的LPS概率索引。在本发明中公开了多种获取LPS概率索引的方法。举例来说,如果该当前字节的该二进制值的该当前概率大于0.5,LPS概率是设置为等于(1-该当前概率),否则,LPS概率设置为等于该当前概率;并且该LPS概率索引是基于指示包含该当前概率的一概率区间的一目标索引来决定。在步骤530中,获取用于指示包含该当前范围的一范围区间的范围索引。在步骤540中,使用一或者多个算术操作来获取LPS范围,该算术操作包含计算第一值与第二值的乘法,该第一值与(2*LPS概率索引+1)或者LPS概率索引相关,该第二值与(2*范围索引+1)或者范围索引相关,或者使用查找表来获取该LPS范围,该查找表包含表格内容,该表格内容对应于与用于编码或者解码该当前字节的二进制值的与一组LPS概率索引以及一组范围索引相关的LPS范围的值,其中该范围索引对应于该当前范围右移mm的结果,并且mm是非负整数,以及LPS范围的每一值对应(2*LPS概率索引+1)以及(2*范围索引+1)的乘积,或者对应一偏移值以及LPS概率索引以及范围索引的乘积。
上述流程仅仅为提供依据本发明进行视频编码的举例说明。本领域具有通常知识者可修正每一步骤、重新安排该些步骤、拆分一步骤、或者组合步骤来实现本发明,但不背离本发明的精神。在上述说明中,具体语法以及语义仅仅用来解释说明本发明的示例。本领域具有通常知识者可使用等同的语法及语义来替换该些语法及语义,而不背离本发明的精神。
提供上述说明以使得本领据具有通常知识者能够实现本发明的具体应用。本领据具有通常知识者可了解所描述的实施例的多种变型,上述通常原则也适用于其他实施例。因此,本发明的范围并不局限于如上所述的举例实施例,而应包含具有本发明精神以及创新性特点的最广范围。在上述具体说明中,多种具体细节仅仅提供来方便理解本发明。本领域具有通常知识者可了解本发明可具体实施。
本发明可使用多种硬件、软件、或者两者的组合来实现。举例来说,本发明的实施例可以是整合至视频压缩芯片的一或多电路,或者是整合至视频压缩软件的程序化代码来实现本发明。本发明的实施例亦可以是程序化代码,在数字信号处理器(Digital SignalProcessor,DSP)上执行,来执行上述发明。本发明亦涉及通过计算器处理器、数字信号处理器、微处理器、现场可编程门数组(Field programmable gate array,FPGA)所执行的多种功能。该些处理器通过执行依据本发明的实施例所定义的机器可读软件代码或者韧体代码能够设置为依据本发明执行多种任务。软件代码或者韧体代码能够以不同的编码语言或者不同的格式或者规格所开发。软件代码亦适应不同的平台。然而,依据本发明执行本发明的任务的软件代码以及其他设置代码的不同代码格式、规格以及语言皆不背离本发明的主旨精神。
本发明能够以其他具体的形式实现而不背离本发明的精神与特点。所描述的实施例仅仅用来举例说明,而并非是本发明的限制。本发明的范围,由请求保护的范围所指示,而并非仅限于上述实施例。与请求保护的范围等同含义的变型皆包含在其范围之内。
Claims (27)
1.一种编解码符号的熵编解码方法,该方法包含:
依据当前字节的二进制值的当前概率以及与上下文自适应算术编码或解码的当前状态相关的当前范围,应用该上下文自适应算术编码或者解码至当前编解码符号的二进制数据的该当前字节,其中该当前概率是依据在该当前编解码符号之前的一或多个已编解码的符号来产生;
基于该当前字节的该二进制值的该当前概率是否大于2k–1或者大于或等于2k–1,获取对应于逆当前概率或者该当前概率的最小概率符号概率索引,k是正整数;
获取用于标识包含该当前范围的范围区间的范围索引;以及
使用一或者多个算术操作来获取最小概率符号范围,或者使用查找表来获取该最小概率符号范围,其中该算术操作包含计算第一值与第二值的乘积,该第一值与(2*该最小概率符号概率索引+1)或者该最小概率符号概率索引相关,该第二值与(2*该范围索引+1)或者该范围索引相关,当该算术操作对应该最小概率符号概率索引与该范围索引的乘积时,该算术操作进一步对应于一偏移值以及最小概率符号概率索引与范围索引的乘积,该查找表包含表格内容,该表格内容对应于最小概率符号范围的值,该最小概率符号范围的值与用于编码或者解码该当前字节的一二进制的值与一组最小概率符号概率索引以及一组范围索引相关,其中该范围索引对应于该当前范围右移mm的结果,并且mm是非负整数,以及最小概率符号范围的每一值对应(2*最小概率符号概率索引+1)以及(2*范围索引+1)的乘积。
2.根据权利要求1所述的编解码符号的熵编解码方法,其特征在于,当该当前字节的该二进制值的该当前概率大于0.5时,一最小概率符号概率是设置为等于(1–该当前概率),否则该最小概率符号概率设置为等于该当前概率;并且该最小概率符号概率索引是基于指示包含该当前概率的一概率区间的一目标索引来决定。
3.根据权利要求1所述的编解码符号的熵编解码方法,其特征在于,当该当前字节的该二进制值的该当前概率大于2k–1或者大于或等于2k–1,最小概率符号概率是设置为等于(2k–1–该当前概率)以及该最小概率符号概率索引是设置为等于(2n+1–1)减去该当前概率右移(k-n-1)比特的一结果;否则该最小概率符号概率是设置为等于该当前概率并且该最小概率符号概率索引是设置为等于该当前概率右移(k-n-1)比特的结果;并且其中该当前概率是由k-比特值代表,n与k是正整数。
4.根据权利要求3所述的编解码符号的熵编解码方法,其特征在于,k等于15,n等于5。
5.根据权利要求3所述的编解码符号的熵编解码方法,其特征在于,该最小概率符号范围是通过(2*该最小概率符号概率索引+1)与(2*该范围索引+1)相乘而获取的乘积、并且将该乘积右移x比特而获取,其中x是正整数。
6.根据权利要求5所述的编解码符号的熵编解码方法,其特征在于,x等于3。
7.根据权利要求3所述的编解码符号的熵编解码方法,其特征在于,该最小概率符号范围是通过该最小概率符号概率索引与该范围索引相乘而获取的乘积、并且将该乘积右移x比特加上偏移值而获取,其中x是正整数,该偏移值是整数。
8.根据权利要求7所述的编解码符号的熵编解码方法,其特征在于,x等于1,并且该偏移值等于2、3或4。
9.根据权利要求1所述的编解码符号的熵编解码方法,其特征在于,该查找表对应于二维查找表,该二维查找表在第一维度上具有最小概率符号概率索引作为第一查找表索引,以及在第二维度上具有裁切的范围索引作为第二查找表索引,其中该裁切的范围索引对应该范围索引。
10.根据权利要求9所述的编解码符号的熵编解码方法,其特征在于,该最小概率符号概率索引具有从0至31的第一值,该裁切的范围索引具有从0至7的第二值,并且该最小概率符号范围具有从大于或者等于0至小于或者等于255的第三值范围。
13.根据权利要求1所述的编解码符号的熵编解码方法,其特征在于,该最小概率符号概率设置为等于针对(当前概率>>(k-1))的值与当前概率进行逐比特排除或异或的结果,或者该最小概率符号概率索引设置为等于针对(当前概率>>(k-1))的值与(当前概率>>(k-n-1))的值进行逐比特排除或异或的结果;以及其中该当前概率是由k-比特值来表示,n与k是正整数。
14.根据权利要求1所述的编解码符号的熵编解码方法,其特征在于,进一步包含:从该当前范围获取针对该当前字节分别具有1的值与0的值的一1的范围的值与一0的范围的值,其中如果该当前字节的该二进制值的该当前概率大于0.5或者大于等于0.5,该1的范围的值设定为(该当前范围–该最小概率符号范围),并且该0的范围设定为该最小概率符号范围;否则该0的范围设定为(该当前范围–该最小概率符号范围)并且该1的范围设定为该最小概率符号范围。
15.一种图像或者视频的编码器或者解码器的熵编解码装置,该熵编解码装置包含:
依据当前字节的二进制值的当前概率以及与上下文自适应算术编码或解码的当前状态相关的当前范围,应用该上下文自适应算术编码或者解码至当前编解码符号的二进制数据的该当前字节,其中该当前概率是依据在该当前编解码符号之前的一或多个已编解码的符号来产生;
基于该当前字节的该二进制值的该当前概率是否大于2k–1或者大于或等于2k–1,获取对应于逆当前概率或者该当前概率的最小概率符号概率索引,k是正整数;
获取用于标识包含该当前范围的范围区间的范围索引;以及
使用一或者多个算术操作来获取最小概率符号范围,或者使用查找表来获取该最小概率符号范围,其中该算术操作包含计算第一值与第二值的乘积,该第一值与(2*该最小概率符号概率索引+1)或者该最小概率符号概率索引相关,该第二值与(2*该范围索引+1)或者该范围索引相关,当该算术操作对应该最小概率符号概率索引与该范围索引的乘积时,该算术操作进一步对应于一偏移值以及最小概率符号概率索引与范围索引的乘积,该查找表包含表格内容,该表格内容对应于最小概率符号范围的值,该最小概率符号范围的值与用于编码或者解码该当前字节的二进制值的与一组最小概率符号概率索引以及一组范围索引相关,其中该范围索引对应于该当前范围右移mm的结果,并且mm是非负整数,以及最小概率符号范围的每一值对应(2*最小概率符号概率索引+1)以及(2*范围索引+1)的乘积。
16.根据权利要求15所述的熵编解码装置,其特征在于,当该当前字节的该二进制值的该当前概率大于0.5,最小概率符号概率是设置为等于(1–该当前概率),否则该最小概率符号概率设置为等于该当前概率;并且该最小概率符号概率索引是基于指示包含该当前概率的概率区间的目标索引来决定。
17.根据权利要求15所述的熵编解码装置,其特征在于,当该当前字节的该二进制值的该当前概率大于2k–1或者大于或等于2k–1,最小概率符号概率是设置为等于(2k–1–该当前概率)以及该最小概率符号概率索引是设置为等于(2n+1–1)减去该当前概率右移(k-n-1)比特的结果;否则该最小概率符号概率是设置为等于该当前概率并且该最小概率符号概率索引是设置为等于该当前概率右移(k-n-1)比特的结果;并且其中该当前概率是由k-比特值代表,n与k是正整数。
18.根据权利要求17所述的熵编解码装置,其特征在于,k等于15,n等于5。
19.根据权利要求18所述的熵编解码装置,其特征在于,该最小概率符号范围是通过(2*该最小概率符号概率索引+1)与(2*该范围索引+1)相乘而获取的乘积、并且将该乘积右移x比特而获取,其中x是正整数。
20.根据权利要求19所述的熵编解码装置,其特征在于,x等于3。
21.根据权利要求17所述的熵编解码装置,其特征在于,该最小概率符号范围是通过该最小概率符号概率索引与该范围索引相乘而获取的乘积、并且将该乘积右移x比特加上偏移值而获取,其中x是正整数,该偏移值是整数。
22.根据权利要求21所述的熵编解码装置,其特征在于,x等于1,并且该偏移值等于2、3或4。
23.根据权利要求15所述的熵编解码装置,其特征在于,该查找表对应于二维查找表,该二维查找表在第一维度上具有最小概率符号概率索引作为第一查找表索引,以及在第二维度上具有裁切的范围索引作为第二查找表索引,其中该裁切的范围索引对应该范围索引。
24.根据权利要求23所述的熵编解码装置,其特征在于,该最小概率符号概率索引具有从0至31的第一值,该裁切的范围索引具有从0至7的第二值,并且该最小概率符号范围具有从大于或者等于0至小于或者等于255的第三值范围。
25.根据权利要求15所述的熵编解码装置,其特征在于,该最小概率符号概率设置为等于针对(当前概率>>(k-1))的值与当前概率进行逐比特排除或异或的结果,或者该最小概率符号概率索引设置为等于针对(当前概率>>(k-1))的值与(当前概率>>(k-n-1))的值进行逐比特排除或异或的结果;以及其中该当前概率是由k-比特值来表示,n与k是正整数。
26.根据权利要求15所述的熵编解码装置,其特征在于,进一步包含:从该当前范围获取针对该当前字节分别具有1的值与0的值的一1的范围的值与一0的范围的值,其中如果该当前字节的该二进制值的该当前概率大于0.5或者大于等于0.5,该1的范围的值设定为(该当前范围–该最小概率符号范围),并且该0的范围设定为该最小概率符号范围;否则该0的范围设定为(该当前范围–该最小概率符号范围)并且该1的范围设定为该最小概率符号范围。
27.一种非瞬时计算器可读介质,存储程序指令使得装置的处理电路来执行视频编解码方法,该方法包含:依据当前字节的二进制值的当前概率以及与上下文自适应算术编码或解码的当前状态相关的当前范围,应用该上下文自适应算术编码或者解码至当前编解码符号的二进制数据的该当前字节,其中该当前概率是依据在该当前编解码符号之前的或多个已编解码的符号来产生;
基于该当前字节的该二进制值的该当前概率是否大于2k–1或者大于或等于2k–1,获取对应于逆当前概率或者该当前概率的最小概率符号概率索引,k是正整数;
获取用于标识包含该当前范围的范围区间的范围索引;以及
使用一或者多个算术操作来获取最小概率符号范围,或者使用查找表来获取该最小概率符号范围,其中该算术操作包含计算第一值与第二值的乘积,该第一值与(2*该最小概率符号概率索引+1)或者该最小概率符号概率索引相关,该第二值与(2*该范围索引+1)或者该范围索引相关,当该算术操作对应该最小概率符号概率索引与该范围索引的乘积时,该算术操作进一步对应于一偏移值以及最小概率符号概率索引与范围索引的乘积,该查找表包含表格内容,该表格内容对应于最小概率符号范围的值,该最小概率符号范围的值与用于编码或者解码该当前字节的二进制值的与一组最小概率符号概率索引以及一组范围索引相关,其中该范围索引对应于该当前范围右移mm的结果,并且mm是一非负整数,以及最小概率符号范围的每一值对应(2*一最小概率符号概率索引+1)以及(2*一范围索引+1)的乘积。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762532389P | 2017-07-14 | 2017-07-14 | |
US62/532,389 | 2017-07-14 | ||
US201862670614P | 2018-05-11 | 2018-05-11 | |
US62/670,614 | 2018-05-11 | ||
US201862678343P | 2018-05-31 | 2018-05-31 | |
US62/678,343 | 2018-05-31 | ||
US201862693497P | 2018-07-03 | 2018-07-03 | |
US62/693,497 | 2018-07-03 | ||
PCT/CN2018/095419 WO2019011292A1 (en) | 2017-07-14 | 2018-07-12 | METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110915213A CN110915213A (zh) | 2020-03-24 |
CN110915213B true CN110915213B (zh) | 2021-11-02 |
Family
ID=65001091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880047646.1A Active CN110915213B (zh) | 2017-07-14 | 2018-07-12 | 编解码符号的熵编解码的方法与装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11006117B2 (zh) |
EP (1) | EP3652937A4 (zh) |
CN (1) | CN110915213B (zh) |
CA (1) | CA3069635C (zh) |
TW (1) | TWI694712B (zh) |
WO (1) | WO2019011292A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10757412B2 (en) * | 2017-01-03 | 2020-08-25 | Avago Technologies International Sales Pte. Limited | Architecture flexible binary arithmetic coding system |
WO2019011292A1 (en) * | 2017-07-14 | 2019-01-17 | Mediatek Inc. | METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM |
CN116347099A (zh) | 2018-06-19 | 2023-06-27 | 北京字节跳动网络技术有限公司 | 没有运动矢量预测截断的选择的运动矢量差精度 |
KR20240005178A (ko) | 2018-09-19 | 2024-01-11 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용 |
CN118118659A (zh) * | 2019-01-31 | 2024-05-31 | 北京字节跳动网络技术有限公司 | 记录仿射模式自适应运动矢量分辨率的上下文 |
CN113366851A (zh) | 2019-01-31 | 2021-09-07 | 北京字节跳动网络技术有限公司 | 对称运动矢量差编解码模式的快速算法 |
US11350108B2 (en) * | 2019-03-18 | 2022-05-31 | Tencent America LLC | Affine inter prediction refinement with optical flow |
CN113489979A (zh) * | 2021-05-28 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 熵编码方法、装置、电子设备及存储介质 |
US20230254489A1 (en) * | 2022-02-07 | 2023-08-10 | Tencent America LLC | Adaptive context-based adaptive binary arithmetic coding (cabac) initial state selection from coded pictures |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11112355A (ja) * | 1997-10-08 | 1999-04-23 | Canon Inc | 符号化及び復号方法とその装置、それを適用した画像処理装置 |
US6680366B1 (en) | 1999-02-22 | 2004-01-20 | Institut Pasteur | Nucleotide sequence encoding a modulator of NF-κB |
US7379608B2 (en) * | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
US8184710B2 (en) | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
JP5278827B2 (ja) | 2007-09-06 | 2013-09-04 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化あるいは復号プログラム |
CN102223149A (zh) | 2010-04-14 | 2011-10-19 | 朱洪波 | 基于概率聚合的算术编码器 |
CN105007486B (zh) | 2011-03-07 | 2018-06-05 | 杜比国际公司 | 编码和解码图像的方法、编码和解码设备 |
US9871537B2 (en) | 2011-10-27 | 2018-01-16 | Qualcomm Incorporated | Mapping states in binary arithmetic coder for video coding |
US20140092985A1 (en) | 2012-09-28 | 2014-04-03 | Sharp Laboratories Of America, Inc. | Content initialization for enhancement layer coding |
CN103227924B (zh) | 2013-05-07 | 2016-08-03 | 北京大学 | 一种算术编码器及编码方法 |
US9425822B2 (en) | 2014-08-05 | 2016-08-23 | Broadcom Corporation | Simplified range and context update for multimedia context-adaptive binary arithmetic coding design |
CN104394418B (zh) | 2014-09-23 | 2018-06-05 | 清华大学 | 一种视频数据编码、解码的方法及装置 |
US10225555B2 (en) | 2015-05-19 | 2019-03-05 | Mediatek Inc. | Method and apparatus for multi-table based context adaptive binary arithmetic coding |
US10334248B2 (en) | 2015-05-29 | 2019-06-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
US10368072B2 (en) * | 2015-05-29 | 2019-07-30 | Qualcomm Incorporated | Advanced arithmetic coder |
CN104918049A (zh) * | 2015-06-03 | 2015-09-16 | 复旦大学 | 适用于hevc标准的二进制算术编码模块 |
US11265561B2 (en) | 2017-01-06 | 2022-03-01 | Mediatek Inc. | Method and apparatus for range derivation in context adaptive binary arithmetic coding |
US10499074B2 (en) * | 2017-01-09 | 2019-12-03 | Qualcomm Incorporated | Binary arithmetic coding with small tables or short-operand multiplications for video coding |
WO2019011292A1 (en) * | 2017-07-14 | 2019-01-17 | Mediatek Inc. | METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM |
-
2018
- 2018-07-12 WO PCT/CN2018/095419 patent/WO2019011292A1/en unknown
- 2018-07-12 US US16/629,440 patent/US11006117B2/en active Active
- 2018-07-12 CA CA3069635A patent/CA3069635C/en active Active
- 2018-07-12 CN CN201880047646.1A patent/CN110915213B/zh active Active
- 2018-07-12 EP EP18831707.7A patent/EP3652937A4/en active Pending
- 2018-07-13 TW TW107124272A patent/TWI694712B/zh active
-
2021
- 2021-05-11 US US17/316,930 patent/US11425386B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3652937A1 (en) | 2020-05-20 |
CN110915213A (zh) | 2020-03-24 |
WO2019011292A1 (en) | 2019-01-17 |
CA3069635A1 (en) | 2019-01-17 |
US20210266555A1 (en) | 2021-08-26 |
TWI694712B (zh) | 2020-05-21 |
CA3069635C (en) | 2022-06-14 |
US11425386B2 (en) | 2022-08-23 |
US20200186802A1 (en) | 2020-06-11 |
EP3652937A4 (en) | 2021-01-13 |
US11006117B2 (en) | 2021-05-11 |
TW201909633A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110915213B (zh) | 编解码符号的熵编解码的方法与装置 | |
CN104394418B (zh) | 一种视频数据编码、解码的方法及装置 | |
KR100648258B1 (ko) | 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더 | |
RU2708967C2 (ru) | Кодирование коэффициентов преобразования | |
CN110291793B (zh) | 上下文自适应二进制算术编解码中范围推导的方法和装置 | |
RU2679784C2 (ru) | Кодирование и декодирование данных | |
KR102600727B1 (ko) | 파라미터화된 확률 추정 유한 상태 머신들을 이용한 이진 산술 코딩 | |
JP2008118307A (ja) | 符号化装置及びその制御方法 | |
JP6698142B2 (ja) | ビデオデータを符号化するための方法及び装置 | |
JP6426212B2 (ja) | 制限されたキャリー演算による算術コーディングを遂行するための方法及び装置 | |
JP6719538B2 (ja) | ビデオデータを符号化するための方法及び装置 | |
Kuroki et al. | Adaptive arithmetic coding for image prediction errors | |
JPH04343576A (ja) | 高能率符号化方法と高能率符号の復号方法 | |
KR100207428B1 (ko) | 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법 | |
US20160323603A1 (en) | Method and apparatus for performing an arithmetic coding for data symbols | |
JP6509916B2 (ja) | 連結されたrom−ramテーブルに基づいて算術コーディングを遂行する方法及び装置 | |
Reddy et al. | LosslessGrayscaleImage Compression Using Intra Pixel Redundancy | |
JP2005064655A (ja) | 動きベクトル検出方法及び動きベクトル検出装置 | |
KR20240110492A (ko) | 이벤트 부호화와 복호화를 위한 방법 및 장치 | |
WO2013068732A1 (en) | Context adaptive data encoding | |
JP2011176831A (ja) | 符号化装置及びその制御方法 | |
JP2005176169A (ja) | 映像符号化方法および装置 | |
KR20160084124A (ko) | 기본 계층의 부호화 정보를 이용하여 향상 계층의 움직임 탐색 범위를 결정하는 스케일러블 부호화 장치 및 방법 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220426 Address after: Hsinchu County, Taiwan, China Patentee after: MEDIATEK Inc. Address before: Hsinchu Science Park Road, Taiwan city of Hsinchu China Dusing 1 Patentee before: MEDIATEK Inc. |
|
TR01 | Transfer of patent right |