基于视频编码标准的图像编码码率控制方法与流程

文档序号:13145285阅读:160来源:国知局
技术领域本发明涉及图像压缩技术,尤其涉及一种基于视频编码标准的图像编码码率控制方法。

背景技术:
新一代静态图像压缩标准JPEG2000是目前主流的图象编码压缩标准,该标准广泛应用在自然图像、计算机图像、医学图像、遥感图像和复合文本等静态图像领域。2013年初ITU-T视频编码专家组和MPEG专家组联合开发完成第三代视频压缩编码标准HEVC。第三代视频压缩编码标准HEVC采用了新的基于R-λ模型的一次编码,其帧级初始量化参数QPinit的计算根据式1得到:λ=α(CRtarget)βQPinit=4.2005ln(λ)+13.7122]]>(式1)式1中,C代表在图像编码中图像或区域的复杂度;Rtarget为图像或者区域的目标码率;α和β为图像拟合系数,在图像编码中,由于无法利用帧间相关性来进行动态调整,α和β只能采用固定的系数6.7542和1.7860。计算得到帧级初始量化参数QPinit后,在编码每一个编码树单元CTU(CodingTreeUnit)的时候,需要根据图像或者区域的目标码率Rtarget、已经编码的码字、未编码的CTU的复杂度信息,对当前要编码的CTU计算得到当前CTU的量化参数QPi,来保证最终编码得到的码字接近Rtarget。其中,当前编码CTU分配的码字通过式2计算得到:RtargetCTU(i)=ω(i)Rleftω(i)=CCTU(i)Σj=iM-1CCTU(j)]]>(式2)式2中,ω(i)为当前编码CTU的复杂度CCTU(i)和所有未编码的CTUs的复杂度的比值,M为一帧图像的CTU的个数,为当前编码CTU分配的码字,CCTU(i)为当前编码的CTU的复杂度,CCTU(j)为所有未编码的CTUs中第j个CTU块的复杂度;Rleft为编码到当前的CTU所剩余的码字。当前CTU的量化参数QPi通过式3计算得到:λi=α(CCTU(i)RtargetCTU(i))βQPi=4.2005ln(λi)+13.7122]]>(式3)式3中,QPi为当前CTU的量化参数;λi为速率失真系数;α和β为系数;采用固定的系数6.7542和1.7860。为了保证帧内整体以及相邻CTU之间的质量的平稳,在计算完当前CTU的量化参数QPi之后,需要将当前计算得到的QPi根据帧级初始量化参数QPinit和上一CTU量化参数QPi-1进行限位操作。参考算法中的限位操作如下:QPi=clip3(minQP,maxQP,QPi)(式4)式4中,minQP=max(QPi-1-1),QPinit-2);maxQP=min((QPi-1+1),QPinit+2)。从上面的算法分析可以看出,在图像编码中,由于无法利用帧间的相关性信息,帧级初始量化参数QPinit是根据式1中固定的α和β系数计算得到。而系数α和β是和图像内容相关的,不同内容的图像的α和β系数会有很大的区别,这也就导致了通过式1计算得到的帧级初始量化参数QPinit会和逼近Rtarget的理想的帧级初始量化参数差距比较大。同时由于为了保证帧内整体以及相邻CTU之间的质量的平稳而进行的CTU的量化参数计算过程中的限位操作无法保证码字在不同CTU之间的合理的分配,造成码率控制出现问题,也会产生帧整体质量的不均衡。所以上述算法无法满足高质量图像编码的需求。综上所述,第三代视频压缩编码标准HEVC的压缩性能不仅在视频领域有了大幅度的提升,其在空间(图像)压缩编码效率方面也有了长足的进步。试验证明,HEVC在中高码率段的压缩性能要远好于JPEG2000。然而由于HEVC是专门为视频压缩设计的压缩标准,目前采用的码率控制算法都是基于帧间图像的信息建立模型,计算当前帧图像的量化参数,再通过区域级别码率算法调整此量化参数,针对图像编码无法满足既控制码率又能保证整帧图像质量的平稳的要求。

技术实现要素:
为了克服上述现有技术的不足,本发明提供一种基于视频编码标准的针对图像编码的码率控制方法,通过二次编码的方法解决上述一次编码的码率控制算法所导致的码率控制不准和质量不均衡的问题。缩略语和关键术语定义如下:第三代视频编码标准HEVC;编码树单元CodingTreeUnit,CTU;量化参数QP;量化步长Qstep。本发明的原理是:本发明是基于新的R-λ模型的二次编码方法,首先通过第一次编码,根据第一次编码得到的编码信息,经过计算得到第二次编码所需的帧级初始量化参数QPinit,再根据QPinit进行第二次编码。由于在第一次编码中使用了LCU级别码率控制,能够得到一帧图像的更为详尽的编码实际信息,所以QPinit相对于逼近图像或者区域的目标码率Rtarget的理想的帧级初始量化参数的误差处在一个非常小的范围,QPinit越接近区域调整的力度越小,主观质量越平稳,最终保证了第二次编码得到的码率精准程度以及整帧图像主观质量的平稳。本发明提供的技术方案是:一种基于视频编码标准的图像编码码率控制方法,通过二次编码方法精准控制图像编码码率,该方法针对图像进行编码得到的码率精准程度高,整帧图像质量平稳,具体包括如下步骤:1)进行第一次编码,包括如下过程:1.1)获得第一次编码的帧级初始量化参数;1.2)用步骤1.1)所述第一次编码的帧级初始量化参数作为第一个CTU单元的量化参数对第一个CTU单元进行编码;1.3)针对第一个CTU单元之后的每一个CTU单元,获得当前编码CTU单元分配的码字,通过所述当前编码CTU单元分配的码字,计算得到用于计算当前CTU量化参数对应的量化步长,再计算得到当前要编码的CTU的量化参数,再对相应的CTU单元进行编码;1.4)获得第二次编码所需的初始量化参数;2)进行第二次编码,包括如下过程:2.1)用步骤1.4)获得的第二次编码所需的初始量化参数,作为第一个CTU单元的量化参数对第一个CTU单元进行编码;2.2)针对第一个CTU单元之后的每一个CTU单元,获得当前编码CTU单元分配的码字,通过所述当前编码CTU单元分配的码字,计算得到用于计算当前CTU量化参数对应的量化步长,再计算得到当前要编码的CTU的量化参数,再对相应的CTU单元进行编码。上述基于视频编码标准的图像编码码率控制方法,进一步地,步骤1.4)具体包括如下过程:首先,通过式9计算获得图像量化步长:Qstep=C/Σi=0M(CCTU(i)/Qstepi)]]>(式9)式9中,C为图像复杂度,Qstep为图像量化步长,CCTU(i)为当前编码的CTU的复杂度,Qstepi为第一次编码得到的每个CTU的量化步长,M为图像包含的CTU的个数;然后,根据量化步长和量化参数的关系计算得到量化参数,作为第二次编码所需的初始量化参数。上述基于视频编码标准的图像编码码率控制方法,进一步地,步骤1.4)具体包括如下过程:首先,通过式11计算获得图像量化步长:Qstep=Σi=0MQstepi/M]]>(式11)式11中,Qstep为图像量化步长;Qstepi为第一次编码得到的每个CTU的量化步长;M为图像的CTU个数;然后,根据量化步长和量化参数的关系计算得到量化参数,作为第二次编码所需的初始量化参数。上述基于视频编码标准的图像编码码率控制方法,进一步地,步骤1.4)具体是通过式12计算得到第二次编码所需的初始量化参数:QPinit1=Σi=0MQPi/M]]>(式12)式12中,为第二次编码所需的初始量化参数;QPi为第一次编码得到的每个CTU的量化参数;M为图像的CTU个数。上述基于视频编码标准的图像编码码率控制方法,进一步地,在步骤1.3)所述计算得到当前要编码的CTU的量化参数之后,将所述计算得到的当前要编码的CTU量化参数通过式7进行限位操作:限位操作后的QPi=clip3(minQP,maxQP,QPi)(式7)式7中,QPi为当前要编码的CTU的量化参数;minQP=max((QPi-1-1),0);maxQP=min((QPi-1+1),51);QPi-1为上一CTU的量化参数。上述基于视频编码标准的图像编码码率控制方法,进一步地,在步骤2.2)所述计算得到当前要编码的CTU的量化参数之后,将所述计算得到的当前要编码的CTU量化参数通过以下方法进行限位操作:首先通过式10计算得到图像的平均复杂度:CAvgcost=CM]]>(式10)式10中,CAvgcost为图像的平均复杂度;参数C为图像编码中整帧图像的复杂度,M为图像的CTU的个数;然后,比较当前编码的CTU的复杂度与图像的平均复杂度,若CCTU(i)<CAvgcost,执行如下操作:maxQP=min((QPi-1+1),QPinit1+1)]]>minQP=max((QPi-1-1),QPinit1-1)]]>否则,执行如下操作:maxQP=min((QPi-1+1),QPinit1+2)]]>minQP=max((QPi-1-1),QPinit1-2)]]>最后,执行:限位操作后的QPi=clip3(minQP,maxQP,QPi)其中,CCTU(i)为当前编码的CTU的复杂度,CAvgcost为图像每个CTU的平均复杂度;QPi-1为前一个已编码CTU的量化参数;QPi是当前CTU的量化参数。与现有技术相比,本发明的有益效果是:本发明提供一种基于视频编码标准的针对图像编码的码率控制方法,通过二次编码的方法精准控制图像编码码率,进行第一次编码过程包括获得第一次编码的帧级初始量化参数、当前要编码的CTU的量化参数和第二次编码所需的初始量化参数;再用第一次编码过程中获得的第二次编码所需的初始量化参数作为帧级初始量化参数进行第二次编码。该方法通过二次编码的方法解决一次编码方法的码率控制算法所导致的码率控制不准和质量不均衡的问题,明显的提高了编码图像的主客观性能,满足了图像编码的需求.附图说明图1是本发明实施例根据图像复杂度和图像量化步长计算量化参数的方法流程图;图2是本发明计算量化参数过程中采用每个区域量化步长的和的平均计算编码所需的图像量化步长的方法流程图;图3是本发明计算量化参数过程中采用每个区域量化参数的和的平均计算量化参数的方法流程图;图1~图3中,为第一次编码的帧级初始量化参数;为用于计算当前CTU量化参数QPi对应的量化步长;CCTU(i)为当前编码的CTU的复杂度;为第二次编码所需的初始量化参数QPi为当前CTU的量化参数。具体实施方式下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。本发明提供一种基于视频编码标准的针对图像编码的码率控制方法,通过二次编码的方法解决一次编码方法的码率控制算法所导致的码率控制不准和质量不均衡的问题。具体是根据计算得到的初始量化参数,在第一次编码中根据区域级码率控制计算每个区域所采用的量化参数或者量化步长,根据第一次编码中每个区域的量化参数和步长等信息计算第二次编码中需要采用的初始量化参数,在计算得到当前CTU的量化参数之后,将当前计算得到的QPi根据QPinit和QPi-1进行限位操作。本发明实施例根据图像每个区域CTU的复杂度、图像整体复杂度以及图像每个区域CTU的量化步长计算得到量化参数,具体包括如下步骤:1)进行第一次编码,包括如下过程:1.1)通过式1计算得到量化参数,作为第一次编码的帧级初始量化参数计算得到帧级初始量化参数之后,依次对每个CTU单元进行编码。在编码第一个CTU单元时,采用帧级初始量化参数作为本CTU的量化参数来对本单元进行量化编码;在编码第一个CTU单元之后的每一个CTU单元时,需要根据图像或者区域的目标码率Rtarget、已经编码的码字、未编码的CTU的复杂度信息,对当前要编码的CTU计算当前CTU的量化参数QPi,来保证最终编码得到的码字符接近Rtarget。1.2)采用帧级初始量化参数作为第一个CTU单元的量化参数来对本单元进行编码;1.3)计算得到第一个CTU单元之后的每一个CTU单元的量化参数QPi,对第一个CTU单元之后的每一个CTU单元进行编码,计算QPi具体包括步骤1.3.1)—1.3.3):1.3.1)通过式2计算得到当前编码CTU分配的码字1.3.2)根据当前编码CTU分配的码字通过式5计算得到当前CTU的量化参数QPi对应的量化步长Qstepi;RtargetCTU(i)=φ×CCTU(i)Qstepi+η(i)]]>(式5)式5中,φ为一次线性系数,η(i)通常代表当前CTU编码的头信息码率,为用于计算当前CTU量化参数QPi对应的量化步长。1.3.3)根据Qstepi和QPi的关系,通过式6计算得到当前要编码的CTU的量化参数QPi;QPi=6×log2Qstepi+6]]>(式6)第一次编码中,CTU级别码率控制不需要为了整帧质量平稳而进行限定。在计算得到当前CTU的量化参数之后,优选地,可将当前计算得到的当前CTU量化参数QPi据上一CTU量化参数QPi-1进行限位操作,具体如下:限位操作后的QPi=clip3(minQP,maxQP,QPi)(式7)式7中,minQP=max((QPi-1-1),0);maxQP=min((QPi-1+1),51)。1.4)计算得到第二次编码所需的初始量化参数包括如下过程;在编码每一个CTU的过程中记录下每个CTU,首先需要得到图像量化步长Qstep,具体通过式8计算;Rtarget=Σi=0MφCCTU(i)Qstepi+Σi=0Mη(i)=φCQstep+η]]>(式8)式8中,Rtarget为图像或者区域的目标码率;φ为区域CTU拟合系数,η(i)为CTU头信息码字,CCTU(i)为当前编码的CTU的复杂度,Qstepi为CTU量化步长,C为图像复杂度,Qstep为图像量化步长,η为图像头信息码字,M为图像的CTU的个数。式8中,由于经过推导Qstep可以根据式9计算得到:Qstep=C/Σi=0M(CCTU(i)/Qstepi)]]>(式9)式9中,C为图像复杂度,Qstep为图像量化步长,CCTU(i)为当前编码的CTU的复杂度,Qstepi为第一次编码得到的每个CTU的量化步长,M为图像包含的CTU的个数。然后,可根据Qstepi和QPi的关系,通过式6计算得到量化参数QPi,作为第二次编码所需的初始量化参数2)进行第二次编码,对当前要编码的CTU单元,计算量化参数QPi,包括如下过程:2.1)用步骤1.4)获得的第二次编码所需的初始量化参数,作为第一个CTU单元的量化参数对第一个CTU单元进行编码;2.2)针对第一个CTU单元之后的每一个CTU单元,获得当前编码CTU单元分配的码字,通过所述当前编码CTU单元分配的码字,计算得到用于计算当前CTU量化参数对应的量化步长,再计算得到当前要编码的CTU的量化参数,再对相应的CTU单元进行编码。其中,在对第一个CTU单元进行编码时,采用帧级初始量化参数作为本CTU的量化参数来对本单元进行量化编码;在编码第一个CTU单元之后的每一个CTU单元时,根据Rtarget、已经编码的码字、未编码的CTU的复杂度信息,对当前要编码的CTU计算QPi,来保证最终编码得到的码字符接近Rtarget。具体计算方法与进行第一次编码中计算量化参数的方法相同,包括上述步骤1.3.1)—1.3.3)。针对第二次编码过程中计算得到的量化参数,在本发明实施例中,为了保证帧内整体以及相邻CTU之间的质量的平稳,同时考虑到人眼对复杂图像和简单图像的敏感度的不同,在进行第二次编码计算得到当前CTU的量化参数之后,将当前计算得到的QPi根据当前CTU的复杂度根据和QPi-1进行限位操作,得到限位操作后的当前CTU的量化参数。限位操作采用如下计算方法:CAvgcost=CM]]>(式10)式10中,CAvgcost为图像的平均复杂度;参数C为图像编码中整帧图像的复杂度,M为图像的CTU的个数。限位操作具体如下:IfCCTU(i)<CAvgcost,maxQP=min((QPi-1+1),QPinit1+1)]]>minQP=max((QPi-1-1),QPinit1-1)]]>elsemaxQP=min((QPi-1+1),QPinit1+2)]]>minQP=max((QPi-1-1),QPinit1-2)]]>限位操作后的QPi=clip3(minQP,maxQP,QPi)其中,CCTU(i)为当前编码的CTU的复杂度,CAvgcost为图像的平均复杂度;QPi-1为前一个已编码CTU的量化参数;QPi是当前CTU的量化参数。图2是本发明计算量化参数过程中采用每个区域量化步长的和的平均计算编码所需的图像量化步长的方法流程图。上述基于视频编码标准的图像编码码率控制方法中,为了减少计算的复杂度,其中式9中的Qstep也可以通过下面的简单平均计算得到:Qstep=Σi=0MQstepi/M]]>(式11)式11中,Qstep为第二次编码所需的图像量化步长;Qstepi为第一次编码得到的每个CTU的量化步长;M为图像的CTU个数.计算得到Qstep之后可以根据式6计算得到第二次编码所需的初始量化参数图3是本发明计算量化参数过程中采用每个区域量化参数的和的平均计算量化参数的方法流程图。上述基于视频编码标准的图像编码码率控制方法中,简单起见,计算第二次编码所需的初始量化参数也可根据第一次编码得到的每个CTU的量化参数计算其平均得到,如式12:QPinit1=Σi=0MQPi/M]]>(式12)式12中,为第二次编码所需的图像初始量化参数,QPi为第一次编码得到的每个CTU的量化参数,M为图像的CTU个数。本实施例针对HEVC标准测试序列SlideEditing序列中的第一帧图像,分别通过现有技术的一次编码方法和本发明提供的二次编码方法进行测试。采用一次编码方法,首先针对整帧图像采用同一个量化参数进行编码,得到压缩后的码率数据,然后将此码率作为该方法的输入目标码率Rtarget进行码率控制编码,测试中选取了12,16,20,24,28,32,36,40等八个量化参数点进行,用来测试算法在不同码率点的性能表现,如表1所示测试图像中和经过现有算法计算得到的QPinit以及之间的误差DeltaQP,从表中数据中可以看出,QPinit相对于的误差很大,尤其是在高码率的情况下最大误差能达到15。表1测试图像中和现有技术的一次编码方法计算得到的QPinit以及之间的误差DeltaQP而采用本发明提供的二次编码方法,针对上述相同测试图像、相同测试码率进行了测试,其结果见表2。表2测试图像中和经过本发明方法计算得到的QP1init以及之间的误差DeltaQP表2表示了测试图像中和经过本发明提供方法计算得到的QP1init以及之间的误差DeltaQP。从表中数据可以看出,和现有技术(表1)相比,QP1init相对于的误差DeltaQP很小,最大误差为1。需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1