一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种信息传输方法、装置、电子设备及可读存储介质与流程

2022-09-03 23:00:27 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种信息传输方法、装置、电子设备及可读存储介质。


背景技术:

2.在实时通讯技术(web real time communications,web rtc)实时音视频系统中,发送端产生的数据,在经过编码器编码后,会被封装成有序排列的一个个小数据包,然后发送到网络中,接收端接收到数据包后,会根据包的序列号进行排序,如果发现有丢失的数据包,则会立即发送丢包重传(non-acknowledge,nack)包,请求发送端重新补发该数据包,重传效果较差。


技术实现要素:

3.本技术提供一种信息传输方法、装置、电子设备及可读存储介质,以解决重传效果较差的问题。
4.第一方面,本技术实施例提供了一种信息传输方法,应用于第一设备,包括:
5.接收第二设备发送的第一信息,所述第一信息包括多个数据包;
6.确定所述多个数据包中的丢失数据包;
7.确定所述丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的;
8.基于所述最大重传请求次数,向所述第二设备发送重传请求,以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包。
9.第二方面,本技术实施例还提供一种信息传输方法,应用于第二设备,其特征在于,包括:
10.向第一设备发送第一信息,所述第一信息包括多个数据包;
11.在所述多个数据包中存在丢失数据包的情况下,接收所述第一设备发送的重传请求;
12.根据所述重传请求对所述丢失数据包进行重传,其中,所述重传请求是所述第一设备基于最大重传请求次数发送的,所述最大重传请求次数是所述第一设备根据所述丢失数据包的数据内容确定的。
13.第三方面,本技术实施例还提供一种信息传输装置,应用于第一设备,包括:
14.第一接收模块,用于接收第二设备发送的第一信息,所述第一信息包括多个数据包;
15.第一确定模块,用于确定所述多个数据包中的丢失数据包;
16.第二确定模块,用于确定所述丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的;
17.第一发送模块,用于基于所述最大重传请求次数,向所述第二设备发送重传请求,
以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包。
18.第四方面,本技术实施例还提供一种信息传输装置,应用于第二设备,包括:
19.第二发送模块,用于向第一设备发送第一信息,所述第一信息包括多个数据包;
20.第二接收模块,用于在所述多个数据包中存在丢失数据包的情况下,接收所述第一设备发送的重传请求;
21.重传模块,用于根据所述重传请求对所述丢失数据包进行重传,其中,所述重传请求是所述第一设备基于最大重传请求次数发送的,所述最大重传请求次数是所述第一设备根据所述丢失数据包的数据内容确定的。
22.第五方面,本技术实施例还提供了一种电子设备,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的信息传输方法的步骤,或者实现如第二方面所述的信息传输方法的步骤。
23.第六方面,本技术实施例还提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的信息传输方法的步骤,或者实现如第二方面所述的信息传输方法的步骤。
24.本技术实施例中,在信息传输过程中存在数据包丢失的情况下,通过确定丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的,并基于所述最大重传请求次数,向所述第二设备发送重传请求,以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包,这样,可根据丢失数据包的数据内容确定每一丢失数据包的最大重传请求次数,即可根据丢失数据包的数据内容为每一丢失数据包差异化地设置可重传次数,而非对所有丢失数据包均设置同样的重传次数,从而提升重传效果。
附图说明
25.为了更清楚地说明本技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
26.图1是本技术实施例提供的信息传输方法的流程示意图之一;
27.图2是本技术实施例提供的数据包丢失重传的示意图;
28.图3是本技术实施例提供的信息传输方法的流程示意图之二;
29.图4是本技术实施例提供的信息传输方法的流程示意图之三;
30.图5是本技术实施例提供的视频帧渲染时间的示意图之一;
31.图6是本技术实施例提供的视频帧渲染时间的示意图之二;
32.图7是本技术实施例提供的信息传输装置的结构示意图之一;
33.图8是本技术实施例提供的信息传输装置的结构示意图之二;
34.图9是本技术实施例提供的电子设备的结构示意图之一;
35.图10是本技术实施例提供的电子设备的结构示意图之二。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.本技术实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本技术中使用“和/或”表示所连接对象的至少其中之一,例如a和/或b和/或c,表示包含单独a,单独b,单独c,以及a和b都存在,b和c都存在,a和c都存在,以及a、b和c都存在的7种情况。
38.请参阅图1,图1是本技术实施例提供的信息传输方法的流程示意图之一,该方法应用于第一设备。如图1所示,所述信息传输方法包括以下步骤:
39.步骤101、接收第二设备发送的第一信息,所述第一信息包括多个数据包。
40.其中,在视频投放、直播等场景下,上述第一设备为数据接收端,上述第二设备为数据发送端,由上述第一设备接收第一设备发送的数据并进行处理;在视频通话等场景下,双方都会向对端传输数据,那么每一端在接收对端发送的数据时为数据接收端,每一端向对端发送数据时为数据发送端。
41.可以理解,上述第一信息可以包括音频数据和视频数据等,在语音通话、语音会议等场景下,上述第一信息可以仅包括音频数据,在视频会议、视频直播等场景下,上述第一信息可以包括音频数据和视频数据,并且,在数据传输过程中,还可加入填充(padding)数据包。
42.步骤102、确定所述多个数据包中的丢失数据包。
43.步骤103、确定所述丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的。
44.在数据传输过程中,上述第二设备可将数据封装成有序排列的多个数据包,然后发送到上述第一设备,上述第一设备接收到多个数据包后,再按照数据包的序列号将多个数据包进行排序,若存在序列号不连续,上述接收到的多个数据包中不存在的序列号即为丢失数据包的序列号。也即,可通过多个数据包的序列号是否连续确定是否存在丢失数据包,在多个数据包的序列号不连续的情况下,即可确定存在丢失数据包,且丢失数据包的序列号即为上述不连续序列号中缺失的序列号,从而通过序列号确定丢失数据包。
45.例如,如图2所示,上述第二设备按照数据发送队列将数据包发送至上述第一设备,而上述第一设备的数据接收队列中缺失序列号为“5”的数据包,那么可以通过nack请求包向第二设备申请重传序列号为“5”的数据包。
46.现有技术中,通常对所有的丢失数据包设置同样的最大重传请求次数,超过该最大重传请求次数后,不论是否已获取到丢失数据包,均不再对丢失数据包进行重传。
47.本实施例中,可根据丢失数据包的数据内容确定对应的最大重传请求次数,且最大重传请求次数多的丢失数据包的可重传次数大于最大重传请求次数少的丢失数据包的
可重传次数。具体的,对于包含重要内容的丢失数据包可设置较大的最大重传请求次数,通过多次重传确保包含重要内容的丢失数据包可以重传成功;而对于不包含重要内容或数据内容的重要程度较低的丢失数据包可设置较小的最大重传请求次数,减少功耗。例如,对于丢失的关键帧数据包的最大重传请求次数可大于丢失的填充数据包的最大重传请求次数,从而按照丢失数据包的数据内容差异化地为每一丢失数据包设置上述最大重传请求次数,提升重传效果。
48.步骤104、基于所述最大重传请求次数,向所述第二设备发送重传请求,以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包。
49.具体的,上述重传请求中可包括丢失数据包的序列号,从而第二设备可根据重传请求中的序列号确定需重传的数据包。在丢失数据包的已重传次数未超过其最大重传请求次数的情况下,可向上述第二设备发送重传请求,以使上述第二设备可以按照序列号确定上述丢失数据包,并重传该丢失数据包;或者,不论丢失数据包的已重传次数是否超过其最大重传请求次数,均向上述第二设备发送重传请求,重传请求中可包括上述最大重传请求次数,由第二设备判断丢失数据包的已重传次数是否超过其最大重传请求次数,并在丢失数据包的已重传次数未超过其最大重传请求次数的情况下,重传上述丢失数据包,这样,使第二设备可在上述最大重传请求次数内重传上述丢失数据包。
50.可选地,上述重传请求还可包括丢失数据包的重传优先级,重传优先级级别高的数据包的重传顺序早于重传优先级级别低的数据包的重传顺序,也即重传优先级级别越高的数据包在重传时的顺序越靠前,以使重传优先级级别高的数据包可以先重传。
51.具体的,上述重传请求可以nack请求包的形式发送至第二设备,并在nack请求包中记载丢失数据包的序列号以告知第二设备丢失的数据包,以及在nack请求包中记载丢失数据包的重传优先级,以告知第二设备该丢失的数据包的重传优先级,例如,该丢失的数据包的优先级级别。
52.上述第二设备接收到上述第一设备发送的重传请求后,可以基于上述序列号确定丢失的数据包,并获取该丢失的数据包的重传优先级,例如,5号数据包、13号数据包以及15号数据包丢失的情况下,由上述第一设备确认上述5号数据包的优先级最高,上述15号数据包的优先级第二高,上述13号数据包的优先级最低,那么,上述第二设备在将上述5号数据包、13号数据包以及15号数据包插入数据发送队列中进行重传时,在上述数据发送队列中,上述丢失数据包发送的先后顺序应为:上述5号数据包,13号数据包,15号数据包,以确保优先级高的数据包可以优先重传。
53.本技术实施例中,在信息传输过程中存在数据包丢失的情况下,通过确定丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的,并基于所述最大重传请求次数,向所述第二设备发送重传请求,以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包,这样,可根据丢失数据包的数据内容确定每一丢失数据包的最大重传请求次数,即可根据丢失数据包的数据内容为每一丢失数据包差异化地设置可重传次数,而非对所有丢失数据包均设置同样的重传次数,从而提升重传效果。
54.可选地,所述重传请求包括所述丢失数据包的重传优先级,重传优先级级别越高则重传时间间隔越短,所述重传优先级是根据所述丢失数据包的数据内容确定的。
55.具体的,在对丢失数据包进行重传过程中,可将重传优先级较高的数据包插入传输队列中的较前位置,重传优先级较低的数据包插入传输队列中的较后位置,这样,重传优先级高的数据包的重传顺序早于重传优先级低的数据包的重传顺序,也即优先级越大的数据包在重传时的重传时间间隔越短,以使优先级高的数据包可以先重传,从而确保重传优先级更高的数据包可优先重传,提升重传效果。
56.其中,重传优先级级别高的丢失数据包的重传顺序早于重传优先级级别低的丢失数据包的重传顺序,也即重传优先级级别高的丢失数据包的重传时间间隔小于重传优先级级别低的丢失数据包的重传时间间隔,从而可优先重传重传优先级级别高的丢失数据包,即优先确保重传优先级级别高的丢失数据包可重传成功。
57.其中,上述数据内容可包括上述丢失数据包的具体数据类型,例如,上述数据包可以是音频数据包、视频数据包或padding数据包等。
58.需要说明的是,本技术实施例可以预先设置各种数据内容之间的优先级,例如,将音频数据包的优先级设置为最高优先级,将视频数据包的优先级设置为第二高优先级,将padding数据包的优先级设置为最低优先级。
59.并且,在同一类型数据内容的多个丢失数据包之间,可以按照各自的序列号对同一优先级的多个数据包的重传顺序排序,例如,在存在两个音频数据包丢失的情况下,序列号小的音频数据包的重传顺序早于序列号大的音频数据包的重传顺序。
60.另外,同一数据内容的多个丢失数据包之间的重传顺序可以由上述第一设备确定好后在重传优先级中告知第二设备,上述第一设备也可以仅按照数据包的数据内容确定一个优先级告知第二设备,由第二设备自己将同一优先级的多个数据包按照序列号确定其重传顺序。
61.需要说明的是,对于存在多个视频数据包丢失的情况下,可由上述第一设备基于其接收到的其他视频数据包以及丢失数据包的序列号,确定丢失数据包是否为关键帧数据包,在确定丢失数据包的重传优先级时,可确定丢失的关键帧数据包的优先级高于丢失的非关键帧数据包的优先级。并且,本技术实施例中,对于存在多个非关键帧数据包丢失的情况下,可以在多个丢失非关键帧数据包之间设置不同的优先级,例如,可将已接收到的数据包按序列号排序并分为多段,位于不同段的丢失非关键帧数据包设置不同的优先级。
62.可选地,步骤103中确定所述丢失数据包的最大重传请求次数,包括:
63.确定所述丢失数据包的重传优先级;
64.获取当前的接收链路延时和丢包率;
65.基于所述接收链路延时、所述丢包率和所述重传优先级,确定所述丢失数据包的最大重传请求次数;
66.步骤104中所述基于所述最大重传请求次数,向所述第二设备发送重传请求,包括:
67.在所述丢失数据包的已重传请求次数小于所述最大重传请求次数的情况下,向所述第二设备发送重传请求。
68.其中,上述丢失数据包的重传优先级可根据丢失数据包的数据内容确定。
69.具体的,上述丢失数据包的最大重传请求次数与接收链路延时成反比,即其他变量固定的情况下,接收链路延时越大,上述丢失数据包的最大重传请求次数越小;上述丢失
数据包的最大重传请求次数与重传优先级成正比,即其他变量固定的情况下,重传优先级越高,上述丢失数据包的最大重传请求次数越大,上述重传优先级可使用优先级数表示,当然,若使用优先级数越小表示其优先级越高,那么上述丢失数据包的最大重传请求次数与优先级数成反比,若使用优先级数越大表示其优先级越高,那么上述丢失数据包的最大重传请求次数与优先级数成正比;在上述丢包率小于一定阈值的情况下,上述丢失数据包的最大重传请求次数与上述丢包率成正比,即其他变量固定的情况下,丢包率越大,上述丢失数据包的最大重传请求次数越大;在上述丢包率大于或等于一定阈值的情况下,上述丢失数据包的最大重传请求次数与上述丢包率成反比,即其他变量固定的情况下,丢包率越大,上述丢失数据包的最大重传请求次数越小。
70.其中,向所述第二设备发送重传请求之前,可判断上述丢失数据包的已重传请求次数是否小于上述最大重传请求次数,若小于,则向上述第二设备发送重传请求。上述丢失数据包的已重传请求次数可理解为已向第二设备发送重传该丢失数据包请求的次数,具体的,上述第一设备每向上述第二设备发送一次重传请求,可以记录重传请求对应的丢失数据包的已请求次数,这样,在下一次发送对于该丢失数据包的重传请求之前,可以判断该丢失数据包的已重传请求次数是否超过上述最大重传请求次数,从而确保该丢失数据包在上述最大重传请求次数内进行重传。
71.该实施方式中,基于所述接收链路延时、所述丢包率和所述重传优先级,确定所述丢失数据包的最大重传请求次数,并在所述丢失数据包的已重传请求次数小于所述最大重传请求次数的情况下,向所述第二设备发送重传请求,也即可以根据所述接收链路延时、所述丢包率和所述优先级,灵活地确定所述丢失数据包的最大重传请求次数,使得可以优先重传优先级更高的所述丢失数据包,满足重传需求的同时,差异性地基于所述接收链路延时、所述丢包率和所述优先级确定所述丢失数据包的最大重传请求次数,使得数据包的重传能力可以尽量满足视频不丢包的需求。
72.可选地,在步骤101中接收第二设备发送的第一信息之后,步骤104中向所述第二设备发送重传请求之前,所述方法还可以包括如下步骤:
73.接收第二设备发送的第二信息;
74.所述在所述已重传请求次数小于所述最大重传请求次数的情况下,向所述第二设备发送重传请求,包括:
75.在所述第二信息不包括关键帧数据包的情况下,若所述已重传请求次数小于所述最大重传请求次数,向所述第二设备发送重传请求。
76.可以理解,在上述第二设备的数据发送队列中,上述第二信息位于上述第一信息之后,例如,上述第二信息可以是上述第一信息的下一视频帧序列的多个数据包。
77.需要说明的是,在上述第二信息中包括关键帧数据包的情况下,可将上述最大重传请求次数设置为0,这样,不论上述丢失数据包之前是否已重传过,此时都不需要再向上述第二设备请求重传上述丢失数据包,以使上述第一信息之后的信息中的数据包可以尽快解码及渲染,提高所述信息传输整体的流畅度。
78.该实施方式中,在所述第二信息不包括关键帧数据包的情况下,若所述已重传请求次数小于所述最大重传请求次数,向所述第二设备发送重传请求,可在不影响处理所述第二信息的同时,尽量使上述第一信息的数据包可以完整接收到,提升所述信息重传的效
果。
79.可选地,所述第一信息包括多个视频帧,且每一视频帧包括至少两个数据包;
80.在步骤101中接收第二设备发送的第一信息之后,所述方法还包括:
81.在目标视频帧包括的至少两个数据包中不存在丢失数据包的情况下,确定所述目标视频帧在网络传输中的抖动时延,所述目标视频帧为所述多个视频帧中的任意一个视频帧;
82.确定所述目标视频帧的均匀出帧的最小时延;
83.基于所述抖动时延和所述最小时延,确定所述目标视频帧的目标抖动时延;
84.基于所述目标抖动时延,对所述目标视频帧包括的至少两个数据包进行解码和渲染。
85.需要说明的是,上述目标视频帧为上述第一信息中不存在丢失数据包的任意一个视频帧,对于不存在丢失数据包的视频帧进行视频组帧,即按照上述目标抖动时延进行解码和渲染。
86.其中,在对视频进行组帧前,可判断接收到的每一视频帧中是否存在丢失数据包,不存在丢失数据包的视频帧才进行视频组帧,对于存在丢失数据包的视频帧,可以向上述第二设备发送重传请求,直至不存在丢失数据包时,进行视频组帧。
87.具体的,上述目标视频帧在网络传输中的抖动时延可以使用卡尔曼滤波算法确定,在上述第一信息中存在较多丢失数据包的情况下,使用卡尔曼滤波算法确定的抖动时延通常为0,以达到立即渲染视频帧的效果。但这种即时渲染,没有将接收到的视频帧在一定时间内均匀分布地渲染,渲染视频帧的快慢节奏不一致,易导致视频渲染长卡顿的发生,例如,弱网环境下,传输链路时延较大,可能导致丢失较多数据包,而通过卡尔曼滤波算法计算导致视频渲染长卡顿现象。
88.具体的,上述最小时延可以基于当前的网络环境状况确定,例如,通过当前的接收链路延时、在一段时间内上述第二设备发送信息的发送帧间隔、在一段时间内上述第一设备接收信息的接收帧间隔等,确定视频帧的均匀出帧的最小时延。
89.具体的,上述目标抖动时延可为上述抖动时延和上述最小时延中的较大者,这样,即使在弱网环境中,上述目标视频帧在网络传输中的抖动时延较小,可按照上述最小时延进行视频帧的解码和渲染,从而避免直接基于上述抖动时延进行视频帧的解码和渲染导致的长卡顿现象。通过确定上述目标视频帧的均匀出帧的最小时延,使得最终确定的上述目标抖动时延可以大于或等于上述最小时延,基于上述目标抖动时延进行数据包的解码和渲染,也可以确保视频帧均匀分布地渲染,即保持视频渲染的快慢节奏一致,从而有效避免视频渲染长卡顿现象的发生。
90.可选地,所述确定所述目标视频帧的均匀出帧的最小时延,包括:
91.获取预设时间内所述第二设备发送所述第一信息的最大发送帧间隔和平均发送帧间隔,以及所述第一设备的最大接收帧间隔和平均接收帧间隔;
92.获取当前的接收链路的卡顿阈值;
93.基于所述卡顿阈值、所述最大发送帧间隔、所述平均发送帧间隔、所述最大接收帧间隔和所述平均接收帧间隔,确定所述最小时延。
94.其中,上述最大发送帧间隔可通过在上述预设时间内,记录所有相邻帧之间的发
送时间间隔,选取其中最大者作为上述最大发送帧间隔,上述平均发送帧间隔可通过计算所有相邻帧之间的发送时间间隔的均值得到;上述最大接收帧间隔可通过在上述预设时间内,记录所有相邻帧之间的接收时间间隔,选取其中最大者作为上述最大接收帧间隔,上述平均接收帧间隔可通过计算所有相邻帧之间的接收时间间隔的均值得到。
95.其中,上述卡顿阈值可通过对当前的接收链路监测得到,具体的,在当前网络环境下,监测到最低可允许的视频帧率为f
min
帧每秒,那么卡顿阈值记为t
as
=1/f
min
*1000(单位:毫秒)。
96.另外,本技术实施例中可以按照实际应用场景,设置上述卡顿阈值的上限系数ws,例如,在实时性要求较高的场景,上限系数ws可设置为1,即将超过上述卡顿阈值t
as
*1的帧间隔视为卡顿,在实时性要求较低的场景,上限系数可设置为大于1的值,如2,即将超过上述卡顿阈值2倍t
as
*2的帧间隔才视为卡顿。
97.具体的,将上述最大发送帧间隔记为t
sm
,上述平均发送帧间隔记为t
avg_send
,上述最大接收帧间隔记为t
rm
,平均接收帧间隔t
avg_recv
。本技术实施例中还可以记录最近两次视频帧渲染的时间间隔作为当前的视频帧渲染时间间隔t
stall

98.在上述平均发送帧间隔t
avg_send
《t
as
,且当前的视频帧渲染时间间隔t
stall
》t
as
,且最大发送帧间隔t
sm
《t
as
*ws时,令te=t
as
;其他情况下,令te=t
stall
*s
t
(s
t
为控制系数,默认值为0.8,可根据场景需要调整大小);进而,确定均匀出帧需要的最小延时:tz=max(t
sm-t
avgsend-te/2,t
rm-t
avg_recv-te/2)。
99.该实施方式中,基于所述卡顿阈值、所述最大发送帧间隔、所述平均发送帧间隔、所述最大接收帧间隔和所述平均接收帧间隔,确定所述最小时延,可以使所述最小时延符合当前的网络环境,提升所述最小时延的准确性。
100.请参阅图3,图3是本技术实施例提供的信息传输方法的流程示意图之二,该方法应用于第二设备。如图3所示,所述信息传输方法包括以下步骤:
101.步骤301、向第一设备发送第一信息,所述第一信息包括多个数据包;
102.步骤302、在所述多个数据包中存在丢失数据包的情况下,接收所述第一设备发送的重传请求;
103.步骤303、根据所述重传请求对所述丢失数据包进行重传,其中,所述重传请求是所述第一设备基于最大重传请求次数发送的,所述最大重传请求次数是所述第一设备根据所述丢失数据包的数据内容确定的。
104.本技术实施例中,所述第二设备根据所述重传请求对所述丢失数据包进行重传,其中,所述重传请求是所述第一设备基于最大重传请求次数发送的,所述最大重传请求次数是所述第一设备根据所述丢失数据包的数据内容确定的,这样,所述第二设备可在所述最大请求次数内重传所述丢失数据包,最大重传请求次数越大则可重传次数越多,从而提升数据包的重传效果。
105.可选地,所述重传请求包括所述丢失数据包的重传优先级,重传优先级级别越高则重传时间间隔越短,所述重传优先级是所述第一设备根据所述丢失数据包的数据内容确定的。
106.可选地,步骤303中所述根据所述重传请求对所述丢失数据包进行重传,包括:
107.在所述丢失数据包的已重传请求次数小于所述最大重传请求次数的情况下,根据
所述重传请求对所述丢失数据包进行重传。
108.需要说明的是,本技术实施例提供的信息传输方法应用于第二设备,与图1所述实施例中的方法对应,具体的实现流程及涉及的相关概念可以是参照上述图1所述方法实施例中的描述,为避免重复,本实施例不再赘述。
109.为更好地理解,以下通过一个具体的实施例对本技术提供的信息传输方法进行具体说明,如图4所示,所述信息传输方法包括以下步骤:
110.步骤1、视频发送端依次按照序列号发送视频数据包;
111.步骤2、视频接收端开始接收视频数据包;
112.步骤3、视频接收端缓存接收到的视频数据;
113.步骤4、视频接收端判断缓存队列中的视频数据是否满足视频组帧条件:如果已满足,执行步骤11,否则,执行步骤5;
114.步骤5、视频接收端每接收到一个视频数据包,判断接收到的视频数据包是否有丢失;如果有丢失,则执行步骤6,如果没有丢失,则不做处理;
115.步骤6、视频接收端根据丢失数据序列号,判断丢失数据内容,以此判断丢失数据包的重要性,并设置重传优先级lrn(n越小表示优先级越大,n越大表示优先级越小,例如,lr1表示的优先级高于lr2表示的优先级);
116.其中,重传优先级lrn可按照如下方式确定:
117.(1)如果丢失数据包为音频数据包,则按照web rtc现有逻辑,设置重传包优先级为最高优先级lr1;
118.(2)如果丢失数据包为视频重传包,且丢失数据包属于视频关键帧,则设置重传优先级为lr2,需尽快重传,才能保证所有视频正常解码;
119.(3)如果丢失数据包为视频重传包,且丢失数据包不属于视频关键帧,则将已接收到的视频数据缓存队列分为n段(每两个分段之间的包序号连续),缓存队列从前往后,优先级依次可设置为l
r3……
lr(n 2),其中,n的大小可根据场景需要,灵活控制;
120.(4)webrtc可开启rtx协议,padding数据包设置重传优先级为lr(n 3);
121.步骤7、视频接收端通过webrtc系统获取当前接收丢包率lv、视频接收链路延时rv、重传优先级lrn,计算该包发送nack请求的最大次数nr;
122.其中,丢失数据包的最大次数nr计算方式如下:
123.(1)通过webrtc实时音视频系统,获取到当前视频接收端的实时丢包率lv、当前链路延时rv、重传优先级lrn和丢失数据包序列号;
124.(2)在当前链路延时rv小于一定阈值时,重传次数nr=x*(rv*a)*(b/lv)*(c/n);
125.在当前链路延时rv大于或等于一定阈值时,重传次数nr=x*(rv*a)*(lv*b)*(c/n);
126.其中,x为web rtc默认重传次数(10次),a为链路延时伸缩系数,b为当前丢包率伸缩系数,c为重传优先级伸缩系数,n为重传优先级lrn的大小;
127.(3)如果已经收到下一个视频帧序列的关键帧数据包,且当前视频帧序列数据包还未收集完成,那么设置当前视频帧序列数据包的所有丢失数据包的最大重传请求次数为0,不再重传旧的帧序列集数据包,优先满足传输最新视频帧序列数据包;
128.步骤8、视频接收端判断当前包序列号是否已经重传超过了其最大重传请求次数
nr,如果已经超过,则不重传,结束流程;如果未超过,则执行步骤9;
129.步骤9、视频接收端在nack包中设置重传数据包优先级,向发送端发送nack包,请求重传该数据包,并记录该数据包已经发送过的nack请求次数;
130.步骤10、视频发送端接收到nack请求包后,获取设置的重传优先级lrn,根据lrn,将需要重传的数据包,插入到数据发送队列相应位置,继续执行步骤1;
131.其中,数据包重传示例如图2所示,在接收端发现5号数据包丢失时,向发送端发送nack请求包申请重传5号数据包。
132.步骤11、此步骤承接上述步骤4,如果视频接收端接收到的缓存视频数据,已经满足视频组帧条件,此时接收端开始将接收到的数据包进行组帧处理;
133.步骤12、将接收到的视频帧通过卡尔曼滤波算法,计算当前视频帧在网络传输中引起的抖动延时tk;将接收到的视频帧通过本技术实施例的自研抗抖动算法,计算当前视频帧在网络传输中引起的抖动延时tz;
134.其中,使用本技术实施例的自研抗抖动算法计算抖动延时tz的具体过程如下:
135.(1)记录一段时间tc的视频发送帧间隔g
send
集合;
136.其中,视频发送时间,指接收到的当前视频帧中最后一个数据包abs_send_time的时间值(abs_send_time为web rtc现有逻辑中的绝对发送时间值);视频发送时间帧间隔,即为接收到的两个相邻视频帧的视频发送时间的差值;
137.(2)记录一段时间tc的视频接收帧间隔g
recv
集合;
138.其中,视频接收时间,指接收到的当前视频帧中最后一个数据包的接收绝对时间;视频接收时间帧间隔,即为接收到的两个相邻视频帧的视频接收时间的差值;
139.(3)记录一段时间tc的视频最大发送帧间隔t
sm

140.其中,视频最大发送帧间隔t
sm
即为视频发送帧间隔g
send
集合中的最大帧间隔;
141.(4)记录一段时间tc的视频最大接收帧间隔t
rm

142.其中,视频最大接收帧间隔t
rm
即为视频接收帧间隔g
recv
集合中的最大帧间隔;
143.(5)计算一段时间tc内,视频帧发送帧间隔平均值t
avg_send
,计算方式为t
avg_send
=g
send
集合值之和/g
send
集合中元素的数量;
144.(6)计算一段时间tc内,接收端接收间隔平均值t
avg_recv
,计算方式为t
avg_recv
=g
recv
集合值之和/g
recv
集合中元素的数量;
145.(7)记录最近一次视频渲染卡顿时长t
stall
,t
stall
为最近两次渲染视频帧之差;
146.(8)根据视频帧平均发送帧间隔,确定最大出帧间隔阈值te:
147.i.定义弱网下最低可允许的视频帧率为f
min
帧每秒;
148.ii.定义弱网卡顿阈值:t
as
=1/f
min
*1000(单位:毫秒);
149.iii.定义弱网卡顿阈值上限系数ws,ws默认为2,可根据场景需要调整大小;
150.iv.视频帧平均发送帧间隔t
avg_send
《t
as
,且统计卡顿时长t
stall
》t
as
,且视频帧最大发送间隔t
sm
《t
as
*ws时,te=t
as

151.v.其他条件下,te=t
stall
*s
t
,s
t
为控制系数,默认值为0.8,可根据场景需要调整大小;
152.(9)计算均匀出帧需要的最小延时:tz=max(t
sm-t
avgsend-te/2,t
rm-t
avg_recv-te/2);
153.步骤13、获取tk和tz两个值中较大的值作为抖动缓冲器(jitter buffer)的抖动延
时tf;
154.即,tf=max(tz,tk);
155.步骤14、按照webrtc现有流程,根据步骤13计算得到的tf,结合解码延时t
decode
、渲染延时t
render
、音视频同步延时时间,计算得到当前帧的最终渲染延时时间td;
156.具体的,通过比较t
f-t
decode-t
render
与音视频同步延时时间的大小,取二者中较大者作为当前帧的最终渲染延时时间td,其中,解码延时t
decode
和音视频同步延时时间可以基于webrtc现有逻辑算法确定,渲染延时t
render
在webrtc现有逻辑固定为10ms。
157.步骤15、通过td时间,判断是否达到解码时间(解码时间:t
d-t
decode-t
render
),达到解码时间后,将视频帧送入解码器进行解码;
158.步骤16、解码完成后,将得到的视频原始数据,交给渲染器进行视频渲染,流程结束。
159.在上述丢包场景下,基于webrtc原生的卡尔曼滤波计算得到视频帧渲染时间如图5所示,基于本技术实施例中的自研抗抖动算法得到视频帧渲染时间如图6所示,可见,在丢包场景下,基于自研抗抖动算法得到的视频帧渲染时间更加均匀,能有效避免长卡顿。
160.本技术实施例中,在发生数据丢包的场景下,通过丢包序列号,计算丢失数据包的重传优先级;并根据丢失包的不同优先级、不同链路丢包率、不同链路延时,动态计算,以得到差异化的nack最大请求次数,确保重要的数据包在满足网络质量要求的前提下,尽可能多次数地重传。在发送端根据nack请求包中设置的优先级,将重传数据包及时插入到相应的位置,达到优先级高的数据包优先发送的要求。
161.并且,在视频接收端,根据本技术实施例提供的自研抗抖动网络延时算法,结合webrtc原生卡尔曼滤波算法,在丢包场景下,通过增加少量延时,使得到的视频帧能够均匀地渲染,避免视频出现长卡顿,提高了视频的流畅度和稳定性,提高了用户的观看体验。
162.参见图7,图7是本技术实施例提供的一种信息传输装置的结构示意图。如图7所示,信息传输装置700包括:
163.第一接收模块701,用于接收第二设备发送的第一信息,所述第一信息包括多个数据包;
164.第一确定模块702,用于确定所述多个数据包中的丢失数据包。
165.第二确定模块703,用于确定所述丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的;
166.第一发送模块704,用于基于所述最大重传请求次数,向所述第二设备发送重传请求,以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包。
167.可选地,所述重传请求包括所述丢失数据包的重传优先级,重传优先级级别越高则重传时间间隔越短,所述重传优先级是根据所述丢失数据包的数据内容确定的。
168.可选地,所述第二确定模块703,包括:
169.第一确定单元,用于确定所述丢失数据包的重传优先级;
170.第一获取单元,用于获取当前的接收链路延时和丢包率;
171.第二确定单元,用于基于所述接收链路延时、所述丢包率和所述重传优先级,确定所述丢失数据包的最大重传请求次数;
172.所述第一发送模块704,包括:
173.发送单元,用于在所述丢失数据包的已重传请求次数小于所述最大重传请求次数的情况下,向所述第二设备发送重传请求。
174.可选地,所述信息传输装置700,还包括:
175.第三接收模块,用于接收第二设备发送的第二信息;
176.所述发送单元,还用于:
177.在所述第二信息不包括关键帧数据包的情况下,若所述已重传请求次数小于所述最大重传请求次数,向所述第二设备发送重传请求。
178.可选地,所述第一信息包括多个视频帧,且每一视频帧包括至少两个数据包;
179.所述信息传输装置700,还包括:
180.第三确定模块,用于在目标视频帧包括的至少两个数据包中不存在丢失数据包的情况下,确定所述目标视频帧在网络传输中的抖动时延,所述目标视频帧为所述多个视频帧中的任意一个视频帧;
181.第四确定模块,用于确定所述目标视频帧的均匀出帧的最小时延;
182.第五确定模块,用于基于所述抖动时延和所述最小时延,确定所述目标视频帧的目标抖动时延;
183.解码模块,用于基于所述目标抖动时延,对所述目标视频帧包括的至少两个数据包进行解码和渲染。
184.可选地,所述第四确定模块,包括:
185.第二获取单元,用于获取预设时间内所述第二设备发送所述第一信息的最大发送帧间隔和平均发送帧间隔,以及所述第一设备的最大接收帧间隔和平均接收帧间隔;
186.第三获取单元,用于获取当前的接收链路的卡顿阈值;
187.第三确定单元,用于基于所述卡顿阈值、所述最大发送帧间隔、所述平均发送帧间隔、所述最大接收帧间隔和所述平均接收帧间隔,确定所述最小时延。
188.信息传输装置700能够实现本技术实施例中图1方法实施例的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
189.参见图8,图8是本技术实施例提供的一种信息传输装置的结构示意图。如图8所示,信息传输装置800包括:
190.第二发送模块801,用于向第一设备发送第一信息,所述第一信息包括多个数据包;
191.第二接收模块802,用于在所述多个数据包中存在丢失数据包的情况下,接收所述第一设备发送的重传请求;
192.重传模块803,用于根据所述重传请求,对所述丢失数据包进行重传,其中,所述重传请求是所述第一设备基于最大重传请求次数发送的,所述最大重传请求次数是所述第一设备根据所述丢失数据包的数据内容确定的。
193.可选地,所述重传请求包括所述丢失数据包的重传优先级,重传优先级级别越高则重传时间间隔越短,所述重传优先级是所述第一设备根据所述丢失数据包的数据内容确定的。
194.可选地,所述重传模块803,包括:
195.重传单元,用于在所述丢失数据包的已重传请求次数小于所述最大重传请求次数
的情况下,根据所述重传请求对所述丢失数据包进行重传。
196.信息传输装置800能够实现本技术实施例中图2方法实施例的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
197.本技术实施例还提供一种电子设备。由于电子设备解决问题的原理与本技术实施例中图1所示的信息传输方法相似,因此该电子设备的实施可以参见方法的实施,重复之处不再赘述。如图9所示,本技术实施例的电子设备,包括存储器920,收发机910,处理器900;
198.存储器920,用于存储计算机程序;收发机910,用于在所述处理器900的控制下收发数据;处理器900,用于读取所述存储器920中的计算机程序并执行以下操作:
199.接收第二设备发送的第一信息,所述第一信息包括多个数据包;
200.确定所述多个数据包中的丢失数据包;
201.确定所述丢失数据包的最大重传请求次数,所述最大重传请求次数是根据所述丢失数据包的数据内容确定的;
202.基于所述最大重传请求次数,向所述第二设备发送重传请求,以使所述第二设备在所述最大重传请求次数内重传所述丢失数据包。
203.其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器900代表的一个或多个处理器和存储器920代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机910可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器900负责管理总线架构和通常的处理,存储器920可以存储处理器900在执行操作时所使用的数据。
204.处理器900可以是中央处理器(central processing unit,cpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或复杂可编程逻辑器件(complex programmable logic device,cpld),处理器也可以采用多核架构。
205.可选地,所述重传请求包括所述丢失数据包的重传优先级,重传优先级级别越高则重传时间间隔越短,所述重传优先级是根据所述丢失数据包的数据内容确定的。
206.可选地,所述确定所述丢失数据包的最大重传请求次数,包括:
207.确定所述丢失数据包的重传优先级;
208.获取当前的接收链路延时和丢包率;
209.基于所述接收链路延时、所述丢包率和所述重传优先级,确定所述丢失数据包的最大重传请求次数;
210.所述基于所述最大重传请求次数,向所述第二设备发送重传请求,包括:
211.在所述丢失数据包的已重传请求次数小于所述最大重传请求次数的情况下,向所述第二设备发送重传请求。
212.可选地,处理器900,还用于读取所述存储器920中的计算机程序并执行以下操作:
213.接收第二设备发送的第二信息;
214.所述在所述已重传请求次数小于所述最大重传请求次数的情况下,向所述第二设备发送重传请求,包括:
215.在所述第二信息不包括关键帧数据包的情况下,若所述已重传请求次数小于所述最大重传请求次数,向所述第二设备发送重传请求。
216.可选地,所述第一信息包括多个视频帧,且每一视频帧包括至少两个数据包;
217.处理器900,还用于读取所述存储器920中的计算机程序并执行以下操作:
218.在目标视频帧包括的至少两个数据包中不存在丢失数据包的情况下,确定所述目标视频帧在网络传输中的抖动时延,所述目标视频帧为所述多个视频帧中的任意一个视频帧;
219.确定所述目标视频帧的均匀出帧的最小时延;
220.基于所述抖动时延和所述最小时延,确定所述目标视频帧的目标抖动时延;
221.基于所述目标抖动时延,对所述目标视频帧包括的至少两个数据包进行解码和渲染。
222.可选地,所述确定所述目标视频帧的均匀出帧的最小时延,包括:
223.获取预设时间内所述第二设备发送所述第一信息的最大发送帧间隔和平均发送帧间隔,以及所述第一设备的最大接收帧间隔和平均接收帧间隔;
224.获取当前的接收链路的卡顿阈值;
225.基于所述卡顿阈值、所述最大发送帧间隔、所述平均发送帧间隔、所述最大接收帧间隔和所述平均接收帧间隔,确定所述最小时延。
226.本技术实施例提供的电子设备,可以执行上述图1所示的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
227.本技术实施例还提供一种电子设备。由于电子设备解决问题的原理与本技术实施例中图2所示的信息传输方法相似,因此该电子设备的实施可以参见方法的实施,重复之处不再赘述。如图10所示,本技术实施例的电子设备,包括存储器1020,收发机1010,处理器1000;
228.存储器1020,用于存储计算机程序;收发机1010,用于在所述处理器1000的控制下收发数据;处理器1000,用于读取所述存储器1020中的计算机程序并执行以下操作:
229.向第一设备发送第一信息,所述第一信息包括多个数据包;
230.在所述多个数据包中存在丢失数据包的情况下,接收所述第一设备发送的重传请求;
231.根据所述重传请求,对所述丢失数据包进行重传,其中,所述重传请求是所述第一设备基于最大重传请求次数发送的,所述最大重传请求次数是所述第一设备根据所述丢失数据包的数据内容确定的。
232.其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1020代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1010可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1000负责管理总线架构和通常的处理,存储器1020可以存储处理器1000在执行操作时所使用的数据。
233.处理器1000可以是中央处理器(central processing unit,cpu)、专用集成电路
(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或复杂可编程逻辑器件(complex programmable logic device,cpld),处理器也可以采用多核架构。
234.可选地,所述重传请求包括所述丢失数据包的重传优先级,重传优先级级别越高则重传时间间隔越短,所述重传优先级是所述第一设备根据所述丢失数据包的数据内容确定的。
235.可选地,所述根据所述重传请求对所述丢失数据包进行重传,包括:
236.在所述丢失数据包的已重传请求次数小于所述最大重传请求次数的情况下,根据所述重传请求对所述丢失数据包进行重传。
237.本技术实施例提供的电子设备,可以执行上述图2所示的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
238.本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述图1或图2所述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
239.其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
240.本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述图1或图2所述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
241.应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
242.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
243.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
244.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员
在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献