一种自适应视频编码控制系统及方法与流程

文档序号:12498250阅读:187来源:国知局
一种自适应视频编码控制系统及方法与流程

本发明涉及视频传输和视频编码技术领域,特别涉及一种自适应视频编码控制系统及一种自适应视频编码控制方法。



背景技术:

在流媒体系统中,视频服务器发送视频到客户端,客户端将视频内容暂时存储在一个由客户端定义的播放缓冲区队列里面。

当播放缓冲区为空,例如带宽突然降低,此时客户端就会暂停视频播放来让足够多的视频内容存储在播放缓冲区,在这种情况下客户端可以恢复视频的播放,这种现象被称为重新缓冲机制。视频重新缓冲的时间和频率是影响用户观看质量的主要因素。

自适应流媒体系统的目标是实时改变视频源的编码码率来适应网络的可用带宽,视频源来自事先录制或者直播,这种方法可以避免重新缓冲导致的播放中断。

近几年,采用基于TCP的HTTP协议而不采用基于UDP的实时协议(RTP)和实时流协议(RTSP)进行视频传输成为了主流。今天,所有的主流视频分发平台如YouTube,NetFlix等都采用这种方式。

在自适应流媒体系统中,源视频被编码器切割成片(块),每一个分片时间内包含了多个图像组(GOP)。视频切割分为两种方法:1)物理分割;2)逻辑分割。

物理分割方法将源视频采用物理方法分割成若干个文件,文件分别代表每一个视频分片。视频分片采用它的完整路径进行索引。

逻辑分割方法需要对视频进行逻辑上的划分。在这种方法下,通常使用索引文件来描述每个视频分片在存储区字节的偏移量和大小。

自适应流媒体的特征主要有两点:1)自适应的实现方法;2)控制架构。

我们将目前用于实现自适应的方法分为以下三类:

1)转码系统:该系统通过实时改变源视频的编码码率来使得视频内容适应需求;这种技术使得视频的编码码率适应于可用带宽,但也存在每个视频会话都需要一个编码过程的缺点;因此转码系统不适用目前的用户规模。

2)可伸缩视频编解码系统:该系统采用可伸缩编解码器,例如H.264SVC等。原视频内容只需要编码一次,并且编码码率可以利用编解码器在时间和空间上进行扩展。相对于转码系统,这种方法只编码一次,编码过程更具扩展性。

3)流切换或多码率系统:该系统将视频编码成N种版本,一种版本代表一种视频等级或表示;控制机制决定向接收方发送的视频等级;系统需要为每个源视频定义N个编码过程。相对于可伸缩编码系统,该系统的CPU和存储成本要求都更高。但该系统的优点是可以使用任何编解码器。

关于控制架构有如下三种不同方式:

1)客户端架构:控制器放置在客户端进行编码码率的计算并且发送控制信号给视频服务器;使用带宽估计作为控制器的输入是一种比较通常的做法。

2)服务器端架构:控制器放置在服务器,通过服务器端的测量(具体来说有对带宽的估计以及对传输缓冲区的长度的估计)来计算发送到客户端的视频码率。

3)混合结构:在这种结构下,控制器可以放置在服务器或客户端。

今天,领先的自适应流媒体平台如YouTube和Netflix采用的是流切换方式的客户端架构系统,使用的基础设施为HTTP代理服务器。

在这种技术背景下产生了两个标准:

1)MPEG-DASH;

2)Apple公司的HTTP直播流技术(HLS)。

这两个标准都使用了存储在视频服务器的索引文件,文件用于关联每个视频分片的等级以及相对应的网址(URL)。

流媒体系统通常使用两种控制机制:

1)流切换控制机制,用于计算编码码率;

2)播放缓冲区控制机制,用于控制播放缓冲区的缓冲等级。

对于流切换控制机制,主流的做法是根据测量可用带宽来进行视频编码码率的计算。

上述文章同时表明流媒体系统有以下两种状态:

1)缓冲状态:这种状态在视频流会话开始阶段(或一个重新缓冲事件发生后)被激活,当播放缓冲区水平增加到目标阈值后系统离开缓冲状态;当系统处于这个状态时,在上一个视频分片下载完成的那一刻就会对下一个视频分片进行请求;该状态需要尽快填补播放缓冲区;

2)稳定状态:当客户端处于该状态时,每隔T秒就对视频分片进行请求,T是以秒为单位的分片长度;这就意味着当Td<T时,客户端会在一个T-Td空闲时间后进行下一个视频分片的下载,其中Td表示一个视频分片的下载时间。

相关研究已经表明当客户端处于稳定状态时,使用分片请求机制所产生的开关模式有如下主要缺点:

1)这种开关模式会导致视频服务器的上行带宽利用率不足;

2)并发视频流不能够公平地共享瓶颈路段;

3)当视频流与TCP流在共享瓶颈路段时(如文件的并行下载),视频流不能够得到公平的带宽分配。



技术实现要素:

有鉴于此,本发明的目的在于提供一种自适应视频编码控制系统及一种自适应视频编码控制方法,解决在自适应流媒体系统播放过程中播放中断的问题,同时保证了最佳的视频质量。

为达到上述目的,本发明提供如下技术方案:

一种自适应视频编码控制系统,包括控制器,用于计算视频的实时编码码率;分片调度处理单元,用于向服务器请求发送视频分片;播放缓冲区,位于客户端,用于放置从视频服务器接收到的视频资源;编码器,位于视频服务器端,用于对源视频进行编码;网络带宽估计器,用于计算网络可用带宽估计值;输入接口,位于客户端,用于读取播放缓冲区的长度;播放器,位于客户端,用于获取播放缓冲区内的资源,解码视频并播放。

进一步,所述控制器通过以下公式计算实时编码码率:

其中,tk=tk-1+ΔT表示第k次的采样时间,ΔT为采样时间间隔;q(tk)表示在第k次采样时由输入接口读取的播放缓冲区长度;F(q(tk),q(tk-1),...,q(tk-m+1),qT)是一个关于播放缓冲区长度的函数,函数中采样步骤为k,k-1,k-2,…,k-m+1(m为最后采样),并且达到缓冲区目标值qT;r(tk)表示带宽估计器计算在第k次采样间隔时间后的估计带宽;Q(·)是一个递增函数。

进一步,所述控制器还可以通过以下公式计算实时编码码率:

其中,tk=tk-1+ΔT表示第k次的采样时间,ΔT为采样时间间隔;q(tk)为第k次采样时间时播放缓冲区的长度;r(tk)表示第k次采样间隔时间后的网络可用带宽估计值;K1和K2为两个非负常数;Q(·)为递增函数

进一步,所述网络可用带宽估计值通过以下公式计算:

其中,tk=tk-1+ΔT为第k次的采样时间;q(tk)为第k次采样时间播放缓冲区的长度;b(tk-1)为在第k-1次采样间隔后控制器所计算的实时编码码率;d(tk-1)为一个布尔变量,当视频播放时为1,未播放时为0。

一种自适应视频编码控制方法,包括以下步骤:

1)根据播放缓冲区的长度和网络可用带宽估计值计算视频的实时编码码率;

2)向视频服务器发出分片请求,请求下一个要发送的分片和分片的视频等级;

3)视频服务器将相应等级的视频分片发送给客户端。

进一步,所述实时编码码率通过以下公式计算:

其中,tk=tk-1+ΔT表示第k次的采样时间,ΔT为采样时间间隔;q(tk)表示在第k次采样时由输入接口读取的播放缓冲区长度;F(q(tk),q(tk-1),...,q(tk-m+1),qT)是一个关于播放缓冲区长度的函数,函数中采样步骤为k,k-1,k-2,…,k-m+1(m为最后采样),并且达到缓冲区目标值qT;r(tk)表示带宽估计器计算在第k次采样间隔时间后的估计带宽;Q(·)是一个递增函数。

进一步,所述实时编码码率通过以下公式计算:

其中,tk=tk-1+ΔT表示第k次的采样时间,ΔT为采样时间间隔;q(tk)为第k次采样时间时播放缓冲区的长度;r(tk)表示第k次采样间隔时间后的网络可用带宽估计值;K1和K2为两个非负常数;Q(·)为递增函数。

进一步,所述网络可用带宽估计值通过以下公式计算:

其中,tk=tk-1+ΔT为第k次的采样时间;q(tk)为第k次采样时间播放缓冲区的长度;b(tk-1)为在第k-1次采样间隔后控制器所计算的实时编码码率;d(tk-1)为一个布尔变量,当视频播放时为1,未播放时为0。

进一步,所述网络可用带宽估计值通过以下公式计算:

其中,α为0到1的常量;Dk-1为k-1分片的字节大小;Dk-1/ΔTk-1代表的是分片k-1的下载速率。

进一步,所述步骤2)具体步骤包括:当第k个视频分片在时刻tkd传输完成后,向视频服务器请求在时刻tk+1=tkd+pk发送第k+1个分片;

读取当前视频的实时编码码率b(tkd)及播放缓冲区的长度q(tkd);

当b(tkd)小于最大编码码率或者q(tkd)小于最大阈值Qmax时,分片调度器在时刻tkd以码率b(tkd)向视频服务器请求第k+1个分片;

当b(tkd)大于或等于最大编码码率,并且播放缓冲区长度q(tkd)大于或等于最大阈值Qmax时,分片调度器在空闲pk=max(Tk-ΔTkd,0)秒后请求视频服务器以最大编码码率发送第k+1个视频分片,其中,Tk是第k个分片的时长,ΔTkd=tkd-tk是第k个分片的下载时间。

本发明的有益效果在于:本发明提供的一种自适应视频编码控制系统及方法,通过控制器根据播放缓冲区的长度和网络可用带宽估计值计算视频的实时编码码率,进而控制视频服务器的发送下一视频分片的编码码率,使得视频服务器到客户端给予的端到端带宽为用户提供最大的视频质量,使得在TCP流存在的情况下,视频流能够获得公平的带宽分配,能够保证多个视频流共享同一瓶颈通道。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明说述的自适应视频编码控制系统结构图;

图2为本发明说述的分片调度处理单元的工作流程图;

图3为分片请求过程调度图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

本发明提供的一种自适应视频编码控制系统,如图1所示,包括客户端110(视频接收方)通过分组交换网络108连接到视频服务器109(视频发送方)。

所述视频服务器可以是任何一种配备了分组交换网络(例如互联网)的计算机,使用的操作系统可以是Windows 7,Windows 8,Windows NT,Windows XP,Linux,Mac OSX。

所述客户端可以是任何配备了分组交换网络接口,同时能使用有线和无线接入网络的设备,也可以是智能手机。设备可以使用任何操作系统如Linux、Android、Windows、iOS等。

视频源通过使用服务器上的编码器进行编码或压缩。编码器将视频源进行编码或压缩,可以采用以下方式:

1)可伸缩编码(例如H.264SVC):码率b(t)可以设置为Bmin和Bmax之间的任何值,Bmin表示最小编码码率,Bmax表示最大编码码率。

2)多码率或流切换编码:编码器将源视频以不同的码率编码成N个版本,版本描述为“表示”或“视频等级”。其中码率b(t)属于集合L={l1,l2,…,lN},lN表示最大编码码率。如采用Akamai高清网络的视频水平L={350,700,1500,2500,3500}kbps,视频分辨率从240P到1080p。编码器可以使用任何视频编解码器,例如AVC/H.264,VP8,HEVC/H.265,VP9。

图1中自适应视频编码控制系统使用的是客户端控制架构,本发明所述的自适应视频编码控制系统也可以使用服务器端控制架构,将控制器放置在视频服务器上。

自适应视频编码控制系统包括播放缓冲区107、播放器106、编码器101、视频源102、输入接口、网络带宽估计器105、控制器103和分片调度处理单元104。

播放缓冲区,位于客户端,用于放置从视频服务器接收到的视频资源。

播放器,位于客户端,用于获取播放缓冲区内的资源,解码视频并播放。

编码器,位于视频服务器端,用于对源视频进行编码。

输入接口,位于客户端,用于读取播放缓冲区的长度。

网络带宽估计器,用于在发送视频分片的传输过程中计算网络可用带宽估计值。

控制器用于根据播放缓冲区的长度和估计网络可用带宽计算视频的实时编码码率,在可伸缩编码模式下的编码在多码率编码模式下b(t)∈L;所述控制器可以由Adobe Flash、微软Silverlight,或使用HTML5标准中的MediaSource API实现。

所述控制器主要用于自动实时计算编码码率,并将播放缓冲区的长度保持在目标阈值qT附近的稳定状态,尽可能在端到端可用带宽之上选择最高的视频等级。所述控制器主要根据网络可用带宽估计值、播放缓冲区的长度及播放缓冲区的目标阈值qT来计算实时编码码率。

分片调度处理单元,用于向服务器请求发送视频分片,根据视频的实时编码码率和播放缓冲区的长度决定何时向视频服务器发送视频分片请求。

一种自适应视频编码控制方法,主要包括以下步骤:

1)根据播放缓冲区的长度和网络可用带宽估计值计算视频的实时编码码率。

视频被分割成具有同样时长的M个分片(块)。典型的分片时长在1秒到10秒之间。分片的序列号表示为k∈{1,2,…,M}。(k-1)代表客户端114接收的上一个视频分片,而k代表客户端请求的下一个视频分片。

tk表示客户端向服务器请求第k个分片的时间,tkd表示分片k被客户端接收到的时间。最后,ΔTK=tkd-tk表示分片k的下载所需时间。

所述读取播放缓冲区的长度通过输入接口获取;所述网络可用带宽值通过网络带宽估计器计算;所述控制器通过以下公式计算视频的实时编码码率:

其中,tk=tk-1+ΔT表示第k次的采样时间,ΔT为采样时间间隔;q(tk)表示在第k次采样时由输入接口读取的播放缓冲区长度;F(q(tk),q(tk-1),...,q(tk-m+1),qT)是一个关于播放缓冲区长度的函数,函数中采样步骤为k,k-1,k-2,…,k-m+1(m为最后采样),并且达到缓冲区目标值qT;r(tk)表示带宽估计器计算在第k次采样间隔时间后的估计带宽;Q(·)是一个递增函数。

可伸缩编码模式下的编码码率b(t)包含于集合多码率编码模式下的编码码率b(t)为集合L={l1,l2,…,lN}中的离散值。

所述控制器还可以通过以下公式计算视频的实时编码码率,(k-1)代表下载的上一个视频分片。当分片(k-1)被下载完成时,控制器需要计算在tk时刻向视频服务器请求的下一个视频分片k的编码码率(即视频等级)b(tk),b(tk)∈L。其中,tk=tk-1+ΔTk-1,其中ΔTk-1为分片(k-1)的下载所需时间。

其中,q(tk)指的是播放缓冲区的长度;r(tk)指的是带宽估计器计算的可用带宽估计值;K1和K2是两个非负常数;qI(tk)=qI(tk-1)+ΔTk-1(q(tk)-qT)是误差q(tk)-qT的积分;Q:为一个递增函数,其中任何x值对应于li∈L。在流切换系统中,控制器只能在离散集合L中确定视频码率。

误差q(tk)-qT是有界的。播放缓冲区的长度保持在目标阈值qT左右。此外,控制器在稳定状态下选择的码率,在满足可用带宽条件下应尽可能最大。

函数Q实现如下:

所述网络带宽估计器用于计算网络可用带宽估计值,例如,对上一个视频分片的下载速率执行低通滤波。使用EWMA滤波器,通过以下公式计算:

其中,α为0到1的常量;Dk-1为k-1分片的字节大小;Dk-1/ΔTk-1代表的是分片(k-1)的下载速率。

所述网络可用带宽值还可以通过以下方法计算:

其中,r(tk)为在时刻tk的网络可用带宽的估计值,tk=tk-1+ΔT为第k次的采样时间;q(tk)为第k次采样时间播放缓冲区的长度;b(tk-1)为在第k-1次采样间隔后控制器所计算的实时编码码率;d(tk-1)为一个布尔变量,当视频播放时为1,未播放时为0。

2)向视频服务器发出分片请求,请求下一个要发送的分片和分片的视频等级。

所述分片请求通过使用特定的应用层协议发送到视频服务器。应用层协议包括超文本传输协议(HTTP)、实时流协议(RTSP)、实时消息协议(RTMP)。

所述步骤2)主要通过分片调度处理单元来实现,如图2所示,具体包括以下步骤:

分片调度器检测视频流传输是否完成,若完成则停止分片调度器,若没有完成,则当第k个视频分片在时刻tkd传输完成后,准备向视频服务器请求在时刻tk+1=tkd+pk发送第k+1个分片;tk表示客户端请求分片k的请求时间;tkd表示的是分片k的传输完成的时间。

读取当前视频的实时编码码率b(tkd)及播放缓冲区的长度q(tkd);

当b(tkd)小于最大编码码率(Bmax或lN)或者q(tkd)小于最大阈值Qmax时,分片调度器在时刻tkd以码率b(tkd)向视频服务器请求第k+1个分片;分片调度器为“正常”模式。

当b(tkd)大于或等于最大编码码率,并且播放缓冲区长度q(tkd)大于或等于最大阈值Qmax时,分片调度器计算暂停,间隔时间X,在X秒后发送新的分片请求,分片调度器为“开关”模式。

图3显示了分片调度器的视频分片请求流程:每个分片用一个方块表示,方块标有分片的序号。例如,方块301表示序号为1的分片,方块302表示序号为2的分片等。

显示了两种可能的操作模式,即分段调度的“正常”模式和“开关”模式。两种模式的交替次数不仅取决于端到端的可用带宽,也取决于播放缓冲区的长度以及由控制器计算出的编码码率。

图3所示的示例中,第一个操作模式:正常模式,以对分片1(301)的请求为开始,以对分片n(303)的请求为结束;第二个操作模式:开关模式,以对分片n+1(304)的请求为开始并且一直持续。下面详细描述每一种分片操作模式。

正常:在上一分片被下载完成后立即开始新分片的请求;其中tk=tk-1d

开关:在一个“空闲时期”后开始新的分片请求;当分片调度器处于开关模式时,其中tk=tk-1d+pk,pk≥0,pk指的是分片k的空闲时间。

分片调度器的工作机制避免了开关模式,假设队列长度小于Qmax,编码比特率低于最大值lN。开关模式只有当视频质量能达到最大(因为计算机编码码率等于lN),或者当播放缓冲区存储了大量的视频分片时才存在。可以说,当系统的性能最大时开关模式才有出现的可能。要注意的是,所述两个条件有一个不成立时,比如可用带宽的临时减少,“正常”模式才会被重新建立。

例如,当b(tkd)大于或等于最大编码码率,并且播放缓冲区长度q(tkd)大于或等于最大阈值Qmax时,分片调度器此时工作在开关状态下,并且此时控制器计算的编码码率等于最大码率值lN。此外,假设tkd表示分片k被分片调度器调用直到下载完成时的所用时间。

以分片k的下载完成时间tkd到以码率lN请求分片(k+1)整个过程来计算空闲时间pk,计算采用以下公式:

pk=max(Tk-ΔTkd,0)

Tk表示分片k的下载持续时间,ΔTkd=tkd-tk是分片k的下载时间。

3)视频服务器将相应等级的视频分片发送给客户端。客户端接收到的分片将其存储在播放缓冲区,通过带宽估计器去计算新的网络估计带宽估计值r(t),重复上述步骤。

本发明所述方法所使用的协议包括但不限于传输控制协议(TCP)、户数据报协议(UDP)和数据报拥塞控制协议(DCCP)。

一种自适应视频编码控制系统及方法适用于以下场景:

视频点播(VOD):该系统需要准备事先录制的视频,如电影、电视剧等;

视频直播:在这种情况下,视频内容由直播源如摄像机产生;典型场景有电视直播、视频会议、在线教学等;

远程视频分发系统:主要包括高清视频和直播事件,以及在剧院和电影院播放的4K高清视频;

视频监控系统。互联网平台采用视频分发系统的商业平台有:YouTube直播,Netflix等。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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