[0004] 本发明针对现有SHVC视频编码复杂度高的缺点,提出一种结合编码深度估计和贝叶斯判决的SHVC快速编码方法。
[0005] 本发明解决其技术问题所采用的技术方案如下:
[0006] (1)CTU深度范围估计方法。首先离线统计当前CTU的深度范围与它的相邻块深度和,以及它在基本层对应位置的CU深度之间的分布概率,得到CTU的深度范围分布表。然后在快速编码帧中,参照CTU深度范围分布表来估计当前CTU的深度范围。
[0007] (2)基于最小风险贝叶斯判决的快速CU划分方法
[0008] 先从特征帧中计算CU划分的特征及其贝叶斯模型和贝叶斯风险矩阵,再从快速编码帧中计算当前CU的贝叶斯风险函数,通过比较提前跳过与正常CU划分的贝叶斯风险将当前CU确定为提前跳过或正常CU划分,然后通过比较提前终止与正常CU划分的贝叶斯风险,将当前CU确定为提前终止或正常CU划分。
[0009] (3)基于最大概率贝叶斯判决的快速PU模式选择方法
[0010] 先从特征帧中计算得到PU模式划分的特征及其贝叶斯模型,再从快速编码帧中计算当前PU的贝叶斯概率,通过比较2N×2N(Merge/Skip),SMP,AMP三种模式下的贝叶斯概率,选择最大概率对应的模式实现快速PU模式选择。本发明利用了增强层与对应的基本层CU划分深度和PU模式的相关性,减少了增强层编码的复杂度,实现了SHVC的快速编码。
[0011] 首先,离线对视频序列进行标准的SHVC编码,统计增强层当前CTU的相邻块(左,上,左上,右上,如图4所示)的深度和DepNer_SUM,基本层对应位置CU的深度DepBL,以及当前CTU块的深度范围[DepEL_min,DepEL_max]三者之间的分布概率得到CTU深度范围分布表,其中DepEL_min表示当前CTU的最小深度值,DepEL_max表示当前CTU的最大深度值。然后,开始SHVC的实时编码。从每个视频序列增强层的第0帧开始,以每M帧定义为一个帧组,将每个帧组的前n帧定义为特征帧,剩余(M‑n)帧定义为快速编码帧。对特征帧使用标准的SHVC编码,分别获取CU快速划分和PU模式快速选择所需要的特征信息,构建对应于这些特征的贝叶斯模型;然后在快速编码帧中,首先根据CTU深度范围分布表,获取当前CTU的深度范围。然后利用特征帧构建的贝叶斯模型和贝叶斯风险矩阵,采用基于最小风险贝叶斯判决的快速CU划分方法和基于最大概率贝叶斯判决的快速PU模式选择方法来实现SHVC快速编码。
[0012] (一)离线统计获得CTU深度范围分布表
[0013] 对视频序列进行标准的SHVC编码,在增强层统计当前CTU的相邻块(左,上,左上,右上,如图4所示)深度和DepNer_SUM,基本层对应位置CU的深度DepBL,以及当前CTU块的深度范围[DepEL_min,DepEL_max]的分布概率来生成CTU深度范围分布表,其中DepEL_min表示当前CTU的最小深度值,DepEL_max表示当前CTU的最大深度值。
[0014] 步骤(I)定义Si(i=1,2,3,4)为当前CTU的4种深度范围:
[0015] 1)S1表示深度范围[0,1],包括了当前CTU块2种可能的深度范围[0,0]、[1,1];
[0016] 2)S2表示深度范围[0,2],包括了当前CTU块4种可能的深度范围[0,0]、[1,1]、[1,2]、[2,2];
[0017] 3)S3表示深度范围[1,3],包括了当前CTU块6种可能的深度范围[1,1]、[1,2]、[1,3]、[2,2]、[2,3]、[3,3];
[0018] 4)S4表示深度范围[0,3],包括了当前CTU块中所有可能的深度范围。设当前CTU相邻块的深度和DepNer_SUM为p,与其基本层对应位置CU的深度DepBL为q,则定义在约束条件(DepNer_SUM=p,DepBL=q)下的Si的条件概率为:
[0019]
[0020] 其中Num(Si,(DepNer_SUM=p,DepBL=q))表示满足当前CTU相邻块深度和DepNer_SUM为p,基本层对应位置CU的深度DepBL为q的条件下,当前CTU归类为Si的样本数量,Num(DepNer_SUM=p,DepBL=q)表示同时满足当前CTU相邻块深度和DepNer_SUM为p,基本层对应位置CU的深度DepBL为q的两个条件下的所有CTU的样本数量。
[0021] 步骤(II)比较统计得到的四个条件概率P(Si|(DepNer_SUM=p,DepBL=q)),按如下规则生成CTU深度范围分布表:
[0022] 1)若P(S1|(DepNer_SUM=p,DepBL=q))大于或等于90%,则将当前CTU深度范围确定为[0,1];
[0023] 2)若P(S1|(DepNer_SUM=p,DepBL=q))小于90%且P(S2|(DepNer_SUM=p,DepBL=q))大于或等于90%,则将当前CTU深度范围确定为[0,2];
[0024] 3)若P(S2|(DepNer_SUM=p,DepBL=q))小于90%且P(S3|(DepNer_SUM=p,DepBL=q))大于或等于90%,则将当前CTU深度范围确定为[1,3];
[0025] 4)以上条件都不满足,则将当前CTU深度范围确定为[0,3]。
[0026] (二)特征帧构建CU划分和PU模式选择的贝叶斯模型
[0027] 步骤(I)、在特征帧中采用标准的SHVC编码,在CU深度为0和1时计算提前跳过CU划分的特征。若当前CU的深度小于CU最终划分的最佳深度,则当前CU归类为w0,即可以提前跳过当前CU的划分;若当前CU的深度等于CU最终划分的最佳深度,则当前CU归类为w1,即当前CU作正常划分。然后,在CU深度为0,1和2时计算提前终止CU划分的特征。若当前CU的深度等于CU最终划分的最佳深度,则当前CU归类为w0,即可以提前终止当前CU的划分;若当前CU的深度小于CU最终划分的最佳深度,则当前CU归类为w1,即当前CU作正常划分。
[0028] (i)提前跳过CU划分的特征:
[0029] 特征f1:基本层对应位置CU的CU深度;
[0030] 特征f2:基本层对应位置CU的PU模式;
[0031] 特征f3:基本层对应位置CU的率失真代价;
[0032] 特征f4:基本层对应位置CU的灰度方差,计算公式为:
[0033]
[0034] 特征f5:当前CU与基本层对应位置CU之间的灰度Sobel梯度总和的差值,计算公式为:
[0035]
[0036] 其中Ii,j表示CU中以坐标位置(i,j)为中心的3×3灰度块,如图5所示,Gi,j表示Ii,j的横向及纵向Sobel梯度之和,SumG表示所有Gi,j之和。
[0037] (ii)提前终止CU划分的特征:
[0038] 特征f6:基本层对应位置CU的CU深度,与特征f1相同;
[0039] 特征f7:当前CU的最佳PU模式;
[0040] 特征f8:当前CU的最佳率失真代价;
[0041] 特征f9:当前CU残差块的平均偏差,计算公式为:
[0042]
[0043] 其中,Avgres表示CU残差块的平均残差值,Pixelres(i,j)表示坐标位置(i,j)的残差值,W和H分别表示CU残差块的宽和高。
[0044] 步骤(II)、计算快速PU模式选择的特征
[0045] 特征帧中采用标准的SHVC编码,在CU深度为0,1和2时分别计算PU模式选择的特征。将PU分为三类,w0表示执行2N×2N模式的编码,跳过SMP模式和AMP模式的编码;w1表示执行2N×2N模式和SMP模式的编码,跳过AMP模式编码;w2表示执行标准的PU模式编码。
[0046] 本发明采用的PU模式特征如下:
[0047] 特征f10:基本层对应位置CU的PU模式,与特征f2相同;
[0048] 特征f11:相邻块最佳CU深度之和,计算公式为:
[0049] f11=depabv+deplef+depabl (5)
[0050] depabv表示上CU的最佳CU深度,deplef表示左CU的最佳CU深度,depabl表示左上CU的最佳CU深度。
[0051] 特征f12:相邻块最佳PU模式的平均值,计算公式为;
[0052]
[0053] PUmodeabv表示上CU的最佳PU模式,PUmodelef表示左CU的最佳PU模式,PUmodeabl表示左上CU的最佳PU模式。
[0054] 特征f13:执行2N×2N模式选择后得到的最佳率失真代价RDcost与失真D的比率,计算公式为:
[0055]
[0056] 特征f14:当前CU块的灰度平均偏差,计算公式为:
[0057]
[0058] 其中Avg表示CU的平均灰度值,Pixel(i,j)表示坐标位置(i,j)的灰度值,W和H分别表示CU的宽和高。
[0059] 步骤(III)、针对步骤(I)和步骤(II)得到的特征,采用贝叶斯模型来建模,其概率计算公式为:
[0060]
[0061] 其中,F表示特征集,w表示类别,P(w)为类别w的先验概率,P(F|w)为条件概率,P(F)为特征集先验概率,P(w|F)为后验概率,它表示在F特征集下样本划归为类别w的概率。
[0062] 贝叶斯模型就是用先验概率P(w)和P(F)、条件概率P(F|w)来表示后验概率。由于P(F)对于每个类别来说都一样,因此可以忽略不计。P(w)可以通过统计特征集F中属于每个类别的比例来确定。对于P(F|w),假设特征集F中的各个特征之间条件独立,则每种类别wi对应的条件概率为:
[0063]
[0064] 其中fj表示为特征集F={f1,f2…,fn}中的各种特征,n为特征种类的数量。对于提前跳过CU划分算法,wi只有二种类别ws和wn,ws表示提前跳过划分的CU集合,wn表示正常划分的CU集合。对于提前终止CU划分算法,wi只有二种类别wt和wn,wt表示提前终止划分的CU集合,wn表示正常划分的CU集合。把式(10)代入式(9),贝叶斯分类模型可以表示为:
[0065]
[0066] 其中特征集先验概率P(F)在各个类别wi中都相等,因此在计算的时候可以将其忽略。其中P(wi)就是类别wi对应的样本数量占所有类别对应的总样本数量的百分比。当计算P(fj|w=wi)的时候,由于fj可以是离散特征也可以是连续特征,当fj取不同值的时候,需采用不同的计算方法。
[0067] (i)若fi为离散特征,则采用直方图的统计方法计算条件概率。先将特征fi不同取值所对应的样本数量保存于直方图中,当离散特征fi取值为m的时候,其条件概率P(fj=m|w=wi)计算公式为:
[0068]
[0069] Num(fj=m,w=wi)表示在类别wi中fj特征值为m时对应的样本数量,Num(fj,w=wi)表示在类别wi中fj特征对应的总样本数量。计算特征fj所有可能的取值对应的条件概率P(fj=m|w=wi)并保存下来,以便用到快速编码帧中。特征f1、f2、f6、f7、f10、f11、f12的条件概率采用式(12)来计算。
[0070] 若fj为连续特征,根据其样本的分布特性,分别采用一维高斯函数或K近邻法计算其条件概率。
[0071] (ii)样本分布符合一维高斯函数的连续特征
[0072] 首先计算特征fj对应的样本数据的均值和方差,则类别wi中fj特征值为m时对应的条件概率为:
[0073]
[0074] 表示在类别wi中特征fj的方差,μij表示在类别wi中特征fj的均值。特征f3、f8、f9的条件概率采用式(13)来计算。
[0075] (iii)样本分布不符合一维高斯函数的连续特征
[0076] 利用K近邻法,如图6所示。定义K值的计算公式为:
[0077]
[0078] 其中Num(w=wi)表示类别wi对应的样本数量。再作一条特征数轴,将特征fj所有的取值都在该数轴上标记出来。若当前特征fj的取值为m,则以m为中心在特征数轴上的两侧以相同的距离定义一个K近邻区间,使得该区间内的对应于特征fj的样本点数量等于K。利用所获取的特征样本点数量,计算得到条件概率为:
[0079]
[0080] 其中,Num(fj,w=wi)表示在K近邻区间内fj特征点中属于类别wi的样本数量,特征f4、f5、f13和f14的条件概率采用式(15)来计算。
[0081] 步骤(IV)、计算贝叶斯风险矩阵
[0082] 为了减少错误的贝叶斯判决带来的损失,定义贝叶斯判决的风险因子为Cij,它表示标准SHVC编码中CU块分类结果为类别i,却因为快速算法被错误分类为类别j所带来的风险,风险矩阵由风险因子构成,在特征帧中计算提前跳过CU划分和提前终止CU划分的风险矩阵。
[0083] (i)计算提前跳过CU划分的风险矩阵Cskip:
[0084]
[0085] 其中Cns表示标准的SHVC编码时,在当前深度是正常的CU划分却被快速算法判断为提前跳过当前CU划分的风险,Csn表示标准的SHVC编码时,应该提前跳过当前CU深度却被快速算法判断为正常CU划分的风险。Cns和Csn的计算如下:
[0086]
[0087] Jn表示进行标准SHVC编码时作正常判决的CU的率失真代价,Js表示提前跳过当前深度判决的CU的率失真代价。
[0088] Cnn或Css表示标准SHVC编码对CU深度判决的结果与快速算法对CU深度判决的结果相同,其风险均等于零。
[0089] (ii)计算提前终止CU划分的风险矩阵Cstop如下所示:
[0090]
[0091] 其中Cnt表示标准SHVC编码时在当前深度是正常的CU划分却被快速算法判断为提前终止CU划分的风险,Ctn表示标准的SHVC编码时应该提前终止当前CU划分却被快速算法判断为正常的CU划分的风险。此处Cnt和Ctn的计算如下:
[0092]
[0093] 其中Jn表示进行标准SHVC编码时对当前深度作正常判决的CU的率失真代价,Jt表示提前终止当前深度判决的CU的率失真代价。
[0094] Cnn或Ctt表示标准SHVC编码对CU深度判决的结果与快速算法对CU深度判决的结果相同,其风险均等于零。
[0095] (三)基于最小风险贝叶斯判决的快速CU划分方法
[0096] 步骤(I)、增强层CTU的深度范围估计
[0097] 计算快速编码帧的增强层中的当前CTU的相邻块(左,上,左上,右上)深度和DepNer_SUM,以及基本层对应位置CU的深度DepBL,根据步骤(一)得到的CTU深度范围分布表,估计出当前CTU的深度范围。然后在该深度范围内实现SHVC快速编码方法。
[0098] 步骤(II)、基于最小风险贝叶斯判决的提前跳过CU划分
[0099] (i)首先计算提前跳过CU划分的特征:f1、f2、f3、f4和f5,其中特征f1、f2采用直方图法建模,特征f3采用一维高斯分布建模,特征f4、f5采用K近邻法建模。然后利用特征帧获得的CU划分的贝叶斯模型,计算每个特征的条件概率P(fj=m|w=wi),再由式(11)计算出P(w=wi|F),计算方法与步骤(二)相同。
[0100] (ii)利用特征帧获得的CU划分的贝叶斯风险矩阵,结合步骤(i)的结果,得到提前跳过CU划分的风险函数为:
[0101]
[0102] 其中,Rn(wn|F)表示正常CU划分的贝叶斯风险,Rs(ws|F)表示提前跳过CU划分的贝叶斯风险。比较Rn(wn|F)和Rs(ws|F)的大小,若Rn(wn|F)小于Rs(ws|F),则表示正常划分当前CU的风险较低,因而选择正常划分当前CU;否则选择提前跳过当前CU划分。
[0103] 步骤(III)、基于最小风险贝叶斯判决的提前终止CU划分
[0104] (i)首先计算提前终止CU划分的特征:f6、f7、f8和f9,其中特征f6、f7采用直方图法建模,特征f8、f9采用一维高斯分布法建模。然后利用特征帧获得的CU划分的贝叶斯模型,计算每个特征的条件概率P(fj=m|w=wi),再由式(11)计算出P(w=wi|F),计算方法与步骤(二)相同。
[0105] (ii)利用特征帧获得的CU划分的贝叶斯风险矩阵,结合步骤(i)的结果,得到提前终止CU划分的贝叶斯风险函数为:
[0106]
[0107] 其中,Rn(wn|F)表示正常CU划分的贝叶斯风险,Rt(wt|F)表示提前终止CU划分的贝叶斯风险。比较Rn(wn|F)和Rt(wt|F)的大小,若Rn(wn|F)小于Rt(wt|F),则表示正常划分当前CU的风险较低,因而选择正常划分当前CU;否则选择提前终止当前CU划分。
[0108] (四)基于最大概率贝叶斯判决的快速PU模式选择
[0109] 步骤(I)、计算快速PU模式选择的贝叶斯条件概率
[0110] 首先计算快速PU模式选择的特征:f10、f11、f12、f13和f14,其中特征f10、f11、f12采用直方图法建模,特征f13、f14采用K近邻法建模。然后利用特征帧获得的PU模式选择的贝叶斯模型,计算概率P(fj|w=wi)和P(wi),计算方法与步骤(二)相同。
[0111] 步骤(II)、快速PU模式选择方法
[0112] 在SHVC编码器进行2N×2N的PU模式判别之后,把以上步骤(I)的快速PU模式选择的贝叶斯条件概率代入下式:
[0113]
[0114] 然后,根据式(22)中三种类别wi,i=0,1,2下的最大概率所对应的类别ibest来实现快速PU模式选择,其规则为:
[0115] 1)若ibest=0,则选择w0作为最佳类别的PU模式选择方法,此时提前跳过SMP模式和AMP模式的选择,终止PU模式划分;
[0116] 2)若ibest=1,则选择w1作为最佳类别的PU模式选择方法,此时需进行SMP模式选择,但是跳过后续的AMP模式选择;
[0117] 3)若ibest=2,则选择w2作为最佳类别的PU模式选择方法,此时需进行SMP模式选择和AMP模式选择,即正常的PU模式选择。
[0118] 本发明有益效果如下:
[0119] (1)本发明利用与增强层当前CU空间相邻的CU深度,以及它和基本层对应位置CU在深度上的相关性,提出了基于相邻块深度和,以及基本层对应位置CU深度的深度范围估计方法;(2)本发明先将视频帧分为多个帧组,每个帧组选择前几帧作为特征帧,从特征帧提取快速CU划分和快速PU模式选择所需要的特征并构建贝叶斯模型,这样使得本方法实现快速编码的过程中,能够及时的更新所需的特征和模型,减少了压缩损失;(3)本发明把编码特征分类为离散特征和连续特征,应用不同的贝叶斯模型计算这些特征的概率,提高了编码速度和准确性;(4)针对CU划分和PU模式选择的各自特点,本发明提出了基于最小风险贝叶斯判决的快速CU划分方法和基于最大概率贝叶斯判决的快速PU模式选择方法,提高了SHVC的时间效率和压缩效率。仿真结果表明,在保持视频编码质量的前提下,用本发明的SHVC快速编码方法大大节省了SHVC增强层的编码时间,对比标准的SHVC编码方法可节省50%以上的编码时间,但压缩效率损失很少,因此具有较强的实用性。