CN112995532B - 视频处理方法及装置 - Google Patents

视频处理方法及装置 Download PDF

Info

Publication number
CN112995532B
CN112995532B CN202110147860.8A CN202110147860A CN112995532B CN 112995532 B CN112995532 B CN 112995532B CN 202110147860 A CN202110147860 A CN 202110147860A CN 112995532 B CN112995532 B CN 112995532B
Authority
CN
China
Prior art keywords
video
video frame
processed
processing
decoding
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.)
Active
Application number
CN202110147860.8A
Other languages
English (en)
Other versions
CN112995532A (zh
Inventor
马进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110147860.8A priority Critical patent/CN112995532B/zh
Publication of CN112995532A publication Critical patent/CN112995532A/zh
Application granted granted Critical
Publication of CN112995532B publication Critical patent/CN112995532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2628Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供视频处理方法及装置,其中所述视频处理方法包括:接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;切割所述待处理视频,获得至少两个待处理视频片段;分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果。通过本申请提供的视频处理方法,可以有效提高视频处理速度、提高视频处理效率。

Description

视频处理方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种视频处理方法。本申请同时涉及一种视频处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着计算机技术的发展,智能终端设备的性能也越来越好,越来越多的视频处理任务也开始在智能终端设备上执行。
目前的智能终端设备中,通过计算机视觉算法对视频进行处理,通常会使用GPU(通用图形处理单元)芯片用以进行视频处理加速,同时利用GPU和CPU(中央处理器)组成异构计算系统,对视频进行处理,但是在视频处理任务中,是需要对视频的所有连续画面进行分析处理,即GPU和CPU组成的异构计算系统需要对视频进行逐帧解码,再按照视频帧的顺序基于计算机视觉算法进行视频处理,视频处理速度较慢。
发明内容
有鉴于此,本申请实施例提供了一种视频处理方法。本申请同时涉及一种视频处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的视频处理速度慢、效率低的问题。
根据本申请实施例的第一方面,提供了一种视频处理方法,包括:
接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;
切割所述待处理视频,获得至少两个待处理视频片段;
分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;
将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;
整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果。
根据本申请实施例的第二方面,提供了一种视频处理装置,包括:
接收模块,被配置为接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;
切割模块,被配置为切割所述待处理视频,获得至少两个待处理视频片段;
解码模块,被配置为分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;
处理模块,被配置为将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;
整合模块,被配置为整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述视频处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述视频处理方法的步骤。
本申请提供的视频处理方法,包括接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;切割所述待处理视频,获得至少两个待处理视频片段;分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;通过切割待处理视频,可以将多各待处理视频片段分段进行解码处理,提高视频处理速度,将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;同时至少两个视频帧处理线程同时对待处理视频帧进行处理,进一步提高视频处理速度,整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果。本申请实施例提供的视频处理方法,通过并行解码视频和并行处理视频帧的方式,充分利用多种处理器同时进行解码和处理,节约了视频处理时,提高了视频处理的效率。
附图说明
图1是本申请一实施例提供的一种视频处理方法的流程图;
图2是本申请一实施例提供的视频处理方法的架构图;
图3是本申请一实施例提供的一种应用于视频中追踪目标的视频处理方法的处理流程图;
图4是本申请一实施例提供的一种视频处理装置的结构示意图;
图5是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
GPU:通用图形处理单元。
CPU:中央处理器。
DSP:即数字信号处理器。
异构计算:使用不同类型指令集和体系架构的计算单元组成系统的计算方式,比如GPU、CPU、DSP等多种功能的处理器进行计算。
进程:是计算机的程序关于某个数据集合的一次运动活动,是操作系统结构的基础。
线程:操作系统能进行运算调度的最小单位,被包含在进程中,是进程中的实际运作单位。一个进程中可以并发多个线程,每个线程并行执行不同的任务。
在本申请中,提供了一种视频处理方法,本申请同时涉及一种视频处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种视频处理方法的流程图,具体包括以下步骤:
步骤102:接收视频处理任务,其中,所述视频处理任务中携带有待处理视频。
在本申请中,视频处理任务具体是指基于计算机视觉算法对视频进行相应处理的任务,比如在多人在线战术竞技游戏(MOBA游戏)的游戏视频中识别出玩家连续击杀次数最多的时刻,或者在监控视频中识别目标物体,或者为一段视频打标签,用以描述视频的内容等等,视频处理任务的具体任务内容以实际应用为准,在本申请中,对具体的任务内容不做限定。
视频处理任务中携带有待处理视频,表示该视频处理任务是针对待处理视频进行的处理。
在本申请提供的一具体实施方式中,接收针对待处理视频A的视频分析请求,分析待处理视频A中是否出现目标T。
步骤104:切割所述待处理视频,获得至少两个待处理视频片段。
对视频进行分析处理,通常需要先对视频进行解码,获得视频帧,再将视频帧经过计算机视觉算法模块进行处理,获得对应的处理结果。对视频进行解码通常有两种方式,一种是对视频利用CPU(中央处理器)进行软件解码,又被成为软件解码;另一种是利用专用的硬件解码器进行硬件解码,软件解码是通过软件本身占用的CPU进行解码,硬件解码是在某个芯片里烧录一套专门的算法对视频进行解码。
在本申请提供的视频处理方法中,为了提高视频处理效率,利用软件解码和硬件解码同时对待处理视频进行处理,基于此,需要让每个解码方式都有对应的待处理视频,两种解码方式并行处理,提高视频解码效率,进而提高视频处理速度,因此需要对待处理视频进行切割,获得至少两个待处理片段,所述至少两个待处理片段经过拼接后即是待处理视频。
具体的,切割所述待处理视频,获得至少两个待处理视频片段,包括:
获取解码线程数量,所述解码线程的数量为至少两个;
根据所述解码线程数量切割所述待处理视频,获得与所述解码线程数量对应数量的待处理视频片段。
其中,解码线程包括硬件解码线程和至少一个处理器解码线程。
线程是操作系统中进行运算调度的最小单位,被包含在进程中,是进程中的实际运作单位,一个进程可以并发多个线程,每个线程并行执行不同的任务,对应的,软件解码是一个软件解码进程,而在软件解码进程中会有至少一个处理器解码线程,通常情况下,处理器解码线程通常与CPU的核数有关,比如一个8核的CPU,可以运行8个处理器解码线程。而硬件解码线程对应的就是硬件解码,由于硬件解码是烧录到芯片的算法,因此通常一个设备会有一个硬件解码线程。
为了保证资源利用率,可以为每个解码线程分配一个待处理视频片段,基于此,首先获取解码线程的数量m,所述解码线程的数量至少会包括硬件解码线程和至少一个处理器解码线程,再根据解码线程数量m切割所述待处理视频,将待处理视频分割为m个待处理视频片段,每个待处理视频片段对应一个解码线程。
切割待处理视频的具体方法可以是根据待处理视频的时长来切割,比如待处理视频需要切割为5个待处理视频片段,待处理视频的时长为300秒,则每个待处理视频频段为60秒;又比如待处理视频需要切割为8个待处理视频,待处理视频的时长为470秒,则可以切割为7个时长为59秒的待处理视频片段和1个时长为57秒的待处理视频频段,在实际应用中,为了保证待处理视频的处理速度,需要尽可能的保证切割后得到的每个待处理视频片段的时长是比较相近的。
在本申请提供的一具体实施方式中,沿用上例,解码终端设备的CPU核数为8核,因此解码线程包括8个处理器解码线程和1个硬件解码线程,共计9个解码线程,因此将待处理视频A进行分割,分割为9个待处理视频片段,分别为A1、A2、……A9
步骤106:分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列。
在将待处理视频切割为待处理视频片段之后,就需要对每个待处理视频片段进行解码,待处理视频片段经过解码后即可获得对应的待处理视频帧,将待处理视频帧输入至预先设置的视频帧队列,视频帧队列中用于存放待处理视频帧,队列是一种特殊的线性表,队列中的数据元素被称为队列元素,在队列中插入一个队列元素被称为入队,从对列中删除一个队列元素则被称为出队,因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,因此,队列又被称为先进先出线性表。
在本申请中,视频帧队列中的队列元素就是待处理视频帧,先被解码生成的待处理视频帧先被放入到视频帧队列中。
具体的,分别解码每个待处理视频片段,包括:
为每个解码线程随机分配一个待处理视频片段;
每个解码线程解码对应的待处理视频片段获得待处理视频帧,其中,解码线程之间为并行解码。
相应的,将解码获得待处理视频帧输入至视频帧队列,包括:
将解码获得的待处理视频帧按照解码时间输入至视频帧队列。
在实际应用中,包括多个解码线程,待处理视频也已经根据解码线程的数量切割为对应数量的待处理视频片段,因此为每个解码线程分配一个待处理视频片段进行对应解码,为了提高解码效率,解码线程之间是并行处理的,即每个解码线程之间是互不影响的。每个解码线程只负责解码当前解码线程对应的待处理视频片段,进而生成对应的待处理视频帧。
由于解码线程之间是并行处理的,而且每个解码线程之间进行解码的速度也会有波动,因此,解码生成的待处理视频帧之间也是随机、无顺序的。
为了提高视频整体的处理速度,将每个生成的待处理视频帧按照解码时间输入至视频帧队列,即视频帧队列中的待处理视频帧与待处理视频的顺序无关,只与解码生成待处理视频帧的时间有关。
在本申请提供的一具体实施方式中,沿用上例,供有9个解码线程分别处理9个待处理视频片段A1、A2、……A9,其中,每个待处理视频片段的时长均为10秒,所述待处理视频的帧率为30帧,则每个待处理视频频段可以解码生成300个待处理视频帧。
每个解码线程对应一个待处理视频频段,每当解码生成一个待处理视频帧后,就将该待处理视频帧添加到视频帧队列中,比如经过解码,获得待处理视频片段A1的第一个待处理视频帧F1-001,之后获得待处理视频片段A4的第一个待处理视频帧F4-001,之后获得待处理视频片段A8的第一个待处理视频帧F8-001,……,则将上述待处理视频帧按照F1-001、F4-001、F8-001、……的顺序依次添加到视频帧队列中。
步骤108:将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列。
视频帧处理线程即用于处理视频帧的线程,本申请是通过计算机视觉算法对视频帧进行处理,视频帧处理的具体内容根据视频处理任务有关,计算机视觉算法同时运行在CPU和GPU上,组成异构计算单元,同时对待处理视频帧进行处理,在实际应用中,通常采用卷积神经网络(Convolutional Neural Networks,CNN)提取待处理视频帧的特征信息,并对特征信息进行处理,生成每个待处理视频帧对应的视频帧处理结果。
视频帧处理结果队列用于存储每个待处理视频帧经过处理后获得的视频帧处理结果。
具体的,视频帧处理线程包括图形处理单元处理线程和至少一个处理器处理线程。
视频帧处理线程即包括图形处理单元处理线程(GPU线程),也包括至少一个处理器处理线程(CPU线程),处理器处理线程的具体数量也是根据CPU的核数确定的,比如,CPU为12核CPU,则可以包括12个并发处理的处理器处理线程。
在实际应用中,将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,具体包括:
在至少两个视频帧处理线程中确定使用状态为空闲的视频帧处理线程为候选视频帧处理线程;
在所述视频帧队列中确定目标待处理视频帧,并将所述目标待处理视频帧随机分配到一个候选视频帧处理线程中进行处理。
视频帧处理线程可以同时并行处理待处理视频帧,当某个视频帧处理线程正在处理某个待处理视频帧时,则该视频帧处理线程的使用状态为忙碌,相应的,当某个视频帧处理线程没有处理待处理视频帧时,则该视频帧处理线程的使用状态为空闲。
为了保证每个视频帧处理线程都可以及时高效的运行,监控每个视频帧处理线程的使用状态,确定使用状态为空闲的视频帧处理线程为候选视频帧处理线程,若所有的视频帧处理线程的使用状态都为忙碌,则进入等待状态,直至出现空闲的视频帧处理线程。
当有候选视频帧处理线程出现时,则在视频帧队列中确定一个目标待处理视频帧,由于队列先进先出的特性,目标待处理视频帧通常是队列中的第一个待处理视频帧。当候选视频帧处理线程为一个的时候,则将目标待处理视频帧分配至该候选视频帧处理线程进行处理;当候选视频帧处理线程为至少两个的时候,则将目标待处理视频帧随机分配至任意一个候选视频帧处理线程进行处理。
需要注意的是,在步骤108中进行的视频帧识别操作和在步骤106中的视频解码操作是相互独立的两个操作,两者之间互不影响,解码获得的待处理视频帧进入计算机视觉算法模块进行视频帧处理,无需等待,节省了视频帧处理时间,提高了视频处理效率。
在本申请提供的一具体实施方式中,沿用上例,解码终端设备包括1个CPU和1个GPU,其中,CPU核数为8核,则在当前解码终端设备上可以部署9个视频帧处理线程。视频帧队列中的待处理视频帧随机分配给9个视频帧处理线程中使用状态为空闲的视频帧处理线程,视频帧处理线程对待处理视频帧进行识别后生成视频帧处理结果,并添加到视频帧处理结果队列中。
相应的,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列,包括:
将每个待处理视频帧对应的视频帧处理结果按照处理完成时间添加至视频帧处理结果队列。
由于每个视频帧处理线程的处理能力和视频帧的内容是不同的,因此视频帧处理结果生成的顺序也是乱序的。将待处理视频帧添加到视频帧处理结果队列中的顺序也是乱序的,在本申请中,按照每个视频帧处理结果处理完成的时间添加到视频帧处理结果队列中。
在本申请提供的一具体实施方式中,沿用上例,待处理视频帧F1-001对应的视频帧处理结果为R1-001、待处理视频帧F2-008对应的视频帧处理结果为R2-008、……依次类推,并将视频帧处理结果添加到视频帧处理结果队列中。
步骤110:整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果。
当视频帧队列中的待处理视频帧经过多个视频帧处理线程处理后,获得的视频帧处理结果都被添加到了视频帧处理结果队列中,再将视频帧处理结果队列中的每个视频帧处理结果进行整合,获得所述待处理视频对应的视频处理结果。
具体的,视频帧处理结果包括视频帧标识;
整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果,包括:
根据每个视频帧处理结果对应的视频帧标识对视频帧处理结果进行排序,获得所述待处理视频对应的视频帧处理结果序列;
根据所述视频处理任务和所述视频帧处理结果序列获得所述待处理视频对应的视频处理结果。
在实际应用中,由于视频在不同的解码线程中进行解码,生成的待处理视频帧是乱序的,待处理视频帧经过不同的视频帧处理线程处理后,获得的视频帧处理结果也是乱序的,为了保证最终整合每个视频帧处理结果时的顺序性,在视频帧处理过程中,均包括视频帧标识,视频帧标识可以是视频帧序号、也可以是视频帧的时间戳,在本申请中对此不做限制,以实际应用为准,比如待处理视频帧F1-001对应的视频帧标识即为1-001,视频帧处理结果R2-008对应的视频帧标识即为2-008,其中,1-001代表第1个视频片段中的第1个视频帧,2-008代表第2个视频片段中的第8个视频帧。
对应的,整合每个视频帧处理结果,即根据每个视频帧处理结果对应的视频帧标识对视频帧处理结果进行排序,获得视频帧处理结果序列,再根据视频处理任务和视频帧处理结果序列获取最终的视频处理结果。
在本申请提供的一具体实施方式中,视频处理任务为“获取游戏视频中,玩家5杀视频片段”,则根据视频处理任务和经过排序的视频帧处理结果序列,获取视频帧中5杀的开始视频帧和5杀的结束视频帧,并截取开始视频帧和结束视频帧之间的视频片段作为视频处理任务的视频处理结果。
在本申请提供的另一具体实施方式中,视频处理任务为“识别视频中某个人物出现的时长”,则根据视频处理任务和经过排序的视频帧处理结果序列,视频帧处理结果中包括是否含有该人物,统计视频帧处理结果中包括该人物的视频帧的时长,则最终统计的时长即为待处理视频对应的视频处理结果。
可选的,所述方法还包括:返回所述视频处理结果。
在实际应用中,在获得视频处理结果之后,还可以将视频处理结果返回给发起视频处理任务的用户,具体的返回方式可以通过网页、邮件、截图、保存等方式,比如可以将视频处理结果通过网页的方式展示给用户,也可以将视频处理结果以邮件的形式发送给用户,也可以给用户提供下载链接供用户下载视频处理结果等等,对于返回的具体方式以实际应用为准,在本申请中不做具体限定。
本申请提供的视频处理方法,包括接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;切割所述待处理视频,获得至少两个待处理视频片段;分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果,通过本方法,在对视频解码时,对多个视频片段同时解码,达到并行解码的过程,提升视频解码模块的效率,解码获得的待处理视频帧进入计算机视觉算法模块进行处理,计算机视觉算法同时运行在CPU和GPU中的至少两个视频帧处理线程中,CPU和GPU构建了异构计算模块,对待处理视频帧分别进行并行识别处理,可以充分利用移动端的硬件资源,进一步提升视频处理速度,提升识别效率。
下述结合附图2和附图3,以本申请提供的视频处理方法在视频中追踪目标的应用为例,对所述视频处理方法进行进一步说明。其中,图2是本申请实施例提供的视频处理方法的架构图。
如图2所示,当获取一段视频后,根据解码线程的数量,将视频分为若干个视频片段,将每个视频片段随机分配到CPU解码线程或硬件解码线程中并行解码,然后将各个解码器输出的待处理视频帧送入视频帧队列,由于采用了多个解码线程,送入视频帧队列的待处理视频帧是乱序的,因此每个视频帧上记录有对应的视频帧标识(如1-001,7-006等)。
计算机视觉算法同时运行在CPU和GPU上,CPU和GPU构建了异构计算模块,对待处理视频帧进行处理,不同的视频帧处理线程从视频帧队列中取出不同的待处理视频帧,进行并行的算法识别处理,并每个待处理视频帧对应的视频帧处理结果写到视频帧处理结果队列,当计算机视觉算法结束后,将所有的视频帧处理结果进行整合,最终生成视频对应的视频处理结果,本申请提供的视频处理方法充分利用了异构计算体系,在视频解码阶段和计算机视觉算法识别阶段同时使用并行处理的方式,并打乱了视频帧的顺序,提高了视频处理速度。
图3示出了本申请一实施例提供的一种应用于视频中追踪目标的视频处理方法的处理流程图,具体包括以下步骤:
步骤302:接收在视频V中追踪目标T的视频处理任务,其中,所述视频处理任务中携带有待处理视频V。
在本申请提供的一具体实施方式中,沿用上例,接收视频处理任务,视频处理任务具体是在视频V中追踪目标T,在视频处理任务中携带有待处理视频V。
步骤304:获取处理器解码线程为6个和硬件解码线程为1个,并将待处理视频V切割为7个待处理视频片段。
在本申请提供的一具体实施方式中,沿用上例,视频处理终端的CPU是6核CPU,可以创建6个CPU解码线程,同时视频处理终端还包括一个硬件解码线程,因此视频处理终端可以运行7个解码线程,基于此,将视频V切割为7个待处理视频片段,分别为V1、V2、……V7,视频V的时长为150秒,则待处理视频片段V1-V4的时长分别为21秒,待处理视频V5-V7的时长分别为22秒。
步骤306:为每个解码线程随机分配一个待处理视频片段进行视频解码,将解码获得的待处理视频帧输入到视频帧队列。
在本申请提供的一具体实施方式中,沿用上例,为每个解码线程随机分配一个待处理视频片段,比如,CPU解码线程1处理待处理视频片段2、CPU解码线程2处理待处理视频片段4、CPU解码线程3处理待处理视频片段7、CPU解码线程4处理待处理视频片段3、CPU解码线程5处理待处理视频片段6、CPU解码线程6处理待处理视频片段5、硬件解码线程处理待处理视频片段1。
7个解码线程之间并行解码,将解码获得的待处理视频帧输入到视频帧队列。
步骤308:在6个处理器处理线程和1个图形处理单元处理线程中确定候选视频帧处理线程。
在本申请提供的一具体实施方式中,沿用上例,由于CPU有6个核,因此,视频处理终端可以运行6个CPU视频帧处理线程和1个GPU视频帧处理线程。在7个视频帧处理线程中确定候选视频帧处理线程。候选视频帧处理线程为使用状态为空闲的视频帧处理线程。
步骤310:将视频帧队列中的待处理视频帧随机分配到一个候选视频帧处理线程中进行处理。
在本申请提供的一具体实施方式中,沿用上例,将视频帧队列中的待处理视频帧随机分配到一个候选视频帧处理线程中进行处理,判断待处理视频帧中是否有目标T。
步骤312:将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列。
在本申请提供的一具体实施方式中,沿用上例,将每个待处理视频帧对应的视频帧处理结果添加到视频帧处理结果队列中。
步骤314:根据每个视频帧处理结果对应的视频帧标识对视频帧处理结果进行排序,获得所述待处理视频V对应的视频帧处理结果序列。
在本申请提供的一具体实施方式中,沿用上例,当视频识别完成后,将每个视频帧处理结果进行排序,生成视频帧处理结果序列。
步骤316:根据所述视频处理任务和所述视频帧处理结果序列获得所述待处理视频V对应的视频处理结果。
在本申请提供的一具体实施方式中,沿用上例,根据视频处理任务追踪目标T和视频帧处理结果序列,生成所述视频V对应的视频处理结果为“在视频V的第5-18秒和第56-98秒出现了目标T”。
步骤318:返回所述视频处理结果。
在本申请提供的一具体实施方式中,沿用上例,视频处理结果“在视频V的第5-18秒和第56-98秒出现了目标T”返回给用户。
本申请提供的视频处理方法,在对视频解码时,对多个视频片段同时解码,达到并行解码的过程,提升视频解码模块的效率,解码获得的待处理视频帧进入计算机视觉算法模块进行处理,计算机视觉算法同时运行在CPU和GPU中的至少两个视频帧处理线程中,CPU和GPU构建了异构计算模块,对待处理视频帧分别进行并行识别处理,可以充分利用移动端的硬件资源,进一步提升视频处理速度,提升识别效率。
与上述视频处理方法实施例相对应,本申请还提供了视频处理装置实施例,图4示出了本申请一实施例提供的一种视频处理装置的结构示意图。如图4所示,该装置包括:
接收模块402,被配置为接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;
切割模块404,被配置为切割所述待处理视频,获得至少两个待处理视频片段;
解码模块406,被配置为分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;
处理模块408,被配置为将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;
整合模块410,被配置为整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果。
可选的,所述切割模块404,进一步被配置为:
获取解码线程数量,所述解码线程的数量为至少两个;
根据所述解码线程数量切割所述待处理视频,获得与所述解码线程数量对应数量的待处理视频片段。
可选的,所述解码模块406,进一步被配置为:
为每个解码线程随机分配一个待处理视频片段;
每个解码线程解码对应的待处理视频片段获得待处理视频帧,其中,解码线程之间为并行解码。
可选的,所述解码模块406,进一步被配置为:
将解码获得的待处理视频帧按照解码时间输入至视频帧队列。
可选的,解码线程包括硬件解码线程和至少一个处理器解码线程。
可选的,所述处理模块408,进一步被配置为:
在至少两个视频帧处理线程中确定使用状态为空闲的视频帧处理线程为候选视频帧处理线程;
在所述视频帧队列中确定目标待处理视频帧,并将所述目标待处理视频帧随机分配到一个候选视频帧处理线程中进行处理。
可选的,所述处理模块408,进一步被配置为:
将每个待处理视频帧对应的视频帧处理结果按照处理完成时间添加至视频帧处理结果队列。
可选的,视频帧处理线程包括图形处理单元处理线程和至少一个处理器处理线程。
可选的,视频帧处理结果包括视频帧标识;
可选的,所述整合模块410,进一步被配置为:
根据每个视频帧处理结果对应的视频帧标识对视频帧处理结果进行排序,获得所述待处理视频对应的视频帧处理结果序列;
根据所述视频处理任务和所述视频帧处理结果序列获得所述待处理视频对应的视频处理结果。
可选的,所述装置还包括:
返回模块,被配置为返回所述视频处理结果。
本申请提供的视频处理装置,包括接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;切割所述待处理视频,获得至少两个待处理视频片段;分别解码每个待处理视频片段,将解码获得待处理视频帧输入至视频帧队列;将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列;整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果,通过本装置,在对视频解码时,对多个视频片段同时解码,达到并行解码的过程,提升视频解码模块的效率,解码获得的待处理视频帧进入计算机视觉算法模块进行处理,计算机视觉算法同时运行在CPU和GPU中的至少两个视频帧处理线程中,CPU和GPU构建了异构计算模块,对待处理视频帧分别进行并行识别处理,可以充分利用移动端的硬件资源,进一步提升视频处理速度,提升识别效率。
上述为本实施例的一种视频处理装置的示意性方案。需要说明的是,该视频处理装置的技术方案与上述的视频处理方法的技术方案属于同一构思,视频处理装置的技术方案未详细描述的细节内容,均可以参见上述视频处理方法的技术方案的描述。
图5示出了根据本申请一实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520执行所述计算机指令时实现所述的视频处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的视频处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述视频处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述视频处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的视频处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述视频处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (10)

1.一种视频处理方法,其特征在于,包括:
接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;
获取解码线程数量,根据所述解码线程数量切割所述待处理视频,获得与所述解码线程数量对应数量的待处理视频片段,所述解码线程的数量为至少两个;
基于每个解码线程分别解码每个待处理视频片段,将解码获得待处理视频帧按照解码时间输入至视频帧队列,其中,解码线程之间为并行解码,所述视频帧队列用于存放所述待处理视频帧,所述视频帧队列中的待处理视频帧与所述待处理视频的顺序无关;
将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列,其中,所述至少两个视频帧处理线程包括图形处理单元处理线程和至少一个处理器处理线程,所述至少两个视频帧处理线程的运行无需等待各解码线程的全部解码结果;
根据每个视频帧处理结果对应的视频帧标识整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果,其中,所述视频帧标识包括每个视频帧的序号或每个视频帧的时间戳。
2.如权利要求1所述的视频处理方法,其特征在于,基于每个解码线程分别解码每个待处理视频片段,包括:
为每个解码线程随机分配一个待处理视频片段;
每个解码线程解码对应的待处理视频片段获得待处理视频帧。
3.如权利要求2所述的视频处理方法,其特征在于,解码线程包括硬件解码线程和至少一个处理器解码线程。
4.如权利要求1所述的视频处理方法,其特征在于,将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,包括:
在至少两个视频帧处理线程中确定使用状态为空闲的视频帧处理线程为候选视频帧处理线程;
在所述视频帧队列中确定目标待处理视频帧,并将所述目标待处理视频帧随机分配到一个候选视频帧处理线程中进行处理。
5.如权利要求4所述的视频处理方法,其特征在于,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列,包括:
将每个待处理视频帧对应的视频帧处理结果按照处理完成时间添加至视频帧处理结果队列。
6.如权利要求1-5任意一项所述的视频处理方法,其特征在于,视频帧处理结果包括视频帧标识;
整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果,包括:
根据每个视频帧处理结果对应的视频帧标识对视频帧处理结果进行排序,获得所述待处理视频对应的视频帧处理结果序列;
根据所述视频处理任务和所述视频帧处理结果序列获得所述待处理视频对应的视频处理结果。
7.如权利要求1-5任意一项所述的视频处理方法,其特征在于,所述方法还包括:
返回所述视频处理结果。
8.一种视频处理装置,其特征在于,包括:
接收模块,被配置为接收视频处理任务,其中,所述视频处理任务中携带有待处理视频;
切割模块,被配置为获取解码线程数量,根据所述解码线程数量切割所述待处理视频,获得与所述解码线程数量对应数量的待处理视频片段,所述解码线程的数量为至少两个;
解码模块,被配置为基于每个解码线程分别解码每个待处理视频片段,将解码获得待处理视频帧按照解码时间输入至视频帧队列,其中,所述解码线程之间为并行解码,所述视频帧队列用于存放所述待处理视频帧,所述视频帧队列中的待处理视频帧与所述待处理视频的顺序无关;
处理模块,被配置为将所述视频帧队列中的待处理视频帧随机分配到至少两个视频帧处理线程中进行处理,将每个待处理视频帧对应的视频帧处理结果添加至视频帧处理结果队列,其中,所述至少两个视频帧处理线程包括图形处理单元处理线程和至少一个处理器处理线程,所述至少两个视频帧处理线程的运行无需等待各解码线程的全部解码结果;
整合模块,被配置为根据每个视频帧处理结果对应的视频帧标识整合所述视频帧处理结果队列中每个视频帧处理结果,获得所述待处理视频对应的视频处理结果,其中,所述视频帧标识包括每个视频帧的序号或每个视频帧的时间戳。
9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述计算机指令时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
CN202110147860.8A 2021-02-03 2021-02-03 视频处理方法及装置 Active CN112995532B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110147860.8A CN112995532B (zh) 2021-02-03 2021-02-03 视频处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110147860.8A CN112995532B (zh) 2021-02-03 2021-02-03 视频处理方法及装置

Publications (2)

Publication Number Publication Date
CN112995532A CN112995532A (zh) 2021-06-18
CN112995532B true CN112995532B (zh) 2023-06-13

Family

ID=76346346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110147860.8A Active CN112995532B (zh) 2021-02-03 2021-02-03 视频处理方法及装置

Country Status (1)

Country Link
CN (1) CN112995532B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115543535B (zh) * 2022-09-30 2024-04-09 摩尔线程智能科技(北京)有限责任公司 安卓容器系统、安卓容器构建方法及装置、电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228506A (zh) * 2016-07-14 2016-12-14 重庆大学 一种基于gpu的多帧图像并行处理的方法
CN108965891A (zh) * 2012-01-30 2018-12-07 三星电子株式会社 用于视频编码和解码的方法和设备
CN111343503A (zh) * 2020-03-31 2020-06-26 北京金山云网络技术有限公司 视频的转码方法、装置、电子设备及存储介质
CN111757115A (zh) * 2020-07-30 2020-10-09 杭州橙鹰数据技术有限公司 一种视频流处理方法及装置
CN112040233A (zh) * 2020-11-04 2020-12-04 北京金山云网络技术有限公司 视频编码、视频解码方法和装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102763136B (zh) * 2010-02-11 2015-04-01 诺基亚公司 用于提供多线程视频解码的方法和设备
CN101873498B (zh) * 2010-06-22 2013-05-08 深圳市融创天下科技股份有限公司 一种视频解码方法、装置及视音频播放系统
EP2530948A1 (en) * 2011-06-03 2012-12-05 Samsung Electronics Co., Ltd. Method and device for demultiplexing audio & video data of multimedia file
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
TW201725908A (zh) * 2016-01-07 2017-07-16 鴻海精密工業股份有限公司 視頻解碼方法
CN109040779B (zh) * 2018-07-16 2019-11-26 腾讯科技(深圳)有限公司 字幕内容生成方法、装置、计算机设备及存储介质
CN110832875B (zh) * 2018-07-23 2022-02-22 深圳市大疆创新科技有限公司 视频处理方法、终端设备、机器可读存储介质
CN109862396A (zh) * 2019-01-11 2019-06-07 苏州科达科技股份有限公司 一种视频码流的分析方法、电子设备及可读存储介质
CN110677722A (zh) * 2019-09-29 2020-01-10 上海依图网络科技有限公司 视频处理方法及其装置、介质和系统
CN111314741B (zh) * 2020-05-15 2021-01-05 腾讯科技(深圳)有限公司 视频超分处理方法、装置、电子设备及存储介质
CN112001351A (zh) * 2020-09-01 2020-11-27 城云科技(中国)有限公司 多个视频流处理方法、系统、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965891A (zh) * 2012-01-30 2018-12-07 三星电子株式会社 用于视频编码和解码的方法和设备
CN106228506A (zh) * 2016-07-14 2016-12-14 重庆大学 一种基于gpu的多帧图像并行处理的方法
CN111343503A (zh) * 2020-03-31 2020-06-26 北京金山云网络技术有限公司 视频的转码方法、装置、电子设备及存储介质
CN111757115A (zh) * 2020-07-30 2020-10-09 杭州橙鹰数据技术有限公司 一种视频流处理方法及装置
CN112040233A (zh) * 2020-11-04 2020-12-04 北京金山云网络技术有限公司 视频编码、视频解码方法和装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112995532A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
US20190065954A1 (en) Memory bandwidth management for deep learning applications
CN109918184B (zh) 图片处理系统、方法及相关装置和设备
CN110796242A (zh) 神经网络模型推理方法、装置、电子设备及可读介质
CN106407178A (zh) 一种会话摘要生成方法及装置
CN113656179B (zh) 云计算资源的调度方法及装置、电子设备和存储介质
CN112988362B (zh) 一种任务处理方法、装置、电子设备及存储介质
CN104461710A (zh) 任务处理方法及装置
CN110781180B (zh) 一种数据筛选方法和数据筛选装置
CN112995532B (zh) 视频处理方法及装置
CN110098995A (zh) 信息处理方法、信息显示方法、装置、电子设备及服务器
CN115086298A (zh) 文件传输方法及装置
CN109840597B (zh) 一种模型预测方法、装置、电子设备及存储介质
CN112948090B (zh) 应用于网络业务处理的大数据分析整理方法及服务器
CN111506717B (zh) 问题答复方法、装置、设备及存储介质
CN117193992A (zh) 模型训练方法、任务调度方法、装置以及计算机存储介质
CN112395062A (zh) 任务处理方法、装置、设备及计算机可读存储介质
WO2023124361A1 (zh) 芯片、加速卡、电子设备和数据处理方法
CN110971918B (zh) 直播数据排序方法、服务器及装置
CN112966723B (zh) 视频数据增广方法、装置、电子设备及可读存储介质
CN107870921B (zh) 一种日志数据处理方法及装置
US11475356B2 (en) Data processing method, electronic device and computer readable storage method for deduplication of a training dataset
CN114003388A (zh) 大数据计算引擎任务参数确定方法及装置
CN113407702A (zh) 员工合作关系强度量化方法、系统、计算机和存储介质
CN113407331A (zh) 一种任务处理的方法、装置及存储介质
CN112206507B (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
GR01 Patent grant
GR01 Patent grant