一种基于HEVC转码的视频流加速方法与流程

文档序号:16901521发布日期:2019-02-19 18:02阅读:206来源:国知局
一种基于HEVC转码的视频流加速方法与流程

本发明涉及一种基于hevc转码的视频流加速方法,属于仿真云计算技术领域。



背景技术:

在工业仿真的云计算领域存在一种类似远程桌面的计算服务,主要给用户在浏览器环境下提供linux或者windows图形界面以及相应的仿真处理软件服务。该服务涉及到图像数据传输,目前视频传输服务都是视频源服务器和客户的浏览器直连,而浏览器目前只能够支持h.264等编码技术,对于最新的、效果更好的编码技术hevc还不支持。

因此公网中传输的视频流以h.264编码为主,h.264编码被业界广泛使用多年,也被几乎所有主流视频流应用支持,然而比起最新的视频编码技术hevc,其传输数据量在一般情况下是后者的将近两倍,所以目前的方案在需要保证较高图像质量时对带宽有着比较高的要求。由于传输的数据量和图像质量成正相关,在带宽较小的情况下,图像质量会严重受影响。

进一步,视频服务器由于和每个客户的浏览器直连,在请求相同的视频流的情况下,视频服务器需要建立与请求同等数量的视频流,确保与每个客户都能保持视频流连接,但是这些连接传输的视频图像其实是相同的,因此在这种情况下会产生成倍的带宽浪费。



技术实现要素:

针对现有技术的缺陷,本发明的目的在于提供一种减少公网环境图像数据量传输,进而加快视频流传输;并且能够与现有的浏览器进行数据传输的基于hevc转码的视频流加速方法。

本发明的另一目的在于提供一种能够复用子网中相同的视频流连接,减少带宽浪费的基于hevc转码的视频流加速方法。

为实现上述目的,本发明的技术方案为:

一种基于hevc转码的视频流加速方法,包括以下步骤:

第一步,采用hevc编码技术去编码在公网中传输的视频流数据;

第二步,公网将hevc编码的视频流数据传输给代理服务器;

第三步,代理服务器将hevc视频流转码成h.264视频流;

第四步,代理服务器将h.264视频流传输给内网的浏览器。

本发明对公网的视频流数据采用hevc编码技术进行编码,能够有效减少公网环境图像数据量传输,进而加快视频流传输;在带宽较小的情况下,也能保证图像质量。为使得用户的浏览器能够正常解析来自公网的hevc视频流,本发明设置代理服务器专门负责将hevc视频流转码成h.264视频流。而在内网中,网络传输带宽已经不再是瓶颈,因此切换成h.264视频流虽然增大了数据量但是并不会导致性能变差。

作为优选技术措施,由于将一个视频流从hevc转码成h.264会对代理服务器会形成性能负担,因此不可能无限制使用转码服务,因此代理服务器具有动态调度的功能,能够根据当前的计算资源负载和网络带宽占用,动态选择向公网中的视频流服务器请求的视频格式,保证计算资源和网络带宽的合理分配。

作为优选技术措施,

用户通过以下步骤获得公网的视频流数据:

s1.多个用户同时通过浏览器向公网的视频流服务器发起请求;

s2.这些请求会被转到代理服务器,该代理服务器在经过调度之后,确定向视频流服务器发起不同编码格式的视频流请求,并和其建立连接,与此同时和各个用户的浏览器建立连接,如果存在相同的视频流被请求,则代理服务器和视频流服务器之间只会有一条相应的视频连接被建立;

s3.视频流服务器开始向代理服务器发送协商好的编码格式的视频流;

s4.代理服务器如果接收到hevc格式的视频流,对其进行转码,得到h.264格式的视频流;

s5.代理服务器向各个用户的浏览器发送对应的h.264视频流。

本发明针对处于同一个内网中的用户在请求同一视频流的时候,通过代理服务器支持复用视频流连接。即如果内网中有n个用户,同时在请求视频流服务器上的同一视频流,假设每个视频流能够正常流畅显示视频对公网服务器要求的带宽是dmbps,则总共所需的带宽是:n*dmbps。然而n个用户所需要的视频流,其实是同一个视频流的,根本无需每个人都向视频流服务器请求视频流数据,因此只需要通过代理服务器和视频流服务器保持一条视频流连接,然后内网中的所有用户,都向这个代理服务器请求数据,则最终对公网服务器要求的带宽只是:dmbps,与之前相比所需带宽仅为1/n,能够最大程度的节约带宽,避免带宽浪费。此外这样做还会减小转码服务器的负载,否则转码服务器就需要同时给n个视频流做转码,这样会导致整个系统的扩展性受到严重限制。

作为优选技术措施,代理服务器和视频流服务器整合在一个服务器上,能够有效提高视频流的传输效率,降低延长时间。如果将两者分开,会因为多了一个节点导致视频延迟增大,而工业仿真的云计算领域对于视频流低延迟的要求非常高。

作为优选技术措施,

代理服务器进行调度,gpu总资源数为1,网络带宽资源总数为1;

在给定的分辨率和帧率下,一条hevc视频流所消耗的gpu资源为c1,网络带宽占用为b1,一条h.264视频流所消耗的gpu资源为c2,网络带宽占用为b2;

当前系统已存在的h.264视频流数量为m,hevc视频流数量为n;

对于任一次调度,等待调度视频流请求数量为t,所述调度方法必须给出hevc视频流数量mx和h.264视频流数量nx,同时必须保证gpu资源和网络带宽资源的使用没有超过,此外因为hevc一般说来会提供更好的成像质量,更偏向于使用hevc视频流。

作为优选技术措施,

调度方法的计算公式如下:

mc1+nc2≤1(1)

mb1+nb2≤1(2)

(m+mx)c1+(n+nx)c2≤1(3)

(m+mx)b1+(n+nx)b2≤1(4)

c1=λ1c2,其中λ1>1(5)

b2=λ2b1,其中λ2>1(6)

mx+nx=t,其中mx,nx,t≥0(7)

其中的λ1λ2分别是c1和c2、b2和b1的比值,将其简化之后,能够得到如下公式:

(m+mx)λ1c2+(n+t-mx)c2≤1(8)

(m+mx)b1+(n+t-mx)λ2b1≤1(9)

0≤mx≤t(10)。

本发明对现有的gpu总资源数、网络带宽资源进行公式化处理,进而计算出gpu以及带宽能够承受的最大视频流请求数量,根据上述数据进行合理调度资源,能够有效提升视频流传输效率,避免资源浪费。

作为优选技术措施,

计算mx的最大取值:

所述调度方法是增量式,也就是说t的值不会特别大,因此采用迭代的方法进行求解:

步骤1:如果t为0,输出空,停止;

步骤2:令t=0;

步骤3:令mx=t-t;

步骤4:检查(8)和(9)是否成立,如果成立,输出mx和t-mx,停止;

步骤5:如果t<t,令t=t+1,转到步骤3;

步骤6:令t=t-1,转到步骤1。

作为优选技术措施,调度方法分别输出使用hevc和h.264视频流数量,当未被调度的视频流被请求,这些请求会处在等待队列中等待调度,此外在满负荷的情况下,新来的请求会被放在等待队列中,在资源释放之后,会对其进行调度,方案合理,切实可行。

与现有技术相比,本发明具有以下有益效果:

本发明对公网的视频流数据采用hevc编码技术进行编码,能够有效减少公网环境图像数据量传输,进而加快视频流传输以及提升图像传输质量。为使得用户的浏览器能够正常解析来自公网的hevc视频流,本发明设置代理服务器专门负责将hevc视频流转码成h.264视频流。而在内网中,网络传输带宽已经不再是瓶颈,因此切换成h.264视频流虽然增大了数据量但是并不会导致性能变差。

进一步,本发明针对处于同一个内网中的用户在请求同一视频流的时候,通过代理服务器支持复用视频流连接。即如果内网中有n个用户,同时在请求视频流服务器上的同一视频流,假设每个视频流能够正常流畅显示视频对公网服务器要求的带宽是dmbps,则总共所需的带宽是:n*dmbps。然而n个用户所需要的视频流,其实是同一个视频流的,根本无需每个人都向视频流服务器请求视频流数据,因此只需要通过代理服务器和视频流服务器保持一条视频流连接,然后内网中的所有用户,都向这个代理服务器请求数据,则最终对公网服务器要求的带宽只是:dmbps,与之前相比所需带宽仅为1/n,能够最大程度的节约带宽,避免带宽浪费。此外这样做还会减小转码服务器的负载,否则转码服务器就需要同时给n个视频流做转码,这样会导致整个系统的扩展性受到严重限制。

附图说明

图1为现有的视频流传输方案示图;

图2为本发明视频流传输方案示图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。

如图1-2所示,一种基于hevc转码的视频流加速方法,包括以下步骤:

第一步,采用hevc编码技术去编码在公网中传输的视频流数据;

第二步,公网将hevc编码的视频流数据传输给代理服务器;

第三步,代理服务器将hevc视频流转码成h.264视频流;

第四步,代理服务器将h.264视频流传输给内网的浏览器。

本发明对公网的视频流数据采用hevc编码技术进行编码,能够有效减少公网环境图像数据量传输,进而加快视频流传输。为使得用户的浏览器能够正常解析来自公网的hevc视频流,本发明设置代理服务器专门负责将hevc视频流转码成h.264视频流。而在内网中,网络传输带宽已经不再是瓶颈,因此切换成h.264视频流虽然增大了数据量但是并不会导致性能变差。

由于将一个视频流从hevc转码成h.264会对代理服务器会形成性能负担,因此不可能无限制使用转码服务,因此代理服务器具有动态调度的功能,能够根据当前的计算资源负载和网络带宽占用,动态选择向公网中的视频流服务器请求的视频格式,保证计算资源和网络带宽的合理分配。

本发明用户通过以下步骤获得公网的视频流数据:

s1.多个用户同时通过浏览器向公网的视频流服务器发起请求;

s2.这些请求会被转到代理服务器,该代理服务器在经过调度之后,确定向视频流服务器发起不同编码格式的视频流请求,并和其建立连接,与此同时和各个用户的浏览器建立连接,如果存在相同的视频流被请求,则代理服务器和视频流服务器之间只会有一条相应的视频连接被建立;

s3.视频流服务器开始向代理服务器发送协商好的编码格式的视频流;

s4.代理服务器如果接收到hevc格式的视频流,对其进行转码,得到h.264格式的视频流;

s5.代理服务器向各个用户的浏览器发送对应的h.264视频流。

本发明针对处于同一个内网中的用户在请求同一视频流的时候,通过代理服务器支持复用视频流连接。即如果内网中有n个用户,同时在请求视频流服务器上的同一视频流,假设每个视频流能够正常流畅显示视频对公网服务器要求的带宽是dmbps,则总共所需的带宽是:n*dmbps。然而n个用户所需要的视频流,其实是同一个视频流的,根本无需每个人都向视频流服务器请求视频流数据,因此只需要通过代理服务器和视频流服务器保持一条视频流连接,然后内网中的所有用户,都向这个代理服务器请求数据,则最终对公网服务器要求的带宽只是:dmbps,与之前相比所需带宽仅为1/n,能够最大程度的节约带宽,避免带宽浪费。此外这样做还会减小转码服务器的负载,否则转码服务器就需要同时给n个视频流做转码,这样会导致整个系统的扩展性受到严重限制。

代理服务器和视频流服务器整合在一个服务器上,能够有效提高视频流的传输效率,降低延长时间。如果将两者分开,会因为多了一个节点导致视频延迟增大,而工业仿真的云计算领域对于视频流低延迟的要求非常高。

本发明一种调度方法实施例:

代理服务器进行调度,gpu总资源数为1,网络带宽资源总数为1;

在给定的分辨率和帧率下,一条hevc视频流所消耗的gpu资源为c1,网络带宽占用为b1,一条h.264视频流所消耗的gpu资源为c2,网络带宽占用为b2;

当前系统已存在的h.264视频流数量为m,hevc视频流数量为n;

来自终端的视频流请求数量为t,所述调度方法必须给出hevc视频流数量mx和h.264视频流数量nx,同时必须保证gpu资源和网络带宽资源的使用没有超过,此外因为hevc一般说来会提供更好的成像质量,更偏向于使用hevc视频流。

调度方法的计算公式如下:

mc1+nc2≤1(1)

mb1+nb2≤1(2)

(m+mx)c1+(n+nx)c2≤1(3)

(m+mx)b1+(n+nx)b2≤1(4)

c1=λ1c2,其中λ1>1(5)

b2=λ2b1,其中λ2>1(6)

mx+nx=t,wheremx,nx,t≥0(7)

其中的λ1λ2分别是c1和c2、b2和b1的比值,将其简化之后,能够得到如下公式:

(m+mx)λ1c2+(n+t-mx)c2≤1(8)

(m+mx)b1+(n+t-mx)λ2b1≤1(9)

0≤mx≤t(10)。

本发明对现有的gpu总资源数、网络带宽资源进行公式化处理,进而计算出gpu以及带宽能够承受的最大视频流请求数量,根据上述数据进行合理调度资源,能够有效提升视频流传输效率,避免资源浪费。

本发明一种计算mx的最大取值实施例:

所述调度方法是增量式,也就是说t的值不会特别大,因此采用迭代的方法进行求解:

步骤1:如果t为0,输出空,停止

步骤2:令t=0

步骤3:令mx=t-t

步骤4:检查(8)和(9)是否成立,如果成立,输出mx和t-mx,停止

步骤5:如果t<t,令t=t+1,转到步骤3

步骤6:令t=t-1,转到步骤1。

调度方法分别输出使用hevc和h.264视频流数量,当未被调度的视频流被请求,这些请求会处在等待队列中,等待调度,此外在满负荷的情况下,新来的请求会被放在等待队列中,在资源释放之后,会对其进行调度,方案合理,切实可行。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1