CN110798702A - 视频解码方法、装置、设备及计算机可读存储介质 - Google Patents
视频解码方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110798702A CN110798702A CN201910980975.8A CN201910980975A CN110798702A CN 110798702 A CN110798702 A CN 110798702A CN 201910980975 A CN201910980975 A CN 201910980975A CN 110798702 A CN110798702 A CN 110798702A
- Authority
- CN
- China
- Prior art keywords
- video
- idle
- videos
- decoded
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000012216 screening Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/226—Characteristics of the server or Internal components of the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing 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
本发明涉及图像处理技术领域,公开了一种视频解码方法及装置、设备和计算机可读存储介质,该方法包括:在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;检测是否接收到视频活体检测的请求指令;若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。解决了现有技术中在多个视频进行解码时,解码效率低的技术问题。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种视频解码方法、装置、设备及计算机可读存储介质。
背景技术
目前做视频活体检测的一般大多都使用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 (10)
1.一种视频解码方法,其特征在于,所述视频解码方法包括以下步骤:
在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
检测是否接收到视频活体检测的请求指令;
若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
2.如权利要求1所述的视频解码方法,其特征在于,所述检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量的步骤之后,包括:
若小于所述视频数量,则在各所述待解码视频中筛选出空闲数量的目标待解码视频,并将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码。
3.如权利要求2所述的视频解码方法,其特征在于,所述将各所述目标待解码视频依次放置在各所述空闲线程池中进行解码的步骤之后,包括:
检测各所述线程池中是否存在新的空闲线程池;
若存在,则确定所述新的空闲线程池的数量,并基于所述新的空闲线程池的数量对各所述待解码视频中未进行解码的待解码视频进行解码。
4.如权利要求1所述的视频解码方法,其特征在于,所述基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码的步骤,包括:
在各所述视频解码器中确定各所述空闲线程池对应的空闲视频解码器,并判断各所述空闲视频解码器是否在同一显卡;
若是,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
5.如权利要求4所述的视频解码方法,其特征在于,所述判断各所述空闲视频解码器是否在同一显卡的步骤之后,包括:
若各所述空闲视频解码器不在同一显卡,则在各所述显卡中确定各所述空闲视频解码器对应的各空闲显卡,并确定所述空闲显卡的数量是否大于所述视频数量;
若小于所述视频数量,则基于所述空闲显卡的数量对各所述待解码视频进行解码。
6.如权利要求5所述的视频解码方法,其特征在于,所述基于所述空闲显卡的数量对各所述待解码视频进行解码的步骤,包括:
根据所述空闲显卡的数量确定各所述空闲显卡对应的空闲线程池的数量,并基于所述空闲显卡对应的空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码,其中,在所述空闲显卡对应的各空闲线程池中至少有一个所述空闲线程池获取到所述待解码视频。
7.如权利要求5所述的视频解码方法,其特征在于,所述确定所述空闲显卡的数量是否大于所述视频数量的步骤之后,包括:
若大于或等于所述视频数量,则在各所述空闲线程池中基于各所述空闲显卡确定目标空闲线程池,并基于所述目标空闲线程池对所述待解码视频进行解码,以通过不同的目标空闲线程池对不同的待解码视频进行解码。
8.一种视频解码装置,其特征在于,所述视频解码装置包括:
创建模块,用于在服务器上按照预设顺序创建第一预设数量的显卡,并在各所述显卡中创建第二预设数量的视频解码器,基于各所述视频解码器创建第三预设数量的线程池;
检测模块,用于检测是否接收到视频活体检测的请求指令;
确定模块,用于若接收到所述请求指令,则基于所述请求指令确定待解码视频的视频数量,并检测各所述线程池中的空闲线程池的空闲数量是否大于所述视频数量;
解码模块,用于若大于或等于所述视频数量,则基于所述空闲线程池对所述待解码视频进行解码,以通过不同的空闲线程池对不同的待解码视频进行解码。
9.一种视频解码设备,其特征在于,所述视频解码设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频解码程序,所述视频解码程序被所述处理器执行时实现如权利要求1至7中任一项所述的视频解码方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有视频解码程序,所述视频解码程序被处理器执行时实现如权利要求1至7中任一项所述的视频解码方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980975.8A CN110798702B (zh) | 2019-10-15 | 2019-10-15 | 视频解码方法、装置、设备及计算机可读存储介质 |
PCT/CN2019/117591 WO2021072860A1 (zh) | 2019-10-15 | 2019-11-12 | 视频解码方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980975.8A CN110798702B (zh) | 2019-10-15 | 2019-10-15 | 视频解码方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798702A true CN110798702A (zh) | 2020-02-14 |
CN110798702B CN110798702B (zh) | 2022-04-15 |
Family
ID=69440296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910980975.8A Active CN110798702B (zh) | 2019-10-15 | 2019-10-15 | 视频解码方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110798702B (zh) |
WO (1) | WO2021072860A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132022A (zh) * | 2020-09-22 | 2020-12-25 | 平安科技(深圳)有限公司 | 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质 |
CN113395523A (zh) * | 2021-06-11 | 2021-09-14 | 深圳市斯博科技有限公司 | 基于并行线程的图像解码方法、装置、设备及存储介质 |
CN113672293A (zh) * | 2020-04-30 | 2021-11-19 | 华为技术有限公司 | 一种基于云手机的媒体数据处理方法以及终端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086359A1 (en) * | 2003-10-16 | 2005-04-21 | 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 | 广州市动景计算机科技有限公司 | 视频解码方法、装置及终端设备 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN109542640A (zh) * | 2018-11-13 | 2019-03-29 | 平安科技(深圳)有限公司 | 图片上传方法、装置、计算机设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105678681A (zh) * | 2015-12-30 | 2016-06-15 | 广东威创视讯科技股份有限公司 | Gpu数据处理方法、gpu、pc架构处理器及gpu数据处理系统 |
CN106358003B (zh) * | 2016-08-31 | 2019-02-19 | 华中科技大学 | 一种基于线程级流水线的视频分析加速方法 |
US10360654B1 (en) * | 2018-05-25 | 2019-07-23 | Intel Corporation | Software scoreboard information and synchronization |
CN109388496A (zh) * | 2018-11-01 | 2019-02-26 | 北京视甄智能科技有限公司 | 一种基于多gpu卡的图像并发处理方法、装置及系统 |
-
2019
- 2019-10-15 CN CN201910980975.8A patent/CN110798702B/zh active Active
- 2019-11-12 WO PCT/CN2019/117591 patent/WO2021072860A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086359A1 (en) * | 2003-10-16 | 2005-04-21 | 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 | 广州市动景计算机科技有限公司 | 视频解码方法、装置及终端设备 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN109542640A (zh) * | 2018-11-13 | 2019-03-29 | 平安科技(深圳)有限公司 | 图片上传方法、装置、计算机设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672293A (zh) * | 2020-04-30 | 2021-11-19 | 华为技术有限公司 | 一种基于云手机的媒体数据处理方法以及终端设备 |
CN113672293B (zh) * | 2020-04-30 | 2024-04-09 | 华为云计算技术有限公司 | 一种基于云手机的媒体数据处理方法以及终端设备 |
CN112132022A (zh) * | 2020-09-22 | 2020-12-25 | 平安科技(深圳)有限公司 | 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质 |
WO2021159842A1 (zh) * | 2020-09-22 | 2021-08-19 | 平安科技(深圳)有限公司 | 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质 |
CN112132022B (zh) * | 2020-09-22 | 2023-09-29 | 平安科技(深圳)有限公司 | 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质 |
CN113395523A (zh) * | 2021-06-11 | 2021-09-14 | 深圳市斯博科技有限公司 | 基于并行线程的图像解码方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021072860A1 (zh) | 2021-04-22 |
CN110798702B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798702B (zh) | 视频解码方法、装置、设备及计算机可读存储介质 | |
CN111163345B (zh) | 一种图像渲染方法及装置 | |
CN112770188B (zh) | 一种视频播放方法及装置 | |
CN109101335B (zh) | 扩展主机设备的功能 | |
US10601891B2 (en) | Cloud streaming service system and cloud streaming service method for utilizing an optimal GPU for video decoding based on resource conditions, and apparatus for the same | |
US10652591B2 (en) | System for cloud streaming service, method for same using still-image compression technique and apparatus therefor | |
CN110750664B (zh) | 图片的显示方法及装置 | |
CN111314646B (zh) | 图像获取方法、图像获取装置、终端设备及可读存储介质 | |
US20140164662A1 (en) | Methods and apparatus for interleaving priorities of a plurality of virtual processors | |
CN111258736B (zh) | 信息处理方法、装置和电子设备 | |
US20170026721A1 (en) | System and Methods Thereof for Auto-Playing Video Content on Mobile Devices | |
CN104601534A (zh) | Cdn系统图像处理的方法及系统 | |
CN113395523A (zh) | 基于并行线程的图像解码方法、装置、设备及存储介质 | |
CN112463370A (zh) | 任务执行方法、设备及可读存储介质 | |
CN113377455B (zh) | 一种媒体组件的切换方法、切换装置、存储介质及电子设备 | |
US20170171266A1 (en) | Method and electronic device based on android platform for multimedia resource play | |
CN114205359A (zh) | 视频渲染协同方法、装置及设备 | |
US20160142723A1 (en) | Frame division into subframes | |
CN112698962A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20140287835A1 (en) | Sound virtualization method and apparatus | |
CN111949325B (zh) | 显示方法、装置和电子设备 | |
CN108961351B (zh) | 通过压缩实现分形图绘制的方法、设备、系统及存储介质 | |
CN113918849A (zh) | 一种页面显示方法、装置、系统、电子设备及存储介质 | |
CN113411589A (zh) | 解码方法、装置、电子设备及存储介质 | |
CN111984424A (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 |