一种端到端的视频发送方法及装置与流程

文档序号:12810198阅读:390来源:国知局
一种端到端的视频发送方法及装置与流程
本发明涉及电子技术,尤其涉及一种端到端的视频发送方法及装置。
背景技术
:在过去十年中,网络和视频编码技术的发展使得实时视频传输应用,包括视频电话和视频会议,成为人们生活中必不可少的一部分。尽管实时视频传送应用在有线网络和无线网络例如无线保真(wi-fi)中很普及,但是实时视频传送应用并没有在移动网络中得到广泛应用。在移动网络中传送实时视频的关键挑战是,通过带宽快速变化、存在数据包延迟和丢失的不稳定的移动网络,同时实现高速和低延迟的视频传输。在移动网络中,视频发送速率超过可用带宽会导致拥塞和难以容忍的数据包延迟,最后造成帧延迟,而过度延迟的帧将被当作丢失处理。另一方面,保守的低发送率会导致移动网络的带宽利用率较低,最终导致视频通话质量较低。及其有限的设计空间需要联合跨层设计方法来实现实时视频编码、比特率控制、发送速率调整和误差控制。理想的情况下,人们希望视频传送速率能够紧紧地随着移动网络的传送能力变化而变化。但是,传统的反应拥塞控制算法,需要根据数据包丢失,和/或数据包延迟这种形式的拥塞反馈来调整发送速度。这样发送速度调整太慢,不能适应网络传送能力的变化,造成带宽无法充分利用或者较长的数据包延迟。人们更希望能设计一种主动的拥塞控制算法,通过预测移动网络传输能力来计算数据发送速率。同时,对于视频调控,视频编码器可以调整不同的视频编码参数,这样得到的视频比特率就能够同拥塞控制算法确定的发送速率相适应。但是,对于低延迟的编码来说,精确的速率控制是非常有挑战的。同时在采用了先进技术的视频编码器中,严重的速率不匹配仍然经常存在。此外,使问题更加严重的是,丢失和延迟的数据包不仅会造成所对应的帧无法解码,而且使其它帧也无法解码。解码器和传输层应该被设计成具有错误恢复能力,这些丢失和延迟的数据包就会对解码的视频造成较小的影响。技术实现要素:有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种端到端的视频发送方法及装置,能够避免帧拥塞和使数据包延迟最小化。本发明实施例的技术方案是这样实现的:第一方面,本发明实施例提供一种端到端的视频发送方法,所述方法包括:确定第一带宽测量值向量所述第一带宽测量值向量为第一时刻之前发送的(m-1)个连续的i帧间隔的带宽测量值所组成的向量,所述第一时刻为当前i帧间隔k的结束时刻;基于所述第一带宽测量值向量预测下一个i帧间隔(k+1)的可用带宽预测值根据所述可用带宽预测值和预先设定的置信参数确定用于发送下一个i帧间隔内的视频帧的速率限制值;根据所述速率限制值采用层次型-p(hp)编码方式对所述下一个i帧间隔内的视频帧进行编码,得到编码后的视频流,并记录所述编码后的视频流中每一所述帧的编码速率和时序层优先级;按照预设的第一规则发送所述编码后的视频流,所述第一规则,用于按照所述时序层优先级在总的编码速率不超过所述速率限制值的情况下,使得下一个i帧间隔(k+1)结束时发送的总帧数最大,同时所选择帧之间的发送时间间隔平均值和方差最小。第二方面,本发明实施例提供一种端到端的视频发送方法,所述方法包括:接收发送端发送的视频帧;将所述发送端发送的视频帧作为突发数据包;利用突发数据包到达间隔的方法测量当前i帧间隔k的可用带宽,得到第一带宽测量值,所述第一带宽测量值为当前i帧间隔k的带宽测量值将所述可第一带宽测量值发送给所述发送端。第三方面,本发明实施例提供一种端到端的视频发送装置,所述装置包括第一确定单元、预测单元、第二确定单元、编码单元、记录单元和第一发送单元,其中:所述第一确定单元,用于确定第一带宽测量值向量所述第一带宽测量值向量为第一时刻之前发送的(m-1)个连续的i帧间隔的带宽测量值所组成的向量,所述第一时刻为当前i帧间隔k的结束时刻;所述预测单元,用于基于所述第一带宽测量值向量预测下一个i帧间隔(k+1)的可用带宽预测值所述第二确定单元,用于根据所述可用带宽预测值和预先设定的置信参数确定用于发送下一个i帧间隔内的视频帧的速率限制值;所述编码单元,用于根据所述速率限制值采用层次型-p(hp)编码方式对所述下一个i帧间隔内的视频帧进行编码,得到编码后的视频流;所述记录单元,用于记录所述编码后的视频流中每一所述帧的编码速率和时序层优先级;所述第一发送单元,用于按照预设的第一规则发送所述编码后的视频流,所述第一规则,用于按照所述时序层优先级在总的编码速率不超过所述速率限制值的情况下,使得下一个i帧间隔(k+1)结束时发送的总帧数最大,同时所选择帧之间的发送时间间隔平均值和方差最小。第四方面,本发明实施例提供一种端到端的视频发送装置,所述装置包括接收单元、第四确定单元、测量单元和第二发送单元,其中:所述接收单元,用于接收发送端发送的视频帧;所述第四确定单元,用于将所述发送端发送的视频帧作为突发数据包;所述测量单元,用于利用突发数据包到达间隔的方法测量当前i帧间隔k的可用带宽,得到第一带宽测量值,所述第一带宽测量值为当前i帧间隔k的带宽测量值所述第二发送单元,用于将所述可第一带宽测量值发送给所述发送端。本发明实施例提供一种端到端的视频发送方法及装置,其中确定第一带宽测量值向量基于所述第一带宽测量值向量预测下一个i帧间隔(k+1)的可用带宽预测值根据所述可用带宽预测值和预先设定的置信参数确定用于发送下一个i帧间隔内的视频帧的速率限制值;根据所述速率限制值采用层次型-p(hp)编码方式对所述下一个i帧间隔内的视频帧进行编码,得到编码后的视频流,并记录所述编码后的视频流中每一所述帧的编码速率和时序层优先级;按照预设的第一规则发送所述编码后的视频流;如此,能够避免帧拥塞和使数据包延迟最小化。附图说明图1为本发明实施例一端到端的视频发送方法的实现流程示意图;图2为本发明实施例二端到端的视频发送方法的实现流程示意图;图3-1相关技术中移动网络的组成结构示意图;图3-2为本发明实施例三提供的移动网络实时视频传输系统的组成结构示意图;图3-3为本发明实施例三hp编码后的视频流的层次结构示意图;图3-4为本发明实施例三中所采用的dfs与常规的fp和lp的比较结果示意图;图3-5为本发明实施例三实验平台的结构示意图;图3-6为本发明实施例三梯度带宽情况下的带宽利用率的示意图;图3-7为本发明实施例三实验中所用的追踪数据的示意图;图3-8为在单条移动网络链路追踪数据2至7作为前向链路传输能力情况下rebera和facetime的视频发送速率比较结果示意图;图4为本发明实施例四端到端的视频发送装置的组成结构示意图;图5为本发明实施例五端到端的视频发送装置的组成结构示意图。具体实施方式本发明实施例提供的技术方案适用于两个用户之间交互的视频电话应用,其中至少一个用户通过移动网络进行连接。众所周知,移动网络链路具有高度动态变化的网络带宽和数据包延迟。如果视频电话的数据发送速率超过了可用带宽,则视频帧会出现极大的延迟,从而影响视频电话的交互性能。在本发明的以下实施例中提供一种实现主动拥塞控制、视频编码和速率自适应功能的新的实时视频传输系统(rebera,real-timebandwidthestimationandrateadaptation,实时带宽估计和速率自适应),使得在保持单向数据帧延迟足够低的情况下,使视频传输速率最大化。通过将视频帧作为数据包队列,rebera可以主动实时的测量网络可用带宽。利用在线线性自适应滤波器,rebera系统可以实现基于历史信息的网络传输能力预测,并确定用于视频速率调整的网络速率预分配值。rebera系统利用层次型-p编码结构来实现错误恢复和简化视频速率调整,同时保持较低的编码复杂性和数据包延迟。此外,rebera系统会根据网络预分配带宽,实时决定发送还是丢弃编码帧,这样可以避免帧自身拥塞和使数据包延迟最小化。这个rebera系统是为移动网络设计的,目的是使视频源的发送速率以及错误恢复能力最大化,同时保持单向帧延迟足够小。rebera系统包括主动拥塞控制模块、时序分层解码器和动态帧选择模块,其中:在主动拥塞控制模块中,利用视频帧本身来主动测量当前实时的可用带宽,然后利用人们熟悉的线性自适应滤波方法,基于过去和当前的网络传输能力测量值,来预测将来的网络传输能力。时序分层解码器,采用的是层次型-p解码结构(hp,hierarchical-p);对于错误恢复能力,本发明的实施例中采用分层编码来提供不同程度的错误保护能力(uep,unequalerrorprotection)。但是,空间和质量上的分层会造成巨大的编码复杂性使得在实际应用中人们不愿采用这种方法。因此,本发明实施例考虑只采用时序分层来提供一定程度的错误恢复能力。为了使实时传输的延迟最小化,对于时序分层,本发明的实施例采用层次型-p解码结构(hp,hierarchical-p)。为了解决编码器速度控制的不精确,本发明实施例提出了用于hp的一种动态帧选择算法,目的是实时选择哪些编码后的帧来发送,以适应由网络传输能力预测值决定的比特率预分配值。帧选择算法考虑了帧之间的质量关联和解码相关性,以及帧到达的平滑性,使得在一定的预分配位速率条件下获得最大的视频传输质量。本发明实施例实施了整个系统,在实验平台上把rebera叫做实时带宽估计和速率自适应(real-timebandwidthestimationandrateadaptation,rebera);同时评估了系统的性能,通过利用实际的移动网络链路追踪数据进行实验,将rebera系统并同苹果公司的facetime视频电话应用进行比较。目前的实施例利用一个离线的编码器,来产生具有固定平均速率的视频。实验表明,尽管没有实时编码器来直接地根据传输能力测量值来控制视频编码速率,rebera系统仍然能够获得比facetime更高的带宽利用率和更低的帧延迟(数据包延迟)。另外,本发明实施例在系统的时序分层和错误恢复能力方面虽然没有考虑uep功能,但是本领域的技术人员可以根据各种现有技术来实现。下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。实施例一为了解决
背景技术
中存在的技术问题,本发明实施例提供一种端到端的视频发送方法,该方法应用于发送端,该方法所实现的功能可以通过发送端中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该发送端至少包括处理器和存储介质。图1为本发明实施例一端到端的视频发送方法的实现流程示意图,如图1所示,该方法包括:步骤s101,确定第一带宽测量值向量这里,所述第一带宽测量值向量为第一时刻之前发送的(m-1)个连续的i帧间隔的带宽测量值所组成的向量,所述第一时刻为当前i帧间隔k的结束时刻;所述m为大于0的整数。这里,在具体实现的过程中,所述m为大于等于0的整数;这里,所述确定第一带宽测量值向量c(k),包括:步骤s111,接收发送端发送的第一带宽测量值,所述第一带宽测量值为当前i帧间隔k的带宽测量值步骤s112,利用所述第一带宽测量值更新保存的第二带宽测量值向量得到第一带宽测量值向量这里,所述利用所述第一带宽测量值更新保存的第二带宽测量值向量得到第一带宽测量值向量包括:将第一带宽测量值替换所述第二带宽测量值向量c(k-1)中i帧间隔(k-m-1)的带宽测量值并按照时间的先后顺序重新排列,得到第一带宽测量值向量步骤s102,基于所述第一带宽测量值向量预测下一个i帧间隔(k+1)的可用带宽预测值这里,在本发明实施例中,预测值采用小尖角^来表示,例如下一个i帧间隔(k+1)可用带宽预测值为这里,在具体实现过程,还可以在发送端设置一个自适应线性预测过滤器,然后所述基于所述第一带宽测量值集合预测下一个i帧间隔(k+1)的可用带宽预测值包括:将所述第一带宽测量值集合输入预设的自适应线性预测过滤器,得到由所述过滤器输出的下一个i帧间隔(k+1)的可用带宽预测值所述自适应线性预测过滤器采用如下的方式进行预测:步骤s121,在t=tk+1时刻,接收当前i帧间隔k的带宽测量值其中所述tk+1为当前i帧间隔k的结束时刻;步骤s122,根据计算得到长度为m的增益向量g(k),其中,p(k)为经验自相关矩阵的逆,λ为遗忘因子参数;步骤s123,根据计算得到先验预测误差εk,其中w(k)为长度为m的滤波器抽头向量;步骤s124,根据w(k)=w(k-1)+∈kg(k)计算得到更新所述滤波器的抽头向量w(k);步骤s125,根据计算得到下一个i帧间隔(k+1)的可用带宽预测值步骤s103,根据所述可用带宽预测值和预先设定的置信参数确定用于发送下一个i帧间隔内的视频帧的速率限制值;这里,所述速率限制值为发送速率的阈值,但是该阈值在编码的时候,也是编码的一个阈值;这里,所述置信参数通过如下方式确定,包括:根据确定置信参数δ,其中rk+1表示下一个i帧间隔k+1的发送速率,εk+1表示通过rls算法获得的带宽预测误差,其中,在具体实现的过程中,所述置信参数可以设置为0.05,0.10.2或者0.5等。步骤s104,根据所述速率限制值采用层次型-p(hp)编码方式对所述下一个i帧间隔内的视频帧进行编码,得到编码后的视频流,并记录所述编码后的视频流中每一所述帧的编码速率和时序层优先级;这里,所述编码后的视频流中每一所述帧的编码速率和时序层优先级是指编码后的i帧间隔内每一所述帧的编码速率和时序层优先级。步骤s105,按照预设的第一规则发送所述编码后的视频流;这里,所述第一规则,用于按照所述时序层优先级在总的编码速率不超过所述速率限制值的情况下,使得下一个i帧间隔(k+1)结束时发送的总帧数最大,同时所选择帧之间的发送时间间隔平均值和方差最小。本发明实施例中,所述按照预设的第一规则发送所述编码后的视频流,包括:步骤s151,按照时序层对每个编码后的帧进行标记,将帧n的大小和时序层分别表示为sn和ln;步骤s152,将编码后的视频帧按照层数从时序层优先级开始进行排列,得到优先级队列π;步骤s153,对于每个新到达的帧n,通过排除历史帧将π变成πn,根据所述πn更新帧的大小估算值以及剩余带宽估算值;步骤s154,根据帧的大小估算值和剩余带宽估算值建立一个准备发送的帧集合en,其中所述帧集合en是通过从所述πn中第一个帧开始抽取帧得到的;步骤s155,当抽取的帧的总大小达到剩余带宽估算值时,停止抽取,如果帧n在集合en中,就发送帧n,如果帧n不在集合en,则丢弃。从以上描述可以看出,本发明实施例提供的技术方案,采用当前的带宽测量值(当前i帧间隔k的测量值)和过去的带宽测量值(第一时刻之前发送的(m-1)个连续的i帧间隔的带宽测量值)来预测将来的带宽预测值(下一个i帧间隔k的测量值),然后根据带宽预测值确定发送速率的阈值(速率限制值),然后为了解决编码器速度控制的不精确,本发明实施例采用层次型-p解码结构(hp,hierarchical-p)对待发送的i帧视频进行,并基于此根据预设的第一规则发送所述编码后的视频流,所述第一规则实际上是一种基于hp的一种动态帧选择算法,目的是实时选择哪些编码后的帧来发送,以适应由网络传输能力预测值决定的比特率预分配值。帧选择算法考虑了帧之间的质量关联和解码相关性,以及帧到达的平滑性,使得在一定的预分配位速率条件下获得最大的视频传输质量。实施例二基于前述的实施例,本发明实施例提供一种端到端的视频发送方法,该方法应用于接收端,该方法所实现的功能可以通过接收端中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该接收端至少包括处理器和存储介质。图2为本发明实施例二端到端的视频发送方法的实现流程示意图,如图1-1所示,该方法包括:步骤s201,接收发送端发送的视频帧;步骤s202,将所述发送端发送的视频帧作为突发数据包;步骤s203,利用突发数据包到达间隔的方法测量当前i帧间隔k的可用带宽,得到第一带宽测量值,所述第一带宽测量值为当前i帧间隔k的带宽测量值步骤s204,将所述可第一带宽测量值发送给所述发送端。在具体实现的过程中,步骤s203,所述利用突发数据包到达间隔的方法测量当前i帧间隔k的可用带宽,得到第一带宽测量值包括:步骤s231,将数据包i-1和i的到达间隔时间表示为ai,将数据包i的大小表示为zi;步骤s231,利用确定mn;步骤s231,对于任一周期(t1,t2],利用估算(t1,t2]周期内的带宽测量值c(t1,t2),其中n是在(t1,t2]到达的所有帧的集合,当k=1时,当前i帧间隔k的开始时间tk即为t1,当前i帧间隔k的结束时间tk+1即为t2。这里,在最近t秒内,每δ秒测量一下网络的带宽,其中δ<<t,所述t表示i帧间隔。在本发明实施例中,接收端将接收到的视频帧作为突发数据包队列,然后接收端测量数据包到达间隔的方法可以测量瞬间可用带宽(abw),如此,接收端利用视频帧作为数据包队列可以使带宽全部用于传输视频,从而使得在本发明实施例一中发送端的发送速率可以与编码速率无线接近,因为无需增加额外的带宽消耗来发送常规技术中的突发数据包,进而实施例一中的速率限制值也为编码速率的阈值,由此可以见,本发明实施例提供的技术方案,能够避免发送端发送额外测量数据。实施例三在用于移动网络实时视频传输的主动拥塞控制方法的相关技术中,有些相关技术将移动网络模拟成一个单服务队列,由一个双随机服务进程来清空。对于可用带宽估计,本发明实施例与相关技术不同的是,本发明实施例没有为链路传输能力假设一个专门的时间演变模型。此外,相关技术中只关注了拥塞控制而没有考虑视频调控,视频调控和拥塞控制联合设计对于在移动网络中获得较高的视频传输质量是非常重要的,这在本发明的
背景技术
以及本实施例的以下的描述中可以看出。下面将介绍本实施例的分个几部分,第一部分,先来介绍一下移动网络系统,第二部分,接着介绍一下传输能力的测量和预测以及发送速率的确定;第三部分,介绍一下用于层次型-p结构视频的帧选择方法,第四部分,介绍一下仿真和实验,第五部分,介绍一下本实施例的结论。第一部分,移动网络系统假设一个发送者和接收者之间的实时视频传输场景,其中至少一个用户连接到了移动网络上(如图3-1所示)。在图3-1中,将源设备表示为s,将目标设备表示为d,相应的基站分别表示为bs和bd。假设连接基站的内部网络链路(bs,bd)具有较高的带宽,稳定的排队和传输时延;因此,链路(s,bs,bd,d)的整个可用带宽等于移动网络链路(s,bs)和(bd,d)的带宽最小值。根据排队模型,所有从连接在基站上的移动设备发出,或者发往基站的数据包排列在相互隔离的缓冲区上。这些缓冲区位于移动设备的上行链路和基站的下行链路。这些缓冲区不是由多个用户的数据流共享的,也就是说在这些数据包队列之间没有交叉的数据传输。一旦积压的数据包通过链路成功的传输,它们就会离开各自的缓冲区。所以,这些缓冲区被清空的速度直接反映了移动链路的传输能力,并最终反映了端到端的可用带宽。对于视频数据流,假设发送端采用分层的编码器,这样就可以很容易通过调整发送的视频分层数来调整发送速率。分层编码还可以提供非均匀保护,例如通过为基础层提供更多的保护,就可以以较大的概率保证基本水平的视频质量。为了使编码复杂性和成本最小,因此只考虑时序分层(又称为时序分级)。为了使编码延迟最小,进一步采用hp结构(如图3-3所示)来实现时序分层。从最高时序层开始,帧可以被丢弃来减少视频速率。在图3-3中的例子中,每个图像组(gop,groupofpicture)包括4个帧,分成了3个时序层(tls,threetemporallayers)。假设编码器在每n个帧中插入一个i帧,将从一个i帧开始到下一个i帧之前的全部n个帧的时间间隔表示为i帧间隔。一个i帧间隔的时间间隔t等于n/f,其中f是捕获视频的帧速率。现在总结一下提出的系统的操作过程:因为在传统的视频编码器中,速率控制通常每个i帧间隔执行一次,所以对每个新的i帧间隔预测移动网络平均传输能力。如图3-2所示,预测是基于之前i帧间隔的平均传输能力测量值进行的,这些平均传输能力测量值由接收端反馈给发送端。为了克服可能发生的反馈延迟造成的不确定性,接收端会利用到达的视频帧,周期性(每δ秒,δ<<t)测量最后t秒的可用带宽,并把这些测量结果反馈给发送端。发送端保存了最近的传输能力测量值,并用新接收到的测量值更新保存的测量值。然后,在下一个i帧间隔k的开始时刻,最新的传输能力测量值即为上一个i帧间隔k-1的可用带宽测量值这个值被输入一个自适应线性预测过滤器,该过滤器然后利用之前的带宽测量值更新新的i帧间隔k的可用带宽预测值利用这个预测值发送端计算出发送速率预分配值bk。该预分配值是指在这个i帧间隔,发送端允许发送的字节数的最大值,这样在这个i帧间隔结束时,所有发送的数据将会以一个很高的概率被接收端接收。第二部分,传输能力的测量和预测以及发送速率的确定1)端到端可用带宽测量数据包对/队列方法是常用的用于找到网络路径上的最小传输能力的主动网络传输能力测量方法。如果在网络链路上没有交叉流量的传输,这些方法的性能将会有很大提高。这样,根据预设的模型,这些方法适合来测量移动网络传输能力。在本发明实施例的系统中,提出将在(t1,t2]接收到的视频帧作为数据包队列,在目的端主动测量网络平均可用带宽c(t1,t2)。利用视频帧作为数据包队列,可以直接利用视频数据流用于传输能力测量,从而避免发送额外测量数据。特别地,在发送端,首先将每个帧分成p(p≥2)个数据包,而不管它的大小,然后瞬间将这些数据包一起发送。这个瞬时发送速率很可能要高于移动网络链路的瞬时传输能力。这样,数据包拥塞在一个瓶茎处,例如用于下行链路的基站缓冲区或者用于上行链路的移动设备缓冲区,在这里数据包被一个一个的传输。在接收端,计算网络传输能力测量值{mn},其中mn是通过利用到达的视频帧n作为数据包队列得到的。将数据包i-1和i的到达间隔时间表示为ai,将数据包i的大小表示为zi;然后,可以按下面公式(1)计算网络传输能力:对于任一周期(t1,t2],可以简单的利用公式(2)估算这个时间段的网络平均传输能力c(t1,t2):在公式(2)中,n是在(t1,t2]到达的所有帧的集合,注意公式(2)相当于对{mn}中所有的网络传输能力值进行加权平均,其中mn利用权重wn=an/∑n∈nan进行加权,这与它的测量时间间隔an成比例。计算完(t1,t2]的平均传输能力测量值后,接收端产生一个小的反馈数据包,并发送到发送端。注意,最终感兴趣的是测量(tk,tk+1]的可用带宽ck,其中tk表示i帧间隔k的开始时间。但是,由于发送端和接收端通常具有不同的时钟基准,接收端无法准确知道什么时候一个i帧间隔开始。此外,反馈数据包在网络传输过程中会有不同时间的延迟。简单的说,无法保证反馈数据包能够准时到达接收端,用于预测下一个i帧间隔的网络传输能力。为了解决这个问题,接收端在最近t秒内,每δ秒测量一下网络平均传输能力,其中δ<<t。这些测量值会立即发送回发送端。特别需要说明的时,在时间t产生的测量值是(t-t,t]的网络平均传输能力,而下一个测量值在t+δ产生,是(t-t+δ,t+δ]的网络平均传输能力。然后,发送端利用tk前接收到的最新反馈来预测下一个i帧间隔(tk,tk+1]的可用带宽。最后,假设保持发送速率低于网络传输能力,那么测量值的准确性主要由发送速率和网络链路传输能力的差别决定。如果发送速率等于,或者偶尔超过网络传输能力,那么将会获得较高的测量准确性。但是,这将会导致网络链路拥挤和较长的数据包排队延迟,这对视频通话质量是有害的。2)端到端可用带宽的预测基于历史的预测是一种常用的预测方法,该方法利用历史测量值来确定将来的估算值。在本实施例中,将线性预测用于基于历史的预测。本发明实施例选择一种著名的在线线性自适应滤波器,叫做递归最小二乘法(rls,recursiveleastsquares)。利用上一个i帧间隔的网络传输能力测量值,rls递归的更新长度为m的滤波器抽头,并对下一个i帧间隔的网络传输能力进行预测。rls算法的优点之一是它不需要输入信号的分布模型,同时可以计算出最小的最小二乘回归值。同时,该方法通过遗忘因子λ可用于时变信号统计,该遗忘因子的作用是在不需要时间演化模型的情况下,以指数形式减小过去观测值的权重。关于rls算法中的符号如表1所示。表1rls在线能力预测器的符号表示周期性预测过程如下。在t=tk+1时刻,也就是i帧间隔k的结束时刻,发送端接收到的最近的网络传输能力测量值为也就是i帧间隔k的平均网络可用带宽。然后,计算得到增益向量g(k)和先验预测误差εk,用于更新滤波器抽头向量w(k)。这时,可以根据公式(3)简单的对ck+1进行线性预测:最后的步骤是更新传输能力测量值构成的经验自相关矩阵的逆。整个过程如算法1所示:算法1(algorithm1,recursiveleastsquares)3)针对突发传输的鲁棒性由于移动网络有时会出现持续几秒钟的信道中断,在这期间网络传输能力必然会降为0。这时,传输的数据包会积压在各自的缓冲区中。当网络中断被探测到后,发送端应该立刻停止发送数据包。当网络中断结束时,在缓冲区积压的数据包通常会瞬间发送,同时在接收端会瞬间收到大量数据包。如果,接收端利用这些数据包来进行传输能力测量,那么大约几mbps的突发传输速率会严重影响预测器的学习过程。为了保护系统不爱这些突发传输测量值的影响,通过抽样测量间隔an,来发现突发传输测量值。在rebera系统中,如果an<10ms,则认为该测量值是一个突发测量值。突发测量值会被简单的丢弃。4)发送速率的确定本实施例最终的目的是确保在一个i帧间隔内所有发送的帧在下一个i帧间隔前能够完成传输过程。也就是说,本实施例的目的是使每个i帧以很高的概率进入空的缓冲区;假设将在i帧间隔k+1的发送速率表示为rk+1,本实施例确定的rk+1,要满足rk+1超过实际的网络传输能力ck+1的概率足够小,也就是公式(4):pr(ck+1<rk+1)=δ,(4);在公式(4)中,δ是一个小的置信参数;εk+1表示通过rls算法获得的传输能力预测误差;那么公式(4)可以重新表示为公式(5):在公式(5)中,指安全范围,这个公式(5)的意思是,给定δ值,rk+1为和uk+1的和,也就是εk+1的δ分位数。在rebera中,设置δ为0.05,通过一个滑动窗口来计算εk+1的5%,其中需要说明的是,表示定义为,可以理解为“=”;而上的小尖括号表示预测值,上的波浪号表示实际测量值。5)积压和丢失数据包处理值得注意的是,即使存在安全范围uk,也无法保证总是以小于可用带宽的速率发送数据包。如果不加以解决,那么在缓冲区积压的字节数会无限增加。为了解决这个问题,可以通过从发送端发出的总字节数中减去接收端接收到的总字节数,来测算i帧间隔k结束时缓冲区积压的字节数qk。但是,在数据包丢失的情况下,qk也会随之而增长,因为丢失的数据包不会被接收端接收。为了解决数据包丢失的问题,假设数据包按照它们的序号先后到达目的端,即不发生乱序。为了发现丢失字节的数量,在每个数据包的包头插入目前发送的总字节数。然后,一旦接收到新的数据包,接收端就从这个总字节数中减去目前已经接收到的总字节数。结果就是丢失的字节数,这个结果和接收的字节数一起反馈给发送端。发送端通过发送的总字节数和接收的总字节数、丢失的总字节数之间的差异,就可以确定积压的字节数qk1。综上撰述,按照如下公式(6)来计算i帧间隔k+1的预分配带宽bk+1:在公式(6)中,t是i帧间隔的时间间隔。采用这种方法,期望网络不但可以完成i帧间隔k+1所有视频帧的传输,而且可以在i帧间隔k+1结束时清空当前积压的数据包qk。第三部分,用于层次型-p结构视频的帧选择方法视频速率控制对于在带宽经常变化的网络上承载的实时应用是非常重要的。但是,精确的速率控制是非常有挑战的,尤其是在低延迟的场景下,前瞻和多通编码是不适合的。尽管在这个领域进行了广泛的研究,但是i帧间隔的实际比特率和目标比特率还是会经常存在很大的差异。在码率差异存在的情况下,如果视频采用ippp结构进行编码,那么一旦i帧间隔的目标预分配带宽用完,所有剩余的帧将会被丢弃。当这种情况在一个i帧间隔前期发生时,那么接收端将经历一个较长时间的冻结。为了解决这个问题,提出一种采用hp编码结构的时序层次编码器,这样就可以通过丢弃高层帧来调整发送速率,而不会造成额外的编码延迟和复杂性。图3-3示出了一个采用hp编码的预测结构例子,在图3-3中,箭头表示用于对编码帧进行预没的参考帧。在图3-3中,n=8,g=4,tl0:(i0,p4);tl1:(p2,p6);tl2:(p1,p3,p5,p7)。图3-3中,该预测结构分为3个时序层:i帧和p4作为第一时序(又称为基本时序层),p2和p6作为第二时序层,p1、p3、p5和p7作为第三时序层。本发明实施例提出一种帧选择方法,丢弃或者发送每个编码帧,以适应给定的速率预分配值bk和帧依赖关系。注意,这里假设视频编码器运行自己的码率控制算法,但是不会准确的符合每个i帧间隔的速率预分配值。当编码速率超过速率预分配值时,一个编码帧可能会被帧选择算法丢弃,这样实际的发送速率就不会超过i帧间隔的预测带宽。采用hp结构的优点是发送的视频各帧分布更加均匀,而采用ippp结构,当丢弃一些帧时,会导致视频抖动,帧间隔不均匀。利用编码器外面的帧选择模块,编码器速率控制可以更加简单。这样,反过来会进一步提高带宽利用率。1)动态帧选择方法帧选择最终是要将带宽分配给更加重要的帧,也就是低时序层的帧(以下简称底层帧)。根据预分配带宽情况,只有当发送完低层帧后还有剩余带宽的时候,才会发送高时序层的帧(以下简称高层帧)。但是,为了使延迟最小化,一个数据帧在编码后,在不知道后面帧的大小情况下,必须立刻做出决定是发送还是丢弃该数据帧。例如在图3-3中,不能等到看是否能够先发送p4,然后再决定是否发送p2,最后再决定是否发送p1。相反,必须在p1到达的时候立刻决定是否发送。如果后面的低层帧比较大,发送当前的高层帧将会影响即将到来的低层帧的发送。另一方面,丢弃当前高层帧后,当后面的低层帧比较小时,很明显信道带宽就无法充分利用。给定一个i帧间隔,按照出现顺序对每个帧进行标记,将帧n的大小和时序层分别表示为sn和ln。本实施例的目标是,对每个编码后的帧n,决定是发送还是丢弃,使得在i帧间隔结束时发送的总帧数最大,同时所选择帧之间的发送时间间隔平均值和方差最小。为了根据后面的帧作出决定,帧选择算法首先是对每个时序层的帧的大小进行估算。然后,将这个i帧间隔的帧按照层数从最低层开始进行排列,因为若没有低层帧,高层帧将无法解码。把这个关于时序层的优先级队列表示为有序列表π。对于每个新到达的帧n,通过排除一些历史帧,将π变成πn。这些排除的帧包括已经做出决定是否发送的帧,以及由于之前丢弃的帧而在接收端无法解码的帧。在这些留下的合适的帧中,πn就是优先顺序。然后,更新帧的大小估算值,以及剩余带宽估算值。之后,根据帧的大小和剩余带宽估算值,建立一个准备发送的帧集合en。帧集合是通过从队列πn中第一个帧开始抽取帧得到的。当抽取的帧的总大小达到剩余带宽估算值时停止抽取。最后,如果帧n在集合en中就发送它,否则就被丢弃。对于帧大小的估计,假设在一个时序层上的帧大小相似。所以对每个时序层记录一个帧大小估计值在本发明实施例中,简单的利用具有参数0<γ≤1的指数加权移动平均(ewma,exponentiallyweightedmovingaverage)过滤器来估算之后l层帧的大小,估算时需要利用该层之前的帧的实际大小。注意对于基本层,只将上述方法应用于连续p帧,因为i帧的大小比p帧大很多。不需要估算i帧的大小,因为总是发送i帧,下面整个动态帧选择(dynamicframeselection)算法总结为算法2。算法2(algorithm2,dynamicframeselection)2)速率预分配值更新速率预分配值bk是指在i帧间隔k中,发送端能够完成发送,同时不会造成缓冲区积压的总的字节数。这里,假设从i帧间隔开始的任意时刻t,平均个字节可以被传送,平均速率为bk/t。这样,如果发送端发送的数据少于这个数量,那么未使用的带宽就浪费了。为了说明这些未使用的传输带宽,在每个步骤n通过如下公式(7)对剩余的速率预分配值进行更新:在公式(7)中,sn是在选择帧n之前已经发送的总的字节数。如果不更新速率预分配值,在临近i帧间隔的最后时间里,发送端会最终发送大的数据帧,这些帧之后会在缓冲区积压,同时很可能会造成下一个i帧间隔数据包的延迟。3)帧优先权排序在帧优先权列表π中,将帧i放在帧j的前面,意味着首先将预分配带宽于发送帧i,只有当决定发送所有在帧j前面的帧后,如果仍然有足够的带宽来发送帧j,才会发送帧j。这样,低层帧要优先于高层帧,高层帧依赖于低层帧。构成基本层的帧按照出现的顺序进行排列,因为它们遵循ippp解码结构。对于增强层l,按任何顺序排列,帧都是不可解码的,因为l层之前时序层的帧在前面被抽取了。但是,如果对l层帧按照从开始优先的原则进行排列,那么到i帧间隔结束时,预分配带宽的消耗会造成较低的帧速率。另一方面,如果按照从结尾开始的优先原则排列,如果后面的帧比较小,就会失去传送早期帧的机会。因此,分多个步骤来抽取帧,在每个步骤改变抽取方向来达到一个平衡。在帧列表中,按照帧出现的顺序开始排列,在每个步骤中,将列表分成两个相等长度的列表。然后,按照该步骤的抽取方向在每个小的列表中抽取最后一个帧。第四部分,仿真和实验1)自适应滤波与指数平滑滤波在带宽预测方面的比较本实施例的评估首先利用rls线性自适应滤波器来进行传输能力预测。对rls和常用的ewma预测器的预测效果进行比较。在实验中,考虑到选择的m<10,λ>0.99,滤波器长度和遗忘因子参数不会对预测误差产生很大的影响。因此,选择m<10,λ>0.99,θ=0.001,同时在下面的评估中一直使用这组参数配置。利用第三代(3g,3rdgeneration)和高速分组接入(hspa,high-speedpacketaccess)接入技术,在一天不同的时刻,在校园不同的位置,收集了8组实际的移动网络传输能力追踪数据(如图3-7所示),在图3-7中,实验中所用的追踪数据,纵坐标表示网络传输能力(单位mbps),横坐标表示i帧间隔。追踪数据2、4、5、6作为前向网络传输能力,追踪数据1和7作为后向网络传输能力。每组追踪数据都是1066秒长,具体的统计数据如表2所示。跟预期一样,移动网络传输能力追踪数据高度动态变化,给传输能力估计带来很大的挑战。利用这些追踪数据,在matlab中利用rls方法,按照上述参数设置进行了时间序列预测。同时利用ewma滤波器也进行了预测,其中平滑系数α从0变化到1。假设知道过去传输能力的准确值。结果如表3所示,其中“最好”和“最差”分别表示利用ewma在不同光滑参数下,获得的预测误差均方根(rms,root-meansquare)的最小值和最大值。看到对于所有的追踪数据,rls的预测效果或者好于ewma,或者同emwa预测器的最好值相接近,因为rls比较适合于能力时间序列的统计数据。表2:实验中所用的移动网络传输能力追踪数据统计信息平均值(kbps)标准差(kbps)变异系数网络中断%tr11761150.6542.0tr23881650.4250.5tr33922020.5145.2tr46342620.4130.0tr57352640.3590.2tr69373560.3791.2tr710555010.4750.1tr815648930.5715.1表3:rls和ewma预测误差均方根比较rls(kbps)αb最好(kbps)αw最差(kbps)tr1530.55550.0587tr2880.70.70.050.05tr3870.65860.05132tr41580.551570.05209tr51860.41780.05211tr62500.22351293tr72440.42420.05291tr88940.1858112122)动态帧选择仿真现在将动态帧选择算法(dfs,dynamicframeselection)的性能和层推送(fp,layer-push)算法、帧推送(fp,frame-push)算法进行比较。lp同样会利用和dfs相同的方法来对每个时序层的帧大小进行估计,但是然后会决定最高层lmax是否发送。也就是说,只有到lmax层的帧才适合发送。在这些帧中,算法按照编码顺序,发送尽可能多的帧直到预分配速率(retebudget)用完。另一方面,fp不需要考虑层信息,会按照编码顺序发送尽可能多的帧,直到预分配速率用完。对于每个算法,考虑发送的帧的总数,帧发送间隔的平均值和标准差,以及未使用的预分配带宽这些参数来评价算法性能。为了计算帧发送间隔的统计数据,本实施例利用接收端观察到的帧发送间隔;以及利用jm编码器来对视频序列“crew”进行编码,编码时采用hp结构进行编码,hp结构具有3个时序层(gop长度=4)和32个帧的i帧间隔。然后,利用一个固定的量化参数(qp)36,当所有帧被包括时,这同415kbps的平均位速率相适应。最后得到的视频序列的帧速率为30fps,包括9个i帧间隔,一个i帧间隔为t=32/30秒。对于提出的算法,设置γ=0.75,这时算法效果最好,同时帧的优先顺序为:π=(0,4,8,12,16,20,24,28,30,14,6,22,26,18,10,2,31,15,7,23,27,19,11,3,1,5,9,13,17,21,25,29)。在仿真中,对于视频的每个i帧间隔k来说,认为预分配速率bk是固定的。本实施例准备比较在不同的bk取值情况下,从10kb到80kb,上述算法的效果。在图3-4中,可以看到fp发送了最多数量的帧,在图3-4中包括左上、右上、左下和右下四幅图,用于体现dfs、fp和lp的比较,其中帧发送数量比较参见图3-4的左上图,未用预分配带宽参见图3-4的右上图,帧间隔的平均值参见图3-4左下图,以及标准差参见图3-4的右下图。但是,它的帧间隔平均值和帧间隔变化也是最大的,这使得视频不稳定。另一方面,lp算法发送的帧数量最少,但帧间隔平均值和帧间隔变化较小。提出的dfs算法在帧发送数量,和减少帧间隔变化方面实现了很好的平衡,帧发送数量和带宽利用率紧密相关。事实上,dfs在帧间隔平均值和标准差方面都好于其它2个算法,同时发送的帧数和fp一样多。最后,在图3-4的右上部分显示了每个方法的未使用带宽,可以看到dfs的性能同fp相似,而lp不是足够有效。3)rebera和facetime实验评估对于系统评估,设计了一种实验平台来对rebera和常见的视频电话应用进行比较。在这个实验平台(如图3-5所示)中,s和d是源和目的终端设备,上面运行着视频电话应用,节点cs和cd是运行着cellsim软件的移动网络仿真器。仿真器通过校园网连接在一起,并通过以太网同各自的终端设备连接在一起。对于移动网络仿真,本实施例利用收集到的上行和下行链路传输能力追踪数据来进行,如表2所示。评估中,本实施例选择可用带宽利用率和95%的单向数据包排队延迟作为评价指标。为了计算带宽利用率,对实验中视频电话应用发送的字节进行计数,然后同发送端链路和接收端链路的最小传输能力进行比较。对于rebera实验,排队延迟是通过cellsim收集的,对于facetime,排队延时是通过在仿真器嗅探视频数据包收集的。这是因为静音时,facetime仍然会发送声音数据包,因此只能测量视频数据包的延迟。在实验中,周期的循环播放一个相同的视频片段“crew”。在rebera实验中,本实施例会像之前描述的那样,发送一个由jm编码器预编码的视频流,因为缺少一个视频编码器来实时的产生hp结构的视频流。结果就是,对于rebera,帧的大小是固定的,而实际的商用产品会根据传输能力调整编码参数,使得帧的大小同传输能力相适应。在这里使用的视频和rls的参数同第四部分的仿真和实验的第1)节和第2)节中的一样。初始发送速率设置为120kbps。在每个实验中,通过连续的几个t秒长的周期来评估发送速率。注意facetime的i帧间隔可能不是一个固定的时间长度,更不要说和rebera相同的i帧间隔t。同时,facetime的发送速率通常包括fec和视频数据速率的总和。为了在facetime上使用相同的循环测试视频,利用运行在macos10.10.4上的manycam虚拟网络摄像机来完成。3-1)在分段固定带宽情况下的评估在这个实验中,利用分段的固定带宽追踪数据进行实验,带宽变化的单位大小为100kbps,持续时间为100秒,变化范围在300kbps到600kbps之间。在图3-6中,可以看到rebera的预测带宽、全部的预分配带宽、发送速率以及facetime的发送速率。rebera的平均带宽利用率是83.32%,而facetime的平均带宽利用率是77.67%。rebera发送速率的周期性负峰值同速率最小的i帧间隔相一致,当带宽高的时候可以清楚的看出来。这是因为,对于这些i帧间隔,预分配带宽比视频速率要高,最后rebera会把所有的帧发送出去,但是仍然无法用完大部分的预分配带宽。结果,带宽利用率就减小了。用编码器来自适应的控制qp,将会得到更高的带宽利用率。但是,rebera仍然可以获得比facetime更高的平均带宽利用率。3-2)利用移动网络传输能力追踪数据进行评估在这组实验中,利用移动网络带宽追踪数据(如图3-7所示)来仿真移动网络链路。每个实验持续1000个i帧间隔。首先给出在端到端链路上只有一条移动网络链路的实验结果。将追踪数据2、4、5和6作为前向链路带宽,将追踪数据1和7作为后向端到端带宽。实验结果指标为带宽利用率和95%的数据包队列延迟,在表5和表6中进行了总结,在表5中,单条移动网络链路情况下的评估,利用追踪数据1作为后向链路传输能力;在表6中,单条移动网络链路情况下的评估,利用追踪数据7作为后向链路传输能力。特别地,当追踪数据1作为后向链路带宽时,在rebera和facetime中,反馈给发送端的信息都出现了一个较长的延迟,降低了两个系统的性能。例如,在图3-8中,本实施例给出了在追踪数据2作为前向链路带宽,追踪数据7作为后向链路带宽的情况下,rebera和facetime的发送速率。从表5和表6中可以看到,在所有的实验中,rebera获得了更高的前向链路带宽利用率,以及更短的数据包延迟。特别的,rebera的平均带宽利用率比facetime高1.2015倍,同时在95%的数据队列延迟方面,rebera比facetime平均减少113毫秒。此外,利用一个更具挑战的后向传输能力(表5中的追踪数据1),会使rebera和facetime的带宽利用率都减小。facetime的数据包延迟性能也降低了,但是,rebera还可以提供与之前相似的数据包延迟。最后,在两个用户通过不同的移动网络链路连接的情况下,测试了两个系统。本实施例利用追踪数据2和7作为前向端到端链路的移动网络传输能力。假设后向链路具有无限的传输能力,具有一个40毫秒的固定延迟,这样是为了测量单向数据包延迟。实验结果如表4所示,在表4中,两条移动网络链路情况下的评估,利用追踪数据2和7作为前向链路传输能力,后向链路具有无限的传输能力。表4reberafacetime带宽利用率(%)56.44%46.52%延迟(ms)387558表5表63-3)置信参数的影响下一步,将研究上述提到的置信参数δ对rebera的影响。使δ的值从0.05变化到0.5,记录实验得到的带宽利用率和95%数据队列包延迟,如表7所示,在表7中,单条移动网络链路情况下置信参数对rebera的影响。前向链路传输能力为追踪数据2,后向链路传输能力为追踪数据7。δ的值较大意味着发送端可以容忍更大的带宽预测误差,因此会造成更大的数据包延迟,这样换来的是更高的带宽利用率,交互较少的视频流应用就是这种情况。表7δ0.050.10.20.5带宽利用率(%)67.1869.6374.1879.77延迟(ms)3473644044683-4)数据包丢失恢复能力为了验证在出现数据包丢失情况下rebera的效果,利用cellsim产生随机的数据包丢失。在数据包丢失率为5%和10%的情况下,测试了rebera的性能,结果如表8所示,在表8中单条移动网络链路情况下,数据包丢失对rebera的影响。前向链路传输能力为追踪数据5至7。尽管不是特别明显,带宽利用率会随着数据包丢失率而下降,这和预期的一样。但是,接收到的数据帧的延迟也减小了,因为在缓冲区的数据包积压变得更少了。表8数据包丢失率00.050.1带宽利用率(%)70.9767.6064.33延迟(ms)163141129第五部分,结论移动网络上的视频电话必须要适应快速变化的网络带宽和数据包延迟。在本发明实施例中提出了一种新的为移动网络设计的实时视频传输系统(rebera,实时带宽预测和速率调整),是为在移动网络中使用而设计的一种新的端到端视频电话系统。rebera采用了跨层设计的方法,包括应用层和传输层,如图3-1中所示。特别地,rebera的设计主要实现以下目的:1)准确的测量端到端路径上的可用带宽;2)准确的预测端到端路径上的可用带宽3)准确的视频比特流发送速率控制;和4)针对帧丢失和过度延迟的视频比特流的错误恢复能力。rebera采用如下方法来实现上述每个设计目的。1)可用带宽测量:通过发送突发数据包,并在接收端测量数据包到达间隔的方法可以测量瞬间可用带宽(abw,availablebandwidth)。rebera通过将视频帧自身作为突发数据包来实现可用带宽测量。对于固定时间间隔的abw测量值会定期的返回给发送端。2)可用带宽预测:由于abw测量值之间具有高度关联性,因此,rebera利用在线线性自适应滤波技术,基于过去和当前的abw测量值来预测以后的abw值。3)发送速率确定:将来的abw值预测不可避免的会存在误差。rebera跟踪最坏情况下的预测误差,找到和预先设定的置信参数相关的最保险的最大发送速率。然后,这个发送速率作为视频编码器的比特率限制值。4)利用层次型-p编码结构来提高错误恢复能力和完善的速率调整功能:为了提供针对帧丢失和过度延迟的错误恢复能力,rebera通过采用层次型-p编码结构实现了时序分层。这样可以提供不同水平的错误保护功能,而不会造成额外的编码复杂性和帧延迟。此外,准确的低延迟视频速率控制是很一件很困难的事情,视频比特率可能会超过给定的速率限制范围。rebera通过动态帧选择(dfs)模块,利用层次型-p编码结构来丢弃一些不太重要的编码帧,来保持帧速率的稳定。从以上可以看出,rebera利用视频帧本身来主动的测量移动网络链路的传输能力。同时利用这些测量值,通过采用常用的自适应滤波技术对将来网络传输能力进行预测。利用为时序分层视频流设计的动态帧选择模块,rebera通过丢弃高层帧的方式,确保视频发送速率不会超过预测值。这样就阻止了帧自身的拥塞,同时使数据包延迟最小化。实验表明,同苹果的facetime相比,rebera确实可以获得更高的带宽利用率和更短的数据包延迟。在本发明其他的实施例中,会在时序分层上考虑uep,同时会在rebera中集成一个具有低延迟速率控制功能的自适应视频编码器,以获得更短的数据包延迟和更高的带宽利用率。实施例四基于前述的实施例,本发明实施例提供一种端到端的视频发送装置,该装置所包括的各单元,例如第一确定单元、预测单元、第二确定单元、编码单元、记录单元和第一发送单等,以及各单元所包括的各模块,都可以通过发送端中的处理器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。图4为本发明实施例四端到端的视频发送装置的组成结构示意图,如图4所示,所述装置400包括第一确定单元401、预测单元402、第二确定单元403、编码单元404、记录单元405和第一发送单元406,其中:所述第一确定单元401,用于确定第一带宽测量值向量所述第一带宽测量值向量为第一时刻之前发送的(m-1)个连续的i帧间隔的带宽测量值所组成的向量,所述第一时刻为当前i帧间隔k的结束时刻;所述预测单元402,用于基于所述第一带宽测量值向量预测下一个i帧间隔(k+1)的可用带宽预测值所述第二确定单元403,用于根据所述可用带宽预测值和预先设定的置信参数确定用于发送下一个i帧间隔内的视频帧的速率限制值;所述编码单元404,用于根据所述速率限制值采用层次型-p(hp)编码方式对所述下一个i帧间隔内的视频帧进行编码,得到编码后的视频流;所述记录单元405,用于记录所述编码后的视频流中每一所述帧的编码速率和时序层优先级;所述第一发送单元406,用于按照预设的第一规则发送所述编码后的视频流,所述第一规则,用于按照所述时序层优先级在总的编码速率不超过所述速率限制值的情况下,使得下一个i帧间隔(k+1)结束时发送的总帧数最大,同时所选择帧之间的发送时间间隔平均值和方差最小。本发明实施例中,所述第一确定单元包括接收模块和更新模块,其中:所述接收模块,用于接收发送端发送的第一带宽测量值,所述第一带宽测量值为当前i帧间隔k的带宽测量值所述更新模块,用于利用所述第一带宽测量值更新保存的第二带宽测量值向量得到第一带宽测量值向量本发明实施例中,所述预测单元,用于将所述第一带宽测量值集合输入预设的自适应线性预测过滤器,得到由所述过滤器输出的下一个i帧间隔(k+1)的可用带宽预测值在具体实现的过程中,所述预测单元包括获取模块、第一计算模块、第二计算模块、第三计算模块和第四计算模块,其中:所述获取模块,用于在t=tk+1时刻,获取当前i帧间隔k的带宽测量值其中所述tk+1为当前i帧间隔k的结束时刻;所述第一计算模块,用于根据计算得到长度为m的增益向量g(k),其中,p(k)为经验自相关矩阵的逆,λ为遗忘因子参数;所述第二计算模块,用于根据计算得到先验预测误差εk,其中w(k)为长度为m的滤波器抽头向量;所述第三计算模块,用于根据w(k)=w(k-1)+∈kg(k)计算得到更新所述滤波器的抽头向量w(k);所述第四计算模块,用于根据计算得到下一个i帧间隔(k+1)的可用带宽预测值本发明实施例中,所述装置还包括第三确定单元,用于根据确定置信参数δ,其中rk+1表示下一个i帧间隔k+1的发送速率,εk+1表示通过rls算法获得的带宽预测误差,其中,本发明实施例中,所述第一发送单元包括标记模块、排列模块、更新模块、第一估算模块、建立模块和处理模块,其中:所述标记模块,用于按照时序层对每个编码后的帧进行标记,将帧n的大小和时序层分别表示为sn和ln;所述排列模块,用于将编码后的视频帧按照层数从时序层优先级开始进行排列,得到优先级队列π;所述更新模块,用于对于每个新到达的帧n,通过排除历史帧将π更新πn;所述第一估算模块,用于根据所述πn更新帧的大小估算值以及剩余带宽估算值;所述建立模块,用于根据帧的大小估算值和剩余带宽估算值建立一个准备发送的帧集合en,其中所述帧集合en是通过从所述πn中第一个帧开始抽取帧得到的;所述处理模块,用于当抽取的帧的总大小达到剩余带宽估算值时,停止抽取,如果帧n在集合en中,就发送帧n,如果帧n不在集合en,则丢弃。实施例五基于前述的实施例,本发明实施例提供一种端到端的视频发送装置,该装置所包括的各单元,例如接收单元、第四确定单元、测量单元和第二发送单元等,以及各单元所包括的各模块,都可以通过发送端中的处理器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。图5为本发明实施例五端到端的视频发送装置的组成结构示意图,如图5所示,该装置500包括接收单元501、第四确定单元502、测量单元503和第二发送单元504,其中:所述接收单元501,用于接收发送端发送的视频帧;所述第四确定单元502,用于将所述发送端发送的视频帧作为突发数据包;所述测量单元503,用于利用突发数据包到达间隔的方法测量当前i帧间隔k的可用带宽,得到第一带宽测量值,所述第一带宽测量值为当前i帧间隔k的带宽测量值所述第二发送单元504,用于将所述可第一带宽测量值发送给所述发送端。本发明实施例中,所述测量单元包括第二确定模块和第二估算模块,其中:所述第二确定模块,用于将数据包i-1和i的到达间隔时间表示为ai,将数据包i的大小表示为zi,利用确定mn;所述第二估算模块,用于对于任一周期(t1,t2],利用估算(t1,t2]周期内的带宽测量值c(t1,t2),其中n是在(t1,t2]到达的所有帧的集合,当k=1时,当前i帧间隔k的开始时间tk即为t1,当前i帧间隔k的结束时间tk+1即为t2。这里,在最近t秒内,每δ秒测量一下网络的带宽,其中δ<<t,所述t表示i帧间隔。这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本发明中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1