一种svc视频fgs优先级调度方法

文档序号:7664891阅读:185来源:国知局
专利名称:一种svc视频fgs优先级调度方法
技术领域
本发明涉及一种SVC视频FGS优先级调度方法,特别是关于一种基于误差漂 移失真模型的SVC视频FGS优先级调度方法。
技术背景近年来,随着互联网技术的发展和普遍应用,网络越来越影响人们的生活方 式。由于视频信息具有直观性强,内容丰富等特点,因此视频传输在网络传输领 域占据了越来越重要的地位。然而,在互联网上进行视频传输,对视频压縮、网 络传输等提出了新的挑战。由于网络拥塞导致的网络带宽不稳定,以及终端设备 应用需求和解码播放能力的差异,所有这些都要求视频编码和传输具有可伸縮的 特性。可伸縮视频编码(SVC)便是在这种需求下由高压縮效率标准H.264/AVC发 展而来的视频编码方案,它不仅能够提供空域、质量和时域的可伸縮性,提供精 确到位的码率截断,而且使得SVC效率大大提高,接近传统定码率视频编码的压 縮率。在H. 264/AVC的SVC扩展中,空间可伸縮性使用分层的方法,首先将图像分 解为多个空间分辨率的信号,每个分辨率都是一个空间编码层,帧内预测和帧间 预测可以跨层进行,具体包括层间帧内预测、层间帧间预测、层间残差预测。质量可伸縮主要通过对变换系数的重复量化和位平面编码来实现质量SNR的 可伸縮性。具体通过粗糙粒度可伸縮性(CGS),中等粒度可伸縮性(MGS),精细 粒度可伸縮性(FGS)等技术实现质量的可伸縮性。其基本思想为将视频的每一 帧都分为一个可以单独解码的基本层(BL)码流和在基本层解码器之上的增强层 (EL)码流。基本层采用混合编码的方法,通常码率比较低,只能保证最基本的 质量要求,确保解码端有足够的能力接收并解码基本层的码流。增强层则通过嵌 入式的对各增强层变换系数进行子位平面编码,以实现码流可以在任意点截断。为实现时域可伸縮性,每个空间层内都使用层次化B帧编码结构,高时间级 的图像通过低时间级的图像作为参考帧进行时间预测。如同先前的大多数编码方 案,SVC也采用运动预测和补偿的方法来消除时间冗余,达到压縮效果。误差漂移 是SVC技术遇到的一个重要问题,如果运动预测采用增强层图像作为参考帧,则 在解码端,由于码流截断造成重建参考帧和原始参考帧失配,会造成解码误差, 这样随着解码端高时间级的帧以低时间级的帧作参考不断地运动补偿和解码,会 造成误差的逐步扩散,形成误差漂移。在MPEG-4FGS中,运动预测只能以基本层
为参考帧,虽然这样可以有效防止误差漂移,却导致了率失真性能的低下。因此, 在SVC中,运动预测的参考帧采用前一帧的最高质量重建帧,这样提高了率失真 性能,縮短了与不可伸縮编码效率的差距。但是一旦解码端没有接受到所有增强 层的信息,便会造成编码器和解码器之间的失配,引起误差漂移。为防止误差漂 移,SVC中提出了关键帧(key picture)的概念,关键帧与这个关键帧之前的关 键帧之间的所有图像形成一个图像组(G0P),关键帧允许以基本层图像作为参考 帧,关键帧之间的其它帧形成层次化B帧,以提供时间可伸縮性,从而将误差漂 移限制在一个GOP范围内,这本质上是一个编码效率和误差漂移控制之间的权衡。 为了最大限度发挥SVC FGS的优势,应该有一个比特流提取方法将目标比特 最优地分配给每个FGS图像。对于一个FGS码流,可以通过对不同的FGS层选择 截断以达到目标码率,但是不同的提取方案会造成率失真性能很大的差别。通常 地,最优码流提取要考虑到两个因素, 一个是每一帧FGS增强层的率失真函数, 另一个就是在每一个GOP中的误差漂移问题。也就是说,判断一个质量包的优先 级,既要考虑其对所在帧的率失真性能的提高,同时也要考虑由于误差漂移引起 的对其它帧率失真性能的影响。先前对码流截断方法的研究很不完善,很多算法 仍然采用对码流任意截断的方法,这样没有考虑各质量包率失真性能的差异以及 对整个序列率失真性能的影响,显然效率是不高的。而在参考代码中提出的码流 截断方案,类似的提出了独立率失真信息和非独立率失真信息的概念,并用加权 的方式计算每个质量包对整个序列率失真性能的影响,以此来判断其优先级,该方法共需要对码流进行2NT次的提取和解码,N是FGS层数,T为时间可伸縮级数。 可见,其计算复杂性相当大,因此, 一个简单快速而不失准确性的码率截断方法 还是相当必要的。 发明内容针对上述问题,本发明提出的是一种基于误差漂移失真模型的SVC视频FGS 优先级调度方法,以较小的复杂度尽可能的提高重建视频的主观以及客观质量。 为实现上述目的,本发明采用如下技术方案1) 提出一种伪GOP的概念,每个伪GOP包含两个相邻的关键帧和之间的所有B帧;2) 建立一个由误差漂移导致的失真模型,所述模型描述为E(S) = E(4) + O何+ ^ )E(《)+ (A w + * )E(《)+ //E(《)E(《)+ " (1)其中,£(^), 五(《)分别表示伪GOP中B帧和它的参考帧A,C的MSE, Sw表示b帧的当前残差帧h中原始残差值和重建残差值之间的差,;v^;^^,/^w分
别表示B帧中采用前向预测、后向预测和双向预测的像素的百分比,//, V是两 个待定的系数;3)基于公式(1)所建立的误差漂移失真模型,按如下方法对SVC视频进行 FGS优先级调度(1) 计算估计公式(1)中两个参数/i, V,具体方法为先对码流进行基本 层抽取和全部抽取后解码,并统计每一帧在基本层的MSE以及每个残差帧在各质 量级的£(《),同时统计出在基本层提取后的每个非关键帧的p^,A^^,w,而后对于每一个非关键帧,根据其/7^,^^,p^和残差帧基本层的E(《),以及该帧和其参考帧基本层解码后的MSE,代入公式(1)计算出每一个非关键帧的//, V;(2) 为每个伪GOP中的各FGS质量包设置优先级,具体方法为根据每个质 量包对整个伪G0P平均率失真性能的影响来确定其优先级,其影响包括对所在帧 造成的非漂移失真和由于误差漂移导致的其它帧的MSE下降;其中,所在帧的非 漂移失真即为步骤(1)中得到的残差帧在传输该质量包前后的£(《),而后根据 公式(1)算出由于误差漂移造成的其他帧的MSE下降,从而得到伪G0P的平均MSE下降,通过循环选取造成伪G0P的MSE下降最小的质量包来得到优先级顺序及相 应的码率失真数据,具体步骤如下① 用一个序列MM^
存放伪GOP中每一帧的MSE,将伪GOP的 MS£ra。/)
, 似1^^."0..(伊/7」^)]由步骤(1)中对码流进行基本层截断解码后得到,其中 g叩—w&为伪GOP的大小;用序列array—level存放当前比较优先级的质量包, 将array—level初始化为伪GOP的第一个FGS增强层;② 按照以下循环方法通过选择率失真斜率最大的质量包来逐步排列 array—level中各质量包的优先级,直至array」evel为空;i )将PSNR-rate斜率CurrMaxSl叩evG。p初始化为0,伪GOP的平均率失真斜率为PSNRVGOP = 20 log 255 - 10metm(log10(MS£「GO;J[l ..gop — +1])); ii)对于array—level中的每个质量包level (frame—no, FGS—level—no),判 断第k个质量包是不是当前最优的a)根据步骤(1)中得到的其所在帧的残差帧在传输该质量包前后的£(《), 即为该质量包对所在帧造成的非漂移的MSE下降,与当前 ^5£^^
中对应的所在帧的MSE相减得到该质量包所在帧的新MSE, 然后利用公式(l),并根据当前的MS£,(,[l..(g叩—+ 计算由误差漂移造成的/"MS&^ ;b)然后利用MS£ra。P和^cM促,p ,按下式计算PSNR增加,incPSNR一Level VGOP = 10 weflfw(log10 (MS五,尸[1 — w—ze +1]))—1 Owe—log10 (MS五柳尸[1_ w'ze +1] — cfecMSE柳尸[1— +1]))如果incPSNR—LevelVGOP 〃eve/ —w'ze > CurrMaxSlopeV(J。p ,即该质量包的率失真斜率大于先前的最大率失真斜率,则令decOptiMSE,p =decMSEV(J。p ,CurrMaxSlopeVGOP=incPSNR_LevelVGOP /LevelSize ,并令该质量包为当前最优质量包,如果关键帧包含在了两个伪GOP中,则Level—Size等于原始大小的一半,Level—Size为质量包的大小;令l^k+l,回到步骤ii)直到对array—level中的所有质量包检査完毕,进行步骤iii);iii) 输出本次循环中得到的最优质量包,更新 MS£VG0P = MS£VGOP — fifec(9; ft'MSEvoop ;iv) 更新array—level:将先前得到的最优质量包移出array—level,并放入 相应帧高一层的质量包,如果该质量包为该帧的最高质量包,则不放入任何质量 包,直至array—level为空。③计算每个FGS质量包的率失真斜率,其中对于关键帧,如果包含在两个伪 G0P中,其质量包的率失真斜率等于其在两个伪GOP中的率失真斜率的平均;其余 质量包的率失真斜率等于其在伪GOP中的率失真斜率,这些率失真斜率用于最终 的质量包调度。本发明由于采取以上技术方案,在每次解码时只需要对码流进行两次提取就 可以得到各质量包的优先级时序,比起码流任意截断的方法,本发明方法能够提 高视频的率失真性能,计算复杂度低了很多,并且还可以得到各个伪GOP的率失 真信息,这些信息可以用于SVC视频平滑重建。


图1是本发明伪G0P示意2是本发明基于像素的当前帧和参考帧之间的预测关系图具体实施方式
下面结合附图和实施例,对本发明进行详细的描述。如图1所示,针对SVC的编码结构特性,我们提出了伪GOP的概念,每个伪 GOP包含两个相邻的关键帧和之间的所有B帧。我们首先分析基于像素的误差漂移,如图2所示,显示了基于像素的当前帧 和参考帧之间的预测关系,和^分别表示参考帧A, C中原始帧和重建帧的差,和&。,分别表示相应的原始帧A, C的编解码失配值,表示当前残差帧H中 原始残差值和重建残差值之间的差,所有变量。,sc, C4,, ,和^都可以是正数或者负数。为了便于分析而不失准确性,分数像素预测的分析可由整 数像素预测的分析近似。对于当前帧B中的帧内编码像素,MSE可以表示为《加),;) (1)对于当前帧B中的前向/后向编码像素,不失一般性,假设参考帧为A, MSE为五(《Re/一》=+ 、, )2) = £(4 + < + 2~ ) a五(4) +) (2 )上式中假设 和s^,不相关并且均值为0,因此将2 &^略去。对于当前帧B中的双向编码像素,MSE为 《£(4) +1 )+ 士 )+ + £(、 ttCe,)(3)上式中假设^和f^ 、 不相关,因此将^D^,禾卩项省略,^,a^,项保留是因为、,禾p ^,是相关的并且很有可能相关的。 基于以上结果,我们进一步推导基于像素的误差漂移公式。 令A,Pyw,i^w,;^w分别表示B帧中采用帧内预观"前向预测、后向预测和双向预测的像素的百分比,P,,/V,P編,P編^0,并且A+Z^W+PfeW+ArW^L利用公式(1) ~ (3),并假设各参考帧中各种参考像素(例如参考帧A中的 前向、双向和非参考像素)的MSE相同,则B帧的MSE为=a五(《)+ (五(4)+餘i,))+Aw (五(4)+)) (4)+)++)++《)+*五K,、))=五(《)+ (P/^ + { i^w )五(《')+ (Aw + + )+ * 0^,)为了简化最后一项R、,D^,), 一个直觉的方法是使用/Vs(sl)W(《,),但是实验证明,£(4)是£(《)或者E(《,)的线性函数,因此使用近似更合适。式(4)可以近似为£(s)=£(《)+ (p何+ j ~w)+ (Pw + 士 Pw)+ )(5)为了简化,我们用五(g)和五(《)代替五(《)和五(《),最后的误差漂移公 式可以写为E(S) = E(4) + (Pyw +|;^w)E(《)+ (Av^ +|pb,wJE(《)+ 〃E(《)E(《)+ v/ (6) 式中五(s),五(《)分别表示伪GOP中B帧和它的参考帧A,C的MSE, ^表
示B帧的当前残差帧H中原始残差值和重建残差值之间的差,//, V是两个待定的系数,v用于补偿^(g)和E(《《,)之间的失配,尤其当E(fi)二o时,//和V需要由已编帧的实际失真数据估计得出。基于公式(6)建立的误差漂移失真模型,进行SVC视频FGS优先级调度,具 体的调度方法可以按如下步骤(1) 计算估计公式(6)中两个参数//, V。具体方法为先对码流进行基本层抽取和全部抽取后解码,并统计每一帧在基本层的MSE以及每个残差帧在各质 量级的£(《),同时统计出在基本层提取后的每个非关键帧的;v^M,A^,而后 对于每一个非关键帧,根据其 ^^,^^和残差帧基本层的£(《),以及该帧和 其参考帧基本层解码后的MSE,代入公式(6)计算出每一个非关键帧的A, v。(2) 为每个伪GOP中的各FGS质量包设置优先级。具体方法为根据每个质 量包对整个伪G0P平均率失真性能的影响来确定其优先级,其影响包括对所在帧 造成的非漂移的失真和由于误差漂移导致的其它帧的MSE下降。其中,所在帧的 非漂移失真即为步骤(1)中得到的残差帧在传输该质量包前后的£(《),而后根 据公式(6)算出由于误差漂移造成的其他帧的MSE下降,从而得到伪GOP的平均 MSE下降,通过循环选取造成伪G0P的MSE下降最小的质量包来得到优先级顺序及 相应的码率失真数据,具体步骤如下 用一个序列肘促^^
存放伪G0P中每一帧的MSE,将伪GOP的 MS£ra。P
初始化为基本层的MSE序列MMSa,J0..(go/ 」/Ze)], MS£s
由步骤(1)中对码流进行基本层截断解码后得到。其中, gc^」&为伪GOP的大小,用序列array—level存放当前要比较优先级的质量包, 将array—level初始化为伪GOP的第一个FGS增强层。如图1所示,array—level 初始化为[(O,l), (l,l), (2,1), (3,1), (4,1), (5,1), (6,1), (7,1), (S,l)], (*, *) 表示(帧序号,质量包序号)。②按照以下循环方法通过选择率失真斜率最大的质量包来逐步排列 array—level中各质量包的优先级,直至array—level为空;i )将PSNR-rate曲线斜率CurrMaxSlopev,初始化为0,伪GOP的平均率失 真斜率为PSNRVGOP =201og255 —10mea"(log10(MS£rao/)[l,.gop —+ (7) ii)对于array—level中的第k个质量包(frame—no, FGS—level—no),找出 这次循环中最优先的质量包,即判断第k个质量包是不是当前最优的。a)根据步骤(1)中得到的其所在帧的残差帧在传输该质量包前后的五(g),
即为该质量包对所在帧造成的非漂移的MSE下降,与当前 ^^,/(;。/)
中对应的所在帧的MSE相减得到该质量包所在帧的新MSE, 然后利用公式(6),并根据当前的MMra。P[l..(g0/7 —Wm + 1)]计算由误差漂移造成的 伪G0P中其它帧的MSE下降Adl^E,《观。如图1所示,对于处于最低时间级的质量 包(0, 1),要依次计算对高时间级的帧的影响,先根据刚算出的所在帧第O帧的 新MSE以及当前第4和第8帧的MSE代入公式(6),得到第4帧新的MSE,用第4 帧这个新算出的MSE用相同方法计算第2, 6帧的新MSE,最后计算1, 3, 5, 7 帧的新MSE,将所有新MSE与当前似化「(,[1..(^;7」& + 1)]相减即可得到 &cMS£ra。P[l..(go;7 —w'ze + l)]。而对于质量包(6, 1)由于其只影响到更高层时间级 的帧5, 7的MSE,则只需通过公式(6)计算5, 7帧的MSE变化。对于1, 3, 5, 7帧,已经是最高的时间级,则不需要计算对其它帧造成的MSE下降。b)利用MS£raOT和^fecM^^。p ,按下式计算PSNR增加,incPSNR—Level VGOp = 10wea"(log10 (M促,尸[1. — w'ze +1])) ,。、— 一 (8)—10附ea"(log!。 (MSS柳尸[1. .gop — +1] - tfecMS^g。尸[1. — w'ze +1]))如果incPSNR—LevelVGOP 〃eve/ —Wze > CurrMaxSlopeve。P ,即该质量包的率失真斜率大 于先前的最大率失真斜率,则令decOptiMSEve。p = decMSEVQ。p , CurrMaxSlopeVGOP=incPSNR—LevelVG0P /LevelSize ,并令该质量包为当前最优质量包, 如果关键帧包含在了两个伪GOP中,则Level—Size等于原始大小的一半, Level—Size为质量包的大小。令k=k+l,回到步骤ii)直到对array—level中的所有质量包检查完毕,进行步骤iii)。iii) 输出本次循环中得到的最优质量包,更新vgop — ^cQpriMS"五vQQp oiv) 更新array—level:将先前得到的最优质量包移出array—level,并放入 相应帧高一层的质量包。如果该质量包为该帧的最高质量包,则不放入任何质量 包,直至array—level为空。如图1所示,如果第一次循环最优层为(4, 1),则更 新后的array—level为[(0, 1) , (1, 1) , (2, 1) , (3, 1) , (4, 2) , (5, 1) , (6, 1) , (7, 1), (8, l)]。③计算每个FGS质量包的率失真斜率,其中对于关键帧,如果包含在两个伪 G0P中,其质量包的率失真斜率等于其在两个伪GOP中的率失真斜率的平均;其余 质量包的率失真斜率等于其在伪GOP中的率失真斜率,即在②ii) b)中得到的 incPSNR—LevelVG0P / LevelSize ,这些率失真斜率用于最终的质量包调度。
权利要求
1、 一种SVC视频FGS优先级调度方法,其包括以下步骤1) 提出一种伪GOP的概念,每个伪GOP包含两个相邻的关键帧和之间的所有B帧;2) 建立一个由误差漂移导致的失真模型,所述模型描述为e(s)=e(《)+ (/v +w)E(《)+ (/w ^e(《)喊+ v ( 1)其中,五(《)分别表示伪G0P中B帧和它的参考帧A,C的MSE, S" 表示B帧的当前残差帧H中原始残差值和重建残差值之间的差,^^,/^rf, A,w分 别表示B帧中采用前向预测、后向预测和双向预测的像素的百分比,//, V是两 个待定的系数;3) 基于公式(1)所建立的误差漂移失真模型,按如下方法对SVC视频进行 FGS优先级调度(1) 计算估计公式(1)中两个参数//, V,具体方法为先对码流进行基本层抽取和全部抽取后解码,并统计每一帧在基本层的MSE以及每个残差帧在各质 量级的£(《),同时统计出在基本层提取后的每个非关键帧的;7—,;^,A^,而后 对于每一个非关键帧,根据其 ";v^^w和残差帧基本层的五(《),以及该帧和 其参考帧基本层解码后的MSE,代入公式(1)计算出每一个非关键帧的/^, v;(2) 为每个伪GOP中的各FGS质量包设置优先级,具体方法为根据每个质 量包对整个伪G0P平均率失真性能的影响来确定其优先级,其影响包括对所在帧 造成的非漂移失真和由于误差漂移导致的其它帧的MSE下降;其中,所在帧的非 漂移失真即为步骤(1)中得到的残差帧在传输该质量包前后的£(《),而后根据 公式(1)算出由于误差漂移造成的其他帧的MSE下降,从而得到伪GOP的平均MSE 下降,通过循环选取造成伪GOP的MSE下降最小的质量包来得到优先级顺序及相 应的码率失真数据。
2、 如权利1 一种SVC视频FGS优先级调度方法,在执行步骤(2)时,具体 步骤如下 用一个序列71^^,
存放伪GOP中每一帧的MSE,将伪GOP的 MS^GOT
, MS£B。sg
由步骤(1)中对码流进行基本层截断解码后得到,其中 gc^」&为伪G0P的大小;用序列array—level存放当前比较优先级的质量包, 将array—level初始化为伪GOP的第一个FGS增强层;② 按照循环方法通过选择率失真斜率最大的质量包来逐步排列array—level 中各质量包的优先级,直至array—level为空;③ 计算每个FGS质量包的率失真斜率,其中对于关键帧,如果包含在两个伪 G0P中,其质量包的率失真斜率等于其在两个伪GOP中的率失真斜率的平均;其余 质量包的率失真斜率等于其在伪GOP中的率失真斜率,这些率失真斜率用于最终 的质量包调度。
3、如权利2所述一种SVC视频FGS优先级调度方法,在执行步骤②时,按如 下方法进行i )将PS服-rate斜率CurrMaxSlope,p初始化为0,伪G0P的平均率失真斜率为<formula>formula see original document page 3</formula>ii) 对于array—level中的每个质量包level (frame—no, FGS一leve1—no),判 断第k个质量包是不是当前最优的a) 根据步骤(1)中得到的其所在帧的残差帧在传输该质量包前后的£(《), 即为该质量包对所在帧造成的非漂移的MSE下降,与当前似<formula>formula see original document page 3</formula>中对应的所在帧的MSE相减得到该质量包所在帧的新MSE, 然后利用公式(l),并根据当前的似<formula>formula see original document page 3</formula>计算由误差漂移造成的 伪GOP中其它帧的MSE下降AcM^ra。P ;b) 然后利用Mffira。P和^cMS^^ ,按下式计算PSNR增加,<formula>formula see original document page 3</formula>如果incPSNR_LevelVGOP / /eve/ _ > CurrMaxSlopeVCi。P ,即该质量包的率失真斜率大 于先前的最大率失真斜率,则令decOptiMSEVGOP = decMSEVQ。p , CurrMaxSlopeVGOP =incPSNR_LevelVG0P / LevelSize ,并令该质量包为当前最优质量包, 如果关键帧包含在了两个伪GOP中,则Level—Size等于原始大小的一半, Level—Size为质量包的大小;令bk+l,回到步骤ii )直到对array—level中的所 有质量包检查完毕,进行步骤iii);iii) 输出本次循环中得到的最优质量包,更新 <formula>formula see original document page 3</formula>iv) 更新array—level:将先前得到的最优质量包移出array—level,并放入 相应帧高一层的质量包,如果该质量包为该帧的最高质量包,则不放入任何质量 包,直至array—level为空。
全文摘要
本发明涉及一种基于误差漂移失真模型的SVC视频FGS优先级调度方法,其包括以下步骤(1)提出一种伪GOP的概念,每个伪GOP包含两个相邻的关键帧和之间的所有B帧;(2)建立一个由误差漂移导致的失真模型,所述模型描述为E(ε<sup>2</sup><sub>B</sub>)=E(ε<sup>2</sup><sub>H</sub>)+(P<sub>fwd</sub>+1/4P<sub>Biwd</sub>)E(ε<sup>2</sup><sub>A</sub>)+(P<sup>2</sup><sub>bwd</sub>+1/4P<sub>biwd</sub>E(ε<sup>2</sup><sub>C</sub>)+μE(ε<sup>2</sup><sub>A</sub>)E(ε<sup>2</sup><sub>C</sub>)+ν;(3)根据所述误差漂移失真模型,对SVC视频进行FGS优先级调度。本发明以伪GOP为基本调度单位,通过计算伪GOP中每一个质量包对所在帧和其他帧造成的率失真性能的影响来设置其优先级。利用该方法,可以以较小的复杂度实现FGS质量包调度,尽可能的提高重建视频的主观以及客观质量。
文档编号H04N7/26GK101146229SQ20071017647
公开日2008年3月19日 申请日期2007年10月29日 优先权日2007年10月29日
发明者俊 孙, 悦 王, 文 高 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1