1、一种基于分层率失真优化的容错性视频转码算法摘要: 容错性视频转码能够在已压缩视频流中嵌入容错性工具,以增强视频流面向无线信道的抗误码能力。但是容错性工具的嵌入在降低失真的同时也会增加码率,因此需要进行率失真优化。针对这一问题,本文提出了一种基于分层率失真优化的容错性转码算法。该算法通过在帧层和宏块层分别对重同步标记的插入和帧内宏块的刷新进行不同粒度的优化来提高算法的灵活性,通过在帧层考虑帧内宏块刷新、帧内预测和运动矢量预测的影响来提高算法的精确性,通过在宏块层减少候选模式的数量来降低算法的复杂度。实验表明本算法与基于单层率失真优化的算法相比,信噪比可获得 0.6-1.1dB 的增益,复杂度最多
2、可降低 25。关键字: 视频转码;容错性;率失真优化;重同步标记插入;帧内宏块刷新Error Resilient Video Transcoding Based on Layered Rate Distortion OptimizationAbstract: Error resilient video transcoding can insert error resilient tools in the compressed video to enhance error resilience of the video over wireless channels. However the er
3、ror resilience insertion increases bit rate while reducing distortion. So the rate distortion optimization is required. In order to solve this problem, this paper proposes an error resilient video transcoding algorithm based on layered rate distortion optimization. This algorithm improves the flexib
4、ility by performing rate distortion optimization with different granularity for synchronization marker insertion and intra macroblock refresh on the frame layer and macroblock layer respectively. Moreover this algorithm improves the accuracy by accounting for the intra refresh, intra prediction, mot
5、ion vector prediction on the frame layer and reduces the complexity by reducing the candidate macroblock modes on the macroblock layer. The simulation results show that the proposed algorithm improves PSNR by 0.6-1.1dB and reduces the complexity by about 25% compared with the algorithms based on sin
6、gle layer rate distortion optimization. Key words: video transcoding; Error resilient; rate distortion optimization; synchronization marker insertion; intra macroblock refresh1 引言由于网络环境的异构性(如信源的异构性、信道的异构性、终端的异构性等) ,通用多媒体存取成为一个亟待解决的问题。视频转码正是解决这一问题的有效技术 1-3。狭义的视频转码是指将已压缩的视频流从一种格式(如空间分辨率、帧率、码率等)转换为另一种格
7、式的操作。广义的视频转码则包括在已压缩视频流中嵌入信息(如数字水印、容错性工具等)的操作。容错性视频转码就是指在已压缩视频流中嵌入容错性工具的转码 1-3。容错性视频转码能够有效增强视频流面向无线信道的抗误码能力,因此对于无线异构网络环境下的通用多媒体存取具有重要意义,在移动娱乐、移动监控等领域具有广泛的应用价值。基本的容错性视频转码分为时域容错和空域容错两种 4-7。前者主要是对输入视频流进行帧内宏块刷新,后者主要是对输入视频流插入重同步标记。虽然容错性转码可以有效地增强视频流的抗误码能力,降低无线环境下解码端的视频重建失真,但是同时也会增加码率:帧内宏块的刷新则会由于减少当前帧与参考帧之间
8、的预测而增加时域上的冗余;重同步标记的插入会增加额外的头信息,同时也会由于禁止重同步单元之间的预测而增加空域上的冗余。因此利用率失真优化在失真与码率之间取得平衡是容错性转码的关键问题。近年来已有研究人员对率失真优化与容错性转码的结合进行了有益尝试。文献8针对已有算法的不足提出了一种基于帧层率失真优化的容错性转码算法,将帧内宏块刷新率和重同步标记插入率同时作为优化变量。文献9则提出了一种基于宏块层率失真优化的容错性转码算法,但只对帧内宏块的刷新进行优化,对重同步标记的插入则通过设定阈值来选择。上述算法使得容错性转码的效率有所提高,但仍然在以下方面存在着问题:(1)灵活性:文献8和9提出的帧层和宏
9、块层算法均是针对单一层次的,因此重同步标记的插入和帧内宏块的刷新难以在不同层次进行不同粒度的优化。这使得算法的灵活性降低。 (2)精确性:在文献8提出的帧层算法中:对于失真模型,没有考虑帧内宏块刷新对信源失真的影响;对于率模型,没有考虑帧内预测和运动矢量预测对比特数的影响;对于拉格朗日乘子,没有给出具体的计算公式。这使得帧层算法的精确性降低。 (3)复杂度:在文献9提出的宏块层算法中,没有利用转码输入视频的信息减少率失真优化候选模式的数量。这使得宏块层算法的复杂度增高。针对上述不足,本文提出了一种基于分层率失真优化的 H.264 容错性转码算法,首先在帧层对重同步标记的插入,即片的长度进行粗粒
10、度的率失真优化,然后在宏块层对帧内宏块的刷新,即宏块的编码模式进行细粒度的率失真优化,从而提高算法的灵活性。在进行帧层率失真优化时,充分考虑帧内宏块刷新、帧内预测和运动矢量预测的影响,并推导出具体的拉格朗日乘子公式,从而提高帧层算法的精确性。在进行宏块层率失真优化时,充分利用转码输入视频流的当前帧信息和转码输出视频流的前一帧信息,减少率失真优化候选模式的数量,从而降低宏块层算法的复杂度。2 帧层率失真优化本文借鉴文献10中的宏块层信源信道联合率失真模型,建立如下式所示的帧层信源信道联合率失真模型: )()(minarg* sRsDsFFR(1))(0sFR其中 s,s 0 分别为当前帧的片长度
11、和帧长度,D FR (s)为当前帧片长度为 s 时的信源信道联合总失真,R FR (s),R FR (s0)和R FR (s)分别为当前帧片长度为 s,s 0 时的比特数以及前者相对于后者的比特增益, FR 为当前帧的拉格朗日乘子。其中当前帧未出现误码丢包时,解码端不进行错误掩盖,信源信道联合总失真 DFR (s)由信源失真和扩散失真组成;当前帧出现误码丢包时,解码端进行错误掩盖,信源信道联合总失真 DFR (s)则由掩盖失真组成。因此式(1)所示的帧层信源信道联合率失真模型可以进一步表示如下:(2)()()(1min(arg 0,* sRspsps FFRcFFRs ) 其中 p(s)为当前
12、帧片长度为 s 时的丢包率,D FR, s,D FR, p 和 DFR, c 分别为当前帧的信源失真、扩散失真和掩盖失真。需要指出的是,基于帧层和基于宏块层的率失真优化是两个相互影响的过程:对片的长度进行帧层优化时,需要先确定宏块的编码模式;而对宏块的编码模式进行宏块层优化时,又需要先确定片的长度。为了解决这一悖论,本文采取了宏块预刷新策略,其基本思想是:在对片长度进行帧层优化之前,根据宏块的刷新前率失真函数值进行预刷新,刷新前率失真函数值越大,则预刷新的可能性就越大。由于宏块刷新前后变化的主要是扩散失真和比特数,因此刷新前率失真函数的定义如下:MBpBMRDJ,(3)其中,D MB, p,R
13、 MB 和 MB 分别为宏块的刷新前扩散失真、比特数和拉格朗日乘子。D MB, p 根据文献10中的扩散失真公式由转码输入流中的运动矢量计算得到, RMB 由转码输入流解码得到, MB 则由转码输入流中的量化步长计算得到。预刷新的步骤如下:首先根据式(3)计算前一帧实际刷新宏块的刷新前率失真函数值,求得其平均值 ;然后根据式(3)计算当前帧帧间宏块的刷新前率失真函数值 ;MBJ MBJ如果 大于 ,则此帧间宏块被预刷新为帧内宏块。需要指出的是,预刷新策略只是对编码模式的预估计,并不是对宏块进行实际编码。2.1 失真模型由式(2)可知失真模型由 DFR, s,D FR, p,D FR, c 和
14、p(s)构成,其中掩盖失真 DFR, c 可以基于转码输入流中的运动矢量根据文献10中的掩盖失真公式计算得到;丢包率 p(s)可以根据文献11 中的误码率/ 丢包率转换公式和文献12中的片长度/丢包率曲线计算得到;对于帧间宏块,扩散失真 DFR, p 可以基于转码输入流中的运动矢量根据文献10 中的扩散失真公式计算得到;对于帧内宏块,扩散失真 DFR, p 则可以通过采用受限帧内预测来消除。因此下面主要讨论信源失真 DFR, s。由于预刷新并不进行实际编码,当前帧信源失真 DFR ,s 需要通过文献13 中的信源率失真模型求得。当前帧转码前后的信源率失真模型分别如下所示:1,21,logsFR
15、FRba(4)(5)2,22,lsFRFRD其中 RFR,1 和 RFR,2 分别为当前帧转码前后的比特数,b FR,1 和 bFR,2 分别为当前帧转码前后的方差,D FR,s,1 和 DFR,s,2 分别为当前帧转码前后的信源失真, aFR 为当前帧信源率失真模型参数。由式(4) (5)可得:(6)2,1,2,1logsFRsFRDb由式(6)进一步推导可得:(7)2,11,2, FRsFsFRbD其中 RFR,1/RFR,2 由转码前后的码率之比得到, DFR,s,1 由如下所示的信源失真模型 13求得:(8)nMBsFRQD021,1,其中 QMB,1 为转码前当前帧宏块的量化步长,由
16、转码输入流解码得到,n 为当前帧宏块数目。当前帧转码前的方差 bFR,1 由当前帧未刷新宏块的方差和预刷新宏块的刷新前方差构成,两者均可以由转码输入流解码得到。当前帧转码后的方差 bFR,2 则由当前帧未刷新宏块的方差和预刷新宏块的刷新后方差构成,其中后者由于预刷新并不进行实际编码需要根据前一帧刷新宏块刷新前后的方差估计得到。基于上述分析,b FR,1 和 bFR,2 的计算公式如下所示:(9)AMBrntABFRbbei,1, trai,2,(10)inter,a,i,MBAMBnterABbb其中 A 表示预刷新宏块的集合,b MB 为当前帧未刷新宏块的方差, bMB,inter 和 bM
17、B,intra 分别为当前帧预刷新宏块刷新前后的方差, 和 分别为前一帧刷新宏块刷新inter,Bintra,前后方差的平均值。b MB,b MB,inter 和 由转码输入流解码计算得到, 由前itr,M intra,MB一帧实际编码计算得到。将式(8) (9) (10)代入式(7)就可以求得 DFR,s,2,也就是式( 2)中的 DFR, s。2.2 率模型由式(2)可知率模型由 RFR (s0)和R FR (s)构成。其中当前帧片长度为 s0 时的比特数RFR (s0)由转码后的目标码率得到。下面主要讨论片长度为 s 时相对片长度为 s0 时的比特增益R FR (s)。正如文献12所分析
18、的,片的长度越小,片的数量就越多,而片结构会增加额外的片头信息,同时也会禁止片之间进行预测,因此由片数增加而导致的比特增益主要由两部分构成:片头增加的比特数和片间预测(包括帧内预测和运动矢量预测)被禁止而增加的比特数。R FR (s)的计算公式如下所示:(11)MB0)(RnsRheadF其中 Rhead 为视频编码标准中片头的比特数,s 0 /s 为当片长度为 s 时一帧所包括的片的数目, 为前一帧中宏块由于片间预测被禁止而增加的比特数的平均值,n 为当前帧片MB间预测被禁止的宏块的数目,也就是与参考宏块处于不同片的宏块的数目。n 的计算公式如下所示:(12)MBn如果当前宏块与参考宏块之间
19、所有宏块的比特数之和大于片长度,那么此宏块与参考宏块处于不同片内。因此 nMB 的取值如下:(13)sRrnFMBLiiFRiiB1,2,1,0其中 ri 为宏块 i 转码前的比特数,由转码输入流解码得到;L 为视频一行所包括的宏块数目,由空间分辨率参数决定。2.3 拉格朗日乘子文献10已经证明了在信道丢包的情况下,拉格朗日乘子 FR 满足下列关系:0,)(1FRFRsp(14)其中 为没有信道丢包时当前帧的拉格朗日乘子。由文献13 中的证明可知:0,FR2,0,dDFRsFR(15)将式(5)代入式(15)可进一步推导得到:FRsFRaln2,0,(16)其中 aFR 可由式( 4)进一步推
20、导得到:1,21,logsFRFRDba(17)其中 RFR,1 由转码输入流解码得到,D FR,s,1 和 bFR,1 由式( 8) (9)计算得到。2.4 片长度的选择由于片长度是灵活变化的,并不像编码模式一样有具体的候选集。针对这一问题,本文采取了片长度预选择策略,其基本思想是首先求得帧层率失真函数取极小值时的片长度,即预选择的最优片长度,然后以此片长度为中心确定一个有限的候选集,最后基于此候选集进行最终的片长度优化选择。根据上述分析,首先根据下式求式(2)中帧层率失真函数取极小值时的片长度,其中与片长度 s 相关的变量为丢包率 p(s)和比特增益R FR (s): 0)()(1( 0,
21、 dsRDDpd FFRcFFsR(18) 对于丢包率 p(s),由于与片长度 s 具有近似线性关系 12,因此可以根据下式近似计算:21)(kp(19)其中 k1 和 k2 是丢包率模型参数,可以根据文献 11中的误码率 /丢包率转换公式和文献12中的片长度 /丢包率曲线计算得到。对于比特增益R FR (s),由于片数目 s0 /s 越大,与参考宏块处于不同片的宏块数目 n就越大,因此可以将 n 与 s0 /s 近似为正比关系。所以 RFR (s)可以根据下式进行近似计算:(20)MB030)(sksRheadF 其中 k3 是 n 与 s0 /s 之间正比关系的参数,可以根据前一帧或前若干
22、帧的数据统计得到。将式(19) (20)以及(14)代入(18)进行求导可得到预选择的最优片长度 s: 01230,20,1 RkksRDk MBheadFRFpFRscFR 00,1 302 sk FRpFRscFRMBhead(21)最后以 s 为中心,将 s、s+ 10、s+20、s10、s20 作为候选集进行率失真函数计算,选取最小函数值的片长度为最终的最优片长度。3 宏块层率失真优化与帧层信源信道联合率失真模型类似,宏块层信源信道联合率失真模型如下所示 10:)()(minarg* mRDMBMB)()(1 , mRDspsp MBcBps (22)其中 m 为当前宏块的编码模式,D
23、 MB (m),D MB, s (m),D MB, p (m)和 DMB, c (m)分别为当前宏块的总失真、信源失真、扩散失真和掩盖失真,R MB (m)为当前宏块的编码模式为 m时的比特数, MB 为当前宏块的拉格朗日乘子。由文献10可知,在信道丢包的情况下拉格朗日乘子 MB 满足下列关系:0,)(1MBMBsp(23)其中 MB,0 为没有信道丢包时当前宏块的拉格朗日乘子,可以根据 H.264 参考模型中的定义由量化步长计算得到。由于丢包率 p(s)和掩盖失真 DMB, c 与宏块编码模式无关,因此将式(23)代入式(22)后可以简化为:)()(1)()(1minarg 0, mRspm
24、Ds MBpMBsB )(0, RpsMB(24)为了降低宏块层算法的复杂度,需要在对宏块进行转码之前减少率失真优化候选模式的数量。对于转码前的帧内宏块,不需要考虑刷新,因此候选模式可以仍然限制为帧内模式;对于转码前的帧间宏块,需要考虑刷新,因此候选模式的限制需要比较转码后帧内和帧间模式的率失真函数值来确定。而宏块在转码前可利用的信息主要来自两方面:转码输入流中当前宏块转码前的率失真信息和转码输出流中前一帧对应宏块转码后的率失真信息。对于转码前的帧间宏块而言,前者蕴涵了转码后帧间模式的率失真信息,而后者蕴涵了转码后帧内模式的率失真信息。因此综合利用这两方面的信息,减少候选模式的数量是降低宏块层
25、算法复杂度的有效方法。下面分别对转码后帧内和帧间模式的率失真函数进行分析。3.1 帧间模式率失真函数对于转码前的帧间宏块,转码后帧间模式的率失真函数如下所示:(25))()()( inter2,0,inter2,inter2,inter mRmDJ MBpMBsMB 其中 minter 为当前宏块转码后的帧间模式,D MB,s,2(minter)、D MB,p,2(minter)和 RMB,2(minter)分别为当前宏块转码后模式为 minter 时的信源失真、扩散失真和比特数。由于帧间模式的运动矢量可以从转码输入流中解码得到,因此 DMB,p,2(minter)可以直接根据文献10中的扩散
26、失真公式计算得到。下面主要讨论 DMB,s,2(minter)和 RMB, 2(minter)。根据文献13中的宏块信源失真模型可知:(26)21,inter1,inter2, )()(MBsMBsMBQ其中 DMB,s,1(minter)为当前宏块转码前模式为 minter 时的信源失真,Q MB,1 和 QMB,2 分别为转码前后当前帧宏块的量化步长。D MB,s,1(minter)满足如下所示的信源率失真模型:(27)inter1,2inter1, log)(DbaRsMBBMB其中 RMB,1(minter)为当前宏块转码前的比特数, aMB 为当前宏块信源率失真模型参数,bMB,in
27、ter 为当前宏块模式为 minter 时的方差。由式(27)可得:(28)MBamRsMBbDinter1,2)(inter1,其中 RMB,1(minter)和 bMB,inter 可以从转码输入流中解码计算得到,a MB 则基于已实际编码宏块的数据根据 H.264 参考模型中的线性衰退模型预测得到。将式(28)代入(26)可求得 DMB,s,2(minter),而 RMB,2(minter)的计算公式如下:(29)inter2,inter2, log)(bRsMBBMB将式(26) (29)代入式(25)即可求得 Jinter。3.2 帧内模式率失真函数对于转码前的帧间宏块,转码后帧内模
28、式的率失真函数如下所示:(30))()()( intra2,0,intra2,intra2,intra mRmDJ MBpMBsMB 其中 mintra 为当前宏块转码后的帧内模式,D MB,s,2(mintra)、D MB,p,2(mintra)和 RMB,2(mintra)分别为当前宏块转码后模式为 mintra 时的信源失真、扩散失真和比特数。由于帧间宏块的运动矢量可以从转码输入流中解码得到,因此可以确定当前宏块在前一帧的对应宏块,从而获得其提供的帧内模式率失真信息。D MB,p,2(mintra)可以通过采用受限帧内预测来消除,因此下面主要讨论 DMB,s,2(mintra)和 RMB
29、,2(mintra)。由于当前宏块的运动搜索以 44 块为最小单位,所以获取对应宏块的率失真信息也以44 块为单位。如果对应 44 块进行了帧内编码,则将其在最优帧内模式时的信源失真、方差作为帧内模式率失真信息;如果对应 44 块没有进行帧内编码,则将其对应 44 块在帧内模式时的信源失真、方差作为帧内模式率失真信息。将上述获取的对应 44 块在帧内模式时的信源失真、方差记为 、)(intra2,mDsB,则 DMB,s,2(mintra)和 RMB,2(mintra)分别通过下式计算得到:intra,Bb(31)1602,intra2,intra2,BBssMB QD(32)intra2,1
30、60itr,2intra2, log)( mbmRsMBBMB其中 和 分别为当前 44 块和前一帧对应 44 块的量化步长。2,BQ,将式(31) (32)代入式(30)就可以求得 Jintra。3.3 候选模式的选择根据式(25) (30)分别求得的转码后帧间模式和帧内模式的率失真函数值 Jinter 和Jintra,可以对候选模式进行选择。由于 Jintra 是基于前一帧对应宏块的信息得到的,因此当前宏块与对应宏块的时域相关性越强, Jintra 的误差就越小;反之,误差则越大。基于上述分析,实际的帧内模式率失真函数值应当落在一个以 Jintra 为中心、以误差为半径的区间内。所以候选模
31、式的选择可以基于以下思路进行:如果 Jinter 大于 Jintra 区间的最大值,则进行刷新,候选模式限制为帧内模式;如果 Jinter 小于 Jintra 区间的最小值,则不进行刷新,候选模式限制为帧间模式;如果 Jinter 落在 Jintra 区间内,则无法判断是否进行刷新,候选模式为所有模式。对于当前宏块而言,转码前帧间模式的差分系数表征了当前宏块与对应宏块的时域相关性:系数越小,相关性越强,J intra 区间半径也就越小;反之,相关性越弱,Jintra 区间半径也越大。因此可以以 44 块中的非零系数比 B 表征此时域相关性和区间半径。候选模式选择的具体步骤如下所示:(1)根据下
32、式分别计算最大值 、 :)(intra2,mDsMB)(intra2,RM(33) 1602,intra2,intra2, 1)(B BBssMB QmDintra2,160itr,2intra2, )(log)( mDbRsMBMBMB(34)(2)根据下式分别计算最小值 、 :)(intra2,mDsMB)(intra2,RMB(35) 1602,intra2,intra2, 1)(BBssMB QmDintra2,160itr,2intra2, )(log)( mDbRsMBMBMB(36)(3)根据下式分别计算 的最大值 和最小值 :intraJintraJintraJ(37))()(
33、itr2,0,itr2,intra mRmDMBsMB(38)intra,intra,itrJs(4)如果 ,则候选模式限制为帧内模式;否则,如果 ,则intraiter intraiterJ候选模式限制为帧间模式;否则,则候选模式为所有模式。4 实验结果及讨论我们基于H.264 JM12.2参考模型和空域转码结构 2,对本文提出的容错性转码算法、文献89中的容错性转码算法以及JM12.2 参考模型中的非容错性算法进行了测试。实验采用ITU推荐的3G 无线视频通用仿真测试环境 14,无线信道误码使用六种错误模板来模拟实现,误码率分别为9.3e-3、2.9e-3、5.1e-4、1.7e-4、5.
34、0e-4 、2.0e-4 ,测试序列使用Hall Monitor、 Coastguard、 Foreman、 Glasgow、 Paris等五个测试序列,序列与模板的对应关系根据文献14 中表4设置,其中模板1和2针对的是流媒体型业务,分别进行了 3次和2次重传,模板36针对的是会话型业务,不进行重传。转码输出序列的分辨率、帧率、码率根据文献14中表 1设置,转码输入序列的分辨率、帧率与输出序列相同,码率则为输出序列的两倍。测试序列的编码帧数均为100帧,不使用多参考帧运动预测,均采用IPPP.的编码结构和一片一包的打包策略,解码端启用误码掩盖策略。每组实验均采用文献14中表3给出的10个错误
35、起始位置进行10次测试。实验所用的机器配置为Pentium 4 3.0GHz CPU、1.00GB内存。表1给出了每个测试序列无误码条件下的原始信噪比、10次误码测试的平均信噪比和每个测试序列的转码时间。其中算法1、2、3、4分别表示本算法、帧层算法 8、宏块层算法 9 和 JM12.2参考模型算法。由表 1可以看出,与JM12.2 参考模型算法相比,本算法、帧层算法和宏块层算法无误码条件下的原始信噪比分别有约0.56dB、0.62dB 和0.45dB的降低,而10次误码测试的平均信噪比则分别有约3.71dB、2.75dB和3.19dB的增益。这主要是因为本算法、帧层算法和宏块层算法在视频流中
36、嵌入了额外的容错性工具,从而导致在无误码条件下信噪比降低,而在误码条件下信噪比增高。由表1还可以看出,除了Glasgow序列,本算法10次误码测试的平均信噪比始终保持最优,与帧层算法和宏块层算法相比分别有约1.11dB和 0.62dB的增益。本算法相对于帧层算法的增益主要来源于在帧层率失真模型中考虑帧内宏块刷新、帧内预测和运动矢量预测的影响和以宏块层的模式优化选择代替帧层的模式优化选择,相对于宏块层算法的增益则主要来源于以基于率失真优化的片长度选择代替基于固定阈值的片长度选择。通过进一步分析,我们可以发现:与帧层算法相比,本算法对Hall Monitor序列(会话型)的提升最大,有约2.85d
37、B。这是因为对于Hall Monitor这种大部分内容为静止背景,小部分内容为运动物体的序列,仅在帧层进行模式选择难以精确地对小部分运动物体进行帧内模式刷新,因而当运动物体出现误码时会导致信噪比的显著下降。与宏块层算法相比,本算法对Foreman序列(流媒体型)的提升最大,有1.05dB,但是对于Foreman 序列(会话型)的提升则相对低一些,只有0.45dB。这是因为在仿真实验中,宏块层算法所取的片长度选择阈值,是文献12中基于Foreman 序列(会话型)给出的推荐值,因此宏块层算法的性能对于Foreman序列(会话型)较好,对于Foreman序列(流媒体型)则较差。这正说明宏块层算法的
38、适应性较差,而本算法则能在不同的测试条件下均保持较好的性能。与帧层算法和宏块层算法相比,本算法对Glasgow 序列均只有略微的提升。这是因为Glasgow序列存在频繁的场景切换 (由30f/s转为7.5f/s后100帧中包括13帧场景切换帧),本身已具有较强的容错性,进一步提升的空间较小。除了信噪比,由表1还可以看出,本算法的转码时间与宏块层算法相比减少了约25,与帧层算法基本相当。这是因为宏块层的率失真优化需要进行实际编码,而帧层的率失真优化并不需要,所以复杂度主要集中在宏块层,而本算法通过重用信息减少了宏块层率失真优化中候选模式的数量,降低了宏块层算法的复杂度,因此本算法的转码时间与宏块
39、层算法相比能有较明显的减少,与帧层算法相比则基本相当。图1给出了Hall Monitor序列(会话型)和Foreman序列(流媒体型)的单帧信噪比,两者分别是在错误模板4和1下进行10次测试得到的平均值。由图1我们可以发现,在误码条件下本算法的单帧信噪比也基本上保持最优。图2和图3比较了Hall Monitor序列(会话型)和Foreman序列(流媒体型)解码重构图像的主观质量。由图2和图3我们可以看出,本算法的解码重构图像具有较好的主观质量,既通过精确的帧内模式刷新避免了误差扩散导致的黑斑和阴影,又通过适当的片长度选择避免了丢包导致的掩盖失真。5 结论针对现有基于单层率失真优化的容错性视频转
40、码算法在灵活性、精确性、复杂度方面的不足,本文提出了一种基于分层率失真优化的容错性视频转码算法。该算法通过在帧层和宏块层分别对重同步标记的插入和帧内宏块的刷新进行不同粒度的优化来提高算法的灵活性,通过在帧层考虑帧内宏块刷新、帧内预测和运动矢量预测的影响来提高算法的精确性,通过在宏块层减少候选模式的数量来降低算法的复杂度。仿真实验结果表明,本算法的平均信噪比与基于帧层率失真优化的算法 8和基于宏块层率失真优化的算法 9相比有较为显著的提高,并且对于不同特征的序列始终保持最优,同时本算法的复杂度与宏块层算法相比降低了约25,与帧层算法基本相当。作为最新一代视频编码标准,H.264提供了一些新的容错
41、工具,如灵活的宏块排序FMO等,因此在下一步的工作中我们将尝试在基于率失真优化的容错性转码框架中引入这些新的工具。表1. 信噪比和转码时间的比较模板 1/3/5 模板 2/4/6图像序列 算法原始信噪比(dB)平均信噪比(dB)原始信噪比(dB)平均信噪比(dB)运行时间(s)1 41.16 37.323 41.07 38.251 8.085Hall Monitor会话型 2 41.29 34.604 41.27 35.219 7.9883 40.99 36.775 40.98 37.560 11.7654 41.43 31.866 41.43 34.715 11.8131 33.70 29.
42、989 33.51 29.037 11.7972 33.68 29.433 33.67 27.833 11.2023 33.75 29.691 33.59 28.623 15.625Coastguard流媒体型4 34.10 26.113 34.10 23.794 15.8201 34.45 30.551 34.50 31.092 12.6112 33.92 29.664 33.93 30.270 12.4663 34.68 30.264 34.69 30.602 16.637Foreman会话型4 35.31 26.465 35.31 26.546 16.9121 34.42 30.557
43、34.23 29.340 11.7902 34.37 29.925 34.28 28.946 11.4113 34.84 29.277 34.58 28.591 16.299Foreman流媒体型4 35.31 25.229 35.31 22.596 16.3291 28.77 27.201 28.41 26.443 11.3612 28.76 27.162 28.34 26.351 10.8503 28.86 27.177 28.47 26.380 16.102Glasgow流媒体型4 29.15 25.694 29.15 24.840 16.2521 31.81 28.269 31.82
44、28.560 39.1092 31.89 27.829 31.85 27.912 38.3003 31.88 27.603 31.92 27.790 52.637Paris会话型4 32.00 26.788 32.00 27.377 54.82632.033.034.035.036.037.038.039.040.041.00 10 20 30 40 50 60 70 80 90帧 号信噪比(dB)本 算 法帧 层 算 法宏 块 层 算 法JM12.2算 法(a) Hall Monitor 序列(会话型)21.023.025.027.029.031.033.035.00 10 20 30 40
45、 50 60 70 80 90帧 号信噪比(dB)本 算 法帧 层 算 法宏 块 层 算 法JM12.2算 法(b) Foreman 序列(流媒体型)图 1. 单帧信噪比的比较(a) 原始图像 (b) 帧层算法(c) 宏块层算法 (d) 本算法(e) JM12.2 算法图 2. Hall Monitor 序列主观质量的比较(a) 原始图像 (b) 帧层算法(c) 宏块层算法 (d) 本算法(e) JM12.2算法图 3. Foreman序列主观质量的比较参考文献:1 Vetro. A, Christopoulos. C, and H.F. Sun. Video transcoding arch
46、itectures and techniques: an overview. IEEE Signal Processing Magazine, 2003, 20 (2): 18-292 I. Ahmad, XH. Wei, Y. Sun et al. Video transcoding: an overview of various techniques and research issues, IEEE Transactions on Multimedia, 2005, 7 (5): 791-043 余圣发, 陈曾平, 庄钊文. 针对网络视频应用的视频转码技术综述. 通信学报, 2007,
47、28 (1): 111-1184 De los Reyes, G, Reibman, A.R, Chuang, J.C, et al. Video transcoding for resilience in wireless channels. In: Proceedings of International Conference on Image Processing (ICIP98), Chicago, USA, 1998: 338-3425 S. Dogan, A. Cellatoglu, M. Uyguroglu, et al. Error-resilient video transc
48、oding for robust internetwork communications using GPRS. IEEE Transactions on Circuits and Systems for Video Technology, 2002, 12(6): 453-4646 H.-J. Chiou, Y.-R. Lee, and C.-W. Lin. Content-aware error-resilient transcoding using prioritized intra-refresh for video streaming. Journal of Visual Communication and Image Representation, 2005, 16(4): 563-5887 Sertac Eminsoy, Safak Dogan, and Ahmet M. Kondoz. Transcoding-ba