丢帧处理方法、设备及系统

文档序号:1642127 发布日期:2019-12-20 浏览:19次 >En<

阅读说明:本技术 丢帧处理方法、设备及系统 (Frame loss processing method, device and system ) 是由 唐春平 范志刚 于 2019-08-19 设计创作,主要内容包括:本公开提供一种丢帧处理方法、设备及系统,涉及计算机技术领域,所述方法包括第一设备获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备;第一设备获取与丢帧通知消息对应的丢帧接收设备标识;第一设备根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。本公开能够解决现有接收端出现丢帧,如果对接收到丢失掉的图像帧进行重传,则会导致接收端的实时画面播放发生延时,如果发送端立刻切换参考帧,则会使得路由设备侧的并发数据量瞬间增大的问题。(The invention provides a frame loss processing method, equipment and a system, relating to the technical field of computers, wherein the method comprises the steps that first equipment acquires a frame loss notification message and forwards the frame loss notification message to second equipment; the second equipment determines an image frame to be coded, codes the image frame to be coded into a first non-reference frame and a reference frame at the same time and sends the first non-reference frame and the reference frame to the first equipment; the first equipment acquires a lost frame receiving equipment identification corresponding to the lost frame notification message; and the first equipment sends the reference frame to the corresponding frame loss receiving equipment according to the frame loss receiving equipment identification. The method and the device can solve the problems that the frame loss occurs in the existing receiving end, if the lost image frame is retransmitted, the real-time image playing of the receiving end is delayed, and if the sending end switches the reference frame at once, the concurrent data volume of the routing equipment side is increased instantly.)

丢帧处理方法、设备及系统

技术领域

本公开涉及计算机技术领域,尤其涉及丢帧处理方法、设备及系统。

背景技术

实时画面一对多传输是指:将同一个实时画面源分发给多个接入的接收设备(接收端)。这种场景下,发送端(也就是发送设备,S端)对采集图像进行编码,由图像路由器(VGR)实现编码图像的分发,接收端(R端)对各自接收到的编码图像进行解码显示。

在上述方案中,当S端对图像进行帧间预测编码时,编码后的非参考帧需要依据参照帧的内容进行编码,这种情况下,一旦接收端出现丢帧,有可能导致非参考帧无法正常解码,也就会出现花屏或者跳帧的问题。如果对接收到丢失掉的图像帧进行重传,则会导致接收端的实时画面播放发生延时。如果S端立刻切换参考帧,则会使得VGR侧的并发数据量瞬间增大,尤其是,当网络状态不好,频繁出现丢帧的情况下,如果S端不断切换非参考帧,将对VGR一侧的带宽产生非常大的影响。

发明内容

本公开实施例提供一种丢帧处理方法、设备及系统,能够解决现有接收端出现丢帧,如果对接收到丢失掉的图像帧进行重传,则会导致接收端的实时画面播放发生延时,如果S端立刻切换I帧,则会使得VGR侧的并发数据量瞬间增大的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种丢帧处理方法,该方法包括:

第一设备获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;

第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备;

第一设备获取与丢帧通知消息对应的丢帧接收设备标识;

第一设备根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

在一个实施例中,上述方法还包括:

第一设备将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

在一个实施例中,丢帧通知消息还携带有丢帧的帧号,第一设备获取丢帧通知消息之后,所述方法还包括:

根据所述丢帧的帧号判断对应的丢帧是否为参考帧;

第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备包括:

如果所述丢帧为参考帧,第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备。

在一个实施例中,上述方法还包括:

如果所述丢帧为非参考帧,第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧全部编码为第二非参考帧发送给第一设备;

第一设备将所述第二非参考帧发送给所有的接收设备。

在一个实施例中,根据所述丢帧的帧号判断对应的丢帧是否为参考帧包括:

查询所述丢帧的帧号是否存在与预设参考帧列表中,如果存在,则判断所述丢帧为参考帧;

如果不存在,则判断所述丢帧为非参考帧;其中,预设参考帧列表中存储有所有参考帧的帧号。

根据本公开实施例的第二方面,提供一种丢帧处理方法,该方法包括:

获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;

接收第二设备发送的参考帧和第一非参考帧;其中,第二设备将即将进行编码的图像帧同时编码为第一非参考帧和参考帧;

获取与丢帧通知消息对应的丢帧接收设备标识;

根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

在一个实施例中,上述方法还包括:

将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

根据本公开实施例的第三方面,提供一种丢帧处理系统,该系统包括第一设备、第二设备和至少一个接收设备;其中,

第一设备获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;

第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为参考帧和第一非参考帧发送给第一设备;

第一设备获取与丢帧通知消息对应的丢帧接收设备标识;

第一设备根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

在一个实施例中,第一设备将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

在一个实施例中,丢帧通知消息还携带有丢帧的帧号,第一设备获取丢帧通知消息之后,根据所述丢帧的帧号判断对应的丢帧是否为参考帧;

第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备包括:

如果所述丢帧为参考帧,第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备。

在一个实施例中,如果所述丢帧为非参考帧,第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧全部编码为第二非参考帧发送给第一设备;

第一设备将所述第二非参考帧发送给所有的接收设备。

在一个实施例中,根据所述丢帧的帧号判断对应的丢帧是否为参考帧包括:

查询所述丢帧的帧号是否存在与预设参考帧列表中,如果存在,则判断所述丢帧为参考帧;

如果不存在,则判断所述丢帧为非参考帧;其中,预设参考帧列表中存储有所有参考帧的帧号。

根据本公开实施例的第四方面,提供一种设备,该设备包括:

第一获取模块,用于获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;

接收模块,用于接收第二设备发送的参考帧和第一非参考帧;其中,第二设备将即将进行编码的图像帧同时编码为第一非参考帧和参考帧;

第二获取模块,用于获取与丢帧通知消息对应的丢帧接收设备标识;

第一发送模块,用于根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

在一个实施例中,该设备还包括:

第二发送模块,用于将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

本方案应用于实时画面一对多传输的场景下,主要包括以下技术方案:第一设备获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备;第一设备获取与丢帧通知消息对应的丢帧接收设备标识;第一设备根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。这样,既不会使VGR处的即时带宽突然发生显著增大,也能够确保发生丢帧的R端以及其它R端的图像能够正常解码,不影响后续图像的解码和播放;而且不需要增加S端的处理开销。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种丢帧处理方法的流程图;

图2是本公开实施例提供的一种丢帧处理方法的流程图;

图3是本公开实施例提供的一种丢帧处理系统的结构图;

图4是本公开实施例提供的一种设备的结构图;

图5是本公开实施例提供的一种设备的结构图;

图6是本公开实施例提供的丢帧处理方法使用场景示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

帧间预测编码是利用视频图像帧间的相关性,即时间相关性,来达到图像压缩目的的一种编码方式。本公开中,我们将所有图像帧根据是否对其它帧有参考作用可以大致上分为:参考帧(I帧)和非参考帧(P帧)。参考帧是指包含完整信息、不需要依赖其它图像帧进行解码的图像帧;参考帧是指至少对一帧图像有参考作用的图像帧,即,当一个图像帧为参考帧时,则至少有一帧图像需要依赖该图像进行编码。

显而易见的是,参考帧的丢失将会使后续的至少一帧、多帧、甚至是后续所有帧不能正常解码。

在实时视频传输中,常见的帧间编码方式至少有以下几种:

第一种:视频中除第一帧之外,其它帧均参考其前一帧进行编码,直至编码完整个视频;

第二种:将视频划分为图像组(GOP),每一个GOP中各帧的组成方式为:IPPPPPPPPP,所有P帧均参考第一个I帧进行编码;该方法在H264编码中有应用;

第三种:将视频划分为多个GOP,每一个GOP中各帧的组成方式为:IPPPPPPPPP,每一个P帧参考其前一帧(可能是I,也可能是P)进行编码;

第四种编码方式:每一个图像帧与其前面的预设数量(比如16)帧图像进行对比,将相似度最高的图像作为其参考帧。

除第二种方式外,其它编码方式中大部分图像帧均是参考帧,因此,在视频传输过程中,一旦出现丢帧可以直接进行丢帧处理;而第二种方式中,非参考帧的数量大于参考帧的数量,当非参考帧丢失时,并不会对后续的图像解码产生影响,因此,在视频传输过程中,可以根据具体丢帧类型来确定是否进行丢帧处理。

基于以上分析,下面通过两个具体实施例做详细说明。

实施例一

该实施例所述方案可以针对上面举例的第一种、第三种及第四种情况,但是不限于这几种情况,只要是参考帧数量大于非参考帧数量的帧间预测编码方式,都可以采用上述方案进行丢帧处理。

图1是本公开实施例提供的一种丢帧处理方法的流程图,如图1所示,该丢帧处理方法包括以下步骤:

步骤101、第一设备获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;

其中,所述丢帧通知消息携带有指示发生丢帧的标识信息。

可选的,第一设备是VGR,第二设备是发送端S端。

R端进行丢帧监测,判断是否发生丢帧事件;

具体的,R端对接收到图像帧信息中的帧号的连续性进行检测,当出现不连续的情况时,即确认发生了丢帧事件。

实际应用时,各帧图像编码信息在帧号上存在一定的规律,且各帧图像编码信息是按照顺序发送的,因此在接收端可以根据帧号的设置规律来检测帧号是否连续,如果不连续则可以确定发生了丢帧;

另外,也可以根据往返时延(Round-Trip Time,RTT)以及报文发送间隔时间综合判断是否发生了丢帧事件。

当发生丢帧事件时,R端向VGR上报丢帧通知消息;

步骤102、第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备;

步骤103、第一设备获取与丢帧通知消息对应的丢帧接收设备标识;

具体的,可以通过VGR和每个R之间的通道获取丢帧接收设备标识,也可以接收来自丢着设备的上报消息获取丢帧接收设备标识。

步骤104、第一设备根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

可选的,第一设备将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

这里,当第二设备接收到丢帧通知消息时,即对尚未进行编码但即将就那些编码的帧进行处理,以保证后续视频正常解码显示,也保证视频传输的实时性,而编码过的帧则不再重新编码。

之后,S端按照原有编码流程持续进行编码,并将编码结果经由VGR分发给各个R端。

实施例二

本公开实施例中,当所采用的帧间预测编码方式使得编码中所产生的参考帧数量小于非参考帧数量时,在一种优选技术方案中,可以根据丢帧类型确定是否进行丢帧处理,目的是,避免当丢掉的图像帧为非参考帧时,执行不必要的丢帧处理。

在该实施例中,丢帧通知消息携带有丢帧的帧号。

步骤102之前,该丢帧处理方法还包括参考帧判断的步骤,具体为:

第一设备根据所述丢帧的帧号判断对应的丢帧是否为参考帧;

如果是参考帧,执行步骤102,如果不是参考帧,第二设备确定即将进行编码的图像帧,并将即将进行编码的图像帧全部编码为第二非参考帧发送给第一设备;第一设备将所述第二非参考帧发送给所有的接收设备。

具体的,第一设备根据所述丢帧的帧号判断所述丢帧是否为参考帧的具体方式为:

查询所述丢帧的帧号是否存在于预设参考帧列表中,如果存在,则判断所述丢帧为参考帧;

如果不存在,则判断所述丢帧为非参考帧;其中,预设参考帧列表中存储有所有参考帧的帧号。

在编码过程中,第一设备参考帧列表中存储有所有参考帧的帧号。

当接收到丢帧通知消息时,根据参考帧列表判断丢帧通知消息中的帧号所对应的丢帧是否为参考帧。

其他步骤和实施例一相同,在此不再赘述。

图2是本公开实施例提供的一种丢帧处理方法的流程图,如图2所示的丢帧处理方法包括:

步骤201、获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;

步骤202、接收第二设备发送的第一非参考帧和参考帧;其中,第二设备将即将进行编码的图像帧同时编码为第一非参考帧和参考帧;

步骤203、获取与丢帧通知消息对应的丢帧接收设备标识;

步骤204、根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

可选的,所述方法还可以包括:

步骤205、将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

图3是本公开实施例提供的一种丢帧处理系统的结构图,如图3所示,该丢帧处理装置30包括接第一设备301、第二设备302和至少一个接收设备303;其中,第一设备301获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备302;第二设备302确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备301;第一设备301获取与丢帧通知消息对应的丢帧接收设备标识;第一设备根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备303。

在一个实施例中,第一设备301将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

在一个实施例中,丢帧通知消息还携带有丢帧的帧号,第一设备301获取丢帧通知消息之后,根据所述丢帧的帧号判断对应的丢帧是否为参考帧;

如果所述丢帧为参考帧,第二设备302确定即将进行编码的图像帧,并将即将进行编码的图像帧同时编码为第一非参考帧和参考帧发送给第一设备。

在一个实施例中,如果所述丢帧为非参考帧,第二设备302确定即将进行编码的图像帧,并将即将进行编码的图像帧全部编码为第二非参考帧发送给第一设备;

第一设备301将所述第二非参考帧发送给所有的接收设备。

在一个实施例中,根据所述丢帧的帧号判断对应的丢帧是否为参考帧包括:

查询所述丢帧的帧号是否存在与预设参考帧列表中,如果存在,则判断所述丢帧为参考帧;

如果不存在,则判断所述丢帧为非参考帧;其中,预设参考帧列表中存储有所有参考帧的帧号。

可选的,第一设备是路由设备VGR,第二设备是发送端。

图4是本公开实施例提供的一种设备的结构图,如图4所示,该设备40包括第一获取模块401、接收模块402、第二获取模块403和第一发送模块404,其中,第一获取模块401,用于获取丢帧通知消息,并将所述丢帧通知消息转发给第二设备;接收模块402,用于接收第二设备发送的第一非参考帧和参考帧;其中,第二设备将即将进行编码的图像帧同时编码为第一非参考帧和参考帧;第二获取模块403,用于获取与丢帧通知消息对应的丢帧接收设备标识;第一发送模块404,用于根据所述丢帧接收设备标识,将所述参考帧发送给对应的丢帧接收设备。

图5是本公开实施例提供的一种设备的结构图,如图5所示,该设备50包括第一获取模块501、接收模块502、第二获取模块503、第一发送模块504和第二发送模块505,第二发送模块505用于将所述第一非参考帧发送给除所述丢帧接收设备以外的其他接收设备。

下面通过一个具体示例,对本发明方案做以下详细说明。

本公开的典型应用场景如图6所示,参照图6,一个实时画面源S(第二设备)中的编码图像通过VGR(第一设备)分发至三个不同的接收设备R。其中,S为任何具备视频画面采集编码传输能力的设备。R可以为任何具备视频图像数据接收、解码、显示能力的设备。

参照图6,S端在编码传输图像过程中,由于网络速度的影响,导致R3中的产生丢帧(第3帧丢失),或者,R3新接入(从第4帧开始接收,可认为是一种特殊的丢帧)。

此时,按照本公开所提供的技术方案,有以下两种处理方式:

第一种:R3检测到丢帧事件时向VGR上报丢帧通知消息,VGR记录R3丢帧的情况(实际应用中VGR会记录各个R端丢帧的情况),并将所述丢帧通知消息转发给S端,S端接收到丢帧通知消息之后,从丢帧位置开始,将下一帧图像,也就是第4帧图像同时编码为I帧和P帧发送给VGR,VGR记录R1、R2和R3等设备的设备标识,根据这些设备标识将I帧发送给R3,同时将P帧发送给R1和R2。

第二种:R3检测到丢帧事件时,向VGR上报丢帧通知消息。VGR接收到丢帧通知消息后,记录R3丢帧的情况(实际应用中VGR会记录各个R端丢帧的情况),同时VGR将丢帧通知消息转发给S端;S端接收到丢帧信息以后,判断丢失的帧是否为参考帧,如果是参考帧,则从丢帧位置开始,将下一帧图像,也就是第4帧图像同时编码为I帧和P帧发送给VGR,VGR将I帧发送给R3,同时将P帧发送给R1和R2;如果根据S端的判断,丢失的帧不是参考帧,则将下一帧图像,也就是第4帧图像都编码为P帧发送给VGR,VGR将P帧发送给R1、R2和R3。

本方案应用于实时画面一对多传输的场景下,主要包括以下技术方案:当发生丢帧事件时,R端向VGR上报丢帧信息;VGR将所述丢帧信息转发给S端;S端根据所述丢帧信息进行丢帧处理,具体的丢帧处理是将最新的一帧图像同时编码为I帧和P帧,将I帧发送给发生丢帧的R端,同时将P帧发送给其它R端。这样,既不会使VGR处的即使带宽突然发生显著增大,也能够确保发生丢帧的R端以及其它R端的图像能够正常解码,不影响后续图像的解码和播放。

基于上述图1和图2对应的实施例中所描述的丢帧处理方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read Only Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1和图2对应的实施例中所描述的丢帧处理方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种应用于JPEG2000的图像预处理VLSI结构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类