CN105338422B - 视频图像数据的网络发送速率的平滑方法 - Google Patents
视频图像数据的网络发送速率的平滑方法 Download PDFInfo
- Publication number
- CN105338422B CN105338422B CN201410253012.5A CN201410253012A CN105338422B CN 105338422 B CN105338422 B CN 105338422B CN 201410253012 A CN201410253012 A CN 201410253012A CN 105338422 B CN105338422 B CN 105338422B
- Authority
- CN
- China
- Prior art keywords
- video
- transmission rate
- data
- network
- delivery network
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种视频图像数据的网络发送速率的平滑方法,包括:将视频码流写入缓冲区;计算视频编码器的码流变化;根据当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,获得待发送速率,并与视频传输网络带宽和视频码流在视频传输网络中的波动最大值进行比较,以确定实际发送速率;如果采用实际发送速率发送缓冲区中的视频数据所用时长超过采样周期,则根据当前缓冲区的数据大小和网络所允许的延时,调整下个周期的发流速率。本发明方法,可使得视频图像数据的网络发送速率不断地按照预想的方向进行平滑,并最终实现视频图像数据在视频传输网络中的平滑发送,进而避免网络数据的瞬间过冲、数据丢失、网络拥塞甚至网络瘫痪的可能。
Description
技术领域
本发明涉及视频图像传输领域,特别涉及一种视频图像传输过程中的视频图像平滑方法。
背景技术
在视频监控,网络视频会议等应用中,视频图像从实时采集一直到视频图像播放端,需要经过采集、缓冲以及网络传输等环节。
如图1所示,视频拍摄前端所采集到的视频数据经过视频编码器1编码后,视频编码器1通过写指针11将视频数据存放到缓冲区2,网络发流器3通过读指针31将缓冲区中存放的视频数据读出,并通过视频传输网络4发出。视频编码器1维护写指针11,在写指针11将视频数据存放到缓冲区2时,写指针11在缓冲区2中的位置会随着视频数据的写入而更新;网络发流器3维护读指针31,在读指针31将视频数据从缓冲区2读出时,读指针31在缓冲区2中的位置会随着视频数据的读出而更新。在本领域中,网络发流器3的数量可以为1个或者多个,每个网络发流器3各自维护自己的读指针31,另外,网络发流器3也可以采用多线程技术实现。
写指针11的更新速度反映了视频编码器1的输出速率,网络发流器3通过对读指针31的控制,便可调整视频数据码流发送到视频传输网络4的速率,视频数据码流发送到视频传输网络4的速率的平滑程度(或均匀性),反映到视频传输网络4上,即为网络数据流的平滑性。
在视频图像实时采集,视频传输网络实时发送采集到的视频数据时:一方面,由于采集的视频图像的画面场景变化随机,进而所采集到的原始数据量差别很大;另一方面,视频压缩算法采用了帧内(I帧)和帧间(P帧)压缩的方法,其中,I帧也叫关键帧,是帧间压缩编码里的重要帧,I帧是全帧压缩的编码帧,解码时仅用I帧的数据就可重构完整图像,I帧不需要参考其他画面而生成,而P帧由在它前面的P帧或者I帧预测而来,P帧比较与它前面的P帧或者I帧之间的相同信息或数据,即考虑运动的特性进行帧间压缩,P帧是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据,这样,由于I帧和P帧的不同性质,导致压缩后的视频数据量差别很大。
由于该两方面的原因,最终反映在网络传输数据上将变得很不平滑,会存在网络数据的瞬间过冲的现象,加之在实际应用场合中,存在带宽限制等约束,这样,网络数据的瞬间过冲将可能导致数据丢失,或者大量设备同时出现大量数据,将导致网络拥塞,甚至网络瘫痪。
因此,对视频图像数据进行平滑处理,是保障网络数据不发生瞬间过冲,避免网络拥塞和网络瘫痪的重要手段。
现有技术中,已有人针对此情况采用了对视频图像数据进行平滑处理的方法。例如专利CN102355577A中所公开的一种多视视频码流的网络传输码率平滑方法,将发送缓存区再分为两级缓存,并将数据设为阀门值进行计算。该方法可以一定程度上缓冲数据,进而达到网络平滑,但是该方法也有明显的不足,例如,需要两个内存缓冲区,缺少动态实时调整,只按预先设定的阈值进行平滑等,缺少对实时发送速率的应变。
发明内容
有鉴于此,本发明提供一种视频图像数据的网络发送速率的平滑方法,以对当前发送带宽进行实时检测,进而动态调整发送速度,达到码率平滑的目的。
本申请的技术方案是这样实现的:
一种视频图像数据的网络发送速率的平滑方法,包括在每个视频记录采样周期内执行的如下过程:
在当前视频记录采样周期内,将视频码流写入缓冲区;
计算所述当前视频记录采样周期的视频编码器的码流变化;
获取当前缓冲区中视频数据大小;
根据所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,获得所述视频数据的待发送速率;
将所述待发送速率分别与当前视频传输网络带宽和视频码流在视频传输网络中的波动最大值进行比较,以确定实际发送速率;
采用所述实际发送速率发送所述缓冲区中的视频数据。
进一步,如果采用所述实际发送速率发送所述缓冲区中的视频数据所用时长超过所述采样周期,则调整所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,以在下一个视频记录采样周期内采用。
进一步,所述计算所述当前视频记录采样周期的视频编码器的码流变化,采用如下公式进行:
ΔS=S-S0
其中,ΔS为当前视频记录采样周期的视频编码器的码流变化,S为当前视频记录采样周期的视频编码器的码流量,S0为前一视频记录采样周期的视频编码器的码流量。
进一步,根据所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,获得所述视频数据的待发送速率,包括:
在所述缓冲区中设置第一阈值点和第二阈值点,其中第一阈值点小于第二阈值点;
当所述缓冲区中缓冲的视频数据量小于第一阈值点时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量位于所述第一阈值点和第二阈值点之间时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量大于第二阈值点时,采用如下公式获得所述待发送速率:
其中,V为待发送速率,V0为前一视频记录采样周期内发送到网络的最终发送速率,T为视频记录采样周期,Δy为一级修正因子,Δx为二级修正因子。
进一步,所述视频码流在视频传输网络中的波动最大值等于视频图像目标平滑值与视频传输网络码率的乘积。
进一步,将所述待发送速率分别与当前视频传输网络带宽和视频码流在视频传输网络中的波动最大值进行比较,以确定实际发送速率,包括:
将所述待发送速率、当前视频传输网络带宽、视频码流在视频传输网络中的波动最大值三者中的最小值确定为实际发送速率。
进一步,所述第一阈值点为所述视频传输网络延时所允许的缓冲数据量的3/8,所述第二阈值点为所述视频传输网络延时所允许的缓冲数据量的5/8。
进一步,当所述缓冲区中缓冲的视频数据量大于等于0,且小于所述视频传输网络延时所允许的缓冲数据量的1/8,所述一级修正因子Δy为-0.15;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的1/8,且小于所述视频传输网络延时所允许的缓冲数据量的2/8时,所述一级修正因子Δy为-0.1;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的2/8,且小于所述视频传输网络延时所允许的缓冲数据量的3/8时,所述一级修正因子Δy为-0.05;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的3/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的5/8时,所述一级修正因子Δy为0;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的5/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的6/8时,所述一级修正因子Δy为0.05;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的6/8时,且小于等于所述视频传输网络延时所允许的缓冲数据量的7/8时,所述一级修正因子Δy为0.1;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的7/8时,且小于等于所述视频传输网络延时所允许的缓冲数据量的8/8时,所述一级修正因子Δy为0.15。
进一步,所述二级修正因子通过如下方法确定:
根据视频编码器码率,设定第三阈值点和第四阈值点,其中第三阈值点小于第四阈值点;
统计当前时间之前2秒钟到当前时间之前1秒钟的实际码流量,记为第一实际码流量,统计当前时间之前1秒钟到当前时间的实际码流量,记为第二实际码流量;
当第一实际码流量和第二实际码流量均低于所述第三阈值点时:
当第一实际码流量和第二实际码流量均高于所述第四阈值点时:
其中,P3为第三阈值点,P4为第四阈值点,T为视频记录采样周期,S为当前视频记录采样周期的视频编码器的码流量,Δx为所述二级修正因子。
进一步,所述第三阈值点为所述视频编码器码率的3/4,第四阈值点为所述视频编码器码率的5/4,即
其中,P0为所述视频编码器码率。
从上述方案可以看出,采用本发明的视频图像数据的网络发送速率的平滑方法,可给视频传输网络码率波动带来极大的改善,使得视频传输网络码率波动范围能够始终保持在一个较小的范围内。采用本发明的视频图像数据的网络发送速率的平滑方法,可使得视频图像数据的网络发送速率不断地按照预想的方向进行平滑,并最终实现视频图像数据在视频传输网络中的平滑发送,进而避免网络数据的瞬间过冲、数据丢失、网络拥塞甚至网络瘫痪的可能。与现有技术相比,本发明的方法仅使用了单缓冲区,减少了缓冲区的空间占用;通过编码器的瞬时输出量、允许的最大延时、网络平滑目标值进行动态调整发流速率达到网络平滑的目的;通过两个修正因子动态调整发流速率保证了***运行的可靠性。
附图说明
图1为视频数据从视频编码器到上传网络所经历的过程示意图;
图2为本发明的视频图像数据的网络发送速率的平滑方法的示意图;
图3为设置第一阈值点和第二阈值点的示意图;
图4为本发明中二级修正因子的确定过程示意图;
图5为设置第三阈值点和第四阈值点的示意图;
图6为本发明的视频图像数据的网络发送速率的平滑方法实施例流程图;
图7为本发明中调整二级修正因子的实施例流程图;
图8为未采用本发明的视频图像数据的网络发送速率的平滑方法时的视频传输网络码率波动状况示意图;
图9为采用本发明的视频图像数据的网络发送速率的平滑方法后的视频传输网络码率波动状况示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
如图2所示,本发明的视频图像数据的网络发送速率的平滑方法主要包括以下步骤。
步骤1、在当前视频记录采样周期内,将视频码流写入缓冲区。
其中,可参照图1所示,是视频编码器通过写指针,实现的将视频码流写入缓冲区的过程,视频编码器通过写指针将视频码流写入缓冲区的过程为本领域已有,此处不再赘述。
视频记录采样周期,即用来调整视频图像数据的网络发送速率的周期,其精细度对视频图像数据的网络发送速率的平滑效果有重要的影响,若视频记录采样周期太小则可能会导致震荡,若视频记录采样周期太大则可能起不到平滑的作用。同时也需要考虑到程序代码执行的时间因素。作为一个具体实施例,在linux***下(一个操作***对线程的调度周期为10ms),视频图像数据的网络发送速率的平滑效果目标值为10%,定视频记录采样周期为1/16秒,即每个视频记录采样周期约为62.5ms。在其他***系下运行时,或者所述平滑效果目标值改变时,视频记录采样周期需要进行调整。一般情况下,平滑效果目标值越小,视频记录的采样频率要增大。
步骤2、计算所述当前视频记录采样周期的视频编码器的码流变化。
本步骤2中,采用如下公式计算所述当前视频记录采样周期的视频编码器的码流变化:
ΔS=S-S0
其中,ΔS为当前视频记录采样周期的视频编码器的码流变化,S为当前视频记录采样周期的视频编码器的码流量,S0为前一视频记录采样周期的视频编码器的码流量。
步骤3、获取当前缓冲区中视频数据大小。
因为在写指针将视频数据存放到缓冲区时,写指针在缓冲区中的位置会随着视频数据的写入而更新;在读指针将视频数据从缓冲区读出时,读指针在缓冲区中的位置会随着视频数据的读出而更新。因此,本步骤3中,可通过读指针与写指针在所述缓冲区中的位置,进而确定当前缓冲区中视频数据大小。
步骤4、根据所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,获得所述视频数据的待发送速率。
网络的延时(delay)时间,在视频监控领域是一个重要的性能指标,是指采集到图像到终端看到图像的时间差,在本发明中,延时时间专指视频传输网络允许的延时。延时时间与码流平滑目标值有着相互制约相互转化的关系。例如,当需求允许的延时时间为1秒,则理论上可以做到网络传输码流的绝对平滑,即一条直线的效果。
视频传输网络延时所允许的缓冲数据量可通过如下公式获得:
视频传输网络延时所允许的缓冲数据量=视频传输网络码率×网络延时时间
例如视频传输网络的码率为1Mbps,允许网络延时时间为40ms,则缓冲区中视频传输网络延时所允许的缓冲数据量为1Mbps×40/1000S=40K,该视频传输网络延时所允许的缓冲数据量用于缓和编码器输出数据的瞬时变化。
平滑值,即码流在网络传输中峰值超过码率值所允许的最大百分比。例如,若目标平滑值为10%,即码流在网络传输中峰值最大不能超过码率值的10%,若码率为1Mbps,则在目标平滑值的要求下,网络传输速率最大不能超过1.1Mpbs,此可以转换成发送速率的最大允许值。
缓冲在平滑过程中的作用为当视频编码器输出瞬间增大,可以先把视频数据放入缓冲区缓冲一下,当视频编码器输出的数据减小时,可以从缓冲区之前所缓冲的数据补给下,到达平滑的效果。因此阈值点的确定就有如何利用缓冲区的过程。
如图3所示,在所述缓冲区中,依据所述视频传输网络延时所允许的缓冲数据量,设置第一阈值点P1和第二阈值点P2,其中第一阈值点P1小于第二阈值点P2。
根据大量的测试值发现,当所述第一阈值点为所述视频传输网络延时所允许的缓冲数据量的3/8,所述第二阈值点为所述视频传输网络延时所允许的缓冲数据量的5/8时,效果比较理想,这样就有3/8的缓冲空间用于防范缓冲数据过大,以及3/8的已有数据补给视频编码器数据输出的减小。因此,作为一个具体实施例,所述第一阈值点为所述视频传输网络延时所允许的缓冲数据量的3/8,所述第二阈值点为所述视频传输网络延时所允许的缓冲数据量的5/8。
依据上述说明,本步骤4中,具体是通过如下的方法获得所述视频数据的待发送速率的。
当所述缓冲区中缓冲的视频数据量小于第一阈值点P1时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量位于所述第一阈值点P1和第二阈值点P2之间时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量大于第二阈值点P2时,采用如下公式获得所述待发送速率:
其中,V为待发送速率,V0为前一视频记录采样周期内发送到网络的最终发送速率,T为视频记录采样周期,Δy为一级修正因子,Δx为二级修正因子。
所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,即为上述三个条件的三个公式。
步骤5、将所述待发送速率分别与当前视频传输网络带宽和视频码流在视频传输网络中的波动最大值进行比较,以确定实际发送速率。
其中,所述视频码流在视频传输网络中的波动最大值等于视频图像目标平滑值与视频传输网络码率的乘积。例如,若视频图像目标平滑值定为10%,视频传输网络码率1Mbps,则视频码流在视频传输网络中的波动最大值为1Mbps×10%=1.1Mbps,即视频码流在视频传输网络中的波动范围最大不能超过1.1Mbps。
本步骤5中,具体地是将所述待发送速率、当前视频传输网络带宽、视频码流在视频传输网络中的波动最大值三者中的最小值确定为实际发送速率。即若所述待发送速率是该三者中最小的,则将待发送速率确定为实际发送速率,若当前视频传输网络带宽是该三者中最小的,则将当前视频传输网络带宽确定为实际发送速率,若视频码流在视频传输网络中的波动最大值是该三者中最小的,则将视频码流在视频传输网络中的波动最大值确定为实际发送速率。具体的实现流程可先将待发送速率、当前视频传输网络带宽进行比较以确定一个较小的值,再将该较小的值与视频码流在视频传输网络中的波动最大值进行比较以将该次比较出的最小值作为实际发送速率。
步骤6、采用所述实际发送速率发送所述缓冲区中的视频数据。
在执行本步骤6时,需要同时记录采用所述实际发送速率发送所述缓冲区中的视频数据所用的时长,以在随后使用。
步骤7、如果采用所述实际发送速率发送所述缓冲区中的视频数据所用时长超过所述采样周期,则调整所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,以在下一个视频记录采样周期内采用。
调整所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,即为调整公式(1)、公式(2)和公式(3)中的一级修正因子Δy,作为一个具体实施例,Δy的取值范围为0~0.15。
一级修正因子的调整过程包括:
当所述缓冲区中缓冲的视频数据量大于等于0,且小于所述视频传输网络延时所允许的缓冲数据量的1/8时,所述一级修正因子Δy为-0.15;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的1/8,且小于所述视频传输网络延时所允许的缓冲数据量的2/8时,所述一级修正因子Δy为-0.1;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的2/8,且小于所述视频传输网络延时所允许的缓冲数据量的3/8时,所述一级修正因子Δy为-0.05;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的3/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的5/8时,所述一级修正因子Δy为0;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的5/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的6/8时,所述一级修正因子Δy为0.05;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的6/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的7/8时,所述一级修正因子Δy为0.1;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的7/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的8/8时,所述一级修正因子Δy为0.15。
本发明的上述方法中,如图4所示,二级修正因子是通过如下过程进行确定的。
步骤a1、根据视频编码器的码率,设定第三阈值点和第四阈值点,其中第三阈值点小于第四阈值点。
参照图5所示,假设其中阴影区域为视频编码器的码率,第三阈值点P3和第四阈值点P4分别设置于视频编码器的码率的两侧,且第三阈值点P3小于第四阈值点P4。作为一个具体实施例,第三阈值点P3可设置为视频编码器的码率的3/4,第四阈值点P4可设置为视频编码器的码率的5/4,即
其中,P3为第三阈值点,P4为第四阈值点,T为视频记录采样周期,P0为视频编码器码率,其中,视频编码器码率在配置视频编码器时进行设定,设定完视频编码器码率之后,视频编码器才能进行工作。
例如,视频编码器的码率为2Mbps,则第三阈值点P3为3/4×2Mbps=1.5Mbps,第四阈值点P4为5/4×2Mbps=2.5Mbps。
步骤a2、统计当前时间之前2秒钟到当前时间之前1秒钟的实际码流量,记为第一实际码流量,统计当前时间之前1秒钟到当前时间的实际码流量,记为第二实际码流量。
本步骤中,统计当前时间之前2秒钟到当前时间之前1秒钟的实际码流量,是将当前时间之前2秒钟到当前时间之前1秒钟内所有采样周期所发送视频数据的大小进行累加,若1秒钟由N(N≥1)个采样周期组成,则统计当前时间之前2秒钟到当前时间之前1秒钟内的N个采样周期所发送的视频数据。例如,若一个采样周期为62.5ms,那么1秒钟便由16个(62.5ms×16=1S)采样周期所组成,那么本步骤中,统计当前时间之前2秒钟到当前时间之前1秒钟的实际码流量,则是统计当前时间之前2秒钟到当前时间之前1秒钟内的16个采样周期所发送的视频数据的大小并进行累加,进而确定当前时间之前2秒钟到当前时间之前1秒钟内的实际码流量。同理,统计当前时间之前1秒钟到当前时间的实际码流量,是将是将当前时间之前1秒钟当前时间内所有采样周期所发送视频数据的大小进行累加。
在实际中,若当前时间,统计完第一实际码流量和第二实际码流量后,再过1秒钟的下一个统计时间点时,可直接将当前时间的第二实际码流量作为下一个统计时间点的第一实际码流量,而不必在下一个统计时间点重新进行统计。
步骤a3、根据第一实际码流量和第二实际码流量与所述第三阈值点和第四阈值点的比较,确定是否调整二级修正因子。
具体地,当第一实际码流量和第二实际码流量均低于所述第三阈值点时,执行步骤a4,当第一实际码流量和第二实际码流量均高于所述第四阈值点时,执行步骤a5,而在其他情况下不进行二级修正因子的调整。
步骤a4、当第一实际码流量和第二实际码流量均低于所述第三阈值点时,采用如下公式调整二级修正因子:
其中,P3为第三阈值点,P4为第四阈值点,T为视频记录采样周期,S为当前视频记录采样周期的视频编码器的码流量,Δx为所述二级修正因子。
步骤a5、当第一实际码流量和第二实际码流量均高于所述第四阈值点时,采用如下公式调整二级修正因子:
其中,P3为第三阈值点,P4为第四阈值点,T为视频记录采样周期,S为当前视频记录采样周期的视频编码器的码流量,Δx为所述二级修正因子。
以下结合一具体实施例对本发明的方法进行进一步说明。
如图6所示,本发明的视频图像数据的网络发送速率的平滑方法实施例流程包括以下各个步骤。
步骤b1、在记录采样周期内,通过写指针向缓冲区中更新视频码流,之后进入步骤b2。
本步骤b1中,视频编码器通过写指针将视频码流更新到缓冲区中,通过写指针在缓冲区中位置的更新,可以得知更新到缓冲区中的视频码流的最末位置。
步骤b2、计算当前视频记录采样周期内的视频编码器的码流变化,之后进入步骤b3。
本步骤b2中的视频编码器的码流变化是指前后两个采样周期内视频编码器输出码流量的差别,即
ΔS=S-S0
其中,ΔS为当前视频记录采样周期的视频编码器的码流变化,S为当前视频记录采样周期的视频编码器的码流量,S0为前一视频记录采样周期的视频编码器的码流量。
步骤b3、通过读指针和写指针在缓冲区的位置计算当前缓冲区中视频数据的实际大小,之后进入步骤b4。
因为在写指针将视频数据存放到缓冲区时,写指针在缓冲区中的位置会随着视频数据的写入而更新;在读指针将视频数据从缓冲区读出时,读指针在缓冲区中的位置会随着视频数据的读出而更新。因此,本步骤中,可通过读指针与写指针在所述缓冲区中的位置,进而确定当前缓冲区中视频数据大小。
步骤b4、根据当前缓冲区中视频数据的实际大小与视频传输网络所允许延时的关系,计算视频数据的待发送速率,之后进入步骤b5。
本步骤b4中,通过在缓冲区中设置第一阈值点P1和第二阈值点P2(图3所示),并具体是通过如下的方法获得所述视频数据的待发送速率的。
当所述缓冲区中缓冲的视频数据量小于第一阈值点P1时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量位于所述第一阈值点P1和第二阈值点P2之间时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量大于第二阈值点P2时,采用如下公式获得所述待发送速率:
其中,V为待发送速率,V0为前一视频记录采样周期内发送到网络的最终发送速率,T为视频记录采样周期,Δy为一级修正因子,Δx为二级修正因子,Δy的取值范围为0~0.15。
步骤b5、将待发送速率与检测到的当前视频传输网络带宽进行比较,如果待发送速率小于检测到的当前带宽,则将待发送速率带入步骤b6,否则将当前视频传输网络带宽带入步骤b6。
步骤b6、将步骤b5带入的值与视频码流在视频传输网络中的波动最大值进行比较,若步骤b5带入的值小于视频码流在视频传输网络中的波动最大值,则将步骤b5带入的值确定为实际发送速率,否则将视频码流在视频传输网络中的波动最大值确定为实际发送速率,之后进入步骤b7。
步骤b7、采用所述实际发送速率发送缓冲区中的视频数据,之后进入步骤b8。
步骤b8、判断步骤b7中采用所述实际发送速率发送缓冲区中的视频数据所使用的时间是否超过记录采样周期,如果是则进入步骤b9,否则进入步骤b10。
步骤b9、调整一级修正因子,并在下一记录采样周期返回步骤b1。
本步骤b9中,一级修正因子Δy的调整方法为:
当缓冲区中缓冲的视频数据量大于等于0,且小于视频传输网络延时所允许的缓冲数据量的1/8时,Δy=-0.15;当缓冲区中缓冲的视频数据量大于等于视频传输网络延时所允许的缓冲数据量的1/8,且小于视频传输网络延时所允许的缓冲数据量的2/8时,Δy=-0.1;当缓冲区中缓冲的视频数据量大于等于视频传输网络延时所允许的缓冲数据量的2/8,且小于所述视频传输网络延时所允许的缓冲数据量的3/8时,Δy=-0.05;当缓冲区中缓冲的视频数据量大于等于视频传输网络延时所允许的缓冲数据量的3/8,且小于等于视频传输网络延时所允许的缓冲数据量的5/8时,Δy=0;当缓冲区中缓冲的视频数据量大于视频传输网络延时所允许的缓冲数据量的5/8,且小于等于视频传输网络延时所允许的缓冲数据量的6/8时,Δy=0.05;当缓冲区中缓冲的视频数据量大于视频传输网络延时所允许的缓冲数据量的6/8,且小于等于视频传输网络延时所允许的缓冲数据量的7/8时,Δy=0.1;当缓冲区中缓冲的视频数据量大于视频传输网络延时所允许的缓冲数据量的7/8,且小于等于视频传输网络延时所允许的缓冲数据量的8/8时,Δy=0.15。
步骤b10、休眠本记录采样周期的剩余时间,并在下一记录采样周期返回步骤b1。
经过上述过程后,若一级修正因子Δy进行了调整,便可在下一记录采样周期内使用新的一级修正因子Δy进行步骤b4的待发送速率的确定,进而在下一记录采样周期内通过随后的步骤b5和步骤b6来确定新的实际发送速率,进而在下一记录采样周期内能够在步骤b7中采用新的实际发送速率发送缓冲区中的视频数据。经过上述过程的反复进行,随着每一次记录采样周期中的一级修正因子Δy的不断调整。
对于二级修正因子Δx来说,主要作用是保证***的可靠性,如果一级修正因子Δy的调整保证了***的稳定运行,即一级修正因子Δy的调整保证了视频图像数据在视频传输网络中的平滑发送,则不会用到二级修正因子Δx,否则需要使用二级修正因子Δx进而保证***的可靠性。
如图7所示,本发明中调整二级修正因子Δx的实施例流程包括以下步骤。
步骤c1、设定第三阈值点P3和第四阈值点P4,其中第三阈值点P3为视频编码器码率的3/4,第四阈值点P4为视频编码器码率的5/4。
步骤c2、累加每个视频记录采样周期中向视频传输网络发送的视频数据量,并进入步骤c3。
步骤c3、根据所累加的每个视频记录采样周期中向视频传输网络发送的视频数据量,统计当前时间之前2秒钟到当前时间之前1秒钟的实际码流量,记为第一实际码流量,统计当前时间之前1秒钟到当前时间的实际码流量,记为第二实际码流量。
步骤c4、当第一实际码流量和第二实际码流量均低于所述第三阈值点时:
当第一实际码流量和第二实际码流量均高于所述第四阈值点时:
在其他情况下不进行二级修正因子的调整;
其中,P3为第三阈值点,P4为第四阈值点,T为视频记录采样周期,S为当前视频记录采样周期的视频编码器的码流量,Δx为所述二级修正因子。
步骤c5、将步骤c4中获得的二级修正因子Δx送往公式(1)、公式(2)和公式(3),以用于视频图像数据的网络发送速率的平滑。
如图8所示,为未采用本发明的视频图像数据的网络发送速率的平滑方法时的视频传输网络码率波动状况示意图;如图9所示,为采用本发明的视频图像数据的网络发送速率的平滑方法后的视频传输网络码率波动状况示意图。通过图8和图9的对比,可以看出,采用本发明的视频图像数据的网络发送速率的平滑方法后,给视频传输网络码率波动带来了极大的改善,使得视频传输网络码率波动范围能够始终保持在一个较小的范围内。采用本发明的视频图像数据的网络发送速率的平滑方法,可使得视频图像数据的网络发送速率不断地按照预想的方向进行平滑,并最终实现视频图像数据在视频传输网络中的平滑发送,进而避免网络数据的瞬间过冲、数据丢失、网络拥塞甚至网络瘫痪的可能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种视频图像数据的网络发送速率的平滑方法,包括在每个视频记录采样周期内执行的如下过程:
在当前视频记录采样周期内,将视频码流写入缓冲区;
计算所述当前视频记录采样周期的视频编码器的码流变化;
获取当前缓冲区中视频数据大小;
根据所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,获得所述视频数据的待发送速率;
将所述待发送速率分别与当前视频传输网络带宽和视频码流在视频传输网络中的波动最大值进行比较,以确定实际发送速率;
采用所述实际发送速率发送所述缓冲区中的视频数据;
其中,根据所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,获得所述视频数据的待发送速率,包括:
在所述缓冲区中设置第一阈值点和第二阈值点,其中第一阈值点小于第二阈值点;
当所述缓冲区中缓冲的视频数据量小于第一阈值点时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量位于所述第一阈值点和第二阈值点之间时,采用如下公式获得所述待发送速率:
当所述缓冲区中缓冲的视频数据量大于第二阈值点时,采用如下公式获得所述待发送速率:
其中,V为待发送速率,V0为前一视频记录采样周期内发送到网络的最终发送速率,T为视频记录采样周期,Δy为一级修正因子,Δx为二级修正因子,ΔS为当前视频记录采样周期的视频编码器的码流变化。
2.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于,所述方法还包括:
如果采用所述实际发送速率发送所述缓冲区中的视频数据所用时长超过所述采样周期,则调整所述当前缓冲区中视频数据大小与视频传输网络所允许延时的关系,以在下一个视频记录采样周期内采用。
3.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于,计算所述当前视频记录采样周期的视频编码器的码流变化,采用如下公式进行:
ΔS=S-S0
其中,S为当前视频记录采样周期的视频编码器的码流量,S0为前一视频记录采样周期的视频编码器的码流量。
4.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于:所述视频码流在视频传输网络中的波动最大值等于视频图像目标平滑值与视频传输网络码率的乘积。
5.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于,将所述待发送速率分别与当前视频传输网络带宽和视频码流在视频传输网络中的波动最大值进行比较,以确定实际发送速率,包括:
将所述待发送速率、当前视频传输网络带宽、视频码流在视频传输网络中的波动最大值三者中的最小值确定为实际发送速率。
6.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于,所述第一阈值点为所述视频传输网络延时所允许的缓冲数据量的3/8,所述第二阈值点为所述视频传输网络延时所允许的缓冲数据量的5/8。
7.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于:
当所述缓冲区中缓冲的视频数据量大于等于0,且小于所述视频传输网络延时所允许的缓冲数据量的1/8,所述一级修正因子Δy为-0.15;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的1/8,且小于所述视频传输网络延时所允许的缓冲数据量的2/8时,所述一级修正因子Δy为-0.1;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的2/8,且小于所述视频传输网络延时所允许的缓冲数据量的3/8时,所述一级修正因子Δy为-0.05;
当所述缓冲区中缓冲的视频数据量大于等于所述视频传输网络延时所允许的缓冲数据量的3/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的5/8时,所述一级修正因子Δy为0;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的5/8,且小于等于所述视频传输网络延时所允许的缓冲数据量的6/8时,所述一级修正因子Δy为0.05;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的6/8时,且小于等于所述视频传输网络延时所允许的缓冲数据量的7/8时,所述一级修正因子Δy为0.1;
当所述缓冲区中缓冲的视频数据量大于所述视频传输网络延时所允许的缓冲数据量的7/8时,且小于等于所述视频传输网络延时所允许的缓冲数据量的8/8时,所述一级修正因子Δy为0.15。
8.根据权利要求1所述的视频图像数据的网络发送速率的平滑方法,其特征在于,所述二级修正因子通过如下方法确定:
根据视频编码器码率,设定第三阈值点和第四阈值点,其中第三阈值点小于第四阈值点;
统计当前时间之前2秒钟到当前时间之前1秒钟的实际码流量,记为第一实际码流量,统计当前时间之前1秒钟到当前时间的实际码流量,记为第二实际码流量;
当第一实际码流量和第二实际码流量均低于所述第三阈值点时:
当第一实际码流量和第二实际码流量均高于所述第四阈值点时:
其中,P3为第三阈值点,P4为第四阈值点,T为视频记录采样周期,S为当前视频记录采样周期的视频编码器的码流量,Δx为所述二级修正因子。
9.根据权利要求8所述的视频图像数据的网络发送速率的平滑方法,其特征在于:所述第三阈值点为所述视频编码器码率的3/4,第四阈值点为所述视频编码器码率的5/4,即
其中,P0为所述视频编码器码率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253012.5A CN105338422B (zh) | 2014-06-09 | 2014-06-09 | 视频图像数据的网络发送速率的平滑方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253012.5A CN105338422B (zh) | 2014-06-09 | 2014-06-09 | 视频图像数据的网络发送速率的平滑方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105338422A CN105338422A (zh) | 2016-02-17 |
CN105338422B true CN105338422B (zh) | 2018-11-13 |
Family
ID=55288644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410253012.5A Active CN105338422B (zh) | 2014-06-09 | 2014-06-09 | 视频图像数据的网络发送速率的平滑方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105338422B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083430B (zh) * | 2018-10-18 | 2021-04-23 | 杭州海康威视***技术有限公司 | 一种图像获取方法、装置、电子设备及存储介质 |
CN113302928B (zh) | 2018-12-29 | 2023-01-10 | 浙江大华技术股份有限公司 | 传输多视频流的***和方法 |
CN113099488B (zh) * | 2019-12-23 | 2024-04-09 | ***通信集团陕西有限公司 | 解决网络拥塞的方法、装置、计算设备及计算机存储介质 |
CN113573062B (zh) * | 2020-04-29 | 2023-12-29 | 华为技术有限公司 | 流量整形方法、装置与电子设备 |
CN111954007B (zh) * | 2020-07-14 | 2022-03-25 | 烽火通信科技股份有限公司 | Udp直播中vbr视频快速平滑发送方法与装置 |
CN117813824A (zh) * | 2021-11-17 | 2024-04-02 | 英特尔公司 | 利用快速低时延比特流大小控制的视频编码的方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075957A (zh) * | 2007-06-26 | 2007-11-21 | 上海大学 | Avs流媒体传输控制方法 |
CN101123606A (zh) * | 2007-07-13 | 2008-02-13 | 上海广电(集团)有限公司中央研究院 | 基于实时传输协议或实时控制协议的avs传输控制方法 |
CN101296184A (zh) * | 2008-05-30 | 2008-10-29 | 华为技术有限公司 | 一种数据传输的方法、***及装置 |
CN102325274A (zh) * | 2011-10-13 | 2012-01-18 | 浙江万里学院 | 一种自适应网络带宽的视频流传输控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016409B2 (en) * | 2003-11-12 | 2006-03-21 | Sony Corporation | Apparatus and method for use in providing dynamic bit rate encoding |
EP2383999A1 (en) * | 2010-04-29 | 2011-11-02 | Irdeto B.V. | Controlling an adaptive streaming of digital content |
-
2014
- 2014-06-09 CN CN201410253012.5A patent/CN105338422B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075957A (zh) * | 2007-06-26 | 2007-11-21 | 上海大学 | Avs流媒体传输控制方法 |
CN101123606A (zh) * | 2007-07-13 | 2008-02-13 | 上海广电(集团)有限公司中央研究院 | 基于实时传输协议或实时控制协议的avs传输控制方法 |
CN101296184A (zh) * | 2008-05-30 | 2008-10-29 | 华为技术有限公司 | 一种数据传输的方法、***及装置 |
CN102325274A (zh) * | 2011-10-13 | 2012-01-18 | 浙江万里学院 | 一种自适应网络带宽的视频流传输控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105338422A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105338422B (zh) | 视频图像数据的网络发送速率的平滑方法 | |
US11159834B2 (en) | Managing congestion response during content delivery | |
CN104519325B (zh) | 一种基于4g网络的无线视频监控***自适应保障方法 | |
CN102246531B (zh) | 复用视频流传输 | |
CN109743600B (zh) | 基于可穿戴的现场运维自适应视频流传输速率控制方法 | |
US11711553B2 (en) | Transmission parameter control for segment delivery | |
CN108347645B (zh) | 一种视频帧解码显示的方法及装置 | |
CN103004190A (zh) | 视频流传送 | |
CN102427532B (zh) | 一种受限带宽下的多路视频自适应编码传输方法及其传输*** | |
CN106993190B (zh) | 软硬件协同编码方法及*** | |
WO2021097865A1 (zh) | 面向多人互动直播的自适应码率调节方法 | |
CN107509120A (zh) | 一种基于缓冲区下溢概率估计的流媒体自适应传输方法 | |
CN106412721A (zh) | 估计处理器负荷 | |
US9313243B2 (en) | Video streaming over data networks | |
CN102724502B (zh) | 一种视频编码中码率的控制方法及装置 | |
EP2656560B1 (en) | A method for delivering video content encoded at one or more quality levels over a data network | |
WO2024120214A1 (zh) | 一种编码控制方法、装置、设备、存储介质及产品 | |
DE60012702D1 (de) | Bitratensteuerung für videodatenkomprimierung | |
CN102724507B (zh) | 一种gpu加速编码器码率控制方法 | |
Tan et al. | A frame rate optimization framework for improving continuity in video streaming | |
CN102685482A (zh) | 混合式编解码方法及装置 | |
CN101568025A (zh) | 码率控制中的虚拟缓冲区自适应控制方法 | |
CN202261655U (zh) | 受限带宽下的多路视频自适应编码传输*** | |
JPH0479587A (ja) | 可変レートビデオ符号化制御方式 | |
CN105306970A (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 |