CN105262699A - 一种网络自适应编码调整方法及装置 - Google Patents
一种网络自适应编码调整方法及装置 Download PDFInfo
- Publication number
- CN105262699A CN105262699A CN201510716693.9A CN201510716693A CN105262699A CN 105262699 A CN105262699 A CN 105262699A CN 201510716693 A CN201510716693 A CN 201510716693A CN 105262699 A CN105262699 A CN 105262699A
- Authority
- CN
- China
- Prior art keywords
- current
- code stream
- frame
- configuration parameter
- calculate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络自适应编码调整方法及装置,该方法为,终端获取一个媒体帧,放入缓冲队列中,并计算当前带宽和当前网络拥塞等级;根据当前的带宽和网络拥塞等级,判断码流调整类型,并计算编码调整参数,其中不仅需要计算调整的码流值,还需要计算调整的帧频值,这样,在下调码流时,也相应降低帧频,可以有效减少降码流引起的画质变差问题,并且在码流调整类型为下调时,是基于当前带宽,计算需要下调的码流值的,因此在保证了流程性的同时,尽可能达到最大的带宽利用率;最后,终端基于计算的编码调整参数进行编码配置调整;这样,自适应带宽调整编码配置,减少了无效媒体帧的发送,提高了流畅性。
Description
技术领域
本发明涉及通信领域,尤其涉及一种网络自适应编码调整方法及装置。
背景技术
随着互联网覆盖率的持续扩大,越来越多的安防设备接入到互联网中。但是,互联网相对于局域网存在两个特征:波动性高和带宽低。在这种情况下,监控视频如果以固定的数据速率采集,就会产生频繁的丢帧现象,可能给用户带来无法估量的损失。因此,需要一种网络自适应的编码调整机制,来减少丢帧情况的发生。
现有技术下,提供了两种网络自适应的编码调整方法。
第一种方法为:检测网络状态是采用poll判断套接口是否可写的方式,达到连续网络恶劣等级值BAD_CONDITION次不可写则降低码流,达到连续网络良好等级值GOOD_CONDITION次可写则增高码流,且是根据预设的编码等级进行调整的,具体操作步骤为:
1)设置网络监听参数;
2)获取3G网络状态;
3)验证数据是否为关键帧;
4)丢弃步骤3中的非关键帧数据;
5)记录网络状态;
6)判断网络状态是否达到调整编码参数条件;
7)调整编码参数;
8)重置网络状态记录。
由此可见,针对第一种方法,其并不知道当前的码流具体是多少,而是根据预设的编码等级直接降低到一个预设值,且每次降幅很大,这就很可能导致带宽利用率不足的问题。并且,使用poll的方式检测网络状态,会存在判断不准的情况。若BAD_CONDITION设置太小,则容易受瞬间带宽波动影响;若设置太大,则可能在达到条件前,被一次检测到的可写事件打断而重新计数,进而导致码流无法下调。
第二种方法为:在带宽变化时对码流进行调整,具体操作为:
首先,当获取到当前帧图像初始数据时,确定当前帧延时为指定内存中最先存储的一帧图像编码数据对应的初始数据获取到的时间和最后存储的一帧图像编码数据对应的初始数据获取到的时间之间的时间差值;
然后,当当前帧延时在预设范围内时,调整当前码流值变小;
最后,基于调整后的当前码流值对当前帧图像初始数据进行编码,得到当前帧图像编码数据,当前帧图像编码数据存储于指定内存中等待发送。
由此可见,针对第二种方法,在带宽变化时只调整码流,而没有调整帧率,当码流调整到很小而帧率很高时,画面质量会变得非常差,而且带宽很低时,高帧率其实没有多大意义。
并且,对于现有技术下的第一种方法和第二种方法,还都存在以下两个问题:
1、在带宽稳定,但是小于编码配置的码流大小时,会周期性的围绕当前带宽上下调整码流,而码流每次调整到高于带宽,势必引起视频延迟或慢放,甚至触发丢帧;
2、当同时打开一个监控设备的多个通道,并且网络带宽小于所有通道的码流和时,会触发多个通道下调码流。当带宽升高,大于下调后所有通道的码流和时,又会有部分通道上调码流。但是,如果所有通道的码流都独立调整,就有可能出现个别通道码流很大而另外的通道码流很小的情况。
基于以上的分析,现有网络自适应的编码调整机制方法存在调整编码配置效果差、不能充分利用网络资源等缺陷。
发明内容
本发明的目的是提供一种网络自适应编码调整方法及装置,以解决现有技术中存在调整编码配置效果差、不能充分利用网络资源的问题。
本发明的目的是通过以下技术方案实现的:
一种网络自适应编码调整方法,包括:
终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;
终端根据上述当前网络拥塞等级,判断码流调整类型,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
终端基于上述第二编码配置参数或上述第三编码配置参数,进行编码配置调整。
本发明实施例中,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;根据当前的带宽和网络拥塞等级,判断码流调整类型,并计算编码调整参数,其中不仅需要计算调整的码流值,还需要计算调整的帧频值,这样,在下调码流时,也相应降低帧频,因为在码流比较低时,过高的帧率已经没有多大意义,而按比率调低帧频,可以有效减少降码流引起的画质变差问题,并且在码流调整类型为下调时,是基于当前带宽,计算需要下调的码流值的,因此在保证了流程性的同时,尽可能达到最大的带宽利用率;最后,终端基于计算的编码调整参数进行编码配置调整。这样,自适应带宽调整编码配置,减少了无效媒体帧的发送,提高了流畅性。
并且,本发明实施例,在码流调整类型为下调时,对码流上调周期阈值进行调整,可以有效减少调整波动;在码流调整类型为上调时,计算属于同一终端组的各个通道的调整深度,保证多通道调整的均衡性;当获取的媒体帧的总数目到达一定阈值时,会进行丢帧,但是根据优先级进行丢帧,这样尽量减少关键帧的丢失。
较佳的,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列后,在计算当前带宽和计算当前网络拥塞等级之前,进一步包括:
判断上述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和计算当前网络拥塞等级。
较佳的,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数,具体包括:
基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值;
将所述第二码流值和所述第二帧频值,作为第二编码配置参数;
若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数,具体包括:
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值;
将所述第三码流值和所述第三帧频值,作为第三编码配置参数。
较佳的,基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值,具体包括:
确定当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
计算所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积;
取计算的所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积和所述码流初始值的最小值,作为第二码流值;
计算所述第二码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频初始值的最小值,作为第二帧频值;
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值,具体包括:
确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
计算所述当前带宽与所述预设的调整因子与1的差的乘积;
取计算的所述当前带宽与所述预设的调整因子与1的差的乘积和所述码流可调最小值的最大值,作为第三码流值;
计算所述第三码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频可调最小值的最大值,作为第三帧频值。
较佳的,终端确定上述码流调整类型为上调之后,在计算上述第二编码配置参数之前,进一步包括:
终端判断是否到达码流上调周期阈值,确定到达上述码流上调周期阈值时,进一步计算上述终端所在终端组中每一个终端的通道调整深度,以及根据计算结果确定上述终端对应的通道调整深度为最大值时,确定计算所述第二编码配置参数。
较佳的,计算上述终端的通道调整深度时,具体包括:
根据当前使用的码流值和码流初始值,计算上述终端的通道调整深度。
较佳的,终端确定上述码流调整类型为下调之后,在计算上述第三码流配置参数之前,进一步包括:
根据上述当前带宽和上一次计算的带宽,判断上述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
较佳的,按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合上述待丢弃数目的媒体帧。
一种网络自适应编码调整装置,具体包括:
确定单元,用于获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;
计算单元,用于根据上述当前网络拥塞等级,判断码流调整类型,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
调整单元,用于基于上述第二编码配置参数或上述第三编码配置参数,进行编码配置调整。
本发明实施例中,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;根据当前的带宽和网络拥塞等级,判断码流调整类型,并计算编码调整参数,其中不仅需要计算调整的码流值,还需要计算调整的帧频值,这样,在下调码流时,也相应降低帧频,因为在码流比较低时,过高的帧率已经没有多大意义,而按比率调低帧频,可以有效减少降码流引起的画质变差问题,并且在码流调整类型为下调时,是基于当前带宽,计算需要下调的码流值的,因此在保证了流程性的同时,尽可能达到最大的带宽利用率;最后,终端基于计算的编码调整参数进行编码配置调整。这样,自适应带宽调整编码配置,减少了无效媒体帧的发送,提高了流畅性。
并且,本发明实施例,在码流调整类型为下调时,对码流上调周期阈值进行调整,可以有效减少调整波动;在码流调整类型为上调时,计算属于同一终端组的各个通道的调整深度,保证多通道调整的均衡性;当获取的媒体帧的总数目到达一定阈值时,会进行丢帧,但是根据优先级进行丢帧,这样尽量减少关键帧的丢失。
较佳的,确定单元获取一个媒体帧,并将上述媒体帧放入缓冲队列后,在计算当前带宽和计算当前网络拥塞等级之前时,确定单元进一步用于:
判断上述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和计算当前网络拥塞等级。
较佳的,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级时,确定单元具体用于:
根据当前时间、上一次计算带宽时间和上一次计算带宽到当前时间之间发送的媒体帧的总长度,计算获得当前带宽;
将上述缓冲队列中的媒体帧的总数目分别与预设的每一个媒体帧数目取值区间进行匹配,筛选出匹配成功的目标媒体帧取值区间,以及将对应上述目标媒体帧取值区间设置的网络拥塞等级作为当前网络拥塞等级。
较佳的,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数时,计算单元具体用于:
基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值;
将所述第二码流值和所述第二帧频值,作为第二编码配置参数;
若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数时,计算单元具体用于:
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值;
将所述第三码流值和所述第三帧频值,作为第三编码配置参数。
较佳的,基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值时,计算单元具体用于:
确定当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
计算所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积;
取计算的所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积和所述码流初始值的最小值,作为第二码流值;
计算所述第二码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频初始值的最小值,作为第二帧频值;
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值时,计算单元具体用于:
确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
计算所述当前带宽与所述预设的调整因子与1的差的乘积;
取计算的所述当前带宽与所述预设的调整因子与1的差的乘积和所述码流可调最小值的最大值,作为第三码流值;
计算所述第三码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频可调最小值的最大值,作为第三帧频值。
较佳的,计算单元确定上述码流调整类型为上调之后,在计算上述第二编码配置参数之前,计算单元进一步用于:
判断是否到达码流上调周期阈值,确定到达上述码流上调周期阈值时,进一步计算上述终端所在终端组中每一个终端的通道调整深度,以及根据计算结果确定上述终端对应的通道调整深度为最大值时,确定计算所述第二编码配置参数。
较佳的,计算上述终端的通道调整深度时,计算单元具体用于:
根据当前使用的码流值和码流初始值,计算上述终端的通道调整深度。
较佳的,计算单元确定上述码流调整类型为下调之后,在计算上述第三码流配置参数之前,计算单元进一步用于:
根据上述当前带宽和上一次计算的带宽,判断上述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
较佳的,调整单元进一步用于:
按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合上述待丢弃数目的媒体帧。
附图说明
图1为本发明实施例中网络自适应编码调整方法概述流程图;
图2为本发明实例例中网络自适应编码调整方法详细流程图;
图3为本发明实例例中发送媒体帧的流程示意图;
图4为本发明实施例中网络自适应编码调整装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中存在调整编码配置效果差、不能充分利用网络资源的问题,本发明实施例中,根据当前的带宽和网络拥塞等级,调整编码配置,不仅需要调整码流值,还需要调整帧频值,且在码流调整类型为下调时,是基于当前带宽,计算需要下调的码流值,因此在保证了流程性的同时,尽可能达到最大的带宽利用率。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
参阅图1所示,本发明实施例中,网络自适应编码调整方法的具体流程如下:
步骤100:终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级。
本发明实施例编码出来的媒体帧首先放入一个内存的FIFO队列里,而发送端则从此队列弹出数据。当带宽大于码流值时,缓存队列不会有数据堆积,反之,会出现数据堆积。所以,本发明实施例根据缓存队列的数据堆积情况—缓存的帧数,判断当前网络拥塞状况,进而,再通过判断得出的网络拥塞状态,调整编码配置参数。
执行步骤100的具体操作为:
首先,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度。
然后,判断上述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和当前网络拥塞等级。
最后,根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级,具体包括:
根据当前时间、上一次计算带宽时间和上一次计算带宽到当前时间之间发送的媒体帧的总长度,计算获得当前带宽;
具体当前带宽计算方式如下:
current_bandwidth=length_out_sum/(current_time-last_time),其中current_bandwidth为当前带宽,length_out_sum为从上一次计算带宽时间到当前时间发送出去的媒体帧的总长度,current_time为当前时间,last_time为上一次计算带宽时间。
将上述缓冲队列中的媒体帧的总数目分别与预设的每一个媒体帧数目取值区间进行匹配,筛选出匹配成功的目标媒体帧取值区间,以及将对应上述目标媒体帧取值区间设置的网络拥塞等级作为当前网络拥塞等级;
具体当前网络拥塞等级计算方式如下:
例如,根据预设的网络无拥塞时保存的媒体帧数目阈值threshold_bottom、网络低拥塞时保存的媒体帧数目阈值threshold_low、网络中等拥塞时保存的媒体帧数目阈值threshold_middle、网络高拥塞时保存的媒体帧数目阈值threshold_high,且满足0≤threshold_bottom<threshold_low<threshold_middle<threshold_high,划分为四个区间,分别为[0,threshold_low)、[threshold_low,threshold_middle)、[threshold_middle,threshold_high)、[threshold_high,),对应的网络拥塞等级分别为:网络无拥塞等级、网络低拥塞等级、网络中等拥塞等级和网络高拥塞等级;
将缓冲队列中的媒体帧的总数目与上述四个区间进行匹配,计算当前网络拥塞等级,例如当缓冲队列中的媒体帧的总数目在区间[threshold_low,threshold_middle)时,则当前网络拥塞等级为网络低拥塞等级。
步骤110:终端根据上述当前网络拥塞等级,判断码流调整类型,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数。
执行步骤110时,具体分为以下两种情况:
第一种情况:若缓冲队列中的媒体帧的总数目小于threshold_bottom,即当前网络拥塞等级为网络无拥塞等级,表示带宽变大,则码流调整类型为上调,具体包括:
首先,终端判断是否到达码流上调周期阈值,确定到达上述码流上调周期阈值时,进一步确定计算上述终端所在终端组中每一个终端的通道调整深度;
然后,计算上述终端所在终端组中每一个终端的通道调整深度,确定当前终端的通道是最大调整深度时,确定计算上调后的第二编码配置参数。
其中,上述通道表示媒体帧传输的数据通道,每个通道拥有一个终端(本发明实例中,表示安防设备)唯一性的通道ID,发往同一个客户端的所有通道,属于用一个逻辑用户组,即同一个终端组,由用户传入uid标志。
其中,计算上述终端所在终端组中每一个终端的通道调整深度时,具体包括:
根据当前使用的码流值current_bps和码流初始值config_bps,计算上述终端的通道调整深度。
例如,当current_bps为80,config_bps为100时,则对应终端的通道调整深度为:(100-80)/100=0.2
这里,对同属一个uid组的所有通道保障均衡调整,防止多个通道自由竞争产生两极分化的配置。本发明实施例,并不能将一个设备的所有逻辑通道做均衡处理,因为这些通道发送的网络目的端不同,网络状况也就不同,如果将它们强制均衡,则可能出现网络好的被网络差的拉低的情况,最终效果适得其反。而一个用户组内的通道,也不能单纯以码率大小决定调整优先级,因为这些通道可能用户的初始配置就不相同,因此本发明实施例中,采用一个相对量—调整深度,来决定调整优先级,保证多通道调整的均衡性。
最后,基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数,具体包括:
确定当前使用的第一编码配置参数和预设的调整因子,上述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
计算上述当前使用的第一码流值与上述预设的调整因子与1的和的乘积;
取计算的上述当前使用的第一码流值与上述预设的调整因子与1的和的乘积和上述码流初始值的最小值,作为第二码流值;具体表示为:adjust_bps=MIN(current_bps1*(1+λ),config_bps),
其中,adjust_bps为第二码流值,current_bps1为当前使用的第一码流值,config_bps为码流初始值,λ为调整因子,较佳的λ的范围为(0,0.5],MIN为取最小值。
计算上述第二码流值与上述码流初始值的比值;
计算上述比值与上述帧频初始值的乘积;
取计算的上述比值与上述帧频初始值的乘积和上述帧频初始值的最小值,作为第二帧频值;具体表示为:
adjust_fps=MIN((adjust_bps/config_bps)*config_fps,conifg_fps)
其中,adjust_fps为第二帧频值,conifg_fps为帧频初始值。
将上述第二码流值和上述第二帧频值,作为上调后的第二编码配置参数。
第二种情况:若当前网络拥塞等级为网络高拥塞等级,或者,上一次网络拥塞等级小于当前网络拥塞等级,表示带宽变小,则码流调整类型为下调,具体包括:
首先,根据当前带宽和上一次计算的带宽,判断上述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
其中,上述预设区间为[(1-λ),(1+λ)],这样可稳定低带宽时的波动效应,例如,记录连续在此区间的调整次数(continuous_adjust_count),当这个计数大于设定的阈值,为continuous_adjust_threshold时,则按倍率增加码流上调周期阈值(increase_threshold_time),一旦有一次调整没有落在上述区间,则恢复increase_threshold_time为初始值,经过上述处理,可以有效减少调整波动。
然后,确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,上述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
计算上述当前带宽与上述预设的调整因子与1的差的乘积;
取计算的上述当前带宽与上述预设的调整因子与1的差的乘积和上述码流可调最小值的最大值,作为第三码流值;具体表示为:
adjust_bps=MAX(current_bandwidth*(1-λ),min_bps)
其中,adjust_bps为第三码流值,current_bandwidth为当前带宽,λ为调整因子,较佳的λ的范围为(0,0.5],min_bps为码流可调最小值,MAX为取最大值。
计算上述第三码流值与上述码流初始值的比值;
计算上述比值与上述帧频初始值的乘积;
取计算的上述比值与上述帧频初始值的乘积和上述帧频可调最小值的最大值,作为第三帧频值;具体表示为:
adjust_fps=MAX((adjust_bps/config_bps)*config_fps,min_fps)
其中,adjust_fps为第三帧频值,config_bps为码流初始值,config_fps为帧频初始值,min_fps为帧频可调最小值,较佳的,为13,因为帧频为13时仍然能保证视觉的流畅性。
将上述第三码流值和上述第三帧频值,作为第三编码配置参数。
这样,下调码流时,计算的第三码流值是基于当前的带宽,而不是粗略的直接降低一半,所以在保证了流程性的同时,尽可能达到最大的带宽利用率,且在下调码流时,也相应降低帧频值,因为在码流值比较低时,过高的帧频已经没有多大意义,而按比率调低帧频值,可以有效减少降码流引起的画质变差问题,并且,帧频降低也不会小于设定的下限。
步骤120:终端基于上述第二编码配置参数或上述第三编码配置参数,进行编码配置调整。
进一步地,在执行步骤100-步骤120的同时,终端会不断的获取媒体帧,且同时按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合上述待丢弃数目的媒体帧;具体操作为:
首先,预设上限值为threshold_high,判断当前缓冲队列中的媒体帧的总数目是否大于threshold_high,确定大于时,确定计算媒体帧的待丢弃数目;
然后,计算媒体帧的待丢弃数目,计算方法如下:
need_drop_count=buffer_frame_count-threshold_high
其中,need_drop_count为媒体帧的待丢弃数目,buffer_frame_count为当前缓冲队列中的媒体帧的总数目;
最后,按照丢弃优先级从高到低的顺序丢弃need_drop_count个媒体帧;其中,上述优先级从高到低为非关键帧到最前面的关键帧,即先丢非关键帧,如果所有非关键帧数量小于need_drop_count,则丢最前面的关键帧。
这样,会尽量减少关键帧的丢失。
下面采用一个具体的应用场景对上述实施例作出进一步详细说明,参阅图2所示,网络自适应编码调整方法执行过程具体如下:
步骤200:终端获取一个媒体帧,并放入缓冲队列,且该媒体帧符合符合指定封装格式,携带媒体帧类型、媒体帧长度信息。
步骤201:确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,例如,缓冲队列中的媒体帧的总数目为buffer_frame_count,上一次计算带宽到当前时间之间发送的媒体帧的总长度为length_out_sum。
步骤202:判断是否为关键帧,如果是,则执行步骤203,否则,执行步骤200。
步骤203:计算当前带宽,例如为current_bandwidth,具体计算方式为:current_bandwidth=length_out_sum/(current_time-last_time),其中,current_time为当前时间,last_time为上一次计算带宽时间。
步骤204:计算当前网络拥塞等级;
设定四个媒体帧缓冲数量阈值,分别为:网络无拥塞时保存的媒体帧数目阈值threshold_bottom、网络低拥塞时保存的媒体帧数目阈值threshold_low、网络中等拥塞时保存的媒体帧数目阈值threshold_middle、网络高拥塞时保存的媒体帧数目阈值threshold_high,且满足0≤threshold_bottom<threshold_low<threshold_middle<threshold_high,划分为四个区间,分别为[0,threshold_low)、[threshold_low,threshold_middle)、[threshold_middle,threshold_high)、[threshold_high,),对应的网络拥塞等级分别为:网络无拥塞等级、网络低拥塞等级、网络中等拥塞等级和网络高拥塞等级;
将缓冲队列中的媒体帧的总数目与上述四个区间进行匹配,计算当前网络拥塞等级,例如当缓冲队列中的媒体帧的总数目在区间[threshold_middle,threshold_high)时,则当前网络拥塞等级为网络中等拥塞等级。
步骤205:根据当前网络拥塞等级,判断码流调整类型。
步骤206:当前网络拥塞等级为网络无拥塞等级,则码流调整类型为上调。
步骤207:判断是否达到上调周期阈值,如果是,则执行步骤208,否则,执行步骤200。
步骤208:计算本终端组中每一个终端的通道调整深度,计算方法为:adjust_rate=current_bps/config_bps,其中,adjust_rate为调整深度,current_bps为当前使用的码流值,config_bps为码流初始值。
步骤209:判断当前通道的调整深度是否为最大值,如果是,则执行步骤214,否则,执行步骤200。
步骤210:当前网络拥塞等级为网络高拥塞等级,则码流调整类型为下调。
步骤211:判断当前带宽和上一次计算的带宽的比值是否在区间[(1-λ),(1+λ)],如果是,则执行步骤213,否则,执行步骤212;其中,λ为调整因子。
步骤212:复位码流上调周期阈值为初始值。
步骤213:增加上调周期阈值。
步骤214:计算需要调整的码流值。
其中,计算上调的码流值为:
adjust_bps=MIN(current_bps*(1+λ),config_bps)
计算下调的码流值为:
adjust_bps=MAX(current_bandwidth*(1-λ),min_bps),其中,min_bps为码流可调最小值。
步骤215:计算需要调整的帧频值。
其中,计算上调的帧频值为:
adjust_fps=MIN((adjust_bps/config_bps)*config_fps,conifg_fps)
计算下调的帧频值为:
adjust_fps=MAX((adjust_bps/config_bps)*config_fps,min_fps),其中,conifg_fps为帧频初始值,min_fps为帧频可调最小值。
步骤216:调整编码配置。
本发明实施例中,尽量保证不丢帧,但是当编码调整到可调的最小值时,仍比带宽大,或者带宽连续性减小,那么,在缓存达到一定阈值后,也会触发丢帧动作。但当发生丢帧时,是按照丢弃优先级从高到低的顺序,进行丢帧,尽量减少关键帧的丢失。
当发送媒体帧时,参阅图3所示,发送媒体帧的流程如下:
步骤300:监听发送套接字。
步骤310:判断是否可写;如果是,则执行步骤320,否则,执行步骤300。
步骤320:判断当前是否有未发送完成的媒体帧;如果有,则执行步骤360,如果没有,则执行步骤330。
步骤330:判断当前缓冲是否有媒体帧;如果有,则执行步骤340,否则,执行步骤300。
步骤340:获取一个媒体帧。
步骤350:确定取出的媒体帧的长度。
步骤360:发送媒体帧。
基于上述实施例,参阅图4所示,本发明实施例中,网络自适应编码调整装置,具体包括:
确定单元40,用于获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;
计算单元41,用于根据上述当前网络拥塞等级,判断码流调整类型,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
调整单元42,用于基于上述第二编码配置参数或上述第三编码配置参数,进行编码配置调整。
较佳的,确定单元40获取一个媒体帧,并将上述媒体帧放入缓冲队列后,在计算当前带宽和计算当前网络拥塞等级之前时,确定单元40进一步用于:
判断上述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和计算当前网络拥塞等级。
较佳的,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级时,确定单元40具体用于:
根据当前时间、上一次计算带宽时间和上一次计算带宽到当前时间之间发送的媒体帧的总长度,计算获得当前带宽;
将上述缓冲队列中的媒体帧的总数目分别与预设的每一个媒体帧数目取值区间进行匹配,筛选出匹配成功的目标媒体帧取值区间,以及将对应上述目标媒体帧取值区间设置的网络拥塞等级作为当前网络拥塞等级。
较佳的,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数时,计算单元41具体用于:
确定当前使用的第一编码配置参数和预设的调整因子,上述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
计算上述当前使用的第一码流值与上述预设的调整因子与1的和的乘积;
取计算的上述当前使用的第一码流值与上述预设的调整因子与1的和的乘积和上述码流初始值的最小值,作为第二码流值;
计算上述第二码流值与上述码流初始值的比值;
计算上述比值与上述帧频初始值的乘积;
取计算的上述比值与上述帧频初始值的乘积和上述帧频初始值的最小值,作为第二帧频值;
将上述第二码流值和上述第二帧频值,作为上调后的第二编码配置参数。
若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数,计算单元41具体用于:
确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,上述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
计算上述当前带宽与上述预设的调整因子与1的差的乘积;
取计算的上述当前带宽与上述预设的调整因子与1的差的乘积和上述码流可调最小值的最大值,作为第三码流值;
计算上述第三码流值与上述码流初始值的比值;
计算上述比值与上述帧频初始值的乘积;
取计算的上述比值与上述帧频初始值的乘积和上述帧频可调最小值的最大值,作为第三帧频值;
将上述第三码流值和上述第三帧频值,作为下调后的第三编码配置参数。
较佳的,计算单元41确定上述码流调整类型为上调之后,在计算上述第二编码配置参数之前,计算单元41进一步用于:
判断是否到达码流上调周期阈值,确定到达上述码流上调周期阈值时,进一步计算上述终端所在终端组中每一个终端的通道调整深度,以及根据计算结果确定上述终端对应的通道调整深度为最大值时,确定计算上述第二编码配置参数。
较佳的,计算上述终端的通道调整深度时,计算单元41具体用于:
确定当前使用的码流值和码流初始值;
计算上述当前使用的码流值和上述码流初始值的比值,作为上述终端的通道调整深度;
较佳的,计算单元41确定上述码流调整类型为下调之后,在计算上述第三码流配置参数之前,计算单元41进一步用于:
根据上述当前带宽和上一次计算的带宽,判断上述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
较佳的,调整单元42进一步用于:
按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合上述待丢弃数目的媒体帧。
综上所述,本发明实施例中,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;根据当前的带宽和网络拥塞等级,判断码流调整类型,并计算编码调整参数,其中不仅需要计算调整的码流值,还需要计算调整的帧频值,这样,在下调码流时,也相应降低帧频,因为在码流比较低时,过高的帧率已经没有多大意义,而按比率调低帧频,可以有效减少降码流引起的画质变差问题,并且在码流调整类型为下调时,是基于当前带宽,计算需要下调的码流值的,因此在保证了流程性的同时,尽可能达到最大的带宽利用率;最后,终端基于计算的编码调整参数进行编码配置调整。这样,自适应带宽调整编码配置,减少了无效媒体帧的发送,提高了流畅性。
并且,本发明实施例,在码流调整类型为下调时,对码流上调周期阈值进行调整,可以有效减少调整波动;在码流调整类型为上调时,计算属于同一终端组的各个通道的调整深度,保证多通道调整的均衡性;当获取的媒体帧的总数目到达一定阈值时,会进行丢帧,但是根据优先级进行丢帧,这样尽量减少关键帧的丢失。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种网络自适应编码调整方法,其特征在于,包括:
终端获取一个媒体帧,并将所述媒体帧放入缓冲队列,确定所述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据所述总数目和所述总长度,计算当前带宽和当前网络拥塞等级;
终端根据所述当前网络拥塞等级,判断码流调整类型,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
终端基于所述第二编码配置参数或所述第三编码配置参数,进行编码配置调整。
2.如权利要求1所述的方法,其特征在于,终端获取一个媒体帧,并将所述媒体帧放入缓冲队列后,在计算当前带宽和计算当前网络拥塞等级之前,进一步包括:
判断所述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和计算当前网络拥塞等级。
3.如权利要求1所述的方法,其特征在于,确定所述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据所述总数目和所述总长度,计算当前带宽和当前网络拥塞等级,具体包括:
根据当前时间、上一次计算带宽时间和上一次计算带宽到当前时间之间发送的媒体帧的总长度,计算获得当前带宽;
将所述缓冲队列中的媒体帧的总数目分别与预设的每一个媒体帧数目取值区间进行匹配,筛选出匹配成功的目标媒体帧取值区间,以及将对应所述目标媒体帧取值区间设置的网络拥塞等级作为当前网络拥塞等级。
4.如权利要求1所述的方法,其特征在于,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数,具体包括:
基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值;
将所述第二码流值和所述第二帧频值,作为第二编码配置参数;
若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数,具体包括:
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值;
将所述第三码流值和所述第三帧频值,作为第三编码配置参数。
5.如权利要求4所述的方法,其特征在于,基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值,具体包括:
确定当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
计算所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积;
取计算的所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积和所述码流初始值的最小值,作为第二码流值;
计算所述第二码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频初始值的最小值,作为第二帧频值;
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值,具体包括:
确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
计算所述当前带宽与所述预设的调整因子与1的差的乘积;
取计算的所述当前带宽与所述预设的调整因子与1的差的乘积和所述码流可调最小值的最大值,作为第三码流值;
计算所述第三码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频可调最小值的最大值,作为第三帧频值。
6.如权利要求1-5任一项所述的方法,其特征在于,终端确定所述码流调整类型为上调之后,在计算所述第二编码配置参数之前,进一步包括:
终端判断是否到达码流上调周期阈值,确定到达所述码流上调周期阈值时,进一步计算所述终端所在终端组中每一个终端的通道调整深度,以及根据计算结果确定所述终端对应的通道调整深度为最大值时,确定计算所述第二编码配置参数。
7.如权利要求6所述的方法,其特征在于,计算所述终端的通道调整深度时,具体包括:
根据当前使用的码流值和码流初始值,计算所述终端的通道调整深度。
8.如权利要求1-5任一项所述的方法,其特征在于,终端确定所述码流调整类型为下调之后,在计算所述第三码流配置参数之前,进一步包括:
根据所述当前带宽和上一次计算的带宽,判断所述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
9.如权利要求1-8任一项所述的方法,其特征在于,进一步包括:
按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合所述待丢弃数目的媒体帧。
10.一种网络自适应编码调整装置,其特征在于,包括:
确定单元,用于获取一个媒体帧,并将所述媒体帧放入缓冲队列,确定所述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据所述总数目和所述总长度,计算当前带宽和当前网络拥塞等级;
计算单元,用于根据所述当前网络拥塞等级,判断码流调整类型,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
调整单元,用于基于所述第二编码配置参数或所述第三编码配置参数,进行编码配置调整。
11.如权利要求10所述的装置,其特征在于,确定单元获取一个媒体帧,并将所述媒体帧放入缓冲队列后,在计算当前带宽和计算当前网络拥塞等级之前时,确定单元进一步用于:
判断所述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和计算当前网络拥塞等级。
12.如权利要求10所述的装置,其特征在于,确定所述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据所述总数目和所述总长度,计算当前带宽和当前网络拥塞等级时,确定单元具体用于:
根据当前时间、上一次计算带宽时间和上一次计算带宽到当前时间之间发送的媒体帧的总长度,计算获得当前带宽;
将所述缓冲队列中的媒体帧的总数目分别与预设的每一个媒体帧数目取值区间进行匹配,筛选出匹配成功的目标媒体帧取值区间,以及将对应所述目标媒体帧取值区间设置的网络拥塞等级作为当前网络拥塞等级。
13.如权利要求10所述的装置,其特征在于,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数时,计算单元具体用于:
基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值;
将所述第二码流值和所述第二帧频值,作为第二编码配置参数;
若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数时,计算单元具体用于:
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值;
将所述第三码流值和所述第三帧频值,作为第三编码配置参数。
14.如权利要求13所述的装置,其特征在于,基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值时,计算单元具体用于:
确定当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
计算所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积;
取计算的所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积和所述码流初始值的最小值,作为第二码流值;
计算所述第二码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频初始值的最小值,作为第二帧频值;
基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值时,计算单元具体用于:
确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
计算所述当前带宽与所述预设的调整因子与1的差的乘积;
取计算的所述当前带宽与所述预设的调整因子与1的差的乘积和所述码流可调最小值的最大值,作为第三码流值;
计算所述第三码流值与所述码流初始值的比值;
计算所述比值与所述帧频初始值的乘积;
取计算的所述比值与所述帧频初始值的乘积和所述帧频可调最小值的最大值,作为第三帧频值。
15.如权利要求10-14任一项所述的装置,其特征在于,计算单元确定所述码流调整类型为上调之后,在计算所述第二编码配置参数之前,计算单元进一步用于:
判断是否到达码流上调周期阈值,确定到达所述码流上调周期阈值时,进一步计算所述终端所在终端组中每一个终端的通道调整深度,以及根据计算结果确定所述终端对应的通道调整深度为最大值时,确定计算所述第二编码配置参数。
16.如权利要求15所述的装置,其特征在于,计算所述终端的通道调整深度时,计算单元具体用于:
根据当前使用的码流值和码流初始值,计算所述终端的通道调整深度。
17.如权利要求10-14任一项所述的装置,其特征在于,计算单元确定所述码流调整类型为下调之后,在计算所述第三码流配置参数之前,计算单元进一步用于:
根据所述当前带宽和上一次计算的带宽,判断所述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
18.如权利要求10-17任一项所述的装置,其特征在于,调整单元进一步用于:
按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合所述待丢弃数目的媒体帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510716693.9A CN105262699B (zh) | 2015-10-29 | 2015-10-29 | 一种网络自适应编码调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510716693.9A CN105262699B (zh) | 2015-10-29 | 2015-10-29 | 一种网络自适应编码调整方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105262699A true CN105262699A (zh) | 2016-01-20 |
CN105262699B CN105262699B (zh) | 2018-07-03 |
Family
ID=55102207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510716693.9A Active CN105262699B (zh) | 2015-10-29 | 2015-10-29 | 一种网络自适应编码调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105262699B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106998268A (zh) * | 2017-04-05 | 2017-08-01 | 网宿科技股份有限公司 | 一种基于推流终端网络状况的优化方法和系统以及推流终端 |
CN107920041A (zh) * | 2016-10-08 | 2018-04-17 | 北京小唱科技有限公司 | 一种直播视频数据编码比特率的调整方法和装置 |
CN108322773A (zh) * | 2018-02-01 | 2018-07-24 | 安徽创世科技股份有限公司 | 一种基于多卡绑定的自适应网络带宽实时数据流传输方法 |
CN109314793A (zh) * | 2016-05-18 | 2019-02-05 | Sk电信有限公司 | 提供自适应流服务的方法及其设备 |
CN109996088A (zh) * | 2017-12-29 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种直播数据处理方法及装置 |
CN110535810A (zh) * | 2018-05-25 | 2019-12-03 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法和终端 |
CN111246262A (zh) * | 2020-01-09 | 2020-06-05 | 西安万像电子科技有限公司 | 编码调度控制方法及调度控制器 |
CN111327864A (zh) * | 2018-12-17 | 2020-06-23 | 中移(杭州)信息技术有限公司 | 一种视频通话控制方法、装置、终端设备及存储介质 |
CN111488932A (zh) * | 2020-04-10 | 2020-08-04 | 中国科学院大学 | 一种基于帧率感知的自监督视频时-空表征学习方法 |
CN112040235A (zh) * | 2020-11-04 | 2020-12-04 | 北京金山云网络技术有限公司 | 视频资源的编码方法和装置,视频资源的解码方法和装置 |
CN112399268A (zh) * | 2020-11-12 | 2021-02-23 | 唐桥科技(杭州)有限公司 | 实时流媒体传输方法、装置和电子设备 |
WO2021121011A1 (zh) * | 2019-12-17 | 2021-06-24 | 深圳市道通智能航空技术股份有限公司 | 一种图传控制方法、系统及无人机 |
CN115174965A (zh) * | 2022-06-30 | 2022-10-11 | 杭州海康威视数字技术股份有限公司 | 视频预览方法、装置、电子设备及计算机可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098748A1 (en) * | 2002-11-20 | 2004-05-20 | Lan Bo | MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
CN1633177A (zh) * | 2004-12-31 | 2005-06-29 | 大唐微电子技术有限公司 | 视频通信系统的帧率调节方法 |
CN101800697A (zh) * | 2010-01-27 | 2010-08-11 | 深圳市宇速科技有限公司 | 一种自适应网络带宽实时视频传输方法 |
CN102098547A (zh) * | 2011-01-24 | 2011-06-15 | 深圳市威康普科技有限公司 | 一种嵌入式网络自适应/实时高清视频的传输方法 |
CN102231898A (zh) * | 2011-07-05 | 2011-11-02 | 深圳市融创天下科技股份有限公司 | 一种网络带宽自适应qos传输的方法、系统和终端设备 |
CN103118241A (zh) * | 2012-02-24 | 2013-05-22 | 金三立视频科技(深圳)有限公司 | 基于3g网络的移动视频监控流媒体传输自适应调整算法 |
CN103166995A (zh) * | 2011-12-14 | 2013-06-19 | 华为技术有限公司 | 一种视频传输方法及装置 |
CN103414886A (zh) * | 2013-08-27 | 2013-11-27 | 北京汉邦高科数字技术股份有限公司 | 一种网络视频的传输方法 |
CN103888846A (zh) * | 2014-03-04 | 2014-06-25 | 浙江大学 | 基于QoE的无线视频流业务自适应速率控制方法 |
TW201501488A (zh) * | 2013-06-19 | 2015-01-01 | Aver Information Inc | 監控設備與攝影機的調整方法 |
-
2015
- 2015-10-29 CN CN201510716693.9A patent/CN105262699B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098748A1 (en) * | 2002-11-20 | 2004-05-20 | Lan Bo | MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
CN1633177A (zh) * | 2004-12-31 | 2005-06-29 | 大唐微电子技术有限公司 | 视频通信系统的帧率调节方法 |
CN101800697A (zh) * | 2010-01-27 | 2010-08-11 | 深圳市宇速科技有限公司 | 一种自适应网络带宽实时视频传输方法 |
CN102098547A (zh) * | 2011-01-24 | 2011-06-15 | 深圳市威康普科技有限公司 | 一种嵌入式网络自适应/实时高清视频的传输方法 |
CN102231898A (zh) * | 2011-07-05 | 2011-11-02 | 深圳市融创天下科技股份有限公司 | 一种网络带宽自适应qos传输的方法、系统和终端设备 |
CN103166995A (zh) * | 2011-12-14 | 2013-06-19 | 华为技术有限公司 | 一种视频传输方法及装置 |
CN103118241A (zh) * | 2012-02-24 | 2013-05-22 | 金三立视频科技(深圳)有限公司 | 基于3g网络的移动视频监控流媒体传输自适应调整算法 |
TW201501488A (zh) * | 2013-06-19 | 2015-01-01 | Aver Information Inc | 監控設備與攝影機的調整方法 |
CN103414886A (zh) * | 2013-08-27 | 2013-11-27 | 北京汉邦高科数字技术股份有限公司 | 一种网络视频的传输方法 |
CN103888846A (zh) * | 2014-03-04 | 2014-06-25 | 浙江大学 | 基于QoE的无线视频流业务自适应速率控制方法 |
Non-Patent Citations (1)
Title |
---|
曾致远等: "远程数字视频监控系统在银行的应用", 《电视技术》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109314793A (zh) * | 2016-05-18 | 2019-02-05 | Sk电信有限公司 | 提供自适应流服务的方法及其设备 |
CN107920041A (zh) * | 2016-10-08 | 2018-04-17 | 北京小唱科技有限公司 | 一种直播视频数据编码比特率的调整方法和装置 |
CN107920041B (zh) * | 2016-10-08 | 2020-08-25 | 北京小唱科技有限公司 | 一种直播视频数据编码比特率的调整方法和装置 |
CN106998268A (zh) * | 2017-04-05 | 2017-08-01 | 网宿科技股份有限公司 | 一种基于推流终端网络状况的优化方法和系统以及推流终端 |
CN109996088A (zh) * | 2017-12-29 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种直播数据处理方法及装置 |
CN108322773A (zh) * | 2018-02-01 | 2018-07-24 | 安徽创世科技股份有限公司 | 一种基于多卡绑定的自适应网络带宽实时数据流传输方法 |
CN108322773B (zh) * | 2018-02-01 | 2020-05-05 | 安徽创世科技股份有限公司 | 一种基于多卡绑定的自适应网络带宽实时数据流传输方法 |
CN110535810A (zh) * | 2018-05-25 | 2019-12-03 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法和终端 |
CN111327864A (zh) * | 2018-12-17 | 2020-06-23 | 中移(杭州)信息技术有限公司 | 一种视频通话控制方法、装置、终端设备及存储介质 |
WO2021121011A1 (zh) * | 2019-12-17 | 2021-06-24 | 深圳市道通智能航空技术股份有限公司 | 一种图传控制方法、系统及无人机 |
CN111246262A (zh) * | 2020-01-09 | 2020-06-05 | 西安万像电子科技有限公司 | 编码调度控制方法及调度控制器 |
CN111488932A (zh) * | 2020-04-10 | 2020-08-04 | 中国科学院大学 | 一种基于帧率感知的自监督视频时-空表征学习方法 |
CN112040235A (zh) * | 2020-11-04 | 2020-12-04 | 北京金山云网络技术有限公司 | 视频资源的编码方法和装置,视频资源的解码方法和装置 |
CN112040235B (zh) * | 2020-11-04 | 2021-03-16 | 北京金山云网络技术有限公司 | 视频资源的编码方法和装置,视频资源的解码方法和装置 |
CN112399268A (zh) * | 2020-11-12 | 2021-02-23 | 唐桥科技(杭州)有限公司 | 实时流媒体传输方法、装置和电子设备 |
CN115174965A (zh) * | 2022-06-30 | 2022-10-11 | 杭州海康威视数字技术股份有限公司 | 视频预览方法、装置、电子设备及计算机可读存储介质 |
CN115174965B (zh) * | 2022-06-30 | 2024-01-02 | 杭州海康威视数字技术股份有限公司 | 视频预览方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105262699B (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105262699A (zh) | 一种网络自适应编码调整方法及装置 | |
CN103916367B (zh) | 一种传输多媒体数据的方法及装置 | |
US10135740B2 (en) | Method and apparatus for limiting rate by means of token bucket, and computer storage medium | |
CN110519177B (zh) | 一种网络流量识别方法及相关设备 | |
US20200021526A1 (en) | System and Method of Adaptive Congestion Management | |
US8817645B2 (en) | Methods and systems for estimating network available bandwidth using packet pairs and spatial filtering | |
WO2017080214A1 (zh) | 视频清晰度自适应调节方法、装置与终端设备、存储介质 | |
WO2014086142A1 (zh) | 一种视频图像的处理方法及装置 | |
CN107438031A (zh) | 多信道自适应网络带宽的音视频流传输控制方法及系统 | |
EP3229424A1 (en) | Improved wred-based congestion control method and device | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
KR20190122830A (ko) | 비디오 프레임 코딩 방법, 단말기 및 저장 매체 | |
CN106791575B (zh) | 一种数据发送的控制方法及设备 | |
CN113037697B (zh) | 一种视频帧处理方法、装置和电子设备及可读存储介质 | |
WO2018068516A1 (zh) | 一种商业wifi用户动态带宽限制方法及系统 | |
JP2017504995A5 (zh) | ||
JP2022036307A (ja) | クライアント、サーバ、受信方法及び送信方法 | |
CN109495660B (zh) | 一种音频数据的编码方法、装置、设备和存储介质 | |
EP4366296A1 (en) | Video call processing method and apparatus, device and storage medium | |
US9319325B2 (en) | Adaptive method and system of regulation of yellow traffic in a network | |
CN105340318B (zh) | 传输拥塞的确定方法及装置 | |
CN109104376A (zh) | 一种数据的转发方法、装置、堆叠设备和计算机可读介质 | |
Qi et al. | A context-aware framework for reducing bandwidth usage of mobile video chats | |
CN111093089B (zh) | 用于管理视频的方法、边缘缓存调度中心和通信系统 | |
CN114389976A (zh) | 视频帧传输网络传输管理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |