视频压缩中变换系数的上下文建模方法,本发明专利技术涉及变换系数的上下文建模技术。本发明专利技术是为了解决HEVC中所采用的上下文建模技术不能准确地预测变换系数的统计特性的问题。本发明专利技术在当前变换系数为bin0、bin1或bin2的上下文建模过程,使用了当前变换系数的位置信息和当前变换系数的局部模板中非零变换系数信息,同时还利用变换系数在编码组内的位置对亮度分量的变换系数块的编码组进行划分,利用变换系数在变换系数块内的位置对色度分量的变换系数块进行划分,最终实现上下文建模。本发明专利技术更加准确地预测变换系数的统计特性,提高了变换系数的压缩效率。本发明专利技术应用于视频编码领域。
【技术实现步骤摘要】
本专利技术设及视频压缩过程中变换系数的上下文建模技术。
技术介绍
为了提高视频压缩系统中赌编码的压缩效率,上下文建模技术被广泛地用来预测 信源的统计特性。具体来讲,信源符号的上下文建模过程包括:对待编码的信源符号的统计 特性进行分析,利用其独特性,为赌编码设计多个上下文状态;在编码过程中,赌编码器利 用已编码信源符号的取值,即上下文信息,选择其中一个状态,并在此状态下对当前待编码 的信源符号进行编码。其中,一个上下文状态对应着信源在某一种情况下的统计特性(即 条件概率分布)。也就是说,通过上下文建模技术,在编码当前信源符号之前,我们对该信源 符号的统计特性会有一个准确的预期,从而在赌编码的时候提高编码效率。 在目前最新的视频压缩标准肥VC中,变换系数块的大小可W取值为 4x4, 8x8, 16x16和32x32。为了有效地编码一个变换系数块中的所有变换系数,变换系数块 被分割为互不重叠的编码组。每一个编码组对应着变换系数块中的一个4x4大小的子块。 即,4x4的变换系数块只有一个编码组,8x8的变换系数块有4个编码组,16x16的变换系数 块有16个编码组,32x32的变换系数块有64个编码组。当按照运种方式对变换系数块进行 分割后,一个变换系数块中所有的编码组和一个编码组中所有的变换系数按照一个给定的 扫描顺序进行编码。具体来讲就是,首先编码一个二进制符号CSBF(对应着肥VC中的语法 元素codetsub_block_flag)用来指示当前编码组是否包含非零变换系数,如果当前编码 组的CSBF为1,即当前编码组包含非零变换系数,则编码当前编码组中的所有变换系数,否 则处理下一个编码组。 每个编码组中的每个变换系数的编码是通过多次扫描来实现的。具体来讲就是, 在第一次扫描中,对于当前编码组中的每个变换系数,一个用于指示当前变换系数是否大 于0的二进制符号(我们用binO来表示,它对应着肥VC中语法元素significant_flag)被 编码进码流中;在第二次扫描中,对于当前编码组中的每个绝对值大于0的变换系数,一个 用于指示当前变换系数的绝对值是否大于1的二进制符号(我们用Mnl来表示,它对应着 肥VC中语法元素。06''_油3_旨'6曰161'1_'1曰旨)被编码进码流中;在第S次扫描中,对于当前 编码组中的每个绝对值大于1的变换系数,一个用于指示当前变换系数的绝对值是否大于 2的二进制符号(我们用bin2来表示,它对应着肥VC中的语法元素。〇6''_油3_旨'6曰16'2_ flag)被编码进码流中;在最后的两次扫描中,分别编码当前编码组中变换系数的符号和 剩余没有编码的取值(对应着肥VC中语法元素coeff_abs_level_remaining)。 在肥VC中,MnO的上下文包括当前待编码的变换系数在变换系数块中的位置 (X,y),当前变换系数块的扫描方式scanidx和位于当前编码组下侧和右侧的编码组的 CSBF的取值(我们用CSBF式日CSBFK来分别表示下侧编码组和右侧编码组的CSBF的取值)。 根据当前待编码的变换系数在变换系数块中的位置(x,y),可W求得包含当前变换系数的 编码组的位置和当前变换系数在当前编码组内的位置(Xhc(;,yhJ。因此,对于每 个变换系数,其binO的上下文建模过程描述如下: 如果当前待编码的是亮度分量: 如果x+y等于0,则 CtXbinO=0 如果Size等于4x4,则 CtXbinO= CtxIndMap如果 Size等于 SxS且 scanidx等于 SCAN_DIAG,贝!j 9 +t7;\-/"C[4r,.//'.X-,., +IV- --0 ^"0=1 L扣…九江。J …少如果 Size等于8x8且 scanidx不等于 SCAN_DIAG,贝,矿相 + 托'G== 0 阳014] -I+y,"a.lotherwise如果Size大于8x8,则 P I.p. - 21 + C打执C .4 *X扣。G +把忙G.,梦而。+托择=='〇 本脚0 - 124 + (化/化'[4 * r,.OfAmmc 如果当前待编码的是色度分量:[001引如果x+y等于0,则[001 引CtXbino=O 如果Size等于4x4,则 如果Size等于8x8,则如果Size大于8x8,则其中根据CSBFl和 CSBFK的取值 CtxInc可W取 ctxinc。,ctxlnci,ctxincz和 ctxincj。 〇I 4 Si 「2110] 「2 2 2 2 t 3 4 5 II 贷贷 1 1 1 1 CtxItnlMap - £'化/化,.二 ',::地-//?(',=' ' ' ', '6688 化 1QQQ'QQQQ 7 7 8 8」 「2::2::2::2:-2 1 0 0. ...2 2 2 2 ('化/化'2二:2 1 0 Q,2 2 2 2 _2 1 0 oj 2: .2: .2- 在肥VC中,binl的上下文包括当前待编码的变换系数在变换系数块中的位置 (X,y),前一个编码组中是否包含绝对值大于I的变换系数(我们用Cl来表示该上下文,即Cl= 1表示前一个编码组包含绝对值大于1的变换系数,Cl=O表示前一个编码组不包含 绝对值大于1的变换系数),和当前编码组中已经编码过的绝对值等于1和绝对值大于1的 变换系数的个数(我们用NumEqul和NumGrel分别表示当前编码组中已经编码过的绝对值 等于1和绝对值大于1的变换系数的个数)。根据当前待编码的变换系数在变换系数块中 的位置(x,y),可W求得包含当前变换系数的编码组的位置,因此对于当前编码组 的每个变换系数,其Mnl的上下文建模过程描述如下: 如果当前编码的是亮度分量: 0,矿相+托G =0口"^ci = O 1,// AV/ +V/V二 0。巧 ( 3 二 1 炼器紐二 \化- 2, //.V.+VV0andc\= 0 //'.v(,,+.v('(,.吉0w?c/d=l 「In、\n(NimI£qiA\,2)-\- 4*'C[xSd,ifNumGre\ 二0. I3-f4 *CtxSet,otherwise 如果当前编码的是色度分量: fo,矿过二Q a、-姑=] .1,矿c'l = l min(Ai'""!&/"IJ) + 4*C/xSW,/Z'./V""!(7/Tl=0 份W=、 - " *袖|3 + 4*化'似,。巧园如 在肥VC中,bin2的上下文包括当前待编码的变换系数在变换系数块中的位置 (x,y)W及前一个编码组中是否包含绝对值大于1的变换系数。根据当前待编码的变换系 数在变换系数块中的位置(x,y),可W求得包含当前变换系数的编码组的位置(Xc^yJ,因 此对于当前编码组的每个变换系数,其bin2的上下文建模过程可W描述如下: 如果当前编码的是亮度分量: 化(/' -V。,. +r。,二 0。巧Jd二 0 1,//- AV/ . + V,./二0。巧c l二1 扮%,。=,-」一。,,。 2, // 又-[6 + 并 0 口巧"c,当前第1页1 2 3 4 本文档来自技高网...
【技术保护点】
视频压缩中变换系数的上下文建模方法,其特征在于,所述上下文建模方法包括以下步骤:步骤一:对bin0的上下文建模,其中所述bin0为一个用于指示当前变换系数是否大于0的二进制符号;对于处在(x,y)处的变换系数的bin0的上下文包含当前变换系数的编码组的位置(xCG,yCG)、当前变换系数在当前编码组内的位置(xInCG,yInCG)、以及当前变换系数的局部模板LT(x,y)所覆盖的变换系数中非零变换系数的个数NumSigs,(x,y)为当前待编码的变换系数在当前变换系数块的位置,LT(x,y)为位于变换系数块(x,y)处的变换系数的局部模板,根据(x,y)求得包含当前变换系数的编码组的位置(xCG,yCG)和当前变换系数在当前编码组内的位置(xInCG,yInCG);若当前编码的是亮度分量:如果xCG+yCG等于0,则RegIdx=0,ifxInCG+yInCG<21,ifxInCG+yInCG≥2andxInCG+yInCG<52,ifxInCG+yInCG≥5---(1)]]>Ctxbin0=RegIdx*6+NumSigs (2)如果xCG+yCG大于0,则RegIdx=3,ifxInCG+yInCG<44,ifxInCG+yInCG≥4---(3)]]>Ctxbin0=RegIdx*6+NumSigs (4)RegIdx为当前变换系数所在的区域,Ctxbin0为待编码的变换系数的bin0的上下文索引;若当前编码的是色度分量:则RegIdx=0,ifx+y<41,ifx+y≥4---(5)]]>Ctxbin0=RegIdx*6+NumSigs (6)步骤二:对bin1的上下文建模,其中所述bin1为一个用于指示当前变换系数的绝对值是否大于1的二进制符号;对于处在(x,y)处的变换系数的bin1的上下文包括当前待编码的变换系数在当前变换系数块的位置(x,y)以及当前编码组中已经编码过的绝对值大于1的变换系数个数NumGre1和绝对值等于1的变换系数的个数NumEqu1;若当前编码的是亮度分量:如果x+y小于3,则Ctxbin1=min(NumGre1-1,2),ifNumGre1>0min(NumEqu1,3)+3,ifNumGre1≤0---(7)]]>否则,如果x+y小于10,则Ctxbin1=min(NumGre1-1,2)+7,ifNumGre1>0min(NumEqu1,3)+10,ifNumGre1≤0---(8)]]>否则,x+y大于或等于10,则Ctxbin1=min(NumGre1-1,2)+14,ifNumGre1>0min(NumEqu1,3)+17,ifNumGre1≤0---(9)]]>所述Ctxbin1为当前待编码的变换系数的bin1的上下文索引;若当前编码的是色度分量:Ctxbin1=min(NumGre1-1,2),ifNumGre1>0min(NumEqu1,3)+3,ifNumGre1≤0---(10)]]>步骤三:对bin2的上下文建模,其中所述bin2为一个用于指示当前变换系数的绝对值是否大于2的二进制符号;对于处在(x,y)处的变换系数的bin2的上下文包括当前编码组中已经编码过的绝对值大于1的变换系数个数NumGre1和绝对值大于2的变换系数的个数NumGre2;若当前编码的是亮度分量,则如果NumGre2大于0,则Ctxbin2=0 (11)否则,如果NumGre1大于0,则Ctxbin2=1 (12)否则,Ctxbin2=2 (13)定义Ctxbin2为当前待编码的变换系数的bin2的上下文索引;若当前编码的是色度分量:如果NumGre2大于0,则Ctxbin2=0 (14)否则,如果NumGre1大于0,则Ctxbin2=1 (15)否则,Ctxbin2=2 (16)。...
【技术特征摘要】
【专利技术属性】
技术研发人员:范晓鹏,高敏,赵德斌,刘绍辉,
申请(专利权)人:哈尔滨工业大学,
类型:发明
国别省市:黑龙江;23
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。