一种网络自适应编码调整方法及装置的制造方法

文档序号:9508520阅读:449来源:国知局
一种网络自适应编码调整方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种网络自适应编码调整方法及装置。
【背景技术】
[0002]随着互联网覆盖率的持续扩大,越来越多的安防设备接入到互联网中。但是,互联网相对于局域网存在两个特征:波动性高和带宽低。在这种情况下,监控视频如果以固定的数据速率采集,就会产生频繁的丢帧现象,可能给用户带来无法估量的损失。因此,需要一种网络自适应的编码调整机制,来减少丢帧情况的发生。
[0003]现有技术下,提供了两种网络自适应的编码调整方法。
[0004]第一种方法为:检测网络状态是采用poll判断套接口是否可写的方式,达到连续网络恶劣等级值BAD_C0NDIT10N次不可写则降低码流,达到连续网络良好等级值G00D_CONDIT1N次可写则增高码流,且是根据预设的编码等级进行调整的,具体操作步骤为:
[0005]1)设置网络监听参数;
[0006]2)获取3G网络状态;
[0007]3)验证数据是否为关键帧;
[0008]4)丢弃步骤3中的非关键帧数据;
[0009]5)记录网络状态;
[0010]6)判断网络状态是否达到调整编码参数条件;
[0011]7)调整编码参数;
[0012]8)重置网络状态记录。
[0013]由此可见,针对第一种方法,其并不知道当前的码流具体是多少,而是根据预设的编码等级直接降低到一个预设值,且每次降幅很大,这就很可能导致带宽利用率不足的问题。并且,使用poll的方式检测网络状态,会存在判断不准的情况。若BAD_C0NDIT10N设置太小,则容易受瞬间带宽波动影响;若设置太大,则可能在达到条件前,被一次检测到的可写事件打断而重新计数,进而导致码流无法下调。
[0014]第二种方法为:在带宽变化时对码流进行调整,具体操作为:
[0015]首先,当获取到当前帧图像初始数据时,确定当前帧延时为指定内存中最先存储的一帧图像编码数据对应的初始数据获取到的时间和最后存储的一帧图像编码数据对应的初始数据获取到的时间之间的时间差值;
[0016]然后,当当前帧延时在预设范围内时,调整当前码流值变小;
[0017]最后,基于调整后的当前码流值对当前帧图像初始数据进行编码,得到当前帧图像编码数据,当前帧图像编码数据存储于指定内存中等待发送。
[0018]由此可见,针对第二种方法,在带宽变化时只调整码流,而没有调整帧率,当码流调整到很小而帧率很高时,画面质量会变得非常差,而且带宽很低时,高帧率其实没有多大意义。
[0019]并且,对于现有技术下的第一种方法和第二种方法,还都存在以下两个问题:
[0020]1、在带宽稳定,但是小于编码配置的码流大小时,会周期性的围绕当前带宽上下调整码流,而码流每次调整到高于带宽,势必引起视频延迟或慢放,甚至触发丢帧;
[0021]2、当同时打开一个监控设备的多个通道,并且网络带宽小于所有通道的码流和时,会触发多个通道下调码流。当带宽升高,大于下调后所有通道的码流和时,又会有部分通道上调码流。但是,如果所有通道的码流都独立调整,就有可能出现个别通道码流很大而另外的通道码流很小的情况。
[0022]基于以上的分析,现有网络自适应的编码调整机制方法存在调整编码配置效果差、不能充分利用网络资源等缺陷。

【发明内容】

[0023]本发明的目的是提供一种网络自适应编码调整方法及装置,以解决现有技术中存在调整编码配置效果差、不能充分利用网络资源的问题。
[0024]本发明的目的是通过以下技术方案实现的:
[0025]一种网络自适应编码调整方法,包括:
[0026]终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;
[0027]终端根据上述当前网络拥塞等级,判断码流调整类型,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
[0028]终端基于上述第二编码配置参数或上述第三编码配置参数,进行编码配置调整。
[0029]本发明实施例中,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;根据当前的带宽和网络拥塞等级,判断码流调整类型,并计算编码调整参数,其中不仅需要计算调整的码流值,还需要计算调整的帧频值,这样,在下调码流时,也相应降低帧频,因为在码流比较低时,过高的帧率已经没有多大意义,而按比率调低帧频,可以有效减少降码流引起的画质变差问题,并且在码流调整类型为下调时,是基于当前带宽,计算需要下调的码流值的,因此在保证了流程性的同时,尽可能达到最大的带宽利用率;最后,终端基于计算的编码调整参数进行编码配置调整。这样,自适应带宽调整编码配置,减少了无效媒体帧的发送,提高了流畅性。
[0030]并且,本发明实施例,在码流调整类型为下调时,对码流上调周期阈值进行调整,可以有效减少调整波动;在码流调整类型为上调时,计算属于同一终端组的各个通道的调整深度,保证多通道调整的均衡性;当获取的媒体帧的总数目到达一定阈值时,会进行丢帧,但是根据优先级进行丢帧,这样尽量减少关键帧的丢失。
[0031]较佳的,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列后,在计算当前带宽和计算当前网络拥塞等级之前,进一步包括:
[0032]判断上述媒体帧是否为关键帧,以及在确定为关键帧时,确定计算当前带宽和计算当前网络拥塞等级。
[0033]较佳的,若所述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数,具体包括:
[0034]基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值;
[0035]将所述第二码流值和所述第二帧频值,作为第二编码配置参数;
[0036]若所述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数,具体包括:
[0037]基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值;
[0038]将所述第三码流值和所述第三帧频值,作为第三编码配置参数。
[0039]较佳的,基于当前使用的第一编码配置参数和预设的调整因子,计算第二码流值以及计算第二帧频值,具体包括:
[0040]确定当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括当前使用的第一码流值、第一帧频值、码流初始值和帧频初始值;
[0041]计算所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积;
[0042]取计算的所述当前使用的第一码流值与所述预设的调整因子与1的和的乘积和所述码流初始值的最小值,作为第二码流值;
[0043]计算所述第二码流值与所述码流初始值的比值;
[0044]计算所述比值与所述帧频初始值的乘积;
[0045]取计算的所述比值与所述帧频初始值的乘积和所述帧频初始值的最小值,作为第二帧频值;
[0046]基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算第三码流值以及计算第三帧频值,具体包括:
[0047]确定当前带宽、当前使用的第一编码配置参数和预设的调整因子,所述第一编码配置参数包括码流可调最小值、码流初始值、帧频初始值和的帧频可调最小值;
[0048]计算所述当前带宽与所述预设的调整因子与1的差的乘积;
[0049]取计算的所述当前带宽与所述预设的调整因子与1的差的乘积和所述码流可调最小值的最大值,作为第三码流值;
[0050]计算所述第三码流值与所述码流初始值的比值;
[0051]计算所述比值与所述帧频初始值的乘积;
[0052]取计算的所述比值与所述帧频初始值的乘积和所述帧频可调最小值的最大值,作为第三帧频值。
[0053]较佳的,终端确定上述码流调整类型为上调之后,在计算上述第二编码配置参数之前,进一步包括:
[0054]终端判断是否到达码流上调周期阈值,确定到达上述码流上调周期阈值时,进一步计算上述终端所在终端组中每一个终端的通道调整深度,以及根据计算结果确定上述终端对应的通道调整深度为最大值时,确定计算所述第二编码配置参数。
[0055]较佳的,计算上述终端的通道调整深度时,具体包括:
[0056]根据当前使用的码流值和码流初始值,计算上述终端的通道调整深度。
[0057]较佳的,终端确定上述码流调整类型为下调之后,在计算上述第三码流配置参数之前,进一步包括:
[0058]根据上述当前带宽和上一次计算的带宽,判断上述当前带宽和上一次计算的带宽之间的比值是否归属于预设区间,若是,则增加码流上调周期阈值,否则,复位码流上调周期阈值为初始值。
[0059]较佳的,按照设定周期判断当前缓冲队列中的媒体帧的总数目是否达到预设上限,确定达到预设上限时,计算媒体帧的待丢弃数目,并确定对应各个媒体帧预设的丢弃优先级,以及按照丢弃优先级从高到低的顺序,丢弃符合上述待丢弃数目的媒体帧。
[0060]一种网络自适应编码调整装置,具体包括:
[0061]确定单元,用于获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;
[0062]计算单元,用于根据上述当前网络拥塞等级,判断码流调整类型,若上述码流调整类型为上调,则基于当前使用的第一编码配置参数和预设的调整因子,计算上调后的第二编码配置参数;若上述码流调整类型为下调,则基于当前带宽、当前使用的第一编码配置参数和预设的调整因子,计算下调后的第三编码配置参数;
[0063]调整单元,用于基于上述第二编码配置参数或上述第三编码配置参数,进行编码配置调整。
[0064]本发明实施例中,终端获取一个媒体帧,并将上述媒体帧放入缓冲队列,确定上述缓冲队列中的媒体帧的总数目和上一次计算带宽到当前时间之间发送的媒体帧的总长度,以及根据上述总数目和上述总长度,计算当前带宽和当前网络拥塞等级;根据当前的带宽和网络拥塞等级,判断码流调整类型,并计算编码调整参数,其中不仅需要计算调整的码流值,还需要计算调整的帧频值,这样,在下调码流时,也相应降低帧频,因为在码流比较低时
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1