WO2021072860A1 - 视频解码方法、装置、设备及计算机可读存储介质 - Google Patents

视频解码方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
WO2021072860A1
WO2021072860A1 PCT/CN2019/117591 CN2019117591W WO2021072860A1 WO 2021072860 A1 WO2021072860 A1 WO 2021072860A1 CN 2019117591 W CN2019117591 W CN 2019117591W WO 2021072860 A1 WO2021072860 A1 WO 2021072860A1
Authority
WO
WIPO (PCT)
Prior art keywords
idle
video
decoded
videos
thread pool
Prior art date
Application number
PCT/CN2019/117591
Other languages
English (en)
French (fr)
Inventor
张国辉
马爱国
Original Assignee
平安科技(深圳)有限公司
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 平安科技(深圳)有限公司 filed Critical 平安科技(深圳)有限公司
Publication of WO2021072860A1 publication Critical patent/WO2021072860A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/226Characteristics of the server or Internal components of the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种视频解码方法及装置、设备和计算机可读存储介质,该方法包括:在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池(S10);检测是否接收到视频活体检测的请求指令(S20);若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量(S30);若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码(S40)。

Description

视频解码方法、装置、设备及计算机可读存储介质
本申请要求于2019年10月15日提交中国专利局、申请号为201910980975.8、发明名称为“视频解码方法、装置、设备及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在申请中。
技术领域
本申请涉及图像处理技术领域,尤其涉及一种视频解码方法、装置、设备及计算机可读存储介质。
背景技术
目前做视频活体检测的一般大多都使用CPU来直接对视频活体检测的视频做解码操作,解码性能比较弱,计算周期长,因为单台服务计算力弱,通常并发在3-5个左右,一般都是通过添加大量的集群服务器,来满足处理高并发的视频活体检测请求,很少使用GPU(Graphics Processing Unit,图形处理器)的视频活体检测服务,常规的都是使用一个或者几个数量很少的解码器,受限于GPU本身硬件的性能,服务的整体并发性能不是太高。导致存在多个视频需要进行解码时,解码的效率很低。
发明内容
本申请的主要目的在于提供一种视频解码方法、装置、设备和计算机存储介质,旨在解决现有技术中在多个视频进行解码时,解码效率低的技术问题。
为实现上述目的,本申请提供一种视频解码方法,所述视频解码方法包括:
在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
检测是否接收到视频活体检测的请求指令;
若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
可选地,所述检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量的步骤之后,包括:
若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
可选地,所述将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码的步骤之后,包括:
检测各所述线程池中是否存在新的空闲线程池;
若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
可选地,所述基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码的步骤,包括:
在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
可选地,所述判断各所述空闲视频解码器是否在同一显卡的步骤之后,包括:
若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
可选地,所述基于所述空闲显卡的数量对各所述待解码视频进行解码的步骤,包括:
根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
可选地,所述确定所述空闲显卡的数量是否大于所述视频数量的步骤之后,包括:
若大于或等于所述视频数量,则在各所述空闲线程池中基于各所述空闲显卡确定目标空闲线程池,并基于所述目标空闲线程池对所述待解码视频进行解码,以通过不同的目标空闲线程池对不同的待解码视频进行解码。
此外,为实现上述目的,本申请还提供一种视频解码装置,所述视频解码装置包括:
创建模块,用于在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
检测模块,用于检测是否接收到视频活体检测的请求指令;
确定模块,用于若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
解码模块,用于若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
此外,为实现上述目的,本申请还提供一种视频解码设备;
所述视频解码设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中:
所述计算机程序被所述处理器执行时实现如上所述的视频解码方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质;
所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的视频解码方法的步骤。
本申请通过在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;检测是否接收到视频活体检测的请求指令;若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。通过在服务器上创建第一预设数量的显卡,并在各个显卡上创建第二预设数量的视频解码器,再创建第三预设数量的线程池,从而可以让视频活体检测服务器单台解码能力增强,单台视频活体检测服务器并发得到显著提高,并且在检测到待解码视频的视频数量小于空闲线程池的数量时,依次将各个待解码视频放置在各个空闲线程池中进行解码,从而实现了在多个视频进行解码时,提高了解码效率。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的终端\装置结构示意图;
图2为本申请视频解码方法第一实施例的流程示意图;
图3为本申请视频解码装置的功能模块示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示,图1是本申请实施例方案涉及的硬件运行环境的终端结构示意图。
本申请实施例终端为视频解码设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在终端设备移动到耳边时,关闭显示屏和/或背光。当然,终端设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机可读指令。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的计算机可读指令,并执行以下操作:
在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
检测是否接收到视频活体检测的请求指令;
若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
若大于或等于,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
参照图2,本申请提供一种视频解码的填充方法,在视频解码的填充方法一实施例中,视频解码的填充方法包括以下步骤:
步骤S10,在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
在本实施例中,服务器可以是视频活体检测服务器。通过在服务器上按照预设顺序创建第一预设数量的显卡,让显卡做矩阵运算器,并在各个显卡中创建第二预设数量的视频解码器,再创建第三预设数量的线程池。其中,第一预设数量和第二预设数量不一定相同,但第三预设数量等于第一预设数量和第二预设数量之和,即每个视频解码器均对应有一个线程池,且每个线程池有且只对应一个视频解码器。例如在进行视频活体检测服务中,通过在服务器上安装多块(M)显卡做矩阵运算器,并在每块显卡上创建多个(N)视频解码器,即视频解码器的总数为(N*M)个视频解码器,并根据视频解码器的总数创建(N*M)个线程池以做视频活体解码的服务资源。其中预设顺序可以是用户提前设置的任意顺序。第一预设数量和第二预设数量均可以是用户提前设置的任意数量。
步骤S20,检测是否接收到视频活体检测的请求指令;
当在服务器上创建好各个视频解码器和线程池后,需要检测是否有接收到如客户端发送的视频活体检测的请求指令,若有接收到如客户端发送的视频活体检测的请求指令,则服务端会将请求指令对应的待解码视频发送到线程池中空闲的线程池,即在各个线程池中,只有等待线程池中的各个线程全部用光才会出现等待的情况发送,从而可以充分发挥利用GPU的计算能力和网络带宽,以及底层人工智能sdk的处理能力,以达到提高人工智能模块检测的速度。
步骤S30,若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
当经过判断发现接收到请求指令时,则可以根据请求指令获取待解码视频,并确定待解码视频的数量(即视频数量),再在各个线程池中确定是否存在空闲线程池,若存在空闲线程池,则确定空闲线程池的数量(即空闲数量)是否大于或等于视频数量,若空闲数量小于视频数量,则可以在各个待解码视频中随机选择出和空闲数量相等的各个目标待解码视频,即目标待解码视频的数量和空闲数量相同,然后将各个目标待解码视频依次放置在各个空闲线程池中,通过各个空闲线程池对应的视频解码器进行解码。与此同时,在服务器上会实时监测是否存在新的空闲线程池,即确定有哪个线程池已工作完成,若存在有新的空闲线程,则可以在还未进行视频解码的待解码视频中随机选择一个待解码视频放置在新的空闲线程池,并通过新的空闲线程池对应的视频解码器进行解码。
步骤S40,若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
当经过判断发现,空闲数量等于视频数量时,则可以直接将各所述待解码视频依次放置在各所述空闲线程中,并通过各自空闲线程池对应的视频解码器进行解码。但是当经过判断发现空闲数量大于视频数量时,则需要确定各个空闲线程池对应的空闲视频解码器是否在同一个显卡上,若所有的空闲视频解码器均在同一个显卡上,则可以直接将各个待解码视频依次放置在各个空闲线程池中,以便通过各自空闲线程池对应的空闲视频解码器进行解码。其中,每个线程池有且放置一个待解码视频,即在单个的线程池中只能对一个待解码视频进行解码,并且只有在待解码视频解码完成后,才能进行下一个待解码视频的解码工作。但是当经过判断发现,各个空闲视频解码器不在同一个显卡上时,则在各个显卡中确定哪些显卡上存在有空闲视频解码器,并将存在有空闲视频解码器的显卡作为空闲显卡,并确定空闲显卡的数量是否大于视频数量。当经过判断发现空闲显卡的数量大于视频数量,则可以按照显卡排列的预设顺利,在每个空闲显卡中确定一个视频解码器和该视频解码器对应的目标空闲线程池;并将每个待解码视频依次放置在各个空闲显卡对应的目标空闲线程池中进行解码,也就是,在每个空闲显卡中选择一个视频解码器进行解码工作。需要说明的是,在本实施例中,视觉活体检测一般包含三个步骤,视频内容接收、视频解码抽帧和抽帧图片算法下层送检获取结果返回给请求方。并且,视觉活体检测服务做成多线程并发的方式,创建N*M个线程独立做服务,由于线程彼此独立理论上支持N*M同时做视觉活体检测,检测的三个步骤独立线性处理,从而解决了现有技术中在进行多个视频解码时,解码效率较低的技术问题。
需要说明的是,通过使用GPU解码视频活体检测处理,这种方式可以发挥高级强悍CPU矩阵计算单元的性能,与底层的AISDK共享GPU,高并发检测时CPU的使用率可以在60%以上,发挥高性能服务器的网络带宽和主板总线的带宽,服务器的整体性能可以充分利用起来,使得服务提供者节省资源成本,很小规模的集群就可以达到很好的视频活体检测的吞吐量。
在本实施例中,通过在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;检测是否接收到视频活体检测的请求指令;若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。并在各个显卡上创建第二预设数量的视频解码器,再创建第三预设数量的线程池,从而可以让视频活体检测服务器单台解码能力增强,单台视频活体检测服务器并发得到显著提高,并且在检测到待解码视频的视频数量小于空闲线程池的数量时,依次将各个待解码视频放置在各个空闲线程池中进行解码,从而实现了在多个视频进行解码时,提高了解码效率。
进一步地,在本申请第一实施例的基础上,提出了本申请视频解码方法的第二实施例,本实施例是本申请第一实施例的步骤S30,检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量的步骤之后,包括:
步骤a,若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
当经过判断发现线程池中的空闲线程池的空闲数量小于待解码视频的视频数量时,也就是当前时刻能够进行解码处理的线程池的数量并不能满足同时对视频数量的待解码视频进行解码时,需要在各个待解码视频中筛选出和空闲线程池数量相等的目标待解码视频,并依次将各个目标待解码视频放置在各个空闲线程池中进行解码,其中,每个空闲线程池一次只能解码一个目标待解码视频。
在本实施例中,通过在空闲数量小于视频数量时,在各个待解码视频中筛选出目标待解码视频,并通过各个空闲线程池对各个目标待解码视频进行解码,从而提高了待解码视频的效率,能让用户优先获取比较重要的视频。
进一步地,将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码的步骤之后,包括:
步骤c,检测各所述线程池中是否存在新的空闲线程池;
当将各个目标待解码视频依次放置在各个空闲线程池中进行解码后,需要实时检查各个线程池,以确定是否存在新的空闲线程池,并在发现新的空闲线程池,可以将未进行解码的各个待解码视频中的一个放置在该新的空闲线程池中进行解码。其中,新的空闲线程池是已经进行解码完成,且处于空闲状态的线程池。
步骤d,若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
当经过判断发现在各个线程池中存在新的空闲线程池,则确定新的空闲线程池的数量,并根据新的空闲线程池的数量在未进行解码的待解码视频中选择子待解码视频依次放置在新的空闲线程池中进行解码,直至待解码视频全部进行解码。若不存在新的空闲线程池,则继续检测各个线程池,以等待出现新的空闲线程池。
在本实施例中,通过检测各个线程池中是否存在新的空闲线程池,并当 存在空闲线程池时,将剩下的待解码视频放置在空闲线程池中进行解码,从而提高了待解码视频解码的效率。
进一步地,在本实施例第一至第二任意一个实施例的基础上,提出了本申请视频解码方法的第三实施例,本实施例是本申请第一实施例的步骤S40,基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码的步骤,包括:
步骤e,在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
在各个视频解码器中,确定当前时刻哪些视频解码器是空闲线程池对应的视频解码器(也就是处于空闲状态的空闲视频解码器),并在获取到这些空闲视频解码器后,还需要判断这些空闲视频解码器是否在同一张显卡上,并根据不同的判断结果执行不同的操作。
步骤f,若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
当经过判断发现各个空闲视频解码器均在同一个显卡上时,则可以直接将各个待解码视频依次放置在各个空闲线程池中,以通过不同的空闲线程池对不同的待解码视频进行解码,即通过空闲线程池对应的空闲视频解码器进行解码。
在本实施例中,通过确定各个空闲视频解码器是否在同一显卡,若是,则将各个待解码视频依次放置在各个空闲线程池中进行解码,从而提高了待解码视频解码的效率。
进一步地,判断各所述空闲视频解码器是否在同一显卡的步骤之后,包括:
步骤g,若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
当经过判断发现各个空闲视频解码器不在同一个显卡上时,也就是在多个显卡中存在有空闲视频解码器,此时就需要在这些显卡中确定哪些显卡中存在空闲视频解码器,并将其作为空闲显卡,再确定空闲显卡的数量是否大于待解码视频的视频数量,并根据确定结果执行不同的操作。
步骤h,若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
当经过判断发现空闲显卡的数量小于视频数量时,则可以确定各个空闲显卡对应的空闲线程池存在多少个,并将各个待解码视频依次放置在各个空闲显卡对应的空闲线程池中进行解码。
在本实施例中,通过在确定各个空闲视频解码器不在同一显卡时,确定空闲显卡的数量是否大于视频数量,若小于,则根据空闲显卡的数量对待解码视频进行解码,从而保障了在不影响待解码视频解码的效果的同时,提高了待解码视频解码的效率。
具体地,基于所述空闲显卡的数量对各所述待解码视频进行解码的步骤,包括:
步骤k,根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
当确定空闲显卡的数量,且其数量小于待解码视频的视频数量后,可以将先确定各个空闲显卡对应的空闲线程池的数量,也就是确定各个空闲显卡中没有进行工作的视频解码器的数量,并基于这些数量来确定各个空闲显卡对应的空闲线程池的数量,再将各个待解码视频依次放置在各个空闲显卡对应的空闲线程池中进行解码,其中,在空闲显卡对应的各个空闲线程池中至少有一个空闲线程池获取到待解码视频,并对其进行解码。
在本实施例中,通过将各个待解码视频依次放置在各个空闲显卡对应的空闲线程池中进行解码,从而提高了待解码视频解码的效率。
进一步地,确定所述空闲显卡的数量是否大于所述视频数量的步骤之后,包括:
步骤w,若大于或等于所述视频数量,则在各所述空闲线程池中基于各所述空闲显卡确定目标空闲线程池,并基于所述目标空闲线程池对所述待解码视频进行解码,以通过不同的目标空闲线程池对不同的待解码视频进行解码。
当经过判断发现空闲显卡的数量大于或等于待解码视频的视频数量时,则可以先在各个空闲显卡中确定哪些空闲显卡是待解码视频进行解码时需要应用到的,并将其作为目标空闲显卡,并在这些目标空闲显卡中确定视频解码器,并根据视频解码器确定各个目标空闲线程池,再将各个待解码视频依次放置在各个目标空闲线程池中进行解码,需要说明的是,在每个目标空闲显卡中可以只确定一个目标空闲线程池,以便加快对待解码视频解码的速度。
在本实施例中,通过在确定空闲显卡的数量大于或等于视频数量时,直接将各个待解码视频依次放置在各个目标空闲线程中进行解码,从而提高了各个待解码视频解码的效率。
此外,参照图3,本申请实施例还提出一种视频解码装置,所述视频解码装置包括:
创建模块A10,用于在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
检测模块A20,用于检测是否接收到视频活体检测的请求指令;
确定模块A30,用于若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
解码模块A40,用于若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
进一步地,所述确定模块A30还用于:
若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
进一步地,所述确定模块A30还用于:
检测各所述线程池中是否存在新的空闲线程池;
若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
进一步地,所述解码模块A40还用于:
在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
进一步地,所述解码模块A40还用于:
若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
进一步地,所述解码模块A40还用于:
根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
进一步地,所述解码模块A40还用于:
若大于或等于所述视频数量,则在各所述空闲线程池中基于各所述空闲显卡确定目标空闲线程池,并基于所述目标空闲线程池对所述待解码视频进行解码,以通过不同的目标空闲线程池对不同的待解码视频进行解码。
其中,视频解码装置的各个功能模块实现的步骤可参照本申请视频解码方法的各个实施例,此处不再赘述。
本申请还提供一种视频解码设备,所述视频解码设备包括:存储器、处理器及存储在所述存储器上的计算机可读指令,其中,所述计算机可读存储介质可以是非易失性可读存储介质;所述处理器用于执行所述计算机可读指令,以实现上述视频解码方法各实施例的步骤。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机可读指令,所述一个或者一个以上计算机可读指令还可被一个或者一个以上的处理器执行以用于实现上述视频解码方法各实施例的步骤。
本申请计算机可读存储介质具体实施方式与上述视频解码方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

  1. 一种视频解码方法,其中,所述视频解码方法包括以下步骤:
    在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
    检测是否接收到视频活体检测的请求指令;
    若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
    若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  2. 如权利要求1所述的视频解码方法,其中,所述检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量的步骤之后,包括:
    若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
  3. 如权利要求2所述的视频解码方法,其中,所述将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码的步骤之后,包括:
    检测各所述线程池中是否存在新的空闲线程池;
    若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
  4. 如权利要求1所述的视频解码方法,其中,所述基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码的步骤,包括:
    在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
    若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  5. 如权利要求4所述的视频解码方法,其中,所述判断各所述空闲视频解码器是否在同一显卡的步骤之后,包括:
    若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
    若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
  6. 如权利要求5所述的视频解码方法,其中,所述基于所述空闲显卡的数量对各所述待解码视频进行解码的步骤,包括:
    根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
  7. 如权利要求5所述的视频解码方法,其中,所述确定所述空闲显卡的数量是否大于所述视频数量的步骤之后,包括:
    若大于或等于所述视频数量,则在各所述空闲线程池中基于各所述空闲显卡确定目标空闲线程池,并基于所述目标空闲线程池对所述待解码视频进行解码,以通过不同的目标空闲线程池对不同的待解码视频进行解码。
  8. 一种视频解码装置,其中,所述视频解码装置包括:
    创建模块,用于在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
    检测模块,用于检测是否接收到视频活体检测的请求指令;
    确定模块,用于若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
    解码模块,用于若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  9. 一种视频解码设备,其中,所述视频解码设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机可读指令,所述计算机可读指令被所述处理器执行时实现如下步骤:
    在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
    检测是否接收到视频活体检测的请求指令;
    若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
    若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  10. 如权利要求9所述的视频解码设备,其中,所述检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量的步骤之后,包括:
    若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
  11. 如权利要求10所述的视频解码设备,其中,所述将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码的步骤之后,包括:
    检测各所述线程池中是否存在新的空闲线程池;
    若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
  12. 如权利要求9所述的视频解码设备,其中,所述基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码的步骤,包括:
    在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
    若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  13. 如权利要求12所述的视频解码设备,其中,所述判断各所述空闲视频解码器是否在同一显卡的步骤之后,包括:
    若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
    若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
  14. 如权利要求13所述的视频解码设备,其中,所述基于所述空闲显卡的数量对各所述待解码视频进行解码的步骤,包括:
    根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
  15. 一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下的步骤:
    在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
    检测是否接收到视频活体检测的请求指令;
    若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
    若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  16. 如权利要求15所述的计算机可读存储介质,其中,所述检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量的步骤之后,包括:
    若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
  17. 如权利要求16所述的计算机可读存储介质,其中,所述将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码的步骤之后,包括:
    检测各所述线程池中是否存在新的空闲线程池;
    若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
  18. 如权利要求15所述的计算机可读存储介质,其中,所述基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码的步骤,包括:
    在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
    若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
  19. 如权利要求18所述的计算机可读存储介质,其中,所述判断各所述空闲视频解码器是否在同一显卡的步骤之后,包括:
    若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
    若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
  20. 如权利要求19所述的计算机可读存储介质,其中,所述基于所述空闲显卡的数量对各所述待解码视频进行解码的步骤,包括:
    根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
PCT/CN2019/117591 2019-10-15 2019-11-12 视频解码方法、装置、设备及计算机可读存储介质 WO2021072860A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910980975.8A CN110798702B (zh) 2019-10-15 2019-10-15 视频解码方法、装置、设备及计算机可读存储介质
CN201910980975.8 2019-10-15

Publications (1)

Publication Number Publication Date
WO2021072860A1 true WO2021072860A1 (zh) 2021-04-22

Family

ID=69440296

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/117591 WO2021072860A1 (zh) 2019-10-15 2019-11-12 视频解码方法、装置、设备及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN110798702B (zh)
WO (1) WO2021072860A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672293B (zh) * 2020-04-30 2024-04-09 华为云计算技术有限公司 一种基于云手机的媒体数据处理方法以及终端设备
CN112132022B (zh) * 2020-09-22 2023-09-29 平安科技(深圳)有限公司 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质
CN113395523B (zh) * 2021-06-11 2023-05-30 深圳万兴软件有限公司 基于并行线程的图像解码方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678681A (zh) * 2015-12-30 2016-06-15 广东威创视讯科技股份有限公司 Gpu数据处理方法、gpu、pc架构处理器及gpu数据处理系统
CN106358003A (zh) * 2016-08-31 2017-01-25 华中科技大学 一种基于线程级流水线的视频分析加速方法
CN106878736A (zh) * 2017-03-17 2017-06-20 郑州云海信息技术有限公司 一种视频编解码的方法与装置
CN109388496A (zh) * 2018-11-01 2019-02-26 北京视甄智能科技有限公司 一种基于多gpu卡的图像并发处理方法、装置及系统
US10360654B1 (en) * 2018-05-25 2019-07-23 Intel Corporation Software scoreboard information and synchronization

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363369B2 (en) * 2003-10-16 2008-04-22 International Business Machines Corporation Monitoring thread usage to dynamically control a thread pool
CN104038766A (zh) * 2014-05-14 2014-09-10 三星电子(中国)研发中心 用于以图像帧为基础执行并行视频编码的装置及其方法
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
CN109542640B (zh) * 2018-11-13 2023-08-11 平安科技(深圳)有限公司 图片上传方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678681A (zh) * 2015-12-30 2016-06-15 广东威创视讯科技股份有限公司 Gpu数据处理方法、gpu、pc架构处理器及gpu数据处理系统
CN106358003A (zh) * 2016-08-31 2017-01-25 华中科技大学 一种基于线程级流水线的视频分析加速方法
CN106878736A (zh) * 2017-03-17 2017-06-20 郑州云海信息技术有限公司 一种视频编解码的方法与装置
US10360654B1 (en) * 2018-05-25 2019-07-23 Intel Corporation Software scoreboard information and synchronization
CN109388496A (zh) * 2018-11-01 2019-02-26 北京视甄智能科技有限公司 一种基于多gpu卡的图像并发处理方法、装置及系统

Also Published As

Publication number Publication date
CN110798702B (zh) 2022-04-15
CN110798702A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
WO2021072860A1 (zh) 视频解码方法、装置、设备及计算机可读存储介质
WO2013118988A1 (en) Method and apparatus for interoperably performing services and system supporting the same
WO2018068533A1 (zh) 一种人脸检测的方法及装置
WO2017206456A1 (zh) 一种视频通话中视频图像展示方法及装置
WO2018205413A1 (zh) 音频音量的调整方法、终端及计算机可读存储介质
WO2014189275A1 (en) Apparatus and method of recognizing external device in a communication system
WO2016208992A1 (en) Electronic device and method for controlling display of panorama image
WO2020253116A1 (zh) 数据跑批方法、装置、存储介质及集群中的成员主机
WO2020237859A1 (zh) 基于nbd设备的数据迁移方法、装置、设备及存储介质
WO2020107591A1 (zh) 重复投保限制方法、装置、设备及可读存储介质
WO2020052247A1 (zh) 网络资源批量加载方法、智能电视、存储介质及装置
WO2014035171A1 (ko) 전자장치에서 영상통화중 파일 전송 방법 및 장치
WO2020103275A1 (zh) 扣款控制方法、装置、设备及可读存储介质
WO2020098075A1 (zh) 金融数据处理方法、装置、设备和存储介质
WO2019233190A1 (zh) 基于显示终端的文本转语音方法、显示终端及存储介质
WO2015126180A1 (en) Method for creating a content and electronic device thereof
WO2018145597A1 (zh) 基于移动终端的屏幕补光拍照方法及系统、移动终端
WO2020047960A1 (zh) 数据处理方法、显示装置和计算机可读存储介质
WO2018048117A1 (en) Display apparatus and control method thereof
WO2018079999A1 (en) Electronic device and method for operating the same
WO2020186780A1 (zh) 用户操作录制还原方法、装置、设备及可读存储介质
WO2017069568A1 (en) Electronic device and method for processing image
WO2013180348A1 (ko) 화면 가상화 기반 애플리케이션 구동 시스템 및 방법
WO2019137219A1 (zh) 调节视频通话亮度的方法、装置和计算机存储介质
WO2015037894A1 (ko) 비디오 메모리의 모니터링을 이용한 영상 처리 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19948988

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19948988

Country of ref document: EP

Kind code of ref document: A1