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

用于视频传输的纠错方法、系统以及存储介质

文献发布时间:2024-04-18 19:58:53


用于视频传输的纠错方法、系统以及存储介质

技术领域

本发明涉及媒体数据传输技术领域,具体涉及一种用于视频传输的纠错方法、系统以及存储介质。

背景技术

RTP(Realtime Transport Protocol,实时传输协议)是针对Internet上多媒体数据流的一个传输协议,RTCP(Realtime Transport Control Protocol,实时传输控制协议)负责管理传输质量在当前应用进程之间交换控制信息。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化。

在云游戏、远程视频点播和视频会议等场景中,因为有大量数据需要传输,即便使用了RTP和RTCP,仍然可能会出现因网络环境较差而导致的视频数据传输出错,使得接收端出现视频卡顿等现象,用户体验不佳。

现有技术中,纠错包与视频包的比率采用固定值,无法应对网络环境不断变动的情况。

发明内容

为了解决现有技术中的上述问题,本发明提出了一种用于视频传输的纠错方法、系统以及存储介质,提高了纠错能力。

本发明的第一方面,提出了一种用于视频传输的纠错方法,所述方法包括:

发送端根据网络丢包率和延迟时间,计算纠错包与视频包的比率;

将原始视频数据打包为RTP视频包,并根据所述比率基于Reed-Solomon算法生成对应的RTP纠错包;

将所述RTP视频包和对应的所述RTP纠错包作为一个分组,发送到接收端;

所述接收端判断是否存在丢包;

若是,则根据接收到的所述RTP视频包和所述RTP纠错包,对丢失的视频包的长度、载荷以及包头分别进行恢复,从而恢复所述丢失的视频包。

优选地,所述将原始视频数据打包为RTP视频包,并根据所述比率基于Reed-Solomon算法生成对应的RTP纠错包,包括:

根据所述比率和预设的有限域大小,计算同一分组中RTP视频包对应的第一数量和RTP纠错包对应的第二数量;

将原始视频数据打包为所述RTP视频包,当所述RTP视频包的个数达到所述第一数量或所述RTP视频包包头中M字段的值为1时,基于Reed-Solomon算法和有限域算法打包所述第二数量的所述RTP纠错包。

优选地,所述基于Reed-Solomon算法和有限域算法打包所述第二数量的所述RTP纠错包,包括:

基于所述Reed-Solomon算法和所述有限域算法,根据该分组中每个所述RTP视频包的载荷部分按列生成视频数据纠错码;

基于所述Reed-Solomon算法和所述有限域算法,根据该分组中每个所述RTP视频包的长度生成数据长度纠错码;

基于所述Reed-Solomon算法和所述有限域算法,根据该分组中每个所述RTP视频包的包头生成包头纠错码;

根据所述RTP纠错包所保护的所述RTP视频包的序列号范围、所述数据长度纠错码、所述包头纠错码和所述视频数据纠错码,生成所述RTP纠错包的载荷部分;

将所述RTP纠错包的包头和载荷部分进行组合,生成所述RTP纠错包。

优选地,对所述丢失的视频包的长度进行恢复的步骤包括:

基于所述Reed-Solomon算法和所述有限域算法,根据所述丢失的视频包所属分组中已收到的各个所述RTP视频包的长度信息以及所述RTP纠错包中的所述数据长度纠错码,恢复所述丢失的视频包的长度。

优选地,对所述丢失的视频包的载荷进行恢复的步骤包括:

基于所述Reed-Solomon算法和所述有限域算法,根据所述丢失的视频包所属分组中已收到的各个所述RTP视频包的载荷以及所述RTP纠错包中的所述视频数据纠错码,恢复所述丢失的视频包的载荷。

优选地,所述预设的有限域大小为256;

所述RTP视频包和所述RTP纠错包的包头均包括:

V字段:占用2bit,表示RTP版本号;

P字段:占用1bit,表示填充标志,该值为1时表示在该RTP尾部填充一个或多个额外的8bit数据;

X字段:占用1bit,表示扩展头标志,该值为1时表示在当前RTP包头后面跟随一个扩展头;

CC字段:占用4bit,贡献源计数器,表示贡献源标识符的个数;

M字段:占用1bit,该值为1时表示当前RTP包是当前视频帧的最后一个RTP包;

PT字段:占用7bit,表示载荷类型;

sequence number字段:占用2字节,表示RTP包的序列号;

timestamp字段:占用4字节,表示时间戳;

SSRC字段:占用4字节,表示同步源标识符。

优选地,所述接收端判断是否存在丢包,包括:

所述接收端根据接收到的所述RTP视频包的包头中包含的所述sequence number字段判断序列号是否连续,从而确定是否存在丢包。

优选地,所述包头纠错码包括:对所述X字段、所述M字段和所述timestamp字段分别进行纠错的数据;

对所述丢失的视频包的RTP包头进行恢复的步骤包括:

基于所述Reed-Solomon算法和所述有限域算法,根据所述丢失的视频包所属分组中已收到的各个所述RTP视频包的包头以及所述RTP纠错包中的所述包头纠错码,恢复所述丢失的视频包包头中的所述X字段、所述M字段和所述timestamp字段;

根据已收到的各个所述RTP视频包的所述sequence number字段,确定所述丢失的视频包的所述sequence number字段;

根据已收到的各个所述RTP视频包的包头,恢复所述丢失的视频包包头中其余字段的值。

本发明的第二方面,提出了一种用于视频传输的纠错系统,所述系统包括:

发送端,配置为:根据网络丢包率和延迟时间,计算纠错包与视频包的比率;将原始视频数据打包为RTP视频包,并根据所述比率基于Reed-Solomon算法生成对应的RTP纠错包;将所述RTP视频包和对应的所述RTP纠错包作为一个分组,发送到接收端;

接收端,配置为:判断是否存在丢包;若是,则根据接收到的所述RTP视频包和所述RTP纠错包,对丢失的视频包的长度、载荷以及包头分别进行恢复,从而恢复所述丢失的视频包。

本发明的第三方面,提出了一种计算机可读存储介质,存储有能够被处理器加载并执行上面所述方法的计算机程序。

本发明具有如下有益效果:

本发明的发送端根据网络丢包率和延迟时间动态调整纠错包与视频包的比率,在不增加太多网络负担的情况下,使得接收端纠错能力得到了提升。

对每个RTP视频包的包头、载荷和数据长度分别生成纠错码,从而可以在接收端完整地恢复丢失的视频包。

基于Reed-Solomon算法和有限域算法,在丢包率不超过50%的情况下,每增加一个纠错包就可以应对一个视频包的丢失,因此可以对丢失的视频包进行百分之百的恢复,有效提高了较差网络环境下的用户体验。

附图说明

图1是本发明的用于视频传输的纠错方法实施例一的主要步骤示意图;

图2是本发明的用于视频传输的纠错方法实施例二的主要步骤示意图;

图3是本发明的用于视频传输的纠错系统的主要结构示意图。

具体实施方式

下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

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

需要说明的是,在本发明的描述中,术语“第一”、“第二”仅仅是为了便于描述,而不是指示或暗示所述装置、元件或参数的相对重要性,因此不能理解为对本发明的限制。另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。

图1是本发明的用于视频传输的纠错方法实施例一的主要步骤示意图。如图1所示,本实施例的纠错方法包括步骤A10-A50:

步骤A10,发送端根据网络丢包率和延迟时间,计算纠错包与视频包的比率。

本发明中,每打包一个分组(包括视频包和纠错包)都要计算一次比率。通过动态调整比率,从而实时调整两种包的数量。

本实施例中,当延迟时间小于50ms时,按照如表1所示的规则计算纠错包与视频包的比率:

表1 根据丢包率选择纠错包与视频包的比率

当延迟时间在50ms-100ms之间时,在表1计算结果的基础上将比率值再增加20%;当延迟时间大于100ms时,在表1计算结果的基础上将比率值再增加40%。在提高纠错能力的同时,为了避免增加过多的网络负担,将最大比率限制在不超过100%。

步骤A20,将原始视频数据打包为RTP视频包,并根据纠错包与视频包的比率基于Reed-Solomon算法生成对应的RTP纠错包。

步骤A30,将RTP视频包和对应的RTP纠错包作为一个分组,发送到接收端。

步骤A40,接收端判断是否存在丢包。

其中,接收端判断是否存在丢包的步骤,可以具体包括:

接收端根据接收到的RTP视频包的包头中包含的sequence number字段判断序列号是否连续,从而确定是否存在丢包。

步骤A50,在存在丢包的情况下,根据接收到的RTP视频包和RTP纠错包,对丢失的视频包的长度、载荷以及包头分别进行恢复,从而恢复丢失的视频包。

如果接收端判断没有发生丢包,则不需要进行纠错处理。

图2是本发明的用于视频传输的纠错方法实施例二的主要步骤示意图。如图2所示,本实施例的纠错方法包括步骤B10-B60:

步骤B10,发送端根据网络丢包率和延迟时间,计算纠错包与视频包的比率。

步骤B20,根据比率和预设的有限域大小,计算同一分组中RTP视频包对应的第一数量和RTP纠错包对应的第二数量。

本实施例中,预设的有限域的大小为256,因此,RTP视频包和RTP纠错包的总和(即第一数量和第二数量的总和)小于等于256。

纠错包的数量根据网络质量确定,网络质量包括:数据延迟时间和丢包率(通过RTCP交互获取)来确定纠错数据与原数据的比率。比如目前计算出的比率为50%,那么纠错包个数等于视频包个数,这样才能应对低于50%的丢包率。由于使用的是GF(256),假设当前50%丢包,那么当发送端生成第128个视频包之后会立即生成纠错包,或者遇到RTP包头中的M字段等于1(表示帧结束),则立即产生纠错包。

步骤B30,将原始视频数据打包为RTP视频包,当RTP视频包的个数达到第一数量或RTP视频包包头中M字段的值为1时,基于Reed-Solomon算法和有限域算法打包第二数量的RTP纠错包。

本实施例中,打包RTP纠错包的步骤包括:

(1)基于Reed-Solomon算法和有限域算法,根据该分组中每个RTP视频包的载荷部分按列生成视频数据纠错码。

(2)基于Reed-Solomon算法和有限域算法,根据该分组中每个RTP视频包的长度生成数据长度纠错码。

(3)基于Reed-Solomon算法和有限域算法,根据该分组中每个RTP视频包的包头生成包头纠错码。

(4)根据RTP纠错包所保护的RTP视频包的序列号范围、数据长度纠错码、包头纠错码和视频数据纠错码,生成RTP纠错包的载荷部分。

(5)将RTP纠错包的包头和载荷部分进行组合,生成RTP纠错包。

本实施例中,RTP视频包和RTP纠错包的包头均包括下面的12个字节:

V字段:占用2bit,表示RTP版本号;

P字段:占用1bit,表示填充标志,该值为1时表示在该RTP尾部填充一个或多个额外的8bit数据;

X字段:占用1bit,表示扩展头标志,该值为1时表示在当前RTP包头后面跟随一个扩展头;

CC字段:占用4bit,贡献源计数器,表示贡献源标识符的个数;

M字段:占用1bit,该值为1时表示当前RTP包是当前视频帧的最后一个RTP包;

PT字段:占用7bit,表示载荷类型;

sequence number字段:占用2字节,表示RTP包的序列号;

timestamp字段:占用4字节,表示时间戳;

SSRC字段:占用4字节,表示同步源标识符;所有视频包的SSRC字段值相同,接收端通过SSRC判断是RTP视频包还是RTP纠错包。

本实施例中,包头纠错码包括:对X字段、M字段和timestamp字段分别进行纠错的数据。

步骤B40,将RTP视频包和对应的RTP纠错包作为一个分组,发送到接收端。

步骤B50,接收端判断是否存在丢包。

步骤B60,在存在丢包的情况下,根据接收到的RTP视频包和RTP纠错包,对丢失的视频包的长度、载荷以及包头分别进行恢复,从而恢复丢失的视频包。该步骤具体包括步骤B61-B64:

步骤B61,对丢失的视频包的长度进行恢复:基于Reed-Solomon算法和有限域算法,根据丢失的视频包所属分组中已收到的各个RTP视频包的长度信息以及RTP纠错包中的数据长度纠错码,恢复丢失的视频包的长度。

因为RTP视频包的载荷后面可能有填充的0,所以需要恢复长度,以便得知丢失的视频包的真实长度。接收端在恢复原始视频数据时,会将接收到的RTP视频包进行组帧,每个RTP视频包有自己的长度,将RTP视频包按顺序组成一帧原始视频数据。

步骤B62,对丢失的视频包的载荷进行恢复:基于Reed-Solomon算法和有限域算法,根据丢失的视频包所属分组中已收到的各个RTP视频包的载荷以及RTP纠错包中的视频数据纠错码,恢复丢失的视频包的载荷。

步骤B63,对丢失的视频包的RTP包头进行恢复:

(1)基于Reed-Solomon算法和有限域算法,根据丢失的视频包所属分组中已收到的各个RTP视频包的包头以及RTP纠错包中的包头纠错码,恢复丢失的视频包包头中的X字段、M字段和timestamp字段。

(2)根据已收到的各个RTP视频包的sequence number字段(序列号),确定丢失的视频包的sequence number字段。

例如,接收到的RTP视频包的序列号是从1000到1128,但是漏掉了其中的1020,则确定丢失的视频包的序列号就是1020。

(3)根据已收到的各个RTP视频包的包头,恢复丢失的视频包包头中其余字段的值。其余字段的值,同一组中各个RTP视频包是相同的,所以直接拷贝即可。

如果接收端判断没有发生丢包,则不需要进行纠错处理。

上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。

进一步地,基于与方法实施例相同的技术构思,本发明还提供了系统实施例,下面进行具体说明。

图3是本发明的用于视频传输的纠错系统的主要结构示意图。如图3所示,本实施例的纠错系统包括发送端10和接收端20。

其中,发送端10配置为:根据网络丢包率和延迟时间,计算纠错包与视频包的比率;将原始视频数据打包为RTP视频包,并根据比率基于Reed-Solomon算法生成对应的RTP纠错包;将RTP视频包和对应的RTP纠错包作为一个分组,发送到接收端。接收端20配置为:判断是否存在丢包;若是,则根据接收到的RTP视频包和RTP纠错包,对丢失的视频包的长度、载荷以及包头分别进行恢复,从而恢复丢失的视频包。

更进一步地,本发明还提供了一种计算机可读存储介质的实施例。本实施例的存储介质中存储有能够被处理器加载并执行上面所述方法的计算机程序。

所述计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

相关技术
  • 温差均衡方法在数据纠错中的应用、系统及存储介质
  • 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质
  • 用于多业务融合平台的通信方法、设备、系统及存储介质
  • 一种用于化妆间盒子的交易方法、系统、电子设备及存储介质
  • 一种用于存储系统之间的信息传输方法、装置及介质
  • 基于前向纠错的视频传输方法、设备和计算机存储介质
  • 音视频传输前向纠错方法、装置、计算机设备及存储介质
技术分类

06120116506741