本发明实施例涉及通信技术领域,尤其涉及一种视频码率自适应调整方法及装置。
背景技术:
随着3G、4G、WIFI等无线网络覆盖率不断提高,以及带有摄像头的手机及其他便携设备的发展,实时视频交互应用的使用越来越广泛,且实时视频交互应用对于网络延迟、网络带宽波动和丢包率的要求较高。但是,在无线网络中,无线网络本身存在着丢包率高,带宽波动大等缺点,使得基于无线网络的视频文件实时传输存在很大困难,解决这一问题的主要途径是通过基于网络实际质量的视频码率自适应算法来调整视频码率,避免视频流量超出网络负载造成丢包加重,延迟增大,影响视频质量。
现有技术中的视频码率自适应算法采用丢包率作为视频码率调整的参照变量,具体调整原则为:若丢包率增加,则减小视频码率,若丢包率减小,则增加视频码率。
但是,在无线网络中,引起丢包的原因不仅仅是网络拥塞,若是除网络拥塞之外的原因导致的丢包,例如无线传输距离远导致的丢包,即使通过丢包率调整视频码率也不能准确有效解决视频文件实时传输的问题,即现有的视频码率自适应算法不能准确有效解决视频文件实时传输的问题。
技术实现要素:
本发明实施例提供一种视频码率自适应调整方法及装置,以准确有效解决视频文件实时传输的问题。
本发明实施例的一个方面是提供一种视频码率自适应调整方法,包括:
获取与通信对端无线通信的往返时延,以及所述通信对端的接收速率;
依据所述往返时延获得排队延迟;
依据所述排队延迟和所述接收速率调整视频码率,并依据调整后的视频码率对视频文件进行编码;
向所述通信对端发送编码后的视频文件。
本发明实施例的另一个方面是提供一种视频码率自适应调整装置,包括:
收发模块,用于获取与通信对端无线通信的往返时延,以及所述通信对端的接收速率;向所述通信对端发送编码后的视频文件;
计算模块,用于依据所述往返时延获得排队延迟;依据所述排队延迟和所述接收速率调整视频码率;
编码模块,用于依据调整后的视频码率对视频文件进行编码。
本发明实施例提供的视频码率自适应调整方法及装置,通过发送设备获取与通信对端之间的往返时延计算出排队延迟,再依据排队延迟与通信对端的接收速率调整视频码率,即将排队延迟作为视频码率调整的参照变量,相对于采用丢包率作为视频码率调整的参照变量,避免由于无线网络中链路错误、传输距离长引起丢包率增大,从而准确有效解决视频文件实时传输的问题。
附图说明
图1为本发明实施例提供的视频码率自适应调整方法流程图;
图2本发明实施例提供的网络链路等效图;
图3为本发明实施例提供的视频码率自适应调整方法适用的信令图;
图4为本发明实施例提供的视频码率自适应调整装置的结构图。
具体实施方式
图1为本发明实施例提供的视频码率自适应调整方法流程图;图2本发明实施例提供的网络链路等效图。本发明实施例针对现有的视频码率自适应算法不能准确有效解决视频文件实时传输的问题,提供了视频码率自适应调整方法,该方法具体步骤如下:
步骤S101、获取与通信对端无线通信的往返时延,以及所述通信对端的接收速率;
本发明实施例所述的通信对端是指与发送设备对应的接收设备。如图2所示,本发明实施例将网络链路等效为一个队列缓冲区,数据进入速度为x,x具体表示视频码率,数据排出速度为r,r具体表示接收设备的接收速度,发送设备已经发出、还未被通信对端接收的数据缓存在缓冲区S中,根据排队论知识,缓冲区S的大小、排队延迟q和数据排出速度为r随时间的变化关系满足公式(1):
S(t)=q(t)*r(t) (1)
缓冲区S的大小变化率S'(t)可以通过数据进入速度x和数据排出速度r的差值表示,如公式(2)所示:
S'(t)=x(t)-r(t) (2)
其中,r(t)取决于网络带宽,短时间内变化不大,在调整视频码率的过程中,可以认为是一个常数r,即r表示依据所述接收速率估计的网络带宽,根据公式(1)和(2)可以得出排队延迟q在不同数据进入速度x和网络带宽r条件下的变化率,如公式(3)所示:
通过公式(3)可知,当视频码率大于网络带宽时,排队延迟上升,当视频码率小于网络带宽时,排队延迟下降。因此,本发明实施例将排队延迟作为反馈信息来调节视频码率。由于排队延迟与发送设备和接收设备之间的往返时延有关,对视频码率的调节与接收设备的接收速率有关,因此,发送设备需要获取与通信对端之间的往返时延,以及所述通信对端的接收速率。
步骤S102、依据所述往返时延获得排队延迟;
所述依据所述往返时延获得排队延迟,包括:
依据所述往返时延RTT和往返时延最小值RTTmin计算当前时刻tk对应的排队延迟q(tk),
其中,往返时延最小值RTTmin是发送设备与接收设备之间的历史往返时延 RTT中的最小值。
步骤S103、依据所述排队延迟和所述接收速率调整视频码率,并依据调整后的视频码率对视频文件进行编码。
依据步骤S102计算的排队延迟和步骤S101获得的接收设备的接收速率调整视频码率,即依据所述排队延迟和所述接收速率计算出新的视频码率,并依据新的视频码率对视频文件进行编码。
步骤S104、向所述通信对端发送编码后的视频文件。
本发明实施例通过发送设备获取与通信对端之间的往返时延计算出排队延迟,再依据排队延迟与通信对端的接收速率调整视频码率,即将排队延迟作为视频码率调整的参照变量,相对于采用丢包率作为视频码率调整的参照变量,避免由于无线网络中链路错误、传输距离长引起丢包率增大,从而准确有效解决视频文件实时传输的问题。
在上述实施例的基础上,所述依据所述排队延迟和所述接收速率调整视频码率,包括:
依据所述排队延迟q(tk)和所述接收速率r(tk)获得下一时刻tk+1对应的视频码率x(tk+1),
KP,KI是比例积分控制器的参数,所述比例积分控制器用于约束视频码率x(t)与排队延迟q(t)之间的关系,δ(X(s))是δ(x(t))的拉普拉斯变换,δ(Q(s))是δ(q(t))的拉普拉斯变换,δ(q(t))=q0-q(t),δ(x(t))=x0-x(t)。
在上述步骤S103中,依据所述排队延迟和所述接收速率调整视频码率时,具体通过如下公式(4)进行调整:
公式(4)的推导过程,以及参数KP,KI的推导过程如下:
本发明实施例将排队延迟q(t)维持在一个固定水平q0,q0即为预设目标排队延迟。当q(t)大于q0时,表明缓存区S中缓存的数据较多,需要减小视频码率x(t),根据公式(3)可知,将x(t)减小到小于网络带宽r时,q'(t)小于0,q(t)将减小,并趋向于固定水平q0;同理,当q(t)小于q0时,需要增大视频码率x(t);可见,视频码率x(t)与排队延迟q(t)之间需要建立一定的约束关系来保证排队延迟q(t)维持在固定水平q0,本发明实施例用比例积分控制器具体限定视频码率x(t)与排队延迟q(t)之间的约束关系。在时域中,比例积分控制器Gc(t)与视频码率x(t)和排队延迟q(t)之间的约束关系通过如下闭环时域控制模型(5)实现:
通过闭环时域控制模型(5)可知,若排队延迟q(t)偏离固定水平q0,则将q0-q(t)作为比例积分控制器Gc(t)的输入,比例积分控制器Gc(t)根据其控制模块决定新的视频码率x(t)。
当q(t)=q0,x(t)=x0,q'(t)=q'0时,闭环时域控制模型(5)可变化成闭环时域控制模型(6):
为了更方便的分析比例积分控制器Gc(t),进行如公式(7)、(8)和(9)的差分运算:
δ(q(t))=q0-q(t) (7)
δ(q'(t))=q'0-q'(t) (8)
δ(x(t))=x0-x(t) (9)
其中,x0=r。
闭环时域控制模型(6)与闭环时域控制模型(5)进行差运算,在差运算过程中,常数相减为0,比例积分控制器、乘法运算、积分运算不变,同时结合公式(7)、(8)和(9)可得到如下所示的闭环时域控制模型(10):
将闭环时域控制模型(10)转化到复数域得到如下所示的闭环复数域控制模型(11):
本发明实施例复数域的比例积分控制器且比例积分控制器Gc(s)以δ(X(s))为输出、δ(Q(s))为输入,根据经典控制理论推导出闭环复数域控制模型(11)的转移函数为如下公式(12):
特征方程的标准形式为上述转移函数对应的特征方程为
所述获取与通信对端之间的往返时延,以及所述通信对端的接收速率,包括:每隔固定时间段与所述通信对端交互RTCP协议报文;依据所述RTCP协议报文获取与所述通信对端之间的往返时延,以及所述通信对端的接收速 率,所述固定时间段小于T。
上述步骤S101获取与通信对端之间的往返时延,以及所述通信对端的接收速率,具体通过发送设备和通信对端之间交互的RTCP协议报文获得,且发送设备和通信对端每隔固定时间段交互一次RTCP协议报文,该固定时间段小于T,T=tk+1-tk,即T表示调节视频码率的时间间隔。
本发明实施例通过比例积分控制器限定视频码率x(t)与排队延迟q(t)之间的约束关系,使排队延迟q(t)维持在一个固定水平q0,有效控制了视频文件的排队延迟,同时使视频码率维持在网络带宽附近,提高了网络带宽利用率。
图3为本发明实施例提供的视频码率自适应调整方法适用的信令图。本发明实施例提供的视频码率自适应调整方法适用于无线网络中的发送设备、基站和接收设备之间,三者之间信令交互过程如下:
步骤S201、接收设备向基站发送RTCP协议报文;
步骤S202、基站向发送设备发送RTCP协议报文;
接收设备和发送设备定期交互RTCP协议报文,步骤S201与步骤S202是交互过程中接收设备向发送设备发送RTCP协议报文的过程。
步骤S203、发送设备调整视频码率;
发送设备依据上述步骤S102和步骤S103对视频码率进行调整,具体调整过程不再赘述。
步骤S204、发送设备依据调整后的视频码率对视频文件进行编码、压缩;
发送设备依据调整后的视频码率对视频文件进行编码,具体通过H.264编码模块对视频文件进行编码,并压缩编码后的视频文件。
步骤S205、发送设备向基站发送视频文件;
发送设备将编码、压缩后的视频文件封装在RTP协议报文中发送给基站。
步骤S206、基站向接收设备发送视频文件;
基站向接收设备转发RTP协议报文。
步骤S207、接收设备对视频文件进行解压、解码。
接收设备对接收到的RTP协议报文中封装的视频文件进行解压、解码。
本发明实施例中步骤S207执行结束之后,发送设备继续调整视频码率,继续对未发送的视频文件进行编码、压缩和发送;视频文件具体指视频序列 数据包。
本发明实施例通过发送设备获取与通信对端之间的往返时延计算出排队延迟,再依据排队延迟与通信对端的接收速率调整视频码率,即将排队延迟作为视频码率调整的参照变量,相对于采用丢包率作为视频码率调整的参照变量,避免由于无线网络中链路错误、传输距离长引起丢包率增大,从而准确有效解决视频文件实时传输的问题。
图4为本发明实施例提供的视频码率自适应调整装置的结构图。本发明实施例提供的视频码率自适应调整装置可以执行视频码率自适应调整方法实施例提供的处理流程,如图4所示,视频码率自适应调整装置40包括收发模块41、计算模块42和编码模块43,其中,收发模块41用于获取与通信对端无线通信的往返时延,以及所述通信对端的接收速率;向所述通信对端发送编码后的视频文件;计算模块42用于依据所述往返时延获得排队延迟;依据所述排队延迟和所述接收速率调整视频码率;编码模块43用于依据调整后的视频码率对视频文件进行编码。
本发明实施例通过发送设备获取与通信对端之间的往返时延计算出排队延迟,再依据排队延迟与通信对端的接收速率调整视频码率,即将排队延迟作为视频码率调整的参照变量,相对于采用丢包率作为视频码率调整的参照变量,避免由于无线网络中链路错误、传输距离长引起丢包率增大,从而准确有效解决视频文件实时传输的问题。
在上述实施例的基础上,计算模块42具体用于依据所述往返时延RTT和往返时延最小值RTTmin计算当前时刻tk对应的排队延迟q(tk),
计算模块42具体用于依据所述排队延迟q(tk)和所述接收速率r(tk)获得下一时刻tk+1对应的视频码率x(tk+1),
KP,KI是比例积分控制器的参数,所述比例积分控制器用于约束视频码率x(t)与排队延迟q(t)之间的关系,δ(X(s))是δ(x(t))的拉普拉斯变换,δ(Q(s))是δ(q(t))的拉普拉斯变换,δ(q(t))=q0-q(t),δ(x(t))=x0-x(t)。
收发模块41具体用于每隔固定时间段与所述通信对端交互RTCP协议报文;依据所述RTCP协议报文获取与所述通信对端之间的往返时延,以及所述通信对端的接收速率,所述固定时间段小于T。
本发明实施例提供的视频码率自适应调整装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过比例积分控制器限定视频码率x(t)与排队延迟q(t)之间的约束关系,使排队延迟q(t)维持在一个固定水平q0,有效控制了视频文件的排队延迟,同时使视频码率维持在网络带宽附近,提高了网络带宽利用率。
综上所述,本发明实施例通过发送设备获取与通信对端之间的往返时延计算出排队延迟,再依据排队延迟与通信对端的接收速率调整视频码率,即将排队延迟作为视频码率调整的参照变量,相对于采用丢包率作为视频码率调整的参照变量,避免由于无线网络中链路错误、传输距离长引起丢包率增大,从而准确有效解决视频文件实时传输的问题;通过比例积分控制器限定视频码率x(t)与排队延迟q(t)之间的约束关系,使排队延迟q(t)维持在一个固定水平q0,有效控制了视频文件的排队延迟,同时使视频码率维持在网络带宽附近,提高了网络带宽利用率。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。