掌桥专利:专业的专利平台
掌桥专利
首页

云会议多层视频快速平滑出图的方法

文献发布时间:2023-06-19 10:22:47


云会议多层视频快速平滑出图的方法

技术领域

本发明属于视频处理领域,特别涉及一种云会议多层视频快速平滑出图的方法。

背景技术

视频云会议的快速发展以及视频会议媒介多元化打破了时域、地域的限制,用户随时随地都能快速进行视频会议。为满足多种设备均能稳定可靠进行视频会议,多层视频功能应运而生,方便用户进行视频切换。此时,针对多层视频的稳定可靠的快速平滑出图的处理方式尤为重要。

目前现有的视频快速出图方案是在编码的时候初始设定好视频编码帧率、视频GOP值及视频场景切换等参数去缩短视频IDR帧间隔,来间接提升视频解码出图的速度。但是,现有方案一方面会增加视频在网络传输中比特率的波动;另一方面在相同视频编码比特率等参数下,缩短IDR帧间隔会相对降低视频观看质量效果,造成用户体验下降。

发明内容

针对上述缺点,本发明的目的在于一种云会议多层视频快速平滑出图的方法,通过稳定可靠的消息处理、多层视频按需插入IDR帧、接收端平滑切换的方法,保证视频质量并保证观看端用户进行视频操作时平滑显示新的视频。

所述云会议多层视频快速平滑出图的方法包括:

接收多个视频观看端的用户操作,根据所述用户操作发送请求消息至视频服务器,所述请求消息包括视频宽度和高度,所述视频服务器将所述请求消息转发到视频共享端,以通知所述视频共享端发送IDR帧数据;

所述视频共享端接收所述请求消息,根据不同视频观看端所请求的视频宽度和高度,进行对应某层视频的插入IDR帧处理;

视频共享端将对应的所述IDR帧发送到不同的视频观看端,以使所述观看端根据所述IDR帧执行平滑切换处理。

优选地,所述用户操作包括视频切换、开启新视频或视频浏览翻页。

优选地,所述视频服务器将所述请求消息转发到视频共享端,进一步包括:

所述视频服务器收到IFrameReq请求消息后转发到对应的视频共享端处理,同时向多个视频观看端应答IFrameRes响应消息;

其中所述IFrameReq请求消息采用TCP传输,并根据不同观看端与服务器初始消息延时以及定时信道延时的检测结果进行消息多发处理;

视频业务IFrameReq请求消息结构包括请求类型、发送消息的本地时间,以及请求视频的宽度和高度。

优选地,当所述视频共享端接收到所述IFrameReq请求消息之后,对所述视频服务器作出应答IFrameRes,确定接收到IFrameRes当前序列号的消息;

所述视频业务IFrameRes响应消息结构包括响应类型、发送消息的本地时间,以及请求视频的宽度和高度、信道丢包率和数据包延时。

优选地,所述视频共享端接收所述请求消息,根据不同视频观看端所请求的视频宽度和高度,进行对应某层视频的插入IDR帧处理,进一步包括:

初始化视频共享端的视频业务消息接收队列和发送队列,消息接收与发送线程,多层视频标记IDRFlag;

启动TCP通信监听,当收到端口消息,检验消息头是否正确,并解析出消息类型、消息ID、消息序列号、发送时间戳、请求视频的宽度和高度;

记录消息接收的时间信息,并根据时间差值得到消息单项网络延时,统计当前视频收发包数及丢包率,将丢包率、网络延时、发送时间信息设置到IFrameRes响应消息中;

将生成的IFrameRes响应消息推送到所述发送队列,通过发送线程进行推出,收发处理采用并行多线程方式;

根据解析得到的请求视频分辨率宽度和高度,从编码器接口中获取到对应的多层视频LayerID,并设置LayerID的标记为1;

当多个用户同时加入会议时,对请求消息进行去重集中处理。

相比于现有技术,本发明具有以下优点:

通过稳定可靠的消息处理、多层视频按需插入IDR帧、接收端平滑切换的方法,不但可以保证视频质量,还能保证观看端用户进行视频操作时能够快速、不跳屏、不卡顿平滑显示新的视频,从而有效的保证了用户的操作使用体验。

本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获取。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。

图1示出了根据本发明的云会议多层视频快速平滑出图方法的消息传递时序图。

图2示出了根据本发明的视频业务请求消息结构图。

图3示出了根据本发明的视频业务响应消息结构图。

图4示出了根据本发明的视频共享端插入IDR帧的流程图。

图5示出了根据本发明的视频观看端根据IDR帧进行平滑切换处理的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。

本发明的一种云会议多层视频快速平滑出图的处理方法,通过观看端自定义视频请求消息,稳定可靠发送至服务端进行快速分发,共享端即刻响应处理,同时视频服务器收到请求后就开始进行平滑切流处理。这样,便能在观看端进行视频业务操作时,快速显示出新的视频画面。所述方法采用稳定快速的消息请求及响应,保证初设IDR帧间隔不变(可根据网络视频通信设置合理数值),多层视频按需插入IDR帧。同时,在观看端采用视频平滑切换处理,以提升用户在进行视频切换业务时的用户体验。

所述云会议多层视频快速平滑出图的处理方法主要实现步骤如下:

首先,接收视频观看端的用户操作以发送可靠请求消息,所述请求消息包括视频宽度和高度,所述可靠消息通过视频服务器通知视频共享端及时发送IDR帧数据。

其次,视频共享端根据不同观看端请求的视频宽度和高度,进行对应某层视频的插入IDR帧处理。

最后,视频共享端将IDR帧发送到观看端,所述观看端根据所述IDR帧进行平滑切换处理。

通过本发明上述方法,实现了观看端进行视频切换、开启新视频、视频浏览翻页等操作后,不黑屏、不卡顿、快速显示出新的正确视频画面,提升了广域互联网视频通信的可靠性和用户体验。

其中,对于所述接收视频观看端发送的可靠请求消息,图1示出了根据本发明的云会议多层视频快速平滑出图方法的消息传递时序图。如图所示:

1)当一场会议中有视频共享端D加入会议,并开启共享视频时,视频共享端D发送多层视频数据到视频服务器F。

2)同时,会议中已有视频观看端B和C,则根据视频观看端需要的视频分辨率,视频服务器F分别向视频观看端B和C发送对应分辨率的某一层视频数据。

3)然后,视频观看端A加入会议,视频观看端B执行视频切换操作,视频观看端C进行视频翻页操作时,视频观看端A、B、C根据当前所需的视频分辨率宽度和高度信息立即生成IFrameReq请求消息,发送到视频服务器F。视频服务器F收到该消息后转发到对应的视频共享端D处理,同时,向视频观看端A、B、C应答IFrameRes响应消息。

4)所述IFrameReq请求消息采用TCP可靠传输,并根据不同观看端与服务器初始消息延时及定时信道延时检测结果进行消息多发处理,目的是保证消息能快速可靠到达视频服务器F。视频业务IFrameReq请求消息结构定义如图2所示。其中,Message Type是Request类型,规定消息序号逐项递增,并设置发送消息的本地时间,以及请求视频的宽度和高度。

5)当视频服务器F收到IFrameReq时,将消息直接转发到对应的视频共享端D。同时,视频共享端D对视频服务器F作出应答IFrameRes,确定接收到IFrameRes当前序列号的消息。视频业务IFrameRes响应消息结构体定义如图3所示。其中,Message Type是Response类型,序列与Request消息一一对应。同时,需要统计设置信道丢包率和数据包延时。

6)整个消息传输采用消息异步处理机制,以便快速响应视频业务消息。同时,为了确保IFrame消息稳定可靠传输。采用消息复制多发机制,确保消息及时从视频观看端A、B、C到达视频服务器F,以及从视频服务器F快速到达视频共享端D。多发机制触发条件和间隔如下表所示。

其中,重发包数最大是5,消息复制发送5次相同序列号的请求消息。为了保证视频业务消息不增加网络抖动和消息的及时性,适当进行等间隔重复发送。如果网络延时超过200ms,发包间隔设置为0即立刻发送,无需在消息队列中等待。

为减小视频传输的延迟,首先将抓取到的视频帧划分为多个块,各个块独立进行编码。将编码产生的比特结果封装后送入发送队列,然后通过TCP通道传输到视频观看端。视频观看端接收到封装包,解码得到各个块并将其显示在观看端屏幕。当发送队列满时,视频共享端停止编码过程,直到发送队列中有足够的空间容纳下一个编码帧。然后利用以下传输方法来减少重传,从而降低传输延迟。

首先,构造一个帧更新缓存FUB(x,y)(0

为实现会议场景下的同步传输,如果某一帧中的一个UNUD为0的块的数据已经接收并且状态更新,则先前帧中同一位置的块的数据标识为过期,不再重传这些数据。具体地,在视频共享端构造每个块的状态表,对于每个数据包,获取数据包中的块集合,将当前集合中的每个块的索引设置为i,如果当前块的UNUD为0,并且所在帧的编号大于i在状态表中的状态为A

视频观看端每隔预设周期都会向视频共享端反馈状态包,包含该时间段内数据包接收的相关信息。如果视频共享端在预设时间内没接收到状态包,则判断当前网络为拥塞状态;如果当前丢包率低于固定阈值,则判断当前网络为空闲状态;其他情况判断为正常状态。

如果判断网络为拥塞,使用限制系数Tt降低当前发送速率参数SV

SV

如果判断网络为空闲,使用提升系数Bt增加当前发送速率参数SV

SV

如果判断网络为正常状态并接近拥塞时,使用微调系数Tt’对当前发送速率参数SV

SV

其中SV

如果视频共享端输出比特率达到设定的最小值时,网络依然处于拥塞状态,则采用以下过程继续降低输送到视频观看端的数据量:

当SV

上述多层视频快速平滑出图的处理方法保证了视频质量和网络传输中视频比特率波动,极大地提升了用户进行视频切换业务的用户体验。

所述视频共享端进行对应某层视频的插入IDR帧处理,进一步包括:视频共享端处理IFrameReq,并插入指定层的IDR帧,封装多层数据发送到视频服务器F。图4示出了具体处理流程,描述如下:

1)初始化视频共享端的视频业务消息接收队列和发送队列,消息接收与发送线程,多层视频标记IDRFlag等;

2)启动TCP通信监听,当收到端口消息,检验消息头是否正确,并解析出消息类型、消息ID、消息序列号、发送时间戳、请求视频的宽度和高度;

3)记录消息接收的时间信息,并根据时间差值得到消息单项网络延时,单位统一使用毫秒(ms),统计当前视频收发包数及丢包率,将丢包率、网络延时、发送时间信息设置到IFrameRes中;

4)将生成的IFrameRes响应消息推送到发送队列,通过发送线程及时推出,收发处理采用并行多线程方式;

5)根据解析得到的请求视频分辨率宽度和高度,从编码器接口中获取到对应的多层视频LayerID,并设置LayerID的标记为1,如IDRFlag[LayerID] = 1。由于多层视频编码分辨率不完全与请求视频分辨率一致,所以采取向上获取方式,例如如果多层视频编码LayerID=0分辨率1280×720、LayerID=1分辨率640×360、LayerID=2分辨率×180,当前请求视频格式720×576,则得到LayerID=0,即IDFlag[0]=1。

6)为避免会议刚开始时,大量用户同一时刻加入会议,插入IDR帧过多瞬态比特率突增会引发网络瞬态不稳定导致数据丢失或拥塞,对请求消息进行去重集中处理,具体处理步骤如下:

(6.1)初始化定时器,并判断是否超过1秒(即1000ms),默认设定1秒集中处理1次,插入IDR帧的频次最快间隔1秒;

(6.2)根据当前多层视频IDRFlag转化为多层视频掩码VideoMask;

(6.3)将VideoMask设置给多层视频编码器,进行插入IDR帧处理;

(6.4)重置定时器和IDRFlag为0。

所述观看端根据IDR帧进行平滑切换处理的流程如图5所示。视频观看端A、B、C根据设备需求请求某一层视频,此时视频服务器F在给观看端发送IFrameRes响应消息后,开启等待新视频的接收以及平滑解码显示处理。具体地:

1)当视频服务器F接收到观看端A、B、C的IFrameReq请求消息时,生成新的IFrameReq发送到共享端D;

2)视频服务器F生成IFrameRes响应消息,统计观看端A、B、C与视频服务器F不同的网络信道状态反馈,对各个观看端进行视频业务消息快速多发处理;

3)设置切换等待标记,在多层视频数据处理线程中解析当前视频数据包的LayerID、帧类型、包组个数等信息;

4)当切换等待标记是“True”时,继续判断当前数据是否为新掩码视频数据,如果是“True”,再次检测当前帧类型是否为IDR帧,如果帧类型是“True”,则新掩码数据是IDR帧数据,设置有效掩码并设切换等待标记为“False”,不再进行切换等待处理;

5)判断数据包是否与有效掩码匹配,如果匹配标记是“True”,则数据包是观看端所需要的,并推送到发送队列发送到观看端;如果匹配标记是“False”,将该数据包丢包。保证视频服务器F发送到观看端A、B、C是单路视频数据,从而节省视频服务器F的下行带宽。

在所述视频共享端,视频帧数据使用快速运动估计,在整帧范围内,除进行块运动向量搜索之外,同时对应全局运动向量搜索和对应局部运动向量搜索。在全局搜索方式中采用迭代搜索,以上次搜索结果位置作为下次搜索的起始点位置,当搜索结果满足一定条件,即当上次搜索结果与下一次搜索结果相同时,以其结果位置为起始点进行局部搜索。将局部搜索结果作为最终结果。

本发明在共享端加入块分类的功能,将帧内的块分为无残差块和参照残差块。对无残差块,运动向量为0并且残差接近于0,因此不传送运动向量和残差信息到观看端。其中无残差块通过以下方式判断:

CS

Loc

在进行残差计算时,采用已解码的关键帧作为参照帧。以下使用已解码的关键帧生成边界信息。在帧中剩余的块中,继续确定属于参照残差类型的块。为了减少共享端计算复杂度,采用快速运动块搜索算法。

设定全局运动向量搜索迭代次数最大值为M

在传送运动向量信息时通过以下编码流程来传输:

(a)对运动向量信息,分别采用定长编码和指数编码,取码字长度较小的比特率为rto1;

(b)将无残差块类型和参照残差块类型进行归类,此时的比特率为:

rto2=ety(MD1,MD2)*cdlen+2*cnt(MD(无残差块类型))

MD1=MD(无残差块类型)∪MD(参照残差块类型)

MD2=MD(普通块类型)

其中,块类型信息MD()表示块的类型对应的类型,cnt()为对应类型的块数量,ety()计算对应信息的熵,cdlen为待编码码字长度。

(c)将总比特率计算为以上两个比特率之和。

Arto=rtol+rto2。

在观看端,得到对应的块类型信息和运动向量信息后,对无残差块和参照残差块进行重建。对无残差块,直接将前一参照帧的相同位置的块作为最后的重建块。对于参照残差块,利用运动向量,将对应的运动补偿的块作为最后的重建块。而对于剩余的普通块,需要在观看端生成边界信息和残差信息。

在本发明的进一步具体实施例中,为支持视频会议的远程输入,所述视频服务器进一步包括交互绘制平台。交互绘制平台作为分别由三个视频观看端的共享空间,且支持视频观看端各个会议用户的远程输入的显示。也就是说,多个视频观看端用户分别可提供远程输入,且将所有的输入均集成到交互绘制平台。远程输入可设置为通过用户通过键盘,或通过触控笔而书写在显示器或相关联的绘制板上。

通过视频服务器所传输至用户的共享视频帧可先由该服务器从视频共享端检索,或可从诸如摄影机或其他现场视频源提供至服务器。共享视频帧可作为主视频层。与独立的视频观看端相关联的用户使用上述输入,以将远程输入传输到显示在显示器的所接收的共享视频帧的主视频层的上方。

在多个视频观看端分别提供的远程输入被提供至交互绘制平台之后,所述交互绘制平台将协同绘制指令传输回各个视频观看端。所述协同绘制指令用于绘制待组合的远程显示叠加层,并显示在各个视频观看端的主视频层上。叠加层包含对应于来自各个独立视频观看端的远程输入的每一个分量。

多个视频观看端分别绘制来自视频服务器的共享视频帧,以提供主视频层,且并绘制来自交互绘制平台的协同绘制指令,以提供包含来自所有视频观看端的待组合的远程输入的远程显示叠加层。可通过适当修正主视频层而实现组合多个用户的远程输入的叠加,例如观看端设备中可包括独立的主视频缓存和叠加帧缓存。

交互绘制平台可聚集并协调来自多个视频观看端的会议群组的远程显示指令顺序。例如,交互绘制平台可生成不同组合的协同绘制指令,以供视频观看端的会议用户使用,视频观看端的会议用户无需从交互绘制平台分别接收其自己的远程显示信息。因此,观看端A仅需从交互绘制平台接收用于观看端B、C的远程输入的协同绘制指令,以此类推。可选地,交互绘制平台可配置以组合来自所有视频观看端的远程输入,形成单个共同组合的协同绘制指令,然后将其传输至视频观看端的各个会议用户,以用于生成叠加层。

交互绘制平台以与来自视频服务器的相关联的共享视频帧同步而将对应的协同绘制指令记录至视频共享端。同步信号可在视频服务器与交互绘制平台交换。而且允许视频共享端以与来自共享该过程的各个用户相关远程输入同步来提供所存储的视频的播放。

假设会议群组的视频观看端包含视频观看端A和B。绘制输入通过远程连接而提供至交互绘制平台。相同的绘制输入被推送至本地视频渲染模块。视频渲染模块的另一输入通过远程连接而接收来自交互绘制平台的远程协同显示绘制指令。

视频渲染模块结合从交互绘制平台所接收的协同绘制指令与来自用户的绘制输入,用于生成叠加层。当本地绘制指令从相关联的绘制用户直接提供至视频渲染模块时,所提供至各个视频观看端A和B的协同绘制指令的组合将排除生成于该用户之内的本地绘制指令。或者相同组合的绘制指令可由交互绘制平台通过视频渲染模块传输至各个视频观看端,而在给定的用户内的视频渲染模块仅本地使用所接收的命令组合的一部分。

如果观看端A相关用户开始绘制界面对象。观看端A的绘制用户接收多个绘制输入作为事件顺序。其将多个事件编码为远程显示命令顺序,例如该远程显示命令顺序可包含用于终端标识符、交互绘制平台标识符、绘制动作命令、几何形状、颜色信息以及相对于从视频服务器所接收的共享视频帧的时间和顺序编号。其中交互绘制平台标识符也称为共享虚拟远程显示空间标识符,例如可包含识别视频观看端的特殊协同会议群组的远程显示会议群组标识符。

绘制用户传输编码后的绘制输入至交互绘制平台,作为远程显示命令顺序。远程显示命令顺序可被编码以降低绘制输入信号连接的带宽需求。交互绘制平台通过远程连接而将远程显示命令顺序重新分配至共享交互绘制平台的所有视频观看端(在此实施例中,A和B)。在生成远程显示叠加层中,各个会议视频观看端解析远程显示命令顺序,并恢复对应的绘制对象,以叠加至视频存储器帧缓存中。同时,视频观看端对独立的主视频存储器帧缓存并不压缩该共享视频帧。视频观看端各个会议用户在视频渲染模块中组合未压缩的共享主视频层的帧与远程显示叠加层的独立的帧,而在显示器上绘制组合后的视频信号。当前会议的每个用户都能接收到具有组合后的远程显示叠加的相同的共享视频。

视频观看端还可将多个交互绘制控制命令传输至交互绘制平台,作为远程显示命令顺序的一部分。多个控制命令的实例包含以下:清空交互绘制平台、请求所有终端暂停视频、请求所有终端停止绘制现场视频,而提取截图,以及请求所有终端继续先前所暂停的共享现场视频绘制。

对于视频渲染模块的视频帧缓存,其包括主共享视频帧缓存和远程显示叠加帧缓存。主共享视频帧缓存用于存储从视频服务器所接收的共享视频,而远程显示叠加帧缓存用于存储远程显示叠加,所述远程显示叠加可结合本地的远程输入与通过交互绘制平台而从其他视频观看端接收的多个远程输入。在某些时间,并不需要更新任一个缓存,并且两个缓存可以是异步的。因此在一个实施例中,共享视频帧的缓存更新由内容驱动。例如,如果共享的视频流是720/60视频流,则主视频帧缓存每秒更新60次。作为另一实施例,如果使用画面作为共享的视觉内容而替换视频,则不更新共享视觉内容帧缓冲,直到画面发生变化。还可使用其他类型的缓存和绘制配置,并生成具有用户间共享的视觉内容组合的远程显示叠加。

其中,来自特定视频观看端的绘制输入被直接传输到本地视频渲染模块,以生成快速本地的绘制响应。在同一时刻,该绘制事件被编码且封装为命令,并传输至交互绘制平台。然后,所述交互绘制平台重新分配该命令至共享相同交互绘制平台的所有视频观看端,包含传输该命令的特定视频观看端。上述流程可同时生成于多个视频观看端,多个用户分别可在同一时间传输命令。因为不同的命令识别传输的视频观看端和交互绘制平台,所以特定的视频观看端可仅跳过从交互绘制平台所返回的识别其本身为传输的视频观看端的任何命令。这种异步操作可确保快速的本地绘制响应,以及快速的远程绘制更新。交互绘制平台进一步利用视频同步时间码来记录远程显示命令,以进行实时播放。

本领域技术人员可以理解,上述实施例中描述的观看端数量、视频格式和通信类型仅为举例。本领域技术人员可以根据需要而采用任何数量的观看端,并采用任何常规视频编码格式和通信方式。

可以看出,本发明的上述方案实现了视频业务消息可靠传输,视频共享端按需指定插入IDR帧,视频观看端平滑处理显示视频图像。与现有技术使用预设编码参数,通过设置视频比特率、视频GOP值、场景切换等参数来缩放IDR帧的间隔相比,本发明的云会议多层视频快速平滑出图的处理方法,在相同视频编码比特率下视频质量不会被降低,网络传输中视频比特率抖动出现的频率也不会增加,只有当视频切换等业务发生时会出现一瞬的比特率波动,保证观看端用户进行视频操作时能够快速、不跳屏、不卡顿平滑显示新视频,极大地提升了用户进行视频切换业务的用户体验及感受。

尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 云会议多层视频快速平滑出图的方法
  • 云会议多层视频快速平滑出图的方法
技术分类

06120112527155