自适应帧率的实时视频处理方法及系统与流程

摘要: 本发明涉及数据处理,特别涉及一种自适应帧率的实时视频处理方法及系统。背景技术:1、随着数字图像处理技术的快速发展,实时视频分析在课堂行为分析、人脸考勤、安防监控...
自适应帧率的实时视频处理方法及系统与流程

本发明涉及数据处理,特别涉及一种自适应帧率的实时视频处理方法及系统。

背景技术:

1、随着数字图像处理技术的快速发展,实时视频分析在课堂行为分析、人脸考勤、安防监控、视频会议等场景中得到了广泛应用。在这些应用场景中,系统通常需要对实时视频图像进行多维度分析运算(如人物识别、行为分析、专注度评估等),并将运算结果叠加到图像上回显。然而,实际应用中普遍面临以下技术难题:

2、原始视频图像需要依次经过多个步骤的处理和运算,受到运算复杂度和硬件条件的限制,中间步骤的处理时间往往远低于图像的输入速度,导致输入与输出不对称,运行过程中逐渐积累延时,实时性严重下降。现有技术中,通常是通过搜集图像特征信息建立模型并选择优化策略来提升输出性能,或通过动态降低输入帧率来匹配输出能力,然而,前者依赖大量数据训练和模型迭代,部署条件苛刻且迁移性能差;后者采用阶梯性阈值调整,从开始调整到效果生效存在显著的滞后性,且当输入帧率远大于输出帧率时,缓存中会积累大量待处理图像,导致严重延时。

技术实现思路

1、基于此,本发明的目的是提供一种自适应帧率的实时视频处理方法及系统,以至少解决上述技术中的不足。

2、本发明提出一种自适应帧率的实时视频处理方法,包括:

3、获取视频帧数据流,对所述视频帧数据流的每一帧解码得到帧图像,并提取当前帧的多维度的时空域特征参数,其中,所述多维度的时空域特征参数包括时域特征、空域特征和频域特征;

4、构建帧保留效用函数,并利用所述帧保留效用函数和所述时空域特征参数计算出所述当前帧的边际保留效用值,当所述边际保留效用值低于动态效用阈值时,将所述当前帧标记为丢弃帧,否则将所述当前帧标记为核心关键帧或低优先级帧;

5、构建多优先级的队列结构,在所述队列结构中,每一帧均携带帧类型标签,所述帧类型标签包括所述核心关键帧和所述低优先级帧;

6、实时采集每一帧在各运算单元中的实际运算耗时,采用改进的参数指数平滑模型进行算力预测,并结合待运算队列的实时积压长度进行前馈修正,生成算力预测值;

7、构建运算单元集合,并利用所述运算单元集合和所述算力预测值对所述队列结构按照帧类型标签进行逻辑运算,以得到帧处理数据,并对所述帧处理数据进行排序,以得到对应的有序帧。

8、进一步的,获取视频帧数据流,对所述视频帧数据流的每一帧解码得到帧图像,并提取当前帧的多维度的时空域特征参数的步骤包括:

9、从视频源获取原始数据流,并对所述原始数据流进行解码,以得到独立的帧图像;

10、将所述帧图像划分为多个互不重叠的宏块,定义参考帧,并在所述参考帧的搜索范围内,为当前帧中的每个宏块寻找最相似的匹配块,计算出所述匹配块与当前宏块之间的空间位移,以得到对应的时域特征;

11、构建三维联合熵,并利用所述三维联合熵对所述帧图像进行颜色空间特征统计,以得到对应的空域特征;

12、通过离散余弦变换算法将所述帧图像从空间域转换到频率域,并计算出高频能量占比,以得到对应的频域特征。

13、进一步的,所述帧保留效用函数的计算公式为:

14、

15、式中,表示待运算队列当前积压的帧数量,表示待运算队列的理想积压量,表示预测完成一帧处理所需要的平均耗时,表示在无负载状态下的单帧运算耗时,表示惩罚曲率系数;

16、所述边际保留效用值的计算公式为:

17、

18、式中,表示当前帧的三维联合熵,表示三维联合熵的理论最大值,表示当前帧的时域特征,表示时域特征的归一化参考最大值,表示三维联合熵的收益权重系数,表示时域特征的收益权重系数,表示惩罚权重系数;

19、所述动态效用阈值的计算公式为:

20、

21、式中,表示预设的基础效用阈值,表示负载敏感系数,表示用于处理视频帧数据流的运算单元总数,表示随机扰动系数,表示最近帧的边际保留效用值的标准差。

22、进一步的,构建多优先级的队列结构的步骤包括:

23、分别计算出运算队列的积压上限阈值和积压下限阈值,并利用所述上限阈值和所述下限阈值结合待运算队列的实时积压长度构建对应的多优先级策略;

24、根据所述多优先级策略和所述帧类型标签生成校验规则,并利用所述校验规则得到多优先级的队列结构。

25、进一步的,实时采集每一帧在各运算单元中的实际运算耗时,采用改进的参数指数平滑模型进行算力预测,并结合待运算队列的实时积压长度进行前馈修正,生成算力预测值的步骤包括:

26、针对第帧,计算其在全部个运算单元中的原始最大耗时:

27、

28、式中,表示第帧在第个运算单元中的实际运算耗时;

29、若当前帧的帧类型标签为低优先级帧,则计算其修正系数:

30、

31、式中,表示最近帧所有核心关键帧在各运算单元的最大耗时的加权平均值,表示最近帧所有低优先级帧在各运算单元的最大耗时的加权平均值,表示强化系数,表示指示函数,当条件成立时取值为1,否则为0,表示最近帧原始最大耗时的算术平均值,表示最近帧原始最大耗时的标准差;

32、根据帧类型标签,生成对应的有效更新耗时:

33、

34、式中,表示当前帧的帧类型标签;

35、获取预测步长,对于第帧,使用其有效更新耗时作为观测值,计算出对应的水平分量、趋势分量以及周期分量;

36、根据所述水平分量、所述趋势分量以及所述周期分量计算出所述预测步长的向前预测基值,并根据所述向前预测基值结合待运算队列的实时积压长度进行前馈修正,以生成算力预测值。

37、本发明还提出一种自适应帧率的实时视频处理系统,包括:

38、数据获取模块,用于获取视频帧数据流,对所述视频帧数据流的每一帧解码得到帧图像,并提取当前帧的多维度的时空域特征参数,其中,所述多维度的时空域特征参数包括时域特征、空域特征和频域特征;

39、数据比对模块,用于构建帧保留效用函数,并利用所述帧保留效用函数和所述时空域特征参数计算出所述当前帧的边际保留效用值,当所述边际保留效用值低于动态效用阈值时,将所述当前帧标记为丢弃帧,否则将所述当前帧标记为核心关键帧或低优先级帧;

40、结构构建模块,用于构建多优先级的队列结构,在所述队列结构中,每一帧均携带帧类型标签,所述帧类型标签包括所述核心关键帧和所述低优先级帧;

41、算力预测模块,用于实时采集每一帧在各运算单元中的实际运算耗时,采用改进的参数指数平滑模型进行算力预测,并结合待运算队列的实时积压长度进行前馈修正,生成算力预测值;

42、数据处理模块,用于构建运算单元集合,并利用所述运算单元集合和所述算力预测值对所述队列结构按照帧类型标签进行逻辑运算,以得到帧处理数据,并对所述帧处理数据进行排序,以得到对应的有序帧。

43、进一步的,所述数据获取模块具体用于:

44、从视频源获取原始数据流,并对所述原始数据流进行解码,以得到独立的帧图像;

45、将所述帧图像划分为多个互不重叠的宏块,定义参考帧,并在所述参考帧的搜索范围内,为当前帧中的每个宏块寻找最相似的匹配块,计算出所述匹配块与当前宏块之间的空间位移,以得到对应的时域特征;

46、构建三维联合熵,并利用所述三维联合熵对所述帧图像进行颜色空间特征统计,以得到对应的空域特征;

47、通过离散余弦变换算法将所述帧图像从空间域转换到频率域,并计算出高频能量占比,以得到对应的频域特征。

48、进一步的,所述结构构建模块具体用于:

49、分别计算出运算队列的积压上限阈值和积压下限阈值,并利用所述上限阈值和所述下限阈值结合待运算队列的实时积压长度构建对应的多优先级策略;

50、根据所述多优先级策略和所述帧类型标签生成校验规则,并利用所述校验规则得到多优先级的队列结构。

51、进一步的,所述算力预测模块具体用于:

52、针对第帧,计算其在全部个运算单元中的原始最大耗时:

53、

54、式中,表示第帧在第个运算单元中的实际运算耗时;

55、若当前帧的帧类型标签为低优先级帧,则计算其修正系数:

56、

57、式中,表示最近帧所有核心关键帧在各运算单元的最大耗时的加权平均值,表示最近帧所有低优先级帧在各运算单元的最大耗时的加权平均值,表示强化系数,表示指示函数,当条件成立时取值为1,否则为0,表示最近帧原始最大耗时的算术平均值,表示最近帧原始最大耗时的标准差;

58、根据帧类型标签,生成对应的有效更新耗时:

59、

60、式中,表示当前帧的帧类型标签;

61、获取预测步长,对于第帧,使用其有效更新耗时作为观测值,计算出对应的水平分量、趋势分量以及周期分量;

62、根据所述水平分量、所述趋势分量以及所述周期分量计算出所述预测步长的向前预测基值,并根据所述向前预测基值结合待运算队列的实时积压长度进行前馈修正,以生成算力预测值。

63、本发明还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的自适应帧率的实时视频处理方法。

64、本发明还提出一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的自适应帧率的实时视频处理方法。

65、与现有技术相比,本发明当中的自适应帧率的实时视频处理方法及系统,通过构建帧保留效用函数,对每一帧的保留价值进行量化评估,当负载较高时,只有效用值超过动态阈值的帧才被保留,从而在源头上控制进入运算流水线的帧数量,有效避免延时累积;通过设置动态效用阈值,能够根据实时负载状态自动调节,当负载升高时阈值自动提高,只有重要性极高的帧才能入队;负载降低时阈值自动降低,使更多帧得以保留以充分利用空闲算力;通过将低优先级帧设置为不占用主队列存储空间,而是直接注入当前空闲运算单元的输入队列,在不加剧主队列积压的前提下利用空闲算力完成精简运算。