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

接收端视频处理方法、装置、设备及存储介质与流程

2022-11-19 10:31:25 来源:中国专利 TAG:


1.本发明涉及视频网络传输的技术领域,更具体地,涉及一种接收端视频处理方法、装置、设备及存储介质。


背景技术:

2.在视频网络传输中,一个gop(group of pictures,画面组)中的i帧(关键帧)的数据量比p帧(帧间帧)数据量大得多。因此,相对于传输p帧,传输i帧更大概率会遇到丢包或网络拥塞的情况,继而导致完成i帧发送所需要的时间要增加。现有技术中,发送端发出当前gop的最后一个p帧后,等下一个gop的i帧编码完成后发送,但如果此时遇到丢包或网络拥塞,发送所需要的时间增加的话,接收端接收到完整的i帧的时间也会延迟,后面的解码和播放的时间也要相应的顺延。如果是顺延的话,当前gop的最后一个p帧与下一个gop的i帧之间的时间间隔就会增大,当这个时间间隔大到一定程度时,人就感觉到有明显的卡顿,用户体检就会变差。
3.目前,一般是将视频帧放到缓存里,调整缓存中的视频帧的间隔时间,来解决上述卡顿问题,但由于使用了缓存,导致产生了一定的延时,所以该方法只适用于直播的场景,对于即时性要求比较高的互动场景并不适用。


技术实现要素:

4.本发明为解决上述因网络丢包或拥塞而导致的i帧接收延迟所造成的视频卡顿问题,提供一种低延时的接收端视频处理方法、装置、设备及存储介质,本发明采用的技术方案如下。
5.第一方面,本发明提供一种接收端视频处理方法,包括步骤:
6.获取下一个gop的i帧的预测接收时间偏差,其中,预测接收时间偏差是预测接收完成时间和理论应接收完成时间的差值;
7.在预测接收时间偏差在预设范围内时,根据预测接收时间偏差选定视频帧集,其中,所述视频帧集包括当前gop的最后n帧帧间帧和下一个gop的i帧;
8.基于预测接收时间偏差增加所述视频帧集的帧间间隔。
9.在一种实施方式中,所述预测接收时间偏差的预设范围被划分为多档时间等级,每一档时间等级都有对应的数量n;
10.所述在预测接收时间偏差在预设范围内时,根据预测接收时间偏差选定视频帧集的过程,包括步骤:
11.根据所述预测接收时间偏差与时间等级确定数量n。
12.在一种实施方式中,在所述获取下一个gop的i帧的预测接收时间偏差之前,包括步骤:
13.获取指定范围内的gop的实际接收时间偏差;
14.取所述指定范围内的gop的实际接收时间偏差的最大值作为预测接收时间偏差。
15.在一种实施方式中,还包括步骤:在接收到完整的下一个gop的i帧时,清空之前接收到的未解码的视频帧。
16.在一种实施方式中,在所述在预测接收时间偏差在预设范围内时,根据预测接收时间偏差选定视频帧集之前,还包括步骤:
17.在获取到的预测接收时间偏差大于预设范围的最大值时,以预设范围的最大值作为预测接收时间。
18.在一种实施方式中,还包括步骤:根据下一个gop的视频帧的播放时间戳选择下一个gop的解码后的视频帧为播放视频帧;其中,所述播放视频帧是用于发送给播放器播放的。
19.在一种实施方式中,还包括步骤:根据与视频同步的音频数据选择下一个gop的解码后的视频帧为播放视频帧;其中,所述播放视频帧是用于发送给播放器播放的。
20.第二方面,本发明提供一种接收端视频处理装置,包括:
21.获取模块,用于获取下一个gop的i帧的预测接收时间偏差,其中,预测接收时间偏差是预测接收完成时间和理论应接收完成时间的差值;
22.选定模块,用于在预测接收时间偏差在预设范围内时,根据预测接收时间偏差选定视频帧集,其中,所述视频帧集包括当前gop的最后n帧帧间帧和下一个gop的i帧;
23.调整模块,用于基于预测接收时间偏差增加所述视频帧集的帧间间隔。
24.第三方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施方式的方法。
25.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任一实施方式的方法。
26.本发明中,通过预估算得下一个gop的i帧的预测接收时间偏差,将原本属于最后一个p帧与i帧之间的由时间偏差造成的时间间隔等分到选定视频帧集中,使得画面相对更加平滑,让人感受不到因延迟接收到i帧而产生的明显的卡顿,并且本方法不需要缓存大量的视频帧,时延少,适用于即时性要求比较高的互动场景。
附图说明
27.图1是本发明实施例一的流程示意图。
28.图2是本发明实施例一的接收端视频处理示意图。
29.图3是本发明实施例二的整体结构示意图。
具体实施方式
30.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
31.需要说明的是,本发明实施例所涉及的术语“第一\第二\
……”
仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\
……”
在允许的情况下可以互
换特定的顺序或先后次序。应该理解“第一\第二\
……”
区分的对象在适当情况下可以互换,以使这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
32.实施例一
33.请参见图1,图1为本发明实施例一提供的一种接收端视频处理方法的流程示意图,该方法包括步骤s110、步骤s120和步骤s130。需要注意的是,步骤s110、步骤s120和步骤s130仅为附图标记,用于清晰解释实施例与附图1的对应关系,不代表对本实施例中各步骤的顺序限定。
34.步骤s110,获取下一个gop的i帧的预测接收时间偏差,其中,预测接收时间偏差是预测接收完成时间和理论应接收完成时间的差值。
35.接收端接收第一个视频数据包开始获取首包的接收时间,并记录此视频数据包的时间戳为视频流的首包时间戳,后续视频包的时间戳减去首包时间戳加上首包的接收时间就是当前包的理论接收时间。假如是网络状况良好,接收端可以在预设的时间点之前完成完整的i帧数据的接收。
36.接收端接收完一帧的最后一个包获取当前的时间就是此帧的实际接收时间。由于在一段时间内,网络状况的变化是比较小的,且一个gop的长度是固定的,所以在周期性i帧中,接收端是可以根据前几个gop的i帧接收时间的情况,预估接收下个gop的i帧的接收时长,从而得到下一个gop的i帧具体在哪个时间点完成接收,即预测接收完成时间。
37.这里的预测接收时间偏差其实就是对于下一个i帧,预测接收完成时间比理论上应接收完成时间晚多长时间,通过这差值,就可以大概得出当前gop的最后一个p帧与下一个gop的i帧之间的时间间隔,根据该时间间隔就可以判断是否会出现明显的卡顿。
38.步骤s120,在预测接收时间偏差在预设范围内时,根据预测接收时间偏差选定视频帧集,其中,所述视频帧集包括当前gop的最后n帧帧间帧和下一个gop的i帧;
39.步骤s130,基于预测接收时间偏差增加所述视频帧集的帧间间隔。
40.如果预测接收完成时间比理论上应接收完成时间晚,但晚的时长小于预设范围的最小值时,可以认为i帧的卡顿不会被人所感知,这时可以不做任何的处理。
41.如果预测接收完成时间比理论上应接收完成时间晚太多,即晚的时长大于预设范围的最大值时,如该最大值为200ms,则认为不适合用本方法来处理。这时可以采用其他方法来处理,例如如果有低码等级流的话就请求低码等级的码流(如降低分辨率或帧率的码流)。不适合用本方法来处理的原因是使用本方法后,会造成音视频不同步。一般来说,如果音视频之间的不同步在200ms以下,人是基本察觉不出来的,不影响人的体验,但假如大于这个最大值的话,就会降低用户的体验,所以本方法要限定一最大值,使不同步限制在人不能感觉到的范围内。
42.如图2所示,图2中的p帧是当前gop的最后5个p帧,图中的i帧是下一个gop的i帧,图中虚线的i帧是i帧本应播放的时间(对应的是理论应接收完成时间),图中实线的i帧是i帧预测播放的时间(对应的是预测接收完成时间)。假设当前的预测接收时间偏差是100ms,当前的帧率是30fps,那么帧间间隔就是33ms。未使用本方法调整前,最后1个p帧与i帧之间的间隔为:33 100=133ms,帧间间隔多了100ms,会产生明显的卡顿感。例如在本步骤中,根据预测接收时间偏差选定当前的选定视频帧集为最后10个p帧和下一个gop的i帧,即n=
10,本步骤中将原本属于最后一个p帧与i帧之间的由时间偏差造成的时间间隔等分到选定视频帧集中,调整该选定视频帧集的帧间间距,那么,延长的时间=偏差/n,即100/10=10ms,所以帧间间距增大10ms,即如图2中所示,帧间间距变成了43ms。选定视频帧集中的帧间间隔虽然大了10ms,但对于人来说感觉是不明显的,感觉不到明显的卡顿,将时间偏差造成的时间间隔等分到选定视频帧集中后,即使在预测接收完成时间时才播放i帧也不会产生明显的卡顿。本方法中,基于预测接收时间偏差来增加视频帧集的帧间间隔,相对于接收到i帧后,根据i帧的实际接收情况再调整,本方法的调整更具有即时性,适合于即时性要求比较高的互动场景。
43.这里需要说明的是,根据预测接收时间偏差选定当前gop的最后n帧帧间帧和下一个gop的i帧作为视频帧集的方式是多种多样的,例如,可以预先对不同的时间偏差划定不同的档位,每个档位对应不同数量的n,根据不同的时间偏差选定对应的档位从而得到数量n,也可以设置固定的数量n,不随时间偏差变化而变化。总之,本领域技术人员可以结合实际情况,制定求得数量n的模式。
44.本方法中,通过预估算得下一个gop的i帧的预测接收时间偏差,将原本属于最后一个p帧与i帧之间的由时间偏差造成的时间间隔等分到选定视频帧集中,使得画面相对更加平滑,让人感受不到因延迟接收到i帧而产生的明显的卡顿,并且本方法不需要缓存大量的视频帧,时延少,适用于即时性要求比较高的互动场景。
45.在一种实施方式中,所述预测接收时间偏差的预设范围内被划分为多档时间等级,每一档时间等级都有对应的数量n;
46.所述在预测接收时间偏差在预设范围内时,根据预测接收时间偏差选定视频帧集的过程,包括步骤s121。
47.步骤s121,根据所述预测接收时间偏差与时间等级确定数量n。
48.本实施方式中,将步骤s120中的预设范围划分为多个档位的时间等级,每一档时间等级都有对应的数量n,例如,例如将档位1设定为n=5,将档位2设定为n=10,将档位3设定为n=15。根据不同的预测接收时间偏差,确定相应的档位,从而确定对应的数量n。
49.选定的帧数过少会使得视频帧集之间的间隔过大,影响视频播放的流畅程度,如果选定的帧数过多,那么会造成受影响的p帧过多,不利于视频的播放,所以本实施方式中,根据以往的经验,预先划分好对应的档位,让视频受到的影响最少。
50.在一种实施方式中,步骤s110之前,包括步骤s101和步骤s102。
51.步骤s101,获取指定范围内的gop的实际接收时间偏差;
52.步骤s102,取所述指定范围内的gop的实际接收时间偏差的最大值作为预测接收时间偏差。
53.虽然是在一段时间内,网络状况的变化是比较小的,但如果预测接收时间偏差过小的话,依然会出现大的卡顿,所以本实施方式中将历史记录中的最大值作为预测接收时间偏差。
54.这里需要说明的是,步骤s101中的指定范围,可以是预先设定一个m值,往前推m个gop作为指定范围,也可以确定一起始的gop,获取该起始gop到目前的所有实际接收时间偏差,当然该指定范围也可以从一开始调整的gop开始算起。总之,本领域技术人员可以根据具体的情况,圈定指定范围。
55.在一种实施方式中,该接收端视频处理方法还包括步骤s140。
56.步骤s140,在接收到完整的下一个gop的i帧时,清空之前接收到的未解码的视频帧。
57.步骤s110中获取到的接收时间偏差是预测得出的,另外在上一个实施方式中,通过取最大值的方法得到该预测的接收时间偏差,所以到实际情况时,有可能该偏差值过大,从而导致帧间间隔也过大,下一个gop的i帧具备播放条件的时间早于当前gop的最后1或几个p帧的时间,如果仍然按照调整后的帧间间距播放的话,整段视频的播放就会延迟,造成音视频不同步。因此,本实施方式中,若接收到完整的下一个gop的i帧时,还有未解码的视频帧的话,就直接将这些视频帧丢弃,以保证i帧的播放时间能够尽量地往前。
58.在一种实施方式中,该步骤s120之前,还包括步骤s121。
59.步骤s121,在获取到的预测接收时间偏差大于预设范围的最大值时,以预设范围的最大值作为预测接收时间。
60.前面说到,可以若预测接收时间偏差大于预设范围的最大值时,不适合采用本方法,可以采用其他方式来处理,但有时候会面临没有其他方式的尴尬局面,此时也可以尝试用本方法来处理。但又由于超过最大值时,会造成音视频不同步,影响体验,所以本实施方式中以预设范围的最大值作为预测接收时间,以降低音视频不同步而造成的影响。
61.本实施方式是在步骤s120之前,以预设范围的最大值作为预测接收时间,步骤s120中就以该最大值作为依据来选定视频帧集,同样地,在步骤s130中,也以该最大值作为依据来增加所述视频帧集的帧间间隔。
62.在一种实施方式中,该接收端视频处理方法还包括:步骤s150。
63.步骤s150,根据下一个gop的视频帧的播放时间戳选择解码后的下一个gop的视频帧为播放视频帧;其中,所述播放视频帧是用于发送给播放器播放的。
64.因为接收端接收i帧的时间实际是延迟了的,但由于p帧的数据量比较少,i帧之后的p帧一般都能够在理论接收时间完成接收,所以会在一段较短的时间内收到多个p帧,如果都对这些p帧进行解码并播放,为了保证播放的即时性,可能会出现短暂的快进的效果。为了避免这种情况出现,本实施方式中根据gop的视频帧的播放时间,对解码后的视频帧进行筛选,抽起部分视频帧,选择留下的视频帧,将留下的视频帧发送给播放器播放,例如,根据码流的帧率延时时间,送当前最新解码完成的p帧去播放。
65.在一种实施方式中,该接收端视频处理方法还包括:步骤s160。
66.步骤s160,根据与视频同步的音频数据选择解码后的下一个gop的视频帧为播放视频帧;其中,所述播放视频帧是用于发送给播放器播放的。
67.本实施方式中,以音频数据为标杆对视频帧进行调整,这样子做可以消除音视频之间的不同步。
68.实施例二
69.与实施例一的方法对应,如图3所示,本发明还提供一种接收端视频处理装置3,包括:获取模块310、选定模块320和调整模块330。
70.获取模块310,用于获取下一个gop的i帧的预测接收时间偏差,其中,预测接收时间偏差是预测接收完成时间和理论应接收完成时间的差值;
71.选定模块320,用于在预测接收时间偏差在预设范围内时,根据预测接收时间偏差
选定视频帧集,其中,所述视频帧集包括当前gop的最后n帧帧间帧和下一个gop的i帧;
72.调整模块330,用于基于预测接收时间偏差增加所述视频帧集的帧间间隔。
73.在一种实施方式中,所述预测接收时间偏差的预设范围被划分为多档时间等级,每一档时间等级都有对应的数量n;
74.所述选定模块根据所述预测接收时间偏差与时间等级确定数量n。
75.在一种实施方式中,该接收端视频处理装置还包括:计算模块;
76.所述计算模块用于获取指定范围内的gop的实际接收时间偏差,取所述指定范围内的gop的实际接收时间偏差的最大值作为预测接收时间偏差。
77.在一种实施方式中,该接收端视频处理装置还包括:清空模块;
78.所述清空模块用于在接收到完整的下一个gop的i帧时,清空之前接收到的未解码的视频帧。
79.在一种实施方式中,所述选定模块还用于在获取到的预测接收时间偏差大于预设范围的最大值时,以预设范围的最大值作为预测接收时间。
80.在一种实施方式中,该接收端视频处理装置还包括:同步模块;
81.同步模块,用于根据下一个gop的视频帧的播放时间戳选择下一个gop的解码后的视频帧为播放视频帧;其中,所述播放视频帧是用于发送给播放器播放的。
82.在一种实施方式中,该接收端视频处理装置还包括:同步模块;
83.同步模块,用于根据与视频同步的音频数据选择下一个gop的解码后的视频帧为播放视频帧;其中,所述播放视频帧是用于发送给播放器播放的。
84.本装置中,通过预估算得下一个gop的i帧的预测接收时间偏差,将原本属于最后一个p帧与i帧之间的由时间偏差造成的时间间隔等分到选定视频帧集中,使得画面相对更加平滑,让人感受不到因延迟接收到i帧而产生的明显的卡顿。
85.实施例三
86.本发明实施例还提供了一种存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一实施例的接收端视频处理方法。
87.本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、随机存取存储器(ram,random access memory)、只读存储器(rom,read-only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
88.或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、终端、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、ram、rom、磁碟或者光盘等各种可以存储程序代码的介质。
89.与上述的计算机存储介质对应的是,在一个实施例中还提供一种计算机设备,该计算机设备包括存储器、编码器及存储在存储器上并可在编码器上运行的计算机程序,其中,编码器执行程序时实现如上述各实施例中的任意一种接收端视频处理方法。
90.上述计算机设备,通过预估算得下一个gop的i帧的预测接收时间偏差,将原本属于最后一个p帧与i帧之间的由时间偏差造成的时间间隔等分到选定视频帧集中,使得画面相对更加平滑,让人感受不到因延迟接收到i帧而产生的明显的卡顿。
91.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
92.显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献