实现视频数据传送的方法、装置及系统的制作方法

文档序号:7970069阅读:141来源:国知局

专利名称::实现视频数据传送的方法、装置及系统的制作方法
技术领域
:本发明涉及通信
技术领域
,尤其涉及一种视频数据传送的实现方案。技术背景随着移动通信系统和IP网络的快速发展,视频通信正将逐步成为通信的主要业务之一。ITU-T(国际电信联盟)继制定了H.261、H.263、H.263+及H.264等视频压缩标准。其中,所述的H.264视频压缩编码标准已经逐渐成为多媒体通信中的主流标准。所述的H.264标准能够更加有效地提高视频编码效率,以及其对网络的适配性。由于在IP网络上,相应的如视频、音频等多媒体实时应用基本均为采用RTP协议传送,因此,基于H.264等编码标准的数据在IP网络上传送的过程中,通常也采用RTP(实时传送协议)协议实现。当然,在IP网络中,根据实际的数据传送需求,也可以采用其他协议对经压缩编码后的视频数据进行封装传送。所述RTP协议在结构上可以适用于针对不同的媒体数据类型的传送,只是对于各种不同的高层协议,例如,H.261、H.263、MPEG-1/-2/-4、MP3等视频编码标准协议,需要采用不同的RTP净荷打包协议(Payloadpacketization/encapsulationprotocols),即采用不同的RTP去于装打包方法;例如,对于H.264编码标准,可以采用IETF(InternetEngineeringTaskForce,英特网工程特别工作组)标准作为视频数据在IP网络上传送过程中依据的标准。以H.264编码标准为例,相应的基于RTP协议的视频数据传送处理过程具体包括首先,将视频比特流按照一定的规则分割形成NALU(NetworkAbstractionLayer,网络抽象层单元)流,例如,可以将一帧图像作为一个NALU,也可以将一个Slice(条带)作为一个NALU;然后,根据和应用相关的封装打包策略,将NALU流封装打包形成RTP数据包流;在RTP数据包中,头信息之后就是NALU数据区,如果一个RTP数据包封装有多个NALU,则各NALU需要首尾相接排列,每个NALU占据一段连续的比特,每个NALU的第一个字节是NALU头信息字节;在RTP数据包的最后,根据需要还可以设置相应的可选的填充数据比特。对于其他编码标准,如H.261、H.263标准等,在传送过程中是不涉及所述的NALU的概念,但相应的视频数据传送过程与上述基于H.264标准的视频数据传送过程类似,即在数据传送过程中首先需要将压缩编码后的数据进行分块,之后再将分块后的数据采用IP网络中应用的协议(如RTP协议)依次进行封装传送。由于在IP网络和无线网络中均存在丢包的问题,而丢包现象的出现对视频数据传送产生的不利影响显而易见,因此,克服丟包产生的不利影响是保证视频数据传送质量重要因素。然而,在上述视频数据传送处理过程中,并未采用抗丢包处理策略。这样,当发生丢包时,在接收端很可能导致无法解码,从而无法获得相应的重构视频数据。因此,在IP网络中,现有技术中提供的视频数据传送处理方案根本无法保证视频数据的传送质量。
发明内容本发明的目的是提供一种实现视频数据传送的方法、装置及系统,以有效克服网络中的丢包现象对视频数据传送造成的不利影响,从而可以使得网络中视频数据的传送质量得到提升。本发明的目的是通过以下技术方案实现的本发明提供了一种实现视频数据传送的方法,包括对当前批次的待传送的视频数据进行压缩编码,获得压缩编码后的多个数据块;对所述多个数据块进行纠错编码处理,获得相应的校验块;对所述数据块和校验块进行交织处理,并将交织处理后的数据块和校验块封装成数据包后发送。所述的纠错编码包括对所述批次中的各个数据块进行分组,并将所得的各组数据块分别进行纠错编码处理,分别获得一组对应的校验块,每组数据块和对应的一组校验块形成一个扩展块组。本发明所述方法中,各个所述的扩展块组中含有相同数目的数据块,以及相同数目的校验块,且所述扩展块组中的每个数据块的长度相等,每个校验块的长度相等,数据块和校验块的长度相等。所述的方法还包括将每个扩展块组中的数据块和校验块按照数据块在前,校验块在后的顺序用非负整数顺序编号,且所述的交织处理包括将所述的各个扩展块组中的序号相同的数据块,或者校验块组成一个交织块组,且每个交织块组中的数据块和校验块将封装于同一数据包或者一组传送顺序相连的数据包中。所述的封装包括将交织处理获得的一组时间或空间上不相邻的数据块封装于同一数据包或者一组传送顺序相连的数据包中;和/或,将由时间或空间上不相邻的数据块经所述纠错编码处理产生的校验块封装于同一数据包或者一组传送顺序相连的数据包中;其中,所述数据包的头信息中包括交织索引号字段,并可选地包括纠错编码类型字段、数据块大小字段、是否采用交织算法标志字段和保留字^a中的至少一项。所述的封装包括将交织处理后的数据块和校验块采用RTP进行封装。所述的方法还包4吞在接收端,接收一个批次视频数据对应的一组数据包,从所述一组数据包中提取获得多组数据块和校验块,每组中包含若千个数据块和校验块;对所述多组数据块联合进行去交织处理,得到去交织后的一个批次视频数据对应的数据块和校验块,所述去交织后的数据块和校验块包含多个组,每个组含有多个数据块和校验块;然后,对所述每一组数据块和校验块进行纠错解码处理,获得对应的多组处理后的数据块;对所述多组处理后的数据进行压缩解码处理,获得重构的视频数据。所述的纠错解码处理包括对各个扩展块组中的各个数据块和校验块进行检测确定是否有数据块丢失,如果有数据块丟失,则利用该组内的其它数据块和校验块通过纠错解码进行丢失数据块的恢复处理,获得丢失的数据块。所述的方法还包括判断待传送的压缩编码数据的类型,若根据预先设定的信息确定所述压缩编码数据的类型为重要数据,则对的所述的数据块和经纠错编码获得的校验块进行封装传送;否则,对所述的数据块和经纠错编码获得的校验块进行交织处理,并对交织处理后的数据块和校验块进行封装传送。所述的判断待传送的压缩编码数据的类型的方法具体包括根据压缩编码数据头信息中的标识承栽数据类型字段进行编码数据的类型的判断。本发明还提供了一种实现视频数据传送的装置,包括压缩编码单元,用于对待传送的原始视频数据进行压缩编码处理,获得编码处理后的多个凄^居块;纠错编码单元,用于对所述多个数据块进行纠错编码处理,获得相应的校验块;交织单元,用于对所述数据块和校验块进行交织处理;打包发送处理单元,用于对交织处理后的数据块和校验块进行封装打包处理,并发送。所述的交织单元具体是将属于同一批次的数据块和/或校验块进行交织处理,使得在时间或空间上相邻的数据块,经过交织,在发送顺序上不相邻;送顺序上不相邻,从而生成交织后数据块和/或校验块。所述的打包发送处理单元用于将交织处理后的一组时间或空间上不相邻的数据块,和/或,一组由时间或空间上不相邻的数据块经所述纠错编码处理产生的校验块,封装于同一数据包或者相继发送的一组数据包中,并发送。所述的打包发送处理单元中具体采用RTP协议进行数据包的封装。所述的装置还包括判断处理单元,用于判断待传送的压缩编码数据的类型,若根据预先设定的信息确定所述压缩编码数据的类型为重要数据,则对所述的数据块和经纠错编码获得的校验块进行封装传送;否则,触发所述交织单元对所述的数据块和经纠错编码获得的校验块进行交织处理,并通过发送处理单元对交织处理后的数据块和校验块进行封装传送。本发明还提供了一种实现视频数据传送的系统,包括实现视频数据传送的装置和视频数据接收装置,且所述的视频数据接收装置设置于接收端,用于接收所述实现视频数据传送的装置发送来的一个批次视频数据对应的一组数据包,从所述一组数据包中提取多组经过交织的数据块和校验块,每组中包含若干个数据块和校验块;之后,对所述多组数据块和校验块联合进行去交织处理,得到多个扩展块组,然后对于每个扩展块组进行检测判断,并根据检测判断结果,确定进行或者不进行纠错解码处理,获得多个处理后的数据块;最后,对所述多个处理后的数据进行压缩解码处理,获得重构的视频数据。由上述本发明提供的技术方案可以看出,本发明主要采用了交织传送的实现方案对编码后的视频数据进行传送,使得即使出现丟包现象,但由于交织后的同一数据包或者一组相继的数据包中的各数据块之间的相关性较低,相应的导致在接收端无法解码数据的可能性大大降低。因此,本发明的实现使得在IP网络、无线网络等存在丟包现象的网络环境中仍可以有效提升视频数据的传送质量。以采用RTP协议对H.264标准的视频数据进行传送为例,本发明还对广泛应用的RTP协议进行了相应改进,使得其针对H.264视频的传送过程中,可以对视频数据进行交织处理,从而可以大大提高在存在丢包的网络环境下的视频数据传送质量。总之,本发明的实现使得在多媒体视频通信过程中可以获得较高的视频传送质量,以及较佳的用户体验。进而使得多媒体通信业务可以吸引更多的用户,为运营商和设备厂商带来显著的经济效益。图1为视频数据发送端的交织处理过程示意图;图2为视频数据接收端的解交织处理过程示意图;图3为本发明所述方法的具体实现过程示意图;图4为本发明中改进的RTP协议头信息结构示意图;图5为本发明的应用实例示意图;图6为本发明所述的系统的具体实现结构示意图。具体实施方式本发明在具体实现过程中,主要是为了解决IP网络和无线网络等存在丢包问题的网络环境中的^L频数据传送质量问题,即克服网络中的因丢包现象对视频数据传送产生的不利影响。错编码,ForwardErrorCorrection)技术。其中,所述的交织技术是通过改变编码后视频数据的发送顺序,以使得在原时间上相邻的视频数据在时间上不再相邻,即发送顺序上相邻的视频数据在时间和空间上不再相邻,从而降低发送顺序上相邻数据之间的相关性。这样,若发生丟包,则由于发送顺序上相邻的数据相关性较低,因此,相应的造成的影响也就比较小。具体的交织处理的实现原理如图1所示,在交织前,如果数据之间在空间上相邻,如图1中的C帧和D帧,或者,在时间上相邻,如图1中的A帧和B帧,则各帧之间相关性较高,经过编码器压缩编码后,输出的压缩视频流中对应的压缩^:据在发送顺序上相邻。对于压缩后的视频数据,若不进行交织处理而直接打包传送,则若出现丟包现象,将会丟失时间或空间上相邻的数据,如图2所示,当丟包时,则可能出现连接丢失一片图像块的情况,这时,显然会对解码过程产生极为不利的影响。因此,本发明中,采用对压缩后的数据进行交织处理的实现方案,使得在空间或者时间上相邻的视频数据的压缩数据在发送顺序上不再相邻,这样,当出现丟包现象时,仍如图2所示,相应的丟失的图像块将不再会连成一片,从而使得通过相应的纠错机制便可以获得正确的解码数据。从上述描述可以看出,为保证获得正确的解码数据,还需要对在网络中的传送的视频数据包采用相应的FEC(前向纠错编码)技术,当然,也可以采用其他功能类似的纠错编码技术。所述的FEC具体是用于对需要保护的数据进行编码,形成数据冗余,从而增加抗御错误的能力。在数据包网络上主要的错误是丢包错误,即删除错误(ErasureError)。针对删除错误的纠错编码称为纟悄码(ErasureCodes)。所述的纠删码,具体是将数据码流顺序逐段分割成大小相同的一个个单元,也叫做数据节点(DataNodes),假设共有n个数据节点;然后,按照一定的数学运算规则对于这些数据节点进行计算产生出校验节点(ParityNodes或者CheckNodes),为了增强保护能力,还可以对于这些校验节点继续按照相同或者不同的数学运算规则运算产生出第二层校验节点,依次类推,还可以产生相应的第三层、第四层、直至第N层校验节点。一般来说,如果涉及多层校验节点,每层上的节点数目相对于上一层是按照一定规律(如等比规律等)递减,从而形成一个逐层递缩的多层节点结构。所述的纠删码的处理时间复杂度是和数据节点数n存在线性关系。本发明中,主要的处理过程如图3所示,包括以下步骤步骤31:对经过编码压缩后的当前批次的视频数据进行分块处理,获得分块后的待传送的一组数据块;具体可以对基于H.261、H.263或H.264编码后视频数据进行分块处理,相应的分块操作可以为基于条带或基于一帧图像等进行数据块的划分;步骤32:对所述的待传送的一组数据块中包含的各数据块进行纠错编码及交织处理,一方面使得在接收端可以执行相应的纠错功能,另一方面,还使得原空间或时间上相邻数据块在交织处理后不再相邻;所述的纠错编码具体可以为对当前批次中的各个数据块进行分组,并将所得的各组数据块分别进行纠错编码处理,分别获得一组对应的校验块,每组数据块和对应的一组校验块形成一个扩展块组,因此,相应的扩展块组和纠错编码前的数据块組之间——对应;另外,为便于交织处理,还将所述的扩展块组中的数据块和校验块按照数据块在前,校验块在后的顺序用非负整数顺序编号(如按照递增顺序编号),这样,每个数据块和校验块都会对应一个非负整数序号,且每个扩展块组采用相同的一组序号值及顺序编号方式进行编号,之后,便可以根据序号对各块进行交织处理并发送。所述的交织处理过程具体为将所述的各个扩展块组中的序号相同的数据块,或者校验块组成一个交织块组,因此所形成的交织块组总数等于一个扩展块组中数据块加上校验块的总数。例如,在对基于H.264标准的NALU通过FEC保护生成数据节点和校验节点后,为了防止因突发错误而导致的FEC不可解,在对相应的数据节点及校验节点进行封装之前,还需要对各FEC节点进行交织处理;通过该步骤的处理便.可以有效降低丢包对视频数据造成的影响;步骤33:将经过纠错编码及交织处理后的数据块(具体包括数据块和校验块)进行封装打包处理,并发送;具体可以基于RTP协议进行打包处理,或者,也可以基于其他网络中应用的传送协议进行打包处理;步骤34:接收端接收到承载有交织处理后的数据块(包括校验块)的数据包后,进行存储处理,直至接收到分块后的同一级组数据块中的所有的数据块(包括校验块);步骤35:利用接收到的所有数据块(包括校验块)进行解交织(去交织)及解码处理,获得发送端发送的原始视频数据,具体可以为在接收端,接收一个批次视频数据对应的一组数据包,每个数据包中包含多个数据块和/或校验块,从所述一组数据包中提取获得多组数据块和校验块,每组中包含若干个数据块和校验块;对所述多组数据块和校验块联合进行去交织处理,得到去交织后的一个批次视频数据对应的数据块和校验块,所述去交织后的数据块和校验块包含多个组,每个组含有多个数据块和校验块;之后,对所述每一组数据块和校验块进行纠错解码处理,如FEC解码处理等,获得对应的多组处理后的数据块;最后,对所述多组处理后的数据进行压缩解码处理,从而获得重构的视频数据,完成视频数据的接收。在上述处理过程中,由于步骤31及步骤32执行的处理需要一定的处理延时,因此,对于网络中传送的重要数据或时延敏感级别较高的数据也可以选择不执行上述所述步骤31和步骤32的处理。也就是说,在网络中可以根据需要仅对部分编码压缩后的视频数据进行交织处理后再传送,为此,可以在传送的数据中指示是否采用了交织处理,以便于接收端可以对接收到的数据进行正确的处理(即确定是否执行去交织处理)。为便于对本发明的理解,下面将结合具体的应用实例对本发明进行详细说明。具体以在IP网络中基于H.264标准进行视频数据编码,并采用RTP协议进行数据传送为例,本发明主要是提供了一种支持基于H.264编码的视频数据等)交织的改进RTP协议,该改进的RTP协议可以对于H.264压缩视频数据进行交织传送的实现方案,使得在承载H.264视频数据过程中,能够获得更好的传送性能和传送质量;同时,相应的实现方案在具体应用过程中也不会影响RTP协议的正常工作。为便于描述,可以将相应的经过改进的RTP协议称为DIRTP(DataInterleavedRTP,数据交织RTP)协议。具体一点讲,本发明提供的DIRTP协议包括两方面的功能(1)支持多种FEC保护措施,以保证当出现错误(如数据块丟失等)时,仍可以保证在一定程度下能够正确地解码;(2)采用交织算法对采用FEC策略的数据块进行交织处理,以有效防止因突发错误而导致的FEC不可解问题的出现。在对RTP协议进行改进过程中关键涉及数据包头信息的改进,以适应改进后需要实现的功能。下面将对本发明中所述的DIRTP协议的头信息结构进行描述,如图4所示,所述DIRTP协议的头信息结构包括(1)R字段,可以为3比特,为保留字段,且该字段为可选字段,在接收端应忽略该字l殳。(2)C字段,占用单个比特,用于表明DIRTP载荷是否使用了交织算法,若均采用交织算法,则可以省略该字段;例如,若DIRTP载荷使用了交织算法,则该字段记为"1"否则,该字段记为"0",或者,反之亦可。(3)FECType字段,即FEC编码类型代号域,用于表示不同的FEC类型,例如,该字段可以占用4比特,以用于表示16种不同的FEC类型。(4)FECSubtype字段,即FEC编码子类型代号信息域,用于表示在FECType字段中定义的各大类型下进一步细分的各子类型,该字段可以占用的比特数需要根据需要区分的子类型数目确定,例如,可以为9比特等。上述头信息结构中的(3)和(4)两项字段用于描述FEC信息,若DIRTP协议为该两项字段分配了共13比特,则理论上可以区分213=8192种不同的FEC类型;该两项字段具体分配占用的比特数只要可以满足区分FEC类型的应用即可;另外,该两项字段也可以合为一个字段,即仅采用一个字段同时区分相应的FEC类型及子类型。(5)Interleaveindex字段,即交织索引号字段,用于表明该DIRTP载荷在一个交织批次(同一交织批次是指同一批次的视频数据对应的多组数据块和校验块,所述的多组数据块和校验块需要统一进行交织处理)中基数为0的索引号,所述索引号用于FEC解码,为满足承载索引号需求,该字段可以分配占用10比特。(6)Blocksize字段,即块尺寸字段,该字段指示一个数据块的大小(在一个FEC单元中每个数据块的大小都是相等的),根据目前的数据块的大小该字段具体可以分配占用8比特。基于上述DlRTP协议提供的头信息结构包含的内容,下而对本发明中具体的数据传送处理过程进行说明。为便于描述,具体以基于H.264使用交织方法保护DIRTP分组为例,对相应的数据传送处理过程进行说明。本发明中,将H.264数据分成的多个数据块,如表1和表2所示,将i个能纠t个错的分组排列成i行n列的方阵,每个分组(即数据块)记为B(i,n)。表1<table>tableseeoriginaldocumentpage17</column></row><table>Bi,n表2<table>tableseeoriginaldocumentpage17</column></row><table>若不对各分组进行交织处理,则参照表1中阴影部分所示,当遇到连续j个分组的突发错误(如丟失),而且,j远远大于t时,对于其中的连续两个码组(即数据块)而言,由于错误数已远远大于纠错能力t,因而,将导致无法正确对出错码组进行纠错。若对各分组进行交织处理,则总的分组数不变,传送次序由原来的B(1,1),B(1,2),B(1,3).,.B(1,n),B(2,1),B(2,2),B(2,3)...B(2,n),......B(i,1),B(i,2),B(i,3)...B(i,n)转变为B(1,1),B(2,1),B(3,l)...B(i,1),B(1,2),B(2,2),B(3,2)…B(i,2).........B(1,n),B(2,n),B(3,n),…B(i,n)的次序。这样,当出现丢包现象时,相应的错误图样正好落在分组码的纠错能力范围内,因而,可以通过纠错功能正确纠正错误,实现正确解码。因此,若采用交织处理方案对待发送的编码后的数据进行处理,可以使得在相同冗余度下,纠删码保护视频码流的能力大大提高。而且,由于不增加新的分组,因此,交织处理过程不会降低编码效率。通常把码组数i称为交织度,且交织度i越大,抗分组丟失的能力越强。但是,交织度i越大要求接收端的緩存区越大,而且相应的延时也会加大,因而,在实际应用本发明的过程中,可以根据实际的设计成本及系统延时要求选取合适的交织度i。下面仍以基于H.264使用交织方法保护DIRTP分组为例,对本发明提供的实现视频数据传送的处理过程进行描述。为便于对以下实施例的理解,下面首先对基于H.264标准的视频数据传送过程中涉及的H.264NALU进行介绍。所述的NALU的头信息结构如表3所示表3<table>tableseeoriginaldocumentpage18</column></row><table>表3中,F(forbidden_zero—bit)字段:占用1bit;用于若有语法冲突,则该字段设置为1;或者,当网络识别此单元中存在比特错误时,也可将其设置为1,以便接收方丢掉该单元;NRI(nal—refjdc)字段占用2bits,其具体含义包括00,表示NALU的内容不用于重建帧间预测的参考图像;非OO,则表示当前NALU是属于参考帧的slice,或SPS,PPS这类数据;该字段的值越大,表示当前NAL越重要;Type(Nal—unit—type)字段占用5bits,用于承载数据类型信息,共可以为32种类型0-31;具体类型含义参见表4:表4<table>tableseeoriginaldocumentpage19</column></row><table>通过上述说明,对H.264标准涉及的NALU概念已经有所了解,下面将对本发明提供的实现视频数据传送的处理过程进行说明。由于H.264NALU的重要程度不同,因而,相应的编码压缩后的数据块的获得方式不同且相应数据块对时延的要求也不相同,为此,本发明在具体实现过程中采用了有选择地对部分待发送的编码压缩后的数据块进行交织处理。相应的具体的实现过程方式如下(--)首先,区分NALU的重要程度;由于在NALU的头信息中的NRI字段的不同取值可以表示NALU的不同重要程度;例如,NRI取O表示NALU中存放非参考图像的一个Slice(条带)或多个Slice数据条带(如P-Slice(帧间预测条带),B-slice(双向预测条带)},不会影响后续解码;而NRI取非O则表明NALU中存放一个序列或图像参考集(如SPS(Sequenceparameterset,序列参数设置)和PPS(pictureparameterset,图像参数设置)}或者参考图像的一个Slice或多个Slice数据条带(如I-Slice(帧内条带)},会严重影响后续解码;在对H.264的码流进行基于数据包的纠删码保护和交织处理过程中,可以根据NRI的取值将H.264的数据分为两类非重要数据和重要数据。(1)对于非重要的数据采用交织处理后再发送;具体为对于次重要信息,即非重要数据,如P-Slice、B-slice等,由于这类数据比I-Slice等的重要程度低,且数据量大,时延要求也较低,因此,对于这类数据通常可以采用冗余度小、保护能力相对较弱的纠删码保护,同时,为了防止在接收端,因丢失过多的FEC包,超过FEC纠错能力而导致FEC不可解码,还应在DIRTP封装之前,先对FEC包进行交织处理,之后再封装发送;具体的交织处理过程包括首先,在对次重要信息进行FEC保护和交织处理时,是将两个l-Slice之间的P-Slice、B-Slice等数据看成一个整体;假定相应的连续次重要信息的总字节数为W,则将数据等分成大小为D个字节的数据块,当W不能被D整除时,在W个字节后面填充O,得到新的数值W',以便于W'可以被D整除。这样,相应的数据将被划分成共[W/D]或者[W7D]个数据块。如图5所示,假定每K个数据块经FEC保护后生成N个FEC块(其中K个数据块,M个校验块,N=K+M);交织深度为i(其中i〈-N),则一个交织批次中FEC块的总数为rR^N;为不增加DIRTP头信息,可以令图5中i-N。这样,在头信息中只要传送一个参数N,而不是两个参数i和N来表示分批次的方法。其中,所述N个FEC块称为一个FEC块组在上面描述的算法中,若剩余的FEC块组个数小于N时,也可以适当的减小i的值,即取^N。之后,每个FEC块交织封装入DIRTP载荷(交织度i-N)的处理过程具体包括1、一个交织批次中的第一个DIRTP包头信息中的interleaveindex=0;FEC块O,FEC块N,FEC块2N,FEC块3N...…FEC块(i-1)N。2、一个交织批次中的第二个DIRTP包头信息中的interleaveindex=1;FEC块1,FEC块N+1,FEC块2N+1,FEC块3N+1……FEC块(i-1)N+1。3、一个交织批次中的第N个DIRTP包头信息中的interleaveindex=N-1;FEC块N-1,FEC块2N-1,FEC块3N-1,FEC块4N-1……FEC块iN-1。最后,在接收端,需要有一个能存放至少一个交织批次的N个DIRTP包的緩存区,当接收端接收到下一个交织批次的第一个DIRTP包时(即接收完所有N个DIRTP数据包时),对前面接收到的N个DIRTP包解交织处理,以获得发送端发送的交织前视频数据。在上述针对非重要数据的处理过程中,当[W/D]不能被K整除时,则针对余下的大小为D的数据块将不能进行FEC保护和交织处理。对于该余下的数据的处理可以采用(但不限于)以下两种方式1、将相应数据块重新划分为更小的数据块,再进行FEC保护及交织处理,之后,封装发送;2、将相应的数据块不经过FEC保护和交织处理直接封装传送,例如,当余下的数据块的数目较少时,便可以采用该处理手段。(2)对于重要数据信息则不进行交织处理;具体为对于承载了重要数据的NALU,如SPS、PPS、I-Slice等,需要采要使用冗余度大、抗丢包能力强的纠删码保护。这样,与P-Slice相比,同样大小的K个数据块,经过纠删码保护后,将会生成更多的校验块。由于这类重要数据对时延的要求也较高,即允许有较小的时延,因此,对这类的NALU经过纠删码保护生成的FEC块不使用交织算法。这是因为,若采用交织算法将引入了较大的时延,而且,由于针对重要数据将生成更多的校验块,即N值较大,相应的交织度将比较大,这将近一步增加时延。因此,对于卜Slice,在经过纠删码保护后不再使用交织算法。但为了防止解码端FEC不可解,要求一个FEC包装入一个DIRTP载荷。因此,本发明中,利用目前RTP头信息中的某个或者某些字节或者比特对RTP协议进行改进以实现本发明。而相应的字节或比特具体可以采用RTP中定义预留或可扩展字节或比特。这样,改进后的RTP协议不影响与原RTP协议的互通性。即在通信中,有些终端采用按照本发明改进的RTP协议,另外的终端采用未改进的RTP协议,这些终端之间能够实现正常通信。另外,本发明还在RTP数据包的头信息中,采取相应的标识区别改进方案RTP和原来的RTP两者之间的区别,以便系统进行识别,针对不同的情况,采取不同的处理4普施。本发明还提供了一种实现视频数据传送的系统,该系统的具体实现结构如图6所示,主要包括实现视频数据传送的装置和视频数据接收装置,下面将分别对两装置的具体实现进行说明(一)如图6所示,所述的实现视频数据传送的装置,具体可以包括以下处理单元(1)压缩编码处理单元,用于对当前批次的待传送的视频数据进行压缩编码处理,获得编码处理后的多个数据块;具体可以为基于H.261、H.263或H.264标准等实现相应的编码处理;(2)纠错编码单元,用于对所述多个数据块进行纠错编码处理,获得相应的4L睑块;(3)交织单元,用于对当前批次的视频数据对应的所述数据块和校验块进行交织处理,获得同一交织批次的交织处理结果;具体为将当前批次的视频数据对应的数据块和/或校验块进行交织处理,从而生成交织后数据块和/或校验块;所述的交织处理可以使得在时间或空间上相邻的数据块,经过交织,在发送顺序上不相邻;在时间或空间上(4)打包发送处理单元,用于将属于同一批次的视频数据对应包含的经交织处理后的数据块和/校验块中,一组时间或空间上不相邻的数据块,和/或,一组由时间或空间上不相邻的数据块经所述纠错编码处理产生的校验块,封装于同一数据包或发送顺序连续的数据包(即相继的数据包)中发送,而且,具体可以采用RTP协议进行数据包的封装。为区别处理不同类型的数据,本发明所述的装置还可以包括判断处理单元,该单元用于判断待传送的压缩编码数据的类型,若根据预先设定的信息确定所述编码数据的类型为重要数据,则触发对所述的数据块和经纠错编码获得的校验块直接进行封装传送,否则,触发所述的交织单元对所述的数据块和经纠错编码获得的校验块进行交织处理,并通过发送处理单元对交织处理后的数据块和经纠错编码获得的校验块进行封装传送。(二)所述视频数据接收装置设置于接收端,用于接收一个批次视频数据对应的一组数据包(即接收同一交织批次的所有数据包),并从所述一組数据包中提取多组经过交织的数据块和校验块,每组中包含若干个数据块和校验块;之后,保存接收到的交织处理后的数据块和校验块,当一个批次视频数据对应的一组数据包接收完成,即获得该批次视频数据对应的所有数据块和校验块后,对收到的多组数据块和校验块联合进行去交织处理,得到多个扩展块组,然后对于每个扩展块组进行检测判断,并根据检测判断结果,确定对去交织处理后的数据块和校验块进行或不进行纠错解码处理,获得多个处理后的数据块;最后,对所述多个处理后的数据进行压缩解码处理,获得相应的重构的视频数据,作为发送端发送的原始视频数据。本发明所述系统中各装置及处理单元具体采用的纠错编码及交织处理方案在前面已经详细描述,故不再赘述。综上所述,本发明主要采用了交织传送的实现方案对编码后的视频数据进行传送,使得即使出现丟包现象,但由于交织后的同一数据包中的各数据块之间的相关性较低,相应的导致在接收端无法解码数据的可能性大大降低。因此,本发明的实现使得在IP网络、无线网络等存在丢包现象的网络环境中仍可以有效保证视频数据的传送质量。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。权利要求1、一种实现视频数据传送的方法,其特征在于,包括对当前批次的待传送的视频数据进行压缩编码,获得压缩编码后的多个数据块;对所述多个数据块进行纠错编码处理,获得相应的校验块;对所述数据块和校验块进行交织处理,并将交织处理后的数据块和校验块封装成数据包后发送。2、根据权利要求1所迷的方法,其特征在于,所述的纠错编码包括对所述批次中的各个数据块进行分组,并将所得的各组数据块分别进行纠错编码处理,分别获得一组对应的校验块,每组数据块和对应的一组校验块形成一个扩展块组。3、根据权利要求2所述的方法,其特征在于,各个所述的扩展块组中含有相同数目的数据块,以及相同数目的校验块,且所述扩展块组中的每个数据块的长度相等,每个校验块的长度相等,数据块和校验块的长度相等。4、根据权利要求3所述的方法,其特征在于,所述的方法还包括将每个扩展块组中的数据块和校验块按照数据块在前,校验块在后的顺序用非负整数顺序编号,且所述的交织处理包括将所述的各个扩展块组中的序号相同的数据块,或者校验块組成一个交织块组,且每个交织块組中的数据块和校验块将封装于同一数据包或者一组传送顺序相连的数据包中。5、根据权利要求1所述的方法,其特征在于,所述的封装包括将交织处理获得的一组时间或空间上不相邻的数据块封装于同一数据包或者一组传送顺序相连的数据包中;和/或,将由时间或空间上不相邻的数据块经所述纠错编码处理产生的校验块封装于同一数据包或者一组传送顺序相连的数据包中;其中,所述数据包的头信息中包括交织索引号字段,并可选地包括纠4普编码类型字段、数据块大小字段、是否采用交织算法标志字段和保留字段中的至少一项,6、根据权利要求1所述的方法,其特征在于,所述的封装包括将交织处理后的数据块和校验块采用实时传送协议RTP进行封装。7、根据权利要求1至6任一项所述的方法,其特征在于,所述的方法还包括在接收端,接收一个批次视频数据对应的一组数据包,从所述一组数据包中提取获得多组数据块和校验块,每组中包含若干个数据块和校验块;对所述多组数据块联合进行去交织处理,得到去交织后的一个批次视频数据对应的数据块和校验块,所述去交织后的数据块和校验块包含多个组,每个组含有多个数据块和校验块;然后,对所述每一组数据块和校验块进行纠错解码处理,获得对应的多组处理后的数据块;对所述多組处理后的数据进行压缩解码处理,获得重构的视频数据。8、根据权利要求7所述的方法,其特征在于,所述的纠错解码处理包括对各个扩展块组中的各个数据块和校验块进行检测确定是否有数据块丢失,如果有数据块丢失,则利用该组内的其它数据块和校验块通过纠错解码进行丟失数据块的恢复处理,获得丟失的数据块。9、根据权利要求1至6任一项所述的方法,其特征在于,所述的方法还包括判断待传送的压缩编码数据的类型,若根据预先设定的信息确定所述压缩编码数据的类型为重要数据,则对的所述的数据块和经纠错编码获得的校验块进行封装传送;否则,对所述的数据块和经纠错编码获得的校验块进行交织处理,并对交织处理后的数据块和校验块进行封装传送。10、根据权利要求9所述的方法,其特征在于,所述的判断待传送的压缩编码数据的类型的方法具体包括根据压缩编码数据头信息中的标识承载数据类型字段进行编码数据的类型的判断。11、一种实现视频数据传送的装置,其特征在于,包括压缩编码单元,用于对待传送的原始视频数据进行压缩编码处理,获得编码处理后的多个数据块;纠错编码单元,用于对所述多个数据块进行纠错编码处理,获得相应的校验块;交织单元,用于对所述数据块和校验块进行交织处理;打包发送处理单元,用于对交织处理后的数据块和校验块进行封装打包处理,并发送。12、根据权利要求10所述的装置,其特征在于,所述的交织单元具体是将属于同一批次的数据块和/或校验块进行交织处理,使得在时间或空间上相邻的数据块,经过交织,在发送顺序上不相邻;使得由在时间或空间上相邻交织后数据块和/或校验块。13、根据权利要求12所述的装置,其特征在于,所述的打包发送处理单元用于将交织处理后的一组时间或空间上不相邻的凄t据块,和/或,一组由时数据包或者相继发送的一组K据包中,并发送。14、根据权利要求11所述的装置,其特征在于,所述的打包发送处理单元中具体采用RTP协议进行数据包的封装。15、根据权利要求11至14任一项所述的装置,其特征在于,所述的装置还包括判断处理单元,用于判断待传送的压缩编码数据的类型,若根据预先设定的信息确定所述压缩编码数据的类型为重要数据,则对所述的数据块和经纠错编码获得的校验块进行封装传送;否则,触发所述交织单元对所述的数据块和经纠错编码获得的校验块进行交织处理,并通过发送处理单元对交织处理后的数据块和校验块进行封装传送。16、一种实现视频数据传送的系统,其特征在于,包括实现视频数据传送的装置和视频数据接收装置,且所述的视频数据接收装置设置于接收端,用于接收所述实现视频数据传送的装置发送来的一个批次视频数据对应的一组数据包,从所述一组数据包中提取多组经过交织的数据块和校验块,每组中包含若千个数据块和校验块;之后,对所述多组数据块和校验块联合进行去交织处理,得到多个扩展块组,然后对于每个扩展块组进行检测判断,并根据检测判断结果,确定进行或者不进行纠错解码处理,获得多个处理后的数据块;最后,对所述多个处理后的数据进行压缩解码处理,获得重构的视频数据。全文摘要本发明涉及一种实现视频数据传送的方法、装置及系统。本发明主要包括首先,对待传送的视频数据进行压缩编码处理,获得编码处理后的多个数据块;之后,对所述多个数据块进行纠错编码处理,获得相应的校验块;最后,对所述数据块和校验块进行交织处理,并对交织处理后的数据块和校验块进行打包封装传送。本发明的实现使得即使在传送中发生丢包,但因交织后的同一或者相继数据包中所封装的各数据块之间相关性较低,因而,在接收端对于接收到数据无法解码的可能性将大大降低。因此,本发明的实现可以提高视频数据在IP网络、无线网络等存在丢包的网络上的传送质量。文档编号H04N7/26GK101166273SQ20061014058公开日2008年4月23日申请日期2006年10月16日优先权日2006年10月16日发明者彬宋,浩秦,忠罗,郭春芳申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1