分享

网络技术 某种特殊编码模式

 llko168 2012-05-20
  其中Ek表示第k个封包所具有的某种特殊编码模式,而Qd,k与Rs,k分别表示第k个封包的量化失真(quantizationdistortion)及来源端(source)的位速率(bitrate)。而D与R0表示某一个画面(frame)全部之量化失真及位需求限制(或称为“位预算(bitbudget)”),而M表示一个画面中的封包数,通常R0的取得必须藉由高阶的速率控制器(ratecontroller)为之。为何要谈最佳化?因为其目的希望在给定一定速率限制下,能达到最小化期望失真值的统计目的。在不同的视频编码策略里,其最佳化的方式也略有区分,例如:在可变视频(scalablevideo)编码策略里,其最佳化必须要分层考虑基层(baselayer,BL)与强化层(enhancementlayer,EL)的问题,基于同样概念其可如式(2)A、B表示。    其中RB,s,k与RE,s,k为第k个封包的基层与强化层来源端速率(sourcerates),RB,c及RE,c即为基层与强化层之信道速率(channelrates),而RB,0与RE,0(其中R0=RB,0RE,0)则表示位速率之限制,而底线字母B、E分别表示基层与强化层。  在具错误倾向(errorprone)之通道里(即是有损通道),为达到好的效能,除了考虑来源端的行为之外,往往我们也必须考虑路径特征(例如:信道编码要求)与接收端的行为特征。为了做到这一点,我们常考虑一个点对点的最佳化最小失真模式来取代原先的单向考虑来源端的最佳化模式(也就是摒弃仅由量化错误来取得失真可能性的计算方式),其形式如式(3)。    式(3)中的E[D]表示失真期待值运算,其被用来考虑接收端的封包遗失及错误隐藏,而Rc,k则表示第k个封包的信道速率(channelrate),其单位为每信道位之位数(bitsperchannelbit);Rs,k表示来源端速率(sourcerate),其单位为每秒几位(bitspersecond,bps)。如果来源端有更多可利用的位可被配置,则编码效率虽然可以提升但却导致位串流(bitstream)可能会走样(错误抗性降低),在此信道编码(channelcoding)在此便扮演着来源端编码效能与位串流错误抗性之间的一个重要衡平角色。  在信道编码上,许多人使用的是Reed-Soloman编码(RScode)的方法。RScode为一种系统性编码(systematiccode)方法,一般而言,RScode对封包的保护能力乃依据其区块大小(blocksize)与编码速率(coderate)而定。一个RS编码的表示型态主要以RS(n,k)为主,其中k表示来源端的字符长度,而n-k为相类之字符长度。因此如果字符的位置已知的话,消去已知字符的位置便剩下相类字符位置。不管那个字符遗失,其RS(n,k)的编码速率均为。除了Reed-Soloman码之外,其它的保护码还有Tornado码。Tornado码虽然保护的效果比RS码要差一点,但其在编/解方面的效率却比RS码要好很多。而在此所谓的封包遗失的情形,可分成使用错误回复(errorrecovery)方法前或是使用错误回复方法后的封包遗失情形。一般我们在称接收端的封包遗失,往往指的是在“使用错误回复方法后”,遗失的封包仍无法藉由接收区块(block)来加以回复之情形。为了解其量化情形,我们可令使用错误回复方法后的封包遗失率为,则其定义如式(4)。    其中表示为使用错误回复方法前之封包遗失率。另外在2006年的时候,F.Zhai及Y.Eisenberg等人发展出联合编码方法(JointSource-Channelcoding,JSCC),JSCC的主要目的,在于利用于来源端及通道中加入的冗余位(redundantbits),来取得错误抗性(errorrobustness)与压缩效能之间的平衡点。JSCC的运作原理主要放在来源端及信道编码之间的位配置(bitallocation)上面,例如:T.Stockhammer及C.Buchner等人的研究。来源编码(sourcecoding)的完成,主要是基于来源与信道之间的位配置完成后,其所能得到之位预算而定。而来源编码的最佳化,可以藉由信道编码之后所剩余的残余错误计算,以模式选择(modeselection)的方式来达成。如果我们另以μ、υ来分别表示一个画面中之来源编码参数及信道编码参数之向量,则循序性的JSCC步骤有以下两个阶段:    其中E[D]表示失真期望值,而Rt则表示传送速率,Bs及Bc分别表示来源端位(sourcebits)与信道位(channelbits),而T则代表相关的传送迟延(transmissiondelay),若Tn则表示第n个画面之传送迟延,毕业论文网 T0与Ts,0则分别表示整个画面以及来源端位的传送迟延限制(transmissiondelayconstraint)。对第一阶段而言,其第n个画面的总传送迟延为Tn,而在第二阶段里面,其限制主要为来源端传送迟延(Tsn)部分。为了解决第一阶段的问题,有一些信道编码技术可供使用,对一些预编码视频(pre-encodedvideo)而言,因其来源端的编码是固定的,因此对于通道的失真及第二阶段的研究部分,在客观上便失其必要性。要特征化第一阶段的方法之一,便是使用来源端的R-D模式。但对一个区块式移动补偿(block-basednotioncompensation)视频编码而言,JSCC存有许多争议,主要导因在于这些相关重要的封包并没有一个明确的可被利用性存在(我们并不知道哪些封包是相互关连且重要的)。  另外Stockhammer及Buchner也提议了一种称为IJSCC的方法,其以联合来源端编码与信道编码的最佳化错误回复方式,取得更高错误抗性。其与传统JSCC方法的不同处,在于IJSCC利用来源端与信道编码的最佳化计算优势,作为失真期望值的计算方式并藉以研究来源端编码与信道编码之间的互动关系。有关IJSCC的相关研究可以参考M.Gallant及F.Kossentini所发表关于R-D层级编码(layeredcoding)的研究(2001),在此就不多做冗述。    视频编码与封包化    经由IP网络来传递实时视频,因封包遗失为其常态,故应用层(application-layer)的错误控制方法常经由联合来源端与信道编码方法(jointsource-channelcoding,JSCC)来加以搭配使用。其中来源端编码(sourcecoding)与前导错误修正(forwarderrorcorrection,FEC)更是常被加入错误控制之设计里面,用以缓和因封包遗失所带来的冲击。不过要在IP网络上保证实时视频质量有其一定之难度,在处理这些视频QoS的问题上面,一个通常的作法是应用错误控制策略来因应。不同的错误控制策略,其使用的方法(组件)亦可能在不同的网络层级上加以实作,并且可能被放在传送端或接收端来处理。在传送端,其可能应用的有错误修复(errorresilience)来源编码策略、应用层重传机制或是混合式的FEC方法;在接收端,其可能应用的策略主要有错误隐藏(errorconcealment)方法。不管是在接收端或传送端,每一种不同的错误控制方法都被用来处理封包遗失的问题。例如:在错误回复来源端编码策略里面,其执行错误控制的方法,是利用在来源端编码层级里面加入一些冗余封包来防止错误之扩散,并限制封包遗失所可能导致的失真情形。  本文为全文原貌    在封包交换式的网络里面,要做到错误回复一般有两种常见技术可供使用。一种是利用封包本身的不同编码机制来做到错误回复的功能,另一种是利用现有的错误修正方法来达成错误回复功能。在前者,其其错误回复的效能与每个封包的编码模式(encodenode)选择息息相关,例如使用可变视频编码或多描述编码(multipledescriptioncoding)方式,也可以达到一部份错误回复之效果;除了封包本身的编码模式选择来达到错误回复功能之外,另一种处理封包遗失的方法,便是在应用层传送层使用错误修正技术(errorcorrection)。目前这种错误修正技术有两种常见基本型态存在,一种是前导错误修正(forwarderrorcorrection,FEC)方法;另一种是自动重复要求(automaticrepeatrequest,ARQ)方法。两种方法在其错误强固性与网络流量负载(trafficload)上均有其优、缺点。  在许多观念里,因为这种错误回复机制常被放在译码端使用,所以错误回复技术也就常被认为是一种须藉助译码器所使用的后处理技术,其利用视频片段在空间与时序上之关联性,用以掌握封包的遗失状况。不过在实时串流的应用上面,ARQ比FEC较少被使用,换言之FEC-based的技术在此领域颇受青睐。甚至J.Rosenberg及H.Schulzrinne更是强力主导FEC方法成为IETF错误回复之标准规范。然而因FEC本身区块大小(blocksize)之限制,其不能完全避开封包遗失的问题。另外,FEC的使用即使在无封包遗失的情况下,亦须付出固定的使用代价,且FEC的适当使用层级必须依据通道行为的精准评估才行。此点相较于ARQ,FEC方法的确有不及之处(因ARQ可以自动适应信道的遗失特征,并只传送所遗失的封包及数量),因此在端点对端点的延迟限制无太大要求时,ARQ的方法反而会是不错的选择。一个封包式实时视频传送系统,以及不同层级所可以使用的错误控制组件如图1。  视频的编码对于频宽的节省有重大贡献,但是其必须倚靠译码器的高度复杂性运作。以一个输入的视频来说,其对移动评估(motionestimation,ME)算法而言是一种主观性的资料,其必须经过一些处理之后,输出移动向量(motionvectors,MV)及移动补偿(motioncompensation,MC)的时序(temporal)分析才能提供客观质量建立之实质帮助。如果站在信号处理的角度来看,移动补偿的时序分析区块之输出,可视为一种时序上低频与高频次频带(subband)之集合。以一个由8画面组成之GOP结构以及画面之移动向量关系而言,如图2。  图2中,我们显示了一个由8画面组成之GOP结构以及画面之移动向量关系。图示中最上层所表示的是一全画速的视频画面,其邻近之画面(frames)被分解后产生高频与低频频带(前者以虚线表示,后者以实线表示),而图中的箭头部分为移动向量(MV)。由图二可以看见,在经分解邻近画面后所产生的频带,其中时序低频对于移动向量得取得是很有帮助的。通常他们的发生速率为视频画速的一半而已,且此过程会不断重复,直到我们取得GOP内8个画面之移动向量为止。在上述例子里面,整个视频数据有四个时序延伸层(temporalscalabilitylevels),即是图二中标示的(1)~(4)。这些不同层级对视频重建有不同之贡献,举例来说,视频画速只有全画速之1/8时,那只需第一层视频数据(level(1))即可重建视频。相对的如果画速达全画速之1/4,那视频的重建就会需要第一层及第二层协力完成。同理,如果视频画速达到全画速1/2,那所需要的视频数据就要更多(即是需第一层、第二层及第三层时序数据)才能重建视频。  对于已压缩的视频位串流而言,可以依据GOP-based的方式加以封包化。而对一个给定GOP的位串流而言,其在封包化之前首先会先被重新排列,使得GOP的移动向量可以被排放在位串流得起始之处,紧接在移动向量之后者,乃已编码的次频带样本(subbandsamples)。经过适当排列之后的位串流,接下来才会被封包化成512-byte左右大小的切割封包。此切割封包中除了含有GOP样本之外,还涵盖了4-byte的应用层标头(application-layerheader),用以表示GOP号码与GOP内封包序号。在标题后面的负载区(payload)则被用以存放已压缩的视频数据,其可存放之空间为508bytes。换句话说,视频之频宽实际可负载率约为99.22%左右(即508/512*100%)。在GOP的运算里面,其传送能力等级(即是powerlevel)之决定乃在于其速率失真(rate-distortion)特征。  因为在IP通信的过程中封包遗失的情形无法完全避免,对实时串流而言,封包的遗失影响程度不一,而对这些封包遗失的修补作法一般有两种常见的技术可供使用,一种为重新传送技术(retransmission),另一种为错误回复(errorconcealment)技术,这些技术我们稍后再做说明。    “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多