一种流媒体控制设备中控制流媒体传输的控制装置及方法

文档序号:7685535阅读:134来源:国知局
专利名称:一种流媒体控制设备中控制流媒体传输的控制装置及方法
技术领域
本发明涉及流媒体控制设备,尤其是视频通信控制设备,具体地,涉及在流媒体控制设备中控制流媒体传输的控制方法以及相应的控制装置。

背景技术
目前,在Internet网络应用中,由于拥塞比较严重,存在一定的丢包率,即被传输的数据包可能无法被接收端所接收。在通常基于Internet的数据业务中,可以通过丢包重传、丢包忽略等方式来降低丢包的影响。例如对于下载业务,通常采用丢包重传方式;而对于VoIP业务,则一般采用丢包忽略方式。
在视频通信处理中,一旦发生网络丢包的情况,则对视频业务影响比较严重。由于视频信号包含的信息量大,因此为了提高压缩率,视频通信业务中通常采用的编码方式都是预测法,在这样的情况下,压缩编码后传输的并不是像素本身的取样幅值,而是该取样的预测值和实际值之差。这样,每一帧图像倚赖于前面的图像。只有较长时间间隔才会传输一个完整图像用于图像重建。此时,如果发生丢包,会对后面较长时间内的图像造成影响,从而使得视频信息无法显示,严重干扰视频质量。针对这样的缺陷,虽然可以引入重传机制来保证数据完整从而恢复图像,但这样的解决方案会引入较大的延时,导致交互感受降低。
在部分解决方案中,会采用前向纠错方式来保证接受数据的完整性与正确性,例如卷积、Turbo、空时码等算法,这些方式的处理都比较复杂、运算量大,通常要求的冗余较高、并且会优先地采用硬件来实现这样的方式,而且这些方式在应用于IP网络的按包丢失的情况下纠错能力有限。
所以,必须要有良好的机制,保证视频接收端能实时或接近实时地收到完整的数据包,从而保证视频质量。


发明内容
针对现有技术中的缺陷,本发明的目的是针对基于Internet的包传输过程中整包丢失的特性来提供一种控制流媒体传输的控制方法以及相应的控制装置。
根据本发明的一个方面,提供一种在流媒体控制设备中用于控制流媒体传输的控制方法,其中,包括如下步骤a.针对被传输的数据包进行封闭性运算以生成冗余数据包,其中,所述被传输的数据包与所述流媒体对应,所述封闭性运算包括符合计算封闭性特性的计算步骤;b.发送所述被传输的数据包以及所述冗余数据包。
根据本发明的另一个方面,还提供一种在流媒体控制设备中用于控制流媒体传输的控制装置,其特征在于,包括第一生成装置,用于针对被传输的数据包进行封闭性运算以生成冗余数据包,其中,所述被传输的数据包与所述流媒体对应,所述封闭性运算包括符合计算封闭性特性的计算步骤;以及第一发送装置,用于发送所述被传输的数据包以及所述冗余数据包。
本发明的又一个方面,提供一种在流媒体控制设备中用于接收流媒体的辅助控制方法,其中,包括如下步骤i.接收被传输的数据包,其中,所述数据包包括原始数据包以及冗余数据包,其中所述原始数据包与所述流媒体对应;ii.判断所述原始数据包是否丢失;iii.若所述原始数据包丢失,则执行丢包恢复操作。
根据本发明的又一个方面,还提供一种在流媒体控制设备中用于接收流媒体的辅助控制装置,其特征在于,包括第一接收装置,用于接收被传输的数据包,其中,所述数据包包括原始数据包以及冗余数据包,其中所述原始数据包与所述流媒体对应;第一判断装置,用于判断所述原始数据包是否丢失;以及第一处理装置,用于当所述原始数据包丢失时执行丢包恢复操作。
根据本发明的又一个方面,还提供一种流媒体控制设备,其用于发送流媒体并接收流媒体,其特征在于,该设备包括上述的控制装置和/或上述的辅助控制装置。
本发明通过对一个或多个被传输的数据包(原始数据包)生成一个或多个冗余数据包,从而实现适应网络丢包的视频通信控制装置,尤其是适应基于Internet传输的丢包情况。与现有技术相比较,本发明至少具有如下优点运算简单,其可以采用简单的异或方式,从而使得本发明可以通过改变硬件或软件的方式来实现;在网络正常时,不引入任何时延,并且在网络丢包时,时延也只限于相关包的长度;所生成的冗余包的数量可以根据需要来调整,所以使得冗余可以被调整,从而适应各种网络丢包场景。



通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显 图1示出根据本发明的一个具体实施方式
的,用于控制流媒体传输的控制装置以及辅助控制装置的工作原理示意图; 图2示出根据本发明的第一实施例的,在流媒体控制设备中用于控制流媒体传输的控制方法的流程图; 图3示出根据本发明的第二实施例的,在流媒体控制设备中用于控制流媒体传输的控制方法的流程图; 图4示出根据本发明的第一实施例的,在流媒体控制设备中用于辅助控制流媒体传输的辅助控制方法的流程图; 图5示出根据本发明的第一实施例的,根据本发明的第一实施例,在流媒体控制设备中用于控制流媒体传输的控制装置的结构示意图、在流媒体控制设备中用于接收流媒体的辅助控制装置的结构示意图以及两者的关系示意图;以及 图6示出根据本发明的第二实施例的,图5所示辅助控制装置7中的第二处理装置的一个变化例的结构示意图。

具体实施例方式 图1示出根据本发明的一个具体实施方式
的用于控制流媒体传输的控制装置的工作原理示意图。在本具体实施方式
中,本发明提供的流媒体控制设备(图1中未示出)根据本发明提供的控制方法对其传输的流媒体数据包进行控制处理,处理完毕后通过网络发送出去。相应地,接收上述被处理后的数据包的流媒体控制设备也根据本发明提供的辅助控制方法来对这些数据包进行处理以便通过该流媒体控制设备呈现其中包含的流媒体信息。在这样的具体实施方式
中,所述发送流媒体和接收流媒体的流媒体控制设备是同样的设备,即用于发送的流媒体控制设备也可以作为接收流媒体的流媒体控制设备,反之亦然。本领域技术人员理解,所述流媒体控制设备可以是各种设备,例如在应用于视频会议控制系统时,所述流媒体控制设备可以是一个视频会议控制设备;又例如,在应用于视频点播服务系统时,所述流媒体控制设备可以是一个点播服务控制设备;还例如,在应用于远程医疗控制系统时,所述流媒体控制设备可以是一个远程医疗控制设备;再例如,在应用于广告发布系统时,所述流媒体控制设备可以是一个广告发布控制设备,不予赘述。
具体地,在本具体实施方式
中,用于发送流媒体数据包的所述流媒体控制设备控制装置1,对输入的待发送的数据包进行编码后输出编码后的数据包,并将所述编码后的数据包通过网络向辅助控制系统7发送,在网络传输过程中,所述编码后的数据包可能会发生丢包,因此被发送的编码后的数据包全部或者部分地到达所述辅助控制系统7,相应地,用于接收流媒体数据包的所述流媒体辅助控制设备7对接收到的所述编码后的数据包进行解码后输出解码后的数据包,从而使得所述流媒体数据包承载的内容(例如视频)可以被呈现给用户。在本实施例中,所述编码过程由第一生成装置11和第一发送装置12实现。具体地,所述第一生成装置11根据接收到的所述待发送的数据包生成冗余数据包,并将所述冗余数据包发送到所述第一发送装置作进一步处理。其中,所述冗余数据包是所述待发送数据包的冗余,在接收端被用来恢复丢包。所述第一发送装置12根据所述待发送数据包和所述第一生成装置11发送来的所述冗余数据包输出并向接收端发送所述编码后的数据包。本领域技术人员理解,所述编码后的数据包是所述待发送的数据包和所述冗余数据包有规律地组合而成的数据包流。所述解码过程由第一判断装置72和第一处理装置73实现。具体地,所述第一判断装置72接收所述编码后的数据包并判断是否有所述待发送的数据包丢失。若是,则所述第一判断装置72将所述编码后的数据包发送给所述第一处理装置73,接着,所述第一处理装置73对丢包进行恢复操作后将全部所述待发送的数据包作为所述解码后的数据包输出;若否,则所述第一判断装置72将所述编码后的数据包中的待发送数据包作为所述解码后的数据包输出。
本领域技术人员理解,图1所示“解码后的数据包”至少包括由所述流媒体设备中的某些装置对数据包进行解码的过程,例如为了更好地传输,在发送端按照预定编码规则(例如MPEG4)对被传输的数据包进行编码,然后在接收端同样根据该编码规则进行解码。这样的过程可以参考现有技术来实现,在此不予赘述。更具体地,如果在接收端发现原始数据包丢失,则还需要经过所述第一处理装置来恢复该原始数据包,这样的过程也可以被理解为所述“解码”的一部分。
图2示出根据本发明的第一实施例的,在流媒体控制设备中用于控制流媒体传输的控制方法的流程图。在本实施例中,每次操作针对一个被传输数据包执行本发明提供的传输控制过程。具体地,首先执行步骤S210,(如图1所示的)所述第一生成装置11根据一个所述被传输的数据包进行封闭性运算以生成一个冗余数据包。本领域技术人员理解,本实施例中所阐述的封闭性运算是这样定义的,若非空集合G对于运算*满足条件对于任意a∈G,b∈G,恒有a*b∈G;则称集合G对于运算*具有封闭性,或者说运算*是集合G的封闭性运算。例如,在有理数集中,两个有理数进行加、减、乘、除(0作除数除外)法所得的结果仍然是有理数,因此加、减、乘、除(0作除数除外)法是有理数集的封闭性运算。在本实施例中,所述封闭性运算可以是取反操作,即P=~D,其中,P为冗余数据包,D为被传输的数据包,冗余数据包P的二进制值由被传输的数据包D的二进制值按位取反得到。所述封闭性运算也可以是按位乘1运算,即P=D,冗余数据包每一比特位的值由被传输的数据包对应的比特位的值按位和“1”进行与运算得到,即将所述被传输的数据包作为所述冗余数据包。
接着转入步骤S211,由所述第一发送装置12将所述被传输的数据包以及所述冗余数据包连续地向所述第一判断装置72进行流式传输,其中可以先发送所述被传输的数据包再发送所述冗余数据包,反之亦可,这并不影响本发明的实质。本领域技术人员理解,实现流媒体流式传输的方法包括顺序流式传输(Progressive streaming)和实时流式传输(Real-time streaming);而按照播放方式区分则包括单播、组播及广播。本领域技术人员可以根据不同的情况选择适合的传输和播放方法,例如在两台主机间传输高质量的短片段的情况下,可采用单播顺序流式传输,又例如在一主机向多用户直播体育比赛的情况下,可以采用组播实施流式传输。本领域技术人员至少可参考有关RTP/RTCP(实时传输与实施传输控制协议)的技术文献(例如《多媒体实时传输协议(RTP)的研究》,朱一群、朱秋萍著,《计算机应用研究》,2002.10期;或者《IP网视频音频实时传输的研究》,庄严著,南京工业大学,2004)实现上述的传输及播放方式,不予赘述。
在图2所示实施例的一个变化例中,所述步骤S210还可以通过其他方式实现,例如针对一个数据包(或其他被处理的数据单位)中的部分数据位执行取反操作、对其余数据位执行乘1操作;又例如移位运算,所述P为所述D的二进制序列移L位所得,即P=D>>L,其中,移位运算可以是左移、右移、无符号左移、或者无符号右移;再例如所述冗余数据包P是公共数据包R与所述被传输的数据包D运算的结果,所述运算包括算术运算(加、减、乘、除)和逻辑元算(与、或、取反、异或);又例如,还可以是位交换运算。
本领域技术人员理解,在图2所示实施例的其他变化例中,还可以采用其他方法生成所述冗余包,例如奇偶校验位的方式或采用位相加、高位溢出方式等运算,同样可以实现本发明目的,在此不予赘述。
上述图2描述了在流媒体控制设备中对一个被传输的数据包生成冗余数据包并传输给冗余数据包的过程,在这样的实施例中,所述流媒体控制设备对所有被传输的数据包一个接一个地处理,从而处理所有数据包。而下面通过图3示出根据本发明的第二实施例的,在流媒体控制设备中用于控制流媒体传输的控制方法的流程图,在本实施例中,每次操作针对多个被传输数据包执行本发明提供的传输控制过程。
在本实施例中,生成所述冗余数据包之前,先要对所述被传输的数据包进行分组,生成数据包组。具体地,在本实施例中,用(n,k)表示数据包组,其中,n为数据包组长度,其长度等于该数据包组中所有数据包的个数;k为信息段长度,其长度等于该数据包组中被传输数据包的个数;(n-k)表示冗余段长度,其长度等于该数据包组中冗余数据包的个数。具体地,首先确定信息段长度k,然后把在内容上连续的每k个所述被传输的数据包分入一个数据包组中。例如,D0~D8共9个数据包,令k=3,则{D0,D1,D2}、{D3,D4,D5}、{D6,D7,D8}构成三个数据包组。为使接收端能够获知数据包与数据包组的归属关系,在数据包包头内设置分组编号字段,用来表示该数据包属于哪一个数据包组,例如,若假设数据组{D0,D1,D2}的编号为十进制数10,则数据包D0、D1、D2包头中分组编号字段的二进制值为00001010。其中,所述分组编号字段的长度可以根据数据包组的数量进行调整,这并不会影响本发明的实质。
本领域技术人员理解,所述信息段长度k以及冗余段长度(n-k)的取值既要保证一定的丢包恢复能力,又要考虑网络环境(例如,时延、带宽、接收端缓冲能力等)的因素,优选地,在本实施例和以下的各实施例中,除特别说明外,均令k=6,即每一个数据包组中共有六个所述被传输的数据包(分别用D0~D5表示)。本领域技术人员理解,所述n、k的取值可以根据具体情况而变化,例如,当网络质量比较好时,换句话说,丢包率比较低时,n-k可以取1,k可以相应地更大,例如取值为12、18等,这取决于丢包率是否足够低;相反,如果网络质量相对不好时,则n-k值可以取大一些,例如取值为3、2等,而k值也可相应取大到2。在更为极端的变化例中也可以取k值为1,而对应地并不限制n的取值。
具体地,首先执行步骤S220,对多个所述被传输的数据包进行封闭性运算以生成所述冗余数据包,即针对上述一个数据包组中的所有数据包执行该操作。优选地,在本实施例中,所述冗余数据包的个数为一个。具体地,所述冗余数据包可以根据如下计算式生成其中,所述P表示所述冗余数据包,所述Dn表示一个数据包组中的所述被传输的数据包,符号

表示按位异或运算。具体地,如上述k=6的情况下,则所述n=7,本领域技术人员理解,在一个变化例中,还可以采用Reed-Solomon算法来实现生成该冗余数据包的过程,在此不予赘述。
在第二实施例的一个变化例中,步骤S220中所述冗余数据包的个数为两个,分别记为第一冗余数据包P,以及第二冗余数据包Q。其中,所述第一冗余数据包P通过第二实施例步骤S220中的计算式生成。所述第二冗余数据包Q通过如下计算式生成其中,所述Dn表示所述被传输的数据包,所述An表示乘法系数,所述

表示自定义乘法。所述自定义乘法可以是基于Galois域或基于其他可以满足封闭性的域的自定义乘法,例如基于Galois域GF(2m)的Reed-Solomon算法中的模二乘法,其中,m是本原多项式的次数。其中,所述An是m比特的二进制序列,并且是Galois域GF(2m)中的元素(除元素0外)。在Galois域GF(2m)中有2m个元素,每个元素对应的m比特的二进制序列,所述元素间的模二加、减、乘、除法运算是封闭性运算。具体地,在本实施例中,所述An与Dn的同属集合是基于Galois域的8阶Reed-Solomon编码集,这样可以保证An与Dn具有强相关性。
本领域技术人员理解,所述Galois域是有限域,典型的Galois域包括GF(p)域,令p=2,可以得到一个二元域,即GF(2)域;将GF(2)域扩展成由2m个元素组成的域,可以得到一个二元域的扩域,即GF(2m)域。其中,GF(2m)域中的元素可以用一个m次本原多项式P(x)来描述。例如,当m=3时,GF(23)域的本原多项式为P(x)=x3+x+1,定义α为P(x)=0的根,即α3+α+1=0,在模二运算下得到α3=α+1,其中,GF(23)中的元素的计算方法如下表1所示
然后用二进制数表示域中元素如下表2所示

至此建立了GF(23)域中的元素与3位二进制数之间的一一对应关系。用同样的方法可以建立GF(28)域中的256个元素与8位二进制数之间的一一对应关系。利用所述Galois域的封闭性,可以进行Reed-Solomon算法,运算的结果仍落在Galois域内。例如,在GF(23)域中 加法α0+α3=001+011=010=α1,其中,α1是GF(23)域的元素; 减法在模2运算中与加法相同; 乘法α5α4=α(5+4)mod7=α2,其中,α2是GF(23)域的元素; 除法α3/α5=α-2=α(3-5)mod7=α5,其中,α5是GF(23)域的元素。
优选地,在本实施例和以下的各实施例中,除特别说明外,均令所述m=8,即所述自定义乘法是基于Galois域GF(28)的Reed-Solomon算法中的模二乘法。
本领域技术人员理解,在上述步骤S220中,通过构造多组所述An,可以生成多个冗余数据包,例如,可以令An=αn,其中,αn为Galois域GF(2m)中的元素;令An′=αn+1,则 具体地,将所述被传输的数据包Dn分割成长度为8比特的小段tn1,tn2,tn3,......,tni。相应地,把所述第二冗余数据包Q也定义为是由小段sn1,sn2,sn3,......,sni所构成的,其中,sni与tni的长度相等。则可以构造计算式然后将得到的sn1,sn2,sn3,......,sni按序拼接成所述第二冗余数据包Q。
接着进入步骤S221,所述第一发送装置12可按照D0、D1、D2、......、Dn、P、Q的顺序连续地发送。接收端能够根据数据包包头中的序号字段和标识字段来将数据包重新排列,其中,所述标识字段用来表示数据包的类型,例如标识字段为00000000表示该数据包为所述被传输的数据包(原始数据包),标识字段为00000001表示该数据包为第一冗余数据包,标识字段为00000010表示该数据包为第二冗余数据包,以此类推。因此也可以采用其它的顺序发送,这并不会影响本发明的实质。
本领域技术人员理解,在上述实施例中,发送端利用所述分组编号字段告知接收端数据包的分组信息,即首先对被传输的数据包进行分组,然后针对一个分组内的数据包生成冗余数据包。而在一个变化例中,所述发送端也可以通过其他方式来选择被传输的数据包并针对这些数据包生成冗余数据包。例如,在首次以及更新数据包分组规则后的首次传输过程中,先向接收端发送一个协议包,其中,所述协议包携带有最新的数据包的分组规则。还可以预先将约定的数据包分组规则写入接收端的控制单元(例如,芯片)中,当发送端改变分组规则时,可以将更新后的分组规则重新写入控制单元。而在又一个变化例中,还可以随机地选择被传输的数据包,然后再针对这些被选择的数据包生成冗余数据包,在这样的变化例中,在生成冗余数据包的同时,还生成一个协议包,该协议包中包括本次随机选择的被传输数据包的有关信息,从而使得接收方可以根据这些信息来相应地重组数据包,在此不予赘述。
本领域技术人员理解,上述图2所示步骤S210、图3所示步骤S220分别描述了针对一个被传输数据包、多个被传输数据包生成冗余包的过程,实际上,上述两个步骤均可以被理解为“针对被传输的数据包进行封闭性计算以生成冗余数据包”的不同实施例,其中,所述封闭性计算是符合计算封闭性特性的计算步骤,例如上述的异或操作是满足如下规律的封闭性运算 A XOR B=B XOR A ——交换律 A XOR B XOR C=(A XOR B)XOR C=A XOR(B XOR C)——结合律 A XOR B XOR B=A ——恢复律 具体地,本领域技术人员结合现有技术还可以实现上述步骤的变化,例如在传输流媒体的过程中,针对部分数据包基于一个被传输数据包生成冗余数据包,而针对其他数据包基于多个被传输数据包的分组生成冗余数据包,这并不影响本发明的实质内容,在此不予赘述。
图4示出根据本发明的第三实施例的,在流媒体控制设备中用于控制流媒体传输的控制方法的流程图。在本实施例中,所述辅助控制设备对流媒体执行本发明提供的传输控制过程。首先执行步骤S230,所述第一接收装置71接收所述数据包包括所述被传输的数据包以及所述冗余数据包。然后,所述第一接收装置71根据数据包包头中的序号字段和标识字段来将数据包重新排列,以便后续的数据包丢失判断。
接着转入步骤S231,判断是否有所述被传输的数据包丢失。具体地,通过所述数据包包头中的分组长度字段可以获知该数据包组的长度,即该数据包组中数据包的个数,将该分组长度与接收到的数据包的个数相比较,若相等,则判断为没有数据包丢失,否则,判断为有数据包丢失,再进一步判断具体哪些数据包丢失。也可以通过所述数据包包头中的信息段长度字段可以获知该数据包组中所述被传输数据包的个数,将该信息段长度与接收到的所述被传输数据包的个数相比较,若相等,则判断为没有所述被传输数据包丢失,否则,判断为有所述被传输数据包丢失,再进一步判断具体哪些数据包丢失。还可以直接通过检测数据包包头中的序号字段和标识字段,能够获知具体是哪些所述被传输数据包丢失或者哪些冗余数据包丢失了。
例如,在一个数据包组中,D0~D5、P、Q、包头中序号字段和标识字段的十进制值分别为(0,0)、(1,0)、(2,0)、......、(5,0)、(6,1)、(7,2)为一组。若接收端在对数据包进行排序后发现一组数据包中,序号字段和标识字段的十进制值分别为(0,0)、(3,0)的两个数据包丢失,则根据序号字段判断分组中第一、四个数据包丢失,再根据标识字段进一步得知数据包D0、D3丢失;若发现序号字段和标识字段的十进制值分别为(4,0)、(7,2)的数据包丢失,则根据序号字段判断分组中第五、八个数据包丢失,再根据标识字段进一步得知数据包D4、Q丢失。
最后执行步骤S232,若所述被传输数据包丢失,则执行丢包恢复操作。具体地,本领域技术人员理解,本步骤与发送端生成冗余数据包的过程相适应。例如在本实施例中,发送端针对一个所述被传输的数据包生成一个所述冗余数据包,例如图2所示的第一实施例以及其变化例所描述的那样。此时,我们假设一个数据包组中有一个被传输数据包D、冗余数据包P,接收端发现D丢失,则根据发送端生成所述冗余数据包的运算的相应的运算来恢复丢包。例如,生成所述冗余包的运算为取反运算,则通过计算式D=~P来恢复数据包D。又例如,生成所述冗余包的运算为乘1运算,则通过计算式D=P来恢复数据包D。再例如,生成所述冗余包的运算为右移L位运算,则通过计算式D=P<<L来恢复数据包D。还例如,生成所述冗余包的运算为运算,则通过计算式来恢复数据包D。
在一个变化例中,发送端针对多个所述被传输的数据包生成一个冗余数据包,例如图3所示第二实施例的那样。在这样的变化例中,我们假设一个数据包组中有六个被传输数据包D0至D5、冗余数据包P。若D0丢失,则通过解方程式来恢复数据包D0。
在又一个变化例中,发送端针对多个所述被传输的数据包生成两个所述冗余数据包,例如图3所示第二实施例的一个变化例的情况。在这样的变化例中,如果接收端发现所述数据包组中至多有两个所述被传输的数据包丢失,并且所述冗余数据包中至少两个数据包未丢失,则可以通过求解由生成冗余数据包的计算式构成的方程组来恢复丢包。例如,一个数据包组中有六个所述被传输的数据包D0至D5,所述冗余数据包包括两个数据包P、Q,若D0和D1丢失,则对如下两个方程式求解以恢复数据包D0和D1解方程组 得到t0i和t1i,其中,Pi为(在步骤S220提到的那样)将P分割成长度为8比特的小段。再将t01,t02,t03,......,t0i按序拼接成D0,将t11,t12,t13,......,t1i按序拼接成D1。
在上述工作原理示意图以及流程图的基础上,图5进一步示出根据本发明的第一实施例,在流媒体控制设备中用于控制流媒体传输的控制装置的结构示意图、在流媒体控制设备中用于接收流媒体的辅助控制装置的结构示意图以及两者的关系示意图。具体地,所述控制装置1包括第一生成装置11、第一发送装置12,对应地,所述辅助控制装置7包括第一接收装置71、第一判断装置72以及第一处理装置73。其中,所述控制装置1中的所述第一生成装置11用于针对被传输的数据包进行封闭性运算以生成冗余数据包,其中,所述被传输的数据包与所述流媒体对应,所述封闭性运算包括符合计算封闭性特性的计算步骤;所述第一发送装置12则用于发送所述被传输的数据包以及所述冗余数据包,例如将所述被传输的数据包(即原始数据包)与所述冗余数据包按照预定顺序予以发送,在此不予赘述。相应地,所述辅助控制装置7中的第一接收装置71用于接收被传输的数据包,其中,所述数据包包括上述原始数据包以及冗余数据包,与上述第一生成装置11相呼应,所述原始数据包也同样与所述流媒体对应;所述第一判断装置72用于判断所述原始数据包是否丢失;以及所述第一处理装置73用于当所述原始数据包丢失时执行丢包恢复操作。通过所述控制装置1以及辅助控制装置7的配合,被处理的流媒体经所述控制装置1处理(例如其中第一生成装置11生成冗余数据包的处理)后发送至所述辅助控制装置7,进而通过该装置7的处理(例如所述第一处理装置73的丢包恢复处理)使得包含于其中的流媒体(例如视频)呈现给用户,在此不予赘述。进一步地,本领域技术人员理解,上述控制装置1通常可以置于一个流媒体控制设备(例如视频会议控制系统)中,而相应地,所述辅助控制装置7也可以置于另一个流媒体控制设备中,从而通过这两个装置的配合使得多个流媒体控制设备可以互相发送、解码流媒体,而且这样的流媒体控制设备可以适应网络丢包的情况。
具体地,在本实施例中,所述第一生成装置11包括第二生成装置111,其用于对一个被传输的数据包进行封闭性运算以生成冗余数据包,更具体地,该装置111针对一个被传输的数据包生成一个冗余数据包,然后由所述第一发送装置12将所述被传输的数据包以及所述冗余数据包连续地向所述第一接收装置71进行流式传输。具体地,在本实施例中,所述第一处理装置73包括第二处理装置731,其用于根据所述冗余数据包的个数执行所述丢包恢复操作。相应地,在本实施例中,所述第二处理装置731包括第二判断装置7311以及第三处理装置7312。其中,所述第二判断装置7311用于判断所述丢失的原始数据包是否超过一个,换句话说判断所述冗余数据包是否丢失;其中,所述第三处理装置7312用于当所述丢失的原始数据包未超过一个时则根据被接收到的冗余数据包执行生成所述该冗余数据包的逆操作。本领域技术人员理解,通过上述第二生成装置111以及第二判断装置7311、第三处理装置7312的配合,完成对多个被传输的数据包只生成一个冗余数据包的具体处理过程。
具体地,在本实施例中,可以通过多种方式实现上述第二生成装置111。例如,可以针对一个被传输的数据包执行封闭性运算,例如该封闭性运算可以是取反操作,即P=~D,其中,P为冗余数据包,D为被传输的数据包,冗余数据包P的二进制值由被传输的数据包D的二进制值按位取反得到;又例如,也可以执行按位乘1运算,即P=D;再例如,针对一个数据包(或其他被处理的数据单位)中的部分数据位执行取反操作、对其余数据位执行乘1操作;又例如还可以执行移位运算,所述P为所述D的二进制序列移L位所得,即P=D>>L,其中,移位运算可以是左移、右移、无符号左移、或者无符号右移,在此不予赘述。相应地,所述第三处理装置7312在判断所述冗余数据包并未丢失时,则相应地执行生成该冗余数据包的逆操作,例如当通过取反操作获得所述冗余数据包时,则可以再次针对该冗余数据包执行取反操作,从而获得原始数据包。
在上述图5所示实施例的一个变化例中,所述第一生成装置11包括第三生成装置(图5中未示出),该装置用于对多个被传输的数据包进行封闭性运算以生成冗余数据包。例如,首先将多个被传输的数据包分为若干个数据包组,或者说选择前n个数据包作为第一组,然后对其进行处理;再顺序选择后n个数据包作为第二组,然后进行类似的生成冗余包的处理,直至处理完毕所有的数据包。具体地,采用(n,k)表示所述数据包组,其中n为数据包组长度,其长度等于该数据包组中所有数据包的个数;k为信息段长度,其长度等于该数据包组中被传输数据包的个数;(n-k)表示冗余段长度,在本变化例中,所述冗余数据包的个数为一个。优选地,所述冗余数据包可以根据如下计算式生成其中,所述P表示所述冗余数据包,所述Dn表示一个数据包组中的所述被传输的数据包,符号

表示按位异或运算。具体地,如上述k=6的情况下,则所述n=7, 本领域技术人员理解,针对上述根据多个被传输数据包(原始数据包)进行封闭性运算生成一个冗余数据包的变化例,图5所示第二处理装置731也应相应地变化,即该第二处理装置731仍然执行异或操作(生成冗余数据包的逆操作)来恢复丢失的数据包,但由于依据多个被传输数据包生成该冗余数据包,所以也要依据该多个被传输数据包以及所述冗余数据包恢复丢失的原始数据包。例如,在原始数据包D1丢失时,则可以执行如下操作来获得所述被丢失的数据包D1 在上述图5所示实施例的又一个变化例中,所述第三生成装置对多个所述被传输的数据包进行封闭性运算生成两个所述冗余数据包。例如第三生成装置首先针对多个被传输的数据包执行异或操作以获得第一冗余数据包P,然后针对所述多个被传输的数据包执行异或操作和乘法操作的混合计算,以获得第二冗余数据包Q,优选地所述混合计算如下所示为 其中,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述

表示基于Galois域或基于其他可以满足封闭性的域的自定义乘法,例如基于Galois域GF(2m)的Reed-Solomon算法中的模二乘法,其中,m是本原多项式的次数。其中,所述An是m比特的二进制序列,并且是Galois域GF(2m)中的元素(除元素0外)。具体地,在这样的变化例中,图5所示第二处理装置731相应地变化,即该第二处理装置731包括第三判断装置7313以及第四处理装置7314(图6)。其中第三判断装置7313用于判断所述丢失的数据包是否超过两个;所述第四处理装置7314用于当所述丢失的数据包未超过两个时根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作。其中针对丢失的数据包的不同,所述第四处理装置7314可以通过不同的方式实现。具体地,例如,假设一个数据包组中有六个所述被传输的数据包D0至D5,所述冗余数据包包括两个数据包P、Q,若D0和D1丢失,则该第四处理装置7314包括第七处理装置(图6中未示出),该第七处理装置用于对如下两个方程式求解以恢复数据包D0和D1。解如下方程组 从而得到t0i和t1i,其中,Pi为(在步骤S220提到的那样)将P分割成长度为8比特的小段。再将t01,t02,t03,......,t0i按序拼接成D0,将t11,t12,t13,......,t1i按序拼接成D1。
又例如,在上述变化例中,假设丢失了数据包D0-Dn中的任意1个数据包(例如D1)和第二冗余包Q丢失,第一冗余包P未丢失,则该第四处理装置7314包括第六处理装置(图6中未示出),该第六处理装置通过如下计算式来恢复丢失的数据包 又例如,仍然在上述变化例中,假设丢失了数据包D0-Dn中的任意1个数据包(例如D1)和第一冗余包P丢失,第二冗余包Q未丢失,则该第四处理装置7314包括第五处理装置73141,如图6所示,该装置73141通过对如下方程式进行计算来恢复丢失的数据包的小段t1i(例如8比特) 然后,将得到的小段t11,t12,t13,......,t1i按序拼接成D1。
参考上述图5、图6所示实施例以及相应的变化例,本领域技术人员理解,所述控制装置1与辅助控制装置7是相辅相成的,换句话说,两者必须按照同样的运算规则来处理被传输的包含流媒体的数据包。例如,当所述控制装置1中的第三生成装置111生成两个冗余数据包时,则所述辅助控制装置7中的第二处理装置731所包括的第三判断装置7313判断丢失的数据包超过两个时,则本发明提供的方案并不适合处理这样的情况。在这样的情况下,则优选地应该根据本发明提供的方案由所述第三生成装置111生成三个冗余数据包来予以处理,本领域技术人员结合现有技术可以实现这样的变化,在此不予赘述。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
权利要求
1.一种在流媒体控制设备中用于控制流媒体传输的控制方法,其中,包括如下步骤
a.针对被传输的数据包进行封闭性运算以生成冗余数据包,其中,所述被传输的数据包与所述流媒体对应,所述封闭性运算包括符合计算封闭性特性的计算步骤;
b.发送所述被传输的数据包以及所述冗余数据包。
2.根据权利要求1所述的方法,其中,所述步骤a包括如下步骤
a1.对一个被传输的数据包进行封闭性运算以生成冗余数据包。
3.根据权利要求2所述的方法,其中,所述封闭性运算包括如下操作中的任一种或任多种
-取反操作,即针对所述被传输的数据包中的每一个数据位执行取反操作;
-乘1操作,即将所述被传输的数据包作为所述冗余数据包;
-移位操作,即针对所述被传输的数据包中的每一个数据位执行循环移位操作;
-取反操作与乘1操作的混合操作,即针对所述被传输的数据包中的部分数据位执行取反操作并针对其余数据位执行乘1操作;以及
-特定的乱序操作,即按照特定的规则变化所述被传输的数据包中的部分或全部数据位的位置。
4.根据权利要求1所述的方法,其中,所述步骤a包括如下步骤
a1′.对多个被传输的数据包进行封闭性运算以生成冗余数据包。
5.根据权利要求4所述的方法,其中,所述冗余数据包包括一个数据包。
6.根据权利要求5所述的方法,其中,所述封闭性运算包括异或操作,即针对所述被传输的数据包中的每一个数据位执行异或操作。
7.根据权利要求4所述的方法,其中,所述冗余数据包包括多个数据包。
8.根据权利要求7所述的方法,其中,所述多个数据包是两个数据包。
9.根据权利要求8所述的方法,其中,所述封闭性运算包括如下步骤
-对所述多个被传输的数据包执行异或操作以获得第一冗余数据包;
-对所述多个被传输的数据包执行异或操作和乘法操作的混合计算,以获得第二冗余数据包,其中,所述混合计算包括
-其中,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述
表示自定义乘法,且该自定义乘法是任意的乘法运算。
10.根据权利要求所述1至9中任一项所述的方法,其中,所述步骤b包括如下步骤
-连续发送所述被传输数据包与所述冗余包。
11.根据权利要求所述1至10中任一项所述的方法,其中,所述冗余数据包的长度与本次冗余操作中的被传输的数据包中的最长一个的长度相同。
12.一种在流媒体控制设备中用于控制流媒体传输的控制装置,其特征在于,包括
第一生成装置,用于针对被传输的数据包进行封闭性运算以生成冗余数据包,其中,所述被传输的数据包与所述流媒体对应,所述封闭性运算包括符合计算封闭性特性的计算步骤;以及
第一发送装置,用于发送所述被传输的数据包以及所述冗余数据包。
13.根据权利要求12所述的控制装置,其中,所述第一生成装置包括
第二生成装置,用于对一个被传输的数据包进行封闭性运算以生成冗余数据包。
14.根据权利要求13所述的控制装置,其中,所述封闭性运算包括如下操作中的任一种或任多种
-取反操作,即针对所述被传输的数据包中的每一个数据位执行取反操作;
-乘1操作,即将所述被传输的数据包作为所述冗余数据包;
-移位操作,即针对所述被传输的数据包中的每一个数据位执行循环移位操作;
-取反操作与乘1操作的混合操作,即针对所述被传输的数据包中的部分数据位执行取反操作并针对其余数据位执行乘1操作;
-特定的乱序操作,即按照特定的规则变化所述被传输的数据包中的部分或全部数据位的位置。
15.根据权利要求12所述的控制装置,其中,所述第一生成装置包括
第三生成装置,用于对多个被传输的数据包进行封闭性运算以生成冗余数据包。
16.根据权利要求15所述的控制装置,其中,所述冗余数据包包括一个数据包。
17.根据权利要求16所述的控制装置,其中,所述封闭性运算包括异或操作,即针对所述被传输的数据包中的每一个数据位执行异或操作。
18.根据权利要求15所述的控制装置,其中,所述冗余数据包包括多个数据包。
19.根据权利要求18所述的控制装置,其中,所述多个数据包是两个数据包。
20.根据权利要求19所述的控制装置,其中,所述封闭性运算包括如下步骤
-对所述多个被传输的数据包执行异或操作以获得第一冗余数据包;
-对所述多个被传输的数据包执行异或操作和乘法操作的混合计算,以获得第二冗余数据包,其中,所述混合计算包括
-其中,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述
表示自定义乘法,且该自定义乘法是任意的乘法运算。
21.根据权利要求所述12至20中任一项所述的控制装置,其中,所述第一发送装置包括
第二发送装置,用于连续发送所述被传输数据包与所述冗余包。
22.根据权利要求所述12至21中任一项所述的控制装置,其中,所述冗余数据包的长度与本次冗余操作中的被传输的数据包中的最长一个的长度相同。
23.一种在流媒体控制设备中用于接收流媒体的辅助控制方法,其中,包括如下步骤
i.接收被传输的数据包,其中,所述数据包包括原始数据包以及冗余数据包,其中所述原始数据包与所述流媒体对应;
ii.判断所述原始数据包是否丢失;
iii.若所述原始数据包丢失,则执行丢包恢复操作。
24.根据权利要求23所述的辅助控制方法,其中,所述执行丢包恢复操作的步骤包括如下步骤
A.根据所述冗余数据包的个数执行所述丢包恢复操作。
25.根据权利要求24所述的辅助控制方法,其中,所述数据包只包括一个冗余数据包,其中,所述步骤A包括如下步骤
A1.判断所述丢失的原始数据包是否超过一个;
A2.若所述丢失的原始数据包未超过一个,则根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作。
26.根据权利要求25所述的辅助控制方法,其中,逆操作包括异或操作。
27.根据权利要求24所述的辅助控制方法,其中,所述数据包包括两个冗余数据包,其中,所述步骤A包括如下步骤
A1′.判断所述丢失的数据包是否超过两个;
A2.若所述丢失的数据包未超过两个,则根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作。
28.根据权利要求27所述的辅助控制方法,其中,丢失两个数据包,且所述丢失的数据包是任意一个原始数据包与所述第一冗余数据包,则所述根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作的步骤包括如下步骤
-对如下计算式进行求解操作
其中,所述Q表示所述第二冗余数据包,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述
表示自定义乘法,且该自定义乘法是任意的乘法运算。
29.根据权利要求27所述的辅助控制方法,其中,丢失两个数据包,且所述丢失的数据包是任意一个原始数据包与所述第二冗余数据包,则所述根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作的步骤包括如下步骤
-对被接收到的所有原始数据包以及冗余数据包执行异或操作。
30.根据权利要求27所述的辅助控制方法,其中,丢失两个数据包,且所述丢失的数据包是任意两个原始数据包,则所述根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作的步骤包括如下步骤
-对如下两个方程式求解以获取所述丢失的两个原始数据包
其中,所述D0、D1分别表示所述丢失的两个原始数据包,所述P表示所述第一冗余数据包,所述Q表示所述第二冗余数据包,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述
表示自定义乘法,且该自定义乘法是任意的乘法运算。
31.一种在流媒体控制设备中用于接收流媒体的辅助控制装置,其特征在于,包括
第一接收装置,用于接收被传输的数据包,其中,所述数据包包括原始数据包以及冗余数据包,其中所述原始数据包与所述流媒体对应;
第一判断装置,用于判断所述原始数据包是否丢失;以及
第一处理装置,用于当所述原始数据包丢失时执行丢包恢复操作。
32.根据权利要求31所述的辅助控制装置,其中,所述第一处理装置包括
第二处理装置,用于根据所述冗余数据包的个数执行所述丢包恢复操作。
33.根据权利要求32所述的辅助控制装置,其中,所述数据包只包括一个冗余数据包,其中,所述第二处理装置包括
第二判断装置,用于判断所述丢失的原始数据包是否超过一个;以及
第三处理装置,用于当所述丢失的原始数据包未超过一个时则根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作。
34.根据权利要求33所述的辅助控制装置,其中,逆操作包括异或操作。
35.根据权利要求32所述的辅助控制装置,其中,所述数据包包括两个冗余数据包,其中,所述第二处理装置包括
第三判断装置,用于判断所述丢失的数据包是否超过两个;以及
第四处理装置,用于当所述丢失的数据包未超过两个时根据被接收到的所有原始数据包以及冗余数据包执行生成所述该冗余数据包的逆操作。
36.根据权利要求35所述的辅助控制装置,其中,丢失两个数据包,且所述丢失的数据包是任意一个原始数据包与所述第一冗余数据包,所述第四处理装置包括
第五处理装置,用于对如下计算式进行求解操作
其中,所述Q表示所述第二冗余数据包,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述
表示自定义乘法,且该自定义乘法是任意的乘法运算。
37.根据权利要求35所述的辅助控制装置,其中,丢失两个数据包,且所述丢失的数据包是任意一个原始数据包与所述第二冗余数据包,所述第四处理装置包括
第六处理装置,用于对被接收到的所有原始数据包以及冗余数据包执行异或操作。
38.根据权利要求35所述的辅助控制装置,其中,丢失两个数据包,且所述丢失的数据包是任意两个原始数据包,所述第四处理装置包括
第七处理装置,用于对如下两个方程式求解以获取所述丢失的两个原始数据包
其中,所述D0、D1分别表示所述丢失的两个原始数据包,所述P表示所述第一冗余数据包,所述Q表示所述第二冗余数据包,所述An表示所述被传输的数据包,所述Dn表示乘法系数,其中,所述An与所述Dn具有强相关性,所述
表示自定义乘法,且该自定义乘法是任意的乘法运算。
39.根据权利要求9至38中任一项所述的方法或装置,其中,所述自定义乘法是位乘法,且该位乘法将所述数据包中的每8位作为一个计算单位执行位乘法操作。
40.根据权利要求9至39中任一项所述的方法或装置,其中,所述An与Dn的同属集合是基于Galois域的8阶Reed-Solomon编码集。
41.一种流媒体控制设备,其用于发送流媒体并接收流媒体,其特征在于,包括根据权利要求12至22中任一项所述的控制装置和/或权利要求31至38中任一项所述的辅助控制装置。
42.根据权利要求41所述的流媒体控制设备,其特征在于,包括如下设备中的任一种
-视频会议控制设备;或者
-视频控制设备。
全文摘要
本发明提供一种在流媒体控制设备中用于控制流媒体传输的控制方法,包括针对被传输的数据包进行封闭性运算以生成冗余数据包的步骤,以及发送所述被传输的数据包以及所述冗余数据包的步骤。还提供一种在流媒体控制设备中用于控制流媒体传输的控制装置、在流媒体控制设备中用于接收流媒体的辅助控制方法及相应的辅助控制装置。本发明至少具有如下优点运算简单,其可以采用简单的异或方式,从而使得本发明可以通过改变硬件或软件的方式来实现;在网络正常时,不引入任何时延,并且在网络丢包时,时延也只限于相关包的长度;所生成的冗余包的数量可以根据需要来调整,所以使得冗余可以被调整,从而适应各种网络丢包场景。
文档编号H04L1/00GK101577606SQ20081003718
公开日2009年11月11日 申请日期2008年5月9日 优先权日2008年5月9日
发明者聂际敏 申请人:苏州科达科技有限公司, 苏州科达通信技术发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1