CN101917618B - 多视点视频编码分层b帧预测结构的计算复杂度控制方法 - Google Patents

多视点视频编码分层b帧预测结构的计算复杂度控制方法 Download PDF

Info

Publication number
CN101917618B
CN101917618B CN 201010262071 CN201010262071A CN101917618B CN 101917618 B CN101917618 B CN 101917618B CN 201010262071 CN201010262071 CN 201010262071 CN 201010262071 A CN201010262071 A CN 201010262071A CN 101917618 B CN101917618 B CN 101917618B
Authority
CN
China
Prior art keywords
calculation
frame
amount
ggop
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010262071
Other languages
English (en)
Other versions
CN101917618A (zh
Inventor
陈耀武
朱威
徐巍炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN 201010262071 priority Critical patent/CN101917618B/zh
Publication of CN101917618A publication Critical patent/CN101917618A/zh
Application granted granted Critical
Publication of CN101917618B publication Critical patent/CN101917618B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种多视点视频编码分层B帧预测结构的计算复杂度控制方法,包括以下步骤:(1)输入多视点视频数据;(2)对不同粒度编码单元进行计算量分配;(3)对宏块帧间模式估计进行计算量分配;(4)对帧间估计进行计算量分配。本发明方法适用于多视点视频编码分层B帧预测结构的计算复杂度控制,可以准确控制多视点编码的计算整体计算量,减少计算量的波动,同时保持编码率失真性能。

Description

多视点视频编码分层B帧预测结构的计算复杂度控制方法
技术领域
本发明涉及数字视频信号编码领域,具体涉及一种多视点视频编码分层B帧预测结构的计算复杂度控制方法。
背景技术
随着视频采集和显示技术的飞速发展,已经有许多针对3D视频场景应用的设备出现,比如3D电视和自由视点电视。3D视频由于可以为用户提供真实的视觉感受,正在逐渐取代传统的2D视频。多视点视频(Multiview Video,MV)是利用不同位置的摄像头对同一场景进行拍摄得到的视频数据,它包含了多个视角的视觉信息,是一种重要的3D视频数据。由于多视点视频的数据量随着视点个数的增多而成倍增加,因此为了解决其传输和存储的问题,多视点视频编码(Multiview Video Coding,MVC)对多视点视频数据进行高效的压缩。联合视频工作组(Joint VideoTeam,JVT)从2006年开始对多视点视频编码进行标准化工作,将其作为H.264/AVC的第四个增修案。为了提高编码压缩效率,多视点视频编码既采用了传统视频编码的时域预测来减少时间方向上的数据冗余,同时采用了视点间预测来减少视点方向上的数据冗余。JVT发布的多视点视频编码校验模型中采用了HHI提出的多视点视频编码分层B帧预测结构(Vetro A,Pandit P,Kimata H,Smolic A,Wang Y K.Joint multiview video model(JMVM)8.0.Doc.AA207,2008,Geneva,JVT 27th meeting),同时采用时域预测和视点间预测,有效提高编码效率。
视频编码器的实际应用中,编码器可获得计算资源通常是有限的,并且会随着整个系统资源的变化而有所调整,因此编码器需要具备计算复杂度可伸缩的能力,能够根据实际情况准确控制整体计算量。另外,在视频编码的实际应用中,整个应用系统除了视频编码器之外通常还会有其它相关任务在运行,如果编码器的计算量的波动过大,就可能会影响其它任务的正常运行。因此编码器还需要对计算量波动进行控制。综上所述,计算复杂度控制算法对视频编码的实际应用具有重要的意义。
现有单视点视频编码的计算复杂度控制算法可以用于多视点视频编码中每个视点的单独控制。多视点视频编码要求不同视点帧的编码顺序排列是按时刻优先的原则进行,即同个时刻不同视点的帧要编码完之后才能开始其它时刻的帧进行编码,因此多视点的计算复杂度控制方法需要对各个视点计算量的联合控制。为了提高编码压缩效率,多视点的编码会选用比单视点编码更为复杂的编码预测结构,例如HHI提出的多视点视频编码分层B帧预测结构,因此其计算复杂度控制算法还需要对多视点复杂编码预测结构的支持。
多视点视频编码的宏块模式估计采用同H.264/AVC一样的模式率失真优化技术,将具有最小模式率失真代价的宏块模式作为最佳宏块模式(Sullivan G J,Wiegand T.Rate-distortion optimization for video compression[J].IEEE Signal Processing Magazine,1998,15(6):74-90.)。多视点视频编码的帧间估计采用同H.264/AVC一样的帧间估计率失真优化技术,将具有最小帧间估计率失真代价的帧间匹配块作为划分块帧间估计的最佳帧间匹配块(Wiegand T,Schwarz H,Joch A,et al..Rate-constrained coder controland comparison of video coding standards.IEEE Transactions on Circuits andSystems for Video Technology,2003,13(7):688-703.)。
发明内容
本发明提供了一种多视点视频编码分层B帧预测结构的计算复杂度控制方法,可以准确控制编码的整体计算量,减少计算量的波动,并保持良好的编码率失真性能。
一种多视点视频编码分层B帧预测结构的计算复杂度控制方法,包括以下步骤:
(1)输入多视点视频数据;
(2)对不同粒度编码单元进行计算量分配;
(3)对宏块帧间模式估计进行计算量分配;
(4)对帧间估计进行计算量分配;
所述的不同粒度编码单元包括:GGOP、超帧(Super Frame,SF)、帧和宏块四个不同粒度的编码单元。其中,GGOP(Group of GOP)为GOP组,是指不同视点在同一时间段的所有图像组的组合,所述的图像组(GOP,Group of Picture)是指某一视点在某一时间段的图像的组合;所述的超帧是指同一个时刻不同视点的所有帧的组合。
其中,所述的步骤(2)为:
(2.1)对GGOP进行计算量分配:
在每个GGOP开始编码之前,计算GGOP的目标计算量TCGGOP,如式(I)所示:
TCGGOP(r)=NSF(r)×TargetAvgCSF+min(VBCGGOP(r),α×TargetAvgCSF)(I)
式(I)中,r是当前GGOP编码索引,NSF是当前GGOP中的超帧个数;TargetAvgCSF是超帧的目标平均计算量;VBCGGOP是GGOP计算量虚拟缓冲区,为前一GGOP实际计算量与其目标计算量之间的偏差。VBCGGOP的初始值为0,其在每个GGOP编码结束后根据TCGGOP和GGOP实际消耗计算量来更新;α为VBCGGOP的上限控制参数,通常根据经验来选取,设为0.1~4.0之间,本发明优选设为1.0;α×TargetAvgCSF为VBCGGOP的上限值。
(2.2)对超帧进行计算量分配:
根据超帧中各帧的帧间预测参考帧个数和所处的时域层计算复杂度权重因子计算每个超帧的计算复杂度权重值WSF,如式(II′)所示:
WSF(m)=WLayer×RefNSF(m)            (II′)
式(II′)中m是超帧编码索引;WLayer代表超帧m所处时域层的计算复杂度权重因子,初始值根据经验来设定,所处时域层的层数越低,WLayer初始值越大,WLayer的更新如式(XV)所示;RefNSF代表超帧m中各帧的帧间预测用到的参考帧个数;
再根据超帧计算复杂度权重值WSF和当前GGOP剩余计算量,分配当前编码超帧目标计算量TCSF(k),如式(II)所示:
TC SF ( k ) = ( TC GGOP - C GGOP ) × W SF ( k ) Σ m ∈ Φ 1 W SF ( m ) - - - ( II )
式(II)中,k是当前超帧在GGOP中的编码索引,CGGOP是当前GGOP已消耗计算量,当前GGOP剩余计算量为当前目标计算量TCGGOP与当前GGOP已消耗计算量CGGOP的差值;Φ1是当前GGOP中待编码超帧的索引集合;
(2.3)对帧进行计算量分配:
根据当前超帧剩余计算量和待编码帧的帧间预测参考帧个数分配当前编码帧目标计算量TCF(i),如式(III)所示:
TC F ( i ) = ( TC SF - C SF ) × Ref N F ( i ) Σ j ∈ Φ 2 Ref N F ( j ) - - - ( III )
式(III)中,i是当前帧在当前超帧中的编码索引,CSF为当前超帧已消耗计算量,当前超帧剩余计算量为当前目标计算量TCSF与当前超帧已消耗计算量CSF的差值;RefNF(i)是当前帧的参考帧个数,Φ2是当前超帧中待编码帧的索引集合,j是当前超帧中待编码帧的索引;
(2.4)对宏块进行计算量分配:
(2.4.1)根据当前宏块与参考帧在零矢量处的差值绝对值和以及当前宏块的纹理强度来计算当前宏块的预测计算复杂度MbComplexityPRED(n),如式(IV)所示:
MbComplexity PRED ( n ) = SAD MV 00 ( n ) × ( 1 + DEV 16 × 16 ( n ) δ ) - - - ( IV )
式(IV)中,n是宏块索引,SADMV00是当前宏块与前向第一个参考帧在零矢量处的像素差值绝对值和,DEV16x16是当前宏块的纹理强度,δ是纹理强度的归一化系数,通常根据经验来选取,设为4000~32000之间,本发明优选设为16000;
(2.4.2)在得到每个宏块的预测计算复杂度之后,利用当前帧所有宏块的预测计算复杂度的平均值AvgMbComplexityPRED对每个宏块的预测计算复杂度进行归一化,得到每个宏块的计算复杂度权重值MbWeight,如式(V)所示:
MbWeight ( n ) = MbComplexit y PRED ( n ) AvgMbComplexit y PRED - - - ( V )
(2.4.3)由式(V)计算得到的计算复杂度权重值,并不能十分精确的反映每个宏块将会消耗的计算量,因此为了兼顾宏块间计算量分配的均匀性,提高分配算法的鲁棒性,进一步对每个宏块的计算复杂度权重值MbWeight的上限进行限制,如式(VI)所示:
MbWeightClip(n)=min(MbWeight(n),MbWeightMAX)        (VI)
式(VI)中,MbWeightMAX为宏块计算复杂度权重上限阈值,通常根据经验来选取,设为1.0~5.0之间,本发明优选设为2.0;
(2.4.4)根据当前帧剩余计算量和剩余宏块的MbWeightClip分配当前宏块的目标计算量TCMb(q),如式(VII)所示:
TC Mb ( q ) = ( TC Frame - C Frame ) × MbWeight Clip ( q ) Σ n = q N - 1 MbWeight Clip ( n ) - - - ( VII )
式(VII)中,q是当前宏块的编码索引,从0开始计数;N是当前帧宏块的个数;CFrame为当前帧已消耗的计算量,当前帧剩余计算量为当前目标计算量TCFrame与当前帧已消耗计算量CFrame的差值。
其中,所述的步骤(3)为:先对宏块帧间模式的估计顺序进行排列,然后按该顺序对各帧间模式逐一进行估计。
由于在帧间模式估计之前进行了模式估计顺序的排列,使最有可能被选为最佳模式的帧间模式排在优先位置,并且模式估计是按该顺序依次进行,排在优选位置上先进行估计的模式可独占使用当前宏块剩余的计算量,因此,在有限的计算量下仍可获得良好的宏块模式率失真性能。这种情况下,每个待估计模式的可获得计算量ACMode按式(VIII)计算:
ACMode=TCMb-CMb                    (VIII)
其中,CMb代表当前宏块已消耗的计算量,在每个模式估计完成之后进行更新。在结束对上一顺序的帧间模式估计之后,比较当前宏块的目标计算量TCMb与当前宏块已消耗的计算量CMb的差值,如差值小于或等于零,则结束估计;否则,继续进行下一顺序的帧间模式估计。
所述的对宏块中各帧间模式的估计顺序进行排列,是根据各帧间模式被选为最佳宏块模式的比例统计、宏块的计算复杂度权重值和划分块纹理强度三要素相结合来进行。
将宏块帧间模式(Inter模式)分成三类:第一类只包括Skip模式,第二类包括Inter16×16、Inter16×8和Inter8×16模式,第三类包括Inter8×8,Inter8×4,Inter4×8,Inter4×4和Inter8×8Frext模式。根据实验统计,第一类模式在所有最佳模式所占的比例最多,且不需要进行帧间估计,计算复杂度可以忽略;第二类模式占最佳模式的比例较多,其帧间估计复杂度较大;第三类模式占最佳模式的比例很少,其帧间估计复杂度很大。因此,将这三类模式采用固定顺序的排列方式,其顺序是:第一类模式总是先进行估计,然后是第二类模式,最后是第三类模式的估计。
在第二类模式的估计过程中,采用动态模式排序的方法。根据宏块的计算复杂度权重值和划分块纹理强度(整体纹理强度、水平划分纹理强度和竖直划分纹理强度)来排列Inter16×16、Inter16×8和Inter8×16的估计顺序。如果当前宏块的计算复杂度权重值MbWeight大于等于宏块计算复杂度权重上限阈值MbWeightMAX,则认为当前宏块处于高计算复杂度区域,否则就认为当前宏块处于低计算复杂度区域。在低计算复杂度区域,静止的物体较多,宏块更容易选择较大划分的模式,因此将Inter16×16较其它两模式先进行估计;而在高计算复杂度区域,运动的物体较多,本发明方法根据划分块纹理强度对Inter16×16与Inter16×8的估计顺序、以及Inter16×16与Inter8×16的估计顺序各自进行排列。16×16块整体纹理强度为DEV16×16,16×16块水平划分的纹理强度(Blk16×16DEV16×8)的计算如式(IX)所示,16×16块竖直划分的纹理强度(Blk16×16DEV16×8)的计算如式(X)所示:
Blk 16 × 16 DE V 16 × 8 = Σ b = 1 2 DEV 16 × 8 - - - ( IX )
Blk 16 × 16 DE V 8 × 16 = Σ b = 1 2 DEV 8 × 16 ( b ) - - - ( X )
如果Blk16×16DEV16×8比DEV16×16小很多,则Inter16×8较Inter16×16先估计,否则Inter16×16较Inter16×8先估计。同理对Inter16×16和Inter8×16的估计顺序进行排列。另外,Inter16×8与Inter8×16之间的估计顺序直接由Blk16×16DEV16×8和Blk16×16DEV8×16的大小来决定:Blk16×16DEV16×8较Blk16×16DEV8×16小,则Inter16×8要比Inter8×16先进行估计,否则Inter8×16要比Inter16×8先进行估计。
根据实验统计,在第三类模式的估计过程中,由于Inter8×8Frext较Inter8×8及其子模式被选为最佳模式的次数要少,因此将其估计放到Inter8×8及其子模式之后。在Inter8×8及其子模式中,Inter4×4选为最佳模式的比例最少,并且其估计消耗的计算量最多,因此本发明方法将其放到Inter8×8、Inter8×4和Inter4×8之后进行估计。Inter8×8、Inter8×4和Inter4×8排序同Inter16×16、Inter16×8、Inter8×16之间的模式估计顺序排列类似,是根据8×8块的整体纹理强度(DEV8×8),8×8块的水平划分纹理强度(Blk8×8DEV8×4)和8×8块的竖直划分纹理强度(Blk8×8DEV4×8)来排序。Blk8×8DEV8×4和Blk8×8DEV4×8的计算分别如式(XI)和(XII)所示:
Blk 8 × 8 DE V 8 × 4 = Σ b = 1 2 DEV 8 × 4 ( b ) - - - ( XI )
Blk 8 × 8 DEV 4 × 8 = Σ b = 1 2 DEV 4 × 8 ( b ) - - - ( XII )
即,对宏块帧间模式的估计顺序的排列为:
首先进行第一类Skip模式的估计;接着进行第二类Inter16×16、Inter16×8和Inter8×16模式的排列和估计;然后进行第三类模式中的Inter8×8、Inter8×4和Inter4×8模式的排列和估计;再进行第三类模式中的Inter4×4模式的估计;最后进行第三类模式中的Inter8×8Frext模式的估计。
每个帧间模式估计过程中,帧间模式的不同划分块的计算量分配采用剩余计算量均分的方法,即将当前模式剩余计算量均分给待估计的划分块,每个待估计划分块的可获得计算量ACBlock按式(XIII)计算:
AC Block = AC Mode - C Mode N Block - - - ( XIII )
其中CMode是当前模式估计已消耗的计算量,NBlock是剩余待估计的划分块的个数。
其中,所述的步骤(4)为:
按每个划分块的各参考帧的帧间估计顺序对各参考帧逐一进行估计,所述的参考帧的帧间估计顺序如下:
在每个划分块的帧间估计过程中,先进行前向队列的参考帧的帧间搜索,再进行后向队列的参考帧的帧间搜索,最后进行双向预测的帧间搜索。考虑到划分块在选择时域方向的预测比视点方向的预测要多,因此在对前向或后向参考队列中的参考帧进行帧间估计顺序排列的时候,始终将时域方向的参考帧排在视点方向参考帧的前面进行估计。这种情况下,排在前面位置上先进行估计的参考帧可独占使用当前划分块剩余的计算量,每个待估计参考帧的可获得计算量ACSearch按式(XIV)计算:
ACSearch=ACBlock-CBlock          (XIV)
其中CBlock是当前划分块的帧间估计已消耗的计算量。在每个参考帧的帧间估计之前,确定该次帧间估计的最大帧间搜索次数,如果帧间搜索次数达到了最大帧间搜索次数,就中止该次帧间估计。所述的帧间估计的最大帧间搜索次数由待估计参考帧的可获得计算量ACSearch除以当前划分块单次帧间搜索的计算量得到。
在上述步骤(1)~(4)的每个处理过程结束之后,都要对已消耗计算量进行统计,并对相关控制参数进行更新,具体如下:
在划分块中每次参考帧的帧间估计结束之后,需要根据该次帧间估计的帧间搜索次数和单次帧间搜索计算量来计算划分块在该次参考帧的帧间估计的计算量,然后用于更新当前划分块的帧间估计已消耗计算量CBlock;在模式中每个划分块的帧间估计完成之后,需要更新当前模式已消耗的计算量CMode;在宏块中每个模式估计完成之后,需要更新当前宏块已消耗计算量CMb;在一帧中每个宏块编码完成之后,需要更新当前帧已消耗计算量CFrame;当超帧中的一个帧编码完成,需要更新当前超帧已消耗计算量CSF;当GGOP中的一个超帧编码完成,需要更新当前GGOP中已消耗计算量CGGOP
由于运动场景的变化,导致分层B帧预测结构中各时域层之间的计算复杂度差异也在变化。当图像静止区域较多的时候,各层之间计算复杂度相互接近;而当图像的运动区域较多的时候,各层之间的计算复杂度差异就变大。因此为了提高编码效率,需要对各时域层的计算复杂度权重因子WLayer进行动态调整。在当前GGOP编码结束后,本发明方法利用GGOP中各时域层的平均SADMV00(AvgSADMV00)来自适应更新计算复杂度权重因子,每层的计算复杂度权重因子更新如式(XV)所示:
W Layer ( r + 1 , l ) = η × W Layer ( r , l ) + ( 1 - η ) × AvgSA D MV 00 ( r , l ) Avg SAD MV 00 ( r , L MAX ) - - - ( XV )
其中r是当前GGOP的索引,l是分层B帧预测结构时域层数索引,LMAX是最大层数索引,η是时域权重因子,通常根据经验来选取,设为0.1~0.9,本发明中优选设为0.5。
另外,在当前GGOP编码结束后,根据当前GGOP目标计算量和实际编码消耗计算量来更新GGOP计算量虚拟缓冲区,如式(XVI)所示:
VBCGGOP(r+1)=TCGGOP(r)-CGGOP(r)            (XVI)。
本发明的多视点视频编码分层B帧预测结构的计算复杂度控制方法,以实现在实际应用中多视点视频编码计算复杂度的精确控制。首先对GGOP、超帧、帧和宏块不同粒度的编码单元的计算量进行分配,从而控制GGOP、超帧、帧和宏块不同粒度的编码单元的计算复杂度;然后对宏块帧间模式估计进行计算量分配,从而控制宏块帧间模式估计的计算复杂度;接着对每个划分块的各参考帧的帧间估计的计算量进行分配,从而控制对每个划分块的帧间估计的计算复杂度。
本发明中,主要对帧间预测的计算复杂度进行控制。由于多视点视频编码在进行帧间预测的时候采用了同H.264/AVC一样的可变块帧间预测技术,每个宏块的帧间预测划分为16×16,16×8,8×16,8×8,8×8,8×4,4×8,4×4等7种不同粒度的模式进行帧间估计,因此帧间预测由于需要对多个模式进行帧间估计,是整个编码过程中计算量最为集中部分。而根据对多视点视频编码参考代码中各编码模块的运行时间统计,也发现帧间预测占据了绝大部分的编码时间。所以,对帧间预测的计算复杂度进行控制,就可以控制多视点视频编码的计算复杂度。
本发明中,对超帧计算量进行分配时,既考虑超帧所在的时域层数的帧间预测计算复杂度,又考虑到超帧中各帧的帧间预测参考帧个数。这是因为在多视点视频编码的分层B帧预测结构中,处在不同时域层的帧与其参考帧之间时域间隔不同,造成不同时域层的帧之间在帧间预测计算复杂度上的差异。如果超帧处于较小的时域层,由于超帧中的各帧与其参考帧之间的时域间隔较大,各帧的帧间预测计算复杂度较大,因此需要给超帧分配更多的计算量。同时,超帧的帧间预测计算复杂度与其中各帧的参考帧个数有直接关系,参考帧个数越多,计算复杂度也越大。所以,本发明可以在控制超帧计算复杂度的同时保持图像质量。
本发明中,对宏块计算量进行分配时,在每帧编码开始前先对所有宏块的计算复杂度进行预测,建立宏块计算复杂度权重表。主要是考虑到在一帧图像中,宏块之间由于运动状态和纹理特征的差异,它们的帧间预测计算复杂度存在较大差异:(1)对于帧间静止块,其最佳匹配块都集中在零矢量附近,帧间估计快速算法可以较快的选定最佳匹配块,估计过程中消耗的计算量比较少;而对于帧间运动块,其运动轨迹并不确定,帧间估计快速算法需要通过增加帧间搜索次数来选取最佳匹配块,估计过程中消耗的计算量比较多;(2)纹理复杂的块更容易选用较小的划分,其模式估计的计算复杂度更高,且纹理复杂的块较纹理简单块更难获得准确的匹配块,其帧间估计的复杂度也更高。因此,本发明方法根据宏块的运动状态和纹理特征建立的宏块计算复杂度权重表,能够准确的给每个宏块分配计算量。
本发明中,对帧间模式估计计算量进行分配时,先对各帧间模式的估计顺序进行排列,然后逐一进行估计。由于宏块的最佳模式只有一个,因此在帧间模式估计顺序排列的时候,根据各帧间模式被选为最佳宏块模式的比例统计、宏块的计算复杂度权重值和划分块纹理强度等三要素相结合来将被选为最佳模式可能性大的帧间模式排列在前。
与现有技术相比,本发明具有以下的有益效果:
本发明的多视点视频编码分层B帧预测结构的计算复杂度控制方法,对不同粒度的编码单元、模式估计和帧间估计进行计算量的多层次自适应分配和控制。该方法可以准确控制多视点视频编码的整体计算量,并减少计算量的波动,同时保持编码率失真性能,适用于多视点视频编码计算复杂度的控制。
附图说明
图1为本发明方法的基本流程图;
图2为Inter16×16、Inter16×8和Inter8×16模式的估计顺序排列图;
图3为Inter8×8、Inter8×4和Inter4×8模式的估计顺序排列图;
图4为宏块帧间模式估计流程图;
图5为序列③在不同目标计算量下的GGOP计算量曲线图。
具体实施方式
下面结合实施例和附图来详细说明本发明,但本发明并不仅限于此。
如图1所示,一种多视点视频编码分层B帧预测结构的计算复杂度控制方法,包括以下步骤:
(1)输入多视点视频数据;
(2)对不同粒度编码单元进行计算量分配;
(3)对宏块帧间模式估计进行计算量分配;
(4)对帧间估计进行计算量分配;
所述的不同粒度编码单元包括:GGOP、超帧(Super Frame,SF)、帧和宏块四个不同粒度的编码单元。其中,GGOP(Group of GOP)为GOP组,是指不同视点在同一时间段的所有图像组的组合,所述的图像组(GOP,Group of Picture)是指某一视点在某一时间段的图像的组合;所述的超帧是指同一个时刻不同视点的所有帧的组合。
步骤(2)具体为:
(2.1)对GGOP进行计算量分配:
在每个GGOP开始编码之前,计算GGOP的目标计算量TCGGOP,如式(I)所示:
TCGGOP(r)=NSF(r)×TargetAvgCSF+min(VBCGGOP(r),α×TargetAvgCSF)(I)
式(I)中,r是当前GGOP编码索引,NSF是当前GGOP中的超帧个数;TargetAvgCSF是超帧的目标平均计算量;VBCGGOP是GGOP计算量虚拟缓冲区,为前一GGOP实际计算量与其目标计算量之间的偏差。VBCGGOP的初始值为0,其在每个GGOP编码结束后根据TCGGOP和GGOP实际消耗计算量来更新。α为VBCGGOP的上限控制参数,通常根据经验来选取,设为0.1~4.0之间,此处设为1.0;σ×TargetAvgCSF为VBCGGOP的上限值。
由于分层B帧预测结构将第一个超帧单独算作一个GGOP,为第一个GGOP,并作为其后的GGOP的参考基础,因此其图像质量对其后的GGOP有重要影响。
为了使得第一个GGOP获得较高的图像质量,在对GGOP进行计算量分配时,对第一个GGOP不进行计算量分配,而是将第一个GGOP与第二个GGOP合并作为一个GGOP来进行计算量分配,该合并的GGOP中的超帧包括第一个超帧(第一个GGOP)和第二个的GGOP中的超帧,NSF值为两个GGOP中的超帧个数之和,即第二个的GGOP中的超帧个数加1。这样,可以有效提高后续的GGOP的编码效果。
(2.2)对超帧进行计算量分配:
根据超帧中各帧的帧间预测参考帧个数和所处的时域层计算复杂度权重因子计算每个超帧的计算复杂度权重值WSF,如式(II′)所示:
WSF(m)=WLayer×RefNSF(m)                   (II′)
式(II′)中,m是超帧编码索引;WLayer代表超帧m所处时域层的计算复杂度权重因子,初始值根据经验来设定,所处时域层的层数越低,WLayer初始值越大,WLayer的更新如式(XV)所示;RefNSF代表超帧m中各帧的帧间预测用到的参考帧个数;
再根据超帧计算复杂度权重值WSF和当前GGOP剩余计算量,分配当前编码超帧目标计算量TCSF(k),如式(II)所示:
TC SF ( k ) = ( TC GGOP - C GGOP ) × W SF ( k ) Σ m ∈ Φ 1 W SF ( m ) - - - ( II )
式(II)中,k是当前超帧在当前GGOP中的编码索引,CGGOP是当前GGOP已消耗计算量,当前GGOP剩余计算量为当前GGOP的目标计算量TCGGOP与当前GGOP已消耗计算量CGGOP的差值;Φ1是当前GGOP中待编码超帧的索引集合;
(2.3)对帧进行计算量分配:
根据当前超帧剩余计算量和待编码帧的帧间预测参考帧个数分配当前编码帧目标计算量TCF(i),如式(III)所示:
TC F ( i ) = ( TC SF - C SF ) × Ref N F ( i ) Σ j ∈ Φ 2 Ref N F ( j ) - - - ( III )
式(III)中,i是当前帧在当前超帧中的编码索引,CSF为当前超帧已消耗计算量,当前超帧剩余计算量为当前目标计算量TCSF与当前超帧已消耗计算量CSF的差值;RefNF(i)是当前帧的参考帧个数,Φ2是当前超帧中待编码帧的索引集合,j是当前超帧中待编码帧的索引;
(2.4)对宏块进行计算量分配:
(2.4.1)根据当前宏块与参考帧在零矢量处的差值绝对值和以及当前宏块的纹理强度来计算当前宏块的预测计算复杂度MbComplexityPRED(n),如式(IV)所示:
MbComplexity PRED ( n ) = SAD MV 00 ( n ) × ( 1 + DEV 16 × 16 ( n ) δ ) - - - ( IV )
式(IV)中,n是宏块索引,SADMV00是当前宏块与前向第一个参考帧在零矢量处的像素差值绝对值和,DEV16x16是当前宏块的纹理强度,δ是纹理强度的归一化系数,通常根据经验来选取,设为4000~32000之间,此处设为16000。
当前宏块的纹理强度DEV16x16的计算可参考W×H块的纹理强度DEVWxH计算,其中,W和H均取值16。
W×H块的纹理强度DEVWxH的计算如式(IV′)所示:
DEV W × H = Σ h = 1 H Σ w = 1 W | Pixel ( w , h ) - AVG W × H | - - - ( IV ′ )
式(IV′)中Pixel(w,h)代表W×H块中水平索引为w,竖直索引为h的像素值,AVGW×H代表W×H块中的平均像素值。DEVW×H值较小,说明W×H块中各像素之间差异较小,纹理特征比较简单;DEVW×H值较大,说明W×H块中各像素之间的差异较大,其纹理特征较为复杂。
(2.4.2)在得到每个宏块的预测计算复杂度之后,利用当前帧所有宏块的预测计算复杂度MbComplexityPRED的平均值AvgMbComplexityPRED对每个宏块的预测计算复杂度进行归一化,得到每个宏块的计算复杂度权重值MbWeight,如式(V)所示:
MbWeight ( n ) = MbComplexit y PRED ( n ) AvgMvComplexit y PRED - - - ( V )
(2.4.3)由式(V)计算得到的计算复杂度权重值,并不能十分精确的反映每个宏块将会消耗的计算量,因此为了兼顾宏块间计算量分配的均匀性,提高分配算法的鲁棒性,进一步对每个宏块的计算复杂度权重值MbWeight的上限进行限制,如式(VI)所示:
Mb WeightClip(n)=min(MbWeight(n),Mb WeightMAX)          (VI)
式(VI)中,MbWeightMAx为宏块计算复杂度权重上限阈值,通常根据经验来选取,设为1.0~5.0之间,此处设为2.0。
(2.4.4)根据当前帧剩余计算量和剩余宏块的MbWeightClip分配当前宏块的目标计算量TCMb(q),如式(VII)所示:
TC Mb ( q ) = ( TC Frame - C Frame ) × MbWeight Clip ( q ) Σ n = q N - 1 MbWeight Clip ( n ) - - - ( VII )
式(VII)中,q是当前宏块的编码索引,从0开始计数;N是当前帧宏块的个数;CFrame为当前帧已消耗的计算量,当前帧剩余计算量为当前目标计算量TCFrame与当前帧已消耗计算量CFrame的差值。
步骤(3)具体为:先对宏块帧间模式的估计顺序进行排列,然后按该顺序对各帧间模式逐一进行估计。
由于在帧间模式估计之前进行了模式估计顺序的排列,使最有可能被选为最佳模式的帧间模式排在优先位置,并且模式估计是按该顺序依次进行,排在优选位置上先进行估计的模式可独占使用当前宏块剩余的计算量,因此,在有限的计算量下仍可获得良好的宏块模式率失真性能。这种情况下,每个待估计模式的可获得计算量ACMode按式(VIII)计算:
ACMode=TCMb-CMb                 (VIII)
其中,CMb代表当前宏块已消耗的计算量,在每个模式估计完成之后进行更新。在结束对上一顺序的帧间模式估计之后,比较当前宏块的目标计算量TCMb与当前宏块已消耗的计算量CMb的差值,如差值小于或等于零,则结束估计;否则,继续进行下一顺序的帧间模式估计。
所述的对宏块中各帧间模式的估计顺序进行排列,是根据各帧间模式被选为最佳宏块模式的比例统计、宏块的计算复杂度权重值和划分块纹理强度等三要素相结合来进行的。
将宏块帧间模式(Inter模式)分成三类:第一类只包括Skip模式,第二类包括Inter16×16、Inter16×8和Inter8×16模式,第三类包括Inter8×8,Inter8×4,Inter4×8,Inter4×4和Inter8×8Frext模式。根据实验统计,第一类模式在所有最佳模式所占的比例最多,且不需要进行帧间估计,计算复杂度可以忽略;第二类模式占最佳模式的比例较多,其帧间估计复杂度较大;第三类模式占最佳模式的比例很少,其帧间估计复杂度很大。因此,将这三类模式采用固定顺序的排列方式,其顺序是:第一类模式总是先进行估计,然后是第二类模式,最后是第三类模式的估计。
在第二类模式的估计过程中,采用动态模式排序的方法。根据宏块的计算复杂度权重值和划分块纹理强度(整体纹理强度、水平划分纹理强度和竖直划分纹理强度)来排列Inter16×16、Inter16×8和Inter8×16的估计顺序。如果当前宏块的计算复杂度权重值MbWeight大于等于宏块计算复杂度权重上限阈值MbWeightMAX,则认为当前宏块处于高计算复杂度区域,否则就认为当前宏块处于低计算复杂度区域。在低计算复杂度区域,静止的物体较多,宏块更容易选择较大划分的模式,因此将Inter16×16较其它两模式先进行估计;而在高计算复杂度区域,运动的物体较多,本发明方法根据划分块纹理强度对Inter16×16与Inter16×8的估计顺序、以及Inter16×16与Inter8×16的估计顺序各自进行排列。另外,Inter16×8与Inter8×16的估计顺序始终根据水平划分纹理强度和竖直划分纹理强度的大小进行排列。
每个宏块只有处在高计算复杂度区域,同时其16×16块整体纹理强度(DEV16×16)与水平划分纹理强度或竖直划分纹理强度存在显著差异的情况下,则其较小划分模式(Inter16×8或Inter8×16)先进行预测。16×16块水平划分的纹理强度(Blk16×16DEV16×8)的计算如式(IX)所示,16×16块竖直划分的纹理强度(Blk16×16DEV16×8)的计算如式(X)所示:
Blk 16 × 16 DE V 16 × 8 = Σ b = 1 2 DEV 16 × 8 ( b ) - - - ( IX )
Blk 16 × 16 DE V 8 × 16 = Σ b = 1 2 DEV 8 × 16 ( b ) - - - ( X )
如果DEV16×16、Blk16×16DEV16×8和Blk16×16DEV8×16三者值相近,则16×16块中平均像素值与16×8块或8×16块中的平均像素值相近,它们的纹理强度一致。在这种情况下,认为整个16×16块属于同质物体,其运动特性一致,因此Inter16×16较Inter16×8和Inter8×16优先进行估计;如果Blk16×16DEV16×8比DEV16×16小很多,则说明16×16块在竖直方向上有明显差异,使DEV16×16较大,而水平方向基本同质,Blk16×16DEV16×8较小,因此在这情况下,Inter16×8较Inter16×16先估计;同理,如果Blk16×16DEV8×16比DEV16×16小很多,则Inter8×16较Inter16×16先估计。
Inter16×8与Inter8×16之间的估计顺序直接由Blk16×16DEV16×8和Blk16×16DEV8×16的大小来决定:Blk16×16DEV16×8较小,则说明16×8划分(水平划分)比8×16划分(竖直划分)更适合于纹理特征,Inter16×8要比Inter8×16先进行估计;Blk16×16DEV8×16较小,则说明8×16划分比16×8划分更适合于纹理特征,Inter8×16要比Inter16×8先进行估计。Inter16×16、Inter16×8和Inter8×16之间的估计顺序排列如图2(a)、(b)和(c),其中μ值通常根据经验来选取,设为0.2~0.8,此处设为0.4。
根据实验统计,在第三类模式的估计过程中,由于Inter8×8Frext较Inter8×8及其子模式被选为最佳模式的次数要少,因此将其估计放到Inter8×8及其子模式之后。在Inter8×8及其子模式中,Inter4×4选为最佳模式的比例最少,并且其估计消耗的计算量最多,因此本发明方法将其放到Inter8×8、Inter8×4和Inter4×8之后进行估计。8×8块水平划分和竖直划分的纹理强度计算分别如式(XI)和(XII)所示:
Blk 8 × 8 DE V 8 × 4 = Σ b = 1 2 DEV 8 × 4 ( b ) - - - ( XI )
Blk 8 × 8 DEV 4 × 8 = Σ b = 1 2 DEV 4 × 8 ( b ) - - - ( XII )
同Inter16×16、Inter16×8、Inter8×16之间的模式估计顺序排列类似,Inter8×8、Inter8×4和Inter4×8也是根据DEV8×8、Blk8×8DEV8×4、Blk8×8DEV4×8这三者关系进行排序,具体如图3(a)、(b)和(c)。
综上所述,所有宏块帧间模式的估计流程如图4所示:首先进行第一类Skip模式的估计;接着进行第二类Inter16×16、Inter16×8和Inter8×16模式的排列和估计;然后进行第三类模式中的Inter8×8、Inter8×4和Inter4×8模式的排列和估计;再进行第三类模式中的Inter4×4模式的估计;最后进行第三类模式中的Inter8×8Frext模式的估计。
每个帧间模式估计过程中,帧间模式的不同划分块的计算量分配采用剩余计算量均分的方法,即将当前模式剩余计算量均分给待估计的划分块,每个待估计划分块的可获得计算量ACBlock按式(XIII)计算:
AC Block = AC Mode - C Mode N Block - - - ( XIII )
其中CMode是当前模式估计已消耗的计算量,NBlock是剩余待估计的划分块的个数。
步骤(4)具体为:
按每个划分块的各参考帧的帧间估计顺序对各参考帧逐一进行估计,所述的参考帧的帧间估计顺序如下:
在每个划分块的帧间估计过程中,先进行前向队列的参考帧的帧间搜索,再进行后向队列的参考帧的帧间搜索,最后进行双向预测的帧间搜索。考虑到划分块在选择时域方向的预测比视点方向的预测要多,因此在对前向或后向参考队列中的参考帧进行帧间估计顺序排列的时候,始终将时域方向的参考帧排在视点方向参考帧的前面进行估计。
采取所述的参考帧的帧间估计顺序,使最有可能被选为最佳参考帧的候选参考帧排在优先位置,并且帧间估计是按该顺序依次进行,排在优选位置上先进行估计的参考帧可独占使用当前划分块剩余的计算量,因此,在有限的计算量下仍可获得良好的帧间估计率失真性能。每个待估计参考帧的可获得计算量ACSearch按式(XIV)计算:
ACSearch=ACBlock-CBlock          (XIV)
其中CBlock是当前划分块的帧间估计已消耗的计算量。在每个参考帧的帧间估计之前,确定该次帧间估计的最大帧间搜索次数,如果帧间搜索次数达到了最大帧间搜索次数,就中止该次帧间估计。所述的帧间估计的最大帧间搜索次数由待估计参考帧的可获得计算量ACSearch除以当前划分块单次帧间搜索的计算量得到。
在上述步骤(1)~(4)的每个处理过程结束之后,都要对已消耗计算量进行统计,并对相关控制参数进行更新,具体如下:
在划分块中每次参考帧的帧间估计结束之后,需要根据该次帧间估计的帧间搜索次数和单次帧间搜索计算量来计算划分块在该次参考帧的帧间估计的计算量,然后用于更新当前划分块的帧间估计已消耗计算量CBlock;在模式中每个划分块的帧间估计完成之后,需要更新当前模式已消耗的计算量CMode;在宏块中每个模式估计完成之后,需要更新当前宏块已消耗计算量CMb;在一帧中每个宏块编码完成之后,需要更新当前帧已消耗计算量CFrame  当超帧中的一个帧编码完成,需要更新当前超帧已消耗计算量CSF;当GGOP中的一个超帧编码完成,需要更新当前GGOP中已消耗计算量CGGOP
由于运动场景的变化,导致分层B帧预测结构中各时域层之间的计算复杂度差异也在变化。当图像静止区域较多的时候,各层之间计算复杂度相互接近;而当图像的运动区域较多的时候,各层之间的计算复杂度差异就变大。因此为了提高编码效率,需要对各时域层的计算复杂度权重因子WLayer进行动态调整。在当前GGOP编码结束后,本发明方法利用GGOP中各时域层的平均SADMV00(AvgSADMV00)来自适应更新计算复杂度权重因子,每层的计算复杂度权重因子更新如式(XV)所示:
W Layer ( r + 1 , l ) = η × W Layer ( r , l ) + ( 1 - η ) × AvgSA D MV 00 ( r , l ) Avg SAD MV 00 ( r , L MAX ) - - - ( XV )
其中,r是当前GGOP的索引,l是分层B帧预测结构时域层数索引,LMAX是最大层数索引,η是时域权重因子,通常根据经验来选取,设为0.1~0.9,此处设为0.5。
另外,在当前GGOP编码结束后,根据当前GGOP目标计算量和实际编码消耗计算量来更新GGOP计算量虚拟缓冲区,如式(XVI)所示:
VBCGGOP(r+1)=TCGGOP(r)-CGGOP(r)             (XVI)
性能评估实验:
实验在多视点视频编码参考代码JMVC4.0上进行,整体测试配置以多视点视频编码通用测试条件为基础(Su Y P,Vetro A,Smolic A.Commontest conditions for multiview video coding.Doc.U211,JVT 21st meeting,Hangzhou,2006)。JMVC的搜索模式选用了其快速搜索算法,搜索范围设置为48,基础量化参数QP选用22、27,32和37。实验选用了四个典型的多视点视频测试序列:序列①(MERL的Exit序列)、序列②(MERL的Ballroom序列),序列③(KDDI的Race1序列)和序列④(Tanimoto实验室的Rena序列)。实验选取这些序列的前三个视点,采用了HHI提出的多视点视频编码分层B帧预测结构,其时域前向参考帧个数、时域后向参考帧个数、视点前向参考帧个数和视点后向参考帧个数为1。式(XV)中,分层B帧预测结构的时域第0层到第4层的计算复杂度权重因子初始值分别设为:4.0、1.5、1.3、1.1和1.0。
实验采用不同粒度划分块帧间搜索的权重计算量来衡量编码计算复杂度,实现编码计算复杂度的客观量化。不同粒度划分块单次帧间搜索的权重计算量如表1所示。在表1中,实验将16×16划分块进行单次帧间搜索的权重计算量设为100,其它划分块的权重计算量是通过其与16×16划分块在单次帧间搜索的处理时间上的比例来计算。
表4.1不同粒度划分块单次帧间搜索的权重计算量
划分块类型      权重计算量
16×16          100
16×8           51
8×16           56
8×8            29
8×4            16
4×8            18
4×4            10
实验开始的时候,先在不做计算复杂度控制的情况下,统计各序列在不同QP设置下的计算量,并将这些计算量作为相应的初始计算量;然后启动计算复杂度控制算法,选用这些初始计算量的10%、30%、50%、70%和90%作为目标计算量来对计算复杂度控制算法进行性能测试。
图5所示为基础量化参数QP为32设置下,序列③在不同的目标计算量设置下GGOP计算量曲线以及不做计算复杂度控制的GGOP初始计算量曲线,曲线1~6分别对应不做计算复杂度控制的GGOP初始计算量曲线、以初始计算量的10%、30%、50%、70%和90%作为目标计算量的GGOP计算量曲线。从图5中可以看出,在使用了本发明方法之后,GGOP计算量曲线在不同的目标计算量下的都表现平稳,不会随着图像运动特征变化而波动。从图5中还可以看到,GGOP初始计算量曲线有较大波动,尤其是前面10个GGOP的初始计算量波动较大,而后面几个GGOP开始恢复平稳。这是由于编码帧间预测的计算量随着视频运动特征的变化而有所起伏:序列③的前半段由于摄像头的快速转动和短暂停止而让运动特征存在较大变化,而其后半段的摄像头都处于静止,图像内容变化较小,因此前后GGOP的初始计算量变化较大。从上面的比较可以看出,在做过计算复杂度控制算法之后,GGOP计算量的波动得到了有效的减小。
为了在不同的基础量化参数QP设置条件下,对本发明方法在不同目标计算量下的率失真性能进行评估,实验将其以初始计算量下的率失真性能为参考,统计信噪比变化(BDPSNR,即Bjontegaard delta PSNR)和码率变化(BDBR,即Bjontegaard delta bit rate)。其中BDPSNR为负数或BDBR为正数代表算法率失真性能的降低。另外,为了评估本发明方法对整体计算量的控制准确度,实验统计实际消耗计算量(RC,即RealComplexity),并用与初始计算量的百分比来度量。
与初始计算量下的编码性能相比,本发明方法在不同目标计算量下的编码性能如表2~表6所示。从这些表中可以看出,在10%的目标计算量下,本发明方法的率失真性能降低最大,但平均也只有0.19dB的BDPSNR下降,以及5.3%的BDBR增加;而在30%、50%、70%和90%的目标计算量设置下,本发明方法的率失真性能降低很小,其中在30%目标计算量下平均有0.03dB的BDPSNR下降和0.8%的BDBR的增加,在50%目标计算量下平均有0.01dB的BDPSNR下降和0.2%的BDBR的增加,在70%和90%目标运算下的率失真性能几乎保持不变。另外,在整体计算量控制方面,不同条件下的实际计算量都小于目标计算量,并且两者非常的接近,在10%、30%、50%、70%目标计算量设置下,得到的实际计算量同目标计算量相同。在90%目标计算量设置下,得到的实际计算量比目标计算量要稍小,但差异也仅在2%以内。
从上面的实验数据可以看出,本发明方法能够准确控制整体计算量,减少计算量的波动,同时保持了良好的编码率失真性能。
表2本发明方法在10%目标计算量设置下的编码性能
Figure BSA00000242680300161
表3本发明方法在30%目标计算量设置下的编码性能
Figure BSA00000242680300171
表4本发明方法在50%目标计算量设置下的编码性能
表5本发明方法在70%目标计算量设置下的编码性能
Figure BSA00000242680300173
表6本发明方法在90%目标计算量设置下的编码性能

Claims (6)

1.一种多视点视频编码分层B帧预测结构的计算复杂度控制方法,其特征在于,包括以下步骤:
(1)输入多视点视频数据;
(2)对不同粒度编码单元进行计算量分配;
(3)对宏块帧间模式估计进行计算量分配;
(4)对帧间估计进行计算量分配;
所述的不同粒度编码单元包括:GGOP、超帧、帧和宏块四个不同粒度的编码单元,所述的步骤(2)中对不同粒度编码单元进行计算量分配的过程如下:
(2.1)对GGOP进行计算量分配:
在每个GGOP开始编码之前,计算GGOP的目标计算量TCGGOP,如式(I)所示:
TCGGOP(r)=NSF(r)×TargetAvgCSF+min(VBCGGOP(r),α×TargetAvgCSF) (I)
式(I)中,r是当前GGOP编码索引,NSF是当前GGOP中的超帧个数;TargetAvgCSF是超帧的目标平均计算量;VBCGGOP为前一GGOP实际计算量与其目标计算量之间的偏差;α为VBCGGOP的上限控制参数,α×TargetAvgCSF为VBCGGOP的上限值;
(2.2)对超帧进行计算量分配:
根据超帧中各帧的帧间预测参考帧个数和超帧所处的时域层的计算复杂度权重因子计算每个超帧的计算复杂度权重值WSF,如式(II′)所示:
WSF(m)=WLayer×RefNSF(m)      (II′)
式(II′)中m是超帧编码索引;WLayer代表超帧m所处时域层的计算复杂度权重因子;RefNSF代表超帧m中各帧的帧间预测用到的参考帧个数;
再根据超帧计算复杂度权重值WSF和当前GGOP剩余计算量,分配当前编码超帧目标计算量TCSF(k),如式(II)所示:
TC SF ( k ) = ( TC GGOP - C GGOP ) × W SF ( k ) Σ m ∈ Φ 1 W SF ( m ) - - - ( II )
其中,k是当前超帧在GGOP中的编码索引,CGGOP是当前GGOP已消耗计算量,当前GGOP剩余计算量为当前目标计算量TCGGOP与当前GGOP已消耗计算量CGGOP的差值;Φ1是当前GGOP中待编码超帧的索引集合;
(2.3)对帧进行计算量分配:
根据当前超帧剩余计算量和待编码帧的帧间预测参考帧个数分配当前编码帧目标计算量TCF(i),如式(III)所示:
TC F ( i ) = ( TC SF - C SF ) × Ref N F ( i ) Σ j ∈ Φ 2 Ref N f ( j ) - - - ( III )
其中,i是当前帧在当前超帧中的编码索引,CSF为当前超帧已消耗计算量,当前超帧剩余计算量为当前目标计算量TCSF与当前超帧已消耗计算量CSF的差值;RefNF(i)是当前帧的参考帧个数,Φ2是当前超帧中待编码帧的索引集合,j是当前超帧中待编码帧的索引;
(2.4)对宏块进行计算量分配:
(2.4.1)根据当前宏块与参考帧在零矢量处的差值绝对值和以及当前宏块的纹理强度来计算当前宏块的预测计算复杂度MbComplexityPRED(n),如式(IV)所示:
MbComplexity PRED ( n ) = SAD MV 00 ( n ) × ( 1 + DEV 16 × 16 ( n ) δ ) - - - ( IV )
式(IV)中,n是宏块索引,SADMV00是当前宏块与前向第一个参考帧在零矢量处的像素差值绝对值和,DEV16x16是当前宏块的纹理强度,δ是纹理强度的归一化系数;
(2.4.2)在得到每个宏块的预测计算复杂度之后,利用当前帧所有宏块的预测计算复杂度的平均值AvgMbComplexityPRED对每个宏块的预测计算复杂度进行归一化,得到每个宏块的计算复杂度权重值Mb Weight,如式(V)所示:
MbWeight ( n ) = MbComplexity PRED ( n ) AvgMbComplexity PRED - - - ( V )
(2.4.3)对每个宏块的计算复杂度权重值Mb Weight的上限进行限制,如式(VI)所示:
Mb WeightClip(n)=min(Mb Weight(n),Mb WeightMAX)   (VI)
式(VI)中,Mb WeightMAX为宏块计算复杂度权重上限阈值;
(2.4.4)根据当前帧剩余计算量和剩余宏块的Mb WeightClip分配当前宏块的目标计算量TCMb(q),如式(VII)所示:
TC Mb ( q ) = ( TC Frame - C Frame ) × MbWeight Clip ( q ) Σ n = q N - 1 MbWeight Clip ( n ) - - - ( VII )
式(VII)中,q是当前宏块的编码索引,从0开始计数;N是当前帧宏块的个数;CFrame为当前帧已消耗的计算量,当前帧剩余计算量为当前目标计算量TCFrame与当前帧已消耗计算量CFrame的差值。
2.如权利要求1所述的多视点视频编码分层B帧预测结构的计算复杂度控制方法,其特征在于,所述的步骤(3)中对宏块帧间模式估计进行计算量分配的过程如下:先对宏块帧间模式的估计顺序进行排列,然后按该顺序对各帧间模式逐一进行估计。
3.如权利要求2所述的多视点视频编码分层B帧预测结构的计算复杂度控制方法,其特征在于,所述的对宏块帧间模式的估计顺序的排列,是根据各帧间模式被选为最佳宏块模式的比例统计、宏块的计算复杂度权重值和划分块纹理强度三要素相结合来进行的。
4.如权利要求2或3所述的多视点视频编码分层B帧预测结构的计算复杂度控制方法,其特征在于,所述的对宏块帧间模式的估计顺序的排列为:
首先进行第一类Skip模式的估计;接着进行第二类Inter16×16、Inter16×8和Inter8×16模式的排列和估计;然后进行第三类模式中的Inter8×8、Inter8×4和Inter4×8模式的排列和估计;再进行第三类模式中的Inter4×4模式的估计;最后进行第三类模式中的Inter8×8Frext模式的估计。
5.如权利要求1所述的多视点视频编码分层B帧预测结构的计算复杂度控制方法,其特征在于,所述的步骤(4)中对帧间估计进行计算量分配的过程为:先对每个划分块的各参考帧的帧间估计顺序进行排列,然后按顺序对各参考帧逐一进行估计;所述的参考帧的帧间估计顺序如下:
在每个划分块的帧间估计过程中,先搜索前向队列的参考帧,再搜索后向队列的参考帧,最后根据前向搜索的结果和后向搜索的结果进行双向预测的搜索,其中,在对前向或后向参考队列中的参考帧进行帧间估计顺序排列的时候,始终将时域方向的参考帧排在视点间参考帧的前面进行估计。
6.如权利要求1所述的多视点视频编码分层B帧预测结构的计算复杂度控制方法,其特征在于,所述的步骤(2)中对不同粒度编码单元进行计算量分配的过程还包括:
(2.5)对各时域层计算复杂度权重因子的更新,其过程如下:
在当前GGOP编码结束后,利用各时域层的平均SADMV00值,自适应更新各时域层的计算复杂度权重因子,如式(XV)所示:
W Layer ( r + 1 , l ) = η × W Layer ( r , l ) + ( 1 - η ) × AvgSAD MV 00 ( r , l ) AvgSAD MV 00 ( r , L MAX ) - - - ( XV )
式(XV)中,r是当前GGOP的索引,l是分层B帧预测结构时域层数索引,LMAX最大时域层数索引,η是时域权重因子。
CN 201010262071 2010-08-20 2010-08-20 多视点视频编码分层b帧预测结构的计算复杂度控制方法 Expired - Fee Related CN101917618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010262071 CN101917618B (zh) 2010-08-20 2010-08-20 多视点视频编码分层b帧预测结构的计算复杂度控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010262071 CN101917618B (zh) 2010-08-20 2010-08-20 多视点视频编码分层b帧预测结构的计算复杂度控制方法

Publications (2)

Publication Number Publication Date
CN101917618A CN101917618A (zh) 2010-12-15
CN101917618B true CN101917618B (zh) 2012-01-25

Family

ID=43324986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010262071 Expired - Fee Related CN101917618B (zh) 2010-08-20 2010-08-20 多视点视频编码分层b帧预测结构的计算复杂度控制方法

Country Status (1)

Country Link
CN (1) CN101917618B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404570B (zh) * 2011-11-16 2014-06-04 浙江工业大学 基于率失真敏感度的多视点视频编码快速模式选择方法
CN103188500B (zh) * 2011-12-31 2015-04-08 中国科学院深圳先进技术研究院 多视点视频信号的编码方法
CN102572439B (zh) * 2012-03-14 2014-02-12 清华大学深圳研究生院 一种确定多视点视频编码最佳模式进行编码的方法
WO2016123801A1 (en) * 2015-02-06 2016-08-11 Mediatek Singapore Pte. Ltd. Methods for partition mode coding
CN104754360B (zh) * 2015-03-26 2017-11-17 清华大学深圳研究生院 用于自由视点视频编码过程中的负载预测方法及装置
US10834384B2 (en) 2017-05-15 2020-11-10 City University Of Hong Kong HEVC with complexity control based on dynamic CTU depth range adjustment
CN107749984B (zh) * 2017-10-24 2019-12-17 福州大学 基于模式映射的多视点视频编码复杂度控制方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206864C (zh) * 2002-07-22 2005-06-15 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
CN101222627A (zh) * 2007-01-09 2008-07-16 华为技术有限公司 一种多视点视频编解码系统以及预测向量的方法和装置
CN100562116C (zh) * 2007-12-12 2009-11-18 浙江万里学院 一种面向多视点视频的码率控制方法
CN101674472A (zh) * 2009-09-25 2010-03-17 上海大学 多视点视频编码的多级码率控制方法

Also Published As

Publication number Publication date
CN101917618A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
CN101917618B (zh) 多视点视频编码分层b帧预测结构的计算复杂度控制方法
CN102893604B (zh) 用于视频的数据压缩
CN103327325B (zh) 基于hevc标准的帧内预测模式快速自适应选择方法
CN101404774B (zh) 运动搜索中宏块划分模式的选择方法
CN100562116C (zh) 一种面向多视点视频的码率控制方法
CN103248895B (zh) 一种用于hevc帧内编码的快速模式估计方法
CN101159871B (zh) 宏块组级视频码率控制方法
CN102932642B (zh) 一种帧间编码快速模式选择方法
CN102334337A (zh) 选择性使用离散正余弦转换的编解码装置和方法
CN101184233B (zh) 一种基于cfrfs数字视频压缩编码的方法
CN103873861A (zh) 一种用于hevc的编码模式选择方法
CN103596004A (zh) Hevc中基于数学统计和分类训练的帧内预测方法及装置
CN102217315A (zh) 用于画面组的并行多线程视频编码的i帧去闪烁
CN101287112B (zh) 一种自适应码率控制方法
CN103188496A (zh) 基于运动矢量分布预测的快速运动估计视频编码方法
CN101895758B (zh) 基于帧复杂度的h.264码率控制方法
CN103327327B (zh) 用于高性能视频编码hevc的帧间预测编码单元选择方法
CN104702959B (zh) 一种视频编码的帧内预测方法及系统
CN102413323A (zh) 一种基于h.264的视频压缩方法
CN101313581B (zh) 视频图像编码方法及设备
CN103384327A (zh) 基于自适应阈值的avs快速模式选择算法
CN103634600B (zh) 一种基于ssim评价的视频编码模式选择方法、系统
CN104038769A (zh) 帧内编码的码率控制方法
CN101179729A (zh) 一种基于帧间模式统计分类的h.264宏块模式选择方法
CN106060555A (zh) 一种基于多核处理器的编码器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120125

CF01 Termination of patent right due to non-payment of annual fee