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

视频抖动检测方法、装置、计算机设备及存储介质与流程

2022-06-18 03:07:21 来源:中国专利 TAG:


1.本公开涉及视频处理技术领域,尤其涉及一种视频抖动检测方法、装置、计算机设备及存储介质。


背景技术:

2.在视频播放时,网络抖动会导致播放中的视频出现时快时慢或者中断,极大影响用户体验。
3.相关技术中,通常是使用卡尔曼滤波的方法检测视频抖动值,来辅助增加抖动缓冲区以减弱网络抖动带入的影响,从而提升视频播放效果。
4.这种方式下,视频抖动检测不够准确,导致视频抖动检测值的可参考性不高,影响后续视频的播放效果。
5.公开内容
6.本发公开在至少在一定程度上解决相关技术中的技术问题之一。
7.为此,本公开的目的在于提出一种视频抖动检测方法、装置、计算机设备及存储介质,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够有效地提升视频抖动值的检测准确性,当将该视频抖动值作为视频网络抖动分析的依据时,能够有效地辅助提升视频播放效果。
8.为达到上述目的,本公开第一方面实施例提出的视频抖动检测方法,包括:确定当前视频帧的收帧用时;确定已缓存视频帧的抖动分布信息;根据收帧用时和抖动分布信息,确定视频抖动值。
9.本公开第一方面实施例提出的视频抖动检测方法,通过确定当前视频帧的收帧用时,并确定已缓存视频帧的抖动分布信息,以及根据收帧用时和抖动分布信息来确定视频抖动值,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够有效地提升视频抖动值的检测准确性,当将该视频抖动值作为视频网络抖动分析的依据时,能够有效地辅助提升视频播放效果。
10.为达到上述目的,本公开第二方面实施例提出的视频抖动检测装置,包括:第一确定模块,用于确定当前视频帧的收帧用时;第二确定模块,用于确定已缓存视频帧的抖动分布信息;第三确定模块,用于根据收帧用时和抖动分布信息,确定视频抖动值。
11.本公开第二方面实施例提出的视频抖动检测装置,通过确定当前视频帧的收帧用时,并确定已缓存视频帧的抖动分布信息,以及根据收帧用时和抖动分布信息来确定视频抖动值,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够有效地提升视频抖动值的检测准确性,当将该视频抖动值作为视频网络抖动分析的依据时,能够有效地辅助提升视频播放效果。
12.本公开第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本公开第一方面实施例提出的视频抖动检测方法。
13.本公开第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开第一方面实施例提出的视频抖动检测方法。
14.本公开第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行如本公开第一方面实施例提出的视频抖动检测方法。
15.本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
16.本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
17.图1是本公开一实施例提出的视频抖动检测方法的流程示意图;
18.图2是本公开实施例中视频处理的流程图;
19.图3是本公开实施例中计算模块的结构图;
20.图4是本公开另一实施例提出的视频抖动检测方法的流程示意图;
21.图5是本公开另一实施例提出的视频抖动检测方法的流程示意图;
22.图6根据本公开一实施例提出的视频抖动检测装置的结构示意图;
23.图7根据本公开另一实施例提出的视频抖动检测装置的结构示意图;
24.图8根据本公开另一实施例提出的视频抖动检测装置的结构示意图;
25.图9示出了适于用来实现本公开实施方式的示例性电子设备的框图。
具体实施方式
26.下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本公开,而不能理解为对本公开的限制。相反,本公开的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
27.图1是本公开一实施例提出的视频抖动检测方法的流程示意图。
28.其中,需要说明的是,本实施例的视频抖动检测方法的执行主体为视频抖动检测装置,该装置可以由软件和/或硬件的方式实现,该装置可以配置在计算机设备中,计算机设备可以包括但不限于终端、服务器端等。
29.如图1所示,该视频抖动检测方法,包括:
30.s101:确定当前视频帧的收帧用时。
31.其中,当前待对其进行抖动分析的视频帧,可以被称为当前视频帧。
32.其中,收帧用时,可以是用于描述播放视频帧的计算机设备从服务器接收该当前视频帧所用的时间。
33.也即是说,服务器在压缩得到各帧视频帧时,会预先将各视频帧拆分为多个数据
包,当接收到计算机设备侧发送的视频帧获取请求时,可以将该视频帧相关的多个数据包逐包发送至计算机设备,则计算机设备可以逐包地接收各个数据包,并对组成完整视频帧的多个数据包的收帧用时进行统计分析处理,以得到收帧用时。
34.其中,计算机设备可以在接收各个数据包的过程中进行收帧用时的统计分析处理,或者,也可以是在接收完毕末位数据包时触发进行收帧用时的统计分析处理,或者,计算机设备也可以接收第三方计时装置发送的收帧用时,该收帧用时,可以是第三方计时装置对计算机设备接收当前视频帧的收帧所用时长统计分析得到的,对此不做限制。
35.针对本公开实施例中的应用场景可以具体说明如下:
36.本公开实施例中的视频抖动检测方法可以应用于视频处理场景中,如图2所示,图2是本公开实施例中视频处理的流程图,视频处理包括:发送端采集用户声音和视频画面,对采集的原始视频进行编码压缩,将编码得到的视频数据按照实时传输协议(real-time transport protocol,rtp)打包,编码得到的视频数据超过最大传输单元(maximum transmission unit,mtu)时,可以对视频数据进行rtp分包,得到多个数据包,而后将多个数据包存储至服务器,由服务器将多个数据包推送至接收视频的计算机设备。通常情况下,上述数据包通过网络(network,net)由发送端传输到接收设备,实时传输场景中大部分使用的是用户数据包协议(user datagram protocol,udp)传输,但是由于udp的不可靠性,导致接收设备在接收数据包时会有丢包。
37.可以理解的是,视频处理场景中会使用数据传输协议传输视频帧的数据包,而为了避免数据传输过程中的丢包,可以配置重传机制,即在发生丢包事件时,可以对丢失的数据包进行重传处理,以保障视频的多个数据包传输的准确性,计算机设备从服务器接收多个数据包后,可以对多个数据包进行组包处理,以得到完整的视频帧,组好的视频帧可以被存入网络抖动缓冲区,以辅助提升视频播放流畅性。
38.本公开实施例中可以对上述场景中计算机设备对视频帧的接收用时进行统计分析,以得到当前视频帧的收帧用时,该收帧用时可以被用于分析后续的视频抖动值,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够提升视频抖动值的检测准确性,具体根据收帧用时确定视频抖动值的实施方法可以具体参见下述实施例。
39.s102:确定已缓存视频帧的抖动分布信息。
40.其中,已缓存视频帧,是指播放视频帧的计算机设备已经从服务器接收并缓存的视频帧。
41.其中,抖动分布信息,可以用于描述视频抖动相关的一些信息,例如,播放视频帧的计算机设备在从服务器接收已缓存视频帧的过程中,所记录的视频抖动时间,以及与该视频抖动时间对应的具体的抖动值。
42.举例而言,抖动分布信息可以采用直方图进行表征,或者,也可以采用概率分布函数进行表征,当采用直方图表征抖动分布信息时,该直方图的粒度、抖动的位置和数值,也可以是任何一个或多个能够表征抖动分布信息的数据(例如,视频抖动时间和具体的抖动值),对此不做限制。
43.本公开实施例中,可以采用将视频帧输入至预训练的视频解析模型(该视频解析
模型可以是预先训练得到的,该视频解析模型能够对输入的视频帧进行视频解析处理得到相应的抖动分布信息,对此不做限制)的方法,以确定已缓存视频帧的抖动分布信息,或者,也可以采用数学运算的方式确定已缓存视频帧的抖动分布信息,或者,还可以采用工程学的方式确定已缓存视频帧的抖动分布信息,对此不做限制。
44.也即是说,上述在确定当前视频帧的收帧用时之后,可以确定已缓存视频帧的抖动分布信息,该收帧用时和抖动分布信息可以均被用于确定后续的视频抖动值,从而进一步保障所确定的视频抖动值的可参考性,提升视频抖动值的准确性。
45.s103:根据收帧用时和抖动分布信息,确定视频抖动值。
46.其中,一种或者多种因素所导致的视频帧的延迟变化的程度,即可以被称为视频抖动值,一种或者多种因素,可以具体例如视频信息在实时通信过程中由于网络拥塞、掉包重传等原因而影响视频端到端的延迟,或者由于网络拥塞、掉包重传等原因而导致通过相同链接传输的分组视频帧的延迟。
47.上述在确定当前视频帧的收帧用时,并确定已缓存视频帧的抖动分布信息之后,可以将收帧用时和抖动分布信息输入至预训练的抖动检测模型之中,以得到抖动检测模型输出的视频抖动值,该抖动检测模型可以是预先基于人工智能方法训练得到的,或者,也可以是采用数学运算的方式实现根据收帧用时和抖动分布信息,确定视频抖动值,或者,还可以是采用工程学方式实现根据收帧用时和抖动分布信息,确定视频抖动值,对此不做限制。
48.本公开实施例中,可以采用计算装置辅助实现根据收帧用时和抖动分布信息,确定视频抖动值,如图3所示,图3是本公开实施例中计算装置的结构图,抖动估计器包括:数据包缓冲区(packetbuffer),用于组rtp包,该数据包缓冲区能够用于保障经发送端分包后的视频帧的所有rtp包都被接收到;参考帧仪(framereferencefinder),用于获取当前视频帧解码的依赖帧,确保当前的视频帧可以被正确解码;帧缓冲器(framebuffer),用于防止由于网络抖动或重传导致视频帧组帧完成时间波动;抖动估计器(jitterestimator),用于计算视频帧的收帧时长,再通过直方图确保覆盖阈值抖动,计算出抖动值,提供至帧缓冲器作为视频网络抖动依据。
49.本实施例中,通过确定当前视频帧的收帧用时,并确定已缓存视频帧的抖动分布信息,以及根据收帧用时和抖动分布信息来确定视频抖动值,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够有效地提升视频抖动值的检测准确性,当将该视频抖动值作为视频网络抖动分析的依据时,能够有效地辅助提升视频播放效果。
50.图4是本公开另一实施例提出的视频抖动检测方法的流程示意图。
51.如图4所示,该视频抖动检测方法,包括:
52.s401:确定当前视频帧的首位报文数据包的第一收帧时间。
53.s402:确定当前视频帧的末位报文数据包的第二收帧时间。
54.其中,服务器在对视频帧进行压缩编码时,通常会将该视频帧拆分为多个报文数据包,而携带该视频帧的起始视频语义信息的报文数据包,可以被称为首位报文数据包,相应的,携带该视频帧的末尾视频语义信息的报文数据包,可以被称为末位报文数据包,在首位报文数据包和末位报文数据包之间会包含一个或者多个携带该视频帧中间视频语义信
息的报文数据包,也即是说,首位报文数据包、一个或者多个携带该视频帧中间视频语义信息的报文数据包,末位报文数据包共同构成了完整的一帧视频帧。
55.其中,计算机设备在向服务器请求该当前视频帧的多个报文数据包时,计算机设备接收到首位报文数据包的时间,即可以被称为第一收帧时间,相应的,计算机设备接收到末位报文数据包的时间,即可以被称为第二收帧时间。
56.本公开实施例中,可以对计算机设备接收到首位报文数据包时的第一收帧时间进行标记确认,或者,也可以在计算机设备接收到末尾数据包时触发进行第一收帧时间的标记确认,或者,也可以接收第三方计时装置发送的第一收帧时间,对此不做限制。
57.也即是说,本公开实施例在确定当前视频帧的第一收帧时间和第二收帧时间后,该第一收帧时间和第二收帧时间均被用于确认收帧用时,从而提升当前视频帧收帧用时分析的合理性和便捷性,以及提升收帧用时的确认效率,辅助提升视频抖动检测方法执行的效率。
58.s403:根据第一收帧时间和第二收帧时间确定收帧用时。
59.本公开实施例中,在确定计算机设备接收当前视频帧的第一收帧时间和第二收帧时间后,可以对第一收帧时间和第二收帧时间进行统计分析处理,以得到接收该当前视频帧所涉及的多个报文数据包的收帧用时。
60.可选地,一些实施例中,根据第一收帧时间和第二收帧时间确定收帧用时,可以是确定第一收帧时间和第二收帧时间之间的时间差值,并将时间差值作为收帧用时,从而实现快速便捷地表征出网络抖动和重传均对当前视频帧的收帧用时的影响,有效地辅助提升视频抖动检测方法的执行效率。
61.举例而言,当视频帧在数据包缓冲区组帧完成后,计算当前视频帧的收帧用时可以用公式如下:
62.frame_duration=packet_recv_ts_max-packet_recv_ts_min;
63.其中,packet_recv_ts_max为第二收帧时间,packet_recv_ts_min为第一收帧时间,frame_duration为当前视频帧的收帧用时。
64.当然,也可以采用计时装置,分别以第一收帧时间和第二收帧时间为开始时刻和结束时刻,进行计时的方式来实现根据第一收帧时间和第二收帧时间确定收帧用时,或者,也可以采用其他任意可能的数学运算方式来实现根据第一收帧时间和第二收帧时间确定收帧用时,例如可以将第一收帧时间和第二收帧时间之间的比例值来辅助确定收帧用时,对此不做限制。
65.本公开实施例中,当依据某一视频帧的第一收帧时间和第二收帧时间得到收帧用时之后,为了确定视频抖动值作为视频网络抖动分析的依据,辅助提升视频播放效果,可以触发执行后续步骤。
66.s404:确定已缓存视频帧的抖动分布信息。
67.s405:根据收帧用时和抖动分布信息,确定视频抖动值。
68.s404-s405的描述说明可以具体参见上述实施例,在此不再赘述。
69.本实施例中,通过确定当前视频帧的首位报文数据包的第一收帧时间和当前视频帧的末位报文数据包的第二收帧时间,并根据第一收帧时间和第二收帧时间确定收帧用时,而后确定已缓存视频帧的抖动分布信息,根据收帧用时和抖动分布信息来确定视频抖
动值,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于第一收帧时间和第二收帧时间确定收帧用时,实现快速便捷地表征出网络抖动和重传均对当前视频帧的收帧用时的影响,有效地辅助提升视频抖动检测方法的执行效率,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够有效地提升视频抖动值的检测准确性,当将该视频抖动值作为视频网络抖动分析的依据时,能够有效地辅助提升视频播放效果。
70.图5是本公开另一实施例提出的视频抖动检测方法的流程示意图。
71.如图5所示,该视频抖动检测方法,包括:
72.s501:确定当前视频帧的收帧用时。
73.s502:确定已缓存视频帧的抖动分布信息。
74.s501和s502的描述说明可以具体参见上述实施例,在此不再赘述。
75.本公开实施例中的抖动分布信息包括:多个标记时间,以及与各标记时间对应的抖动值,而后可以在确定已缓存视频帧的多个标记时间之后,可以触发后续步骤。
76.其中,多个标记时间,可以是在指视频抖动检测装置能够表征视频抖动信息的前提下,将视频抖动信息所能覆盖抖动的时长平均划分的若干个相同时间范围,而抖动值可以是视频中对应于相应时间范围的视频抖动程度。
77.举例而言,当采用直方图表征抖动分布信息时,直方图中“桶”个数为300个,每个粒度为10ms,则视频抖动信息所能覆盖抖动的时长可以例如是3000ms,则其中的多个10ms的粒度,即可以分别被称为多个标记时间,多个标记时间分别对应多个时间范围10ms,每个标记时间对应一个抖动值,该抖动值可以以“桶”的高度来表征,该抖动值和相应的标记时间,均可以被称为视频抖动信息,对此不做限制。
78.s503:根据收帧用时,从多个标记时间中确定出目标标记时间,目标标记时间对应目标抖动值,目标抖动值属于多个抖动值。
79.其中,从多个标记时间确定出的与收帧用时匹配的标记时间,即可以被称为目标标记时间,目标标记时间的具体含义是指上述多个标记时间中检测到了视频抖动的标记时间,在目标标记时间上对应的抖动值,即可以被称为目标抖动值,该目标抖动值可以被理解为当前视频帧“命中”的抖动值。
80.可选地,一些实施例中,在根据收帧用时,从多个标记时间中确定出目标标记时间时,可以是确定收帧用时与时间范围之间的相除值,并从多个标记时间中确定与相除值匹配的标记时间,将匹配的标记时间作为目标标记时间,该目标标记时间能够被用于辅助快速确定得到相应的目标抖动值,从而实现快速地结合已缓存视频帧的抖动分布信息确定出当前视频帧命中的抖动值,辅助后续对实际的视频抖动情况进行检测处理,保障视频抖动值的确定准确性。
81.举例而言,计算设备可以记录覆盖3000ms的抖动分布信息,例如可以将3000ms划分为300个范围,每个范围为10ms,则本公开实施例中标记时间的数量为300个,标记时间对应的时间范围为10ms。则当计算机设备接收到一个收帧时长为1000ms的视频帧时,可以用收帧时长1000ms除以标记时间的时间范围10ms,得到相除值100,则第100个标记时间可以被称为目标标记时间,相应的,该目标标记时间对应于抖动分布信息之中描述抖动程度的
抖动值,即可以被称为目标抖动值。
82.另一些实施例中,在根据收帧用时,从多个标记时间中确定出目标标记时间时,还可以采用将收帧用时和与多个标记时间分别对应的抖动分布信息输入至预训练的人工智能模型(该人工智能模型可以提前由多组样本数据提前训练获得的)中,以采用人工智能模型对收帧用时和抖动分布信息进行匹配,以匹配出目标标记时间和目标抖动值,或者,也可以采用其他任意可能的方式来实现根据收帧用时,从多个标记时间中确定出目标标记时间时,以及相应的目标抖动值,对此不做限制。
83.s504:对目标抖动值进行调整,以得到参考抖动值。
84.其中,参考抖动值,可以是采用一定的数值调整规则对目标抖动值进行调优处理得到的抖动值,对抖动值进行调优处理,可以有效地便于对抖动分布信息进行统计分析,具体调整的方式可以是对目标抖动值进行加权调整,对目标抖动值进行归一化调整等等,对此不做限制。
85.本公开实施例可以在对目标抖动值进行调整,以得到参考抖动值的过程中,引入遗忘算法,即可以通过采用遗忘算法更新已缓存视频的抖动分布信息所涉及的数据,当然,也可以采用其他任意可能的算法来辅助更新已缓存视频的抖动分布信息所涉及的数据。
86.举例而言,每当计算机设备接收到视频帧时,可以触发驱动相关模块进行一次统计更新,更新公式如下:
[0087][0088]
其中,vector_sum是指经过遗忘算法更新后,所有标记时间的抖动值的和值,buckets.size()可以指上述标记时间的总数量,buckets[k]可以指第k个标计时间的抖动值,forget_factor是指遗忘算法中的遗忘因子。
[0089]
需要说明的是,遗忘因子是误差测度函数中的加权因子,引入它的目的是为了赋予源数据与新数据以不同值,以使该算法具有对输入过程特性变化的快速反应能力,遗忘因子越小,源数据权重越小,新数据权重越大,通过此公式可以运用遗忘算法计算更新后计算所有标记时间的抖动值的和。
[0090]
buckets[value]=buckets[value] (1-forget_factor);
[0091]
其中,buckets[vaule]是指与目标标记时间对应的目标抖动值。
[0092]
本公开实施例中可以通过此公式,对目标抖动值的权重进行相应的调整,并将调整后的目标抖动值作为参考抖动值,用于下述实施例中辅助确定出视频抖动值,具体可以参见后续实施例。
[0093]
s505:确定多个其他抖动值和参考抖动值的参考抖动和值,其中,其他抖动值是多个抖动值之中除目标抖动值之外的抖动值。
[0094]
本公开实施例中,可以对多个其他抖动值与参考抖动值进行加和处理,并将加和处理的和值作为参考抖动和值,该参考抖动和值,可以被用于后续辅助判断是否满足归一性条件,进而辅助确定视频抖动值。
[0095]
s506:根据多个其他抖动值和参考抖动值,确定视频抖动值。
[0096]
可选地,一些实施例中,根据多个其他抖动值和参考抖动值,确定视频抖动值,可以是对多个其他抖动值和参考抖动值进行加和处理,以得到抖动和值,如果抖动和值满足
归一性条件,则直接根据多个其他抖动值和参考抖动值,确定视频抖动值,如果抖动和值不满足归一性条件,则对参考抖动值进行修正,并根据多个其他抖动值和修正后的参考抖动值,确定视频抖动值,由此,从而提升参考抖动值的可靠性,参考抖动值后续结合多个其他抖动值,作为确定视频抖动值的依据,可以有效地辅助提升视频抖动值的准确性。
[0097]
也即是说,本公开实施例在根据多个其他抖动值和参考抖动值,确定视频抖动值时,考虑到可能会出现偏差,可以预先对多个其他抖动值和参考抖动值进行相应的分析处理,以对各种抖动值进行修正,而后,根据修正后的各种抖动值来辅助确定视频抖动值。
[0098]
本公开实施例在对多个其他抖动值和参考抖动值进行加和处理,以得到抖动和值之后,可以判断抖动和值是否满足归一性条件来分析是否出现偏差,该归一性条件可以是预先设定的,归一性条件是指在空间内找到粒子的概率等于1。该过程可以用以下公式表征:
[0099][0100]
diff_sum=vector_sum-1
[0101]
其中,diff_sum可以看作参考抖动和值vector_sum的偏差,当其数值为0时,没有偏差;数值非0时,则可能是出现了偏差。
[0102]
本实施例中可以是判断上述对多个其他抖动值和参考抖动值进行加和处理的抖动和值是否等于1,如果抖动和值等于1,则判定抖动和值满足归一性条件;如果抖动和值不等于1,则判定抖动和值不满足归一性条件。
[0103]
也即是说,本公开实施例在确定多个其他抖动值和参考抖动值后,多个其他抖动值和参考抖动值被加和处理,用于确定抖动和值,而后根据抖动和值判断参考抖动值是否需要修正,并对其进行修正处理,从而提升参考抖动值的可靠性,参考抖动值后续结合多个其他抖动值,作为确定视频抖动值的依据,可以有效地辅助提升视频抖动值的准确性。
[0104]
举例而言,可以对上述确定的多个其他抖动值a1、a2、a3和参考抖动值b进行加和处理,得到抖动和值c,而后对c和1进行比较,根据c是否等于1来判断其是否满足归一性条件,如果c等于1,则其满足归一性条件,可以直接根据a1、a2、a3和b确定视频抖动值,如果c不等于1,则可以对b进行修正,得到b1,而后根据a1、a2、a3和b1确定视频抖动值。
[0105]
当然,还可以采用将多个其他抖动值和参考抖动值输入至预训练好的人工智能(artificial intelligence,ai)模型中(人工智能ai模型可以通过大量样本数据的模拟提前训练得到)的方式实现根据多个其他抖动值和参考抖动值,确定视频抖动值,或者,还可以采用确定其他抖动值、参考抖动值与视频抖动值三者之间函数关系的方式实现根据多个其他抖动值和参考抖动值,确定视频抖动值,对此不做限制。
[0106]
可选地,一些实施例中,如果抖动和值不满足归一性条件,则可以对参考抖动值进行修正。
[0107]
可选地,一些实施例中,对参考抖动值进行修正,可以是确定差值阈值,并确定抖动和值和归一化阈值之间的参考差值,确定差值阈值和参考差值之间的较小值,其中,较小值是差值阈值或参考差值的幅值,如果参考差值大于或等于零,则确定参考抖动值和较小值的差值作为修正后的参考抖动值,如果参考差值小于零,则确定参考抖动值和较小值的和值作为修正后的参考抖动值,其修正过程可以用如下公式表征:
[0108][0109]
其中,min(|diff_sum|,buckets[n]/16)是用来比较并选取|diff_sum|与buckets[n]/16两者间的较小值作为输出值,buckets[n]/16可以看作针对buckets[n]的一个差值阈值。
[0110]
其中,参考差值相对于某些参考抖动值而言,量级差距可能过大,本公开实施例中为了修正偏差时尽量保护实际参考抖动值的数量特征,可以针对每一个参考抖动值设置一个阈值用来约束对每个参考抖动值的修正范围,该阈值即可以被称为差值阈值。
[0111]
也即是说,本公开实施例在确定抖动和值不满足归一性条件后,可以确定差值阈值和参考差值,而后确定差值阈值和参考差值两者之间的较小值,用于对参考抖动值进行修正,从而在保证参考抖动值数量特征的前提下提升参考抖动值的可靠性,进而提升后续确定视频抖动值的合理性。
[0112]
当然,还可以采用数据统计的方法确定一个适用于大部分修正需求的比例系数,通过参考抖动值与比例系数求相乘值或者相除值,修正参考抖动值,或者,还可以采用多台设备处理视频帧,而后将所得的多个参考抖动值取平均值的方法修正误差,对此不做限制。
[0113]
可选地,一些实施例中,根据多个其他抖动值和参考抖动值,确定视频抖动值,还可以从多个其他抖动值和参考抖动值之中,统计第一抖动值的第一数量,其中,第一抖动值是其他抖动值或参考抖动值,第一数量的第一抖动值的和值大于抖动阈值,将第一数量和时间范围的乘积值,作为视频抖动值,由于计算机设备覆盖视频帧的全部抖动时,可能将一些权重比较小,但数量较多的标记时间计算到第一数量中,当设置一个抖动阈值对第一数量进行约束后,可以提升得到的第一数量的可靠性,从而能够帮助后续结合时间范围得到的视频抖动值,可以有效地提升视频抖动值检测的合理性,提升视频抖动值对当前视频帧抖动情况的表征效果。
[0114]
本公开实施例中,为了尽可能覆盖计算机设备所记录到的视频抖动,同时避免因为覆盖微量的抖动而对视频抖动产生过大的影响,可以设置一个阈值约束所需要的覆盖的抖动范围,该阈值即可以被称为抖动阈值。
[0115]
举例而言,接收视频帧的计算机设备最多可以覆盖3000ms的抖动,为了方便统计,可以把3000ms的抖动划分为300个时间范围m,设置一个抖动阈值97%,而后通过公式:
[0116][0117]
其中,buckets[n]是指参考抖动值。
[0118]
本公开实施例中可以计算出覆盖视频97%的抖动需要n个时间范围m,而后求得两者的乘积l=m*n,l可以称为视频抖动值。
[0119]
当然,还可以采用概率密度函数的方法根据多个其他抖动值和参考抖动值,确定视频抖动值,或者,还可以采用数学统计的方法,获得多个其他抖动值、参考抖动值和视频抖动值三者之间的函数关系式,根据多个其他抖动值和参考抖动值,确定视频抖动值,对此不做限制。
[0120]
本实施例中,通过确定当前视频帧的收帧用时,确定已缓存视频帧的抖动分布信息,根据收帧用时,从多个标记时间中确定出目标标记时间,目标标记时间对应目标抖动
值,而后对目标抖动值进行调整,得到参考抖动值,确定多个其他抖动值和参考抖动值的参考抖动和值,根据多个其他抖动值和参考抖动值,确定视频抖动值,由于标记时间的数量可能比较多,结合收帧用时可以快速地从多个标记时间中确定目标标记时间,计算机设备所覆盖视频抖动的多个标记时间可能会在数据处理时占用目标标记时间的权重,当对目标抖动值进行调整后,可以有效地增加目标标记时间的权重,提升所得的参考抖动值的可靠性,再通过所得的参考抖动值和多个其他抖动值作和求得参考抖动和值,根据参考抖动和值是否满足归一性条件判断是否出现偏差,而后可以选择是否对参考抖动值进行修正,提升参考抖动值的合理性,从而能够帮助后续所得的视频抖动值辅助提升视频播放效果。
[0121]
图6根据本公开一实施例提出的视频抖动检测装置的结构示意图。
[0122]
如图6所示,该视频抖动检测装置60,包括:
[0123]
第一确定模块601,用于确定当前视频帧的收帧用时;
[0124]
第二确定模块602,用于确定已缓存视频帧的抖动分布信息;
[0125]
第三确定模块603,用于根据收帧用时和抖动分布信息,确定视频抖动值。
[0126]
本公开的一些实施例中,如图7所示,图7是本公开另一实施例提出的视频抖动检测装置的结构示意图,所述抖动分布信息包括:多个标记时间,以及与各标记时间对应的抖动值,该第三确定模块603,包括:
[0127]
第一确定子模块6031,用于根据收帧用时,从多个标记时间中确定出目标标记时间,目标标记时间对应目标抖动值,目标抖动值属于多个抖动值;
[0128]
调整子模块6032,用于对目标抖动值进行调整,以得到参考抖动值;
[0129]
第二确定子模块6033,用于确定多个其他抖动值和参考抖动值的参考抖动和值,其中,其他抖动值是多个抖动值之中除目标抖动值之外的抖动值;
[0130]
第三确定子模块6034,用于根据多个其他抖动值和参考抖动值,确定视频抖动值。
[0131]
在本公开的一些实施例中,第三确定子模块6034,具体用于:
[0132]
对多个其他抖动值和参考抖动值进行加和处理,以得到抖动和值;
[0133]
在抖动和值满足归一性条件时,直接根据多个其他抖动值和参考抖动值,确定视频抖动值;
[0134]
在抖动和值不满足归一性条件时,对参考抖动值进行修正,并根据多个其他抖动值和修正后的参考抖动值,确定视频抖动值。
[0135]
在本公开的一些实施例中,第三确定子模块6034,还用于:
[0136]
确定差值阈值;
[0137]
确定抖动和值和归一化阈值之间的参考差值;
[0138]
确定差值阈值和参考差值之间的较小值,其中,较小值是差值阈值或参考差值的幅值;
[0139]
在参考差值大于或等于零时,确定参考抖动值和较小值的差值作为修正后的参考抖动值;
[0140]
在参考差值小于零时,确定参考抖动值和较小值的和值作为修正后的参考抖动值。
[0141]
在本公开的一些实施例中,第一确定模块601,具体用于:
[0142]
确定收帧用时与时间范围之间的相除值;
[0143]
从多个标记时间中确定与相除值匹配的标记时间,并将匹配的标记时间作为目标标记时间。
[0144]
在本公开的一些实施例中,第三确定子模块6034,还用于:
[0145]
确定差值阈值;
[0146]
确定抖动和值和归一化阈值之间的参考差值;
[0147]
确定差值阈值和参考差值之间的较小值,其中,较小值是差值阈值或参考差值的幅值;
[0148]
在参考差值大于或等于零时,确定参考抖动值和较小值的差值作为修正后的参考抖动值;
[0149]
在参考差值小于零时,确定参考抖动值和较小值的和值作为修正后的参考抖动值。
[0150]
本公开的一些实施例中,如图8所示,图8是本公开另一实施例提出的视频抖动检测装置的结构示意图,该第一确定模块601,包括:
[0151]
第四确定子模块6011,用于确定当前视频帧的首位报文数据包的第一收帧时间;
[0152]
第五确定子模块6012,用于确定当前视频帧的末位报文数据包的第二收帧时间;
[0153]
第六确定子模块6013,用于根据第一收帧时间和第二收帧时间确定收帧用时。
[0154]
在本公开的一些实施例中,第六确定子模块6013,用于:
[0155]
确定第一收帧时间和第二收帧时间之间的时间差值,并将时间差值作为收帧用时。
[0156]
需要说明的是,前述对视频抖动检测方法的解释说明也适用于本实施例的视频抖动检测装置,此处不再赘述。
[0157]
本实施例中,通过确定当前视频帧的收帧用时,并确定已缓存视频帧的抖动分布信息,以及根据收帧用时和抖动分布信息来确定视频抖动值,由于网络抖动和重传均可能会影响到当前视频帧的收帧用时,当基于检测到当前视频帧的收帧用时来辅助分析视频抖动值时,使得检测到的视频抖动值能够有效地表征出网络抖动和重传对抖动值的影响,从而能够有效地提升视频抖动值的检测准确性,当将该视频抖动值作为视频网络抖动分析的依据时,能够有效地辅助提升视频播放效果。
[0158]
为了实现上述实施例,本公开还提出一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如本公开前述实施例提出的视频抖动检测方法。
[0159]
为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开前述实施例提出的视频抖动检测方法。
[0160]
为了实现上述实施例,本公开还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行如本公开前述实施例提出的视频抖动检测方法。
[0161]
图9示出了适于用来实现本公开实施方式的示例性计算机设备的框图。图9显示的计算机设备12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0162]
如图9所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件
(包括系统存储器28和处理单元16)的总线18。
[0163]
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture;以下简称:isa)总线,微通道体系结构(micro channel architecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(video electronics standards association;以下简称:vesa)局域总线以及外围组件互连(peripheral component interconnection;以下简称:pci)总线。
[0164]
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0165]
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。
[0166]
尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
[0167]
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本公开所描述的实施例中的功能和/或方法。
[0168]
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(local area network;以下简称:lan),广域网(wide area network;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0169]
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的视频抖动检测方法。
[0170]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其他实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或
者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0171]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
[0172]
需要说明的是,在本公开的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0173]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
[0174]
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0175]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0176]
此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0177]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0178]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定是指相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0179]
尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

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

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

相关文献