CN118138801A - 视频数据处理方法、装置、电子设备及存储介质 - Google Patents
视频数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118138801A CN118138801A CN202410559070.4A CN202410559070A CN118138801A CN 118138801 A CN118138801 A CN 118138801A CN 202410559070 A CN202410559070 A CN 202410559070A CN 118138801 A CN118138801 A CN 118138801A
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- processing
- target
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 491
- 238000000605 extraction Methods 0.000 claims abstract description 238
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 114
- 238000005457 optimization Methods 0.000 claims description 166
- 238000004364 calculation method Methods 0.000 claims description 56
- 238000000034 method Methods 0.000 claims description 41
- 238000013441 quality evaluation Methods 0.000 claims description 21
- 238000012163 sequencing technique Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 230000005012 migration Effects 0.000 claims description 8
- 238000013508 migration Methods 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 15
- 230000000007 visual effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000004064 recycling Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012913 prioritisation Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提出的视频数据处理方法、装置、电子设备及存储介质,该方法通过首先,获取目标任务的视频数据,对视频数据进行数据解码得到多个解码数据帧,目标任务包括任务帧率以及任务最低帧率;然后,获取目标设备中的算法消耗解码数据帧的处理参数,并基于所述处理参数确定抽帧速率,当抽帧速率不小于任务最低帧率时,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据;当抽帧速率小于任务最低帧率时,选取与目标任务匹配的协同处理设备进行数据处理,以提高处理目标任务的可靠性、实时性和平滑性。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及视频数据处理方法、装置、电子设备及存储介质。
背景技术
视觉算法任务是指利用计算机视觉技术,通过对图像或视频进行处理和分析,实现识别、检测、分类、分割等多种任务。视觉算法任务的主要处理流程通常包括将输入视频流经过视频处理单元进行解码和相应的前处理后,将处理后的图像数据分发到算法计算单元,由算法计算单元进行模型推理和相应的数据处理后生成结果数据,再将结果数据发送至接收方进行存储以及业务的应用等。
但是由于不同的视觉算法任务需求不同,算法计算单元所需要执行的数据处理步骤也不同。存在执行复杂视觉算法任务时,算法计算单元所需执行的数据处理步骤所需要的处理时间较长,使得输入的图像数据经过解码和前处理后堆积到算法计算单元的处理队列中等待算法计算单元的逐一处理,使得输出结果数据较为缓慢且无法实时对应输入的图像数据,导致处理视觉算法任务时的平滑性较低。
发明内容
本申请实施例的提供了一种视频数据处理方法、装置、电子设备及存储介质,能够提高处理视觉算法任务的实时性和平滑性。
为实现上述目的,本申请实施例的第一方面提出了一种视频数据处理方法,所述方法包括:
获取目标任务的视频数据,对所述视频数据进行数据解码得到多个解码数据帧,所述目标任务包括任务最低帧率;
获取目标设备中的算法消耗解码数据帧的处理参数,并基于所述处理参数确定抽帧速率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
当所述抽帧速率不小于所述任务最低帧率时,根据所述抽帧速率从所述多个解码数据帧中选取至少一个所述解码数据帧发送至缓存区,逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据;
当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理,得到第一输出数据,当所述缓存区中存在至少一个所述解码数据帧,利用所述目标设备对所述解码数据帧进行数据处理,得到第二输出数据,将所述第一输出数据和所述第二输出数据作为所述目标输出数据。
在一些实施例,所述处理参数包括目标设备的缓存区对应的缓存帧数,所述目标任务包括任务帧率,所述基于所述处理参数确定抽帧速率,包括:
基于所述任务帧率确定多个第一数量阈值,所述第一数量阈值逐渐增大,相邻的两个所述第一数量阈值构成第一帧率区间;
获取每个所述第一帧率区间的预设帧率,所述预设帧率逐渐减小;
选取与所述缓存帧数匹配的所述第一帧率区间的所述预设帧率作为所述抽帧速率。
在一些实施例,所述根据所述抽帧速率从所述多个解码数据帧中选取至少一个所述解码数据帧发送至缓存区,包括:
获取所述视频数据的解码帧率,当所述抽帧速率小于所述解码帧率时,根据所述解码帧率得到解码时间间隔,并根据所述抽帧速率得到抽帧时间间隔;
根据所述解码时间间隔更新解码时间累计值,以及根据所述抽帧时间间隔得到抽帧时间累计值;
当所述解码时间累计值大于或等于所述抽帧时间累计值时,选取所述解码数据帧发送至所述缓存区。
在一些实施例,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据,包括:
基于所述任务帧率确定多个第二数量阈值,第一个所述第二数量阈值小于或等于所述任务帧率,所述第二数量阈值逐渐增大,相邻的两个所述第二数量阈值构成第二帧率区间;
获取每个所述第二帧率区间的抽帧间隔,所述抽帧间隔逐渐增大;
选取与所述缓存帧数匹配的所述第二帧率区间的所述抽帧间隔作为目标抽帧间隔;
根据所述目标抽帧间隔从所述缓存区中均匀选取所述解码数据帧进行数据处理,得到所述目标输出数据。
在一些实施例,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据,包括:
获取所述目标任务的质量指标和质量评分参考值;
基于所述质量指标对所述解码数据帧进行第一质量评估,得到所述解码数据帧的第一质量参数;
将所述第一质量参数高于所述质量评分参考值的所述解码数据帧作为保留数据帧,并逐一选取所述保留数据帧进行数据计算得到所述目标输出数据。
在一些实施例,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据,包括:
获取多个视频处理模型,不同的所述视频处理模型具有不同的计算精度;
选取与所述缓存帧数匹配的所述计算精度对应的所述视频处理模型为目标处理模型;
利用所述目标处理模型对所述解码数据帧进行数据计算得到所述目标输出数据。
在一些实施例,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据之后,所述方法包括:
获取所述目标任务的价值指标和价值评分参考值;
基于所述价值指标对所述目标输出数据进行第二质量评估,得到所述目标输出数据的第二质量参数;
输出所述第二质量参数高于所述价值评分参考值的所述目标输出数据。
在一些实施例中,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据之后,所述方法还包括:
获取所述目标任务的至少一个优先级参数;
根据所述优先级参数对所述目标输出数据进行排序,得到排序结果;
根据所述排序结果逐一输出所述目标输出数据。
在一些实施例中,所述选取与所述目标任务匹配的协同处理设备,包括:
基于所述任务最低帧率确定算力资源参数,从多个协同设备中选取算力资源满足所述算力资源参数的至少一个协同设备作为备选设备;
基于所述目标任务的任务类型,从多个所述备选设备中选取与所述任务类型匹配的所述备选设备作为所述协同处理设备。
在一些实施例中,当所述视频数据迁移到所述协同处理设备进行数据处理之后,所述方法还包括:
基于所述任务最低帧率得到任务回收速率;
当所述抽帧速率大于所述任务回收速率时,获取当前时刻之后的视频数据,并将所述视频数据在所述目标设备处进行数据处理。
为实现上述目的,本申请实施例的第二方面提出了另一种视频数据处理方法,所述方法包括:
获取目标任务的任务控制信息,获取目标任务的视频数据,获取目标设备的算法消耗解码数据帧的处理参数,对所述视频数据进行数据解码得到多个解码数据帧,所述目标任务包括任务最低帧率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
当所述任务控制信息指示以执行速度优先的方式执行所述目标任务时,对所述解码数据帧执行速度优先处理步骤,得到所述目标任务的目标输出数据,所述速度优先处理步骤包括:
当所述处理参数达到第一速度优化条件时,选取与所述处理参数匹配的计算精度对应的视频处理模型为目标处理模型,并利用所述目标处理模型对缓存区中的解码数据帧进行数据计算;
当所述处理参数达到第二速度优化条件时,基于所述处理参数确定抽帧速率,根据所述抽帧速率从所述多个解码数据帧中选取至少一个解码数据帧发送至所述缓存区,所述第一速度优化条件小于所述第二速度优化条件;
当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理;
当所述任务控制信息指示以执行精度优先的方式执行所述目标任务时,对所述解码数据帧执行精度优先处理步骤,得到所述目标任务的目标输出数据,所述精度优先处理步骤包括:
当所述处理参数达到第一精度优化条件时,基于所述处理参数确定抽帧速率,根据所述抽帧速率从所述多个解码数据帧中选取至少一个解码数据帧发送至缓存区;
当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理;
当所述处理参数达到第二精度优化条件时,选取与所述处理参数匹配的计算精度对应的视频处理模型为目标处理模型,并利用所述目标处理模型对所述缓存区中的解码数据帧进行数据计算,所述第一精度优化条件小于所述第二精度优化条件。
在一些实施例中,当所述任务控制信息指示以执行速度优先的方式执行所述目标任务时,所述当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理之前,所述方法还包括:
当所述处理参数达到第三速度优化条件时,选取与所述处理参数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,并根据所述目标抽帧间隔从所述缓存区中均匀选取所述解码数据帧作为抽取数据帧,并逐一对所述抽取数据帧进行数据处理,所述第二速度优化条件小于所述第三速度优化条件;
当所述处理参数达到第四速度优化条件时,根据所述目标任务的质量指标对所述抽取数据帧进行第一质量评估,得到所述抽取数据帧的第一质量参数,并逐一选取所述第一质量参数高于质量评分参考值的所述抽取数据帧进行数据计算,所述第三速度优化条件小于所述第四速度优化条件。
在一些实施例中,当所述任务控制信息指示以执行精度优先的方式执行所述目标任务时,所述当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理之前,所述方法还包括:
当所述处理参数达到第三精度优化条件时,选取与所述处理参数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,并根据所述目标抽帧间隔从所述缓存区中均匀选取所述解码数据帧作为抽取数据帧,并逐一对所述抽取数据帧进行数据处理,所述第一精度优化条件小于所述第三精度优化条件,所述第三精度优化条件小于所述第二精度优化条件;
当所述处理参数达到第四精度优化条件时,根据所述目标任务的质量指标对所述抽取数据帧进行第一质量评估,得到所述抽取数据帧的第一质量参数,并逐一选取所述第一质量参数高于质量评分参考值的所述抽取数据帧进行数据计算,所述第三精度优化条件小于所述第四精度优化条件,所述第四精度优化条件小于所述第二精度优化条件。
在一些实施例中,所述方法还包括:
当所述目标输出数据的输出数量达到第一输出条件时,根据所述目标任务的价值指标对所述目标输出数据进行第二质量评估,得到所述目标输出数据的第二质量参数,输出所述第二质量参数高于价值评分参考值的所述目标输出数据;
或者,
当所述目标输出数据的输出数量达到第二输出条件时,根据所述目标任务的优先级参数对所述目标输出数据进行排序,得到排序结果,并根据所述排序结果逐一输出所述目标输出数据。
为实现上述目的,本申请实施例的第三方面提出了一种视频数据处理装置,所述装置包括:
视频数据获取模块,用于获取目标任务的视频数据,对所述视频数据进行数据解码得到多个解码数据帧,所述目标任务包括任务最低帧率;
处理参数获取模块,获取目标设备中的算法消耗解码数据帧的处理参数,并基于所述处理参数确定抽帧速率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
数据处理模块,用于当所述抽帧速率不小于所述任务最低帧率时,根据所述抽帧速率从所述多个解码数据帧中选取至少一个所述解码数据帧发送至缓存区,逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据;
数据迁移模块,用于当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理,得到第一输出数据,当所述缓存区中存在至少一个所述解码数据帧,利用所述目标设备对所述解码数据帧进行数据处理,得到第二输出数据,将所述第一输出数据和所述第二输出数据作为所述目标输出数据。
为实现上述目的,本申请实施例的第四方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的视频数据处理方法或者如第二方面所述的视频数据处理方法。
为实现上述目的,本申请实施例的第五方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的视频数据处理方法或者如第二方面所述的视频数据处理方法。
本申请实施例提出的视频数据处理方法、装置、电子设备及存储介质,该方法通过首先,获取目标任务的视频数据,对视频数据进行数据解码得到多个解码数据帧,目标任务包括任务帧率以及任务最低帧率;然后获取目标设备中的算法消耗解码数据帧的处理参数,并基于所述处理参数确定抽帧速率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;接下来,当抽帧速率不小于任务最低帧率时,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据;当抽帧速率小于任务最低帧率时,选取与目标任务匹配的协同处理设备,将当前时刻之后的视频数据迁移到协同处理设备进行数据处理,得到第一输出数据,当缓存区中存在至少一个解码数据帧,利用目标设备对解码数据帧进行数据处理,得到第二输出数据,将第一输出数据和第二输出数据作为目标输出数据。本申请实施例利用处理参数作为用于判断视频处理单元产生解码数据帧的速度是否超过算法计算单元进行算法处理的负载能力,然后根据处理参数确定抽帧速率,并将满足抽帧速率的解码数据帧存入缓存区,将不满足抽帧速率的解码数据帧丢弃,从而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量,以提高处理目标任务的实时性和平滑性。此外,还利用抽帧速率和任务最低帧率的对比结果作为目标设备是否可以满足处理该目标任务的参考值,当对比结果表征目标设备无法满足处理该目标任务的条件时,将目标任务剩余待处理的视频数据迁移到可以处理该目标任务的协同处理设备上进行协同处理,以提高处理目标任务的可靠性和实时性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
图1是本申请一实施例提供的视频数据处理方法的流程图。
图2是本申请又一实施例提供的视频处理单元进行抽帧的流程示意图。
图3是图1中步骤102的流程图。
图4是本申请又一实施例提供的抽帧速率的选取示意图。
图5是本申请又一实施例提供的抽帧速率的又一选取示意图。
图6是本申请又一实施例提供的选取解码数据帧的流程图。
图7是本申请又一实施例提供的选取解码数据帧的示意图。
图8是本申请又一实施例提供的优化选取解码数据帧的流程图。
图9是本申请又一实施例提供的算法计算单元进行抽帧的流程示意图。
图10是本申请又一实施例提供的抽帧间隔的选取示意图。
图11是本申请又一实施例提供的优化选取解码数据帧的又一流程图。
图12是本申请又一实施例提供的优化选取解码数据帧的再一流程图。
图13是本申请又一实施例提供的优化选取目标输出数据的流程图。
图14是本申请又一实施例提供的优化选取目标输出数据的又一流程图。
图15是本申请又一实施例提供的选取协同处理设备的流程图。
图16是本申请又一实施例提供的任务回收的流程图。
图17是本申请又一实施例提供的目标任务协同处理的流程示意图。
图18是本申请又一实施例提供的执行目标任务过程中的优化示意图。
图19是本申请又一实施例提供的速度优先的视频数据处理方法的流程示意图。
图20是本申请又一实施例提供的精度优先的视频数据处理方法的流程示意图。
图21是本申请又一实施例提供的视频数据处理装置的结构示意图。
图22是本申请又一实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
视觉算法任务是指利用计算机视觉技术,通过对图像或视频进行处理和分析,实现识别、检测、分类、分割等多种任务。视觉算法任务的主要处理流程通常包括将输入视频流经过视频处理单元进行解码和相应的前处理后,将处理后的图像数据分发到算法计算单元,由算法计算单元进行模型推理和相应的数据处理后生成结果数据,再将结果数据发送至接收方进行存储以及业务的应用等。
但是由于不同的视觉算法任务需求不同,算法计算单元所需要执行的数据处理步骤也不同。存在执行复杂视觉算法任务时,算法计算单元所需执行的数据处理步骤所需要的处理时间较长,使得输入的图像数据经过解码和前处理后堆积到算法计算单元的处理队列中等待算法计算单元的逐一处理,使得输出结果数据较为缓慢且无法实时对应输入的图像数据,导致处理视觉算法任务时的平滑性较低。
为了提高处理视觉算法任务的实时性和平滑性,本申请实施例利用处理参数作为用于判断视频处理单元产生解码数据帧的速度是否超过算法计算单元进行算法处理的负载能力,然后根据处理参数确定抽帧速率,并将满足抽帧速率的解码数据帧存入缓存区,将不满足抽帧速率的解码数据帧丢弃,从而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量,以提高处理目标任务的实时性和平滑性。此外,还利用抽帧速率和任务最低帧率的对比结果作为目标设备是否可以满足处理该目标任务的参考值,当对比结果表征目标设备无法满足处理该目标任务的条件时,将目标任务剩余待处理的视频数据迁移到可以处理该目标任务的协同处理设备上进行协同处理,以提高处理目标任务的可靠性和实时性。
下面将进一步描述本申请实施例提供的视频数据处理方法、装置、电子设备及存储介质。本申请实施例中提供的视频数据处理方法可以应用于处理目标任务的目标设备,或者与目标设备相连接的智能终端、服务器、计算机等等。
参照图1,为本申请实施例提供的视频数据处理方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤101至步骤104。同时可以理解的是,本实施例对图1中步骤101至步骤105的顺序不做具体限定,可以根据实际需求调整步骤顺序或者减少、增加某些步骤。
步骤101:获取目标任务的视频数据,对视频数据进行数据解码得到多个解码数据帧。
以下对步骤101进行详细描述。
在一些实施例中,在目标设备接收目标任务的处理请求后,将对目标任务进行解析,以得到目标任务包含的任务参数,该任务参数包括视频流信息,算法相关信息和任务控制等相关信息。视频流信息一般包括视频流的地址,视频流的类型等信息。算法相关信息通常包括算法包地址、版本,名字等基础信息,各个算法模型的精度、输入数据大小、通道格式要求和执行文件等描述信息。任务控制信息包括处理该目标任务的视频数据的任务帧率、处理该目标任务的视频数据的可接受的任务最低帧率,精度优先还是速度优先策略等任务处理相关信息。解析任务参数后,打开目标任务指定的视频流并获取视频数据,以及加载运行算法模型。
在获取目标任务的视频数据后,将根据目标任务中的视频流信息通过目标设备的视频处理单元对视频数据进行数据解码和前处理,得到多个解码数据帧。比如假设目标任务的视频流信息中说明输入算法计算单元需要256*256RGB格式的数据,而接收到的视频数据为1080p帧率为30fps的H.264编码视频,则需要解码出来的图像为1920*1080YUV格式的解码数据帧。此外,如任务帧率为10fps,则需要每解码3帧解码数据帧就从中抽取一帧输入缓存区中以待进行数据处理。待将解码数据帧进行抽帧后将解码数据帧的YUV格式的数据转换成RGB数据,并对1920*1080的尺寸进行缩放成256*256的尺寸。最后,将经过上述前处理后的解码数据帧分发给算法计算单元进行数据处理。
在一些实施例中,由于不同的算法任务,算法计算单元对每一帧解码数据帧的数据计算的处理速度也会有波动,且每一帧的处理时长会随着图像里目标的数量增加而增加。比如特征提取算法,是在检测目标后再对目标进行特征提取,提取一个目标的特征就是一次特征提取模型的推理运算,则一帧数据随着检测到的目标个数不同,算法处理时长可能会从几十毫秒到几十秒不等。从而存在由于算法计算单元在处理复杂的目标任务的解码数据帧时,由于处理效率较低导致众多解码数据帧堆积到缓存区中等待算法计算单元的逐一处理,导致输出结果数据较为缓慢且无法实时对应输入的图像数据,使得处理视觉算法任务时的平滑性较低。因此在本申请实施例中,实时根据缓存区的缓存情况,对存入缓存区的解码数据帧的速率进行调整,以提高处理目标任务的输入数据与输出数据的实时对应性以及平滑性。下面将进一步描述如何对出入缓存区的解码数据帧的速率进行调整。
步骤102:获取目标设备中的算法消耗解码数据帧的处理参数,并基于处理参数确定抽帧速率。
下面对步骤102进行详细描述。
在一些实施例中,在处理目标任务的过程中,将实时获取目标设备中的算法计算单元中在利用算法处理解码数据帧的过程中,消耗解码数据帧的处理参数。可以理解的是,处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法计算单元进行算法处理的负载能力。
在一些实施例中,当视频处理单元产生解码数据帧的速度超过算法计算单元进行算法处理的负载能力时,视频处理单元将产生的解码数据帧存放到目标设备的缓存区中,以待算法计算单元逐一从缓存区中选取解码数据帧进行数据处理。因此可以将将目标设备的缓存区中的所有缓存的数据帧对应的缓存帧数作为该处理参数。
在一些实施例中,将实时获取目标设备的缓存区中的缓存的数据帧所对应的缓存帧数。可以理解的是,目标设备通常是可以同时执行多个计算任务的,因此缓存区中可能同时存在目标任务的解码数据帧以及其他任务的数据帧,从而根据缓存区中的所有数据帧可以得到缓存区中的缓存帧数。同时还获取缓存帧数与数量阈值的匹配关系,从而基于该匹配关系以调节以任务帧率得到抽帧速率。可以理解的是,抽帧速率用于表征将解码数据帧存入缓存区的速率。
参照图2,是本申请实施例提供的视频处理单元进行抽帧的流程示意图。如图2中所示,视频处理单元在接收视频数据进行视频数据解码后,将查询缓存区中的缓存帧数,然后判断该缓存帧数是否大于预设帧数(即数量阈值),若缓存帧数大于预设帧数,则根据设定的策略调整抽帧速率后根据抽帧速率对解码数据帧进行均匀抽帧;若缓存帧数不大于预设帧数,则按照用户设定的任务帧率对解码数据帧进行抽帧,并将抽帧后的解码数据帧发送至缓存区中。从而可以将满足抽帧速率的解码数据帧存入缓存区,将不满足抽帧速率的解码数据帧丢弃,进而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量,以提高处理目标任务的实时性和平滑性。下面将进一步具体描述如何根据缓存帧数确定抽帧速率的步骤。
参照图3,基于处理参数确定抽帧速率,包括以下步骤301至步骤303。
步骤301:基于任务帧率确定多个第一数量阈值,第一数量阈值逐渐增大,相邻的两个第一数量阈值构成第一帧率区间。
步骤302:获取每个第一帧率区间的预设帧率,预设帧率逐渐减小。
步骤303:选取与缓存帧数匹配的第一帧率区间的预设帧率作为抽帧速率。
下面对步骤301至步骤303进行详细描述。
在一些实施例中,在对视频数据进行解码和前处理得到多个解码数据帧以及获取缓存帧数的同时,将基于任务帧率以确定多个第一数量阈值,第一数量阈值逐渐增大,且相邻的两个第一数量阈值构成第一帧率区间。可以理解的是,第一数量阈值的设置是可以根据不同任务需求所自定义设置的,如基于任务帧率的倍数关系确定多个第一数量阈值。
此外,还获取每个第一帧率区间所对应的预设帧率,且预设帧率逐渐减小,可以理解的是预设帧率是可以根据不同任务需求所定义设置的,如第一个预设帧率是任务帧率,其余的预设帧率可以是任务帧率的倍数除值。
在确定多个第一帧率区间以及每个第一帧率区间的预设帧率之后,将确定与缓存帧数匹配的第一帧率区间,并将该第一帧率区间的预设帧率作为抽帧速率。从而可以将满足抽帧速率的解码数据帧存入缓存区,将不满足抽帧速率的解码数据帧丢弃,从而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量,以提高处理目标任务的实时性和平滑性。
参照图4,是本申请实施例提供的抽帧速率的选取示意图。其中多个第一数量阈值(包括第一数量阈值a1、第一数量阈值a2、第一数量阈值a3等等)中每两个相邻的第一数量阈值构成第一帧率区间(包括第一帧率区间c1、第一帧率区间c2等等),且每个第一帧率区间拥有其对应的预设帧率。通过将当前时刻的缓存帧数与多个第一帧率区间进行匹配可以确定对应的预设帧率,并将该预设帧率作为抽帧速率。
参照图5,是本申请实施例提供的抽帧速率的又一选取示意图。其中根据任务帧率的倍数设置多个第一数量阈值,如将任务帧率的4倍作为第一数量阈值a1,将任务帧率的8倍作为第一数量阈值a2等等;并且根据任务帧率的倍数除数设置多个预设帧率,如将任务频率作为预设帧率b1,将任务频率除以2作为预设帧率b2,将任务频率除以2的平方作为预设帧率b3等等。然后通过将缓存帧数与多个第一数量阈值进行判断匹配,以得到该判断匹配结果所对应的预设帧率,并将该预设帧率作为抽帧速率。
通过上述步骤301至步骤303,利用多个数值越来越大的第一帧率区间与缓存帧率进行匹配,且逐渐增大的第一帧率区间所对应的预设帧率逐渐减小,并将匹配到的第一帧率区间所对应的预设帧率作为抽帧速率,从而有效地针对缓存区中的缓存帧数进行抽帧速率控制以控制缓存帧数的增减速率,进而提高处理目标任务的实时性和平滑性。
在一些实施例中,为了保证处理目标任务的质量,在目标任务的任务参数中包括了计算目标任务的解码数据帧时的任务最低帧率,在确定抽帧速率之后需要将抽帧速率与任务最低帧率进行匹配,从而判断目标设备是否满足处理该目标任务的最低要求,若满足的话则继续在当前的目标设备处理该目标任务,若不满足的话则需要考虑其他途径处理该目标任务以保证目标的处理质量。
下面将进一步描述目标设备满足处理该目标任务的最低要求时的数据处理步骤。
步骤103:当抽帧速率不小于任务最低帧率时,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据。
下面对步骤103进行详细描述。
在一些实施例中,当确定抽帧速率不小于任务最低帧率时,即目标设备满足处理该目标任务的最低要求。则根据该抽帧速率对经过视频处理单元进行数据解码后得到的解码数据帧进行有规划地抽帧,并将选取后的解码数据帧存入缓存区中,以待算法计算单元从缓存区中选取解码数据帧进行数据处理。下面将进一步描述如何根据抽帧速率对解码数据帧进行抽帧。
参照图6,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区,包括以下步骤601至步骤603。
步骤601:获取视频数据的解码帧率,当抽帧速率小于解码帧率时,根据解码帧率得到解码时间间隔,根据抽帧速率得到抽帧时间间隔。
步骤602:根据解码时间间隔更新解码时间累计值,以及根据抽帧时间间隔得到抽帧时间累计值。
步骤603:当解码时间累计值大于或等于抽帧时间累计值时,选取解码数据帧发送至缓存区。
下面对步骤601至步骤603进行详细描述。
在一些实施例中,在确定抽帧速率后,将抽帧速率与解码帧率进行比对,然后根据比对结果从多个解码数据帧中选取解码数据帧发送至缓存区,具体为如下表述。获取视频处理单元对视频数据进行解码的解码帧率fps,当确定抽帧速率小于解码帧率后,根据解码帧率/>可以计算得到视频处理单元对视频数据进行解码的解码时间间隔微秒。此外,还将根据抽帧速率/>fps计算得到抽取每个解码数据帧存入缓存区的抽帧时间间隔/>微秒。
接下来基于解码时间间隔更新解码时间累计值/>可以得到视频处理单元对视频数据进行解码后,可以得到每个解码数据帧的时间累计时刻;类似的,基于抽帧时间间隔/>更新抽帧时间累计值/>,可以得到每个需要抽取解码数据帧进行缓存区以待计算的计算累计时刻。然后当解码时间累计值大于或者等级抽帧时间累计值时,即时,选取该时刻的解码数据帧发送至缓存区进行存储以待计算。
参照图7,是本申请实施例提供的一种选取解码数据帧的示意图。如图7所示,包括两条时间轴(左边为解码时间累计值对应的时间轴,右边为抽帧时间累计值的时间轴),其中每间隔解码时间间隔则产生一个解码数据帧(如图7左边中的时刻t1、t2、t3等等),且每间隔抽帧时间间隔/>将选取一个解码数据帧存入缓存区中(如图7右边中的时刻T1、T2等等),则当/>时即选取该时刻的解码数据帧存入缓存区,如对于T1时刻选取的是t1时刻的解码数据帧,对于T2时刻选取的是t5时刻的解码数据帧,对于T3时刻选取的是t8时刻的解码数据帧,对于T4时刻选取的是t11时刻的解码数据帧。
通过上述步骤601至步骤603,利用解码帧率对应的解码时间间隔和抽帧速率对应的抽帧时间间隔,可以更加均匀且精准的选取合适的解码数据帧存入缓存区中以待进行数据计算,进而提高执行目标任务的实时性和平滑性。
在一些实施例中,在根据抽帧速率规整地选取解码数据帧存入缓存区之后,将逐一从缓存区中选取解码数据帧输入算法计算单元中进行数据处理,以得到目标任务所对应的目标输出数据,从而提高处理该目标任务的实时性和平滑性。
在一些实施例中,当算法计算单元进行复杂数据处理过程中或者是处理的数据过多的情况下,会导致算法计算单元对解码数据帧的处理速率下降,从而使得在处理目标任务的过程中输入视频数据和输出目标输出数据的过程中出现卡顿等情况,导致处理目标任务的实时性和平滑性较低。虽然已经控制从视频处理单元输出的解码数据帧进入缓存区的抽帧速率,但仍然会使得缓存区的缓存帧数上升的情况。此时需要对缓存区中的解码数据帧进一步处理。下面将进一步描述如何对缓存区中的解码数据帧的处理过程。
参照图8,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据,包括以下步骤801至步骤804。
步骤801:基于任务帧率确定多个第二数量阈值,第二数量阈值逐渐增大,相邻的两个第二数量阈值构成第二帧率区间。
步骤802:获取每个第二帧率区间的抽帧间隔,抽帧间隔逐渐增大。
步骤803:选取与缓存帧数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔。
步骤804:根据目标抽帧间隔从缓存区中均匀选取解码数据帧进行数据处理,得到目标输出数据。
下面对步骤801至步骤804进行详细描述。
在一些实施例中,在从缓存区中逐一选取解码数据帧进入算法计算单元进行数据处理之前,还与抽帧速率进行解码数据帧进行抽帧类似的,将基于任务帧率以确定多个第二数量阈值,第二数量阈值将逐渐增大,且相邻的两个第二数量阈值构成第二帧率区间。可以理解的是,第二数量阈值的设置是可以根据不同任务需求所自定义设置的,如基于任务帧率的倍数关系确定多个第二数量阈值。
此外,还获取每个第二帧率区间所对应的抽帧间隔,且抽帧间隔逐渐增大,可以理解的是抽帧间隔是可以根据不同任务需求所定义设置的,如抽帧间隔可以是1的倍数。
在确定多个第二帧率区间以及每个第二帧率区间的抽帧间隔之后,将确定与缓存帧数匹配的第二帧率区间,并将该第二帧率区间的抽帧间隔作为目标抽帧间隔。从而根据目标抽帧间隔,选取每间隔目标抽帧间隔的解码数据帧输入算法计算单元进行数据处理,并把其余的解码数据帧丢弃,从而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量,以提高处理目标任务的实时性和平滑性。
参照图9,是本申请实施例提供的算法计算单元进行抽帧的流程示意图。如图9中所示,算法计算单元在接收解码数据帧之前,将查询缓存区中的缓存帧数,然后判断该缓存帧数是否大于预设帧率(即第二数量阈值),若缓存帧数大于预设帧数,则根据设定的策略调整抽帧间隔后根据抽帧间隔对缓存区中的解码数据帧进行均匀抽帧,并对每个解码数据帧判断是否需要丢弃,并将选取的解码数据帧输入算法计算单元中进行数据处理;若缓存帧数不大于预设帧数,则逐一选取缓存区中的解码数据帧进行数据处理。
参照图10,是本申请实施例提供的抽帧间隔的选取示意图。其中根据任务帧率的倍数设置多个第二数量阈值,如将任务帧率的4倍作为第二数量阈值d1,将任务帧率的8倍作为第二数量阈值d2等等;并且根据1的倍数确定多个抽帧间隔,如设置0,1,2,3等等。然后通过将缓存帧数与多个第二数量阈值进行判断匹配,以得到该判断匹配结果所对应的抽帧间隔,并将该抽帧间隔作为目标抽帧间隔。
通过上述步骤801至步骤804,利用多个数值越来越大的第二帧率区间与缓存帧率进行匹配,且逐渐增大的第二帧率区间所对应的抽帧间隔也逐渐最大,并将匹配到的第二帧率区间所对应的抽帧间隔作为目标抽帧间隔,从而有效地针对缓存区中的缓存帧数进行抽帧间隔控制以控制输入算法计算单元的解码数据帧的数量,进而提高处理目标任务的实时性和平滑性。
参照图11,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据,包括以下步骤1101至步骤1103。
步骤1101:获取目标任务的质量指标和质量评分参考值。
步骤1102:基于质量指标对解码数据帧进行第一质量评估,得到解码数据帧的第一质量参数。
步骤1103:将第一质量参数高于质量评分参考值的解码数据帧作为保留数据帧,并逐一选取保留数据帧进行数据计算得到目标输出数据。
下面对步骤1101至步骤1103进行详细描述。
在一些实施例中,在从缓存区中逐一选取解码数据帧进入算法计算单元进行数据处理之前,还将获取目标任务的质量指标和质量评分参考值。可以理解的是,质量指标可以是图像模糊度,清晰度,噪音和色彩等等,不同的计算任务有其特殊的质量指标。该质量指标可以通过预先获取的任务参数所得到。当确定算法计算单元的处理速率较慢且缓存区中的缓存帧数较多时,将基于质量指标对缓存区中每个解码数据帧进行第一质量评估,以得到缓存区中每个解码数据帧的第一质量参数,然后将第一质量参数高于质量评分参考值的解码数据帧作为保留数据帧,并逐一将保留数据帧输入算法计算单元中进行数据计算以得到目标输出数据。并将第一质量参数低于质评分参考值的解码数据帧丢弃。
通过上述步骤1101至步骤1103,利用质量指标和质量评分参考值对缓存区中的解码数据帧进一步筛选,选取高质量的解码数据帧进行数据计算,以在保证处理目标任务的处理质量的同时,降低算法计算单元处理的解码数据帧的数量,从而提高处理目标任务的实时性和平滑性。
参照图12,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据,包括以下步骤1201至步骤1203。
步骤1201:获取多个视频处理模型,不同的视频处理模型具有不同的计算精度。
步骤1202:选取与缓存帧数匹配的计算精度对应的视频处理模型为目标处理模型。
步骤1203:利用目标处理模型对解码数据帧进行数据计算得到目标输出数据。
下面对步骤1201至步骤1203进行详细描述。
在一些实施例中,在从缓存区中逐一选取解码数据帧进入算法计算单元进行数据处理之前,还将获取多个视频处理模型。可以理解的是,不同的视频处理模型具有不同的计算精度,如算法包中提供了float64,float32,float16三种计算精度的视频处理模型,且计算精度低的视频处理模型的处理速率更高。并基于缓存区的缓存帧数,设置每个视频处理模块所对应的缓存阈值。然后在实时的目标任务处理过程中,将基于缓存区的实时的缓存帧数与多个视频处理模块的缓存阈值进行匹配,从而选取与缓存帧数匹配的计算精度对应的视频处理模型为目标处理模型,并在算法计算单元中利用目标处理模型逐一对缓存区中的解码数据帧进行数据计算得到目标输出数据。
通过上述步骤1201至步骤1203,利用缓存帧数的数值实时切换不同的视频处理模型,以控制算法计算单元的处理速率,以有效地提高处理目标任务的实时性和平滑性。
在一些实施例中,在算法计算单元逐一对选取后的解码数据帧进行数据处理后,将输出多个目标输出数据,然后输出控制单元将依次对这些目标输出数据进行输出。但是由于输出控制单元需要将目标输出数据逐一发送至接收方进行存储和应用,其发送速率受到不同硬件平台的读写限制、不同数据库的引擎实现、数据量的大小等因素的影响。如果是外部的存储系统,还跟网络带宽速度有关。此外,不同的计算任务所得到的目标输出数据的大小和梳理也不同。比如检测算法,检测到的目标越多,输出的目标信息越多,结果数据量就越大,因此每一帧图像输出的结果数据量波动较大,输出控制单元的输出速率也会出现波动。输出速率较低时,将影响处理目标任务的实时性和平滑性,因此需要在输出控制单元处对目标输出数据进行输出控制。下面将进一步描述如何对目标输出数据进行控制。
参照图13,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据之后,视频数据处理方法还包括以下步骤1301至步骤1303。
步骤1301:获取目标任务的价值指标和价值评分参考值。
步骤1302:基于价值指标对目标输出数据进行第二质量评估,得到目标输出数据的第二质量参数。
步骤1303:将第二质量参数高于价值评分参考值的目标输出数据输出。
下面对步骤1301至步骤1303进行详细描述。
在一些实施例中,在从算法计算单元处得到多个目标输出数据后,还将获取目标任务的价值指标和价值评分参考值。可以理解的是,价值指标可以是置信度等等,不同的计算任务有其特殊的质量指标。该质量指标可以通过预先获取的任务参数所得到。可以理解的是,数据中的置信度通常指的是数据的可信程度或者准确性的度量。在数据分析领域,置信度用来表示对某个数据或结果的信任程度,即对该数据或结果的精确性和可靠性的信心水平。
当确定算法计算单元的处理速率较慢且缓存区中的缓存帧数较多时,将基于价值指标对多个目标输出数据进行第二质量评估,以得到每个目标输出数据的第二质量参数,然后将第二质量参数高于价值评分参考值的目标输出数据逐一输出,并将第二质量参数低于价值评分参考值的目标输出数据丢弃。
通过上述步骤1301至步骤1303,利用价值指标和价值评分参考值对目标输出数据进一步筛选,选取高质量的目标输出数据进行输出,以在保证处理目标任务的处理质量的同时,降低输出控制单元输出的目标输出数据的数量,从而提高处理目标任务的实时性和平滑性。
参照图14,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据之后,视频数据处理方法还包括以下步骤1401至步骤1403。
步骤1401:获取目标任务的至少一个优先级参数。
步骤1402:根据优先输出参数对目标输出数据进行排序,得到排序结果。
步骤1403:根据排序结果逐一输出目标输出数据。
下面对步骤1401至步骤1403进行详细描述。
在一些实施例中,在从算法计算单元处得到多个目标输出数据后,还将获取目标任务的至少一个优先级参数。可以理解的是,优先级参数可以是是否为结构化数据、数据类型、数据大小等等,不同的计算任务有其特殊的优先级参数。接下来根据优先输出参数对目标输出数据进行排序,得到所有目标输出数据的排序结果,然后根据排序结果按顺序逐一输出目标输出数据。此外,优先级参数也可以根据实时的输出信道状态来决定的,比如在某一时刻输出信道质量较差,此时可以将优先级参数设置为结构化数据以及数据量小的,基于此,将优先输出目标结果数据中的数据量小的结构化数据。
通过上述步骤1401至步骤1403,利用优先级参数对目标输出数据进行排序输出,从而保证了业务需求优先级高的数据是实时传输的,不影响实际业务使用的情况下保证了实时性,也有效充分地利用了传输带宽和存储等资源。
下面将进一步描述目标设备不满足处理该目标任务的最低要求的数据处理步骤。
步骤104:当抽帧速率小于任务最低帧率时,选取与目标任务匹配的协同处理设备,将当前时刻之后的视频数据迁移到协同处理设备进行数据处理,得到第一输出数据,当缓存区中存在至少一个解码数据帧,利用目标设备对解码数据帧进行数据处理,得到第二输出数据,将第一输出数据和第二输出数据作为目标输出数据。
下面对步骤104进行详细描述。
在一些实施例中,当确定某一时刻的抽帧速率小于任务最低帧率时,即确定当前时刻的目标设备不满足处理该目标任务的最低要求,此时需要选取与目标任务匹配的协同处理设备对当前时刻之后的视频数据进行任务迁移,将剩余的视频数据在协同处理设备上进行处理,从而保证处理目标任务的实时性和可靠性。下面将进一步描述如何选取与目标任务匹配的协同处理设备。
参照图15,选取与目标任务匹配的协同处理设备,包括以下步骤1501至步骤1502。
步骤1501:基于任务最低帧率确定计算资源要求,从多个协同设备中选取算力资源满足计算资源要求的至少一个协同设备作为备选设备。
步骤1502:基于目标任务的任务类型,从多个备选设备中选取计算类型与任务类型匹配的备选设备作为协同处理设备。
下面对步骤1501至步骤1502进行详细描述。
在一些实施例中,在确定需要进行任务迁移后,将基于任务最低帧率确定计算资源要求,即该计算资源要求可以直接是执行任务最低帧率所对应的计算资源也可以是执行任务最低帧率的倍数所对应的计算资源。同时,将确定目标设备周边多个可以进行任务处理的协同设备,然后从多个协同设备中选取算例资源满足该计算资源要求的至少一个协同设备作为备选设备;接下来,基于目标任务的任务类型,从多个备选设备中选取计算类型与该任务类型匹配的备选设备作为协同处理设备。
通过上述步骤1501至步骤1502,利用由任务最低帧率所确定的计算资源要求和任务类型,以挑选出更加合适的协同设备作为处理该目标任务的协同处理设备,从而可以利用该协同处理设备更加高效地协同处理目标任务,进而提高执行目标任务的可靠性和实时性。
在一些实施例中,在确定合适的协同处理设备之后,将当前时刻之后的视频数据迁移到协同处理设备进行相应的数据处理,以得到第一输出数据。此外,还确定当前时刻的目标设备的缓存区中是否还存在有目标任务的解码数据帧,当确定当前时刻的缓存区存在至少一个解码数据帧时,还将利用目标设备对解码数据帧进行相应的数据处理,得到第二输出数据,然后将第一输出数据和第二输出数据作为目标输出数据以输出,从而提高执行目标任务的可靠性和完整性。并且无需将整个目标任务都迁移到协同处理设备上重新进行任务处理,而仅是将目标任务中还没进行处理的视频数据迁移到协同处理设备上进行处理,从而提高了处理目标任务的处理效率。
参照图16,当视频数据迁移到协同处理设备进行数据处理之后,视频数据处理方法还包括以下步骤1601至步骤1602。
步骤1601:基于任务最低帧率得到任务回收速率。
步骤1602:当抽帧速率大于任务回收速率时,获取当前时刻之后的视频数据,并将视频数据在目标设备处进行数据处理。
下面对步骤1601至步骤1602进行详细描述。
在一些实施例中,为了进一步提高执行目标任务的可靠性,将尽量确保执行该目标任务的过程中都是在目标设备上进行的从而避免出现处理设备不同时,由于设备之间的设备参数不同导致不同设备输出的目标结果数据出现差别的情况。因此当由于某一时刻,目标设备自身处理能力较差,将剩余的视频数据迁移到协同处理设备进行数据处理之后,还将基于任务最低帧率得到任务回收速率,即该任务回收速率可以直接是任务最低帧率,而已可以是任务最低帧率的倍数。并且将实时监测目标设备的缓存区处的缓存帧数变化,并基于该缓存帧数变化实时调整抽帧速率,当某一时刻抽帧速率大于任务回收速率时,将该当前时刻之后的视频数据回收到目标设备上进行数据处理。
通过上述步骤1601至步骤1602,在目标任务迁移到协同处理设备进行数据处理之后,通过实时检测抽帧速率,当抽帧速率满足任务回收条件时,将目标任务回收到目标设备进行数据处理,以提高执行目标任务的可靠性。
参照图17,是本申请实施例提供的目标任务协同处理的流程示意图。如图17中所示,在视频处理单元对视频数据进行解码后,将查询缓存区中的缓存帧数以得到对应的抽帧速率,然后判断该抽帧速率是否满足执行目标任务所需要的任务需求(即任务最低帧率),若抽帧速率不满足执行目标任务所需要的任务需求,则发送任务迁移请求到协同处理设备,然后将目标任务剩余的视频数据迁移到协同处理设备上进行处理;当抽帧速率满足执行目标任务所需要的任务需求时,将发送任务回收请求到协同处理设备,并将剩余的视频数据回收到目标设备上进行数据处理。
参照图18,是本申请实施例提供的一种执行目标任务过程中的优化示意图。如图18所示,在目标设备执行目标任务时,第一阶段,将目标任务的视频数据输出视频处理单元进行解码处理和前处理后得到解码数据帧,然后在第一阶段将进行第一次流程优化(即优化1):根据如步骤301至步骤303相关策略调整解码数据帧的抽帧速率;然后进行第二次流程优化(即优化2):根据如步骤104所示的相关策略,当判断抽帧速率低于任务最低帧率则将目标任务迁移到协同处理设备上进行任务处理;若判断抽帧速率高于任务最低帧率则根据步骤601至步骤603所示的流程选取解码数据帧存入缓存区中;接下来,第二阶段,算法计算单元将需要从缓存区中逐一选取解码数据帧进行数据处理,此时首先进行第三次流程优化(即优化3):根据步骤801至步骤804所示的相关策略,确定抽帧间隔,并根据抽帧间隔从缓存区中选取解码数据帧进行数据处理;其次,在第二阶段中还进行第四次流程优化(即优化4):根据步骤1101至步骤1103所示的相关策略,从缓存区中选取高质量的解码数据帧进行数据处理;另外,在第三阶段中还将进行第五次流程优化(即优化5):根据步骤1201至步骤1203所示的相关策略,切换对应的精度模型进行数据处理;在算法计算单元进行数据处理得到目标输出数据到输出控制单元之后的第三阶段,此时将进行第六次流程优化(即优化6):根据步骤1301至步骤1303的相关策略,选取高质量的目标输出数据进行输出;最后在第三阶段中还将进行第七次流程优化(即优化7):根据步骤1401至步骤1403的相关策略,确定目标输出数据的优先级,并根据优先级按照顺序输出目标输出数据。在本申请实施例中,可以在对目标任务进行处理时,可以根据需要从七个优化流程中任意选取至少一个优化步骤进行组合使用,且在本申请实施例中不对七个优化流程的优化选择顺序进行限制。
在一些实施例中,在如上述进行目标任务的处理过程中的七个优化策略可以根据实际需求进行排列组合,比如根据任务控制信息中的执行优先策略以选取上述七个优化策略中的任意一个或者多个进行排列组合以对目标任务进行处理。
下面将提出另一种视频数据处理方法以阐述这点。为了更好地描述本申请提出的另一种视频数据处理方法,将结合图19和图20进行描述。参照图19和图20,是本申请实施例提供的速度优先的视频数据处理方法的流程示意图和精度优先的视频数据处理方法的流程示意图。
在一些实施例中,在响应于目标设备对目标任务的执行请求后,将首先获取目标任务的任务控制信息,该任务控制信息包括执行该目标任务的任务优先需求信息(如执行该目标任务时,以执行速度为优先考虑参数,或者是以执行精度为优先考虑参数)。然后,在目标设备处获取目标任务的视频数据,以及获取目标设备的算法消耗解码数据帧的处理参数,并在目标设备的视频处理单元对这些视频数据进行处理以得到多个解码数据帧,其中处理参数用于判断目标设备的视频处理单元产生解码数据帧的速度是否超过算法计算单元中的算法对解码数据帧进行处理的负载能力。
参照图19所示,当任务控制信息指示该目标任务需要以执行速度优先的方式执行时,对从视频处理单元处得到的解码数据帧执行速度优先处理步骤,具体为:对缓存区的缓存帧数进行实时监控,当处理参数达到第一速度优化条件时,将首先执行如上述步骤1201至步骤1203所示的优化5,即,选取与缓存帧数匹配的计算精度对应的视频处理模型为目标处理模型,并在算法计算单元处利用目标处理模型对缓存区中的解码数据帧进行数据计算;当处理参数进一步增加达到第二速度优化条件时,将执行如上述步骤102至步骤103所示的优化1,即,基于处理参数确定抽帧速率,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区;当处理参数进一步增加达到第三速度优化条件时,将执行如上述步骤801至步骤804所示的优化3,即,选取与缓存帧数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,并根据目标抽帧间隔从缓存区中均匀选取解码数据帧作为抽取数据帧,并逐一对抽取数据帧进行数据处理;当处理参数进一步增加达到第四速度优化条件时,将执行如上述步骤1101至步骤1103所示的优化4,即根据目标任务的质量指标对抽取数据帧进行第一质量评估,得到抽取数据帧的第一质量参数,并逐一选取第一质量参数高于质量评分参考值的抽取数据帧进行数据计算;并在实时监控缓存帧数的变化的同时,调整优化1中的抽帧速率,当缓存帧数达到第四速度优化阈值,且抽帧速率小于任务最低帧率时,将执行如上述步骤104所示的优化2,即选取与目标任务匹配的协同处理设备,将当前时刻之后的视频数据迁移到协同处理设备进行数据处理。
为了保证执行目标任务的执行速度优先,第一速度优化条件小于第二速度优化条件、第二速度优化条件小于第三速度优化条件、第三速度优化条件小于第四速度优化条件,从而在进行目标任务处理时,优先考虑优化5的切换模型,以大幅度地提高执行速率,再依次考虑其他的优化步骤。其中,第一速度优化条件、第二速度优化条件、第三速度优化条件以及第四速度优化条件可以是根据需求所自定义设置的,即当处理参数为目标设备的缓存区对应的缓存帧数时,第一速度优化条件、第二速度优化条件、第三速度优化条件以及第四速度优化条件可以是对应的第一速度优化阈值、第二速度优化阈值、第三速度优化阈值以及第四速度优化阈值,且第一速度优化阈值小于第二速度优化阈值、第二速度优化阈值小于第三速度优化阈值、第三速度优化阈值小于第四速度优化阈值。此外,当在执行优化步骤的过程中,缓存帧数下降到低于该优化步骤对应的速度优先阈值时,将停止执行该优化步骤,进而在保证速度的情况下也保证了处理目标任务的质量。
此外,在算法计算单元对选取的解码数据帧进行计算得到目标输出数据后,还将实时监控目标输出数据的输出数量,当输出数量达到第一输出条件时,将执行如上述步骤1301至步骤1303所示的优化6,即当目标输出数据的输出数量达到第一输出阈值时,根据目标任务的价值指标对目标输出数据进行第二质量评估,得到目标输出数据的第二质量参数,输出第二质量参数高于价值评分参考值的目标输出数据;当输出数量进一步增加达到第二输出条件时,将执行如上述步骤1401至1403所示的优化7,即,根据目标任务的优先级参数对目标输出数据进行排序,得到排序结果,并根据排序结果逐一输出高于价值评分参考值的目标输出数据。
其中,第一输出条件和第二输出条件可以是根据需求所自定义设置的,如第一输出条件可以是第一输出阈值,第二输出条件可以是第二输出阈值,然后通过判断输出数量是否达到对应的输出阈值以执行对应的优化流程(即优化6或者优化7)。即可以理解的是,第一输出阈值对应的优化6和第二输出阈值对应的优化7是可以不分顺序所独立执行或者组合执行的,从而进一步地提高目标任务的处理速率。
参照图20所示,当任务控制信息指示该目标任务需要以执行精度优先的方式执行时,对从视频处理单元处得到的解码数据帧执行精度优先处理步骤,具体为:对缓存区的处理参数进行实时监控,当处理参数达到第一精度优化条件时,将首先执行如上述步骤102至步骤103所示的优化1,即,基于处理参数确定抽帧速率,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区;当处理参数进一步增加达到第三精度优化条件时,将执行如上述步骤801至步骤804所示的优化3,即,选取与处理参数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,并根据目标抽帧间隔从缓存区中均匀选取解码数据帧作为抽取数据帧,并逐一对抽取数据帧进行数据处理;当处理参数进一步增加达到第四精度优化条件时,将执行如上述步骤1101至步骤1103所示的优化4,即根据目标任务的质量指标对抽取数据帧进行第一质量评估,得到抽取数据帧的第一质量参数,并逐一选取第一质量参数高于质量评分参考值的抽取数据帧进行数据计算;在执行优化4的相关优化步骤之后,当处理参数进一步增加到第二精度优先阈值时,再采取如上述步骤1201至步骤1203所示的优化5,即,选取与处理参数匹配的计算精度对应的视频处理模型为目标处理模型,并在算法计算单元处利用目标处理模型对缓存区中的解码数据帧进行数据计算;并在执行优化4的相关优化步骤的同时,还将基于变化的处理参数进行同步调整优化1中的抽帧速率,当抽帧速率小于任务最低帧率时,将执行如上述步骤104所示的优化2,即选取与目标任务匹配的协同处理设备,将当前时刻之后的视频数据迁移到协同处理设备进行数据处理。可以理解的是,在精度优先的方式中,不对优化5和优化2的执行顺序进行限定,即可以是在优化4之后直接执行优化2,也可以是在优化4之后执行优化5再执行优化2的相关步骤。
为了保证执行目标任务的执行精度优先,第一精度优化条件小于第三精度优化条件、第三精度优化条件小于第四精度优化条件、第四精度优化条件小于第二精度优化条件,从而在进行目标任务处理时,优先考虑除了优化5以外的优化步骤,最后再考虑优化5对应的切换模型,以尽可能地提高执行速率的同时保证任务处理的精度。其中,第一精度优化条件、第二精度优化条件、第三精度优化条件以及第四精度优化条件可以是根据需求所自定义设置的,即当处理参数为目标设备的缓存区对应的缓存帧数时,第一精度优化条件、第二精度优化条件、第三精度优化条件以及第四精度优化条件可以是对应的第一精度优化阈值、第二精度优化阈值、第三精度优化阈值以及第四精度优化阈值,且第一精度优化阈值小于第三精度优化阈值、第三精度优化阈值小于第四精度优化阈值、第四精度优化阈值小于第二精度优化阈值。此外,在算法计算单元对选取的解码数据帧进行计算得到目标输出数据后,还将实时监控目标输出数据的输出数量,当输出数量达到第一输出阈值时,将执行如上述步骤1301至步骤1303所示的优化6,即当目标输出数据的输出数量达到第一输出阈值时,根据目标任务的价值指标对目标输出数据进行第二质量评估,得到目标输出数据的第二质量参数,输出第二质量参数高于价值评分参考值的目标输出数据;当输出数量进一步增加达到第二输出阈值时,将执行如上述步骤1401至1403所示的优化7,即,根据目标任务的优先级参数对目标输出数据进行排序,得到排序结果,并根据排序结果逐一输出高于价值评分参考值的目标输出数据。
本申请实施例提出的视频数据处理方法、装置、电子设备及存储介质,该方法通过首先,获取目标任务的视频数据,对视频数据进行数据解码得到多个解码数据帧,目标任务包括任务帧率以及任务最低帧率;然后,获取目标设备的缓存区对应的缓存帧数,并基于任务帧率确定多个第一数量阈值,第一个第一数量阈值小于或等于任务帧率,第一数量阈值逐渐增大,相邻的两个第一数量阈值构成第一帧率区间,获取每个第一帧率区间的预设帧率,预设帧率逐渐减小,选取与缓存帧数匹配的第一帧率区间的预设帧率作为抽帧速率;接下来,当抽帧速率不小于任务最低帧率时,获取视频数据的解码帧率,并根据解码帧率得到解码时间间隔,根据抽帧速率得到抽帧时间间隔,根据解码时间间隔更新解码时间累计值,以及根据抽帧时间间隔得到抽帧时间累计值,当解码时间累计值大于或等于抽帧时间累计值时,选取解码数据帧发送至缓存区。然后,基于任务帧率确定多个第二数量阈值,第一个第二数量阈值小于或等于任务帧率,第二数量阈值逐渐增大,相邻的两个第二数量阈值构成第二帧率区间,获取每个第二帧率区间的抽帧间隔,抽帧间隔逐渐增大,选取与缓存帧数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,根据目标抽帧间隔从缓存区中均匀选取解码数据帧进行数据处理,得到目标输出数据;或者,获取目标任务的质量指标和质量评分参考值,基于质量指标对解码数据帧进行第一质量评估,得到解码数据帧的第一质量参数,将第一质量参数高于质量评分参考值的解码数据帧作为保留数据帧,并逐一选取保留数据帧进行数据计算得到目标输出数据;或者,获取多个视频处理模型,不同的视频处理模型具有不同的计算精度,选取与缓存帧数匹配的计算精度对应的视频处理模型为目标处理模型,利用目标处理模型对解码数据帧进行数据计算得到目标输出数据。在得到目标输出数据之后,获取目标任务的至少一个优先级参数,根据优先级参数对目标输出数据进行排序,得到排序结果,根据排序结果逐一输出目标输出数据;或者,基于任务最低帧率确定算力资源参数,从多个协同设备中选取算力资源满足算力资源参数的至少一个协同设备作为备选设备,基于目标任务的任务类型,从多个备选设备中选取与任务类型匹配的备选设备作为协同处理设备。当抽帧速率小于任务最低帧率时,选取与目标任务匹配的协同处理设备,将当前时刻之后的视频数据迁移到协同处理设备进行数据处理,得到第一输出数据,当缓存区中存在至少一个解码数据帧,利用目标设备对解码数据帧进行数据处理,得到第二输出数据,将第一输出数据和第二输出数据作为目标输出数据。
本申请实施例利用缓存区的缓存帧数作为算法计算单元的处理速度参考值,根据缓存帧数确定抽帧速率,并将满足抽帧速率的解码数据帧存入缓存区,将不满足抽帧速率的解码数据帧丢弃,从而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量。此外,还利用抽帧速率和任务最低帧率的对比结果作为目标设备是否可以满足处理该目标任务的参考值,当对比结果表征目标设备无法满足处理该目标任务的条件时,将目标任务剩余待处理的视频数据迁移到可以处理该目标任务的协同处理设备上进行协同处理,以提高处理目标任务的可靠性;以及,利用多个数值越来越大的第一帧率区间与缓存帧率进行匹配,且逐渐增大的第一帧率区间所对应的预设帧率逐渐减小,并将匹配到的第一帧率区间所对应的预设帧率作为抽帧速率,从而有效地针对缓存区中的缓存帧数进行抽帧速率控制以控制缓存帧数的增减速率;此外,利用解码帧率对应的解码时间间隔和抽帧速率对应的抽帧时间间隔,可以更加均匀且精准的选取合适的解码数据帧存入缓存区中以待进行数据计算;同时,利用多个数值越来越大的第二帧率区间与缓存帧率进行匹配,且逐渐增大的第二帧率区间所对应的抽帧间隔也逐渐最大,并将匹配到的第二帧率区间所对应的抽帧间隔作为目标抽帧间隔,从而有效地针对缓存区中的缓存帧数进行抽帧间隔控制以控制输入算法计算单元的解码数据帧的数量;并且,利用质量指标和质量评分参考值对缓存区中的解码数据帧进一步筛选,选取高质量的解码数据帧进行数据计算,以在保证处理目标任务的处理质量的同时,降低算法计算单元处理的解码数据帧的数量;以及,利用缓存帧数的数值实时切换不同的视频处理模型,以控制算法计算单元的处理速率,和利用价值指标和价值评分参考值对目标输出数据进一步筛选,选取高质量的目标输出数据进行输出,以在保证处理目标任务的处理质量的同时,降低输出控制单元输出的目标输出数据的数量;还有,利用优先级参数对目标输出数据进行排序输出,从而保证了业务需求优先级高的数据是实时传输的,不影响实际业务使用的情况下保证了实时性,也有效充分地利用了传输带宽和存储等资源,进而提高处理目标任务的实时性和平滑性。
本申请实施例还提供一种视频数据处理装置,可以实现上述视频数据处理方法,参照图21,该装置2100包括:
视频数据获取模块2110,用于获取目标任务的视频数据,对视频数据进行数据解码得到多个解码数据帧,目标任务包括任务最低帧率;
处理参数获取模块2120,用于获取目标设备中的算法消耗解码数据帧的处理参数,并基于处理参数确定抽帧速率,处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
数据处理模块2130,用于当抽帧速率不小于任务最低帧率时,根据抽帧速率从多个解码数据帧中选取至少一个解码数据帧发送至缓存区,逐一从缓存区中选取解码数据帧进行数据处理,得到目标输出数据;
数据迁移模块2140,用于当抽帧速率小于任务最低帧率时,选取与目标任务匹配的协同处理设备,将当前时刻之后的视频数据迁移到协同处理设备进行数据处理,得到第一输出数据,当缓存区中存在至少一个解码数据帧,利用目标设备对解码数据帧进行数据处理,得到第二输出数据,将第一输出数据和第二输出数据作为目标输出数据。
在一些实施例中,处理参数获取模块2120还用于:
基于任务帧率确定多个第一数量阈值,第一数量阈值逐渐增大,相邻的两个第一数量阈值构成第一帧率区间;
获取每个第一帧率区间的预设帧率,预设帧率逐渐减小;
选取与缓存帧数匹配的第一帧率区间的预设帧率作为抽帧速率。
在一些实施例中,数据处理模块2130还用于:
获取视频数据的解码帧率,当抽帧速率小于解码帧率时,根据解码帧率得到解码时间间隔,并根据抽帧速率得到抽帧时间间隔;
根据解码时间间隔更新解码时间累计值,以及根据抽帧时间间隔得到抽帧时间累计值;
当解码时间累计值大于或等于抽帧时间累计值时,选取解码数据帧发送至缓存区。
在一些实施例中,数据处理模块2130还用于:
基于任务帧率确定多个第二数量阈值,第二数量阈值逐渐增大,相邻的两个第二数量阈值构成第二帧率区间;
获取每个第二帧率区间的抽帧间隔,抽帧间隔逐渐增大;
选取与缓存帧数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔;
根据目标抽帧间隔从缓存区中均匀选取解码数据帧进行数据处理,得到目标输出数据。
在一些实施例中,数据处理模块2130还用于:
获取目标任务的质量指标和质量评分参考值;
基于质量指标对解码数据帧进行第一质量评估,得到解码数据帧的第一质量参数;
将第一质量参数高于质量评分参考值的解码数据帧作为保留数据帧,并逐一选取保留数据帧进行数据计算得到目标输出数据。
在一些实施例中,数据处理模块2130还用于:
获取多个视频处理模型,不同的视频处理模型具有不同的计算精度;
选取与缓存帧数匹配的计算精度对应的视频处理模型为目标处理模型;
利用目标处理模型对解码数据帧进行数据计算得到目标输出数据。
在一些实施例中,数据处理模块2130还用于:
获取目标任务的价值指标和价值评分参考值;
基于价值指标对目标输出数据进行第二质量评估,得到目标输出数据的第二质量参数;
输出第二质量参数高于价值评分参考值的目标输出数据。
在一些实施例中,数据处理模块2130还用于:
获取目标任务的至少一个优先级参数;
根据优先级参数对目标输出数据进行排序,得到排序结果;
根据排序结果逐一输出目标输出数据。
在一些实施例中,数据迁移模块2140,还用于:
基于任务最低帧率确定算力资源参数,从多个协同设备中选取算力资源满足算力资源参数的至少一个协同设备作为备选设备;
基于目标任务的任务类型,从多个备选设备中选取与任务类型匹配的备选设备作为协同处理设备。
在一些实施例中,数据迁移模块2140,还用于:
基于任务最低帧率得到任务回收速率;
当抽帧速率大于任务回收速率时,获取当前时刻之后的视频数据,并将视频数据在目标设备处进行数据处理。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,视频数据处理装置的具体实施方式与上述视频数据处理方法的具体实施方式基本一致,此处不再赘述。
本申请实施例中,视频处理装置利用缓存区的缓存帧数作为算法计算单元的处理速度参考值,根据缓存帧数确定抽帧速率,并将满足抽帧速率的解码数据帧存入缓存区,将不满足抽帧速率的解码数据帧丢弃,从而有效降低缓存区的缓存帧数以降低算法计算单元所需处理的解码数据帧的数量。此外,还利用抽帧速率和任务最低帧率的对比结果作为目标设备是否可以满足处理该目标任务的参考值,当对比结果表征目标设备无法满足处理该目标任务的条件时,将目标任务剩余待处理的视频数据迁移到可以处理该目标任务的协同处理设备上进行协同处理,以提高处理目标任务的可靠性;以及,利用多个数值越来越大的第一帧率区间与缓存帧率进行匹配,且逐渐增大的第一帧率区间所对应的预设帧率逐渐减小,并将匹配到的第一帧率区间所对应的预设帧率作为抽帧速率,从而有效地针对缓存区中的缓存帧数进行抽帧速率控制以控制缓存帧数的增减速率;此外,利用解码帧率对应的解码时间间隔和抽帧速率对应的抽帧时间间隔,可以更加均匀且精准的选取合适的解码数据帧存入缓存区中以待进行数据计算;同时,利用多个数值越来越大的第二帧率区间与缓存帧率进行匹配,且逐渐增大的第二帧率区间所对应的抽帧间隔也逐渐最大,并将匹配到的第二帧率区间所对应的抽帧间隔作为目标抽帧间隔,从而有效地针对缓存区中的缓存帧数进行抽帧间隔控制以控制输入算法计算单元的解码数据帧的数量;并且,利用质量指标和质量评分参考值对缓存区中的解码数据帧进一步筛选,选取高质量的解码数据帧进行数据计算,以在保证处理目标任务的处理质量的同时,降低算法计算单元处理的解码数据帧的数量;以及,利用缓存帧数的数值实时切换不同的视频处理模型,以控制算法计算单元的处理速率,和利用价值指标和价值评分参考值对目标输出数据进一步筛选,选取高质量的目标输出数据进行输出,以在保证处理目标任务的处理质量的同时,降低输出控制单元输出的目标输出数据的数量;还有,利用优先级参数对目标输出数据进行排序输出,从而保证了业务需求优先级高的数据是实时传输的,不影响实际业务使用的情况下保证了实时性,也有效充分地利用了传输带宽和存储等资源,进而提高处理目标任务的实时性和平滑性。
本申请实施例还提供了一种电子设备,包括:
至少一个存储器;
至少一个处理器;
至少一个程序;
所述程序被存储在存储器中,处理器执行所述至少一个程序以实现本申请实施上述的视频数据处理方法。该电子设备可以为包括手机、平板电脑、个人数字助理(PersonalDigital Assistant,简称PDA)、车载电脑等任意智能终端。
请参阅图22,图22示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器2201,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器2202,可以采用ROM(ReadOnlyMemory,只读存储器)、静态存储设备、动态存储设备或者RAM(RandomAccessMemory,随机存取存储器)等形式实现。存储器2202可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器2202中,并由处理器2201来调用执行本申请实施例的视频数据处理方法;
输入/输出接口2203,用于实现信息输入及输出;
通信接口2204,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线2205,在设备的各个组件(例如处理器2201、存储器2202、输入/输出接口2203和通信接口2204)之间传输信息;
其中处理器2201、存储器2202、输入/输出接口2203和通信接口2204通过总线2205实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述视频数据处理方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (17)
1.一种视频数据处理方法,其特征在于,所述方法包括:
获取目标任务的视频数据,对所述视频数据进行数据解码得到多个解码数据帧,所述目标任务包括任务最低帧率;
获取目标设备中的算法消耗解码数据帧的处理参数,并基于所述处理参数确定抽帧速率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
当所述抽帧速率不小于所述任务最低帧率时,根据所述抽帧速率从所述多个解码数据帧中选取至少一个所述解码数据帧发送至缓存区,逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据;
当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理,得到第一输出数据,当所述缓存区中存在至少一个所述解码数据帧,利用所述目标设备对所述解码数据帧进行数据处理,得到第二输出数据,将所述第一输出数据和所述第二输出数据作为所述目标输出数据。
2.根据权利要求1所述的视频数据处理方法,其特征在于,所述处理参数包括目标设备的缓存区对应的缓存帧数,所述目标任务包括任务帧率,所述基于所述处理参数确定抽帧速率,包括:
基于所述任务帧率确定多个第一数量阈值,所述第一数量阈值逐渐增大,相邻的两个所述第一数量阈值构成第一帧率区间;
获取每个所述第一帧率区间的预设帧率,所述预设帧率逐渐减小;
选取与所述缓存帧数匹配的所述第一帧率区间的所述预设帧率作为所述抽帧速率。
3.根据权利要求1所述的视频数据处理方法,其特征在于,所述根据所述抽帧速率从所述多个解码数据帧中选取至少一个所述解码数据帧发送至缓存区,包括:
获取所述视频数据的解码帧率,当所述抽帧速率小于所述解码帧率时,根据所述解码帧率得到解码时间间隔,并根据所述抽帧速率得到抽帧时间间隔;
根据所述解码时间间隔更新解码时间累计值,以及根据所述抽帧时间间隔得到抽帧时间累计值;
当所述解码时间累计值大于或等于所述抽帧时间累计值时,选取所述解码数据帧发送至所述缓存区。
4.根据权利要求2所述的视频数据处理方法,其特征在于,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据,包括:
基于所述任务帧率确定多个第二数量阈值,所述第二数量阈值逐渐增大,相邻的两个所述第二数量阈值构成第二帧率区间;
获取每个所述第二帧率区间的抽帧间隔,所述抽帧间隔逐渐增大;
选取与所述缓存帧数匹配的所述第二帧率区间的所述抽帧间隔作为目标抽帧间隔;
根据所述目标抽帧间隔从所述缓存区中均匀选取所述解码数据帧进行数据处理,得到所述目标输出数据。
5.根据权利要求1所述的视频数据处理方法,其特征在于,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据,包括:
获取所述目标任务的质量指标和质量评分参考值;
基于所述质量指标对所述解码数据帧进行第一质量评估,得到所述解码数据帧的第一质量参数;
将所述第一质量参数高于所述质量评分参考值的所述解码数据帧作为保留数据帧,并逐一选取所述保留数据帧进行数据计算得到所述目标输出数据。
6.根据权利要求2所述的视频数据处理方法,其特征在于,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据,包括:
获取多个视频处理模型,不同的所述视频处理模型具有不同的计算精度;
选取与所述缓存帧数匹配的所述计算精度对应的所述视频处理模型为目标处理模型;
利用所述目标处理模型对所述解码数据帧进行数据计算得到所述目标输出数据。
7.根据权利要求1所述的视频数据处理方法,其特征在于,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据之后,所述方法包括:
获取所述目标任务的价值指标和价值评分参考值;
基于所述价值指标对所述目标输出数据进行第二质量评估,得到所述目标输出数据的第二质量参数;
输出所述第二质量参数高于所述价值评分参考值的所述目标输出数据。
8.根据权利要求1所述的视频数据处理方法,其特征在于,所述逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据之后,所述方法还包括:
获取所述目标任务的至少一个优先级参数;
根据所述优先级参数对所述目标输出数据进行排序,得到排序结果;
根据所述排序结果逐一输出所述目标输出数据。
9.根据权利要求1所述的视频数据处理方法,其特征在于,所述选取与所述目标任务匹配的协同处理设备,包括:
基于所述任务最低帧率确定算力资源参数,从多个协同设备中选取算力资源满足所述算力资源参数的至少一个协同设备作为备选设备;
基于所述目标任务的任务类型,从多个所述备选设备中选取与所述任务类型匹配的所述备选设备作为所述协同处理设备。
10.根据权利要求1所述的视频数据处理方法,其特征在于,当所述视频数据迁移到所述协同处理设备进行数据处理之后,所述方法还包括:
基于所述任务最低帧率得到任务回收速率;
当所述抽帧速率大于所述任务回收速率时,获取当前时刻之后的视频数据,并将所述视频数据在所述目标设备处进行数据处理。
11.一种视频数据处理方法,其特征在于,包括:
获取目标任务的任务控制信息,获取目标任务的视频数据,获取目标设备的算法消耗解码数据帧的处理参数,对所述视频数据进行数据解码得到多个解码数据帧,所述目标任务包括任务最低帧率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
当所述任务控制信息指示以执行速度优先的方式执行所述目标任务时,对所述解码数据帧执行速度优先处理步骤,得到所述目标任务的目标输出数据,所述速度优先处理步骤包括:
当所述处理参数达到第一速度优化条件时,选取与所述处理参数匹配的计算精度对应的视频处理模型为目标处理模型,并利用所述目标处理模型对缓存区中的解码数据帧进行数据计算;
当所述处理参数达到第二速度优化条件时,基于所述处理参数确定抽帧速率,根据所述抽帧速率从所述多个解码数据帧中选取至少一个解码数据帧发送至所述缓存区,所述第一速度优化条件小于所述第二速度优化条件;
当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理;
当所述任务控制信息指示以执行精度优先的方式执行所述目标任务时,对所述解码数据帧执行精度优先处理步骤,得到所述目标任务的目标输出数据,所述精度优先处理步骤包括:
当所述处理参数达到第一精度优化条件时,基于所述处理参数确定抽帧速率,根据所述抽帧速率从所述多个解码数据帧中选取至少一个解码数据帧发送至缓存区;
当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理;
当所述处理参数达到第二精度优化条件时,选取与所述处理参数匹配的计算精度对应的视频处理模型为目标处理模型,并利用所述目标处理模型对所述缓存区中的解码数据帧进行数据计算,所述第一精度优化条件小于所述第二精度优化条件。
12.根据权利要求11所述的视频数据处理方法,其特征在于,当所述任务控制信息指示以执行速度优先的方式执行所述目标任务时,所述当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理之前,所述方法还包括:
当所述处理参数达到第三速度优化条件时,选取与所述处理参数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,并根据所述目标抽帧间隔从所述缓存区中均匀选取所述解码数据帧作为抽取数据帧,并逐一对所述抽取数据帧进行数据处理,所述第二速度优化条件小于所述第三速度优化条件;
当所述处理参数达到第四速度优化条件时,根据所述目标任务的质量指标对所述抽取数据帧进行第一质量评估,得到所述抽取数据帧的第一质量参数,并逐一选取所述第一质量参数高于质量评分参考值的所述抽取数据帧进行数据计算,所述第三速度优化条件小于所述第四速度优化条件。
13.根据权利要求11所述的视频数据处理方法,其特征在于,当所述任务控制信息指示以执行精度优先的方式执行所述目标任务时,所述当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理之前,所述方法还包括:
当所述处理参数达到第三精度优化条件时,选取与所述处理参数匹配的第二帧率区间的抽帧间隔作为目标抽帧间隔,并根据所述目标抽帧间隔从所述缓存区中均匀选取所述解码数据帧作为抽取数据帧,并逐一对所述抽取数据帧进行数据处理,所述第一精度优化条件小于所述第三精度优化条件,所述第三精度优化条件小于所述第二精度优化条件;
当所述处理参数达到第四精度优化条件时,根据所述目标任务的质量指标对所述抽取数据帧进行第一质量评估,得到所述抽取数据帧的第一质量参数,并逐一选取所述第一质量参数高于质量评分参考值的所述抽取数据帧进行数据计算,所述第三精度优化条件小于所述第四精度优化条件,所述第四精度优化条件小于所述第二精度优化条件。
14.根据权利要求11所述的视频数据处理方法,其特征在于,所述方法还包括:
当所述目标输出数据的输出数量达到第一输出条件时,根据所述目标任务的价值指标对所述目标输出数据进行第二质量评估,得到所述目标输出数据的第二质量参数,输出所述第二质量参数高于价值评分参考值的所述目标输出数据;
或者,
当所述目标输出数据的输出数量达到第二输出条件时,根据所述目标任务的优先级参数对所述目标输出数据进行排序,得到排序结果,并根据所述排序结果逐一输出所述目标输出数据。
15.一种视频数据处理装置,其特征在于,所述装置包括:
视频数据获取模块,用于获取目标任务的视频数据,对所述视频数据进行数据解码得到多个解码数据帧,所述目标任务包括任务最低帧率;
处理参数获取模块,获取目标设备中的算法消耗解码数据帧的处理参数,并基于所述处理参数确定抽帧速率,所述处理参数用于判断视频处理单元产生解码数据帧的速度是否超过算法处理的负载能力;
数据处理模块,用于当所述抽帧速率不小于所述任务最低帧率时,根据所述抽帧速率从所述多个解码数据帧中选取至少一个所述解码数据帧发送至缓存区,逐一从所述缓存区中选取所述解码数据帧进行数据处理,得到目标输出数据;
数据迁移模块,用于当所述抽帧速率小于所述任务最低帧率时,选取与所述目标任务匹配的协同处理设备,将当前时刻之后的所述视频数据迁移到所述协同处理设备进行数据处理,得到第一输出数据,当所述缓存区中存在至少一个所述解码数据帧,利用所述目标设备对所述解码数据帧进行数据处理,得到第二输出数据,将所述第一输出数据和所述第二输出数据作为所述目标输出数据。
16.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10任一项所述的视频数据处理方法或者实现权利要求11至14任一项所述的视频数据处理方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任一项所述的视频数据处理方法或者实现权利要求11至14任一项所述的视频数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410559070.4A CN118138801A (zh) | 2024-05-08 | 2024-05-08 | 视频数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410559070.4A CN118138801A (zh) | 2024-05-08 | 2024-05-08 | 视频数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118138801A true CN118138801A (zh) | 2024-06-04 |
Family
ID=91244463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410559070.4A Pending CN118138801A (zh) | 2024-05-08 | 2024-05-08 | 视频数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118138801A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391585A (zh) * | 2017-08-03 | 2019-02-26 | 杭州海康威视数字技术股份有限公司 | 视频数据处理方法、装置、终端及计算机可读存储介质 |
CN111954031A (zh) * | 2019-05-14 | 2020-11-17 | 西安光启未来技术研究院 | 一种动态调整视频流抽帧速率的方法及系统 |
WO2022120828A1 (zh) * | 2020-12-11 | 2022-06-16 | 深圳市大疆创新科技有限公司 | 视频抽帧方法、设备及存储介质 |
-
2024
- 2024-05-08 CN CN202410559070.4A patent/CN118138801A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391585A (zh) * | 2017-08-03 | 2019-02-26 | 杭州海康威视数字技术股份有限公司 | 视频数据处理方法、装置、终端及计算机可读存储介质 |
CN111954031A (zh) * | 2019-05-14 | 2020-11-17 | 西安光启未来技术研究院 | 一种动态调整视频流抽帧速率的方法及系统 |
WO2022120828A1 (zh) * | 2020-12-11 | 2022-06-16 | 深圳市大疆创新科技有限公司 | 视频抽帧方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230196837A1 (en) | Action recognition method and apparatus, and device and storage medium | |
CN107181776B (zh) | 一种数据处理方法及相关设备、系统 | |
KR102385463B1 (ko) | 얼굴 특징 추출 모델 학습 방법, 얼굴 특징 추출 방법, 장치, 디바이스 및 저장 매체 | |
CN108012156B (zh) | 一种视频处理方法及控制平台 | |
CN110276257B (zh) | 人脸识别方法、装置、系统、服务器及可读存储介质 | |
US20120114177A1 (en) | Image processing system, image capture apparatus, image processing apparatus, control method therefor, and program | |
WO2012149296A2 (en) | Providing content aware video adaptation | |
CN110084113B (zh) | 活体检测方法、装置、系统、服务器及可读存储介质 | |
CN110557633B (zh) | 图像数据的压缩传输方法、系统和计算机可读存储介质 | |
CN112399177B (zh) | 一种视频编码方法、装置、计算机设备及存储介质 | |
CN118138801A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
CN115827944B (zh) | 基于互联网平台系统优化的大数据分析方法及服务器 | |
US11164328B2 (en) | Object region detection method, object region detection apparatus, and non-transitory computer-readable medium thereof | |
US11743492B2 (en) | Information processing apparatus, inference execution control method, and storage medium | |
CN104462422A (zh) | 对象的处理方法及装置 | |
KR102440073B1 (ko) | 최적화 모델 선택 장치 및 방법 | |
CN114661444A (zh) | 调度方法、第一计算节点、第二计算节点以及调度系统 | |
KR101526490B1 (ko) | 클라우드 컴퓨팅에서의 효율적 자원관리를 위한 시각 데이터 가공장치 및 그 방법 | |
CN1939064A (zh) | 视频处理方法和相应的编码设备 | |
CN113115072A (zh) | 一种基于端云协同的视频目标检测跟踪调度方法及系统 | |
CN1436426A (zh) | 用于图像相关性最小失真计算的自适应尽快退出技术 | |
CN111737371A (zh) | 可动态预测的数据流量检测分类方法及装置 | |
CN111291602A (zh) | 视频检测方法、装置、电子设备及计算机可读存储介质 | |
CN117170886B (zh) | 一种面向大连接视频分析的连续学习资源调度方法及装置 | |
CN110580429B (zh) | 一种视频背景库的管理方法、装置及其应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |