视频码率自适应调整方法及发送端设备与流程

文档序号:12628335阅读:366来源:国知局
视频码率自适应调整方法及发送端设备与流程

本发明实施例涉及通信技术,尤其涉及一种视频码率自适应调整方法及发送端设备。



背景技术:

一般来说,视频传输过程中,发送端设备的视频编码器以一定码率产生视频流,并将视频流暂存于发送端设备的缓存中。然后,通过传输管道将缓存中的视频流传输至接收端设备。其中,传输管道可以为无线或有线的管道。该传输过程中,传输管道的通信协议采用用户数据包协议(User Data Protocol,UDP)或传输控制协议(Transmission Control Protocol,TCP)。

当传输管道采用UDP通信协议时,视频流为UDP流。此时,由于UDP通信协议没有拥塞检测和规避机制,当传输管道出现拥塞时,拥塞无法消除,导致视频丢包、视频业务质量下降的问题。

当传输管道采用TCP通信协议时,视频流为TCP流。由于TCP通信协议有拥塞检测和规避机制,此时,若传输管道出现拥塞,发送端设备的缓存与接收端设备之间的TCP流的码率下降,从而缓解传输管道的拥塞。但是,该过程中,发送端设备的视频编码器产生TCP流的码率并没有发生变化,当缓存中的TCP流超过缓存容量时,视频流从发送端设备的缓存溢出,同样导致视频丢包、视频业务质量下降的问题。



技术实现要素:

本发明提供一种视频码率自适应调整方法及发送端设备,以解决视频丢包、视频业务质量下降的问题。

第一个方面,本发明实施例提供一种视频码率自适应调整方法,包括:

发送端设备触发码率估计事件;

所述发送端设备根据所述码率估计事件,估计视频编码器的目标编码速率,所述视频编码器为所述发送端设备的视频编码器;

所述发送端设备将所述视频编码器的当前编码速率调整为所述目标编码速率。

在第一个方面的第一种可能的实现方式中,所述发送端设备触发码率估计事件之前,还包括:

所述发送端设备判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;

若所述发送端设备判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限,则所述码率估计事件具体为缓存告警事件;否则,

若所述发送端设备判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限,则所述码率估计事件具体为缓存空闲事件。

结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述发送端设备根据所述码率估计事件,估计视频编码器的目标编码速率,具体包括:

若所述发送端设备触发所述缓存告警事件,则估计所述目标编码速率为:

Rnew=max[R-R_down,Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

若所述发送端设备触发所述缓存空闲事件,则估计所述目标编码速率为:

Rnew=min[R+R_up,Rmax],其中,所述R_UP为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

在第一个方面的第三种可能的实现方式中,所述发送端设备触发码率估计事件之前,还包括:

所述发送端设备接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率;

所述发送端设备判断所述丢包率是否超过预设丢包率门限上限;

若所述发送端设备判断出所述丢包率超过所述预设丢包率门限上限,则所述码率估计事件具体为丢包严重事件;否则,

若所述发送端设备判断出所述丢包率未超过所述预设丢包率门限上限,则所述码率估计事件具体为丢包正常事件。

结合第一个方面的第三种可能的实现方式,在第一个方面的第四种可能的实现方式中,所述发送端设备根据所述码率估计事件,估计视频编码器的目标编码速率,具体包括:

若所述发送端设备触发所述丢包严重事件,则估计所述目标编码速率为:

Rnew=max[R×(1-Rloss),Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,Rloss为所述丢包率,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

若所述发送端设备触发所述丢包正常事件,则估计所述目标编码速率为:

Rnew=min(R+R_up,Rmax),其中,R_up为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

在第一个方面的第五种可能的实现方式中,所述发送端设备触发码率估计事件之前,还包括:

所述发送端设备接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率;

所述发送端设备判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;以及,所述发送端设备判断丢包率是否超过预设丢包率门限上限;

若所述发送端设备判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限;以及,若所述发送端设备判断出所述丢包率超过所述预设丢包率门限上限,则所述码率估计事件包括:缓存告警事件与丢包严重事件;否则,

若所述发送端设备判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限;而且,若所述发送端设备判断出所述丢包率未超过所述预设丢包率门限上限,则所述码率估计事件包括:缓存空闲事件与丢包正常事件。

结合第一个方面的第五种可能的实现方式,在第一个方面的第六种可能的实现方式中,所述发送端设备根据所述码率估计事件,估计视频编码器的编码速率,具体包括:

若所述发送端设备同时触发所述缓存告警事件与所述丢包严重事件,则所述发送端设备根据所述缓存告警事件确定第一编码速率,根据所述丢包严重事件确定第二编码速率;

所述发送端设备根据所述第一编码速率与所述第二编码速率,确定所述目标编码速率;其中,

R1=max[R-R_down,Rmin],所述R1为所述第一编码速率,所述R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

R2=max[R×(1-Rloss),Rmin],所述R2为所述第二编码速率,Rloss为丢包率,Rmin为所述视频编码器的最小编码速率;

Rnew=min[R1,R2],所述Rnew为所述目标编码速率,所述min[]表示取最小值。

结合第一个方面的第五种可能的实现方式,在第一个方面的第七种可能的实现方式中,估计视频编码器的编码速率,具体包括:

若所述发送端设备同时触发所述缓存空闲事件与所述丢包正常事件,则所述发送端设备根据所述缓存空闲事件确定第三编码速率,根据所述丢包正常事件确定第四编码速率;

所述发送端设备根据所述第三编码速率与所述第四编码速率,确定所述目标编码速率;其中,

R3=min[R+R_up3,Rmax],所述R3为所述第三编码速率,所述R为所述视频编码器的当前编码速率,所述R_up3为根据所述R3得出的码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值;

R4=min[R+R_up4,Rmax],其中,所述R4为所述第四编码速率,所述R_up4为根据所述R4得出的码率上调步长;

Rnew=min[R3,R4],所述Rnew为所述目标编码速率。

第二个方面,本发明实施例提供一种发送端设备,包括:

触发模块,用于触发码率估计事件;

估计模块,用于根据所述触发模块触发的所述码率估计事件,估计视频编码器的目标编码速率,所述视频编码器为所述发送端设备的视频编码器;

调整模块,用于将所述视频编码器的当前编码速率调整为所述估计模块估计出的所述目标编码速率。

在第二个方面的第一种可能的实现方式中,该发送端设备还包括:

判断模块,用于在所述触发模块触发码率估计事件之前,判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;

所述触发模块,用于若所述判断模块判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限,则触发缓存告警事件;否则,若所述判断模块判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限,则触发缓存空闲事件。

结合第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,所述估计模块,具体用于若所述触发模块触发所述缓存告警事件,则估计所述目标编码速率为:

Rnew=max[R-R_down,Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

若所述触发模块触发所述缓存空闲事件,则估计所述目标编码速率为:Rnew=min[R+R_up,Rmax],其中,所述R_UP为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

在第二个方面的第三种可能的实现方式中,该发送端设备还包括:

处理模块,用于在所述触发模块触发码率估计事件之前,接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率,判断所述丢包率是否超过预设丢包率门限上限;

所述触发模块,用于若所述处理模块判断出所述丢包率超过所述预设丢包率门限上限,则触发丢包严重事件;否则,

若所述处理模块判断出所述丢包率未超过所述预设丢包率门限上限,则 触发丢包正常事件。

结合第二个方面的第三种可能的实现方式,在第二个方面的第四种可能的实现方式中,所述估计模块,具体用于若所述触发模块触发所述丢包严重事件,则估计所述目标编码速率为:

Rnew=max[R×(1-Rloss),Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,Rloss为所述丢包率,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

若所述触发模块出所述丢包正常事件,则估计所述目标编码速率为:

Rnew=min(R+R_up,Rmax),其中,R_up为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

在第二个方面的第五种可能的实现方式中,该发送端设备还包括:

处理模块,用于接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率,判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;以及,丢包率是否超过预设丢包率门限上限;

所述触发模块,具体用于若所述处理模块判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限;以及,所述丢包率超过所述预设丢包率门限上限,则触发缓存告警事件与丢包严重事件;否则,

若所述处理模块判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限;而且,所述丢包率未超过所述预设丢包率门限上限,则触发缓存空闲事件与丢包正常事件。

结合第二个方面的第五种可能的实现方式,在第二个方面的第六种可能的实现方式中,所述估计模块,具体用于若所述触发模块同时触发所述缓存告警事件与所述丢包严重事件,则根据所述缓存告警事件确定第一编码速率,根据所述丢包严重事件确定第二编码速率,根据所述第一编码速率与所述第二编码速率,确定所述目标编码速率;其中,

R1=max[R-R_down,Rmin],所述R1为所述第一编码速率,所述R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码 器的最小编码速率,所述max[]表示取最大值;

R2=max[R×(1-Rloss),Rmin],所述R2为所述第二编码速率,Rloss为丢包率,Rmin为所述视频编码器的最小编码速率;

Rnew=min[R1,R2],所述Rnew为所述目标编码速率,所述min[]表示取最小值。

结合第二个方面的第五种可能的实现方式,在第二个方面的第七种可能的实现方式中,所述估计模块,具体用于若所述触发模块同时触发所述缓存空闲事件与所述丢包正常事件,则根据所述缓存空闲事件确定第三编码速率,根据所述丢包正常事件确定第四编码速率,根据所述第三编码速率与所述第四编码速率,确定所述目标编码速率;其中,

R3=min[R+R_up3,Rmax],所述R3为所述第三编码速率,所述R为所述视频编码器的当前编码速率,所述R_up3为根据所述R3得出的码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值;

R4=min[R+R_up4,Rmax],其中,所述R4为所述第四编码速率,所述R_up4为根据所述R4得出的码率上调步长;

Rnew=min[R3,R4],所述Rnew为所述目标编码速率。

本发明实施例提供的视频码率自适应调整方法及发送端设备,发送端设备根据码率估计事件估计目标编码速率,然后将目标编码速率应用于视频编码器,从而实现视频编码速率的自适应调整,使得发送端设备的视频编码器的编码速率与缓存情况、接收端设备的接收状况等相符合,达到解决现有技术中视频丢包、视频业务质量下降的问题。

附图说明

图1为本发明视频码率自适应调整方法实施例一的流程图;

图2为本发明发送端设备实施例一的结构示意图;

图3为本发明发送端设备实施例二的结构示意图;

图4为本发明发送端设备实施例三的结构示意图。

具体实施方式

图1为本发明视频码率自适应调整方法实施例一的流程图。本实施例的 执行主体为发送端设备,适用于需要对发送端设备的视频编码器的编码速率进行自适应调整的场景。具体的,本实施例包括如下步骤:

101、发送端设备触发码率估计事件。

本发明实施例中,发送端设备指具有产生并发送视频流功能的设备,如具有摄像功能的电脑、手机等电子产品;码率估计事件指发送端设备发现当前编码速率下,发送端设备的缓存比较空闲,或者接收端设备的接受状况良好时,需要提高当前编码速率而触发的事件,如缓存空闲时间、丢包正常事件等;或者,发送端设备发现当前编码速率下,发送端设备的缓存比较紧张、或接收端的接收状况糟糕时,需要降低当前码率而触发的事件。

本步骤中,发送端设备实时或周期性的对缓存、接收端设备的接收状况等进行监测,以触发相关的码率估计事件。

102、所述发送端设备根据所述码率估计事件,估计视频编码器的目标编码速率,所述视频编码器为所述发送端设备的视频编码器。

本步骤中,发送端设备根据其触发的码率估计事件,估计视频编码器可支持的目标编码速率。

103、所述发送端设备将所述视频编码器的当前编码速率调整为所述目标编码速率。

本步骤中,发送端设备根据上述步骤102中估计出的目标编码速率,将视频编码器的当前编码速率调整为目标编码速率。

本发明实施例提供的视频码率自适应方法,发送端设备根据码率估计事件估计目标编码速率,然后将目标编码速率应用于视频编码器,从而实现视频编码速率的自适应调整,使得发送端设备的视频编码器的编码速率与缓存情况、接收端设备的接收状况等相符合,达到解决现有技术中视频丢包、视频业务质量下降的问题。

上述实施例中,发送端设备在触发码率估计事件之前,需要根据本地缓存情况、接收端设备的丢包率等确定出相关的码率估计事件。下面,对发送端设备如何确定出相关的码率估计事件进行描述。

一种可行的实现方式中,发送端设备根据本地缓存情况触发相关的码率估计事件。

具体的,发送端设备触发码率估计事件之前,周期性的监控本地缓存情 况,以判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;若所述发送端设备判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限,则所述码率估计事件具体为缓存告警事件;否则,若所述发送端设备判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限,则所述码率估计事件具体为缓存空闲事件。

另一种可行的实现方式中,发送端设备根据接收端设备发送的反馈信息,触发相关的码率估计事件。

具体的,所述发送端设备触发码率估计事件之前,还接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率。所述发送端设备判断所述丢包率是否超过预设丢包率门限上限;若所述发送端设备判断出所述丢包率超过所述预设丢包率门限上限,则所述码率估计事件具体为丢包严重事件;否则,若所述发送端设备判断出所述丢包率未超过所述预设丢包率门限上限,则所述码率估计事件具体为丢包正常事件。其中,反馈信息可以为实时传输协议(Real-time Transport Protocol,RTP)报告,每次接收到RTP报告后,解析该RTP报告中的丢包率,然后对丢包率进行判断。另外,发送端设备也可以周期性的对丢包率进行统计。例如,发送端设备将统计周期设置为次数,在接收到预设次数的RTP报告后,对其中的最大丢包率进行判断;再如,发送端设备将周期设置为时长,在预设时长内接收RTP报告,对其中的最大丢包率进行判断。

由一种可行的实现方式中,发送端设备也可以同时对本地缓存情况于接收端设备的丢包率进行判断,从而确定出相关的码率估计事件。

具体的,发送端设备触发码率估计事件之前,还接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率。然后,发送端设备判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;以及,所述发送端设备判断丢包率是否超过预设丢包率门限上限。

上述判断过程中,若所述发送端设备判断出所述本地缓存中数据包的数 量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限;以及,若所述发送端设备判断出所述丢包率超过所述预设丢包率门限上限,则所述码率估计事件包括:缓存告警事件与丢包严重事件;否则,若所述发送端设备判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限;而且,若所述发送端设备判断出所述丢包率未超过所述预设丢包率门限上限,则所述码率估计事件包括:缓存空闲事件与丢包正常事件。

在详细描述了发送端设备如何确定出相关的码率估计事件之后,下面,对发送端设备如何根据码率估计事件,估计视频编码器的目标编码速率进行详细说明。

具体的,当发送端设备触发缓存告警事件时,发送端设备估计目标编码速率为:Rnew=max[R-R_down,Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值。

当发送端设备触发缓存空闲事件时,发送端设备估计所述目标编码速率为:Rnew=min[R+R_up,Rmax],其中,所述R_UP为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

当发送端设备触发丢包严重事件时,发送端设备估计所述目标编码速率为:Rnew=max[R×(1-Rloss),Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,Rloss为所述丢包率,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值。

当发送端设备触发丢包正常事件时,发送端设备估计所述目标编码速率为:Rnew=min(R+R_up,Rmax),其中,R_up为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

令上述触发缓存告警事件时估计出的目标码率Rnew为第一编码速率R1,触发缓存空闲事件时估计出的目标码率Rnew为第二编码速率R2,触发丢包严重事件时估计出的目标码率Rnew为第三编码速率R3,触发丢包正常事件时估计出的目标码率Rnew为第四编码速率R4

当发送端设备同时触发所述缓存告警事件与所述丢包严重事件时,此时, 所述发送端设备根据所述第一编码速率R1与所述第二编码速率R2,确定所述目标编码速率Rnew:Rnew=min[R1,R2],所述Rnew为所述目标编码速率,所述min[]表示取最小值。

当发送端设备同时触发所述缓存空闲事件与所述丢包正常事件时,此时,所述发送端设备根据所述第三编码速率R3与所述第四编码速率R4,确定所述目标编码速率Rnew。该过程中,R3=min[R+R_up3,Rmax],所述R3为所述第三编码速率,所述R为所述视频编码器的当前编码速率,所述R_up3为根据所述R3得出的码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值;R4=min[R+R_up4,Rmax],其中,所述R4为所述第四编码速率,所述R_up4为根据所述R4得出的码率上调步长;Rnew=min[R3,R4],所述Rnew为所述目标编码速率。

在确定出目标编码速率后,若目标编码速率不等于发送端设备的视频编码器的当前编码速率,则将该目标编码速率应用于视频编码器,并重启监控本地缓存和统计丢包率的周期。如此一来,发送端设备就可以周期性的根据本地缓存情况和接收端设备的丢包率情况对编码速率进行上调或下调,从而实现自适应调整发送端设备的视频编码器的编码速率的目的。

图2为本发明发送端设备实施例一的结构示意图。本实施例提供的发送端设备是与本发明图1实施例对应的装置实施例,具体实现过程在此不再赘述。具体的,本实施例提供的发送端设备包括:

触发模块11,用于触发码率估计事件;

估计模块12,用于根据所述触发模块11触发的所述码率估计事件,估计视频编码器的目标编码速率,所述视频编码器为所述发送端设备的视频编码器;

调整模块13,用于将所述视频编码器的当前编码速率调整为所述估计模块12估计出的所述目标编码速率。

本发明实施例提供的发送端设备,根据码率估计事件估计目标编码速率,然后将目标编码速率应用于视频编码器,从而实现视频编码速率的自适应调整,使得发送端设备的视频编码器的编码速率与缓存情况、接收端设备的接收状况等相符合,达到解决现有技术中视频丢包、视频业务质量下降的问题。

图3为本发明发送端设备实施例二的结构示意图。如图3所示,本实施 例提供的发送端设备在图2所示发送端设备的基础上,进一步的,还包括:

判断模块14,用于在所述触发模块11触发码率估计事件之前,判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;

所述触发模块11,用于若所述判断模块14判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限,则触发缓存告警事件;否则,若所述判断模块14判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限,则触发缓存空闲事件。

可选的,在本发明一实施例中,所述估计模块12,具体用于若所述触发模块11触发所述缓存告警事件,则估计所述目标编码速率为:

Rnew=max[R-R_down,Rmin],其中,所述Rnew为所述目标编码速率,R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

若所述触发模块11触发所述缓存空闲事件,则估计所述目标编码速率为:Rnew=min[R+R_up,Rmax],其中,所述R_UP为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

图4为本发明发送端设备实施例三的结构示意图。如图4所示,本实施例提供的发送端设备在图2所示发送端设备的基础上,进一步的,还包括:

处理模块15,用于在所述触发模块11触发码率估计事件之前,接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率,判断所述丢包率是否超过预设丢包率门限上限;

所述触发模块11,用于若所述处理模块15判断出所述丢包率超过所述预设丢包率门限上限,则触发丢包严重事件;否则,

若所述处理模块15判断出所述丢包率未超过所述预设丢包率门限上限,则触发丢包正常事件。

可选的,在本发明一实施例中,所述估计模块12,具体用于若所述触发模块11触发所述丢包严重事件,则估计所述目标编码速率为:

Rnew=max[R×(1-Rloss),Rmin],其中,所述Rnew为所述目标编码速率, R为所述视频编码器的当前编码速率,Rloss为所述丢包率,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

若所述触发模块11出所述丢包正常事件,则估计所述目标编码速率为:

Rnew=min(R+R_up,Rmax),其中,R_up为码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值。

可选的,在本发明一实施例中,处理模块15,用于接收接收端设备发送的反馈信息,所述反馈信息携带所述接收端设备的丢包率,判断本地缓存中数据包的数量是否超过预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间是否超过预设时延门限上限;以及,丢包率是否超过预设丢包率门限上限;

所述触发模块11,具体用于若所述处理模块15判断出所述本地缓存中数据包的数量超过所述预设缓存门限上限,或者,所述本地缓存中数据包的最大等待时间超过所述预设时延门限上限;以及,所述丢包率超过所述预设丢包率门限上限,则触发缓存告警事件与丢包严重事件;否则,

若所述处理模块15判断出所述本地缓存中数据包的数量未超过所述预设缓存门限上限,且所述本地缓存中数据包的最大等待时间未超过所述预设时延门限上限;而且,所述丢包率未超过所述预设丢包率门限上限,则触发缓存空闲事件与丢包正常事件。

可选的,在本发明一实施例中,所述估计模块12,具体用于若所述触发模块11同时触发所述缓存告警事件与所述丢包严重事件,则根据所述缓存告警事件确定第一编码速率,根据所述丢包严重事件确定第二编码速率,根据所述第一编码速率与所述第二编码速率,确定所述目标编码速率;其中,

R1=max[R-R_down,Rmin],所述R1为所述第一编码速率,所述R为所述视频编码器的当前编码速率,R_down为码率下调步长,Rmin为所述视频编码器的最小编码速率,所述max[]表示取最大值;

R2=max[R×(1-Rloss),Rmin],所述R2为所述第二编码速率,Rloss为丢包率,Rmin为所述视频编码器的最小编码速率;

Rnew=min[R1,R2],所述Rnew为所述目标编码速率,所述min[]表示取最小值。

可选的,在本发明一实施例中,所述估计模块12,具体用于若所述触发 模块11同时触发所述缓存空闲事件与所述丢包正常事件,则根据所述缓存空闲事件确定第三编码速率,根据所述丢包正常事件确定第四编码速率,根据所述第三编码速率与所述第四编码速率,确定所述目标编码速率;其中,

R3=min[R+R_up3,Rmax],所述R3为所述第三编码速率,所述R为所述视频编码器的当前编码速率,所述R_up3为根据所述R3得出的码率上调步长,Rmax为所述视频编码器的最大编码速率,所述min[]表示取最小值;

R4=min[R+R_up4,Rmax],其中,所述R4为所述第四编码速率,所述R_up4为根据所述R4得出的码率上调步长;

Rnew=min[R3,R4],所述Rnew为所述目标编码速率。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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