一种视频数据的冗余控制方法和装置与流程

文档序号:11263886阅读:367来源:国知局
一种视频数据的冗余控制方法和装置与流程

本发明涉及视频数据传输技术领域,具体涉及一种视频数据的冗余控制方法和装置。



背景技术:

尽力服务(best-effort)是一种标准的因特网服务模式。对于best-effort的数据网络服务而言,传输丢包不可避免。

视频通话技术领域中,基于视频数据的特点,目前的主流视频压缩编码标准一般采用dpcm(differentialpulsecodemodulation,差分脉冲编码调制)编码架构,视频数据的各帧能否成功解码不仅取决于该帧自身数据的完整性,还取决于参考帧是否已解出。在这种编码架构中,i帧(iframe,又称为帧内编码帧)不参考任何帧能够独立解码,p帧(pframe,又称为帧间编码帧或者前向预测编码帧)需要结合其参考帧才能成功解码,且各帧的参考间隔也可能不相同,因此各帧数据的重要程度不一。

现有技术中用于视频数据的冗余控制方案中,大多数只是经验性地多保护i帧及i帧间隔(intra-period)内位置靠前的帧,对各帧冗余保护不够精细化,对不同的码流结构扩展性不强。



技术实现要素:

本发明实施例提供一种视频数据的冗余控制方法和装置,以实现对视频数据的各帧进行精细化的冗余保护,提高视频数据的传输性能。

本发明第一方面提供一种视频数据的冗余控制方法,包括:获取接收端反馈的视频码率和冗余等级,所述视频码率和冗余等级是由所述接收端根据丢包率计算得到的;根据所述冗余等级获取数据冗余率;按照所述视频码率对原始视频数据进行压缩编码,得到压缩视频数据;根据所述视频码率和所述数据冗余率,为所述压缩视频数据的帧分配帧级冗余码率预算;按照所述帧级冗余码率预算,对所述压缩视频数据的帧进行分包,以及对所述压缩视频数据的分包 后的帧进行冗余编码。

本发明第二方面提供另一种视频数据的冗余控制方法,包括:统计接收到的视频数据的丢包率;根据所述丢包率确定用于抵抗所述丢包率的数据冗余率;在带宽许可范围内进行码率分配,获得安全发送码率;利用所述数据冗余率和所述安全发送码率计算视频码率;获取所述数据冗余率对应的冗余等级;将所述视频码率和所述冗余等级反馈给所述发送端,所述视频码率和所述冗余等级被所述发送端用于对所述视频数据进行冗余控制。

本发明第三方面提供一种视频数据的冗余控制装置,包括:接收模块,用于获取接收端反馈的视频码率和冗余等级,所述视频码率和冗余等级是由所述接收端根据丢包率计算得到的;获取模块,用于根据所述冗余等级获取数据冗余率;视频编码模块,用于按照所述视频码率对原始视频数据进行压缩编码,得到压缩视频数据;冗余分配模块,用于根据所述视频码率和所述数据冗余率,为所述压缩视频数据的帧分配帧级冗余码率预算;冗余编码模块,用于按照所述帧级冗余码率预算,对所述压缩视频数据的帧进行分包,以及对所述压缩视频数据的分包后的帧进行冗余编码。

本发明第四方面提供另一种视频数据的冗余控制装置,包括:统计模块,用于统计接收到的视频数据的丢包率;确定模块,用于根据所述丢包率确定用于抵抗所述丢包率的数据冗余率;获得模块,用于在带宽许可范围内进行码率分配,获得安全发送码率;计算模块,用于利用所述数据冗余率和所述安全发送码率计算视频码率;获取模块,用于获取所述数据冗余率对应的冗余等级;发送模块,用于将所述视频码率和所述冗余等级反馈给所述发送端,所述视频码率和所述冗余等级被所述发送端用于对所述视频数据进行冗余控制。

本发明第五方面提供一种计算机设备,所述计算机设备包括处理器、存储器、总线和通信接口;所述存储器用于存储程序,所述处理器与所述存储器通过所述总线连接,当所述计算机设备运行时,所述处理器执行所述存储器存储的所述程序,以使所述计算机设备执行如本发明第一方面所述的视频数据的冗余控制方法,或者如本发明第二方面所述的视频数据的冗余控制方法。

本发明第六方面提供一种计算机存储介质,该计算机存储介质存储有程 序,当该计算机存储介质存储的程序被包括一个或多个处理器的计算机设备执行时,可使该计算机设备执行如本发明第一方面所述的视频数据的冗余控制方法,或者如本发明第二方面所述的视频数据的冗余控制方法。

由上可见,在本发明的一些可行的实施方式中,接收端反馈视频码率和冗余等级,发送端根据视频码率进行压缩编码到压缩视频数据,根据冗余等级获取数据冗余率,根据视频码率和数据冗余率为压缩视频数据的帧分配帧级冗余码率预算,按照间隔级冗余码率预算和帧级冗余码率预算,对压缩视频数据的帧进行分包以及对分包后的帧进行冗余编码,对视频数据的冗余控制精细化到每个帧,可以反映每个帧的重要程度,从而提高了对视频数据的冗余控制精度,有助于降低丢包率,提高视频数据的传输性能,并且有助于提高码流结构的扩展性,以适用于多种编码结构。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是hpp编码结构的示意图;

图2是本发明实施例的冗余控制系统的系统架构图;

图3是本发明一个实施例提供的视频数据的冗余控制方法的流程示意图;

图4是本发明另一实施例提供的视频数据的冗余控制方法的流程示意图;

图5是本发明一个实施例提供的视频数据的冗余控制装置的结构示意图;

图6是本发明另一实施例提供的视频数据的冗余控制装置的结构示意图;

图7是本发明一个实施例提供的计算机设备的结构示意图;

图8是本发明另一实施例提供的计算机设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所 描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

如背景技术部分所述,对于best-effort的数据网络服务而言,传输丢包不可避免。在视频通话应用中,为了提高传输性能,通常采用冗余编码的控制方法,在视频数据中增加冗余纠错包,来恢复可能的丢包。例如,voip(voiceoverinternetprotocol,网络电话)应用为了降低延时,普遍采用udp(userdatagramprotocol,用户数据报协议)协议,为了保障qos(qualityofservice,服务质量),一般都通过加冗余纠错包的方式恢复可能的丢包。

在视频数据中增加冗余纠错包的方法可以是这样的,首先,对视频数据的每个帧进行分包,每个帧的数据被分为p个数据包,然后,利用某种冗余编码算法,例如fec(forwarderrorcorrection,前向纠错)编码、rs(reedsolomon)编码、bch(bose、ray-chaudhuri与hocquenghem)编码,为该帧增加q个冗余纠错包,最后,将该帧的数据包和冗余纠错包一起向接收端传输;该种方法可以抵抗q个数据包的丢包,当有丢包时,就可以利用冗余纠错包将丢失的数据包恢复出来。其中,q和p均为正整数。需要说明的是,增加的冗余纠错包的个数的多少,决定了抗丢包能力的强弱。对于重要的,需要多保护的帧,可以增加较多的冗余纠错包。

目前的主流视频压缩编码标准一般采用dpcm编码架构,该架构下,视频数据的帧分为两种,一种是i帧,i帧为帧内编码帧,直接进行压缩编码,而不参考其它帧;另一种是p帧,p帧为帧间编码帧,需要结合其参考帧,例如前面的一个i帧,比较该p帧与参考帧的差异,针对差异数据进行压缩编码;因此,i帧可以直接进行编码或解码,p帧的编码或解码则需要结合其参考帧。因此,i帧和p帧的重要性是不同的。另外,不同的p帧的重要性可能也不同,例如,假设帧n为i帧,帧n+1和帧n+2均以帧n为参考帧,帧n+3以帧n+2为参考帧,则,帧n+2如果解码失败,则会导致n+3无法解码,可见,同为p帧的帧n+1和帧n+2的重要性也是不同的。

其它编码结构下,各帧的重要性可能也有所不同。请参考图1所示的hpp (hierarchicalp-frameprediction,一种分层预测的编码方式)编码结构,hpp采用分层预测的方式,处于不同的时间层(layer)的帧的重要性明显不同,如图1中layer0帧(p0、p4、p8)的重要性高于layer1帧(p2、p6)的重要性,更高于layer2帧(p1、p3…p7)的重要性。

然而,目前针对视频数据的冗余控制方案中,虽然也采用不对等错误保护(unequalerrorprotection,uec)策略对一些重要的帧进行重点保护,但只是经验性地多保护i帧及i帧间隔(intra-period)内位置靠前的帧,不能按照各帧的重要性的不同分别进行冗余保护,不能定量的量化各帧的重要性,或者说,无法实现帧级的精细化冗余保护,也因此导致对不同的码流结构扩展性不强。

另外,就视频分包方法而言,现有技术中都是尽量以mtu(maximumtransmissionunit,最大传输单元)大小发包,以减少分包个数节省包头开销。由于现有技术的分包方法尽量发大包,接近mtu,在网络拥塞时有可能会被某些路由的包排队策略优先丢弃,导致抗丢包能力不足,降低了传输性能。

基于上述问题,为了提高视频数据的抗丢包能力,提高视频数据的传输性能,本发明实施例提供一种视频数据的冗余控制方法以及相应的装置。

下面通过具体实施例,分别进行详细的说明。

请参考图2,是本发明实施例的冗余控制系统的系统架构图。冗余控制系统包括发送端和接收端。发送端或接收端可以部署在终端设备例如个人计算机或者移动通信终端例如智能手机、平板电脑等设备上。

如图2所示,本发明实施例的冗余控制系统中,发送端的工作流程可包括:编码参数配置,用于配置编码参数例如视频码率等;视频编码,按照配置的编码参数对视频数据进行压缩编码;冗余分配,用于为视频编码得到的压缩视频数据的帧分配冗余码率;自适应分包决策,用于确定各帧的分包方案,例如一帧数据分为多少个数据包;冗余编码,用于使用纠错编码方法例如fec等进行冗余编码,为各帧增加冗余纠错包;网络发送,用于视频数据的数据包和增加的冗余纠错包经网络传输发送给接收端。

接收端的工作流程可包括:网络收包,用于接收发送端发送的数据,包括视频数据的数据包和冗余纠错包;丢包统计,用于统计丢包率,估计拥塞情况; 同帧组包、冗余解码,用于将同一帧的数据包和冗余纠错包分为一组,进行解码,在有丢包时,利用冗余纠错包恢复出丢失的数据包,得到各帧的压缩视频数据;视频解码,用于对得到的压缩视频数据进行视频解码,得到原始视频数据;冗余控制,用于根据解码情况确定冗余比例,例如根据丢包率确定一个能够抵抗该丢包率的数据冗余率,以指示在发送端如何进行冗余控制;拥塞控制,用于根据带宽情况确定在发送端应使用的视频码率,以及,将数据冗余率和视频码率反馈给发送端;该数据冗余率和视频码率被发送端接收到以后,用于配置编码参数。

请参考图3,本发明实施例提供一种视频数据的冗余控制方法,应用于冗余控制系统的发送端,该方法可包括:

310、获取接收端反馈的视频码率和冗余等级,所述视频码率和冗余等级是由所述接收端根据丢包率计算得到的;根据所述冗余等级获取数据冗余率。

可选的,接收端和发送端可以各自保存有相同的冗余等级表,发送端在接收到冗余等级之后,可以通过查询冗余等级表获取所述冗余等级对应的数据冗余率,所述冗余等级表用于保存所述冗余等级和所述数据冗余率的对应关系。

320、按照所述视频码率对原始视频数据进行压缩编码,得到压缩视频数据。

可选的,发送端可以按照所述视频码率,采用dpcm编码架构等,对原始视频数据进行压缩编码,得到压缩视频数据,压缩视频数据可以包括i帧和p帧等不同类型的帧,其中,两个相邻i帧之间隔的帧数可以称为一个i帧间隔。一个i帧间隔内,可以包括1个i帧和多个p帧。

330、根据所述视频码率和所述数据冗余率,为所述压缩视频数据的帧分配帧级冗余码率预算。

本步骤中,可首先根据视频码率和数据冗余率,为压缩视频数据的每个i帧间隔分配间隔级冗余码率预算,然后,可以根据一个i帧间隔内各帧的重要性为各帧分配不同的权重,结合所分配的权重以及该i帧间隔的间隔级冗余码率预算,为该i帧间隔内的每个帧分别分配帧级冗余码率预算。

在一些实施方式中,某帧重要性可定义为该帧解码失败导致同一intra-period内后续不能解码的帧数。假设某一intra-period内的第i帧解码失败时同一intra-period内后续不能解码的帧数为ci,则可以按照ci为该帧分配权重,分配第i帧权重为ηi=ci/∑ci,∑ci为同一intra-period内所有ci的和。

在一些实施方式中,记brv为视频码率,r为数据冗余率,brr为间隔级冗余码率预算,则可利用公式来计算和分配间隔级冗余码率预算。

在一些实施方式中,记ηi为i帧间隔内的第i帧的权重,ri为第i帧的帧级冗余码率预算,则可利用公式ri=ηi*brr来计算和分配帧级冗余码率预算。

在一些实施方式中,为保证关键帧达到冗余要求且总码率不会超过安全发送码率brs,以第i帧为例,可以利用所述第i帧的编码大小si对所述第i帧的帧级冗余码率预算ri进行修正,将ri限制在ri[α*si,β*si]区间内,其中,α、β为局部冗余系数,α、β的取值区间为[0,1]。

340、按照所述帧级冗余码率预算,对所述压缩视频数据的帧进行分包,以及对所述压缩视频数据的分包后的帧进行冗余编码。

本发明实施例中,在对压缩视频数据的某个帧进行分包以后,可以利用fec编码、rs编码或bch编码等编码方法,对压缩视频数据的该帧进行冗余编码,其中,可以按照所分配的帧级冗余码率预算,分别为不同的帧增加不同个数的冗余纠错包,以实现帧级的精细化冗余保护。

现有技术的分包方法尽量发大包,接近mtu,在网络拥塞时有可能会被某些路由的包排队策略优先丢弃,导致抗丢包能力不足。本发明一些实施例中,根据数据冗余率要求,可以计算所述压缩视频数据的帧的最佳分包参数,按照所述最佳分包参数进行分包,实现自适应调整分包大小,在有限的冗余码率预算内选取抗丢包能力最强的方案。

以第i帧为例,计算最佳分包参数的流程可以包括:

确定所述压缩视频数据的第i帧的分包个数的范围,i为正整数;

遍历所述范围内的任一分包个数nj,计算该分包个数nj对应的分包大小lj和冗余包个数mj,计算该分包个数nj下的包级冗余率rp以及超预算偏差δ;

其中,δ=(nj+mj)*lj-(si+ri),si为所述第i帧的编码大小,ri为所述第i帧的帧级冗余码率预算;

将包级冗余率rp最大且超预算偏差δ最小时的分包个数以及分包大小和冗余包个数,确定为最佳分包参数。

以上,结合图3,本文以发送端为执行主体对本发明实例方法进行介绍,该方法中,接收端反馈视频码率和冗余等级,发送端根据视频码率进行压缩编码到压缩视频数据,根据冗余等级获取数据冗余率,根据视频码率和数据冗余率为压缩视频数据的i帧间隔分配间隔级冗余码率预算,为i帧间隔内的帧分配帧级冗余码率预算,按照间隔级冗余码率预算和帧级冗余码率预算,对压缩视频数据进行分包和冗余编码,于是,实现了i帧间隔和帧这两个级别的冗余控制,对视频数据的冗余控制精细化到每个帧,可以反映每个帧的重要程度,从而提高了对视频数据的冗余控制精度,有助于降低丢包率,提高视频数据的传输性能,并且有助于提高码流结构的扩展性,以适用于多种编码结构。

下面,继续以接收端为执行主体继续介绍本发明实施例方法。

请参考图4,本发明实施例还提供一种视频数据的冗余控制方法,应用于冗余控制系统的接收端,该方法可包括:

410、统计接收到的视频数据的丢包率;

接收端可以子啊接收发送端发送的视频数据的数据包的过程中,统计出丢包率,这里用l表示丢包率。

420、根据所述丢包率确定用于抵抗所述丢包率的数据冗余率;

在一些实施例中,可以采用公式r=k*l确定数据冗余率,其中,l为丢包率,k为不大于3且不小于1的系数,r为数据冗余率,且r小于1。优选的,可以先定r小于1。

430、在带宽许可范围内进行码率分配,获得安全发送码率;

安全发送码率应不大于可用带宽。

440、利用所述数据冗余率和所述安全发送码率计算视频码率;

在一些实施例中,可以采用公式brv=brs*(1-r)计算视频码率,其中,brs 为安全发送码率,brv为视频码率。

450、获取所述数据冗余率对应的冗余等级;

可选的,接收端和发送端可以各自保存有相同的冗余等级表,接收端可以通过查询冗余等级表获取所述数据冗余率r对应的冗余等级rslevel,所述冗余等级表用于保存所述冗余等级和所述数据冗余率的对应关系。

460、将所述视频码率和所述冗余等级反馈给所述发送端,所述视频码率和所述冗余等级被所述发送端用于对所述视频数据进行冗余控制。

可选的,接收端可以通过rtcp协议将brv及rslevel反馈给发送端。

以上,结合图4,本文以接收端为执行主体对本发明实例方法进行介绍,该方法中,接收端通过统计丢包率,确定视频码率和数据冗余率,以及数据冗余率对应的冗余等级,将视频码率和冗余等级反馈给发送端,以便发送端用来对视频数据进行帧级的冗余控制,从而提高了对视频数据的冗余控制精度,有助于降低丢包率,提高视频数据的传输性能,并且有助于提高码流结构的扩展性,以适用于多种编码结构。

为便于更好的理解本发明实施例提供的技术方案,下面通过一个具体场景下的实施方式为例进行介绍。

本发明实施例的另一种视频数据的冗余控制方法,可包括:

s1、发送端进行冗余编码。

本发明实施例中抗丢包冗余编码可使用某种纠错编码方法如fec编码、rs编码、bch编码等,具备恢复一定数量丢包的能力。一帧视频数据经过压缩编码后可以分成n(n≥1)个数据包,分别为p1…pn,通过以上某种冗余编码算法加m个冗余数据包,分别为r1…rm,则该码组{p1…pn,r1…rm}可抗任意m个以内的丢包,即不超过的丢包率。

s2、配置冗余等级表。

为了减少反馈数据量,发送端和接收端可存有一个共同约定好的冗余等级表,表中每一冗余等级索引某一数据冗余率r,用以抵抗一定的网络丢包率l。

s3、接收端确定数据冗余率。

接收端收包过程中可统计出丢包率l,冗余控制系统中可以根据某种策略确定一个足以抵抗该丢包率的数据冗余率r,该种策略可以是保守的如r=l,或者比较有保障的如r=k*l(k>1)。考虑到网络带宽容量限制与抗丢包能力之间的权衡,实际使用中可规定1≤k≤3。

s4、接收端rtcp反馈。

得到数据冗余率r后,接收端的流量拥塞控制(congestioncontrol)功能将在带宽许可的范围内进行码率分配,假设拥塞控制功能得出的安全发送码率是brs(brs<=a,a是估计出的可用带宽),则纯视频码率为brv=brs*(1-r)。另外,在冗余等级表里找出根据数据冗余率r对应的冗余等级rslevel,并通过rtcp协议将brv及rslevel反馈给发送端。

s5、发送端视频编码并在intra-period级视频分配冗余预算

发送端收到rtcp反馈,可以使用其中的brv及其配套的一组相关参数进行压缩编码,本文中,假设一个intra-period内第i帧编码后的帧大小是si。另外,发送端可通过rtcp携带的rslevel索引期望的数据冗余率r,并采用以下公式计算出该intra-period的冗余码率预算

由于参考关系的差异,intra-period内各帧的重要性有所不同,需要结合其重要性进行非对等错误保护。如i帧的重要性高于p帧,ippp参考结构中,gop(groupofpictures,画面组)前面的帧重要性高于后面的帧;另外,不同的编码结构中各帧的重要程度也不相同,如hpp参考结构中低layer的帧比高layer的帧重要,最低layer位于intra-period前面的帧比后面的帧更重要。为了量化帧的重要性,可定义第i帧的权重为ηi,ηi为归一化值。

其中,权重可以采用经验值,也可以按照某种算法得出,如某帧重要性可定义为该帧解码失败导致同一intra-period内后续不能解码的帧数。

根据上面定义的权重,可得到分配给第i帧的期望冗余码率为ri=ηi*brr。

此外,视频场景可能发生变化,使得实际编码码率可能不等于期望码率brv,因此需要根据实际编码大小对冗余码率修正,以保证关键帧,例如i帧以 及hpp的layer0帧,达到冗余要求且总码率不会超过安全发送码率brs。

具体到作为示例的第i帧,可以将ri限制在[α*si,β*si]区间,其中α、β为局部冗余系数,取值区间为[0,1],即ri=max(min(ri,β*si),α*si)。

s6、帧级自适应调整分包大小。

一般网络包大小不超过最大传输单元(mtu),考虑到传输效率及可能对音频数据的影响,视频包大小也不宜过小,一般存在经验最小值lmin。发送端冗余控制功能可据当前帧编码大小及当前冗余码率预算,自适应调整分包大小,总体目标是:

1)冗余可控,按比例准确加冗余;

2)在冗余预算内尽可能提高抗丢包能力。

得到某帧的冗余预算ri后,结合该帧的实际编码大小si确定分包方式。

算法流程如下:

a)根据分包大小范围[lmin,lmax]确定视频帧最大、最小分包个数[nmax,nmin],其中ceil为向上取整,floor为向下取整;

b)遍历所有分包个数nj∈[nmin,nmax],计算相应的分包大小并得到相应的冗余包个数γ为弹性系数,主要考虑到小数部分较大时向下取整降低冗余率的问题,此时如果intra-period级冗余预算还足够,允许在弹性范围内超本帧的冗余预算;

c)计算每种分包方案的包级冗余率rp及实际超预算偏差δ

δ=(nj+mj)*lj-(si+ri)

在所有分包方式中找出rp最大的方案(抗丢包能力最高),得到最佳分包参数{n*,l*,m*}。如果最大包级冗余率rp对应多种分包方案,则取δ最小的那个。

由上可见,本发明实施例方法,可用于视频数据传输例如视频通话,可以在intra-period级将冗余码率按各帧的重要性分配,可以根据压缩编码后实际视频帧大小、冗余码率预算进行自适应分包参数调整,以达到最大抗丢包能力。

本发明实施例的冗余控制系统中,由接收端根据丢包情况合理决策冗余比例,以具备抵抗一定程度的网络丢包的能力。结合网络带宽估计得到冗余码率预算,冗余控制系统将通过i帧间隔(intra-period)级整体控制、帧级自适应调整两个层次进行冗余码率预算分配。就视频intra-period内所有帧整体而言,系统根据各帧的重要性对压缩编码后数据加以相应水平的帧级冗余保护,以提高intra-period整体的恢复能力。此外,为了在冗余预算内最大程度提高单帧的抗丢包能力,本发明实施例还通过自适应调整,寻找最佳分包参数,以达到最高“包级”冗余率。

为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。

请参考图5,本发明实施例提供一种视频数据的冗余控制装置500,该装置可用于冗余控制系统的发送端,该装置可包括:

接收模块510,用于获取接收端反馈的视频码率和冗余等级,所述视频码率和冗余等级是由所述接收端根据丢包率计算得到的;

获取模块520,用于根据所述冗余等级获取数据冗余率;

视频编码模块530,用于按照所述视频码率对原始视频数据进行压缩编码,得到压缩视频数据;

冗余分配模块540,用于根据所述视频码率和所述数据冗余率,为所述压缩视频数据的帧分配帧级冗余码率预算;

冗余编码模块550,用于按照所述帧级冗余码率预算,对所述压缩视频数据的帧进行分包,以及对所述压缩视频数据的分包后的帧进行冗余编码。

在本发明一些实施例中,所述获取模块520具体用于:通过查询冗余等级表获取所述冗余等级对应的数据冗余率,所述冗余等级表用于保存所述冗余等级和所述数据冗余率的对应关系。

在本发明一些实施例中,所述冗余分配模块540具体用于:为所述压缩视频数据的i帧间隔分配间隔级冗余码率预算,根据所述间隔级冗余码率预算为所述i帧间隔内的帧分配帧级冗余码率预算。

其中,在本发明一些实施例中,可以所述冗余分配模块540具体用于:利用以下公式为所述压缩视频数据的i帧间隔分配间隔级冗余码率预算:

其中,brv为所述视频码率,r为所述数据冗余率,brr为所述间隔级冗余码率预算。

在本发明一些实施例中,所述冗余分配模块540具体用于:

利用以下公式为所述i帧间隔内的帧分配帧级冗余码率预算:

ri=ηi*brr

其中,ηi为所述i帧间隔内的第i帧的权重,ri为所述第i帧的帧级冗余码率预算,i为正整数。

在本发明一些实施例中,所述冗余分配模块540还用于::

利用所述第i帧的编码大小si对所述第i帧的帧级冗余码率预算ri进行修正,将ri限制在ri[α*si,β*si]区间内,其中,α、β为局部冗余系数,α、β的取值区间为[0,1]。

在本发明一些实施例中,所述冗余编码模块550具体用于:根据所述帧级冗余码率预算计算所述压缩视频数据的帧的最佳分包参数;按照所述最佳分包参数进行分包。

在本发明一些实施例中,所述冗余编码模块550具体用于:

确定所述压缩视频数据的第i帧的分包个数的范围,i为正整数;

遍历所述范围内的任一分包个数nj,根据所述第i帧的编码大小和帧级冗余码率预算计算该分包个数nj对应的分包大小lj和冗余包个数mj,计算该分包个数nj下的包级冗余率rp以及超预算偏差δ;

其中,δ=(nj+mj)*lj-(si+ri),si为所述第i帧的编码大小,ri 为所述第i帧的帧级冗余码率预算;

将包级冗余率rp最大且超预算偏差δ最小时的分包个数以及分包大小和冗余包个数,确定为最佳分包参数。

可以理解,本发明实施例装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。

以上,结合图5,本发明实施例提供了一种用于发送端的视频数据的冗余控制装置,该装置可获取接收端反馈的视频码率和冗余等级,根据视频码率进行压缩编码到压缩视频数据,根据冗余等级获取数据冗余率,根据视频码率和数据冗余率为压缩视频数据的i帧间隔分配间隔级冗余码率预算,为i帧间隔内的帧分配帧级冗余码率预算,按照间隔级冗余码率预算和帧级冗余码率预算,对压缩视频数据进行分包和冗余编码,于是,实现了i帧间隔和帧这两个级别的冗余控制,对视频数据的冗余控制精细化到每个帧,可以反映每个帧的重要程度,从而提高了对视频数据的冗余控制精度,有助于降低丢包率,提高视频数据的传输性能,并且有助于提高码流结构的扩展性,以适用于多种编码结构。

请参考图6,本发明实施例提供一种视频数据的冗余控制装置600,该装置可用于冗余控制系统的接收端,该装置可包括:

统计模块610,用于统计接收到的视频数据的丢包率;

确定模块620,用于根据所述丢包率确定用于抵抗所述丢包率的数据冗余率;

获得模块630,用于在带宽许可范围内进行码率分配,获得安全发送码率;

计算模块640,用于利用所述数据冗余率和所述安全发送码率计算视频码率;

获取模块650,用于获取所述数据冗余率对应的冗余等级;

发送模块660,用于将所述视频码率和所述冗余等级反馈给所述发送端,所述视频码率和所述冗余等级被所述发送端用于对所述视频数据进行冗余控制。

在本发明一些实施例中,所述确定模块620具体用于:

采用公式r=k*l确定数据冗余率,其中,l为丢包率,k为不大于3且不小于1的系数,r为数据冗余率,且r小于1。

在本发明一些实施例中,所述计算模块640具体用于:

采用公式brv=brs*(1-r)计算视频码率,其中,brs为安全发送码率,brv为视频码率。

可以理解,本发明实施例装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。

以上,结合图6,本发明实施例提供了一种用于接收端的视频数据的冗余控制装置,该装置可通过统计丢包率,确定视频码率和数据冗余率,以及数据冗余率对应的冗余等级,将数据冗余率和冗余等级反馈给发送端,以便发送端用来对视频数据进行帧级的冗余控制,从而提高了对视频数据的冗余控制精度,有助于降低丢包率,提高视频数据的传输性能,并且有助于提高码流结构的扩展性,以适用于多种编码结构。

本发明实施例还提供一种计算机存储介质,该计算机存储介质可存储有程序,该程序执行时包括上文如图3所示的方法实施例中记载的视频数据的冗余控制方法的部分或全部步骤,或者,包括如图4所示的方法实施例中记载的视频数据的冗余控制方法的部分或全部步骤。当该计算机存储介质存储的程序被包括一个或多个处理器的计算机设备执行时,可使该计算机设备执行如图3所示的方法实施例中记载的视频数据的冗余控制方法,或者,如图4所示的方法实施例中记载的视频数据的冗余控制方法。

请参考图7,本发明实施例还提供一种计算机设备700。

处理器710,存储器720,通信接口730,总线740;

所述存储器720用于存储程序750,所述处理器710与所述存储器720通过所述总线740连接,当所述计算机设备700运行时,所述处理器710执行所述存储器720存储的所述程序750,以使所述计算机设备700执行如图3所示的方法实施 例中记载的视频数据的冗余控制方法。

其中,通信接口730执行如下步骤:获取接收端反馈的视频码率和冗余等级,所述视频码率和冗余等级是由所述接收端根据丢包率计算得到的;

处理器710执行如下步骤:根据所述冗余等级获取数据冗余率;按照所述视频码率对原始视频数据进行压缩编码,得到压缩视频数据;根据所述视频码率和所述数据冗余率,为所述压缩视频数据的帧分配帧级冗余码率预算;按照所述帧级冗余码率预算,对所述压缩视频数据的帧进行分包,以及对所述压缩视频数据的分包后的帧进行冗余编码。

可选的,处理器710还执行如下步骤:通过查询冗余等级表获取所述冗余等级对应的数据冗余率,所述冗余等级表用于保存所述冗余等级和所述数据冗余率的对应关系。

可选的,处理器710还执行如下步骤:为所述压缩视频数据的i帧间隔分配间隔级冗余码率预算,根据所述间隔级冗余码率预算为所述i帧间隔内的帧分配帧级冗余码率预算。

可选的,处理器710还执行如下步骤:

利用以下公式为所述压缩视频数据的i帧间隔分配间隔级冗余码率预算:

其中,brv为所述视频码率,r为所述数据冗余率,brr为所述间隔级冗余码率预算。

可选的,处理器710还执行如下步骤:

利用以下公式为所述i帧间隔内的帧分配帧级冗余码率预算:

ri=ηi*brr

其中,ηi为所述i帧间隔内的第i帧的权重,ri为所述第i帧的帧级冗余码率预算,i为正整数。

可选的,处理器710还执行如下步骤:

利用所述第i帧的编码大小si对所述第i帧的帧级冗余码率预算ri进行修正,将ri限制在ri[α*si,β*si]区间内,其中,α、β为局部冗余系数,α、β的取 值区间为[0,1]。

可选的,处理器710还执行如下步骤:根据所述帧级冗余码率预算计算所述压缩视频数据的帧的最佳分包参数;按照所述最佳分包参数进行分包。

可选的,处理器710还执行如下步骤:

确定所述压缩视频数据的第i帧的分包个数的范围,i为正整数;

遍历所述范围内的任一分包个数nj,计算该分包个数nj对应的分包大小lj和冗余包个数mj,计算该分包个数nj下的包级冗余率rp以及超预算偏差δ;

其中,δ=(nj+mj)*lj-(si+ri),si为所述第i帧的编码大小,ri为所述第i帧的帧级冗余码率预算;

将包级冗余率rp最大且超预算偏差δ最小时的分包个数以及分包大小和冗余包个数,确定为最佳分包参数。

其中,所述总线740可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线或外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

所述存储器720可以包含高速ram(ramdomaccessmemory)存储器。可选地,所述存储器720还可以还包括非易失性存储器(non-volatilememory)。例如所述存储器720可以包括磁盘存储器。

所述处理器710可以是一个中央处理器(centralprocessingunit,简称为cpu),或者所述处理器710可以是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者所述处理器710可以是被配置成实施本发明实施例的一个或多个集成电路。

可以理解,本发明实施例的计算机设备的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。

本发明实施例公开的计算机设备可以执行如上文方法实施例所述的视频数据的冗余控制方法,并取得上文方法实施例所能取得的技术效果。

请参考图8,本发明实施例还提供一种计算机设备800。

处理器810,存储器820,通信接口830,总线840;

所述存储器820用于存储程序850,所述处理器810与所述存储器820通过所述总线840连接,当所述计算机设备800运行时,所述处理器810执行所述存储器820存储的所述程序850,以使所述计算机设备800执行如图4所示的方法实施例中记载的视频数据的冗余控制方法。

其中,

处理器810执行如下步骤:统计接收到的视频数据的丢包率;根据所述丢包率确定用于抵抗所述丢包率的数据冗余率;在带宽许可范围内进行码率分配,获得安全发送码率;利用所述数据冗余率和所述安全发送码率计算视频码率;获取所述数据冗余率对应的冗余等级;

通信接口830执行如下步骤:将所述视频码率和所述冗余等级反馈给所述发送端,所述视频码率和所述冗余等级被所述发送端用于对所述视频数据进行冗余控制。

可选的,处理器810还执行如下步骤:采用公式r=k*l确定数据冗余率,其中,l为丢包率,k为不大于3且不小于1的系数,r为数据冗余率,且r小于1。

可选的,处理器810还执行如下步骤:采用公式brv=brs*(1-r)计算视频码率,其中,brs为安全发送码率,brv为视频码率。

其中,所述总线840可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线或外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

所述存储器820可以包含高速ram(ramdomaccessmemory)存储器。可选地,所述存储器820还可以还包括非易失性存储器(non-volatilememory)。 例如所述存储器820可以包括磁盘存储器。

所述处理器810可以是一个中央处理器(centralprocessingunit,简称为cpu),或者所述处理器810可以是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者所述处理器810可以是被配置成实施本发明实施例的一个或多个集成电路。

可以理解,本发明实施例的计算机设备的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。

本发明实施例公开的计算机设备可以执行如上文方法实施例所述的视频数据的冗余控制方法,并取得上文方法实施例所能取得的技术效果。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上对本发明实施例所提供的视频数据的冗余控制方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1