视频流处理方法及系统技术方案

技术编号:35560637 阅读:20 留言:0更新日期:2022-11-12 15:43
本发明专利技术提供了一种视频流处理方法及系统,包括:步骤S1:将视频数据解析生成帧数据,基于标识机制将帧数据存入固定大小的连续缓存中;步骤S2:基于标识机制将缓存中的帧数据利用多线程分别批量获取对应的连续帧数据并进行推理处理;当当前缓存中的帧数据推理结束时,则重新获取视频中待解析的视频数据,并将重新获取的帧数据覆盖原缓存内容存入固定大小的连续缓存中,重复触发步骤S2,直至所有视频帧信息处理完成;步骤S3:将每次推理处理的结果按照帧顺序拼接整合得到最终推理结果。照帧顺序拼接整合得到最终推理结果。照帧顺序拼接整合得到最终推理结果。

【技术实现步骤摘要】
视频流处理方法及系统


[0001]本专利技术涉及视频流处理
,具体地,涉及视频流处理方法及系统,更为具体地,涉及一种视频流并发处理方法及系统。

技术介绍

[0002]随时时代的不断发展,深度学习技术已经广泛应用于视频分析的各个应用场景中。利用相应的深度学习模型,基于机器解码提取视频帧进行推理分析实现评估相较于传统人工审阅视频的评估,机器评估可以依据性能配置更快地评估完视频中的运动质量,从而提升评估速度。为了精确地从视频中提取运动特征细节信息,用于婴幼儿全身运动质量评估的视频源多为720p、1080p甚至更为高清的视频,这会增加视频处理的数据量,提升这一场景下视频解码推理处理分析性能的技术方案是本领域技术人员需要解决的问题。
[0003]在现有的视频处理方案中,已有将视频进行切帧并使用分布式处理并行来提高对视频的处理速度。本场景下单帧解码后信息为MB量级,连续多帧数据的多次拷贝将明显占用存储空间及处理运行时间。
[0004]专利文献CN107864391A(申请号:201710844718.2)公开了视频流缓存分发方法,包括分配容纳视频数据的内存块作为缓存块,将其存入缓存块;将缓存块存入数据中心,缓存块的地址存入第一地址队列;获取缓存块,将缓存块中的数据分发至对应的客户端,并释放缓存块。该专利中采用的缓存块消费主要为多个分离独立的缓存块,每块独立交于分发线程发送,发送完成释放缓存块。该专利技术主要针对视频缓存发送,而当前视频缓存采用的是连续的缓存内存区域。某帧处理中的视频缓存可以同时作为多个推理线程中的连续视频帧输入。更为适配当前视频处理场景。
[0005]专利文献CN109886074A(申请号:201811608009.5)公开了一种基于视频流处理的电梯乘客数并行检测方法。首先,利用采集视频数据进行正负样本标定,并使用级联分类器训练样本得到电梯乘客的分类器文件;其次,读取并转换电梯视频流数据,对视频进行预处理转化为弹性分布式数据集RDD;然后,执行基于SparkStreaming的电梯乘客数检测算法,在输入视频流数据后,输出带有电梯乘客数的视频帧数据;最后,将电梯乘客数检测流处理算法部署在Spark分布式集群上,设置好与算法步骤数相匹配的节点,在后台自动获得快速可控的实时流数据处理视频。该专利因为数据处理数据需在集群中传递,导致对应帧数据需要进行多次集群间的复制传输。

技术实现思路

[0006]针对现有技术中的缺陷,本专利技术的目的是提供一种视频流处理方法及系统。
[0007]根据本专利技术提供的一种视频流处理方法,包括:
[0008]步骤S1:将视频数据解析生成帧数据,基于标识机制将帧数据存入固定大小的连续缓存中;
[0009]步骤S2:基于标识机制将缓存中的帧数据利用多线程分别批量获取对应的连续帧
数据并进行推理处理;当当前缓存中的帧数据推理结束时,则重新获取视频中待解析的视频数据,并将重新获取的帧数据覆盖原缓存内容存入固定大小的连续缓存中,重复触发步骤S2,直至所有视频帧信息处理完成;
[0010]步骤S3:将每次推理处理的结果按照帧顺序拼接整合得到最终推理结果;
[0011]所述标识机制是通过标识记录当前视频帧解析进度,确定固定大小缓存上每块数据存储槽上数据的具体状态和状态变化,实现使用固定大小的连续缓存完成视频流的推理处理。
[0012]优选地,所述标识机制采用:利用flagA标识当前写入缓存帧进度;利用flagB标识当前已处理缓存帧进度;利用flagC标识处理中帧进度;
[0013]所述flagA标识控制缓存区域中视频帧解析后写入的地址位置;
[0014]所述flagB标识控制缓存区域中已经完成所有推理处理,能够被新的帧数据后续覆盖的地址位置;
[0015]所述flagC标识控制缓存区域中处理线程获取待处理的固定大小连续帧数据的地址位置。
[0016]优选地,所述步骤S1采用:从缓存起始位置写入数据,每向缓存中写入一帧数据后, flagA加一;当flagA/N取余的帧标识地址小于已处理帧标识flagB/N取余的帧标识地址时,解析帧信息并将帧解析数据写入flagA/N取余的帧标识地址,否则,等待直到flagB更新后继续解析帧信息;其中,N表示连续缓存帧数量。
[0017]优选地,所述步骤S2采用:使用长度为M的数组记录视频中每个帧的处理计数,数组中第i位的值记录视频中第i帧的已处理次数;输入连续P帧的帧数据且推理完成后,将当前数组中对应帧的处理计数加一,同时判断当前缓存帧标识是否需要更新,当需要更新时,更新当前缓存帧标识。
[0018]优选地,所述判断当前缓存帧标识是否需要更新,当需要更新时,更新当前缓存帧标识采用:查找数组flagB位置后,当长度为M的数组中值不等于P/Q的值的最小索引值减一更新flagB;其中,P表示每次推理处理连续帧数;Q表示推理帧间隔;当P=Q 时,不同推理线程之间将不会有重叠的帧信息作为输入进行推理;
[0019]根据flagC地址取连续P帧数据进行推理,并将flagC加Q;如果flagC+P≥flagA 且flagA未达到视频总帧数,消费线程将等待直到flagA更新后继续尝试取P帧数据做推理;其中,flagC会从Q

P处开始取对应帧数据,当对应帧不存在时,帧数据以0填充。
[0020]优选地,连续缓存的大小以及缓存帧数量由输入视频元信息中单帧数据大小、内存资源以及多线程并发情况控制选取的。
[0021]根据本专利技术提供的一种视频流处理系统,包括:
[0022]模块M1:将视频数据解析生成帧数据,基于标识机制将帧数据存入固定大小的连续缓存中;
[0023]模块M2:基于标识机制将缓存中的帧数据利用多线程分别批量获取对应的连续帧数据并进行推理处理;当当前缓存中的帧数据推理结束时,则重新获取视频中待解析的视频数据,并将重新获取的帧数据覆盖原缓存内容存入固定大小的连续缓存中,重复触发模块M2,直至所有视频帧信息处理完成;
[0024]模块M3:将每次推理处理的结果按照帧顺序拼接整合得到最终推理结果;
[0025]所述标识机制是通过标识记录当前视频帧解析进度,确定固定大小缓存上每块数据存储槽上数据的具体状态和状态变化,实现使用固定大小的连续缓存完成视频流的推理处理。
[0026]优选地,所述标识机制采用:利用flagA标识当前写入缓存帧进度;利用flagB标识当前已处理缓存帧进度;利用flagC标识处理中帧进度;
[0027]所述flagA标识控制缓存区域中视频帧解析后写入的地址位置;
[0028]所述flagB标识控制缓存区域中已经完成所有推理处理,能够被新的帧数据后续覆盖的地址位置;
[0029]所述flagC标识控制缓存区域中处理线程获取待处理的固定大小连续帧数据的地址位置。
[0030]优选地,所述模块M1采用:从缓存起始位置写入数据,每向缓存中写入一帧数据后, fl本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视频流处理方法,其特征在于,包括:步骤S1:将视频数据解析生成帧数据,基于标识机制将帧数据存入固定大小的连续缓存中;步骤S2:基于标识机制将缓存中的帧数据利用多线程分别批量获取对应的连续帧数据并进行推理处理;当当前缓存中的帧数据推理结束时,则重新获取视频中待解析的视频数据,并将重新获取的帧数据覆盖原缓存内容存入固定大小的连续缓存中,重复触发步骤S2,直至所有视频帧信息处理完成;步骤S3:将每次推理处理的结果按照帧顺序拼接整合得到最终推理结果;所述标识机制是通过标识记录当前视频帧解析进度,确定固定大小缓存上每块数据存储槽上数据的具体状态和状态变化,实现使用固定大小的连续缓存完成视频流的推理处理。2.根据权利要求1所述的视频流处理方法,其特征在于,所述标识机制采用:利用flagA标识当前写入缓存帧进度;利用flagB标识当前已处理缓存帧进度;利用flagC标识处理中帧进度;所述flagA标识控制缓存区域中视频帧解析后写入的地址位置;所述flagB标识控制缓存区域中已经完成所有推理处理,能够被新的帧数据后续覆盖的地址位置;所述flagC标识控制缓存区域中处理线程获取待处理的固定大小连续帧数据的地址位置。3.根据权利要求2所述的视频流处理方法,其特征在于,所述步骤S1采用:从缓存起始位置写入数据,每向缓存中写入一帧数据后,flagA加一;当flagA/N取余的帧标识地址小于已处理帧标识flagB/N取余的帧标识地址时,解析帧信息并将帧解析数据写入flagA/N取余的帧标识地址,否则,等待直到flagB更新后继续解析帧信息;其中,N表示连续缓存帧数量。4.根据权利要求2所述的视频流处理方法,其特征在于,所述步骤S2采用:使用长度为M的数组记录视频中每个帧的处理计数,数组中第i位的值记录视频中第i帧的已处理次数;输入连续P帧的帧数据且推理完成后,将当前数组中对应帧的处理计数加一,同时判断当前缓存帧标识是否需要更新,当需要更新时,更新当前缓存帧标识。5.根据权利要求4所述的视频流处理方法,其特征在于,所述判断当前缓存帧标识是否需要更新,当需要更新时,更新当前缓存帧标识采用:查找数组flagB位置后,当长度为M的数组中值不等于P/Q的值的最小索引值减一更新flagB;其中,P表示每次推理处理连续帧数;Q表示推理帧间隔;当P=Q时,不同推理线程之间将不会有重叠的帧信息作为输入进行推理;根据flagC地址取连续P帧数据进行推理,并将flagC加Q;如果flagC+P≥flagA且flagA未达到视频总帧数,消费线程将等待直到flagA更新后继续尝试取P帧数据做推理;其中,flagC会从Q

P处开始取对应帧数据,当对应帧不存在时,帧数据以0填充。6.根据权利要求1所述的视频流处理方法,其特征在于,连续缓存的大小以及缓存帧数量由输入视频元信息中单帧数据大小、...

【专利技术属性】
技术研发人员:陈伟睿王子龙丁晓伟张政
申请(专利权)人:苏州体素信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1