一种基于分散编码器的抗弱网方法及装置转让专利

申请号 : CN202211065648.8

文献号 : CN115150639B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董羽生李瑞亮贾宏伟郭建君

申请人 : 北京蔚领时代科技有限公司

摘要 :

本申请提供的一种基于分散编码器的抗弱网方法和装置,所述方法包括:获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。本申请通过多路并行的编码,对网络延迟具有极高的容忍度,使得有效降低因网络延迟造成的视频卡顿。

权利要求 :

1.一种基于分散编码器的抗弱网方法,其特征在于,包括:

获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;每一路链接对应一路编码器,视频流依照哈希算法进行分组,所述预设规则包括哈希算法;

在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;所述编号用于排序,与编码一同封装后进行传输,判断所述编码是否乱序,若所述编码的乱序达到预设阈值,则执行抛帧;所述分散编码的各个分组根据所述分组在视频中的时序,进行排序,然后计算不同线路的传输速度,根据所述传输速度和所述时序进行编码的分组和线路的对应设置;在进行所述线路选择时,根据云服务器存储的所述传输速度计算每个所述线路的速度波动,根据所述速度波动设置优先选择项;

具体的,所述速度波动的计算公式如下:

所述A为速度波动值,所述P为预设时间之前的平均差,所述 是速度,所述n是预设时间内速度的个数;

根据所述传输速度,计算一个编码分组传输到客户端的预计时刻,然后将所述预计时刻进行编码分组的排序,将所述预计时刻的排序与编码分组的时序进行一一对应,来确定每个编码分组的传输线路;

在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。

2.根据权利要求1所述基于分散编码器的抗弱网方法,其特征在于,所述分散编码采用的是多路编码器执行的,每个分组分别启动一个编码器。

3.根据权利要求1所述基于分散编码器的抗弱网方法,其特征在于,所述帧视频为云游戏场景,所述预设阈值为0。

4.一种基于分散编码器的抗弱网装置,其特征在于,包括:

编码模块,用于获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;每一路链接对应一路编码器,视频流依照哈希算法进行分组,所述预设规则包括哈希算法;

传输模块,用于在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;所述编号用于排序,与编码一同封装后进行传输,判断所述编码是否乱序,若所述编码的乱序达到预设阈值,则执行抛帧;所述分散编码的各个分组根据所述分组在视频中的时序,进行排序,然后计算不同线路的传输速度,根据所述传输速度和所述时序进行编码的分组和线路的对应设置;在进行所述线路选择时,根据云服务器存储的所述传输速度计算每个所述线路的速度波动,根据所述速度波动设置优先选择项;

具体的,所述速度波动的计算公式如下:

所述A为速度波动值,所述P为预设时间之前的平均差,所述 是速度,所述n是预设时间内速度的个数;

根据所述传输速度,计算一个编码分组传输到客户端的预计时刻,然后将所述预计时刻进行编码分组的排序,将所述预计时刻的排序与编码分组的时序进行一一对应,来确定每个编码分组的传输线路;

解码模块,用于在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。

5.根据权利要求4所述基于分散编码器的抗弱网装置,其特征在于,所述分散编码采用的是多路编码器执行的,每个分组分别启动一个编码器。

6.根据权利要求4所述基于分散编码器的抗弱网装置,其特征在于,所述帧视频为云游戏场景,所述预设阈值为0。

说明书 :

一种基于分散编码器的抗弱网方法及装置

技术领域

[0001] 本发明涉及视频编码领域,尤其涉及一种基于分散编码器的抗弱网方法。本申请还涉及一种基于分散编码器的抗弱网装置。

背景技术

[0002] 现有技术中,采用基于UDP(User Datagram Protocol,用户数据报协议)的RTP(Real‑time Transport Protocol,实时传输协议)进行不同类型的数据传输,需要设置不同的数据传输通道,这其中设置每一个数据通道前,都需要建立一个对应的网络连接。
[0003] 在网络交互过程中,建立连接的动作需要消耗的资源很大,需要额外的通信资源,因此导致会出现较大的延迟。
[0004] 而云游戏、VR等应用场景,对延迟要求很高,通常要求延迟范围在1 ms ‑100ms,现有基于RTP的数据传输技术在弱网环境下是无法很好的满足该延迟需求的。为此,专利《2021107652576》中记载了一种与多通道交互协议的数据传输系统,可以有效解决上述技术问题,但是依然存在弱网对抗性不足的问题。

发明内容

[0005] 为了解决上述背景技术中提到的问题,本发明提供一种基于分散编码器的抗弱网方法。
[0006] 本申请提供的一种基于分散编码器的抗弱网方法,包括:
[0007] 获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;
[0008] 在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;
[0009] 在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。
[0010] 可选的,所述预设规则包括哈希算法。
[0011] 可选的,所述分散编码采用的是多路编码器执行的,每个分组分别启动一个编码器。
[0012] 可选的,还包括判断所述编码是否乱序,若所述编码的乱序达到预设阈值,则执行抛帧。
[0013] 可选的,所述帧视频为云游戏场景,所述预设阈值为0。
[0014] 本申请还提供一种基于分散编码器的抗弱网装置,包括:
[0015] 编码模块,用于获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;
[0016] 传输模块,用于在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;
[0017] 解码模块,用于在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。
[0018] 可选的,所述预设规则包括哈希算法。
[0019] 可选的,所述分散编码采用的是多路编码器执行的,每个分组分别启动一个编码器。
[0020] 可选的,还包括判断所述编码是否乱序,若所述编码的乱序达到预设阈值,则执行抛帧。
[0021] 可选的,所述帧视频为云游戏场景,所述预设阈值为0。
[0022] 本申请相对于现有技术的优点是:
[0023] 本申请提供的一种基于分散编码器的抗弱网方法,包括:获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。本申请通过多路并行的编码,对网络延迟具有极高的容忍度,使得有效降低因网络延迟造成的视频卡顿。

附图说明

[0024] 图1为本发明中基于分散编码器的抗弱网流程图。
[0025] 图2是本申请中一路视频的处理流程图。
[0026] 图3为本发明中基于分散编码器的抗弱网装置示意图。

具体实施方式

[0027] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于多通道交换协议的数据传输系统的具体实施方式及其功效,详细说明如后。
[0028] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
[0029] 本申请提供的一种基于分散编码器的抗弱网方法,包括:获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码;在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输;在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。本申请通过多路并行的编码,对网络延迟具有极高的容忍度,使得有效降低因网络延迟造成的视频卡顿。
[0030] 图1为本发明中基于分散编码器的抗弱网流程图;
[0031] 请参照图1所示,S101获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码。
[0032] 所述一路视频是在云端获取并处理的,该云端是指云服务器,所述云服务器中设有运行云游戏的虚拟机,该虚拟机启动并运行游戏后,将产生至少一路视频,传输到客户端显示。
[0033] 所述视频在传输到所述客户端前,在云端进行处理,包括分组、打包发送等。
[0034] 图2是本申请中一路视频的处理流程图。
[0035] 请参照图2所示,S201将视频帧进行分组。
[0036] 每一路链接对应一路编码器,视频帧依照哈希算法进行分组。
[0037] 具体的,在本申请中,所述视频的帧设置有编号,或者称之为序号。基于所述编号进行预算规则的计算分组,所述分组的大小是可设置的,本领域技术人员可以根据实际情况进行设置。所述预设规则即所述哈希算法。
[0038] S202将分组进行编码。
[0039] 所述分组在处理完成后,则进行编码,所述编码是采用多路编码去进行的,每个分组有一个编码器进行编码。
[0040] 在完成所述编码后,将所述编码的分组进行打包并发送。
[0041] 请参照图1所示,S102在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输。
[0042] 所述帧的编号用于排序,即在进行视频播放前按照所述帧的编号进行视频组合。因此传输所述视频的数据时,则需要将所述编号的信息一同传递。
[0043] 本申请中,所述编号与编码一同封装后进行传输。
[0044] 在传输前,所述云服务器将基于向所述客户端发送数据的返回数据判断当前网络波动程度,并基于所述波动程度对所述传输线路进行选择。
[0045] 具体的,所述传输线路的传输量与时间的比值为传输速度,判断所述传输速度的大小,然后根据所述传输速度的排序进行线路选择。
[0046] 所述云服务器存储所述每个线路的传输速度,并在进行所述线路选择时,根据已经存储的所述传输速度计算每个所述线路的速度波动,根据所述速度波动设置优先选择项。
[0047] 具体的,所述速度波动的计算公式如下:
[0048]
[0049] 所述A为波动值,所述P为预设时间之前的平均差,所述 QUOTE    是速度,所述n是预设时间内速度的个数。所述A越小,则其优先权越大。
[0050] 在实际的传输过程中,所述不然的编码可以通过不同的线路进行传输,也可以通过相同的线路组合,并在所述客户端进行视频组合。
[0051] 优选的,根据所述传输速度将不同大小的编码进行传输,并将相同大小的编码通过所述速度和所述波动在预设的差值区间内的线路进行传输。
[0052] 本申请中,所述分散编码的各个分组可以是不同大小的,也可以是相同大小的,根据所述分组在视频中的时序,进行排序。然后计算不同线路的传输速度,根据所述传输速度和所述时序进行所述编码的分组和线路的对应设置。
[0053] 具体的,根据所述传输速度,计算一个编码分组传输到客户端的预计时刻,然后将所述时刻进行编码分组的排序,既将所述时刻的排序与编码分组的时序进行一一对应。此时即可确定每个编码分组的传输线路。
[0054] 请参照图1所示,S103在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。
[0055] 所述客户端接收到所述编码后,将根据编码数据启动对应的多路解码器进行解码,然后按照所述编号对所述帧进行合并,生成视频并播放。这其中,在多路编码器的情况下,因为视频帧哈希分组,互相穿插,当发生网络卡顿,产生丢帧时,按帧序号进行只会使这数百毫秒内的帧率降低,因为其他分组的视频帧会正常播放。因此,本申请的技术方案可以通过降低帧率减少卡顿。
[0056] 进一步的,还包括判断所述编码是否乱序,若所述编码的乱序达到预设阈值,则执行抛帧。当所述帧视频为云游戏场景,所述预设阈值为0。
[0057] 本申请还提供一种基于分散编码器的抗弱网装置,包括:编码模块301、传输模块302、解码模块303。
[0058] 图3为本发明中基于分散编码器的抗弱网装置示意图。
[0059] 请参照图3所示,编码模块301,用于获取一路视频流,将该视频流按照预设规则分组,并根据所述分组进行分散编码。
[0060] 所述一路视频是在云端获取并处理的,该云端是指云服务器,所述云服务器中设有运行云游戏的虚拟机,该虚拟机启动并运行游戏后,将产生至少一路视频,传输到客户端显示。
[0061] 所述视频在传输到所述客户端前,在云端进行处理,包括分组、打包发送等。
[0062] 每一路链接对应一路编码器,视频帧依照哈希算法进行分组。
[0063] 具体的,在本申请中,所述视频的帧设置有编号,或者称之为序号。基于所述编号进行预算规则的计算分组,所述分组的大小是可设置的,本领域技术人员可以根据实际情况进行设置。所述预设规则即所述哈希算法。
[0064] 所述分组在处理完成后,则进行编码,所述编码是采用多路编码去进行的,每个分组有一个编码器进行编码。
[0065] 在完成所述编码后,将所述编码的分组进行打包并发送。
[0066] 请参照图3所示,传输模块302,用于在所述视频流分组前为每一帧视频流编号,在所述分组完成后将所述编号和帧视频封装以进行流式传输。
[0067] 所述帧的编号用于排序,即在进行视频播放前按照所述帧的编号进行视频组合。因此传输所述视频的数据时,则需要将所述编号的信息一同传递。
[0068] 本申请中,所述编号与编码一同封装后进行传输。
[0069] 在传输前,所述云服务器将基于向所述客户端发送数据的返回数据判断当前网络波动程度,并基于所述波动程度对所述传输线路进行选择。
[0070] 具体的,所述传输线路的传输量与时间的比值为传输速度,判断所述传输速度的大小,然后根据所述传输速度的排序进行线路选择。
[0071] 所述云服务器存储所述每个线路的传输速度,并在进行所述线路选择时,根据已经存储的所述传输速度计算每个所述线路的速度波动,根据所述速度波动设置优先选择项。
[0072] 具体的,所述速度波动的计算公式如下:
[0073]
[0074] 所述A为波动值,所述P为预设时间之前的平均差,所述 QUOTE    是速度,所述n是预设时间内速度的个数。所述A越小,则其优先权越大。
[0075] 在实际的传输过程中,所述不然的编码可以通过不同的线路进行传输,也可以通过相同的线路组合,并在所述客户端进行视频组合。
[0076] 优选的,根据所述传输速度将不同大小的编码进行传输,并将相同大小的编码通过所述速度和所述波动在预设的差值区间内的线路进行传输。
[0077] 本申请中,所述分散编码的各个分组可以是不同大小的,也可以是相同大小的,根据所述分组在视频中的时序,进行排序。然后计算不同线路的传输速度,根据所述传输速度和所述时序进行所述编码的分组和线路的对应设置。
[0078] 具体的,根据所述传输速度,计算一个编码分组传输到客户端的预计时刻,然后将所述时刻进行编码分组的排序,既将所述时刻的排序与编码分组的时序进行一一对应。此时即可确定每个编码分组的传输线路。
[0079] 请参照图1所示,解码模块303,用于在解码时,采用多路解码器对所述分散编码进行解码,并基于所述编号对所述帧视频进行合并和播放。
[0080] 所述客户端接收到所述编码后,将根据编码数据启动对应的多路解码器进行解码,然后按照所述编号对所述帧进行合并,生成视频并播放。这其中,在多路编码器的情况下,因为视频帧哈希分组,互相穿插,当发生网络卡顿,产生丢帧时,按帧序号进行只会使这数百毫秒内的帧率降低,因为其他分组的视频帧会正常播放。因此,本申请的技术方案可以通过降低帧率减少卡顿。
[0081] 进一步的,还包括判断所述编码是否乱序,若所述编码的乱序达到预设阈值,则执行抛帧。当所述帧视频为云游戏场景,所述预设阈值为0。
[0082] 本申请上述内容中尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。