电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

HEVC技术范文

来源:文库作者:开心麻花2026-01-071

HEVC技术范文(精选7篇)

HEVC技术 第1篇

关键词:视频编码,HEVC,环路滤波

HEVC(High Efficiency Video Coding)是由ISO/IEC移动图像专家组MPEG(Moving Picture Experts Group)和ITU-T视频编码组VCEG(Video Coding Experts Group)组成的联合视频编码组JCT-VC(Joint Collaborative Team on Video Coding)制定的新一代视频压缩编码标准[1],旨在进一步提高编码效率。相比于H.264标准,HEVC可降低50%比特率,能在计算复杂度、压缩率、稳健性以及系统延时之间实现很好的权衡[2]。

由于HEVC依然采用基于块的混合编码框架,将导致重建图像的块效应。因此,HEVC在编码环路中加入去块滤波器(de-blocking filter)去除块效应,并且新加入了自适应采样点补偿滤波(Sample Adaptive Offset,SAO)来减少重建图像的失真[3]。本文详细研究了HEVC中这两种滤波算法,并且通过实验对其性能进行验证。

1 去块效应滤波器

1.1 块效应的产生和影响

在视频编码中人眼察觉到的块边界处的不连续,出现方块形状的现象,称为块效应。块效应的产生是由于视频编码中图像的分块处理造成的。视频编码中的块效应主要来自两个原因,一是基于分块的变换编码,二是基于分块的预测编码。块效应也会引起图像接收者视觉感知质量的下降,因此,解决块效应问题就成为视频编码算法中的重要环节。

1.2 HEVC中的去块滤波设计

如图1所示,图像被分成互不重叠的88单元。

对于某个88单元,若以下3个条件全部满足时,则需要对该单元进行滤波;否则,不进行滤波[4]:

1)该单元的边界正好是预测单元或者变换单元的边界;

2)边界强度Bs的值大于0(亮度分量)或者大于1(色度分量);

3)边界两侧像素值的波动满足公式

其中,条件2)中Bs的定义如表1所示,条件3)中的pi,j和qi,j是分别属于相邻单元P和Q的像素值,如图2所示。β是给定的阈值,与量化参数QP有关。由于单元之间的相邻关系,因此,在滤波时只需考虑每个单元的44像素部分。式(1)中只用第一行和第四行的像素值来评估像素波动是为了降低算法的复杂度。

对亮度分量来说,Bs=1或2时进行滤波。对色度分量来说,只有Bs=2时进行滤波[5]。当进行滤波时,则需进一步按照以下条件判断进行普通滤波还是强滤波

式中:i=0.3,即使用第一行和第四行的像素值;tc是给定的阈值,也与量化参数QP有关。当上述条件对于i=0.3都成立时,进行强滤波,否则进行普通滤波。

1)普通滤波

进行普通滤波时,紧邻边界两侧的1列或者2列像素值要被修正。判断条件如下

当式(3)成立时,P块中的2列紧邻边界的像素值p0,i和p1,i(i=0,1,2,3)要进行修正;否则,只有离边界最近的1列像素值p0,i(i=0,1,2,3)被修正。同理,当式(4)成立时,Q块中的2列紧邻边界的像素值q0,i和q1,i(i=0,1,2,3)要进行修正;否则,只有离边界最近的1列像素值q0,i(i=0,1,2,3)被修正。

当只有p0,i和q0,i被修正时,有

其中,δ0,i=(9(q0,i-p0,i)-3(q1,i-p1,i)+8)>>4。

当p1,i和q1,i也要被修正时

其中,δp1,i=(((p2,i+p0,i+1)>>1)-p1,i+δ0,i)>>1,δq1,i=(((q2,i+q0,i+1)>>1)-q1,i+δ0,i)>>1。

实际应用中,为了防止过度修正,对较大的δ0,i,δ1p,i,δ1q,i值进行了裁剪,具体方法见文献[6]。

2)强滤波

当式(2)成立时,进行强滤波。强滤波将修正边界两侧的各三列像素值p0,i,p1,i,p2,i,q0,i,q1,i,q2,i(i=0,1,2,3)。此时,P块像素值的修正量通过下式计算

将式(7)中的p换成q,即得Q块中像素值的修正量。同样地,对这些修正量也有类似于普通滤波中的裁剪处理。

3)色度分量滤波

当Bs=2时,进行色度去块滤波,滤波时只有p0,i和q0,i(i=0,1,2,3)两列像素值进行修正。滤波算法参照式(5),修正量为

去块滤波具体算法框图如图3所示(针对亮度分量)。

2 自适应采样点补偿滤波(SAO)

2.1 采用SAO的原因

除了块效应,视频编码中还存在其他失真,如振铃效应。振铃效应主要来自两个方面:1)变化编码中来自于变换系数的量化误差;2)HEVC使用八阶亮度分量插值和四阶色度分量插值,越高的插值导致越严重振铃效应。为了消除振铃效应,HEVC在去块滤波之后加入了一种新的滤波:自适应采样点补偿滤波SAO[7]。

2.2 SAO滤波设计

SAO应用于亮度分量和色度分量,它分为两种滤波类型:边缘补偿和带状补偿。进行SAO滤波时,先将图片分为一个个LCU(最大编码单元)区域,如图4所示,对每一个区域独立地选择滤波类型:带状补偿(Edge Offset,EO)、边缘补偿(Band Offset,BO)或不补偿(OFF)。通过对原始像素和重建像素进行快速失真估计和率失真估计,选择每个LCU采用的滤波类型。

边缘补偿被分为4种模式:水平、垂直、135°对角线、45°对角线,如图5所示,图中c表示当前样点,a和b表示相邻样点。在编码端,将已划分好的LCU再基于四叉树划分为树形编码块(CTB),每一个CTB只能选择一种边缘补偿模式进行边缘补偿[8]。

对于一个给定的边缘补偿模式来说,CTB的采样点又被划分为5种类别,这种划分通过当前采样点c和相邻采样点的像素值大小进行比较得出,见表2。第0类不进行边缘补偿,其他类别都需进行补偿[9]。

从表2可看出第1类和第2类中c的像素值相邻采样点的像素值,而第3类和第4类中c的像素值≥相邻采样点的像素值,所以,对第1,2类使用正补偿,而对第3,4类使用负补偿使c与相邻采样点之间更加平滑。对这4类,编码器将会对应传输一个补偿值到解码端,解码端使用这些补偿值对重建图像像素值进行补偿。

带状补偿意味着在CTB中,对同一条带的所有像素采样点采用同一补偿值。该补偿值为条带中采样点的平均原始像素值与去块滤波之后的平均像素值之差。若每一个像素采样点用8 bit表示,则将取值从0~255的像素值等分为32条带,每条带宽度为8。像素值从8k到8k+7的属于带k,k的取值为0~31。对每个CTB只选择补偿值较大的4条连续的带进行补偿,同一个条带内的像素值采用相同的补偿值。选择4条带主要是因为CTB中的像素值主要集中在4条连续的带中[9]。编码端把需要进行补偿的4个条带的起始位置,以及这4个条带的补偿值传到解码端,解码端据此对重建图像像素值进行带状补偿。

对每个CTB,分别进行边缘补偿和带状补偿,并计算两者的率失真代价,选择较小者为最终的补偿模式。率失真代价计算过程如下所述。设k,s(k),x(k)分别表示像素点位置、原始像素值和待进行SAO滤波的像素值。CTB中原始像素值和待进行SAO滤波像素值之间的失真为

原始像素和已进行SAO滤波后的像素之间的失真为

式中:h是像素的补偿值。失真定义为

式中:N为像素个数;E是所有原始像素值和待进行SAO滤波像素值之间的失真之和

获得失真估计后,由式(13)获得率失真代价

ΔJ=ΔD+λR(13)

式中:λ是拉格朗日乘数;R表示边信息量比特数的估计值。

3 实验结果

本实验基于HM9.0,在Windows 7操作系统中进行,并采用VS2010作为编译环境。本次试验中使用了5类测试序列,每类序列的分辨率与帧数如表3所示。

表4和表5分别是5类测试序列在low delay main编码模式下,打开和关闭滤波功能下获得的PSNR和码率。从表4和表5的数据来看,打开滤波功能后,Class A~E这5类序列的PSNR都有所增加,同时,5类序列的码率有0.2%~1.7%的减少。其中,以分辨率最高的A类序列的变化最为明显。表6是4类序列在滤波打开和关闭下的所用的总编码时间,表中数据显示滤波功能使编码时间增加了5.2%~9.9%。结合表4和表5的数据,在增加一定编码时间的基础上,滤波可较大地改善编码性能。

dB

图6a为QP=32时在low delay p编码配置下的BasketballDrill序列,图6b为QP=32时random编码配置下的Vidyo 3序列。图6比较了打开与关闭滤波功能时编码输出序列的主观和客观质量。对两个序列而言,打开滤波功能后,可明显消除块效应,提高主观视觉质量。

4 小结

本文主要研究了HEVC中的环路滤波算法,包括去块滤波算法和自适应采样点补偿滤波算法。并且通过实验验证了滤波算法对PSNR的提升、码率的减少和视频质量改善等方面的影响,结果表明该环路滤波算法在增加了少量编码时间的基础上,对编码性能有较大的提高。

参考文献

[1]ITU-T recommendation H.264 advanced video coding for generic services[S].2005.

[2]YUEN M,WU H.A survey of hybrid MC/DPCM/DCT video coding distortions[J].J.Signal Process,1998,70(3):247-278.

[3]BROSS B,HAN W,SULLIVAN G.Document JCTVC-J1003,High efficiency video coding text specification draft 8[S].2012.

[4]NORKIN A,BJNTEGAARD G,FULDSETH A.HEVC deblocking filter[J].IEEE Trans.CSVT,2012,22(12):1746-1754.

[5]NORKIN A.Document JCTVC-H0473,Deblocking filter simplification:Bs compution and strong filtering decision[S].2012.

[6]IKEDA M,SUZUKI T.Document J-CTVC-H0275,Introdution of strong filter clipping in deblocking filter[S].2012.

[7]FU C,ALSHINA E,ALSHIN A.Sample adaptive offset in the HEVC standard[J].IEEE Trans.CSVT,2012,22(12):1755-1763.

[8]MINEZAWA A,SUGIMOTO K,SEKIGUCHI S.Document JCTVCI0066,Improved edge offset coding for SAO[S].2012.

HEVC技术 第2篇

随着3D视频技术的进步,3D行业迅速兴起。3D电影如雨后春笋般蓬勃发展,3D电视、蓝光盘更是将3D带入了千家万户。目前的3D电影和3D电视频道主要是以双目立体显示技术为基础,观众在观看时能通过左右两路视频间的视差感受到明显的立体效果,但是,观看者仍需佩戴专用眼镜。佩戴专用眼镜易使人产生恶心、头晕等不适感,3D电视采用的帧兼容立体显示格式[1]更是降低了左右2路视频的水平分解力。

多视点视频由多路视频序列组成,不同视点的视频序列代表了同一场景的不同角度,基于自由立体显示技术的自由视点视频(FVV)[2]作为多视点视频的最高形态,其本质上是多视点视频的扩展和延伸,即自由视点视频由无数路视频序列组成。观众在观看自由视点视频时,可在一定的范围内自由选择视角观看其感兴趣的视频内容,不同视角的双目视差使观众仿佛身临其境。自由立体显示技术将取代双目立体显示技术,给人们带来美妙的视觉体验。

目前已出台的3D视频编码标准是基于H.264/AVC的MVC多视点视频编码[3]。MVC在编码依赖视点时,相对于参考视点仅增加了视差补偿预测(DCP)技术以去除视点间冗余,该技术并没有大幅度减少依赖视点的码率。经MVC编码的多路视频的总码率随着视点数量的增加而增大,即总码率与视点数近似为线性关系。因此,多视点视频因视点数过多,经MVC编码后的码率过大,不适宜传输及应用。为了减少多视点视频压缩后所带来的巨大数据量,利用基于深度图绘制(DIBR)技术可减少编码的视点数,从而减少多视点视频编码后的码率。基于深度图绘制(DIBR)技术根据已有的几个视点和相应深度图序列,可生成自由立体显示所需要的额外的视点序列,该技术需要用到与视频对应的深度图,因此,3D视频编码增加了对深度图的编码,输入格式衍生出了多视点加深度(MVD)格式[4]。采用多视点加深度格式进行3D视频编码,仅需编码2~3个视点以及相应的深度图。由于HEVC视频编码标准[5,6]的编码效率远高于H.264/AVC,因此新的多视点加深度3D视频编码将基于HEVC。

MPEG组织于2011年在日内瓦会议上持续公开征求基于HEVC的3D视频编码技术的提案[7],德国海因里希-赫兹通信技术研究所继而提出的基于HEVC的多视点加深度3D视频编码方案,经过效能比较和主观评价之后,比起其他方案效果更好,于是将该方案纳入到HEVC的3D扩展部分[8]。目前,由ITU/ISO/IEC组成的3D视频编码联合合作组(JCT-3V)一直致力于对基于HEVC的3D视频编码进行改进。

2 基于HEVC的3D视频编码应用系统结构和编码框架

基于HEVC的3D视频编码应用系统结构如图1所示。将视频序列、深度图和摄像机参数送入3D视频编码器中,编码得到比特流,其中,摄像机参数用于合成中间视点,且可以不输入深度图,即深度序列可不参与编码。

比特流若被3D视频解码器解码,则可得到视频序列、深度图和摄像机参数,当然若深度图未参与编码,这时仅得到视频序列和摄像机参数。若深度图参与了编码,之后利用基于深度图绘制技术生成N个视点序列即可提供自由立体显示,利用基于深度图绘制技术生成2个左右视点即可提供双目立体显示,直接抽取其中1个视频序列即可提供传统二维显示。若深度图未参与编码,之后利用图像域变形(IDW)技术生成中间视点,也可提供自由立体显示、双目立体显示以及传统二维显示。

比特流若经抽取后被送到双目立体视频解码器中,则可得到双视点视频序列,之后利用图像域变形技术生成中间视点,也可提供自由立体显示、双目立体显示以及传统二维显示。

比特流若经抽取后被送到2D视频解码器中,则可得到单视点序列,最后只能提供传统二维显示。

基于HEVC的3D视频编码框架如图2所示。同一时间N个视点按0,1,,N-1的顺序被依次编码,每个视点均包括视频帧和深度图,同一时间呈现同一场景的N个视频帧加深度图被称为1个存取单元。参考视点0因不参考其他视点被称为独立视点,视点1,2,,N-1因参考了其他视点被称为依赖视点。每个视点先编码视频帧,再编码深度图。

独立视点0的视频帧通过传统的HEVC编码器编码,由蓝线标识,独立视点0的深度图通过改进了的HEVC深度图编码器编码。依赖视点的视频帧通过改进并增加了视点间预测的HEVC编码器编码,依赖视点的深度序列通过改进并增加了视点间预测的HEVC深度图编码器编码。

红线标识部分包括对象间预测[9]、视点间预测。同一视点内,深度图可通过已编码的对应视频帧来预测,即对象间预测。不同视点间,未编码的视频帧既可通过参考视点的已编码视频帧来预测,也可通过参考视点的已编码深度图来预测;未编码的深度图只能通过参考视点的已编码深度图来预测。

配置时,如应用系统结构中所述,编码端也可不输入深度图。

3 视频编码方式

在对参考视点进行编码时,使用了传统的HEVC编码器。

在对依赖视点进行编码时,沿用了在MVC中已熟知的视差补偿预测,视差补偿预测并没有改变宏块层语法和解码过程,仅改变了高级(High-Level)语法在参考帧列表中增加了其他视点的已编码视频帧。毫无疑问,视差补偿预测提高了编码效率。为了更有效地利用视点间冗余,在基于HEVC的3D视频编码中,增加了以下3种与视点间预测有关的编码工具。

3.1 视点间运动预测

多个摄像机拍摄同一场景时,场景中的运动物体在不同视点间的运动特性具有相似性。那么不同视点视频间的运动参数就存在着冗余,依赖视点的运动参数可通过参考视点的运动参数来预测。视点间的运动预测在MVC中就已有应用,MVC中增加了运动跳过模式(Motion Skip Mode)[10],基于全局视差的运动跳过模式认为当前视点的正编码块和全局视差指向的参考视点已编码块间具有很强的运动参数相似性,但是,全局视差往往不是最佳视差,基于精细粒度匹配的运动跳过模式会在全局视差指向的参考视点已编码块附近搜索运动参数最佳匹配块。

基于HEVC的3D视频编码增加了一种新的视点间运动参数预测方式[11]。基本原则是:当前视点正编码视频块,可通过对应深度块换算得出的视差,找到该块在参考视点视频帧中对应的已编码块,正编码块的运动参数即可通过参考视点对应块的运动参数进行预测。但是,由于编码时先编码视频帧,再编码深度图,因此,无论是否编码深度图,在对依赖视点视频帧编码时,该依赖视点视频帧对应的深度图都还未被编码,所以,在进行视点间运动参数预测前,先要进行深度图估计。

如果深度序列参与了编码,则依赖视点的深度图可根据参考视点的已编码深度图映射并填补空洞得到。如果深度序列未参与编码,那么,首先在参考视点第1幅视频帧和依赖视点第1幅视频帧编码完后,通过参考视点第1幅视频帧和依赖视点第1幅视频帧间的视差补偿预测得到依赖视点的第1幅深度图;第二步,将该深度图映射得到参考视点的第1幅深度图;第三步,在参考视点第2幅视频帧编码完后,通过参考视点第2幅视频帧与参考视点第1幅视频帧间的运动补偿预测,复制参考视点第1幅深度图的相应块得到参考视点第2幅深度图;第四步,将参考视点第2幅深度图映射得到依赖视点的第2幅深度图,这时候,在编码依赖视点的第2幅视频帧时即可使用已得出的依赖视点的第2幅深度图;最后,在依赖视点的第2幅视频帧编码完后,需要通过与参考视点第2幅视频帧间的视差补偿预测,更新依赖视点的第2幅深度图,即重复第一步,如此循环往复。

3.2 视点间残差预测

同一时间,不仅不同视点对应视频块的运动参数存在冗余,而且残差也存在冗余。类似于视点间运动预测,视点间残差预测也需要进行深度图估计来确定视差,之后仅需对当前视点的残差块与参考视点对应残差块相减得到的差值进行变换编码。

3.3 光照补偿

类似于MVC,在进行视点间预测时,需要对参考视点被预测块的亮度和色度进行补偿,以匹配当前视点的光照。增加的线性光照补偿模型,通过对预测块的相邻块和参考块的相邻块间的光照关系进行预测。

4 深度图编码方式

与视频相比,深度图具有陡峭的边缘和大片的平坦区。在编码深度图时,根据深度图的特性在HEVC传统视频编码器上进行了改进。除了去除环路滤波、运动补偿去除内插(避免深度图边缘的振铃效应)、运动矢量编码从四分之一像素精度降为全像素精度,还新增了以下5种深度图编码工具。

4.1 深度图建模模式

基于深度图的独特特性,深度图编码新增加的4种深度图建模模式如下:

1)Explicit Wedgelet:通过对深度块深度值的近似来选择最佳楔形划分。

2)Intra-predicted Wedgelet:通过对帧内已编码深度块进行预测来选择最佳楔形划分。

3)Inter-component Wedgelet:通过对象间预测来选择最佳楔形划分。

4)Inter-component Contour:通过对象间预测来选择最佳轮廓划分。

这4种新模式允许两种将1个深度块划分为2个区域的不规则划分形式:楔形划分(用连接块边上2点的线段划分)和轮廓划分(根据物体边界以任意线划分)。由于视频和深度图间的物体形状相关性大,样点值相关性小,深度图块的划分可通过对应视频的亮度信息来预测,这种预测方式被称为对象间预测[9]。

4.2 区域边界循环编码模式

区域边界循环编码模式利用循环码处理区域边界得到块的划分。首先找出块内边界,再利用循环码来编码边界,之后将循环码转换为比特流,最后计算划分区域的预测值并填入块。

4.3 简化深度编码模式

简化深度编码模式是一种帧内编码模式,在编码单元(CU)层标记是否进行简化深度编码。简化深度编码模式可选择两种传统帧内编码模式(直流和平面)以及深度建模模式1(Explicit Wedgelet)。经简化,深度编码的编码单元的大小一般为2N2N,无须编码划分信息。

选择简化深度编码模式的深度块,残差值先通过深度查找表映射到未压缩深度图对应的深度值。编码残差时,就只需编码残差在深度查找表上的索引。当然,需要传输深度查找表以供解码端使用。

4.4 运动矢量继承

同一视点的视频和深度图是同一时间在同一角度对同一场景的投影,具有相同的运动特性,因此,编码深度图时可以直接继承已编码对应视频帧的运动参数。在进行运动矢量继承[12]时,深度图编码单元和预测单元的划分和运动矢量均可从对应视频帧的对应块继承。当然,传输的运动参数除了继承得来外,还可以是预测得出的新运动参数。在深度图编码中,融合模式(Merge Mode)的第一个候选项为对应视频帧的对应块,这样有效地处理了无预测残差的运动矢量继承方式。

4.5 深度图四叉树预测

深度图四叉树预测即通过视频帧四叉树划分来预测对应深度图的四叉树划分。预测的深度图四叉树划分级数受限于对应视频帧的四叉树划分级数,即预测的深度图编码单元不能划分得比对应视频帧的编码单元小。在该预测模式下,深度图无2NN和N2N划分模式。

5 编码控制

在传统的视频编码中,编码模式由拉格朗日代价函数J=D+λR决定,其中D为失真度,R为选择该编码模式下的码率,λ为权重。失真度D通过原始视频和重建视频样点的SAD或SSD来衡量。但是,编码后的深度图并不会直接呈现给人们观看,只有利用深度图合成的中间视点质量才会被观看者所感知,编码后深度值的错误会导致合成视点的样点位置错误。那么在编码深度图时,需要新加入编码控制工具来权衡码率和深度图失真对合成视点的质量影响。

5.1 视点合成优化

在视点合成优化中,利用合成视点失真改变量(SVDC)[13]来准确衡量深度图失真对合成视点的质量影响。在计算SVDC时,需要绘制合成的新视点帧,完整地绘制视点帧显然会使计算过于复杂,因此引入了名为绘制模型(Render Model)的快速绘制机制以迅速地计算SVDC。绘制模型在计算SVDC时只考虑了编码深度块对合成新视点帧的影响。绘制过程包括了亚像素精度变形、填补空洞和视点融合3个步骤。

5.2 对深度图帧内编码块的零残差编码

在率失真优化编码中,决策了帧间预测块的残差是否进行编码。该原理被扩展到深度图的帧内编码块,这些帧内编码块不能是帧内预测片中的块。采用零残差编码的帧内编码深度块的残差被设置为0。

5.3 限制深度图四叉树划分以优化编码控制

对视频和深度图进行编码时,都会通过率失真优化来决策将最大编码块(CTB)划分成几级编码单元。将深度块的划分级数限制到最高为对应视频块的划分级数,这样可减少深度图的编码时间。

5.4 依赖视点绘制区域的可选编码控制

由于依赖视点可通过已编码的参考视点视频帧和对应深度图绘制,因此依赖视点可被绘制区域的编码质量不需要很高[14],解码后可被绘制部分取代。在编码过程中,若依赖视点编码单元中的所有样点均可被绘制,那么该编码单元不需传输残差。

6 小结

目前,基于HEVC的3D视频编码框架已经确定,但许多技术仍在不断地改进。JCT-3V小组已陆续召开了4次会议,有计划地研究如何改进基于HEVC的3D视频编码及其参考软件HTM,目前,HTM软件已更新到6.2版本。相对于增加了视点间预测的HEVC多视点视频编码,基于HEVC的3D视频编码方式可平均节省约20%的码率;相对于HEVC同播,基于HEVC的3D视频编码方式在编码2视点视频时可平均节省约40%的码率,在编码3视点视频时可平均节省约50%的码率。基于HEVC的3D视频编码的发展与完善,必将革新3D视频的应用格局。另外,一些未应用于HTM软件中的新技术未在本文提及。

摘要:HEVC标准出台后,新一代基于HEVC的多视点加深度编码也将正式推出。基于HEVC的3D视频编码作为HEVC标准的扩展部分,主要面向立体电视和自由立体视频。从该编码方式的基本结构出发,较全面地介绍了视频编码方式、深度图编码方式和对深度图的编码控制三个方面的关键技术,包括视点间运动预测、深度图建模模式和视点合成优化等技术。

HEVC技术 第3篇

监控视频在交通安全和电子会议等领域得到越来越广泛的应用,H.264/AVC标准逐渐暴露出自身的不足。HEVC是新一代视频编码标准,与H.264/AVC相比,在相同视频压缩质量下,HEVC可以提高50%左右的压缩效率。HEVC的编码框架和H.264相同,两者都是混合编码框架[1]。

监控视频大多由静止的摄像机捕获,它们往往拥有固定背景。为此,可以考虑利用监控视频特殊的结构特点来处理监控视频。已有关于监控视频的研究可以分为两大类:一类是基于模型的编码方法[2,3,4],这类方法对感兴趣的目标建模,然后对它们编码;另一类是基于块的编码方法[5,6,7,8],这类方法利用高质量的背景帧来提高预测效率。还有一些其它相关研究,如Wang[9]提出了一种新的降低计算复杂度的方法;Zhang[10]提出了基于模型和块分类的快速高效转码方法(FET);Rahaman[11]提出了用于运动监控背景更新模型方法;Zhang[12]提出了基于自适应预测的背景模型方法(BMAP)。

本文提出动态背景模型算法为监控视频生成一个动态背景帧,作为HEVC框架下帧间预测的参考帧。为生成干净的背景帧,提出多层差值(MDM)算法更新背景帧。同时设置一个标志位来说明给出的模型是否被选中。

1 动态背景建模

为充分利用监控视频的结构特点,本文提出DBM和MDM的建模方法。DBM是在HEVC的框架下生成一个用于帧间预测的动态背景帧;MDM采用分层差值方法更新背景以得到干净的背景帧。

1.1 动态背景模型(DBM)

一般来讲,监控视频背景区域的像素值是固定的,运动区域的像素值是变化的。相应地,监控视频背景区域帧间像素差值大部分为0或者接近0,运动区域的帧间像素差值会比较高。因此,可以根据帧间差值来生成和更新背景帧。本文基于像素块对绝对差值进行统计并更新背景帧,如图1所示。

生成和更新背景帧的具体过程如下:

(1)背景帧的像素值初始化为0。

(2)Dn×n是基于块的绝对像素差值,表示当前重建帧和最近的参考帧对应位置的最大块像素差值,n表示像素块的大小。

其中,Ci,j表示当前重建帧的像素值,Ri,j表示最近参考帧的像素值。

(3)设置特定的阈值T来决定是否对背景帧更新。阈值T根据对Dn×n的统计结果选定。

其中,Bi,j表示背景的像素值。动态背景建模的关键点是生成干净的背景帧。然而有时运动区域变化缓慢并且平滑,如果选取用来比较的像素块太小,运动区域的像素差值Dn×n有可能小于给定的阈值T,从而导致背景帧的错误更新。为了解决这个问题,得到比较干净的背景帧,提出多层差值(MDM)算法。

1.2 多层差值算法(MDM)

如果用来比较的像素块大小足够大,即便是运动区域,其边缘部分也会被包含进来,因此会得到一个较大的像素差值Dn×n,从而避免对背景的错误更新。如果Dn×n的值在某一特定范围内,当前像素块会被向下分为4个等大的小像素块,背景帧的更新过程进入一个低的层次。图2展现了多层次差值方法过程。

理论上讲,选取的层越多,得到的背景帧越好。然而分层增多带来的背景帧质量的提升并不能弥补计算复杂的增加,为折衷,文中选取4个分层,分别为32×32,16×16,8×8和4×4。多层次差值算法过程如下:

(1)统计分析并设置每层的阈值Tn1和Tn2。

(2)更新背景帧。

Step1:如果Dn×n小于Tn1,更新对应位置的背景帧。

Step2:如果不是第四层,并且Dn×n的值介于Tn1和Tn2之间,当前像素块被分为4个小像素块,同时将n设为n/2,进入下一层更新过程。

Step3:如果Dn×n大于Tn2,不对背景帧更新。

(3)如果分层大于4,停止背景帧更新过程。

1.3 熵编码

编解码端都要更新背景帧,文中一个标志位来说明给出的模型是否被选中,该标志位为1时,表示模型被选中,为0时,表示没被选中。

2 实验结果

实验用HEVC参考软件HM14.0[13]来实现,实验结果和HEVC的标准测试结果比较,“encoder_lowdelay_P_main”编码配置在实验中被使用,YUV测试序列包括静态背景的检测视频和静态背景的其它视频序列。PSNR和BD码率作为评估编码性能的标准。量化参数(QP)分别被设置为22,27,32,37。

实验中用到6组视频序列,BasketballDrill和Cactus是标准测试序列,其它是用摄像机获取的视频序列。比较结果如表1所示。

表1呈现的是DBM/MDM和HM关于BD码率和PSNR的比较结果,与HM标准测试结果相比,对监控视频的处理,DBM/MDM平均节省超过2%的码率。从表中可以看出,标准测试序列的结果更好一些,BasketballDrill序列最好能提高超过5%的压缩效率,同时Cactus序列能提高1.7%的压缩效率。在由摄像机获取的监控视频序列中,TrafficVido的结果最好,能提高2.6%的压缩效率。

通过表1和图3,可以看出,本文提出的方法与HM14.0标准测试结果相比,在几乎不增加计算复杂度的情况下,能够显著节省码率。

3 结语

可以看出,通过动态背景建模(DBM)生成一个动态背景帧,作为HEVC帧间预测的一个参考帧;同时采用多层差值(MDM)算法生成高质量的背景帧,可以显著提高监控视频的压缩效率。结果表明,与HM标准测试结果相比,DBM/MDM平均节省了2.33%的码率,最高可提高5.2%的压缩效率。后续研究可以通过背景帧对包含背景区域和运动区域的混合区域进行处理,期望背景帧在混合区域的应用中能够进一步提高压缩效率。

摘要:高效视讯编码(HEVC)是新一代编码标准,在编码效率上有明显优势。监控视频结构特点是背景几乎不变,HEVC并没有考虑这种情况。使用动态背景模型(DBM)生成动态背景帧,作为HEVC帧间预测的参考帧,可以提高视频压缩效率。然而,运动缓慢的前景区域有时会被认为是背景区域,为此提出多层差值(MDM)算法,根据多层像素块差值更新背景,提高背景帧的质量。实验结果表明,与高效视讯编码测试模型HM14.0相比,在几乎不增加计算复杂度的情况下,采用该算法压缩效率平均提高了2%,最高提高了5.2%。

HEVC帧内编码单元快速划分算法 第4篇

HEVC参考模型HM中要想确定LCU的最终划分方式,计算复杂度非常高,大大增加了编码时间。因此寻找一种保证编码效率同时降低计算复杂度的快速CU分割方法是众多学者研究热点。

2 相关研究

为进一步提高HEVC编码模式的判决速度,文献根据视频序列的连续性,利用相邻两帧相同位置处CU深度信息的相关性,用前一帧CU的深度信息,跳过不必要的划分,来加速当前帧相同位置处CU深度的判决。文献提出先利用相邻帧CU最优划分信息预测当前CU的最优划分模式,然后在PU层将哈达码变换代价较大的粗选模式排除出候选模式子集,该算法的平均码率损失0.09%,编码时间节省49%,下面是本文的优化算法。

3 快速编码深度选择算法

(1)为了统计实际视频中相邻两帧之间相同位置处CU深度的相似概率,采用了6个不同分辨率和运动特性的视频序列,在HEVC参考软件中进行了统计,如表1所示。

由于视频序列的连续性,相邻两帧相同位置处CU的尺寸不会相差太大。例如对于图1相邻的两个图像A和B,若A中X位置处的CU最佳尺寸为64×64,那么B图像X处的CU的最佳尺寸也应多为64×64或者32×32;若A中Y位置处的CU最佳尺寸为8×8,那么B中Y处的CU的最佳尺寸也应多为8×8或者32×32。

(2)在同一帧中,相邻CU的深度信息亦存在空间相关性,可以根据当前CU的周围的CU的深度信息,来加速当前CU的判定,表2为不同CU相关性统计。

具体做法是,根据公式(1)计算特征值Dpi=Depth,根据计算的特征值Dpi进行深度范围选择,当Dpi<Dexp时,选择深度范围[0,2];当Dpi>=Dexp时,深度范围选择,据此来减少当前CU深度的判定。根据以上(1)和(2)的论述,可以提出本文的算法,具体做法如下所诉。

第一步,读取当前DCU的前一帧相同位置CU围的CU(XCU)的深度信息,并判断前后帧相同位置处CU的相关性。根据公式计算特征Dpi,划分深度选择区间。

第二步,相关性强的CU从深度范围为[0,2]的DCU从DepthDCU=0开始,判断与Depth=(0-3)是否相等,若相等则给出帧内DCU的深度预测范围。若不等,深度加1继,直到Depth-DCU=2结束。对于深度范围为[0,3]的DCU从Depth-DCU=1开始,方法类似。

第三步,相关性弱的CU,当DCUr>0时,读取相同大小相邻CU的深度,如Dall均大于DCU,当前CU深度加1;否则,进行帧内预测。对于深度范围为[0,2]的CU,当CU深度DCU>=2时终止;对于深度范围为的CU,当CU深度CCUr>=3时终止。第四,通过帧内预测,从而得到最佳的CU深度如图2所示。

4 实验验证

为了验证所提出方法的效率,本文以HEVC的软件测试模型HM10.0为参照进行实验。分别用以下公式进行计算:

测试结果,如表3所示。

验结果表明,本文算法可以减少大约20%的编码时间,且比特率增加非常小,且视频的客观质量PSNR平均损失在0.02d B左右,视频质量几乎没有下降。

55结结语语

本文提出了一种基于时域和空域的HEVC帧内编码CU划分模式快速判决算法,该算法提取前一帧相同位置以及当前帧的周围的CU的深度信息,缩小CU划分的判定区间,来对当前CU划分深度进行预测,提高CU划分深度的预测速度。

参考文献

[1]路伟,余宁梅,南江涵等.并行可配置的HEVC熵编码的VLSI结构[J].计算机工程与应用,2014,50(3).

[2]SULLIVAN G.J.OHM J,WOO-JIN Han et al.Over view of the high efficiency vido coding(HEVC)Standard[J].IEEE Transactions on circuits and systems for video technology,2012,(12):1649-1668.

[3]卓力,张菁,李晓光.新一代高效视频编码技术[M].北京:人民邮电出版社,2013.

[4]金智鹏,代绍庆,王利华,R329帧内编码单元快速划分算法[J]南京邮电大学学报(自然科学版).

[5]成益龙,滕国伟,石旭利等.一种快速HEVC帧内预测算法[J].电视技术,2012,36(21):4-7.

[6]CASSA M B,NACCARI M PEREIRA F,Fast rate lislorlion for the high efficiency HEVC Standard[C//proceedings of picture coding symposium.Piscalaway:IEEE,2012:493-496.

[7]KIM J,JEONG S,CHO el al.Adaptive coding unit early termination algorithm for HEVC//IEEE International Conference on Consumer Electronics.Piscataway:IEEE,2012:261-262.

HEVC技术 第5篇

HEVC标准于2013年1月发布, 有关HEVC中整数DCT在FPGA上实现的研究还比较少。Belghith和Park在文献[3-4]中设计的结构只能支持部分TU块, 其MCM单元没有采用任何优化方法。这两种架构的时延也较大, 不利于高清视频的实时处理。Shen在文献[5]中为IDCT (Inverse DCT) 设计了能适应各种TU块的结构, 但每个周期只能处理4个样本点。其复用了同一个1-D IDCT结构, 时延变大。对大TU块, 该结构直接使用乘法操作, 功耗大。Meher在文献[6]中设计的结构将数据都进行了裁减, 准确性下降, 容易出现数据漂移现象。刘毅在文献[7]中的设计, 支持非方形的TU块, 而这已经被最新的标准去除了。

为了克服上述缺点, 本文提出了一种能自适应各种TU块的硬件架构, 去除了原MCM中的常规乘法, 并最大限度地找出复用单元, 节省硬件资源。同时, 按照HEVC标准[8]要求, 最大限度地保证数据的准确性。实验表明, 该结构每个周期能处理32个样本, 最大时延只有32个时钟周期, 在184 MHz的时钟频率下, 能实时处理60 f/s (帧/秒) 、采样率为4∶2∶0的UHD视频序列。

1 硬件架构总体设计

整个算法采用6个模块, 如图1所示。图中, 粗箭头表示数据的流向, 细箭头表示控制信号, 复位和时钟信号在此省略。下面对各个模块进行简要介绍。

Control模块产生控制信号, 控制整个流水线的进行。TU_size设置为0~3, 分别标记本次运算时TU的大小 (44~3232) 。同时用TU_size来设置enable1控制信号 (包括enable1_8, enable1_16, enable1_32) , 以选择DCT_1中用于当前TU块的运算单元。mode记录上一个参与运算的TU块的大小, 并设置enable2控制信号 (包括enable2_8, enable2_16, enable2_32) , 选择DCT_2中的运算单元。require表示当前TU块中的数据全部计算完毕, 可以重新设置TU_size并输入一组新的数据。在Control单元中, 还有两个标记信号:flag和flag_permission。flag由TU_size和mode中较大的数据决定, 用于标记计算本TU块所需要的周期。flag_permission控制本TU计算过程中, 有多少次数据是有效的, 无效的数据用0填充。h_v信号控制转置模块是按照行还是按列存储。cnt则用来记录正在处理的数据将存放在第几行或者第几列。

PN_1和PN_2分别对DCT_1和DCT_2模块输出的数据进行整理。当计算的TU块为44时, PN_1和PN_2的输出数据p_out0~3分别等于DCT_1和DCT_2输出数据中的y0, y8, y16, y24, 其他输出数据都设为0。当TU块为88时, p_out0~7对应y0, y4, y8, y12, y16, y20, y24, y28, 其他的也都是0。对于1616和3232的TU块, PN_1和PN_2的输入输出方法也符合类似规律。

DCT_1, DCT_2和Transpose是本文的主要研究工作, 将在下文详细介绍。

2 DCT模块设计

类似于H.264/AVC, HEVC采用了整数DCT, 在简化运算的同时, 避免了视频图像的漂移现象。HEVC具有灵活的块结构, 能准确适应各种分辨率的视频序列。TU块是变换的基本单元, 目前支持44, 88, 1616和3232四种大小[8]。较大的块能更有效地处理高清视频中相对平滑的区域。

HEVC中2-D (1-Dimensional) DCT也可以转换为两个1-D DCT来计算。1-D DCT模块对应图1中DCT_1和DCT_2。其区别在于输入数据的位数。DCT_1的输入数据为9位, 即预测图像与原图像的残差数据, DCT_2的输入数据为16位, 是经过了1-D DCT之后的数据。数据在1-D DCT运算的过程中需要裁减, 以保证输出的数据是16位。16位的数据既保持了数据的准确度, 又能保证Transpose模块大小适中[1]。

2.1 DCT总体结构

图2详细描述了1-D DCT模块的设计。“<<”和“>>”分别表示算术左移和算术右移。B4, B8, B16, B32分别表示输入Transform44, Transform88, Transform1616, Transform3232单元的数据的位数, 不包括符号位。这些参数的使用, 不仅简化了设计过程 (DCT_1模块通过简单的参数配置就能用于DCT_2模块) , 而且能保证被处理数据的准确性。图中有3个enable信号 (包括enable8, enable16和enable32) , 由TU块的大小决定其取值, 分别控制Transform88, Transform1616和Transform3232三个单元的输入数据。如果enable信号为1, 则对应单元选择蝶形加法器, 否则使用移位器。由于任何大小的TU块在变换时都会调用Transform44单元, 故该单元无需enable信号。该结构利用了HEVC标准中变换核[8]的特性, 使较大的TU块在做变换时, 能复用较小TU块的变换单元。

经过综合后, DCT_1和DCT_2模块中各单元所占资源如表1所示。各单元寄存器使用量为0, 未在表中列出。表1中同时列举了文献[7]中的资源使用情况, 其在Altera Cyclone II上进行了综合。可以看到, 本文的资源使用量明显减少。

2.2 MCM单元和加法树

乘法运算在FPGA中资源占用量和能耗非常大, 所以要将所有的矩阵乘法运算换成移位和加法操作, 以减少硬件资源, 缩小设计面积。

MCM算法在其他有关整数DCT的文献中也有较多的应用, 下文以最复杂的单元来详细介绍MCM单元的优化过程。假设输入MCM32单元的数据为M, 表2中x M表示x与M的乘积。为了书写方便, 假设移位操作的优先级比加法操作高。

由表中数据可知, 若无单元复用, 该MCM32单元需要移位操作46次, 加法操作37次。通过仔细分析移位和加法操作, 可以发现, 该运算中许多单元都是可以复用的。下面对该结构进行一些改进, 用一些临时变量保留复用单元的值, 并在之后的运算中直接使用, 如表3所示, 正体部分表示临时变量。

统计结果表明, 经过优化后, MCM32单元只需进行10次移位和14次加法操作, 分别节省了78.3%和62.2%的运算量。

MCM单元计算出的结果, 还要经过加法树Add Tree的处理。由于两个位数较少的数相加, 综合后得到的加法器资源消耗更少, 故对上述15个数采用不同的位数来存储, 每次计算时选择位数较少的两个数进行加法操作。

3 Transpose模块

Transpose模块在整个设计中至关重要, 它使得DCT_1和DCT_2模块能够同时进行运算。具体实现时, 采用标准测试程序HM12.1[9]中的方法, 先按列计算一维 (1-D) 的DCT, 其结果再按行进行第二维的DCT运算。具体流程如图3所示。

Transpose模块中寄存器初始化为0, 并假设当前处理的是3232大小的TU块。首先输入一列数据, 经过DCT_1模块之后, 将数据按列存放于Transpose模块中, 如图3中1所示。32个时钟周期之后, 数据填满Transpose模块中的寄存器, 如图3中2所示。该阶段表明当前TU块经过DCT_1模块运算完毕, Transpose模块中存放着用于DCT_2模块运算的数据, 并且Control模块可以接收一组新的数据用于DCT_1模块计算。如图3中3所示, 按行取出用于DCT_2模块的数据, 新接收的数据依然按列在DCT_1中运算, 但结果按行来存储。运用脉冲触发的特性, 每次存取操作都可在一个周期内完成。当Transpose模块中原来的数据被取完之后, 新的TU块经过DCT_1模块运算的结果也就保存在Transpose模块之中了, 如图3中4所示。之后重复上述操作就可以实现两个DCT模块的流水线操作。

此处需要解决一个问题:上述示例中, 如果第2次输入的TU块大小为44, 理应只需4个时钟周期就能完成1-D DCT运算 (在DCT_1模块中) , 但是Transpose模块中存放的3232的矩阵, 需要32个周期取出, 若此时更新了TU块, 并输入新的数据, 则Transpose中剩余的数据就会因被覆盖而丢失。为了防止该现象发生, 在Control模块中设置了一个mode值, 如第1节所述, 该值用来记录上次参与DCT运算的TU块的大小。通过比较TU_size和mode的值来设计flag标记信号, 控制本次变换所需的周期。所以上述示例中, 第2次输入的44的TU块实际需要经过32个时钟周期才算完成了1-D DCT的运算过程。

Transpose模块由1 024个16位的寄存器组构成, 用有限状态机 (Finite-State Machine, FSM) 控制数据的行列转换。经过综合后, ALUT使用量为11 800, 寄存器使用量为16 384。

4 实验结果

实验所用代码通过Verilog HDL编写, 并在Altera Arria GX EP1AGX90EF1152C上进行综合。

本结构综合后的数据如表4所示, 其他相关文献给出的数据也在表中列出, 以便对比。因相关文献中没有具体说明或者未使用相应资源, 表中有些数据未给出。DCT和IDCT的区别在标准[8]中有详细阐述, 此处将IDCT的文献也列出, 作为参考。

从表4可以发现, 相对于Belghith, Park, Shen设计的结构, 本结构具有明显的优势, 不仅能支持各种TU块, 而且具有较高的吞吐率。Meher的结构综合后的数据同样比较优越, 但其在计算过程中, 直接忽略数据的低比特位, 导致数据的准确性下降。

实验表明, 在不明显增加资源占用量的情况下, 本结构的时延更小, 数据处理能力更强。在184 MHz的时钟下, 即使是最坏的情况, 本结构也能实时处理60 f/s的UHD视频序列。

5 结论

本文针对FPGA的特性, 通过充分优化MCM和Add Tree单元以减少资源使用量。两个DCT模块采用参数配置的方法, 配合enable信号来选择移位和加减法操作, 能最大限度地保持数据的准确性。文中设计了一种新的Transpose模块, 使得两个1-D DCT模块能同时运算, 并能适应各种TU块的变换。该结构将数据处理时延控制在32个时钟周期内, 处理能力和实用性更强。

参考文献

[1]HAN G J, OHM J R, HAN W J, et al.Overview of the high efficiency video coding (HEVC) standard[J].IEEE Trans.Circuits and Systems for Video Technology, 2012 (22) :1649-1668.

[2]蔡晓霞, 崔岩松, 邓中亮, 等.下一代视频编码标准关键技术[J].电视技术, 2012, 36 (2) :80-84.

[3]BELGHITH F, LOUKIL H, MASMOUDI N.Efficient hardware architecture of a modified 2-D transform for the HEVC standard[J].International Journal of Computer Science and Application, 2013, 2 (4) :1308-1312. (下转第119页)

[4]PARK J S, NAM W J, HAN S M, et al.2-D large inverse transform (16x16, 32x32) for HEVC (High Efficiency Video Coding) [J].Journal of Semiconductor Technology and Science, 2012, 12 (2) :203-211.

[5]SHEN S, SHEN W, FAN Y, et al.A Unified 4/8/16/32-point integer IDCT architecture for multiple video coding standards[C]//Proc.International Conference on Multimedia and Expo (ICME) .Melbourne:IEEE Press, 2012:788-793.

[6]MEHER P K, PARK S Y, MOHANTY B K, et al.Efficient integer DCT architectures for HEVC[J].IEEE Trans.Circuits and Systems for Video Technology, 2013, 24 (1) :1-11.

[7]刘毅, 罗军, 黄启俊, 等.HEVC整数DCT变换与量化的FPGA实现[J].电视技术, 2013, 37 (11) :12-14.

[8]International Telecommunication Union.Recommendation ITU-T H.265[EB/OL].[2014-02-10].http://www.itu.int/rec/T-RECH.265-201304-I, .

HEVC技术 第6篇

随着视频服务多样化的发展以及高清甚至超高清视频的普及,原有的视频编码标准如H. 264 /MPEG-4 AVC以及越来越力不从心,因此,人们迫切需要一种新的更加高效的视频编码标准。HEVC( High Efficiency Video Coding) 是ISO - IEC/MPEG和ITU - T / VCEG两大国际标准化组织联合制定的新一代视频编码标准,它沿用了传统视频编码标准的混合视频编码基本框架,但在各个编码模块上都进行了改进和革新。与H. 264 / AVC相比,在同等应用条件和视频质量下,釆用HEVC进行编码的码率要降低将近一半[1]。

在视频编码的过程中,输出视频质量与使用的码率是密切相关的,编码视频的质量越好,消耗的码率资源也会越多。但是在实际的应用过程中,因为存储空间和传输带宽有限,需要将编码视频的输出码率控制在一定范围内,同时又要尽可能地提高视频质量,这时就应该采取码率控制。码率控制虽然不是视频编码中必须的内容,但却是视频编码非常重要的组成部分。目前HEVC参考软件HM中采用的是Bin Li等人提出的基于R-λ模型的码率控制算法[1,2]。其中λ是RDO( RateDistortion Optimization) 过程中的一个重要参数。R - λ模型如下

式中: α和β是和编码视频有关的参数,可以随着编码过程不断更新; R是当前编码帧或编码单元的目标比特。在计算得到λ之后,通过计算量化参数QP( Quantization Parameter)

虽然该码率控制算法相比于传统的码率控制可以取得更高的编码效率,却并未考虑到实际应用中场景切换对视频编码和码率控制的影响。场景切换会切断相邻帧之间的时间相关性,若编码器不能及时进行调整,将会导致编码资源浪费,压缩效率降低,同时预测模型参数的有效性也会降低,影响码率控制的准确性。目前,针对场景切换提出了很多码率控制算法。文献[3]提出一种低比特率情况下的实时检测场景切换以及进行QP调整的码率控制算法; 文献[4]中提出了一种自适应码率控制算法,通过YUV三个分量的变化来检测场景变换,同时Go P( Group of Pictures) 长度也进行自适应改变; 文献[5]分析了场景切换对编码质量的影响,并利用人眼的时域掩盖特性提出了相应的目标比特数计算方法。

上述算法都是应用于H. 264平台。本文提出一种应用于HEVC平台的基于场景切换的码率控制算法。首先通过计算相邻帧的亮度差变换趋势探测场景切换帧,在确定当前帧是场景切换帧后,对编码参数进行及时调整,保持视频平滑性并提高编码质量,同时保持输出码率的准确性。实验表明,该码率控制算法可以有效提高有场景切换视频的编码效率。

2 场景切换检测

场景切换处都伴随着相邻两帧亮度分量的大幅度变化。因此本文使用当前帧与前一帧的亮度差作为场景切换检测的基础,亮度差的计算如下

式中: D( n) 为当前帧( 即第帧) 与前一帧亮度的差值。Yn( i,j)是第n帧( i,j) 位置的亮度分量值。M和N是帧的宽度和高度。D( n) 不能单独作为场景切换的判断依据,因为没有发生切换的场景中运动的快慢变化也会影响到D( n) 的大小。为了消除这种影响,应该将当前帧的亮度变化与前面已编码帧的亮度变化相比较,若与前面已编码序列的亮度变化相比,当前帧的亮度变化出现了突变,则可以认为当前帧处出现了场景切换。

式( 4) 表明V( n) 与前面各帧的亮度差值都有关,并且离当前帧越近的帧的亮度差值对V( n) 的影响越大。式( 4) 是一个计算所有帧的D( n) 的加权和的过程,p是权重因子,表明的是与当前帧的距离远近对V( n) 的影响,p越大则距离近的帧的亮度差影响越大,实验中设置为0. 5。V( n) 的计算至少需要3帧,所以设序列的第二帧以及场景切换后一帧的V( n) 都等于D( n) 。V( n) 的计算中不包括上一个场景切换帧及其之前的帧。判断当前帧是否为场景切换帧的依据K( n) 的计算为

设序列的第一帧、第二帧的K为1。场景切换发生后的几帧内一般不会再发生场景变换,但是此时亮度变换趋势也并不稳定,为防止此时发生误判,设场景变换后的4帧的K都等于1。截取了6个分辨率为832×480的测试序列,分别是35帧Keiba,38帧Flowervase,40帧Party Scene,41帧BQMall,37帧Basketball Drill,33帧Race Horse合成了1个有5处场景切换的序列。图1给出这个序列各帧K值的变化曲线。

从图1中可以看出在场景切换处K值都发生了剧烈的变化。因此若当前帧的K( n) 满足以下条件,判定该帧为场景切换帧

式中: th为设置的阈值。通过大量的实验经验将th取值为2. 5,实验没有出现漏检和误检的情况。

3 场景切换的码率控制

本文的算法在编码每一帧前都会先使用上述场景切换检测算法判断当前帧是否是场景切换帧。如果没有发生场景切换,码率控制采用参考文献[2]中的方法。如果检测到当前帧是场景切换帧,那么码率控制策略将发生如下改变:

1) 将码率控制模型中使用的参数α和β 置换成初始值。场景切换发生时,前后帧之间的时间相关性被切断。因为码率控制中的模型参数是从前面已编码帧预测得来,而此时图像的属性已发生突变,模型参数失去有效性从而导致码率控制的不准确,同时因为参数更新是一个缓变的过程,如不及时调整还会影响到后续多帧的码率控制准确性。

2) 由于前后帧已不具备时间相关性,如果后续帧依然将切换前的帧作为参考帧,就会浪费大量的编码资源。所以在本文算法中,当前Go P提前结束,并将当前场景切换帧设置为I帧,后面的帧不以场景变换以前的帧作为参考帧。

3) 为了保持视频质量的平滑,当前帧的λ和QP应该尽量与前面已编码帧的λ和QP保持一致。考虑到当前帧可能产生大量比特造成缓冲区上溢,λ和QP应该适当上调,但是场景切换帧作为关键参考帧,它的编码质量将严重影响后续编码帧的质量,λ和QP又不能过大。综合上述因素,本文提出以下方法确定场景切换帧的λ

式中: λcur是编码当前场景切换帧要使用的λ值; λpre表示实际编码上一个Go P中最后一帧所使用的λ; R是一个调节因子。设QPpre为实际编码上一个Go P中最后一帧所使用的QP,当QPpre小于32时,R的值为2,防止发生缓冲区上溢; 当QPpre大于32,R的值为0. 5,保证参考帧编码质量。之后按照式( 2)计算场景切换帧的QP。

4) 场景切换帧之后将开始一个新的Go P编码。Go P的目标比特TGo P的设置参考文献[2]中的方法,即

式中: NGop表示Go P的大小; RPic Avg是目标码率; Ncoded是已编码帧数; SW是平滑窗大小; Rcoded是已编码帧消耗的比特数。需要将提前终止的Go P剩余的比特数以及编码场景切换帧消耗的比特数都计算在内。

4 实验结果

为了验证本文算法的有效性,在HM10. 0测试平台[6]上进行实验。测试序列编码采用low delay P帧的编码结构,Go P的长度设为4。此处对两个测试序列的结果进行分析,序列1是用35帧Keiba、38帧Flowervase、40帧Party Scene、41帧BQMall、37帧Basketball Drill、33帧Race Horse合成的序列,总共编码224帧,共有5处场景切换,分辨率为832×480,帧率是30 f/s( 帧/秒) ; 序列2是用35帧BQTerrace、41帧Basketball Drive、36帧Kimono、38帧Cactus、43帧Park Scene合成的序列,总共编码193帧,共有4处场景切 换,分辨率为1 920×1 080,帧率是50 f / s。

表1显示了测试序列1使用HM10. 0自带的码率控制算法[2]以及本文的码率控制算法编码的结果。从表1中可以看出使用本文提出的码率控制算法在不同的目标码率下都能准确地控制码率,同时显著地提高了PSNR,PSNR平均提高2. 11 d B。由于本文算法将场景变换帧设为帧内编码,又减少了后续帧的参考帧,省去了一些不必要的运动搜索过程,降低了复杂度,所以平均编码时间减少了9. 6% 。图2显示了目标码率为1 000 kbit/s时使用HM10. 0自带的码率控制与本文码率控制的编码序列1各帧PSNR的变化曲线。

表2显示了测试序列1使用HM10. 0自带的码率控制算法以及本文的码率控制算法编码的结果。从表2中可以看出使用本文提出的码率控制算法的平均PSNR提高不如序列1显著,平均只提高了0. 26 d B,原因是序列2中场景切换处编码复杂度的变化并不大,所以原码率控制算法也能取得较好的效果。由于减 少了运动 搜索,平均编码 时间减少 了17. 7% ,同时实际输出码率也比较符合目标码率。图3显示了目标码率为1 500 kbit/s时使用HM10. 0自带的码率控制与本文码率控制的编码序列2各帧PSNR的变化曲线。

5 小结

基于HEVC的快速帧间预测算法 第7篇

针对HEVC中帧间预测的新特点引起的高复杂度,很多学者做了大量的研究,如已经被HM收入,并作为PU划分模式判决的快速算法:1)提前终止算法(Early_CU)[3]利用MODE_SKIP终止该CU后续四叉树划分及模式判决。2)早期跳出算法[4](Early_SKIP),如果当前CU的PU划分为2N×2N,预测模式为Inter_Mode(帧间预测模式),且CBF和MVD均为零,则认为当前的PU划分模式为该CU的最佳模式,不再遍历剩余的PU划分模式,直接进行下步的四叉树分割或者子CU的模式判别。3)快速CBF算法(CBF_Fast)[5],即如果CU的预测模式为Inter_Mode,它所对应的预测残差不包含非零的变换系数,则跳过该CU的其他预测模式,当前PU划分模式为当前CU的最优模式。但这3个算法利用的是当前CU的特殊情况。

针对CU的一般性情况,Rhee等[6]利用不同深度间PU划分模式的相关性,预测当前PU的划分模式;Tian充分利用全零残差块终止PU划分[7];马祥等[8]利用CU不同深度的相关性和同一深度相邻空域的相关性,减少PU模式遍历;李元等[9]和刘娟等[10]利用图像时域的相关性,根据前后两帧的CU面积特征,提前结束PU模式遍历。

上述算法从各个方面来减少PU划分模式抉择的复杂度,考虑了视频的帧间相关性,但都没有与当前块空域相关性结合,且没有涉及运动模式(Merge_Mode,Inter_Mode)的判决。综合以上分析,本文根据图像的运动特性和纹理复杂度,针对PU模式判别过程和运动模式预判两方面进行了改进,以减少帧间预测复杂度。

1 本文算法

帧间预测编码作为视频压缩编码的一个重要模块,利用图像帧间相关性,根据相邻时域已编码块来预测当前块的信息,去除视频的时域冗余,达到压缩目的。为了降低HEVC中帧间预测编码复杂度,本文提出了一种快速算法。首先,判断图像的运动特征及纹理复杂性。然后,利用时空域的相关性,分别对PU模式选择和运动模式判别进行快速模式选择和模式预判。

1.1 图像运动特征与纹理复杂度的分析

图像的运动剧烈程度对图像编码有很大的影响,静止或者运动平缓的图像,相邻两帧间的相似性很高,当前块的编码信息可以参考或者拷贝相邻时域的相应块的有图像信息。运动剧烈的图像,帧间相关性相对较弱,对于视频的帧间压缩效率有所影响。本文利用相邻帧相应位置的CU的MV来判断当前块的运动特征。首先定义一个全局变量来保存相邻帧相应位置已编码块的MV,根据式(1)求出当前CU的平均MVave

式中:2N×2N是当前CU的大小;MVx(i,j)和MVy(i,j)分别表示当前CU在(i,j)处的运动矢量的X和Y分量。根据多次实验观察得到合适的门限值THR0=3,当MVave>THR0时,表示当前块运动较为剧烈;当MVave≤THR0时,表示当前CU的运动缓慢或者静止。

对于运动剧烈的图像,图像帧间的相关性较弱。本文结合了空域相关性,对图形的纹理信息进行分类,将CU分为纹理平坦区域和纹理复杂区域。CU区域的纹理较为平坦时,对于去除图像空间冗余有很好的效果。目前已经有很多方法检测图像的纹理复杂度,如应用高斯马尔科夫随机场来进行纹理复杂度的分类[11],此方法较为有效,但其计算复杂度也很大,本文不考虑此算法。利用Sobel算子计算当前CU的梯度值[12],通过梯度值来衡量该区域的纹理复杂度。本文使用当前CU与空域相邻块的绝对差值和的平均值VSAD,来确定该CU的纹理复杂度。VSAD的计算如下

式中:2N表示当前CU的尺寸;P(i,j)表示当前CU区域内(i,j)点的像素值;p'(i,j)表示相邻CU内(i,j)点的像素值。当VSAD的值小于阈值THR1时,则认为当前CU区域稳定平坦;反之,则认为当前CU纹理复杂。阈值THR1是经过大量实验得到,取THR1=4.5。

1.2 快速PU划分模式选择算法

PU是进行预测编码的基本单元,最小的PU划分模式为4×4。HEVC的PU划分模式包括4种对称的(2N×2N,2N×N,N×2N,N×N)和4种非对称的运动划分模式(Asymmetric Motion Partition,AMP)(2N×UN,2N×DN,LN×2N,RN×2N)。HEVC标准的PU划分模式判别,就是采用基于拉格朗日的率失真优化计算每种模式的率失真代价,选择代价最小者为最优PU划分模式。但不是所有的模式都需要进行遍历。为了降低PU划分模式选择的复杂度,本文根据图像的内容特性将其PU模式分为三类:上下结构I1={2N×N,2N×UN,2N×DN}、左右结构I2={N×2N,LN×2N,RN×2N}、不分块或者均匀分块I3={2N×2N,N×N}。

考虑到文献[9]中统计的相邻两帧间的PU模式相同概率较高,该快速PU划分模式选择算法先考虑时域相关性再结合空域相关性,具体步骤如下。

根据1.1节中的运动特征分析,判断当前编码块的运动剧烈程度。

若MVave≤THR0,判定当前编码块运动较为平缓或静止。考虑到此时相邻两帧间有较大的相关性,统计相邻帧相应块PU划分模式(PUcol)。

如果PUcol划分模式属于I1集合,则当前编码块遍历I1集合中的PU划分模式,而为了保证视频编码的性能,2N×2N的PU划分模式也需要考虑,其他模式则不需要再遍历。

如果PUcol划分模式属于I2集合,则当前编码块只需要遍历I2集合中的PU划分模式和2N×2N。

如果PUcol划分模式属于I3集合,当前编码块只需遍历I3集合中的PU划分模式。

当MVave>THR1时,当前块运动较为剧烈,如果仍然参考相邻帧相应位置PU划分模式,可能会对视频的质量造成一定的损失。为了减少视频质量的损失,当前块编码块运动剧烈时,本文根据1.1节中的图像纹理复杂度的分析,判断当前编码块的纹理复杂度。

若VSAD≤THR1,判定当前编码块纹理平坦,统计当前编码块的空域相邻块的PU划分模式(PUNeR)。

如果PUNeR划分模式属于I1集合,则当前CU只遍历I1集合中的PU划分模式和2N×2N。如果PUNeR划分模式为I2集合,则当前CU只需要遍历I2集合中的PU模式和2N×2N。如果PUNeR划分模式属于I3集合,当前PU只需遍历I3集合中的PU划分模式。

若MVave>THR1且VSAD>THR1,当前编码块模运动剧烈且纹理复杂,需要遍历所有的PU划分模式以得到最优PU划分模式。

改进的快速PU划分模式选择算法流程图如图1示。

1.3 快速运动模式预判

计算每种PU划分模式的率失真代价是为PU选择最优的帧间预测参数,如参考图像的列表、参考图像索引、运动矢量和加权值等。由于HEVC引入了Merge模式和AMVP技术,使得每种PU模式都需要遍历两种运动模式Merge_Mode和Inter_Mode,从两位种模式中选择率失真代价最小的为最优运动模式,提高了编码效率的同时也增加了编码时间。

但两种运动模式有很大的区别,Merge_Mode可以从时间和空间相邻块中得到运动信息,根据率失真优化计算候选列表中的候选项的率失真代价以选择最优候选块,只需要最优候选块的索引信息即可。对于帧间变化较少或者运动静止的图像区域可以有效地降低图像的计算复杂度和编码比特数。Inter_Mode需要搜索不同的运动参数组合,根据率失真优化计算各种组合的率失真代价,选择RDCost最小的为最优Inter_Mode。Inter_Mode类似于Merge_Mode,都需要建立候选列表,但与之不同的是其不需要5个候选项只需要2个即可。Inter_Mode只利用很少的候选项是因为需要执行运动估计来计算当前块的运动矢量残差,通过传递残差来实现图像的编码。Inter_Mode对于运动剧烈或者纹理复杂的图像,能够最小失真地重建图像,但计算复杂度又有所增加。

为了降低运动模式抉择的计算复杂度,本文根据运动模式的特性与图像的运动复杂度,预判帧间预测的运动模式,具体步骤如下:

1)考虑到PU划分模式为2N×2N时,SKIP模式类似于Merge_Mode。此时对于当前编码块的运动模式,不进行预判。

2)再次利用1.1节中运动特征的分析,判断当前编码块的运动剧烈程度。

3)当MVave≤THR0时,当前编码块运动较为平缓或静止,而Merge模式对于帧间变化较少或者运动静止的图像区域只需要很少的比特,且能很好地将当前块运动信息传递到解码端,所以,此时使用Merge_Mode来搜索当前块的运动信息。

4)当MVave>THR0时,当前编码块运动较为剧烈,若采用Merge_Mode,会导致视频质量的损失,使用Inter_Mode来搜索当前块的运动信息,在保证了当前块图像质量的基础上又不需要遍历Merge_Mode。

运动模式预判算法的流程图如图2所示。

2 结果分析

本文提出的快速帧间预测算法在编码器HM10.0仿真实验,实验平台为CPU 4.30 GHz、Intel Core i7、内存4 Gbyte、操作系统为Windows 7的64位计算机,运行环境是Microsoft Visual Studio 2010,编码结构为IP-PP。实验结果如表1~5所示,其中P表示本文所提出的快速PU模式选择算法,C为文献[10]基于时域相关性的快速PU选择算法,L即为快速PU模式选择与运动模式预判相结合的快速帧间预测算法。

从表1中可以看出,本文中的快速PU划分模式选择算法与HM编码器相比较,其时间可以节省平均25%左右,同时PSNR减少0.03 d B左右,并有0.5%左右的码率增加。与参考文献算法[10]相比较,大部分的图像的率失真性能明显较好,尤其是针对运动较为剧烈而纹理较为平坦的图像。但个别视频因为考虑了空域相关性,率失真性能略有下降。

加入运动模式预判算法的快速帧间预测联合算法与文献算法[10]相比,其时间可进一步减少15%~25%,且视频的率失真效果基本相当。与HM编码器相比,其时间可以节省69%,同时视频的质量损失可忽略不计。

3 结论

本文主要针对帧间预测的PU模式抉择和运动模式进行了分析和改进。提出的快速帧间预测联合算法,根据图像的运动状态来减少需要遍历的PU模式和对运动模式的预判。同时对于运动剧烈的图像,又利用图像纹理复杂度减少了PU划分模式遍历。仿真结果表明:本文提出的快速帧间预测算法大幅度减少了编码时间,且图像质量损失可忽略不计。

摘要:针对HEVC中PU划分模式和帧间运动模式的选择引起的高复杂度,提出一种快速帧间预测算法。首先,判断图像的运动状态和纹理复杂度,根据当前图像的时空域相关性及图像内容的特点,减少PU划分模式。然后,根据运动剧烈程度对当前PU运动模式预判,从而不需要遍历所有的运动模式。实验结果表明,在视频重建质量基本相当的前提下,改进后的算法编码时间与参考算法相比节省30%~60%左右。

关键词:HEVC,帧间预测,PU划分模式,运动模式,时空域相关性,运动状态,纹理复杂度

参考文献

[1]JCT-VC.JCTVC-L1004,High efficiency video coding(HEVC)text specification draft 10[S].2013.

[2]WIEGAND T,OHM J R,SULLIVAN G J,et al.Special section on the joint call for proposals on High Efficiency Video Coding(HEVC)standardization[J].IEEE transactions on circuits and systems for video technology,2010,20(12):1661-1666.

[3]GWEON R H,LEE Y L,LIM J Y.Early termination of CUencoding to reduce HEVC complexity[EB/OL].[2016-01-09].http://phenix.int-evry.fr/jct/index.php.

[4]YANG J Y,KIM J W,WON K H,et al.Early SKIP detection for HEVC[EB/OL].[2016-01-09].http://phenix.intevry.fr/jct/index.php.

[5]CHOI K,PARK S H,JANG E S.Coding tree pruning based CU early termination[EB/OL].[2016-01-09].http://phenix.intevry.fr/jct/index.php.

[6]RHEE C E,LEE H J.Early decision of prediction direction with hierarchical correlation for HEVC compression[J].IEICE transactions on information and systems,2013(96):972-975.

[7]TIAN G,GOTO S.An optimization scheme for quadtreestruture prediction and residual encoding in HEVC[C]//Proc.IEEE Asia Pacific Conference on Circuits and Systems(APCCAS).[S.l.]:IEEE,2012:547-550.

[8]马祥.基于宏块模式相关性的深度帧内跳过编码[J].华南理工大学学报,2013,41(8):28-33.

[9]李元,何小海,钟国韵,等.一种基于时域相关性的高性能视频编码快连速帧间预测单元模式判决算法[J].电子与信息学报,2013,10(35):2365-2370.

[10]刘娟,钟国韵,王蕾,等.基于时域相关性的快速HEVC帧间模式判决方法[J].电视技术,2014,38(13):1-5.

[11]UCHIYAMA T,MUKAWAN,KANEKO H.Estimation of homogeneous regions for segmentation of textured images[J].IEEE transactions on information and systems,2000(3):7084-7084.

HEVC技术范文

HEVC技术范文(精选7篇)HEVC技术 第1篇关键词:视频编码,HEVC,环路滤波HEVC(High Efficiency Video Coding)是由ISO/IEC移动图像专家组...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部