基于感兴趣区域的HEVC码率控制方法转让专利

申请号 : CN201510130752.4

文献号 : CN105049850B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 沈礼权胡乾乾赵振军李飞飞张兆扬

申请人 : 上海大学

摘要 :

本发明提供一种基于感兴趣区域的HEVC码率控制方法,其包括以下步骤:根据GBVS模型生成当前帧的空域显著性图;通过运动矢量信息生成当前帧的时域显著性图;使用基于一致归一化的方法将时域和空域显著性图融合得到最终的显著性图;使用显著性图对当前帧图像进行区域划分,划分为感兴趣区域和非感兴趣区域;分别对感兴趣区域和非感兴趣区域进行比特分配;按照显著性对当前帧中各个LCU进行比特分配;根据分配的码率计算和QP值并进行裁剪修正;利用最终得到的和QP值进行编码。本发明能提高编码视频的主观质量,同时精确地控制输出比特。

权利要求 :

1.一种基于感兴趣区域的HEVC码率控制方法,其特征在于,其包括以下步骤:步骤一,根据GBVS模型生成当前帧的空域显著性图;

步骤二,通过运动矢量信息生成当前帧的时域显著性图;

步骤三,使用基于一致归一化的方法将时域和空域显著性图融合得到最终的显著性图;

步骤四,使用显著性图对当前帧图像进行区域划分,划分为感兴趣区域和非感兴趣区域;

步骤五,分别对感兴趣区域和非感兴趣区域进行比特分配;

步骤六,按照显著性对当前帧中各个LCU进行比特分配;

步骤七,根据分配的码率计算λ和QP值并进行裁剪修正;

步骤八,利用最终得到的λ和QP值进行编码,编码后根据实际得到的数据对R-lambda模型中的参数进行更新。

2.根据权利要求1所述的基于感兴趣区域的HEVC码率控制方法,其特征在于,所述步骤二包括以下步骤:步骤二十一,将图像分成16×16大小的块,然后对当前图像中的各个宏块在前一帧中寻找对应的最优匹配块,得到运动矢量;

步骤二十二,通过得到的运动矢量计算全局运动矢量;

步骤二十三,在各运动矢量中减去全局运动矢量得到有全局运动矢量补偿的运动矢量;

步骤二十四,根据全局运动矢量补偿的运动矢量的大小相应地得到各个块中各像素的显著性值。

3.根据权利要求1所述的基于感兴趣区域的HEVC码率控制方法,其特征在于,所述步骤三的计算式为如下式:SF=θ1Sm+θ2SP+θ3SmSp

其中Sm代表每一个像素点时域的显著性,Sp表示空域的显著性,θ1,θ2,θ3是权重系数。

4.根据权利要求1所述的基于感兴趣区域的HEVC码率控制方法,其特征在于,所述步骤四包括以下步骤:步骤四十一,在得到整幅图像的显著性图SF以后,对于图像中的每一个LCU,它的显著性使用下式确定:其中ws(i)是第i个LCU的显著性大小,SF(i,m,n)是第i个LCU内坐标为(m,n)的像素点的显著性值,M和N是当前LCU对应与显著性图中的块的大小;

步骤四十二,得到当前帧中所有LCU的ws(i)了,对它们进行从大到小的排序,并选取四分之一处的ws作为阈值T;

步骤四十三,显著性ws(i)大于T的LCU将被划分为感兴趣区域,显著性ws(i)小于T的LCU将被划分为非感兴趣区域。

5.根据权利要求1所述的基于感兴趣区域的HEVC码率控制方法,其特征在于,所述步骤五采用如下计算式:T=TROI+TNROI

TROI=K×TNROI

其中T,TROI和TNROI分别表示当前帧、当前帧的感兴趣区域、当前帧的非感兴趣区域的目标比特数,K是质量调节因子。

6.根据权利要求1所述的基于感兴趣区域的HEVC码率控制方法,其特征在于,所述步骤六采用如下计算式:其中 和 分别表示感兴趣区域和非感兴趣区域剩余的比特数,R(p)和R(q)分别表示感兴趣区域中第p个LCU的目标比特数和非感兴趣区域中第q个LCU的目标比特数,Mleft和Nleft分别代表在编码当前LCU时,感兴趣区域和非感兴趣区域区域中还剩余的待编码的LCU数。

7.根据权利要求1所述的基于感兴趣区域的HEVC码率控制方法,其特征在于,所述步骤七为了保持帧与帧之间质量的一致性,应该限定所得到的λ和QP的取值范围,计算式如下式:λXlastSameLevel·R-1≤λXcurrPic≤λXlastSameLevel·RQFXlastSameLevel-ΔQP≤QPXcurrPic≤QFXlastSameLevel+ΔQP其中X是感兴趣区域或者是非感兴趣区域,currPic表示当前帧所对应的系数,lastSameLevel表示上一个与当前帧同等级的帧所对应的系数,R和ΔQP是用于调节的系数;

在LCU层,λ和QP应该保证其所在的范围为如下式:λlastLCU·R1-1≤λXcurrLCU≤λlastLcU·R1QPlastLCU-ΔQP1≤QPXcurrLCU≤QPlastLCU+ΔQP1λXcurrPic·R2-1≤λXcurrLCU≤λXcurrPic·R2QPXcurrPic-ΔQP2≤QPXcurrLCU≤QPXcurrPic+ΔQP2其中X是感兴趣区域或者是非感兴趣区域,currLCU和lastLCU分别表示当前LCU和上一个已编码的LCU所对应的系数,R和ΔQP是用于调节的系数。

说明书 :

基于感兴趣区域的HEVC码率控制方法

技术领域

[0001] 本发明属于多媒体通信技术领域,特别涉及一种基于感兴趣区域的HEVC((High Efficiency Video Coding,高效视频编码)码率控制方法。

背景技术

[0002] 在视频编码过程中,输出的视频质量和码率是密切相关的,若要求输出的视频质量越好,则输出的码率就会越高。但由于受带宽或存储容量的限制,需要将视频编码器的输出比特数控制在一定的范围内,以便在满足带宽或存储容量限制的同时,在解码端尽可能获得最好的视频图像,这里所采用的控制策略就是码率控制。人眼视觉系统(Human Visual System,HVS)能够快速地定位到视频中“显著的”或者“有趣的”对象上,然后再识别出这些对象,主要是因为HVS能够在显著性引导下快速地扫描视频场景中的对象。码率控制可以通过合理地分配码率提高视频质量。然而大部分的码率控制算法分配比特的依据是区域的预测编码复杂度,如使用MAD(Mean Absolute Difference,平均绝对差)。从人眼视觉的角度来说,难以预测的区域不一定最能吸引人的注意力。为了能够达到最好的人眼主观质量,比特分配的过程中一定要引入视觉模型。
[0003] HEVC(High Efficiency Video Coding,高效视频编码)是ISO-IEC/MPEG和ITU-T/VCEG两大国际标准化组织联合制定的新一代视频编码标准,它沿用了传统视频编码标准的混合视频编码基本框架,但在各个编码模块上都进行了改进和革新。与现行的视频编码算法H.264/AVC相比,在同等应用条件和视频质量下,釆用HEVC进行编码的码率要降低将近一半。码率控制算法本身并不属于视频编码标准的一部分,但是在视频编码的实际应用中码率控制起着极其重要的作用,也直接影响着视频编码的性能。人们对每一代视频编码标准的码率控制模块都做了大量的研究,制定并提出了与之相对应的模型和算法,对于下一代的视频压缩编码算法HEVC,也有相应的提案。
[0004] 中国科技大学的Bin.Li等人提出了一种HEVC的码率控制算法,其中lambda是RDO(Rate Distortion Optimization)过程中的一个重要参数。R-lambda模型如下式(1):
[0005] λ=α×R3……………………………………………………………(1)[0006] 其中α和β是和编码视频有关的参数,可以随着编码过程不断更新。R是当前编码帧或编码单元的目标比特。在计算得到λ之后,通过下式(2)计算量化参数QP(Quantization Parameter):
[0007] QP=4.2005×lnλ+13.7122…………………………………………(2)[0008] 在该码率控制算法中的LCU比特分配环节,每一个LCU的目标比特TCurrCU计算如下式(3):
[0009]
[0010] 式中,TCurrPic是前面已经计算得出的当前帧的目标比特,Bitheader是该帧头信息可能占的比特数,它是通过前面已编码的相同层级的帧的头信息实际消耗的比特数预测得出的,CodedPic是该帧已编码的LCU所消耗的比特数。ω表示当前LCU的权重,它的计算须结合前面已编码的相同层级的帧的相同位置处的LCU的MAD(Mean Absolute Difference),具体过程如下式(4)和(5):
[0011]
[0012]
[0013] 尽管该码率控制算法在HM平台上相比于以往的算法取得了更好的效果,但是也还有它的不足之处。传统的视频编码技术主要针对空间域冗余、时间域冗余以及统计冗余进行压缩编码,但很少考虑到人眼视觉系统特性和心理效应,因此大量视觉冗余数据被编码并传输。文献“K.Minoo,T.Q.Nguyen,Perceptual video coding withH.264,Proc.39th Asilomar Conf.Signals,Systems,andComputers,Nov.2005.”认为HVS可以容忍一定程度的失真,这取决于人眼对图像不同区域不同的敏感度。基于这个理论,应该在码率控制中做到把更多的比特集中在人眼容易察觉出失真的区域,更少的比特分配到失真不易被觉察的区域。而现有的码率控制并没有考虑到这个方面。

发明内容

[0014] 本发明的目的是为了克服已有技术的不足,提供一种基于感兴趣区域的HEVC码率控制方法,该方法能提高编码视频的主观质量,同时精确地控制输出比特。
[0015] 为了达到上述目的,本发明提出了一种基于感兴趣区域的HEVC码率控制方法,其包括以下步骤:
[0016] 步骤一,根据GBVS模型生成当前帧的空域显著性图;
[0017] 步骤二,通过运动矢量信息生成当前帧的时域显著性图;
[0018] 步骤三,使用基于一致归一化的方法将时域和空域显著性图融合得到最终的显著性图;
[0019] 步骤四,使用显著性图对当前帧图像进行区域划分,划分为感兴趣区域和非感兴趣区域;
[0020] 步骤五,分别对感兴趣区域和非感兴趣区域进行比特分配;
[0021] 步骤六,按照显著性对当前帧中各个LCU进行比特分配;
[0022] 步骤七,根据分配的码率计算λ和QP值并进行裁剪修正;
[0023] 步骤八,利用最终得到的λ和QP值进行编码,编码后根据实际得到的数据对R-lambda模型中的参数进行更新。
[0024] 优选地,所述步骤二包括以下步骤:
[0025] 步骤二十一,将图像分成16×16大小的块,然后对当前图像中的各个宏块在前一帧中寻找对应的最优匹配块,得到运动矢量;
[0026] 步骤二十二,通过得到的运动矢量计算全局运动矢量;
[0027] 步骤二十三,在各运动矢量中减去全局运动矢量得到有全局运动矢量补偿的运动矢量;
[0028] 步骤二十四,根据全局运动矢量补偿的运动矢量的大小相应地得到各个块中各像素的显著性值。
[0029] 优选地,所述步骤三的计算式为如下式:
[0030] SF=θ1Sm+θ2Sp+θ3SmSp
[0031] 其中Sm代表每一个像素点时域的显著性,Sp表示空域的显著性,θ1,θ2,θ3是权重系数。
[0032] 优选地,述步骤四包括以下步骤:
[0033] 步骤四十一,在得到整幅图像的显著性图SF以后,对于图像中的每一个LCU,它的显著性使用下式确定:
[0034]
[0035] 其中ws(i)是第i个LCU的显著性大小,SF(i,m,n)是第i个LCU内坐标为(m,n)的像素点的显著性值,M和N是当前LCU对应与显著性图中的块的大小;
[0036] 步骤四十二,得到当前帧中所有LCU的ws(i)了,对它们进行从大到小的排序,并选取四分之一处的ws作为阈值T;
[0037] 步骤四十三,显著性ws(i)大于T的LCU将被划分为感兴趣区域,显著性ws(i)小于T的LCU将被划分为非感兴趣区域。
[0038] 优选地,所述步骤五采用如下计算式:
[0039] T=TROI+TNROI
[0040] TROI=K×TNROI
[0041] 其中T,TROI和TNROI分别表示当前帧、当前帧的感兴趣区域、当前帧的非感兴趣区域的目标比特数,K是质量调节因子。
[0042] 优选地,所述步骤六采用如下计算式:
[0043]
[0044]
[0045] 其中 和 分别表示感兴趣区域和非感兴趣区域剩余的比特数,R(p)和R(q)分别表示感兴趣区域中第p个LCU的目标比特数和非感兴趣区域中第q个LCU的目标比特数,Mleft和Nleft分别代表在编码当前LCU时,感兴趣区域和非感兴趣区域区域中还剩余的待编码的LCU数。
[0046] 优选地,所述步骤七为了保持帧与帧之间质量的一致性,应该限定所得到的λ和QP的取值范围,计算式如下式:
[0047] λXlastSameLevel·R-1≤λXcurrPic≤λXlastSameLevel·R
[0048] QPXlastSameLevel-ΔQP≤QPXcurrPic≤QPXlastSameLevel+ΔQP
[0049] 其中X是感兴趣区域或者是非感兴趣区域,currPic和lastSameLevel分别表示当前帧或者上一个和当前帧同等级的帧所对应的系数,R和ΔQP是用于调节的系数;
[0050] 在LCU层,λ和QP应该保证其所在的范围为如下式:
[0051] λlastLCU·R1-1≤λXcurrLCU≤λlastLCu·R1
[0052] QPlastLCU-ΔQP1≤QPXcurrLCU≤QPlastLCU+ΔQP1
[0053] λXcurrPic·R2-1≤λXcurrLCU≤λXcurrPic·R2
[0054] QPXcurrPic-ΔQP2≤QPXcurrLCU≤QPXcurrPic+ΔQP2
[0055] 其中X是感兴趣区域或者是非感兴趣区域,currLCU和lastLCU分别表示当前LCU和上一个已编码的LCU所对应的系数,R和ΔQP是用于调节的系数。
[0056] 本发明与现有技术相比较,具有如下技术效果:本发明能提高编码视频的主观质量,同时精确地控制输出比特。本发明提供了一个通用的处理框架,能够根据需要灵活调节控制感兴趣区域得到的比特数,从而控制整体图像的主观质量。

附图说明

[0057] 图1是本发明基于感兴趣区域的HEVC码率控制方法的流程图;
[0058] 图2是本发明实例中所编码序列Tennis的第207帧的原图像;
[0059] 图3是本发明实例中所编码序列Tennis的第207帧对应的空域显著性图;
[0060] 图4是本发明实例中所编码序列Tennis的第207帧对应的时域显著性图;
[0061] 图5是本发明实例中所编码序列Tennis的第207帧对应的最终显著性图;
[0062] 图6是本发明实例中所编码序列Tennis的第207帧ROI/NROI划分示意图;
[0063] 图7是本发明实例中所编码序列Tennis的第207帧的编码输出图像的示意图。

具体实施方式

[0064] 以下将结合附图对本发明的技术方案作进一步的详细描述。
[0065] 以编码JCT-VC推荐的测试序列Tennis为例,本发明实例中采用HM10.0,编码器GOP为分层B帧结构,一个GOP中B帧占数量为7,I帧或P帧占数量为1,视频编码帧率为24帧每秒,编码帧数为240帧,目标码率设置为1000kbps。如图1所示,本实施例的一种基于感兴趣区域的HEVC码率控制方法为:在开始编码序列一帧前首先通过GBVS(Graph Based Visual Saliency)模型得到该帧空间域的显著性图,然后通过运动矢量信息得到每一帧时间域 的显著性图,按照一定的算法将两幅显著性图融合得到最终的显著性图。通过得到的显著性图对当前帧进行区域划分得到感兴趣区域和非感兴趣区域。对两个区域分别进行比特分配,使大部分的比特资源集中在人眼感兴趣的区域,同时精确控制输出比特。本发明的具体步骤如下:
[0066] 步骤一,根据GBVS模型生成当前帧的空域显著性图Sp:具体方法和步骤借用了Jonathan Hard和Christ of Koch发表在20th Annual Conference on  Neural Information Processing Systems上的文章Graph-based visual saliency中的方法。使用的图像特征有颜色特征、强度特征、对比度特征、Gabor局部方向特征,各种特征的权重系数相等,由此得到空域的显著性图Sp。假设当前正在编码序列Tennis的第207帧,原图实例如图2所示,得到的空域显著性图Sp实例如图3所示;
[0067] 步骤二,通过运动矢量信息生成当前帧的时域显著性图Sm,其具体步骤如下:
[0068] 步骤二十一,首先将图像分成16×16大小的块,然后对当前图像中的各个宏块在前一帧中寻找对应的最优匹配块,两者之间的在空间上的位移就是运动矢量,这里为了节省复杂度,使用自适应路径搜索法作为运动搜索算法;
[0069] 步骤二十二,通过得到的运动矢量计算全局运动矢量,计算全局运动矢量的方法参考Rath G.B.和Makur A.发表在IEEE Trans.on Circuits and Systems for Video Technology上的文章Iterative least squares and compression based estimations for a four-parameter linear global  motion model and global motion compensation中的方法;
[0070] 步骤二十三,在各运动矢量中减去全局运动矢量得到有全局运动矢量补偿的运动矢量(GMC-MV,Global Motion-compensated Motion Vector);
[0071] 步骤二十四,GMC-MV的大小相应地作为各个块中各像素的显著性值,这样就得到了时域的显著性图Sm,实例结果如图4所示。
[0072] 步骤三,使用基于一致归一化的方法将时域显著性图Sm和空域显著性图Sp融合得到最终的显著性图SF,其计算式为如下式(6):
[0073] SF=θ1Sm+θ2Sp+θ3SmSp…………………………………………………(6)[0074] θ1,θ2,θ3分别设置为0.5,0.3,0.5。得到的最终显著性图SF实例结果如图5所示。
[0075] 步骤四,使用显著性图对当前帧图像进行区域划分,划分为感兴趣区域(Region of Interest,ROI)和非感兴趣区域(NROI),其具体步骤如下:
[0076] 步骤四十一,在得到整幅图像的显著性图SF以后,对于图像中的每一个最大编码单元(Largest Coding Unit,LCU),它的显著性可以使用下式(7)确定:
[0077]
[0078] 其中ws(i)是第i个LCU的显著性大小。SF(i,m,n)是第i个LCU内坐标为(m,n)的像素点的显著性值。M和N是当前LCU对应与显著性图中的块的大小;
[0079] 步骤四十二,得到当前帧中所有LCU的ws(i)了,对它们进行从大到小的排序,并选取四分之一处的ws作为阈值T;
[0080] 步骤四十三,显著性ws(i)大于T的LCU将被划分为感兴趣区域ROI,显著性ws(i)小于T的LCU将被划分为非感兴趣区域NROI。划分的具体实例结果如图6所示,白色为ROI区域,黑色为NROI区域。
[0081] 步骤五,分别对ROI和NROI进行比特分配,其计算式如下式(8)和式(9):
[0082] T=TROI+TNROI…………………………………………………(8)
[0083] TROI=K×TNROI…………………………………………………(9)
[0084] 其中T,TROI和TNROI分别表示当前帧、当前帧的ROI区域、当前帧的NROI区域的目标比特数,K是质量调节因子,在这里取值为4。K的值选取得越大,ROI的质量将会越好。
[0085] 步骤六,按照显著性对当前帧中各个LCU进行比特分配,其计算式如下式(10)和式(11):
[0086]
[0087]
[0088] 其中 和 分别表示ROI和NROI区域剩余的比特数,R(p)和R(q)分别表示ROI 中第p个LCU的目标比特数和NROI中第q个LCU的目标比特数。Mleft和Nleft分别代表在编码当前LCU时,ROI区域和NROI区域中还剩余的待编码的LCU数。
[0089] 步骤七,在得到当前帧的ROI、NROI以及各个LCU的目标比特后,根据分配的码率计算λ和QP值并进行裁剪修正,即利用R-lambda模型及其QP计算式计算对应的λ和QP值,计算式如下式(12)和式(13):
[0090] λ=α×Rβ………………………………………………………………………(12)[0091] QP=4.2005×lnλ+13.7122…………………………………………………(13)[0092] 为了保持帧与帧之间质量的一致性,应该限定所得到的λ和QP的取值范围,计算式如下式(14)和式(15):
[0093] λXlastSameLevel·R-1≤λXcurrPic≤λXlastSameLevel·R……………(14)[0094] QPXlastSameLevel-ΔQP≤QPXcurrPic≤QPXlastSameLevel+ΔQP…………(15)[0095] 其中X可以是ROI或者是NROI。currPic和lastSameLevel分别表示当前帧或者上一个和当前帧同等级的帧所对应的系数。R和ΔQP是用于调节的系数,分别取值为2和3。
[0096] 在LCU层,λ和QP应该保证其所在的范围为如下式(16)、(17)、(18)和式(19):
[0097] λlastLCU·R1-1≤λXcurrLCU≤λlastLCU·R1………………………(16)[0098] QPlastLCU-ΔQP1≤QPXcurrLCU≤QPlastLCU+ΔQP1……………(17)[0099] λXcurrPic·R2-1≤λXcurrLCU≤λXcurrPic·R2………………………(18)[0100] QPXcurrPic-ΔQP2≤QPXcurrLCU≤QPXcurrPic+ΔQP2……………(19)[0101] 其中X可以是ROI或者是NROI。currLCU和lastLCU分别表示当前LCU和上一个已编码的LCU所对应的系数,R和ΔQP是用于调节的系数,R1和ΔQP1分别取值为2和3,R2和ΔQP2分别取值为22/3和2。编码Tennis序列的第207帧的实例结果如图7所示。
[0102] 步骤八,利用最终得到的λ和QP值进行编码,编码后根据实际得到的比特数对R-lambda模型里的参数进行更新,具体计算式如下(20)、(21)、(22):
[0103]
[0104] αnew=αold+δα·(lnλreal-lnλcomp)·αold…………………(21)[0105] βnew=βold+δβ·(lnλreal-lnλcomp)·lnbppreal……………(22)[0106] 其中αold和βold表示当前的参数值,bppreal表示实际编码得到的平均每个像素的使用的比特数,αnew和βnew是计算得到的更新后的参数值,它们被用来进行调节后续帧的码率控制。