一种hevc帧内编码单元划分的快速决策方法
【技术领域】
[0001 ] 本发明属于高性能视频编码化igh Efficiency Video Coding,肥VC)技术领域, 设及在帖内编码中CU划分的决策技术。 技术背景
[0002] 为了产生更好的压缩效果,皿VC编码标准采用了四叉树结构的图像划分方式。运 种划分方式可W获得比H.264/AVC更好的压缩效率,但同时由于需要对每一种尺寸的编码 单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)和变换单元(Transform Unit, TU)都要通过率失真优化(Rate-Disto;rtion Optimization,畑0)计算得出最优的划分,使 得编码器的计算复杂度大幅提升。如果能够提前预测CU的划分方式,那么可W对四叉树中 某些节点直接跳过RD0过程或者对四叉树进行剪枝,运样就可W有效地降低编码器的复杂 度。
[0003] 肥VC的测试软件化EVC Model,HM)默认所采用的CU的大小为64X64、32X32、16X 16和8X8,分别对应CU的深度(Depth)为0、l、2、3。其中深度为0的CU记为LCUαargest Coding 加 it,LCU)或是CTU(Coding Tree 加 it,CTU),深度为3的CU记为SCU(Smallest Coding化it,SCU)。在帖内编码中,对于深度为0、1、2的CU,PU的大小始终与CU保持一致。对 于SCU,除了要做与CU同样大小的8 X 8的PU的预测,还要进行将SCU划为4个4 X 4的PU的操 作。图1(a)、图1(b)是LCU划分为CU的一个示例。皿VC的编码器采用四叉树的深度递归来确 定LCU的最终划分。运种方式需要遍历四叉树中的所有节点,计算出每个节点的CU的RD-cost,从而来比较父亲节点的RD-cost和其四个儿子节点的RD-cost的算数和来确定选择 RD-cost较小的CU。由于需要遍历所有的节点,所W运个确定CU划分的过程存在了大量的冗 余计算。显然,如果可W预判出CU的划分,那么可W避免运种穷捜方法带来的大量的冗余计 算。例如,如果在某一节点便可W判断出该节点的CU即是最终的划分,那么就不需要遍历该 节点的孩子节点,从而可W对四叉树进行剪枝。或者判断出该节点不是最终的划分,那么就 不需要对该节点的CU做任何的计算,从而跳过该节点。例如附图1中的1、2、3、8和9等节点, 如果可W在运些节点上判断出该节点的抓即是编码器最终选取的CU,那么就不需要遍历运 些节点的孩子节点。同样,对于图1中的1、2、3的父亲节点或是4、5、6的父亲节点,如果可W 判断出其不是最终划分,那么就可W跳过运些节点的计算。如果可W有效的判断出运些节 点,那么就可W大大的降低肥VC编码器的计算复杂度,从而更有利于实时编码的实现。
[0004] CU的大小通常被记为2NX2N,将SCU划为4个4X4的PU的过程记为Intoi_NXN,将 CU划为同等大小的PU的过程记为Intra_2N X 2N。将SCU的Intra_N X N运一过程作为SCU划分 至下一层CU来处理,运样有助于统计分析。HM的编码器采用递归的方式对LCU进行划分,对 于每一层的CU都要利用基于RD0的预测来决定PU和TU的划分,其中TU的划分也采用了四叉 树的划分方式。
[000引为了减少穷尽捜索所带来的多余的计算量,现有的一些方案针对CU的划分进行了 一系列的优化:例如文献 1(参见H.Zhang,and Z.Ma, "Fast Intra Mode Decision for High Efficiency Video Coding化EVC)IEEE Transactions on Circuits and Systems forVideo Technology(CSVT),vol.24,no.4,660-668,(2014).)利用帖内方向预测中所使 用的哈达玛变换化adamard Transform)计算出的变换残差绝对值和(Sum of Absolute Transformed Difference,SATD)来代表当前编码CU的四个子CU的复杂度。当每一个子CU都 进行完畑0过程后,将已经做过畑0的子CU的畑-cost累加并按照SATD来推断子CU的畑-cost 在子CU-层所占的比例,然后对累加的畑-cost按照比例进行放大与父辈的CU的畑-cost进 行比较。如果子CU的RD-cost超过了父辈的CU,那么划分终止,最优层即是父辈的CU。该方法 由于需要用子CU的RD-cost与父辈的CU进行比较,所W还是需要多余的计算来确定是否终 止。如果可W提前预测CU的终止,那么就不必要计算子CU的RD-cost。同时,该方法没有预测 一定继续划分的CU,所W运一部分的冗余计算没有任何减少。文献2(参见Khan Μ U K, Shafique Μ,Henkel J. "An Adaptive Complexity Reduction Scheme with Fast Prediction Unit Decision for HEVC Intra EncodingIEEE International Conference on Image Processing(ICIP),1578-1582(2013).)利用了PU的大小分布和视 频特征。如果PU的方差大于某一范围,那么当前PU应当被继续划分W此来减少当前PU的方 差并使其小于某一阔值。文献中提出在分割过程之前形成一个PU的分割图。四个相同大小 的P姆日果方差都小于某一阔值,应当被合并起来。通过运样从下往上的方式,形成一个PU的 分割图。文献中的阔值通过视频序列的第一帖训练并用瑞利分布近似获得。然而该方法由 于只使用了方差一个特征,所W导致预测不够准确,从而导致编码器加速后视频质量损失 较大。
【发明内容】
[0006] 本发明的目的在于提供一种肥VC帖内CU划分的快速决策方法。
[0007] 首先考虑CU划分分布的特征,旨在对CU的每一深度都可W达到最大的优化效果。 通过大量的统计分析,深度为0的CU绝大部分都选择继续划分,而深度为2和3的大部分CU都 选择不继续划分。深度为1的CU划分百分比在百分之五十左右。由于对尺寸较大的CU的错误 预测会导致较大失真,在0层、1层主要是对一定继续换分的CU进行预测,而在2层、3层是对 不继续划分的CU进行预测。结合纹理复杂度,在0层、1层检测纹理复杂度较高的CU,在2层、3 层检查复杂度较低的CU。
[000引 为此:首先通过非归一化哈尔变换(non-normalized化ar Transform,NHT)计算 出水平、垂直和对角线上亮度分量的变化。运里的非归一化是指并未对哈尔小波变换计算 出的系数除W像素点的个数。对于深度为0和1的CU,如果运Ξ个方向上的亮度分量变化都 大于某一阔值,则说明当前CU的纹理复杂度高,应当使得当前CU继续分割来减小纹理复杂 度。对于深度为2和3的CU,如果运Ξ个方向上的亮度分量变化都小于某一阔值,则说明当前 CU的纹理是平滑的,不需要继续分割。
[0009] 利用非归一化的哈尔变换计算Ξ个方向的亮度分量变化过程具体如下。假设一个 2N X 2N大小的CU,LT、RT、LB、RB分别代表其四个N X N大小的互不重叠的子CU。用Slt,Srt,Slb, Srb分别代表四个子CU的亮度分量和,相应的NHT系数可W推导为:
[0010] ]X = Slt+Srt+Slb+Srb
[0011] LH=Slt+Sr 广紅 b-Srb(I)
[0012] HL = Slt-Srt+Slb-Srb
[0013] 皿=Sl 广 Sr 广紅 b+Srb
[0014]利用运些系数,水平、垂直和对角线Ξ个方向的亮度变化LCv、LCh及LCd可W依次表 示为:
[0015]
〇
[0016]如果LCv,IXh,LCd都小于某一个较小的阔值,就意味着CU的纹理复杂度很小,CU的 分割过程可W结束而且不会引起明显的编码效率损失。如果LCv,LCh,LCd都大于某一个比较 大的阔值,CU必须继续分割W减小纹理复杂度。
[0017] CU继续划分的阔值Thsc和不继续划分的阔值ThNsc设置如下:
[001 引 Thsc = Thi+0.01*AQP(3)
[0019] ??Ν5Ε = ??2+?1ο〇Γ(0.1* Δ QP)/10(4)
[0020] ThNSG = Th2(5)
[0021 ]其中,
[002引公式中,Depth表示CU的深度,QPcurr表示当前编码器所设置的QP。公式(6)和(7)列 出了公式(3)、(4)和(5)的初始值化1和化2的设定。公式(8)表示编码QP值相对QP等于22的改 变值。公式(3)适用于深度为0和1的CU。公式(4)适用于深度为2和3的CU。公式(5)适用于深 度为2的CU。
[0026] 本发明包括W下步骤:
[0027] (1)计算LCU内互不重叠的4X4大小的块的亮度分量和,并将结果保存到数组中。 具体地,将256个4 X 4大小相同的块的亮度算数和按照光栅扫描的顺序存储在大小为256的 数组中。在计算某一CU的Ξ个方向上的亮度变化时,将每个4X4的块的Z扫描顺序的坐标按 照光栅扫描和Z扫描之间坐标关系的查找表转换为光栅扫描的坐标,即可W从数组中取出 每个4X4小块的亮度分量和。运样做可W避免重复的访问原始帖所在的内存并有效减少计 算量。
[002引(2)计算当前CU的水平、垂直和对角线方向的能量LCv, LCh,LCd。
[0029] (3)如果当前CU的深度为0或是1,判断LCv,LCh,LCd是否大于化sc。如果大于的话,当 前CU的基于RD0的预测过程被跳过,直接进入下一层。否则,进行基于RD0的预测过程。
[0030] (4)如果当前CU的深度为2或3,判断LCv, IXh, LCd是否小于化NSG。如果小于的话,对 于深度为2的CU,不再向下继续划分。对于深度为3的CU,将CU划分为四个PlKPrediction Unit,预测单元)的过程即Intra_N X闲尋被跳过。
[0031] 由于采用上述技术方案,本发明的有益效果是:
[0032] 1)利用了 CU各个深度的不同的划分分布特点,采用分治策略对不同深度的CU采取 了相对应的预测方式W保证预测的正确率。通过对纹理复杂度的检测,可W使得纹理复杂 度较高的CU直接划分至下一层,从而避免多余的基于RD0的预测。对于纹理复杂度很低的 CU,令其划分过程终止,可W有效的对CU的四叉树进行剪枝;
[0033]
2)综合考虑多方向的能量变化,可W有效地预测CU的纹理复杂度,从而可W在几 乎不损失编码质量的情况下,显著提高肥VC编码器的帖内编码效率。
【附图说明】
[0034] 图1(a)为LCU划分的示例。
[0035] 图1 (b)为与图1 (a)示例相对应的四叉树划分。
[0036] 图2为本发明每一层CU在不同QP下的继续划分的CU占当前层所有CU的比例分布。
[0037] 图3为本发明一个大小为2NX 2N的CU及其四个子CIKLT、RT、LB、RB)。
[0038] 图4为本发明算法流程图。
[0039] 图5(a)为光栅扫描转Z扫描的查找表。
[0040] 图5(b)为Z扫描转光栅扫描的查找表。
[0041 ]图6是B类(1080P)视频在不同QP下所设置的阔值。
【具体实施方式】
[0042] 下面结合附图和实施例对本发明做进一步说明。
[0043] 请参阅图4,如图所示,其中包括:
[0044] 步骤1:基于皿VC通用的测试平台丽16.1来实现本算法。当编码一个LCU时,首先 进行初始化操作:为了避免重复计算CU的亮度分量算术和,将LCU中256个互不重叠的4X4 块的亮度分量算数和求出,并存储在一维数组中,运样在后续计算各个亮度变化时,只需要 从该数组一维中按照光栅扫描和Z扫描之间关系获取所需的各个小块的亮度和相加即可, 从而避免重复计算亮度和。其中,两种扫描的转换通过歷16.1所使用的光栅扫描坐标转Z扫 描坐标的查找表和Z扫描坐标转光栅扫描坐标的查找表进行坐标的转换。图5是两个查找 表,查找表是按照将LCU划分为4 X 4块来设置的,运与计算4 X 4块的亮度分量算术和所需的 查找表相吻合。例如可W从编码器获得当前编码CU的在LCU内的Z扫描坐标,假设当前CU在 LCU内的Z扫描坐标为24,25,26,27,即当前CU是一个8 X 8的块,那么对应的光栅扫描坐标则 为36,37,52,53。即将24,25,26和27带入图5中的化)2扫描转光栅扫描的查找表即可得到对 应的光栅扫描坐标。
[004引步骤2:深度递归编码LCU的各个子CU即四叉树中的各个节点,对于一个编码单元, 首先判断其深度。如果深度为0或者1,转步骤2。对于深度为2的CU,转步骤3。否则转步骤4。 [0046]步骤3:对于深度为0和1的CU,根据前文所述公式(3)计算阔值化SC,根据前文所述 公式(2)计算分别代表水平、垂直和对角线能量变化的系数,LCv,IXh,LCd。如果LCv,IXh,LCd 都小于化sc,那么对该CU不做任何的预测,即跳过该四叉树中的节点继续深度递归遍历该节 点的孩子节点。否则,按照丽16.1中的帖内编码过程对该CU编码。从公式(3)和(4)可W看 出,阔值的选取与QP有关。运里WB类(1080P)视频为例。当CU深度为1时,根据公式(3)可W 计算出当 QP为 22,27,32 和 37 时,Thsc 分别为ο. 1,ο. 2,ο. 3,ο. 4。所 W 当QP为 22,LCv,LCh,LCd 都 大于0.1时,不对当前CU做任何预测操作,只需要将当前CU的RD-cost设置为双精度浮点数 的最大值即可,然后继续向下递归划分CU。
[0047] 步骤4:对于深度为2的CU,采取固定阔值的方式并且设置为0.005,根据公式(2)计 算深度为2的CU的LCv,IXh,LCd,如果计算出的运Ξ个数都小于固定阔值0.005,则当该CU做 完Intra_2NX2N,CU划分终止,即完成了对四叉树的剪枝操作。当深度为2时,阔值设置为固 定值是考虑到了运一深度的CU难W区分,在保证编码质量的前提下,所W将阔值设置为一 个较小的值。
[0048] 步骤5:对于深度为3的CU,根据公式4计算阔值化NSC。根据公式(2)计算深度为3的 CU的LCv,LCh,LCd,如果计算出的运Ξ个数都小于化NSC。,则当前CU只做Inha_2NX 2N。否则, 和丽原有方案保持一致,做Inha_2NX2N和Inha_NXN的两个操作。由于深度为3的CU是 SCU,所W其PU的划分有两种,即Intra_2N X 2N和Intra_N X N。对于B类视频,根据公式(4)计 算出阔值为0.1,0.1,0.2和0.2分别对应QP为22,27,32和37。例如,当QP为22并且LCv,IXh, LCd都小于0.1时,Intra_NX州尋被跳过,只需要做Intra_2NX 2N。其它类的视频阔值的选取 同B类视频一样推导出阔值,并根据计算出的LCv,LCh,LCd来确定是否继续划分或是跳过基 于率失真优化的预测过程。
[0049] 上述的对实施例的描述是为便于该技术领域的普通技术人员能理解和应用本发 明。熟悉本领域技术的人员显然可W容易地对运些实施例做出各种修改,并把在此说明的 一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于运里的实施 例,本领域技术人员根据本发明的掲示,对于本发明做出的改进和修改都应该在本发明的 保护范围之内。
【主权项】
1. 一种HEVC帧内CU划分的快速决策方法,其特征在于:根据对HEVC帧内CU不同深度的 划分比例统计信息,对不同的深度的CU分别采取相应的策略;对于深度为O和1的CU,预测CU 是否一定继续向下层子CU划分;对于深度为2和3的CU预测其是否一定不划分。2. 根据权利要求1所述的方法,其特征在于:采用哈尔小波变换计算每个CU水平、垂直 和对角线三个方向的亮度变化,并依照亮度变化的大小来确定CU的纹理复杂度;对于深度 为O和1的CU,如果这三个方向上的亮度变化都大于某一阈值,说明当前编码的CU的纹理复 杂度较大,所以当前CU需要继续划分;对于这样的CU,当前CU的基于RDO的预测将被跳过,直 接划分到下一层;对于深度为2和3的CU,如果三个方向的亮度变化都小于某一阈值,就证明 当前CU的纹理是平滑的,则当前CU不会继续划分。3. 根据权利要求1所述的方法,其特征在于:首先考虑CU划分分布的特征以对CU的每一 深度都可以达到最大的优化效果;在〇层、1层主要是对一定继续换分的CU进行预测,而在2 层、3层是对不继续划分的CU进行预测;结合纹理复杂度,在0层、1层检测纹理复杂度较高的 CU,在2层、3层检查复杂度较低的CU。4. 根据权利要求3所述的方法,其特征在于:首先通过非归一化哈尔变换NHT计算出水 平、垂直和对角线上亮度分量的变化;所述非归一化是指并未对哈尔小波变换计算出的系 数除以像素点的个数。5. 根据权利要求4所述的方法,其特征在于:利用NHT计算三个方向的亮度分量变化过 程包括: 假设一个2NX2N大小的⑶,1^、1^、1^、1^分别代表其四个~\~大小的互不重叠的子^; 用Slt,Srt,Slb,Srb分别代表四个子CU的亮度分量和,相应的NHT系数推导为: LL = Slt+Srt+Slb+Srb LH= Slt+Srt-Slb~Srb (1) HL = Slt-Srt+Slb-Srb HH= Slt-Srt-Slb+Srb 利用这些系数,水平、垂直和对角线三个方向的亮度变化可以分别表示为:如果LCv,LCh,LCd都小于某一个较小的阈值,就意味着⑶的纹理复杂度很小,CU的划分 过程可以结束而且不会引起明显的编码效率损失;如果LCv,LCh,LCd都大于某一个比较大的 阈值,CU必须继续分割以减小纹理复杂度。6. 根据权利要求4所述的方法,其特征在于:CU继续划分的阈值Thsc和不继续划分的阈 值ThNSG设置如下: Thsc = Thi+0.01*AQP (3) ThNsc = Th2+floor(0.1*AQP)/l〇 (4) ThNsc = Th2 (5) 其中,AQP = QP curr- 22(8) 其中,Depth表示⑶的深度,QPcurr是编码器设置的初始QP值。公式(6)和(7)列出了公式 (3)、(4)和(5)的初始值Th1和Th2的设定;公式(8)表示编码器设置的QP值相对于QP等于22的 改变值;公式(3)适用于深度为O和1的CU;公式(4)适用于深度为3的CU;公式(5)适用于深度 为2的CU。7. 根据权利要求5所述的方法,其特征在于:包括以下步骤: (1) 计算LCU块中互不重叠的4X4大小的块的亮度分量和,并将结果保存到一维数组 中; (2) 计算当前⑶的水平、垂直和对角线方向的能量LCv,LCh,LCd ; (3) 如果当前CU的深度为O或是1,判断LCv,LCh,LCd是否大于Thsc;如果大于的话,当前CU 的基于RDO的预测过程被跳过,直接划分至下一层;否则,进行基于RDO的预测过程; (4) 如果当前CU的深度为2或3,判断LCv,LCh,LCd是否小于ThNSC;如果小于的话,对于深 度为2的CU,不再向下继续划分;对于深度为3的CU,将CU划分为四个预测单元PU的过程即 Intra_N X N将被跳过。8. 根据权利要求7所述的方法,其特征在于:步骤(1)中,将256个4 X 4大小相同的块的 亮度算数和按照光栅扫描的顺序存储在大小为256的数组中;在计算某一 CU的三个方向上 的亮度变化时,将每个4 X 4的块的Z扫描顺序的坐标按照光栅扫描和Z扫描之间坐标关系的 查找表转换为光栅扫描的坐标,即可以从数组中取出每个4X4小块的亮度分量和以避免重 复的访问原始帧所在的内存并有效减少计算量。
【专利摘要】一种HEVC帧内编码单元(Coding?Unit,CU)划分的快速决策方法,根据CU的深度分别采取相对应的策略来决定CU是否继续划分或是跳过该CU的预测过程。采用哈尔小波变换计算每个CU的水平、垂直和对角线三个方向上的亮度变化,并依照变化的大小来确定CU的纹理复杂度。对于深度为0和1的CU,如果这三个方向上的亮度变化都大于某一阈值,当前CU需要继续划分。对于这样的CU,当前CU的基于率失真优化(Rate?Distortion?Optimization,RDO)的预测过程将被跳过,直接划分到下一层。对于深度为2和3的CU,如果三个方向的亮度变化都小于某一阈值,则当前CU不会继续划分。该方法结合了CU划分分布的统计特征及纹理特征,可以有效地预测CU的划分是否应当终止或者继续划分,从而对四叉树进行有效的剪枝和跳过冗余编码的节点。本发明可显著减少HEVC编码器帧内编码的计算复杂度。
【IPC分类】H04N19/169, H04N19/63, H04N19/30, H04N19/70, H04N19/186
【公开号】CN105491385
【申请号】CN201510874458
【发明人】张冬冬, 陈有为
【申请人】同济大学
【公开日】2016年4月13日
【申请日】2015年12月2日